[jboss-svn-commits] JBL Code SVN: r24850 - in labs/jbossesb/workspace/mlittle/legstar/product: docs and 248 other directories.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Wed Jan 21 10:38:18 EST 2009
Author: jim.ma
Date: 2009-01-21 10:38:08 -0500 (Wed, 21 Jan 2009)
New Revision: 24850
Added:
labs/jbossesb/workspace/mlittle/legstar/product/etc/schemas/xml/jbossesb-1.1.0.xsd
labs/jbossesb/workspace/mlittle/legstar/product/etc/schemas/xml/jbossesb-1.1.0.xsdconfig
labs/jbossesb/workspace/mlittle/legstar/product/install/conf/jaas.login
labs/jbossesb/workspace/mlittle/legstar/product/install/conf/privateKeyStore
labs/jbossesb/workspace/mlittle/legstar/product/install/conf/publicKeyStore
labs/jbossesb/workspace/mlittle/legstar/product/install/embedded-console/
labs/jbossesb/workspace/mlittle/legstar/product/install/embedded-console/barrier-service.xml
labs/jbossesb/workspace/mlittle/legstar/product/install/embedded-console/build.xml
labs/jbossesb/workspace/mlittle/legstar/product/install/embedded-console/esb-console.war
labs/jbossesb/workspace/mlittle/legstar/product/install/embedded-console/measurementpatch.txt
labs/jbossesb/workspace/mlittle/legstar/product/install/jUDDI-registry/sql/mssql/
labs/jbossesb/workspace/mlittle/legstar/product/install/jUDDI-registry/sql/mssql/create_database.sql
labs/jbossesb/workspace/mlittle/legstar/product/install/jUDDI-registry/sql/mssql/import.sql
labs/jbossesb/workspace/mlittle/legstar/product/lib/ext/endorsed/
labs/jbossesb/workspace/mlittle/legstar/product/lib/ext/endorsed/jboss-saaj.jar
labs/jbossesb/workspace/mlittle/legstar/product/lib/ext/jboss-ejb3x.jar
labs/jbossesb/workspace/mlittle/legstar/product/lib/ext/jboss-jaxws.jar
labs/jbossesb/workspace/mlittle/legstar/product/lib/ext/jboss-saaj.jar
labs/jbossesb/workspace/mlittle/legstar/product/lib/ext/jboss-security-spi.jar
labs/jbossesb/workspace/mlittle/legstar/product/lib/ext/jbosssx.jar
labs/jbossesb/workspace/mlittle/legstar/product/lib/ext/jbossws-common.jar
labs/jbossesb/workspace/mlittle/legstar/product/lib/ext/jbossws-core.jar
labs/jbossesb/workspace/mlittle/legstar/product/lib/ext/jbossws-spi.jar
labs/jbossesb/workspace/mlittle/legstar/product/lib/ext/servlet-api.jar
labs/jbossesb/workspace/mlittle/legstar/product/lib/ext/wsdl4j-1.6.2.jar
labs/jbossesb/workspace/mlittle/legstar/product/plugins/org.jboss.soa.esb.oracle.aq/org.jboss.soa.esb.oracle.aq-4.3.jar
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/aop/java/org/jboss/internal/soa/esb/services/registry/aspect/JUDDIAspect.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/internal/soa/esb/listeners/
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/internal/soa/esb/listeners/gateway/
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/internal/soa/esb/listeners/gateway/filefilter/
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/internal/soa/esb/listeners/gateway/filefilter/FileEndsWith.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/internal/soa/esb/listeners/gateway/filefilter/IgnoreFile.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/internal/soa/esb/publish/ContractReferencePublisher.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/internal/soa/esb/publish/ServletContractPublisher.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/internal/soa/esb/services/security/
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/internal/soa/esb/services/security/AMConfig.properties
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/internal/soa/esb/services/security/EsbCallbackHandler.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/internal/soa/esb/services/security/JaasSecurityService.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/internal/soa/esb/services/security/PrivateCryptoUtil.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/internal/soa/esb/services/security/UserPassCallbackHandler.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/internal/soa/esb/services/security/jaas/
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/internal/soa/esb/webservice/
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/internal/soa/esb/webservice/BaseWebService.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/internal/soa/esb/webservice/ESBContractGenerator.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/internal/soa/esb/webservice/ESBServiceContractPublisher.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/internal/soa/esb/webservice/ESBServiceEndpointInfo.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/internal/soa/esb/webservice/JAXWSProviderClassGenerator.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/internal/soa/esb/webservice/OneWayBaseWebService.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/internal/soa/esb/webservice/RequestResponseBaseWebService.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/internal/soa/esb/webservice/WebServicePublishException.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/actions/ActionProcessingDetailFaultException.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/actions/monitoring/
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/actions/monitoring/MVELMonitor.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/actions/monitoring/MVELMonitorMBean.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/actions/monitoring/MVELMonitoringAction.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/actions/monitoring/MonitoringEventBean.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/actions/monitoring/MonitoringPatternBean.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/actions/validation/
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/actions/validation/SchemaValidationAction.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/actions/validation/ValidationException.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/Action.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/JBoss4ESBDeploymentMetaData.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/WebserviceInfo.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers/ESBAwareGenerator.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers/GatewayGenerator.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers/ScheduleProviderFactory.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers/SecurityMapper.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers/XMLBeansModel.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers110/
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers110/ActionMapper.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers110/ESBAwareGenerator.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers110/FsListenerMapper.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers110/FtpListenerMapper.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers110/GatewayGenerator.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers110/GroovyListenerMapper.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers110/HibernateListenerMapper.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers110/JbrListenerMapper.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers110/JcaGatewayMapper.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers110/JmsListenerMapper.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers110/MapperUtil.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers110/NotificationMapper.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers110/ScheduleMapper.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers110/ScheduleProviderFactory.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers110/ScheduledListenerMapper.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers110/SecurityMapper.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers110/SqlListenerMapper.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers110/UntypedListenerMapper.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers110/XMLBeansModel.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/model/
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/model/Model101SchemaParser.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/model/Model110SchemaParser.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/model/ModelAdapter.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/model/ModelException.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/model/ModelParser.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/model/SchemaParser.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/lifecycle/AbstractScheduledManagedLifecycle.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/lifecycle/ManagedLifecycleAdapter.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/message/IncompatibleTransactionScopeException.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/message/MessageCounterStatistics.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/message/MessageValidationException.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/message/ResponseTimeoutException.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/message/ServiceMessageCounterLifecycleResource.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/message/ByReferenceMessage.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/schedule/SchedulerJob.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/schedule/SchedulerJobListener.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/schedule/SchedulerResource.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/services/security/
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/services/security/PublicCryptoUtil.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/services/security/SecurityConfig.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/services/security/SecurityConfigUtil.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/services/security/SecurityContext.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/services/security/SecurityService.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/services/security/SecurityServiceException.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/services/security/SecurityServiceFactory.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/services/security/auth/
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/services/security/auth/AuthenticationRequest.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/services/security/auth/AuthenticationRequestImpl.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/services/security/auth/SecurityInfoExtractor.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/services/security/auth/http/
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/services/security/auth/http/JbrHttpSecurityInfoExtractor.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/services/security/auth/ws/
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/services/security/auth/ws/BinarySecurityToken.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/services/security/auth/ws/UsernameToken.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/services/security/auth/ws/WSSecurityInfoExtractor.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/services/security/auth/ws/WSSecuritySoapExtractor.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/services/security/auth/ws/smooks-ws-security.xml
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/services/security/principals/
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/services/security/principals/Group.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/services/security/principals/Role.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/services/security/principals/User.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/services/security/util/
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/services/security/util/CryptoUtil.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/internal/soa/esb/services/security/
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/internal/soa/esb/services/security/JaasSecurityServiceUnitTest.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/internal/soa/esb/services/security/PrivateCryptoUtilUnitTest.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/internal/soa/esb/services/security/jaas.login
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/internal/soa/esb/services/security/jaas/
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/internal/soa/esb/services/security/jaas/AMConfig.properties
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/internal/soa/esb/services/security/privateKeyStore
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/internal/soa/esb/services/security/security-properties.xml
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/internal/soa/esb/webservice/
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/internal/soa/esb/webservice/ESBContractGeneratorUnitTest.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/internal/soa/esb/webservice/fault.xsd
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/internal/soa/esb/webservice/jbossesb_config_06.110.xml
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/internal/soa/esb/webservice/jbossesb_config_06.xml
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/internal/soa/esb/webservice/jbossesb_config_07.110.xml
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/internal/soa/esb/webservice/jbossesb_config_07.xml
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/internal/soa/esb/webservice/jbossesb_config_08.110.xml
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/internal/soa/esb/webservice/jbossesb_config_08.xml
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/internal/soa/esb/webservice/request.xsd
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/internal/soa/esb/webservice/response.xsd
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/actions/validation/
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/actions/validation/SchemaValidationActionUnitTest.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/actions/validation/test-invalid.xml
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/actions/validation/test.xml
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/actions/validation/test.xsd
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/addressing/eprs/EmailUnitTest.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/listeners/config/Generator101ModelUnitTest.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/listeners/config/Generator110ModelUnitTest.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/listeners/config/JBESB_1993_UnitTest.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/listeners/config/JBESB_1993_action.xml
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/listeners/config/JBESB_1993_service.xml
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/listeners/config/jbossesb_config_01.110.xml
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/listeners/config/jbossesb_config_02.110.xml
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/listeners/config/jbossesb_config_03.110.xml
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/listeners/config/jbossesb_config_04.110.xml
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/listeners/config/jbossesb_config_05.110.xml
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/listeners/config/jbossesb_config_110_esbaware.xml
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/listeners/config/jbossesb_config_110_gateways.xml
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/listeners/config/mappers/SecurityMapperUnitTest.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/listeners/config/mappers/jbossesb_config_security.xml
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/listeners/config/mappers110/
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/listeners/config/mappers110/FtpListenerMapperUnitTest.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/listeners/config/mappers110/JmsListenerMapperUnitTest.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/listeners/config/mappers110/SecurityMapperUnitTest.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/listeners/config/mappers110/jbossesb_config_jms_jca.xml
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/listeners/config/mappers110/jbossesb_config_readonly.xml
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/listeners/config/mappers110/jbossesb_config_security.xml
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/listeners/config/request.xsd
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/listeners/config/response.xsd
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/listeners/gateway/OverrideFileEndsWith.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/listeners/gateway/SqlTableGatewayListenerOptionalUnitTest.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/listeners/message/BeanConfigActionProcessorUnitTest.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/listeners/message/MockSecuredActionProcessor.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/listeners/message/ServiceInvokerCallUnitTest.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/listeners/message/TestAction.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/listeners/message/TestAction2.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/listeners/message/privateKeyStore
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/listeners/message/security-properties.xml
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/message/fault/
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/message/fault/JBESB-2227-config-01.xml
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/message/fault/JBESB_2227_UnitTest.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/message/tests/ContextUnitTest.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/services/security/
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/services/security/PublicCryptoUtilUnitTest.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/services/security/SecurityConfigUtilUnitTest.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/services/security/SecurityContextUnitTest.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/services/security/SecurityServiceFactoryUnitTest.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/services/security/TestLoginModule.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/services/security/TestPrincipal.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/services/security/UserPassLoginModule.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/services/security/auth/
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/services/security/auth/AuthenticationRequestUnitTest.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/services/security/auth/http/
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/services/security/auth/http/JbrHttpSecurityInfoExtractorUnitTest.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/services/security/auth/keystore
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/services/security/auth/ws/
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/services/security/auth/ws/BinarySecurityTokenTest.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/services/security/auth/ws/WSSecurityInfoExtractorUnitTest.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/services/security/auth/ws/WSSecuritySoapExtractorUnitTest.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/services/security/auth/ws/WSTestUtil.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/services/security/auth/ws/cert-example.xml
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/services/security/auth/ws/smooks-config.xml
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/services/security/auth/ws/soap-keys-example.xml
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/services/security/auth/ws/soap-keys-example2.xml
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/services/security/auth/ws/soap-userpass-example.xml
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/services/security/jaas.login
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/services/security/principals/
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/services/security/principals/GroupUnitTest.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/services/security/principals/RoleUnitTest.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/services/security/privateKeyStore
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/services/security/publicKeyStore
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/services/security/security-properties.xml
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/testutils/test/jboss-esb.110.xml
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/ejbprocessor/
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/ejbprocessor/build.xml
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/ejbprocessor/deployment.xml
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/ejbprocessor/ejb/
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/ejbprocessor/ejb/src/
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/ejbprocessor/ejb/src/org/
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/ejbprocessor/ejb/src/org/jboss/
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/ejbprocessor/ejb/src/org/jboss/soa/
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/ejbprocessor/ejb/src/org/jboss/soa/esb/
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/ejbprocessor/ejb/src/org/jboss/soa/esb/samples/
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/ejbprocessor/ejb/src/org/jboss/soa/esb/samples/quickstart/
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/ejbprocessor/ejb/src/org/jboss/soa/esb/samples/quickstart/ejbprocessor/
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/ejbprocessor/ejb/src/org/jboss/soa/esb/samples/quickstart/ejbprocessor/Simple.java
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/ejbprocessor/ejb/src/org/jboss/soa/esb/samples/quickstart/ejbprocessor/SimpleRemote.java
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/ejbprocessor/ejb/src/org/jboss/soa/esb/samples/quickstart/ejbprocessor/SimpleSLSB.java
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/ejbprocessor/jbm-queue-service.xml
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/ejbprocessor/jbmq-queue-service.xml
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/ejbprocessor/jboss-esb.xml
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/ejbprocessor/jbossesb-properties.xml
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/ejbprocessor/jndi.properties
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/ejbprocessor/juddi.properties
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/ejbprocessor/lib/
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/ejbprocessor/log4j.xml
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/ejbprocessor/readme.txt
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/ejbprocessor/src/
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/ejbprocessor/src/org/
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/ejbprocessor/src/org/jboss/
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/ejbprocessor/src/org/jboss/soa/
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/ejbprocessor/src/org/jboss/soa/esb/
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/ejbprocessor/src/org/jboss/soa/esb/samples/
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/ejbprocessor/src/org/jboss/soa/esb/samples/quickstart/
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/ejbprocessor/src/org/jboss/soa/esb/samples/quickstart/ejbprocessor/
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/ejbprocessor/src/org/jboss/soa/esb/samples/quickstart/ejbprocessor/test/
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/ejbprocessor/src/org/jboss/soa/esb/samples/quickstart/ejbprocessor/test/SendEsbMessage.java
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/ejbprocessor/src/org/jboss/soa/esb/samples/quickstart/ejbprocessor/test/SendJMSMessage.java
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/helloworld_ftp_action/db-service.xml
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/monitoring_action/
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/monitoring_action/build.xml
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/monitoring_action/deployment.xml
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/monitoring_action/jbm-queue-service.xml
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/monitoring_action/jbmq-queue-service.xml
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/monitoring_action/jboss-esb.xml
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/monitoring_action/jbossesb-properties.xml
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/monitoring_action/jndi.properties
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/monitoring_action/juddi.properties
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/monitoring_action/lib/
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/monitoring_action/listener.log
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/monitoring_action/log4j.xml
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/monitoring_action/readme.txt
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/monitoring_action/src/
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/monitoring_action/src/org/
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/monitoring_action/src/org/jboss/
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/monitoring_action/src/org/jboss/soa/
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/monitoring_action/src/org/jboss/soa/esb/
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/monitoring_action/src/org/jboss/soa/esb/samples/
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/monitoring_action/src/org/jboss/soa/esb/samples/quickstart/
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/monitoring_action/src/org/jboss/soa/esb/samples/quickstart/monitoringaction/
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/monitoring_action/src/org/jboss/soa/esb/samples/quickstart/monitoringaction/MyJMSListenerAction.java
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/monitoring_action/src/org/jboss/soa/esb/samples/quickstart/monitoringaction/test/
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/monitoring_action/src/org/jboss/soa/esb/samples/quickstart/monitoringaction/test/SendEsbMessage.java
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/monitoring_action/src/org/jboss/soa/esb/samples/quickstart/monitoringaction/test/SendJMSMessage.java
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice/
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice/build.xml
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice/deployment.xml
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice/error-soap-message.xml
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice/fault.xsd
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice/jbm-queue-service.xml
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice/jbmq-queue-service.xml
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice/jboss-esb.xml
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice/jbossesb-properties.xml
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice/jndi.properties
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice/juddi.properties
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice/lib/
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice/log4j.xml
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice/readme.txt
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice/request.xsd
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice/response.xsd
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice/soap-userpass-message.xml
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice/src/
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice/src/.classpath
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice/src/.project
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice/src/org/
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice/src/org/jboss/
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice/src/org/jboss/soa/
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice/src/org/jboss/soa/esb/
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice/src/org/jboss/soa/esb/samples/
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice/src/org/jboss/soa/esb/samples/quickstart/
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice/src/org/jboss/soa/esb/samples/quickstart/publishAsWebservice/
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice/src/org/jboss/soa/esb/samples/quickstart/publishAsWebservice/ESBWSListenerAction.java
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice/src/org/jboss/soa/esb/samples/quickstart/publishAsWebservice/test/
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice/src/org/jboss/soa/esb/samples/quickstart/publishAsWebservice/test/SOAPTest.java
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice/src/org/jboss/soa/esb/samples/quickstart/publishAsWebservice/test/SendEsbMessage.java
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_basic/
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_basic/build.xml
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_basic/deployment.xml
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_basic/jbm-queue-service.xml
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_basic/jbmq-queue-service.xml
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_basic/jboss-esb.xml
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_basic/jbossesb-properties.xml
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_basic/jndi.properties
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_basic/juddi.properties
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_basic/lib/
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_basic/log4j.xml
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_basic/publicKeyStore
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_basic/readme.txt
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_basic/src/
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_basic/src/org/
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_basic/src/org/jboss/
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_basic/src/org/jboss/soa/
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_basic/src/org/jboss/soa/esb/
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_basic/src/org/jboss/soa/esb/samples/
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_basic/src/org/jboss/soa/esb/samples/quickstart/
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_basic/src/org/jboss/soa/esb/samples/quickstart/securitybasic/
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_basic/src/org/jboss/soa/esb/samples/quickstart/securitybasic/MyListenerAction.java
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_basic/src/org/jboss/soa/esb/samples/quickstart/securitybasic/test/
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_basic/src/org/jboss/soa/esb/samples/quickstart/securitybasic/test/HttpClient.java
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_basic/src/org/jboss/soa/esb/samples/quickstart/securitybasic/test/SendEsbMessage.java
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise/war/resources/WEB-INF/jboss-web.xml
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/.ant-targets-build.xml
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/META-INF/
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/META-INF/jboss-wsse-client.xml
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/META-INF/wsse.keystore
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/META-INF/wsse.truststore
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/build.xml
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/deployment.xml
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/jbm-queue-service.xml
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/jbmq-queue-service.xml
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/jboss-esb.xml
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/jbossesb-properties.xml
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/jndi.properties
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/juddi.properties
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/lib/
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/log4j.xml
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/readme.txt
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/src/
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/src/org/
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/src/org/jboss/
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/src/org/jboss/soa/
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/src/org/jboss/soa/esb/
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/src/org/jboss/soa/esb/samples/
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/src/org/jboss/soa/esb/samples/quickstart/
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/src/org/jboss/soa/esb/samples/quickstart/webservice_consumer_wise4/
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/src/org/jboss/soa/esb/samples/quickstart/webservice_consumer_wise4/MyRequestAction.java
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/src/org/jboss/soa/esb/samples/quickstart/webservice_consumer_wise4/MyResponseAction.java
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/src/org/jboss/soa/esb/samples/quickstart/webservice_consumer_wise4/test/
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/src/org/jboss/soa/esb/samples/quickstart/webservice_consumer_wise4/test/SendEsbMessage.java
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/src/org/jboss/soa/esb/samples/quickstart/webservice_consumer_wise4/test/SendJMSMessage.java
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/war/
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/war/lib/
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/war/lib/ext/
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/war/lib/ext/jbossws-client.jar
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/war/resources/
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/war/resources/WEB-INF/
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/war/resources/WEB-INF/classes/
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/war/resources/WEB-INF/handlers.xml
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/war/resources/WEB-INF/jboss-wsse-server.xml
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/war/resources/WEB-INF/lib/
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/war/resources/WEB-INF/web.xml
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/war/resources/WEB-INF/wsse.keystore
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/war/resources/WEB-INF/wsse.truststore
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/war/src/
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/war/src/org/
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/war/src/org/jboss/
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/war/src/org/jboss/soa/
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/war/src/org/jboss/soa/esb/
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/war/src/org/jboss/soa/esb/samples/
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/war/src/org/jboss/soa/esb/samples/quickstart/
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/war/src/org/jboss/soa/esb/samples/quickstart/webservice_consumer_wsse_wsa/
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/war/src/org/jboss/soa/esb/samples/quickstart/webservice_consumer_wsse_wsa/HelloWorldWS.java
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/war/view/
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/war/view/index.jsp
labs/jbossesb/workspace/mlittle/legstar/product/services/jbpm/lib/ext/jbpm-identity-config.jar
labs/jbossesb/workspace/mlittle/legstar/product/services/jbpm/src/main/java/org/jboss/soa/esb/services/jbpm/actionhandlers/ActionUtil.java
labs/jbossesb/workspace/mlittle/legstar/product/services/jbpm/src/main/resources/jboss-service.xml
labs/jbossesb/workspace/mlittle/legstar/product/services/jbpm/src/main/resources/jsf-console.war
labs/jbossesb/workspace/mlittle/legstar/product/services/jbpm/src/test/resources/relatesToFaultDefinition.xml
labs/jbossesb/workspace/mlittle/legstar/product/services/jbpm/upgrade-jbpm.txt
labs/jbossesb/workspace/mlittle/legstar/product/services/jbrules/lib/ext/antlr-runtime-3.1.1.jar
labs/jbossesb/workspace/mlittle/legstar/product/services/jbrules/lib/ext/drools-ant-5.0.0.M4.jar
labs/jbossesb/workspace/mlittle/legstar/product/services/jbrules/lib/ext/drools-api-5.0.0.M4.jar
labs/jbossesb/workspace/mlittle/legstar/product/services/jbrules/lib/ext/drools-clips-5.0.0.M4.jar
labs/jbossesb/workspace/mlittle/legstar/product/services/jbrules/lib/ext/drools-compiler-5.0.0.M4.jar
labs/jbossesb/workspace/mlittle/legstar/product/services/jbrules/lib/ext/drools-core-5.0.0.M4.jar
labs/jbossesb/workspace/mlittle/legstar/product/services/jbrules/lib/ext/drools-dataloaders-jaxb-5.0.0.M4.jar
labs/jbossesb/workspace/mlittle/legstar/product/services/jbrules/lib/ext/drools-dataloaders-smooks-5.0.0.M4.jar
labs/jbossesb/workspace/mlittle/legstar/product/services/jbrules/lib/ext/drools-decisiontables-5.0.0.M4.jar
labs/jbossesb/workspace/mlittle/legstar/product/services/jbrules/lib/ext/drools-jsr94-5.0.0.M4.jar
labs/jbossesb/workspace/mlittle/legstar/product/services/jbrules/lib/ext/drools-process-enterprise-5.0.0.M4.jar
labs/jbossesb/workspace/mlittle/legstar/product/services/jbrules/lib/ext/drools-process-task-5.0.0.M4.jar
labs/jbossesb/workspace/mlittle/legstar/product/services/jbrules/lib/ext/drools-templates-5.0.0.M4.jar
labs/jbossesb/workspace/mlittle/legstar/product/services/jbrules/lib/ext/drools-verifier-5.0.0.M4.jar
labs/jbossesb/workspace/mlittle/legstar/product/services/jbrules/lib/ext/drools-workitems-5.0.0.M4.jar
labs/jbossesb/workspace/mlittle/legstar/product/services/jbrules/lib/ext/mvel2-2.0.4.jar
labs/jbossesb/workspace/mlittle/legstar/product/services/jbrules/src/main/java/org/jboss/internal/soa/esb/services/rules/util/
labs/jbossesb/workspace/mlittle/legstar/product/services/jbrules/src/main/java/org/jboss/internal/soa/esb/services/rules/util/RulesContext.java
labs/jbossesb/workspace/mlittle/legstar/product/services/slsb/src/test/
labs/jbossesb/workspace/mlittle/legstar/product/services/slsb/src/test/java/
labs/jbossesb/workspace/mlittle/legstar/product/services/slsb/src/test/java/org/
labs/jbossesb/workspace/mlittle/legstar/product/services/slsb/src/test/java/org/jboss/
labs/jbossesb/workspace/mlittle/legstar/product/services/slsb/src/test/java/org/jboss/soa/
labs/jbossesb/workspace/mlittle/legstar/product/services/slsb/src/test/java/org/jboss/soa/esb/
labs/jbossesb/workspace/mlittle/legstar/product/services/slsb/src/test/java/org/jboss/soa/esb/actions/
labs/jbossesb/workspace/mlittle/legstar/product/services/slsb/src/test/java/org/jboss/soa/esb/actions/EJBProcessorUnitTest.java
labs/jbossesb/workspace/mlittle/legstar/product/services/slsb/src/test/java/org/jboss/soa/esb/actions/MockEjbProcessor.java
labs/jbossesb/workspace/mlittle/legstar/product/services/slsb/src/test/java/org/jboss/soa/esb/actions/Simple.java
labs/jbossesb/workspace/mlittle/legstar/product/services/slsb/src/test/java/org/jboss/soa/esb/actions/SimpleRemote.java
labs/jbossesb/workspace/mlittle/legstar/product/services/slsb/src/test/java/org/jboss/soa/esb/actions/SimpleSLSB.java
labs/jbossesb/workspace/mlittle/legstar/product/services/soap/lib/ext/jaxb-api.jar
labs/jbossesb/workspace/mlittle/legstar/product/services/soap/lib/ext/jaxb-impl.jar
labs/jbossesb/workspace/mlittle/legstar/product/services/soap/lib/ext/jbossws-native-jaxws-ext.jar
labs/jbossesb/workspace/mlittle/legstar/product/services/soap/lib/ext/jbossws-native-jaxws.jar
labs/jbossesb/workspace/mlittle/legstar/product/services/soap/lib/ext/wise-core.jar
labs/jbossesb/workspace/mlittle/legstar/product/services/soap/src/main/resources/wise-config.beans/
labs/jbossesb/workspace/mlittle/legstar/product/services/soap/src/main/resources/wise-config.beans/META-INF/
labs/jbossesb/workspace/mlittle/legstar/product/services/soap/src/main/resources/wise-config.beans/META-INF/jboss-beans.xml
labs/jbossesb/workspace/mlittle/legstar/product/services/soapui-client/src/lib/soap-xmlbeans-1.2.jar
labs/jbossesb/workspace/mlittle/legstar/product/services/soapui-client/src/test/java/org/jboss/soa/esb/services/soapui/helloworld.wsdl
labs/jbossesb/workspace/mlittle/legstar/product/tools/jonplugin/src/main/java/org/jbosson/plugins/jbossesb/DeploymentComponent.java
labs/jbossesb/workspace/mlittle/legstar/product/tools/jonplugin/src/main/java/org/jbosson/plugins/jbossesb/ESBComponent.java
labs/jbossesb/workspace/mlittle/legstar/product/tools/jonplugin/src/main/java/org/jbosson/plugins/jbossesb/ESBDiscoveryComponent.java
labs/jbossesb/workspace/mlittle/legstar/product/tools/jonplugin/src/main/java/org/jbosson/plugins/jbossesb/SOADiscoveryComponent.java
labs/jbossesb/workspace/mlittle/legstar/product/tools/jonplugin/src/main/java/org/jbosson/plugins/jbossesb/ServiceDiscoveryComponent.java
Removed:
labs/jbossesb/workspace/mlittle/legstar/product/docs/samples/
labs/jbossesb/workspace/mlittle/legstar/product/install/embedded-console/barrier-service.xml
labs/jbossesb/workspace/mlittle/legstar/product/install/embedded-console/build.xml
labs/jbossesb/workspace/mlittle/legstar/product/install/embedded-console/esb-console.war
labs/jbossesb/workspace/mlittle/legstar/product/install/embedded-console/measurementpatch.txt
labs/jbossesb/workspace/mlittle/legstar/product/install/jUDDI-registry/sql/mssql/create_database.sql
labs/jbossesb/workspace/mlittle/legstar/product/install/jUDDI-registry/sql/mssql/import.sql
labs/jbossesb/workspace/mlittle/legstar/product/lib/ext/endorsed/jboss-saaj.jar
labs/jbossesb/workspace/mlittle/legstar/product/lib/ext/jgroups-all.jar
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/internal/soa/esb/listeners/gateway/
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/internal/soa/esb/listeners/gateway/filefilter/
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/internal/soa/esb/listeners/gateway/filefilter/FileEndsWith.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/internal/soa/esb/listeners/gateway/filefilter/IgnoreFile.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/internal/soa/esb/services/security/AMConfig.properties
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/internal/soa/esb/services/security/EsbCallbackHandler.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/internal/soa/esb/services/security/JaasSecurityService.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/internal/soa/esb/services/security/PrivateCryptoUtil.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/internal/soa/esb/services/security/UserPassCallbackHandler.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/internal/soa/esb/services/security/jaas/
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/internal/soa/esb/webservice/BaseWebService.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/internal/soa/esb/webservice/ESBContractGenerator.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/internal/soa/esb/webservice/ESBServiceContractPublisher.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/internal/soa/esb/webservice/ESBServiceEndpointInfo.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/internal/soa/esb/webservice/JAXWSProviderClassGenerator.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/internal/soa/esb/webservice/OneWayBaseWebService.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/internal/soa/esb/webservice/RequestResponseBaseWebService.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/internal/soa/esb/webservice/WebServicePublishException.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/actions/monitoring/MVELMonitor.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/actions/monitoring/MVELMonitorMBean.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/actions/monitoring/MVELMonitoringAction.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/actions/monitoring/MonitoringEventBean.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/actions/monitoring/MonitoringPatternBean.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/actions/validation/SchemaValidationAction.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/actions/validation/ValidationException.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/ESBAwareGenerator.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/GatewayGenerator.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/ScheduleProviderFactory.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers110/ActionMapper.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers110/ESBAwareGenerator.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers110/FsListenerMapper.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers110/FtpListenerMapper.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers110/GatewayGenerator.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers110/GroovyListenerMapper.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers110/HibernateListenerMapper.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers110/JbrListenerMapper.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers110/JcaGatewayMapper.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers110/JmsListenerMapper.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers110/MapperUtil.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers110/NotificationMapper.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers110/ScheduleMapper.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers110/ScheduleProviderFactory.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers110/ScheduledListenerMapper.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers110/SecurityMapper.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers110/SqlListenerMapper.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers110/UntypedListenerMapper.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers110/XMLBeansModel.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/model/Model101SchemaParser.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/model/Model110SchemaParser.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/model/ModelAdapter.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/model/ModelException.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/model/ModelParser.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/model/SchemaParser.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/services/security/PublicCryptoUtil.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/services/security/SecurityConfig.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/services/security/SecurityConfigUtil.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/services/security/SecurityContext.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/services/security/SecurityService.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/services/security/SecurityServiceException.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/services/security/SecurityServiceFactory.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/services/security/auth/
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/services/security/auth/AuthenticationRequest.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/services/security/auth/AuthenticationRequestImpl.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/services/security/auth/SecurityInfoExtractor.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/services/security/auth/http/
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/services/security/auth/http/JbrHttpSecurityInfoExtractor.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/services/security/auth/ws/
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/services/security/auth/ws/BinarySecurityToken.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/services/security/auth/ws/UsernameToken.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/services/security/auth/ws/WSSecurityInfoExtractor.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/services/security/auth/ws/WSSecuritySoapExtractor.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/services/security/auth/ws/smooks-ws-security.xml
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/services/security/principals/
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/services/security/principals/Group.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/services/security/principals/Role.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/services/security/principals/User.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/services/security/util/
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/services/security/util/CryptoUtil.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/internal/soa/esb/services/security/JaasSecurityServiceUnitTest.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/internal/soa/esb/services/security/PrivateCryptoUtilUnitTest.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/internal/soa/esb/services/security/jaas.login
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/internal/soa/esb/services/security/jaas/
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/internal/soa/esb/services/security/jaas/AMConfig.properties
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/internal/soa/esb/services/security/privateKeyStore
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/internal/soa/esb/services/security/security-properties.xml
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/internal/soa/esb/webservice/ESBContractGeneratorUnitTest.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/internal/soa/esb/webservice/fault.xsd
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/internal/soa/esb/webservice/jbossesb_config_06.110.xml
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/internal/soa/esb/webservice/jbossesb_config_06.xml
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/internal/soa/esb/webservice/jbossesb_config_07.110.xml
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/internal/soa/esb/webservice/jbossesb_config_07.xml
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/internal/soa/esb/webservice/jbossesb_config_08.110.xml
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/internal/soa/esb/webservice/jbossesb_config_08.xml
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/internal/soa/esb/webservice/request.xsd
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/internal/soa/esb/webservice/response.xsd
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/actions/validation/SchemaValidationActionUnitTest.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/actions/validation/test-invalid.xml
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/actions/validation/test.xml
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/actions/validation/test.xsd
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/addressing/helpers/tests/EmailUnitTest.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/listeners/config/mappers/jbossesb_config_01.xml
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/listeners/config/mappers110/FtpListenerMapperUnitTest.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/listeners/config/mappers110/JmsListenerMapperUnitTest.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/listeners/config/mappers110/SecurityMapperUnitTest.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/listeners/config/mappers110/jbossesb_config_jms_jca.xml
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/listeners/config/mappers110/jbossesb_config_readonly.xml
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/listeners/config/mappers110/jbossesb_config_security.xml
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/message/fault/JBESB-2227-config-01.xml
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/message/fault/JBESB_2227_UnitTest.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/services/security/PublicCryptoUtilUnitTest.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/services/security/SecurityConfigUtilUnitTest.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/services/security/SecurityContextUnitTest.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/services/security/SecurityServiceFactoryUnitTest.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/services/security/TestLoginModule.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/services/security/TestPrincipal.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/services/security/UserPassLoginModule.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/services/security/auth/
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/services/security/auth/AuthenticationRequestUnitTest.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/services/security/auth/http/
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/services/security/auth/http/JbrHttpSecurityInfoExtractorUnitTest.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/services/security/auth/keystore
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/services/security/auth/ws/
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/services/security/auth/ws/BinarySecurityTokenTest.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/services/security/auth/ws/WSSecurityInfoExtractorUnitTest.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/services/security/auth/ws/WSSecuritySoapExtractorUnitTest.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/services/security/auth/ws/WSTestUtil.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/services/security/auth/ws/cert-example.xml
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/services/security/auth/ws/smooks-config.xml
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/services/security/auth/ws/soap-keys-example.xml
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/services/security/auth/ws/soap-keys-example2.xml
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/services/security/auth/ws/soap-userpass-example.xml
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/services/security/jaas.login
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/services/security/principals/
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/services/security/principals/GroupUnitTest.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/services/security/principals/RoleUnitTest.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/services/security/privateKeyStore
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/services/security/publicKeyStore
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/services/security/security-properties.xml
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/business_ruleservice_ruleAgent/processDefinition/
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/business_ruleservice_ruleAgent/src/org/jboss/soa/esb/samples/quickstart/businessrules/
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/ejbprocessor/build.xml
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/ejbprocessor/deployment.xml
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/ejbprocessor/ejb/
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/ejbprocessor/ejb/src/
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/ejbprocessor/ejb/src/org/
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/ejbprocessor/ejb/src/org/jboss/
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/ejbprocessor/ejb/src/org/jboss/soa/
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/ejbprocessor/ejb/src/org/jboss/soa/esb/
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/ejbprocessor/ejb/src/org/jboss/soa/esb/samples/
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/ejbprocessor/ejb/src/org/jboss/soa/esb/samples/quickstart/
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/ejbprocessor/ejb/src/org/jboss/soa/esb/samples/quickstart/ejbprocessor/
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/ejbprocessor/ejb/src/org/jboss/soa/esb/samples/quickstart/ejbprocessor/Simple.java
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/ejbprocessor/ejb/src/org/jboss/soa/esb/samples/quickstart/ejbprocessor/SimpleRemote.java
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/ejbprocessor/ejb/src/org/jboss/soa/esb/samples/quickstart/ejbprocessor/SimpleSLSB.java
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/ejbprocessor/jbm-queue-service.xml
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/ejbprocessor/jbmq-queue-service.xml
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/ejbprocessor/jboss-esb.xml
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/ejbprocessor/jbossesb-properties.xml
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/ejbprocessor/jndi.properties
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/ejbprocessor/juddi.properties
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/ejbprocessor/lib/
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/ejbprocessor/log4j.xml
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/ejbprocessor/readme.txt
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/ejbprocessor/src/
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/ejbprocessor/src/org/
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/ejbprocessor/src/org/jboss/
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/ejbprocessor/src/org/jboss/soa/
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/ejbprocessor/src/org/jboss/soa/esb/
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/ejbprocessor/src/org/jboss/soa/esb/samples/
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/ejbprocessor/src/org/jboss/soa/esb/samples/quickstart/
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/ejbprocessor/src/org/jboss/soa/esb/samples/quickstart/ejbprocessor/
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/ejbprocessor/src/org/jboss/soa/esb/samples/quickstart/ejbprocessor/test/
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/ejbprocessor/src/org/jboss/soa/esb/samples/quickstart/ejbprocessor/test/SendEsbMessage.java
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/ejbprocessor/src/org/jboss/soa/esb/samples/quickstart/ejbprocessor/test/SendJMSMessage.java
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/jms_transacted/src/org/jboss/soa/esb/samples/quickstart/jmstransacted/test/RollbackTransactionAction.java
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/monitoring_action/build.xml
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/monitoring_action/deployment.xml
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/monitoring_action/jbm-queue-service.xml
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/monitoring_action/jbmq-queue-service.xml
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/monitoring_action/jboss-esb.xml
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/monitoring_action/jbossesb-properties.xml
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/monitoring_action/jndi.properties
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/monitoring_action/juddi.properties
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/monitoring_action/lib/
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/monitoring_action/listener.log
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/monitoring_action/log4j.xml
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/monitoring_action/readme.txt
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/monitoring_action/src/
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/monitoring_action/src/org/
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/monitoring_action/src/org/jboss/
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/monitoring_action/src/org/jboss/soa/
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/monitoring_action/src/org/jboss/soa/esb/
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/monitoring_action/src/org/jboss/soa/esb/samples/
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/monitoring_action/src/org/jboss/soa/esb/samples/quickstart/
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/monitoring_action/src/org/jboss/soa/esb/samples/quickstart/monitoringaction/
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/monitoring_action/src/org/jboss/soa/esb/samples/quickstart/monitoringaction/MyJMSListenerAction.java
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/monitoring_action/src/org/jboss/soa/esb/samples/quickstart/monitoringaction/test/
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/monitoring_action/src/org/jboss/soa/esb/samples/quickstart/monitoringaction/test/SendEsbMessage.java
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/monitoring_action/src/org/jboss/soa/esb/samples/quickstart/monitoringaction/test/SendJMSMessage.java
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice/build.xml
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice/deployment.xml
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice/error-soap-message.xml
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice/fault.xsd
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice/jbm-queue-service.xml
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice/jbmq-queue-service.xml
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice/jboss-esb.xml
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice/jbossesb-properties.xml
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice/jndi.properties
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice/juddi.properties
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice/lib/
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice/log4j.xml
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice/readme.txt
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice/request.xsd
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice/response.xsd
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice/soap-userpass-message.xml
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice/src/
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice/src/.classpath
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice/src/.project
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice/src/org/
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice/src/org/jboss/
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice/src/org/jboss/soa/
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice/src/org/jboss/soa/esb/
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice/src/org/jboss/soa/esb/samples/
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice/src/org/jboss/soa/esb/samples/quickstart/
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice/src/org/jboss/soa/esb/samples/quickstart/publishAsWebservice/
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice/src/org/jboss/soa/esb/samples/quickstart/publishAsWebservice/ESBWSListenerAction.java
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice/src/org/jboss/soa/esb/samples/quickstart/publishAsWebservice/test/
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice/src/org/jboss/soa/esb/samples/quickstart/publishAsWebservice/test/SOAPTest.java
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice/src/org/jboss/soa/esb/samples/quickstart/publishAsWebservice/test/SendEsbMessage.java
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_basic/build.xml
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_basic/deployment.xml
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_basic/jbm-queue-service.xml
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_basic/jbmq-queue-service.xml
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_basic/jboss-esb.xml
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_basic/jbossesb-properties.xml
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_basic/jndi.properties
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_basic/juddi.properties
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_basic/lib/
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_basic/log4j.xml
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_basic/publicKeyStore
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_basic/readme.txt
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_basic/src/
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_basic/src/org/
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_basic/src/org/jboss/
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_basic/src/org/jboss/soa/
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_basic/src/org/jboss/soa/esb/
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_basic/src/org/jboss/soa/esb/samples/
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_basic/src/org/jboss/soa/esb/samples/quickstart/
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_basic/src/org/jboss/soa/esb/samples/quickstart/securitybasic/
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_basic/src/org/jboss/soa/esb/samples/quickstart/securitybasic/MyListenerAction.java
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_basic/src/org/jboss/soa/esb/samples/quickstart/securitybasic/test/
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_basic/src/org/jboss/soa/esb/samples/quickstart/securitybasic/test/HttpClient.java
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_basic/src/org/jboss/soa/esb/samples/quickstart/securitybasic/test/SendEsbMessage.java
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise/wise-core.properties
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise2/wise-core.properties
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise3/wise-core.properties
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise4/wise-core.properties
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/.ant-targets-build.xml
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/META-INF/
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/META-INF/jboss-wsse-client.xml
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/META-INF/wsse.keystore
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/META-INF/wsse.truststore
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/build.xml
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/deployment.xml
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/jbm-queue-service.xml
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/jbmq-queue-service.xml
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/jboss-esb.xml
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/jbossesb-properties.xml
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/jndi.properties
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/juddi.properties
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/lib/
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/log4j.xml
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/readme.txt
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/src/
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/src/org/
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/src/org/jboss/
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/src/org/jboss/soa/
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/src/org/jboss/soa/esb/
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/src/org/jboss/soa/esb/samples/
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/src/org/jboss/soa/esb/samples/quickstart/
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/src/org/jboss/soa/esb/samples/quickstart/webservice_consumer_wise4/
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/src/org/jboss/soa/esb/samples/quickstart/webservice_consumer_wise4/MyRequestAction.java
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/src/org/jboss/soa/esb/samples/quickstart/webservice_consumer_wise4/MyResponseAction.java
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/src/org/jboss/soa/esb/samples/quickstart/webservice_consumer_wise4/test/
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/src/org/jboss/soa/esb/samples/quickstart/webservice_consumer_wise4/test/SendEsbMessage.java
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/src/org/jboss/soa/esb/samples/quickstart/webservice_consumer_wise4/test/SendJMSMessage.java
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/war/
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/war/lib/
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/war/lib/ext/
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/war/lib/ext/jbossws-client.jar
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/war/resources/
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/war/resources/WEB-INF/
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/war/resources/WEB-INF/classes/
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/war/resources/WEB-INF/handlers.xml
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/war/resources/WEB-INF/jboss-wsse-server.xml
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/war/resources/WEB-INF/lib/
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/war/resources/WEB-INF/web.xml
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/war/resources/WEB-INF/wsse.keystore
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/war/resources/WEB-INF/wsse.truststore
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/war/src/
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/war/src/org/
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/war/src/org/jboss/
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/war/src/org/jboss/soa/
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/war/src/org/jboss/soa/esb/
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/war/src/org/jboss/soa/esb/samples/
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/war/src/org/jboss/soa/esb/samples/quickstart/
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/war/src/org/jboss/soa/esb/samples/quickstart/webservice_consumer_wsse_wsa/
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/war/src/org/jboss/soa/esb/samples/quickstart/webservice_consumer_wsse_wsa/HelloWorldWS.java
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/war/view/
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/war/view/index.jsp
labs/jbossesb/workspace/mlittle/legstar/product/samples/trailblazer/
labs/jbossesb/workspace/mlittle/legstar/product/services/jbpm/lib/ext/asm.jar
labs/jbossesb/workspace/mlittle/legstar/product/services/jbpm/lib/ext/asm.jar.license.txt
labs/jbossesb/workspace/mlittle/legstar/product/services/jbpm/lib/ext/build-time/activation.jar
labs/jbossesb/workspace/mlittle/legstar/product/services/jbpm/lib/ext/build-time/activation.jar.license.txt
labs/jbossesb/workspace/mlittle/legstar/product/services/jbpm/lib/ext/build-time/antlr-2.7.6.jar
labs/jbossesb/workspace/mlittle/legstar/product/services/jbpm/lib/ext/build-time/antlr-2.7.6.jar.license.txt
labs/jbossesb/workspace/mlittle/legstar/product/services/jbpm/lib/ext/build-time/bsh.jar
labs/jbossesb/workspace/mlittle/legstar/product/services/jbpm/lib/ext/build-time/bsh.jar.license.txt
labs/jbossesb/workspace/mlittle/legstar/product/services/jbpm/lib/ext/build-time/cglib.jar
labs/jbossesb/workspace/mlittle/legstar/product/services/jbpm/lib/ext/build-time/cglib.jar.license.txt
labs/jbossesb/workspace/mlittle/legstar/product/services/jbpm/lib/ext/build-time/jboss-backport-concurrent.jar
labs/jbossesb/workspace/mlittle/legstar/product/services/jbpm/lib/ext/build-time/jboss-backport-concurrent.jar.license.txt
labs/jbossesb/workspace/mlittle/legstar/product/services/jbpm/lib/ext/build-time/jboss-j2ee.jar
labs/jbossesb/workspace/mlittle/legstar/product/services/jbpm/lib/ext/build-time/jboss-j2ee.jar.license.txt
labs/jbossesb/workspace/mlittle/legstar/product/services/jbpm/lib/ext/build-time/jbossretro-rt.jar
labs/jbossesb/workspace/mlittle/legstar/product/services/jbpm/lib/ext/build-time/jbossretro-rt.jar.license.txt
labs/jbossesb/workspace/mlittle/legstar/product/services/jbpm/lib/ext/build-time/jcr-1.0.jar
labs/jbossesb/workspace/mlittle/legstar/product/services/jbpm/lib/ext/build-time/jcr-1.0.jar.license.txt
labs/jbossesb/workspace/mlittle/legstar/product/services/jbpm/lib/ext/build-time/servlet-api.jar
labs/jbossesb/workspace/mlittle/legstar/product/services/jbpm/lib/ext/build-time/servlet-api.jar.license.txt
labs/jbossesb/workspace/mlittle/legstar/product/services/jbpm/lib/ext/dom4j.jar
labs/jbossesb/workspace/mlittle/legstar/product/services/jbpm/lib/ext/dom4j.jar.license.txt
labs/jbossesb/workspace/mlittle/legstar/product/services/jbpm/src/main/resources/jbpm-console.war
labs/jbossesb/workspace/mlittle/legstar/product/services/jbrules/lib/ext/antlr-runtime-3.0.jar
labs/jbossesb/workspace/mlittle/legstar/product/services/jbrules/lib/ext/drools-compiler-4.0.7.jar
labs/jbossesb/workspace/mlittle/legstar/product/services/jbrules/lib/ext/drools-core-4.0.7.jar
labs/jbossesb/workspace/mlittle/legstar/product/services/jbrules/lib/ext/drools-decisiontables-4.0.7.jar
labs/jbossesb/workspace/mlittle/legstar/product/services/jbrules/lib/ext/drools-jsr94-4.0.7.jar
labs/jbossesb/workspace/mlittle/legstar/product/services/jbrules/lib/ext/stax-api-1.0.1.jar
labs/jbossesb/workspace/mlittle/legstar/product/services/jbrules/lib/ext/xstream-1.2.2.jar
labs/jbossesb/workspace/mlittle/legstar/product/services/jbrules/src/main/java/org/jboss/internal/soa/esb/services/rules/util/RulesContext.java
labs/jbossesb/workspace/mlittle/legstar/product/services/slsb/src/test/java/
labs/jbossesb/workspace/mlittle/legstar/product/services/slsb/src/test/java/org/
labs/jbossesb/workspace/mlittle/legstar/product/services/slsb/src/test/java/org/jboss/
labs/jbossesb/workspace/mlittle/legstar/product/services/slsb/src/test/java/org/jboss/soa/
labs/jbossesb/workspace/mlittle/legstar/product/services/slsb/src/test/java/org/jboss/soa/esb/
labs/jbossesb/workspace/mlittle/legstar/product/services/slsb/src/test/java/org/jboss/soa/esb/actions/
labs/jbossesb/workspace/mlittle/legstar/product/services/slsb/src/test/java/org/jboss/soa/esb/actions/EJBProcessorUnitTest.java
labs/jbossesb/workspace/mlittle/legstar/product/services/slsb/src/test/java/org/jboss/soa/esb/actions/MockEjbProcessor.java
labs/jbossesb/workspace/mlittle/legstar/product/services/slsb/src/test/java/org/jboss/soa/esb/actions/Simple.java
labs/jbossesb/workspace/mlittle/legstar/product/services/slsb/src/test/java/org/jboss/soa/esb/actions/SimpleRemote.java
labs/jbossesb/workspace/mlittle/legstar/product/services/slsb/src/test/java/org/jboss/soa/esb/actions/SimpleSLSB.java
labs/jbossesb/workspace/mlittle/legstar/product/services/smooks/lib/ext/antlr-2.7.2.jar
labs/jbossesb/workspace/mlittle/legstar/product/services/smooks/lib/ext/xalan-2.7.0.jar
labs/jbossesb/workspace/mlittle/legstar/product/services/smooks/lib/ext/xbean-2.2.0.jar
labs/jbossesb/workspace/mlittle/legstar/product/services/smooks/lib/ext/xml-apis-1.0.b2.jar
labs/jbossesb/workspace/mlittle/legstar/product/services/soap/lib/ext/Wise-core.jar
labs/jbossesb/workspace/mlittle/legstar/product/services/soap/lib/ext/build-time/activation.jar
labs/jbossesb/workspace/mlittle/legstar/product/services/soap/lib/ext/build-time/commons-logging-1.0.4.jar
labs/jbossesb/workspace/mlittle/legstar/product/services/soap/lib/ext/build-time/jboss-jaxws.jar
labs/jbossesb/workspace/mlittle/legstar/product/services/soap/lib/ext/build-time/jboss-saaj.jar
labs/jbossesb/workspace/mlittle/legstar/product/services/soap/lib/ext/build-time/jbossall-client.jar
labs/jbossesb/workspace/mlittle/legstar/product/services/soap/lib/ext/build-time/jbossts-common.jar
labs/jbossesb/workspace/mlittle/legstar/product/services/soap/lib/ext/build-time/jbossws-core.jar
labs/jbossesb/workspace/mlittle/legstar/product/services/soap/lib/ext/build-time/jbossws-jboss421.jar
labs/jbossesb/workspace/mlittle/legstar/product/services/soap/lib/ext/build-time/jbossws-spi.jar
labs/jbossesb/workspace/mlittle/legstar/product/services/soap/lib/ext/build-time/junit-4.1.jar
labs/jbossesb/workspace/mlittle/legstar/product/services/soap/lib/ext/build-time/log4j.jar
labs/jbossesb/workspace/mlittle/legstar/product/services/soap/lib/ext/build-time/servlet-api-2.3.jar
labs/jbossesb/workspace/mlittle/legstar/product/services/soap/lib/ext/commons-httpclient-3.0.1.jar
labs/jbossesb/workspace/mlittle/legstar/product/services/soap/lib/ext/commons-ssl-0.3.4.jar
labs/jbossesb/workspace/mlittle/legstar/product/services/soap/lib/ext/jaxb-api.jar
labs/jbossesb/workspace/mlittle/legstar/product/services/soap/lib/ext/jaxb-impl.jar
labs/jbossesb/workspace/mlittle/legstar/product/services/soap/lib/ext/jaxb-xjc.jar
labs/jbossesb/workspace/mlittle/legstar/product/services/soap/lib/ext/jaxws-rt.jar
labs/jbossesb/workspace/mlittle/legstar/product/services/soap/lib/ext/jaxws-tools.jar
labs/jbossesb/workspace/mlittle/legstar/product/services/soap/lib/ext/jboss-jaxws.jar
labs/jbossesb/workspace/mlittle/legstar/product/services/soap/lib/ext/jboss-saaj.jar
labs/jbossesb/workspace/mlittle/legstar/product/services/soap/lib/ext/jboss-system.jar
labs/jbossesb/workspace/mlittle/legstar/product/services/soap/lib/ext/jbossall-client.jar
labs/jbossesb/workspace/mlittle/legstar/product/services/soap/lib/ext/jbossws-common.jar
labs/jbossesb/workspace/mlittle/legstar/product/services/soap/lib/ext/jbossws-spi.jar
labs/jbossesb/workspace/mlittle/legstar/product/services/soap/src/main/resources/wise-config.beans/META-INF/
labs/jbossesb/workspace/mlittle/legstar/product/services/soap/src/main/resources/wise-config.beans/META-INF/jboss-beans.xml
labs/jbossesb/workspace/mlittle/legstar/product/services/soapui-client/src/lib/commons-codec-1.2.jar
labs/jbossesb/workspace/mlittle/legstar/product/services/soapui-client/src/lib/commons-httpclient-3.0.1.jar
labs/jbossesb/workspace/mlittle/legstar/product/services/soapui-client/src/lib/commons-logging-1.0.4.jar
labs/jbossesb/workspace/mlittle/legstar/product/services/soapui-client/src/lib/commons-ssl-0.3.4.jar
labs/jbossesb/workspace/mlittle/legstar/product/services/spring/lib/ext/build-time/asm.jar
labs/jbossesb/workspace/mlittle/legstar/product/services/spring/lib/ext/build-time/cglib-2.1_3.jar
labs/jbossesb/workspace/mlittle/legstar/product/services/spring/lib/ext/build-time/commons-logging-1.0.4.jar
labs/jbossesb/workspace/mlittle/legstar/product/services/spring/lib/ext/build-time/junit-4.1.jar
labs/jbossesb/workspace/mlittle/legstar/product/services/spring/lib/ext/build-time/log4j.jar
labs/jbossesb/workspace/mlittle/legstar/product/tools/esbwizard/
labs/jbossesb/workspace/mlittle/legstar/product/tools/updatesite/
Modified:
labs/jbossesb/workspace/mlittle/legstar/product/.classpath
labs/jbossesb/workspace/mlittle/legstar/product/build-distr.xml
labs/jbossesb/workspace/mlittle/legstar/product/build.xml
labs/jbossesb/workspace/mlittle/legstar/product/docs/AdministrationGuide.odt
labs/jbossesb/workspace/mlittle/legstar/product/docs/ProgrammersGuide.odt
labs/jbossesb/workspace/mlittle/legstar/product/docs/ProgrammersGuide.pdf
labs/jbossesb/workspace/mlittle/legstar/product/docs/ServicesGuide.odt
labs/jbossesb/workspace/mlittle/legstar/product/docs/ServicesGuide.pdf
labs/jbossesb/workspace/mlittle/legstar/product/etc/schemas/xml/jbossesb-1.0.1.xsd
labs/jbossesb/workspace/mlittle/legstar/product/etc/schemas/xml/jbossesb-1.0.1.xsdconfig
labs/jbossesb/workspace/mlittle/legstar/product/install/bindings.xslt
labs/jbossesb/workspace/mlittle/legstar/product/install/build.xml
labs/jbossesb/workspace/mlittle/legstar/product/install/conf/jbossesb-properties.xml
labs/jbossesb/workspace/mlittle/legstar/product/install/conf/log4j.xml
labs/jbossesb/workspace/mlittle/legstar/product/install/deployment.properties-example
labs/jbossesb/workspace/mlittle/legstar/product/install/standalone/jbossesb-server-base.zip
labs/jbossesb/workspace/mlittle/legstar/product/ivy.xml
labs/jbossesb/workspace/mlittle/legstar/product/lib/ext/jms/oracleaq/readme.txt
labs/jbossesb/workspace/mlittle/legstar/product/plugins/org.jboss.soa.esb.oracle.aq/pom.xml
labs/jbossesb/workspace/mlittle/legstar/product/plugins/org.jboss.soa.esb.oracle.aq/src/main/java/org/jboss/soa/esb/oracle/aq/AQInitialContextFactory.java
labs/jbossesb/workspace/mlittle/legstar/product/plugins/org.jboss.soa.esb.oracle.aq/src/main/java/org/jboss/soa/esb/oracle/aq/AQUtil.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/aop/resources/META-INF/jboss-aop.xml
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/build.xml
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/internal/soa/esb/couriers/InVMCourier.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/internal/soa/esb/couriers/SqlTableCourier.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/internal/soa/esb/message/format/serialized/ContextImpl.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/internal/soa/esb/message/format/serialized/MessageImpl.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/internal/soa/esb/message/format/xml/CallImpl.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/internal/soa/esb/message/format/xml/ContextImpl.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/internal/soa/esb/message/format/xml/MessageImpl.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/internal/soa/esb/message/format/xml/XMLUtil.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/internal/soa/esb/publish/ActionContractPublisher.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/internal/soa/esb/rosetta/pooling/JmsSession.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/internal/soa/esb/util/FtpImpl.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/internal/soa/esb/util/XMLHelper.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/actions/SystemPrintln.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/actions/routing/HttpRouter.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/actions/routing/JMSRouter.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/actions/scripting/ScriptingAction.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/addressing/Call.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/client/ServiceInvoker.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/common/Configuration.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/common/Environment.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/common/ModulePropertyManager.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/helpers/Email.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/http/configurators/HttpProtocol.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/lifecycle/LifecyclePriorities.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/lifecycle/LifecycleResourceManager.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/ListenerTagNames.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/ListenerUtil.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/ScheduleListener.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/Configuration.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/ConfigurationController.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/Generator.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/JBoss4ESBDeployer.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/JBoss4ESBDeployment.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/ServicePublisher.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers/ActionMapper.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers/FsListenerMapper.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers/FtpListenerMapper.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers/GroovyListenerMapper.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers/HibernateListenerMapper.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers/HttpListenerMapper.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers/JbrListenerMapper.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers/JcaGatewayMapper.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers/JmsListenerMapper.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers/MapperUtil.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers/NotificationMapper.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers/ScheduleMapper.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers/ScheduledListenerMapper.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers/SqlListenerMapper.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers/UntypedListenerMapper.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/gateway/AbstractFileGateway.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/gateway/DefaultESBPropertiesSetter.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/gateway/FileGatewayListener.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/gateway/HibernateGatewayListener.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/gateway/HibernateInterceptor.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/gateway/JBossRemotingGatewayListener.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/gateway/JmsGatewayListener.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/gateway/PackageJmsMessageContents.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/gateway/ReadOnlyRemoteGatewayListener.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/gateway/SqlTableGatewayListener.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/lifecycle/AbstractManagedLifecycle.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/lifecycle/LifecycleController.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/lifecycle/LifecycleControllerMBean.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/lifecycle/ManagedLifecycleController.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/lifecycle/ManagedLifecycleState.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/message/ActionBeanConfigurator.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/message/ActionProcessingPipeline.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/message/BeanConfigActionProcessor.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/message/DeliveryObservableLogger.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/message/MessageAwareListener.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/message/MessageCounter.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/message/MessageCounterMBean.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/message/ServiceMessageCounter.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/message/errors/Factory.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/message/Context.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/message/Fault.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/notification/NotifyEmail.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/notification/NotifySqlTable.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/schedule/ScheduleProvider.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/schedule/quartz.properties
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/services/persistence/RedeliverStore.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/util/BeanConfigurator.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/util/ClassUtil.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/util/FtpClientUtil.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/util/RemoteFileSystem.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/build.xml
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/actions/routing/JmsRouterIntegrationTest.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/helpers/EmailUnitTest.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/listeners/InVMListenerUnitTest.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/listeners/ListenerConfigUtil.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/listeners/ScheduledListenerUnitTest.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/listeners/config/ConfigurationControlerUnitTest.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/listeners/config/GeneratorUnitTest.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/listeners/config/MockContractPublisher.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/listeners/config/ServicePublisherUnitTest.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/listeners/config/mappers/FtpListenerMapperUnitTest.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/listeners/config/mappers/JmsListenerMapperUnitTest.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/listeners/gateway/DefaultESBPropertiesSetterUnitTest.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/listeners/gateway/FileGatewayListenerUnitTest.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/listeners/gateway/GroovyGatewayUnitTest.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/listeners/gateway/JBossRemotingGatewayListenerUnitTest.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/listeners/gateway/PackageJmsMessageContentsUnitTest.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/listeners/gateway/ReadOnlyRemoteGatewayListenerIntegrationTest.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/listeners/gateway/RemoteGatewayListenerIntegrationTest.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/listeners/gateway/RemoteGatewayListenerUnitTest.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/listeners/message/ActionProcessingPipelineUnitTest.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/listeners/message/ServiceMessageCounterUnitTest.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/listeners/scheduled-listener-config-configtree.xml
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/notification/NotifyEmailUnitTest.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/schedule/SchedulingUnitTest.java
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/schedule/expected-config-01-listener.xml
labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/testutils/test/ESBConfigUtilUnitTest.java
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/bpm_orchestration1/jbmq-queue-service.xml
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/business_ruleservice_ruleAgent/build.xml
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/conf/base-build.xml
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/conf/quickstarts.properties-example
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/custom_action/src/org/jboss/soa/esb/samples/quickstart/customaction/CustomBeanConfigAction.java
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/helloworld_action/oracle-aq/readme.txt
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/helloworld_ftp_action/build.xml
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/helloworld_ftp_action/deployment.xml
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/helloworld_ftp_action/ftpfile-cache-config.xml
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/helloworld_ftp_action/jboss-esb-unfiltered.xml
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/helloworld_ftp_action/log4j.xml
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/helloworld_ftp_action/readme.txt
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/huge-split-enrich-transform-route/build.xml
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/jms_router/jboss-esb.xml
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/jms_router/readme.txt
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/jms_router/src/org/jboss/soa/esb/samples/quickstart/jmsrouter/test/SendJMSMessage.java
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/jms_transacted/readme.txt
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/load_generator/build.xml
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/load_generator/readme.txt
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/load_generator/scripts/LoadReport.groovy
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/load_generator/scripts/LoadUtil.groovy
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/load_generator/scripts/load.xml
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/transform_CSV2XML/readme.txt
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise/build.xml
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise/jboss-esb.xml
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise/readme.txt
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise/src/org/jboss/soa/esb/samples/quickstart/webservice_consumer_wise/MyRequestAction.java
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise/src/org/jboss/soa/esb/samples/quickstart/webservice_consumer_wise/MyResponseAction.java
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise/src/org/jboss/soa/esb/samples/quickstart/webservice_consumer_wise/test/SendJMSMessage.java
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise/war/resources/WEB-INF/web.xml
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise2/build.xml
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise2/jboss-esb.xml
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise2/readme.txt
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise2/smooks-config-XMLGregorianCalendar.xml
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise2/smooks-response-config.xml
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise2/src/org/jboss/soa/esb/samples/quickstart/webservice_consumer_wise2/MyRequestAction.java
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise2/src/org/jboss/soa/esb/samples/quickstart/webservice_consumer_wise2/test/SendJMSMessage.java
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise2/war/src/org/jboss/soa/esb/samples/quickstart/webservice_consumer_wise2/PingWS.java
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise3/build.xml
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise3/jboss-esb.xml
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise3/readme.txt
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise3/src/org/jboss/soa/esb/samples/quickstart/webservice_consumer_wise3/test/SendJMSMessage.java
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise4/build.xml
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise4/jboss-esb.xml
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise4/readme.txt
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise4/src/org/jboss/soa/esb/samples/quickstart/webservice_consumer_wise4/test/SendJMSMessage.java
labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_mtom/src/org/jboss/soa/esb/samples/quickstart/webservicemtom/webservice/client/MTOMClient.java
labs/jbossesb/workspace/mlittle/legstar/product/services/jbpm/build.xml
labs/jbossesb/workspace/mlittle/legstar/product/services/jbpm/lib/ext/jbpm-identity.jar
labs/jbossesb/workspace/mlittle/legstar/product/services/jbpm/lib/ext/jbpm-jpdl.jar
labs/jbossesb/workspace/mlittle/legstar/product/services/jbpm/src/main/java/org/jboss/soa/esb/services/jbpm/Constants.java
labs/jbossesb/workspace/mlittle/legstar/product/services/jbpm/src/main/java/org/jboss/soa/esb/services/jbpm/actionhandlers/EsbActionHandler.java
labs/jbossesb/workspace/mlittle/legstar/product/services/jbpm/src/main/java/org/jboss/soa/esb/services/jbpm/actionhandlers/EsbNotifier.java
labs/jbossesb/workspace/mlittle/legstar/product/services/jbpm/src/main/java/org/jboss/soa/esb/services/jbpm/cmd/CommandExecutor.java
labs/jbossesb/workspace/mlittle/legstar/product/services/jbpm/src/main/resources/hibernate.cfg.xml
labs/jbossesb/workspace/mlittle/legstar/product/services/jbpm/src/main/resources/jbpm-service.xml
labs/jbossesb/workspace/mlittle/legstar/product/services/jbpm/src/main/resources/jbpm-sql/jbpm.jpdl.db2.sql
labs/jbossesb/workspace/mlittle/legstar/product/services/jbpm/src/main/resources/jbpm-sql/jbpm.jpdl.derby.sql
labs/jbossesb/workspace/mlittle/legstar/product/services/jbpm/src/main/resources/jbpm-sql/jbpm.jpdl.hsqldb.sql
labs/jbossesb/workspace/mlittle/legstar/product/services/jbpm/src/main/resources/jbpm-sql/jbpm.jpdl.ingres.sql
labs/jbossesb/workspace/mlittle/legstar/product/services/jbpm/src/main/resources/jbpm-sql/jbpm.jpdl.interbase.sql
labs/jbossesb/workspace/mlittle/legstar/product/services/jbpm/src/main/resources/jbpm-sql/jbpm.jpdl.mckoi.sql
labs/jbossesb/workspace/mlittle/legstar/product/services/jbpm/src/main/resources/jbpm-sql/jbpm.jpdl.mssql.sql
labs/jbossesb/workspace/mlittle/legstar/product/services/jbpm/src/main/resources/jbpm-sql/jbpm.jpdl.mysql.sql
labs/jbossesb/workspace/mlittle/legstar/product/services/jbpm/src/main/resources/jbpm-sql/jbpm.jpdl.oracle.sql
labs/jbossesb/workspace/mlittle/legstar/product/services/jbpm/src/main/resources/jbpm-sql/jbpm.jpdl.postgresql.sql
labs/jbossesb/workspace/mlittle/legstar/product/services/jbpm/src/main/resources/jbpm-sql/jbpm.jpdl.sapdb.sql
labs/jbossesb/workspace/mlittle/legstar/product/services/jbpm/src/main/resources/jbpm-sql/jbpm.jpdl.sybase.sql
labs/jbossesb/workspace/mlittle/legstar/product/services/jbpm/src/test/java/org/jboss/soa/esb/services/jbpm/actionhandlers/EsbActionHandlerUnitTest.java
labs/jbossesb/workspace/mlittle/legstar/product/services/jbpm/src/test/resources/hibernate.cfg.xml
labs/jbossesb/workspace/mlittle/legstar/product/services/jbpm/src/test/resources/log4j.xml
labs/jbossesb/workspace/mlittle/legstar/product/services/jbrules/src/main/java/org/jboss/internal/soa/esb/services/routing/cbr/DslHelper.java
labs/jbossesb/workspace/mlittle/legstar/product/services/jbrules/src/main/java/org/jboss/internal/soa/esb/services/rules/DroolsRuleService.java
labs/jbossesb/workspace/mlittle/legstar/product/services/jbrules/src/test/java/org/jboss/internal/soa/esb/services/routing/cbr/DslHelperUnitTest.java
labs/jbossesb/workspace/mlittle/legstar/product/services/slsb/build.xml
labs/jbossesb/workspace/mlittle/legstar/product/services/slsb/src/main/java/org/jboss/soa/esb/actions/EJBProcessor.java
labs/jbossesb/workspace/mlittle/legstar/product/services/smooks/src/main/java/org/jboss/soa/esb/actions/converters/SmooksTransformer.java
labs/jbossesb/workspace/mlittle/legstar/product/services/soap/base-project-build.xml
labs/jbossesb/workspace/mlittle/legstar/product/services/soap/src/main/java/org/jboss/soa/esb/actions/soap/MBeanSoapUIInvoker.java
labs/jbossesb/workspace/mlittle/legstar/product/services/soap/src/main/java/org/jboss/soa/esb/actions/soap/SoapUIInvoker.java
labs/jbossesb/workspace/mlittle/legstar/product/services/soap/src/main/java/org/jboss/soa/esb/actions/soap/WebserviceContractPublisher.java
labs/jbossesb/workspace/mlittle/legstar/product/services/soap/src/main/java/org/jboss/soa/esb/actions/soap/adapter/SOAPProcessorHttpServletRequest.java
labs/jbossesb/workspace/mlittle/legstar/product/services/soap/src/main/java/org/jboss/soa/esb/actions/soap/adapter/SOAPProcessorHttpServletResponse.java
labs/jbossesb/workspace/mlittle/legstar/product/services/soap/src/main/java/org/jboss/soa/esb/actions/soap/wise/SOAPClient.java
labs/jbossesb/workspace/mlittle/legstar/product/services/soap/src/test/java/org/jboss/soa/esb/actions/soap/JBossWSAdapterContractPublisherUnitTest.java
labs/jbossesb/workspace/mlittle/legstar/product/services/soap/src/test/java/org/jboss/soa/esb/actions/soap/request/MockSOAPClient.java
labs/jbossesb/workspace/mlittle/legstar/product/services/soapui-client/src/main/java/org/jboss/soa/esb/services/soapui/SoapUIClientService.java
labs/jbossesb/workspace/mlittle/legstar/product/services/soapui-client/src/main/java/org/jboss/soa/esb/services/soapui/SoapUIClientServiceMBean.java
labs/jbossesb/workspace/mlittle/legstar/product/services/soapui-client/src/test/java/org/jboss/soa/esb/services/soapui/SoapUIClientServiceMBeanUnitTest.java
labs/jbossesb/workspace/mlittle/legstar/product/services/spring/src/main/java/org/jboss/soa/esb/actions/AbstractSpringAction.java
labs/jbossesb/workspace/mlittle/legstar/product/services/spring/src/test/java/org/jboss/soa/esb/actions/spring/AbstractSpringActionUnitTest.java
labs/jbossesb/workspace/mlittle/legstar/product/services/spring/src/test/java/org/jboss/soa/esb/actions/spring/SaySomething.java
labs/jbossesb/workspace/mlittle/legstar/product/services/spring/src/test/resources/spring-context-2.xml
labs/jbossesb/workspace/mlittle/legstar/product/tools/console/contract-web/src/main/webapp/contract.jsp
labs/jbossesb/workspace/mlittle/legstar/product/tools/console/contract-web/src/main/webapp/index.jsp
labs/jbossesb/workspace/mlittle/legstar/product/tools/console/management-esb/build.xml
labs/jbossesb/workspace/mlittle/legstar/product/tools/console/management/build.xml
labs/jbossesb/workspace/mlittle/legstar/product/tools/console/management/src/main/java/org/jboss/soa/esb/monitoring/pojo/JMXData.java
labs/jbossesb/workspace/mlittle/legstar/product/tools/console/management/src/main/java/org/jboss/soa/esb/monitoring/server/DataFiler.java
labs/jbossesb/workspace/mlittle/legstar/product/tools/console/management/src/main/java/org/jboss/soa/esb/monitoring/server/DataFilerScheduler.java
labs/jbossesb/workspace/mlittle/legstar/product/tools/jonplugin/install.sh
labs/jbossesb/workspace/mlittle/legstar/product/tools/jonplugin/pom.xml
labs/jbossesb/workspace/mlittle/legstar/product/tools/jonplugin/src/main/java/org/jbosson/plugins/jbossesb/ActionComponent.java
labs/jbossesb/workspace/mlittle/legstar/product/tools/jonplugin/src/main/java/org/jbosson/plugins/jbossesb/ActionDiscoveryComponent.java
labs/jbossesb/workspace/mlittle/legstar/product/tools/jonplugin/src/main/java/org/jbosson/plugins/jbossesb/ListenerComponent.java
labs/jbossesb/workspace/mlittle/legstar/product/tools/jonplugin/src/main/java/org/jbosson/plugins/jbossesb/ServiceComponent.java
labs/jbossesb/workspace/mlittle/legstar/product/tools/jonplugin/src/main/resources/META-INF/rhq-plugin.xml
Log:
Updated branch with trunk revison 24836
Modified: labs/jbossesb/workspace/mlittle/legstar/product/.classpath
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/.classpath 2009-01-21 14:47:17 UTC (rev 24849)
+++ labs/jbossesb/workspace/mlittle/legstar/product/.classpath 2009-01-21 15:38:08 UTC (rev 24850)
@@ -1,6 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="lib" path="build/jbossesb/lib/jbossesb-config-model-1.0.1.jar"/>
+ <classpathentry kind="lib" path="build/jbossesb/lib/jbossesb-config-model-1.1.0.jar"/>
<classpathentry excluding="**/.svn/" kind="src" path="rosetta/src"/>
<classpathentry kind="src" path="services/jbossesb/src/main/java"/>
<classpathentry kind="src" path="services/jbrules/src/main/java"/>
@@ -15,6 +16,7 @@
<classpathentry excluding="**/.svn/" kind="src" path="rosetta/tests/src"/>
<classpathentry kind="src" path="services/soap/src/main/java"/>
<classpathentry kind="src" path="services/soap/src/test/java"/>
+ <classpathentry kind="src" path="services/soapui-client/src/main/java"/>
<classpathentry kind="lib" path="etc/test/resources/log4j/dev"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
<classpathentry kind="lib" path="lib/ext/activation.jar"/>
@@ -85,6 +87,6 @@
<classpathentry kind="lib" path="lib/ext/jaxr-api-1.0rc1.jar"/>
<classpathentry kind="lib" path="lib/ext/jboss-jaxb-intros.jar"/>
<classpathentry kind="lib" path="lib/ext/scout-1.0rc1.jar"/>
- <classpathentry kind="lib" path="services/soap/lib/ext/Wise-core.jar"/>
+ <classpathentry kind="lib" path="services/soap/lib/ext/wise-core.jar"/>
<classpathentry kind="output" path="bin"/>
</classpath>
Modified: labs/jbossesb/workspace/mlittle/legstar/product/build-distr.xml
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/build-distr.xml 2009-01-21 14:47:17 UTC (rev 24849)
+++ labs/jbossesb/workspace/mlittle/legstar/product/build-distr.xml 2009-01-21 15:38:08 UTC (rev 24850)
@@ -40,8 +40,10 @@
<include name="tools/**/*"/>
</fileset>
</copy>
- <copy file="${build.dir}/jbossesb/xml/jbossesb-1.0.1.xsd"
- todir="${esbserver.dist.dir}/docs/schema"/>
+ <copy todir="${esbserver.dist.dir}/docs/schema">
+ <fileset dir="${build.dir}/jbossesb/xml/"
+ includes="jbossesb-1.0.1.xsd jbossesb-1.1.0.xsd"/>
+ </copy>
<copy todir="${esbserver.dist.dir}">
<fileset dir="${build.dir}/jbossesb">
<include name="*.txt"/>
@@ -80,6 +82,9 @@
<include name="jbossesb-properties.xml"/>
<include name="esb.juddi.xml"/>
<include name="actionArtifactMap.properties"/>
+ <include name="jaas.login"/>
+ <include name="privateKeyStore"/>
+ <include name="publicKeyStore"/>
</fileset>
<fileset dir="${installation.files.dir}/jUDDI-registry">
<include name="juddi-ds.xml"/>
@@ -92,6 +97,7 @@
<copy todir="${build.dir}/jbossesb.sar/juddi-sql">
<fileset dir="${installation.files.dir}/jUDDI-registry/sql">
<include name="**/import.sql"/>
+ <include name="**/create_database.sql"/>
</fileset>
</copy>
@@ -106,9 +112,13 @@
<fileset dir="${aoplib.dir}" includes="scout-*.jar"/>
<!-- xbean for reading/marchalling xml for configuration, and scout -->
<fileset dir="${lib.dir}" includes="xbean*.jar"/>
- <fileset dir="${lib.dir}" includes="xmlpublic-*.jar,stax-api-*.jar"/>
+ <fileset dir="${lib.dir}" includes="stax-api-*.jar"/>
<!-- jUDDI Registry, we're one -->
+ <!-- We use AOP on juddi to get around an issue, use the modified jar for now
<fileset dir="${lib.dir}" includes="juddi-*.jar"/>
+ -->
+ <fileset dir="${aoplib.dir}" includes="juddi-*.jar"/>
+ <fileset dir="${lib.dir}" includes="juddi-client*.jar"/>
<!-- ftp -->
<fileset dir="${lib.ext.dir}" includes="commons-net-*.jar"/>
<fileset dir="${lib.dir}" includes="commons-io-*.jar,jsch-*.jar"/>
@@ -118,9 +128,6 @@
<fileset dir="${lib.dir}" includes="xstream-*.jar"/>
<!-- woodstox for the StaxDriver -->
<fileset dir="${lib.dir}" includes="wstx-*.jar"/>
- <!-- JBossCache jars - including jgroups -->
- <fileset dir="${lib.dir}" includes="jboss-cache-*.jar"/>
- <fileset dir="${lib.ext.dir}" includes="jgroups-all.jar"/>
<!-- MVEL -->
<fileset dir="${lib.dir}" includes="mvel*.jar"/>
<!-- Quartz -->
Modified: labs/jbossesb/workspace/mlittle/legstar/product/build.xml
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/build.xml 2009-01-21 14:47:17 UTC (rev 24849)
+++ labs/jbossesb/workspace/mlittle/legstar/product/build.xml 2009-01-21 15:38:08 UTC (rev 24850)
@@ -37,7 +37,7 @@
<property name="org.jboss.esb.internal.jar.dest" location="build/jbossesb/lib"/>
<!-- JBoss ESB version -->
- <property name="version" value="4.4.GA"/>
+ <property name="version" value="4.5.GA"/>
<property name="esb.server.name" value="jbossesb-server-${version}"/>
<property name="esbserver.dist.dir" value="${org.jboss.esb.internal.dest}/${esb.server.name}"/>
@@ -244,6 +244,7 @@
<fileset dir="lib/ext" includes="*.jar" />
<fileset dir="lib/ext/standalone" includes="*.jar" />
<fileset dir="services/" includes="**/*.jar" />
+ <fileset dir="${org.jboss.esb.internal.dest}/lib" includes="*.jar"/>
</classpath>
</javadoc>
</target>
@@ -265,7 +266,6 @@
<path path="${org.jboss.esb.internal.src}"/>
<fileset dir="lib" includes="*.jar" />
<fileset dir="lib/ext" includes="*.jar" />
- <fileset dir="samples/trailblazer2/banks/lib/ext" includes="*.jar"/>
</classpath>
</javadoc>
</target>
@@ -306,7 +306,7 @@
</copy>
<echo message="Installed EULA"/>
- <copy file="../JBossORG-EULA.txt" todir="${org.jboss.esb.installationdirectory}"/>
+ <copy file="../JBossEULA.txt" todir="${org.jboss.esb.installationdirectory}"/>
<echo message="Installing tools ${org.jboss.esb.installationdirectory}/tools"/>
<mkdir dir="${org.jboss.esb.installationdirectory}/tools"/>
@@ -336,16 +336,7 @@
</copy>
<mkdir dir="${org.jboss.esb.installationdirectory}/docs/tools"/>
- <copy file="tools/configeditor/editor/docs/JBossESBConfigEditor.pdf" todir="${org.jboss.esb.installationdirectory}/docs/tools"/>
-
- <mkdir dir="${org.jboss.esb.installationdirectory}/docs/samples"/>
- <copy
- todir="${org.jboss.esb.installationdirectory}/docs/samples"
- >
- <fileset dir="docs/samples">
- <include name="*.pdf"/>
- </fileset>
- </copy>
+ <copy file="tools/configeditor/editor/docs/JBossESBConfigEditor.pdf" todir="${org.jboss.esb.installationdirectory}/docs/tools"/>
<mkdir dir="${org.jboss.esb.installationdirectory}/docs/wiki"/>
<copy
@@ -369,10 +360,6 @@
<exclude name="**/*.odg"/>
</fileset>
</copy>
- <copy todir="${org.jboss.esb.installationdirectory}/samples/trailblazer/esb/lib/ext">
- <fileset dir="${org.jboss.esb.installationdirectory}/lib"
- includes="test-util.jar"/>
- </copy>
</target>
<target name="org.jboss.esb.dist" depends="dependencies.get, org.jboss.esb.install, org.jboss.esb.javadocs">
Modified: labs/jbossesb/workspace/mlittle/legstar/product/docs/AdministrationGuide.odt
===================================================================
(Binary files differ)
Modified: labs/jbossesb/workspace/mlittle/legstar/product/docs/ProgrammersGuide.odt
===================================================================
(Binary files differ)
Modified: labs/jbossesb/workspace/mlittle/legstar/product/docs/ProgrammersGuide.pdf
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/docs/ProgrammersGuide.pdf 2009-01-21 14:47:17 UTC (rev 24849)
+++ labs/jbossesb/workspace/mlittle/legstar/product/docs/ProgrammersGuide.pdf 2009-01-21 15:38:08 UTC (rev 24850)
@@ -3,308 +3,319 @@
2 0 obj
<</Length 3 0 R/Filter/FlateDecode>>
stream
-xuRÁjÃ0½ç+t.ijlY¶Á=ìVì0v[;Øa°^öû¼$l]B@ÈýÞÓ¬Aøê>ÁBo%etcÖx=ÃÓ>ÚOý®oÝ0vèØx Îa|
»##/ÏÅbuźÚûb½¦Tû%*U®=¶±ØØÊ©Å<çK}ßâP_ÆÇî0v§>f ïLúà
-ZOÊÅ^÷>È
-.lÈÆ¹aÙ¡¢<Jghk¢6ÙÎÒ#9ãk9 Íÿõõø¾þ ¸&½zb5bÁPyÉYs¿¥`¦Ôçá¯A:L
-2¤õeÛ9dRçnÐõñz{Èq]MªÒÊ´%û_3L{³ð/hÚ-E5Édp"E6ú²ëNð
-c¢=
+xuRMKÄ@½÷Wä,´N>&iapÝÝ·
ñ¦+xÜߤÛ,-!÷ò2:æ´É]ErkCØË;<ßÁ×Tsùhvc¤v=opD ñüRä¡RªXôX[*Æu6«ÌSRm±°x³ë¯i±Éb}ÃØnÈÙ.$íìJNýDÓjQsuï'S³¬CÍEEó²vþ° ÷ª9tIèh{.
K{/Gƶ°3®bG÷ø¹Þ .seî]!+v~+l׸ÅT8¹ï6ßÍñ°¶ZÅ#$Ðä"KÆsIêiS*û ·ÐÑ».5>ÏÊ(ýD9L6ÖîSìTSðOâj¨#Î1oo
endstream
endobj
3 0 obj
-318
+322
endobj
5 0 obj
<</Length 6 0 R/Filter/FlateDecode>>
stream
-x½ZI,¹¾÷¯¨ó@µä
-EA-Yß||óÁçâ¿oI±KÊ|ÝÌ`Ô«ÊVJ¡/¶OrúïÇNîtvéëäCú×üùû¯§¿ýtú÷»,£[SýÿïÿüÝe=Mëz §!}§àÓôâo?9ó¿4ìñù1§¹çñ2>ÿqúË{8yúüí«ó·ó|uávWÝàÆÛy¼º©|ηáê·ÞÎñêîùÇãÆ·¿þõcûüø¹³Rüe¥QäÓ».ÞÎ>½>ÜÒ¸XZhÒåö̫°%Kµæ7ó¯W"=KCp| csKæj¥ò£LðÙ;-äqÔVX`rïÊ/'éA'hå;}iö¼aRï}R ® äçÉ`dY`i6påo SáÑï]9DhJB*ââY?ÙÓXÙÓOe?sÁÏ»efbÎé¶âÒjw1_q?3hÉiqibdÉ1V@ø»²øP%H#Í¥~!WÅFy)Ke²jQ¼´zyÆ`ë°F\èh±T´
-ul` ùÄ(@ðÀÖ`¨aÚ= rn
-eº¼Ïq>3)Ƥ´Æý`ùÊÙá³Qv$¤5^2Ç&!¹Ézló(©Ó2Á"¥
-aÓ$Q4:ÙY&ÝpóºHÏIwÜ)Hg/®¶øZ¼ÇÀ%b¬-Fh[÷
->$;/WøÔ)Ò³! éûß±åÌSÊ|kÃ-UõæzGXpjÇ¥dz4ª8ð-.¨ðBV[ÕwJÏUàQà=\)¨fHYØI×UÙ°-Õ
-RcKy»0I×iz?lû19Dc/Sº%¦0càlÀ0Wõüõ¡Ê}ûKèoð##à`eѰÞvyNÍ6þLîµüTT¬¥Üä)òÇN¶£çY¹?ëáóÞxÓ _xä¯G¡Üe6¨:a.SÂ/I#¤"d³ÔÁgJ-!·êSÓ ®TGÓªãé¦*£Nbsãá:§4´gemäõzäP?@·þGÝ(J-~JYRÓ&¹VᤪëJ±¤cÜùÐtò¨¾ªº
-lºÓζu¢OÖdV¬Ëü[ÏÃ@*ÝÂßÀÇ0}P¯F¡ló9$Èár
-*ó¶ÅuêC_pH¶«°w§èk!A7aö¬¬òGÃìw]
-+AÄEKÒñ@Ó;ôÚm¢CèPðMâÒzÔ¤\¹¯Bµwv)se¡tB=LÌ
-W°
û1á[`Äq|R-¾&:g
ôGH¬Õ² Ì£³êÚ Z
-µäÞæ2¬
-¡«Úø,®°ñ%ÄÜNäïá©{¨¯æ 6N·Â²ÊÛ
÷YZÅ0e:¶søFÞ)Uô+àÿÇ)³G:òãzØ3K÷fSÆ.SùÑ"éØwýÜdoQVãS>3Ëf±*<ѬLµ#G-5ÄÎAJ¸+H¯ 2RùÑ¢èO§¢{Åòvs°è,±rJk&ZEÈ
-Zjº´B©È¨uðµ,_ÎZY§DÓ×ÚØ
-3ÎȵýÚ¸²cPº:îfPqÏ~mË\úa-NÜ`
-©b>H{Bª~
-qIG-:ÿA¡êBÅ?«¦h~rÒSZIËÄÍY,"©ñ~§Ê
-ªÍäöNÏõÉ/L¶½Ë÷×pëòX-FÏ5v -á
-"ʤ(Vnpy³àyXäN¯ <Ââ¤tZ§äøfa"ï@ê·AxÌù¨=-²wâ1)6Ó= MJKµ³Èµ{ªLØÜϸ\䨏NâjBMn3Á«úbÝxÊZ'~9!×>m"¶.Â{
¢~L1Úº[¿æs.Ç>:Ïú
-à*ίâeíêqj¯"4ËãUsJñV44+×rEq_Lé*¯l{SbÀäʲ*rÞ2¨{´½-)øÔÒ[T©SÊÏ Ü"xVú½¥Oó~ýA"=bEcj(|Åú
-ª?ç¢r˪#{½µÎ½îÎÑæä>ÁÜ'Wïßûîܱ«
ÍÙpY
-yVÓùà÷o¹:{ð¤D~À|RöÇôt:êÔËÐÝaàC¸±Vn¹ßkv¥å&`mj±«kÁ3Õ%µ=onÎgu>TÐ~;}jy]§øåf4 ÀC?:%Çö$@I)¦-'þ h:dJã¿ôxR@ìÎ:>¬)·×Ká¹Ï0îžóÖ/ ÷ÎÎön÷²h?þØÎå²
+x½ZË,GÝ÷WÔÚPåxfdBp»ºr1;CÃ,ïlÌÀx3¿?ñBWåuSP]éH:RÜäåoÿ½ËUøTþÛmáû÷_/ÿáò7q[ØÖKý÷÷¾9qÛ.Nº¾U¸áüí8gøøaïoÎÏíìÍ^>¹üxÏßþq7]ß»_å}q\þ¾+±_íÝ<ws_gö«³íW¥ãÈ8ÞéýçÏ¿½=?ß~ꬥõͤµ,¬eÍ®îËa
+³>%®q8ÿ~Ä],2.câ4ðXþÞNñ÷ò8¦Ü¯ÌßéLðßt[Ó]§ÉÆ7Îïlعâ¼t=¾¿¸ê³^/̬òôÛϪod^
+s¡øóÄG(vÍ|zm9:·ÃðL³á·RùDϤJÓQ¥zÎT)ÔMWª4ßÂ!Ú£ÒÒPz:[Ôã3-â§÷÷ò9>ªÞIEðÏ$Dr¬$æ,,.·y Jù
+nùúgªEìÊ|yA4²:)ʧ7\UçÏÃ,t#Òyß*X¤©Ðux$¼ïøp × b6Oþ(¿é¾Â1Áà¢O<ªAȪջEaÏ
+ at g×Õ;2:ºQ'ØæÛB}kÃè£ÑSe0_ºTy^Üa
+BÐy4µCÐË:uÅnå8*Ϋ|@©V8[Ƕ4+ßI³»Ög¤+ÑmæA¢¸l ÁI¢¼ñ'X;É÷¨÷ÆÍtYl¡Ê>){ó⬮Ü
+[ÞØ¨ÂÇuNÁ<~kñv<Û
+é#÷=mZR+c=!õ_WGÙ(q©Öî&û1«wâÒ@,Ä
}T^ÖxÑ8·©~ó%C½6¸än·¼U¯?á¤ÐûãWëÀ&ý2T7F®j$U+× U
+ÕLuÌ3z"mØj?ëv[Oìh[}ô
+,èuG6/MÜia¨²zN0ó©NªN>s
+yxó@@ÏnôN@
£Ð,ï§Ë{µuBk³èAkZ.7+W+[Upë8$Q_SEå*ÎsZOaî÷1K|%4ÿ[oLtÖNvEǨUKàHèé#Úªhp
+¨ç6à
+§fUçÎ!>ºIƺ¼¢ÚßDò2¬r'w
+AùÝ¥ 9^aa¶ø¨aì¥Pz4åÄë©5Æ«<]ÉþTòRzòµ#i s$Ñò¹
7æÎÑnÉ*h9
+z!ëDBBb×£¨¬;Ììc/%$ ÏÄ@Ê<Ó6ns1-2µÀ¨vÈÓÎ'j;q»r/B4jâàA5¢D·ºxjLRÕ¢oøß8+,â!~ÛSÔÕA½¸®Á<ÛRWh´ÇA1)ݶÚ)ÆÔ$ÑÞ±¹² \¡Þf¸'%;ÑÂI°xÒË|Fjåå8j$Ù|ð["Ų$Wõðò;; äC@gç|&İÜI<v´ØaoZÿ5ËÒ¶
+tj
+ Ã-JX!YLiM;UR¦Jò§Y㺤 ×:6n,K6§ÒU)ø±T³/PòØUËÈ5øBe"ÉF3Ùl¼Ì¯þ³Ð¢ê´¶6HåÈãMe±äRÊ\ò kk5U¥@Åý[¨wê\Ø¥¸Ø¬j
+Z½R;Æ">ÊAëØkYì'%ÉÝt5²i¸`å6Æu£Ñ¾,¸)o5õ ôµGN]iɹ³ð$1je
+§3¡!Iâáp½.`·è á·Ô÷jUTäAâ¿Â¢*ú»§-Õê(:¶µ
+ÀF/S»Ô[Ȱ*»<ÛàªmÛ)eÅbÃPSª
%ð<Èh§f`®ª,cyyÐLmÊÀ{Ó
++øæåV¶òIôU çDÌó.%/ÇYÒ®fMXúJ_ºçGûYEïàUNsô¦a=®XzMj-5æ1&ÑsZÆA&à.úû^ÚÖøÄN,ö0~! ¤mÈDxÜBÊÑZ¥-ÈÍÿHý>`Jm¥y@
+&Q¯ÍÒÌ_N4¬ø^@QÌx±Å!fàEPIS±
+cd¨àôX 60Çø/¡Z~uw»ùúóøÕr.ýmÍ»!}Þ¦¯Û×}zÓ¾à1в±*h¹QÛ\ËÖµ=©Xå¸$ÅÀç²<! §ë8&êË[®2ÑøÀeçZ¥
¸f`hþ뺲¡GÒ쵨¹Ap(Dóqº´°óT¹x¤íá0 <`¸RØDÜ΢©õÒ0ï!Ì¥zsîR%Ïø:>µ,q©ö^¯¨Þ9H.$ÖºÓÛRm)Õ8«òò¤$6ØëXÐ3UÅSúâ8"ºÝ4êjH'CÑ EÅÜnËBXý.ÔqußX#ÄÖ¶pzáì«_«^%^¤[Þýc¯n¹ÏÜá¯É^ôM´*%¥mhZÏ
+'Ë;xe¤í!N^Ä9L¢9èÄÖDùWíùj{z ï¤\GJÀîE?Xì C¢4ÀîVX
+ÉeR°å¡D"
¤ô¡>"üOíoJúl
+¢Ï´¨Ömx øÐ\S$ذzôϺ1[{©W6ß:¥Fît>NX$a²Éô×È&뤢Uý£:ôOK¶EëÍ@Ò¥(aÊÇf¶Yêö«µínîµ[D"c¼yÕoÉéK
ùeÌ×±Öà/·Ø:àv³?¾6ŶÃÕÝSuzímãÛZ´&=z®Óê®H¡ªLcÉÛ/+ªµT±Uô|é7ur÷¿Ãýò¦à ï7tÒg5à¦.ZIÑ4¢"[íQo¦ô2¥:T»OS"UavmWJõz1XÑC
4åeL5¥våé´Æ ÜDùËn;åx/>o÷Èu÷9°«hÖm7£z¯K{¥:<X^Æ7JÈ
+8
endstream
endobj
6 0 obj
-2883
+2692
endobj
8 0 obj
<</Length 9 0 R/Filter/FlateDecode>>
stream
-xå]KoëºÞçWx}¸|?
-ÅAððC¸ñ·_pLø.{ýxÞÀ¥ZÍáã¿\ÄAO¿ý}àIîNÏbàþ$fáN_Üé}zÿxúu1
¹ú£ñ8{»Î0{?=Û]NÏfàìôÌyÎÊpàüôìá;§g~ÆËÇ/Luæ R8sàç äI
-æbÞO|°
-Æ6:<~(~°²5&ç2,ª6¬x²|·#Wø§pþ¨«ØzVÓ±q¿iÒRSâÀQ"°¹X¸A0 £V§ÀbÎâs³zPÑãI£à£n²Ñ°Êög;f¤CxyTjÒ>þÓffãå6_[T ÎpøèË }gjÐòvÔA<ÝTDC
³8lºò½£¦çé=Fh0WËõ® §èzA à
J4NöÀHüÛF!Á²VÜ_ÞJ>oÂ5Îp,+I²¨s1y ³Ï<Ê/G!¸$IÊÕÄDa§òÌýá¡Y«ÏÞkLaLv'uquÁ&åü°Áoyb¨SÀáì°>iðQú\@H½Æ4ýT#ÐHEp.M/¥ñ³×,í½É,y§H³GWáÝæç#«¤í&ýqéE7]e+O¤@ÂüV8p]¯wqmwW¿!YðÂä-÷g,ç"°úØNò¥õIõL±R!¨=nø8ú·>!î ]|ËÒ»È<Â-âè1V
-â©á×e.s8fç±·f±yÄ|I"½ÿ".áa1Âï¨cH´Õ°?À_¹/ºÞArÉzâ--#òÖ ¤K
-à
×g*À«sáÍÔ6âɯúÐ
-Q{ÔþÔ½·ãõÒNÈ
- ·²]:÷Ö0¦nwò
-Û,(8ªÊÂaà:¥<v\Øe°ÍÞILõæýìÌ×î%Ï
]É1 °®¬Ãcm¬Ðç
-ÜÔ3±÷¥Hõ®ð¾6ý9å.!%Í:üGY¿"sïFe®Q£×ÔnTPMµ ýßy]B@·Pà,Ü!pëÜ,.±Ø
-\2}âùÀ^¡7¿âZèÉ@¹°ÓèÏõWþAüÅc3&4`ËóoJÒOÈãr
§îh MvêD?öôcJbòeºÀçÃãíÍnnn¡W©öø¸O<2UòqkT Ö,â
üÈÝé/x½NxîЮòì0Ü-}ÈÊz8 ÷ÒWëxËëSðU}/%kÓùî.]W±z^ïÆ¬Ný@8eNtvp9f;
Ýd6û»N·ã.JôpØË#HÊq=Ä+ü,s*Jçe\;¬¯>}:ï,é
-ziîaï¡`ì[+ܼ¹Yúaº0üÑ Êtã·hÿà7°aXàúàPÁcïÍÑvrgÐåã.8äèÜ 0ÁÍ5B©¹6_0MÅ?=¥î #%^ûT2:Ç.?J !^°$ôC Õ£fo´.ê¼¾ìFô©GØ¥^Ü 'ݲß`lJ!xnð6¶²È¿yjjãâøå=[b-«¸½j9ùýǧIV´Xå e³$æIA_AøP¶fÍ.³ÊDlÝz³Öâ=¶û©IrÎìîü®±Hý@³
-GR¡WIX1âÖGKsÞC
-í¦,âÙÕU1îfêêÄ.Ýôص}oèCJÈ ¶ª Tlh^êÆ ¼¢ø7öÑû#,C/Ö&ÛéjØ_úvé£Ih¶¼JÐ'´¢N-?ÉÛå_×CçN¯Ø\=v]ç¤ÙØD´ì[¸Ú³±êoÖ<)å}u}k#dñ§Oq2úOï¥r+¶3=йZ/¯âsR¤{nkÏø*îª3Ü_
-§¹|hÿ`Á£9p30
iñØ ½!9Þ´©ê¨ëcïÑóñ
\{m
-J²m"e£õKlë@Jr/Ï©\ñéÓ©Û@ò²"v60:øÌó&õ¥n¨<ÿÎÛ¶àQYÕF<¤n¡ñ
-}g[`ü©Õ)~d&2>PÞ|õ1wÀâWY5
-Ë·¾t"¥&ÉkPc\@Dª"M±×Iç³tQÒ6Èæ/Èø <;Ý#´ýz-»kÒùn >s¤ Ûóݨ<sÎ_ä¹lb|J}þÉDnó¼öÕ&ðªf dm]@°Ø*§¯¤¼ä<CùÎü2ñC°9£/˰q#VTShÃûPQmû»2wáBxRX¥ä¨µZè¢,4)õô·Ö_AÕ²aÖÂV$òýûqs×^Ryö¸{«Ýq·}oθ1cÛ¼b¬ 4
¹£2oÖmP&ÔÚ³¨vÚµ:ápªùæ6æmS³Õií/Ä7;öa%´Ø
-ôµÍ¨³%[?Û½qEÇ¥¼1·oi_òɪ7 (|wê'\ðYEn ÖüréÚÔöÛ}PB
-rúö×9ÿìûV¤5§ìÁ=¯Àï÷p&hÉ6Íð}½@£¦¯ßÒë«SÙ
Y<`×ïôpTok㫲7n°½á÷'ìýo¡¾ É ú=ÄÓèQåÿ1g|U`¯K/rMÐX§Þ¹Ú÷âKìîO#òáS?Áx¹dæÿ³È§Ói÷ëá°ì,Ä
+xå]KoëºÞçWx}»âð)@0pNb/º»@.îÚ[ Ü»éß/gHJ¤ä$ ëAj¾yÏP§;Ãþ8tcç¿~´=þëð·_¿?u'§»ÞþûÉv§þ`»îeqüÁ_øÛ/tOüçOûùú${ë-üñ×þr
4×ß%ÍÕ\¬2G+ϯÿyº¼>ýº¸ÞâÚ´_],üÅ´:ËÁóøõ}>~¿_q0þûQû¹Î:þrñNJW?üÜÿxýkeríÌÉÉÕAÜßN
+¸ú³ðqæ!û¡~O!äIo\ëw
úìÀõ']ÄÎôç£ÆÊõ¥DCÏ9J Ggsµ:r!°o`vGiÏ\G!ð gmK¿èñ QøUWÙÏh|Âögf¤Côò¤
+Ô¤©è³Àð Ð:_[R!ZÄ_Nø)Ø'àIaÔyr*Òmãzê{¯lKü8½I¨Á£ÇxCå\²Jz&ÆéôYIhH7Ü_ê¾Þ
38.kaURtw¨ÔaòfßEaA~:&AÒÕÄD
+¼0>çþÌð¥Y«ÍÞkLai¡.®¨.#ب /ûô
!èt;¬`3íÞWe60R¯q²¡¨Mðà%7çc?ä|Î
+x4³´ù&Ý`É;uE=¹â
+N4ß{ºAÚ&`Rùh`å½W35=I'ù9sâ0gß îÞUÅ>´^}7ì×0Î3öâw,ç"&0_`ì$_ZUË+å£Òtûëį£Ûà3âÒÕSG²(7¥Çhɧ¹¡y>M³ë&òøY´¥eºcºÊDN¾aÂ*Dù
+eY5¾üýÁ}ÄUlÑô,vBv-ÁF¥¬â0:/þ}®öa6IÉkUεñAiöýÙøÆÖ¶²^«VPÎܤ
+äé"LÜd´«.ò²85ÑS»½´X.lAùý{6æDB¼/á5ä+¾QÚ®FyIÞ~ÚñÒûCôÀ¢Îȼ¾
+ÖYø?8Þ¸L©ÂOéoÒ[Ájï#¦xñþöæk÷â@Ïà£ØZsaíxy
+<ÎÆÚ|ª½MÝ8{_³4ï
+O$JØSC2Ҭé4O¾ÙúeY{7*Óx½¦jp{iAÿ7BÞFQÑ¥Dç¯"sC+°zrf½dJôZ D-Á!ٺƾÒÍáòö!ÄX
+
+ò;[5±Ö
@D&#;¤&uÁ"!úQ
+]RólÕ)Å#?"c=^*±ºfüt¶©ÈV¸JÅNdªi+52-]øµ_#ÃIJS}8}æØ=m
+Òùni>?Bá{GÛÇà5éý³K¾}íëÎ:ÞqóÝ^½Édõw9xµ%X{c¢¹áYܨQXÏçáùù¾YKFµcAéz¼9]æÕ^}põ¼²êDaîý©¼³¤W¨¥EÛܲ5d_CWÑ.&mÙ¥
+|9!9wBeôÈ,ýN6Ïö^¿â_~Uj:ëô MüêG}ÕYMT§ÒrúT¯$OUµ²w¼t1>¬n0Ãï°@Úqõu%ºUâxÕ½DºÔ$Âá>¿Ò>ÔcmÍÞ$aØ)ç¯ìcUÆS¯Ç´ÃåÌ@ªûÍËVS/ßÒ/¯ÙZ«\¥VËåï¯>Þ¤JjÐJlUãÏ9HYm(ÆaæéÍÁ¬Sk*B'×sX_°Ðýg*IärfW_ñwMõblí¹@Ða¥x¦<iz}£kÖºÊÓoÁ¦ÃÙM×aÀ
+.,!z%I#±£¼pûý¹þÁdë®x`
+ÃÖ°¼Çñ6«²FÚEóÕZ(!«vW6al`ÃÛÛ±¡Q·Ä-³øÒ¾7´Aeä@PkÖªb¶Ùe>Ä+z]Y=plÍ77»<¬;N=U>ýþ²ÿ9º¥¤âæ½Öóq<
ê[AGÇ èíj°k¡,RãWèµ°SÚlì)Z¶-ÜíÙ½Ê;pÖ<)Õ÷Åç[ÙGÞìî(·]åj-Ûs/DvOçbù¼P?¦´Hú,ÝÖéUÂW¸?ûßM ·f´@kùæpgyoUeçI¾ñdêæ,?Ö7¨Nã·Âöh?»ÙFo'2e¯xSÕäÆ~K{~®%µ©&ü®h}ôª}³*Bï:ÖZµ ú[ì°ZåÚ îyhê
+«Þ
+F¹
+{(¯@ðËÓ¨Úxú×2V£c
+.£[\J°K=] ZâÐ
Tyè
+¹ÚϨ¶ªNáæ4vã@6'Ù+<¥ªá{ ¢Ì3C-2*ìl°¼r¤¥ªYÔkä
+,HaÆO£Þ=hÎgÕ½vZV¤Båô-÷ñå¡¡ST
+X"ã¥Ó©2jh(.æA at h /Úïú%³Ç2Ò?=õá%ÖæFöJºï:õ}ém+h6êÍJe`3PwYFY×)½âbFÄ\ʦ.»Èq~ÄqÜWãOTö¥)vÓ§ob=þHXhÖö\滩±NM¬Ãñ'ÃWÀ:ëg´:Ô¯±qºp¬$WÂØ¸3p-VPU¨;S\)ÒtáCJþѦ»{väÇùõó·=lð +/D9yygPþºÙÊ«éý\7ÉaØþ^×]")þLØ_,ðÞÚ5£E.eÌ 6VN±ªqÿ\iþ·kàjÍtªµ°G:IÖU=.ÖQ"#;5]Ô¾^%ÇW/íÑd®âÉ:øm$r$m¦>èj÷Ño±®úNø
+¯¢VÖçK+¸¯rzäñ=H/|z»´&Ì2W»²+»üÞ¿ZÂbÅçØ¸kéÞlTÞ½noËÞ¾-r|'yAióÙX{
+=qGaßû ̨µgÙó"`}l#õýÏ~ämÐÛÔ¸Q¶´¬ý
øncVF
+°Baõâe³z¦/DIJ¼¤^¤g¶ÂhÀÍs¥å|#Ý»I8 6 ( ù(:j\Ö
+¹¶«¦8×îrñ
ÀßÄÆÈÕ.
+ò¼Ý¾ïe»ÕÏQ¦k kì+Ülm|!·35}ÈÎè;¢Ý`N:þ7G¿þßX÷Ì
endstream
endobj
9 0 obj
-3119
+3068
endobj
11 0 obj
<</Length 12 0 R/Filter/FlateDecode>>
stream
-xí]K㸾ϯðyîo 0ÌNÛÜ ·ìÈ!@æ¿¥*d·Û{ÈÓ~d}õbU±Ô½Ãÿ¾ü÷Ð^:ÿ_+¤¿º®?~?üíÃÂðïÇ¿¾üúýóîU¾ÿóð=qøþÇßZôÑê8:k
=ûÿXuzñW®Ú_ÝQv's4ú¤öâ:øÎpzÑéNþñý¯_Îß¿ü¶Sù*Éaåùôb>ÝU軿T(+{÷Ú=*£ºÓ÷S¿é»×á`{ùªâOÜÈLìÙi
-Ó~Gnè¼â³bI6«Óìm ©v,(xsJâVqw#~\XKÚÞþï@úx¡XÐl]$:ñj:Mv
-[^Ç]@'JùL+PAIzÉAf'¹
õ¯ê=çÝj*íqy¾<°8
-ha¡Æ:a
-¡ê¬Iaþ¤à©°¥!¬Çð1ÛýbõxüyVñWý¯
-ìÝ19°uGª¤±TÞ1¢æß@ªYXð
¥×8ò·],µ
-æl{Qæå/)êêÔÌöf,fµ1ç®ÔèjC*Ó:£¤Ö¢|1]ñÂÓÝï¨,ÞW®Ã¹":óBÂ;r¢È®^²
GÎ_éfzÏPDe¶~UôÛ[¾Ò¬<À
-°³,*«·¨`{°
(¡m¬Æ(«¶èNNzc®È ïC"¯
--bS_Jut¨
-UýUÂlE$¶ðKªkÌéÂ5áQüÇ}ÙP£g¼ 3Â1DvIáL±äLÒ[
-Eãγh¯Á>Æròø¥¹^§p9[¨H+·fÛ·¿ùÔä}ÛÓ³5vTµþ«¬ mª7%!HugÿáÅþýÖzîBCé 5Ü'Eêq°c¢®Ãî,ûÅ0w^úlMe×üu5I¥ E
-Ð^<x.@.` ©
-á¬YÃ_d´§ã]£%/wÅçmXÂÞË¥fÑ%Z1!1"Õ:Æz at 1²2«sßriÊt>ÁïoæÇ6æ~´=[Ê:+"«ó?ã[8àILÅe¡Sæ
-ö<)-·!y&j¤ö~a³yôÀl*\
-Ý»@*Üþ\vñY¯ºi{>;°ÚÓüU Ϊ2è/Ê ×©û¶gG@>+Àå
-kéøç;
-
E¸q{°?53ñ¼ð
-'穪'·
öÆ´abH¿)âëOP±Xú§åÉÇ+|TiMežéØp¬ßã¨{ºÛºïÞr·%
Çôúâ@]újvùïT&!É
µÆÇWìf^xSØ<>í¸ÕÛÑÔà
-zR»éØÑ9ÚØSyRõ½¨X³0!]µÄzKéö-Yj+í v{X¹ò¡
-uÕRª¶g¢G²¯yª¯þGEàÍùfئLE@ÍVHzßÌ]ÜERµSb@h¶O
-qWÎE#]yÜTÄ¢»óh/z»ÂQhºÏQt.µòÛÎ^<ðJW½½X$h5.«*YH»R3hÖÑå1C«ßÂÝøâF_Ú¯ôq´ñÀq(%M}©ª{'°ÎÔ íÉÜ\
-ðvDÀMðÞkÄT¸î¾Õ«®Þ^bw¨®
-#°ÀR·'ÿþÅt`kͬ«µ|KLokSHorBß"´Ñ]ìÛ&çIèÊvJþ+aL´÷LZ]iA %ËøWÃÒð¬jö³[7aH
-Xó :mpß¿[°¾¾Õ¦Ì6¡1ÉâÇÖ°åpÔárqÇÓyúÏJ躩Oʰ|bJ}«ja!ĤÚãÀæ!D+kÒ B4)x=Åc(ü8CDnöY¹ÉA¾Yÿ ïN½x1w'½Äm
ð¢«=L«·©Î¢¬½ t¦fÐ^xåEÔYǧëÅÀ4êáNe먢 +V¢TYI\«ÔôèíaÛ¾å
xâ%n°Wø`·<P5U·yÒ{Ô°ÍåcæÍÖ¸¯¦J(Ò*fÖÝï¼ôw&¡-á§Í¾\§Ü~¬tæµPò_õHC³%bâ{@GMª×HöÖ1
-äºfCÐÓÓ3¼¦A
-P/öÂgJ9¡ö²úX 6à¨UåajÒ»ù¨ý¬yÊ
-Ý©[·§ÿ3 |g¶@8Õ°oWrÀ%IîT´ã½8ëj·ØPË6ÖÂ+²:r.;¢ý#DØ °7?Ƴ*ÖàS7n/pFoàpvQª/!©êp+WêâÝO
-1X{T÷p½ð«snÙø©¶Ôl¶ê¦÷<u«ö¤Üçõãe£ÌÀgæ Sªj
-ÜôY®Õͪ3t~£nÜý_¯GzêVâ¸gè#@rYj$«
-M0©û¶'é®÷tDæ
-ëGQ ËÊ*âµ»vúzýÙ5í}_?"÷øÃãOØfy«àEOܹ=ù÷½vDè
-°K5ÿ³3È)z>=̶x<ä±fÌ16>áÊnLeíiÿ±Í£(ò)~ÙõtùÔ²éÌè¹3N3/Ï¡-.1X{ªïíX
-\À§ÂD/p$özmΰ/«ªÖ¸é+7nOö'ûÎü ÙÀüJ* /z=ìm¿gLãs¶ ¾^ ©ª(×ÈI<;RwÀT¤9*¡ºè½0Ó6Ýäf7&GûyòÝøÐÕĵâ±i¹jé<6{9Ï*ÖÒ
->9ÊOßGdóx!{
-
-8æ6´·t_ÇG¥AÜ0H«b®1GãV:Å=(Q)åWûsz>©áùÁ·ß;Ûª]íÈnù¦'Íôg~BÞPbË·Ìúî4_© 4GóØBówZ§[ô!å4òËÖpìµ§Fþ,²q³Ü lÐiºkáøÅx^ùÈUH¢îß^é="åü- »D{üêìÁÁ¦ úÃX¥?~?üñËßÿ`b;L
+xí]KãÈ
+¾Ï¯ðywTo 0ÌL·¹-Ð@AnÙ
+Cì%?ÅzH%Å»mKY O˪į"YT÷"ÿûòßCw8vþ¿VHtÿøíð·_ÿ _¿?þõåÛû¾{Nt/ýáý¿\ÌAÃûï?éþ¬OöâÜùhN²;Óç#:tÂ8u>Ê5ç£pî8þª'Ó9ý:þì/I
+8cÿæïýòöþå×ÅôDßWæ'ßÂÄpú^Îjè¡OJ+{~ÿ7uMÀÑîE-èdôYf8DÄ
+`Gb~Ãñ1è³b´1í?615ê,2¤!k '¥É1¶§üþW
+´7Ê«i1Yå¨yÂ%3®A#\\¿)t<¾/v{ÌjÐ;ïcÊNö¿Ð.eò[éD{Ó«#=éùÅVg%Ìb{l
+õ5âÉÜßiá|âµ{8Ø|é×aB¸ÛÉs÷'hk°t×òÕ2_çT1Øø¢Oö¸3Þ¢t~ä¸V¨ºRëÊ3}äRá
+(c#½b~aN3PlËó*9;r³1áû.¢0;yëé\±®´A]ÿK*]#8û¡$þàB#·ÒάB@ßDnæGD¦P
Ṳ̀[oM§ÚÞ[yjZÏÛî£
+YæoÅìH·SAÃHã
+¨ûÆÃnïì@yÁ@TkFgqpÌMvsÌ=ñÝ4£(z#ñ¥ñIÎDáTµ%©©lÌãæ¡EÄh@LÀÀÈqIGÞ{:ï@F`1íÛìÐw$3ô£áI¾âLÂo±nÐß!4Ey³±ÒÁãj®RL¹F#ÉBÞÔÍ\×,ÁŸvrôÐ4ͳoÇ,Yv8ª¸ºÚR4î*YH
+-Nãz ùjDg&
+PD6 j@±Hà5ĥȲ¨×3 Æøñ¨Q··z;á bD9MjkiÑR;ØÃ10ú¶\Ü_«1¨¶e_üÈUÛY ËÕ
5xæ®L;ØV]èXr?-â<ÆRMÕ0 ¸A¡ºìæVuwô½Ü§Æ
+a¨Æà
+Nýà=uj^Ûû§
?/@ÇV¨Þ ¼¥GQøA1}õõ<
ÇÚB®Íkyx£9Y1ZåéIâklA³PlîLZ¿QðÂíÌèF¿ÀôËÔ°&<çå<ÊK¼øGûÌâ:§G>ödx3¥!á çQK¡uaåäV¾q·¾¢Â¾PóMö.ðdË<PÔìÆ©^jíÕÖîâ§u&"s|/(ÄGlÊÇT
@FEVÆ$Ê RmTØÒÖã
+øí~±z<þ<mü;äì|èbdíR¢É`)5¨oSÏõóSeÃ:evÆzîË<NŤ%/ñì7hnéÄØjéU
+8Wâö6ï^:
+á¾Ô÷!×
+tÕRÂS3ÜÉV¼"@äÐk%ÿQhçp¼êÛIS´r*}J=Ǧ´¡ÛÍÜÕ]däPû$tèó@Ì÷ Àd
?Ó
+ܬÆaºPª4D
+ò([zoC\¡e]4×ånÇUå+ºBÇ<ípWè"
+@×t8VAù%h/nxBE«^Ö @ÍʪªL5íѺ!º<fèéW`¦.'~i¿ÒÛÑÆÆ¡4u¤ª®£ÀFSlOæÍðV¢¨°ói--æAÏÂ1¨^cÕÂÁuÃxbîÄ:¸¬èðf¹UÐxQħMoæ}U]|{YÝ¡¢Ft`ù§ÃÏ Ó4b
ð^`âF`¥ßüûÓ å`"éU¯iél
+ià%NªX,s`ûºÊmº2
ÿá*Ó å ÊuôÖU)YºßNÃ!jí%g· ¯Â°æÓtÊØJÞuX_ß}jU~
+Zaöä$wzàh
7¾®(ÓZV¸½¹ÎÓ¶+¶º£¬~©t0Ô䤶ÇÍC ¬G'NTÁï8øBùr°Ù?Ä"v³ïÊÕKòÍz¯áüôL$0ôç½sc-üD·©&ù©vS_'y§wÞV\:¨×¼G©§:ò¤¢&Lz`õR§²iTÑõOÍ+Ñ;ª¬&®ÆÍÙìj;Ïáúµ®¸ÛT<ªãR®å[êªyÒÛÝZ£§ÈÇÎ<Ì[Gª÷Uߨ¡:KÅ)y`¬§ýI`ËÍFøÍd³ß&×)7+¦y^{¬6¡ÍÒÝZbÝ!¢yUߨAõS ?Ð5ÐÞáµdâTZx±>G¢¦ÁÕ=q$ºQ5q¬µ£Jê´~{ï§,ÄdÞ©£BoàÛ6z®ã®0ÑûjhÄÛ©þQ¡-Ï(©gÝPíÐ+±lc-ÜmÕU{Yíö@èÕDhJµZ°'\×oÁò3Úa/¬=`ûqÜ~ZMÜÆW7Ùdû³uÔÚ?w-¶FVjzCKS½é
+×9W+Õ·êõ®zlííøQЩ[MÐX&UÕ>é½
+z®^Z»
øFê³54xõF[Þ¡eÚݬqÒýwöκ𨷨£>X±{p~ÕÌe© vî·»Öþ ý¸£®\M°µÀÅR[Jå4ñØ]
+9$z¨{oOðçûð¹WÀ/{<÷öÈþ7Á*¸óöäßÿñzØ¡WÀ.t}÷è|zÊL/-N>}nb>c±
+#Wne*Øö÷lED@ÏNT^ÄÝ
endstream
endobj
12 0 obj
-3886
+3832
endobj
14 0 obj
<</Length 15 0 R/Filter/FlateDecode>>
stream
-xå[Koã6¾çWè\À.ßÀ°I¬Coè¡èÝ=è^ú÷;ádR|DÞijE
-3£
-Lj01ñnQ¦L
oaácnÃÓ(Nìq<ØøQã!\¡§èªÇÏáİgrÉ^4lj®R+X_õi¡Û')ËSkJ_D>æ»|l
-%ý· X1j½}µVrDtAüñku¢äñ-N³ºñ2û³Ó;²YßÕ=è.i.kÅ_ÕQêGór3<eðUÇÝHj\gQßóñ
-àÙn^É£}Õqñh§O1g
-Vb îзº¿R¶[0×¼¬)LÝ%K´£ÊSa²ÁäkßuXuïÝ/»xiË2öÜEPë»ùXdtó[üc²rDåÍ>4¢}ðÕxÝ_ U·\p½
-ÂÖ½o0ìì]Â%Ó
T%ß-À[÷å$ûÓ}ßY5 ì°ù£jɺt`´*·BßIZ?Ͳɼ$C¼¶/0ÒQ0Êİ# Ð-LIØÑÛ³{%«ÝNAÊ;ì
+Öó4¤!%P¼(ü~9¶c'é=8±ÚLw©swE¥Ô^Ñq¢?¾4½þDþDuýæÃPÛ{`)H«<M$¨!b©î1e¥aõd»ª¡?!ÝoêíM©U!;¿h8:nQ¥ÎOmª/:ç-1«®ýl³|Ð&ÑÛuÂLÞÇ8Ì`c¼Ú'ÍNEiUõûÅdâM Û²éDHÕ\»²ÚȦû6rþæ²1Nº|fÍhæ#÷è*³î¯
-÷©}ÈAè²f]é¢Ò÷¯xFiã
-©C,
ö\TX¡òúÔûã|[äû![µÍ äee:سþ¼©Ö¯grz´í¤3:¹æ^
ô¢ñûÃv?Þ½Þ&йk´kR2TöRfñOäï¥ÝtÛõöë>~³.²Þ¤LÕµ3Ú>ýFHEÿ4ζÛ7§ÑìmuÞýѽ]é£\ÈmÊÊózj¥CVnb¯îÒb9·m_4"äOzÊÚn¦¤¡_ÒüÚÎÉ:'J{Üø¨,p7óîX¾)Ø/ð+kË?UéB=¥MÂË)w*p^@ÑiJ:ã×üaÄoNuÙ¸ìPÒÆe»U'ÿ+qfÏÚÒQÖ^'§¾È'Èûõu¥Ùº¼dgÊÛ²cT;ØÑÏÜ¥î縷
-Ŧ5D¤*¾¯*̵HãR|$sMQø[ÚöæûU
jR%êL
-)ËÉpçWCàÏý¥°ø3ÿ/?<|þ{bï
+xå\Ënã6Ýç+´À*ßCÀLb-º @Ewíè¢@gÓß/ÉKI¤.I3=RRí©sîW&=íþ}ø§#ÝØ·2{ÔÆ¿ÿÑýò©ûÛéþ¾ÿùðåùa ½é4%ýÐ=ÿÞý4ÉÒîùÛ¯g©Ç=+éLóñÄÂ'ÍÆ?k5ÌYñ$ίca$ì{~|¤g1â,¨=H2þöüóÃåùáëfT
+½Î®]ƼÛüaö*ÌSN8ÿÊåiUF÷|K+bÂXUç2%3?Ù!%ú$ËÎv_òÞÍU~1x-üÜSÄ
°¬òHÐÞó;¯³ ¹3Í%b+Lô¤ðÆ#TsQå\^l©`D!GÔÛ~VgFtâ)2ܱ6S/Ú}Ã,Á"hí®ÎõsWw
+ÔN¡¶~aÂ-Ò ¤Î)ºháEY
+
+±ÎAI}PërÌã¡D}Ã] ÞËÛÄ$tÖ
ð1¤31~À¤zòò9ÛP{Féf9/¬|ÐÑ:Z`ç.nÜøk¸A
+ÊÁôÛpëïi=sB¸
+ýÎÃ)ö$ÎÉx¸EQ¤!»ê#Ý*_ø&/YàÚI-£¨~vYª,Ö˱Ôû7Yx=êìïÌÈGVa¼
+¶3ûOa½+G#+lHá¤(³,_¼öRDMxéª|+üjÛÊbË2å!ZËH3ç£YXÌþÖçÖª.ïèî[ø2óÒ§2 ¿¿ø ±%!H,FÔºÜ<ûC}äãGضÏEcz}`»þþ Æx³[CÀÛCmFQM÷z}=¡|8Z
+q26óðÿåZkhZ1ñ9w»ã÷z©ÓBÑx¦J6Î5mý\RðÚ+k
¯¡Çb×A[ß=³\ÂÚ!{W/U:Öh¬
¨ÌÚ5
+ at 9|ÜÚöÜûðãÜþmãfvM;ÁÍAÜ>¤J´zÒ¾ò`fnÕKò;D±«ò6ÐÕàÙ<(ÍCX+Q1B¼dû.x{³¾U ³Z{"}ª¦ÝÅþÊr>¯yäå¤'¹Ìú¤h,O2az½·in]wÐÕîRéÈêøìEá
ųBx'Èæ0bSQ8C4¡AøjW½p
uöæL
+µÁSnûÛÐ[hdU{ðmÕK+[ª~q¸¼õ^T¯âÒ®(7ÅþDзº?mç¡mK)\<¬ñ¼ÕĨµ"
+âSuHvÇÎnÄ#pëÄsæ¶urM4¯^RlGÓHbÖÜÐf}dõe-8oj¤<#oæNRí_îJ)>pkXw½+à'2÷
+Yê°$¥i¡g
+þâPO¹#ôð½ãE<ß,H¹©x¦[p
+å/Û¸R$8@ên>IºÛÝdp-`Le®q/ײ¸;Ç÷:&QßcËh{2;Ëà<üKïL×#+ÖJí®9YóA¿±êS7²fKª¨CyÈVÆzÊÜ$ûëÓ17ævá0þ ¬nÊ1|?l\:ÅVܤÛï\¸ gi+sOÊI\ß®»Ð¶a÷ÒæÎÜ,$8·ãå qý*£Xéev¦CÊÛ¡Fí|{Ó'¥Á¥°¾â3JÎô±ì$ûwcÖnd
+nXaûÓv¯Àk"]á6/èÖ·R&QP°ß.9ò¿¢ëÎÏ´?YÇ$úͲ°nûß +6ÛîâGDÐðÏãÜhÛ¾7íÔ^gçÝÝCÈJe[˼Ônë8 å*´ê.s×ö*i4_¼ÒcÒuã%%ýrOgg-¦H׺»ÁÝÔ»N Z)X/î6Ôé|=ÅÂùßwÈÐxé
üC`¯øàüðv¸×Ý ¿ogÁæÿJ' ·ö߸ÃÙÈè¥7Ã6_©s£æh-0é(¼ÒìÐUt¤ìiöªûÛ¨ã÷v¢¾àI¡uæ<ã
c-AB"9w¥ý©ù¸ÂpWYB\,
åNTǹéÜ/8ð!ü
+Û·O_»ÿ
endstream
endobj
15 0 obj
-1931
+2153
endobj
17 0 obj
<</Length 18 0 R/Filter/FlateDecode>>
stream
-xµZK«ä¶Þ_áõ@wTzCîã@v ²Ù%sá.Íýû·,ùѯaf -K¥RÕW_d«#ÿ{ûwPÃA᥿!Ñï·¿ß¿ÿ¼©ct*Åaù÷ÛÞl<ÆÁ§½m0G=h8&øõˤÿØíýóM[C]°Óç_ÃO>¿þqó¨Oð>ôIÅ!8©D.ôsUñ`N*/íêÌ]dØE]Uÿüüåíãóíץ̊c\H¨#O(Øæ~uR×ñ`O`GÀIOuxE
-ææ3ýB¾j~ô28FÀda"X<Cy;ªÒÇ085u
-h2+)u·NS6Y«@ã·1¶$c
-Gè<
÷ùQOW2{R2qtO
-\QTº'ÎÄ¢M&h¾x¤4,[ÿtW<%>ÑçlïYµf1µoïÄP¦r½fLÙü¸ÄTÅ+k¼cm
-èµE}ñ0åTòõIò&\!Jºä*¦Ë¹Õ&w»0-&w¿
-ÔfÕ?FEÝ©©L£²V]ù`ÊJJpGqë{¹¾R¢Î9jBuÉO¥T~¬sÏéξ)qÄÆÄ^4h'Ô9ö®M¬ôì©O6íW+KBìy!iöhkÈf/FCB²'íEºä,ià9/àZµ"WaÔf5ñyLqOiµT:Vã9ï9Vcnmô }4é`¤a
-~VÉð.pr[`ô~ò>ãïW >.´Ôyá)'ÿ¯D²úã¶+LrO¸¢ð+të
-{æe åwí «ÞM´§F«êñE6ÍÊðb(q¸£îÀ°5³rLñAé$¥²ÿw®2M,£ýHcµ²¶hU¦È4*Ù3ÛjÓ|3DàzXú]Vu`6ÍHãoÂ!þ.Q§ý¼4XHa¡ñCkμÞ<Òåóå×ÊæxÓõË/÷@Fõz->ËÕÿöó[7tøüÛcðîªsT¹g£Ê}OTàLå6ê3å´ô`Ø
--6O%kßµ {NÀ>QåqEͺZ¢¬¾¯ÑjètÝIJâû&H ¶MâijP·Ö¨ôÑ Ý00g¬
-r7Âì:³ÉþáüSè-Ý_À®í2)
-k^ø×Î
-ÔÐRÈ»jÚ5Ë1G¾
o£ ßeåtÛÈ cticÊw-1Tq)¨è¿à¿Yc½àÂݽĥ²»>÷
-åDËEÞE¬u2. 8WCy±SP
-7\½¨Q«¼¶
-oY*ZÊIîíäòW£C§¢£v!:\Sá®eDdd®6p$ZX2VÕÙî\':·Ê÷u®
Ñþ°2
õ%.5àó9¼ÄÕ6ØÖqâ^û5î4SkãËvòA4Î^À£ïðH¥zHÁ
-Ü.³Ûoï¢L«Ê>aæMIß9Y¿Ï%`A(32û"u¼kÉÎõY¡¦ª©a
-x®X4;Z;¤Y*²gí
-Í«~YÅýÞay±6é]Ðj½¤j^o[¿
-NHO³ð8CNf(* rÐ0cµæH`ü6\r!y¿Ðè¼@±Ô+PÕ´eI³ÀfÕz·ß/IU@ÙPÒ¢g,þÍ&Âä²L¹dm©{à¸gÍéb¸ÚLJfo[\©r²#`UµEþÖúÊ9¨ÏsÐÏ4`íF¦ºÛµ%ÐËå|9»|0°æ/VìË´*ý2W$ÙBYÈÔ&©²WQ8Wq¥?äJÐé±Ö½ÉÀë£Dîm½,%M¢ã"}ë¸ÈØ;ýÆs¦sÎãûQ>ÊÙ=*Ê!Uì¶Pt³ícº
ìî©*ÂÃÆ¢îÕ+êÊêª~VkÞMéãKÕ$×Öa(Ëjýâv÷ën³¿:eíO½üÞ¶¨wdzghͺZ]b«<mgjÆ.´³Ó§+QºòBïàY.ïáÔqAÞnpøú¦
-L%î³°ælõfqè
(¬CtóäèásÝó#ßl,VH}ö]¬nÃÛGÇk
-úøh~Ã>w£]£ý{¶'å½±µº¼4C,ï´è»_¯ jtyKe½rå¯oö£Üµp¼·Pz¹¶¡L,ïëåÓzý>Ò+²¸_T¿}ZΩó×ÞüYtº'E)ùêëüÈny6ÙDßkl?òjõà×áÿSîÙ
+xµZKã6¾Ï¯ðy¤z?
+æÃZ{ó:»ùµQhCwq>_b è|êôǤ½¸u%p1[+Yܺbs
+í¡E{Èu[nº¥!ÅNùîÐjU
+þÕú8}¯XBúò æ.Yý^ëY×<ÀW3-;crLyqSÇLãÉ£Ë%5EuÖ@©Ê0lÔ,ׯH~¸Ì¶1:¹ÆD^º`E·Ä
+0|%ð1l¢w¥¹%Ì$&ÈU&RÀQ«W¸Ä"cûÒIu
+aPûSkô¾/äYÚè~Uicþ.¨JFñK)ûT³Ï
+äbëøu})&ÚOª
+9ÜR ósFPlN ]p\ç,{ÔòH«
NÑÁ³ÕþY?ïóÌÎY,í§.ä^ ÝO0Õ¹:1Ø´DZ"UmçZª×|6ù)M#PàÐ58ô
+(£ U2}8SiAWyXÓurÙ°tÏh"òᬲi9r£|e¹sö1O®@zïqð+w
yÞ.,'NR]É7ÊJ¨L«Vd³\¼g¾å\nGVxàâÇÇ
+¿É³Á|dHÑÈáy~Aåóò÷°ÃË(1ëw,}Þß½
+¢z½-ÂüóOÝÔéã;]UpâÍQ¥í]1U?QºKnzáÌT¶tÃSCWX$ñx$÷ZoýÐ,é;ûIRÃ<¶]¹>.k±«qi»eÙ1x
çVa+÷(.«úuÙ@ÜÕ$zkxîÅðP-FsFVêy<BÇõfÖ¿·*Þ
Û:üÜ® ÒµARi7H9YáÖÚÅôçÜ×NäºóÛ&,Am1õuÛÀͲ8ò^ÓXÁÛSüü]³£Cw¸YvùpĦݸÉ#ΰFl-¼®;Ý\
+íNkêñè°¶ôo6á±]\JÆéØkBEÆINLv¢)O¤ºÚÈUØtmê÷,72ÿ/ÂzÂ
+¼)§òµ6vóXïùZÞHùDºHÔ=9àXíúJsUÆ$Ú¹çýÒ`A)ZKzì[ԷѪ.,_ÈázÜA©"ûܽ¡ùÐa䧬â>}·@1Ö&=¬][?
+Né-$;ÀÉ&<
+z8´ô½¡¥?Z¡-MJIlýµ±l¡,äÒ½o¡êÍ.ÊЪ¥ò_n2éTRLï7Ø.R×ÚEÚ8é3s´ZÍZç7JS+g·U!Uì¶@ôð¨E5lܧëe½©Ã
+©ûøµÌq&6DYnªõÛ=¬=ÝÕeÝx·±u<êÝqoíë¸òx¬©5»¤!to¤tÔÁø¦÷TÐÆ? b ò#¯c$ȧäP¢>cÕ«äÐá»È¦äõæÑÍMÝcçÍ#øÛðâvßxAàlÌÙÍséA®óÝ'Î&åEþ´ÁàÛ¬$ZO!I
+
/Éô³H»¤YØSÂláwe^õ²qòÞ6Ñ.º´fLGP¶,^èKzW'^éKØgÖÛ¼UEêèô«%ëø~µ$è×Nß¾äG
+?7ïwV}þó
endstream
endobj
18 0 obj
-2168
+2019
endobj
20 0 obj
<</Length 21 0 R/Filter/FlateDecode>>
stream
-xÅZKo$¹
-¾Ï¯èóvD=«Fn» ·ÍC[² uÝKþ~øDUºÇs Û®D"?>Ä÷§ÿ~ùíäNO3xü-+ýþþÓ_~:ý'é¿ßÿùåúíK\×S8}ûûéïpwúöË_Ï.þì¼\òï/Op¿ñâ%ÝMÑ˾u8Ëç]tÂãCÜìrH/ûö§/·o_~ÞÎ?SÆã¬"o:ä(¯ç<íH|v\/ÈízyJôùoâßLüV]üvyBºßy0\
-®àÇWÜ@IpÞá<
-®.ã}n¸ªTe~Yë
-d1¡( !y$nx!qÔ)Zï¥*Äe=½n
-¨Ü¯ï6àäØìèZ6Þ
-N!å6)®$xM
-®ðJ[,»-è¹o<UX¯ç½³BJãÎ;X(»ïÖ;SÙÌÁ»®a&Â{ç)ª:ï¨ß~¬pׯbúCÃeæ
-G*tÂ2gÈ+I_ù×ë_(/<Kº8b\RÅ<ÅIÀ4°C4RÊføÎÉ©4áßK6;ïPy§s./Ðl¾åÀ0gÝ·±x£³ßr!ìð®%òÐ2?I\Ü1b¦ºW¼ø\}¤^¸éiåú糿Գ©
-|=¡-ºÁoéçÉä$¸ü¾8À¼?zäæÿå{©yA§è^ÀHVUU [ ÂSÐ9¯Ñ7¦Í±¯û~çH¦ýAF÷xè¨LE#A±MqkÇz0ÒCÅUàh¾"åp¹?ã;Çk4-+xÚÏO
-±Ä³:ÂÁøÐub34Iô`t»ÕtôÕùÃi©^òd¯XYtä)\þÍ6Ç}÷ñLT+³ÔòÆsÊmÏXR =µ"
-+V
-«?³ÛQ²#8*ÏS¢iרÒyY
-ºAî"¶
-Tº$&Ûi5Á÷quMnµÕF¼Åò Áooô;Í":ë²3m0ïc¢!?oL-çXOùVÇn¼*Kn.*"3Ê]B{êQTâ«Î/®y¡j
-ìM|õ«2!¨½RçV/÷Üî¾È Ml,ºÖ5ðÎ5©3+ÒOÔÂv{dé¸FÌZß<D#Ýí+ï@·êvÙ4¹j<f÷ÁL¢/?
-OHiû
B¾´É¹»¨Jú]%
§è*9³bÁiÁÞ«uxÝÂfÑ&¼
ËÆ)Þ[ÔH*¤6¸ÍV*ðS¬Ð4û«TÀ=R-^j¯ÕVPgÿî,Ô(F¾Ö¼lÐ<AôÀ¯g2#5¤½¶8ôÞݦà´/¨Ëü&ø¸óHYXÁÆÃU*Èß·þå¼pÿ"»¦Nq
-»^QßÈëãw21[ð¾c
-Äý`OÏÁuth)aP{µ+G.ëÚ:÷A²õ×b»í]<K¾eÌZÝ£Óo8kâ;>í´ÜrxiÝ[à¡Í«-ãn³gê7CµJ¥`/wÏ7·y½LT¤xö°ØÜ%ô:!îëÖ{ñÓþº*ëS¥½äM9cRç2`Ø*u,uÌ|÷ÍFO¤ÿÙmä¦Q_lû«^"D°!x½Hj¬/UVu
-£ÕdwÎ|`xw©ÖÛ¡¹
ÚêÚÔÉ»F¹ä×ßtÂG¶ídóÅYfHyæR/¶dÙßÙÕmνzkµN+mqê¤]L7a~ø+ÌÎPLÖ°ïAÞ'ªVBݦzÊwÅØÜm
-hn+Õ´¥[6ýL°»£
-í¸Ò«ÎòNÃ`_ý;~æÿöL´èÉX']v
[ÝåW|~uoîæÞÁ¹À+nàñÿ%cÂÌ7c÷ nã8:±utôÝòHé§u;æí%ó°¢´( JðBI6@½àßÙ¿©ã\ô«ØYkàÓ°P¶5´ÚavfnmØêj¢7È¿³_÷Z·AsÊ^u·x¨ÚE:vÝ|÷Öêa¼6Ï}Ïuò°;¢¥ôüi«0º»ûÛ,.6ªvAldçyñ"Jö«ßUÏöj¤1Cª²ûØFé¹ë¼g;J/ûk«iemøÖîÝ·ñyÅÁÑ
ín¹
¸Ú2WJÎHnèèÊmnjÌYnÊë¡©å&¿À¾rSð?f®7S÷³5iÁËquÀÐñb>¹l+kN.æ«ÄóTŶº£LòéÐã§åAÝ{¯;EC;$©<*À¦fhÀ½Q±¸]õhñ-}ÃÍwüU3 ðÞÚelÊ6Aäo?q
+xZß$¹
+~¿¢zâßvAS0ÛÓÈÛeòpä-¹p¸{É¿YmÙU®Þ
c ¶\¶lYúôIv¯zÕËÿ^~[ÔrQð´g\óó÷.û²ü;óßïÿzùúñâÒëºDücùÓC/Z-¿ü|un3×ðØ´¾»]Ü5ú
+^ß·<}þî¹3ºí¯Aã·ÙkX·Iâ«Q¹íì&>XØtËF»ýýã//÷½µ2¯q «z
+¤¸_´FÅ=*òÔW÷×¶Lþ7\7+j軸]VTÖãuçþ¼Oî°'¶¬
t
+.
Bô=ú<Ìð·àx_æº×¼D¢~ò=w4}ƽŨ01
+ê¡i6ÍàÙÏvµzûøÏ±D±°ÈD"úÃ5
+
+ü;K>ÆÑÜû8ü*ñêC[aYs£±6ùÜëb<×3èn¹¥Ý;ÆÝ÷6Ì*ÞL«V´ó[³ê,¾u¯þØqo8&¡§ó$oÐ ËéªuæÁo]¯Ë¶ìNtð&Çø^%¸9LÓk
+¶7Þ«ÅØglÂrèÑ{ã`I4òñÌãw1pØc²{Tv P;e¶xU¨Êe
à ¯9fU
+'Í^E¨jQ8%z
+þ0nTü÷àDûݳl¡
#)[¤O'À
+Q
+ÌvêF4¥,}¬ÈתH
+É<-`ÃÅEQTÿò
:tt»à=¹¨üî_YÒ\«híó3 at D LQ§UQv¡&/bÞ«£Î,&ºHÌDz
Wò:ª
+õ
+R'õ
+*ÃÅzu½vf1Ñ
bÏ$V*Ũ3.3>äX"søA:Ñë·¥
+&ð~v¿IAn@øûëù
ü.¤¬Ëgq¶~]JKcRãß/_¿t£?.Ù?E¶´ôÁL(ì×
+
Ïu´ñØâÔë²læ¨TeKËÌÔÖ%,}.Y¿.ß:¤}ò\DQUÞ
ö°÷â©
+aKq/Ö^ELUQl QîeÑÚ¢«"J&ZzI´õvp [&ÕC}MvMÂ'Ø(ñ]£ÌÒÙäÜ@ãxåP68¿²Ùhd×Àl2Ù5x!HƦF1íe&Ȧ¦±
+<¶kYºÐÊó¹ôáñ' #õç;3Õ¸»o0úìr.ñ°ù²©çG¨Úñ,Çg!ª
+-æ÷6¤±vå¨aÄly¢l:0£¦|¢Åò{.ðú/405AzñÞ68Ó®'jÃÄïnS·ñÎ6FIH´×o·mc-qqúj3>")òÂYê:«Ì@mPq^
+cÊÝ;çüæÜ©jý\ݬíõß¡QÒ
+¬S¡ð-ÛÁ)<^¤ÞM49WD«Þ`·Ýù´ò"¶â¢£M±s,Õ·?7ç¦r
+êýánå"´ìªõð:[ôº{ÊÚý§`cà =zª
+´ðZ¦8ÃÓºþH¸ÅFëfûPamËPZÊÔ°£ð0:)o"Bñ?iìRÌà±bâ ÛV8¥nëÔ£1ÃîýóÔ£ 7ÆÞØÃ-Ò \+o wÞó¯M¦*nAkïlNTå<ÏÀéÿÕw®¦þtpcr<M.y4&ÏÈÀàªK!-
+ðÖsÃp!`;%í]¾ªFÄ{Þ][UâÇ2~î
+WϬèb9k½¬EH¯^N±äFnÀ{%JKpKêt2ëP-ÒØ}È^XÐm'¥Úºlz/ åb8Q²W<3ÍõnåߢÏ×OÑ
¯ÂùU_cv Q»!ç´j_íè-à9ªç¬G~üj¢kyªiËgªq®¦åV=ºÍ\l΢e÷ ewÉÊPZuD¾Î\5þõ~÷@
+cÜætKÞ=ónuÚÑíÛ¬ì-8´KônEÔÐ&Ð^b÷Æ}d¿ªV<ÝkíóõMRF)©Ê-zÏÌVmÓJÃi¼®"å}_>¬ðähn-W«eËÃÊ-ìræ(ÍþÔQÊï+ÐÒÖ}TwRౡõQÀY
7órbþødnWUªnĤªYóMn)*¸Z£LCìt4½W|vù¸c@ÁYÔVx0¥Ú|iRÒûRrGúi åÝ&o¦±}±+
+T¹9ÿéÁÃÄiTêúSêÁKÝ!ÚB¥7Ö5ÌÒÕS]üÂTÔÉC£«4F;1¦wÈQä÷çÝp%-LA=5qÈZOÆáM+¬×^±ëB.Ï÷xêºàwAvLt~knôkfÅK±bÚ3ZaþyÃ4
û>ªF<HÆ $ßɼdIêKÛ¨fÍ ó*ÿÇ(Ëlö©Iî½!0*çXåÏeÛûðÍÃ<ptÎç¯:þ;Ðât
+ò{x¸÷ü[fð°~Èë¢fPÍ;°úñl%+ÎçÅ}êd
+dÁÒ'Kú%
+8?*ÌbEk»¾âeóÅØ»äc·Kö¤@Î:ÞP¹ºCQ÷D._ôx®¬b´IÝJ}º$W¤ûyÔµ{ ÷î¢>«âS(8H£¼ ©À×Ù)¢ ìïÏ
£kQr+g
+ ©ÏòïR£¤Çþ IC
endstream
endobj
21 0 obj
-2937
+2668
endobj
23 0 obj
<</Length 24 0 R/Filter/FlateDecode>>
stream
-xÅWKkÜ0¾ï¯ð9àFoìËÞ=ÞÚz(4þýÎC²å¬MN! µ%ÍÌ73ß'9jÝ¿ÝßNu½ÂGÇh|ùÙ}{èþð"ý½üÚ¯;Ðiº Ò>t×Ý1t
-j×.Rj;ïÃ]²H[¯À¹c=ÿD\³è}63¸XéUʦ( ʪ-FâZFçgmø·¦SèEtIM±,\mãW%nÅã#+t
-å¹,ã"Eë¦Lí´dhÕº¾Ö8¸¹îýaÊó]µY\\ªÍÝSÛlóYj»E}Om³E£633O+Ï
²/Y¸&&âÏ뢧súmj³º*Rçó¤FaÃ)Ð(n<Á¹¡Ê¥ÜCÝ+Äj/óöFcã¶âddï©ßUݢδºÐÓ
-È1æùØqûtu?Nñ§Ý>ؽ"ÖØ`µvÝæÞ
+xÅXÉjÜ@½ÏWèlÒ{·@¼¹r0¹%ä/ùýÔÒêE£¶<'Ðh骮ª~ïU9bÝ¿ÓßNt½['\ý×·Ý·»î}Äo¿NTã0v^ï.?º/í¤ì.¯Vê<_~ÎÓóÖÆøÚ&°ÍË$äÜËI¨ÙOBϽ{W¸µ3|r³Âï½ð³D ãܧ{z}ëæï¯{(ÓZFÌʪÁã³ñ³¸73_ÝH׳óð% c;Y¿I)¬+ÉÖ¼\z]XÐÈC[1<^&}¶à
+*bTwÔ[¼+ÜbÌIû:*?yÐßÃÜë7]DO6ìßH;â~Ë÷Õû3ùüvf¿K+i+ü`o:<Ý 6e¹- ÇÈ{ocW§Ø¯e&l¹ åâ1Vs UÆ8C1
+°
+<idÊär^aC.}@®ÂæÈµõ¹
+L. [TæQô1c:Jê-x
+®Y\-GT¸Mã)}&ìæ[ÐLañèµÆyÕSfäÈ¿¾ÆÍ=fIG?]o±Þ
+.¤, §'çÈ÷1%3Ó®À4µç[Cç/wKq#7o8h§·"qpC&K"R*O-}MnG^lH?Üä¨ÃüC"
);)xШýËLRFÅ× ââ«xEäÂdq÷v-¥P
+
+æRäwÂõÀÐH©ÊAÑ9øèÞéÂÀ'FÕh*ë¾C] ð{~ÃJÊßKÚ¯±-ßFÛo4n¥a'@{B1¥Á>ÒS#¡bxäÐÖý@B
+$κ
endstream
endobj
24 0 obj
-923
+997
endobj
26 0 obj
<</Length 27 0 R/Filter/FlateDecode>>
stream
-xuN»
-1ìó[»y^ ,xpv±ó×øû&E¼
aØÙTOñ
-ÇMÂÀǼCã¯yñ×ç|[¾w¥èB®eÆ/Þ3QUÿä;¢b5Ï>ù#¼
+xuMÂ0ïý9IÛµyð6(xo~Á]üû¶x@È7zÆ\²9Ç®äé§
+¼ê°ÄôP}RÞXðÖDHWØ´îgF1:ÑÑö¥£-c#Æ 1Ê%ÕÔ¸ôömÞå8=×÷½ k,mýÙå`WE?®ý,Ú
+?¾$GCi
endstream
endobj
27 0 obj
-158
+165
endobj
29 0 obj
<</Length 30 0 R/Filter/FlateDecode>>
stream
-xÝ]Io$Ëq¾÷¯èóØÊ}3CÒ°n²ÐÁðÉöó@Ú.úûÎØ2#jéæ¡õ ²>VUfdlÝãnþú·Ë_®îúäÆeñaü¬~þõ?¯úåúßwkÙõvÝþþë]ܵô6Í!\¿uxç×_p8øo<ñõû%ÅpË×êàþ÷ÿ¸þîÝÇ«o×ï¿þë³ó/OáÙ
'ÿìâËSyvée\f¼,pYǽøìÚËS~výåß¾ÿþòöýòÍ>ç1GÉ~üÄ9Â5Â{ ÏþÆ 0ÀÉ;üCú>n»êBð@ÆéÌqâ,/x$p<åßÜ·àÆ½:#náèûÞHe0Ñûñ¥Û½a_êv6]j§¹ö!âìÕ;Zu~Ï~0Ð=»×§ôì_iQãïøspúÉ'þ?ådÑøðN L»Õk.<¾z/ Ó1(ÍâsÃ=ác·Æ =@_|ÇõÇê¨ñVY¶¯}±8ûóWp´ðm<3nyc<Ä3ðïËÿ
-7y¼Lüj;)©·Ë° P2}'áuÍêiqßPÙègúv¡Å½ÙÉ\áÌïò]ï8Oþ3\ñïsñox¿Áüñ9µÃ|¾¾àÂ
-áÙÊ}#Ø*Lvl¬DCëV^É?D&AîX)¤w¾5¯;=!YäBPk
çß|Vú1îDg;Nä
-ÌóßßòÌ|è¿(ÓÀbÔ2?Ó_ºøW84)tûh!3oêgÖöÛøïMiëøëÖ|CÖS¢ê8Ú¨¶iÞv¡í¾õªòP¹b¼ÁKºwJS<yÃ6-ö³=lQ&ÕP(ÿÕè*f¿+JÓaqå·EC{ÀîÕz¦Íx4` ¤E©LòêbÙ±æuçÔí":gv;ô/Yñ>Í/¯iãZ9û{O<TJÞ¦Ù¼Ð
-<T¿UVaÙÊÉ ãT
-S¤ÄáÀûNÞß¹¢¸h·Öå}ðñ`ÊKA;°3ÓÆ¡ û¦Þ´q±À¶yÜÿÔÝ«¢ÄºLCðärÈÜ%;¯UZ1küò=÷½ÿmêzßÅC
Dê»aºA}àÀ%@0ªËÚ=î3:º
Õ¤6ßÃ+øÊ!¡¶´ª)±¹
-}¾l6Öà×tFßàouÞ#g©\Ü®EÓÿìÒ³©
-tí2vPÝ{7³²¡_euÓ ?§1þ@êL«»0'*αZ;n2¥´ûÍ÷ó¿TÚ~RÑòQ³àmXù¯[ÿ§(þ¢6O²Hgd¸'sÐVyRoÌoqéÈcì~,¦úÐäÑèÛÒ0ÚUAë6[ÝrZs·Ì¦|mú¦W^ɸN_i*Á§xâÝu»ø'
-g¢ýÙ<ý!ÌdÌT64qDZÏ;k/ûi
-8®-óigFåÛó
-*çÛNVk`¨¯¾wåÈ߸µ5X'=J`+{V«Ïì¯GpT9á¸DPñ6ÐckmØl(:/býº¢´(¿ïÛ&·Þx)u
v:12aÎSy¾-2ª
-LÔ¿"öÿPû`V0îEtº³ÜÊÕOTºeEY¾Ër/ýp·t ZâÎëåMcɸT`-riÓm°dó
-cP¢u(ÂëÄzOñþ©AÞq-8çô&(Iòujq?y2ôRxð; ò6¨\\amQ±°V6`ì&f'fUli"xä]«¾W}Cã©ïª°Ùìôà¡æD?Þ;ô_¿ RÃU½Ï|Y¡÷WÏ7 öKDÎ
-ó:%×äæþðºÚWÞDP{²ÜôMËQ)
(fÑeÛ1Í8áÃt(ÛZñÊÜÎC#÷8 ¶^²dFÓÕß(wL½Ñã4M¼Î^jï[ýQ[Áo(g+Ó7HÉ¢n6¬!6Õ/m`#CîÜÌÚâ$Eó®v\GÙ£79¥{å"4·qÄ+-¨ÆBt¤¤ê¼Ándz®þ&klFSYö§;1hßÉü¡¸²ÚY%Ýj¼²àM eÚLÛªbm|C[aR1/*-¤ Ùð¨ÙÞ6¾]
-éYï?ÆE¦Sͽ3±d=h´aã:uZ0ätCÛéx=í¼ªS¨&=ÍCS-°ìÄûH!bOûrûá~2_ÓfD¢Z-TEgrzS1ØrZ½¾6
)ð=©â£ wäµW|Ù0x£]+.Ë¿N"ï½»]c
-ûâPc.-çÎÌc¸aîHvä»épâØÈå8%][¹>Ñ+Ú|áUÌ
-D&¬RC[Fy%౺álþþ=ç`püNø®{Q=$`UtêîÇÍ1ì;Ý>!Ú_W2²©Os8+¢ò9Åónôl¯¢3yrt+²6MñW at 4å¼N^¥4<muäk|ä±}A½¬¤nºP¿=µ.¦")EôSs%vXA:%!
-H1G4çJÙ¡·g/ä[èê ÚÕt6[Û´#]~#hÊ%/22ð;!ì¤l¢ £'IªþÌp}¾³V<gÏ7ÁÐöPÊ*n§Ñù·êjvkP{×.MõA3á¦(˵5\PrK|½ïBߥXgÌhâ;U·E-·µSYÐ(nc§ÛV(+ 9«ÿûn¼+ at bßV=lÛÂ^£¤°[¯µRéK0pò8¼ÓÀN¢1S[=õ}Ù[exä'B+û¶©}.QJt%;ðJvýLx[UVâ>NëÏTóô8´«Àå£C¥Pê¾tuw_äE¾){©DÛZçÜ{Öï¼5v¶®{c|åÓ 9®àV|9¢ÂbÑ*©g§G3ɨ<¢upsLTÊÓÿVjöYògNÄSbÔ^Â=ïÊàRÄ.uóõwªJ½yÊKï\BÁmeë~¤«Ãr·1³RÕHØvrk&|ìõ³èmY=9OuTôvX<Ðe¨ñ7R
-¬Ý)ÌAw¡ßÜU«nâ+S[NrsnkaçYãZ±DL¦´/¤qzez[5ï
-zx8jnHx"bz»»]$õ=:Îß)É#moußt&Q.¤mYr}åö¨;:Liæ
ñººñ1iáÉwÉh¬39'¶9
-ÂÁàðòÉRV÷Ä4 6IhózlÀþNK|vedãÌ÷æ[#ol×<²åñ^zG~øõÄÈ)3|ê¡_Tµè¾còØæ¿\3HÏ ¸øÄ¿\~÷ÏÑ__ÿç:f¿åÐïåâ*{ðé)aøÅ ãà WB~xÎv]*|/¢t"q*£
-wªÏûi¶±lBQÏòÍhð^ß ú|Ï¢(èbÐõ+~\©:øZzsqü®!§.ü¿ÕTQ`ýÊÌß®÷QB$R*Èmäý&çp~ ×Áp·)î pwÝ~6ÃkFëftaÆ"hèøã¡AZLƧAý?±¨ë<üÌ ¥fá
Ús1èªGß"¡,yÅÖÈ6ù^°ì<*BFÑj´ò1qKêÁògî¨ ?Äè;)r÷@æÏCç½ÕñºCõÍ÷k#LrØÒÁÏ@+oö:Þ
-X¦ÔðFtPVá²/±à£ZWíð^@
-^?":<4bÁ;Eeþ.E£v.ªºØt<KÓ+Ój¶èBï-³¬ k¾åÂ,:wh{ø §å+¶[ϯ]`û&¥(âuÔû<õp?¸Ïe_Kß)»®çvdí
-á¨PwÆ2sN¢àjGa
-{êZLp)謶´ú
`$D¢ü5TiYµFrOF±èhB}cé[Ýp«ô Zyf $´fäãØ M_0h
-'ó¡®-^Ï·A
Òäw¤hañH¡y 09Ú{"FAü/>HéÉËCÕmâÓ
-Î! {Ö¦#³5>yyè0d
-®s@±SK<¸yÇ WaÅzòôÍ[zF3
-ú9£9ûjl*8ãmfp¸ -w¶
-BªÒ£ÐÚ `D<eCÇï0t3
-7«áf5cDD}!Å[/\ÜtSÖyÃ?-¡Èóuæf5ü;B^ñOxÓIqSxdQ^OÎõÉ(²ZÏÜ´¨n>ÖÐÌÖ¶Ð4[&$ë`´"FâMæ § 5FÒà¶µt'"Ë%QxåJ;-1?»o5tsø®<~»åäiÔÅÏjF*îzµ
-ÝŬ¢h(EOëhÖ¾s³?±Lhî¤}â7(ªQxJ?êç)YsèoE_óä[¶Boöyï»Aí3Òô8í·
<ZÎ2æ@3¥`Ô±é«HBÜ>§¯¹<ï#¤:v
-züdÆÏjüªÆÿLDÅ)NëÈ
-îçm©CíÈWGf¨Þ+
ùäÈfk⤺G<öaò2®+Å
½à[Ì#Le|sWJd\!u Ðß(³ÄL¹IâI¡vÂ$89Áð¿%NN0üoe&}Ó76÷ÚÇÿp˪ ÜA
Æyߺ¦ ²9Îßy¾.pͶþòCÚ-:>¸Ìâ0W$ÄL,zÐÇG2jÊ'øû÷¬§«n¡lJ
-¯Ñ'ÐR¶ Ô2½µAH×Bx]ÖZZ¹ùµÎVfJRýaqGriFGÎk²Äæ1näkXl¸
-'¨ 3/PÍJÑZ
-ò¹ðøé°ÌÝë@êV²NåUj
-:FQéÑE®¬7¢_
-á½rÑ{ÖQMÜsÆ=833³9¥_í@¿¢ÒÞà'J§¨éQ ´/¸·<òE´OùðºÌë ´)ðH
ù¬çë¦4S4-©y
ugw-ó7Â1±Çñ?(O`*?GúÞDúÞĸ%ÿ*4ãëuï1êfÉÊëUgþ
-»YÅ}¤V8Ë0
-©Ùû-}6
z!%~ãvõ¤0
-K
2B?ñT"¯<#Ùs4¬ÕIq°Lé
-ê²4W$÷º¥óET\J¼"ÅÁ
-?áK4^Þ¡°©Ñ%áF1SÓTbVáAÓoèɦ/g 2®[DToQ4«m|ÌuÆGyrÆBÇÃû~â¡M_g¨ôÎDüXå÷ÈêA?¯r $
-q.û{^=E>^Jh^º-kM²ê,XÌúu{Bjå}Ï>õwrÃ<ÆusqnÁ§á«/AK'ÂçP{e¢y°&\Ù¢¾A²¶Còy÷rúD¶
-.
-J½ÊU¨o8ãC¿#TçUõoxqßÈÅ¢ÈY^ûÅfXºRæCR
-¾
-['ëFRZMB¼ó¯y¾EºnÈ&KébÐu*Zlhí+Ä£¬#謻E4µ©íÜlu§©üNΥɣ«HÚ©\ÌqÖ&9KPI¾dt;tYùç7ßÅ%.S6àvéSq³Ñ$ËS«Ü¡¢sxFGÑùMRuäVZôÎl]2ù¶òØYzÙ¢ 39¿3õ³¶æ&I̼¾\K!]â,ÃÈúÇ¡hB7\q'Ne¡NÕ88ûãÌÊæ
í8»\yì]lNÌsG¤ñ㦺"E^\n~®"rî PÓe´Y;ÐäeÑ»²Å}>y±¹¥Î9Ý*©µ,.LWtÜ©LÓ-ú$
-b
-q¢ÖP~;ºü Ó~<DýP×4[¾ÔÊ'ºH¿î]Y=-rX»®9¡sûÊ!QÇî;Pæzy4ýG³oÁô4,¦#AÔáp1è¸ûaª2H?.ÌÜPH@
--¡©d
-ñyx' }{Ozf t¢lå®i»ÞC
÷yg!uàh«Íáaä}Ô·DUûQ>úy$NÛ :~%J/Í{iV :!³]ϸç¬Ýì k"qlMµú¤n:Be¡Ù³kUÓ=Gëttq¶¡zÃÔ:É~»êAjS`Õ%´ÎÓà-[[Ã
®Êx%먯UüÍeEO¼®Þ
¦çQý&ûî9]zÒ"é7ñK-T÷Éìh¹Û½³<ïÃÙv5)ZTÓQWS2«íË?ï8Aº¬~qg»¢ÔöúHêÒQ÷,ÚóÒfCé1Òè3$Ïf$ØmoQ3ëó[tÊ ÞDnU©JݲÞèî¶âØÖlÉ,qÛ:¢µâ¬FÛN£[}aZ1L+MÕ«n®
-;g\à2³8ÖͳÊmZv¤'J£¡4*EØ6if£jÛ¶#§qºÚLµ{5YäâÕ¥f[.¬zöü¤M¦¦x>Làx Ü?·5¨gÌûÿòO¨'dõ~èçõªAcð0T=f³A~Øý¼ßßË64£l Ïýmüÿ÷cÂ?ÿæû#}Æé¡[
-O=èªÊ
-Uüx¥Q¿\ðóc·¶ùÄÙC¸Gds MÚ¸ÇØï¼¦Ï ð*jÁÔ$ãufÑ¢ÂqÍotl%<ä©G¦ÏjîQ©fõ>äȳêÈtËê8GìÈyD+
-xW`¬0ßVµ"`cÅBø©gÉà8BÇ¢N¤AòÊÀÍKÔ1ñ¼t¤âêFWWõåñ H2èè%OÆ'}fU>¿§{ýF$8J Ý£X&¯ *+ïxIIdNVwQßiøe·²îéJCáSpuóx߯RQ8W
-Èg¹¦OÁ4DßJHH{ÂUv
-Ncêø£cÆ6Nµ.8ÚCWøwªÄL
-j_Ô¥3êB÷Dk
PÃ(¿Ò(Xªe+
-þêS¯ÛM2q÷$mZ±¢!òæChèÄ¢lZzûä?f¾?|ç78*_UåKô=þ%ô/$àW³{ù[àÔðíO¿XÌã?°Äßû±>ùÐql©ð02ǯzò|¼3|COiMÄßp
_7E_ZE_
+xÕ]K$9n¾ç¯Èó
+V[x÷SºðR¯9óóÕ{fèhF<õ¡c·>
+}~"Àì:QÃ; Õò^
+|ãí,üOÝÞùì7£Ü[b A³3>Ï£KBE1wÕ¼ûÐÍôÎ2ÔX¦F;tø:>¸þ
çñÏ<ÿ·Ç¿U
s}gÕUTw*÷ØûJtGñiÞê¸|Z?|
¿¡ù¦ðF¬;(H"àæÜS¡/¶QùÄXhÆâÛî|V?Lá^`Q|¡jáw¥AÏçì7ÕñÌÝhÌß®Y·¤þQ,T¤©÷Þ¨æZѺgÛc½ÚéÉSÍ
+éekdõ«hw©ãÌsL~»swc¶ô©Æ¤E= Få>[¢q4j8
+ßýb;>Z0å3*Cªkðôýè²aÈÑDã¯q±¡àÖ4 LëI \Ö¼Ým²HÌÊÇÓW$|Ðܹ[&ß>õ¡¸cý=V2<Uï^ÊF}ß°hC=¼Ù*¼h®$Çrwù5¥Û\bwÙȵýU5êÂû¸ÚÐÇ×E/7äÍ¾ÝØÕ¿ÐºÖ}4n`²5JË$'r%}`ºY©ytÀãZi 2 oÉìϸæñ³|ÙZtº«G>¤`lF`Oõë±ì$þLGR¯£ÝFGHke»¦¿UäóU)U¦9ı®ãåÊ35[IL-ÙÙCÃ"Ë{¿{òöîLʳûóÑ3a5\èö3Ðl6dòkº&í¨nèüeïôNgì ®p;Ja1uZAôhUÇ_ºN
+ójx )þ@îO5¥Åñ¹ñïX¤Å°b®iÏà[ê)èÙ'k<<Þg³K[¹¹³ªT«ïz}»ÍÔ¦OÛe`g!lÜTý=>mº[z¾ËúÿMª?µ)#°¬Íµ3kNx¨ë|ú£Z²ùS-q\ÜÚ\,4nñµÜg5éÃÎ}¦¾ßç¦ËK'E .À©¼ñG"ËlïÆ'ÉKý"2ÈàÂñµW*}j? 3Hgí,!Òûè±Âxþx(Ü·øæ÷©(ȺÎw0ï\Ui8à³g¾+;õ´BhnÃôë¸é®ç©;wÎz5:ojGvlÞËrr³hD¾Ò±döü:[I¾
+·Ïõ§+)ÝÎ<ù_T¨2ÓÚDøÚé%åøYĵq¶ìzõ; ®!æ©åA kµHQSokL
+ý6àÇ7%AÊÖ;
+Ÿé0Ö®ZÔÕ9HÖÙ<7Â]3{
+t;u;¼uÓõ¾ð¶Û
+ÙÈ}qÙÅüñMMôÕz|ZùôñÕYñôË3Bhð×÷67{.3]û;»³ozïZÉ`m,ÝòMd¼gß&Oµ¢Ê2³:x
+Æ_D§¡¸ÑµìP9³ê³1Ôù~UÙxMiÂ&"9ev:RmÆÊÞ&û²Éûí³tÊÛªñ¬k/láÉ
+u²gn ø~sd#Ö_mLjK_Þ0ñõÉ
+/yz}À;3yðD&ÂbÅÇRsÃêG*Vm}©#æël÷É~ôáýõÚÖ4¡Í6ó£·ëlX¥1ÄöïI
+]þà˹Ñm}uÈìñÍ`ÂùÕáb¸ó*Ýä1niCãæ¤4,ÄÁXöÙÑä:´ñî3UãñØ©*}åæ³Ýl5évÍùTã`£²èßAG;@úÛ¬~ÆVÑÕñ¹mõkî#
+s8Üç«Cn#_jBNgÅ[æ;só
+WdÅRþ1(3ú{1è¨þX¤{Ø"]òF[ Ýä{ÁeçQ*
+W£m'È~8ÅìHhvÄg0 ÷"·« øXzÈ
Ûu¼Çï`/|7¡òC-pÉÂ=°6~¨.^Uê¡Wl×Iül¯ÆÒ;¢LGm´Ã%LîÑÈÈóµ æ`Å
ü£v¾3®cÎGPR×eQkÂe-ì¹YTàýÀ¨hq Uø¬{ ÛÙÊø¤,DÝß5ºp»¹´"+¨êo1ÎMÚÅ
iú
+Áúç×CUhcÌ>ÿØ´ç®ÊÈò!üSv]÷hÅ+} *=@%¯©ÿ«¥Áý¶Ôt
+úÀXEG=±fäãX§cE_0ÆJúáq¤r½ÆuÔÈR3¿ÏÔ'6:ÇÄQëO6#RzòòTqùéÌ[=::¦Û3·ê
-°j·Øxî°¡ËT=÷²Ðt§¦xp·¨ç6
ƧMÞ¢hÔ3*haXä¤÷cäÞd¹ÜÇæXxWÛ õBÌ\Ð#NxeíAÃÐÆñ7ÝÂÍj¸Y
+s
+U5®ÀÆ,<Ú"oø§%$¼
+ÌÍjøw¢¢"¼MÌ£j¸Y
+7«áfU3*"sÓr¢n¸ùTCÒÏ¢d23Ò¦G6P^£&t1H殦:7{`´4µ(Í?)û%5¬¥LhXÌ
+ÍTz<0ü`>vVjèä°Yyüu˸M¥Eéåe0¨¨Q5sVH´f¢hdC<¢ô}Q×óûªurp@Ù»Éê¹°áVHñ±¨Ù½«âcµ|<ÁCÛyëÁþð(}öÞÄCsl¥BíËSë_;zq|®^¢Öî8|¥'3\«÷2úÀEJ®§cS©=/1òæÚiËónèÙÃñ¸Pq¨¦_
+ý6iEý#þ3Ù##4z£rFÏE!Pïø?¦ùdÃvzÀù¸f0ÖO® Mb÷Â8xÕö)÷×4&O9A:gF$UAp)¤6Ã;x²ssÀBs³ïãÜjPfò q|÷®®É¡É×!üp
+Èï:ßxgèø\æÃkÒHL¶döU*¤ f´H¨x½G
+¤|§(£²(tF䮢()
+B©R«
+Âq-×}Í%µ5OÌM$Ù!;âAÁðt^Ó*l
+
+Ü¢ WFA[ÔNÔb³f"1ñÔ
+¯ófÍKÐA<àä'
+2ÑN¼R¿ÂªªHc%Ë<&ëÃpC2z" j×0
+k§_
èhcÑ`¡1 0ÍD¥uàÕu\SËYñZ\IOs"Ï"ê[$:<tã{ÓtRÏ0Ѩæz=¢¿¨P¨3us´wÖï¤zp«oY4ªÔgzu®ÍT
+oTÄ¢`JTôI¤ï¤Õq¶jURÝÈÕ£¢ ÇN¿2ohÎk±²ÁH]BëkÚ,4R÷¢!t¹_Ñ2
ð^9GséSOëËÔ/e«£êBj]³ÚUΣMõÒ4$%½Ó´uÍÖ
+_ZØDKÏSg¶¨(Àw:óY#î®Û¼MÆp*tçªj£¯¥ÿfP8F²½÷8þtFâé³ïï¿®ò¸íuÞð¼¾^ÏȺ"{×Gc¡}ñÿã ó9ô/äbŪÁP¯wu=)TÕë·(Ósu}=¼Ös)
+'2óúäE²uÌ«ó-4IßáöOè0ßÅÎul;ðHz¸
+ïP2æM*
æ=y®l¯²3ý(t'%Ö¤{øí]d¼rOPQ³N9py×Bl1y
+úq¥¢yÊIH·L$íxX*ßñ0FN=ß
+ú!G3rJ}.û{^E>ü©hN^ºòXæôȾÏÓÚ:´úu{~jå÷Äñ>wë ²TòûÙÊDuÆÙë''§ÕR7PMMAþÔ:'³Ç^Â-ê[Äsû>$ç~Gî³aÊV£°AQÐÅ 1R¯¥²CÕ )ÎÈsuEYwvÈ/³ºÂëKª2cë´×BHcPnf£xe²^>n#QäHÔ³ÎfÕt£Lí>C ,9A×=ªòBóà]!¡2ìô·öbò1/&{ÀÈ+´b²°üUòW¦¢)ÇÄAç
I|RÔ½`¨Dάp_|ïd¼tJG̸ã$ÌÔL5t¿96ÑÄ&IÅÄäs§Nh*Î&ZÒ$3SÇh>y¸H¨¸s¤Â}s,-y[QÒ©ÄàǦT¨6tÃ#§xâTìèw$rjô+ª[ñ ËáubÐßòÜf<Ȩâª9Ƹ$*_ÅJG(+4ã¸Ø¨,°þ´utNã?
vq£Ä»b¢Ï°R9¦V£ukV±À¼2N÷Ý x¼ðAjZHι5vrÎmÑ<Ñe{2jâRûuà»CRP5òóèòNäñ ó]]Soù1R3hðëêUu"ªë£9ÁO묿,
â±ÃJHÕ|ÍÚSw°~H<QÂÅ ã
+
J[â!æ¶FRh %O%SOó<èÛ{âØ[tÔ¡Ë^+R&R}Ø/9<ÐÛ¢ðͱsô÷ÅÉr >Bm2|"UíÓOy7èÇUoÈó¦^÷ÊÌ4(tØCåu½|°b«È°Ñ«Êäa6Qö¡¾Ð¬\Ùéº y¢Y±Ô¾~«éy
+o4§¤¦Q¡ëÊvÛÒbfmx°TÍ
+UmY&w˯5#1[Ì£çfË~¤¨$¶ø!xüLÆRõÂÇu ª£ÀëBõú)CáþáB>î¢P&úqýMT:=¨Ô1VÔLgôãÊ
+ýßÑÊv@ðfÐ߯þùïÔßoôÒKÊ&<É ã¤*yøÂè±oüë¯kJamçë·÷¾öÒ6¯= Fg%#mSP`=(WÞ×#"z3gQá90¬ Ýñ³
+¨%µx
+¯é±ë;ü¶÷é@'ª{
{¦v
)BÑ
+RhrÆmZ\¹1Ãü²²Bô¶
ÆQ2Ð1%FÇ¥ÃÑd B£L
#Ñ/ÕàGJ?eºSWÆå:`bz×£Û¨R×xæ)-jÕÆyLïïÇ@<¤ 1F7gp]ñ:ÓÑåQÚàØ±ôjRHø×ÌT÷SàbØ
+;J¹d¾¦Q¤_ï×Sé94ÒçAµª4ô2k 7Ö áª-ÌCòMr}aä{aÛA(1Â9âÏÌøJ«0FòKHÞ\´zÕPóN¡;Ô&dM/DöÁ±¯@ïéPÖ5ýÐI/¶ó
}Òd3ÎØK%9j÷LVFg¿ªðÚðê^¢ñzjÓ¯óø¹°ò*{´Bqx§CwÜí½'Åué¼âY^¡ÉfÜÝ(-JA{F°uµÄXSÞ?ì¥cH)Ãd¼îh¼!þB¯¦_oó§8èÕèÞAÆÿÁHÁ*ÀÖk¨Û}1q#íS¥+û
+#ñÂIÄ Þ§4Çûâß§¿ß~n©Äµ?WÓoß6oð6½è\é%høe/Å{ü%õøÉ;À±=í§®_YBºóÛáªøMó_¸Cøëÿüãç¯ðÀïßàÏéð/ã$úïB¿å%¿¢sþÛEhbÿÃö%çÌaeÇkwàákêpÀu¥Kß¹|ÖãþlP§MC rþÓõ
endstream
endobj
30 0 obj
-6765
+6400
endobj
31 0 obj
@@ -332,65 +343,68 @@
33 0 obj
<</Length 34 0 R/Filter/FlateDecode>>
stream
-xÝ]K9r¾ç¯ÈóªM¾I@ iG÷6>>Ù^n»ýû&ãA~UÝkÌì¦_$#LÆÕÇÍíÛþ²û£³óýgiãç_ÿcÿçßíÿEãß_ÿsûò}s¿=p«û÷ßÿ-íÎíßÿô/]ýô!|<ò§öñ>¤Ç×Oñãá?}èO÷sGå£ÿÚë?¸(~ûôÁS³þ³}ÊD$ø^éRG¡¢4¤F_¨éçñ©ûÃèÔ}-¼6:àO
q}úÜ!)¥È£Ìn̯âTÜgª'Ðn¾ÑDèsG¦eGeÆÌûUðX>÷®æü£Lÿ3Ì5¾O_áÑzäx!õüë÷?n?}ß~¾¿ÏñOâ?ܧ>Qo$ý¦®xn,Ü/Üè3ÊÃ1_iÐuHGÙ$Rñüi:©O@©ù)ã{5¥öêñû³ÆyÉ7©üD?§ôETw¢oVwK`1åÃÎTWöꢾZ^ùâÍïqHdöª"úiE²;fÔ:éxáÁ¹GÄ;Ý{âãáï¾núfr1*k]
¿|ÂúOGî[ϽoôÜ·GÏÅT»Îæ£Ý?èvçùÉü©~ô§Rù±7TsÿÄû¡ZE8ÄSëCôSè$]_9Ä^ú·×í÷ÿøÜþÿÞÞ[ò-º½ÿÎG©ãwó.AÅ÷ÜBçæ+_v*wRåå´¿gûsö3J[¶ëÊàAGP#äû ;âoÑ/IP Ô:µÜ@5WEpLÑ6P1u5ór×èRþ±ýéw£¹fßYË¡ÿ.>Å&½ÞBN\£(ühò
-eR×*ïÜMó»
7ÜN0ÚRZÔyîÎýÄ áb¨1½ì?ÃàfìLÄÅZ¨u<ä2ëÈnÑX½GÚNhÔܪinQhñTÖ1EçÆXB~H6ºÇÒH= %Q¾Þå´2Ò¢.Ĥ]¥ÂjÒѨãZJùàgÚ1j²ç%ØF9ËlZfVÖ+«AëÏÇK¬µñLQFãIéÒáåZGeôÜ9ã©®%zYçÒH]kÕI¹/ïꥣ¡j/¢4¨HoÚD(@ôñæþu{²¥jר?héh]ÅâUX,,GD<7ÑeÕÌ6ÕmZfC{C¡c9F']lnLÐX»¤XÏPÿI]Êsºg#@ÿ0ã]éiÿÓÑpC^
-¢7Ããrï»AoÞÛIß^öç0´péÛÁÜÝeQb¹²"«(mEw´
-oï}"oòFòÜ ËÙ:¡bÑeæB"Þõ} ¯£ÁË<Êï<Ñzãiyö@oü¨,§ùÝ·(¼¥ÂBdì5£ëñJÔGìÒ²É~ÏÍé=VÓª{X^ª y¸i øÞ#LÛ½½ñ±¨$éc¡ydÞ
-eyýÏ¥¹
-äu'ÞÏ(]ÄÉPD%ÏÃG
Þ¯PäE!T¢{0ã0^IóÊ@8pâór( ïØû®A¹
-#rqÌpn8ÅM¯h3H%
-e"ܲ<1(rȯÉË
-ÜÝ7Í'ßk@ý4{Õ{µqhò«AK2Þh£l2²@'u0Ú6.TXǼÑFíý¡NF9~Rït cTµåÑa´ÒÉúºâ#ái;ÆÞÔIõ*õßÇÜÐ
îâiDJc¾«dä,·ðO6vDSwB o¡ìøÌêáÒ?nF73ætSi ~=êM«Òi³fÙó©¿Pÿ¹å|¬çÞ³ç;>sBfÇí'o'Té4
-åyöoQ^dÊ!âI«´´(â1ÖÉ;ÐÉIÆÑ¢Bí
-0ß«òjaýEé#µÇ´.4e5¥z±¨G¡éøÝßvýwu)ËK/Hë²mJSzÅ `/1'²uÀûkTJ0érïªeEyî
-ÑGK["o6
-o¨¸Õß¶ôÌø;M«á^«²
-5TÇÂ(AÍÒA\eiË4NuúNf/¹@zÌj¡ÿ7d¹ªµ@'<íWæÉP¼FóL¾êÞBhÊsþrñûôÿúºPÄùÐúE#[ Eg!4½Ío¡4ÔAh¹0.DZÐ{MÆvÄ4sÒ¢U0ÕtȳÇFñ%¨7§Ç&áæÈ³Ï&Ùkáw\£3^½«Ñ©®s¹¶õÌJ½O¯^©,ã9Û!]cÿá¢+q
òÍC
-*Í)uæö{Ç
¹a65èe¿C@ËÒ0fy}>[Å3ýêg3Z&@nÑW½A´ë¹lf®æ
-#zËfÖZ UYE/|Ë+2Êhm
-ØÝäu-îgpBþ=HsÇ:E(»([yý i«;éä2ZJþâ 9EA}T%r""*óþ©}WV^[\VSÜ*
-ÊÓÀ×l
-^ì ¥êÐìM.ÖC¢f¬)rPÖsÊ]¦¹?Cé(´êÔ_h»¯Kc}®²émyí<(ñ#ÿéà;äÜ×V
-¨L»¾õfí<kÅ`,É`ê
- hê¢Ìý#gßÊ.À¨ríhg´-T°$MßËzK°B¢±ÃÒÚýÞ>´-Iµ9ðVµ]mUkÇf@ ¬ëdôhI5l!òUS
-ð.¤Áè»@á*Ï!ÀøÊMò"0ùÊg´ý :|ry
2·K¦o@ãÔc\åÊjKaùnùKOSÈ.Ãô0ÎY
tåÍô;¤]"wiæË}âÙÊ)ZQQ¼N2+ñ`e!éNë´Fqf)í°&,cÄRoÊòÛC4E#Ô˺6xÑü-ëîbbxç¬y¨÷3´lÐt)0òÌÑèý£Ü4)X'¾î²yùeä<¥8ga¾éTþ1<2£¬,O.afþ`¾ÃBÎ7ÈwXsÚmRó®±ÔÓh+o(ïç¢3JgꤾZ-+K§ÕØTT§Ã¨MAurFÔó{N±Y]Xµ35Ùs¦øÉ¬TÒ¤}?÷jÔiòÈNhcÙ¨7êä
-ϼQ§sÊÏâÙûäòÊuFÉ/¦:T¼£ì3ôp5{LÛÑË.㦧ÐîKÙ9Ë;M§cËÚ×ÿýÓ?l.z5(>sË_ ½¢întê½ZÒCT®©-0+HvìF¸¥¡rиÎó·þÿ{þúû
¯
-ÝÒÈx¢(úé¿|ßúéÈ#ѰÜîé0;ֵ߿¿nt!îÆ7¢â¼õ ¯ÃBlöõ¸k_äMM¢ó
Í@eR·I<[ú£Z¤e!³=åéôs`úüåm4cõ×¾¥gqp
-«¬>u½ÂVÿ×´ò}½DÏWZ
-!Ú:f]NM<D%'eÔDÍ Þb`ó#²´IÛ¸ÌzÂÇâYì®éÒ¤2ôÆè×ÑØ3h"Í£43ôsabHG¡Ç勞¤ú¿òµVÏ
þÒ²ðá<$âhñ263Ùa;æ9꨷¨ç±"ÈÑÚ
-Â5G§ æ^h($±Â;
-I!aLs#÷m.ì Ï*DÜ©
-tÄGEzb)¼ªèàΫÊ3GoõV&OÇÊl*¡ ç*®sòí0|2ÖeݳÄzM{%¯ÝC^|²_Cv0ÖFN[{iZ-3Dï~Þÿ¢ÐÊc/pcò×ÝûÛ-ÒÕÞꥳ¡´Õ»Ýå$Wk˸êÆÅZ¾NI˸:J÷yéN±;Ì%Ò1'7ïï^²ñ´!zé
e"`¤G÷
-8T:ü6]=`ãXsÂ@ÃRw˨UÝ&É-·HZ*îïÊÑ-y^<eøÅVôrâkÈ'~DZùFÚ:Nw¡¿~Êõ@ëäÞ¾×{ÑN¾ÿÀk>ûq³FÇפ©"<8)¸oãJø83¯plJmOäRëZw
-65}5¤&´<kòØl¼î_éåúsù;ã»ÞÄÓòò~qäH3ñl'ãóTééÑ"*ùÓxïèâù³ßuñüÑ=üNùDÇõùyêÔÖ
©ð>
-vÞ3wAt¦ëZ^¥×Oãø@3¦ü[º?Þ"ã>ü8¡¿ç>|ØãÁù/\z¡¨êx·wÙ<(h?£ñRâCÛa:ÅI !ÐÑk%º
-Ä¡áêhëXãhÎh¨ºÒgÄ'xFîøÀ¥·ïÀèä£_$&=î!rkmOêÄ¢_rÇÅíº¸-A¹Ém:dx*.qæã\]uÌGîfn¸÷äî{æ¶J$DZ±cyÜLèã×åx0çÚò½yûÝR°Ñ©ËKDCÛpÓÊëÎ4¢þD31gÔh"ŸfOù]£NNh_Õw
-*{Ú]$ºýC(ôV¨âºjc©
*chc[ GÁ7áê{Ýå3$«UF´0ÌêZh<7"A"2¢$0J¦e^3j³å
-Óá<Ìd±¿±>GE&.Ï©/©¼i)×õ4ªïYË¥ÞÔÏ¿yï^º8û3d¤;²AYúD4ëV¼©ÜѼ@Û;!u&
-Ëêaò
9Ø$ôø9×Û¤ú0ª·oÇÓy´ékúk¸;ÆCSs:Oé;a=÷·À!gÒ`z©kMOâW# Ù=wä(}¯`^²l¥¥Ea³Þ×ÖÅôRL/
-è®´ÝÙòwäÉÀÉ<Díµñõ[Ãíïmy|-Ùµ²6rDý®L>ñ"ãGø
-28ÝwCF[£ÐÞO%1NÈpIz¤_èEÆ@ÒôtüO<:üçChÇÈhÊìO¼xóv<íY}B9¤ïFö¡¾¥èX×=zGÖbXbÍrfgKÖrS;RòqCYotö7ÁÛ,}z¢¼\:èfvi[FIÖÇ
-T
º/x>ºc4D>hÐyä'WÒÄLä,"ȼӧµY<2Ü'h8Uw°:
-ã5é;Ì *ËØ§Ð» ðu3%-¶HßÂ2°Ç<YM³bðFD^/Ðp,Ä-xÚ²IÔ|~ÇÍøH¬ÕhMC·È(,tEØÏ$ÔÁú
-êuÙkge¶Ûõ× CÆgîÞ\Å¢Ù:êC¯+fhÓò³·´<JÒ·uк±ç³ ÙrSþ·nJÁAïq)( ugYçsòBoß÷Òq^ßP
-çEÎ
¨
- !gÃuó¤q¦Õ?pNôO7%Õ?|7EÍñ¢9wh®ÃU¤N¿Ç
-Æä®|½7O±%èEnÙv
Åþ;:È7õÀÓÙ¯©wN{̪yî¢ö0¾eXûåÒíªyßѳËXÅ'È®XFÆóEJý¤O\}ßql!a°Í_
-zÙï²¢ümd N[ÆZÔÝêk3h¶Ô¯avÈNêaj¢í\çïÊ8K¥þï¸CO'èÈi£^änù®Z@ò®KåÝÎFz5èe×ÐØÄÑv®ã
-à0yäRKCâãË8ä&hÝs4éfèpqÍ¢rB<³$ku9ñ7ê·[ÄTr6úÈ<JâEDTfw¥_ù]Y9à
syR^*
-ÊêP½ç7J28Xª²Ùòq*ȽJѱhdí ¸Þ
-Íýâoó{m÷uPh
ùÏh¾çÔy
/$ &粡`ã¥é¯hrvU4OÎÓtæ½ì8¶ÕÀÇ2M}µãÖq¬ÃjÕÅ%´û@OãÑéÙÑ ¶(#-ÃLmÚNm¬$Úh9Ec»G±*X¢eÚ
-/j»_!·Zj2R.·Ë®O«wI~¨iUM¹.KþBʺ
-UõqOñq(ºdl«4åÖ µÏ6e0öf0uP0uAævÿÙß²ná¯QG#ë(Vx9£m¡uj¯Eãó
-§,ûºvBaÑÌØÚq¾gôCÛ±¸¼QçS$Vy6FÀ)Dwô¹,bá°\ïûüçhyÎÅ32Vö`%¯÷ ¬\Få} ó9R£Ý¦?ææÕ nLÿÆI¼Í?°Æó²¬°|AY$¨]¥áeYÜäêZÊìÔ¸÷²CsØ9J+êænRÌðîóÉôÛØ¦) øÛ4PÄíäl,¯ËòÀTshj*¯OfÊü³S®ò|0#<UWå³|>äõ\äü`FÍUÆNq3¡2Øæ>%çÌ×¹Mcz5hQ_9?63«ÔU®É
®\u§¥MózÖç¶®½
x.è.T³ÐíBHóµ¹7¼,fßju
-SlÕê¸÷z¦ó¨MÂíÃ$Í¢òã|ß·~¾'Oíô~=£"ÙîÑÕ¦À§å'÷ìù¬øÞ»éÖû< [îé¤R0_pyÇþ×íkÜYë/ýIsÝël-HÙá¸
3JÆå¾®./Rê
-YdöFáøS¶þ+ßâÊÿTé¿6¾eÈ×] kññ}Å_úÃ+ä=?øûGù¯ü2â+ý8íùªWòã$e´4TYw<ºaN÷Èèï"2zÙ5^>#í©·4TëÀoÓß
л¯z%ïPQ
!*¹ÜE%Óº¨ÒUá8d4àÁà+ì|Um»À+L¾uO¼Blðr$ßÈTÞàßoÒß=ÿÆ
-yͪRþñixü"ÓvÈa5/«*ëP
+xÝ]K-·qÞ÷¯èµ7ß$0À®xçèYY%q.ñÆ?d=ȯúô932¤EbÁ3ü¦ÙE²ªø¨bUßãæö¿mÿ³ûwG/fçûÏÒÆÏ¿þÇþÏ¿ÛÿÿþúÛ÷_7wø[Ùsmû×ßÿSÚÛ¿þù_^R|õ/¹æôúo/þxý.tüe`÷Rjýnþ=æöú]|Én<Í¥øþgE?ö'ǬÉõ~X?K*¡·ñ2(voò_¤Å^'ÔI¥æJéoýËýÛùÓÍþö<ûqõs¼ãvé§ü¥Wȳ@DT'TèIo1ûSøý/ù«»ü6 GC]Þ?!}ù±^<þÊY,}¹|νæ¿È0yàM[Z½PÖÏ×ýúÇíË×íO'-I~hÐYK¯¹ª/ZUÒ-ô*þa´ý+É%O?cê
+«ãþË£¾0íPòÍi7i 'V:dz:ìXò/ÝqlªèU»ªN j(rÏýïqQ[+¯úTþ°BÙÁsWPK .èì~i8D
+~QúJ#ãF¾P#åµIqô0ÛN*±ÇÏ.ïªVán\xé§iHpZO}l½'É}$s¤[}¼NM ?^Nìà©ìt=¢5%ê°8x¡V~ÉbãÂå°[\þ
+±D´OÊ[ÿ.X
>-Ê#ø2tîçèzïè3©Ä>ã
+ %ìdrtBùå𯽵£7T^"ÚÿÒ=F7ÒËû,?®8.ºNöL{¼ü`ű¯5}©Ôf£Éw*ß3hxZöj¾#_vcÿ?¼Síï¥ø5·;Ï
+KS¨´×ü2'kUÙtAe__rj½ýA<
[ëºïöTÚþoïÛïÿñ=¸ýÇÿÞÿ´·ä[t{ÿRÇïæ]ý9î9.w(¿í£Jí´?.§ým¼Ûß´Ñ©þs 2_ÆÏ¡Ü;ß©~ß%BSÈ
+Tãm51DÛ@Å<ë;N>ß!wåoÛ×9Úçï¿åVÐbÞOoÎmð¬ '®Q~N´?Gù2)ÄkJCÎwî¦ÅùÎBÈîàgfN Ú»ùÄÏppì'NCaèeÿ7cgj$.ÖBµëà!EGvÆ$콩¨´1Ê!Í'\^´mYû} µú!ÙèZ]JG õH$XDü}ùº{ÃjÊHº[zutøp¬&Õ¸ÖJ¹/½ÚAO2OÁ~Ð÷ÉlaÔt+IKd´þK<Åzý§>èJJzûùc¢Ö-wÎxzæIÍø| u®ù$åÐËYê1ª£íMQou´Æ(Lr
+¡vú{¦>Ë2Y
+e 1êmüÞH&N«f©öhÑ2Ú
+ËP!67hÌ]R¬gÈynßsºf#é@ÿc"Æ»ÒÒþ;¦£a½D;Ããro»Ö\ÆH=iÛËú m;»[£eQzS®¤È:ND ¥`ѶåÍã°8üa4ynÐUÏì3¥bÑUæD"Þõu Ï£ÁË<Ê{híxZ^}q25®PÖö´l(|¤Â2±Ö¦ÓXeå$+Ô²Â{sxÕ´ê¤*H7º±pIæ÷zëk²kÒÆBzdZ¶,È(óÛ@^WâýQÑIHTyø¨Ðúª<)ì
+Ò««'®®~ÌråbÞ.²Ã4 at M2ÈæåP@ß5°ÿö]r1.Fäâá*ÍãS5Üô6TÒP&ÂMàö<>(rȯÉË
+ÜD
+I'«Ô´¨â1ÖÉèä$ãhÒÊI¡ÈrDÓJ2Ó
+ìñÏKb¼´FeDOÍnFtû¾l߯òøû0qjse½
++1u#È êè*Ka«ôÔ1"^v76/>>µ &Êø=6tÔoq ~¸oI¨Ðá¾eyFû¦FÊéÛúÿh£*q,y: È0'îÝ >Ô[í£cÒAÖçÕ¼Uç¨Ä 'áAýáX¨ jj)n®¡G5aÌ_ ²ÜÓÕ
+ìÉB
Qgi»DA¨ò`·#J-ËE|èåitxµ7EMzixkÏÑÊï,d99¡HÌÒñ±°-v'a>"óULYæeÎBTTô
´MÕâùIe1 3£9\f¿CÑPfGzK3] J¯ªøê´>¦ÿ 8
+ÛeØûøÝèô¨%êÌ@½t ½AÄ"&G!÷Ôá
+ÙVoªËè*´¼ÄïsE¨{CÎÃ2Ç{]^u"Ì¿(m¤ÉåÕbZÊSmAª'z:ß}·ë¿«KY6½ µË¶ºøT
+ñs"[¼¿F¨*Á`¤Ëº£ZfQ÷®P}ľø¹ô òfÑð[ímKïÀ¿Ó´j®µ*@V÷z¨yº±æUèóÒÑCàô%Ú¦6Îg¨ÛU³Õ9»±/<Y:³Ì"ÙÆéÎ¥cíé1«
þ¿áÈ ËU:äiß¼4Oâ5gòõì#Æ©<{/û°ï§ÿ×Ð
"n
̶cAÑÈhÑYMo at sd«æH
+YÜ5jrÅ{Æe?ú¬ÉØfNZÀ°
+ưyVðØè~@IêÕ;J¸9òì³I at wÁñ×è¬díjtî\®m½s¢RïÃk«U*KîÊñæàítÜÜ(ÊÐG(Thä 8"íÞqk!anÕß
+zÛï²g¢ÔY^µâRÊ~µ³5 ôEomçgá\6£KWc
}d3k-ªÖ¬¢7º|Ëëfк´$ï鬰T¾ÑNËwÞv½4ÊpÝs¶ó3¾zZ·àmÞdbY®lYúP«Gß¶u³ëä:¬ìçûöKÔ¾ h[·öËÇ0/93Yëóîlr71o¿gÁ ùÏ I.ÿõl"½(»(SÖq}#i«;éä2jÊ-ü År6z¯JäEDTæõ?,Sû®¬¼·¸¬4¢¼¸U
+ÕÀWÍÏzy)²XjB;²$1¹X¢Ü±¦Dà:¢(÷»BsÒQhÖ©¿Ðvÿ,ù9ËzIoËkåA¿ùOß!ç¾6/0ÑàyÈéTÎìÓ¤gh=áõFe>3çim60Þ<S$gX3kÚjR¶V׳3 ånÀqÚÔÙ¡6TKeÙ{ËnIÆObïT9k§is³=¥Î±Æ/_5·éó\EK=¡¥}:½ÄHâ$HU¢j3uñW(ªÜ´ëXoÖγ6àÙZÆæYͳ(ãEÿÈÙw¢²Ðëd¤D;Úm|X¡m´ÞÌhlǰ´v¿·-BKRmN[ªíj«Z;6Bÿär [)£F-DÁ:tûnÐXO«\κ
øÖüTzg¾÷éî õx:7o]°¨¬#ºÍçÐ7½ß÷z³·#å¢}ŤøGh^ÜÚ¦¸ÈÑ`FèýîÊ^ËM
+¥æÏ^Qw7õ^-é!*×Ôe¤«
+V#FRÓP9whdòüÿÿ½Á¿üFíýÌC·4"è¯úé¿ÿºõ3+G¢n¹Ý,óÚï_ß7J»ÕSæ¾ÚÙ[ï)@GC¬}Dçʬn)gKßñm¢<;Ô,$~¶§Å§P~åø¶Ñô«¿´}d¡Ñ¦
+éVY}+
+½"7÷}\ÓÊ÷5R'!JXÖh4ñPo%â 29ËZãQµ&7£µp°Í¨ÌÔû;[ ¨%¸»è!rÎ6æR }XíáàÕDT<?¡z=3Áñ4dBUìùÁéÜnSM:ì
+TÑÒ1UðáÐÄCAT¢xRƨ±ÔZìÁa~Dã2=¡1GÖ>Èrdw]HÇ~Hf|ð²R¡v÷]x("TLBJ3I8cbJG¡È:Ï4ÈÓ"3` J³#¶»üµ&ÏC":öÉÑp,lgÔ¨'²"ÈÑì
+Â7Gç êIÔKá5
ÊILc¢e¨O+D/ðlfó%ø&ôèG[où}d£Ê^N<ujxB}zË+UNÁ¥ÕvGG6h8/4ܳW$ÉùìÐ3KáyE[G£¹ä£¼â´z+§¾qËtï(ÈÉ9y/Òüf)Õ5óEb/NXº~ÈÖ§+&;«âhâÏX_pmÝĦvñá\¥IC¸´ôÐN at 2äËÈþt#;Z2ÇOú@@yòòäI½Û%ã!q?´k
e!ùgï
+]ï\·ÌGGX thG9ÚxCe÷êoÐÐÚ~ãÁ9¥Ø(Ë£ÙçüØù-Êb¡;Æ62mc^û<t:Æ!É"NE|âv3=Òì?å1Ç×ÌJpüO¹þÕóÈjþþà_3¥ ©W(A|Há>×Rðü\^ùIp:s¯÷o,(]Y|&g| ¨Ìd»t')Êb5Ïj<&[ú;mÝ}S|ò36Æz9< Áéªìt¤^Hë¢'~ø©T¹3?ÙûZüwf?J¥Ã#Ò|nµ¶§³~+ȧ1'icDf/Ö»:ÍzÆ8>iÍ9=s*ûXÒG*»'æ/Hf´²WËot-:HåOÙ6¤(h?£qðUÝÎcw͵JOÄÃ?±ïjh/zW0Î|±vìùù3Ú*æYga,âº?#wåÙǾ<èM.ÇU åçDûsùÉÝ
+R©Èyºm§Û#¯©Ì]å<ó³gpТqRk÷Ç~âÄÇÉìjgv`-Ù-é½?ímÆù0Ìg°
3ú0Ý¢pr#¢s#WÈvN;~5ı
+×TèÇ¢)ôD²>êØêǪËõ*+yýêÆA!¨7âú{Z¤#*Ñh½-¯¡fc7Ë5?KOðQpâøDfÐ0#Cíú¡ZÊbàãp.¬´÷@fG0âhzEÅÔlBPtóÙÆI6'·¯à}{²Äj×¢U<ÃE+ÑtÔ©3ÐP¹;4b9`R
+z8ÅY²Ú£Ì,neçÁÌ@~úwØ¡X#'C÷4Ï©|J)µ\Y-D»ÄãòôÔBÛ§÷?LlÏMVGß`t6¨:kæ3½ù0è²
ºîï&¹È'@o»"éEèk_åæúD;kG½in±¢Ù«×eNÜ7 ða¢;¯5Çü¦¯ARfèÊTë3¿E\ïpËH<k£á""®ù¤âLëj÷¸ô µ¦í~ÅÎIJÞj?×ã3D¿?³¨Ûl"mý
+¥9þ8÷m!AO° ú`$úv}¦.Ãg)îLqq1"iÊz´øém©´!姤½¦<òõirDø&ÇT@Ê;äP?q
+|áÖ×Õ´7ϰ&ÒÈ@ýÄèÕÇ©îtöºåP{Á¬QC¨æÜÖ{Iu?ø
+màÛÚU>
++Ø´×ix´híyÆUÞ#óͦ'ÉîZ;V¢i%ViåsÉîdêú¯
Úhûø¯Â¼ÊãïdÉBÚù ÄÐ|»ât}ãtqÜí]ã@&ß:ÉÒËYËôNC,cedÂ76<èØ/Rá㠹Ä
Q92ÒÀ4ã4Øî¬8 >yºC¤»K[°®°~¾¬Ô9ë±¾oÔW±7Ekd%®½lË_ ¼Ó &ýé¬`úÇüÒÓ EªÂÒïi!
+A2ÉO(Pw$øDf¼0;2ë©h* DoégY_>
+èb ¢PáKÚ^YÝe±Sz¼²vÁyf¸@åÆÎHMwIêhz¥ÏHqÔÖ0Vn>£HÊCéPp4_¡«XxÀõ¯lMísVÙÙ×
Cú¢^Hkf¯Ø±)+ÁDÖTÁrZ¾#i;@¯0À_TBgþ±D ¬æ¬¶À\GóIýòMq(ïÓÝ½Ô ¬ñ4ÅÃò¬#Z§¦ü TÊ|RæÖáÙÒ¿ð)
+}Yß&EäÌâcµ·-ýs gÃu6²LÍþ¡â¬2"îY0{Qñx3Ö´-}¬À1ä¥R¦Áô#Ö%x¶tGjQ¸7<Ãm!áq
>î¦ónÐ<}ùK4ÏåëÙǨ*j Gó¬^ ûÍHáÿyþÄI_a¡IhpÕüé0ó!ÃÏî
+wÙ
>i
+û}1ÊÙþÎà
+Æàn{M§[%èMÄ'áv2¡{ Þv:ýõÄÓ/4y²ÊÕ¼sFqÒCÙ¸¬GsYv?y7LTa¸âêW«_³¡oÓxõ»_Ì Ùc︴0ÕÏêï½íwaÙ QÉÁ_iÍxº3Ýv¦eY
ù,#
+"õEr9å~|9-òAÑ0î«ý|6\-ZTÈo${u:ñGÅ08!¦³S´ÔûæQ.w("¢1°ÃÒ«Q~*)7¼ð-LªßAå°AyºØG at zËq`©:"ù³6èkÞ¡Q×{ÂW¢¸?*ó§'Ô£ôQ{"Ug ®ôÏhíp(ë7#ùy
+ARgæi?êé÷KÏÐ|2¶þõAAAû2óõKv ¨D9{£·RÐñ4ÏNåé"Ú´¦ZXÔG»)»û%
+0ø
+ãÁqßÔqÆÎ?¤´ftê5ìHi}¹#éHHW-Y¥ª~Ãðç0~
+EöYkªLy£
+híó%̳(gAh¢ÅúXäô:G±¾ãmyx¦VZ/Xs`éÏ¡
íioÆý¡éÀyæU©,Î?Ͳø^¨
+´4P`_7çò¹À
+9óÌé?fBïÁÃí}»¹ïÿM¨~ÇaÃ*«Ç.Fó9ôMïÿ=ÇE#â6ÂsÄ_Y_å}Å<DóZÐʱ.r$<åZ6¥yÇqÛ,íJ·YèeÐü{È,gåæ[O´S¶Å(Ç»
&{ÞyÄ7
Ané³hn&!.ã®FÊ~¾¾`u{ý¤6ñÝõàÊÏ\9²æÁ£Ú2W×OQ<¿mü)Y>¼Ä5iи|
+,WGY-%,_Q'ádWAb'<,_U§*ûõÞú»®ûr1Eë>t¥Ó¹«Ø¯i+êüÔÈEp4nÖ{+xzNÀ2VË¡ËI¡}ÚW¬0Ù1¾ä"BÇDc$©°¹òq:HÿqÎTzs£zÖ6·4{|ZZã7wãg+
%9ì¡Æð8ôÆD©Ã
+øe°{Û)êhÓÈõw[F¾/ÄÒkF^ÍÈËFaÔ1:£¼Öi¬böyP+l}fcÃBÎA7èq´a!ḛôàæcêH3y3höx¡TL Ìiüþ¤VÞ¨7jåOmT0ÊÌDÀxÿû0 ¹FO¶áÍ]Ùã Zmy
+ÜÁ0³sÀO4rnfÎ T+ô¯ôw^úå5ôOPýà ñ@Íç 31òik>Hç³¼çtt)S2:/Öu$õÉè¿L}ÿuÛÙhñðf(ó&µ ¥H߬9!ýìÛ¤ñaZâ¯ÜÖUJ"
Ѹ¡Ð6WðÇ×ø§nFÎÖ#ó91ðËH(,ñqâ¯KýaòáðùÈNp7òª"ÿäræ$®DÕ²Hj*ʬ;
+
+%ÙSX&·oã Æh8a»ÊÁa!©i¨<×ߦ½= »Q5ÕîPQ
!ªñï@SoÿjñÈ×Å4rú2ýË»$6J|Ù;LERÓcô¶3
+ÏMßÀò¬/
endstream
endobj
34 0 obj
-7479
+7625
endobj
35 0 obj
@@ -455,2164 +469,2136 @@
37 0 obj
<</Length 38 0 R/Filter/FlateDecode>>
stream
-xÝ\M»Ýׯ¸ë
-dd53#pÏ ÙäïG<$%ªªnwgàlƯ[§¥¢(¢HJUûÝÝþ¾ýõ¶ßÞí½ï?K£û¯Û~sûTÒûïíã·Ííþ^nÁ{¼}ûÏÛo¿¤s·oþã{Þù÷®<½+ï÷º!Ä?½rï}|zç
-êS¯è(íï÷Ïhõ?ûó)is{xz+ãöÞíB1àç/½0¨¤§Çãx|ÿÐíé]ÀC©ºOÔÜS¯îØ-?çv÷Ï£e¢bøÖ®ÿjÊp{ÊÔø°ðÃ~~{ÇY;Ã#IxC3×Q®úhøÐEÅl§ñGÐðFÇÌ$XF©
ûIF¹ýét\À`Àð÷ÁÀê¢Sªè->ýéÛï·_¾m¿ô"yÒ³^o¹zB4ɹþܪI"?¿WÁmÇÎ1WÄÔÇ©Z2u|JÐ!§O:V'§Ò!óô7%V ,ª4ìÓSz}ÆUîÏ}±eXò Lß´v¬ªËG´/cÉ2-qj _èt6Uxjt-¢òPÇ1¨OCAhD.Æ=DRúÃ8RKÃÆÂ«·W]4¼ºÌH±¿L)`µ£¸;*Ft'¼°b]UoY`â£ù:©ÌË?§[ XDKE¯OÃw¿tvÀÛÑâJJAkéÓö¥w^"ܪêÄ»=g«ì¸»¨êÄÆhðwºgâôð£S7ÌT_Ð(|¢ÑÖfkÏÔ½/"ÒÏÅTîõj¾~ÐÝç'óS}ï?åÉhVÌNÿK·º
-â´Ï©³Ó~o·çͧpË1ßóíÇÍ'ßÿ¿#ÓîÇíûöçßÿÝærºéF˯}©õ?PÛL5ÎѶOOüÇóöÛ{îöùo¥{ò-º[ÿ÷Réwó.±wЪ±?þ¼ 7AöÑ6ºðEz÷MMYG QQv]zMqrv<ÔX¢ ô]j!P¬¡?÷F¢ÝºzDè+ämº]JEO×½7õ¥Ë5·ºþ»øÊ7-òM¥\ìã~¼Èw ÛË*2f)CÚ=$ldß%Yöo
ìÓ"ß6%Ãh[ÊpE5õ'dG~È0ÔHGûÏ@²]¤2¬´ldÈHõdAi§Þr÷_Òmª?+²=r#®Bf8º¹´{¨ï¬Íò±KtÉæåðB¹D
14Y
D1ѽÜ':z,¬(JWêFs´8£,æam r-õzC_ÝRr»JOuãáµFOeº´ï@x®K\ÂÙÒ¢º'ÔÇÝë »Ü¤ÎÓþØ£5VTºùXæF¦ô±Q4Ëÿù¤Xi¦QJ²hx¦¡. ´¸B^Ð&4ÇòÆxÅkCv@¯¨rÌM¦®ÁVMDë*õJ°\úv&ª³TXö»#ýio+náw
-Uz¥È6ênràÅNÒbÌAÙ
.d`ÙE UûaiKÛ´N©¬èªFÛ«v±[0¤eSʽWwFW=ÈB×%9ö¾¢H®Ì3Ë:D·&üQÙ+Ôx2÷FïÕÊ-C!ÛC5TK$¨úÙa_7Ù
-½
->¸ìeïJÝ îÙ-|̺fP^¨ðHµ!EêIß³ïZØû®A% -¿ #/&F%çÝEt¦
-²³ÂÒТö½òø»Ê"Ïf$¡2Ëó"ÁlF3eæLÙð1åñFMLµï¹Ï³2*¨ª±ÎöEzû"Ù}ÞD
-ôLM :Â3*CJë²
-ðX6ScÞWÔ):CEQ:i$2}ÕN§d(zì£Ó*Ý´ÿÒþ
-îJÝámfÙÔz.UÙÆvñK£Aynó´³U,V0*æüØËÏ-uëp²:ñn®xULíÅnuÁP=Ø<5úxèAI8*bÑO#rðYÆß)¢mRîªæ/Fnm·î Öõâ:7C^Ô_FÀÒ©{æ=§BàFPB8ÓÁËX¨&H@×<$ÌÚ9ÆuüÆFßú?lS%9È#upñÝóØ©¥¸mËHkÊúóÛ#Á,IíÂpà*É (.Yñ1n(§}YùÎZ.Qéz0Ô5EAå {åR?×Ùð8B²(@y?è*d4bTeßY%j¯ÉÊgï:L!PYÃéµLZ0DHï&!úaë´$<'®aðdváu7AÊð%sÃ4tØLE²Iß*.æKEÉ<³u<c
-YÑ[Ê®¸µ¥qÉzò©lÇ:hÝÊm{Ã/X[4WÁ(OÖÛw
¨AfPÑ)ë¨ñÊ<D¯LÙ˵#â1Ú¹
3´y}¹¡Áyp´Ëê-Fu»ÍêP0¼n'¡brC²^dW!Äj6Óïmy*ƶ ü´¨ÅDÕPgRU*J
-
5£eQ~÷¬ÿ®.eÙÐÂØjfÇRÄ'.Hfv"S++:à&ý1·áª]¶fAJ¡.Ц¦un¡â
-«FòY
-ûÜ-¾E£E«½¤oõ¡¶)r²ù©
-Z(fȹgáÉ 1_Y]
~\èÊ\0ª¶,ãá4hÐhÃ:j÷=ÐØÖªiý%#ªç=>8åyAÃ4(]£áeϺ×QY¨¡ºvÎñ^ùÿe }$]Ù93Uð4è4Cùµ´Õ¶ Û#Èð.ùèÁL[jC5 ÐN¥ù*BCþ_ÉÔ7X%Ú°·ÎÁ /²+|¸¢çðÚ8Z:¡:[ÑF(
-úûº[Ôª²73µýêmY'pu
t4¦nÐ` (uNm%w£ÚæÏúq;#3@6:
-ýð
-¢@Q³DÛngòCzíçSI ÎDhÆf¢#K!>¨
8ÊÓhÐzÉ»çkÆfÒØMã¨h[ÐÝL¼;(°ï»¦Ô#OÃËæò$ÒDC¶ÛEYqÊC#dâ¸Dä{k¸Ûf¯¼ä«.)»%ߥ¯<emâuMIæLøsÙäfmD¬:±ØìKÎb
_ë±Ü!â[¢ÁcܯÑv7ÃÒ2MS¹å)Êj<o6ÿ¨ê4>d4PuëÁeéÙHÒ/zWdãJ@ãkÒ>E³&Áª-Ù[gv Éégä q°ú¼ R¡"Gm"=·HÓóðÉéør|
¶c
-§åq7Áù< -7ôÈø8·¡ïÛ¼9æ=
-¤¦JÍXKszòü
-&ãáô³êcnØ(×7lÆ]ïËØG:iÙü®o93Òy_Æû2*ïjg¤TY_ïâ´
ß°¤ÕÂí2åfFfÖAa.ÁåfÊ)LÌÍîÙËÇ[B
içÝÈÕN4DüÊUõj½fí
-±ðìÕ§$²7J>®Ü¬(ÊsæRàéÂOêuĄ̈ë1ÏÓ©/2=DÑF eÓîñ1L£Àä_ÍezsxÇ#¨çÍ5$6w)(SÙÇÆnê,K+KAªzèïýÿß÷Îþò/èëëöëw`j(¸É&íRHÅÛ²´²^ÁÏïëëém+Ïcbí?åm«<½íç?ñ;Uù½óO¯n5zÁ2ÓKW.Ðk®náÕÕP9ËpEݵA
-ý<È¿s¯wîýß_xáïðªØiè=ÚrÉCÇéEÎ,¨+PÙy]&O¾"i¹P¡UDSqZÜ(û®<GÏEA
ßh©eie)¼¬]?¿¯íªßwÓ³ëôýB³PhòùcR©JóEïÒFhØÎà¦Ô1£ëdèųq8:±ÉFh·\¨ÍÜArÿþÎÒ¾I>°
-ùñ;~¼Ãy6±|Ø%ÌyJìI(++{¸¶3^1±?½¯+äÒAík¬÷DLqHÌ'úEQ½ïRͦëQR+E
-¾=oxû^¯Ó¿@Ðã5
Ê˦ÇTö<æ>$*ð#5!D;½G*-
4ZR]-!¡Hô9÷¥b05Ô¸_§ïܤ°Ã¿Ò:¾°-Où&-ñ¢g¦Ê:]H=_-ßWÔ¢±%Wj;5¢|â158Íí[yݶ5tÃK
-,æ¡&£¥]C_" ÝæSMR@¿Z"ìoÃóe,Rê¬Çxù¥,B<*ÄãQOob¢qÈXê:òRæT©`©Â¸BÔÑ[(¨ág*á¯fÔòÕY
-ÑCùE#fÜIK9ð9RõD+¨Ò²JD0JuÒ:ÎWÐsmè2¡=Ò×5°âÕQMï²up˨cKÊ;à=ñ$}´½Dvôt[<VoéCÄÊæ×óBp (#T©T|çxþ³ÔEñ@ÅGiE7yÎIëå
-F2âºMô0òz.ÊD{!ÑlG.§ô=Ïxó¼×9V^Ê×8ê°~
o<r~sÙ79§}|ã9`Ùúæ/±ËuÖTèM²¶èóü"²Öq̪X]ÝKo<4ÃÏ:Ñkae#þõöWüÍrö¦áúS:]ź
-jòùÉ@ &ü¾Óú©ùþFw5ázÐÏ
-·ÔÑ×>
-?/~×ÇíÜy%ëyx_V¾äK
-M³f¤É]¦NµÜ÷äXÙòè¦O§ûü
g¬nOç¶¾Î/&~O̬ÃcVÇ Y>VGmyìÌ7Ù@¦.JÜv
]Þ àoìMW!ή¬]mw£ö)9f7ð99·´]ñæ3Ö7æm0ï²<ºBe?·´:¨2D¾q·|þõè$LÈîzô fÇ(öø,_ò8ùx×&=¡ÏpÃèø¨ÇSÀäËÜ'þT¼|H#Ó6A\â
r>Ò>A1¾QZw<(©
-«Ä
-¯å~v__ßäÜæ=¹<Û9kÖ¹ÍÿsËsaØ´³ÃÌÆ<
-P#÷ÚUq
-'ÂA@Ã3'»¸°^knä¤8xlâ~ʳ,ð©U1Ám»³]Ü!>ì
-ø®!vê½N%óIHÏÙwóÆöÍþÓ.{&ê0!G'EÈßÌ)*u}W¡RÁ³8Ó©A¹j'*Ô¸ñLN'A.2Z,ãÄèåIz.É´ã!%¬"#i°EFIÔ%¼FøF!uEnìÃ8q¬"B0ðuÎ1·0CZ¯`d_l³Ì|EÒ:¬ ~®SÙ"Üf7{óÙÔD©Q79
`7-ç0Lêªh8¨ ç(ÒS/$ͺ½B|Ôlê½úWD#vè7K0Z¢ÌvåMn°
jú¯q¬5
-k³Ì§ØÂ(RË)!}
f éU
-Ü!«yߣßÝp^yS&µRçÕ
-ç>¯ÑÇáßO¾¹pö[¹_Þ£ÎÙÙ¼+>C÷edcù³tÈÊ!³*e¢¤ýé»[ç]+¸x¨=m¼¦$±ºËÕF\÷[7´$fÞÌ9î'¹d r÷ÇÎ÷ѧ°Ó'ß|Ý{ªïßâȽÃG;ýÙ3®:)kìÔÒ6ÒUG>jð2§w~,myvÕl+ð áÔûõ =ïn;²°Ýò]¢à`Mvç
+xÝ\M¯%¹mÝׯ¨µ¾.}KÀÃìî ÞM¦/¬8
+£_{ã¿ñ¨ªº¯;g1ÜO§¤¢HHJuÛÿ¶ýe?öG/fçû¿¥Ñ¿ý÷ý¿Ùÿô¿¿þÇöû/;ü£ì>ÕGÞ¿üÛþÛÏiwnÿò§~¿{ýà_¢
+/ùs øß^ýK
+¯*?äãůÒñ{{Éÿ~ê5qÔøz!+.)ÑÓÞ6öi´m¯"Þ7Ï~³ϥ÷ðVu%¢®Î~Ïï?â/·}ßk\èà×07(Ͳ.²hÌî'û°+
+ò$vÕwcî:b®ÓxÈDòËÌ!×ùÈoÑ`Ò1S)ÂÌ Ëªûþô£0Z^ÿå˶O_¶O¦<ÉÕÒ?ß½!ÆSo5Q[EÐ9f8brc4H$×Ç!¡¾*#d
ý$d2©Ððj;îù3Y«ÜSÉFk¬p}¶|ÐiàS.¯Ú;DEn=Ç[¤ÖäoöÀ6ÒMëɸ¹#>üi(0a¯£K_ÿÚ»8:ÕòrjÒ{8vz9rçxj.ºNöL^~b1vë¹á¥¢Ï.»ë`e9~Ï |dPço »×÷ì½Ê£îdÚ_t»óx³çJ³=¿W®ó¬cï'íA¹OªÎIªDümó)ôrx¤ý[?þÑöÔ<M«oû×íO¿
+ÿôËAê(¤þPé-éB¤ÖPÛL5®Ï«®}Û~ûoÁí?ý×Þz$ߢÛûß|JwX½¾x×%[зüÚp[$rlI°Xû3BU#jÅ=bG¬X¢ ô[háéÊ]¾3Tº P]êj+pßäïÑ>ñ@=úìõ¥k4·zþ·ø.¢j6-M¥>ÉuY#'´¿`c|2i4¿væEó]»(Zí²æE£@ÛvÕ¯EÙûG¹"+ùI¢ÃPc ëìÿÒeì*Ða¥ùL"éH¬d_Q:ñÓçC<£Qvü¬ÈöpFÊ]t¸
+µzáèZ&æRß×<µÎEçNîÐÊ2~+b¢;ThÊ¡¡õ!ÂCZéo*MS«:¡ß¨®
+FêLæÑR£QÔ¸úêO0Z¥·Zf¶Foõg Òô°ç3^Êô<ÀÄ u} eè
+7£ØRrlÒüÃeÀeȼÅiddP/fxÛÞYb:ÏÊC]OÔ$LD42ü©;äu
+mLqN¯h«ø#Ù÷L¹û<lب,¢ùKæôêFòf6
̦¶Pb9ÔíJô7¦£-ØþegpOËÔs}IÏËûÒ¯Õ9иCGà~ËÁ4Yrh5<Ðú*µ=Z$uÊnz´}w5,´µF©äÙûn8[¹¶|¡½è2Awýq9¤ËLJå1dk8Ä&=bw(Ëî¯zvÆÂkEOÍX U õJ×A²
+HKÈïaxnªÒ:vCà^ urææ®YÄ-·ï®Cì µÝÅ"ut"dHéÄJszn¬Àk9.<.Seéu[©sìB¿£Ñ良1§ú</o«¬nAí6õ}K¾ÿõÝ"j/-ÚK
+t,SÙ,*ª=o´75kQ-§>6YâÒó=FgSmìªCo¢3jîÜ¢;§=Üha¢µÆ$ÎìDsLòú²L
+wÅhTÐ~F,ÿD
+ÛZ.q3½ß¡8ì¨17P4¼xÑÆ5m9$R*,m¹ÓD²Îm;huê¶Ùת«=±Ý©Ó´Pr@Ù ÕpmX9tÓ]Q-üy±I¶î¸ô~â2·-ýÀ^ôÆÈ¯¨-:tF¾åÒYÏ®J©Ì ÚÄLî¾â#Ù©ìì> ïüRøA¶7¦SFI6´C¼QÂÜäi«´`Vö¿Ê¤µ±_Zêâd7tâÛ8L^ñª,
+¶´ôÒ]Z´ÜÒK½<õ $) Û¡EïFe=pHÈxÞ\,BŲi nrH9ÊdXYï87{^¡,fÆJ#Pé=äÄ$O9¤÷ë:zYB ¸ü¹ ê5ðPF8æ%8_7Z¤Kmëÿaë*
<ÒÖ{0Zf7 Æsj(þ¯áÒxF1Þ1¶²
+²²°iìê(µ*jÝ$£"
+O©ñ+ #ÃTØ*dKýñeScË"Pa
º(Bz%1O¬>æ¶,¥µÌ;-u:Á¬8´]®<óJ¼¢Äú4Û`·¡þ6üÁêE*©µKé&¥JêeEå5#Leÿ¢ )ULULÙË Ô;df[(¸A-³;ÍCæe6(³7ÎMÑ[6V*(Ú`n1÷d9̬Ã-RøEÚ{
BѲV\ÌNQ46tȨ%1ÏþöݪÿV_ØCÉ,3çuAqA"Â"ÖºA£NVQ¡¢cçq
+Ö®ìs¼s媲wdѯ,·X×°ömÚµ2l#zRN"ÚÚîÕÖ9ÝÜ·Ã
+eÙqFæg(.ÈÚr:;wµï°p¢¨¤òD³TÚ2·zVV+â^µ½YÖå,ôÿ(õS½{ìßiÄ#oú¶_QºGÃußGy¡
JZêÚ
+ºrÆ;âÿAú Iz ³«r,s¨Øë}[Ò±ÈÎ4Álù}$
+6S6=Ç[>&úÑ%/K2Ù¸e]P6KC^_IÔ7ZEáÆWJd~â¼Ä¬
+98=Áhx/HpEu¾·¢P2= )¬½ÊÊ6)¡RÇ{Í(ìüÂÙ
+Í:CE4Q^ö¾/<éSîGó·ÑËgd´h£2Ñ'¨
+J$ªÂ1ÑìïXnAÅôP%Â3h?#ÿp7¨i%
+ìÁÒäèë8'/rØUOgër©ÁÍ8W÷¶Î£ËØ{ï#É3ÎþBÒ(BN±çM{-÷~QB¿
+ÆQjçê Aº¾î¥#ã]Ò)µSýÎrXÊþZîÜx;Ä7ò@Bo2uaPÑ{^´«é|§ã°-HÃwµyÞ9Íø9sëÇ6hA½±]ÙVÑõDQËЧ}+
+}ÿD7|¢æ¶íW13Ý@óÞ ¡2îómY"Î=äqL9³3ÅdÍÎzÏÇôuÒ¨ËIt&qÌÙ%j»%'b¢7ÐlX.^8I ±[JyFoK9x*I5£¼:|ñ3?#¸ºª,ñZË/§nÕYwJõÚÆë2ÅR+ÿ7cÈ[ÒËã°uFP67¡ñ[ä×Lävðèo½´¼ í_¥e^³$e$¨¢á9.ã)èIYã¡(vÓLÔ¥Ö~Öò×ÈÑDNd[£ÃÙ8R#Î`l"¨o"ظ ÃQyÖñ²¸¾¹À7÷r¦Æ!jÁ:Ð8í¾ ¤§ÝÛ4kVíñ ÎW6LêÍ][æãf.O.òÜ¿nóÎçúãèÑ÷ÐÛ¢}ܹ-ÏU$Q«'÷uñ«ÿ}Aît#2w~;Ë}©ä{ä×ò¸y0ÊÛíªôUTKXÍ! zÞe[¡r®sõÝõÀhÓAÅϸSýï£2âêëÞù÷
+2ÏJY¶Çòv}®ß,EÜÞÅÛ¾í´ÏñUä tp)åbº¥^ç÷¯v]/lM¤ËT
¢ÍÉËyC=I~æ¹Í¼r¹foûÌ3Êd¦%uwËMIyö;Iç0:ìltzѼiÀo
+B3S2í7Qϳ´ØIòº1o L¤k½ùqswfIÕ%E6Q3ÏÑç=q·äööÐzäýÛ0ö.ZÎnïÕsÞ¹ÓÎãj¬,már½oÓÇÁ¤Ôy~N¯9#}½%4|y1ÖüDÉܹá1ºAÞw|Ê~½ÿ³¢vFÛb^h*öýK0ë
+{y$,B®W6&WBÞ½3¯p¬Ylyáe^²H¯®#ѼÖ2®Ê<ÑfÎÔZYÚÃéù²½ìwAi¿^Õ±×±Ó¼pzâlöR÷`/ÿØÑ³s¬)®ï;sõVæCÊ%§oÉGFЯ²o1Ò»¸¦åóÏYJAÇ-1"êîðý>HÞ6×ÄÑ$#]s|l<Ã
+3CôÐßúÿÿÐ;üó¯Ôß/ÛÏ[<4!ÊѶ`4VÏp=R¶TÞä×éïËS¯½ÔñmÛúÓk|Iî_è«©ô-UnçôJ_Þ}¢¯ÎJ|öYV¨È.ÜRwmïD~äù3ÏwÉ;O>}õåÿ·_}¹óW_ݾ6<}uÊ£àÍÛ²¶²hõ§Q¸Ln²Ïíy
¢Ì¢äö
Ô²¶²æÕÚç"ý=ûº1¬Á¥û`:6} ¡§i|i^=}°nU0|Æo3}:Ç袶ÌîóÄ#DͼT
+jµ
Ød;4[.TÞ¿NWõß$8Õo2£ßd^[m)syÒÊÊʤí
÷mèïß×
+Ié¤g?K}$º@Ãa>É/z|J}Çj4]çR[<ôUâmÃÌzúöùçªL%+ÊeîÏ¢¤ª|!ÛçÔ#4é7p%9Ö7©q£]C\ÔbðPÅcÖdh¥ç\U÷]6
+öÊä*ól}/KËľLL|Õ°5Ö`Ë5ÈãáÓ¢G,d at 2x üPnxîa@}
!)Ãq˾8}GÚ~µ&
+×@!©Ê§.<$æOÖ,ö< ±ÖX®à+4Ê~SǬëÈKú[¥x$"´BæÑ[(¨á²!T¼Å·Z % äi 9
+ÆvÑCôñi¸Ø@,5
Á#ç C¤·Éª
+NÈþ M¬bNP«¥·ìYi$Øz
+ uâRfßEöiY¤½i¯¦"£m3ÊMMB38îñ¹.i¼~À'íí|CÙ3
+_å-û,uÆcªc>JË vQÌ{NêØÒ(ìCoÝÎ Qä-¸n.
+ÿb¹¤*VíH*é{#ÏH/½Wr <!Ù7ë0s
{ßXjNøÆRsÈ7h_´êº&ëruøXÏëxldQóQFTW9ÀÐoÇzpAváL]÷æ+[ñº)t&{ÜtIc<)°¤~Ø~È!ä·(è7!bw3ùyùìÿ/ÝCaºøßcÞGüÈçøI>ÇWvhÊcI%_ @¥IÌÏÑǤÓ_Û½àIé¡ñ·hd´}ú' §F7H{Äî½ÑåHbAÝ>
+²íÎùÆkw at r¦[1$ mÛU@ùJU¸ª³N/'YÞ´ÝE&×`\K½à ÛºâõÕwÓ«IW
,tÿ¿Í-/rU0
+äòH±Ð÷qçXXüD6éñÒ)^¯ëÅñoÛxþmñ³#=zø¾[
+ýVGv¿Ñ¨þnäòÊ¿'ktub2_ÎÑjà°ß~bü*Ei;ÅmpBhðÿÙwlðÚêÄʨT%üÏãã°C9|ÑÌd°ÿï
+íS=¤¦²iwÚýqÄn³´Râ`DÑ;!ï"»bEÒr¡ò½lÁ¯Ñß/?äæ#¹<ÜÒq#÷a¸¥ùâbÜù,Ê^FWlâÁVQ ,Ê
¶Vbf]Ëw
+Bn K+uLJïn,ôÔ;gkµî]kØbéH\Úa4s3¨a&JúBpÀ(ËØà2L4J¤®¢
+ÏDv!ô9gKÅ
+äwÒpe"¸ps¸%»JÖFmw1Ìèç$íîV¨3§´ï³G¶Qâ<&&øÇµ&Û]Ðã·$E± PLö"nN¢¢?$H6×&5XSPÛ£F4ÉFÈÁÚ£ôTÆL ÄóRJ¿|ö¢-ùNhH ³ý:rÒ¼s"¥£òéæäØ¡-h)»1Ãy6
èÐRF>4´âÐr»*Y
+ÇKÇ=GìszJÏW¦-Çó(Ü]ÃB^[98¶iöCKÏÇ}ÏSB§5ãfÝQ¡A¡qI¿Ï0²=ïÄá>ZzqR´ä°1Ë*©¬Ç{X¿'4æ>¢y%¯þ༮WÊvYMMYÚé~ü¼ÿE"^6aGÀqüþÞ£ßÍVVÞ´i£V§·5Wê*{ÝqøI¾¨Ù²Dþlw^Ãâ¼G?üs4*æ`>åe3çìÇE øÙ<§åø5üÓwó¨WÇRÒ¨<3ùÌWûNHâIbî´ÎqÆqvA+Øê²_Á>Iû?àáò[<À0ÀH.é
+{O_y£¤ùhǶ¼:ú fpÙCú}·³£ïyKäÉ¡p¥/íåuò´,dZ^ÃÔ)Ës}oxÙ¥ñÓnÿ§\ýÏûÔ¸Ò
endstream
endobj
38 0 obj
-5681
+5565
endobj
40 0 obj
<</Length 41 0 R/Filter/FlateDecode>>
stream
-xµXKG¾÷¯è3Ò6e×[µÄ.lnrrJB"´.üýØ]Ó=
°¢§Üvùm«ÃBóéÓæ ËB,ÏÚõùù¯ù×ó¿@êßç¿§Û/u.=ÈóáÏùå}æÖÓéÝÕ1
¥ìøí@m½PäYtÿM¢C¸[Ó!ðzÓ!ÊvDÔUÝ
-Ð!ãYH·äã×ë
-³p«¿ôLï@×zâïåÅQ¼²£t.úþk
-ô|sb.T.]7Vô}µþþðöZdæ
¯$É7ÓÛÏÒÊ´×3ù@¤%v(
-g#~{{ ½Ö\þs+
$nM<5ÎÍ\DëMAdÌzê²ñJ¤ ÎZwÏ1O|
¹n~&b)K[¹¢LÌç«ÝZ|@}.gBYÚ5~æÚï+,¥[K]4QhIò.ÊÖ?¦??E_ÿ7¿ü©´¥Ï%«O5Ò®l~JM×;ºÇùéÃçñËO×°çQ»vX§|¿âʶTeú4qîÊz>ÎÕ¢ëݹ(*tÎCÌGJµä.ÿæ þ"䪩f½wªÅ¨§k§ÚsxNÑ0}ÿoEØÇ ëýE*°Å·}49Ä,9Ô|§ý´¢°xm!EÛZA6W
-Ú3Ët&Q3÷,þsöÄkeµb'kz¬\±E
Üò>2ÎQJy9Éó ý8$T9È:Å$Ù»_ª=á¨ØGFrÈÆ®©Rq²ÓÓ]Í}£$P?òËy2õcä]ÉÄÄÒÛFDͪ±¨Þ£ ÁN| Á»]°.ü'y(Í#6±&Föµèkëu¹XÍqï×kæûɸô²â×TFß?Yãæcã¾lâÖê
-q¾
-Mz
-ôOàQ2Ð=RÆ2png ÈïSÈ}èÑPV
-5ÔHÚI®nQ6³9ë°Ü¬}botK Y³<û!upÈ>©ç2ÂÃðAÝßälg±a\Du(wð@|é»]|Âþ1iÞqÒã¡lãä¦M¶ð@ò¨f<¶:ZQ5yöA'Qõt
-ÈKFÝ<L®ÍÜ;t7÷j»Tw?°G\¼ú=f,C@ñ=$5ãé³¢>bäHÛá÷½Çúònþ4û03Êàú÷IÛDR>£éÛNGÑôåÑöàwªªg(îvÓ fB:äZë¨Bt/T¯~|¡ OÅw-_®Ú"~uÉgWí õ¯s¤ç1¬CÜ8yVoçC\ÇTc[Dg6¿î./f©Á©Æe4R¹ ®ñFy!,°77=Òv}Ù,SMúªê$ã{¸'1y}ntvägw»ßó(B+ÎîÄ i·NBîÐFyqì3,¹]ÒËpáÙR4ñc»©Ì¯ry :âor_áqÝ ÿÁD.úYË~¼)Ç.À:çúº_ñHßûäü§Ð¦
+xµXËÝ6Ý߯ðºÀuô ( ¸0d2E³K3@EWmÓ"iÑlòû%)Û÷1Éj2¯iI¯CJvãôõðߦc[I®µëõËÓ/?Lÿ`Pÿ¾üuxóp!Íubªr}øczu_¦§O¿
+-éÄËrñÂRNÌË1¸/G:ñ;2râ·rÍ:~,§£,Ê(¸ú´vKïåIsH<Ñu«þëÊcwöüLß0¨ª1tÚ\Ã^%hë;4XYk»ÃxØpRpr©kÃpTóÐpÞùlؽÝ!Tn¨kHéÓ¢-ÖâV½5c¹i®Ýi{Þ-¿=¼?¼{8|¸Í
À3qAq>?¿"eºbux,nQ´ºJQOG<æv½¯u±èhÀà_Yq_³ö>zeFáU/°ÎzzÚÆaS]ÚªÄ
+¿7{'vÙëßqÌÌÉ/{Ƹ¶+áÊ-óN¢µ*¶¨ÐkuÒÂYòq¥"
\òuðXâ¹'Ƴ
+Á?Rºå]Ôây>%¥9Ý Ãwéâ/èãQq½¤ÒYm4vÓeEò½¹éì3ǶÂâs/¦(¤¥T¥ûQµÑ0,-;ÛÕwenHߪA R1ÌSC@Àñ)¤EQO>ÊÁjY9äú,6E½ÄÖÅϤhæ[¶4èÔâ@»ðÆá íY¦H¹«.gë8ÉT]ÊuVzDiN
0æ÷§Ã«rîþ>VüÈmîS©<·ééú\ä§ÇÉ¥ª"íf>N>ýà(?ÿxH5ìQjõcæÇMY¨2ÎbÏÓ!®ðØn'8(ÛϼT±ÎQÄå¼Îeséòo
+¢<Biª:¡F³WQ`øCtêÙýµGx<£©ú*ÿß²Ï/ ëã$5I|×m!wKì§ë¨íDyiZ¼Uë©®- ©³çH/ÝEL]¢ïð1Ù'+¨ô3>{eÙ+Ù[4û¹( ¤XYò¶Æ.I 1jéq"it!ùÌ3¥Fê*ù9EýyÿªKÆ1IBd çã%äýBòg(l<wíeôÝ A']-óú§0xGìH ABÍÑhA Ö#À¯«ðÉIWºÊÓ!ç´Jb²IÝ%¾!ÙÌ3ïïEô]/õ«¸£9º»ìù£»_7Þ4n\jy$·&
+sâ
+ÉÛ£|;/£ï·Ë`ÄýV7ËFPH~¹6Êò[©>0æk(@bj£ª}úAö=©Ìíâpó
+ÀÔùME=gùUà¹6bÝ-¹oÖ:EkÔï¦^W±ÏÔäxb+G×zi7E»âÞlµÜô)qr+l,¡Çºè3º*[<HêVtÝ머']W沈²49$_cÍ,î
+ë*´å ;¾JRÁ:ó:Õ]ÁC¯Öm"ì-<Ûûûb¼JÉ%DÀ(Vr]FÀ#/[Óe"/¶Ã>ièð÷÷ð
+jº#%xegÙ2$è¢2÷AÕ£¿¨!GÁt8ÅÁbQ2Ävd,Ædös
+%4+fò±äõÙ!eÔn6zõuè7ÝreÙñàK=ÂN²ã£õ
+Ó{gB©dÜ ÝXÜÝ b:ßd Ýÿ¼¥Áµ8ÐÒõ`¨9^ËùRvN}E_üó^«@H²<)í1(
¿åÔóôÞßVÊÅÛ>¡põäèD¤AºÓry¹Íæ¬IÈâñfE%¿«OrcµÛå^¾!÷îlÛf^©
+ Ý©á
@ûiuë»Êæ..h)jQ6o%/IÄ^^Û¼k¯4ÔȽ"õ»ô+¢6¡ìÖî½/¢R:¹´Í¼záëçÕâ~I7í¦èâlZéò}¶PÑ^ÿ>]·f}»¸Ç$ÇTý}^%ýBPtÍÆ÷T|´\ûP\.ñ>LÿSæ
-
endstream
endobj
41 0 obj
-1684
+1784
endobj
43 0 obj
<</Length 44 0 R/Filter/FlateDecode>>
stream
-xZÉn$¹½ë+òÜdîÌ
-H%¹ÝO²ÛÆ@mÀsßw¬d0*õØhtLÁX^,d{òÓoÿÜôè Y|g]ðùë?¦¿|þýàæìyZÿýõn*ËSsSðO®ùö
Èá?ñòõ!Åð¦êpüëß§?\}ü<}ýö×óçÇpráüèO.ËÉ¥34356+ÅÏùäÏûúÓÃÛ×W{Äìæ©À3óa
·xs×3ìÝDâÉ;zz|ÂÐÁ4·Å/À9ó<yGôÂëÙ¹t~LDÀtÄ'P|=¢è]xªS5D&'ïU h@ étÎH/'·Ë©¢fTK/8×Wr½GÁà]@8À¤}âÐxqÀoðiøõ©1áLh{ä/ë³ÒµÎ»:ðd¥{a²ÜCÜsB^X/ø@*!*Éodý<(£j 1Ü(-\Há<;þ
Ú¼ïMõ¯h5Hb@ÿLf´Ô
-½f/ÜË18gPàV¸ðë/ÇàËó²jqEþ²ÀL ry´ÍØVÐEÁÑ\ÔZ5¨öW³tOoÝV¨Hl
-_tfÎ=ÂQbϧ^º¯ü:Xixë×ntîE·Ñè¹_cÚÕx1wéd_ÌÂÑñZ3èÌ5ãÂ"Öâ(Y¼d|ϰÏ4aUô®sü
-Ï.í`â/ÊÞ=
íü´b®Bͥªua&,*9
-=òX¢öÞ¾
-c×çY³
-!ÓÓ&*ªÐkOÞ³úlXâP¨ÐרSЩÅFmRPÚ¢h¹°d ÆFÍ«t®}¦ª¤h8{XâDPóS9,qý*2ËûmA áüK Î%
-+q5ôµØÇê9ÄíìkwõC¢9ÜäàÅ&éØ¿Þ¿¶ºëÝMj]ù¥ìÑ*<º!îÙ´QÀã³o@Cdp¼
Ãcù°ÅÁúSã¶8¾´ü7&¾<ij°ûAå¤1.ÚõܺªT}utÞM²õÀ¯¾._J¡ZsIi(h4eÈs[É-
*/?O÷ÚÊVüÕ_è)&*óX!YývGp¨pXÏ.n×úwñR<ð^àÑì°MrCÀð"&NQýFq-V]¨'`U/Ýÿ¼ ¥V×céܬ!Ö¿yÏW$·É¾TÁ8EYQ;¨ÃÀFÆCBÍÒÙîa³þ¦ÉV2p@$W´eá*dÛ²á8Ð,pÜÂà.pèº{Å&Çè¦
-3ÔgsÎSlÊÒ°5ÛrÄ_Ó·ÝGS×Q@© BÉÖÊwqGMé"
«lÈmÐ^ôfi1!æÖò(÷*~êêv`¸ñ¢^V¾sëVDÒºw©·®Ñ¯|Ò<O©Ï©/ÅqAUõ¥p§IWÁÔ>ÏJP)^¢>ëÊÀa4óZÞJAáe^¹ê3ÕúJ·rå*½zÆÌ~±/Ìe}f®O3¯¤.
-ïzZ3¼0Í0ËÍÎ]>%5$L?§DhÍ#/yp~¬5ëUíç°Úçw¨^ÑâµÒufg²K»o}b³«²:
,Ao( åymê|2·Da^ÐrCW.Áa7áe ɧ~_(Ôsöò¾}ÃxoÜîz »%!oï03kÉ
pkCó8zx¡UÀ°;ô®¸Î*¢âûh_o(?ÃäøÃÇ·/te:ÃY¯°<
- Ã÷§ìüRÚÕöN»ëø<áº~¹.«æ|ËÇò°H»ÐhÝÌAp¥M¥ìZöÛGÐCÞ2ää%É
ëyØG·ßYV²â·°duz»Í\³G×v!úW¢|5»\xÒ3ñÐ+e*ïtÒ̯D#,dÕÑÂÝþHìþÿüôË/ØJ`:?}§«D/=ï0Ó§8÷vFÞµWÑú²b.tØ ZÔ~ð¶CpIx¾´
ôxEù°<½?üëáÏJö1SÝZ¿]eÄ³Ê Ñ¹C ª¦"×Z:ðÍ7MmNðPrp
-ÚJø±æ]{K$_ÐJÔ~%Q¤yÖùØ:ÔøfÒ[/:ÌÊ)Ïz³Îó 'éø ·2î/ÓÍ{é&^"Svô;®jÕJÒÀÎJ
-x>·®°2
óÀgfòyRi5´C&½çh
-ðí¸ì¸®\õH4¾ÖÁwïæ
¯`íqÉ~BÝ þ¼gÁú{ó§me'pl£]<{G¦Dåf~§R·> i¯Z>Gîwá|vëÕmO;X óMÊÚu»¼D¼ç˲SnH:!¡0ÝËæ;$3sÝ)!OÇ8Ôâ,jêß~Yi?EǺ[(ÿ_w·/·ÞË¿YZÙ¡²ú:\¢[E{3ìÃ+Lú|i ²àÇ6¸bbc[XôÕØ¢MX£s|*ãbØ6¡²}æ4
ÐgõC¨ÓtS¢iazW
-j¯^5XýI ºRZÝT GpZþÜÒïBïÞ$U|Ì+èäÄM¦r'7äàI>¯Â¹T¥+z/Ãé¹|ÒÆ,Ñï} lR@¡4&<=ÔïØi02ÍÞÄTâȼCãîØ/ûE.ÞÿÁ>Õ
-¶ÃLíÝ8ÛwêÍíÀeSµªUqç<EæÜ½
ÂÏf*WCRàe¯ï8ñaÙ=]_vîõ0¯rÛ¼¹¹ËÀB`»GÞºgûL-ÅDïÕÍÍåìÎ×whSME;ì$l£6çSÍU>¹zYݱÚï¼¼}ù·¨QªZ0WpÏÏXΪRÛcbz^ +y} 7LÛï!ÖûBÌÒiòjmãºwéñÚ#np5óÈT¹ý>ȲCJ$Kè\(ÑÍLésâF'î
©j¬DëE¢Ü¤åw*-Ï=ÑnüFÚĽüå]?´ÇüÐláS¬Â[y.7 R/MbÔE¬Qi}¹§öÕ#ÃѵóUâÖûbDæL²Òzi³
¹§óSºe²Jlå¹÷c jnϼþÀ¸õü
þeUúUs{ç Ë^ȯ%vòúÑØÔmgNx×ΩüËøÉånÔAÞ®z1ÐÌäÞ$TàDTx6æÇ¶Ò3|ØÂÓp3Ýx!¼¿ÓX¾ÌP*}!£1ä.AHgJob*qÎT ñm,cq;öæÀËAØpXD¯Á+,Q#! M<
+xµZId¹¾ç¯xç*k_ I¨-
+s»ÁãSÙm3T<ùûMRè-Õ^&ë)å/BÊ6vùíô¯Å,uð+~þú·åO_Ìc¦eý÷׿Ìj
©Ñ¹ÅÇk¾}!qøÌxþz
+Þ/ÙøG¿|ýëò»«_lY¾~ûóÙ\/îlµ{¶?<}è3ÚtygótùË×No_O?¯äúZ¦ú°d·øÏá)¸tÍ>û£îòõ½õ¡ÂÉFBËíb
+)ÝÅÓõbí9Fá"~æpñüìNָǼĵ,4 Т@®3xN ÜÂFÙ]üy¼«Ó5%üGá =xMNâÏAhôà:xùÚâJêÒøæ@Ujíª²ý,ÔB³ÙèCë¸tßz÷öv¬~ӶĶOá©8²ÍýËf~çXIù|»<Tq09B!O¯ôâµäq<Å@Ö±¢/°åA&ü6 ª{ÏÊÚá»þÍïB)![ßáÂ}ü
+Ö{t+oN
+K¶ë±E»D̯*Ê<fÙºe(+È7b'¡¡m÷®9
+gÛ=ï9æUÂg>dÔ¶9P§Ñìå@|¿ÑKìdGDÄÝ´:ávó@sn8¨|QØðÚ@q¾Ó³#]:sk
+rÚgo Øíx:_ö±6öìào2JùÞr¸õî1î¹z¶ö6®äðsoÁ$ G~¬Ç:óøG;ÀW©t)Ff\_qPùÚr[%s_ÆNÓ.#u½T|[õ|¥Ïb®÷íö&àkHá¿Ps¬®mZÕ#ïoÊÞx·eþa÷çñü»Bu.1D`ÓQ:âÎØÔã`3;ô× ó>Ä
)+z¾*âöQ\2ü'¿SYºðëÔª£iÔzØÈxpÍnã××QRùªRî-×aF½_÷´yº¢WÆ ¢½fìî©×$;ü1*vª¦¬QÕ|D»[lzW°®*ù¬fÉô¶cI$u¸Ø¹ð^ÂAÃhÕmQþQöØ%`ö[]òͯ³Gxj.lº.´
+QÐúÍ¶ÝæWªrå¼d[[ßtØVUw廸
+ÃÁq¯Æ³FEÖØÄú.: ûûgëÈ/Û4ÔGÅ~8PÌð~}®%ÝmTafÂPº°®ø-,ØyÙ`j·<lñ?¦]W¨«èhCz} »CFÈa'~w#nñÒeØS
+P+;XÖG¢¹OUqQî§ó^(ü÷2Sùí+ÖÏF P¸qÞq#pÈ'䥢×ÌÑÁÌ?ÍÂúÃtÿ¤ð§+XïÄãçËc¨sò´ò¬¿é¢w%ö²G+ì{GÝmiæ
+v7շѯê8B¦ó§]4ÜTûî*¥£¡&ä°zf¨(ÞH
+{ÙaGÕiÂ=Ê«k§)äñ?Boõÿ(=ô>Ð/rikñÎ8¼5à|6ä|øDT/Mp|(;X»¼Ó.
ö¬Äv,4Ï<¨4`4Çuˤ]Á6Ó
+tëúªP 0 ¢²¾'ÿö
nã
+"ñ>Ï.¯Ã£±5µ«Òh!¸Þ¶su´÷øÎ>£g-Ê-[a_/¹?ã^;º2/ø}h®X66¯¶G0:Àe\+Êt b"ÆÙYÄïA;I½Û[@ÔìâJijì]L³/Ò~R³¸Á4TxÈM©ÄëÂ@&ZѳM¾©¨sXOtûÃïIÙßàÿ»ür²ÉVÁ:ðÇwº²2²4Á$¿¼·Q²ð)+2Þ,z~?ÙÚÃîç˳HïQZ§÷Ó?N<p±õÈ+!
àæbÌMðQ¼ÔPq¥²KQv¬I¾g:|DCpHc _,íZQA R-ö*òüÐP£ÇU°Ú,i!·æz h·~B6yE2
'ıÙ#ÿ
E®5ÌJ¡§Þ¼57Ëî£CZLYÊyÄ:RPÛ
+J
)H_Í"-cÂ1¶¾EÈbwÌÄkåàÓøí¯Ó³U
+ùÔ¨Óß¶î´[ä+Ë®*,¥FaU/i£º(®ãìÒ>G(ÚÚÝ },<6aTè¸i$3')Ë ±÷H-îá¿<PR+HgAFºáQtY0""ßO>Q½å7¥´ùø$rèäË\ÚWkt¶¼
Î"-(
+pC[¶ÜNpRµK¨óedõÞÞÎbãÜ»Ô
+<ÔrÜï
+ÒZªÿÖûîÖÐóǺӮQµôJ&~ÓHù6«u!ïé¼(ÉA(síßÞìU¼#
+i¶çÇf*ÃâÏO5Á`ÝñÞlfÂG÷z§±õ2¦r¯üõ !ÉÞ×ávWPÍЦ5ùt³PñzK_ñpñ±È(ãaòþR5G<óä+æ
+Kéï袩 õCæ<âZÝplzºÝx{rDó|¥#~óI.A
ë´>X\/u§K
+HðèbÍý°Ï$Q½;KÚJ*ÉÄRíȳ§®äî®Ý¡dÝ¿}2új8gñ`"5>P4*º
+??çÊ0àY< >{
+®Èn3
+æKì:ì·xc ೨G:üË#kÞ ¶ç
+¤°ÙdñϼÞå§eÌÏpZ.¶¿5%ôw¶dºH õòìyñ®}DúÐzÑ$óóûdÏM{jo·4&+N¾í(Òú/eI°áÚ|?PµSɺӽ{ ÊG×6¾à$þ ÓK:Tô«ÕY©¶v¾4¸AJï·`\Ýt?p·ôÖÆV¼^ðæv/&p£
+AKo}d$gfn¼¤ýí/>êÕtãNí^útá°µÁ*GÅÙRétÇiPå¤(]päJ dág¤{^í2v',ßOλ>úXò쨩äÕí9àùy¿>ª´"~,ß';ö ÈÑío³ÔÑmH
+X
+½Å®@M!bà+,µ+Hr·=ÒlaWñÔ,ëå´ïúÑF¬=9
+b±¶çàdïÙÅ{Ì<ò6â+íÃÏ[qlÛ3FW³,·Ù%¼v{}~ñtòõòÑåçÝ6"]Ò
+ËmÖj[nÑwxmK·R 9MÇB_Ù{ãqC ¯8ï]&2ÛÞXÆñ¥§¨_t;ÛO´úØq;qÞõzbHHÜH<øü {ß ï>ä_[¬FÎÒõÌäÑ"Rè²ÃwèïìüÜä)=>N»?FºÚA8§+^îàÚáä7¨5j?<$Êå2ZXv(U´NãØWV#9ir@hD¼ê,û½êSØnÉÖ#ñªÌoñªìÐÞ6_j]´¥__º¶z¦mÆ_º~©(DȨiË3,¥iË;ôwD!ó¨i«t9ºhtÝ@Gaà¡ØºõHt¢ÉMEz{ã5ve$j=¦?/ÿ'ý§Û
endstream
endobj
44 0 obj
-3482
+3265
endobj
46 0 obj
<</Length 47 0 R/Filter/FlateDecode>>
stream
-xÍ\K«äºÞϯèõ
sbI¶,CÓpúáEv²ÙåÞ@Ì&?R½Tzµ»' ·eKU_}Uª*ÍôiNÿúöÏÓtúâWolü\·ôùã·Ó~9ý~L~üíÛõû7cÏpZ§ís=}ÿëé{8m§ï¿'sùþ÷oïß~Ì®°#þ|=û7söÖß.óÙ/ñ_æl§ËÇr^'¼¸.~ín\Î~ÆßÖ~1úpiµw¦<V½k;ýv¿ñ-ô
->wÿ×½é.<{{ùØh½à¿ÛÇå/ßÿØÔùÓ¾#P5@º¸Kû²NQn´¬´kiî7ZO%®íáWµ¶=ÄðÝtÉV\ѱ¤ØDTËl÷æÓãì}\°9O!Iqã¦Çt
éL·Ë|à¹&.Á:üÝÅ©¯qÀ´ºã
-kº5êÄÁnJ·¦+6ý3>jO¸fOä
-wMRÛi¥[?è_D¿Ãà^ôÞâLIRWÔ¬ó¤å+£PoBzY#5Z¤BJ{ÍêXaBZÆ7øyã|'M+° Ï6¾1gòI6<ûéç\ Ì[â³V@pkôUJæÀïÑÜ
ĶÅ`#ÙË-«¿²~Pì-Øæò³JÒ xb÷áÔ¾*£z¡©ÈÝNhÇìD'ÂC(£k4Éáú2ÓìñYâ°Àì xfÕÀ
W3=_¾Ý/{¢¶oC±S¤ رóçVcg(¸ ݱhîJ~1Á¬<À¹ S ´
-!,´3
ݱëH-÷x:öØ
-`,³fÑf_%¸ A}D»þ`¾àfôkW¥V øúÚ_s7ÊtÙ.ó5[ù'ö b¨×Ñÿ!bÖ¥yê¦ @tTÞº£U§-ÅrÖfÂ(öX=C~3èÿÊw=ݾVmØOu÷vs ¦&
-àÍÙhÞjÅ©`
-çú4?³x×F4ÃÉÕ»ú)ËÆSYGôYÏß=KfKÞíÖ§7fVÐ6ÉÒ6#ý+g|jÙRZÁÓí"±ïÏÔFzdÂ
-s0ó°6²m³S³Jth1õbùê8ÞÙ) nNqé´zÇAÛKM[oGÉ[ ~Ó{nÕ@ÙG#pë àÕiXmì[bVÑiô#Û0DmìJIUû¢*T ñÁׯCøIlUçø¸ì¥¯Ä.ïvmL&kS§¶võ* T"Èû8©Ô¦YK\#5´Y¹ÂLmdÏ!|t-0¡d¤R¡D©WWXùÃÖ»e$ÜòÞ]{uÜ!±«å09;ÙQV¢ñÀN¬iíÄ3[©TÞglBc:·´×#Ú9#G0ؾVT±×ê¿k<ÏÆS¶éKô*I3pÚÄϲñÆUsô|-a3í.oŸ±/N»Ø
-WÙn½ZðL'Tþì:çe:hµ¦òÀ¸$»Ì¼uÈKÖYx\¬³gË*¬²e¦kïïEÆ_°Pý]±U%Â]cö:8м-MàS1±YH+#¶2ìÔÛú¼Ë͵ ½!Q¬]ÕÈ41hÇQùÓ¥à|rú¼l¡r at 8=ÙÕf[Y
-gôÎÖíÊTZÍc){[¸µõ<OäߪTY$mþßH`©EÂ!vm ²×ÓÐÐsl¬ÕË;;üæ~Sf.òìñRBQl)yHç´fÐÊÃTéÚ}ÚÇç$ú´Ç°<2ÚÉþ,-øìì_%Ïé¯NÙ)%
-Z©öpªKEBæP^)ßgÁðÒ,J¥ñUdUÍÁÂ.¥ùbï?]G{Om£ï¶©X{hù\Ó[ÎTýI"(<ÑP
-j¥¹)â90¨MpJ7ÀOº|Í|¦:rçñ8§èTGÃ2
-ÉRB¼(4妯Jú©,Þ=¨ºÿSåBD¸È£BÒ°ï!=¾¦àf{¬B1³IYTq=wµÅãºLû
ç)¼PV¯&3íq|õ´·òVY¢T:ËD¢öç{K£Þx lCë-s£ëçØp[ÚÌUØðÌÿ²wädEiìu|\.üR¾Ýâ𿳥Âz4]d¯+?ÅoµÃWû{YÛ_ÓäG"Ñm-(O»©_©R¿6¦Þ=e\IZÕ@%¬çªm¾A=> @äw·qÙ)YvüÖø°ô·»@ø<Ëõx%Ýep32D$;ãI|?±Ê͵þôÐõ
-¼#\ æ´46NX&Qâ8#ñ]ã_nåíàÒ>\ÒΫÌ8àN%oÂmÃÎJSö^å?÷i\K ¶=gCTÉóIH íâÎwÅåöÜ{s¡®n08êYÇÞîUw×Ï oº±]·ûuì§Þpì«àx?ã¿_y´ìÏÚÜQíÿsÓÞk_ÇvüÝÏx'w´¦ß^Å;æ5§döuwü\\§öx¸òõwòR¬ß×%ìúõÖFéqOµ?K¥}áH$ò8»V0ïÃ_C>C)Ë*zâv¼³8A×^¬)¦b¡ %ã >cÅ¿é»hµ Ê¿Àô
-qnY)åR·È8{±ê¼Ð¡ÆJÕgOÔZ©¼¢×ò ß+µ½ýðN|Ñëp*xNãâéàOg®A&*àýÜ
-:9 :[¥Â$L®ü-4høR
,er`[%2Ì##¦ç
-%¾DGÁªLx/ÐCâï}ÁÎ[i0ÆÎ|ÙeyïÌyöÿ+§ßdèøôÛêéªÉ
-íZ6D£îñÏ_:'&Õ®is/\@ãAõ\¶×
-2³%hÌL®½.ôVFSZ01nuzh·³iR®è¢ð¥sɲ=
-×¢É!ÁÒr GÁÂVÉ^\ztã9æéy@^c1iÆ]4eQ³½¸"袻[-pK&Eü[4k|=³XÌfBGª,55ô²*yy#˯^íq¤Z³M¼I~Mµj at WµoêoM'^ûÖäOÙ°¬'Jý&Ñsñw@íbW÷ûü+W¬tW¨OKüRøÙb¥Aû'Kg®£;kà>)ò¬qY¥BÞÎïXûM¤
GIÙ*åçýßò"äBÌ2·ÉE92«ëMrö]~3ɦâèEnÅê¥
-4l¼^}±o)¿í¾É7Úy¯¹
-¼EY¡Â×öFÎd
ø«Ñð¥o¡íY!ÖÁí]Íí8uW1ß=FsèüPÓÙòÎ×GK©,e%LBÙÎ|)¾aÒ =|¶§Á£v.f2tÄ߯ð¿¨qϹOSíóv§Ê2*)i;¹SüæMüòã·Óï¿|ûõôo2Í
+xÍ[=ó¸î÷W¸>Àâv×RîRérw@
+GOÇUáÀÊï3~èãª)Íêô]8Nò+KÄ`÷|ô¤¡|fûH"ÀëDÙxÉîþ³5?éÑÊØ®°ìýº<Óõÿ¡@Íê__h½¡Ô,w¿wãÁ2Uú(÷þÏdζ[ÎvÌpu¾"Ëã#¬jxÜIy³±aÆctä()5n@£Ðé{£îQ}Õ@ÙYGáÚp´hªö2d^Ó꺣,úÁ£â$ݪAÎ$¸¡}¦kré{1Ífý¹ pÏ:¨Ãg at zÎ$Å5)¶Oe
ò|õV,
+¶[4_55ºú5;`0ó(!ÜÞRïKlm&3F-âÐ|D*ÆÅX@¸6++]qd3g
+PÙ`¡úMé,ئâ ì
½
è
+낡
и¤,;¨r-G'Ùùpóê(¹âªy©!RÑ^Ö"°lÝÈUyLpd±dZ$%eñô;~*н©yq7àñ&<÷%¡áDLbÌïí÷Íû%WÛw?(ÃøÿØf+v¤uQ7Î7ÒU^Ñ)z={wÅ"Ûn¹¦äÉç«c§å GMz
+?0gIÖybähÄ`¶iB¦Av$l
+ÎfdÿObåL§Hâ¤Ó#U¿¡ñ*LLQ~ñÈæõ1ÁE¦k"a5qßëiĨÕgÆRÛ?!0ªÁÒ×eÌä«Ó05ÕÏÄÆ×6Mi\!®·`Gµ6%q<ªlM:+ at 7N¸P^cé1ò1©ü¯8Áv1M¬mþ>ái(µüD1«ÙKß2=ÔJEâÏ3·¶yØqØ+dóO¹5fL> ÇJÌsV:;ÙÕáÿ¾8ot²9@ÂGHe3Cõ´8k?ªh:ÄüI%µÛAUÉûHP@|)CBÝ<S±8Òc,Ö¥Uý*ëÄ]LWÛ¢=wWgµýà1kGsÜÆEÒÓ]qçÁÇI/ íÌbý
y"úÑrX&רVÞ÷zRB®²MluVAèFBÆGB\áCXÇE¡Å¯æÖX(%ôÖsqVÁQJðÙkä,b$aÅ1ÛÊCy±Æ$s m)>©}Ì]ÚµÓNE³-͸UPû(fam¤ç~3-vic¡=¶+WâÙµÏ4´áþ4!°YÊqA1¤C íYY;a
+Y¢V,I¤cº©e) zBì\QηmsQ¢'Ö{¦å¶örCÚ<ï¨0§WÙ#gàÞÂ+ÂQxÇÐbÑeþ·`pÙY8Æ@L,5)3@ãª4¢ê °æ8\;¸]Þác(eyA¼#)>¥1¿¥)Ho:cjï Ôö\²Ö&ßm»þ%#ºÜÏ!ÏI»BtL°f,jßåhHaÞ-¸ &ª^øeÒûZBLÌð1D¿¯íh?µ¿ñ¸0°^mb»Ó{2WÄpËGwEùPZ&§¿¨uH+Ô¸®ýd:oiætÏR©RfN@ %ðJ¨± Ǫm¤ç.Èý«¹Qø÷ÙÝSäïx¯©¨{Ç1eº¼äx)ÝkÐ
+U´O3©7´$ðZºiA{C}/bÏÂ`æÉZy@E5A:.]KjE»Ð#¿ÏñÔøe~¨-0>F{JQÄè×`dñÓæ!Wú&ÞÈ£ÿÏÑXI©»ë&_[ÍtXïT0Iñ):Âhå9lø 1o¸µ@üb4ªÅêÑ/æm{íJèêÊuÒÕr÷üfKwcåj0XG $ËNo¼Âa?su)¦@Más^0->TÍ28Rñ¨£x¤Î-dA/ÒÉ©½ýqìv^-+Bh\85*yTháÙTd5Ô
+·R0{j év|êI¤×èôTÖÌr_:
r¤âæéÐ䨤Ðlr³æs|YI<FÜgÜIþ°§ÊQïo¨J2É+X~oÖþ\µÔ÷IÕÖDÕ¾`tIÐJdpòS\I¢ÄO*zÆ?øy]à6¦ßJ£ ÐììVº} ëûËÄÄ-pOµ Â!g)Ö6º¶#ݳ8+ýL7«Wÿ¼¬8
ßpkÛrY£P¼é\ímRw¿Íi 3øS|Â"Ûinõ\wm=Ǿ*];ÜÜSPøu°5>s63ÅÔhúLo¶ø&YÓÔÿÙdÅ
gë[½¯ÜJDÛeYB/8
endstream
endobj
47 0 obj
-4001
+3094
endobj
49 0 obj
<</Length 50 0 R/Filter/FlateDecode>>
stream
-xå}Ke9rÞþþ»ÐéÃ7 èªê2 Üx!xÕ¶\2
-Xùûf<q7³g2ga j~yÈ $Á ïöî½ýßûvÿeÉâü·
-ø÷?þ×ý¿ÿÓýÿàGø¿ÿøß·¯¹
={û/ÿóþ_~{©û×/±?ç/[ß¾=ÿR¾lé¹}Éãùüåo¿ýåö/{*)>*_¶üü?/Qêy½ùùÿÊÿÐù%&øk¨ø´1B¦´é¿Ïÿ(0Ñ
-¯¥vnå`гQVÓÖÜî¥2ôóaAz©£ÿþCOm¡ã{»yóp:÷ÍéÐAp즬ÉûÔíûÃÉËåLæ©~
%*b!6ýCÿHs.à¤ñ_c±99øº 9«ð¯*}u´ç$ý¾ß]KàÌ,ÿlÊ z¶ÖA6íÛ¯B¾àøÕ,e±/
»c¥ctÞqé§Ëaðß.-=åýtÑÁD¿ì!иÀâ¹4ûß?¨ë°
-x»Û?Q7°
-ý¸Æ'ÙL/¿ei}£"À6f·ý²ÍFdi+o:kï4KZgiR°sL¸ê0SCvd¶äLÜl~3!J#f©m¿YÑE¬ûØlºh¹ãsØX
-þÖtxF= á~sÔpPAxTp¼H`îðÝÂmì¡xè(Kg\°\üÎ9æËÝ.ªÃ57ÞÆ4î1©tùÃN7uÕ£®(¶í©ÐüÃÿb«Oé´SQÔîÂÅáÏqíbuÇà?¡ÀÍÞ^s)lú÷ûEè¸Hª¨3»6H;i*@©Á¼Ìíî¾å×ÙwY ^/ O2#dÛÿ¥ñ ®ÿÕ¹14;YÜ«ùFBþtѳ9åXð¯ÊmÚÕ0Ä}ÛwH¹ÃҡȾ:´{Öpº½ÞÍX|ïX®(Ï-·`_y(ö3ál ÒSßËÞ¿Xä:HJgä9®*È7*Cõßýp»¸Ñ½Í)ÚÜ!á7;+¾éÄå?°P6² 2ÈþGù]'Úãg_Ín¢µðõYtèð(£,µ=ðªØ;q~÷ã#îb*NnjI fùÓ¬!oÀÍùø¤{$
/æÅvá¬1]ö9ÒÙ4ýåñõ®µÕ9ÃNèýÀrßV9-S³ßké³n`aJáy¸ÿ·ºå>µ£òÈð%@ßèËöTÆüßüs¿ GÅrê_gÁ
-¢²¹¥îåtT^î?oP¶ó¿ýWìè_çÿÿó¬ðß?©¾ß'càoåCüPÊrLiø´ä2^noõâcë¢ÔÙDzÁ¸ UBBµ¨0ËíåtTÞϨzÆh÷R⯷Ô`z¹3j03g=[c¸CÓQyÜÏ©ïw»ÜRkoV1uÆ9kR`VÁhCØûf§XfÅ©
-HÃJ@Õ#f Os-ûÖjû¨:¨ÅeÊT#JºPÇ\MfnB=lÛîÜQNGå1ß?§¾£d
-¨a¤ÚÅæè¡Áí7=|LE AÓ
-¨ÍAÚ6[xza
-xi? Åt¥¾òìËGª-£ñ.Æ
-n&a:ðµL|ÍYBÔÒÉ@^ØJ;Ä9
-vÒ?ÉWO¶NG5t$ªTÃ&Û mL¿$I@Z\{XUØ«U¸nA>aH:H»!²ºÒ:"1¥ÓëzUqC-%ɲÚG¾\þºä.êbñÈ-Â|û3è{x!TÉ¿¦
-åÒuç±
-¥.Gô§µá2\ÚÛg· \¶ `¸ßTßsxIÔR|*Þ,kkª$M´R<<þ¡Â
-æK<¡;Ð{´JÅcØÆ&\ÂÇ¿¯ëäøWFEÔÏ<þécSÒÔÌCA2ù
ÕFÎ4ÒÍ=b¥r*ïb¨¸ÔµjY2E\ôï~ã8yØldcÚÏà<8w(´%<4¶¤I®ÃVÞ
-#ëeÖ|fw#``HÎâV&ª+ÂÈ
-(§¡qξa¨:Ùþ®\8$c¢ òlE
-c(eq(§£ò.ä×wæWk¸õ$^JëÈÿ¨)öÎb;á9:&Q!0$ ¤Hï\1cPh࣡ͺsMè ¢>òµ´èzÄ9KLCäLô+
?%9+plC¡ÎéF¿TaÖ©ÜòûB<M-qWMEæªä<ã*ºá[ðz5ÈÁV3«»-4ó¬*úWUs7ssE»
-¡ Â2hD9Ë!lüñCH!¥C·äÁTDZ.8!(ê®åtT.z$ëM¸ë!ÒMõ©]õð¨«Ìå²(ÜqªYª~Ýhç[xî$=P~
-ö=A¼GgÀ÷bÙ¥ùÁE½HK$øxÕNºß@t³¿Ý|lNà+Mß gSá~9Ø^Ý÷ÐÓxàï±ÄòLg|lL´jl`ðÿh",xY"£v_Hªé*EA±kÓGË>VÀ>®´n>
¹øÊºA)èFÂÒQÐÄ´)jÕ{CL Ûvr:*o=|J}нX0[(¨Hh¡Ò´CBÙPy+ã3ê; àHó{K?n$RÔÈJ×»Ó`3NUl÷ר7Ö7Ø=rîä0v³ð1[ÈöabDúaÂÛ51NW1<¢Æýðº0Ú¾cð&Á¦<JcôrgÄL×?<¢ÊnÈO©ï8?Á|á3ÏD|ÞdûÊîxz!`),õ÷¸6O-=ÆÇ¡uè4o»¨D,tÙÆ¬ã
-Óet4Ã¥s§4SóhPx¨U²¼2ß+ݸâÆM_ÎF·Í¸Ga°êµo8v<7¢Ò¡Pt4yÒT¹ïXÊ#¼¤páα³)¯øÛz¥]âx[(+Nù#ë9nEl[¶
-n
-éDï
ch_9*.îÐÐÃyd¡¢±¶§ü§}Ò¡H ¢Ûd§"n¯úFÎBÚ<âmä÷]еÉÇoîtØ9-Vzå{»p«¦G
±oDI¼Ö±
OÐM¯|ïhD±elºÊb:Õk2rÁ½9NZiÙó8"Î'åßVÑ>®ï-7·Izd¼*JÿnÏ
n;núSB®ðB)Îcð7ãJ$D4wªJÍè&êÞJЫH~Mya ³,®q.}Å]ÆëÇi¤Æ¸N\E
-D/{u»Ø}Yß
- Gzð°ú²wP«®jzæ :Óõ;4D¼Ä§½áRxÀÅÇÈÂÆª`*ìpo)j¨^²ÇÕä£K4(w#H}¯µGÝÑ]`"Í
¤áBWÇ
-¸Ü)ÜMFã4¥±ã±zã]Ol®D9M(r at y@éîÑÆ':Cå±/Q¦Ý?BP¡Jtìß%
-ØöÔ?@8OGAo$OÞN¢ëyRØ0*Øä96ÝbçFbÝIQIx§jìÃ$;³Â;¹¨ØVÚ©E:*8© 5!k9nBûÇDg:$Ö
-hÇBú[½B\GÍ8q¸¥¤¥ ñöÕ6(§£ò¨¥hÔÿ[*á°8,uÃÉi§S0¼CÓQ¹h)v%ǵÚÿvÿ#Dúf~£¤Ë¯n0â94ßáòôȦ٧´
-ÝC,JêÀ U81ùÎ8W¶ÁsäN$8ñ¡$BÄ O¦=©Ú!Êé¨\r§àÅU"éi¬GÄÒ^s]pF(м9çôLEï)3ºz*æ3ª¦
-R5D!§èýNu;ÎÁÖÎàÅ(³ÍÖGÓQy´Pú{çÄÇo9ûÞ`Èy´!ntwuå»à"Ý©aVPAQêQ
-¡ªWMÍo6DnÀÉj(X
-ö|J³ªn;â'Û¡÷5kMû>pãßáäï²!òtRðiÉe(N!4?ïîK¸7EQ»èíës)QRÆÆûÀìcvàx{Î÷ãleá}ºk2ÙL&«@¦äÜ0ÜMÐÊy,5dãçtTF!±dÞumx¹·ý6`0%
TB\Þ!N~é¢*/=R×¶?Èòý@~÷(tVÚ`"û3AP.uÁ§§ÚFWÈG·Í(þø
ïÊ÷!MÎwÙù)²°×P `@4"¿ÑëÄQÁ°Å4ß¼²A+çØ]µ!#¯ÒQÎm$5íC£ÎÎÏÝz¹3ʤ
-çkv«èÙöÇâ-Ⱥ
Q:ÖòQGóÆÒ±ùê 'b:ËÉÚX/¢´Rèê¬ KÈu(§¡q¾Rk)u2³¿N\Z@uIhÞ|3pͦhm¡*GÈÁ&ÕÎVFÅ;p%gÒvzÆ7 ÓDz*%6Ë£¬B&Ú¸¨x
-ÛX2Æ s|Pô>½¹gãúó°Go? ëMáio6þöu{~sÈFFwº0ÊkÀìx±mèÑpeQºr7`|>jj+P:ªQ>-Ê(QÃú(väQq¼dÇß;zn¼
-ÛB«÷Ýz+9_uGê´¼>Rè¢ãYFÞÅ»Ê$gA4jZn¢À·%õE'§Ö(ZkGIÂ
-ݶ7ñûIF¬¤©¤«F
²<*u²KÛÓÃjiÇ[0Ôð'!é=£*µ-uâ§<ÅJ¼¾q«¶ºÚ+£Óe¬Úê£GcËKhô½&oîý*@#á*Þçk¦8(OgZÇOP{UøLÌ4:¿
-ó릯8³Q.z·Î"êÁ%ÒþÐÈã.Nù:LN¼¿æÑ&³izXûOø9é9áĦús:2JAX®¹oà ì¨dG%;*o<p
-g_bN¢âF("J¢<3y,©¯ð¥ðlH|G¨¡æ
-¯)
[Q°²ðÂG(¼¦*RA;cFù[qF<9$ß ¤Ò
&ÌSS[Ã~JKð meã6ÓnÜfÝQûÏr*?d¦Ë·!|4sÚ1xd#;2ÃÍѾÐm¡hjäÒÈ×
tþ`KûÖ2T`Û4Ïq\µòÂKÕ,EýÁËÚ«ªmð`Ó÷ÁMÜ3¿
-f2vmÌ:bÁÆTèq²©Ðàl:UÐû2À»£(f",1Gß-ÅÓ(Þ:¨¶ uF(HMû£64liаEåØaí8h<
-D¤EA÷2S®qkóÝØÏNØéö#ô|ÚMF)X&i9GéSâX%>
-²ÝD<
-I`Iº¾g/Dv¼HYÙ³ èP0/0
-;§2ÏÌfç¦í/fRûegß}õ[ôà³ôPîÓ*1[Í6«´æQºIÑo\[wB[VD¦ô}z,2zfy(ËFcÈ< îtIq_¨Ú=Çh6Îf0efó÷U¶®2\ÒëïMi4£Ù¦NZâÎ&]N7e;Kùj*¨¬%"1½aø»x¯ÃQ¸Â¢^æñÛÈnàIgü#T
-jk3¹9tÿ[PrTÒþÛ¾ïØºa[ü/PÛ£ÛÕ·zªAçx59ùfP{Õ÷;cGr)Ü·sT
-æ×÷K÷èvõ- b³C´ó̲«02ÛnaI¿-ýGZ&ÝÔ«ù¸ 9È
-Vpéx5r¥D½¬Ð6$¥øð&ÇRÅäôC?ørÀÀ'!B3
-«ËsL(Ô#Js!RCYIÇdaDE<bBZN:Å\¬ÌáÁ黤áõñ!Óæ
-îñvÉÆëÀ¿¼ÿ >]4¾ÞàG§òîWª(FþE«>¼Ì7A-zAGvdÐlÉÏÎihà
-iÉ·ÜÙ-ÑC÷w§ÿöò÷°qnL!?n®ÌCò¶Óöà»f;õSüøôáU=9í¬yQÃ4·³rÄç^ív>jÏ»8zÒßþúÿýHq6öõ3Fçä=¥Ç£ðÊ
-Útå1õÁÚ¡K-±°[è
O`ri|y
Ó ÿ!¨ÈyÆ ùFöD-ã¿T¦ÿ@ïUfÄ?%8´þk¤ÿ£È¾°,6ýy´l^ÑãîÔjEL
-ÓÚjD\?9MËV«·ì]>YS ÖÔª=ÿ´Q;yʱSñeñuÐÛóõ_U'þw®V£o"~ÿï2Lt¹¨^j ôs¶tzá+ýne
-ôÛÇGVèFÞ<bâä ö²/ò=Àñ{ìÑF?<'å_½ùØzN`}èöÈD©`ýíº.GDcpãOK.CáßÉûèºÎ³!´¿7
-<ô(oZ]>ûùzf].î=-
-Å¥tíÃ?ÛüÝY¯|~'$'óÌogÐãt{´±'kQ9^ô=^¨þZù'µáih¼ÞÀËTâéým YøÑé±èÜôKbqÄ
-j+=s<WGúI+ ^*¢Nø¢ÔÂ
-t}
-oÿ°É^кunWßÌŲ°i«>$!QäÞ
-òvòD&htøW6¹·¸vVÎìÊ]"Ð÷Ê·{Ô-É9Rä¤qUâ»O}9AÌkt[¨(ýîjY×q¬âJÛFô,"yÆ. at M´æ3÷
-çSÐ|*·OÑ*E³QÔ~yDs41Âs¾µ
-ÒÆ«'8T÷H©$=¯y@í!Á²ëßÅŵú1ü3ñ£Þ)×ÛJÀnµ äP9E
-Ñ`*4'ßãúªkÏJngc^w½Y(ßü8SoOÍô¦r°ý»P1}é®]Û[q ¦î¡Tì77d¦5=jêL^qÜÓAëκAä'tHËEÛfvòâøª;
-Ióßu.Ùô!ÛÚâj-¼U÷Í£qªö+j¯*@/h£*ù÷M×"ÔòÒÞ@ÿ}Ajºïô+¼ÿ2áïtYðÕ¡^)¤q$hwÃc¤i©Tß©£²FìÂçÎ`*Ì·lÊmúÍÌbªoJ¥¯±á*Y=Q©°ÞÕ ê[qZÁu·rz4ÖêµèöàÛ}év¡xn¬²f0Lºb~ñ±6AÒPJ!ºHÕI~\EîߤROçÿº Åä4Ù
ÒÚÕXMF£âýõZÑÿæ´Ò-véîéª-býB5·¡U
-å½u~ÕrpuÅÁû2"ÉYî§ßòy:ÖÄâ)JKc½¯i¹r§wP,ꨫƥè~
²CRq¨2ät?ÂCZPQÄ5¤mÓUD¢_ÂüLÓN»ÚBõQ¹n¨DSï¤ÈÕ(ÜUk´ÈP)§¨94îzRÄÚ¦¬5M×}K$o;0ÚuÖÔ»jïE·
ºûfµárî&=xO`ciw£iÚôS¸[=Ó!¤VUy J¦~µì颥+Òoë\ô.trEwDûM4=éV9C·
ûVE[ÓØ§ÉÚDQµ7T7
-Ê)ªCMôécXg«ntÑí<á]¬Íêrd¥¢,ÚÌÍ!ýVþDºÖª-*®ÏÅiíå©>@ÃQæ[µ§ÄPÇ×lÌé¢ð Õ3$é½éÄJmôûþ¿ú ¬µÌVI3VÊâr¼ZÄüúÓ©µv5NëúÍYMV;åFÜÒ'ÇÛFnÀø¨Ý_´ªo¤¥µÃ4bJtJyæÝbL4TtÀ|²m;´5>ÞeF«Õo?²^ß ûcÔxàH)lV°QdÑ4Kê¡´¶m° 'EÎ äÖÊ×<ºhÜÙx ¸³ëü}À4ÅÎo¿\ÅçmÅ
-½Ê;ås`§¤ù?ªnhóA%±|ÕspÃûÓ,Ȩê6Oí{t;~«ïD
Ç óf7¨lDìAÙºÃ-º¿^ÏU#sº³Sª²'M¬ôXwUÈ-r£ôr÷èmv%X¿¯ÙÝ,!IßÄ" _HÕõ_ðæNùÏí¬2nk¥Êìõ¨;4ÜVHôGHÌw«gÂç³hl¹¸P G6RozY6&gî:Aì2R£$Ù0¸;m`IêR´{a]¡pÉh°^Ûµ¨:Tîj;QÝ7â%j|+vmª90ýva¼2wrºrfTVðÖ)¢pdª<:ÒYé-;¤¶+N=&_"¶Ê
-Ö'«
-dÔÃö9çèÆaYb`{år5Eû §AzíTwS·µ³)«Ë¡`ÇÞHÇ¥IòlÚÌÑÒe¥)u¥UÞþÆ#Ô¦T?çÍ¡u0:¦ñ8#'ÂáP§\æò´ò¡¾G·u\²9£)ÃõÙ¥xgúS#Ôñ¤pSÀm~°X~5é%òÏÒq{¿D¥q8»µ)¥¼·¬¢Û@æ~#ð3{oeC§\ï1¨U²³ú"H·5ÓÚ=Ú6 ùoIKÅ+¶½Hì¬7Í_4dôÞê-¡Ë_H*5v_º«""Él¶'W±hKÒ°]òØU²¦²³f!Úzn|
7ecã¥_¿¢+'ryÖTyó´©>}â×{Ùf¾ìJVÉ+|$6Ñ\¤¬ÉºhylxsyþÇ+GFyy½í±¶5Uy¤~UyX<Ý#ÅÄçÑX¥$ÛwVúE
-ªGtµÝit§Kµ¦eyØN)» átgTEW¯Z¨T9
úÕÖðFË9=J8 µøvô¶(|Ã'Eágât7¡
-wç¸í¼'ýyºý¼-gKá£@u^¼;¢¾äõaìBË6têhRKѦ_|ÚR°n,²Ý»Ó;PENÒ*\«ªU¥W^íÌ}°Ý¾ôß Üð¨-¤öä¢Ök=Ý,Ïk.í×WÈÛÄMÈ3«læãk|Ü£M_Ʊþ¤6ÀõíºïÂ}ïX~åÍõv/È¿D°;ïÁ«Ï{lÎPt~ç#8ú.ý?8Ëÿ¹wi9DÓy©ôÞn¹GÖÂIi¡Ýºï¬®µ?ÿáõàû§÷iÔ=º=øfÐ:gXÿzztÏ>÷2wâiGGYY)<#&ì×¢N,ôS×ü^Ê2I<´»³½^,ôtXlùîË#ÐXöú¤íA·Õß»÷
-¤T?Éòc!s|çE)ÆkMqrM¼b¬0#\ÛºîÑÑKQT+ÚâÃXñ® ª×«xÖp( ù2¾àú(ÃÆê1Íf¤u+ºã
¯DÆi§
ë®»ô2¸ØËc=1@6´OÑödM\ú1Gù@BÈ1´Ç;»ÒÚ\øA6\oÈкmFxj'²S#uÅ èå¾CW¿»èàÓbê»z$$Î7Ç
-w9Mò{ýZöÓy<áÞALçÈXûðkíöÉê÷O,4®¢Ë%ÌêÑ÷@ÖzlÂd×Ò R#¦´;»¶þl/|ÕyÁªáJÑ2ÙV×"]ã®<o&$sùÂlLÍÝ}óFØìPÛ£¼üi"»ÅÜowÒí¾sýÓO¿>
-¤~+}ûi¢±¬Bì>Â}øªú;ãéÓ)Òx÷ÛB6.>ÓÌ kÒ2«õx^û\7þÅ+Ï Aç/
-VnYyÖWÝdúbý7ïM<z
-â»ë0}èÍBdI¤Ç-^öÿ;$¶Vÿ/~êE1þ-BEöÒÜëíÂëØy=Ë Å ¾B´®i!¹DUîö
-×+\å5NûÌX¬ë]G$$\3°<Ê'¨¶¬KXG´®d¥
XÇbO¹E÷7ÐJÓó
-ëlMDÑ Év8´vØæ¸©³_ÑíÁ·ûºøns
-A7ÐBn®°Ûôy(´h69ƦcÐý}(ºFþ(2¶ zØãÒdµOr)]Ñ]®²¼Ù¡ºG·U®¹Äêeâ|wH.©w¦b/Òèö"ýòPµ5-ÒKàIÛbãpöèâÙ;åKy²<+*í£D{¤+÷¶PqßÜÅsù±,Pk7ð(Ýíuñ#âanew=èæzFKöý:ÿÍÜíñåkÿÒç·gxÉóþ²¾ñ*¿zôFÃ&¯|ÂÏÁ¯üôòh㣽úS
-<ÿ|)WåSx^¯½n¿i«2ñ׫zü;÷)"óÞWîSÅïW&n2þL-EuHØôæEú
-UÂï±Ý©HÍÒÃà¯-²X+*Ü©v°]âP°½¦')ÂôåU¡¼e¦¥Íü
ꧦe«Õ[ö._¼oÿeììËö7^ÇS¼%|æËöP¸[þ¾í?ɹ§îõòÔ£¼?<
Ë÷çò%õkJ]0<¥¥·
-/ OAVñįàOÏÁ#»ÇÔC¦³·?K?¥<~=%qÂ7qGÊYQÂФe·rûÏò®¤Ïý>ÜN´~{&¼5ÿzòÀsÄß/MbbÇq¤]NPÁ4å³ióÃAõnAã!DE)M[2´üþTaE9M;2ø)¦¹¨(å³iG¦*7.>%CÖÅ'SFÉåi® *:L 6ß!McñùÈ¥jZ!q Ä]ÚO¦%hMT2$ íÒlÈ<6íH3Ìôèß"Òt¶H>vdºrWSQѾxdÊì0Çd+HOÇ.íÈC¤ÚafDK9]ù Ö|%1V8M[2ôâ¢IÑLkA¤jÅ!SFÉd;ÌÉt'ig8M;Í
?½°Õ ÎgÓLÞì0çh&¶ ,ÊùlÚIF(¤\ì03¢¢iñÈQ2ÕÎúY+%ÓWG8M[2ø»VJ¦;_aQÎgÓL²¢¡d;بhZ|2eLµs¦4+QѺæ)£dðì3¢¢cñÉ25ZñPí¦%r>vdðÚ¬x`DE×niË(n¼ÙMK]»¥-#d§f·,A
ÔRrjúE%Q×Ôok´eL·CÝìv%®}Ò2=XñÐ
-k»ã<6íHd;ÌøSNH]³¥]²çÃ0÷fÅC· *jvÊÞâmZJfØMKå|6íÈ®`à"RÖ\Ù¥fÃ°Û *höÉÑö!oæAöAPÁôÚ'm%Ì0ç"E=ÒæWÕ
¼Ù
-KOevdæ
-J];¥-#dB4ÃÝ´aѰvJ[FÉ#r° *ZtEÙ2JfÁÎq3[]»¥-#db4¢!G»i ¢qí¶)vÎD»i ¢¢eÍSFÉt;àÍ D0MÅÖNióhÈÉnX°hZ;¥-£d²3ÉnX¨h^sÆQ2Ív² *ºvJ[FÈd3ÔÙnW°`.åØ#_ÎÅ4T\{¤-£dæl·*ATtí¶)
-ÅPÑÚ9M;ö¸K±¢];¤-£dªæb7+ATtí¶V4T»a ¢¢c(SFÈTÃÜí\akr)G Z¡PíV%
-®=ÒQ2ÃÎf·*ATt¬ÙbÊf{ôLZ³¥=ÒQ2Å
-
f7,ATtí¶±G>@¶5fî¶µSÚ2ç?È¿ãFWØ6ÓéçÒ¾ãmÁoímhwcO¢â*`
-Ríêg¿8zIq°Á¥}ÿxüÓé2ÎI§Ö»ïd;¢æáÏîÌHW«á+Ø7kãäË5e¶Ä°KSUR~ñ_îÿ"E»t
+xå}K$9ÞÝE¨óM
zª*ìmÕ
+è°ØSkW
E¦
+<c¢kÇvªVÏßi*ü5s±Aý?ÎÙxPD°¢üfĄ̂×íÂ1Is±YjjQq*¼æ¿#+d33ïX4Ä[©sÞÞ£
+µãu62}T+æk.f
|?u=_Îc,á)/æñá2õ¤^°,éP®ÿB²ÄNε°4ew¸°<u!äSïÃ<Ãä©~¹$üSZ¹3aä]UÌÚÛþ+öÈX>¤ÂÅ8°ÌobÕrá"!
+C*³¢B;ì2ÏòWPÀ8sñVúì-o@òÅo}ÆØV~õdiÄj§Ò»ðØx4î°I-åELÌíËD_òËòjóceü!ÖðûàÉ®¦u(-~]E6p¥é[ƾÑÜ|öØUÓñ/I¨ä¹sÉV§JmèuEÚî+¼}"Ô\ãàÇ0ê{)&Õ;£óøÛbÔï$@=V¿Y*¦ õ(¤&Ï;; ½;J1ÔÑ⢡½ÐæîsÀi>q at jg É«ÏlÓF8ë+øÕ¦òYË;JXð¹î×b¨ïF:HuJ
+õê¦Ì;h[¨5Ó\Çm6÷x~]RÔq©Ëq4³¦º"Na£gCa¨p/f õȳì³|{μð{jz
+GîBP/]p¥·¹ñ÷î¿Ð`fu°r{ã|´qq;m{Ród~µZ/ïvük1ô©2
+ ÎH Äh£ÑÌ£×6ñ"!²1hOà¼úÈ-ÃbäÍî&¡4
á]âÚ¹°:¿ØYí´C³:ÝçÓ?äâN'3ѱG£*cb$3þojÈó\«Kíþ9óæCë¢Ó
ÓAal §\ÚE8RûüÅÀùâ¢ö®
+ÈÌ£IFNGæ? =<@9·9#DK+]N/Z`òÖ ODÅM»Í}pZ0ütqÔ!ÖÍnäSVCcb«nuÓj í´Ì'ç9°cW´õ²æ¡Ìþèì+«ÓåàóÿèàÕrgÿ })Ê£í±k&}ÇWkåSëa÷å`ÊSòæ{%pØ_øÁÒËkÓì¡mÔ1F6má>/ÙØ§,zÞÊÃÂøï\þºûçÞù½Ó(_wècÿ¥ÓÛðË;Oíìà¢ëd´Gáf±Hm©PgæÜ÷¿ h
+*±Ý0¤Ü©¼õ®Aôz#Ô÷ËÒÞºH? Ìi¨¼Þ~n£&hçÿøïÐÑ¿õÿÿs¯ð??©¾_ûÀßÒ-ø¤)û¤)'×Giµ#ÂÊã||}رyFû¦)G?F£ÓrÈ¿aNCåQO>£¾ÑÐ:ÃÝböß¶PðEôz#Tw¸×Î9
+û=ùú~ÕË.¸Ô³:ö*üØIB×vܨÐãs=&¼Ýº,íMzTF;¤Bp°ýz^ËV
BéÑ÷Îݰ=çS^·û#ýÑu!¿¤/¸¢Æ B¯7BÍCç¥pDSÑxÄ+]÷ ìVÒAÄTD¡s@SÑxÜzàk;kÂ?&¢NiÎ¥(<ࢯë×ÓÖPJåÆ$Ëä2Éah# ¡
+ÖsF½Ôͳø3Å-V6YÖÏ^õÆÇÒÛIzàK²Ò"ê¦rþ?§¾ózð:,F0íÅÍÐÿC×3ýÒUÜë¡ràtmloÑë
+QêªÙXp¾³k= Êi¨ÜªÏ©Ïl}Óè\CÛkØÈ·ÆGØ%TÆc£ý>ƹôJö$Ì·÷m÷àIzÛúO^ojn³w@Q¸?~_×;ü©ëÔU¨`ª©â!0£&ñ|d]Ò
+.F4¨+ãs*âëZB?Iíð"àî
+BèÕÇÎQ aÓ:êJ¨6u@ÓPy4Qßb0[bN#ª2`V!.eØmÈûê¿ú¾ð»»ÛòØ¢"¶ttÄ{ìVíÌ"Ìi¨<¸Ï¨o5pp¾sÙÄd°b¸K+Q @¿Tù;6Ãf¢cŹÁêÀwêÀf2Êüø®¢ÙydpX
3¨C}G4?@¥JÂÊEóSê[)q¬ØØê¢9´óaòëÃÙ>Ná9%ÈÓ»jgð³aZ
+75< Ï"êÆ¤ñàtöáu-Î6RY
+Xtl2×Á^Gï»
+ú£9úǹyÈáî#ÉðF½K°wCAûs@ÓPy8Pßú¬¢ÿ4m!
+[$BÜ_qĦæ4TÞ3p]ßÕÀùÒæÎôÑ&²`M°#iØôtDÓPy4pQßzàºØ éW²tJg¤i¡D·«eCó)
+]×bÀÊr~¶Àk¨Ó:*QB´rFÊñ:RTö>£¾åhåÓºýg˫ϩ,®ÎxBEÞ8 Χ(¼+?²®5WEþ¡£»°Á56lNÑ¿a'3/"×à|s #BÓPyà(úúΣi£þÇòdsºo{UD¯7D1`gw(§¡òÈíöõ$)ç¹@öëqÖtÙÑÀ¢rL'-ò
+z?¬Äìã#DåFÀQôëñHF£ßÙÃ-G×0_ðúc{@4Aòêçoãú | ]Ö°"9´^*ÂxÅgé[&EfòéÏ=»Ì'0¹b5+Ï#íFûöy¾îùG)¼«â0(ÔA¯Ý¬¢ö.fÚmÒº4TÏmq|ãwJg9GË¥(2¶8ÅcwáÀûás,ijâ½ö4=\åÑ ÅZNÜ4f*hº«j¢9Æ@÷9¡¨&]Æ©»4Æ&Ôü$
±4¯Aâ¤gô
|ÿäDn&¸EqYçäêPY6æ1@8úÎÙqÊ3ò(²aÄÝNìÆ~îFvt¾Æ_Æuz)0aj[cß5
áeÞ*§\g¿Ñû,1MQÈ FTƳ¯<\Ñ¡ýq®wÎù«©ªü!¿*ÙÆí ©'!Ø¥qRDFó×ÍÝYÏ´¡«Ð-×(Ýké0Lâ|)5çT<ð»7æoäÈT]Ø<8%(.¦zª½u£CÕDBJjEÓP¡!;·¶Â¾Uÿ¾Ö¢u/S[+!lkGÞÁT¸L0§¢qÑRèóO;-É2tïáÃ8T2h,¨½ }àÚKdQáñÞ1Ê/ù8Ī|æF:C.~FeþÆY1-©#ã$ aye(3õz:¯ê. ~éSçØ#
+
+x·ch@± ۺᱷhõ¥ï0¸û5OÛ××|¹1bÍA¤þG×|}-Æe¡ï:ÿ}§0sDÃ7ÅK~æùö»«
ÌÀADýÀ¨ÀQjʼIs.EáÁîÃëZá ¾!æü¹8Ù-|Ä,N#ïXÑùC¨ ROµEä4ÒTÍ»aõK Á&1üå/õ.ÔÙ%ËibD
+¹±E,Ài"u,_&C
+Ì"Ìi¨¼Ë×øÁõ\f6÷vR±ë<¤EP®Ó¾`x0ôãÐàH6¾D±13ßZï
+;2w°pN£w9òÀ¸*hTÈ%Ò âaNCe#8PØóu¾óÎ)ácOF¡eãgÐûËzQþ»ûN}`Û¨ "êïh¤8çj¤ÐÑh§9çüõTYrº²abU¥U`2Ùx¦ªJî¸Çp6÷áIaÒQ2
+'TLÊ,w¡b ö2n¤ðaUª%´Á¸Îs*m1FûG´ù¬¤§ýù@Z<¨xRÄC¸wÔFÀû_ÿoÀ#jBvA"úÝ
+÷êd:~µ¿¹ÇMÓê\Tg÷xÓ¦ÃñxÞöóq×¾õmÛûÕÕÝv¸FáÑàNB {ÚØé}P#kXgæ4T8Þ?¥>0>¹P|ºîajt/¡E
jT·Õ{}Õcæ4TtïSêÝóp5D('/h ¦÷3bÊʣϨo!úóTç\ý¿ÑÑ#Ìg·,
¡Ýý*Ìl}'þAÑ
+
+¾?i½qe|ìNjiãÐM~¸aåT4ì×AîB&cÂàù¾\
+¡^PìZÇØu#ܺ°r*üyRß?Úú«
+öª£ÏUê`&](käÐ
+hOùõÐ
+pÆ!Å
+3ºZUzæ{OGÃ1©r%2&ÍÈ
BUéï]Í 3³(Ó¡dìÄ¡$Ë áÄtlgÄ[¶¢òXûøú¬»·Ú{
+®MsÃ70 *²SÆØFz"
+9JéôÞßÎ;vZ #®<è29ËFU¿EL£üø*>Nr¶ª§l8u÷åTeP7è(c«-óP"UG"Ñ»åÎGç<äÿ}Ã*}~س
+Ù áÖx8¯#8h3NÞ
8n]lÍô/©NùÓ»ÁJkIí=A
¼!)£ßÆ ]y@p>·µN"H)þÂÃëÛqX<LüÀöðYãwî»u'Eì"Mb<N!f·r.ÍxFýnxE0]©óp}§ì(PZ¡4¨æë/k=È:T¬~½Q:$º[
+Ó"Ì'å/,ÀCÕÿ8¡CU\dbi[|;²mñpGÃz{ÚA,ªÊs¼
Ópf1
+CMRÀèÐ
+ÈÒ Ñ["$ßé<ÎìÓÁ¬'ceFC¾5¶a*ðÒ}B4P£QåhØ4å°
Á ð1Ã.#¹ÁÅFmÊS¨|«ËFÙÐ9¼ÇÂÁqà
ªj0§¡r98龯à)òÀE"æ¡ \ë
+À5+QþA/5°]GÞ]DW//ùª1
+«A)PߨbвYÛUäí°räíÈ+çøíÊufôçgÀÞ!4ÂDØÈáÝÉïbþøú
+)¢©
+B^©i=¯uX5p¨:1x+#ÒÐ)4s÷A¥4MS9¢;Úô
+ÁªUÍjÂ×,PÂD?ì¬,a
4Àz:ìeסfÑ®ðG5ù¾6Øõ=ò
+õd4$:gÒKQXªà}=ÈÛ¸*~á<ªM¯ÄówÍ´/ôY¹½+¼ãȱ/]¬¼
+ÔAzoºÔçø@OÎËW§âHÏtÎNçöôÌv>ÕÅ:Oú+rº
+ \
Sè½3%ä1d#8,¢B×êTÎwÙ¬b¤@-"*c-²KsìßèKÜ3Þ7TÁ=#hæ\HÓyÿw¤§¥e,r(
+õBô o˾)
+Ç@ c¤QÝ8 Ìi¨¬7 º¼Ï
+è¸)>ÞïtôÅkôa/|{¢çâz*4½üÑ,F_qu<-B'-4r](9uç Ð;¹&pÔ<`Îë
+Ȥ8^àïÛjUØ`Ƕá¯&Ô7ê© ÆûÂ)2)p4X°M*%¸&¤w¸GLàçqà BaÞ9ù
+±õî ß,¿ÞÀn£?ZIà&¹¤C/½3G
+ÖGPa~3GÕÊÃÂ]ñ
+jm¿DÒuÁ¾F´©pçÉ"Ç|
+4Ýýçx
+93=1Öh¡`PbåyÖJ4T¢¡¢zF`F ö"ﮨfÇÃÆ+zñÁ,ROñI#NpàÅ6.ääDHÐOæ~¸:à§Txã
+ï'ãdη7F@¥"ÅÁª¦½äVj&-,ÔÞ@¨©UF<ÕxÓX-ãØ°Ðh4+èYi?ëqK4¿4éDÁ Í;Íp`Óë4ñ7¬Xþ!Ò2Uì/¨¬¤Û¬ÌµÙ×d¨
cIóùz;vÍ5:cãN4pbv
+§Éªjzñ5N¢w
+¦pÃûo^rÄ"HÑѵ9´¨Êj¿7ÓÆ§Í6/£0ßÐÅÓæiÛÜçôâN:Oá¿DÍ
+µ8ÐDÕSøÁ:ÙvMOvܤÔrÜ«@}d¡}$òÚ"QÑG8Ò¬Bg̰ÙϨfÓhæSdÎÄYYÎ]ibnݸ;=A/³ß®
+AQiµ5ÚËU÷Dím'öÉcNX2E°°.D³D3YexZ°¥©ãô¤NÔɤh¦udd£=C?ÓeÊÌÈä3í¨´4ô>1Q2(/PRBÍg^ÖÄXh½æìÈ%ª',QÛ#½ÍY÷PV¨Ìmg3èög7Tüñ٠;Ã?5Ìå#Ú®¥%Ê
+ZIudñL¡|)*Å<[¡Ù÷Ópx3ÞtÄÝG³~²HgIS³lz»ø]uýz¼æÖÙI³Dh
+n/[[gS3¢¬°± ê|TPìP=Ä£E{RJ+a¥·ËZ1ÍÈèB¡>§vJöÕ¤<¾øC¾@:²ü'¯©ËRfA2$ôß"!$åètÊ#H6Pyù¸Ý¤é3E³EôSQd"SLÁ#ºxCÈæs_8ü=ÀÅÎßÞ¶ñ-£xx)Æ|¿`ñ¡oÖèâ=¡
+R
àt¶éVÿ~csB¯ßa?!E/$ãv¿ aûJÔ MmÄß¡æ·Üûíq{Þ5çùþìoÿ_Î Cÿ>cFÎAÈ]J4ס{BÛd}¥rg
à}0Z¼ôJç/Dn§kôÐÀgù\£?K0fH-ÕÕFÓvçªÒ@å÷PEF»¶WõäÞªÑ}ycõ±½x©AZÚêºe³Õ÷[ö®1^¬0ÖϹã5}þ´ùZ¼Ä¯â*o{ØmÀßvÌRÏAâ#¿Âøòà
$ÜÊ1Ñh¹+á
+eîÿ"ä0^
ÓþrÑsÒ¦n¼6ÅN"îÛíP{ÇׯÚaNCåþÏ©o1
+
+«êý{çô»/G̰Ä'õµ³ÅYàáZZr*¿IöñõÆ¥kÕkG¥ÐËpò÷£d|ÇêxÛ2pXÅuÁïEäÕKþ»HÛ;«ñ){Ä9%w@;y¯&óoN8ìÚà¤ÒiôºÒÂxîb@7T:DB|ÒiñÈ
+«½ryQïâ,¢ÔLyã*æÁá{S"}¯¬'gÎSX½X¢<ao¥(LJݸà09º wlD¨¸°Ú @ñ:ß© ¶#¹ÌjGÊPPðåT-
d*q6¡¬Þýø TPNïä
+ÄéQhM0BU~_
ßoÁ&02MØÉ4¨ qZÔ¡sï¦s>jr7#OW74$úøàËÖ2¿B?¼É
+yJÉ·§
+Ƨlk«{À8¸òàÅ#OaÜýÜ(ÈÛá÷½4
+a¿y
+Qé[6Ó=x÷ð5$o
+~dÓD~®~é(J¼lexK§£gAi
+ FTIÎLÆú²iq%µ³
+JÏßMo&¢^êMU-¤ùw¡¤úRM?«´7Ã.âTÝM¨Þo6Süä`
+ |D
+¤ÕXQÑ÷NêªBÞ¦¹MäàGÜ¢]Û-ÓQµmò"ÝÒdZ:y*ÐkýfPAÔ.Q643I0¬=D:AQ£)RƽÈj´á7¥E+z< ¯$tÔ²^È
+Z½tZÖ
+ÿtZè+º!¦ëE:Ïí¬ï£ÖÖæîSob}5èy×ó°¶8gfDzß|×ißHóK¦öF:_r P6¨^¢*Ú Ûq}8B¨£÷Yäî#·A\Û%§Eë5ÁMÒF³tÒ:5ÁÂrUQñª.O{@#ÍÏ/£FJZ¢bP§(A¤ij=Sk3M%µ(Í:JOòÔ0ß¶ªy¦5á´HWn¬w¢.1µNeÓÓ ¤V=¾
+ª~±Pfi¼$Ïæè]hãì÷¯z2uÑ´M̳¤(êÚ1+ÒïÂSDr2Re
+ëÜG?ÏUUé¡üUZj(Hëò|$m%/QTú«B|ÚóI=yÎJcÅ%9ó!æY¾Ú ü¤N>Ñ¥#¢JxÍ´Ö.º&GD¤½ÕÛñ_y©~Åá%" ¥¢r´wjÏòG¾í^Ö
+¡"õá)³©rY©³ªêÑlgÒ£á÷ÐÆ²ËîZ£1þ¡4yè>Ѭ²=HLK3j20KYfݤM3?Ïê oÙÑG&Í´úáôÃ-Ó¯Ðëí>*4q¨-Ô°< ¢yGï4ÙÑN[ÁÞHÈ£§Ðx¦òÕ'.ÚÅ·ðFÔϸ
çsÿO¿Jsx3¿ßz
;÷î&AÚØÄ¹u9¨s¼Þw(F(بynîÔ©|Þîä¡áAê©yÓ}H®jïĦOøþ±^Á£«·ÑôÅYÒá$
§½F§,Aðmäi
+Ô7F÷æEº`z
È
+IØÁSh°ÐÙTZ~·âgüVÎ
+#ÎYæ&z at d2áGV3Hȧw¢íêYu±sFÖ=ù#Õ9)í^¯Ò«3ÿ®ÍÇáË¥iãcn=¡2¹|gf¥Õ³¨MPèpqY8'-eâ¸tÃØ
+©Úf° ÙÈY¾0ª
+Y¡lâ±qv¤à¤ÐÿR5öæcJ )ø&Ç
+ãÚb7÷ªÓÑ%=W2PÖN/ »Qh;?ËïDæ Òôj7Èd>¬BQ;Á5ÚÎÏðH©Â±¯tc7¥DeIFhé1GÔO
\#3K¯7«°¸+áeônæWÓÛø ªÚ¬Áë³i§ñ§vfæm®Tæ^ªAͬiApÔ¡~Ø\7{Æ£|Þú t|dCõv¢×ia2Æ®bg(ÑáÙÑ©ÃñTúT ÃÈ àµ°N-ä²Aé&AÑ<³È_"zW µf\Uµla¼2vR:SfP
+Rðæ)coUîMñ¬ôÈ
+)íòj¤/ÙäéY/Êa{ÚmŲVNGXt0¤ÕÑú$;ª®4H^]92ö í§&IÜ´«£¦ÓLcêJ«Üþäjs3hÎi8Îð°T1::¥<Í|+ThÇ%ý,,8LÍQ8<Ðïo¾hlóÄòJO¿JûCýƦáhÖ&²
+Þ´BTûÀä·å
+s½ÇÎVÉJê#Ù~NÖLm÷tbÛÌ*2g
¸¥leÛ^ÄVV¦'v¼
+ZßEù¦Ð¥'¨F%
N'UÄUº½=º's¬&"Ñ2.@íæ.£5\5áÖ`ãK´)+/~æý¦Ëå^S¦
+ÚõÓ~Äú0êÞ´KóiWÒJ^¢#±ãBe×EmÛÉý«)ååm;*/mnk¢òpý¢òxRº.14F²Ï¢6HI²ïÌô
+¿2Í]kmÛ=n¹$QkËþ¤ä|6ÓQìrj9¡ªP¦ ìWgBx'¯
+v|zä°@m7°íTè±(|àÂÀ3v·«
+mPQ),|æi¤
Èç¦ÍîÛÁ/ú°DÖ/fþ
+'²MPZéμîö¼£P#¶NÑ´½ÐOe«Æ"§liK²m'ÛÕ´]è]NìyÞX÷XåñtOõ~*§A0צÞï`»~i\÷ÒÓE²\'4Ø5åÝã´ê-V(Î4¬
+Åmå(H¥Ùa
[õN.²¿ht-7oºîWÓnZøñ £×
Ê«Ð+ûÙ_N¶úiÇ·jê
7àf=
+Ê×`ýÛÁ+±êÏc´ýܦ³%ÑQ ¯
EÖÎVßöaBÊ6´r4¥hOLÚPPª,²
+±ÍòÂÖÈÊrWá\UE*ù]Æê÷wqbÇkoX¢2ØÓ´^óéîdy¾°X¿Ó~}¬M|;ʦ.6^ ¶Æû#:ÙôyóAbÏî ¥fýÓo1½ÒÞé¹òÈöàcQóÝhõYÍ
+ycá7>³/àÒðSÙú±ü¯öD>^¢Õzk»<"móÄ4kî
+Y¤nñöÓø ÞN n³õkä#Úî<SH5@¼=²o¯=
+졸Xâå©Á>ðX
+>ÄD?e½ð÷M¦Yâ®ílöl¥ÇË¿lÏt^ÃrÔ=Ph=°½{PJñL_Æ
+©kàOJR4æü\ûimì9`
+¡Úæ
tΤ$[æftV½]Yù«´ô¹TØòxÓGF:Ïi
+6ËìÕ3Gæö!5eÉ·
+@ܦªÂÍJçCz]ôÕ1
fÈ¡¢ í´?i#×.^£¢R6P#4g4é¯ÄÎÎôݰ6
+¢sßz½ÐUäï!:xA}Çùº3¢XáÊçIzÉé½ý4>S¸·cÓÙk~mC³mØ6ú¼AUQ±Ú@t¾#è>ÏY-xôJZ 1cr»£i"î/Jö¤Ê,«QIRF!6Üd$+|gMÁÅ/ÊÊØ\Í3k#º;?Ud7üU ó!@Ú c³²À¬¢ªàé·{ÔÒ¤)¡5G;)Øâi#ܸüÔãéÃI¼û6wç4¶EIÙz8±²
®*ãoP!óçØ-·´<«³îR}ÑÄÍúϾF
ènÄ|½
+>õf"´%âeãL¶DF¯Çÿbk«ÿç+<A?å}9P¾0wDêj;5K8½Et
h^ÑZ!¾6núúÖùE:GÄW§É<Ì«]gLÎy_çø)(ÔT[æå,¼VåÍùÞ±ç·3Úî<+W|õH¸vL³V(Z Ñ(Xà¥}ÖSÒ£ÒÜ" ÖnÒPÖ((»¦?/qÝ_¤.,ðë/äRÁ ¼W¾=ÓÈí÷ê<sDYäåHVÁ¶t
%*7kñY?Qi¶AKª+
+=D^Ú$¯ºÒiòhêA¨[q
+Aå=ÃKïÍ z
+Ê\²WáãMb(±öµg´ò¬)$öÇ]Þ
ÄÂÉA|áQ»B¾±zSéÛ¼þΫÔWÕ½²ï\>S(¨æwAÓÎHmY ¹nÚíÝ_HtãkìNjG¿e4(Ñ6ËS×®"}/¨W¢&É%t}~ú¨ÊMù/&àAÚ¢#qèâuw2.IêS¯Ë`¬Þm¢dKç"÷-*¬7rZê¶èñQÔ0µ²TCs¾>÷ýZ}PÓ·Á\®ÉGEåcÓ^
+¯ìtêu®ôéLÈïø<ßùÇ.ó;Fé#Óø%jx#ëÓÆÁW=ì;F¿©7Ï>7i}v¼»´]ѵo¯óÍêo¯n¹{RXêCE ÇxN¥õ;#¾s£<JRsm||Ô2R¿Ãk»þZ<´$éAå÷+^KíÊ<=¹ûÍÕ7FpÏz6D
+ÒÜfzõc Õ²Ùêû-{×_¼½þ¿ÊÜé·×Þ|_4Gûyï®Udðü=o®?EOméðayxû8¾è=¦gW +]¸zM«RTÆñåè5
A¡¯ìÍ+ð9¿Þ^"|q~9çè£ñðÅù!xJ^ú*}¼Y5øª<¾îÞûôDrM½l[Ðge¼_ÉîgmN½¶}õmnß!õ?öã+I2ÂpPÎiäÄ%íáëu#".9-Ò¤àëIB
+>ó#¤QaÊi!j¨J³Ù7F\sZdHe7Ø"
g=rªj2:Ãläf³o¸pÓ#§ÊI_Pâl4ûs¼&ìVk¢G!3ìIÍjÌt9S¨Zz°"dÂàH×ñ$¡É?Ë"Ý9´
+¢¸NzÄT9iQyã÷°0)B\¸êQSåÈ'© Í
+SN©¤e͸h:¤õ(Ç`iqѪÇLãöà{TðJ¨0¢ÂÓ"C*jªkAurY¤;(!4͸pQ«OãÅ]³@ôJ 0¢ÂÓ"C*(bÒ,@=jªÊbÕ
ÎT9&vÍÉi~"D
)§ETÐb%E͸pÐ#§Ê ©¬y*-Vqá¬yJRM3Cvqá¦GNcRÙkÑ£f¬7LÎi!43ä¢E!.¬÷e]NHUÍe×ÌPôÉ9-Ò¤¿4+½]b>Ö«¯$ÍðII&ëERô¬ËI{ªfÒ4½UrN4©ê´h©j¸«*H¹,Ò«Q³
+©¦7EFTrZdH©QjIó!.i=Jh¡Òªff¶ÊfvdU¿O¹ïðSL}êr×;².'¤b¸'E(©z7ÖeøSxEWȨ
+ñÆç§tB¦EM±@÷d)B\Xïɺr^±@tzSdD
Þu9!@Nm7F\8©5¨Ë ©¦¿Û-¤qa½/ërLÊ{%V¢¼Þ09§ETÒ<åÕ¦xcÄ
æ)UNHUÍ#æ Aê=Ya
+Nf 7KÎin|ýiRâ§T9!U4#¦!èÍsZ¤IEÅ·Ãae X ºÃEÞoá#-1Qs"$ùt¯
+nÄ1HÌÁ¤,ã
+ï
¹ñù8üèÛÕÇÉ"½0Üß#sûùpþépj+ÂÃÁFÍFMØÁvú
+¾Çàõ %t%øEÑÐàÏ¿ýËíÿþ*S^
endstream
endobj
50 0 obj
-13400
+13589
endobj
52 0 obj
<</Length 53 0 R/Filter/FlateDecode>>
stream
-x½[I+ɾ÷¯Ðy Û¹VHjÉàÛØ||²ýÆcð\æï;"r\ªJ=Ó<=uU._¬>àôëÛNêô®ð«a¥Ï_þ~úó§¿©Å©u9õÿÿò7uòëCÖ'
-+Íùþ/G?8âöíÍýáNAÑûo;ýî æËéÛ÷Î
-.ïú¬ôåÎÊ\ÞýYÙ~uüÕÓ×ïÌY-wwV·Ë_¾ýáíñííÇn0+Qï
-=2×<Æá<¤Ñïß Â.È¢Ø<A$ÁËrC«Å¥á~avíVúXèãzyé5
-Wq¸ÙdXépr«ÅOÞÍ
->ùc^=4?ÓÓ;DÇÂk¸³ÆwËY_é#â¸Òzñe9aH¿À'ÜhÞùÇ
-ãc¢dBeÙ9äÅp᣻Òú¬5=r*WLÓyH|ðÎݧqÀ£Jqe Gºñ±#&hIb#b ªÎKê2næv
-frê4ñÛ?wp²èÛá$1'¤ÿL´!ÿPÞDÄs¦¯¾¹VÎâIä<±ë<=Af{¶oOçrN Rg·8ÿ1÷®¡9MÏ@Õ¯¯gÑðGóú²S(Í`aÉ@ú-µ\ªzÅÍv²,EÞûyV SJ²äÒd¿«
-ÛÐY? ¡ÔîMLQkH"EØV¢Gå¤êÙdà¤,ø@x8˧øLjÏIµd¡És½ÑRÎBV7'®Ó¸ÈìJBè]ðÔÐåùÙÕ¼^²Iºft
-ÔMñ¿gØå·ìüôF<"È
ìù«ñYfÐöY²Þ»M®eíìë»÷ñ
¢xÂ&ÓÙ%¦AØáx[¦äã
-åZ}¤Áåáå*w}&øÜ
-pð ô&R°µn½æ¹Ë¡¸ÊB{ø5¯^êONÆJÏCîX´o×OW+^±å;èÏlÓ0aH3 ÞÌ¿oâRS´:"ãÚ-GÅðA÷Ñ]lCÃ@ÑÞæ@PEÔßÁbåEÅ ÃRôqgAiåí
-Y&~¹«v
!
-lÔ}§öÆãÒÚ=@ðÓtÒúx5¤ÚÉ{¨³£+鬫ê71.P+(ö?95L÷TK?£dW¢Ýa}´¿ ÅÂËxéí·>ʵJÇ®
-H³^QÁêßÖ)LÃueÜW"°kCodBöÙæ%/=£DÁf<ùlå´ñ[Ü;fü̪äBJ,ù%TRC|éº[\eXåÎH=Ù
-þ§A?rÜÂ*Rh+»tÃäÄ%g
Üu
-¹¢%LmÚ´ðá'¨8Ä5s|µ§dé ),t¹Cü)è^6¡fd$Dr`êäò©V§`»AO2¿ÏTÓ¨±¡p¾9ëøm1;
ÂyGkjõ|¶5ÎPJLJóJ´PÃG{F¾j=ԤشR^¨¬òj°&9³CDyìãBô²vGÛ}Ê3¶sÜo˨s¢Ð¤Â¼lù«:÷E}9qCì
-¤Dz!35cx17O¤ûîk;ÕÉ?k%
[KEUË^
-ÅjØQ7U#±ò¨_·ÆæíD-}Ô¡âIDù'Zè*ú¹n2©<Ý{ª1ȦR9²ÔÃa*6¥n*$×À«¨sMêcÝc#«B49~[8kÔWªN»¢Á¨½[¤Ç¥¤-ºXer@úèxPð¯nêÙqu
-V=´Â µ6Új@eñé"ÝÔ.
-²ö4諾Ậ
-ú¶µ£p`²êÉî]´{2Ï@»!³Ýlȳíà;©¾ëOý (
-X
-õaZ:´ApoØFYuãí`¦Ã
-¤h©k
-=.úM76oË8&\I¿Y°wÒ9ÖBzBÓ®ÓMº¨[´IH6kL¾¨k¿>êÂó,mrÜ]ç¶ÈõëBG¿êOÞíª]¯Oí~-Ô´ÂĶïéçÔ>```ÆU{³¹
-:q§qsw9ÅX%<ï,iëJèmð3æ\eÈ?R
¡g~W¼<ys}¿ZìµÆ;ÒßËPÄÇw]u'=æi1ld0Ü¥j`-ruw¹FVôHW9³©,¯{ÍbD
-)¢ya¼ëÙ.®3
¤Ú!©"íÑâo¼üa½méZè(~}å.³Á(lGU_%ªánÝOKÀ·µ{ºÖ¼®7Ü=tYûáÖ
-T¹å|vk/©4Z½"hØIÒK8l4=ÕXrÐÛ ®0ÎJÚLªzp1(EãÁmÙÊU<
-E¶Ü>hÎÆùbåH%Æ
Å;e¢!t\wui¸2uà½â*ÛÂÔ
hº
-ìhi©*³«t<"&'ý¹\i|»+E·ÀâL5¾j¥9£×nX7<D.V<éRmëN8+ÓÛ÷
-l÷è8XªtjáJçKàU®ñ5páÓXzôÜð£¸m' 'OÝÚw¥hJýVr¼¥BØCwÃ
-k69<iãoù,~×úÉéôÖ¿SÒ<mZSf£1ÂGÁïè4rJFÖé@GÎÓ8oÎpcJYÒÝ,»¦û¹0_hX9 M;JM8m¿óííSLS'ÃãV¢"nÎ)j|Â=¿ëöxÒ «+·¢Î®²ëÊÕϸÒeð$vEY=pçËÐ['}óÍ,T¢
-ÎíV4ë%©>½Óä'²9riàÆöCÈóÕÓ¼o®É¨GN¾×ª=örðÊåTÛ¿ÖÔ]"ø
-2ØíÚ}ÓìdÇà«ÈäMª©\Û
kEf|Õ!6íØß(/{î"v
-³ÝÐYîSò\o|s©8C{ÑX-¯ @û¸ÒÑfgÛ!uQ´¡¥`©Wá§<ããØÌÔÊÁoñ§vcûÒ)%y¬ñ(6Qû0Òc£¹©äÚùWö¾EB|äþ©ñ½²úZD.IT×Ä¿¡s'ÖôÑÔî½lØOgØvPTRN}Hר$G]ç~Öb6îóöÁ£+o¼_¹ò>ÂTe4ò¶ëZNöC¥ã)º±¡ÃºÒÎ'¿·Öò¸·à¥Ô;³d¡é¢K^þ7ÈÏJݤié[ògl@ï¨Éo³'îFÆ3>ÒÕuÒ÷9ié)XëÿðCl¹æA²í àDg×®L¾~z;6.[ÿ±)Ë5Kbj«?ê%av}Ä]ãÖËB.
-r¬½ÒDuÄÇ !¸}ýðJÓÑn`ðÛo(²íã¿dkÌý¨ª¢ó(J;TÛ';ÎJkH>lÙ¤ 4ïAÆ·°$éKª 9A't¢mþÌ£iøK ªÊ+2"¾ÀÍ>uÕ#eXAhuδ̩þŤE_°±ùeÁÉ·
-'X=Y&ocõéÄ,ÅW0ìÊw4épÞþ;I§<õÀë=yÞgWfÙgxµr*ÕþUüÕï?ÄW´äøêÇÓäÚ
+xÅ[Mô¶
+¾ï¯ð9ÀLM}ZÀbÙqÞÒ.ÐCÑSÛ(Í%¿¢(QlÏ´E
+U
¡5k]IÿÒ
vïLxm"ËÙ«îØ?üúÇB¬òßÕrº7QJ"æÈøü] ñúhMé9è'aî³0{
+£Áq9Qá¨V]|]k:RVW}nDH¢õÕd2+IÁOähÑZÕ<¹%´X$!¸¸þsßOÑóÙØÿ1¼ÎìAö
+±®ðNR ÿ/
{>VâA=
+ !TÙ'ÊýÚüAYô
«u_NX*.ÙéÅgaÆlâ/Ú3j
¼÷{È·HoÚ-Xad+o/³#¶ÛAàöÞâà7Ê^Muì$b`WfgWÓÄuÑuèó;¹×!.:1ëdÜúJ_¸ngÃëZÅ¢.X¢yi½¤MVóQ
+QXÓñ»%0|ÑÞ&ë¡dõ¼Ëey[§kÅöuÆ9+=¿XÛíîß#(
+RÆ`¹ÙöS Á1<Cz§¾*NïfJ"Õ-8)Hâ@Óâ'0ãñ¿½ÌK°[ÐÒ®'(«·s°û|
+÷"Xý¦Eç«vÖ2&r¡«À÷à]²Ú3IÒ zßCQ¾6æì ú6î2Ù"Í][OÝ
+ ë´kîûA¥æç
+֮fLr+
+KSlë´X8ÄÔtñÔNV56¢½
+W¥ªómËøÜø?fÄ
+Ô&HQ°ì2L}Ý0XUÛ@Ó©6W(e·'}|.Ùº®j-¯»Ê]·+añ°0ìà¹I
+ÿíÈpjE<<eæd®²cìC_aÔäéØ vV[ÓÅë4/zØ/zdUÌëÆÕÛ-ÓÛôûõD)ùë)ÌZ65vÜϧXË$,)å¥4x®gôÆ%
+>,>|8|ÜññÜ4æÏ{ò¯õ
+n| eé.é3
+(&ô(þd
+ Cpgò¸|(ÀBd
+(*w]ÂM#Pf!ø!y©ÏzQËVÄR<vÕG£lê XX²G*³D\¨¢2J5üåÇ·ÙW¸?Ç¡ßÿö-øØéÇ å'?þ9ýac)U_kr¡bf-Îì&ë0/ÈOÊI2äww÷dYµÓÀã%ÃÔI¿æ¯ÑâdU
+{æA¬MÝ¨è§ 1Ji{ÒA½Îæ7²~n9ÎåM{eÐ>jÉ4#YµPÎrbC¡??Y¨ÌûÕ+A¹æýVz/
àûò6
+iM?k¼lõ
+² ÜÏ Ç0
+¡¼%aÁZ¬ Y?Ä}À÷'gØ¿"8Èü~
+.ðyñgâàl½M0[cøEí¶Úu¦J ÎgqÔÉyÜR=A9´YÛ
+¢neP±¿Xkís5;
I3=*'øËU«;ʱʺ|©¤jð$DEñÔ-èý>Æ4Càä
+-\
+ÈÊü×ç÷¨ö8Î#+]Áª½ñéá
ÿͶV{l¿þîÉ%$ÞâúF¹~¥DJB£ÛÿS"Õ&çku&ÜXÄ+~EÜ»W
+QWO¹b{NÕpªsIøl«£¤¼eÛ
+ã"qM" ¥åÄ»xt?fjº'±£^þYMOYñZÊù+úÕ%nºáÒÕϦ1Bjþèé²ìEl.t×çÆíµÚÝîKUÕÆì>¶¼¤:l4Ìè5¡Ð-éØ+ß©Sµ9[Çó¥¢Lïþ³ÞQ÷Áu
+müx¥|pêð²5]°ñ êÓÍðõç,dºÁFZü2h6eñ\næs0¤t¾þ
endstream
endobj
53 0 obj
-3407
+2944
endobj
55 0 obj
<</Length 56 0 R/Filter/FlateDecode>>
stream
-x½\É$¹
-½×Wäy,BR
-ø0ðÉ6`¸
-x.óû&µR[Dæ´mª:
H>>RÕâ¿~üû G/
-HükWúûËÏ?ÿpøÿ~~ùûÇõËùièê/;üî¹
-Á¯üx°Ò®?Ê4ÚDG ~tøÃ->å\üd^ÁñJ¿z9fÞÓ_ó2Vx)]AÃÈNâá¯^ýuiXº*þ?j°±;Ä=äË?FwXÕ~®ùEýÇɯEü IågºôPàH=¸{K
[£¦Ñði_5~«_õ¤)+/ó4|-U´VøÜ×Ê&
-ò2BH
-èïÊ'-È6ôÈ3N*Kú'<¸>²E¼ùA7¬Ìà5¤Iãñúâ4áN²Ó«H¢L£Wõ©ößE[ÐíkÄÔö#%
-¼÷ÆôýéEó·7à`®ÔéMÞЮ\éqóqflf¢7¸´pM,hh
-ã²¶·ÿÒÔtá|¨Ìö5&*ÈOÌÆÊÆÏ%¸hP°é{]äÕçå¸Åfô˧@cLV!m5ôs
-5
F¤G¼ä'GpxACVµ9³c6npSú¾aNäôu¦\Tëcê(ãrufa5øOÒ,ÚÜ#Êy°zb"»^Îll}ñx
-¯ETÎD)
-Σà§Jé*Ð ¬ÂGðлþWæè£ù¾*VEð¯}"¦û¸°BhN"PùU~¶Eâ!pM½I~.#ØÌ½)Fþm¼)&ûM.Ûd¬¢7]®ÎP¸KÖK"§xU.Ã>_Rá"4¢Ï7¹QÎE±pBC;|=MÒ4K&D<»ä'u·a.):§2ºÒ IË&^À¯¦ÁzCüÚÙwríùuÞ-"ªÄ·¸4is¾c6®
-èçé}c;ÉLÉv
.î<3Oygtö ´3çèÂý÷¨î<U²EJ\±µJDIþ GNWÎÖY8L]iÙåÙµÏÎz#î,®ÛEÖºfÂBVËüÕBè##üå9iéXo©¸ËâÆÙxÎuB@/ô_øÇßKh©
tyêeÂÉͰ¾ qZ¶à;¿ÓÝYûJxÑqç¨ãVÇX-¶Ì¹ò1²0¯Fyµ"ÎFmEyÉ Q2.ýÝù³W¡àMêSÂÈã_dÞMð1#
-´¹çµ¦ÏK¨Ãz%ózêRþoÿ´fï7Â|YËE3Jι
-sάé·\å|6=ÛF9[Nm¾"çö6ܵ:.\pð§ÊLMYÑNBRFî³ä>ÑMsalèÒB%N\mÞÃÛKIÑöôt
ÆÌa¸DØKèuÓm/)kÜ b¿ü\0Åvó9Bƪ]~Uí·¯rYSRT3 at JK
-éb8NI
-x³^d$K3ÇdëO0âô
-¸äÇS ÅC
-ü)¥ZªXã§72!F.é
-°°H#tøú!×.Â@vsyÅq-þha%ÍÅÏ èN¦1ow¬@9ñ*VüYäMÞåp¶^"¬¥Âq>â\ù¹ø)JFÞó·Ý¬äÍ#oz°9øM¥Ùô};Ó(¼3Úùº&¥åI_âýïý¬ÂÈêàrâÓÈò¯ø^ã·¨/öúÓ`À%Ú°þE0ZæÖ×´iLªçë"²<wGÉ[=F°Ý¨(7"©¥nj
-ÒÀªîÝdB8a|
-> -\Pô^âwºSÀà:S]µ«§¶\¤@=?p<xäáh(E;Ê,*å_è¶Õ~ºÆ¡Q=^,d^ ¡Õ
-Uê¢ø'î±_¾ôOØU]Z×A·¨Lè
-ç¼h)Os$#{c[4þ
-V0÷¬zÒ¯7u¾C9)ÎÿÞ_ÓÊwßÐØ=FÉs﹬Æj`wThF{Ç9qÍ8S¦'xOÆróô±3t3uc¡ã ²*At#2ÈâëCk[«PæäØt½Ä'æéNzîõ¯Ù|*ÌggEä¡Ép$ÙðUº=IM^)q#I=ùÔèD©`â£@¾À¥í£+
¾ê,+dÊ¡«àòÞÝSa1ÉB\Ú¯ÞV,¿!¼:ïK5¸¦Þâ÷¹%Ôº s-bwnjµÄhÛê#ßQnÝg®B¢·?"Ìøfgä&Ä$ØÅ{¥$#$yd|¹4IÅ/T1åPͼæµcÄ¥dVÍÀÏõ=m©®¼=+öÚkqCL¼Ì¦>TZöl2H覣øEj«
-±e·#¢_be[3x·dW¶ÿ¦¢1êé[Dø®[áÇ*ÕDSc
-õ´ÞzT+ÖTñYè i¥Éj@÷éâ¤5Qáwî_Ld_XHL7â±GÂÞýxÜè&[UVeÜÒñ¦ªÔ >ãÐ2õ^ZêVÊ ©bOľW*'7°Ò:¶Ûf³Ë³}¯NÝ~hB¤m;ÞOå»E3mïXX¥(úd;sáÑê¾]0«î
-f¯¹9d¯©=ngÏ&é(W°g°§$xÑ©£`P®NÏ·¬vkn¯èÇïWFL¬ F& :ø´l~
-ÊJÅËF5¾å¤/±ò®ÒvÏZjLG6g'Dù»ÒW,
-±ÏÙôY¶Ô8M¤í¥ù¯7gêë=ç}Áût¼üàÑSæÔÑt7¥´¬Ú;ª¶¶Å¯3¦,¢q1Øs
-ä´ß¾22Ig|_§j Ïyñ¼<w
-թ̵óÍ
-A£Ã¸;lÜþf8-¥e¿ljy¶br?û©8TM=.»AwÐrIMæq9Ôí)*NDk¯»0ÒK¿ÿçºpÄwº¾wû|k×G;róu8ÜÞÒþÓõ¬<Ê×60^møÜ'L7©£Ø
-§M°gYµQã
-ÔǨ¢¤wý:;v¶LêZ¢.+×h´1ÏZÄØÿ`)Æø,M'-á
-¦ÊþØúìå¶ÊO¥Üi»¨[+ý½,Ú³Dvõ¡Í&ÔÖ~»pq¦? e]Ë
-
-Rå7¡7Û?Ýé[L»Vê
-¹µ4×vµ,õ5ŨðÀh,$UZUIåÖg¼Ú¦`vØ«§[¦Û¸âc«ªÕH˸+·i\Mz¬ÎïäÒÓ̵J&SPIÀp×dV¶?ðJ*µ7
-â?RÈ|rè·ì7lPJ |ÉF¥ÒxÌ cbN+kþ¹uwÖ¥Ã+E;µÄæï£S³1J¸\xù7C^ezm%Þ¾sJÚ )=@Ç.tÇÚJ
-JÊñ!Xè»°2Èúk¨¦xK{U¿d4ëýòJ6CȪ¡õá¨
-oæVÉ y
-ei#U±üM³ô-ó+o®deéq
-aRT®× ¯¸+ÈK$æ²||ç·6«øÛ¹ÊqøöÑÐä³uìÕ lrwX½Ç´¥§EÕ7Øü?!àÖ+Þr8wó4ÿþ$ÃôÅëÐ'ÖWvÂe~A.Ä¡ü
ÆÒ
eX-^êò¸xáÃØ2H¾ØJÂH|¨öOrñ²pF#^¾cåÙÅûÃ`jþ&ÒûêÂðµ
-0½ä4ÃAÝZ¦Óêà»M< "JÉZ§hã@ç¨Ó| Z§g¦Ád\.ÄyZɯ¯þ¼Î¼î#ïÀéÆKÿïD¾/ߥbεRGõÞð_|ýáãÇÃ
+xÕ\Ic·¾÷¯ÐÙ:ÜÞ¤n)@nNÈÁð)±
+ÓiöËi6¶:õÉõpZôù¨Bø¡Ñ»ë-6è+÷pÃK?ì©®Â7Ú(²îì̤Ï2Râè´#ø¾µëÕ½1ö9Û÷ùÚC}û4ô½
+§ÊvFþ/0ÞÞç[
ÀøÖ÷æzÜC6»¶óùÇ¿¼Ü>^¾ÏjÖíuªZ~üRkáa0oó«Ê`P§"pæ*©ç££¥pày´,ÅðC®8§[àÎÓ2SÂWU+¼7 ؼCé+;¥cfûÄá|áݾZ¡ú7áõqÓòÃ4¬Ú`(u±
+Y±Ú,BÀÃ*:MêH+°MÐY¾{ j7Þ²%l£ý"(M¢%X×0Ȥ-InÄ^UÉ~K¸õÌ0
xMl7
¤)= It¹%%^u](ÍmÇ¡DnDÁ·g2`<#EÆõújª_.ÑäÛÞ¦Ùã-ÇõBy;jÉø2P@ÇþÇa¹ñ[xõ×?¿X§-ª}9,ʾw=üà¢ÁbÀ£½ï(Ñ ¦!ࡻ༠ú*|_ÑãmsTFµ_ÑÑÞ?ÐC¨JñD4 ÑåãIæ(-@źØR]@OÓë»X¯S÷ÄPDÙ=L´ #´Z¶é6³~ÞúJÞ½%:=`¬KEæ(LVºRoï¹ÜWÅGÌ$l}°Ä>R«¡¬oË@YMßqM[Ý-EÝQÖ<<ì8³¨Æk
+MJ×ÖÐè<It$d¯ebáV¨Ôfò¨"ä»NFËÌ}önT=ÆOâ^| ©Î
+ÄP8 ¹N
+PÉ̯¥\
+ЧÈÏH@ÐièM_Z|Êù;kp3mÒÒÊ©ÁëhYyc¿rÐð{Dmªy;ëböéÝ"ܪR3Hµ þ1®ébz ä»
ÔD"Â>îT]ÃIWO¨M
+â¬ï"A[ÀövÜÉ<ÝÐáÛêŤ¸zHíxjs è'ø®ØøqK¾fÚÏÉvS7B¯n¹fÍ<P»R ½½
+w¬wÃOw[Hô,U|æß®±Ô±i°S÷bju
+$$¡ ÉvÉk²ãwØ5~i²£Þ±òÍSÓ:äØàô FòìS@RXhêº çd$ÉUXEîNÑ¿Eq¸¹!k]¹£ÜRõóÂwÞb²óa¿¤ÕÕ©¸ùuÊ:£ þ_§qÊDéª ¡ âÛ¤?®¢GÒð¨Òøìõn(0øBgHì^3¹ ððÀѼö;"ÛÊk oƸsºòfüð
+qž¹õê"¢±ÞGêçÒ%N|%xíÞÞ"G4´Õ¦d¸zõ<f¿c±2TdÛ«·H©÷ð9AÇXûÝ _AºÔÞ7RøLÜéÌ¥@IiQgW¶b³ØXíÿ¯?~þ®8ÖÕÍÇIh@Îz¢nÈÇ6ÔßÄ1÷ÂãBÇ*ú<¾cÛ·øL53´Û,¨rvH$RÇÕäçØÞj øéN?²ÇßÄôMò®¼qÜâ'G¯¿"º1à~cúµzî¨xÆÊ?%ký;¡"P :µÊÈñ¹&²¯=B´¾çQóÜtÔFw©q9}5TñÓOû%
+èE~I¢N¤ÎÒ(#²7À<H.) ×ÙQ¸Þð
+©cÏ>ÒNë]¥ò*2¨6mÖXï¥YsqdÜ
+¥®æAäE*|Ûásn©ÑqIù § íyÇoAÅÅVKk
+?e4li·â³ÆHïBå)f-Wi9QûPú_X`¾fºßþÒò´áøv_¦-k+löçIîN§þL¥ùº5¬p3 mp»ØÖª±Á÷3ºV5èÊÄÝÞ'}v¶gfo9?¶?I×H9m;Ýÿï\1u|Èl·êCÛÀvÀ
D"Ó*zT®Þ`ÎãÖöæÛ½\Å·G
+.Å4$8GL9ü²¹Xïn°Ô÷(} C,M~?Ùx QG]ÊðQ
+t¹µ\ûJ}8ò;ý6» \zRï Lqî«aZdyóú³2-`bØY:Ï `#c¾Oå̳Áwè»t6<Õ¨OõØÙ=ÜÓLÕUhæNÖ§0Û)Ëò¯Y ì[
+.y×BHY^bæ^0$W´Øó=Ïdés#wZUêT íDßã¨AðkÇ#Øx&3¾[ð*»°û[" ¹I×.
dD:gWmËë¨Ü+<¡f n¿sÄÒ?®²-ÈÆ¦Þ1»,fªõ#¨ø\Çó´æÁØ%n)¸®¨WóÜÍo¾à½wµ(VúÍ!RS¦'ú¢Æ%±tË©ynObôâ§Cï
toãgSë/1`«3cßñß»¿¬*Ðèi¹Õ¸sÕÐv÷Ò¹ßîR¸Kz"fsy=KÏ B§½>;ÞÑÙ Ï{ÙÔaÆZêã³Ë»<'*ÝÔ,C0Ûñ<À uêTîêÕ,½Ì9vé±r½8Cíøu°I*êÃÓ)á'ex'H®õ,²Ý¬Rq×ÔÅúÓRò]íP· ,5ßj¨öõ®IÐ^ÓeætÉ´Ø!À(ÂTô±öãÎ×Á<íé½v+u ²Lyr¢X:1óƲS¡$m¬©ÆJcè9¼DbÌ©*ï\¶+ÒêbF`îÍÎ_ªHI¼aåÄí#\J¿ ù¤2ýüj»£$qD"ûʯu@+ÍË+Nf-¹9âò£2Ô,bøÐm0UýÅ`4)³ç±áþ¯?
+z°Ùôkî{»B¸^ÊÌ;{úuú©ÚddþL"9d|a1B6"ØXné*ÜÎ*/_7ïͲ_qËøN·=´é
+gIâí'¾µnðE;ÆG¨Ø¤C·#õaÛÖ7°Ô-pxa)p=*à"·wK;-Cº&Þ74nÐb`iS¡eucnNÂÅâ꿸_x´ÕËã¹Ú±\\sÒ[È.®4.ÙCàIâ÷ÿ[h6
endstream
endobj
56 0 obj
-3770
+3451
endobj
58 0 obj
<</Length 59 0 R/Filter/FlateDecode>>
stream
-xµ[Io,¹
-¾ûWôy
-ôVÜ0C[fÈ!À¼ËüýP;µuUù9Ï@»]%R\>R¥ÇÎpúëíÏ;½3üªã§YÜçßNÿøåô_ÿÒýüøãíöù\íɰålNÿ>ýmµ§åôùûËçÞo¿¶RÔæÿü·üÐêòñÓ°ËûòÁñS}yyÇ·6¼ Ï´ðcWýo
-¿¼
-þ©çHÃed®ý°Å3|ß}x¶ºiõLn.ée#ÇAY Ú(ÛS(,èg(p<ÆÐ7ç ¼ð¨»Y²<8ÉZÔÏòeÀØø³8.ÿúüûÈr1çeàDG÷ÊízÑgÞ¸=j´Zè(HXÈE)£2&jQ|A-~ áB6>2
-Fd©|Ã)ªô£¯ |æ¡YBïKäx/rºgèDÓ?
-½µµIÆÂ`UDÐÀ]µ¶íAÀÅ¿Ï` AwöNÝåøYà Â?ùVGQ= f!àÿä ä1W )#&p$.3*L_§¤{=miòáCÖÕÊŬK²ÝBw·
-È2 »Ô¹æð§aææ ¹÷ò0BmÙ>°gy(ú
-A©yä¥^U;-ÒÉ ®4J8ìp´d\ LUUCP~¹Cq%À®ë¡ç_ú¤UÈ;YÆ×) ¹Ê(g¥*ýH§&w1¼MñGâ#el¿ðéZ'>ôáf¸1Õ<´¶²¯í`c±Z'y#Û´C@Ä©å¢-%YÐëÏWÚyu¤RÿÔµqÊù/Âq,®ñÑR*iÖÅôeù`ÒéÅ,[ü£'óLÝ_èÏøòvbÞ2á0¶úQn,¸8èæ$n:ðþû!põpDWgp¬ù,Ãg)ü³£|à¶(LyaÖ,²ö̹Ib>¢P÷¢EÖΫqcefr"eî^QE¿'x6gW³g1áélù¤wøÌø gbF^w´ø81n£YãY
-H±zYîd𣨳ÄdyÂ.ü3°yÖ* IkQ4d½Å¯ðÙe¨¥Æ
-BùDÕÇ(òuZÃb`5RusbàóÀeÊ ÖNõO+TUtm*k7<µÁýÌ:Ëø=?óÚNþ£ôMúá¯àÄ?§K
8Â,(d#ò+!üIyÈÉ9&"ãíy¦0õðØ]µR§¡à±î½ø óHÉ*U~qQÕ>
-ÆÌ[Êø5ÌvsPH¤`7ÉÏÞ¨D ç¢Ü¶ÔÚåwSÁzÊ:ØÒSw
-¢Óͯ
-xê¹îÁSOµO"«-Ùc/ó5þlôØ>_E`~T¶_GÒÇ7 ©çºI=Õ$
-@p'<ªp«q\Úªk\_¡J01VûµKÇ¡QXW#-*î
-5vÛ+Í'üá)e®<¾W=×=¸ê©vàj@ìÓùâ;çHTé®\wàê¨WC~W~pâgQÕqøLµ<÷ ª¥Ù§¸âÞöç&ÍFFØXïôHÉ*Fþú*zrÛ°½f¼¯ÂùãÕö¸åÞ´
-á]ÇÖïú«chf^WÛÍ]Çú§ï2á®7µéL;nÔîNGy<ïÕlvx¹*·Ø©z±ÕÙmANX}VAÁ£c|Ú|¥üĺê§Åñ¤Íäbo®9-1é¬Á·udw0ÖyéÅÁH²oÕ÷£!äzlõ£f}ç¶î%F7©äýÆA<@ÒÌÉ®ÀûU-§Îü~ɧWr¤ª+F©mY
-zÄ2C§âײa²rRXºóñ¯ºsQT[ðß9n¥QÏ}6ºÜX®ÕÖ
-+
-(mÚ5Ì
-øjfé.¦fVè·¹b
-{wËÙüþ8g8ÿ.GÝq?Öìä$ìßïã8[ÛMq§y¦ÌRÓÃöt³¥~ÆV¸»[:XlÞ)Òf ë6w±}zTJks>,%¡-vÍÓlÃü÷QÉýJ\Ém¬lslôÉQé´ÍÈ=,¡-v´
-³
-ïJ¬¾FÕaÖB"ÉWÊ$Í×cÐ4Ær¤ßõwY
-iq.ù×¹¶ç6p¥yQ»
-W:õLÚÍ¥ûÃ_æ
-rÈôµÌé£`p$0wÄSØa$M!Ü¿ß.%v,îíßé2Û$,'ëjV_¸BÚ¿~ÿåí×Óÿ
+xµ[Ë+¹
+Ý÷Wx=I¥G 0t»íEv40AvÈ"@fßõ,R¢êáîÜØmWIEÉâ"Oÿ}ûÏIÎþ´RÁ«óáõÏ¿~ûåôïx1üÿóo_oR¨;9ááõëÓ_æ$åéë¿_íývÖWkngyuÓí¬â«W%ngsµÊ©ÛyºZnszyEëÍ2ÌbVçÏSü¿-¦gåOqg~,?åIL·å Ãr*3=
+ó'nô¸Î 'åõ*¸"uèòJmö°îvöá*\ÔyMïY´§á,"ÕáxYN¼Ä9?Xa¹úáo9g²UĬµ9©Ûß¾þúöøzûµ
âbX¹¾þÅH@²Þ^T¤¢QÕâÃÊeÑvk°
+E¿U¹Õ
+JP[ýØÅREEù&lvéLÕLý?<)4«;ä1ÒaÖ3 Iª£o ûsY^QCZáðUÊK+';=a¤ÀËFíMS Yf«Êf¼xðÍtWý¼é«a4P&H4/¼ b}^øsJ~òMº5}óÈ¢5Ë¢Ê*@ThfzXË|²F]L2°;ùà#B|DOtÀsÓ×Ö²ÑdYzõëà¾,±ßíª%£$ÌÕ²1;æVÊ"Ù-×¹æi=ËLò+uíÐQ
+õ0v·d
+å Ö±Æ2 ZCܪÃgêBAT@01¦áh*[®P]"((¹ >Zîío×~¯Å«O÷±\èoqÇÈk't>êòÇêH¤Qæt9²ºöîâ#®ªdv9u´¼«DYÊ¼ØÆöM_fìPÔFõXb
Qe?2/©9ImYY¶´&øjäßrB¤\óäÃDKÍÐnÝ0Ák¬ö,þ}¯8È;z£nÂ
+KH¸,>;`´Þ~w=n긧´:l
+Oê4DÀiNùÞgå{¹#jÒD¡Z\Í\`h*¦ 87(f©K.ÖqD at 9±%1'MAt
+F¹©ÔÐ}(¦%¶ª;±(ÕÑR¤$?Û&iåêK®T¯Êø
+Z/÷o+¶ '°°°V1KEn6.Vñ·Àp¶áû"©I Ôî}h:ö-
+ëç® /çêïÐݽ
+5É:#eyÔôá¡u4qpºm×ݸÙ×fhû;½ÚpüT
:jÍ6ÂnØÔÌ7CÊ>ìLºH6ôÕøØíÈ\ÞÖ÷òä9ͪIðÜXOw,ëEi'¼k?©¾ç9d(9Üì¦éÝN¡¦äoLg¨.ʼíÌ^ó32¤ýóúTÏøU}§Jû0HaJòSJþC-xFñ}4«\¨ùù¦ÇÑRú0òôºi¹(nlé4üWÖzÝéÝf1A½Ì¬ÏbGF1¸õ¬E:nP
+f¦Y±.øìxÝ+ô¶Ñ£Æô.4MZæ{Á
^ÇS?ÇOàuõlã©xÒÖd`)§÷"ÊIVðu<9^{ů÷e<ÙÁ|ðdjÐzOý?'fÖxbÖ³§~à){d4¯Îu,üÙY^?¯"iù!IËïâ¨á'PÔ͹CÝJ¶ÔüD±!ÂMrB®¸i/Ãt¢¯!i·ÜuÑ'HË©ÐM ¼M^iïûpd;Û!ÍwqÔÏñHbfÝ%f=Ûhê)eS)yu*ÐpOÌv êè2¦¸%|UÌ|p¥ÄåÛüÔÏñ¸bfÝ+f=Û¸êOYÆ}?;Y1PÆz¤³üb·²pÉ[ïU4ÅEn¾hJ·ðåÎ&õ\+ÛÙær¾;£û
+òÑþv°ùö ³é6ýöÊØKÏ´HW?Ëng¯\ýPk©qdè^6U
+jU
+B=~¡nÀÂ]E¤F¶ ¯"й
+{®Â
+-ã±:w<ò{mô²Ìñ>Æ>ñ?|¤>~HÙ"Ü6Üò¶ìÄÒÅá(ýõô?0a(\
endstream
endobj
59 0 obj
-3101
+2729
endobj
61 0 obj
<</Length 62 0 R/Filter/FlateDecode>>
stream
-xÉì¶ñþ¾¢Ï¦Ãâ&
-h4Ðë!7È!È-qÄü~ª¸7µ4¶
-Ïh$U¬}ÅNÿûñß8} ¼´ ñç²ÒÏßþyúëNÿñéßßþõãþóH|ôîÏþü6'À«_ÿvÏë¼)îþ·uýZ/Bù¿ôõË\ÄÛ_«¾/èærµxvëÅÞ»Ó¸]¿À¥]h=>ÖW¿øK]@à»ôðWºGpHKVá1Á
-uB*
-uB ¬7®^\Àk&Õ.Jt:9R g bì_6A62
×d1É÷¬¼
-ȤtN[mPñèâÚ01In-[]VAw¿@
-Ã^'Q7ªÅ§Ú ¢Yý¾¼þi&Ô\»<Sï¡ÁttºAâ^NRTuw&þ°Õµ
-dÑ<ÕÂ
-Jplá"ïRy»H~\Ós´[VÀûw<Âøô
-ÉOïù,NúÞËA
-,òßâ
-åvcfV@Íüf|mÆld³ åAFì
ÁX`uYgPQ*°ëG¸jéÒñØ8@=y,7-1Ðëô¡
-ï¹P[]/ÿ~Æ,sÑÅB0Ô&)X*ÑEå|¢Õ
-ñRtw6Gÿ}¤`ñÄ¢O<ð/Ä$<<è-Æö.ÃXç&Zá¦
ór`Ö%[å|3
-AIu³f«t´ËÄ^.zî¢$Jòh:
-NXPd5<tS+ÄüåîQ`³°f,JÉ'x<ìðïý ؼG\z|b^Ýè,(!;9bbè#G7¨Â9ÿ
f2qÛp$ÈÏ
£6*Á `d¨ô4
-ÔVÕPÚð#D¾Tµ¹:å8uDåÂFd'åþVö+H^¡
-ý£Æ±×¥ E¦hGÝ|b]Ù¥mñÜÖ;²ç#
®ÆsȳJB½zúG¶^ØZr_º1±î*GËé½(©-óMöÚ&/\
-7·wÈÈPBAÿx#ñ/¥$O¢¼§Ç]åù)"+%uÇ¡úA(Ñ,¹Aj<,z¬y¹nS¥a°ù:ZÑFètFª..O³q¯>GPX$©Ã
-®¥{R¼_¸¡S¸æët3÷aÚä`Åy9ù
-nhª-ùupùeÔ[ܪÙÃ7»#Ùg±¼ß[50ö`oìÚú,µº±ú£Ð%GÌÊ6ÈZ/Y|¸GÔÞúFÄ8Ù'óÜuc-a?¹Tm¬¡âʰ5T/Hå.Yl¡Åv¶fÛÄh7d~/7lÍ*so¢üB´PäþA%æ%#RÚ%çÍÉú§$ÈEã¨Àz91;3µöÚ\Ôjò¡D>×pPWhèBfoSíäBÔ/]umXoa§ü5+íJleDié4»¢:hÏçíÞ¢VúÜ©cÓÍ~ÞS£ªï£Åg÷Nò«>t&D-F¿Gö%g©*ØUÂ]Âï
-ØïLdþÆ4=µ³àq.µr^ÎÛøº³
-ÉߤÞuÉF´$ôçH¼àªÈû?©<ZÄ%7R)ä ·ÅX²#Û+S.ûÍòö÷:|í¡z³ï ë áJîé]î»ý
-sukßi>_¤®çö¾ºþ®søß\·ÎμnàÎàÄwÏáÇF
-ÍÊÂW@¹°¡ÃWcáá/F®:íbMµÇÒÓÛËõFÃ;^=fÝBäÁrÖQV6<Ó¬^pÔ¢æWË$ìjÆ6(ÞÃÌVRcTÃ
-ÿzÑÕÛ<xʨ+©Çð4°ïßÀâk7°F÷4°Pcc×׺#:«¯Rèo¼À7¸ÖúPÃO)Ȧè0½ØÚy
UlGNÏqW ß2bW¶ö¼@ÞÅÛÔÂÛ?
- ï¢Èª÷IÖËðjt!Õ«ÝýÐþZt)»2)¡eû Î/ÝÝ'RK½pÜñO©N*1±Ü¦óYµê¹xÚ¦
-`ö3úÒFÉjw=Ï?Uð¤\úÑÜo²QÐJ
-+ðIÙRµk'ªq2çZ
-Ç*Lo¯]MϷŧËÝd[MkÆ~ðÂÛ0ôH£éËÑòZ@»Mðáü4ÀÎË÷kFåÌÉå;S«
-ÈõóQÖüÔÃ1S&m½pÇÀ»;ÁÚ6¾QhmiÃÆar>
-Xq*rÄ
-R6
-f$
-¥ØbNl=¬9|¨«³fSh"ØÑö²³ºzaCàgåÃVìg;Ua8ÖúkÒ¯<#$vÆ2Õ°ªzÐoê¶a*À;Êh#_Tc
}kN~Ðm»:GK7Õu>sdÉ^®&-©JysmSMÝÍcN±äY,<iªÊ~°ë+ïÕ
-Wu7^ýæåýé #>¾íU,½ÈzaÂ`¼öÌv^
-¦6t¿Ýy³VsIñ}±gìáÃC<Vü4QOc³R¦OH{7*~fÞgAáB-RM^1`kâï]}èíÂWºQÙ
ú6¥B¨d¿Í0´m`çà`8õ×2Õ1é{"E±/Y"nÅ
-f=±^3f"ç£ãvÌ®Ð#ÇÝäû¨ßþ/¥¯8ç¡VvÀ¨ÕÐÕ¸b6½
-TjÕ
-z+ÐZ@²ðo
¡í,fåïþàýºM¦o¢¢%¢µydîL
-÷?»GÔiÀ×=ëÕÍ:F3{Rù½åº>æM¿¥/åJâ¾ô}ó ±´h)vTqFç^iÇDy*JòÄXE¦á£°*?~×ðÿ£püb¢[ìÇOvØñüÝ¢ãv-0gÚLÍ^U<h£äöÌù²LnýóÎ4/rTÞ,M¤¬^²ÃéGÉäÙÖm$¶9 ãØ9JV'¦ª¿¬G P°ètÏ Y]ï§ãr°9-µ)á ãR8_߯tz7ÿTܼvû®ÈÊËæU2¯'»RS&ç¥ ÿÓ_ÿä¹ZP4TGëf¤(}æè§öÐ/äe¿þ(DâG
+xµËä¸íÞ_Qçº"Q/(ÐS]uÈmrä$@æß©©Ë®ÝÌ
+µ_ÂÄYÑ¿ÓÏßß¾}½IéÏËɯþòòäO_?.N8cÁÞ¬·êúõÏ·û×Û¯ ýO°Î0¡¥ÓN[i]ì§5öî4ë¬qz<xõcÚ¦Xȳ}â1´Ï4í¼Ö¦Ëz^£k
+aeòÖÈ64C qÙe>T¼ÚsËK¦UxõÀã]ü\$±(6'c}âLLfùgF+*iBÆìLé
$®Ò+ÒôIÔ»u
+>T!/Æ®ëÆÙÌX¿jrÙ#¬qi2{"*½øóHXOÔd#Ú$¥Pâ*ÑFóàpox¯Ê6ïSx¸Ê1îdo»·Óq0ò&fÖ{RS·ºWß³¥ DÒÉ<æ®yòꬵQ0°Æ`d5àd³nÕÌ@H|Ðö±2%Ù«b$LYåÔH
+&ÎÍUsD£¥X5Ú¶ÖÁÝ~äÆOhaß!Jø+£¸èßxÒ"¸k
ïoH÷xùÊåØÞiÖ78ë{
+¾yÔ¡¥òйºªÚ騴÷]³¨6ÄjµÀx
+©£À·LG£oC/9 ·dÔ»FðyÂÈÏ;==Ðeß6s$¦U´MÈl¾¨ýÆ(b\ÀI×@ePHÝØ¿ZÒÂx=Ù¿nfDµ
z*7$u+¬Õ*®¿_ÓtUEÌ!Ù2óàRõ=ö0WâÚ\£|Ðã¦aªÒEJ,i LTJ%ºÑvúbk¯éV¾ûM7a}Îͼ [6F;Ôæ6ÄÜdú¾]FDÒb9¯#¨*®y"¦g¡lÆÎrÒx©!bQ{µMN¯ýì¨Ý\ÐNrN¿N{!óîD=×RæûCÂoHÂb9A=bäKp83\¢÷CxµÃ=?Z)ÆEyñC,(üÇ5³¶áÙy-ÕOD2'Â!·j9% EuÎ[ÃCål0ßîñ§²¥é7Ò= ¤:-<Ãl=p»3ô}7¯ééc¨¼Ý\f©<ÉÆNöfÀ#C%þxE³Á¶AAÜÏtn¾fG0:q»óÉæ']ÔýpVlvpHs©B}°Ú<ÖZK$îön,EÊg%b
+>ZÎ)²bMÙÛ9WÌ÷̹åèÖvÆõ.ÛF¼ôÉb¤ôÙ¬ÔÖ¥´ÉoSTU ðDUj*b¬ñuó<¨Á«áÚrQKÃ÷»FÓD*À\èMÒwÝWIÓSJrÎfa[¾-eBRIC.³Èa$|/Åûªfb¸Ý»9
+3;[BòJݸæ®%eÎø úÌjÁT¨5t¡®ü5õ1Ò̽<QT3Õ*æë*۳ͺJ#¨ä>0krmè¾mæûañ¯t±
|ÿ
+!ä*tgµÈ$®>Êw4
+ßò
+`ÜF÷ÜXc)JmF9*Çb¸°T$ÿ´nhj[gUÔÖM}|ö+5J
+¥XÚ4u¡m»¤"T+à+MðÊÕsêF¾*R×qYgdb ÔÍÙwä×_êÍôT<z |gÝ«Oè\ Î;nÜÉßôGOê®UÄú,þ²4Ú¼74$Kz!?KOÊÐSÚD¿aÁ)èÎx¼K9çIõu
´½ß»#éüq×Ã[1«dG$0²kk»z]ȶëßÜ@¦<6»KW$¬Ð¶ONÈXxòpg6õjóTÑéÿj¿
+[ϱ£_S¿d¯NKêß-
õÈëß5¸xA]0P×3_ÂîyúϹ x íb=-KÀéCÂKNÃ1MÿXÂ'þHà®@4üÉ
+
+¥¨¥$²~þvúñKZNZº0
+UçãЯ§ÿm©`
endstream
endobj
62 0 obj
-3330
+2923
endobj
64 0 obj
<</Length 65 0 R/Filter/FlateDecode>>
stream
-xZI«ãH¾¿_ás=¹)0ËO>ÌàÁ¹MUCº.ó÷'"×ÈͶ\]#)üâØþ÷ñ×~j.à¯qø÷ç÷ÿ~;üéoâÿ¿¬_9Oý÷ðûràðëÇ¿Ï_ø &/G.ÎL]þóõÏíëã[«A¦¸8p*ÎBs+6¶2wùúc(º4¢Å¸º3û¼ÁôêÿêpsôHÄ'8cwðsfÜ1IøvQgf/GWk³Ló{ÐÁ¯ kÓm¯Á]ÿê$
-·O,þ9Í¿½úk·C;ðKȤ¿Ä3yÿDa£Ï»£Éz¼yêä;.&ßã
*JAÇ-.Å!nR-zæÍì&«ð:ä¬(ÁOnY´1©_ÚlÊH:do"(t-LAôÄI9Ë$Ê$þËfíI´v'ÍêóroU±â5±¬ØÉV²"Ên¯XVäFf°Ø¶Î
-Â>Ý>NÍì?ßzaÝ«%ÅsîЮ²ðwwÌ`ËJ6ûÌdRïhpYׯîü&íë~IMåM¿ì®\.äFÁ{¶p6³jÜÌ*Ô@
¨ m_T¸}§ÂCTlöOrðN3Ëä+æL2ðÊç¿7öv5±®^ÏYgõ¥õC¾ÚÔQÂî¶±éöæbÍ *6¶M¬°³-ÔÁƾV!A¯¿ªÊþñÀwPoÍøûÌfbYª³²1ðÖûmmÚúRb.qX¤JÉAØxèúÓÉjÊM!DÜ1RQ
Åó8í¡¹xìÛp
-'º,Þ>±ÎÔ9TrZ-'X:¨_9ÖÆÖL" ô2s=ÃpÂo+L¼V×QÈþÀÉ£ñØÂé«VSo¤ÒóPfH2 ËR¸2ª %ª
-¥t·ETb¼P²¶%
-ÒQg¾ú\^©
-/·ºT{á0 £_ø#øqÝoÔBÅr|\r5\F´ã¢ST1E4Ãâø+HDÆ·1;RôWðsgÎÑ5btª¯øZ©jÁÛ
0«ÞC?
-¤aÍAc)$ù
-J·eÛIÖ°$uå!
-R‰
-Ò7ð>ÍEõ>Û
-&3ëÛèÙUtïzNdÿÏ¥iå=[pMy»Ö'|§²ýú¨ìd}q|{}ãĶ3kÒÈ\»WEdg«Â*AWKI°ünQÙý,ÉȲï/SD6þRÄ*Ì÷>vH*!ÇîµÙ!¥¬Ê»³ðó9s!¥hkû!s!ë°ýÌÅHͬ@êO¶¬àº¶
GLü%Bj!PÂû¦>Nqº"
-6do1²Q2dò 6mið1¢ªyâläKAø/
-ÆäeQª@eÊ«·ÈÍ+躦:èz0WÁÊÏÂþ5[O¸ÜPa
-/À¶ÅDp0"Û:y*ÆÁßeHËê¢ìæ+
[P©F¨jhïÝèßî)/ Wo;~VÃY®Ý¹ªFóV¡AÖb4ò7·~LNsü6Êk¤Ëù1ªãªY£M38waðZ®©~¡ËÚiÆù'ÓÄc#Ãw´Aj¨¸qSxW^¨A]QôîHϾE&ñÕñ°VÓ4õ&.¹Zÿ6`L)sǦ¤ÕÂñÍm_O
-G
--ØÓ\¸-.Lvån[Èù5S«Ûn¿dò£¾HcaUFÕ9H `ØBO¤¸!ÁÈø ýÐB^q7*+í
-q»8rÄ.Ť'ømþ=Ä3æA
-9M$íÈSiSò8¾ñ¨xðIò¤µ4ÓI6²ã\VßcúFôÙrg;O+/ý«·È¢W[ÖR¸J;[C6«ª*¶;/¤lËPAz&ܾ z§¡
w³Ls
-Sy&Y<nßúR³xTv?7²¼ÅÚßQæ1¦ùº¡æðèó~6çÚ´_óù«9^ÿÒ} Ñ0-Øæú÷ðE½mÙ}ðë,Ooê¶à¯ò^¯ÓíGóXZà¾/
-¶×óRÕ_á7_Ð>£¼´QfuË¡i at D$ÕªpQG^H½XH ä/åÅæ¯yIàæ·?R«'a·úõr
-¤ýÄÈK)PVÞ{öN|$ö'AeèÃþ<LyÜ.´W´bKlðzøMû¥ßóà·^ÑÐ?nRÓvoÂ
-»)6}º}Ôþ8£
-§ºJ
+x[I+·¾¿_¡³)ÜÙ³HÜ[l9È»äï§k,¶ÐÓênµ/iqÿýøïAnTpõ¯??üãÃâKü÷óÏï_?¤Ø^?|ýëð·=Hyøúã·³¹^ÌÙݼ¹á¯½åY¿]þùõ÷ׯ¿hurì4J\ölÍEݦIòLÃS_xu9ê|ÍOÂåÊHOÜÍ}âh/àîfvWü
+gº||s§I¿ò?jÓ©RDv42">à"ñN¹ÕZø<²MéÂ<ka^dÞWßô9QC>·,·_³ìÙ¼]êlÔE£5þHWcn«/_¥Mk£®HVù¯LÓ\!r*3`RÛT4¤UܶÛÉ2¢Á¾þÍ;î¤QfYÜ*ÏÕ0®ùU·(0%2í6ß:OLK~æs½º·( w(346ªf³-&Ý1L
+á'AZg`fEû£þb*(é1^õs4ù¨¦ØâZMü³;V¶©Ó6Z5q>âßÐü¯U5U¤ô¹l5I)]Õð-ôÃ@ËMsjhé3Ü£¡kú015_ÁFUc4hfXmþØwVX¢*
+KP²`Ub
DÅ×\'Íl§ØIbjZ%¥
+Z{
+lÈ{Ãh·Áe{p'Ë}ÝãOüDá#ð'N`âwoø"ïÔ{y,¯Ê(¡ë!¨ý'ó×k?nuíëlÌIñ6GÕ®zcbæªXiµÔÍÒ
eo£á#á§µø5©´·x³âÜÌ.}5Ã^~
òQx`©zÐM²CÓ¤ª:§èÌÔ"7
+
+-jõÝÝ+þ´,Äʬ·;ö/Ç6'E¢¾ÊGL§öØ^ʬtÔ WAAܪé[5£lÌu>ײϥ UcV$ùFÌdúüJÄ¢4ÍåÙ²BAl<ú·Î©vË
+
ÎIfñ1h8Ìü@ÉBÛv:ø5ö
+½¥Ê½(WªÿJ)O£.AcH¨hß1§4ÿ$Ì'§äªwÚeir£oð:)]iÔ¥- Z×W?jf¸r{¥¥î8}²ÁM@Ýùji/ëçà3ÓÉMhwÒø_ËR¢¬µd£A,îÊ|½¢ÞÅíù]l°`Fà '5¯7rĽX?Õú÷0ñmd Ðï÷GhWð¸¾âÆ*aU&(á<po_9(¡6ôt©fOOÓ5}LÖc at cVvÀEpK=ø°ZÕëQ
+U>åÙ3R1!
+$2Åqµ"b¥d
+ëXÛøÒ0U=|îôF!ê¿Ô_pÓtxÄõQGL)åÿÕ²aèG%@M(^¼$Ü&^®MiÅgíÜ)gúez¤xGµCݰÔb)BIÕJTò*â½>[ªÍ°G(Óµw(öÂ"Ûµ2¹Êq
+v¢áP6
+Èܱ &¥nÄ
+n@ö%G3ËûòõBÉØ6¾ ¸Añl©ê:¹ÈÁµnº!Ñ´Ó
+,pÓÀíÚ¥:Xaë*uÖ
+ÊÊ #Ôâ°(¯»æ ¨ïkiõ;L©k|Ǧt×»?¬á?ÄaGUíÞ|ÉÐyÎd¥Äs½r/mvÚ3Ë8håÌþPö
+uo9XªéH°n\õP[k©JÞµ?)ÛÂq;ÆÖvóöWÞîë ÈÎ,P²o^t=$E
+mCs¬ª¢5°Ë
+\Å,ZÃÇsüYW¹<Íß<v¤/÷Ù/óç#G¸AýWà7cú0WóØ*D>Ó&Â÷X²Æ÷0½óØ'Pft.KLEóôF]ÿywi^F(±=æeßígÅX²f¼~
+pª¤Ñ¼îìØÇqèi3ºkúÞ$×}tÑF;©X*94m±uØa`>nÆ
+èå¸i
j/þñxí\ÔÎ$NÛw¬ÃéTêã{òµ-ZÚ¹8ÈGQðÄ.P¿ZV|W ß:,PU¦8Àµ»[ýny´wîfEß1-§Ãi»Î,Y"~µÁL2Pïîínû~÷è&ó1ϸbÚÂñ
+hjå&éÐÉ´} ÁØÁ×vÑ«¶²(q©¡³5° ±(÷óQÄR2Êb·}Ì@1=taõé2ëd£¹±?CàÊò\CLÂï!±ERU«èñêAUtç*ß`Ê C òÍy+n´*ÇFe> ÂRoM^0
+ÜQ,
+éK{ÖoUËÅÄÕ$ÿ:ºs]rªí¬VæY|n<r¯8Ûg?÷nc¢lÆÆ£«Þhé
+Õ+¹sD²%ÃýCc^Yjç0tâ~O\÷ïUIbú°Ei }PX\À¢í'@@ªìY8è_o´Iv¯P<Ð3-[\3Dï±Gf&þÿDò;±þßaã'sIÂ@
fNb'ó¼@ðçï?~Éï´ñÅOè©Ð/W¿þ#¢`
endstream
endobj
65 0 obj
-2423
+2671
endobj
67 0 obj
<</Length 68 0 R/Filter/FlateDecode>>
stream
-x½\K$·
-¾ï¯è³è-Ðh`zºërr
-ç>µFha$ÌWO±Á*zJ=Ós¯w¹OaBI£ÝeAÛ{¸¸t6NíSìÂJ± TùnؼJ©}ì
-oºü¶¥Ïi¼î+Ó@½§{ÚIßæëÊüLÝàÜk4T%®$N(äÂÑÃËLO~ä
-â`´
-Wå=²6¯íp ʪÊe@@ÝÃ_DJ{ûÛ÷?ϤoAcäDúqÉ#¼Ø-ñxUHʨP('¨úÈ
-eLrÏËâg:ìáp}6>®-ÓÇT"®XQÈp?X¾I®ÖbÃá¨H
èìÍ'1\h£ÐͶÂG~
-µÕÔÉ\0Fë¸F.xЦUÒ¾f[.¢c1[mµEv4<¨úú+ó.ÅSá.IÚßTÁA
R7yU0.ÄoÒÖ@E: Ì"| QÎpµG\eÈò´è
-Hì"êZ'ÑØëf¤i at U
-ñÍéD ÒH¸=ÐkÆ?fe` q7Å|kðiY_U9l6ÐDÏV¼ÈòdrÉ7È¡¸+ë¶
-3Úru«¥¸ò^â`iÐ嬳ëj뤥!A 3èL0 ¯ÔIU÷<HBÁ/-åfqy¯¬ù_¤g$ãu°pV'ásüùÄ|õ*RåêÌÕÅù2Øèò¿î3
-ܽ ¨,l\¯mäIÞWp.ÄloÒÃÐÚBËîùÛ¼Q>Gþ.>%®+ÈòÔåÐwÏô
5¥ÄRîàH2þ¶#%¦1@*~Oħ_Ý1Vú,,èó(߸Ù!"¬+ "Âû[9~áJ¨JEù:F®êIÄ^1W!Py~Úµð0¡~'»0 ˲üÈÁÞfÜ/NúqÉ)XóÎa]AY÷Âã@$îÎàïÏ8X=¶!~êN°¿Ùñ'Z±ÑñBÍ<
- AðÑçU2±§
-MPÌìþ²ß6!j:cØÆîXrdsbò(Ô9;V¤ß¢G}ªój+÷ë^édÊ@¥[3«
-¦M~`&üDnÉ+ëxÀ¢;Ñ©CZ
U+f¯v»%ïf?¶DSµG>Û¹2}Ü[¾æëa*ÐSÈzýݬCç¨×àe
-}¿-oßÄÛèÝníê_1¶QÈi¨7lLpÆ'1·¬Ë¢Ë9·ÖïTÜbpsôQ§¿evD}Y¹Ìæ J¼
-â2%%dzðN!ÚjH1uæ£1pÙÙêäáÕÖ6¢Þ4_MDø¯®°Âe9jÄ6
-&CD7KÝÊmÂðPËm<ÊØy¯Ö)ùk§-Ï\9õg¸ DaÑUxði4&Ïkè@ÔFs¥lû ßñTmy!(&ò=EÙ%êêUÐóEÊ|Æ(Ëûߥ,DKºÉüÇN
-ÉL\h-¡á6DcÉl$K/É]Y4tÕôZ/z+¶µßIå(ÌSñk[ên粸<¾+sÇ[°Çó+¥b"(¨bWùZ7¤ì,:¡êÖÇ#4p£±ÿ<´Ò½$
->fÒ¯X©;1zÿHL³t
-±îtë)¯³²¾ZxÅÂí òk&"ásEìîØ¦¦ ©MpøÁTmÚÞ°»"l¼!Üho÷T*yNåëÂ{îô4bd©QvÕ
-ô4ùê:Õ&L-¥,¸«rÕ-*6j7íøSä0Þ@Orë>Q«×ùËâ6MÚjÂ|ëåKÔpçÿÕÈþí´i°Â±ïåÍ"ϳ·ÆÒó
º¸tâªX8= µv¦yÝÊ_z§pzIo,ÜTúgxQ¯®Ðºµ¡]F Èy¢?ÂC/S®üM¹z¹öÚK62áð¿u¢7GØ\æ6j´Nô^~¥Òè¥;¥!·Ïë©Ñå~øÝAw3ÙßM« ²K
GÖFÎCÎ4Jø´Ö
-W.6¾c6¦þ`W?çʬá>2½â=¶EExÙÞ àõ8åÍ©|^½Ù¯Ö£tª¾vé}àçsÜAßE¿~ÇneÌG ÊÜô^üuWE/~yKÞQÒàÞ,}]Þ3}ô¾xcÄô·)3_Ø@[ÕkC\jÐ×n÷>K*ôð3öÉgÓäjtUGª"÷Ò;¶ÚÆ»1׿´¼h (*09z¡¤áìÕ
-Þã³4ùyK»v©\H¾-gQ[)§
7o¦Úª IÉ·&ÕUµ4Ëâ|ZßÖzÄP~ë°'ÿcIAÇÝTÆÎ+u±©µÓVjßéTv}íîQû@'Óòª¦n¤z)qß>V÷ÆQabf)«R~æ²Ô¸*|±¼p Mý×u»dBÜL¹Ñl$7#vìXH'7r_WOÐf²çf-3ï
-
-.JGq¶¾IvÓ
-îOçâÄ{þEæ
-ãT¬ÊJ{ûÎGè¤N SÇö&·Ívm] ßUéRÖ'ç³näf$RvÊ;ê²m :°>H{Ö¦#}ù>mltîÑRRf«¡?oVãæEWSSzehS\HÆOJµs£(%÷ jæÁvd@ÎA³µBeÃVu«t-¼ÁZbRÞ«Im%2÷c¾±FÞµ:P{î¶lÿÙí(õ³2VÐòðÌ
-ß2HM-m.ÑíÐù%®h_;÷w)õ§´ò¶®ÐJå'sdwê&CWz~ÔQÅÉ2%f~«íR`Oºw¾Ü¿XÛ´¬HÌ
-cLQÅ(ÆRÔ0÷a29±¥#½ç½¸Oá¡üÐOujx¦_V&:á®<ZºNÜP¡LÓ&«¦ª¼Ðÿ¨¥è'írÇ>_ie#|âõeqøÙ÷äòSÂP¼rõÈI¨{>LÔÅãqT ]FNaÁ@Ú±¥ºèá¢G(oíWÀuÆuîkÀ[[+Å>evK|ÇãAzë»U_Yôü{Í
-zè+âì v¬YDY¡¸i"òÆ[ÅÈÙ
-}¼©þ[ü¯É·G}ö¨ÌjE7¤»>GÕ:ÏaÝè`»|Çc6 ÆgûPL0ªxS} å Fýªz,gS³òOaª©Éâqòê¢ÆÆj¹P»¿êçû-ý1£7n²^v^¼Û©³¢âl«"WRKq4æ¿ýrùõ§o?_þÄ?»
+xµ[Ë#»
+Ý÷Wx};z«
+0t»]ì.Ð@Av¹
+|FÈæu³õ³f½ÃlÚ%=5Yø{]9ß>`U°"5ëù¸ø-ùh¡
+ùwеy«ÛâëÖÜ
+Þ}ºdÚ×w¨§ËÌg¡ìýÌZ4I¦×jÚ+7×îfDûD(¡¦XUBôäF¤Ö¢¤oGàì°7D7ìã('
+×ýQmÃÚ©óäè?aÄêý³QÌóLÒ*Üg=ò´Y±Ö^÷VZ³
+@ZÁ¹Å;´R_lµ÷'J¡ ÚIç¨hO0æëÇ߯FÞØ÷vίNÞÎò
+ºÃW`³ð¯¾)Æô ü¨êË^ñ<ÈÏ·ó_á{ÇÄO`våô»Aöâ|«<¹ùl¤OâÏK¦PAX .'N xÂw2K7
ËQ¾%Tr=(1çZÒ>-þçr\DZoÖÛú|ð ê^£ØGV¼NTNE2U=nÿøúkÏÈí¹v7g²ÐÂBê]>ÙÒã¿á;oq§ñ½
+JG§-OÉ'?G°St.«r£¬
@¡,9j{£:¾¯öÀ¥eÄiäHc¾íLæç`fêeYlÜS\Ç_GÅïe§¸|ªc¦ÀÁ¼5í.¬Ëuf¸â}y¾æ
+u at Sùa80BæÞûÛÞâ3¶xeFXkZ8*|{ cIí5¡«GlDÑßâ/!äT¤ÄáfYò"W±QÇÉèN"xÜïu¥ú}(Dc¶ïú%Y%)\P53~¬aG¾ãOFÝÄ
+pîÀ¡¨kZdMOÙPQØK%"æÞKÒÍÎ4gÊJÉzù,h&4°ÖvAA$¶ëu"[k°ðå=¿(üNÚøÃ>NSx²Ò§÷â®ý 6ìAOÇQ"5°ù)¼¢Î$ßÉ<{¥yà*Qßm#ñC+¶;Ù;å<G;Yee64¶óÉ$;&ÛÁhsIZ¦ Y,¿I&!Û/Yu¬õ¢tÉ`&Úié#M,}¨ cÐY`öÖ¬ê3¬)L¿<[Vfä8£Ö¢de/ÈBy#9ëòTurßâ¾cômh *S
+ȲlÚ&]ÑceÏRs&ùT HA¢ã#l³Ã<0)ÆiÚ
+$ÂsbâÞ¹:jÆóUV@Ð: nBSK|Fq§¦F%Ùa&îðrc¤aG2pWíÚbÈæ\UQãæÒföº¤ åeϯ-ÌëàÖcÃ%Üÿ°(^Î
ç©".a ¢·Ç~&-Y Ù÷
+E®èSèÀÄKôÃvlcXª//ë£Ô
+è
Æ^VPÄ®
¢Å
+¥rå®I{¥²Yøaa"kJ Kñsid6*
Ý_zùAá>¶ª¶h5Põ$t(Q©8Vê3×Í Ì!Y;÷F1â½Z1×òË©ËWÁé\ÝëPÐe¼ÒËQ%ÅÒ8CÊkÚlcä±ÂBéØÚwÃg#"äÜðNæª]0©QÁ\ãÖ$wÛÃIJww¯Ù/fYv©t#IèÏ<D,1®½3ÉK5tàa Ä£Ø
++Ú`üô¶ßã×}{µ,m/Uj*M¨ªµíÐÅÃ
+ºçùUt¨õ¼ã
+f\ê<8Ñ鯩þHð(í_zA.[óå¸Ñ»ùÅ)}m
+Þ1Þ®¹]}5@Mú©qþ²Q¤PÒBõM§N* ûTB;hBìv#DIì:uj%zdwñ¾æ"vøÄSÕWÊÝrrBa'ì}N<ðÌ3HDöÌE6ÖÝEUù{å|h5åÂOÙãP ïÑ¢ôîJüT3º*vXb÷ì»*JJB{aW$Ê·=Â
ÈéST3¯áÁú[ì_ä&ÊF¤wÓí[ÏÍiÒóïÌ·q±É¯»ùIfÝïc¬}¹Å¦6EÔõý#f.²:iO´Io;ç%ÙEj¾Ùfn׺/ekí4ÓéÒaØãaô+µxU<§õüøhÜJf£U<Kﯤ5ES[PÝ
+(:öÝETM¦Í15RQÏYp{¿¼ùªa´-ø&Ë)@¤ZqÓZäKfnXa[xò³Zrþ»;c½_Ôy/ÙsÏürãÎàvg,m;cü¹m3±¸
GÕ¹íñ±Pw«9
+»nR]4t·)q&uªë#çÀ%CÂs©1ÐÚu m[PìDèrðjçÖ-ÕÄ·ùÙú´²
+Øm%~
+b¡%÷sù7Å4rOdÄ,,¼m¬Ì°@%¤ù,OÛ{z¹´5ÈZÙ½@º&¾Pi
"ÕµÇç:Z·¥:ùP¹.
+XP¿¶ß
mºS×Õ\éù)ÅÖ/W¬Ibx±6ßâÌ´T%¹t®ÕÐëÖ#({©n ¬ðâàåøé±ô|®úzÑèà,ßk¸:Å5íëåcÚ\dO>\ »²SÛKq%kS#ù¯¦pÑFïÜ
+ux¹o~æ°øëøéíPlp§Yª)ÕÖæUÎcG3«êM5=õf·eâ^>¨:ußͳØZ<ðÇAüT
wAâ'ǵØC2å
µªl¯Éc\¯Lê«ËÈÆ!ÞG0Ñ:lµÏÑê6ày³¼=Ö<ßjl×<n÷´÷êthóÆ»6M}}8Ñ&Öê_¸u®Ur©Úß@{]õlãzs'sóoÞT¬ïÞiÐ㻺²Êëá´4_ØxðKzTµÕsm½=kÿ¢Z»-Oºe0¿{}"ùoçÒ_s3bï(°Êú×önÜ«7P{K}N wÝU¨ØL$av¼ë*PªE£¯ÂÊ%Þ¬¬dãà^Ïo×2
9ç6E8{
endstream
endobj
68 0 obj
-4024
+3086
endobj
70 0 obj
<</Length 71 0 R/Filter/FlateDecode>>
stream
-xÅ\É®#»
-Ý÷WxÀfUì4E]
->küRKh*øäi$b4Ü(gKUÚÕBdX!ñ!/²ÂýȳCû\¹éuYÓ@PEÀ2Ç#tÛdà`ë{B±/ü-©P²
--ÛÂ]É0Ï|Á«·®t?%ÿùàeXýr
-¸ò»¤EîNÊhrã5âP"e´HCc¤x²apbF½£ÖºÓAG)¨Xõ4>sK ñ
-ò+)¸iÁ¯ÒðFË0w%¼×wpLí´kJ,`)i.9Þ=ãà{ÈÆ¼¤³{ÂIo2'³sÓ]#d*Á®±¢ºÏÍmK«¿¡H9®ÀyY+©@©Ó$äjVÚ`b7¾*ÒmÎ qô&Tôéû uÁ$ëg@Ø{¶x=ûÕ£xFvÌ:OJ!ÞÝÃĵ´3$©sàÎpÅh_OñÙº ¼)pÅìãò´Aµl'^<§XA^ïºÙÒÈg.~GØò\«R*ëÓ¯bP[B+¾Ïoû§e6ôÿµTI½£¹$ýº$ó³Y²
<aÄu§óÕíìì°k7x]ÞùÂ#6Êõ¥åq_º*Ù ¼ ØØN)@¼ãêT= ÉÚÿ_|¦:È&wpåHTP}ß0ìçHÞjÓ«cè
-0Sn_èÕs¸BáàÍ?g+
-EQ¢Yð§´èª¹ÃÃT3¤@¶7³¤÷öMa¡>PÆ1|Ó«õ#v jWÑå(<©zR6õ$ºÆ
-±£-}ïÛì¦áN1Tg7,K?:rËWêÅHdisn"SÙlãåq
-qZZÃãj2ã¥ÿ¨F,RÕ"¦ÐÌÓÒ°Lüy¾i±´ÎE r©SÅ
-&K"Ï¥eɪÌZwºkÀNê-Äò³UÚëËæh®S²Õ»ÚæÛ6ÓíÊe
-¬BA&áÒµbÂç<ßS&Àp:³(EM®²n%V6{/jKE2ßçú6#\5dLÂw¡¤¯¶(æCݾ
-Û!ª6M*¸~ºÝ=QTî³Á*n}ñ©Iñ÷#b:CÍØÛa
-$ý]î@1uÎÃ=-ñsËIï[ TaML·A©e=ðWrë S²íå°Ï3Üϯä5ÁVQWuú[x¥1åTPcR¨n°,ÇÓC¸÷Fz;/ }ÄW¸¾DgÝÑiå÷M¡H¨"oð½[
i¸hÏ{v/÷ßÚð9|R*Þór.(3|b³LA¼dÁÑÊ´&m¢½ ?R
-Ì˦»EõÁøñ¤åñO^!hwåÅkì{¿§¦JÛñ$Ó!ÿ¨Y`Q^WM6;.Å'ÛÕKRdÁøélÆÒ
·î^®ã¡,gÓ{Gè¶faYºMCE´&`Ï
-Û ²d|ÿu`éö3"[\3E1©£RïsYñqoÉ]Û{ÁJò5GdÏú¹ål·Bà=6OC&Ñè¢!oZTÎ
-u2íÚÔènǤÁyaØFÁjeÔÔ7#ûéÞ&$aÒ$êÀÈr¡VùÇ2<>¤f@þ3ðÔH*nK¡èTPåíVÊyl×9cDdç&!e4-(z#åË}"6FäVV ðY^¿Ì]°i±µìàªO]¡R¤Ä©)»¿'øÝtO¯9_lb£ì>¡ fe
-Ìý þ¯ÂÏ)'Ú°åGh&-ð½å$ HGY®éÓ:}Yræ: £}îéM»éº&äèÚ»
-½Iþ`W
-:mùel?%´/óݬ§"ËBª(2|4¯tÏZÉ ª÷£ÅË«¸©'dd·©9]äÔmÉ )s,ormónì§ÎØnÐ%Òt)µUò.êìA¼Æ:ÚÎ>êAý¾Wü×gw~%ÂóGߥ'5iųtm³¼i$ãµ8|êÍ[¢þ®Yså¡8×éð¡?{_Z·ªvú@×ÍgMØôDñþÞëF(
-»pyÊeôºÙkìN9§N®5Ò½ÔpÚÚ¦÷7m¯]_Ê´?«x&bF¹ÊÕØÓÊA¾u!7o(¦²ÅPj¦Ùèm]"
-7~?Ð8=/Qo÷6ÃûÔ^MʧÛ%ëiô³»èqKÚ`á}©ú{ê«Öñr$¼nN=Bü¸ìûÿrKÝÚôÊ~6{a{V+3U×,kòä
-~Û)ÓÍaê¶gÁfC9;³@>y¡tê°¢õWZÒ`Âiå°%>ø)¬7±Vn(ÙÀµõsñÎáÖ¤ïéÎZ/î]@Ú®!êÙ/¯ÔF/«~Í׺Qa8h<<09ëµFëÿt¢¼J{§l¥v}åyUêøªÚ¼T«½C*/v £:¯åVþA=mLÐÏzÚF+äLqe}MËa:àU:¹1¶+Ý6có³¶Ý1vU9ñm»¼¢gÀ÷R»£ß£8áÄó:éÄ"h@êôfcMä@Ñ»¾¥tÿ°ê÷9pá½<¹¸z²rÐS\\ʬ|3h»W9Õt!Ù"Örc4 àGo#ݧRW ùð[-ù Í4ÅôýÖ6´ÁCxý¾ëþÑ¥ÞÉFë>íÞ;7,j{1wQ(sYù×xüse]e9»NþÆAI¼£% åfR}f+¥L=|ð5,tìΧWgÃr§õæñ0Õ0ÓÇ©>Ëó³/9AD·2mHOf¨Ú½gÙVÔ¥VÁ(3w_±MS±åö
+xÝ\K#»Þϯð:`GoÀÜÝåEv²Ùå&E w¿=¤sô¨*{z<Ý®J:çÓwÕìÂOÿûöß;ÿÑpá?ü~úëNÿÿ?þõííógâbO¹<}þãôç>q~úüçß®ZÝÄÕ,FßÎüjÅí,¯ñg~ìvÖWãnguµòvùðy´7ç{ÍjL¼ïð÷sÿOPñtãìþ»ÇëFøa:ÜåÀóÿ
+?Åû`Çíì` J§æ5àMXgõËáqÿüË·õóÛo¤4¥Äų(&)½Ø>îùCï¸NfSÚ
NY+c gÞA&I
+öw®b
iÿ ±ùf2¬òÕG|BÒxTlú4ÜXÿíl¾e<_XÂç¿G#èS¥YftoÚoxò`®
+ëtµÚ\ÌÉç?N\&±Û[ºÿè0éÍãÖÞ"ày8¾KÏ
+_j¿18ߨT\'/7
Ò¼pç®.·t
+þ¸ xÌi=6Ýs)òH¾Sy$¨ÅRíù9âÀÉ9æ ýºÿ«¬¢tNÞaÿþ{uxûCàÂê½aõ@'Ry]úaRÀÿÜëI]÷â.N¦
+'0øSqåXı4B,aq1,SñÔ{Rka\Á$=Nh6ݾvaD¥É ú'83Tî.'HÝñ¡ZoѪ`)aF/Ëâ¢9«í8JZ¸0®Úz=µ,ej}(Ò=G2Qr¶
5(ÉÆgÇUe¨äñ`/½*üõ¥ÒV?ÿùØ8Ôý¾òQ 59jR
+ÔÔPðw!!xÇïé8
+Ç7aZoXExcýÃâI-t±BYÃdáè`NþhUxä ²YñQ;î¿-v6R¶µñÚÙ¦ ·Ì)\Êåâ28dõ¨x±
+
+Åö®¿Ú*ÃTKBño&SápowjýÈwä;¦Çäxeê:+L{MïGeS þ$0§8!Ô§ÉVy%I,ªqhÓÑSåô}D×óDV¬V©FQyofFRñ66*
+r¨¶]Ek{iÙsÿÂîYõȾQº-enÓÎÓl5ÄÖæ$d¾7|îAªÓÖs¸,jõ/³ÐC²3W4|
+ç>ß_ͳ&Y@
+¼Ç!ðtè¢ÞlK÷ßùócÑk:
ÑAìc~Àþù³n}+©ìqÞãfÇ"Täÿy맨±ívfè¡ÌÙëÓØ¢+×cåmeºû÷°(Y®Êéó7®ÓG:Pö6ÊjN%1á,ÝX©ög#lÑ
+}¶)Ý¥éPù ¨/äÄ>?&Û׳ìVCÑÜBµD1Ánq¦%¼@rx¢SÂÿ!X¨ððð0ÓgyOPe. lìPdÛäwJ3<cö£M÷ÒÆ`fÉ(*H?ÉÔµe~ýVöKZÞ¥JeªüÂ
+/غúXjmUX#£M»xÅB÷¼Qh%EöKÞVÐ
+äi*i5Y|%ïê±eÔi'áKG+òþC}`®Mó~zïâD/]~7ë/[ésºP
qqqÜÓ©ÙÍmÎb=½ LòUXäkv¯j&ÌHÓûsÞ£Ko´µ6.Ês´ìÎMͱoÔÊåE6"éq7B`4¨÷(¥j¶Ð9
+¾¦¹¶/i;*>R³µ¿ )§«C¥RC¬ÐÛ2JÜɰ«ºÆ$#¸¥s4ýzYM£²7$ÑAZtË>Á:DGí#lácÙºÇ÷5è$z)¦Ø´Þµï5°Ë}BõµSßï*²Cú/Ʀ`^á+Èb¸Gd©/ëo«¸£Ïþ¶=¹
+â¤2_ù5ÝgË/ÖjeY3V÷úïý£I?ëÆÙrµl¬¨X±Øì¼[n,cȨ$Fã!Ìç¾°×ÜX<yñe¼±°²·©0
åãmå^q¿ÀÜñ -´g¿7ytð¡¾Ñ©zÅ4³³l«¿h6
+9Ç~]ØÚÝ&®x~|ÑtÊv¸4Sâ£Jnfk
Zr'À1®E~)®Ue¸ð4ó¬+-ÒÏe]ÁkÙ
om¡}u}ÖÛ¬~(ñ"§à={¯!.f©Ç-¦ïH(æ5ò{øB¤-ðSä÷2«ªirɳɢ?OKèpègØÅà¹7¥Ê6Ä¥)irgr
øi¢¿iÆkY°§X;*ìÊÁZöËïåÈ2ÃqúwTF+¢
+bñ¬
+Óë0Þgò}Iëå¾8ÓùWU7,ù4.^ öXuÏ1Í«O¤wuÛ¼AÉíË}ëCGÉ£Ð{ê
+Ïv©7üE°Ì4± B㺠tO´úû¸P©çu4à×âÂ:ìAùïÈ©|~.+r=XË.+ÖB÷ë¼8(ñÛâÉdâ¸]#Z!=®Y(8Ð=öeãR·¹×*M©¥åjEßC½¢ÐQõÍë
+çá
+?$0
ðÁk¯Ö]0qÛ½ÓnùYÝÃeä6MMßÈ5,
+زF/=G²]g99îß!¤R0Ñj<iÞ}¿{Ë
^»ºg¥\å!žø7·º?ªý ©"áçÓÈy7bCL³å¨@·»)üDÛb_º
+b]ºT<ë;ÐõRK&øTêΣQ;R)3mäÏÜ@¼{ºw¬×$.Y¶mµC4ÖQ0
+èô.
+ìþA{A. ²Fïjßz!ñKdç±øø[t©Õu#@¨n«ÞS?Uø8©SÐFéòa
+ÈÍ
+Î^RÛØÔLð<ü%2YR³ÚP
TײÁ"V
?qÓoq`1fS¸ø÷_ú
âÇ«òÞáÕI¥Æ
+æ7ü~¬ÈoÃNjië5ê²Øo
+£ÝøC?cðn¹ÌzHv»Ü*ݺäiIHà¡ÎÄÍ/Éð¢:;a±
eèÉ+¾dÇUhiçgg$¾wЯeÏt3Xô
+=
+â/.þLñ\÷ñÄq.Æývú?Z^å2
endstream
endobj
71 0 obj
-3958
+3273
endobj
73 0 obj
<</Length 74 0 R/Filter/FlateDecode>>
stream
-xÕ[K«+¹Þ_áõÀqTzáøµÈnàB!»Ì²d6ùû)½Kj©»Ýçf{Áø¸]R©ôÕCªÏì§ÿ|üûÄNßjàøjýã·Ó_~9ý+<ôÿÿøÇÇíÇ0~6'þÛ?þ~úÓK
-/|`ü:>ü×=þ¾
-dÀAÝ
½ð1äÁÔ¿©göQÅ@}/=^pÄvåÚ'M¸W¶¬'5î^
-Ô£j§õËûÉK$ñ$6ÃãT²Ãín23ÃdÃåPÅy\V³UmËC¸eg·CÇ}Ó²lÓ7Êg/òjÓ)"sïÈPpó^$ê{(ÀTëhhbMg9Xç&4ë,óLûdw<ª
-ACúfñÑZ44îjü6'ÚÈBô¯D
}±ÉÜ+Ø£{èdK5Å;³'}ÌmÉmr©0dØé¦?ÀhÅJ(¿~'Se½óZ¼¯ô±¨#s4Ût-Í<Jê:j÷n$æ)&ÀdÅ
-ì´]+©Ã¸âéPª3ø(¦äPÜSdwJ©.,{İA&Ûp¶¬éM¬+Â5à^Ër¤e
-ÓíCüzI/.Áð°<Õ*Á*W×è«ÇRT
&'ïgqx?"ׯ¹2@äçá+÷d<Îô>g{*±µÙ
-Dñ¾¼Þj
-zndsì²Ùs>(¸¼
G±¬'nVBK ÕÛûEñ¢Rúqú¤l®`Ó`ÐAå½X M5Ý{>"¥ÂÔCTÕÝ`WÀæ|QL,PÊúº¢áÞåEÙ¿_eÅb^SL9¥:]78ìÖSºÌµC>+ÞkÃiçMMEüdNÄiÎÇࣿU61?BjªCíêßµèÍ9yìH&OÓT0ÏÞ5pÇÇmuã\´
-°è~T£_ªüÈKs-ÓbZ+&<¼ XÂJe2uç$Ypµ&Çê3ë_¹ààÐÔèAo!àE=&$¹Táã¢`tzÊé-î/7f»ýT ¢Ú;×ë5eÌH%kÛ¾ëhS"02¼õMZL¬æÆZQ*Õ\£ôÒøÊ¿]yþͲa<ø¦>3"LÊêC ôéÁÒ#Q)w³÷æN1ó"1F7?öÔܼuÂ
-~[ù+/®¸à_üïÑz\à+Gú-Eäs¶Wø íûk/Á \áÞ¦vfíÃúzr¹ÕÝ¥CüàgáÿÕ³<)¨.¬O.,
-ÂYS25Å$Hæ1Idy}RÙÌáz{4³7Òðßl^8|<ïAÓj1g©VRÂÁGÒrúG©ìBg|÷»°û5±¢´ÞÖÈ5/ö
ø{ƱÞÓKó#hzٷФzòhf\S=fXr³Yï«8P¨ù7í+SGíAdfYÐ(Â}¥87,pö
ã©çù¼1Ñ á$ÀàuÂ)^ðb÷°FÉ|ÇfÇ6=¡ÁÌ»045bûKJâ¾âgï! ³;j";AÕs/õ6èµMÆZýl,aáuØÿì,
-fÞ
¥Ñ¬K¸[^ëÚ¦L>yWÂÁáFe'¸Zê¼]XµÛ®pA6Ôî'ãKvØ+©ìûøÍ¼_ÃYs¬Â²âËÌÇsð®4;\ PÙi¼êu}Wívãj¤ÝÏÆdǽÈÀÕ`æ]¸ÍJâÖ
-ëËpÀ,û,v[®¨l·{MÌZê»_Zy+4Ü/g×ôûyèbî¸o2÷*}4ó.tfMèâ{lðM\qçWTv«^ÓO®#ÝöD,èÖõ¿ÂÇ}:êTö}LfÞ©á¬éä×\
!oßE¶ë*;AÖDßw"ÖHÃ}kE¿.i{&=®ÁÌ»Ð5×ÏQßG¡Ü¸ÌÎtÌp{åO\]|õΣÜ&A¶§ù<ºvné.g¹RÏ-C9d±»¤
-ÁcÑ$LPÈÜ/ÊÛ°ÛSì袥4¤
-Ö»dÍ0`µ9ã/ïDGòÝJLj§ÈWפµâlª¶kFÚ<¦×½hõèÜÝÜÒýä
-ý
-¦W´¢q'.Üù6åShØ!tWШképXÂ\?3ËG¼qÎVjÑ~-àÉbÃrÂÂF§*¸xñú£¤ßPAA=ä´À¦®t
^67(U'RÄ^µÕÁ+Ì,»Û¥ù] &:GÉ©ã:+]¼*ÍßTþ:¾p}
ÀË𨺺+XÁ1~ûôB°@Wæ>K¡Ú{'ØQ©lRßHÊXâ¦Wác{Ñ(¿nX.'9Ä´³µ¢Ó
-Înën3=ËVZómMébÙÛc¥ÉÁ%Ý²ãµÆ¨¤Q¹aÖU4²MMGÀWõ+TÖ|Þ¸[A/(Ô»kq×A;ôÿ½gÂRd´ ~æÑò5óz|
-µ$ÎÖÖû÷żÒk*M(1|OBáV@½_NY W¿´Á¦?Xf·AAÒðG ;y5÷T®PI?e½¶e%¥qÌÁ=6]¿ÂiÉVFû
-`¥y$\J_Ó°
-«U] âNL©ÝBü:|X¡àLPâ[nKl"-
-ÿMrFË Á÷J£I+6üÎPjYeJ,(ÖaÁÜóFkõ³0MRÊ{Êÿ¡ÕübDä{ý[ÀÒ->m5Æ R+ÇÎZØ@·ò3¹Øã-LX»L®:Ù?j=7Ðñ;Ù¹]vdÒÖÔgýBÂLH¢ï¨ô¶
-µ¼®¯
-¹-<q}éx*âTÿhòáÅHùQUþ
- at 9èn]M8¼Ö¢$©inWaý¯ÛºÆm!¯×ÅÉæ#´'jò°!»Ô´¨d^íàϳRVòÁà^xJu2¶ä`ãòþvXû±óôýåxñ
-¼Ê)oæNÊyúN©QøòÇo§ßùøõô_Kc±
+xÍ\Kl¹
+Þ÷¯¨õ@Wüö1Ý}ë,²hÈ"d@ÜMþ~ü¶dËçQÝ!sjêqlÉò'éì{Ù_þóòﻼ2ÿÖpá_¯?»üåË¿âá¿ÿxyÿ|áJ^eîj/¿üiÕÎ/¿ÿõfÕýUÝÌbôýó`w}3Âjcî¯ò_Ão7+î¯B¤',3«qqä#Ï0>cïþëôÐGyå2üød¤éSWåH?GyçðLzR¹øä#ϲæªÉçE~Òk½¿º¼¬øW8
+°º
+Y/¾ñ«¶U¾_ò: 5ËwÚ[Kµ)X'/UoDÖ9k~ÿÛç_/¿vÛ«µ¹aÏRÏ'8g®¢óê¦
+È0*0h·¼vDÑDSÁÕUBÉ\\\,Õ]ÜØáá0Ó)¤¾:Ryñq×HÓøM\[þæW(36x¼Y?/3`¥ :$èL!¥ñ»EÚÁ;è`h·`éÎK#ñ<ÍͶɱó~BÛ´}S© ÕÊAªvAàj5m¨lÖÍ{Ù·<@¸©à
+ÈY² v[ñâßq
+~Ôáy¡A_ç!vᣱýòÝ`q=HÚ¤ý7eT&3ÿ:×hÇ®9T²xQpX[TήUÂX]\^h_fòA¼3©Q+çÑ[¸õgI®¦F^uäT\/Íc¼ckf´!aÌvÛk(
+1* :b^®åÝ6úùR¿/ksLa%:ß(Ùx#ìqG/B,UëÿÞ1ÆJUýÕÿvÊÈÙ*k<û
+Ò¢{¤scL^)-¶¶Ö$gk¬?Þy¾,µí¼#
+î3À
+h
+>J9<Gï¨gW÷ÕÕU+}m±fË&sÜëj¼:R=âT+j¯s3LÛ®á<@KÒ(`«ÔpUú®ÙR1ë`?o´ñÃ^øýq`ºBó¼I5 `Oêh5î)ËUMì{ý
+ÏÑuîØ½OíkÞ·NæÄ+¤ÍêsÔf×O|5"{ÆCöú]HÉ1ʧÒoyV)lZ¯«õÏß
+6 Èè1Ö ù¢°¹¯ð5©·nÓc{b»¹kÕÖÄN:1¶þ§eàê!V³9ñt\Ȫý$Ãzk
ña|¿`¶;º¦½1Lâ»$Å(¡únc{§Q|eéïT%Zûv[»ÐÂ
+yJñ§±jÔdûèíÒwú·_aVÙÓàQÓXä¸Ö]p3÷M]±ì}ó6Riïy-- X»ÑÚÉ6ÉZÆH¥ÉÁ.Ê©op25
+µÒþÄthé¹L6òZúÒa%$´Ã÷þ¼kûL/øXÄSgz
+ÏAé8â;)ÃS R úJè®WúS>jÇ]Ç>V9Ú£où]çîs4à
+~QV$DÄ\ÔVÊeÜÞ¡?·q{´' ÂÝçhyÔÛßñyJ¹ò2D¾Îµ\ßBÝjiÔ"¸_Aá¥ÒóÒNAp¦np@Pìq®[D&ª1Çi9kÚTÄì`LI
+.KPêMaÆÃ
+>ZY^¼@ÿbñsKNågU~ö6Ù¼v!-kÊÂj+6boøà¬ÊèD¬r!Poàð<îA4ózÅ4â×i´áÁIýºh/ÒâÁ[¾ÍY¦§1áèTåWBZ/ÑÊH¿7S»®o_`6÷~zg¬q¤
×ɧ'0ájŸ½^ÔKíG
+æ-BÄOø5úÕsÿ7¦þÿaw.×ßÌüá#ØÌ̤Í<éeuý«raö«ZÆÇk)\u\/§Ó
+áµs^Ìì¯ãb,6âL²
+¬m¤ÊfrãÕ\RîEój}¶áÝjßhïvK¶
+ôkö0¦°¡óöÇú}*ºX¨¡p,%è¤Â}Ðîz^hRNtÒZå´´.D}ï¿Þbv12ÚËS
+ÎØL=Åúgð3H=QbÂ2ÁæÂOùî¤.üø¼=Ʊ= GQ$`/B¯(²Öê»1ÄÕ3Y-Ym{GäCH¢¤æ8¸3ÖõÉâ_Ná©ç3È8vLÎGÑ¥ÕD»èZìL»oÆ_äÓy{_ä#ø"¥Xåíá«é1ã
«BÆÂ·¢¶O[f;Æ«^×S¸¢´;+R»ïÆæOóbì\áÚâVäó¡ºe¿ÅÃâOçBblÙ=³F}âËè`EBÃøräÚ¾]=±gÐEH>.JjZÜÈb¯â³¡*<lql«^Ó£RîªHÝD,N¯ëÛ1µ¸§iÄ8ô¢¹G
endstream
endobj
74 0 obj
-2915
+3028
endobj
76 0 obj
<</Length 77 0 R/Filter/FlateDecode>>
stream
-x½\K,;
-Þ_Ñk¤òN4jiÝHì#±@¬
-£¿ÿùòË¿èôé?¼ª·ÛÕ¿*{»Wõ`ßá¯N×÷ü«NÜ-4øÒ®ÁíAmô©LiôÇ!4W¼
Wà£N´£i÷ÛÕâ}ú~t¯ú-LKKé-YðÆ4.
p¢p4q¹Ýöòw¯~äai
-ËFÊ4q2IÞ?ü ?
-"ɸ4iãóò»aFâ7² oÒé4·?~ÿõ·û÷o¿édê¶Da±ïG=¾ì§d+ä÷Ò»g)âdùFÞIýhã¾h_Ò·]ö¼!}¼¡v+2°:Ü
-PäLÙo ¨1oKj¶ýÅòÉÆd¸=ïÏ5¸u'Þmò6pÜ3}tÏ'â~ÕÈbû1Öè<5þµ ÖNå±pi±!«ínÈfÖàÂã~ôÆ6¨ìt3¨üýN®MeÑ>ÔúÝ{õ¢ëYéiEiÝJeöNU&è× 1ĵÍÞêܹ¾0¹4~ÐM1³Îs»Ýà×ÐR¨j% arARyí§ôå]l½U0û¾0_W#-¶y©BDeáíyË¢Õ
-43RogdÆ&û?ÖÓ×Äz
-·ÿtÿ¹ðtWÑ<a(òjɺ×:" ê4lf¥¸(ÜP£ýàÏò4;Q¼zÒOÎÍ&ê¶%>5ã,m9)Y5±s°oÁbn&µfªñ²400Hô6þs¼
-{íZÙø
/(ÆÌ°Ú§LFWÞ::GpÌZmIÞ5»E=? "ƨÛNæ""°æGæÄwÞÏÒu±exàµN^dÃ)|üoSçEmÕbÍå|è;É·Iá, K@VªI-sÙkøj°»ÔÞëDs¡¡:§BM%Ñâ<@ÊÕú`¢(¸0'`¤2TOÑ3YÎuí½Eûv¸~¤rIÓ¸1>ªnmP¹f*'q®,(DG§.½ãLçTVfÂh@É óS¨I¦þ¿ð
-lÌÎâ<SoÅy.R1lg±xÎB¨
-gÐ$ÖSxIE_1ø±Øg³2iXÈöc¡dy&}¿9:϶jNÕrÿ
tE5óÏ&ö´¨¥Só¤P¾ÒA7ó· ÝLÎõʧ¦d>K7½o.Yóÿ¯´´2Ê'°¢?KôcD!ªVÂ$Î"¦yÁª¼fÑws´¢hÕ¦ùªî÷%¸±¸ä}Mù+.±dq)í#5¸
-Øë[vNGU%óbù¬U%c³ÞÅ)ÈäÈ,dekå¸@×ÿlÈDhQXËDUK©ZÓ$ªRÂ¥\ãÂÛ±ÄK5ã*îVÈh*U9!xÀÌ@Áâô>LSyòã6#êßU{â
-:Äæôмº¥è}))ÿÌf5qÇÑg¬÷æfóÌeÉjm¹çoù¯ÕGà5ÄMêl$à< :X)lAç-¥oº,}¸~:}Î{ùûày~¿Óx5
-îD5_¿MSã÷°W{r£TÒíGÐrû^o(Q®hMÛ ÒDtOr âhÙ@üê³,\Ä9»ÄëºJ¾MÓg×D`$ïH5\3ÝvöõÁFâîpV1Å# yÀiZÁ0SaGÅUöÆÜmªÉÈ%KXÏñDùÎXFÚÖ.6àÛF)âbÉt¸PDþ#ñзíä÷«Ðà¯iÅÁ´Q³±¬WHKN4CIèLíÌ4[UgcÒTÑÓ¦Ul mð#«ãPCvµa}¼é¶Äôõ§Â¶ÿ |¸~|{àÍ£òO°÷Ò¾hÎvªn&Ñl§ÿªêÛʯq°ñ«:cAeà¾ÏâM®þÐN7º)$V-T$ÎÀjªvß©¼ý^ò¦k¯t¶¹Þ)"ç¤<éÛ£x
êZ«¦îMùÆU¥²ebRjÁÿÚ_ Ñnhø×
nûJ1îO«óæç¤27VzõKìv"¤Q8§ât¡D¼MK`ÂC{±[ÒÒf~ãÀÑ¥S©º8hºGº¬4OZyåÌ[
¼cà%ù äj¾ë`ùØ3 I7«V±Å¼¶üëx¼GÌEÃ6=PÖC²
-Vµtïªt[£ÕÇiZ¸:LÖÒ^þ¦½`åysåNcS,p
-ìï0î¢à°ëku$ræý$(;Ë-
-*ãq îTw»4`y'}ÇbÃÜU+½)ËTÚÈF`¤ª¥l½%°A%$ó¸e§sHÇãÒ@ÀRómÜED:{Ò;ïFyÐ9-s¼rvF6i
-Bç¨7ãáÓ/Æ99A«Ï}3©LÍlXìàDW}¢ßP®¶!íÔ·R
-·×±²òmÛ{ÁÎmõ§|VâT7G7ÈTÒoÌD¬ðÂb RÉ9=ÔGì?îMnj0]]©'TY#RÒdV)FÖPzagTdqbY°eñ'W÷²àÓ1PêÛëÒx¼$:6ÐEF«½µmCÌpÝ:¨a¾iA0sw¬Üj×®îï·eÚNäÌ#½ð÷!æÀ%?¯ÕTuX2dbÉÅÁòJ$.?PJÔרÞ0@ ÆÒèà»ds3QÈ?JÂkßbàýÌJM$b¼Ñ¡]efñ<¥'CDËðÆÏ¸XêVÉ4h×êÙl÷ì¨N9X§U3ä¾'ÁDUm»UÉ¢{õ®>µO¦r.iç´¼]ñQ.®ì.YêHGºô³
-§y¼âØ
-Ô"׺Ñ÷¸Ç#©NwZoÛÏ9ø®8°ÐØÛÍ ÓßAWcÕѯpãx<´FwhF¦6¹è÷ªÐ0º=¹tª×#>>àØ
-òàØOj+Ë,`l²[1½&ñÝ%N1̽±(7ùæT©fÿ~b*ß·8ÁöaáÁ$aIkÖý{M¨ªW¹=Òd´ªÚÚÕâA¶ôKÙ˵rJìÙ["OpF´a4õΰÚ#zZù¸r
-¬ÊËxí<
ɱ¥3¯Bga`Ô3Æós+÷¯|Û§§PRûرË!aQ¬Ú À¥px¾<Â
ÌÑò5×a·s×áãÖõÀDsf¿0m!d6ÓQÚÝ{kÇg½²;@'Ô¾f·ÎóÔv1[Bi8çʸn.þ ´æ%L¦9@õÉ(ÍÎ7ÉòIK
àà½"¥6Ñ7öçZʢŨۯ®Y"4£3ê+ÄäüËboAn6p(â_Ý
-¦©ù¤úÇ78úúé·¿ú¦.W}ùÇÅCójúô÷ËïÆ
-]¢Íùòèdií¢23_&
-JÜÖ£¥ãUÀ#ªõÎÝTM°X30Èîþ5Ö,Ë;=öþðdÓ¯
¹ý"W$Zsó¦ãרcçò6»åG6E£dO`·±õF6aVgÀËS¢SCãÚ8
rÝ(ômý©¼»iÙ¦Jã^[?©âGV£0ëê6CrÄ»7uÀKëÌy ¶GøùZÇÂ
.¢àI#úÛ¤;¥À{Ê¡Vì2¢" `ÆÎu©Gù¸Oàâ¸!Ë`.¶X]·mK¤ÀÖVc+&G"<¼àF`Ú&ɪÉr·Ù§\G/,´®q(ùaPë}:ò¼×U÷ª?zTÙ³¶VlÇ0*d-¢ØÆaM\tGy±Ênf@à zôä¹bÑßß7&B(;iÙs£"²`5æá\«¶%ï¼Ö}núHSsÅ!+©X<BR©ÏäñÍ;¥mø÷pðhâOL¼å
-t(sʲ=z.¶æ£ôËS
-UëÐÛ:Uª¯kÃ3/6àæO=ézÂÇ
-ÿt©ó·}\}k©B¯Å¹gÞ²<éLª<¸ËÂJâ1|æ¹}Ô §Ra,n¢È&j"¼"Û<)
- Öc³þö2îO¬
-7LkE¼¦»GöÖjËÍ?XZîD2vs´×lÀù¡Õ·^²yn÷ÁÌ"C|°ùÙ¹g½mÅsàrWsì~.ɰV¨Fâ^7íhèHÚ¿Ö\±é10F¾0m|½ÃÅ+
-REõ£¦K^³*f$GÏ_1WÕ¥¯
-0c¬~NP½z%Ùè8O+©ÞWï¥Ú/FóÚðv-àUøÅ·ß\þDÄFó
+xå[I,¹¾÷¯¨³¡ÊÚ3EÁt-ß||óÁçâ¿ï¡-Ù¯çÏ@ÑO
+
"¾X¥d~úÏÛ¿Oìtfð§á~¿¿þ|úëNÿÂeW&á%vøßé×¼½¼qn/ëiaübN?ýùÅùÉ>~¹.lÑF»±FÞ>þùöüxûÑ-ÿ¹Z\Do®`tÆhe½À¼ÞÊÆ¼`U5Zu±£U4/àÛ
+&V%
+îï0jÂÊ÷M¶^ÔÉXK^Ãâ²aðëfèÌùøå§«V7q5«Ñ·3ç(
+²·³¼"wnüêÿ½(øíí¬®áÓÎú
+òwæî^x-úgø¢¸.h3xBé¥É/kygÁÖrÜ-,X?êàMp1Ͼç0¯¢\´xy¾)m¿Ógà"¬*ÝH!`0¿@ÌÓ3%¸ýíã/]Å
+7r¹H¯¸Åkñ¦,'¨¤éw\ôÕáF¡Yf *~OÀ+ìÂÿ4G³¿jqB«ÛÚÃm6i
+Â2¬°ø²
+øIpߪ»û]ܸíß\çè×fE¾Au&x2¢;"¨¢g!mMsb
+-Õ¡ («
+ñÌÀÍØìl´*¶]P¼²;a¶ò¿Ý
IT Rñ_ Ï XxÙßTP9o7ºpo¢S
+v WÂuïÂ`cz"ÇÈÀþM«ç)2 ·u xRT^SSlϩϤR&ͪµì-Q}"ÓdQÏ%ò¹AíLý§]¢ßRn^!ïa;®¼£¸ªÕj¡èª@ÝÜò+Ó,Qͪ"edlGî«È^'À
+üßÔD0Ý
+`lÕ"ûû×DaÌËLgøÖ®.×Kënà¤z*óçC ^Ü£Âa
+pY²K"AQ?ðP-¡_ÓÄZmNõ/
+¤EþTc]?+YöW,[-´|'"ýoZ»´Ã^z=oÎU5¡¹4÷FySuC\{ÈYC¢0ø:óý¢T¸[pB>ª:h¶S'gÙìÕZ§²«ØúFJY÷°ÆóÎVëS0Ï43Nvæ®Jñ°aîyÀ±vÇC8nûãÏñßk_wÄþ[Í,n¡wA?dþé|ñS
+^åW_ѯØÝ7k*×ßèHÓ+Û*feG³S,¬¢ízþ/»ò?\çbÇDÇÃ)ÒÓy¡Í¯¨çFkS=µíqîÈâSoïk4IÛ
áBÒ0ÐXBµw5߸¬ëxc)î¨Påî½ÐÈ<çå\VHv⳺D±ÝØmv4nª&]ÍLGÓSlhݶ:t¶ÛiÕ~ï¸lúýúOvj¤HÕ¾N
+Pwj\G"7øf³8Bw|}CkF_gôJ³A<;ûý<eé1/4=5?
&£k*®RýÔ|¹¬= »®¯§i%@ÑN··:¿ß½âÞæùo@·2Ú+ïØ+µÐBÓ¥wÍúò20ÁD¯ú=îKÕë QzxS- v2#Y+z,ÞÝ@áz«ámyXËÎO×pöÛtWKË-¯òM£Ú\N|Ö¾ÀÚíÐÙWìð#Ð-_ÎV?öb{ØXt{"àygôRj§ñ¼u:(>ayÍ8ÊÄ×Ѱ¹Z3ky=7Z¦¢ÝªâRU󦪡ù*.Dt[ɽ±)Âün#T«Ú°:==zÈÄEJ1 ¾µÕò¦iL22]Ì|Ì*öT2E¤H#D¸¬ùÈÚ¯
ä ½^~¤FtÉâ9´»tBT**
+ð¯£#LÃY˸ªVôàæXóCÀ¬Ú)§zþAB¡ëÏË
Ò©B)Ì
+ûb¹ÌN·ö^è)ÀÒzÆïr,Û«×V EÓ²&]MÙÑàTçR7¿ÑÉyÔh¬OT3)¢ðãbb,I0Ã!<¿\&>/máÃb]M»®
+u¥NFsÛÉ·{îNn«©:oïsÆÔ&#ORåý~ ûnàÑVÓÂjÒß?¯ãÇY¸ûhÛÖa£^ü¶Ì:;¥MYBðÙ».@`N&ItΩëHYQk?GIò\LZ¸ß¼>%it5EFvã°æ
ËrðáH}>Rå3ÿ4p¤ðA²6¿Vl¹t2B7%î>Sõ1o^¬kѱa½OîĺÂ:CÔý¶ù=§~ ¾ÕÌ+¿Û±¡ýNàÃK÷Óh/Ìag`+ÿb)alÅâÀ1®ÉQsE©nîøÜÝ~"Ç#&Äìùö>''þÍ¢®Cù(h;k¥(ðÏÔùÃŶ)$5IÖ¦Ö .ÉâS¸tÓãóÙF°SÌJÖt\¨ó þHuO%(·ºÖ^¡í»ã$+{.Ð%~=S$®Äûc,\ô'~/Â!f©ô¹æÉ}¼MÂ䤻ʴ>/âw|6¥kÄ Ïè
©Òöw£Û¨i00E
+¯³ù÷¨°UoNBbTàYo¹
+óE¶{Ý`Ì>¼¾|*Ñ~É¢<:#û$t >3ðßAÊÀ\J ë%)ÖS¿Â±×¸ÑAk/*«'{m±Dçá/ôÕ/Xr÷à>.E9%XÜ¢D×tÈ¢oFù
+ÕI©
G+^âî¼ ÀËw{è2Ù6öinsV9
+õ0 ×ä¯ øzuq_¾SÇ_ùvìqnh¿ðën8$»éÒ¢tt\±IHÏÌJÊmAÈ¢è/¾[OvÒUünúiG,f@²¬¼âÒ*àvy´sêÍc*j8úCÂäCEIí³duÅÞCm(èÌ&S¡Ë7[¥w?)çØÕ»ûÄ"'¹ÏØÄÈ*;°=Õ%lºFû3¸,¦½¦ØMiSì&V¿utHãÍÍái+63ßÐÅòøvÚVMÑ
l.+å~wvõÙ@vÎýVAr Ïä$rûdXa¥¢DìÇÈÓê¶ÆGseâÄWæbx¢;s}eJd6LÖ¹Â6OM'CÊÝylxYÝÖQ(ºðïþîùæ¼6¾UÑ'ìhIr óÇÓKF
endstream
endobj
77 0 obj
-4498
+3066
endobj
79 0 obj
<</Length 80 0 R/Filter/FlateDecode>>
stream
-xÕ\I,¹¾÷¯¨ó@µÚR MA߯~àñÉ1Ás¿o¡-ÙíÛ<¨WÖ/¶/B%ÞáôËÛ¿Nâtþ«é?5|þüÃéßþo?ÿííöí
-|_N§¿ýõô9ÿöã>·ËY~ëåúC¨ø¾ÍG¾aÅÓßrᢿö×Ò{|J]ð¯ÂõrVàÛKiåÛ¼_tyÑp^þÈmûï
-2¬~|ð»ZÊ
-o.Úr±e2ktÙ¬?ûÝÛóÛÛ÷
-6¸w3ÀFhèÛßGo$4Ùuy_4I¿b.=AáÅ%Üϼ5áIÛ¯Eüë×N^Ic[]Z¹¬tQËâKumÒõº¸_}¥AyFc²ÕI×:X˲ìLgö+é*´@²i¸8µs(T _¥:0¨E%¤¥[
-Ex! ïr]9ón[x«óx,ÇuÆY¥kIjøv¸ö*^»À" Q~÷ÊPW×8¾gÙÕRUBHäÓ5ߪ,Jn]eS.ã.Ê?
-Tóä'W§jìV³á8ÜrzøQ$ªYC=×VñI æçºÉØú^Qö¹Ñ{÷_¬ì¢kQïºEéîĤËKĹ^×w.]ÿF°GÁ¥ÍtÛO¸á¨¤¼uS$cCÁL§_*E6xu~^¨®ÖyÕ,³ZTB*ÜÝ$Eæã³¨çÓÚY*ÿz
7´mdì íqÿ}5½w7Î.Ø,tÎØÐ¯4ñ3F-¢U¼_ÌhË©ÁáÖ@eÝxaDh´#ððmËå¶<;
sy6íÛ¨¼¡Ãù¢Ã¢½l[-ßUZB}<{|]÷- Lg(°Ò&¿Î_N`ó«202ë-m4Þïiü%¶Î÷c LßzM-ʬ;»'½vç§"@ʨXÀI¾M
-Te ÍP±¡)É.ßW«¢!Ò9Õd*o;ÃÐ&zÔuGëL Y ïÈôj*Ò]¨ Q£ ;íôø¬e·VQNÝh ÜmÒ®ÞðÙ)ÇÌBu,GdO¹ÕÒÉÁηÓ.Ñ÷ÊL^µHñM4Y©¯4É&@Á|Yùëæ¦*¨¤Sa¹ D¶)|AÓÂ9/ðV(èøïg6=$ÇyÄ´Ý*S{wD(ôpufëÖ/ÒÌ̺z³ÖÀìJH;²÷%êîâ±hMµûêã2Ä
´Oq+¿ \øàbO :SÄK¦yÙYY59¦ªwsÅNxh ª!K_àb¿q¬sªaÆêÚÆ±¨d¤G];`kíÂ,$G3ÌHÍ4ÀTûvh®UJxEa<
-ìÁaªºQs3òøi@À n%¼×>ùLoºàCµ¶PïviÒEÔ=¢WCzJnØ×jroiöµ`RÌ-ÏÔ¯;Â\4ìD5¥:;!Õ¶r)9`Q!ÛBoFê³½vd
-bÂÊõ|JÓ>±¢'cEÁ¾ï"E¯U:°×qËåíÆ]tâ¼P°Ó®ÆOPÕ)Á¤éH<lfÏ©ÔÃ鼿l(;×*`M:U`Á «ó)§U
¿>f¶M«
-yÅå+÷]H¸ÝèÌi '¡Ù¶âöÀ:þ.Ê=&[/ÿ¸éyUZ,çú´ázMM¶iMF5tõv<½Av w2 ûäËë|G§§Jú¥5E¡XɳEÈ´V=A40»~(YIow4"Ïç#cG½# Æì1§¼î{lÛsSkxÂø~OÚä.hãùé-2¿ä[¿ÿí8áôW¿þ®ÿöÓzm³F÷º[Ù ¸èFöR¯ªÄäGÙK?¼íWt¡0_rÍò·Ia2 óíAÙ"BTÂfæI,Jse¦5Ñ-ÙQE×d²kUJJsMQÚ4²FÂÙ-f:$-lrZmt2B5Òn΢
-!Χ½ªFª²µw
-50ËÍ5E@¼¶ä¬ÊfÄð³xmS÷'Fqvuÿì{¬þ,¬.ÍÚâ'cà¯7Òýí×¼cO{
-b<±UnRx)[æNkÝtU
-[iî¡««jôÛÏLÂ*âã4Y"J½q$§¸¤Óh½¸é³h}RøÚbK ð¤rC¡U®ñ,&µS
-e½3ÝoýJ`ñj¡+6"
-"©Bi
-¯ÊËdü$Å1O£ÊúTQ»Ñ0ÜeùaÂÎ|è¥ sým3XyPàL_Þ98
-qNA¡ÈõÒR'¬ Hµ3©+îé¤ÕãºóiÖúþÒxzfèÉh»ÜÞzu.ìMh<?©ôjç4[÷ûíÞ2åz«ûßS!Tý/ úEñ÷{¼ ¤sÛ= G¼2`¨£§GLw>´ÁÖ(¤ÀÔ1¨P=ÞE
´}Ú²Yf¹ÎÚÞÛÄbT6^ovWпænzÖr
-;qʧv{ßË'Õs}aK=OÎ$ÐtV¢ÌB.
-qùï×çPjñ¥ô¸«©¥ãÓHRyo©øKïÝx>gt@úÚ¸úPQ(aªxú]ÉdXújÕ!U·wþÞù¬Ó_ ¼Dä<R@È|F´¸ïaQåíùÊ
-¤P8)ˬ^ÔØB&70ÃÒÓÃsL
-ZO¤ðß -?ÿpúñ»|K÷®Ë-Éntñ @ºñýéß]Ú{|
+xµ\[+¹~_áç;-µÔjÁ`ã±yÛd KÝ@Ȳ/û÷£»ªT%©=sÂÛ-©«>}u8ýþòßÓr:/îí&¤{5Ö¿þöóé¯?þ.ú¿ýóåÛÇXöYìe=}üãô> qúøå§Wu¿ª×íaÔõìþ×׳x]ß®ûøÓËýãåÇvU^6fW¹\?þÅß¡/X/WñºÝê´ð¯f½eüDøaÏ~^ã祵Û7Þaý}eí±ÝÓpñë{ªyX.vKWEf·ëê4i¶5.?Ϊ´»èN¾j ip8ìß}Y.öô{ºôç?¾8}
+'â_OÚÄwÿ>ý
u]$^YQý§§ým_/òëÚçÕÊ=t_®eí
+Î}£
+öUÞ²fݰêͤd0Oñz|U~§ëÕY\wñ¼QÖ©:ÏYhÜ"UVYip$PÃ[JL"Ó{Tÿ<6Ü{ï¢/Ñî
+J:*iH!ª-m{÷EGqC `F~|ÙîX°nÀ6|3°8*âË#~en*ÊȺîÃä\¹ªødÀvö;OyåY9«h+8åvNgîâÇxü<Lð#ói9ü@«ÍY|f<K¬X
+'Þ{^ÇxÚø÷ä{Q´CÊQX
+_GÒ¢Bþ&ís/"TaÑy2ì+3ëÞøç,:þ¹">ÍJ#q?tå7Ü8ùð kËÞf 2ä2Ö;]hÂ#&f¿cnºgËÍ´ ÛlÑÈñ
+«ÔÄE0ÓN9eµ$CàD·x@¹;Eàú¨n
¦» 2»RÝޥģÜÐU¸>wÎ<½û×Ⱦþè¸åH%ÃL2\Ï-ËK}Nog¡{¡çß2JyÌé<ú¤ËéhmjíÞDUOÁ!5ÍÀHäRDX
+3
+ÝlöÑ2Å÷öQ´:æUwH±.À¼o}¬wúgQv§Ù[¦3ǸÍv¡âBÙµ&Þ¦¹ÖhAZPf
+ÁnG£7¨ÓËëг¡eÎ{¨uÅ û,Öí]]ã<ïlÚ_Wûh½..ó·[,ðX¢Èbi×4³C|ÀmG¸Âá··pãÒ óí
+ع-é`ÞIDÓ3
+U@°ëí\
+·cÖxw¨Z~¦nòrËà\{â`͸{¬Qu©Mõ/hGNP÷&EjÕ{ؾ"aÕ"§W*~Þ¨ù·çóa¨drm/È0~Èñ8?®Ä^7×6ÙÀÄlÄWéqÎF b?ýòh@ÒS$z¥I6@(
+ÛÛZ&·t{Ì ñ[º·ÏdëÝNª>Ô´ú¸Z#µú¨"ǸGqtntx(_4ÎgT/àOµêÔQ5«Ù«±¬Ü¡K
+Àwo®Í:
+˹ï[Kú túåÎê¸^³gÏ,ßäEe2E&¥)ØÉ{ÇHJ
aZ)÷·tKK¿ÂâÓM)ÇA:A>.\ªÉuzÀ
+Í^B¤IòqÍ|Ü£¹@úI§µñc~5ã1N=u}ô
hj
+ÔuÅïåKy¡ò3paìñ%%®ýXEl¤=$X{â©ç?½t£oϨJÂ.I/ж®Ç&¹ÞHã#ÊÓ`0µ@yÜãîæ²32Yj
+äÎTdËQ§ä#º£8r&Í#
2mÓ-[ÒMÿ¯F¡Ãj;J»ñÂ
ÔNªAÏw;;%dnII
+1dwwC-VïÂ(LÁãÉN»@«wçpÛ¤-æ{¦îÄ$Æwç<g:¸]:eB#í{¶ÐÐhXðÙRíóõªñ$³£ôL¤ÝIËÑñ8aá
+xÖÙ`²¯»«ëjñ0iLjK¹´ï ¶'uï7ð(¿r"Õ»%ÄÕÖÉ»"íϸ@½)mùàÎ%À3
+Y£G1´*´£VØý$7ñ=NsÃ|áq¶(ÏÃRi÷(±ta+Xýá£ÄncÏ×q?yXZ6?K>íaI^º'H}m8_°óü¥¦CÚ:Ý&B¶@K¹íg4ød@»wðéGX(Ísj³¡£ÀïÒÁußå/<ö7h½!ËÁ9-01õ<vÉ(|J¢¦Õ8ÿ^BÜ|A<>\Zs]?Ç íËg®i¥c'°¾_o"sïÁnke}»¶Ýã{nmZNت|MÛõe^í×étèH
ÅFÂÊW ZèÇÓì|)cÛêS
+ùõ|¼^47 ÿ5! ´ Ááw¨^ìJ´gDÔ¬¢ò¤P±Áʾ³×h÷70ï±Ð/Ç¿¬Û´ø"Ù±þ
Û©C{çk¤Ü}Ötg´>%u'}ëãy/â»Ã(î;¢ÌlhO
endstream
endobj
80 0 obj
-4060
+3765
endobj
82 0 obj
<</Length 83 0 R/Filter/FlateDecode>>
stream
-xµ\ÉÎ#¹
-¾÷Sø<Qk`ðzÈmrrËL¾äõ#j%µTÙ'3h·]U(òã*VþóíÏ8
ÿjAúO·âçßûåðG¸ÿÿø×·Û÷o äÉàÓßÿyøËËÀûýïgi.GyËå¸Åz±g¡.GðWôåhÎâï+þ>·Æ§ÜYÞ§¬¸Ç{ø¥Ê3
Ä
-oÿÞðsB]0ßÏ@Í3Mä)îùe%6Ð
-T¸$ó¼ÇòhýßÿúíùýÛ¯
-kT§²äçÍ¡üðïÿÓÀFBãvãÑKÜÖxDr¥02mâø%çi°õ{y@¤5mb²7È/7Ù·^ÔI6s·AdWwR-§¼É«Ðâ.VáfõæÃÇÀDÃåÜ*1itq "wå%CÂF®Bäº4Çkàgè²"JÎÕDGÃw??,.õ3å¹g°ÓædÇÌ\=#p°H3
ZNáI];RmùåÎQQèCÝ3FåÇ-?âUUf`7;Û¾Ò¿¾E{Ô6ð»ÜG¡EÉ
-¬ËØzÄáA^ªª`Ú5©ÒWú
-xî+'TWä:Ù¬\ìp«qSRÉ
-ñt0f,Pì dü»ÂÄJEyÆu~$m=3ú¨çFX:Á+Ùâ% ÜGÓ/ÝXo7¢©ñú|FZ^õÓKn5T¥ãæ.ÔB´á?\9ÈÅ}uRÕ0-NÈc¼ºØVu]øðÖ$7xkMeb$ÝÄã÷grÉÅ!Wù4þ¿+V/ѾÕÃ=}Ó§ØxÞѾyc
-Èþ©G«ïúïQ²¿ÌH0|ÓOÆëpÏ6
hQòÍ|ôN§0`Ðfñí´[ÞsÝrKÿ¹$J[àuTº¢ Ãö¾ÿ)QÌPMàUXXÍFìã]xz#ÆÈ¸VªÈºúÿ,«¢ûÉÝ7¡îC-EÙÿkiøðð¬;)nuüøI.¼¦£Ï39»ðóÏÚnÀF0"»¨Wæ3d=½nªd^iOÆvp¬Ðu¤ôv=B
-F!¯Yò²c(y4yeéÝųÿ;ávãç¡]-¨.%,W³74w·40þnòåì¤Jî§î*9>§SÔR©3d
-OFKª*¸¸eUIüå7(þh[pÈô.ªRNXír²ë~
-åéM¾°©jpo«Ñ&Ïä$ßlÙ°'CEv&(´¾©´JÓÖþS ï0Á(ÊÀ±º)CI¬ÐÓ¶i!øzjh2ÖMÜ.ã¿ñ¦·$e©e4xÎ&QÒoq4Í0ॡR
"Jè55ÎÉëôñ~¸¨yüÄã_³zw «=fÖ´67tÏ@
UAEª` M$$hK ¥(óe+d1}:<å=i/æ
-'á`¬í+CÔm*I%ü:6¼"äª/+mZfºïdhbÅöÛëv¯xÑ~ÛKï-«Õ¡F8¥n36A;WdVä
guKÓØÿbÃI|×PP)¬$G(`£-)G?,+ZÃïMYÇFî¥ñ+ðÂEòMGÁ ÆßÅGãBx26Óz¸àX&i3§ã½ØxðÓ1jPÆ~°
¢2×*s§ãHº·øµôKRB¸)+|[B-»K(-nâuÔuWë_ÔL×âG~ô+å¥h.r}>]°ÌËD[TwÁ{½Ò\¦ª^Z«Åº·²¢EOïÁ¥\N'jÙFg¨<ÇÖ/³!c
Õ\döÀU26yË¡Q£Ñ`øBÊ
-°Ááb4mI^@·UiíOSÞ6:Róã3¨÷x4FàÔ4ûÚætñ.;ÚK({¦½ü´ÂìÛ¶ifìv/W6bõ¿ÄG÷Yÿ´1Ôw&HÉv¿AëØ]Ä,ʦ¤µxQ¼9BÅfX:ÀMÓ¼³DÀSÁ11ð¶Wýz7z¬´ÚEÀììæãÊ1£E±YðyvÑÀCyÒ-bS+e£Ó{e|"5ÞSå̼~£aÄrg;Ö×|Ð6>¨2eiILäØemIi a,î¹DÒLb,cP!YúWÌÀÊ9Ì æØùH¿: !¨3 v[Nç´Îþú
-IðÂÉ^?üêèi{2«f@DvÄFÏ¡Îòº-ii;ë³%
Û¦x\T®0¾óèSjØ1ÛÂ;BÎ×`Çxfo%{TS´$Â6»²Á
-ge±A_ÊiáKñ¶ ÜÀoÛáy{],ùÏ.þ" r¤ùz³LvØÁQJ§á<Ô ½Lµ¯9#V"½Câ%W-nUgÒ'¢Ü¶©ÀVM¡ËøÉ@Òf]=R_¤·C©&*
-ù 2²~µ ¥9ì%½ì±%õÝ©y®c>ik$H}L ¹Êa+MÎNÈ'áíìPZÆdòc
-ÙÓÑãÑäD¼Èª°Ì>NH?îºtkw[<"6HùfêØoóÐ`
-çcÚ^ô»`q®Ï"³¢ÖnÚ
CÊÔKJ¼iËñÊâ¥ï¶³zÃøíd=*Ç¥Ü4ò¯Ké½(á1UרB½ µÄ$"í+!dBQ»EõQíÑIÆI{æ
-åd³í½ªlûÃê»0²¦
f]Õ¥ÚÃDD¸Íü|»_j4Mb¹iyç,DiÛårª4ÔcbË~î&G=µa´Ý²¨ú¤(íµ®)
F*y7ÿÝù4IùO ÿ[cÒ$vÆÖÒ©ÿýV)UJ¾dÓKgmFT¿%;öj:>ú!|Ø_ü¬Óg¡Ö§ç=»Uª?¼sµuêÚ'V»¥2ÿÏ ê£À×Vl¯bPÏ6ïlÓãíÒÖòÛ¦pvÒë"N~Rø_ÄáÂÛÃ6¡R¬
ñj0+g
-t]d¬LcYµ~¶rûhå»PM>uöß°'e²ú²6´úªÚóê(Ä»7¶0ë=0ÛõDù/WC^¯ ³ixgÞê/¹èRþ@z[ÐèØøg°k|´ò{ÒB4O¸(ásm¯ÜÕò>.!óý+Ä£ÑêoóÈy'¬ü·U<ü>õg<3ú+V!òýÏú¿îþÏÆÊ«¯»¥wJ>³Âx3DX¯·Zwz+7}Õ
í¶~X<Êͤ°G#jZþ¨¥I?nzÝÔ¥SÇR¸ÚÌU¶÷½<äÅøº
-iG,×3Í6ç©©DnL¦/¯ÔZ§¦uÚ-YïE6RÚþ7la ©ä®×,½zñÞ«©ïfZ}Ú4ovÐZ´¤Ôr%+ Ñ:E¬ÑæÊ!EX8P!uR¢$¯ÐóRÓôP1èEÝt$4îEÅa_
=ôĨAÏÍ«3¤Nìh«s[Tôqãþ>QÒ¾^vÎjM=¾ÉïC^ØxOBò£PZ^vìéÛåùüàÃH{ÎuõÅͲÖ,ÙÛïq\~ÐM$A¥úÿáÑôm
-Ë ù<JŧwË|Äòß%YÓKñöª¼©Ô]úÁµÖWôY¬iW>µ+å\}7ê4~·]ño§vù[þqAø±@îøAð}Æ_ß_¾£ÞÅá:
-ìÖà%"¬é{ Ç÷åâ3iåµáÌæò×f®Û·¸<KxÿkÄɰSOÓÜð<MïâÈMDD/Æv
ä.YÅøÊèøÁãv:
-E û죡È9ðÚ¾âÔãsq(nZ âÄáoe#·: Y«EÉ?Ó5ÜYÐ`¾èPÛ+O«ü[òò¿Ô´7QOT
CÁT¢<Å"¥_`/²ÿgüNîpó¶
-ä´m1|8Åö1§CWÄMÚL[+ætùºQ#/*¼Z/ àÀ
-\`µóù7èF£q
-?èârWý%?ì%o`¨P>0ê×òÓk7~#|ÜcCK¾{^#í-ô dÊm.ñÃÄÖÔ/æSl=êó¬*O at NKÞt8uÀ;Gjëÿhït^X|ðßRú®^ú6k;
-]:¤;Á®8aïž
+xµ\Ë3¹¿Ï_áó'zw7Ã<ÜÜ6È!äì.,Ù@¾ËþûQéY%Ôö|³4c·º$ÕóWUjgyúýé'q:ÿ¯Ê_
+®ß~:ýýÓÃMøûöËÓëÇTây9-bó×þ´/§íôñóE¨ëǯO·§Û´õ{Ò?ñqWyqû¢®g©.J\íż\ÏêbÌÕ\ºêÑþ¢Þü
+¤ü=~r*I÷"¡@3
+_øAoZánêZØ´Dâ½'`ÒºéLh/dø²xUnÀdiSiÝ·ñ=õÊ{w·òmèáälÅú¼2rçgá6÷¬Í© ë,»Æ^|&òÜqñ»ªf|2;&ê,É%K4ñÏTIKÓ¸HVzå²HáeýRGë7v<~ êòùHÍXi^tÝÉ,õdÍß Da0"|Q·j]Ö\ÑÚs2\f×%¿*¯1TòÇvU~ouç¹Ùyr:|¿Ç¸
§DëOæhűAG·ë8æÜ.z`ævCÖS÷ìÖ0H¹½q8 øÐØY,¦8éøÍ
+¹Ì®ÄõL8quÄùßÜNXü{µu?
+Ê
}Ū@¼tù
+Þv!Rqbãé:Ø ºX
iËDÓý×oOÂ{¾ßÓ¿þùÉ'.Ò3í·]âÿ9ýc¬Ú6º´b·XçiÙÕd3'©£(lf½] Ú(/æýªâGÏÆtñ,ö
[ÄUÇÞS)à<DâüCíRÞÓg1Á<©î³Údc$pé p]Ccö8þÙ½¨Æ¥Ú G
+Tc¶ê ÔÕ-5EçE{9·°.NêÒfö¸ Sø±qVETË%0Bv'Õ¡ÕdÑUzD+ÕI [
+h\¼ùÿÁÆE¸~G2·¦&÷j¡Ú
W
+uá
+[îù¢Àd¸Ü`Ga[+\Þó1öëB§)
ÄŦ²AÓjdÝ:HÝk>01Ê`
+¬lËkÁn#-]
+-ìV7¡ÇCº·3Å[\GS\@÷?Ü£ÌÁºÛù'À
+úůö°eªDY^Ùx-ß
+ªM3·PQ" ë!I`pØí
+[9å!ùm&«¹UßÙLÎ9§ï¡Á}µ<ÍlybìJÌÆD»C4Sà<[ZJyÓÔÎ(¬ß*d xÈôÔ§4ùÊÀ`wÉ7MÈ3çT@¡"½qõG£yz#Ôá¨ä=)«_C7z.~1ù»1b0Ýë@=¼¥Z>´%&ØælñF¢Å¯c[¨u*Éh6Iß2öK5K¼Òÿµ
+ÞX^3ln²ý´ã*Í0h%d0ÇÒ´,à¶ny¤ò×(N1ðø²ãÜ×~1<¬S4ªÔ.Òz$µ&Ïm±A ó,ªE9g/SB¿Òΰ
+à4cE[qh½wÀÚrïUx,ÜvD¿¹&R}oõÙ$¯ÖmîÆxÛD. ³È2Ñ×R#sÜÎáW4<òiíÊÐ{á
+¬£.nMÀä¦zÿÖÚ3<ðiÁõü»ÓW4Êdæ:}9,lh#éã c¤×ä/î
+äG¼\*
ÚÇ^-¿)y1µq=ƬÍûe¥Cz+eÕÊ'µ|Ý[v}Ѹ>c(I63)G·5²õ÷ûNUSýW³¡¶D#2ijà¤öB³çj£Cí±^{X¦j }ºD
´ñÆäºP
+ܧm3IV«lŰ¹
+&+2H~§ÈI«üPØì}¨k_i~¨ÔzèXúSÌdç£N(¼²*S!3(¬@AÜÎùËÜäë$d¹Aâ
+îA1]ÁÊ®Cè(¸¤PI5°EùLѶ
d77oo(Ĥ-!05ºþ¬I³®]d&¬XX½:ÔD·v¥mä}¥2ò>2|¥Ôfù÷»d£4nnß8ú#tsÍÔ«PÖapw®µ¢4ßH¶Õ£+ÊU:KÕ÷éS;ôÌù¼<ÖJò 69jNL:«jVÙ¼gí7~¨ÕÖtX¨K»tÄôB®MÔõ._/Ó*9èÒ¡,ÀȬ×âJ
+ºZðýo¥$ïvÆ·ïDgsê2ZÇ}~Úhd_Ïö1ðô$¶`k¼PÅ;T2î+O]¦>9ÜÈô³)`Ü2½åãd
+u-ïÎ
+z¡6º¶ñCán_¼×Q-À×TY}?¦5¢$$«íÆdNýÆÐ=TDÕ¬}ÆÐ ÷µ²¦áJÇÄke$a.1Òx%g«O·¤ieò®"ç¤
+Á´õT¦ÔÓTãúüËòò©:Æ'ÝsdzÜ%Ò+ at w a+ý84éÜZÐç&#U[J£ÂMÜ|GRx||¡DõD[idÞ©R¯;F+Ì©ÌðÓJ7Ôá{h/Ùã;ljGëPzÌiZ*$?½kWF*ptÆÎÜ@¸
+ÜKê«8|L¬ÒBR¥Cî´@z%òÇDõKwÕk¾aÔÐg(8³ÈÌtTAmº»åªÍòy÷V-â+rqdXP¡n<¤>$w=ë?
+¸ºvѶz§Ü²Gä©'ó&|S¨RxlNU¬e\ÿÈäÈAu~¡'2
+(ãN©·§^ΨäIÙ¥Åí)+=9d¾gJÉ©ÏËÔÜ鹫Ê#'¯´9yú°%Û ÖÜt¿LéIpßÃGjW?vlLp+ëO»ßt+h¡#~A}ÒYJòPß mUEÜùoÒàkm7¡ÜÝ{%\Å}Z4« y_V7,:Úa,Rbpl~I%m%ýa»E«ÀOpîH:Ü«8þT9?8YNº{+ÅøÑ©|¬ê H³[¼^ìÖSkú¨4¤Q^HB_?'y¨'qów4/9ìñ´BÒZbñøÐ[ûV\47g³&?Ú/fPá`ÚúgüÒnmåÊI<úÏÕÐâ ÎB¦ONÍàºWHÂìè<0¶¶Ç[pÈÝæÒf¹uý¾Öa!ÈÖ1ÈüÝD··1ñyiÇç4ôµ°®L
+ÇÛØË¥wÝ
+¿Ó²)±wç"w¹çÇè&vÞÅZøë¼ã#G~å& Ò×pÊ[ÓHr¿e2"ìDÒÞo1õ&Ök}ÚÓÛüQ¢½®Å«?q>Ô±wAÇ͵@kÂMðƪIò9,
+
+Çî¢=yÜýâ½ oüAÐîî)r4¯d´=KVK¨Qw¥Ç}ñÑá[y7^ÕJRÝZìO¹ÇÖ¢~«»4.¡j1µ|¶½ùôkx>/u0±:ñͦüúÅ#?Tûá
+·â©Qô ©P¹XØJÄ&2Âܦù}9º2,=
+¯þ
+·¬ö¼Æ·Â-åüßþæÖ§ÿ÷â±¹
endstream
endobj
83 0 obj
-4008
+3519
endobj
85 0 obj
<</Length 86 0 R/Filter/FlateDecode>>
stream
-xÅ[I«$¹¾÷¯¨ó@=+´ÚòàÛÀß<cðÁà¾øï;BkHʪzóÀÓLvVfJ=¾©Åþûã?q8
-¼µ ñê]þ~øÛ/Çôçç?\?VþàDøpÏþ²¸ÀáóßNv±ö|yâlNNúd½
-ô·Søèͱ¼rÁ kðq~+úõ÷Ï¿þx|þøuXZ
-ÿaøÒ pí¡
¼4B?ÿµ9Ü~x¥<à-9ÎF² óË3¸|<Yâ©Ü§öA¼*3¦w<jq2þ}OÓZIJ!B <ÎÇKOW12ô
HªÄm¦éÆVHôÇkwº¡èªjÄ.yÙé%NÏnQ®âe¦/ð!7N£·UËããÒ¦{$»ãG2
-B³Êåñ7Σ=ÞãwpÒMó.I*V¨J¿Í%";¥cÕÙÅiÐÝòlIJL]ËøPº:M}$z¾6oÝ:b"J<ñsIB$¤bªtä$D¢ãÌÆQBÖÉ,'8«éárH§8£55)24yHþ ¨åg÷¨Ðì.{G$ú¦YtäE6V5Sc7szçj$8ÍV
R
-4ÝÞ9KSv¢hFõ+yâ~_}FrÕï±Eâ²Oq&âKÅx4M¢íÊ2XRh%%¥1õ¤{¨nÌ£º5$aT
-hQ>Ì{ü³¬DW¢O"&YÀòb=ÆÍsÙ¦e¤TƧ4ʲMø^z'ûáC
-¢÷æ³¾ì#ÂB}[±*;¹àvZ,;qÓ$u¨ u¼äi¢FÒ´ô(ÁµwL:Z `¯8\ÇJ#¼È+Þ£
-¥Â«DE*R©¼J+_hXð"à¯Nõâ"®òwfÄ(ç{b
-ùº9lÒÁEã>ý×
-ò² ÞÅ
-0ÌÖz¶þÛRÌr°¢Ä©2fòx@ª@ߢ$6ö-)bN·[+.Béù½øúºÁ¼68¾FýÝæU
ÃȺ.V
-3
-̽@ Û¨ðv¥7+as?8Éjä&dkp$ü5Ö_6s¼~!X$3gcgÎú×0>ÜÞ¡«võU*ÙØF¥C*u
-mB×*¬èFÓÒr7·hëÊ Â"§Ídd9è2ÀÖºF«GÓ<r-
-4mX.÷2~S²ß¢éu|£9UKBýçPæ¹NL _söÁèØàé¹å|³Iì0I¨öÛÙc
_
ÚôåøNC+ì½r§¡6 Τdì
-Î
-ô~¤Z3U at 5ÿ®¿Íð÷ËÆz£°Lqav=®:bêRvVR86/l_IMKCQs-ݧV¨Uéø5},¥Îµj¿uL]KõãFqðÌ¢ÀN@³§söu5ð ÙBRÔ
-=WÙÄ1á.RÙ
-ÿZÕÎ׬{µª°î]¹©Z|U6/c³d¸Ù±ºVeçµ¥ªiÍã óJÇúw¬|¿íÑ íixj®JxYø-IUÞΡÄ
-æscÃKrEm0üÌ[¹(5XxÚÊ]é$ös×sí¸¯¢`kuA2eþJ }îÜgs÷¯øô³FgïÙOAEÃëQÄF/Pÿ_RºÏýÝxÕ.n`ÝéqÞÒ
-Þ.üÔÙÖÍ£0MgJ§º²ÃÜÈÆÆ'ï(^ðØ/`¯|VùçA;ÿ/WýÃ[#¢i«j·Ì@ÂAa9èF#Ø
-óøUûã·Òm0Ò'Rk."Xgþµ"T]ûbeC8îȩͥ
-cÜVgs?Á;¦lÊÚ^NÁ~° ¿kZ°aÍØ¥'Þ÷Ô¤æÉ¶(vº§íA±æÉT
-×´ Ú¼qv§[XÚ;ÚÉ[kdí
-]¾Óçݬã¿2ëÖ¥ªÎÊú
-.°ö¦#0KÎÉ{Ü%·&]å¨ÁÚ5: k9^cFa\yÏ\6ÓêsÇOU9tøm
-mKàZë°ô@×îR}«5v4ðÍ!fWÏvq
-=óí?Ê
->C{DGðÞWÄK¥n*RèùZë=ËRú~êØçÐÙ$6+05
-4mc2qÙK¡PôÔ¥ó2H2ú=¥GpGá*æ71Ü)¿Æø9<èÄOâì|~@@ '§Éhdk|A¢aáï»·3½´ ÌëDÊ/%¯¶µ{-Z6ëvÚH Íø£U¼ç_
-Kiã?BÓWsC>Ѥw¤kÂ\©¯²MԼѰÆ.iÇÆ_zoI6êþÄH_oþÖ¿{|(íÜWzÝoy<kKNü»§¬¶9ϱOWWF7Ønà ±V [µ²Ë÷M^Wü£¥Á2û*.xÅ;âÄ¥Uí-6ש9"§;mÚÙ=~ó±ê:R°èYúJGóJ
í&gÓ͵ÂnHFPâÛ7dCjÚ)Ç«¼«ØV¥y)xîûÿ×p[;XCl5ëjND_.]W/G=*¤¯g?jÆÖëÉïã'a)ºÈõÍ`øàúÚ3Þ(;8DzaÑ«õ[LÅ7J÷¶XÛÎS·ÆÝzÚø¬zjðöñØÐé{K¦¹íº6ì;ô£´gñ]ÓÎ
-c³)lE.øK÷®kpýD
-÷·8ßw¼e¬ÖÈMio0Çv©Ö'¢>´®Õ«?rØß@s>)Ô·Ï¢
-Òaèþ
ÖO)£§fºMàSSz]¼LÁYu"*ôâX¨v:t~^¶¦o
-ýðfìôå+'ó
-ªïØ=:$ecº
--uïnK¦ì³Xmqð:¼
WÇ»\yøJÍTnðÌ!lú{Ñ>-·r»QöO^%y7»;M[ïùÑáÝËnµÁªúBú'
-¹ûjûâ=éja©±kͨK\ãb9^È·®!}"$khè²ía͸߰Óתj,.¬¶ 3¨`ÀÀ®ÒóÍSm><þͬÞõÃGX-5ÐVD?_ê¦vY*û|;}±³O¾Ír_ÙÞyz(d;d¶à|vÔ^ý³ µÜÚµ«¬ó
-^ã:}E%%~u¥ÂòßXéþuâj=Ù_8ÊåY<ËǾ4vkå÷Æn®ÿ
-rÍ~uªíõò
-/±w
É·VBæjE£IÞ@>¨ç%nÊá·
-5qÁ¥nñ¹)D¸½@¿´íèÜêØ¹G{½ÌF
-ÃNB⺹s¼W£*´,& ¾ôÚ©£Ð$¢Ë#ÌñZ$P§èJnLNg9Ç kÄøz°®÷×3f?tB`=Ù«£'UÔå ÿã«¿þø%¿Rº¶± ¢QéÕ¯ÿ̳£]
+xÍ[I«#9¾¿_ás=Úcð³¹5<CÓ·^`]þû¡-Zryõ
+ºre¦SR("ñÅbvá§¿ßþ:±ÓÁ¥á>ÃÏo¿þóÓéþKüûíÏ·÷7ÎÄÅ,sðùñÛé_³>q~úøã«Ñ·3¿ÚɪÛY¥;q;Ë«ywæq;qì¦Ó7á-Fî$¼®aÈ+Nç'×®áíÙ¼ngÓ5Þ#Þù×ãõ³ ÇÏW4Ù¸y9¬æâôðX,oiOÂ]ùqWêjuXÊ@y¸Uë¯â>¦ðNü6·&LYD¸\^Pþ6¤ÄyíÍOJÿþ´Ð[Vé¸jyãW%n¿~üûíõñös%sͧÄqÿöÞ:b¹ZGÂÖdÁKt ðÑÌÖ%Ö /WPÐD{©/Q
+sùL<êâíù·
+
+ {?s)mY4ã= ç½¾
+¦%Ê5þ©á"Eêy<Õu ç ltm°©H¤AHT[Ç#ÊF3YÈ
¶Ò¶)êÉ>=ù<Î|¿ÃåB(`lA9ÐÍJYj¬x;X6P]+,Ëpx¦áJÀÿO¼kÌ/EîUBÐ%3³åìøS¯° ô,3$+Jms2¿#U¼+ÕMeUSëù<íÙ`?ûÜÜ)yQåäß%*cü¨§áVÕSþVáàáFbÔRÈuY"^[y'Û¼(71³_$þÉüp
+ÁòîN¼>ÀÈ$C%«GRÉVUh±À<RÀ5ÏÑÊëѼoe§zT {å(Á4µ»ÛOÈ5ò|¹©¸þ¾gÜ%Ú¹ÂìÀ÷ÎØ}¼Ó(îÞ)7ÁXòá§UõS1 'ðh*òAµcð¨}G½Õ÷òHk-`\XË!Ô9Æ3c8γvìuVÆÖsmeÇúë®ËÌ;×À¡¯a͹Õ@¬è|®z+-ÌÅÕ¨åê&àQÚäß\¿X´ÓË ,%¡ÚuàÝ)Ãt
+[AÙ ¡ðÑF/,I¤=ËàËJ$çe8\/#Úó)Â^Ì}ÎA÷±
+PS³CçsËXm¬Â]®ý¦¶0VëJ:#`î
¥ÏWëÔ®Ìð£°XeA_ÓFt1[Æ,ìL$ºÈS'§7h.v¯ó²¯Q»Fz
+ÎZ¬Æv¬Ób? «»Äå¥rÂ0ìÃu»ýc,móÖ)ªÈE¬híS§Ü¯±¡£ësÂðÙKéçJ¢R@û]-À1@ÊÃ8{Ç\\ZТ^7·T«"Eæ{r¸ñ]:÷)«cSãTÉWÂFÓÙ禮MªýöX®Q³*Ò*ßHÊl÷Y,}Pá
+3©>(ügNK§yö}E!;9:'Ú;0Kæ;$´ÁèÝ_Í!eægûïB`è{µJ-f4¼èȶº%ôf ÄçVâ(ºÐfÅn 8è|jóî«?gRqä1㺸*òÍRËqó\ä¥Ý¬ðM@ßÒCoWQÄ]<&dXigâ×{]²×Èêµ#ñÞ@Æþgøµ$á9±_TZM¾rTV6Õ9¡°jð9£}MASoPbPA at aÐôwïc^Û̶T °%ÈÕï«ëýSbêÄù¦ª|Ï¢HC»ÈèlÇ.·#b¾°hAZ·ö·
bÆ8KD³ÚÖ&¯¢GSxl&Àrc˸Ò0ÓOŤüùdi'JL"<ð6_~Ò}¦AÁ7+uÆýíJѸW«|ðêÆïÛºëæbäpÉ}¢}HùsǹèÛ<:c÷qÑ·yôVÞ׿ñéuV];£Af»âͰ´"D¤`:´òàxÛ¾ B§rE÷÷JcGqeájÖL=01§ ÅGÃ&Ø9ÄåkÜ«c×$¾ßpØBÉ!|äá¹Eæ·èfâmzìöªygìêSãÖ~º¯33vêrªwOw7¦é[ïnâ²ý
6bú¬ac¦Ö£çפ
+$Ö*×ÚªÒ°S-´&Å^+i¾¦<90Âí³ôJ>XmmpêzEƪ1ýer^g%Xmmá.DÖé¹Ñ$¦dáfÈÙXýPh=ÌEé7zÚ_=3íÑìÆ¯Ã³õ#z\¼nl¦ü|Í~4nªsU)ÿÆ~²|êòécPg_·UW.½¨Nv²Ñµ>ñh¨Óc&íðÎuc$ëï+¯ä{>Þ8`$ÊWÔ"&=^[)ÒÒ×Õ>Jh·¸q¼ÄÖQì×B5¤4M-Ûý_~¦V´"C²Vè2D|+HA&O ãØÇÄ
+¤Ë$&§
+ð6à´´L~Mç$óéPön¿ - ðÚzgO;q«G¡Z¹dX:ŧªÿ·ßOüôöóéÿ¾Ý
endstream
endobj
86 0 obj
-3495
+2884
endobj
88 0 obj
<</Length 89 0 R/Filter/FlateDecode>>
stream
-xXKã6¾Ï¯ðy¤"%Y2øÐÛz(zëN
-t/ýû%E=èW²(ºu2²Hññ}$5æÝ?w¦;úÚÒ3üüþûåK÷¿<»!KÌÙò¿îûÓó`8Ç.<Ûîù{÷Ó}7tÏÏÆg¼éÇççÇ×tÿdYg\Èb}Å ¯$}3yàôMoLô9íL´Nÿï¢ÓÐÜàfú¼»-ú]«# ¹,ÀÕÖ³;°:¬í´3ÌäGa0Ñ 8À:já<üǨjYe5ÖR¤s'
-£·¥EZäiàJ:µ·a'IøèÛ篣£èÛxòcÇpqÃøÛóç]-Ï~Wq£çé~<áÅLü¤Ó' ¼Gzå3ýÅøt¦ìØ´àîIMÏǬ0
-SÑ¢!Ǭ³åzï°Z×S at UX`xÅ
-ôãL Ê(ÄPZcõûüÆ1ù;.º¥ú5Î×DØ øañzÅ,ÉvÌ7T Sà¿â¤-IH<ýBnªù'¤À3¹4¶\H6SEÒú5V²ÛÒFÂ[Kf¡<H¬Ûí ÚgÁ«ÀSÉݰSýUйV`·½W¸V°´G8sà9$½K«¸ð/ Eªù`¯w:Y¯«óÔ3½
-8«eÓQV}Oè>çÖ½leNlVÖÆÛl*&ÅuWÎ订[ïq7xßæä-ê¼£+Ð
-uTLÖÈÝ^²öc4?HG+T;å1.wý¡ýf)®¯/¥¯,2P"1lRQx7å{»=îZ*·õ}Ú@+ïÒeNZ
!µOrmSø¼4÷¥8BWk~ºnÖQz>ôPi[%bsÞªïw6ûB.}ôæú@ØÑª¯î°L²¤ºÓ$Ex+¯j\ì_
-K%äûô
-(øh¦Ta'}ÍRCQ½·v7«0¦*Û9=·
-³"ðxBjú.rm
3g"ÖÉ«°YÔÄV
-{l¢\ÆëÅÃÊdÎêkÅV^9Ïp¦;ÀaT0ºç«[øE}p4P:,¼±]ÌÃxêS÷g at NseìpfÙØ#åw³ð§ú¿cL,c¦d²~Fæk<¦BO~«Yåªs!v½å9ðð¾ë>¿||íþ}Q
+x½[Ië6¾÷¯ð9=Ü)n/¹h`AnY9wÉß*nªâ"ÙýFôlI$kùj%-Nòð÷Û_q8
+øè¤«xýöûá??þâß·?ß>>ߤX^?|þvø×ä<|þñËÙÜ/æìÞ\ð¯½åY¿_~ýü÷Ûýóígä$ñ0,3iur¹ÎJ\>ÿ[ѵµ=áêÖ\ÔÙ-i]´ggÒ7ç.G}v?{ë®HR)u~ÑÜ.GIö?§kâ<>Q_¶çÄ^Ä÷ëZ!ÞÃò¤ïøÙ¨>HÆêÌ]àFZÕ\nu©L¸$9úK£wù_
¨ky¹Pl×åWt$>±pÏ÷Ozc)ï$FáLÊ;
+ ?e$BL¡Éãh¦k¢4+SxMÍ
+ÜI5J®ìVÑ]"$&¨²} Ì<ò«ßßãt
+î§gÝGN~ Ä©|ï¶Â}EJ:AHISV·R ^)¦ëGæÇ¥QVÈD&X¤©ªnåÞµa"°î3
+JëÀP'4"R'£¿]"("Ûù|ÁÅ_tz
+y®
+wgè|¸;ÇwEO1´ü>( I0©&¬FÇMCÇ ¿ÑÆááQÚ¬§ô
µD`¶ Ý9hõB 5» Sàu]ôïñN§æ1BÇÞ-³ØÉm]©SÚøu¢.cÅP]¶¬mF@Kà
+J¬cð÷QÂ0îXþr £ I+Û'e@¾`M*PCî-ëau3«6Äê»
+wì
+ºc!AeQøæ UqÇRV|Ôù¾)b5ó¡!¡ r>x/³ä>x×kú½é²í¢J´è´A¶ÂcºOÞyu©ô¹/>9u ¶
+/_@æe~¢ÁaM5а°C!çlô_ÃH~ìr¢ÄòÏO$2Dn<§ÄX ÄÊËâ¬!NÑì¸äL¦Ñr+?¾£HÔm3Â/ñ\Mð\þ»ï«ê
&<õît¤G¨YD²obõÕà¤sF1¨eïST3aH+´
+î
+Øîj
^Á'düWÆúÅiIToß|³ez-I)#Ê~¢½ eírÇ¢ñZ:DÉß÷\®-ññ».¤/9&/¯X¢Ålmã}aôÏ9VËR¶+5y{ôÒ
ô-4.rb*.o`ßjæ*Í×YË7¸~ìåkÄÚ© jÞBìYN¥t§sËñ)ô¤îZ\9IµÁÞ3eÇFû¤)wèÌß=«{HÍ)wUói^ÝýÍTLZÉ¡¨jY¢ö騣VS#r8
+ÇHÉëLø[EÀ¨íG"4
+9u5ÔÌÑ1Ðô.6ê³ÔFJ
+#åS¿æoäâ'%Pf9ª¨#4µ§LårhñÎÚk´»325Þ;n,¡f~ÌktèwÁbÚr
+Åm
+÷¶3¼äEãöÜMãvEÜ8Gaî`0ÕO×øzó
+ß
+ûnÁJùP^#çaZbåF.LêwúþÉEhu񿧼ÛÂÌs«B¤ug41^öc¹xg+Ì£ÓT%Á³õÿ¤%±(4ùx;6q
+OËÕbËz0ö9¹ZÑs´²©ÊØN®Ä××
+Ø-QêÓ5©8Þ÷F{òVSfqvÌ·¹¨ÕfÁíû°ÖÜ»{®ÖxÌXN´¢o3y:lÒê%lʳݶwúAêÇ9!Oà¯ÔFa3 C¿
+ÈîVðÌÄìîk¼ïkwO
'8ªV×.;Á»iÓb.v4¶u}ñ½jWμ®×~l'¯Î]oH;<
+ìêg$ê#ªû°ò}Rt ^j?éÃ=RgÙA)ªÀ)ê¶S÷&<GåU·K¹XN£qÑ41îæ|µ
+î\;ÅLSÀõ{ó#íyvægïÕæ&eÌTA¿Ð,ÉW·ØI,
+2v¢eê³âÕö¶)³S0^ÝF¡µÖ¡_bT ?Sl·©cJ䏿ü5ÌæàzCWÝ
Àì4¸AÂê,.O_²ói6d *Ô£;EÒ®í}Ô=TÖåõéôT»»lØpï³m
îdÍUSãý.n_dãY´Ê+j¿ñÜ6Äyì=·Ý
+ºÒ³ÏãwVcÖnvu© ॥ðCÒXe_`t"Æz¶ÿA[#ùø û_p§ls¡;µY:ª¯ £³ êôf£:¬]Z{¤½wµ*BI+W¥ñ©Âqí¥ð·ïóÄâ© åE];DAÑcQ¼K}õí["!É©aNnNQÉOvgÕBûÙëAÄÎlåÄçê'[k
+ß=uO§;dsCçH÷ñúì;²Ï?h2Ý ÿ(ÆÒÏã¼ÌÏÉ9Õ{'¸+µFãâÅêDbmù
+вÄ5C´ ókñ¾ø%Ù¼6578ÍESG¡%,A`g¿ý~øã§ø2! I
+Ò£ÿÛ÷
endstream
endobj
89 0 obj
-1433
+2841
endobj
91 0 obj
<</Length 92 0 R/Filter/FlateDecode>>
stream
-x\K#¹
-¾Ï¯ðyvô*
-0´_Üh ·ìÈ!@ö¿¤(êU¶g¸ÝUER:êÃÿ¾ý÷ *~õÚÄÏuKü~øÛ÷þ©cXÔíÏ?þõMüâÐÅÑÇ-ÍùñÈ¥qÄåë³æè«Jï¿þyøËCÛ¯?)}þ0'eÎú¤ìùÃ;ǯ|õéëßÙ
-ç央ç|ýõÛýëÛoÍ&®n~ÑÇ×0ëqÇ9®pu®fQ7ü¦üt at võz#ཀྵý°'?a J`È@"ôõïÑì1D'Ækµ~Veô=ùVI&a²¾QºËºEe Z1©^Rܯ;iwRðÕâ[uö'7ª5Ñîd/ç¤oOÆ'Ús_®D,±ÉßSð'«`êí¬Ó\ò¢Õ:VH2fÒ[|fפ3sÒiLÅÄ/þ«C/þè˲:ôvÐ&c [&¸7s¢¯yueëa±[\¨/¸y|¼Ùtí²Ó#Ö\fËÓÏ-J`³Ñ¸zZI6cÜiçÅV·Iå>)CgÑñ-¾+}5ÁwÙ§kÞÄó%Ó
Çw"HHÈ<K¿O#6AÚ
-¿ÂmS²éc#
û$^WÚ
-}^`¶õ`¸¾ ÍK|ë@[DÞò:áÅfm|ÇûÃýÂþ3Cë)˾£Ãá^ÞejòOñZ³m«ø,"cÛHÌf6n½Â½Dk¾FISÔÌbÁ¥ï5U#ª
½¼Êrch²µ»XNBÄWm_Î)e°èB#6(ö¯o¢Ùòoí®ae³ôÒ¦QGq ÏBYI#<E^rôiZï>Ïzí%)iRÅÄQÙhA¯ZøH_,
-ñÓØ<ù: uIÃ%ì2|D,e²+ièéO®É#UúÜQÃ
-èPå]hZkåê<pd®gvÂR)5±Òj}ô¡x8ͬè[ÂÙ"Áãg¡X_»íiñjß)O±µ>X^zµ+¶zW'óoê³êE¦nK[bZ6è@©©N¸V»Å®+ÖªÊ4¨Ù>ñÇu³k®KÈßèÈÍVµ×°¼ç
-,e$z ú¼Ô}×ò ÿåÆ4mvôú|ª¥âgcý%ïûÂsNºSz²7/ú·X
-
-rX5ò>î´¦°I¢C ÑF¾«í>ª
->¡ê3 Ð&ÝdHûø
-WßÚC«FS¼´vgO!z_½ÁÂÐåqE¼JVÂáâv&6«kC¹Wm½íEÛã;`á^}»1Øúm|},2µB¸ðÓ?åÄ®T]øÚ#ÏyK¸í¾ºÍBiæ>8b
íð¶Êu³&ÛGUmçÜcɾÕÇ3zä¸d/ðp4Zj, ºnPñÙCÎYùIP
-÷Þf¤ýä
-
-ÉJÎ%µHÕKÃuö\Öf
-àºvªèJ×9ôÛX]W[ç,úμèìkM>®^|ddIµ×¤ì(-u
-ÿ¦¡H qÃW1WV®q»ê%Oqå\pSn6ìMâöÐØ^Ì'ªé³
-"¾h
-4
-úbøn¯PXÛdZdl´îêº{ëêÉ.ÖÛÊDFQÓ14U±IofUþKuIá¨êL5Ùëô¬EGxÕöÜjoR$v×"ª¨Uª¸*s·5øÚ»5ò¦óÍC¥$w:6änåkf·øaZºg`Ìø6ð+?ûä]ê!Ï
à»3W¼íFµâ
L'ø»Ô\Y&
-{¢`·u©È,³õ~R»yÑÿ
:¥÷Ü9^e9#ýDÈ¢Iû-pfЫzOUoQVr3~ÊCãÊ©^׸HøTÜmnHjTÃúä©Í ö$ël±²Ê|;
-UNÓçElCxWͳÆ_Qôó
-h¹ÄëÒµÜêÎÇüÌ ©l]Téy8·w*Zf¦¡ÆGjãú¦Ê=¡ñô{}ÙÞÙwäCKo¨]·ûr+ÛÈSnrk[|Ò%ª#è¶lé"Zã¬kÒ·º+qÕ'[EiTÕǨ»gfpÝÏòáPÉË=U#®ä¹
OQÜ|.ûmmûyËM67e#UΫîý ¸ûû5mù>»¨Ã
ækðÛW§Ç÷Qu»ûÉáQQH±íi9Âɳ¯\ûëå÷ÊÎfܸ;X#wv³SÍtM8.ÀÇU`Æ0çbÒ{)³âì41_ÎåR{
XS¡M3¾l¾ DJ
©-±[ñ,Sy0e:#ȱt«e?E`ä)ªFþgÕ=ï?{ÏJNÙiØ»ôçdz¡
-a3ÙOÌ©Åð5ïfué/±|ðÔU ¤ælOðàäW¿¥+¯6°nÐQ9m¶4&Â'¾ÏÓä8Ò#YoÅØ ÁÄsMÞú>`ö%âH=2íïHÙß
-å·©1«â$[&Ðm
-ùe7T¦3ÇV¯±¤-ó$ù!n«/C!}5÷,¿´xä=¼@ª[TÜ2@2b 0ÎjäGDN®yj¢Û[¨4VTÒú#Í/=x4o¥15×ë/Mß5_ÃïÙ0mb±H6÷ÁS5"ÏFä9þ²Yö×üùØuïh°ø;Ê;ô.
V¹'ñFú²)ÆÀº VÂþ ñH,?»sä}¼ä
-£2O!áúH®GgC»î}"i»(É_[4QÑ$%{ÕÚä¯rÃÍrï%6L{.bßñ}{(ÿ{RK!)³Ë"q§Rµç²Sñ4yöçóéoÌ.s ±ç慨æ
JM¨ÆªMüõ7Ïr!tYSkÜ6r¯ðëøñÊí`eß´Vñ=¾ûíðϨ
+x[I«ëÊÞ_¡õ;=K
+Æp{ÝYìòn @Þ&?ÕsUwµ$_tlI=U}õÕÐmqËÿÞþ»å"à£
+®«×?~_þöcùϸnVøméÿÿñ¯7±8ïáU«Ô¢ÄÕ6?Äî¼ññýf´^V¡¯zùþçò§^ä¶|ÿüûM<ïuBÊ»¼I.:Þ1ñj¥»_ìMúû?¾ÿúöø~ûëW)y]ga>©gµh{6jµÎ»Og¿_ôÍ=ÜúRâ_$|C(aíªáÅðx2¬ìªAB_ßÿæZèÍA
+WÒÂjgWµ:0|Òöf9ÚU\mj.)Òª>AD° ím/æ¶°>ºÇ]ÊüyUwßPð2LÖj÷ËvsOè"µóá®sí£½»Ðö"CcwSQ;VÝUnekÓaÃ8Y&réÊ2,è:@óM
ã»ÐÃDòÒº«[,#GEª"ØPÐs
+=¦é©¸½×»P
+`Åÿ1újÞæ ÆE³Ç¯#ëø_ÆñEuð]ÛmªI_¶ÜÚÚMÛz4«pÏ$÷oʤÚà¬íÖîâ´TmhG}ÁûªL`½ò16!Ã~5AæéÇkzßQÏ"½ZßòÂm^xZOË~ºC&5³Æ¾`ÒWÈÏ+~¦5çor¦aã-hê%
+'JSàß4|B02Ø~^gØ¥(â;ZX©¨Z-
!z¯¨A°ÊM_P"F QUR§ooïïI¯Ey>XËy
+ïTQ¯`KdD< ²p«8ÕjämÐÔ~NEÏA×3$eàXÁC³lµ½bxa±4ÊZ æ»,Ë\m³GݲÜ:9>BÆ9Ì AÖ¦1¾2tp"÷å~BfÊ{îÊ"EÍ©:bFdzis/)¸üÌæfh[ðîÐb¶|´ª6Ѧ®,P¼p¼}EÍÛãÔ|í6bÎÐíèN©ü^d¿tgXôWvêØ7/ö+di<õðm>5-ˤØ1Y£Ó<ÛÊA¦S²Q`8Ï:ç%mîËÖ§dA
zVU\ý6üêg6½5¿J"`Û
I¿ìþfÂdÕ^æ´ÎúeqÑí$;C¥9ð¯²è(ü9O¦ô=4¡äj.´ï·9_x«nDqLHG|TÝ!UÒ³
P*v¯ÄF^ð?»9Ñ+ä°}õ³9©séßé,híÓ§GàÈ'qw ¨È²l¨}öyÀâÄÁï(3óu³wø8ºXîc}>HVCò:Õì°(¼²ÑÀÈ}ö
bF¬SCqV<<éó:Þ<|ÆÜl_ÝB5C´°Èy2WÝÙQ©n$1ó D¶©2QânfûC++Tɵ8L§¹ÕVý
+Å#ïf½FáÒº
+N¤¨A"ÄW® Ò|fIOHÄëóÒåȤ§í1ñÝ®×ÔF
+^¹¢â²²|ù}"1s×§¦>ÏÃR2R¹*î,ËáRÌP{.Ôà|æÿËZ Úðjòe9;«u½A}«¸%XÅþZ`PqÒûnà}G¤ÚFïkDrLBÄjÉ%.bfüÊÍgiÑch©cÒÆc5DG¯MìñÓàö$viF®ß±ÇUû!ɪD~Hwj?Â0öQt ²z´P2mÆód$?a$\J#¥7/åAê6ÂâHÒ^^ŲQ[ó"íóhµqÊÉí¢µLæcª¹NIv[WéQÇ¡
+3 at z¨ë±g´Å5=`¥äúܱ%µÎ)·Ö~ú8¸Æ Ì_RZçðÓÍ=Pi·{Ñ£ZY
+b×¼8ÌBßK¨²<Ô½*£è5\Sáâ¤j®¹ü²7§êõÊèõ
+%¹D]x·*K©Ùø2ÜXß)ÂñÝåE÷ NN*>ãÞ)õbbÄ5Ua¬ÐM¨LÙ*¥¨HÙ2o;B`#Yò³[+à=-à.¶Í?c³ñn,gvZøN¢Öb^)&2h:;[zà ·qK-r41¢ps*.N4Lµ©ã5\% &%Ë´bâ&Á¢OçìÂáïáL]¸Èp ÷äWx¾K|¾J×{[}å«Þ3äA¼¤¶<H£=ËâSñU_u¾¼×æºo³úªÝÇþ>Âe-i}<ð²ruÜm¾g¾·1(9D<(ÂöØ
êADOpÜ8ú¤Ù@`j>|;J§QD
+{¨9$ÉÄ0ȹ9dûþcÐú>J¤ßÊé౸ãPíÐ×@3ÅL2é
+%ç_!R>Lh¥Æ1÷«[ßLùðd¦Ò!Ué*[}%¥z±Íeê.Bí|Ôé63lÓ·{® y$
+Üö©cÁmóK!ºý´~{£Õ`Í
°}¶.îc<]O¨Çh6T ò,¢Yÿ
£&è/.4WvÙÆý¸x¸ 7lw1ùñäÈ ®³O_:³Æ§1FÃ6(N§[+X£¥NÓ¹p2mÄÅQUTm<Ë0ì`AUúg¯þ¨$ÍHÂNªîl¿5!Æ8îð$SÉMàñ9Ëx$*T¸ %õ¿ß5<H~·&ÂTEE# $jåÙÖYBÉ
+ÜyÔS5س9£øÿD
E4{¼$¯=8³ÕéG;7£ úȾÕcAdÙ¥5]ã[¹Q¡<ð.®zõìÅ'"é:Q¾ràd<^«¥åÄÎI̼(ÿ÷Îí»Q};dõ
+A%ÿ´¼ËMb+ÄÌܧ$?c.ì½?;U#Æ3®Û<¡¡þ
+ië%ÿºV5 ~
+YC9
+ÁëÞDº½ðûO1ýñ«4Áô}Ƴ_%ÊÌecúÈ"}ÄGúâãD®{9Çv,·Ü¼¶«LØó±.(
endstream
endobj
92 0 obj
-3595
+3043
endobj
94 0 obj
<</Length 95 0 R/Filter/FlateDecode>>
stream
-xµ[KÃF¾Ï¯ðya®~ªÁüÒ!·À@!·MöH.û÷·ú!©eUI%eÂ0ö¥úªú«g·muÓÿ>þ<©Ó§Â?=h|1=þõÛéçþÈÓÏ_ÿù¸}5çîT<Ó׿O?ôÝ)¾~¿(sýúïÇëëã§wsp@_.Á^?íÅwÞ]?.Z]Ýź«¾8u
Ó×O^ütÓwÖÿÞ®4åä+1=sýÔýéÎçZ@`á:HTi|SP½nuÄ Ã\¯&ãÇ,j~á¶9ËCkG«
-^2·1´]Z/÷¯ºåûªïѺ5 ¯f I>c4æM6}|
-¦¹ë¯_?R´]<[ÂI~Íõ>ú³~s}µ¨hÆÇ¾å
-Òc%¨p]cÀ?39ªºÉ²ò¡Â_ÙC¿Ø=sA¾Âd=%(oIÎ>Ó£C®
-ÌÕlvYmmÜÆ¡¯ÖQI7>ÂËú=[ùvZ^ÔÖaÁAÿ¦Ã:o³3
-í[¸X[A
-ã8&Ú;ÆÕ6 99g[J(LàC®ù[²E¼Qöl8q]lñæPï)Y©®§1¥®©ÄA¹7TÕ6DMi¹9G©æ\ìÇl\:lÓÅ>
-]«©uQ¤¹©"K c\iãVѬ¶Û-µL&X «µQÕ:Ð×|sÀwMÍÁµÎ´nî̯Ýojûëx}Èû~ê4côMqy¬È4k""§qQIì³FãÞióÝèìe£3íàÆ\åBrH.¸Fa{y«:cµçØ!F*ÞÌusZ`^cÆ%Í¢ª¾v9+MÃ-ÌcE{Ô±!Ád7Ï®1«sÇP#é¥ÆÍ³¸¯¹²ÙÍF®)T«Yg½$áMÑÚÌÄÆI@/½¾'ð>G̺È00sµ¶ ¢:´ºË2¨ºfµ3ä±¢4xs2|v
-¢³ÒE7ä&è¨D:<áÕÒ~Ö6(Ï6vÊÏÅ+¥¯îjTÞ0:Ëa²Ê« :¥ÁαÚ`0ÐêÍ
-m=»
-à´×AwæÉ Ð/ìñÛ
-_ÅȯãÕç;x-*¯_Ñãß8E¦XÕ/ø¿Å«¨ï~ ~u·K(Я-¢°æº¡O¬!g ¡æIÏÐãëFwQ¥Z֢ʴ¬#Fá#*Æ×IåÁ:oe`×½ggzê)Ê@äµ
nãÁ¿ ñò#P4±#skG*¬æxo©èjU'à6@CDû#1Aq;XÁìd@ô
-3è° GùQs¶Ùõ\ÏÙ³Û%£!ç"wÉò
-¥?<ð×:LQÙ¨Îþ;É¢
-gÝÐhqÔ|¡³ä% V@:öè²tRTÐ9H¹4ê¿PåC§á8¦ÉVEó2Vá® írO¹ËLÖeÝrÈÞJ´ûs¡ìqî)Èàþ¼H3Jå.ÏHé½d¥XMáKïr?y,½VOHE&/Ûvlì¤W±SÞ>ýJÖìä{i¢4m
-Ä
&BD%WòÕæß'»Ö¦Ý4¶ÌâÔeïÊXö¨E6Ýk±+!@´ç9%±8 ÜFKfüý
-
-jÚþr(àÝm9ÜFI0Y%Em£ÛhÎ 4Ò|RI*Zw|¢=ÉáFJ)ØÝH)ïo¤Æ{ѶáxS#n£³T²?#åöµQãÕö}-¨¦Ñ³ú¶æYO[³kG³?# [ÍÓ`1ß3oËû| yR0' µN¢ÉR|ÈKî#E+;æØyIÐUztìVçAêüF
³è9k½%à·AGVçÐUÙ@¼§{JgGS³%äC¥Dd>Tna4z»9¸Ô °öÌ(ùM]Ò 9òO2%:³9HZ*¤%ÁØÃpPÂÁiíL|`
-(:N×vk;''gµ1e.Å6±´2Ápù¨Îáì`C*B>üNSaÔæÔ §+ØC%ǹá
-#Î10EàäÀÜ1K½ì$[ÕF(z$¥.we
-tO±ÉGð¤e÷yÜgΦ
-jpPÙ{è(1'OsøJg&@Æéç*IniÛÆÄiÎõMã¦7¹+§æUJ¸ADï!×A%ÄsJ¦3ò.ÙêI 8i!å½aAuíèöWN¡$}Ô zp¸×Lä%¹0¥@$[`R.}üP@nÝ÷°#RÒåmk3aDD%å#kJr4^N³þ¡ªIoíë1¢vÿÉ
-"Àwq
-äÊ8i¤öÊ8)ÓÙ7ÒÐqdÕß8©<~6B±´°Ï¬Ó×iNîà:M©ÞßCèBíRßÑFKK Ë<ÝçòAoÖ0å¿J§@÷ÁåãMÒ¶csºgàÖÉN<¦¹!0wo`(nú ¢Ï¬¥TjàV1fN8,þþËEAúN·Òé.*}%^TþbL}Éáßê¢üÕ\Ð2ök
+xÕ\Ëoû6¾ç¯ð¹½|~öV À½µ»À
+ôwé¿_r/ICr4
+°¹:Ëü ³»!`Íä2Ö¥CÁz!
+þ¨KÌ#öaÿKDKÀD»s&äñ¢¿+QLâkQ+v¬I8ð} Ï*JzôcdÐÃd@l)K÷øÕH5G*}Y:Lˤ«#yV{3MæÊ£³4/è>ëº-·É1}¡¯±V'AÖ\ÖcU¦ÅÔNñ0Þ8¨o#D¿WHTÉJ½¢S®¬Iµf½Tn8(«õRòÃ0ÍaÔèQ×4?µ
+bíêõÆ^³Où8BUi,èy¿ÀDeÉ£.|çÐOÝÂUû®Í
Ü.Êyîµ£ÂØ\VeJÜÀ³(>n©y/î-YsÐü«ãÎ;zâ05°®©÷1£Ù¼Kê¸zûx¸AÎÕ«éÎQPÛb7J.Zû¸+ߨ8ݽ¦6µ*¥\yãQ:D®Ui¹¢T493½Ì¶êb¦ébÜ3EÄ"Õ5Qh;ô¢ê°8QÏ
+qÙÙóiËQd'¦ío5Iuȹ×RãÉø¤æäZ9
+Î<?d(&êê1,5)ªMEUüî<@N.P8mرÞU²ð)õoSEÖ*dÅ]bÜÜêz{"ݸ§odÍ0©xlcjÆõ%kîõÕ8Ñâ`^² ÈëÒFÔ©ºsNiY¯"1ÕÅÓe)ùs³B|Ð&ÿNÎs-YÂg
+tÄÌXh6çTS
+B\¸árK¸\Ãå6¢)rïrÜ(ë;ó<µÕzøî
K íÑm/wmü\²Ëd&WÙj¸A
+×Â"¿ô2×ù$!!«
+²ÃZÑ2~9r
+í@!DC$ÉÌßs»{\e¬²ºÞÃK¹
+¡¡`zêÌÆl×5ü¿cYC,K[ªi©a#3Ü%°3xeeNÐÉ"ô5 èr7¹1Z¬i¡\w1B5TðefBèrãÒÎh5¸AOKVÐâ¶RÛTi"ï:õ´Þ¡+Nç²+hiK¸jÖò¥G?Öm«Ê<×8L¿a^Ú÷eè xݦy٢ܴPXL+!Úc´Á4©æ%L¥¤kÕ"²d*¨¯¬9Z5kÝò%W-¬xcþ¹<Ví®¹2¶I!ze®IWH¼À+çÍf¸fÅv¡=%ðU.¤FãŦLÐq5iÓi ¬M´¡å®8Ñ´8FV¢b0« £*üIr_øÃ
+uIþ<óÑ#¾ÎIÔhm'°â9,?q¢¡ÓZÆÁòFn<6¬A.NGv!L#ª`è¦
+c'Vt'A{Q~sö%:Y:»`2»2'%`h½!L5Zæj:¹uàó®*+a`-? 0>ri¨åýx}\tMlb«²iÅVqi¿Û²l¤ÇÈÄwwp ÚWÀÞPÐðGÎ!ý)C;
+{
+DÔü>UiqÔ+d è/Ã&Ôðµ\TM¥0ÁYAy}êáRôxËw÷
+¥iÓ+ýkwôÊ\xWHø&Ò?§ê§b©jVe²ì^Ó'äc«*u+»Êh(^gQ=¡£¨¯ãt-Å2H©&ȳÉÔ >¥Dõsbü¸í?{3<BÒ*=éQÉTøÚËíçT~`ç<Aú(3^MúÈ1!}Å=¤ôÕ¤//¼À×1?8Ȥ,\C¦3½¿ù͵zùQ¦}æ'Ùqó7"VÑ*¾ð Òú®Í0
+³=áÄüäÿÛ¹Rò<O4èsÜÿ+Ïw
eß°rZõð<¡>«:Zç¸)ëul¿2Ï
+©_{RµxüL¶JÁZ²?
î± q×0j[wè>Ñ·Â9¨?!¡=Ð|\l;lY,'m÷n_Ìo¡k*wc]PTtU³
+Ï0Òzv g6²dní³§=ÜÞAäHJÊÁ%0ÌÌ8V|¹±´Üµ3}+[ú°|¤«ü4Ò%·
+=ðah'ëQýìu¿È1zI,¾cDÈXC[µÇ. ^X¡órPGZ²Ê3Û/ºöË÷äþ2ÐÔÓeD¦Þ`èÎßiùÂiz5_¼¥.(2îî¨Ö óQtÓÀfZ+ñʽÞyè1î¦'è´òº3¨;rKÛ\%ûìC±íaAè² k b¤Aä6T/þ]9«{Íî-Z(,ïèöØå)NÊ,n®]N³9W亻
+¥îo8½ë)¦©_c3[%ZÜÛ&ävímÓx}ý
+´3ýâó´Î$õ+op at 4ÛEqfyO¡ýbBÌßù]»s´fù}µðï<¡\)ùù´¥r²ûT|æNù¨êý!âÅ¿ÚýäBÖ=Rª¬ì)rýãf¤Ü¹´k²7á%?ÎC~ìmȽ
+ßì¡2칺ɰir~îÅNeÎ÷½ÒÅÁ¼¹Ïà?|ø(?à%pÿ¢=?ÿ½@ æ Wü¼û ´z
endstream
endobj
95 0 obj
-2503
+2757
endobj
97 0 obj
<</Length 98 0 R/Filter/FlateDecode>>
stream
-xµYMô¶
-¾ï¯sÔ7`0_>ô`Þè!@réß/II¶d[cï»É.0±%êáC"iuÓÿ>~?©ÓYÑWH>òç¿þù·ÓoòÿÿøÏÇýóÃK<y?}þûô÷ðêôùë ^Gþ¯ÿýx}~ü¤^¬è¦kZvg=ýÆ+KWÒÓµéá *ª L§ZBP=Q8eZ¥&ªPÎDTͺà§YPæÞ5zD·rboýCz'K+º¹ýPwÂáï(î{3ßëLo(T-j¼á¾ÓÒ¨é!ÐÕЯ;ÿkXu;Ú(|Qid$ÀNEÔÀOïô/èÞ]iºÕS? j0V±jQr£ÆpX·P@s!ÒæùîÞèØp17°¤c5oCv¦ïx¤½y ´fÅ'P
-á¢ÈßöxNûgC<ùÚ?
ШlgÞYÞC'ùZs(±Ãl¼ðTüîÜ9ô¼3hecØH1pW¯=±Á¯N°/Åþâvé²Þ"ò_I3«ø=ÂdëX«7¢®6O_DÂe
-®cø¶`¬§ ÙKV«UPùÎ ª#aOh5öÄ4Ñô"o:¢v!!î®#ëk|¨.$ÏCμ#|XÕµÃAxt,-)ï/qÝBÓPqÌ9LÒ{2LìM2ÝÈpª#eÎFRrÕÔC7RÔ+ñßÂó¯?
-®0p,»í Æë¿>ÿ±)
-®¡OÏE 0YºY»<è6KÖOSV4óçÌ.kó×iͯ K£ãÌ)$Neæ,ʨ
-³LÄ+qlw¼Ã*O§ýÚ;n";$Uo°ð'¨µJÜ'äé¾8L``b@ørWÝ*§q Ó Ä+¨é{ÀÓlôG+³½ÆêS
-lÎùypÀj8:xBjåst/ȼ£êA¥j±ss¨·ØAK6±ªéØî$Øå¾÷.+{È$cEC~òÑGyÇ-qc~>GïÉ^{r§MÂ=æ^´lm7ë̹XZÏè±iÙÙ®|
-OáÔ|?
-Zå¤upJç~9Mdó6çgVyи>ëèÛ¸U\Lîm
-ÍM[F«²SÜ)
-Rîó°$¦×âjyfïI³ªõTǯWu¡·&ÕânkÍcñ»ßA0bÕ:ɦ$ÍuC96µ4î¸Û¬h¶±þÅ[f>¶eÎT'iÝ÷FæmÌÖá½ÆTÐF#4@³k_ð ¯{ë´ç¸ÍrÍ<-;ÌbÞm!9Ä<çìf[2iFBïíß¶þ°-Ök·õáhÞaÒïq9ßÌ¿ÿȵÃfý<
-®^3´¶lvߪS©=ZÓÊòÓ¦¿å3"s VÙCz®ßgWuu[g&rþ¯klî©ÇVwܲÍám]ú_ãÐ,½Ü+Øî*üò¬ZT²R¹Ôj·ÅݪSɺÙÕQsêÕÓª31æi
+xÝZI,·
+¾Ï¯è³îHÔ4éå|xðÍNØüýRi««ªÇ3yNÞjjHJÕâ$ÿ~ùý G§V] ã¿~úáð[|HÿÿøçËÛûö§ppRÜáýÃßRÞÿñí,ì>ïðóûß_îï/?&õ'#d°åo2Ej=¶å,äåý_eø ´ÿêà
*'!FpÉ+¢éðèÌÐáÜ{ЧÃ
¥YõL9
+[lµ,Îo±7\Îü_$Ùm wÞ8
+aÏ
+» xac¦leáîp Ç¿ZiHá¶Ñ
+Ö¦£~$j?ºGûä.ÂTªurDaM?²îëD÷tjWäÅ=øhèõüÙÿ &Ôò'fKÜúEhÓ¼e¸[J¬&)í³ãKÔ3,é|lâöYGrØÝØ.MlÎsWtò`ÔØòyWêocÇvbýOÕ¾¤£WÒe_í·fF
+hnfÀDbÓ ÝâïÅÛt¼N1Þù#öa°¯÷=3¸v!F4go_Q#®zµµÛ»xUëú{}ÃPýÔ»w´Æz?¶a8õ)[NÅolli
+ÝØÚaU°¬§ñ¼¹¯}îqݬZì+ñâ·ðSò¹]ì¶Ä}±àgQKÚm7ó4cîr?önsì0#Éî¨f']öt«= Æ\4æÊzoRF«µÁÖÛp9ê³SlÂÀä0ÙÿhÎÖ\òì¼ô×Þ¢4a¯ô7>ùE_xØ»µ£:'ÅÖ9ã ^Ëø²Óñvz/ãMOÌÙ¹KypÍG©²øôà!KI6Ý;ñÞtí¤OêÓùµ¾ßÉ3IÞä3
+0xX°¯Í;*kÉoN¦wnU2à¹}*N ÙåÆé
+²È62 Tc¦û¾J(8Pf¨a"Ô I«l4eó¸)©Mñ
+Ù¡ÜÄGò¯xáÕ òݺJM}QIíÔÑN7oòÉx<N6àðÐ="àSÍØò4¶íw¯ñV¢&¡K0&ÓëKI3PZàÒ®ssR[·Ê¶Êü1±ó9K¥§¾k/6÷>¹ÌùÞÄ>®4+?1h çhô§¥Mêò
+ºeõªv:ÚÁ|OoÉ:×oâ¶IÍòæNÐÛ5ñäQ0ʰBݤ6q)Ù¯UeeU+eccI,¨$µLhé=rþæõ4#Rq¯>.s¡|±Ò^ݤ¶ÙjÎϰյ
+rjà®Ú ÛÂdjAÌY|ò1aM YÑj«¼Z¡Jig%áιcåpÌ·3ïº@§ìÆnðVlM4_úýË{R}lmSε§ô,a÷ogÒdlJRmEËHß©`°¿K¯æ,U°Øåo4§]@ÛîJ4µ:f2içÏ*9ÜWÈa©okÚèïþ 1m.Ïx¿"¿µÌ[^1«Äοwyg¦+̸©]a×ûTºâµZIM.SM.J±£%ÇL
+Sßf[ç°/m¨äª3½MÃ'óÔ̵[¬®«C-ǶU4ÍL
+F-®+cØv¾-¸víyuA$¡_ªMk¾»+ú×í²ôe3O!1¸R¹ÚÚ
+`#5Û»Èi6ôµa0Ú*Ô*r¬^¯Ç#AèúUßÒh9Ê@&ÐÈ®BÌYl¸Zìª9¡.´-é¿V)n¨Ù$ÚcúOÎ@еelǪ4Æ"úùV>4äf>즸øÈØÃ#§8ý;ãéÇ(·hA
+±Çi%8ÐLÜ´HHwÑ6?Ãö×aõÊÂØ¸'αÙAú<1¶Þ`»F¶Ìõ
+8ù8xõ÷>oxlù°=e7 Û¶ÊÑ(oµÇ~¤Ë¦:ø¼a|´gls¢.CÄÊ-hÛÚÉ£4´+hG]Hú&8M9QÍØâ£Îxl{±½!^¤Í,~ÛÆ;,àfÍúãá?¤_È«
endstream
endobj
98 0 obj
-2383
+2272
endobj
100 0 obj
<</Length 101 0 R/Filter/FlateDecode>>
stream
-xÍ[Ë+¹
-Ý߯ð:;z«
-0ØÝö"»È"È.
-fqé~+v´¸ÒÍ#Ì(`=\`w´ï=®ç=÷úëçzPÓE¸3ÕݼZuV.n&;´ÕAq°¬ ÒXùfÂÌ:Î,n
-æ±A?
-Ku*ÉíÝ9é
-îõâ)È.MéTfÛb>OJO"AH¹y±F»Caáà-csÈÏ#^g¬{Èq:ú[B$
î¸VÉüÛÒ¨²ÍcÜßWÌ Àõ¹(þ¶×0àW^lÛh¡#pqâÌcO0#´â&îðÂÿàL1+îðïÝ)íLq÷Üܸ§ÌB;ÍR°wh±AOÅnÐÆýí[°+hsgÐÒåF ^m y©*]ØÁ{
Ñ1Cµ.Nì`¬¥=£
-Ìyô«þ$#ø½üÀÆmdèNI@~&Ö¥²qW.NSͲg=1Ö½Ä9Ú \Ùâ³Î]«°õlh©Úq§K[¼ñ¥Úíógë¦8¢Ê9ÙË`¢&È ÄÑ
-øù(MÙ$+PG1Þñ'$wÎfÍ¡ÒÆ×²m2Y
-mY1r®Cw¢ mU±t'¢r´â×#ßN àTOsß/6ï¢èL¨¸äA!úÐ&<uÀÍÑ4aârKMyç¼%å¶ISàÖ+
ûð7ô|Cþé4^kq©u®-¯0ø¨"vÿpQæE£5-´¨QMïtï\¨ôiªg}£ôÒXÑ»Ø
-ZöôAñÔxîxA«Ø%$6AÜ`$eÔÑ=&Õ¨¬NÚ4ýF]~ò<y³GòºzamµnR¢ì-j¹9tÍñÙà±p%/9§aE½þVRF6Ñ5+a«ò4tRÆðN6«è·[0« ÷a˶©ÕkWþ©÷·ïàúÄBeF\þw0"/z%VA°}§A5GûèäÌCR/Nñ¬k¡xt±eü&Ëò<(6
-:k5·²Pãôêíô ÕP
-ø Dg+ÈÌvnÐLSAK-´é~/;4êsκn"JiGa²!ÍuQ®UÒR5%ï"º. %ºk÷¯ H3/ë"½h¼FÅéÞIm³2IA·:¦8Ù¦"@/«B|
-1É6µ`@u[M®t/wÛä§Z]EJÊm§µ³¡¡IÆ.[¨:äËNìzzmãÂövHã°=M1@Îû}ä¿*¤ÅJ+bزwDCW¾»hµ¸Ôû&*Í8Ph¾SN õÖdPcPá¶3ÂEzÉ+uçT¢$l°¨WPÃTnô-v8m\[HÏSþâ *ök®ðû*pø®3÷¬²
-wa£À±ë®Ö Rµ
-Mß0Ë-ËLAeìÆmÔ?ú}á'Á
-/´Y&£Íj¢£ªÔ/ºhîuú86eTiZ×;¤M/i]3wNSëp©sÉ6¦ð-§&%L
-ãH¬2q Ö±%3UrQÄnû×ëxÔ{
-ÑèåÔÖÔRd¬ÓªÝÕ#/-Ódkªy©65+}uh£ Öp ¼Ãl_Ï,]4¹kUÔ0¸;E!½*PMQ(Ê
-°×Z¯V×
-ÙÞgV¯<35¶9A!åTWΩALÞ³=¯
-$U'â¨:ÇQEhBoy£¥výK¥~ÇöÆ%®ü¾C !_9c^mgG=Wó+d+ùu
-×:]ýJÒ8¥òR^wo`âdÓU´_8âFaºçý¯rÐLÔ02Þ×ÏÂQOÎW
âå ŵ]b@Ù¶0sø88ÔõØr©oRÒÀxRz×Arf ý}¡É2¿pBêÿ4|íY
-Æ4äåµ
-^:¡)ê/=ò 9]ÂüÚ½å]A7þ x·'@
-Zä&'¡YmîE¬
-ú5¾ð
-¿;KúiÖäRæøU3Üì[6å^LG Künðlü'háJßíÆ[°TÅ ^¼!ïÁ]ç0Jì³ù9}^è>K¿ïW÷éÙ6û´oëǹëÇÉ=?þwq¿Å
+xÅ[É#G½÷Wèl{UHÝÒÁ·ß¼ÏÅ¿ïÜ3"#RO3PLWU.ñ"âÅË;ñÃ?/ØáÈì
+öºlîúí·ÃÏ?þòÝ¿o¼ÜÞ_8§å°°Í^ß=üøÐÎï¿=+~Qg#/G~^Ôåhÿ¿ùëÃÜ/Çí,Øå¨ãsóêpÿ®½#âÕètóÔ ¼$.Gû:
+±Â{ætC/Ë%¹ÅÛº~/½¶ÆûaºkéEé8kyág%.2uÑüýdñW~ÂÌî±"³
+ËòppqF¯
MÝ?BXÐAøô0¾ÿG||³·V´fò¨ï0 <x0/H0W?
¼J¿¼ÿôrùR¡Eóõ´6Ðâºÿ³Õ"àËlæ$*|{E¸ª07a-ÇUø¬m $½ú¨Ôìõß"LFÅ-o*µå=MíÞ{~)Ø"À_cÁ¤+¶û.»u[ø÷wxbåd
+¤UX
+½Ùà°-Ú8¡*0Y+%T)Úhdoo±váåµFºuCp°åźJ;-ºbì>5àT-=º°¼xsÝQÌY¼·£ÄÐO´T'ù½Jb¯Ç»¹F;g¡G³vñd¯Gt¥bÈäj
+Cºå|é6ºÐpi4ì3Âè5
`Ó-«Ì«ã=xÏrjå'Ý0ÄÀñé#¿çËѼû:Î~Ee>äèm¡#;ÐXëWÑ8ìº
++!E#jIÏLÀ¸ïÒ¾Ò¹MXÞQï0Áªg
+ÃôènñïªÆ²dç¹¶lø>f`øLª,Ì´³L
1'ÌÜ"&"
nÕsÁy_g%\:x=ì(eÙKËrBõ±«K]øHnÊÑ6ly¡æp&)ÊÂG aÒ0ìús+ѨNû¡ÿ©"yÓ|¶V4w?ó\7ñ$ÜK5)V%cDÔ
±
]8à9iEêÓßE¶ù'ôWs®vÔ¥£S<GÕãõƾÒ1Ú¶_:Df¥£Z׺
+;
-2u]ÌêïaNQ÷TªÄAFû~<@
+g¥LÃ&V*t?î»çp#Nÿtƾ}ét0{IæºG45«äT¨ù$ëP`;º~ÍvlvÀåQúc{º5JÇH&AT«áeBéyª
+ñ9Ä ÚÔYK-9µ=§ÛvI~¯Òµiã®Ý|htÉÔ$¶ádù«ÓFî
+òkWVÍËIlÐòR¤!²pÕö^üª rØTÛ¢n(ß'!VÚ5·Ù:µ*øî;äbYIõÔU\v¸H«t
ð%:¼Ñi¢¨a*ääZæÝ1í¸é *JB[(Îsív¼²zøýçpÑBg¡í
+XDwígöǦVÈ¢ê#PãÅ[¬q±Ð³w\ØâD"éç%ü8H\rdÏZL^«R©R×½1P$¼³}>©44øvÓSv×Ì&ÔS»ëö¾Î²R"ßÚ5»Æ¬r¾ëel!LUÂ¥ÈØ´Í×p
+ùºTBÀYª
+i½bQ.õgÙ¢»KµR×LÚ>fÒÝï§Å!ÏÍ:´*@³|
+ÿ³V
+2ÀZF#§ºÔ>¹)>ò ß×¹Ó½ýGöB7¨Û{éÝð´ÚÀD75·àô5Fð¡]zG¨´C%kß%ݶFýZjÊgâ`<ìûkÜA×¼îw"ÔXSó²pÃ:§±SëéU£h/¡ùó5uµÏâßyj¢Û
+t~,Ä÷Ð\Þ°×ÌÂ"JLßå¸þgb R!òMæv;Ú?hEÿ `)grÒÑ ÿl`jI
+7°4sRÊåa
+g ípæÌÄÅÎIwöù©Ù;GøÈõËäX×råxmÝ·kÜR6Ñ4æ²ú17võÜÂ,`¦Y3Óìû9h÷åð/`cÒs
endstream
endobj
101 0 obj
-2916
+2568
endobj
103 0 obj
<</Length 104 0 R/Filter/FlateDecode>>
stream
-x\I+ɾ¿_¡ó@Ë{A«%|xàñÍ3ÿ¾sÏ/r+©mjúUUfEFÆòÅÚÎìôÿ>m§Íý©wW³ûë¿þòËé_á¡ÿïü¸ýüÁ4;Ûaþí?ýé©NÌýõû_/B]åe»_?¿l_þouýPÍnZ°ë½lûU»^?öð{Kë®qfB|^Ùe»
ÙØÆná¾s?ÿºîåcâj.ìæ¥ßuÝgåUå{O÷¦ûwkãaP¥Åg:Üë ¤ºYe~zTköYG$Jâ$±.±<þ3\#"»=Ü-ha². àú·þñøùã×f¿ÔÆÎû`¿üðÿ;¬wãÆÑNtí-Öÿóv5íZLøñ,¿Xí
Æínº¤G,})¾?fý
-·Ä`['¶ø×Ï&¼àû~VãÝ@qÃWãPlÂYÚð¸ÈhYý<yÆóM
WÑî>UæùAQú3¸H4<>2_ö7×-?óThìYu(4V¹q
-k£ªÛ´æ@VäÛYH5y¹à`W at 1(6z
ö%I"Ñï<JcþJ;⯼èH3Ù4OöÍup!V6 D½%ñÑR^~p6N¶\Zí6»ßÀÃ-7â,-Öí¹·ýña·aa\ü
-+Þ8¯ä7ÔP'nèÿª\Ød,j.þéV}J]ìLß8óÁVn¾»¶0
-[ÄÚj±À`ñÄäg^k56k¥#èP»péU¹W r±
-ÁÓp?NÓG¹gNâàR«@áÞí#[!(f-m
âPtVrbG¬»Wp3°[nÕ¢ Ê3i'£½
-E²ÉzÃ(]|ÁL¬ø6C±rW5x&ÒbJ/Å-r6ª:»ñ¿4º´,ÇàH 2~%öXXñ°%Ø^÷1, £bÀ,¬ûå@ò(³©_0åÏ]áæ°¨y"3fiÈé}ëÀRbfc;Gí2¤Z¶îy¦x¡ªÙHô¢û¨nc 2)2Á&Ì|ÑýpÄ<àFKQïfZø~xð(.â´®@nöõC˨ìWvyÅÚ©Uò9¦^F¥Ê´Îî={]AÒæ<ëRÐ8ÀÚФ7µ4Àz[~QRAº U¡nR lú5è«
-ÐzÉ>0 nrkìÒÜOó&´%F£LbY =ãT¨Ç
-óÃEuhĽSÆ2m$uKõ"ÊJ¢³níIIÑe8)SÊ©`õp¤gÖ37ÅóLL´^¨¯MPÈð
Åt¨DNòÎÕªUí>II"¾ÏçúM aÞéÆ
-ô®)¸l±"Iet>¾ÜÔÞJéë¤@£#åc>èíw}¡~Ü)«`ç.ôïæ»ÆLvk^ìÊË«/{WÓ.>;!ÞB¹öz±éا&îÝ
×7aÈ_F1pÛmÜcFÓѳG1à·kÈ!¦%A¬ÑϹÛîaaÊÖt9ØE*Xp`oÁ7¸[î9MkÄ´ÕFãaúç
-Ï©ØYqÇnnoØæÅítì7Ìr5eÁ9^q®+à½.}ùK «ÉUg>\àÛ×¶;vp6#_:Æä£¤Í9H4uâ>ÜÓr䯥}ZòN
ÃèG3Õ^ÝÄ
-ñR%à_ Ø}"ÄÔvÜ·(/[úÄU
-¸÷¦ä;ô¤Ì¯ï)
-ÙK £('dëj.µêÔ?ë`g«ÊÕHt
MÜVN®Ê&±iÆzR$¯B¶¡«4ùW`#ÕŽVâc(nÆ-÷ @´9S( N«àW?´2n°5d])¡AHÔܨ½9ð)`±
Ï\±I¥ª¥¹Ìõºû|tÖ©RÙDJïñê%ÅRO;Yʦ´}<bÉ:É ©Z¨4â´òö!æìªMêªG:ïÏtojbIhgÐõÍí
-ÃÞqÂØ ·©å+ÑTö½s²·èep¡ ¥)ª)»^V®<éÖshE×´Ai#'¸mðÝ`ÚâÐÀ¤ê{n H%Í\ûíjG]¸·ÊF»
-[Õò¯$¾UeH¹å½Ïïuù¿\|Gz³ôÖ¼±!R#ÔmÈKLZÅÉ7w÷Ùq`b(Ù6vd&îi»fåKà'&èÂ.f³+]Y¶³Ù®ù²O
-
-ë
-óêó«R ßkµ4JÍL
9\÷1dHØõ©` ØÂ<y_oè0Tî,ýDyêOy©Z]äÎ
C!m
-å¹óÑ4qgbk`êÇ.ÍÛµÉ)a\pÀ¯71Uñ
-MZjT|1iJY¼ÐVÜÞ3ç&
-\(}áÀ
v>ú]aëÒxÝó^L£rß$Ýóäðñ§,Þ5¤
-ÙBfø@e&ÜùÕ
-1o×Ô¨Z>oÚõ§íÅ26ý¥J¨ }ÒÅx'²Ú^g0ú®öË<b"ôË'¬U f«g]Ý4§Õ® !P i#.¢I%ÍPϾwøH¤ø®z?úzé60óälçB¥; /ödjäLO"Þ3õr>@LZó,1H£³iv¨ÃqØ#m&áÚ`G^:f¾`gÞSv©Þ*û´æyPaô.JÔà[bgyß|´öæ³êN´GÓ-æeóvÝÁhs¼¡íWÏ>½¹åFû]ª|¨qß4W\ðO~s;PÆ
»rÍiüƳ(î¾
-oî3PÍÇZF¬ââLM;á
-Âj2ð %ÌÍÖª6û>>[cGiý&Hº÷ÓLz½zÅtÏ@LçªÿêÊ
-Ü^×Þ:èPñfy×!>à"EÍ#>rVÅ3»Ûé5Í3Áu¢²)^MôÉ4ÂvU¡hÚ@ït[- 2n/UÍíX©L
-"6UÀ*åsJ]F»¨T
-xr(.*è}¼èãÚhkì^<óÙ¸ºyqqZ4î¥td iÕv1
-í(çu üÿ¦ý;rù-A·j¸A;\½ï9ê~>ý&qR:2ê4UÌIû°Ç,=Dè?s(Ønm]«á+¦É'9«ÃAZ:xn8gthZªàÔ8aVò.ò
-v)@`À¹oÂY=Ýcß:ùÔ|düGwÁ´",6ÈÆ¬/S;ؼxÅÞ-Ê[l×_üFyk4M$Pävüþ7FºÝíÓoËÿªUsæ£Ë^P
-ä;á7@â°êl¾#8¾ ìÒ«#·ý<ÞÞW*k]@
- +^ô¡ÅiëÔ³'xaº9;1+zrìëÚ3aÚ7{GBoÁ*>îyþmÍb³´}®À~3ÏWQʰ¼$ñD
Ð qëO·¢>wgâhîB7XCxstN9¼ÛÓ^X/ô(ßf®6ßyú;ÆQçpÇÉd~ü±ðßYV#ôÔÃ$ÃmÿÇpÞJüñÏÎñwsH/çʲ?G¿nÃäÙùQ^]KyR;;E[úgM%sþ»ëì@ÿ=wÈ¢â±-uQÒÙrpUt6N~O§ª|pÂÆ|ä
a¬òSD¸§
-Ãbl]wäðçbËââOu÷3pº¥ægß¾©dG}
-lÓ}
-S~_çÛCÊ=§yFãÅZêM{£s£f¡!,(Z6Mî˹l¶Ü6+³VÛÓMc at AÞ7yÏe`Öaùæ>ª}xÑðVpbÆÑ*/z×§!¾ï=ʰôªÕ*,?ÞÛâkîÿ*LúÓ
¡õmÇÃyª~Ù¨tïa¼It<JÓz¤.ò÷p+N6*^Óâý.kÒý¬DêâçI¢Îh®e_õhãqôj¤+}:§?ÎÃ6éÏ`ò¬Îâd³÷G{y 2¢Ê|ËM/7¯@AågK>ÜÉ@ÄØØ
-î¼üí<HÈMS¡µ¿1?ñ:®b¡QNqߺ
4cüvúýôH(_ÆTüÁáòÈÅûy¯ÆG¿þnøÊ
+xÍ\Kk$ɾϯèóä|WiÔ}ðmaÀÅ7ï|0x.þûÎwFdDfVKÂ,½=U]ùøâõeij¼ü÷Û.âò$üW'ÿÜðùó÷Ëß~¹ü;Þÿýü緷ߤÏûeÇóvùñË_îö"ååÇ¿½¸÷ëyqöú$_6¿ïîîü7¹¿(qµ/îWo×§#]ØôõI§E¾ùd_´¾ú¯·ð5]0þyýâ\øLWê<áaiÿÿ8¤ûç×@Ó[§ãïÒ§&,&ü*ÝOè/Ãoýͼ zAÓÐéi¿¨{¾7¿§EI0BºF¹µQ¶íZo~oy
+åñ÷ývûñí×N£VîÏ£ÑðèqO$¸Ã=«`¹pPyE÷"¼þ×RgîùÎÍ8ʦx¢î²ÀÒu?î{c¤4XiE`}$¬,ÍTe'>ÞzMÓ¼'+¸K*¬ûVªB¦Ì|iKd¿ ÿ´¥hª/òÌo/F_5§.²åjÂk#Oè½uHUd.¦AF7µfåY
+I
++«=ê>2ð«M AÀ [«ÎzÛcæZèd©C¡½7`²¹X¸¶Å²À
+eZ¬ýTI*TUAhPîv«å1:àݸ]\<¯L ¯=.ö$,òô°`óA ):¤cí(édS [q©(ZÀøÀZ
+9ÖxûýUý
+,öõ;[ÝKrS]ý;tJTÐwX=Ù àÕÂ{»©ÃX¿óÉôïqÈeéÇ=K]Î
+ß-Éë|gÔµTðæ]¯à
+.¸yeäýÊPG.ó
+ Ó
+útnC~ L)·
Ì
+·²üxÂÞ`úʺô>Ýt0êg-suÉÄïKÍên©m§ ¹¬¦®3jC**ï ýz«û£ÉóB±9vOèX³XCÑ$ÿ
+8ÑÉFâí²
+'à7&àOðQ²ËݺH¾g¯ªéS[/·¾tÄ )m5"äÌÀ¸`
+UÑF
%0½§º¤/<ÓÝßíÑ4"N*«=OìiÀ·qóÚÝÏñcm(ÕV~AËÁ·¯!l6_ÿR,a#©ÏÔß§2þlÁ6ù
++/䣩ÛÚo0n+ê12Ä©ÕIì0û NH¦¨<»s¥u)È)7´½VÅO+o nd·i at Uë|.£ghÛ¶éêFàRÒWè*+p_¼ôìùØ
+&§bÑú'»£T»å2cëI¢+¹?£IÇ!ë ð¶R8ÅrÄËÕ¨Ø~¼
+{Ê):B§ïÅÍ TÓ£åáôâõׯ¶¡FÔ5G__2EÛ,î¥ç=ùS¢wµKÛK÷>:µs-ÈÎ)b1)ýKA±=è
+N¡
+&»¿qä¶CÕ<±9%/FQÇÍÅèÇ\tÎ%¢5ʯ Ðí|=äÐavÐp~bD6°XúÈL¼H]-ì'j&Z~ðí÷·k¢U"È£UºèA¥Ó5_UF¬DëÈéwÛU×S¶Ioö¶ aJ¦4s®gå j;&ƦCÍÀ$xd\¨ÒÑÁÊ.°¤ºHêß O±×ò¡Â5iÓÁZ$ëñQ:c`~þØpUÁhúÝzëcwäc_}ÜÂ=lá-|]¼ w~3
+>Õ³xHÎ$R¼àÏ}ù
+÷L)ä(,;Ñsï
+ÅòyÆà!{O_
+OKIÚéÑá4±?r8ؾj¤?.ÊKr<R«ÝßëÎq¯í³h»yy±øP´Õx4è'p?-àrÀNo'¤`?(£ÁÎ0ø$.rÖH³ñVz,ç)µ²Ä¨wÖÚfþzT$6¹}Ô((ÒZÕ êIi"Q¨à;,agÁ
+éë añmkóg Ñ¥oxRþÇò3]GðwDK_æïÚëEÐbÊ/ÂôÈðM¹á¬Äcà.GþÜoX¨Ò¤³Ù7ÎG¿$ì{Ç+Õ:j9°ë'R´ZVöì9"¡³\ÖUò¾¹ObLíåæÎS©NÛUºAjÝ,=Á#¥}>ARÉÝmX°$ëUÞ:ê¿ÂÍ?5mO¥ã>*(K#ê¨ÀJu×4}¢%轤hyl]O#<¶õLƨb4Ú!Z°
+3@c0ÀçÁ"}Ä<Ø5u¶58e¬Qâz,&4>¤Jô +Óûúît|·=G
+ñàA^=˶ÞW}å±9FÆWûö
3uc±ôCöÃû¤J¬x¸?K£v¢aW^k'g£ôÏpp}N¨NGé&`ïa;
+õß§Aèë¥T2»çN[H³£þÙ!5,¾V£KXmô}ïéùKt^±Má3õmBËB¸½}Ê-åóËÄ6ä0â¬ööådjZ¶ë<íénsµþ[B¥|ÞÖ½ÇCö)ájÙÂ`ãióiAG_yEsò*÷õò7ãû°Ð§ò4βÐ)Ðôt{,L¾ Ö÷ªùÅ»éßkò&QV×ÒÝ ÊïHÿôívÑqº´õéIæ4×l¥åÇv 4I8)`ûÏ©GR(³QÔÙcKWF¯qhPïÆÒ³mbø3l%à|ÍìêEê:<ïcH_í·$JÔR
+¿BN;éÑÖ yÈÄ;²Ä¥ÿÕÌ[õ«Bu9r:Ê7.é/
+¡Öbw÷6y9¸ZɼMcïöþ)ph¹$ áñvªåÙúvøç#NtM!iªeºw`:ÄvIóM¾ø¥rXbPÑ·~?óÎò8Õ|àïÎàw?îPg**Òi4¥ÄºOÃD×ÐÄü9¸ïÖE|þVðÁxÕ¬2Z}ÙZÛG+]ûíî}
ÉËʨÌße8ç¾¹©á
endstream
endobj
104 0 obj
-4301
+3747
endobj
106 0 obj
<</Length 107 0 R/Filter/FlateDecode>>
stream
-xµ[I«+Ë
-Þß_áuÀNÍÕ
-Æ`ûØì\È"d²ämò÷#jPMÝíó^8àcw×(}%}R«ÅEþûã?'q:øê¤O¿âç¯?ýù§ø÷ë?<~þÊ^ëÅ~þíôÇ÷rZO?ÿqòöó_?^?üÒv0ºîàORB¿\Íz;ë«s·³TW%nöêÍíl®nq®Iº÷¡Õî¼;W÷O÷ÏÐ.iüPã·{ÝÎkj _ÕD±
ÔþÛ4)Ã5%â2UX-3z¯½b_¸*¸É6óÂU©¯°å8@軿ñ?IãÜÌûS¸6èOߺ
-å'鯴?¿yË~Ï(@ÿúóO#[±v{c×-T¸Õ]T
-¶9Øî+k:nò=סU·~ÖÜ`ÀwÙ§±pÁ¤öqoBÚ`p9P»ô¶R´WÅî+ôåwiOTÏ¡DY8kU¶MdD+åý7ÄwbÜMfÈár³?Í
-íG¯Ü]8,
->8üBÝÃÁ ÑÑþLB:®4ÛBãB3Tê©Év +
-Óù!¤1סB©°ñzeöMF÷ÉD¥E11LmÅÁ±ïu·«m·^t£íOÎÐZ¯ ¸]
-Þ0/:ûÕHºö´µ`.VHF
-
1.Eö)ªð7w'OØP¸&¡ëö*¿ÂÛ-ÜÜ÷WñÆÅÄOFpRÆ4Åñè6:Ê×8¤|à}êø
ãÙ¸
-üä+a×ÂFC
cÃV¹¿åI§3ÓôtKÆ)èW»a¶_ù¯à'eåãIØ(\ ²]ØlKØ7í-ç_ij®¿¦JÇ)s1ÖáS³Ég«8ÎV±É,[fâN¿ËdEª"ýWîkäûf2÷±>t;c£)SÙð·Ç Ù¶)xÕv¼p,Û°f¯S¶#/ë@Á»[ÍÛÈZobÒ.öb?Á$ëð!&·UBÛñoG gèºÜçxB`°ÁÙ
-¤ËäúÃË®D ¿É)IpwåNý¯¶Õëv²\Z at nóçd{*¢LvD-9¨®Ø#d.㤥ÐA§õÔúl·(tQA¢Û°èÿ|6/;Ðæ®þírqßà_
-ÞåÒIMS.=§ÒÝP-y7TuVÜ@¿Å>uqwóUìFú¿3ï!E®à¸z½ï"ÅØ.Lÿ£®ùÇ·5Æ®aÔÊ'f¸3ç©9/âÿl¢®"§¤0)râp©e°±áWlyõ¬y<²òø×â¯.ã©@»
-ô¸8òeQ8wÙù(82ý%
+
-{àó4AÊ
-¬Õ=[4üå8  ©Æ2B@cé¢_qY°Þ**ºä"Â. å<¦²lñ6Ùy¬ö>È¥¨ôÕKw+:¨pÅßoéãÏ7þôj
vR©!^Óª£ÃÍ;^øU åa Æ¡B;ºIkÑÛ·9ÛzM=R¶{Ó\LÑÁÔö·tßA^ÂQyBªõMm+ë>-ÏgûMtã"ÁìLÚ{Ì<\f¡O²";g:UÌø\ðÖ<et¤\ZÂÿótÚ^gw0¬0ìyLTpmM$óET1Çæj¿Ö¤ç2á¤"jpà9ðZî\scç¤N^©û>A+ÕDÄ
ÕÞ±¯ãÞøG,;Üð"DóÞö7-¨Uòb8ÙE]\ç³-Êq+ä`¤Æp'»¯|ã Gñ¤wQ
-*4ûéGq«úÞηÞÛ e+ùgý®]ùÐZt>
,O"QáxÙ1/È÷);ó¨²Ê8Ap3ÅéU¡â:5ì*âI3TÜð°iFÞ]u +%@¨p¬c$q·¬¹þéËkɼÝ/CJ }"Æ\íGè DE²^Ê=]a£Zz»Èp¥pºl6ÇÊíÊò{ÀoyàO=0v¡$|GNÕC¡Í¯Eø¼À¤ÂvÄ}éRr²VºÙrY"¾dÔiFH®
äyÇI 3¶>c<DKAp0´H|ø;ìË0P]ØNÎ!³®vSBìÖëà$Ho©`ÚÍóÓ¡}=(éÕlNü@ÍQÊþ¦®MØD¹-7¸U2hé£éÀY;Á1þâÞ7?4}¥3LO½j¼Ní¢dÆf¦WdTT\-9UÎnØd[ (ÏqÎr¬1
-xƲ":kZ
m^A·£À·£±b)ÝÅÉAUeÑfö¹ñCÙÚoj;oçóÌ"ÌAQÛRÈ)&>ìѳ<£ AÆ¡§¡·|4hHìY/}eSr¦hÎê³3>ÝgÊWÒw¤×.ùÑ
-XWûQUaÏOYQýRVí°AV²\øïçl[7~ªT
íq3ê¶ÖÏkXæhª¬bïW6æX-cû@c
- w±@ìBH¹T¶0!kEÇg
-5¦ Í :ɳ|5«N¬Y·ËÃÔ*Ù=VÆ:Hu"T¼Àtõ@bÅ
-SðëKÐ :õÅï®>á¾?0Áʶɵõ乯
-6ì>v/ué^õfLUvùuIoÆJ¶aÈÂI]¶ì
Fht;ÛTÝ+ÎäC^ ¹|Ø\ªPå[æÖ&VûÃPÅn
-/θVg¯Uåoã>a»Óí>ñ)/'@§É%ÉFY¹ËYôøn9ÛòOÎpuç÷¬¾ÈÖ»0ø·ÔâÚñ@]B"?^ ëy¶9}Ø9õ-øÖe/½0ZêeRþZ×Høö¡öpäÙpXÎVPÌFäJQüq8P`Ýps%VçÑfÇ%FáÐFó¢YÏKfîEá#ÐÀhm-ÅL«º{{09MÓÈaß]|)ÛÇJsAZK#qùï¥Ëðj1lxö ²<eÆ-5©rÛUÔèñ¤/ÛÁ©çè~`iªÒüMÁÃÞ94&¦Ê9AÊ7][½ì§Â7D¬w'ûWBF¹}#¤5OÊÙóðq ©=ÏÑ7ä.¸Móμ¤ÂÒ¶ãúP¶éÊõQJ Ú:ùÈ´^ðæU×=ïø³ÄÇLZ§ù«¸ÃÞµzp÷1CÚzBYfù¼>-$Mï¡ÙyyÒ±I`x#PùÆÍqûÁ±ófcúp°%øpàò÷ÇM*)gpXWÓ'eèÇ¢_NÿG°pB
+x½\K#7¾÷¯ð9½JRUÏ´}Ø[rö¶Id.û÷Wo¢^åî]PÓmWéA~$?¬f~úÏÛß'v:3ó£æÂ\×Ý^üvúå§Ó_îKûïÇoß>Þ8ÛN+Û/ëéãß§<ÕóÓÇï¿^åã&¯ú¹ÊÛÙü¯ng~]î·}üóíññös9È".º:`·³ºJn[ÛYô{V?Â$»»>õ#|n>å}@Å;¹½®âv^®ú;xFåÏ
ùË0ͺ/w?_Þìáy¾´7«ð½'üÊ6øa5Úï)gï"Ü÷ðß¡½¦=5$¹lê" $¹8qæD¹È¸²ïæÂíOB·ÆæiÑÑFØúS/@¨
+XÖ[ü"J# àÕÝ¢[ëU|³ %ëµ£|üYÅ0ÐÞµÙ%Þ_XÏïwóHÿ¯ásÍ/;8_ìVî½<¾E]°w{iZ`²ÔEX[ø
+ʱ±»9`u½ð¯ÝÛÂ÷K]Bûõ@ªJ{ý~CÐÄäZY«ã;/GTpM4r¥/Óz¿,AP'¾x¸ÝV;°s-VänMN<|¶{VæÂì÷O{±wºÏâ·¥0aLBËí"+ë¢eU,dT·Ëgö,Ü]Ê
+'§sôwMÄÕ°ß´QñÞÔPí¤vµ·vkµ·¬V.øº#>×=3°®+JøÆpzþʹUDî J}XQá³ö§1¤[J7Ò'$Ho~s+·2Ç·AHë
+ç){0h{=üÀAÛ æÍ£³¤§"W'NǶdÉTB=y¸Hñî¶N4÷Ìæ<ÌA|¢ñ÷Kv7V`gñïTÇÀîQ¡¡9ûM>Û:TâF7èå3ïSZª,¡u÷§î6ƹ±z¨xH0ýðó_a¨ÕXØdI`
+ï)ìDêLæv¹IÄÇDÓäy67C;òe/:·~-gRÿéb?î¡qËɤÌÚQGÒ3B?æ^Uht
+.ª&Þ#%8©£0â¥cj¥f6mèn¨mI¯?`:GøTJ 9BÒ8.øuìsé@÷>ö*FÜÿö#ý¦¼}Í$¨èÀf¿ó&H¯\÷¨»98Ês¦Xï<IAÙ
+5Ò@ûcñeJÊ÷Ýþ,·|ìWë-çù©°75 J'ÌÎó°¾É1ýYR
+ ÅdÆjDá^;3æ3Ïõª'q9gtR
+ç&yþɧsæRDCÝóå¢_ ]uhL<*ºÍÉP%®Å6(©(â3¾ÄùtÍðxÿÅd·YÜmØ"z"
Ùb{Wh4f/ÓèÅû
+¿µ&¦XñÔ©Öæm×ça¦Äo*²!_V.©¦ªùDÅAºÿâ)ãX¥,»è=b½/ÞÛį0ø¥Úïà×ãEW<¨EC³Tz)Õ(i^O5* ¡ò½ ¥m³
¬jªôÌy
+F¸5lwWü¨g
+Y¢0÷
+ýFèq/uBPD´µÚu ERDa#.>ëA:+ÚmÞN;<
+q^KtûÁFM9!eJÁ\¥ïXìѲ½ÝMkzDÅGüæ¡ýöCKuH?·»G¦{`[EçLÚJÐP-óRú̹"±R°y&hâaöæÖ6h=>¶f:l`Q2ËïX¥´µÜ\Ó\Ø2°º¹;¦;ª¾Ø¾Qm_Z§ãäT\K."8±V¨ÈrÖPðUXØnËÏ'ÇxÑKw«Ü
+ë{'YÚa8å¯^ëÙLpC¨rp0ä©f$j*/tŧbËd[,.sº:íaÍ5®÷²ÒK34ÜNê*WºO3´Ãmiy±ôêl¨e-iºm\*¶ýÙzõÌ!K_úSùêübËUðÅwR¯ZéÍx|I¢Å½ZC^ÜN ¢úâñ!êòLá
+Cè,+)?´E/ïî¼áöy©Z%AZ¯{'g(xõ®§
+exÊ.éßõií¡?Lõãc@%`=
+>
+)ôÖ¤n¢É¢bc&Îh.'ýúíÊÛE0'l¢Ê {ÍwV.G¾ÔiàF:>¤QñsÝ#½ÇÈBÉÒiHñÊCµë¬j{½_ÑÕû¹+GwúyDGbó<4åÍ¿/è
+aÚÒc{úvß`è1wï.ßâÍ\µgk½
+»r¼Û¡åxuûð N̺þ1cãr{ß15½®2öD7ر*
+kn^ÂÖ+Ï[£ÎÓϾò,îG¡Â·?lG^Ü Å!ÎÛÂÕ^ì¢|<7Ãï±^}%ÍOp$T>L'ßÄ©ÿ¥î.tÁ#ìôïêú!¶ãFyxô2õ1MÂyªóû^üØó¨|4]^Í×Åþ
;8ÿÀªBL.>,7[ðå;Zg··û>3Ññ[å<º{ü¨sòf")âòÓæ&3Áí¬¯LØjµ1ãózen$fsZÖÎíiiCûXsë\Z.Ƕ·v.¬essîºÌuq¿¸r?óßÜÖ´L]»ÚÒSÙ¿_a¹\¸¹üøíôûOo?þx£A
endstream
endobj
107 0 obj
-3606
+2983
endobj
109 0 obj
<</Length 110 0 R/Filter/FlateDecode>>
stream
-xí\[+¹~_áç;]ºµa<cò¶É<,yK6²ìKþ~ªt).Ýí3g7=àé¶ZêÒW_]Tw¹Àé_/ÿ<-§ó~®>þËéßþéßÏ}¹}y1þN+ÀéËO¿yÀ ÓxU·«~
åê^ÁàÕòWúýz^_!\aI_`ͳy]Öë¹\¦G ¤ïÔö Ï8\x]ÌõO_~÷rÿòò}',ê²
-töDr¢tÚ^MÏ9ê¶(Ð
-ßìùî
-ÿ¼.úzVñ9þ¼Ñ'Êw±Õ®Üc%n4®{·ã¿S>ºxº%
-Ît϶/Pê
-Åõì_ «øißönù´orl
-oÕN at 7ÎÎEäÃÙgTD>QÊÞ1
-¥TpôÉéúLm aÔû50¼qtøÈ>ÈEè{Ç6±Â'5¶<¥°[Jálö¤)1ïäL3Õµ³¤kâ=©°X#u¡ÆµÓwÌåÛTÐYZ«*½u[)éÚHZu&ÄÞ¡äVÖ] §¤ôG¥=
-½Þ£ý£ÕlæþäêöÙæªLØB+t½ã Yjt Êw£¢Y!%>æZ\]æS¾Ñü±Á¯ÄÄe8©q°¥í{ûûKh˳}êúin¥µFÂ`JWÁ,VÝpâgºV¤ÉÞ4Ñ9;¶r@¾e:FqïñÓHû³}Ä4ô¢ÌóÂÉűaAöìÐZ¡,á2ÞEþ,°sZȹ
-ðÄܵÌÇ?KöÙÁ¼}ÍæU~ïÓàÊÆðÔ÷Ú³·êøJ3×ÅkÓ2BøzönL0
-üð!|P
Ix dnPóz^Ȥë=@ÞÆúõ¢{Å
-ÞÝ·jJÚrtðí¨½jæyë
=ÉLQ8îqàA½øu®äþ" E¿àMÝ.þc,uÛ\ÁH[ÝÄ
-IZ·$¹J;"'S?à8~ønQU
Í!·ºhÛvavgúªf¹¥80t!aºýng*üMku#¯@Ø\/9$×Z#lÌï°T+¦[#;Ñ)ÑÉ,èRû[N:"µ/Ëð²×ÙYêd6¼¬Àrý oä·EQZò»ÁqZÊáéMø«{V{*hñS[Ú+Úú°¨ð»KÖ°r"Qr'''ÄaÅåHfDES) ¢.ÂðÒp;ÙE_ìDªWû
-åQzß={uDY°ck©çg»ú:µ"#©
-?"+/ú
-Ò
-ì¢ËÿP`~"9x¿lW|AO82zãH³Ñc}.ÈmÞB;
-ò½_qró'_7uϽ_ü·
÷}ýmÕêʳðNø³ Î/à!Lu{ÈkÔøÿþ¿3Àº:Ô.~öËú_'ÀÇzQ0f´u1+rf/q[ªº×:W©Æ]Qí_§¬Íêk/XÙ'Yg[Cb#o¦ë ó@ef7;M±òîwCø+oiô%à¦VÊÝRbÙ[hv4ùlô#{õs*-ÓK¶%
¹¦à&[¬ªê/¶}¦FRmY=u£è=ÑC_$¤
-mÕ[°¶¤ ØÓÖ,éPûõRÅÍw³÷zÛ$¨û
-5Ûe5¿~äLà!%"³SëKÞ«ØmjåDº-Ôg3PÇ;õBÚnzáÔ{M 8}¤l£¾ø'¹ÇfÉÍ^âEÍÔ¼cQ
-NÚÑßTÊþõÇK·qYØBShòMéP|QýH¨Á
mk8W´yíôóÇÉrXVÏËîãàÐw¬@ÐåÈzJ®ÅG¬¦Òý¡Án Sȳûx¸NØpÀ½n:3þݱ¾N°°&SÂzÞq(,t
-FÙo ±ÑO;.Çö3Pe)ßÕm:Y§rTúÀöÆ¿O'ñ}âvxÂÉXJ²Ç@Qay.-ße}'£©×Ç3P,¾«ÊÇÉÚÐ]æ*ûEáhd´®vê`f"í!ìë:F#óm]eèîþl;á-Zi«VUWÍÄVQù$}µodÁõ÷Lå
-©Qhkû(Ò(¡¤=_2s3mk®1«ö£c%ðOÐÓ2k
-ÀG»ïÆ+ô#Ìtf\Gí'
-Ö1L£ÏnV--e=Ëy¬(Á°+Ê|ø|£-¹Ô.ÏʽSUßæU¥ú?.¯JX{iQoÇ ìk·×(£¼MNÖLÆYýôû){ç Y'?[~Fxðûß¾0!'úXÚãýé¤<wLw?ýáEÞÿt²J¶ø,¥ìïDÇÜ;r[ê¸Ðww¢cn¹-v$¶rÇtW;VêXÛRÇx;Æ;Ñ1·ÆÜ:.MÇ¥ë¸èèIûÅÚ-·Q/niTn$hñL7ÏÅfêQI7º²L<Ý´(s«³iIa5¿¯Þ}î+j_æ¹=ë]϶z×Ó©Þõ|©w=!ê]§ôd°Oþî1ÄðmLÙÆÎôËGrÕÉeñg:?ú¿Lô³èC<ºÝ&êoäKÞÓï-;â~Ìö]ùdÌüÓoõ¶`{Âe&bLoJ`}DA|zïfÎ
)UGúªrrÒq
- ÜvÅôBQz¿ûØéÝ09I±¡§EÊ(WV\ú å5ÅU6óò)L{ôaïi-®ÚƨômñiZÎé+:1uÝÀ¨`H¥¿1K)mR]*ÉDuÄ-5Zsz[p´zbáÉÅÖ~Ö|Äãý
-þq.`¥Î¯Ëó¬(«$±àKóÈtzkÚTÉ â[ÎE'h=e¼Ø;þl%k^kªJ²{3¸²oÂ#ÏÖCÃîǨo)_Îð#²0$ù+ܧ6KÇèJ#;nûÓqOò"Ô:}F¼êà Õà¿F'L*ºDÒIë©è%Ü_DNxÍÙÊW¨5WV¡\«Í](°õÈêRAXnÈ»fò1¡Ê?aïa;p^3C-öm'OYäó²â÷¤2a©Ò/vlpÝ!Øf¹ôÄMÔj1¸èéÿsMPM½}³¢Fvg£&Ôù¡°.Åÿ
n>î&Aì CÀRVö5>ivtTCP'EεcJ²<éçÃç8¦lS,Ô1!#¾ùRtLÅŽälåB}}5U%M<²ºCU<ÕȧÈùçì_ ]áì2ä`v1.DÜKõ
-3o!j£
- B:û<Æ Ól¶!ªYAá-«Ïïý@"ðlã A<
-{ }òå÷ç®òîqª$òM¿ÅwW½ãpY7:oö³ÜOñ\]K§Ëõ-t
-Zã¡ë
%÷kËSk\\3+:vDã¿uÌprqLúu¬²]Ö&7ij`Øôýéß8n×
+xíÉ,9ñÞ_çªñî´Ô*©»$n-q@Ü`Ä\ø}¼#¼eu¿÷fį2ÓcwDd³g¾ýûé_ÛNÌÿ4\ø«uáúÓ_·?~·ý3¾ÿÿô·§·÷'.ôó¾Yæíöþí7w»¹íýÆÏﺽ?}ßNPNàbãÌOùÓPgñÂ\¸\ýEðpþÂãå^¼
ËðkiÞºò6½Â¸
+=F~òëkD"ÑJ#î&y¡x{qX95ä×!wá¯ÃZÁçöèĽÎ)¬ÌÉgâVæY<ÙE2AF[/0AhÂ76AɪÄi¯
+êXc]4¢`;ã eÏ
+oÖÌß0C¡ñ°ßÑ»K±ÚU6]2áÌ#X°ÎX{wV¶YIÍka&°Ì·ÖÊÝGfoé©z,ìXAÁ:;ñ¹ yÊt¢Þa% hå\2¸q*|/v"$]$DJ°6¯Ô)æpEL8=$"M¶_¶en©pÈAkø½VAp`±®3ß¼ °öÙI,_!ÍC¶|Ò8
+²Ñ¿»Gx6uçébʬWùÖtìÔïØ?âú¾6«·ÈwCWÅ[¬Í¥WÄ
§ã2È\D¦zc[jÃò7ôX¼¢\"£>þbY.[¢Éÿx@åÒc~NT~Æê<×j¶geR®!í
+iǤ"^ç¦8§g^(A¹'ãÜúØSwæÌôy±ãí|AB7núî#)ÌhÇÓ ³mX_©¤½D6ÈvÒ]ÙõPqäÑrèÆ«ñ4,T»§¶H_(¯®çBDg+#²*¸0¤1/~|Dúé¥
+£Ó0ñ-Y#
+¼3Xñ(ï_évD
+~hßJ!`Áeq§Es9@ñP~TM
+¶)8"nÆçë´Zà¥Ý6cT*)t1ÉL¸>X!b(®Å¡p±>S¯D!'WjM"§Ù§¹Ä7uåJQº³Z/ca,V:ç¹h;
+Z`öf¡{R`iÉÎO{¸¤à«X¡F
Ç_[ñièÃßDÒõà9
+âöÍ[×ζ©ÛYUÕIÆh8ç2`63ÉOÔ,ÿÓp$Á7ò×Õf@: °~å`0®¬Ð̶ÀPAÒÂÛ¤éQÖEJéCDµDLIÅTÌK)Nn·ñì²3
+;ÊÓHMh`(pi²VªË]áÔ¸-$Ïã4X éy×Û#²~Á7e×û«-°íélPL:´p§½ª'Tþl¼ÿ)*k¢)SwåHlwj
+ÏEÉÿãèçB}@±+!XQ7áâ(£´Á)ÕæÛKB×±eÞ+´BUZHù]_ |t!yàøÕ´¦g/Óâ3éæü|º*Ð7ÒÞ'+²êETë#âüB&þÂÇ¢|Q>|Vng2Lzá?RJ©\ç"áEIÅ3H13EëJy,óÇÕÊäMq°¸~²1
+/$+/"
+_Ðÿ¹ð¥;Oc5 áÙã}[Â0
+µbÂpÒëSµ®$µIãùÀÓ*62Y S=Ý/ËpçÖ¥BÀþËücö1n
+Ǻ,ê·eb¢MÛ'çKׯ,u.=ýHqjß2ª$l'KW:Φ$ûà´U{Ñ)_FÄöïXÀtߺ#8¨'´%6Ó¼v/ç@¢Ý®1R>rBu
+¿ÚaÙºî8»+R lz\cæõ¦ æ½$U~ÄsQ>øiØWÿÃOl)ù{Ò'-6G_Ï|¬DBnõôàÐzg"¿¤t:\!jT°n7»Æ[¡¸LÂÉÞïõãH±®lIH[ô(2j
+±àK¨ÀwFá[éwý7Km¿ !-¶è˼Öú´Lá¾7áê
+KµÅ
+u·8TÕ:f>/}î_óN±éwôCÞbQDÜ<;E{ïØe5i t|)î39rühv¥¼×¯YèmikJ>ÄïÖÅ}ÁT·åO÷G`²\ÄÏ~°ÌºKhÑù/*Õ /¸,?Ðâ-'5_pÐeàs%ðåß>qýRfEv|µ¡
¤d¡<#.Gð»Þ@AªÏ
À·ÎþàÌù4WPÅqóÀ§å(=
+xóYù7Är®ëÓô¥Ðª¥ñª±-§-O;íwú1¿ô qiS1 Åíbbm÷µóáwEWªm6á>h~xàâz`0ëã ]Q+Ô*7EÈ!BGn{ÇØý9OÄ©5ÑKCÏjIL?Ô2E^2Ô¿5Ù*úáVÞ
+« óI±«KÖßÄAôAº2çHwÇö?>éB5@ñP¸ì?Äý°¥=v-zCñ@_fîfüg0d?DK¼GÑbTk
$c¾üû<ÇÆ{-?Ñèá8[Q?24¼>ô¼MÄ|ÚM$ÜvD8[Æú&E¾¾ßúòÏf
+,4ë6ÐÒ>ü[N.ü[¿¾ùëËx¦éjW"T1å=ö7å·´9jr«n¥n¾
+ZµPËÝzeë0Ó&O¿åôyûÓØ(ÁÜöIóg&Î/¾/ q"zo1.3ö¼ÒÍ
+Â
+ì0yVTQáë=®é¢B³{oâ«,5öÏ=ff'À¨ÐK[Û¸+=X¾&ÎmÊk(T^q«âþ¾Izñýöb~
endstream
endobj
110 0 obj
-3783
+3452
endobj
112 0 obj
<</Length 113 0 R/Filter/FlateDecode>>
stream
-xí[K$·
-¾ï¯è³ÙèY¥LÏôÈÍÉ9¾ÅÄìKþ~D¢H©TÕc¯$?Rä'µùl/ÿþôóÅ\L¾\¬Ë×
-þþòÃå¯ß\þõéÛ¼ùÙVÞ»u«xo.ðïϤ_þþ)$ø4mùïOâç@wÿ¼üå¼ÿéï°¡¸a¹
-émiÈïrçèó´jC¼k
-ë[hØÞ«3ùE¹TsI<M¼ÑÃÕ±ÛhØå±ìÇöRÀ¼±W³v×+¥ÝõR£I§ÿù¦¼}ÉÓJÙæ«Yóß/»üá=À^¾üøÝÕnÏájßíÕ¬ÏOv½íù)^m'ñù)]Íò¼ÀKK¯Ïn)ù
-]I~gÜó¿×ü pW¹sø*B?ù§Ô'|ÃeÞao¦õÄ-_x¥µÉ×<5»ï¿üéÓý˧o;ý-~^vô]|ùÇ^Ôè²ÅNU[0|2éy«ZzòAr|Y¾C%ïÆÚsÚn*C´YeUçdÎ,.:ï^Ü-_g)ÏMùÿïnù]´Él&øÿËÏs\4ÉÂüE0î
Ø×½ø`=6´qú°Ë´5érÑéó¬!
-^δy¬óÜ)á
-eWÞñúM:ÆÁ?äK¾¾ûèÊÚ)ÒÖísÜõiK¨ÊmXì¤E-(À»1®Èç<ÊcéÛðüäüØÒ I½)˺{jÊ[A~é±0¨»UVÓê(«ÞCW8U(1ýØú9Õht×ÿZ4ôû»Uýæ+x)ù
-AuDÙ/38¦ÁA§Ê&¯I¼èÑðåLÈW_9-Yå29§ð¿ràyZ¯þ^ ÷~yOnw¬þÿ ÔÐ 3Æ-å¤í¡ tOYN§ªÿ£«]ØöV¿Í8]pü[ùÝeÜ9ª59U©úidWI¿Éåðå®avâ{{Ýd±0\k1S hnk¬/fÏz°Å½
-þkÄÆôàýyÞa6qètÁéYj^ÁÄýÝË>7»Ñ<ÍK»[e#G>Y=F
-¨éÁú8Ýl×'X¨8W§ÌbBëµ|-`ÀвeWp}ú6G?!È~E_ÙUªz>{ZBiÌ=sU¯;F¾N3Aëì%¥:QE$©ñh(úEhµEn=4xÖ)×0\ÓHKùfÛ«2ùàõYëôú?FM4î½¢jÇÚd(4Ëhzç~~t¡.ÍQ+5¾¢»xS
-0"3ùOvi/|AUSPoµ%9k1³®;µ9áû¥,{OÁòjrÃÏÐxGEýgKâið&¢káoJ FR2
¢ÀÐ$¥á'ܵSµß9¼©ÂnçÉ-Þ0Pø#t¹¬¢ËU1ºrVSD(y^Ïä5ÕýÝÅ´Ök0âëTò±z·ðúÄý
-75X£dºËhNSz¥äcBS§ÁùD.CÊR#-Y_´×iÍ>b]Þ¨iaòöÏqK¬HHbl´H¼ôüÕ!-.a$Æ»F¾Ö·@¶w
k
-ËhHoKC~
-sºZÃr'ÒÛÒßáT¹a¹
-émiÈïx#gx¢xÓ
-Hs£+ÕJ,b/GSr¯·v×+¦ÝõÓ¶ÑK.{±ó,ÆË*áFØYñiÍïõùkMîu;èª0a _¿°/Ùïn'iX8.¶Úñ*Þp5ª9l{§I'û0³Þ
-Õ\Ú,
-Ñ<U8¡øfZ¬ßö8ÚvTqVxhÆÂ»)OsÆÊòR£n³7Jaßcm«ßW®¿ÑÀì³.ïù¥ ÒoµoµLà ®Sû5»g§à[ãQûõyÁ«ý:¼àk~À»²Ø³wæ!ÏÊEw`
-L÷+=#Ù&L9lq²L*w9c¬Éà*ç(àïÊònæû¬}ÃõZ>ç´:sZ~í-´$qvILéi-8½àsæÿ ¦ÑOÙª0É÷L-9Êûk·¨ßï
ÙZS"N
-'µ1ßèEÛàãHÜû'©ý>+üË:=L>©î°|f*³[h´hóRÁd'Vó$¢°lÃ4ú]Í×Ör´õZEì»Êzßcá,On5Å\(Ê¢vN6Ùe
-ÑE·F~àðyº´XlÊRB%CxA|JRàL
-EæÝG\ZlûÄklY<Á®àûi^=WiÃÖ[2¼FDE£L`u%ÏÔä\ÇBMå<tF4Ý/¹À`÷S¤3²×tÔ^OÑÚNÄP`Ú´ ~¥QìA){wÛMjrîàãwã8Z{¯
Öy'#Vn\Z^ÃÊìBèA4@(ÝÄCÌv¬D{nuö¸×ïV^Véd/Qí¹ÓÃ3
-b0ù)DÖ8f1njîEUäªËdu!h1íW]Yr@Æ
-½ÅR e×FíApp&^Å~e5«
ùjÆø^wÐñd££·Rò®RC¯}kæûûas:å|tpYÍ
l¢×!«QÉ5UËHÚÖõÀøíò¼TÍwB
-ð¿£í@
-ø²ó1Ñ@T4¬ùt at F
-YdÇÀû½ÔZïò7¬ ê¦Bâ±°Ì!¼&âÓ|öîF9OQkÓxN°/1 EPKx&^%Õ*ÝÃü{M'ALêssqÞäAHÒxmp-÷ïìQuºy»UñܺsT¼t[µ¬¶lxm9ãÎQçLuñºc}ìG
ÇNXÛ
ßʾHÉúÞK§ÑÎÊ;ÅMÄjiS
-cõ3¡äÛÅ 6ݼ
-èºU5
-{¢g!õ;-&°±s«Å7§]Qel/
-jw"@8á:Grg4Âi
-¶éGX8J¼
-ðEp8ñún7·ýƱ I¬ì'íÆù3+ ðÚÇX v¿àôf¦*ÉÌO¬4¾upjݱð<H©³_[ÿ®ö}áÝÏ&ùàN"7v[HU§óöbæÏ[w¹ëp¼åØ
C9ÿZËIè{ÀDÈç0õQÄD-ÏþàȨ
-n§sh<1{i;IÌ(ãë[9}ð3m8·7ögí³+G׸·À¸]bBÕ\ýòÃåÇoè
_¥+¯"þT!¿*?¾Õ~ré§áWØjºþ¾½ü½,
+xí[K$©¾÷¯ÈóJÕæ
+)Jê©®²äÛØ-ù°òÍ»,¯¥ÿ¾!
+6vÆÖ¿¿<ñö/UÑѦÑZ1ShÈ(<gcÌT`$0Zo51b«2jb¬4d[1ShÀh¬zÄÊX¨±Ò"c
+Ù[+ÙWÓúmõ^[½×VÕû`mõNV[½af_
+ÿwoOVÆdáEûíïËîR-R,o?ÿx×:5þ6ýéOú&_¨/åP±JÓ·@]^éið9l!àl÷"PÅ+u$ÁZúUå.{ûÓÓííéýÖb]Ôï#£
+!fS/\äÎÈ(ѸÈèÖ9»kúc/ò¬®ÔiÌÁ6Øîh/æõrÒg«{
+|±:]û!Ý=~ñ*~Qe æ)T¤©>»[jËÔ6ÀÞö5äeÌ|ß;°ñÉ¢°¡¥:»E\@eBÑ,iËaZÒºsÌY£¡h<}ÄÔÇ>c
+>¬{äà/"Éö®3S²iÍéĺðvC
Gðè\Ý~Â4¸¹]eL>ßeý0·«yþÝö¼Óp7ÿ=Û§hc}9*èÈm¥.íCþ¡xRòà7§ãc8±
+¥ü-ÆÃ.÷ÒErÄK'£O¿ÎDÓÔOÌí5ã¶\k²:²y ³±Xû
+z-ÑaauÓl~htéKWÎ%kÕ&Í;>ǨYÒMHJÐ~C9ñaürt\j[îÞK
6^zCDÍDºdêfJ°¼fûiÃ_
ÆùmF£p¬rTÏCT¤<3êæPZϲÍ×9'"ïòh¹¼¶2<ׯ§+( ¶ã¡nÖ.:Ô©L¥^ç¡{a\ÃpVÖX«Kp1ÌêËsí×IÛðm?×âb+å9Úâæc³·Cþ}eo¸Ìݯ .VzäèIÝ]+ÿ¤âQ7Úôj@Ú¾f*ö²$´í'ùtÜfÿ¸9ó¨1¿¡
C½ÙPNWUoGÁs75m¥ßmÞ¬á¼ÜÍ:ÔëÉßWkÁãÝD7.öÐÅBóÿ.'ºA7ÚrØI¢ûØrÑtF>ê¦Ü²6dÕ¥Ü7LW*EX´eBä$¹äY¿LÑ)³m
+¤±g#³UªÉãÐÖùY×ÜÉ-ÄA_¢S¨ü§àÀ
+gÕ½C0-5.âE ®3Èúj¦ÅêrÅ#¶|¿@
+ÏB¢È\ÀÂî½Æ`ߨtß©5o5dQwÚxN
+cK¢kËDA-bá§- ¬
+T(ªªÚäR½µÚqøºq¸°FMî§Ø¦D2WEÈ6¦;úf5y
Ô|Ï3RcÑÇ¡fèÎÝ-Opy2}ª]+m$r!C«ÂgWLÙ6vík*=g'¤ÑÝ(·y5¨Å4¸¤(aïCÚÅ4NɵùZl
:$ã[®ÑÞ°93Ô¾åM~©fé¿E©u )Qñ6pãdl+·r(y·¤:ì ±R`rå©Êq¦ì«L.¦Æ'¸oç³9Ð^s$YÁs´Á+ýH
+uS ÄÃc"d×µÝcÁsÐøCî·¾ûÆ9Ù¦ Æd¹E`©(%*V²H8U
+¶d{×/Ö=¡kBåÜ´Iæ¦Ùéã>%Y
+«ØÉ%dl|r$×5¿9J§D»ÿî0VB°Yت/²
+5½mª4xs7{ÊX¨±Ò1uFl1ÆLF¢¨ieõi¶*c¡&ÆJkÖF@b£°ÈÂfoUs¼þýEö+©jî5W[½jj«_ûG=AV¤Kàì"U9SdTõ<7É0:ø/¶F±.p½¤t|Ùðå|9KxGscwÖ*ç¼Þ|Ãá/õ`F4|2ø¿nhãèh®¬®þzøaèaá ðϤú
ä@Pÿ
+¥^ÍÃL3@
+
+6<FgV>je/¦ðGBGêXñz¨
((ßbÈâóÄkÁ$5+÷W®¯¾4.ÆlìLYlîØËÈÞÃ&1hÃôÑ~¯dE¦*^QKt( ¼Ôå<ziź¡¢Cog(]ÒbæbÚ"¶û¸úóQ³qlÜAºÚTpa8vUü**¼r6Ä8ðK¢ X`u6m¿y*¤¬DñäËG¦ö-~v
+RÄñ"
+`ÆSªYds&áºnïI¯5èwÇaM¹öygz¹ãùtÜ9MÝȬ©í÷6éè¾:5ÁQk3i°Å´(6 :ÿ£O$ûéC%R¹7Îâc[N¨Ï¥¡Å¶Ô@&Á5K
+¹ü+ðàkX½$ÀÐ]¨Ðú¾IµP÷Çé.Æî<ðO^àä5 é\8¿7ºÅà¡I<w6SÂ\`
+PÂ5ñè9UsÌýb4òÖ8e+Ï+9nàËUô¿Añý¥LPη:3
+nèovçgÝ+;§UFºÚ½áÀÒ
+¸kw·Ý!¿5Ur¼¾[¸±GÉEq
endstream
endobj
113 0 obj
-3939
+2966
endobj
115 0 obj
<</Length 116 0 R/Filter/FlateDecode>>
stream
-xµ\K$¹¾Ï¯¨óB·õN ªîªo>ß¼»àÁ{ñßwèÐ#³ªg¼½Ý)¥ñÅ;â]þûí?'qzð«
-~n!þüó·Óß~9ý;ÝÿþüãÛíû7)ÔûvÚd|úû?OyØß~ÿûY
:ËÛÅ
½¼Ù³Ðí,øH<.oR
I|^ÞÔYÜÒOW®}Äêòê@àã
-îUÊáYIYQØëÑZ
-,ESrFÕ4Eæ
-êºgÔ9ÚÆU6QÆ3û]d^Þ-Pê`²³DÓ´G|Ä6 ¾¸¼µÞ°bÆôClàÕÁD^dÓnIPú2ñq#qyùd`"çRa_²V,Ô!#²¸Þªn
-
H:R&éÖ,×[\Ø(ÎÔD\¢W£òA°Ùà
-Ó¶édàBÑGMÓ]H¤ÔÍÙ¨J Mq¡¼,ï=N\¶[îW ä×KBþî] kHáOÎÊwÛ»¾H÷BÒå$ZÈfÓ*¦É@F-ØOjä=[Uæ¤j²¢D˹C$]©i§¯¢5-ûJI6lhÿÛq·n&u£Y¶?Þ
-EóµçÇc<9ê3È#Igì¬Xv2õ¾,íÄ¿Ò,Ò«Gïèî®ïºH]É5ó7¶uÓÖE8JS
-¤'©òë"Å Uu>²ÉºPZg5ã"T}"úÛÍr¤áKzÔÞØêkÔ¢CâÜ>¡1dìf\1â½·G.d(U8Q"hóÒ-IÈú ùG[ohZ¡ÚT£w"
-TÙg3üÉ# Aã«6²¾bú
- ¸c|º %èÒ0Ú&FúÞ¶Äwgu@öI®¥`÷ÑöPLbüÛ´
-ÍG,ôÑ¥æ@iÞ!Ï¥h¾3M1öíËAÕ`O4Nw Ñ?)Nv§&F¡5¶Ì;-ª Ã"&~Yõ¸4bKÅJÁ
-<äãíe à"hÉNºâsh#u>s4Nò¨ÛÀæèÁÏ¥Vé-â$AØLV=á''õOTRôJ®[=,sT3·8ka~¥EB£ÈvQz:·v¾L2WRða"K$Ùw9ÁÅ!ÌÖã)TæQKL£bÐÄeÐgPe2Ó1+G.(
qm¦®
-Öd"ÝA²0 |².GåÐï±Q<Ý-ËPÔswJ)*Q¨3dÇ[ßÅè\ûQ·DLn<kSå§Þ³ì¢°f&.«mÈ@L».#è:{®2Æç]Éaã9gY¡K
-ÁZ
-1&Fkiàw¥ñêÛ
-̳îIÿ¨/Jβº ,±µ[Y^Õü&¼NIï&[dúZøÿ%
-½Xu^`{
7ªEåT.ñ`zËfî-JoËǺº/ªYçM¿¼O¶
-{ÄH%úüé·eܵ3þbBe§Z]>®d¾/¾Åqå+þEfg3Ô-ÁHN±4Fc8&èfëÊÍëY0AkK ú#ddóf=©/â½0¥*.Û'HÞy/¶ïj²ª#?ìâ³éÓ±À[í/Õäw¾µ/¦c&3&6HÕôåº º¶è¼m%ì¿Ü²Ð¹ï&x¡#yßuü¯e¹Á3N¢Uw§ØòYþÉ
-lÊlÂÆUnÊøÿfÕÜD·Ú*kûHÒAü4=Açz
-IÓUpJESÆh%Å'ùøÐ=1Ñþ(zFÎAW©éxÀ\+S)îT¦µ(¿ËÈÑ[\?̶BlÌà.f{±Ú/âµü"ZÄ$ÁÑò
$ÅÓ§ï0WàoxYj~&¤s½ßÙ*yo²³÷ÞuüèE¼á|ç\FPö))yÖªn=Í¿fUÔLæÙ·ªÚ^¿ýT»ªMXú[j×Y×2TmµÝìnOJqC¶Ùg$r_¥ 6AßüC)0)³M<[é,O´²ÌÐÀS³d¥å#1ñB`A¿ú@Ë}´
-¬vBÂÚûªç=|#Q?J/vjHqÚ"ôdÕ×`ñÞæ±Ö_£®9dÀsÍð"ßÎÆEä5ÉØ+"æIiëfùÖË*EË[ªÉ°ÎÒDþ°4Póë|h,Æè8¦ovcù±
-Òr§£Íñº9VMÓõ-'ÈËdØ'¶q¦Úãj0g|_®]̪ve,^KǦ/ÍèRLë»Æ~F¬ÔNÔf*BXP¤¸:(2ûEØRÃÌt´Rå
-\b"ï´êÛºi
-åm´nóøJ&Ê»Ò|úgKvE1WOÀúJÒ
-öy,_²î®¨yòR7%Vr»³³6×{>*¥TVvD%À´.:qÄß a³kGËvHÈÉBÇV*H>|ä4²wÚëÒVk(;~ôTçîéíµSd
¸k\ù¡c{víW/ÎC§Zs
mà¥/j<±b±rj««R«×¹mú²ôQ¿²~-Èì^
-Êc±GEÞyuÝRþ 1åRuT~¥L+û®æüzJÜÆwÍi#ÚP{ñЪx ºXöû®Äe3SðPàg´Hïød#ÐHî¶wgÜj&;igFíÑ^çu£ÓàfH˱h¼úËôÇ«,ô÷ËFb3ÍbaÔÒìv¬[ö:+b-s1ë|¯l°ÛüëùY#voDCV×5.e˵ߣsëÿ<d6i>µZýþäÊðg_é«/biéEe4Þi,évN²Bìc\-ÎkÎÁêå:|ᬹÿh§dÛÁpJðÎaØÙ±psá×N½nq9ý`âØF²·HUõJbùúZªañç2:ã9Á7$<ézíOY~XçN%{CÚ
îܦÍ
-ÉøÍ
-½{´b¨Ü?4µv¯¾DzRo´¥q%Õ¿Ô?Uzõúò#O<X¤§^Doßí$¥ßPÉjwÉn4ì;úÉùwݨýÐ^Ð!º|Â._Ëá_ùaÅ
-^tÿø $(%ýü<kv(+bR¶ßÓ!HÍø
£®ÿûÕ´ÈPkéGQÃU³OÎL*3Íé#[¤æPùÞ;Aõ#>Ý´®µábúJU¦Æ±8
-#ÉÀxéÿþ÷(¤ôCMüߣMÃÔóÏL?(Roù¶ö¹Ã(VULS.ø{Uc/RʳëB$ÊB={{tv]
-ËØÂh¢ROñÍà¤öÌ¥´Q¯ØÑD
-Ì«j¬@¿.o;«{bXú4ÂÐü"ºV}@ê>¨
)ÀtÙ;êC¹þrÛWòIH¸µWXYÏóàk¶´Eô[;~j§ÆG?£]ëù §iJ2×è©jý`iÄ=×÷1Vb
-.ÇàÝÐU[ÙG
--Ó¾1S¡ÕÉ1±ÂoA|±²ü"×X4lgÏ´ÉUûz9jû©
- ½*Ù1s$þõÖ5ý-2ëQÁÎ,¤ÙùÖY¼?ù¦B/¥èH£íóI<AäRIxØ¢CUMíLÁ_k,°g+Ò«ÃØ|_jÍyìú(òóçÙJ)õQÉzÞRz?¶T3"¤¶
-îZYb¶¥bâU+UúäëÐâgî ÓÆÔK°A#"V÷4j2y¼êØê'ñ¨(pðwàÜí-YÓq>)ûq8*zéáä´1ë¦bþÏßN¿ÿRnmïP®ÿzú_(=
+x½\Ë®$·
+ÝÏWôÚ@wôV hà{ûö";È"È.¶,x6þýzzªg&ö
+sr¸zõ÷Û]¥©ÒÐÍ<NÏH÷ýE±Üêt{ü5Já§õW7òȸÖò
+è\Å.ÚCVutn9æh?éÒêit©ø®4:¯Qg$ª2"þ%B-Þ`d
+^
+s^ðkã*^W?Ãu%v¯Ø'Ö¹Ò»¸k¹s¸xå:MG½k6>=ýûjê@
]7ïŬÚðvEV%¶#ѽ |Ïx%o<ZÂS¢i+âª8Ç(VÄðX?ù K?4»?,¨ *VÕà~ÓA<,à &/
+ T,^}Sx)\\8kÒCmðñsþð×èÂl^+é¼EEpyÆöhç#Q"ß#°K¢ ù7a.¡l
+ý¨á
+XPL5@\Ö£
+èlÔɰ.4CÊRΦÃM8)P¥&³rÈÞfE}'i`áZ5²²³iµ_©fÎÓè<]lúÔG
Á3oÿû4kñÞò+ßÐVõ4â W¢"°ýÍÃå9ÌG×àÊÖnuÛ!w<Z>H
VÞU¼ä%6='uQbÚáÖ_òZ÷&vÀKHë¤
B¢D1×áäû'L}m5ðdÈTçjÆè¼RïHi&Ö ÔÃ%Ò|ê :qäÒ¾q9º%Ëc¯<ÍAnM¼%±P`HRPo]N¥¼2¨1Ô5GÀ2òk:¨8Öß(¼¤S¶
Wí·«ó[¸ÂQùIí 6äFHS9'ú´:ï°m ù~uvü
+âªe__PàNn0YÉ5¯¢dE´+jqͳ ÄÊ£V¿JÆN5i`´ÖjJqfÝ´sÜEÄh(eývjh Yâǧç§è¨%ÁÁþ NÁkv/Å$u`uå6Äz«¯R²0¾Å0nkùúEÒÅq³§Û£G={M®@IAÓî+о𠨯D¼!®vT9R£½¾=oJÝÐxKsh¶ü?N t`ÞJ0C
+!y%ô¦I½o-C¨üèí²È¯l
\SæÃþW;ït
+RVóHõ;ºÏµÈ8<c
+4Ð} ÐlZ*©ÖÄD¼ü<Qz.ó¥ÍÐ8.&(A÷¹ÊH}ýy1³5.or¡Eë°ÝÝf^;EÞGÉÔ?÷ÌÒ
+(,U6©öÄó¼ò̵ô7ùÑ48º-¶lcA?)P=BXqdjú¼í¿´G5ØTãØBâaN\%»Íö Fsc²Ð(4Öõ¨ì7±°8ø«{oM 5;k{)i}Úi³71°ï1ÁW|iÝ}©:°r«ûkêÂEW2Ñ2y÷2óaCä½;{Lìù?üjK£ºî³2;l.¶gvNÁ->Vä½.7d{ÏËáL©d,£49Ì×íß½ÞçQ00g7!å×DÃS<#®õÂeImÏ»-u|EcîaWZ
+±J·ÐÖt¥Ñ9ι
+&ÝAqë5ÿC
+J}P¤ y4»Úõ`·"¦<S¸>;tE8|ñÈM×
+¹#ªIjM*³7êoçNÍPd,±$ûÒÿ
+¤ìk»Rf5JXMÉÚB°Ís/÷¡äà8
+:rÞUì²}û&Ó"Xé õJ麦rEÈ0pÐþhHiÍѵ6ëW§\_{Ã÷æ_fÐ-Ý0Ü}h®0pZ0%¿ééjc(WyM.¦§L±¾#ýÁ
+v÷0¤åæÀ`- äD
+Âòø(qèvÃQ7âê98"qôJG7âÃþÙèða Áæ`L´º¿ ÝÜ´¢Yk~14µ Lá^IAåÜvnæ)^HÚ¬÷0¶²ð&YB
à\}er¶¬Ûâï£ÝBýX»¡Ó®ZÍuD%2,Ï|±A/U,±¥ §MìnË
N#meG0PµùHR=¥*ÞÊy;Ï* ÍP°IúÔæL4j÷ø+móú<[^Hè÷zº°áèfYGèFm.þÃ 7W´8
+ àu½rVDXÝ^Æ{}$xb-|mö×@FúÔ&pä6¡%¿Ü/LÑ%º»>j`Û&h}ò=jmrÓµËÓ7núê´JéÜA³¼ï_`r|ã
+¯Ó-MÏ:T_¨á¹uv;ê.¿2ÕTe8úÀ»¤YH¡w)îèSïêH7íúCöy{"M>qÜ
+àCHT[_¾-E
+¥í«JÁ¯ÓSw¹°¯Ýr#þûíÛÏuûÛDuòúw0ZÛ*¯z±k`{f;¸ßW»æÌãõÓNÔ´±yc
!¬'c{
+DN¡,Ó ¥Zù¿r£7(Ò®¤&æuµ3EQ/Õ·&<&
+ÿ¼xÄh,¹
+gײËy9âÿ>ÁKèüL »âT9>ë<J¥É/;¿Ò~ì«(
+*çúuÇZ7¾Küÿ=h?áå(LyÃù»ÛÏu»#)Î<7æÆÁs!V:O(ÇÏþ¾á3©(`ç|äd>µ¿O׬´Ö[ë ýØ|Êô>¦#UØÏÉËx:ó4ÚÜØ}eÀ<Aµw8-ÆßéÐóbÆ3U6Ýöá
+ÞnçÁ3OVáøE'ËéBiÇö¥VøâÂØÒ×Ì'æqb4®
+Æ]à̽Àö¿Ç×_/¿ý.©p©¹ôËåFÌ
endstream
endobj
116 0 obj
-4112
+3325
endobj
118 0 obj
<</Length 119 0 R/Filter/FlateDecode>>
stream
-x[I+ɾ÷¯Ðy at rFdf- Z¾
-4ø0øæ¿ÿ¾#rܪ¤7¦yj½ªÜbø2Zàð߯ÿÔá¨èëHóÊ?~?üíÿÝKþùñϯÛ÷Øé4fµððýÃ_^p
-*VsÏý·
-SÁËóPIö¤ôp #UqqI¤7r¾#>Ä«x°)sqôÅd+üìù÷8?(VüÏÜñL$y#ân#e±j%o
ç}ÿkC½æé´VêXè¹6öR|K²ðÒaðwÒûÀ©¤DÌ/þÄ¥ò"ý¯ïß:dáèºù S²µ2¯pJå'@+è@¶J½Byv Hjü~éJÑë;*È!ÃK«$F1r{«sÆ=TìªÌdHÕ¼Å(¢ARà£)£5úøâ§£Å©\,ë_ßÒ*Íñ¾¥ô+Ï0þ*t%¨q±¨Ù§ûUNÏéìðl¾¿á¢¼Ì*Ôæ
-t·CÍÇ74k²e:0($Ò˦K}öúê
-8gÓnWs,®³ ®Óç!Ä6³´5,üÇ5ZÎ;Úe>iy¸¬ÖHê¼Ò :K6ĵã´Z¡))`ý[³þ9zñÎaÜóÝ»!¯9,´v4o*«0ÖöôcÙÇÊͺJZå
-©G,fë%¸£{|ß7_Iª?¡Ø¶tؼ«tzi"%eÇ9Ì=ëÍÄ©ÚêXnë3V ;S^)6ê*Ðè«.'×~P8³¬îNÛ³¯Ac£LÁ±E©ùÜ#Ñ8ÝsîAô¢1Ø\Ù£ÍÂî¢ÃX)@ÌjíPzUåô½@Q$OéIæìáeV¥fÇÚon¦dIÓ
-×iº:¹«Å85e at JÀ§x%ét
-oRä¾á Þ%Eú²^½ðèTka}×
-è2O/\Ní>öÂ R©òp¦
-A·LÒ"î uÉ|(Bq¢½hLH'+`@Â'níÇ¢¹r³9Îò¸ú¦ì.øI¤ÁRu£&Ñ2mÏSØEQ¦\åÈ c°ûêuÃ>Ãû=~=gÄÆárI¾ÐÓú.FEg
k)iV¯"Áγ"ì3æ}*kLç,ãEÚ#a~{ÈC
-ì©NµGáqæLpß$î?ܯ½20±ßxwôÖûæäÎc÷ÄZdAß *ð/ã'<Á»HÛ~fx:sIö»j:-m*
-×;S¡xKHyBn=ö*z {ôki9`-Á±c'*¼ë'ðUEí÷AÊ{nÄx¥sH
-Zf¾÷ÈSÅÛæ¹Ðs^EK¨×)©ç© UâBt9C̬ëÉt4bW¬máBÉÄÊIh1K§ZßeG®Ô$¦`$èOR ·EY1ð!¯y
ß!µxeÓ8Épw2VëêFFÜE3ÞüõËÝß° åÅ)/èïUü{§^8 Z<O¤ÆÛÏUè¤{í-<xPÀk=¸Ëê-OIDÁ«þ{#ZXºVdåM&×màEäaqÏÍæ£Icê(\#Hû8duÕ Þ$nFSxÎûE7ÛÔwX}VÐÑ«8~öNûº0§;>¶S5ûq}6ªIJ¼øW²ëÁ;9&ék²í§RrRDÒ!îJ£ 3Äá_|¡ôºþï ¸¢LNMQ]eu-!lìzãmíH}OO4uÂ0É2c=òõñÚ?cSÌpJBÁu0Ô7_RAÅå
æÕÖ»ÂÄÁîfV=®\§|(0ôº<á¦+;£Àê}çí¡A01%7Áb%.n;§õ£Úð½sÍÙÉãe|F5<*@eHÓÓ@a:g]
-à^o¤LS#ÿ]²sãkóÕ¦ãT½@Ko)ïøÈÑTAË´(JèUÉI~R.¿iÚ3U-qL4S8uiS*Q19*ÓÖL
--íúÁiËHà£ÔÔFÍNMfú¸¬eÐÉkø0scB+é]ÝÐ]8z9zã½¹jMAã&;O¹sXãx |±iTF3gy?¨æp&
«;P°P-2T%ä©G ¨'XÂvÅ2ÿ¸s¸úÝE=ïIx8<ËÙ¸ØïèЫ9UÐ>î°ÈûtzBçPÖQ)C,xú]ùôÛqoìºL1«wì^pH¾q|¹«=ÕÌoÛhQãoôjúDXÐñoôûÆiKÖ6lo¨çVu¥ôÆ+-ï£ö©r¸Ý&U:âÖÄëv_iÇBeå)0Õ7æx7ÒØ'NL£áF?Ýs*Ñ:1à>üß[qÒ#ÂJöV²¶ÖG^£´ñÎ¥ÐZ³reyÄY¬ïDÜù3x/ÿ\ðôúãd¹_bÛ^êï²$¼¿!ádÄ{.`ó1¨ÞbÏÜ+%fn1ÒT\£öÀKNÑÃjn®=ºUaÝ5x,¼ÇÄ®{³ZÁÅ4Ùg,ÖcOÇÝ¡LåЧު¼<sàÓ5î7$EHiQzÐØYäñÂÛW§¸skéD¬¿
-VÅ;tq3}ô]vIçRZnÝ
-7"
-d,ª¿
-÷ØÈ(fr¨÷2
-±)ï}ZVt.
-q-%dÏåÏ¢£¶é¶ ¾Ô:EmÚ8ew½.{çd1èúT)Jî@»ÚïÌ0ñò¨ÄX[]Ìè;>
^ä#S;w+oÂWoJaÊ6þæ7S½ßaôØeI5Ñ4Ö×°É&Q½×íó%ÄñÿÇØËRë¦ìîågæ»GGMÉËhpÇrO½|ãØ;bPR`ÚØÈÁìw¤ºNs'äoøðmó
-±ä6òÑR¦4^ÂoâlYîy»&JÙIz²kÕ«òë
-øyèwÿ0§ÙßõJЦ]ýà#Áð>{RecÍ+Fø#ÕÙàr/máæª ¶¢ju¼cÜômE®÷KÞÜFþ±ëF_Jû BY̾ÓüÁ9µXb»Ý@AlN2(§´
-^ìå!°¬íßJü=ÄÑ £znQ÷ÆKèQº¹¹ÓkÏ8ø6Mf²9þQTJUÅùºÄÛâ«Aó{ÀºÅ¾dKu ìàÀÓÐ1¡*âø]ü¹ïé:òp[^uÜÚÔO08³Ñsaïê¶ÛöîOr\Óá
-8%>®êÊA3¡W£¨~ f`1påKÕnô¤soh'â´ËDo²½Ôìæ<ÜSÎf/YðtÃ-w\OÌb.e~ü~øãR7v¨¥Õq»ÑnÄE:?ùôïEâíéjwÈíþñÿã°Eëh_fvØ]
-RkwµZüA?Û+)ö\lMøt̬²È÷ZæFb?Gá¼øîøãôa.ûèàè¢|Ð0ñù£Øëó¸ÓhÝvq<8±$ýÎaª9Ǿ߸q«µ¹] Ï}$¿þMãW?
+x½\Kä¸
+¾Ï¯¨óUÑÓ²BÓÝåCnC[²r°{Ù¿½MäêÛÛ].ËI}üøÅM^þüòûE\®ÂÿºHåº-üüã_¿ýrùo¼þýñï/oß¾H¡nîâÄæ~ûçå/»½HyùöÛßïF>Ì}y>®Û]½/Ûã>púqUwgâ_òqþ³EÇÿ[EäoïËâ?Sá¯|ûëç·/¿¶v>XªñÉj}¨»?¶ðÃ
oþÔå
+zõ=|fÁmg*kØÅúY^ý¤Ó2ò¢òg*,K¢o8õ¸ê{ú<};#}b²ÌÂ÷øÍ=ÜaÑ}ùëqGoúNz[²è«esAGñjÁ
+/¬èFøüeº´å=^ÙÀrþÛquöEüöVéÑÞm¹©FP¨N:?ÕÀ¾5ÁçïzI_Þñ*oÕÒäu=Úy+ݳºVï`,$Wù©}>ÙëÊO¤b8,Ñ$²ËrOÏfµ{ÈæbWÛHþÊ]~ÛY)«Éì=û±BÞ,c
+SûYÕmmìg1yúÔ">xéy¡ÛüðÚ>À
+«ääVhèXñwë¯-YE½À:C¨ÊZ
+ý$7k"ܳ쮿FaÁ[ÜVu¾¸ñìÎfäËÆÙuòVÊÛÆL*f¥Ä`E3e=cVÀ@F¤©·
Ð$òRN$>j)ÔÆÓÞcÖ?æïàaOâCþ¢«xQjÛ²V[µÙÒÐNâgµÒxg¶côH(¹àd·@Û£P»ifòScÕR(Èv>
+ù@ßP$1QL+5t
+yßÂõ1÷*èÁÕ((ÅKT?§¦C*4bEøs¯w¼'¨ë
2xmð
+x>F·ÊÙ£S*æI9¡b!
+Xó\lÏÐâE°NAîT#»RúU9«6ÛÍ@!¾`J½!7äUÁßÁy/§E¦¥©¬&&ÚÏù>3
+<L{IvuÄ{à=Àéð{fn7OÜ$gzw.ßy(¢8ûî¢r"DÒ3Û§&¢¤é.~-ö¨LJ§ÙTìÒ
+Ø÷Ùªtñsö3è_Í´·STðìê>½ùÄÁP
dú"äÎK4¨A[y6`á½Mæ+üé&s¦0
yÞâ§R=Ø'¢Ô¶K;*qj ddÁb`|3K¼qÙ]gO¾²2*mÞ4/àv+ïDýlå`SY!|Â̬Tüw±s4ÁGCä» Å ~Ïúõ¤|ùÂJIdüm{ÄGÞæÜ~¿
+r2 ¢y-Iøß]NÙ±º#@'>Þ¸vRÕ:"ªÞ98q³|5l}ÍJÃWõó÷åíHf£äô©BÖ"¯¡rm-ù ÇwaEN`"Zzf#ÝMìÑM¯¨f'`IêO>î$HôíÜ%ÑA¶b&v . DùÄ¡>j{øþFø_¾
+ÆÓ@ÅÇ3î½P\ݯí]HÒ$Tf,3Ög¬8.ðíëTØ)-jùä"uÔ£b%UWó®>n?¯èHÑ
+ªðtúìÌ&þîKW÷0Â[_kgFl$¿É8íØ)K×V®WtYXPe)ËÂ]}³N¿ÓMÐç\Uõ¨l·ÓtU=XDã½ñ×%¨|¡á £
+ؼÔlå°Ç,¾Ò¥åù¦\À0S®0Áæ¼GýΧMUj":ÄkÍÍp9/J³
+ȪJVé'VrÀSùlñÎ<\㹩äFÊd ܥ߯näèW΢jRrÂL
+½Óø8v>/vµD#C´òCíâP|BKÕØÔ²fϵå6BÈdjK!îI¨k.ìcvÀî·bã´±fÔòªÔ<ºÔª=,HÖQÜ^aÜYS$¦GxP1Ûtvmá¨Óô¦Ê9
+S(ÕäR|¼ã
+´§¬1itìÙy§Rµ$dsÊÚ6 EjÀu ¦óÔ<áñôFÛ4IwÒ@Ðô³siÉç¬8 ®&[NNnUÇôI¡o8mÖ GNfïixÈI9ª¾8 s0(tî$°VHU¯X¹Æ,t)S+7m¨
+ôpfïoÊmtÈoB²ä¶ÚिrhR4/j%94XÁì;¹î!Ð÷ûAÇR¤ÓxÜÏK1æQ½£yÔÐÄ
+üÀ¶¨6$º{$eÐʦõsoJSNQ²»ñ·è{êÁ
+»éÛm8¤@Ø# ©lÙa%FU^ê0¥Bâ°Kìû(EJ-¡äúK¬É8£÷zÙu1(+E1b¦ÛÒ×¥^úPOÙ£%ôæ6¼.õ/dA<|-ųÆè¸/{pz²mXÂr
+®üJX<¯dóOóyà¼#ªîXOBµÏ¦TaÍ?nº7䨶s´dÑd[IêlA£RP¨0±Àæ]í±ä¶|¿@å@^y¥@é¤á=vwgTë3;=mRýHÚîPù>F¶=CÐÄE´ÞÌ÷i~Úë©8aÎ(U£*kËJG³mL1"ÿ^ßÕ×᣺x`ã·~tÃu3§6±
+z¸ãPßt<ÍõÈs#4a\ñ®Qßݹú(&:?wg§¯&$sºâÏ@Ë)zfäU-TÁJÀRõ¥¶Ôä'/4{½-F6¶q[*a4ÿÊ5`ðÿ.dÐ$çú;ÛòıÍ;B2{pÏlíBÙû0+Ð4µW;¾
+"æõ.8FÛ0Qê^X&^Hí¥y¼C[À ôé@]zvy£x]ÚÁ·ÖkÛ8°%GâP2
+BSïäBWBéú¤Þc´Ôïà a,ab99ÞøB!¹òÎu4ÉA°0å?Ì«úPÃXÓ¶±Ò(-ÀÖ¤{ñ^ª>Mp"ö>y5M/ºêo£A7e=1éh/Ï÷M
+Ú¦ô:}åøÀ`É09>Q#BxB½7«¤e@9©6i
+4¸Í¾4ȧñÙ~5æ\J.í×´©/aé'±B*lb6¨þ}þå3aø
H
\pƱv ÖQr[¹ð2°¶õz;¥ñ¸mÛð,íðÈÅì}ªç-¸Ö°¡
+²XkÇAf],ƶ1Çý:ôaô ì{Ä¢9i^
+³É¬Þ¶
PïÒm0=`|;VZò1bàPä'Ìë/Îáíj=ô©=ÕîÚ(vöehÃÎò~âpôýpg×Ûübó.
+TujHÖï à\í¼ÝóÉ_D
+yeògxÝD[*7|
í\t®¦GéÀy*!¾¬Ñ2ïÁ*Ô¼»8Y,¼T(-·]ÑÆ¤á0E3v¸¹3:°¹¬ñ[Üe"îñþØâÉ?õ»ÔÒ¹}:°L7^ï
+i¦íblÀUáÿó¿¬áåë¿ý/¹ðA¸sWéʯÿgòµ
endstream
endobj
119 0 obj
-3446
+4106
endobj
121 0 obj
<</Length 122 0 R/Filter/FlateDecode>>
stream
-xÍ\É$ɽ÷Wäy Jn¾ÄIB®Ý
-tºiF @}ÑïËÜÝÌÝ|ª©ê¬ÈßìÙ³5J½Ãé?ßþ}R§7
'Ðøs^ýÏï¿þòÓé_áKÿïû?¾Ý>¾¬ïËiû®O?ýéÓi>}üz§5ZÕU=SZµº|üóÛóãÛÏõJ¿Ï§i^ßMÃ
-Rz¢8¤÷#4©õÝ6èØE³Hl^
-ÎJøÊ>óÙL-^(ôïla\¾ìEAÌ=Àlß§ÓdÜû×dO "/ß) ç6[ý)Îþä< ¢VúSpîÉ«¨>k/òTû.
-²½®
¸/æå8ôÇiÎì4 êh
-MCFøzXk2æE{±©7&!ó§kSì Ò ×Y»°;Ò
-%+ yÙäɬç?Gß*@| ìÖ±_ж¢ßË¢Ñú`!¼Þ£µfµÌ$%53kØ6ÇðÒI
- k, ¥<Î=Çß²
-l*D³pò
8
-Sg !´¦t$Ϋ|RºÄ8³¼»Ú"|_S|wÈÑëSLÇ!4[ñ*$#z?²bÕMgx|+T!xK~%_mW'þ_æ4&Q*:{mľ«¢zj¿l<´1n>í÷³náø8â¢ìÂø}$< óW¼ß³î$%},2
-õðÉ:xªøiªø=Ô¬,.ÈWCîøé©î¼£¬v¸t+´Ò` ¸üÔ,,«nï±Oÿ½2xmÆß½säpÔow߬êY>§A¯#áÄ=XÃÂá=à<á_zN3¡ì$XÖÓ|ÿåôëOõÐxßÔÚ6\<Fs~¸ÜG¹i5¶¬ÖÖ]¿/ZåÂáøcºé'ݹª)|ÆoôcoÆ1foÒ5,øsgíà_Ý&J1Ü£4nmm7í¶áß¡Mãϵ¿ixGáqó³º;
hS~F'ÿþïè¾x
-Õòî¬ÙßÄßÕ
-¯Íjç¤6úªoøÙ_5ø¥¤fè60Å3ÅO+®.ÇÜ?9eG:]ÝÎXfZtè%Æc(aöI¿Ê/Dqdl·ÉÊh 7L
-&=_id=N¶ÙèØä3÷:@w×p&¶ð¼iä¶ Q¤«l!OíÅ #÷ãº2l¶mp0íe±9Æ]µÄàC·ÝWM[lØn
-'3Må£eÎ
-SJ¶_ݯE$|»%UØe,àR°×K-¶a>/QVkö%»~V§çª¦üD#¥(ÑøÝÎmw
Ç»
-¿Ê*62À
]}á©ó.eÏ\B·éC\ÏG*
\hÉ*ºöf{åÂmÓEtãNÖW§BkC,Mþ3º éMÖã;±XxÊ
-¤$!È(E
-H
´=
-J¬5"WØJèEuQy¸âS´Àw
-«sKf[q'w$úÉ[SäÞ
-~Á½?YkÔÚÖ+{k(ñ,lHz}½ÓXÀØM_:7×ýçq²nwÛÏn*Ìtn+þ]ÀôÚ·&TnÕDõ ¨6U7å4¨n
-´B6WxkÝ\Z,ët2ïcæét$$¦b£XM˸{YUíÖ¶lɲ¨Jcù&«cU5,×ÊÂ
-¼b]÷N,8þfec¡ú¯©CÎHoÚÁ¸ãרýGBÇ
-ªJ4T¬©ë´ô|ê
--ZÎSÛ<ÌþûmÈØ¹±ÖÄ25épcãÏ8tázL+SÛ#Ûl~r6&YÜ(²º1êrýÏDSÙì{ý
ûµ¡ýDö{¡¶¨¯T¦.#Ý3É;åêE~{)|Áa?¡ÑÊx×n 6ýaÛVRX6ª
-×±h;OÔÆDR©a*Á_òµ-äd]¼bÉ5gʦ]2[Ìd^ÆM¸ÕJXÕis2®ìó§1Òâã¯V¬»@ÐfØ3ÕWÞ£:ø ëÛÙOR`Ò
-;
-øÉNe6L(̹&KÕI¤ÑAÊr¤áQPÉ´µÑÜBa< F¾MO=¶"ÌÃ?4ØÌÀª«ìö+¤H,%ÂK(kHøgtôôÂ{+ó%~áÝ6dijÙyqp¤6H£6~Ñ$ûGcç½iDEo}Ý£7&æàöøÿÂÜ{^f³{2]º
-&A°GÓûÓZäç' ¡ºÓ ©¼Úy;ÞyǤ0æÛB¯-nAv4½ª¸Õ;/Áô¤¹Ç
-052h#µk¶tÛ¹¸±ôº7
-ãAÌqáÁb½f¡ÊlRG×s׺_ÔÌC¯Ò²È¥Eì
-»×½àÔSóöÖjú½a(°Ä-)QØÅ¶[©Á;\}¨¯o×¶m·ìúX k!k¬$}¶õ×Gæ«¢ØÉÊgäKÖ²æÇÞ~Õm.Ôh_rFÅ;äÐ÷Þ5@Ù&¬Ïi~o_å¡ûÈÛè¡'Àr.FZß±íÚiÎè(cÝóZò£Ê×@då+½ñräeÂgR)Þ0>Ó±_{ÛqIÁæa¸Ñûï:hØFÏªÛÆq\U=Yȫ׾ÖF3Q¯Ù¢üˤo÷ݺ¶Åt¦÷:Vñ2PêD¨#hAü7ò_ÈÉÉäÂÝ5°þ"ñîÕ05ºDÎðH.ðéKúx·Ñ0·ém~
-Dµ| Wi_wh7¹6Vw÷c}a£³
ÍQ<¶ô3¼Å0nrÇhÇ£\ðIÓSÞ¹\OÆø¿±âãc»R¿püböô[\ÿùô_ÞHãÖ
+x½ZI,7¾÷¯¨³¡ÊÚRÊ¢ ¶<øfhðÁÌmì9ìËüýQ(¤P(%¥²cÔëªL
b_>I\äéÄé,üV*ÿéøüë·Ó/?þáß_ÿùx|~HååâNÿ>ý¸N')O¿ÿzµÊN·³W%nÓÕJÿ7üö¼Í5?9OWgÂO+~³&<¼:};««]Â3gß·óÜbW79å_R¾ëü}u6®Ôa[¢7
+KÜ_3yäfFáÔiMØ9²ëPªÌ\ü!<àîþW"¾7dikØ@p¬
+küö
+ïÇ
+-ÊRèH
+×Qí£¡â7ö$JëÛ¿>úx~ü¼±õ$ËÒ°6pðùßÖ
+ð»Øª¼ÃïRé983
I½>é|,\p¢Ó¤=£¢æâ®ÀZô$î¥I
+O¦Û"ø6±Æï¨V+w1\UR¤ºÒú¦®b{úPððA¤]J¤}xn!·¨wÊÛÝ:]Ñ3ÀHÔ(÷7òitoXå¾F+¾Í¸x)Â޾ɫQ72ôb,ø¨X³%³w9ÖÎVÛÐû̱ë8-§¡¸ÌÏBÓIrr°@aJ` ¶°´q$ýu²-$é¹Íܧ2÷N°£LbxëAá(g©I*wãyÉð$½MÎÓÕômRXö¯D×y1Åáë¨J´ãÛHÏòÄý¼HA<ÒîÄÕ[ÈGÙY¸0l0¡Çq¥;rgÏå]¨>"ÇÇ<O¦J
+Ô®Ì3¸Ieô¡{Ñ7 a|¤S~hᤠ0sóó¦Tt±
+_MË
+X`êçW\"Ú\s1Fò8ÈhäÎo<RJ
ákooÕ>ªV®Û,(9j3C«Ë¼ÍAü(ô
+»²m"¿,ðÊqÍN*Ëd=HÔ, øï ¾Û©¾#OÓ2û¾(mX
+v(Ý|8øx@éÎ5ݦ¯XÓ×ô
+¤+ å¬!n¶JöÉŲ½,©'HÒ îq}§Iì "S(£â7ê)_ÁîN4ö8.ݬ.ötßøíÈLDÚÛL*@ üIøM¾è)-9æÄ,Õý¢ß&b-{ÙLLf/#ÊÙýÐh_S¹/èE-CEéÌeú®5»$ݾÄ(]^±ok1ÔË<H«7èað?i·à'9î_¥&"e:¢ZKµéBy°kã!ÓÌ&¾Q*ïÞ:ÜT´ªU dí|ºªà;í-G6[¬f:ÒnÚÁF¿úÜ3QÿÆýºmâë/âR8hscmL¼ç*&G"Ñ/0ø¡8ÌN3âS
=Eû<h߼þµï
VÇÿiBL ç°¬g\Äqh׸&l²ÿ#ùMu>d<Ùl3Yc_Ú
+ìD}yb?X=â6¿èJ\<¦°ÎZôÄá4öéu?HH^Ñoâo÷;39ü¹vhÌã^a{ÜÿâÎHMá,²ñÇ£¦¡^». ÕÖµëÆÊ
+ÒÏ&|¢v8RW¨ÙÇ PÐrYïÍF¸ÒÃj Èc¨VñjãñWß÷BK P¥È½P¾^àúõ\®1oøÄ?û!ío.ê}^ ^¨4üµ¤¼Iù5×/CR®üRõ¡Ái'+ÅðÌ&sJ¶d252Y^MæµÞY£áÀoèäì±0O~ì¬YÖ% o
onLUÂ)z=Êëu6Íi!3üdÃF1½ÒËÙøÀ
+n1Y!Y-{C/»*
+´¯Þï
+2Ü^Ep·Ú3äÚÝÁÿ¢é¨ödǺDuC
)Ï5ÎÛ*8:²ñd5bÇ-±2öÅÑܺÇd$KüP£µmËïÄbS;ĨÃоHm;oÄ@óøé²¢Ó"üU¤PpKÙ{ÆlTY³Tíq£~¦Nûj¬AÐt¾ÛúeqÓoÜÌ¥'qÊò[ÇosØ4µRÉĹY>tnSÖWûzÓ¢C÷õé^¸Ù päηn:Mù¶ft]×ù¶¶íÐuµ:«q-)wÆ0Çk¡<Ðq"MírBVbÓç-Íù3=0ǵv³ óòRu´Û&ÂÔ¾F¹EÈ#,( ´ ì
+©dp"%¯ÀL°Ù {ÉDk£½h!¼ïXçí5ã]ߨ¤8jmÙ4CakPÙÐhXñ¦¿"¼¶McûN¨|<;aƨòGpLCªË*$©Âîm¸sèìÜøP²ù±¿stl0Á´¿U\Kéç¢rÏÜOòü¨wÒÇTïß ¤Ú)7çÑ
+B Pb9ФV´3¥SæÐÖAÂ×Êö¡wf¯-b·Z[«ó.P¡
+îèq6GB§m
C¯¦GÁ¾F¥Q´ _Å¡Èï ¤Q]øláï»SènÌþÔøµbÆõº(óû¢ Ò¡>FXúàc/Ké¾&ͱ¼{Ì5m=µTèæÆtËÀÌа٪;k)Uc¦<t´¼EºúºzÄS{a9ß¾zË7ÝOS|¼?
+ÃgmRY?}½èÊÚCÿ[LfT`SSóÃ-EAMò¯Ù+(&J¦8üâ×í÷+ààªße
+Ío¶ô¿¥
+;F0á`ºæe{.Á!Å=|yà%|ÁÜ¿â> Û$,ÓrZG«À!]`(þ/eýã?þ0ø
endstream
endobj
122 0 obj
-3727
+2594
endobj
124 0 obj
<</Length 125 0 R/Filter/FlateDecode>>
stream
-xZK$9¾×¯Èó@åZ~
Ê×ao
-{Xö¶3s¾Ìß_ɶdÙñªY²#¶lI.sÓoÌéÝàc¿ÓL¿ß>ýë§Óïyþ}ÿõíöùÇæ~þ÷ôW8>ýòï¯ïîbÜuºÀóú>_Àp}màÝ^L¹ã3~ò×pçà(ØòE2ò9|ðú/0©HÄìTݯ8lº¹åá{YÉÃGH`ðcªüí'ËöD>!鲿OùDåMm¤ú)³am·ª0v«§ÇøõQϳ¢1·ümNz&óï|Y¡rZõ©»Ú&JñuýÏç?ßoßåãÏiEý´úó·µ8OçyDÚÉü§JMÚ³ö³iO ´,êÃïaëÔ`ìy:Å)g°óÏ:ÃC
"h$ B¾h$ëFS>fôõA|XmÓ¢Ç
-&+Ï"Ü,o!¤YZ¯ÉXHø¨Ù¼Ôo§c0û¤8 !öòO&T7î¼ç3£b0ËòV¬YòË|hã.P
-ýÇÖ|ª¾eæ ©ªù£ª® ¯ó
-*[í*p$ùÛM`&üf6½)5c°:ì²öA´
-$Â÷Ú¦¤½ ·"4Ä®xºFuìÏùö%
-¯-Zë£Ý:² w`«%yÏÛl?
-
-ó«ç[Óå9Yû [@ètn>»t%ÇÉn·¤~SN<wÈC"ü¼¬8ã¦%6#ÉZ0a|Dõo\Þçb)Öäá%nB(³U
uðcDôÞ5gK÷BÄiùàì½ZÉØº «å{h9 ^Ò$à ÉW>Å0y3ïz[põP{ß$¬@kChÙiÅÉ«xþ$b²wÔ¢éõRz8¬DýNhE)tÄæç¸ËQ`ÀÏ
-+·¶9ÄÙk´%ßó³õµ-R.¿°.ð¿Èº¾ìß}
ôRÒ¼ß$DR¨ýåÖÄÖr±È.
-/ÜhÉEZö«E¼ÌÕÕXeë0¬{c(^¾¶ÿõ)²þäº*T¡«¦´Ëª%nx°Å É´í|
-wŪE(Ut8&Ù¶IÊ$¸ckà
--52åP
-pz-^ÜZ3
-C×ÅG·
-©Wnu
-½¹Þièóë`Þ6L^øÖÐú¤8}q;lï¹<¥ÖrDñ'°%ñW:!²å/S
-z~9 at zSñbTâÓŹ«åùÞE¦ÓT
-×ïT£:Zµ'»<P);âd¢/»·/ÁåЩôõ²a¶RÝy,Ê.̯ͨhº¢l#Ñ``W
-wUmÇþ®Þé³"
-¡¨wRöÚÙn-øJ|'Æö&/X¡Ã¥E9XÆúe)ɵiÇÙ±¦méÂ,udûÕÜ?GÕÝ2ß3¤Ôío½-Ó³cë½RÔ»·ÐÊã=NnX¤` Û>Mj¸
-ÒÝ,èå
-»ØZ"å[ ézÞóF¹Ó
.é:¬H%ÓAì|ÝÒ\ì¼qR;
-í8N2P$ôqËN0ÅåÑmºc®YîòT+m·UwÚ©=NÖ±5£à¥{Ú¦9?/Ý«Ë^üAL2é*ÁêB²6µâÀ]êi뿲PTn½U_*S< È#¸ÞôVoà¨suYîT?4¥w¾J
-È5Bêshb~^¸ï¢ý!w0¹«ª^Ág³..â&Ø ¥@ß2¤çs,)øk¶sÀYw^¸}?fU¼Ú/ì¶Y:¾sSãÕWPúj´ú3/a«ï£µqT«F^a·m:yHÜ^Åüu"ÀÃL£FBª¹ãÓÓÜS/ãm@®1§±Æb>ÞÍaÁ<ÑÕ'@ÞsüÆÃo¾S(
-H5áÄ<ÃÌæÙ¯³Þvéë0¸Oþ'ëàe¸{p5Iü$¾ÿ|úå§E0âè
-qPÀãcúDÇÄ?z¶OÞGÍ
-e2ÃøÌÍ>
-òFógyÄ>usà¿ó
ÀªHqç'Ȭ
-
-0´ÞðÿPçØå¢wu×Ý;軹ÙdþT6Xg?ì
-é«Ã_Éf°Øu@ò¾Û>ÍåÉÙæ±ä¦yz;»dwH¨°álÓ0þlO^jGwJ%[ªsT*.±XºçO¡\ÄÄkîlÙ5Ò]§Åñ¨Ã$IWr6(Ïñrz³ùçlrAìµÜÚÉ:YEÁe>EDv8|²I¡à¡ù¹|;ýÍ·1û
+xµ\K㸾ϯðyvD 0t»¥Cn4C[vä {ÉßÏ*²HÉÞ i[Y¬úXozºËÿ~ü÷2]Þ&÷§Ò]í
+×?~»üíËüMø÷Ç¿~||ý¼ÚVwýúçå/»¾qùúýï7îòf£ïoBÜät×7ÿ÷Í.v2ûºÕ_gøþóÍ*ÿ{üM§;»Ù¹¿Íéykµþ³ðã©4{¾¿i=¼>ÅIä;<Ù¬V¦O3",Ũ2A|4ÒéÖ
Wë©
'ò7y=dÚ=rãVà©#DºÓãVkö>^Qq̸-¤ówçÏþñõ×Û×_+èi¹Î`¯soÌÕ\e
÷÷ Öó y$Áâ
ìËÉ-ÿÃ
+%§ÈwÂù0txR
÷¢0bë3x~D¦ýx`è0Øy{ B?ÑßE\ªQ
+{ÏRÃAKßÃWOeäC\Gxô,ÖN%º >±2QW¾ÍÝݺøàd}E^
+Dd.2j%éEµ"òMÀÂÖ[b$Ù<Tjõsd')õðEP½´IeÚG,U¥0fÖ¨0]k=ó®ôZL,DRÆocÇo!ºª=±·/ù-tößv,óÚ2nvÕZØÎWKcEÇX1c½uJkÝÖ߯Ø;ÞFµÆÀÃ=&y)ç©rÿóäUò.{?¾÷IR*ïhô=?*¿$þ;£\Ôz-@áñR±êj.FuõP!£RqãaÒ|py+è8ü ¿ Xî.ù¥øØ|÷³íú´bÛ²RÇNÈ«È*É79
+7ßDö¬
+:UÍÎ'pUªì⻢
¦4
+líÍóFÖ?oæ `ptåÍMò'kJ¶õ+Ô3¥B\9¨@.ÅEÏ,QÈ{P)ÐDÉõ°K¿à|[üVv'´Êu:ÎÑ£Nx$>EñçÖkSÆA&mbýÕ:N`&uxì]̪G\-4B#ý´µÉâaDý|#h9»¶etN|´·àûç¤^W'$Ú" L̮Ƹ(&õD¸µÖ815ldµe]´ø,o$£«6FO Ó$rûÉ9^¶B<ú¤ÛD
rÄy¢6âS(Â4Øqb©MÅw°ÍHîä¬;>eÚ8BbУ°Nåê¬Ð9ÎÅü([×XÙª¢³±ªDÇ we¡V²%[/l×iõh˨-_´é=®¹dÍ»þw5Ñ_OßnÄ9, }«%ãbê$
+ÞÚcÔê x !Ó
+
+zk§kç í/
+VïkZb<õºù$H÷h8ôbT®BÇ+Öc²J£é·OKÚ
+<§!XÝÍQÞî
RLåÊqm£²X«l~ª
+,[E3zËÖÅÛî¸æü
t½n&ŤYÒÝ]Ù
BäeðEøÂõ°aÐð)â@#éµ&÷
+.4Õa|îÀ:£$¡ZÑÃ#ÉwËÏV¢XóS5üÊÒ4°´âÌìZ«{/X[Dbò%EõÀ ;¡éê
+&z- ¯8Zp1E55×Ä«b¶O^
+gÆÑû u'h¥é¹ÖyYÚèyÅåuCTä2ÈS®ùÓ;YNY_ÿl¸;K¤ï£Õ7?âwóeìW¼ÙfU@]=7ϼp³³^V0±âð)%4û[³¨8¾WmøduS`,ß>¾ïlíµM*&Áߪwäd£¬³Õ¿|X`Èî
+v͹ÊÜ.(ã½gòjêMÙ½¶Æ5®Y×é
+W;H ¸Mà|HÂ×i_ëöÛÏÜ×XÏ}\µËh¨>÷²BÓÌ8í`©òª³SL|+ÕÄ\%±¼6ÕHwç¥lõÙºi¼ %¬ ú'UqZºÝ %Wz«ÚîÇN?dÖ@]¸¯Sôs¡eì¦Êë^Wç»ûGNEöÌÕ],î
DûX'¡Ù^*ÌRZN`VùàE¶f¨QSZÑÊ>GÖöزòG»ñTêÒ$©©'ÿQv#'tÀ¢I
+ýHõ_Øø(+æRùÈú$\nnKI´ûyÐá±@e«áÈ
à*[Å5°ÅökeÁö¨"J2á¶ø°2ÎxÖNæ
+ÏIJ|N¡Ö±Î3ÍCá<÷&è'g5Nï¨uV.9[gÕÃëaé5½ÃЧ¢F¡ÀdÀÛæØ0û¸ûÝ2ÅCè;ø¯ÒNâðý¨xß6U¶ùë°OÇléc¬¿¬ ð<z©WТµ&û³ú5CÛÛ<´QäÊOl,PÆ/ód}jt&ÖëÂÈû(ÂÚ4®ÓÓ°RgïîChÊcÓøÔ,Õ7´ÙîD[ÀzTå>I¸0%´å\î*å©
+».LlBjeúX©ÒÝ¥>#äÖý]Í.FnQq#5·í7õtRÌÞ{½Â(´8¿åesPºÌ]°g_³f±XÓuþi*èúÀL³¥xr[Fõ
+ÞÀyiÃ`'oîúxB>ëä
+úKûgúÓ\êCó-íñm
+¤åá¨I,²1øÏ`ì?ë 'ÐõQÊÕÔîXw³çYG¦3
+Ét{R41¹?Ùz<iþúæªáí;aÚ#ÃÜÑÌ'RBµçñ+<ºgs<
+RkCÌòÈ*w2´.³åe¬k_j#çÓñÓRn¹F³Å¶·ºÆí°Ñºµñå¸c²¯" ÛmÄ9¡^X}·ôÕÆW½ªÇ sQ'6O¸W'LÖu
+Ah²ùLV׬lÁÏVú¥ÛK4Wªßù-ÜX¡G4ÎÍG!,ôw׸ýÚ/°+ý
êýDÁ½E'ÒÝüvÂnE~¸§¥h<_p¼im¼NtµÆè~ÑÌà7üÎÄ |ë3k>ï×$äÅú5MÂzË..î"æ|ä.bO7äq§GzWÂsÓxD.#ÏïtÐ=Í6}¦Ê£<3²ZÉx¢ò[Ókϼ¢O2¥°t<ò ZÂ
+ÂEü6Ïáf&
+ï®ôn³<ÅÉØÏ%qãÍÜ& ?ÿ1¹Íean£MP(Zà·.Ü3PØ[ ßÁLÇ;:G~bhYü«×ó?ñáë?x_f
+À=ÖUXø×Z@~ôßzQÎ,MOáÖ<AÜÒ³m¸õëåÿH
+áÞ
endstream
endobj
125 0 obj
-2614
+3663
endobj
127 0 obj
<</Length 128 0 R/Filter/FlateDecode>>
stream
-x\Ë+ÉÝ÷WÔz at r¾+@jIïÆnðÂxeûÇàÙÌï;ù¨êö½hÔU¥|D8q"2ë³\~{ûï"_TásÝâç¯ÿXþüÓò7qöVl~iÿÿë?ßÄâ6µJ-J·øo?¥æâáûÇÑêlUÄû_~÷z~ùøö׺u=ÉÐ×»s
-_múêâ×5ÜÓá¯'{ë_?þðöüxû¹éCÉ5´î¬=¥>Ô¢]êB«ºÈ-~<Ä»
-¥?W¡
SRhéÓ(Öø¿çãü¬;ãcoÒÀ| }W:v!Mìâýæeb&¶>n×Ó
-·ãã"?®g]I¡Îëb7>Sov2õª£¶hµh÷оPÑzáWwìEÅù÷4·Çõ´ÅgãCúºFkÊOJO®ÄvÈïq
-÷ôPz4]^øh2HzºÈW<.=Ä{·m¼éâ¤Õq¥ Dúí%R<ÀÔ\J·q'¥aüÔ·ôl¼}étÝÁ(ÑZuøN<ÃEÏÌ(_`gJS|H0KÚ~aÜU«;»ÁRÇ?þµ¯Î¦KX#ØÂt_Åê¢T
-£k¼²ÅZatñϳ 3,E
-+
-XÄ'ß,0iH:}Áu%
-ì^m_¹våÁþP¾>#l
-Öþ-«¿ãh5NÆé?ÍF`ÁM^W"{J¶Â
-Ü}NÖ=ZBÈ©múÎ?ËH´ùêV:?ŧA°âå1®XM?Èp*ÓÕ
-<* ¢Ç$¯*k˼âÕ*tKloÈüGÅ©e´T¤nùc×¹+`hb)Ö²::Ì70Í,ÊÙD}1f§º-ReKá[^³ÂW¥A^Eä\DfùÑØßï)óaæÃÈbB¶1+¶b·¼´Èüå3¯æÎR7¯ºÜIÉÚÑFÝ@M7=z
ôãü`
-$}bt
-èÖÒÜ18âNs¤áµN£\+¤Ì<úNG^:Ì2óVv`BSwh+ÅÅÑxìÅ@#¹a¸>¢QÚõ8taξÁFÒkb"ÐoP5«·r<
-8êA#=$)
-þ®;Ü+©ÈGæP!5¬GK?_ït$H,v4¦ÄNª>X#¹xúKðÍWR: b_á22Û}¶µRDFë`q$³EnÄezEõþVtPøtb¨
-aÀãñ³ðbW
Ó÷3 $tPÑåÃà2¬
AÐÒ¹<È4P²;kYõÆ&L?¹DûYðí©ê·ÒÆéý(^u¥òtÕÖÅ$YÍ.!uÑ$ºO!&ѤÑUY°Îߥäy±ùPC|¡ÕKoõ`¡)D-I
lI¯²ÛQõitY<çAøÂ«?£òÖµU¢5¢ø¦Õã×À/=Áã|'q8%ÄY,n*ØÕ§æÆ¬hnñ)?çEE
-¨5O2¸´0*Y<aQÙõÖy'K7¸¢PRI
-*)VøZÑpTsQ¿
-ö2¹àµ:KÙFåKPÂ|É1ûh¤ê¹/kIäi¼êûø;LÔÚvCGTnº%çoE¤úþ¨LOø¦zCæò×§DÉY*ìXÉÄ_À«i -ÊT#²+ò^ùâ Ùh>ë@«vë嵫
õef×# À]W+ÓÔóiYd_Ü$cÅ¢¡½IÐ¥28ÖäÙ½ÃÆ!¤ìKB´ºQYª[¡^-®>âOXÄæbQ¢*ÿQá¡{u,7Äj;Ô*Ôñkeô@ýñ2#EÎiêQi¸hêÍȪÓ)õ5ÊôeO$®QE]|.¢®Q5S Eõ°8Þ¶I¶ÛF#sX=ÔëZ6NHýÐÅyB0Öá¶»"n¤Z(é3F¤bº;Íè`jÖw
-Hݪ¼§¢<ðh¹"#ç`£jkid¯ÃZA~7<19Þ¦bhÔã&Ñ!ê45b¿Â8õ)©ì#
Ü
-ËÆ=àâuS]?C¯d"Ö'iÇ-b±½G¡[W6²[~aBNѦ£5VÃÙL5TMéÐI·4ÀLcÍ88]?*ïÔW¨~ÜÔ)UhUÞ:Í¡³TÛâÛ7ÈZ~Dl7ÅC*ïÔ¹@YÃ!àºÙ"T=Õ}2"©ÃÅ!´é«D
6ÊJ«ÎG
-µÚ îÊ'ä
-¸%«Iæ^ :td®$.½¢GÑSdHØmºÜi°R´¤ðªûÏà¸T½Ô vÝ#shµìÜsÐRT¨*ÛAɸÝÑCå\ªÛHfxoü±Èà<L´ùaÙÓñáqE¤Ô¸\SÜ8³ eÿ¾eféd9Ý`#©;zÍ-h)8<µQ9ICkGå̸ëB©e»$]õe:!©v+æg@MÎãdAÚ4ú¹÷ZJl}娿t'©OÕ55Ô>ÒÌã®?N¬HÕ%%rùÖ!ñ;çøZôdèôÜ/çZhéQ|7'õyF±rªÛÌjë·4ºSnl[ÐÇ|g°ù(2üÂHÌ
-F©ØýÆÚÚ4óiªÕ%ØP[ÔæÈÊV¨ ßÐn*ß½A9ãÚ H?z¢}üí·¸[þÜúãïßÄrË/³Aïoÿ^þÔï})1[hKÈj6¤YbzDs;o>áèÛ!?%Uº²öàUë®
-T}.½ÐhIEƽ±ñA§)n±mâÆÈ^>Íÿ`L¯µ<Ñÿ¶úËÞî·|²ûÓÙû°Kð½=úãÍðÿ¢ø=ÜÍUªßHÑ·èb,7,áCÈxE;-à$,ÜA~BÌ*zÒöpÛ¶ªz®ó{S»4 Ñçe»[åiC@ ¯m$Hð~Cìom/ãJH_âù©è¼Æuac*gh×ÝÏiù¥WÝY|Pyðx{èXTÂÆ5UnéA½ázb¥ÌÓ´uÉYÕ~s¶(GR¨¡n[9iò´L4+Ñs×m&{{Ì7ºa¼kîD¸CàÒíìà`ÐiMNÙÐä(ÈU´Ò!;§%4µdá7Y°§ÛénÏu'-ù1ò¦>ëfÎh+¯x¬0POZºØxuNeé&8>qÝfvï0+°<ææOVmó{J3iþ*ví^*é<ä?Rj¸.')SÍÞËa¢°*úºZþ¡%»CCÍñ-¢o<}«TkìÌ·-;Á²áîáëöXÝØu<^çÝ©ÌÚÁêâÅØ~WrJÊGåÏguÏdSÈV³¾ùÅ1ø¬k-f¿¢áÝHàíöô&ìÿ9ãÞÃWRÊêÅ)n>µ/ët/hÖÊ${m±]Þt§îJß³ÒÆæC¨é×øZÞ'tÔ´,2ÏòÃjk2FÄÈM±5C¿Í³:Þ@ÎØ·Åö5±ÊCI
-IºTÖã«m2xí¸õN=Æ@C³8H ç©\³5ÈÎÌR$v ÙymÔtrKºéMî*¡£ªéÖèd!%¼â,Wݨwã&½\ƽ>veYº§ÝM¾Q
>õRÿ5LR @S.
æO¯Ì7jÐxüñÄ>Áaåh0¾4s~¿_åÞ?m`
KÇEÛödCÀ*þeâñ'âI.³Æù_øöÓÛÏËÿ
+xíKô¸ñ>¿¢Ï=±Þ64
+3=í@nä°äl ä$üý¨JR©ÊlÏ&Y6<m=J¥z«T^Õå/¿Lëz¥ã3,ðüÇ.¿ÿîò·éuÔâ/åìùó_çRæÕħ
ßË«)?~÷¢¼¿S§6
+ÔN³Ø×¥ÌÔ!®Ã:ø¼¾¨Ø3_Bê.¼üjUú.?þpü]ËÇ>óòü|ùþ%ÂK
+^µÇ\ #
+]#¡¥¡¹ M,÷"x¦Á»h#|ÔS{ók°÷küïîWu3oC FGSÖuáênv¹_ÍÍ{x¦à¹_õÍ/ÿéÃýº@
+~:1°qeU&À gd¼æ2?ÏA¥qÎmi--qOöN¿rļÊÓ
+¤ löÏ)½L¬þ©±ÙpÜÖ~×°âÄ
+ÀÛÔç¦ýú<± ±MÍytê7eG8ÚW¡¥{«Kws M
Ò0Þ)ðv-ãaúç_º¢¢£»·à¥ D5#MB{ôÄÙ«8 9PÄe9UNlß-QAJO^[ߺ#*¸Úu
+Ø"ëI%Ý×ÑdV)IkÏLP¥D.D#à ;X_i!KE$òÄ æÖ#]õzcÇÆ,!.E_WJ ç÷Z±"¤<Ó
+Ò¼+6iئ$hj±cÑà·eõhÄÈÞnEãËv6Îè;'n(H4À0¼\°Ñ˹EÅ'bgãQ"9ËG©¼Mºkuüý¸kA^Ññ$v·ÜÆî<}§Ö!¯wT~ÁaàgápË<XÏXIK²çÀllþHÿÉ9sWÒÌz¡<ØSÜ8°#ö¯þ½Î Õø.ZpØ%E¼§ÎMª¶dRF' c´ªfÅmN§Ú\f§
+·`²Úq¨ïpG_¼¸¥ÑbÕ¸sÉí5QÜÛbi×2òðbÔmì^Ò¼Ý$Öó\_5r³°cCÛø¶²#bvJ¸kôg-xRÕ¤#¸Ç2ehUUºZJuËÍÔ
¸Ã¦7E.õÉéF4PÒë9-nzá7¹
+yf"¬4jªFsdÿ¹çea`
+ûGZê>oß
+æßªñݽª. ¼¿ ÎÅN\²¹üöÄ!näz§£Á9ä10°RYð¾ïÅÎ{?gÐ?Ë¢8{lϪ\Ù¼À]ä0ÆÙãóS¡ËÚ#÷
+ÛÍ,'ì#Ë'Qbv¥®BuxO7m6í¾½eDøIñÎíýX´L·5-ÂIÈ5`D:U`ÉOÈ@gÈÀ_èØ1.å[94jnBËQn_¹D
+å&:¾;ÅzmµäÒJó^6xCâ\˲ëåÌËåã7Õñù¥ÜLðAxøÜ2%¶z[ÇòÄöF8¡ÈQq\ö÷£|%Ù(@æË¹ðh
+´Q X¿½ûj»HȱnoêªlÏ%ÙŵZ¡Ú+.^¹'JСA
WÔ/,ß«nGÏîjë¥n¥äHLèÝÆ²ÀUøY»Mú&Ñ)áj/(ËÂGS !è¹Î=½*ÁÈrÃÑ©Ë>¢ñTX\ëdtÙµÞþ
+;n®~ô(O i´x8Äuk·ðËC ÅÊò!µG×¹ìÔ
+TkV«æCÈæMUbûõGÇí"+6%YæÂ4=*ohI%ë·T:ÆåTMÑ˵Q1¡Ñ!7ô÷sªv×ù 5±ºÖs[â¸nUàW
+WSµ[Fé/Ôný¯ªpþ_:øK,Ô/?_é çA}ñ¿_:è`?Ú/%í)icG
+t¢w4%(PØ×<!Ñ]ëÈélL£möÁ)a"þ©-Cܧµ±¬ñ´ºSoS}%òTCQ¾LÈhÑR[&¢CÊd6,¾á9âaÞñûÛ3!NÍó0p§òlùåÅAÕ)g©kC\ÚZ)Âå»aoXzüjÓª¾ÄKæ55â®L&fs¢>¦òZk÷º×¡|ÙnP*.eè*7×nHßlÓ´eç½<t<÷¼m;¤ÛËÛËR®s{U5¶ÃéCÙÐíÁè¨VpZÜ)³èhî¾Ò1ÓáøÊé^|/pÙ¹ÙUTqæ>©MíàlyBÚÕö®c\Å̪ÃõC9BêÜSYÐ|$ܬ"¨SÐÒJ¦Æn%©:f¡ÖµE²Þs[#V&nü«Ì ʽ¬ðâØ´@ÆÛA^£_&,Ü©Ë^§#¹QK[纳c Zá^Q.Ý$?;·ï"éWt½+Äcèëw*v%á(-ª¢çßzð¯ÛªÚE:Ó&òù
¸.5ãG\XökÜe¦ªð_>G.²[ia;E}gÓX
+$C¾]òg³øö×Ëï^øû·Kþnzùû·ÓõE°å[olîåã2°¹ÁRb;ÃgÂ*¾T ¹/Á >ö RØ>û¢¸öe<êÊ0óáþ6xVªÍßl£xKú¶Ù_áÕRàÔµPÀÊ/
+jòX t.R9ö+%©fE¥
òÊ&£6àd>Ñr>S]»Ù
+¸L
endstream
endobj
128 0 obj
-3502
+3347
endobj
130 0 obj
<</Length 131 0 R/Filter/FlateDecode>>
stream
-xXÏ«ã6¾¿¿ÂçBRdÉ6Còâz[ôPzë¶ÐCa÷²ÿ~54²¤8Ëà'k4¿¾}cuáÇÇ·A
-'åhÿ;-øûýëðû/Ãá%þ}ÿçãöü
-Ï¿_°
-ª¼@ãº_¾£5ûø&l2¸¤?×ð?É'Ìháÿ´ÿ/úÏÆ®ÁÞë·Þ©$¶!³N0ÞW\zøÀÚÂkðçèáLYVçUÂE6¶|
-ÒZIEp'¸Q8ÇèÁA&\TNÆÑÇÃÌúÁ'=Â;tYu2¿4æ´s,{ÆÑ²K·|¸åh±Ã3<j#¹9ìcø¢[s
-o"Æ&Dð¬ç¿/@5-å%¨uSÈ
-«¾Fסµ°>£&Eؤ`Yz±d¨±¿! wRSãË褣×@8
-Ðxp, c
-0ÿá¤;j·ÎV:vxÍYÜÊb+kÕkTë ç* §*Kr1f(v%VAdäÇjbݦcÕ|Ö
-|"ʹó²GT§+íb±+qÄA4¼3¦s'¡Ðì}F±¹ÄL§øØÄÔEb©Çæs²»ªoôèoe|ÝZ|ê&ºªönlYn&WaFÂ/ÕXG´õcV klK©à@Nlë<RÚAÔ¸,¨
-²£¿mwúÙë¡©Z@ר½â½²OÜÓSJ¿LÙ1ðª%FÅ
-L5
)H±,HÓS|SÐeUÞ5¾øì2¿1ðÉÞ71È[ægbkÇ× 'quhÙ[s¤A1¡źrClÃëȪÀúáv¹¸à¬_ðÍ#'Kkß Ð`ð½¾à»2W¡CEĦÈÍ;XçZs!xRÜ!¤¼zt]'W5d°ngçåvX¼¥3kÊ(ü)ã[bÝ´yà¾
-w¡\
ªvª ¹Þ)Ú¼uÏ¢ã©c¦RJÐ믫nK£=;ÄðJ2Þd"ÆÌªæ4dî°3·fÝ#v?" zjDbh2#ß»d®.f¢ËééÊ-¾èeÕÆ$ú+yV°_.ÍbßTp6:±ùÅ!/xûëï Ôoj¬ßÖ>óçî2®ó9£û©
-]NdÐe/ F_£!2ÃLå)£ d!sKH.>,÷÷çÖ£p'a£õ$ªaÌ1DsMzö1àÛ.dÜyn«,÷eøE
-Ë
+xÕZK,»
+Þϯ¨õ
îøUv4
+3ýdw,.Ù%7r7üýX˲«zÎÉ&Ô˶,}lYjuÖÓÞ~ÔtRñÕka
ç¿ÿ6ýù§é_oê¼*½ú)ý=sËyRg7iíâ»^ϦüúÓö6¾S§±úlËN»ºóf×):ªõêlFT©ÓÎLÏ?O TÊ
+ÏVgäÃ=ä·Iïãóm7
+ÊG\>ÿ:ýî©a>ýåâWwñúª/þ~=¯ùüÃÛãóíçq°ô8 2G"Á%xäÖëÉ]ºKp×N_ü3~ñÑZÎÍ QoÙV
+þl#üÖ¼9Øþ§æoWPSÏhÃÆ®/öd$RË!ïºQ[×òbÁAØÿu¨:§²Ý'!4ÄÀ
ò
+ÃCDë訬pÄä&(´M¸´ï^Kì;Ì3ç´>NúSÇCkÛí?
+-M¦ßÛT²{Êv³`Áå2Í 4àv<Në±yw¬åÇÍ[õ2{9Ô 'K¼_5cAËO¯}ÀF·+®dÑÌâ Ró9>Iµ2QÙ
á¢ssÈàJáà>i$àc+
+ÜTb¹6zÁßD}f~³À{¡¹¸w4\!S#QÌð=³É#iQ,\Í8 Ékò7S2N}af¡¼
+}=Þ%!uc§£Ýz!AsE?Mt1bº&ècðÓÓúÿØÛ?utã®w¬#¶±Q¨0ª÷tÍÃJ<èuY+0¢4éfÐEÙK^%k5L¿:nÛz\ØVÉúáßHȾñ¾öÆÚ´,)¤%ìFgçR¸Â½ðÌ=iÇSpÉ^2'᦮²ù=ûÑk8´£ÒÁ!öÃzIKÊ
+R\g-"º~©Ê5q;Z¡øOdßé')ï;£Ö^m³çÃ|#ûD¹/í[ÓilNndMBúc¢À5®®Dâܳ*ÞªµÈâ÷´uíhÿÐ^TûTm/¬¡ßt`PÏøÈ&nñÛÎ_ÝåwѶÔ`³¦`Á\dG)¾ìXæG;nv"/&ìu²#³&`c8¢håX~âØ+FÀÍ3²íõð7̧[ºPLà-Ndy±Û¤-+Ý¥pòq"ü(-U¾QZÊ%ìíÞÇÛÀ?MNI8;£øÑîùÔ
×AÁWb¼[ö ¶o«i·èÊNáÒAï±3âÕuá9°²=Ѳd DiI_ÃX>©GçÑ8ÚM¦ÇúÑDQs¸rïÙàÌóºA(áï0@å
+µr%õB1"÷a¹*
2[ÅDîÅÒG]YТV1ÑåUî£
+²52[ÅDîÅÒ2&¹ÄD<1õÂÄÜWSÔMsKH
+W×Ô¨I|ÕxCP÷Û§Å k¶UVnµÚÈîÜjñüZKÇýyÞTüÓ°É#wkBV>+Xù,Ø-`a*ÛºmBS&¾M¶<Hd÷hR
+ïY¤«39S[Ä3nS/<)2XTN$¥[%[SÒÜ7>q·nGJr¶YT '½b&$e$Uuç¨Ø#QV
+¹ø ³ZFEÊ$¢ìa<×xÍêÒµÛñb"çÚbH®éíPÒñÿwcÌ}Èç9 at 0o
;F"ñ«"63ÛÊã ªQLfýî´«¹×6þ¸Ú6±ÕI8ÖùÞEê(¡}Ѫ.óÕý÷ø¾Þæ6úlo$ªËX¾çË í~>cä¼K8öM_6E
+VÜä?ÝÞ¤ªU¶WÊVô-e}ù
+¤ë«Ú
+y2Ø$zïußeïM¶Ôõnª9Ì¢je
+þò¢>3T¯ÒqkPïðXà±Â#Àã#>´ú:4Dêæ§ð!f9¤lßk¢Ï´º§åÊW(;Ó! äuþö.ÓÖDÅ(aèC¼WèPÊ/°F>ô¥çf}y'?´ hG\¿Ë`E,
+ÃÝ×\1M¥=¡|ØÀ©¢¦þkÆ_¾n k®2Ç÷_ÚÕN
endstream
endobj
131 0 obj
-1411
+2541
endobj
133 0 obj
<</Length 134 0 R/Filter/FlateDecode>>
stream
-xÕ\I,É
-¾÷¯¨ó@3Ö¢ »ºêàÛ@Æ7û|0x.þûbQH±dV=lÃ0С>)´å[Îêôï·Óû^iø»nø÷·¿þôËéoË9¸e§öÿ¿ýým9ù-À«NëVç
-Çüø%ÃÿàÏï7kôÙÖÿõô2'Nß?þ|YÔõ]_}}WÅ\ßýe±W¸tñÒãå
-ÏÌe ×wwYî׿|ÿñíþýök3 HÝ;3Å9ôÉø8
Z¸6[¼ÓiD'tl
-ìþÂξön.ÊÃÈß×°ïØ<.¿âøGy}²Vµèózra¿q¹®,Ø
-T4.Xi¤9£ õÙs
-JÔ$.j[ì².«
-À-{ýþÇp¸·rx]ârȵGqºñ¯]Ü#\nÈ?8z÷]|/=o«O¼mÙí°|D¦Â¯
-yØçhÁ·DÍïÓ|ºï[PíúWÆF¤¥7×(rùÉ<u\RÓ8̬MVþßyó_ñÛE¹:cp[»ÙHxøã«3¯+B¸Êe.Æ#¿ý¬bûÝ£&vâY4Ø¥7×,ùDKXܦ*D¾*I at J²Ü^#ë`X»KFèra0**ðMd!ãê!Wq
-'ü=3áú@Ñræª@´ÎÔ*Ì`/,Í2jB8kÝ>:!2Ýë͸£ ÖZÀÞöÈ9Äs`8¬}T«"
-åLZ0z67
-2««æù>4ù¸P$&ò²(ÏÏH
-eÊÒõ*¥¨ÛÄ@_%\Öv#npTM³úsàÜ~ÍI°*ÈáNYxK®Áܬ"KdyÒÒ$
µ°ï«è£Ý=¡¦æl=ëÁRhâvÖͽpøµºÇ!*©¡¡=²BïÉýq ñB
-'õõìÀ @7NCßºÓÆÑÁß¿µ0}ʯ
-K¥ÎtÞ$ÇÒ6ÎöêçÑ®[=HÏ\/µÛ<3â Þ(:¶È5ã5r
-´ë
-¶LÇ·èzõRi,9ÐðyA
-bRüTãØé1¡v£¸Äµ/6´i°kUõ&RmgU<dº¾ É8A©Û®ØBU¤Iç±oÝCAesg/ãjëKP at Q¤ æÅÅRî5ÿÌãã!sÚBÈO÷ÑÑÉúpw¹WÐA¿À2þ X3$%CÊÖ>){¢ õBaß/®/·M®$Ò*Üê*B®ÊÎCûg3³LöÜh«´LLj9ÊPoÚÉ×Uù
5%ö5ãõç.òMÓ¡ß3êFZô«öÌiñü<ËÆqð&àåRrUÔ©)ÆP#eÓéMñ8ù_JÊ@ñäOüöúÅs®ùD¹Êãt-Þ¡dSat/H#B&:ébk9ò°ÖÞ©w)qXYá`U¦=à§&ûzL¢(¨¾øÅ¨o¥L&
-ZTiû-ô°ü!«YÜ'J *St°ûµÖ+GÄÍ Ü¶ùðåWÿz)ÐcÁÖJr¦=B¼>êyujö-õ´ß.HILê@{Rù0~&Jî¡68wOÞ&í8Ó·?»Áj¡èäòûJǯT3T¼<°ØÊÄàH¢¯õÖ¬f®¸E.$:wmç¹4ȯ´wzÃ:L¶ãAdö5ãI²]=¤Ïa ÎÉûô´Ôhç:¨ËùÞ5íN
-^
-åÓQ[b«©¢«Çêw½¶h¤¥#;4ÓU¨§;¹F/`3{ÇWÙõÁrpâq8ÛÖ\_´J!UøÀ|¥=gC?w}sm[ Èlÿk=
-C5ûsg¿Tè¿'S¥,L
-Ð5QÌíi²
u°|1þJ;¢ìÀA+ú+Ë¥àò§LC¾ºgyÖTÃÚE{Rw¢%PQÒÛåÓ1¸à$Ì}ç#àd áRcO{
-:H=ÓRm¶"éUP_éPJBM?Nì£e1]-?Ö±§ý²?×=Ó×]çÝB?*v éäþÈNì¥Þ[îúÃÛæ(Ùþh1s¼É3¿ØþnXâzKÌÏÌÖѬÅl8¸3Y
SràQhk/ÆÂ ǬXG!
-ÓØNTÝZa/óãÀâ8îú&U?:èû@fYyß\$@èÐ åÀ`Ýç¬<R[ÌöÃÛ¼#QaӺ˩¸Ú±Th${´âË»®õÌlJ\û¨ªdÍ£ú5I¥)<däêÑÑË>RH
(.ücð]¢@¹iíêGª"¥oí?|ÈRáN¡ávDvx5É¥k¥ïW'ÌÝY52+çèÚRÏËwn©XÝ4çÙr0{ñs=kåðö~Áý¤Öºûº~{«w ÇÜ<¨ÝCFÙ³é7ZÓ%zòIÚÙd:CL(#Èa{V~ªJ3úÀ«>xÐÏ©Mª?¼s}$ä#@+ç^«qvÈv««WÅo¥â3Î .&yýï:|§F
+x½[É$ɽ×WĹ!K¾{$ ]]ÝF*ÐaÐIRæ2¿/ßÝÌÍÌfhÈ®ðÅìÙö̽òí·ÿml»0÷§áÂ}ÚÃþúïíï¶ÿ¾°×]³cßÚÿýé
mæ8ÜZM°×Ã?óõSÎÿsw¼}¼()7Ëä«Ü>þµýéß·¯?^Ùy»+gßøÿ!Ã>57·¾Êãö¿¼Ü?^~hÆn£Ýjâ¸b&«Î¼Zev£¸]äU0wAIswËLÕÜÿ[eåhµ»-vä¥ó§)Ûáõ#Xus~õnd}5añVû?eøÍ{Ó¬£8¯vÓ»u©ôÆyÊmÁÏuøh?áE]Ýîÿ¿[ü
sÿn£îî®]-KwêðÍItµ·|=]ÏO/á9÷Ée3]9Ý¿·´÷T'Ì®euͬú×ëoü¢fÒ2 Òï'>aµup«Ó庾¸2?e¸Ïë6ÜéôuËnÃHFi»Qhëe¹îvGÖye(¾(~¤±~µÞL~ý?OaÕ«nñÙ¯X ¯ë3É.|*íথbøQ8Ìð¬p9íÅÀÝöDzF¥ÝbVq5àyF£¦ÔÎqë¶DO_[iêoVtzKâ{0¶£ÅîßöpêjxÙHÜÅdª5x=ÝyÐ º]¢ÁðIqÛqJ~ºÄ2EK»~Vôíõ;øú¨ÀË9rÊBýF @²6Àí¸¨Ç©ÅtA¯Ùld +Õ4Q)\@#â
+oJ¼"aóI"!ùjêPQÖ=
Áâì9ìÕÐãࢾƱJ¿ ¡JXTa0nqYéê=~¾ÊKÄ}ÚtnÊî¿3°çÓ¥¶Ù¥AwGªÎ¡]÷p긴¬`d³ß(å(AG
+ÖAáb³öÄàF®&<¹(í´o¡«ì\²MUÐh©!VT3ÐZý\ºûJæ«Ij~Ts_*P ,¡cM.1jØ"â@ [,L_jJÁ:!#eâ,ÎÐ] O4OerfZ\Có Ò¹1EÎû³CJn©xⱫ,QRFx"ÓBA»<*v #_U
(
+í_^&H;öÂF3̬ Gpvå=(¶p´{
ÙãÿN *¤ÿTâ¬ɼAk¹l)
+dÏÃÅ}ȧBéDÓ³a¡\ÅÖÓû)ê ülì
+¦¶º·^+Uñ6/xïÏ©
+©ø&²«ö%P¬&á¼%jI¾I-^EK¾)\·ßWü¿È6\Bª$ Òmïõë±ã\ö¤älÑÕ
+âTEí·Â¿ô=Ø!\VëÃ9úa©ðúVÀ÷߯]¢p {)Cpß÷NCn°i'£ãaîéëH
+§±Ã¼¨õ°>ÍyCë{ÌyclÅ}.÷zÏ65k5\X¸³çbp°õzbnº´MBÏ£3'-0îB,ÅÁ9LƿȻCÑ
+ññ£8ñ@dS¿¶ÞtuÅ÷»Õ§°wrêJHØioÕú½u^<áá²DÌ=
+¨¾òv`BÝòÚC`í¬`%Nú¸¦7@ MZåuº]|át ÌB7Ï1)Ò'°ÍôPüI©AËyt
+Ûàr2¸½&uIdl«Xm`à ç[©!KLYK8N}(U-ùXÌ1æ#²[/iê%R µJ
+N 6ñïæp0ðÍ4ÚÝz²çûTâÒ+Û4©v³Rβ
+uIÄ:ãêà£q»ÈéÒz[æLÎ/ÅkÝm'hç6Yü
×ÄWøÂbaé+=Èð@×¾4Ð+éø4%3Ì~Ú)ÜSûç¢Ãó㬼®ïå,S±Ò*·:O2Úsë=&6d.e¾'æ
+åi8Á?ñ'b·ßÒOýóÛ.ÜéûÍøÚ>üýío´$üs½Uz#ÐÐhðjÖcj'}§Î¶D¢¤'%~<¸lì3¹Å%o\ý#k«®¤ú§y-z>nÝ×V
+¯l~L¢m
=C®ÔNskz'å1A4¼ÄïXþç@Q²EüêP8ª=×ý÷ïÉ=>aJã,:W5$^=1È©²è1:ÓÛCyÔÉ÷²Röº'xFøpª§í%>Xç\ná£Âr÷k&«³ÖÝ>J{þ Ô>¡¶õ¢]Q¶(D.©â ¾Mx]k)äô¨@
lnÅ9áÓ|ó[Zß5?UÁklÙ+æ¡î÷$O-40ë1Ý
+2äð{I»naaË<Ýån°a`ZäÁ¬®eÎÌή<'Ûð0Õ @Ý`°-3`0ë1¦V°ó]ûXeëNù¼ùNÊÛ|Iõfÿ1óôZ7
K¬[ã·@åÈÆb»Ó(
+VNCOÇEìP°8w'TzÎDçFÜÊ¿qâ^ è¨Zÿ'ТaæÐ=ÉH7B(Í:>VDh7éZ÷$fñÛù¬B
[Rµ/Â%mÞô4ÛìtÒ:ú¿]>p°K°ùÊq%7ÍÛRhß*ö×v+%Ï´ü̹åÔÝNµX¦çÕ¨®Wè8Jd at -}çÉÂîÕVX'gÏó¥s|8¿ 4ÚsL¥¬N$n8ôó<êìýÁg×CzùuëÖJàeÕ®S}ÕT·30(UrO¹¥~¹çÛ¸¹51éÓ¦f¾Wwe:ì·k6Îs÷'µ±ýõ(å\\g-{óþy³·øå_¢'eãzîÀ<<ÎÁËå)µ»ÚÊ·¡õ¶ÅâÖ_?½ü°ýã%,é
endstream
endobj
134 0 obj
-3534
+2974
endobj
136 0 obj
<</Length 137 0 R/Filter/FlateDecode>>
stream
-xÍM,¹í>¿¢Ïø«l4
-Ý==Ü6yCÈ-Ù@Èd/ùû±,Y]vÕôìf æËe[ße¹Õ>ýçåß'uzUéÑkþþþô·Ó~súWî?ýýåöíE+óNAÃ×ßþzúíÇrÒééÇ?uy5gÕzyµgmõryÕî¬ì%Í]Ýrïõòºõûåu=ë<çîòi¸xxüU¾T÷ôª|q´z§Õ¹e¡µèôÉ_ÚÔç`»Àt^§
Mw inX@6eI#®Þ{%Maó÷0þ@t`yÍ+~
-pÒ«r*¨ £Y¦øÛá
"Iöf'7×ÑÃÄ
-dÆÚS¨yóÃiHb¦ÝTJHè,9Hí+°ÕÔÇÜPT|jù^Yvü©ÇØFz¥íÈaB+y´u¬
-%-/kÕ ]ÜêÞF²¶£&Y~¢5ÒUä-Âd¦á*LeÅm.¼7¤Ù« ©\ga§b¸´k°¼ºÒe¤ÙH$Zê´Tþ()æL©ÐV9þvøë&w%Q¬uç$Q{×?f¹£í
-ð&ô'WÝBϼöbì·ÈvïxíT¦úÛ*(Äת0¬ókû¡ih×jh2MÓT¢Æh
Ä®|[UBH.k] ؽ¤Û[¿GZ ´Uî¼tQESj$£ëÔÉú!k¬8YryÙ°#Oézv+h¡0â¹½6äE;¨{n9@ÐE´ê±`È/8j¨¼ð¡uØ(5
zôae{¬Ù Áß,ò$.EΧ¥¥ác³#ØkÆô½¬Èc34SßÌ@
G/«O
-÷'Bwä.ó' 3,eéËalõ(ej@i'²ÉÀ¹J¦ÇÛÐ<sü.Ç03²©0ÔKh[âVâeßÉLVù#õ/¢ÿ^MBca6Ñ@'Ãß÷eµ,M8xF#|R3Hc§¡ÄbÕFHÅ*
f¨ªF
Bu?Õh$ íhÇÕ(wÝ5õB|ÞqýfI¡ÒuÙØÄÓÑÓ3ômÞ@:û`>ÀæaÓzÑëÜ@tçÅÓßáûé[Gâû5ÿ
->Ó(8háW!#ãpVìõ°äyóÞÐÊ&õvÍ5J¬Câ;#<j¾ÎC¼Þv-Ô¦<+bcóL#Ù÷úÀ4"àZ+¡ì*±$S&/,Óäyð«ó|üqC2"/"¨0å{ÌÅï8;]Í_÷Ök»Ã{|^ì¥H<QD!SåÙ3,¯~}5_òVÁY]åna
- at z"X"ç+²ÑÂ3p°¨ÊÛ±HÐ
- !ÚªÅ$kUÿËoôò1'ä~óF@ß7Up4ÒsÞ3£5È:梾¾Hû;BðO#îhbX´Ì½/ß{èTh|öY8Ðæ3QG)¬]ZW6"uô
IÝN°û¸å$×ó,ñm^2s±g{u6÷öpù÷Fôÿ<÷´/x#òÉnk¦dɧ²©ø²ÖzN 0ÌtÇ`ûü!ûsù¹ÔøùYnâæäÍrÁ
ª%7ºTv¨r¾YÎóåÛr¾ÒRO&0£}X
ÑgõõN\o$Z ¶@N5g],Í|)Øá3RE§Ãðë#jiç<¶=:Þ;¶ØVEPåHÅá l=s{-µ^ZñÑÊL°ûèÄzÎ&Õc}liÝÛ¸Z÷ÔÝACÏMEFåy=þj°9GA©Bq(ç1\ ÂPNË·E ²<*õUîÉ¢ T/ÅA=ieܳMªÔ)(°hOíêù²¾PÐE¦äoÝ¡.¶DÔU
-ÛzB<ñW¢®R@(.
-(cë êcdc¦&&åv&´ôuo;a ¹@ÔìpL[_7]ÃÄm)E¥i\C=4Öº©ÏÜTÖÈÞÐ)ê6¸:&Æ4VqBÔ-Y%Êõµ¿²~ðy¯:Du õ´^Ö=à.
-QJUBS\¤ßeX¨¥G²@`¨\p¬M,ÂkúZ6i"JÑØßz,ÖàϹ½*«_Dó øÑ_ÏêËÝvÝZÀ{ËDü
-Är/©ãëdÑ
,BqàBÜqª>KuiÓ
-±¶ÚêqÝ¥øE\Ô¦ö3mé
-©£bÍkóîPtqr\î¢];ü°B{ÑáÍFYC7w!Ȩ5W
-õø¦=s\g> ý@|$³f]ÊÉøfgÂÕ¸\È6xºÞµÛR1ÛÀzHý>¨c&KAE§Ò£o+DGâ4Ë[DHÒ<£2Vvð6EGØÕ ZøMµÞÆ~¾VÒöQɨdr$]r]÷c¥ vP)6§%Ëa(KÒMV·C+õhuÛ¶ Gï!w÷]MÎÒ7½ÔAö»19_8BlßÖ\%ÂWò
->÷ê¤Ûôe Õ¢v;Ê»³=ýØÌ½Tâf$Ù1ßï
-U»+ÓeE¤ñiò6ÜúÄåÃj¯\a*YºîD{iºÐN$ÒNVB¾zÞù^?¹W;ªÞOnO·}v GÊ©CÜÚ}
-b<å¬Ê¡Kêô¹«Õ{zÂ(íç?+9%óZnzGXÅF±@÷ y@à}$YHmzï+
-`sÒúH!Dú§ï6î¯iðZÓ)óÕûWÖÓJ$±>µ%a/á¨TÇ3ýÞ½A
-v1öË+'2Å"jë\y$Ù)ÐY»S}¤Lg7|¨,ÚÅ;?ßrÖ4Jûq0_R%'N]yXÂõä=ðÌUç?þæåÓÀ«v
+x¥Xɪì6Ý߯ð:ÐͲÁº_Ûì4d²Ë
+mïèº_5_à\íB^ÀaþCæ¶ç¬vÎûð«u¯¢p*TÞÚ
+ç
+a^¯d
ÀÃÂ
+¢õÞzÐ=oÒ3lÒl"ãΰÃùÌI3y]:ar_>ÿêÖcÏ,æ*ªÀª¥
+?#8L\DmàÀ=£qeéDæÖ,$µÙ%$ªì/¡±ÐfV
+`ðÇ£,z-èÇ(L0ëÒÓYLHH¸1I
+ØÝ:î
+CøUö1|%µ,×¹S4qÙòï¨"ÙñOÐd6µ)ì<MP¶Ì4EÐi
+^ABHl¶]§¢ÆFtDl´fwëZ ½òtKÝýü
+ðxxMkÂ!BQ#LXß5>ÃöXê1LQ^÷a$ÿ]NêÍ~ï$èÏ*FÅ]ÒgÊÁ´éL9mråC&ÞJÊ(ÿÝ%¡·UԺʺ¶ÛW
+Àbt8è»ÜP
Ѭ
+ò),f7Òý_ªè´ ªÛªYtÕÍÛ°ëÃ78otªÀGÛ¬¡g²ËýùûSP£Ô¨ÚëùõHãâ>z¼X#ÌK'اð°"_¦¶Ø+8çjês¾Î=þr$ÓZ´si=Ñò
+þ[ê\òà¯k8YÞ¶I
+wË7)Í%&;VÚ9ªGç¨õtW§FtòÞs}Ú^ÝÚcG·
+'zÑ ý)X8o*gïÔ&M_Êû^Q*®Ãñ,Rz[ O§ØÂÝk ÍÑLòx|£Ëð³qÓìݸs
ºve^æ/lÓH¯Ì
endstream
endobj
137 0 obj
-3831
+1458
endobj
139 0 obj
<</Length 140 0 R/Filter/FlateDecode>>
stream
-xµZI¯ãÈ
-¾÷¯ÐyçY«
-oa²=¸ %,ÐÄÚFµË»:-fÏÑ\Íú8Ê>B« Ù38Ôxeª)MA4ÒT²+ 0*) ]Üï'OTuóqþñVGCUûÐ*
ÄHª*üHmÉ¥øvÞ³J*Õ -0õµ²¦]m §mR[Þߦ
-ÃÈÙÉììZl;f1\§UQ^
-#³_¹Í¹X²ßÒüÕP8|Çìä/¬
YuýÉINHÖè$ù_ixNj1(O:ºÅ,«·0Ê?ÊÄM ûÕk1®}8>sÁ¡¦£GÏôûÙߦþ
-7ÊÑëDzk'AÞOâ"fYe#j$½|Rzß¼îûò$[jÆÀK,dj(Ò
- Äéÿ [i xࢷJoµU®þ;izKçÄSj:kP#'8Z«ÅWÁ'ý%
-p+]¸H7Úr÷ôÔs ³oUD<ZScÎJà¨i ©Y¢ ¿¢
-¯ÅÀÐÕ§£ùÃö¡cæïWm¤V±çEÿY)3©RJ®ä¥¿R¢ÑD:ð<+ÃóPneÅÐ/¬ýJ¶1à9ÑÑU\h±©s8_±(´)¦þAzD&6>ºLqhUUÇ_µ~Þ´~î£;ÜYÞyqcXjÒ«I¸Ã
-·ª¡ò{ô5N ¡ÃLwµ_ÇY+öâUwî7ðÐ}Ci[H´ýhù#n@:TÓÛÀ
-¹që§¿Ý]IA¦¯¶vû6mØ.?l³Õ®#i§-\×vaéÏnä®P×;k©wäS ¶ù¢ ±éXz0<9Þ+Öï®]\gVtT³öNØÏèÐ/UÂvù¡{$XªYC+}úËè¬ÁZ¶KPé ã.ÔºB)T,õеӵÁ"læô¬µJi 8 at F×röbUa
-q¸F+mRïØgÀ>/òYX\Öõe.kÃ$G÷ò$|£G)²I3ÎRnõ9ÙÔ¹Êê¼7¤JjëíÈR+lƹfÀÊ=6¾f@¶<sõ{ÎøéA¼BÞë±7ÝZD/QÅxÉV³¼ÉݦAzc¦ý
-`g¹xä°ÃUö`Ç`n
-H x¬yýu:Ô¿ÞÕCãD!
-ÈM[A
-añA1!g¯ã}y{pEX÷Qî#ìq§³í$A#ËéÃc¹÷5U¸µ±Û¡¥po>ðw/y,d¢VÊ[(Õ
-ç¼Vàè~Nòá:ûzØ
-i_Ù®â%¸úÌ®üÓâ¥»Æø±ïÛh_½
L;)íV)Õõ5;É1<Úçô
-B©y5F>ËhôÆð# £Øýe8R¨f]?ô4iß\¹5Àr}²cëZâѤ¿}Þ#XhM±P~ĵÑáh²°6EuQ:Î0E¾4<) ÖÖý×A ½À`íg> 6ï¾5¯>
-_|+Þ=Â
-%rÁ±fpz?g{ü¾¼5=#k±{ØÌÍØ'P!5¼SÞTo¤Ð̯Nµe6:ǯÏõÜ÷Bß)\\z£èÃøvù®Ò)C sIÍFM
â¼x60iý0.Ãm>Dó1KØÕù}27 x e5¯Ë«8¥ÖÅÐôï)|ÿeùõ§xI:ö/_Ò"_úyùã *î
+xÕ\Ë伿Ï_áóBw$Yéö!·r¹%È!ï?z«Jª²=³»
~Ø%©êWïò«þûòILáßZ©ü«[Ãëïÿþòmú÷¸.F¬ËÔÿýý/b²ëê/5JMJ\×pÏ÷o\øç¯xûxÑó<91_çéãïÓ¶yËôñý¯7±Ý/ê&
wy*¼Ìñ_´÷¹Çýo~y~¼üÖÑ5Yãwèªi¶îM·XiNØwkîÿ¢îÕ߬Yç«N7ËIʸ)½ÜõÍnwusî~óMûEßßÓ¾Ï_pÉì7í׸,ø²Åÿ¿ÖøµñWÇ[üÿÍs[¿?1B]ÝdÜ|5i§¦ìÔè°ÊÖ2,ÄQPêj!©&)"yö$DØx-/*|'Mú#i5&Y7ÎknvÌÒÌßH¿Ëò~ï<YÛt~~M×Û÷*rÝì#Þ"ü»g<üÍ>×*Ûçý²¦/2uÀ)OÍ9èÍ[KÿÐ ³ð{¼sóÅE3
´^ÛXÜ«þ_:Ów6¼(¿YÐk¼äÙé7nÌ'ðd Ýâ;
+ ,B>ãÈ%Ç"kÛÏÇÄOØ*kýý8]g|Ã÷JdñèF4X"bP¦U0XeïcÜ:"¶Ò¢Û¸^¢íO~²Vgã
+2£Î"Âi©¤<òe[bÜ7q¼æ:,#åU09¶Þ"tÀz4H»µaƪ´u¤=ÀVäã%¾eÇ!o|}mGt&£¥Ù\Ê("gtÍ[¤ªÞмEŦªíþæÀ îP$°Ù¢
+¢©ØåÀ/h¤ yá#Ü
+}XÐtÚ &yV«ü[wÙ»i÷Ý7 RÕ9$¨´Î°AÅ= cVwÀEKÎbÿx åÂ
+8bIlóï*ÇFU®ÁVÈep®{ÞICçÄ6Gîörõ¯ø|_p{Õq
+4à]Ï!9
+겫Ã6èL]ÐxÊWs^F'bEûke>
+ Ì¢LØ 51ƽæ;¥
+fÇèæÓj08]7ëI\Ìe]}QY¢Â]2'He#°
+:Ó©TPÖÎé?ÃF¬ðûÜ¢tÈèÔ@!@V,¢ôbL¿ß«E"¯kbpÓgé¦{%Ó"c¨04TÅ*Bpò÷,p9(ÊìáýDbA:!ÓGÅTê©í]a^5OFÝ)#\Mír²¿:R Ròx&Û¥Å!¡}b8àÈi§Wu×Dü
+tHd}ÝCa+~ÚÊ®¥=ͯ|ÉÃ\Iëµd1nZÃñ
ä¯g|ÃZ¯zT=ðiB5sØZ Úý¶¹Í&§UYítѽ!a+o¬
D"ØC¼×sm·jgX}@Æ;æ&0d%ÕÒLo»¨ËÜÀ23ô»ü\áèhk'¨,w´¯FJ¥$µ£F G³"ÆéD6ã;¦=![¢§'ÝnhÈËkBqízÛAñ²x®
+\g
+ÎrM+»èkÙªb$«Ø8üCºòß¶\VR¶h£IüêOº² SkÐnPM¢°ß^:o¥L¬ZÜàöYê¿6¢r\Óý\µuzWÈ%áªÙ>W0`Á5v=vj~ÐÕd
+ªZ¶$.mï¨ÁRɵT8ÃÔô
PèLó¾Àå<wÒTé|*6ÂâH«_mE1ò_1bc9 Æ5¥4OJû¢~o¢öë,ûVs3íVP$©Ov4`QÉ5I*d(cúzSb`kBúx±bôÉu-SÓDý4¦Â
+ά¤×ì¤ð#jÎïAɵì~´_ÿn*|¦¶ÛªX¯ØùhUÄï8ÌÓí¸ù¸Ð±ïÉ«é}ÂQÛÝ<i¢§îÔXPjR¢µ±s¸¾o÷½QØhµm?à¥"xçβô{ù&euv«OCGa¢¨'IrB©
+â`5çK³æ;y% rªyià¨YGêp]Ø>E|:f¼^öM±[© kNû®¾¤ºã=@Ì:·,jÉ
+¤unÞ/4³c~Ä3VÌNg(Ñ£@ 3H£G8aCÚU¨¥Cþwì©CéÐ06[j
+YUé(Rv¹ö0ËJVcOuL«-©'ï÷r®G¬ÓB¶ú>Á(!,«Â5´Ç%úp:;sOuñ«ðá¨-"Z±½LO©~u·D¹qjpm_éânè4HoÓÈu/ü®|ÆøªYü3edæYezËziµx/Ao0è±c2¼SlgF
iÎÐùòbQ<þC[S+ùFiÕØÖ,EcÂ褵o¾ã2Qî6p¶+cGÂÀ!å²6>ÛéÈ}"Zc&Óÿ¿EK¢²Wi ØÑ+7Þ¶
+ýO¢2a§RQ£ùn °7pÂ>WVóAOM#¬7ÒhNuwt!
+=×Ó1įÌd3Y¼¿áë-Ztâi6cíêh¾H_UUÓ0ù8º°dÿkP~ð¸µS¬Ø2J/¹«SCgÎÈÅÿñé3òàKm}ú°âTñeQ%StÕm?W>_Ê2":³
+¿Ã8©±ò¾°¢â|ÙN=sg´m9×,BEvL 8öÃÆ Æ^×.êª}¦Rô
endstream
endobj
140 0 obj
-2428
+2922
endobj
142 0 obj
<</Length 143 0 R/Filter/FlateDecode>>
stream
-xZI,¹¾÷¯¨ó@·µ¥(
-jÉ<ø6ðÀãg>ü.þûm¡Y=6
-ÕUJ-¡/ö_òò_ÄåSÀW+|º?»üåË¿è!þýüÇÇãÇêË]ÄÙ?þ~ùÓ¶\$|ûý¯W¡op¯ÛgÀßê*^ôù¼}.yd
Owæ¶\¥÷Û§ôø'<oæ*Î*Ñòqú*´
-,·t.0ªt.o·37:Oáö©ÓRMDzañ·×zêß~üùcýññëîêÊ~q©.RÀͯ2#pÒ«Vÿøçh±.
-¹©^ðâÚrëL]a`¸Ù«Dø+R;d,IFFX©i±âAlËz¢À
-'Osñ0sL^Bâz@\Ý2÷OO;à°ehXgÌ]ä2ÄÕuÊÑDÜÞñ£ª*Q³v<J4nùA§>p<yòÉêÁÅù¦àÂqq¿l¿ÜO[|Ä;e½)Gq%Fß35r «©õpozøàw¯1õíqßP1qÏi«³ãt¡ó¸¬¥YÜBÐÙÝͧx1A
ôOñâ?¢¾Ò¾¸Bma/e9êª*`ªv2IÄÍQä±EFÍnñÍÀÚl$5sáËØ±® äKö6,ÞfMpÎ&¡Ñ(
-°©·¨*GËÀx+Ʋ¬feªQW5egV
-×x:(f}²ºW[SÍwFq£¾¥Ê/íò±**WaÁá/¼%ºMc÷'ªäí¬8e·}°<æÛ7bÓÂV¶¡ÙLÁgWaÀ«Sø-¡ó©À°Ë5
Ü<y¬dzöÖ¨Ò$ÀV!Çf
-7®è#ܲ¯z7)xÕIô0á·Öícå^«¼ <D(°ö¾Ý+ðP?c
-tDÞ")ðno1Ø£[â°*Ï >²!Øe;BÈ^LdéÚè}kT{©UÞúç=C¦D
-?Ñy]~îDë+¦-¯'§ÊM6
-K.\Åeºà>¿v<HH/ÙuZ½«Ø¬¦³v³¾kººBM
-£®íó¾"ækçv^{MG²±Ã$?ÏmÜU¢Fcê1p+zÊÅBf<mä·ê]T-O°¼9û21g
-Ç%Ó=ËhRgxø ØÙBâÔÛ{T8%¾|q£Ò ^Ô²!¶ÃVø®Ô£bwÈòÁ¿ÊíL±*Ï
-¬ï»lJã|j?Q'sò¡÷ñpMpgF¨FC¤A½Ô<ñYJk
-]Ýz7fÑ(:CßWXó7¢ÎÁÊD]K
-ÜÏ: DaÇM>áÖ¾k±iH´U³å&½´TA10ñºxiÔ*z µÕî©N9h¼ø(\ߣÿêéÔZ)eÖÅ,ZÛsª°ûî;ñFGT!íq\H}À!®.U&Î)2!çMÿ?Úª<ûª7q×âÎõ~þÒÐiI;^ âlwá;þëy]Öèà÷2òx
÷þ¬éoLýÔö(MPÿ
-ÆuÈ^Û¿dOÂe[MPh!;)éiñ#¤ÜÉ9h±Õv&ig1'(vÆ'Â;±ù*Ø3ni^å(ØSò6äÑà;¤P09¦ÄíîaXZºCOgaÿ
-v²h ehó2§½Áó'HÕG\¿`i|_9R>E0µ8sph¬mªâ±~!rÎÊMTº'¥À=K}y¹¡Ãá¨g-Ù´mÖ&ý;
-î¦Ìêb<eEÏJÀÒ0/ª4iôAEÞ@r*é¿ÂÞô/0ä*ô.3j2áSÇlE¡|±JnëòxY%xçæIÁRgßÓÜs;håü¶»é®ÎëH¦'9*És1VáN\¬+ÈñÇUºéþMøæÍ4¿Ù`¡úõòÅÊó·~àê:˵UÕ\$as;1-H/énªZdúTê&©²">þtÕµ^úZ¼á;«77uÅ:i·´L®M8³àU@±{c§©}wÄe.*f½ÚúèYØbÊÕö2>¾`ï0µÖ®ÖMq-W»xÍ7m_º7eɰ_BU²¼BJÑ
ìèêÛ
-ã~ûaÛ«bî\ÏÛÃÖB2Ƹ÷½®
-fjÌ|ÞôÚU5-çwjSß{=W !þZzNàãe×ãÍÅék-_6~ñ©ò,<¶ôáù,5µj×(+»ãï´6ϼÐ[¯Þup䡲ªN}iµ-æOõ^&©0®`ælvTã箣ª¨ZÛ¦±aÎÂäaGûár¿UäN«¢VìÔ¨ÅJ´Ô®kui³fDgÙ{Ó¢
-eïÚrfÚ,Ƶ¾zèo¼_ýN÷Võ1jUÊ%ÛÒÿiyr¤fË¢^0v¸ZoúO"ê«5qÌÙôÂ\íæ
-ômµ
-Ó«ðdq#ÓÚ2ª]QüP0*TL_«Ã;öEDI"õA$ËtGLÔék}O-òqþá¦ëÇVÒ&"M
-ia,˱tÐd¥[0~'*EⶦϸaÜ.~×1NýÜíHkÏ1\}!sÀ[xÙè2ÇWÅ;;:èáÁ³EiË;ñ=1¤Kâ)ñ}Iq{ ß: £,v$ÎÃp¬æ`s·ü¼ +Çd¬çüÔ|é£ïEBô]ÏÕ9
-6ÇÅÓÀ òý1¾TabÙ,7 ñé4âÃ*B¿¸h\÷ªëÊ*tÇ ÎCÜ$àÃ7þvùý_/ÿê
-7
+xÅK½í¾¿bΰÛÑ{0l»@oiè¡èßW h
+4þýêAQ¤^cÇi
+/è=M¥ÓçW}²ÝÃÿð8]XÄåâ÷qi¦É{ø]xEÃî6ýo/ñ¡[TBVÃ>q\@Uq« 5"l¢)Ìr3pÔ-`xj_÷Â
+ËL ¿4"ÀôÚb0Åêñ+-!©¤1\¬S"{Í#4åØà A´Ò¿14?«Ébaw/NùA§së¨TÐĺ0ªÈrãå¥ÝA/ð=ïm¥ÚùH¤ëHÛâoH¤¯g]¤3"¦Þ(ùf»ËPMFÇ_'r2f
ý³ùó¬ÜjááÌL<¹³¾Çë ]C:p¡ãyƪ¸ØÂÅf§ß;@&4Ôy¯âiVp»á¿'¦:!æiB7õjê4´ð»y3d&ª,}øªZû|)B
+½ Wµ¥C;lø&;Qô+Øf² µµ¦qÜ*'@Ýä´+Ù1xÕè±Ðøq´úYVøq½Õ|ÉcZâ§.÷Æ`b|
+ªÔªLã|wRwúHÄJDI¢Ô¤ÉYª+}`cl¥¥YôC"BÔW¾hLyO25ά
+¢WoôRb#NwLà"mÁà£Ç=ôÆÑ=Âþ(Åfo-"£1,ºKqæ=
+ÆL°.6-.Ë·¨Ñ9
+l¡_¦^6%+au[è?ì6W¯~õÏ
+ÅL/Õm*ªc©3Ó²èÚv(úsIFͧ¢ÅÛ¡RÍe|.rµû@ôc ®sís-[ÅÕf j,£Z9ʨÓd¢ï¬Æñfmv¬Ybnþ>>ºDH·Ü¢*G®ðÄ82Q*¬³A|VuçaѰ×vi«àq%@qÉ'o0ë
+'Q"£ÂöØ¿n5úº`pí1Yt~umùÁ9=Ò°eå3¤Ð*FYÿA
+1yÔïéí®÷¼tÉ5,1'+N!åÆH¥z'¦WËyn:[ø5T}êùÔcY2GêzÏ\/;[0MïÓº±3¯³\,ÓÊè´rOÅÒIŽÈCðÌcf·G\ë-ý×úpÌÖÛõI=Èa½å` UX¬)<6Gs
+»=I>='ÖXºUjÇ
+¼-¡e<¨{²Óõ32Ó>®hùzT¨P¢ij8B¾ÓKWóDEùpT|:îÔ¡±Î»8säÒò§Måý¹Ë!~X;r.XÚ
+bB´_¥Ã$AÇØYyؤ;Ö;ï«Â$i¬%r
+L²
+42¼ª4m«¡ûìU\Ì
+-?xg!2¶öT^¶Ô5µP`ã°!µi{dBôÖ
(ñçiÞÄïÄ¢!þ»i!5[Û(Êôuª¶§Cê¤å9ª1Ñ6ð.ßOú8zb«¶Ph! ªÉ=P()dÖO¹½mÏ¥|µÊB±0yLúYsÉí½vÍa}ÒhÅâLh+Ͳnc¡¦uæ6.¬G&Ǫ[&ØûV[´Ò3g&ÍFh¾äaoµáÆLïKiê»R¹}KfqP÷è-Û?'Ðb£kÕýÊ}QBoàÿÑ=ríM+*YÒ²
eqY¬jg
fóö«Cï5õºÒ+£X7C"^¬FM{ýD§?±øý¡Ì[/»5¨ò«U@òßÞ´NLÄzn/ÃH
6õ¼+Zc=};·MÆãÖÎ#±÷>o£xJ· [$ð÷7,Ò+Teû·²ÅîëzíÆß[:J¢ZÛ³×=Éc*½×éø`dØÅê¶çT/y½%² jI£s°KÌ´9V= «LA?úN××JäÍ¥´t8±NLmú
ýH~sêÁæ2Wv1¯1ìJ]é:GoOk³ÿøEW~Ê,Kú´É;ÉÝ;t«ð«9R<a5i0"UÿùÝ)Qûh°Ä
+ؼ=ÒF·Çûyã/mC>¡åæ!ÿW5ºÌ÷;öF³9ªbÊÞSh=Z{óáè]CýñåuÚWÑod£¬ a!Ás®q|µ*ÚJ PT-z÷ð0Åàb\ºBHòÅþ¬dàkáîFªÇÑ'Ù÷FáÓ]ò´Ú©ì½u5ºQÒ
+5úÉEQ~¹Ó"Ùr¨'¡ÆoaÌ·QêÜíÍ×ÜZûäæ'À{4¾SbÆ QR^}w{oPX]QcaÞäJèÊ-ÎGU¸Î%Ûï
+¢Òo%« ªºïzËY0£ýðÙèÿº¢[¹F!{¤Þ%vÊ'§ÉÎõÖizÍXo\
ɤէ.Ü8UÁÐïxJ£A¹IþlÖLTrP%²Íc#n=V¼s|e¯Ü[?5H%Ð!ŨÖy¾ëz ¥,1pfòLÚUqOI )¾Ê8]N.Hé4I÷¦½g:å¹ÞòþPåE}¦=òã}
endstream
endobj
143 0 obj
-2964
+3509
endobj
145 0 obj
<</Length 146 0 R/Filter/FlateDecode>>
stream
-xXɪì6Ý÷WxhGó
-Yì2@¼M~?¥¹$Kív¸àÛÝVi¨:uê¨ÈL§/ÿLdºø¨(§¶îùý÷é禿ýK÷÷ýÏËíu¡LÎfÒÄÎzzý6ý¸ÉN¯?B××_çëò5¼6Ð¥`ñË"ÅÊÍÖ+_´]¯vadzªMõJ¹û~û"µ
oJ«EM`_¯,üB£1uoÕ3Ïç,Xüûç=à4s«¸L,mJ)ëy7gxñpOØÉÝ>Ðç§ÛEÜ¿ßCü¬7÷6³¸<²cý
-nyZ¯i¦8ÞıÏìKmÁINóëë§^lV3ëÄÆY¿¦²ÎÎ[P6QâL¨%h¢©a¹µy{ºCù]{\¤ÓÎ}~O@ÉóÁk·N¸²«Ã4ÊE:>Q´µ.Æ¢7E [X1
-qø`È7gÜr({'°ß°Ì¸YÄ*ðëÄô±ÚZ=2LEaq
--D÷9 at E»hå!áX1óËA¤,Ø5
-°Ö¾`xwVPÆî2ñ!¥ Jº¶`ñîp±¥3ßcJîjÑ5ÓKGRa²
-]
-¬cÛ3d µÒ¨
-ì(;ä x8´âßOj$Â6Mt.@¦z|åÅçËYÎ)d¹¢r's*à3cûuà,®H=ÎùáÚñ¾
-mì0
"qgnJÍÅé¯
-võ?)
-¼bp%êhòAk:Ö:¤l¾sboTLJ¦¦AÁpd÷Cê,¾&©æõ,ø4)à8Ô\-D!³:à+nà¡tÀùýTATéNÐIÈf¼×³,ãesqZBñݤR|Äw6À làF
-ñ¡°Ñ´î-o}þ|¨§Opçf6â(Ͱña4¹öñß;çp
-C@óÞ1Q@ð"µåBA¥8ñI§uQ-ËnY¨Ye'±ð± ^Ñ>Îx)Y)ÝåÔ*Ñaü¨]õ(&K.ýé2ryü Øçåª^¼1GeIJ1ÓS(*E6ÝjèpÁÕÜñL²8òïæ¤¤¯3²=DÁ
QÙMù¦¯Ï[¢iez%X¨<³.ÂÈJ2TZ$A(QÕè¬þU²½k'h¸îÃtT¤ _u`;{!-°DÅeݺhÁÛË0Æ5u; »áú]Ýéì
-æbÅáåjãßH¾Òj¢ÝÖÐ"nôp
Ï
$S¨æ_åc©]èÍô®ùyhk®×[%+~ÛKXz®{ +â¬s×E|¹æ«®+1
WH2TZâ3dòÝPM¢éâ¶¤Ï Å¨ãµ/#§¥M¤O¥UõQÏ¥4Áj~Í2rØÃb´Í#Ì
-cöí)¸bî<Çþÿ×A6në0Ý3`¾´¢øÄÊxÁ¤\ð9<!¦-ij§¡{Wº ÀÉ1b=\-ÍMd¶ó!0´Ø77Ãòj¿°È½«fSÁSÕN}&p:Î;Ìü¹äÈNª¦Îê A{²I° |2þP@@UÄÁp!ªv!~Çñ'XB4_Ȱ
LaÞýäÎxäc J¢³ã×´þù
>ßVð'¼E(j?
-g at vߦÿ
+xµZIì4¾Ï¯Èi»¼KH3½¸!ÄqÄwáïSU^b'vÒýG¼l®å«ÅU'9ýûòÏ$¦W§V] ã×?¦_~þæôûúçËûÇþ¤'Çï}ü>ýxr
+ÓÇ3øsÂöbUxeíÏ45Náÿ÷Á3+Þ7þõ>üõrûxù¹ÏSÈ}§ÄûÄ1|?ä äg°5VÖkyºëxÅdµ;
ø¾pÅÇ_Ïú6ë³½;=¿â¿f~gõ6ÿöñSµGÄüjÎ&Db&^ZEäèÚ^<2 éURyùøÆÝåhùUåU×HÎ6ðû·D
ïñQЫ¦Ð³.½I²ÈLÆÉH_¹â#1˳¾£úHòi¤HQêDAò+0«ê±PH Mdi]ÒÎ$¬îÜ2SFí"c¦fÒ¡g$"<ð
+ÀXV=ª5jþVè
+ïtÝùWZ
+S
+@ɬ¢ a"g38@¤¢3O·x´º%¹Êx±ï¯:cÉ%8£Ïé;+××;dmå}ÏëÂ}6ì¨EtsÖû-°üÑÔ:å*¯½-½v³÷f{ÉN#jj[TG)CêiPöA;Û\ #Û¡¿Z;qãÃëYqÇlfªyo²JÑr NG°/{xpí°NøfÓÕ{¶Ñ±.²ª>N:x¡H±¢ÿÈsò«¨*¶FÐh«:kAè+XxJÔØpéûâ]*ÍÖoØö:´H¯ ô%pÚzâèI¯,`¡ÙÞ`F%YÒ ÷ÊG£MÞF
+ÿaÁ)YbЮ0Êi8;
+%|¦{Ì?a̱é·Oã£Ä:ÂýÂĬ%g!EBÿÅäFµ$GÖ5~þPjBÏÃ9~4õöF¨Ô¶#ZÞ¯ãq·EVK^ýLÜ#G¹4±
+Z%úæ@]: :;nÜCßu.sî<ãLdX%ÄÐyFhê*qgvSf0u[ò¨©¤g\j?@úÚºã²U[·»úÃn
þaúz|«Ë)©[ÖSÒÀT&Yë"Sò7jf}Ò^ÇÐm¦j¾náFnAã&q"flóÞÉ*%o-
+c=ÊPñ^Râ°
+OÌ!~ÓÆqKTÊ)-wIïUsݯjìÓÄ#ÅÖ28i§ 9W>6|f·ë¤ö¢Æç\
µ®é"Ó4ôÕFµÛ·
+eýiÛNLʦUTe¼´Þa`eÌ.1]ü8+®ZÛ.ÍZ¸e¡x#4ÚuàrÒl&²ÛýTîÍÈE¾%PÈIª8#Ërc·.fNßBº¤§Øã³Ï2ú÷sTÚ¦¼XâGN®Kå{vHN`«³¥ØÊõQ6AÚð]Ue׺T¨v¤Ë¥ä¬Ç7'þSÉõù (Õ¬£do$3à:ÓòuK#¥fH[æóºýà\·Vfv²5oþM*~)MÂÛªÙ|HHñ>®æì-GC00:÷¡K éÕ¬·»måDÕÎÍz;Ycè]ë²JÏ BK²õ.ÌÑê¡|ëº=Mh
+%¨§ì+ñh«@·4V£Ñgf
+6Ziätvõða3¤N$ØI1\ШõèïB?Ò¿&ä9è;N=ÐP
+ÊUºîÕäy§ªp3îÖKw¼
êÎÂp?(,ÖâÂ
+
+·¡MG»&eþ,y.'w«â=^ð×^Çã2þ®¡GXÆåÕº²j»0!Üh®©,ùúÇôåôHIjñéQøN|ôóôºT
endstream
endobj
146 0 obj
-1486
+2122
endobj
148 0 obj
<</Length 149 0 R/Filter/FlateDecode>>
stream
-x¥[I+ɾ÷¯Ðy at rîB ÒbðmìO¶g`ð<ùûÜ"7ºMóÔzU¹F|ñÅÙâ$¿ü÷ G_Tð¹¬øùÛ¿ýáðqòV¬þÐþþíçqp«¦V©§ûüô
-?Ðbûü0Zìaøþó?<¥>Høüéog!/Guêrg¡/Gwæ_-}uøuwú,üåhÏâyùûç>?6s(cOËÁY 3Ñê M!¯4ø]>§SB,âNãøNÞ.°¤¸Á+?ÂxX¿&îá Ãøz¹ø³µë³40F{1g¹âÇXÃ_csëÙTR(Ø]
-|Òlö eØÇ %
[¸ÁøB¡ÄH>G)ñ=«w¥Ä[°ÝÛb#}YhçJ
ÒÄÇGà8¬ó[ب5¥Â;<æ
PÛ8
I«QØ5`h^]éÓÃ2\xWGyà¸òÿçP[¸6Z9¼SKç§pñ¶ÀÍJ%%r̵½Ü\làh¿Ë
ÆË(ZUÐÈãkT¦}»¨oÝ5-ys<áC'¥³ÒR<dxB-î2" {æ>?0¯`OÁ§¸dº"Ê®y¾0Ö³eZ¥KD0Èê58N¦öW&ð$Î%=ðIìQw¦ËÞ% p¥ÑpokÖñíAvÍ3´6pz`Ò¢hDWlµ :q?Ôgtpi*ãóÌqa\RjHnr55Yï0_B9X ¡û£¬!î>XB^½ÿábwâX=*}þÆgèRRíã迼À'ÝàÅhIkT6Kßµ£O¤ÜÀ0¹qÒZ
-~ ²ÂRûéJIÆ÷$¥Q±Dd¬:Ty1
-«á
-g^:G
CÂ;äFg>óþi¬©*GÓÀ
-qX]Ô
-.!éí]sÔ@®Á5ªÈ8äl[P
-ö¯]t Ú³õå÷BÙ¡f$½Oí¾N3b»Èñ¢Íö²S¦£¬[MrýGV`Aò6.% à¡KUÈ¡¾Ú¸g"É¢uºf¶ÚÞÇ`3u»¬
à2ê.àÏu
>2¥dwʶ¸rùRÜsyÿSÒ*IÐöÉ¡ÒL5Ý{¢²f¤i°·táLL³)î:Uä°¹P9#ã@àÜ=äCYTL+ñèë%ZÆü
-ÞÂbÕûõjne¡þ[|ÄЮEs¡ìß'Âõ¸
-²Çl° b,/`'ÇP|N£ÇBÌ7Ü sy/¢´^s2íïâÅè>\É%TºQ¤ÎÙg¶®ª.ÐæÕÉCe8¹.?>ûëTæ´\\¡"Z»YslÐÙ¤àZª¶w^&*ýtÎ2" õ0ÚAïÁsGÎm{À3^8càæ~I"¬:ìÂJË>vÜOô;¿WtÚåôÃW%µRr/0k
-#É0ù2î)1i2MMµr&ÐÄbF0dÆ0÷^!ÒRR²£ù©´îäF¢£\";¸Êº~Áʶ¯éÚ?YÉoaS;Óß gÓÏvê%0ÛsG|jðÈÆd.àÂ(Ós
-KvùrN t¯O[Psõ¤ÔßÚ½Âo·ÂåHtD#õ}áòR~íSDY§Ê>[$$AXÎñ_?`ß§+ÿó?Äá(¿VäkøöïÃ_ÞØ«ëiìµwZoý
%¡5ðõ¦âÜ©;z)éAÀµPa)Ƽ[¼zÙpìNå¢÷^óZLñ'ä«õÊÇ¡W4#ÂгÊìÓá§Kå±Ï,x¸½µ5½ÈF\uYoïŬx7¦×pC/QQb
-
-rMfTwez ÍAëÌÇ
-BááЬ7p¨=U"Wºid !&èµ¶Õ
UÎæfGÔC¹²oX»Þ
-YY«ZÆR2ç÷sáQv9 ÔwBÆ
-uÜ\[ØêLɤ©y±»n°©iMÅaxÙAbDZtñÉþ)sºÉü0xÎu4Wá:ú)ÌæüÉ¿rÈ
B·ü^ðîÏhþÇ@fõáîªLÙ#¢Bç|.ؾ¢Öæñ¥ÓÕ5nýÊÉÊE
-5#Qv¨;p{_¥«&£i½5¯¾óq¦ó+@~] 8Ú;ù5óókâÚë{<;Q,q
-Eä/¤nÕEÑÁb? Ûmté|V
-J¾£voÓ©µªÇk(¢ËÉ:ydËËÔMÖKò]. Ô-]NwFª=Æ/üò:ÀÊ.ºíã¯xvcNxPÝOEó3Ïï
-ëîbPÉ8«Ne*Ê-ü82òúãð^Îø¸#«^Çü_½y¬BmEñÕ*üÎÎYgùPkJTßzYT«î"·÷;sêàæûDºüªh¹"Ì+}m<2¬5`ñò
Âaå#]KEʵp¸
-ÐCq<aO©jG娰CÎO^f«®¤#O¾É¥÷\4V U#Ý¥{qùÒzU(×_=Ç9=¸JR6*اÆÎ¬ÌãÊDM@+ã%35uêÿý
-Çß«pØú¤³f¾>6wóFuÚ6§igMä±§Fú ¥}þ ñ-ú¥ñgâB/µ$Ýç^ò.awoðí!naäÃ>PR¹ ±<XkýÔR¯J4ÒK`*l
-mð»0Æ¢GÀñ¤ÁØVhø¶@ÕÂ;BÏ+¼ÙàGMö7Æ4½ÚºÄ¥îa%mpÿ^SÕfmç? ÀÞ¢X^&Ýd´2ªºJiéF¯D-·$0¾ñPz@/HXÐ}È+¶5ÚÔǨÐUÃwµ Æ3lJÎV¿éò_nØç^w&|JÀâBB÷.rªõuuØ5ý¥Ø`<8Ý >Í®b«ke²7(É\JÍ'{¹<½:ÁÝhÄEÂG)4rL(z
-j^ɪt#
-Æ~âvâJ7»üo-ì+RÙÆ¸*¿$|iä¦zÛCÈm%S¸-ñgr£O5*HÊf:v¶+CP`Ò#ðF`° _ݸýàØy²cñ"T¿9ä
-ó÷Üþôo6px?¡Oª.ä~¹A·´§í>aõDÆ?k¥WÖ!hÛW?þ!V£
+xµZI«$¹¾¿_ç*kW
+ÚòàÛÀoðÁ0}¿ï¡-³^OªÊER,_b;óåÏ?¶ü5\À·uøýý·å¿,ÿõñóý÷ûçgëY-Ö¿÷ùïåoç[>¿]¬RÒpó0±
+'^Æ
+÷ð-->kåòO¼_?ÿóñúüøu8¿qü,êùó
+>̼Ìf-ü*£aEg
+¬"³Ê¬Fïð«2³¬
+wj:ö×^ÙÙ6¼=§#¼k4;Ë0B/0æóÛ?/Ú^Oüäpüµ
+¾%ðp=i¡ðÃ_+áÇGúbþNCü[ÁÁk|Ã1òm5Î âûV\OòâÍSéò2§4Kï¬(QüçÉkB\Xúe_bK==g
M^Ùºaîô f¿z©[õ_]®"v.μܥº{ÀÇÂÌæPL×sdÕMe¹v¾I¸÷oU:ï¼ðp2é"²#gÙE¤4çµa+¥èj at nq0*¼Wà_ª@b8,½a"S+Ü>"²l|ÕË] TXG9¯×XÒv?,B¶È$¯²ïáOrÁs¿¿nù¿gÓ¥Xó?8ݦÚW®^¦@ôqÕZÏFTdÀ$_ô= Þµ5°Ô¯|;!¯5ÙlXDÞ¾±ëvwÊÚ{W(¼pHÂÑèFvORðΡơ÷(ì$kܲ¢ux0çõÔ!QÔÀ8ëú%«ìö
+t䨬Áæ7?M`û á
+cq|ÒaÞ@U»Îº¸
+!Öl$ÄîIPï¢8áJ gô¿µëdµÒ¬Äcµ¢¬ä^ ù-£z7a]/¨CÜ®]Ô+JpÁð¡¯8ÒUDí:
+±`êJ b%.ööëdùi»z»ì;34)y6#ÔPŪé#3¹[Å/ì§XvlgmoåõsÎ=Ã}ÁæÛÓÛËim½Jµåúµ|CC8dÚ
+÷pbÀÐ
2©Ê{]"5ô{$#«!½'ÉìÐî»ô³wÆéQ²t ÑV.£Ýg1ÄHkdÂÁzcj at 1~`Ìr]ëÉÿ/æü#ëë}h`ïY8Ä6¹õ¾Ë;|ÉiúÍaÚjòV¢%SAGÐöéÊlõÀÔÝFªøUu¡ä{Îx«©DúÒ
+«E¥ØÓ
+úáÀuðñ¼H
+ËÕÎ
+ÖÒ=2ªÜ#^ê°¿Ë9z?Jf
+½?²,øvnÍê)[kLú¡~îUm¤2é._FqHñBø0x'*óªîí¥ûÕnù·@¼²kwÙíw«2Å*[kÞÌÉC¶Á<#?éYés£M`0jïÔÞSfàKñlkyÈþIÅ9»<:RÛ{´â0½ÖqbTê¤*ô¼X;)Þn0ëQI#¦nUÝãUí`ëÔÕÞQc#·?¬Då®ËäÛâRUhyåµ£Þ·ËH OäÃÉÖÖwf¯DÊù^ô¨T¬
¡Wö!<4ïz/y7ÅÝÈA`ªj¹I4Þt¯:Z^"ûC |Á»íM·tì=*!ò~{Zbo0;¨¥1Oc°ÿÉUõɧïjìîβÿue k"uu_5v^}wU !öl%>3Ü*|/ÑÕGñ¾.Üs~¾®u>6Ý£Nº§Ü·©I=i
+-<ô©9¢Äz»¡M+2p6æ6
+4½¨
ï'{.^0ï£L+î7ñ
+°Üâ3»Q?÷?¯útÖáV%ÖFOÞr$ÃÏ¡adÃD¬
+#ÎNéüÂ=ÄÜó¾ÊÊx
+#Ï£û´j,¸Tz<.GuVÝÞ'hô¶ï|¡ÚS<íJGy¹Ý4ÃeÿÌíüô Ñåø¬C- »ã¹e´\Y)å*ÜÑô®¯8_¬Þ¥ÄòλÃ:ÖbTå½4?Ì-^=Ñ'{£:ô)<Õ¤úuÜc´·µ'÷
˶ͩ^!$&©ëNÐ!1Üè'¥g$ëI#ÅnÊ,<×rìè%Õ®Ù¤½ÎpÒu·Óµ§Nh}¾jѼYj¿O¶Aõ3ÉeÛã=e0!Q¸6Äÿ×*l'Ð|á¢/ mø\oRã*J_Ê?<±yùcè
+åì·Teâ±#¢(mÎ|fåÊ-Nóì·N
+p¤ÇWÅQ7<V'¼ÜÅÓF[¹¹ÉM«¹¨ÚóÙÒ²±Øi3¶@*>K¾Övð¾²I{ªBÍà4«
+°¤á0A2ÄmPD*w¿*ÉÄT6.ç«Ê_ºkûzQóT¥-»#7br³®çtµø §ù:özmîkß}/t¿us¬gÖ-¢ÒéßÕ©6u÷¸úÎ)
+(¬újAS:Jý©õ¾ªÃP_.¶ö9*G×G2;
+Ð3m£N{{Å
UáTÉe
+'aysaâ
+D2 Â^_áMKÔ
+ðlH;7ТÐ= eõk:zæñÁîáÂùàæ½ÍÌpbÛÉ£°hå>ûZ}ÿmùöËǯËÿ
endstream
endobj
149 0 obj
-3407
+2483
endobj
151 0 obj
<</Length 152 0 R/Filter/FlateDecode>>
stream
-x½\I«$É
-¾÷¯¨óÀ{ÎX3¯6oc7ø`|²=ã1x.ó÷«BR(2«zh3P]S/3cÑ'éÓ¹¼«Ó¯_þ{ZNoKüêë>ùÇéÏ?þÿþûå_._¿¨E¿¯§U¥«¿þýô»;©øí§¿|~s;ÛõXÌyýXâ/ÛÇbóï×øû¢ãïoJ·ßnç·øý?óßMúªÌòÛÙ¨Ïóñé×®,O½£g?òïyÈ-^Æwh
-eyÒñ¦Þ¦Bú=^.Ï?تXo,O%?£lÙ¿kTÛäY*f¤]þÌ õY}>â
-Ôò¹þðQ«} }
-¤åÝ
-°8Rpï©ÙKY%Qï+Cû÷ÓÂ"UÙ¸&¹ªSÄ,8T{.Ã5¨GÇ{CA½gX-OØ×Õlu%IëÚ=
F[Õ`©'3«{wâþSETim ÷ñOMkê¡áTNðPûùËÿùµÎå¿ÿ}:ý|òk¼&~û÷éOe®ïJUÇMXÌÿõ[üRgoæ>Gµî=Èh»-yôOjY58Gh²ÔtéÜÈn/ͶêÆj¢N1/½
-¿É?~*§ã=-å²ï¬Ñ
w#®ñùéïzÍ~vß¹Põ©&öf¨±-~ã¦uY'°5ópHSÕSWv½D)½eߣÁ{XKl'=È?ãqôÔ0S6³ÝTËK.hój ¯m¿Ä$}=¼£[ÿb¨s([¨«ÝGKLÞ
-gKî:*AÜ]PT¥Ñ`¼'ÜäØÛí]<f& &7°î¨ÇFôD-±Á(R.)¿0]5ÀXí×d£çuبpW+îÐ!pmPÝÂý0%4-6q%#¶uPø¯²½~Ç.ççÛú]öÙ.kØYµiUwøHªti²õj®W¯|C½»oúPet2;ÃCª¾¯gMÝ@å]KÓB0ͳçG¢ûóÂHÛdÔb#ÍQi5FÙø]ëGúu²ÚmøQlªÑZmmãîr-¶s¯Ça²BÔA1DEVÍ$@Þ²ý*¬P5ãÝb
-NÓäôµO¹@Ù2\ dò´©ê» õèYóqÖ·ON²%|Kw0¬S.$é;c-[FîózÏ~S
è×_F§%g«q¸0µÂá_¥Õì¸tî
-%Y¾|
-%)ã¬h¾»ü}©©;?%"ÌH²W°1}£ÎEJ3éX+ÎMC«§Vw97
-Uïv y2UØH¶+¢SùàeÊ8Jÿ(6sZQ
-7ÈKa»&É4Èý6¡¥Ì¸ã¤0âMhê,SFdH²|õçN
-°î]ÑxSÝ
¼4ê°Q
£¢DGÁH§»Éú(^¦`²0£¨6÷=TÃ1rã¼"Éc¤)°RqtÉ!°èP»Y¹nFiÔzT§áÏ4YÆf!W¯$wU¤ÊV|
úÌwÊÓV{!Lt=ª§{µ¥éÄNú|¤ýL¼u¾ê½ª§\黯ú_Ñxï=6
-¹iâP¦ÛæÔÀ`»Æ´I
-³O÷¸É¿ó
-=h7
-À¬ù¾e}7ÂfjÔª¿¡oeÙ¨je<äXï`Çc)¼Ç_UÞ8ýçz´àYMèb8qÖl|!W73ôh-2Æê(Ãëp³]%·qÒ©ôZTõB#îFõ¼XS¦Ë¾$V»¨X%ö9ì±5â]ixòîT'~ °Ekü20ï^8}¢
-ÐÈ`ð-¡4ÏlÛzTPíiÇ8§ªS祿%rµn¯CÜ
-wLwPäewq;Ó*yDí'Ü@g9J2Y(ÕvRº(§.I¦LÚò 9-vÈh:)X{Mç¸R»òcdñü¹ðÍ5]
-t5¿T{ïêUéÉ[½<ø~£U%võòåù¹õ[c¯keF½³N0_W¿_`´ÏøëZÕçVî*Ý|É2«¶èA;$æ<"¼9û¼Ò»Ö ¹MÀ¦Â<¤¤°cfÙi¤Sï¤HôZ´'#qÅMWô øUæñ Î9ÅsîCue.zrϺ¤¾¢NK7V=÷Ö:xNuàV%Ò¦ü\ONµµmmdQC;"ÛîÅ )\;Úr9ä}?iÞ|@GW6:C2·¤+C¯Q{@Ót»BR\ð¬i'6Fn)·Fåî8]ËüÖíB`X ?lë2mÍðÄM`\âÌPb67ÔátµU»Kg
ݬh´¢ÎwUFáV9Ó¾ìa7êÌ5ؤ9@µê*~7§Ýî
-¯ï-1׺¢36cïdÑLÞÍô$KûIêsçhYõ>liX.¨wWGÒ(ûÔÑMÜ-&%"Ëú@
-2DF¸E³»(rFâZ-@",ü^Ô
-`#wte(ø"Ôxåä¬#ªTB|DJÍaÞad·-ñ0ðã¼ç{z5-pT!DÚm~'.hì&í0 at .
µ«íÎBéfд笤@nrîÃ
-a4r
-v¬Ñ¬¶C>ÓÂS:Å7bâEñsèxÅXß9Côïkm]MÃÙånÝ_8X½{å²>g ~i°Û°ÖÆ´ÿJz³
-Ñ9ÄÓ¿0ƯÔBɼÍC²üÄ(@õ#* `×þùFmÍPûÒc¨i6·ý¡gsU ì§sýÓÂ|"Ä/iË/Íc¹^î|ºè'ö`³ÍÞ?º;í]r v?ù9 xCÌ7oç«gA43Kâáá
-¢[Pv½
øÅ</*ãQÊFÖ"3Û3s68
-p!±ªB÷rÚJÞY¢cS
-©CÇxå©ãléXî«¿ÁD:Ê;;ð~pÂ}:JDà(´ò`YøÏÄÁ®¯p+=dhxbóä$#G"^wö¥7G|껥5ª1ân*<M7Øh_8*QäÝØCW-bZxLÓ¯ö{ÙÜ¢a'GÎg³Þ<½¿Þø7`ÿèɵÙ"½¦éµÓFêKü'«MüÔqÊ&M^_Ò¿×ønÙ"â´²Ê(k/ñKR>⬽
-©þªï'öÍm¥Óà,ï«(ßCD8¡_«`Úp)¢QGÔÔÄúPNHsZÞXu½!òÚkZÒ˹eGN
-D~-ׯûø»_A½1©ýmío9óº·´,'!¹GÃ.<pqpb5¯éDU3®û²v6SÏ\qÊ)3㽦EEì}µÅêÕ°ß÷tÐÌ lzXyJM^ê²¥PwÜ)R2-ÉäÜ+ÆéaéáÂð:Ãõ[8ÜK±6ua¯qbÂKIHçñe&¡IæL¿KܰG Ókt_}?r}À$RæùÛjª/yøaDSضÆ|ä¬?dªº*06ÒMë¤ÛôjëöoýfÓU >ä
-¨+Nñª$z¢üî½ÞÜÞÖßRC+_èDìSÉ|®F7lN¡uÛ¥px*hÛOq
-ß/çÄHwÀ¦l³ð¼Ïz7Üw%Il'·¦¼U2ÞOÿôCý¶©%$Û´¸ò§OÿË`R
+xZMÛ6½ï¯Ð9]~SÙµtè-À=½5)ÐCæÒ¿_~ÌC´äMÀñJ"EμyófhvåÓ/ÿNlº0ÿÕpá?ß¿N¿}þ7ÿシ¾¿páï3wµÓûÓ/8Þ¿ý~3ÊèåÂoÖ¤ÿÍÛrQ7³Y¶\ÜÍÜã_éÎjÕrâ&Ø¢oÇQÌÿËEúéñs«ÿ_
g/ú¦ø¢nÖßp!}·:?ý®Â=»Ä¤i_KX
+¢ÄaMþû7u¾Íq@,9öÿxÿõe}ùÒJ}5ÔT\LE[I¹ÃÇgüá×éÆ`JÅl=e¶~2e2Âmÿ¶ÂêͳíÞM[fÀ.åh5q¿ýjÂè÷¿{#v3W±3
+û~ß½+Mg û¿àý¦ÕØ-Ü«¬B£[3TöÍ&¸VH¬PQì/qÑ"
ü5Ã
+ʬ¯Æøå@¹ã4=´jºdÏi¬#¼`K¯¿1
+×ãd©uhqm<jeÞRÉâjòFFR3¬FmåàNQ&Òuãj`QZ-0Ä§ÆøäÞ7v25Ñ.ñ.H'ª¬aÐX8ÔnÈoÅÅñ-è{.[îÑi¯`ÚäY]A#
+N
FÂ¥ora·ÉY0$#]KÍ&2ç¨*û'+'ͬ:Cèë<yü_]r\àÆGü¡d= øÔ&òêÌ¡¹©øË¦ââ·U-£Pp8"{l8^ר=ýhBǺûÚÇñk¼!¬ 3Dªep¨OóiÐGãÀ(ÒÀQ&Ãø
+
+}ÇoÈ9þ¡4=÷ß){¡çsFWVY+fèÈ'ÊAðåÊGzÉNÓ7ñõTõ(QÒ^å`g52üÚóo`Â.
+D¨çùÌë:v%¹>Ziøcl@;ÎA.ZGXdª B÷ÈH½Q|]Næ^Ã
ëIIUåVAßhû÷±ò¶KsÇ`&éaäz`ë#RÒ6Àô'aϺ²°ËiD
+îod
V«>LDÔpÙøâ¢ç uÒ,3ígðBQ5Ó_O=Ô©ò#©â¯.:
+¤AnÚì¶wÝ!~<áð6©PxQA!8B¯¾àÇ*«§lÄ¢8Ú¿HK$HµÖÀèÞÞ®½UBú@ÏÐ7Tdß!åP.ÉNn&ÄÂg÷ ×òioòC`)»ïó$¨ÛV®£ð¦æ©âN} n:©nJÏbe±JmBUø÷wTh!°?Ël!eʨ ¢¾£%IÚ<Zqò3ÕVÕÚ©JÌçä°A[ýÅ;Æÿ°({y¦ñk²Ièå°"
+«ßÚíðTÚxx§°-W;¨
+³3ºñb±¯Wd¶ã´#öU³ô¬]#¬¯6È'ò4D«n at 0^Oþ¶«²¿<aóòt^ÙV-
ÊöçJÃëçVª2ÔÇ=ÒzÊCHQÕ]Äó}lÅùµgÅ£Uiû\ó( S.DÎaT©Â¡¹<ÐÕ5íJ!××d?v
+§Ãò38¹uÜ¡£Þ·êïØ©rùV©ÒÛöï e.gó9Ö!2×á,ÄsïH}þP"æ@êZ²Qô¨¿?Ëï$2Ã*¿{1LKÉm7µô8Xl'ÓqìRÈÓ
+à¦oÓ§LÞL?îVÞè@sÔ¼ëÍ#ÌJcvmWä*jik'+ÑÖA_
7fëðßó_®éar`e¼PJ.Ù=Páð×
+ujË'@@ãÑÑ(ºjØ¢5Êön>»¼Þì pE
endstream
endobj
152 0 obj
-4524
+2034
endobj
154 0 obj
<</Length 155 0 R/Filter/FlateDecode>>
stream
-x½[[3¹}_áçOtW7¯¼m2§d7²|/û÷£J¥ÒÛ^>a<wK-N:Uŧ<üúñ¿8Exë¤
-¯~
×o?þúÃá¿ñ"ü|û×ÇõëCZ÷é^¬á¯þðëAªÃ×Ï;©å|'áÏG}ëYIîç£JÈçùèNRÅ×nïp·aãßÔn±ç¿ýéãñõñc;"¡>ýÁâS¥Ùi@æ|\NbóÑRÿð^:x¯âð.s¶0ã
-#u¡|ÂHB»GüP=\A
I(=áä®ñÕaï?+Ý!¯gsÚÊ`¤[øoJ}¦÷ñQaªG#¡5ñ§Ú«ðW/B¯á¯[ôòöÓmf*5=Xâó̳¡Äá°e2RãôÔ| 2^ø#ÿñËGÏá×é(ÿüÇ0yøåàõçïþsøK·Ú¬z8´¤«=i`r]ý`þFVxCjïåÛ}·ðª±]ê\a´þF¯ÏVmÀê:!ôüõï
-t{Ú5+ãÝrÉÀ6Ô sáC©Ò²iòpãõÔôʬ
F
-]¬¹mc£dîÁ{EÓ{|íØÙÿ¼K Tµúî·ÐÒ´
-ÝBU^Ì ÔYâ8Ãåðy§o
-¯g*+I3Çd>è4¶*£Bê8WqÄ×Råpú#®ð
-éGciö}93§IèÙÒwèXç3
-®&ÀÖi _/Ö»Ï1k1ÁÇÐóc»hô6Y`ÉÐ-hº§¥æ`1¶²¢snÂîy3ÇáJÂgÒØ*µkdøúÉV7£)¬ò¥#wr¶½®Ä+ÖǧÞX[à:1ÊBÈ(¹vq´&cº0Vò¥øÇ³·á[
-ü§êÂk2§<ð{5JnÉÈÍs
-ã|Î)×ÈY²/ÑÂEP9\`)¢ìÕðL»Ü@wßãy»êç_
-N-| Ïf=(fÖw¼Ul?J×8Ç LÄõÝh*ßXknwàÙ쳺O.iâÒ2
-rÅlPÐcjÏ3~ 9¼`ñ2ZSccz1á6
-~0¨læôcÊ
$¢ÇÈ.ªÚ5¨ÊhY« 7HäS&ÞÅ|1|¾ã\ ì(T
-Òð/¥ãÀH<!Ç.If®]í»`rë$mæÞ¹å,EÂà8Jíɺö¬»JAè0¥/0ëôt>óW$i¡f :3±+ã©2wÍc
mi»nó)Oí¯Íê7ôOÍôúÒ4&õ» ±mTÛ¬¨J©JV¸(û©ZzͶLy6G6¸«µ©~²ÛÄ5#YP¢Äõ»²µEÌKÕ¿ã)¿;ÁÝ(d2&çÅHS?6%od*ó"$ÜμPül~*Æô(f at mp`Mð×ü8Iã.ŵÈ^yÁ \Ç~ìÖfÉxA
-pùtCpÒBpýò`º-Eâ׬ÅM®s̽ë(Ì{J®râê¯#
-°ëÞS5´|\v¦U¯byú*üS]Û*>¥ènaÑu?X$_Ìõ×Qj]©*)4·<·n©oå¤Üä<¿ðÖqº¤Ó
-Ä®»¨QoídH¯7UÙ¡ÛRõ:Ö0/öË©Ôv]¨D¹2.ò¶RRÕ.Cô½Á3½¡`º´J[2|g3Èë"GQgufâ©ÞѺµßEh8Ëhøo(
-¬ìÏ°Âø)'_ÒÅoìa§åIf°R2Ö$¦
»r
¢Iü¨·&Ã-(+/·j}âe«&OvC{DÍïa$%`
-£(`ï7Ëñ¤ø7*¥ËÁXÐlè.âäÁGfFtÃnH&A¢>¨£Zÿ¿1gM÷Õ^é«·úÛ>¼Á
-iC¢Á¾äÑâJT ¸£M5¨0*(Xj¡EO¦M`ÃÌ8
-o°÷Ð/ã<£úMäÚ)xjÄ·/x5â©.rän×"úͤi7ôÐÙ`cTiݪÎÂJa'i©V÷±;**Dçã±½ßËÚ"»²
-®yÍk¾Õ²ô8ØÁZgí¶wÓ:Mï½,UÊFwÅéum`¶ÐCq´¯6>±ë{ã/§:EA«|;cH%¤VRÿæjoÍ%O*Áã24neù×*³u}«J5^ÜÙÌÂ÷Ñ^ÙØlxalƺÞÈ}mAejjx¶r#1?±¸^ 6²x")Ú1HÖM¸ä«ñe¸ÇPváâ;_±6{nûFC<é=g£}`Ñ4ëT.-xv,Üf`þ¢°È¾Ya]%ê2¨±§ÌôÚoàO¹pxarVªÀ´ K¨&7ÀL«6ÈÞá î`
ë{ëÄ5¬O<lZÕ¸Ï3Þ¾¾÷¾Æã¥þÄËbTÖL&Ê]e¬S²)àØN]8-D>;¡u0åPÍ¡ºª´¶ÌBÜ\Ûe,ùBfV°òÙ¢¯2ÎLIK\}f`Dñ¨·q¬ä\öö7H:ÍÏñ±"E%Ë+˸ñùÉäS
§ó<t0kC¹[¥HÙź¥ª×Æ04¥^«WÜq/ëÁ^¹Öðþ©àÌç
·êúºåÅϺQc_Ú¤ÜMÝj*bJ:ç$mrCQÅßp6×´'¾¿ïnEWÆîôí1Q!gI^Ë+Û9ìtDjI»}³CÓYóòÞß©8-W.ø?¥Ô£i&r¼C«I!¬Vï1E{EÝÀ9ÑsÌùÄÆA7@È.DÁÔ°/ò|íÖqs¡~ó!*®s.àÅ:}r
-C~R¡Q¶[ÆÎe3øPØÏ¶»Úù1sPQʾ÷l%½îb37¿J±qLÄ
-±¥þÈ^7ÉRBÁêUgîÐÚîÅæ|ÂRsø³Õ¿îøÅ\ü÷EÄUG_*ýüèrÿÔ&RzDø(Dv·OÇ·<¤ÌE²bkAEÝUU}tÔÄf¸RµT¸3KÇn̪õÈ9n(æÁ
-eëg{ÞtbÉÂvÔþHÏÑÌKMõáÌ,¼?Ùô¯ºä/Ãq²:þÙ·5]>úú¸ëÃ.{cÍ´ ÌáO<qvxb¶±R5~>3¬Ô?ù¤ìÒçxÌ×VÎ
-²øjÒq|êZk?Sµ
--è¯.¶ÝÖIZ$t¦ß
-¶üa÷XÓFZúxKJa;IaLøDò<XÒG^]¢=Óð5±ñK|ÕñiéÞx5®ßQTÐ2üîtä#$
-åôb
-}GÞ[ðtJ_¦TQÎJß·¼e)Å7~Ó²t&§ðSOMßÊ4G@kpõàî4T½ôÝ.Ö,u Àb}ìûü¯ÂÝìðXKÇÓr¢U亮©n(
-'}¦1/óß.ÃÂQô×sÞ¾õ)2«{×5o~?¬!«©E1òés
-Êùy¸æØ[ÊÿYIãÊßhë×fOJ'û
-k>ÚsL¸ºY
-¿ÓPYu½^ÕEBO¾ë½2µ¼fñÙ@ꪡ] "@¸¼ÀÝF(øÊ×M=¡G Kºêð^]Eè)ôqUr:~1ÀÖWÙÂÎ
§=¥
-ãÑÁ(}
-¿÷©ýÒwÊêZ|f¢|4QÉv1è)f1%n·CãÉ`èÁ`ª¤#:ùý5~-rÙ:B¼úK_§dÛÙÔJÆ/l
+xµ[I븾÷¯Ðùv¸Ü¶5ÀÜ&i ANI^ `æ2XÅ$w'h at vKb±XõÕJZåðûÛ¯NÂ}µR¹ë´Àõ·ý6ü÷Mg#y(?û×첸WRçÆ|ÿäàϽñþñ6j=LBõðñáO«ä<||ÿù"ÖëI]¤ò*/RÁEã¯FÚëÉ\Äûõo?¾=?Þ~*èªÑ¸qüxÊjÐ)ÒµÒ>¶¨Y¤©í: »X=éÝq²bËA²Ëu¹Ø'PÆ«»
+ÝÎLR¨ó4yrâTf2NuÒ8×â¸vdÑÓx±³£ë>ó')áШ¯Hwï2ð¦Áÿ»ªðÞ4]ãýpÅGÚ;sW©ýáÎêþÞ#nTgatVûH3Ë@ÁßYM$2^OøÍé
+?¿O&ô÷WþF\(N.p
^BL^I ®p;*ÚêY÷×Ñ8½ítUWmcÇöêVçP·
+~<¸[õ@¿ jà+PAÁl£që^£´WxUÎá]¨¹nü»^¥ÁP5-á ÚÏÎlfwtM¼Ê@8`þSÜW=èѵNt
+
+¨¨å¬
+¨häË\´ò#Hd×¾Z¥Ïd-A
+¸(È
+Q"hu!zö$1ÓÁàçb¤\*LO¡d&}I¡gl
÷`rõ/yõÌScãdBô
+À&æj¦@À¢XEæÃ÷À
+¨><Þ¦| ¡Î/Eî"K¨x OåL²õÙX;`1I¥ú]°¸«.À«eFnYÔ09ô'féÕ
+ÍORÂ@}Or>bZþFgÐÇáãd¹QßÉ+:-â4)P*t£+ÁiÙgrðc#%aËÛZA=t"©Õ½q«49°G3"ï¬Ññħ8®<¬S=r;m%±&Ë7z
pD#Ñ5ùÒÂ%$V§8Ô%Ä<Åg22f-ÂÎ1iÚK±\SsìÓu
+È#µP¤éúþÎ=Õ
+©O¿W/uêг½MÙë.(èÑä¥íWq^|V¥<ù¤°=SsMùç¤Ç'Ëê"49·b.mMÕWÁ~,KTÓÖPÌd£õÌHWx2,ù«Ý HI~{MɱxN4Æ|:¿á=Å+£Ø£¥MhP»T÷Ëìg.,74 at xÄg¥ÒÁÀå.y/ZÂ3Ì3¨@IÙ-f§ùZÿ{þHYµmSTbf=m¾;¨ZøQpe£û¡u
+j'÷kR/¾}[*eeô{=[<Ý@¥û§ýLjô,¥ûÔ³Ðû´ûS©]ìhiìhÃKV°dRtêÞ$bG¿ÿß»ÿù71 øË°XMüþá/kÄâRöz¹Ò-úöKl)÷&çª6=×§X;Kþjü»KݬQ¶@S?,@¬Ãé¶|ÙWPÌCÎ]ÚJpf¾Þ§´ý r/¾0¹é{ð/Ë5þöw,ÆE5ÔYxÉMXH¨±>Çq´WWaÞÀ-Qo"eäUC7 |Zëã=£MÜ«àí66¿ à¡Ý~
+ïË{´qéÞÈð³,Õm¤¡½ ¶ï*Wwt×ÎÞ³¸Bg ç
+íÏv£½Ugkce~ôL©LÛ(««%c`csLZ+ìé$C¢Kk×T%ÛPÒ,¦ô½È
p7ùÛ)mI\Í:ÉÙï|X
+{àQKvjÔx²ÐÔÞN}ÇÓe·ÔYØ6z!êå6Öý¡zͼÓ
+\
+Û2¥ÙØÉÜèGq3ÜlØ)3UpÛlj¢W½Ö~Hzãx;{G÷J¸%°%(Ó1+?[$õ)
|üEnrZ8øYCg§fûÝæbÿ>Éc,×ÍbQÌ<IþÆ)cª¤µó.)[
¿»ÒÚ¿âuÉÍnj©oÙymÁû*¬¬)SÞñµ"<Yj·±¶zÙáûTõ·sÐ
´NŬäPØÎ¯
+.3\¸Lpy:=°ñ_¹ÆlDÜãXï'\à9GRò-UóîúßÓc¤lGdCJRå)á©maÑ5=M¼xÎPMæ9n¿%RAò2½'R!&÷lmÄó¦®v@÷ÚÅ¢ªÐ.6³rpj)»?vòs/àÅ&-äLË: ØÛn µ5syOèÀùW8ÜÇ|6Uªvîñkôc ]8òd!ÊpsJ¨ÄÑtüS«ogÿÞ/Úø6Î)4U²È±rUÞ t"SeZº÷.Y:Yä"~savAZ¼]¤ø?°«ó¦ãÓë¨Õ¦#9286Û'98àt7 DÝõ~Z©kØÁ×^X¨£"=§·GÙ81rÉä-ÐRÄ
+9:ÞÓ*eZ~20yTøâÜ6æqK@{Oò[>¯XÁ¬_A¡ú*}jØ¥9æ'{
+~°èÿ4ÁJ]º$ð00ØAqhHz´Gg8mÜ)rG(¼Ì8çi À¾x÷ÿ`ý&|è^ëÆgÛ$¬q¸$H£.æÁâoÇ ö.
ÿ½ó÷oþ1sõà§áàü
endstream
endobj
155 0 obj
-3489
+3128
endobj
157 0 obj
<</Length 158 0 R/Filter/FlateDecode>>
stream
-xÍ[K$¹¾÷¯¨óBz¥z|[»ÁÅ'{gÁx
-ÞËþ}GèJ=²Ú3¦le¦¡Ð_|R#~ûÏAÞÞZx]Vºþöóá¯?þíÒÏo¿¼]?Þ´;®à¸>þqøÃäÄáãËI<ê¸ËX±ÈE\
X
-´°øLÃgZ
- pŲ+þHBâÓ«Pú!A<äU>ð;'j¸ÐÛZ`7ù¤ÁáUâ?aÖµ6®TÃùão·ØáÐBõæ°ØäºH]]¨Râ¿»\gõY·¢ûFDãݳ-;õ-ËÑmê~_ÐGy°FàÇþ3s
-Cåâ~~T_ÅPþôå¾ Üâ]AÀ½ù¢«l}¾~G· è;ð;¹Ä¾` ¨ºU§BEñå«ôܦ
-ó&ô/©r¸X/¾û#³iðÉdV'og>'êO«¨[áå0;| X¾¢è¡M<cÿ4ó|]F,y$gæUSƹģ¿!?èM`9,Þu
-i0×è/hYm¶´ïeµûû©wbî¼D`(vñkË@`³Ç±ÅÕÈfÕæ)KdÕz+H5À³
--øOëîR\p»Ð£X¡[CGªïl¤Ù^ÚÁ®ÀyxËåîo½µ8i<`×g®µÏð;XùyX
-ËL`tNÉÆo<åekðIL©Örc.¦óiãºÒòøÄL¡VÝäR&6¬°íe3
¶ÖÄÔº§UNéæ_ûÄ$hG3T¢
-%P·yIüæ
-èç¾JddüE÷¦¼ãY³ÈI~làQ ]I
-á~ ³ØGÓQbÃíÄîºM:µFߣSsâäjÆÕÊí¨/9¦Êôì¬$dÄ-S(û(bÝa«*$raJ¨/t¢_D`Û
-<qT¯
-kú ¾Þ}Â\iãÝ+D· !7à=.È"èS4Ý&o}¯ÍGû3Úýh½`×oìÚçúÆÄ§*²6(y·AÖ<®¼+Sê¹P¤¬8)(98®hlüD2ò0z7ÁFèè,7¦eo [}-j,÷Ú®«.ÅG¶hv-ÎTyé\.÷ÖK6yyÔåê¥W×ú]g1KËîJ½
-èÚ\õZ¨xÞV°õIÝQʤ×VßçêzrUQåë8¯HíÁɸQ=ÌspP¿¨ER¢þFÙ@ÙÇ
-¤%öÖÏKtu9èeتGWy[cºêð)§«¬³J-Ìõ:;ØM[òß°I(Mû/u\Çp¯¶g£×A°ÔY6,Fdy°¡
-.³ÉfÃÒß]
-+ÈØÃq'=Có%6îé}ºõ*pg¶wCý©zënÎ30¦PÃÙF¡Ú%¥D¥¬éZf`-3ìþqÈÆ$=ò²õÍ6¥ª¤ø%r´»½e#Ýd<½¹£ìV>Ø:Z
äq%]8õÈ>W`¯v»àLã×þ:Ýna¹ú¬F§0a*²Ý$ö¾Vohº8²½ME)ÛÃûùøç(íñä¨ù
(Ïu%Evî¡*om ]æÈ½ÓbÏ\o3ëì4R'fåèW°3Pª2/S/7]JØÈá8LíÉ·>±H°i/«xQ
-¯fa£õ±§ÓþwØ `m½¾AÁÓS¥È¼=cí%&{ø¡É*U4¹¾Â(ôzé$/ìפçd
-¼ÕU§qAB(jAIo&²Þbº¸ç³°n'áûzl^bâ±kú*/lè
-E³µ`?´ö¨R¢Ñk{òo§&ÞTíÚðUÙÐ)@ÒÈjÛ*ÓÕëüéì¶hØÎý®·`XÙÒ6.Û±^Sf³{LÎF ÌCr·:ÀJΰÿw3qÂv
-/¡Ãè` ô[©B¹9hVi[Ñ(éÓvîÕS*ö(ZNK3±'
÷§Wè@ÉhØÝü%¯®q¯>ÇÀ&ÎØ³ä®ÔÌÃî:#`¼©3#¦AÛuúZMF½çø¨Wlöª«®¯7°õjÐéÅ.n¹Æ!3êu.Ö¬yô5fílo×Ép#w°©º`ÿÂÈÐÎï¼x¢f¤Ð¦(ñ
-<Æh:c)¯ÿ½)ÊGb×3Ï¢v&.%'ùÕA!~ü¢=$ô¨(X3÷{¢[b
-¥1 ZI£øP¢<'\ä0!°M²ÊîY²Ø!L8
£åiriáyXý»YÂAm½uB0Ëß)MÎܰÝÔ¢õ+ÇôýDxiTç|mRv'+dzQNïtÚÀÿÆÙ]®rKcHã¹ÒvE¼ÍVïxÕK+sÈáÖÖÉgØM©ñáPvûnýö0q:aW´ ,ð ;<);ÓÇ£J¡§Ó5o+ùþz&\Å¢yú.QcËßå¯4mê÷BP¿CþòÃÛÿ2ïm
+x½\K䶾ϯè³/Q
+ìÌtÈÍÉ99%v ½øïoV±¤4Ø´Ó-ϯ^_{y__þsY.×Åý¹
+é®v÷×o?]þüÃåßá¦ÿÿÛ?^Þ¾¾èíu¿X±¼ÚË׿_~÷ò"Ë×ÿr[Ä]Þ¤tå¿lþ²ûõ7w*ßo÷¿~ýÃËãëË\ë¾¹ÔEоúrßüå*üµó¶X¤Ùº×5¾nòëÚÞõmÝïW}³ëj|3ëã~Ýor¹_ÍÍjgÝâøÝªÂSÂ_Óýø]VÞ¯êf]{bóôÜúXujÕ5êé¥ôÂvwä^¤>jGòÝ]uMnÿÇê2Oã@ßú
+ ¹ÄÇÒ`ñ
ôHËæû¬
+=©c67½Ý˾gßÑ®?cÃÝ´èé¾îaÀÕC`À7öõÔ¬t5FÝÅÑ
+
+yiîÿ·ôÂcµ,n
+¸"~w¦ãÔþ =¿ò®*~£ÄOg<ËGÛ=|çîZ®BT÷*ÞôØÛû¨pÃR'§¿øé
+ Ófq¹á_×V
+3>à´^_;ç4µ¸;¢Å
+CÒ©y)L
+º+í{*Ú¯Hc{ª?+|?¨¾ÒÏû;ìγ8±/¯ȸ35Û«fgzâú=ÂíõZM2k@¬°ù
+Ú6YUAÐÝi«ÔÊ
+ê㤲6B¾NQçEMõ-íÀi¶ÇéÜ]un#à¤uHkäï{<#~Ù'ÄBm[°û[zÂqªx¼á~Z°¸eËb
+L¤ô~[7üy
®w/DÌâFÆv|ÿÑÒ.H¥`£_Ô:èp¤ÖW§¥±ú ÆÇ-̨=°
+t6$EÛÈPEëצ×)t
vgTÝP¸¾nY7¥5MOEItKÜ×Í¡¿ÑâÕÍkÐÍd¯A73Z>úæv1» éßã'\ÀA¸ª¤×LòÙÓQüÅ,9
+[¯ÁºÜ¦!ºôr÷ÝgÀk>¥Ù{32ü³bhÎÊPÉ8ª¹D5ɬ|Dÿµs©£gêxI#>·euã#èüF7«åèÕ&ý^}¯bÞºiu@qn).Æ2öèAýjÒÀuCóõÎ:þ6벿¡Æ:ïUÔP>M¶1èá_úz¦bYNó®
+·[Aü(Ê\¯÷ Àåi(dСcÜL½¤è7ün^úW:FÉô¯HF¨ë¾ëW*hÚ)OVmRgÌRÆ,"~ å>ÇÇ+h âè8ׯIZÓÓÔ
+|rÊè¡kâOÂÅøMªÚ7Ü+ëZÄY=FÄ鸼J(@GøR^eöÌY©nhS¤ltA}!ªE&XàÝ+~mk
+\Fg]4³ ¬Ó¬
+ÐNp]°±&ÜDvüY}ÆÀ«ÛÀq3«÷¹Ìô°¨.pu·
+,àxruTÞ;`¯`Øö3>%,I a¡lôâ°B26Ì[¬êísg2é¾×
+#&ÌAôúe/bAc!3ÙãÎ.¥³
Ã<WCÁ¹/%bÄ2]¬KáEÊòáå`Ôíªs³ìÎöÒÅlÚn=~¹ü_/l"Û°'x¶èS '}@¯¾¥0ºXlHR:i®ve
+ÃÏ8ó
+Ùü,ráh9?7}(!0w ¡¨QPN®«øÆV}Tq0M8¸Ä}w.!ÅÃAj#¡Iy"Y·î|jÎ]mKºÜbì}À-Zånt[a=¯ËM!Y¤ z~ÛæÜûqÝP#ZFYØ£¬7sÐé89¹4ʹÀ¢i>ç@)Ë0è>c>0§Uºd® 9[§0òÚZ«¡¹d<r0ªAê³.©\IMBícIíÀUõr v J¡Ã ¶4½õE8t[Osp3ï0
+QÄ
+ÇaQ³y$ø[z-ª»GâHãóÿgGqTYòZ ˱zgöÔÓQÜõ÷T/¢3wιìïì¡â?ÈÅÝíºÖ§ñǽGÈ'Óy å
+5$OLZvbGðQ¨0ò%16ÐÖ}ßøÌ±Ä'ΣRÞ}gáÑ\©KÉ Ø@ÉHÔ@jÆ©m˱¸Ð!³¶Eyéi»º±ñâ}u>
+¬ú\ûm òS¥²lC²C*ìDRZ{|<~ý¸W<ø]ñ+æqOïn bî«¶¬cÞü`|©Í0{yÄ9©ôIUECNK97¤Æ5{Ü+sÔáµ0î°í
+u%
+$ør¬ÁÎàг-e¶+çÍ)rR#SF°ÝP´D<©¦Õ@z½ÆWÙPú8ÓêÎ\ûæ¬²ÔØxź3H)Ve4áCQ¤yg&\g(¿²þøX.å´_ëxRAÝDmqâ=%«pþ°µ,®:5² @íC®ôzU©t¥Ky±/ÀÉ)ñÎâ¿÷ËW|¦îòz!dh,1û¬ü£ìMʾ4éºÈ)©ýIñ&Ó&mHcAÃø(T`ä´ÎX-ØrC,iÎÃM- ç!V¤Ôî|ç¤áãÆ)Ì*To!Ê®aR)½*j3M>eá³2!B^&ø]·
+ëNt:Ï«qÎw²Jíai@ã[<8!|LÅ|Yë0³î5,æ,âlf¬áéod×
V·
+$íM©´¨¢_ð«4Vcº_%8Â00¬Fs«NÐI#{ÒÜjÏ.Vv§IèÎO±bwCí)9Ø;ï_#µLu{ºAzæN;µ9°{Hè8P at C]v§IÕt4¹àNUsÖ½ó¸Àk¾
+ú@E¬©,K0M¥Å;¼Sܨdã¾óyÇ| r
+®nÇd:ÔÓÇaê×À)KìfÎpRxbX¨ò
é÷r?"
hòN1_
©ý"DF9ìN
+Ƶ³>ÃF®äý#gp¢Û|Pפ5{*v-à9âbg éGO1¢âS2>§Òõ¾Ó
yu1cZ(¦¤§>±IÝ¢-##ÓôÈ6öj°ÀæÁÂǶ^Ö£2p´Ò¶[*©#;ãáY"( TnG¾ );Nà°ëïÞ\Ì%v¥?ÌØñ5N¶¸¡èç4 3qÈ!,µsBÞ
+K~xæü@ÚH³ÇdêÿMm9y¸õ.çñQ97ãÿ
+ÉV¤hÔ´ç/ÜÀjñ¸XY!,&¬¶ßrVvvP
+vAË#.-ÕÝ
+)_Yû;qº×b8~ÈÌX'@{?>àâiÃ7·
+gsÃøÿµBá¿ù0nG¸?¾i 4ßðøNá³¾ÿøÌcóþ
+-ò_êQÞ5å9N-wïúç¤.gûéÝ¢UhxZ¬³Xc3PÚmdBÌ/&Ö&juÖéoO5ÑnÕYÉ©!K0,GD&GÃqCæÊWÖÅüMÎk±¡N[ÄÔп×ò¥]¤ft(
+ÎIuÙòÏ^×Û"ïnP]ím +·
+Ëů¹-¾8séñ
+-B5;nÛ¿ÜÖ¡ìe}îA.áçÜz{øul_MÈfÓU|å-/KûÅ(ÆÏÐ^ýÏ}ûéòóé°Tö·ÿݸxëÇË
+OUÐ
endstream
endobj
158 0 obj
-3159
+3969
endobj
160 0 obj
<</Length 161 0 R/Filter/FlateDecode>>
stream
-xí\Kk·
-Þϯð:ÀLE=Î0Ø3vîÒ^ «6)P4Mþ~E¨çñä¦YñëAQäÇç¹ê
-N¿¼üç¤N¯Ê\@ûë?þáô×oNÿ_â¿ÿñrûòÖ¼m§pô¿þðp'ð~üî¬W}Væ²ÕryÝÏê~y
í¬ìåÕÕ-|K×Ë8|
-¯p¨ÿxØ_JaëÒ"ï~Úê:<0axX§jÞöÁa³ßp9'Áð`83Ϥñ3Ь0ys°¸¨8LØè¢ID.|àÜâ÷z£6!)ºñy\èÈåò¬|D=ßÔB¬':
-NÝ ~ßï¿üéåþååÛêÂZÞLçÂqé/ÿìÍ Yöõm¯E¤wE}a ÙYÅ1j
-'ÅEö|Þâu½³DàÏ|ÕÚsÖüÄ_3<ø:IÂJ>@ N¿ýô¢ÞÓ/LìÿøâuN?6ó¦ñÓ¿N¡Ã¼UûßfSf÷¿ÝàãiÏ$Ó9ÞÚ.}¦²8^t¸uðb
-Ù :ò$,Rô¥P&ÅJzÒ8h"]¨¤ã=ëY
-`<U¬h~ÖγA¥ÑéJã¡lÎKyapgÅCΧÈg<m"ãPë¿a
-Xñ_#v8<Jñ<CaãuÞê `)PHØ&/_#×Y¶À%m§=ðæ<Î2·À»_ÕHBdE>m ¦vP¿eéoòÍÁ#ÃMÙM¯¬zkipæ¼<wî4H\õ:°%KÉÇÞ"?NGÞÈìZdÿ
-
-¬j¤¡
f¸vs¨ð¶vîúPíþYW
ngv3,åt3ÑiIRÌò'Ìvv¡Côïoö$-Ï=qcìëÆJÄ%
-egÁ8c ;ÞÝñÞ#¶ðUðØ5ß|Xù0§¬ñtÏjT$
.¿ÆB´|FH¥ü½§Ýf)e°ÌÛè
-âΩ ¨÷pzü>Pm§0zê¢A^·@VêÃúýìsxìCÉkt¥3É÷Ê×OîÉ*üRñ£³&E¨XÆKq"\ÄÓJDÀYðÙ¢
-§ù½¬ tál ¥×¨ôÅÌB©
-É_#g-ÒPDÂysá"ºqÐFÑúhû]^ä÷¼s°Çd}í5n1àÝ«U¿=òʽGÞi°j6Ý!~|íf³£k¿e2
-ùD[!ê¿uÒewhïøÍië!½/a%A$cP S×Ä Mjæêhí
-[ÈG±=có"ð%oÂQ(\Ã"N ~MÂÎ`×2qteh,½ÿ°Véë×Pø7ë=Ýê!S¤)QâÅØc·sÏAÚV&GÒ³´ÿW%öúU^¹e=b'É(gÏøSµw2>VÚbDkEþ@ÈàDÕvr>ìhp¶Î²ê³Ýí9+¥`Iw\wçÚCíéÐßí-P~OÇ}þÎêÀoa§Õ6zµ=)¤Ìâ¾OXmö.{féNÚchá'E!à¼ÎQ¶ë[Ät^Û´M*L zõØ
-
-Ù9íÍM2[yY|ûØ#ÜN
-D.HSÉdT*\n<É+[ËüiðÈð{
-'`©ÒF 7N-bÞ©Ìæe#é5|̶×*˶xÝvÍî|Õ6#~^ùùRz«J¶ \ðâ¹é«císVRM,µLº§uvøÀGÕ9íæoÞæ7=Hß7'7Hâ:8a+ÿ÷z Þ¹
-è¢
-
-2:(Ö«å
^d*mhÞýð|J#yëÖ¦ÓCþ>¬T
âÁ
¢¸QYC×kM*J 7º»»[/ÒäibÌÖ?6\ÊÔ ©J¥WÔLK9»Àx<1oZ!/ÝÞ(AW³È·#ÃoÁ&½ÏlÜÒÝÏ*`óáP;§C Z6TL#ëàD¸ÿìâ 8ÓßßÓ¿Ø4æ¹ø¾\óÒQyÅJ©p`9ùLÔ§¼|0}ÔÉ oqâË?2wVyæiÕ!ï>´ÿí½N¬Iíd÷
-p Î|Ù$F/¼n9PXú^«EPjîaÄH¬ïHÙ¹sÕ{jYx
-%TYrywvªJ ¦ÕHÿO.çÏbRË?ãÔ3µ,ôªGEIl"йæCÁðÈ:J*i°ÍÓ$+P\-Ôü¤)õyNH´EÖ
-" jÔIMXÙYÔc¥¯O/ÂNcô¥¢C[çqkÓ»²>F_åuK7)<föiÐl¦cöýÀ´àiMHÂA½§8l®µ¦Ì±²«#ð±T·K¾¬ëEÜâml/ö=.¢ïê)_IФÆO÷~]·4&»tãøq[â6IÜe:MÆA8ªÄÚyK¨å9ÜgCíTð<Ëß!MɯÈíh2$2_%¸¦ù2dÆ`ÃRQÝñL]µ0¹kTGÑöÚß G¶ µÄÕpúPÞÏ6ZpF&âÙÒ¨¥RîGRþ=vàeZc&,ZHÃÛÒÚÕ°Ðy§4±bIPá´ÀäËP0vM
-kU{c &>eDÏ!éñÔÀ¶rp(9>qµäÜßN*ëúY°
-iaFðÛ+Q+3bpcjejJøºS»ÑƸÑ4åL{0VJe"¦ÓÂáΩݤÇ
Ùè'Ï?i-Ô@PÃð
-þg¥º£»_óEå~ ÑÖe%
-Ô§£PB»T öDG
-~S
-'´
-UFòKò¡èg/³¶©µ/½Iî§ïyú´=Q&ÖI¬ 1cJ_v=ÿ²ÅÌæ[MÚ·ä](z²WÛa:¶Mº&z3´QÌÈÑ
á&5ÎXÑx¡ÙÛàJ£è¡òÜï&ë!gäù2VÄ9-n ÄÜÂÊUrE%ëâT®P\ý¬&9
-ÜÉ;}%ª9a_:ó9g?ªoÖUÇ-àpªÑ×±båanÎÔ'Öe[\®.4ÝT;âu¤4(ü©C]±mÿ¿9I¤53u%Ï®ð¦SÀÆ5tel{wlríC«£àÛ[Ͻ{Ôéy®}¼ÞQOÓKªIâ¤Bä¦ÏÞEJ:bÿ:üHh]w4èTNÛ9GÂgTn¿Q*J4·Çð
-cËû¤ÿ[#[j¤0°ÁæÆ44ÛY$,<ySv«ÆÿF!MyCt¯óóbÜbüµ0éæFWÚ%å2º áì` )!¥©
-8a]:
-
ÔåÉ1¬g7`¥Äa)ñ);R´3w"¢¸@
ï qÚQÇVÉõ²xMrîéã5é
vMµd<ÿ_9 ðä{³W æñªÞ!½×ÝÄ¢ÅË
- ^V°ØÕ>zI}Çä~KÕ$+°lºÇÜ ¬rdyBeÕ0¥´Åö1~»æ CsÖ!5~wòªqÖÑ8úåT_RN
-<ø°Á-1Aàè¬íÚGÍúLvÔ
-²ZF}-^û×UEÏ©B}Ýêmæ´ÅÔåës6¡©
d|äÈVãûþÚGpbugq<4¬.vÙ¢OC ¤ôù^¾4`Û@g½+'{Ó¼4ºì~"v÷jç'ÿüÃéÇoðõ¿XÈJØÿOEÿÿêÛÓåæa
+xµ[IìF¾÷¯ÐÙPåÜ%¼®*
+ÌÍ99ycæ]ü÷'÷ÈÔâyuuIÊ%â/"²Ù½ýw`ÃÙ{gwýüóðïo?ýM÷óù×·÷7ÎÄ}F6ÛëÇO÷8>~ùaQÏõ&£×_Fé>«áî3ú;|QjUñ)óXoöó쮣Yosz[¬7¹(½Ú!&#ýkñUyÇlþ»
+¶Þô2k¾ù(×pÓ0H|44
ÉÌ^} ;÷oüção¯·ï*+E`QóúñýqB%Df;®g¶kÐq+i'At/·V.ñ·øW4þàg ¸å(qÿf
+ÒeIqê0Þd¯SXWÕ.Õ>ÇEüm>zS§gÇ °f¬øDx3/9)-8Øä.ÒE¸ï¸7:+ááq³B*9¾Rà
+¿ úûù®+K4é(ürÚÉ
+²æÕµq6£â¢¢_ñ;UµîFÎÛQrMêÕNd±ï°VlÐí_ÚHá;õɦD
+¸oöZ®ÜÝì(P3M¨ïH¸OÂ/¨Jüõ¼XÑ
¹Áèù®#|Õ`ì¦ÕyÚÕÍå _ÿñáD%ý÷ v +WkW%fíeì®&È@N÷¹¶ÕXÞ¨$ïØíS·"4¢ðxÐdãrÅñ /ÔQ§
+0Úh}ç\Âþ³ýmfû!yàQß%¹÷>÷¢gÉöĹ8à?þñÆ,ðþê.òû¼ÙøË-ÿFiõþÕ(QªÙEib#£Ù±g±EïÀOX&°p~FÓ ÂjNHèx³Éá#;´Â®e»µv¶-t²²bÛa)9¦ÅÁýézÏgÂ$üÆÆl
+±Ïëm;®Ïu;aZPÞNäÊAÔe_P¼r¥~û(7ÌÞ¡Vêl_ ê1`«
+Ò-:ã]Õì2C®÷´¼æÈÓìà\=\Eäì@X*ôÃ|| °Èä2jZaØÊ´2ÑÄ'd¦scøïè+ k
tÎɽká
+ï7Hr³æuèý$ǧûRÊpÍÕ¢xmFJº¡Ù·¾%Ò
°9ù&оÙgte¹«i%B%ïø¼ÿÃvÙ´¶ªáN2A7Ñ
+áϧíï÷·Q¦ÖË>Á¯ø8OÈâ²ÇT_hÉZ
+;ZÅ«³#ÀDÎæ!ÌÇ:~P]¼dm\ÖÆ
oIöÿ?³YáLXYq
+Ü:&0m0]( Ì B]<¨v%4À¹S@±gÜ¿
+-ÎÝJ$Eñlr[¶wHöjõ§øQ¦ïòÙò2sÓHÁõ
?QeÐÄp³Áo\?yc²øtS56Oå_ÙníÀèZÞì-¤[órªUý!X´n0'
Á1ÜeÉ}´¿WOE¥N)ðZµÆzTzzöU;"ØØË,¢íéå×6û
+(Å.ð8*¢Rn¨ *Î,Îx?Y¹Akþ*Dc4¯P=(,ægTÙHo±ÅÉê¥æÜû6¶e-P×ÄdK«ÞC@¶ù
`l Ý«WNt¹Ô+äEÀ¤eÿ$ÖRà &
+¯¢D´eI>×íÆ~«9ÁNxÞ¼@=Gáê¼BQ?jXII
+nFêúª;0ãÂשâ* Ê0µLÒÏ#êÐuÿØbÊ!z$͹£¹4¬h%Ó
+oP$>Edü9cayª©ÏÙÃÃB7g£r~KêØç"½£ºvÍ)£Ö4b±ýJyÿc¤
+xát8ü?|§9xkc[B!ÊPgë|+Òù̾<ÁIDÌw7ðFóGCXJT÷¦©ÿ¹¢3
+zçu{ì"v·b+J^£ÓB
+jå#F£¾
+[ÉÉ9ÅRþÀ÷ÜFep2¨uZÂ
+Á<åˮˮC©:óð®B8YNNî"xEåÇ=i|®ià~â³qwíîxÊgä0ù3î*}L¬vIÌ®l\sÑÂxôÂõYªâ¾AÇv/w"r$b-söf>dïáÙÿrOûØÎÙj`é_çà½ü÷ÿø$µ¶Q¹=ÌZöç_¾yûnø2=/
endstream
endobj
161 0 obj
-4085
+2983
endobj
163 0 obj
<</Length 164 0 R/Filter/FlateDecode>>
stream
-xí[K$·
-¾Ï¯è³zV
ú5rs²@FNm $ÿý%Q¥RWí®¾íé©%ÅQïpúõí?'u:+üêAãgéó¿?þúÝéßoê}V0ûSþo~~³Óûtò³;Ù`ÞõiNãú_Lî}¼
-?·_¹éÝó+ðC¼³^¿Ûm2ëÌ»¼²n¿2l¿Ò¾{A¢¸õÛ§7Pú=È>ýãôwüöÓÖXôý2/êv9ëE]/g·Àãr¸]ì¢Ì%,v¾üíÓÞÞ¾_ÍÌ(×>M8ñ¢é<S^i
-ê7Îè§Â:tË<ÁÂßáãn<ì0fçK&fh!ǬÂ1ë'È"1¥umÕÎÈò¤vÄ<2ü+>±V!£LïðÉÑ)T¬ÆªÞÙ½Ó½+ËWðÎ2~°Hü¸MóèdÞ§ùæNI¶ÓÅ-*\ÎfQóm×ãèËÙGcE=Ȥè_o4âAqÙuò¯
-úWë1
-Ðc¦ qõè4öR¾Æ%&ÿ®£Ñt¨³¢!ú;>k|ù`3ðüd¾ £*<ø¬SÓ*ÏÔ,?X:ÍàíD¼±Ôf&´ßL:L¸ËÔ-ëÀÓO¨4þrciáL4fPyà}ÅYõH¡i"*I¼PùL<ñ¿Í3ÄõªX`C#¤î5MSL2ÙÀ»[ÛFÚà½
-'ëLb¤
-~]48gCT4ö!
-ൡÊÒMOÜöÏåÂËh¼ÊÂÇ¡´B±¹«A;ªn j3mÓ85¢°ñBPØ¢; èí"`
-.¯ýy<Ù<HüFìöI¿-¨8dT[~äl½Hbñu°>
¿lk¦_rK§:Ih#`+¹ösÅR\{Z=P²¹
-Ó-2z$+Ïü6Ò¨Ó¤Ë
-Sã@2NLºñùÞÅ61ñ%i13±Z-Hâë*q¶ä^å&À8:¢Lî(w½±RXbS üð ]ÜÇ3>PY~7~\£U ÍK
-¾]sÓ5kÁ(ÔXlÆ¢bi«`´+zGkæyHôå®è+Å
-Ó6,9=Îæ¤ÜLgÝÚG1»¼Â'4{vH}Úq ä,ì&vZ|Êu/Ò gÛ ÒO¾h]y*õÚb×}á³&+×dAÊÝDÀÅ- ¶Äx³f6H{©P³»bÂxã×.5´Ñ3¼ÆÃÞâöðPO9UwÂââoÉ®îÒ'ñ&ß))9ç<ÒEWÓäq!¿°Xe¼Uêm
-5Ê{Êg^V6XÑ[
U$'Û0º
ÓHk¶WÒqz$«µñO-'ýû/o
-ýÿW~õç?¾©ÓN¿, BñÛ¿Né4hfKÑqµ´hª3
5{I]O³e¢bYPðÊÅbFTÈ3dàÄØëg'+Wp¡<<eÞñ)põSvØ%vy[n`WæÙr_ÙÎ^À`A/öàËס ¾ævy_nÍïKøªû
Ít I®ÞÀv ËÎÿ®cÀµ!©¯
-ò+ at kÍÑÈÇwBw|ÿM¡ÖÛ|øúb¨u®Ô½~·b¨µP*EîQØí<!*é¡îÕÏ*VÑ0¯¸õi\áª>PÖÎVÊTgÔî` ¨@ßsK¯Ì¯ù hq>Å=PÖêÖêçæ?<g)Vù-³#ü°`ÿåY3«"«R=RMé¬w£Ãoã`})u(c}¿×
[ O¬jÌ.(ª#*·EÓsCÃõgÉo]K
4ÅÀôZ×GJ]µÔFr!¶Ía6p1!JIáh¸,/®º ×_ñÄNk2ô¸S¿ÂFÑChyq4
-ýµÚÝÜ×dªHA0WNçßÃ8râNÌCHã`éËr<ÔôÈpÞUYÒ»Só~-«V²Ïv±÷¶Ò{Ì
-ëKÁNäDÕ¸KþDªØ´%|_EÿÉÎ%/@jA/´
-®\:BBRà"ã
-{>8¥ëí°`ëÈ<÷øVS;%̦´^gÚ}I[wéhÔÂt;&î{¥ky\{ëzÂ^°%¶G°NËuÉö
iÎË-Åñ "ì£d[Ðâ{võtþ"YÁCûÐ@{)ïU&ô´ÑÐTÕmX5
-isùf9ÆÈÝb¬¥vÁ_Z°á£igh§msù2ZÚÈ6&¯S¸ÒQ
-SLÕ>*õ:
-»)¸S-üòHì¿(ùC üÃRu'è
-9ìüÚ`ÒMVb?mEÖßòÉfïúJ;ý`Y ¾Xñ<$0·xÖ9.áÊn¢9Û®c )-û¾ÆÖ¡³ãÙÝõ=lSÅÅ~¹w̨åÔSJuª¥«e71µ4¬¸9o
-j¯ïõit#ÎáþÀ,YEÌ嵺»¥*Ôçue jó¢k;^¨Ò+êý{½]0u»½]4;×¢@qÊ{w~~Æq¿¦¼ó+©d¾|½y/
¾Dìo]ëCitÊ¡a/tÓöÍ5ýô»jª«ÛZÊmp¢ÔÈ=A±?¨ëý¡uØöCg¿VÕrûß~¢E/w·Ù\ªÊ(ѰvÚGgÍÁÙÖ_¤æÂÒú@äDm[ChfÜi¶æÖ°ø°µ»³LÓµ÷5É¡(涺Û]yñ/¬+]ÕnX×Ú[;p¹Ã<7°J·e·ÕO·zm_çFGËw¥±Z4jKÑRýqÈgM×umQÆö¶4bóSÉ7LsçZ}Üðq¿â@ënêÝ
À ^æ]n"æÃ8Í×óÛ¦i0w±:6|êߥ#µè¼uè¡öP.ÌcÉÇUêf0Y·æyqßÜþQçÚ%åíS3X8OËÏKh:åÎV)Ëk¤èíiÉëi.(¯r¼øÇZåSL¼H]bê":î¸Ë\
- þb^]cZ½19bnüó°)o%¹Eù~»ÄÓã8öÖÏwN%¬ïOÿù®à~
+xí[K$¹¾÷¯È³¡Êz? )è®®4ø¶vÆ'ïÚ`¼ïeÿ¾RH
+)¥ÌÙ¡g½
+ÙU)ÅëS(*våËÏOÿ]Øraá£á"\ëO?,ùÝòøþ~úçÓëû׿jËÜU/ïß/¿_¹Z¸XÞÿñ×g%oúÙ¸|6üvÏæãEÇï÷Û
«gÁÂeêk>ÞÃE¼
ì³YÃgkâ³8ÐÛE¸n¦V·|WÁð8«ÛÅ ¥8oß;æde ~··¿½ÿñéñþô]/6W»g¯>ÎÔëM=[
+<r$g37Á
@RU¤òuÕ6Þ[o:À'á_(¿ÿøÄ®nù9øÓùU,?.Zçñó¿?'.¯K+Âéôá¿ñáCæÛê`ê-ß êû¿ZwCIµ¼q4ÉcMP>H$£¤ðgC§[<^x/Øh;«â¤¼(*½÷W÷¾¡òÛÎ 9ÎÄpÔçDÎÖÄxdTkjÉÌdËSdË%ñK(²
+)UêÔa¢#[v
+<åFÀÝ1_ºUy
ó¡à.sþj"¦âFW!ÎâßD¹ìV&à¹Í` {
Ë+Ì(Ë¿
+¸ð5?à>ÝóXï±\àîòTiæ<V¸Còß*ÏÙ`o
+¦Ê,
¤¨$ái°Qø¤Ë¤kyZxI¼µj¼Òx)üù<K×IïeªÂ,Ĩ°©4Sc[7c´%ëJüQg]uoIó¢Lþº!·hKè.¼uB±/'(sÚå7ü^ÐéùOáðcü14©8PxeÇé ùªHõ-ê²Lnñk\?é)/ñôÞ[+¹N¦fac»¡±-*ÓºLD_bFðÉÉTýTͳüIc içÂ~þê¼Ó
+·ÓAT
ñÐJãp}&Ü®SÈ0çð~NƼFyY2@ÎÈí tEB1¿kÓgÉ7RYïªN½Á5|q9Þ¡;JÿGÂMÄZ"b§ cÓîÇí"¼¸3Ø÷Ô .7*Õ³¥GA´ nJGÓ;Ó ºZ×"¦Â·c\×>Ji
ØÜ7`£
+¼×7WÛEðú4a@¥$9x4få%Áh²¦lRMH<»¼:³:7W5°á¡ÕëÝÀØ%I«YJ¼ðöueѤ/µ¼E¶YkoÕÅ2Ïo70ÄD¦Í**VÅÌ4Vò/î\ê9i !Uü@ç{9´eâàªod½lßVº©gÊCoñ#Àþlúĵ,&UX«:-ùvëÑx&ÙR<vê
+in
+³Zrª§+7nPðÉ 6m])BÚ$Ô! *mü¦Ráa°m°(:Q ¦!@ѬºÐÑR ßô&Ûj%»ZÑþÔ°Hí[á×XkØê Waçù²µ89¨}éZôâ[áWXkØå
+3,ɢѴk|},¥Ï¨[g°´5Î$äç_Mâ·¥2öÿK½iÄyÈù¿÷ XT8wåW
<OXjµn±;k×¼r6w`Mç>ѪíÊaæ®æóµðþèx!µs<ÁØ ì'O\r7ÌË»>1¹O鲯|SîÕRa¤µ
+³ÆiÂ8Ju ëÐiÄImËÅMjºqzð +âBH£àâŧº/JoXc͡ȤRKchgLà=<²WÉ¢ÂgÙ =ê à8oà22ÔkïcØÎkÚ4Sö;`éð®£wÆY×ô!îÒÉüfÀð6xkæC`ð~ÏÇ5GµÃ+PÛÆ§ïÌèdÍc§J/t0÷Âvñ1Tæ3FlÊú¤NÖKøAÿXÂOà7á\w
+_^ £Êiúà®´¹'*âßDçLuÜHIbiRz{¦Û%LKi'f æ&>
+í¢
+åÒÙ¡î}·Ân*ØYd »oöÐ(îØQ=ÄÛ=Ñ<JA_ÙQu4!X:/¾×¥î¤ñGwîØöOw¶~Þ vªÑ+UÙÄé¶Î:$h¾ê½Ûªö210æ¡ùÍÆÇéFبÚÝo¨Ûo×NÐíê¶·!Ò¾ûW"WpOºÿ: :Ëè7þo}!Ë)ÀAëCh1<ZÂÉï'
D9Z$ðã¤íºh¼avD¾ÙdÚ´bw¹6Øõ
Ø3ç'H»=Ö{:xòƨÁɶÁð¹TÊÜìã+ð`? _u@¯â§SÞYPVrôàµ
+FçÖön[ËèéT·%ÂfH=ßô¶üâJ²«ÅtrDdÈÅå¦À· ö°P®31¨ë@uðÂ5Ô%ôå§%6Ç4º¹aðÌ@ÐMðâ"MÕÎâ¡'ö¾Äü¥íXÌpbs_Ç}·üÞÜ®Ê
endstream
endobj
164 0 obj
-3010
+2414
endobj
166 0 obj
<</Length 167 0 R/Filter/FlateDecode>>
stream
-xµZÉ3·¾ÏSèl@
-«¸
-¼}þs÷§GÚåÝçOGcO?Ü??¾ð~:Àï
- ë3ßLFCïè
-y("EB£¢`úA"ÄU¼äc@Àh$+ËÜNFª?b1:d1bÕS1
-±vßGÝÃhvàã\çº;ð:°Åâ]ID£òIÅ:ÍÛ ÝѶÒY¨AªéÇÃë)°f
-ÁL¶x9ë¤ò¹:lGW§uIv
-¾©
@<ï3{½dÕfK³¥Þ¸ìÜÊf<e{bàÂ\̰ùk®õVìÍDB8¶
-Ãññ½Ø¶Ö«î¦eİá!mdmqÚ°xÜáAgØ
vz k&=X:Í
-ý"R`@ï¨õÊʶ¾öFLô|ÇÜÙô
-gyix§þwD¥ù¨÷æw 1E¶Â-AYþ%óÄÃp@>IY>P
-¡rÂl¢Ï[æÊebD"älÍsÈܹ[lÐ
.ÐæþsIôD©°ÚÏ%"Eù°\£øFY}ðÎFÏNLC<aÜͲ½Éù&Ú¶XS{ÍR øvL9¢îØ#¾m>`Ï"Å
0»m³òþÓnFÈa³á}
-9e-XôîÁòoM~ÚöX¥°h5HyÔ.x¡ds~ê.6÷¾²À¡¼$2ÒWÄo¡·»lL2÷<KF4xºEtýx9R¤¸âÛì/p^÷pr©\lz8ucßlÖü5w¤¿&;ƾ)n´ÏößãÃUU¯ ¯ýì#*n¶@v¡
-a^QUV£6ò|¦Ü«6I½!_:ÚÝoaȽ3mÉê):oçºd& ÇDÓGî`éãµæ}%ãìVwÓ|Qò¢l9ݨÃC#
Ì&1ɸ8d~<T41ÅY^o¥¥y3¾:ØZJZttRÚ.Ì«cÕÂë6æ÷C²X
-.¸RLàÄ=U6c©
-J*/ééC¥é"W¸éC(Å6õ²YWIh5Ò|Ð
-°\iäûÖ,)UYͤ
-à µ.k§¸©´&ÌÔÝjü¢øk¥¤A
->¹"<ßO/Í\*[2Û(¥Úlë1Zê}ÌU)*Æ!9¾j®ÎÀ^ôÞ¿T-£abZ¡^ÕÁÔ4K
-ÍÏKoUÔ!dÅæ«)"Øõ¹éXýkS© ú ÄJ¯®æF?
-¢nuJA¹ÜÓ}â-Ö&Xéå¤ëì|ÙÅeDC}¤øÀÔ]Ësõ3«Ü?ÛÛÈm
±)ĸ8QÞì
-rþC£^±ké:yðsüýÉ5]{Û[Sû/OlùÀ¦ÌÈ^
-âE2aRÑKa-ÅK±ìûJgQ½Ôá6 ('hСIÔJx¦v$¦d?åxù%ÏM°Ö½hMë`ÛVÚ¹hU-Êõ²Ãô|â³$¾(ß¹Zí[ÓCþ&b=bi2=½dñ0þ¯(Óy©µ>AûéGIÿ$6\ÔÚåDj
-,êôÔÂê¥ð~¶``¯)u ãfÏuÌ\|zà´yNcÄGç´CE¼i\×¥p¼Î· =§Õú%,QÀ¥¹Óá>e`2Ü©äD¶A2í1»IÐÓ\Yj¬R#aC|¢sro¼7§n¨cF½oucd#`¡L^CL.
-§ÝW¨`ɶ^P/%qÛðíáeIpYõÂaót7nÛ(ªLê¿éÖq~§È%v¶¯Þ*ºC^CýÞ+Q-jëßxF^e¶vjAk¥8캳Ôߨçá
-Æû/ZÑWóàç¹Î´QöÓáù¯ڵ{q2µÂï,ãÎã¸ïwÿÅ·Ø
+xÝ\I,¹¾÷¯¨ó@SkfBQÐKÁ·±|0>Ùñ<ùû)´DhÍêç×ó ^UfJ
+ÅòŦìå,N¿>ýû´øj
Ïuw¿üíôÇNÿò7Ý¿_þþôúñ$y^Oë²ÃçÇ_O¿¹§þt1ú*/v³æú,ÄE.WsÑ.å*.F^»øl.öíú¬/vw«º>Ë˪Ýw¼ßù<~
+{§-¾ïqàz
Ë÷VRûêfÆñ鮿´¼û_MW¿¼X¨8§á'Õ
½¯¶¼6»xOC#©¿V¸¢q°¦NT2öªKoÇÊ0£ÄãÈ1\ JÃjþøÝÓíãéÇB0gÙP7éÇ?Z#PuìnaWk»£!3ªC¸&7ÿ "LÁï[$ZÂÆeàwWÝnð¬
+¶²ñ7¢UõÛ3"É\êt`YP¸JNF-îÐQ¢|÷nßÃOF°¥Ü¶j2ÛmÖÚ(¸ÑQ#½Ù³i(ÅT6yÞJ5|F:ùÔI3Þ¢ÔXÓ¡RXÓYÓ¨« ¶¯ @á½£npón_Ãrð<YNøåÄ.õøï×@Ëïû8-S?ì
+Oùïÿ<ý¡¢W*uÖMzèøneà#F×Ãwj»&cÝ2NTèsà¯.¨GaÂr_kûâÚ3¸1Éõôu5ç½ÁÙ©¾Úý¬
+Y¼ìQÑeØåßëH-ºqAwÇÚ C/óÖWJ5Úì1dêmÞod B¢óPá>IMN6y¦ kðm²§`À»ÿuº².ÌD)xæÕ2f¸|B¶Ç@hXá¸qÆý8g aædåâì¸Ò©¶§¥\Û¢OHf©¬ZܦàÛâþe{}'ü¡!Õ¡@:JûYµr¢
+¨¨"
+7?ÕCj¥0ï° ¦ãúB0D,ª4>îd©µ÷¯® UUIâ}ªó<JíFdR-ú©²h JV(!vý^ZZxaMhÑàh
+u$p¾oAg8UP²nLá ¸apWΩú]ÁÜl´[áhv¹*k},段 î²qÔH=rÔìkãº@]¾5Ú:ì*]¶<9;0¹DI¸ïøe±á4éÈÃQұżÃQ
+A×Å×4¢gÑÅ>gi¡ SnQ<ö
Bó(гt&àà§ÄºÚ¾3£7ª2øZ
+PÕKWÝ¥¾»Ä¹ÖÓî_Doqø}ì ¦Äì\²hêðÎ0{¾É®
f0î §
+ØS¥ðõwcX°WÂvñȤFØEdÂnà"ζ!çZ¢fèrêä#æè·+Y*,.0ÃeÅ%h´Ò/BÆ
+ ?Ï"rè`ý&}_èúiAÎÁD uPx£kÏ Í#WÂåB,²¼Z¼S
±¬,<PØreÿÖ_ºÇP÷,Z%ü¯¶Eíð¿ÝáKÄa`lì®ÏR©]öÔâGQëïâSdÙ*Ù Âb¤&Ì"ùñoÙçºvndävLW×ÂòïÌ8/ñâHB¨7ݺ¯ê!Á]_l]×àMpu¥æN{/¹Í ó¹Á6#Xq«{Y.Íé-£QÙÀÜuÑb?ÝÅ \o"fñÇp2àÿ<§-µ^(îãSâ1 ÆSCè±
+ÍKDak±¥¸Fî:ks$DÙµ8gƤíñ8â³)Äèrä¤qh_Sú¥Þ)ñé@)
+PWïä¼Ð2¬HÈÚ¦-àªÃ=H.
+U¨%Ùk4ºåÖ§Êit,ßå*«,$Ä·t° [o¶ïÐÅ>`Ò¢ËÃ[Ó
#
µ¢í~¤ÿRD8öìdÝqèN̯-, ªÌu¢ÓSÝÔXÔSL*Ëî|ïó/¬þ+ï¼ùJ'm
ÂÜ&
+FfäÔèiÂYH×Û$¬#Óè°Q×öhc·±%£áTTÁiÛìTä
+ãfÉ׸«ÞÉWwîòÐ"ÂM¯\/ÜÙAk#\¥+qU>*öÆúBW÷e-Wõ!CÚÏßµªÑÍ
+7Ô®ë*½V]"+°ìÝ]T¸:7(k<ÃÓ£fU3© U¨ª Å̸VZ¬0Ólæè¡ f¶[YÔ3å¼*Q$ãE¢æQ®«²fXuèBP³ü
+êÙOr«®Z·O¼¨1ÚqÐ¥ÉJ£U<4ã,Q~íB7W¥ [¢ú5B%)¸ìÉYNÆSÂl±h5³ÜéÅqË2Rvßó:£}°h®bpÀ¼\½"F{ÑblíJ$uß`íK¯EoLz
+!Uóý%RwÑØ4i¤ÈD¤Ë óîbCBÐ$ç,å°:»ÔQtEn¼ÍTF6
+JûtÃyõ.®»ø°¡>}\Gå1¥ð"Ç{,Ú¿Uv%¥ì®
+ÍÙjo=o,"äUs½¹
+¥ðéaʨÒgçäèÔ%÷dÜýRËË µ$mO§Ct0¯/i>Çu4{2®¬Å¡"Ä1©JS«F"~\S-ky£,Û°e QÉØå1 ì0Ö8Ë`½¦]áÙB©æ@¨JßÁA±ÆÃaP®5=
+ÍòIf=ÌÔ<Vw ã>¼ÓÀ«!`ÏS"itc¨ifKãð6äÉJñ¬øíæ®
M¦gbéëîú4ußíïwN»g(XEýÔDnûH»={blD|öZÄ;åMh$®ÌÆ®¯èLÄÖy×c#ý@§}Í7[É
+J¢¾ïe%4úç);7dì®+ë®JtÞjê¶³ê
+^ð
+ÕV+B1
+9~(ØyöWòÂ9C{RøSeYMå(ÃżÎ&}aÏcý.6çR>vMÖo÷}Á⪾Mµ<ÍTs¼ñîØÍòøl¢÷.qêC¶·\âçâ¬À_¯ä £'´Ò$ ª
=U_x}¼·Iê7Ã,ZèúÔ{*Íh½R¿dâj^ÂPúºV2{¾^Vfò9Ú¿Ó±.v¿õní§Þ
endstream
endobj
167 0 obj
-2656
+3413
endobj
169 0 obj
<</Length 170 0 R/Filter/FlateDecode>>
stream
-xµ\K#¹
-¾Ï¯ðy;zKºý8ä¶À
-y;««P·³¼
-};»«0·øÑ¦>úxM_E¸íUÛß¾ÿùÛóû·_»9qgágC´KS¨Çíl`Ä8È'̦¬Ü`>©âÿqrâlñ¢
-æUWÒm¦¶Wn²ø¥x¬%pQÀóßÿ5{B;ââÂU·d}^Yq³¦{^â=X}®aBÑz}ñYÐ'Gô·p&!ï·$ps#Øqüñq;û|nx»^M&
óXk.g³')Ól +
-êÛ@ Ã{ÅyEéK¸b¯* W¡bdÔÔ÷ÂMúæAtg¥ðNiò×g¿qØÃ°
ÏtSº5}! mZHg½-/-ÝÂßÒ`8K¿ñ÷,@òóº8s»¹2ù-A§ÏébG²©{o¯E:$(rqIQc
-®¼èî«RQÇ*nRz¼,Ý:ï[ùt'.À½¬ä¢î Ò¼¥t
-éÄ&V@FÀ°sÃÈÀ2à:`áBIª\¾J¸j':Pl0lU»qñA<³â=1<ü¾ð<©´È'À5)Pýq
-dkw=:}°Ú8ø4Gü0-p¿Q\\{h ̲¡¹?F÷ÒìÚ£å8Ò!+Ë)º.¢´¯Gqs=ZeñÞÉ]zîdwÌ]êö¼bMÞEÒ6ê÷ÂÔGdk~r£)Kk·±ð1'IÌ}<£æ¦ä[)Kã)䯶6Ñôí¡QѽF
-luö³
-JZï¹Ð¶ö¢¹
-Iøá¨ö#bq;ôãäÒÏ©
-¦ î0Äà¢ÉîÒk,eMñk
-Pm<_¥¯®ÂuC&öÂhÅVvPÌlÀoHse>IC7oå¿S¶×b
â~Qti$_̳ñ½0E¡öÌz²åVVêùË#âTôh<`»!®p¸é¨°QmGþËÔD±ú/óì,~ZØSQuM
п7.ã;åÙîb̯Ë_EÀ]
-óöl iÆDSJÕÀ«Rí _3¡èW
-˪/9ÕÑ
-Íòc^úê«7¤ì»9Ç+MI¨É3Ï
-²ùd4ÏM
à Õý6ß!
-,þ)ôÁÊYtqÕ½I3ø·]
-K³Å©ØÕ¿ýq^"E¤aY
-Å,Êv)ªY*Æo¦L+Üî5Y¡ãñÅåA³eÑøPÙ7cľ*ËïÅÓ9Ù¹¯hq¸C`èÒùAmà²0R
-÷¤%ò
-w@ ß;Ù·æûc0FÒ®6×P÷ÑDJ<>¸Sp
zpz¢¾]Xk¬ÇÃR!¹[ÌXذîYòÀų.Ëh²a$kF&øX8twÚG.ª>Я½j/³µN4 tü$æ,O¡K3âÔ^+:(³Aµ®§=t#%s¥üõ£æÎtRåU«E!ßáYMªÒ!Iy«ØA8[{NôÊ¥©CNl£ºÙ±P[@áÿFܵ:9Åå¡e(30¯I¯:WÕÈB¬Yý¸=f]1§ë]üaxúè¾Beg?
-¸zpjM«j¡÷~ÚÕP|ª6O´o¿dùdl=ͽåDN´xd8zÓoÒÆó¦5çѾÊ~ÞÏ\SBþ0³àݧÀçY
-C&×s¦2ù QÁ1CÌ.«ö1ô?0uÚïøÿ²D,¯ºTçH<Qæ=Æg.ëÛæÂºJ?I£wåùkX¦Íñ0/2ïJå"ÌìGdzª®U`·×~Ȧ&kéb;ìÌ-ßìM®7QÝö¡èBëÖîì8LñF«(6èÜ&wD
-&ºßsùeMú£ÒaâB9ÀPa27Ãä½ë)Pw&f^VÐÉ<f¹KB-ÑmìWëì·SÁ~×íÞàF¾éj{||*Ì*rQËÑCubÈÖ½êâZfºt'&²QóX±näm
-·¿÷8¯~vEâW¦KÉðr66ÖoöÂA?J0Cég=౯þ¨j0³Èøø;}s|dÚeíCн×Sò.kØ=÷@à¬ÇξÆ'[ØRg>úÊ62#¡ËLt~¯Ælsp
-kfք~
-xNß×'x9ý ¤×Üá
-*ó¨¢ìÓÖ]Ö²ñæüÊxu gÀÁ!rX?6Ñ#ÛaEËáÀÛØ*Ââ¿æêJâ4ÝIUhx¿uòv>-[RÜtØ2kk
-+óê6Û¶6+5<¬³åÊZën²£Øé5¸ fQfÂHxXG¾)E=³yX°®
-Ý}¶Gâú\ݪt¾Wiõ¢Ù¸Cüß°ÅÔ©eùé«)³Ú ë|U·Õ+~
øÚÉÛÇüPC·R§fëYv42\Â!HO}êék8À:¥·¶J_=
-ãö]ËÛ-ªÜ½AÁðüü±}´ _´X½·+?ª(,H´-^Ã8[VZZfÈG`BIE1ïo}z Û½ób&º&ÿ%·ìwjØA];J×*dn.ú®GçÄT*a¾Ý¯à¿=ÆÒ ¶+õ#ÙÌB¶«Rͪ,XT}FÚFí²áùûAotì¶½&IJ?ûFíÂM~J¹-zÞ_0ù©Å7¬«cék>±ï»?|øZûý©nK÷Z?¼~[p± 8u¤_=eÅÓÖ
b]¶i´îÒï=mÅC(ùmÌZó¬¥@Ú;2Æ@2ytáõ:ÏϪðt×mÙûv¼.÷;`±*oL¶têLërq³y߸'Mª-Ó)×+¦:>D
ócKô1~hvc±ÒMNÌÒÇ}×Ï0õÇû÷kyéó\¨ØBqâжþÒ׺å2rIÈ_}°©§ZRt?
Ë!Àìxnëz0}EÇ`ÖùébÌû'£ò4,Irt!Ãzmc7÷Úînµ²?]æ²_%õ
-e¤£ËS·°N<ëµAÅß.IÏ~¥g#ø#RW\{À
-ºÐ> â7îå²
;¾Þº{º?õ®Õ+}¯åç
-MÂtOXPÂÕ¹×Kq²é[̳<Ý+o P z£*Ó*<ɯÓ=óo(§Q|e +]O;¡åÊBâêqzµG\ÕD0ÞèĽk«ê¸§v§$&ï²bS~KF{L»ÏZL§øÈB+g"5æé|¦Y
-kq¸2]°aÊZrãį*dÓgÄÕ¨|>YaáÛèTµ¯ØàÊkÄÕÌRÂÆW¦+àëÔ J-GcÉÉóeÜ¡R×&kÒG n!M dÙ@ò:çòµ_xçḢ=Oh~|&ÎôÊqªô±µ×lµ'Æ;$Cxáksá¢ÇUì.¥Ì-ñaúÛJ®¼Ë+AlÊWQ3F
-¯Ì©ÉàððÊ,¼0.&ÛåóçMÊÝ6×¾Æñ>nØ;¡çè)
Rë¶ü²¨: ü[V?~ÁKZlûK¿þaÆ6
+xíI5·ñ>¿¢ÏyQimÁãÁÌ[¹9ÈÁäÛÿ¾«´TK-©ûÍâå~jQm*Ôâ
+IþpêÏ/|ºÉ Ïï¦?ÝÌ0½üðíñééôG«Âóf/§G}tÂÞµ`¡'Oêøü¤8=q¦ñ lé)±4
+5GçN8d¶>`óéÑgD¡=ÅÎ^Ë~f,\Ŷô~%NìÄ÷}£Þ8&a½YKs¿ÒØqýýåÏ×oVTÊvH^þÕ"·Þ¢ZÏ"GáJuòxy
+Ôe:0ôÅwäÒX³ÚÊÔvÎ3µ KÑÿQ5v£²>ÒP¤h*)kÿÝÑÙð+¡$HM_H%S5w±G«JÆeظäb[#;^H6ØURíµk4Ô¨ÚdFlÇ*ýÖw¨5µpô20õ4× 'èõ|J
+¦§Ì%ù@ì$v¯MFe$úy-£O½,9o2îHn¥èJÉPùó¨#n&%±ÞMB×
ÊERäÀs3ÄcÑÑz]á¶qptp4,¡óâðy"Ø?'öd¥Jsçp-ÃO¸-Y×-ÑÏ[rÉ$åµ9ÓUànQs¶6VyçÒ3ê)r!I^Zú§zÚDÜÐQÁØÔÜÁee
+îÙú0ÓKï){*CÎiîÕó Èî¤EÏW¥»ÉdZiAâ
AÊ[¦çËÝV)ßò+23Z3ÀUp[DOëÔ§;£a<
+i.g
ZI»~¡Ý
+ýQ©=¿haöübXü"²;¶©lXío Í4Õ%Hux© pb<)CÌ5yIRñû"ïZ~ØÊiî}ã,JV¼wes±«~i|Dï©¿
ÙSÿ±ÊG[Zbx¿´&#]Él}¦U«å¦4
+¼E£2æÂÌ<.uâu¡\lnN
+w&ÁlªãÒRàÌt6"%ô¬l/R´9IÏcÉ4F5
+v03£!Ò\õ6éÁE:ÁÚVXÖìÇbLå Æ8²]6ÚSÉ#ñ¦ô!³¼'ä¾ òìHç^F
+ÄPHÿñãÀ?¥®¿|ý ¦G*êý8i@%÷OmK^wøÚ(
+¥½hR9³³:0;1«X-Y1]£}S©6Ë
+3Õ2ZÊ@ÜÓGýHz¥«'ÃÆýeç5R«ï¨~Á^(Ãx6¿ííe®D²."TÆé_¡¡ô"Tó%{6µ¡´³\î3BAW:ïPé»"TË×F
+å$mÖóÐyvIÉj;lT4Õ¦´æ0 rRaéú§¼â§ÇÏø
+å¹zÕ
9³Îfi[,q°ªxQOÙ."¾³ÆXô\aòÝÊaümü"V¾Ç¹Ð÷¹&sùA!ѨٴG4¸7\Ù£ÃëIñ0< 9qK»y4£¬ùýÍlºæü:uôU
+`|ÒZE15}£¤áVê¥À³]7.Çt³Zè˪ÊÐVåAuT·w(£|Ä¡¬ORÁ¸NªVÖ³¯Õ
+ë©JÙU=®ÐJIkãÌë¾c%¥Ä«:0;[¢â=Vj9û<Vú:¶³AR`¿¬c%éÍ«:0;W@,µÅ¶>Ð&C
8~JÐÄr¶ì|eg0; t9¤åt\\ûú"ù2B\_¶îVÈîiE±'ì<þÃKÕkN>Õÿ
êÆ¾vb4¾YÝ>@¹Ôλ@é»@-_{ejÙÜ)Ú?ZëÀìE«âcÊÔ-eê/ºLݱ©½%õçAÚ8Bu¤óþ¾/B5|í©¥Ð¹ªùq
j9Pþº
jE.ÓÿqÕà _´þBõ°gfEÊER§Rær¿j5{¸¥ñ+©Ì5ë(¢xfmqÅ:ÐTâbǸ{ê
+KÓ=)©ð¦jó³0ósÍp0Pß
+õni;ßd[¼·jîsóß]Õ}TôUÍíË6KãÅ
>ú!í¸C;}·z òÊHÆ_ÄÀË&×+/É¥ò¤:÷¹Þ×,òîe¾¦Æ¢hQÎß
ñê¢êæ&KU¡«Ê<né¨
+YMJ/ÞyHP^«vÔø¹*æ¾éSñð{,97éó3ßÜ57U}·UÇÕy)2¥êÌåÄ·b_
w¹lËK«¨H¹|LK÷ÃÃáü5]Çàµ*{5³`pCn0ªbÞ)îDøRK|]KpcâåÜ<Úiº<Ôò2>LH<
Ïñ?â'}8lÌÛE¬"xaßL?{5b
endstream
endobj
170 0 obj
-3904
+2395
endobj
172 0 obj
<</Length 173 0 R/Filter/FlateDecode>>
stream
-x\Ë#»
-ÝÏWxÀI¥GÐ0Ðî¶Ù]`,ìò
-^uz
-ñ½)c=ãhù*>!¾êå=lløà·¹2Ö0ÿ?wuhü&ò'ü4f~8|¯À·ø¶âÕü p&ôôþv]Ä øVü¤ÓJ<$Øø`);_áñ&¿G'øÀÌ¿ßIOùëÏ?ýxüüñ[ãQ§Ãø4
-óó_£;üæßLi"\7eëÙøýëÿ;0d²}7Ù̵qoëÅ_óLSyË¿½É×[´*³wþ0vÕ0¹8aÝLì¯âgÙü[h!>ãq2}ct49rùÈãKÈÌm¤¼`^QY?r2¼\)Fá·^g}èÿ2às¸ÕVd%lÕDJåL8'x|22\(`[Dsïpámic
-,ãÛ®¶`jTÔQêï£%Aa'ïlÊ|ö³þ8M&:'Ö³
-`[¹ÈaÊÔ@u¿§¾¦iÞ&^o,¿nÓo§æn3zÖÁpÁJõkeàñ
Ê`T|mx³gÂIéS¤oq©ÉèN*EйKù,Óµ(L>+ÑÿHX` çµyö #©ÉÌիȪ½ÜÖD[O" R.Æßq¦;Ý%Öc³f]òÃ>½Ùí£UG¶.)½V}2
â
-c[¸&l(Ê!à>¹eh#c×Ùx6ƦsGñéÁB@äí?
-¢³r¼É²¦ÐÇ1]¡^(maèÐë"Ñrò @Úc"¾á¦¹C£Äî;cm¢¿wìî»!§¦+}Í
-ÿ&ßò¸9£:õr¾H[\ÓPwuõÅ "Zþl©ËÓÒ 4JSËs±õDj
-è5Î?ÜFrû ñ5:Öj½yxC¾$H $î6p¢)GäY!ÍgîÍ%úÝ3u¨ÍxvË¿FÖ¦9+VàÊ÷IdùÈÓå §E%¬gFÍ{°ÑSP«øY,u.ÝÝÖ®ÿ{zkÀVVcù¶uj͹ҫ&®ìTsmbú4ú±Y×ßù(eÅ#ÄòfÞÔ¶ôì+#ÃtUÓß¾ºÙa§g¼ÜwàîÕu=³{3Í»ÚqüÀP;
-³@4̦¢D³ÀÏ0M}[ÔË=`!¦T§bàUÍÿB²¡EÏ óÅeàVã³µÆW§¢dãÃWâ÷ÁDf.!ªpDXA:]>nC¢Z%Âêq¼%ÛÞï$Þ¶GÙs7Ì$Úåç:«-ÎkתÞg#9f3z
-Vu¶Xh{x±Aŵ÷ÿ!bÛS\$Á[ *¡ó@¢x0¼êÙª{àý¼7XÍÙm~ÅÆY¬¢
-Û^b«ÛEí*ÉÀÒ*%´¥¬)Üâ
ìôºe)KboÊß0\×8úÄK>çØ¯<PáÎOmâ?zª]´ó1©,z£½ÛE²Gí±HÓ5"ü¨û
-D#Ç]}N×69^UV§]´Òrɤ|;º9U*éGYòóxÓf°Û+X9àd£Ì(¢È>nÕ9Äâu ªÄ~&DÂ;éiO«#61âÆZÏUyT
-lâ·Jxpu-:ϲ¬8½Öi¯Mõ,j2§ÀZ0;'Ô|¶çÆ^QÕÈDÛW3ÇéNHBèí4!·!XØÊD~k;4
-NmqYGa¦
-à¥Æ¼Å D>×Ð
-H&YÍgEÐÅ÷Ä2ûÔ÷Qt95E=îÈD=VÈ*»»BämSÂÃRõ,Æúò9+<éìHâ)LW+zªXr¨R ØÌeú$Ä·øFÂ1nÊ¡qL_ºæ¡|£)k°à©>©2maV
-Å<ÏEiô$÷à×ÞÁ
-"G]0@jrçUTvP¬
-ÎçÏÿ)qâ`ï
ß÷'¶ôt<ñNiÓ&¾Éô©gvÌFî?£Ê9D¹U4èÍ(¾¨ÇiqÁóÎ_u;Öú@µàÝÛ§&^o[½§Ï¢mߺËvì}ßU2q,R¬ä.ä
-øÇj/BåúZì´K\=cÜq«b nÖ,Ú9µ0BÇ!Tè)·+ÃfíäN¦E
-fEníºÏ°²g¿1Ò8Ún5(Å×¢Hæñ®}dP.±m¡¾²ø"´ÐÍ
-có½oeq)4jµ
-çN`$aHL
-á¼¢p_wmf©7¬oËp.:Ï!Îb5NÙe±÷É\q/;séã no£p at lLؤ<q<ãÉlcåí|¶êK¤»¶+¾&CU±ë/N$4׸»¬SYk°_5=päzsS"7z kO}àÚÏÝkþºtxºÙ6§ÌÀУk;þ¥h©¨\ £ã3;¿ô]øj_D
-òö6F[´Lv~½¨wëÚZvl|¯;è¼û':
-b\ÓíþN7RÓÿ£µÍ!*ÝàÈØzób£µ #1u¤däÔJÊZÞêív¯±8·NÜ@ÕòÓ'HÍÎ÷²¹ÞùrØp)gio:µSYkþ0=[ɸ
-J2&ÆoØtv(i
-b×ùMmoÁòJnÐ5½
-
Èû16ß9SwælËÿ[êQåɱ{p±GÊ!¶Ôà$ëE=k:´}Pêä&Ë^»ÂgñZ÷ªú5ZÉj08Îu+·tRÔÕþ«I¥JÓå=VõAþÅÅúz,C×Ëfç§ES{¦)ÄNÚT 7Ô¸ ç×Ô+w'Î()nHzåÛ
+x½Ëã¸ñÞ_áóvX|JaÀí¶ä¶I9öd,v$ýý°Xd±(<ݽZXÅz?HJàðûËêpTñÖ×0âõÿ:üýÃ^ÔiT0úCùßüûŧá`¬;
+æ¤Cü!~þ!¿2!>(¯ y¥ÇSt`"]¡¥ìÉ/CéÑì2Az5 $¡B'íM¼.Ã8'Ho¡l8¹é-!ÚJAzöÔ»V^ß@Á8áêöÄ·PîÙÛ³ð½\X°EUEÊ£
+Ó7A#áùMAvÿ¢¿¾¿B£
+j×÷þôpÃûÏßÎv¼Í9ØËѯñ^¹ÎZ]îìñÇÙ?üÝ{èGèCpA§ß.½à0 ;p±yaõÃå8tßé×õ~%ÁgTwÒoñW$Fåyl
+¡:¾Aô4êõ:'ýh)¾áI$7DÓt¯%¶2·$ æÞÄý=ÑmytOÐ+±>HüëÞPozÿËËýýåÇòEå#èû/Kd.>ÆMc1ÿ@IG©}Oó^µ:>ÂMï~b¤¥±Bw^7cÈä¢
+²9bb_4Ö¢:,IIJØZwdxBؽ] 7âÍÔZ©ôÐ:4FEOba/*JXµzvS 1À_¬,À=`«$µ©äH'JâlöFÆ«!i6Ðk.)¼%Tá3õeBÎB,ó{Oæ1/G{(®#(Ó0C
+c72Ät?óJP {³abÒß2«®¥ÿj¶ò)údêcù FcÖîYU4¯ü}3x÷p°ÈnJõE%Ââ·£ ØîýRr+YÐr~eêÝQdk¢ %!³å©ÌõMÌQª´ñ®#Ã]ŦáZáe*}×Ä|^$ÁÄàúL¬
+ÝXº+¢`D,ekÇÒ´K§Á´ÎE}'¤ÝH-Ï\J[ÖíÆqnÝÓ]B¾¨ã#çD® _*mȬç&¥ôAK¶SÜ9`Pb, fjRå@®rÎçP¬
+8üÙ±ã7qq«asÛóL#·6ÐֶߩݴÁOsáZº(KÁ_·
+5*g!wkJW5n×´+uÎÎ5¶¶ycº9³vê¸úU6©msíÕ£`MìegOå/øÒGôÈôhUó)K!Q¼DÈ\Ç
+¹Ü³ÏUwÞPÇwXÕC rx^jÞ¼ªÆÞ³ÕÞÒÎfK;ÂN
+
+În²xSwrÍ×KÌ0,Ð*ÕJ9ìhè6R³¹ª×fFiÍ~øvÏ2Tomõg]jyê*¦¶]"MÇâ?Eò9g¹Vå±3[É©ql)^k3úÖz%ËÚ
+ðj8¹iD5¥ZlâiZñkjZÏZo(ëÊÑt}Ì$ËzÛt òß:üÚaVܳá§sogû¸´íEO+<- [ïºÍªÞ¹`;NøÄe
à8ÑZ è0<LZ"X[Bî®jmmb¿Í>é²ÏÅpa¦7QÝõù¦ûãL!s¥ù9sØ0ÅòÀ+:ÑëÜMÅåP±¬®(ÈÒQð5+GV^2¡~@ £sz¶0õI%y¢vzAØëâû¼
+7ªüj
;®km8Ⱦ¦1±ÔÎÁ+[b¾ÒÑøÂLðÓµÓ:ZÚG¹íHiz§/Ó[-»¬l÷¥Q¸Çù×ÕÁt#qkæÞ·|;Ʊe7JB« Òx1xA+S¸ò¨<^^¼x¹âå/¸õ¤ÞxÜïñ
+/tyFo¦`ËHÓ×Cwb$®'×uîÍPêHt¼1_W¾å*¯9½ñà;wð(âÐ8Ö|1{k±9Ò`à!°J3½eñ&JÓK¨Ò½ìÓàG±m¥Ú1[m
uÆ%Hº`& ~våqwܲ¬Üb¬¦5Oºãgg#Ë|ì0¬ÊÝÔ°<L½À\D¤ïW®u¶÷pÖ'î³$óª42pö¶Ý{6ªªô=dï¼»¤¯øìÄóBè ¨òÊÆ³rÿÌà*Å,"f@ìjÀå:êçTT{=í5]ùJIDHÅ4Ryãi^YEMº
endstream
endobj
173 0 obj
-4286
+3085
endobj
175 0 obj
<</Length 176 0 R/Filter/FlateDecode>>
stream
-xµ]˪$¹Ý÷WÜõ@]§¤|BQp_µðn Áã=/ßzFPH©ªnMݬJ¥G'N<3½ÿ~ûÏËôrüÇÕXÿïvÿÇË_~yùwü2ü÷û?¿½ÿf&ûº½l&üúûß_þt_^ÿôÛ_¯¹ë´÷Û|Üíb¯Óq[¯Óûíbüçpy¹]ë´ÿµÙ¯Ó|ûÛ÷?ûúþí×ú)yñ)ƾÉ?æji¶i3»]§Û÷58Ù
-^?òscËït9þÜÌùúQ:¨´._ì¹Ûå>wåÁ/¡ã¸÷üp×~`ZàØ/5±ysoÜ¿O{9^Æ"û;Ëѹ۫«½Ì£É¸LÓÖ︥
-Ä9èAt:^÷FÝgÏOÕ ÷²ZiucòcÏâÐæ HiÉû(
-.ÜoDC«ñ§ØÎñ (÷gFE¸ðEíW0¼ç`áÖ
[ÝÒÞ ö|;L£0ÁDÐÿ¸rª2ÏѲføÄ&)Z=´¦pã¡ÁeIevÁµyþÓPk³¯¶W"º¤ æ3¥U좸éÓÏS×d[axÖþÁ
#wnÕ«Ü´D4ÌbyÑèò~QwÍ«öë!ß2wQù"Á°{ _hâ¨ÉZ}ó¦ð½*,)ÎmqSvòhÒbj9^EXa)PdÆÐSxÎ
~p«O+¼ÝÈêÀJ`_iÐîÙÅoï0ÙLbkiaÉö(Ð@eZ,;'Í©Æ@ÂõÚºÍXæ²Ðf"&Ü£v3
-%ÂJ´X ùÎzÎ{ä*µC\Íèa¬öãvmMäùxømì¿~2Ú¦øDÂò`$v
-+:pày
@ùjSÁñÚ¢2i7à©=Ñ`±\ùÑ4&%M,ÓB=5:¥Yîv2Þ¹2¨0$]ävBcWï¯MD1äf/Â$ÉèµÂY± X<Ë6¢åB´wÆ3ï¹gëWH@ï.Is1k<ñÉIwä-ºÕéG¹é$ÕÑsùÑ qníHýh¸Æ÷¦cÇ)'âv§ëwã»hÛ,~n;:ß®²Zç+RîμÐè4"ÎÍï¾ø^vðO?UKS.©Ñ6ív£7ÿeÛèÙT¶PTÅNZsµ¨üEÉfàùrÆ4(.{ sæGgÄm®=# ½qù¡6 ¬¢2h^çj©q²0 5)OÖYevÕôí:Í;¤µ=U|-¯7µ$æ"¦p%cÓ@ÓA²PW8öVÞìîÝÔ;{sÅBÞù¹-4²s¿mm%c£-eT©}CæÎ×
-³¾×\öÝ{û>®à²þ_¹vùÙ¤wèÁg¶¥
-S 3°ë-Â*db^d?
©¯ºU:ÕohB8¾SOz»±±lâQ°øõpÑ12ñ y_§íêBLÀá£ÒâE_¸g-¶ý²m:ô®3 &¨wàvöNôkRÄàÇtÕ&ȸµfp¤Kgô
)XãWi¨HñÕR
Ô)«"ôß°
-EsË@0Jòá6à_ú-[EúýPÇÆÈUë¢IKM!rÒ¬ËÕ:nr+ó,*ýjÄløBä*ï£Eô̲ÝlÁ?8ôÖê·_\aíËwYçbª`jÖP!ëpkĺZñÞ¸@2fRÀäPË[³§«ÉK½úC¼,VÚx öPI%ü¾Ql¨º=Ûø8Ú8è÷»Ê+HM·Fdß¶£fÏFèîq<ûá:Î?Ä0Nz¶T)%ÅT3U¢8ÿ¨*·)µ¢»rÈÓų^ñ!FæIÉâÜq6ÛºMsjBûOºNû,ooz¥^¼³ô«¾
-&e2/o
-º2½`kÒòÝ
ÿn-Æa
äçû5Edi÷0î¥èíº¶±î'fÖùp:«û¼$4(8"þhB$ç¨õîJ¹{+=Bå:F<Òal粦¾RÒa8£µ·~7Äà"ÕÎP?æ}uXRÊÅjq=ÉÒXúTöIkö
-¥4~+FÀËA£[T4ðÒIçNt¹äµd>#ãôj隷QúOɹDª¾¡T¹è²³
êH´çñ,¬VÅ2 ß0È]Èù®!0̺{[tV_"#*5Á3oî·wtá1
-íéª_»B¥r`qåÈwklݺ2õ\%æ^"¿oåÓÉiöâ"#QòøÚ§=VBÓÀº6o¡ìioð´Ø52
-É{,UÑ=CmBe¬PÝÄá´tÀ|B©öëD
-çk>=¥¦ÁÚÞFê\cpFéßkYüN|¯©v!XLɲ^f®'båsÞýÈh[ào#ÛTxÂÇ0^¥E1Ö¿pÛʹi*Y³<ZTæ½'¿ûym`
-d¡>¬ÉU7yÛ5&°LSWÖ
rN
- ³Oô¤
'¡*R¨&ï44ü=
ÝÁ?<Fãb¹gçN].(XÊ>kKe®Äæ>©[èÅ{-²Nú°(úz%C=Í]ÑtaÞBá^æ!06§ÎöÄG¥¹±ÂÔ®´ÎòHÅÖ<Q½¾oØ*¯E\ÓS2oFç?ý\ Y@ß5Ê(ª*Y õ8ÊùD¦¡eÖxb
-×Üd!ª,Êq>ª¼ø¢
uêpj/$5[¹=«]ç
-$Î
-`¡äV%t\òþ²ûqýB ·ÖPªd¶fâX<mÔµü°ì3
-2¼±øÅt«<®;må´8«è0âiF~ùR:¹io $PÇ?Æ9D¤*
-!pì¬MFXÛÊàPNû³æâà£Â}GpY½+ìÎu/Ʀ½¥JHP1´c¶¶äôCÉ÷4~·æ+!ö5-»y:ø¶
-§IwÊò"[N3Hu"
ªãôæ"yº÷×1´^9aejW¿A$ñØë(Ì «¦EýwÓS0È47&~Äv3úwv{ç´Eê1áeNÅÿzäx|ú
-
-ï·Ð¨âÈ5^Ès'iÂïÒ[²_±c-S¥Z¬©ÉXÆ=ª!dïÿØïl¡Vûèñcò¶q
-K¶;/afaF{ÑZ'UâHd%{çTîN;DåçÃç ¸sü¬2U£«'Þ§S¨B=þ;*pG¶SS 'ê´¯ªòÑG??E6fÀ§à&CÞÝZ?âE¶59~»ÊÈhÍ\4B\(°E"ô°&=!²¶¬V£ÊÖ':ÑÜÅHæTô«£^ïÑ5²=p(¶ìªÇ½çû}íXóÝ
-X½þupÕ>Xwj&Å{Àd]OÇC½òÛÜñVTPëªOvH?)>¤è¹rcÕXÏ^ª»¼|b2åüL*òë5x½´C°n»>Ë*
o_ÔR³æÓ.Ú$°Ig
º\gzòm'Î+
-A_ËêÌ`¶êµHÕK¥¸oV¨ªF]V6§@éTz/ç³3;z5ë¿ÖÅ<Äϩٰ*±/Yø2ÖÆ§ïù)ªlðór$½:bµv¿òÌ'\ôZ¥áÁ5uH¯@ûP{ý|ñiÃR÷ºªåÂeqZ$«ÛªÜÞ¥I4¼Éú,˧
-Éá½` kÈ*é9¯7;ݯAlçÈoáûY]%â+<ɦBØ5#n©P"Ugñ,²1ÓIRùh¬ÿ1³ÑEO3(0~e¯Ì£ä+øæí2I¼Vùçy-8hÅÄG¶£u::º
-»ÌÌê@XýzU±ó@&¡ªÐo½/¢µ¤K)¡~cBeùHΨ³ç0R ÂÈ:þó0úAmÃÕ)ªÔR½oàQ§±z?Ôïâ.;@®Ò
¶aôOVV?9É>7v£,ÐT#É`ñ@×{±WoÉæc.ro`N¼÷ÞÊ
¥âAóØ|c¥º/]¯ßZG
þN/bß
-<ì5ýäMy¬Z9ª÷B4Â:Ó¬åËÆorXô
-», CX?e÷°ìçyÎê}>IÔzß<½N[+°ÝÄ
-õs<ÝñczýG9ì d;W R>ËJ:Ê)ú£GÓçEÖU{§ÎS3µ!ht±¸o/éøÃûef
-²¹½¥U*à8K¾éy
-ääN^Þ}S7nî¬ù¼#1º3;yqãËgojÌ5
K£½ÔÜGwtöØl¾ãáüñ±ÿåÌo¿|ûõåSñ¿
+xÍXI«#7¾ûWôyÀÖÃ{v÷!·C!·d9f.ùû©E[·Õ~ÏÌÀ²Ôªõ«*mjá¿Ã×A
+G
]Û©ýö×ðÛ§áߣèü3&;ê!
+¸q½&A¦3kN¹¥$PÕ[tXv?®Ì¨z¹×,[¯UmfWä&f"9~#vúQ[
+øð&Áktªå²>U7_2D2¬t¯e;×ÐÁ±AzÛ<DÂèÀác·BX!]~ÇðAÑ
+èÁã©at
+Îï¢\x8;BL£Ù#Ö0urru'±úI¨Úä7%¦;ë?ùqgÃsxÂà®68úÐW®· jÊÚ£"P&̼
+r¤LýpÎî§(OÛú¨SrØÔ¥(yPÀUU«?Þ(#ü]v
+
+ÝÚ#;8´~G0¿íº¦ð¡`ÒÜaâ3éå!®©òxÇ
+}h=1+O®ED½Me¢ì¡f¯»ª<=0vA+°÷PªYM{Fsx¾¬
+æ¤Ñ%*ëpïì)¥¼?#Ì^ÒÓOï©lß"Pôvk˦lÐÑw¸B#¬Ç@+´¢ã9qG.Rº'Û½odóÎæaiÝêØ2±ÎÈ.âsd'yy [ñþÆ)ßl½áû<ü=UJQ
endstream
endobj
176 0 obj
-4793
+1281
endobj
178 0 obj
<</Length 179 0 R/Filter/FlateDecode>>
stream
-x]Ë,¹Ý߯赡Û))Ð4TwU-¼¸à
ñÎÏÆ¿o½â-¥ªî½ôÔTåC)8q"3½¹ÿ}ûïËôò:Å«óñïv¤¿üóå¯zùOþ1ýóÇ¿¾}~ÿæ&ÿ¶½l.ýý/¾//.~úýoïaýx]Þ§åc~w÷)|lïSüæxæüýWü~òÓçÇ«OÿñêæúnJ_»øýñ±¾Ãç5Oùò÷ÿnpÅìÓMÓ
>Ó§|Ï|¡t£oõpÑxk¹ÑWwú»§1»=/èêåïñ;WOºÁï黿ÛíöQËõ.t·=µÜ.^ÒOpÂR¿ÂG[ãËqå>p{ÎìòCç8Tí|V¾ùññÔxùpõa¶óêýýû_¾Ý¾ûMa`æ·µtïÿnQP³ÛÛ¡PfÈ¥eK«áaÌå©çº$yðî`&<~êϼávÞè¤ÕXò´Äû,õÞkÆ»ÀøôSù·K?ú<¤Æ<×
-¾Î8ü¼Ç´z>hqë2äek@:ÃL¯_Pú¥üûZ&GÂz® Kg;ßUħ2ZQTÛ
-Á½íí¯Ü³Ç÷º¢UfMÕ$nlÅ£$s4ÁüðÏ)µ¢~°
-ì Éãae¹ô\5yËs5OÜë3²Q</ÌKägèNm%}¯îëÓ²¶«r9çã¡/Ôs¢iT1ÕKVÃÍdü¾õ¡©è=:÷:H%÷VX.yBÚæl@ó³%mpÓz8wdþ`´H[@oåZä2· CDîÅYÇH¼ wnϦÂZ+º?´¶ ~1 q·6)Âϵ®]ÉÔnÌ/Þúf
-ÆCÆ9ZðÃÙ
Æ«´,$k½
-{¬8*0ÂĦ§$å
]ôW-,æ?"<¹ÌÜïVT¨+¤ í<<ºÃ©*ÒÃ.Rr+9FÀi{úle%a`Jc-'.?~ïÊÃÉγ±TÐÉw±6/ùªù._1Y,ܲO6Ý×HÿäÑÎ ØJQåù#ÎêÃW#\éGA~ÖÛ,`ÍøÚq§Ðº»e2!ê<ø½Ô"² (·òĶÀñt¡~hÈñ
-~äåºJº¥ÄBËbóV
-§S0=D$!Ô¯j6¯qôغ÷¶wZ²)¤{ºÙ*#jÁ¼róµr
-)*uA8É0(|H;[$Oe½+|k·ËK¾å
Nü.VqNwät]µ
-÷óøÌ·*jÕlbk?ïã{Â9ÐXV!Ö¹w#í`ò
-'¾K´t²n£61ªÔ(à{¦TIùÁ|¦Ìbmúà
-o{,Cxg {ìêÞw^ÚGõ3mg:Nn©V*jT~p(oò»±ø0J+í>eO#ãBt.wå·»v§Eâ0íG S1À èNetòU_½ÒZú¾µ_RuþBð.Jd+q\8'?¯7î$CâÄ꺨e'±}7xÙÍ|6-evóżOù6K2perZ®^3¨¢/c\niBÀÍ´|×øÅ;®þ´xWfüZ
-
¥úÚIß9Eæs¿b$ôê#t±5bÃ|Z
-Nº,Èkê
-u«rq³±y²]zWU¥ÙxU²3ÒÛj¢-sSª¨ÑÃÖ.®¼Â
-ËGkwñÞ\-C|A£zÏò@ÊOéÜjÃ)1¹9r^í8º4X{tB|^0é[yduk±íë/ï?\ænËåìüÐ.½1"H5{;ªÂQÑL&ðkûkYóT¸§{¾ÿq,ʧY]ÍúÍè>,Wxæ×ÕS{¢
Á¸1õ1Ðý¤1Î*ï"袥Lªé³GÿÝlÂWHYáÆXê¼eñ0Y_ëEþè/I8åÝbÙÊg ú6X|Hô-ÂÝ$ɬ>
-êv¯×$'{«ÄÓÍRëDÁv(ôRùV1¥Úîyëä)ëÑÜR]dÆíñ¨S?È3EþGKÑÁõ»77ý
u¸7ùòúá
-'«E¹)jHãZKhà¢R1wÉgm9ZDGæ³²Ï]{:´Ü ý-này5"Y@;a
-ÔÛ,P ÝÉ
-Rþ"0r¾õªW£üdw:hÖÒ6âÛW¾D^ÉKêãôæYø&yOK\)$[£!ÑqÜÁ§D¾¿h ²¡;NiË¢cèèB£¯ð¤k¡6 at hïDcso"UU!ÃÖ1y¨)Ì #ÿïd\&-k'ü¤ Ò\GÑú(
(£Õ±!#9xäíwø><ʪ´Ñ(³8Qï}C(yoU±Ï±ÙÓt´ÓT öìcÝ*=$³?-S$ãk´^kw Ð(Æ|Têzªx¾ÛhZ^;u>Øy;pUÜ£ÑÂÕTg/*sSQê¶Ó»Z@!éI¸²³Cï
-¼N5èvZG(ñ÷'úÑiG=¾¾%yöhßë¶¶:-vÑêY¨å´Õ~´êS-PN®¢ÉÖÛ úc-˲4ÅReÍÈ[
P¢XÊa×p¶·ÐXô¡á¬vO9#:ØÍóvQÎ÷âõ¥)¨R¼É þÂB¹ù*j6ÆöË2ÄwGtÂþCÐbyß*@zK\ªÊÐ'²H®¨ëÅe±}sÛV]ÝÓgD¡DÄ|~èäJ¢ý¾öUÐr"d}¬\Ëà,Ñmø,(Úè{!ÆÊ;
ðÖæ"UÀç ¢þG'ÕÖy{$¬©(#7ù&(ÖVrg/ºÂí'Wǰ¼Hi$à.u$1:Eï6¦ûl½Â
-°W:ä®À¯VÙxÉAfÔìÑ^âØO_³s¶»ë,G±IË÷+üµà1?zyg³ïlx3ãXo樺A3·_ ·éwkj«+p?IF]G C´ø©×x|E«ÙcЫIúaõº±û´¬%bÊâd,gÂ*Ø´6tç~,=bÄiÝÑfTéõzZλd?Ø©Àݨ ?ùÆYk«Ø2*¥îàÁå0¶óµ·Ô¹ïv0÷ÔÿÍuâbí§ßŤ<½²ÖE'íàÏî+B¾ `ÆI
-¨ëFìîzÙ"±ºbÀx¿MeÍ£{ZnrB綠³:ºâE·z¶QZD0äoiÐÒurÿ»M÷áT^@¬xñMB÷0#ØÔ"+|WɦKRZ|þ³|RdÓý9mû§Ëv9ZÂl
-«imh¼ºÎ¯%¨æ`«dÔVä2"à?>s|Ï<ï`ÃÖÏ©êyò§9:ÖlsP¦ßÕ~$Ô©9àMh(ü'N-7
-5º< u"}·]Áá;ï>ªñúàìÉ$O-öÚéõM¢FÓí:ɦôýïkÔ²ê"\jÏôá'Ø2¬«ÿÒêðòãFXDo%ba &Ô¼V»ÏgÒf¡[qÎ6ÊÒK'jýxOÝê4wy¶<¶láÜò[©
5¥£«4BÜìpQ¢¢¶½Þ¬h>úJÍEÖUxó2ÃÉï1ñ»
-O£RmìþÁ
-tUpð©<!2¨åheV¢AwÃÁFA©¾
@å»<Ù
-ÞÇÐxãR¦rµæù©v¡'%Ôj`P0ò*ûf·¹´6íàP6mß-Eèí¼Ó#´2Q{zÃiØÎDãÕiÏú&»ù§{ÈU'¾íqPE˶aÄÌ£6ÏßïèEÇæ7ÿ2ã;¸Â˯k^þ:Såî3|G9OÉewÜsq³o\<Ü̼¤ív0;&
½ÂçèiÜéÖÔÚ¸Þ¥F<ÏiÃþÖÔ=6o!~*ÿçßÿôí·ÿN]©
+x½\Ëj$ËÝë+z= v¾«
+ÔµðîÀã=/¾ÿ¾ó=®¨º«òqâÄ+Kâ*/ÿ}ùÏE\^
ÿÑIå¯Û®¿ÿãòo¿ënű_úÿÿ縸ãð·Z¥.J\ðÌoq¸ðÏßñöùb´¾lB_õåóï?ú"÷Ëç¿ÞÄyU7)¤¼ËTá¢ã'&^t÷W{ûýo~y|¾üÖ«¤ô3:ë×FVíâÈÆ9¹Y÷¾õ±wºwg7å¤{8?¾9fP"~bFãûM]3¾ðþù/î í¶°"á¼Hð¬r~=îp2Ììÿé=®äØÌvV`v?uæêÒpò"óûqs0Öfîþ¤çλ½¹(¼ÍuüÎÅ{£¬ý¤P×íbMÕ½HY¦
+ëôsaã6Løjnn÷ãúÿ7/P)Ã7^WFßuøÆoRÞ6ï´ñ7å¯*ß·m÷òyþ *¾<DcâUê4gþäôÿÞòBüSy8K§¬
+ÊëÈqåy.ßQüÌ^/m*o.[KC¦t[DÛª¾!ñä¯ÓLé°cww:W¤ã
ø=Ȩ Ê3 &]õÚ´Úk:~©¼JdÙ¸ÝâZlQÆJ¤aKi±å°ÂÿndÒz4R "CKÅ*´ö¦Æ¶6ô³Y Í¢à¼ôÓ¼%
+¤pxÚ¦Ç*3ðC|ÎTdl"£¥ªV)ý³=¢Ìó×ydÛc D¶«ATð©tî
uúYVx%+ KÂ|ÀiÝÇuÐ`òÆ
+
+ÞYrPfãQ´³ÕSu®
+ E¼È~T30te5Î:àüÀôó'bj}pàs¸ïnáFÚtª
+5Õ:vuù0tXÄüÄGA+`t!È4QÉ[
+dE
+BúQÚ=Íkcá¿â,ò%íÃÞÍ/|Ú+<8U¡é#ù·AAN¥L £½×³ì¥l
+¨|Õ.AÁZµ¤Aglµ
+ÉùöIì½dqË¢ô'¸p¥Ý_Ä`yÒl´£ÅãA`´Þ²µnh<O&³Ov0FY
+$6¢lØtcÙÐÂçü>I)J·£ò÷A*ÃÕªU¯t1nÓ³£
+ at yREÃì¼{=í!òq»L"ߣ,U*©û5$¤®ÂÔ.ܰ\ÔNÔëPH:¢ÝD(érÃyË"jßÝ}:h
+´$J~
+L#Ly'[æ¨ì6ÜÓEY\*ws
+s<úvdbuÜ`ÞÒ-
+"dÁíÔ,x?ªCkÝm²²"aUH0 at YB+ö' 2& ¾(ÎhÄML1:ØGßµahâ£Q"8v7HøPâ@K%7dÃô«gD|wUÚ@1¡ÝúËGòa'þ´!Swù*rÚªÝiÌ£@ºî¸À6Ócf£å#ö¾0¯ã®Ë ^É0ú]"Be+APEeU¬§skeÙ¾Ä!¤<nÆÕnAW>QÏ' ªäÏ%¦íáúì¨-7uÑÍI=°Q2kW0¶Ce¶üyÁáPft¾D´ÿebÃÄI9
+`Y|RÁÿPl,Ñ$ã>°O]n`éthJ"^Ϊ̦9Ü7âCªy+'W[¢U£%TªfìÓ½Mû3ÃrÈ¢¼ÚÔ¼¢¿·¬ e㯴TÞð¡<úgim¯ßp¥¤:cf¥H§è4y®ùQ÷V_*ß ý×%Õ³ÓÛÉ
+çrÓÔ·N[Ó0È^éù*[
Ïîç(o!¢#ÿèÐs-â½Kä&¬ÑÄ0W(GþÚ±¦îÅY»?ÄgK9A</JØ@%'QªGÜ9ìEÒ¯WÁ5´>å#Aòô|ÓryJ*xËîpwÚ1AtTKïß/Ye©õ¡s9©EߢD5ÃbjÒC¶øØ½|©È3¾©ô¼eR"üºV=êǾÏS§k$¨=[)8V£ü/´1yð){>Ë>â¬Í|Ny¦£
+Nþ½ÔÞsª¯LÍ3ç!n¶«dP°ÄÖ´í\zFm
+G=ÃÀ'ÍKÅã´ûöÆ'åæñK"_abbJ½¼ª®ÞÉ×?îx_M3¥¢Q7m#¯ÓÄáC=Ú¨ÜêKþÓ~w*ôm
|»8§ÖDÕÞDèÄỳÒÈxJÀÇx°¬esÑÛør¹xK¿Ä~¯HvüwÂon`ú¬O=¼ök÷ð\¥Eú{?¾¥¯´/Ôt_ývùÊ?k
endstream
endobj
179 0 obj
-4683
+3177
endobj
181 0 obj
<</Length 182 0 R/Filter/FlateDecode>>
stream
-x½\I,¹¾÷¯¨³¡Û)åEC/Õßø`|³ÇàÁsñß·P,TÕólÞTWVf*cýâPN/îò§_¦Ëó>nÎ÷3þûÛß/þÃå_é`üï·<½ÿxrÙ/»¿þñ·Ë¿Ö~ýËuÚ¦ùu¿N¯ÏÎ_óç¯ðÙ¥ÿ
oÞóóu»º·ðù¸º5¯Óòú¼^çõuÁ3Ò7ù<7ÅKýëóyuéH:¯r^§#}?¥Ïùû%^iMßÃÇô\rwÏÂzotÎôãË"Ã]\:'yKÇßÓ¶xO¿Ã#\.ý<ý¯.9³¯ÓóeÝo8>ó¼È9Ýå¤SÂ*Q pM\mþ1'ü0?ñ-FN°,Û°O÷%îô<«
³ç-ÿÞ¹ð°ýñ§§Û§_*3X§ùe6Ì ùãÖÙp¶s9+Ãq[Rsåô
ë¾zÿê®><±ÛËñ
)#IåªEóñ)²ÌAÞH{éñ¢fáÜ@q{ÔX¥²h°3(v>Ò÷·<¸±ßÂy·r\æְ¡=Ù:Ë×ð ©Ýv%£&à´MÁoôWe`»Å-þ
ÒÊgA
-qëö²]¶}-êvçÅù¬ï9®oþÏæ£x}zh¦>|v_¯IÏìÇûeóZ÷ʸü.m'O×W-
-^fLîâQ
-)<H«û»Á½ÏF²0óJ+qÓ˰Æõ£
p¸Jñé¥XR>.öÆÅ7ánA,,ÁSÍ(È3³íà¤>5_î ñÞ1bÃOßáüú(vÚ¶¹5Xmô,/Çï°øþrWt
-
-òß
-ªnUå?^OÿYfI»ôe
î2«¨Á¼ðÙY`ôù¦<9'FX"ËN
&7Yâ¾óÑ[0îö (Ód\Ûkº6c
-ÖúZÈì_Öë§&¼#MUZÇÅ2Èt ÜMýJ!y¾@ÂWÎäswµÚ !ÓÍ
-8úyü&cF¾ç.¤Ð|?y%q"7ü͹Ô.ÊêÚ[]¥§¨&
ë õdÊ}gäÜáÄ)ò\x¬¶7B¢hÃüUí¢ø-ßóWË`CçË\Né|èrÓ¤rJ9
-$%EÁºÅxÀbK¶Ö²R2Oöfú[%äeâ HäÖà_pò¯E°îRÂN[»¨?çÌl¶ó´=xôj=ô,³É
ìÞà*QSÕ+öXa*Õa=$+chÔZk C¨@¦É!X¶ÅXY4HQé()CänEnæn)#\)eêPÛ¨GY¾xý,O©¸®en¿3à6yJ·2~^EÝð^ ÏV[WóÍïmi{Zؾ
b¶*JÐF3¶:©8;Ócl
!fÑX¡ÁO«ÇYjeö+Ñv´(·°Â-WAzeòìd·¬W
-ß#W+!( ÐÂ#%ö}eÑFɵԶ5{¹±Î
-ÌE,
-e
-n§¢<E'¥odÇ1(I÷Û©¤¤íÊè÷ K©¢êÈÙz¦Qñ0Þ§~*æQ¸c'µyÃ4<µdÅürr\Úr²
-#ªR¦-$ZDòÅÒÛ[P PJÂc®-}wD#×Èã¸S+å%LÁ4¥²Ð¸ñ±å½KÄø%{¢^O(VÜÉfaC«ñ»D¥´ä¸HÜ
-3ÇÚ¤êO\É*:ekîió%gü¤5#{i¨8ö
, 'EM¼ºµ[ì*TZeM¼¨$#Z´Ê
-ëù©.ü Ãa
M|´l;©¦©ì¦â¦âV
-|î#<ö![´«^@ÎþZ»cÖcP"U¥¥Oä1ö!iDZt«a)WyY¼e'Ã^T%ô NW$qãéJ¥zÌöifvTm Þ
ÞN7ñ4´=2¾å_5«8ªþwµg÷kä6óÛ9qS\¡;§eÚ§Ý~m®6(Ì^ët_ÝflÔ.h 3%ʬlöV
-`t?eªsâ
y¿ Ë[í¢*.ß*û,È¢2ØBU51Öò2zZá>©,õ©EM=ÌvZ1xM\ÉÀÒ±_ÕüE³»4j`}îx½ÓÈ\±¸`34 ÀÙw
©<Ê ¡yv!0y6Ü,HÏVȼò«d¬.9Wxkø ²?µ:eÌ&üÜilÔ5´Ì5&õ»¨S\9g&:4¶âQìdG¢
-Ûëïy%8·å³K(ÊoN¦û¤ZC,íÜS8U:¥¬!ȱÎ%HíQ .|·ûMÓ,yÔ
-Ùä%î½åÁJN9þÜR(§r
-SòeZ^<ÔÃåËêå*
-ØwP
-"±j9õùD.
-Hçg@{r&´Cú[Åp_T}ÐTÊN8¿0Ìæs°´0 Ïy k6æ×i®¡dhVÛ¬Éc<ß5b1o÷>fâêÄG±ñntä«ä;£ð2wS5"'[Ä0Â
¤§`:ËN
-"ïTÇ%âÚÚÛ=ì~cuÔÒ,:\bi¬Ë0ÃàhP±4¬8iÛÄ^-!Ì0=Ük)Ö6¼â8ÃÙ@sA§¸ ìogx^Moï5zÛOØ.ÆñÀüÇ{Æiíaª»c¶Þ]|Úu,Í|u¬@VÆø`Pk.Ôe*Ö¥æjF¨´áWWp4KOll½q´CÙ»0äßÙIßWÚÝücC˨ÎÒ=¾¸§ägâ&¸³`6T>0ýÔí1S!!Q¶OìÐþ÷7æë×zó[À½¹wBk
-.ôJKéÎþ·PÞäÁU>8®°Ìüäªj¢7Ì®20ʺi
-f[Я¶ªÇõ£fDJ¹ñÈÎF·ª{kÇÈËj7ikZ æn¢dhW©¾3j´!¡³I¿wÁÈ0rÜï£F¸À¡&îs¨A¤}ûÔæ¨AbDc¿¼nµ§j¯`ÃüÃjjñ-íJw|÷Ä1 pñ³º³E3¯hÒCDÚéõÝ-ÍOæ6|C8¥i{tçÔ#mhdOÔ¥¸ygÈ)í½$COXH
-ßëÎÃ=Ó"õî¼÷íî:dK>
-eBPö{Á´%ß¹A;
e!-Û9a¸çBw5ÞÝÑMÑ-+kÈùÊfùlÚÙØSa#3rç¦ÙGeY5ÔmÞWZ+âYeóïsãÍ;¹)ö ô¡ÅÚ?ØDZÕÝ3¿'F(ªµ»ö6jò¼9sImJ5Å¡Tð9í}[ÀW¹Íº×éJ Ò_ãoi/¾àH[ÍÐÎY¬FøÌì*GPØs¨§
-ÁËÜ6ïVoã(k/HÕ».06ÊHä2î½Ý(Ya¨êì08
-kÆ42*ÊDç÷«Ü6×Ë«¸ D׸Ԯµî'|WþûØl!!¸Ò
-ë0¶M H÷ÙH¥~kIì$)"Õ6leWÞn¦ª:)ÇÆ04ùÔ)^ýàúxBOY4çwåó£gonmü¬Ü¯Í5nFµèSÓ2ÈÉWèõö¢î§*IJ0Xrò]*QíÇ:§ULF/âÀ'µ{½7LfhdÞØ6`Ö©+þÎ9:opÄÆÌq
-J:ýî;pNÆËåh?J¯½poRn\ã;òý;Ã÷
-ÒÖlmé`ßÛbOaRdã£b-«
-5.ÉkÕñg¨÷ïÊpn1U4g;ÞÑ3{ns$y54?´iÖ½¨£7Qnî¶vùh¨}çþÔ Ñòæö«¨:s:¥b1SæzIÖRiϱ$F"é¼×Â0²SïqÀm4«×JÊVbN<àÆdzß[Mú5/{¿DÆpÆÁw(Îf}g1_ý|9²XC¥´%ÿ8i)_
§]¦x»$ÖÅo\<ÜPrêv9
-¸È"ÃÏqƼM%nqS¾ÞçáY.7s÷=D³4g¹½ñMú¿þáéËÔ¦h§
+x½\I3½¾¿¿ÂçÀL´ö¦aûÛ9ܲ@|üýhWª$µÇCxÁ¯ÇnIÕµ>µ´Å«¼ü÷×.âò"ÜÛE*÷ºîþõ÷¿_þüË¿ÃþßïÿüõþõK*ûº]V±¿®¯¿]þxËEJwù×?®ïëñõ¯_·¯_¿µKv·Â]ÿ«¹æº|úýx1×U/*½ÆOûr;^ö«Ç½.KøL®vù×ÿªîáÓô]Zç¾úºÚU
Íìñׯ?q¤)½:²
+·¤#QXg*j°ÍmYë1²m¤ms÷)ÓY;L¦×lãwTÀdðÖîÄHJ×ÄÍ
+3ûÂõÖA
5î¦À¦Äú÷ÌW¨W,ÚÕZLRt`R½(×¾Ýyb
+Ä\@ðéé\½NtÀÚ×½ÕÌ¢¬¬C3âBE;ºÚ1Ò¢
£ÿ!£·ËáU"pâ98ñ¤PJz_I"¢Î
+B
+1ÀYÈùKèI¡³Þô¤=U%1Ó`µ
ÛèòSs¨"ØgB uc¢õPG>³
vkex®
+´Q÷94ð4
+èyã¬ò~b.OlK(}Õn£:®-@øk°ý1Ùra¸»´xÈ¿¥OÁ_ÄvÁ¨¬¬,¹Ho§Jÿ'Õßg aÅ(´qQÆ
+g¨*Ós°p©ÓD¬¡ ÉWÆþåN~9ë68¿JuëØA]Ùcñ]ËÅ[Ã*'!ØkÖiNÎ_L«¸ÌùOC\TÈet£;[6Ì{@dnt¢CÊÐBÈÓG-*üe)3r¢ÇX
+þY<Qðøé"ÀÊ3¤*1²-CÌ«{q9
+@ÉöÒÖB½IFò» i6ûha ,©Í7é09ZÔ(HÉø¿-43¸SêósmèXÜÉ¢ôuɬ(ôgÓ]è` Wb,#µµ
+»{ØPªòs@!² jjå~V})wïH
+
+¾
+£ÿ§ê}dLæwÅ15£Q.Âu¹ÏZÛÄñ²ÐÇJiÀªÊ%ìa»¥¸Êéò}PV0"\FP½[RÿOj±g¦ 9â(
#WV0áàÞ:ÅιàgJ9;c¡Èt¦hæ¤æîd«FmÞÚ¡ë3ÝFNd{qõYîT6êò$t £ZIÈR5;@
+ñxqÊg>
+rEPõqtD °/uÐÏþ@Ï9ÜpÅ»I
¤÷èHËD5£0S[6Úæ`¼0UjÚ¨¶;d`ç÷¸mÏ©ë!áïó¬¤\ÍjKoõ ;!¡³mÆ´ù''´öyÁÅðæ³è´ÝiÕ©~YC÷«ò®$þýdeÃle;p§#ÝL+t>^ÇÊqcK¨Æe[2öÜ,C·3£w³ÙxÖÔ'<]ÕV&g˶3Czª¦|Q*ÎTÕ$mb,ñ«4 XvMâO1/èÆ"ÚÆ6:óøÝºÙó?"äV[}HÍKZn¨e6 î7´Å¬~|Ê~ª-j%½³("C
+úÂZZõ=p@Ñ÷Q^òS
+åÆqzJÔe䣣ý)W÷8åðÝt
+Mu,úÉ{qÁýC*dh½¢ÊÔïBÂ
+3sMJÒ®[w_ >µã)AåU¥oÓCQ#ÏbvSr.INCk
¨ãPú´-°EL1ùÂ
+ø¨_\~CÙA;Ã0Èî6F/¦¤ÚrGÕ½Xe.×¥§lt5
?¹`
+áåÈèn£Â©átÂÍC)¹N½ÈÉ@`cFùéÇTX@·-âCûÞST~:¼x±ê>´D¬¤b½&ºùÏ »ì=:UøÄ%hþ
+
+L£4fç¦
+u¶FìCMwèDÖ(0ÑîIañ$Meem#?üÝä}âPyãüJ
P¿¯£3põ£®åjT¤-}£øÜHÉ>dM%?ÕôE°Å¦âW´=Rito)ífgÞÃ~¨A©(ç¢Ä}ïNe`6©EÆ
+9¹oúOG¼ÿhÕ
+ËcÅà¥*LUÇ,4 òèËmtîpþóyDÕ2þ½ Ïü
æppñªþØj9iÔÁ~"æ.\MN æ½0EµFsÝÔº²PÏ¢pú1Õ(sØ*{ÔêîQlþÅßÒîEÞËgoþÏpÉǨ"6o&5Pѱ·Çê{,Z#bÂK¤Òæ/Ô»{Ñݰ´Â7Î*æZOݹåbÄ÷î¤7L¢Þ²ù
+âL\ Ån±çqG2
+ëÑèÆlJø
+-åÄTóåN©L
+#L3kp)7ÐÚ¤(Í¯Ó ~
+óâ+:F³§pY*<"UÈï^¡ã¢êW|ûÍ
+<«à¦©éx¦| x¿®òóD3¯ô÷h
³<v%wÁÆjع Égñ©&-¿5X#±
endstream
endobj
182 0 obj
-4393
+3661
endobj
184 0 obj
<</Length 185 0 R/Filter/FlateDecode>>
stream
-x½\Ë®#¹
-Ý÷Wx=oJÏRûÚ^d7@YÙe&@2ü~D¢¨Wïô$Àã.JRª»|¨Ó¾ýû´ÎKüêë¿ýrúËO§áðßoÿøvÿþM9ÿáOë²Å;¾ÿýô§ÚNJ¾ÿú×Ër¿ÕE=®ú²ëY_´¯¾.ü´K>~¨x]¹ú-Óåû57Ü®çõR,özÞàþ³¿h¸ª,>¿¾à{^¯g;5׿}ÿó·ç÷o?·³XôÇzòÛò¡Ó,ÜI)^©åYaî²¼ðÊ>¡Keq(nZé:ÕÀØ-víhà2?F/¡n¾^}nm°¹Z`±¡OÏPùî'=ò³týHOOWR·añúßâ¨U´Æ×nz>¡uà`ði®¹GWÆÜ<v«8^øç§Ó'<$`_éÂ]X__·²<+
-îïñª¡
R-èÓªE*Óåþâô|곬 Ì_Yü FIk÷âÏ
r!Ä-&b£G´ûþÏLëÇÖ`jli6äÕºõkFæéötÃ#ßÄb&0Ýãjisa³pö.#%cÔG<ðúºÀ·æ (ã;>ÍÆáÌò>k0y¦.õåËxº¾VÀ×2ÿô¸ôÝgHÏQJAY1j$
-pü ç³í^bÖs»±pïâgP°BE7¡ù5-*ý¤ømçüÅÖ©õHôtN¤G~»£A)CþO~®?SçÒR·Ô9ú>Ò<X¯¥÷³&/ ÉdÜûd0í.&^ 0ôp1IS¬GbVEqPbûÄÅ/b7É\l9$ZÛ,5î¶á(óa
-¥ã²
-ø±ªAÔµ®ô¾)
-ú!Hµµ@YÅé´v}dL?ô67/\¼Võ³Y!;ãKÄødüpÉ8Yt£pÚ²Ê2m»4 èÒá£ÔVl¥FZ7þ®a<aS±CÔТvAS¹© FYïÕÆÉzÔåY³Ö¶4Ú;èuÔó$áðgRép¡éû
-^mô8Ýajð¦²_Ó*{Cáé^póêÀsÌ$ BÄæ%9Pör³Ñwñ½âEn_¡Tý$RÓ§"´ËÃ;ÅXB031ºR(XnÞJ¬è2+ý#AÇC4¤¶¿?¯®úQWMq
-
-¬ÖôóîlXs=I!oÁy ÊöøØ-]Ñ·«ZvÒÝëCobK§ðèTUG§PmæÒÕ%e´Ð&YP¾§¨ÄêÖj¨¾ÂTíJ$©Úª×(ùÈT×ÖÒDÆ7!CÀ¤Êþ
¾Þ9ÆÖ0´Ç[
-±;
-@BÈÚ>A?ª¨´Î;EùÕ1Ã&G¿Z`Bj[ì².«
-ÚM'§O-CqP¤È%k1ÅRB=Ölb-A¥R½Å²TX©Êʺ÷ÖgA_KÝck»]Ë>ͨxÝÎÄøuTu1ð!Ké^ã×/øq9Ýâ
Ý¢Ðôu×\tÄé%R`¿<Zk
-DÃ]1³Àò)1EàeFÀ°À._FÊ rC¼ÉSÇXñ²òðWECâêöU(;âåøiÖk@®qð+¨¸Ç°TívÅ [MpÍ´\IE aÈ_mS:äVàÌ[¦d,˶vñe·úè6Ûaë0!hä1Ýê´ÄÓýÀ¯M
-WýÊy'ÆÞÊ)#Èl at cÒN$nËÃY?³#Ï6«ïÒ$Y®%úòUõ[`ôG¹\|[nf'R{ËM¢lOªkÀeà_=a©·xä2è+Ònv2f/uV«Tmâ׺P8Lä<XशLw0·0%+ ®[ÇCÄ
-jz³ª\<çPF:8[Urûn«>í O§ypͧÒOJ.òÑZ2éwس2Ê]Fnåi¹ûÅ}?:çV2'Êîð¹ZºÒ¦¾wf$|l¬¢Ë©þÌ"Yè*9±¤±¥BI±#ã¾£¹çÐøq0®ÝƬÎ<-iT¢H Êè·9Ýx10Ïz{.º
I*NÍ_°1ìõ¦?Ùö«ª(ß2DqN»®¹/¼<¼hùTèhµf0úøb ôKÝ\ÂrllpZ@x4×v%³Q®/Öá{ª ã> î
-cn
-ÆUºPnT\*e ÍY-Ikm¥F¡ª-Ü-Scðx´ÜÙÌ'{÷±Nwä?t4}ö¯^ÚàkQΪ04àQÛßÄ×Ý·NF`]¸à!éÏ¢êJW>ݤ4gr9"ð?ø¼l+èþg§gm·³`.PÉÚB{¸¢½÷ª?âd³ì&Óa5ü¬D{h^féA¼½\ÕN(»ìL15ÂÇ!¢ÔÚgN_9µ^ 9Ø;pkì¢Ç¯ò"ëò~Xõ'A¨ÃBßÖ»kVo^kJÕVàFÇÅ«h\o¼qþòYm| Ìw¼çGǨR³Þ\"¯;Äñ»4g>`·{ãAPxt{kåµBç¤
-#òílºÁá¶n}$jÖEÙÉyõ/
-zÓ¯ßûÜÂN =1~@Om ¸=_ש»æéWhXFiã ¿
-¼U¢CçYzåí
-
ó¤ÓBùYyÃçêIÚæ=#-ñ4Ò'¾ÿdO6Üà}à}öjè$.ÂrAºr*k»wéDWòy®UßàxqNº®¼¼rÕ"¿±Ç(«ï¸.\äÌô^óK5òîÁ~¬{9(Wÿó
-2X¹ ÿÕÑEÉ廡-Ày²ÞÒ\côd-ÈÀ$ܸÍ2&üîÀA@¨Q¼:ÿ¾wÌ0!¯&Ýâ:!²ºÔRò ÂiC£¨Q¬©¬Ù(R«Q¯XAÓKÆjü/xëÁÓ.«Oÿ÷éuAü§F85jªðîô]¶p85ºÕà?bã8ñÔÂ?½¥ox?õë¥Ö%öhÅsüþÝ'µI¥¦9yzÁ§¤_ð.ú;©¡E³y,ñÓ£R7!5§&b`ÕgVKÃäê<-à¢?E÷«ãÏüp
ìÞð=o>;îD¯cï³'lkõÆLµB¯¡¹ôkºê+xÍv,9ð<ÝÞÖª}mgls¦*µÕù,»_}óip¸sö8ò^ºØcä1Ùø`plÑg¸açýäm«zÌå¡Ðÿ
·ÚZn~'ñ³ÍR*Ô|kÅ3&ïBÇ&WFeú"´=ýIiz:Ç}hÑÛ÷$£/êÑX¥_Ð(ÔȽÅ'*¤¿üsFgÕò¼îR
(ç+`ñÏ®À;XçÆÄêh`Î\Õ{t¼Tq'pøW£¼è:ßaÃëÕy×BÞß={ú)cQÉm¾[k(,|EnÞøÜþáÐxæV°tÁ$WâïQ!ªÝSNxb¶Þç5½hÈí¸
ãiÊØþÔÒþ䨝?}ûùô_Ðûa
+xµ\Ë,¹Ý÷WÔz Ú)¥(
+úQ¹ðn Áãg¼0ønüûÖ[ñ5·Í@ÍíÊLI)E8ªéU]þûòËt¹NîÒîsÝýçß.ûåòïpÑÿ÷ã÷¯5é×õ²N»ûüúçå/½(uùúýï·E¯vYî×ù>íýªn«vú¦§ûÕÞôæ/¬óýªóeã>gÙÞE¿ñÿ6·e÷ªÔÈr¬Sm{¹[÷ðùXÖûuO÷ÇîÖ=ý?Þ_>sW¾Ùza]Ò
+á;½WX×{î¦.u
+º7åshjKmvì)jZåæ%^¨¯/º<Òw:¶þÚàS:Ë·¥59@çùY4Ën¢ê³
+̲½ÿãë¯/¯_ "¬R¯Z@oãë_ÒC˾¸ç0ÜD(0-
+|rí}
+ñZid=Òm¢º×ò¾1Ë]Ŭ{t«Wײ³¿G¹Y2÷2&oG7Zî4¯éh{C#³Gàì@lWì³p!µuTó.lßøÛ
¥oÙ_gjÌòòÀ÷à_òÛF£¤§´ ÐX}Ö§Ñ«èÈÖÀpycf_Ú¬Àüä¯kGZ§{âàLsæn·éÛ²Òù½aªñ<fyÓSÆCBÃC
+½Ú-ôh²G©
èK&Ð
+ðÃy¸x À_ãkÎMãÎÎ@mp¶Ø¸-˧nîY3ÝuÓ|´¬}Fä|ðh-ÞqôÜ
+3îGUTGCSÄHâm6¥©ß3SÊ=CÞv#Íq&±rÕÿ%Sä¤ýÄ'4ÂÖ|+HxÁA¿
-Áîî'
+XàÏshTFörm¶¨ÐA¯ßÖNä@BgS¯Y!ä²ä
+ÛÚ"\óì0ý."çZ\ÄáºfñÒ²°ëx
+)ZGàùJíÄ¢³´4T ±s QhkLò8ÉÖ²mn^b:
+§FúèD[Ùü[ïSTeOhåNY½§Â^+ËcRÓas<
ñø¸Þ¬ÅÚWíiäj¥õZ±-ú@[
[>A/¸qÊß!l[míUÉ<áFô»ûÛÂð¤åÆoÓÒG¥QîAB´Nåqõmê >{úùùpJ
$4t3>qYô7½Ê[Ǫ°ND¼}Â4Eݰ
ÜyrÖ·Nß[gåSÉÔwaQBD2òE¥BN4&ÿ߯¯ò®
+xhTõê6&M
+L>L!HIJ¤åÉ©DSad¤ÝÂqÊ´ñÞá¢õªefãWüZÉ=e#(Ñ@¥&e¯òr1k¾ÑÉVwâçd¨³?è*®v¢Yq»Ö;Y6º¤|uAêVú2=sTÈZ
+ÐQâí3нQð4Fè×Pö©ìû¦øü¢Ð
+É[<
ë§~é{ê
+*ôé°ÀÆ·M[}}¢KÝÌ|/~ðèL°;Ñ_óÑv6ûÌ<l+[B¶A¡94ß
ÿ²!$g²í¸T[1
+.©Ggeé«p at J¹#JÿÆ5J¥ý¾Í6lµ4©2q¸$%o+IyÏÀ1Ò6qb#§&nH³w ·Fc¶s¬{Å/ àC
+ð 2¦çDyø-í`^G»ÆÜ¸$aÇweSWjÁeà2}CÙhqݳÙ>6Ïù^¶]ZXÓæglعн'5b=M52;üÅé#<ø!Õ÷8qËR(%á8)æÈ¸$jÄìÓJü0
+´Õ9k«X|Ãã P´(Âl
+#¢0Ä®µ
+ĪvÑ"ó¸Mxtð5`d]xM1É>;§öâØ'q©ÐcË7e
´hÈò1P=ÖaàÌbº$íÀ(øn¼@ÍbâÍãá`Eóº¢afûLõJt¹fýPö h÷´èµ^ÏMywƸàeQdvIð©;qþSQßÍÓ& õ
+R`ׯDç@Èì¬`HìÄ[UÁ£Æ'±wDÿöÜ[áAñ
ÿÁ9.d%ÛɨøÍ&zñÔ¾ ÊÃJ©ùq\åÍ8ÞÉ|ë>S ñ»$¸VdRS´Vp¾DD.¼¦tÞØ¨¼
+ÖZt Övµ@óTÊ$F~î¬Þ(yr'ÌÙÙð¡5Ë]ý4%Ácµ¬áóªÞ#°¹ØÁÆ3eO¡YMùÍQ^Wï;{oXP¬iB3ìX¥n^uõO} ¤±VuN¡úz{ÝOÞÄ£Þd@[ªènÅ<ýürr
+âGÎS 0ÏJnùÃ|;{"¢ckgHZâ{x¡ç¦/fìéÕqm¼=¨ÞÃ§ØÆ²*0bÉOt¼TT¶B»3Õ®çÁI~iKðú¤JûÙ"35½§¯¥ë:ÄA(Ï#â¢/,rcª°x2_<ÔÉQ%ç]ñ¤ 2§AjXÅJÓU) Äm2IÖö´P¡TfQ`dlAMÂɪOÄ8ÑìÄ÷FXþ!`ìÞÈßqãs²pÏômÃT`(¢ø-£DÀk,ïR}Gwðõ¶¨Ô13i¨ò¢¼çýmñ3]³,$ÂGECf_¼a+?ı<æoÁ_Ú^¼?²Î ìVá£32cG¼Ns p. jBjëQ_O;ª
+ÞÚ¼b¦¢ çË;ïäÔ°ÀCH¨åï^ÕÜ
+À#Æh'µËÎgA»f
OhÔ2Óϧ,h.92±VÑIÓuaGVB-(Y at dòùoÁH¬<¬I¸+E.mPùB3?«vo+¥wgPñQf¨áÔÍ &¥Ç3$LÁX¡GBGÓaDRV¾Xnù°¢Úg¼®ß@å:×"KÑ9{èµk¾`CØêÚúìÝôÏé_±]æ]ÄÚºþ?ÇÒ22$ ð XJ¬Áà¹Úv*ßÐ-M¯ÞøS¡`Ù0Õf¤7°S´=-ú'tx(Õ³ìö(¦vkE½@maØ
+íÁ)
+bÅ<íoîV"s²·7`±¡²@ÆLpJ:Ãp
+ÛyɼêÑY/[̤|Ø<é»ÉäÞf½Ma S"'?(ë«ÿçÛÔÕñ¿-HÛö7Æb¼íƲ
>÷@Þ¦ uLïñ=üi]çü´È
+*7^ <åwÒ~¯¾~eòG¸üvùý_/ÿ¼6
endstream
endobj
185 0 obj
-3991
+4054
endobj
187 0 obj
<</Length 188 0 R/Filter/FlateDecode>>
stream
-xµ\Ë,¹Ý÷WÔÚÐmI)e¦ (¸u»ráÝ@Æ;
-^<ÿ¾õV"$e¶ÇÔt=R)ÅóÄÈ+>äí?oÿ¾Û»p®R¹×Íú×ß~½ýù·
/ý¿ýãíùõ&õò±ß6a?¶Û×ßn<¶·¯¿ÿå¾ÊÇ»¼oêñ¾ÜWãþw%æ¾¾ÖcÓîýâß¿»ìã]ßW~t_?ý»MÄé{úôåß)ñ³Õ}fÓ*Ûöp?>6³þË¥¯Ü7»òî¾XÃVÖ²¡°9©ò6Âi¿ßFÙ!8ßçvüZ7pÿ¸Û=þ*}îvûYNwÖ¥Òòa?Üâg;[Âkü;,±þEjýúÓÛëëíFF¬Q¢¿îëÜQí«]?T£v¸£¸íôIÒ,âÛÔõ5 ¨¨¯³c%ÌÇï/ÕM
-¿ei
Øä®Ðí+½áËËöÕO')¤½1ªÖ&¢ä³*ᯢíÅ£É*d))$d_»H1ÙK¼hKÿOÆYo-Y3ñêew1ï²ègGÄÚ
-ËØK¸w
qöÇ]1±Â]¹×Æ
-ÒOãóEÎ*H3è¶8ò~>T,¦ å¨ûR§hùðqÎEºà·Ñ ¥Ø À¼HUºJ¿7O± ~½¿hHäÍ2 $Iú)¼5¼e¼4pû&o¬^b9ÜNfÝ
-M3ªâ©Q¬Öyxcqß@Äè¤E®0v}ãl`xu:ïM*ã7ê¶kãF÷õ'r|²zA9¶9µÉ"S:) lépæ
-g¯±AÄÔ¢`
-&§@y¯_¼fÊ3n5óä¿ýðËéOÿjÜu{úIÜrFÐ @ÊN
-=±¥â¶=ëWÕøÔúñ¡¨]MMXK^Íwy,aeè·YÌ+õ(§ÚRÊk$Û´mhô¤¤sFÁGEpɲóÄÕg8@~ÀìZ'°WAgXiUßûC/Nª¥£:&Å,¸üLñÃǵ®D½3[5V~´QNoU3rYÆ·¾f(àGg3¨ááê&]õN=³|WS¸ÊèíªõªxÍ´ÄmE§1
-sÎGºOKúV'»PXÌä`ª5I°Ú}«zC´'Qoî/ºÒéVªb¿Dç§í|¦H-é^Qd½cI(óJyt`@ñáÅ2ìÞ&ðSÙX@Å`06¾G@$FÑThã½¾
-ÝþLý
-¦vhKyÅ^9³¯.ÄPMCÚõ-BîÙöÝzë[6Õód¡Ùâm+ªa9!èBJ$¦ãOTq1 LMDj'×ÒF?TQ&Ñäà ÆD(=#Ø--Á
-iI&ºA²f**SÝ
ò(VáÄjÈ"d*1IÆüÕ;´>7JL=3CØÉ /R1dÝ%ÙØFË®3"Íñ¥¦Féò¦þøv³v!ª|j$ÛBËîn÷¹#C_ ¸/À[áe÷8i}¨,ÖU"°-Q³÷9ÑÀw.pxaÈ,ëodÜ#:VZo×x9pAæA¸Øãñmo¨I@@Å9o@â3!ò$ øÙó` aà4õÏ7$Fî6°7M¯XGæZÆNIVuÒ©*pêïîPngÐ-taÂ@B}ãÖiÛc½#µz>D÷Òâ|Ñ.dòmÌ^Ïa³¿M°HüãÝËíHPÈöSzÐ
-n§Ö Zf§ôVAyò1âá`/j¼Üå¤BÉiA8P]»ùÒbëÒÍÎ5 §5×pAÛæxµ¤àÑ6×kø¸á hB½Ï?úêØ¥ìÔ»Ó_¨hãè$j\¢tE«iäA9cÔɾWÎ{Ý
-æcÌ aÉ3±Ã8^Ì
-]
-Ð@Á%ïldj0o F¡±ÿÛhK¯
-Î .¤Á¼Äê=ë3t³9ÓdK£§Fa%k/_gF©:xéhï¸5gpâA<g&fÁòPÔÞ ²ëöæ:b¡fDéwÒ°QíNíAKÊØ0¼»zxý°Åÿj¶ûbfH®
:êåHÆ<@-äã
-y
-<X\©dE$ÕÞa¦éÆfÏ1
-ÉMô(ÇS,B,"Ø4îÂ5aû¨íZ£5-¡c8nнn7UöªIgéhQg:Îu+5Úä§V=àhé ï¢8¢~Ü|½RïtÄ»¬þ¡ °NÄ[/æË/
-mª´pÐ<ö>5¯Ã*ÙìÔ ´¥ôä Â0:â4pûû3{*Cü'-h6U<îÙ¢àdÁ]Ķèè
-.å*|©»L÷$z͸¹/׸pAåzÒ%³Yoâ ç½;Ws¹áf/ÑCe+í3çìúl
-ª×öØm¨|8^Ã"Úúäó)¡¢»;DhYmÍB¥\íä©Å¶,ïtéÙ¶ì (d3±~CÏ@zÌ&0h«%<ÂË´ö{#ÉÇlÐÀ{-è°Ú|®[*
M¶ôAEmÕMmVÊ»tAÚ FG=«Z+³ÉtúôħÙõCÏì}wßD dàád
-`x¿Î¢æ´h»PjwÉÀÔd4Ãûâ³õNhë¯BL%¼@[¦öÆTƼ+`ÇDCÄf10MYâô¾úWïʰj&ÝDM`©jP8âH¤þACð©ñHÂ}/TêT_SS¯á@=õw&d§¸Ú(åRü|--ËË6ý(Vç`[ÖÁûâ9{À
Q78Pg,HÿOl
-nÛáÅMªµ¶®e
t"¯Q ÒÙ#¡ ó(ÀÛ¢å"Ñ5æå /E833qʳª\\Yn `.*S|y=â\ÖN^ÊyÔá´é?1 |ßÜå¶D,·=ìÙÏïë]ø)·»ð2¶w>r÷×â.ÖÇr]~ÔçLº¸¿¸gÆÓÍìá6¼þ
+xÍ\Ë,¹Ý÷WÔz Ú)¥(
+nwW-¼hðÂxçÏÆ¿o½/I}Û`=¾õPêq"âÄPM¯êò_¦ËurÿwQÚý]wÿ÷ß.ùåò¯ð¦ÿßÿxyû|Q~]/ë´»¿¿üéi/J]>ÿëmÙïWs[Íýªæî6¿2»Wåo~y|¾üJÔêuCîeH忬oé¯]>îæ¶X7Þm1ÍáI_ây¿îiÛ¢üxëÆ
+ó¼ºûu¾Å·â2÷ð7=\?ÜMÂìá³îJ£§luHëG㸵Âʦ4U^IÓ×åQ}U[c%eæðÑ-½q-}e<Wߦ¡Ã¢àV·ùéå§ÑZ ·òáß7ÈêþëÞxoÇ-Õé©q~ñ)6-Ô¶NÓ*K~~ÐÏçºìË«¦}ÂCÊvÀ¯ÎmH\ß[Ýç4ݰbpf`SUÜ`àWqÍà¾Æ£M£W£é@Ïíø":±x¦qG÷z,yÇÓ¿¼AAP¹»ÓÜt
+x÷°¦·=¶?iÊ^¬oýj£þ¦_7Ñ=Õ³p6^qúhZqÙöâ$"f¶üqbîuwË!£ÊZfÆöÇ´w
+¹gî;fÿ¡ê±bø(àã×ÝÙmxÙ¦N8ŬÉVøt°{38Ç×üdOi;qdN|kAÁAñ¢FqÝ%ÆÕX_ÉÞì{qáy
b3z0xGö¼0j¡è4¼àÅý/iÂ
+êÚ<ðÕzÚÁoxàztóÊïÀÕÃC§
+>±Íu
+Ü(âW^v`Bq G¤`ñS<Ù´_ðPð¾¾Ï=ÇØn CæOÈÀ´à°
Ç`ç²$tÊ|°<Ç®¼Å7¦Éq
+zæC(ûj)Jâsb6ÕýkÎ>ã½$ì´Fkrê_úÌ%;jip¢a]E5`B¤ø¡çFy¯4åO¤Á6'Cqq8>ª
3¢dò
+ S9b&¯+.èÈDøvÌè¡gYçsØâe$Òw³9\¤%Ã&âl¾¥
=¶báÙ
+|vISÈb|ö\fv`§LÚ¨â57d97?ÈÒZI4åU³§ÎÙwßd#Sò5¶~dvazÂt×ÉR^ùiÝç¦téSò¬o³"ÙRvÈé¿Ra4~Ó}ª1m6ç°øçõXg<ã#Ìb*ÞN>½îiTè`ÖË}$A©+ùcΩÞÚ_Á<.k8)øõ(DÔ·ÈYHÆî½w'çôsVàØ¥èt<òÞ
+¬¦¥r¹ÂÝâ-cÓk°ÌаúCôÅȨ~ØÁC$Ô2Y4Ï!àΩᦥq=AìPy
+e:S¸)² ÙWâÄ=&xnQ«lP%y ý eEÀ5Fg-n:Ü&.4ÊE}5Ò£*>
+Âãóãè`¼É5ÔóN·Â¦öb¾ú!H§õvRW,Ô-ÒI%¿è ÙUîЪÓb7S°¬GȵFá |WBÌtV=ä)ªDKÞs#Û Eõ¾|q´mV&@e.³¼¬½jÆ(2<DbɺjP¦#}Ô¼ô¨ìo©éc¬$,\ìfØtA0$}&sÒ{/¶àÂmYÃ>)Æp³JbËJ¼×95ÍÊ#«G©«ÆôÚ¬ùçnu îËkÑqaGG˽MVhnj%Ýa)¹IW4vf±¦0
+=À^²ý¿¦jÜÉ1ôößÛYÜ1qÓª³ø#µ'uk©$ÉAçÕ³
ù&Ñ6Îæ9?j©µ½DyXÉ?@¸KÕúÚÜiÍthÒÉ$Øj"ôè|/Ó³tåéD,¹FÙÔ±7~øC¸è
óîc
+¢ý~?ª
+`ÂgÞX쳯w4ý*9JÅÆYÑ ¬.\4¢$¸!;è Eºw61Ñ o¨îÌ©"xVÖ¥£¤à¤ât*U0mÈî± &ßÍ¡16,#ú¨AsÛݸ¨x7-
+8R 'î)¶ñMf4
+iÝâMB ]-pd°ÇFCÇ*½¼õ$-Ox29»Ä¥¬m¦,ѳü¡^Å8"K)Þ9æ¬á%
±[ZTºdMïµFÝq¯xÈZçË7þ:ßÍèû|Ã,ÝØ»Ðø´ÅûV³2XRØ)ÿR=wíôpãl/Ïí"ó n7J¿ÕHZÖ{Ñt.">Ó(ô.Q»
+âUÇ<§^WE4!D>væx6x¦úÄ(Xÿ
+'¥Toä³&Îûoèæ;,/wEþÈÞ5_«\wïBغ¨S ÃÔÃ%8ö2¯=ìÂ3¤¿Þ!úùáá°Ì<
jZ<ÍE5^q°(f£îH±r#uïgo¯b)@Ò,°¿ÊzÇó¢»Hó..¦úé
+GÄkh
+¿*v1w2¤÷:}¶lxóÓ-!]í8JÎ
+WÂ{¬ShæaEÒͧóÛF@ÈS3«
+×âhÇm¦Àåª!<zr-óO1£ùÕ¼Ø%+¤Bù"8i±3/ýK®|\P#lóús/z2Y+R5EéPßÓÆ0ð¨ñZ¥Rùú¦ktuqÑÚÓßÅ>¬îK´ü<Æã®â7ÜCô¤v¯r¢ÚL7ÃrbQèýE²MX9zÀ ½©ìµ*~àr
+ N«ï¬ó.QM0$µ¿dn]9gÄÍfqåh8?÷!RpC/ãÔ+Hkû7¸·üz5kÈÆÖh[¸¨]d.Õ£©<¹;£òPEjb?= »¢¸£m_²{_ÂÎ{]Øï«ÅôNLZ®K@)¹t #ÛìÊ(R??UÈCÚÝ«â2P¶_W±¼!§e±³Ï¹FÎZ¤~ù6):fQí_!ùR;.aµS0L1½
+ÀøWTM:ïqì³+¬Ìùö°ÚÉSýöõVÎKÁBg*Þ·5©·¢Æéëî¡aÿÄ à*¥&Q¯êQ(÷´¸t^åÛNuYñÓÁay0ÍÑ-]iS óX[É
+T0cM×AMd5Áâïb9e;f赤ëú[¥
+FjØTNÎN%|A×
+ÊÛX#ĽÐÇhXø}nüõ>£s»ó|Ùl&åÊÉ-g½Ma¿pl`ßÓâ`05{cQ¡3í¿Üã4-<s0BLÞâ?2E
endstream
endobj
188 0 obj
-3344
+3768
endobj
190 0 obj
<</Length 191 0 R/Filter/FlateDecode>>
stream
-x¥Xɪì6Ý߯ð:ÐIÖ`1ô`/²{ÐEÈ.dÈÛä÷SRUI%O}ßÛj8uê¨|ÕUwÿ~üÓ©î¢àÖk×ÓõëïÝÏ?tçéïë÷×6î:tAÅkè^¿u?.C»×£ÒÓë¯ùõñe½ÁöíÐi
-;~]?éÑ/þ9]ìèÝtÑz4jº¸1Øô(éÒ^ÃÑÏ¡.fÊ/øÖä§æk,oÆ
Î÷yã0]bzãÈRzÜh=DàìdF§à®Å¸W¦Z-~ö>Çs*!¸´âwy%%;¿Ð/±Þ S´Å®}ý´®Uæj$ºÚtZ¥è¨¬
-*èÁ¸twPëTk 'gH
-üÒ=¥QúC ;Bî p§ý5îøMVÎä£xÛH!Kq¡8.´¡+EèmSbÄùyÄy.@H£h4:Ér|ExÖD£3®îp«+êD3ºWú¬Z*'-ôO[¹
pg^° ;ÍÇ §JNÙtÁú)È4Ï£bSé×ï.Ýy#
-ðs4m&®j&I_jãÊ~ß{rÿ¦õ<¼¤k×-£>ÉÚG!t] Þw¦h1,ÄTÂMAÞÐ98/V%,-E ²õ
-_,4E¨c!]7«Ýí'ksr®ÖÐ8ÎÅÊÃÕɾµÍúÞ·d}þl.+tX
xõ¨cN ºº4VSÍG½k¼õrÔùF'uÞ$ü6Ö\í6óòøÎ´g'NÉ+ÀÀYÛW6á`5@¦ú)jIô3!¦\z§øî¢
-Öùªº§µ
-E^Á[ÞñÖ*ßãÚ[¾æõi
- ׳
-yr´#N ` ´
-óø#ÇgèÙ_ç_ñ=ò¢hLðé|zOôé;¦<D<KnKÚ˳±
-lUÊç}Ïü~H$GÄ ¼¦'+æ-d?fIÉ1:µ7zÚC)QtÉÞ'3*®8csâCÊm
ÑÛZfD©TX] þ«4\[C1Ërq³¡p)´YD]{(Náw®:Þ>ß<Æ
-xhIrÀ\£2_ÍùÕ?dX²¹3¸ïNñT LJõF<Æ(L%×@HG³d.&mËÿ0.:>-+a¸_
Ð3?Ö½P#Â+BR>,°öjþ73á¶V
-¿{<Ù±µìÈ6¡*R
-¤4ÿbÊüò 1Ô.â¤DÏÆ3¦ÆÒP êL¿Sô·4 j;Êü/álT_
-øfòv<¾ÍÛ=YËýuo
+x½\É#¹½÷Wèl at 2É$s]]ÊoàáÇ|0à¹ø÷ͱ1ª® éL2âÅö"Rê¦/ÿûöߺ\ÿç¬]¶ðúÛ¯¿þéòøaøï·}{ûø¦¹-Emþõã?ïî¢õåã»ÏÏÙ=®ú>Oñ5þ{ñÿ6ùuÖñã_ý[ÛãºÝz\Ýݺ¹;õÐwgS~sö_°aÍùqîó®óÿï¦lü·ÿ_mE|Qz/}ÓáMW6æÊƦû2çÓC¨tEú4¬¥§üN9vzµáÛi}püW9
m·ô²@ûÛá çWðam<«ùáßµùðdw$º[[î²<ê2?Êk=Ê%;7!]ã ÷Çß?þòíùñí§õÍp~ü[º"hÞfÎFªªÒ÷Ó+
+à°i5·{¢IÖ@£Ï6yGè
+g3¿¡%ôÓ)uÓüî½ç÷öyÊ*zIèn¸rwg½7,Ư7ÕÅk +ò¯'}Vgëë±õð÷æZ#-~wèc÷´¡,9¸Q"l}¿·"ìb"~·ÛD±xW
+5T$cbz´YiîñdܧmȰÍhnÒ^ÊùÂ$3,Lv qÃïù'`¯êqÞSt
+ª!åKÛ
+µÔ¤÷~ÑÒõTpï;[[¿Ã86c#@óCq9Ô|» Fßaö¢^=T¡§¬ý·%ø-¦÷!f̬ñÙçD/ø:õðÏÙäðhõlV×Xi+
+nH%¢L,¢Uw¡uûÚ`Â2?Ù_/È×ÇàÍlÐAAjêDëQÁ½óu+ó<òwýSî6:¢B<åP38å
+Ud<·0ÚæÝ¥ÝèWÔV¼0ÓÒ³MBëT´S 4ÉÓîô.oyçµõhúf ÇÉLrÆ([BQ&Òu9
+ruúÞÏGGÁ7n³,®t¼`ºäR&.èuìíïìxYËdáf®¥H/>Eªw!*ÛQøh«VË9ÐÜ
FµâÒÎE÷eÑÀ±ålPB´ì\7ÓÔ3,V}³ÔtêF¤
ÎÆµÍ
+ÃêP?Ï]
r¼ºO»e¥mbø(±UøËßã㬢ÉVʪ`Þ¿ú{'i/æÊ·©áñ¤dh (¡Tz÷³§÷ \ýC?2³êÓ¸ÄudÁ9ÉU¡0½CÁ
+WWvf¾fÃ9ùbPU±¢®¿ùéιֳÙv´c÷ᬯ²HT9Ó=ñ°lÃ`ú®v¶ûÌ
vmV"Êg´L«;yÄÒÒrzï-ÄJ: xHÀÀÄ26iø6¿[½M«0ý[V®5´ä)õQþa½ýÕ7M4«ß¬Ì(´a¿vò&ìFÅøYSY* Ts¶l©¬Äê\!)×ÒQå¹2±ä¤LäÕ
U
+MEÌ¥ãäóOìÔ!g#&éÀþJÃéHÅÔ×$þ·ÔOhK7ôg¾ª$
+|?Dk0¤Z¢²ØâÕ¤y\ëQµ2Ï_Ý(T7{ØMRVÛ6I·ïñ¤Ìèýëòú
z
+Ì¡@7S{
+*ïÂÛ-éé¶qÅLå
î§z#²>ô±%ÍÜõ¥4Ëi¬ ú4CÍö£>[%>aY!_Uù·nË'@EèÆ\Ë1oÒ{Y#¤ï±Ylægá°%2y¥VÏuD\ÏCdØ1-È"
+ï²¼("KzV³5Ã8ú¥ÐÕ£nm4)¡øC!>ph/J|Ú Ì¥ìN©)°ögÌÊâ4
+Coc`³²K-F5Õw5 ìNu0^¼0©<a%t8x~gmÛ'±@÷ õK®µÜë
+\ñÉVÙ¡l}¢nìPìºÂ=æãÊçxÀc6>:Ò¯"û÷G,êOÛô(ØÄiÔ¸£9h»@YH8è°,éÑNåw§F2
+uí8
íÖô¯½¸rG at 3ko> W¿[4YÉÌ#к=
+_Æ\IÞÿ"Q»jðÑV
+BîUkn6Èïbî]/jϹMÈöÏg©÷î#ÙúÀr¬[¡~>09¥DÀ0?$UMøA
+þ%Íܱ)TãÁ6Ëñ:D£î¨ÖÛÄͤ;eñº½d¸|*MÔV{ù¼Ãò9ÀO
+OX)¹QzÈ\×8Ù9S¢
+L*ê<¡£Çmñ*CÓ'ò¦Û&hväLõÂçq3¶çj,þUyç BQáqH ¯¯ªPÁëÒa¸4ìJÖòú̳Xeñ.Q/åBoYêʶ#>ÐF2Ù-Þ7Ñkxê"=ÚÞý]§¥j}v%¦ð
+%QScTÅ'Ás*;É\
¢,fèh®´Ù²aùÇÖäPÜýÑ@sEU?mlçSoD¼8$ri¦î¤óÎá ^²ÌxDMÝf(§¦Éà%[\*æ©ÃVßIÛ££Ãî§Aú~Às:üPÌ¡FB<UÜó1:
+®ûåò
endstream
endobj
191 0 obj
-1630
+3600
endobj
193 0 obj
<</Length 194 0 R/Filter/FlateDecode>>
stream
-xYÉ$7½×W乡Ê
-í EB߯nðaðÉvÇà¹Ìï;6)[U÷0PhåÅBcÐ}Ûý×noð3ÅßÔÓï×?»__ºwæés7ÿûõ¯ébqi°¶³pèiÏÛ£¸âüºóÎBÍ¿þÑýp×Aî^ß>
-{{4vØÃѸaÆøø3ÒgÂ9w4yØ#ÀðÛëO»ÛëîÓL3é»
-&£§]ÞÐoG·ýAô¢×¿×w$ûbZ|e`3Z¶ïI{äxbô¢@C=
-!üÀ°{Ig(cwrÜKì5bwþuü{+t¿~±PKkH
{
-
4.¡õk>UYÕÝ`GæðR]qWVá.Àæ:«/ì'c¯ÄO\ðúÚÒZñû̶Ø}Ó©ÄÛC÷¥Ëùàèëî%1mÜY
-gÑ ôîÞÊøÔJY½ç(xZ¶ýH£4Ï cgT¢YN$ÙiÔ-×øfB¯ñIÌ}ñ0êßfp/{mqù(iüo¡òµ2ÊV^Õ£5ëFZKEÀ²P=&Ì$Yh75C¨_¼ R¶<®&1jÌT8yØØøçÂ@«Ïm
-°#Ð$êiWÝ7ôâ\'öW}QÖøíÂè%ìJR9°·-EXÝóó2d ÐxO1öTP£'K"¡z¹Ä8f;ññc
-§²AÇJ³l¦¥L'¡âiÌÄ{4¦ëxE²W\yì½X/ÞèxH&n²]ݲØëoê94"´cåêîM]uS²n&V--Æ¥£ýU!iôa´)T at 7A¦®
<±£kÊ4Äkv2µMqòê¢ÅгP= þª-¶È5l´pNÙçàÓ@KÀSª®b¹.&ÁÛ>ab48(~Xë°»5:[
-¹jù²r=-eì1Çe}KMV
ø-B@®°à G}ª·¢£bÞ}è}ü$lÒÄíhRèÚj[&'uFp¾5ØÀ*ÔþÄ'±¸vÖºVWû$ï¼s ͼj]Yiñ¨¼ }Ú¨µ
å}ÞÔ3l®®lªÊypþ¤=
-rå";9z§ì0¯ìîGϵ*»áþ|j¾«kòÊÑTo:5¨Ò[BI@Êjxt»¸^
-Zdêñ ó]Öc1Nóæ¯ÐÔ!-`ÒÎÒ6×ñµÆø^Ú¶AÇKÓ>ÍÛzÿeÙ¹¸NÚÔ´ºE>LV~W§ÜöDmk\»Tä¼Mª§hhz±,úFÀósÆØEjG¸bÇ{Ú¢hq'®½©`[×Ùfâf¼2.Éñ¬õ®¾U:¡MdYà»ÁRÚ3îÚÒHJ
-ÓjkX!©Úm¬-#Ôh÷ªÜöM[®¡r}µ÷9¨G¸ÖözÒCFع6ð¶÷?#¨@Z»Î7½yeíVVJÁÙÎ{kIÄÅ×)Þ<#1ÝõIy¾ïËg,NqLs^¶¦WA®yb¼HVG\E?-.vòÜЩ[éúQ²jãiáIuÖ¢nÈwò\¡ÛÑÎKóFÔÔ6÷-¿Oë >ËÈH߸9¼[<ð4ö(9Òãèn²ö¤ì&b0%Á8ª!<!f~ ÙÔ#ìVcã<ãé}TpüøÂ)7©ìÑoK-tÝøÆÙÉb/C¨ÆÈÈÝ]N70ÂfÖÉåp´Lúì
+x\É$ɽ÷Wäy R¾ÆI at WUÆA·nÐA ¾è÷廹»G¶êîX<<l}öÌ¢Ä]Þþûí?7q{îTîçºû?~»ýíÛ¿ÃIÿçÇßÞ¿¾I±ÝV±ß×Û×?o9íMÊÛ×ïça˹ãÍým7ùÐß|ýõÛóëÛ¯í"ZÝv%7û°Ö-¶êãM==,ø\Öãm÷§íc~õxzÝÝ)íÿ¿l«r»;Nwè\m¸@¤[>ë¶Òqõ°T\;i/áÆ°uI¸çh÷ä´!uÜA\ìÅGÆcïxñÅ/NÅ÷q{K³;ÏKGâî¥ÕÑáæôþU¤âáz5ؽIGã¶âÏz[*mÏôôiÅÆêÓ?àë_¬(glûrWþ· Ûøf[zÛ%xIY²ÑN¼4èÃãDÏ©t³&öp6f-Ý·´dí~ÊÉVxÝ£[زLzîæ¦§ú7ÚÒCâòN?h¦ZRhi#Iëé
¡Ödtâeëz
+ÕP½6ëRKaÀ4{^,{\¼øg2ç/gM¢X
+pA1ä*¶$Û´æÁØQÚºAÉJí"(µ©iIÓÖg
+é²YV¸¸kÝ-K<QJkIö>«W4PQbTÿ*»c÷âXPñJbIÁyÅ9Ûæän(°é^³EP²mSM%î
+¹ûö6é}1Ì3çz%XÁ$õL¯õµ×ãëMs¨é bAI-
ßxýºl
+®k´(6b at QÀEØÖ_ÒELö¾0ö1µ¨µ
+>\ L/3N4%îKݲ*}ôÕc+æ³b.¾`üItÚMÉWOE¤#Af7¨UöÖn£0="ì@z={WGhYË>wAÉú¨/Z÷ðe×ÊpÜRدü~p7 ÷¬O?QFäAØêíÅ-!A3úc"a¨ÊO,8Ò!Sñ$Ⱦñ0+»UQvFÙ®û5ëÒ½Å$H%aæ¨óçÊ÷w PKÔåÈ7+¯Ìke®¹,.wPåOÍEKIBTÜL3Ý[HuÑ9æïË¥¤Ml
+ ít
"2Jàä2+×Ë .ê®#$DNGÜyLiÐ*edÛA9RØVÖãç*çL¾dG}¢¢ª2yEõºrLÓÅÌbö2þæø³Æ2è~á-¾?ÊÓ¥,woüÝ¿QGÈ ÀbøvÿÜüÙã·¥ODwWáeUK(¢ì@i:Az¶%9ä#:âµn)BÆ`nQaC&wWð«÷Ï£)¿9pKU(
+³Ë»lCoÖô²PIÉÐɼ3ï%8tªõrÌgn½Ô,^ç®a?½VáÄ&XOùõÃ)d¿HÎYÁwèǶ3ªÇº¾ß¬-ìxxhXI⡵L}æNçd^BÌEè1Ô-La¯Ì´óLcM.3¤¹I$jµóùbâ«Ç®£¯fÜËú¶ÿ±æX¡]¾¿5ÜtzÔ_/^A(r¥l4K.øð§×IÉ´&}#»bð
åí¤[j·$28îÄåÏú?S¼4S5$¼bQGÂ\Ã9@¾îÒÔMÁg6@ò`¡OeLÜRgòèçî®ßÊv5iQð.3KhNfOÄeßÒÒÌÔSÒª¢àþÑ!Æb(iFncí¶-bðdj'
2Zm at R Z<δlEo]èâÛØÔ¦¶#ÊÀ\´Ö;{bUOϦsùPj"=Ë`':QG¤ç¦.MÏ#XA] U:Ì,9ºje>B$SVl0`ô
+bAL°Sã9ªîè]Sο( g
+£ÀA©#¶§ù²úJè
+×ígØÿiwíµ¼Z~IU3íÑ4HÊHÿ}6wk:×.oU{C; þSaÍ=b|(åÀ4
Ú(]é}ØfÑiÄBví~®=È.
+ *ç£Íý £.z4õGq8®~DÏÃF@ñ8ê"`ÈÉ0Åææç8Ïdì¨ZàciÑÁÂk'Mo¤nìÃ6ÁÍÔÐÄNÇ\jÓQ
+«Ø=¤!ØÇÀðE=ÈSxgÂæÜ4ó¿Òý?úsY¡Ô¤W~åÀÝÙ³v¦¨| ÐÎñª°Ci'ß=F=3
+µ[:¹ÌoÒü
;'Ëyqgª}Óet§ëÊóͬÍõq"sa{[1¹JdihF÷rm® ÈÜãn
"»ÑWB¾%J5>µMQJé*`:2Ý&ß=
+í4dÑ6#Ù¶4îÏ;
p&4«z?Ó)gí_j"WòÃÓÏtih÷l׿¼
+S2·MnRG®GRÁÂÖßR>¶sc»&½OsƪáEkaòú§Âþ%1ú&Ï(¯;¥]
+ø~
+2Çàð>
+Zì7%¢µ`XÁèT8Ç9Q£aTX6ɦKÅuúZê°I@ÃÅ,áÈ~I>z
+I=̦Gæ²@)G C¬N§_¼¡"à+dä
+Ka&3õM{²m6VÎ
+Úúaq"Róp1êO¸÷ÊoãÍEÒÀõñ}0Fy;.µÞ©ÍÇ1úVÝ
5«©!ZúYh& É»±a"VçhákÆøVéÕêdrçɰ^®BÐÃ:ye©¶\xau´AUàÐrHÈÖ nðß
+µè{ ÍÄVÿA[IyLPòI}ÊæÙ?Òêu
+/×,^3áXo]+ðºÍïiª/NXuT¿¶Tf/uâç-JLÇsCn uÛäÒY)}¡[ïvÉ!
Ùüv][!BÃûÞ.¹»SXHwïË5vø'äM ¿Èø÷Û¨WÚîÖà©òmø\¦"
+j£Ðò,u2mý5òqþ}!°¸:ý&SµßÄÖ1ø>m{ås0_8t¼X(v@åd
+¸=ĦCÄ$F6dÂHPÒú¶Ò7¼:ý·¥õ!ÂfDè
+á[©¢[æI#Ãà^ÛßÜÙñ3ÕÌ^¶ðÌ=©N¼Çÿìá?Fì*ÓØ
2{½¯Üå}k¿-®ÆXnþ1ã~üvûýo¿ÞþL
endstream
endobj
194 0 obj
-1666
+3609
endobj
196 0 obj
<</Length 197 0 R/Filter/FlateDecode>>
stream
-xZK«#»Þ_áuÀJj=ÁnÛì.È"d@ÜMþ~ªJ¯R·ä¶ga|ìn=J¥¯¾zHêÿ}ý÷ G
_hüô3}þñûá¯:ü_Ò¿?þõuûþëNîàÕtøþÇáÏO ßÿüÛYËÎÊ_æ¬æ>«årÄO_áF¿-ÿ
-Ìåïßùz|ý¶_é?¸`QÁ
-ð¤ðzP[?ñ-õöÜ[ì§n© µðÃôNUëò{¹L´¨AÝy ¿ó4
-`Ï`@U¹p"Ði~{WÆy¤±}VRlæÒ*p&Æ,7êu¢~ò©ØW½]>ãÈfÛãm]§º®¼8<˵îHu¤^s]Íj8Ü
-ÓÒØ÷VS[ón_í^@S먳ÆïáØÞÁ=µ©/¡âïÀ#Äï4$\éAÚ²¡öÔ&$<ñ¯Õþ]æ¼$¿h´BÇv"Èà8/MH%üxI µ,¨ö¦AEX!²l>¦!@+ÚRkNÂafLh;L¢ô¶gw,½åmZ ´B«ÁÅ<òÊ£YDÔʱ u´igÁn>cïm|¯²¶îuî ¨¤)²Rnй}ÇL´Ò£weh±óØìHbl
-§b¤ WÂÊFÁ¡#òÔó)Hyò9bÊ$|ÒituòºÔøg"7¶äbË^Ú)¢eÅMÆÑ0ͪǣμâGi.
-±; 1G#Å®]Ï'wÎÓımé1a_wvaûvöb´÷DÐIc ú+±eÒÓº_cå`×gK|aSEZïíÒLÙlâTCíb³æY(È´%;±
-ÑyI' æV>Ñ·ÑAi:sm5Ö5(;ÉÉÌXv§ÄM2M´å¤;mñ\5dó(%¨ìæäUg/÷rëìÉÑ@ñ:È
-øM÷ Wf6µ*°pÂ÷lN;(©êY¡±¾¤6ZüXÆ,³4g
-]
-
-ôK{¸BàßH[=0¥
-ꦩtz¹u}ßw2s¼+¯¾â¬FÑ£ÂìV6naõ³ßÕ
-GZè-ÜX3>×z²8ü{fùFã[ÒÃBß óÖüNEPC¨
§¶ô¢W¸qwöà´Á`õh
-ìTfOf-¦=®)þE<óèe´ÏëÞY3B>wZ{ÙÕ<Y'<ÒÓfn}:ky4Äí[»a¬Éàç$+m6M¿Ñÿ»ßÎÿÖè/3LФ#ü¿oɲÑ;Z£9k¡'z(nOb/øôë,«´h£¯åvzÍZïHn\zNX#ÝÍÆµÒêçè;N³«AäÏ
-éì×oÊüäõæwCÖÙXýv2ÅpÂÊBõn;´NÆ-§kµÔÄТFïÑ
+ò4AËà:¥wP·îÅSºÑð@õsüø ¹êÿøóºã¨ZéÈ3ò{Þf(¾T¥dâÜ9Ï®ç_`duD&TñSzç:hØÓõ6§ËPRäy³ëâò.kÂ6Q m
-Gl.¥ÑÕCî {Û½ßE7ÛûP='°ã>È5kŨÍ539û©NM³rfmt=^.ùÚÊ>®B$úXª¸
-qH=U©Oë×>^xârtÖEõ°nÆ }×I®¤ ÃJÓD(ܨp
¶8z$íÚ¤özŬ)ÿ´AZ8öÔ`
-üÝ`$ñ_)(ÉÓæzN?âcQóWWäᯫ ¹×@"õ£{Ö=YyAQ¥Ð«²©8
Nº5nb{ñ?¿¦Jvq5ÍÈèűA÷ô¸ÖÙ¤Ö$-òBîp9×^acJõÂë~§¶¾:tï]IÛ]
-éGÿàeæu¶©®çËkù¼§ÍQ0½kï3a=A¢ê][ìì¢Íl/¼4¶4ïc¾4ÜÍ÷oËÔ¢¯Pqf{_n5¥tv¡wM \ñôÚàg£òÞ¡²fÑSÝÈ'V`¨y¯k÷ª?á¤Î¤b8çÜûèÒå4UãÏ)?Âé'E;À÷ÔGOº38u@h¢«ìaB¶oï7¾AÆÍñîwý~;üvÏ&
+xµ\Ëû¶¾ï_ás
+¼#æRåEò¦Ìöë×?Þ_o?7ê5¾-zý_ÿæî1¯óMµQOquøêY9m%à »´kÒ?X)
+[f©$!>:2êYÉå¦á¤ºHN õ¦îbñÏÊ'§øCoÉYà%Lâ1SGM½§c38ì<HNóm¾ÌVfuÉÔáAÆïÕ|nRܧ°[^ÞJ">áDú¾Qþ»Þ3¢'áÆ-_,.í7Ú`43}ÑJTr<_<y4l¢'¤\}äÿÅîüËXàävUéd^pKy|Zvßϲv3Èã'·u+ñƦºÉ.T¶Ì\ĸÿ¤¶zèpsu´= }[m@ÛiìcòpÙ¶ªö¼ylÄ
+òñ¿XmKyáÈtõcÓð/{ÓÚBa¦XÓ¸øÙâbD v Ȥa`(NS¾@Èãâ}+ÕwëQAÄb8Ï!}á
+ª4õ@ õ /ÒYêÃò2@,Ù|;Â×vºMUø?Ú´pÁóínå·rXÝC.9¹ Ûîl[]ÜyðYë=ËJQÿÔÎ×äïã#ÖÞÍèÚf3)&¬(]o°5UÒWØsÙiq¢#ÍcíN0é<¡»êì-öËû
Aw>35Ð;6α£kUÖA(µ¡]ÍË¡B,
+~Au©®`("cáÃöêÃððð]Á ¯æc
+*÷$;cqxJFÖ3µ l=þSj+x¸G´²ºDÝ>t;ÕÞÒ¯¢.Àÿ 4¸T¡¢cðÑuQ5
+sN½u>Í<3eö<ùºQ¤¥5©ý\$a\
+ûà·"ZAÏÁPÄ!´©ÖÞ
+åëê&1
¡ñè
äµ5d&K¥è²QXÚú$#9$®Þp ZÈv$µH¿};#)@_u:·ìÕ4-8Î1àbg)g5õhëÓaifFëA$0ZzmVÝ|S$0vÅë6 ±ÌL»iåärºÊÐÖ¡
ƾ*dK¹e0æ'3ånHo¸Ü¿Ö-Z£&&?2ÎP S}2*fÛYö7¼~òi¯q1ÒT4ÇIm BؽÅd+|®ù§Ç¬>BÀÅ+*Ýàï·h?f±Än
+tErÇÅ>¤£ZÂÞTYòuñ;[y(¹g*á9ÆØB+ïwΪHw)dǤµxN
¯3¼aÚíе¬ñPåàÄXÝ¡4´ôØMpÈ 42¨HânÐþ$ÔêóÑÂB£*@¡QâMJ©eÐ$QRÇ,8hJwCTÓm¹IdÙÚËê!dOFãjÉÐÄZôUßiIÛ?ų a0KlK-wĪA2Y3dbÅë>ÝQ<o
+÷_¨«AçѪ¶Eץܹ¶Ð&SɦÏ"#¡Ñ)MZW¯Hgk}³geRý¸d419]2AÏH´ÏöÁ㾡_Ý9Á(J!¤Ñ§ÀÂzÐr-¶Áï`#±É{$^Ê_Ì4ñÒyl¹j(ÌSÕÛ¶zPä>´zé{ЬÕ7ÓmÄ8ípª¦¤F{{)ÖÕt©õ±ýÌ0?IàÁ°³ÌçIê;¿pÑaHçWïBÝìÒ'ªÄÚõ:çf;Ñse)±/·È8.@ø±Ïÿ\2/Y=ï£x^ÎDCë°ßô=ó\QBeA°Éj ã(¥Åí¤6óg¬Ýϱ_ùôV
/øÑ±@³NrwlvÑdv
+ô9!ZQQáP² ds,=d$R°Ë+)¤/ÀzÓu@_LnÎ'&m1
+ àܬd¯QÂÖ$â®!M¥Eï¦wÞLo4p¨°Úìp§t¬W;ç²^pÃOì'¸Ùp¤;6Ð3{-9=GáN5ò¦O
+sØ!3CÁömPsdA¹j p@8íA{ÓøÐöµdÇÏ¢ZÓë± ^ï3&\o¨&¬}iïP`e&·É[á5Ûç¡þZ¡}ÁírÏÙ+ã˽ÇÜnåüÏpQù°¡É
+:Äü!¸»GÐs}Äê\Û
++PÍý·ØQðÈb#¤'Ï¿6a«Fe:ùà³BJ[®3}jzhÿj+\ªýé¸Ìæ¸ n:ùzXå=9\²Ï¬|&¿[± ©Ò.6àA®ËûÖýEW:ÝLR,N»µô"ÌÙÒIEÖ8 KB<¬Wâø3(&ôwÏ1AsðÀ!zMTlïñì&ëÍyJÜÆòÝÏìÂ(UÙ%
½.XVÞÔ1a!á°©ÝA´¨B,:>Õ¨+q õ»'TùÝe§Ô¸Â¨ðBÑdÐ\½v«â²ª
+îºC´
áwSÑúÐN¤¡Yèpx¤0Æ[¨DÉPÑCâöÆÎLC½NìÙ_ã@æêyNZçÀFG¥¹2ûÓÌâ'vaÁO8Så
+Õ--adº´.ún{úÏ·b¸àÅðVn
+îÉ{Ç+ÍwU
+ØÙ;;Ò*ÂÊ.$ôkâ^ÛT#ËÅÒaï£ûùkQ¬áE /sÔÍmöd&ò+Vzz*±i5¦Íõ}Po°&^gDJ»åþ½(h´ªJéßj7
+øÑ1ªò¡XN8AÞQ¬7æ=8OÂ[ÑeçxâµAÛ*MØÆ¨±û\¡q]à°uT;)<`Y}
Áëñ¶WÅ}ÙÃ|@å¹Â¸¡æc.Öø@µÇ¶TçÑ8é;ÛB@=úôxi6%r?ÞÀ
+~®ùÛÅ~¤Ó,N{!¢¨qÒ Ì¥éÐõì0Ù÷BÓ½¢Ôp©"oaAW÷
Û¦âBp§Ù-'ûùb#7\ØJ¯uq£ñ̾D*ÐÍ+ÖdJj¡KPáox6:RÆ.þ²Aîtª%ê:Я#åêbTFY}Yz¸ÌT¨Ím@¸Ù»{^wáw6ÝÅì¨è¿hn<x·kû{¶fY`ö²g®!!«ïñ?Öð1KëøèÃ.*;ü¿Ê]·,I(?êeµÿ?~zûùò)5Y
endstream
endobj
197 0 obj
-2771
+3237
endobj
199 0 obj
<</Length 200 0 R/Filter/FlateDecode>>
stream
-xÕ[K㸾÷¯ðy;|m· ·MÈaS
-d$ýûa=HeRÏÎ4¦J¬¿*RUjuÒ_ÞþsP£Ê?6ù¸þ÷ï?ÿpø÷:-J/áPþϼ¹tJ`C¾jíàó%Oùù7ì)0ÑX}²hwZ|?Ñu
¶í²ÜL '8È´Õ<ð üËÆ^?ß´YDTîðù·Ãïz9hsøüù§³º^ú¬üåhÎ*^ö¬nøÛ\òåÑ^þòù·ûçÛkÞÊÙÉg§#wM$æúy<õ¨3wñgoPÞ#_5ðgµTý
-ô¿¶<ÿm!Úm¯5àþ âóÀ&|sØrØýz¬ØðAó
3¿Âã1Øñ:?ÏÚéÄ1â¾
-äVcYk{µî¸b± `)¶ô
-R\zr©c(I)Ñ£5'¼[#WëÇ8ß;
-.ÏûªÉ¾'ßöU\?þþ®mªÞåÕùrà]Gÿ:üéM¿xT9þrà´RåøËÁ#i©îÇU(P¦Ê½[eªÜ½
P¦¢ÐFC¡ªªVBU'TªN¨Z UB¨êúòE(ÐB%!*ÇEh£Ê1 4XS
-@sëÙ¸B Óº|
-,b©ºßM£{úbÎá¬æÎÁüíè?nð$Ü7*ßÑæ½4XøeÂÉQEOÁïð
-´ÛeQâª6ïù©H&[X|"°lèL@|ZìïÄ'Î/
-¶Ö_+y÷µ)QÕï¢t,ªNFuPà±WA¼5Íú(é©ËÉ·NÃôYÊ¿¢
-IµÒ¡¬ ß
¶WQ/{AV8×ÙY¢ØDä¦9µ¾Uüß)jRA]ÖÞY¶[oCÎO
-á£û3pñº åøòâcL²®
-
-ËqWÁ÷M
-d¹´D¤5gRÑU
-T9f¡BMk7Ào!д@¡´Qed9((ÆÄ&ÄÄ(ú%4j
-7ªq*Ç$RÐ~ãph$2
TªW¡*Ç,´Ñ$ZÅG<V¹©hD±³Ñ¢Å3ÍÚ>0ô.·¡6GÅöB®=ÞQïFÍ6¼çhÜÏz[лºRó(ØìY- sC¸ú+¿×aÑFkì¾ÞsÊܺ#ôjlÈä7je½Öóøm0B9¦slÈc\Ugκ2®$t¹ ¥Ê2í OÇ..r«IìjbãT7h:S[GAÖn|tI\f*²Vá¾SXþÝ+wÛXºÕNKUZcÕ&Q¹B¯¡8JWg¦©ÝÍ/9MæÊB¿Ú¿ç§è¾EëÌ òt'øÚÑ
-jx§¶=ÂÔ÷**ñúb}Ûúk[$
ZÞà¶ciÀW4Uש(èï{d-7Æ
-YÌ&:©xÛåNoÉ·(mÆ+é¿Ffqõq?m¬8MɬyþÎÈvqhÊ«Ry¾: ñ¬ån°:7ÁL¿¾Ó]׿«²ZÆ.ðøyßã £!ßÇ@¹Óïyö²pÌÛu5Ïß´\ò?ßòë°wÓÁ
-úUÔFVâ>F4Èî>2fÜ;®uÎbX¬_Úîõ±ÌʶWí*+MÖµ¶Ï:M¨bmf^õøè©ÖéB×°m}÷Ú«Î{½Ù¦ø:yÀiÈ6lø#|íÀ¾]$ûÔàÌÂ2lhÕjS
ov)]ÇPyFç¨pCרÙú
-ÅÆKÁÔM#£wÝäTak9ñAX;®WkÜ¥}}OËoݸu=~/D?E
-ì!ÊûÀæå¸.úXÞÇæ_[P¸d¼°IêüþjÎB³=¤Ò8úP*ÛÔ9påVÖÒ)ØIísgÌaòdñüýÏ@Tÿþô¥ü¾bzÈã§¿~7wuèÿÔÉá
+x[Ë+¹
+Ý÷Wx=;¥w`¸ÝíZd7@³d7I,d6ùýè-R¤Jåã¾í²K%ñqHÒË»¸ü÷í?år]üVHÿê¶ðúçß/¿ýrùwü0üûóoßoB«÷õâíÝ]¾ÿ¸üe7!.ßÿøýf¥5÷«¸Y_ExuÆùwò>ËM.ws³ÛýªoNûϺîùÊÃîðnñïãJy½xâgüN|p¼õjâÊþ³=½³:×Þ¯ª¼Æ}:Ùþ¶|Wú®ËåKpírÆôsw]ÈËܯ[ùj@þû«.[ijæG=¸½¯YzPFiçitë'Z}fú*Ø}<ªYåæþ·ï¿¾=¾ß~íT¬7¨8Üÿý/îdv³ï²3¦þ"pgóöU[1¤¤ÌÃæU¸£áÚLÃ_NVg,y;ÜA[¦ÝXXßäg¸Â/èJ*.6³d×Mw5#ðàbØñ`íNíaþµ*ì)ÑCw¸-ûø±UÿKæÿÓyÎ$¤ ;4î]¥ºË´ã#µê¹kKëzÈÝügÙÿëq<Ô
o'¨¬Çký8)ñ+ºp2´ä&·æÖ^É*>UÛH¾½V<£ T¨dئâò¤Wà>&ÍB2Àg2´!ý÷¨pú¿25í
+jpjÆþuëÍxÆz+*¯I@ø,b5êÃ
+tÀP]`K«¬ÞU(>ñ®Ò'¿qiÝMc at Zi0L«©õiG§CX!0)dïj@)FÝÅ,3ÁXR͸׳<î*à
+è)ã\æ\is¾Þ
+ß-10=r¤_$:(ßWASxÝ-Íé3 EsÂí°Â5¿4ó©9YEXÌ( ~
+ë&ù,)Õ ø;Õ²½|åÃ$Êi
+CBÇxNpà¦_¡«£B?«׶ î*Þ¿¾öÕðYNãg5o¨°Æ³¡S ´!qêúÍXþø?[?ÅðKÞ{lu!×æË dòÈÀp
+Ùr$p,¹kÇgªô)Éd¤~d74)Ø#jývÇzį"²h=Å
+êÓrê¼T²ÏÄÓ|fR¯
ë=¦ñxmdÈÀøÑ£Gzì!Y°±Ú"¬X/Z^*5ÁfüEò´{B¯ÀfD6ÄÄ.æC^.Êíµù$T*î°û
+ AùCÏ,Õâ xñÝʳ@ê¿Ú¥Æt÷çiZTöcòj,õ0[}0¤05!ñÙFÇxÁý/JXå¢ðº}-\¢rßÿ8æÜ=&9R¦×40÷×µÎïÌeëh ÒtC- V¦tB(ÅXUN[Î2N8ùèSÆ1Çé
+,÷R´=ÐKm0Fia&Ù\|hD28xî«V³àu1þ uØâ#¬ÓAÞµ1ÏBÖ¢ û5xÍ+æA+º3ôO\°%9p¡sÞoCS&{k0h9{×Ï
øfUÝPïp>·IXÔfæñ`%ëþrêÔ&èÐãyÕMê¹myWð¯ªçÔ×mþyóDRʱ"5¨«aZûë¡ý\f_uÐ<i§ó«ã2¬¦9pÞM_/\¿#¼nüìµ'56Pï@CY|Ä¥«Ï F9G1°»R´ëI¿C£Fpç¼Â9¾¥Í9ÂÎ/}æx¹RC;iÌôdÚ'2Ð×â8é^ZÃÜx*$
+ªÐÒ¾À¹A!øäÈFëw#y¨>|=6¹®>Gz÷)_ÉVTOxH)A¦²LEñ²Úh(ç¹äþt$EÀrrà©5ùéÿk=J²}Vç.JRÀIrкukJZÈY-ÏáÈ`djBB\©
+ÌSd
óë³°±ÙZ'áf²©mÚwÉ0pq\®,Á¨HÇÉ{(õiÜÑ/æ&W}Ò-ÜÚ,xÚ0&03¹:Âwç¡<(AÆë0ët8M"ÄØ^ð,Ae¶ÈÆá
{0í NOð;Dú+J¦3+
+Ïä:wKR8sJèCήãvªÞBÚBõ<µGbÍ£¢ÈPÈÁØx]j©lÇ ß`Ðù¶t+òcds]Åñ3?0þò!òfåÌ/7iHñlôÖæ Q°EO
+Ã.¼> ¿z¶3p^}Ï wµè|Èî°ðùOä9¤9}ëªWë Þí+l´cDfGEà 8À?ÖC6¡ãï4j#äß ¨×Ux 60µí«ÜÍ«¨ ìºÉÁVeAùiÖ±ar3ÌKøÿ%8åpG¿ý<(Ão-µ,¬¶º¬QP½-òî÷»øC¸Ûí¯\ã¨íU0*ªÂ°íwýínípó¨Ü
+?Ëcö²ÆgnQ¬Ëøæ#½Ùâ$ð£aWË/3V¿^þiÜ
endstream
endobj
200 0 obj
-3014
+2964
endobj
202 0 obj
<</Length 203 0 R/Filter/FlateDecode>>
stream
-xµXI¯Ü6¾ûWøÀQe```Ö¢¹µ ¢§iÓ x¯EsÉß/7-ö,/EQ$'["E~üHQ6è¿v÷¦#Xü'úýò{ÿó»þO¤_þèöÎÎé/¿õïÏ8Æÿ¿la7ÃÖÙoÍÙØy[ð
-DzM#3ÍØÙóÜaÆ¡,_u*¤Õ'úÉzZçaRi0´xXmËoöKÖ¸ù×Ëîté~@¯½>{t}íÌ&ö_ÕÝ¿ë©íÁ'^úXºÅÝ}LVP {PÈ,´GSÝ< ûQÿNsäéÉÁY`¨h¾ª3'IH4GF_ûT¡¨3åéÌ""x@:PÑà˳?êÊ1GÑô¡Y>µËÍN×µ1G¶=Lô
-Önì
-
HÇåó½õJ¹8mÒtj)Ð~`²ØP tHÐ×±XÉ aíIó
-¹¸à=`ÔG±2KÒä«%ÅO8
-5Öõ`aða.nÂÝ×úõ¾(±¬°q:Sñ/ð{âUîÝ0Ý©MÔÄ5uø¤ê1QÛ
-Ia*¹e-¿5«åÉâéb¶ÖóÑ¢êÿdügbJ¹[!µi_aJw.JhÆ>ªC6÷øö¤YlãqÉ©ÞAKÉ·eÛî^õ^a.ze6) ¡{»Ø%Ziþ7®Êùnk½ZT¯È9,5óÛ«ÌSÞù¤sm+pXðSHÑ8iJ:°þ93gn8ðg,ÜT
-þ"ì`»®
ûmÕ,ÜhèÁUlÏ9ÎXFºE (õkæË)h%
RNÖ²kÜ_£z[à9<Ënd±g[n
-wA9ú»ýd&\!A[ü"ÑO
-w["Kr¶ç¸-¬rËc]¡{Äà³åo0ÆL¿bLk¡Í5¡-Òl.DÁ.E
JТSÓóÖA[iYézÖ)êÒäcà_¶fÃr®e¼ò'Ùý$³f*î-©ró¨d)xj®<åÆ÷ <6»·!}N0x[5Bë"V«cl¹îôpÖêªM§]ÔNÑTWª¹¼£ÆÖqæySà¶Q,UÿáɾjL$2ÏJMc$2çöZÉÓÚ¤?i'éâÆ°që¶N(ââqRìar0wÕÍr
Põ>BÇ5cyÒɾֽ§g&_ZÀÝMîENÄK¿6L®XQê8<5ÚÎvlY¿º'ÍÞC!H±VÓ±µØ8<®Ì³+G¹?ìKqJ°`
-¸¢À µsK\z]Á³)Ü!Ê[wÒo%Wó¶+N´+B¹èÇJ¿
-mRÜ¿
BY. ¼NÒóY:x¼w{2v}s÷|öjùÄôùUï qvªGʽ½£
+xYMä6½÷¯Ðy }Kcé@n4ä0äd!È^öï§J%É-Ù3ÃÇmK¥Ò{U¯J^>öýôãìÌáÖ
+ W7âõÛì×'öïÞðѳõßo8³ãCLòaÄ9oOÁþ/V9®Å°î Ïo¯¿Ïg9 .Ä,&!ñ¢Â®FØùl&~{ütº=N_Vvw°¢5àYLÙ`Y+{·7kíh3NÎg5Yá4üç={Ú£9¡a?Á`B9pTOÎÖÀ
+Ê1>ñ<>ûɹiÁåàõ ɶO¶¹Ïbâhqâ
+mq=îWãva{7ÝÄ}x9Î6ÝÒãgøÒóAr]û`ÈIòùñw{LcÆëdzM p
l|ïtx
+ï
+çó«Ç4Á¾ã'
g(, 0î¢YOcàÙjÃ"ÅòsM÷iï´Z¹f¼ò
+å¤ÄÜp]Åã_A~Di]ú ¢åú¿Å4bßã«Ô9xñyîÿa¿lRÚA77ÎMôGÿ
+^EôRÇH(Ãì}/ÃËÙeÚ¢0,ç»åó[cø%y\ÆÞqôlë,
+MÊY¥}wZürG" 'EÊ&ªK¤®Ñ\BìâÞù%·Òx%cnå©DRxI¼*!U×ä?PÏÝ}h±oTG·^(YÑñ:©ãÊ;0N(éþ=WvÎF,AÃ#Ld%ì2O t'PðU\Ĩ£éeDPfÄüÀxö»Ñ¿èTÚÑô49sM+]d¸*ÌÕÅJÞh`ñöoî+Ñ+Õ`W·è]¨rE©«Eª$пµ»ý+ìþ²zó|±¦Ê4èc1zÝ$¥¶ùF:6öiQV0
+ßVnýÌkfwôÐðmI<¤]lõò«/¸íüÒXw5G{=¬UG¨ÎvÎëÇFÙIêûÁ¡Ì5$ëý»õ+çX4Y=ßêÖ¡P6ÊIÈi«nε
+lÌ÷bTÑFĨvb§ç
+jG½HÙÕvû[®Åû¸åsÐ~lc
+ÖJayßnr[»mFú*V× ìdãÒÉq!Ù,ëÖÑ[E^Éì3v.ÚÚ¥BÔÝîËs±áªÅ6®ëcH]rIsÝPÝ-.µb¯¥_oñ]7-¬V[I
+aµ'wޢƺÓ}G×ÊãX·¸4B%zÜË:¬ÉÌîð[ëçÇO»Ûs»$Ǫä,ΰW-ÔJÝo㣮´b¯¥xÎÝFÂÑyRK¾-Çô²E_ðÓG©aºÑú$GaV
+·l§@·U»Zëî,«BÝĵë9YQEY%{|á'iê@F
b(ï|
+Èü÷ûë²â6s 2ùe
+í¶wÝ krÊ]ô79eÝ`)
+hãD½,mÛu»ù°´±0³´¡7çC×ç¾,Ì"©¡¸ÇÖWíbú@?am*>yYÄ÷~×ÛÖWÂóOÌÃûJvAas¶áúHÔ¨½V·Û#µ{ÌbµwÊàøyLˤiùüU×âG[üf«ÂÇÙ`1~çE`~ØUøé¶{AþjÛ8¹ÖpkøâÃc$ÚDþB?Æð
+ëòdÛ¯ÑVgiZ>ú2qúÿ·§Óö?L<7
endstream
endobj
203 0 obj
-1593
+1454
endobj
-204 0 obj
-<</Type/XObject/Subtype/Image/Width 1128 /Height 645 /BitsPerComponent 8 /Length 205 0 R
+205 0 obj
+<</Length 206 0 R/Filter/FlateDecode>>
+stream
+xÕZK,»
+Þϯèu 'åw4
+==Ýì.d²ËM À½û÷cÙ,íªêóuzªlIÖã,{zW§?Þ~;M§óz¥ã3,ðüý×Ó_ÿtúOúÿ~ÿ×ÛÇ×rþÝÂdÞíéë§??=)}úúçß.n
+úz6ÿ¼Kð׳¾ø%þôþιþýë/o¯·_ÖÔ'ýN~ÖïK¦îNJeâöÉÍÌtÑSüÏ\Ì=0Ïà#³³Ü`J¬^¯yÄg iaòÄ¿l|©éz&ÒX®{óãØ6dCq2ý<7~SpB9+^Y"æïiĽÿ4Â~¦·
2>nH££:5+eäH9K)?PM½5yä G®à48aë
+@áëßÎãrMv,°v´vÒw@½4äàxø3¯éä!îb]t^g®êbuýyx~&ïá'>%°D_eõ9é£qäÈ\ªVx~¦ïÓºÈå÷¨K®Åw3rÎúqQ)£IñTknÃP×XËÎdpZÀ¼×ÌõKæMJ
+îµä}^Òé!GUʹ²ýò·1éÉ¿;É=*®ëìæÌhàD!¿½£¨)´%úP'¹hÕ[½>Ð8~+=t¶ÚXdÈ Ño742/l¬~%êeàÇZåp<ÁuòèD¾
Æ<}ÈØw³ÖjWÚ$9+ñú³§oëp
+}É*sÈt¦¥q{è}=/ÕWPbá
+¢eRÑï5É¥0KÈ|³´
´#½iíe¥B²²0»àPÐfA4Ý3èiw!âм%~Å)ôgÊ´ûÉ1`òܲÃc'&0ä¥d82 elK at XL¬úÕâö
+ÕÏ Ys^N°dLkµÁWf/n¿Å¶9x;ûØÓJ צK@µ¬JýÉt¾ë"Ú6ÐÞ@gª9¨¢Î3Ù'îá)¡ä!\[5È!.BZã }pI)ñ¢ïBÕ
+a±.ÈY¥IY½3&_´ËL[gc¹kLS 95}MïWn|à,l¼Ñ]-
+µ%Dbøk}zϧ×]ÙG~£äÆv='ÎÓëÚIW
+S$ÇÓ:Ö.¤¥OsÒÿ¤®I`}x
+Ñ$V´âôHÓàIQ
zT×sPQ0×~ÐãU]Æü~².W¤vߦKKJyuÙ1¹üô¹P6~²¬«Þe¾@%
m$ó²fVá«RD% n-(ojËnv×ÚR,Ã$\¿+ÐÌ=}XvÏ>Ãüñ£[ÞqLf{ñ´!&FB,Ì |°Õ_ãõBþôÖ¥üRòú¬>_ -c+zÇ4h}?WSÁôÈzsôAqáÇüÑ
f÷ãÁ.eµPñÖ4laG¿¦O¤"óm;O×7þvÐÏvn;áØ3¯øIÓhZ_j7°½ÚÈærcÑ;Õ¹Q3maTçºÕò°Dßc<ÍQ_f²³Ä¼ÍÔq³¾nàÉËõFS§ÍaÕ$ÚÙproÄÉfV¿5,pW®ËÆN7{ëuSgt.Ô4Þn7UzWôèR<»çMró¦n9áîTôF7äÖÝÙÇ®7ò°;îÑéw×1õ^GF©¹Æ·äÂ5ªS¦g_n*=ª6tþ¥«Î-¯+{4áVºtòä¨îñò
yi
+OêæþøÚ¥]ËørٹߩN0Dwwã,©?jÉÅzÇu̹ë
+×AXú¬NØDǯÔ^¹µÒsÈ
+¥h×a¿e
+&»:
+¹¨èò &d¹G¾X6¢ÛÝK[ò`¬
+O÷1±vP¾6ùÐwûzO¥Ê1Vu¼a×ko«oÏuüC¾¾&Ô©«º
+ÓÎ)f¹£TW©S¾ri®òÛoÃäê
+zÄç
+ì¯G´-!¬iÃäYûî{²Ìç´;¥b2îçÓKú#ÌqØðîïNæó~9ýd.¾E
+endstream
+endobj
+
+206 0 obj
+2591
+endobj
+
+208 0 obj
+<</Length 209 0 R/Filter/FlateDecode>>
+stream
+xµZÍ,¹
+¿Ï_Qç
î¿« i7¯{aoärJ² d/ûï¯-É첫ºYÌkʬ/Û?Õ|VÓo/ÿæé4Ç^éø7¬éï¯ÿþúÃô¿ù¼ÎjõSþ?Rþýbó2y½ãXÙø[¥qÊ/?¼(oâo$j£ÎFÍjÏ+½«'Z?C¦5ó@ ð´/Hì$Z3/Ù$ýýöþ¢0³Þÿ9ýé®ì¤ôôþËß.Îxw=éKÐ×¹~ûõj.ÞÀO$ëßßz¹½¿üÜruZô¢£ÀÙÅ"c{ÓÄ@©¯îbÞBaªÄ(í¤PÊ$xÍÜâï§Ù+1ÉÂH9¹¿{â(lß@ÖwÃ7ÄøNÙk§"1¾ÌÒ½EvÕôÐu¦÷ð-Ð.×Óú°¢Î\UÇ:vcgõ°<Eé=;|g¨Þþ¤4ÒÐ[þ§<îJ)°ñxñþñk¾#hÔY¨K®MA/æu°mÔö.F'ÛêìúiÍ!f3»÷³7*Iɤ¥å]:\ù&-HÈVD½´qFU1£ ÖgÒ!ç§JJRÙ0V¢Ä.sÇã1â|!ÌYÑY Å=Ï>ðo9º"×»¤«TÉ.'[µÉ¾ñ9pÍå#B]EFæ¿£Jô÷.ØD¡¡Ne¬èè?+¸ø«¸èç)Ýé6}Öq°gÇ{%8äÏ?¾ÏàFi×øêÇD;#þ;ýåE?&ÚU?&ÚU?¢JZҲǡ0B*÷c!¨rGB
+BºÕGsd¡8b¡B*ÇY(Så
+Ì
+
JTR¨r\ªP¦%¦ +
JTR¨r\ªP¦É@Ç/¦evÒBÍB²xUulªÃ Ú÷ö¾[ZûqÔ«ÃðÜ£}·á|R¿¡û¡Ôú3·M(µQÏ£64yÔÆ®á)¿ÞLVXqùN»¸ØÛ¸9ö2ØÀt(;`b¯Pd¡ÄÂ;ΞâEé²}¦³ðm¸YªT
»²àÖ$!qëký`ÉNmUâ>¤§&À66<îÁuÆG
+x¨IÎÿÇG¼:.ÓoØO
+"S§c
+üÈlp!E_G \]
+êF¦;)l3Ná¦÷4{(
m7Áêų]rÑÅ;צÊz.z)§N_¼Õ%¦¤o»Ø'&©ôéÛóâW¥o÷³éëæ6y9¦7B©x *CPDXyGÐÏ.¨^ÜáR'zé¬=°ø×RpUm¸xÀ.Ý25
aN9ïh¿8áî½N$wßÄÄå}ÁñÀíø3fåÚYÎaJã 6Ë8»=Hö6êÊòÚôVÀõLZÄqn¼üe1¸åüxjvn'páù¢aþcúDÂ#Ò\Wq²òl
+QhÞ ¢ZQ
+²ýhÇ@¸ùõfhƳ¹¿½
+<èç|"áHIº°Î7½¥Tgf£B9´I¹NWÔ¿
WhGA²ÁIÑãôlÜjiC²½Ê^¹ÑZ\»ÚÅVØêø¾l×5Ã6$ÈëUòÅÊwò/½´í`O#*¼Tí>°ã Èß߬x¦~Ä~ ËcPÈå
£¨E¢Ø¡{Ç[,PÛGzûIÓò8Ç LGÊ?üÛÀ<ì ¤òöù¦Àe¿æJs¨Oð/E¿þÒÙ¶ªjÈÐ@1Jf±H×s;fTÜõók$y©Ô¶m©å^.(!ô@ð/uÄsx5xÔ
+è66xâñÓ5xÌ:G«d0Gug*}P¨ra¦Ê1¹¶oÐ *|=Så÷B(QåB(QA(Ó@¨YDC
+aªg¡Lc*h Ô*±R ¡D%!
*ÇEh¡Ê1 eÚ§ø7ÅÍTÂT9ÎB*Ç(TÐdôolÒ-û3
+*ë-lvÔ,Öá×ɲFõ~øíÇɾC[Ës.Ù´öûñ¹Hǹ8°ÇGY¼nûy±Àm¤qjkÚçQ
<jS
Gm<?ßå2!dìýó]®>?¦ËÕõT«Ïáº\Æ
|8øt«Ç£w83-ÁÜp
1]µ4G⣴u$V~°4~ÞTXËJQWòþªóxɧ«ÑÖBG
+ÁVÇÃ$UófUO´Á¸ô=RÑ8KÆ·AUd °R|ÞãF1k2ÈfyGÑkúæºIï\µLÀ&-úãÑ:Ðɳ/«=ÞOÖ÷fÝ_4Ú
·ê
+÷´E[¼)S§KS×)5¦®Q¬? ótÏ!ÔС^Ï
+<'·¾¨¦°´ÓÄ
ØFåÃÐñºYbH͹;vܶz`Ó*ï9Ô¶jºyø*7µÞ\Õè:¥¿¦ËEaÝrë03ô;Æ hvh
+,Æ@©æx ©?êBþôâ³ÉQRÆ /$LdÏroó
ñ |Lm´P>8ø£'ÀËsEm681k¹'1ðøc9¿^Ôse¨çÕwBø¹T:UtÒÖ§ÌæT°cs±¡9$W.Ie|
~ÍÆå ñÙÛʶ
-Vö7ïbûÖýLckçqxbz³ì#C)hx»ÇÏø,-â§§jù:«}R»émjë, ÿ¼Qk)Q¶ï= oj¶1Î<Ì´
++°å3nö}Æ
+endstream
+endobj
+
+209 0 obj
+2839
+endobj
+
+211 0 obj
+<</Length 212 0 R/Filter/FlateDecode>>
+stream
+xXKÛ6¾ëWðÀZ¾ ÀëµæÖv¤A°nÑ\ò÷;C_²d'@±æ=ßâ£`ßgK+$üº¿_?²ßß±¿ãKüûú×ðü:HÁÇÀ@ñú=-3ËOLú4ÉYON9=ôd
+>9ã®BNã;-f5%2ú
·*ñ[Ô%Ë9x:qKÄê4ËÉc¥Èoôª3PË0ÿùú~8¿¿g"z&XëÕå:ðѳoäö¯?
+1*veB{ 7ö[ÐÆFp9:fϱ1Mh$Ún²ñþH ]ôS$"Â#[Þhb·7E5ÜÀ'CÞ%Õ¤
+(oìR4/Ç(¹òN÷O+½}Ú¢ílP'dzÇ[÷i
ä´)òg§&H/mÀ³T=Æ7¦ sõ2ÉKzFYÊSB|ÿ´³Ý§F{[?V¶S®®AZ#å(7p^¿lq²¬ßYêdeöíÑvó] !¦ãé}@7%×ÑM°ö-i\"J¡¨ ÈϳÁd¦º69Ky°rÉ¢IêýÚ$*"X\´@hâbñ]w±ó^ò÷Ìjì0«qc5Æ«ã®\Òº ¡{ %G
^§E1!OÂîáIÙÑla±kR!SMÓR´|M£$7v;®¤Ç¡äfêp/ý
+lÞ´°krÝe,±ª-NdçúM;m
+ô§%ëªÇ¤Dï¢Û?P02 GQI³Éî´Ið·0Iï¢ÞùÀÉù
+ϰ
+pOЫFí:ç©]7`äøE%}IF.Æzô37þ¢RÛnݹr¯`ûã¨Zí85Ç¥Ùup1Õy»áÝO´8KÜdñ~Ö_Ï¥í[îåª7Xq]lo&ßw´£tP¦âPPQ©ùÔ\
+iMλ³èÑ ±Õ3:ÝíA*ý ycoûgÂ:xíËQ¡dÒÊë\*e¼ÃySöÀáUÞÁ=áÁ·u« "ównïæfæÞ°Ú·À8§ãºKLU»¾þ6oâPìºcq©ÑX´_[æ{IäÞB;ÑÕ¶ö}ëÌ
+ñéæºuvgúý»â-XÝá0á÷ðJeS._¹º
+6e¥rHãÙ·W¼)nô¡D¦
+Îioµùh(x at r9P²ÝÄ£FSÃÄQ§¸
¢çnW¶ v-w¦54¾
+[|ÔbKæÇ¸yN7©YÙîxe·?{á+\Â
+endstream
+endobj
+
+212 0 obj
+1508
+endobj
+
+213 0 obj
+<</Type/XObject/Subtype/Image/Width 1128 /Height 645 /BitsPerComponent 8 /Length 214 0 R
/Filter/FlateDecode/ColorSpace/DeviceRGB
>>
stream
@@ -2916,2533 +2902,2168 @@
endstream
endobj
-205 0 obj
+214 0 obj
50640
endobj
-207 0 obj
-<</Length 208 0 R/Filter/FlateDecode>>
-stream
-xÍ\Kä¸
-¾÷¯¨óÝÑÛ6Ph ë ·MÈa[²L俾$Q¶dwÍì.jlË¢(ò#EQô7{úïË¿Oæôjà2Y¿Ó¿ÿùÛéÏ?þõbÞctÊÿBËß_Âü6Koñdmk;Átùùü[Fçí×~ o4¦ØvɼM¹mÕYÄ?ûòåÅoNßüò×ÓïÈÆéËÏ?}|µálÂ{<»ðþ:Îfyõgû0ÐÏæöþê°>±ôál/ùÌÝÌ@sfÜÀT®xyå·ñèY'¯ezå=gfkÞ_¼}u>¿-å=½Ò5¶ÙL8Ü%¢¤&
-mß-ÎEMõµÍ{Ì¥îϳÓ)7öÚLzÛ¬*eyå/_þðrÿòòã
-7ÑÙ7×Á
-Òøò^FZÔúÒ¢!6?o²KU[´0ÓÕ^è<~]£5uÁZ¥×Z¡°&I«¦0 Â[ÎöÖBdª´æWP«4ɽ{³ctÏÖ¿/çfH¦MÚ'×7"²p ¤ÃÖñÐãÝCn2=8óð»tÍÚò-¬v eºÂ
-@!5» Äh½ÝCiÅôWeâûÅÄ+R¦ÅàÝEaY=Ë©8}('¹¤mݧÄ!VIÚë®zQåÃ5ÏcÅú+¤¤:'ö%ôF0äà7ËÇê½<ì²ú³É%Ã,}µ6
-d×
-¼¸|A}^GʬÖ^8M½è_ºÐ¸b¦ßäL/(Ó1ÚèåÛ6¯.éYSýù«SFm¦(5©ürå®c!?
-*:6WJ+
-ZÛpиèAù®[yÚªïó µUßó ª4Q¥;5¨´Ê ¥UßAK«¾Akê4,¦×u at naò¹¥Þå¡rK½ãaÊs
-µñªmYGxÓHd®¢¤ñ2ã<î2ûºÝWB+¯pwÅ}Ìì+·ÕEµwñ},î¦ÕsµÐµáÔ»5ºëÝõ®E
-;¨á®¾])
-/`¯x¡°KY)fô©;Ið2XmÀ(öØÄEwjqy±n8òå°PÐrØ¡; #,.{±
-ÃîXy½ÃSòÒ²éÒ¸f~Ý©¿NÂÅ
f¸%@æ¬ÏÁ+tgæÿÄûÝÑÒ8 Ò¡q-Mø³pÔ*m!\Hä.Tq[P¥YvÇ<_C9±LØMµ·Ð¨\\Ëz«èð¬Ö¾¦I,mége@(
-DâÁaH°÷
-f!wûEÂJɳ:.<d£¶Q8=S
-{ç§°mqD¸tJDpWë2±XòC@⯳<P_ê@üúÒ^Ïn%¿L£l¡ä<m¬AÈRÆ2/Cò#¨+Ý3ëCÉ\âìÁE®ø3.Ç1ÁzîQheÔ{«mï#\Å©à
-ÞÏFQ§]¬Àý ²ÁíóQ?l@1߸ásyDªNâhCK½Àâ«6[OÙ4/Z~¤Àà³N¸Hy¨l#ó&ÒvΨÞ]1ÅåÍͯØAYabï±Ç8õR{&HA
-î(gqT[kÉ¡íZK¿µtqú¬µÚXñ§ü¹|Ã=6`²¦uÜïþæ4Τ{²pnøP=Rrfj^ûø&ó>'í»`Ëä)øMçË÷.2
G¢=q%i¹;Qj"-Ørå\ÙÁÒp÷mgýöëb <&fºöeÈÛø)¶OlÀ¢GÀ±ü®eôÌ(>Hf\²ÌpâÔy)O¥ìl\¤tOì¾÷Õn
-Âí4ÝtC :øN¬È}ðl=mð ÔnBáEæÖHïýC½èDÚ~fãÅ$@P©ú[ ZÄ óÑ 0Én»ò¢çÐ>
-»SèòKÈ˳à kKêìR_\â-{Þhå-«´Ã5FücZÙ@¸
\ötJ|!¹uYÀ¤Ü{É^^jÎqwî|îÜ%çrÆ÷Q_bs©2½Ä6o tÙÙ=×+9¼GÉ6JBñZs£c)ö
-OVg½
z„$
Á|¦ý³¢'v¼¨4û
-`2ì!Ú½CÅý¬'×@L%¢·B¡$4mTùQ Ó´SßV5¸-²-æÂíæZÍËh}ä7Gz¦",k´¤'¨(Æp=´SeÙZõÁ×ès·AÁ!jü#À½|s´<>TòPGlϦ
®
-R-±¾`¥i×B®º(õ]Ôñz~ewtââvÞ!Ó ×QdwâòÈùIµgî£ò
-÷Æ¢î ¤:lC[H3t«yvËÛí-A3uj"¦ÑØÚ×Nsì+B3
·º·ÔÕf9æ.¥§ØºWCÔÁ@˺Zz;*ùÿq;© 'öʲWë~Þ²¬«ÀcS£µVËxë°S9:¸9DZÜ,sNsÉÌÌëx½Sy
=22d<k?#öÞVm®³+åYçꣻªöðÃ*qÈÂxNö6R)¬"yYô¶¹Âna´Ï«}*õCº(í®ÑRJ²mökWu
#4aÕÏZ˨qþx³.\âò¡ËÉ´:z(giOUHiUÈ[Ì<»Ë©¨ÕõºÆôûüÌ!WSîçªí(Ǽ³Ú$åC\ë£>±&¸R¿ø¤ûÔX³EÈ!¦¼ßBkD³-
-;. ôsÚÏ,B+z/ÕåuÛ}Ýiw׿,³X¥{ôæÈ(ÕGz×ö,gêö£(ij5ËÙ©ìäe¥
-5®!¥È~c'!a;x8¦±Ì6ÔïÃR2¿w6R£ÝÛä3Ü'õÆ]M6ä¢ì1N0VrTÉÔÏñ)±X5¾äÔ@ÖV.n{g(IO·Z¢r¬ àÒÛÆê¯j`Â5r&ãã4ÊíXÛÛ÷-»«iñ%M«©r.ßí4檽(3ƾ8ÙMÃoÅw/7/ùÄvf
-ËïõùäÕÁK.Jo6"Z;,¡[v:uQSVú¨SÌ<(dîíã9Ï×f¬9tSÊÖkÝi!éFwwsÁl¹{¿\ +ÌttR[j.5 &,WÃõW3ü»ÀHÞ|ÀÕ
ÆqÔ~ö;xØ[ì¿Å:ëÕÓ@_ÐBðÙ§àcöêç}
e³Â½øJERdàºxç]cÚES]õúPbaô1m^Ýí^=pO£¦^³ÃcrN9ÉKRgmvÃìµwhÆ=Á¶[°AÖ¨xÝl.J ¼>7û´M¼Î+#S»õù|- »!½ãÚMY3[Y:>?mc¾OBcé}ÖDw]¤Ä«Ý#ý-Ưí:8®ú%ÿ¦ûO¦Ýì#m±r.7ÕÓÆU>å°¢
-VþÒöZ«DÚÜF'©v°ÎítÄç]¤;ö?rïJùU#ùìühûÛD£òÚÜäWÖß²!Á*<R =?û¥TM>Û|øQ:°"µ¹[}¸EÚîçdÚ²ìâU2Sr³s
-¬ÌäFÕÅL`mwðÁô·"s·ÁΤíàÖ.榣779ç0ºôÂÂAxwÎ&çõô~ÐËÝB.ªû>Ãý[XÄ^¦û5QQÁ@ M@ú¦õ)·z×wØÌæâîë¶ð9¾q(³J¤µk¤v@(Lå£ï~ß"|ìuÀ Kø÷
-ÙþòðÝò6°©gY2Ö§£ÁÊ9Áh°:¨¿¡N0D[#TÚÁت±¸-»ÀêNÁ-TÀ_çñzAßf¬-«×!3Gó b®;µ
%Lø÷l¯]f[{Î-n£¨}¢Ë@ÏYÝì×oݽúpsj
-~¤\vhPå×k¢¨Uö;¼
ü°`pió{¯Áucç3!bò¹·qx¯/X½Sbmèñÿî úýxúõ¶t
-endstream
-endobj
-
-208 0 obj
-3846
-endobj
-
-210 0 obj
-<</Length 211 0 R/Filter/FlateDecode>>
-stream
-xå\K+»Þϯð:àIëÝ
-ÆàñØì.d1ddÈÝäïG¥*I¥Ww{<'ç@¸àñénI¥ª¯>}*µïô*ÿyù÷a:'ÿÕ
-é?Ý¿ÿíðç?þn¿ÿãåíãEûjv^Ýáã¯?ÞÅròðñ÷ÏÎò4¹óQ>ýw|¾.éIy>ÚÓôv>
-ºkB÷ð)áÂÿø+b9 ø·Ü£o#ÄúºÁÍÐ}¸)î©W¼J#«4¨q`û?½Ü>^~«g>I?gëÄë37!ÂÄ'qÞd©.Ïæ$,æ Ëyº±àsÂûRú&Ò0Û\=8ûy²ÞM6ìûR~ÚÇ$ùG®gM·§9Ü´á{¹àu︦Îî$ ƱÙå)ùÅ_¶*n¦îð-NF¼Nfz¸Æîáñ;øÁIá yZ!®rO·0à[±Æárá4Îûaz1"ø ¤òÈf
-½ê#aÄ
-fê:üøç
-tÌâS§X%.`Ì^Ì4ý4
-°PBsB(fq§)³P@õáªlîgH½g¦èx¶
`tpµÈ'¯*zÿ9Щ?uùoC|#_!á¼ Hå¾)a×z
-}JÊ7n[¸ÆÏ"+{ÝÀ
-hrÞãM(\ô2·6áßv¯ª|Ó
-lNsbq<C=âÊØ%åQÌC£c³ò4%ÈMäèðD²4\zÀÚÂ)!fôбML¦ì0ÂL=×B7oäft?Æ22"æ[<N¸Ê9
- 6!¤^ !ùî
-£$Tf¹1s¶¬ù¦´×0eË3CJULªÂÈO"FË0îâ>Ánß9Þu$BFÔôpVÏ4`E7f½ÙðËѰÝñ"Bù8\¬zdµÀ×óB]óQò0.c¾Ñ¯¦úM°HÙj5±Pc½$oËÔC¤ß dHÄÀ"¯N¡ïÐÄ*òF/ úÌZjumûefú*-*b¢ç§mìg7D¿_²¸Ô2¡ â¸$zZs¦\ãwK8S+t¶ÅÌl1L¦KææèË%QYÎæI]û5iäÚ¨kÓ³T+ÒáK,JÀÈêôHÁ(ÅÚµg·Ð%rKSY,ÑÇ´¢A,½WÝAÃ~×Kµî!² ·¬DBt^Ê
-8Ô#ñ8]íuÜcbÿINhØ/N>¾*/Y65QKk{ZÖÞq¤ï¡I^ô»ä²{í`é¿jü£<~Z4lâg¶èmb!dÔL#ÂÌnµçäkì¸h»ÝÞöIgKã[D!ªÃM³^Õ0Ö¶ÝV5ÈØ}±âÆÀrnáóÐd;Ø("²°¡»Ì5ÛY
-%üg½¥Úx¯R*£>Ó'¯ìeªA½K"UÂsehz´K#&Ͷ¸;Fv»»ÕÖÃó8ÿGEÍü3Úçm
&öiÛBÅT+J^åýï ðì¬Ð<îö/L<-¬}y ¨ëaµBhåõQ2r¨£¨+!o£¸[ÑmóyÒÚ[g5OÖÂÔw¿r³XºØæt¸8çþÚädhpwiì®KOÙPð²wß!ïÞ9^ Dh
càýPݱA ¢¾çùäç_þÅêj/¡É;|:¬fc(
-mþºù>Ö<¥´J[nÚ|Â>xFÓ\zÎIIgÈxü÷ÐoµÏDºé]LÅ8÷MôɹìÒõÈh¢o4Æ##OÖÇ!$¼æáijá>~ÆÉ{c#:]`ÂJ6HHúvkqÔKÚR¥8:GwÂO.ÈïñïÈÆ,èZQNNzrz5]
-w
ØÒ§dWcÜ
-ÅVö7)«)¡ýJãªP)ѶÙÍ9ÇÉDÇÕ
-9 c2vÔÀ]gÀ¿£@¹C$Ò?÷/d0ßR0#ÏIJBEq
-ÆhA[§xì4?Ôhg!:ÁÛÊÓBn| z\<?àórâÄ>שdw(>9RHe¶fÉ:Ig¼ÔÖ e1{5Æ=dàâ^â¹C,Ô $ÑîpuoÖ
´D
-Åho M©¹¡ïÂ%ñ.CÃmÊì×å¼Ïݱ?c ËWG´W°NcÛ@¾þI?l´èlÖ;[Ï~¹/Êú¼ÿ
DÏJmÇÈÏ~Ú£«þæNÛ}âÎ"a¹WHÕíÂVm±·]ع/¬Ë4ãó«K.÷ÐïciÈzë§Çåõ¸ñiV§_*4±Í£Ë§P¬à® ÕÝß+z¤©t@dÓy"_)Ìé4}mßù©57HTGÜeå=gÎ-"l§Ì°"rÎðzý>xðZÙ(±iH¿!]äÒ9+p¬ÈuÕȨÔ"ê½#!ÃXô÷Ù¤H)
-øºE>Z«ü°(öû©ûݨSñ}áÅ3Y`ͤ±,Rð³É1;8¾
NÊ^ÆhâJÙLÞcâmëÕOØpAjÚÔwFý®<2,ÏÁWÎ9l%¸rK['ã¯?Py³|«ÌÒ°}d~rU@êë¼q¥æ§¶®8´sBwNË«{³ÚËjÑh ?ù-Igï[©À7¯yäV[
8¥\S'Ú*ĵm>ÃûV=#x¢º°=ÉÞ*W¯Zã5^ÚÏî/˰̺q¯Ìêbk½çNÂöâH©M|×pÍeÊ)jø~ÏûN`763JêWY
Õ賬¶Vß2O¹gËqß@eGê².u`ütn«|kDqçÛÇ/Øt+;÷%Ìn*£¬6å(FLí.swá@Tæ\(¢ïï¼!Uа+$ë]U´ÝõäWK¹¯c«~å23XEs+'Ë¢¶Kz¯WN¸q«sý
-@ÄͰϪ)p8w1 ´ñ¿ÁËyYßüj«Ñ
-~¨0\¡xù¹
-|ºP
¸÷R+,FÚÇ(êvEE#(²;ìÓâ¿òè
wðZÇ
-E
-îÈõ3
-Ͷrz!+Ø:¹OZtÎ)÷!Ñnâo,,úMÔ +ïüÊNÜ6#Ä«©W´
-ı QÎ$Hû¡Z9¥ôLâÃæeÕMÿá¥-ÏêG¡r²qüf¨ÄÊiÙO?ö(¡6¥Ç~MÏÞøÑnðkÊ:`t³mß% Fï´Tùcßf·gÉÑ+ÂÛVÂ-Í«E[Çüm϶ 6`
-«®gôRÿaµ±I Ué£yü»ÕF_DmLί>ðnà^XÓlG®ÿ?S,`M£Ûô»Ôô²Ûf¤l*X?Gm|~)µQr_abe¢£©üºÓÆf3jn_cÛÔÅ¢ÌÆ¸÷&xªùhYcºö
-ãC5sÛ¾9Q¡ZI¾-+¬WÏ
-Tζ©Oçpè²ZB}âØäaµ!'Ï)p_yWÔGE¶¡Yåu
--£ÐP9¾"ÿËOmñ
-£¼zCåð+¬!SÈNçÐx`Twã3þ.*};Ãùïø6¼3ÛéïZ3ùõÛá¿HXÿ
-endstream
-endobj
-
-211 0 obj
-3213
-endobj
-
-213 0 obj
-<</Length 214 0 R/Filter/FlateDecode>>
-stream
-x½[Y«ä¸~¿¿ÂÏu£Ål(
-j¹ÈÛ$
-yòd!ȼÌßtéh³ëö4CCµmIGgùÎ&ûªw=ýúö¿IM'.6á×oñ÷Nýaú/Æ¿üëíöåM;ý¾N^mï~úòéO?i=}ùù§³½»ÕmÓ|vÆ->{s9Ù³û¸¶³Óðdq5Ëɳ»Ã#XèmxTLr
-¤ôz6ê²Ð\u+ruÜéá|)ÌH!üÄoq¹xX¿k£hwäÇ5>ë+@(ÄHz¯öÓ;Z;ïKìÉfá×8 ®µ%úaòß¾üéíãËÛeßMÇq/ÿî@»Í
u¥ÍgwI<dhÒäbèß:V}
-ÆívÉv
-3¼_
-GÏ£×IåI%ErM+,ùuñåýLl#¶%Oºá [±BàLL.<Éq|K±mdu
-a½±á¡ÕÝönk«#×k°úB2ÍÂLyÔÕGr[º¸b×Eqf3¯md+ün¥ v vEiÖü¦¸5íUD¯d
-ùàRænKRöHN£,Ò½ü̶äàT¦²ñ8M¦6doá窷qg¿½/SW×EèQ=HñfTʾê_Õèg
-»&ÎQR§FaÆ:N\~Ed¯âéâáÈ¡XëZ3¦KmÏÃÓ~u8ËäÍ«eT)P¿|®ùmUþ>6_ÝO¤Ù°Z´<£Ë~¾c)Úû Ë. at d0D'h¯oÅÏA±²¸ùÝUÅ;(VÚ5?¡(+gT!GUMB¶Ú[ózÃd®EÜu_ñDg4î`[3¬tÙJ
À£ íf¸åycÆñ5ÌNåR¤g«ïôϽã¡wÑMÿLáúhį¼¢R]E§h8°mÑlìgò¹©
-PEîÚD
-]²ûÉÇ#XSBðIÆ)kO¢ýÑ,õõGþج ÍÃ5jgîÅð9óc{±çYg}ô:¡ÐËç.¾=\ÎÌØ
-Iè
-ϱ¨ÒÆQY¾\{ÈÝ9t)UµfYáözB®\*D-
áiOÙ3(!Fa§ gv}äÚ´-o¿,YäS§ysN¢µçc¡ º&§¾@ºª+ZTze¤LLCÛ*¾V3ÈØ,ÛI«¥[pI3Ñ·éÄ
-RÆn¼è¥c¥#»ÎÛÚ`
-ÐÞ\¤ÈT]L§4EÎGtT¬SEdíh£ÓýõPÙ¡ß9¬
"«IܬG lÂòê4kPSíqµa}¨[»Zz]^ÏæÊF¹7Ux¼~ʰäTAƤLO³KsK:X®ê
-¼~U¢Þ-?N$µR[TýÆ
-£ÍÃ$¤¶¨!;×øøRÀ¶°î
-C É Â]Ü}ø|»8`^ÃÜ'°ò@Ý+
Ï(ødð¬äÅGRIKBìë[®Æ E4¢*õÁ2¦ÝP"x.àÄ¢"lµÒ\¶Í0¹hâÇ@-[3Ø<²é}&WÒ:Ü6À¬àóí³îIK
-0-
-dÕ¤AqѬI^Z3JFÀ.A$%KaXFiL³Ä2æ¼Üãû
-°,ÎBO'ºp:ÙS{~³ú§ ºö©\
-稰Þ/
-Uíª(}ÈL=*Ú¤âx*sQãëø&ý®AÖÐÿ÷,¼yÄ-\®±hâErñ÷¯o1ýJCþãNzú:1«ÿLiTaÌ}«'Föª2L¶vÄVQ¥Cíàd²qÙm&Eúà%§ÄAS¿½ORõ£Ê\è½RÎYMëZz6y¿ÏµMÅ8z¹ªÐé<BÔuð§âE/WlNcE´Ky³È0®¿2,ê4??ôp).ENØÆÄ¥è^«!çÕcE£7,KxÜaCqA#Êé;q{G"DãðÝvtÉÖÈ X~ù½:k½u¿¡ÿ=ºÉú=<Ðð"l?ÒUÙ¹Úaq14©¤·I,>¨¤!àºX"¯@>YÖ2L¡BÁ½5OW× 0ð3·¦q!L -¤É3yvèÇ)äã·²ñ«h3O%ù«h5½©&ü~t@ ßÅØ-ï¿Nvdó¨¼ÿ:Å3<.ÖÉø9
-×$ÉwD#©Ù½ëLî9%iTÞÑ4dM´u"w,4*ïl²Á%Y¼ËdyÉäQydó]´$w,4*ïl²ð}S
LÆF·H1
-%gëàÔTV1Ü22²ü¥ÿ¸]GØGõ>8÷1¶=WÖËÎîv=wß÷=iß!öq½Ð
-l9R¯ëHïjgÏwµ¿æ»Úåò]å:é¦ò
-¤½QúGhжûQÖ4JLôö©NÞc5
-w¿Çâ·×©Ä3Á9vÖmì-ÐÝÆ_-¼ÚÌ0Òs¼Í4*Í®u²Ò±ÊàS¥x@ºQ¾Îú
-¸cítv'R|'D7&#¹üÖ*~UéàU=z\´KJ
-²f2bWÓ'(µÓ!À¥µáDT|¿°±4Ðs
ίGó¦«ÞH®_zÎ]Ã+'¼è»
#/w¨}Ã>:°×t5Uö >.éÍ&w@Ù_ðҮÖÙa&&îÈ5ÐQw(VghðPøfÝ8¥zN©Æ¾Ë ?¦#Õ÷5L¨]m4º±®¦Ë
-ö-Ò!¯DÓàéû/iWÜì5
-Ó¤£¢úp5.Æx®,áç ká´Ú»RáµÉÑRÍÙ^5éÒóPðð³jë]0l«¢CÿWßåe¥¶õIÀÒ
vÁVQ 7!YÇð'uR!6Æà94 oLJO j¦8
-1 =ÆAr¼<\izGkG7GÚÔÛÒ%ÓH"AU»Zê¤M+¨â(dw¼+Ä}¿WD¤ß:õ2õBî#*ßðU±&ºû@ÒÑ WD9R9ÛÂó¬!³¼}J<) Ç~H6·&Yb'Gü³uVñËÌ0 õÐÚFþCÔ:ßÄPä 6å"í!\e(.Ò x`Nù¹PUz¬ÄÏ3^D;bFrw|{gëÌZZ\ãÛl«ìp¼ëh=|~ÚÑD9!Êãøäxn¤ÛIVR»nl·6Á#oÊnhâ5#'g½d#pÉ4»ãûnÞácP©øÊsÕ¦eI_BUê}Ë:IhvÔËB@ò ìuôåFÈCµÍçÛÌ*
-uëK|éÚ)`GÆpsدÝõOíÛò9ltîàÖO×Èzb
-
pô9Èüù76¢£áæÿFÜ1h<?à¨wä1ð|%öÃaÇÿp8üãÓc-H=ü®ØÞÐ~mÓÔb:)ê®\/bèÏGGé$O6âpK}µ¢1`ÝèÝa²¥ý¨§õè%ß~VQ7XÝc(O6`Q¡÷¦]Ö÷¹õ?å|¯J\«9 at d6üÖÚNk:¸ûÓ6üüEg*nÿÊtÇÅó¤í0³¦Ï{àlº=¥ÞñÖ%ÄÃG¿AIëÒªøÑ×6Ù%~5ââ-ùþüÃÛÓÿÄùÊ
-endstream
-endobj
-
-214 0 obj
-3771
-endobj
-
216 0 obj
<</Length 217 0 R/Filter/FlateDecode>>
stream
-xí[G4½¾ï¯³aÆ
-aØÙ`ðíµ|0¾9ñkø¾ÿ¾¥*UP+toxÆ,ô¶ººKRé©(¹ØÓî~9ÓÙÛɺp×xýõo§?ýæôï»/§HFwYîNÓ¬Èæÿþð»tóë?îVsYNðøz²ërSë_§?Þéö×_|äÇTÝþz¦¶áÃÑk¶ÐRl5±aªn'¶L¶³3=l:LcQ½KøYÛâXðËþô·³ãÆïrÁHk;7\ºæÊþrâ5»½Þ9c/Ói6Kèôõ¯§ß¾¸5§×¿ÿùÞÜ®vº7Ëõlͽ¯çáÞ<]Ãõ:ß»«»·Ð]rö÷ÎwõôÅT ÇëyoÆç\ñù(÷ácÏüÒ«ÀÈkfÄ/-}È>ñÓç_^÷üz÷e#?º¥"×Ö¾@¡Më¼Ùg¾Tf]HC&¦Øá
-XÌÅo:t+0®ÖÓJYw=Ï¡AbË+#A9ßÔËù%aø³ÑÂøÝØgKe æ9.ÝXK ®hìoMìlzSÐÿ
-0ÁØ_rä
RXX,aR.^Îv!0ÝxtØ}UZªØÅÔ´¦aAÙP¦w) +¾Ã3~È5¡¦
ѪáYØÊh/ce»Bï¤h~¢Õ¬
-¸Xéí³#Öh)é0»¢¯£/ô¶³çÀ§2î
Ã4aÒ;ÍÜXµCb;E¦¯BiVh)
-L&Ä)ÈÒÅù3Kh)
-L&Ä)À2HÆ{aø9=§{dDOͼ2#h)V
-&Ä)Èrt56h)
-L&Ä)ÀÒc¸Kl K¢F&B²
-²c*À,¡¥X&*0a´K¦ Kkp°¥X&*0a´K¦
-8ØDL&-d)d2fî; Àçé9Ý'Fé)² à`K±JT`À4i%L]º/â0L´È)Ü@nü<3ØÐê(:
-W¢ÐPªBz
·ñ¢&ØÐмC#Ã
-úZÝWо®µ§¯ T'Ôu$mP7îm+Ý6¶mÙ6}mÖ6Du«Ò6¢ÞzWim¤´r¯G÷[×%ÖÖHk뤵5ëÒÚZgiåæî·6SZû÷¦"ü!ü/ʦ·Phrktð4+æBMÏß0joLXlÅsÜܨõj_bÁªkTbÄ2i»Ö¬ºhjÝÌYðPÓxUå9²[Qh~¦¢ð
²²×µA] KÕò=¹ÔÏ(Û)/nëÄíZx1Þ¾±º>F÷T¶ìÕS±5¦¤î7 `Uá6c6tÛ-éäªj×qL])Óæ\ÜÇÀÑé
-8âФÑÔñÓùó=n¤ýô¾æcÜϸSÐÇt"°Ãuí½ÎÒ»µ»@t[Cyow[ÎEDo0~
-%Dc¹á4Ñ
-Êï©1gÜM
»}ì
-mN!µ*%²+CWQ$69(?¡Ö]Gåù%Ó#D~eäþö
-vôQÎE¶ÀjàhlñëÃ)²ö9à`Ü.¬: &DIÞ±tLqÿ©×®mMÂÉ"A mÞi%,ÅÌnfÈB,`UæÙ¹h`éXì
-S´Û¨©gW¦"Nu´D¥6G¬ÉD%Å þi¶Æ:ÎÆ·âLñ¬Ìa.&}?Yq*ë']<my*2Fiµ²ïóµ.°§¤ã/+pì¤NU@µ¢DBMigÀâ£Rd{ZáæÊºZqÕ>Å~ê4aÐhqJ_è±7ÜJC7ù¯×ÁWÊHTßA[°QeWS[=&vHYoLTg2<dy*ͤ,ìd½5uòË6ÇNßIe˾ Y¥ð (ÛÀÄoÉ-<¹uoòÕq¶
fVÃðÌ!YjZ¦6W %Ñ;qéXÉ&ÇÏK¤Ku°Ré?E¿};XëÈ)7¥
ó¹©ÎXUëù}ßrrÉ:ÉÛdâ'\©T<×ÿº¥l&¿ñ|c)°]õõÕµìÛÍO?û»E=õ¦qì/¾ÊÝíZ±ÃÅ¡¼TcsHÜòî7WBÊX£(
-ç:ñ$ÚCE&»ëkK)êMVÓBó CØ9f&yßðVô÷^ò¹±`í<»®E]¾gð>©°Wëöûö²ªHc»Ä`ak[,»å÷gKí©]JR]r(ÕN3y»µVÙõa£:it*ó¦¦ÒUÅ~
-UÜ&,ª9rwúýà[äSií«rÕl7z»hdfWnµ=ÈSÌZoß>Åüж+ÛL5©,8ÖÞ(µÍ¯YÇ1JáíÚ©"îE¶¯ø Â6D´>¥¤þ,FÇzýDWjê6GGúØçÓ½é`~°id:ÈZí3Q¾a*·âö~*ô| ·©õø?ÛdeY
å²äZʵéëAç
-yí꯬iRìW¬®@<«Õ^öCûuøW9]7Ù÷VDkç%:ehv
é*pæWÔæx¬êêÔÓ>Âç[_9¥8¹pPùêüôY¯î:{IkEH»bµU»ó¤«fX~HïIWá]ùÏ
V×>Wºÿî¥r¯B>{P_*ëùÑÌ«÷Cv2ÝU²ÆÔ1(YòCH×T°ûSXoë½(¿W¦gM<Æ6ÄÃ0Zè(ÛÐrÆÀ®´¹bOf÷æà*ÌãÇ
-½lkYÒ/Ïð#L¹¨í6ü@¤à¿@T/§ÿAU÷
+xÍ\Kl¹
+Þ÷¯¨õ@wü>ç@QP]@v4d1Ì.@È
+$üýØe˯㪾s¡¨imY>K²äºâMþ÷ò8¼
+ÿ§Ê.[øüïßýéðïñ¶ ¹¹ýß÷üãŬo«½¾-)ÿ[no.Lùí§é´ÿ;owêͼm±ÓÙr¢q"|}Õ¼ÀbøÏ¯ýþñ"
òcá<;üán=ß~9y2G%N¯öhõI=½Êã¢N¯ú¸8·^ÍÑéðôÈ8vYü´Ø{¡O©C¯=:ãî§×-6°.&Æï=Q%p$£¬î¾Øð·R aÏ¡Y»s¾¥RëVðï Ãcë
+¤âwy =ê."lá¶=ɰI\ZßoI%̵æ¤Â¹=b at Hðq5;SPOئOÛ'é= ¦Å'×(g®=ýúñ§ÛÇËÏ\¬R°ÙÿìGx9\¯óx¸®%m
+xx?³-
+c<&á=Ïc×u!øÐÍï$I¯,Ð8G·<®ØTâ»[Ø©5\`uw¾íx
+e{Sx8l
+"KÜÌÂEÆÎLêPð*o¿ú+>fÕ
+"ÒÓb=«kÖ7qç¶%÷íZ:>·èWh¨E>÷WF#2vãG±O¶êBD9ßÉÈ^3Ü¿ó@à$¤E)¼¯\*8ųGnQ½ìyTl+IGêdó{>$k»°0p
+·éa·5
cÚ?ÕÀÕïîÂØd½ 1[XfÃ0ª>׺å/pÙu*Éâ#£ºsGqÃæ!>ÀIÔº±MÓñÂ{!ì18¦4æFãß×SÜKÍýl|@Äý6!#«U¬tÆE³ R¡XIêc¶âqUðÉ@Ååúó!HÖ,ÂNåÏtknAæþãK>F¶zõVÿÛ!²Ðú×á//¼ýícÙÔËÛß1M½¼ýíBÖ·¦ 8-
+-¶hìå4[4öò-{aÑܵ«õÄiQlåE©É½¼Mæ^ÞÆEY,Z×Vâµ
xm%^[×VâµL¼wõ0þ0Ñ¢ØÊR/.{yͽ¼²>$v_Ê}¤³Ð($´fÑB£Üå4ë}ÕDûÚÞWK-¿z5
ç>ö^k&'5þ>B÷¡Të<Üú@åVúܪ¡[5~Ðp
+¯å¥¿Ø`·Ê¢³&]o'ðühä!ðxåád»$Ì ¬+Wp2èõ(0_Ä C:
+Þu°¦¿x6ï¦%³j\w¯V%Fe dOE÷AÁ0ÒDØ7U
+Ûo'e¨wÎ
uhD¯a/àéʯ° ÑÁø9Óz¤q0]'¯O3i¡5ã'að¢@§ëf
+}6
+(ÖG*#ho-ÖHv^¢Ý$ݸÓ]49ÂõsOú7#YìãcåòÛË'Â\Ò
+ÕÊ6-m$¨ãYz[º2û%¨ÚoPõ¯Sª"'ã£(çP°;wâàEw|R4J¬Ç *îP(ÎÉhö¸ogO!eW¦¥H,ß3xdüÎú¨3PH<Ô+n1EuúÑAû·á³n¤yÿ½¿ÌjÙ·c÷ðZáûéßrD@´wÓÙóTLÆxoT)6Dò
Lm2\ëtAæ¶H°7VÆ&QgG¥¤ßé¨tI?{TT\*Ì4ÕÊÝ?5*©Çß ×¬`©àÎ
+·~|uwN¥v>')N«go
+GtA&Æ
|&ÌN¬,}!c25þ."Ü"&!çâȺ#+½Îî¦pË(r+2ì²
+¹Ìн(LeÙ
ô&Lè8IÉ_xwR°M³ÙjjõT¡CTÅ-Emà^)£ò jÌAf
+©£
+ ¥¾´¢ì¢ÒNf˸#åh;Äbà$ÉE@°³â2ƾÙ*Åe6L½U »çËdO&Æb«HRÇTaSØ©ñ¥´pJ>ÖùÆÇ«p,·Ì÷¢»äÌx·3)ÎÉr`[,¬E¦Ì²CY((*<ýÕ³yÅÇ¡?
+µÍ,n´j2©E2:h¬qBÙ£" ¥TÜ-ët(iMÎ'çty¤ÀkÔ/ddݯÆÍJ
õVwÀÏõT#G`zX2$öð4q½ÉQº+DÈ5êF®Mñ·W
+'ǺU«§j>(<¡Í¨à½ ½W¯zcüºÆClâ]Ulý)ô E3'Ã9¶^Ï;6»z¢ðÄ
+nv®²#©©ÝmÂu!Vm¯9IÞh3@§þÝJS׿èö$ÓÛªXrµóÄñNÞøÉ[ÒnÕ¨
À4rídaw´Q;7!Ô#Ô¸¿3Áv_ÁfÁÃæ.Õ¦wìw7¶+àçîá³û¤tu¤¿»7IæÇg<ÛΣàþzSCc|Sÿ½Ù¶Çin-P©ZPàlFN÷C>i%|±b¨±Þê ÃèIMo«2i"¢üñÀrþq§)J
+34Äsóp¢8)hPÆ8Í&òçôÈã-.K3CÐñ0/
+¥§6,ØûRò4Ûgfc&Jeè
+¹/Ê¡xAs;ÞT1´ºHÁ6U'ÞA²P¡b\97}rÒ>qÕw³åû¢ø¾
+|'6&ÜÜ·6¿¼ÊwÁ{Méó¯)¦3õNö±4üÑ]v¦A³ÐL;CÞWêÐmì5i
endstream
endobj
217 0 obj
-3120
+3556
endobj
219 0 obj
<</Length 220 0 R/Filter/FlateDecode>>
stream
-xÍ[[,·~ß_1ÏÙ´¤V·@ÞÈÉSnröÿ~$U©ªt5Ç1ÌYµº«¥¯¾ºª½¼ªÓO/?ÓyñnJûßý¿?þãôßþûòÝ)Lç^M×'cÔëNóË)ü÷§?à?þëeu¯ÇisÆ?ðõ¤¶ýÕáè?§?¿Èñ×Ù1Ç£¯'«µÆøuÈ8"q6
-¡9¡H"í¶½®$F,2Í!<Ç#É3Qäz¸×DÂE¦Ù çx"yD®ÊÿÈ8"q6
-¡9¡HÊzMÈ8"q6
-¡9¡Hñ"]¤%0bi6á9H"w½øøgÆ&¤R qiU̬H¼däOxß°
± =ææfcÆ_ê1è
-vÓ·Ú¾ñõm¨o
-}F÷ó+p
-ÖûnG¥uó¨4R¶Æ£ÒdxT2n×ÿp"G{ýòbßþ8/çËßO¿èZN_þùýÛ²_ÎëÛ¢/¾Õþ¶¸åzÙÞôæG&ý³|\ÎîMË_¿üñåþåå»â}j_¼ïo½P}\Ôò¦nñ5»¼s)×^t\ZÃtXÿ{y-$Ψ÷Òé
-0½à(Ík~þ*oRW¹0ÿfÇ·0?;£4¶te/6¸·÷×ÏlƳ§/Húòï>ÜÛÑÛ
À&¶ _®âÂâ¢ç]îÞË8'EôèïWô¢åÊ÷z zÁ"vAø¢ ¾cíb¢o7õ§¸xa¸ZYÿäë
-·õ5¶ëàÃt7K¤òâ)Q,¼
'ô,=%Dy#"oFyNP¿ ã&¥Ã*<¯Z
-/ôwȶ+ï&Êuxp
-npè,Z{ÎâÉ÷y@×8O-+k7Ù
-,s.;qÛâ;p§#ÓtɹL`,ü¼VD!XÞ9R*ü¬»/}üR
-ª>
-dfXÚ£e,:ìüÕý"/P¤Ccêbêsþå·ásÅ+2Ht7YÅÇÏøÄ á/:vX%×rÀBɧMª-ëmýf¸í¬n¦j-Û¦aûíülÇ=ªÞ(LT÷GbÛº¡*ýÂÞ{¶ZåqrUƶ8ÜÉÓ¢EnqN5$ɬ
-ízKSÜ·
-"8ë8mÉùhòÚR)ïº÷áÖs/B9ùâÃû Ù÷8´Á½*fS\jôùàâ+/¬Ë¹An`@M³µ¡º°fB,TÆmrëB¿£%WÕzÄS×hWLÆÖ¬WÙ~YtdÑtGNùyßR´T,ã$âê´§¯éë]O©kòþOC¯Fkôâ!àûìUEÃÙHµÐqë9ÀϦzê_«^;ëTXíÐÂõNªÉ2{&¨ V?ôñѾ%Á6Y¼.£CÂÞ<:¤¯ó?»¶ª¯9Epùª_N´ì¥paNhñ0<Eþ&cþì}£³YEÓP¿ñFdr"â Î+Í&¾ 0ø"Bë,Ñ÷à >Â)Õóɵz²&ç
-̼ÆgK $xÑÅaI]µ«)¦ÂÈxAiÅ9åÌPÙª¤|>=HZU¸²¸Õm¯e3V/¢ Ú
-ï×4X@©U;µtMÎfv¶ÑZFçl#ÊÇUë9#¼g<Ø)û>aÔ$|"ýGa=`{Õéfi)7ªþèâU6ËÖ½yZSÝ6<Équo¶bþ3ºIñ½Ã¹º=OÞBÆ
-öÖ0òÇçYOuA¿þô{QF»f¯þçÛEt>¡© n[þlz® øâÉ]_"±°yù1\¸o¼
2à¹IYXFðâJôèñ
-%.ô°Z¦ëO±ZX%ÕT#Éïä~ùhN±w0¯¢½YuÆcà1Yæaàñé<l$Møè
-ù(jd¨¶Æjzß` À FV 7Þ?
-VRý¿h_ÕÐLm@×`þJqÌé¿-§Ðþ
8Ý:
uß4î°éÞXèø³+?UkÐѯH?ÊÞb£ß£
-µ{($ÃÀ^Wý ®ÆßÚ@fÆvs´þk'câ7Ôý¯|ÜN<üxF'¥SgY¯¾üã^Þx¬Ã>±ÑÌÿ®á5:øIý}«Hû®Ã¥ãny+Op·sEaQ2Þ}VvÔYtPÙ6ö¤,|PÀµ_§çÒ=î` IK7K<D´oúqQqåþú#>òqYÓî6ü7@¬ð×áSEàHPw qfÔõQÖ$KMÅ#ÊÓtýÀ>V@'^{Ò2h¥ ®Ç= X(\¼dúë=p×£ØI¸v°ùûäëÀÇ~ä-=/lA¯å^Ì#JÊkkK'
-Ý|´=}ÎYÕóïþï,a5ï
-ý_ê÷UóÁv([°TsH²hdú´8.ÁÜ7doð¤ï;ûDä·ÞØ4í
Óé» ò%×d¥ð~
-V
-¾é=!«²UÇxx·5¿ô\p
-çm£E®KryçUÁzwµG.ZçÁÕìà7W>ühÈN[¸Z±Ú×]KÍ£kÑ{éÊÝû *cÑ;,lï¸ôÖ¦6¯çÒDøçV¢v·ê4¯D²LøK8á.ǨFðÈWVlbæ Â(ÒGS}ºæ¥hL·*I %ÝõÂvH,nU³ÄÕÒÃ9mð¡ðªúå`Îb )Ì
-N¶¼òã3±c´)Æp.c¤ÌºÔ`q`T
-ÄUÛ-ï2#
-Õ*"ÌÞ9ò{K¦@ÂcI¥OkkiÚîs¸ kæY¬ñ$F«~ô
-ÒñErtAÆ)Öu8±·ÀËý-XdãÀd*0%brjÃèíd]ùÜ;
(Q¾½m¨Å«pÆ9\&{Ë<R0º-b·Ç³·t[nqgÂ;!úÀÌÎ7O&ë²iLÀ¼¾ AKyÓ*ÂúËp/t;76-h
©T%¾Þú19ªÁ©7Ð{ú*E$éój¥våó4\hr¨>
-KÓÞEDX##h:6ë2¡ÐØA/R³ÔÇÝDìÅk¾ti»£m.ét-</öÕi·2ÔD/"îîg]YP'âVñ\v¹½\¸ÉéTiY¶\D©ÿe*Pª"ÈR¦>zêÄ#ÎzèÀQ$ñV:élâÉ-½Ä°JÕäâÌBf"ÈZcYòÙ©gUÖYqp÷µ-¯¨PE'3Ë=¼;:8QÅ2/;+õض4ªÕa"¥tH«*Â?ÅsN.ó6æTLâqTê;©UI²ñ |ʰÐS©2(º8³3
e^x£ytÿ§NK[(4Dh3ïôYE°BSÿKéü±5á¥6慨+>q(Îrwé«Ð-/«³×ydFÆñ縱u^ÕèÐd/8ÏZÙÇî7þ&ÛXßÈjV_°¬a[ñsr©wÞ ¥ af.Yè.à§¡=¸VÝî,fµá3Øz1.ùVôëéïëE©QZ¶ø`%/"ï-ûîô?UÞ(
+xå\Ë+9Ý×Wx=`ÞJ1T¹ìÅì
+zQônºf10½ß½RH)¹ªî¼v:¥E8ñªÉþ÷ôß9ý¨(³WmÜõÏß¿þíðÿ£ûïÏ=½¼=mâÄÚ>&oÿ<üýNÙa;¼ýñ~&êÂ>|¡îòì.Wwî²Ù5öÂÝ
t¯ýáéðÌò|äÕ=rw{¢ºü1~{ûÇÓíí鮢 ?±*Ú1w!Y¶kþº¥{^¦æÂ(ÃOÛ0åÅÜÍÊÓKÈKVÔëÂëìlqjoDob+Ñà%Tª:(IO"¾EìÜk¤¸ð³f#?+z9²³º¹Ü}ÔÄ~T÷üVGy<ü"ýóþQeÜ
+þ±w¨qºçqzSf³c(=yúÕOí¼YýÝøÙK$xö_¤J¢VMØI'Éò@iZ´v+ÂXYÝìù¹ãò9Õa[òuÏUäWjW7¥¼¼v¡â¬´NayR+³¿~´Û{[à5Þ^§#cñ·tN}÷¼$<f/&´#nÉ~v)A÷åq-ù×0XD¾.gM§%êgúáíÚ¡äö»òÒu@«Ø÷>¹XTdÀáåydwI´õ&lw7åÛ¿wBuò¨\V^a_5z¿k×õÎoÌj°D~UÌbïCD³)û6'¯tôT$ãÓõÊP¶9"¢_ÝÕ×I"ÏÉ
í
+I/â,"OÚqBfÆÍÄne`ȧh×»ÖQ+.é ~/¼Ç¶hkÝ®?©Üj at g° >e§X°ÑÈ´XPëJ´.Nyôñd
+÷Zh at xúuBøÈ
+ª²Ò+:J ¶þOÚ4V÷©F~éd&
䯦ÙMyOEbn¸
+ çFY´Ò³êñäl{ô¡:
+Hv=8 ÄO»$ÝYS-ãê!#1Ä]«V'ðV^©8*H¹E>ýYBã
+ÓÑ}ZØH^dª¦
+DÛ
+a1ì^Yßé*C$*uøÆÛ²ÎWx{Æ'£ªÉÁtiL»gëý·jß²â";æDºîEÞïWñüû;&äÂ]»©ï
+`
+¿U+Ö*골 Ó1W'ùãçu»1vê¯à9¿15muer
+ïB`
+®NmØpeí\ê2uTÅNYå¼7 ¤)kçÂt]P¶üu
+]1j¶ÌÛiÄ ð¯@]g8ÇBT*±aæA*¬£"ç¸%û')¡Q%¢bÎe¨GLê$Ø Ü÷sõö
+ÖðiÓõ®¥¬Sµ:½¢p=2ÈqdG2¯ÈJÔãcÏ·N
+3èɬÞúM*ËÑ|è®»CT¸Ö®Ð¦ÍÛ9µü0°µ¢Ý1ﮬË|óXú¾ß:ÊÁâSVî+/[·"äWõ\r½¦_}4¯$Dm1KÑÆ(Îf
+Fc¬]ʾ]Rëa²ôÕ¾®R^»óâ*(Eö¬)»tZ}lØD6híA¾¬¢¶Âö;!ìdzb°£ i+§d2½ÝY
#ÙêZÃDfWfã¿
bec®BïT©Kª©â3KyßHШ:q9{éEp ]Ï\Yæãs6ÐDãWD#O«Ô³ä¹¬JÔUh½%ª¯^!æ¤óà^ZñhòüP²ÒEßm!+ïØx3/ ÄÖÿ½BíÃT6n;.¦Ó¨RÉò¯
+ÓÏÞfãB´öUø9]HÞLÞß{ðÜÉ;Ö=6Ò|yöê"Tú{Âø;©)¹âÀ;Ue¿óùO²¶m©ÍëÁj¥2p]4ý»!Yúxßk'z¯ÞC=øæ¥ä²kv±R)¬ÎJcbwÿ~VKrapfÒ
+ºªµÌÿ¹"©Ñ·Ù:_I¨ãÞ&dGèð5É2÷@°æÕy
~m
J1ÐTáylYs=ÎÚvÏéSàp˲Æqsf;®ÐÙ¬ ¥§ïV
©N»
+æ²É?áÆ±ç¸0ºÙoLÚ¡¥éPÛkÙPÖ£QÕúköÇ 'ÕAÂ;¡ãQ>írÂpsÚIýÈfßgÂDPa8DU\ÿTƨwî`¸¢jjD9àN)V|+°stÁëf=6ë1mPý:ëá1ïø`¶]mH-¶Zê ÞÉ·ÈJÑá®}ÉÀkÕà ³ÄOI&ön³Ô+elXqDϰº)ÚÞ¬öKÖÉVÖÙ¨¼ã©C7@W"Øo¸¡
+·æpò±{xq±¨vÙÀ1ÁðÃHÂ#ì° :ÃG|´
+
M´¥µ}çç+ç)3Æ,ÈT¹`ï\UMs;;º´c¶©ò
+ ò¿A©w'¨Í*íNZµö´à· ¶usËà^û¶Ú³!Þ¯^XÑNkw85;¨åñJéNæù
+òüÝxÅÝÉ+Û;÷+ÁËz'BÁNqE
+FP(¶Ç;Ïx"+z1çxù#íùÛé<ó~Êå.ú«íhôÿá|cJ!Mó=þÕùFÿ
+?I¾AÜ~uÌ;C½×6¬Fªÿå0ÔÈèýª|ÙLÛmfiÃqýCÒ°ÃOnÔÔWIÄÁµö¡1ÝßC Óìíb¸lS°4?·õ-a«|Âݪ/;q%«û?©t1ÏÏd9© îøG3·<E+|GÍ¿Óx¼ðÅø/·ícC2Sý_üpÐÞýåðêäV
endstream
endobj
220 0 obj
-4135
+2729
endobj
222 0 obj
<</Length 223 0 R/Filter/FlateDecode>>
stream
-xÝ[Kk,»ÞûWÌ:0-µÌçÈ.!U^r¹û÷£RI¥Ò³ÇöqÎ%Ú£Vw©_JRµxþs£ð?Tþºnpýéo?þêðïÐ ?ýãéüö$}¶Ulþ·¿~}ÛAªÃÛßÿô"/'ó"Ìé¨^ä®ç¿lbóÿ
ßw¸ÜNG¹½Hå+¸H¿Üéníðt
-tÄTøsõD$þUýG¯á]iàr=áÃ:òäiÂñéã
-4þüöÛ§ÛÛÓï~w
-$`ëÝI°ÁçH¯¡QhÀr°Q$d2À»øÃ`n͹QjÝfÀË]ÜÎá7GѵM³ãÕÞ[5às«ÆlnÕ°Ë9uÀFBlZÕóñW¤á×GMQS¨¹¼¨Ð^ág¸+7êì§ø·¾ès§B
-S$¬¢þ&üx½QCH÷/ú¡\ ¬òp9òã
-dÍGìÁ@zpÛhóAb6rlCü_`xFµãM_©-±}òW?]
-p ®òâV (9*nvah$x¯hÈHcñ0ߦ4µ·$¦ü¤¨½ÂfWbáÌÈÈgä/ßìçØfyï÷W~4²l.ĦZµÞþ9F£Þj,ªiD·À>ЮQ ¿çÖ×$ôMMÕ«håÐæÈ¯Z½J@Vceìѹµ6½1»S.Z¹2\'9Ej.z¥¿ô÷Ö£¤4)£0}ò7=l»9të ÎW:
-òæõ¹º¥yÞÆ>âêÝX3æ½I7}Ú7.O'ñÐ#îì¹)cÆ_[S>îsê>4gÌUÞ
-McõÆ/:Y1F=×±Áç,i@¤zGbyò`V3X? j ÄÏ,ðyÚ[îßá}\è¸2Ú\ÎqÒ]Oi^K úyG^\V(Ø+Ó®½µÚºú_kao"ïfa|M«¼ÙJÇ Â{^òä$ß%ïÓ19m
74å=UrZ'S#È
Z
ìªpí2§;K;¡*;©t?cÄü#%¼§~CMã'?hf`B
-ÞÖþ%&ëÅ2¾¸T{ú÷%²êì½[²# ¥¶E°]o¤A;@)¯w ýu{äm¯Å%Īýöæ=nÃ^|Ü@>_OR%G{
-2târÇ@}a[Èy7ýÉû¾]FëÉVܽ¹±g-Î6rñ©I.#±Ü[ÏÌ&
-VqyºySæ7#
--¦#í®~hùAÃ>0ÕwàùÅ=>¼2´©Wåhqî×ó¨½xØØ×ø(\¾Å¦¬Â¤Ä¤NòE]NhêÖGà´F:UÛpëKa¹&<«Ã³p|D¬Ø/lâÅ,-\بcs©-;Á/K:AË-:Ùj:±Oov\û8¡öÍÇÙSÚä(oÚØ~CÃâ;`Pë´îÆ:[﨨ñI ÷.´é6GÂnÄöùvRÚ¨#ܺÜZ"9D*ïC½&ñ»´É¤ó^ÆJûaêN_Hºx÷19äâHrNCiGT[N´ÛÂf¶G¹ÑÛúü^34\Ù#nØm=Æ[ÙúDUa¨saLTK¹;
H×
qVËj:ªÐ¯ô«Í
-×íÔD°<PekE>T££]rtlh-Û¢6Ó.)/
ÄõCÀÉg²sàü¢§c,I|gnÚ)z5]fªì©cÅø$¡²Ë>fÙç}ï?Ó(F{ÏÅØÃ Æ@ß%¢ù,#ÔgµãÌ~NÏ©2ª#å{=äî§&sz/ßåîR·Ù!ÈÔ:Ãy¸râSYøë[=ôL¸úÖzãl}é¦ÒÐã)[¬E'ï¸þè#/ø[Å>´ÀU\%
--,\vÖjÕ¡Ò*ãð7%û@ʦ®ð;wÅ·Øs©Ô® H=](«ÚÄ^5ÎhÄ8ØNk îÎ
-z|f¡Æ]M¨Ur@¹\é/áÞ8ðìLÒÙ®Á³fR;8cRF±â®ý/)¢ òÊe§cÝö¬!ýÂÛtû9V= æ(W/&ÌËóܰc¥Öî0#¤74Zô)¼¾°Ë|h³$¤
-fÓaìÀéIE+Ô =yVÅ0É|%W§ä÷P¶Ú¾fÆ(sr EX{?2-ôÔê_2ýµÁI(45L}_°$·4~7$aШåãÈlnuX1®õýáålÖ ³%&ùë,Õ(À,Ç-¡d+lÇJ³y«³ÏE°?êH½øùDîåm̶r_øG®ïÙÐbdco$C½¼ÉR5}d-F6öF2ÔËÛ,õ!Y¥ýD6´ÙØÉP/oG²Ôtëm©F&ûõ±&R¤ÂXØàªq¤5lpùÉÄæ¸0ÿ®
-ç¦k´Ò¡jsÏ
-U©<·F\nÕ ÉÚî¹UÙïýûHGåÿÃÏ}z£~Éç>ݾÃç>ÒRmV¥¥Q#:̦Cò¹^:dåE)¬å@h|
wJÉâQe¼+ÃY2¯ Hg©Â#«Æõýùh»8Nå¹fnÍlK
-õÖ|fäO0.±ík¦R,êCøÙûyùèæë.:}6gÛºK.IÓ×n[[1@Ñ:»O©mJê4÷É>L¸¥j'NÇô#È8óf£]ü+×F¦PCÙ[ÅÓ\?Ï»pîYîÂYʦ
-²^s
-¡W~¾QðmË¢p¸±tQ
Y&¯kÖRþ
--ÊtùÕ=XY2Ðdµv*D[ÉgúÌá«R±+°ÉH¸]þgjéoYª0Y©s¶qf¼nö´é¶vNùp,¢§ExÑs/¤oòÚ0Öß#~µ¹Üð)v3ÜEuÃË3.Ƨèf\sK'<ôû|r
-¨hèÐ'0>ܱµü;æX
+xÅ[[ì¸~_áç
H²$ÛÐfzºyÛd <%Ù@Ȳ/û÷SR¤ÒÕî9»,ú´[VIªËW_=âEN¿<ýoÓ³¯V*ø\6÷ùó?§¿þ0ý׺?ÿëéíãIZù²NØ^éãÓîfrúøéÛeÚç½/ÂýY^ðzÑû³¾Ø
+~A÷guQWø®/Jì&Ü´úqé~{6ùjm°õêbßý½L~Zé~±¸üè%¸ÕaÊÕËÑlºßá|Û7ZÒ ìì?q6½ÃºUi³÷j
kÒÌöF;»&ٸˤgø¼[v&Zïfõþ·?=Ý>~,¬ª7û²5¬ê|ü»5ýÀÂ<ÕõÒ^}~ò
ªwè>LcH=»M->³cÌZÝÆ©æ|»èu+¾%ظ>=¿úè¹ëéäÖLæê4no<bÚK¸ð`kèKj1heÎm·å¹&»qÙM0=·0§(MßÞMÇ¢FعeÑ#Ç4ÌËíÙ?¥Ä®ÒNÃ<7Þ,61F(Bé7Ú^½:xD1Î s?Ð[xMKÃaºXõ½î¶p=Y\Ô¶9´&Äõö+YóÛ2¯+鬽ï|¶[²¦¸[
+X´fü̾ÅÏ_³qvùÅÆÓ:ñ8òÞàÙÙ¼²à¡Ígñ¢KD¶»Ì+KfÑekXõA3
ÓÌ>Ð
+e$Y3¸îbö¬Érèö;GA.¿£ö)if1Nwfù«dàµ,Æ{3ÎnìÊÙov ¯xhvù¯®b©a üθÿ(ÏL$pÙý9àvDoÕ®C*¯Ü Ä<
+ñ 0¥ÍqÏ+ØÜÐ4<?¢¦n5¯ÏÂ[dË:B8dfYá094,²ó]¥+Rå¦3¬qÎHcOFIÅlÜ|:L':Øh+¿emws* «aÿG6V¿Ø¥|ñ@K·sFYe¥iT&½ÙRªA&:t6Öð £1·]6@ÚTÆ5²ªtØ !N
+öH_ú³:}ÖU8ï
B%¦oªãĵlB¶øNOàa·w¡E+ûZt^ªÖYrøH¿â\»ëxÈZH_CGYþØ;OÂ÷eV[ÍJ]GTTÍ}è JW=K:êwɨЯõ»d!aÑÛZµ½ìa©ç|䣬!;D;*x Ùj4ç|²JÙû9÷Ë~ɾ-[ɼèYôåT¥©[íÂÂ}<¨lÄú`õAýì¼·aÜïÕ«©êgà®ïÕñh&üÊP¼®hÛfåÆ8ë7*/wW§Rï³&
ÿ¹ç<X`q2BB¸vgIú8ÍV¶<æå(«9P@¼:íh>x |X@?Ïû|Ñ2é£U
+A-ªøº¹à9ø.$!ßŧTäØ60vy}ð:ÝhºäÂ
+¾yÜ7
+Ü¥êrÃÓ¼jf(Á¡@·Z@%Æ>Omë²·Mzy¨×ißbxU8Ö<TmÐëåH3^h.½Õs!{Ö,ÛH«yX4ïÄØ¦o¥ôÃØHÓ°Ò¡]ç3t|½j]D\vUR¬Ke,Ö I\u)¡Ge¸ÚÐE£þk>جå7ZVxdQûQ(ײæDtÉÌi`zÑÍê0ªÑ®FùuV;´²ÜªZ;sy¡CMÁOÐW½{0_}ȬPpÂA:
+ï¼ÕxãWÍÐws·×ͯv
+Ä<rÅ2'Í
+)½±¢<Û¼ÆÃÂncJâ#ÏÆðQd<µ®Ç¡ÐW9È»g]ÿº·Õû^¶q·ptBG§ÛÙ0P®Ôf¸2:Æ:WMKÖâþùyMnÕ1m1Èç&RE)wæí×WÊ_5}{eÝP¿º´°9¯hÎ|U¯.Ï¿U©~¢ê:CªÚ¼akl;ÙêBj+»xÎ÷%yÚ³%OþE|O³
+Ùë{!ÈÈÓÝ5ÄëâÅ£0KÊÆÜݪZM&Jo6sÕ í-W0{müCw1wÎ?Ý*H 9n7$5r6U/
+1|>ÏÕ\¼öÖ)_j(ßò£LÖ©Ì¢Me½çnÍC Ëù"ͧ×%x4gTÉñºT¿+)ÍQxLúîdoÖeéÑ/ºáTPrE#«Tf)ÑïÜf-ÔKqy
#5÷
+å¹}.]Cºô¿ôÊ0îÍPßÓÙ+µvÁ×ÿûç{yñúóÄôìU}N«{Âì¿ÿgúK¥¥¼ÞØÞáõØZ¦Ó¬?éËt+Nªõªd²Ò©.zÏÝ"XÈðR=¥Ë¼©4nq9x¼5ô;öKµ©êÉ14dït]_:¹Ynæ.×ÝhÉ´Í`ÌÏÃf²ã/+)òj/'
+¿`ñ¯í/0ÔÑ[Tt÷±kúÔ¶<°=xLÙÜCeÌõÖäìÝ©JGµL*ÌÔYT%}Î2©TzuOê xaf2Ëû¾¢ù*æ«w-^h°®Mí{.uÑ<¾o}ßýËys¼ß \4³lèò=ÒÝñ0?Nî8«U÷ç,
+ö¾@ ?gÁz¦#o2ñç$·5^9Tæ×¾Vl_NFñ±ÍÁ¾Ü$WIlE1i_£Ø4b
+Ùÿa¶AÐs:ãlµWGyâÎ
+_b-ìOÝN lȹÇié×5È,ª
+ITí% ¥øqÚ[1Õs°}4ªÚ#ò-1¸¹$ÇdºÙm3ÿn at kHEõùZ.¡§P
+îd.ÏãßÎ57ÜÑ×÷ºnEJåo0èIë
+e¾ |ÆB(ÇRMrÅvÕg^LCê¦rÛ8ÃVx]ȺWixIú#ÍÄĨb£`n7N'ÅGøóòZâ6Ë
+ÉÉcN»ÑÂîDC2YÃþtîL<¡Z)bÑ®6ܪLÖ¨k?
+ßjÒÓPâ{¢h¸
+¶
Áú±ÓôQ×.ÁëÙ|võóQCqÛ1SEeF&.¤"|vÓ¤%=˧ÕoWÀBö"KPbv°'¼{gö"\À\
ÄÒ¥RØR¶Üi×h÷½¬~ÍÍ÷Þïf7¼ðF`\t1ØýAzSð.Ù¼8Ë=äÚ&µ8V%üèPCÕðÓPRü#k
endstream
endobj
223 0 obj
-3180
+3221
endobj
225 0 obj
<</Length 226 0 R/Filter/FlateDecode>>
stream
-xVA«Û0¾÷Wä<HgÙ²@04}éa·Æn{ì0Ø»ìïO²dÇIÓQpÛú$}þ$סùsúݦ5ôÀÒØ
-<¾¿5?4¿Ò"ÿÞ¦åÆ»&îlå[óñæfùþe4a4ָغa4H+ßÝSDZ?P±¥mCyaÆ.MÑèFseØB?bghñ§%ãÄØ¢Ïî`£+/lCB¼%ëk¤A}´~
-uæÐéy©Â[ Ìíñ¡à¤ðl2ßr!N2g7B°ë¤À)%A3¦·Æ²¢xüe2#Jx6[¶ð#!ÒÂáá½ð:Y|]>æåôºÓ
·¬{]0ÖòóÈBÔÃ^GHBßÊ cô{i¡æÕ%lËÂbï²GÉGWÔuÈeêÿËË:
-vf;@=7·qXÇK
-°]N<{®5q%¨øEuHÁí*ö² £òªÅ*¨ÖÜSâ·,
-vv+ºã1,ÕtæÅp/B©0ÿ¤pëúÜ?âãRkfçß3fØÚ1G2ݼòÉæiIñç½Í{bHS%÷Õ÷ó~r§ö;û}Gé¥ÚwiëñâZ·pÓ %ü)bá#K±X¸[JÊ
-h}[±ðF;¯ãhí
-6íZoTKPW]*<+õz¼§U;éEb¥K¹éò½íZ°òä¹nÀÇ5t' N:×ôùÿB¤¢Aŧ¼(>DÇ
ðpïÁÙøHÐ ésÏ?
+xÅ[Iå¸
+¾×¯ð9 at U´Ë
+¨å½
+þþò÷å/¿[þóðe¶wñ) ß,:'Wùjÿþôüã>lêi]¢ÒOÛòmÑÛú3õïåÏþ¶ØÕ&Ìô·ÅÉC±ÁZ!([¸$¹&±ÌC±ÿ±D±ØÂ%1Ì4e^ú5!)!6s³Êt[y(6ôSÂø"ÑÌÁ!Ívæ9
±p¸cCÛãÖ=:Ù pÔc9¶ó±¹ö¨£³áÛ1µ÷¦öÆgjo?¦i°ý¼Ô(zýú`Ò°!
+¡÷õoËïo)öÔòõ?=G{Ñê9¬G÷nð=þ|»hóü6ê²>}zé¨*ÍÅ&9a»ô¿¾1ÄWx'=XáxzÃð> ½ò°ø¹Ò»ë³w%û<RU¥b<Õ¬wRÆ_þúõׯ_vPlhØu{ò;$²
+¿®ðëfKÈ'þ¾åçÓ§ë¾MÑÕ¢½SäTuoèf%¶:4ªI.ø#§a,dôR§°}´à ÿ4¯`P¬:#i
+OÁ&SYa&8P at pMĸ°]ÑF¡1õí2ùt È+ÙÂA)¼D:¾¼+³(%Úf.ªE`IîÜÙè>#¿\0AuI)ö1jE0YªX¬!©Ò»ªÔ&²
+M,VkEHfuKvòÕ""r°hEYÎø3VWÜcÛHòo¬½¼CÝ`Âg
+íù (%!¤¡+F
+~ôÁÀµø}ááiêô+:<ÓIUsp¤4\¯¶¼×e
+ö´ÈaÌ$ª2Ë®åIAý÷mÖÕXôàÈã@ªðP
+Ïuº¥?_A.Ãø*^1ðLm
´ð
+,¾r¯¼×?+üñeýÚ9Í`ÆëÍxôgkñKQNûÂÀ÷ìVfjâÄè³í]c=͸C×ÁݪÃë° Ë+l,Ô¸öù¸whÆõkuF¸Îì`kûË|û9ÕÁ×*ÅÏè+ïXíTã!i_üü>t}]k}'¾#wÎéµq|<û½|$r KßHÌ}.Ö*ï.
+&ñ^^&(î@Ñâ<ú½Uotw#c}©w"±q_Ú4.l]EÁ(Y¾N»ª]é!d¥?pH«[; Z at YX<X.étjqOiq!Õ=vzûQã*l¦2©&Z¿Üz·È¢zq[k'ä'ë
+âX)<âô·ÅF%xLÑñ8sp%d""3
TSYdåHåS©""3
TSYdå HCB§$E.aS$9$ÒC¯""3
TSYdåH\TUH B*©,²rP¤NKuI,\Â<¦H$sH¤ñK¢ÈÌE!ÇTY9èVÓE",0ó@BåT"ßÿç!]ýé#ìXH4Æf!BZMMmD#ODHÁÑiÃ4FÜqðÇÁ±K{ç±£ûÌÎþ%óÄÃ2ÏópGå<¸æ12wõÆi9yî³SûäÅÔ>1µO%Lí3SûÀfjLíbíC£©ÛÅ:ÕíÈSYùÐ
+¯(Ëg=à)ÇX©f*:¹À³ðæ|vVG#\FWÑs|b=<
+=CØúu¾¹´ÝÛüð2¦?4Yù~Q\ù .ÏPȾ÷>Pã äMKwØ9âËt¨'ìi§'xâ¾Î±Ò6ü±Ü)ðý4¶×/x_Ý4Íì,;pæç[NËâ±Â9FVæ"OÑÝD«@}¥WÉù4st¿h
+Õb¸5Xw;t«¤¸SV°#8¨Õue8[Ye&ð·üí.ØäÌ%·k«879âG´^
+z~|åYs;Y]VÁ±8COo¶¿è?ÛÏS[Kê,mArd½fÎpù\^·àØFøÑ{pNÙܧ˪yÿe»ðØöB&Qîÿ¨íS4MZ{÷Ø¢¹.å»É`sÞ)Á̽`ì¹Ï@Vcá ¾X²Vé¯ÈÆÊ´gï®!ÆÒÚõ+êU©ýtz1¿B³Å)xQ÷ ºÞïJOßÛãÌå¿Y«sÖqaÔÏ.lzÐÐÐ/_¡ùFÇr\ÕF#ý&UÝ«6ÍGéTÆÛî6
?Þf¶Æ6ýSw¦ßr*±×¼åp¬mß©
+ÍYpó¿îÊ¿<Ò;M³£¨ý?§Ùp¦SÐÊ¥²«ëc»¬¥ä1<+*eÁ
+]'=yÄæGí¡WÅ>«éRD;ÄîeÃÇ[:-.+¹aÂÝ«z%½z#bêU^
±àWø\S½/Ëÿ
endstream
endobj
226 0 obj
-723
+3017
endobj
228 0 obj
<</Length 229 0 R/Filter/FlateDecode>>
stream
-xÝÉ,¹ñþ¾¢ÎnkO%4]ÛÁ·¾yß
-E(Z2³úuÁS]¥B¡ØåS¯úôÿ>©ÓJ_6ésYáó÷¿þüÓ¿òCøï÷ü¸|üÐ>¼Ó¢Üé㯧?>ôzÒæôñ÷oZÍZÎ/öM»óKú`À毾:ü³ó³
aöçíß4Ãò\0Íù%à&ZÃqÔæÑ|\
-Ø4û
- ç]
-hÜ(5
-@V¡y t)æ÷ª8es2¹SdIÔÒ°ÉÈ
-1õ&s¢sÂ)`3éó¤cø»WýbÆÆ®YìÚì$NºõÀLöó(
:I i;pÝDZès&,¯Qe,G®Ð33}b¨Hä@?êä¹¥Tµ"9¼T6Ò>ñi3ÅÒð añ½£ñE²z7
-¾käá8± ~
}SÏ@±CñÑ!}vzÜzåBUR¡À§/Ú>ýYc
_zÂ.|'ô±ÐyÛ
-ûV-èÀ²¤Iã4Ûÿÿ
]pÆ*l:d¬rŤÿßÙ
z´'ì\-QRÑ+f
-GæÕǰp¥X5©áf±2ª'ç§pÅ3ÑZpPû©îÕO¨t$2>å>ý\jCÕ.±è©ÉZN`
-4Í
ñBÝ-r4qlÀ,nBE¡ÑH&cË#+È(RõÄy"ÊúII¶^%K=¥x&×£JV´@
-å~ÕRÙ²¿Á5$tK=)ámôªS+
-cÅ:Úá©Úü9yÂ<tìH4Ò(ÎF Gh#Òúkm{¾hfLP¶
Êx5=#ý>
ü¶Û!´QÀõ
-ØÖlØk
-ÃaãtÍÏ7»ärÒäR(C©¿.þ°«%4-5WªXÅ÷4<i-Ëp$@$Ý\"ZË_JÈÂ
-@¸+Ú²«|ÚĤµJZ7]fRô
¡|n-m`,5]®Õx»5Èl{7TÚ>²?U\hs¹iÄ-U/È7©ñïJ#jHùQµÐö6,ËlkvLP.,ìXdÔM£_CG¸ä`ëíHðÉÊ!q": °¾¯I§¤yM¢ZsaÏö|^¢ÉõPúIƱÈÀJ'/C>þÓÖ r"?¨ªÓÁ6×T3Âe¤ï(ìÌ· RÃÇj¨ÖÁn÷Bº`¨«C|óiTêèD°V© Ââaýjx} Ü
-z":4hyêb;4³wß3áõt¸u"¨·0²rY
TZ9'Ð*GW&Q!¶ë
È%=δ}QVp.cmBX¯
-4«(nñ§¨´ÀºÄ·"HU5*ÊÕ¦?c6ëlJMÒwË
-1%Ýîë[C;Ó¿®é¢xÔI.·= Ó·f«ÝàAwðL_I*þ¥TV )|½ÌÝ2í¨ñrÔ>¨ùmxq5)A4׳ÊÌ3¦Ò_;Æ×iq¡'·ú£yÌÖYZE=p®gËÁGßE®¼¢ÛZM
-ô?>(kÚ×M¦2K¡´B²ú©óÔUÃr"ä
-fMÞ}eƲ)Ï3e³za+´çOÆZËCäúcmáj?v"pßÞyY"?Õ@ÏîV¥=¬Àô 3mà×aÔcì±/[Ã6²lÂ
-åZÅRp0Ù§¯Ö}³ÁBºaÑ
-m Ñ|Þ"[>21¼º92Ö°»e§Ãв÷gÊ2³f)1þZåŨBùçî6¬Qk]+Êl¦ÄiÜ<κÏè:yäèÉXNI¶®÷4X?}9ÝPÜp±Ê]¹õ GQ¢RµÎÚö3d1ͳP3áç¡*Wú[e_Çl*ô6+p ÚP8þÅ«]}W£3o(*iÏlXj²GIm~âfÀ¤ÎW´°gCpÚg¢.Ø(î=_<Yt$2vÕãBY>÷%îÖ};Y;Ã6kâÁ¯v±Ë@ZmK¹£Ù¯æ_â¦)eÜ
-+ÜwôÛVk^ÿ4ç]
-">QÈuwiðۼذ°4áz%UüT½³ E±®Þ§±5ZdÝ`iº9Án;òüPJÜä}¾÷Q
-®èªÜkLíÏ%âN`^ßü£õØpB²Ëç9|õwÓ UZmû¸ôlàG®±Ë`YP¢£7ÜFW°!ÜvèºmoQq²²,b³PYìäõÀ,?«ÆÀä°i/£»Z7bD8ò¢
-ÚÎÒ_%ÎßÝYµ&C<¥ÄÐ5Ðj³§ó½kIDÏÒeuO¢®%ûF½-ç¸m-MKnr#øTÞªÉ-ó#4êPØt#&óЩGqÔ|JLÑ X.Q8iÛ4G
-L5_ÔÀ÷
-yhFÖ-:AW|)·]/CtHïåH.¼FÉïl@ÛÌ9í¨¼yÅvß¶
- ÅM
0éßTÊ
-úÛ:Âúâ)
-NN¾-Ѹ[±t'>ãÍ/M"}t/À&SV²±:«(«EXKZFÑ@M3nâSF]uîxp; ùf®·oÙ¿X§ùGâbV{ô~hßhõ²ÝoLy9
-nmõLÙMÔØy®k_×¼kíÿWZÈv]ónßHì¯vè¥Ûî:^Õ:]6êüZOíîÆS¹vTo¹ï¼s"»ægCy«ò<Üï!mY»<EÍÉ»»;²äª5µWÕÞ¥×ók®³×¢po7Tò?r`|äVÒI[즼]d
-Øà¯]\Õ=%Å'ÖjëÒßkyè«û¸d¯ÑbovÅG±e¯ 5^ÓTÜdL¨ ¥,Ïè
-W)rû pa¦<çAó`}D#«¼¿×Ýp^v5q©Ûáù ï_àÑ~Ù2ýXñ4Oî_ð{f<¡ç¶:^àz¾´üóHÃ#¥Õº¶ÉIiæíÜ
-ø7Û}økéï;ý½Ð¼2iÿù<Nóà&fóÜuë.Ýsß®+xß:tpÖîwØÀëý9¸p½ç7λý;:îÜwò®eFUKíE®fñ"BEo$jÛ7ÿãÞ¢£ôp%2w{ÀJ
-XñrªgEK§+Â0<©°X0ÆSÅÓ¯B¡îÝþeþ"à#
-ÇBb¥·éZS?¢KÎxÞpã+
-DáÊ®þÞ3é¼;/*àã7í)²É(yd1)/C»4álß¶ÿmíÌ8,ÞÍ 2±R~ñ÷ËbÁíÇ
-<ÙÞ ñºßNÿq}
+xí\K$¹¾÷¯È³¡Êz+î.oc7ø°øäa÷²ßR¡wUOÛ³e¡&ÊI_D|
+e/;óíç§7¶»4\¸_{øßþ¶ýé7Û¿¾l¾[0sÐ/6ÍåyOýlóÿýáwáâ§<©ý|læ`g»}ݸ±îalýkûãmݤe¤/·¾nZÒ"
+?«,ZDdè!©/·ÈÔ"Ùq6Y$´ÈÐBR_n©Djs$þ:Ãÿz¼¯QP¼bÄ~ÖY´¨ÐR_n©D*kJ°EÆ^/$÷åÌ=( ¢l¡¤¾Ü
+"SnÒ<ÄV{½Ü[(2÷Ha2þ:Ãÿz¼¯QP¼b¤&øa
+½ õåVzÈÜ*ã-"2ôÔ[AdêV0×
ÿd§Ãuì=Ø Ý
+äPNÙlìÞ?¥pG[³ÝçôÑlFèÝ ¨¯ñl?
ûIbíó¦ð<ü#º
+/-ê|5Üî.jä3wÐZr±µ)'z ¦d
+1yú:VOvB'è¶ø8ÏÒ'¡èXÅ÷bWüÁù_³U,Jµ2¶1ÛùqÌ4¼T3w¬f at u$¿Hz|BÉí9i÷n¥ÄEÑ\(*g¾<ô¯äOAÝdþh¯Y^
+~$¤ÙqR¼ÓÒ¡¤=7.¶ ]Ñ©¤D¬É]@`´63ÄÜ}pýhq-.A¡^³/ü%òô@jÆÆA®6O[_ÞjàX(˹+
+½bM¿$áA¾_rÖ%ª9åêÃöP¹t»õØÎ¨7þ¯;#·3jY¸Þõ¹ß¶3*ÑèËCó
+²ªCûrìAw
+£`±EØ4Ý÷ïɵ:Ábêì=cý¿Û=bxáý÷bZf|Í·C³îùël´#kÑZrÒgõ¡{²;Ó`d =³Å;h÷µÔvuK<¤ M¹áCÉcÒ¿ í¤kÈAÖ¹`ÇjkèÙÿº
ÉÎy #|À1ÁqóÖÒÝÎIø`x«û@gÊé&o·Ã[!C+´>4äÒjQø.4(r÷ËÕÒ+Ë{Úé*såUòIÇCô³S,ªª\3'=¹ÐD´R¨ªCFW¸òB LK¬9`$"
+3a¡Õ§_d¨¨év&V:Õïk+Q骪ÚeFǤó%l7îbÎs.OæM5q¾óM[¬È^V6;ôöÖ£Rý½ÒpÛ}tðX"(Y[¨+ü'.HÙã¢gà/³Kß9hQ@ IÚ.®v ûwÝlåÒEáw¸õÑÓf}8÷ü£Ü¤Òÿ(¤¸lK?àÒKOöp).- x2Ëwx RÌ`¤ýCóÁ°ä¾ÖW±°Nvu*É ×A5¥¨
+×ÄðEå¸hØñßÍ!'k¸íñøû ©BR¤Ù ×Ñä8uçÖæ C³åÚY'¤-ÕUä.eM=ÒÚ;a3ÊÕÞ**êÂíKÜÚe /ÒÿVúÇp6YbeSm²Ö[cñЧ$`P^R¡¥ð1ªÿaÌO~¥Vþkà
+Uvïh6säãP[ïÙ»%B÷ô¢¸.mï¿rÈI>!eðFô9ú«ð2¶K]jL¦Xß©Á°ÄÁ¨êî?³,ÊÓEù©0à¬30¢Ïñ(uX&îI®LÍ
+G5ñrùÁ8ky
+52û
+øeòé:%DÐî4?µ%eëú÷ÀÅ÷l
+ÁþÖ4-ÔµOzH¿ÚitÂÊ/qG![üYÂqtBæ*ÝèEH³ºÈ§ONZ¤Â'j²õ :XÙ¯ukX1îóî1F§a¢Ï¦³åÊ;á'([.zÄÉã«È!ôÒ
rWqÝzm³Á!©_Á²)¥!Ïä÷VǽÁGÇô§z÷
+8%ÂÈy0P.ÞÉ=q*¤µhÔÑ
+²BçÃ<þö¦Aj×ݶ¸>\ï\O¢ÞáÈÕrÇõ¥¼Å½WY9953Hï·ÏD³<þ@§Ak
¯8dûEPW×pêSb¸¬ºþWS'üjUö·$ï³ó!ªC§ÅhêÎÛo$Ȱ´`^Ù§¬¹Ö|çc¥Ì
¤¨÷Ûï«EÎoÂÇ&8, úïÛ
.¡ßÊ¡ó²å>$E
+þ|VD£=
+õ»G¯@ /!-Âd¬pÈB¹Æ=póõ:t¥-CZ«Ã´;bÃx÷À-vøÚmùçqdU dº
+c^Þ[Ãx>´Ñ *SÂÑPÕ¸<JîB
+®Ç°>%#Fza»XÓNQVæatùúÄuüºàÿ7sâ.»ÿºíÚuÀ5üÉySõôßI·«ðÐSî
+%b(·VÍ9>Þ0éC>cÞ.̯M_'6¬sø;Z¶y0¥uæ²Ãp
+5ûÏØ~éþUor^õeûaG
endstream
endobj
229 0 obj
-4038
+3113
endobj
231 0 obj
<</Length 232 0 R/Filter/FlateDecode>>
stream
-xÅWKãH¾çWø<ତz!~ä°·À½íôÀ¶/ó÷GªË±0»
-KhǩT_I
-gl~þi i_-?]'Ï÷¯ÍOÍßaS>ïßNÃýàϺq,gû_Ío7¤¦kîo04Ó
-ø·ÇÒ[úû÷Ó|?}Þ?è¬Öçi|ªaÃÖgþ¬P"òÙ¿ÉSÁM!㱯jAZ9v5A£Ü¶Ã÷HipÏQy<w;¨>úóÔÓê·Ã+µòÏQ;<»W¾\ûÿ$þþ|ôÙÇ#¶¸áçè`b,¼¢ÿ?Ì7§C
-âXÂÌqÓ ¿½ýq!×·ÄÉØ·æc¯/&þà;loA:l0\~u½ÍQoÙ·]ã_|º¬±&CVtÑõ¼àb4D=^å¼H´î#«jQ-Öê@æT°¼×
-äP ÜÄRòª »à5yë*&&1%,ÊVteté1©üqöKºÉ÷ß÷¢¨
-ýNÅÆÓ¸3_*TtdHÑ .Dt¤øIèùéJLXHÅ9HæäпPUk@
ÅLè̹)8£ÄÏ4ö]r~ôûÃ3æXÃÊ~ 4g¬ªBbõ9ÇôaÐiç¯a:ûxëp² r¹¢ä^¦LM!åN͹±z/iY,:Y)âETbtÍþ _yMN:ANÉ,û@_çµ_ä&;éÄk%«|õëJOþÂl¦Í§RUöÂs¬a xøKxÅ)þRÕí¥#K0°;8~
-¡¢F:ýHLL©R«Rþµ¥d¥[È»i#ª|UIºmÎ1¶Q?öåÝDAü(ÕLÉù¤SûÝ',¹±FÐÅáåU¦÷m$qªén3ÝdFGÊøhâM2!H$±*þ
-¢sv\ÕEþR
-U®.K1Ì1y
-¦fwáþm87cĪ'ÙïU,L0ù*kíjJ¡+
-tOíºóMyz)§ÇsHÀwìM)^ѶËÌRÿ£~yÿÚ¼}:}n~¯ÏC
+xÕ[I$»¾÷¯¨³¡Ú©%Jh
+fº«¾={Àã70ßåý}+
B[f÷̳f '3%
bùbQdõòl.?=ýû²\®Kº
+Ʀë¶ÃõÇ¿^þð«Ë¿pþýø÷§Ï_ÌÃe[âózùò˯Æ_½|ùÛ_V{[_Âz»Ú`ðêoîž
Gú/Üáò.Û~»ýÅ.éÞtYaںܮ^^×ÓÂsÐÙ<SEx»ÙÛ¾üöéþåéÁÅ>o·ç\/Æîfp¹IoWÏ×´\ïa»]G|"Ì_C~Âíêòêž%Z%q^ÇçmÒû° É2o)ãDÎ^ÖT°¼|úT&ÐdÐiºzÞ5<˯ÈÈþùfY9yÇûJ¨´Õ¶ÝD¯ùºÆñÐÃr¥)¿É[²Ü-¨h¼
+WlnçÆNÞHÔB?¬µ*¹ÖhVïA´¾üã
+K<C*ÍvFÆ)ìOÅEebæ¤zÓª´ñû.U©½óÛpd: FºZ&½SJ³i£è¼Ï2¯Â'b¯Õ7j¢¼5~KÚ}²ÅõjÑÚ£¡mÔêÔøZ§jMNÊRÉ«°
+Q°:÷jÜK¨XÎU¯SìÊùþ8õôh9ÅWXû¦ZM`øyBy*Ö(ÇIrôå·ñ³ ÁîýZíõd©2¾±r
+[q%z«wNvç¢FRÎu6:FQS¶o·cFðUÉÒ5ÇtòÛ¥5Æ´´ÌºLéê|4
(¢}
+)¬õM6o¦(Q
+˪VåJ©j4é£eiäTm+RÝÞuÒÞܼ.<TÚR}½w¥ýÄæ1|:0Âǵ!ºEò÷Ù6KÞ¼;i4®E£é}ìm -nsçbÐ\¼«9®
+Ó
+ïÛ&c`rþE æåºd ë1úz¥|çfN+9û&¢Ç ÜÃ]C¤ØÑæùX¦Ê¥×Æøøò])§NFU]2Ù3H+I
+¦ºù«
+}Jì¤äZ#wæÂdLÅa,²Ötï:a¥d«ò¬úéÌ
+ü¬6<xçjüGß&gåÆsýVz º}Ñ}éª(عÕíÁ*j£èÕ6ÎÔe#´ºFÂy7ÓÉýwL¿ï¬bì,
+¶Ù¡@#¾è¯DÊÊ*æJÛÝ7ÅÃßcº6P6Fý×ÜÍC
+ÓÏCäøvê vYÒÁ³çñÀAð{rªÖòâûÌÁÀAFðË.×&¯ùMòìk¨º:?\@Zk}¾Ût¿=;ù¶NøÝoD%>ÓÕ\¾^LÜ@9øôÏËïôó×;
+Ù<Jdʨ~&²eM¶TdñIåQ&#£úÉÊXeqz(l
+3[®ã,ð"Y¹N
+ó©1Y*fÞ=òûp¢¬Á«ãöh2
+x>@YábàïÌàè§|ÁQzëä])oòè-eà!óÞän¯(#D'c=¸ä5<V³A8ÙeCyWìîöv椳v;"j¢,[ó»ùåIQ tò=Q;c;kà0ÃDiaùRÎ(ÏEJÈ¡À4©ýÜÛûãF¢cç@gkø_èǺN'òØ2öMa?ôcÆÏÁDiì{V
+:Ýoß&ÿ¼NX¥h_TB
+þ×9XdzUÛ >ÏOxuÜÐú
+pyÀ«H{§fB¨OHwkìs¥ñ¦Î :ÞÌûE«ñÐìÄ:UÄ6ÈÜ߯]!7U @< ´¤Lø¹«p^$Xo»bCtNõ¯»Èìt~Hqz ÷GT´¯)
C*¶ã!çLj;ÒǬsâ]æ4üx¼F6@ÑÖ?ÝfÕ!ñ^`9-bL¨MkT5uÊ»Sü2V"$ÆA]2Swðu¥÷TAnéQóQË%ð4ÿ« \µlAö¢âì8½&>1n
+|½^,ã´÷gÏDqß
+ÀQõjÖ>°/ÓÂÊxßáÚ°x{ß»¼DÜW'â+ñaÇWz'¨% Æå*YüpùD{Ñ
endstream
endobj
232 0 obj
-1133
+3263
endobj
234 0 obj
<</Length 235 0 R/Filter/FlateDecode>>
stream
-xYIo,5¾Ï¯ès¤\ÞÚZ-e·8 N@wy×â·I
-Ó$ËwJfmM"{:ØNé!\¬u
-a /ù±¬h6$n
-©àNe[bgÜDQôã·é|ªnLD·gÒ-(ÏB<ýû4[>c4n=nlOËH¦æXY±pVÓª86lXAOj]×óþ
-êϦ¸Á [y¾þ±ÆL°9ÑIq7µF{)åñSøYüÇÜÐô
-,/#ÿw9«Ãälsec? §üö
Ã8N6ËþýÇsÓHצ2Å{0°òé]@\shÕÜUeØÚb Æ7ÒÑmí;Ë0*µ¤øáþÎd½¶[G`mÕS
-lû¦³¦¶ï¢»
¼ØÛB[[eH&ÊH 㶤¬RJikc±ãQwÒ!4Ù=÷À±rõ]p¨qÕ&8uoêÔYFB¬`®±ÒÊqn0è;©Å)SR¡"À¢DbrÝPiæ$ör¢®oØNå}}B
-o|öÛAPæÀÒnq?Õäý±NHOÒ»Y¶îMo
íXJÞqk¸òà=Û¸L¬C,w¤·èKwî9+ÊÔ&×
ÄoN\êF(Ü\ã*=ÍW\éǤ[D> hô²£[Fuävª4w¦.´ËXzn ;!ÏÃÏjq¼Ø
-ÕxÜI¶·tª·z¹¤]C5moîuÛßaî)öÑ`¥2¯å`%ä(e1³ãÒcÃ8î!©
-Æ.â{{rÕÿÏj«·`s/¸¼¹ex½k~É·¥a:Zgjtõ¹H¦¨º9º6²Ö\ÂrxD(R;fÙæ²[,¤;e
©n¼Ö2/{ÉRu7{Ô[*
-6eµÅªÙÛ¤»|êW{·®·D?ªÙy¾£f7X
-g>BêHÓ×?vú5ú0ÊòÚÝ»ò`Ohd¿D-&È{ùÎx²´ªMàKgîÀ<$pW]{5¦_QθªiQ^õA Vô®æëz©V6X¨ÊhËYb¸L¬¤d@{ç%ÃeöÐ&ø®^¢É__¡ÏÌù¦´Ê/9â+%Oر²e4`ÏÝøú²R×öÚ.¬µ¸ßiLõÞÃF~
-ºC 21®îøi¤åB2Í#ËåOuv÷o¥Åâ¨ó$júÏWÎ4sbÊK½U(Ös«7#ñÎùC ypbtï×_Øõò)ýlð{®©Ð*
Òc4I{Å?¾=>
-ÿ
+xÝZI«-·Þß_ÑëÀ¹Ñ,5ÑYï2@ö&ߪA%u·z¸Ïïa0úµº¤¿*®z×Ãÿß~ÔpRù5hqç/ÿþþ§áoß@ö)¾¤A[óî®ø÷×ïøå¿¹ôhÔðÓàMyÿïð7"
+Þ`¨<<nð¸ªJðxÈÎå±ðæú,ÓiÂÞÞÊäÊÔÜË7hÙy{~¼}¿nSSNϦéC£r®X6i'ú§âFá§áåqK"ðVöZ&í©{üaKr|ãKй$ÊEHW±üZ6©ÃÚÄ!u@
+ÄßkÕæU´60!?(zÙI0Ñ-$ÏË·QÂ_Ñðêõ(¬fF¸$æÜ¨î)®KBwJÊQ*ÕÉWÍ"ê} 4R\b°e¾+Ô&|Ó`¨$ùùVæõÎ(<Y~"ô¹,*X44
Ñv°1 óï~ÃACUcãê¨õ1ØX÷>Î=½`ÙÈÝÞv*¾ë`ðÌÇöâb\nfqÙÇ,AE
+&D£[B½eZRIé[)ùvtÇÎJ6qÞDA#m-¦¤U
+_MElIf[p0uºeÑa±ÈÐ"7ÇFqÄÍu.ò@úi»ì> ÂϤ»Ï
+Ý¢X«sêÔ:âY°V ÓûXª´FÉxÇôå¤Ïáq9¹sTáÿ9zøs´ùýa¤yÑåïæp9Ùs4ð/à¥-PNþì®°ÜP<µfz°( ÷4³¦o¯¬
+!5rãA6¼´q
'_N#@BB͵¡é§Ö?Àc§ó÷^eçA«nø]Ú{`åDïõXÀ«yÔû ÃJùÒÎßÛq±g©iR7)ÊûØ
+NÒY2Ü+£{zô÷Ex¥ÇP°jô·×JPò½MB§Ðu#äÓÕ ºh8¿-6o=©µrRæ³$òZÒ:ݰ
+íB¶¤«Ø#Ú5n¯Â¨Xí£J¸1±+¦²"ÚÇ®bضkÓ<¶E{·f¡åODs àè´ì.¾*p§§Ø§Çw°¤-ý>Ý{c¡Ùæg-ysÞCY}Ϭ£,é+ð¼}eVÙͨ#©¸ln¾*Ê¢¬§Ø£¬ÇS´å_
+QT<^XG¡nu4Ö ÐCtÜópñÊWÛ7önïvUÞVã1@=ucæÆ¿Å°×¹¨±}Òø. jÇ?
+6÷2±¡¶cn½æ ô;oóra£-SPÛ1³±5÷ÂG
+[¦2¡¶cf+4dkssè
-*ÛB%6Úm¥¡o!
+[5lÊlÚÐ&!£Aë $¾£Aken3UÙFï)
+ö¹m×Î=Tñµíhomîûä9üêh : æq<v<©EÂfÙc)9¯ ¯.p¼|,M_óyçpja>ß8Z¼¶!*ï=©JK±Á|(RY~`yçÈ*´ÜtÊ.¾éÊ"F¬k
+ªð°º¿A³×òy μ-«øª%ÿåp¢:íIã41Ê×I,ýÄyfz`ZUùVX
+¬)ø±àÿBU!âñýËA×%GÜ6hµZú å5|P4aĹ;ÿN¹t
+,VÀR#Iºùh¼î I_ºeý¶^½¶è²qu2l%l¼ðqù}ÜÅr'Z¿+mRåbt
+ÑÄ
+O¾Ð
7Ø¡l(¯#Ä<g>Ä)ªë*$ó(q $#ȨX~çȰ x+Ejå¦ë[CH'þ9
+GYS¹q.Ìÿ
+W âþ0¹Ð%¡ÌMQñêFÜþÔ«8^
>ãój~ªÿ«
endstream
endobj
235 0 obj
-1840
+2358
endobj
237 0 obj
<</Length 238 0 R/Filter/FlateDecode>>
stream
-xíÉ%¹ñ^_çzVTÂãA½Íà[Û>ìéã6x.óûMK®5Ý}2¯R[ìäN0üúòïÁ
-¯> ýÿþòÓðçOÿ^Ü)G7åaùÿ_ܦLS#âpxÍOÿhÆõý%ÐÁt<þþ÷áwOðäáýË_Î.¯xvxy
³ó×tváBQ>4æÏ._^ãÙM俾ÿáåñþòyò"¢"ÂÁ'Áã/¼22`Îcb¬@¸½uÞÝhMIS<!ãIoüN¦¹ó ää]J³XöJI
-ÇÀOÂ$Áxh`¶Áx/ãÙÝ©]BSm.Ð
AÊð´9"* W ^6î2®
-pÊ?3ø¸ÍÒ÷µÙfêtè#nR;§Bưs£!߯
-?8eÕ~¯6Å¡¼>:©NäÂØ<ó
-ߺئ
-¡1¢Ó{É'!k¼hÓ_Ï*âÜé;ó´!a[ÙyÿǾUÅ<-lÊ?½èÈlªU°ÚØ
-wòÝ|gUñMç(HâÍ!3#yò
-¸º5åPrb%<T⤺Lð4ÁE·ÎÐÄ@Ußø~`k¿Ùu*1cvÚxS'
-ãÜ»ªæ°\kBÑൺ®
-ýUÜqÛÝ»XãÜÓÊêÔû«xÄ2@%è:èdÐÀ7W/>®f[báP6çÒPÁ Z§©²S^·õD
-±ðÈH½sm,ÇÞIæð˯$iz3ZI«oÌÖ¯#oýDY×yàæ+¦YeæÖÅ^íï#n"PjàØÙå¾û$¼ô ÛÁ4¸ã:ðqÕ)ÊLø)¢*º³gSé+ûUâmpSÅ·ÉS(jg¡måzSg¶Å½¹JÎæÙ&Òà5÷<Ht:î8 ÀLaKp%TCJÁÍS{Õª_s,¡eÔÍ`9o½(IWpE}1¶'õÊï©âÉÓ£ÐóÜõvLDBM:>v½]Ü*²C,oß_ûCïRì,¯SBë®!Gióõù|ÉévÊ>m9lø}¶ØEbJ°æ
çÍ¥Ñù¶±×aÅB×2×GÝ+9oðGq#&ÊBÎ5oÀ²õÔdZ@Ó P
-j R«Õ&¤ËQö¢fÒD¿[Y¹
-¦æÕ-3/!|´æ ÑU¼Â©(ÑýÎ3G»LdmQ*´_ÃÆ(àukþxYÚÆoÞh®RÝGã$P½ýÜj?a]J]"r``eªõ¼ýè(mî5Þ13l?&õÒëÀ=çʤ6â5¡Ûl!ÀõÅÒì¾Ä~«sZäXlf"Ì{·#uöûy`|\MgäZi.ôýñ÷/ÐÀÛ@Hü:@4Y[ÿþôÒ·¿JÑÞÆ$µ1Õ
ÒêÚ¨,¬cºù .V·ÐFea
´oÕeüÝé/)ý§XÒ0i«[d£²¬Í¢ü\9ÓFOa®Ä+ö)BaGÕ\ÆéCAKk_(KÞ&Êi¥ô[k.äò½¡âî!Ñbç¢6DWN|°&#Èå;ä3 ¥
`NJKyÇUwËg ¹oãà#ZO0¥sà Òn¾!ÄzOÜ,
-@Yê$¿Ôë'wç'L¯»Ct´©§-*À]¯0ª]ª©éW±Þ2
-DÛO_
-.¢â#DL8bæ1¼DKrh×t3-íCÚ±®muºÂ´¯_!µÚ¶¾l¾[b'5Q+Í jë°Êõ¾WÛnU®Ó8îyìÉmöÿ²VÊÚæþ¨¬%·óå`±DmÉ¢mx7ù%÷aóÝVÉk+kc«jíúÌnµåR`]ÖC¢Öý¢|&qñì[Ë¢TGäºHj$ÐTÉw]d#²¨è¢N¹,ïºÈFdQÑE8%8µX*¯Ò«MïºÀFôF½
-ëðQêKjõá¿?_È`禴R
-%ÂÁ×|tOCñ±f9óQmÐų&»²ØúÒä°~Ù߬íTå´Ws&%RìÕ´4+w´ü+ges@}MYëÙúè®ÚM¹
-\©¿½+iO6çeoóîÉPÜ¿ ;òHB®×¡ãíØÖ%ÜÈçoVÃåãÉ×@>KÞný8×~Y@У-ϲÀúyAíï1´Å
-\Bªø¾-ewdî¹ý|·}
üêñwb hIõ¦¨ÃK.·ñÃïËæëö@;Ù£±©<ÓÄâEÁñãYÀ
-à¼xo£$ð
-b²í`öf¥~_õjl?%¾¹_ûÛãǶp~ä@ù>²õ8µ/t(&>t]}þų H
+xÝË+»q¾Âë½Õc½ÈîÂ@ìrÈ"»ÉïG%J¥W·gÎ$pÀÇîJ¥z?¤yú÷Äé,âW'Uüô>ÿíôç?þ^¿ßÿþãõã´îâN^è9}üõôÇ4'©NûõjÍM_½ºõÕÉÛY]Ýèô5ÀWþsø¸ßÎ.?Nÿ¥¹*¿W¥±ïð5¾:Û¼ÛàÃàüÔ¤aoða
+"è¥Oo`Të±et
=inÿ>3´G»vT-èÉ#½ÃoyM/ðy"¬f<á±Û¦ðdê.+äÇïûN³¢¿ü¼.ÇÈ´=lC
+ã¡iã¶°ãQ!ÓNݤÜlm!å
+̪f£a¦¤3òÇÏòuª:
¬¯¤T0úPJµ½è&ÖEûûÊTw÷°M5ÜÑÄ£²¾'çQ6\A¨6iõ ÁIäIàÙ*¨Ìâ;þBÔÐÄp!¸³ÐäGDfÁíE´#=9 d±,8$:ª
+ë¾$Ä·
êß¡=bPÇZfÛ>+zE»XôÅÉ·FÙË'Úúh0ÎN!M\ÐB9åíd+/ØCÂ`î§±ki
+Æs÷¡ÞØ-2*itã±ýöê)½eGlán¶lÄÛH8ÃãÄôs°û½
+ at rÂ*dkÚIDøläØrÖ¨ªÌæÊË#ÆÜÿ-0Ê^ì;Gü´Áþ_ZÚ×±°bÜ*L¨PT¸rô6/~´ZîMnLÙµKaÙLt=Ee¨_CBëÐûÔ £T~+ìDÛ÷¨jÛ¬T©ÄiÌXw¹¸E M5àñÅÊç
+ÀHAzâ;]ù¤äjþ|Fæ,vÌJø§±OE©û
+l˳ºÏ £Ö/KÖ*¬5"Fò)Ð`ÐÆ@oÓ91ÁS7ÝMCÙ¸$ÏFRÙ*[ù-MCltÓ(Çi²rͦ¼fhuâ¡}
¹_SÚÒë^bþC³¾Äù/¡¨2#3àøi«Íªªÿ 7\7!K¬ÄÞpÕ°&[D«2bíV#&2²vYBJ
+s&¥lÙî5æF°dN¸Ð¬ªçb·Þ&£ö-«%W,ìK×_¿FkÕÈÛ¦`
+ëç]×ÔìLÃ.¼¢YgÏßÀµdgq
ìçPL¬Ìê
+{½¥P¿6Þ¹ú´ó0Õm²¨í+óË-èSò7ÓD2ú"tÜJäT ;é6Ùct?*öL<d»°BcU2Vq¶¾!£;Ò;AØ2u`¿+ÒÃÎHKY*Ï (
+:ÉÂ\3²7Ûã«bÀ¬7Gs ÷bkó*zϽJj7ØÑæWÐFââûÊíú@ûG¦³£]øA¦7,¬6ÒÞs³òïvá7êÚÙÏc©Ü8çb¨$hÓÔnf4вRæéMÊã$-èÍÈäù0¦<ÌÑþÙ0RIaçiGÔÔd¢fÕP¸_É<³
+íç>.¨ö}d¹K/Ñ¿7Å}C!B1UUGðìX}ö(ÛA©=ºàhÎþ$μÒDK°ÅUGÈ%»pfƼ¤¥c0ø´¹ÕS§%ÆEeJöás±ÜµÎV©Y)aRX8½càv¹o5n4÷1~²íÖ2t½¿Þ~-cóëÕzT=²+ª¸|iöÎ$±Ò¨*NO´É½*?Þnj'SjìpJk¼aà?SÒfÉç3¨G@ÕöuÇHªR¾¶ªp©ÔM cĬâN0Úé®M8| cÚûÿ[
+ ¹¸ Y4|EÞÈf¨þÖY$¤YÈ`s§PVå÷ÅdàË¡83z¦^_Ý þfÉtzÒ¯¨mji1ä. ïa¸w+Dj4¯áf
+ÅÎé õÊÖÓAH°<
+¾¼ë
+zó`G£V,fRÊÞ.e´î«JA3¯þ®¶ÉP
+cA9l\>eFÙ*¯cQ¸õ˳×I=©u¾Ï0»iÎV×þùTÅæUò`Þ_ÄM@]»ø]ôANößö§p]ÅRÖrkSôV3Òúû1ðùP2¤¸¸IFÊ«ùC9¼xµ0¾ÚYµ}ÒvD²×ÅE$§ÎƼnÁÆuÚù²ÀÉйSI>u5~¢§ÄQë,}N3Ú¥Æün@Mz$*ø¡
¶î/7áVPÍèêÀ|d²b¾ÇfDª²-\eîNÙ3|¿óÔ"ÍI?~©öóí#{åASÀ\ªï=ÊZör!.
+¶áç<Äm¥óR~ÚOÙSócA~d ýÕEX¨ÊöÉoE
+j³q¿5kÈ{P<VlÒìU¹x}(vrânÇlÞÇÄ+¬½Ã"ÖÚm©Þ¨K¦ø
¼Ãá+v"¾ÿÄa¤ÀX
+AÛp®Ï±Jh>oö¾xþ¥éæ`ÚÑ'Âüt(6qa 0Ð\÷íÊ côØ_ÛU0:|ÌtÞÎ'½â¬á32cÕòøä"ÜHqæì¡hcU/NwÓ¤¶£<I]|CA·Í]n
+ÈÙ]ðÄÌò§ì¡WÇ\*î
+ÍäVeâéõÍg;Ö¥fçënUN\[3Ó~ÇUÑXS~7ÜÞúö`½e@Çt;Ô_¤År®Éïêá³r.yQ×_)p·w.KÇfºÕÁ¦é$z·éõ=rou¬±QÍí¶6³]ûÖïeFl´´éõÚ,,ÏxAÕx$á!ѽ,Å8^
+Ê
+̣ΪM}ä±_Î0é,CØõiK+$ü]¡àÏ8¾wIxEJ¾¹½
+øÃ%bYÇF¦C.-l¼À%
+¿á²¥5C²k"ýAñ¤'"ß-ÃÖflø5Mgó~9ýÂ9
endstream
endobj
238 0 obj
-2932
+3480
endobj
240 0 obj
<</Length 241 0 R/Filter/FlateDecode>>
stream
-xÝÉ,¹ñÞ_gCµÚR EAmÏàÛ³||ò
-ÆÏ0sßwlZrQVUÏxÁdkÅ"Ú¼ÃðóÛ,~Ǿ?ý0üé7Ã?ß¾4âôxÞ¶ó¼è÷ßiã§¿½ùôîÑÐÒoø¨í|«½oC°¶a ü»W ig <C at uFìô2·Î0PA Ëü
-$íg¨Î0Ðh
-NH³%ܸ3£ÏÒ¥3'#SØÐTÄÄÈúâë˨/9·¬
-âï A7Q\kÒm ¦så.±[ÛW)ôDËH¢92[ãsE (y±ðHÜ¥̶¯ô¡} ¡¸V¶³F¶ ¸y%µT² UY¢¨¬¥¹¼¡tS_
h(q÷¸ lÆI[dCXPvÜÂPOî1Ü+4Löýøû&
-#åݲQ¾¸R H¼
-&rtak´ý
-ð¬oU|ÄX»$½ WßÙ7¡À7
iGö¦tÝ
-¬¼ L=ëûä¤M§öfcãUåLmHãSf¨Ö*qùE¿2nÛùó(üÿ¿YvË{ì1tÞÁÚ2Ð0cö9ÚÈ$»»%¾7¯öëÐàê"3»¨
qüfϺd;%r}«Ø¿öXÿÚ!pd®fB[ðæ qh;`öÀXûûÐ3ÙC³ïlîú»âÀû!ïiM´Á:{¶lӨï
=ö.ÖÍ(¢ù+µo"ÓGÁáÚ3öps-¥¶k¶B«±%-h
¸»Å¯àº-$Ryuå¨&¯}
Éu$±î}±wŵ!)@ü~æ¼Æno8Éeý%Ó¨r8³¤{&¡V=¦n,.QÓÎ쳿CxJH¶O6¿vð:ãÇÙCtÝøë&ÑO-»ßèlp¿¸MlðGZº^5Bö²ÐܤÅùÒL1
-7Ã3äLÌ^n¯îOÏùÁêQQÉ¿Ê[¢õsÐÒ¿ãø(ã³EÕÅdÎùhy¹Í_Þ
-Y¼"7R)îæ¥çBÊÀz=G>d§LäDÊ%˶HûÞS¸µÂ KÇPÅDðÄ
ø¨¯rËoº@ªtdzí}!ñ0cB>x£ÖCáê*X¥ÊS3˽(Fµq×"Å*ÀÜô{Ñ·wXîø »ÂSr}Ùtdе¥I;[ØÒ8)
¹ À
-¨OáPH§D¢dú,â¾»aÁO&·¢sÅÌ(v\µÄ«µj- at cYö>sE.DÛÏ<¼U
1íà²}q5²9dÎI4©z£~lÏB@ïêÉàmK at jÒg5ͱSdÀ$UÛ(æ'ÅgEeö¬
-ç#úùâ
íÁ y:FD)y^<¾DÝf7
-~¤'®¤¥yÒu¦ÁW²¯Ò.@:Ã@eF\àW/ãvÒ*3é2·Î0Pa gcIJ;åª3,\T ig <C at uf&=é´ü¦"
-é´l¥Â±tZêSa;"3ý
-źü®NúïK·/¹ª,u_{K×ÞRµ·TUí-õñbü*¤ÕÈZJíêkÊôý÷rzǯ¤¦Ü÷Ëå¿%ã¾F#Y`yÞPòØÉ}Ékx~ØrY^½ò´õ`H¦ês:³nôÿD:~kÿ¯t<ê5g~ø/2÷%mUùD{Bhk&¬s¿vÚ¾Aò\jqMÕ£ÔbQSx9Ñdc?a_ó§:èõÑVÒÛ®jä{{ó;{
-m[X&îñ>*ø4b%£XFÐ(ômSû.E³Õµ·k3p1³½ v)/9µ§&Sóz¡¦õj泤·÷b%lÊ´£Ü:s7w*ÈUô\vøPÐü¢ð¬)¶&Öì¥_eÝ3a¼GNµµ\3óôÍê[å§2¾öC!\$rs.\%}þ¨©dH¸hvìf?PxúLfFní§XظHq?Ì7©¹¢K¼:5»Uç¯Zq]_ÓÛ%ÿÏå¸rpì^ÓkõÒàÉÀÛ@453Óëôë;S\].ðØ*aW
-æö3\©ÐñÉ
-®¡Ú/8çdÆ!Jp'¦|Bõ"ÛMÙÍ ¸ÇÕõ6Izm¥ï¹isßûHiõ~·e}ñëð/3ÏÁ
+xÅXM#7½ûWôyÁ>K-h3Ö!·C!·ìrd.ùû©Rº%¹»=KÁ²ZRé©ê½*µÕEÿþÔpVø´ÁïéûýÛðËá¯<H÷?N¯÷Væ "~ß~J~Ðz¸ÿuòîzÖ£`¤ÖL±~
+ún2Z¡ÖOੵSpòÜó:7×ÏÒïÖg»Ô¾É:zõ7y.vËxîÇÊc\ «ý©_ì&Á_ï-ïÂ:ôÜ-Ï;£àñ×ßî?æûékçCkâ6|H¦în`¯Cá8_«ìvcb·a[3KÿEÚ2^æÛ¶-óK¿Ì#75ö|7ÏtëU»nÁ%}
+KcÇu}³ËЮ7=µ}n
+w³çÇ÷Âç¼k±Hà¢5å*j.
+Ê"´[+b¯SyrúeÜuûCçÞkEàwZ
¸ ÈþVÛöêó~(A`²/{QÓj¤¨!oô"ßHQ*x0pÃZ£ð{|0
+(HÁBÄY)¤è^Ìó~γì÷z¼ÂÚ*ÁDæQ-Ê
+u jZ¤æDL¨Úég1çÌa¡*ÉÒ2ÍZ ì
+򓮱
+yÄ-ÙŶ¸¶§%û3É2SãA²^§§ý øÇ#<]ªßrhÙ= ·rKáºOÖ,*ЦõOV'¡)YWɳÄùéêe¾êN¦ Á^YïøVªeÜ:uÙÉTÇÃê]`UÎ÷êßËDñÝÑlû)=Âw¢ÿ"Ò`·3-TÓê=Qº@s'ÞÎÉ+Yr¸ÅÁ½op1<Øu3)<Õ=¸<Z¶Ì¼.j¬ ¤$d©ÔÂdÛÔ^Õ$#Xéõ<
+óÑYJ;â5'Ü®
+ð©tuA;Co¸Qaà¥ô@VMáîxÏìQ[ðÈþ·Õ<Æ~ÞRú ©KeZ|»7évõÆa=¸q#k¦ÇÏh(5È÷ïx 9䮹ä$Ç\Õà:³ýÐCx~CÉÛ1,Á/[³ÝóÅõ]GÓRcðÚ²1ê9·=ü¤>/rû¡ñUà1OBÔãl]v¹ûè}A:
Úõ%ÖrT«ÈÙTL?(M5âzv}û<&ãn.uXXrªÎ>±Ã]¢4qO+W¯²EEÿãLöòd¯
+»¶F³½mZ¼ç(%?bó1JeݨWîÄÜáë.NÛcmïyyåeOÌ+@÷1E¿¾½¾9}þ«²
endstream
endobj
241 0 obj
-2599
+1352
endobj
243 0 obj
<</Length 244 0 R/Filter/FlateDecode>>
stream
-xíÉ$¹õ^_gCõ´ ¹Á·±|h|òÆmð\æ÷ým!EdV÷4=Ð$DBzzû¢¥Z½Àá§ÿÔáYá«Ï0Ñóçþò»Ã¹~?ÿëéüþοøCPöðþ÷Ãïß`:>¼ÿóÓ«QGý
-'|åÏø¼òÓuª:íñyzUçã3àwÏ&ËÏpüëûnïO?-1+ý>:¤q»
-ÃïîUð3
-æ(IãÔNiâvÊ¿}~RØø%uýéOhípø|0Ó£·ÿþ¼¢ÉA XÑDl¼ÿ{®=D§_âÛ¶~+Ës:zÒèUX^Q,
-l
m>ÂNR0ÄyoÄ£ù¡t$Ln£D¹Ü
-)»wxéL£èÃ6DL¤éÇ©
|3Ä äÁ¢QÒ-ëGµhSî0"&ÇÊtZÉtÒ·b\$É
¼DB6BU$T¨YB@¸,²$sðUèÉB¥ÄÖF¦&ü
¼d
-xÍF´ û" ·#¥püjÄÃÄÅi@´sDÕ«
-CH%K
¥@bäJ
-ycEÛ¢hÖÒ$Ø2@évX'ï·xfy?å_R¿8ó«ÙV¹ßÚп%%eÛvñKX^®³7JìR5Î-Ú¹JÙ:RXüV¢VÅ»xw¡`¦)V*×\&²óöÊÆ9lFÙ2}ñ$²t'V%üd'2¶X*¼ÎZ꺵èp¹RYY`1Ýã².ÀÛÑ
-æ!Fñ7âÌ(HJm=jÉYt1U)%Ú^RµÂؽK ¦IG±Ëéf6Åp5Kào%Pú0ÎeZ%/PºdI|½J´ùÌnù0NñöÕZÞdhP³Ó5Âf^³Xñøüçö·¡.x\.,ì'νO
×¾·ï2üÎÐ]Æ7XÂùõ,Î
-°Í{ËMp2rÊ ïF TN½qnÅj'+
-\Ú´?§¨¼0³õ¥Qf*n!
8LÐÑnÄçgrH÷µ>Ù½Íy?Úä³~æAD?,2ÂÚ ö,+n61'¢Ù¼s½è\ûg¶ðªÃ¦}%iXb{^B3ïÒ·ÆgÎi§»'RåóåZ±Üsù*
Zç!¾Áãro¦0[m3¤ Óîe·*@Pk® c¬¥ÒÖà¿4½#@ðÖ#!¢Ü$*D
-Ãò-
BN&Üðã7ý_;òÿ¦À©AÂTw©Pk¯PÃ×;í``LRâ`ÂKMmCDûU¤¬wzu áÌ¡¢x*Ú[,ë¾yä«i=i§c-{DUîuØzfû
-Ä"̯³ ZôbìÙÒ¨f×1WÙÄzÿH6)óxôm#¸:Êföé(ÛÇ|änhg3wæªSËkné¦Üæ~´·tR¶ ¯r~@!mÕfËüð`m6R["í1³±hソÂÝÆiÁ=wf°W7Ð% ën^¶lJ\·f£±Ð6Ö̲WT1.¾ÙÁ§tZ)*s©km^ÖQh7$"5¥Ûu-æ}élç9§mX©L©)jë,K¦\.BÛ](ch
-½q B'kkqï*ÈÂz9²-9þHá!Ù5{ËPN´@}¡ìÀlЬ^®hBÕ¥pJ[#[ç£öµpvÅ©§U at 7t}Áô,½¹K<~/ÔS/XþÉ3fZ miËüM*ÚºæiöCÓS4«ÌKÞÓ@²+ {« \U7°Á+«±_=¶¬
-pRß=5,Ïo&÷âçó«[ú]Ô1xfM;môIñ¾|jø/âÓgmftQÿ
Þ
-B¾þ5¢£þ¶gQôìÎW½;4énOö/çQ±ô+¯ËoNî×\å{]È<KruÍ'IM,{:
- |5Oî¥B|u'õ*Ù2B§É°8±t^ùÉÐ|$¸áÆbfXÄ×H2¤j_ý¦ÇÊBÈå¨qt0ÂU3)§/h4WcéFÆNï4×Ù£Ç`:¸h¦rÈîåÚ[¶0ÖÓzî®uëXNp¾`×מּb:.Ï8îäG¢µª+mÁÞ#Ô ¢é£!C{SR¾BÈpn](êY©ØÌ ·ùáë^T»@ }úˬtÐ5wÝì§kî6·EQ¨Äï(õ0Pé °õ$¿ ÔÃ@¥`
-å"¦¼g ÜC@µG V ~/@©J"ÔÛ¡½ÖêÊ0»tå#×XÄ ¥X¸åÆòXÆÀL{¥¶ÕÝTÇXæcÁ¥7Q5¥Ökk©ÚÚZ꯶Jª
2¿ÅªMÈùW»ÅÚÃñõo±j¾ÅÖ5o~×#ëÕúã7X{Óü¸Á:60Ú«YÞÂùê7X$÷í¯©Ú;mm ~Õ¬ço°öþ¾ÁÚe軹ÁÚÑÙÃ7X;¹quã7X!èÕI|è«Lô
7X{Ôüz7XÑ/¼ýq5Ý`]ËoÿÜ÷H¾ð+ØðòÐáfpoø®ßø«`þ¬kÜeíÝeíÆ×Ï,?n³~o·Y¥Tnõ×p{nù"/õWó- L/kÚñQ^ç*®q6 ¦fWèëøj÷Ã~~±=áø^NüBl¯¾?Å7mÊE6Ï
-Ða<dús~ù;?¡ZÞà7+{ÝG2¢ÿö CLd?OÍ;GÓqÝå[
+xIGðÞ¯¨³ Ú¹/P̺
+¾ÉðAød{Æ2X}ß[-!jº2#c_³ÄU_.ÿ
+bütRÁÓG|~þsøõÝðïE\1ËÿÿºÁÅ V©AkÄ3oï:üç×Qòê/ôU¯?Üõ Ãðúöq÷yTRÎr
+:ô´ÒÍ£¤õ$^æß^ºÜ^/è¥3³À!Wv ¹õÎ:¥ÕÎzå=᪷^xáî°göp
+pÚh®pÚ'H
+H5 õIô4HXMGéðÿ]\pÉ!ô¶®ãª7õýæ{?À®r6@L¡9qwϸ²B´SÄI=«'Ôh´0èPUÖòAgD£ÓêXCc¸[ȱIIÒF«õÜ2g!YHw7rEÞnp}ÉÃ\w÷ÜÞ1$ø<zþÊðõïÓqõÓ®Óq8IYª<É*$Í%
+tÉmÏ 5g¸[ÚÌÎð9#D]Ð
'¢ÂÇgP¶zVmuP®ñÑ>Ú°pz;ô«>pû(Ƕ_YòÔö2¬2ònøq,p¥h²ä&¤z
+ at j°÷,b(©Ês±þ®Ccبë¢)ë%[qY˦pîºúSÌÉ@I]÷¶3¼SÄ+¯NÇv_YñÔî®[ô%nXÏMñ¬ÝÔ,¡*Ô¶KÎe3Q;+
+ì¶
¸içºp
$ÊÊm¨¬u½ÉF'7ZW;ÉE
dC9Âʬg`¢ÌÃeqJû=ï¤
ôlÞ7vjde|FKFJ9à7Ö
+Ù.¾®»ñ^ÙÁQ'
+{\#á½MãdØ¥ææs?u\}ÿ
+_'éǽ4[F>{mºScû¯)±³&{e2«àöòÏ,,r(æâfëpáóå"ã0mÔáKùH¿ºæw;/LÂád¬_HHó¡Vêã1ÈèÙtançÃ{E1¹fF\EL;úä
+k6G`Co²úÓÉt'Áp~±'È|äNªXm5è
+&ëvuW³¼
+«gó©f~Ò]þÞhIÙÙñ<õsÔ
+wñR.
+}k)©SB2Ïzà/UÈMBÍP]ôHï@¢v?Tí~0
endstream
endobj
244 0 obj
-3297
+1729
endobj
246 0 obj
<</Length 247 0 R/Filter/FlateDecode>>
stream
-xÕË+¹uß_áu ;:GR1Ømw »I²²J2ÙÌï缤R=T¶ïÌ
-ÜUÎCç-äÞàðóËwxuô
-4
-ñ
-¬
-I²aÕ<Ó
-0Ä-Ê¿}yaÿÙº$¼¹£ç^zg\ù-ÌÂTßã)±Ò®cÉÊ/Ä"YôÜä#kâbeCÏ?ßÐØØLòÖ¶P@(Fß(áÉ,3ÆÉIF#/üð<
-0&x îÅöDFÇú\âtéá<õÐxH>Ò´H+õPíQ è×ä¹Y
-H+õPí
-»:é¾/ݾçrd©ûém©àém©Åém©ªém©§J
+ñ«óã È«2
-ga}É,Ð:Íoä
U
-¬Åò^WÓ×>µ»RÕ(©ae´Øó:ðK¶~ª·êòü;4VY¨°uŪü¬[ÃdãÅÔÕIj
-Z0«4{ú±JSK<ízÅ}§ðùÉl3<êDãºCª©¬¼AæSß@]¥{®{¡J¤ï
-BrÇ(tÅoHÖÀë>x¦:R¦QTÆð¨2&F*÷±èÁD1Iu46áª/vA¾ïaWì´äÁ9Å.ID¥Å'Ì¢ Pe%ÔYP®i§u¿&%Ábë&áVÈÂplW MUÈI9Ï:-úê
-WãAqµ1c³ûÝY¸qðvZY¢f °»¨}*6
-äËmÎK]4C1Îfÿ¤«÷2©c¯Ú°¡{ÞÂ*NY¿Bê9X,âU SpßÀËz]ô¯}ïnÜõ÷Ï%ÚàQ {fZ2'5Ùâ¯Cùîg
-{n,ög^îϼ³×ÿ¾xÞµ´fÿðÞæÕF:ö¼tåvoýTp/æ8×Kß`&-ånÝZø
-4;ìÙ>XñQÉ*çEë:ë¤öÓM³§Å¿6#uÝoLF¬#¸æÛmNyÿÙûãÇ $°µ³)äÔý5õ_ó%±2K¿¿;¨`xÈz¸¬=Zæn CréZ½7ÀÙ!='bª£aÁïG>¶1Ãïnö÷î.Dip`&li}{Æ=s«§_Lÿ^ÐÏøâþw~ þDíüKáì
O'|C¤1 ÏÔOÐýÃrÊñ¶ù
«éWé]²æ3Ðÿ%z£ö
-ïKÆ·O>Ãc¸}-á[ÆÑ%ÛèoEãN´ä#¿KÍßá Ǻ
-cä\ø¯>.Û¢ºj»ÕråÕjø®'_}®¯®9lZ^åc<Ç|Bw´.ââ*ÐIðyãÒÅtø¨/\ÙhÒ¹Q?C*?ôD
u+jJöÝÔÓ()$#ÊÈóÛ:OwMPwv~eÎk<Âyºbp
-3¿kTÜõ·áWé²à¸¸uþÖîÔ².£fÅÙ][X@?fÍ{¥Ã·ãì1k¥tÓ)±Wpýþ¼½:X¦é'ï@ÌÕê½ý¡7=äþ|L'Ûõþ^ v± z?ëpím.ìªDÞ'¢úI9 íÞÈ×9äD¬ªz¢\ò)¦Óãä:éfoÝ#Ñ+¨< |{{ç=rWr9#ä}H /d¸%Ë>8¨|"7·Tߢ11m{²-1ϧ768 p|Õ¬CÊMäóûº,³îÈ;Ø<£_ñO»v+VÓú|k¢sZGþl¶Á*¤ÁÇ`±Ê
¸|MêZ.¦4"ýPq«¦æRÊÀ.e%¦¨=ÀëÄX/¸Tu§Í_ZÉØ%=ñhºÝxB--òì¿D>½éÜ{QÀ¡F¿]õomË6ú×\|_©ùüâ&,ä£ÒyûÒÜ(u©õo<;!¦î6yOK´ÜØ[('é»lzÔ]nýR µ¹çOvºG-
-¸÷UKF3ûò)7dÜö!áàùT©9=~ÞmÉ/x3D¶"âÔ7¦*·%¥Ã,¸±atÁ~©øÔü¢Ïq¯5°6ïEXÓUh>JÔ9µÎU-GgÖåò8ß
-äÜKËòYcÍL.Ó[jÓ³}é~/¢r÷·ð¸l.Eý+P=
+xåËäÈñÞ_¡ó@µóJ(ÕU%oc7ø°øäÝ1Á{Ùßw¼22¥T=ÞY06JEÆ#ã¡6¯vøåå_N~&ëà>þiøó§á/æu¦ÃúÿÿöbT
+lÎ
+μÄùòÈá?Øñöþ}MC6þÕï?¿ý`ÇáýËg3O'w¶ÆÚÉç7ѦéÏ6OyÿÃËýýåó¼M(l wOD>Ì9jîæÜ-4¦ènÓÉKsñ3°)Øä\`ã=û]^ÆÁ!cp âkW;õ2¬E ~¦#¥¯Î nâÈÞu³É¤s
+QmÉv(½ª¤éwº
+Ü1 at EÀÒõêNxZ/`§°#îB½[ÒóÄä5³ÂB\ØF,Ðj 6ËïëRÙêÒ²
hX0G*º¿Bá &¸Î5óv`ÙèÁ9aÓ_ÿc<øÒxÿû'îÕ<ÉS^.¤<Ó©OÏlÄjl÷·ª¶7Bq
Ôsß5È7øÚÁêÁÍÅÎjºO~'RФ;nS!±¾(²K»
+îª#}DÔkî)(´U=líêéV¾7«a]sDM#þ½
+mëiÃe%La!¡N»¾=Z4=³ø ÖL;4 z}Fó1²×ª´NO¢Z²¾
+Ë
+ÙMST;ݺ£ÜÓîáè6|å8Á»¼}GH²Qï½XèÜL5JsÑ<lé-ÊñTÿ·.ÿÕæE¾& Q÷]eMö4wt¹Iasä¼Ò!°ácÒD¹nébºßu÷Q¤
bëÞícõi3²¤Á
,ë¬PLñá\ÌË?¹ôo
+hè£ßdï]|_co v¹í¡e÷-@Ðâº9&*I`¡9¹ì ;ÞAKÇ7ßg¡Ê:Ëùj6«PoASc!È%¾,±¡/ô-ÝÊÈ®U_âÒOIlÉW©8wÙÐVñ¶o!+`¼@h.ÊÆgå dÈh®À»¢CQ1¥6X£St²).<TK9¼à»;>öxvhk¿*ªm_æ,N¬¹y²/x¸FÙ6os(ô2)Å79Þö;Q»%(;¦ë¯ô.ÏýV·Çc ȾS-[®îß
+Fzpx(":D¢ÂÑDx*":D¢ÂÑCÈ«X¡Ø`tFTJH«Q ¨°
rxÑcÔò¢tÔC0÷0"g'ÙRßñ©R5w¬µeׯj«µ5Újî¶ZëÝsw³º³-8qhµ®Óâ£Ô¶>â¤}fÚ5Bì%JÐþ6CÀ¯Yn8Hº,¬µ °~¢b3êAïÈòlÑ.(
+yìTQTidUÕÈe/éÈÃnx/¯¼Ö \£¢X!|ÿ21MÖÖû77ò)-Õ7²×j ^ɨb¾;Eô_6Y$2>è¡phç:ÛReÑLg©²¿Ëã£>%°KÇ$kGã÷jÇ1,D*ìaý~«
6I:pxA¡Þ®íÂíX"kFò¯__pèùËÐeÿ
@ù§ðo
+ÏTÎ'̸ÚÅ!?ûË:æÒXµLµ¹÷l´Í
+1Ëþ½QxÇRÛ¶Þ4M#»-áÉï©~x ¶oæw¥ßLê³:fw¸¬vãyc ëð<]ï$èrä+Eá¤ÒÒ3yÃÇ7|¤úö4ñiÂÌVt¡]àá*;3ÑcY£«÷U5©4ú ©MTÎ}¨p½Å}Olñ½)TÑÊË«jÆê/Í~@oJ
l¬ôâ겡yÔ
+ÛWtª·dy\X¥ºÕã³½Þh?x½4´ÏÞcÕUËÓ¹qèG¼¼-TfÃÎ!^Vzä[Î©ê±¤ê² âÜGâÃNø¸§¾p@fr¸A\ëL¡|7gÝfuDá¥2ì>¹wZ èêp"á²}çDG¹HÔFÿ¸.³f˦lÿÏC]§'CúQQ¸]å®Ä!Õ
+§£!Nøÿó)õ#¸gBàwï'Sjä7w®I!ô?tÝ9¸ÇnRè·" ÂH$ ÑoE!)lá·ñïT!Ô Ç¿I ¤Rj®T$úH!$
,´Çþ¼£ªý±F=1sî¥õ`¼X )òw÷æ
+6ÙWü¾v÷U¸ÔSsµíÛjmà¶Z[±Ö¦j«µ=¾}ÌÖºÄýcq,wöݬ@§5É3øÂEgûÂ@sÍNq :ªéMíaê3¬-_b¿ñØ|vÝ1æJÕ é½Ä
+lÉà0¿j4nùð ®¹6²m¤3O:Â!ßhTì¹§V{pÑ'½J}A_~D½ß '¾Î~l½ÎºVF}
õøIG7ûßýÐ×,4ÑýãwI:|d"_¯5$ÄcýºõëÛÜGbOÚ\ÂÎìò·jsAg©}òúïnsAÖè>ÔhýO·¹ó¥×nÖßU%à/ßÂhþ@g°µúØ7·9¥³qøç[òUFÓ3úZg°Dh 2ìÚâÞmDÞÑÑ
+YFâYè¯ýáXôÚ\y1îOÓáþoLt¸
+Ù_>1 &ó
endstream
endobj
247 0 obj
-3270
+2540
endobj
249 0 obj
<</Length 250 0 R/Filter/FlateDecode>>
stream
-xÝ[Ik,ɾëWôÙ 9#r-Þdðmì>>yãgð\æï;\këÞ3fA©+ÈX¾Ì6/púùé?'sz6ô1
-{`àÆÊÒ'±.JS=©=î$-
-ÈMXISHuB6±ê1üÁ
FȬçÉÍ(¿v¼ÆÚÈñaEw$3t82VV¤'²é$Ö6ÄF|Iëd'qðêàú±y8P°]ÆsʸViªjÑDYïüf;GHl?ÀlªìJYg
-»@^
-õÈÉG5Øó\ÀsÅAo '
-¤|:!iÀóFÁ¶EJ!Z)©ø'ä=Åô®GUG+={ëê\'y¼Bö-¤ÎQ¸ÞÄìÌT8ÏTÏt@Ø$®+é{q1õ0îv½¶7vCÒú®©{º[ÙqóJãì;÷àVç
-Tï$9\5Òë Þ0ÀVÉU×È#ù>ÒÀmn¥ªÐ:C{16í|[P
oBç-}úºWç@÷ÿ716ôUÏ Y7÷!¹<ðí\ú¶·Ëw +bÕ¡ri[&¹¬5ëxæ`m¨Ó4w°êòJ¨e¡6ÿ/òkýd4ëDöS«>®yj/ɯCØ[w +}ô\ËS¾yÿSHÂT£H4EFOaÞg0hõ
-ذŶØU{4¸Ö°Õxy£ÇIÍs¶è,Ôf,æ^WÍLu,Îö eÚÖ4ö8p²ªÝë>: ÒB]";-1:úôÊ¥ðâVMþôª'ò¡ô
-ÆhµàbjY®½¹¡|m#Ë0ÇÞt5)Zh¢æ'½óÆ«;0®lñ?3LòÔT¿Ê±YwsP´Äö׸?³íí+«§ë¡IDÝpÆ'Éç:)÷ȤÚ#cê$ý\&Ôz=
äÐIú¹L*=<©õ2éKÏEªÊËl±ÂG·r¯»+ñ¶X#ïMs-µ·¹*ÚÛ\^µøÁ;$C fö
-¬óô9þ$õÐÌQõ¸B0rTRn9õ2n!÷iêÐ0@
-Áä0<âMôÚè¡ØT6i¦ÃÙNÒ±JÓ¸+-ÔÔgªÄ½Ì
-²MÖ,h·(m<ÉÓa:MÄíV¾Ü8!+àÕÅÍPÜÍ©Ýun'fù¦ÖáÄ@¥Gu«³"þüò§ì;ýâþÃ4yõD8VÈçõë6ö÷¥Ì?²Ðk×e{É$Ç&[H6å&@X/ó`õÆmhÀcddëd
-Q£]öÁr£ÝµB¨~$±#Ç;íZe»e ñ°5v×
áuô:g
-k飨¢FHÏÖ}ÆÕ$ý Ï´ G}¦Íè|æ¢ 5lÜ1÷v:¶¼#/ß~±½nA£Ý«¾ÆAÔ×Im0Êç2@ßÌLà¿fv4*Îu©fغ@ÞÊ>Ì÷Áçî¡&[ÝtÛk:>nÛ£Ði3ö¡ó,®S2cRð½z×^@ò;¸ò°*;~T±ÕñRâã@/7RÛ*:µ
>âæè[7fmÅPÎKúÞQï´\æË¤ì_@·µ)A7ÅÜLy¦5p½]8A=Fa·CuÊ!)?épÀ/L,»ÉA¿húEÑù
ÄÛÆ»LÛÁ;eê; L'nñÏ0¼¯Wmj²aøîrÃr+ÌW¯®§
-ú,ßÃÔ,
-V8Ë &õ! n¦ÔÛoeW07üygkÈ®º°ÐÖòu_8÷¾×¯3²³aå.4>0õCKäÕ¹?³®
¼OìáÖÀaí~èKØóY;ö¿úT=VnÐKrº ·m$e
-ôÉYè~+×ó¦lFn±ñhôzVLë9Àz!
-±5ÎÜÁA`Ò+µzs&¿L@mw}¡9ÑDCíè)¶É1QZ-=ý§´GÙaî¿ò'
-ôô³½(P8 >nHRï@òðEü³y' E½ð wÂCB=íö
-õ¯3<XW²_Z@ø¬ãÐÔ«¶ytÜŲÙ5^Áq®½gxß²b
-²Iéñî³ûå9J7+nÍÈwrì[ÖãÎÔw¡OO+Â*Í1~MïúÑAÜÒ¯ç6G{?£cëwº¶gÁ²%é?úÏèÚ´¯?ÃûôLÈftøê'».GçԴ`ô:eÁb«FÂóTÖaWýT
-ÆsUßJÝU]±!@oµ¥øÒ·Ú§RëfMµø;=Y<ú3-Õ?ù¹´ß¹80×Ä3GF9©u|L3´bÇ×ë\I¼Ù¬FqKÍ ôJyÕ,×£wT¶ë¥¸Fd«}6<´ÒQS«ÏU,ÑN£¬µÂ«ÖÓ5hY£
-sÅÕ_&¥¯¬÷V«]µQíø })Í£BEvYÁUÄ¥4±
-Çywc¦»¬)²j#ÇßU^îµ¾PÜUþåAZZz-¥dÅtµTmöÛ
-Üûi
ãSÜ1² ý-_دá¸#°cÜûYEàë%ß-Ë;J1¨X9HYÎsÁ5@.§,M^1ÞìÎ
-Å×â<y+l{b
T1'f¯/r¹yCÛÜAÐã:)Óþ¡}¯µ
+xíÉ,¹ñÞ_gCµ3´fBSPUÝeðmì¼ñ3x.óûER®ý^¿Á¡!I¥û")¢ºîç§ÿt}wêñ5ÃgéùÓߺ?ý¦û7OÒßOÿxº¾?ALÏ©KC|öÝû_»ßÞ!tàº÷¿ÿøîgÿ=.ôç{I9>½Oé%'àÕW~ç?¿ÿþéíýé9µÞ=ç.¥O¦;
+2%ßAüä;â bx1ø²
+ÜsLo ?ô-:ÿ½âO¯q¹ùYØÌŹ/XÇtc°{Y¦dOJX)04æ¡jìÇü½ÊeßgBB¬dá-¡q¼¢ÍHÊñX8oy»\f_Ü¥ðwYq½4Ü Ù0|tnÅìýþÏG nirõ²g
+AfF;,0.ê«Íb¾©ãÍxÁ+Ê7¨®-lz[XùÛµ:¿Û-dRÐe éMG5ÝèÈ!d?L?®ð©éG¬üß=¹q):ÇîK!÷u|ª£/»Í GüýsT ~7 2Ã@6Ã@q$vHÞHg¨ÎPçAøÝÊÙ
+BÖ9#¡(Àoô
+àôpâ6!)=1~+vaý{öäí®]¥<1=K®%ý/O=&»fK=ÁsÀ"%yç4ãße3kvpÎ_æ9&
+Ê!}µ²øRcW=
+:Ý4nÊÁ§$7þ¾Å~Vô"¼ØBÉ)ÕqRɾkÚmñ²é¤±×<bó¸*>êuªÑ\âµÆí`w@ª´
+5è¬Õ\An)ô£h²²Æùd?¨<mx ª
+p4¨*ÄÄwEüÀÎ_a'ØNáÖ;aé±q?ªÍ¾Áÿ-[Ã7+î3oÓÄ?w¿Eh§²¿ñ£ñÔ:3®8Ãx´Pí/OKµîE
+npaíâ©:R-¡xýlÕ@w%²míÁ/R^lë'·ÒtíD&zâ£ÄÊAbÿ°Ó÷V<rÝÀ4{@wÀ
+ÅþJ=^éô×õ$=ÅmÿF
+Á³Âºhëîû|
æ\%£kæ¯ÆÆÅ
+æy¤Å´H6 oðj³Æ³2¼Àx¾(Ðá&ëD6|£ÁÚ°0j7]R©¹GÚÅu×*Æ«}: dqÞ8¼Ùp*«»±i4dñ0YWMúв[z÷kl2¯k.þaßò^âäá.ÛÑf|ÀÆÉá6÷¿fã
+ÁHáÍĦÚ&8à.3MWôÇ4ý2J@¡÷sÀn®Ü
+OztG˵Zv±Çb1ó¼Þz¾,"ý¹¦1)Åkõ¼3.ìÙv»ýþá1:È,|ßòdçZ¯]:r±µ9ÓÌØrßqn"í¹×¤p¿¸2S¸@¤ûAAWº0HáïÚiÔEí¢®6ÛÎÖnº£mW§8¿GÔêuP7ç¤1Óèoèñ|½¦À×0îé*´KU9¼æmífÚàéPn¦`7SªS§'`ÏíæCÂ5.)Àü˲_@w`é×8ø¾Û¯:æå]ó:Ceñ:Ãõqï¼u
+¨Ì0Í0ã¤
+ÄïTfÈf&ÚA+ï`ªA+Ö`ó`Âý` W3&ÿ
+ǹò®M¶¿ÝmNõTdnû:¸æV¬£¹©êhnõk¨íÝøû5k>³_çF½nòßµc³FGØäªQ²ÞFÛ`:
6IÀKùdv¶l[Nß¹±ÿövÎÿÏvÞ¹ÆZbÅãѬ1u
+cÅé%WÓ
+DS¦;è°¸®ÛêõðØdtZ««©üv±Zïõ|¨ò·Óóá}ųbu¸#'1V{µ&&žL·êÙ,6¯»@w[FåògEßGåaPTÙí$J*ý¬ùÉ~ÝÚż^Õh:%eKòç"i¨©D&r2Æ'Y«p}o3ö<W#¯r³e-gÉâbÄá®gØ&F²ºÎ ¹µÆ{óûÄ7'm&4ÅÒ Mü¢õ0qjÙü¦Ìih!-B5$Yem¬ªã0È4ÏlûàóD[&Ú
+Ñ$ÚT.¸ )/yÚäf&_¯-A½bjg]i¬yÊËÔ¶Ó3³¼ÁQ#g3?{H+Zfg*:6¥\-ÝkФܹDs²|nóÆà´^°MÈ÷yz"Ù*6
+#
æs<MZlª¡ Ífrfj²É~¾!
+&k1ZQåñ$öÀÒÝñÌö©´ncc¿f'ã®mh¾nîæ÷èÂK9SF;ºÛ|I»÷²pì]Åözhá´ã0»<:l˳%ï7
+÷êöÕÔö
+òm[ÀÁ_»l9YÐX)#Òª×8ØûQýkÀÒ$Hiq~ñ[;îVBMF?GFäÞ¯ykåÖiXdÓ¯lÃ+ÈöÚðD=.Jß¹
+}ºOiÃØhK¬7íiÖ×Ü~*$g?ûµ/¿ÖëÆ{p4Ëû¾³v§à³þ=XSòQ+¢×ð/ÛÌ}ÕoÕ
Özõk4DÎÚ}ä`xtø
+û9}o>ô!2MÛȲµ_Ýf3a¢²6ìÁCöÙ6ö5C\UP3\`¯ÍÌ|ù¨kk¥¿¯u;ú^ѤÈ:û±_
+ù<
endstream
endobj
250 0 obj
-3037
+2766
endobj
252 0 obj
<</Length 253 0 R/Filter/FlateDecode>>
stream
-x½\Ko$¹
-¾ûWôy;¢^U
-t·í
-ô7@{+ßDçuN¾þùËïÞ¿<ý8.æüËtÉsÂýåÒW+¼:O¤¯ÏÓôêñ¿ùÕÝ®ÏéÕÍnG
Ê·¼øã_~æe
ÆeÜiƽLþ¨ÛBáccï#ÇpQYö²údâÞÊßwü>ïË_o¼ä:ïÝ÷òÙ;ï§;â>|C7E
ÊÂÝ
-`n÷á~iÓ¦k¦»q× }M¢ðë"&Ô\Á£àNzçÚTÆ%+´Þ
-
kÆløQ N@<6:h+¤)æã!|w»y/+Ï=ßÊqá6\dUTäþVðÅÞpN¬oï%Â
l½_f²Kr·hr
-L¾wpo¼ÍAÒUT¤Ì¥ =ò}xÄù\¯øÖ "¬R˯ddÝ2¡hì;¼N¾ätnsı¬<HªccÓÖ^w BZ
-½jFØ4oìËïÅò
-HóîhrXùÄ)¯~Óî%lJ/é1|oâ,D¯ïÎu'eS»1nÞv,vñæXV6'3ÑÌ'aA´µvÁ¢»õ'î]]à³÷ªêÔ¼È}1Pl(épëpM}Åë©©CÆ¿CH[R_Å»ê
µ#µ6øÐ\¶j¶LZ¾B¯XJâSÂçIȪÀë5gÛ8 "&hÑ
-ô-js1(íÔóö|©
-ÞjÀ$²rö¨É©JòÞ\¥#oÜ<[¿s/îÓr3ÉwMÍ$ lÈÔýxï?ðæ7гÆôxsqZþ~Á.¾pù*Òó&÷µT}ïXûè3µÄÒ]8
- at E$
-ÍYS¥
-EIïè?ÍMæ7
êÄ)Ðò:u~γM¢^¡ÓIñ¦Ê{çÂ
-ÁL jÅ
ÅE¯á|.w´I&n¸$Ãh¡E÷^=³uâ-WÚ<ói!Ô÷úl|ãý/¦jÌU+ÁoMw*ØoC¦,-;{°I;VÄe¨»d»c{5M¾AI½Ö
-K©¹Þ¹÷ |>{¡¡¿±;®ÙD¡
-6üj>¯Çe=ruRÃé³
-¢øÂ"osrÛ¢ñd¨ãë(ÀáøØ<öOÌ1Æ´©¼}`%A3Dijöz¶2b»æç*å
-¹é¾ÒøqcPæ/8 bT³,I F¥ø¢xõ¨k©¢Y¬£R}~®TÉrù+¥Þ~.²*»DìLìÈìyE
-Æ%=²ìÂ2{W<ÍÝqN
-Cí|³Må5ØJáíI°Åí@OË©ôáÝ[cr÷|Ê·õ#¸vVLfWÖièqM¼ñ =é²+å@®!Îþ%ÈcV
-Þ
-ø×ÃÿãþN×H¸~Ðhv|[Û_ö@ÍÜOä;îòsØäjÂ53R|vb8p@«áfä÷±Ó]ÿÎ3ý[ÇííÏÑN²®÷¿!] ýÁμ
-ÿvÆ{ÖS&yßÉ~[H£¼¡%]z86]æ¡DpÑ
dÁ{</V3ëζ×`©uæÕyã:à/$HÔ¢A}þâ á«}EDŬ¤#&ûõ"ýå<«½þzµ×_/úÌÑÍJ·\º2jC]-tuLè:@õ*ÝreèʨÐÑQ{-tué)aARéòU£[GNµ×L· ÝàUülh¡ #íJ¨É÷LËOÁðÈW^emÔ^3Õ6ÆtaLùªÑ£L§Úk¦ÛÆ[FC7õºª£B'õºª£
nnÅmH2£¹rý¾êµTre¤D+ü¹`RéʾG9¬TzSK9Æû1j÷Ñw¤c<Zm>N-ûØ>lßbß
ͧ~¨]¤]¾ ]õv]?vÙ®FËjW£mpØmìeGóbð#,&çk©À¸Û®ä§;iRðFM"9æ ØY|å1
-3Éò
-/ÎÜ%Ã=qÀLÎ<È_#ÈXÃK<d^ûevG»ÏkciM\m
ÛNÔdï.×G*ý|²÷ª ÙW§ ¿Ï`
-äÿײJ]³È3ÔTUÇò·¬áïªæ~å½³N¾M&ÂãZ&á£Gèõ P,Ø«´J%;c[q½é
-¨C\o¬þÀõPJÅ¥JµÖ,ºÝÃGQÖç3
-ÿ¯áý
-×û^xçÑqcÅ,XÁ]ÜEhX9ß+
-§¾^&àOÝ¢1l³X½ÁØ]6/i
-{v*ç'ÁÑù¯X9Q9èùDl8õx+ÓmywßÏVÄÀc߸
§\ÍCÌÝC5èc·0Ò/Ä'Xjg!gtâ ók²vú1Úanç|¶LôSQ3¤q§ªwóè?NÓïKùx=?Ï«È Úv÷úÊ1¸-ûHcè¢(LY>ï
-l¼ú~ºÊÑ®
-umVÖ½è°÷nÍií7»Æ&goºdÙá+=.
-;N´K¾GB.ÿðà@eJ«
-xª]Jô«ä`Óµ¯ãÈK§£¢3õÛ^oQ¤´b«Ø5Ìr,6náÔ0_ùöò¤å¤5À¬vKs-±ÞÓ&&ÿµ(#ÆJÂûÒ.NÒ4Fпoæ²[¥W%UÀÚ³¨
1Ú¡Ûóµ²ßwÜ£±ÌfæM"¶
-ÏêveF¸YàTfàÇsM°·¸a&pJ¶¶WÑ»lv@¸¬®÷ÍNßI~:mioW%Û;ó«s¯Î"À3C0çEVÓð !ºJØTú"iØ5ÌäÆn²3{^º7ÌjZñè«YÊóÕõÔ!¡Çìs+âûÍÁ?Úõ
åuôqgÅ!Lyô
-×ã
-m$Íyéù~°¡ü3¸,P»
-c
+xíMä¸õÞ¿Âç@uô-êêª@n4ä°ädB&½ìßÞ{Ò,K¶{¦{fOÙÒûþlxÓ¯ÿÄtñ§*^}ë/ÿþò»éß8¿üüðüú {túÑL¯~fjzýéÇ's?ë'§àr=ÔÓpõÆx3ì|>ÍOV{ãÕùÄó$^_Î}ýãÃíõá®P~r³zD×NR"ÙÀå{dòÉG¢R>)q>ÙHû|2On¦!zYTäp
+î¸îiZ&{ÊttÜÆ7ïT&qÄDâ8à+?Äù½P¦1wsZMüÙÄ|s¾@¬ÛO&óï¢áºæVeæBf©N!Þãß>=Çyú5
+ýéÑå£>M:<júý¯éÏ+¶¬tqdÍHòúÏd={¤ÏW?v!Ç+Â$ú=wí=h*¥nqÔAÕO¾²ýMOlAܱßQ=¾ÑvÑFä¹w÷L´";ì§JHsn={Ö6ëìv÷Å:\ª´Æ¤
+
+¤à½±fCÉÄ4¢ÑHZ´" fÜ4(õ9¬¨:ü²5&çôuë(DõÅ$ª0
+OË
+%E´Rkj^Ǽ-BI,¹«`NM
+ípϨ¡ÊܨîàCYj2T|®
+ ýÚ!TäW6§«ç³_d]Õâ5-]jûJ6,TÆ:â-²'Ïmã±ò.äÚ Ku<ÇÉí@. mXÆA5ªø)@k"tÕ,
+{Ö©í5¬í!ÕvÁµóø»[ÛÙ¬§t¥ô¥JB=ïOa¶³hExÆ©Iu0&$ºB;êNJÏr ÇÐ!%û#fÄÛ 3NÙN'ÑíÔµg§µA52VM7½¦Ú̽Øè·Ôeî=KÕZòúØø©ý,»À®{[l@×¹âÝSº.ä1Tf*SÜÏM
+«±9?ÑUâ(F.6÷äD
+8nUH¤À0\9]Xqµ£[¦dãâsNk) ؽÁ¸~ÃK(!
+á¦Õ. kZ+}éjéx÷¢T»[e)êÔm'9ÇÆ½)9£É¹@TÉõ6(i:*]AÖRwJÑ9WãÔgÓÓÌqºFÊégÓu4ë¼N×rÕî9÷R}\øáÜ>,vÏY¬zxÓڲ⠪×9ÅnQÍ$rWiIaáã²³ç;®«íJX6Êf®¥ó*o>¤ÜàU]Ft¡7ÌÉ7Îm3XVTH?õ3\'óÕf px¥FuQU-@.=ZDi&-·{¹@Éx}K.(
+ìuýÅf¢.¦oÚÎð%p1ÐI;gÃ.*+)¬s©@¢È£mÜó(QÐ~ÏWv
ð±kjÜbAÕ¬JT?ëÂ?§ôû]SO¿Já$&Ø7³»8 ¼%æ*1WAT1wã¢7úó
+©)·{Hè7"0Ê)7"зê#0ñ¾ÄìµO9µ¦×»7Ìy΢fÄ(Äû¢PÁ;RÙÕykw&®-bzê|;t+u¶)&
¶A¹ï·,mIý¶¢ß+¯W¶Î\å¶mcâîÍ¢Ç\,SNvYgÇÝûæY){×<ó@@«d\×ó¼Ê*ò6.!-1½uö\N£ÅÀëQ£áeÒ_Síg×nÎ^GR5¸c¯¶Ö
+Þ5U«ÍNT¯vwã½i#m~®¨%©gß®"zÎò¬" +èrÙ¨"¶ü¾oæ¢aÐ{±e»í%½Ò+k¼PÊ?>=_ÊW
+ø ¬þRVguaÞ0¼qÇnæÐ3â+³R*î÷òN8©¡³ wEyµl2«LR7^¤- c$üë|id:§Dk¿<åäÓÛë`Æótø<ç;@# ÇÉÑ7΢}â}âÞ0:ê"·Òû×ëxA<Çgâ]£H1ØGiÒ¡R ö¬Å¯ +¦Ö0hg¥2
+&¡U¤põÝ«µMTlPvG.í¡G\kcO:¸SdÕ2`t·â:kÔ0>|w¢^Ms;!_íÔDÛº%GUõá2zË¥ç¯Ôä¨ðH°â.ðxË¿p
+]âEFv¸ØKlÚ74á2,,½ð
ù*%Ì ¬gò
GGéöÊJ,ì%É*c|Ädð/0,ß0#Ú5O)Ô¤ÏH
+?/L+S!ÄóÎ
+´©srÁ¤®|»ImÇÙPg²Y¿Õ;£÷yªCCëÌ
+»øârø¶´á¨¯©-ºeÏ+KLzU¬_Âò
+VámÖ©LÙ¼³§²a³Vxæüé½4<ö8ÎÇâI:~§Ùì;ô!#B¨M!¤ÈSX^ø¼fBMê+Äq ¦¥rѦÑD¹8ì?¢µú·W§ ¿1uCGÔ©ç×j_]¡¢f>TTvo=ôÛÕàVãb÷E=iõcuùñôsÕ¼MÔo¥Ë6y¿Ì|-1»ò9{[[ª-à¶Ïô·}<®_ÝÝüuY\pÐC'`÷AÙòêv¬'ò\ýW£2ÔÃy?m7,®ÁªQÖã×$¨y]õy¡ÐuöKÖ}å¦ófx défB·£¢ =±ä-»
+ß nì9Fôô~sÜ[´¬`V(:ÅÞ¿PHÞ löjÔÂ5{»5núòÝ;üRyH
+;O;<àËyW}Ãïg\õ}}uBÁGèwÊ#
+¿øwå\ïmü%ÿ]^
endstream
endobj
253 0 obj
-4349
+3131
endobj
255 0 obj
<</Length 256 0 R/Filter/FlateDecode>>
stream
-xË,»m¾bÖX~
-ÍÀôôL »ÈâU^r¹ûû,[VÙ®ê>'a §Úeˬ·Õæ~ýò'óôlð1ÅÏ-Óç/{úÓoþ]^Òß/ÿørýú ¿lOÐì¯}úígx|úûÏpƽnóþú.æóõÙzüæñ¿³sÅÿÍ÷Àó.gß_ýÅXÃImèëp¤²àì|)k\5p+£<ãáJÀSEnD-Ovë#k\ÌG¹í5ððMtÙÐÑ0o
κ*ê#øäÓDZlxã|÷Ihày/z¶Á1`êî&"Ïþüõ÷_>¾~ùi8ò`í]9úúÏÕ
-·Ì+À7)±Èw)8ås3<
-å ÎqôÍ^_A¶ðÔ¥6 és^T˲¬M/Q#)L,
-;
rGAþü¨
\&´2Í"S>HÖC}^så.m/aÉ_¨@:XY{K/~Xé *É·e
-0 >y¼Ó×g°V6òÊâÿÔ.!\uñº©Í«2(å(¶S
-T"x2¬W+
--Jt4ÝÅ|0lªQJ&Ö Üñ뺧
-|Pm>;W+dY©lÁÝ6±QÍVsd׿ôÄ@ÀâüïQq/r;0ÐÀ²QE=Cå®p±ÙÔê?ÐÊ¡1$T^i©ÆuoÑë °Pu±½¸%Þ^áÈ·ÔqÉb9³Ûç
-¨(èÍÿòíAëõk}õß}AOßð2=ýëé³ZºÂ^4¼0Ù;MonGMroÝÃÁÜ@cqÓçêÜ'ÏþÃ:«Dß¼¿z}ô¬$ú>ËLíUã¹wWÀí¥bä&VëFx3
½þ5<¾°ªwÍ a 7L
¦H=ÄQK X\
T|³ï£À3uM(Íï_éÁPy>)½¨Õ½-b¦WÐwëÛÒhóÄe¯Iܱúx÷²
WFmëô»Â)¨pÐb%ûU,ã®.%sßxNDéÅZ| ÆÂFÜ|åO7 Ç3ÏÖlíkº
-Øfz[ñvÐ.q¹KqµÓÏEL¡ÆÁãðALa1-+ ¤¹èaÝÇ=.NkP
-÷¼ÏK
-äBÊìÙ/M:ÉI21â$%9yVôC,0á=çôÀfè(ʾg,Äz_)t»ð:V©ØñXHqá¢&q:íàqìÏ Ôì@zcü&Vt)<ôÒ,3³ÜmCPmZVZ<)qh`«¤1´D²Pö)§ìKªôÕÈкs>×ÀÇìík1¸¯ýÔ-«BKÐ
-z";ÏN¶©ÊÛXOÅ"WÎ@H$á¾xê]É"\±¦5é·¥ÆØâHO¨9!@è{É Ò$%îf«Z¹¥£§®¦xRmñÑ.Îxm åÊàbÑúé-y~èÈ#¼G{ÛlÛ¨Ï=ÜÊÌìE=)èv½[/Í|̶YBæ
-»ÍÊùKg<.'åÂÞ»!Æ
-õÿÿÔ$ÞÎ{®Ù,a·)¢µÒâ Dï$«©GJ;<[¯Ùj]\'(qx£(IÁZÕÚü®ÄëIíôCiÉm·d¸ÎÂxmz?ubE§(v»²[°UãvZÒåã®Ï@¡¼Î¢¸ôcõVÀ{ JØIiô{u)^5h5rhõK~@TâþÉÿ{mbáÁöªÃ>NK)ó<*uo_.SÖîªØ²«¶Ûr CwO}`%Äbg\Û"õê*,Ø$X
z/MÄÝ]ów!þ´êïKÂ^§¡RGX(7 Ø&.ý^ñÕm±ñE\N©¦V×BµT[.óbJpèº5qrHÖ¬ ÉÉ-ÝdÉîH)Ï©ø(vI8±Üí°lp²Ù©raRf(àªM·®ö:\×
ã$2¹Í-ì´$ÊímT»XE¥û õÊT
-vªàzÉ'7yÃrUQcÛ¨4>J8k~!×Wd+U¶&I¹+[n,Ç´µIpÔõNµí%Ëì&3C×Öá%Ï£¡HÀÝ©{Í+ÜÚ¯% lõf¯Zam%y4Èý^V<É*qo¬ÑÔ2bAEk¶ Á ¼júIÚy¤SP¨Yc¹åJj-Ú ¹ÜÇG'
-¯*zÕéÌïê©HÉ/dXºß#CÔÔpAê9õLU×îáK#j=÷C*9V÷ìÇ&¨^¿çî#~1ý]Ç[õjÊ%w©ûó]0УÀí{÷IXäû° ¦rH)Ýs_yÇËê»)@2XBöÝ2fjßÞäW7RM~¼Ð:ó"!Æ|¨]&ÖÆÒZ¥,©æDzÐò $PôaÛÑ·LuzH³F[iÕI2D w5~²¾K=fÖbê»J*à£-JK´ÔXôwEãP
ìkïBÒ©5¢£l2\3ùîóyeàn_bëù3ÍÒå¶&JzůQOèÆîû^xWiCiÛN5丱ké{¿äRÝ#
ÅèoÚe´J3]£ôæO&¸ÔÐ
-L&¥qV÷|Ö@VÙñ¶V÷S^u4]mkìum¦ØwZÜ:D¯}ÊV^æÏTgºs¶@z*Na|Í÷Ûã úãz
òA£Æ,0Õ¼w¦ð2ݨÎtWüUØNNÍ»çÀÛs[ë|Fß¿ä1[¨5ijJïiç{òÎäGªKVØ£SJ£]5ôP¦²ÒëÑxp×Ða.1þøã;LK5È1ÍFb«éZî÷!#9ÏSjTCÎç~-µ-¹jÎ1âÑ5n´¯èÙå>CV¡aõ`^¤0¾)®ý©Qé¸ï
-³sÓ-vx£^ëHô2½%<¡ût93ð½Jr½0ZD?*IÄc= ßEÌü>µü©#î1F¾k;ÿÇÎlд0Ár×H]pGjiHK0´*v
-³ÞÎù¹hL}W4¬¤¤
-§éÍê?\T0üYCì+¼ÓFEç;&Iza¶%Ü wo>ÀCh¼Å¯8ñÇæ
-±qìg_qÍf¶2ÇmÀz³W|¦Q3tgp¥½Òwí'½uп9Û÷Æä:¶ô1ö°Çq)h!wï6Сö7@{!= ±FjЫ"íÏ´·®7¢ÎÑn×Ú;!\ êàg^ ½ÝÁ²kÕ±ïÆ=.~«ÉÐl?ãíÞõÑÙǰI¡]Ó|/6zg:V.ájÁâàC¸m²"¡v'£ÇÊõ«ð:?Qï1åî¤ùòÛ8UÓ·ý.Ä;PMÍ_Q»Êq%ļdò`q<}@ߺpU_*às!´y
-õs6Õ?ÙSc)/~
!WKxT:ðÔ¢«E¾)§IPkP
¤%åGë3r÷ô½iØcm5b:*\üÀIµ9V[©ãOOR¢¼~$ù-2£Z®+Î,&j¨ý²ë3Ý ÷oßJÿkSá±®)mI§2¾Û¥¯Ö»¸Vßr
+xíMoì¸í_ásIõ-0Äz{mú}v/û÷+%ËíIÞæe·E
+_aèùßÃÊÛ×Á*UD È 3P 2@^8@sty¥
+7@}âæ ©1'º¼µÃºüüa`nÝ^¬Üèõðú·á·¤^ÿñç³Õ}vò"ÏîùrÒg/àñébÎÎ^þòúû×/
+²¸¿DvVâòú¯5
+n
+ÜÖ/Uq!¢GW>ZíMrörRè4UrìÖ£bc q
+ëådó\
+mt°½
àD²ËðÞø¨¢Ç¨¤DìÉe4D}vÜ<ÃæéròÐéPnòÖ½¸ÒLBì¶| UY\¥6åqæzpxʦ)Íxå(¡9%û&÷â]Z 9Mô̶Ï'èº'ñSB[Vâ(¸âD\VP©3lÚ`ÂOK&´bPGîVËã[ÎDoÍ:W!Ìl`åykÏ52á1þõëæòSÂ0ï$1ÓáÑÐ3<3xg¬$èDÍD·TÍRQÒd<]bO<Ìt¤¬ÆÕ¸ÔÎF§Ê긷Uê¡nNîFkErX9¢9/k,®Ø`±³q Ëb-CYeqH\ã¥)
+6Åï&øÇ~ì-ÅÂô£ä<1oÁ¸ßºÉÏFGÈB ðÒñiQÈÃgJ#Ä#¤¥còè9å
+SS9ï7¯bUûµ¿¤iB/DQ8Ó9¶]ö5Ìd¥»R|©9·êÑÌÈ ö1Sª
+§Ëf`þÀÉ\ô;hà¨Êr4¬jC
Ì=×èÀ*^ 4Ä`2ÅöãÚ²ék¿31Zîô¾£eïí
+Ãø;
Q
+£@a M%@C¬ÎûKîÎî©ÏvD¾u¢ËM¶l_ìiÉö©Ìkg9gSÔ,¢Àõ¸¿î+Ë«\ºngæ8ò%©ùî¨x©lú§qÕSQÙp}¬ä&ÌìPÒþ»<«kº³ãÑ´^oÝgñ9Öj6¾æ¡e+OÃÇãñuÆ[¡Âx¼>ÆÚÒÁ\'b6Yõ2:Û6drþtÐÀQC.Wíáå|é/"Ü0^Ì ûÆ« ¸ÜÇ;
+ê.Û%ucÓÝ\'»¹ÀB±J¹+ꢨ5jÏÆ¹y6h{qH«ÞµZa¹ü,nòQ¥:¾([êâ`oÌâö
+·nÁ$póºêæG3-\uÃsü¬QU¨/EÿQ÷/V·Q7oºªü¸Tÿ_DíqË\ÚøHný/¢*òð±,»å)%ùÍ|+«%ïbÔ|ÆSúp è%Z{iô×hÛ½<çxåcy^þSEþ
+öºrEð·½Þ¨%fü3¿ßÅøûÎpíd~-ùöÄ&ýÝ=u ÙÜÚÜyÊ]P`kDÐ!
Pê}(CMød%1Tªêw÷1®Ôl¯Rn°cü¹ÄAcÞÛ&_dóUqÊÝàÛ>
+ßèB9ä¿ Ü:=ü¼ê Êoî%9H)ò\ýi´Ê¿lp¸òObS4Q¥,CãGW ±ú)`ºÎ¸R8?Ò:zç'r$êwÇ*hSÄÔNlùëób|tîj¦?£}r)|R×w\
+ÎV?Úú¹üüëÍ}{ÿg8ÁÿþPãØ¦BÍg
+å¬ã¿¦ý±´ºÇ÷ûÊûUo®íI»×)¨ô«çÛ½CDzì÷yî(}KÏÂ2õzÿ¯Y
qÌ©æhóB]¤¢ËÉOzN¨*'ia£dØ%®èµ¸¸S-7îP,iqÍ£Zpøð
>CÇi½ª³peõ/Ã7s
endstream
endobj
256 0 obj
-3736
+2878
endobj
258 0 obj
<</Length 259 0 R/Filter/FlateDecode>>
stream
-xµYIÜF¾÷¯Ð90zU*©¢a43ä6É@&·,â}ÉßÏ[jWºÛcШUzÛ÷vYaø÷ôyPÃÂÛ 4^ç
®_~~ùnøçô:бUÓyâs=h0ç1«þýô¿ùòçitçe½úiqò÷?Ò¯OÕ:;a¢ÉÈYä>
"J'Ld'w¶HîQ8!¢tDíqï#?a¢xÂD³Vx ·¹â.ÚÄ?
-ý\T]äVjx
-3"L,¬_£>¥µì
-ßÐÀðöÇÇը˸ªíòàVXðVÝÆÚ¬
-ÿØ.°ê
-ÏaUóå×·O/o§×Jx¯í1=<5`®ê e#ÖÌ8Ê
Ñ¿a/S qÊ]UYþ1*tAH+=æU[2ÛF®æ´Ø(CâõåÁ&z&ð©øYãÙéèxü2êNo A°¥x)vcÃ| VßvQ¸h'
-:aå@0÷'}ä0ägºV&3[áh¢ÇÐk¦µ÷W×¢8âeß·¿®©VÁ¯§\ZÅÙ£
-«ùMf¢ü3Ú4à_(=9«7ÿÊ#Åös)¹âô {|-âã,
-cý&*ú-õÏ÷º?®»2Êh'uÉ8B¢C`O8D4±uLÁn|ÜÅpþª´vçÔÝ]²ùºcìâîqK|½l~yÚ²4¶-DL§Oºí©äHÝ?ÄÑ'ygÊiäR*@5zªg¤}i ÞNɹ9ß ì.u.cjì1qg
-öݨ_ °µÔ.»V ¬³ûöâD©c9^n>b+ÝJ1f²åey¬«rð
-¶úÉïåÐç@p P1Ù`×7R1GÞà
-àyMs at c¶NK¹qeÚ0¼Yº7£,ÔAönºêØÙì;O¾°ºB¹¹fÅí¶9þöêdóD9;x&R DQMN«æ¨U*Y%Fkíy®WXoxhYèðsüjǯï(Q`Üû æ²gæ8bËê~§ïJ-Ô)þÍ¿XëÂÜiækgeñï¸8eâ_ÏÃF±æñѯ[s×¹wÍÝÑG&w§}¿`ôv%5áÔ2ÒíJ #Y/´vÌqyÑÅ>vXí/Íxgâ ·\ëlâXþ"Z)ß^¦zCì|®`óÌÝ¿KÞÿ½k\âsÉ ±ÞààtÊfUÝÉ9³&6Ô *q±f %ãë3vÇËæõ JØæ·çî25u½'w¡¥èµÌÕª#WÇ|çç¶Ç;8¥©
-ç½;ÃyoìMá¼+þ»þyMOeÙª¾±MIqܦ&øwµ)6ð=áÛÔÏmmª%þëÚÔ³ï)BØ»zZ¶ÝFdbÑN¹evT%uKi@/ßÐ#aìÄ<i¬½}SQ±ª÷àv%ýWÅôquqTt¬f[tÉvÇx7¤(W#R:¬&(ÛÊÄËt¡%áap?¹Øþ¨n0'â2£=CKÇ2¾>f÷/Ãý8¥Ïm~D¥þëð
+xí\K㸾÷¯ð9 at wø¦4Øn;@n4à §¼ {Ù¿V«HJ-gf{7Á
+ÓiËÝÂ4ÑÒDIB*ÎQF
+iø§C|e5Ä!ßÍÖlH1t²»]7£¸Â§Ã*¸·2^`í«sÉÎÂV©rn
+QD>t#êÀ2§DÙ^vN at PM×i¡R%É-Í3L¯ÝgY\Ñ]zÖâ9Ìò\9&¯S6h_ªÔ[%>PÚ2s*ÂÝRÐ[ÊÐL.<ÄÚ
+¥upÑñ2|ý(5Ú¸e8ô
t;Öî£çnpYµµÌ
+aìUNT0,[ÍÓ:Æå¸âø®dº_?A\XDªPx"ñÞª*bºÂçîÑYÈýÊ©ÛÁ'ú«c<ed¹ÅWî,|#?9%K¿©í²!À¶
;W5éMÃ-Á´J!)]ZOb:ª«hc½@>
M
+ðH9d;ôyHÿ³ô&nTØ×"uCŵ`µYÖ]Íãuî(Tº©ß¢,Nãæzò¬\²ey(·ë^,
+ôó¸8=?=Äü©T
+1ÐßÏ-"ÉÐ
×иëÂÞ¯úf Ê\
+<ñÒªõ8¦Ó=x,'èÅ
+5Ì]'Û²©¤C¥ÞÉ1(Ñ+ÂÝsü½<ÁUB*ú»æÞW'ÕÆRXWJº
+I+.ZòuïÁð|{Û`n¦UU²@3oe5o¹pÊåk¢³®v~*üuòõ§p¤Á-Xs°Á¦+oÁ¯(NfÚMIotÒãv!ßpå×PNÕÍdµ<ïePnÁAÒlZ¡è<îy·À Òì%iPõÐîy·À ÒÒÈD?j.&a,&c>ªkeø¡ÄÛbµ¼u.µT~-UQ~-å%ïÜw÷:ÑöjâÐmª}fDÂ
+¢âö>ÎZ\I±Ô;Gª(ÁP5àù7&
+µé qR4ºôÂBò
+àL-ØêyÀ`ï
%Éû¼_Ò0ìoinÌ(D'ëÉ1eJphÌ>E`yß0
+Þ7x°ºÀZÕ¥]"3UoÌÏyËoìc}º°v!&¯2@æèÄÈIa"©ç¦¥fÆ(<oO"q11µ¶^¢eOÛ/E`ÎEÐrÄÃñ[Ù2crí
+'<áÆ4ÆrÞ{í^{z$ó8p}´°)ö¦ÃêZJÄ ¸Ô:o-ß-0
äòz(;weú*Då¹ÞÎïðuV8V8./Ø$æBµ{sÃ
+y
¡V{À+ª;½¢Q.[eí4lvF%gX®¸}ïPWéðnmÖ£æÊ/¥ÝÎ
+Åéeµ],%È¿òJ`µ1>x«{±RFt°BQÓ>4â
+[9KEÿÄ1ROû%Ö¯Vøåª¬¸D8
+!àBeõ³g,â©l/$9®Âi³@ºÁyy2SÏîª)
¢Éë:G.ÈRYºôò1aVTØÒÒU¼¡¯jlo
+>²|iq··«RRR±îvÀÍ5±má즳§óÐ&ÌóÔ[i=\EÞ@×ö(ÀÃ6ï?Õ .3\\`{AMÐj!'øy.ÐjàN_gË.ý='Ì\n¹îªF|3 òõ`J3Y0äÁXæ_ßx/«Þàøûsa³tycEÙYHÍ2öÆDqJåeØI.B¹Õb
+Ïô´Ê°Ê@K»'¦w-ôÉÒ
Þ,cågf&÷"yéQX!Ê>ñkfË>SÌÄål*¡}t¦¨¦RV¥üØg6sªÛtæE×¢)·ÔMÞ7¸Â~J`SDm¹"z÷ì0
µ4Ãï.íhJEÓºã§KÀÇ *x1x'*d/ú{TúõF%?¯Íü=*}|T*';Lk;l.ûáÅz;ºvÖog1ÒõÄÃPHÏHæe"tÇýJ
½MGzÄ=ªÐ:ÃÝÊ
+s±¯"»gÓÃloÌ(ÛOÓ{Ù^ûï¹þWëÕô=×ÿr½Ý:[ìÜZøÜ
Z¸sïÄü
+¸4ÆñXn/àXò*þ%ã ù
+âQÌ"yTñSüÅ(^·T*òåÞeDû¡hdÃÔ"º'1<Û´ÜÃêVrªþ#Õ]Aò+Ðí$S`Ó¼Ä/©Tu¼ýÓÞ¤UÊz]¾=ö£ýñ3 RªÄò¡;ùäV¸3´§¿?wß8>.pÁp*Ñ×§¸v-Hd
[ôÍ"kª'åÿæ0MØsº÷ä3¼ÁÁ»©êÀN_¢TêÃ|*¡éqZ}5"Ç%CL¶êi×ñ¡/_z§&+*£Ó
+$Y±ß:VâZÓùn¿²1F1q¥<99k^ÛS |²°V6¶ZËrï
+çN9&è¡ð;<
ÿiÄcia3ëDvIo½_o:;¼L8ç&RiÕ~Ìøºm¹
+¶²Æ§ÃyF
endstream
endobj
259 0 obj
-1698
+3441
endobj
261 0 obj
<</Length 262 0 R/Filter/FlateDecode>>
stream
-xÍ\I$¹¾÷¯È³¡ÊzÚ"Ê,oc7ø0øæÇà¹Ìß·Þ&½XU»!:-oùÞ"ée»W¸üòíßwyqå6/×aÂëϽüé7ÑGüûóß¿Íß¿Aʯù2¸xùþËo?`º¿|ÿÛW?ÝÒî7uáöR®o3^=½Ât{ÉW?«n/áê&ly§6ëöíýDzò-¤:>ð0©¶pñöçï¿ÿöøþí]r¯~ÍEÀ
-+e(¦®LJsOB2réá¦ó=ÉC$ç_Kñ50Ié@AVî«Ý
-FWïopõE0è÷ò%!ïÞèZÞ2Cbõ;ía¾E¾ÈLÜ"Ñ5»wüPXðC"5&;
-àQ®ôd RëÐã(N{Âþÿã
-¿Ç!<â´ÞwÙ@HÍÔû@²#À´Þûk%|·ÝcÃ/UÎl_À63ÒÀ°p¸ÕeùÚ#Ñ¥N¼ðûÑ÷É»UÃ
-¯i
-¨p zØ<«`Z¸{»ÒöºæÑFx¢;<F<pH~{äû´ìâwùµ§ùLàÄæÀ]/ãE{¬¸ô]ëñ^G¹×Kk÷8amt%T-Xûñ'F½=
-ÊX~Wâáã«<äékh¿F?P?¨3#
-·ýJ)§a Bâ!Z#Þ÷àÿTC( HóþgÙ¦eÃîPéyHOòaSR;+;ViÂ*ÑþáZÞøKYÞ0OøÝ·Ê\QÞëOYîÿyùã·öôþk¾NÓ%Nè¹ßk'ýÚî4ÄrNt_;ÉêT¿p§3ÐNt_;ÉêT¿P'ÚL|¯ôvj_HEpÚnµ¼ÇõýBrô°àu¬bàa1rËò±2E+öFÕÔ±:ú2ï¶/½
<ÖZoOkÕ¶§µþÚÓZIíi¥ÆýËúÅk%´_2eÜ J®F\õå#%Q'
-ÜïÌü¹¿Àellfà1ܤhMCÉSInü_Ë¢3÷QZÅ_Lò±<лt£æiÀ&¥wfÓ¡õÆÒà×Ü,¼6ãÌWÒ
Ã]<vN"!¥äNëS4w×kµ·vî8a±ªA³´*W@*2Fw0I6É«·Ò¬ Rb¯{a!´"nñò`ï|E
-§Am<5p¹ª¸Êòw¥@PýQÇ5¦ÃÙg¤Ø\!×ÅÛg »UZX@þÎ!ßôâÕ6lÈoI, !øße¸¥¢
SÛ´¨§4zùý
-oöºOæÍæKÛ'Ye²öNä·3ÌÊÞÙ~½Z
-4k·¦
-â±£pÕËÀð¸JÓKaÙ¡ ¸s³xÕíjæÆï| Qhgä@V x=hF¶0z(ç_ãZ@ë1¡*S$4Iô3*¡Í1^&r-¡çZƸì¤BÕQCv.±(Fl2f/{¬Nº¢ß¢BoäöñÕqs
-UçP¤`ùã¦FûQ{AÛ
ÌÕ¡ù%)!Kºí=¿õý ùy¬/y,øà5·
-ؾÃݬ)`÷#³c¨[I`2AD!6ËYI
\ÉÈY{7}pHO|>¼×5ɼK
-ؼ)ÛÚ6ÚøÓÄløM}Ò1iå¡B5t¡Ã¦ Æ#Õ¶!Í*³¦Õ(¡çéôÏcqV[YŰ0¸MsMäBÿ{³WºÝfÓmQÜäkgÙ¨g9Æô¼,l´Qàgix¯)Ö'píª\µN-Å'¯$«¼gXqTw3(²fÐÖøqf5¸P:,+¶ ±»H%ܪæTiÜD¬¼ÍvÆ
-zTÑ*Îd;nlL·éükwo;Efék
-7XÂ,éJ°!&V8mñ±¡U«Tn/ë¯]zM;ú8Õ`ÌÛ@º®ýYíãWçOüi=~>·d5¼ÓºHLA×çÓJâ·Þñ1E]É¡äðùåPç×ÐXã LîÐí³áÇiÙ%)qvÑañN!$K'
-\µa*;èÌ
-7$¶Ò5íw1Á=gµV_I9uÒCÓ£*p¯ÃJ5Hw~
-¦TÃkäðÌo2\E®Ä¤gý.²ZÖãgÐôåMåY[YÃ{'£âpƱÜqÌÌS_òV°2BuKTಠ}áhΪ#ì#[áú4½¹,òýØN=ºW¿øg&?"Ô=<7Ê:)ØcOÌãP1
ví»y6¡úkz!cfá^EûÅ¡¸°Ãä©XrÖl5*âØWÕ"±¡~2¦ÅNvtþ|(àB)Z@¦%>
ÏmT&-qìºä´ûÞÙzf3D3ØHIAYdZgÑ¢bSæ¹lîs$o
-Yâ4Á`eó®£`ñJzÏXª©>àýÈwÁö\ù¤¿¿yyWh§¸ÎÌzSÁ3~9/fh«ÄhêÿeAEüDî ø¼ß9¼;<Òc=b_ulR%¹J2©Ö´ö(%DÊh=ÝM=«Öß×Ú%Þ>ó· fBÁ$ÂçÉK"ÞüÄjÒ¥`àöFÑþ/,ÚÒ áº3A§öZÇN_y0ê['ïºË'°³ÐË×;·ËÊî{½a÷¹%:ÆO3ª<ãV¶SϤÑYàÁý]øðt]hfBÇD.L`w!ȧ-[m-}é×úU½©D
GÇTBÝfÕþCÒKF3EjNÚ Ìa1Ðå,ü[åíºµ·l·¾á!Ç5\>§sÕöF7@#Þm&ÒóFÅøÖsÊ;Ey¤q ®q÷j«´35Ã4çät5Fä«z8àvXÚ¨¼6õq)ª}<É
-1]l© ®$^WÃ>ÂW\ù":àd:¶[!Á
-Å,/ReÅÌB>¨ù}2,¶5É/IìÀÓuÍÐL7*;Ur¦Pqé©fILR`<Zuf_ñe'qqþkd
-Ö®¢±I()èÊ9õM{nÉUøíÀnY´¬&ÃbHëC§°ÜÉéºVKnµUÏ©B7ÇNÏó»w©
-M·§òf¯¼¥z
-ÔVN5iÜXPu2×l×uÞZõRÓ×áfn®°¡ÇBuÇÕ-gñ%§ásÚQÉ©#lA5ùpm¼4À`ÛµÕIÆçnúÉl(æý ¹¶mìCb®Ì>¤ºº¶¾«uX«Ìâ ¡iµ¢X+ßÉÏaøu®~¥ãª{«S
ºÑ¬E½ ðAÉÓg¥SÌah¡ä+
-&é°´HÙfO[÷dÓ
6wóôm(oËdz«i3¡w/¥]DËi_0Õ|%gñ&
C3ëáKÜúNNÇR«äÉìX$+ªhè¥6y,
-
-B®bÞ;¶¿ÊÂ]Ë÷/îÕOåÏåÙ5>·kd:æ¨îÌÛ:K¦}´ Pëå>Þ´"Úu·Ó|^
-þJw;ÓøóÓsýº ·_º´¬©êyS¤Ñª.¾P ÈÕüR`.öË1l»)qx0±Ø9Qv»*ÒÝ/|¾Tù×QW¡tk0ÕðÑõgÊ1l%v§ÒiQ³ª{Ò»QmÕjA©ãjþ {J8ÓÚ°)J£ª+[µÐ¢©¯3
xɾç§=F<vÕY[#ÿï1\æXwqk½åªRrûÖê;knB¢ßóíT7O+ð´
-ìï£6%mìIdªÚÖ¹Sµ¸üµàسª"lÙEOkâtªU7b9ø
-ü!&uQ6^hǧýE²VðZ]M
»?zò;cçÞ/ùP¥;Äú_ÐÏ¢ÛýLè<E.Cí$Hóûèÿ
+xµÉ$¹õ^_çJkWZ2
+¾µÝàñÉöÛà¹ÌïûmzB±ÔLi¥¤·¯
+¹ÚËÏOÿ½Ë³×d<sÁçOÿ¸üùË̵[ÒeýÿOÿ|²É^ã%p
+kòµ\l¹&ÜùãO.øY&{uýdÞy2[\ÑæüÞ¾>Ù`&¾þýò»
ÅîòõÇ¿¼D>nÏþ%=nõñv{v/Ùã3X£÷RÑ5÷Û_¿þáéþõéËq×|IFU¼XËÂͽ¤%ÅÛóâ_ÿ ¿Ù¤
+Kbé%ãórölúEìõÀðCT˳vп¿½v@
+©BâtFgÕ´~/¹HDÂÌ(=ÞÛÛQºg¼{rÖqjO1¬I¸ì$*0]lû<å?`à
+'u$Û>tFá,§ºMpòÒz±§ÐáYXÁÖÅ]¤a%[£_p"&6w2¡jVu£¤\Oò¿}ü¸\~?þþ 2)æºob!Ðû¿/Ôä½1Ó/Ò8öð&Ûo:õ^¥é1#bÍ8Âé}pAÆ¿8HçÄ«¼:jªT¬"Êê÷F_.'¦¾È©¡*âJoÕ¹Sã©Z6½¨qLFD2¼G±îà
Ë#¦÷Nr]¨í×úRÅTeçôÉGgǯ+VjØ<Î#
+É:î:±ë®d+«uH1Ë!/´za]#׫ú&ÓMÁª®¯á
+V(^ÎSÖc;dôX[ÐHìH^@Á»$@Ål7Ùè»Ö
+VÑÅÐʳÖÉÓB§àÎ~ø`Ç%ÑDè©ge.>ÖeÁÄF%ÈT;ÊÄ]¡^²\2KVòÂÛÆÕ"¥þ}×ìEñ6A%úJCÊʲ%Pz(jjìYaÝgØ&Hð_Ä2,íîç-È1:AxWøÚUÊͦ2Jv 쥡r¢z½w}$<ÎMÌVd+eþ^ÞpÇ~rØ %U"¯¯YyZJÅR×P"3ÛqRøøLÆT}4u¶UtqÑßV!=(xð®¾MZ´Ï)+«ÞûÖ!¨#o#ø´Y>´_P]SbÛnä¤
+ìÐTïRH,t¹èÐFת;sq±Sî''ü¿ypðÐÚ#Æ´^|+Ø_$&"w
+ QqXBp]¹2FR_úU§éçÏÌ'´¢õ1J´£Í
+{Eáù>ð°Ítô>Vx¢y»¾¸ yh
¨a£ðéöë0ÎÆrj^i}«Y»Õ0°]:Áа0¿iùS</NWë ËÐNШéÖe2ç
+Î~ïWqr<ìJ7HìrXö
+òåcë£mFèÎvÙøÏkRÑß?Q´,JBÍ=3
+ê-dÒ÷©
ÄpÚèÖCÔÎdûXÇ®[æGt¨]@T+¾]ß0 ,^8º»l^¬õÖ=Ø4ø¿öXµ}lʾ¹.£YY¿E¾ZkÔúGQoíob-»ÄÛi]?wÏ7KVöëº×s-óÍ jâ-;B§UPWßjtæÃ=U£6cø
+ÜEPìk;yXuK¸sgÔêù±-
+CµãáÊl¹LäôµòaFCv¼ò
+ja[WgJaób/s}Qx£dmØ>Û£ò5Z<ª\Vº$hMëOB3sÍDqh¨70Ù G/RòG^o]tÒ»ìÁI¤-:Û-¶Ï\ä(O$kÝ¥NÖ¯*m4:¤ÇFÜס)ß×%Õ.Ì]¬¯¼Fäʼú@ú"°Êîdeú~#W@æo¹û
+¨.Ì$%>¼¥IuËÎ^ÔcÌ#g?î
+aÔÔV^ºn¥;Ó¡ëø`(¸ÇSÕÞ¶N
+í(·-qåPj$·Ä _ÌU#IeÞ½°ñ]ñ¹¶ãP_Ǽû×Öá[UASÉt¸È¹Sl¼¤©¹A¡¡òFKx¨Êm°J¿#¥ãT!]ý¦{¸ÛÀæðæ
+<ÏÃt¾k¯nƹï
+-¾´þ±Ñ>-»RîCÎr^
+]Pqï¾-ÂTH$öD6r/ÅHr
+Þ1¶Ñ·ÜA6ú)Ñéï«ÞTQh4êàÉl«¥)³Uç®Ï5ÃáQ[gNíÇ·Í Ü] Â¥QWfÎöc«s×\áò¨Á³§ÍöcÛæ®=\upeVàèl?¸:Çpm4
+ßLau¦Zýí©NU4hÐdè\7d:Ó[hª«áѨߨºÑ ¥¨äÑ(ë¨zÑ ±¨ÒäÑ(L'Þ¥ð{öù±±Ü±áìÀJ5
+03Çþ|ìǾuì!Çv¾o³+ó«alzÚh<Úhíþm´và6Z»`îTßW>ÁA~÷âªw1æ¬Ñ¢3hx¿QÅ%²[u½Ã·î¤)IQ·(ßIkCßöiÇ]GHHX9Á%)i§GÚ°ÿS
+Ög¬|7Æ¢"8
+üôî¯Í?Ï©P2s6µrlvð\F( ©]³«:ýn³Ñ~¯ÙåÆ6áø
+
+ªR^´NÎruí¨Eæleü%nð·±ÄÏB(ñk,ѧÉsc^ªDÞ«"Çp¯¾GO:/UÞâÐ%¿Ö_\ý-î
΢`@^z¯Å(c¡â
+í cggBo²,¬ïÖEPO°y:År)[~Û¼ü}äàêÓo½úEº-ýþE¬àðx
ëÔè¼ý0Þ"ê³3Ø®h÷ɳÝ×9sÍ1H¡óC7Ý
+ÅÜËIÊÆ»:ô»ô¾
mk«lMè;%i¬
+f/röô÷Yá5X¨í³qÌÅh5ùÑ¡p¬örf«Vu5ºõ£¸ï7xwz¢ùÌsìRvË6;r¶©5Ô¬³µ|KKì;ÓzÊ\^{cëºZ\ív J(×ê%&É]kAjÆâ}+,ì$ñª¢wY(?e4¥)þ%f^ZÆÍííãÆM¦©oíá0i9Vf&jOÙñ:d½Íí§ lý25¸Û`Êt¹ö×ûFÊdÌÆÒÈ>ØzsaÑhÙ¬ËâÊ:Mfôå¾ýo?íÚ ×õ
endstream
endobj
262 0 obj
-4182
+3615
endobj
264 0 obj
<</Length 265 0 R/Filter/FlateDecode>>
stream
-x½[I,¹¾÷¯È³¡Ë
--4
-µ|{vÆ7{Ç0ï2ß
-íKfÕxìW¤X¾XO`ùåíçE,ïOWxÜ¿ÿcùËï¿}[è1HËÅ88¹ô\,ôûÓÂÉ÷ß´ÅÇz§uùi½ó-~ËW?-FÊâ$ýÊ<Ïã øå'8ÈzÒTÄçqP|Bò?høÓÈóÍRbݸO8çvÎRM7ÑÊsÕòÉWòUË)«nªÙ¤²Ë×XMrjøëïËï8,_?üõCÂ'|ùù®>ÂS¾ÞÂMà>õ¼à¹ýîóÝ|+Þ/À~¾[
-ü6O$
!×<xón8éøeàÆcÂí¿}ýñíþõöaFI
lÌ +Kд_èw:hZWNç4+Êu$ <¾~C´¶gzƼøpG\xèFq?d*
- 4º0_\À 3 c3|lÑÒ}+OÛ¿ÇçÌã°¥ðÊ«µFMá
-÷$:l
-L0/ëx|¾#Õð)?ÔÙ;Æ þÖ
-vQWÌèjÅ©ã@¢yXÑ$AïLTëJ*Á£cØÅyª}æà\Mô4p¦`äó|h6B) °$
-Ð'WAX®5Bcvt¢¥Ing?~©
-
-y@#Æ|Ð:êQ.¾±f°µõx~³Sà¹E£3ÌÊÄ£ÂD8Ù2ùúÌøïe²³ÔUöëax 5Na6j*B)$
-ÄØ5jGy¢0Éãfë)Woò2}.KXf$©rùÆ6¡äZ¹À§¥´Aë´Ä'âÙ?
-².j]a2ýJscC½3ײYïçÕc^+¸æúÙTohì§K¢É¸Hê#möõEÙÃjö=EÒ
-X´FD°'óÍä
Í\}gêªÁÃÓ5£f#çIwÃÚkÿcDãTö×·:%KÈD줬¼n®aÊ&a té§Ebí
{dPÚÑÅ a8lFë0DgY¼JElÌÉrc²ÑWêmìØâoÜà&Û`/ÓC-Ø®ôzØ"óx]ëĹh² qÖìQ36¹Kpe8ç¾
NÞlÖ
-å
->½v`ÉöÚɺò9OR*#TAà¨BßÑçZÛnË. elT]н ³¿A¢0¥(Ò¾o
Eã$rZ"¨Í¥9m<MÚ}¾<µ#upÀúbêÚ¹Ó%«
-©¬ªÕÿN;êÀ"LåØ]æNY!äôE?B)Å·æ%®±¥ùÞ
-¥$%i·½=`ÏE_BHÀ*Ϲö{Ëû:îØ9Ô1&¦³¢\Ø2v+¸²sN² §£ÿnE|Ägeb>{w»¥÷LÄǦÊ{[^iX.ÝJR´õÀ¨Ói¡TϸÎÒ@â_ñÞûëÔp¤8Cß¿¤ë!þËÏÈ÷._ßqÿ-¿@¢6ô\ )¼s*)ßàq&ü÷åRE×(F]¸ú5/Å6ÑÐÈåTr
-*Þ
-~¨¿©· 'ßæ ;Ñ`K·H³ß=ÝI¨kªTùy¹åV-wpfjXá$B=T&¾óùm¹,?cHÅl!y+ÂÐ%ÚnÓ¢@û< ¯J]D®6o¿Fk5íbÊ¢ÇIÞ)ͪû°/è¨!-z&rÕ©ú>|ÜÜÑ©ÌßæYQ|ãVqSy ;ùAßÅu½*Ã`ôâ§³VB »z}\õYLgí¼rlkíl«ÌvÖ^ß&·¹
-Ôu¨` }xfK¸ê{6÷L
jÝY÷Ö%ÒðEeݧJ©¹é:gä;cL:l©§Û&
-/@~)¼ÌN_JSÀëôp¨9áºW
öÂ
-M]ã£dì²ÄMlâÌVÜÖ'@¦þÈðÙïÂËëÂÐýª
-Cþ6(Þ}Òûîzk¶94Ó5CyiHºí·ù,æ¹ì½h)ÊÍõcÂ9ªòé|Öÿn¾9ïLÀ:`=UíBE÷¥eÞ}«Ò»-LiÃk
-"n¡FPô Å4XX
x÷ñ;¡5ÇB+ü+ÞøLMlxmÎÐ_¼ãî3¥3>k¯É÷ð».{¤X¥JåÏé®Â£qQÔ2]k±PÄô÷øm«TkøíïsÉÀ>©9»Ë¤Q §Àæ:i·ãnA(GúnØ%¬ø#ÒÄx!ët¡}ÚI}Ë@Y]ä)P@êô´U²RªVµRq·#ÁHvå^L
<¬Epöø³QÍrK#¦E7*m©w(ì~µ|¸ôdè;BeÁ£÷ >~U"à-r^1òê´Àvw° IZË)I»\ËEøËzõ¦FH6P¬¬|Û¡AvºEÆ
-{À½¿'D$%
-üoã¬Guº"édzA\Yp%Gþ5Î:½pôQúö!Yç^ø "¥/ÃÀtlHvÖ%ûaÚô>7$;,E#ýöRºs´@5æ´
-îC§ÿ¯¢Ëù%æ+§¿4;¿£ã-ÚZPv¡v2
-ð_´Óà?9cãôß;¤ó¥=¯ Ãù
+x½[K-¹
+Þ÷¯8ëÀéø]UÐ8ý8ì&iÈbÈ*/@f3?,Ëò£\ÕwË@Íí*Û%ùÓÃ:êY_~yúßE]®*þ3hËÏÿqùËï.ÿÅðßÏÿzzý|Ò><Ë¢øüüûå÷sÑöòùÏ_Üûͼ½ñ4¼Xò[£núÅmñ>`wñ~õêv£aÞ²Å5ÂÛí?nô2¸Û_?ÿøôñùôCËÞKXÈ8²å/Z#[ÞÁÄ5²pu¹ºHÈïñßqõøßkd9Rvú_X ºjû6óq»z§/>E5l7/íNtAEªÎÜ®Ë
+ïw¶b[oeË[¾ZAÔÐ3è°¤·^¡¨¢ð®Z£øyvyY,+®±íñ`¿#NØÏ²®ò!ï:dødÝÆoÙ$)WóG4!ç´r|cô¥ì×úØÙ¬7æÙ6+|þ{bmQQ¡ÙÔ@E¸Üùj·Ï"ÙmEU8.ò¼<*YßRf [\~[[XØøý{m©#âñÖ¤7ít+ÎFÛÉÖ'ß7^ôQo#a,è!·),Ë-ë²hºÈ,/ÊHZ_â FBK QZJì´etz>´ â¼Ú2îw)ïDÛDÝh31À¯ÓÞuYAâÓöò
+4JjT¾:?Z%ÐÚ/ý9:Å9ÇÏ/vÌ»Ö+s!óRaÈY¨Àð´±L©2*ÁÁ!è¨ùÐ0\Ï2j8l±¦R¡±ß@ÞÇÁBrÅ3P3)C¨¢"+w8R(V÷iõWÝÊØÊÜ:}ò¨H¾ÍZ``пHÄïy7Ùé73·N×Öaí³ý²Ï'++.
+ÌiS|.&ö"ÂÂ)PSNpú¾}<
+ømë1Þ.»Í0ÎÉã R ¬ÁköY3 @Ä<b×C2·Ç1d"kÖDÆiæWs\Z5ÑTÿöÓz^/¿Ð§?ýá)æ±:~øé²¬Qøïÿ\þÜ`åã¼ë:JLÊÑ0¦EvÒKeëªG°tËØ&?£[ÉÍdö:¢;Åcd|nнÐ
+zõ}гw!Ò} m»
+#2EÇÐ$
+7"ßÀ,3¤Ø^ä#Ë
+Ø1pByüÛÌãÌnÅÒÜË7áØ0¯ÉC@ë$CÈÊÉ«îû3¬ù »j_#Q, ¹·ÆèTãqØÝT_x4ûªìF¨D#ûÛ§ڻqé6BY2FÆ{(¼¦ã¯ë2Dze¨uúT¬Û¯ÙعXo±þ[ò<kÆÈ
+© aùÑ¡¦.u4WoOP¥9!oß8dõÁÉÖÃÂÜ×
+=Þ,ßTè)VTÈä{ßµC»
+rG-IÁ·q µGrìæDU
+Ç5¹À¥Ô6å¸ûÃYøß®Àô:ÞHÏáÑ3ßHÏùFvîà´3â5)KúTùEJ0Dv°_Oàëms8U- niñɧ³Óxß"æo4b
+òD ¨\åW)yÍ8ßû(Q~6Ý{ð;X¾*¶ÉðC§
+Ø]®Üש*¾ÉªTöc^²NÃG6a7¨5tâ2K±(S²ÆhdËprg9
+$1È¿.DìEeB©º¶2¿rÁ5oÌÅpè+T±íêV+XËB_¢Ûeô^Õ|2JYF¾,RpQ4ÒððÔzsîX®?]¶h'ÖáöLÖIÊÑ*:ö]døk+9xN«1E<yBÞLB5øúË$pdÖF!®mkÃ=¿Vp¨¿O'µÛ^]²±¡
+óíò)ykN²À×Af岦¸½ÝZH ôH!Já;_ÛÝe°/\Ìó'³¦ßsØåYÄÒp¥¦ì®7_ü+PóïeSçÒkÿй¶«C
+µ¿1µ/¢#ÿ_ʺÔu^Éãz'ÎM.½ÅÖ¸¡4ܽX5ã«®ýD¹òA£²îUDËýªóâÇÌÅùjòr$r(.5Då¤IA%æÔÖ^LoSHOwCn(fÕ¹Év»:4YmzoYE¦ËC-ë½¼ïý¡|·[ÅbõýÙs'µì±ê¢f]s©¼ÔE-±sS\°og#Mb£@zçÐ c kÕJç
++<t?ÉÉ'ä"rz¦yScÂÒé@>y.ºß¦×G{¥Ä2ivÄ]5íýð4\(ÄÕüD¥zbÇo<{ó³oú¨/tËÈ®¸t7´÷>uýÖHïc(éεËëÛÀ£³Úëúè¬ïº2`Ëñe3À¥$U4âüÖêyßk12Cé.7W\§:1yT÷VÑÖBÉIhqo¯¼éÍGý _)/¤&ÜjH%½cØ"à©-l-/ÅQx=0¡Î MÈ©ÎíeÖøè«ipÌ^áL{ãB
+DG
+ƨ®qÁ4Ù5h ~wÔ EEÝÔÜ4õCÂû9ØiBão>¹>Ä´ÖµIw)³«ÆåSí>À;ÃÀæ¾Ô^BGÜ¡{Tù®nMÕü&"|éß0ín{(L¿Ý\â±Æ1tçûs`':ïD
+eR&Óï{húªïú#P¢àÅÌûÀº
+:ÅrqT
ëÉ*íé¬bÔò¹lsG)µ¸£Æ÷_o#ÅÜ~®FÉF¹ÜP&ÈÝlÔg?§N`ØÚm¹íÆPíýç~#mW}`æ}ø!¹Â®þQ½ë[KÿFÆsÂ/~ QuÙ÷}°=~ú ¾¬Gh¯/m,4¿J·0ÓãÞÊÿè°ë¥oî«OÁÛ^G²ìWC at XÖjG¾õFÐ7Òͨ7ÀO<¶Ô:cÊlÛ?Ø»«f½ic¡Ø 7³ü×¥µ¬ GÍ8ÅY\·ÍL»´?M0I`;ZtÎÆ4Sh
)Y^BbÑ[{f§Ä¹uel @JL»õ<²¢þ¡ù!¾
+µÚR*ÅMÙH+Ç2¹ªy¶ªUþÓ\"H£HGu¯V
+ÎÔº-$Òv_:`S]ËlWËWÅ»`I_·óCós}ÓÞØHýÈÆoüì;4ãÉY¥¿9W¡@ÁÛî"=$É5?ªÖÙåcCË2ãvL«ÉTTæìL®R$7KV$~UºBÖÑéúÐ:¬é~"§g§#KT¤D,Â:£¸ÞdÝ^"TÑFÄ0NÒÜàã©Ñ3Ç'NB
²Òʽ Þ÷¬·ùùh¡;B8El߸çFÑ©øÐ(ôÚgøïÝ÷]v£S?¢TkòC¸ý
+
þ±Þ<S6e¡ðîÐÆÆ\ªWx@§ WV
ü/§àH)(û*¨«OÛxN»ÇÝx©ç>ò¢HRyvç¯\æj§]
+ïô;åiø5ýùÆÛÒÌî=Oã¯3|µYgCÌ6Êe·b4R®½B¼<è7Kñÿ\Y:@ÎSuÍ·nïÕF
+_³öÔÂ4P
BÆRKCË*ø'ï
+¤?Y·
¤Ñ²ßS¤q¤Bð}u±Uöi}\E/y)Aã+°K¶Tò¿¾*ôï*Í2åU
+
+W6ª¯m× ÏËNA1ÚÄØË7zenÑE(JaóÆf
+\ØÜ[Ûiìö¬×É;®Ð9èíyY&¶µD¯xÐñ,Ы·ôǺëU-,óÃåÿ2f
endstream
endobj
265 0 obj
-3073
+3534
endobj
267 0 obj
<</Length 268 0 R/Filter/FlateDecode>>
stream
-xíZKì6Þ÷¯ð:PI¶e(
-ÊÕÕìîLÃ,BVyÁ0w`²ÉßÏyI²lËv§;pÁ×9::Oé»eÎÐüòô¿Æ4'Í,~û¾?ÿÐüëæ¿<Iÿ~þéi|}òá<4½Îmóú}óå4`׿¹îÚ]àvüÞ¯'ô×þâ,¶ÍüÕÑÀ ðë·¯_?=^>ÍØ±ç¾é8{áß6
-òçh
-2e\Ç,Õ¹¼`¨O²2øîóAÕþ¢Sÿøê ³4ç0`ë?Í?
-ëGMòÿÆ0XAJ:Q8wfG»AѼÄMhØBó²àO=ØÆnj©¾O
QY,Vg7è|Þ ¦äóO
-=t,8Ð1K£JWqÒÖ´ÙÒr»m;tUy×QÁdLùSC[c¸nY[cݽØëtS¬]7¤B÷¹ßiÜ0÷>7µ.xí`Z@FiyÅ= £Ë¹tIÒù /üÈO=q;é¥BÂ!ô<ÒìËTpéÌðÓ¹B
-ܪª¶ºvê*(ÏíT!¶çzν¹2so®1q±w£(LCÀ¦R
u¢¿XBüØÒ´!^%zuò u¾§~¨®#ëæíC3p
-^×¶
s·roô2ê_ª¢¶Y¿Ö ïÇ«¯#5«óv²].lZ-dáRrb*èãCçL.Y² â$¯s¸EÝúím¿íHì.¶ÕRت>¤ùuÉFÂÈê#ýÓÆ öfÈ'¤â³U¿|bñi*£c¤p«?jÖFv«éÊ/.{äøØïxæéåÆ6ºýfJÜ7Æ¢ÞâY
-u+ ;¶é=Õ7gÉ\®²z=üvçMÆùBªÝ8Ï8gĤe5Äå8~#Î×VÍ8PQì2Î5°!»ë4AÑCtCÒzï¼ÈÝqÓÖuwÓ»ÿªÇv3ºOÁÎG-í÷æ$£sÍHáäg³
-ÂT²{LëpÅ`Z¾n,k ®×lÌsÎIJôS!¦ý£híd¬FåýM²rìÍcmÌ®º1]6Äç5ªü¿üHÔu×`i°½úJ*é¾RS·ë£·¸³mI ÏÌÝã¼y
-FY÷ûQ
-{sçÞ\µ¹7×ßÛñ)Ë?lìn½wïn=¡ø|Jø½ZSûOycbf;¨ñLpTãâÝøðz'>µ<Âÿ)>åÂJ´¿Zcó7>urÝ.ýp|j²É±8_JµçwãSÂëøÔbÿøTÍ;÷µkÓ3ê 3ÁQ#¶ÅKMsÂÄÇlÍEµ[#
éVøÀܨÝ8gY©ªòêi&³©Tn!MË
-ÊkÜôN)sZJÆ{ß¶¹7à8hóLpÔæb¸|ÓBª×½þâG~ ¨ÐìâDáÐFÒ²6¼LX·ã>t®ôÂ9ÃA¶ÐL×ö+Û@3o¤á4}¬«Ö obq¶[ªJÙgbJSøSõ·St¶ëWAõÿ»¤ÊXþ
çï
-:c_µ
+xµZKä6¾Ï¯ð9Ð$K64v ·MrXrËB6½ä離ô¶$»{v-¹ÞU_Ü+Î0ü÷ôï À[¯v¦ëçß_¾þáMú÷ùϧ·'Púlê<o¿
+߯ ;¼ýññ"`)é¢ð|Yñ"^èr¥Ë+½,¿¾ýøt{{ú°å=³Õxu¼õìù(̸äÅÊå¤.VѽpkµÚ0þ·ÌJ[Wh5ÚÊÒÆÀ Ó¨¦ÉI³
+£ÙÍÈ_U âûHäw(î0Ñ8kOBwÀÒëaÕ½Ìùï_çûHàw$î0ÆXÏÈÝ¢°CDiþB_9"wÂ¥Âkî!·s.ą̀ÉÛênsͧh?lºgÚæ!2»qh»»ïÕ¾ëJÿ¤¤ØÆ:=a
+÷ÛÈ¥§mxÒÓ6.ÓïëÎT3^¹(e(JíiÁrt@ ¸µÃ@;ó.VbC}Ø^}yS [
¥|ì.3Ô£'ÄÓÊ04Ôd>ªq%Åc¾£=M'Bð¾Þg¦ÆI&U$ìJðüöh1Á¦±ô@$;«$½ÖÀúÉ͵3^d¡´Ñ ¦ð¼bo>ì¦bçdÜ
+ÐòÆ+½|9ÿoçÌÏ*ïÚ°µ'£*ç±
+¶¯!f¹Lwò!'!vQÆE¨åí¯&Á¤KUÆÔÉ7Iç¨5ÂèYõ
+ÿXúcôqÝ~EïÉ´s$ÐuäÒMyÄéÿáéöÒ>Ñú!&$õLóúÉa½.²7y˪Ü#é&¨¼ª8ùnä´
+m\i|´k×x°îJFFozC\jm9Ñ ´F)ìO¡/Íq<åÍë@kð§¼8
+ò®{¼Æá©ÉÜ>'E5N5xYâÂg5;~O¶O?êqãÞâ=¹é-.ê~êØkI©ísnÁ8
+ý:
¸¡íñ
+0»Û#\BS«ªxþñ²Õ½¶ôõa1©Ò\ãjÇB×fl?v 6ªHÆNpâI±{õG;ÈÀ6y,¹^$°c0ÎY:KµäÇ*8
+ÏBlÈY§ÍóʼNÞLé$ûgîñé¡Þl]ÕM_ÜÙí~{Û첹ͥMZ²tÌ×%dfRÉ9)ómcøÉÒpiW¶å¢f»íÂÓZNö¼3&v
+ÝâÎ$m×Ëæ§pA#OÇÚÍf]×k Ï2A²NÉõSS6)*ö¥o5S ÌpÆåkÛºK¡¼Y<ÀÞìÒa6ºê}è©)ö9àTvÃâq³)§lÀ®íÃLÚ³^L)çÙ5ÆG^»¥¾ñ²Ë²»Õï%E?©î´VyNÐçòB½ùaqlÄè0ª£¨§£ãê.ÞF$«Û¾î&EBcY]å3S&#\=âÌ++ßTIÛT[}4ä¢VPa«³ºÆþ³¿¯UÌúñqÒÁVEçøñl6+~Zí¦Ôñ<
+MüÐ*}EÃĽ
+Ø«X ¿¿b+|Ì
+±¯Ea¤KjsíΦ©ë#µ-E*WÜõ+}@hG¼ã%$PKµ`}ö¡¤iò9pRd]w¤LN½ÞÉF´³~Ø~ºÝKga¾¼U<¾Q:7ä<Î
+cïIçÜ5¹e0ÑÝ|UmªYûmJIh:ÿ6¥fêñ_R®MÕ|îjSMñïlS/¶ýáµ0ç±V¦m¿½Æ8Æ¥*&¿£Õ¤9t!MÝèBkïÿá7^¢4¾Tè£|;%
³cyþ9½.nÕÞ¬q<ÙÖ«9 e¹Ðä2T²éd.Ï[@qN<§\9±ïO0R=*ªªî¯l·¼¸£Ö<ÅTºL,Oã )eNì~ùá꺥<2tgtÿì<ß
endstream
endobj
268 0 obj
-2266
+1897
endobj
270 0 obj
<</Length 271 0 R/Filter/FlateDecode>>
stream
-xÍ[K$¹¾÷¯ÈóBµz¥®~|»ÁaOÞñ¼ýûVDH
-)SÊÊêm3RâñÅCÊjõÓïÿÔtRñÖ×yÁëo¿Nÿiú
-â¿ßþùp}°áqfµ<ºéýéOo0Þ¿}=+ñgPxy¾à¬ÍådÏ0_NæOt¯ðªìåç÷¿<¼¾?|Y±¥çÉ/ðh·
-Ê«·ËI+ä_/§å¬Ìe>+Z7MóñÕIÓ°y*Xáqâ¨Ëd[½Lia¤ÓúU3©FÜâl~Ã+/h·Äí
æåQÒ3¸¡úÎ?úÉ{1í2&ýõYå?ë5Óß$-Î+¹j=¾Òà|ÃæNÅ¥[+ª+©¨
-!9Me
-unÜÕ²` HX
-¢òI,Ëzd¬Oôd`õ×¢Õ'j~-KÁUVMr×ö«1SC MÓ"Ì/Mȼ¾LèT£<º2F°¶Ñ¡9ÙáýóCñ|b=yfú>õéþßÓßäéûä´®F"üMÄg"¢ûBF¨[\ø>å$&çjÝ¢4BDe¬ÇÔÅD|òÉ-WâûLGHFëñC¯.¦ F-]4æZz]£YþJâÚ]z×'cÃ;6ak'ÉÚ÷ò´v°<½(OkWÉÓÚÿ,¦:³¬Î S{,U£RçäÓ|Ì·`1b0>cú¿òð8©F
îc¸¿b¨Ï'NÌä´¥ôIy8ù¼vÀ7 d.Þ²ä$¿E)
F1-Çl4 :¹h[
¦k2*e¾$|\(Óæ#ë,Ôµ\Èì"kEIXûR
-4 v_Kr颶V,ôXkĶgF~Ú¥^$`ÂûZõØ°ÙøQ6Øõi<c¸*ñ)Mf÷,»WyéD9®MF
-:§ÅSDáá¼A·ÒoÍ´ø_RgQDt##zFEÂù
-ù¾ÿ«KlK¤:ÛyHÐÝBXR-j4YíC÷è9ì©xWâñrÅ÷ß°×ú}ªrÌ\)ë;¾§¤¶N+DÇÈQålì¥IRðÂF.Ò!½dû#`®ì3®Ü-©uQÌ9å'æ9«ØÔ;Á<èJô [ÇÍM
-
xÇ»&
-[½BBNn-åöùê-»PëRø شĪS³»èÁr-lFîù¿vÇÿ{?Qèú``$£BÜWR~íñ½äiAbÕxJohÖM´è·ïÑ"GÑRQ´äÊÂ[^@K_¹qJY«$ïÈ4ZmìoZnÇßÔã=Fºíj9r·vØþV=wI ¹l²ÔbxmJ7x´pËÃàï,ÁBpÔÃÅRµ\K0Cøèá±û×ûÌÿÛ)»
-ËnG
¡ûîk*ûªÖü7PSTòØÅ9M[ÞUæÎò,G½[QÜj°´¨9P«mvNKìÕè°ët» Ó;cÖ¢Ó
¢çt]7î·ºV
-ÖõÞ
-Ú[ù¼w«v;¨+ïpJýTõseÐ7£öµ<äýép¯¥Z8ån/òÜ ]`SâVÝd¸uÌ:Vì·ÒíAÔç¸ß|*;ô¸J~´eåñõÞK^"ËFÓqfÞëÞa;/÷Õàà`×msm©÷HKÙ4=ØsÙÃ@æuö¯Ú/¾*÷Ô²¼*nö®ÒsNNYI!nvámÀ5ëuDgn}@YxÁϧóéYÈ:ûÄFÀIqmAƳ޴ø9´~ÞGj]y/©_bMx¡vç
-_<£öjÍqP|
tÆÃóilÌnÃê`²1ѵ@¬å¬sqé²Ü?oø
-Ëæö¼¦:ÑârV0$«E|ô³r!þ¯BìLâÿv¶®9²âÃ#L
ʼçLÄ-ÅW@c
-£ïlT¸é»Õi;ÒÍS4ï VÒ¢°$íb£Aòÿ)6Ϲ{küÊÈp]ÐÈÙä5"|³TËÈ}XÀm·Í(ò|¹KþÐ3vm¥ùSÆBÍ.MäQYUÇ9ËÄïD__ÞízFøìgD ¹0xjÄWÝ
-ª¹¸*Èí¢v¦"guùPzµ[-Å×Ô%Al¨³½øTëSðËáÖðÔ¸\ûÑc/}ËdëÌQÂ*©#%øså[ëô\ÒÀPtãû¶AÉâÂÌfàeúnôñ¼È3¦lú"lCñcÖæ#æ >
-!ËT§×,"óLW*[UBß:5in¾/ý
-µÙY_°ekQôýüÃLê±ßïLö4½³%lm¿RØÌ\0T\hµ·>2þ^÷Ô9S/¶Ñý®Z'8=ó}0 »·l(~L at vÄàBÝÊB å07Rq}Øwô5ÿÄ·X5ÂYÖ²Q¥
-¥2Dó,äËXA«=b³ÃØ´ôsæ¡ÒÜÍ-ÅÁfOÎn^×qÛ2î~#ï²ý<üiµ'ºàS¥½qÌÐÖ³çÅãéÎ-Å»3kâ`â>[§SÁoÖ[r_ЮPjNw)ÞÒ0´vÃ=ÎVe
-ÉYRש)¹¸Ù¦1-eCjijY
-õ"#Ýe³Gæw&OÖG1ö¼ÛfèE¤®Ûe9#±¼o"$ïêõíÐÑÕÎÏ¥Z«@1&
-PAVæÑBq-2'äf à÷'H?ß 7?&AvÄ@9ëQº]<tP¹LÆ~Çh«#=`k
§¼Æ
|z;T¢¿I!NSyÎ/qm[dÊÚU£|R!{dÂ^ËYév6Ùä´\VòqgmÛÉyS¥-èÖâë*²uvYÞÙßsñT±Äb4AÅ,å÷0·bT+»¥øºÆuuÞ0Ün,Y¬Ðja¼#cÙ>Ña«HU:ïjÊÑjmÏxm¬ÖÝû¸g<(¾oòØa¹¸ëYµsãGn¼{øÌzλãÌ9Tm¢ëH×[5Jý,nüÿ
-#èv´z\'ðÚ
-÷1Ä!f=Y,#Yøäéû®æ¿<¤¿P;ÙüÊÅ{
mÙý;
-ÝaÄ£ÃL<èÒ*Oäv¹¿ÒÏ?pÊÓtÒU¿®-Tä×9Òá>L^ñð|ûéáËô?i
+xÍ[[äº~_ÑÏè.éî@Þ6YÈ÷\ d9/ùûQU©J%Û²{çl ,xÛ¶$W}_ÝtófOÿyù÷É^Mù¬+×<Ãõ¿þôÓ¿ð%üûåï/ï__lLo駯9ýöaÃɺÓ׿};wç/þýåÕÓ\~¦;\"ÜÓS¸ÚùìÌå5£ÉîòZ< õZ¶µÐÖÃ-Y|ÒÏ,c§¥E?ýýËýëËM
+RËu¡AºÂP¢hÂ
+¿ën$*iOè[Oîèei7Ÿ·|J~&AâÉZBò
+Ëax=^wþbQJ_·å_]4ðówÀ\ôøÀVxmC÷_Üðÿ£¦ò
+ûØ»Äýê@Sd·ömÚÂ>
+é
fªB0po;¿!ü>§7¿ñª>¡WÉI¥Gº»²
+¤ÊQA
+Ö,&Ñ
+Dý½3JÆv@"«Uf»Þ¦{È¢i¬Q¶¬
+ÏCÿÞ,o*|fh¬
+JYæ¦][_¿÷¤_%æ+ÁçÅÄnj¤-pg0È¡-!«%¯]hâ\UoÇ$GvM,¡zÍó¡e`*è-C|[ülIe§ï8NS£Z¤¦-?ØKÐv¸i9@÷úL¤º§h¦ ¸¶ñÕGÑxÃ:4îbõºb
qò4ÑBê[ó{d±D¼®úk\%¹ÉZl^ûöMýFоà¯ìe£Y¤Nqr,KÉÝÖø¼øðûÍ¥<L_r}l|i|;©ðè>àr-3Ãn_ðÖ\ùâÞá×oíy~Özø+b_T»qBfÛ«ùíì
+0
+ûõÚzË£ôº*ygÿXkÔ¦øä'µ)UWøúÐ8öY*þzB^zÊ©Ñ
+©³j4 ¼µ7ÆG½¿@ ä èNÁä<ÿ!
+ÿð»Q5@¥1~~?ÙêïþøÒî¾¢sêMé4B+u¢ßÜß@§ö:áT¥vÂßÒ©¾ÁNò:
ÂwÂßÒ©¾ÁNò;9fÔ~s'~Ú)õÁÜ¥>ò¼Co:]'n´JhK7ZòIÂ
,{V1µKÆñ1¬cì:q,9owKbÛݽv·¤¨Ý-¨ «rÖm(
ÿÌÈj)µ,´ñB¥iÕFyÆ·ãÄ_ Qàjq²-Es.?¡P;à{=½È¹ j%iúÒº<¯xíJÚ^Cü>ÆéÇLRÓ®!Xå®
+uáÉÔîø>èn CS¼Âã¼ÒNáF°NÐoA½ð÷<£äK¾Rü%¨8ûu+
r æL¤ÎzùRó
?©¯äÐÝÀð8Ô*ø årCÐÈtLÔ:
+?Ã7¾C£,lµ
+ÉÊ7"òtÃó®ÎC¥`Ç-Ó¶<µÏ;8R 6@S$ݲ죵1ÈÓ3æå¶9¹õÊË4ª«<z!U3EØ8d´/àÄ:ë»æ4Õ7îDȽNá3µÔ
BZD÷Áæ¾!Uã]¸]Zy°ËaÑôFÄ 7d#%`£}#f+ÆÂÊú°ZùóD
+¹²_gðëÎÃx[ªÖ@!HÂhh6¶
e@xÔÇdý.yóÎK4Àÿç9vuûhNvë lªóh|à§¿3Ä
+`Zº³(Ksk½®(Læ/wÕ¸Rاeð¤ø¡£°¿x=¬f
+¶yf=ËÖËÕZ>DÃU¶ &+÷óÊAQòÚ,xXZbO%äfÀ*V[£þ=/uèÊÍ&ÏöÇh~FÊÝXä§Èá¹X¤:´Xaa×OkDòâ¿/W®®J+v¬$maԲŷmÜ`ŧY0ÉïáJ iÛúªÁ®Bz|oWÎyè¥ûc¢,UÌ90¾æÈG;C.MBk$Á¡k&5)ÙsÉÖ"ëWpQ±>]·)¨.Yº:Wá1üư.&jv
è,5àîR¾éB4×RM¥{7¥R/¼«.Ã/g)ô$|æ8ʪMÅ&ÁÃ4?¯¤zOÃ<Ľ?²6ãÓ¾ÚüT=íÒg-ìtmeÃÂð6P<$5¸UMõãæ«ÂÚ.BATúÓÀX©®rÀF$ÊFGæÅ|[bÍ úçMðoGÀV¼µ²¬;<z<©/ÎlíQî2rï,àpn
+¥ÄgjË/8Ü,´0d¤NXÉGÄEøb^02æt¯÷ò½"Em
ûÝhIíuhûöóC³h³]H\¢PÕPè¾¶<~ª¤h)ú²UÜ{;Áu ²r=ð"Jæ¿GL2Øc|X-ÿ¶¥ÏQp¥hKèô?W°Iý
+Cÿ(x²?Æ}:ÔC£/Ý9&MVhvÜSÛÂsïGYátk°«S}(ºÅ³<[F±C:WËbA2ªã«¹"&N)a£ü
+l»ÊÓ¯ ~gDIÔ¹ôcË'ªCK¢ÉýJãjgaQ
+Ѧ SjCÎPî
I#6²¶zõPN§²´¤cîcän½Ñ»ÊèЬ¡¸[£rhÚÖªsY5rw0tJ^vËî{»LçgÒú®
Ö
+Ì[)ÁÛÊÒÈ6ùÜØh£-aÕÎO|r+Õ}ǰÓÄü9ÇP,^Iïu^v¢3¶tª»~q`îIh"k¸aD3 ô©þ úá¾ZÝbpÜÖ]hþIÓ%Ü¥ÇCªÌO4`½÷ª}ÌÉ»âÉHÉN"ekgHù åy,=HLÓúËàEð»d´@eÓlª7eO
D³7V®¢F
+ËTÌ0D8Sijng»¦^q#ï,u¸kÞ²¤©RÒJú*Ô½!gM<¢`êÎXícfÆÌ"ò¢RÙ¢MÍÚ?ªÐ
+·i´æ¡qTø,ÅÏ76úqPvÖî½É£8
xÒâs¦=iH¾³®~µCüðüÍúFȦ]7`¿^/´H«¢´¨Ø¦S,çýªGóo±¤GådwòÕ b¬ÔÌçiÝ$´Pèq&ð¹Iä´áµÌNL¿¶iÛEÜÎú&$Þ°Aà!åѬ]{îQäµ-ô*¬:n54úvÁB`@Ù+ÂÚ÷ï7xÅèôh!L®c5(ËaZêbýÔì6ͶWb`Rî}¬Ó&?úiíÄsCY3¯¦Þî
+(!ñÐA2Z<~.ô§6mîÀcFsfr¸*´Ê¤*¿ô¹ð1ä&k¶ùuëd¼»Ö9$~taQÞY.ÁO!`ÁwC,9)|HRŶ0±ª
°DÕ~ZiFlM:ÈÚ|¶gÂ>h*9jµpÊR ê³»I¢ò~+Që«
+z µë¬[¦ FN<(l§Ü\ê'b63¯=U
+õ5$÷Uù´¡qáäÕkR|ç:w
á)$þP8
+jdÊ$Nª©ïMËÜÔÁ6JÜb¯È.jwZq[Ç7w4<v f+^v4ÿ¦·ÛKgú#«ÆÁÊñ`§4x`ÉDüûn&ÏÑÚ2ìrlè<:ÊwC ¿9ãÁ¿5ït3ã
+ÕáiA¶3°Zúùrú/ ºäñ
endstream
endobj
271 0 obj
-2908
+3615
endobj
273 0 obj
<</Length 274 0 R/Filter/FlateDecode>>
stream
-xÕY4Iñ}~E=/ôGÐ4tO÷¾ø°ø¤® ®à¾ìß7Î<ª*«g¾UDzªò;"#ʽÂðËË¿7>àñwZè÷ç¿ünø'OÒßÏ{¹}¼Äùu&·¼¦áã/ÃoÞa
-äÀßeËrk,i¨Bs±e³ø8y»òo¸LãzVðgèÂ@Çâ.á,#eÄÇÉ Û¤e
-6FõûØù
-9Pì:Ò˾4 ðÇßä?-¯~%>ß¿]gRCÄ[¦;÷jRMvós³nEL¤®¦ñuÆ4°àECN/?*à¤ð<xñì± ù5¬Xà
-¸È Q&&K.åqaFÕ(ÞJ+åìAOàÅhsUÎP_IïÅh!Q5ÈÉX^«enÀ±±dªß»â%(/C"ÕÛã%ãü5³N¼Y÷Èʲ/CÞMZÙÐ
jbG}þ¾H*Ê@i«©úóO/òúýo_ÐwÃðÓ
-¤@7ÇW£Ù¬-áL³LQT =:tV κ«a2<8=
¯|Âh¯ïµÈ»Zµïb}³ñÂQm¥ç]ewµ`jÚ¸ñ¤=°"Sü
ØØSË[Û/;ªìÊ©#(iJW2yÄ,&Åþ)ĸU&
-¡&ª.¼CØ^Ç@¸m㩤m1+¡òªÃ×c·»´`z?srpÙ½¹ùí!âðÍÝpdrÇçÝèþêoøL£=Ìø?âÛÍf?Î;&Ñ'[ôôMñrµ^ ÿAß컺,°1gòØwGÐ<þFü¿¸{{QEÏÎû[BÀ9¢ó3S¸Îó4ù¨àïÏ0óÞRµ"
-ßÈ£³Å8ûMþéÄt½Üèò³ÍÇó-_pÒ«Mj¯È._\ìNocìU`ÚûPÿNWÃå`¢óït^×:w¤RÏ(wBG!·Üî+ ·æq}|4éýMï§àëû£Ê¡b¢È²nvɱå_qÜ/ýEÊ·Êò¬bÇÕt¥^íêºn ±YUHyI_ÊõSѺ*ûÜ«ÃTëìþ°ué\ÓgïÃ# <lEKJ83ÏV,&V
-ÜEËÖDJq®(Z©GE'YeªeN´QÊ2ºXQªgjc$5Øu«í-7¦ ÖªjÃå3ê«u
-9µõNýÅC'"lÒÛݦÜûêrRæúÊSæãzX®ÖU±ÃÚ^s7ÕþàQU'³-eY¿ã0:~¯QÅÌnbÇ+ØbèW1«
-¸t ôt3>á`¸æÀ9Î0ÁB¼Å5;ù·0ºG¬³%Ì0·ðFòCaq¼c?fI-ñ8öe[{¢´1(+G¹òÝzø'ªõU¸.M* pÙT®yn#3?KÝúÝ<Dñã]]m{ñìäë@6Z¦M
-eÉÐÓÒU#5ä[2Ò&eEãÚJD=l ûø~+ìèÃS
-`f*{oÍËàÌ0sУŢnÏÚU/³ãº]åI\J.pÅn*Ð)èã+
ÒÁzÖ¯
-Ááïnç4ý*ZT*7óp¬A³ù
-#?&ý¦ì®m$;èZ4^º4fªF `'f<«N<*Çlyp;°µrsDU85;
-½¹J©¢yÑ¿JÞ4í5õ=´9wÈÍ9N1{þ,âÍaclÝbéa¥g¦H9±(·ÌÊu6álÚWuÊùHßrMÙ¾d½û9ô,²Ê5|àè")ÿ®5ج5êô&
-BuDõÕ
-´ý¾ (øµ§ñIµ{.`ÖµçgmEµ+&ÏÖ/³êsîzOZ¨ø9oÒÞgø$ÂË6ɳm²ÚTfôä¥hgUÐkÜÃ!-
Æ5êåmß×{~>Ö¯éúíùßöýª¾þ«æ¶&bt¹
-.õ»W-ÜÀ;nzØVðÿãMÂêÏ5 ÷°ò²iÃJ
-\W\¸fJ»#:ñ̳mïgjÛUB+s²ðM-T½u+Ë_Möî½:°6DÍJGÇÀEΣF ZP
-iÈýCÈ=¹2VN'èÓa¯%ÎôÕVϺn¨î\èRæÙEí¾ól_4BDê{Â(?
ßWÓ¾º ¹ê/*Woêxè.VtÀìvrG®·ÎßÀÌ SJÓhuþª\Û7_VWÕø:5¦Ïõb*mèäÒ¼DÎZaOb'Dc§<ç¦31òÇNð± ~Ît7å>iö9ñ£mÑqÚÇÔä¥fçÈ5Úá·BÝéò¶BîëAü²1Ço{`þO&>ÂÓGîçh¹CDK
-Õl>Æmç£_ó+ÇM6 È9+í
ógÛêÑ=¿§nzM;¬!±Éø¢Â¸*°YÈÞûr&ÇF uí8û&Q§.%³UL|B5Ã
-Pv&·Ü9ÿ¦@`)ZV¡ÓC=Ó;~ÎVVúP$ߤkìïÖLºÉT³£°þëZ}Ó#l© Î~P]Þb~P]ÞAâèÓØè-üµ; dÆZ0mÌàè#+
-D[à´¹WùIÔÝ"3Û\Kdö|cßßu}?#Ý÷ÐÝy_DL¸/q
-½Pøãw'ÿ
-Dçßg
+xÅÉ,¹ñÞ_gCµ+îZ¾=»Áã=Æcwñï[RH¡ÐÊêç¥\RìTì̽ýº°åÄÜáÂ]íæ¯ßÿ¶üé7Ë?ß¾-þóÊÏ&|ëYág¶øÿ?ü.Þ|ÿùMçm»¡¿,\xÿåoùéEA¾ ¾2·
+
+_
æ¢äUxX÷ú~ñBF)wk¥`úßß®\\Aë_>ÿöø|ûQ-tåóûÂÎbsN˹1P³Ç°@ª]6Gé
ÉëçßË(g
+θ}7!ØÙ¤l1õHE0.õðu)TÁbpÔ5¡*4Iv(zg¨ñ÷\ãn.7£GMÜPì\òE0ñ·Q6@&åU+óÜøÚÂTnÚ´RnÀDËJ¨¸QN_G¶©wd]çsÓÂ÷lÍ
+5ÀÿM b°ºäú,»TGTÀAAn£ó°FRÝÁÀ´Äî3a}E&
+I¯ÑªyÑ@¨RE£MßvY3U!¥\®ù÷ØÕp6Iô4;;oâÜtfG/ôC&
h%ò:®Å¸Á&ÕpNm|ÊØaÅîCºzq$|ªq*)HR[ ©HuC û#ë{©Î$êìH§ò8 ñUg£¦êØããP貤(RVÕhrGy\Úk»ûaå ¯ÈÏ`"m¥e#±«/ħJÂs??è3µ Ñè%PMJ´ò
Ï]qiBÈßNôÃÞÝ0%\E3Ú}²R â+ãÒÔ$k
+ví+Ç@îÉÆr@«ÌÙØñEÂh§hd¹ÊBD 2ÞÓHýßÈüù@侨&éöªvÒÖ±)í¼D˱ép-¹v</÷yoÖH=0Í2)Ï#S&íßì¦ÒUUÓäí{UÅ ¯óx_
ÞKú¶xÆD_¦¶ÊÀ61ñê¶ïç*vN{7i54µ³s0ãTgëTªg6Áì5ò½{f)j×ÖZÛ°Ô®É
+Ë=S®¬Éx_ÇÔíï¡Ò[Zè
+uXe®eOiLbåª1ZvÑîÅ íöÒÜ
+%Ç#"«DpC)4²Í|§¿ÍE¨Ä¹æ¹,,A)ýÐþå-R:ÂÂeN:dGm«/²´§Ù4jñ(Ìùªüs7Në²oàôcã}hDì¬;,«
0jN¢â«NLn¢ÞNää½þác£û{MýM*[CÒ¡=ÆîWu¯DÉÍçÄ-Cg"iºi/GÉ¡Z8¤3·&ærhªÎ\cò`qÕlúínz¤pvFËkÆ;¬
+(ôfóÞJêµuxh½ð6ÉÂU£}
+8ò9Àxï<Þ»V»Â½ÇÄQ1<h¦¾¤¨ãb
+ßRºâ»u( é=Ê gspOÐ<Cï[O/¹¯O×À¹ôÇm^Õ327%¼ëc¨í
+Í@ªÎõÚôwÊì ,\ý®±´·!Bz=p
ÑÇ"'Í¡ô^ëB3ÕeÏÁfàvîÏ·¥24¥ëîìÊ@]Ô)4ÃÍ*¨ù¼ñä»·¬ÈhÀU]ºtºf»´
ÉVQΩ¼
ÛÝtL
X )_/$÷:Çd¶û?¦ÒmèJµÛ)ë :¦tÎdV_»CR]ú¦ÓK0¢bæ sOmRº×zÑÈ7
sc at a=¢nì¸í#©@Y#ÌÄVo¿@¤Ä=ݯ³f{-tièÀSó,865Å<0¸
+_oé`vÃYÂÌïé°8Á{p¹`O at w
+;Ø
+ ÅÌ«q-Ä)Ó
+Lòp?{fò@Ê¿"Xø
+7d/H`dÜü±
+ª%£*}'ªï¹ì3XiüDf0r
+æc2X³í
+ ô·Ô#xDÞºd|ïªT5ã¿2}ÜýÊ7ä
+ÞÑIk%ì`+ÖÒ2¹3 º!J¢Æîq$2W#Âå,äÿß
+÷¿áßÐlîhS
+`ÝÅʼØÖzþÒåæÌY!¯rA¡}'=¨PÛeÅjÿ/:Q¹ÈÒOe'Çųi0x-XG"cL6<Æ/:Úq+ÌçÊ(BÈeMáþd.ÌåJÜ£8YÏE°Ðc¾pÑ~VéJ˦çöÀ#çbupYÃ[8á4î¶ð
endstream
endobj
274 0 obj
-3025
+3071
endobj
276 0 obj
<</Length 277 0 R/Filter/FlateDecode>>
stream
-xÅXIì6¾÷¯ð9Ð[ÆÐî%Û$
-9ܲ@ȼwÉßO-ÚlËíö@è±%U©TõÕW%«7hþ9|nTsTøØÆß®§ß/¿5?}Óü}xohÚöæãyÝhݾ4¯úûá»ððåõoúæS¶
-Ï5?òÛ§Æi]̰P§NòQF&¦ºH^ƧÄàÕó|n¡ãã
-BÇUïÚá"Oº¥ Gk´U$¥DÅh,U"A³À»tú0¬nf¤;þh&Ĺ´×µ¬Æqp¥/-ÀÉcP#?{9YWØz¡£G[Óò<P °d»ØÊ¿<¾¯EÅ)O^D
¤Å±íÝ<·¡Íg}RVcsñâ y×à®22îÅ/¤pàöËJx;è¢ãfò@f8ö²fýi4$bø·æ8Áë5f÷ü/áß\ùØ4`î8
P¶U$:(ì3$»8ª,i"}wô9FöxcÂÒs<BÎ%Ýèt0$höJFI¡ÊÇø,ÉüÄ«ìM~([ÑêÔÛ,ð[ºM/P,à!Ué#Ñæ#ÄÄéÄ|SÍÀJieú¡Á±ÿn¶nÅʧ°àXßQÉYøz_Ô¯"ÇðùzA]FÒÂóDtÿ
-1LJ£stVëÏÐ[fSr%VÜÀ;ý=hË3ÖSõ*îR-"¦Ö+aÆ<¡ÆanéÛTVE;@SÞ`%@W¥ ´?þüTÔ¢(
-C¦®Mæ\Ã{¯¾Þĺ1ºÁP%Þ%ó«5&9)ù§åè÷
-¼Æ¸gvÚ¸6ûÚ%æ[£3®ìQãvÚLð£q¾#\³ÿ×øOaDÉ·$ÒQ2ëù2EõûúùB`1è2
I°W@Ý(èØ¶ñé6n±^³hË1Á§Ì^NðN8iÀNSn¥ºÌ[5P5ïmñë+Ýc4nRá¹ÙíË&4èsâT/Ðp¹mÈÏJŹRXñçAÇzQ®íz0´HzKlR *õüKq{G[txÎ]-u!©±`®PAÈ?{bæÒ
DRºÒfKZȬ±ÄEúÁbÛÔÊ\ÚÕó¦ÇÕæ
-ÆÄ ó2{Ðmúrm´°e[z~¾®5Ôÿ;ùInKB6,Sd¯R<GkQ|H°¶
-¶`ݪ}ÌZäîÖý `Byncü&2cÈP¼4õÜt"î¤.Ù¨¯l^îÔÔפeW9z
-õÀýç¾ôi&Nª|'ÌÞâ49ëj¿Ö!ÌñØ»õóøÕHcúË'×Ú¯í
-îÛIYàëpnÄÝ0ý`v©ô#¯tbÑp½¬Á¯~fFlþê¥ÝÇìB[ôix
-½yn¶ÿw û¼ÕïpuMi³ Ô=}íÞö°ä²@_.Ø+ô^ù´Â×B`«ê¢e¢ÔmãXaç´n)#÷§Ì]>D?Ûm}±\\e´Ð¶pþÚPn^¼ÏZã9àäù±pZ'PÇðaòèÆ¦/«¦ñ$DzË*µÜÓ{ÚõhãÚah°?X]QNÂ+²}[1Æó=ÿg¾¯?ûBߢª¾Kß³Ü{ó/
-¶
+xµUMKÄ0½÷WÌYhÍ$Ó¤ea»î
+ÞVÄ *èÅ¿ofbÒmmµ¤0Ìd2/ó^¦ª>7PPªàZÔÁ:Ïöý®Oàµ8
+%{ߤ¨"ÌbX§2I[É"%õ4a¸+Äïí%é*e@
+iýªYC]¤Ù#¢m.RÐv4³¤"³ÁôµhòdR>²6?DÉ÷g|îYÖê\=j
endstream
endobj
277 0 obj
-1450
+498
endobj
279 0 obj
<</Length 280 0 R/Filter/FlateDecode>>
stream
-xµZK«ë6Þ_áu!§ÑËHBw·=ÐEéª/(½
ÞÍýû$Ë9IoKÀ-Íh4ÏO¶Ì+t_þîLw0Ôt_?ýÚýðU÷tòïÓï/÷ðá5tѸîýîë`÷þÛGèOþhMà3þt(78öNY¹J7\¨Þ¸Sha¬iãé§÷o_®ï/R|]è=É)rø@Ä@ §iÃѼ\.ÐÍiGrÚ3ò ÁÁzÀÝYG g¥;ñ¸ñÕÑc@å`.¹í)ÍDí7gáVQ§«P!íÄOæ5½ÌkX`/z¢kàÁЧa:騲HEë?)íCÇj³Ö'Ó"µ
-).VUúÝ7/E·®í»<]?vàBjÿÙ}ÿ2Ý}ì<bÕCDC\!q+Ã]5´ rL=BäBÿj¶3Qîa¢©GÖÂÏDÚÎD¹¦ôf¼OëæLº¾.7!²|DµFcSqmý´0_éd©¹r{©één©Îén©3u³¢
-ÞæÈŹO`è7÷ìÍ}3¨56ØP8Q ¢dGMÄÓçPÔO¬©CC@RSÚá'ýòÐ3/·SZNz"(evàÒ*ªN¥ébz at i NëGºØ7á¢B^jz-uRÉeÄ m
-}J*CmeXk÷Jy(Ýè\F&êtwÃ6º§64d£[¬â9_ïD?¨û¥R{î0->U#cwb¦ÚÜÀÛ©vì&
-«ÕÝ)<K¸8+êµóàÒZq×á¥ÂÉ-ì4f+ û4Üb~}Â#\:xÓ·´ø½À
-°.)¦ÒUJ
-Ì"oÔæÖÛw>à4Î}Ù5$E4s Q
-ÀhA¼Á8tEÖ8Ãíôüo¨ï Ð8º5nÆ-t¥Gûz ÑoÌk_;ªç¢7Ì¡'!y{«§±
-v¼`·~ðÀ,\*j°e«2¸U}
-Å$µ«×+è+ÁhW¨Q7gÊ5îûâ7dÞGæ&ï³¼XoÄÏLo !lùFÅ~æ0ßÚ¸Ý×)Îݵ¯ÚJÍßÁïÌÖûÕ)©Õ§mxH¦l"üzyç¼â×F-*ÛÐýãmà}»·\öÉ÷%è±ë~
-ôï
-áÚס!ÄÀW;'ÆÖhL`V"RÜðç2ú{3áe6Â$8,ñBm~jéУÀ%¼
û`D_& M
YfxS}yæDüÆ
Ír1NËÀh d¸ÐSé§@íͬÑ$utgsf$´"ÆïA$¥
òªâ_Jé<(ª»N=¬¥¼d«±,i|LRª îõi¨ÿ¶7v-%Ñi? 0|ZMÎPüÞÆU»¹ÇOsÿG]IìP>¶$)¿Êÿ{
;¿}iûFÞõÙ`$b¨¶Qÿ©-ÉH³Ä³á¾vB\æö/±%iömKîKC¦Õ°ÖÏÛ*M3ã*Úq¸¿Jª~YOqVQÛ2ÉÑÊ^ÙjÓÑö±úæßrDï¶¹ìpJvÇøæj>Nç&éeiÐ oåpf © ÁJÆM4ü5øÛ35··Ï$l¬2ÃrB 8ægçôÙvH¯¦ª®kZ©,êOøtO^t"ëOnd8ÎÏbð³¬éÆ1U6Vº.g[Êþú¢é
-×3àÛG\¸8ÌáfÅåî!è«wWVqpù±vq®Ý;?ãp9·ÂÊ0}z Á×sÕÖ¯QMØJ!ÉXyÍï*`L}åA Åi
+xåË$¹ñÞ_Qç
nëL(
+º{ª¾=àÃâí5Á{Ùßw<ôeJʪñµÈ©|D(ïI^ôéç§ÔéYÁÏ
+\ã×þzúãw§ÒKü÷ÓßÞ>?¹åe=Eµ¼ÄÓç¿~sÓ'Nüáìí%½s4õÖ˳9GuÑçè.6Ý+ÜxùÓçß=]??}¿A®¼aY_c÷'3vØ5¢f|ðrøï
+Â{ÂÓÛf!=$øÙ²Ù-¼3âÿü÷bDÕ®(F¢ùcF~G~¿¹uÎp
+Þ¼¸¤Ñî¤
+áv7óô.1?IA½ðsØÁÄóW¸x%Aé$¾2Ns`VÕµwþ8¤_,
+$P¯X5'$¿Í8ºpÁ¢ù÷Æ`BE±n1ÀÔÐHþò¤^ÓÏéÕïûîE°¿¬
éÐïþ°í
+
]xc0ÿÎ@ù
+Õ7¤
+
+>Aäh²Ï1ÚVImPïZ^çß[vÖ»-ÏXÉîÌѼ=)$YY¢¢÷®$h9eqgð}æáø>¼¼_ÈaâÌví=öLìâ`¢-±Î\òè5º·ñBF=¢#`$tÄÓd(;rY@ÁÒ#üõuÂ8$/÷)E{"1]ñb6ì+Tࣺ¦ªJu¨à<ýîEPc1EêÉþí¥i_É}±¤Ò²\8x-é)Òn3íÑfª5?äQÌq`ãc¯
+ÀçZ²ÍPBùkwjÁâÜÚ'׫°wá½^WÊγÄq«+6¹ÀA
+ëÔ¹Gg®î=MÚcѸ×Ó%AiM¿z,wvDOoCLã.uôðÈû}ìkBÚÐÊae\RÖ¦Ö-£m ]: zh)¡ß¢(a* àq¢}áÊ
+SC>Ñ%®DÂ I5{N«Cm!cpP%ýLcQ~#je
ë&Ïß å_Å+¡Ôï(Üç3÷TùL!ÒºÔjÔ9mK-ôþnì4×ÌiªiÄÔ˱§\gMWRgÑz³1eÒLÎïÒóÛeÖɳsÒñcGÞã¤Ä3óÃOßÚØS
£ï×¢î0»èÔÇ
+p¯>V>F꼪|áRÂpÜfÚò¾}(oðKÖËu
+Wé9>êÖ
Ësf<è
+
+ÁúØáÜÄØÙ½ @
+S÷q*ñhk}c[ûpJ|o±ùnØpîÉþ nº wíiqµk,Ôíñ!
+õIËÎRè0¡øì××pSð-õ
+ÏydANwûxD(i%ygn¡þîÙ´1£ë}óâ 6k«½Mî ¦9¡³:÷´9-4¦Ò ÆÂEÓ}®zÃË;^>á%ä_ôBWªPÝÛ
+!*·Z3¡âO^Ëåv@)Ë ¸P/TÜ
¦ ÑøÆÙi"éSy[Àè-ß¾.èt«ß1kæM[°ìS3®}kÂS'cÖÏÍë1CËTiæúí¿Úd×;â/ëB+J¾]
+Woþ;´âe·%,$Üc|¯å;WB°vøêàü¥F^ϸÌåÈÂ&¸iÝúE |UZÏ~Ü-ëå¸Tp¡}²>]·vÙmùàâøÑ*pÙ×ÈvÉÝuÞ¼
Ö2´Y÷|pkKhܬn×)J;RÂ[]>
ZdT7xÕg%N4½:¡ÀMý5
+£dj.ÌØ^Ä
+Bd÷·fV2_ôPlVø
+?ûþç)¡hÑuxVð
+LÚ¸:Ú£îÀ¨%äܬýجMÝÁÓ\M«½¬I¬VKG«%¶MiÔUI^^lÔ«êãΨ·b9öô¤ÕÅ´~|Ôv¤ "[0Úß!'0ÞÅCÇ@Æ.Ìì*×ß¾íB'Wt«>oQ
+D!D+ªDÚ(ɯÜÖ¬Âà
+z¨Nf÷ è½k1ëD\ÎO-&¿PõÈÉìì
ÝÝ\ÆFDwâ÷íñ>¼Çò`AwïÛÖ+:Bó©*ðµ÷x/í>Ù(m}êQäI!éÖ5T>áð;T}
+Êfõ Wå%«ï
+ùÐHcÜe_Ë©{áEò%öûѤ¸ÝZzl?éÊ6|æ¤g<5=òüpîj"nrì
+Ï&[lÇdgîgó05ò
+¥Xjyé4¿LìæüóðȽú¼RQ=èía °FáèÚ3ï¶a¢»»²1´Òô«ò=öãµ®_ºÝïµwmÂ%µS¥ î¢Ú
+7Ø%q^³y"í&uls0èÜØMuÙG-A<öFA%¤¶fíiëGÑÙ%9HÇXdíÊÖ¥fbN}¯lÖîÒÔ5zì£ô> `Z3kÓwXa¹ÓcÈKÝ'@ÊW¶ÿÒ®ÀBuwçUÅ?1¯¼ÏbPN©¾;~Âf»¸¥yûpnøçsp+ªÑÁA8ðÊåÿÎò<UßP³e]aègIÏ¢<§Q(
+W;¢¶[ï¿É¹/Äö§¾öòþeÎ|i n}Óà^^Wÿô/ê+Ï|ígø«=óÕÖ8q`ñZ»üýÌæìú!%
endstream
endobj
280 0 obj
-2166
+3585
endobj
282 0 obj
<</Length 283 0 R/Filter/FlateDecode>>
stream
-xµXIëF¾ûWè°ÓU½©ÁÆc;ÛKrxä
-B&wy?µô&YÒÌËA®åëÌ Ï¿3
-
- =câç§_¾þMþ}úípy9§0Dã¯ïÀáå×gsp6ÜtDú78Ñß'ð<íÙ$Zë$^âôãË·ÛËáÃRÁSÂèÉÑã
--¹ÏS
-ÀÑg¤¹ºÆÍIã²"ª¥áRáPù@Þ'Ñ´¡¸JU
-1#4¥Àv]ô,Ë@âq.w*¿Q
-%ZÀx¦T"±1 ±ÞôÖ+QdàÖQÉahçFw='KD¹äb><¡cgjÌVn93vfQ1IÐÜn¡ùèzòlÑoô#¥z¥ç%G\âákPÿØ».¯åÄ+A9ºÓ¨¡©úéõ`Èo÷(C%oàKƼkQ
-æÑߪméNêâ<ºÐïsĦÑz+zxÑ;@YBË¥É$m3 Ä9É5å2hK0
ÛLAç£þ2â¤i7Cà±:Ñt¾Ê'Ê÷´XM^ϬÚp³OEj4H±1tùÍry«3A4sêÁ0\é*G¼dFz¢¹K2Gp0ò¿A ]A :RÇ}7x2ÒüFÿîsàNeíâDZ4IÕó,Êz2"+«±÷^¸xO?2
-ý«²~áîTûê,ÌT^q+5ͼO¥wlq£úªe¡Ý#nFcm¨[â˹8=$Ù¯ïA¼Î÷aÞ£Ýo¡^ÇÑp¯»v¹bíw MåíCº^·ÁÍÕc¬ÀÜ»²#p`f?g(W"äG¯\£×D>ÌÕÖwÌsØ-õßÀd"Q(ðÕ¨sV@î«årÎì
-Èn#HÎ
-t½33Ã{3£q´Ìhw¹£·ÛI³È¸ÀíØ£õ'ÊWãyñD}GúNгÃ×þõǰ72(wBwéµ°³u]Üf߸¶êÈ
³èH¥Sq¡»^¸yy!ìÄMñªì'ùð²Q3÷ä-:ñ³Y
-xG²Î1$¯ØØrÙúÖ;|Ó¯ôu¯ºU#2êwþúydC\ò¶»1À¥ß/z¶>D;òFd?L¬µÃ¨íðå[sµµÑ°Øhl0¢/i<Źºõõ÷l.¤O]õðBc^µôDQ¼ YGût¥§Üâ<[Sì#9°yµg«ÆÔu3«¨¥âéIHÞuáÕö¨7uhºÛ¹EôÏú¬}ËèUÚí[Vkþö+[jQü×þÃc´sYíJßð½}á¿÷×_î-HØÊh|ÈiLoÒú%:à¶-"üãO/¥ððË×cÈÒï· È]Y"sÑÖî}åw¸"·ÃoÒ+ƹµåçS7¾H;° äHµ"ï&e¡ÿÔù7§îSÙ
+xWKÜ0¾Ï¯ð¹©åw æYèmÛJO}Aév/û÷+ÉídòØe at 8±%úôYÎÈ=Ý¢8t ÐúìóOñåø·{4í$ì-Ï+p<ÌKA¿OÒàù÷Î}+1{/ÆÅç]yzV©jïxÒ;åvòJâDôK;U±xÑiÜí=Æ ËÓYdmÔ'Ù:ÞvöH:´·âý(·__;+{ÝyÕ7ºs×:/Ñ8K#~éMß·Mè¼î¿Ý>î.·ÝÃdp¸*xÑâÔýíϬC0cª;=H!Ä
Àu®2ÇtåPA¢õýq'QQ/¢Z{¤k"ÇLúB¡Î{<}-èNI-3îFnÑV\w)¯v'*
+ê-ÕOR©¾TgÎV©Aî'1ª°Ç3ôÒ¶1¨`"H1ÕðqQH1!£eJÒÖÏ0·¢#uÁO¯ï»Yq"¡Vù>ïJJñ¸W¬çì\L¹ÚcUµx¢e³«yPå{H-hS±úå[[^«ØâQuhÎ<È
+2Pú&â +Â[Ƭô"íèV¼Ë¥Ö©$z2פv5úÔR¡´¶DµYUàã!n\Dð÷Ï»úÞ)àA
|ÂÈMßÛ;"Â:%zbq¦î[jµòÝG1[=Ã'I·¥´Ì÷´Ó°×Ó{Z·F<ñ
+8Åky!X௤»`Ë9ÆÝÁßH£Ç²p%·\àT1n½3É/Øøå¤
+#'%ï)Òh
+µ~y$s"s&ã¯ÔÑe CÇO¢N.ÛÁCÅ%l®àÅO 8·w9¬Í@Jì$¢& @ë²tγÙgãã)³
+Áæn¹À`¬ö¸Xñ1dÞ¸Åcµî¤\s£p²sRÛñyÉ W=býÏÃnÁ9»]2MƲI7~Î&Õo©ØÒà?3£Jê¹qT=~=á=IO¿äÏ4IÍÞ׸^ÄMÿj¦±Éy¡ã?"7%ðØdÁ
+çÇ-?âCXì¿ü%?øBîPù=ÿ¡´1
endstream
endobj
283 0 obj
-1622
+984
endobj
285 0 obj
<</Length 286 0 R/Filter/FlateDecode>>
stream
-xµ[Mä¸
-½÷¯¨óÝ%Y¶F]]Urd9%Ù
-`ñ:¯týõ§¿þtúo|I¿þëéòõ ¦ðN³ñ§¯ÿ8ýáë ìéë/?¿Ëù^~¶øßØ3þ»ÒÎø&þÏÏîÕL©H*jáü·¯zº}}ú²íËØù ¥½M'ØÅË«y?ûÔ¯å{lxâN÷oñêÎó«¹ÇÇxµì+8|kǪ¤FÖs z϶t°é¯\.`#©^,Á+i,wà³HµQzc»²Ù95hn\2é{.å×øT±rÑT$6¹Äq½iacû¶RÓFÚ°Û¹90ø:ÍAî¸gVàyÝt&*`9äMÏà2Áü²tàBM|ý÷Àfû²~`ÉÄ'ÒȽNCƦa à°uÐê¤BCn9AÔrIîGWNܸ+Áv>
-aa[òLÐfµnL05²¨°$¼K`dUUGpª
-uÇ>FÔÈhñq¨`$kDÉÈ`a}E5CVJDÜÒÓxÖ`ÝvÛNÉä4«Ùs¦¬4NdIØ@6twcèöqHIFt½1ÙVMad~(ên<{¥c¢£Ðr^¶ÊûGðb;¨8Ä_^|G-I¹¨/&úeAI=·ÌR]#î
-2É_´óî®iÞ´w
-£¨ìËTàÄ}CìÉ¢ÚfCzþüÇ'ÑjùÞ®È÷ßNàßÿçô§òëÛi²V½ÁJhÒØ²Ëâ½Tâ7±¼&?K¥t+å7T©¼IÌ«àTOcq~ÇB\<Ýç
-ù
-U)o*¤ZäEFT-"tú¡ÅHÒ)Fw6ÖL_õ8Ë<mÕ_~mu\~ÕêÌ÷[%=ëNÔc×h6Û Ìgp¯vb
-XaË3Ñ6ãâçÈë@
µ+s4ð{lBÈ3ø
-çw]^¦ípálsk$ðÌ: V.Ï,ìH§!NK'Ëi|êF|ºøºKõjoÃTVÕ ¥OIfÈÇ!YfN ÍWzR
-5&ÂIwö÷oOä'~;)ÂCÀå
-mã}ÄòFb;¹æ [»LÜr
¹Þ8¹ 4VKóv4öÈ?U ì!¤K@%ÑÏCñ5º3¿éÁ\x±ØèeÒ*áí*Þ¢áv汯]¬,ÁZ£´ÅcpõIHzcO¢õ
-DE³£ç ½^
êQ`©+àZU+*ÖÞÌj¼ñj)ÀU9Ýcðý7ð-ýİ{ÀEùÝLaÉßð¿GG
-XúÚÚ%ø°(æ=væíBs¥nÜ]wã
-2nhab`Ù2t-(è#f¶Gûõ!ö+b<È~ÜìWjöËæBÍ(mÅ{ÛÛ!8oÑæÆçLw»2;¤"cÒ3ì%/L`l£×ÌEÌË¥8Cú
-»¦¾òBiS,¶ÈVJ3* /G^¶-ÜÿâÝXcÍ¡,ÑÛ§çÒ_MÀ0ÓãMÛÛ^©ÕnÛog;ÖQ5vö
-¬7"¯;.ydIù¹¡Ll£L¬¦ì &R¸b¦0ÂPfÚdeëÉçîKúÿ§ÖTNÐó,¥TlN¯7oÙ¦¤]È´
°o4nj¶ÃÔ¥3)áa÷ÂegËn©×°¢+O¥a²Þ¢10Äxi!óï¸÷\y¡ò÷¼ã[í"ðV³R!ÄnCÞ?Èû^ªÈµ®Uì`Ùî£W¨öt´Â¡+év/»)KÞ®%
-®¢Á#cd/ñ-$íźy)Dueo¼2WµY¡8&ÊÏä\Ôδlu·
-qp±®¸"ÄÎìEGþ6µ=ÙÅÍú'ý±æè_ª"ؤÐ4hs½ÊþwH¡ZÙ-ÕXx49JRÝ+§ÇÞ;ïìm), +ûÀÊeÔºÌûÅ!7+y£¹ª
-dÔe9ÄòJNÍ2\F`æk¥ Å}59]׿xl-÷xz¡{ªÆFwÊÄ=ª×<p/ö)*(xvKeÞ½nsÌ
-õ¶ðá±X[M¨ã³!¨{´_!ÒfÎTcÓ¨KE|ûÜ)l!¿êTÎÀ8à°jAr«%´QØO.ËCYHÌ£9&CÌæÂyN¥¤å;Y*ÁU·ãPGD¦Çúò1Ñ¡>Eñ=¦U³°dF¡±oÏ`Èë¦yñhõ¬(ãfyx-U3àæàì#°ÁÓ!gßpdceo¾>`Rbgæ=ú·0~"9¶JÓW>#U®^L(e»égû´9Õp
-û£ËÞϰ
-ô·ìD°_uV ¤#eØgävQA²nO¿ÌFAû n rbòNåè;»ØyÇÚ)
-Ó˳K«ÓiâÍ>IÇ[àúÏÌ`²
£=IìÎéïz>
-êi!«óÛq2ÀIk¬a©Íé[^:¯ô
-Ñ÷gc³½SE[Ã}$Yn×1ç0¶ÞÇaª#ÂêFdjsþ ÔM\2¼úfGE( rfåÙËR÷³Ûp^\
-Á¡úùCktD)èìëúȪ0»´²>H~ûñâ¾Yowb9·VÁÇED~Q=-ãã6i£ÅÉ!²ÈÓ5Ã5¶g%¥j³ùmÓd6)öqKtK©ü1NaSu;õ°ÎlÁÆÒÈÖRü{Â/ßÃÆ*ª
²Z'ÃÒ4* +Ù^»oº§¬aP
-<ÖÏíH¨½:rÙ3©¯ÎÆów iSDvÌFÇIÍC¡ßM³4«|d ûlóám캻*ÄQ{¶Í~·ÓL©®RÆME2ïÍΣÆb}9[/ÝÓàÔHç³Mô<ã>º¬¢klxö&i?!¦:O¢?<Õæ/2FóäëecZYéæW5«¨Ëª¦^á~·ªa%y½Ît´àÿ8Qg$N+þ&Qߤ¸òÒ11¶÷èÒ<ü*S*oÑ}CÛìwUkþ²ÔL ÖÂ%ív
-èó&1ß7[3±v,$³ZÎm8[ïØ'Ö;¶.ïøxDJ{öSõrq'U¢ÍfYñ>×`Y4ª}Ú/tÏ?ËÓ;-£¸½=ªí\¬Lë+礩îZPÝÑzd/ü;_ÍáùìëË!¼ÀõÕÛ ³(qÈâ5åÀ.~| Y«þléEç@ëº^åÅNs«YC»ú¨cïP9÷ )µ
+xí\[ë¶~ß_¡ç
+yrabƼÇgN4ÎûsbÙiðù0Á-o,*Æè)O&¨èè!ÞÓ$ ¸zGn(p¤G9O꽫¼uG78guÉ®f´·æÄ¹[A³¸ÛYã
+§PqºâË0nÝÒÆõÂÒÖ
+DÁ_£R: X%¾zwÑj^xö:Úé-%çbµ+»VlÆ·^ÏY$pn4Ð[òø{i¦@q[(àõë§,ÑÃPV ¤i®åsi6a
+ÚÁrÁÁ:qMv~ú&B5â©¶=XéX
+7H¤¬$ð)ÐS¢Õ*ø1
+Ïa|~>33ÞÌ£²Íè¦Ö_eÓÐM¦ÊÀ6*+73ÑI£¢Eín³êÓ¾ãúÞé»·ôÌ¢yK@»%jÊÝånéÿr7wuú¼p(ÚÆ*Á+ìäÃ
+©JÀÅÆÜJkGxiÎOø6$ÃÞ\9ò3Ø+Ì%¯Ð0Ý®¶¤ñßÎT`Y
+Ö°²,°p¡"g#IH§`àål ¼¢2bÅ¢a40¹£ñ ýÚ4b £s<8î
DùTB²&¿ Æ
+ËäLl$íÈ·[1)o`×\À¡Amçí×m
+ ´Âk¡HX§
+üöYI®f[>li¡¤òyMÂFTÖ
+%÷'I01ÆS©.oÉuÅã8ÝÇÝzû*FË®Ãõ
+NÚP-òTU
+]6ÏÒwXÙo!ØÀÅ<=`õ¶×a˱֮Bw?qµUW¬¯ºpd˨·ÅШ(ø(îà¢Yäsf¿uߨ-ñP at y«1¶<ÏÿFLÙZº\$û\ Ì`
+|aÓÆ¯5ãt¨D[CÝV)ÛsX,Wq=tÐÈpþeáÙ5
ûhlv at FOpsqÖ++Ãr/
ÎEJ¥Ü+ª«"-³¾`nߣêùf¼:/õÙÏ)ÿÃ\©^2îh×Ås¦ÁýìT©j
+U=ïÑyaÇð¿Cùþ7ÞØÙ«LnX«aÄ´${P±
++\ÞàâÒ''
+"Óìl0§'feËË©uÛ7ÇK¿À@mvÒ×ú6>ÿÒ#¢8ö«Õ¹Q¤gÅì%ûUu5Cá³é²öw}4wº§HµX£û®µ
+M3jʤW\'y͸0©c]
+4BàUÙå=«·
+ÃPa^Ó¥¯ Q°ÉÀa36Æmǰ©Ç½ECñ9ØdÄ 'f¦L²ëýúwô`Yíóð§Äªèv9Wb¶·§;;ug!%µWÈAOpo¬æRS>_Ïúá&Ñ¥@
c<Jk³Á,''\éeNCå01ÌqÖ"QUÖ5r¯Í´<¸,Fq
+d
+b)
+ÚJÀ¡2l7ç"º,+Æ+µfeôΪÕb
+Y¸ªQ*1Ê.]ç§ÙB½¶\òåÕ2ÑÛLmB/×Õ¨SS³é.nȧdE;·Ä#1JPQ£Ú£J@ØR|]bëºbSÏ
+{âÑúÎåh
&Ïv`åÐ8o èX6×7b¦Ä^Vc8ãÍcµ®7ÈÇñJ²((oòØf¹°c-úw¿"ñsw7:KÎy;N#H½N-í m(Z5Jó2Sþ*@ÚïH9ãU®¤¢kNÀeÜ å,¶ ¤¼»¤÷t¿ÚQ]rûºÈÖûl[Á³9Í+÷G;Â5ù»[õÃßpk½±Í%&A¨áÞ·Òí÷Eîu·ÌVÉJ©öGCÜínç\QLkÝnÝëv7´JOü*òÁj¬ ¹ÉЪÆ0÷[Õ0Ýÿ·Ó¬öµÃþmÓ=;ÐâSv ÜÔÜ-ö3XfÏ;Ãït.eLž*gë´ígrÆtÌ÷Ø1¯RûËñFç7¢9Üîhñü&tëã-hÆé-Ò¾³âs
+Åç ã -gí[Î}Ñm9s^ÜÙrfÝúXËY¤ËÁýÞr~~ËY:ækè¿·ØrÖîM
+Åç¤HF_ªåÌmwËYæ;ÿ·?°åÜZ|ËYj×&¤o:KÕ~Ét½×R|xÓò×ÐÏcw§ÇïάŶôó¶ywO?ï®6TAÚP|xÓòWÒÖx÷@ÊïάÅ6twwô6Ô;ùFì¶3GøçvÝçiÚU¨óÌÐ=¯ñÜ0ïã[
+ø±ÉßÑE; uÐÒîÁÀÆéAZÈB¸Ûn
£Ë%o î_üz#ËsNøWÏþåà`¼ðþèö}p<ãw ÕßÊTè\cã¡ñ)è¢~ÿÍË·Ãÿ
endstream
endobj
286 0 obj
-3777
+3553
endobj
288 0 obj
<</Length 289 0 R/Filter/FlateDecode>>
stream
-xÕËn$·ñ®¯s
-¶é{8
£ iÞNîh
-p8Óòù¬%{>Y/à
-K_°M_p³,ìD
-a<&Ú0!<¨À¶äXW¼0"I6׫Pì;ù%¸hýéÇ÷¿<¼¾?|¿00OOqÃL`÷oAaÅ9=ÍKÃ"&å
J½DúTcóAR'r;!pºoÁiÙÎ
-Xí|©ÆÉûÊìlßéè2¯Ðy³(Mt±_'ü mèØfÛ©êâûÈ6D-þß\nTÿOrÿëwªA]1>ùÃÏ"·ÿsøÛCíý|kF
-Ð|åw l+ 7
4¶ñéüÌDm
-h¢Ð Àm`´EÒ ©Më8ÌCVà³)°p/o½,Ï
-M,c1\B!ÁÛ¥Dl9+`ÅCÜ-ëè2Ø2ú6 qû¢ÅÍTöÖjOtÂm- 9;7¬t²oÎj3.ZÃóÅÝùǶðgLéý)Þ
-D0ÿ8üÌð+ßÌ £>ud´í&%¿=ë@Ôo»DV|þ¬:Ï{
xúÜÊB8XÃ&¼ÑÑԳꣲ`V2Ù½
-+¼é«0Å»ÎÙÁòÁ®
-/W&ûÙg*!¨øs?±ÜYck!;£Î|Ól¶¦v×SæZÉ®ÿÄYPHVÀÓBUÁ9{©Ù¥oßZ`áR¨94«hÙ©©pÅÆ¨ÌÅ`EÐ å&Mf72BI$Ϊf[>æ¤4¶Í"¿vd4´Û
áÄrpK.¤Ñ'GÉù¼µ½\KªåÊ÷,ÌrÂc¥w*s8-I%¯Ñg«í¢`ÛBK/$KÏ5mÎèv®º¶>!¥yAÜÍ Å,¹õS0dÉCÑBT.¶5
-Í#ÕòFòÂÐR
-Ä#¤#(-¯pCm
-
CÍÕ¬R NËQVf©Ó.<5\´zNCunëm¬±Æî¥Yí7&i÷V#í¥aÔÞRûµ·Tqí-õx1"ÔÊòo)Fl¡Ù(ï@YÜhÂ
x
-W(Á%ŤûÂ߬µ
-BϨø1ÂTFpí3ãpJC1zæÊ°Õ¤<±å5 ¿*'æaöº¸s¦qEï¦Z°QxT¼fÌ»ÂÂØË²áLx'¼iÑï8F¥E92*ZX?U* ¢¤®ð¿k-$cE
-+=ã¼þd!
µÖã¸úÀÏf¹nÏÔZ±à¶WcñÑI^WPÞ6'5îÀjWµÝZÞÚ\F
-QÉ¿BkдV_±µ(E/%JܲOΦ»Éqq«jºMN5¸Oî!wsc48ü"å¶5¾+77Äù7oí:Wðm¤ÃèdµNZ[Ëu4][]ÊnP[1Á\G0äsÑh$BmâÒòFP[xt
-''b[xtì4£¶
-PìbCûÄ@ØV A éDNVHYåGVYÅDå¬Ò ªæHf:b;Öq
-¦öVQ{KÕ×ÞR¿÷·.N[ؽáíýðÖÑ!$ÇÒ¤kö"ZÒúIÏohÇ¿¶ö¹¾Á³y'Ý
-ͶcV}s9µÄ)í ux'h3ì´´o¢Øi¤¶PåyCm×Xç×jr}'U³ýëÒ¾<ÊòX¨y¸´R«éΰçkÁ¯³kcüøls{ã3;ÏëøìCÁï¦-îRWÑüïùƬù0£MúMæÐN¯Iï)¬Û´õ_8 ÏÍni,Fí+m6
-Ïúm2çfÍþY÷fó3ߢlEØÒE(¹e¢Ýu;o>¢îƦ¨ã¥ì¿ÌØóº<u»FÆê³ÔèoTp¨§â_Q"×î$âíÔ9ÕÆù4ÿ¯¢OP#õ4
- VÑ=¾UDTìEï¢ø,åY¾!TyNk¡V¯ñîwÝìò~Õª6ߤ?·QúýÀû)º@$ÏáïÀ¯ÜáÉz£¶Þ xo):÷ÝÙhÉ
-¼¬
-ñ}ewµîrCÝnýA©²Ý>pB¿t·hëõáØhø,$<AAO<¦g7STð>GñUÌ|*ÂÔà÷¬à6ðèR§Ö1YJëTx×öE1Î./Vø^Sã!Ø÷¦
+xÕKô¸ñ>¿Âç
èiÙÐ4ôôtrÛd %§ìn äd/û÷S/$[¶{&BnIU*Õ[Uc^íðëË¿3|ÖÁfùiøówÃ?iÿ~ùÛËÛÇK^ç!é5
+?¿{ØÁáãçÎÑ]Üy|\ì9EÂÅÇùrÉ;üÓå/x¹¼|¿Àhdã4¿:Fk3JÀñHañ¨Nv:;sç`/0åaâÜlz÷³Îð6úÂIºËÉÓ~çx1 ÔCírñ`K»n0z;bBÕ§q=vÄ]òëvD"É¢Q§jEÌÑ )]2¸÷ÂzË£¦él(9Bbå¤cÚ6@ebG÷ãï;bO1k]ÎD(~gÞ¨H
+Ïa*÷n&1åm ̺»ojc_Çaî5Á:¢t-¢{
+ûÌZâX
+¤¼!êBV®T_æ¯ß^Ìë4ü*KüýxfFõm°Ñ¼zþñáO+Dã:ií/XöîZºy(±²§mÐÛÛ¢^k¾öÙP£Ü!ÈkºÔ¸|5]hñßç9+r¼ctt¤à
7
+qN(0Ò¿¿
+Ñ9¥
+éJuþ¬i<þ±8J¨¨Î-lá{÷ݾTKyfåCå×
+å×ò®,è'Pqò99õ(=ÊíBÞ38-×άé áĵ?Á'zZ at xE¬
+æQ£k¼³¿¡I:3y3ÜEmo®~&0*ʹjlàåhÄBµõVĹÀS ±9Þ^L_Ã"Ý\A¼¬4»é¼ÃÉqDNCÒ0£¿NL¡ªÎ×ë&ĤÀHÏAB}ë2£L"qľ ÙÌ`ìö9é¸x«|?K®ë÷*:ÈïÍâ÷ú½
+J5ñwÏï¹äP};By»"aþT`¼ãüA2á/óá~ 7Ôµ[NëÌyã7%óÏù±õ»e§ï2¡;f58ð'(=âvAT3S¶$Ú7"Û¦mjóÖÚQíÌUÂqËë¿0'¥Ëª¥¢é£Mß2¤Ê°F/úÔ\¿Ïjq¦0$êqÛi0Û¸79(6î9ÓµrÛøMzÙDÑm
lÃ|ºMà¬{¾¸¨ÀXnôjMç[ÜwÝ>gýnèDcÁ4ÁÒ.À¼ápÃá1¯7«èÌC!fÜû,b¶8gßuUÁhÞtË{; Oñ¹rxÌ´>«ÛR |a.h%@Y6f¦Tûr&è%3_¢æÞ³Q}û.qÄ£¸oúsRO^§BY%¤AQ½e,Þëæ¨Ã[#hÖ:7é¹1ã[IÜz`N»gøfÆ®¸CUÛÁLÙ}úÊ7>²øåwÚªê´yçµwYG©ÁJ-'TãUtµ*U4ö*@Í»6CHÉIR£úza-3íl¾µïìeͪzjf}cnë÷þ0zà¼R=å¾¾*d¹à
+S6>ÑÖ:sTT
+WE¥'Ênmm¥Ü>æ×¼´ègj¿vçªÔÂR[hV
+BÙ IjÙyPÓ%`IñÊ0ËSQ¹ 7<SMÊ$Ô»ZNn+* ë²d Z¬êÇ"!tÄ·x[>eG«TÁs¸®Îȯ
+ï;wÓí½·ÄfSÓ£Ú¬àPmBèÖªÍÓ¦sUÑã¨Sé6^Ê8²'ëXá˹
+-ºòáéÜj÷¤{¤ÚÕlK;|³ÚZË,p¬^»i0o»ºò0«ÃfѾWÎãv6AæàY²¶´¨?xAÙ/óæùªHp¥cªEåâÊ*ù\W;ä·V±¦~¢vSMÅ¢ý'g"¡íc]kH¤çJ*Ý"
Ö¬u'6Ø*dû;RW_§vÆÜ\´[ÇÜE(É.²3¨7=ù;·Có
+¶0Ë
+5-ý[
+ñwÊ+TVè$TZè[d
t¥!1,ÊYöö¸K`KE¹ãôòkIßç¹v9p½ÛCò?oæÖ=ÖX7Ð$ßé¢I¼,ö
+~PéHe¯+dS\w
~ëÎouÈsßU×k?ÌÂOò&²~CæQmÑè\uóbÛ4Yâ¥Ùm>JsÙÌ·ñ»©KFéÖ->P£ÒcEÇr«w.Ç
+ wÕÓB«¶YÛ¹Åù;ùòÀ
+¬%qÔJµ£[uúØF¥ÙiµÇ8UæË#HªGÊ<ÊÃ*¦ÜE.Må¶a\b1K÷(ý¶~î$WáåùË)µÓ:óîÔéÎÛáaîÖ£>¨é;!;s
++A
endstream
endobj
289 0 obj
-2857
+2689
endobj
291 0 obj
<</Length 292 0 R/Filter/FlateDecode>>
stream
-xÍ[Ko举ûWô9@;âK¢
-ùéÙg"(Qª"ªA"'ÜÈ "'|0
-#3Q®D\DB7Úz2¼lò¤/¾øY-|Ù¥òfQ¾?úFï[¶o¾¢]°ÿ×ùt-¿þã·ÒIüVz¸ã?(xoïA
-ðÛ´Xÿñôû7}RêôþÏ¿¾L_.êer³QëE\¾áÏáá§å¢ÂÿõrV¶n¤Cѽ`½\,4t/êê0_b[üõho¾
-0ÑÓdbüåK¨^ÓT£|ÉvºqÂÏÀÄ·µXjº¥âszgê¾ÌØ}ààWÔªÓ½ÅJùî/{ÿãÓëûÓ
_Ü´Ô~¬ßÿÝ¢@OΫ+ýè¨O0²¶`o´zO«Ø
- u6Þ+ôâàFm|¢÷Ðsöat¡â¦BÙÈÂgç¡ÅÙUøöÀÖôÚXÅñ"Åcè «e6̼f
-ºCt÷ܨ zt©ëEGò(80Ýê7Ðä&Ã&þÐ
-5ÏÑõÜ?+¦+Þn QCé¸ÐO
-Ý«§ËÌâdë¾x³
-©ïxL@âñRÒázÊñk)|£*r#Ðc!~^ ÉlCÓËy})l<,È!ëXvz¶Äb¶¹Ôëk¶%αÚ.&à¨_1fTq1´p|^óxÞPÒø©
-Ppë'1ì\7¶l'E¹\LzKIël^zsé8¹eKÚ¿(ò\\ðÓëÆ¸Üu4\x\sEØÇ-<¢v>?4<ÖX3e²ØØøúJäbâC
!V3q¾"«±Få
+aIÌñcÉ*pZðÛ¼«§u¹ êKzÊ%Ð_3¬uÔ9õêm$í/§ÑZå :n
-VÂÐãJä@næTµ#£´TìÈ2X»æ¡Þö3á)V×Mo»Rºü
-
û:R&àíÑ Û3,lÔÅuY²¯d9íÅ>J±'µ]Í£P$"°!{Mvå
-³ýT¢¸oº×oÙ6("ÏÀ
-lWdEiý=н£ÓâF²ÍNM1í~äî+ãòVsÁü²è\+î£-.È`}Äd³Ë»
bÒ[·ÑÕù$oÄ}uàæÒá
ãÄ?<¼Ý
Ä2ý©àeª#«fB˱LD©¨g",g¢\¸fO;(Õ
-
í2dl4m$äþ6Ç"B¸_ÚÎ <Ú³µa¹QÓ7ÚMº§*j:pP
-yd×r=pÅ;s¸rßöLªp
!â.Ú;f2kÜ#C¸ÌGR2Ú"â
¶Çó¹d[:hIø!BÝÂøaì5¶_µ.Þm`è}(8tÜÄÀk
-7ί£d^¤q!Ó#Ô÷æS®W<zÁ ;Jl&
Gö5ª5²®âØ,çN9Öóc<8øóp´ëµq²ñ ´æ·j_Û廥zõ5tðk¥ð3Øf/8ïítµ_÷Àì%v
-ÙeUç,ºR©+=ÍÁ4®
-Þ¼×ÂÃZ8ÄD``Q@Í5mÝNèùÔÑ~#«ão#êl
-µUR\ªü÷¯OCÿ%UÁvÿ®©°y)<d ¢j³EKVzYkôb¿_`\d²úøí®[.g8Bh,£>!2z:£ë#̲f YÜ£&8Ë,¤ØR
-@ÚXÚcR
-Q
-)ïHÆR&À_cóü+6£ü©9 Õ
-åfI¥wÌÐmK÷
-Ú·ÚÆ6¥ùmëÐ\.}Æo¥cøpÀqDµÚ9~
-/ìúÍ»ê¾UF0ª´òV<ãEqÒl¹¨
-X at lÅÜùÔ\×wùÝ
ù]Ëï>ôµ8¼£*neÝÉ4ÏV~}ØOò6Ö\Ë)+>>È×)k·§ØVØ¢(
zÑ)?x»·¸»iml1µ»Þ.v,_
-sZúEFðÂËÈæù?:ÑSèñ<±òÄHj]bʸ6Lï~òãë/~>ôYRÒÒX{ìܰ?'êÏ$ÿæy:¢¨Ï>v÷²Á'
-ë
-ÙÍIP^<ø1?ãU÷ö$6ÿ$³S´Í\V7GâÞJ4®AÂxès
çUo0@ÎUß+Pß%
-ù?½s
+xÍYIì6¾÷¯ð9Ðí²Áº{º¹MÒCÈ-¼À{üýHUZʶlÉor·¥*ÕòÕ"]x÷ÏésǺ3s¯÷´~ùûéîïÓ{çå`.=N
+équþïïÂË?NªwSå`»OWÞþê~<Å÷O"}
ÉV0÷9ÑÅÙøòðøò@75øÜ%Ñn¯æÇ÷|ýÚ}ûçÝë÷GÍ&9Z1åh-s£ý|´j:«Ñò_ÏýhåôËëûÓãuz_¬Á·YÄv[cdrzýY$èÕ Iu½ÂÚ^óð²X·~G)on£ôÿä(Å
+¢kTÅ =Tå~ÄQ£Æ=%
ôìM¿`lÞ
+Bµ¯ .>C
+ÚmÙ>&Äè«·ÖniP¥Dý±tív6Ê2!Èö$E´3@0ØX½iD¥Û]='K P-óQ~_xÒX
+üöbAàý2x96[;æÌ¼6v
+캫R)á«àEºÅB3SÅzJÍÓV+µéÕJBt_mceP¦ÆLhÓÎý&~Ë6Îý»¡*àþ+Û§ßWߨ²â&¦y·¶sÃïlê%Qku¬$¹7èç9ÿL°û´o^Hàmå_¨Q¹_Ó,?ÐxûÏ
+WCl%E*ݵbö2ÌV
+yÅHbð_O+Êá±:46ß&±¹ÐÎàâOÐ&ºô-"Tqím §I®wô#ÐSª'y<L
+@Ø5*dèLÕÍAAÒec¥Þ¯$
¼MyU#ó¢Ë\C"FÕ¤ÿY'¾Ý1ÝÙ«ÐårUþàõo¥È¨âØÙF4û@!m¦0·i5Çj!ȱ
+/Îbó°b¡BÛ~ïôòW]v?K;/4mBüÁ\
+?l+Cútø!¿ÚõÌTÜìÅlÑ5t«^¯*`)Glkвre~VsK«3¨è¤Óhééà5$Ã5Hà{w"BÛötqU@ógÒ6OÒÔÊòU8é~«ªµt¨m(K*ÖP¦TÌÜ8ËÅvpûÎ)x<Tj¹º¡¼
¶ºiëk2.{O\.(Il¹Æ"vÞq¶ìäæ½_¬pñæñ^Ŭ· 9YtCvO Ä·Ï 8AxïËNb¶-Gµg{%R0Vw?µk¶=R
+ÞÜÛíl¥½K¾tð
+LPÊ^{sVSe¤;¾RoP>LÜ»ù.º`ô*\æ tTL;¯wãµ~ÔÁKêJ\,Ê%»ÄbÜÇ8s®âz®çd ûr#ó²zd¾ßdE+îØ.y{â
+¹Ü`J²ô°¦ïë
endstream
endobj
292 0 obj
-2969
+1613
endobj
294 0 obj
<</Length 295 0 R/Filter/FlateDecode>>
stream
-xí[Í,¹
-¿Ï_ÑçÀL,ÛUeÃÐ0=ÓÈmBnù
-ì^òïÇlÉ岫«ßýà±<¨Wndé'Ù,yÓÿ~8Ó£I¯3Øô\">üÇé/¿;ý÷á»vÏ
-ÒoNøïOÈ/?þëÁ§xZ~úý üßÿsúó¶¾?MÖV=D4ÿä3¿¢ÒDÚÃDr
Þ
(÷ôxõè]rI-Ö¤~¢ó®å":71²L
-6oѵ¶d
-mµxk«U[-rì?C÷úá$~sùxÄÑ\Òà?ýþ=y>þù×ggÏî.çÇðl/&§góvg³¤©=a¯¹àþ
-°ØoH6{qÿ;wþÛÇ®ß5ÚMðV µr$68(
-Õ0ìX[NfNú%MP`Â9P|ÊÀÙfIxûâ.ø<(.D°ÀKb,Óx`ùs¶¡¡'wfqÚÎ3j«SLr øÿîu%(4#,²!#gùów°T-ýM·ìB
-AåT/¨%û¿ô]"vÙúX9_s"ÈØñÆsï9çÔqÜ+ij&ÞÑ«øbúÚËÇ¿®».ï;¦öR{ /#~6¨
-? 5`cZH;s®Z³2R´FÑÜf§`&[õ"¶¿xeÂ)Ð I½4i¯g¹´jXô«ôx)iuµ«}v ß
ò°ôØ$
-~VÊÔ|Ç7äÂ+ÓËúMÐ@iØWÂù§¥U¤Îeů+ÅÜ"ÊâÂÀ8ùX¸~*N;®V<¸hßÒ
-+XAQ
-D
-¶=
-þ8ÁÍNenp³aT.Bf*ðØEÌ{ÙCkÈÖ^bEfÕ·¼1z®¦¬Vzùc·â2OMuZ»³*vôXO3GQÎÌɽ9
-·Ë<¦³Ã>~/aéÁPM{(Òî½Qî!"éa¢$R =ù]rIùèÓbÇDü^Ji-¸ye"z¢ÜCDÒCD..¿¢ÒDÚÃDK ø]rIùȯ|Eä+¢@f"SC^zÈÌ5Q1!7æu_¶7jÔ+pàÎà ð²Ä5TAP䯲V.ÅFq_÷4Gõæ]7ûÚØ¡Æ^3v±ýÇF^[RgY;y´ÕÎmµÓ@[¯k«uhmµ^«Ö5µÕúß])]hÜiZÚ|.Å3àr(8Iº²»n¤¦Æ%ÚÁXB#{W¨ÃAJVÌx5e±í8¼ø_4ÕáÄFYì!ÃEΫdS%Ê;B`¤
-ë â: óª0¥±qVAù*.Ú\(CÎËbm§Â/Y/à%â
ìçB¿Ó5)Z%zɪ0àä³G~
-ÅY$?úAb¡ýLbMïK¼5Õ8RÏÆM±}l«8¥8=2¨3µÂ~îârÍ&d¬R4C>R:ÄM®~å5æê^ðø#ÂNj<úè(¯¿Í´åÐôä
¥
-°5Kë+lidD¥[!G§Ãù<¥ok¢FMù×Ò®WY´BVFkl°Ú&¯ÍË4«R
-õ%9£GM³´ ü¾T¸¸Ïp4|
ô´Z両q(Ó$÷æé¨ÓïÂó»?9×KÆhv.ÌYnÍ
æôgÇí·Ge©ßÛJ·å\@ŶvÇA06ÛãO=?˱]gÙF@ÏUve
-X}ÆáeS,]fº³Ùh>|úSNÇÎÒ¶RÛz_áS#û,²á,ôëõTôÞMq¼#¶ZdÆ¡²hß_®Ýµ>ù+ÁNHÄhMbüxM[oé#4]Ý G¾¯$ûëN
WÂ
-»[°ÚU®ìÕkê´eSîàU¹ézßK G¦»pTC8¦}É3^ñ\=¬rr_×Eüº,¢»ËW:l½
hL÷Z
XÕ.¸'yöjðÇE®Lj27MgrÆ{ÐtJpÌt(¥´/pµWU3Z%ݧYGá OE²¥J±+J½/wÀï&5÷÷ÍØÌ£ã®ªýlê$oª>ìùZB§·PmãäúºPXÕ§CÖ-¹BÃÁgµ»eÓþRvlöw;àïÄ|l,c7[Å7S<v¡õÄ/¾¶|>½pìæmÿ Í*AM÷®ä¿ÏÉ|ú Jðm[J õS
-Ç[~7
-ÇÎvþ©ÇÎIbùóÔú¸J«¾û
-ÇÎ]ýV8¾£pì¬)÷sY÷É
ã¡|wÀ`^}Iéxñ)ñËc3ݺ¿N6¹2Èï¥ÆUz°&¤=Tý´³M£d"z¢ÜCDÒÃDN«vü.DNë_ÚCD
-0©áM>ÚG&©wÞ.:i!¹V+ܨ¼XèÔù>?µîK*é§ä` §IÉQr!ï/Æóä0C8üîñÇ#Dx5?7ä®<½{O`yA}ç#WîÅÌÈ#zÈ1søÎn¾âçn:O{"x:4Iþ¿aYîºý](i@"Ýäz(ʧ4äJw÷¶¢Îé%ÃóÿWÔ¸ïù
-C¶¹ÐÀ_oÅòË.6»N+
°¼I|3Ø=B,Óï-°@¨8«ÌxÍÁ ßîýÜ5çåó·:ÚHn$e²¼y÷c%ËR` Úé¡Èü
-Ã0ó:V¸i76¯øÐ]Bû:ý¦
-_9¥-éÑÒ¢ ·wÓÊÛs$LOÐ&Ð/Õû
ñezú[¥¿+ѽÕÔÿ+SÇO
+xÝZK#5¾Ï¯è3R]~uKQ¤ÌLÄ
+âÄKB,\øûÔÃ.»éYvÔÓn»ÊåÏ_¹ÊÍÑv=üÑî`ð5ZÀgèùçOÝ·u¿s%ýýùËÃãË
+ñ»dÜÑw/?v߬ï,t/?wòîNñvv§xÅGò1P
+ά±ô)9®jÕA*I6
F6Áùû/®/_Mí0pL]ìá8¡³¶Aªâ5ùóÁs/ö$%4zê.øD-R {¬¥ºC >©2H¥Á0à;äfh,¶¥±é">O¥sCÇg¤mÊ£GCÄä×°mõc}m+(\+J_u31Ï&t.«2á×_<(¾?ö]öºwõ1¿ÿÖ}óPKïº
+õ¶³Ë:±®ôøÀ
ésÐÆbÍêâ"Yc-e1Eú
+P; ¦¬#^;I®´?;¿üº(Ðû±@¶êt¹¬JôHÒFbÌBNº#X¼´g»-+µ]«ðwW¿ºfÅ;ã¹ø©<±
+`ÛÇ!è.d
+
+i³>\à,r¦)Ål¯ÈÜòJ¶\2f̽NÄR¢¯½Æ
+iZËPRçoÃm注»Õ5KtÔ®¼JøUa'únêÜÂ7
+¯sÔðJ7
+3'Eð@ù!ärº7*1
+º:Ôó¿MoSÌu
+s¯éèîEqvèÇ¡ñ2[¼ÃÃÝD.
+eXç6SµìbuÛÃ$ûgvúü
Z¸UxO5ò{NåÃ4¸
+T»hÐKzÐ/
bbÊ:ÁÇ0f²_1À,ZjØRc=3Ðp¢ª%öÞ-R¡ÛúRk.ZûHgRàÆßJ«ªMLÕB47Ú¥¡Z¼X¥ÉãVÌb¯íRéÒºÆú5~N
+J¢Weë Õ úq¾¡k£ÀOÙYr}F0H¨ÑFåþÀ':`~
+]ªÀ^ºT.N°ÕÁ¸ÎV³Á x³ÎKÇbsë·2[vÿËÁ³nPX`K]ü;$ȧ§g[zø3Ú,t?QmêÁ,*fT÷yMN®(¡Ê}&UBð¹³Ç¹æ÷å U/YØNìòyä: `(¿×LðdÏÊkEYÏò3eëônÃã´ø}²½m²¶¾&m£¬¥[D4AüiykBEnÝY"h¬¾im¼¾¹Ë8á«)Wßp> ©ÈN2PI¸²Û@kÒTTÓõ!(±!ÑHjªÇ©%¸-#ø¬µ*ƵFÇ.ÓbGH³Ý1iªïßøoe,k2ãu,
cIQû
+UíÀP¬RmM$e$IUPÒÎ9³eUN1t$èõ]t¾²«2Áëx5g¿ÅfT»òBÕÝT¢¦ìÊ([Ay
+Ü«¸ííÁ÷òz|ÝÊj_qÂ^¿Õ¥Á¿U;écïÖ)ÒâÊïyLPwùw §ß3°µÁ~z§ÛxÄ´ý{»N à£90yÓÇ6Ò!é.ý¿DúS;»Éháóá§5÷Jºp¸> /õ°5Þ÷rÐm\p7öñyÕÛ ð¶7Þ{#:awX·»'ËÎBMíms³1:¾ å"4;|[n&rÃqípèjIËÆ}J¾:q§¥Ajfé|9&úu3Ð
+LãâqJcÎÊ
+ÐÅ7ð?bépmiPùgÌ/õçl½¸yÓc z34ú|SÏFm\$m¯òÅL¹P¨DX¾mj%zclõi{Gó{£çk¸:¿Îk«<Äé2pÆ`4<$òYÔfø
endstream
endobj
295 0 obj
-2982
+2173
endobj
297 0 obj
<</Length 298 0 R/Filter/FlateDecode>>
stream
-xÅ[K䶾ϯè³ð-
-40ÝÓ ·MÈÁÈ)q
-ÿçôúöó):×ôà¤ÉÒÑÌ9Ôѯó©½_øóËI½~~öµ¬n¦"Õçþðp'kOúñÍÚËyz3ñrÎo&]Ò³kß\iofºüíó^î_>-Ö˹¨f½Þ/ÿ½5Hs\.áÍø}³Xp éÞ 5VsEÆÜåìI;Cß6`ѪÍü:QOáܹÃãx¼Kð¸·:.ËÃác^RÔ$Ó`°÷ðú(½WYzÌ-4X7¯aÉzPævÄSæ®Âu
-ã`ZH}ÛU;Ñ/æbmÕ
Юti¶_)±ö.ì: é¼ÿ2)ßÕºèï+e¶kø}Èò«âM
5=×6ÎÅiÞð?¹ânüGÝw}Ütç=¨ubÓNC{Ò/µOݪ6¡E³*¹¿µ}}¤6*µ]Ò®L®;$+âQcS~â¬ñ
-Y~úÙJUPzéyTÖÒi×cmfl±[mVÌ-¡Tßx©o=4ä÷ÒúõmiâúÖ[óK£#_ÄVáõ°ÅHÙ[Ë(Ã&|)QÅ:îê>°ãá-N,ûjk¿Âd ~cZ
Ùa
-YXõ¡ívRë¼çF2aoÇy
-o)<×;(<
l¶b»ï[z
-süÿ(YÆ,zT:Èp!ê8Èø½¦Ë¸1hY¬¸
-¨ )ké\çú×
-ÑãzSÛ,4¨XÑiزàÈÿùÅä7îÂD¿¤*£Í~b³°ó¦Ú@Ó{a¾¢
X[¶tÝÔ 6jÏmp§Ö>DiʶþöJÌ2âçâgq.öd
-ù²´@%Xâl
-ƵZ
-êÏö4Là.J¬BçÀ½A7~®D
-Ô°U4
-ùYFòø4HtPâ,üÑlõ9F+NËÏZ5ê/L'8î¸ÁI71Jæ7#dèCîýb7,Ù{XG;½¥CrOΧíKXN·Ð Ç<ÒªáQåNæOB5lM9Uá\ħpBTÊ(SÑÈAúqÀodWz»*c`kpËõ&!c>yÓ!7µ&D³x
-ÚnèGJWÖÃ?("ï*>ËoD2Ô#Ö±v2l¢3}î
Le'
-÷*øµa/$çü$°ñx°¨Ãüpÿ³ª¼J-AÔ$4-㼨rðû½.ÀÚéPuã¤hn,[ªÈ`-òlߨÕD/7(
!îvið¯sUÎGìC··}a¬ÛÇ8µ
åãÊ Dê¹ê÷Ù¶§[9ºÞX²÷1'MÞeÿÛºÇ[¬(Φ«ï¸Þ[3=cÆ¥lg¡
ÇEFR°=a%[aȱg9]tfÄKTG¢[E"kA ²ûµ«W±ó´ÉúìðDf*Û
-^JDßUºcUÀM<\(!âõ-Ó»±_oRÿ@8Þâ ëá¯[Gg<&Ã7¾ÆþJWè@ CÙÆ¦å2ùT}¹¹[CçÆÅ?>%iN¡Ý]Õ¢5&Aâ¦
rC,µ^xåöØ~xPͪ®qpo×
-»Èh<_[c
Ò4¼Î³W rXqJÑul
-½cå=ºð È×D+32Â[ÀHÛJ¼1òn½ÿãP
-í·¦öT§úLxvϯP5 !dçÈØê>8 u»USP/¨Ô(tNæ;mi1·ûé°dy0ì
BÍHÍy#÷x5ò¼¯Ó[sRV¾q°ÈÕÉXý]%åäº6¾ãÜN$¹~OíDÈp-êV8ÄIë¨çÖ¹N«±ç:Õi´IR9
-VmúkãZHQ7måL^b$8
c}qü?ñ²£s,Í;·êvJ b]25²KùÀ ìÆ©(¦ù.{)NÚõTË(Ðçº3~-ChOW øZD¤w¼.Íð«²
-W'J
-åH¶£òQS0gJ¨\ȸmCº}
-ñ{ÐÍA:YÜKäGî]â}ùw^FNpFPd ïøá#p·ãèü)ûèùÅM+äX¨§èð0ÿÞqfÈïdÙT7ÑÊR
-]H<ÈcÛÂã^up;ä¾óØÓ·©)`.« LaXS=Ê|½}P!$©Ò¯ÁØm)ù
-ó,¶~ñ
-%=.½ììűaîâg
-ÖYôÒjd¾bÞFü (Þ'jjÍþ};çF6ÔÛZ çà´!S:¹]À'^@àÝ]ttÝ@v2jvÃKïàÃÀ é¶*Ðë^MÎ:_«Î«Ò0dÏìÖb0B1zÁòbkÙMxm$u?µ8ér&-hbá×P" - ,^ºÄrhhÃyéÐjÝ´FQ\æêðt[wå±8á
-°x5ËB+)sÐú]@BáxÓº¬\zÖ7pø{Mþ!5;3¼HÇ*Ü>
-Õ3vÇÂVÕ9>«íjÉ#T¤ÆµòþިͰ¯@zC»ÌÍ{èËÛ¦\Õ:nd.1©'<k¥nÞa)Ì3x¿ÅC¸·½ÙºÑ\WmaÇï{±¸=Ühïuãþá8pk
-CìÒeGDºÏ8¥©a|ù^¤KtÛ¢$DBæ°<aôGÉ\&ÀjyB¨iBiêòM iZV@̹wúl'ÔMÚM*fÍ£j%S(¾0«ñ¹®
z¥n§T1Ç&RMýu/Á°y}ùü%í7axgçÁýõ¸D¬7mæ°¶¾ä¬¿®×ÕmKæiËîG®l뫱x+dø,×PknLñL¡§-áÜÈ?4¤Ûk³,(^'òQÞ\¿·Zí@bõÞù|¹¬I´»;ÀTðÛp»é¹¡ký/e$Ä{ij[(b¶Uq02kLì(±ÁIÝó§ið)wÂŤ
-¤©ðpæ÷>Í
-ncq<úö/4f,êtý}ÅïÊ_µF¥×»ãìf΢oõ|5Á»þ¬~xùtúd
+xÕÉ#7ôsÀô´U)p»í@nrrÊ!È\æ÷ómµ¨ºzèÀIo_ôÞS[t÷ùðO§º£Â¥×ß0Ð÷ÓoÝOßt3þ}úãðô8hçO¾Êl÷øµûö®m§¡{üþñìL°^G8ãÿÃhÎÞÐÆÁxÄõ£õ`üùñýáö8|ËPp
+ïá4×iEG{&Iy=ðÅi}5ÝÙ?óc$ÖC¾Bæë Ù&¬apv7·HgBïþ7<µQ°³#Jé*2£FËFfÅ$íÊ'ü
+ÃLu¯iÙæ "yÄÍìêQ
à£ØfhXÁÃ'H%è6*b
+E"PDñ ¢
+å±´è6ÉCìBÄå
+ÌU'$Xua éF6OqRÝÌå9תá\ Óú\Äñ?|wȰö¶ï^:m=¯þê~<¤õKç
+ì0`U"Y'¢!¢a[Èxx"2¤r,kÅûlo&úõYu;S#jXéTüи-¶½ÔvÅÔÞµy0Ênîñ²»µìæ¾tÛÙFÞÞXÍ÷Ò=Ç:Ä5;e5æu«ÏHLV`·Jů¦[A÷äB\aÔN¬éJݤ°ó!å`è^SDxs{¼æùfZa
¥V.`âæÌhJ£«[U ¬e0¸Ìâ]=9¡úmj¬S$+uiªv£ÎÌæ\+ëHÿ
+zO-BB7P½V¦U¯{;%Z/&EO=¡PÐ
+d$âx`KºV±ÃcB7×&\ÑðÌÝ>¹5»õTÿ¡o7wI¥ô¦8+Ä~
+YGѯ_ãòASSÀ¡ësOÕbÕ¶¡(à¬kª4zP
+ô!_¥¬¦,T=¼%¨ò´µ ª.úDgb`¦g×`VE.î*TE'² ùܲí3^H"µ©´oyPÞC¼²¹l
+É?Qp[m`.·¤"ã rvÈxWó°¸E¼7#ð¦0Þ¶,Î6»³óxáJ5/0xí\Õ©å
+BÔªbÂdVJôfÉ:ìk!s_k ¿´ bqØL.f¡ð´C·þ`+V»?µbÀZw°vR³.Cy]åAAM
+¿TD[*¸4>1..(-2 1ÃÎðxâXUøYYRIw2mçÉ/¿YPöæA¡¨2Áá\?¥ÝH
+½%ðu×_mr·½[¼lÄÌó9ty.¹³ÏfíAM¤½ÈæÙ\û%£ÚfÙÉÈÕKÖ¬$Àö¬ÔÙ`ØâqÀØÖ:ÕàµöY¯üNî²eJ+jæ¡M¶k:ÓÏÉ*Ûkö L¦wx0óyå>.FSôBÃâßûæl¼¥ª)²í-{«®yå
b3¾p/cô«yµLÞ5ÃZƾéY±oà
¯c>ßöÓùÇ7ûmí³Ó3ÿ·Ñ>z˾ëóg
C
endstream
endobj
298 0 obj
-3555
+1614
endobj
300 0 obj
<</Length 301 0 R/Filter/FlateDecode>>
stream
-xå[K$9¾÷¯¨3R7?2R©¤Ê®j$n#q@` 1Hìeÿ>ñð#igöX¶&ý;þâÙæ
-.¿¼üûb.¯'°ø;/ôûó?ýæò/¤ÿ~þûËúå}/3Ðì/»üö#\
-öjü-\!à³§®ùj>n¯ö
-àM7+õéüëo¯ØÁàôÄT&ðó³]»;î²¼néè_ëòJBÏì5QFbêU¬ÛYu´ïcÛt
&¾y°ðxd'$«çÎ'ÁµôØ;ÎWsg:ÙmÒw(/L,yÁ=C8aIþòå÷/Ï//?l.ÞG×½xZêË?ziß-T¾óì&AOðd!¡éØaç|ñú§?úóµìpºñTmÕ"º-¬x¸ðù
- ÀIKº¼¾l7@J¬Ôݱ/¦kã=>Êv1[¦ÝËù8 ϵMã[y¤ì.4EªV2
Th`"¢`
SôÄð6mÑ#ë1W¸=9£Hî 0¤eýÐ`,Ø|+²D¸¦; sËFþ§ PÂÏRï¹39òZ/ºÑ
-GÛ&öó!ÀµVoí!_ÅebŦ#SeEÅÄÂJà»À8
ÒìÞüJÙw0ë±Ox÷¤Õ-±Ôu:vè{oÁ^E "òFS¶ûT§F¨NY!L(½)Ø,(Êp¼áB¿8ÀÅAð4¬-dff>ÁJ49zÒìî³Ô"qCÿ1dM.Ë·i/KYñ^Ü;3ÜÂo¶ðÊ´°»IF¬<ÀÍ7
-øabA-`c1ö²ÐÀÐõÉ-¦OðÙxM3ãO4ÁÎεÃÞç®øìqîbgMóßößèêq æ$(óJ{ñ13wÖL6XgïvÅgêuÂ1þë±µZ×ã\9s
-Oõ%÷¡géOKHD~¸C󡪽¸yVU5áö§ú@2µÜx~&ÖÖW4¶ô{J©=¶pK¥Q&+cB4¡rK¦Q&,cLèð.§B(JG° a
BÈ-EF° ¡
-êÒRi ËÚEJ«æQ"¬cBè:£´aeÂ2&ÐÂ!4jÄz&V%Ì£DXÇ1ó\¨ð±p?ÍO½
-^ò¨áR¤¡o<0p£¹ÔXî[úÞb¹Riè«åÖ¸ÑH?p,²´c Æ6bÊÌ2ÓE~àLÕäXêcèãóÇHkÎÖÔÖÖRÔÖÖÔÖV×kk«ÌµµÕÖÚÚªcmmõ¶¶
-U[ê)ÿì;3lbÎ(³Mv¼IÉ#xºAÊ;={ÌÊCy+¡3y ª'Âh7»þ®rù´U^ÐÃýxá·æí äXÉù-Ç»§tqMìWÏÞèTra1rv¸ µU®u{~çaI9
-̹g÷}©â
-ßFeÅÑa
-o+gò`5Kén×Ì1ຢÑOë´hB(A_@³<YSù¤ÖH_rÛ3C:
-/E,&ä7VÔZ#lNµô7ë:¤å÷CÑð]¥÷7Ã*fkì$x*óÉäºEùÙD°Õ`e©ft,i
ä=ë¯
-òS`-ú.Ë6ýÕsÞæ«±zôÚ×e»Ãì¹÷b¨¨s²´rÆ(7ëîÅúä N±'¦`ÀÑ|=ÖGÒ¹"bs¥¼Ô[l£Z×wÆQä1iR©OET`KÁ<z¿Ì±âÔíqjb1èXa"WÀMª.v¦ÒÛødW§ý«#úÉG¹¶ ¶æ¸br>M9
-ßfDEéâ©`}#ä¨Wg¾
-j9Eõ¨h¨-¦ÜËÖ´`¬¯·b'Ã?ÔsC岬N¥ëC.ãWµmLP
-i[Õ,YF{ô¬Ên4¸nÄ¢b³ÖîÁ੬²h5påÝùg
-Øç2ä´Ú^Ø(!¨Ô8͹g{Ö=ó;ýe¾ª
-Å$95v9E}ý#ÞÄì§÷äR°Cº³}Lâ<P)vÖv*¤ã¦ò}¤>ù\p0Rv oENs'Xæ]ÑBªAn9Êe)Ã9¨Èç»VT:GWb]ÅíI9àSøjFàÚ¹¨p#¼½(ÎÀñÿ
-\S
-ÝðÞJÆÆ»E ÛìA
7I°³§¨_Ð);èkÖ¡r¿¥f&æ2$¦ék¯õ ¬ÛF>¡8èâ]¶
- C>#A=¼¡ÐÖ)@CdtM
ùµ(íir»©þæã|2%ÏLëzªÊ.sHGÊÍõ§%×f
-O¤É»c
-Ê»]åBÁ¡Ö~Ómªªr¬Mxã -B}oÐGG5ï
XOe
ñ
-7m£\ÉqhAß;@ç¼§r°³
-°äËÒÕñÐwG¸S%kU®~ª®vªæ5J!:寥¨,îäàOOè
-íö§R¸·O>§ï%ëK%9H¤Òøb¹«D¡/ëj¬*pËGôª²²ê
-iFSݪpM°¯Ó|¤¦ûóJÈL;¤=öܪÖA¡¢]çJÖªª5>§Nëwr´ÅïmÆ»Îz«íCvºN rܹrzm$UÅsªaßbÙ¨J5TûÊÐØOÐÌJâ¶Ü
¶+s·act£à^UÇÐ7¸zÇÃVcÕUÉnQälùkÂT½æER=ñü>;'ÇH£uúÌ¿
-ï°}îÂÛö°vtmô×
-ûÅxÀ&éÐc&æ?o|ËóÊæn\,0ü%Ý~½gúCõÉÛ
+xÕ\K#¹
+¾÷¯ðy;zW`èvÛrd9%Ù
+üt3×ô<Û9þêóªnùúÇ×/íLÊ\¦SÍeÁüIë<ÑMG·³»ú¾¤Ï8©ÖW£ng
+ïé'%iðÉÂdQ0Ø_§éVx° Í<*{^ÊL0ÁS
+YÚNgxGüÕá4Þ9æÄ¼¹¯XØ·âµò y\&ip%ò©²Szù>ÁjÚæW?
+üy
+
+\¤÷ÅÎeÇàªg?ÉU*iG(9â|-g%d¼Rä1yé±ð+V뻤p¸ØE
+B,ÀÍѨN
+ñ¤Ág"ü^Ê â7!ðA>Vé¡p&áÓC#HQH%¬»iÀu+¢Ö×]~jmÎOaù©µï`Aë5ÀSMqî䦸£³·ISp±t^ItrÜ)~
J02|®æ¦ó{`
+~õ@L?¦ISá|F%Ì!zÝ}CV1\al+Üb·ãet¦ªRÖ1s5~µ>ç)Ig¯¸Ö"UÀÊSÈÓ6@:L§Â«²káuv5A
+*°59ÂFPÀ&/^*ÕÑöÙteo
+ª
+åøÞÕ:é4¡>ÉÉþúíEÅxòËIÄÁ³N@>Â5}Opn$6Þ®XjE{µ¯
+Ätü
+¤)ßÞ¶³\\»ØkUmçEFLßC ò/¹PDæ0Ho§â`éÄÞM#LÁidR9È,
QÛÝdÄo#SÄ}ÝÈV
+Õe
+çªøõº
+Ù^øÏI
+k]X/jÈØé=h:G æ s&@X¨]ô·ô}¯GÊWëM>î&:}kìx¾·cI½z7§MVÇl=ãì~é0Þ=ÉãÛ8:Ï1÷¬¥QLÛit-e³É¹g[æ.Ôä¢òÄäÎbR>MùBî~ÓïôÈÒ[|¼t>`Aâ©ìyëªDëîDKicÊ{næ®l2?EoÚ7.>§Ý;=RÅéb¬Ó¸ÌÚUÌM¢ÜPlMÙÇ
+"óÿQ¿mÛªË>h·ÑÇAËüÖJ¿l-³"ý·2gª·i GÉoöP¦Ï{篲ïc
ï0ÊYúølnæpÖoKéä<ßf>[×/7ÛP- K3î'RÊúêo¡©!û´ |Þä`ÝÔ¢ïðϪM"ûØ´RRgF4ÆLáïWú¤Ü
+yâ|EÛ¦3UµÀòYlèÖNHe3YÑý3SÆÍJîqVÓäóÉÙ¸ÅM?PÞäA¢£X5~F
+ãµ*^Á^²Å^/Ëö~FÕ/]Ï{ÙJã¡&b´;¢Ø_@%w¾h¡Ýg at K÷-C±$aâKÛ~£æþÎ
+ÙÆ{@%;Øå}fÅÞ<!©c&"@
+=W*çMu &¢>0ÒR¤Ì9B
+mM²ÞPW¹Wwù¦ ÕbÙ
+7
+Ã*"òøõØòa#jãpç_åØ
S¶rÃ[¹îM×Îbr¼2à(@Srÿ´Y¼Û;Ð7éá9(`w+Ùìcºú;YÁ>[Üwinv¦]9od¤¸nï
hW³ÔÅS&] ìûÑüRÍÇ
+³àSÑv98' !C\-óëd6+LmréÔÈRiìÖkéÈzG|ô'-à«l¶§ãýZí$ÙádYJ]º~µR¦êq½P^o¢§ùô¬º¤,¢ËÎ4Cáï*[h²°w$É1vÔÊA,å¨Áù±&ZfKØÀ§²4oÓϤàÆe~¥Zaçð=õÄ»uåHð»*%§ò áâI£qìÍ*/Í~èQ)nö`ÜdÆpã«MÅýð!$/øm'ÀÖCcêê`aü§^tX©?µ®è.T@ç k_àAA>Ð
ùâpkÿ§ÙwPåZW«k[OZÏhóÉ=Ã[º6]º¾°é~ggxvçmW|Ãxè
+âyÿ±³ùeVÃSOqôÀÙ
å²<Ýq"Qú~¤OvǸþ$§TTe.εE,·%m=vJTrpþ×Ñ´ZÖ²Z8ØÂMlc¥ëÁU8Î'YZ©ðÜí¥àbIºÿ\þ£~:\æÏÓyßàß\5ü¹«L[¼
i9T;>^Jm+ì3§
+l)å=çpUægVB±J|Uºâ¯«C.6^ÒmËWÖ/n÷²ÌiÎ%õÞðaIØÃVo}1ãG"Æ!*üÛQ?¥+ÐþqåO?¼|9ý:ñ
endstream
endobj
301 0 obj
-3237
+3334
endobj
303 0 obj
<</Length 304 0 R/Filter/FlateDecode>>
stream
-xí[K$¹¾÷¯¨³¡Ú
-=RJ(
-º^߯nðaÙ`¼Ýÿ¾J)3«{fY{Yr*+õÇ_¢²Õ+þóòãA*~@Ç«ñúÓßùÝáß/_øØYó:§çú
-
-<F¿åg4nõYGÓg¦ÎSZ
.&>O*¿ÿãËýýåËB5ë쫨¾ÿs41Íni¤>M+ëô$Mŧ QDȺ·g±æJZ×ICmZúBKNÏ,¼½¡tï«Li²¾h¿f(¯Óaò=¢Ò=4p+kkÆ&7Ôáá«`«Nb6×{²Ñ&k »8ò.á<³`Âé>Ä \s+j&s®[îdrB¥a,nB at b?ùa¢ÇÙßÉ¥I²s at c®¡w¯n`]ôN6rBkÊä?»ôݳ¾7auOoçxÑq¸.H39ÌAÄ*±ÐVÑú¶
-«\ùµK«©Bð!®$'×ð&'8¢ò©#6á¤ì×ËvpÎÂÞ »&7`ª[\:)EéËy^02i J.êR
-áa V'x!Ô-÷Taº-g³Î»6 Ké«j[I´&^ hÍÃ)§uÄ''
-[¼à)õÈõQÅRÕų̂dXQÜü^ÓÀô'
-ÆRl$Cîçp2:m¥Î °åJ:f!
->ÿ3$&Í£Çb(1¸Âi\Ë®ª0çÚyz
-$ª+QJK+D®H9{2@ÌcyzKjÎÄÕ&Ù?s±ðÐfðx4#.éã[ö Ïox®}§gÞò"¾râDcD/íAs¼V\ö¥ NÀª@ç¼£-lMF¤Luù3Øÿ5¶6ð{.Q
-Ø}«Ç3GC8Ì)`%@«vBqSòCÚVU£¹¤ x«gÕ?dÊ)UDZXÃEWfìMþÐí¬{E¯h°$д Àü¬\C(^ÃSÖ*OGuNûX~ÚÞk!ÍÇ*ξríÔÐBÇÓGê¢U½ukÆÞqÒm 8âI Ô ÿc@(±Td±-§ýÈûåÛ¥ó¡óþÐóx}+{¾à]
£Y÷|é[uíØù4GÄ[bGf¬;¨:íx£Õ¢6Q`]>´ôÎÄ^ÛõìØ²6-a7Þ¾r³rnɵså
-SfRÈAû-C]°WhúL@´JNìSeÿ£^ÐÿE eÍàÁ6½Pm²ªºÙj)ÏîºÜ.¸Ûj"Mªé8®GöM+©Ö.·u?¶¬é¿HAq¢(Î&Ù¾ºý
-ä%Î.r Ëj]P
-§5s,ø®¸
-¹»wé.Ê
-x,@mXÇ$S`'X£ßÈr©hGbÎÃ.4·ý)SØmµT!05ÎÏe«Ád¦2×á/½[,¥7ÖùØáƵô,ó6O
-'ɵËÚs¡³Ìmí`N!özWïbBwòúpE,2ì©¥·r©:G¼8¹,kYÓH`~®@ý(ç@\ø^æ2B·uÃo¼¡Ý§¥óKÔQ=|«
LTÕ(¶± ÈÒd*<àK9½KwA ¦¸>YßEÚ%¯4ÊnÄÑöZlËÅy¥6=´yx%/ú9zDHËîÂÞÁ»ÇÄZQ>¢.ÃÉóà Ó/ú_ÙºÌüó¶1'Ê+S¡¼|À-·UtKuͱbåôPÎ6¯83ZMB¨«Ft¤±kLÖÂþòï é,-("rª½7~J=öL¨q®?n®ô;<n/ôP%4űÌÚç.½ß×fúH°¯uʽ±Í!(â}ékf)Y+ÐLP;bï׸E{´ÆYÅ<Õ-çk)MmÐÜÙciîuì×5h5ÂÒ3ÐgÞ7
-êÅ)q[ZMÿ9®4ËkÍðl³ü«=b¹¦W4ºZSvoüz_³6>ôGêÊ
ÅÝéyöÁ#Oïë½.VøBé}DTT'o°1¾ìoÚøùR°mÒªÊ
-eë2,+POs'/ç|¤õõ
-üÝM¶?5Ô"Åz§ðd%lÄñ<Éèñ¡y*IÐåɨÛéM~L%K](^BW÷5þy<¿:4e§F_hS·´êC¦õQü´´]¼6§úDX,AºÎZÝÈéôöêðº?q|ºÖH$Îä÷ìîñös~ëñv=^~*º}Ù7oòF&»ì¶y?Iì»]Þ0ËÎ)¬êIïîñn¦î÷¡5yn¯½ý_O£7øu :ôgôoÕè5÷ôT£w8ó·Fï²øþ54z{Wïavî
-¡äîX-þ×Ñ
)Å7ý}Ç
-AöÕÌië©£ú$FªõoMpû«EâG.ÚÉpçÞÿÊzO`§km¾^=nY|ªü19|Ø:NôXdyÍ_EY
ñ`6þ>¬,Weñgñ0¡X9±Iù|I/¯ÿªö8SîeîÃ1Ô
+xÕI4·õ>¿¢Ïh
+^¹9ÈÁøm/ùûyô$Uªº¿íïc F*éíW^õá¿/ÿ9¨ÃQA3hÏ8áóþöÃÏ4¿üëåýãE+óQMðüøûáwÐúðñÏïOÞÍ)¤àÏGOFÁ?}
+·p§0Ñ3¶´íù¨a§nÒ=ÜÎGïµÇyá3}1»ÃÓÏÞÍXq·3NÜä¦aFÛM¿ÑPd~znùt3AF¼u'séL2ª,&s3àÒ\¨¢&ú1.'ÒKáBmzÆ©U{æÄÏ8D8S4଺IúúüÃÇ_n/ßͼÈójV¼!?þ½Á~¦
+¬ðâfîmF_eª÷¬%ß¹q2¤CnªÔ
+jèªÃN§ÙQÕ{Q.±3·Úg=N6üH¯xÅ®%óf~ÄôãTô9=¤Åh`dî·Î$aLk
+¢«[ëQÔøÓÛ[^þÞݵAÙ$pïoóPÄsd:e©ÅhÝg"èЪSä§iòmÞ
+tWá1kE8Üð& d/[a1ôSçRɶ¹¶£®Ôë´bØ]W°~¹Èâ-à ËáïmæM³RC»fO}XÜÑ
+BÙÛJZDrç}Ú]Ëá{ÛWYId ʽ4Ëj£¹Å$ßPÅN¥|0£<(¹XýùÓØì`ª
çOíBnÿxøëKíýtõ¹ éà'÷ê3·PA :Â@ÑkÚGHF=Çf n 2@u¤:IäNO¬ðÑPn7%Õó^Õ9×RíÍUQ{syÙêû¼¨
+±³ÎãëÆ[zIDiBK'Î"Ü>A HÔ8FqÊÑP°åè:7Íñűæ3n3LcútYÐD2¯Î¶HFèÕY2Üc4ä<2»§¾5"tÞÚwâl!×H%Êp³æi´eLÆ
+]äÚ69ò!×2ÇÈ ÑêueB,pe ãiÕXE.oþ6µtÙËWÛ³e¸Ù¬õ+y,Q¢Y /DLÝÍis@b[ `±Ú½sÅ7· 8`hjsHDSi8ÅM;<Ô;>.ø¸â#MQ¾@¨7yÜðq° 'ã<è5¾ÓW0åîEØ wI¦\Ë»&Æó@g'H
?fWdcgkË<B oÏõ¢^âsÄ˵LÖï;¶ñ¾ä¶jÊ)@ ëé8Ä©W±yº®ïÞz
+ØPÉãä`½&N/ضÅÈäCl}W% >Eµ
+%¸·ÅY±]XTïz4®:"ÄPc§KAʲ5cØÄ-üÝ%ÖIì^E÷d{"êTÖçDì
mRKed3
+rè}QOeݸ
%Æáú^ èÅÐ5Am"åô*`À<é*}q00MÿØ#ï¦éÕ=ZÞgçýÎ4vØTy×ï
PVÃ]Õ'UÛ_eRøü4è¢~ÌÙ¾Ý4èÂCõWëå7ÉÎ/Çòßm
Cö×íF, kîswíd³Ö;F¤¸[Ûf{¤÷@Á½£w´ AWWN©§ÖÙÍ:M~^Ey¸ª½¼«ÄÈåÞº8Þc'#Ïùgúi¥¤b[ëñ~¯øBjt3Û`dæoO+ÔZõ.9q0Ïi¾PhiAå
+;ÎÄÔ{ðZ a©È屫,D¡BUöj¡µ
+ÍJði¦Â4¾¾àúÜAö®ÑmÔ%º>Å¥@ÅÇ84µ1í÷n©µÖµ>»ÚªÇ·àÆPAnÁµÃãÓÎ-¸
+NnÁ¹].qË^»ÖÊ
+Öy¹ùå¶
+¶
+
+ïµZýoîVµ7÷Úëݤ´çP{ss×ÞÜ¦Ï ,<ÿïÄ*ñÝyº]º¢çÎö}23lÍ $Ð
+Ñ0ÝeÛ&×TÁuù¬ñÇüXMïZqÕìCåýge®|VST+z?ñ¶mÛfia¾$ëáG·ê{UrÌîæ°-v,6jï!³i_Wt¼þHCÔÚÚPä©?è
+É7ú ¦±8.6×r²Nj~¶ ß+:F,qN
¿ÃíùQ{ÜÛþA;
+hç¸xÓq´ÂK"ýXA½Qç;uøg0mø1=Ö¹u,àôlÿGbi«
endstream
endobj
304 0 obj
-2994
+2721
endobj
306 0 obj
<</Length 307 0 R/Filter/FlateDecode>>
stream
-xÍVKkÜ0¾ï¯Ð¹`W#ɲ
-B°ÏBoiz(=õ¥)4üýÎKõ6É!×ç÷ÍÆ¶`î75Å×ýHÏ»ïæÓóéw÷s³;oÀº¶7q´ø<3oO0çßfHv°cnÀ%r¬Ï}rû<&»¯ÛÜt ¹ìr {ʳª2ؾ
-$á0iÇè`aòó*Óë+IâgçÒ<´Cû_¬h ¢{׬¢3å«v0À#Xý|`+0Ù<Õ=1raÌ_Îï7ÇóæfÍZ'lfD2
|þµªàìRa¢_f0
-øçhUxê/T :QM TËëÄdλRUö»éæM[+g='þYÛÆgQV^2Ìd+¢³ÚëëeE'Å<ö¼¯Cy¬Ò
-ºJd!ðKôö+Ãz¯ÓJ4~¹ÛKæêôiTtÃåG½9aÄqÓîÐÉ_eÂ>:I©NEt°v*|\púÙÕ5§3Ì.³Rr©ÁBB«Üâ°u};.6¡ZÉ6»PBå}hý*T«EØU?þPÓs£_o7Tà÷zôáÝ÷V0·ÆGäß~+T
-®,¬ÞöRy)AµP>axÁRõxìZu ÝKã¤|¥OCCu%aZ"¹D¦÷]¦Æ®ùï,´ã½S¢ç©jßìÄb
+xÕË$©ñÞ_QgKUæR©¤îênK¾ÝO~IÇÒîeß@YÙ3³^k¤( ^D@-.òôóÓ'q:Ð\¤
+_·ÆïO?ýé7§ÿ<ýpÃ[.ÆÕÉèðÉÃâÿýáw©ñÓ?3;}9I³@ëß§?>åöU~
ÉNð3ÁåÙøs#Bâ¯%¤pÈÀ'"íåãÉÊKÀ,ðýøÛé·ïê$åéã¾Z}Ó×EÞäuy½õÕØ¼ßÌu±·¿|üþéíãé÷µìªÄíã_=
+$ýÕ 4J±X/×êäaM!oê*ßÃGéðkìÚØòy@,±£æ=Óç-~â<£bëN`/á£#>|þMzDÀk¼ìÑ/.¦¥ÉÐÀ ¬×®²dªJÒ^ã¢&3¡Þt Úäy)T.~^*0ÊkfÖÐHÆK^¨A°êÞU~óhf¥É7]¿^öm¡§XâÆý®Ã^²É#i)þ=´¨ÎÚäÒ81qs/@L`hº)&ÛuIc+OÆ_ãäü+L6«_íG" 3émJ#
+Ø)9òÄ,vjÂ3O¥ÕP}½Õ3ÖÁXе4ÙÞjcÊíÚjr»5îµÚç^«bîµz<Lu tí31:íôgØ¢xËtÝ
+¡Ú8(õÕÜÃýÆnµµjµn
+©öÛyÁé$7<
+t
MòÝ !ã :<ç-3D|z09ÎÒµLtKlrA^û*¦Î$Ùx
+ÌÇ ¶`áØR»4y !à,t0úøD±qÄ}f<Ø¢ÐÃD´ ä£íú¶î·³
+ÇÌJÆ'â¤D¡ZJ:G «{¡ è~<*1~ñ`¥*àFjQ2Ïpc
+_TÈîM¡
+ò{,$!YK<:!¬b+±]mÔdLtw½ûÖ^ä!"ÌÆ¹o¦lAs4^ÐÄ
+ªÏîQÕÞ°>-oQíäÊ4½øýråFËË&ãúKåÊUħáyOQÉ×:¿û¾ÃùÖKO?礲«ÃrÝåÓé:ó) m,søÉxQy§ókF
+ä)+i
ÒaQM%£(CÄw'XÒ¦ïïä´<¶+(¡·ÿ ãç¥`eDgq°=2õª·uGÉ[UwÜJÖÏ>±Kupþ¶Br<¨W½)»t9û5nBéjqýL±¤^C;È-l¥
+¨pØô
+zÕÖº-vfòVmë˾Ý>Àlü
+}
k¼{àðBM¥®)^>TÓvÉwðoPF¦Âôñn¿SÓsئRââ@QK 颬ÄéØÎ
+ؤâ¾eÁ'Åí*¼¯rdJ§v*ÆgR=<Ém!«3ÈnðïÌD<~êQmmXÞªð1÷NÞ©±Ï"
t;«²wªoÑÏyj4½Qbµ5d7ÉI{¹àµvÇr¤T¢å»;^¼M¶wÛEû×á®0áâÕªc¯"!W±M\×Qs(ÏG}eÏζ¶tb»I>òÜ"ÛIzJ»)»ç§t:W
þGÏ1ÑyìQ°\L>KLÆJÊã4¯b!ÅïÚÍR2-¥Är1Ý¥ÜM¢®ÙêåPnÐÚl
mÒ&¯=ÁR÷t7Y arÁ¶L,ÿõËS¼üàò~xãZ6á*ÒhH¯¾+¶(éÙiOZ½ÁT÷ ô4#+Ù¡QwªKÚsQd¢eW¤±ýÝõ©ìJتù/1l| ³]j¡[0¶é®FàNI#¯ÁÐ& 4@4oôóWÇ_]~aê'ºyaìÔH2þ±$ÖL)*VfZB¹Wuü"-¥¦\¥»H¦/_%üoÓ=Y¿OÝ®W½
+h_q¹¡û5Ý·<ÖPu×2ußõX¥|sÔE!*ÕÛ|ÑkÙxÝSóÞíÚÞÃËò¼h>{ÕOëeÞÏ(×â½eçÅp]ÉO6 ä û=±·/ZË$@q&,®cáÌàqjd}Õ &ÛÕE6z¨QÄÌ ¡7L L
+!cä:»çÂÂá3Ä·³´1éx²îõøg-î<2)¯6´xXs
w!ð!ÊBg
¾ÀÓïãß*lScd)ÿ+¿1ç
endstream
endobj
307 0 obj
-795
+2570
endobj
309 0 obj
<</Length 310 0 R/Filter/FlateDecode>>
stream
-xµ[K+ÇÞϯÐÚ ¥N½º@3Ù9ÈÂdØâÿ~γºº«º¥¹±¹0£Q½Îã;ϪëNpøõí¿w8:üÁãÏa¢¿üxøëwÿð ýûåoïo0ÄS>n<|þãðG<
-`éd)L¢&^È"àJ³á&ê`V2òù£)ÀÏjÀhbÑbÁ¢C¶Ñcý°©-x~çsîÒ¿o¡±bc¼W2ÊK$[ºÃZm5õT·9¦µnG¶ÜÁ +½æjyù `VàÆ{bßTP-"§É¦-ñÒ9,eïQ2"]2dÈ;¹³KQæÞìKÊE¹QÄ
-(?d
-aÀ5{¡8;¡MÝŶzªÛOÃJ·|àBF2àb#³e¹3*ÆÍ¼Zʬ:½É "Âò:ª +mKBññ¸pôì<QUZÇSGUP8¨ãV#Ì=`fõãª}3ßt¼1Ju<U`ômèUkD
-Hä4¨2D9ë@¬ºÎ;á556Î6e¥ëPt;-ÀÒEZ
¢&Þ:i'ù+P·®I¼zõ*A0ÿ«LÀj°¡v·M|W-xd¬<áfj!¸6
-3Bç'Jÿåe¾Ìå"÷å÷
-¬$&Á~6R)ßÄʤó)udHèÐ
-¼fä xy&5rõpÑoå²/Q2¦Aùâ:O'×Gt
-;zq*{ë$Ã'o³@Jcpe>¡Í~ÎçÌSo9ø;û%éA<P,OûÅLÔøJ=,T²E*Ê`a{%ÿ.Bd²rÙ2;j¼«>$E%ÿõ°ðÄOQåÑ«4lXAB:é]ÆBRâ&Vw4âF.JÝXI£îÑ Ba&© g«ÒX^4
-¥%;;<ÑÒÐj¥Qñ§5òdkc-Jÿf1µSZ},9ùGUrZ->9?c²NZó¦Ðh$È·,IÏ«§Ê;,
-$ÍLÅ£ÃkåOï¹½©Å±ÔØoãÂP'*e1H{6çÓ·¸H]^V¼WÈoB`õèÆ²+GamNo`
-Ï»h¸%ìeCø)ãÜÁVÀdÔíA©zò1t86à)ê7Î<?Oö¤òËë
-¶,×yd:yoÈé5,1L¤nÞ4Õµ$ç£nP
-Ö²j±8n)ñùP7v*Þ¥a+Q>V×¹ÊÒ½mÎC)Ìò]¨;KqU¿Æ/ÔÉU?ªß|mã.åØQý3°Äi\CÅZÒWQIÝ>¬EÞ/[)¬ç¥Ì×
ѺWË[-uUQö:¦}*JøJ¬^Õæ·U»°¸ò`
-ÞpÌëKUe*ýèm¤Â~W_>P¡Ó<%:¶¢uÖ}J¦\~ÀD!E¯àG·[×KøõéBù[$RtgÑ}¸ 9ðÑØëítÕF~½"·ØÞ:ÌuêC!Ç¡Ê8À»þqÜzHõåôä¢0:>¹c¯pâµ;{£DÞQ.¸ß3>þÊ}f|úzD
É5SKbº@ 66XhaâV2¸Ë¿øÌv/ ³æ>
A
->mô¢r÷κ'M¾jõWd CF@©½
-O?öÉÀ½Þý}Æþ
-`¾ÅH¸¢Þñww/âá}ÍÊ>,;;ß
-Õ¸Y]D(¥Am6U½õýƼ6-
-ÚEÿÞºË%ÛúG{6§¢ÂåF
-[hä©q`¶ÊFµpuAä¢C0s«¢Î|VÓ¨
½ÈÕµÏæ57uDZí>òݴ<èM-EØç±¨"8 5T/WÅ·ûy)·é#ºÛèí)b8VE£G%Õké!pö½NqÅÍ£ïlN·zBÜOo÷eã(ß/°÷
-:9À ³ÿ?Y~¾¬.kãÈëÆ5;àþù˾{Kûo½!Y4âèm'ÿ¤ðõÐ÷ÿrº²
+xíËnä6ì¯ð¹À¤z[Ù¤@oÛè¡è èØ½ô÷+"%ËgM²Å6àH¦Iñ-Ju®>j8¨4Ú¤ç8ÁóÓoÃOß_½
+ãµg$R @)=5#áX2HÞOÂ!T äÔµc$R @I×p,HHIHÕÍH4f$
+ÄÉLQôDZæ(ê É\4ºe#úÓw¾íûî[±oª¹=ÀÄóÜˬuØ2k½²ÌZ×+³Ö¿Ê¬u¢2k=
¹í ã»Ç$:ú
+×axüuøöÁZ¿ÿ|ôQßu<h{NGw¦ôíèôê!}~Co¼çèá=<ª5÷òaúçô1v
+Ta¿ÉzcvÉXY
Q©«{âÓÃØðil8d
+UáÎp²BgÔóXð°cݲvÄiwªUoi5 at v« üQÙ?F7G(f¸ Hw÷G)vª³wz\:EÐ[$à<¦*ÿTCèÆn¶Sxí%±mU½KQ¦õ55$67Þ§±7 ì©°ùjZ¤Ð@>âêLÎI½^^8ÏÉ;}>Ñ_ÚÌÌ.
+KtR·pUG@ÌZþ*T¹>öPvÐa|/-ÛD»íµÝ&Ûe7=Ï÷ô2fóMÕɳU6÷;ÚN«WÙy}i.ObôsÃ7ü»Ù¾Ymù[lTï˨}¸R¸Pí¡¨½ò-Þ!+ÿɼ%øºòy<QGdo%P.aÅÔgeîmäjóáBõU+øÅ.È´
«¤ìÉQê¶ÜNu®¸½JTK\ª}ãù±£ÊéÉö«ïÂ"úRdѼM¹lê]Û»ñÒrðåê¯Ã|
ëXJ!Zâêsë=£¢{Ol³ÜQy¡iÒ²_è»
+éSÛtJÞ£ÏPùPò4EÎ|XÄk´"?W£(¶Ý¥
+yjDÄY¹ÏÁ±waKbý\G«GÕ ³ÊÆá<1ºïJ¾ÚLniEm+*Ìú!=M5ÁÔÃ(2@!ÔËw·ò¸|çNvè `qL¹JYèîq¼^ÅQ
+í[æºfnYXd8Y ¼ÑHN¤rê¢ËVÕ(kø¹*d!DÓ÷p¡A\Kô6FçÞì»Ð0'Vvl^TEW[]zÈp½c3íÕºäb6Ö\"egP%Ü*}þÄT©6LkQE¸¡US¦ÛKm¡
+AÍ«àk³·|I#¹J·|
+ËoñÂÞi2OþÇ!"D²Þ¥'!ÑHBHÖËí5)CI ¤C;#áX2H&mü|çMcFb !©(ìÑX2HzôrSNcFb ÚÊï4¤A$TF¥am(vÂÉLçQÌAZµQ´NZQ¢¢è&µ>¢¨älÄΩtP|³øÓºö=ïN}é;Fßú}ÏíÈÖNµÑQfmYëçeÖ:sµ[f[Yë{»(©±3zq¸¦"æÄw:p"9?×ÜsMS×8j;ºªþ&(ÃÆ:ÄkJ§mEKG£ªzDzHÙnÜ{Û=zU5+¸rdù&§nÌÔý&¹¸_MC[µgzgv:)×µµÔ|f+ûT´L*5q»4wþ/Rp¦Éö14³óå"ÐVǹãVR9
+û¾]´«>×L²1.{(õÁäê~_oN®È¦ê¶¹.gÀyWN®ørçêÁmko\9ìP˳:ñÏíÑ=ïf®±ðC¥]ÎZrt|<(ÇÖ-m¶Þr×SYÇaÒî®a¾Bsr]{Éú¼ÍÝâÔ+ÍÝNnèEä¨Ó²´ÊY;µ8ÿÇÚ»ÖéWh﮲¯½kY´ró¸F§¾bµìÜ¿úýbÅÄe÷ak\ÿ?ú»&N{%¿õw³þR½«¿[!¼õw¿X×½¯¿[!¼õw®v7îëïVoýݳ2·gÅÏêï.U®¿k¬ýJû»F»e5ø*kÎóöwõä¿|·bâ²0_ãú¿[ôõ¾þn
ðµöwuh«¨'ww[Rgz»ÊëG®ëíê òúÝ]=ÎûÒÛÙÝÕÞ¿uwÐÝÕåWA¯ÕÝ%7X1ù¤»Ûço_wWÛÕßL<©»á§úÔÜÕSéíj%'Uu¢tnTÕqK´Çü5ùóü¾÷õ[èéµ kíïÅiq?»»a´Fc«_íÜy¡ìÞ*Ê%9ëØbøC¸Qi»Ö°½¦ªQábéÍ÷ =x
$Ð@'²-m@î]:ø±ÐkBeáÀëèâ8pr¢Iìðp\]N©<£c4Uü/J
endstream
endobj
310 0 obj
-2996
+2210
endobj
312 0 obj
<</Length 313 0 R/Filter/FlateDecode>>
stream
-xÍ[Kä¸
-¾÷¯¨óÝ)ɲFõpÈmräì²2ýû!EI¦lÉ®nìÁ`ªjlI¤øøHJó§__þ{2§WC?@ú~ÿéô×Nÿ/ùÏ÷¾\?^ÀoÃ)wúøÇéN§¿½ëùÞ9ã»
ó«}ÇÀÈ¿áA
-ò?¿ÒçÀ?Ýùoz?^~\1øNÃèHÆ
-È}sMYÙµìLZÔjÖÓ+ýýCþ5½úó_ÈFàôËÉÂÛÄ¿þ}úËv¯Á¿Ù6+ÀÖ*ÒTj5ËËI(¿ÇÙø©¤$úpj+4I3eÌ¢úW´yÅ`æedãyJ?Áe]é0P¬wY¶XEl5/DCKæ]týÝ
--ÙMÂ(òM£JzÙÉn;ë
-+~«D^üã_;&îÙzVj3°
-ûléø¬Ö#1ÍÐH£·$íìÓV×,"1°°hJéú6\³Ã0OÊ>)«eË=ú30ÑFÙ,¦ÐÓpó+b,ÀLÏd3w¸±Ù07âY2YÀ(ë²6ħñ'?l®²
-Nö4éeCÖvåí¨iI(¡áïéÞ+øJ`ÉÑP¬îªØ\a»qab ¹äväê%ëíÎN|a*¿@ûC¶¶p0~(¼ÔÖ#l) V¾WuQ©æ·öÛùy"8¦Ð
-«*qLÅq¢Âé
-Ca'EYÇ¿'àQÙDz"¶%ª¿ÀÒ
-sS&ÑUÉ×E/ÛM¬²¨ÑÜÌDôéÝÁÄ Ò? 2ÞzÍF]i£Q=FÎüâL4z´xÁ+ýæ§VV£oGÿº¢è÷DÍZ
-ñ¨T]ËÈBT+Möcã<C+ÐL¸°$ô*L£]«îXÙjw ±e\Ø=hF<tÃøÉÅ
-DÌ92)crdå!éq~Âä#Maì ìø*ð.«HNbìýDu£ÙæÞ) ³K~Ù¬£ $ôùtlLã¯òbG:u&kêdM¥´ÏQò}Oiø;g¶bÒ&¬êZaXTº¯@5ÅÍçȧà
-ëPfo¤;¦gG*l·s¾*ê"0'=ú©é#À@Òe!Ië:ÉERÉc+%·J²û²³B͸ÌS at Ixx61)ldzÛ2Ø`$CbÀ5ÌjÄÝFyJ®ÑáÄÐTl}Ä3_×ô$ºZôkÈé`¬=Åôxmbß¾¤F9@¯E÷9òyh´Îdì[rqHéeo¦ncæMwYëS¦Û`áw2]
-*×#û
-ôÜÂd|s\k1ßÞjmG?ÿGV+õÄ,ÊâZÂ_7;f»S6¹bÈiÂbèë·8úú:( ®ÊÑM¯úÐçkSÁguÀ³9A`²Î,ÔR¦|>UmíX<Uö¯Z<´j¿aN1T1¹¸tÿT
-I±ö0ÕùVk×õ¥´´*Q°÷¿9l¢DUð,³$áÙò¶ñ Q¦RcØ}Oâ5$KèËö'ÎíäÉÎs¸/$]¸Ç+âÏâñDÞÕä9ãgñ¶!çÕ¥rl«Ï#Ñúè={ÊîHýãæ¬khóΨ3iÈï:,GÆîîdûçz1ðÚà×Ù¢S"
->x3F::¾DÛ!ìû/+¾-/ßâ62bXÎâóöÀ²Ñé8ªSnf*CT&ª9¶Ç·-Ô&_a¯vÖûÂOu¾»±ÍsøÍ1ΪNº(ËêÇQ
÷¯HvÒlË""§ ë4Âí
-Ë9k¶{·Q#gÌ-"Äh²ßÖ%Z Å9`ç
-3÷ùÆ
%«ÏkC°êÄÕf(Üa\«g"âd
i©\Ä»°=Ý;¾OÜqö ¿ù9ôЧÁÑï>9ñtuÞ©oHÄúdu1äÀ<§ý¨Äé²H<ðñý¼8
-êöâ
-
-U UÕ?V½mm×
-UÚÑ¡FU@ê^¬r¼®/IO-µùF¢ÿêf(ß˪¼×ácï>àð|+ÞÊ£së>¸ç¾
-n ºåfüm\làö¹´<`0רíq[ÍÚ6[s£'¸ù ¹KHê0)Ôé«éÒ*°×b8na47¥å±ÜõaÍG*ô~§Qe-Ëý¥â¨e¦!÷¬Þ!0±í£¥G}×\ZÁÝÊsHZÆ4NÁ§|ÿéôókwtÜ¥®èÀê`Ä:¹ÀL
-ÿêpÏÂn²°ßÁ©òÝý>µïY ÂEò þÎid¨È§÷ÑÜv÷Êúë{uÜi<çþÕöäÀ¡Ü@lý]¹ðH½xÏØ¯dÏ;1ÙÖ¦qBt³wÞº»ÜjÙoZÙ˹§ gReìâ:¬µù9<oEá2Ù÷÷ tðYB»{+[
-ä*¿5øE°7½n͵VQ¦ß
-f ÇaÆF"¯Ý¸Sq÷
-ª»ü©3Å^ï°±ø{ÿFÍùxk½af,ébÙå7°W¹ØÊ²]ïqwî°R-e® =pAÀÿ;(@r;¼`ã
LbD°´ióV¿S¯â©??o5¡æ«8 =¯Ô_oýæÇÓÿ
-OT
+xÕ[Kä¸
+¾÷¯ðyªèiÉ@¡~TÈmrrJ²LÝËþýð!RòCv×LO°Á`jdK¤ÈEJs¶Ã¯O?f8hÖÁoð÷þaøÏÓvhÏúÝàÆ|µßøç¿/_þùòyÆ<óðe°a,ízªO_è\ÓCD1ºB-!à·8\Þò`ï@2ÚJPzD{Èú³"j+Qé!"í¢LÊËLÜ"éA¢ÚCDÉè æLˬ
+¶¡î#Úm
+âÁsÏ\æöÒfõiiú´D¶ëÏ?ê¨/ïO@ådF }ÿû𻻬ÞúË%«¿¤xµä®'hhw|öc¼þõýO·÷§ì,¾Ço¬üÆñz
+
!¿x»¬î×Ótqz-ôbÓB÷MçÔ7]0¡¦§Ñm'²SVGLÌÔ°
oÀ"¢ÇÔYU"ª7Ù*ÙëõeU;g?ȦBWÆf|Ep ~ <}bÝvlM
+Ô&a°y0½Ð#ÍÕÉÆCëî3ìÊ
+MBÀ%ÇX¨¢àöäáQtçû8~ØhÁ<:ý/«þUêCþüÿ¡S@2,
+ª¢ôÑÒÜc°/¾
+°Û?"~%¨^ðvõ8Þ
+ÈÚÓ£õIÄ¢b{1¿+°äÄ
+sLvo.bÃeq
+1ÇÇ"JCPÓ72ÕÎ Â༻GÛU6#xÓwRv³Y¢±¢æLdlY*(9ÈaV±}JØuÓ K½ànì:ÓÛI4±à&F÷®ÀÆ },ïÃX7Qà¾56³eVèk×°de½²uÒïÏпÇMÐÍFX2smüik¿èSýÊs^µ
+8d°#=osZÌ*ZUãûvYĵcá²lq>túôÌjeú¹z¦ø-Z:Ò´|U1¼úªJUfiìå@úQs¤-ù¸¶UøÑ«4ê=lª2éY¼6Ï×PµAQA!©Ü×¶G×^«óíÇ7A»`ËÍxμ{e;WÒ©×¥ºµ.4ÁîBDm%*=D¤=DÙ ÿs[¤jEsBDm%*=D¤=Lä-ì
ÚJTzH{Èå DÜ"éA¢ÚCèØg¹¼à¶"ÒäüÐ?za&~hUÎ?´eU%^(Ptk´iíïvÜ·dß\}ô£[ýqéfõiéKõié0õiéõiiúú´´ïã×@ÁäUîÄÙËëUr3¿sÒX¼fÉMÕÝMFZÊhc÷ÄóyúÔ[ª.¿ßÒ-Õè˼Q̰(ãÚãåà6ä±Óm+ç_ÜPÑéÔQQØ;·ÈiÃ*G÷S>ÅÏ»jõÔ¬\}Á´ñ·ærgm|ͬJ4òHÛÜîµÞ¯Øi¥ÔFõ ¢q·Z67JÇ
+?Î,l¹#uà x
+[;é³;¼t·@Ë^ g#~wf'9]
+r=ÐË'@ÑDS"Ô¯ÅOtÓqâK~©ÆõæÂ;
+69ñª¨ò? ëîÊÑòVS¹ÚPN¯ù>fð´íQéqðHA#Jåeõ´½Dljø½¾Ñ
+KÕÏÆQoUA¾Ê,åL0ù¯² ÜA'±I
+f+\-Ó¬ë¢bÀý<èê(ÆyRT£Xu¥ì@ãÃ5¬ÛÐE¼kÏ3ÿ-vçD8ÅøñÙµÏ;U´Ä#ákRd¡ó"Y}¶ÿ¡H:
+cº¸ÕrË¡ÿôQ'iH%ðSú^¯åë7T¤|hÁKüFð§ëT?Ñ}´ò¥|¼xXUÞÖ¥?IÇ7%à±to¼¦ÏÔOÐôûºáwIÎ-BX;´Ù µÒ:KòºÚ¶%x-¼nçÛ/ü¶ymù#_Ä
+ ei·ö±ÀvÉ{õþ/
+Y2Í9m
(Ñè\ȰÕ`X7Èâÿð[3¶IÈ©òSêùݵCò
endstream
endobj
313 0 obj
-2946
+2901
endobj
315 0 obj
<</Length 316 0 R/Filter/FlateDecode>>
stream
-x½ZKã6¾Ï¯È¹@RQoAØI½-0@EoÝ-ÐC¤Þ²$;NÅf[¢(òãGR1;Ááï·¿ìpdx©ã§èóû×ÃÏ?þtéß÷ßßæ÷7`üdhôûoê
-Qwc¸Inl7õ9\òüi ×úqùõý§·ûûÛK$:Cw\B³ßÿèÍðNÔ9Mõe3Ì3drû|}æ¸K;faoMNb´)ô¼tdØÇ
<Äé¾
-s0^¼MFq]³½¬Oêy÷8ÅVdÇF¿pï9ll,J©ç»°¼¹&Ü«{ݲqBC:¢èQ|®C¾ñÂ/607¤
¼²sð7ù/³WØ©ï%ÜÑ#:`ØR6Æi²9_í{¢b!gÀ;\TÂ%l)iÔ\ÆÇ¦!ý8?¸Ü7÷ ¼0I.Eè¤N¶
ÝÕ£nE³`tg®ðéU
-dùÈofO"¬`{ïñ[¦Þ3Ó@¦Ð
-.v¦h.BR')ÈÛ&BO<Õ»ÂêMxÌ5(s¨+VÚÈ=\:g
È`Y=ÓLavÃèÉr:|zÙ¢Þ¢ßç<WÜL~4«4»)ÜÚÊ¢á>ìÃJçË÷6%=k°Kn=º<eÕIu;ÀØþNbÌW5¾áQê°~¬ÎÆÝï?ì·Î>¼*%ËÔc}Áª²Q5JN¾£!ÂV|¿ëÍ^s]õ'Ðxu¬L²9òYaõ
S;ZÙͦ5ýA(¨ãÜu 9$.f±ZjÁ°#ZâêÄ:5Qá׮ù|¥Wn(z¼NäMQy"§ÂÐ×µj ¤æjyQ¢¤?û)mòJ¤m/éÇmxUCòðª£!` ëþ]Àèæ`U'2~WÛµ£W¢¥Ðº s< al:ßýÄ£*N_²ý7ÇDLä
-9ÿÖuw·`öÔùÆKüQ3[Çñr%lÜzé¼Zª5¸áXQ°iÛÖ¼©t¾jÅ5
Ëxà;$ÞD:]BÏ·²JrZ
-Ï{:}^|¯sÎqN¢«¦!©bÇPÂfXKlªxÇ}»ú+K
-ù© óíºÖX}õ{§¯NpÚߨT©~¯òø±ÓY¥jOÕb¹êT<_`dò.HãÂL¹FJà®Lþi¨>²ÌñÄJ dÔ¹I7°a<uéQÄå#ÝbÕ1Û5hØ
>£³Ð^W¶î¾Õ¹½QHMbódñL+ìýHL,õû
-(S:+G¾ðMo
->WÔí"RÒ´ÓÀ*vìy¼&²,vVq°m rúË$Ézø÷ÐlÉ_V£ñÌlÂ/üÆIÚw$he¸ðsã,NÐÒ\ñ´*^Éz=oû-?kÆM .ÿJÕ
ßñï¾-øÔÜl.Y< MK£öL ÞDÿÅ @ÇAÓB`Q
;Ã]yup>ÃÝj²ÎÄ+~w.¹TÕJàX¨ÇbHƱhQ|"vl$ÕSÂ%PEù©6)?`£ £iÇ»9ÖFê± ÒØd#äã-UhÔ +^ÙèªmÂ8;'*©ØH±ah½éÄz/IÀ@ôAh
a(èãû×÷GË¥tXJ60ù<@®pÇÿ®Fl&Ò;»TêÔñÆÓ;åôÛ¼P÷ËÍÆ>qªûÄvñ4Ã(®@ÕÌçö%ÒÁæh_õÞH
-»±\!þÙ$GQVÉ
-£Izû§\2
-0¯Ô̳×!,&½ÌǵT 8ÇÐæâpãÙÊ÷yþ6]n[Ñ©ÞqÁç~÷TDt¸!Iª!UCî¤Î@*`Ò'UQ
-nUÃ{Úy[ó)ýò¼âìâIÔD*·ÚíM%jØ{ßzÊísA@\´Ìc6PSb÷HøK3ÆZPâAÜ »tÛ»©¬Ü íj¡§s;®n>Æ·ÈS<!Î9& µÍV~)¬ê+Í'bä´TÈÛ¿c
-¢¤óKà"lɤägrnñµlÒF¿bgÐò¬Óg$Ì:îÃÌ
+xÍ[I,9¾÷¯¨3RÞ)Rªî®Bâ6Ð'f at B<$æ2X^2íÌêÐh²+Ó[,c³ºèÓ¯/ÿ:©ÓYÁÏ
+<ãÏ_~>ýé7§R#þ÷Ëß^^?^´2xjçÇO§ß>üIëÓÇ_¼i9Ûkx[Îîf|F»Í5:úâ³¾;ýÕ×h°3w0ÐYõ½4xèyçYào\ÎsjpO=yÞ)ÍýÕùÅ\½]ôÕÅ^Í;rw~z`LE_W}oå{x¤U¡ñ½b;Þ©âöL
+µá¶×2sE1õض´NÖJkPß2r¤<Ò`&Õ$4Ð-¯ÊÒ÷
·yùóÇï_î/?¬Ôï¿Lõãø¿÷F0`Â.fMâ¤ê5* éjؤw©H§ðQÉ4¶Å «Ðd
+Ôã¯: åsÕ¯øÐÀ6È,ªÇ®;âÓó¨à¯Êa7î Q£5ÁKß Ü@³À8È©, Ô(!G@ -:÷¨¾S¾"°ÑÉ=©5òy!SH{TãW;
+OÃk ë¡ì
+Po
GàçH¢6Áât¹»õýdÙ¼õaÛu&ãåÑxáVA3ö¾¼ÏÓöxXö&!uÔ0$"z¡@ÝÁÙúêã)AoËÓñöcOMKnáÙ=ÚÂlØ@=xwknn×±SñÁo¢w_z7·qy['-öøÈ®<BñÑKÖ¶öÉåGäÐÛdìr!nçÈ'U+ 7ÒS
+#Äõëâ2ÕóÖi°´ëàád³¿O_]°ÄÕLÅáVKlDÁ£öÔÞ3µ^6PµíÅvT}qxo6úá¡h§×É]»÷
+ Uï$Jû!XøJ¬²Åb
¹QzÖ±ÝkÖ+ãã6·J(Àzwñµ8çÀ©h8Rîcä` åÕV!
+3ÃÓÙÕú%ã`¡WÁyÆ#8r .ir¡Cɤq¸«;+B<´¢õó;© EöÎÙç -Ù$¡u
+×Ú<uÓ1ÌÑ[Ádyë`²º!¯äÑ
+p"ÚàÚìÂNCôÚSå>ì*Ë+²tMör9+n×=ñ`'W [çK±o:êçÿ@¸Éÿ.Äü³ Z÷Ìû¹ê¹³ ý[G{ÒCߺuªCW:£%Ý,u-[aAId'ÜÓ»naο)´QT/ÚÒ¶Qwãù<~ÚÖ~]ñ6ë^Eáü¹=0w»íJi£j¢ä69eøßFòþh¬I¥Î@=ß°v3Nû¹þ;0 ~á¡x¨%¡Ó0æ#jÔÆyúT"ð<0^+í©A5AòqÛU=UÍ»®Ù½®K°_ÎHƵX1#¨¸Â²¬ów(̰¸Öë!ÚYwÕéñÚÆÒA^R%
+=âÚ
+yN3Z7ÿ9ßæì\'ëÂtÕ"LrpQ{õYl£R ØÕS¥Øksstѯ\}b!>è»h²^Æfäãº2þ)VÑ#µ¦içLâf±`ÂE¯mƧ¸Uÿ!´×¦4s^*MII§½þk¨JBBNÏ%C·õñY¡¢RVO¿9]Z¥LOÆnÝò¹°lh*&4uDMÁqÕe9ÃòÉÃÌõySíëÇõä$Ú¨<ÿL6ŽwíøºÈ-ZÞ'ÛcÑqÇ®þä1m?&Ë8à WeÊk3¥·&üVRê©nÏ:{q¸éhÿ/®M
+r[ÚbúÎlé1:Ò,FèXô"ÚÏ@wEi+±rØ7åà;ÚÇ ¹sI¿E`ÕcÎSbÖÁ-Ö9ÚÑàGwóëý¦¶Sñ[¶)ÝÆg3n5¿Ë\Û%&1wT)(ÕwÙ|\ÈðHYt'uáXïplìHìqüz«Rmݧ;P£\Ì%#±÷&©.
+¨>SÁH½r6Ý[Óe:9{*5³Úøq0O ¾Jû*©*V#êë2«"D»_wNúµÞõkõTTq4V
+Úö
n@àWXÊåhÃçoR$«RÛZúfl)\$FrðA\aZLQe|[VüÔí§OÅg+`¬¿sl:ð8r&ÆÃhìtouöK quSf_s»{iöaA3Rwæû.ªÄ
+9Næe0T
+%[
+l&[4çl\a`Î
.s0
Ubcù,ÙÍUáq»zë ¿¨Âý¬Ðµ(t*FÜdu1t¶%,óç»É0j ÕϬAðØ}ª´ïý
+ׯ*©
+g!fY·ü($ÆH2ïÀÐ6¤5£ÖÌùÛ»¼Ë·1æcê©Ñ1!}a«½íéXÕ¯05Jêñ¦=Mh!䯤«¼è,2bÄ&Y»ÌDAYÌcI V<i 4&
+IU'}Ïpéx2ò .EùÜ A¯¦ùE#HÌ{¡_Íôg)Ô¸Ké\eºB©øÔÓÇ¿|{QÛþþð»ºJ;¾4Dÿ¿üãôÇNB´ÿÈ9Â% û¾ØélíÜýú"²¬¶ èÇ_EÖ11®A¼ú
+LÕPÍÊ¢ÙP@ÜÀÓ
+ÑyÉg:ré(ßdÍ)ðèîê'¤hBùávsÍ6å+íL+:íð¸]×¾Áþö8ð
+¾~ÿvØ®j E!¤·j`j¥¹]¯HoÕÀÔJsí¹2Þª©æ6âq²yü,Cè;öO_ðKMú¹âº)Î/-BPÓ
+8Jq_Tûòhø.z\«¦¼e_ÞÖÂ-oÏþÛ
+Ñ=B®pí#ÝiX¤\¥þj ³eBÏ7!õÂ8õÝðd
+zë:Ç%]J,6¯ÒF*Q¸*x§ÎN%
+
+ÉÁä3Jï-¤TåÊ1zãSÚ2QBZæÄ½¶Ê®²x6?t6H|Ó"l¯B|©IS,Z½3¥þ©E¿-I
+S½[AñÞ]Ææ»ÛYÊöS±¨JµåFî&¨²L¥ËDJbWTJµ/ÑãÓE5=Q˧ºÜØÉf©¾@$ Hù¸ãkéêÊ¡VªÓ%ÄÔ5¦º²R®3÷8&[/é
+n°
+!ÅmXéÔtpÖδ8G'/Z&Zs¦r²¢DôB·T"B·ñMMØÛuáfW¿ÿqÆÆ
endstream
endobj
316 0 obj
-2419
+3070
endobj
318 0 obj
<</Length 319 0 R/Filter/FlateDecode>>
stream
-xÍ\Ë$=r¿Ï_Qç
në©¢ »«ÚàÛÚ>|ìÉö·°x
-ÞËþû
-¥¤Ì16ÃTw§ÞñüE(*Í«½üýÛ_ÌåÅÀ¯uð¹nøù·ÿ¸üë.ÿEøïoþöþý[4¯þ²Z¾ÿûå>»lï¿_íÝÝÍjM&`µîÃâOÌ»qøÔm·ïùöøþí»Iq¯ëeÙÌë³Æ
ùÿíjÂí%nWcoö
-øÛ7ôл«y¿½¸+,ìçí:µÉl·åj¥ m·°Qç¯æíöb6WóIíüÉÓzr)ïÔÌb>n!w4vx
G0Ø'½·¼\*´ï0>p
-õ7~>êb*1ÁÊL4)-òFÓÙ¸Å2§sH[>ïÇÁæÀã,HR.AÚ#.»v«ìÖvs:)hìrûÓ÷ÉKtîÕ
-ä×9°5ôî$,òX+`"ãÞì¶RLjüÈÅC<4û¬EZeZZJ,xvÄ4lsIFÓ~ôhV;QìÅæNuà¡{
ü½]¢OÞØ¬ä>nÛüøJöK¿«ªµ¢æ±¬ÚT¨LZû*Á¶³÷LUûò¬¡!͸æ~0ö@¶ì@RNekYMÉÖbï{AúVCÉIG¤YÖube,X0W,¢DS;SÏæÒꢶdï7»\ÌpÕB#ÜÊ;q(x9 ô+<«[wd.©5ç[>ÅQ«È!w«_A2àA+$a±
-Ù2Ø*MÎÿ¬ aYULÈÊ«n¶SQþ5µ#`ùÙר#þO¹Ýÿ³Å%Û²eY,[L¸{O>
d;ÛNhDSº¡ó0¤ò<+V£LÍé½o§cIJ¦tIµ1ÛªX]§ýÈS¶]³qÝï¨usÕ½îÝ}sÆMx;±V½Àh°=ÖzÊ¿XÃäM .br!²¡v`n:ðl6k#ô,K¥ÞíËØ# ß!Ü
ÁÚVÍ;Ô:ñBX¢]Hy6XÓ¹+K¦UFñ*÷ì
-iwVÂ"{[¤%`$µê
-UÇ¡_Þ¶Ùîyu¯°ëÎ-ÓcÃ42Ó^Ö¤öÇr~,eÌJÛz¼õSØ*c©IÊÎýÎS¸jcDINy$2ùS1ÂÙfòEbLôõsl2ðO
-ØN»øÎôËm õQExUÙhÊ
-9Y£'$3p(§´µ"r7*%¯ú.7Òì^íO#J¹ëÞJ¤¥å±(uq*JvíáUg¥+êÍ&À°|<4mWÛðk ?ÍÒUá½òKäÝ[eÅ><'H=O¥ÞI{Ñ+¨FìPEýl¯±,08GvM©Ô]ÑØà{Ó]àiåItîdÏ,_âkj(<hÈ´dÿÒv,gÔÊ H©p½êEûïlC¦"ºsá~~ÑËsQz\JmÜf9
-%üÔj;ð×Yi"3KǸhÇtÈÞ"©DJ=äVñá5±%$E$ê
-xfUÒ2¦:'B¤À¾:»³TzZ~8d3g® ì?ÅÎ+°#aòSé*´<âgR·ÞY6Ú®;®uxÕ#æèH ùx®
-56 at GÏ;ò÷bµc`3Åâ¿´X6Ø%OI¸bð×P¼£M{÷}±UnòSéÂÈIfPÐâ3Ïø¨òa0yÔ,¨b$uý¾ÆòðûW6(Oxêî
-XryÏÖBOµÍ*éªmq{ÝØ$:æ(Tñ¾3$;>zÞeÿÁlÊÒc9ÍXÅ.5ûÞ»mJk¢N)2Gâ8pö~)Xå>sX¤¬ºX#p
-åÕÊa:¸ áTÐÎ2M[
-%ÃÈ¢( ªw;
-奶lßÔè¯ú¤ÑÖì*.Î&1Ýðªv6pgÔÃ*üÈ>ECÜëú>RáÀkÐŶuÁk7 zÅÃ1÷FôHv5â>´â[ûN,ù1ªÏ.¬"uP¢ OÎÉ^)²êâ¥g8OÛì*Õ.}±CÈÒä(ð2%¿:¸«nuö1Õ¬oÅ»P¶øï=?¦®mfÜH.ikØ(_{}d®=B®ø¯ÊM]èX¼±AóJ (>3]ãôÛùííOèJc55BþEºçwQ ú]2áhOT£mÕw÷JÞªïõw0A*MÐÄV3YùMUõ³
-vûqÁSëÇ{Q&[eT ¤Ø@ÊÎärT=ñÓûL«ø;ÎÝ[òé+cvE
-1v±õôÞzµ¹ò9M·ñíV@iC\PÕb,d³ë|,äEVwçÛYÚ]²ZV7?
vÌq¬ ¥òì|áVÀõ¸v´o2LòB)U<!¯biêµt;ôGÁ/
w£E|LÎiG^3çUc¦ym1¹OåÎ~TKÅgèË©wR`µº}âci¨zÉcAôÖàÓ¢é fæ&§*<f%ìj2x=Ív·n7 ªÂP¦æÃwrj>hr"rħËåR65Û'®ÊØn'y>ظ7ã÷Áÿ°S`ìÚÎnL¿Ðc±8ÛÆj:uJ[}¸§Ü+
-ÅÁ6RÁ+
-îÚÔÒÖ6>-5zÈiBç¿8a{`ôßÿ
*9¶)Ó=¨·2Ý
-o8KRb%ý¬¹0åcÍÀÅ6äªÁPý
-©t¹]:n¸Hiìñ¿s$°((U:(_Îês
-¶¦ù¼>nÏ×S9[ßmûë`Â÷Y>^×+Ò[YQ°î)8ôÏ.v¹ÀhIgS±z;T´¨{8¶úÒ̸¯NtzWc~[ä[»µf¨Rr=Øö°¥.7Îä"-_®ËvRtO4g¼¦(FêSGùªÖ^Îðw©«ÀùIìåMÚWb/5F\&Õ¿¸¾q¤·PyÉìúâ
-Bº~/¿Ñ1©5©?uOw|Gçé®§ïgwspÉÒ4ÈÙQÍSgÖ!Í\Î)qÕ²Õ+
nªYmµÎ÷oý_ìø{nøçüf./öò×G>ÁoÿyùÞòeÂDl¢3ó%A9MÞ%·®ba
-xPBg!ZÂëãÑjâéP°B¿+9x
- ª?¦SOÆJ1ÚÑSJQ
ÀÇæzqõ"+¡VîìC<Û^º´¡úoJ^1V1¥³J:IíY}¦ù)"®©ë °õ@*õ.í1«È\ÂSÈg°ÄK_ÖÐÛ¼ÿ½[»Ç>9'hkâ_%¹_¼&ùV9Úa¹zMbôµgè¸ëEÏh*ز¿§±>5ÙºJaTÇg¯Qêbï+1C£´î_Qù¸ÐâMX[å³fT°û²q!vÓ?2åuäòé¿Ðá´)ÏÅééIEϤÖMÝ7ÅS%\
-'7;³æràçЮqÌDsr¶º±.Æ^ÕC+ý÷IøiÔ7°y@=·NuÓwª©ÁÛ¡²ÅÛ'Gºá
-%X7¤3¸ÏåÈoêêÇ]#â}t|ûB¦^ß¡ËeU×úÜM¾³¾»u^Á9ïCX¡ÍôEgü¶+V$¶¤5Y_ªPMãû8qºx»±Óò®y3òQe
-6m½~¾*'#¿øæ
@'_´
-+æ{êÅæÎØÙÕìÇî|RÑåêqÖü-H®dcX±Ù§×ÌPU¾ÿÁ]ÔØË7³ty^'[%_×À»§Ë¯X(7¸Ô-YÑaó¢ÌÁg#ÖÓ+˳òÛqpÔûAõ=ÉÍ.MÝËJ®fÏ`ij/g¢dSùK"ÂUV¦6ic¹ÿ µËÖGëËçbw÷:?òÖBî",êÀt|VÛOå¤Ç¾«/Í
-»ôzÑÞ¢iUl~§£×½ØhÕWòë^,ðÝl°gyØ`ààÏò÷ÀïªC¯wè ׿V=
-z>à´[ü6ÒJcY\tÞ½9|i>õ<üX)á|³²´ÃzÞ[ë½3oƪ5íôµ3|8KTGÛzÀIzs
-üÜ̽=¦ÇK{oÞù`!@ÀàÈÔfß¡ÿ[úpø^<ʶ[>ÔÏK.Ð"%Íoеèzç{÷~b©&Æ6ouû8<r§V7
-;¦ÙöL.¥ö¬ÝÒÇ?èTö=ÜNHÀ ÍÕrõ0
-1½VÚº__Hz´0õ
<+
-ú¿½íàNµôßs`8Æ
- wXÊHPâ?O
-=L×ò(Xg|£BkË[pzWñ/?æ-°åâ¯l¢C6×åÜ~÷ÒO*GÔWÏ^Ïc|@v/m+yÈ˧£,°ÃêÆµgóÂ
-Q9ü³¦áC½»c$q]ÐíºG·¯oÓ
-ô»F¸V9ÆØo¹õeAÕù`A?_w
-ÊÏeú´-|dzð ׿طTèõ9¤¬p°ÃÅC{·IqÇ˽»]^çW1&`
-$Çý%ïBí$dÊ£Èßp^nià_çÅê+ÛÑfRA[ ßßé
-)ó7
-¬À1|ãn©aZ0(<oÒa!ØpðX7ÊM¼üûí¶
+xåZË$»Ý÷WäÚPåÔ+ EAOOÁ»±¼0ÞùÆ×pïÆ¿oE¤½R5ãmrZ©g8
+EÖzUË¿Þ~^Öå²?7¥ÃÓðüå/Ë~µüóíÛÕjß®;ÖëÅ©~]àßï~ÿøåoov¿Ë~Zôî®6þ±üþMZÖ¢::sõÜK¢c¬Å¹:êõê¸#DÇXsvtîK¥wLµÐ먣ޮwÄèk±c®Ãö0b©Tâ©:rv4öÏÔJÜ1ÕBG®ÃzSb©Tâ©:r]è¸Ç³3àoîD5Ð%½Ç^¯á5þYxvÏN§tÞýJé=»
öì*H÷ì
+.YK¾%wXê©9aeJpÇ`1ÔÑj¦¸ÂTçNê"ÛzzÆT¾þH|2ùl^éVú¸pSAÜ&öØ@o4L©b¯Àû=ââ7'À¢t±~zÓ¶$»
+¯¦ ÀÆyÉë3äÎØ>0 Æ
+÷s4rJ{»^ÍÐÞ`ø@rÓ^ˤO|ÿÒÖòÿLú)éÃq\ÿAÒü¡þé«èô¹ çãFT~aþhÿp}g
+«î&ÓÅø#¤óâ?ò&dAÜLíª6ADÁ#yq£ÃñixªSo:ì|¹`3bº mMLCÆ×Âô5" ðT^#*K3ÂãTê«
+i§&f$/E|!É|¤(ñÑÛÂ0Î}Ét\uA!ª
+ÿ±Í5lÂ0Vdm!`W^Т úcC!_K*ªCØîî.
+HSX7×
+×Aà©¶c>
+Ç;R¥#HÀYi\;¨ÎnÍöqî^-.Å,ZôIÌzmØÒ4vmø¨>½¦÷]bfû@t[¨"âeM·Ä¦wZÞc´bÆEF·Â,/ÏêpàI'í-købuÞñÊ3DâNÒVgÁÍîáµ³w+Az)Ó/èGñÄþ."¤9Á2"ó##²xUc±0cU:q;ÄJtýÏYµWÕAbÆ*8*÷_È*»CÒ¦Ntïaf/°¤ê6±öë9ïzs6m¦ÌÒ¥A
+Ö®é,ò¤["q£h¯uf¬ÓYûõ¤*^ôQÁà³JR-M zÈu]4%ç¶õïiöYÈqÙ^¼«ê$¶3Åú($¡l*oY´rÛ(ÝOr¬mm¢ät»
yf½(Â_Ù/q£Q"(É«ØÞéêDµL¬`ÐLJælg/ÉRÑQò]§(½IѤF%ÑÅ+3ê~Õ8¬ÞbR´Äî²Ý{¡PÊ÷_¦ë8
+Ûëè9FÛЯbïdà\f°=Úªâ)@ÞÊuº'8dÅ5`#Âðc´qæ!<vWcì ×E×9í{i/Fu¢PP!R£l_«NO-sø6¨B8 þù®*cBqzÉòÃDO'*ý`8ÏcëSÂO饡nr]Lf´0{7O®câ˼U0ùÔåX;ÝñývÒÆ)Æ]Ä¢L{-U¬>:¶OÑÚÚüxÇóD¥*VHåXIeÜEÒ©+ª"`7y;ÂÀÙÀÖ¢)Î5qvªº¾ã½H¹oî$2½yÁ¹07¦ó}t×
+&µ~ñ4ĹÎÄgêmFêbÞ&IBQרê:ÎL<vñ¡Íö Xk¿a6$Aǰºû½õ{Ó°iüØqôÚ<D¯Æ¬)k³o×Êè"ý³¼) ݼƶZ·Tà(XvM/ö?¦i´³i ×|rè*}Ùo[={K=9g at yÊDsDud8n^²wG)|»j¿Iä(BCïrÎo&¡¤üÌÅ?<)~ÒÀ¯¨ç¿÷H¾êû)S)ÙpqkÑâönͽØEõf|Y5%Ñö5k£ôÒðg3/Ð =Ûxøi»·ßé>²ÊðùQ
+ESß"D;fBÏVoÚñÑW$@eò4:D|óÑ^¾&®8´Åq:¡ü&¾º{AcS!Íp68Lifl³MëÂÕ!.ÅG«ÖÛdoBL\4ã$x*l|÷,~Vç7
+¿ökB¤×VÐÉo«ì¶´CÜ0äå°ÌN-bVdfçØ(U¼ýÕÊ©¨r ®;ÙS ÖÕO"×§Vÿl¬òÑJªêG*øfOÎaóù»nñ¹È¡²WÕ±l
:ú¿·9|ñyãkÒu9ÏßÊ[ßû%G#¬ìsa|iQt²rù¸Q2iÅ.¬
+î«3¸E/ýâ±ò9?|ÑàZ\($Ûôw±M>¶VölêêrqÔWa+û°Ì-]I]ØÙvT¸Y+Æk·E3«°§_±©¸%
+z"=À"&Ç¢5oFBçFÈMæ½Å¡Q°Úù5Ìð!fǯqñý#fÈC¡MpvX
+â'ðñ7
+)³÷ÉAV~9÷«ð^
x!g èBGN[Ù¨heÄ%ÝÀ
+bGÝV_W\Ð
+Û
+Kt·u[}õñ-ü :¨d-|>kײãðQ0,à_¨p`á
+ûXoV>uûB@ômù7b<v
endstream
endobj
319 0 obj
-4278
+2618
endobj
321 0 obj
<</Length 322 0 R/Filter/FlateDecode>>
stream
-xÕÉìÈñÞ_QçngDîÐj9ø6Ð0anã1ø`ð\üû\2¥zÝææé©r}ÍzÓ_þsR§WE¯>òóÏ~ùéôoä¿?ÿù2}¼Xõ¦O|ü~úÛðO¼«;ÿÁMYåÒÓÐÿQÝhÌ@
-ãùã_/÷{d»hßð3d+ÿ]É&¨Ñòüé>Òó¤W p,¾èÞì @¿(©ûV¨yiìâ^±`.7
-fàq¸¨vÀ:×çD¶/ÇwQÄÁÒWþIA8õæNEp$ê+)ÚçÈhÈuQóoÔìf[Hlêª&!ÜÑ]*j¹
-º1"=c«¿] OJ0Ë1KN%¿&ÂD¬FeñJöz£¹+pLôÐDúMüÆ(@kn
-F£ýÑOyÒÙ÷4ô´ñ gè ®ji} Ûeà[
- at _f\¼wW^`ßüÿ·Êm¤¡ï¨rý Y
-ï!æO2ÐÞuö}ÞǵNm&ýëÚ
-
-LÖ*Û²¸.Tð\rö
-Èã4<_ñE
-2e>ûw¼2Y¥.<
-7^S]Wg8(×&Æþ(Að¤
ºÕ5 dö.t at Yл§È2KôdJÍ/$>M!·J¥¥èÁݲ(ü{"èä9Ï2B¡,wÀé[BqÏÒóg'´ÑXâ'ErB=olÏûîçß>þÞÓ³@¾Õ3ÛµPËæÙ2KT&1$&V@0$IöÌ·G^.ìÀ=+SäA¶2 J2É ÎòZÈãÚ¼Ë6 ÑÔ@NHeNh¹&JH.8¬
-»\OX /e6¶2óL;ÛM ®$¨PÇjÀêV$ßXcvGæÞÌW¿4îH!ëÊL¿bý¬÷Ìüb±{Õ+T
Ú2ÙÄ)uri;{\5µâK+.¾)bá¶ ½b<ª¿é)¹@ÈCÂ@gËm
-sHwÈbÚúxì2/¢0ÃOZ¥´4T±T
ÆJ%?»È,·dS16J®]Uæ¥Bà·bFËYµcüFwrYµÁ /ÄÏÉ)¯|4ÏÖûíPÜ\öJâçà£ÖÙ+lÀÒIiýR·m?¾ÒOî«cx¦Â¬dW¢A
-uOÔ:tOC62£ú*Î4_é³Ér¾0ö6ù¸6®ÔÕÇõå+7+/ì÷ü¸ºÓ²¢£ø×qP¥X°¶ðÅMÜÄñs
-,#«
-Ý\zò5§Å;µ1kf.ÔA®3¨ÛNêgj|4^/HyT'h¨å xJÕvÅ[ç Ö
-[êú.]²]/¯WGîå:y$·Hãü»Õ¥sô®_4Ó
-¾áhWÀ}fñ¨A_êóÌÞ¸¾±MkuHè¯(ø¯ýî
-J²S®Qì_KÇp»þ>@Åô Ѭ·ú>AÁ°&Æxsvº ¬»ë^#ßêΩüÍ"øüµ"
b¾I9Ùæ!2RÏçmj9vu§´ÃÐ;"·ÅÕMFÕxÝ)pPh°ÂÕmÔYÚµúùô?¸êµ
+xíZKãF¾ûWè°Óï@fl+Û&9ò
+d/û÷ÓÝÕê$ÏzØ]f,w·êñUÕW%>þÈp$æ_EùÔýüðûðÓ7Ã?îGû÷áÏÃóËvÒ&ù|ùmøvÑÃ4¼ü1z~ùëp{9¼+70o¥fÇϳ g1k~>R:3r³¢æûïQÎâz>2E+_2bV7»ÍZ¸onº)8JÉp¢9Ö¹K~5\WºùÿüþÁ'_Ý
+wIfzòì[¸8Aì âä¹¥Õl<yÐ¥xÒ\iø
ÝÜùÚë
+væ3ÁÇ&÷yKÊ(¡ü&Íɣ߬½W]ο¼|ßr èI5hÕXs¹Ô.ϼêe
Oc;¼£µA½U at Rpâm:âk
+gÑäkångÍÑ=?Æ¡p
+ÜѧÇ;2Dq àШU¶Ç+¯³SËÌNiʪí=/Kyâ
+mzyd§±ð2cà_¯øBp^ÄåÌqWk#3P0eßø».ÁøðÝc2ñѱä7%èIZIaÅÍ@×P1 0J@Ùôæ¥D©ËÑxybHFÍ£y.è!ùtâdÍc`sIY!Ò't#cï>Þ8!áð DâO!èzN
+ÀAôIàØOpp4ê'Ó2#`®µ¥+Û16&4(9ØìSXÿÀyiÞ/SãÆ2áÒ+âXÏëeØ.BÉÄ×'vu!{u¦+v-¬³+×m9[Nü4Î7wÄe,1¹´ä<¿åLÌÛHLõÇ'&6½Ëj@+2Vûìï2¯uIÆ1@¯2&0N~)d¢,çómdU~{Oú·M¾$ 1¡-XÊ©*P÷sWdñ\?%åøÈN0B>ɼÁ¹ÌcO$Übåißy
+i*ª
+GL
+)èÕ*¶¼àV¯OÇÑäÚ@ª*F¬HÓüYòh ¤ýÓ^ï#HëÌâ³
+lÕ¯Á5_5pDÜ^ë×S<3³%C¸ãrVûøõ± 9z{.(h=ÓFlBLÕ¸ª¤F1ò°¸O´kö=ø@ÌA§_3Bô;+tÙÃJG{ïðÌmC/éÁnP0M÷Ø3¤3.FY,Ó̳ÌôFPÂwκù¹|P`Mz@þú(YÉf6g¢õÿg¢¥z>Uù`äcѪîV¬Ñ`³N«±z6ûyÇ¢1À×ÈÜòô´hßltë P1mºµ3íTÏ7NM÷m:\ʪ=h4ʹ(z§íÑh½çÿÑè×?m aVuêF£±è@¦q¶êäÇÐëì%ÕèF ·:È#Ðvë
+@µ4§vÞ¦»®ÊÎ;
+Þ«ucdv¶
+ï¬ú1I#Í¿>"Æ!¬u$\H}®Ú½âMÐ;¬{PÈûÞÖC²¢ò¨ÀÒ{¡ÏÌò)ÏöËlpµuhJä¯Þ9 òêÌHK#Æuã±8?Þi<V?qølÆ3ä+c=ûÉpzÖóC
Ä÷èwL|ÙãvÍñù^ R¬iøY£õ¤?jw))_6ç jM4½Ácp-ìÑé.äÅå_
+kcä´ë9nHæÃô²zÎ1Rk ¤0õF²h©
<̧ú£ñ¡¿¾?ØWñ>ú~øî@#=±áýÀI°îÿ¿îv¦Ê`|\&i%ìl,CXz&N b)ôL¬Xr&Êäa¢»ÐÔN_³íæN|
+Û¯6dÝ='(ĵä¾8p!³¬ÛSc©ú`ªÃvóyM»ß
+ÿtGo
endstream
endobj
322 0 obj
-2182
+2084
endobj
324 0 obj
<</Length 325 0 R/Filter/FlateDecode>>
stream
-xXI«#7¾ûWôyÀª¤Ö¦Áí%Û$r9%@Èd.ó÷S¶¶»ýÞ`ÕRU©ê«EÕm0|Ûý;aohêiǯ?þMþ}ýs7¿ì\<¤!tßïn0^¾ürÄy²GÓÞöî'
-æ6íÁÊz Ë{41"±üúòÃîú²û|w <Á'88=q
-ÁÈ©¸¼caó½¶É(:kèáB¬OU"Ūw.&ªPX«)*åÔx®°ä@ÑÖ^E¨bÈN}L-¬ò2ï^ZôèJ1MóÎðùOBJl2øÎÁ¡¥Kç³:ýTñØ|Qh¢®?:Ý[\´='æ\ì¹tvâyÝ,cöÖÜ¢áâAÆÛ´LÐÏãé§rÃÕ°#ÍK5T¬ü~WA§h|Àù<ÿ{øi×^±Û2:&YxVtÉ˪JXÈe^ò°Ôe¢B]ÏyeÊ;ÂTwÄ6Þg&¦²ÃLmg<tÇlN{íbU\Jý:zDÃ&pÛøl°´´yjé2¿Gº=ÝÃÙî1Ó0{ç;ÂÁÒÉ©¤4ÖÆnU\uP.§Y
-PÒìK¾gZÇY·ÃfÙÈ®Z9#åù6J<®%B|§ó3© õdO
iXÍvhº}׫¡Ç¥tçÑQ8VU(ù㶬¡BEWÍH¹"BÞ'ÑjÍ,¤G
-1!ÈÌmQ 1jm.PeÚMTÊ ûË¥ìÜ?±6%Ì(½--D3¸P¬O
-UçëÅU$è:-ÜâNmÔvò~{Ýq¿ómè7¥^âò(me.Yy§Ré«àR+èV/£O|r,åu}¡Wo¨wx}½|Ñâvª'Èéø!O4÷z¢q at 5ó3w×!·ðê îH at Fù[nÉ·ý"Òù
wÛ/V¿äWA5ÒtÕS¥(ôÚDS²u»ÔòdgåD\ÙkË0ö)U\Ëx(YR½ÒqP»«Ç8i%´^(JãÉ-VÊíÜé³<UýâÂ-
-§ÍbËØ(ÑDRÆM÷}Ë\Uç¾Bªjc¶ÂçAkò<¥FPî¡KÎ2È¥YÏJ]¥
-_¯5¾|è©(|$ùÃ{¯qÀâîû4á8MÑÜ1"®%£ä¨)XP
-lg¢õ$yc\µp-µ¸ý?X¯RyjÙÀ9!VX4D-=úôÊ/¯ïN§zÞ¥ÓFظ mÍc¼4àîwZÉЬßTM½§çä¤Ù ÍÝÞ¼È/ò¶-UÈ\÷Øñ-ú¨î~Ô9·ª»Óöëiè¨×ÍE p¬%\ ³IäLg®à 7éÑô¶i5a øÞs¥ßÙÌÄLZÚÁ®ñQ¢¬Z"ý;zÑ.N¢}æB4${s*gT:7ã$[bh\X":Ñ.¢7Òèè?Ñ«øõ#ÍFµ4ñ÷S¿o®½åD»@ËøÇ2ðòÆj}«Øãým ÆÑåã°°Â/íî^îüÁRþ(FáX¶O_pE83o3ÒÓ2QÎLå+JÏò>±ÝÌàzw¾yBù|Z¹!ñTh\°dÑ·É/èUó?ó¦À
+x[K«+7Þ_áuÀÞêc8ÇvdÉ,¬&ÉÀÜMþþÔCRZRÛ¾.Ø>ÝzTÕWoéª>üõöß:üÚÀgñóË/¿9ü^â¿/¿½}|¾éèNáU?¾]ÜAï_:»w§/îì'øpærg£.þLÃý¢ÓÇÝåhÏA§ïùr÷Ëå8ãã³0
+Â#,ÓÃG²ø¤»<¶}~÷vÿ|û~Ëõ'{ÓtÌÏxw-§àq]&#Üλ¸´K4"qïH)pl9ð§8ÓÛ)øÏnA¨TzåÓ´íÈÜ
ägGÏ£>üÍ4Zñã,^sIü$©;ÈW^9&²n0À¹²îøß§QI¸,Bb$t£Ý©¼ñ=¯êi.öùûÞ?k¼ßÓ
+1ó´
+`Ï
+|NH0a½Y}m¤JÖj°£²î+}
+Úx³58m
+L-YxgÄ\»ôù2ÂÒÅ
+@xHeµÉ]í2ªÐÄbÊ1^²&¦*k<¬ÎÌºÊøý#Y:²`SAOæö:æíÉ*¥í$óîV©eW¡[E2äj;Ne£klQy£Nnc
+=sÅË£aêä91PØ¢ÅA9P}v;5#LfË!ÜF$1MÂVL"íNjç´gú6~µ×Ê
+¬]Z"Hw*ÝLaÀnàu[èAð4ëNóÖø²±Ý+cQÃ
+Ú&kOTÒ¿!°äyK¶ÕåQ·0ãa|ôÏég)h5^ÎÎk
+SCVtái©Þ"±`¡¸FÍMôÎÞ4Â~õÀ¹
+Ã(&p-Ñ7úä·è¿äú¾y¬áªü}]
¨dTì¤<ÛÈD'ÍN¦Ë!) ĵ¿$àI.¦Órr¡ÿù¦À-þ^ýóojkxýçÁY~ôûüa^K
+*à.BJeLm¦ßDÐP%fÎ: 3öo=©6ø¼ë;°¬?pØBónb¶½D=<À¨¦5,¡1´ñû2MMæ4·æ /'2(xBi|ÚÛÐZÉ0ä èoc×ÁæFÒ"iãE,BÓù§¤=Ð@¹qJ<|»rqµfÓ`Ï+¿_hxHUõZÅFâ±ïä»<é±7
+,#ní°à
+(&d%ÎP
+ìýBDö ÁÀwÝb¦¶n»ß
+NpäWY5Ïaî¦
+<$&ïQö.$ B?+1HX
+E~»G0b¦UMÚÅÔûnTSTMTÑU¼÷O¿»QEk×RV2
+yd?!+MÝ]hdºÊ Z5E½lâ¤À^eK¥Ú(8u»÷RÕ¡sà&Ud¼ Ê4MdÇ^iZ$C$ñí¼º(Æâ$<¢á$ôÌHr[CjS¥¤¹°âinÍ·½Ásñuî^TOÇ)²hJ줴¤Dnn
+¤3Ð/ÐHÝåáVmªA
+DB¡êogã
+¹Þ²²¯iMî|µb¶K¼¬íÿb¶«=§FQÌ
+ïxTJg±ç5ÅìåIÅ|¤=Flãìº`&ÓߺUÁ¬}nHjCÓÂ.ÁPñ]
+XöV2[T³Â*]]ñãöLÀ¹Y«ý½ÏÎ>d¯Deß.©Â4½¤iTWE¥ÒfÍ
Ò2¾ô$×<¤4Ô¯%ãV/W±:1Ùöì;çÊ)WôÔ_ÖJÆxMâá¤Ùµ'iiD®¬¨<ï2L)à¹
+ÂãöÒð·>Êûí¤!cLP¨¥ÇK?u®(ÎûÄéŰ`ó©tHdê>÷Ê1u9+ÇLC^
+l¥§Ñ9¶âÔ^n%ËPyÉ _KúÆL¾ÏIª¤1>Dä%Úùtls½bXZÐíú¦Ük/Ȳ¯QTÊ *Ȱæ)®ìËfÃêFH*Øgk½ÐRzBeè°2¼bçy`åÛ1l!5yG'®Wºù±ñ
+WùÀ×ø]ª¤¦ÎäÖ¦\^
+
endstream
endobj
325 0 obj
-1550
+2817
endobj
327 0 obj
<</Length 328 0 R/Filter/FlateDecode>>
stream
-xÅYI«ãF¾¿_¡ó®êE-0˶¹Mò S L s¿Zº[Íz3óôZ½ÔúÕÒ¶9CóùåïÆ4'CÃ
-¯¾þÚ|3m 6¯~ºèOx1Øàbl
-ãzz¶´f/&ö'1]O»¯ýϯ߽<^_Þ/Ø iϱ Î^acð±'-<LÞXT¶7òß%Ú$´¼qéÂÎ;Ié3n0db¯lpÆ
-&geP #E.Z°Ä¼üA¼`w¶}7i8á_ðÄüùEàÓ ë¥u²
-Hh>'ößKEãÍGÊ|äýÙü°ÆFÆÅxª`qý*ãdÁtö¤ÈQÒ$ì8À)÷ñµâÒn²D+ñm¢Fá2åsÈÚ´GÓ§&(O$¬læ¥)r½¬TÙ¥=ó¬âªÊ¤lÛ¤u¹B2wsÁYm¼Eá¦ãc~Ì8]9
OÙü)ôØ´gÉ{
-Ýù7çEcÎÏ
-R UG¥ÍùÕb§s3¥ÔK¶döÅ49ú&
ÄEÉ@1r{Y¢²&u_p·³
-ðÍ8jÀæp[(hã·ÊbºÌ1-é6%0¥GØÊ
&8ÃXÑRá5Åoä÷ëвSKjö9r%¿&¶µdéÄäÙzúËaw©]¥rÛ*$õdEgtöwN=Ý
-fY3B£D÷
-ªÞ#OݽÛðÿbÝ3ü²=ªûÖ5#m2ò^ÑwL¿â²h/²÷10UêÇ.Å6R1Û¢Hýª9°à%OU 1Ã
-p^µ'ᬿÖFB)=uOòónÍ÷skT-)Ôe2xjìH±½î
-ùî·cÞEtÝRÑÕ^åqÔ¨¹Þf£6¦ºuZ×âÜYª§Jþæb¥3£U7 ¤ìíû
-^ꬲé³Çê9ï<ªX¬¨i#ÎðâªÕǰv|áäJ]ù¢BÝküå¹GÐÏs³K²méò°&y{YU«×óÊ£Ðv,çmn:¦ÎuÕL í1 ù¥·
-o³{s.`\¼¦üQ°,8N¶^^Þµ×]"sÂ[ÝîYC<!l/w@ +¬mqè6ê×`üoÔ0,'ùqN¤Ü¼aI6_»ù.]Ý»ëk7¸Å½JvÎW¿UN«û>îE³ÂO}`ºÕ}L¾E¹~²ëö[ÅvÓ·ØtÌ@è¿ý
-@ú<,Ò[GóÎ]ùc®Bu²ÆQÌtôtÆê)¢ÖÒL
-*Ö±£0¸à_è(«
+x½[ͯ㶿¿¿Bç
+ÿóôçë/oïoÒØ³Pg=|ügøÛ,õ aøøùËÅ(=_ÕEËëI]ÐþµwüÉNô0×\ì?:}ý×ÇoÏ·×äÝ`G8OLÞRêWyÁ4- þõ4^
+<TÓ¾VgÕ¤åm;á×ÓSNHR9ÿö&ÎãðGúû÷o¿
+J¢Nüçÿÿ¨wê´8ñrÝT
+3ø àSXÆ'%ZRÆêÙÁoÌèâÖ@ðu'08él¹MK#Îi軥½ãýñmt-ê3 è)¤qmJ«jTþâ8nhù0Xú¤`6ÿj|cÂÙ8¦ÎÅC³ÞÕ¼¹9Sz61=ïHÆÔ_LAµdª.ed)ÈjÃ;ÂÝjR¾ö»|"ÉÈ©ì1íRYÄH
+·©b`_²{d°Ì¦gvüM/@Þ1¬>-^S·AaÒÚ¬ÑE¡ëêNÖzÎ}3è-o©ÜÊHa-h)¨ë#¥ñ-N
+9æ9Lå«jÚæ©´GêÒÈîÂ×ù"Gá¶ÌL,¸¦xÓ
+ ±Ò}íÖ9½JáëÂm¤CB*ì!µóy¤.¤>
Ô'
+R#Ác'0xdÜ-xõáñ{©èV =}JìpNGaÚ(UÂ(ã3À
+Pê5Üx&æx÷~¾9bÒÒÀg¿`tJYµjI&u
uô÷cÛò Ѭ U at kÇÎBRüÔvN[áµYnîqë8Ù/%¶ÌÖÙt&±P>];÷:UÓXuRZ1%yÜ!5ä11/þPyµ]¢Mëã*GQm7Ûɶâeivýîæ-ýªßÐï¶8/À¨HÝ#üd^JÇõÇ£,ŲÝ`-]ºïþõ³¿Ó·¤
++÷búÍÑÉmÍܨ îS`æ¯dçuU1óÅï#ºã÷íuyÖ^Ét2/j5\3 ¦nÉÌ)oltE«¿Ñî¨T~ÃP«c¾Uæ¼Ò?Rã¬L4¸Ù©ÿ ÅÁø§4TIÌ{»í©ÞÙÐHg5-ê,?²ý¤Ç½y*Mß:¢Ä©{*Û]F"7){:ðö·qTFCIÂ\W;ý<³È·
+k!%?
ä¦Ü~aO2v)§ïÙ=
+ìx¿ÔÓ¤´RWYeæø¡h×)Ï{Xf¢¬Am'7ÑÊÃR«Q÷T7Û¶TÏuzzúd~ö×õ3 Ȧj íù᪬wòom'TË\)µªýîæiKê<´-;ÈHysK\½xðϳ°e¹´ö¨$¦èb±ú[ÖSn¦£g=QÎVkmOÏ0UZNºMQ?[tÉO¢>ígO+G{ÐÏ&}ÎÏúTê·<V
+IÝWeYhù³
+¶rïð¯&Âo6ýóáWÐi}n%ÚrIµÏ) h~èO/.çä.5M6 кQW!»ÍÄ{gÆßæ"F÷â"FÓº0wݸ´¨ºZ7æÍÈ6õiYh%çÙUý~ûêÄËÝKÁS#µÔºrðÓÉÚ¶J}5¿ß<IUXC\ð¯àZLdÊ
+½%/kê>Âv
+újôíÐ`t©YÛ¡¶u.Ѱåplko¯É×k¤¡wu¦ôÀvÈpÒéÖJqNÖ?VF¦ÊË;}ËdR/³ªæjìbFÐëZ:pسEãSó-aoܶ¨SÑÃÝî?ú¹:êW÷x5Â_
°ê¦ý¿øíÎÌxÂö¿>R·Õ¬ê>+Ú6Îþ»\Ã8æôËl×ëÎ
+W.ÝxXË|_aïV´&6.Ö7Ü!§õ5ée ¸["(}䤯P¦8
+N`(ýúÓðówkÔÔj,ʤ&9û+é2G{@óo²¿³_½ýÚ·U¨©¸FV$%ÂÍ㮵¼ÍÐs\%©Õswö*Ýú2ËÞ^»xµÕô¶dN/5]Ó'øv1ïµWx:²MØBŤIÊ
+FJ*týJ+fNwzã[«ìÈW¼(ÝbÙLíÛËÝf;+tMª
Ih
+3æ"ìU]ëļã6Mîð¢µ?©¯xý¯{ÅÍyç/¾« ¸"Æ×ºÑNúâ5aéât(f§¹þÎ9/#Àé¿§Ð¥u´ºÞÑâI#yEL»ð)øÿ´¤!?©94Þ_Ê4ÂK5ü$R8Ô§·ùqø4Ë
endstream
endobj
328 0 obj
-1711
+2697
endobj
330 0 obj
<</Length 331 0 R/Filter/FlateDecode>>
stream
-x[K«#»Þ_áõ
ã¨ôhI`~²d ]r! änò÷SUz·$wûÌÁîiuê)U}#pøßÇâð)ðrßÖÓ÷o?üùÃ>à@ßþñÚ=>bê ,õÁÇ~ýå<.æ(<iL{´=)mº>8ïõûvøþhßÿvøÝ%ï¿þåò,OB?A@?í ìùSà îLwo8|=óö¬ìI\.gXN Ï*=y ú$´4
-ÞÑ+F4Ñyi©LÄ9)ÝeÆúü×ïøx|ÿø¶Rli'°¶æ
-
9ñÕüüîðÔo\Ùfbñé@ÏSgÁ2¥¤â,Á&IHð`n"*>%ÄGé!y«¥Ï,/iùÞùaÑ#/:Pð-O·®#â=¹ð+7Ƶm³+Ñ0JÖÔ²PdÅ 5ieiðüx¸6³P1j*Äõû?_õ¨«àÂ\ µ³XÙÒg
-Ô¹í}¸ðµbé³ÍÑC¤§4)WBxÐu¯ *Zª2OÎ|eKÎÅ «
*æãéZ4~e]vr±%uÉ Òµ$B|öoé[3<Ñ8ò³m®¸¨_PMÓ|¨ü½0ÈùVLFrJDƳ±ÑGÈfL-.ÒmLÕæ,°E<*-«ø{#§Ü-.aj ESW+IíÀÊPÒÓrîâ2BèõÊA
±ô*f¬/9µÄu'¤L¦'m,Ð,a¾KpbEcI_Ù=ëÁæ3).è§«l¤}xøÑvñ>6ãÇhünãç'ÞÑgÿÚ5XL¸ÁÆê*Þ
-Ç.Y´B¥¤Ïº¾r%*ù*
-5hÈRk_<óí@6ÎÆÚ3FN¥]pÂÿ½*¸ERòÿû`dºþ×áOq©8®ËX¢«¤ÑÂgMÖ'G#À/ù7ÆvHáSÄ<81ü*ÆR[aðW{'Tþ<y8q}!AãÊTó|ÖÜûïË4îÑmX4è¤hf
E[$Db<\0Ñí/´°ÂFhÛ£DÏÈo4É
-ü&Ê`ñ=¦|±@ñ½TE©µJ(Ã8Áç'bùÙjÄ%Ð3á³cNXÂw¢Ó9¶À¸A;,h¡û>§r[6g#>æ@ëè6âSùñtèTt#\P¦d;cSe,.ÇN\åcªRâ+(5±uA\ñ#ÅÃ
-IxIt§|Ðró^\ÔØï*ãr¤¾ï@ef6ì"pºÿÜ«õ:ä;;°%ÐhÀ¥Ú÷ÈÂûïÏ<¸â4hµ®85ð£46á(3X÷QÓ J½[ìÀBa^7
-h T;µKì¿ÒÁ³A|D,Ρ+SK¶¿ï6¹´mÛ6,©ÍÒÃzu³@§IÉ´
-5JJLáMJ[ÑT¤¶{ÊA§""
-=TMý³8y BqÜÈ
-M
-ºîòüûçnÃé]ñ(a
-3tõ ¨ym\ *Æý«ëó»ËPR®¸È[fN³Ë±¥Íö¤læu¤Æhf*-o90«fÎ;ë|wI$<máå
¹©T¡¨J¥¤¼Rg.P§)Yá%ÄÙpoDrkÖÆYzîvÙSaeªñÛw¼àäII0±)âUSé Y`«¢%3zcV³'úa;µ¡ÃÂbÀE¹ýXLF.¾`ºX at QD -C·ÖÙàhqÓÏ"HaË4ÔXw,¡mîUögµÄÕC5´ÛÙõ$¾ìgü?ÖT³½ËÝÛ:ë$ȫܺ÷êÕJ@ÛÆî¨±;]V©X_Ê`²BR»JÖx¾l@Ñ~4Åá«%§HÏ nmhôæ>Uí[æm:y@ýN at G#d #ÓÒ§tjÏa|-'êÏañ»±ç·æéý`¢Òr.ùÕLrmðõÞ±¨´ç<×ã,ÿS&ï[Y3ÛÄuäÉgOæ¸ò²ÛÇîãÏË*¡æVÐv÷5ç=N=áÉwLy§1_¹HVô'Öú¯aÅ+ù
éLW8~ÇßaL'~^¯¤$Õýöú{ü+
-T4'¿G0i½WÐAæ~©zù$ÍbfoÖ6ºRfYïIk)ò¦p?Ó¯iWÍÂ
výv5'
-´ËhUÿ>:4÷.hÉ
-¸éÞ'|&#bU«ËðVîEWGx/
-r(dò~ý§® #$á|[Tè4ÇpP«±ËÄ Z^Ãû³I9F~º#qÝ r. C¦ G2Â\×QS@IG#z
-Gpñ\<`}¬}¿!§§ÁCe\
-Á#twmvnf{q¢1&ÚÄnÌI¥Û¢Õ Eì¾Ð÷ì¢æ<e}ª2 6¢ûkëìÔ'KêÜXÊ»u¨Ï -AYï-ÏI:ÅmJ8¼¦Ê:MC[®åBÀa¡dбgi{æm÷Û5ÝyÒ;
-ܱ",Ïʳ³¶ÒºZÜ
-£(S§ksäI«QsÔ¦Þëõêe«¥##÷áðf£#vWÁ½ø]uÊòŽ¥SkÓ
Öwo1fÉÞWUKLXUÍ©{Mõ2ÖËÂ-¡æªeQ.gcÖUª~£ä×@ã ׯ~Ù¡3a!·ë¹Ár"|6+¿³×qìTFÒ=sèÖѼ[H$YQæiD:I¢=H¤ÄÄ¥ú1$r2_p6Uqîta¢°ìÒjI_Wô>YñÊK¢ûB¢5õ5¤S
RÉÐg©ÆûVGo?%¨
-fLaº
-3$¸¦.bîZÛ)5¤ò¼¬÷\vÁl
-PS¼³¥ñyRb,Í0¢za°wÁ,ýlC[²Æ2Ê¥FþÏ6Jf-ùӮШ&]WÊ<',j8UÄHcS\ ØKàF]»¥[*öÚÜ-
*\"M¾Ëq½Æe¸^Ô2åbOÏ|.¼Ç¡þÕénÍZPmÎ03ûû'~¸fNÄ3X¶0.o¡»J××3À«NXÀÑø=.P?
-u¦Õé°Î%ß§üçl<äÀ êâ}ªÜüh ¤%uÎk=òíð#à®
+x½ZMë¶ÝϯȺ@RQ¢$ÌdìEwè¢èîõè¢@»éß/©/Kd'÷λÇE¤lqÓ¿/Äé,è_¾ãï~?ýòÃé/?ÿüñòöñ¢ÅE,9}üïôãpr§/W)êºËÅ*³°Âh3[£^QÒ5Z§æÛÇ/óÇËÏ=áÆáE×»Âü_ºº
+!/öd¬¢o/UHîÇ_¯og¼ÉèÛ¶pÓW\nxEË_3ÝogËwÎúê]íd
·³J×êvñÛ8/p13ÝÀjlgf\6´ "fc¬ò2t\ãÊïþoï×òÛ°ô»Ær½-e\AX§ÿQäç ^_Râ·zÖGÖú<}×_Ú]Üfΰu&'#ݲÐoÐÛIûaÇAÅ4£¼+g¿Ù)ÿÌ6rÃq½eÉdu!;(XnÒÏÓ:d`W%à+ýÊfÊó£Õ9Ï÷@
+ôËÖµL@Ãh
Å
+ïE)7
+´.à&nSl£·P²0L¢"ËV|pOßd¯JBtF¼zË)|5LgñF¦Ô4oäAyM¾QWW<sÙ×3Í{a,±B ñá99ÑÌF C¯
J*ù/¦¼Å5]'K\Ŭ8é%0*¯t×§Ç<»³XYæjÊ"9iz;×y
+ÈÓxû
+KQ°?To
+ا`ßç\v8)XÕyiÑ5GAbàÅnÙª*k×.ô îp-#`F¤"¡ãÞC at Lx6PòØrеô³H(Ã~u¹Ë檬[X¥LYÉ%3'{Ú¬|ôd²Â>nQ"ÓDÁ+µ2Õ Ný§Õ
+"¾´àâµ6
MX¾Û¡µaZ"²@MÂT@,|Ýz¢Â×½¼·_»¶¦v
+5Þ²ÞJê:Á¨4^dî¨SaÈgÞD4¶®:ܱ¶ROÕ¯NY©:á¢Zé9z&¥¶.£d¡9ºÊU;íµ¾Î£ä5YÆYã¾C)Û$¯`~Ç^4æu×ÎZêªeÏ=K)s ÐÃÛS»¼h Q*ÇòOZ $
ÐÛÜ6
y 1FX÷yÞÓ4WðG¦TÉ ¶¹®î4Ë¡dÚµøòp¢Fª&ÃuYàÙöIÕþT1¹´ýn¥¢Ùx\ÒãËÜÍÆ³e]§´"ÂüÿA6Ät<}
+Mæ¢Åʬ*
+¤C.ùqâe5pj$bí?4ÛÊ×|[@/ônÛµø¡§N·ìF
+i?Ü÷D9½-"û@ü¬xÔ·þ?BLh¼6Igh¹°4s9Ðw@ÐÍD HYÿ±$ñ0
+¾W¢É`¢ýéNÁ-M
è8êе"H|¿òâÀ©VÁhdÞ>éIK[ÞTãRÿã²ÇÇÁ&(J¨n¾Í.]xíªµn%eÒE'6Yxï,uÃá³ë°ÿò0Ö)ºoCâ)ÉçªLyò^7ÂÞfanç0Qð#ÅpG×ä¾ÄÃÖ½éKΨS"ª¢ë½ªáKÙb&%f3·çCµôQWõJï¡%É ¨DbõéÑR)háwº"¸©×Íèw)ôêU.þy«bî§`ÃÜ4KÎ|âN´ËÊÅl×[OìÂ&
+¶dwíSjþ·Æï~èårïÍ uXÍBàAGSä*
+5¿£ñå8iÝYhÛ#
+¶üt¹#iïñp¹M:EkKËûÄþ>%[ ³AîÄî}¡íÏ<Ø×ëðѾê½%EÄLOØöÄ
+%rÆ£!çáÎ|°`¥E¹*äpÿà¸#CÍhð®QQø¿'º$ê¬p`µÇ3NÈv|ðH,Eå+F¬i,)'
á<¥ã5)J¿(¼ÓJ¥GòvÕV°M.Çû³;àå5L#JoìרUô»v¼O²¦åQ9²Ëܺq³§
+ ,Y竹a2Pô@Úä§nMP&
+%}ë)¨o3W!oÔr
+ÅÂ÷_=¹
+îàôUº
+;<A~b+'ª$OutüÎÀWñ.üój0Ó°ñi4^+lNßEGç"#×8f~iXºL!ZòÃÙî-?ÉWÔ5uExÇ8Ý
+º·&.ù7¥5]KuoùI¾ØlCyÛ;?þ©_í
endstream
endobj
331 0 obj
-3010
+2250
endobj
333 0 obj
<</Length 334 0 R/Filter/FlateDecode>>
stream
-xW˪ÛHÝû+´XSÕ/u0ص]À0]æÌb Ùä÷çT¿Ô¥kÐmwu½Nª©çîçé{Gݰt¬ð<üÝýõ©û/
-åóãÓíy²Ôën`Æç·îUºçÛHÝOày&G,öI©¬pjW¦ýåùïéñ<}Þà
-BpÁöjQBo'-j½¿²Ó½ÉÊ.Ç¿¤cîÀ/³ënÍ4Ø+ä`öîiæ]ûïô8ð©6ñdù@#È¡·*ЯÔa5O%!¯Híeùt\ 9añ~æÞ}, òÑL0rìÀ8¥ÿl
-ôg:¥À.çIaç~È[òCá¬Yµ¥¡
-¡÷ïÑpëÙzÝ*0ùκÜh¶c¬Þ¾Ê_ÎvD÷I_Îj4áòõùç® û«2ÑH4¡Ä«¼Ç0¯GÍ#CÒÜÕÝÄ;6Ý(K±qvcT°°¬«"vlÜwéËÅEÁz!=OXûì:;3
-Ö°ãbd.yÒ³DnèÅÓ,ê)ápV ú¸¼añ5§VRºa;=pZ
-ÙC:áA¿y
^§ÿ(*²5^é×Jgc©ÙÎR
§ÏÒu
9(»s|[v1wÀ4
ÓÆXh¢,µíT9¯]F´b×6sÕ¥B.Ïæ¢rÂÐ.ØØ5rI338G`MB+ºjÜk¥G=B
-[åJc.éó
WýÒz-#è¨
-\Aj¦
-ZÎ'ºÒß
-äàÜ
ùÊ~V°àR[Þ"¯s
-YD/æPJé¤J!j'þWÏR0Z 5mÓRÉ®Û^(Ryøª©tc"Bæ&Þê\Xð)Ä[°J:º¤áþ=î¥vÿN¯$º°)ÚB¹!òU&EÄ6D¿@&`³ÎènO)U¾/CMæ]ÝÚÞénÜ2UbÉu- /̳íXÎæIÖ×J
-Þ´*î|gLÔá§)[ðlHÂÕÒàGÆa÷Õ¸(
-Äé :¥_ZE´¶"¡,;2x»O¢ÏÝÿ{ùðÔ
+xÅ\É4¹¾÷SÔy ÛÚ¢ *oc7ø0ød{Æcð\æõ!
¤Ð=Í@vå¢P(Ö/B_¼ÈËOOÿ¹Ë³N*¸ú×ÿ~ùó7Çøßÿxzû|²âE_¼/îòù·ËïR^Âåóû«íú]=öÖkýê7κ}¿}þóéþùôí¨æÅ®ÎÂï}~ëdC.þ÷á¬Wæá3øë¼S/j$¤½bÒàòî~5
+îM'Õ)©øîÞÝ.IJ¡^üÅ)e`/@÷óûïËÛ³Wknêê6goÏ*ÄîåíY^ðÀ£-¾Qú
+OÜ_Q4ø
+ÞQÞ~ÀÝÞhxDW¢ç-EǧXãÒW!þ¾ãHö-¼Sbù¿}¯³¦7D/Qú0ȱçà¬÷ãê[¥*OD5ÍWV¾Q0)ã½e'f7øÔIZxbÀæCyâ%ze}UùüÃÔúzüh*8Ï®qIù²uÆEÓEiÈ}s²hî42¡;Ã×ïÊHVcLò
ühO_2½Vi¼,¯Þ{µ¶ bÑÒÜ_D&d7¸x¼ÜñmgñÛlÍ´ò jq.ªT&ØØóLUØKìh&¹A(Åèë¸"oQÆ$U'Ñú÷
+j0#²amNÈ%m°<$qrw²ñ¼öö$Hl(ª>_/Km¡²h
+É×ì¨Ö$ÝE9_ÈÐZPÝé8Í[47ËôEcIaDܾáo-P+6>Oü@j2Q¢Ñ÷[äëy#
+Nñ4NO5íÄ ÙÐÝa!;v ZV°éʵá!h±ÿ_µÈßL-jSÁ|ÇR´à¯7òãËC Rà4ÆgäG%òwMpÆ«u4$Å';Q¤ÒnudSåÊ÷EË8_ÏðÒ:z^wãÔÌÞ,Ô
ÓGª)EÄ©ån5Ð&!6w
+ at +¯³à!óh;Ü$AR ÁFJ
1èÐ2µl(
.§1ìíÛÌ`6cÔ&7J`Q²¬eÆtÿc¬¤º*¾dñB{ìV.f
+þh[ûV5ØÈ¡U©>íé9|F'Ð`8 ºãÃJZ¦Î|Kåª\á$eÀÊj¤ÊËÑ(ßÄ^^á"K
+V"¤äSÁu>LÙ`J
+®±däÿ3(Ó,9v±¾ËĺËbÍG_hfLÚø;us,>Iü8æ¼K×
+^<:?àèà@P_Cf$¶G6
+Ô
ì S#½k§ò¨,'½Õ^b×Î
+ç=URÚÊzÍÊã:34ãÙH,¶®¶¥Z5wÀÜDÅFáúvÐhóÏ[AæmLãÆ¶TÜq¸Q¨ÆXÁ¥×*7ãÖPñ4uÙBãªÃ¦ð°¦>o!4ñ~kr¤hlfeN}Æåñì©¥úli(h"½ÚÍÄ!ñþòZ_ßkäαϯìªT 9-»ÜMÊ ¯>»8Ð3S5`ÛoJ½ÖO¶°¿i±^Êè!ý8xØØÏu|hFëḫxYc
U^±xu³±JäTШÌLU¢ uU±È¡´=J¼Å~,l÷4(Îvú¼Ù@ßñ+N=Ô3¢^¹ÔؼLÿìTãiK<Û3Im]0Ð3ØãÎ;;4ÜáÇùÛ«"P¸Þe__w6TQ7TÌöShã Ö5d+3t¦¥\Ìðíý¯ÙE¿ÇÚó¿@m¢B2ø¨ÖëEõ·G!¾ß] ]PèJ [T=P"YÙgs!³\²Âi5«)ñ45íXé^ôÌ¢lPI×2hk{EHÔ@ÎðEË7<«®3ÍG®¡LpMQÚfòZÍÖJíÀ«åÙ
+iQR:)y:ãç2$ºø9ª\JQøAóÑ
+Aå-6"tz߯¯Á6ÿX§Ó'pñ7Í¿£8×oÖÕ££ê»)E?dæ Ú)VÙÙ:SÑaÙx®ëÔÖ;;cA¼¡H-¤Ë
+bÛAVuòxL(IFÝôNöÖmEÝa(±åf¼DH%mz±Ê"Z¾©öZܼ+Fê÷³X°òàµ%8ù8%(,v@¸î¨k¶0öu±¼?V¯_³}-1ªFYÊîäTuËyzÃUËþX^*Ú-°¾VÓ{<Y
¬khÄ5å
+rû6Yb;i5}Í@amÒÏrtä6ÆÜHRýÞa©-¦¹.iS²´"wÕ© Yu¹Z(tÓ©´óy¤X
+äѪڻ³M_ú|þ%
+u5)Öë=ÒéJ³B2I7smê(id³¿þÛ@êQëºnÄØ7úFI³²ñÞÆePóâZ²¿
+÷¬;?Uña¡wo'=¨æN+'cki¤ë·xòë÷?UînÅ<_4N{+
+û½ÀüP¤@æ· Î
+6[9`þÒÁZP§£fmÁÙ,ïîøk(c3»³ùäHnÛ
f´µNgqàã58ó¾|sn¿íð¯o¸õ$3x4ïU·£=4a:oÓFÖpÄ®er" N®gäÍ#Õf{5+#xÕõ.ßëÝCJjb
+
+þ+]ÂewÍCØUÒÔà|F]اÙù)÷ÔÚu¹m}åh²1_tåáâä#3§aè÷ÍG[ÛâàO¬¿;qóý÷ÚòkΤ%Ä ¯ßãí[±(ñ:î¬@'ÐðËÐf.ÄÊ"«\Î ÊmªÄ#°5Á
+VÝÁÔN±ßEr6A°h¨LZ2o¥¤½÷´#URQִܵõö«/á©Ì½i¦°]Åá7
+Qü@@[h«Srï:Îç2Ä20Ê[Bqk'JÙò¶Òmi×CãC«H=>²ÝªHâÒÍä7%÷1¤8kÊÒºJ©ê$±lCÙ` lØ|úÅ̦aÆfë«y:öñÎtz=[4AÏ{9$ºÇûԻã½Z¬WPî0å0"
+|
+tT{Ö#ÑS§´´qðϼlqÎÃx7oé&)د·Å¬@y¥Çáé*ØQõ24²]À9.h)~Ã;ãûo à.Ûð8~ì®
ñú%½e¯pÀôê
endstream
endobj
334 0 obj
-1023
+3471
endobj
336 0 obj
<</Length 337 0 R/Filter/FlateDecode>>
stream
-xÅ\K«c¹Þ÷¯ðzÀ7z?Àìk{Ý@C!»Ì²d6ùûQJ¥ÒÑyøö ßs¤R©ê«§äVúôoÿ>©ÓY¯Aò3|þöËé/?þõM}$¯r:-ÿÿÛ?¾©SÈ©õÆþÈ0ç×üWFÜ¿såM¡©àý÷¿þôÒö¤Óéû¯½(}=2׳¾({=r×òÕã×
-^øº9Ùë訬N°VýTÑ(ëªÊ
-r«q\Äi¸T¶´£ítåÂÆkºè²M{Ñ(^qÛh:`Íáj^ÃpUÛÍ=+óO>»ò«ùÖ¸©"Kêÿïðó;¸ÃBwñøÁAôV-4õUÞªByõ,RIíáZüÌ×pÑ/¢SkCä2 kèO{/¯*9ü4¦ÈÈA:â{ÚÇÜNûÑxaê´k]78¼ù'IlE«»s¾¨'o§ÈxÑß+VÅÁçrýÀG X+·e«ØU"ÖÅl<92CURuVm¢¤Ø'Xé üý;¸JæÃ-pUÇûÀ-}¸Æ1#&[ä:Æ©ò&¦ö¬vÀ»Q'&Æ*~áÀ*)°|Ñ&ù6Éz<.Ò)K=Éß
-ºMÏvdÄ·ÝD^XKN°³+V at YJK$¹j¦¾D¦xµ:î«À¨q±ßJä¦]e;fÂÀ[VÃ2K¶ZYbj2é}p¨+ª2o®Æ(ÙM"5wÈä}¡Þª6«ëÐKhtÍ(
-©
- -½CÐ [Ý_w=_aæ·+â+²l>Zf!`ÌÙ÷DêÁâcK,?૬ը¼Á®i΢»ÝÖÙôZ¸Ç:fê«ü!ôû:Ìéæ*QadzdW}â§6'é;¦IèÏ.1Uj>¯Y8/{©.òæ :ßÜdw+ävë>Sº;F
-LôÎ|8IÇ'yø}g3¡á?ÎOLB at S+ëÜiQ¬6eÝ`ËH:³Ðo»!>Ïz,j¼!§v dFSÛ6 eñDr<&?¼:1OL®æÈX9ЧnsÏ3mûé\qeâ_L þ¨¬
-4äùÅ>÷Sd¦hcn@ªmÝh&ywMîot¿rÀê.sAãý7*¦á'oÍZk7/²zxbY¾ïDâÜ£xýÌzÅ2EätXHâcü½¼[JB+éÃÚð6n(TM¸9t5z2ÿêKX%ÎÇÝ®!dî@?¢±=Mndä1Ã]^É£
¤ÿ¯î
-Ð
-eÚì?¼TNQk)Ü-"´¦@Ì);G]ýoëm!MºÅ3A[ÌÇÚýÞ¯æÔ¦Ãr {qkq°£8ø~R{ËÔöa;Ñ<®K¹uá¾îk*ájR`Í"-®ÂWÌ#_ôl©CC!ëâ
-!ÂâWÂ@bõ1üZÓÜê,Ïý'y£?ÛÌõ£w*fGÉþIóêĨ5£^µ$+Óp¥mm1Ô¼Ñ÷]szO(wèõ>fl¢)ƹU°ÖmyzÅÌNVNÎû©½%Ú¦-upN½¸»°JÒYÌßw,á@vxWï,38Üã¢
-B»±Ñ¸ÒÊ©µådÉA*ÞvµÙîd.CL]æ*%wEÔÅØà^=Y~.u¶¡Êe!kU¼úTâTñ©»7Ùß°7Qm!YåRÎßA²)Èw¶àÿZ^ûXF#1úÃ.cWôOüG2\½ýïϨ
Nºbûe^¼æØàF~u3RÙ¼ïÜ$ìî.ÏË÷dÐ5Ï#óÊJr+ji©<öÜ£( øòmû>¢x±Pè¬BË!²}=9tØ*M@¯GtÒ[ÛîÕr¢±êävösh߯nî+T´L'
-fGôEà¾;¯_ýI?ÒêöçÄ
-zR1¶ô£m¯¶é´Äé¶ñ²?GV i÷æ%Î*ØÑ¡NÌEï¦ÎLóWý¥i[ÈÄi_!É%7B[c¹Ð=åYæG µÙM=ev(¢[~öÜ;«ÈH{ÓêztèP£ýqW`ª@Û½?l_
-ÊÕ¡6úÒ[+òиe¶hU¤6Ôf`oëï¶Ýpjävk¥÷zìaâÝ(Ö»[mßÖÿìjr|üe{®YtÚByÏú4n¹´úå¼.µ®W%<U·Æ$
-Ý"äeÑ[¿ëÏòMj½*L¬J¿6
ñ¸
-Õi¡Ó`kÛíÆà7zÜòjHE»B=}ÿ:DöïÇ¡}d;U3píÄÖ¢ µRº[Ö(XÐSÇqòEaI÷nÓܶ\|1N°?ÇáD¸ì>PøÕÒÓ/ëÔlÑói}^dk¢<ä9ND\CkjjâÔeí>lâ&ü]óìýc'yS{Xt
-ÝS®]ØéþV®¾Zè8ðcéÀÙ³¯åâðª<üL4¡Àí7)á¿BËZwèq\r-æg?ºÃÒÀ[²/ÏSàC×YæÉÑ1(ÎÛÈ!'ò]¼yrÄðbiÈ#µ´9x®úÍ!Á²3MÓ£Âä¶ÏtýJÂîØyMp9 sOMdý2´)ñKm_§F¢iÿÊQöìK|0Т7ûÙJB°¿n½
-Æõ4Õ»ÓA ½uûFÆ)G¯]MóEWÎajÇX^l¡*½%ÍMe³wM´Ç¶_§òCÓÂYT.[D÷ó4íæ<í+M÷°Èì<vïG\¦¹ýW'À=ØêVÌS UDØ#³»í¨Å®µ9iƪ³rÅ<bI[ü¦áZmÇéËføAo`¿=88Øo_q¯öv¥(-3*£ÜÜd77®ÞOØõSøV+8"ó©ÌmìÄÐu¥"¹ç»?/,mÙìDÓ`z$¤2û>dµÛ}È^¨| |Þ£ÑJDÞ=îk\M×~Ò¸C"eWúefLhwó¢GaË$=·z{à~%A;jyöþ
-ã~H`ZmDàXI×üIä%¤³½Å5·^é°KᣳÈùÅñSX-ý:òZͽHL±s±møS
-øEWÉ@ªz¹BµÀA
-ØË7I\oøbsà(&ì:
-ëç8# {
-
-ùKEÝæ¿=ѯ޽/±TOÃñI}×]ÏRk#¯ÕÙPSXÈþývì9÷õ¹ë±n£/Y/ü¨Nô.xÿΪËý¤C¢wdýÐ@é
üàû5áäYe^Z 9ËëYCb1_ªé¥ðÒÉãv}Tk·ó8¸¼&åvíd´Ýµ|O0³Á>¸=¼æ:ßk«¼+½Ý©-ÉZ¶û¼I]c7õF#ô>¶&¤bK«¹+ßsÛz^?õ²ºøÜxð»t¶Ò
-¿ÓS¥r£´2Lþ8 Çcáî` ,´[ 8ëîÁSXñÝbÅOQÆÃî¡é×{d&·aÃ9Õm¼°&ºÿ¢TÊ#oiÔ@·WÝ÷ç²2 ÑNØ5 G£c{ñô¸ñtA¸#!4ϧídkû-Û:V|QÀ¼ÉþLK>Þ<Zj?ôàÍTçûQ¤ùÒ¥>ú¢¼@'òqjçê³ÅyiCJ§°[zù®G,º°pÐqëð]<ÎÂ* ÉKøÄõ-ò[?i*
-ãqd@£
-IÔ×wzQ=ü¸¾y¦¯Ò3ñ~`ñUFßúNê4sfí´ïÊdåësË®³Ö^Ñ_¨Ï>
àP!SG:(éþ·xüë?HH0½-£ÔrÒ,,²
~±P¸ÓpÑÐ]ä+¤+)3mµIÓYä¬Hºë#¤.Ø[Æ}Ç?
H®±ÚC4RIpu£ªb#þó4Ô ªò_¾bØõ~k !¿Ù
-ÆBºëý6(\¶~EÅ 0¹U0(ª)Ä,Õ)A at H7WP»d.÷úIbU¬"3èm6Î:</Ý
-=+\)TØÑÇ/²4·w9/V¬ÆÀ³*ß63Ö;ÐÙÒWZH£ù\"̺ú¼öJæ´«qÍ¿ðbwÅ6<'GÕ$CyCyxø·=È=>¡cÍ^î7a+"ØHïN¾Âs¡Û(KK·pÆ-F¢®¹
:T á_+)@Ó¨i æ³
-k¾ïÍv*qÒÈ¡Õ*.e¾£òHA°ch»SèÿG¸~7àÈÅ|{êÿºNÀ±&^îϵGp$ ¿×¿bÞ¶gâ0yC®^gI-)¬
-pþ^ê½wY~Wè½®ý@ÇÏ<×¥2/åpwFÕÓè×0'Ï'çÁpóÁ¸*ê+eîy1ëçÓ¢.
+xÕËä6ð>_áóBw¤ÒËÆ0ÓmrÛd S
+l {ÙßO^.ÙÝ3;dYñt[V½ß²8ËîóÿèN¿Z xu]?ýÑýü®ûÇ/ÒçÓOÏRÀÙuNx}þ½ûn6Ýó_.ÆúâÔxƾØÉºñ4\@¿>ÿð0=?¼Àd¦äy¨ëQ£¼8M°'u±f<ÉþzãPeË!þöñAûîs\úñûäR¡ûØ©á¬Â÷¿»2YGG+5²Vùøýæ¤*í#ÉSL>
+tÛÆdb~e
+IìÚ鳩v?ÿUÛÑÕU**¸°@[ ÞÙ>JK^]IÃ?)Ó6½pµ¨£üÓq«}"2YAXRúóW¸z©¶ÌèDk]ë¨ÞÃA²Þ[4ÙÓE#× W?z» md3¨f>4hÖ³Õ«çyqUÉÏL3ò¬Ølä,%rÚ²b+Ú?´0,öRDè´Lñs!õÈ"LQ
+ú"6KÁtÝô5î<ñ:¢³â'<9·¿ß
ÏU
+À)²Èܬ²W|ÊØÉiüÅwÜIëÒ)§h/E ôéÉ>úèwa
+ððÁo
+×¥¼*¤%;JivÚ
Ì
+¬Tq.CbB®ÎFYDàÍRÂ
+vÅøÔÛuá6wÌ
¢ñó[Æ´D=%ÿÚ(Rb_Æ%.)ý¼æ^Mi&BÕ¤×N^J ?|þíãóçU̪^1ê9¼¬¼AªÕhÇWÎG;L{ÙÜ.Ò>4%rZ³F
+¹Î
´ø$VQpíÅÉÄnlê.f.(ûíÜs³Þux±Õ´{ÊcF®Ð@RA3K3|>Ìü7Mî¦Ýùn¯Ô9læïî_:RèE«\YÕ¨Ö¿®VëFµjWUýkÂ]rÞk 7¥âBtP½yâ"t¿5¤&u± Ë´ÊG)Øï-_Pç)7gqÚòÈ»>ü7WX¬¦àé
+*%$Ý[òl#R¾WCޣɵw9NgcØ$þXI6Ê6~ä²1ª ¾ /²¯-sÆÝÔÕNWQÓÎmÚÂpÆz±>ã-+dúíÏÅ´¤7+ä;t¬Ç
+^åxmÍRA]êÕQÊrò-=Ñå:棺§{ØF«2>½ìu?å°¢²Ýa1?lµyèéw×ý\üEóÞ¼ØÈ÷!ég°÷Nå@ãhFÚª=]ÓÅ·sÒ
VOç_O©qõzîüyØ-¦EMÎ-YpÇc½YÕI¢Ç°wã)Ö§¼XV¾R5J_\ÐjT«úçñ%Å,}àïKëtú×¶Ò=´>¬mÖ5ÈË$æ[²Ñ¦ÐÞØq(B½PÔ[lÛÜx²Ó/AqýfÖê奮!VüÙ$*²ÉÛò4§²òËþñ=ÜyzO¯zmÆoszÿµÏî¥4{ýýgø-,Ŭ]²YÏã¿Ö÷ø÷;åÿ~è/E
+) y>t{0¢÷Eýð
wй¹!S¸f"ÒT9¯aÓæ-Z£ú+´ôçà'CÂrâ)üü03j§/#äYW
endstream
endobj
337 0 obj
-4054
+2293
endobj
339 0 obj
<</Length 340 0 R/Filter/FlateDecode>>
stream
-xÝ\K#·¾ï¯ÐÙ&|³ f4Ò!7ää;@²üýÉb±øêâqö¨bÕWO+Þäé?ßþ}§³?Tðô!>ürúËO§¥ñ¿ÿøöñý4úm;yÞüéûßOzl§púþëEèë÷~»ÿösßÁɶ?I =þz1«¹¸»»]ÏæâÃõ.J\ÏöâðÖ^ϲüño§ãÓØÚ
ôv¬WúGË=<¼Qé)ÓPûoÜÝ;í#Ïê`¹åï8ßç"7òêzÖçÒó¿>aBÕtÜRë²÷)ÍàmiTe>~QéË«zä>0ùÛÂHRGöù4hi¾Ã*u¿þíûg2²"
-QsOª.¸7ÕKÕ^ÕÅ꫼àC²n\±©<@iVñì½#&l«D!£7,óÆV:ÞÝkÇ]ÜBR÷@Yr²ªpQ©eÀE8âRËjè¼çjÈ:tj¨Ü;[rZè0-ËwXÖ¾2âËbCLÏÖØ¤è¯Ä[yÖÙúf>·£Î 0j{(Ädá{UM^i'bö¬ºpV[Rj>VJ+õHôPiÓvÍFµ
-ë±N¬\Úzý°ÜCØÅ pN®ú¾
-¹B£Ó WÃÙÄk1n³({k}ÔÄ7ÌpD)dÒ[.ù
-ÙÑFr?k`BîøíïÂ(BIAÇÁA\ÚÿA¼ÐìOgG=¼7Tù¬íRUbVÎaaRU´#SÓ¹ll2ËÈenk0²à]gɼ
aæ¤x«|Pfd
-
-¿Ás³ÔûðÉM/i2ù-"/êéû&Þ#oägäüʽbHg¨4¥æy¼Gy¸rôÆÄn.u6t$¦IÚß_þÙ
-µËg°¶Ëe%&Õ¨¥×úJ<v±ÜÚSUe$§Ø&N"¸wGžúÞhh)I+t;Yø-Zhée?
-8P¾PðÖâD^®~Þp:]ù\RÍj«½¦çxþ$
-¼]â` îmH,j6PÖë-£®+èNTt! ®JË9ÄYb%,,TE@æþÐ\Þ#v4]å}UÂEcS %[¥ÞåØÙVw`Â¥eÌ4_³ÚL;T5ô¶PjwHÉ<3ÛØ_[mñ¦AÇß>Ã8¿ÆV{ææÏÙl§F÷úMrß4OqÑ@í;dl×~®ß̲Tr¤©²%¸YƬ'ê³eAÉYñbgj=\í÷à!7FóiHܬ42f}2O2M²"EÁé-ÿhÞA/ãÎk¶üºÕhåAÊ¢·£§j #=5^zpÕÓÓ¹ñ"õD|Ý04ÕÅPIf4¡úÆzÆ2ªu®Ò׳F`%ÌÓãèµS÷¢ã1_"&Ѭ?kf¶ëËtÃâú*²cHVª¤óñÌÇ7³í©
-w[¹¯:vðw²*>IkUg©Æiùu4Iµvñ#'h8ÄÝÊaPó ;sb6~`Qê"Rndͼ² È h5^ÕlJ¥à9?e!p%¯ÊiDzäÅ'AÎlèn¹àðýÌUóȨü(Í8,r
-o9ÂÈiã¬.XU
-G%±È'h¦Å<nèÙ)k³½Ò÷>ÞEÂTËq\,([D;J°Êégj[©ÄÎRòùÌÒùD6q%5H~WÔõNÿ¹dW»éJh£¤ïEĵ8ÐV%^ ˽YļJ®¤$SMùbc¥µ±h±1'Ä-:ÉR9²ÙcXÍ
Á°Î±®T"¼o¢ÚS[:÷Á¦_Ëï¿ÅÀK×
-Òtì9Õ~6°<Núx;Eýr4)ª\H(hÜXùÉI$ÅGêr\ÔÕ°Æè`ÚWrf
-g°Y~&.Ǹ(6E»<êý`$Û0ÐTÜþ>|IHø15à^õqª J,¼¾
-©B®ÜQm"Éxo2:°JKõZ}¨wð
-èYx?éÛÎ5/Ï JiyPýÓóøéµ£ºÐ
¿ÁüÓ%<UU¢íÎ51&T*ÊuluÆCmÜÒ¥m8AXlPÉrÅÕD|©rô*Æò1÷H»©ÒaÆaßó)yÅèDbo"Jí
-VQm¥ß¥ÄT*ØU-¤é m¬l
-`^Ø_ݸm÷&Zh³ó¦ÿ¶Kkº×ÔÙðl*û<ÆÄ¤¯Fã_ª&¯>)mÝKWËôµ©º×l·ë¨G&"ÕL´äv%jwxÞ<¡Evã9ÓVyøû¶K&1±¤iÐåRs¸qTªÔðNgÁǽoÚ¬²p^AJeåoàS&Î&9N÷a4âFj7_$Ûx)ªÔF×lã×\¼i½è½ÑâÏRP®©`ïHñ]91AÚÆs
-«pCÅì]ºÛTîÖÈÒeÖ¡ÞNøbÒÊRÞXN²BfqnHGÝAå§'ËcÏÎÔîÏYUãwcº%ɽÆDøT¾TßìxxÊ)ÚaøáƳͺLHµnàÐí°>¾¾=7¡nç\U
-jHÃ5¡§J£VQô¡íÜÝVyáü<?
-bB¹Ýôûx6ÁyÑÇaAÌoVëT¦]w]6¬íÔÖN5EGÙÍÉ5åëQ¥RôÊ¥ê±
-¦ð5îp²Ma:üOÆÃÁlÜ\¨S;³ÄjÒ6ô@5M<Ý¥{Ûª²®§dÊîH:Ä;+³]R#¥}õT<Ü»©§ºØ v*
-çûú5ÖÀÚ}¥öÀ®»Ð=/¼/Ï»µQº;5E%¡7^*:Á×§Ú½©ù}U©`»
-lO4cGùùùäRED:F8j³7Mº9²NÁèd_
-í?WfÄ«ó3O9ïé
-»ËÅ$]*ÒâÉé,ðÍ&=[Â^)ûsíTå)q'¨W#
-W©Û]Ôá¦D)8+ÕT;ü¦Àô,O=6»4&¦ú>månàÙ%vgH<(V^Ù|Õ]Ó©ªå?â¤&_· ¤±éÀÆ@ÌVle- ¿2~Ýù§`Ül<¶!.Ï¢¾q_ Bܰ÷%~ürúõ§o?þ:ºÀ+
+xVMÜ0½Ï¯ðyaRÉåB I½-zXzk·ÐC¡{é߯${ùHÚe)ÞØôd³Ð û}øåÀA>½¬)ëúúÍ}~p?ͨ¿×ïÇù¡ .!4ìæ¯îÃè²_:ë/ ç)Çä ðÈÈ'áä='9';¦ÌOb½}9#Îò5zï!±Ø¯#Û3)zEñFø)ýüã0Χ-ò©ï'Â%ïåo,Pä7ZYß]À0rÐØ´.£,".©ú/7ÙÅOgä>ým)Ð$õ<ÐIz;õx&ot×½{Ú²-Ä=Ê@îWϸI¤C`^¸]ðdbßø{ÂàubÂyNvAZ-/ÐJ[Pv#| iNbæç.Rï;úcÖè(õÇÐIÝGôGêR¬gcu:ÆjáÖüð*-2©ÇÐcGSO¡,QâÛÂ'C)¹Bôu-z)Îèê«ÛåIù¶,oá
+{ä´²öZ\RBq.ÁguôÃRDåUµô`åÛâ%0§T`8sÕkW¶özíâùÓnDIÇóN·)óò/JËEÑ^ê[zE~½ V¥Ùb«bëªf´Îcí
>XåtéR²|µÒªèÈt¡Æ_ø\qÁ29åÄÔÓ÷Ã(tZFÞM ÐpU¨9ìÝ[s^
+@ÉS§K°4zG½y¤¶»}ÏîÀ÷:°r"° 9b,í´M(°·Ø¼£7(½Á¥µÙJ¶y,l¡lÚ="P{`L^VÁ]¢XjåÕåØJÊ?²-Oo·8o,(a;¥Pí¦tkzr
endstream
endobj
340 0 obj
-4120
+696
endobj
342 0 obj
<</Length 343 0 R/Filter/FlateDecode>>
stream
-x½[K«,·Þ_1kèôlÁ00Ï@vN.da²Jì@ñÆ?URI*uK=s æéJõøê!F}Âá×ÿÔá¨ðO?C¤Ï_~<üõ»ÃÒKú÷Ë??®ß>ÀùOjùÔoÿ8üá 0o?ýp2æ|2gP'U
-Òe0ñö4ÃwìIhåÒË'¾2òÂËÜOw
dyȦOæ9@HH«BÈ\ø&K¯¤ÂÿL<öó3'$,ýͤE|¥2«È\§1
-N
-Îßþ5`M?!ÜXç£=ù[útÉjZ?6 ÈoOA<!ño. áyÓ{äW<3
-÷<édXsÞ'áÓ7³à¸ô¢?Í@$¿«g>-G }
-1rªF§Âpõj4ñ3®økÓB³2HD×±$O¢P! ²>ù[§E5>¿dR9Lßå+^íÃ×úbYä(ºû'S®D
-ä µ=\ֿŤËâÓxÍ¢J¤LfÁÒâU}k>Ye¤Ý±0J¢{½´°öneá"{SJfX Ê_¬ÕuðÖ÷¤%0ÁÏxpޤÓ6°{ÃÑÆ3"rïÉguü:Q¯Y WV*7éÿ3ï×3]ý"·%pa£h8â"Ø[Ä8#ñØ
-ÕZ=Lî"T»<½ÍþÖìX¼¬wGÍ28`.³Ö!]W¯ìþ¦(l #6Áû`e¿ãµxsÙ~Ӵͳ´ÔÉÄåØF±{
-§ÑßQ=¹úUdp¿6y
-±
êP#
ø\meyå´m@:5Xw!zgñ#¡à~âªX|rJøa=±ãfÖøS5ÊCTìðUè.»e *»÷Ê@1¡R®M·CE/
¡¸ \ÎÕ|ºËÏu¤/aõÝÐY¯È0±ëE³Ò
-Rà«pBQß0\åªf¡¸ÚN2YvµÛ"ü¸U;Ó¬N[ã)_ú®Wèñ+ß'HáiÕI?Ùryðwç7a\ 6
FÙ÷à§iäc¬Ò¶ÈÚû9Ó¸©N(dAfùRA?}
-å,¥÷ïÆY¤ÍFâ8;2Ð=¹U9ú;Ù>¤<vRÛÉtZ'ûO^ý}^îÞMöwÌ~ ÇX0f{lðFPoÞ/,Å6Ú½w\0VM´Sôp%xDZcCçdëÌ(èoÍ~|áÐevO»:àק§ïV ëRåÚ9ò[«½´³VJ~
-<½=©©úû}Ññ\¼*$gISîÆÛªåÕþÄÔô?ìLª× ·D+8ììò¼Á8.ìôµ«ýOæ:±ñJÊoO%²N:¹'ûEìt®
²»ïÂÅuPoím޵÷M¡F_õ%mã,/EÓO~±u?ö$û»+õs¦²ÚzÄ1×ïÀÀ ßqÌwùÔVUôD+_øDùË)S½`I ¿<$Û)Ã@WÀ´q{Ì:«%½Z'%UA¶Õ:ÈÖ9·l´í§¯0´ò7(QY÷NÑóý¢Bø¥,U{GzáöKkGìôLx@&·BtÈM£s,î"q[$àÉÍ²È GÂ-M#å Û5·ÒÊm®GTz_ÔC*Í,î'=ÓÊÞ
-ÉRÏ)³ø¯Ô[s? ±âwg×a¥þ¾¾ë°;êgm/¹ßVûWORh9¶¸¬Çq
-Ø¢2Ù<\²Øó½GÄJsËêi*h8XçÊJÍpÖá¶W:jGmØâhqXÁ5P\î¾U«ñ¹5^§°»[Gtp"×uBéÞ*þ<m@Îè(WèóH¥¾FZi!?±¡ª0 Óß DõÕÆFjöD14Æ0àûà¦3j·3öQkuÙaW5˲¯4QèÂLK§w¶Wn;û]tëLÂl$6!î±i®Ìze )´Û,¡TN]Õp?=fýt *×ikjcËkh~àòqoùàgSêÒh0ôÉ(EÿßIØþ>øç,_=`Õ{:D©QÀµÄ3ªð¹â>uümÅ"x#'·û&^(0ÿ¬®1(èPZ®OÌS;§|[ÃHr 7jÔÚ
-'¡Æ¾¢Ë.×Ê£¸5ês<l®Æ´Vl×DþÈKë}²R)M<4KühKÈê(_)¥N lxí§õ2õ·|Ø8ÊÄ|ºòPÕ}Z`ç
-4Q^æRsº\ÞRé¦Vú/i=]¾IP%!íQðÍ3ëH*ñq¾eIu$>å§
¸Þ½oeµ¹oe¸f¦åM̦\]ja8[ÞÔHÌdä NÁ§#ïHÑÆ )ãµkØ}ïÒõ!:&Vê9OA*C-]ËrPjjÕ3_Àg)jKZ!=[V0¨öq*8(Ï9ÆûX¨¡p*oéX×/N.nA®¡Äõ('°ï;e?Ð}LËJ[¥_×þMqYÍΠǢlôý#iº¸EÄ#eùPãZfªªX)ry°;¨·Tæ;c¡·2P0-®ê%ØHÕW
Öýêÿ¬Ä
-óÆS{KñWè5ÐçhÒÎHïß!Î7˾¶>dYÀµµrl®[Åëû+Éams
-z«÷\ý«ßÝ,]ØØÇÙW6:gÖÓà³\¾eçQxëéô¡Ð2AqÁ«¨ºjÆ£¡PJ±k!u#Ù%:¸hþZím'äåWqvXÒp«ýýç
føÙùó?Ôáj!üëß¿l73®ÍÑ*Ìcíï):¯1X/¶ýB¾UâôC_Ó5Ø¥^°tÎ,éóaX¸àL=ð)¾7éî×Jmn-;½ÁtYVG'.©
-¸CÔi*Oê3G¬SHomâGègºÈûÜ}$mßáß4zq¢;¥mG³CitÁuyYʦôK
]JyS}]nvÂWbi"Q&¥Ý¬VºÕ÷6®®Õ=äÿºúÞC°·¨êR®P+iĦéV3ó~Xó»á½&3sÖ-s9áÃ]×iµéZÛÈ/¸U@lâÚÚ
-Þ[ä¼
-ÞÚêMÛqä6<¡0GÕÄß4u?¤
-4ÝêH§DA9q=^EA¨¿ý1Ãw4á¨o7á4âTLrjgÁ+àÎYjf=jtTg3)µE>ÚSÛ
-4N
-*®Löë_ ÃW(µüËDjB÷¶NÿJýÕ_¿ñûaÑô¿ËÉ¿õ9rç"·ÜþÒu®i¾ï_avH£¶U»<EÉ*¾·&CE¯bȨ"|-Îû
-±ZíëRÒñUK©èÕÕɨfJ\î>,eU1Ùrä;y74|f×Ô½oÞM
-X^Âmuø¼üËEQ#»}æX>'¦Hîÿåúª+º~L
½JÒàÛþàÚºþY»Õx¿ÖÌ3ÚÔôúûîQwÈó~º·û5$] 4﬩RíYYÇ?XÖNÒ-~z íÔ°Æ¿}æP+Ô¬%=O[ÏjÌÙ¾,®Õ_çúù²îÆrvmÙ¢³ÿ×Î`?c½Â,äÒÓ¯Ù=/4ãÆPÁùö
¦
åzGË®¬ý\}ô?¬ÜѬ¥^Xm
ÃRvOôCm]ïÏ Ë#:¡VIÒ/¦gAénÓäÙ#*ÆÌ,µrNýûztî9môÑËôi^>å6»Î¥Èè9+(B§K¿üxøé;j,ÝÁ©üz|ñýáwn
+x¥XIä6¾×¯ðyÀíÁªk ä6IA!§$é@æ2?odíª$4¨mIoûÞZVGÝ}=üÝ©®Wð´5¸~ùûñS÷âßßo÷KÇ¡*cwÿµûæ¦;ºûûO£»LÚaz3F;
1Ðâ§Þá<%\à(hܽNºÝà1úIk¤úùþÝáz?|^Õʼ£a©¾ÓºHE¦²z|kIÒ{TMÓÖ5Ý@h?È6jêýèôä2èt`Aa¸üè*l¦Þâ~#Åg~À®ð¦¹nZæÃ1t!x@ñt6d·±«C)`ÞÙz5&hZ<?óó>ÎíCoÑlé
T8¨ØìÞ6
+Sƪ+޿Ψ¯!ÂÍeOðÅìòÕÄ
+AkiõÖÒ õmt}[ÂYßæÈq°½ØW½m<t¸Üt¸\°Ê¨Ü+Ûts£wåP7Õzõ(!&Jc`èÖ'*yÛuÌ' j-¤Ô0'×6`£Ú©íÎ ÀF¬0á9Õ2Í ^·ÂÕ{mÉXv \KÔ]¬t<²°Cn ôìbUº5I±÷ØU7«<Á
+«YØÛò¼Ø`õyðhôõh¨! ¨UHì DÞGe§û«ÉÍ ²Vãé´IU¶¡À1';'8¾,vq2ÖÄfÎß/1ýµkw¯KKsz¦|\(e¬Þ¹îÛ !´'jÖc0ö!?³S³Æ,ºd°K5s"
BÄ´ÓÖÙ×ãJðª3*
.vÎt62L<ÔØÜû¡úQÎ;®!î{®Áj°í3¬ÕºFê_®¡z«-MT/«gdæI%_p~]?írO·i%¾×ÖëG{íJH±è¢sc.§ûÂlk?
+M±Ð`Y1·]lô<0J(Ýà3æÁO[He®]0yÞÆå·Å¬¹%];ÌÒ5Ë/ÕE
+°
+)ÓçúÃCȦ~d<0Û¶¥§µQO槦'RÕ@»V¦®ÝÉÐÅT>ohÓ%©4þ´°hZ0ÇÔ.øëP]p åî)¨UÂûB
+©¨¡½V÷ô¥PØA8Âå&2BQCyvE¤Uïi4AEÐyFF§üzSµ?2ýÂÏ ²w~9m Af1+çí¿Â°ôÀÔ,zî³¼&é&ê>÷e³' 2.~ÅeQXËVøYû_x%áµ8u~¶TMyq¨åa5CÌSñ;¼âàLùe+gÁÏ»ÐAûØCF+j^
+GÊ[ySo
+l¼x£À:,+º$
vè£ì£úΪÎü6kªÂöÈXG$ÏkC=ÿ"
+¿m(þðþéð¹ûZX Ì
endstream
endobj
343 0 obj
-3645
+1524
endobj
345 0 obj
<</Length 346 0 R/Filter/FlateDecode>>
stream
-x¥K3¹ñ>¿Âç
¨ôhI0lÈm|/½ìßOUI*©ÕR·ç[ÌxÜ-©Þ/¤ÞàôÛËÿNêôªðç¿}¤ï_ÿyúëO§ÿò }~ý×ËõóTx³'óÜéó§?<@âéóÛ»ºÓÇÂùóß/÷ÏÇë~3£uùÕ¢>v!,LÛÂþ%À[ÜÁ>Z-Úi£/ú¿½òÚà·ÿ->]µ
~)ï²øÛgÁóú·ZM¨³ÊͨÛçÇÃïV !
-ütÛCa(^ë-tô/S»ðïß_ÔÛrú-Cþó_0ðÃé;ªGñ×NÌ1£w¾éfÂ7VZ ¥í²)¥§tV´fH(¢e}õÀC¾Å
-{9ð&®Þ1BÓ|ªÐYN¢ÛIC@Vk$çä´Qpp5ÔXf*çOBäXe:Ç2=ëIsE "[
-˵mlçÐÚ´Ãè1´¶/ºk^ÃÚ³+ñÝôî8Ê[r[óBå'2TýZ`*^*+~@2U%äðâViçJX%B*-ò9 DêÞ
ùyÐgi*ÉëÙÐÉÒ_d].VÐIç^ø
-7hy^Ûd42ÀÜΫÄ×àeêQÂN¦æmD øÒjý!vÄe®3ÈPÄ«ó¡ðÒðµf¸R
-eó*þZQ at hdÑÉ¡dÄûÒð®ÕlmàÐjl ¿Pºç2Õ<;ÍM/¶±ëN&çÖBìfIã`¢á¾g_Î^MýèÄe·JPL`ôAk$Òé~+¨^×k=¸ÙßÛ2ÅiÜÍc¨r~w;GQJJòL]©I«r¡qG8´æS¶¹uASÔ´RtÛªkßþ7¬Úÿ{Q\ÅÿÃRü+qF55}ÇÆke è-£ÉØoÙm
-¢ ¦lènÙVKÏ´¢n"²«.mÖÕ}Ï4ÃU\P6NML¾5ÁøÜ~ÝNÖ¢:kÌZØiEF¦+m¶¦ÝS³Æ³SLqYjA>%*ùb×üzÚÃkwg;ÙÆùºd¤h iùÜ¥äJw§é&Õ]$m$£ã>Ñ®6ºÙ^öYÅõáKÐÝG^Ww
-¡4·Z÷LcÞ6LDâij郞7ÁÉQ[<N¢
-g.YZäMÈ!»#c+}1¢¤Åeön'Ì,Ë&Á´÷Û^×ö@%7g%Öy% ]ZÛè|íÉ®[wPµtî4oKHu]DE%·Èû á´ºäÞrµ¢f/ä*ûFÕ¥aùno9_<³óò{5
-]û#Omè³{àitØ;õºK[MéX*j¥Á\päíß^±ÖÐÑ~>ò5ÆQï8{ÇÕÛXà#f¦ø¸Ù!nk6t$#¼ø}|ÐÝ~øÒrG§<r¬½ºWYh at oÚ£@Çp|uq]ó¥üÜö.(¬¡ëéV{T"kØ tÕG'åDÚÂÊÿßÛ¹rÖÞ?qÕåàxÐNXê¤Y¤I_$áé6ô}¨q½ø¯YÚðCZHJ_w
-³½óÁ£ôúãHZ°ü¸Åþ´æRòfLÏ>jÙØêJFXÂy|$±v¬¥ëPtýåúÜ .?fßú÷[8åÑwpà4~9ëÃâö¬¨é.ÎÍ© Û?õe¤ÎÏ\.ÝÃuuèÙ4¾zRëW~p´Ýn¶»rÚËÃçtD\ò^kØvVË>×¶ûz#läÆP{4Ñwɧ"uÙ^.©3;͵Ãx«Hb0.PåÜÏU¢ØÐuÝ~ýÖfúõ Íöðb¶Ö\Χísiªíc-µ;¶ODM
-¸M Äú=½ôDMöù;îÅìiFÛçïÔûmÆ,Uê1âê*Ð<`ÈXó ÊÓèºnÈ`Kd¬yL
-?èDõBqéÿ¬³}ûÜßæZs°' ò3©r4MSÀF¢hè¢üV_çzËÝÏB,Úo9Cx]X)AäôcË+klvd
Ì
+xÍYK#7¾ûWôyÁJoiñ´¹m2CÈ)ÉB6½ìßOUéÑjµd{B¬Ö£_=TjL_Ob:
+ìZغ@íçߦ?LÄÉüÔþ~þý &.5RNRíyûÀäèÁϯ-ád''ÔIM¯¿Nß\Õ~z}ûé,®óQA
+ÉËIY&¯µ5ÎZc/9a]¨gµRhåSNÛ«}ÑGÝN²C·Ï¯ôvh¡ Ja±m$«PdåâÔ)h =£ôWdÀØ0õ%Çu»ðÆRq'©Ë±]E]BÑѼH«
+Ê;ë¼,N´asr>*àÅs¢Ë½Æ¥*nL3-\XÉ?¤eVTR3ëqv
+8ÁÀ8k+ ¬LcÐC|>Ôq
+9´êÚ§¬Fãd¼Õ¥ZJ¢¸ôèÎI!jK0Uc¥B©TrI²FÚÑq,·ì6rÓ¨çíÛ
+t´ÞËg¥È¾Íh@G"+ùw#dv£°"z×(¾R_
+ïK¤4C¹hR¢¼ÚäÚá´âeÁ.é×% teêî`*ñBr
+:ÀÉ"/ÆÑªc¨»ÙÛ¾i³+£&«D.{/À
+kTÃÞÍ
+vµÎ°ÍèMP=u%xåèÅÀ%de«Ê»B6ïëU´6,÷nÂ!*?KôSreé@±:ñ6ywbð´¨
+Ì.mx±x/Â*ìSûô
+Þ2ÌD
,}iSä¸ÃZC®vIú+yÿ
+VÑ;sêGÏ=P
+¨F|)â³Uø=-ù3!2%f^bcØ;×*«
+}lTtYÄ]F£,¦Èkî
+ú¢çÐ= Ã`iñ=7Y
+qrt^nmè¡úXõK²Ð!ɳý¤GÐHÔc¿Önßo ñ¢éÞoidëì}lÙµ¢òH vÌbvøKYo)dèôçÒ=CIU>'¿ÓPb-õÍRj:üÞܰñ|f /Tkϼ|`LëóÃ
+ 4¢2«¥¦ô¦a{rÆÓF(:Z9O
+A Ù
¥¿<Üø®H¶¥M²h}²=Y<ó\'~y/_b¹ËçÐEeGøÿÔV·²W{úf-rN!P"þáôö!N!Â4(%ýo§èîs¼
+}Sl§>Nÿ
endstream
endobj
346 0 obj
-2854
+1597
endobj
348 0 obj
<</Length 349 0 R/Filter/FlateDecode>>
stream
-xYKä6¾Ï¯ð9н-CÓ0=ÝÈmBny@È6üýÔKK²= a¡×¬R=¾úªäQg=ýýòeRÓIÁcÐ~çÿúeúá«éÏO.{dÝLz±ç%¯« ÿ}÷<üõÛ°?»éódT8{ý1}ÿR?O6¸³Vëñg8ÔTk,Ö®ÄÚF¬]µX[µ+±>ªsÌbyTĦUSVë1-k 6×lK£J¬¬¼ZEl^#±³Q°@+÷Äì9ØõÖZEÅJë¢'·Èýx컵õÛϧîd?Îûáj½~æ3×°+£9eÔ¿Úøq6m&Û)gÑíýÅësf5Cνÿ<}ýÔÓÓû¯?^¿âEݯZ˳ÑW}ÑËÕ]ÔOÊ\zÿöåñþò©iÔ
-o[[mQáÁVý§ßq÷L-׿èxMê©p
-¢-)&Ð#LhǺw">bèIy,@¹ê¶eWË@Üýþû¶Åañcÿƨ¹O½¡%ÞphæÌ
-
-¯å-õ¼föl
]:ÛNr²&à¥Ã6ìuË2ÐÿÐÞhÎs50gÉfAÁ&ƾ ±eÚ¾ÑâëÕÐ#î,ÑDÁátq({hÞ¬Î]@ð`b#Y iq§EW)Hó]Þàg|'Ç_$×@l¼ZBE¿Ñ'HJ Ú/²Að}lHÚA0¢
-Hzæ
-+ÖT߸ʱ½¯W+I.'K¢QIìxðeÞ
-Q¦
-5Wt¡w²ÍbÓ×Yrh{ôpKh ?.gfãRèX"nÈt± jö8Ã>»R\DÈF%X²j»$1þn|¦t¨ã*í
-Ó¬¦ÊC2ó<£³ªø,55uýdMâ¨ÓkÓí#¯BÇ{ ®¦Ö&ÉiQ¢ÆFWög´¤ù ½í²ª¨éçy Ý¡=ÎþËZ5·FJcLiQRÈJÌ%æuÛ
-wÖN«C;¬*øùóvufôNj
}ûãÓ16e2ôÒ)À1¯ÌÈÜrc^| ÚëLþ$ý¨Ð,\~íi
-¦Év.ò?â-G.Ö6æmx/\-E´H>;35¤*ÓÏìn7>4L¡9s1xÕE?BY|Uri7õö?g.Ué¶)gª¶UøªÛÅñ¤;t¢ 06x:Ä
-KJ£¤Ü>Ä:ÈZ߬â~`
-ÇÔÁÁZ£¡!äq>)~)á.O1TÜóÈ_#%çwÛIá)BüYG¡KÃ_糡y¹ó½ëõ¿ ïFÈ
jjçäD¹TùìáÜBÅô¸åC¡QóÊm|ÀñC¥/|!59íFÄ4gDå+%ô.fQæl×gµù!&"úܺñ kh
-ï#æâ´|-«b±ßæÛ1iÝæ%ñ½º5_ÇH<e¯
-`E¬®È
-|ps>&Ç^ÇB BuËõúîÒù¹®jÖCmª¶Îâ]¿O¢´cÃw:ÄlÒ 7äÖSùßõÆ&íûÖpók¤öá?Ä«ÖéÂRµr©ë¡ÜÚ«P>®ÕUáËϸÑ:[k¯oÄ©v°ä?½ÎjtìµÁI%÷lŶû
¾°¬]WãÕ¥¶-Vë¨ZØÛL½Rj§9¾ÎùÏonþ#ÀØeén#$
-÷£ÖýÄ|)µµrÀ%
A>^NÙ·õEÉ¡ö@ÌKN¿ÊÍrafs^ƾ$ Y«wÉ
+xÅ[K+»Þϯèõ;zK
+Æ0ÛìN2Å!»Üs!är7ùû©*½_íöÌÌ@ÛnµJõVéùò/l90øj¸«]ñúû/Ë_¿-ÿzáþÿþëWö¸.G¹HËjÁoðØÏo/£Y4cpWñ®Z]l¤Ê)x$vTUúh;¢ÈþÃØ÷åàAË<øþ÷åwà-ï?<¹ùÉÜðbÎòdÖónZøm5^ÄùÀã]z
+Ãß9Üç:Y;'àawÒÆß¦¡uXC;;Û8ö·ìÌá«&Úp[ðj
+ÚßÞÿôr{ùÞHJµqëQxõ¹qLä6ÒëÝÜYÁ
+áÈ(
ÿD`lN÷Þ¨\¹<Ù5Hpб¹ ^Þ'òáNÚq%Y ËÖtêØ
+÷]~
+X$=¾·ÚËUÜåÿ«Æðݲ®õîqQ_ÖêB'½2ᦫx¾=iµÔS½_ !auô@/o´Xh×\o3ÏÐnàHòý¾duìK]øyÊÊ
+,LË£qþPáqzÌKtâÕxóªkðø &OÒúAÈUãv>XÚ$yêµh±ÆÕT¨Õ\²ïÔìZx½×öô½1,¢$·ºN¯23¯>¢¯Ë7Bâó¾OÞ½+ÈgTøæ·©Mö<¦è³3/o{xèEF@®½()²0z>²*ïµ@á*C¥j`68¤¦VuÛ9s q¡¼ÙE
7¸,å«ñ sÍFöC¾áÓ!
+N®÷úIHMDQéÍýÐA`®vlg`.j¥2p?gàÒɯÁ÷2üÄÕQÄ¥^aå®ÅLè*9|ë¼`3ïçïð©îøÇ«L$ðf$¾äk¶Æ÷µ«ýci&e@½±2óÿó_¸Òh0ëß-â÷. mHL6ÿ=·Å~åØé´ý<ÓÒ|ã¨_Mú~¢`úâ<N_\,ýñÒ¯BY¦áSÉô(hqÑøqXrºÜáÂ.xyÃË/¦òöH»¥î¦Æu"BC02æfÁ#zw$äe¡Ý8ÒWtMr]£ïIéYËk¼xuèÔpßá,zÅÒ.ÓIa°&$QxZÔôàM$¥o)hnj¾«ØX-'~eEôvÆcNÌo|Ù1<74|Gî©à±#
+?0+EåaÀø.Þó~6àtæ?\9}&¤Âh»Dr|¯<C&Y½Ô*9Å(uìÉÌo`À&Ñ)~¶å}D~)§§PȯÓå-º¡z«uÙf¢í@ù@éÂâEÃL¢¿.^zrÏÆË¡ÿE¼.^FÂîáÈ÷$¡«$ÌQ"_üªÊ¸OÇËÄËÓòûxʯfçÄå¤[aæøÓI; åTÃÍr¢Öêv¥dÚªöpHEROxc"¤åVò¸6ËÑE
Õɨ,µÞâ'",Õ:*VÔw\§¥CÎä
Y,ÔýÂH¥¥ ÍKÎýSkJX
+ØìuqzM<Ý:ÀCWËÆ´y
U¨ÄÀ>¯¨2£%ÜÓaÁT-ªU-4ª$¬]z?ZAjã¨vHò¸ô
+Ðå`
+ÝÂÔ/æoÐjÖÏáÖ£Ñe1xf²ûÐAæjÏx£Îê¤îçÅëd
+é=o-À ÚpÈ=@rí7TdM»âLèñ@XÌý½1·(å£d
+DòA<
+T_°Á#ÄTJàßNx©1|CQÙµDîZRúmH>ÚÈ2²ï#8¹ÃèÄ
+?èîÃ.l
+-ñÎʽîpÇÊDP&ïÊ[ð»0}~G¢=F#á^Ñpkw4j5Pñß3ÔÖÐæ¿ç¶Ø¯|24%ÍÜò¤)2E¢`E,+Ë%©UGÙ9+źÌTuÙÇ¡²bT£ZÙdz.OAÓ2·DXqëÔcH~ümS$_8ÏE¢uÈ52ÍS5ß~þ¹ÙÂ×+æR¯pt¥'¿&È
+|ôµëJäOïRwø
+rnè×´LÕj
OÓàB ¤X«ÍUÊ*ÜaÛÍ
Ö
+£ìG ©ÍîG9I±+HjMUû)³ X+³&O,Î:ÖèÑj±ª8a(ñh,M§8¥Êñ^só|)8î¹Ä¾,Sk¥Â'/ñ9n+ËÇ#zÖMòIX×àc_Ù
+o<3ôKZ=Ó«sÅÍ[]lT©¸VÅc¹êÍUèÍ
+¿*a;*Üíʵ.å[tü0Yt²é¼9)¢zÌãÝý6ÛèLM½à{\¢©ä¢n oijÿ`Zhj/»ÔFË~F*ûýM^-¹Z~Md+¶s 7ÚÕÉ¿jÝ?5?J¨e:ÿ"ô<}"&ºã4¼±§!
mÙõmpÉÚÝþõfîõ,:a+*0e¶ÄÛ
+¼;o%H; Cß¡nï#`Qõ[3·÷
+æTñ`ÝórÌj{Üx^"Å'÷<ªÉè<$¢ª£7?¶ËMÕ9Å#ðP¬ºGÛ¦jOJ6èg8öØ®N¯ ¿ÍýÐ
+¦Ð^? õví^q+%ùô0i}ZùznqZÉ&úS{^½ vöXÔêOkGG¨öå#t}ÃKÖÕúqi³é'û? ®Ð:BVgØèÙ6ÆzµÏ1<ºïð´,ìS>¯Øcß:ïAdoíE6[8àèP²[NÑao
+ËÑ#
E"¾Bv4§ß^¨Ü¯øZægry*Td,"ZýÏ[©éÏ
+2=ʬ½¥É<Ñ£E"Ï=hí¶Ö¿FĤ_\c7ÂÅu>Úܲ.k%L¾¤/»8UwÉ»qeìÄ3«
endstream
endobj
349 0 obj
-2008
+3133
endobj
351 0 obj
<</Length 352 0 R/Filter/FlateDecode>>
stream
-xå[M3·
-¾ï¯suEêc4aÀ^ÛrK»@AOmS h
-$üýÔ÷4³ûvoÅâõú(¿DiÕ ¦ß_~Ôôªè«¤ÏyáÏßþ9ýõ»é¿/êäZü´þýÛ¿^ÔäOC-âpZxÎÏß 9þ¡·÷DQñÛ÷LzÀOï?ÿtVpyųÂË+¾¼º³2újå«ã¯3½Ógå/¯ö¬~»üíýÇûË«e´i gádÃB8i'ëÀW@@P3xYó.oH«j&LïiÔ²ñLL a{Ñúo4æÏLÌEËWb4<<%II¢Ûð¬i1ÃB#K§g~4f¨ôKi"Ãrßyl&©EKÕ0y¦ÃºqJdò¸<åHp^
- @6wÖ@ë#iCÁýŧHKÊ0üg¨túú¼~EÓ¨Wæ"Ó
-Ig¸LË
tÁGÇïÍî"¤#òcaÂ;WѵP$Æ`^¤dyà"ly+|Ã#þOÞhgag4É
-lQzG3 ^ïYDd´ã§Oº¢güB.µEg¿ÿ{·õZ¼I"U¦½0uT.îjÉ_YQJ>VÀä7ÕÛëâÉVDØä{¤Éä´b»`¼~ìÅ<©ÂçíUàDqaHÒlUáO 8a5Ä£(9kG¦¡·Ë\ìÅ1)GD#
- ·
-ýÀ(V¢¶k¤c¨zZcÔ:ËE(zu+ÅcåÞu `ÓÑ 1l<;ÛF
-X"B¸
-5gEHºGÝ*r6àÆD],ónF¬A¤ÂH"ñµRâóW¢B½9¹¾¨ÉêÃïÚÕ£ÉXY¸Jk1ªØ1t5+©Ùøû/T
-ÍÓïñÕ¿§òçÈ3~<òý?Ó_¶É@»²T±¸JYÛ@õê'%`ÃÑ#e:¡t²ºSän|>º+Êa at 0xÒ+áû¶m(0_CPÊÀ<6[
-÷¡a)dD?X:Mõ2R&Zåè'ÄÿúÓËç"µ©ð+¥U¨é#¸1&ýL=dSOy*þWHPÙE?#%*Äå¡Nu$n"8Ûj%Ù²С±©Ô{xiuY$S%\ÁAN79¨<b@:
-kØYòz±µÃ6eשK)\ν!¶} Ë%Q®j²ªäùÖ^3¤,
G4fµÏxkuÍ0é´D ¯\OÑjå|ÉØÁ¨îÒì¹IHð
-ÃÄBQ'0éFÄD](ëÑÌήâz2ÐzâZÞh
-í©Å¾H·£ÑÖú^B1u
-3F@¨
-rqÁÆF.ð¿Ô|Û9]ød3f"Á|³of&wAí-Åpæ
-úYPøæ³RB¨j UÔçïçÐG'xÕÍî Ô
ZÏ«Ô^*K1¬Cq¸©¶áÈD6sº&jeá¥Þ²ÞJÒ¾©tSµß7¸WLÁ®© oIºÿ?¤Lc:vàÜCH!'74iLª®i¬$u¬wì"ªÙÕx+±ÛJ9ÜK4rpF¨^ÇmNÙBG:i÷_7eú\Pq¨ÊþñXsøZsã.¤¥ÈJoË&ª
-µ´%ÂF
-lQ7'¾b\&öþJOI5¾R9ÈN¢Å6Ï®-¤ªß]@Û3û»¸t^pä×¹ûÐ:¶ëú5 at .üpëzm©±BL¯ðx
-z³5.`ɶ°¸ÔÁ.13ðc²Y×1*¯g]õã` 3ÔWnº2T*®ô^G,ù;sY0¦XâaÕ_Â{»¡ÉÛJ»Åà1Ì
ã:êÅ ú³M»¥n1À¦rWw ;[étR6Ü][ÑG©
-âÝ(Yï<ôfá=g¬[2
-Iº¯#-÷%ÐÚÄ*à´UÞ)^=Á©z
-g&¬bÈ=8½YÅ7¼sïµ+Þdô~;´xç{Jc¡{¯éHû,ª\¹'Ivù»&&qäÉ2rwv=ݤXâä®,C:ú6+ËßAýj£ßðAOzÊ#Pp!ªÍq2!¹ÂUÒËKs
-¥°Ò"+\Óó0fv$GW]ñ=¤½o8,;'aÈèg³#
-´é³ZXÎÓAæhò¯ Ó[*ð {ï&÷¡7K«8
-&8ÊIÚ=ö¬8ddýe
-Öï¢~é§w:߬9¾,¢¿£
-¹é¾ _gk %°hØ
-c«
-£åöÀTø¾áÌ8<ÐöVøh`GbQøâ1DÊÛ×"t?£jZÞÓZôÄ|ïÒÍ@*HÔ8âd°4ËÊ_8¹ßï¹/r·Ë¤G\g+þÍw»FÙÙ`8O0cÂ9Íð'|^«ï7®YÔøîï-½§Ì{?i(³ó\ÃþM¡¹§Ú'þºLH^yÞò3CDxcåï9º¯d5êzë7?N
+xWM«ã8¼çWø<`¯>[Ã$±{ìaØÛÎØÃÂÌeþþÔ²-9Ö{aplIÝ]]]-+bݯËNt½À-I
«ñúó[÷×§î¿89à
Æ"1èøé~~¿\oßQ0íÿt,Rv¡{¼N8KnHO/óãò%Å_6ÒêÌV §É:c®,Ig¦gg7!þbÜa^aõùºk#¶E9ë!ôÙÁ<§ÕÜ%ô½C· 0s¤ÀAÍܽ4xvð»´?Û*aîÈ@|©EF1§
4øÃ<ÕÏ ¼SÙÀû~¤Ü+áÐB¡¸$ô]}w(Ð] ´âï±Á
+ô õkµr\ïjAnN̲o43hN¦zy
+Nª£-Ùc'4
+8² Ø^3T¦ÍvXÿxû:y2#6S_;õrÔ§¿ºÐ
+¼?;àz;f½ð S¯ÇHðî?4þ:
«ZÉuéî»Qáà`I!ÍÌÙzUÙX5éu at dr6:N/SFbT>¢Pð¬R5Jô.ea'6#[2ZÉy¡é=&ÝpÕéÞB³àEP£=VÄá^úÒ,³bÃm»VO+¨lY#×*¶ÅÈ<{ln.RÉ.ÚØ8r¼\ꩨͩfã°¦0Õ×uÞ
+ÊìñZ*òÛxçj)©Êuµaîѽ¹M(?¢JçZ]!¶GãÃSêÖÀ¾önv5fEÌY]
ÞA],õ5#§UP»Ü.%9'ã±¢¤aá@ùé}0"Sc'|-ݲ^ 4í¹uI_6ÎÖ°2ëÒÆ`9
+µú\ÄSݳcé¢9_Å}·ÞlG9cq2äpÄqáÞ>aï¸?KfNƳ¹qü
+þç·N±Õq* E
endstream
endobj
352 0 obj
-2844
+1014
endobj
354 0 obj
<</Length 355 0 R/Filter/FlateDecode>>
stream
-x¥VÁnÛ0½ç+t.¤(Évìv+``a·-v°^öû{´ë¤Im§]!DMò|¤PÁîïî#·'#ömúá¾<¸ß£ÐÖÓÏ];ìÞ%f(ßݧ#Ën8UÔ_/î8Ræ<K¤BÂL¢z=à)×ï]?ì\Å
-ÙvuqybÇ
-ÁÔ1n|^Xr¦
-¢nýZRùJ¼túÍËp>SEtH+ÈA:é@j ^1%ñf!tJÒìä÷v V-ñÐðâ³÷ªì!3»ÈÐ3¿ci¢ðfÀ1ß«þjµÔÂQkZb."`Å©GÛÝü½n`°ó²õî
-o%IÚ4§Pól¥F:½üY±Ãþu@ÿ
-ÝIÃ¥·yö¡d¥ÿo$¦µñö ©¼,fnñc:!uµÙgã{
-ä Ä*óñmzúZ×ûXÔ{©È×{Îi½×ùUÀ*µ¯(ÕßÏàÀ}
-nÆ+Áh
+xµ\I$»¾÷¯¨ó@·ZSPôLW|{ÐàñÍ¿ÿ¾Z#$e*«çîÊÌëK¶xË_þsW~´ çóøùû?.ùvù÷xÛðÛ¥ÿÿ÷¾õ>Üj¤¼Hñæñß"9üîøþù¢%¼ÙêM]>ÿ~ùÓC]`»|þüëU<n¯ò
+àWø¡â7:~°·WswSWØnûüóËýóå·<zÛ.Öm%òò¢l$¯}Ø»½#1k¬rÚ>ta uÂB¸BÕwxÇÎZzg´ÂÀòRþæ¯i%§oác7sMK8?ªxÍÆ{ãÑÃ{§òÍ]ÌæÂq)sHKÝo:<H½Yd!ürµ?n¯:~¶\ðñÓÄoîø¼¾"3
+Z!]GréSÀ££ÂÅW0eEw«{H¦Ùe¾ÑäóÙGÞ3x.v¥
·ÃÆ)ltÁ "ñáÄÿxÔÄGÞå¡ú0p#ßëÂFö&'*?ÿu DN¿NÐâÿ M/|â¹sYxe³å;gjðûïV~ÚfÍ¢
+&7å
+·´è¦ë9&3x×d½ÆD~ö²Û2£rlÒ4
+"þ®4oS×½vmþ|ÞgRmEMw5; ZÝànÙNX6¥Gqæ@¥`¢ K²Ð+)ªîD0tÆ{vR(í;ØÁͯðÑôÈÖ{êÕªGáÐåÚiSvª<³tB¯[ædع³å1JÌêJlÊü¸]ÅC¢»¬Ò§9Õ¨²SKºñ°&úceèD»TíBtçÊpBB
«&VÃÙ8a£×=N&Òeê+´)&vYn]?o. 'ÓAeÇ~p4âÞþG/§]ý>Ý»5w$ùBÔ+k_i|P½vmÚg:Àyw4óaKÂÝj+¿
=S]¥gL:é3hÀRg~H
+Ý!¢¦clÒ¡óxÉaóTº"¯ÕGi3oèÚ0÷úy¢½Z!Ñ/_¡D@
+*¢Yª¡Ù¿8N+DÄáñEdÏÔEyY2ü8ÆeÄÆñNÁHÐ%W86`ôèÇMç Üü~âoó`4Ð$4¡ÊÓÚ=*g]¯üH´IÉö©05sÇ(kÛê.âijþgp~+ó°v
+êCGjÊÒF®»ú@s²s4gé\è5í$úÇÖ<_eQkvb'Nj²´Ç¾D2÷L.W]£l'ÉÕϼlç«[+ ·5zR$Ñ)ÕàÐBáqªÔiÂJsôf(Ã÷£ä¡ZoGQ+¨xL²û@P£¡P3±Z0$99r+IÜôõ;(rP¶ûNN¢ioõ(MݳüCàõ a\79É(é+á´¯°nô¸T
+ÁTT2tq¯¨£¶ ,3á^»
+¸¢ªÆås:0>º¼q'KÅujÀScúìwýQqi«Ì¤¸
=$¨ûhî´bÕ;óÙÙ*Ï%þO5\lïÌR^UÞßòÉe
+¿|^êf@|ª×ÍâKîåhyëÑu+ BE¾ª;Ȳ,\Î4b4,¤Q¬ªsñY,Wâ})ßê\ýQë°fé
+É0Â>úºYóÆdãÄÃM¼\®jhE*²*©cÙÆqöåTÞÖîx0ßm©!FötÝúã8b*'K»iÁ ¤ûtv¯¾iüi¡2k#ZÄôaƹ9³
Ó3{rϰÌÀÍÈ$øªKnuçßKI`s?,B¦Ò4(êª $Ø;«å²Lç©S³U|9V+µùbCT¿%=Û·5
+«bÃ÷ò!ñ;0éÂÅIRnNM,NêyϵÔå/¶tî«(;ùWjzJkÈÅÏöµ2$âOÍùèãÙ1qéìÏ¡4Ým±´îuöádÄ~æ=&Û©}K~²êW°u8ô0R_!iõXæ)Ŧ´òÙø:¬Ð´pÍÀÈz oé4¯ÂԦܲ\êiþu¡îuÚ8Ê »kuq
+_j[(®'
+ÖAª°×¼Òû)m´Î
+/eÿÅîø¢#
+,ãï4
+y¼Wªßi"á6¿müÞ§_u`i&Fþ´øÒh at -î¦ÏÏÚ?ÚiÜe?(}Õ¿!Ø6§YÓox¡f:
+CR|(KúÁ¤ÆyAúíÝÅ£ Úþéêqp^ý´ÓU^ëg9
++¾³¹ Xæ£d}*Ú ªvU·øw¿]¢m¡qk{þ"ÿk}^ÍÚuÍ]Ͱ.¾Ð´ÒúgÂ<¡·g`Ñ(ÉeÒ0
+NÂàôÆÎjº?já&©HÚP®pqh}÷ñÜëBí9-äʶZ¯¹ãðÓú¢mömÚ·¥ãöëE¨Úþí(ѵffC.
+õ½Ôßãë £J!FO]æ\G·½<ûºÂ@øáÔrÌkZ,fðÏî<V¾Ú²û¬ÄÊ4U=yYøN¸ÿD8~·ëÌîUØCEضq
+°e¿4¥Á¼h.fÑ<;Íõûÿá'®´¬o²AÞ¢{xMÑtÑäÙPV6D
+Môvk5Ø! O`h)f·2²2eg¾Ðs8Ò%)<#ÛÇÏLò0Äøj¨³í¦GØ?Ô² ×ÀÔôçU
+¬w]E¤'â 0Ña{QW±[Ê
+8ÌÝÑÆwd¤5¾j0îekú¨(":%ñ=ý¤H*´ß2FÂ˸é3P¬O×g5ÎÙ8TïÉÈHÛæç·âýE+)ø×k¤Â&>%u5îúíò?Þ9Ó
endstream
endobj
355 0 obj
-629
+3570
endobj
357 0 obj
<</Length 358 0 R/Filter/FlateDecode>>
stream
-x\K$¹¾Ï¯¨óBµõN%
-UÝÕß|0¾ÙcðÁà½øï[
-ÅKR>jÖË@OUfJ
-
¾xGy³ÿ~ûÏÅ\®¦|LÖ¿ËZÿþöË_~¹üûyËѬù2þÿÛ?¿KZsy4:wqömc~üÓÕåÇ÷o¡Ü)szÿûß/ú²þbóåû¿Þ}¿ºqïW{3þýn&¼>¦úq)÷üÍä÷k¼õ}¹Ï÷¿}ÿó·ç÷o¿y¿%R´o±-ä.>Á:ö^WpÖY³Øk~ÂßWVõuâJÁ×ÞÌ!×m@ú/¶M[(ô7kÞÓÍ~Tú·Ë»ÕrÝÀç{ÆÛí¦±þ=ÜlÏuèZ¾Gýz3:_{önS¥¬iã¼ð%×9>
-`khëfj[÷öUî½-¸ò¶/Ö6¥Ê2AYÑäÂÊ-øë\YÕ
°î»Xíê|=¶Ð2|éQþ³ðÍá ]ey!ô«u¤Ó¨gaøá;yºáCm\2êÛ³ì ð@À
-'Úft8
-ë àt¶weEUa¡tz'ÄZÒë;nïXmî«@Éj·«Ðáüý46ÀSÝ3FàNv
-Üż¹ñ3§Q¸,q¨W>Àzâm*ê¿ãÔ_İñÍÒBùÛÖ?w+Æ7vSõí`mAnESWouÐéõ¸Uб1ñ|â^ ðÑû¨ßmR<UâhC5,<øÓ'Y²ºí²Ê@
lã2QÙå!X éI§áhCË=ë
-f:9XÎìtV§XùZýêÆ¢¬Ûb<üp'¿ä_'{²[äæÖ£?1"M
-~UI9°Í&~°ê«hE94O4#¬uÐÛ
-1Çðq(g'g¥Ä´¯dñÈÛU/ÆWθ7/8X´²éÙEoQÇjÇø,:Ú)µÄí}á¼ZX+"û( hÚ÷\ù!XT¢]ÏÃØÉLÚ7£Î|°§-o«Sp}tÐݬMáº}Â×Á^
-7?=¡e]6ûc5IóÓµFþÂÀbôÈeW¡g°È¦Ùø×K3aÏdq
-õJ;Ì&)!p.fÚõw9ñW¹ÿ´@Í0³¥À*!¯öû+ÈÙ·ÎPª²Þ¢Øö)$°Âú
HHÑõÉEã@¹CA:¹²,)xnÊKD´À`yÛ¾"Lå¡:UÖo
-äÎ ¯_ºCë1åZË2º0b9=Ѽêµá]z ïÂSTéo¢ä3
þjÑǹt)åëEÈÙvÂ]Qìmþ!ö³æWò"ÎIDH°}rQ{ìxb$®qzRKIHûìH[fØ*ºjîO-ÊD;ÕSX¥Q_MÙâ3So=Nâz< n]ûä[TH%y/qѳ&ÃSÙ²(Ë$ÒlÕ\Ñ£ºk§·ãÜ/õAÇ*)9)§ï5ÃÍ®éVNºYÐÆ{`e¥æ#KF¾ñÐ+ôÐà}¨ä£¤xûxR1ë"ç¸åc¬N°9Åjq¹ýh]/(fê³¢pÊïK½í<Ünp¯á8Ç8åÎÆ¹Í¡aò²¿zC¶'ϺÌÅã,_T[Z§(ìD µª¼R[Í»ô¶Ö85 6æÏ»WâEµ-׼Ƕ¬ÚÈ~ÙQ5aäUÎu êÙ(Bß<nqÀ%9kì8ðìNBÌU.6¤Ø9á¤Ã¶\r»1tP¢nK˵2P¥ÍÑé6?
- ©<ÞÀ]y¤TÆK.jOÑ6éõfµé¯ÙHmµ¸dGBÆä·<FéëVìªe:ñß`^V¥xÈ?Sg½K®âÇu¨}aú
-j¨Ð¥"7jMÒ騲Fä»lCÊwN}ckÂʺü&JeÔ<YôOY²Æ)ºgÉÓF®[2Ø!·ºh¿ÅìwGêL*¢÷Xõ\¢=¨±F¢V»Çt<"G«\®mFçCÇz7(5@]ÈäÌ
-[ß=ÒÙÂ=Õ´@ þb¶qA§ßýA
-y"ÅWåÎùCMæ6°s¶&§ª/hë«ÝòÎ.¨°Öo¡ó6EåUÖÛï²Pѱ·¢ñÀzÜWE¤ê5&k0=9tDè\¬
~&.CT©uHx0¥Î¢÷>KgC¯ ÈgÑOa²eÞ°·a,«ù¨¥WÏ¥~Ø£îí1Ô÷eyJ+èlÍc
³c¹3#Ú(³ jÝ&.pêB·F_Ré(ݶ´ÕlzûV¬¾l£NªúKBÓ
-±ëCc*¼aR[ÛªulºsÎê3^N5Ltoé,Õ(ÙÊà¨t&ösþY¥¢ÄóêFx Än¸ÑªÎÁ|*FìG&Á?ÈÙMu!*q¡.Èô)V?ëòM?A\Gr2ý¦Éì´<)cMx9EX0{6Lz>y/*Öcm)AÂòsN=&Ýþm95ñs¬Ý05Y¯=uw°©NòÉë>i©åzóa¾\!Ej´«$T ºÇ(ch^ºêg,ÝÆ§wJ:®óÃr,ïë
¥cOhÂÄ)\íß,Þ°rîuÔ7d,&a2åÀ@ÂB·;ng´qÊaHQ";@¯óáAÅ
é]T$ÜÄEÕ^nWBÿu4u5üqLÃ*9ÕeCSüÓ¹m'ZG;~õJâÜV:ýÕÒÛ8æS`Ø8û?i^9wewWúypvgçp9uáÜæVVºw®Ëd~°/PÅÊ[[Sg8µÂ*s$8±²$/ñ¼^½Xo§=CA.ÕËÎ)Då¬>ØSòªrêѧ~(;»dO-FtÁkJ´¢×Dùâ?¨GÅɽ\ì§¹0Ps\=)Í9"
n<Lû W%i¨#]®Í9xC&5Se;¥Ö¥nØyQ¥³W»Ê¤ÎɽõC®Ëµ« ¤;ÛÕ:UÐëhõyo¢r'
-Ê.ÝæFj?Mºd0$«:µ9»¿4¶ZëUqwÊgÂ)x;÷ñ(¡õÙsNcvd}5Y
-úµZZAÌ*[;VJÉcËQËõôïÔÌQôo¶»ÍØErÆZ¥éçVóÇðJÂq¨T¹Ó·_éNÅ¡¼zÓ/»>ï¢î§aÇh°s¶¸Ná&·X×S¯C#ÕûÑףŻÑTëÔiVÊxûîAÏ,EGÊØ>DEìôùbîØlÁôBÀºc:pr
-Øñ94*¯ØmÏ'?fâ*,óËQ¯6^b"5xc}MÒ'óB®²]£3kR|UNwʲvüýó¼Ût=Ã{öÔ¶ÆîÕ§·
-;s3qúÃ
-V0ö]JÖ¹' uRÿÎ
-%}-ÑJϲà×TÓ·êþÚôLUÝðoÀ«¾-Ký[÷Ä'ÌÐ>?
-åßZ¨·ð03aï7mVÿ7¡®rxpÁðÁ&4*¬p2Áï×ãkt
-'ìkm at YN³?'ö~Í
?þ6ÌîOm
-¯ã¦¬PÔRpôâ¡¿ÈO%°
-O¶-èRlÁxý%¯ý/lp×Á;2DèÉ"óçâ3Û£®±³ói¨Ñ<6ÔÚdjÊ.,UoöÃn?~i·
-\Ê-ksAª)Èn·~½üàV«
+xÝ\Ik,ɾëWôy at rîY ¢AK÷Á·Æ7Ï|0x.þûÎÈ5"ׯf çuW®±~±Ø¿üçáßvydþÿi|þöËå/?]þ¿ýãáõã+ùt\,sOöòñ÷Ëîöâ.¿>3yýøçÃíãáçvát¾pîgüõYݯêÙÜÌÛõQ=[w}tÏ]õ³¹û_õõçïþm$|Z£~ÇÕâëá¥t×ÿbnÖøÕ^ã®ÆïÁø<íwOûøXdÅõQ>>ïéÛ»ßPGoòâàD0Ì?Òô"ßÓÂÁÒùâîqßüÆú¸òÙ°h¾ ¸]ÿöñç4æ÷<5W\5Î<«ú*µ¼ògåibÒ±ÞêQÒU¥Aâv¦ieOá}"o/"¬+G;%Bi³H]ÐÐîV'.å®HK§»'^õ|¼ªâêYéK5Ü$éªSE54ùÏO¨!Ш¡0/!èÊá
+¬iûkù%>_6QéY!¶Æ.Úk¡Æ[þ¬» ¼éLWB¯íT Ò
m¶²ªÉ3í,&"uÏX
Å Òrù¤Ý*¶O²¥Ùp£ÖÀa*?DrÄJ§ß°O
+¿CvBzë%ñµ¸¸pî%¥_ðñ?üÆu|0[R ºd¡TñPS
¨
+KñAÿ@B?ò"ãÙO©ÞLx)ÖÖ5Jä¿wjÿ98ÿîº[QòVÈ5J{bs`+㫸4z"á6LXÙfb§+ÍZ$1ð#Ù*N*®xÒZ3þcÝ."çiå7Ä`@ÿ.*Ra q&X0
+!§¶%ÈÇÞ@HæmRc[²¼SÙh¸¨9XüA§ªh;óÓ¸h"ÉX$*có\Êvu³Ú/3>jaOv?_j¡GPæTW!M.Z¿5CYU!îXÒ2÷¶~ámÄ¿[à-ì7¢`ýJÖñ<IfmÓí}²Ô²
+¼Ü)b'S¼gÁÀÉ+ÆsÒkf£TûÝqÈß ¢'ä`L=%D]3~îu¿åÞÛL>éß}̤=ýÿ-©¼õáz$
+
Ó£ùÞù[Z
+ ZUÐÚ@5JHJÐO ðÛl];c·§º{å¸Ü/±í ÌlFPIy/¼Ë\"{ªÃ|v*¼25 Á¢,¡Bcð0j$E17-.iÜ
+ÙE7Øê¢`pé\uÞQ ¯]í{ÒZ²^¢h.GHa±ÏB¢Ä@>v¥ë*Ý7ܧRI$Q´ÎÁðbÖ+:h5Sü-Û%f
âð/
+M7¬FìWÉ%\ñ&®+
+ä¿zÚ`¥=òÒxø0'Qʵ¡Jq£Úä;nl¹uËy,;
+8L9ÇÐEë£l.ð±Y-;.H^eãv¯)z\®Ý\SÒ;þ6ªËtÙÛe¡©dÇñê gI¥¼¾t½lÖèt &bñNI4Z6¯1PÈ0ÌFÊÍAÆóDyøVþPùØê:¦ZãÄåðë,®³ªa´+ÙG[ñBðÑHÃÏgÍvg\"OøWÚªID
+ÜF²IYWÀa>Èue¬Å¦ØhÑ!÷ô¬«®U-DOìN(ÞEXÊÒ'PÆT,ÿÖ6x¦Ëø®¦¤\yó»¦ßCå[uã}ÊU+e¹D¬*4+c×ÊàÙ1æel·r;CÙ1
+Áñ
+b¢se:oÃe[a¿7¡kÙìßʦ<zòºwÄÉ5AâÆvâTûÌ
+!7Âý·©>
+ ;t¡UtIÂ%·îMªÏëű` nvÁ,×¹6ع÷[¨¡ýû$THwÝ·2h©Çìk³KPÜSr+B÷WשwD9G éÐr(²`é3öãs˾¼öïÕ%
+rçê!?Å'¡*MÄîïBQû}=C9
+HsÔÝ5Î5¹É2XØxx/'C£K6ÝlÃØª¢¡2$Î!#WÊ@o{M7OÛCW~Â
Q¥_70צzO£ô¥ÀÞ@D¢Ø«²LyHºê£¶áG¾Ã, i´[H½ÃáRÎ6tRܱ~çÂðã*üÔÍOwvÅIìaqibúRzËÔL_*/ΫÅ%¥äjÞb¶¦ÎjIkb6Äíá»Âi>¤Ñ4z° ÎÉ?®!;ºd1z·Ñfr4cc&ïÓqÇU¥Ä²%ÛU°Qê·M:
+"s À
®ùÅA$ö«æQBû´.I¨
ÏÖ#^UáßÀIHÖÏrZÝó¢I»kØCãû`¸4zRmÅRØ.Ý1OL¦<cMJbæTáÎNøÿ¨A§SCm%éÍé
+È"üÓhR¶ºLOyÇT®pæúCkzܪཾDC¨Ir!¶ûnBä%Âë9¾®ú¢ßQßû.¡+Æ1ÔßwBQUKl&_ßS~K}ÒrÚÇ} u\ãù®ùÍ>#NxM¨v½-ùfsF^®m·i^Ä\Ùb1úÓÏçígøÍæJ+ +òBèÊe¶8ëc_u3ºÍ®7ü¾+²O¦ßI=tØ >·npº
®Eq²¶oG)&¸<é|ê¸utµúÅ7Tj õ\Ëlû&Ë$¯WÞê²zh§©ÌãOªÙàð/a¦kM×hßýÉýʸÀ×$À{åå䪢Ã÷Rso&öê2v+XFõ¯I¢ä¯k¦nؽDMwcef«)Xgx|£õ˺>ù§É¾§¼Ú¶ï4¯ô .ýgu8Òôwß
+fÒÃ36æ¾øªdN6ÊÐXÓ¯°JÖ¨.¯ùǧí³Ç¯¥Üâî§2t
+*mgìÍ"WáÿT3uB
3pzòR®2WN} á³gùúü^ÊÐ
B=òe
j:¿
+%È»õÝ*Ô0?ÿT¨Iÿjz÷O(Ôø\ߣPü0ùås
+
&4y¸×½ð®Dt?<üø$y at 7oOÂ
+qÛc
Ú÷Bµè½ü«*AÁ
+^ r"zuLg 2uÌie½ð è*ª)Ë a\TÍUHÔ¯fÎ(æ4¾ÿ7(¦Ì«Ó¢gÕRi
WøRÙ=©uB- ÷&sÓ_ѬW÷¿WQ´vo²Û¾KQ´'ëVQ¥¤ÿx¾óÛ|Ýüîç}Ýä\?¬VÌ_ý_nº]©^ðUBM
+Á2r©2Gdoóiá.YD
ëþõ¡ÕçUfªzÊE'¬
+¼&ð^ßÙÛXܨֻè9òßb\WÍ%EÇzËhM'zµðܰ×X3O#±Xè¸àﺶÏOÚʽü
ü.¶ê+6´ØYׯ´OìC+RLFûfÒí»½tä6ºÚDwð:ã0j¸ß'.QÂ"©)ÆþïsoÌ/ï¢Ù"¤ï§þ&Xó*=}w#æa§Vª=ìßëÂY ååöèáÑ<3qõ4f~
+àÏ/Íàý"x
+ÿÌx¼ÀìüuñÐÈG×É3åÁY°§BÃB½Æ/¡EqZ¸÷h¿0ªsúijË\(þ¸=ü±
endstream
endobj
358 0 obj
-4406
+3742
endobj
360 0 obj
<</Length 361 0 R/Filter/FlateDecode>>
stream
-x½\I$»¾Ï¯è³¡ÛZRÊL(
-ºk9øfðÁøæ|0ø]ü÷-Å.)êç
ª,-¡/EHé>üÛ¿~üóͽ½»ò1ûPþÎkýûË_Þþð·Àõß/ûñõóËÇú6»õc~ûùç·ß>·õíç_/Î_þýÇãçß÷Rn;ÌoÞ¼¤é.yÉéúî/s¸¾Ç|öà®é×ëût£yâkËü¸¾¯¶I¾CCoð
-EhZ>ûx'ø¯tyO°ÀD4Td°:S¡çÃUò£ÐBV-{$L4N(C Ò±%-¿:â3çJ&~ÃÞÈ¡9!º¦Ò:XjçùÊäÓßÂ0¿Ð"qA2ºïÁ®û§¿Ûnrî#l·|¼æÒ¯
ÍøsY=p§|ÂLá±Gâ1ÏîcùM!`
-Wå/S£âÐ'bÚ$Ü.
-øY±ÒàÊgmÙ°¸¸ôx}À.ù9'¢&C.®¦Nò¤%ná:àðpAÙQRéMJ.K!X'RUoÄYÐñP§¢ÒGüèµþk'&¥Eüåob{C*HD~C'ü/¢ö¡`ú¡¯TqR¿LLåßÍ(å"4[ËôÝóALYgÓÔNp;eD4>-CÂ.ñÇY°RýoVWaut¡cÏÄÿ1míÔÄD_þîR¢Úâ-*i©ÕNÈð^MçiP7ÔK¸ñ8Ux^P±õ¨Úd\ʸ1
-EB²rFZbTwÐ jN%[¤="WÒLHg>Wk(ÙïÁÏiC´§`ðKQCT%QKü7>|"µNÔ̱rk=Xåbt°É²ayÆý?ÍwE$9àïHiÄÒ:ÞT!>x
-ôºÍ@¬
-;°í."½tb±
2ßrq/ãÄpquzq©Îï*3?ósÑÐà+'ÊÇ÷ì¥q¼ÎUuÖ»ïûÿ3´øä
-æn
¥aùiZd¯úûÞA|]qN+O«|BÓöÝ£~+½ÝZY\¾Âj&ZB'\åR»%Ermð)Õÿ¦YÚ}BoãáÀ®á
-`½~JÊIúû»]ï
-ZÏ0,fþ{dæMç
n\+ 寿ÃK
-Éï'YâGî ¼ª"å^xêÓ:*ã&DÈ+óhh9
--Vi\×¶Ø÷S_1aGÌÑYñ%󰤫¼tHû
ÕVêdj¾ør§ñüÕ£:T&iqHg&%¸5C(á2Ëf&äÜQb'ÄjCC*J-ÿBïm§f,Þ+EÂÝ¢npGèÔwÜmö
ØÊÄ5îBø5ut=EáH>¶Í7ê&}#PÙ3k'«#ÄmF
ßêh> 0Ë
-ýè]Åõ
-TzªµòP-]
-1àÇkÖtcp©!§òA
-en%"/=@YØÀÌ)Êâ4ÄQ~a
L©¼¤4t«44?,ÒfÅQËÅ
-ëzj¼éÅy¡-)Î$È7óÒMI(}ÏBKe4ïeê:Zë5Ì|4VuÖ6 at oVaó
-eÒXª;
×>¾b°òdÜxöj® Ïot×umðâôFÑUÙ1UǶkÀÈ)ªJ¿>`Uawæ¡§ªIÔS8ø¹êjÕ~ÝQ'M£Å<
-jÂ
-o/7¥Õ*!J¬Äo3of"kóÉMCÆÈ"&lb
-jÓØ}¨§%ß©ºwYßol}M¶«õA¥µ¤&
-bò^_cl±Ì®æa|lÙbUúZõ`u9ä¨ýYð@^¯²¦Ú¤]âdrékxý¥ä¿h:Ûv:çF&rÃÛ``³((¨jÃÃùÍÄa´8¢å_9û\»ÇÝ#!;)§t6£ËuL¨«Éô¢µY
-qÖX`·K÷°IÆ5pgn&ðÆSé>Úxj>vés3c¼göÿp ÌCÖô9ÎcÃ4Àà8)ñÒohh·wGaÙT"ÕÞþEC[²8m¸ özÒÂuï¡8±IkyÔ©ªìeNSût4@©7P6À¢_µ%éè(
-¼
-í:}Ⱦ¨/v¨nÃÕβÇ8+L`Þ¶ÜàE6OµÔß(@à$c}â$Ýf}[) hlå,æef×X°ÆÿZ%kUr^¤[ÒvsÌlLEbÁ,礬S[3KCUýÔÙJîS\¼lê÷
SeBM1Ò(6ìiÒnç;×§Ê£¡:V9ÎaqóU%!»¥siè$g
-ï ½×³4;GlÑÚUÇ¥«Q[jUèi÷ΰcåf£û°|U%ÎÃB´<$úd-üvÑj_¢^¨v(:6Ü2z®ª¿îG,¡/®3¨³
&®O´0fÌÀÏи9ö,ÕhSfM;×
-ùÚîâeíZÕoSüg1Õ;
át=vJÛ¸ùsJñÆ_dÛÊËD§Uͺªa!ÖPkði×£Y©ÆWÑ)äl³¤~ÁÒÂgÃ)|4nÿº=»*£å±=®¹wËveí|»IZÕ-¹IP6Ç úR%Hö¯ÁO³WâúÂPbk÷h6$:µ IÊ
-QʧÊÂnú%*ìĽ^Âç;¼§ã: TFØMª~ÇÂî$ì'Ûí64·FMb×ò¥Å²õ[nÔ$X¹-fäÞ¶HxÏË')f°I)Û)ÍXhkhÑý&µA2<8wPäòÒy\¦Ëi÷òÇæi@Ê)¶²c+N-ÙCJY2ÁAû`n¼S
-_E =æ?É»çfMè{Xã=AÅfàp«'ÿ~m!`áAJd¬ð8ÕQm½RöÀÌøÝêòÀÈÔuÕ-o/x ÁÚw}áÅ7bB©eKápd'Ê6Ñ$)1Ç
-3@åTaÂ:îc?³)ÆìV9Bå(&ãÁáqe*9ÈÉ¡ÆÝ®z:¢ü*ÅP<Öd«|6U¢ÐR©Ã« ÞrP×[fkG6(#/¡²úÿpÔLrhm)ÐoWÖBYmzBI×Ρ
-Ë'»0st£ò
-l§°Ù»=\âÍ>póLÂUW§Noõ<eì #3zJÑäl1HªÇS¬~Û®5¬fÛ)PSÜvl<C::£Ì:IIlÉëdþ7ûU$|kyPa±çÿ!¶÷]ÚÈläê¬Y59µC+´Ö^ÇüïIZìeAíá¡·q¯©ÞM6úAJRÊ
-¸8CRXÃG¶¼IZ58ÈbwY2®lYZO¿|ÈÇmÇdLÊ@#"¼/SªHÇÍN$cÎF©´sºÐ¼0!/Øj3Φî4»Z¢ÂN²Á4íé(ÚvaÇ`Y9É(ôS,nÜRúZhÌ9Ù·r.SK¬oræh%¸ÐaìQ{Nñ["1¡sw$~áïñRA5ç@Åù67vµ VSg@ûm
-fnÀVSºÄu{²&\Ó°ÍðÎ
-2<Ó
-¹/÷aÃÙë$ôupköi_Á1'º!o^!Ò½CûÛ÷3Ð=^¼pûµµ@R®#;ìåñý÷FÄ+¿Îâa_ãмgï![Ò÷O9ºz¹¿ÓÁn«s4`7ßdò°ýéÂtÜHb~N|²é5J
-)ÊV_ÍklÚûÕòÖú~é¸$#¢
-©}ÙJt2/Q0£Ó»U¢{é2¾çfß
-+¿¦B^\ñDðë;O^ºïßÅÚsú¾ù½[9Ìðë[5µ¬)¼)~³»Ï&C-9U TçãfÙ8à¤U̬»ûáõNb
-^¯'¬
¬>ÿb·NÃö=õÈ$49¨Í»kzã¬}O"0ùªM@ÒîSúÛ5Z¶Ï«Zàq¶ÃÇ#K0)¿°ÃüX¶Ê6·¡jÍ úh1^wfGÖkФf÷M9 3t¯&_(/v¸ÌY:EØhujûÒÞx¼åð³$¸¡.ÆWúqz©jµn1øS½W¸C|[ØÀ¼c²(ò%,#å+TWöÌ×6¯÷|]# 1ëA>]ëå \ñÁÆxööáåïßþ
-$½_
+x½[I,¹¾÷¯Èó@µµ+EAw-߯nðÁødÏÇàw¿ï¡5«ß´ÍãeWfj ÅúEHÉ^ùöëË6¶ü4\ÀÕ:¼~ûiûóÛ¿ýKü÷í/ï/\W³Yf_åöñ÷íw¾qøõó_Îj¿øÙ<.½ð³`p±ê"ðáI
{#ñ~¿È³áøë¿,^4Ü.{xv2á¡Â}ð[ÛòÌ¥ÎJ],mÇó[ºµöãpL¿~üáåþñòc»j&^ífvóªÂªõÆyXµ» »µû4ÐbwñÖ^μ¹M'.ñÅI#ÀówÀl²§¦Æâê9áÅÃUõÝað×ÊÔÞü?
+
8<ÙcGÍ_¶£©Nãë@M\fTQ¢§´Â0͵\cs
+U±+ëL#dª"¹ÅÍIË©x5¸ìÑìâ½ÓËs%;3¿q ¹Fô?®ä#dÕdµ>âÝ-Ek] q9H¡ÖÁk.«ÐI§åªAO<ôiÚè䨬ËÇö"®X¢éØ@dX<*®
2ðß"r#µT s!¼×¡EëÃÒÊKr8É¥_§KãµRû .UhµSÄ5znd'¤1_ñ¹( %ÁßávÂ\¹sʪâé¸<p 3o Ƽ'ü&±rêR4úìUÙç}7}Î>3³V&æ^u«N7âÐüF«,¦xJ¶X×=ÇHh0ç
\¿pãíÙ%o¦{öµD{ÛAò)§À0ú¬.ÙÕð¥#ñ§ZlçÍàôdÐL#,îÖ}äq´3à©%É®»2`MuÄdGµ´[y`ªP2ré33è&ÔÂ
+$8ä²Mê¤
I)gÚ¥y=ëÈWD®pBÀ¬ýò=ú¢`K|`r¿OàcÒ¡àã7dcpÕ =]^DÊ{É*Dîm°IýYp
+L¨ÐuìD5¡hi¾³VKG)éÁ,Ø+XQ¯é¬²îð4^Wàq'&_àÖV`e å¡kû*Z#ÇèQÜAâú#JæC7:^$B-?¯<ÌdÔ9à°ÓR£$ùDh
gÆë!§0d_V¸ý,8V)g¼§19y¨:pµmÎñ¬æÆëkâk´@4ººAÔ_à¤k´.ÌCjI7È:.c%[¥qÏâ
+µp6=õF²¾óDP(Þ#<eµ·|®3fMåô½÷ÑÉù8|Kem6
+½ØOÆÒÌOKIhËHÄþOÏ¢sÅõÏsòê¥v(gnàÚXØTñD_ËüûZíx4¥#Ä:«Ðu¢\úæÌå¦ÁI×+µ¿¸ZfeÝwÅ«¨Ã"15h»DN¿=â
d£ýY¾OE³}¨,êÅd_òÜOzÞŨÛHEÊ
¼0ܪ&! °jJma²â¹hz*|jÂÉz´Ä©©Ñ)èÒëÚÑJW0¿qãe|¯®HX¯%¹]=غÕ=ê-TÜ$¸;Z2ÑBJéZÈayp»í`
+GÚ«ö¾À<õ6ÊPùhL-ò Ê%Å;qMk5ª²Ñµ~W«CòÀÀ[ÅüyòÊ)FuµuQøýÅôLC¸
+Ñ
+Ñ4H-:ðý²Y
+Xîª`÷¬«-®ø]m:íbNUo¯Ñ}¥²Bß{5¦ÊÍkÞô½eg23³dæá(ßém·)PÕÁî߯A¾+0-PÃ-ØÑTv±>qf vd·zÄÝ õRg¥íkz~Ï»ÚÔJ±Ó¸.×ËèNW ª¿õÅ|hYÙµx
¬Ä8´)D;
+ºv)÷|"§ªÒ I}¢,l~$¨Â óM©SE4ÝRt[QÀ
+S¸8õz ¤-ñ`û¨â¨Ëò9ÅOØ%wiHÕ,Ëåà¶ÉpÁó7]ôÅxÆyÀTCÄWñÆÜe÷¤©øTù£
+L §Û¤íYSÀ{ï$EW*o(
+ëkäç1v]R:÷Vð$³";àºg®R@¹Jî\ =ϬFà¡Ï^ vÔFÛ®æË, a°ê½ØrCÁÈóKZõ@åVr{§^D$èéUQºBHHï9JõþäÃDÑ*/7("9¥ÈØ$£¢(^Åæ¢d at U£Ð*Sͬ¬$0bømkJbª¯_4ªDp=Ëå! JÁ5ûÜméè{àZár°ô'ÛVT}{~Q»Üºs\2áªÐkL²ôVÍ"ÈhÁåæÿýɹØ(ݤï_!'NõêåP½$ëÊoÙwB6úh%¡MÜJíé]¨vRMXYÍg'ñu!?ç7ZÓ4P*ßVÎ
ÌÈý|£³ýí¬ÿ5óÇß¿°íÄËü²,¸ûßÿÚþÔ§LÃÉÑN¬iQc;ÒÆxÞðåáteAÁÝg¤`pe3Ú
+a¤Äª² Z
+ÈL<Ó7<]!JD(¸ªÐ;#
+ª»¢>Q¹ïg൩õ*\VsdÇÆdÁ×ò
+ é¤ïÈp~kÈ,'uMV½¶ÈÏ(a°H>ù$@å
äëSÞ ËêTèRENÊ)ìtLòÅì¿_jµ¿KºH´&È£e§Nú¥Ý<l[hi;Ò¨®ÎµD{׬÷¼
+ÜùN׿üçs9$Ì*Ì l£5éôíBmD§GJÃë*ËGj#q·,ï;q_ÜJ¿Õ¹Y©t
+Í#¢2ÝhsÿðÌ·¢?q
·ÐG¬hcÁlp§°7¢ª%¢Â#úY|zhV·ÿáñ,×Ú[ã>[½=@}\fiÌÉ<Z~|®y#Cºp®Þ>þA®#
ò²@þÙ m±1eëµkü±ÇwP½"e¼ ÏþOX~I³mÉ[/k·m6ºÅÎ
+8ðç^ëWfEßÿ¬iM9N1O7n«ÙÉm"\83ß3pôcaXÇý°×xNWÙt
endstream
endobj
361 0 obj
-4534
+3321
endobj
363 0 obj
<</Length 364 0 R/Filter/FlateDecode>>
stream
-x\IíºÞß_ÑëÀéH²z8^d÷àB!»E o¿I5¨JíîK¸Ð·Û¶¦ª¯¾,Ù¼ÚÿþøÏy¹ük´.ÿL[ùùûß_þü×åßïÿüñþó5î5½$[þù·?îáÅæßþñ»]·ån¢ùxø»Y7w7Û#æ+ÛF>·ÿðù?s7õÚjÞòwûY³ÚrÉD
À
-B¹ûópÉÛ»]rÏ©
-Ê eï¥oû^{ÎÅZ,¥|ÃÃ]ï&å6zæáZ¿ûãfm]HHüÍsçgpwX®;âµ|?FÑz|'Ýú.êBÌèW!:vny>ïê½t]«6kE[rE^|'kA¢ðMp)Ïè¯?ÿôãùóÇoPs¯nÒÁÏÍZ
-Jj£µBÌãÊ϶¨üãË%¾teãªÚí[}
-VðFª÷]·«ü¡¡Ñcd¯ÒÃRâîɽ±åËÎÏ#r+K@´ X¿{ÛXFU¸}fÍm¬ïõ`ý]bídaõB9$Á2Â;ÿñÿ>Á çkkx=ÖØêê´Ê/Òâc£¸9_ß~JkBw$.xÆeQ.on)C8;h+ݪâ° 7ê¨ü^æMXÓ¾vÁ]iRn}Jïy8$ëOÙÀh®ÚD]<
-çUc¦§NõöaÕjµ6ÜËOKbÞ$:BÁNmP*
-æ7êïØµ+ËÀp08ÜY*dÿµ¯øQÇÁo|w¿pªð,.ïìj8¶{V×q8µÜÈÃÔàaìEI¢ÃøØ×0Ó}îåTóyõæq.±Î+ÎfÇPÀ%äe!M¸¥\Fôðþ1â* -Ykú®He¹±QÙ8
-;³m9Rÿ ½6PÈJG¨æ¥âè° á3¦#=û-f}Z»Ô³M½³¤¦r¹ëĽü[Ù4Oùø
-Ä íû(jÂ!?@Bqg:Ö÷ qæ©×Y{#ò*§ª½ñçMm½1"öɤÑêTéfD,:!ZÊrâ¡ÖCv½/unÌ Ö?Q×ÊL3UúVÊ)ا¸2¶É>Å?úOøÌNÞWXiTaoG$
3GDZfÒjÝ
-s÷d½å!é©®È~Ññ*D "VETÀÄ+ykf¢M½ÓrW7UÕ¥r]zÓÅ÷oQÄB>HP̾dUIÜ+v¬Éó£»KþÈ=ª<9#(6)xRÉTh\í=Õ´U²Ãt<kÚ`v"Æ}-¦PzÐà¥ÎÉ?¯uS[ÙEy?^Ú!jG0þD =¬g, UÀ¦Ü¥ÙÊz¬us¾M³XB¥
-:¯¾aÀ_UnVéþ+ÎçвKíuÔÙý_Íê4Ù*Ç-O-½%ÑðS¸eØ]¥'>Ù¡äµ\¤'cÔêb`UÞ¢Ó $¤µ#Ò(³×®ì©ùµ-If&Z$@çØ¬Âò°
-~òW,²ðºKeUÅJÕݨ½^£ 6=|ã¹Ã¸·F³Y˨ø
-ça³ß½ö.¸B"ßÇ2þD\±ÐIüAXð+écú>mï½ë¼öX誨Qp9èS¦S3üRuæ0ï+òRõþ ì18X6RY2ÈðP1Ã$}!·%âÔ§dÁ^æ8£às(;ª öJôy¼ªbQ?±
-tñ¿ê¹Éç!©;V
-ÌöxçË0ÖºC¥7
-¦-³ÂX°k
->úÇûÃë¶r¾ø=?éS¤ªK&Ó`àVÎXëµ·=DÍê¬Èv桽<»7 ïë:ö;6SSâÍQ_fjÇ
-á$´*éë5ítIfg|WJÇ?4öPjS
-m³¨÷,_%/Uù·ëâ18ÐRh98¯g(_7ËQìSA©ôÇõB²~G-_âÂø¡°À)¾,½SN¾)-ª*y)2P9ðþܺþ±Þ¬\àØGê^6GÚ
-|}Ivy Úæ&^
-Ib¦|í.$+ Ôeöj//§F%^©}Ù&ÕÂ0,$»J£©*Ò8.Ëôé8eØ[
-Å:A}éLK_¬*1«z«r¢-É?dH*?}Ëa
H«Â÷¤XÌó¨ñ@ cѾãÃÌsªëRÁ)
-õ
îm¤!
-wKëDmʯ|Ó>XWûûJH®^K¥Jíi£,ØCßÌ}y Qw4dº3¶Òï&Îñ*+âÇù×Dsº'õïQz%+£o¦NÅä,x ìGbé=ó´ªkÍ^;Ux<xq=Ófï^ʸxv°õ~j^¸´tC¿³ÂN÷ªäÕ·©Z/ÌXg©ûD½õìuæ]í9{/ª òÿ+L"dVú³`־иfe½>¿p}N'/
-½|bòZ!åÎ\ëô½ý]ZçmÍ®
- ëåá=nQÂ>Õ{f
-êÊ<säͯ³`L§5JB
-0{h¡!ÙÀ,iy4·ñ¡#<N°õgHN͸DQÛyÕP$EP§Èöí;á3.ZÓ
-Ë*×ÐÝÀ¥wÒ,P(b¯OwvcuÜ߯Å@ ¡7<vxN F.)aq£c´ß³»t}Õî(bóÒ·ê#½ó£eÙ¥üG,àOl|±<Fy-sNLºNÓL
-cKÓDÁh[á{¯8L»0?HjóZHÝÂëÊѹD3T´?8Y}æ_3&
-O¹qb%EsWç÷ÄÉÔ`Þ ²©£sµxvÙ_ûáS+¾<íËy¥+>rz6j>´Ín
ÕÌÁ>M®+óAÀgÇ9
-ÑñaµîÐPùdð9!
-¸M^ÇxfX88Nvîñ¬=éÕ°_ð}Ⱦ¤8IËRù¤úAëÍz}è¼¥EØÖKå
-×¢ÎóÍYáfMÝ¥!ϬQ24{ϩ¸°FÅ«èUæ´\WEPU°Í26íÁǵ Ú^ÔK%;RQLêw·Ç-Tk¡å¥É@Ó¸ðHÅ
-ÞTèC°Ë×¾-óh)ÄÄdJÚq¤L.Þ²Æd¯ÈW`HÛ`WwCj©Ëx0Ñ^oFçºP},+
-zÄsðr°°
-áç¢sò8ôh!]~Fxö ¨Ì\RíHÅg3XÄ ïâ³J3èp ×A§Îi½lO/QB[
-yÛÙ.ÕÉ0WEHÑÈ ßL¶2Ρ3öyîÞû./+}!ïÁû`}GxÒø¨îðDt^íâ
-åäÆ8ã1øð!ý9Ö½å2¶ëûv2µõ{kýÛËÿ
+xZI,·
+¾÷¯è³ik£`ÐÀLwÜàCSâ Èwñß7©]U*©</Lu-IqùH-ìÆ¯¿_þwe×·¼G×o¿]ýáú_ÿþ¾ýëòþqáÌÞÔÕ0~Ó×^\9¿ºëÇWÁèÏ0ZèvZâÖ+Þ)ÁðwQO
+F©¹6Ý<3Ý>»ûÇ¿/ËÇåç®ÚñèJð>îgÙÍôúÅÞÊ3álØM(Lø»ÙãÞáO¯Fh#ýº\I'bA½¬h
t¤þ¶ÚÚj
vÛ·òy bp$Ýx<ÊáµéA:D~$±ö#!Pbô
+A"a·öÍ {æQèwøO¯?µõ½®v¦ðåÌfc_fú-2
WOV±^Oè8²ç$"ÀÚÏú%X=Ú
+AyÈñFüâåDmv$·'4F÷£ùnAC?¦fý
+Zõ÷ÿ¹þ¹óÈ]
+3nsËÐb%fbïÖ.{%kt ¥W±àU¦¶ Èï!ºÞ0Jj>Ì9OI±¢VúXZiH2Xåâżb¤Íßbüg
"õô©Pß4¥Ò¬©lÈØnEAâèðïQt&EfqÊ7©ÌJ×_®e1ïjl¿{üòTG&κPö]+ãØul½V)Ðßm3ô4(Õ¼
+ÔuÃÅMÜlç437SÎv,«x
+èÞzÐ6t%1!b{±8&¾ìéûiàÌѶ$
+»s[U"Üÿ+Ácïdõ=*aΩEÓé{xÍ
+¡Âç:àÐ"ÝÀpr<ØPû*y
+§µPùÞç4{\SGÿØY{êX¤îªµ2,°¦y´w¬ÛzîJÚ4×øT·®B)Û´áv*ïã r`%'X@
+±ÙÓç§'M kÒãy`£Uø¥'_ÔYÐI,£´¬.þJÒïêå´SùÆ£òi-¾ÓÔë¥Ùú<ÏÑPCÝ×Ñ:/Öå¸x7'Õ>"ÑêD=½ÍEĦ TÉK\¦F%ñ'GC3ÏÊ»8=;ÿ
ñ¤KÓ=
+ld7 |$;4yóz¹QxS Ðê{Kþß+ÂèÓuIôÓ¬&v¥í9Ü¢6wS3
+ÅÂ~_&åR{ÍÙhxŨO(¬ÒdNMÃÆu<VíÆýuÆoDèþ&´qÖ¤¸éDôëåÇUFãq}1R;bÄ89d¬h±×1;¤¨òëRtuû'²zIÓh͵fS¤õUMñªYO¡'9ȲõÊD'BÕ"FXª&Z ºf=õ
+kHÈHE³b[èaTæh»K)krtBKý-Hmñ[æÐÁ0±}δ9ãßå¥ `Å©^ÌHö"»,ÕÖq D<ÓÑw2
ðçËNñ¸Í7oõ
+CñDàp±µÖINUÊ
+8Vki\nyL§b0
+Nl§
+þÒríQ)äA«Ïö²ÛäÜÄøÚ*ñmUÞ$1\´-ãÒp=MãCâb\_bxo¦hЦRA«+òËKXiúm©aJGØ
+ÜR4ÿâ<Déur÷ó
+¼*àáQ&øâ!ÃÇØz¸\%ÅÁrU£¢Óº¤êùÚ½;Ìãµ1q«(Qmè j/>¥õÀç.Ï´´ã¿£Ë,ÅúÊÞ[cû7×î§@U`'OÍuß/ÎîöHúî2
+kG{ò±Ù³N{ÁÖ]é4|
+¡0ÝêþàßâUq-Ó>«J1Åùéf_zÑöuI´ÇK:Ó ÚѾº¿<å«ÍèÌD¯ò;ôGêÊ^r« Á.+`лè6ã2rFWéíù£1!õ7²xRÜC¿®Õ²zSOâ¿Ra[Õ¶èYÎûCI[½Îqü$Jý4(ê]çö0?«1JLUhNç5¼TgÎÈì¬éÛ
+åG
EÑp¶g*Zæ~ÇÔèÜÇÀWblÓh>KñÔ2
+ÄYük52|·+>Çô_}g<$ß!Ù<çSÅ>Èøbmsþ@ªÛþ½ñlAX»v§Y>wÔ¶³|Cn7}U¼r©IC5R·U«Õ*ìf Yé,¥ùÈûËåÕ²"ÏxgZ©2eÚ®±Tçît¼b¸°¾óÙººÉ§Ë|r7Îê»ãaÇ]´O 8Zôû"a»¼Z/ã´ÄÄù3ÚÛ}e£#2¯¨Ã+Óèü̯Ðq¿²ÚÒ¦ÎZQ:²XÏÓyÏb>ìØ{xðvZØáR!0:²'ÌïþäÞ¹/ÙÉáÄvLÞ)ºùöÛõ˯
endstream
endobj
364 0 obj
-4704
+2499
endobj
366 0 obj
<</Length 367 0 R/Filter/FlateDecode>>
stream
-x½[K+»Þ_áu`&ZêV1Çö"»Yìò,¹üýHª§^îñá<3m=JU_¤úªÍ»=ý÷ÇNæôfÒ«uésÛóçï?ýù§/óÏïÿüqýúa{ßNÍ¿þvúã#lúë9»ÇÅM¼¼íéÓ<.oîlËué©Ï¿³¹§Ñ{ËíìõâÏ&\ÞÂÙ¬676;4¶é¹KÝ7hÍó ÖnO÷Ëz.MË÷ÿÞ/oËÙ>J<ò"ýÌçéòãt1éë$58xzhÖÚÜw¾×¼2µ,*Z_5Y^zÁʤí
-AÒØÌZtØ;ݾùÄÿêe£F6mÏ}´"É×üK|CëþõëO?î_?~k@\Q<Ø×¿F=
-¬*=¢á"'/0 R©ì6y\ôH¿ÉL{ÑsX¹I²]ÄX{"-ð¾]}3~¶Fò1ÿ$èÎõd°"Ò5kG
©£Y;ѬäzFíO¨øçûDésÍ.¨|(VÖu¨PYÈ«Á¼=»ô;]{Éß«GûÂã9^zëâ%÷µÅEpTZãø
-+ñª¢
¥-öEC$CáXwê¼ãmÔ1"¼È£h*`y¥;»_/A-Ì6h+ôy}s
-ÿ<ß4YpÀ;â¸x
-m~!úðOk°´ÅÓ^agÀðKÝa#`xwYÎ[ØÊ´k²?¯÷5kãÏʧ9;4³Úü<}¿?sëmÇv÷¥yRUjµ®+ëc]ÊxA¾ùi±.üqê-ý»¢QçÿM#ùÁøÙäÁ«%9ü]">Ì{j Ýi¨|¼Bh
ß $¯Yo2.ÂjòUVªÚá7¶
-Óaãû2°kä)
-#aÛ.^ñÉÒóR e¶¢{néÕkߨ·L®
-
-²)iDâg¨4
-Ü%
-o{×zßNÝÔ±QÁMª
-2«:4AW
-·*kÒ]Iw6·O³£;¸SWw3Ò
}a2uÍÞnrBä#H1Ó$«Màè
-~·÷÷ºz] ËÖÞàù®2`ãÓ=Ï)Ú?fÆ¿PF ú3»X¡¡½n¶[XÞ¯(6è9/ëÍ®¿ÕèþVhdaõ*Ôifè¢æäü+ó>Ði×jíÚîÏUÎä¦{÷pÜ[öÍËnúÅï:Z(ÚÄ úÅÝ,8
-Pf4ÃìüFUöeÅ}Àî'ëÝß/
*z³À"¸BxÏÖ!1´lýB®w^Ln½Øé¼
Y<DéÍÞ5Yż
°Ó÷@ö+2wMýC°µÂJ
-i_$nUÍH=yá)ñrRY«}äJ[]óùø^¨$Rx¹7ruR¹
é;k¡ïBdTä±KièüoIËq³o÷ªaà"XOâdDO¾î)k+(ÄJÚ5éczê6¸Ç·,¶«PÌÂ'¯8º·mT]¾ðD\ôÔxPx¡ zi@dEMXÈPiUæûþ;M¢hÆÈ0©¨ÀN«eðO1riD:®^8`µmä]7FL(¶sK¥vĸtRýÖY§0öc«CÊ!¶,c[¤Ù(¾ìx )6»Z/jNi²·_#vlçªc¸£Ô ÿæM
-`q$³õE2PèÊ>¨¸ "¯(äÐj±Yq´çzTgA'*]U5 ^Aox@K-WýÃÄÌiÓºkn¨wsx:[øôáb!ú?.RDupÄV±Äº¬ÝÂ¥\ê¤
-¯t#»á@uº¾.BÝz]áÏÞäVjEUù;÷GR`¨,cv¥ªþKáúúÉ
-7XZ_òtôrMIw\¥®zÒ/()ÒEBM¥gd+ݵé§l-Xü×m¡ÛÒ¹L¶x.
p.,¯qª5rUüMºD©D_Þ(·L:CÃtqÖMåÆ2ÙÙ.J¾-ùWéÆo§Ûoe²míoPÎÕMÄBõCÅñj{3j=*Yõýá¹Ní̪=Ö³¹ð7Ä1Ì®Bº»»9>Éäm]l7íµ¶Êji_Kô©´Ài|}+¥+í at¹Î¿>$¹_Ðq~ñª»qóÎú×Õá']×]xU»Ó V@~âÀÎç'r<uàWÙq½|¹ÊÔ©å¤×RÙ@Ư©ÊYQrFU ì÷|NÓ´S0>Ý;zýz§é«ØãBnC.&< ^RÀÁ¬x¯}~æLt)ó¿$9wþô-´é¶µsRvîÁæ
->ÍÚP&~;0]ûWN¹Ù0ÊZRDd)¥3m9áôBNfïQeÇB¡¥m8Nù'~Pó6ÀçhàV®TƳÀ`¤3N=KËqÇ=ÙÊr³ä[(cÓ¾©Òk}<ñÓ4F£DFÜ{²hÎÜé$¥¢´u%SÞå<é
^dÓtÒàÑ/ a§dèu3Õ§£ÊM9^Ø£·Ì
-¼£y9EÊA¿Äg¡À¡<=ÊÄd)q6¸wÁsçÙA!ä:^H
+xµXI«ä6¾¿_ás ;ÚeCÓðî@n<ÈaÈ-L`æ¿Õ¢,YvLxðhIV_}U¶:ëéß§ÏN*ýÚ¤ÿqÿ_~~ùnúçéÃÇ.øsÄs3ïÎVÎÕ?ýÀ?¾üùäæó<E£¦OQáìñ÷ßÓÏOeõi²ä²ú4ycd?Z¦¨Ô9a¸ªÄñ)ÓzÍBåÅY§²XZ±ùÄÓzMbË5*]±¸ªÄò)ÓzÍbåÅú9¥UOIL9×$¶XªØÒªË§,FNë53Ì>Àe±´*bó))§õij
+Tô³Næ,yÆÅ*#³$uXg8.V±%l´X;}¯¼ ©Êû`÷q·}ì'³Í
+Û¼_FûÕ°ê}lîC¬EJ涰˪ͲjË«¬Ú
+)«äeÕâèrȦ'¡É÷'¯¨@ÎûoÓ÷w3i=½ÿññâôÕ^¢»\þo®'{ ËÕ]¹êKôð¿þúþãÓíýéC#Þ¨%Ù¾%ß+^L2tÂY®ÝH®
+Û²Û\letTÅ^tâ~=Íp©ÀÈ{ÛhHWi`txcSw½ß6qßÁ«Þ]Í%Ì ÞF¡K½QåìÛázÒw8,Dãn:1¼¦
Ë~¬ÉK+MiÌbU#ÛnC䣡۸úîÐÑ6YÄbã7>9¿åÜÿkÇç4éHMc++
+ËÈÑr£ÚW/ñ)Ý% N¿gêÇ
+º³·^ÒeÇÏ\±¡îQ®Ø¸úM¸B Ñ0ÀcaØ)-päÂÔäÃtB õ±»þ&½nS`båtXXc4ãBôË
+57Ïnûkm^qAGaqïÙ"YËÉ]ý
+êóº÷ü0£AõvÜ,²0ó¼ð^r¤.ÇÃQ
+J¸³ôysÑÁ(ª
½ng6|9ôÞ
Ïw),ÏXúƶé_êb§
+Æñ¦t øÇFK3Xr;\ ±ÍÛPÁÎhiàÅ·³ÿÐckºywУ$ZøÓ0Ù½¶ýPëAj¸Ä,ë;ì6Ä?ÆË+AUºØW[J8wA~íUAÃjRò1-ª°ËÉü3?ºQß
+úb W´³C)î2
+Êß"õѶP L½¬FË&½7;tgoö ÏK׿.ÅÐv÷í#yCü=DÝ¿Ñ×
+Ú³ðÛ¸>µ2É(gEHï½ùHé
+3ÆÞÝÚ£9"Ö
+æÁ
+{ÑÉ3¸Õ2í+ïZø_p½Þ@ÝÃçMº+×#zɲWf»fOø÷
+4Ì!?ó_á3ÈûÍÊðgÜ%3ÐÔlY\YZrÝðåMb(ä'¡ÑýEk¥¨¾°öñ¸fà+y1:4zÎ-ÉJ×FhÄðîí÷ò¦)ÏÂÜ£bëQ ûäVXä=¨6Ü¢|äÌZfåt4Á3ç+´N .Ú},}1¢{"ñêNSl5kNZZi ͨP ìëûû!ä[ÉlQƦÅñjà;aCÔ(ß`æØTm+[-9i Á&°¹êÎ'{×ÒJàr9`@
+Y
+3¸Ð4!ÐÕ·¤G ɮ%éKËÅí¡Õý4»Zy8ú«Ö
+\àe}î
+¹¦p*x¼(vFvû
+)fjØê´Ó0u7²áò
endstream
endobj
367 0 obj
-3493
+2046
endobj
369 0 obj
<</Length 370 0 R/Filter/FlateDecode>>
stream
-xµ\I$½½Ï¯è³¡Ç))4ÝÕUß>ß¼ÿ}kå
[ÇäTg¦¶Ð=Ãw÷òoÿ~^^ôsr>]ç5_ûÛË~÷ò¯ò0ÿûíß>~|sqú>½Ìnø>¾üøëËïîÅ
ÿó[oË·×øæÆsÃÍ
-oî~{
-oCÈ¿/ñþgzqxÛ¹ùðtsiìßoùñoßþØN`ðßçiY¾Ç:øâ\[JÓp¿yÄ×ÔõzÞÅ}Þ^ÝïÍùV~ë#?vneìÜ¢ü,Ý{z'5Ëzÿºp|«V³Öqä~Û«m·~.ïºÔ~æôÃËßÏ2ãr7PzòAk©|
-·S]YýóË
-æ¼ìß¶iô©L;¿:OoåiÜK¥Á»¾³,²w²Îþ½üUÛ¸!íFÇuÁ¼A²çÚÔIxYùÄt2Â`ÅeÊ0å=àDQÝ'wõãP§ï¡XIù UÒ'Jç
g43WÚ1B c.7bt¤~\ºåwçÓKæÔ6ÄôÔûsé8T¼ÉRÃÚ¡>½¹§Ùr_·r]f}¢ÈÏ÷dgkÇü/É eº!Ï¿°§@«Zøs5,[rĵ¦áÐ9úÂwW`z=ÆYSMc²v×:ÍeüüËÝ]8 òzQ¥ÊgÂËÔv«çµë^ uF`Ì]èÜGj'eúEEÈS&×7Êpeéò:/² ðvúMöºU½
-kgVUb<Ø,"x %²Zê
-£¹¥Äe"0
-~(ÁïË«rªE]ëXõú;
-tíl¥Æéuî
-ùÎ^?H¡â¥Â~1½µ4'cwåì¤ÚÐûUE¶9X<e`à®pâ,bB´[Ð/:ÅÙÒ;~׿5¾GÜÊ]g`â&««ýd£EÛ±Hêr©¸Ô¹å$ ]\/è`ö+Hq8´$±§~ÿ¥áX`LÑÙ$Ë_'vÎbÆÄÕ8 fGóÞNO'mÂÉL·EÎ
-29´ÖÛó@Ø|!µ¸Ì*wfSØaÇäPVõ89EÖ¼ôÆS/ÁäBôW¢¬¬&jûOáè¤ÂÆQ/ôó$Nq
-¾ÇI {BýÉl(<·0Äj/Uç:PÕËÿê}][RQ&fT¯ÄÝÏ1.&¡¸²Õ,Þ2ô<okjñ/´Y¶¬è½#AÙwˬ-
÷Ø)(Ñ"Eç¤H/
-6òN-ÙÒååѵ}IïrTÞI(é×ÄÍl®RqCL: I³§Í¡yã¨8Nä»:éÊ1ÒìÛ¼Y1¢2Z6wRwü"Eü{Ï׿^khÎA¢éW:ò¿¯-¯|Bô@#Y'3´
ùÑU¡eðK½%QÙ^Èt »ÛLC¢£AÝ]µë\5È*§Ñ4"S;Fæå`G`'J¢ÍBÜ)âp(íÁìHÛZ N!®¸ÂMubɺ¨ÛL"À¹Æo'V0"
-^¢¬q×\
-yªE>ªI_o%¶É¼Öj
OU¹6%@*#{±
-
-ͨTfA¶½G"ú}deerR>Ѧ ´Fã\Âc+:;Å:-bÝwÕHà3Ð;
- .¢ulCX"¢44.ÀN«´ÛÊê6§²#9
©¨Vä(,
¶LDDürHÚôd¨r¢:]>}S¡><µ¥@fÒ§¹<·ëç·!xôëJTÌæftÙvòG|òU4ܧúØDXÖ=`<ÜÄKØHsnȪÒke^«Y×§Ò)ôÂÔ]c »jDÞé, Zê(
--¤ïèþDľFÒÆíÒz¶ØJ>»FOv_à¨=SêlG'©Ô٦ٺJ»È×Ryû^ÛCÚE~R|¾\÷ uC2hZ]Ö¤Õ¹~kH¥PäÊÐæBGG É4«¶?©%Yì=µL\#wJPSÐA!Yù»2 ìTÐ Rf<à/Vå°5Ã:|Ê´l3MY£ÐéÉ"kû1ó½u A«tÃ1¥ÄæPô9&aî˶ÿ"¿E¹TZm( þÀ!5±-´3HönT~ãÙ×2s2Ã8k(Óz=2@Ó%ZgçL
.GÄ7BÓ8iůT2%ï6°piêTÑE¦6µ~?ÚRëjKu ù\¤Õ¨©w EIá÷Ê'7ÄäÄtTF¨±=¨ú,j%¯ ßxé
RѱQúCÐÞX E¢Zî cõ
Å6è¢:+%>.yån!§]}%¾´VÙ©ÆoL5úpµHD+c;ÛæMæÆÀ*QEüè¤mg°ÖªN³©3¶ÁEÖ{ªIlc9ðÎvBËjFÑÁÕ$¤Õ¡ê:9FëPlö%k§j.~Íb£ë£gµzà<Ï ¦´¨¤ô_Ч>l6!|Ì'5 ï7vÎØhr`¿Èæ.ð]Ìyhn*Ê$>|¿¡}ã©Û±û¼5üqF_ç/Ú\«¡d1ä¾¥Õ÷T«m`ãi]Òshkáø§%§¸òÅÙ×TFFó]=>µKl¢jWÆ5¬
Ú×)7¢ø:ó-o
-¦£üVNXg
dª¼±2á
-k»Qó$yÑÜ·
üÄÀó¬©5u¿¥Jù0,ÝcäUnoóü2õî[¾b@Ðà Í-Oµ\¢ÕzÄɩͬ¦¶ Ù<PéäÉú§>-qoYsâ
-×u^Osi
-à«rËK¯ðv$ôóßWö¨-D=HN±3tò¨zïçh óP\uZæ \-0¸2ªwÚ´Vwª_XI
-em9£ôº¥6ºÙÃ2]1Ç70k
-ÏjÕoåÎÐL¹Bsò®É¨üê{óégccÏdG+ê9¬ýgö¾WO´öûZÆÞºyè{¨g8wºàâGvðñ¯4u2
-&yxÅa
¾@ÂøÆEúP+¬¼«^¯ppOp£§@ZúíH!Uq½OuG[H)ÕúJÕMþ4èëãÂE,ôªeW3«Þ(ßS(7ÜìËélèCójDø0
-T|ÂDÙ¹í×ZÃ1Ø6¸¦ÆòjVUéèIð#¯Ü¨ù/|ûüع¹TXÏBqå¡'ã;»¾E;ùJ*±Ê
-·ÎêäúÝ Ú$ä;ûÙ¹ç
-ºÜVNÑ5ýÉq¤ðã9Íw|v>Í¢_µ9,i¿ô¼nZÀT·AHÒi9p~b`ðÉ6UH÷¯9âd¢Vïí|²~Ö
-[κ~g&&-¤/+?9§ÜÃå`niu9ÚøõµúY#&§ llÄÆÁ¬f@XÄXÚ4I(éÕkÚC)óµõµ¯AËÎÖ·ÖØ
X{+YI
5UnêªxYÊVò\¥\
×jÄË,ÁÁÔ
!]È/rHû0íöÂe½[@Fïj¶\>.õP%Õ*ð¶~
-ìnXd0
yûÏÂNE û'¦gí¹Fv
-¦IyyÛǨîf¾Àg2jÙÄrdëwü#Sè-"¡iÁ0nü5H½õù
-L40ÑJ´ü¢1nNѦΪcË9wL)S
QCUxÂ.
àHúÚ¸v:_tòJGÞó>Oh§¹YÞÄc4C3Øá1C¿STE×[BFÏD#9÷qÔ/CyI=]ý#XÒ;æ:¹£.
+xÝ[K䶾ϯÐÙ@wÈâKfúaÀ7'ääÄl
+!ël¡¢ÐL(ã%ä²v&Ïa*ËH*ÙvŦlÂhÉÁlØLJλfÍã+mÎ[VzGdµ8ÇÈøÇLiÂð{|ðç19iù_1ÈÝ¿ló °³mD"qó/$Ê©¡2txv¢¾
GDL˳¯^ vÞµ|8Û
++voBÊ2óudôäèÙÂ#F«cfk%]LøÚS%Fô>LpUÙe<ÛRµT¶ñ÷ì,-¨IMⲪ+ãh4OJôÀaT8tBBDà*æ³ORM
-ÛQY=QäîjUÝ{º[Srpµ%¢k§!
+'ÄÚ©g7HÑ7(³6x·òÞIó²-t:®B{mñÑfÝ8ÈÏÌUjÆ2HDELÍÈmR&Df·Æ}G´°M½@sÑçG
+ÂÑ
+s¤,ÙÊ¡ÞÇÄcñkkÕ.ÖjQñ¼47ªLs3ßø§´A2µru!ÑMáRÕÁ4 yYáÛÞä»JÛ<¤¬Ç5À>Ê«-ØV£¬ªD&E>ÌÉÐ
+¾C¸µF߸òt]9YÜÜØ²*D¥ÄL}0GÚv4M«\´Z_Ä©kÕã«IEZ5.}ûX:ÜÑéFŤRºj#Y×=xju¯Æâ=G¹mö£õÆ17¼\×`c15|wôh±ÊZ §=½¡î
ÈÒßí1]ªÈuÓ~Úe¸ìt¤úÔ¯dµC{V)º½o×Äíi\çÖaý±¶¦u¯GV00ÅnªÖo*ÙãÚÆâÜÁPU_öSïÄålÌåþEë·ÑÄû~z^û¯|2®?÷ç±ë¡"êÔ¬Lþ{¬É_½eÇ'YÕXÊ-·¦JsÎm
+];ÔSJż²ªVVæE£fÝý>þj¬ÜO@44,F|H¥®S@p*ÒëçÚ
+Is Ê¡æèu÷-pÅìßV¶uEvÜ5_gâOUnGêÒýÔ|WùÍþÙª
+øÊàútOOQõd:i7ý÷¸áUÛÚ®t¹ª*ÞâvR·a(ó%Dbù¥Ê&F¬|j½iÝTßþò¦~AöI)õìtË06ª¸Ïû`]G½æ7èe¡Ôé×ï\]¼.w->1)^p}ÝÑ×ïôø-n"ªÄÑXKtÛhA¥ aFü
+lJþ«@§ð`O9F«yÑßüTðÞÆOþáï Ì
+Ñp7ø/ÈWYq÷!ÍpÎYëáfFýÀÐÒÖq91éc¯|ÿê5àF9ÿÄáñ
+ʼÂÿÀ×òlÇ
!ÝGE¨è-CuDäÿ+h¸¡Vî,×XÉA{¹³~ôù²a¢DQ¤w¯GçWxgèGYü!Îö&Ðs£4,qiéi¼§9 ýqôxÅ1Oüú[¦DÏïàÓx(Íhr³Ë~°kd0à1îôwS)´ =m!Ò[ô¬AuÒ¬,èYµFHÐYþ÷Õó5¯C>h-únû
+KÏi#qÏ
endstream
endobj
370 0 obj
-4904
+2653
endobj
372 0 obj
<</Length 373 0 R/Filter/FlateDecode>>
stream
-x]ÉäHr½×WäY@ÖÐݹ
-PÀsÓH4ý¾|±å;édT7f¾>7{¶±îíÿ~üïÛðö>į³óñsÙÒç¿þùö·{ûücúï_ÿõãó×7øËÛâÒÝ¿þãí/ßÓßþóï·áóþîoÎ
-ëý}»¹axÜß×å6÷÷y½¹øgº
->Ýåü-ý¸¬üc¾¼ÜÜW~2!^æá;62J#®\öÃ[güÙK3ßiñô¹Ýçû¦¿J§ñe»K¹³'uºJÃü778n8¿P'q¼{÷ñ·¦wzÂN§¬X¹ÙÍ
-î3?ú¸Ç»K+ùSo¤ÆÇ?Æ×aë°>e ñG]l¼VÖíyÿǯÿñüõã¯ÕÎO>c£ÙùÔú¯ÿÞ{¢`eÞ[
Bäsôq at c¿<AÆäƵº\\/#Ĺ۰Äýw<´Æc3^)@){2äíÿÒËtEö&¯Ì»[6ò4¾OüÊP-éçn×ùþ>º²ónTèÄûé«+{=ä¥u¼D¸¸0¼¿
ÜZø·EçK8¥æ²ì+Õv#÷è]ó^ûhk±s¶uú9שlwÓB;§HPÑ6½Æ]6^ö°`:ôëp!7äæYß:¼D4òýA½S?Îå=ÄI>~ñØç|Øøt«Yû95-hK¯æ¤+ϱsù©2&K¤feméá¸Éíu^vßðYú*öزMG`º»SOˤ£Âê¬Ë)Àðs¬6$vêÕ?tþ~Þ]ÀMéCÁOG&K)ï½^a¹?â1/ÓÂ¥deõ B
-ÝÑä}Ðͦ¦®<Îçݪ÷3áeD'
ïñ>CÇ;^\ªàôT;ºÝ'éøH#ì¶¥jüE÷G¤ª^å9
-"5#±·ÎE¡ôñÕ å_anÙ
-bRßbgȹ>5ë(G+a-fIÑqJ
rãö*g]KÒâ+÷Õdiù5ãuâ>dHJ[ vjtãk~»ÇÜRò1&,'E6;]RS7ï¼OcúSÕr6pµ¿ÑÅF ?±¸#Áã
-1W^"Ú/øÄ²3ïSX«ÎE¢Mgà@·¢é>¢ñÑl TGV¸ï*,úJ¶È)V±
p¼Kº¨³!e¼"¿£vÎ7J:?¯adDy0ètÛÓÏp^DL¥Åx*bAa¶2ï0öëæç)q]7¢ùùEÞØÖäUüëòyó*KÚÎÅV÷V8Û/2W=ÄÄåªåAEG2ªÒ9ÇÔ× ÝÖ^fÝã÷ö°:4²ÑuUçâFgqf4ËxíiK´Å%ÆbOcèÚJ¤.ñ% ÄõÊY=iràÚ&ìÄ6CÝul0g³÷ó²K~]
-þµÏUñ2áÓ15võxmµº¦'Õu7ÃaùúI.â*±.¿i#û/4Ëöà¬áÒ·xMO&Ý`§S
-
-&xz&zg¾ì/ n¢ìSGqM®¬Ý³=WÊ{Ñ25d¬r°ÍºÂnZµÞzÒIl¦å}Ãù| úlg9¾A±íØv³ì§ÐCËÿ¨ð8Çd¸}©Ü\
Jê9aUP º{Uáþ×Îl¬,9ÎME¶¥]ã^¯y§Úçª3scT J9æå,ê´0,ë¶ ©M^ÐInñÔ@M@QpVéü8YSײ=«ADñZOò ÐoEô
-
-ò5?]Ü(LiC%KÏVß}d`"üg®«ÉÕ¤¦x}ì1T¹D[àʡѰ©i:>"S®ÆúñÔVùLD³ÇIKL©Õ£JënsëTM¡)ö#÷(5Á«¡
-ÿSH_9û¾¯\»,q·EyÙýâ²i0t-dç±nä
-È5æH:v*¬´É© liÉ"{ùúñôñÒìþ)^æp ÊݰsBì¤+©sMr at NÂS@îióº
-¥i82ng5¦ÔqÀ¥F¾£±qä%'àdà=Îk,=²°/^Mé|ÄÒô
Ü¬Ó ü¼úð¾¢·Dg2§JÅX%ä7MØ7Xh˲ïMÕQ2h±á
-¤T8U&Nb¥$[΢ð¹VÖdö0Ñ©^Ê"lhónÞM7Èîv pzH]í(Ã=û~qKú2q8çvH?xZjîVä³ýa2G¤Öl²z1+Ø´B,F¡)bR
-/¯ØÌ~P*¢1ª*ùíô~%UºÎÃïÞRÙ<;_¯q×vUv²A!?îëǽæ¼ùçú~yGwÛtêü7QÆ5&fy¶g·IÈxÓ~AB#ò"9îÙæÝ`4è,ѱG°;(k,_&ç¢£üçbÊKË<èîÜáiâIG`qúJï0HÖ¥M¼ëÃ©Ç Â66vpuXÅý/jNÙøÚü?¨ÿKæl×}|²L£²à+ß¹^ÉV ß[="Àe¨PhÁ¹X¶;á"`Ö¬<!k2^©g¹©uaA
-Z£sr!q²Ñ ã?'å¡ÅÊ)ºVßУscHÆ8äÝî.=K6+YJ'¤-̾¢M9C²ÔgÀ¤ë¤p¯¬¥-
-·ª=¿òxìø8bܵFdª«÷q¸ÆÓ3g$`@×Þ¿¨O:U©Û¤EÙýmFþMÛ:
Í $·Y>í\EÕ$krá<ê'h;²ÑxSG{«ÉíÊ Q»5§¯ûIÛʨ
ÛÈDìÔ$¹ÈÕ¿,××k[P×ðrL¬bÕb°ðòQhåa³Ðeg8LÒ`9|))#TcË"õv ÏÐ!ºËeÕECµí<°~Ô¤htú5§8ë9hö Y?nYº[&HÀtm;GKî°XI&3A£uËM±Àd3PBU5ÃN(ÆQ»,HxNeh9ùhjf
-gÛæ3À£JeÁ<÷ÞØ:ïöRòÀàMèË©
-§øñs[<eLcIBpuPÕfWÕªªÑÕ<Fs!=
-ǯ*×UêgÀHr½Mir¸éHNu«ä`6Uòú
-y}´ªpO{øËÜ
-¢«
-P[<íÏ$ó}¬É6]'¾1¤MÀ$Î×FÕ±V(lŽ2âk$ÃO6Lëú´|E×gf
-hNa6¬B
-ìqÀï¢ñ®T
-LáQJhYÙ
-ªÛ*:ì ^£Ü°âd,nj£J §GɨjÉSA¡1Ô"IQ!R.õ (.ø(//]y<£üþ4Þù>ÈVêÞç>l¡Éms[]ÕÚa«Mp&W6\IäiuÙ¤íj§´*£¼¹¦1CêlÌÀ½c
-o®&¦ïÓí%Ö÷ ý\HrÅ^J¯äen>3º1n9l VöÆåLÑÀa¢µ¦}
-û\4®´Ø¯cfw}\{>ó²;ÂS¾H~³KukB*Ãò\ôÔA*ÿxêÌò#¡é«Ê)¸âsNi9
-HßÒIä&]vÂÎãRíSÜ}P·Ñ@ªpj*ï j®uò¼zjÀæè9Ù~õÀÚt,XÔ47)hàʱõ赪^Ó²ë~®®?N²QDù
Ý;=
-^Î
-¬â é"úéÁiò·è¿EïÝ·gÀ»\í?G1ïÉ,l£
ÍhA]ÕïÔ,Â[p)²ÇâJ1&ÎmF\ÛÐr/sváÍà (Êkï"ݳwëfÝÿw¯^yUþ^w ïÔ
-o+×e½Ï%Ády±ùÒTó=³#í;úÆÓÃIÛÌÊKL¿GøájäÌÆö$ç(WpÈÓ}ûÊ2õ
+x¥VMÛ@½çWÌy!îH3<`ÙÄ>ô¶è¡ôÖM¡B÷Ò¿ß'{ì¦þÈRù°¤'ÍsbEáÏæwa1Ub<øóå9|y¿C/?6ÇÄ*£Xi8~z¢PÂñÔp|?Ò>T,k½fÚ))vÒYÍO¤";æÔµÇî¸yr¥%W²ìêêòDFâXePUä¸Å;=Üøò÷dÊÔzE÷*¿vgâ%ËÓ3¬óû×ÏTY²Yz%¶Ó{îµ7ÐÈî1O0
2÷F&Z`÷ý¬d»á>Sæ\¤ÏaÇ(
+~½4̼°Ø¼«$·.
+ÜÃ;£c,ð¹_é¡ÊÖù½i½À$s<
+:·NzÕëþ+JËÏ¥p¥6èÃté2Ub3¦PÛ7záYØw¼¡)87s§&Ö7M|¾«ÈeUcDrUÿ¯Ýå(Õkí».fì¯Ù³ÙdÀwëÓBQfJ9ºªÚàIn¬} >& uá.ß- ãö¸ùZ
+>àv®}.ß³PsÅ!ó¹
+) QO_HíVÈ-QS»µ&æv}gËMvKÒDmSývü<]Lo±Ýx&¡±ÔÏ`7,ÇEûqQÏ"Àø¿ÀdùHo¬/¶¹Æ½EÏhÿáÓx#ý?}6á
~ãøwç|4ZÝ=
¿|.ô£
endstream
endobj
373 0 obj
-5563
+645
endobj
375 0 obj
<</Length 376 0 R/Filter/FlateDecode>>
stream
-xµ[KìºÞ_ÑëÀL\zØ4
-3Ó3ì.È"d@{7÷ïGzJn»'zܶ%J_}õzy
Ë?~»,¥\®àÊçëçï¿^þú§ËÚÃú÷û¿~¼ÿü{Ý.Ô·þãòç¯xrõÏ¿]°|Ü^âuy¿½¸ëÛõºøÛv]>Ëò-Ü^|y´×%ßÖÒêö¯Ë[y¼ðã¯Ö>Õ»®¥éa$¿[hï\ûun]¶á®«ß2
-¶/à®]¦>LùzÏ"ö;5ðî9_g P>À_!UA ê Áv«69>ÌLQG¥_¡MÇá#3XS©ì³ê¥tû^^Û+öàIÜ6á ýte5%lxù¢n×ëUT
½ÄuP½þ÷ùñùóÇ/T¢k` R{ùùï½\kÞ^ó®>6±÷.W»ÙÊ:EPÁ _ùnªSw¿¯U¯[°æ}õ.4Á[[TW._IT±®¨&0.8xÓDL*m7/Üûcý¸·.ßE½Ë¤PT[õº öîSû6
- Ü@}¹ò/
É£Å5|6Ñ¡[ÚÁ×-_Çw²]þQ'W²Ö>ô!ÜfðÂ-Å×unJ\AWWñØL
±zolc~Ìé®>-?!<PÔqiê®ßê÷Ë;©QKõ%XO#nmÕ<å¶7½òðu¶M!sÆLµx<LÀooíAIé* ¼}UÏÕ7û$«ÎVà/õ»oª|È ^§Üükùùã£á±³èg2-Êxý'_D Ä}¤7CY
qöbmι]¤)Ú¾ ×ÿ!HÔ½
-ö
->ÙDy¢þ§âº§
-¶W·CL@Öáª,eôâ]ñuY(CqEÓ
-jC±Îµ³V5QÎACÁ@0Ãî±+ ÓRÜw<QÖ®ì¤'
-ÚLâZÑ¢¢^3U*Ð1¯Ê
s;
-±áCÍ=ël¶TQgçCBY¯jE*ÜMí¿T}@Í_;Äà¨S¦eáì»ÄCzåy~ø)>QeáºÑY×±=¤oBK÷gz~'Xë}Yxí®fÇ· ½tÕLGO«ê§uÝs»º¦DXùDéÛFß©"q¸NAoÑRVÏæÊhðÁb:Ñ,vóD"C:o¢'C+¦»!dý^ý:4óô1ô° â².Wÿv+~`¢Ka:îV%ªÆ®}~µ¡}Ò*Kä½÷NêÂ9G«Îý-2rèDúÛ¸3½/O¢å9¸è\º®,¥®iwkOê¹vÃæ~èÕ¤ì»Iu³ 7§HóëkÖ16¹è EºÌY^P)=·Qá8ԦųNÝïÔùƨdâóTºI¢1SeÀC_¯JÓ6ü! lspþÙRÖ¼%
-¾ªó~ZÝéÆÜWy
-ì»HRÍ"QRà>ÈËÅu*UF?U3ÃD©gA¦éËÜϬiG®¸©Ñ9L#³{â0Ì`Ôõ¨·ÆP2}[·Õ¡%?{qöкñÞ¤b¾C@Í
-ØZÿ½uÖvß»ÞË¥öî]¬ãÃgYô<ùpF/R»¶è>ÚbIu¥|Cl©Ä[®Ê·S[QÄLßòMï2Rðzhqj2çW¸2I»ä(º®8MÅFqÇâå§:¤ë¤ 4Ó6`/¨(-:KÊ
þKmÀR(©Ì\rÄùɺç¤Eb¯õr%Ì8µ>ï_ýnª&ÿÈe`)AZp9Gm°H7AªuEõJrÓ°%Èøª»Ö¡Ç)5³;¥Ã4vX97vèJFÊÍ;36WxèCë~r`ZÒ"̪9^E x ïÙC93DNAå`>ñJêVBk
-|IÈRâ³Eèóü`Üz
-æÍTµ·½¶·KÀ·I¬}:W<k¥MØð,ê¸esè]Å¿í©äiÊÂÒðÁqbù'ѯHîðëVÖoW
-A HìÅÂÁ<Ó<OѺ¤×ôC«çÀE×¶ÌÉ
^°È0ïÏ]{ÁoyU°³n#,å5)Jüâh1 )CR¹É2ï'éjGÃv
-îóá±mÚ5Öný>+ÀÁTêÃRÇÔñ®11¡=92Õ£Êy¸ÔÇùgÅ'ĺ<;,£»Jüó¨ÀçWñø¢×§
-0y±øà
+x¥\I$»¾÷¯¨ó@·µ+ééÊo|0¾ùÁßÅßZB
réyÔÔ"
¤Ð{d«7}ûßËoêöªÒÛ Mzk~ýã÷Ûß¾Ýþó¢Þ¯Öå6þÿÇ¿^Ô-¬kê¹õ¶æ9?¿rù_ñþùâ~·¨ì½}þóöÍÞôrûüù÷»Ú¯æ®Ö}×&¿Øò+¯^Ç«¿ëø°w»>þñù×ççËoyk[ðiS¸¹ÙP;UTÁg(äÂÇ«½åÌ-·¤3µ¶ê®Ä¼}¸{ð×xæñªÓ!¬i_ÁoT¦ë¶ô1æCÔü#ÜÃ3¯ÝÃÀç²4>
+×yRoóOKÝd&RǯËûè¹Qk«
6ómù÷©y7¿ÄtÖrJÓº²ì{^'±'Øb¹úê|ÚEâÎ?¾ÚÌÄôµÍÛ}uuÌÚ¿ÓôSw¨ËmÝ`N÷Z±Kå`*Ã3q?¥÷6ô)§Tl
+§hø©~=gKzļB×dJ6Á)ÀͽÖÃj`¯§LÄ×ÝeõÝ$`8ÍÔ-»©ßÓ ÌôSY±±'¯«Xz(~I¶DÅåîd%I¤³`djÿ>ÀUto~ÀU_ëèê/]ejÙ²"¡ë×ã?öeriKÚ*l2¤/Ò¹¬Ù9Qaç\y?é+ só~ê¥ZÓuPe8
½F`À÷[By¹TóB#qóm¥WÓ¹&xz=HsÝpÚÔóÄÊaÛ\¦³3>êÙP@,,íѸ
+ê¥ü*Ëf ¹f Ö 4òÔ>2Í(ÜN3Î.YÁ')++º:¤Ii2!*n8ï¶UÉ´ÁÐ÷ah'?/Ã÷×,.*÷y SY÷&ô°Úb8X ¶Zg"õR<9ný&£ qÃQ/¶(& Á "Q®KW¾MT=»éNè§ÌînÂÏF`ÿånv;m0PÕõ=®
+<BAçT ú{gDSª$í]ð±ÞuöãBÜò).Rô§¸@¿Ù\#+ËQ[úl]ï
+×!Ü`¤
1O¼A-A4FǸ(8Åè£4Ù&)Ç*éü«1P>¡i«ÑQ`¤AoByá ÊÆ;2 ýÔ[pÝþD¢VÚbM}½÷;ÍÝçR°|a¡R{ÝÊöÌFpOüÊ\t<èÿY|˼(¬½h;mðCDªûuòÂ*JƬll÷$³'Øã£¼
+eÝfê±à»Qç y¸hÃûG
+A²LS îQÍbJÆ
çÂÒM¡ïâ|E²J?v>}QEØá¬<µCÅ/ñq(¿
+¡òƧho
²èÙawU¬y/
+mw6ëÔÒ¢ÎBÿP\'PÌse¹ä
+bpjÙøF®FË:ÃæhlS-s÷±A}"¸ÍÌÓÊò1wîé¥ÝãÎ=Ûó6CLÄV"!ÆÂ¶æçcRàã¥6XÍ}þ±»y±kôÈ3ã¦8ø-òÁÜ®ç9Ëq'ºÂ8Pg\
+wM ç[)vüAB=±®Í°}*|äfNk×Ë<[ #fä7²WzòA4âÙ}
+H¿Kgx²ë"l¦Ð&®©ç&ÓËá-+zqqáþ.r:ÿr5iVÂay]j%Ji*VQúU¢KG¥³ãPÖ¸oÜ û
+Û0Kþ>ÿOsfrÛ§øX¼0L'|G°C5ÌLCI©Ä\IÓÃ8OGzQ¢ ~/hú\
+ªW¡Pzp{HïPÛHl¢)êÖh¢÷)n,(? ÆSUµÎD½[QÚAdÆUXÉ|²ã»¢:B+ÛW_GKtZ±Êw¥SIÖìëêyɱh_Bd¢÷8ÕÁéfðìÔÝjF(E0ó;uò»¡;§Ü¤#ØO
+ +§èòKkA[¦¨#ÛÌñ0
?Ô
+¸o¦fÏüü!@¢´Øl=[ÑÂΣÅÊ_DRcy¼9½ÌÛõ²¦À;2zðgm®%ºäàÙá³ ÊÚ(ÃüåÏ$kN¬¹p
+0ávfÑÀ
+7Ì®ÖP[1Æ²ÂÆÌÚï´
+sóg¥£&fo©E?dÛ:ÀCµAwö¢H"R¯¯Û¤ýZ(§ÐÒJ¸;¥ãKá¬É¨:®kå%](¢³T
+ã}"Ô};,âw?v..ÍY
+§Ó @À4Ú9ÂÕÒÉÓÁkðCK«ÕíÖKt'm6à³Þ+Ô"ÎúÞ~©å8úp8Y£ðhxH)ú\+$3ÏÊ\
+ K°?OÙ-ëþÍÊ#ÎmY¤'åä3µ¢Ak
+ð&ͽ
+WSªWð³TG{£aûâñ{dSÖa¹oy°fq×v³ÖËòjOÁ°XÑ}fA^µ*¯½óYchÖ3bÈKf6ªRTýFÊ^ÇÜ ô¬ÄÈ¥C
+d=ºBB÷JE®pµKDdÎɦØ!Ëec9v¥àVê&HVÁ1 ÄPT>9[°k®dñÍçgÔ4y.tõr)£dFÒÇh
+'G»°>h÷=´£¶g;ý±et§±²¥¨Ä×aÃÛ °LNævJUøã`æ"Qå
çVdôÖ^ü3«½°é]è#Á^äÚmÉéD>ÝÐå¦Ò-ÉJ7ÀUv¸¹W¢¤Ñó1zNÑ£ÖüĬÀv%º§,ýWZõ`é'tùã-P7psùUãwlP³³ÎMGB¼ä°\_<îdô¡Ú§u'`Ò#ó¢}8¬pOQ%0r*½.h¾ ³-YWiVçYzØIhWCÊ(¦Â±Þßn"z¯´Hëµ+]êûgÀ6cÖ*kÏ
+OãéªýþuPEäaI°5´ÍË¥´;cþÔD½cñ<íDw9>å`¨â¦.,h
+ù:Ï;kS-`
ö§IÍm.m0~ÜI/MÓh{>y5DA-MMðçÏ
bÀiéº,é>»ñ<ú£Zù0óÞ÷KacâÞÂâLï8,XÝCä¡¥O&¡ÜØ|¬hÛZo¬êº"Ù|¯ÙEû!Z´ÈPh8hqa6Á41=Ú+óׯÜÙõþg®cBÄxáûUµ,òahÇì§ÑËì¸bfâìÙúÇè
-¯Ywì¶ Íгdô³Ìv¥@_ÕÅ«_x,t÷áÕ<ØÆQEær½[áÈe_gZ[½Á
+Jwei{*§Bïªl^OAeÚþ®B2ÒjÿÏÞ8]à´óäíí\Ød/åõ¨bÒîªüÅõ^?¬åCÇ4líJ'ÀIÂ:é
¢&Îh»ÜBù;JùsSõ¯4ýüVÒ:÷&/=
+PÉW?ývû?S¯ÃZ
endstream
endobj
376 0 obj
-3350
+3887
endobj
378 0 obj
<</Length 379 0 R/Filter/FlateDecode>>
stream
-x[I,¹¾÷¯Èó@µSkJPÔÖ߯nðaðÍñ<ÿ}"´LU
-ÃêÊRO_¬Ò[?Åò¿ÿ.ërZá«>7>ýÇò×ÿ|¬Î¬Þ-íß_ÿù±.Ö;xÕH¹HñéÌÏ?`wá¼qûþÐÐ}®¡ýûï˾Z[¾þé¼ËIWy9óª.'{^õ¾üjÃ×
-ÚÔyu9¯þ²×çåoßúx~üؤ6ÿ¹-ÖOCÉEYçF&ã¹ÐtjÂÈê,o¥ÇЧS0×
\ñ´.Âûó?ò¸Z}êÅJÿé_
-¢f1ý´Yhj%ÑÒJ¢ªU¨ªDU%ª·°ÛIhj%ÑÒJ¢ªU¨ªDU%ª¬b¦§"ZI´´¢¨-Ù²(=ÑÔJ¢¥Da¦âQ4·¢¨0+0=ÑÔJ¢¥)á4C `l#¹ÜV1 ªýÖ
ªÝP]v[µ;¦ËvªvKtÙ/Õb®Ë¨T]W-jº@ªzX2f/½èÉ6U
c¶ú³Ç´<fÞ1¹ùÓpæ³çr³çþ²ç²ç²ç¢±ç.±çº°çN)Èïú¦ÆÓ84Û^@ûï!Áþòý¯Ç°¶0$ðÓY9K^ãkÏßH)ÃFí¯à¿Ó|XÏëzøÐ ¡{|½àïßð«·_á $v¯Âà»ú×èÖLêý#Aobm\§u}ÆîèUé;,Í£[´q(Gß
±0`p.Èì@ ÙCüøòÚjÝ5h´
-xY=3UHÉkÞâlåF8cÈ"«j®ä¼A2¥ÎìBºA Ð4
Tõª,eÔÀuCúO4Q¾¨E *ñ`¦Qñ¬QDüUøíÊ=
-{£ÄHlþÑ?ÒXL3|ñ¨&Ì{&W'x)¨2 _i²
-íO
-×aÃ;(¦1mu¨Gc\eòê{jM7sy½ò¹h¢ ¸Ùik¡¢½O8C¥ßH²DJ¼ YË[r'Áæ²±¸eîrüÅVõ(±zðÝ 7/ Éá.U£õeq:wy7æ´`{¦¨¹IàTÖìp*L4<ÀH0OLbÀ¸&#h3\!©köÃàоØKħÔu¾ó¶Ç¸¬è¡ 1En ½'kã>î4bU·µ¼Ì[XpmòÖ¿fÁ@qMö%Ûw<JEÖè'$a
-Ôð0¬²ÖgmG}öµBÇUí8¦*ª;%¬GA¾ ÁV¢zì&bNÿ4dðÂdïåk$´Á)ȼøs#d¡f
<×!udÉÇDÊ
-<H
-tåC5`1ã@í__Plj?ï(vàª6!n:õowìÐn_ÉÇÏ*áºõ«JLÄÄ3¢äì).úéã+Ï>6L£¸Åyä nhM)ÛG j]ÀT«íj_ÜÖÇðûFÈ3ækqÚ·CY P
ÛD65_øê9!Ë´3¼X15Ö=ÒNYKÚl×
bW¿òVÊ˾ä5ê¹F»Ußa0Öwd¦Rä×0iS÷OÄÞ<g[ &sÕh<+
-Ám¿ö)Zïgü#Vf»sÈ`Pû</Øâ^W¶ªV[ÍcÅg,6¤Ø&
uAÂåÒÙ\[8rè?
Ìá¸Æõ;ÃUOqWÕï¦êm±y¾.ÞNueä{e3&ðG ¢yjGÁdþ7wß;XÖ£¢Ò4FæÑÔ;F<%¼*Vd¾²#ÝÔÂúM9§*úJ ׸ÁÌÃ+©¾ÒDJy%=ÈÅÄr!doUBÅëÁ<¹ôñh¿à)Dr o/ô½ªWù7WµK¨Xd ~1±w¤èet:{9mÍdÒyë 0íb+d_*,~Ìó¥ ,ÒbÎʱñà*îq1c-«ã³Êr[õYò¥©ìjáM¿ôXÒû®öjÙo¢5)ÐV_ªÌµFÛæpþi<ð"#YW;ànuÌ]ËHg»ü|κ\x;òur{«¨_o*á`èCvîÙôÀO¥\>Ýâ®â`déSL!ÉͲ§±gÐü0ùüWù»×3H樵w¡àNia|]7g©r±{çÛê,û
-Ë9;î}Åw'Eãb´_¤Ñá>F¿æ)JÚv)vv¾uj&[R»Ø6eR<læáAç^ñ¹UêtÖ¹q©CòB&%JPRÖØ¹8³OU®Q§[{oc¼¦+Õ'ä}AçÍ> ÒÎ!dº¹ñxÉ,L³
-£èuQʲËOÌJêãâQø¢oîVÆ1¥ÄI}EÓ+ !Î;d}**(Ï;ô¬å#ÜT21yy½Úöy?È®äÙ°(m&TÎ@ªéÓf
-o¯Ê*¿w¸]ÄËñ3¼'°YßvGbaXVÈ/5wxOÀ6÷Ì@~` ê¬à^]
-sÇ.ü
-8¾-4¯«\÷j4®íèÅu|Å~
-úÒ\N¬P0Ì{êì0®:(ë.ÞdNBù÷nú0þzy:õ}ù7Ó*t'.+±KHI¥ÔÈÖ(ó`)a5%²AïÛÃt§Ø2-¦çàD
- RYÚþÊKþ£)HÉTYa§×¦'=
îÝÁÅ8Ë+=¹Rn÷«£OÌR}*°[éÙPLÁª¿tè/5þå+])5MÙ³,æä)°.ë'ý.ãåÑy¬zÓº¶zªñ¿] ?îyUj¢g.¸ÿæ#ÛV5k:=ð·k¨hµËÁál_½(WW!`þá^8ÿÜ·ËbÕà§t¾ ò-2@ÞañN?âÁV!@Úë\ËAçû6_hNrûÉ8Óãç}ã÷%vÆ7«
+xµ\I$»¾Ï¯¨³¡ÛR¹îªo|0¾y~ÿ}kURJÙïazº³´"¾XYæÝÞþûí?7s{3ñ×ͺøsé篿ýù·çÓ¿_ÿùíÇÏov9ÞÃm7á}¿ýüÛí¯ýn?ÿq7öñó_ß?¿ýROX7=a½Ygü徿o¯}uæñ¶Þ÷þÜ>oñ7ÿx÷òÑöÜÖǽÃOOmþkßÝãm¹«y
òûs+9K¹ò8=ô°§ùä]Ëí(À3Sv-{ÂÀ»íKüáç¾m¯r¨øAîµ=;æEV<JYÉÇb³L½Í ýù§|XÞÒ.#Áma{wà"
+9¹myÿЩvÏ3j
+¶ÝD¾"1Qä$ üËc±lPÐ$¦L2<[òÐø»-ÂÿQ¹#oK8×¼K2T0ùÌ«ôÐRg$xXÇs#ä
+!¶}TL1ò¡½YähpÊ£cuÂõ¿½7Q ÊàÆDq´¢OmHJdg1}<_/*ÌqÒ~
+ìºq1Ô]£ðj±Ë#QpïÞ
+SåW|]ùâ|"dg(LCvJíìäýKH'ÇOûao\̾7¸gW
½bªïÛIe8âZ¼
DZc©ò;h¯>æ,OH>¯Í
ÀÌÕu¿´¶g_Ûq
+b>3!õKAõÑÕZµ^fçS´·¨[H'ØÈð¹Ç! ¤Ùékç
+â]Õn\±¸$iÿãÌÅáiE:Å[øëù<menÑKÀl22UA^¿5,§$J7ëäóÌÄqâªl-µí ìÆ©R#gà(
+Ò\xßjGã^gB;£,øFÊ
ÉÂÆ{Aûy
+ý0ºÊ>¨m/8</)±?
+Ak"¨Dæþ#R±uE¥¸gx&¨h¤<Å
Ýâ¼®
+:*<rU¢.²«\ÛômßËà©×m¼5®g=9lÇcRÈ=E\!¬(A×]ýk
+¯õika¥Ù¥&ÔAVÎÑjshKØ*Nù§|Àá1`ñOV3aY
+£}m«òPªjãmä±öF½zvÁÓIRZ5ÎRH¿®ãÎQNC|t©O$ǽ×ô°$6Õx té`Óó*Ûl"kÊ?!IJ>LÂÚBrc·¾ðvÓreöDÚ^V)ÅbûW¼Òïx,µqíÅ
+|ÖU¯JÎ&Òø¯TçD
+7ÖSíð¶qã_Ñ÷£ãCA¼¸vb!r
+íE©/1±H±Í·áAã!UtÕòÙ\Û!ÕÓô%£3³â¼68ãTÉè99²,8ø.?¨Ò-Íeë&t%FCªÈRîhü6Wº#U¬
+(³p\ávT¤Te,¬³^çéY JZʼ¢)öàù(rë>ñSø×u¥ºÇë4ðDFET¦cYÆ
%Dÿ¥»è6ÇuJJEuQ\
+7Eniwõwà µ{@Uì%hâb,²þ®û.¨Ú&n7Ä}Ig~svyi%º°ÉçI§©.èc(ñ½Z£|{ÕÞèT0|
+ñY2×g
+7oZöÔ{ß95Û}°èÞ
äOév-W¥<©9qVY±1Jë"X·'U¤¢CCE4Ö
+A?$Æ?Ñ©çåuUÃaçN{M:Ñll¡
+«³Õ!¤ù$viº s@Ò¶¼èò'7- @Ë¿£àu.ÕÛ{Ußgë6¬6^:!OÝö55
+nq*ðVx`kL6ѵª.W:úý'Pü*ôá_.h"jQÌôÁ-5`ÂÇö¢PÖ$ôU^];{ÁÒÂoæì²cì¥ËÜ´4¹É:=0$áaÈIh|ìzû¡L¡|á
¦%ÊXÜÅ0±ÌË»T¡ãõä$RÝ@¢C¨·ûÔy`púhÈÊÏä4½¶WQ%Þ
+5Ã(ðÿKxgïÄÆ@Y¾hiÜÚ4³Ø¹fWôêR>è<ëÆÊws;KÏwo&%ß'ÃîC½KÝLÒô ã"qª¯¥û^Ñz"ë}ܶ/+#¤¨²,4²¢!¿S]ù4üt
+æ?õNàkÑYëûÒ§ë(=,S&cú\ø»±/1 ;¯¸Y»í©êϦ9¾ zÇÁ¬ZFÔäÎõÊ[:cô4X¡Ç£m'WoeªöWçÝ.ÑÔ}'LòÁ7ëÉÎvlQJªçÄ|¦{EpYt£Ê=
+õèrY_QýI¢¡ÙA¾Æ@024V¦%ª#{½Xø\öy©íÃxû!ÔZàL¡v¬í]Û«nÐ.7e¢(èú÷ÞèÂwüù¼ì3xå¬ÊB¶n#¬ï^a1§n;ôëù*¢Ý|²$T[»vûým/Ëíæ äê»éÊ>wXTpÌ:zM1Üs½ Ê
+/ÈE<Ü@-Ùÿº³¿¿¡åÓÂ<´Áêí«c<©âRÛîÎe©PªûÒZzíf±§7RÛÉ}ÛîÆ="³M\c¿¼ºIÃÝäZíÝlÑMýtíÜ0[¯&ñÐG~wh9ò9½ïùåÜaÊ#H_*Ñ.l÷<=¯¸>»_nÿCJ,
endstream
endobj
379 0 obj
-2971
+3738
endobj
381 0 obj
<</Length 382 0 R/Filter/FlateDecode>>
stream
-xÅ[K+»Þϯð:à^VCcðxì@v'9Å%»< äîÝäïGRUI¥WËøXVZúôÕSñ.Oÿ~ûå$Ngá¿Z©üçº
Ï_ÿzúÓoNÿzûv
-ÝN¼¯±[¬ÞÞuê§ðï¿Ã/¿þýÍè÷åd8ý|RÒ¾oñû?O|ËOfÝÞMê>Pl11ìEÁÔE%üHZYzA4÷FQ³èwD¡E©Ds/ªÕãDcb/¦Þ(ªÝê$QheQêÑÜ¢V0 ÅD±ESoUqIZYzA4÷¨)DM%j
-QSJÃ`Å^M½QTúùçÍV¥^ͽQt3±±äR3ç[,} ú¢Øª"©uÉiCd×5eMæ³®9i2auM:©kVL9]ÓÆdNé&F×o2+t½³&o»®·Îä}ÕõÞ¼qºÁ¶Fs~ÀxlRíÆ±i8Öþc?Öác5=ÖÄce;Ö§c9Rû@w$xiµS«cY»cyY»c\Y»c?Y»c"Y»cY»cèX»cËX»c®X»cX»µ;¹Ùp¾CßüË)yÝïoÆ-_ú÷¿~ûp'é¿ýmËåû?Þîßß¾UÖü´ëëå¬vñq9¯»³ÛåÇÅÿp»üùûï{#)¥IzC-³Þ
ñ²jWùF:ìtb½¸ðÅ¿Ðå.Q
-~ö cØÕ
-Þ 2<"÷mþíoƶó}÷0ªð¿ÙѺßÒÞºýRv[<ô%Rð>_âÌî[gü?.EJß6»ÓÊäúdÏø]PËNÆn| °»0öv9o
-#<îZ"ët d
³e/46È&À¬®ÇÜùáÔ8½ rA6EbÆÁ@dìñ?z&J³KOd ÊÞp7içâ×
-HûÅ(XÖTÈ@Tölà[«±y¨ö&$,
-JSö.
-w¯0³vHs²e+8lüJPÛüÃÚ/Æî c «d{£Z\ªêËû
TFÊyÙbË
-äÒvÝØ-k`n
Ä9£¼ß°CÌô ,LVµGJËY#ß!ïaÌ@´¸Ð⯸Û}
ÍzÏ=H$Ú3ƽѾ`
-üSr,
-9ï0ÃÈÏXÀ^kõABÏÕPI\ËÿH#äâ_>f¦
-yQ»¸)k«m¹ÐÇY°L Ãã1üäÏóæ£åe a&ÌrÆÝBCè]rúÉq±ÊPh fO$+`è¢ä#û@°CtX¶tÞñ-¯ÈbOisÂÄ\!0ËÇã¢æÞCpØÊ+ÃF&®ùè%*b&Æ}Cw2)fóÜ3«tb,NE_X9û-÷L?ÆgG«ÏEÀ¨ÌÈi/U&-¨C|Ï'ì4À=Ðk°¢§mèSb¦6fû&ãYƺ¾*RvÆõÃÒM
-üÝöB[¸m£{6_]Bí¦]÷)ÿÙ$úM<
-øýElú>ç÷
-öܱs÷L!'Rd«Ø^6¥Éö:`ä´ ½ÏS_¼o£ù²2T8ùHÆÅï
-½¼nAb¶íf³MÍmd1F4E
-Ö ÷Åøë(¬È]çî3áF´UÑÆØøD´ÙNY2áEî&I!oÁÂçúàÉk1/#vk
-¸Ä¶àÊÉ-ÄRu@l,/<lIµÍåEXÀ}eâÂÒÀ1
Ïnm²ü²ÍHT5ÅË
-ò3Ö½NN®
-=SðAí*ï
-îjmV1LFBªç:«â´Ø6/²{/?-j6´£`UIXôót.¥mRt4/y©¤/]Õ?e]FW¸Ì,,â9À¿ò¬Fê)#EãFDw0ð
-¤jVz·¥Ä0µY;¸L¹¥::ø
bá(+|®ª¤5Øëbd¸Qd¨ "ã_R
-±³SJ&½yT²U´H+!CÌ?|BÙîÅê2& 9Y´ _ºg
-ÆCuKVxʯîëN½Mé$t[º£>J¾
-Ü{ªcºcYféCD®q}ÉÏn*Ó?Å£pdÒê3µÛ¤Y}
-¦òäÐQèT1é
^_Ô&çôà'!ºð C:ÒÛbôÍò=÷dÞMg
-`÷¯·9úѱ0Õ1`aQY¿ÉÔb»¢fϾçâ²Ëõâ6>IaíYo¼[T¦³-}Åß§,YìÕáªlbîsù¥÷¶´lÒµIÚñ$uMG&n}¬Ò_gÌDÃ{¶ê,
2mòÃz:öW=«XYL£¨þ<h¯l}®Ã0µóÑÂX<¡+Æ!(ÏÛÇ@¸Ò"4¥¤¶M¡+arTR¥r_.öÍÊ\/i`p±ÞIçUQ
-éäa;WT»ôÃÌÀz¼Z¦¨)ݸ`ÆÆ,p¨VnÉ]ÉK9¡¨©b_!KÔ=
-h¦:nR³ËµÌ1ªBíúg©Ív®°xÇÚU¯Íq;Ãç±°Udä'$ñ': #m)0&lh²¦eYX*KÕ-uÇØaìiíÖd
-¡Ómy-ŵeàîw±ðÄ*võ9wÈ^qp6ÊnÛÑT¶ÙEÞkÙEüúæRs¯ÜJ(vç¹û6)1Ár#¾Gì_*ZiâÃ`Mz2´HLI´tô°9¼çÑ'·Ó_1qÅe#Ró8:E6;9BnA;<¾%˳âiÕvq) ¦£Ùz&èâx½yá'eÌ?
-[/i)=þ²Â½É¤³H¶}iå%~Lgeéÿ¥ö²ãNôRÑÎeÄCÒþ²YuÎn2·×àjS[¹/
-ínTxJ<jÍ+ôkw=@Å^u*ÚH>³¬DVVuØøheÚ»m]õ
- i+ºGâ(çæÛ¦á~YçDù ìW!MjW<cßàÿâØ¤nÃ)H¶yÅI¤ÝÁÉ\¬9SaGüسîÅ[þ)vkGsL¹w´2ênyüßÏÃé!Ωø«°¸n«Ûê4Ë;øÀ¥w3á³e*'=g#@¹v+ÌíLá8Õ_TÛ5q½yRäpWJĺªCUÙoITÉ¿+Xo©þï`U V£åEÁö
-ØÃ?
-Ѧ¤mSþ:¼Â
-[,hIj£ÚÞÂ> Sn«]k}2ôáFt©IíÍù
-pSâ®\>;çj<¯Jyù¢`¯<ïMËN¨ÅosÚ½ ë±úÜd
)nR´õ®¤_©&5(ÁV
-öÕÍ}ÎØçp
-ÜH§jX¾Å¤ÀÛÕE84ÕÇ¿J'o±Ä®¦¶¤SZ̬hÃo ÐTU&oðâî·OåÉ"
ñÄʼ¡O¸"ãTÞu
+x\I¯#¹
+¾÷¯ð9_¤*-%À00Ýí:ä6@9rËä sÉß"E©ä× ¼iUÅõ#)Y}èÛ¾üû¦nwÿéôÿúþþþ·ÛÿpûWþ2ýï÷|ùúãÞìÇqó*|øÛ¿Þþxú[¸ýøûCéç~yýøòkÿÙùö¦u|ã·Ï»y¸ÛwýðÛó¾?Mÿv:?Ï·<JïiÞÃcSÏ»e½^Þæé:(¿ïMZEÎî¾çç;yÁmqçå_C2"±ßòK¡QR¦)¿â(ÁÞ&ôÅwNïiª¤Â~2©qWe®ÌاVÃîËÚ>x²Á§<ëözþåDzîÃÝܱñhsÿOò±þy<Ü© y¸îñ°ûs3=0:ØÏéÌjBwNEࢷæ·{$Ò-û ¯@J'#½Ê{VĪ`È6<+ßG&;ßlóEQ@ò>ʨH¬0Öÿbx¸8ÐïmÊĶD%¬i_#Ý´¿¸ù»Ûð}PªÆTkA¹ªzl i·ýëòrÇ^ «3òýé\üÄ1V=ñ¥,ÕIôÈHÈ·NØmûØ:V8¢EÆì½)îÂjb{)²%nÄGrîÚÔVWâ*
+-ZÓ
+ûþ:U(UÕ:ÒH,òº
+`vTÖE=¸µ8UÀ´ga/¶n²>÷Ò6ÙY¢Nñbxí35_MBñ=9Òg¤ì1
+°ÈÑmé×,¤ñÊáÒjijçt¡ø\à]ðæÚÁYjÕ¦>Ìû
)ª]}æûê<óÎÚöÂï}#<Ý|}6ÓýÀEæ9B[zNFs¡k0EA1ªNäHR|X²v¾ ìð;}¹8 Æ]xª}ÑdN¨¦0OGxÉ¡Ñ#nY``4_zíÀâ,UM (,L®Á<Ð
+¦¢¶ÄgâÖ{ŸVäIÍs³GEÁÉíUL,éhôPør¼(9
!ÎδöÎ|¶L¢Â©à!Å=W:ÙN
+à[ùÒ1oÎ!A
+5S¹ÛÛ¥r ¬Ï!ÜT/"v+&øèax\ÙqE¾ãÁôêÂG+Ö:.Ù+3X¦ª7¡ð½ÒJA?#>Ô¥óy¹µ-ÐæJµ4ÓÕ[Y
jÖCq¬e$Ãæ»%Ïs263.¢·.,ôÐïSèöÈZKÔZN·°µZµxբà ö²½Ðc©(Fº2v竨2Ecã|5`Ò±t{ÃáÓ_mè¿VV0»ÖÑñôB\
+Ý«×}ÀY;ÍjëÓ NÐXh$>»\äng>dWX4ù,X rRéNj6úV¦£ñå&\çîS<5
+-*´ÕRºÖÇüKgQn±k0ÎTõ©*Æã,Ô.Å·
+
T"/ªSÜ»û6óªÒ¤Þ
+¡ì.´^Cï½ÉÜÑï¯DæÅqWeþz¾O
{lCQ-
ÿÎ:jq+5þGE3¡7Â*¨¡ÍD§XÙâËoÝ·5öW×îxí úRÍçé'g9 gy²ÎXëmUÞ0]ÖxãbÉ
2ßÕÇö̱hÛ:Ürk¥L÷Ø
·pul,+¼mÂmÝAê5®>pÙ\¤oÃÜv¾¨º¾¿Vè_cQ×<¥²'øL-ÛGd/e¶²v"ãgôÕ:MÅcÚÛìã$Ît#¨W¼pصV£euïaÅzìA×¾HMä;¿±Æ?Çè^°é@%X-×Cy({ñB뢯ÝxÀÒ
+ëÒmhV¥×{]þê¡"É®ûÂ++ÆÒºÀ¥àY
´¾Õ</PoƲÓ#e°/ô|÷^f¾g6mÖ±IN$ë7Õc?i ¡
+»#?SfcA.Eï,vÑò=ë¤mûwOtç¦F L
+\HÀV¸tgæy\
¢ðÈ`G
+Û2è3)ú¡Q3°ò?ñïS·^Ähûô[ÍïI¡eù&Ö¥¾ÒLJ}^A+éÎJ¿úå÷¢]VÎÒÜ óm¢1Õ:ª)Aiçå
+-+àV¯:M2¤ýÐ9èpÖz£ÞêÒLU½´FºËÚà
+¼LÄþ
+í.¿¬5!7Né
f§THq¯Ï0«U®à¡î]<ãÁ B
+êUßåõS±§óRK±ëAФc¬ÊpƼ(Ó'ãXÁH%JuÄñM¼hV^f-½ÐbMÎM°ìôUª°eZÂÓhVôÚJDû§ygk%à-xQ]èzµÔ
+Ñ\¸ó±u MZÞ¥}vaqXéïël$Zµ$d¡ÇY×fs _E RuTÕtGÞ÷æç¾Òzø<ûHn)ëã¢zøKcíX¼Ñu2O§Hà±å½S¬ª5jo¬ì8iZKh0D0g×
+$|ÌaÕ4V\Y}ÙÎX¢YZ#¨ÝÏÛ@Ø×nã¢ù¢\
+ßÊJ#-¢Å
+äÕÌwXCåã©yNR Ëã¦Û&ýP2óLõCÃp½íï×Ñ4¡N/À½$º:ÂÉÊAOT8é
+J¯<²Ç×6)³xP£¬,Ü·¿RÞi¦[,RúK}9T¯-uËê®J'Ð
+U{~cÒÈ=±Håé,Ã
+þV1Që´Áêô¨<ó'vÐû35oô
+j¤µ¼>Ð6ñÁQ-Wë=I¼à2<;öúé
+m4Á§S'ë¨nîPI9©Æ-ùöi`ÃoIø°£§ûI94®Zzòß
+8²XIö´ìfä
+À0¨WSoô½½Y)]¾ùþu]6p¦Y~µP ú们õôó[-«
+Ìxõáð]3ÒÐSEö˽Xq/ò3½ÑÐÖà(ÙRw²E÷£P¥2íÛ¬=8.
+
+ã´©4
+©iw^ðSc}Â`¢^<
+¡ë=Z©6õèî¡nÀ"ÛùutÄkÍz²Ô,-²áLÿ+Ðw_9pÇýFüüv
+èÛÐÚO»½,[#?G~ïDºU¬qQ(-H4ÍÔ£*tH|1©w×g"c/Ô76|79bAdÆJ~±
ÌBª»×¡MÒå«
£¼Õ_Õèd ØÜçèÇÃ]"S)ÊqMF«bÐß· 7»%ó¢aÕ|ËÇ@°CÚ¤3z¬ø²{Ä©R?ímUèMÞÁk=§S¾iByU¿¿Ö-¡++íÊ?¦ÕÒ+¢`!æ%Üxá8â5ÎÀh+ä;MùÖ¢HHf,~7Ò3߬¸u?<ΰö¶TC!GúúÛ§-°«õïýV[
+ÊáZ0d¡@BVúãylàÅ`Q¢)ر¦lD÷e p×£+ðhد`¢\Uþtݲ>Ê D
+IÔr¤î©"ºL²>pJVÿÄÍ3(m)+^î;ݯÁÊ?D:µiÙ_ëXþP+-2ñ³ÕÆæ~;²©H{¨íýJø¡2*%Q±åûCM@i£ÓEnîôò¬}b"ÝZ¼fÈîXý?|-BþPºÒjzÅ˪|}OL¬}~½ÌHNcþzû/<NMÆ
endstream
endobj
382 0 obj
-3336
+3948
endobj
384 0 obj
<</Length 385 0 R/Filter/FlateDecode>>
stream
-xµ[[+¹~_áçÀLtku7=öòv<,yKv!d»/ùû)©$UI%µ<{6ðq[]ÝÒ§¯îõ¦Oÿ}ùå¤N¯
-¾zmàsÝÃç¯ÿ<ýí§ÿ¼|;
áM½íqؼÝÙ°:
ùSúòëO/ξ-'ïýÛzúùd´ñêß§¿¾ðëOnÝߢ#ÁðÄp
ò(&¢*ÅDqJ½ù"W$GQF£¨µ®ï$#(G¢Ù`
ðÄò(
-ÒhÕÛÊ&W$GQFQToÆ+&FhQwÚ4o¼ Á4re,F
Û-·õæ¹¼«¶Þ!·Î¶àhwl³Ë`[al[h%%Ë@àj)>æñ®Çï]Ç:æHÃÜú´Ù³k¡¬åJèd¹ê(»ÚU®:êî;®;JÀ®ÕÑ$-æ/§bo/ÆÚÁt~þãôÇÐKøöãgu¿è³ÚÔõbÎú~yÝÎZ
Oõ?(÷Ëë~VGá
->6øÐ6|ÛÕíòºAþÕÃMq8=Á+ÿ_Â<Þî¢(å/ñx
-cã¹ã]i68¿
-
àç8}·Ëß?ÿüòø|ùÖ àüp(Àã.ÿêI n~_x
-n¸l§>.¯6ÍSkDd»Ô("
-J^/.sC õ}vaFðÒ0S[u»Ë?Û!RNÿ)Ö=Ej3Àä)ÉüÎysÍË õÆ5÷Ä[Á1r#x^Báùà^Y6nÂ#çèðm°±:Îd3ÇIg,xË¿eé`1EÏïo¶å#SÉ^\-qlÃõ2׼¦µåi-iyÏo/s2îâÏ6JíðUiI=áWS(«?Ø®ZÜ®´¦±$Å'¥ýáÚqEʨDÈ@´8½¥<'*µÖçBÎabk\Ðå{îø¨fÏѦÜÙjëaM+,q¶"
-QoiݨøòxÓ¹9¯ZdËvÅ'&}Ë0Túm^BtçßË&é±Yl)h&¸ÂAÃØ5·²û (¢SÆoñh7²]¿¦aR½+ÂCZúG²¹|Ñá1lõ¹G»e®QwøWþâÇEfCb2Eâ)Ý é7kQ4Âz;Уs]EÓå¢ç_PøvÁ¡ÀÀ¤pt ļf¢íq+.ݽÆ?e 0û}Yj×Í#Nß#-EÔXÆrÖ®1ØP×^detqûyÑfÈ-Û¦²&øÒÿúRYÒ,°HÃ]3FZOLVd©øcÒÁlÑøk·¶"±©rÊ,,c¶i'kfõØ@_b3Esõ"¬OA aä3iî!eæù¬ÌɶeG°òX^ÅrvyT¸«5XÑpñJqÊ,`Íä¦(x#ôïÓL$²çÿ>aغæQàÞêÚc
- ÛEìÎòV¢íF@(ç«:X
-Þ²ò8¿öô@v±
$Ï
²L fGÛS·kGÑÉÙú° ®2Ã@¸÷êìתHo/±DýK.ï½ì寥ÞoÙ)1JÁë4(IF
ÏIp`[-ð@_^9áζ»Sz©ßhZ ³û¨q§D¶3£®ÎS´¼
½`¹<óßxµCÒSvYBéðB
-dM:#½C-OJ¯¥1í{c`IöT[&vøôè|
-
¬é`1£ÛDui¶Ò¶,ÜÂ-£øe!èZ)Ýp¯HòÊYoUÕ4´m¨²¦¨ä¥N44KJà3Å»Lv%Îöª!3H*SÕ¯wùì%3« ¢Ð¥Ë©Èϳ³z°ÂîRügZ`±RºVÐÂk¶µ<ð»@^)úÈÎ)>¡*Gùmv¹'p}ímÜàö|)Î$t1#íù6L''°Msjf3¹öâ.¯Ýàµ8A¾sÒ°
-{ÇÔ%ïaÕÙvÖ;EÈì2
-çûV ÷ r½§ÙÓåz8:{nø
-X¹ÚÒ«0åEM«Bï¹;÷V2¶OÒ4<QÀa\÷)eeÊ3åGÙ²äsIôÁqÀê\V-´(Ø$AÚ82|Ó$³[áËs±ÄrËÙêã®÷JR/¹6ò®¾¶9F9F¡2aLÛxq6&EæS4ñuægï¬þÆÈZåßém
-·m\'¯ªÜ4 ÇÌê+ZièàµtV?ÅËzN¯M§ºL4'Ö~öi5öki2 Ùèè±æGEg5Öi]¢Twl«;"[j¥©Kã#S|ô!«Ò0-UL&9Uª@ÚQ¨¼É;7âA
-Sjiõû÷::¦ÌàaÊ=éÕøA={öϵpô©Å`Ù½LÛ·ÊP#WÕiqXÛ^ÄD}ÍöEõeä,xC§¾ð¹!C;Ô¶Á3ÂöøT*êT³¯kÇ·UÆwüïÍ ¥PÌ}/Rum3]U衯Áèõæ=.© Lä G8üs`¡6Â/à%(S"ò5&«
-Á+}±÷\g©<Y¤nv|\VÍ]^?ì´¨_¡<*$í²§0-}£jòìn³L7
-¶j^áö«¥LÑÀB}|%²Ø¶r[ê=
hRåÚ§hŸÏÔJ~Æò
+x[K$É
+¾Ï¯¨³¡ÛñÌÌ¢`º§òàÛBÆ7¯
+>v/û÷I!Å#³rXvéÊÎÐ[¤(õ®o|ûí¦no*þsÑ&þ\Cúùû¯·¿ÿåö¿üÇôßïÿùöñõM+ó¾ÞVâϯÝþºûÖ·¯ÿã¾Õ¯öñfîKx¼¹ûò\üãMß˳ôÓw£â¯øÌ<Þì}õËg~Þ³¾±èô,îáâÓ
ºò|uy¬°ìgs>{(}v~ðPÖ*8/Ó+Îöàc_v¾º<]à P¶GY)Î}âÓùf¿r^
+ëÒE;w÷zfy÷A7QÕQtb¬`ïÂý¯"ü<t-Ò2ÏêA«_EzûÐw·G)º¸Éü¥_Gvm¬%º^\Â6(l±uh7Eþ^ɦE#Ø:O¸OÞÑÅçP%\ìÜW²¯´!FPɧ2UøÁbÊ9?1¢a"sÎ,ÏìåÇ¢Éàµ8`Æp?Fq¹ÑÜõ!Ôi>¬A.ù°s×Zê&
+ä´0*í´0ÈÄi%[c ñF®À2ÖS?vñ(»¨Î^N-Ìúª²Ìɪ£ºt÷~¡=äÀáÒÇV».Ñ#ñ©¤Ýò))¿¹ l«²Ë³È/öÜÞM¨+x £Y:í Üdù©ºßK³$A~u^ÁY¸Ö[+¶
+qòjl.ègÁ¦©ìÑOÉKÎqìLáÔîÒì
+WpYÉI ø[BhíL¥iæq£c«élàÌjü¶þD?@À?c(²K8Hï@ÈÞUÅ
+P èQa6\07z7öü1Ã
,i#ÕÊ¡xমvsh$½ÊOdu*y àó³EU%Æ×-M²b]X(QZ²pyâ çòâ
+jÄØ;lrNÁ'$®)î"¤{(´G©¶åæ_ôLMÞxKý>
Æ¿o7ï5ªv½
dJÏlÁY¹ bO<ºH(ïªjDÚJ=£vXr$uÈ(NÑ¢Ê
+þØCTK¢Æa_ì:|»æ®:å¼RD×f©iÊ:&íR»Ii!Ͻ«¥¨ø(¾YTÐÛ»èõ *K°}ê@§ã
+ ?0þiýßçêm 9¼ª~v¡A|ä6j~*¶ißÐEíWç¦Ð]x%ºü¼ÑVQ¨+ÎXÈÎÜics÷´yÙY=¶1ÿÖB£á¾?ÙµjªD~7ñ¯&%za)ÑFÕ ïâtHY¼5~0,cñ)Ì£»vªÝÞý@igæÂ6ù·1\U¥ÔMYÀÝÀ §^f0v%§¤\¥|1ȹ£¶tö·ÚwwÅ[Øê-ú¥8-ÝYí&-TÚbJ6èëGðzðÚø`@´7&ý!¢Ã¸WùQÚ93ôdî7«¢`?²G2áX-Ïz¡j
+-÷§êð3»_Ã@I§VoºÝ@8§B=¡c´&F¯ [PMÐ>l®ªAú,
f`+êvn$'>§§AXaý*vébÇ$³×8HNF=vÁ#¿À»êóÂt^.±Ùó44ûXôj<3R»
+&
BÀÞH²áÎE¦¯©«_1伯í,^4îº wêÌq÷Äi at 1Äø¯Þ¦¸©ygl,Ö¶Løãø)Ø$¢ë·müþ Àþ=-}ë½ÚN9þl%]Q4Ä
+
¦Ö
+¿µÅÙ*©qîiKÊ¿8ùé*)fÄ´wMZl-:iS#:ePSÚåMÁÉÑÚʵAè~
+fÚWÕ1Òõ
+?5úºNòUhé&T³ØÝ·÷D£r×lÁ¨!ά°Ý)lXc±064-~mïM*¨£)YÒõ
´îB#˹`h¹¹Möä`û~ô"x]_nÏ¢gr¤iö^bî5{fÍ&¨¾°j¦Ã¦]ý W1Ý,8
+¬
+6Â)%zºHõ2 h]¶vÎÜ33ºâËÞ"£ëÎ`íÅ*a Òì¢ Kº÷(¯·ôfpàÅp¬ê_É&¶Âáºo7nÿ¬>õW)î¦÷¦ºk %þb×Üx1ÍWÞÂL=~dÅÍÓÁQy_wì`{#dPû/l'ЫÏ.]&²$çÛ\Gp¯xz\ÞÔGJ<÷VrjWzé#>Jvoì>ÅzÖD)¿&6s2ZTEÁÆJâx¥'ÙÀâB[ÛF`}æëJ³Ýo,àUBÅ""xehm6Áà^ÚºîJ]«T$;xfG»#e0'´T/5Ö±t?µe»¾"xdIøú¡}ÉïØ½%%ѻܵHÿr|võe©o
+.ßô'WÚΪ°ÑÅý*3@ofÀÊùÅ·Ak!Ú=
+¡¤-Vný
+SeA4b(/µÃ¯tv3Ö´+j߸ã0-ä0ÆWS _ïµ½ÏêCíMåÌEõz`Hªáv˵J-µd£h¾¬¹ £Kz@8Û2µJsB±Ñ[Äõ
+ÖwÕzm°Îüïú=qüÜaî2ó`ãRÄ«dzðU9^ïrB,º¬§WÌ´ÌpX'ÌVíT¸²ï'hy*üóª5M[F^¹èf½üÏÜ3´ê½«)ÀOs(ØúTéL{.q1Õ/
+Ö- 0®*6¤ÞÒ;þbå.©9èß¾Ñé.F¸fêÊÞw¿ûâåÍÅw~Un~¡×¸ÿ41úå¼:Ù´ ½F60]%9Ì*]ûv_ö¶eýÄlð¶ÜyDrT<o½«L£Ê¡^¥½ý]-{WÓ[Úé¸m»wZ<3ô}-[>3dÈ¢¾çåCÈ
+QóÞÒÑhûõã´úÛÿý
endstream
endobj
385 0 obj
-3158
+3172
endobj
387 0 obj
<</Length 388 0 R/Filter/FlateDecode>>
stream
-xÍZKk¹Þ÷¯ð:à^ç!0n»;ÝM²Ù%32Mþ~JU%©ô:²ïl.
-nëΩO_=%õªOÿ{ùõ¤Ng_Wmàsóáó·þöÓ_¾Â°ÞÓâWÆÕ)üýåOüå·_}]Nëb_ÝéÑ+ÜLWÿ9ýõE^ÿrrÿyEU½Ú$JWY4hEQçíëDé*ÆQÍ£$ê|&Q¼¢<Ê¢iE-¼ÄDé*ÆQÍ£(j|À5ÒU£$GI^bÏ¢x%DyEÓ¨PÕÌÓU£$GQt3*ÙzÙ\^S[¯Ëfkà]^[#ë2ì¶Îe\mËÀÙVù-´#ÝI½cÒóòzÇì:&Ð1GiP¯4-/fmâºcgâºcJâºc-âºcâºÃyqÝ¡µ¸nK>lèâ~=%ßõþõb Ð(®îë§?~.'
-ß~úûE}^Ïö¢ï×ó~QöªÕEݯú¢«¹¨þáï׳^.ê~À_wµ*Û$ÖðO+§Âd+mqfOÈ]yµi|@çôÞ^¦ZÕ?Q«ô(OÚëYþñõç¯oyг^¿þÝ
-j θëQðú3.ày+ÑÔ½ÒaÜ #°ÊµªOÁÚ
-¾KÃÛêÕðÆ2ð|w+x¡Þ®çqLt°BTÛ@TwP Dåo8Ûçd|û`Üî¤À¯Àë0q 8®±0¿X
-æç
m`È´À±)xk
-Ïj9õsû)CÄÕþAXÞzQQæ1MKÖ¶ÈRA9,·ÊSo«m'@ Î{ã[;ëcþ´²Z
ãÁȯßB¦¨·#qfqØãpHÚ2 ÈX}¢UÊdô Ea:Ì@s~mªìk5ê;t
-׿·µQ»k¼.uKjsèó
%²{`Òæ¬ÖÄuI?Mb
Ûí3"Ý>*$±»Lz
-ÂìéCæpm.ÞSÊëÖ=¼>è¤
·|ìÔηТXØ3À /ÕZB0}lS$&æ±Q¾b,x¦^õëÞ`
-j½ªò0cbXKÑÖ>ÜÏ/x#ÛåBɽ°áKí´FDbh!©lahwß4êRÖSvØ©³aoZ!
{åDÊBm¨rÇ}O?Ó«{zeøá¾ÛÀ*[§ mkÛß{&c/ÊܤæÉ¹©þàô©£ÃÃòiuïLð¾ZÓ½×VªËH`iÿ,@ª¿RW?BöÚ²
%C¸¿_@·LÙCé!Ãçã.òÑý5õ¤&¨QP§.´¯OILöÕzÿpa\êSùá¶9pøtEÃ[8¦<·kÓrYxØL{n-=ó÷¥x²Å²v´0óZ¦Û¶Eráo!7Ñ¢¿ESÑÂã¦z¹$KÐÔÙ/¶ÓtÕÈvH,=èÚeÄVÙ<¶Þ¬
-Q©Q
-VÝmA-ǬªDÜÇ©0{Öj«Ì¼È
-p³æ8*ðqWö3´_ÛVQ\ûzq§¾ÚìiµóÕB ûêÐò·½Å &éåÆÁhBñ©ð³k4æßéþ@4Ey* î¤øM¦h5zI&áþ3kDM}ÛfJ6¢kÜ=(s
Ø¿suõhqà/m;8ÀW)í8
æk³4aoèwðÎ5SÜÖx0UC7,v;¸Áþ]kòÞUn£UOý«úôCudî½ìþq"6hâÉõ!ëT)zx@ºÍRᆱh¹eΫ¡{-7;¶+ÄÑ ¸åê (!7£ÄÂj#X6ËVÉp/eæ&õèn2nr¶3ÊH÷ÄéÈçM§dÕÙ
ÙlRó§x`s²Ó«^ íÒÚÊCÃ^d¥
Fä=EÄòtJWÂ)?õÚÖür'_-,µzý
MV;
-i7K¸QÄNÓ¨öbRÔè´Ì`-ŧP)Ûv¾·WÁ(qOçSòr¢^Sä¦CsúdËÎ@[¶oÊ, ÚÚ:ÍP
lÔÇÙ£±iG¤Ì>£?LZ¢ "(yãw£ô4wç}@ÅfàÓ§¯rþÞS¤¶µ{*xôò±l\rN2Z¨âá5ò)S{Úã¶0á¢òëÙÅÀðBdúáÚÎäã0 Ýî«ó2;>ÓãçøGë^í|¡òCf
-éo§ÿ¸-îW
+x\K$¹¾Ï¯¨³¡Ûz¦2¡(è®:ø¶0àñÍkïÅß
+Iñ^]zª2SR(â§"˼ÛÛÿ¾ý÷fno&\¬ËÓûõö×?ÝþSn¿ýëÛ÷߬ïë-í=Ý~þãöçWºm·ÿ¼ûøùïoÏß~é¯l7kó¿Ý£_âãÍÞ{¼¹{Zàó²=ÞÂ}ñås¾ëÌÝG¼÷píÁåµ|ÇÛeðßþe¶°ËKnráûX$Ïû'¶ü|hò¦kÛë
+0|®có=·5ë$e%ÕÕÔ¸JG¾n×6úµ,¸Ð5KhÏÕ1Ç´u
+¬iñk^èYuÏ|¹Tű¥êãur$}GaMïq"
+}e[Þ]'?É´Æ,ÃÔ%° ·ü(ÛPR[ªÌXVùZ}¬îù¥`úÈMQÑ*ç
+RQDíÚãmÙ¯Ë/˧A rdÓóm\ÞÛlAa¥
+·ü?ð2ãÍóÔËö±äÝ£|}»4Ë+3VØVh\
6+õÃßÃ>æ©÷è1.Ã` Û Ú<ÜÂð
+ÏÄIÜùÊ»¼·¼
oä¸zê*
æ2
+!Óð-§/HÚpé¶ä¦`['üä1 øÞá"¬gøpÎfÚÎ,ò AµhÉqÑÿáq`+* |l}ЫQS%)Í
+è²DÕ´àuÏÖ 4NÆ"Gt"®L àÕÁh£jÄlîÌïx~I¶ ¾· Wm?%=iÖ%º®`BÏÔO5ó«ÍàO'DÇDÕºÒ#èÿ¼,ÂRj"w^Ű@k
+ÌUíw¸ÚNå»ÁDUé,g*Mõ~(û×yï²å*3ýA@
ØG2*ÂÉAõv°~4½íñÓ¤puÓ°Äw´I dÄÎ믰¿êÎÀ3ì(õBcxÇ3;Ó¸4îïvF½ïUFNQÍôÒÝZô¼(¼¯¹À-âó2¡S8ÌÏn4«Vã#F
ã¬}
+j@î~6ÛÐ1Èú>
+ab·µÚ*£¥êFÜ,¯ª<¸_ÜM\OfÙi5`¾ðoþJ(}J )
+ytÁª>t`Tóq¡o(%xÆÈg`QC»x'ÝwÈ,´ý´D9ÉîC´¼Ò95OXkqbÆAdzª4·XQÓhd
+ͦCBI_$abkA+ûs$u!u?§xYÇ(0q¢dN²(Ûâ9ÁÛe ÚÔbAÉÈØkZÚ´ÐÕk"°íeöÔ¨Ú¤g¤fg*^SÛ ü¨ÏëÙô
+Cô%iµ¦@µøBÏßj°[¢aE¦qí GÂ)rJù²'VuI½ÚéR5°=u_í«ÝQãAÕ¬2FÝÒçÛï§E=ëà¨-
5íϳÝ0yµ6pÿ°|Âq|¼6ô}Ô®N]mÕGîá¥bCQè×%gã#ØåêûçW$R vT¦î j²s²9¬
+DÐüAF3AëÃ.yñSÐ+Oée49r¹8y¬àBNU<ëC?úd
+ûbZR.=槪ÎÊ'!St¬(JÎůëX
+:g2ûøbÂÿ_زp@ñåpäçgl"þ%«¾Çq?HÏ«\±Ø!¡¥/V©ò<kð±T"# ãbfDÀ)fR¶ä¬ú9ɨK .ß¾Á~@$ÒX}öÄx¸P,dÀK%YE¦:º¬JÈÇc»Óä{*ÇT¦2\dksæÖmBT¢.X7ÁÁ)r;fþ;½z%¢µªr(¶òiεu4 +ÁÀï¢Â*Î&e¢ÃL`<>
À¶t»
0·ÊV¬ï
+Ô-Ô±Ã(½;+[m8IaÖÊÈX¬¹jvAÀ§}X3s?"|Ú¸ý2q±ÇL[8½OøÌµèFfSZw[u¹
+q0ïíȺJxà>µXZê!;º=<MWoÁ^í¢^
+ñS;ªÈBȺç#¼j÷é÷'¢yÿé^'/·B¢UxÁGíΫ<Wóyhø9nØvx¹ÝÊ¥¨pn@9µÖá2Ö@÷óhQÒ¼¼ûùñ&Cäó$!áX9Î+Öùó¬\.«ºCV?ôW½ø[«ùÓy³H±Ê^c
+¾ä#2UWº|¬ÙðñÖïj¨çk·J=ÙÍT¸ë
+ñÌ<ñz# ++Í
+Àn$R&ò³[5ôÌdõyoÃäÏ|5hºp[RÕ÷?¨µJòúÚ7+ 1]ùÚv]>˯/µx¤kki¾®²¶m%ÅZÏ×HȳUdOøFW÷+½\©¯}@¥c¾÷¯Å^ü¨7±$>¹lO£e%T3}*Ð1LñWÉæ©n«±lDd]zpa4ÂâH)bæÇþìX2òÜßÙy̬w[-|lïèðj/sºüöP"ó9qÕN[å,[×Þ3ÍusÕF#¥iá«ÊKÁÉ
+«xúr÷z
+ýëjÎõAÕ¯Tfë&ÛøiÅ)ºó&ç³ôÔg¯1È^U' ²Ð+W(ü±¾°ËsD¦râ)¦È21çÁ<[çlâ¨>´jæ´k¼zµ7>Íóa8¥TßÇà p
+á^ýÉ^8züTZÓ@VG Ó4
+^+¢æ¨TDÍ6¨ø×^·/ÓðhoßcßÁOõr *+¼¹¿ì¯[´ÁXà)>¯k*´6¿;þq"Àkf
¿©ä7
+'ÈÇÜ%kq\NÖFpÝ:·_wh;<b¡âÔÙ¿½Q-õ=ú¾gB
+¨8Óµ´ÿ¤°QÛ(ÛOæDn·+N·
hxé¼èÍ"¯.UöèÕ+âWY»?µý#02;/IµÖMÎ:PáõÏÇÐáÈM+J[}DÑ@gƪ½¿dñr¬N;7d²^øc5¤öx_áF9Þ°øÛZpa,ö÷ÈfÔs¹²x¾òÖzâÝ,ÙvÝx"ã¦4ë¹aðÞ/
lc'´¬eMt2åË÷úe+_ê«ù±=®Íö8±MexQþåö¢ú
endstream
endobj
388 0 obj
-2753
+4073
endobj
390 0 obj
<</Length 391 0 R/Filter/FlateDecode>>
stream
-xMÜ0ïó+|^HjÙ²cC0d>rèma Ò[w=ºþýJr2qâ´x2XzüúµìèÔÃo¥U£éÒ¡¶Ü~¼©//ê×A·ÁéÔòûãÇCÆÎ¶Fh#w|ü¡Ç×ZTÞAëÔõ»ú4e½º¾íI
-ôRcz}Ö±éÛõóár=¼.#
-í!R. á ¡©é¨s^è^·¢8Ð+Azs4®?·ójG#}Îk]r½9±Ñ.ÎOå?&Æ÷ SøAájú!?!¬õ³<5^.ÜÍ×u¬g® ìíÉÚÚ M³[
-:Bh¦·<Á3X dV:£©±s+ÜUÍË\»».£ñÌâu'eÜY`w×LnhÏ|2(ê5òPm×õ ß*[rôèì©îµ>È !Ïþ¤wÖ=;*Û9îMxµ*3_ºx`QhÅd)»<zd_äk2E¾Ç²ÏX$ìÑî0ÚØÚ¥)
-§ø_kÒÚc«ä¼@zÙ.ö
5KY×i7âãòþ7¨E}$ªäÝÒSçKêͺ;å/Âí`-.e9id¼RJbÏä¶üo7Ý!¥ÊÍ*=)5ÝVv«_ì0{ÔUfV<Cçâ^Ã-rïãv¦ÜnåÙlÞfý
-<f'î ¶Vu&о¨Ï¦#ùðyÂ\ï*s+
«>±qÉÇóxeéðÓ
-ù0V+~E®Úd+¼ÕJ«B¦±¦c®¥¤tJ
-ÎsQf7#@qËàÜy¯Â&¶£´ÃÃ5i|ws¶øü¾oäÞ|
-{®Ç·¾ò`]Gn˯ :¿^Ð[«ú-¶O
+x\K«äºÞϯ8ëÀ9±dù;3ÝìYìò,¹üýèQªúJ%[0ÐsÚmK¥Ò§z§÷ö/ÿ~ÞÞ§øçê|üÜôùëßÞþô»·åÓ¿_ÿñåë/nòÛÛ6ñóÇ_ß~ÿZÞ{ûñ÷?náñ>×åñî>×9îës}ßòõ×ãýø\·í¿øíÓOéÿ9^ß|ükv|eÏúÏmR#yõñ>׿Ëu>ÓÌxOÿL|Ò:|OCÇ)ËAO,¨«q ùN_ÆKãiiaßà·¼ vbÌä§v¾ç¶E(
+!ñKË©oÀßB@(ßÒ
onÞå~'¿M½uâ_eäÌÕÜ¿¹
+hæÂ v/ m#-î)_Wô]±®¶y)á@lXDÂÃ×ßlVâ¦b}9Åïú¦ð=Ñ]u¾¡óàqA-ÁùÂ*ùd
+o«F¬G̱èòÍ!{<yñåcz¸Äk|Ýâc=>æÈñ²v·°¾¯xâ×
+[]ñÝó¸È$\;Þ¶=DZ_}v_zÿUÕ!0($¬CÌ a¼1ॸèDÝ}Ñ÷Da+d\ïøF¾!ÿ-ÆXTìY:²5$/åy
+åù,^
+µ?#¶ìs<GH[}U6#AemÄBq·õ"°Ö÷W5µÅ»$
+CÜè,h$m'Ã)Äì'ÍM`B
+ÄüvhOÊ5ÈS/u#A·Ü»©óg|×v~ßâLg3~o«öaS>jÖ;PuµÄâÂ&äW²WèJC(¹Õ1/MpÉ0î "ñoOA9Ïa[Oq[ï½ TãóÛìG¶³«¡=õâ"p¶
+£:P0")ùzµR]§<dA5Vyö*=OÕ¹§El¯êþ Hªµ<aÚ
+ûaÃ$~rFUEdp
+o¬c/ÀøµÚ
+ËbÔfÍmÇÏ£r7Ym)Ô"ÇxÃÒßÕ]«©°5w!tt"a~Ì%0¿øôWþHa°$
Ç.Ã/iØÙW)æP,FðÒ!ÅúyðXÖcÞo)ݯ×Ûúm
+¢Áuu³^yÃO³°à`¡Ï{eC£å<i¹g绬Mú*»"år\a5ZQ³$б4¾¯çlåbY9@?µq-æIÔ²Çd4e³],®l7D²ßîæ¨;1¤mÉʱë
Q©¢u6è0$F
+4K©¢mø÷geÞÚ(Eâ*¹ËzTYºVÎñB¯±À§>¦lwZÈaCÕÞáh,Éóóÿ¶ÚkÜ
+qç«zu@¥Âu?{õ¢¿¬mÁ¿5Ö¹§¼7©¦tmã'ï§Np: c]=ÉÛ!D_Vg3%WÑt5Êh]?²ée^ µLyY»P£
+6~³PPþ§*,N!Ë˨Ѷu¢®¦ÈðÓJ±¨"©('¨àæÒZÒKP±êPjÅKq7Z/_OÖÓ0¹ ygÂì16,CPkBjߨ2Hbku6Gª×4[Ï}[jôY¥)çcMGöîù'ÝFC'jMÁÑeLi±MrdF
+záÏ縴2¤Áòÿå_ <:¹#Nk·ÝÐÀ±þ]7fTò¯ÊbÆí6á÷N©ä¥ÍÎ5%g;²Úñv%ΩAÂs®ÒÔø\kJÂ),wÔóü¶¢1,}BbY®WÈà5<cm5dI÷ä\*2«Ãz!j¶Ù$U ðJF% nÚ'8Br9Ã4CÖíQ!q>Úsúv3ç«$W¥è]¼4Ì`ûÅõß±}εZ§>»'T°FܱaßÖÇ_ö©¾#Ö¤àÝôòl9 i4nÛ¥>¾úµ®&æzhÈÚLªõ;L¢íÆ:¥kàÜ}>ªvbEQUi×ÒlýðPÎÑñ_ç¶kÛ¼5»à©á¶Ê»å¦W}/í0½ãÔYLÍÆµ,íþ»%%òå¡ÓÆO°ßºÓ±Ï.ü&ºój+³´Ìß;èçÖG*ϯIJ.ã<CÔøÅ¾éåÒõÔjâ¤æ$çè;9}©uúµSeG-1yôA&`y0³<ªg5`¾FàLJ@©´sX;¦«E^MzÇÂAví`-û½ñPÜ _<8w×È c%çYÐ9¤ì
+h?ð@³íÎm`»C3å
+ì·*Â I
[
,SdjP÷eJ
+¼¹x`?½ÒµA*ÉPø½µï6¾l¥¾:vAÙòÂè¦/£ªÕ*OÕ)
+Ò*e£å(×r`¢w&í¾6®Pb߯îö-ù¸_wC<-ξÿ¨=\ÕhJ]Éw<¹:NyoÀ¯öÛÆÅ(b¨+U®üo-Þ¸¦¸¨R7O£"Óèß²A>Êéno6æîö{wÚ½kºë±x"hÞÞ5i«`kl
+c²Üé#w³i$o¬£¦ö
+ì±¶Ù¥fo¶ÛìݶÜ6áÎCò)&´·çVL´Û§ö´0ÿ4CÐø`JMäMb@\yý
j"Rë&rzÅ
+-ú=}ÃoÇÈÖ°gûpͪg½$Ê~
+I×=ÛUëäHÙT¡"Õöls&}xDpÑ£a`F9ºoûZ`ÄбÙBâ;Íàÿl|öcZÀN'8JÜAǶ>%7ä·FFèº~j1þÁIj«ésõj'`@7ά©pL¨:´¡²÷DzÙ¿¥CôÒEó"#LíF¯¡½r·Û;]ÚÅbhE5e'Ö )G¢î^©ï¤ùÌ"¨l½ÑMxKÓ§t¿9[¼nÏ,çOñYUÈk¬W%»½_èÕdpÊã[¥½®ÅÌÄBê·óÕËßö±É¥JÉ?"¦9½¬pÊrM÷³ÍÓú?§S!êËM`zìôð -!ÕvhÙóGVòS®Å¾/GþRz0¦sL.v`·åÇËplÿøö_o0z
endstream
endobj
391 0 obj
-806
+4642
endobj
-498 0 obj
-<</Length 499 0 R/Filter/FlateDecode/Length1 39008>>
+393 0 obj
+<</Length 394 0 R/Filter/FlateDecode>>
stream
-xÔ¼y|U6|コª»z_ÓéN§;Kd£!B6ÙAÖ
-éþÎî Î;ß÷{ÿýÒ]uo-]uëÜsÏysOeÑÅSôÉs'Í_éB}¶M^²(ôàúøÒió§ÏóT±!QCk>gÙ´G{¦ßAHmAhøS'MéÞ3nAh¢×¨;¶¥î`»7lçÏ»héC¹»:Áö¸¦>gÞäIK+?êPÝ8þÔÜIKçÏ÷³MÛ¡[&Í:ìíc÷ÂöâηpÑTFè>¿`êüÇ=áí:ä6ØáCÿàþ§Ûa9^%Ù¤¨ffµÙNÛãõù9ÁÜP8/ÇK:tìTÚ¹KYyEeU×D·îÕ×õ¨Ñ{^ß«w¾ýnè?`à ÁC¢ÿßýq÷<ò²1äA(ý
-,çi>OÓ|'7gv ]x&Ú
^GGðøÕnt5¡wõF¡åè·h
-âÑ8Øs/º>ìÿ-ö¦P'ô$èÒè;Ý!ö¤¿E+Ð*æ#øÕ*¤¢<Ô
-CóÐ}xPz1N³w£*4ÝæãôØôýéÍégгè óNº
-Mϱô÷Üçé?¡ðÑVtoö#îÒ
-Â
-w!ýLúò¢Ô§ ý·0©¶©*hRJÀyèwèmtGðd§p]8»-ý1r Îh´öyøå×ø?äNø¬`Þbû¦¯GfËTÚè÷èÏØ;á¡x4)"óÈÌ$Â;Ãg
- ò~®þãD!ǧÙÙË|NêLÚ=C¢ÇÑX
'
-á
ø.ü)þ+éE&GÉ_ß²;Ù?
-à©oBsÑ}èEôlÃ]ñp<ÏÀËñü
-³ >û?³>ö89wá¶pÛ¸ÜÜî¯wHüàÊÓmÅm_¥PjmjKjoª)ýgä>ôrQ5´~|fAoÛ>Â
-ÈÎq<$3ÏÂõx)Hòü~ÖhûËø0Hé3ü´Y%£ÍI¹
ÏMd*©'ÈfÒD>%?3cb,)fú1If*³YÆla/¿0+ðI³2Ëæ±16Îöc'²Ù'ØoØo¸ ÜûÜ9^æçò«ùfþB¥ÐC&ÂFáð±XÚù&Ú^¹vÌã3ÌJ¦³ÝOÊX/ùùèóD4
L at SɼÜH>·ïNºã!èY¿E¶K¤;3Ä#Ð,Ò9s5ÞÁ¾
-3¡z|ÚOúž,n
-,Ä#ðyì4Æø°b@MüHÒ¦sfV!öýÔh\ú9´5=ÝÞ:=X^WÜΡh^ºÍGA9_áA\_rëî@ÖdÙòëþiG±}Q_Ô{c?C#PMzCúÐîB°°[ÑÍh
-$Äõ=õ×UwïèZUQ^Ö¥si§JâÅE
±h~$/Ê
-æü>¯Çír:ì6«f1«IDçX`TÒ'Ò·.Ô«kdcnè@·#`ǤkvÔ5`Wß_Óª3NýúLÎö_gê3õ«gb-Tª;úDBÇzGBÍxÜð±P¿¯w¤6ÔØjÔõMF]
z8?õñÌèjÄu¡>}ÌX×§®7\nIîé5UîPöÈ&¨ ÖèÌßÝ=°Q!î>Ýö$ªÐ¨F_¤wFo¤7mA#í3iJã°ácûôöõJq¯ÉQäúFKÜ8õ2nÓÈ÷jÛfÒ§AëC{JZÖmhÖÐÍuqeJdʤ cIµôÖ8Ü·w£û¶³_6áâ¶^c×\{ÔϬëã¢ëÖ 5n>öÚ£aº®
kÀoI´oݺ¾pë
- Ä#Bp7²ªvl#^·Ñ'¡Oy¾©>tOݬP£¹>2cݬ:èߺFtã²ð^O?>|}BëFküÚI½{hÝËöyõ÷×G:ìѬÁî1[²E½¶2õê1£fNko¼*YL[é
-ÑÀ3u¥«©]ѺÉ]á4ø«Åð«Æ)Ð#3¥^uë´nt?ý}#Õ"¡uÿF Ö¿ÿzϤì>ªýÑ*Õ«ªÇÛëñxcq1U¡ô)´±±]Ñ¡dI3Dæk!(@|hÈvRm·N þpvðúfÝ
-ÃÇf¶Cèfÿ^¤w×6:z¤¥ýs=ÒÐ~äêÏë" ÉMøu6±«_æ²÷Ñ»þ?OÍ8"2pø¸±¡>ëê²²8òW[ã]¯ËÖí½Æ2~?c¥põdº1Vid£ðå
-¥Ò, ÆêÛ¨ÕÝY×ÊáðÿåÓè¯âeÙØ-þëíî¿ÚþUóu4àÀãÖuT-sÃþÙ4õjD£`dFáÛnéJZ£"ëEO
-7GBZdÝArY7¿O]»â4§÷7öÝP²»u@àCft}Ágy¡lÕícÏ2HسyE;KÃàÔ%x'®]ªn«¢]¬ÜVj ®]UçÒ°5lÂ
-K»bZ®èºBl8W at xmÎ £WLµÎvÚ@Çxm¼5)AÙÜ Á`m1Ñòaøú<j@ýÞîèÆë·¢zo[¢qsDÉ2k¸;H[¡^YQ+EÂO¢Íçl®ý>õnj-¾ýðÉAïIÝË2Û¦ûjªí%oX1án§
-·ZÍ}í¬èn½{';ÖXaËÙ^
-âh¾VÎÏÅr«ÂÓGhèêãÀMnÔ¶¤ëFÏ\n®4Ekëâ¹;%SÇ3#¹òxe3*ÏQdw¬É/Ðg´çGËKM Ðù´ûé~o0R^
-us>Òá\Tëì+¯2?ÞªÕÇPA55ÐõITWFp#¤¹%'kíZ<=r:x>ìWÑ ÞÏÜûû/°ëö¿?j=¸wÍê½ûVÙ®àþ%©?·ûÛ]8ÕÞÿàÃß¿ÿÜúúÔpæ;K£zÉÄ9JLQÇ S/åxsJL1GI$aªt0õuÆf~ÿí4wôô(T°©d{P®,ª)ékêîS42<²h¦09<¹¨®¤¡äTÁùð÷
-¬nïl&{
-v7t-JQÀ´Ô frÞ,r¼"»eÑ29êñpcÍ»ëÜ
-nֽȣ(/7ÿuËqËiKÚÂæZj,C-Å/Y.æÇ\LÖn½Øªµ%뫵¶³`D¶imK¥¥10êQ²Þív¹©èª*@¤¢ÜFuª¢ÌjÈ5v\§í6uéµèµ3^ÒøÅ
[>¼ïðmÏMýbûï¾ÛúÜËwìºmé±¾áÑ.SÆU5®ÇÕ_>ñ®ÌúñøÒâ[^ÿàÍ·Þy
-ç7ñºV £ÅJc»c\¬s*t.UèDKlOà;êÉëÿ:'¹|
-OøÎ]騦]cûR²õbuÛ¹sTµio
Ý ÖCIÇ8twpCé£FTWB÷ÐOEy1Øz²..è8§ÓárGb/Áºeúèì³vî·ðÙ§¦ã²>kW,ËiôÜrâÞµ/Ó$wÞáûæ£ó&t;sÆS±»Gõ}qÕCfÕoép]m½§~ý@}ÒK/\^u]Wüea at +ÜéºñC¯»¬Öàp1èÁzë Òë=Mjy=Ëþì>â>á.
[E$?$1L$à`¨Aø¼|"7E·GIÔíö£¬ØÚû=ÑMÔDà¤îE¤,Å'Þ¶#BMÄPðFÞüh3^º/ܯ]ë9«]¡&ÛôÚûëúàxª«ÁÖZµV«Û06i¯eºYqØcÅêÇ6ÕéÇ(ãñÔ?ÄÛ©ËMWNkÄZ£ÎÔ µ5OvynÖrï|ïöE&ôÿÛ¦±SìÆÆ2ñæ±vh+ ÏØíÁgÚ"{.öÈm'Aß¾AZN¾Ò§ä¢b\ReÊÌææISM¢4¬ÛIîgÇ%ÐÙÖÍÛ9ÐÓ6Ø×30Ü6Á{c`m®oR`)¿Ôy\òhÈ
-ªÛ=ÌUçïb\Ë&m»F4õdjE^Ð%ü =ÀܺJuT*(.oT±êË
}ÑX9-õª¹¹8×U¦åz~qy®P#cí
-Rs¾< cÇ/ÕÇ©oi¥J[ÝV_mø%*]*E\¿
-klÕf«C»¨NâpÌÐ[æ¦C%ßü6õvüélÆWÎË{WMÞÐvWº¾wùN<ÚýtÎÅVpaê«ÔOZh÷¡øÁÕ½f<G#±5éóÌd)>©ßÎæ9òºI¤Þù£ó¦æ-îîÉÎþbÉFÜ>»t`ɧnÎOF¢uÁ²g8A O0MP&¨³ÄYÒ,yi2Km5X
-bùùEùãäZÓØÂEEù
-ù¿S6>Tò`é3òNåég
-÷Å~så4§¿ÒmÁÄ8± ªÈ¬/s²¦9>*õ@®·Æ;Ô;Ñ»Û{ÜË[¼¹ÞyÞÓ^6×»ÑK¼¯Q Ú}
-ëhøÀ¬ai¯8\å´Ôfk9Æ'äÌÉ!9§À:róä{u»§Üvh¯_g¾H(ÆÅ¾.ôW1èáº.-]HM.¤1ÎG¡|KÞiéð!ÈÛ¹½Së9j]0Ä0I´_/Æ[6uzg3v)k`ép1«fÓìÃç©!?
-?æ:À*èͰ9âGyUd?.,d>ÎúQ®CG]\«Öª3+ñxq|åÊîêö*WÆåÄ
-:?Vi;!3"Ôa`Î05{-÷Þ¾|iEô7omÚ³kñ#îxmµQY8sù,«ÿ×=ó;Ä×f/Úûº'Ú¥ÿÊ!ýæÆo¸}ºçÆ 7VE9v9¿¬çò ã¶yjÚÜô7ÜAî#Eë}ü¿ÔàD;¶1ùù(ls(LywÐ̼q¬ b Ô,h(À9±eolòøÜ·Ö
-Já0Êg`
¨qVäíÅÑÃQ+ÏFòò©ÓÏ/ëÂ;jë
-[©Tïñ{Æ3xí òQ«ätÝUnÊ¥Ùåq;Îí.Û]&
-® ªFÂ
-@Ém(l%35Ë?¹éé¡©Éd½eøðû»7=ÖtÃܡɿ¶}÷uî7|ÄÆµ$qùƵ jà=cÝ¡'J¤íR£Ô".Hr¥ùR´-»ëä\x&,°xæNxge^rÝÆngÙöË·°XØ{¶XvØþèª)+«©®i5¬6]¨Ý^Po¯(s2ÐøµMMMìß¿ìdcÐDhc_è¯ÓÐF+x®OõeªQµ\írÀ2R¾Ñ1"0Lá¦JuܹOì_zÏÙÏ9~pÿÍ{.çLn:×÷U»ª}}ós7åå«]ÝH
:ôQû:úÆÈ£Õéê9þ×Ïø¢YÃNÆlÒ,È0 V$;A<eE¨¦°bͪ[ë¬
-VÖºÈÿºp\8-¤ö×5¬Ýʵè@pµÑÙÕt±&îÎB¬lWfp¯Ë
-bÀ×@^¦ëÔ£+>Y<ëã»ë¶tÚ×ziñgwܾôÉÕOl¸üô6̬ÞîKl¼÷Æ[§>8
-:^þdÈl°®M%ÓùEd1¿V]kå%°òا٠Eb²,ÆLI`
!»nf¯³³vCmjiwQ5½Ô
-Mf·ÖÐÖfí¢¡fÓ×}·0rÿY
Gj߸ëcx»gÇò^ïdþyÅÛüÞ¬¯({ßÜúÛlÿ£ú0íY(Ý#ñ3}¹ùÒBÓÝÜÝ&¾À%1â +Gì¶`qqQ
-äPÚZèñ#£1ÅWÌïøµÄûåçoçÞ óD'CÖØðí<ÜåË-еDp¸÷
+x\Iäº
+¾Ï¯èsîXeh0KùÛÈ!È-C¼Kþ~´P\DYr
+jº\¶"?~¤¼|·ÿ~ùÏÛòö¾Ä?±ñs;ÒçïûóÞþLÿ~ÿço?¿Å~loÛrÄÏ{ûã¹¾óöóùæñn>7÷x_ç]âËç¶=ügØÃòwöÍÆ;özc8ïÏx%Ýà#ÝØOjÉ}n!¹}®¥_èîð#ÿw=a4x͸tÑéNøð·lüÏøÇßmVhiü{~&ÈéÊïÛÚ½¤«$)Ì2))B»çVpÄİ-á|¼ÐcþÜb[Á³ÙÛÃCÞ¿þüÓçÏ/¿5º±Zûa;ºÚúù¯ÞEÂâs6Éebr»ºiáÊÍgY@ûiãDL×~*×êÏgGüe³¥é*¹ï8*ÎÚSÔV¼¸C{tãlÕ5>ÝËÆ¶#vÏi.ÞVî¨íiµ¹nO÷À(Oøv¡QfI¿Ó3뫸¡YEäºnl½1UH¿~Ë+WP~6:6
+~zô±;îlNÂ&[/æërúÛ.t¬H3(+¦î[GV7Ï7v{cùÙDÑC42
+¦£S£ÒsRFÙd5*»ÂnHÿ5ôæÃ@ñ½PxRZZ²õÍo~k®Ö·°§ï4è/ZU´'°$IÊÔvµQ°ýIuºHV[RöÙ[¾4Ýr1û¬{Æ,e£PLy±ç3f6«hÆJ¦Tfªd~W8&ooæ|iZBâO®ðÝÁÖvYiËÆå{¬Euþ|{¹¹) +Ø
ÝP%!°$Ì(Xç mHL
_ ø±Ë¼{¸OÆq¯6ý?ä3WÈM}:ë×G´ÉéÃfoÃÚ8i¬;J¦ºãV
Z¸G¨r¤è÷æEøõ'm?zäYvÖÀ%Yøû«R@Óà\6úIÎt¼#¼¡+züÝÔb;öÀ;o=JÆ'\Ã]YØ
+g]³ªA?ºjŧ0!ÜLɳö 1¶¥-V©íæÃwãÔÁfû^fÿ[}ıoE8Ûôr%çѱ[àxÚul£PøÔÀîëÚ|ÀøøoñùÝaC§§«û¢uf-ßALez;ÉOµø»ÅFo,L#äUTÎ@õX½²LÕ+(ÄV7Ò=q4¼³¯oF
+¦Áêe Ðs^tàµkfàaPà2À´ÕÉA¼ÊT!sßâ/¹Ì l2NJ
+ÔµYµÉ)(Qa°ÔÎ)àãÃÃ@¬fbí
+ÚÐmç¸ZnO9VzW7¤ù0xþ
+¬õjȳ?Kp¶E¹áØMÜgqÓ~Âÿó<V0¥.S[TEÁ%Ûgxj2`DU ¢%a~ü£¦f½é;¦Ü¬ åhL\ûÂZÀv¸ybP-iImã¸eYÛâTMúü5<@A©6jMÍ_q¢Ö`¦UËk½?B<qu¶9s:+#®¹p:ÛÁáx:¯<w%R@`>xOÎ~|Gm#JCìÀÇ×Ö5.÷øQ$ÏW5e[ !E0j_ç7ßÉùlv©£"
+³Ù½ª¦O0ê¤ÕcªPûòjVSLL
+B Ùlö¡'ÿû0½+ó-vÉí3b9ûì¸ýq'þ=ü¹*ãfÁäpíQÊI¡£5ûDsÇê¥eª^!¨=Z6vÌýLtxFYæG8ìóLc)ÝôÛà¼ÒÆpÍRï4£Ae_jKdºKÂM-ضM{Äh¬J£¦:¸:]×·í Ô;«¼¯"8+MägTH¢É9L¼s_ÁÞ¤<WYvµc[X È®U³¢220VõlzÝMc¾Öí&$BNಢ=ЯM²æ¬¢·ßÒe
g«qrÏÎçֱ̤ØOªÍ=+S¥4ò»äpR
ÍÒpÈ)I:ç½-«3R¾|w¦Zì¸<vb»¸,©àÒx^·x,XÒîÐdü¡ÝeW¡wA¢¡×
+
U´Ý@x+%Ue!)ÜXK3af¬ª!ÐJe+Óxë=¦Ö~ª-.EiKÜ4TùçT°VcÕXí¶Ê_Äõ-·¹×]ÙµYw¡Ør90ªW§ËÑåñ±87"ô+qÓun¯jº°ÌÏ:gIÐv}OO»n%µnÌ´ÉV;ÄQÊû³«¹±¼ÞXX¼Lðr\¹Ú_!cÙ÷07/yÀp'·åÝ
+êk¹
+Ðýz´UÚd)ºúbîz¨iZo¦¶érTå2°2«ÞmVho-ß+M
+äöÏÜd=«÷öæÕ²(òSCuÓR¡ù¿_5£W¥ëæ
+{kÝA_±ª)ŪZXuV^
+mëmM
+9èSÞ*ñdÝqag*£>ÞJ¦;ÂlWÿò0L>>Q&NS^
+¾CàÅæÍ'în¹Îªí:aÈ&Þ°Åí¢OÊ*cwìTÕm
+cM=«èo#à θ4'½TûcW¥ Wàí;_È9§UL)ÌTů<=(vTÇßòÆÜ9·U)Ò.ÙN~\Öµû&Q[ð ó¯4f;÷æDo2úeÿãßöð:gi%UM)ÎLÕì±(ÿêó£ù¸oVám<V¾h\g9*Ý7õYºÖìëÂ*FU^¡¨Dl rµÆü
+Ü0hÜ¢«$êZ at CKÏR
+ºB²J·Þ´°vCp_×ÈmJcØI+o¨°ÂªD
½VDx¥Çâ*̧¬¡Õ (Ã<åZxû|°3¹¬ÙºGÕ{\.&r}s^XëÃTÖEÕJsÄÈÈãü*fkJáZ¬µy3®_fIµ;ÙÍ=2±åïÅå¼[ø=!Å&#²â×GSYÈP.ÆåÁåì+<ïÉwç¾r3¹¯8IÍ,à\2Âçmç{ò0¨óq¤É0¬¶Ëªr~Ùæcâùp¸fÚú$ã×I©àXðR5>ñd->öî«Hô!¦³V)§ZRPPý¦è¯]øyoÀ±çý'·4ÆNéÀ¹©ÄO¸¼I´¤!JC«Ù.Tk>Û
æ0ºdx50¦5Ó£4Î`©ä#,ÝÂzÜGìÍ-UÔ§
+$NÕ¶P/¸Ê«.rfå¬Êg~íE±éGv,êB´I Ñ/Dh÷5¨@î
+áÝúÚ»óå5N¿Ó}Ñ¿[ZÂNÿì^ÞÒËÚe¥¯ò7¨l\fÜÔ¤X1wPcEU³*jð,ü?)*Jå¡õ¿0x{wÖÌ-ÿ_Ñõ$§foÅÂïÕl¸>ÉëÉÒ¨þöè'b¨Tküi8¾8]ÞjiLÂ\5Ê»&âa¬JJ1¦ª´aú¯æïF´RO<÷õËZØý3|ã5GÃ~
+W$Ñ[Ýò{2kOðVD þ¥Î_SáV3÷^ÛÐm3nÈV1ßua/U1õk\ùMÈb
+Så±^1ywÊUME8£w¤ô^õ(ßµ®9V54Y at cå1ød¹ó«¸nc³d=ÕYO÷¢VT¯§
+ijªüNXÃ@~exY/Å^ÇÜBÿ
+CKt
+ó
+×*ðô·äoUîbh<uÉ*¯^¢¶îkw
+oD\)¤cSÝ$;(çØA6/`#&på»üõ¶Iß®æIû¸foMb]O°/9^õȳ¶·Ýz)ÒÕy>o+ºz\cS\^71ã©f¡Öê3dÄÄTV»jzßÝRÚKK
ák¢>Ó>1µvIl+!§øÎ»|:]ak0àÞö<Å$jw±(Ë%e|>Üú"öÏ%34KÛo¹dW7©²¾i;=|!ïãFêeÏ}foø¹ä¿|+_ü¥ú˵óXÒ;ttÃ&EìfFðéßÞþ(-5Ü
+endstream
+endobj
-¶Âp¬ªÉÔ·Ø÷N¾jã76¤~¯[ÙuÀÀ¾w=úϽ)Ök\·nHíâÕzÓse¦ï©ëÌÜhuMÜ^ÑåíÒuvßu¦Vç)4¡ñºç¢(aé³ÉRÐD4[¹0C*}*+eSé5Þ4¬O|ñlü¿µs)<3]bó¯<Áį|ÂÜÃÚªy)¥î¢-þýxRÒÌLf2X6ZPÁ$½þ >¹½óû`j
9c
-ïµÕX>Ég
-¢òHïhNãB£#£¢sL³ÔÙæi©e¦ÛÔÛ,whóFW3ëL÷ªë,÷i«òïnV·X¶8Ñ|³jâÂÐ~QàYð8û@þW´ºP
-ð0\çãM=mÔ£AÃ;HþoCE¸È×%³ám$·óU·vÐ!CÀ§x
-
-je6àæëíUAb(3ÃäÄó_^uªð:ñ;æ½0bØî©9ÃgN¿ó¿}ú§ÕÜ!Ë®O&ºâcn[}ùñ·SÿÚ?Ón¹oÌõ{÷qOW==uÞSf~°Ò¼þþãÍ.ì¾Éâã}ÏÐXø,2ÆJîOæ3d0L âãæÓdçßGòlRûuÜ
-O
-.rõwõ}|[ÊI¥øt^Î.ëMÅêmîõhÞÀ®WîQV«÷¹?°¾e·å5§Ïì
-|´
:Ñ¢C(
,
-)(èA?Øq{GÜÑ+ÚÔàÂ×%,5éº_hÑC
-z8Ì=è;=g oYκ-öçío**_øEÉî1û©+5JÑ5»ì´Ùíï-³Ýa¶¨ÍäÝnNݼÝLÌfîÄNgÀÖL^}ÅÂât¸M3öè6PµyÚ
-m£Æj
-ÂB½VêÁÈ£ygSÈvW ~©¸ë^ó~|w´è&Ú¹HϽ)·oÞsµiôáR¦iÈQg
ÜãÙ5bÇ8×hô7¾gv0nL&æ&Pÿ3ê5çÖ9w5íÚ0fCáÎûÉɶWÞó@Ýwñ6Ü [ô©Göq¼Z2!ué÷Ø{â
-*M+
-üÒþ&>äÕÿöéw =,6X, ÅY~
-YkZky×ÌIÉCúØ9x{ùGÚ'8ûg³Mís³½uþeäV~é6Ëþaaö®çùÿÔô
Åç²#¨ªî
!I
-5HrÑÕQ\ðê¨ÈH¬=I£e(3
-`±k^pÙYÄìUQ ü¨Ùm_²wÑõ³>zòãeܹ|ùÎw.$a_÷ÒÄ}©ô©T*õæ®_Á§úág}?s5Õ´iÀ<fç f½n2CB¨:ÍGrÐ=9Ð#Ü̳êA¦I}[=Îæü+Çj¶åXsrb¾ÐZåöSG;Æ8G{gp³sn··=Âl5?Ø!;¬íÈ|Có±tÈì-L¤³ 0³~{PaüAVÒb(éËuÇB"½ÁÉÚy̯¬½Õpð@©0\Ë+²6Êm:r]êÍs©ÏÝ{ù.éþzÙßìüë¹_¯~ú/tþáòø?ãöy¿ÃöÍO¥~xàÕÔ·ëg"OÌ×läBèváídÖ¬ýùÆ~¹dçYJ#:Ôòe~X;á9ãI{Øè0;\¶
-ñÐç÷Q:á¹à!ó=Û=ëaHÓ
-ØÛþ½;¬¯¾XÝÎ)
-Þ§á Ó-û"±rõJ8¢ÊA.M[dÞpÚ¢å¡<¬Ú¢
-Nb©O0_h6 ,BÂv¡QhN¼pÌB\¹gZB\<«µÒi³«
-8
-¬Øªµ¬L{7c8£î¶F*ʬUðP«áæT}ó{îÙ·¿=^|rÖcêSdò,ÌIÝ·¡í7K|`ÒmqµÕdÆA}r'T.Îê´µÌ&í]î-¾E» D®&ô¦Fí_Ê¿Ô%VaUÖÌdcYE5¼ (PyE ½&(ØA³Î'yo&óu Ê·:àArÀítBSæÆaìqö4Ëlb1Û±n¦´§fºY} :"üÆòég &ð£^XàëçâójÈSSík9p¾ÔÕ©]ÓÑCK$ÖhG]ÃeJçÀFÓÁáãÆ6±F¥/ÿZ Z¼ >'aÂ=ÌÄ
-xõC2öËÛ}ò$þÇÖ¾y2îÐÏ}ñáTo2o9xë}ëÁ¼NgsA¾Áè^ÂbÉç*¸>WÛKrságë§ñÝì´
-r
-ò%Ť:ÖtÝä%ÎQgXnqÝâkÉ=©ròþÅþw÷ß½57Äu²trr5dÆMãNåüýYS4§å 0:^À@èÌ&Oþ ÖLº©ÎÔ`bM°µ1QBZ0 Ðí¸_Àl.®ÁC1½Á~í«4vrÑN¶¾¿:8. S85@&Ã}
-éð|Ó=7ï®×Sÿ|íðlR>ê%/=»xÉKÜ¡¶oºñ½
©R>·¼>jý±÷O¼uÆW)à
CNÕUB##5p×Â}¡j¼Â0éD±Æû±ÁèQñÀÖI¢üAk;üZ3lDMûÄheÄÊa×¥üºk×ÏÿBY;G9í9±EWîò([Áôa©,C1a¾Û[îÕÁp
-¶ÎëR^´¹`[§ôý
ËQV¥ïN
-ùÔO
-&¤V+MÃÓÈLq¦´Ýo%ËÄ¥Òò¼¬fîÖë¤ÇÑÃÒòKè)ù5ô°G~ý^>
>ÿþ*_Fåq²¹äB«ä¡H¤Û\åHD1*ÉICÝ1ü@F²$À4xA¹N`RòD]×¥@&ÍØ¿_ç8ÂAMBDÇy¦ïþh|Þ¶d[Òçi=ÌßÐ;ThlZ5wÖe1W_óa\fw¹+«ìr_NÍùÝÙh®'þ÷©[ØXÛ=Óç\BÖfâ?O5Zhkqåâ^b&(`Õ$,
-+«à.Ëîbx?ãcV1Æ.ÙFFü²þVâÌD>8IÓAÌ$
-Ó ¯«³ùø§ÇÝY»háÛ8¶*µ'x¶sÁͲ+õwÈ3èæÔñ£Ï§R;'uÙUٹϷÏ}ýâ mÃÒçV@>tLï')87ÐËÞË=Â>Â]g¯s?JeQÑñ)¢êgÌ,n±2_mPSöKäýâRV+%9o¢ee
±³»ýKS3æwé<ÖtIÈb1A±L'ÀlÉ7çù©7ÅsA7
-u
- ¥C®×âÎ
-¶Ö ÓÎþÒLV3ã
-i.pÈìÍ?!cMÖå:¹AfåEØ^FÊlQþ§Óȧÿ×0Ü5qÓ°·O
-;
-ÅÙB°sÜî)öS#ì5aìÞP¨d-þ^µÔÿÐUõõ##@[-`{ÿ¶W÷¾b±aK7ÁSÛ{ÀgÙÂn@XZ¸¾Exß"YtWÂÇØ%§êÓ*p7ÓJ|¿IìdÃÖ
-µ¦±æðÃòæWH³òé=óÚ)æéCõíl³ñ<#yÀHÔ¢U[,ªfVFT£h2o!Y{½%-$ àCÔ·T¬FÆ¡(,ICxMUÉCmØÖ_½SÉ-xéN]£ùÎã×K7;IÞPxÐþÖåÑt1cGÁjç´_'¯Qº6âY;ÌãŲF<ºÆ¬Í¬¡ÌZuµH)@ÔMfONÂD¥fÊI(yîÝÞNh´egç
H´wEÿÁÄ%Á¹©U®Z)À|Ojëî(îû,õ
-óTVV86lLD%sìXýúØ`ï¤ñtFn^eèøuêQÛòLYÚ9SæeÔZ±p¹Ü6î4Ç
ÕÉåæ«Ks,¨5´3Mèâ+«(ßp¨8¹§°Wç5âñÌÌAÒb¥º}wSV·íàÊQ»Ñ>=è°ÅÛÉ[êÕ½ó½*©;UѧªÞ/ë¥÷+ôåç*£X2v¸ÃÎ2<·9°#m×YwG¾gÙ9ÛH9[¾ îõ´Ç{Bat ËÈVÓ!VhMRàWM}b+ )Ã):4+/ ¼È2K6?²ò
-W¦AkAï¬`PT÷ªÕ®ßØíp|;kôþ¥¤öËtö¡cÇQò"$,õà
-zï"³Ùbª»YééúYûÛúyÆ¢1Ö±¶1íaña}1£sg"'ERÍâ°Ûlôõ(³9]½C-ú8§(
GH(<(Óé±)tÚ j³*KH³:4ÍjÑãä,VMAs*ãÑ,)¥Çf³Zès»}ZO mQ`íEG~ DÃ^o3^¿gGPø¼Á´µ1ð$¿2ôcsSÌh3£\mðµë×(a`U}´½ví
-xx|ø^ìiN_¢|n`cvQÇ2ôÏ{ö):§ÃI ß®b7(lÁþaüDêö·OçûºÊØýÝF¾~3uË«©÷·#õ.wèJÍCþ-ùªÍúû¿Ö71/ÿÜMnMíwùiʼJ
-ÇÝlC[õÁ,庳eÜjs'°,a9;ªfI s&^X-`lÌEÊò&Î5Õ×îØõK²1ë=D3ÒtPÍ`à ÓÙî«ÓÖ²²5fQ³ÄDMöcÉ,d¦_i®«ÄUc¦ó`4¹º)5#¯2·ª²©¬çCýÙo?üð§Û·ûof'\Þ~tðªË<àØWÀ»ÙÈ ì\ÌÉdu¼õ~+c¥!#)7\®r
-hÜä¾+7¿åÉÎû%¯cË$Y´iÈÎ8è7åóQT(ãærT!t»{3ýx],4õ²ô³°·Üh-L§Ûñ· Äü!ËÛ¿ùËR¡ÉZ
-Õs¡¥ÀÖÉÑUÙnW3)Ïãd P%:À2¿Ã~Êγç-ߨ.ò?Kc0dY!&kV«¥9=Æ
-ÆS}l1Þ´
-bH°Úlq ÐufYQ¢ªÙ¡ªfÑj±ÄeÑ?§£.ËFÁ-VŬÊVelàUé,¥'6ÍÀ4שô2j3~^CCe<O^!¹Ò¥¡V<ϺÂJ¬tˤq¸Î°êç÷ãKöKÓç|1ô
-¥ô{QWr(s§«¿ú;·ñ;kúÌ>9Äh¹6èÅ>>`K XÓï±'2¨ú1Tèxc ÛÝÆhg
-<0õê¡5lÙÎÛ*®;°;Õôê΢ϼ=zÖú¹¥íá÷iOåû¯í§3ßöûð}
-kt%(Í¥zl¦¥@T*Õ
-óV«©ÐVh¿ÁUk«µ×:gÚfÚg:ñKÔeÖÛ·9W©ë¬lì÷:wk¯Z9¾¿qü[mÓ~r¤AP!L·
-°×a·Gm²6,
-(\Ô$;L&¢x&ൠ¯H Ôì·Øuîh&#uSM·¶×mÄÖ¯?`Áy¨_¦lI×CJ©2Ta)i
(pƾNÀàMþÐrP>Wk£a9@|4*çÑ.õjgø<Z«QCÔl"
-Òq dæ,þ[c=Ð,3ô¨zôU¤¤Ï#Sú<¾¦?é¯T%伪¹9}~¿3aÍs&²PÏèRÀzöLªfadzT(Y[áè^R}ÛãL©¹G¾çåÆÿÚÓ3¿tùèòÔôZa¾¶%-lÛºxåò%döåwv__;Z¹BÀðC?ñZ]µ5wEbÃ]lîrÐÒ?èTp`nÑ@¥J´NÈýq_ÒWì/
-Õ&àd¤8N¦ÍÁÉdqt;^$Þ.Ç«Ä{¥ðEâ÷1\$Æ¥ø¬ø(²}EsÐ`°ë`ÑI7I&¢,G1C0ÇI\Q¤"5nI3¶4áxW[<u»#³n®37/9ó"$ßñnfIÓôO¶(Lá{»;Éd75ðÖf`×s5Õmç`6¢ÆÉ ¦h?@/í/Â1æÜeÄ"R!ÁÖW¨x¨2iSõµ8iô©ÞB.[ÅDÿ:ê.öºé®uÙ X|®_Ð}Yæ#4Æ
ʲ°³<³plj(3¥íyËfá¿mfD~óm7Ý.=
-ý·!vx`
-Ô<
¾ªDá± ñ®æ&ÈÝ'üWnÂÙ«o?$ÿ;/aóås¤±mÍIè¶«màéÌ¿È8ÀÆ&@Çë¶yw{ÉÂvrZ8m'Ç
ãvòºðºìvÛÉ6al6ÚÉÂvrY¼ì sÄ92Nç ¨8Ã.
-nÅbBå'3ó1«+Õ*ªV1%$ìóÂF°½«£Ú¬*Õà^t·¯Ü¼]ÅjQ5Ãlçõzêo6xí¬v)^©¡aDeÈÁUà´wéLZP__ë³8
- «Ü</¯©cÇ¡âñ%Uåþm{=úᳫ«õuóK
-d}ðQ1ãÜå bðº#îIBÚg
Oº½ÑÐßS Ó¹Ô`åðã©áÂ]?Þ RþûûÐë|ìпÛïgYuÜ&?»Ó}Àüq»=~ÊÑCíCݺo,7V£²N´sOôöñ¯wo%7È0¶ IrÆB 2¾c9k§ìtÎîÚ Íd²Þ®¡pÔ9»ªLên9¦&㵸ò}Ü÷ŦÔ×§íxç|öö/ûö?¤>#ïá¹øñ#©gÿt:µ}ÿ;xÜïRÿIÇåØ¿~:G#ýoÉî]C¿¾ÐúuA¼à XÄrF8c''vÒ"´ØI£Ðh'O OÙÉfa³Ü%Üe'ó
ùv2Uê #ÄYý²(&9^´SRTP43¨_èRjGP5ÆfKµZV º{
-¥?é«#3ÉIåÏ_]ßz¿ö_!̪_À$yG5!³Û\hÆ¢kÝRgi°°EÖÿ±üÕ[;WvèëG*Q=¶fCºÙ÷t~®XRüШ×R?ÌûèÎß×?Õ~iéÂçv/Yütj&»Á±°=u÷s÷ÿÜÙuìØoüéÛ ôôS3Ùu©¿ä}ºkhæò²½ziOíYO8±\vgjæ]wQ]=
-û2×d´P´ÏfWd«È¾Äb ña$+¿'gæÏiÞ2¼OátÕ ÑÄR8#×tWãU(oh)3
-e¼MXC9A60
-:ÖÈå¦|è/±·÷Xûr¿÷&ÒöU/ }Aô^Ùëοʽο*¼-¾ú+µÊHóleù6Ûmö{mmç|çü|Êë¦Wìį´-¨ñ¿K_@
-ÿá6Yæ%ðLD1*ðAàr2P^Y`CÐdü«ÑdB2xs/fÔ¢GBÆÌoUSÆ®¾$¡¨÷v-ÈÏYßí¥ª5ÕV·0ÙkY Õb5c¬3|@¥À99Õ4¾7Õ?Þ2=áD6L^=2°éAħ[ö½.Z|µW3ñP[Qì1eaf-ÎZÝö%E@ èpT+øÕ¥½úã¿ïñgNÇÉZÃÐ)Ír`Áº¶ ¿ðmj~ý«Ô+¸CWãÆÔ¶)$÷¶ñ>o¡9x±¾è ~]¢¬VÞQIé¯ô·0ElT-1eƳKÔ¥æ5ªh"P+ÍCÉ@¦· ÕëÍòÃd+³EØ"î`x±Í¥þ"¢¢ª¥UQ¹Ñr#}7ô_,TÕlÖ(:[¿CdRqç½PoÜYIéÊ
-6"£ùà0.ÿYækçèWB\]&Avì³v¯õĽ4ä¬öÓ7Ø Ô}W7Î& ÖT_GÐOkmý?æVIÑx
-¨àe0"þ´k&¢§À±Bø«é÷eº×è`(8a. 'TÐ`æ.UFuØÛ¡½_ÔzA'=±ò[#Vè0ëÃ8/uy+ðD̽½;5;tùÜ0ìQæÊÏ}Ù÷/W°g.¨|!.×àßí±¨Å°;ËE#0fD"0(±HÈ2!ç!êLóM
-&Î$Ù0L¸¿Ì²ÌôR6Càbµ`L/0&kØaªM¢Þ×Ðæ}¢Þ%Síò¼FÊæ/T»dªto$Èi$³;ݾxÀÕL5ªNZýq³jáìÜvuYË0¨7Hê±·rèí+)ÏJv¦árñ'A*»hlåáAºÅf2c[e`\î4qn.kkNÿeÍWn£,¯ ÜJ·s
-ʵliÉpüó}9±Ìq8_Ëô¸¾*QóÀÐÓÀÜÀi©ye¼ÖòºÓÒl9oþÆ¢%dµ8¬VÕ¢H6? û\2o³jªÂy$Éåöyn7
-çüÏãª$cæÇød(~~C>çÉÁH÷¿AÀùÞ³_Aawu¢áJ2»îz51À0X¢nIX´nV[7øÔg£T_é>oÂ
-fŬZ\X®öBí5 þnÛa:X$b¼soø¥ðdÝÑn{ï£Á
£¥/uËáÆO®Ú2ä¡§S¥Ü¡¡ï,{ìÓhþÅ©zÜù
-]MBÛb¦¬jY¿F~äÀòÌz]YƲcÅwEÖHtq³Ýžì
-H¾ªxÉ#É\Ã\¾4Ùàb\ªñ~ñ~$üVN:©fãIú¢V²þR.°äˬYdDìX+[wdJêòÇHý<ÿH¿]w|z
-¡0æq3vGèâòACÄü ùböÄ*n(&Åá·è×sðÅl¢è]ö7wY˲D*O2¦á£4E¾~5uÒRØ[壯{¥U±ößk$xüéß¿:¼»÷yrÔ[Ú¾Þ1÷E ¦'SÁþ?Í0~êãÉøÄíã[ðS'ñCo¤=µ?uú¾NÉÇpb/ú,'§þPÐÝEß)ÍâPà`Â2AFzy^7É5þ$cÚpZf:=ìÜrü;ôó¿vÁÏÉ3Þ;Am~^
-ez»ÑÀµ«ôÎL^UBºÈ|¥ÜOìf>c%òIæ¤ÌrØuÜìw"'³¸ý%MÀ
-B#ÐÉf²Z7BÙvTrÊVÊ©G¨®Î¼$8jÌí(ÂYAÔ
-üËÀTI||Fû¿XÉñnÏk³Ã XËëñ}'O¦f
-Ãüéä´
©¸É¸v¹`iè[cHaÏq¼Ì2Q½$=JUùâÿ¸.WÐÿ0nJ-<yßù _ð ø}äVãÉMh1,þ1[ñ£+*7ñ²À!#ãMß21AX-[2y
Ô´
-qÃ8R
-¸í>SÝ±ºx´Ìë?>o«'ó
-Ð5yÙlï ÓôÈá{%¦Ðæô÷Ùé=8N«üeâÞ¬&$Ëj/ägÛ;ÄwtÌÍë7¼ÕvÐèg
-ó.eü*©þ );£ÅlØ]&Rd+²wÅULW±«ÔUíf®°UÙe]³6FÍ×Úýj|BíæéV|«ÄØ"¡ÐTlÙ*Ùnb7½â
-âH6)N03´MÇSÙYâlÓLóTÛbö6¾Vx«íVûjv°N~m_±½Å¾+~Æ~.4jû=/7m+á3é\F2¦Ù-4KÓT«Ín¿ÐeM×]íöÐÕt.5tm.±¹\b''vºÝ¾¢³x_ ÉäqóþÙ>nÖe¾I×iÇ5Ft9¼ç0íc î4«#é9çmM¶&¡b$vüwׯæü.#Ã+3ÉwmÉÛ8ý'ñ_làAd¢vÎÀ{ü ¥çþ=SÙ?ÀFÐO'ZöÆâÈ
-$ì
- ưP3È:Pʳ%LJNø:rÂÕ&Ö)v7ì³»a¨Åõ¯µ±æÒܲvelÏHUJùË#"{áÚÚHüBjcn¸³3µ\!¿K]\3l^Õ6øÊOÄÔ¡bX0
i´ð
-~GÆ#u® ÑBc¢Áx¥îÚ÷$iÄeâ÷xÚ¨íÆ
-C61RU}aÃ2*"Ê
-Ì«äU$
-XüKÕíÿÖkM&d±XÚ§UPÐMe &¯Casrª³¡"¥9ÝP%=PòPfãµô¥\f¼{ÃX1ÙÒvyü7o½ÕªÀe\ðlêI°¸¶Í^ÒrqϬæëæ£*fáKDVIPÚTJ0+)êB49ÔZ2ÄgJCCñD<05PÌÃ+0½æì[FÒm5 Àh4«eÿ)} óa½ñ-àM^TÚlUýR+-»þu/ûó®
-¦l©ËÍ_ìÂßá·kkÐkÄtÑïôòn¾A.=2Þ5&2ãë¹ÍwGpo}ð×Nßaßw®¯CBöë\O¸v¹nESxR@4"` =á*5OüÚ»þø¨®*ßÉÌä÷h0d^LÒð£
$PL!iXÂ"ð2óye~uÞLSûcúÑZkµtõó©nõS,êZkk¤b
-Ø®÷U^öîå*iRZÿûÒr£2ûâ`¥¯R®| )÷:xuðBþ«Ä{ôd¶õf%Û½Áaýì.lªqåOÏKm¹ç´cOTߦößÞ»NZw&|òóëG/¼çÖ×?þ¼üÍÏ·þ¶Ûú+nÜpçc%5{H®¾(U<téK¿½ôê¥/µµ}âä×>ù¡'Ì< ÅÏÊ%RÛIlxmöMHM¯NX ¼ê+b_ÂÆB~£Î)?ômboDQ
SkeQK=(Áâ:ì<ù;\ÎB£Ða+Tç;lB"KóùSD%Å ©xR^è+,*Bþ«lR®ñöùRü9"éK¾Òââ
Ùúzä£é¿4δkNìþ{þ.
-ÿIªþÝz¤+ªÒzPïëÉØéþVUîô©Ýü}*WIaýôÔïmêwäAëÿWèGæh_°ó¬éql:«Ì%ÒJyÓ[ßüT×Ûµõ äþÙ[_ö]¶ßvñôä'Þú(ý¬.@þÞ¯îkkùñ¡òkßp-vѯí¥aeæwùwÎÑgß§~ÎÍv³m¹è½ìgØ{ ìe˱»íël¼Ëñ»u7öÉ[øï(;6°0ß+=Ã>z;èíè÷ à8à
-öN½üýöWØNCÿEhu¯à9¼õc㽨çN;?ÌJÏL¯íuFÈxãõËóÙW øÀmØ)È»ÞnL½úEÀµèóÌçãñIÀ#ÐoÚþûã,ÆÏGºíû
-òØAÐ
-9@ÞÁGE
-î*¸Ë±Ê1î´;vþÜ5âz¼0Qøñ¢î-^Sü%»J~Pz]é
²{ʾZ¾©Â^qKeqå§+߬úѼ«æÌûù|yþ]¬~uÁ5gjÞXøÁ
éEËYôß7..þ»Ò.qÔ:ká)»ÇëÞS÷éº_/mY¯¿±Þ¬?^ÿíeK}Ù[æ]é=è}£¡»áBãg
×{ÙzmùGf¬
m
JÞMm»m7c¢ý6êWDG6êU&¹nc¥jÛYd
-¼ÕHwÜþîd_>#póÊA²Ê÷¼Èþ¶³!çó/aîk^êxÊu\àeì@ùÞl<ßY>.psÅZã¥bÀm¬¥â:ÛÁx+©¸Yàðß.p'ªxÀ]lR
²®7^$«^ÌÖÎ;ý+WÏû®ÀKmûçÛ^ƼHvnõ÷^À=²àc;þ9ÂD ÜEø9¹|_àðQÍ÷Õ¼ pø¨æ5ÃGw>Zx£Àá£
ºÀá£
IÃG6 >Z¤
->ZôKÃG')åÀá£ñy5ÜMx1KÃß^BôG/#ÜYÁçÒpðyÀ«!|>ñüð«HÎ/¯&ú/ä}%ÂsFK·%§ÑC¸ð&Â;á+ ï"|5_ýwþ§±q¼Ä¢!æÒdlÅÆ±/ò£VØç,Hø.e)¸dç(öµ1*UÐuâP@ ¡3°N¢«ÿKI-YÍÖKdyÐv¢¶Æ[Ë6à»X+Q;Ð#º}F I½ú Ï
-k$zÆÑb
-óÒx»Pö`ìa²¹
-~ÞOTnå$õäÒgÑÉòoãrbà»"FqÅù¤ÕHv\]DíjòK
- wSK"G
6«²ºÇ©E§íG -?XÑÄ=°41Éʻš.UÄ I:Ù>@Åc-BcåÇ_ÈRI7Þ3L¹ÞA&õÒZ¥ñüÂV×ÚþPiV¿±¬ÿuå1áAlcPäY³ËxHú'h4
FÈ×*ãyn~$ÙÁ¼hà¼Qe¡[Ö6
Eü"R|&djdµ%Û/( ²4¨\LGiÅÆÉ¢!êÏ5åþ^üÔTªZkKÈYaÖpHPsvÕ
u£b&:ñ'è(çU¢4DÚÍjdçÂÛÂ$/'ç#B[UØßOÙN«4c³
-ÇñPù`;ÊÞJ?J;p&èÂwQX)Ý+¢\¢õqù®'C·ÖeѰy.FßÙY,çLFÎøyZÇÀÈéÏæ6+sç£ülie\µÖ¯.r¦!ÖôIѲ9¯ÖA1_Ý£"eÏFÖæÛX&;Ù줧ec:NùÃëyXÄãlöʬBn1-OJnÏ/ Î<(3ZZ ÏDäÙ<Ô@³n)+#Ï#grÏb*íAUÖ6D¹ÒØÜú{@ÉåÙ±¾ÐÄ.#Ïeeo4eu±Óy'>WD,Fòr[f\Idi=ï,ÏÛ#¯ÊrÇóâ6wî~{KqíÂ$?WÑiòäÿ#äÍü}h&?æ8£àµv¨ ²8ÌÎÇÒ+?ºÃ"£Zö·VULÄG.óN¡·Q.>vÒÜgz.³÷âçMìЬÙXû=?y5râÙ;'Ù Ý*ßÄyhöFI¿»úÓÞÏÈý.®ufÛÅÍô£eÜÕO2g®ãÇÔËl=ügi³ò̦ï§k¤]¬sOF¿>é`Ö@#öðm¬×Z
-ʵ8Z+Ä6ÀÆïìaÝs
-ýMÀ6|-¼]
-à½Ö±kp-ÀKÿóÎuù1ÓÖrõ²çñ6¬ú5åóÊ@PSvE#Q$e[4ÆUSFXÈ߬tª¦ú'Z¸0¥?Jp¡ì ßÚ
-Ö¬FÑÚ¬tBJ>4
-¥O3´ø¨èëj¨OIÔxFìF"*ºq¯7ø
-âÊo$®ªUâj@«ñ#JtømµVâÚnZ\(zD1Áº§_éUMÅ«ìRz5P´¡%`kÎJÂ|£#q5Ë'iJg\MêÞWiW+}Ñ!ÞûÑj¬âÒãº_W~5 `0ÓúÖmÑ©
¹nñ1ÅPaAIV¡DV)]üàRu4£qM &Âjê+þ Wýt¿y¨mc|þ:LÃ5¿fQÇ'¤B~ÂTt!O>ѤnÉáh4À{sjPÄ£Ô"¦®Û$kVÈÒÑQ-®Â×f\SÍ0xþ6ø`Ü{ZTNB at IWb=H&MÕ0ÇBZ¾%x¤|-Ö#ÄXúûÈr`@WG¢¼=Í Á"QeDÕB^UB0Ö`»î»i0cįaËÜ:7¢ÝɵйÖCd^S,"CçG!MI)²¦vs+ðsû+ÃQL1)Óäq©Ç5øÝDhÀMLFáð:¢ÞªG Z3ý«,£¡{@7b!uÁ{G´¤ScP
-,¨hêÌÙcñh8JÒ¦ÛØÒL&Ã"`ýÑpKÐZÂ&ÿÛ¾-aãÊ'ÞÌï°CRªQÝ=;·ïÜÖ1°³g·Ò³]¹aç¶®Ýý]JǾ®®]]»JJ0kÆjÜÄÜ'P30É¢³,1d>ç¡1e,à=ý<Ú`gZGVX"8(Fá_,¿ØÕ¸¦ñHlVÑ-¨"¢C|¡§9MIN§qKÇ5¿ ?Ã9½¸£#±³ýàDïPÂh¨ÅÊPQ
-5E¶36eT
-%Ô!Dj Bò{7+{"³cY`N"s!¼UÅi~IgæÌX1BÑÆûªÎcQ§¼ãd[ZÝ)ÒÃ:!¾d4~İâÑ$jb(¤A>dYæ#P¡?\S¬à>Ùcçpnr<{ÝÐyϯÅ#bq¡71Áh"ÀÕµ¤®fLóÁ2@ â²sZXýfÎÇ|bªÐzxv±¤r¶X÷BÆQÍaONëÛÚW(íkׯ^Ó¶fMaán׬]ÛÖ²ýêv¥}Ý5®ÙPZt
U÷¶µõhâR5Jy|SÎ/ÑÆ¤RøoÂà5Ú6dÚúiÄ/ù¦-`{ÈvÂö÷¶³S¶Ó¶ÇçnéÏÝÒgs·ôçnéÏÝÒ»¥?wKîþÜ-ý¹[ús·ôçnéÏÝÒ»¥?wKÿÿá-ýiWþ9\%þÙÚ^¾¬6í
-üÕzVn[À.¦
-«¬ºjyk×E¥OwTÛªÙwmüáËJIþ+$æa²]ÅÒ
-®°ÀÀ!À1ÀYÀESþ Ê
-ùÇüi`*9¾ Ë?FY!¿i½²\~ØóòóPíûãíZOÒÔ"Ïr,X,ªêÖIù_Çß\á_P<êX#?ËÒ
-8Ðç9ôy}ξxø
-/¼¯ârÌ+û¼þ-yá½ÿ#Àxá}ßñÂ{ë]Àxá
-ã
7p0^x÷ÆoÏ
-ÕpÐÀ¯ÜÓçÝï¹ò:ÝC'=[Ü=×Z\×ð>'=k B
®²+Ü4h}- ÜÓ>)}«:÷9{ëÎUÎ:§Ç¹Ä¹Ø9ßUåªp¹J\E.Ëá²»dsÍçï7ñ+æ;*è
-0zÞNx
ÌKÙzÏD\2{KϳuËÝý[¥îôÓ~Ö=¤¤ß_?)ݸ?]P¿UJWu³îéõMÝΩ¾t{SwÚÙû×ûNHÒý ¦åLJl`ߤ4ÅIw/NWmã¬Dª¼ûÃyÝx÷YMõè-U+7lï¥8,ʼ7Yk¦áKÒv÷ïK?¶d0ÝÊ©%Ýéö+ö~+ý¦«óô:¯÷²m~ÛÕÇé¶ÍÝÒ^âcô:ø1¯«))®Zï!o9úo¯ÀWXÈßòÂBâ³Kﱬ«óIJeij
-ì;qÀ§uoòmêªW;'vô¶µOëÞìXm½³ëåÂÚøX;ÚginçÍ;øXí|¬v>ÖßQ÷î;áb[·°ê ¹¸ñzxqÝàÖêØf
-ÞMu5w,>
-É£¬¸i0]R¿5]
-àM«;Vwð&¬)ÞTr¹hª¹cSÝâÓÒ£¢©äÊú¬ÉL VÓ¥wZÿ|@2ÜàVÙd\é¶®´Oí4LƺÓ+û»Ó[nÜ¿ïÓ êa>¥ôƸ¸krêiØâFN´Ù²v-§
-ÆþOä¿êÏLH¾Z u¶tm÷T0°s=°ßiløéÁÄ
-©I222HmfáÏ7fB`¦¨^èbdÌý RÕÿ
+394 0 obj
+4503
+endobj
+
+396 0 obj
+<</Length 397 0 R/Filter/FlateDecode>>
+stream
+xµZK«+¹Þ_Ñë;z«á^ÛÈî&²²K&2Ì&?¥*=JR·ä³ô±,ZUõÕSW¹üïã¿X.>:©àé·ðüíË_Zþó!®«Ûº´ÿûçXܶÁR«Ô¢Äu4¿üÛ
?XñýóÃ(yuúªÏ¿/Øõ"×åóob¿_ÔM
+)ïò&UxhüÆàÓJw¿Øôw}Ïûß>ÿôñúüøÑl¯W<¸
cÑöjѶ¿ïn÷Úk'½òÛýó_Dÿc ;¬úê_µXëàsæ7ÿó?ò[¾Å)Ï_%0J£/ùàã_ã·¼6Ì©]¬óp¸DJ£Bf´Ì©ÒG4ÎFÒ<¤Db3)
+i%Ò2K¤ÂqR1Ò8Ió,jA¢F
4ÍiERe,#¥Q!M³DZfT®0HiTHÓ,Y$ÝVFBç.Ï!
+ÔiëVb¦SwRIÓñb!zjc¡<FëcÌa5Nî,ìL¬l{K)ÃÎÈF&¬A2}¼_¤
+>^ØìÕkçjK?ß¼_ôÍhó8(J© £SZ§ïR§º9¯Ã·ôTÂh·»7³¼Âàë|á¶{ZÔë~Yä¼5îÖ-8ëöûzs>zIËàÏ´{¥þ~èhÝ
++O5VzFöDªQ4BBkÑà½?`Ú81|ÀIväü sC!&ZïVdú÷Ù£\Â>ðÏXIîö-ËRÓÎ B^Ò³4]- ¬BTGqÒ *p¬-Ë|h¢@DÅCìæ¸$HøQ²B£B gÂq2xßÕ©p¼LÉ^Î3sûAu
+Ý2¡Óq÷¤ 0ñGF6q:éЯ¼JªÛQTô5Òáh+á%DD>>Y£ëw¯Ð¿ìf3Ø¢g
+µAÇð=Fv¦EàßÐèÜÉ+z¬íär¾'ÿâ¸,À[ÜMLø Ù4»þ%{åJ×ø-/
+KÙ$£zaçyJIùÎÆ
Y¬¡
+ݯJ!HG4Ê[`zx̪àHÝ
+,\EÉnÌÌI7ÏsاK¡·r.A4yItY"ØQ%|l|Yöd
À!CÒ¹C9ÑDfó}©Þ_{fé' K1Ùí +-Á-¤JògñÕçáÓr1å{Õ}6j´c-íårFñ§!fGF!ãõL×ÓäCã«_ÀéZç
+Ìý«Gö§)
ªgn*·ö)W9+ÑDÃïè)cCÊ+¡HsB«A 'ÓI×wÁ¸{ÏÀJB&Ñ3;5Gñ¥È$Qó'
+ at xwÅq¾ x¦Ï&ÃR<ßÏ
+pêécúèÛè9>:NØÖÞêHUçõ 4Öaß³åb9ß¡×,ÝÆæf`GÌÌtåðK¦URkÁÄC.¡ð ë·ÎìQGrCÉ<F^*9Þ>{ÜÌC((û£RÃp8ë$rTaYv`æ/ses ë@EIFUw¼Lp¢T^:\n´ÌM
aOªv
+ÍËÏ<'5/7°1Ø!ôGßݰf-$5
+|Ï4L¸è¹ÉCmª·aðmãmÈ##è ô¸Å QRÂÜ|¯eÑø7_V
+Ë9¼é9ÊȯFxxFyE ¥¦ÆÙÏê|oêq¤é#ù³WU,kZ§Ù
+TÃí-IÝ9¾SbOç½
+Hå
¸ï)4Âïz>§ïÝÏ<8Òæ+Á /çC`;ÞMêËCêÖÞ|ºÃa^}3¶¤cÚ´/Ú^;åá!$UU¯BeîÍ»´XéRa-N ªZãÃö^ËùT×rë_TI¤DUúÛÑÁí¢dNã4lÐhÞé
+Mm§ëÚ;ÌM|w4ñ@P_¿äAëG9èÐÆ»óÐ<¢«ºN"tæ²Ã#«£ÂÞt+ºÊgLA³±¶ó>ñcM°¤f\hé®ÜÖÏ;°éÂÍcc
ãîZ±.}£Nºaô}±oºKªÎÊÄ®¦©]êüî-üü¯g|**È;Ëäï®:}<XU¥L.yµ^º%Ôíîaï-)
+SÅx;¶±U¥8%î´är:âz*'-;VvÓPi
+hT³Zt¨U
+ÉÞ°¤m
+Aì:$M9.HϺ[{ÝÁ=Ç&ô\Oå$ݵæ*wm;¦Yûp²k®Uì^tQ#ÄèpÝó5P½e5
+aíÆÒãÏíq{ÉØø±ü5?TÇ
endstream
endobj
-499 0 obj
-23566
+397 0 obj
+2553
endobj
-500 0 obj
-<</Type/FontDescriptor/FontName/CAAAAA+ArialMT
-/Flags 4
-/FontBBox[-664 -324 2027 1037]/ItalicAngle 0
-/Ascent 905
-/Descent -211
-/CapHeight 1037
-/StemV 80
-/FontFile2 498 0 R>>
+399 0 obj
+<</Length 400 0 R/Filter/FlateDecode>>
+stream
+x½[KìºÞϯð:0ëaÉ¡aÝìN2EÈ.¹{7ùû)U¤ÒËòÜ@èÓj¹lÕ§¯òY_Ôò§uy^á«S>ý>ùÛò§ß,ÿ~ú±io_NëÅÙíŦéu øùåOÖ¼lsêÅ,?-Z¹GÿZþø$Ç?-Öp«<K¢ÊKQ QeÑ4¢µI0|Ïb4CBqE¬U/YFY,Î`EQãvÀ)Ò(ÆYͳ$jö=âHò,¦YÕ¢4Ê¢qDó,ºMèJ#!ʳ,fQTyQFY4Îh%Qc¤((ϲh%ÑÕ
+i$DyEÓ,Ú@Ø/Aò#/ ^éii3gMÍ;IiJzÙÈ;S³Çfj6sÇÔûo39L½Á6ᄅwÐæí5õÙ¼¦Þ7È´ §0H<·ÿsÛñ¹±Ûã¹É[Õ¹áÛÆ9ýÏ^±KT]¨w¼¤7î0:þN;.M;^K;I;¾G;îE;D;NBW at 1o^R°{ÿzÒZÙ5è÷õ×å·ð[zùúû_ÝÃ9½:uÓ¯î_yuðáW÷¾oaæ3}»ß÷WoÃ8ÈÀ·çí¤4 7©î¹Ýo$îâµ_½F)onÏü+\C?ó$ÞÈÓCîÎßþòõû§û×ÓJI»¹
+ûô"ºè,Þ*X=\EÚáEfÑ:g
+OeÝzwQL7ýðkd(qk.$]Ø3ØÓ&6ݸ`XüÜ
+»8ö|_ÏL±±HÝj:ÅF¯½¡Ý[m²´í/©òBìt>U2 ϤDððÏÊ%dÂÀðĺ@âÑÄÊV÷M+ËÙ>ÐÝ&7M°ûÀ\ïÑäBlp´§GRù#"âßâf'X at l²}a¾¼Ywæ$+m@æPa]k6)T¡Éª´^l
+®a|ãéBäº÷ÞÑl
õ¿Âxê< ast?k
+î¿Þqÿ9¤)« ï{paþ_ë;ªNé¢öÆtH{f
+À
+(éTô¡ï©©®PºUdªújKÁBB;"´ªä1ü:RpûÅ
+»¬/úÖ p,Äéq.¤Ã#FøÐciÕb÷`µ\ÎϹ²u¤.
+Ü_íGE¼Ô°â;üÅ+ðU¶ý#\2í¡ú+:qôgÈl]qº3-[hÄ5N1ñ¶
+-çÁÛHN¨LÞ} ;sâ1 ( ¥·@jkÎ2p±Ò¢cººNÑÚËu(!tÒþæ<:
U.ô¸áôà\Ud^Öì)ôSÔ]ñøîcõ×®2Sõm&m·y9 Ö¬úk¡RT¼´ÚNj±lÉi; ¹{§ngíe$VxeÈn<ÜïÎ!
+#öõÖú5ÎL¡0¤ÖÓÝTÛÌ"mÍ &³M!
+S!Ù¨FtGm[Ð~O Ó´ûq¥áöcðHlo1u®ãÜÍÅ]¿æ
ô¦îÕ~ÇmC1~}ñÖ&£hõú~äÐcã$lZ`Ê9b;öôF{ A«Ê<V·s½ÓÌi¤EÓÊcUKÁ£¢v¥|úqc6çªÿÎdjÓ7\Ö¸ØaÜòUIk9üH(Sè©8%)_n9|GmaÊ\#xÞÇ!{pNSö(ÝÖ+ß/0âU #7¨hTä±ÿ±c2Fq-£<ÛÂpË*ÏA<èÞ"0ÃL{cqÛycØxîæ²ã³ã] wó=KÉó®6ÆÊ\ØHGq¾JF¡÷TîΧ¤¡ÇÀqy¹ôXSÎQu ÃÞ²Í!¹ ¡>Çl2·êMiá:¥ÿ®arÁ'S¢nëk¥í¹Õý^
$òѱ±1F½FÒ`³<ï±âý¬òý÷Êâ?§Àvz|ÈV¹ÙTÿ8"!÷x$rG&IJÙ
+}ÍÞÅsJ*Óvb»DdÅÑ
+Þ'Å;©sÚ@b½1¶e/%-W'W%ô¥E©ºnS4tÛ,¯sx6 plù%Üi#Ö¸îhYSC$¿}qHRJÄHÐHBN»T"¡Ã»^S$Ôú¿d}Õ©d
+¾uc3RÄ"Åd òÉǰ3ΧCú¬oBhmÁ¡¶ïçJ
æL¢°÷¤.£lyº':ceBç>µÅ8ßNZ ¹L|G'ÌæjûÁIõÑe§ðìÍkZuÂÖIj/½£\ªv¯Å!p9¦` ¯ì$-£5{ ûDùÁ¸Orí(¶Ãå1qõ>×ëN1kàei
']ؽ£ð [ÛfÞm*6,¿fR¾ò"ÅQQ°:ì|¦^</fÎ-¶s:kï¨>ËønRÖè
+꤫_¶ÈÿÇâ|~O.ß³lÙ¡²S~¬mgáïÞp
ßOlο»'
Ò£s(®[)ùÕ!ï++½9ý½ÞÑöô®+|=eX_Z,ØõcÄÅi?%¹¬ÈãËiâ
+Ծɯå¥S¹òâak&¼WÝh4cog}ðqQs÷²nN,ÆV½´rÈ®'Ç
oHxÇwùõÉ2»^³ìÉUâªÃ&¬ ]Ao~¿
+GÕ½ÇüV6ü¹ÎZv|&$
+ðw8ø Áðü`[ÃÁho¬|Wtû·,ýcù/E4þv
+endstream
endobj
-501 0 obj
-<</Length 563/Filter/FlateDecode>>
+400 0 obj
+2826
+endobj
+
+402 0 obj
+<</Length 403 0 R/Filter/FlateDecode>>
stream
-x]ÍÚ@ï~
-7=Ó3EBH,,ü(lÀرlËx¼}\]DÊTwW.p»ãþØwsñmSóK×·S¼Sós¼v}flÞvÍ®ô»¹ÕcV,½§Ç}·cÖë¬ø¾Ü»ÏÓ#Ú¶Ã9~ʯS§®¿æO?v§åúô1¿â-ös^fMÞÆËâó¹¿Ô·Xh×ó±]nwóãyiùWðþcnõÚ¥Úxë&NuÙº,7ùúpØd±oÿ»Vl9_õ´¥´,}¹Y´U,´¨®Ð:@{j]Q~¡@¯T[õߪvêóÊß±w½§vÐo¬ßB¨ÁfJjôÄYü<üòM~g1äí%¿Íß©ù«7hòðÄg7ä¯ü^k¿Î%¨ ?j,ù+̲ä`°äwÈÁ?ÀÇ&þtÊ_uÊþüÌü9[òWÈÐ?èyÊ_g?h
-ùzßFg?@KÊya
-2?
üþB~¿? C!¿Wò_$þWè¿Î"¿ÃóJÊ_ëÉïñû
-ó÷êò¿KüàtÌ_ôüOG~¹.åÜù½'~ð¸?\Ê:ò{µeVøÝùú_ðßpäE~Aü~¥/uz{ñzcÿüYyó1MËÊÐ%¥»[¢ëãß=6#ºôór$Ú
+xZI,¹¾÷¯È³¡ÚZ3¡(®®2øöìoöaæâ¿o))´¥ê=V*C©Ø¿i}ßÿ½ý¶¬Ëe
+ÿºM
_ÄßßÿµüíËß¾-qÚwÓjqƾë4½.ñï/¢~ÿåÍèw»¸c}w˯ÚÜûA£ÿ,}ã_ãw#ftóaýD
+#AJ³DfÔãÿggÄ
+¯0)2)Ï"iÒÍ{!YeREÒ<¤ZKR R%Ò4HMÔÞ/2!Í!]C2µÆ]kÙdеMÖ±.µeXºVÉÒµ´MV
®Åi²¬u-/
©[$iiÉ4 ¸>7ýsëð¹â¹µÔ¹ÍTvA¦Ê¯}\;n,Æ¿¦QÇ!ŸãsbÜq+1îxwCÀÐ9¬¿-)f~|½)¥"íº¿ïË×??>¿ªåëç¿_¾©«{ºÏ¾Â·îá8ívqWoâ>ÝãvÙüU^Ýö«³ñ¥{¤;ð
ó·Ëæã«áw/x}»À\t^ÅÜÓ[
+¯Âl~~açÃóm»ªÏÛ?¾þüöøzûÖåÐ&È äÐ{À5y§ê1ZÏìÑc@ä°Ç宫½}ý»Gà\I¾o·RÝXRðu©?HîeéÔjÃþ Ay'a'w¾l6,ª×!ó£%cn
+E!;GïF-i¹Ä4K6ó@&¢"ï¸DV!)¹F"Ù¦ûÛ`»tCíØ#øpËs ¨¤äLã>2þdYØ}Ø
Á±i©tâ¸V´btú§T+I^d[¯GÀKnÖ+D
+xÅH4pTÃèT4vm\'ìöÜùì<êNö
+ÛòdÙÈÑÆ±Ø>
+Dï]ÙÁºÅîHÆuOÆêrtpâ¢Ð6ý3-òÈg{ Éë(¤å©´
+P§ÒÆ#µJñ
È(EEÜ/úéqâSÄ"o!O
+ßÚðQܹÊÚqý$#gFcmÌ&
+S©¨µÍ+ ¨¯ò²c£É²?Áf=î±j¢WÇ:|1Dg¢C~q×èIíÒ¢~¢¦ÉôÁêqQà*)ÔoCT¯Ñ"1Ü_&æ
+Ù3GÞ{©Ñ"|ËU¾»õÞ²8Ó¾=¶Ö'ªð1²t»"z
ÚÜyäÍH"Â
+ÎóåSäÍÙd2>T¡-3Sö½ëØz¥uxåk3P@ÜTa3ÛúÔno¢û¶|L9LÓK¦hG{ÆÁÞÆâ"Æ;åR9L
2¥´ Û"ãÛ÷2.bFeJ&C¯»eu*ã[¯Àp,%cO¢ÕõZÔ9riyf!m§RXcM~¡S³ñÚB"Á)TRà°ÈXID>ÑCÁ©+S=n{käè׫
+>'`Éy!¦z=ÁnYÉèjBË.34rÝeu*U÷áÐ?û$?
+ç!MίY¶.äN+§ ¹OóeI5#ÿoγbËèL4f~Ú«Ç~ÐìxN!âÁD*Ìô±{°h
+M-g¢er*PÛº.BÙ Òpr2u×!ü*ßËØY»
+4YR9Ûs´N*sÌ¢ÙUÞ}½¶ãSQÓ8¡]pµËc²Hbø½rµ£@IÅì&3Sþ
+yÂvRú)zÈçsÆ3¹½SÅ~NÖRqë¦Üëþg§w׺¸¼±a3[UY¥¼äO(îCi!¢8ÊpëùR>é+UÇS
)Ó~¸Ù NBÊKÞ£û>ïÒ{\:§¾0 ?¯káÂg¹^zÞzåqQ$[msXµÎË»u8QÕ+ãæ}àz¿¹HÁÞìk|ÃöÕFäÔ*QÍ¡/`³ûs¤¡ÖWp ©0Ä ñp¬å{*)åG®v¶ÊlÜDO¸òù«®TȰKrÆÐùzûg³&¦loy¦4"cÑ¢ hèýUWvõq`ê×0SÚªzEòì¡âeíûlB{ë=ýãèøèÿAìB50BÆ@G§µ`cÒ¨Nfk.+J½Çao0úCËÏT{̶W<rsäqæV49@&G8*{z\
+ñQ`¬È0P!Xg
+¹½àrCó
+ªT ¿v=,½E
+ð>>)Bì¼Wô^¶ÒvØÓ'üÞ©% cåRðìÊB'-Õakj2ªé:°sÃÙI/¡
+q-#oJæÞó8·
àõ] A¶JlMû!(²n_8Ú_êíEYàͱ#æ+QðAÈ=0¡|SW4T1¶]îå«¿Hg±Ówå=µ»µÈìÇÛË"±ðm°%gÂkogRÀT2ät
Z+'ÝEßát*í[êÞëy¶½)yé`p?q6ØÃ÷8[&ÈÎfcð7ºMüwÒ¬qÑé\¨¹
+ÈrãGd¡ Ê{+XE}-Ü`¯·%Zdâ|2XÙËn_yùìܮئv±úà5¡:¦
+JÀ]6Ã. ¯ÓLöܳî÷1aÏ]b¯en&C·^BúK'@
endstream
endobj
-502 0 obj
-<</Type/Font/Subtype/TrueType/BaseFont/CAAAAA+ArialMT
-/FirstChar 0
-/LastChar 79
-/Widths[750 666 333 556 556 556 833 556 500 277 777 556 222 556 500 666
-666 666 333 556 277 556 556 722 556 277 666 556 610 556 500 722
-500 556 277 500 277 222 277 277 943 222 722 500 500 610 333 259
-777 333 333 333 277 556 556 556 556 500 833 722 722 722 777 556
-722 583 583 666 190 277 277 354 666 666 556 583 556 556 556 666
-]
-/FontDescriptor 500 0 R
-/ToUnicode 501 0 R
->>
+403 0 obj
+2748
endobj
-503 0 obj
-<</Length 504 0 R/Filter/FlateDecode/Length1 28020>>
+405 0 obj
+<</Length 406 0 R/Filter/FlateDecode>>
stream
-xí½y|EÞ0^UÝÓ=÷ôÉÌäLB&$äHH¹!$`$dBFr1
-u¾ôcP eÂñAÔêô£Él¬6»#.Þér'$&%§xdoª/-=cRædôÿèGs¹Ùµ%ðÈ
ÐðGp}L±ðð§´-Ö9üWòW@>¢^ÊçItíDýh?|" ó¨õ¢«áû4úÚîF×áèmA÷ü~t¡Õ INÔ
Eù~=.À&$ z½jÐuû°ÍAt{ûýð§¸
-w QZr¢·1OÎÒ¸4ÝÃ9Htèô:9è¶¢8Tæ£Eè é~ õyôG©3üò¢
-ÇÑT´
-þ%zïçä!¼Ü÷`3çBë¹_à·4Õè*RFúðBÏý7Þ7¢8î|FG OÞÆ~þ~¼= ´¬'y^Å?Àá(ÿk#§Ð~ò)Gpð÷ÃlÁ½µã
-Ð3èNAGvÜw¡2MÃó©lÈgè°+.Gçá{4QrÞÂ}L¨÷ðMµº÷EÜ«øXÞ /Õ¸âF4>ÄwãÉJ´\îá×i~ÿýx¦ôñïsó¹b'OüÀ=%¼Îæ^BçàëÁú_'~4t¢;¸§ð¡Ãø|~×
-Tn&<¾láaÔÏÍã
-h6:ÌF¿Ä¸ßa?zß;ð
-ÃCõèKa?ÿ(wPSÄ'
-¿û¾¿9|ü¿Â÷ón°ËóÁz#À!zúßc?Òöx-èkø6Xyx®³Ñ¹ø°KKE8-"©h=%Ê¢Þ$@ù̳ÊfL/-)VX0uJ~^nN¶?kræ¤ô4_ªWö¤$'%&¸]Îø8Ýf,fÑ ×iEABÄ(»ÒWÕ ÷e4ôñ¾yórhÙà¸>ªª&âôÉ
-M
-f`Kr*ËÉ+}rßë>y
-^/ô+]rn+ûª6¶î¨l¨ñôs|sBúltPo
-þ}bMPÒ¥/©r*´À}~_VÕqhÉÊÓr²7"_$ÃØÔB·ºéyÀs¯Jõê
-õÙçÔrD
H"ÇZAÏE¦
Zc?ÓäæQªÈj°\Õ'5ÌSîuz¯÷'vþöb±n*}ÓýË3&'gÜÁÁ|©^±zÇý¶*ð;;vTùäª
-;ÃÛ}²äÛqÜGîÛÑUÙ0"ÑáãW'öUí¬E´âé94HR~kàÑ@DüÎ
Q$ÅÀ¹9¤)p#·VÐÐv8<§_·æ.¿ôUÙPÙ"étÙ¡2T°ô=ܦä{^k:Ü0âÑ÷2wòû}dþ$ÝôÀÄë!×åФ|¤\C4Ã'û3²
-ÙÓåcÏÀ$G\!á¸tû ;L¤%DÇqûC¤Ø|åQ\kBj¡£ßÉC~wÞìòûýeØ¿eôy½-åù·,þA
-OD¤KdÒ²NÒíÒqº²«?±¤²µÞúÔéSÒ½Bå·åÖR[©ôò|\.
-¾ÔIÓ
-í¾â{1W ú8!Î_02묶@~ÂÅ»w¿±ôPÊÁÎô¬²n´Nˬô]HÂ;±æØ
;tÅË© ÍÕÃóEüLÈ´§¡§K×äàt}ºÁgLÏ`!O[ª]å]çå³³|^f³ ô_¦³ôS2ýþl½É¡×âÓ<Nì\f÷$ú©Àg%Çàg)y²QdSPäëòßpJÀj+D)RJg
-ò$ÙIyÜ]þEÒõþ
_ÕJ Y
-?/¨¾>]
-⤢¢©4
-)¾» fÂXVTÄIç>ÚtÃá¥WÏÂ+Äå÷F®ó>^òßÇï®uÏHÜrVƪ;/®ÞßpÙÒêG¶×]µÜf4'/R65T/Ýyàܪ®]±¯/\<õÜBü¡EÒýçݸöAªóE óÉLçc
-¼X³Mó¦Ób&O³WóæfX#®ûFu®ë®w
-ÃGg<÷
-D¶¡7Alð¯UÑöµ#Ú.}îßqåc:.[9³
-]yF9
-ÌLWJæ¤b(92Ëë¡ç-VεÃÉZ·WyV+Ï¢>[¹Â§ÚT=Pð/í×oPë*ÂS¨ÖEÐYÀ4Æçô÷s/pq_r¼Òqv^IábÝ6Ý:ΣËÓíÕ=¦;¡Ö àxÌ "AË$¢èã±Ö4Q¾ AÌä)ëD±×I
-ëxè·ñoò,
|ØÇ;kfsþ
-Ô[Pò
¹åüyÊ@^å«5#xÊH25%ç+Ϥ<åéTQ)CyÊPZ:ýQÖéÊè}PåT]ÔRYã¥..±½ÃþÃþXÅ»GÞå_ý;;ñÝó\óñ`Ùhg at _Ê
ëox×Àðûµ°TµÎ×õJ·j5#Þ1Y7×Z`I3/7à´|ØJïá Þæ1nìje þÜ/IZdÌÄ\\RM÷«ú
Ìn¥ÓáÚJóêÁ¢D××ûQ=vª6jK+'fPUMó©ønß#¿ßñ}½twÛ¾oÍæÚÚ»ð¥ö~ÿåGñÇÞkEvÄ>ºäÊ+¯UîþH³Vóp ïCÙÃï÷¬
Yt.
-§Gùd-ÍNI§¬ª;Õ .
-öbÑOùCýý2Ü£M,K|©"
-
-V^³ð¶¦ÊÒêÌY·6n8Ú°ù¥5º8ËLßY+
-æ¯)Z99¹¦*sÚÍ
-^îxL:6tÌRÑÉcȬÕnyd¸ÅSF×
:!3õj×ÕnÞå@DtÄý¼Ëà²
-¶'ðâ¢ÄÄÙ°ÕÒ$HaÁ´%¼
-H¶Ö
-YNdò©ÉJ4 .C.-ÚEWá244¾¨¿Þ¼Þ1Ào9¼j 0;Á×â
-$ZRc¤ÓBÚ=ÒëjVÒí
-b«³ÔZZº=׿ýç¶+ñ33JÉüæ¹ç¶³;Äít>\`÷q^{¹I8+ÿè_Îzì\?(õj§6Ð(÷ÇV³pׯ¿ððàæÁ
-íȾ´$Èà
-ظ¤4NðØ ñ)²c¹PTÞêîòX:ÙVQR^RyÒâ¤Ï4IIøDÀtØuTÜvû
-¸uù+¿L
-¹ÇtÃÌ[$ÚEæLl+
-ÈÚkv}ÓK6^xÙYá}9YíøàÚ½-¯m¼·x²æøÐéųÞýí5Û»6¯3ò2>zåµãMWÜxó=`Û×Á:ÜWö¸µnÝM£âQýGq¸DV§»Ìx
ë&ñ&ýCÜv¾ØµQܨ{\B6ÎJó|ÛåtúâÝøTzäëñnÑèÓhÚ|©4¢ÅiÝñ:SÈ´xÁíÒk2ãÝZä¬
ìþxÀâª-wcɽؽÖÝéæÝäþDðSøñ@QÎ×à75ïk>×pyºÕs;5NM¾äiTæ÷/¢®g!AHh4ôSõK'©ñ
-úËËÊÊ(!÷j¨
-Àt×,0Ò~QC6¤zlÈÿiÉǹO¼´õæÔmG®µÍ{öuao|rÃwï?ùö5-sî!¡¡ºyes\XS¼¿
-Ñ"à):}qÄeX60ü»~xr4¹¸Ét»÷öTn#·Å½Çp7Pí¡µ^UÀåÜÕ®{
-ûM|×k¸ÒÀeÓ¼©¾#/
-\rª6<v¦Å/³£4''xì¢Æ3Ù,$,Eq6
-p:\+SÆh8RÝa}®QºNÒ?g;ß´É
(^'ïðÎyZ|üOת§®lðtzÃhA1ðتlÐb`5ÑË3Ò4Ø©äh°qbédlÿ¹òHþÅ57§¥Çþ9§â¥Ã/½Åä·õÛrÁE5Á·\|1^oXÔQÕ0+/+k«{rç¼»ÙØÐU3ujFBÑêÂåß²fÍXà#±¥Ü"Èą̃(`¹Ãü²í×â
-ÖÛ»8Ìpãø\Dð¹:'ó$AËWbô$iGÞH¶²Q©ÆWȰp>®i°~°ÍÙ§á8㺸W¿q\|
-4hÒ QhÎ9®R@ ZÍ>
-ÊR"~Hfé?ãûiþ~{\ö//ëµ <|Cl))d¨
-XÃz|yÚgæÌÖ6Q£q} G8
-àåçäþT$Cª@ê±Íê ¢ úmÄá=w^tɪ'¯b¡§[óØØÿ5¼~åÛâðwñnÔC4¨GÏÖùD'JÅ÷ìï94.a+²q<>³ÅÅÇ[F£ÁÈtfk|¼i IÒevlÎ #Ï ñ8ìQ¶h\.>¾éø(äKÔ¶¨qvê^Ý ²!ê÷ijsjÜnölbòN©û2T!¤²gä@ÎiÜ
-÷z at S<d<¢Hjê¾;ùn« »©òRï93§;\¯$¿ò4wÛÎ74ÏJ¾Ó5)²óû_77ZÞÈYÝæcÈ
-Îe98Dêr&épCjW*4q®Î±:®&¥ÆÓ×àæhpTÚèØ°%å0§Iòð"làrò
-Q×-#Q»DNìNÍÛ¹AÆÌõ¬hÊnÁ.+q°ô¸:ؤXIͤùñ¿<ùɱÏn>ÿÕõGvwN4VÆy®ëX¹sÃ4|.~íÀç¯={þÀyÏ\·çy
-[ç6Ù½wéío %æKa}NôY`I8M$>¦-"UÚ²ÊØBzµZOh°¾¦}Ùjæâ8!Òa!«â=dŲLCM&Éù7cäAâitLHdtk%Lå&,Ö:M¼é rDRrÖbØìcÉC9MêIp©~á©¡S4^ÁÅ+¦e[:åb3«)#ªÐ$A9ªI
Ù¡Ï®î/DHï´þxðâ¶¹&n~åÕï¬ã3µ7ïìqÑÐ䮯¼i³_úï
-´#nø#¾l%yл´ñ®x¢u»Ü æq ßé4Ò_p¥:(%ê¢ä2YDÉi¶ V§ÙÎ9æxç4»IË@âõI#QÌ9\¦Áê2yk¢ö8¯¤OL,Lgr¹d§Ùát]N³I¯´:x ?Eè±
-ÿa6Lz¨NtA~ôÒ_Éayã1Ã\å jD£¦4T{_¸Óu;K«Ôü«ù©åó/N»oZÝ;Í^qÆy^Îîµ{×zàűÏpÞª=«ðU7¯zäÕj{mÕØ«zðôêØónüàMxýMøØrzÝ»é¦X
-~0VCÊñzª¡×oÔìGè#UÎMNÂòزjh¤/;4ÂÍ*]eç&9Ó=UÎ_$ÇïËDéX2pÙÞI¶Ûv»Í`ÆÀZû½æòl8d[`ÀF{\|¹Ãβ×ßt6®<Ý=ÉP<@.ïÏì] Ì;¯ä
-ªçÂÒÐé¡AÒA¹&d¤oÖ½(.ª·ÓôåGª¾M²{EïHJÔíï®2§;°âѶë6.¾æ¬;ÿL^ó
-ý¦cæ¥Þ¾16´çÂgøÛ$íì+æFßmßzãÙgȧûcWçä¼ûô±ÿ¼5òR³8Gßw ×a×é>+a«Z Vuºþ![¢N¦ ¸@Üè=ûõ×)¯7
-{
-ê ¸&ýó7S´gø<9(²£ÑlËkÝ-A¨J`é}Õ1<áyöÞn!8ó2ÿ*DI'½â2<õ¹Ø?È7>ØÝü}?õÂÓb«øËÀK¥¢|e@ª
-0e at yN¥PNw8SSï*ÕÌel¦I÷çO#é¶ô¸rTæáããã²N½ÞiÊt¹Ý>½Ó¡×;qÛ©Cº6P`Êó8DW&dÚ^ð$[\.Û]«<Y:çENìqæ9·9ßpòkA68@Òë|²úôF È»¼Øû¼QÎNõ
NIïÔê3ÖªÙ6ͬÁ±øUýàÒËàâ#Øîß!â½É#[zwì"Õm=¯bðãvÈÁµJ®¤N§
-iûç¼zù¶ck>K鬨ëk¿nýìó×7XgδƯ,=Q³kð~}ë~7üÀS³/Zæ&ËÛ.½
-kc«.ÛÐë¹Wépc ^9£ÉD4<=BæHL&;h;G6¢lµL2ø1Ð4ÆX¯ãyRuú¥t-°XÒçéËõõ¼¾F§·gbÊo»¾¦¿©"~ÎÎX ¿Xø¾²Õ¬ÇyêùÉØ©ï`¹r䫲XI+(£ä¦nËËÔýS>²=}!+ýýþ!I?½2ý½#úKª¯KO¿¹ì6ëÂÇøüï{£ºT2¤+~(9Àßo'ÙöéöÍö«l¼YJ°Ø%³h'ÖE5A«ä5ÍÈàÍàbÉDÚºçNËÊÊ
%BÐ%l!äÁQL°¤eUØå§æWY1ô¡AQó1¯Ù>ÑgYKE%}½ìvztÅkeø¼µ¸4ïÝÛº`Ctö5»c׿Ïy²ï¼ëbWjÏ?رæÉ-3-Þ¡GÈ7K÷×Ï[ãRþHÈ
X)A†HD2
-¤×~¸dµÐIoIôf§Vm
-S¨U§@
`×%ÅÛøL<ϵÊÎ%çp\\I%ÐS±´BöLLeÏ
-· XXêµfå+{·B¹p)Û±Ôo 9ÖWÔPFÓ,Å5³£^»¼2²:D 4¨»1j+`=è ü<m¸nÕ¬6ì9Ð{獵×ÿ¶gÃkwÕyøÃØ>Ò¯ÄÄ~ûíï¿êÅ¢ypξßÞ²þvnÿ#æc¨E±¥ü|r [Ëåø|CÀß®×è¸}¡Ä$hµ:·p²c-g¤ÑìE³É¬%ΤµÍÝíKdÆðcÖ×êðqr=ÃÜAH¦¥Syy°ýdÍB½@ae;?NÅYÄ?§-ckÖbÕ°C5ðÉt¿i(V]8ýà¡%.+þãSCkoi*µ<(¹½kZùÉCíÝËúna_®r/BB1¬2Ç2>pcKÒ{Id²{®{ý
-ná
-ã%öË]ÛnÖýã#ÝÇúíæ$öÇ[ÈïçH°F«Éh0ãâNËि;$èéoAH at f»Óa³Z
-g^OM»¹ÉáH`Ãq4# =ät&ØjÇñ1d Íý'Áiàcý¤'@ÙBw÷øéÎþÅxÍNª*§6,üjÃÒÐWõ1÷W®!÷¢ÊPÅ®
ÒWõ+äi±S¾2/xî¹çèaz?ãìMÛêéy%=°¤î\Ú°òalî|4ßNø¬Ü¡ç}Z2ué#Cß<ÉÉ%±ø/v:eMK{d
-
-ö¾rŧø¯ßýtN?°þü¡=#9ýð/.ìlËã{Ñátí|\¥]Åm×þÊ*®·h·X°>ɽÀx3qÀÖ9§kä¸[IìÕúelæt:¨¯5évIXtyÆ_dzÃÄ¥ò¦rA 'AîÛåªyzÆq [Ç6c=ËäÇù^nôTpÂËÎ3O¾Gv
#Å¢YñhðÀ¦jܹà¸ÄfþxêУç\v½|éíÉó*
²Öj½Þ¸òêHÉ¡kÈ¥;Ó
-g¯ë1V|?~/;KÞ(J$XF²XÄqÓi1ì2a·©zo
-ñÊàµA'4mòP(oSÙa¿1)¥0å£>úò`
-¤ÑSdÕ
-Js%Sú[%èlJͤÜ@©úWgNíÿÉ0'*ÕóGÞ°cØæËÒÜeN´Ã£[BÂØ85YÉâpÁýúÝòRǾ{kN7´º#Õ·¼¸¡rchv,¬yêÆ`õµ?öÙþEÏàæoʵ¯}|û
-ó¯û5ÄÀ¾Îì÷}zyQÈVÈË¥^تA :ìÖ6cÇIà
¤Q=ÔÙµ°Ý²ÂÅOÿ¾{^ܹ~qÚ=ìæ>Æ¡{i%o XX,ËÓIDlà ª¤Á çÝpF"äX!ËÒÍY]±ËHFÁ0Ou\V£Ü±Ø±ÛÁ;jñFÉà4Äëib1&E°!§¹¬ªõg$UÒéѬ³xÃRÙÑJÉ¡tuùQ)´zVÇåþóïåýé¡£ÇñC¦K3fæmá-ß½õ×gÜ2VcÕêÑí{® +ð
-Ø¥ð
-Dv¿éeÈÞ½£cB4B4½òJèV·UÐ?«= _o
-»5OdÕöÜ Òët <]§Üì\oôÕÔè¶oäÎo¦7úb¸b>õ`ùÄðÊ÷Òÿ~ϧ×?ÙÁd¿ç´GH;è=ÞÈcÜmüróg+ǧ¤¯N¡<HYì`Ìk3Hf:8rîÚ?æ_f¥8}fPkéû_N0óÉn.l05ñfGòdÑ7×¼Ê,88{õÙq5ú½f:ª/«Æ³õâÅÑס3¢DN´õ1^3×_,k-}Þ2Óz%Y!gÃéH¡%Yôíá©ç±àH·*ê^%}ÜþF?ÌÑS-NúÅ7¿¼÷³Í/6ýêþX~öy¶6_qYó¬õáy·zï·ÏàYûNßVá§:·Üöà·^;ýêßÑ8tcø³,<?pVgtú½ÙOøNd¿á|Ù÷nuÞê{4þÑÔDzp
-æíJó*[ù¢lØÄ¦jSÍÓ´æ*MóbTÈMÎ"$+zÉRiz%§¤ø<²C¦2öxdÍæ³;ZáÀv»#Ý#¸=F£âï²<)ôZö
-¸¶AÝ"h{
-Ð<8|àÔC[³³®k¡n#<Á5
-¿8¬
qk
RôOóóE´áþ'æ»?ac!T81öod+®=Ýa2|Æ5ò^þf©ææ%¼/îÐVi/Ö>«utoégéß7\oÌ3Î3Þhê2}gÞhþÖÒ.ù¥÷¬Ö¯mlwÚ{ýaÇõ
-P*¡g7˰3ËC³
-óÈ(ݦÂ÷«°ÌÒ!Q£tR
µÈnMUaª´NSa= Z·¨°M±ÿqô/ñ
-F6q«å*lF¹Î[ÌS®/ª0ÿÁ`
-«ÿL
iýÊS
ç¶SXdõ3TÖÏe°Õ¯UaZ¿Á:*_×¥*òu_¬Âï¾Z
A¾îUú&p*òMHTaoB
-|«0È7Ѯ ßÄRù&>«Â _ùrùÊ©0È×»P
A¾ô÷
-mq¿G
)¾ÂçxV
-Óúìfã<¯Ât·ÈðÿK
)þ?Lñ³¬*øYÉö°úi*Lëg18U§Â0NÖ:g±úUÖïbpõY¨0?kÿGaÿ8Ùº²ÞRaZÿ
-þ7*õ~ÁL.~¯
-\üSÐ
-ÔºPµ j§kjeðBÔ:àªX2øÈNÞPf2Ô´Aÿ\*X}ðÿãHy£Éh9´´¡Qn¨Oe¾)¨¾ù(G
¦²ÚYУ
-Ë Ï: !Êz-ñºá po¬´s>£¹
-JM? uú8<eu at M#±ô¯-éèÝ£«¡ÔÀ]F0.Å@K7\-ÐoòÇô¯ÆÃÏ9æãÚe§|mqÚ¥ë¡Îú.jéÚÃ@WÑGy(CâDÕQW¼d´õQo!ÜÃÜ-L6AÀ§ýB0*Æ&Öû#4)zÐ óFØß¶Bù_a
þQ¼Mªu£óUíÎaìD*ÕXK+Ó° P=J{µ&/{£Z¢uTs%QÆå¾E°ª®*f¼ofHu²Í5^þMêXAFíÙÎF¤t·ÂüílD
û2£:ÈækR¥¡´Pª»UyÙ~½£ò«ÖÐ¥J0ÄxÓÍ´RYÝ*ý=l6Í0ªÉSÞÐò&6vë8m ¸l,eîz
ÛQ#Mª¦vÿ
-cWÂðTÆnRkz§©Fét'³ìãhëO)¥òlW{ÌÐÄúoTg
-«+Uì2Ä,{-ÌÚÛÔÚ1¾Uîvª+ 3üVj7ÓÒ6FÝëÄïí]Kýí(olê7Ö«ÔUþ71¯(«V:³f6÷:V«ô§VeØÊì®KÕN¸SÞ¨r[a,¬íÔõÔÚN³=E;XOe%ãµ;<ªYÔò7«igÔPÝܨÚâwÚFéhg¥1í±ºÏX_:G#¡qºynШá,Õí¦Ñ¶0Ýlf¼ífzõ'Ô)í½GU¯¡XS·ªecÞSimg ¢-¬¿B5·µi2{3ãV³ÞÑUÌÝÁ|&m2NDÔ9¨
-)\²þ#ÞÅt¨ùÍÚrYlBÛt¹y0.ýæ2¬ñ6y§vÀhe¶ÔP;@LB!VÓEâ¹£ÿÿΰi7Ë"ðô+ &VÁ54¡F*¸Íê+¡f9Ü©nÎ
HP ß
¬v2Án^+6uÿ®É£õ(íRy>¦£?-IfÄ#ȹµö~ÏèM£¾MÑç±x4Þ[*cÌ*öV}f·jÓëØ(¡QHµNZ÷FÕ6F#eÎè¿áÌïÜ4êBªÅ
Fu:ÂüGTµçU_#VH97Êÿp¾f5R
-ldQ¡ºQL:òIh[ÕDN)ùZñÃG|õbA«aÖ6ÛݪùWsSî¯1?ÛûYÔ,c|Î¥xï £¨q6¬f:?E沪ã|ÛȼÔ43NÇEȸ\:{;2NoÇb÷¿ç¥®?¢WÆÛÄä¿Is|:âÇ0;WÉP{Çéø£ëQè¯ÝíªGUø¯XUªcw¢ý»éÇ|¶öJn$÷¢1'¤fhÊj|¯IµãDÎà÷ØÈÝ,[¥I³6²Üh]ýï¥?2^DÍÿÂêèDz¸ÊQáÖXÆÚÄÆü¡H,x¯[þGÔqù3L÷)
-©YlbÏÈt2);LÈáQ1ìÃd¸ORì$áÊGôôd%ªV1ó¡u
-´ªp1*ö*BÓ`/@/:úÿ,ÖýGƶ¼3¸7Wôv
ZM!ùyEkH^ØÙÑ
*yNg¤«3;;ä®¶¦\¹"
-þoòè`òòζZÓ-Ïï~SJKósà65WÕÖ&/¯kvËËBÝ¡ÈÆPó¬H8Ø6?l7:ÕÆº¶`DV§×"Ýt©¹%SåÌ
á¦HgwgKt²¬ Çaõ9êÈ+Xé¼"lµ#ëåλ9Zî"¡f9Ü!GuåryI0*gÈ+Ê[Zrå`G³jëmj´ÜÑë"Á®ÖÞñU!¹"ÜîXGûÝ9ò²ÎFzQ¸©µ³-ØMGÂAyy°§£¬+:§³#j§´Ezåî pnCÝáuÙ²²þ&À
-¡±½3[{Ú@¾ÜÔ`P7uÃ:2´õÒõA]°ÀPS¨»»¦£
-Âø=MrX.¾§#$o
-G[Ú;;io
-ÙQ ¤ Ú=RÝêCÝ@O¤7WfîÜAþÑH(m&Ú¡©t NFe0ZzÚÚ
-ºÓFÇh·1öFUÃêVçk!¹§Tq3´¡ÛÓDù/·tÂaDXT4Jõ Ü£ ¦n`SO(¶×·;`èP´)[atowwµ{é´wGhSwW°Hf 1î¦Sô®Hg{'-·5í·iÓ¦ÜvUas:ÛóZ£ímyíQúïÜåµw¯
-Ò
çÒÊØaS¨
-jC¬Ë¢Å+æWÍ3kÅüÅäÅUòÙóçT.Z^)Ï»¬²raå¢&½I¿¢Ø:Â5Êb* Veýc¡L×ÜØ+÷vöÐMTÛÏ̵å`:
-òóë
-rn>ÑEEع.ÄPGûh@{{¢04Ù 5nAºGEeÅhgªmòÆ`[O°4,Ø
-2¾w®¼²élïÈ*`MªçõÊÝ]¡¦08®\.v0m£}ÍÍaª 楳iuñY÷Dµ
ÛÃtA0 ÃÛÔYß()ÓGVÙ¹ jOc[¸»Îc)ìnEúAT]½²¢¼*&NÄø1¿elqÔ{mè u³iÀï5
"ê
-"*ݹ»µ³§lhc8´IqW?X>ÅIÀ4¹¸Ñ5Y̱6EÇdLT©nùñaÉ£T»WyÑéaåòY2K
-'ËÅSJròóóuºÕP?eJa!Üåâ¢i¥ÓJMúauÿÖi)O%Ù!ll{Ôãbºì2±e=+mA?Àز~\¯b)õÕÿg\=·{{ëçqÇãL¨ÿùÄϯ ~~ñó+_Aüü
-âçW?¿øùÄϯ ~~ñó+_Aüü
-âçWÿ¿øÉ§ãO:ä{þÕÂhûØÎSÑêßÅ*mx)¢pFêæ¨;eì4o£F_mù §"£p/ÓæÃRZè:þ¢r·ó+máø9|Åðãwçòúêyò3±å'ÐóGù»~<Îú%¨gè8ö-Ì¿Ñß4obËOեȳÿÑx?UÏèïÅkÚ~ä3Ë."ûÑcpë3¸x÷Åp
C²ÿЮÀ
-ä¹lxzàÚ5Ï7«ÂSýÇó0AZätdlVm`
-.þPVÄóKè-³"B2yèç»\sÈóg@y¾ñ°{¾öòüÓóçKÏÏËYyÖm<°öe
-ÏÕe@Ü)ÏfO§CfMm^x&è´:kµ§V ³,Ù,s=0ÌQO%4Vd
-`|Ôð\å)Èa]§Ò®G=S<O®ML7Y¡->z&Ád©lJÏJΤ+Þý'q÷q÷~q÷
âîYâîâî"q÷4qw¾¸;OÜíw§»EÖ¦´fQ«×jµ×-Ò:èÀùé8>ÞyKÞòw0k Zúì\5©^>W÷lBÕrßWË}X¿tuÆ7÷ÙªQõÙ®¾õ8¼¬¯Ø_Ý'.YS{ãkë ¶\9ÑÚì¦U'ÒÿoáHÕ}ù5ô9|ù5uu(~c¹«Ü6ÓZZUñ#·õ>î_(vMü·«ô)×ö³D(.ânZÜM®ä¾=ÕËkûL®ëJáäºê¾ËçÔÃâ++áG裮ö\Fë¹ìººj
-õâ=J§ý*§x¨\û;ÇcÏÇð@í¼xù/^¡xYôxÎ÷Q
-ÃKq¾?ïàq_eÅAod¬ãç¸2V_Cñx
+xÕZÉ$»Ý×WÄÚPiͤ »*Óà]Û^ï<ñ3¼·ñïûPfÛà6Mg¥R!
îѹ£$.rû×ËÏØ^|uRÁ§?ðó¿løÕöÏov{sÙ©[mÎXøÝbÿûMøòËß^¾ØÍ9yÑÛOîrÖ?¶ß¿í6ã)zi¨õ~C¹Æ^{i¨ñr+½<4÷ÒPív*åV{yhê0ðHÊ<4öòÐÜËCµ+ÞÊbhè
+CS/
+f/æV{yhî5·i|Íèw~çÇÀßu»U&ï£n÷ÂäÒ-Ø&ïnÑ4jÝÂe2ºÅÃd°t/pBCgÑÈ$Û9KÏxεs:3æçû^ínØRÞÆVåö@«ö@qö@7öþE{Àð¢= qÑnËÖjjÌ~Þúúù¢Âbõþyûõ´JmýãÕÉ7uu?¤¼:_½~{ÕáS oÞôÕÝß^whXr
+ð
+wîÀGi¶<ƼÙò~Wô¸Ç¼B?½»¿È¼cVwsÞ[þêa?}þöåöùòѱèe¹Þ>ÿ>Á¨8ØÙ¢b`!(¼÷×AòÞ V¯<dI("¹ðÎÂ0;M-ÏݬÖݽ#0ijÒù3ÅÀªH´Ä
+¸ÔKé4(àÂTë#>,(ìg@øÒOG¤|ÐüÛTÒí»>*ìDPçêINÐ|u}?$
+¬|kªXè?YVsðúIC»Îo¼ÜCÏÊÄ¤ÆØÀSw$êHVPw(+ö#d³CÊNÖ%Ù´íòQ²EC_j%úIÔ0áx®0Eêãíõ¾Æ¼OÑ
+IÖÉ·DDÞ%ËòÞAHaY8*{ü%¨ItÉé¦Ö_¦X¡+
+$6
+ÜúìYîR·J¡ÂÒßÉt!£.22Åh
mò
¶
ÑaþÈrîݬSy·bÀØ»)+ÐÛë2S+0MÖ»®sm(`EL¤²°0w
+|S=Ý`\³ß7rV¿
+Íq/ÎTÆwz6ÞÁfm'Oüb£Fú`N;6!rLCÐ6ÊF^¦'îÈ:ur,%'76´¼O{Ò»só,ห¦ËáÁ88ù$|YèȽSUß;Ý$i.¬ËSø8RÁ³45Ç4ßÔöbÒзChH95i¾~9*ux`×1Mèû"Ý2è³åU-é3åq`XY~}P/ ë2¤PÄ+̾w
+õ}¶Ôar{1¤Zk´ÊÔ¨={ ~
+Q`£´T7ø2Ú0µ¨s 7Ý×(&§âUË=Çem
+óp®Â§H =öhqîª1sϸêbÀØUkÜÀÂì~Z Pfüä£@3TÂxÓòi:¥½`KVÓüÒ(Â(µ$Z2K0p"¢XnY¯
+\TÒßÜË=2
+Ë7Qê\ÄKVîym<|/ï!-:½;MÁYëRßÁ8.=PÝóêÇ_§F²GKåÛºcÈJVã5*]'õ'i;¥íÒ½`8µìÆ3,^ĬúUï6O2½4QAÑU¾ê¸2ÓÒWÛwʼ}Ùå-%§ªtÚóCíÙUÙaÞ¡oÁ2ëxÔñ\!Jï®÷>
Ò²í£P4ºÇaR]'À_1¤Ry[º·j³9f¾G+sÊÁ·`{íç¼b
+Nïd_beM§³VòùErÀï)]«(ë eé ú2b(Yf
ùÔ6DEê&ürïLôÒ-ñÐGà¥$ ìd£¦îTÊTWý1äÊ'âx
+Ó½Ñ%µåRö)»¥ÚcÊje%*¢.W7÷cº5uèí×0æáÂ;ê¹ó%Å?=/ºLS$×ìYô¬js§v=Ó¢l|8çÍÍ¢|s4:ç§Ã|¬x<lï[IõMq IA_
+È
ŰQ"
+b'ÎoÕ{ºz'|òápí²» C¶¥4óY
$Ìíú[skiu`ô3A/Z9¿°±P2:ðëE\âÜ÷
m¨I'µ¯@¢qá©J1aC ú-Dõv î +g·äbjÊ|î¡Ã
t%ÂVñVés.$wûX¦ ô©»vűã
õTg?õ£é~_iSÈÌd©öNç, Ç[½ÐKÒç3J<;[ûÕ\§û|û(áqHTààaòÁ 2;"ÓɹDFøÉ-q/¡V
+}°m±@6º>ê$Gº:)ùTHÏί¾7G®|LãzzV(º¿ÞÞh~ðVf/IäÓstSz²pãW
+¯üÙCyßã¢{éVpø½¿êH_«Ý[G)ÌEmFÅDo;Í#?B!Ìᯬ
Á_@=Ù«pð21½;)
+ÙÛ¹çW¬¬e§wtü$¾Pã+7j¼sczYÑ
+GHÝÄÒãpIÓËbs¾mÿÀ
endstream
endobj
-504 0 obj
-14839
+406 0 obj
+2612
endobj
-505 0 obj
-<</Type/FontDescriptor/FontName/LAAAAA+Arial-ItalicMT
-/Flags 68
-/FontBBox[-517 -324 1080 1024]/ItalicAngle -30
-/Ascent 905
-/Descent -211
-/CapHeight 1024
-/StemV 80
-/FontFile2 503 0 R>>
+408 0 obj
+<</Length 409 0 R/Filter/FlateDecode>>
+stream
+xVKÛ0¾çWè\+¥
+ÆÐMâBoÛz(½õ¥[ؽôïw¬Äöº,xmIß<¾ùÛ8ó÷ðl¬9ZzEô=?_¾ÏoÌãáíÐŦ}0®ågÞ·ÿ>¾O//?¾mAtMk8lúôõÛ|:ÔßOÆÇ¾ñÕ.A=ùê
+ßgî((ï$åvi¬xj+ZSÐëÞF¡³ûЫïûÃMMáîázðÇf;âûúͼ¢q`®?Æë¯Ãåzx¼ Þ¾¡ÃàÝøõúa
+
+0ÇvÀX2Ao0Î
+~â÷h1 ±Õ
±tåG?õ,8zDϲ6áe<º8Edä^½l&|8,|æ#NB!3ÔïvépòºB
+EìEà2ÍÂôJ#±ü,SÚm¤6,G¬4Ò®§:"HÒhmµNË:û-ÎÜúlKäÜU6«O&w"Íß$¢mâJZ»D]NDÁñ|ÔwåY4%ev«ÌEvA_&FóË ºH4¯ÐVc,2Í<ß§r,W¹E¹öuÆÊ0±ËEú)wwiY? \^s ùÞ*µcîȹTw`¹ãõÖÇ<7iV%_È}Wñýyké·×2¥=Bï"ï«$éynÍ@õjg±ÚNZaÉsdÉF,µ¢ç#°d],7m{Gfïmoëó¾ÁµX:ñÙ Úwòñ ½|ô£Û
+$XGÜ-
+»Èp'æÛ~F?³I«Ò
+endstream
endobj
-506 0 obj
-<</Length 401/Filter/FlateDecode>>
+409 0 obj
+898
+endobj
+
+411 0 obj
+<</Length 412 0 R/Filter/FlateDecode>>
stream
-x]Én0@ï|
é!-R
-AâÐEMû©dÈ¿¯gÆm¥@Ïxg3~QµVÿÕLíVѺ3°LwÓ¸ÂmÐT¢ÚÕèÝÍìù6÷²-+µî§,óü7»·¬f»S7]áÁó_LfÐ7±û(.v}¹Ïó Wxy.:èm§f~nFð)k_wv{X·½MùxßfÖUÚ©enZ0¾A.²ªÊ=ÐÝ¿½È¥\ûö³16TÚÐ ¹eEFÈ!q"#æ9f¦ø9DNcâ\S!äGb ì@½JÎ¥ø3ÇSëËsÈì¢dÿðÌþ
-=¥óǾÒùWÈÎâÙ_Q}ö±¯dE1ìQ/öORdöONÈìã¹$ûGÔËù£bÿsû'xÅþ1Þ¿bÿë(öKdö°bÿÏ¥?Ÿû§:ì4î¯ãXàÜþhïÆØQ£á¦Ãé4üÎÿ<ÍEÏ7MË:
+xMoÛ0ïù:°§
+ØaØmë¬ýý¢¯Rl\[ÉG/)Jz4êïáÒjÐôÆÒ3$~¾ÿP_Ôï£×)ªúÿûÏÄ1*LfCp£UV
+ßOþ£iÏ8`÷Õå»ú4[åP]Þ2$<# qºü:/×Ú2K4~tbè±dø5£Éè&L.ãìôíòùoduµì³»µ±
+fò9Ø#&-
+@ð¼
+Ç«f5»èÌ.¨Ç1Ôõæ¹Þy¬[Å2Îù¶ËÖ=KçvÀÖÂ!/«¾
+rï 6qû¨äzé\ÃuÂM?³¿øriôu¡,çͺU¸ÔYHã©{v
FsÏsÙ²Ôg>ñÚ[¥Sn¯fÚe7õMh=u#D+ínѸ8©}Æ
endstream
endobj
-507 0 obj
-<</Type/Font/Subtype/TrueType/BaseFont/LAAAAA+Arial-ItalicMT
-/FirstChar 0
-/LastChar 41
-/Widths[750 277 277 556 222 222 500 666 556 333 500 277 666 556 556 500
-333 583 583 333 277 556 556 556 556 277 556 556 222 666 777 500
-722 556 610 556 583 500 666 333 556 833 ]
-/FontDescriptor 505 0 R
-/ToUnicode 506 0 R
->>
+412 0 obj
+762
endobj
-508 0 obj
-<</Length 509 0 R/Filter/FlateDecode/Length1 1344>>
+535 0 obj
+<</Length 536 0 R/Filter/FlateDecode/Length1 1344>>
stream
xåSKOQ>÷ΣZDÆ©"
ÐR1ÁÄD7`1`;´´Ig¦öa¨F±ÿñZHB.Ð,Ü·n\Y»0>HÑo`xÄôx&sç;ß¹ç{ιNfÂTN÷I EÕIäD´@ĪÕ[i%D¦°,âD<i6çÐßAÿ
Ç_e¼MDÜ´wGA<(^¶Aÿ ½)ª¥'ËùÛ"á(ôú¸¡W(ta©Ôjê3õóX=¨
ýéþKÐÇãMÂH¥kèÞ"I1íæAðrP6u.ýß"N9ô,'G0Etßët9O¸®@Å)N$G~=ÍIô®òÂ'ªDëµ4ûºº½uµkl2»¦Îè?à¿ÀVûþl 'üýð²cø7Å(¢Ó!ĵ±Gbtã±95LgJÌSKiivêv)uµ,Üü6ÏO³*V1;33[ÈóÆ|¡P(~)pâEø-I«9zËøñ2¶È6/J<´±ÎFùgþµxÈ1Ï^\tìäçWs¢£8gVoÞÖðd½Ò÷a¬ªç;°o5eeܹ¼¿IÒºC¨[ül#Å©}[Ø?}E¢ÿH}âm²Ë×iM¥Eá%ÍÃVCt®Aw-Oª¬ØvîéÙÝX¨w'~ãn.?¯ÑÂkµ°
@@ -5451,1712 +5072,317 @@
endstream
endobj
-509 0 obj
+536 0 obj
737
endobj
-510 0 obj
-<</Type/FontDescriptor/FontName/IAAAAA+OpenSymbol
+537 0 obj
+<</Type/FontDescriptor/FontName/HAAAAA+OpenSymbol
/Flags 4
/FontBBox[-179 -312 1082 916]/ItalicAngle 0
/Ascent 799
/Descent -200
/CapHeight 916
/StemV 80
-/FontFile2 508 0 R>>
+/FontFile2 535 0 R>>
endobj
-511 0 obj
+538 0 obj
<</Length 249/Filter/FlateDecode>>
stream
x]PÁjÄ ¼û·Eã6ì%BÚ@Û¦ý
endstream
endobj
-512 0 obj
-<</Type/Font/Subtype/TrueType/BaseFont/IAAAAA+OpenSymbol
+539 0 obj
+<</Type/Font/Subtype/TrueType/BaseFont/HAAAAA+OpenSymbol
/FirstChar 0
/LastChar 5
/Widths[500 355 559 794 795 461 ]
-/FontDescriptor 510 0 R
-/ToUnicode 511 0 R
+/FontDescriptor 537 0 R
+/ToUnicode 538 0 R
>>
endobj
-513 0 obj
-<</Length 514 0 R/Filter/FlateDecode/Length1 21004>>
+540 0 obj
+<</Length 541 0 R/Filter/FlateDecode/Length1 24476>>
stream
-xí| `[Õè½:ïÉÒµdKÞ'±ýì Å6Î[v8¶±
-H,ɶ-i$9&
-)¡´´Ðf(CIC`ÊRøf2~4tXS&mB7
-3ÓÖÐC)UÃË{ßÓbÇICÿýì§»{ösîÑaIÆBÄB6 ®À ?Vc-+"¼@-
-¬M*æ¹»þã_bðõÆúßÅH³æ±¾u½åÏÊ+qûy_îùÿø¬4Ë
- ÉÆ<åÿ'h/E{É>ò[_F$)¨"|zq>F}d÷{ò&éóÔÒCÄû7J
Î"=äopä¢ûÈò¾nÈWqhAãzW~
-d¹4(]&ínv"ÄÔ+ÝDvà»ÑpHºWZ/½('Ë9g´ÿq>ÈVºN%[
-[i3-§ÍäIÁÿt+½D~^~!Gh'B>F
->Mߦut9ݧÞ%ïÒ*Í1Ì¡oÑG·C°\fd+¹ál9|¿AÞ& ±Ûå#ä#ä)ò*ù)®²ð]3å#ø%5¨W©A>b,É«z
-ïz³aá=:ð)¢U¨ÍUpPZ-=-Ý»¨t¹YPóñ}
-ÐÈÅ«Æ^ºáø³é2ìB ¯ \HÝpa½a+y
n§{(ÁÏÓíÒê¼i2ÙjÜ*-'oqÝC¨N¡///$ïJFrÚèjé®1âÄ0¨Î[h,"é¼QõGÕ³ÈOjBd³t>|y76¤õF×Fè!÷çNºÜIvA0í»yFY%NŶÃàðw¸®\®<³¢z¦sÌT±å);Hçë:e×ñãË¥Éòòà0íS_=Ùæ«3:+»ètO³Ö³º»ãÏp×=ÍbSÝ!;ð×»zèWn³Ý6uÞm¶Ð¼ÜÓÕÍR¯üf¸<RµHtªÁH§=NMòÔ8<r!±9<R_l¯¶;ªíÕ½9ÉÇÞP7ç¼÷vÜ8CÓñMj¯á2ô|âvçHÞ~ùdE6iÅvlÑBߢ6ßÕËwã ×Å+56"þרëéã6«ËÚi
ÅÕv©jÕ0wÎ>zzH=Ø~éõëå#©}êoÕ:õÏ"@Ï%òHÓDìD!.GÙ]øq÷¤MæÝ$*-
æ¥<(«´ÚòÊÊ¡Úvl¤dÐh/â¿ÈCÝÈ;ø4ֻ̤ÆVSWÓY#ÑÉÏvµ§´H3¨½ZJKPtõªUWy-9zͰà/ª/«/½a>½Nè
;;Û_©x?ÑðûÕuòó~°égå#û^¼[ä
åÇ#>O&®bãEäËsE[&ç¶ÁüÒK&"¯Ç¸ ^gÄöVýã_QÞZÈZ±´¤làÂÕ%Þ'7lºá!ZM=ê^õW꿪»i+¬ÿÖ|ÿQ¢>£àó½às±°Ysü7Ròr>yÙå²Zùs+«*Å
-!KlnUU¥åWVI¥äzX*y¡ôðÄûìÒ}çì[¦W²üªÉy¤{rWAI^gÍâéÈ6ºÎë\·
}õoÙþøVÑÆzôÕ<[Á¨ýcEÍNS>¥+]«Ìf33çç[òæByê$Ë$ë¤
NS¹Õæ×Zj3FÓ%æKØ%ùó,ó¬ÌÙÂü
Öa˰uiyۿDzÇê(0ä
-ÌÌõ×Î0¯$+©½NÊ«¢R³ºfÚùöJª©²ÖÒ9³çÎj(&$^º¶7°È-~B}OMEßÜpÝ«ÉðïàØÿαÀ/¤ËÔ£õõ³æ\Pozÿ·þé;S§RÛìÙóë묦ʿ¹ó±J®WôQéUõ®i¿ñ Ã~²É´QÙ^)ÝñÀ´ÖctZcV42AæÙ'¾7ô½·á¡¿üR>¢¾¢þÿU_á4îD?yù|ò°ëSxL´k¶¢OI¥OMÜn¶;îÍÚir9©¼fºíen¥£ôíL`Ô»|±´±¢±²±ªQYX¹°j¡²¬¸¦rUÕ*åªê5S¢ÑÊhU¿U"ÕÉü¤%i½¡êåêÍù_³ÜS¹µê^ekõ¶ümmÖG+|´êQåÑêé+é(3ª®9ï|{kóª$éùõ¿ë¿ís+úóÕ_ª?ù[õµÛo§ù7|æ«¿xׯ_¤
--XO%yzà¢Û:/mXÝð¾?ýçÜ9ÔÓ¶Ø×ÞÒVY]ÿã¿:êñv
-æYh±&B«`%Õ
-lÇ_z`¤ÁÎóÃë/i(Ò}Wz3Ï&¿¹¢ÆL«¡Ú>Ë>UØÈð¶zÝæ¢9¢~õý5Ò÷oíǺ0c¥6ºíth¤7cæ²<÷$)l<¾ë0¿"C´_ÝBoV7 l/Ú4
6 \òIeÕ6i÷²í`Ûn¾¶L©\~¡e©+i¼ 1½óú1t$Û.ðù¡fGnÊ×Va9ÒT-]4H
-¥%E¨õ¸rê+êsßT¿¤¶Ñ}ô³wQûº
-ºáßþ|ôKûfüÞ°<ÚÒB !¦_¿ø"õùÖõøÞTÕBá0¼=ÎGýæáHu¹H
QΫ0eVab²Q6ó±¡B¦
-U$Id»IÚd40³)Oð5!ßvxgÁ Ü
-×ã³Ëð#ÿ¬c·éèÁZek#.Î
-ªþaüpm½<ÃÃ?óß}l@¸oèc@ëc ÇßÕÇ2RyZI!ù>æ7ýkú8cã¿ô±µèï©MÙÅßÖÇ6_üª>¶©x)R ¿WÑúâ£ú²RE©t®>¢^®%¯ÒÇ2Xú}l$¥õ±Ô~Gçy¥/éc«c^MþKêc)»d§>¶Ó%Ï4Ecëâá¾þ¤2=0CiÀËEéY§Ì'ÉxÈ?èT¼@âPº8TBé
-%Bñµ¡`-;áè\~Ôç_;¸&éSæûûOr°9´Æ¿t+C¤/Püñ(±¡p@ FýáH¦ÛIÌs¦Êxó¥¡x"(
-µ
-³µ=¾53´7A&(S2WWÄõµCµèP<êÆûBµP²Eq¸P=(Ó¡ÒϨUNCZ¥u`]¬?¡cÑx2TzãÑAÅÕYIÓ
-ÒK±,uϯh¬e´ÎfòhÓ62r8ÁüJ2îýñëhïX,uâá°A8¡ôâ!¤Õ÷GPt'Êbá1ÔêÙ©$£?²N¡Õð@´'£
-üJ
-sGó$ÑõpHýÁ \SPùðÇ'%Â}ÁF«x{¨?HüDÄXJ%CBaþñègÒ|d±!{uJ8ÇÍ'âM6Ë ®HntxÐçBqqh8&LÖpÚé
-VÃöF¨-Ó¦ÇKO#cBp¬3
®ObÄ(þXÃËß3âìXÖ(ýþ¤ÒïO ÆPdN¸×e½;¨E:ÃYV`NðTVM`òƨfãFò+<{`¬¤cþÀuþ>ã0eÜU?S"
Y
-ôr¦xvÒÝÑâ[æîò(Þn¥³«c©·ÙÓ¬Ô¸»q^ãTy}:øèr·ûV(-»}
²ÈÛÞìT<Ë;»<Ýݬ£Kñ.îlózpÍÛÞÔ¶¤ÙÛÞªÌÇsí>¥Í»ØëC¤¾qTGåõtsd=]MpêïmóúV8Y××8¹.Åtº»|Þ¦%mî.¥sIWgG·q4#Úvo{KRñ,ö ¨©£sE·uÏ|¸èd¾.w³g±»kSAd(r"@jKÄ¡xòÃÝÜmmÊ|¯¯Û×åq/æ°\;í=¬¥cI{³ÛçíhWæ{P÷ü6ÆÒÔæö.v*ÍîÅîV.NÓÄɪñvO»Í©twz¼|zôvy|uhì6u´w{®\&ádËx À¿M3!~;Ëñø:º|Vy»=NÅÝåíæiéê@v¹=;Z,A}rãµëürñµ½¡øi]Àf»
-vs6pEïò\ÅÜ·õàÖR£H£Zît
-¯Õ
-s¥
-(¾cñ0Lÿ®ÆÃÖ¯á¸~M ¬J69hüÇCÞRᵡuµçwà$ÁZmP]¨/.J@&Vtµ
-c¢â:ëÒétKÛsS1RΤbÙ:H9Ã:XéI> 0%ÒwÆ8j¶`agS+)éZ}2j%¦ÙáC«°gU+±sX+±l¤aÄFÕgP+±ÕJÊé×J,§VÊ
-ßQåÞç$ÎU¹ÄôrI9«rbW|o<×%D³.Ø9-^2)g^2±±%r&%·dR>HÉÄ|î¥vp¶ÝΨ:bYÉϦ:béêH9êåVGÊUGlÜêH9ê;ë¨@É>ì¤
ò
-vêÂG9ÂÂgtíð×dÞ%Vµ§ì\Õ
-¯×
1\_ëÕéilL#4(u$N¤ô$QÈt 3ð³Ôã3G=¡ù$ üñAâÄU/ |-Üd
-[J"°~-$Nø
D
-bà;0=7p
-"u¿Ø§[`I GQdW9íý¥ëÒ
-N÷2{Ô¹ô©'ÁÚ+ÎjHêvâI¢\óH>A~-Â×"\?ã(kHÔ"iÉÁÖRÚR'úßã ë
»(FXn«sc©wÖ!L¿8ƽà;)¬Í5'¸p¬kÇhe¬Yåa'á3ìõü8ÊÕÚ¾ÎÐvgþ°ÓsµãÛ;+sw%Å
-÷²A¡ëëp-øk¼pÉ:¾A-aÁS¿Øérõ *ÝêNÝîµ4jiþì|E
õ#â|L5B±&uë^à84M3gRp1Öû¡=Ck¼k¾«ù^MÔËñ³Añ|ð_(
-,I±ÖO/ôHá1KçÎýWó~N1«¾QD
-q:ÍMPH¾Ö»I±«Ñ`§ àÔ£9
- ,N
ô¬Ô53(Ör%JËå·CBÎëðñ °§fkAxÚy99ëDQf-4Üa]«£j©ÓÓ¸e<:)øÊz]V¢a¡ÁÓ¢^µ#º¡Añæ4âkb
-B>
-&m¿^qh-m¡ uNçèôéÜùcTd¬
-rsQV'fÂ'õhHMÇJVc¹9 ÷"döÎÈÍ£}MÓvøOaϨ¸åÝöâ3?NÇIqñÓ¯KT;JS§:Ëu²N¿[4ê\ç½Ç îIÂOãS®Ó`Ís½.}úÅ9c@ÌXF¢ àÛ+£¾Q÷ªF)CýÂ{4ßMÓ«Ä_)Í%Ó%Èz_Øèô9Mg¬>ÆãÍ©Û{@$³uâ"ÏúE^ÉâM¯$2±·GHÏs!!EÒ°*(Î×sÖdä{á^ú¶Éñ2-fÚÆÜ/="Þ£9¼éqöµ¸Gc!r½ÐsDä>Úíå59kwçô
-7RúEWÄgBç1$<éd~Îuãåî ¸ "Âî¹úO«,Gs¹6<ÓXMè·¢K¶t$ñÊa S{Äõ£1ÆG_ï>ÝbÚ}Ƚe²ê©N.U#Iý>ìÍhjñ:¤gNÎ|dÖ]bÏk
-Öq]¸³g͸Ú,ìâ;|¿FDã2sdÀ¥áèÂ7ǽW8nEÌùl·#.~ÖCÄÖuàã^«møéÑáø&\Ys>n%¼
-Õèµã)~ó¢qêÃõ,ÕÑ\yÅ4gqÖ
øè»nÄíø8ÿNQñq»Î§¦¹.ëcæ8£61ã«Kð³áº
>ÝBfÛv!Cîk²x%4ð³isVäË'´À)ùtH§°#§YçT (³ÝÊ|ÅR«ëRãëir·¿
-EÈïðñ§ñ¦}§U`à|3¡%B>·ÐC 0_Àq-r}¶e<®+Ç*MB_ÜnófAÉ-4Ò=®$il¹ÖÏ;XB«Ï#4Õ& »Q÷fV4ô
-Yt]k85¿×|¢-G»MBFnÙ+ªG÷)·ÐÝh)¸ þ³Rhpëï¦eß®[7ÍOPö£e"=Ê-lÝ¿uÎd<,èþÙál´~Óq;Ü¡áJÓmÁfáOm:ÝmhìxµÜåÁ{- ¾ç$3y{ôÍ[5f«ÑܺÓks+-·
-ØÁ1pÙUíÛvge¿ëäÖnã}ÃN;ÖjùtÕ>´Ü}'Êz¢>×jÀD¦*:0©LÅnöNé½è¨ïy²_ÜýÎô]Å¥Õ~Q-pjq´yòðÍ0&î{ʰ'õÊË7¤ÃòõOù6îÿhe\¤e¯rÈÕ\Ø;¦
-
-óz²VÇ'éïeYp
-h}µÁ1VÏzÇ6í*pôåpºfDëÑqLä«tëãï:ë®í'©ÄFõÆV^^?ÛR>â~;~ÐèJ>ÃS¶×<½êxö±õúJìÿ÷rúJÙÃÿ̾uÃ~|}%6ηµOB_ÛWÊJôÑôØ)úM_ÚWÊþS§sÙWÊÆÛè¾ÒÉnßw´ïçZ%ñIë.12º»4~wã£é.±ShWÉÑà'»ËÄXÍ|ô]&ö î2±1]¦ìwݲËÄþjIùȺLìtËÄ"Ö
[MÛnÜÿèzGl\\½#vBïHùØzG줽£lèÃï±Ð;:Þ·wά'¿QNìø°3èøäviÎeÇUÇçÄïlgÖña9SõÎE&y~Év Ãgµgñï\Õ ½\u· ¨jEýõÑÕØ©ÿ4¢ÿwÒäøgÈUd÷çé4¢ bÇ÷y´yéy$
³©¤ß5úZãc د"{ñ]VÝ)¤ßI%¾'rñ(ÞÄ»L¼Ki )@¬¥bÆÇ@ŸH¼iÙû
bÆÇ@ÔB¾kV±f%ûD-4s,vòÿ_Dó)#Ópï
-ÿµÞVá?U8ªÂ*á-Þaò*0qI¿ÿß
-¯ªðk~¥Â¿¦à'ʯáåðËû+å_á?wÈ¿HÁÏð³Cùg)øéK%òOËà¥#6ù¥8bÃ?É+ð|ø1Bü8ÿ!üËW-ò¿L
T"¿8
-~t°HþQ ,pû
-x¾{v¯ü
-Ï>³R~v/<»QzÆuüiüÌJxÆ%=íVáA8ð|@
§¦ÀTxR
ýß'ïOÁ÷¿=Yþþ<xâ{ä'à{ûìò÷&Á¾½
ò>;ìÝc÷ÂìFb»UØ¥ÂwKáñ"ø¿*|G
RaçøÇrØQÿxþ!Ûñc{
-¾ðßáÇcà[*<:
-þ
-¨ð°
-ÛTø&TøÆò7Tx°
-w î(¯Øàvü
-Tø²
-_Rá6nUá_pÈ_Tá¸E
Ï«ð¹¸y3|V
TØX72ø
-T¸A
õ)øt
-Ö©0¼v<¬ÂÚm0,¥ 9)o¿Q!uÊQ'DR0\§ÂÂ*ô,rô©ÐÛ
-©°ç®ãKUX¢¯ºK ëÊr¹+WâÆåÐÙQ.w¦ £Ý.wC»WBÛ¢¹-´ËJ`¡·@^ho,HAkKÜZ
--%àIAsSÜ\M0ßíç§À8Ýp]Q(»T¸âòùB¸¼
-ê,P[3óä)p:dç<¸
-¦Âùìòù0MG%7pÁy0Õ5Ä*פ ºª]RU*+¡bJ¹\á)
Åòr²sÆÒd+L*_$OÚ
-JqÔ%A(¶C
-vÛU°¡°À&Cá~©À%+îXS`i|-¿ò7JÌ
-Ì%U0©§Qf²Qì¤@xÊ bö²ÊÔÄ
-t
-~~½àÇù¸ø*ÈwÙ
+xÝ|\UUúèZ{í½ÏÎ7À¢â" ¢epW<TtLÍë+ähæ¤9Ó¤cfbeZfjMcM6
+9ýµÒÃê~kí}xeÍüîÿÞßýÝËáì½öÚk}ë{?ÖÞP[]çDF´ä(,/¨zëû¿¾
:¶.ªµyhíOâ«æwT¢)fóÂü²úâÂÓ«ÇÂõQâÎ8>=PÂz¸?¼:Bi
®ÃuÿòÚ%Ù¡)F¸¾×Ê*¬¶g~¡O²ëò%UóB#2áÚVQPöü8¸.ËU5µ³Ð*?ݯªvVi{³®W"¤ >ök`]DdV§7=<MfÕËÛÇ×Ï? 0¨_pH¨-,<¢¿=2jÀÀûE?tXÂð#G3v\#9e|jZú&gNÉ}NnÞ´é3òÑÿ3?èÿ¶àp.æ=ëHèú´¢p_àãZñ¼¿í½ÈÇÕè[¬'oâÐj¹ùbô6 |fù;ª#GÑt}¿ãDsñ¯´
+Ý«6¸: Çe¤äãP\Å/Äe°f%Z!ÀYÈÈïç¡÷´>Ûг¨Ú³ÕÿtmD7ÑÂu4Ú¯¡SEÊøº
+Z±B1;Ðv x5ºjDõ0ò3é0
+vJ¤'?à|Iúî ,·ÊÞ ñm/>YèÌ_òÈäaò1^#FÉuÔ 2-@ç¤K²7jÐD ¹×sùg£OX,ÎÅ-è:ÀG¾ë0Àl'§t^Ȳ¤, ¹úvòcrÍèrø¾U x¢NàÎ21=öÀÌ(àB$V¯DˤÍʵÀg°´4|Î
+<Tv
+Åx#`{¸YIRÑX#XºÖàC7Ò,G5Ò%¼Ñ+YQ´Í|@°gpÜo{kfØàè>6³Æv
+¹ùÐdWÐ
+ýi©ü[õdß¹l
%¶ÇÌEzÌì5d^BÅéYð^zA2ö>µÒjAD±í; óÅq^0=ÌV""W
+ r}A5ß[-dvQ>Ú,ÖÂVIHäEù, bÆìêOX7;üãtNÀb½ëEs÷ªF^§ÇéÉWð½#}
+Aáh#Å ×i5Q¶Q${``@Jp $r
76¼C×ɶ
+ô5a
+;I"0ñlðz?³A¯Ñjt~Z&E¯±¨E'$Am Z9Íh¾Ùîjô¾1×âÝI_kÌZõ+}Ý÷zføA£Ù5ŸT³×kd
+\ô>úQâ0ý,qº^;ÏÖ :¿CuX|VâÖK´¾z ·Òʳx çv~ÙÙ_§IÂDÁ.ÄO(úQ´VM£ß:¢ü&¨AÁA²ÆÇ¸ÉFÚN5ÈbÒN³,SLYýü§¦EoN>`Ì|À÷@þ«(ðÇã#gºÆ¸:\.¾1c®ÝÓoIÁq qb'Çiâ´qº8}!É7É/É?) )0)(©_RpRÈJ²R\)WjVjWêVêW|üüú57DàÙK:
+2äÆÄ´óôjçbaÕ×5˾è\!¬ú¦Å¹sÇ$¥3^ì^èåPä"^ ¨úÃÆSä°DdÉL'¨«ël"#ѽ}GcðÈKXB°â^ÿÝËô#|7þêO¸E
+6¼ìÇÏÅ|·êÒÈ`ýFÝfÙ÷07yà×6yµy4¡Yç+£~VóÄ`@ÅÕÑÒe®âÚÍkæð¹yLàæãí;4~øOaC3oÕÄ`fb¾ëóc/æ//=ù
+«ó¼=¹ÓóT}¶·o(Áàë@ë¢B
+;ÞÏ=¼`þѼ¥koiÓvýúòÛ³öbbîÏ<)Â3pçò½G""Ú
+g®"xn[ñÌþ0ÄüüAà}*DPXB#@{ÛõO¡²pX$,Kh²^ö0æZkL3øk.ðãqBØ%ÄõC\îªÀåô3ÚÚ
+zÛÐ@Rñ×Ù:§§ä"@ʬh±ÍÚ쯳RÕg?W<A
+Ùè¾
+t§=ø7oÒ$
+MÒz
+jÒi#ä"°Åc"Î!H,¤ûPDÖQôEý6îz«E¬ËltçR·
+Ìù¸£=4á"6hÀ×].<±gBÁeõ@ò;µ)ÄØäßÒÜß'$HCAᦰÐþt°äÀ-ÿ7âÄ¢X+ÄX1Vc5±ÚX]¬>ÖpDÄ$)INÒ$itIú$ÃT4O¦ê§æ 9x0G?ǰí»]d¸KÚ%ïÒìÒîÒíÒï2ìGûñ~a?Ù/îöËû5ûµûuûõû
+ÇÐ1|L8FǤcò1Í1í1Ý1ý1CúÏ!£.Eæs¤9òÍí[øç
+b%
«AAñÌåwpmàñ×ê
+\þäâ¥/s|èDÑÊ}Ò@4Ñ` ÒëF/_ݦßM&²©[éä÷E Ù8A¶ZÃ&Þ§8tùÚµv|.±´6㩸
+·ÐíºÇ
+=÷KJf[µnKÃúëZoü=soî¼ÝãXýdyûW_µ5ƶ
+ç>üðܹ.Ó+.êêt8&zÏíòÄ£0$xÔôY[xµ
+ø:l=
+tøª]³¯1
X!(.ÄìR½k<÷pPKµxûúqÌF at vÍ.e
+Ã02*o;c4Ùê§ÏXf2¾Ò² ´e|Ú(a,yÒe,0zÌÑÛ®/^O=jÔèq§\bÁïì\4¨ÃSÐz"!hÄ<w8àl÷a kèà3tt©åÎ%i|0t¨?D
+æ»
+'!¦°Ð8³t¢«
GyEoÍ7BôdvwìÛ×°Ð.F÷¯º,¬ÛöÄõÛ o¯Úúí{ç¿Ýºªq¥×®ÑwMYY¿tåeõ+
SM=ÖÜ´iÃyaV<þàCaaoízûÚç§wÆó<òÈ¥+WÝ£.dY'Äñ4²0 at D¬.ÓÑUz%`Vò°DrÈëéC{éC¯à±`/¯ÑéÄöëÚHG°°~&ævÏ§È íI«A+è({"ÈÙ >µ·«i$O;Xúº6'
+xð¼NóÀ72_=ÔѯËW·y6ãäD0øé Üc÷à:ȹíö®¼Iåw/9,üÜõß¿|»¸³NÁºÍ§e}Cîúý
+X~z¾¥ë{Qjnå!ìA/{d +ɯÙ<±¨ÉË%FÑó4§$ÀËâSÄ<·òwæBBD1#hcõ©osÝ8&]ú¡xÁò5NT8îÓkP ÍèoÒ ÃþMÖ°¶cÁ) õÀþb§^6¦ÚDÙg
+cÅÇsÛ~í¦ë¦jD¾ç³Å
Å
ïF»ñna·~·aïn¿Ýþ»vzÎîqF¨ñ/Æh ]Ê~øq¡mì3¿]ZöäøÕWG¿´ò÷gïþë;¼vÛCÇ(>¿ñÔØH0ôá*gÕ
×fv®Ú[4çõ=GN¯>¬5**''~êÊÄúèv³02½
+ÎuÛ¥Tdñªn+áù°®0y²uaÕ£½úêç~aÞÇ©¶PwϾ¢Ïõ:@·rÛ>å¥õÓi¡,ָɲ¤zYë§ÑAò%¢!BäzJ/k%È:,Ë©í¸t¾+;.×úì¸À¯Øµßµ´VñlG,hµ¾¿ä¯MIõéB±P',À½hµøKr Æ_;DI4£ÉhÐDÍí$¡)ÏÔ,$¥b©\ª©'K¤z¹^Óo6zÜÂöe"°ÆÑÑ?ÿNÀPÌÛÐ&{»áótVgº²&í%`c«Ä¹Èv;Ò<ü<=J½AÐ¥?+xQ?±ÅìáéaòóôôH1{y OÝ&ÍIç /Ùäú¨±ji^Lá88hýÙ½'¾ÉÆÙ1ÒÊØ(Ek
+0xDzFFZ2,Öz ˲Åi`Bþ3¡0<æ±·ßÿà:õ$ÎÄNâºcôûQYY;j³\ÛIâÃ@ÎçÁî¼À,pÔi5D/ÛH$»(YD>DôiÒy7y¬7ÅW'=± ~D/ZxëCqÁJèg:gIä&pV¿°íÄĺKéìçAb
+˪ÙbÛv¿õ_Q G;Èñ£
+"&|¬×I zoÐë¤X½ÁüIºOêêpËOURå·Gk«pmÕ#èT 6"1:¬]7ZÆÆxJ.áúÇ[øôùÎ[eç¥N¼xg^C1½´U¬z´ þ¸ÉEòz«Y¯
À*Å{´ ÝPo®wáårÙ¹RL¿pÃW~³s3ÍÄî`þx÷«·¥ØÎsÛ׬ٶ÷ó¯üµsâóNÃ2¬i at ve·Z± âØ¢A#tFEñeµy|W˶ZN±ôMè:éåÞ]ÑÒ"ªyb6þÄ-4s&:=a.E"Òddð§ÉO´Z
+Û4ÂP?dLÑSÕ0hl§_ybРسp pkäO<Éih«_é4ÈÄw±7t¢!
â`!ô¤~º } !Ô"ñ@!R(ÔDh£Âp)QNÔÕ1¦i3téIÆéÚ|ÝÃLc±PJÅRiÎiX$,h¥«66éP
+ at Cõ¡úA i0N£¨©_ J%úeÂ
+R/®J¿Ò¯ÐûCÉmÙ/0àÃ'wÿfÏÉÃôÎçº)mdÃÝÝBqçe£
~Kêd+亡¼=åé¡AÄ*#=ÛïPò|h,øx[ý""
aÖ¤nÍêÕkv7mßÞ$[¯ÑÑûúÛ
+|òÓ«¸½ôíyPw>Àû¼l$"
+Æ`Y§á
TÄuñ,Î÷x"¼ÉNWûy4¾Ù<¼y?B=ÇÜÇ2Ø.vÃKG~+£:½LDä`g9Ï/¾Û}¨ð²ó#A®SÍ
+r RKÒN±ônvêºÊJuËR¡åMKżIÏ36T¶iDkÑZ°!
+³ ,` à=8]¤%èÜÛ½×˲«Q/°ÝH|¹pûÕoûè/iõ:?ìOü´þ:°©¨ÉpíH§I=aûûa:Ì*eÈ(,Ó±'`"bÓz»ÞzMºÔ©¾¿3Hr}M¼î|Yí^ÀÿaîÏ,ÈÆ:"P^×d]ôµB½´<C|¥ø~Ct(Ħ8·<ãÕBÝ>ôpvÝ¥ë@þçÆ§÷ýó¿^½j;_ûâûÕ«·=GoÓhºpºóÊ²Í¿Þ ÓqUË.ÚûÆËöö=·ûÌ9àóÀs"÷omðG×ËPßKCtǤâGh X
±ÜÎÏéüÊüÎBÑAÂ<Ï
+JPñÏ3>g¼éSØÙÙJÙó²?'Gra?£FÑA±É¤mÒ¯75[uJ°AÁÚÝ»·ße¥Ï5öòZËÌöøÊ8QÒð0]-L¸ðÝܶ±÷ßÿÄÚâ²Ò¿}äGuô[ñAÈ),(¤fC!f)¨@FÔH-!³ÑüñÆáþñr²Ã¹ñÈÜÎWR )\è±§¨ñÓx¹÷¡GhÐjï|÷«ó»
+ßj2¯ÛѼn]óuA^×âux%]IëéeÚ<±|3p ý}
¶Ò¿á
+uÙÃdè]2ùoÄ[Y9
+U¨ÕÝ0¶"F/WѬ}þ%Ù»ùþù
+®Xr¾!«õE%¶±kð'
+ôܹŽ7EÁ1g®[³fÃ5kÖ §¯ùvQsÌ«¯
+Ø^À¥/w>;ÀìGÍÈmøá¶Ð£ú½8ÔdI§!ñÆ!sÕm4êIGÝ6Üb°xq9 ÐoþÍ-ÂÓq*=J[èù½wñD<ùîÝÅR,ÝÖñ(}½jѰf
+÷5þ£²ÕB a2{Áô^ñZ>aλ¤Kü)
+äi4X<OËÁ[^FXDBìYu7<ñüÝXZúеÝÏP ¦7HO£©Ù+ã þ];»Ês³¶ÞÓîÉ·¥_ø®³ó6³ázoëÆt)]Áë7 ØúIÊý4}Y#§°0xJu(B,âÅéÝÌUâ_¢ûeù êùa¶Gú þÈþ4#53"a¦NXªÑûË
+?÷à]y¾ÎÊþ!.Ã?¢a,HÛ\§;ç OsaïÊóGù~åØZ?íUF'Èa òg 9MϨALýºäOøGj|Ú42I;äkd¶,Õê>Ìi&à°ÏÉàÎåÂj×auçâ¼}®O[ãa<ڸͿᬳCÞ¯µk´vRöUì²,õå)
:¤
+P$@ cÑh=Å×\׺Rÿøuü
hð¢ð
+ÅHb¥8öjß/ªUx¨Pç§oÑÉç[¤Axq?°ÖÜÊm$ÍÑOËÖ$ÀwM\ibòÇb,°÷~FþZ&VÞööArÚu»Âw¡Ò¥w+[v[Ù
+àóg>cá¢&8°IcÙhÞâÝäÁG³¦%¼_Ö#sh_Y}¾ª¤*7Ì´²îóÙ"òñF½6Øîâ9áfgû Ñ_b3ýü»Å§²|à¹<wÿt¶MôÆWôíø!öì>h·nO?"ÀgõC÷;¢~vP=ÿ@âÄô/ÅlyΣɻQDM2ë¬ñ7þÁÅãÇ÷Xá{ó¬C|DúÚ/Á3èýBÛÖÑxb\'¼èª;ýÒ·|àªùo|
+3F^jii9
cÆ-mº|KÊø³Câ¯ÿiîñÚ俹}Ü®3
+³óµ%Æz²H¬×-2D@qï¶/pª¡åÂ
+§®;óö15©`ymwÅ®
+jÍrû×&GX·OMitHÝÆÝùx¯Ù½-2ú25¯ä§"µÃ
tð~3´ùº"a©T¯]¦ó@õ4àÅEIÑò M¤vÉ ä È)_Î×ÌÐ.$KÉ_Ýg(ÝyD~ì`A«Dx²ói×f¡ãÙÎV[³÷ù^JqbâÒ#¦IÂd½õ(D+Ê&cO³Ëu¿êÇ2Ö²öñ¬²
B*k¨¦xj/\¥ña_½ùæéÎuR°ëä×ÐgéN\té{hØÅ
+Æ,!¸aÃøÁ@ce½j¥¼£À
+²ØÀùD_wH5à¡*ÇúúO£.hÙï§Ûo´Dõß?È/dÿA Qò
+- Ãa:ßнésØëe»Q§úû `½ä%x#[ÀX½I²wo!(¤'ªï¤ºgû`+VþÖ±r3NbÏ·Çb·ÑCkøhu·oX³ªÜtüðüÂMãÆm^ðüôMÓ¨¨5mSÛãÛ¯ü³©¶¡ºñ+Ûflùþ7[¶ìü¾a:·õnZ8FÚ|&mÁLZ²p8x#èMÓaËËö~>&ö¶_ OUD¡>cÍÈ rjâYü³þ<=Ê+D
+Mq~*#bpU¾Áî·9UðÔÍÓgUV<0}sê¸ö-Üìpl^¸ïqmù¿ß¹%(`Ëo¾ßß°íÊ7Õ
+µMÿ¼²Ýý>ÈÃb½¸ï{£gtx·ô
@õÓêe#óQü]Oµ¡¾E¡¼=pÿßGSñQqMma|ç
+¨Ïü¿:eiÌ-ªå¾sòôÎcÝÌÃ*_¤íêyrÜã/~0êýÅó¨°¾2Q9{s¡exº²¿ÉAù8ÝÆ×Ñh/Ï6®ã"´æ¼^ÞÕ¨
+îó
+«ÔÁÈ0㬰UúÐÃæ*+ÿËpÍ6¸7À¨
+0o`ÿ2¡+ða` øÇÃñQü%þRÞ&RK/E½-æR¼´HjÃåù1ù ü&^3]ókÍeU©mÔ¶jß×MÔÔQ}þ2ÔNÇ
+wƳÆï="=ò<ª=öxËsç¯<÷y¾kMù¦í¦Ëæhó,ó³æ¿ïXÌlËÓ¿Z#û¬õêçµÀë×7Þ¼?ðçó+O|ïó]ëû´ïqß¿úù½ï?Ê¿s~&J
+Äj*\µé÷¨ml¹j[@ZÃJµM ½Ú¡½OmKÈßðÚQ?çj[Â
+.µm@£!jÛÃ+Ò¯¶=QIè#ã+«ê«KçÔÚ´ÅÇÅ
+µÍ«·¥ÖÖÔV;Ê£m
1¶ä²2[UcËqÖ8«9bô©ÎÓël
%ó5¶j§´ÂVU7¯¬´ÐVTY^PZá[PQcRYQRY¹°o_ßëéÎêÒÊ
+[|LüPå»Õcdqe RèÔÖV-þEu15uÕ
ÎâÊêùÎ
+gm:ÆÐb¤udPãtÚæ9Ë*±ýDÄèõݹ¹uúÁ¿ø£×ÿ¯3ÙÖgåR@ÑV[]Pä,/¨^h«,îE¯ÏvVÖpÂègµÖ_]PQë,¶Wñ0
+6EÛj+mõ¶*à9L¨WVÌU
+i6²¶Ä©r¼ °°²¼
+³µ%
+Ð
+-( 5l¾+)W¤0¬ ¬>@Ôyn\º!eõ¶Ò^ª$U;Ù>ó±¬QÃÉdã6'èS!`qeuQ-¼ËÃÙÚî¶pfºám LÕfæ9ÁÔ:#bQeibÎ%µ`5¶ª*0±yeNvC¡ ÷LIA¤ :+zóëÖð"[]Epxo¿®PøK©,cÍEÇU`+cìÅ=°ª paÁ| l±¢²ËüçÕk)pZ¢³¬!51Í>5+Ï;5=oFrN-#×3uzFjZª-<9®Ã£m32ò&Ng9ÉYy3mSÓmÉY3m3²R£miùÙ9i¹¹¶©9¶)ÙiÐ5>sZjFÖ[
+ÌËgËÌ@ó¦ò©*¨´\lJZÎøp73ÚÅ`¦Ðd[vrN^ÆøiÉ9¶ìi9ÙSsÓ
+$çØøÀ`ØÒ¦³É¹33m)y¹y9iÉSØXÆ YS§0MËJMÎËeKIRS2ÓÜñÉS¢m©ÉS'¤åv/©ät³MmËÍNÁÀÇ´ñy|$ð8ÉÑ?5+7íþiÐãÜK@&¦ñ%døÏ1ãäg¹NÞÔ¼.Tfdä¦EÛs2r
+é9S]&OÁhüdÂËRñe2b}?ÕÅf«¦¦%gÀ\ÆOÆv¥-)tVÕ2ÝV[qÜ*þ3kâ@
'Tá*}¼ úÅ#âáº
ähÕý2÷Ú
+ÑHq¿Eàk+û¨dÎdqi
+·tåjÜ«)(Å`V×(ðe0¦ÍÞåUÕ¥0equi-8[AôV.UCqµªúRÀVéµ³¦
+"Ué"gY}fñcRZéV¹J:g_aí(·µÍçÀpHÊblú_Ì×b.,-µ$¦ª¤*Vuh<dâU¨U£R4êZdCP!çx¡Ð#l(ÆÔB¶^£¨
+ªo
+|+ÑÂ;îßÝÎñ¯U+9Nñ@E<p¦ç<÷¬{Ã,æ½
+GjUî1Õ}£ Êñ`|«s5Ðìäs«9wb
+Ý
+VpW4ÉÉFÑàðZÎ%Çæñs
+Ç«æ¨ô):XZYΡÔò;nþC«LÕã]8v¯Àìá_¶ è9[±'¬§
+°Jdz"NA-×µyp·ßu¯ñó+D«¶TÕq(
+Os(á6_«r¦÷õ¤È
+¿ºV*ØÖqF÷ksyºeÝm¿50;úgèî¢3û¬Ø»Tåjoéÿ2ÕnÎ)ØVuitmë¦h1çGù´Û¹Ï¬P)töX±ÙÑüÌ8±
+ùÚEãRÓQÜ:óÔY
+ø<7EES&¯Üã5%j_uZÀµGÑ]÷}ùSóoiêéãziXѽ0øeLz¯×/÷Â1Z{Wú^½Zõ@N_y/¸î.ÍtÛMß(âTý³sªøüð{ÄÅð.ºûÎ`ãÝQ7¼¶)¶Ù'ÎÌãv_Ù×:ÕÜXwKïÁ1'ZÂù\¡Zt|(VÀ=«³kFOù+8ÿ²ÅpOoãçG'ר×
º{ùpv·êÍá{qÕÖs=eø¿j³5Ü{ºcv·Õ¹-ee]9Hµ:£7Ä*®Ñá8_+8oûæÿ'<ÖÏS5OµZ5.wqj"JãëLEYpÅÖ
+Wyhä9ü^ôÙ Ë;Óá*zS¹\ùv?[ãh3SÑ4KG{&ô0Ø6~Í®&Ãø,Åæ¦¡|¾F@Ëå#s8ì)Ð ç4u1z¦Á5kO@,UÖËYyÜvØ<iôw¯Ú«¾¢³)pð'ªwvÇðæbí¬.<ÓUL9ds<`ɯXï48gø\ÎÏdN³m§!î+´¤qI(s6¬ÍFL
+_W¡¬NÑ_ðlVsnþRê[!Vñx¯¬²·kÕÌÑW§eýKûTÅÕ}ªª'7-ÿÿÕ\ÞUjMUÊ9ÌòÉn5r×gÝ<aPv·ÊûH½[û´Q¨oÊx0¿æEªÄ2¶¦þ¿±¿Ëù½¾±Ç"ùÅð,¼
+úzgÊ»èÇGÐ,tW
ØçàöÙRr?ìãJþ<)´½øÑ¬p´ð¶Mh=yÛãà?&HÉvìÃÙáh@ñpÔsx:>J<á¨ámx[äý÷¼;fRB)é\N\Ü¥äN<ùáù~9ùîö&é;J¾;.Þ¾5Sº½Ü^)Þº)ÝIn9Ää_߯JÿºC¾%ÿEÉ7ü3Üð&_7@±ÖÏ;~ÿ1|u½Húª\/"_Rò÷¿I§äoAäJ®-$Sò×#ä³O¤ÏîOÈÕFòJ®PòÉÇ>Ò'|ìC.7þì#}DÉ7¤?ûFKpqi¹HÉ
÷õÒJÞ×ó¼GɹÇ,Ò¹~ä]_ò%gÉvé%oSrz9y7)yS;<¤vJNRr×)9ð{cFÒö§#R%::[úÓò§âÑ#véèlrÔ!±×(yµ´6$K¯PrNïÖ!J^*"È=É+ÙOÉÔÑIþ@ÉüÞJZ(y~§ô|<ÙçIÛk@öZÈï,ýn9yv0ù-%{(yÝ»¤ÝEd×ÓfiW
+y¤ùÉ©'cH¬ßÔH8"5RòèÖGÈ+ÅíÛ¥í³Év¸_S²®·!ÛI0£!lj·xͲ :6À´vò
l d=%ë(Y»Æ"¥d
üJVSò¨%Ez4¬¢då²âåÒ
+JYN_Q²Ì,¥d1%(©«5Ju&R×ã²Xk$µÇÅ+©qÕ<LI%¹Re#©( Uäò¤
ñd%¥ñ¤äS⤤Ây!R!%óYB
+(KÉJeò$³Èoàâo2Ë@@£ó½ÉJ¦S2-(@Oò(É¥$ûlJ¦z,J¦àÁÒJ2ÉȤiÒ1Þ*eøiþÒDJ&ÀÕ"WéGH?I
Ôd|Eo%ã[C'¦$¤Ii\%;<¥dInÅÇáÊdÄÑWÂUQ'%IR+v8ÄqÆÞ!c(=¢$XDF FN&#(>Ø[NIÂd2,.P6
ÓPJâa`<%Càö@Hb¡ëObt¾RÌ28ÚKìM·
+lÙh³Eö"ÑÝFqÐ}vi%÷ÁÈûìd 0JHÉ
+§$Ì6X
+[NlIèd+PLI?àm?J@*A$
+ï<wzâ¼;$uÄÈtkh Dè)Ñùh(´LäMGî:Qx0Af[qÑÍxÐÿ??èÿ6ÿÍ`ô?öWOI
endstream
endobj
-514 0 obj
-7864
-endobj
-
-515 0 obj
-<</Type/FontDescriptor/FontName/JAAAAA+DejaVuSans-Bold
-/Flags 4
-/FontBBox[-1069 -388 1974 1174]/ItalicAngle 0
-/Ascent 928
-/Descent -235
-/CapHeight 1174
-/StemV 80
-/FontFile2 513 0 R>>
-endobj
-
-516 0 obj
-<</Length 273/Filter/FlateDecode>>
-stream
-x]ËN
0÷}.îM %aá%¢
-4Å8 Vâ°êä¤ãVm[ü_-9$ãÄ>ãZ×ÇyS;N§3äKë9G.3ÏEè)<_ÌÈiìù9Ë=ß
ü£ç&hKÏ÷4y¸ñvý>Ö@Ùf[.g÷S ¿ÿ¢ö*<ß:ëá
-endstream
-endobj
-
-517 0 obj
-<</Type/Font/Subtype/TrueType/BaseFont/JAAAAA+DejaVuSans-Bold
-/FirstChar 0
-/LastChar 11
-/Widths[600 372 762 687 595 683 720 348 695 379 820 773 ]
-/FontDescriptor 515 0 R
-/ToUnicode 516 0 R
->>
-endobj
-
-518 0 obj
-<</Length 519 0 R/Filter/FlateDecode/Length1 17228>>
-stream
-xÝ|y|TÕ½ø9çÞ;{2ûuî0$,$ B
-´gh¥ÏB?A[ê¶uÕËãf
-=ÚX?gv^î¬ì¬Ì¾Ó3¦¥§MõNñîÔä¤ÄÓa·Y-f1>Î ×i5jÀs£8â*: ö%y<êL¥xq=Â¥>óD%Éã5çMJºdVò%õKê©õåd{KRÌÇQùûd`[Ñe°õZXJTVßì-EJëkkaÆB¯IÍö¢à>®×zKºÌè¸N Û~ÏÇ åes¤Ë±ø"$æÿ@-
-YeGT¥5[WEü: 9:tóIÚ\ë3Ô{ëuØãqÄ¥5URFÑRÛ$Fx@ÎIÐ"5C^ʲ¦Zxz¬+¶C³¶´jg4)bwYÄì,v¾Ä
-¹B"
-í#÷®¬Üë¡Ïêêjlx¨ÌYYó Å9S¦Ia@}m3]³9@÷YÖ,²½ÞÌöÀ5QÁøþÖÀ¡¡²zoY} ~¼@iÄ_É^¨òº*F#poaµÒ¤õÔ.¬öÈü^¶ªªîÍX$K~¢¥Vi²h§Hw°DÄ:1VUyah!}ÑP]!ÓO5Y±Y!Íä¾D\ë=÷§[J*Íô%¢`¹·¼vh¨Ü+ÕN÷oö&ïÐñeËÚËjaÕ*urüô¤HùÍÕSmì§JP¾ªª$Éc®V+¢UZº¥gä
-èñP=pÒ6C%Ò¿²J®hsÒÈíyÔÒÑh}
-íéöLL¯õÂ*O±(hhÒ'~&µ¬in;þJwPîXK«¸$R-C$£ÎÆ^qú
-^÷FL¾PZ5T\-Ìà¨øV{¼®J&!,Î ¤FhÙcNó=<º r£ü:D~Fî;RY!æhÑzÿÜįçÔ<"Fµ¸Õ¼²G¥¶©Tj5ÑrSi-*`µôz¡¨ûµ:íâË>¿fKü¢âbKQѾ,ß¾Þgå «ÃèãNü=¿/ûµ´V8}á-Î÷u9vá×°ç%õâøù("f®_Ì×ïåIW¨#ÎÎdÑ9lê$uÄ DÔ ¬JΫk¬³G¤^^ÓÒ±Í!!Ý;EµBü¿éÒïÆÑ=Ïã£ëª¶vTVwÓçøªS#¿úRzyÏ}XuËþ½wí»r¦püCn
-pÆÖøÓ_AØìzA;ïàlGÝMoà8¶QËëbµók ùȵìßÖ¼â±âÜÜìì¢lTRpɹ"3åݰ9Ïì5Û°Í«Ê;%ÏzÞÒpöl-7seꣷ>,Z¤ö-tLI>ð,ÿöxþò<<°G*å¿ãx»Qm'ªANÖ6i4ê ñù²aiØ@¥({V$a2H!Z`?öÿÐl
©Ã
6úÓÌFæq¶ùµñù¶#&ê£Xcìj1bFü N-
-ÌUÂ:3ß°ÍcÇv»kÄlÂ`u©#£êJì}ÀfCx
-¤GÕ¢¼ìs5 Iy (ú¬)Ê®¡"â Ì]0äç¼SȰQ;S.îv< ÞöÇúÝw6N¿eÙöÓÇæi·eSE°÷úÚVüí=Ç7|öîû[+úܳN?·°løöý«¢ï&ØÿtTöBºñýn.ßg]û|Æa¯7/ݯÕ秨MyTò´ü¼ÅªI² øl2ò-voÁ 9¾(¾
-âȧ< æ¤VahTËL¹ÝÇÒ.Çêå
/vxgéìb«(íqÆ«+V´zöÌ¢EϽ·ÿùËës§á%ë¯÷L)½za÷,òêôn{Êô«3X&ùY0ÝugfdwÏòåéYi©ËÅé½T§GôÌÈ·`Ó5Ô"wr¿ü²¢k<!`еOÆãgt&³·? ø# uV»nPk×6l´Ú¬AÊ"æ3KJÆÌÀ
-_
-µ;£Ú
-ÉÜ
-1OñÍ
üm3 &GÑT¤È´ßuÔÄ1´¦¿Ý XÍxèù .f #'#DBèdoè§o<Áp0e&~¢Ùâ,ª©¡áË£LA +N¦+Zi©À6vOKFr1;
ôiàÚ©ÄnÇ^1=ßpݲUÞ,Ï-o>°uç/zöéé£7gaYIFÆÞ¿
-òªôÁééç{§ÍtÒJ×.»³)=Ï%ÎòN³ÙLÎUG×ox¬ñ»ÔQàPãwêtZpHÄâa
dC~òÍD}3,a$ÎQhÆbÖèt h
-
-Ø'¹êQÌB¶P§=æ©óä"O.o±§Q
-׿lêÿûÐcBËN!ÔZVïQÿT)_
-Ù»IÇ4Ûd?±fTÕjl4°Él¢Ú]s®(µñsÔÓO(¸cÆÚÝ{º×^·åÅ3*fH|úc[×Jï¤.¨Á>@½ùáªBGüµK¸WTämÕñ» 8TD+¨TQâ^E@8n/Øx8ó÷!
-r
-¢â9ÊÎ ÄÄ¯à ¯ÂÄ1Üg 6?é'Âðµyy®l
-àv!q` D1¤ûBìËrѦé [$ìÁ|õ-|4O:§m"÷Aý·K+ÉO!Å¡êѸïr$4pÛµû´¼ÆÜHópNè¯Ðc}vÍX®jGG&«Wç̶àפ¹³>¿ûáçÒ;þÙ9©@Jò¿~1H}¸´ÿ
-Hl*ÊACþøFÎõ®ò¨µåO¥É@åÈHcQÒOßÏhÁ+Ä%²a:hªeD15âùRoJ%Èg$¹¤ ò½>m uVjÌ1!Ë>W2FõÔ'»qøF#Çì´Að©çêæÏÃÌO&uò3$n#îÅk¾}³4ú ÁîÌ
Uë7¶¾5Póéó×ßW.íÞ\qMcËòå5|ú{výÓí¹£÷Ù¦dØÝ»ï[$æ¾ñí¯0_¾ÕîìêÚµ£
-ã u(Þ"?ÎB$HVûoÝ6©+Ô·ª!ÉQûÕ¯«ù0<Zá§Ö[T¨tqº0á5}zfcÅÔò²³Y<¨ÙÚq®&ÞÐÏÿìüÛX ~&¤9/$½%ýVzîB»X
-:®GþRé"oN£¯c«RkuvAÃ
-ò¼zÐ!è5xÐ6¡oCº
´nÖéTH£Õ|ªá5 ÆLA@Xt¥ÃŲ>;h2Ì4W=zÐ_7þÃC/â㥴?á=ìügHª±7ñZéa2vzÓDä§r
-=ÏAÞ¯RëA3T:Y7úUª*h±nt3È8Z\l<²F )L ¦zµø^Óðvùx
-üâÊG7ÝxjËØÃgà·uÂqíðõÎJ¾ÝÍ-\ó
Ý;ö
-î];LÏn:§¢vÿ½ÕdµXvM6³Ùd²"}â0r\ý®³.ÈÐÔaÌ-Ȳ×Mz³5ÁÒg6½ªtULMèCihB')óh«aìcF~®-i`§!L*Ïì´Ãn£I)M]V)'ÐôTª¿ÇÈço¼³¿iýÜàÊ´M¦_K賬©³æg<ç®Î,ºîú
Ó_¸yçñ¯3)ɲMÖáÑuSÆålÚ¥9bù'PiE+O!aRò¤$¡Îhj&¡èJI¨boI(Ñæ+$¡GVßßþÝ$ÿîÚ¥?úÙÅYèöñù_³¢<¿4ÿŰ´Û-Z#¬ì¨è56MPþXÑÄÒ³r¦ã9M$z³ÿtãGoxð9|çÒÒ%5øÈ#Í×½ò3rÿØÉúÊöa<N3¯^©E¸gF)¨Ù¯ÍUrÄDGà
-⤹,yG "þùdp®MþÅ<ÙßA¶©x
-²lÄ6lJ«H»53¥ùÓ^OãÂð ii)É¿SvÍv=ѸzyÞÓ«¦[J5Ý:ÉK±3S,Sh¦i8å¨sVycù9
-á*ÞüÃÊü¦{F7uÞ{á3üÊæÕ«øAwí¦íï§ß¸kOÍü©é§nîxfÇhãv-)ó/¾ððêò«W
-èëzÍâϰ¢!}xDÏ i8xjM'ñÔÁÄ+ÒKû$KKOcÑwÏe¿;VÄÂM|ÆÞµM:ù¾ÅxÓ|¿föܯ_õ½m}wd×ÞÓõýQ©)yú¼ÅUR&Îï+¿NjâÓï
-¬º®ºiÙ9$5½Mc¿!KÊ2f5÷ýRwT¹ÛÖ£ÙþTr{XµZ=¹Ze*NÕF°nòiÙÝ5S,I¥£øþ¿,Ifé*Ãã]NV=®¬ÃÅîÐús¿á<ó:=«kéiFkQ©°³rwÎN2ÙJ>飬Í×5±JE wgÆôË±èºÆ?z@ãf¢§ýù7NyÊKx¯Í;Û[é½Ñ+¼¤ÙKâ<z//8®.ò»\IÃ60
-ìǤbùzÈb¯
t:}>ÆÂð+»¶J
-\÷h~<ÞW¾'ÊÍ}FúE_ÿ
-T¯/.ÊÌÌ(
-ÙúJçÏÞM¨»®4Çàx~ÇÁwaòq¬üè~¼Jm$È÷E]n¾M
-ÆÙü:t@ã§£·Âð1Y#3IÅX<%ArÖ/üøhº?!Û8g¦Â¶^Udóƾ8W\F9B°Óe*¶Ø!{`ÁÌî!u8Fî{ùË{oy¶u¤gl>¾eÇ£átˤ/ÿQ{<%o»ðÛ»#=Bw»qüUh¿öç©T^£aS¬6sØÈ§«¬¶^«Uìã¼\$öê¦èZ.ºî/ò²ALgå
-¦z7Ìm¡ '½Øt÷_0ÛNþåéÇoJç¥O¿ôÜÈ
ÏÿëÛÒ²¤Ýõ#Ǽ÷¡jbųÆÝT÷®}÷S\·aQÕ©[¯®zíìÇ?9gøW\Ãn©P¹ÛTVM^Ñà½ÂaáNõ)
-¿V¨V0çæxó°Î
-|M¾Æ÷¢DÔ2ù`Ìj¶ÖXi¤@fxiò²|+â6|ó£Ò©/¾~ð#|æ[n»÷{nú.ù
-nÄ·JÛ¥{¤qéÄ{ðÚñwöϯ=÷<ûJý{bÂÑý%¿Ý¹ÉXü%J¿WòÀÊÑ/¢_þ 1X½~S|-~µ!Í«c{'Ùä/dÒ/©Fw
-kÑî *$£!. ¾¶AÙE¾Þõ(àÅ0¦`cÚÙT!¼F
-óhüÀIñ@ßFTÃönCסûÐç8 wà7H3y<Áur¿æÝ|ÿP*,
÷UXuªFÕ«úº@ý°úKMæ°æ¼¶ZûN¥ëÖÒ[õ{ôÏè?3SÅ%ÆåÆm{#>MáT*Kg·±*
-@7
-:h£½Ùdî?à-½ÕzZ R£Qæ +yYyóàó>U`´_P`5ªÃjºÏnf°
-¿Ã`-l¨?¡À9¸dÃ1«À*æü
-ÌÃëX at .î6VAûÃ
-¬F/q£
-¬A¹ü^Ö¢üIÖñø¯X´V`jÒmPà8ý«º8mpÈké(]¬§´8d<ÚîdÜçãì`°ÒâÂ`+ÀgmlÌÛ)çr;XûF'°¹2oØNacö3ØÍà;<¿Á~¶gç¿0XÆÿC
-äö7L÷gC]¡Áz±>ÐëÂí=¡Æ¦.±²)(^nwõ´ÅÒpG{¸#Ð
-·³feÂcNxuKÈFwÁÎ`Ƕ`=4v-¡N1 vuê-b¸á1no
-Õ5qs5:»°£PXìè
-À»¹»#ÔYª£ã;³Øâ@ÝUÁÆî@ÇÞLqR§¨ôNjZìè¤kæfåÍaͬùÿæÑrF¨P@QCAÔÚÐGPb}«Q¼ÛP=<;P=÷-î8÷¯ÜsPNq§¹GÐBBPº ìõHdcé,Õ¦vÔ3é¨&hQ%¼ð¾úèJ]ÐßÎZJÙºíì`éÍBEð
2hx]
-»kww'«á÷6¶y$C©yj!6î®SãZu[ -þ¡=n! · `ÞÙº£F¶jÛÌ£UÇZ(¯äz3êf{í1['УBDàþ-hÃÞÍêWØoæEôO)^2÷Ê£Ö²vNÐ;É ÄFgNýÓï¥AaÀN÷Òk÷À¹FDK`\ÌXÅlHƼ\Ù]q¥«`t°ãÈjxv3»ù{ùÙZÛÖF¨¯
-4¨|eKkct·Nð¬ñ¦Ùo'l
-ÌFLªÐ7óâyÕÉøfü®nÆõ6
Ï"£5ÀÖ«Sø.÷Ðv2Ù7±ñ¢2¯gBö!ÅfÛYmð 3çéþ»¹.ÙÌù.ÆÑ Ó[W^=¨
-3\òÚÑvYF]
-Gê-í¼l\à2®à-ã®SZº§³&isyÆÏEÿLZ9Qüulö6eÍB'íyãA³Ô¥5ÆÕÂÛ°BGïfµv2Íja»»²F40 PJ,Pl²VÈøÂ`»AE62ï)2=møUÏVndòüÉvKÇ´ÜeýÃÚí6
Ó2è~dÒ¢hÈ8X§PbkacÚÝÈØÆf^ìûcþî3v(Rie{¡Z¹M±EÙÛ´Lì¢ÕbzµÑÇ.¦®NYCöJÝËõiem
ö(_©V×MÐ×À´ZdòßÁ8ÛÉ4®kÂȧ{-½Kñ2íÑO¶ÞO©X_#l¾¼k·õÆ´L^½q«ÙGÏѵéüí¬?À8Ñ¡¬AgâiCÌ¿È;bogÔÊü\Ìß61êÚÑ\8Gd^úÉb£&{Ä,æZaD³£Zjc
-²Z'ÚÄì´ET°ÓÑÿø*}%¥-Ú²I±5*§Ø:ËÁSWBd(R
-úGáÐJ=x9<¯aíeвTCAü(ϵ¬µNÜ:V*Nu^AãÄvÙVd¾¶+iêÿ.ÅäõÈQiof½=0¾{bͺ ï&ku,Mö²÷ùQÙCÏìTìºa NxEj±ÕÊjÔ·)ÞtóD4×ìú+zÏí*¨Ø]pB³;éR¬ºAÑÊ+ñ+jcÁIXb¶|ùzõJ¤g3óò®7+iS0_ABb£êbNÉ>ùr¸|åXƵyêc6+,ÀüKpRì¹ZÊý5Ðóµ=É"¨d³+ÙØÚgCJ¦ò¿¹¨èbÛ$]úzåt$3þ£;&ém,vÿuNÑݵ2üQ½
-_o;ÿ&ÍÉ9hÔKÆFal³ÄnÆq¿iy_µ;¹Êü¢w%úkÅôc £ýrÉEs/yJVrã°1;XL,té +¹å¸4'©W¢Ñ6mG³«¿-ý(>Ù&Jpq¼â»\2·bkÃy¹G%¸×
-×nc\¾|
£þÅ;
-*YlD(5àÿiæ^f£ÈÐ
- §/wÔsà#2k\ÏÙðÉé0¢
-ÂJñÑÄI(¬ðóbo=Ó÷LU¯h|ÕÍ|ØÌì*Èøå|AQOTt5Èbß:ÅòÊ]È?AÅÄ<Y=³@Y+BhEÓ
-?þñSÃ߯?ù6Ë|¼Rßï.¼èvÝÏ~Îû'ÕùT~¿_ÄÏgÑE+P[ù&,ËY6A³2J==[w0IwñÍsb0ý[ü79D¿¯xù?5u#e»#y#©ÛØåHèt¼ÖöZjëvÇI
-ò§¤´Îä°3)ÜÒ×BZ [ÚI[Úú:mtÄxJCÈfOnÙ5àPB°É$¨8Ñ"râì ÁÄÁ¦Áw~í9åv(ÃPB9
-tÆm«qsE7*Ô¸+òpIJ-«\±bx¯^Éó-á¬äúE´ë«c|K5´FÈþUFøý' ¼,¥×¯:h÷ û7Ô§Æýwuµ/%²cÙêªH{Ju¤·¦TÓóãëììòýüÄþ5e¡}òhìù:£Ãä6Vï¼`eäWtTgÄÉåǵÄúUúï
-endstream
-endobj
-
-519 0 obj
-9867
-endobj
-
-520 0 obj
-<</Type/FontDescriptor/FontName/PAAAAA+Arial-Black
-/Flags 4
-/FontBBox[-193 -306 1686 1083]/ItalicAngle 0
-/Ascent 1100
-/Descent -309
-/CapHeight 1083
-/StemV 80
-/FontFile2 518 0 R>>
-endobj
-
-521 0 obj
-<</Length 418/Filter/FlateDecode>>
-stream
-x]Ën0E÷|
é";)BÊSÊ¢5í¤HAYäïëë¶R cûÎè`
-éz¿Ù»nL_}ßhT§Îµ®ýÍ7¤tî\¢j»f+y7zHÒP{¸_GºìÝ©_,ô-]GWeÛé!I_|K¾sg5ùXÂúp/ºUTjéú<ÕÃs}¡Tª¦û6wã}Jþï÷µJÓ·tê|íÎ,²¬RÝ®JȵÿÎlã©ù¬}êÍ2»ábÇ<.-³Åþ9ÌxÆ\5ó#XzÎ
MƼDOɯÉר7̰ôߢöy|XgØgý¹Éy
-ÿbÍÿ4üsþ.
-+è¿b.=á³!ýá_J&úKøÒþ
Ô¿dg+ý9câý/áoù®L¼ÿ
-3ü-;èÏweàKþVòìo2-ûð7²ËþïÖÀßbxâðñÿ§jnÞÑAf§±sôû¿ýÀUò|4Ô
-endstream
-endobj
-
-522 0 obj
-<</Type/Font/Subtype/TrueType/BaseFont/PAAAAA+Arial-Black
-/FirstChar 0
-/LastChar 45
-/Widths[750 833 666 443 333 389 666 666 666 333 610 666 443 610 389 666
-389 722 666 333 722 722 666 666 833 777 666 666 666 666 666 610
-389 777 333 777 1000 833 666 722 943 500 333 777 833 833 ]
-/FontDescriptor 520 0 R
-/ToUnicode 521 0 R
->>
-endobj
-
-523 0 obj
-<</Length 524 0 R/Filter/FlateDecode/Length1 22844>>
-stream
-xí| x[Õè¹÷Ü«åHÖæ=}-Ûe;uÈb[±åÈKlÙq Ël+±-!ÉvLH)e{@C)\
-2Lé.|Ó´´}3íð¦}/åõ¡}mJnÞν²$Ç !ÊûÞ³îYÿ}»?|$b!dDFÎÀ?ê¬ÜXz
-!ÎLH«{4
-ã_Âwt(:<öúïGöÂ;G§ºo7õÀü§e#!ðïô¿+Ê3hý,< ߤE(?æe#c½â¶Â|#Ì;G#¿·b÷0ÿ,̯óïÞ$4a?siÜ?ª½¶êÌO tõ¦h$¸ê±Ðýh,õ£ûvÀ|
-BÖ8øÐ?s:ç± j´:=1³LfÕþûãJ¹Z4^
ïߢ§Ñø Y´>]è;Üm|5ì<nEo<z=ÂÕs9\=쾡ÉÑL·OÁþ.¸ÛPÞB÷@
-iâ÷óhý@|=[ÿú&w½B¯ò-èèö¡»áó0H|#Hæ«Ðã|ïJ\-¾É>¿CÐ~äCkæ59Üê'¹ïq§Ðoæ7ð.|#Üx=ÅÝ"
-O -èn
^<îæpì³!~
-="pOkrÐ+VXéJзà;
^ç6q·àÛ²ýñMôº¶U¨U¨ÒÀëßgѪÆ3pñ¢BðCë@Éë¸ U´8B`Þ3(÷(`CÉr/÷:·÷I?ÜYRíX4,Zé(ê<5-Í=ÛÙ',wWÅ庣Byé¯Î·ù«jǶÎ>éè7ÜM*T÷@¬u÷ÁÎ`ÖÝMÕÀ.g!ñqðl-Zæ4
-Ï!ÍsNlâT{üÄ©O!ËS'NɶXËK¬%Cz/¿÷¶<£5ýñ?bJð¥ð«[A
è9gNXu^ä8%MÄÀë¢Élʶñ9VX°f³©ÁÓ{söweqYfÊ·5fnu¾¹ÜT¶ÌòîÜ£&®ÿäçoÈßÏ÷²Öç×[ë¶úO¡Ú«N½sø[¼i-âoµâoùõtD0·(ßüúö¹5Ë9®n`9×ÏÍ=
-¿Ïß³|ór¾Ã¥Ù×pë®\Uj×hq)·_ÃËËÍÑG^:¢'»o¸ÿ-iz«Úú³½÷YÏ?~fÿÅÚ\ßõ?|òÌ}3\?6{oYu#q
-²xØy CC°hË·ñb¾¾b~¾ÁõÙ\$?Ô0ä,+,ÈÏËͶ
-DàÌÈl^f9¾í¨Þ·í(ñ]·í¨þ|×õ½ÌgmÜi9_ϤpêÝ«ª³fHAåÝÊ/ÈÆB¾ {¸`:oºPìç´%ØÄåæämâ´¥öUë®\¿!»tÃÚìµ®ïÒhÚz¾Y|ôñ/i4S¬üü5óWwµ×d9>|sþ~ànîùïhèàÏ{
À¬¨ýÆÙa ¼Q/Ò*`XVVji±Ä¥e¥9Ù|®
-ÊéNC
-½EØ»¯h»ýPÙÁUöUåzTRj+C¦²òÒUib0Ð#ýÉZþXèɧÊçä §þPÁ
-̵|Ä,'O|÷åë
-G1r/¬®~t5îwêgWß³úðêC«
~N±&ǵuë7\Ãqªéð°b]ÍÌé÷v=ÐPßtxrÇëê·ù~ëö?óÉHë7§«ÏsÕóüÜ}ø:;~9~ç]í]ÿÂ
ýÁ_½ú¤üÆTGw`ð̳~ºmJîqVð"FÁØ4¢VТ h
--Ècò£´:Ë'N©0C9µÀoÚØ£²U÷m¤CN°bÒ6îäÖjK1|¹ú7>õÆèuo¥ò·djëgwÝwCTĨÆÍSnàÑV ÁbÁrâ¸åù»¯1Ôâ
-XÖ`tÐ £¤SB¬A²¨ñØ|Ôkó@Ô<^c"¹êd]]~Ê
-,:õNj~¤5P?zhqM¤[ôa>(N r³x+9Lî#÷Ô!è4B'æèr
-¼JW¡¯$eõüÕx¸^·¬5¬7zqتiÕzt}Ùj¸÷×jvj¯Õõ!>$Ä &¨Ò
-èü~¼O34LoïÔܦ½Uÿr»á³Æ/_Ð|AûþaÃÕý¨sÖü
-ÿø%2Kæùïòsâ9
-ré+üø)á+âã䫸ÅtsäE£îd¯Íæè?\)æJ}¡{ìÍk¸»æeô
-²ï-aà½ýøúýó,}o
-·É ÷íÎÜ%6 §ÕüIË1fté&ÇLmÁ{½ HPímØÚS`j²¬ÄB¹ß
-¦ÿÄÉ˱çëù~H-ðµÙSJ |ÓÙPC
ʳÒl6[ÌV³Ø\l)¶Ûj͵ZkmÀ<`°Ø"æ%bØr |ÊdßÝ
-ác-ÖÒèQÅm ÑúW9ÿ_¹ò5Õ_tÕ^W̯þ|§øÝæÆG®ÕTüæìÖ³ÿ&ÌLh¼ýª³íx{ápkXw{î¾²]v{i9Ò§mÙ*qKYƵ+àÈÉ'Õæûθ97°\{~"&ñRKãånèy`CCãøû7B¼<ÞôzôW§Æ[¾5<6[WB1ÿ̽wwtÿ|ìö/nïèú7¶+üëï?&ÿx²ÝÐbdt=ÈèV$ävÚr½h¹W¿m/)0m&l/¡b®ÿäG77!OÐô@y\ÃÍEíàîúßÙgíìíB¿¨$Ê49Êm]/^÷ÊÛï>üÝÿÙ¾yð]yúÐM/ýçÍGsÖ®]ùÿ´ïLïg¿sìù;>s{õ¡¹Æ?Þ{¿?ÐúêSù@/z+ÐÎͦ,Þl¥bx#ÁZX,7ÅÀånËë(ôÚÐ6®Cð®ÚgÛ^Yd(4Jx
C+LfXZIè¶TÐc9
-¹cǬ¶üzfß'ß}8ÿ,,X¸éϤæ=g
$®6·6¯2¿OßGú}ƾ¢¾bC%ªú¿kEÜN´ÓÑè£-jrsòó¹"в@uº¡äµ~ݵ|
-TYe ;zë½÷+gÖnß/¿ýöÎãe¡ã×ÞúÕÉÞ|çÍ\Ö¿_÷5aó³À:·úç~i/ûÎë;6òéë¿ñOEH©;ñóLÇ9³i«VoÕëÊlw?Õ?¿ö|ÔÚiåûÁiÈw5¬ØkÚ§?¨]xÙóÑÎ>ç2¨ÓëLD½.ËÈð$¢
-9K¦u«I¡WÙNää¼Óä4;-N«3»3[ß?÷h6? ÙkµÌròñ½+Z*ïûEÙó?/õ¼/jX_0[þõå3¯ÏúG´:÷Ш©^ÞQ
-zÁÙgçJKDU×ðÖVo3Ã17h]+ùåEt·Á\TÊ6í6Á+zïsx6©érMæ"N@&k¯¥^Ëõ?eeu55Ú'OQÃxS})g_¢6ZT(Í
-¬Q~Íá5´´æQÉ l毻Ҧ¸PþlÂ+ßÝ ÿHþÿÉ{ÓC½_ÿU¥íµÉ§¿7¹§ùÛÃ7>U)í:<éùt·ç¦é¯ÿHLUò¿É¿^Yô
-Çßý¯oׯ^ùW÷v
C½¿áÊÞßüÕí÷sWCò*ÔB¯Cmaà:[*QàxWA®2T°Hpôa Puè«t´ôÐh5B´ZMÑ
- CE*--,tF¤1R'3úÔ4úÔ°ò¬/åÅÒeEr¢ÓAÍÔï<!"
-§D1ËrÄ+ÀÏVñ«q¹¸JS©«J¢ÊÐ6rë
uâ:Ím=ÙdhE®YpnM³ÖCZ
-½¨ë{5}Úú!4Ä
-ñC8$iõCdÈ0&¸IaBÐLIÃmøVá&ñÓ[µÑß
-5Åh{?(|NÑ<H@O^Ä/jZõ^«!ËU\P©]EÖs
Úõd+ç<Ú¤s#Ú2%ì%w
-·io!s_>¯!óÚjûé;×=Y\¿§UÂëgdnÓ¿ÿʯþÆO¸)aàÌÏϼÂ}KnâÛy¼{@ãâJéÙëtzxi¥h³.[.ä¯ÏAå ÏlÑf³Z`eâfÑj³6Q¾ä5æ{ñvã>Ë.ÛÊìÕrlåÖÆÎRe
-V³u³÷´Ö/¸Á9É.í¥2ÝTÛwëgWCJ)_dèÙP\qÉ·-p_ëßïê{ÑÖo>Q½÷%ù_:óë#Þû6njä7³®Áý?øöäªáE`ÄÏþéwôÞǺ·û~±çGºÚºòñAÞ ½ Uq+ÁlYÌFdÁ³ÔÎÑØQy_QE£(ð,ª¯ç
-U¸òK"Æ
-¯¦`[þþíPXÛKò!iË9T¸ÜZZTnÒÛTnz*·¹ÍEð`C®µÇ¤òåZ1\ P8G|skò©ý×\UpUaGÁu×î.Ø]¸¯`_á·êòóù¾¼Îü`Þ@~"/$ïp¾¡ß'ȬaÖ85[2k-}¢l¶J²~W=[}Ou´º³zs5¨^ô7¨)«äRH&t%/¦&Á{`Þ¾ýÝý"WÏeClàù{\ûí 4òþïÿùÇùÿöVdpæeü¡37=|ý¶ã'?¥ËÎÙ¨©yzõêg/ÙypúP_ð'ϳæ)¾l¾»EW,ýî@»¨àDN¨\Ð騤µbÌ÷¿{òX½Úü8ùÞyÞææz´4ýuêq?-,µkáUt
-ÉÕt49¿yõϳ(Ù·Û)DÏ.Õ·1%7çïÛ\¢osÅûömN.ݷɨ¬}Ö,ß¼üå8£w³¨iÌM.Ù?ÿÖ|yÛO§2{6¯|õÌ}ÂÀQÿnµeÃzÁüÕÑ»®ÿï?¾Á|ÕïQ±uD¯húdw¾
hî
-òHj"¤W¦5Q(³o#¼ø;'ÔKÑ1çìi~íæçÎîÖÜ
½)¾þl¡Z
·ÑõBÊǨæ[o}×ÿ||=¬Ù¨¾>Oqvî_Ä7áe¸ÿLׯibÚNí/us:Y³ÊWª+´ÀÎ$ÖqרpRoÐ_Ì8õ}Ycàîiu,ÀøÛêXDFôcu¬·´_¨cÔeï¨cZΪã,Û¹êØ®Ì~I[!û·êØ´Ù ÖdUÇÊËUÇ<2åºÕ1F«r»Õ±
-¹gÔqVyCÞulB#nTÇ·é-ulE¦Mÿ«1
GRE Rª[³f48-m 'âXÈ?æ<ãÉ5:*uÑSq©+Å&CÁrÎÕõôªÏ?9¶;2>,mñçbSh·¿wB
-øÇCqÉIáq):18HÁÈ?<<ÓíwÀú¡´éüK½¡X<êjê®T¶énuæ
¡È8
-jÆCì%2¸ ©"
-I¡ÑÈTetÌÔHÍ£ÓѸFbPPEÆ$W,4©ÄÁ7¡/
-!)ìÀ¡_RH[Ð
-:AÑ1DS#`Xç\ j»HñCOît
ò7c£"ãÁ0å#Þ@Àù#!ÆbE#$@
-qej%²
-SCó&Àô`
-Ç×Ñå[ e§Ûí\]nª]@.ÕgÇVf= Oª¼v^ª#ºv®uÀ)z[e°ÉíòÀnJ,³`]î½P4Am[un%4²0ªÄN³Z% 7ã*kli <e%º¥6MÇ%ô²ðÖ
-H ½ÁÉDÀ8
-%Ð`23O8Qr÷2¸E½Xé
kñ23$a4+S±päÕXxcjbH)(TpPè
âQÈRáÉÐèt
-Ñ\Æ( C6¦²ÎÄH4$K
4Ì# ]D«¸>tét±eîå©RIRT$]bDÎÔ `âɱD*XÈ©¤dD>µQôðÕJDqØU+ËX+T$]bD2êK¨Èùj%éâk%V+¥»oF¹ùÄå*Z.Iª\"ä²÷ÆË]2ñô¡K&rYK&¢LÒ¥LdqÉ$]JÉD,¤R2«·µíj¹¤ê¤8ÿ0ÕIVGÒ©Hzu$]RuD¬¤SQcÍp
·ð>@áC.\øHQøVødÖï_Ð$ç¬h 5ð¨¹`çªv*¼'\²·&:UÃØ¹M5Ô"(¦Q
Ñ0A $¡
-@ð¬Ckà³FpBB[àLÅáC!äGcÈ«4çk`äB£ðP׬8
à;ðä"°®_ÀêLk7ÜÓ?Üù``´îõ¢ 8³~-ÄnøG@ß(¸a8'Áý`÷³½Åpº8êPÏß«¡ó.éT/ã#󣸩CWfÜNÞ¾ !APBÕXøm@µð ªç'á|
-À32±»1&;[Ó %¥Ôà¹vB÷¨FBL«! 1¦à,ÕáåÑ
Ô;ÓpfÝÃ^Ñ`V@%c7¨ÝP¨¤²åMdXÞù¸!ðYwE~¥Kí\ ÁKÿò«ËïÍKë;Åsv%Ø
-µ²1&ë=°
-¼-³NoAKyCÑ4ÂöB*_Ã˸ªuªwE[
-6ÅÆ{v0º"Lûãì~Tõ8C &T«Vàg0IfQ±ØìµCz=ЮØrù¯b{ö4+±3ÍÑ»Aö3ºpǯòGÀBÇÛIÊgF£ª'U,ÐÂ@ã¥?ö«X?Å ]2¯
-ì°*ÕLí_ë¤äj£`t¥¬.ÅÑÇØEaHzÃÚã*¡4AöKq8ØJb70xʤþ¨ª-©¡
-¥T¦Á4§[]2úYF³1Êfd£ £êk<MÃyUÁ¡~f=í&q,Oü}yJRITRæg:ºx
-2ñ,ÇR´9T}²{áóDs² ³~WRp+ñLúËâìRã\qÄ4Ÿ
-²ûö%ò¡}ïÅ7ì%³=ÍÊñ.Ê/Ìß#i´N¨~´IØ
-/!±ÚËä<®zr>Jöò³Z¸®w
æä
-YÒSFXØ3®Òbt>;Iƺ¥bweq¦÷ty-%U&¹t^ª¯ÆYÔLæê·%=V£µGL½ 1Ê,zü«Sò!µ*²U?ÊHu~®UI¨ùphAR-ÈÍðt vQ<0ó¡PGv±=¬IPÇuÁN/Ì`µéÅÅvè¾yãS¨ÁR`tÁ/
½I¶Äæt¶
-η,z×ú7@ëÊ:`La·Áªnõ½Ñ+=0§ãfD«P_;Üò1ß¡÷(-
-¥>XOaͤÊÃ0&)kYÀoQw]
-J*K
*ÿÞÌÝ/|$Æ¿V|L7.´fÒM4z.&a;G¥Håé]°¸®442yQ½QÊ&H÷$¡¥kg)ë n&)/;Ý
-rtÃyÏÂbÆk£*k¦b÷MxÓ¤ÛÈx¤ÝXݪM¹ì2¹ zÚÁèOq¡hÀ¥þ6¦É,¥ývU»Iz|³o ©ì`¾èf§\L×Ý>²ùoJyÏ
¥b@jeÊ7éGÉs;XIÜlböäU)ì^r\
-)6N¨ åoB=K×÷-zNöÎÕ´¤¼,U9¤Ë?ÆôUߥÂL´¬QáÆPò½,%*¥¯6¶Hë)ë£ÐÐâ®ÁpåA&kÅIX¼Jö¸þò]§ËÝÍý$õHF?hqåõÑõÈý écîêeVò4R½äÉë .Õa!±¾tN_üÿ¾RZ_)Õaø¿³¯D22ì_®¯Dx[û$ôÈ}¥GO_\ _ðñôú }¥Ô¿uº}¥¿eöÎ}Ïß]RÞÏJâÖ]"(³»´twããé.HWJà'»ËD[Í|ü]&ò î2E]¦Ô»îÇÙe"ïÛe>¶.ù
-ø1©Ï>Ú-ÎÎàGÛ\â£Ýø¯ëðsð#3ø?,ãÏÛðCð/ãß'î?ïñçîm?w
-ððI®ÃC&
-â \ÎàýFqPÆ~#¸¡Pâ®·7âë-¸à]×e»d|]¾n\;wöĸÏwƽ=/½2îñõ=/ãï»\ôõcSè.Ç]2ÞÞY#nqg
-î
-0]/Të·àu2¾RÆkpÝi¼Æke\-c«`»êSø
-®Ä±²WáÕ«Lâê ^eÂåËëp±@,;KűTÆvÙ_Æ%p¾d9
-¢dÆÒüÙcÎ
b.Òã"§°ÒWÀñ3xù^VX..âÂXXl8?¯\Ìwá¼r+ãgÆ6k¡h± Z±EÆf
-endstream
-endobj
-
-524 0 obj
-9054
-endobj
-
-525 0 obj
-<</Type/FontDescriptor/FontName/XAAAAA+DejaVuSans-Oblique
-/Flags 68
-/FontBBox[-1015 -356 1658 1067]/ItalicAngle -30
-/Ascent 928
-/Descent -235
-/CapHeight 1067
-/StemV 80
-/FontFile2 523 0 R>>
-endobj
-
-526 0 obj
-<</Length 309/Filter/FlateDecode>>
-stream
-x]Ïn0Æï<EÝ¡"¡m%ÔµEâ°?ÝÐÄtH#D!=ðöínv
-øÞ^ÅâãÐĸ¹9÷Ø dRÂ@û<·î¥ %ײ6±Üy-óì@d+E&×jð½BRHY¢ªÊ¬ùWS;¶\:ýÙú(UQ*e&ËÈq¾E^oÖÈkfÒ<¯öÈ9{+ä
-k6È[ÎwÜô{æù¼ö®Ì¤9±zVÇÙä<Φxþ\!ßçß!óüùp-®ïõ³f¡oÞÇÓQi·¸ÕÞÂïÝÝèÐEß7bäË
-endstream
-endobj
-
-527 0 obj
-<</Type/Font/Subtype/TrueType/BaseFont/XAAAAA+DejaVuSans-Oblique
-/FirstChar 0
-/LastChar 19
-/Widths[600 317 633 392 634 336 336 817 317 277 634 611 520 411 634 591
-634 612 277 633 ]
-/FontDescriptor 525 0 R
-/ToUnicode 526 0 R
->>
-endobj
-
-528 0 obj
-<</Length 529 0 R/Filter/FlateDecode/Length1 27024>>
-stream
-xí}{|TÅù÷̳÷ÝìÙ[²IvsÎf7ÉdCî !9äáA%&!Y
-¹.DhªµP©Öjmí½Jx hUÛZÅ{ùµ_Ekm©þÞ¢µ?Iò>3çl. íûþó~^w33ÏÌ<s{æ;Ï<3ç,ÄF¶FíFRz·ô)ó²B?E;{·Å$Çö§>þg6nY¹ñ«ãnܼ}CÊÍ7}!aBáMѾèwoLB¨âE¨£l$<1qHP¥â¡M[b×öò·ÐxÄÃ{{voYñ6ßÒsíPĸ@üz¶D_ßzÕFCó:Gcm8}¡õçiþÐHt(uþP¯ú7
-i¾ôcROããuzÑd¶XmIvÁáDÿ}ø?»¥CÁGM½ª¹ßOîTó''¦¦È/yæÔÏ*ø¶¡àÚõ0^~á5è~ð9´¿ªQèÐÈ¢
ãu¤
-½
-;6 ÊAO"ûÔ£oàt%úFDYPïjôô<Ã;ø?MýÆ
-÷}>,¨½LÌÈòåC[v¼ü× Å6Ô®Å×q]Ü×§LGz´ÐG/`"øeþ'H@èØ%üh=C?Cgq&îÀ7A"ú2zrø&r|ò©HBÅh)ºÁ%ÜY¾[¦~iyh>Bµq#úºýÊ\7%NýPnº=^@¯àb\+ñv²×¸1îîS-(ZÊBLvÛÐ
-зÐy4-Øçá\ü )$«É^î
-î!>À7ó«ù
-ütö×&¿7uÛÔÁ©ÿD ô.t3ºDãXSñ¼Oa®¤dåkù@¾vÔ6 k¡
èkè)èÑ@+óñø%øþüëây¾ÿÑÔâ©S¿FFè2-B¥¨
--þmBW£èóèÛèú
-zæï5Üâ+ðÅß%èH¹ÜCãüõüAþÇïOy§*¦Î@]UÐ×:¨©õ£QøÞ¾ 'гÐß*¼ ý6Ü
»ñ×ñ7ð·ð¯¸ÕÜ~î]Mì¬Ü7ùÇ©líT* ®Ô®@= ·è:t+úú.zÆõ_ Ã÷Ð$ñUx+¾ÿÆ#2éïMd/y|üüÛÆ}»{û\üÅTßÔ¶©ð
-ý\ÖZûÑ«ýt;ú,ºføyÖÆïÐèmtÍõؽ¯ÇNhµoÄøÓø6ü0þ>þ~ÿðDOâ&éd
-ÙHúÉÕÐÈ¿s¹Ün!ô~îGÜKܯù,¾¯ã»ùüÝüwùßèN¯+ÒíÔ':qtrÅd×ä}ÐÛ¬©íÈüAPX
-¬°;8Q·rêzÐvþOüyÜr®´N¾Å«&?þg
-.ú
-w?¹uòjôÔý&?@ü¹üââ)×Â"Èun#G»§nD»¦ö
-Ai_qY;з7;¤øYF¯`4Í"6PBjônjâ¸[j7mÛ´·±»ê;d1×ë£æü<tÈlÒT<%8t§Ô`FƪCmЫxZ°¡1l ]sY=}ñÖËÚÒü¼8®ï
-®£`]Ü.3TÏëëãÖÔOnåØ{Û¸ÖwËÖ¾`_Ϻö8×ÓAÛpÈÐnC<eÇïL*wÖ·ß4;7ÛÛèíhtïÞ¤øýµÏÎ
-P¿£ê²$«©{o4}¢7¡Ý§CQ
-6Òî«¥¸)XÜ´÷ên´½q´j{àpZrtê4Jkö¶µñÚô`GOïí]µýHª"¥ÎÍÉÏ;$8TiJ²kÕ6Nç1±SjÙªiqbÚ£`3À .õJÐö ¤zÑ
-´··ØàÓ¡T¼¦¡?nªïÞ+TÑtZ>®ËÒÞwL{ðìç¦ôh)ú,á]DI
-iA~Ër<7âÂP }¬añÒü¼mãä¾à A
-õÂæ`cÛ»·)(5ííÞÛ3>µ{}P{rë¸u{»*c|êØéñ¦Û`\ÝpU>Pt=à´h@(à8²ÀÃGç%îÄyE>@8Áþ>zRE¹x§vU$Wj$¹+õãS'dË%:çòZÔKCK>âÏf¡ÒZR%-
-4ç|NxÌw, ßóYó=ââwã9Ï¿ÏMÙ¸2ܾ2|uxgxyx0ðø,þuÎ?;Þ
-ÿã|Îù°Ãíñ¦#<NÆ:ÐJ¹¸$×çó#ìÕïó¥Ënq^n.MFä0FBvÈ)Z±Uq{KöAW' qìU¬>ÙàôEZAÓã~Å$£$¯^äe¡ZÞërG2ìµ,U
-O¶Õ"eøt=Ó¹ØeʯVÅ᫵*B:xÀb¥r²»k糬ꨶz¢Z¨VýtòuÂ3ÐìüBÔ9;eöÊå
-ffÀn2ôz>P ¬¼¬¬¼¼¬´$;À§|î@
-ëe.kgü]Ök=×[÷»Órp}ê-9¿ÈÑå.¬®ç!Ã%ÕãäæÇÊó%Å2äçÅ6hÅ-kÁ¹\f·hs{ü¾TEJP\ã÷g¸ÁY¬V?áÜpaýnÛíön)'ûÍÍçGåãä3máBl9ÙöÝ8TÒqËÖ°Íè® {ÜB®²P)¥êÂjR}|O½¯XìRqa1)é£Ã59-µ²bK®e±ùöJ¹¶&Göû#µÝ\,dg×ÖÙjUL¦nÓi·Ig«Á2tJ%Cw«»Û͹Skw»ÆüRy¥p®S®^ñ:v8+#ò»ÕÂ
$ô$r¶S>×yöÜødÀΨ!pWg@â¹74(ÞTàh¨Ó¯Lw!¹z!0{±ðßsò3¸`½{.t ¢àæâeqûêeqì£üî<Ü @l±`.
-îáSÃ4àFkô~ÝÅËßêÄùnÊãæ«TV7)ßÏHsZMÉG(ÞÕ%0ùªJÓ^\Ö¹6£cò/44 ]°
-Ü« ð8
-²)l2
ª°CÇàäJ>w8SNãHxAIÓiY,<UÊQ
-|jÆÅjwHÃi§ÊãPGDΡén»©åtç¼Ãåä,¨Â!Ùá`ëÝa®Øp[kEð¨1;eº
!a·pBÐÁØ:¯¡ÊüþQ\4PS]
-jáÝjæNùì9
- ³ÏZsQþ²9ä´§ªg]ÍøÒ|yf'óòrqA~>1mÃIÁeÛ³qf0{^.ÒâHÍ&=ÊÕ
-7-5ì*ÌáOù.8ó ñ;nÃëOOs§§§9Ë䦧q
yy©ù°1ËÉ\R
-|3ðXÛÀ¼ßí'øÏùI÷ëð_Iðä^rp&Û#ô/Aö0¶ÅpW_ô`äéö'5)É
-ý¹1F¸8Í©ii~Ù
-Ø2ÍÉTl.Ê
-É^KÈ'Ë
-uu¡¬áK¿²
-bããp àc"¬¦éaCìàú9"d5[x8ì#ávæóAͲ_<c¯ùÄ%hÚ6ûÈï#V0¼BÔð²ã«dN¶(ts±t[öYN[Þ±è,iY°ìcÙM>Úw¡[a¶ÓýîÓîwÜFwj¨ùyÏ×öfC8{ÙðNo. If¶ÙGäÄ1ÌÌ.ິe£Îyò)X¬ÏpÚ]\Çùn:ÏzÍÊëÔçkÎ'ãv¿jf
-«R#])H=O*kÙBz%ìpÑFG¿¯ß?1(fælCÛÃþá=èëÇm·eß
îr|Áù¨ÿ)trüÖú?}MÆãøq,A7}ª%o4YíUøJ@\á÷ûs²Ý99Ù.§ÓïKwÃ9M[#'ÈÓÈÉÓJºL[§S%Øl´Ë&j{©íá§¶GùâÊ[²»²³¹®ìîìãÙ¯fóÙãdèvÉéOí$w"¹óQ»StPùSlé²Kóζk§Àü:`1+<̬àèÑÊûá|mÆñã
Á¶ÏÅN4}ªå3gߣVDç5+à7Û öÝ4Î2âì¥
-bºX
-Y`)<£E³¨Â§§AK¶±(µ6zpp|ñ3£Ö¡
,nOUãv-?)ECÈNÒ0DfoBgo!î®#d6Éú5ÅÕÄߨÿëSßÖ¬äVî¡VÕú¨¡Ù1&+¦¹ÀÊÀc·h,Ï©m'ùONU(n#F&Þ¦Ãvl§ÑæÐ¥´o<ôY/¬¥3Â(Rß~ø¤wT¯
-¤Wøâºô%¾Mþí~KXIÏ*IÒ.
-RØy³%Éát©Ï
-2ü¾Ä±Ë-fÏ?ÂOÁììgã9¢ØÅµj¹ÚÄ%yù0òûü°Iû à8¿Óåv:]éÇÄ©/gÈ!8|e
BpZ#¼C¶XÌf0>g~Øïs9
ôõDvaØ×¯GtÕ%#
-nDÃÞ²Zrö9èñëÄ$¾CÃôq5Â7iÍ.ì¯l?Eì<^¼¡'³
-mÛ<{á^vðzúM§hðøv5ØÊ§_xÁIìÜgÙÐ òKÈ
-þ:E´#lGvLL÷üôm%MrH*ç+ÌNz»®Øì
-àG¦]CUâÞÞ®Î/MQTsåb©ÓJ¬>[=ÓVáÏðWDHÄöçey?å½Ã{¿÷»òÛ·3ßNåNÉSyÉö\»lÏÓÖC®(y½wÿÍgµÔO³Ûó]v»ÓivVebøË3³²sTTDJËÊëLvãe4ñF£NgæEÏ!¯í<óN@ÛÉâZ$2Q²2óA"»I\KMRTá £
-ÐÙþLèoY¹Î@nËÏsnç*Êp,N {ätEÌÈ
-Õ(®oW:dNvÈÕ\µ{¾·*£F^NrËÝwiFÜÙ%dîÊÜGöðû|û2öUÜù0yØ÷pæ÷É÷}Ç3Ofþ t"ëDöÙ/¿þâ};Ö@ÅTäuvÌØÛÌ÷-¡ºE-*SºPKðà¬yîU7ªDÕ
-Ä}ZºZ*Õ¥Àc¥ d¥Ô§JoÒЧÅUnªÅð7¦Ò¦Ê(·âB¦
-ìÿ_]ÚëÛ{*ýà½Vp¶Êe¾:±¹ùJßåÒNïhúodñÐí+nóÝë{ áÝåö¨o4Ôy*mÞÕbrEswPcÍcËoÏ+Ï5ü>ønºc©Ò¡ÃAüðâ¸ÿxÓñ%ü®¦]Kö-æÊòÃÜHq«Èl+È×,iòûx[)ÇÝ%Vr>yÉ8ç<Ü$ûÇ9f[Öjéü<cM(Ëùê®xRñ»Ôвq¼]qÕ
7ÉúU}0hH[õþô`ð¼bâÜ»g'ξw®À"xoâ
-ÎÑc³ÌSX3óÑ0;ëÅê¡áöãháÔ9Pgçúó¬Ûäð´¹:˨¥§;%OI¦3KÓsÓ·Ö¸Vöö--a&î«Ù¶m>»°ÖÝ<ö¥TWãÒ¥Ë?ñ?{¶Ü_lfÇK®Âº/~vË3=UÕ9{¬Xõ?l¿¯©°8¨¥û
-5x
-éIËF¾¦e^n'cÓMO56ªÛoiN«Átù§:4·z¯XQ±ùÀË#¿
³Y*Òs9Ï*˶¼còʣűâ½ú§O¿ã0.6)ãäó5àRÔаx±
-¦Zº=Eª«+*ª«++ÍbmEyØ#d;ôó*ÊËÙ
by)FHV*eE©å<
->"~ÆìÉòUJ~ºCvÊi÷¡t!¤Ë(KÈ"RVaVwÖPÖýYº¬´¥óC`ûu°!µ¹ó(»bFíÀ¸b¢óÜYvza÷Û%gÏPu}^Qï?}ÚÑÉt+8-§ì.§¡ÓÃôhfN3)a§\;Í9%ìtz¼7èù[¿òôê¶üOaëÞèýUVÃGOENB^yÇØË1ŰýôÄò[zê&_eæÓÉâJ²àÃw_óé¾xuÓ={±áæò
-
-0ßSV`2×ä×÷ßµ:ö
Ú
ÆÅy¸t
-f!ɧãé
-¯À¾*û*"xbwgmtÞ'òï?:gíªÀpZ .·\\^'®éÆ"Gw9ö{îË¿+òÇÅçóï(±zê<#"²"<s9&» Ã~xZ-. ÏH¼3NP!äÏdá¬,£S°'tBØ.õ,E(4Ë!â0×Oìû}§}ïøt¾´ùÙáð|
-ˬÖéln·µ Í:yé¡=RèÎé/
-#Pø¯¡O
¨dõ]våø ÏÐ΢³Ô¨HÊTHÉÚSï¡ÀÔQ\îÔå¹
-GFÃø<*+R¡A_bÈ ©o.¶y@ß¼û»JMèÆùõW¾=C«{÷N§'csw¯ÄöWe69ÛJçÝQwÅN:÷pÚãsÊå9l©Ð'6V{ed¯ÌVµ·;¾}{éS/d?w*ðdJ
-XrM²)¯PªÊ-ÌkZòVKöÜ+æoÊwäÝ(Þ8 ÞøjàQ)8!>ùLî3ù¾W$åüêüùõÒÒ¢§?Ë7ü<ãÉ)$
-"ÉN+K'sP.
"Q\"Kb~D¬¬ÈTPË58å#HíO))(02@aÊss5XUs©bʤoéädRÍäJÀ^ÏÍtÄê.ù¨4Ì©Ràþùô3ìÃå
-Ë=kÛ |ÉsÌää½COÚÆàvªvÎý³úÁÞß:¾üª+ØS¸á«>Ý÷þØ©¯|'ÎEé6ý záÞ£©8ùxiۺݤÎVÐS=üTO¢Zõ8Öu6-L¦P
-d&J:ÄËAqÕkjEuõ(c:gÞÝii-J yÍ{¦ÀZ4ó:ø¬ö
-± õÅquq"«V\Dõõ¡LLH ¸¤Ä_rC40ýÄ9éGód9--ºXM×;¡zX=Åô8%ÔË%JKi¤ï+Á%iN(Ù©8N;ä(tt;îwÄ:GjC}#Jß8J^D³o/Ô·À0ɶZöøy¬av§'Þî:Pg.¼äP}õýYè©(ñÄdö®
-vHI¦)Åe³Jsç'^ÚÐU@!üStº*ׯN
-¹8¯ÜÕI
-Ö±ìÿ)ËgCþ¼ÔyòäûR
]¤lÝZ¤îTî-ÁãJåu·ÇÇO.ÇPtã$§'?LÒO²]pûtìg#àÈüyåo6ÿªË^ý®Ñdd¿&ùZë]&~YB,辤£:Û¤ý^Ó?0ñ
Y?@ Ðwgÿ
mD÷ ntLºTt3?µ
-½ÞBgA÷Kè)ô[Øÿ{ý¢{ÈÝÜÛ:>[ÿ_ÆãZÅô¶yåÙ¤µö~áZÇ6çOݬmºúA? (:xÖpq,µßèÛô3É|õ5Å8VÊJ_Ed46aI£yÂ7k´yñw4Zrñ3m@ßÄÑh#Ê&Óhòcm&ä¶ Íü9¶¢
-ºn¶éÑýH£Ð:ëi©î²¾¢ÑYlk4 ½[£9TbÛ Ñ<rÚîÑh²Ú¾£Ñzä±k´¶½ ÑFäJ4Ú5ÚíI4ÚÊìÓ¿
--¶ïÑhw
ý¨F'¡zy*õ$×"æQ¶«
Ñ:¾U£iú
-ÖSù»Ðh¹ëQFXú¯4¦¿Îh#Mw4ÒÝFèü"Tæ×S®ÑÀïY¡Ñ0¿²h4̯çuùõLh4ÌorFÃü&¿ Ñ0¿ÉÕhß»FÃü¦æk4Ìoê4æ7uJ£a~¥#6Sì
-2 ømtw ^£yXËh+ExàæQ8pÑIÔ
-<¡Ñ<O3Z`õ¿¦Ñ´þÿf´¦g¦h4¤gf1ÚMe¹L£A>j»Æÿ ¦ü·0:¥?¬Ñ4ý{Neõ¼¦Ñ´·Nù.þ`Ñ~Ê\¬ÑÀ\Íh¥i4MWÇbõ|K£i=*frYúj4Mÿ#£ó©&Ù5OÐF&ÿiøCLþF6®P½FÓôË(mUùÇ4¦Ñl^B5æ%ôjCÛÑ¢
- Ïz!ÐàÚÐ&F¯@h
-iͪíÍGð-k\¥Xê"(±ÂUPf#ô!ÆJúFÁ mà÷±>l
X?KÐJÇ nÚÿÍÚ{Q¿«.QFSªÕ?m%FE{U¾ÂP'åQp ܼTëå¨snYµd+H-ÿ´Íåd²ù¡ÒïøGÐ5FûôïÏ©Q9ý}põJZ8åée)´W8íÑ
-l\TòuÐ<m¼³çfL«mñ÷±>±Ñ¬º)öúwKkZÅîÆé¶f·@ñeýîÕ¤@e¨¢4!Õè;åèaèÞ
-ãëcýbi+«#ÆÚúp2©1F&#¬æAQÖ÷ëZ*ýA
-§þÆì6AlF2}ÀÕ¥¶@Þ
-ë§µTÛLB«ú(ÊÖ@¿Ö³Æ~ÞË4Ôv÷6&¯Am\LcÌÔ2¦Õùaíõiúâp=[Sj¯×k33 Õüa3ÃF5WRªÞ¹·Ü?Y·±µ·×Í´GYm±K¶]ÀôÇ
-û¤U}¡êYvDÞ4÷È,ܪãýSIÑÞmÑôàΩ/¡ßFçh
-9Ã9¨í:T®gõ²ÖÕñ¨ýnºÃS4¨òWWÕJ/ÄÐ?Ñ>ÙØ/9*aZÿ0¤GYÝÑÌì##LoÏä=S3ß Ûú´½bÓ»c³ôÀGýD}ê¤ku63k,QßÅó¨JKA騮ãÄõ\ ë
-ÿRog¤|q½±^ÍîQÂîÁÞ¨a
-èjGä#jV T¶§þ|å]®Ñã°©TÎBÈ9%]ÁÑRe¨,nêhíÿÚ^÷ïï¼ÈÒÞÛ¶E7ôôF¥¤¶MQiÅàÀ`¤úÁ¡ÁXÿà4´¹·@jèõü¦LZ=¸y+M ÜüÊÊÂ|ð
-¤E7K«ú7nJ«¢£ÑmѾúÁ#ýÑiet¬9Ö³¹¿7QwÕ¬IͪڥMTIáý½#£bó.f½|§«óµFÚ´Ä¥¶¾èk¤Á
-ÿppÒHtcÿh,:íú¤ÞèH¬[bPÕhÁtAÂàÆ¡MÛõôIË¢±ØæèHCt´ã
-ôFbPÙQ¨!6(E·lÝÜÎîøàÖØÐÖëÉHÍb=ëº?2¥õÆ¢½Xgú{·nÄL6ÅbCUÈØØXÁMt½["b[6G¶Äè?tÙ2ÚÕ«c :V at s>b©±èfH²"+[Úëµ5·¬Z¤åÍõ+W7J¯jl\Ѹ²Íf¶Û6õ²¡±É 4`ahdpæy;ÅÆL/^? yëhÎÐöÁ´dïà6} #ZÈjË(¤GôE½gãH4J
Q u@±M=Û¢Òàz
-)*í9¡E¥h?T6"õõÀoÞ.mÜ2Ó/ØàÆ(cÎr}Ûþõ[cP5tNý¬å&:ØÅtá~
-Öm=·ö¬ßÝÆf.Öl²Á³QÀ´E éF¢½ý
-nÝÜ«b[?(%Où`&£ý Õ£|ÓcnA±ÞØÌÓõh½ÞðáÕ².Oè±>¨êXeX³z/
+JÊçIåó+òK
-M¦5Ë ±pþüðËË¥ò²ÒÊÒJù«î.FhÝcëU[µKjþ^êg.×5,¶ýeær]3«\BåYöøgñp÷sOpßápG¹CâÃóñÅáÇ_~|qøñÅáÇ_~|qøñÅáÇ_~|qøÿôÅá¿u}Òd(ØúQN\Ó¼3¶¶önÑ«|
-ø2Å.É?;¦ÍKi.W¢t·úçr \ÿâsÞÎVÈ?+¡rQü6{Ë.>¯ç~_Á_xâ.1gÙG:ÏåúǧçòKñÏáiE¸i0î¹\Lö£·u©2rýëøÿ7æäßnçßY'êûô§KAÔ>äsÈi_Áõ!"à×kÇ!;øÝàö;G"G_aÀ¯·vsqnÃaû'r]dçá>Ñ~\0wü]xÒ2p2ódèdädËÉu'ÿj<|2ã¤x2|R>¹øäS'Çqâ0¾PöBëÉËN®:Ùv²ß`_TÊ
Æ.f×" Â:¤
-tªkCCàkC
àpà9»Áíw?¸8צX͵¤k!-ï,Z¯×n¸ãàt¨ìB»ÁÈÛÅb'ÀÇ£Ùv#È>µëÒRwåÔj¹ÝZª\ß]ðÝIv>ñeàÆqÇá!ñ(nÇ¿WrħZÄ¥!q~pHÌx0Â0AFSétEId5IÙú¸ùÌOSÒzm¯öÚ~ÜkûA¯íö^[[¯mu¯mU¯-·×6¯TÒÖÚÞ\k»lyvbth-mwàvزbþRæÏg~&óEÜ~ØLãøöÃOâuh19HÿUu=ËÇ]üاä:ÿF±ÅäaQ° ¬Aø¸¸¦ÄTb*ßÿÑäöã'2Ãþ¯ö_eØ_iØ_nØ_`Ø?ϰ?ǰ?Û°?˰_2¸N£`L2Zf£Ñ¨7òFbDF÷øÔiE¦ïæºõ
-ô<ûG
--ÄþCöj4ÁF¢¸[F®ÃËâ'zѲõRü½ÕÁql¾ì¸.XãÎehY[7^./7LWÈËâ¦Ö+ÛaüÅÉÍãµµã)ôétúÏ
¹Êùôíé4üÔ§oïè@ÉÛj½µÎGeSÃxÝ?ëG¥Þ9?1]Öºý8I*ÈFÄÿ lãñ;q¥A\bÄXhUj5ÚÏJíg¥ö³Rûãýß1ì_iؿİ¡aaÿìR^ü®e«Ûãú;âEòw,Y-ÑøÕ
-Gut´%Mhqã*ÞÔÐѱ¦ñ5*_ÆgVÈÊGÖÙ|(Ò¢
-Ê`õe\Àç'm/DÏÏøüñj
-46
-¡VÆÓêASy³x§Qñ§/âñÐò̹hÝ¥8,Ëýyí¨®£~&C5E¶{Ò¡SÜ[È"wÄÍÁº¸%Xjk½ìßHÓ[ãzH2£ÜÞéÇx¿Í¸lÓ²òå/¢Y°hVýwðµ,ïÎôcøÛZ
-ý
-êßhlëhl:ù$Ó{"Õ£hCêh>H
,Vß~ö.cè«×ãf
-endstream
-endobj
-
-529 0 obj
-13980
-endobj
-
-530 0 obj
-<</Type/FontDescriptor/FontName/RAAAAA+CourierNewPS-ItalicMT
-/Flags 69
-/FontBBox[-67 -273 799 1000]/ItalicAngle -30
-/Ascent 832
-/Descent -300
-/CapHeight 1000
-/StemV 80
-/FontFile2 528 0 R>>
-endobj
-
-531 0 obj
-<</Length 302/Filter/FlateDecode>>
-stream
-x]Mo0ïù9v@K?$ÔÑ"qØÆö 1]¤¢ø÷ãnv
-K3®´ô÷(þåØYo»ÌÆÆSQ°ä-Ôfï¾:©©¼8N+_}TmÛµ_0ñ\°²ä
-Ð穳ÏÝItÊÚ/ë`ù¼/xãFÙv\g®À
-!J^ÔuÉÀ¨µô@~Ò4H
ØnËÀq¼!Þ!oSä<r5;ÊWÈ{ÊÇ>âùHÈ'â
-ò#ñ¹"¾ ÏÈêõ5å÷SAyLóçò}þC|øý
¸¼ÑÏj¹¼9Ö÷Ô~om'®ø}Ðú_
-endstream
-endobj
-
-532 0 obj
-<</Type/Font/Subtype/TrueType/BaseFont/RAAAAA+CourierNewPS-ItalicMT
-/FirstChar 0
-/LastChar 18
-/Widths[600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600
-600 600 600 ]
-/FontDescriptor 530 0 R
-/ToUnicode 531 0 R
->>
-endobj
-
-533 0 obj
-<</Length 534 0 R/Filter/FlateDecode/Length1 39048>>
-stream
-xì½y|TÕù8|νwöÉÌ5³dfî¬If2I2B!EAMI ¢@\J¨¶P÷¥vqkmA1¨-´Z¿m-ÕÖÝV¡-U¬R¨_°_+ysî, mß÷}ÿxßî9ÏÙÏy¶óç6u#=B,Wëìÿç;¯|ú5Bؼjó ¾êÄ·
-¨|P~¤¿Õè .4ùܾárxv øz줹·¢G ¼]n¼Ñ6à¢^E¥ÿ¡ÐðùRfôÌýÍB¯ %´~ äÝ éçñÕñ!äÂèã>Äfö´oÃÿÍ®þï²Ìþ\3Z®CßPå~"HDëÐUèëèØ¹õ¹·Ùaì¦Ü¹_ N(}â²mÜÕ¹û åb´ÝÀå\÷˱?g¯Éõå~¼r#zë° (¢¹QªAt zQZ=¸Ò±\öÜãÐ5 at OÛ`Ô¯£¡Ñßñlü
-Q ,Îùr/æÞF*4ÚÞYøð8çà0
ìKì?9Ð\h} êFkP@ÁçQåqÂi<Í´370·3ϱ·rWs_ÊlCÏ
-g`}_aÎc6³)¶½½ÝÍ>À¾Ê]Èý(Êþ-w]îÛ¹gs¯ç~;ýP
-º¸í»èAà¸' ·Cx.>/ÂÐãõøFü~ÄpÌ%ÌlÝÀ^Á^ÉÞÎâÂÜÜkÍÙöìÙ}¹dn#ÌøÜ_a®FäDÓPÌôK¨8£mFïf~ý|VðCó)ôàå0úÂ\
-Øð©Á3aUËð ¾ß¿ÿßÇÿ`0Ì$ÆT35@Ïo3Ï3¯0d°²Ï²¯°¯pvn·¸ð!îG
-¤0)g¨ýÙ[§»kì,-ͶçT9w®(77÷Xî¹Ü[¹¿ä
-¨ør!ÈÔUh7pÍ(PêEàÀÖAï)ßL8#x¾oL_¸þþ.|ÎyÂçYøÀ?Ç/ößÀñ_ðg0 ñ%ÌjæJæaæÇÌsLÕ±n6ø¬g»§W³;Øa
-¿cÿÎþ3p.ÂM纹[¸p?åÞâ>SÌU,PlQ7+wÉãàdmôÏàå ÿzÀøÌL$âàÿñ?Ð/ð,ô<\~#|¶££ G2ø=à¤ïàiøümeº¡ît?ú6û(~¹ÝÒ_>3kq9¾)møufú3pÆA¿3s>v ìAÜþ¿ÃZ:Zjð
-x6êeJQ
-âÀað§9¬íYCt/w;óWæv|Íeî£s¾w¢ûq)ðÛA|1z9ÄUs?.RêÚ%Þ
-¼ù
-C1/
-ôGt{³Áqó(rLv%z3w>úh,}ÍC¿Ç7ÞÞÆvto®7n<[ó¼EK
-/hãN¦ýTu¿ò]e½²BW(ºói
-E©Â¯p*
--w{{û ÷=î+ »åÓ³ïþ|½½íc°¶xÒÃŗÌß?0o2GmxfùûÜ/rwçÚr3rÓrl6{*û\öGÙ{³·g¿Êög;Æ?ýÎéWN?~úüÉØ ¿~ýöM¹rçå>y³ænÍÍȾwÁÃhäë× Woº|p»4ÈÌÃ<Ê¢Sè`èu(ßÛ:ÐÊ%¨èɼFæÆnеAZaÈ
-}<N
å!æ%,d¿Aˬýi>ú3þ
-'Ðc÷Àh+Q÷)A§ßd?[.Xºdñ¢óÛZ¶4gfΨ^W[3-ªª¬H&Êãe±hiIq$
-üÏë)r»B»Íj1x£¡@¯ÓjÔ*¥cÊs:áHÇ0 Î'é`'dtNÊè kÎÔ:ÃB&L)BÍÕgÔ¥âxMÌõ¨>^&4
á³Â(¾èüe
-0
Mu3H]
-;³ÉÙpSg×pÛùËf»ýþåñ²aܸ*¸rg
-c´
-j¤Ã+Ut¡,Ý$<^v`çÍ£<ZÙÓw»:/Y6Ìv.'cb0îìáÂ+8&й¹qÙÉ¥nvg£G É;wÃ÷¿lr©ËCÐ ÏéØ9¾`Ñé¥Hê6K
aMpVpíÎK; ®ÃhÑVÿË%îËF®&açeAÿpÆ\Þ9»èq+Ú¹hë§(8§ÄËçM67e at _0è/£N ùÆÑÉÍÀÃÂ*f²,©!Aw
-Ú¹ªªÁßr»=ÃÆ|É'ía>(ì<
ìÁcMÍésadô#0òåyx8F _¨0Ç4meûy"@j[Í×%
-xÉxeX¦æÂðOI9¹kT¥V¤9X3ÌwÌÂåZ¿ÿ?l4;AZÑh¢<ÍáºØÔôô)é)ÓÓïdaÂ\¿ä¢;µS§¾06¬kÂÀÃáa
-á»aiL6tAÇC`~é²WÝþåÂ2axI4K½ãDâDýpû°.üJBíËHÃÚ©-<\v`¾þt}íãð RM&Ãi¨óáa
íá§ÌÀDÇ6$@gÍL¯ÿ÷s0Ò
áagØøzõi$Ï
êa,!¿mY»s9<òO^ºlXIÑë'jTÆÁÓR·K at n[cð¤tùvI2ýR³IÐÁ|óôxY D!!CRè
-ê #²±Pwl%;wÎ
-svvììÍ
-
-|pç>ÖÎÚwö7uä
t4÷ôMîá97/¾\ëâ`p [Á¬BÓE¯RuòÜ i,˸4*îFNõü+±
üÉúcõùOêðcõ(S?VO¤ßä7
!ÀC§öÀiQ>Cw
-XpU»¯p¹NùÌ<Ê\(:Mø$ÿ?ÎçxÕ}<æéUWQ|mh'«¯¯ø?¨ÛÐÞ¾à .s,9y?ÆÄ×Çb±dãVÑ[*z¥@$ê-ö᪠%¾§ü>b1UcÛ·oGÍK¶|²"IF*\E8°ÅPL.5»âárw,¨(+r·K*'b1ÐFûP2w`Ö,5ÆL\T9 â"$ËI£ËÛq;ÚÐ6UUA NUWU2`«®®ªD6«J 98*¥Íj¯ª¬Æk¯lÉdZ²··dÄæ`À'æÝsþïpÉc·<ÕzcýÕw_4ã±í_ùÑìpmy¼¶6^^Ë~@s*Ù?¾xíúrüµØuË7¶6/º÷PýÞÜ!înöf8 *´%£!Ð\mð (5Ô¾9ß45*Éõvg Þ0zE°ú~<¥Ä@hm¢U´fÑ$±HôF=7fÞ i½Í~o©S©ÒúGñ#¢VsÊë×ëÔé¨1;1vÅüÏ0äBnàÉ4dÆ>36;£k(Ó´o òõåÂ?<ÈÚ±À0õæZÊ+@v`D`ZI^ISÃD?-æ\
-33-Ï-»^÷m1DLÃÌ]=-dok¨Çk%%KçW÷Ä}«aF
¿C`âßw(L(¾\¬P0VÏîU¿ ~_ýO
-çcx½/¢ËúDH|ù0zZyZÈ
-B"
-Dh
È.ØöììÇí9»ê>;¶ç«Ù1Yzc²ø!bí¨ÜeLµLæÚYj]¥QÁ¯Ðø>.Õ@ (>Uä%v\^#Å:}D_äuá ÒLW>bØ*`r/%òGÅd!Cܶà2Räe®kþ½¯áì{ï/ºkî Écl¹ÿ[¾0eSÙ·_þ¯ì©hi%!4»
§ïÙ6<|Õ¯äl;ÉϺ;ÐEÝ$Õ;H¯qÑYWãmv at e-¢ÓeâE³.ÃV}(Ðþ~ãξ' A,FpO4¥ÄòçÒ<ÌÁOÈºÆæðÅLÂôÙ³T/ NûC°ù°¡çö!ªOW0!T·Ð¦Ábh`&|âSwªA#áäµrãÇ|.¨aZy¹±ÐºÀPa1¯,ÐkÏ@®1Ì
#øràÃh³ Ö¤µÃÊZ<"8y§FfCìX{^ü±lÁô¹2|ó·ÞÊ^9ÖÇ
-þâ£Ü»ÜM°GÇÐqqÁ[¦W¬oÞ*þÀüõ½ÐÅY?jÕVM©6wÖ»m«K>Ó+uzln6/(^n~ÇúVèCë!ËY G
-¥Åé¶ëx
-ïÆîQì"®(±û缿T¥Å-¢QÚýr¡ ¶Ë~ïa/Óæ}ÙËx]qds£
-dCÃÕ
â¨Ð¼
-xñ.Àw³¢[©´+ïô°4|¨µL^UøÆ8ÑW2±xyybêÛZÞU¡QU$íRÏçÜ= r_G¼Í^²mð)7hÔ´ÁóFm¡XóIµFô¤5Tf æ1Ía
-kÔ`kùïÊËØÀ gõÔM¬nbã²F02ìeÔ¨
-¡Äæ^¶¨µ°"ÓòAK&éh%%ìÍMÉänÉ^3Îô×4úJ¦-Ï^côÖL¶? Ëm°Ë=Íý¡GGjØÈGD_ØüpØ£ÔRøMº~'v:ñÒRܯ?¬gôtרKë]åá¤Ø"¯
-Y,·4÷[¬'¬Z2IÆUauÆ
-,òVb½d'.äÿk7Õ&í(³`ìÁX
-Ì¿ýÎ@2+8B%ë9ýðÝ~¼Ð[Zã-Éþj×'Ù·pæå«[5/!ü9qWÏÚ»øKm++¬ue%EáFlñMl\VղÍË.¼pà´JÎy¥xõSÆw)±´
]i-ßÂ3ñÈu¢^,PL¼snÐOÙmuðèÇw]nÂ>baL2ÂÇC}ÚlâIl?2\d&{){#4Þku¦p©A7=¢ß
-C® ^
-uø=ÈܯB]ñ²2Þt6GcÈ¡t(]
-Ó¶h,yJ1ÿ*ê a¿+
-¢j\pñ¶ËõY÷>þ>þ1~?Ï!¾
-¢¡Dû
- åGøúcþ´/8rÙêùc
-þKEÚóàñQêÚñ¹h&«m»l»d\wO!àJ®üåþ¥25¥È¶«àzY¦RráõûjÊÓUÎñ
²&_¶±EJÑ4<CLG8YÕöê`u&eÊfÄ×®2hM¸Sýò«Ê#ÊOªÕ#Vo³ÉN |}).NKéÍZ¢^PÐÚ6-#j´Ö¿¢·á²²R+!µÛÌû½ªRíP
-§ü®
-Ç@S%
-,¸*©îz4æÝrl£ñ1¯k¥YËDÈ41779éÎáéTÄ2¢Õ²97×YÙ;RHOé¬oÁÓç=ð¬:Ú~EkßÅ_¯öÖZCµç}KÜÿtV¿ríÕÕ¸+/ly¦9YZúØ¥Ûß±V×
-¦»"
¼ÍùÀ®ìEÊ}Å%³¿®RºõýÆÞø½FY3"è´ê©6<!g,if ò#qÑGå¸P~,åO4xy&óÃÞf&·PÀĤ´\3ÌÁÌnW%óó ³Ù¤Å
-#ô{ÿà¶]H¤k¬ÝåSû1Äú<&Y æÚêòâjþypÈö(Ù1áÊy
-ÿ`>U¼à|ÁÍYØÞs~èæÞv¼^ôó¾ò=í̪.Ç¥E(Ò<¨û~ÁÃFU³ZÙ½Ìp©¹Ë®´úõ*-OÄStqèæ0G!³ô)l©ýjV½r< ßDPuî@6@ëÈ
-·c+1aBT¦ª*9»*5qd«æ®¼&;öÕsèúr7ÝÙkÎíüÖMO?{ãÎgñß¹fû»[¯<vÃM^½jqÿȦüÌü| ûµ NmPØØÌë|6ÀG]Âèï#¿R¯iL82
-Ä¥Ú
-rVþ¤=o{¯ød×#Xl0Ía*6@2|8bä¸<S¥Q>ª+ r¥z_ë´SýVßjl Âo
RýóüVU=y4-ó¹eß$sî^ô~ö=\òZÛ=ó©Jn«¯'ïÜ©,bݽ#9â/쵺¨Z\?ù©Öi§Ù^¼>yGò{åO?WþºæUíëïiÞ¯8©ÿ$JG¥PiTÕ%ÉêÄÜÒ9 uв_góZdÄêà44³tR&P0TNÌIÌÝQqgŧ(ÿ'¨5+t¬^Ð'uV½Çásºæºët7%§û}Âð^íë>M°B!N
-Ùªr½q1UÈo×;L¹
-
à¥ózúªªd[E¥ÉLU9çµîRNÖ§FÕ±Ç(ÛÐ~$Fy,6°¡=sl¡<Q3Û\£ØÔ¿äè^M´ÚL# æ ³I@ÔüCr,ȱ_öLR´P@Ô%ª°ä
-[>4¸»,õtI®BÃ9Ù;Eü\eñD2YqÒnåO×ä dü~a«`ø¹&Ì$7ò_IÉÄk¢`yu«ËÎ-«ù©c+ªÀ¾
-\á¬êØ",¹a²W¼ ½Zt§¢¾z;qjMq_ÃU8îÅ¿U¼¦ñÒ×-t$g¶ü6xçPâÙ=Ëó
-ÇBª¦ìüHxÞ½³Û¾ZÉÅc¼±U¥e&åÉ>p;
-´ø-Xö§âe»Í»m1²Ê°ñ±öð»¬o1oß°½þ+sÔü¾í½0¾¹Ãr·õîð¥ùùízÙü²í8:l>lË¡æm:4T·"
v at C`飡¢4r¥¢+mÇFÜ(sW¤Ìrl#RQGÓ4¦i§¯¸jÌCòP*âͼmj3·ÙîCdÞ(×2ÕáffNøÓbûW,7[_¿b~i~Þòkë¶D>Å9Ñ'ö2¦°=2WEZðìÈx6¼Y^¶"µ
-¦
-Eiâxª(m÷:ëR`áýiÄa!ÔäÀõÌL`ð>0ÎwùKô¡ð~æ{g¿6Ë6y1ð½ñF1@Ä[î
-5}¬µÙ6xP$2ʼ%jlVHZY¡
f¬f»Úl
K¬kG,Sl1cÖÌÈÆF¬ÈÂ[
ÑXGñ¥"ïõz<ZF kÁy·E¿Fu?5«£HE:beï%B%Å¿ÙoD`h7%hã#È!
-ù#4¿ô-Õ»&â§ÑòØ«ß67±½!Hå
-ð¼þ£¡Ýa(ÌX¦u4÷+0²¼K5zW4Ä¡,
-4°aEÍL ÃPæ2£Á1Ë1MÃÌrlíx³ÛäC£Y)³Çåþâ
R¶³Óú§Tß"§a®f9&é]-I>®;s+·X&·%W|N°Xª,ùÓdp©X8<|í§ÖÔfZö·dBîÖ
ÛöµçHfZ~ÚVýðOðÙëýlm(rÁ}/ÈîÁM²ú(åÆ¿7»û)û}FxXk(f*¾Pï7WgG}£þ_ø~áÿ´øÓ
-ïö
w"|þ¤ï3ÿ??ªÐ¹"ÿ¸Üî¨ ·;
-
-ùP¹¿Ôã¾Ävt²Â]TáN¹dQ$ó÷1äRC¨¤8\T ,¿Ë1ÉNçhU9þLæôd£z²-ÍÎ;A-çÝ|
-À>wýÆ[ß1îCO_0*9¯Õ»Ãpῼ.7òwxnó~Ï»×ó"zÁóWk¾aÁXal0.2öC?4GÇ 1mܶo1þ)ý·èÒe|ÄSoc¼Ðx¡÷2ÔcXã½]ax=büýÕø)2¹y7ããlïè5¯Æ,h ôBA°$¬ &aÊêÊX2ÖÕÒjU·ZͶ¦æÖ6µÑh
-èä$ñ»{¡K£8iGÞÀf8ƶ²&ï$X6Wó~j|2ûÍÊT¦åÐ,³?>1ôËO3ÕéltÙ]²
-DãüZÅ*kJÊ©k*[ß\S°©^)m0 o¥XàbûPr£é{Õq¤E~L´Ûq»1nÓ.gvm®"!êQ¢~ècþrJÔú'yÎìç=}}ÕÑKÂI0ó¼<ûår2×òÄ`5óû÷R#%7;í#º
-Ó#ð#L
úتr7îà éu.ZÇN~rrì|4àÉIìg¥[Z«~[Pà.
-n
-`¬bäõP!¾
-á¯2QÉT2ÛEm©1sQieb¿8$î9Ñ5Ï [
¿¹Zô^h½Û
-ÐöIbÙ2èf9ص5ÐØÁ{/sÜ{ÂËxgª2©|IÉ*ÿ1÷ûpRýz8
-M«íÔÈ\«afË·ÖÝuñå¥äd/_Þ
-½"ú/}£5ÓzpWqWé¥Ó®Ä[lÅOÛçÜëÑ%Ïf3ÄKqÕþeÜÅ1
-eFehÔjXaè3l3(
-ATÌ5{®ÚÂ@ª9húÍ)_'GñÑ=5ë¤TÉ^"â.jç%×2àèùÃÆ¶b ,eu'â FiWE\e(²¦
-£ÈpG½ÒÅòíÚèöí@8ÂWOÆ{±x¥M¾4qAHE+0 at CsÜzØw|:zôÖKîÙüÆþÖò*,ѱý{oÙüàíX}Ûò{¹\®-?,f¢
ñê¶'®ºî¶|æ´`&çTϯÇìÝ7Ýmw¬çÞEHÙÑ,vh?dÄ*àùAÙ3}ÞgÊz^,SÉ
Ç=® }É-úmÁ¹Ï×W¾Í·|oWù}¾ûÊùk+Ôje©1¤jHm
-
-ÉeÈ 3<<©kTä÷o÷sê¥z¤¨7+ò_Ë*?-UÜ8³DòÍúérî·Ù¸À{Ä"o<ƪY.¿6êç¶hU³éT*¶iFrq©Ð.V¦éÅNw$m½u©üO®ÃÞo²ï¶sfû(>àKúyÛë#÷ɽ¦½Åæt@¯«"éí r(r<pþÈPdw6Ò&= x99ÔóÓéûHú¾éØ8ýþé¦~bºâ%
-°´°ì¢xfº8#.6ÌJMjмù
-í±ùíé§ïc²¨6åÔËÿ (véøüdø)Éä÷Ø=Ò
-Ü0BTwD¯ÁÅ×AúOH;i@ÑU-ì¤"=[ÛÉ
-íd
²å@¨áƯtKô_[Û4¦Ft_ÓpIçìåþ#ÇzVuAQXvÕ<^µÊ©+ô`Úåa.¦g&zÞml¥Áe= ÑhYA}=k)O.¹]EÎëö½ò±J6¯ðä÷op¬¯IÞÒIÐLÒ\ÕôDR¾£&ûì¢ç§ãË¢éuµs¿$ÎÙò\ ðÓCs*Ä|MMºVW.++ÍhûJ6M.1;!³³)»JJã,½¼î§åN Äýû1â'ö!' d:1÷ÈëJ³N6¢Î4ªsrndu2ÕÚè,Çè"G{tµ£'z¨D3~
×Èå\ÍÿòCIi?ÅeYd¹5PÙV~þ½ßïOæsé!Á$ZDhTL|ÓrÒ]YFÁ\2¿«Óépàh©sl3óêÒh¬¿ÑܨèªK;QGª0òûÒhT£Q«] Z|`°)S£Ì¢PZÚQÒ_2TÂÓëS%®2$9OØvƤp!VT¥||gxÑâHí¢oÑÄM+
-ÍZOÿé¡@My¼î´ P·øårà .úÅè¢_apî`éξÓmzEH
-vüAPCÑ8G´
-×××Ëä;ûµtç*mR$ Íüj'¥%ÕïÊpzÿüøéwÇï¢~F)¸g7àg}Àz¬¨äD÷e·ãÛ÷hî.¸ÇxåNÛNõ|¦IѤ¯og*h.Ö«gula1«vÙär[©ÙëSµªV1®éåcµòïÙçT"lÖZC!lç
-y[ÌÕe3Çö
3áÖðð}áCaI2_3eº`Ñ©E¾¢D+ÂE3ÌkM¿Õâõ¢¶\t¦ËãÄñAå`"Bu²Z¬n«î¨V«Gqá^
-¢zËjIï73»ÌûÍL+ùþдE×RÂä¿5²¯Îj²WçWÁ~^=
-°z(¿/o'ãcp9Ò¾ø9áÈJ Ä(¿mXvnåQ$ámÒ&ZOïYyyIßªÒ Pî4
-ÆúVW8:ÃÁÜê´¸CÑzî^æmõwJ±é7ÌñY|³2ßE,rz&KÜÐÝd©GÈȨ+í笧fá£ÏÝÃ:ô2СE(þ(ºöù©ÿe½Àañ
-l=¶éõÞfoYa´LŪCDQCÈ þ
-åÃÄvQNºÑl²k8eë(,[JÉnYÿ5ÿó6g[ONØ0<³o^MíL9Õ4aíE+Àb¨[@C¬ ÿ¿Q±&Fü-³#ç´y¦X¨ÌÁ&® ¿Daæ2ªÂ¦Ø;²9Z^K¾m~0÷eo.DiQÏî×(mûZ^õ£Ô¬y,ä©B~Ê9½+8IÒ-¥ç¥É,+ËÿXq^`@踧 üÃ=ÿPaÓhnh¯!2¤1_ÌRd"YÉÛÊ !ê%ðá)'Ï!ô{QÖ**Ô
-n U>/EsCýS,f·Ls³d¢zaâçøö3oNbBéëôKyb<[¹
8ÿk5ZM>?ùä{ËäûÊQbhé!L:
-! /ìÔÿ6ùl±ä+¯åLZ>oÇßÒÔÕé©ÜÉMÏ?°â¡ëZfÎOÎK»{ç}¹Ä9qb=óì'_ùêf¦©.^^ ¯=rÉWg7Ng.?Hå¿
-:`ø¦ýáÈÁ;1JÊR£¹£{ëÒº4{Å{Á΢þø+Qùf%«(Ô9m
n'ç*´9£
a'gN%u)D¤H^$ )º 0"ì0&yà/;T»Ð®äM7UÞîKÞ]qwåÐV<Z¹íOvpðÝV^n¸§ò»ß¯|½âJí«
püÞùvÅ¡JŤóþC¿x#ø'U
-áÎÉïòÊÉýg¾}t_Xx797Ï`äjÖø·É¹¸\A,©$·
-õ²9ÈWÕædD9ü
-¤"¾BRV² @$pȯ(iGOô¤JÎL.à!Z£ÀH
-¤ZþgZä0źÚXûYìoÁ
Ò[MÓÄIêi?âBlþsK¦&MLìÇÍLóüGØäØ7'ö9EMÔÅØÌ¥ 3¢5Óïæ}w̪±`']ä[ A(ËÅÂ;"ÎÇEÒÉ?hÒ`"oÆIé$ªøOÝÄïm
-ezY¬¸¸¿8
-<BQ²H,j+ê(ê/*Ú]tfwÑ"¦ÈQ¦Ê?o"òm|/]ä½×îðe£¬lÏyü)ùÚL»ü1ò¯Ë#_{p|;[þý
-ò['®R¯Çç<¬²ÔUÂa?%îhG<¡ñÍ`;¹
->ù¡¼½ìge¯qóÜsÊ^S¼¦}Kÿù5ëkηKÞNþÓ¨o¼ÈxñEãÏ˾¶LÚ#fèÃLºv47,ÖB¬^V!µwî1\nP¬õÝåclØéqú^ÁoÞõ¼ë{¥Vý·êVèvéÓí×)t:U)3m
©D",X´´Y,÷[-
-
/¡ ´ø/á¸Çè3ðµ^OÜgÀohiWªÝ}ä¡9ïÚ¸ÇC²y°d?Ê×Zy¾xW]¨ïíóy+ÃÊ_~οûeü´á$2öY\}KìñGñÏöðOÄÿÚðÿ|ìŸÞóÆý±òxU¬>Þ;/~áZþúØÎ¸þÃEü±â«
-ò«cÆï6ÜÉk
-ÞsÇ[sxe\=?OÎMóê:xÓ¼0?
-3ä9Wu¬r~Úëq®WWsôÌ>?ÍHªÃ<7Ì GYâ¯0§8é¶¶;ÅqÓUCmé]®û\¹ö»^r)\öXUÂT
-ê*Ѿ¾¼;0°aù^çØ_þBô¨¾~¢<Ö¿ÁH#üá*G"f¢í«d
-'j4òïKÓvÊGÆîüã¦güô2æ¢5¹ãÈûmGCh
-J*¢¶z\s\ûwÝv}¯¡Òð?&¹Ð<dmýõ»Ïþ¶ãMç ×ÏÜ¢<<<ôÞâæ»\¸-ðdpgXOWCó@?ñpê½!Õ.K#ÔIî
-t;Àä/KC®ÜNS,m¥ÆVfQ.a6ù!V ¾_(GeX
ÄïʰEkeXï˰ñ2/ȰõrGdXV+Úd¸@ùb¯Ð%úKÇi³Mÿc¤+haqm2Ì¢Ê%2Ì!¾àzV }Á2¬DïȰ
--.xRÕÈbP˰nÖb£¡Tu¨ÚX3þ+åUÆõ2\À^dü¶P¹ù3 æÖ
-RæPÄ2Â
-È×ZÚeCË
-+!_i¹Q9äµì¢°ÐÅòCZX¤°òõ×dC!Ë)¬!ôµ*dèkceú±9eèkóË0ôi»N¾¶dèkû±}ma ¯ýFúÚa ¯ýEú:>a ¯s©}ÏÈ0ÐW裰àJxQWÂ[Öß¹r2Ì¡¨ßDa=YºÃüý6Î÷¯aø7R'ýøïaÒOÁ¹ÿ
-ûß¡°ÌÇÿÃ|
-Û ßHÈ0ÊÒ¸vR?Ð'äþÕvÒúßaRÿ)
-» þ,ÃÀcöù2ó Ú(L~_]¬a¨Aááà
-^Fá(ÁOp~wR8N4Að)æò°âùNaº®à2Lò?%°ÖùdòCq
-SºË0º-A[Q?êF«Q'Z±
-RôpêtÒ^Ij#Z!sp;ÖÓu·ùv¬-S¤ºÝFYZAF×[(Ü
-¹s <æ7AÎb /ÿ£ >hîT´ô!RßC¹{ð¬ /é
~ª¹úeyÞ:®7þ3é ^¬7Q.ÊËÐVÕüdÅ'éM´ÄGùùH|µÖfB¤½òD7Ý%ºiÞÚK÷8g^.¶Ê7Óz}0¼Êóö¹1×ß>ê¦2Ð#ÏlrcÍ_E5ÔVÊï¯>y]}TcLô²EîóóÆëõ-áÃT¦¤Y¯)³^îùó(TLW5SÞ9+ιg\³n¦²·Êk¯í´·Ás]NõÇzZ#íiëY´è4u'4M'Q?ÅlÕ«þ#2/®§Za=¤&Æ%»aÅ´¤/$}20Én(¯=0o¥õ
-þ[LÙõàÎè/¯ß6NÑZr¢f¼ëºö».G×dî&;<á ÿTõËüçÒ3yè_h?éÚϦÁ0éäwÓ¾ó«ØG¨ÞL3ð=Ñ3Y_ݺä½b3Õ»[&éÿúùþ$$²ºY¦Æåû;¶¤R0ø¹r§Xç¸^ý4Û ,=Â*ÙÆX)§&Ï(o÷ÂÞïa)èbGı?kP
-MS°Rq°Sð$9).JªÒ
-(IÉð4TiUÒ`aôþ¶×ýïwÆ|YâìïK¶öw¯î\Õ-<",YÛ-,è[ß7YBcß@ß@ç`Oßz¡¿wU¹0»s°óßTJÎÅ}½HÎF¡y=´«¨MÆ!¨,z{
E=kÖnuoìØÜÝÕØ·i §{@XؽeV_oW¾çºIù)¨ÛÜ=°SY^S),èY5з±oõ`é/TO.¢¶ÅqÚý9ëûÂήîu }«ÿå¢î5=»º»õªîÁN÷mZ?]m,o«ï[3ÐÙ¿vë¼¾-]ÂüîÁÁÞîÙÝ{Ö¬æ
NTÝ2Ð
-ï«ûæYÊüJ¶@µn¡k sËzaåV¡¡k §s½0g
-äyÓÊ×ömêí©ØÜ
-ðÀÙË'õÝ= ÿ$zãkiÁ
-#'åXaÄòÊʳ~f)N«ø÷4ÍìhбE0Ï"}1ëFoÀÃ@¡{¤¢6sÌ+ç/®l0±
L/ËÆó±VK!¶È±oÄ;Ë·70Ë
-øHØÖªô_= FtÖzô0¬8B¡>Òézà#ýÙ,2¿ UÝ÷4ótù¿Z9¿Ø¦®;{ä?.æh("×7DÂa']Û. v»âJ×±CÀ&Ä?ià
-T&/Lë¦÷a<ì%a«*ªJèÚ&
-ÁÛõaÔnN÷´M¼lSÚ²ïùÅ0Äîóýãßùùû9×öO²¥\ßíæ!Ûm¾×Ìgî5ñYß=å÷8¿ÑrÃäVK´%ß"[.¶4[fÔÌÒ¼h6GyÔçr××jµ:B¡ds°-hÛÁÎ`²%ß{Ãç_3Í¥á´føñ¯»cgÄã4A¬ÐlÑ£ÙMªÖ¡ûÁGÓ¿¾áúiË¿âDñ» ÜEõ]æãwùÊùXÑ} cÒPÿÿj®ð/XºùøüËâ×^^eõþÎ÷ÐýÏpû-nwp»Û-<¡«Hwè¬ncï·ÙäcQäÐq¨ÝñìÜÁ¹ÍñÏb*@ºþ»Ý|X»ÝAV{å
-v¿ÃÎò*HçùÛÐè,t
-tOA§ iè4eC' P2ÐÐ[¤Ìaèt:£H C!!Á`H0$1$ $C!ÁÄ`H0$`oCg ³Ð9ÊOA§ iè4eC' P2ÐÐ[¤ÌaètÒþù;ðwàïÀß!þüø;äïÀß¿üø;ðwàïpYmrz
-þ
-þ
-þüüüüù+ø+ø+ø+òWðWðWðWäOàô to®óü 4¡C´
-Ðh2{¡Qh´2ÃPÊA#É@CÐnh½ôì(8EâHp$8I G##ÁàHp$q$8 $G#ÁÄÉç³°t³Æ¡"tÖóP:
-íöSfÊB9h2h¨wq7¤I.H.HDrArArArääääÉÉÉÉ%K$$gäã'
-Çì 4¡C´
-Ðh2{¡Qh´2ÃPÊA#É@CÐnh½ï&ØVb0A
-CC¡ÀP`(b(0
-EC¡¡ÀP`(0fðwø9ãtÉtË}tÍeôÆzd½2Fg$Ñ!ýèntLúbú£}Ò~Ù®hGwØèº¥OÀó<ìAo»¾Ý_Æç°×Yìy{ÆØi?vÜwaÛ°ÏNì·ûÞݵc6vâØ¶Kß[ïB'¡ÐÐw¡ºñBì|2z
-s8ÉGuhÎ(êÐÑFÛ¬ëØæÿªkç»t]ëÚ©®ýºjÒNÄ«¶ý°&I5É'k欣¹Fo±Æ~¬fívfS½vûS5íÏPÓ±dÍRíÓQìûKÆ<4Tuçt¢NÂ"Tð~<}¸Õ
æÙNCé¥çÛR;xXuC
qog8ªN?½îMëåÁp¼Ê¦CÙêt¬¯
-ÆáñܧîDtò Ü»qÕèÄfÚ,ªYîäËzÙÕ¬IÍÔ,7æ+qDw_:[õ³¾\ÿèâø)_±ïúÂF;×·>x|µÀN»µ¼ñZ3®°·2Üç ½´w[¯^Bãë¥ç^ÕXj-ï´7^3®4H¯÷1´ÀSG"þÿ¿MÑQzãY*ÙÃõ©ÖÄøãÔÔ©H SpƬÔHL"ôûr+
ÎBÒWh+ؼTÊéäu|«Òßzô÷+9c=ú1ÄØ8à²8aÚNÿb"ÌKÆâ ·«kùÊ0É¥©S(DXòx¸@Uÿ
-\Î
-endstream
-endobj
-
-534 0 obj
-21438
-endobj
-
-535 0 obj
-<</Type/FontDescriptor/FontName/QAAAAA+CourierNewPS-BoldMT
-/Flags 5
-/FontBBox[-46 -710 700 1221]/ItalicAngle 0
-/Ascent 832
-/Descent -300
-/CapHeight 1221
-/StemV 80
-/FontFile2 533 0 R>>
-endobj
-
-536 0 obj
-<</Length 408/Filter/FlateDecode>>
-stream
-x]Ánê0E÷ù
-/ÛExâ*E(Eß«íd °àïë¶Ò[Û3£cë®wï§ô5í'sì}ø2\CËæÀ§Þ'L×·Ó¼Òo{nÆ$½ûÛeâóΪJÒñì2
¹[uÃïôoè8ôþdîÞ×û¸Þ_ÇñÏì'%um:>Æ9/Íø§9sª]».÷Óí!¶ü¼ÝF6¤kvèø26-Æ8©²¬6Õv['ì»ÿΡåpl?Km,Ͳ2«#¸Î$ìÀkáü(¼
-ÏþÊðÏå.þ¥ÜÅÂ?ßÃÄÓ¿Ðùðwʳ¿ÖÃßÉÝ-üu¿Sgø;y.õR?I=Ád>ÁßÉL¿g¾¡óáï´wö÷¤ùý9ÉðwôL{
-!ÆN®y¤õþã0Jþ¾
-endstream
-endobj
-
-537 0 obj
-<</Type/Font/Subtype/TrueType/BaseFont/QAAAAA+CourierNewPS-BoldMT
-/FirstChar 0
-/LastChar 42
-/Widths[600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600
-600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600
-600 600 600 600 600 600 600 600 600 600 600 ]
-/FontDescriptor 535 0 R
-/ToUnicode 536 0 R
->>
-endobj
-
-538 0 obj
-<</Length 539 0 R/Filter/FlateDecode/Length1 49840>>
-stream
-xÔ|y`Uþø{o&ÉäL&¤I&mz¤gJ3P
-r)äªx»º
-¨
-»Âz RN¨¨'*x»_Ð_Åc¢¬»Ðä÷Þ$--®ûÛßï¿_Ú¼kÞdfÞûÜÇ,ºôòYÀ
-(3æ_¸ðÕ_¾x
-
-qöÈQ£Ç=çÜqãÏ0üÿò¡¿Âß»×>j:ð;\ø~½><ÛË¡ñäq
oþ3ÿQËqpd¾3Á!0Ü îÅcUð-ðP^ú ¬W÷ÁøÜx4
-LÁ¨À[àè
-êÞñv¼ÃÔÕ¿¬Ãkº lûÁÛàü?â5¥ ãp<owÀ»á&ø|
-þ
-iÐGEÝ@¿Lÿ-ûAλ?÷¾®xbxgêÀÙx?ßßâç+ ï¢8JP6ug³U¹¡¹Å¹râ¹À`üÌ#Á|×WÀ^ð2>÷Mð8
-þWÈãµaÏ
ã»xþ
-@
-ÿ5`h&áß¾¯æÃàq¼3Û1ô|
-¿G4Ò";^§8nD«Ñ´}:)@KM¤Ú¨k©ÕÔêmêk¥t9=F_M_£J+2orß=½ûþî¿d˲³dWd_È~ý"gÌíË} ´ ßã$p¾Çßãç¿ÜÖcøxßãçà+ð7¼ç?áµ ºðûÕ}kÆ÷=ßù8 ÎÆsà\¼þKàf¸
->/À×àø.üþ ¾û2üÆX0ÍÆÏp?ÚÚÑÇøïgôO*B%¨Jªj¢¦á§YJÝç^ê3êKÑvº>^L¿¢¡435÷hÖiök^Õ|«eµ4b\_úC½^ ¨y`(ê[ô.j¿G'á#È_ÀWóRc¨1¨¥{1Ïn6
- °ºiä7ÐZTJM # ,ÂøÐùè4
-ü>N¢aÒ® ÞDÐTj}Ý?ñ52Ã` ðÞ½ÚðR[è·È/jêf>2çÒ_iõ.¦0«x»à$âÕJ£;@÷YØ
ë³0~!7
-¸$`7|¼î5põÜ)©»ÁS]p+5l
'é×è×é¼åz(BÆ4b<ÆÌ
-ÜÑ`uïÉþL¤ªðíÁÔ¤Y[Ï
-¦=cQ*A5~º&0S¥³ð±1à<LO§a*9ü´aÊû xlÅj^ðy³Á\<~æP×ë1þ/·apø3x=ÖSt+z ].O¨W(ÑËèÅà\PÆB¾r-Þ%?>ï¶Ü{øj1àÆÔ?
±Ã}îo¹rvÄ¿÷g|ïwi¿iP%Ó4 1ÝP_W[ªª¬(O&â%±âh$\
-d¿Ïëq»$§C´6c³ÉhÐ3:¦Ðir{dZ;
-VJú¡ñÀ
}¦µËxhHÿ9íò4uܦgÎ>c¦©ôάÜKrKHnspHîçÛ·MÛ»ÔöHµ½Jmq;À'È-Î9åv8MnirÅå-ÓãÛj44gJ`«ÁFÜjwn
&¨6£¥a+ßT»+4¸¥]
-
-&wÐN
[.Ù>fìÄÁî@`Ri¢6ÏMo¡AíÖ¸:4«i×6·ëÔËȧ+äçßÖÁéÓ⦡NØN]8\ãënw\Óé<ÝÅ?Î7O\Ú÷¨ZÞâ¼X&ÝåËÊíÆNì{4@ÊIðoàsQxÈ´åCð¥oÃ8â\_
-Ý<ib;¼_R&OB*ÿ|³B-ddÚ\¹]³|î4¼5®åíà«Û\.ewîpµÈËÇMÚ3îФ{¶
-`ù9WoYê¤4±åò»Õb-4Læ¾Y½ÇÔ:´FÓ»²ÜQè,íòßÉÄ~¦:R̪ËgÔáiø3 â³Úg⹸]ß<m9Û@ÆÉùí0ÿ0º¾ë?raaDf¤Ià¤Ôðñv{<Þ^RB at D×÷ßcÚ¯.M\Ñ.-de\áåcðÚ^8©!? ¼¢CÓq§}ÉØù¾¦»·%Ô¦#Ï÷±'Gôé=}ZCòU°·3Þ++ÚZæ4´Cñ??>âÜбçO[O+¬íqýzùãu½Ç
-v[óDÊ
--ä¦Ô£(§ôN&¦v:ÿµ*PÏìÐ1*Õ(ig§
-ËÀyRGî9KNV¸Íöxÿ~º_¿ßíSøé1îüåË
-ý
-Áhùò!!yÈòiË/ìÈ-ÙÐòÝXî,_Ø2gG;r{V¸ÛÜ6 ?ÄØP%»ñæg:0d«V×M;ð¨&
-´ÜØEQÈ¥×±]HÌèkñQìñÆÝ£Ø#ÙîFiìn$ßò
-;ZOMùpqxÍdÇäê¹9Õ7{Ö&
-UVÙÄ(cµrÈg57vÄùpqíÇk)Åõ3-¸Ük
¿"Y© +¤ú¥W;;`âfò
-ãñ®îÖ¶8©A~'ú-ø^ æ!w|+XÇÜÀûb»ÙÇùêzV´Â¶VÐñQ1ëΤà:r'Õ1
-¸`¸Ð§xycF'y|¢À9RØ«@fìWxÜ0L,>²úaÄû&A :
wèRxµvAÄ;L7f»^Üýòû_¶ñoØð9ùÂ-ÏgAnßóË{á¡ÿ9üàGã½¹ïÍfbW
-Ô$¡F`ñ9ÉëN:Ün§#è3Áb}«¡ÎØ^0¸Vä`@ðQÐaô¿^^B4n]p` ÙxÛöxÉõo#hÐÚѹmTQ¡íêÄÿÇ °Ýøú¤²?ßNwZï¯(Ñ.¶h»
á²
-#ÚM½hRÑD¢{r¿Hî«í!¦H:½[
-þÚP¨ H£Ûsl}×-ô»\þîúüÒw®¾úË>»Gí/ühÍ=}tÏè¯NÎwØxç#¯^}äÊ«_ó*üÄ»§^ÝðÙgÖÿõ¯xmàµMb¸°þ¶r±A\kGh:k/£m¯KðH¹ÿóKÿ¿D³ä)ñ¤Po¸ûlÿ÷ùþîyþëÝ·¹×zÖúÖX/÷xöSûù×<¯ù´ÌKK7àÐÑÎhçJo
-Í`±
RRíº}p!7Ýó}.É`)©éî?Ëet¶kâælJ]3ígÈúIç`î0Å83þ¨Ü*d<6.üüDíëÞ°½6èl4}:èo¶ÎÔ×NÙ§~ÄmZQÓ¤ä·ÙE{{ÐàÔ^«qíüºë榯©»>½¬nYz°M0ÜÞéGcx,©P4¦\N«Eg7ÕTey.«±ZLP0
-[Q¬EX¬È)z+.0âÜ,h©ÿ-Guu ®sßbùa¢×
ÂÊÂP
-¿~òÓ¡#Æ4ý'4µ><âñ³ïÃ#ÙE=K}K8øËÆÞ®sÙÆ{UÓüîÅë.`½À ZÔtûeöìUoȲA=b4!Ö
-x§}
-Ç@Ï`<9Íîc)VúbA¼ÿu¿qwöÇ·¾õÝäÎ馮·ãÚÌõJÀ±^t;QÀ¸ñý³ðÇÑ#þ#¿
¿êìQq°<2<2:^n
-k+]^&a
-&÷rMd;Ï~IxvôK£uI¬Ýcc|ص]ÇÞã\ãÚdßç"<g·j<bààV.Ó·ÓZÏÑf&mðÃUþçýÈïJbÕg6D 5â¬P)¾¿Àå¶è8¼ØÕY06 pal$ÐA4Ø^
_{ZȰ÷ÇιzàTµ|í»÷¾øÁãÓcg9Ǭ_== ^ ̲æÏù]÷Ð%ßÞûð¡act ¤^9
-Îs¸«lWoµÝÜÍ=kÛ|9øaÐB¢*y®Òf`ç3ÙÌrAÇ»¾%>è[ôaIÜÅ+ðeåªôàPeeÁx¥MWR5µyUK C£ÜIÃ!Ø.[eI&CÑhQ(X
-Ú*+åPP
Ïc%J
-ÀJ|ç `|^Á´Û-¤].6m at i^[.©HÇã%àãC}G|Çì£@ÃjdÍBÍÍ1V#Uì,ͪ;ÛÙÚeͶ^a³±`ò)ìëR¦,®ù=»i3+'`zÉÁILút[ÏèÿÖá.{ælÃ62ïÚZ0hªTb{H¸:
-ÁþC
-æ´îãD¯ê$d¦±`?«¯WIKç{±
-n,J«ì-÷¨JŦüªë¼´,®r=ÈÅ(p\°î'-ý=æÿéõ7ñÁUËf KýÙb(D£yÝkÖJ=@Ê!*~æ©z¬!½¡´ãÔþ\ðäWÔKyC¨
- M¢n0¥Á©JÅf¸ÂFÉÙ(d³l2Û
-Ö[½Þ9Ê:má£ÖÀ¸µn&fÚ¢v¬DJflV3
-t0çÂÊ&ÔXå`Ð+
°NÚîj¾F]É]Ý]ªQQåoBÛÔO+ù`é
h¿;EËðXRÛk¶#÷ËvÞÁØ/EpgD§èÍ8I¡ïÈ!ª/>ô-©5¹zûXÖÆýI/Ô6R9")ÔÇV¤í²o²ùp;r_o·Is¡F¤ÆJ·©P;8hælMÐS´â¿úÓª·Å±XÌy]
-
Hõ·ð4¸õe²`õeß/ÿý³[OBݦg¿GCÍ~¾Nh
7d¿xìM8$ûÚgßf?-öÌôX?ëà<¥ö}íûÚ¯ÝÏ mÚmÕ¦[¢C3t3nj{]ëßw ÊãëG
-ò±¤jyKL)O$åÁgÌÛú-Ð2Ä`±
-A®X¥O,³a`q]%4W©¨®®¬V¦ë´XÁ;d8C±y´.V\éAo]%(u LrŪò
-å¨\ªza
W=,¥1Ó}ÊÃÎd
-g:°ö*¸=FÇh¤õh\~èf¼Ärã%ª©ÆÝcMõþg«[ÈëÚ~KÀ3o³#ö^OA·Iå
-x¿eM0ñIÓF×MJHÄç*×¹qþ¹×´MUe¢ïI9U=FM_<ipÌ·â¬îzÍÔ¤koîþ±.Vb(hTµß;¬~U³X
-zü5¡×Õ°jY$Öð¼W
-ñXEBXg:à],Ëaõ$=Ó<=´ÕñöLõ,ô¬ôlñö0oÂ/.PÍmǤ Gu7B¶ ªõïaþÕ:¸Ùìm Uçíþ)?É>JzR57O³Þì_ÉjÁ+³ËÔ:Û{þ!H«4ZkuzkµÑ:ÀªX-z>bª1ípoKÐQXÑxÏtÝtÏ"Ý"¦FWéiѵxÆë4åLí
-
-µyË¿OæáÌøðÇ0ò,¯ð?¤3A6C
-òü`[
ª$«ªÊÁ!
-u¸6É47+`iRë{=Z¨+©UÒ`¶$@¹z=¥«© í³Ev¿º\\""ñTÄë£Ò,Áé©&3MY̦}M¨&i(1åäñúÄ{«4j,è½fÏzð_áÑ=ÿ±äâS2h1££~¨ÑJkJüÐir©æQgM£&ó§±m rßu¹Oaî½3©
-¶©¶P]îùí¢«IÛ¯1z>¿
-×@õu¶Úì;òÈy7Ï@Ê|_×gà,ýúy§ê.k\3TEÆu£ªÊf¢6GW&4«Ã_¨b]Ç_Ö2dHKúìó»w E÷*ãZfu¿§¶ïlàÍÌwúaî¹X6¸cn9îÜ/Àûeõ·¤ó¸àîNíQÏ·þ¢µ?»ñõFDk¡Ûè¿Ù½N«%ä{#8;ÉwJ¾½|Iy^(
¥1PZZ¼%AUÌ1½ÙlÐ{¹XôFªÄàGJJBXÌá
-C^ÌÁ0uAV0ó©«Rrùf´~ª~~±~¥^£*úhjÀÑZ¡}Uÿ{¹¾µ úa
-÷áf×]Â×fÝa£ë©äNÝ3Â×nßËñ
-»J°R÷sw»ÐµeËËÖ=nÙ\öRÅû_V0ynê
-'÷Ú±
-PF}
-A¢ðá)¶Üó*®·ÂÖêyÏÕy|-ìz^YïÁ]*Rð`¨Ö,jâÓoßûøn½dÉô²u,3³~[ÞMþÃYO_4êÊKçïqõýk\³ËÊÞÚ2»ÞàÄBÕUòàîCGá8vtú³çLJ¤,¬ÐÏc,CQ¥áïQ×=ÞïÁ<ïxOð×QoÔ©êàyÔ·Ûw¼ß¯½æ>hR
-ɶõVhµúȳY¼ÍkòóùH,#^²ZE×ʪÊÊêoÒ¨QûLÍ0Úk$Jù1'Ì«}1UíóºËóGñX4/zË:r+Ùãõú )}u
-³,Äv9¹údþ¿µ
-w[ãñ6'{Ô
IL~Ät«H'XXlllT;]ê&A=
-)5RbG;ê´ý?!ÈiZ]ªº×±¦úÛØË~5=4-û,«Ò§ìë*{©&å[° Ö¿E at 85$o° vîu<÷Tê@HÝw@ñÄÛµÛ8 ÓÍÍM¦*6¶vÄ__%¶ûT¨Þ@°PQ\Ä_TáÖXÀ
-¿öTõ÷0õú4U·½0%¡jëéVÃì"å®'î¸riÝ)0¶{çüîJ¸Leëæî¡ýöâ¹ÈóÊ1¯eqoa<^Ûùxmëà¥të¤hh3µkWÁ»Ñ¸µÃíȰIûgÝÍNÝ˺t]:Ã9òÚà0Å)g;Sûb
-yíËÍSTödóüÂxâªNæ¯:(Ç<k[ÇÖZǽ,vB'Q¹ªÊµ¯ü V¹:àß¶«'Þñ´Þ¥[©èÃýwÁ(ÿ
æÅºÜ6ìÖH~èÒyòûwó½±YÚÜñ²É/øÄ+°®ò+9CûÊuÎÕ§/r1þd ØsÁMO×WçRÁþªûä¡-+Gwÿã´Î5ùRùÊîï~åO¥ÙShqÁ&Ó#½KB&vi=¯u¬FkÓ4ìMÄ*m~,D¸¼÷À=Vip¼(MúÙ¤zù_BÑHy-þ·6é/Ëæ²OMg0½mܽn2pNc0»+«.¤>¤Gܤø¶j!£×Þ
-ëÌTTÝÚb¡K¨14¤yU/JÅ
-ÖÕô!M'|pòÔéâVlÉ?0Le)pUÙ&;¥ÊÁÏ4óæ¼Dá'y°Ö.@ÚÉÖîΣŷ:ò#>·læ<ÖËGñ·Ëâ7CÎmB³l-yµ'¯øäC;`>£º4Õy¥ÏHa?Þ@ì)}øÆA#
-¥aÚfÓ[OÒrÚU®L¥CéAéætu:N+ÍͺºL(-+f&iR°lÜ|%Ò¯B)M&
-¡(záýVÍ
-Ò¸Z*ññí¡û£¼:/ptÕ,Üi¼Ò`Áe(ѦµG÷@]ÞãÖ'D¨³R FJ#;ÄKe
-|ᣮ.'ÛIÉ@¡v'Û
?g¼·c7às¯o*ñòÐvG)©Ø.ç|Ô_e\ÿÏ6wcSÁNX°IÁç³ |2«à3Y>õásXáÙ`ïYêiVü)XÊóÊrUîEÏ3ÏÈgªðåá¸ÁDGgàø¦æ>>IÑ\ëá2͵n·pÑ,HÖ$EÀàRV\T
-»%G$Ô×|¡nîÈíßÎ
-D#߯q#Ô
-áU/þsL!{NÇ»
=èCÌ.zhôIBÂ^t^zK18^°<ú,Z<àð<öã§Rò~+¬ßªÿ¾ILu¿BÑô*¥hU>¬¦[Ý)(g¿ôVÉÀHô/'§ô
-åçiIw¾ûàGA¼SÛ#ýQ²Ìß
-} à QMá~<
-ÀÐòÆ®¢©ü{ ¶'ß2{¢'KBÍÇ¢ä9äù¨8%$JvI4ZÛëö¹ýnZGb5&½1éL- rE
-m.ƵaÒI¬º%\DL !\b§2%ø¿ôQº¾BSíÏ&eçÀd¢¿`GàFTÀ$0*`ê%/*8,)¢hÆ-\PGù0Y-5àB$-¯ È|§8pÃ*8üä,X®ÉACãy£¥Õr°Wͪ¬k-Q*Äg"»]PÃ3«*ùjêëfÝ?ü¦2oÕ[#n,ó
-fÅqÍ%RqýÐÛ74ÇÅõÃnÛ>};ûãC×¥«w
-8ï²·!KÚÁ»Ï[|åBR({äùÝW¾5 (ÁÀóD²ú}özúzj *èS*Z
ú,ð^ø»@gødàxöØüÒÉUׯµUÝ[Rõ`ìΪͱ
-U{|Äýcº¢×h}_¼Â)³« ßêlÀêI#-ÔÂb¯eÕoзë)«·èê5zWuY Ý¢÷
è*¹°_bj¦"3XÄ@×¥Ïwþ»øùÖ3Âä÷7FF3²_¶ùÐ{ ¦T1S,¹oûPÞ6«{õwAgA=æc¦ª&v+Tâ«*û¦P7¼¤ÆÂ9N©j?¿2*.}ÿÉ'|éÛoýõÛo?^½_ÍÙ=nPâbLÙðì³JÚ
-áÎdGÜýÆ«ï~óMLG×cém}ÖæT.¦Xs·OÀí«½îªRk¹ëwñTÊ[øââ%{ã¼R$blÅâá°7E¤E
-Ê>ÞîÖ6$BK Õ%;
»xcºóÖ¼©µ×kúúð0üSé·t~b.xª\ óÖ383îÑjôQºû÷°ÔYpߣꬿ=ÅlÈ&g¼ÑWa$ô¤£mh11+&ð<Öï4H¢gl&ÏÞÉÅl0y{ ¶z-¾ê*<ó+L©¿R)5ÉXYªæ ¾¾ßhíµÇK'Äg!ÑB;ÝÁ¹Üy7¼¹ß¸:º>þ@écðáèN´Ï°Ç´'þ¦áõ¸íj¸)*RLy¶yB¾Ü_·ÊöäþIü/;8¦¸¸I:`8÷í¶h0@È/VÐXLë`Ó$hÍ¡ø±ÂÆb"@}îGHì]±JÀ~ *Ï öX48N$"%íÉêR}yi
ÛÏÙiÆÇË
-ðé0¥.×Dèç¼ÛqQÊ$PÉúi®:~E¿±¤H´&U¬ç¾Þip¸á1i&µR)³Æ{'nAÒNuL0eìN<ÝNÆìdÌNÆúäI°`&"àT)hÛjDXm,îѶ/9²aÃKæN)ixÿ{5Ä̼|Ñ×_qåzÇK<ñäâÅO¢UL[óÉ'k¦>ª®;}ùÁ˧iøfÞºæN_½:«[°qãï.}ôÑ~úù-JpöÓO&ª^ÞW_Ì©::ÖÕ±Nôs¢§tt
-|Mÿ<
-¿Ñ¿èF=Ä óêNÊØ&ë;à6¬BLfMâ§û½[qð¼nL;¡É°µJRΨ#ÝS87'ÐÃFÁÂI¢MKV]ó¨Ã"Yø^'cxW,
-rÉ@ïQ±]U¯¶)ÉLz&hͧþÝ£
-©¿Ñ
-ÈÁ(H¨ÁáLû}>+£O³V ²C$¦i}ådæ êaºøLÃtcc~3óÎ|ÆÄ¯d½ÿ¤É4o£µ°æü×
-ùì¼
-ÚVÀg1ýëJ_
-¸öæ#|xû9sÉ7óAD¢Ø¥ºÕzT£»wq0gb$Ös,R+£±¶qíÏ6´?KpY¬$U\]_ eRs
¹!ãlÙjl(.}þ8õ]ø»ÔÉðÉÓnHÍ-[½YØÒUB /¶{ev5èt 9õØ©ÖhÍô B-RýååCRååU©`iª: f´$Ñaù T[Þ9é\Ûñ¡±Øp, á¢pQ\ª«S!ÁÆÛd
-qÍú¥tÁÔgËÚîk$A
¶{jóµT¯¥j½M(.¤âMK5¿ß¿ÔRðDþ§Pþä¯ ù·çbþÕt
m$"sßÌ÷&LÔýTîDoJ0fx5¦0ëía)%÷¾5L;@Wq¿
-É=#
-ÂgúëସÊEÍÄVwa¶®¿Põh#£éì½ðìò>Äû_0Ï5äÙï³zDsxæµ1¶<u RPÿ¸rûQr ).8M«gW\^Aéâ
-Ã+ÎwM¬X$/J\U}{õ¦Ç+FÞ÷¿'¼_úC³Fô-þ!«7û'îôÿÉ¿9ñªüZàhÜìÛûèõßfUõËKÎóË%ñ6XùË@MDø_²$}|¯²2ÆEJJôzñïA×R´A1ü >¶*ìé;{Vz§ãcA8&¸!øvðX½SXÄ:b¥ºáóú¨ÆªÒÕÙÚ©fºbX&6vU!!Õø¯ÿñëÌ´³º>®ºm~L¶n^-bjqb[J®86pÈoyè
-ij¢èèá¨(
-Wõ&¬ÏÇèoè¯vêÁo~àü%·+¤·ðͲ?ù»íc»:{
--»ÔÌ,¯7)y½.)(KÎ5HtȹáJ¥¦dACÓXS0Å-@vJXüDÜv
-AJ¶xöÁ#Àab´c6DqRãhC4p¥e[Ú¬M²l6´Ðù «X-)åÕROIJ8¯V.%¥iŰx/|ÓT\¡8ÄñH©¨O!2yHa¹ê(f<ÍíèÕBZCª˫Iµ½®>¥vãù.¾Zã_Pk|¾Zã#µÂF±W/Ö¬Ô Agá Ö'kìDkk¯å«Sb;[]l7ét;Jlw«ËÙ?xü(9ÆÑ[Åãl'it«A}!hLÑz§)\<þ
ëÖÖ¶¶_ýzPE¸ÓïüÚYÌHÍ~M¼4 £¨(ÕÏ1
-ÙlU6ÛcÔsvwÌy*F°ð+R\²fûÌsCú(¡qÅyº;a,µÙHèþÝ:S
-íèêG¬'ê
-V¼FäF2C3 i²Í¸ÈðwÛ'vVÇúßw
-ÌxÆÈ :
-á@5¿sù#|§Yàtkû'õ>Ñ#ÀµWôJôWÙ±ÝWÿZhà;ù}AK
;É(,ÃCÚBnÂ°ÈøwbµEðïºÐ'ø6^Ù¿ãD·:AÜÊ}n£ª×@qºµêãì§NݧGS>Î~&yEßH¨Ø'pK¡Aâ±âÙCèXï¤Jq¾ÞGÀ1@]4ü;z¼kÕùuH÷¼À|èÍ;·;»Ö̰z¯H^~ö¡;"
(XÖýQeH2Ø#X+¡j;r
-÷¼åmËGìË7ì1Ë?YÃFL²åVhí.EÏlÖ¿³/t³1ey×*Bñ h¶%u
-ZÉFà[`»p3ùÕϨDá*Ü®=¦c§@&û¥]â²¶ély÷ÙM6òÆÄ X¹DA%<»¥dsüeÃKÆ
-%ËãÊëÂëãO
µ×-_¿¼t¥a¥°¢heÏÎb²¹
üBn¸<2pVÑø-M¥5-7Ât¼Å:eôIIöÜaw;²Ä«Ùg^IRCä³ÂWÈ·ÈËË×Èä2`<¢À+"F'¨rÙB
-rÔÑãóú**+EL(l5ùMISÆ4Ú4Õ´À¤3uÀXip,¬Ü*îyîmîwÓr®T´ØÕïc$ jøÕýõ ÆÂëãN->Óóú²þϯ Ñ\E ^0mx¸D(-
aC¨&øX)(2FJóY,y_
jÄÌç,û)4:1R`ʶ@emA¡á
-ïâ º
-PõÄ>øÒ¦®³éÂîÛòJrlêèï¾2»>6öª¦IȾ;.Ϩw^sÿÔä[1]O¬ yæÖ¾ù8ln½rU^KðÞ/À{ß_TLüŧÛÅ}I:/ÍñLìUYõBo<àõʯ+QOÂd¬*¬¬ò&©ÑéÖ?2ñæLfP³·1/9µñàb¬ 5ÇÕv3¸úf.o<´7:XOÕÕU§¼éPбV/UF¸q
#ñx^JnL§
-X®ò¥|EÍÇZß¼¥l>Ü;Ð^ÅÝÂûÎW´
-Q£ÑÛYÑT´
-
-.>m±á.ò¦¢Ào÷ø ¿9SÀ¾©û=̲©®Ëa3ÿTµiTº¸7þ©FOí#ù¢¬ï×böl¸£§}ZÄ´ño¹/Ð
-ÖÜü`´býÀø¥1:`¡mÓÀ§¸âSl44yêAgdá¨<1îêìd;;'?ÿÚ
-C±rÿRdE¤Å²$.93«Vg£¥Õòõ@D|)
-Zì»c,:Ú'ojVVçÐO2Ð
-Eç϶[5>5¡vrýñ¥¦Õ>UþpjCí³å»ª¶¥Úkw7¼¹<XnªíÈý²«ÁPÎæñmLIë7EXi¬¾º8SÒPÚPVÑÐøíE+¢7ÅÿPöòe5ëÖEWÇW)_[³ ü9þ^üúH¨ùW§¦¶¾NUSH³_þ0ÞÙBXÅðó¶gë:à2ÅF
u ¯Ç1*¤·ÌNغ
-vÉäEÎêdTÈòÄ&qeu8"¥¯éeWj><{¢»x+3IbfÆÐ)}éĽbùýþÓ©ò§£R`Þ1® 5JÖLÙL㢤Î×øp"E
- kJ¢ÆçÕ°¦)jHXSqfÿP%@ò*5:5øHÁ-®Æ,åßOj#¨$¶ôv[ÔvtéÂsk&o4õxÁ>¼®¦äîa³zÎéØûȰúÀX}ûÓÞ¼÷À8Nv$yÍjtÊRã4NA`Æàð¯I&|öÑìÿnïÛãÛ*®gî¬÷û-[ÒÕò-YòS~;¾²¤Iò"ÁqÅVSÛr$9nXJÂRÂ3$@iy-У<'!NR»ewéÒþ[ ýÚnn
- > ØÞ3s¯äW²û}|`yfÎ;Ï3gfÎÌ9÷|ésèR½¨ ù¹»9¦BߢïÔ³KÕëTÝêuCªCT+$~?¨.ñu:Ôx56"W]¬ÌT5ºj\]®®ºbJ¹§D1a·Íl¤.äqéYoaS°®"X·-¼ÅZ¶p÷ñÙlbB0¸·E£28ur;¯KÍQðL;¸>§tWVô,ìèQ^
ìÍPýó³TÇaÜzI§>FåSï¢20¥SïX}VNt~Ïß@×(#ªx¶ÕÖÍÛ+¤Z¡%äv!6NYIÅÓ¯ûÉ-7¼ó7ˬZ2l¸àå¿Ëº¤£7/þûKáüM·SoÆcwÆêV»áî±ôÆTYçt?ëqØ\kû·tïºëå?s¥¸¦Û hQ²Ç_£tyçfOª`OkPiÃF£Kå+òÄÈwVAïëÜ-ÄåË^çu0&f§-l2¹µQ¢f©
-Çb®hI
ô!&]Ï8îçªü 3ÅnTNF%÷uEø¢©"¦(ÎBÇÆ+(^R¼¡øP!UÄÁ(è#LHGY»«LÆßºe©ÜnÏ9QúðäL ÀPäÿ-ïÔ=ûN}8|A(¢¨8/å4oSýs$¡Ö2ûèq¡WÇÍ¢{pG§óB1hïäUÇØ½È¼ãÅDBçÏcºÆ2¢_A×ø$z¸ðÉbvÚììEÎ˽t¥sWô´ß¹/zWðÞòoG
->^~(jxÐï)û>÷ý2V8ÔÎ(4U¨,/J*3ÇUD)EîØ9K"öäPñySPâE·ûdìP8¸½J¬S¾¡üPÉ*U!/ÙÒ}À3êñ¼áùÐÃz9ÕÓ3eé5DÏk!'tÓî:Ï=s
-ÊÙ+¦Þ+6ÑRsx|ê?ÍÑÑ+hn»à]AAe[` áãÿLõOÓë®CôzÛM¿ùÁäf}ã¦Wî¼óbÝEyZÇþô8ÆÇì¸õÌ[o}é%"}ºóØ«ÆW}l|ê×ÇÝ1«¯ÈWë&§f
-wñϼKÀ®RgÉ:§ûæiTOáEA~¯3¹à˱ÝÁù=:ܽ39Ìæo¢ xLäÆz=¢KjiN¡q8VÖ.i«)´Ù
-k[¿¶ÚáP+s._w4,°
-Ñh¯iï¼bÚd¦¼0m2ª¬Ð¾½eÁtÌ;`>¨Æ÷@¾©·Ø<Dòúm>fr´<íÃ
-¿¢ÚáwT÷ùûª.3n²nv]æÈ½½¾oúòIþâý«)ð*ü¯Ã/ÉmöÇÄÍ~aM¬É/½>¢YðÁ#z¢Xù'Q± +\rÇ
-ºB~ëabj¿©*Ã!.rzFºîUÈåþàJ`<ÆÓÇ ²A¬ÙOó:o;È´R3SÛÂòs×5ÏêXNOÏr'3v2gÌ[ËÊgh)Ü2Ú)Þõ/&:öÝ`Ïí¢óöâ9«T<×¹=¯ÆáùÅäêüéj¼
-þÕ ;ØÁ+'7Í9ÜÁH/ÊKñ¾HdöJt±}Yxë6ýK®Oì G\Ú,ìék,z½ÙâR[¬¾ñ*BÁ¡ úààKAI0X<T(ìò
n ÙS2LöYS2V&+cd2q©ìuK]®»Ëå°»¼v
ÁØ
-uÄEÍn¶Ùì6k(ès½æ
-ª|^¯Zb`¥}¥}Ôþ¡]b',ÊÆ+,-§-¬LÙ°í$¾ºàKGÊé¹(UP÷V7ÕO×}®v竤nÞQÁ¼sóìuÔ W×¼Õâ ¨§n®/óÐðä¸Í¬Ñm¸ÑnÒhM¶ïà}øêìfx°ãÁå%µÚ¢ìϬì»3 C}Ýlèw¼RK> åZ%óÌÔfê¯H$yUPu>¥*l7UèL&½ÎgÕbÆÈp-E«Q3ZlÕ0j¬ÕqÈVÀ2JÄÝtÊeðNkwJÕûðvi¹({z6ÿÅQ+-Qr]4,lx1hCæ?[DpÍ¥ÄýùÖÖ»Ì8pÈ3ë¡eo[p·ycØc`_¸i Ë Ä¤'þ,¨îhÎÒþÒÁüS
-1xü±6^ÝiíÆ.Qo¶vG/iH¨ÑDÃ}Ñ
-ûÆãÞñÚñ¶/x_¨}¡íçè½ÚZεýýÿAï#ÉçZ0½
-ì®Ó+Âná0Ä0èJSÐô¹ ³5ج
-ÆU«0/òCJ¹XùóA-®
-æ® G£%mD4ÊØêäz°Zêr©ÉÕ`â
-¬S
´EÚ)Ý,KÂA?ø+ÙæÈ{¥pAu9ÚOá ¹²-!;lAÃ1ûN° i^
-QÇ
-äç¶ÉÃn
qË@PGþp:F绡+¢N¢8r
-7Rñ%q¨h^NÈôs¯¥¶íæk¹Ò¢ÕitjJ')K
-Ld Qà-)QÌYüQ\¬G±Ïè"ñü*"ûÁÝtqÖé]OYf^¨¡gVä%ôÜÊEÅñó?í,s¥¯íùûÉ&ª_W]~¢Ûh
-Ü|ÉäñÈj}ÃæË÷e¯þè²VÒT7þã¦;W4oXY¾WaÞöp`ߏů"aÙbRîT
-YÆÙwwt¬£ó°6])SÁ60-l'»ÑíÒßÀ\Ïêü´bÑp©
ó¨µNdÅõ:5H¤n1ÜÀOèx.¦ã]`Eµº h:ö;-g)$AÎBCPç0îÄ)¼%ØáÎ[Ü8Kh2"§ìÀnÞÕ1jÉËàê¦>:Ìhs»pdb<Ƨz¢@tÛ´Âg½ÞÖí
).ã^¶äØDvò³1M¼L&æÕuÌ7Ö¯`ý
êJìù¬U ~ê7óM9ú5ïS*|2Ç»4RvqÙæ²Á²;Ë~äø¥ý÷v¹ÃWÖ¥&
-9¿Ü¬çV{\^ôîBÅíÅgy
«Y"Q¢`±iÿ'¯°5+Ízù^ŵ¨é?!·Æñ×;"Å¥æ½]¨.¢a9]ËP¥°ú³z*¸vnBØiÉ+£$o·IER'í
-°
-\<vÈm¼HÖäú8dosúË:3®pcN¡XnÆ{]ß|ß«\ÁízéÛc·?whï5×p£Y&LÝIç×Ç^øk¬¸Þk5:ûôð-O,ÒÛLDÍ¿ôü3©|Óè²îÊw_Ñ]¡ÝW²¯t_Ù¡ÒCe§ÔGC°âUZcê¤ÌrÍ%îR¿Ú¬"wó4ïÏY?5NX%¥òÜÕ÷_o¾KÁg©° þ¨B¡T;Çñ'GÍÍ>):¡BøËß44Ç5L
-E
-|Ý^ÅÀwkî!záCMëçæ-`»È0ÚÅ\ÐâµóÈä7ðØæ1óØ
->æ(P¨õ[ßÄ?ü&صkòç'×x ú¯|ëýÔÎÒþCWuÛeJ¾òÁM¿¸qA"üÕwüÓ©Iö5 lÚ{XÁÌà-|R?«Pk4Û-Èl± à±Ú¦²¨«ÇÌvÒ Ó+%zµê$
-3µ)Ö÷fÜu<»ª
-hÑ7ÑK'êLCãuZáê}noÏ÷T
-v½Òígj*F5x%É%!YE}æ@¿,,Ö]]«öUm)/)·Äº®ªß?ñÿ1ôqTzá*²ÅDb VßÉ©wQ5LûU`>Võ|ÕO«$ä
-jÕ%ªREH®¤ F¢5+¥hyWV4³¬ÒÛlÕOâ
-S-(|F&læÆDæ¹ßÈ`OÇlºô{[N?þAm[cðöW]Y£ÓnPÛJj^V6ö}_ýîw·]©ñ2ÿÉöþãåwOÜrݿ۵ò[->½Ý`SpÍÛ¡¿xûÑý7áù0Ðk1ð"ÂÜWÊâW§©ÂTQÊu½uí9ésæw¬-ú--Æ-&Éëzoåm;Shs;<.wi©³VÙ3qÛÜe]o»ÞöíGÌÖ_ÀªÎýJ=ÖǨp¤K|w¸ÀPA"ù\à¥4pCºDqH¢ Ê@~ RHÅùU|7]1*éâvDÅ '?åksb{¤{¤[ÚÆ]¼ÛqµY¼$èu35AXâgq9B@]ÝÈý½¯>l;øPÌÁ×ÖÕ:öV
-YÎÛ¬ÍÊW¨VÞÓY? w×eø`»ÝcRÎòdgF,d-ÁÞâ1ãçÌØÔ/ztJHÏH%0*£2´¯É8î<×½óã÷æ ýDxb'!=*ݸ3'ݸ³>ÚõïO«ÎÉ&ÞÿX¶qÚü¹òÜó=rbA`KBÀgö2NÓêïmt:ó3õÞ#·O}xتÏÝë xìöú÷[@3Es~ìϾñþï¾q%åçqáFOýçÕ¿øgA+ñð°-ý£da^ÆÄÇV|ö2ûë{X ÏÜ}¦YÊwÛ#ö:g<P«©¯[âío÷öÇG¼WÆoäoßÅß*~*þbIêjÕ\Z+ÑùÂukã±uUÏ·ü../ôVõùúª¾YûTäѺw|D>©SV·"T5÷»P¸á¢®¨Èù]+9a*#89XTV¹BUâö0=¾}MH¿&$hà]$ú©²Á°¨×ç×òuV_2"·×kfòVù$®`1\Væ¨òù8x³¨¡>¸°¥E.×y
é+z½vE5ñq®µµ
-µ«OâGx\¿²jKÕPªøªUìUV1UñúSx=âP®ã
-í^H¬#=þ·-;Iz¦H]SCÿ±sÂ;D°jN=¼>goqËÝͤWÂ[x¨-~ ÄxwSâêÁå-"KbÄO_#7ä`Kã#}5oîÂt¹qÂ÷?ÿfß?ó(hy] ¯Iiñ¹ißH\ªÞÜ7Y½ýúÀ>âóÝo½ÿÛäóŬ&þÆHóË×ÐUÙøôîRß]¯¸ò¢y
-bǸ½R§ÈêÇo=ír=kÕYãÀúµÚg-×»aÍ·^7»³¬DêukÜ
- ¬MF¢!^|³y¦«ªÜaSc¸à¡§ÁYvâ§ø§OQ=¨m¨/ûÊ'/ÅlÉg?&ØüS~k`3óúÆðU
-Øp¤¿#Â+ÕTWÇKËÛÒ¨`w_ÃÛcßjx(v¨áé¤íEÓæØ~iúÛ{¦OmSï,dqT@\§
-Ø
-`TíHê/B7W,é:ÂqÆòq¼ÿH°¹Fî1cs¿¹nkx¥¥-*jd*N^Ä\}\åh¬äGåÓË£³ÀL½ô»\O
¦Y8k¿b ¨ðñ/[nTTÌiqÇ&©
ǰRfqztõÕà4tïÑ|g^ÆuRpZ»MÏô mòWüi¼ÿ¨Î¦×ïyâ¶N<Ýív:_ÙyûÝW^z[¹Þ 2Ø/Ý}÷ý?ÞÊ|¿öØÖo¿½±Ø<».s|¨ãàjJÙ7vm:ØTkVØô¥ÍkOcÍ·ÄÞd0¿:£2^/}&ü'ÛÐäSTIÙrXåEÏæ¾Ê×Gö&QBæµ;¸ÉÛy½!zNËÈX²öàZþsÞÏýÉù×´Íqi¯õzØP`¦×4ø±íÆ?ÈËC>*ÍZ¹Ùk,èRI1DÅsqq àû·
-
EÎÉh6
-¹< |'RðIQ©Ód4(¤Zy
-&%ð¿ÎÉÕ;VË£Âüç0<:ù¾Ã`שLìì¡øÍ
-D7U¾áÆèpýîw.Qc{ç2¹Egp |#ô_'ô_?ªÄñê(Y
-ùÜa·×<9õg¢×Æ$ÉÛ$òµËäÅdåÝ]uýµr¯$ýbä¢qD"%fyPLL¦.Óå¦Ý¦ëM×N~¡ú
ñ÷
-Kå2® èиboëñîöî.ÍTUñ
-½¦þò-µñ2¹_çÕÉ챸.Co×øP@£.V¸²Ãò¾LImZM ¬¯E`y¥(Ç¿æf³´¤Y¡±¿YÐLä¸PeHzù ª&J9tÜ×\ Äâ¨:5½è
º'ÎN+o?+ìÛ¦]EÅåWbÒë:£-PkT¦ \â1gòµJåàFxìÕyÈ.Öð¨LV_sM/¹mýt%î ñô6]ê2T §MbnËàþ%÷½ôìÃÏÔµµT>ðêkìVÆXÖüÃÉÓà÷RC÷?L\ÖÄ2¯?øOöÝôÄ¿ßw}ßýIÎa´)Íßö¾üô½OÝ|Íã«ë¡×DmfÉräA]|£ËãAHn~Xß%yX®ëR(äE¿B]r[Á`ïÒëå¸K&ÿªoqòWÛèO÷³Ü§ÈÜF>(G¶ªôôè8ÿiÜ)Lî7w^b>E¥]G1ÉÔïA*ó]ºý½I8æcb^~ÏøÖm6ëþ$ü}¯øÊÿsné
-^WðèÄ]ÓaòoòÏ íhº]
ö¢ú>:A·¡#èÀw@¶Ý(.bÐÔ Z
-´£¡µ8¶bJ¢$V¢³ø'è·èëè~t½¾ÂèúôêB§Ñztàm¤úKÆ
-èRôUü{Hä¹íÅwàoxÒ£sL3nB+Ñ}èUô<ù)äQÿkèøMôlü¤õWü/L5±<Q -Hˬ²Ê_WÀ¯[µFݨîÕܦ½CgЧ
-KL×YVZ¶*£öNû·í¿w9¾å<^x 袯ºF\¿rwyBϹ+|¢ØS|ªäÚK¿Rz_Ù½¡×Âáÿ8£lôµç*×U©ª½ÕñêGk¾][S=\®ûcýã
-]Ư/ØÙ¤j¾yaYj ñxqüù
-h pjäV 8pq÷)$ß$¿Åì
-Ä÷ÔfiYéKci±YYtö°Yñ"L¾wxÀJå1¡Cø_DXL¿+ãÈ
W2næIV¡~ÉEX¶IDXSpTzkÑFõª<MíQ?)©4fLÓ Â,hZDXaúEXÔ. at ZÍ5",C«5·°4gEXaþ"ÂJ¬ÓJEX
êtfV£Ý2Ö°é¾.ÂZ5þJ%ëjÂRÒ"&
¨¿Â2ê¡°ÂÍV62-ah#sC"mdN0´ùG"md~]¡Ìah#I¡,'DÚÈmdùCÙ"md¿V¡ì¿ah#ÏýVzy¸*RNFa¢¯KÍÙ(¬¥°ÂäZ®Â&Pw3
-ÓIaM§ÂVêÿU
-;hÜ
-Ò0BÙ\4ÌöPø;ÐðOP8DáSÁQ¼ÉiùEXÈëU«ÿ7),ÔåZv£!¶¡,IXØ>
-f
-8^RhLVÅ¡6xJLìø÷ÑøôCü(@íÔ?ñRE¾d¤)ðÎÉßRp
üªP#ü*aL Zêýà®8Û¡Yk¤F»Àî¥e§>êÇ¡àÐPÛÁ¿ÊWòµ¦ôs5©4Í¡RH¥Ê70Û µ²¤³î©Ì-] ¸YõÎë£x'Xí
çZ¯É÷ß"ø¼ôAÙ²´<0=Ô´{îh|Re ósÚ8© d»ÑWày¤Þá²ðë§é·ÓH¹'h»jË¥:BsÌ8¦ëm´^rZ¡$åb}gâDL-MÃ÷Ò2ÐÚl
´ MõÒÐ ê·`&·çó¡Û$-wCúráhª¹² JµÛ
-GÛ3WR<FS#¹Ö8G÷-o/ÍPôÖ¥Ø6£ýR´G%!¿¬X²µ4\/-_
-lBKB¯ÈÒ¼ÎñÅʵ§q¦)§(dhÙ³´,¹^FÊé4WÞ,ÅÝxÆL/êXðn¦£Ó(-ÉyùEgàH(mÖu
-RRCz}¥îì¼?ç/Ctûóîü¸ñÅzïtëõcî0¥¢\ÚM±ËÔx×±dÆè(W®hx¡$¤·÷SHÒÙ Iý¶ÓTyÊ 4¼AÌm¼ßEÃ¥ ¹Q*GÛÆLn¬Æ£$í}bÉÒû¨¡vSzOÓV<¾Rb½RtÄNeDLó|ùõã-¡Ã´O ¥Þ*¶Ì òùZ¨Öj6¦qg>UÌϹ/?²î¢}oö×~ÛZöyGéø1HÃghJ»çµ
ÐN³ga¤IÐ
-QÌöÑѰçµ9'Òâ ái:_2öRLã
0¤gðåùÐét+Ô/ûßbn@§ÇÌéôrã[fÖ¨5=BNL³C·Òt34w¡>B¹fR7á 5øzÕH9*KCW£iúXJë>¿åIú;Á?IÓÎÕfzIÓq{f¤çà{:eR¿zŹbwGf_¤õsé }ôÕ]bkL÷±\zóÛQÀP,²çíǹKÌÁõ¶ÿQi§±<?ÇØ*>Í,QïÉÂÜKa-ÿ Âk6
-i-ðTBÈJx[ojE¸Õ!±êP8ibHêÿ³¹î?3æÞUÌÁ^~>\³{(¹-ÑäåÖìHrËS©,xqm©ôP*Èö¥¹¡þ(×È&þ@$1nuªød¸¥¯ª±±2Vm÷÷s«ú¶ïÈf¸UÉL2½+ÙÛN÷%ÓÜäȪäöáþD:ø¯ìJ¦3$êhC5Wº¼¯'ʤ¶eËfY7#è
-¾+W/_#>=ÆI'zôW¹Ô¶ÏNnïËdéd/×7Èõ$ÓÙqSÃYH*ÍG§¶§C;v%5H÷rÉl¶?nOfú¶BôDKp$èHºä(®·¥ÒÜÒÖåå\®ü#,äzÓAnën.ÞîKrÓÉí$[ìOö@z8@)ÇÅIê}=~n[ß× Ã¡¾lÏ®æ_Î
-¦¤#I{.1ØËeú[iÛhýR=É¡,$¶6)dS\r
-Ùîï
^±«/9Bi`~õI8hÉdyBpù:B± l¢';ÝÆ¤b ±ÔÛÎ,-r>B[¹ÈØ]@¬]ç"\iCm}W_Õ©¬¬T(ÖvgeUUm-Øõ5õ\}]¬1Ö¨Q^ ×}ng$Obñh?
R.1KH»±¦Ëaúù´rïVÓI,Qèö{7{}=
-æ{}üËÍ´/7Ó¾ÜLC_n¦}¹öåfÚi_n¦}¹öåfÚi_n¦ý¹6kÕ3
-'høó½{sNä¬õÀc?Í~Já3%nI¤C²DÒvã¬È|¡TVÐ>CÆ¡ö;ð(þh¿¸póâüôÃÀ}¿SϱÏáÇÁY@#Ú@õ^âª4ÔSÔ´Ä+ØçЧÀ#AÁÞ#ú°Èvâ{¾=
FÁ<æ%0Äç$øàs|ZØqÙãìÓcd}ô#PýAÜÉAS`öVö&ä
´7îfÑ=
-u»wlIgõ
-Ô7QàÏ=GÀÇw°÷B©î
RÝ¥ºJõØR½üïÿ{ÀÿêÂ4)oÜ;¦³>
-v)u³K¨{1øÛÁípFp±éóRxn÷+ðLÜ%ìâ±vOe|7Ã;ò#þíPv(S; ø
-ÞðeyøµÀo!»Þ4CØf°y¶Ö± B5ANM«&H¹ § § ÉØ&°96*Áð`VÙF
-éC¼r(W9äPÎFP
-0`6Ùæ~0O£á
-¯bZȵt¦
-h¸ÀLaJ ýÙa¤4¶LÅTo)øÂS)Ä)
°¥àû:ØÆ ïW9
-¢Ñ wÆõmDü)µ vÚ<µm¼s£æìFÍ5wmÔܱQ³~£fÅFÍâq¼·
5¿k5뺰&ÖÔ5eaMÜ7àKa|ÚÔ®¦¶Ú.|é)~@®ÐËâqÉQïÕßzÇ%xÌsw\ÎßO]sñ|ÚSéÝî)|ð>#ÐZü8á0_.ûl³5Ê¢²¬TV"óË<2³Ü(×˵rµ\)Ëä9#Gr3Qq&æ=q
-$ÄPXÏÄ,gÐ24jb;Õ¸cô¹Ô±ýójÿ8V^rÙ¨ÔßG¨cM«}´>Ü1.Z5ÚîU¬ìZã[6ÀÓ(sý8FkÖã)âumᨱmý qùµûEwÃgýa Þ¿²îj±··ÇÚ"Ú3´ÖÚgª°%%q~«cõúÑÇ\F« 0åÚÐ[Ím\i`êµ`ê³aý å^¦aÑ*â¯ÜÛ¾a:âÀ¿ýòC ¸9áÜL= WL!sÏ
-w¸Ù»¨ý°×ÓLÃ4ϳ}ví4Ìv1+ñÎ#{yi¯ìyaÜ_ LñyÃÌÀf²5ü9øQ½~¸íEIÿ¢-þEI0[FoÚµÃ>ºw+Ç@mø5òe[¶öì n"9_ó'ÛGÛüíÜáeWÌ?zy½Ìß~]±hÍúÃWðÉö±eü²EþDû#K¡'fewC.»Ã¡ÄyKÄB$¯%Oçõäõ×$¯'H^Kø%4/Jõ@rÔº¡m£àaTJ à-
Þ
-VýÐBJÍyíW üR
7ªý£0äU$WÐËÈ+-xëÄWö«.òįôàmð·"û¢¾vøÏdDàþg2ì¦Ì¦qé&;^Í5wA
-âj:¿y`4&cóM`n¦c4ÉlÈ
-13ä%ÖtâyhRÆY:£3sÿè%$H.3©!
-endstream
-endobj
-
-539 0 obj
-29731
-endobj
-
-540 0 obj
-<</Type/FontDescriptor/FontName/MAAAAA+CourierNewPSMT
-/Flags 5
-/FontBBox[-21 -679 636 1020]/ItalicAngle 0
-/Ascent 832
-/Descent -300
-/CapHeight 1020
-/StemV 80
-/FontFile2 538 0 R>>
-endobj
-
541 0 obj
-<</Length 602/Filter/FlateDecode>>
-stream
-x]ÔÍ0à=OÁrºíkÈHQ¤L2²èépR¤ayûúÜã¶R3:ÀµýùÆr±;îC¿ßæ±=
%¿ôC7ûø1·!?k?dÆæ]ß.éIÿ··fÊ8öô¸/áv.ãzßã·û2?ò§m7ç¬ø:waîkþôcwϧiúnaXò2Ûlò.\â<éKs
z>vñs¿<ãï)äV
-)íØ
ûÔ´ankÈÖe¹É×Ã&C÷ß·ÕCÎög3ÇRKËRÜ&f«¹: ;fAfì5×%rÅlkfgÅúä¾×y¶½}eÍyǬc÷¬×±oÖW1æ7dúë
-þsú{1ɯõô{xýÕ~=ä7ÈôÖÐ_éZɯú-Ì~§úè¯QoéwÓÒoÑCK¿Ãº~³¥ß¡þªF¦_à±ô[~§kÑïtäß"'¿®K¿Ó÷ô[-ý5zbé¯^cvô{uô{üv~ߥþ£'þf¿-
-úã*f]òëûä×µRÿu-úûrô[]~ßÑïõ=ý¢ëÒ/ØÐ_£FÒùÁZÎ<B¿_è÷è°ÿ§°ÿýtþaú½ÎI¿×9Óù_èC¡ßëØt~ÔÎö.ô;ìŧóOý×÷©ÿX×Óï0¿Oç¿§ßj=ýëzúöâéGHº)pà®ûsEåíÇ<ÇëI/D½p#õCø{gNãQú÷R:
-endstream
+14876
endobj
542 0 obj
-<</Type/Font/Subtype/TrueType/BaseFont/MAAAAA+CourierNewPSMT
-/FirstChar 0
-/LastChar 88
-/Widths[600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600
-600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600
-600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600
-600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600
-600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600
-600 600 600 600 600 600 600 600 600 ]
-/FontDescriptor 540 0 R
-/ToUnicode 541 0 R
->>
-endobj
-
-543 0 obj
-<</Length 544 0 R/Filter/FlateDecode/Length1 15572>>
-stream
-xå{{|TÕ½ïÚ{í=ïd¼²gò"0I á0!Â@^L& AP&3;É@æáÌ"´SEDN©¥TÑ"¥ÓJ=hS±È±´¶µj=BÇöíÑÞÚËå¶½êé±²9¿µödýô{î7ã콿õ{|µÖ¨Ø°hÂÈéù¢Î[Ô ~cñoMe¿¿8í·áû\t ôò~
>4÷
-ö¿28ñBÜlÌ»E_àç?#yæ
-ÂÀÝÒn5ôa=*%¶½¢Êâ ïø}Ï}Ö<Òù¶EýÜe2¿úBØíyͣп!+'Ö3#BÏùhLþrìê¿BÿÐá
-1ð!hªHůRk´:½!-Ýh2[2¬èÿ§?¦)×z ¾'á;ÆØè,3Î<cÇÑÇ0ò:zë8Ú@¨`]5z k·£ìv4ÁzÐ1Ô^æ^ÑÑ|ÂHÝ~N£ûÐÃh=¼E?NJG,:Þg£ÇIöV´í)ÑaætÅ9Ä_dt@ýv.ð:Hdõñùð¾ÈÿõÁB
üEU]̼N9Î<ÇÔ²m Ù7à;¹bn¿ö³6¼ mF¯òÑ~u1Ú¯êgF¹Mô³r߯PYÙnsReEïá¿Às;ú!µ¡Ó¬oãÛÀÆ~ >BûçË,µXYÅÄËal;×v?+ËñBÀÁw3|·óûä ~Uòûð!àOQ
-jNq¥Å¿ù¤ÉßT:Öt¬NýÚÕ¤pumj±ÎuÐ$=qWS%_J¸AþT
-5Ês¸·ê-F÷³ª>áò|dºpùÂåyf¹Ôf¶
-rèã8Îÿø]é:ý/©*Gßµåú¹HÊЧèzÊzÇÒ
-îWeíMËe:¬ÎÔ¦rʳ®®Î]Þyÿò;&éý+¦+óyÚÁB6"Là6ÉäG
-"
ºÌFf³pAY±]¥fÒb{ÙÂÅËÚ¬L«JmKg2Yµ5ã*îîÄöìpðÇ~¿msçOBÏ^Ò>~S¥:|pÝk1ö`~±iÛÞÓ_=>wî¥_a¡îõï>oÛÖûª[BA½â¹MPwþä\Ïg1«Ë×ê0yéuÏióySÙÔ5oãxF
-Qʱ!C½g±«Ð>½Æ ×i5²Ûõjfºð3bwõÒ÷ægÔüÿR4ÊW¾Sý^ûSêf£³?MgÔá"®H7G·Z7Æî×ÏCü£ºGuÇÙ'uOêÌ Ó[5Vý\¢¯ÇôÍ|£¦I¿¯×zõ[p¿fPç×âmü¨vXf\·Kÿüeþ æþºæî¨Þ¶m̨Í`È?L1f722Çç3òX*½qÛôñ»âêY<þ×£läêRXTõú4d¨e Aç"¯Í01F3¡Í`Ì@Wè¯ÕfÔ3~òk×Z,f
-$¯3iùÜ4-a5]xçÂes]]v
ô>>À
-ýáÞu·b&^ù¥tNúý{Ã/ñÕW_}þÑ¡ãßþwé·WOÐB
-Õq?b«yV{fU¼VfÀF=4t ²¦^¥ÖcdÆþô½Ú}j½©8³ZkÖZ5Pùg9«!/7×ëJ«gè
-W1$qqFFo6w´r¤åØÊ¶L¼91»ñâXs|6u8Þ}ñê[ܦ·¶}¾´â;y¶tÕ£BdsUch̰7S¥Õ±>gM+9¡ ;k&ù`1/(+'аê¤a'½Â÷ó/{V·ÿöàzÖ´_¤Ò_vïfºÍîÝG~ñÊ¥ÿÚºõÆô;ÛdÌwEh³ÀØcZzÖáPB sõF`ºp¸RIrã\W:=w³Õ2Séûîo¬ûw[nÛxiOïñöÒ÷w
O.]²|üÞMßé¬-¯øÍ¯¾ÄõùûæÎ}¦~Qo¯çõÁ,[zÅA¯
Wú¥óô4Öhàm°ZÏ6¡^ol\êaÖs=YësÇ,ÜXù^8GÐÛj¨juÉã¹sfK]îÝ-JºÒ©;é3'A¬V+`Íæ2ååYu¨q#7ÓÙÕz^¶·"L
-V¢QfMd&²F+Ⱦy=\!X2²ò³ËʩάÎZ2ͨÙm$P+ÓUÄÌÄ8²|ñ,&AyY5×Â%
-çWMÖ7¤cÔð:M
Ë5ï_®L9ômjïb[YÙ¤]bêm¿`cêÞ~Ä_<ù×'Or»å8óÜUàÏ<ôÓ"Ô )gÎMF8bmo2fZ3pfÞd2Ö§Y0Ân,s¯i_:n2¢s³¼ÅÄ嬯|¥ÒdC²iY
-~bê&¿Ôéäï¢Åýh*a+âjÇ&ÆÖ¸±gçS¶íoMkì»ï°}æêjö»®¹|mϳ'®qNøúÜ-Üý
-ð \u:>'7ñ¹¹9zj¶ÊÀóZi·òúL<²}úñ´ì¬¼ÜL+*½
-GÓÈ9{4ïh¾ñ8U³Çñqî¸áxÚÜãyÇó,×ÃÆÉ¤²å,.^¬T»[íâÉãËä©
==ÛäX÷woi^Ü1!¬:þÊw
æCË~~¸ûÅHñнϾj`küíîNÿ
ïU´\Ý}üvñ_<ÿ?oÕZ-]·ÕÖ./?v@óÔÁçà]jùEw¡í~lºË¸=Ãoð%Ësîuå ö¡RYR¤Tg¬Î§¼Ûï®ÞÛ°Ot<²¦Âù@Ç7î<r°ëéu+*ÝÅ¿û®9³_]¾lmçvi×?}kÂy+ÕíÚ!ÎClÌEbaA~^.?+ÏÌÊÌæ³²2Í&czo1£'5¦/µóv{i½-'ÓÀéPYV7Ë2V÷ì³géJì9Ù¥YZ±PÍ_eÔ¡bU®ÔjGEº,±òÂ;¦+U$ ä¤'Éû¥¿ûpé,uÉYJºÏH9û×2x×}9®Àðq.1/^ÒËLG¡"Lº{F[©ìåòÝÌ'vX2ªj×xçî8±#Ã\=õÚÊ'Þ<á8×lÀWÜ¡
-îÝruݽa8gùÝ®îdwûî̾µ~佫;¹M._y7~îfTp¶
-¤3,£æY©7<¨Ó£}*v\·ãÈH7
ô4W
- O'[Ù
óÏp@÷²Ëd÷ënËdÜkáîÝϼq ~.dBI¿eöOTNÀ ¿zÿ~¼m|êy´
¼M~ÜyÈÇZ¯2V1,ÆãUE³X¡Þyùl.ÔzcU%t*æÌų®¾À(:´N^¹hLêº`y r_u¥ª ÐaäªúªâjZ²²ôÎy¹.^!éj¹Q¼Í¬äÉ-MÔ3ólÊYiùdöâZµï©¿88üzÍX(}ðoG׺¿Öñ¥c¥9õß~¦cÕêGÄíùÖ{׿½ydôäµ1·ô§?ä?ã¨:úìpÏmoLÜÇdlÞåëú2Ô;f1ø÷5UÜ6:«å;
-î@ppÉ ÇdTÆ-ûUã³ÅTZµÉd«ìãçβE«¼|ùúÍ\zý]§V÷ÞözÑ«ßú¦Nûºt¾yy¸xŽêÈÎ{
-:ªðÿyî/Â=w.ïThµ³{+xÂäÅk9÷ÜzèìÀ*rÆàY^=uÈKÑ%õÆZ
-wG®e$¶û«ó%éàÎòÙ1r<AzSk|I1ùEÓ¦CËß"eãKl¦JùâziÉÝg¹·ä>»½¸Te´[JTúÂâ2å\GA³Ü°VÍ<L¯U)q£-¬TuåU9SËæ{ï_'ãµóê·ðËõ{Ƴªå»úöØó¾ÇToçúîÛ?´k×uÝïE¶ïÁo÷«ÏÞïìöî#¿ Ñß5Ù[£/¶¢;K?@EúûÞù¦¿&ë»ögi?"
{5ü!uH*LùI0
-J[ê
-¥QfHòIGE¯6F¢£±àÀ`Bí¯jæÍ«úF
ÁD<}!àû«¡!ÁC¨âG±b J×$nöuþA_x@¾(ÃBt¸o(è/NÒtúÂq¡5´ÃäÃâÌaáSÆ»ÅX< 5U5dBB(*§¯ìAÇh>HDë««0¾u¸*ùÅþHl@¬
-hL¬´VE¡OTT Á¾*nj1(édΨê*oú§Óýíø3$AE!óÄ/¶EôÏä¢Óu±P0NêA1&¬/¡?ÆÃ20`rà
-QÀDú`p0<
-â>¿?9!Hw
-'DªÃ´ðh8 at 4 &#à P&Tú%°=1Ç!Dj5õo|Ð"ÃAdVGbB\?
-LA8
-j ¹o0ÄELEbâ
-Í£Q±ßªd¥¦Ï|£(öI ùzÐ
-ÄqÁ>v";9!ØIêÚ)là%gúDÈ&Âuü@Ø N*&nK@Ö¾hRÌ×7$ Ù~à<Ã1¾0èG1<7áa8P¶O¯+vÙÂy6"M]GåH|IF}þ-¾0rªz²~|öÀ&
-¨(õ¥V¹ím^¡³}¥·§ÁãÜB§½ÛÝäjì
-з;·wU{W
-OC·Wh_)4´õ
-kÜmMÁµ®ÃãêìÚ=»µ£Åí1w[cKW»YXëÚÚ½B»Õí¦ÞvºTaåvuf.Oã*è6¬p·¸½½a¥ÛÛFx®¦
-BGÇënìjið]öNðh¶mî¶âjuÀ¨±½£×ãn^åuÀ"/:¯§¡ÉÕÚàYã ¶ÉTÀCpuÅ«ZZno§×ãjh%´æ¶öVQW[S×ÝÞ&¬p)
-+Z\²n`JcK»Õ!45´64»:§2Å)8ÈfWËÓÐâ:;\nÒ
-ðO#Õßæ>ÞvwRw§Ë!4xÜD
vPøV»
-»\~[E¨qRJ ?"¤ã4ÓaE}/îa°j
-ê¥oÅ'ÕPÉ
-1ÂX0ÅDð
-Ãh,ø9e+)[ÕLúÇÄxvªàVqh´
-hcd?£ÃpÜ
-)¦Søüúd
-My
-%jCz¢
-¢¸N$f#?ªw
-Zhõ
V
-Ï
-xÈô[¾
-è"ðR"]£VÖ¬LáÄ8éëë}KæßDêtÀ²zú¿Æ$t7,#éVªÎ×ǪðûÛ?Dúÿø¿1ÚS6:ï£>QT·ÀX<ûiºË:(¿å62ïA:'*v
-P)aaʧÎÒdËÑä zE¨aº>ªÄ½,!\4*d[ü
-ÒI ªÅô÷FHTáä@¨eÝåHiÉlO;õY ï8ÕËk|}rú!*CKÎ$ñéÖdz'u@ê
-ý´fÅú$2ôMØ~ÊO¦Iã!¥J&=ä§²Tã ¢i=ÍN¯²Ê#´2Lù µM!p}% ûGBÉø4Úd®L!ZR× Ôf⩾ɺ5
-¹ûnâÏÝcÅ÷!úªÅ °<J÷-bQÕ4¤n¶`2:©f_ær²¢ÝJÕGdM ¦§F]rÿ"Rd¼®KZ
SÐ
-¹¨vÔ="§z^ÔçIsÃ
-з/²Ö
ÖQ.àÖI)=w+¶ÀÛ¥Ð0Ò}ÒnFä4*ËkU^;dÑEÖÔãSR§k妵BÏüW)³
-ÀÛMùý)ÒnÔs¥¢iÅp&<A£Ú#£]ðî
-5kW¼LÚS\ª,e=þÝ;©ý-ð¨ý^ñRß4
-ºÔFâÙµ Õ¥ÄTÅnºrý§¬=Ð <S0ò~âÝÆI_·Ó(».JÕ@}Ý9ÂJ¿æ])ôcíMÇ7GIºÏR;d^IÙÓ=ØDã©EѰsOç+×.ìk~zßILÖíé;wêéqêTzþt¤ÔÚÔ\
)mhÝÔ¨\å=kêÎz»Ñμ%Ëgú©Óoòô!×nùnzú
-Ðsº|OJäý#2y2¡³S{º|QÔû^Ê-VVÌä%/}ô´@¤ÅoæÍv¨7Ä(Ýïe)#´PN&ľa
nÆ86ãVõi>HÚòiøÇ¨¿£Ê*H&çÉ*
o%ïgSä_·B3¼>}[=y%¤hP<.ÿRFdêþ¿¯US¼·À·ê '¿*z
-ÂØô%ýï"еàûy´þºÿþ&Ø]ÎoIø_$ü¦ÿRÂoHøñE _8ÝÌ_Ø_/Åÿ\_;.áW%üJ:~YÂ?ðKþ©_ðvàJø¼P_8ÿi>÷üýü9 ;Ç=¶þ~üü.îì÷Ëø³½ø¬û~~îL5ÿÜGøL5~VÂß«ÁVüÝCø ?
-2×ĵ×׸ÓÍø
-ðÿx?Àßð©'óùS~2[ÂßÚÿAÂüf.ò#üÍ\|âþðÇ2ù'$|,ý~ü±Lþq ?Ö«çËÄGwàGëñ#Ðy¤MÂG¾ªãHø«:|XÂ_ðÃÝfþáüå,|HÂ_:ÿNÂá¾ÆðÞ߯ïðÞ'áû%|ÌÜ'á/¦áñu
-üøGø^ë)åÇxï3ü^ ïùÂF~ϼg÷
{Jù/lÄ_pr÷â»%¼ûÞvJøóðú¼wHø®
-¼|ó_^ð^*á[$\_×É×ÂuKfóuxÉl¼XÂ$¼ð#¼à®pçKx«çêùêt\À?Æè8¬x®Ïp
Ïp9WÉÂe.MÏåKkp%l°
-fló±Pf¥óE<+èøÂ\ ÃN.?ÏÊçà<+ÎåëùÜC8'»Ïp¶&Ï.ÅYΰÕ3`6CÂ0ß"a3°5¯À¦CØNÇ&>=§IØ a=ÐêaµÀE+aMVsÎJ^-aòõ\%Æ&Ì`éx&#f&À}ÌÜÿÆ?ôß)ì¿ò¯¡ÿ
-endstream
-endobj
-
-544 0 obj
-8326
-endobj
-
-545 0 obj
-<</Type/FontDescriptor/FontName/ZAAAAA+DejaVuSansMono-Oblique
-/Flags 69
-/FontBBox[-405 -374 745 1027]/ItalicAngle -30
-/Ascent 928
-/Descent -235
-/CapHeight 1027
-/StemV 80
-/FontFile2 543 0 R>>
-endobj
-
-546 0 obj
-<</Length 315/Filter/FlateDecode>>
-stream
-x]Mn0
÷>
é"Â& i$ ±èJz
-ÞØ_}M¨»s_и`EÁ5taçÖ½´=$ѵ®uX6Ó¼?ÁevÀÓXKE
-F×*ð½Ë
(x^U«ÿ¥,×N}¶>He
-íÀiäýyy'·ÔOw¤¯3â
-ò4#oÈÒ¤Ù"?Q_"¤ÞõOÈg⨯HçJA}Ü_.óãÌæÏJäeþæÏÒÈòå
-ÞÝOä\ݽqÇ9cÂÆÂï?à®ø|ð
-endstream
-endobj
-
-547 0 obj
-<</Type/Font/Subtype/TrueType/BaseFont/ZAAAAA+DejaVuSansMono-Oblique
-/FirstChar 0
-/LastChar 20
-/Widths[602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602
-602 602 602 602 602 ]
-/FontDescriptor 545 0 R
-/ToUnicode 546 0 R
->>
-endobj
-
-548 0 obj
-<</Length 549 0 R/Filter/FlateDecode/Length1 22016>>
-stream
-xÝ|\UÞð9Ïy.scî 0#¢â%E À[eÌ (0ÄEE×Äõ551r- uÓÜÖÊmÓ5×0}Ñ·ÌZ³dÛjÛj³Ýµ%wßVU8~ÿsg¸eµ¿÷ý¾ß÷û>Æ9ÏyÎù߯窫©w#jD9K*«·,³ !ô&BØV²¼Îî£ìø?AHH,^RÙåA³-°æ
%
-¥ïIîëÅ®,s»~þFd,Bqcáþ¸2¤U
-\WÀõвʺ±¡¡\?×UxJ·/8
Ð(;»®,^Y½C9 ÷Gk{Uq¥ûãßI
ë·áòZµ§¶î^´î6B¹ì~u»zCûk0νs^ìÏC]DdE§7M>f_Õæç6$<"Ò3Ô1,vø»FÆOH4flò¸ñR&N<åîTgZúÔÌ,ôÿð_:Ïßð6ø.å3
µHè}µ¡3p_àëÚðy¼¿ãý¨>×£¯°¼ÇèöΣ`¶íæ;É_P=9ÞEçÐ0úN!°¿¢ðÇ
-
-ª:òG/+²$£8»åàÈvrÞ3Ïþúü¨Qq.íÅ~åòi°·Ý¾?Oæ"Ý!ÑóéwÝütTÜÌüyö6¡Í\
ó`È®`æ33ø=õäÙÙKÊìXøÅ=qè¼îˤg z)(ò10dìë¤õ:.uFK]ºý¬QVG5ªLDݵ$¬ûsºC1óU<ù Fgn& ?çÖ "Xn²¶ði^6Îdåo¹ÖÕÝ4%\NºÖe
-JI°c¬þcÆ%Ã &Ùc¢i[VýãGýü/<öÌhyôå_
-·ö=WìúãÃK!n®±¢<§¬ ²s»þ´be¤³Y.u¨®u]zÓbMIt:,È-V;²c»5%â1D«9ñTÓòq¾%ßj[ã9Àcp7$®´*û
£ÇÅ\±|i¿ë÷oö¼+.úpÅÚè¡ÿ@OÐ3ÿvÓiÖg0pþºA¤ /küc at 3vØ@|bر¥®ÛÒÖ6ú¹Ú_<ÏØ2ôl=·¨ @ÀWàãs1ë.Ìé#ìC/ûd Hg¹4óÞud1øJ7ü±ô"M¡Íz
Î!°`âg¸^Þ¤ÃG¥Ã¼Ö±u^ðe3²q¶°Ë»»,W-WÀdJ²úË#q2¨xæÑ3øúK?§_Ü{o[?ù¼ùVÓww¯~EÅû*ØÊ<ÀkDCP¢34ؤ'M¾ú¦Vßö°]!ÈflåЬp&/U`] 0VÅÅ3yÙ¬¬&6
-¿`µØ²¦ÇkÚúØc[¯|}ã+7n?ø]çvþîÝôú'ú)}ðãÍt^ðÆ¢z§ÓÇ$A:½ ""#ÒÃ#
-ÆH1
-íÝWOJÿª½¬fvò
-á23T˵«6p@ª¹ñjìÈjA`@
-"ÎëþìäóNU¹Þ¢`û?~÷u¸mÓ,Â÷Ê/¿>!åå#q
-öÃ&ì¤<»ïùC»·Jð}Ð~æ
-¶ùêE
ÉJ©ÉNÚÃNXdõÕÍs³|sÏ
-ͱ\yÈT4óµè¾yÇPèíSæwOîÒr BñÀºJtNK¥D9QIÔ%ê
-ÆÔÀÔ ÔàÔÔÐÔ°Ô!©á©¤QlåF¥Qרo44CCÃ47GÄàÜiCp¿À38 ÏDÏØèy.9+Òs)3²S}6ª$5ÇM®NϼH?îY!¬û²võç=k
uÿ¨fßâ¢ES³/m
-ØhOJÞöâ½Â^Ã^ã¾À½A{÷ì
-5/À½qa|òxo2U'«á<íSþÙª'_ÄÇMz©ñoÞúç×øáíº¯ôø¼-g§³c¬vW¿ûÊuû]_ÝwütøÃ
-ãÆ¶ÅÆ$mWãØj:]´i¼NwÆ"ÂbõĶÅ/PߨäKÓß3ÃOßdÓ4Ùf~ê¨II<v¨LZ:¯2ßüü
>"0XaL$!÷n\·ñÑæMk7¶]ýKÎþÂÅ{§>±)îÉÊ/¾è¨ØÐ&¤\xï½Þÿ~ÔM»ÛwH·æûñD¬`8çÞmjîZö«Ü5Últ¾ä(²âÓº£Qul±ý!ttOîHâêéº6¹Y'K`Qþ'á
-+«.RR¼1OúR±è´·Äß,ÂåüèÃl/påAgÕÙBL!>ÃÌÃ|'X³Ù¶ù>hA1c5ÁÇcôd?$:þû¯¼çþi4ïÎÁÓÎà²úô¹¹;ès»'ª´¯E`'ccC$äÚdöoÒµ[ñr:Üj3N1ý2ØFoÊsôz¦ëäÀP´ºÎÿå¯o¶âlTó߯=çdCsá\úú¤»ssñu-ª:¯¼ý9ñØ
-õJIÑatXlñÕµ6ù¶ÚôJ%Û,ݺ;¼YïÆo)ãµôÀõla £ò¾ÓeÍÒõ´w¿^Ô>¥ë{8O2tÛè¿c¸tCH|pé
-^
-àü
-n±âгbcj10,,Å<Ú_INtv*¸¯²\Ò¯°hÀaÀüyV¢Ùý ò@ì_KÀ¬>Êêk÷{ yåKß9E¿é.¿´¬ö²ÖõÛ*Þ>}>Ó.í{kÒä
-Å~ç×õ^vÆæÕÕËí! í{_ÿ¯Xvî@ÃÅ´¬Å÷×ÐÔHHx÷,g'o%ÐÊü|Õvm`Oí`OFôçL½Ã`4èÎȾô:I,KÄ!J¢àÀľ`DFì@ÈnÔIHШÈuv'NÐ$C¢ÉÒ}¹û2! {¾3|ô¿Ùos$¥X<çW
-
-Ò
-£õÖ¾:_¿ªÒHÃ,ÌæëæÝB`Yø±¢Ç1ðÏyOǹïÓ4üñûô'´þ|MêìyKÓÞ}EXß³1Ì4Lh3NÁS¸ ½ÖN74Jz4¤4EbAF>Ü{ìè5ébµ·tØò50¶J:> ]°~AéFèÇá2N7AoöUàe
(=8Xcæ`3P"bßãôF+½þ
-0 ¾¹9RíþøÝ|èèg]³õ Ihá!ÆÊ@+ø/CË9å÷λ]RçÍÎ,
-Å`èIgr`Äõ,
-¼eh[ï ` Äb@bHGDiÁÈ&=Dy®F˺TY at KãM¦ÕýF<c(gòEÍð 69D½"ëÆóÅÙ(#uâôW×ñ¹U=×+.J1="yñæH¼®fzL~~dã HäbAãs$|
-@cL<üvtôÞD?æµ÷Y²¼§Hx´§F8Ù½Bê<@³ô|v@ÍuÍ
-οxÖêWÏã½7°ütÏÛm{´å1áUÏ~Z^гYêüã;æ÷\ýñÃë6Î/2ÃégàR[ ÇO"4^oè¤gtAÅÔ+#HQçÈúNé>Sèk £[kשñk7ÀÝpõÐÕÑ1_Jº0 ü HN4Xº;º;¬ZÅÕÕÇ4;:"3Gð½
-:A¬¥£ÎSpâ7;¥ª-ÍC[Åqðå´!Èò/, áb,I¬
-
ÐQîsWþú«5þØ1a$«íA=ÎÇãA:xâÜÂæÝè=u@ÿ¡¦->§,hKÈ©À&biÒ·ÖP? ÉY¡Ð&y[z%:¼§$Pcõ¬
-3~Z@»éØÅ{væfo_ðËW¿°èÉ´#ñì¯ wŽ6ñ·/|:énFGØûa~îwÖ9Q¤ÖjAP«éÁ÷tA
-T*R,A<Y
!§Ñ.¬D"ë±,g LÈ
-zO¹<¨LboÆ¢¤ÂÒu,ètB°¬KÆJãtYB©P/,@=:]Øk°"*Áºá$V®L"ÄñR2^7d+óåùÊ2R.ËåJY)5È
-ÊHóP ð²
-+Ö®vüÙ't¦ÒÅÛeÿîÕø"½·'KH_GSùù×gb>Ôöáh²3*$Ð!-Äç%ÓaK~i0¡q~IrrÄÞÞ©ã;°¦ÜA!ª}cQbþ=çÓË´;qø/äßs`áÙ³'3Õ=â}¼sõÌY¸{pnMwaV6½@KÏÑÎÈ(¼m?·Är7ÄF¶:3¬!×XUi4@ÔCAGAS§SX¼4ÁÒ dJ7¢tDF§:Ñ ×©OA
-JxSUӵɽ
æ·Êi¨7uÚ»_ÝÙdÔÆHÃ
P2DèáÆHÓ0U¨0L!Pbtq¦a"§(ctMºl}qin~®q¾©T('¥b¹´Tï6.VI+u?Ò×GùBH @#
-ÂHénáni²aºa¾a©P.VkI¸V\%ýȰÖqÜ:&³8ÆcÙûÓ}gÒ^:|ú
-!½§l¾µW(íÙz{¹Ñ ïÈf¡!/¡ÃtêdB£åÄP»ú7hߣaqô¬}÷}Á©8ü¾}³fs¶£ãì¼ç³GÀ;p5Sí¦8éÛô-PîÛÎ)}Ï&Àï?Øuçg]w|6aýg²Ï3üáF{AL>ºhDGMgÉQ
-X$sôfÜÞT^o° ×ïüHX{ßü÷®üü×ô}ü1Þñ£v_:MþõØà\Dz3Äñ/Y."ë&wõæ:¿dÌó¤¼z>°>ð2¢É#Ëc,d.6éʸ í2˧
-ìãkxâu9ÕI6F-P*c-+'G±Sr1öbÉ,¼®mc^Ï¿$û·Þ³¤¤¹;\lÎm{QëéWü|Á
-Q`Ó",Vß°ÀMÂa
-¶|Q°-É4.Øx¬¼üµtð¡¿R´Ü{Ú`µJÒÿüAhVBu7¿fç·¼ÞbñF ¸?¬8ÐúmÞî"_<
-SÈݦÊ!&Or¹Ñ]öù«©&Nt÷YÕ hçñZy¨ÓOëUÄ_AbçÊXÚ(¨õjÿ6%æ
-ñôÜ/¸{vgÊô=ã¹XïSÏë`?4Ò[,JaÅ D$%ùL°¢ýõøIM2¬íè;wrðæBd}nþ¢é§»·Ò|ä&èí[_¼!%ô\x|Ãíû?ûð£?õ<§ò87@\5¢çÓ!ÃAÿDD
}I"4Ê$zvc¬4é
-}
-iõAg¡±¨zTÐFB¶NfYõZïúïV(<ºF at .UJq¹²7(²Ca¢8Öp¯8Ç x§bøä7ñêÁm`Ç:qõ¼GàXqQÏ_{Úð«4U.Óeø W¨8Ä,¯|ß0}I±.F (Áù;ÔGzI\°(«ìà>Ô;é8ÿ
-<®ûõb}NÛÞõ3¸Í`£¸MNqFJxhbÝbyÚHf>ʰ°?C4²DFðÎ WjdµÐðn ,¡
-d8e2Wp Kzab!íÉY8[à23øE±B>b¶@×óÍÛêÎH·ÆoÝ)¾ukT²ìyL÷L¡äçz[K©%xGDëÐ09
-
EûFDEe'/41]ºèü]JÀ BI¤9AIÐ%è ÆTS
T*¦J©rªªKÕ§Ry(ç y<ãB´/÷ =x°ì÷H{ä=ÊÝýÃãAtâAé |P9¨;¨?h8h<NâÂIrR<)O*'u'õ'
-'YßE,Jå
ÊBÝB=Cü]cþlS}èé×/ö ?5nB~^ʶnÙ²õÑ-[ýûõëÿûµkÂÕñùùã'äæ»!Ù£oзq"µwâ^º®&x%ÞÂkñ&~¾ôËõ}ßT§#ØZbåQ-6ÐDìóÁ¦¡wEðÕGEߨÈD0ã.nǼ9
-FCÙ©¾Òbl±~!â-èQ±%p¥ÕùD+òìé`&Ö}¹¯àù\å,k
Æà/ÄØµêÏ$ù8õÑY§~x ê÷_^ûv·ÿÇéGë|ÝÃ6IG^qÄÒé_\Ëè×ÿüÞÀõx^
·FöT¼òÌ3¯üê/ât²çµüÑ¥;#±ñAø¤#bTZ$L6é±É"t¢ìkj¶tw_âbYÀF¶~~Ë*V="cØx9 |LGà÷¢¾xíµs=¥ðî¿·ºÇ<Cwc×IÖco§
-_á~îi$?Cûd"âp$³îxw³³
-Ôª q²&+z~båÏß{pª×&ïá
-¼ì}Ũ¶wëY,<Ås;K;ÇÏ[Q}Ï$µaEG´~ë1TJü(ÕrjÐS
¾þTd1?G¥ Ý0in%ÌæBã¥A·Zo SlQ¬'Té&l2M¦ÜGæJóäyÊ\Ý2²¬Tu¦Ï+¾ì9.̹FCv2fÊ'{êÞ*t=ÓÓÆíê]òézXb¡b'?ѯMzfá\zÓré·ÌDù 7Rÿ$¨ûlëbÜݱs±ìÿ[f°¿å
-õ7ùG4O¶ü
Nî°\UÕÇ*áKlª£³BM«ì>ÚÏüýdãû=KïûA
-úmã*RSWO¤»è¼O¾xSZ·k׺ïÚEÿêIÍøêᲦ¤înpjêUþCñ;¸ *ïßÒð>[RnÀúN¾"uü§¦C2nõýð=
-
-ì¹w
-ö)4¼ß¯Sñ _«bñ"*CgðRx_A¯ WÁR;!ÚFh|®»í0ÞêYÍlhz¼*
ÿÚóÚ6þÃÈÅN&Ñ<ì=ópûí)êâ¿~Ý£½ÐÛ¡6?µí
-Ø»à¯w)ÞÖÏ;`Ï»ý¦xz
-×GM:Ó¦k>q>ó|~äÓf6Ì«ÌG|ïòãûïW£V»õGÖW¬¿·%ÙæÙvû~I~'¸Ä¦¡dÈÇjDµ '°4W ëX
±¹W®{eaåBm,À:6&0_«E¯×Æ2|Ô±Ìh6f§ï¿ÔÆF¨eÛµ±~;úP¡«©Bì®Ú
-û´1Fvã"m, ±QߤE?§!Ã_ׯ2büDëP´±[ÑDS6öñf§Í¨,ò¡©êò%euöá%#ìIcììéåuµu5îâÊ8{vUI¼=¢Â^ÀVÕÚܵîånW¼!ý´xN½½¤¬¸j»Ö^\ã¶WÙ«ëWØ]Êâò*ïÂâªZû,O'ÝãY6xnðõwMm¹§Ê4V½Çnõ[Yê©Bê¼²ººê ._^_멯)qzj¸ã«ÜuY|#±ÖË}xÛm_ì®ð¬oÿ77ú6qÅvr¯è£¾÷Ï`øïÙ>s9h¯«)v¹+kÙ=¥¡ùîÊòZ.AX]æ®q®%5ÅUunW½´mÀ0)Î^ç±W5Ø«Aæ°Á³¸.¯ZXJh¶²®ÌI¼¸¤ÄSY
-ËÙº2BrWÕ£¹H¢G
-q ¥z£dEy]§¾©,×±õ5ª(l}-¬gìÄÙ+Ýk®ßÚ²¸~8âÎO½Ö
-zÕå@ªÆþ Ô8
-vçVXá©qÕÚ£{}1áöÞ°G3׿bíäh>³Ø
-ÞÄ ÖË=å½¹WÖר««ÁÅW¸Ù
-<H1eÅuö²âZè®(@×gá.{}K#8z`\V9ü>ÍÖz*gsÕ1EÛ+Xñ.¬..YV¼_¬òôÆß° $º+JQÓ3íYy¹Eö¼¬¢¹iöìB{~AÞìÌ{tZ!\GÇÙçfMÏ]di¹EóíyYö´ÜùöÙ¹qöÌyù
ö¼{ö¬üìLËÎ3;#;w=öåæÙs²geТ<¾UYÈÍÊ,:.ÓÒ³s²æÇÙ³²rÌ,
-
-2Óf±µL:Óróf1ÍÎÍH+ÊÎ˵§g+ié9*mÀÊÔ´ìYqö´YiÓ2û°e;}â`¦eæf¤åÄÙó3§f³È1» sj_ ²Iäpr§æåfÞ3&`(dz&G¤Á¿©2Î~.°Ëàåõ27»03ÎV]ÈHÈ*Èr>aãq6È)/W£éÍ}Û:`Û1
-Ö²PþáaÁdEy-÷tH-ïÕW
-âeql«í%s CybuM9lYQS^ÁÄ^\³5å«´T\£¥ªÁ0,é¯q×VC¦*_î®hµ5,qJÊ« ܪÔXçâ+©è¡uö%¸¢,ÞnøÞz-aEù²òrQ+ã«Ëª´@¦B%^P
-*GK »©Cv4 ðá5Fa
¥Ã:¨Öë`µC³Ù¨
-ÖÇÃ(
-UÀË
-zaÕò+7|»aÏrøtÁJÊÑR0º ;ì.qìqóž TÁg5¬YpËaö{
-s«Py)Ñ$í
YÇ©hãŰª[HµÝViW-ÉͽFµàè~VÍ5Çöºøw-§«ökü©6XVYÉ¡Ôñ;^ù¨B³ãá½4öa`~Îè¯_Píaì ©O`©çtöQãâÔq[[wëø]/ïÆ§ùR PVÏ¡¨2YÁm û|&J>×#/üV©R[Ïe×O;l\ÉõéÕuÿÖÂî¸ïà#®Ïwì²ê*ìrMªµÿý\{%§R[ÝkÑu¬®£\ÿ¯7òY¥qèîÑÅ?8þÍ$±Vpxêþv\¡EI¯J8n§¸\£t"÷Î"mW1@ôðÈЧþ±¨Oß,_ÔiÞP;`×Wú$Ö?ôßgç<kZÜ·½¶¦JCäÅߣOÏ1vM÷ü»/~ü;º¨Î«yÞ*Ö8 ©ïÛËdÒÐK%÷¾rîËÞÆh¯Ó¢:£RÊdêê§óþVçÍ_*¯zRÌ÷y9rqJ¾ªúIc ¬cÜis5ýbh1·Õv½8˧öyêã\,¬ëèN|?%ñ
-ËhÓô^Á÷OT¯Ñ"ÓW9
-×l<
-±jTÅ»¸ï°}Ò"ïÃ:ªlÑKÙ,¸*
-TM¨M
ï|ÀÍVLº8S¶2sÈøÉàûÖ|V¥,OÓ2÷A×d©ÒÁä?§s!ç?^vÎÌqݤ|/\¯íLãfõÚÑlÎ_CÇÎï1)2yæô®,è§©\^Loò)K¤ðx¡
-ÔάÃaç/K*¯.9fÂúìÞÕ³9¯S5Ùª0U»Wm"§t§rfï¬M¥qÙ
-äBõFªÒ´Ï©ýdÖ§ý\M»S{uÇìÛRË}1¯Jãº.ìB÷ßYå³ûYW³5ûÌë¥l |½~ä]÷ïÄ÷@
-fp{ÊÑ(,ìÆÃUcW&äµÞïÔõÆí»õØWö¯?ãúÅÚþ
§ñµÖõͪñYÍY}=OÿîNËÛ%«5}_õë>ÔØöFý«_¯ÓÕZ°¶·*Qó§·2YÁïöåtµ¬ä+ú÷{µ¯ÊY½¶c0,µ¾,æÕÃV{i~_Ü!Vó|¯bYÁÇuZeÂø«×Ö²ùUºâA]ÕéÀËËÉ¿ë»Zë©Ê¹Y=¯ÁAÞþ¬O&LêéVå ÷Y6
-®Cô£Ü¥i\=)c8
-ÿóµ.ïeðNà4ºxåÏ«ðjXQª¿
@·B÷¢;üqÀáÇHiCp
-é¦ä%7È¿oÖ¯o4I_Sòõ)ñÆõùÒ&r£Q¼~mt}>¹î¯
-#ÿü*AúçMòUù/JþAÉßÈUòåÒ$vQÒÕvû¢ó¶ø·iä+.éäü¿ü9Lú%#Sryù?'~"}z|B>ÞAþHÉGüáÃ
-$oQòær~C:OÉ[C^§ä5J~CÉÙ>R%g(9MÉ«x§üÉIiÿÏãR;%ÿybôÇÉ6';¤È §xÜA^¡äØÒÖ&½LÉQø:zü`¡ä%9ì"¿2C6r©³ü(ù
äùçÌÒóIä93yv¿Uzv8Ùo%?fôó5äQägì£äiJöî öºÈ§,Òò
üÔ@vS²ì¢d§i}2^j¥äÉxÒø[vOvPòØÖÇÉâã9¤ÇÇâvJ~BÉ6¸Þv<æ Í æ4ò(pû¨?Ùj$M0Ñä"[@h[ä+ÙLÉ&J6Ròð«ô0%¬ä?(YOÉéÒÉ:JWµÖRòв&üÕf²,§¤¾Î$Õûú6u&RwJ¬µZ§XCÉTSâ©*<;HUåp©ªT',K"K))O"e7Éã¤7%.JJGH%,Fiq)¦d%)yà^£ô,pû_'÷ÁÅ}þä^#çOæR2Ùa!Òì$RDI!%ܳäSçOr)
GI³(É9Nf'3²¥ãIöTL¦gKÓ)WÓ\$®²Ì`ãÉÔt«4ÕF¦¶ N§^LOóÒ$½M at pæ4Ki¾$
-+gªIr³
-7ÂUªI/¥Hjv:]âÝL¦Ü$)4L¤$â"FJfñå/£$y&*IÆÀ×J`a%£áöèPJ`LâõRüq2*ÎOåOFµ mÅ*Åù8Fîqä]i$%wÁÊ»d0QAÉpJb)æKé#õ%1DûúJÑDÙGIQk}I"
-öÛ(±çÖtb+±¨²ó5$__â«ÊÎìcÌ&bVeç²ó1ÝѤ'&f[ãE#%àÄ@>è,D¡DÐ2%?!À¹I&àQYnî
-[ñÈÿþÐÿmþáèÁ
-endstream
-endobj
-
-549 0 obj
-13067
-endobj
-
-550 0 obj
-<</Type/FontDescriptor/FontName/SAAAAA+DejaVuSansMono
+<</Type/FontDescriptor/FontName/MAAAAA+DejaVuSansMono
/Flags 5
/FontBBox[-558 -374 716 1041]/ItalicAngle 0
/Ascent 928
/Descent -235
/CapHeight 1041
/StemV 80
-/FontFile2 548 0 R>>
+/FontFile2 540 0 R>>
endobj
-551 0 obj
-<</Length 526/Filter/FlateDecode>>
+543 0 obj
+<</Length 604/Filter/FlateDecode>>
stream
-x]ÍÚ0
÷y,§Qâ{Ä¢?*Ó¡J
°àíësÛJ]¾8÷ÚbÛÃîÐwsñmcós×·S¸
-÷© ù)\º>s·]3§'ûo®õ±÷ø¸ÍázèÏÃjßã»Û<=ò§M;§¬ø:µaêúKþôc{ÏÇû8þ
-×ÐÏy×yÎqÏõø¥¾Âºm|ÝÍçØò¯àã1\ìÙQ¥Úpë&Lu Ùª,×ùj¿_g¡oÿ{·,Ùr:7?ë)ºXZËjYÈVãÅ;Øë\qÜxA¶ú%y~á<
-~5ß°ÆÖz#ïÀ[²ïÈKð;çñà=ù5²+É%þ>þ>þë:úWðqô¯lþÕþ>þ~¦¿£µ
-ýnB³¤üþjã)¸ ýؤü¤üßÀÉùKÊß8ù£^é¿@nüá£ôWìKÓ÷½hÊëjʹ)ý½ÕпÂ5}?6?ýÕzé¯Öò·µè¯ÖKµ^ú«ÍOE>>ågOEþþµ|Ê߯éï¿Ùúä_ÚAK'
-Gw£7÷iÇØ.;¿8¹]þÞ-ã0¢Ë~¿ÄªX
+x]ÍÚ@ï~
+7=3=Ä!?
+0ö@,cï·««H9ìª<îoÊMÛÃîÐwSñm¼5Ç4åç®oÇt¿}MÊOéÒõóyÛ5=éÿæZY1ç÷)]ýù¶ZeÅ÷ùÝ}ùÓ¦½Ò§¬ø:¶iìúKþôc{Ãð+]S?åe¶^çm:Ïu>×Ãú
+Íz>´óënz<Ï)ÿÞCʽ>;¢4·6ݺIcÝ_R¶*Ëu¾Úï×YêÛÿÞ-L9õ8º9´,Ãv=kO½ª«%´¨^ì #µÆ/TûºbüzÉýÂs½¡Ð¯yÞRkßõôy´ï½PÇ<wÐä÷wÆGþz9ãh㯠ÉÁéÈ5ü»8ò{08òxâÈ´¯ño _9É¿ÐxòW¨ïÉ_ÓÿÈõä÷ðÁ?îèÉ_Óÿ+4ù+xè}=ù#îîÉ/ZüQû_4ü<ñä÷`öà÷¥Ã·ö{jøÈïqÌÔ æ?ØùEãÉ/`äÔ6?`äø_ÏÉ¿À·äÜ+?ùþòWKÿú/`òGø,äÕä|S!ĽÄü?_l~À&æ¿Æ?GÈpw±ù³Øüh}òG='¿ÀC±ù¿?àîÑüG¯hóhó:ÑøQ'?â[Dó3m~4Æ~¿CþyD°@lS``×ýYQyó1ózÒ
¨{ ©ëÓß9Üdéßo ¦9ñ
endstream
endobj
-552 0 obj
-<</Type/Font/Subtype/TrueType/BaseFont/SAAAAA+DejaVuSansMono
+544 0 obj
+<</Type/Font/Subtype/TrueType/BaseFont/MAAAAA+DejaVuSansMono
/FirstChar 0
-/LastChar 70
+/LastChar 88
/Widths[602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602
602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602
602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602
602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602
-602 602 602 602 602 602 602 ]
-/FontDescriptor 550 0 R
-/ToUnicode 551 0 R
+602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602
+602 602 602 602 602 602 602 602 602 ]
+/FontDescriptor 542 0 R
+/ToUnicode 543 0 R
>>
endobj
-553 0 obj
-<</Length 554 0 R/Filter/FlateDecode/Length1 38948>>
+545 0 obj
+<</Length 546 0 R/Filter/FlateDecode/Length1 30264>>
stream
-xÔ¼y|EÚ8^U}÷ôÌôÜG2ÉL&LHÑ4á§4
-Ï;ÉÅ£UÈ?m*×.Ùt|]üj®èçæ7h=¦~É#4U|xAÓüæúÀ©ö+Z.^ò*H"´~}Þº¨¹5ï~Ûý÷Õk¡Ã/ýQ
-ÆÇGÙ(®A· m8À¼Ð}è¤c
40C¸ §h
-Z£Mhz;ñxîw*y}ò$âåÁZÐW¸!²JòÒäGèJt½
-ó¥¿GÙ+ÙÝÜzMòÁäÈÅ2~ÿ+åîè¹1ùPòiàÈêýÌ@7£ß¡×Ðÿ ïÈä4MÿC8cñ÷I¬&«wP̶F»íD@Ãè9tpót}Ý8
-Â3ð]ø;¢YäMf;³yÅìï(Ê-A¢ ÏBobÚ/Áãñ<¼oÅâã¤|C~`Eöfög¶éÇõcß#?
-¢Ñè:´pûkÔö£ÿBï¡ïÐ?ѬâJ<?;ðqü
-HGZÉò(ù
-3¹ù[Î^Æ^Ãþý[ÇÝ*4 ú¹Çô{ôßèo'M¾
-¼cöc¨0z#pÅ£èô´þ!ú}JùÚ§á«¡Åx¾ÿÿ¿¿Y"ã7"C¡×
dàé&r¹z~ß"É?È÷Çd16æ!¦ébÞb¾`U6ƱýÙqì46 )ås¹Ç¹'¹¹S|5?oå¿nÖì)èùô¹zÞ ¼+']øzø~?ÐàuÀèÁ£Ó@
à\w®Åux¾_
ñMx=¾oÃÛñÃøiÌ0ö8L&&ÒLÖõäv²~×Èûäéû(gú3#iÌÌÃf5³0{³yy9É|ÉtÕ|l»½½ÝÍîgßæFsóá÷aîî(÷6w;Ç>ȧóÅü<þqþSã
»Â?ÅV`äáµ f=ÄÍ®ÁÝPÂ,²ÃÌã@ ÿD5t±Ñç06 °.ú&¯±ðþü*Ç@kxÂ&f£}ø¯ä8û{r z7â
-¼½K¼ÌD¼U'&,ðH|
-ÁÐì,tõÿ®qú+úJÿkeo
- gk@ A®åßDû©E*øKÙëÐ)ô#ú;"yRoaÅ~¬Hö )CÜÍEÃAb>.9y»
-$]]R
-R=MC³Ð*Ðzw%;;7'W&¢7àÝp!þ ïè7ªÑ«ð{'úß
-r8üÿÎ
-è³ÐQô5öã\
-òÐÍ-ã6s{¸ýÜo¹?ñýÛkÑvàèOeÁLô6úýE M
-4zÆã½¨6y4ÕX4ù#à;«è2
÷ABm(ª¸Ï0A
úØd%iaIBù.°^ièÜ£°Ã<zCåúå¨PÓ´K/©4°ª²¢<QVÚ¿¤¸¨_a¼ ?/7Í33BéiÁßçõ¸]Nj·Y,ϱÁ¨pX´¶1Ükì`cÑ#úÑ|´
-.(hìCQíÅu:ÂFµðÅ55¨9û5µTM¯&VÃÕ¨º_axX4Üñ§¡Ñp6a*À·Ö;º
-xo6`+À¼æ;4ÜÃÃ:jÍÝ4¬q(4·×"iû¢½²@@¾hë^ì»
-¸ Ñ
-êFëDÒt09Ãfu0uØÐ´H¤¾_a23:£E/ë°Ç*hÑM?¤C0º ·ÐÙ [Ã{nºKE3ãʬ謦«¦v0Mõ´GúÚá»îÿ|wºþ§i̦aþ0ÍnÚ´>ÜqtÂÔFè½¾ÚwINmã¦Zèú6 at bÝÄ0ôFn©Úo.Ãt&tV©ù5GÑÆyá)zYtî¦y@à¦tùÊȾ`P;<ÃÂ&MF:jÒ¢õMCÓ÷ºÑ¦ËWv´pàâ'ý
-÷ªb÷Úì& X/ûQBu÷aÓEGCtga$S£0§Jzk®DfVB5ø©ÇðVÇ, HK4¤q:Ó÷;¸5Þô=vsqIYÂç¨ß#
-R>éc5xÞwÄãE!@Sã¥F¾¼_á².2 Úª!ô¡ñÛ¦úÅþHøÖ.
-ÍLGû©©|ÍHÛ´âx}i¤Oö>ñL¦OÚ{ô½ÞNÞoÄ
-¦ÕÁ
-cºÇ¨mmgÌÔô>Ñ¿5àq¸fÅrs¼>oYéròÎ
-Ç?=ôá×û¸pÉsÏ5Ѿýÿ¯NkÛóߣs¡0X¹cZÍò<×¶¢àöËJÄçFr¼ÎLÏ8)ñ<ã!;ãtaw9-·o§®./÷+]É£%¡tÛ´HIV4¾¨±¨µ¨½hsÑ®"1\TRDÜYav¸¦ÚÙ¯ÿÄÔÜè¤Æ¨
-mgâmcºO7t¦£ª¸¡
-Xîò$Û÷
ª<Ðɾ MÚ÷ºªâñx=TÂg« ®ë°L¬ë°oíÃõ¸5¸"¥Äãæ/FÁ²ÒʱÜXqDÌL,º
zúÉõÓN_·¹á¡e£ôÏu+Î{ñ7£¯¨UøöìÜ¿l¢¶òuîpèªû§Ïy*ûüYGÚ¬"a_ÖÃIW:Yâzé+$¥aìeW
-óôW¾ýý÷kÿêñÇwíxüqÊõ%0_æ[@h¿â|TÌõ9|ÑmÎmî¹÷H»ÖMÏYÙ^|=k=Åç['[÷Y¶:wgRÁQ-{hlNÖ¬Øzçz÷º¬³¥Ø0¾Ö2Ê:Î^¹,KÈÊÎU(åò¬òhy¶ÀËCø¹JVVVTÈÎÒ
-++Ü+=Ëòlð¬-xÀs_Áþ¬ýQk;¾Ówÿþ'
-:
-ù¬®äyBþxgF6ÍïÌÌNåA#¯¥pȪÍÚf½7륬w³øHbeÙ ®<HK 2L
ÀׯÒNI¾ÔÈgå$hª
é !¯A/ÛÛñ)A
-¹FpêiMjb¬µ"OgO±Í³x5hÚ[æÓ ]ú´òOÁ-'nЮÝéî[èc}ZVvÂÄãÉ Öº_Ä«E¢ ¯ÈôâO¼Ø[&FÆçÜCr4(,¤Ãó9äñ
¸¤âÂHÕ2¡ë´K5F
-UhªI5ñ]ÍÎØ¶³5´-§8ð]OC[ütCÜø9§ÙÓqZÉÈ:¾*xnüð¶5 6øih0>;ù&Y5ö<¸¾9hRÜJ÷)U@¯÷Zª}
-C¤UºjEåB(=ÀéêÓÕÿF)r
-CUhCPÜEJáÔj°Oe'b^÷±5ç¾"Ç{ÂLwø¬þÜzÛ0úQÉ/Øï¸wxTÚ%]¡y/²Kðø\>?ÞÌ5ç-áWXä}¨¼UêåɶÉYõѹÊlçHKÞÂå¡u¡-Å5Ä'3ASÄeBÖèï²~eÛ²Ú¢7fÝý{Öߣ|\.°fgeG«¬h\g5$:ÏÚ]i½.k£uSÖcònëãY.I¬|
-È«$>*[Yìâ×áÄB?^èßé'þä¥?*ÁªÌ4ÖÏÍ ¬)IkÄñ.°âG!üoVV©,fûHþo>ìÓ\¾¯NÈ2sw©*Qëð·5ýþl¢nâÔ½H«¬7¬ÓXTêéø"ÊÞwH¥â'(Cìm'ðºðñ~¶ÏE9÷8${mæÞÒìÎ*kØY%}©Ù(³VÉ~zd=ÿSOM69>eÈè/pü²0{ËfÑ(î\ç]NúïÆõk¾}»±OйVºqdqa%îxsémIôþµþ>þ8ý®
-+'$F¦9MYùtëïg÷ºµmfyVU"§xöü#·®þë5SûîÊE2X¸×´*-)%®LT®Q>Uøn+æY/ÃæYGX¯´î¶>k}Ù*a""
·
-l±
-HQ¬Ö.ü´dX7Ã@ΰ YZßÌs8àÀí?X^@]xê~îNðº0Ѫ°SxA` ½¬!lñh<QúhSÏ4¢®S
-8q=
-Óà¬2ügÕz®(ήR_²Ûí ÀkÀã2G'êÀLV÷<NnøæàAýþÎ=ÃüúÜÕ?èü½nºßS8
-úÎ_è{:zèö?ÒË
-õ2lñó/oxnIû¡§kÚÆßá9ï|gMùùë×®:óþ³þóÈÄaàCêÙ¿
-Ø.O.V*QW£ÌCóH33+οdì£x`U 3²$±à©¢Ü ¼Ä²aws/ÊZ0t©L»°C 90ÏJ]øyÍÆcYDÅç?4iLl,|·cwlMÊpÔ.é0ÉF,ÔÂæ«gö2MàÍ6ÏØaÍC¿
-Ô®ÍÌݸ'øXðPÚ+ÁWÓ·z¼|ÀËç{êËÉ:òW^H|¨PviG¡5z\ÙZVÜ¡ÄÂìsÙ$»6DÉ^b³'. aRC¡Cl(TË¥T49¢¥;j"Z
-7?u(ɬ XeêyuÂ3#
ÇF
-5
-©_¯¹-ýcb¾gÏTv*$SÁI´47¡Ç%p¢¨qG Ƹ,?2Ý?ñáqÈøe-MQ]d8g
-T^ã©Ü ª»è4Ú0'õ*âݯÂ78e`irPWÊëaÜ^_#à¤æ¦d×0<nÃ7'ã~óù®:&-GÿÚ¢
-ÌG92eûÝ=~aÝ$|õ¯³+¦=¬LµO¸·~ã³z×m·N¯µµû6L»½.='>aØ ýÏÎRnõ )¥±ìfjsÖï´£tôà!äLÕú[ª*Ò§ç~<Å;Å_þÀ³¬\åiÃØ:kkXÚ½Âý¬Ø0Á(H#(NpSL»,;}1Ø3Ô|ÂÄì]8_Sp+j§@¨&
Í6»ê/zêjXÕT¡DVÙüly¶w¶¿%£¡UªzÀÓ¡"¢{\nßùàj=Ü´ïE]ï9tå^͹²áæµs×q{NÝ«ÔkóÑõ;HÁ£ãZw>yð¡Q¯¹3h¢ájùàkÜx´sÜQî-î[Ëä¹5Ü.(à`ª$&S®{$\w¶¦ÚO¼w=!EëEqÓ4qª
y<çL¹Q:þõ!¤k-U÷KX·¨s»åç¤ç¬]AQtãd8_+ËxÜz?|E~Uy_>¦~°ZÓíé--ðh6GÂîyÁó¦ñQEFÚ|Û5Åns·5ÚÍï¤^ÜA|pÓ<Báfå§Òx¿TêO7RͶ.¦©0ìéN'Pµµ8ýºÙEp±'2ÎmÁâé3vf°ö¨Yí 12e%²j
- "4f'Nsûµ<w_˰Ã
-ÔO%ÙðÁjz'Ï N:¨ä4¦ûz«6£ãUtÐû|41E#;8R§M=
-ªîm`ÉF;µÑîm Ëzê
-Õ®&¸2eT1¶·a3 g"{èJy>òöøêý·´`÷;ÝØÉ÷hÌMMMËeVL¹ªºãËxèÀ]§×_Ѭºu¾öº5C,¦|çÁû¼/êÒJ°¸
-«aG=ÛîçDö?ñxÄíô:l.;Rm.TâD»O·$-ÄB !óØa÷â$D 4¡B»§ iÞ奲q8^dÄ<µØ1ÝA]Õ¬6W¸§£]Þ£^â¥<!) oÀ·âiA)HÒµ¸s
-`.'¹¡
-\¼¶jnVÚS^Ud®2ÃC.õ ëá¡Þ]Äõ墨éű!^Rþç?ë'w°±ñëÖNÌ~IP÷ñ¹gtþMà¥]
-ó¢wµ1ë¤îÞhÿô.ó®å{FÊò<k¾;ß»[*ãD¡|BùòIà y\
-ïç¶J¯1°ørd9E
-"¬ý)~!°îÂÓ4¿+Ú¨Çf«nÇãìØN6;uÚ²ýdÆþm
-úAKÒqº'wíB¦Pn0uÖÒVO¼ÈY3Ù:im4?§é 5
-Ë$O5W_»OÏdc;ö»öz:ÓÌää.îA@ÒòÃ(£r¾} mÞ.<ÈÏx=ÈçtAÔå$nìg$A?]ð±#ß._iä(Xo`ý}LMS'òÐê%Z¤b¹¡b<HN
#ÏÏÄ|ÎÉ÷N÷3n¦ÑÝîÞì~Ë}ÊÍ!·ê»Kܬ;\±«×¨ë¨
-Éé6V¶¡ê Ð?2Sr0ÛX[ñQ³OMG´¼¬<ÇA®;jÉMÏåqÃèëª,Ò7â ;®Oº)öQAÙaýïÃoç}#àG
-þµæ3q>l)³°Ç-80Áw%Û;!e.H÷Ê¥®äIM¢~u
-$ÚÀM.±Ø
K49̱ÑÌЬ¦Áko0éiú{zo< |¬¿4´¥±£*áú ¾sapqZ|
-лgp» ³YÜñßq¾CÔÁÇ8oÏAûS-;âç. òÝTÞÊ^´OÛq&®Âe¤L½_æøþKçå²ÉTÇ\1q¹Nã&Øn¨
-wöÜEúïV>tãºo`Ò ÍÏûgZ~I0²ê¡Iã%Ò.uHG¥·¤o%.SjÖH» cxq,cGXCo¡ãðf8m<ǬLf{ý66 þßVc:c¹Oîõâ\tÐ)OV=YýÜÏ£ØØÏ
n¯n"
-íÐ|W8æ8¶pÄøjRí¨#uD0¨á`-^${Ü`ÁBÇ<D}b× JÊÿ/zYû"âSÀàÿ(cº«ÕÑÇ
-r#Ê
-p`çäWïÙBvéþãÍÆ-=Â4`Mf°Yëç¬çëåzg*6ØÀYIjÍhÏ 2Ðb*£<C÷KÛ,ACóZÐâ|5)ìv¼F
-p§V_°ÙRéî³,X[ø¹Å
-øúHjz`pà8"øÂÀmÒ¼wÚ³úÏúûnÂgñÐë6¬3ký+ëq.xh6¸¨çZ÷^ðè#Ï>´8æ[6þ®Mj¯wÖ{çÚ[-ÞUþd«ò²ú²ÿõ}ÿWüWâW®¯<gyW¥«Ò3Ê9Ê[ë¯WZa ³Â[ágsËíë¹uöÇ»½½Íð¶Ó4=àt'leVZÈH©Ý°Æ,Xî%ÓaATEÔCeA}mÉ£°OÀ´GP±ÖS&DÜm[Qo%~º;Nýñ»rª*B´e.[UJðz½lý¶ãZV¹fül0¢ñÓúJÿöv¿ø9ù¦t⤻öÙqåÂâß¾A²°svS^¡køg
-^IC˵;ä>ägsx÷>G«ÍÒTºoG¢7÷æ'u¶4of¨$Ôj
-µ¸j¿pA?ýâmÎÔ.§¹¦a¬àT˹{ëenSF£b°¼±Kyþ¶]¾zÏcç½ö»Y6äê廸ÃÞÈÇϬïjqxz>`_Ôf?×*/¬G©
-QºÈr-_ÕÂËyHR¥©Ub¥àçN'î\ã|Æùuª(F-T¾f!¤ï¢&ÊQs§£Þ ¹ÏÝ:ÓrÊA@Þ«JS¶
-ÕuøÀ)7öjK+!V>W{Î;ð.êq
-¹fhcýÃ/ty1ÛzÍÐòïïÑÿ{¥~-;æè@!ô Vá¬& kÂ]>µuJ[3qHôøõ\½|
u«ÞWzL~,ý¬tÆú[q [tÖâI-v÷Pg8ócc± Ý©b5ô3m)u¥0XõE
-R¡\4'öO¤($O±`7£,iÏ¥MîG9Ïâü¾ ßJ9.ïìû¹éÒdTqJú,ÍiÓÖP1;ÑË=§õn´bºµJ÷6ªè%jõ»ÿÖ{»%gNþìxK1OW©|qrÄX¸+7ÕX@ |ê¶h8Vp]p&`%,ò¦,¨ÈqYW}Õ_øC;.m}îNý»OÏÝÜ8ç
-so®ÍôdD¼ý£WoêÀïaþæ¾sÃ?<¯úÐ6ró>ô«Gw=(Émõ>x$*ÎÛï|Åá¤Ö_u$d72ùI
e¸<\§ÜBÖ8ÅOØ·oÙã
-+³ Ï%HD2¤IøÚ¸XyÈpdìªä;Ù,añ¢Û
ãû%¹Lµ{Û4Õrèæ¶T·½Ä®Ùרy{Ps⣠ïSËP»²ªH8$hCP|4ãû0þ[ä
-)×÷nSj5Ä©§A/¶-:Ó@KNWwÇQ¾çûpï¦)n35d<SÛ¼$yJ-UUËjìy×£²r< ¸òÊ",|ÇâþãõÌ}ÞKÓqç_ðkJ¯^Ñ·?ÜG="ÄvVÇåÉÃ}Íl³Âøª|#¼à0x¹*ß´õi÷s[,\¦ôq9sìªøçjàp¤$B"'»jJTjðÂÿö\Oßþuïæe¤ÓãxúM˹Ð8`ñî%¡goìjìW1{ÌÍ3éyç}|CÅéÕÕ×N¼ô
-Wvn"WxI¢8÷ÍÜOr{nfn{.rù%¹É\67÷YuoÈon4rp¦!^}>2¢GP £Z§Ëe8î2A¼>cùßç5¢ܾ°è|´3·½¥¤öá«>qR(w ¹EúÉçöÓO²±»4yò¤éW
-ÝÖSO¦ÿª¨zÄ[tBj·O+¬]{Ï9 |°i ,è¿5,NôÆÓHoLWòX'¤F@L<Àb±¢¬X ê#N&(å,ÔÏòE)<¥å
 q7
-XrP%ZÖ#Édbv Âp`©ú°?=/a±f§2X+åª\#3L`faIÜëq,Ã&%'Û5»RpkÁå¥]þxb=îÓÝ
-]W]¶â
-k¢d6JSÍ6qbB*5ÐxÔð("ö!Ò9zä3Ði¬Ì ¸ÖQ²¯_õRÿ!ÆÞlûAK¹Øn)7|I°(!NÇxRFcØZæ ì.qxá_bÞ?ÐYb$ïfv»gÄæÑÚê.+OÌØê>®YK$Lo»J¶jR¤(A&Áͨ]ÜD"~ÂøB+"eÂX¢ W)ä&iÂ2Lx at xRx|H¾$'
%ä £Âá)Âw±¨WáÄã¨ÁT?à_
-iºEÝêØæÙîÝ>ëýÀó9·XØHÈqI%l}IJÀ,-m|ZcÓÖFÂi%i»Ò¦±i
-
-ÞPjôgqÝyÃêö Î+¹ñØÓþpµ;SúâHå´ùs¶<ÍÄÏéúÙ¶Ô7m¼úõQçÜ®ã^O=ݬðªÍàTÕèиÉÙÁ'^òºÈ47§eT¦sÏ>õ
Ú,NÓq&Â1T)¢zÃ^â
-Fì"@øÑ!½
S4Ho7Õ:¨V{@Ú4OGÍ
-ÜS'äÈ.+eéIYg`®äÛ$¾ü?çæ
×lNÓuNûâ;ÑòT}¼ðuÊ
-»^Íì?èò¥×
-wþÔóxÃcw¦;C-´â+A+øs?²`ñD8)
-yIëà[Êb,G-UL?Áoc¶ñÆZ¶¢p8¨nËr¬dY%
-Y/ç²GQ¢(ÍåúIyr®ÒUpJµh8ÎFJËÑ
-v9·BZ!/WÖ£
-ìzn´A^¯|>dßãÞ>ßS¾F_³'¸Ò×ò åGô#{;+~Ï(ý@M½£Iiln ì9æÞgæxcd`JËX°hp3WǫƣµRºjü¿ó©`¹ØVc#t9X,a
-Êæ#\b°m¬/ÂÁ¤+ÁæBpj¸áÿ`!ØXëE©#ÆÉIpÝhÜoѬU0³û¬U0³UM¡%§ö)´&<=¹f¡¹ã½G/
-§Þ*5a.ú#ëõìxåYlßûöèOêß=»ÌØÒE¯?"OöL±AÔv9ð'ö;ó8ì¢Êʯآ×jOôÆÓç
2:Ò40NkµØx ϺýÑ-ÄF.üæ´ØÅ¶<öx=]66c cØðÐ)Uæ$ÖKí¹DIsâ*¤¥Hç
-~W*hÂG(£±-
-é"À QçQçfÒï +µ)êé¶îx\þoµ:P{ÚzÚª~
-HAfî.ÓµË
¡tæÿrå âÍ=ªbTsº;®öè©èÆ\1Bèª|CC×'Çzw¾ý&gi=tû»"[áåúÏo?D³=»ùýiýFÜGâZ¼º<O?\UuüÀ¿ÿý)jZÃÄ»-zÛ®¯Áwà¹x¾SoÓïÿíæÚß^¯ÿ|®GO&="OR~ó<H EÐYí¦*ûHûÂ<Ë<e´Û¶+zÐvLyÁ
-ØjmµvAT%Ûæ¶»Õ¶öáö¥¶ê;²]`YÌ\`]\·¤ØmmKmkm÷Ú~mãla«â¶Z»â±ú¼9.ÕÝ»ÜÄíFá
-¬66zd1YU+±¾»ïàòoñ,¿¾5ÃÑ(F<Yýgw¡?óë¿Ï!·Á¶J} ;Ì(ÓØ¡ü\j¬y^¯ÏaH4êp_ùn!ÿñ^û¿k\5¯SÿÕû&]=»ú/ïÍ«7"{ÿIîð¸×ozôôÊuOêâ'ë#=;±ÙS/u¥ÂQ-W^ÂE!Õ¦ðJ{}ÅÿÿÀ[AqHÚô!¡)íì}þ=ìcé"£<¾"8â³ýÙì ã±SØ
-þi;Òwö¤ï NzÚ/êZZÚz?$G½nO"DTÅRÁ+ÆÀÒNo°öP'Á½OÑ¢J±B
-ÊÇ\tÌëÅãèYLû1u9 d¼óbj¹®öi«¦A<ªé·
-%AA(Î_øqV9«îúæ·ñÍõSçú,¾üáÙácÊô3ýӾKÙ[sÅä«ç]þåë_?=³sÆàÓãc#ÄÄ¢I×ëÉ!lÎïnD^W?+JFÃSÁ0iЬb3Ù0ÛÁ²l@>wã]¨ãÎô.a
-â<ýXh÷ÈàjÉ=k`NW¦sú;m÷ãNðóèaU _B`TÆÅçJ³ùgääW¥7ädy"ÓÈ«àjù+Äe<wPúífϱßóÜXa¬8_ÅÞÆngwpðr&ëäãl+à±ØZÇÖq2Ï>'KÏZ8§ÂZ,¢ 3²la»È|-ÈUÅf at V·#e¢Rs}ߢLOu
-W«Ï{K½^Kv`¬4=÷ÏÔ×$ù°>?fÇð [µ1^!&}"×îÃË!Ûª*ªôËó¬!Å»cD¼¯Æ>kJϽ:L®A2ooµ?n )0æ?µëi®$4ôÐ0T]tJÛãp§>Ýè]c¸Ê·.-hªìïÚãÎÔÑÍ?ÿüÆî«íöS,¸ùêÛà¶ß×Bãpgi"µÄÍIù¯5n_qt ®;:ÜÊâØvê(ùØ Îø(=HÎEØþ½z,ºðpÊ¥½
-çg41ùë½îGÙ¨G¡ÌDbHm9
-cçóú÷äîM6
-1®éi·©ÞCômÔåi õuªÌïéºKÌü2±÷£dÖØpK¸p¹
-=)g,ÃûéGzÝ
-¼J¾Ý"ßcÿ*+R÷sT ±5r-+yÀG(¯w³ÏÊϰ4>ÕéôÓcMkÅÀ¬,°t=
-Ñ <9ß/4
-=x£Þè1ê
-¨¸»!eï<¼Þü~0LyæÑ·Á"=8ë¬2r&&ïã÷ÉìGSVp[ñr?»Û)²ðÅ"]²ic!¼|>ñ#Ñpþ
-°ÄçºòLß÷n@Ì
¿+u;LKÏú9«,,^ö³°ÇÁcïÂM^ô30ÇaVÆÁ±*ð×alA~éF?]
-|évº!Þpº¡!îïî[&é¾XZ
-EÚÐ@WÔUG*¦ÄÒsÆ!ÞØóOîðÏ¿g/1lÓ´äGÜcàñg¡"T>ÖVXrqÐ(®È¬(y0û1ÛGÃOd?V¤H,
-°¾hSE*Kîv3_-ééÁPÈø£ÑpqqIe¥ÕZZ
-0
éA
CA^ÄðÅÑp(=°JåùM.\>9AÁ±íª·~¹×jV¹p»]ÍT7«»TV¥f/ÝÞûue jÌ
-½Xè1vÁÀ|j»jº>ºh0<ü¹õªX-ÀEÓÔqÉÁø,+lØk@
§¶÷v·áûÏ=¶gÕâúW7éÿ½éÇw×~ï¿}ÞCÌê±Êpñ}=±Ñ&2ZËoj\>ë²ëFt~xÉ5ãG?°|ûíXÿÐ[½x[ý®fýÚëW¶0ÊÀÁÚÑC
-£ô5ý7¸rq¢¸ôÞÃ.$7
-1× pñÊâLyÄòñ?ÿúZf.³{¤ÓÚ4H§Óë²ù¯ô}í¢xô|f¥åkCl£¼DAÈFò"DÀ1ô´ÕxÙ¬>kLiÌy:æTw«'Ô3=ÏÆ
-Á¼EïYÆrê1¬ÊÅr
-Ý]Ç×k2Î4>¥ÅnéTèFNOCUTpïq&z>¡ÍEY)3îãÒ¢ÓôÆìųgõoS÷¯CÞþæóåýÓ§Û«¿¢ñèþ¬ºï?Òø@¸tݳ½ÿ¢!áR},rþöýâØ
-á¡]¢Ü+hûºàn
-º®Q¤
-Ñg1Hïá«Ð¨ N!t=-x0Ùüð¬ Êî8S¸
-!´êX l+¹u@Ù6¸èûó ®Ïlüt}ÏëbT×ä*ÙuëV³|#á5(gè6ÈO~é<È/
g¹)É$ÔÆ.Nþ×ÂÕ¼ZÐ-¸
-ïe
-ìì\ÅuóóÝÂgb¸UzPÉ,Eß*{ý7YÏØØûûêõ7k§]ÿånr?ãþÔó'ï%Þý¾ý·VkgÓ¤ééùéW¤¿ª ý1ôcFsÆ7
#ÈȼÈYG²>^}<zÖ ÒT:þð2Ñ`ø1êµPF¿Î^ù\7îA]ÙÈ1Æ["MAS±jÂ,ØÁ¹&Ì!?¾Áyï5a½2aèßjÂÚD¶°Ì¾ÈMØf°fCMØÊï÷°
-]e¿ºÿÖØ0FZe±ê¥&Ì Bõ2f¬.0a)ê
-æ^k¡n6a¹ÔïLXBà ˤÉ1Ê-¨¿ëɾÿl\æú« [in» ÛP¯FYuo« ³(è{Ô9(}/0¼¾×rÞ÷ ³ÈéûÜJß&´ð%
-XrÅï2aùý,Qúú+Lè(7ah'PcÂ@ßÀp6;Mèè4a oà
-ú>3a op· }2a oÚ&ô
-Lè¾Þ¾á¿0Ð7÷>)®rÿÇW¹©9Zè¿Ë02òâ¬Ð¹ä4aÞ¶QÎÏk6a¥ç-5`Õhç.¦íüÚ]çy¿3aÀyÞ+ì¦ãÉûÐa<y'
-Øåî|lÂ,
-ç{ØKëç0ÔÏbÀ£~ ÓúmFy ÿ.ÈßnÀ!:ü½&ãÉÖ3ú¯0ÿgSÈÿÊò¿7à« ~
-RãìG5AA¾ ³½°hà¿ñü#ó*`´|:
Tý&LË×°ALöûVlF³Q i=×$4×Ç
h\KÌZaÐbÑ"é½ Ê[a(¹Þ/h¨QÞôÿ²¥â¾
ÑDxr-ZÚWg14Õ_ЫUô3¡R£t0¼q-¤Ã;s`K·.öõ-û,¨µ7AÍË>fýË8^P'ÜWk b´²¸oÔ¥'_
-P´Ñc[OÃ5ÚÊÿ·ü§6Î×íwÁ¸&]Pþ´Y·YÐÆ|H¡k ööó06¶Z`LK±Q
!Oë,1[ô£ñÆûa3ú÷qÐ÷l÷MP¾×Rl/7Þ¤ý1¥è¼ú¥cj
º+ÿcf¿h½åƨæôõÛbro?ÊÑsÔc's
-,6Áh
-ûƾÈxÒbpêD¸/5F¢H«(-#Yb`¹o`,a¨Õdòb£ZÜÏ28òÜ£¯é>Ól«É}s¾Ñ"÷\è¾Ñb
-ûacÔMF3Mj¤ÐQ/6éÑdÌ1õÞÊ>ú·ÜÞjR°ÙÀÍbS³ë¥P9þ¥Foa£GÕKy_n´=÷n um¥úî-Oa{&§.þzK Íf+-¦Úi,50M9ê<O/4$wÑk÷éH)=çoõö0ÓxÙk9Ó<ÒÎca6Ô¤¥JÏãµÅÄîBs&-Fý¥Fî<U\z1ºÏ½ºuqß\è³ùF{çÛ úâs´M&þgZ/lJi/Îf}Ï1JSïS k1i8×»VGÂJô2Û©Îkû&V)î8iοŠڵFVCöRܸÀx35¹»¥³¨ä¯0)3ß
-åÍe¦l¥ôε}ãoäÎsï_X¤Å¿ßL³FK
-LϺ7Q÷bòö̾Î6x;lðÀ
-·
-¾[Ò§ORT§cOÉûSk¤¤i±Éeçµgêé|"Mè:ãýÔ¨i»3§ç9-Õû,[¬ìEoßI7XdöAe(
Å%Æû½#îm½Õà¡ùÞì[aûÀ³`S¡]ú[dÔºPÃÚi>ÔkÈÒµ
-cã8®óìîw¤Eñ$Ë4#YÞè#%RGÏO²\q"å*-F¤2N.Kñ »ÛËí.´Iq`Àa
mТi)PÁh¹W+¤%AL
-H8.fFÏëqdr¾æF¨Uôjm¤¼y}V¬·\ÛhÓÅ^TÕmËC>Î6Eÿ4jVçÙéucaø»ê=7{룼lÚßé|1ç~.æªæ¶]I&D¤ÓU«H¡j¯|`EºP·«k÷'G¼Ë
-ý¼2×è+ñ?+F³zZW%MÈz;Ô¢8éZéçWuvgýÕ¿wUåýüXy׿Ð'õh5?N¾¯¹ÊÞÖÃß¡y½ñö{)1ª¹Æ ð@¼W5[b·Z»~o:'öF%V½»úÝ£_ÑWð÷iÿg£]Üúqô¢µºcM ë¯ãÊéÄzò3y»åõÖ®÷k=2ü]¬µ§¢îOÌ»Ø=|7KàþãØ
³(î»A1Fßf¾d]héöË öPO³¸ "ímû߯¶Î¢·²OçI=eð¿äÃSÞÌ6ªø1³7º6s<Iuð>ÝÖP')ãCf¦H5?®ëðáXxOf2üTúÌmñSeÎÉBZÏôÎgD
-§ªg^4
-©wó}ϧSÓ2'íý«"Õ¢6*t
-ò[|¸ OY½pè9/gÒm Îq¢§ø nó>ü<?99ÙÁõÜ72QXÇ&ôÙ<SÐóSÓÕUï+è¥tîaÓo2Ç¡ú
tjÊÌèÖÒ^H§Ò:Ò¹ t¡:?fæl#K¾¦¹¥#TzOVúLî
-
baºHçñ¶ngÑDTcn1G£ \,f2(
-_a>kÂH:7Q´lÑUËÎÕ lµÈQȦsB¢`
Zþ§0ä
-àDZ?cR{i
-1çSF&üLú!DÚë<pð¬ØåÒ)ëù¼0æRxáNS°¸ñut&kd¦9úf!w2¤#ÎðÚþ
dùöR@¼h!¥D4¯ÉÙbâÏ'MtÑ)Û¦<AׯÝFj`,L¤'N³úýåtª
-;uÀài+ѧɡsFÉÊëy¸ ¸h§-RLâù5
¶)ÛÎ?ÓÙY*:²~Âv¤ÌlçÍtfmúÀάõU:ÞAP22¨5ä
Ã'8>qò~ò8ÿÂcý/õóäs§úûïa¸¾®¾nx
-aDBLcGÑ[DtKLtú<>ͧÍ"!Sm³¸¼´DrÅøâòËA\?S0ÊÄ>
-Ø40Çé2Ò^ãegÒÉÀÀé²1Îãª_4æC!^Áah½ãEªá¦+ªªCVÅ)$òJ(VÀmü)êãÈ0ÝBT£;øéÈÙéJ/Ð'æBzëÜÊ©4&õ=çbNdaõ4å²² fåT]±W÷NeÒÙ4uF\É,µ¼$ù(*Í&Ôâx&mMèòÂE¢ÂU~{ÉëGh!«£ÙëkEÃf0ï¥BÎïAÁ÷[[Sf13kè\Ú(yÓÕºîFÒÀ0±:Åôn5e¯1uL÷½ÜXpyà_÷¾"ØÑígHàôPÀ¾CÝý<Ñu(ëÅjkO 2ÖÕÕÝcâ©O<}ððÁÃõusÕ}âÅHg¾{â:Äíªáoh«Sý5ËÚ¥zl
->X#³Z;ÉÖ~ÍÍýãþÕ-~òºr[ù©rǹêö5õ
-6l>6Ø|l°ùØ`ó±ÁæcÍÇ
-6l>6Ø|l°ùØ`ó±ÁæcÿÇ
-V¾?H³ûfÁkù¸¦¨)®]ßú5¬5Rºãìe¿
ü¨[ûÃÚ¶
-¦²¿27Ô¸Úú¢(UËx5¿/ÎÎï;Ö¶¯môWߢ¸÷3ÅUY-½Q{u¤Ì¡PGGÇO´Àï«¥7lÞðÕÚãëúãÕÐÔê¶ÕÚozö«ê¥mìßfdIUûJݧÍOOïòÊÿÿåÙýVöK¶Áç¶ò§¬A¢ÀXTþ¤Þ׿ïkɰòGl$3Gy-df*À.d¸Ñ®øÊu[ãaÈ¿Á8è"Ha³8Jâ\üåGIý·Ým÷ëö
-åpS|0¹Cù:Cɱf¦*çÁ
-?¿¼¦ÙH]ÔcjÃm¥u¨'ÃåÚúøLr2n#,ªBÿ«þUqÔE°×¯<ÎÑvVÙÍ?®<á>ª.ÞT¾+Äþ´ÀÞQ7ô±rýÖøb²V¡¿p+øam¦Ür(Î-Ê>Éêè÷ØÂÊe.c.ch.ch.Ãˬã~ - Ó©¼ÌòJÍ®¢ÊG]DpAÜ_P>§4!áÚåÚäY»ý!ÖTÞ²5Þs[±ØIçíòcMqó¦Ò&ºr Ü´
-7¡OÿB¶ÝÝêödüiDú/Ͳ{ÄÙvùÏÝ)qoquAg´¦Ñ¢Ú5%Ec×áQà×x2,_a!x¸`å7pÄê,#{@hF¾äNò¿Ñ'êÌ.â8+Jc8æEá^iý(õȯ± :Î..¾Å8¾zô
-Ð7E
-*J>ò@äÈ<y ò@ä"/¬Ab1 Æb1 Æòw1bA bA A
-
-
-M 4 4 4 4ÐÐÐ"D1"DL b@Ä ÁàÁà@p ¸@p 8\ Â@0a Â@",Ƨ"Ä2Ë@,±,Ë@,±Ä²@,±Ä²\S?d %@d %@
-Ä,³@Ì1+³"q B|ö¤üÌC#K aq/Jû¿À>ü<»'ø7Ùàß`×
½*øË,!xµ}ÛL
-I®hH6b
-8 ú*È]]ÝEé=пî˵½àÉàÕàõààC×ËA¹¡ædÍÕë5wjº^³\#óä.¹^Ì£ZØwÄñ°àØ#J=r7ìvc=Ýr·¶í×ü£6é½6éNt½MúN¬b¦Ã>_ãÒ¶¥å¨zhi=éÊSݧÕyéÇökíàæ@×@¯ 8(
-TQ×ùm¯¯ò¨´ÄÉklÄÞfû¶¶ ×K×Ê?«gô
-·up7ÝÖØ¼ÛzìÇn븬n°VÚIï`äÞ¿îªï£ùûkW½ ö«v}Åmí
-
-÷WÊpè£i$ i«¿V¿«~ø"°H_ñù
-
jBb¡ônvúãÊ5ôë¬&@Ç(e:ÊÞ_ËRHfgÎ#Ê<0Ô+
-8)60Îß5ÏKu_üóPs¯äl`ýΡöùàýSN¢}À ¾42'IWFQëȯÏKlxd^ºOU¯ír¶C#{íÍ]L>÷Ú££¬©ñ\OSÏö£ÛïÛà0æ«~ ¼©º¸Ûùã¡ç¯v:q*Üß=:à|kydAnëûûäÄFGy¹¡ÿÕò}£{_!·BµX¨qÃ|ÒKb#O®pÈí!¹ºzÖ"äZêê
\@"¹¹{¼¿os!aì¹aU2È`ûæZZT3FHJiæÂ±ýBªB$ª
-Ü·©B* cNçªHÄ9¸"rPØR¤UÕÙ±¯"³cdÚÿ£·]*wÏßí7ûÇû
-Ð󯹩&çâ8çsçÔÀ¥el<5E\7b³Ñçoîãs]w7h¾KÍ]Í}sìnÿðÈÜ]Íès»´®þf½o´ÜóìHrK+¶FÝ@Ù³¤llõ$7hNRsÙJ$ÙêÑzþ4åýàÈ\õÒ»k/Ë×!ÇvíímçRB/ÙÓt~×»&½Ånu¶4÷:õ j&£IjÂuFM[QÝà75?²g×»Ò[~SÕÛ{WÞ;ÌH~AhÀÙ3ô¥JGÓ73>¢¹õ§ûðÎmAøW-ɬ
-?öFb±hÑ¡Ø{ä§mhÀy~Ï(©±¾QÔuTêEÔÍÕÖöÏß_Dc;l2G¥v~V«£7Wȳ5³AnìòÎÝqó6Vð ÜÇÉ%·SÜ/Ë¥òÞÝ¿ØåÎÇý)qwç8½,(ñǵmQf"3ÑÄld6: ×W߸Jõ-¥nç5
ÙíV%(Ú£ÌûÑZØûûønax
-íí£íä½vÝGª}%°¯ÕêíÊxõó½ÆöbTô!¢±( (þ"\|Ñ
+xí|\TUþø9÷Ü{gæÎA×å%¢¾PËE ´²A0`MÉÅÇ*¶¾ËL©ÔLÍ%k
+MË,SwÛM÷·nöëeY¿ÈÜý¹[«pýϹ30¨µmµßçów¼3çÞ{Î÷|߯{µ¶¦Î
h"È^Ré¨^5»xBèBØZ2·VÙ·ìU
+÷Oâ-øÀî ^N£ ÏM@[ði ë8ú+ZJ¸ÐË4®ð`õGÂi,!
×
+êg7ðWxk
GÉí§:nBæS§:R-Q¸(KT):=$´ó¥YcúæÏ5bÂWR¼A8ô(Ó¨ç¦IhE
+VLÇa7;'µ¦
+¦1¾¡÷gzô¾@sdBrÂ2ÛpL´h
+ÄqQÑýãFà4ÆÓdMK
+æ'xNܽý¹y;|ô_Ê{Êù9_-ªï¨yæPã¦úÞÂ}þRþGaÛëÃ-[âtfÿRßÎÊ^ñ³ªû#û>²ûè¹þn'~kàFXö£Ío>{©l
+eíú[ºê9ÁLgÑH{_ÜdFMºÅV³¤MBc,(LÇ©j´(.QÅ·ël¶1¶»m¿´ TQÒºõaKÞ <¸iÓÊüæ«W·ä®ß¬o\¾~ÇÇï¾÷Q×NÀÕsõcaÈ(¥Ûe$â&Ú¤µ>nÙkk2Ó®àPeÖ7Do
+?2!û¿î©üZùò;å×q̶V.Q<õ(%mÅõ5 x±%bpu]Äêø'SúbÙbÃta¶Ðbîlï¸Ôºb¦Þç.±3jáL!T¶Åù4 Ç´¢cè
+mÑ@Â÷`Væuý<¡µaKÐò%ý. ÛvZf q üC¡á·`¥¡·
+òé"ÄãÎ\~0Í1ù©åw¿sßSÓ>ÃAYw(víÚ5¯Y¹1g^sæØ7¥~öêÛ«Ã/í;ö2à£Jì}G8bán¡-&Á`¢ÆÜy¢é@òuì¤vix`>bºÝ:Ã"é'¤Ù¤µ ,Çà¨äH×Gï`¥+M8]|y±0Êc>o
+ÓÓ>(Æ(¶XQauu_]X
+¤á!8Eñ(ËFØçãøAÃÀ¡á¦ÙcEd\Ö,¶o7·VF¯[gÖ
D¨ÈÐ8@
+°:§úÖÎsÔDÀd¬é)ö ÈñIî$9Émû"¸àqüÌGõ¯¡ÒD¶ ä³ý`nÛ[WÀu¹æ¾ùNÀ¨}÷|åâGJrçãÐÜGɨO<þâ?qßÛ_ù³òÕm3¯¾øTùFÔ,¼=Båíb «èêËèÑDàå(¤EÚη Á-æuÁ«ã4aaQ(::ÌÈÈ6û¸ý©òUÁí!¯ö;z$ìHø«í]ÖCÖÏ)fgqÁhÐÐ!(M¥%º?ö9 ûÃÜÍû*>P®`óG`ò¬òIîf|âH ±µøNðŧ8 j«rG·ÑG/òúßx )
+³÷3>nÚ+5Yðãh/ßÔBa?M¥ûQÿßÑíw!ô¥<Êa5¶ù|íp©û$X/=¿ä*R.b3FKÎÎùòçÊ3ʼ.ÿRuúî»7?(g7îºû ðV<áãMr¼S¨4ÄBt°Øh²´6JÓ¢<£N«Ïfa*sòhêf-VÆûfÚXâcQ4U`ÞÙvÿýM{È|®î£Ü¶®;¹-[·¼´«QêÚâr~Ee\2¹³âÐ!ðdú>:zºxÀdG;ÓfYÝÇú¾H¢
+Êêx8Õªxû¹KÀ¥£Ìë[Ò©¼«RÂS"R"Sä¨è1ñöp{=Ò.Û£ìÑùáùùùr~T~t~|uü²ðÆÆÈF¹1jYôÚøøñ¾¥¾E¾3#fFÎgFUGTGVËÕQ"E.Eõõ·ñpKÌPªNý!¢¤Eù»¾`î¥÷÷,v?r mÌ¡{w]ÁÜSgî/r½tûÿ^äÒJëgyÎ<ÛµxW©ã'±6¬JJÚßIyuP)æ·¯Ìàõo±ö;LAmi5>L
[¬úñ}x¤å²Ã©RU¯sî
+íRìº"Z">àñ8*&³_pD*ö©:P=|¶þºzõDý³Ü§Ö¯;»öÒ.§C9¤|CüÅñóçáƤáä
- C#ì!&A@F|HÛ(é! ÌÌVÕ¡Ñíð7UM/nï bLÙ÷KUh<
+Û(ÿi<×+Ë&y>ýDc£°EyuMWËʼM[ÇÍ\oQ}Ž G
+À ªí±Èu˵+ÛÓX8`À/ö=`m3¬µqZMâ¬YaÌ1·³¸GíLuT0&¼:¼%üíðáÂ4áÆØÆ
+dm².Qr#7vsn;T7ã^jQ,¹ì1Gà«å ¾¡sáäsÞUòö=Ê%å
+ÐùÖ´qÛWl:`âîºý¥7Ù;0ÀdGc÷Ú7>¿w×&ÉD ÉÀ-z
+²èI£©MwH#Z¤Í¶Òt'¸Ø·:A>?pk õjÜ-åà>dbdNâæ§@²&
çã/uíãgî--&¿ÁÜqUBv»-´ð\°XZtÚH1 H¬7Ô@+(Ì*¨öÎoÎpÅXÏ
+³îIåmå³»ÞSôfåKoؾwÓ'.|©Æslú§ØðÙ¾ö½?ÇŽvSjó7íWí©íÿ¼,ÿvßý»©n:¯Û¯2¢Åöpl$FD1½¦EÀd±$&jyÉ|vR«32°SªP9ÝjõV@ü1HgÑäl
+DÐtTæ¡&Býñ 2çá))Æb\ëð²!Ñá(jÊ5
+¡ÊéÓǺîâ:?&';Óv*-xækLFP¯ñ oÐXhÎjì-SÃôK b
+ÆÓ@ñ(Ñj¡CõÈfºÍ/é%Z¤ìÛ2¡À×s¥EFÄ:ÑûÙ8G¼
+O]¸\/.ÃMx¸Uof;ø9Í\s»r±kN»púJ$ÿáåAüW"½ö_¶Bó°°¢6Yn%V[Ö5y=fLH=ª4
+Ú]Ô ¯74L
+
+æK½µ%äb¥wÖÓ+]ó<´gwÓ={6\ÄVåÂÅ?)_ayÿü±cç?{óÏ7+o*Ê`ìé`ÓAxóQ¯
+Ó p%ê
+£t£¤QúQ½dË
+è&%Û 'DÅÆ/ës'J¢H
+Ürn·ÛÆiéF:¢I?#ýøþàH/k¢¡x$ɧh³ø9ÃgD»¶ãéd:¯-E¥¸ó³
2q¦¶ÕâzRÏ× Äeh^IVò+
åb3jƹMäaþaa£¸SxJlÕѾ¯½ª½
zÉ4mÜü¾ßõrçe~fgÙs¥
ñ¨Uù3W/Z!
+·0j±(Pb1'òB¢¤{#¼Dùö©öQÀ)a³YûÄôç±çê/Yº¬¥¹é¡¢õSåóçQ|~ð>nï þrÕÛ?
+ýx²ÄÂqXoE'aú£4Z΢Õj2%
+y-è3çúT¦â»ö¹áËÂZôi8«ývµ³§Ï
+5üFÿ°ÄóR?Þ&õnæo¦ò·i¦I¥Ò\¼«©äHð[ùõÒZi~ÿ%¿]ó¤Ô"
I¤ïGlM×O@úqºzÙ8§áÂÍ0]º>ÅC²
,ÝD½Ý8Z7Ü&Ó5ÅÚbÝt}¾Ñm¼7ÅivãmVãoï¯iNÃÅè0üàÊ=x×å rð~N©9p?³ëý®Wp2È+÷â5T=ñ8ú´ÃZÍÕ6Ån4v!_)T!ÍaA°ô·Xvõ2ÈïsÈ4 Ý&vÒyl'aÈ.hͧÎuc}§Ô̼Ìa¤e½&HÚ}½¦@¤DfHg"54ÖWë¶êt3f£Dþ«®Ç».§w]>M;Mjï~ì' 8»AÝ.D¼H;94xʺM¾fYÄó]Ú¬û¯Î»
Ó4ãVãßf WJ;Akg¨±àUI;Z#äÚ¨ÌZʽúLÀ¢ê˹>~iOOXzg6ÐPs7ÏIÚ`.Ki¹Rn¶ÖÃÍp+
_h7pÍÂFíU'èDNO$Í
+Fà0aíy$D
+££¥#©ÌªY¸
+*B÷TÓ@HD!ÿoßñ½¯½º÷¸ò¾ò©òò¾pº³îâ;ï\$«:ïTÎB62ÇzûýBà5û³ö¡:H"X:,<O2EÙokÒ5ëyA$
+6 RHo$
xVÍsµ¨FÓËN?þM5æÛ#¨ 2b XàD¢a1)&}ø8ã¸þ$^ì¯é¯í¯#áa\6ÎæÊ:8óW+4k"g°2©O`IÂôù%J¦ýòîGäÁú[Nyyâªûξ
ßĨsi×Je}SÓzîPðÚ)e¸¡yV×JáôïÿðàAnJ×
Æ¥KQì
\}ø¾@¨ÖGÙÃz2±Õ>Ôf<,HY¶&íéj^bñ¥cnÛZü¤âm¹à½4{¦mì³u¯¼r;º[·¾´«¿Ò²§´ä"Ùéëܶ@{)#ì!¾^ÊjSÞHXe¼ÅªÏ
+gUJ¾FÊ~µBØSᆱù±ßóòD[ÛÈgï?~]=~ÿ³]o<µ~ýÎë×?Eöswýc§ÓÇa°0<ΡØ|m¼¶^z/rÀ ;Ð×¶: -tc²ZÇ÷5Ú~~/^G{áåßÌñkòÄCÑF>ñõsº~ÑÓåyà
+ ! ¡
+åRøa4L?Ì0ÂnJH±d ;¶svbçí]´kìÚL]4ÞcÊ °[ÐøVn*Éçó!M
Xvî6iª~ªaºiz@¾¥reR¹©<`¦¥^{é¾èÝ2ý2ÃJãJÓÊGtMú&Ã&Ó¦múmݦÝßXÞ·\µ¸À>VÛc0uiܼîßP[¥RÁ²7l°¼Ïë|T _MÏôú%Gó×<g1>÷Á5ÂV=9öÖ[O &qWßUYüÔ£
+2éÚÌ9/¢Oæ}ùBëÛ$ØÞgýü3Z³ýÔY=æÐû?æ9Fnïªæò»ZߢOø'ìêî
)FLzÙ>X ¥uþN'é°EtrDKCzA§¥Õ$ñ·H°«Qí©©'eýOaÕ&Ã&@ ã$¤ úsý5²¦¿$KC4C¥rî~®^3_ZÄ-Ñ,ÖrÁ<Ö@Jbp"ëGbítK;G7W;_·?Hð£$utfZ,8ã
¸~]i8®4´C(×o.";.ÔgüÍÜ|°ó~îiô9QòQoâOñoró×"_Ìoõ¾d·Ñü¸É¬åÌ}ÂJð[Y\±¤{_¹²ÈúßÞçOqQì7ã
+ðP©|¨W2ñV¼7+eJ¾â¯ÌÃ}¡NÄ}v(EÊÏf¶?}ÆtÆïd5©Ï$CÒHÍÜ Â路e
+ßñêöìÄUº09{¾Mp
+£ûÊQåu¥Ïr6È{>UÚðÜâ Û;-ôÞgѧxo[ 9áè.{ßOcYnï×¢ j1¯4r-h±qµf[D0,ZJf1ÂÜý;»f¿ÔL=Sû)ÙK¬Á«´«ý]¦¼¾½»´û éjIxÇ*§¯À-Þ~ägÞzë[/¢*¾> @¹ð?Rþ"ËÇoJÙ¿yóþØþÿwák/Rè»/ ¥A}»káà¢Þ}çEQ{^[.µF^DÔcígÛÛoz~j¸PQèDZt¥LjÍÌfbé·ÎåàØË¹£û¯=niVÇk ãEÌIDÄðg:+÷YÑÁ\wF9tF¹SþGÎþà47¨+ó®¾k gyùT²BâA/ÐYlÐIbJO
+æ³'N0+§~M_C â¡iD`ßxñ;ÛàMô|þ£¼òû¾¶l
1ám
+³qwËÝOjøyû´x·Èð0÷iæû¨
+xÚ¨!Q$;¤\àâúO¸ôßèº{ÅiÁÔBö^ÅLÿÁç
¼Ë¿°çSA]$?UÒ© 5ÜTÌA¢%RWõàuÅmAÈ)A9×ËzA/é´êz
+2ú²/íXéW ýÒ«
+0jg`
õ1ë%ø*¤¾¾Á·6´þ\¤yÙUæ
hi¨ÃåÙ]º»C*åKU\P*Íç¸ùBÐÈ=Â=,<$â ¿æÞ ¿ÂNGD^/HZ½~6.óýPm¨.Ho3Ðj&'Q|-Fkâ´ñºX)JcH'ÃøaÚtC)@²y;éÍÎÆéÆIãôvÝDûoÅ\>«P hòµ
º"ÈÌJÀ×»¸9Äõöq¦JçÐÏ6¸Mu¨Ïçûø
±A\ i
+mºMíÜkäÿ0õòB1ýcô8¦¸íÓOÎ|úIòî?ýù?³³Ì¡ÇÒÜ9ùX+~
+|Bì²-Åõ¥½S'Ô 5YÙEj^jW½Nva7ËÛ%üsHÀ©© µ©c
±úV$¾ÈZ¡BZb÷.ÕÙ°Øsö5>=ã³Ä¥üpø
+{[f}Z¯üMy[¤þæºKxd&¢ÉöÜf¼aþ@*'
+h³(dóÅH ;ŧ4C±|æê«k^¿Àû¹ÚÒq6Hcw¯|Ãk/+à.*ë
+ûñowàßöÞw}¸´E²öE1ÅÍÈq8¶ïÀïÄO{cyD7ÝÑkcïêA=PàPL·>¼Vx\ܯ$ïP÷ãJõ½î>5{§ÂWo·¬=r(UÛã¡îöëøÞ©8zÍ;×)·)@#'ûêÎÓÓÙÖÖ]uwíõk 8wýí¯ê;ùaêrîÔÝ£ÿ"µìÝþ×mÞï{Ïÿj³R¬¹ª0´=/ÿCuT©ûÿskþyÀxþ$*åî¼Ú,,DÇA¨û9ùwÐ11
+y>h·"oÔÇN8áXÇb¡î[ÑAþ<ªuIÎw {ÉDt[ÅÖ|Çf8B':ÆîåÒÑ+ÜoQ2_îek!7ÝL"Q+À¸~·Áù(:ÿøêe¾Ö=
+ï¢}ÂÀÏöÒyt?º»ãÒ¯¾«9<ÌÝx_bs
+[
+ Üâ>ðwÞ±ñïÁ×B)zÇAeísHk÷ \OöygyÇêk»Ã;QÍãkQ´Ñ;Ö£¶§½ccÜHÛÇÞ±
+÷Í(xÔ2ïØ´£ë®_S>»¬VP §¦¤¤É³æËåµÚ£2QΩ*I3**ä:Ë#¸<®¹.gtÝÒaticnåwÕl9ÓQö-ǹæ8ëä2GÕlGvÔ¸äò*¹ºnVEyìtW:Ê«|s
+UL·û¿S¿a±«ÆSî®SRÓÔË~JÝU°k-QV[[=29Ù ×çÖ%yÜu5%®RwÍlWR«6M£8P*º x\.y«Â=/!Iþ'Éã+æWyäòÊjwMË)Ö¸+å×\/*¾=êTùo#I=»eYEÍÒàïü#]/ï-KùË=C®q8]{dwéµP$)ßUSYîaì/÷Èe®ì5»ÆQ¤'í@,åZ·ì¨/WÀ`{V-p¬XàK
+T-bt+A»ÄàQ¯R©T÷hzOö9**¤Y./×
+°G/:ÝU 5r¥»ÆuC²åÚùÕ®Rl¤"Õûn¥c>X,wSEsTÔêÁ
+½¡Òé@êJ£V.sx
+jÕLlTH¹z°ßÄjGÉ=Ù@Øa[¢ªú)U¯Àa®RÔ,9{J^\8%»è¶,9§PÎ/R3.kQçÑòm9E¦L-aFAF^ÑtyJ¶7]7.QÎ_UX(M)s&ççædÁµ¼±¹SÇåä3a]Þ"97grN
+ÆNÓÌÜ¢éRvNQÀä
+ä9?£ (gìÔÜ9jAþÂ,1ÀæåäeÀ.Y³
+2ÆeMÎ((°)@r̦$
+²Æ±À{àD.Cwì¼Â¬[§ÂçÛ"QºmBÛÈ¿cfü< Â)RPÔÊm9
YrFAN!HvÁ@ÊsJ6Ó©ÀO*¼</¾TFôÚõÚ³èj/ã²2r`!E.H½æveÝW⪮¥ºí5nÕ527ªúÎD¦µª
+@%(~SQ
+|Ò`4fÈ(æÔ"5È
¨%ÂÕTó`*à#£nXvæ_¬ßN)}]uïZ;Í
½èùR³)Xóí8Fs`]1ª%0×Á ¹Ø
+£H(Uð]
+sfÜr'Ãz7ìî`÷®
SÈ x
+ªêÜk¸r-=:T×K¾ >7¢]Fþ\»^%4øG|¤ïe!?½]ÞXÞ=4ÃjÙªe×÷À57HàïáB)Ëgð*´í/g8±{./]³Ù.U^©'zå®JKÝMÕ1U^n&ý*¶¾ÚkaênZëÕ±r¯8Óf-ÃâZ}*aó¨ªÐ}èlwU]Ì^UÝöÓh&9ºÖÉ~=¯XãðÒ'1+(
+dPjÙJaTᵤÝ8öì@ý
+Å¿ôWÕ~ºcOèjf5NØ¡öaãdÔ2]wkÙ]ué;vHôZs `VÇ ¨<Çt yZ/g*Ù5|4ÔôÒJÛ:ÆÃD?éÐq%§*kÉÏx`uâ·ÐØMg2ó 2¬Ú
+»ÜËÕÞÒÿnª}S±îÖèZWÖõP4ñ£ò{íà³R浫¼ºüvt²oºG"û¥3J<uO~T+¼Í'¡¶·a\îÅt$³Î"/vèf¡Gþ¾¨×{*_ëµO¯¹>[éá¿ð_'3sùæÞº¦rC%ï§E9Ù+ûJöÛã?¾,jY$¢Óá¥(©§¾k-åÉ|olQw§</e8:½TÁô´¦û)å©ÓOæþZç ËϨ`gR7EN)W7f÷«êN>ê`Ú£ê®okùãù»4ù°¼ôhÉèûcÐ{kùq#ܽò®`ëÊ¿ÅKÝÒ©a~ÖÁüJ\ßO·FúìåÚèáòú9£Â·Ó<F¾A<î¦ûÚÜóEÛh?-Sm&÷ø2Ù»Û×:¯øôd.Ü-¿Ç\è>Æç*¯%WÃG^æQ]Ý+üå®âì»"ÝÐRÊٯǣiÒ·éÏ×ÝÈw;Y$¨br÷ç׸*ùqÎ_?ÔV=Ìkúbuµù,fݹGwEoÕL£ïïÙ^©ñjÔíUÿêÛ©åµZo<,íæÔÅöòàî3ÎÐmG°{9pM<®
+q
+Ê`©0
+àÂW(lÓ³I0?`ѵYhÛ# fS`LaO«¹ðåGW
+SáÇ#
ªûåÁª"f;tÅEÅ´®÷ìÚ«¶£³ÉpV
+Û!Í£\¤üÌíÖ¸?©eü¢r£c;e0Þ4éÜH;¤îÆ3ú²§rÙìBàcÌÏé¾¢êc£u¬×*LUïUÈõãîXF#ì°kW§2ïzSAåtÿ
+UÞï±~<ë~Wº>|ØÎE7àÊm̳ج&ëÂnÉfö;ÙùÔn
+ëñS½ú9¥³ÞüõÙoÞ÷ñ*,ßÞ½%8éS®ÃÂnn¨3¤ï«ú®,k%¬Î©íöÛ½#·ÖØúç~¾Ö?P½ðx6·òy=WÕjIY=µîv£
+ÛW«¹¼/ëíÉ>TßÖDþY¯åçjèéÎJÜ,twg&óØÝ^íí¸{ÕytgýÝ{ùbQ,5¯t°lîæ¹7¿=BI×UÕ,Þ«»ÌcãZofBé«óÎ¥×\S
+ûú?×Ë@¾¡|´Ü(sðç
+wµ·*g¦ùdn
+òÕe=<¡Pûj×H½Gû(´èÚ®åÁl?Ì×R{ttOù+_ëßßuú©û²ÿIý ©W?èÚÌë×nØÿÅý é{õzgò%~8õô:|3¿_õFéßÖW¯ë+Iÿ¿¯ä×Wêé0üßì+I½"쿯¯$Ý ZûOè+I7ì+õPô¯é+IßÑ/ø×ô$ôöz:ý}¥{ëÝWú¶èûíÝ%µ>W3ÿ´îzwnÜÝø×t¤ïà®ìÇÁÿì.Ätìúlæ_ßeþ»LÒ5]¦Z÷_ÙeþnIþu¤ Ë$ÿÓºLãA1@ȰU¹÷ÿu½#é2ÿwõ¤ëzGò¿w$}k﨧ôÏïIÿ@ïè»àþs{G>Ïúíåúô:>þ]²ã#ý¨Ïõ5ÛëøH~ïê;üÚëàÛQO§Abûг¤ñÎU2ãË=p$3Ü,kJbùk5\ë}÷;gìß,«ÿÞýgèvt?mÜ"ûÕ+
+¹DþG¾I%_7¿È_rI!ÿGþl"j&ãÈWd_)äB3ù²t\&_\&ÿ£ÏGÏ2Éy
|J>9W(|ÒLÎÁÄs
äã
/É
+ù@!ï§ÿ"ï5³
+y×Jþ¸yüA!¿é¿_HN/^HN'ïü.TxG!¿%¿UÈÛ
+ùB~ÍäÄñáBG·RÉ1
]f×I»B^SÈ«
+yE!Gò²B^RÈa
RÈ
+9h!Ç ÒöÂBB^Ø?CxáEòÂ"~ÿ¯âý3ìWÉ~;ÿ«8ò¼Bk&ûò¬BZòK
ìugLdÏî8aìÞevÇ]Vò4 ýôe²S!O)dB¶[É6
<ùIx2<a";ILii&[²å1°E!ÈæGCÍNòè&³ðhÙd&Häa
ll6
+Òl$M°¨©<´Á$<4l0õɺµ/
+ë²vÍaídí"~Í/â53È;ÿ8ò BV¯JV+dUy
+©½L<IÍerïeR·BªREîQÈK¦0§+¤l!
+'¥
+q)Ä©
ÌRc$yÜe 3rBnWÈôi0ý2&ÛCÛRI±B¦ÂÎS3Ib³PØ['
+·*$_O¦($o²YÈSÈd3ÉUÈ$¸3I!sÌÂÄ@nrÌdWHv3Éj&ã2,½L2_$]!crËÍVá róè
+ £d¤BÒ2bx0â2>Ì,"Ãê
af2TOD4#I½I/¤*ä&=IIÖ)F¬'IuBÖÄT2h`0ÈI&X
q$ÁJÄÇ 2H|é§ú8=UHB¢HÐe%²D^&@BIp0L!¡I¿L'!
+éë$}S}CM!A
+ T&XbZ-ļ8I!FC°`Tf^!è¢
iZ
hè$<ÜäAl®
ppÎ
+&ØLBpv.{ú¿ðý»øÎ?áÿbET
endstream
endobj
-554 0 obj
-22691
+546 0 obj
+14914
endobj
-555 0 obj
-<</Type/FontDescriptor/FontName/BAAAAA+Arial-BoldMT
-/Flags 4
-/FontBBox[-627 -376 2032 1047]/ItalicAngle 0
-/Ascent 905
-/Descent -211
-/CapHeight 1047
-/StemV 80
-/FontFile2 553 0 R>>
-endobj
-
-556 0 obj
-<</Length 510/Filter/FlateDecode>>
-stream
-x]Ë@E÷|E/'ôîɲä±Çy(|
-¦üô÷K/ùé_£_Mÿ
-ýk8<Ô5ôRþ=<©çgCÿ½ú[aú[±ô7Èo³?|,ýfbéï0[Kÿ¦¿Eï6Ï_þn6ûK,ýkáì/L#uéoÐÍþ¥¿¿©4Þ«ÈuXGÿô°8yC°BØñ?«©Úû<§µì#6±âßoÅ4Nßo_O
-endstream
-endobj
-
-557 0 obj
-<</Type/Font/Subtype/TrueType/BaseFont/BAAAAA+Arial-BoldMT
-/FirstChar 0
-/LastChar 66
-/Widths[750 556 722 610 556 666 666 277 556 277 777 722 610 556 610 277
-556 333 722 610 333 943 610 277 610 610 556 666 389 610 777 610
-500 722 889 556 610 279 722 722 610 777 556 833 777 722 556 556
-277 610 610 722 556 333 277 277 556 666 556 277 333 666 722 556
-500 500 474 ]
-/FontDescriptor 555 0 R
-/ToUnicode 556 0 R
->>
-endobj
-
-558 0 obj
-<</Length 559 0 R/Filter/FlateDecode/Length1 6028>>
-stream
-xåWkp[Å>{¯$¿d[~ȱ#¯rã<¸±Øc8å$xÇa¤@®K~Ȫ¤88Æ<ÜP9¤i ¥M§L0¥YÓé``(îôGa¦)Ð&ýÑN()%ÒõìÞ«Ø ¥íLÿô^íÙoÏc÷=»«½©Äì024÷iñrB
-g5.=ñßzk/ô<^Sö
2jf8Ó¯ÂÝp[Æ9yÜîÊ|Öf^2[Ç3ðCÑÀ·a¾5ïù(_æßw =#ô`9å1¡}¸ìÂçúû ¾o}îïø¦á²¶Â¾¬ÿ3ÚßÏìÄåz=¢Ð
-£ÐOF|80I&دÁfRG¤
=Ép
-NÃÌÔe~ Of¶gþGìaØõ°v@;tÂ~ôó4ÜHò¡
-ÁÓpæ*s©¥ùuMkÖ¬®¯[µÒë©]¡^¿|ÙÒ%5EnZ½pÁu®ùUó*åe¥%â¢B{A~^nÍj%+«ôüý¬ÊbmJ«â ¬më
/R[)©Ö*̪2(kgåIhn2:G¾É5ÜhÖá¢~f©Árf˺nÅñ×eyMØ|_Àív1©[P¿4fNä»]gÎ
-Ô#ÞNäû_»&ó B«ø$i» µù×MJx"ã\rïü¼ô³æ¥' %e3©Ìô¡Ù"@³,*3a6ËãÒ(kÖLÐÉÓéCSè ©ö°Ön0YC'A®ñGºÙuí;
` E(Ïj« <GÔ¡ilsÝR¥çv?ÑC|5Ò²<_à {ÚÅJ±ö³mBµMûÞvÉieòf:}²Û³¥nN1ÕèzÚ¯àhØ¿¿
çËÍXs[Â"Íec=ýÆ
-Óe×·;í`m¹1¬¡9áP?÷¸_ãQúûizB᪤þþV^¸!®qØÖ;þâãF ×\iëv³*¦Ó~î¢Fç
-Q0ã?_ù. ?>ÖÜ-*è)ÀµÖ É2vr3. µn#Íí]GÑZ]F9!VȽU¶`öR¾»TmäDoto£+w Uç³Ö8¾<³ï½;£[ã"pئ´
Òé6
¶¥Cim*3Ö£PloOÇý!*ö9Aþ³.Öv(È¡Y¹æË®g¨F4ãTØ ¸Ñ§`VÜy-1àbÇ%+í@Ïmã!ò³'|;âè;¸zÅr·ÆvìÕÅ7¬ñG·ãB4?Ù¶\ìÄíæÛgbªz°Áƶ6
×SÐìU1o!.ÎJ;¸d,+¹lR0íÛÿÅr½Ó%J)mòòg§a6Ý!~ÜÈrt±2_ at vI&\2Gù*RëÙ<Uò)Á09|EaY}i×ú uà)Ƴ¿]iß¶3Ð]
-óÂC~ÁÊÞt±Îi¹Ô2ëfqåX²sÓä<bãúmeçã ä
-¼V`üN'È&¨ 6±EReX"9Ml
-é[¡RÚfbKQçÀÒ~çÂÙoâ<X,8åM\
-\-ð1ýï\+ðç
-Ï lôÿsíÿ×õc}½5ÚME÷éaÖRí&¢}]æ[NW55Õ×"YK»#:í
-§Fã:õ
-'âà -yèÆÁA*,4¡'õÄöl
µAà KïÛ3¨%fqègY·è$vFë<+WlÎ5Ð4¤M%´°>¤%èðîkzC÷F¢½:¤ÒÝé&SzcÆh¯HiX÷ïIDáh/×Ozð? ¼èk0¨FI!èxáÁ±ÌȶC
-ë.}
-yaùyR~^~Ë3ò³ò ¢¸¢¨Å
-¤£ºÜB/öÇÏÐ Â2ðáuÂ*h·jM´yݨ£cÝvÜÚÆÇ'|ªÑ¸%ÑËA¬gÆHµõðÊzFsFèÂV~¤ø®®C¿Ö-b´¤é
:s%¾³µ³º³xîE¨>óKøÂ¨;$Æ@Þ0~ÆüûsCñÃ'¸)½bÝ#,">jJxmä-*¬zçÏh÷cÜ ¡½eûOb|õ¥[ aìûDZGÅÒEbb.="
-îiJd÷qõ9Mbð(<g"f®ELf4=¦õÐUwn
-Gã°¼øî¯ç²U6X½Cÿ¦¶Wè¡'^Ťð4&æ4ËÙ%fã;Lo¸þ>NVæÅVTÄk¦ïÙ»}kBÿj²ß_a£Ï9ÄIp>Qgtv۲вÊÒnÙdùÒ¦9#ðY¹V/[`ì¾{Dþ´Ï±Áâÿݸ}Ôcê¯ò4ðúó®;ó;ïªpÝyWãLêÌ}gÎyûÕ1Ò<Ò92<byõW(Ùd(dpÉ@¬Â$÷æØ®Øë±÷cN°¹8Fbó?úk¹óº/"ùà/HR{ôõ#ÙE¢GÊ]ðÑôGÒÈÍ]ô1}Z_¼ÉDdª7ëqýÿÇ:ÉÕ#ã__¬Øç«rb)>¿ë¼ÄÞ%)©ÞÀÈÍ«þíO꪿u̪~óEýÆ1Y=z,_=v¨°¨'ËêCXèûKW5mÌ'+:¡¬&\0Õ¤xz«=yVzàp]õáºê¯c¯«ÞO~:mQñ»¸yzÚQÖÄÞ~G:ðÖoIGÆ×Uß} WÝåÀxzj¼ªúà8¨÷[Ô{±×ZgeÓ¹ÆYºÚY\ï´×9óV9m+²× ç¥EË_¯P)Eâ
ÕE´ºZ+¦bGÝ^XdÏË/°Ûrrí²Åj"Ùåe©^ÆË!YQí"
-+sæ:ó
-K-å
´xyCµsÇ@2yãG³.4ë|³Î1kQÿ`ÝYOXi;´w·°2õöV¯¶OÉ´Õ©í,·óÖÀ$!ˤû§~NZî°*õí¼50Eª¸xÜõÞ³µÆÕ,Ì¿JÆYGA½òI&ç4'-ñ³ëý[áµÎÔl=p2«Ç$_ÆLAÿUõöäí©drf
-ذ+-ðOä·gê
-endstream
-endobj
-
-559 0 obj
-3193
-endobj
-
-560 0 obj
-<</Type/FontDescriptor/FontName/VAAAAA+AndaleMono
-/Flags 5
-/FontBBox[0 -218 599 995]/ItalicAngle 0
-/Ascent 907
-/Descent -217
-/CapHeight 995
-/StemV 80
-/FontFile2 558 0 R>>
-endobj
-
-561 0 obj
-<</Length 221/Filter/FlateDecode>>
-stream
-x]½nÄ {bËKq»¶,Eä"?À°ö!ÅZãÂo5q)HÃ̳èK÷ÐQÈú£ë1ÃÈ3.qe0àHU5øàò¡Êîf¶ßsGcl¥ßÄ[2opº÷qÀ;¥_Ø#àôqéE÷kJ8#e0ªmÁã(÷<ÙôlgÔ
:w^ì·³ ÷-!ÔEWßU\ô¸$ë-M¨cZh®×V!ùÞA£»Yd%IcêÇ=Nwjë§
-¸YÙK
ýñ@øû=)¦*ëm
-endstream
-endobj
-
-562 0 obj
-<</Type/Font/Subtype/TrueType/BaseFont/VAAAAA+AndaleMono
-/FirstChar 0
-/LastChar 1
-/Widths[600 600 ]
-/FontDescriptor 560 0 R
-/ToUnicode 561 0 R
->>
-endobj
-
-563 0 obj
-<</Length 564 0 R/Filter/FlateDecode/Length1 29624>>
-stream
-xí|
-\TUúÿ9÷Ü{gæÎûÀ ÈÛåMD| µPP
-ÕÃñq¼ ×v¢sèèÙÝ<ÂÓP*\Eè´À¡ó¸i8§iDñ¹üA¾oã?ãO ±¼?Áð^J
p¤W8:"Pþ
-ä:þî$E\#øe*Wü¿´NÀøÍÈË#áÂkÀ=Ì5}Â)ö9aæ"´]l5Ñ0ÕØNü2î7¢Vô¹ÜJÞÅ«øh~?W5 at JÐz ½ËðR~(un _w£/øÍ| ý
-æ<ÈDeè0KDÈ4¯"kSz7ÐLã`<PÐ,©òÑh!´Ð>t
-gCÁe¸9Ý£îbá_vÉ~¹´\¾Ûrwô¸»-îq#Am¨LiáËí4hÃÀ_DâE¬9%uì¼YNvìL°FZc#e<êò®OéÛ¯kÅx/µ(ex£p
-éQ#@Ï!M³°0Z1
-"Þ`é¾ßR4»Ôë¸vNç´4 {¦«ÓÆd£Ão,1®7n3óRq2fô±7N|<câêjáÔ
Ê×çw·@dNAüëù´Èd4É%]³mn°êµ\@pL¡ABph¢
ÚøHKWgJHbF§Oêì<ßi9|À
ñ<léF
-îiÄF¦ÙEM8¶òÑx#üø#<®Æ#ذáEÏñ]X~GóåÜÅîϹcÝï7]·+S®÷ÔÞZ³óèÓk?øú!>R~×2ý$:ìb3Ï5£Úfþ)IÀ:
-Q5Ôr²££¯äF`+ Ò:Wcd÷îµî4îÛ®ë
S»¬ÝÝï¦5]úVUúcÑÀô\xD¸VÇi$.""<CÒGðvì>0¸ÙÊ7£b7X×
-ô!l© fy¯£³«óÕ¦Úèü`æ¯g-¯ÚÁÁ4ÓÐôýÌ:`6EÄ'ÅçÅyØ££D{`Pf7:§2&áD<zTLjJ?Õûæ-;Y²óö~¯¼¯|¶ð«å
-µOnÚÜðÑxÐ_*þ(leìåKÝÁ#N:ý§ä¤·3³îúYõGÝóê¡Tnþkäî°B[8#ÞòÞÌe©ê\\H÷'ÜÛ©SÜÃ|&
-Ci !¸4kmZ÷ÙM´ëÂ9jŧÖ[®3]ÌÔgéZµF´|´¬¢úöá_Vq¶zåÓVå1¥¯Å7ß5®µÊYåKmvÂvv7ÎÄá*\õû[J·ß(¿UÞekk-øåS¢Q¬ØÁÔ'¶lµm_÷xò`CÌðP{L¨Yj '¡æÈdKWGçùðeøî<sÑÎBU[¬ßzVTÌèQcüÀ{¸µ÷íØqß};w(;Vn@þëeÃûW¾ùæåíS7ܹrãÆwnà^ÙÜÔ´ùáÕMåËyûíg£^]úóÏO¯;ëV®¬t);
-ÁæD2¸mhÏ!L:Óç;U¾¤Ç(£9íîîow§þVÅ;Ú
-úq0t³#¢±®¶
-iÕ¶ZÖ¹V´Â¸N³=|P(`]KL§ï*¾?°èFKG¯3}¿FCc-g©¥©Æ>=kQ:@¶4æÀÖëaé { ê·@G÷IpwkÂì8F9©|uóËås.zê7ºáÑ"î7³ÿý?Ê_dùø5ɶl9KÖë}¡hGØjC
-¶uu¡f0¦=d08ßùNÕõ á(Îj±¥¦Ø¬..
ºZtýæÖnyäø÷È#±NùæâEå¬òÊp
-^$¶í°´ÖDm]kÒ
ÈX`
-¸:£Æ¤®3ÔµT59káÜ r?.Aû¹y°Rû¸8âW§ÍqÛïÚ¶í.8°.çá×ß1?°èC,(ç>Rº³8ä<LÆ?÷Ø£Ï?ÿècÏqKÛb*_+_ͧ|õçOÿfBÍÇ;ÂUߨ1¦|CD¥Á#±ò!_`P¢ÆÒõf[#IW¸uÙG ;iÀW¬c¯ã°Íæ°HiÂTaÙöy&#w£Ý½îTáTñ
ÂÄì¼tÜ:ÌtÆ«Qp«´oEk"Z-ÖÅjBC#ÂQTT¨©Lî·ü§Ê_üê~iÈÑ£¡GÃ^
-ïÐì¶¶}ah?o,óI[ ´FB©ª^£b¿£ >ÌÙ24;î@åØò&ت<|³_ïÓ~è±ø&lþó§89Í6åÆpn_÷T¿~ç~%äpØ3H+ϵ
-+4¨U§C ÀzËIßÚÂittuÒÂ"9èt|ÐLÌ<7ol¤UJ«§)a÷xZ×öݼwjÛÔ§Ô¼
-h:Eq°!C¬ØÔò¨õckàP=²HBYF±½ZòFÿ'tÍÃ:?zÔéã§í5bGÊL¾X(ÖÜÎß.,i
-Ö
-÷ØûÞÿ:6öåkRZÖÿ¼yçoCÌвüwì¡ëöÖüvð)Ñ
-G6#"Ä^Ó*`²B
-
-µ¼Ádyoú~=fd¨`''tt¦X©UÏÐbó¡$þö5êp=¦¢9¨-Aw#MâdÎÅy<c1.Ãõøv²
-Á:IR©öhk4äz"*VF+§Në¾YíúèJÝ¥´âÞ
¯}H¡øçYt'Ñ`Þ¢º|òX òî;ï(
-àó ã £MsD>yìüä´MY,JIø#Ñø£eñG´þøtÈ-\Æ¢sèjtÛtºyæ'àRä¿ê>{¼û,d§hôÁ+ïir"&,6¬mMæ´(רÓê³Ô¢&i
V Ì%vÆ£jðF*ËA¼«í;÷¶·g<Sÿâ«Üöî¸Û¶¾°½»IìÞêv}Emy+øl#ìQxm²cÝjí]ýI,´ðóÛmmu¡!vNk×¢éÍÊ][4ì©å¼÷â'Õµ½v.L&âÜDûÄ!A¤MÒ%HäÁÎc÷èæÝ
-\Û#·µ|ráa
-ߨuÀpâÙ
¯Í/}{r^y
-Çw}5mÜ»6·¸ç¾ðÚ¨Qû'àk±Hmò~Ǧû¶R]z.}L^âÐg>l_èö
½ÐÆkøÀÕö5Û|{l[/¶/Ñ4ÚÀ¨Ìa¢ìíWBÿËY[lïö(lá¨
-Bõ¡D8A`¯/×7èe$ãn4L?< )0É><hXø°x9>2&nµ´Z¿Ú°Úh£^Êq¢$ê
!$òaº¸¤øñ·Ä7Æ/¿/¾5þ\ü`X·^¾£¯ÜD kswÍ]³fþ;v|ó¹/W½ê\¹Î½Ç±çÁ?½Uv¸oذ¢"Gv¤iøCk¶~aôè97LÏ5Ç4¯Üº7\ÍÔgêA¿M<ÔnCí6læÍyrDOn@
-b£¦QÛ¨kõ
-Fc£©ÑÜhi´6ØZÏ[û£~°ÉûÀÞ=Í÷îÝxÛ³çþGù
-[É;öÙ篿öÅåu¥Sù$
-ü _Ëxl
-l´m¦uø9fµé§âË
-£ñ'Eµ,`ï
-úðåáá
-çñ¼X~ì3øV±ÒØÛÞ>îé7Ñ¥Ko6<Í]ûÄý÷?A]ÝûDi·Ë©V¾
Ïa'þóñÏ>;êoÏ-·ClÔ×Btl7uííëÌm!Í6e°AÔéÃ]R'cîÕ³ÉTÞè±/#}ÄJ>ñóÒ}o/ãÚÛ¹$'\Aþ\»³É4ФõdÕ&Sî°F!dÙhüH¡yâåÉ7i<°-nÔõÚ£ AdZDvÂ'@CÏ
-H%mÖã/tàKö
-Ë]×AhäK
-þøbàTçëÈg`ã`4Ñ9ã.Þ´ÚxDsÆ C46#9ÄÒu&Åñó4EÐ2H%dyÈ}!!´Ò£ý/Ê·£"å>ÿÌ«¯>ÿHîóºßáXù?zï8ññ»cbÀiMØÇE3_è3êY´ÃZÕcFàò
¡F8'ªp ø·Î¬2 1ý±Æá±Æ?Ö8Xbÿµ»mØÿÚ
-o",êNøÆ2jJJOlëèÛ
-ÇÚÚÆ=}ÇñKèÒñ;î~
-¢Ü®]éÈ!îæ¿uîr9ñd¬
Ïd§b÷]í¾fC¬
-µ4ëèÕç0l??¡óß}ù/ýE:Ú÷µ¨ûÞÂs6ãâ
Úb®[ õrKÜá^íF®Eؤ}³éÈé¤FâøaÂqÆa('%5d {ÄõÍdf7yB8¤yEó;Í7äù?Çw+V¶Ákçbÿܽ[t®ûµv1°«Ü}¾{/Ýý>qäRÅüWâ`¶êÈ
-N5C06XÞëzóäåä[´ÔM£JöW¼³}EÞL¿ÉOáÊO±oÄ]zW)fùYÌh²#TÏié¦I8¶h-gÄZʲ0Tr&ÍÖû93
-±ºázÙ8§±Â(Í]>ÙM²LÝ4½Ã8¢Qn%s4ÅÚbÝ}¾Ñc¼
-7ÆhöàíýÆ_?0^2&ÑúÍR¸ïRáݧççNãgÚÓ8Çó%Ýt¿Û©Ü4.H¹¯GWúlõ-M° øV'¸Ö{gûøVªDIJoz}K8µW9{Ù7жÐ÷HXýMB/9ÒC!ÿ
-
tC$dåÕÖéEHZz#M3ÏAo OÜu¤¤ªìÌÉN[Z"kÏOËÁjÙjÎ0c3g¦ ÍFQ
-Zt¬åDØá`®Ïæò
-p9w^ÌÝAjù%Û´Mø.n¹áAî!ÒÂRxÐHÍVÎr±JÃ'\Úoïê¾å®S©;ì»07*+ü9=7'(ñYô>+ç/{VÎ00}FîÁë
m{F}ì7 ïðÑR-uk¬ôù](¨!MhÖp¡ü
-Ôæsê´>¶=UEòîZÍTn¦+Ó,ç4°Ga$Â>H
gn\!.Wá»Åf¼Yܦ·°K[$K·®¥C9×½2íÅþÃ#ø/Førl4ã3Þaó=çÒ
-=ÔàË2{nÖ÷}}Ìí®áò»÷¿ApMÝÝ=á*ȹtiÆk4ZNgEf2¬fd6Z
-FDLFQ«^/eõ:ÒMäIØb2$HÖÌõpв ïôj!EÃN_eÀ° ¥¾6(
Æs"´¢¤AF1Ú8Ú-åI¹Æ¹º¹ÒB©É¸Ü¸Ñh0¡zÞ<Û9oIú@ÃÓsÁ1ÌËB< X)Fc37
-7ËÖ±°SÍ%óɵÒýõÆ4S9ÙØÁ9wÑ¡qh3tÒc¶)Ûì°¡ð
-ÜLÏçCì ±cn4S?Ó0Ç4Ço-Ãe\¹Taª0X´·n3¯AwëVéWÖ×ÖÒ5ë
-MÍÛõÛ
-{L{Ìû¿¶~`½du7&¬÷ÆTncîwl¬Ì)JTÆ«Ýò×oß<uuÛõ
-H¹ÃÂ[Ükä×BÀéÈëI«×ÁÁÎ ~¢
-ÑêíX£¹8ÉÇ
-Qb&V§"õÑ42£M3$²¸©$wð>OÖM&ë&Ö-¹|þ¡@,ÐäkuE`íRäÂnn!qö](.ÔTëú©Õã¥Ü2r¿L¸]lo×4B°[ªkÔ5HõËMÜ]ÂzÓ&´ ?Àm$[ø
Å5iI-m¦h'ÞÎm'{ø=Ââ=Úí_~É=MðÏmº_:¸ÉüÂRV ÁôÖãèâ¶O?9ýé'mÊ»§ÿçëÓ|IWYH¤¥k!{þnÃ/#rQ°Ã@¶¢;ES~¾ûÑÅ}@Ö9GÓ¢æ^!»±ÅÚ± ÿ85ÜÚKÙ9jöNõM
-÷ÜwûÒõ\äìýýö,Ø2~ýý;&:ÊSû>*yäioU|dÅßÊç.SN?Ø®´-_¾ú®ÀGNâE
-ÓóϹàõo¿wÝíÊÔÙ{ýõÓsîì>xzÑáü;צ;Ê_¾¸Mùï
åU³nð8ܹlÎ>rO[ÖØ´¯uþ§
-Êß·Eä{?)|)q1>jÚ'5[ñ£hß<h-
-Qr eÍÑ=ï%ýëÙäæÎWô¿Ôû,2%H+ûlå%¤ÃV~V¶ðË+O)·ãÕ¸põÂüS·Ü¬¼¦üA9¼vó-ïL
-¾(oÂrÂit³ð.øf8s[OðyúÃaØÕ¡-¢#ìÐ`ÅðÑʧúJ/vó}B7
::ÎËMx÷â·¼ö¹ã²AÙxÿf'þMÿyó#Ä-¶À¼hà+q ¾#¦ÀïÂOÙcxD'ÐÙobßêA³DÀhL§>
-> ð"9wHIÚ©$ÂUêó¨{~á>Ðf^r$øp{:0Ùl}ªhþç¯^öüâ
-õÔ¨ÃFã$íóöVÔÆµµõ<%èÞ×§æÚý·¿2{
-;V´½/f#¤©RÂú¾ª}Ù«Ûü TÆÝt©EX &8Q÷1rñï cb*ò
-ÐZî
-ç<ü'èVþ3Ô
-ÛßúÚVļ3b^%|èkcd·úÚÒÚã|m×|mÚ¾¶ÛoôµEh÷úÚZeoòµõhýI_Û;Îþ±¯mBåãÃ|m
-¿Ê×¶"íø'yjÖV,(¯ÆË)ÉÉ©òü¥rFE·®Öí¬J³«KåôÊJ¹öòÊn¯»v±Û(]1tZä\\µÐS½@Îp_eàd÷Bgq½\Zî¬^àöÊÎZ·\Q-×Ôϯ¬(]*gEµ¿O¡³Úáñ,êsÚ§Yì®õVxªåÄQêå>Ê<Õ0kQ^WW3.)É××'z=õµ¥î2Oíwbµ».u£<P)zyÝny¾»Ò³$>Qþ'ÊS*Ö{åªOmÛ%ÕzªäôZ÷b+þ9êU
-õFzgɲÊZ¥ßù']iïmKù²+¼S®«uºÜUÎÚE²§ìr*ﮪð2õWxårwæZPë¬Ñ@vÆ@Ï rGvV/kÀ`0À3¿4V*pÊ¥À´=ëÊÝ~=zªj ;íPWÔAËîj/h/©$*¹d§×ë)pÂ|ËSZ_å®®sÖQ~Ê**ÁHÃ(E6 at .ôÕ-õGÅ3NjÝ5µW}©qU`óëëÜ©ß0sie½r²¤¢®ÜS_ÌTUø&¢3Ôªª²õ^èOÅI«ÜTj9·<¡Ï tÎ$Oìu w°êÿ²©)s@¶*ºNRUÇ&ZRuÅ
-X%Î~rzªÁ/jå*O{@±åº¥5î2'L¨2Õÿns)¬îª(« 欬×uº\LrUut:k¯úJgD'r¹½ªÔµ
-¨:Kðóã½|&JR ÂðñóÑK
-Ø«®\*WôqsSë¦ÿµëK^ªHjÿòpϹkÙ %ZWêYQtnÿ
-).Û(¦2°Lo½ÌwÃJ¢TëÁT'==¹o«#;kj`y9çWºé
-Uv LR¯QÊur¹ÓÝÕýtB½®×»]r}µËÇp/«cNð»¬êõTÒUÍÌFä+iôµâïXã,]ä\
-3Æd U
-D=#A>#}
-Ç? í¦Ó«Y ægNʦ
-ÐcvAæ¤"ÖtÈaìNÊË-̼a&\~þ)¤YS3Ù @:üÄ8câç¸NQ^AQ+³²3äôìBj¬<`Ú3/yÀLÐ'5^®_j#zíJï^t´OÀÉé9@°²¤~}Á»2o+u×ÔQßö-n54²0ªÆÎæµj
-W½Æ`e±¬£F·ÞMÓqzYø
-%ZÉCÉ
-/[é«<jνÎJFÑUÄzA¬tVÂ0oýäO5µ0dImEÙYWk+n÷¥áZ_bȽÐYzÊÛ[Yªb±»ri"ô¥¹qRQ
-XÊ':S_iÝ8?T¨0â.O.Q$¸~4tú¾Xö§ÁAä¤^$ÿ@$]|A¾QòúsÆ
-+IêýQXIú ±Ôä¤~¸à`%éjXIþþXIêú.ß~p ò9
-.I>¸$ÿ(¸$õcíjÈ$U{ä
-¤2I>È$ÿpÈ$]ä¤!ü@&©(½xÆ´<ÊvúÔ¤^É:üèHþ1èHêä¤ÑücÐuÖ~¥øHW>ò?
-´
-JO*´æCe@:ä
£¹U¡¸ª¡"´ÒQ%|dTÐCËËÎÜðë1áÛ=¥ï1ëY`¦Å0ý_nTCoÊÆüc3NÖBWê¡G)ôu2jn6ÂÉ$J5|×@ù@·úÉ0Þ³;Ù½Ëé2*^àÈEW¹;ðÕbÆ¡èzج)Àg
-Õ¯÷ÀÊØUÖ:%¨ìuÀù8¯ÿbèý<ð[Ò¸ÙØZ&w"Ðpì>ÔüzðÛâJÓ{T·nf7hÉ@_jFÇÒ¸³ú³p¯ñ]ÇìI5PËFP T_¦Ëåèõ¡ú~>t5i$ø$»j3'´újíJoÐÈñ¾×
-ùé×åÀöî¹îH¬UÇ®P/«bº^×<`¿Ç,Ñ«bÔz½¿ñTÎî¹}r-`³Tû¬à³»j-u6ÕÇTN`|yõ«Ùøß
-Sgð
-c>ù$¶
-JÁC«:vǯ2hUúVÒ°{g q
ò_þ«z?±W'ôJ
-[5.¡ösãbÔ1_wëØ]ué;fHðæRà¬QQu²ù@9:u>ÍT±k}%òËPÛÏ+UnëúX¶«=U[K}"F'\E9Xeu=¨´+|ZíoýïÚ¯9Û®c|õz]¯DK>ª¾×þÕPÆ¢vµOBw]ìÎÀ~©&BRFOíã·õãJ_dó[¨ÍíbWø8ÇVg;'Pô°ÈÐk¾±¨WWFjè_ç[
-Þ~}ýk¥Wc}c@ßq2ÙÉ8Xlîïkª6Ô\âü{zX}¶¯b¿½ñãûØ¢e"9>ûiê»ÆR,õåuvªó2Æ£ËçIÌOk{®¨Rºúؼ¯×ù3¨eÄ
-3*ÙÔ#qJíUÝGúåUu&u2ïQ}×?Çåúñþ]ü\J> z=ÌÉlôý9è?Ïåú·½+Ù¸«Ds©Ç:µ,Î:Y\é¥ë¿âíñHÿz¹<{¸}qÎͤðÏ´Iåbã£ÈQ=r_>B{þlÕÇËÔ5sY~ÏÖ»§¯õ¾uà÷Åp·b
-¥-³sz6úç-:6ÍfsdµBà,Úö¸¿¾~tÄ$¸2Îi{
-¢(T/F±µCÇQ^TNàzï¬ý¹Êf3ú9g@ªïn:ÐÎfô(ÿ Ñv®OUs:Õ¥LiNrؽ:~ó¡_!Óg:Yå6É÷UY2ª%T&Áo>ÌM{L¾èLE¾ ÌTÉl<u:ë¥rç³2m÷RIôéRå꿸gæB&|d&\)b¶Iú~º~ßÂ(P¾%¦L¾t¦<6CëGµHõÓãq}¬2éÚr>ÍÎ4R8 $~j}3wH=3Laòe2Må°Þ
ÇLèÝsEõÇl&ë$®Uªß«>ÓG»Ô²7À¬>Jgºë/µÓ,ƯªÒ}ßúè¬×ú¹>ëúù)b3
- Yl-f²^éÌÖ
=k$ß>ÎgöxXoéóϼÎúë׿üý¾OìPiùçîoÁÉÌr|öhCí!}]5veB^+eûº¸Ý?s÷E½h´/îLèkû"5
-Oa}«.ë×{UÝ-©9«w¯Ó»
-´ÃöïU,ïG½½èCÝê¨/êu1|®b at o*ñ0èéA&KØÝÞ^ã«xúíóèÌNûzæòç¢^Z*®t2´@gó Í«g(éa
-Ë÷ê,KX»ÎL¨|õ¾¾ôúííýõ+m h¿,!¾ú¯eö®ñí¥*)LôÑEþ}Y¯N¨ÔºZÕeVïõ>Jmº¼ª@u° ç.¦k ©5::§Äâ¿Æõï¯:ýÔuÙÿ¤zÔ¯t9òúçÕ¤ëAò¿¸$}¯zP$_Ú§ÞZ¿ç÷« Taþmu%ùºôÿëJ}êJ½ÿu%©_ý÷Õ¤vkÿ u%iÀºR¯DÿºôõM]IBÿh]©÷©ÓOYWê]oýëJW˾W¯.©ûsIü§U$Ô¿º4puã_S]¾C»r
-þgW$æcW¢}Iú®2IUz÷ºÿÊ*ôw«Lò¿¬Ê$ýU&ùVeê4ƪít¸ÿ¯«IÚüßU;®¨Éÿ¶ÚtÕÚQo
-è_;þÚÑwÑýçÖüõêåÊô*>}«4?eÅGúQ+÷l?¬â#õ©ø|WÝ᧨ÐÔ]Aßz+
-%þw®^ÁÄxs1ÔÈðk
-\ëÆ¾û3öß,«ÿMûÏÐ\4À_·Üqé¢B.¿ÅoSÈ7-ä¯&ò
WÈÿƯMäZȹXòÕÝéÂW
-9ÛB¾l!È/ÿVÈãÈçä3
|B>9S(|ÒBÎ@Ç3
äã/È
-ùB>H!ÿHÞo!ï)ä]ùã2rúyò
üºÿn9urpj99
¼óÛá
ü6üF!o+ä×
-yK!'ZÈÇÃ
7r<¼B)äÕUVáÕPòJéPÈË
-yI!/*ä¨B~¥rD!ò¼B³öÕ±B»BÚ}^hSȳæ Ï>O]Îúe¬phã9äàK*är@!O+d¿B~¡}.òìÝ+ìu=»mÂX²ÛF¦¼@v)ä
ìTÈÙ®Ç3 §ÇLäQi
.-dB¶>b¶*äÙòp°°ÅEÞl&-ä!<¨M-FaBZ¤5·6&rÿ²á¾ç
-¹oý<á¾çÉ}Ëùõ÷Æ
-ëçõþÞXrBÖMÖ)dm"¹Ä¼;¬¹K/¬ $wéI\hrÕ ©Õ±dü\!w®´
-w*d¥¬PÈr
4*ÄqégË ?SȲeäi(²
-±äv
,UÈm&²Ä@K¤^!u÷©½@n½@jâQHµB*#É"
,´fI
BÊpR¦·B\
-)UÈ|
8Çäf§2W!sfKÂd¶Df³RH±BfÂÌ33HbP8¦7($_Oò;Ã"ä*d
ä(d:Ü®iÙaZ
-Ù2ÕH¦($«
d¶É
-Ä&] ÏôéÄ¡
-¹þ:p} ¹nY¸ÎF&7
-Ìd¼SHB®(\{cÆ1£õÂ'£ÂIª¤\£Rr$'é
d#IÒÄ:!ÑBFêHB
-1<Vá"ÃãmÂðXo#Ãâb
aé$.ÕCÍ$VOb(39#mDv$Dw0#
-*$äAá$X!]dhjB`PP0±+$P!
-±AB¬ «5X³b4 F
·!è"YN!Zè¦U&.ÂÃM<ÀNà*QçÜH-)·aת{ðÿèßÍÀwþ
ý?rÇ
-endstream
-endobj
-
-564 0 obj
-14406
-endobj
-
-565 0 obj
+547 0 obj
<</Type/FontDescriptor/FontName/DAAAAA+DejaVuSans
/Flags 4
/FontBBox[-1020 -356 1679 1166]/ItalicAngle 0
@@ -7164,1501 +5390,1669 @@
/Descent -235
/CapHeight 1166
/StemV 80
-/FontFile2 563 0 R>>
+/FontFile2 545 0 R>>
endobj
-566 0 obj
-<</Length 509/Filter/FlateDecode>>
+548 0 obj
+<</Length 529/Filter/FlateDecode>>
stream
-x]MÚ0ïù>n«Ä±w%ÄÂ"qèÊöÄÐH%B8ðïëw^·z
-mT×·K^Éw{m¦¢L¹ÇÇm×ÃpW«¢üÝù¡6ÝxòëÜŹ.êéÇöÖÇû4ý×8,ª*ÖkÕÅsªó¹¾4×XJÖó¡KûåñRþ|<¦¨¬5UÚ±·©iãÜX¬ªjVûýºC÷ß3_3åtn6s
-Õ)´ªÜfØ
-Øk°®-¸6;°ç~àaû~eü¼á¾Ô|#KîìÁ;²Ôy'¿÷dXWdxjú[¸iú[¦¿ygÙ§¿¦¿¦¿¦ô÷ð×ô÷â@ÿ ñô÷âCÿ Lÿsiú{ÅÐߣ¾¡¿ßéïálèàlèïQÇdÙ§¿¡sú;¼#C'õ³?îÖÐßKLöÃßTZâéïÑþõmÅäÚÜ?¸ûg´¹pKKÿ 1Ù>6ß?~×ÒßÈ~öÇy-ýÞ
Íý7KwayÿwksÿHÍÜ?ðq¼ÿ
+x]Í0
÷<Ëéb¾6öEÊ$)þ¨>
+ö<-ýÖhéï´þRôÁ¦ý÷ÚäÞÚÔ¸Yúzh¿æoõÚYóéïðÚä~:úêýEÇéo±ü±7ýÖÓßÂÁ±ÿÁèAK'
+Gß?G9oîÓ´cýpèùÅÉíúø÷Û2#féï7]/
endstream
endobj
-567 0 obj
+549 0 obj
<</Type/Font/Subtype/TrueType/BaseFont/DAAAAA+DejaVuSans
/FirstChar 0
-/LastChar 65
-/Widths[600 294 686 631 634 360 603 774 636 336 636 636 636 636 636 636
-636 636 636 317 610 633 615 317 520 611 612 634 634 411 591 277
-549 277 633 392 352 634 633 685 862 557 634 974 579 518 277 591
-518 684 294 748 575 591 817 317 274 770 787 336 1000 698 837 837
-634 731 ]
-/FontDescriptor 565 0 R
-/ToUnicode 566 0 R
+/LastChar 70
+/Widths[600 294 686 631 634 360 603 774 636 336 636 636 636 636 636 698
+633 612 634 392 615 411 317 636 636 636 748 611 277 352 549 633
+520 591 390 634 390 591 277 610 557 579 731 694 633 634 634 591
+294 277 974 751 575 862 500 770 787 636 317 685 518 518 684 817
+317 274 336 1000 837 837 634 ]
+/FontDescriptor 547 0 R
+/ToUnicode 548 0 R
>>
endobj
-568 0 obj
-<</Length 569 0 R/Filter/FlateDecode/Length1 31452>>
+550 0 obj
+<</Length 551 0 R/Filter/FlateDecode/Length1 21004>>
stream
-xí½y`SÇÕ7<sïÕn-d-m]kñ&[²-á
-®Á62`ÆÁÆÁ`ñ&8{âàfßW²¶M$Ĥ¡i¶6MÓôiIR&mxBÛ¦-Xß¹W¶ ¦ï÷>½±sgÎÌo3gÎ+Áþ¡(JA#EBçú¾åË#óB?C;ùßýÐï#¤°t÷^¿çÏ/v"¤ü3W÷né¾ÞU´
-!
-!ñhGׯÿyBÐlÒFÙÈxîÔ.9<À³gÍúÁͳ2xÞ Ï¡ÞXgÇ_nÚe³ß%Ïë;6÷)ô78ù
-ë£[>½*D}±Á×°ãBë
-Iy_´orAÏCH|Ãü@},'ÏËÉä
-¥JIÑêôT£Éf±ÚÐÿ+?Ü!Üf±«PB#Røpâ±|âT"Áü
-_øóêpWÐaÜ
-i#<íC¯£[Ða¤çõð¹ f|+þýzý
-ÝÞ|=Do¢:t'º] 7±#ñTCëp=zDihjECÙSøoÈ|¨¥£Û¸*îÏ/Q.Ú.gÌXôaô=t21Ar
-? <4A× GÐSèS¼û./¹ç¡]èEl`2Ùì6îPb3ôÇlh|ÚÐæ¡Í0Vf9ÀüXf8õûñÄm¨ÍGKàÓúÑ&tú6âKÙ7¹u;r£Ùð"èh£õ¡ëÑ0gÑQôWÅ|¾À´q~nw9÷¦l[Â(ù·£YÐçatº=Ùxf`%p!öçWÀèïÂÏá3^ÆÇÌdúØ;Ìîá¸= xfYi^ 1ô
-3Ð{?.´zÜÂHVã+ðõxßÄûñü
-~
-¿ÿÿÎ`ÆÄ,b3«ËQæQæIf/óó;æO,b#ìãì[ì'ìgì?¹Ln.2Ç=)C²\ÙRÙÙ?;uçDÁDdâæ¿&6&~´°c 90/H]3jA¨¤côøjØ·¢ÀÞ{ýúú+úz«ÄjÎÄNsqàk ÿµx>^WÂEa5úðF|9¾Fò=»ñýdàø±1é0«L SÆT0ÕÌ,¦ÏÇ42À§éeúëíÌ]Ì=Ì#Ì_0o3¿d>a3gN² zÙÖ̦Á§-a[Ùì¥ìÕìv½ÝÅîg³¯Âç5ömöÏ\6ÏE¸f®äná^æþ$ddí²¨ì»²ïÉîýMn/ï
-ö{¨a$ù-º½æÂn{bHÕm mn-2Eý;A²/
-¹Z`ÐgÌÍèJØåÌïQ=
/`þÇǯrìC¥ ¹BÈ,É˾ìN_F4>s
-ÞÁþ
-ÿM§\]l-º¹ÏcÐpÆþ,¤êÄÎøïD?Ûh@ǹÑçè#Ø?^ÐÈ
÷ÖÆ%Zs
-Èç #ìIüº?ì ®å^FqöÝ º¿<·âlôcX~9P
-³q^
--_É.BÙ_.|=Ë0èìÚhf[OÞ6¡Á£Ð¯WÐgèRÐËaþg°ûN-X
-'Ó+è8äÒ9h s9h h¡. at Fpy¡/Êoß°pEóò¦eK4FáÙ³ªgVUVÏKKþ¢B_A~^n×ãveóάÌGºÝfµ¤MÆT^§MѨUJ
\ƱF
uîúv>ÓçrÜóçgwdtLËhóU:Oo§lüépv
S9
INlà«QuQ!_çæã¯Õºùq|þ ¯¯u·òñc^Di.>há!;jðu¶5µ|·óuñúá5£uíµÐÞ.z®{nT]Tv©5 at j[Ý}»°u6¦c«ÚÅ ¥zOw×ÖÅíîZÒ
8ëëè7.i©«udg·ÆñÜN÷ª8rÏë}Í¥0qùܸÂð=d8è:~WáÁÑíã´ªÝÒåîê¸ %Îv´TàÖÆµM=BãÆ¹-WO/u°£u¶<^ÍÇï_Ò2½4ÄÐÔe¼õí£õ
-4ÚYlðÓ¡V¼¡'®Û>j¨"ù¤~\æ5¸ùÑ/,»ûا§çtH9r¯áDH"åI:îóÅ
-\(æÂBBgÓçE
Ãã¬ÎÝgà!éC-Pµ*
-®îk¼ $yã:o\Oc7®¢4ü³zãv¯
-ª'Quå¬íýãtƱ8ÄÆvGG+oòOæ]ÞÓAdeO¡Mé(þmÝøàì
ÖKEùÏ«MûØlX0³¨Ð
-¢ãCoa÷V8ÜÙãD;Ñ]í^ÐL»'Å£í@ºãË
-HiïM×Ó
-ÕX»ØGöM\á']
+½0%gCOúl,oyÛ
-³æ«Æãù»õêå¾lh>ÞT
-ªÇ`á+Ðøft3£=øer+®ñÄ»#ÅÆ>5¥«ÂØÓY|¶Ë]c`~μÁ¼\¨9q¥@ÐBÐAÐ@0&
-)&9Ø'y²_d´®ù
-$3FÊ}2SSÇû
rÛìr¹Õ³´2#lÀZ'§ðùòÜåJMÝnW»
-óÜEËêR7ºÚ]#®1çg,{
-¯³ùµùª}©Aa±}ýè °DÇ*+}£WËü¾
-l>ø9¤0(«u
-Ø×¿ÖgcEVÁò¤ån¬\Áf'
Üíµ+/Mnb&·>PÓrU¤$§6ÛûȾì®+é¬?usmI?okÏÂÚÒJ~»}äÂYëJ×tÅÄ«¹³óÓ|9³ó,ø¯¾ê|+ÈÛmM²ûxñ!¼BY©êÎë.º:xkPÆùº|¾ßï®"ù
-ö-þ0qÍ
-«Æ1»µ§|¼¿'ª®EÇÚQ2Ò9I*U5áÆ¡'{fIMçÌâ.5M\L
-z1}(d¨8ÖÎÙµùÜZ¹`Ôx¢s5µé´:Y5ugÎÊâE&nÏì£e6E¥ÓtåÌã²h%dzfW2³¸ðí£ÅHÇÜ.¤
-Y|VqÕÕÕ5¥ÌÊÒeY³êýø ºd 6°*M`N g FM8k<Û3
aZO5|þùÑSÒjcàFá0¨ê0PG
-Ç®Öù}2º¶Db
»ÜÜÙ_]Mn¾ÿ¿{âBºpLß«ïþjøcº!?lÛf¥þú×§¤ïäºN³ò-ÑhýD´þÌ¢´iLi5¨Ô!Â^¥Wg¡¡*Ë.Ï[ñ£ø1˳øYÍKøôþ¥¡z´u£atºÝªÀã{,ÚpÙ:ªP]Á
-¼2åVÙÓÊ/òn9¥%÷Î<ð )0÷ÁÁAö&4HÉ×jNõ<hÓ¢QSYñ¾\OiÔfY38M£jµdqyÕl±XSÔ<få8Y
N«æj¥0Ïj1¸É>CãEéP£÷ɱü"Õ¢¶å!½ÅiyÊrÀÂ5ZF,cû-q¬Ï-ãÌÏö.¸îÓ¶>¢n¿hë÷Ü«°pRÉÆ¦o]Mögu5ìLÜ_R|°-}Ø·À¬(ßçvå*Üg¨Úé»ÙÜñÄ{?ºcâÇvnÕ§Kë~ÞMS\úØáÑØÍGGd©¡U<²câ³úr`ÙM4ù×]û¯ë¼êw×´ôóóû°æÏÃùYÏ<»Î®O
gáØSTôéÁôµÂ«Ï/-r+æËê5õ-²fMlµ&5Ûì¯,6+ô[[B§ãgSöº_rÿRuB£S4fUWÉUÉkò
-3_6WÞ¡¿#c_ÆO3~ñNMê^¼?s¿{ï÷ ó?3NT¯<Q£.tÒ½Ëÿg?ã-ôúË
-gø9¿Ëÿkÿ'ªOR>ñËýFGJ?WU¦*Oùu<?ÅëïIÙ¤ÌOÏOUY¥J)ô礨tr£*Å_ÈyYÄV
ô`ÀxiÄç³ð®ã.û÷M *är~Çüg3c&RhFórËÑJ\IêT.É;Êö,!
-~(p:˼Úp-s¤ö³Z¦ðÖÖ¦Î[Ô¬³Láu¦jÌf½²r6Y+Á·ª®7]Ìû.°3ð1nÇvû¼»~AÌgÐÉçðh6Êʽr6;{Öt}:F7ÓöÌ_Ð
-²w¢mãѶccmûEK«mãçÇì rØ]ápjeÀ×¶äø|
-úú
-'}ýÇ Ëp̱/ÕhÅç^bdO©=§ßû{²ô$ýpO¤Gwkõ³½Ð¡"ÔD!µm$
-Íà¿°Èöe¤ý°ÔëÅOfJoR³Â^ôiW|¶ô¥=Zø¬M%)àü»
-iD;Ný´
-ãETnDdçäÛÂj±f1ifØ?9¹âqV^NM«Å,-íC>pÓlqÃ)ôðcßòµjÔêØýðªCoµÞXáuåTzý<¿7Ëùnóm+rïüm]]w÷·Ï»¤ÌÁûû»Î£Áb°m^pÓAg£Èiίk__bÉȵZRmUUßÜP2ÛQ_º0ìëØOÁþ+BUø¥BÖ¢jÊn)]«ê©ÈÞRù_ø¬öù<¦F¥K1*ª
-ða$33\,7;ÇãÏ©Zîmò7UE³£ÞîÒhÕ°g¸ÊpúÞì
-!"ÌÌ@BÁLÔ¬`l**$j^¯'©KK]+°Ö_¥Ó!\å÷#U6G¥óØ4yU~¶\«)Î÷üÆógëñút¿ÑýYÇza×=uf#Æ:
-]ç¬0¤ï zC¥ Ñ0M£Ñ8ÉnÉ2TFw3+1*6o+fÑJ¶6;pf°§óÚ¿ªØù{ˬƱ.D<T¹ÏÌÓF0üÌTo¢g*´QC/þ|Ñ©PøÔçÉû)¨ßcmä¸íßè;Á¼º:Ù%åk£2
@ªa'øpÛa\
->»PÀÎÕ=ª8_4£ê¹fCxEí¼ÃË]а¬ï»æµÚkvx´
Ò×uñÞó©¥
c¶ùÞ¬ÜÊ ñßn©z¤ÊÊÂüó2çfÏu±Ã®gÍ̬Áwgâz¦éföe¾ù#wedð®b×û.Öèr!£¯Äã̶¢a¬w:-
-¥´Â$ÒJ8»C#Ê1%£Å9õͬq0T{%&O§ÑîÝÂÏ©[Hã°`GÛ`FÃÇTEõS-EmA,g È2U¢Å.±.Ò(!é.C%aØX
-Vª°ì p¶¸ëE£2oa5r©ÆPpO|V·}ûàO9³¿3ñä5ï|ò8®|øGQ¿ê¸ª§ç9øÂHgÙçFæüêÑë°íÑwæ¾³¢
sâ^k©Ù"\`Y´)ûj|~?nä;j¬½'û$SªH¯5ÓwvâgѸl\¹/}c<c<sk_ð°ëpð½Ì4ÒáP^`_Zm%SIm"³vUP jV|_n³ÛÓ÷³fºoÕ®fÁ¥°«Ç©$óùÅ¥Á`hº¨N¢V©/Lº¯+66ÁNkj¸BêzÀ <Ũzfeó`²ÑP.·w#98MĶgv{r»áqO0d'> Ρ/.vV]ÀɲÛÝî`pka^¡Ï¾Õg4¦ªöYyöÁØ'â8k\A»5hµg©AüfÁÆ`{°/8¾TÇñß÷Ìz'%(H¼78d§¥S¤»Sô4iÝQ
-ä(5È
-v"bvÁN"«.3ñén@³ZtÄ6Tº\Õô3éU§RyWûm´v´aHËÈìÈd$êF¡4N¡>¸O<Ë÷-uÿÙ
-¥a4aÓ<Üúp±Ï4FðqÄô±ñF="®¡¬H&h&¤H-~[|Y¤F}ÚݹsɵÕJ¬Z¥ÞIrºÇµBH!B*a²sÈ.½<òLF#âL`T ;QZ¥ÆyÈ`'C]üRòàÔU 1dw¦àÜt7È$Aä"w1aT=Í y<μ\a?øøïµ%°0§êéôxáaH°ÿz~ê%9ÏLâ±&:?F¸ÌøHæ#§=ÏæÿÈó|yz ¿pa ¡ø;ÅKK{;J//}¦T-GG«
-ÈK¼ÞEïd)}7¨Ñ¦<ÇãñÎðÎȬ
-¶àe<ùÇÒ/'J
-\fnfYæµ%ÊÀk7ÊJÓPN3Ú¹(7\ÁC_djKǯ.%ÖKF¾&ë#f¹aÄ\ÑõC%XýU×oJ
-ɯÁ·ãßÈ?ÉP4£åªf×òÐjõjÛf×>ûxÆ~×þàxèîñëÌwd|_F¥½Â5ßÕì?÷a¦'tbìphÛC¬
-oU5rw¡A´±ätO¦Ü¾.¤TT
PbÞe>øí@IhÊF°²É/ýÙì5:ѦÎõÌÒ÷jÁª±
-¶ýâͺ¢fÛHöÏm£Q«UIà$ZN½`LpØÀF²«¦ì©Ú+YE-IÓÜ nèDF¡V\Ãl#¹k³9\nNN
-m93ÉÕjmÒº±IÖ:/tØÀ¼7Î Õf
lµñ©à C7lÒ¾áã̯öT¿»zúÆÁ7³m$ÓÆFL1mlÄ´±ëaÒ´1ü;Ûæ"I-%
-b¸
-ܳZ<ASÒàY¡ªûî{T/ îÕ¼}µ%KêʲòÔoê^2ÝàY;h=v{]¨pÇ@AÉÄåpÔó¶´ãËmi¹VgÙùO;&ü×B/yÑcÉ®k§W NËñ(5Ýî0íGϣæ÷Ð{¦Oñ§Æ¢JY±ÅÄ£ýâ«$!ÅÈKJ¡²r¿rÚ¥â©ðÀW_BSáWx;>ãD$²@~aÊ4úÅ£q¦1ÆÌ¹8÷aG¦r´µ8á)ÔçÁO¦³Æ¼Lê>ãqÌ7&2ã8~fOqó@^ÉQ'>©ÖÊ`
-ËìêêSÕÕÄ;O¾ª¼N¢²d¨¦F³èÜï¢f_P®Hr3ÿìùê¨Uä
-ÔüÎÔÏ^\ønECÀsѪèùªT\M©ùÌ Ý/¤_óTßSºHaU´X4¯À§¾ôj}ÇàÄ}Hfy%±Ï9ÕÎÙ9\=t«e×q£Ö»¸»¬sû¹}²}ýÖW¹W¿á~cMCS××`ľ>mí¢¶R,,õÐè«ý" EfÂÜ´Kî×%ÅÉddÍìâ%7fzgÝêää:VÆñìÝ,}s!ï`Á
-¢máó¬Õ«-D5FK»¥Ï2bIXä[,Ù<1tÉáÆ6ßi+Yh;öù1¢1
«á°$ZѦmóÑ_g×òîñÖÓmÛµ`ÛV:[OÕù£°³¶pÏ£|æ¡@u£Ó¼&%B¦eYå1{²BæPV¹6«7[ùÖüÕ(£Æ¾'ÆÃÆÍüæüÐM¦Gñ£Æ½è%ôémô¶éWæß£ß>2@'L'Ìr^éR+3ÍñH9mÍ'¡Üt#²ívÈOÞãòr¢öøñÄg\¡üqæAÅ;Í<
<éYf#ë
-ò
ù+Ld7> ¢¡Êç仳-lØ:ËvGÜ[åL52à/©ÔÊ|L&s31ÃÕl²äó9èy<aæFd³5ÂÓaèwó?¡Øp8Ág
-gعÒsÊ#©3FoHWÝùôª{/X¹Î
>èè&ëÞG£qÐkìcÍÛ[
-¡@}jN^yNÀ¹p\÷ø|}ĸúüØÜ¸Ê×JD ø{ûÂÄÞÓ'¦
-9$}wÛ(>iþÛ{²¤çTÂì0Ai®%¤È
-2IÉ¡qÚÅñÜ!¨*Æ(8½!£P¨jDÂ\
(_[+>zêh*}¥:i®ª&ge2
¶
-ÏYöBzóZnÊfd9{ÿ£t[L8i2úÄïò
-õ·_µó.×Ïó»ýÊö³¿£ºIt]?Z&×ÊxÇÄFúÒ¿|0³)ÇoZzÈëhDvU{Ê*m»NUp
-Êc÷pº<c·Â8߸7§®p4g4g5{ºqwj·±ÛÑÑÕíÆ269=ûµûu ÕzBã¸Ou¯©Ø®ÊÐX2Ä«Ô!/$2ÒH£zCŨÜ`oSaµÌr5Ol,ú-8s¨ú:ÝGúm2×
-§j½ t2é%BÎäKb8Êã5{<^pÁ¬7a[¾G,?#ñû
-æ·<ìxÉ,¦{¿Äy>\å(D>´TòI#LSVÄ^&)õóiDzÔ.5ì5Am$WmHÅjcÉoÅqòÍÄÑÄ&_=LfqïÝ2³, «ÿëá1EÚCÇ/Ͼ}Kk}d·ª¡J&ÐxeWîuÂö/®ÁJw|Øý:÷:*Cÿ%ªÊ±YÎF(ç-3̦Zî°<Nÿ_?¯;<^o:ò÷ð)*
-"î5§§{óþàw!WÀï÷xÜrÍ8[-d(&Mzy7ÝàtÛJûtXWÑ>>Φ3{ö«ÒéåêqìÞÕ*>äò§ÛôÕ§¤ÊO
-Sv¨ø¥
-b
ú2ò¢§ºZº£/'_(È-InÎéó9©/¦lÏÝ-r[Þ÷Þ\é*ôÎxi`esø<E»8óÚ¨òðVñk&¢N³Ã>7½Èp.ç]5Ù<þ1Ñ}¢ßG¿MC¾íçÛó÷âQ>*ÅW ç¥`Våo)~£ËC¹)óÑüÒ)Ñ´îÂî¢!ýpÚ¦ü¡ÂMEïÕ?møþ%ÃOò¥Ûðáï)''rþG4ý6XøøîaL3eX&éKgZ
-[fàù²[ð-ù¢Gþÿ/Ï/(
-toqIÈPm û¤Þ@¶ X0Å¥!CÉ]TRZJ2òôYáX)>RúY)SJ^:ªx_A=ç©UÍ®DÁ<Þqfl·ö|?${LÏò_
-ÞH|öOtyhÏ%µsW¬ràÔ#â÷6Z>¸ô¡åÝ'¾W]³öÒ+'þúëò˵WÜVãßrÞù·7Ï¢Ò¿[<çäïTÎì¿dGâl ø%<*ÄwWzâÙÞó¼+íS7n3ýÁª8ÏÓlevÑOHM"`¶e¶<+p³µÅóoG®Ä)
5Ó;¶àaÛfïcøO¶Ú43½ó=½kÐft½úZÍåÛ=ê;4£·-¿´þ5~dù£íïès«YC+µÉ©rö«YÄ;¥_ßHæª]+4«Mm£×+U¼×dk¹iv»Í¶çó²³ç i¹Î4x£ÙNÆê÷à¢<ºúýS¹=n
-Á\'øøq%xúÆ7oX1`ô:ÊuÌ<G3³< 48ùK¹©Æ¤ûêjÒãöxsró
-|
èÀi~è·2µJúå©äNÃLÙ/LV¤7fìq»è¯òd8\®Øï/8ø"8PJüÆÔTòý Tê:1~3Ãø©qñà*ôa3lßáOgEPCÉñò`P{ÜnFÜæßá?àgýãxËâ{ël>»áó6dr
-L¾%M¯}ä;Wû¥w{ôâK²++¯6\|¨ZQ]}µáòLzG¿G¾³§ûeV<©-Le_ñ4ûènQ)½ºøsmɲeøØÕ¢^xîGõ!p'>¥¥Bä$^x±ä28i`
-Å<¢ â['Ö"úKÌ[^ÓZøóúê/*%ýͼ~É'K¾5ºÞj¨¤ßÓ¦õäºcÚ/óe#Åi¿Â¹×ÐjôA·áÑD}]nCsÑ-ÇШ=n&;úz{áüÚA$
е¸2ÛÙ
-xd@ÔýKÑß
-O»U¢ ¯hUj¿'Ѳj*Ñ2¢ý@¢åÈ®=&Ñ
-´L'h%2éZ%Z
tº^Vc½î"Ö 2ýµ¿¥Ôh-{¾þ¯C~ÓydÆ9úeºH¢9TfºÒ2ÈO7½.Ñ*5}Li9äÍéÍ¡B³Ò
-².æó%ÖÂÜGi%iÇ|¯DC;æqJ«Èúÿ$Ѱ¾iK4´6!Ѱ¾³DC«$Ö×ò´DÃúZ~&Ѱ¾d]X_ëNõµþT¢a}I4¬o:'Ѱ¾é}
-ëþDÃúfRZMæ*û#¹ru5ïqUI4ª]R:
Ýu§DÃØ]bu4ÿ#|7¢´ò]îRæP»Ò&2'î$æÁ-ËùîK4Bîÿ¡téÇ%ÑÐO=¥-¤ÿË$úï¹ÒvëyG¢×ó%¥¤ÞR~zEÉ$2à½D¢A¼7RÚ ù6ïÍ¡b¯Ø¦ô3G.ÑÐϱoEr%KÒJ:Ï4ô3gÒ´ÿ9OH4É
Ð)"ÿDC~n¥éüç.hèn/jB[P¢nÔ:!åÑãÐJ/B1´Â ÄÅ¡~ IÜù=^¨ïªæwüÿl)0Ù3þf~/ä¼x%¨>pJT)ͽ.
:«¡´ÖRho
-ÉßwXDyú¡d
-À7^Ú~-mÈÇ ½J Ýd«(â ´S»¤¬ÀèI¡4Þ髵IjòwÑ>m¢£Ym í¢Ü4¯hQÂWObMG » JûÝ)ÍCQ3ÂÓV}'tt½YaM'Ì
-O×39~2õ3£3\M@'wOûÛE±{^5ÝÓÖ/F÷gð¥-§|]´1,
-Ñ6)ÖÙg<Fg¥ÆSsÒO[Q }¤}Ûg?&Éi²¿tîÖÀÓÔÌtW'ÔZehI9õÓÑä*ÐEh|üÓæHìu=pþõÐjþm
-Ði<
- '¥c§²Îÿ]¬MTRDÞè4Å({dÈÚÖJG ¸âóh~ä,ÈÒ<ÐuðYDs©i »¾J÷àçG2_Ô}T§õIûyË¤Þøf»wjõz$
->D¥(¹¶ÐYMbOÓ%C´®(GÉþrµò=!»]Ô}Qz¶DiÞjÚJtR2·Jhk |òÅ I-ísÏLR³ú(J÷@Ô³~*=4¿j¨-TÞûé*m¾bÒ¸bTcLµ²Ijólx]¾%r¸î)±×«¤Ù µ|¶Ê¥£:}¦D½s¦TÜ3©YéÞ¢ûµWíÚÚà9±ýTl ü´¥-g¬
¸N§$¢¦é =ê£3ÛCµaç7Zs^Å
-T+l§)\rvÑõ
¨Oú§Y
ÜýÓäVßà¿)Ò»õÒSí%õÛÀiZkJCNqƤSèÐU´Ý.Gì×té&'<qþÅ]Õ'ÉGRJ¿*C_7¢)ùX@Ç~æÊ&íoü(m;9©s¤êíékÐÿùj/FÏ.鬦zwÓ4=ðMV?Ù¸'É^Vcj%Û;sÅÙG0HuÀàY÷qrÅ:¾2×ÝÿQo§fùLNÉÆX%=MïQÒî³'ÙÂrÐÿÄ(BÄ2@!TÖ(q <P¹l*³JK $$Ñå(Ô*C3À.'´þuÿç'c²,ðÙ<¶ôE»;:£üã|Ó(¿(¶!6YüÜX_¬¿c°'¶ïëíôóµÿ)@ãÅzHÎ
-m¦üabb«û;úÖlÛÔÑßÅ7D{£ýµÑÕ zÇ
-|}?LøjRK¬À/öF;¡<Ì2éÏ×Ö{:;zùîÍ
-ø û1SÒî`´sÍÚ®XçÐúèA:§þ5}UÀ¦Mü륩ówÆÖÖ®ï
-¬$2°~`e§8¢ü¤äÖÚí
Ü(²8Ò´ ~ÁܦÅ|¤?oÁܺÅËêøyKëêÕ-nÒªµê¦5=tht1
-²Ð×ëuÞBdã,ËK×>4%+´%6DjvÆ©mè9"íÀ\ tð }Ñ
-ÀÞ±º?%áç[¡Úá([EDÌöi!Ârå£=ÐX?ßÕÓÞ»
ïîê,Â`lu²lΩz] ·ý=«¡iè&YúiÊHv
-dgr*&+÷aîèêXÕÝN¯íçoèÐÁÓQÀ¤MBÓÁôE;{ºA:Ï9³¸a°gÃjZ·£««ÈÈI?U
$»Î-à
-~µS½=ë{Eɤ|DÞDÑ¢I3c°uúVõö¬!8Ð8Ýë;¶ðÐXª¾-dâ¦fèt :º§×±a¿q(:@aèéß _ê7eXÔîíDdàÌá>XÉh¨FqÅßä¡[
-K÷±NæþÝMN¾FÅfA½,èA´EÐ ®Áip¼"îýýøBt_(¤0ÎFo£¯±¨qN#ÉldmO+]¸¯&µÁØ`ltlÐ
-´Ápl°46æÝEα*Öîpá³@¹jÂka^µÓ v´üi0ýi0!iÌÏ%3pÃ}0Cfà4§Õ¡©Y3©±ÛYÞ^3U@¾DPÈaVµä°pr¨)9,½b=«þ/Ì®
-¯Hï
-Â,ÚÆ¼
-\ÛÞÆ¼á0Xmc~áI@ÝÆ<á ßðZö0G <
-á1ó
-S¤0
)Ha¤0E
-R¦Ha@
-RÂ)Ha@
-R"
)Ha@
-S¤
-
-P¤
-DF
-?
-RyÈÞÁ9 Õ yE >D/H¤äÎò
-rèyÌ1<½Þ½ïQ4Ãhr»¡í» í;¡í; íÛ¡íÛ í[¡í[ í¡í í¡íïAÛcÐöhûhûzh{;´}PYéÎufCpA¡BLå Ôñ}ü¾
-3H¬V°r©J¡ÆÌô09h'Ò2Y$Æ¿§ñ?Bãh¼FÈÜ©ýýNí³;µíÔ^¼SÛ©îÔ.Ü©·S[¾Sû>
-^ÏÒµ7j7j5jç7jç6j˵¡FmA£¶Æ?ÃàºÆ·ÐxÛh\IbtÆ'hÜNc1?ÆØ²[TãøÝsüξf #'¾ÍQôÎÝ®çãxÝî9!Y»{N?$]»]H:v»ü´ïvAránW¾üµ9ó ɼsf8¿tÕ8ßwÝëüë|çÃÐÂC®YÎs^snwùßrnusx¯spN¯s!«sõ"g·ëûÎUsÎfW³ªWÏ!egTeEw·ÓçäYçr·Ê*{áá<¡X1¶D1Tå+Æòc91bWe)ÌJ£Ò Ô)Sj¥R)WrJFfò×
-É/åÈ9s60$fèï!+´|éÇû]LyÜÄ60
-ËæàøÁNÔ°XæÇê%çÇeî98nl@
-Ms|¶¸}YC|Ùó[ÆøHm?qûRúx°¶5CÉq.hè*zDk¼Ü×0®H,WøâÊÆï´ìÂøVx3×@+M-ã8A²®tÿlÂØyåõ&®¼¾µYö°qvje}íY¢v)ög\lÓèÆ-5Ø3ä?Ãqâ¿Ñ¸Æ¶=
-çF
È´0Q¦1Ê4FÆÓÄdËßÚ°¬%ÈaKDÃ8ö.ãÉßÃôÔÕîÝIkË>ES·ä+
-`
-@(³Nä[+ñÙyfácÖÙùé|°Û×t|Ä\´=×WøÜÌZÂç% áò¹íÂ4¾]¹ëjw¹Ýɶ.¢<ImáK)ÓIxGu7rR§ênÊÃâ)§ÈcªHò*ÎàñÇ÷ï~¢sþ-ý©ë!¢ÜزKæ´Î½@L-¾ÙT´Ùw:ö£_²B_k\í׸ç pØ&þ]VyJ\y
-}f¶íÇ~áÇ({
-dk¥¢¢¢RÛéÈÿ'Ù.íØ
- =¬ýßûüûAúó
- ë
-endstream
-endobj
-
-569 0 obj
-16761
-endobj
-
-570 0 obj
-<</Type/FontDescriptor/FontName/YAAAAA+CourierNewPS-BoldItalicMT
-/Flags 69
-/FontBBox[-102 -376 835 1003]/ItalicAngle -30
-/Ascent 832
-/Descent -300
-/CapHeight 1003
-/StemV 80
-/FontFile2 568 0 R>>
-endobj
-
-571 0 obj
-<</Length 332/Filter/FlateDecode>>
-stream
-x]Mn0
÷ÂËtaRH,ú£ÒØCTeÈÛ×3¶R Ïã÷ÆOÇU}¬m?ǯ~Ô
-Ì¢ëñ07¯A\àÚÛH%Âôz¾¯è¯ÖEqð6Ë4ÃPÛn,(~{Óì±:ñQüâ
-øÞ^Åê£jº¹9÷ØYȨ,
.ôyjÝs;@L®umÂv?/ë`ù¼/DBkÅQôh`rßÚ+D
¥(Îç2kþí%)[.þl}ª 2âB&Äy¼áz''ä-×È3ésönw\WÈ{æ-òyüÈ\!WìÈGâúXCç³ÀJ2ï9ÿ6Eæü öQ÷üØGqþ3(Îó§_qþê?Ut÷«ÄYÿHè÷a<ô h.8ÞÂïq£C}ß
ì£7
-endstream
-endobj
-
-572 0 obj
-<</Type/Font/Subtype/TrueType/BaseFont/YAAAAA+CourierNewPS-BoldItalicMT
-/FirstChar 0
-/LastChar 24
-/Widths[600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600
-600 600 600 600 600 600 600 600 600 ]
-/FontDescriptor 570 0 R
-/ToUnicode 571 0 R
->>
-endobj
-
-573 0 obj
-<</Length 574 0 R/Filter/FlateDecode/Length1 58576>>
-stream
-xÔ¼{|ÕÝ?~ÎÌìÎì}ö>³»ÙÍîì%{Mv7É@rAn .
-*JE¥Ä" Z/ Vhë
pÖ-µZmÅVúô)ô÷ ÕjÒ>è·} »ßÏÌ&}=ßïëûïo'3ç93;gÎù|Þ÷çsÎfýÀW"=D$V^·¼ïÎé"Bèm°eåõÂ3ïwX !úÄU}«¯»ïþæIT7¬^»ñªÂß,nLBÍ]såòUwÖDM=¹¾£z
-xª°ò^(×\·þæW½W]åð·]·r9wüA ~ôºå7÷½ÏÞ£Bè("áúå×]¹ìW¦÷ , ¼±oÝ
-ëW¡`¡÷wÉõ}Wöý¯ðU_Ay¤Ôa?zȪå2AR*5Íh´:½ÁhbÍ«Íîpr¼Ëí)óúy (ÂhE,H¦ÒUl®º¦6_7¥~ê´iúƦæ³f·¶Íi;¯cþ
/éìZºìòî+Ðÿ>ªûa|°{ÈUñO°ý³BkñêZ(\S<MZáâOìèa´ÑY\^C£¨=¦£ô ÞAmÄo!
-PÚDìCjAN¬B»ÑGèr4>A§Qµ¡?b|O3êC/~Ç6tOñ8\¥Eè'èE¼/@)ÈÏ"â8OÞYEN)þºø!¾>ÁÁâ!4r"3
-£Íè»È®A¿*^Ñ
-ô¾
-ü¨í ²Ôöâµh
-z½Û ×6ª>Ô<ÖÂ]?ÂN<Z<Uü3ú
ÑðMw { ÅÑ($U{Bh*Cíè#lŤTgwÃÙgÐßñ:IC;bh6êA÷¡@o|Î ¯°çð÷ñ~ØÞÅÿ©úÚÖnD·n}zït
-Q|
-¾ÿ´|8JI9r:¹ì"ï!$ß C
-Pû©U³UËUûéå
ëïÛw!%ÔЮ0£,ªù¹
-¤éZh_lè6t;Úîyy
-¶YªªgÔoÑz½yûÂØxÅx×ø¨à*,+<\xµðçâââFh¿( -Ý
-Ü
-2ølÏ$C¯vÿ^iëß1U ñ4ÄaÔðL<¶v<¶E°-ÁKa[Wà5°mÆø|'¾ßR¶]ðnOágñ1Ø^À/Âö>>
?ÅÁ'@ ¤Y$ÂDÈÃ63yÄe°&ÖÁÖG`!ÇH+) r9ÙOî&B¾F¾Gþ"¨8¢ê©ÅÔjêNêê]êCê¼Ê§jVQ=¡zMíVgÕÔרw©ª?S_ Õt½¾~.2" Õ/á½ÿä¥ÔïàT6êfâèGö©¶âEÐcjb!¹¼üê*|ðÇx;y5ymñGdñr^L¼ËIª¼
-Ýx?ñ'âñgÊãõ]ü±l$Ô
-®þ²Swª>Cø=ª#6áQâääÅQê |Jõñ.¨ÓÞJ<7ý¸Ø:©¬ê<ºúýYÕÍÐßÓ{pùõúÿ
Ïâ5~[© qÇûqDZá~ÔB~ ÿ;Aï#Ás=Ö0aÀ5`ú~Múñ{¤uÉmÄ!Â;³Ä"ò§êdc@ߢ[0Ó ;º4àA"Öhò;\
8ôàý¹ÂOeÄV}¨Úrö2.CiÔM¼
ê@7>ݪР÷ 4±ÝVÄ«
-P¿
-ÿ'º Y£(BÉ5÷RÍL½¿;`[
º¡ô8z@ý¼êwhv"D
'@Êÿ®
-¼áÕ`£æM|]]|5ÂØ]V¼³¸õP¼Fû
-zVÃÐjEÅ-½Âp¨w
-fÍJÈåÀr8±ü½Ãjùö5ÃB¯rðí+%¸òª¹R*])]¼³B=ªOÄ
æ0üë¦0Îïü}M.axLÉ·+ù!%o¼ß7ÍÜ&a÷
-ÍÃ-Öloîm¯;¤Ó6¯Ô&âèVYä¾CØ9
-+ÂÙ\w@5ì
-45ó&¹Ã¤Ø¼|ÕpÇüÎæ&·ßßãÆÃ(0cØS.AÊcÕôòájùmÐáP|tû½#,ZÑÓ¯
-¬Z~yç0¹¼K~9ÏmvÞrû¦_niìÜziÜÞÌ]-ÈÅíÛ·
-Ã{çw^Zë]]ðÃØÒ»½|/taÛEléêÆ[àüò;ÞîÊ@³|¦÷aXX³ý^×öatÙFÿaK:^<\ÍÂö
ÿp;е¼Ésȶ_¶ñ/ ü·kñC¬¹Ô¦ÞpiæÊuJN¹\ε]v±_±Ü¢Àlaa¥
-ÆãêaMcïv¶Î³òýÃ*
-Û¿B0þ±/¿}fùĵÈ~
ä¬,%
-ê'óñØpE
, t#(´qRÎ%âFá@+@Ý: owÕ¥ óý~yxwHhçwÊZá>¤T¬kèkF'kìäÁÉ·÷@*Þ} ]ü3±kóºaìø¿T_Yªo[h¿´ShÞÞ;Ñ·m¿U*Õ×^¬ÈáRtø0%BOÍè]¶´S>*±%Ð|uï,P5hã°µ±t]¥á&¯ù½üâ7Ë
N½ü]¨VäÕÍ
-¦BDÛÂ¥Û·k¿U×`µ}{K at hÙÞ»}ùHqpE@`Ûdçö¾æÞÉá)¾¸Ã=Üro¼Ä\
-6ðiÔ~À/?ÞH¯F*jøÙQii9ó<F<£V½õ"qiðµø
-ÄÅØ¯ëÇëç²çêÛÇëQäÙp¨LûÍ~³ñ@^Tè<°
Qi`ße
-½)Õ9#-õ^¯%®-»Öˤü
-þyþ]ªGÜûTO»iy>7ë/×øÜ&æÈG°&Æ?BJV
-øSÓØ`1Á×u
-t9Ø'Ï
-ï)¿i,Ù7Ù7+Ó¸uck
³ÍéÈdìþ\¦
-,9PN«ÕtÀJýÀÒY}«¾âÍK¿^tü¨'m¥C¬jNáµ
Áºóç6ù*D1+Pz£uíåxÌã
-0<ÿ>n5úo)U+Uä´µ½îjh
-
-ÖÕRõ£µ'kÉwÔöÖöɧ¤Z,0\Ôk!M¹<õ[˵Q/ÛðG½¡Ò(%¹przÖkÂB¸¡²8ECûÍfVËsAÍk±IÛ§Ý£}GKiG%1üÁ¤/ÑèMô%¨ÁÄPN``£ *Ñ[óôf¹K»»ûdI/¥Ð],l
-c
-õæ|þ«±ø«|*Ó%Ë£bÔ¢;äQñL3.ºÌ¡_¡sc·ßû g»û¡§ÍÕÕ*Óaû×Qêßj¹³ÐéåjÚl+
N<IEܾîésûÜV£6-¦Ù¥*-ékJW^ÓjÏ·ê¦lÉç²§Ø¢º|Å-Í/+ütÀyÁp¾"Wð\ôVmíbrê÷g¹Ø@èÁâr9l¨hxK×Í÷¢^Û¤<y'ìÉ÷ÉB¨mlÍ2¾F8¹x$É*§U$³n5¯é´^áèq.å¹hLjÔ´Ñ«ì³ÕÛ{Õ[õÛÙ-e?"ösÏ[ß#>2}Ì#þ´Z at ef^ºé£émWé7Lgi=
iÃ]©y£ºxZj¬Ö´35ó|
à¯l³nãw[Ô<©a×kIü8?§µ1'iè4!ÐCô^z¦èM
-¥v¹VKÞÒcßlßc?e§ìv÷ï(LO¶å!ùì°UN>fYòT¥Nw¹»E3M¿Í8"î¼É×96;v:HÇ9mÁif!ÒÌNæC²ÄÀ+0ÃÌiFÍ<g´Sh̬ɸdI%cDFÖ(ɳFl[¢Î46zÛ¸@O¬` }¼_·nHÆ@`Ø1Ô06Ð0b4`Χ@¯³ãî®,ç@.óÚÖÖ¢þnÜØyT0AôwõÄJ4
-î
-
-ª`GäCP˪ª¬ÖÖÒDºD%¼+¸bm-7D½@0?]ðúô¼Þ:¤Æê<BåzÚjÑi°&OÊoßÉÔ#¯Õë
-¼!ÈI±<'sU×e8ÜÁá^®âörg9w8pøG
-È1&CÇ9HÐ
15[òìÀ*Ñ0t
-:.ËV[/ÂáI8VLRQQ?å;|åôBccÒ¡½.OÄmªûåú)ÿ¸°8úïª_?xS°pX8ü¿È(©.8ÌädNç:r½¹¾ÜPN °¤ä¡4SçNæáî
£9²qD½¦$G£Þ`k9õ[eQo Éáéioeª2´+NÐÁ@Àd2j =Äàa@Qö0ï0#C²;)Vø¢ÑÞh_E£$²Q"ª(ÍöfK°ûeÇjJäI§«ÔÊ5 ÊÉÝýð°£ÿÝ}éÉo9Û~ð@ÛZÁaÔUÎ(L±J-5½ý¦
-:ce[a¥ðØ6a[{mqým
K|¼Æ¦yø¦Mýwʺeî`pæ*¼ð©Y.yp`tæÁèÜ¢ºÅp4m°Û¾;D6MúYür^õ(
SÍþ!õ½Ù£y}Â<аj&z*zb1õ2ã£^zd$_À»Çûð¢Ç:X̦+¢³¡µ,@Û¾ìÈÎN_ƱÌJH[Lfö e:ÒÛUÒººRÚÐPJJ*9<þìËàÖcì3OÕF>þ"©&i¤@[w ÚA
-Î)£UɧÝgJÚP_?>Pß0nÎw§&ÇMÛ!Ñ
-Ûò¸Lé@7_ÂOdÝä2 /0Î í´°QÛí;~Ú#N[0þïÑÈþðáÎçû¯î¬ËzV/<_sÆ,¦ÄÒYõÛ~vcS¢Öó_gµV®þ`Æ,@f°ÇAkL¨wJÍA;~ÆqÌñü¦æDÙGµåÏZ<KÓìXbßïÕl3}ä¦}RURLå~Ýþ¦|x6ÃvÎBÉ}³èæ¾Qø¤|ì z©>j¦ÔÔz *%ý=¡¿h$ e^k,h'yé!½wö!5¼¾8(Ø}ÅÑÚÚÚ®ÆÎ"YdÒFV}Î~8ÆuqiSz¼YDc=!¨M6ÞÔ%`r
-9«°]ç¯[ß@?áT¬d¾¸Q}öã-7r7zî.à`$5çݰI>{H'X._XF¿j§<6¬x}:ùk7¼³ù[Voz{AîÚ{îXþ«gØzðÖOíøñwþyÓô'n{£ðǽ??woïë$^q '¥u!ª*DH¦;(ZªÀ=ØõrársÔë¼;ÓCÞpÒê*Ì6Å7([
-é/I;;60Ömvæ1X<ºÄÈhd¡¨$Á2åþ}Ö\Êçܰ±fV6Xb·Øi«aÆ´B¬¥×ª/¬Åvòào~ÓW7Û¢WfÏ ÔlÀÜWîê)Ù3Bê4ôÎÜ$y²ôÉ®¿:ÈÁ.lî-B̺ÐA#Ä
£å5Qo%d$]ù¨wf«Òg
-Ê_;¨Ki\ÐE32ÉïËzAz¿MåFñR~ô>`Sò?üáSP¦ßö§éKØÿ·Ì}w¬²$Ödßf_}Ûì~¿Ã Z¨·Nñ;µ;¼8wí°×µ*çäu*|^unA
-QCK¡%Kôå*S¨bUÏÍmmên+lX,8Àp*2±½/)åféb
6ÅCÍÁ¹J©,^S°/áqOY¯x$îWh âìâ¹
-d§
-M%Iëtí² [_~°aæ´Ä,ЦÌÝhnGN]fqÔ±
-
-Æ3G5GÝ,4Ï©¶1Z#- òÙ¸M;[7;×VÓX7{êÝjÝÍ]Ú»t¦
;¯¡§èe2([&²/a70»c¼>¢Ëë"VcõzBC¯dÒ×s2¥êòó¸nG¦¸ÍÁ}ÇæPôÒéz©¨S}ÁÈEã Ì-Ò%GÁ4ö(cÐë³ÙÌKx5
-"d3æèÅ!ij"1(bñ%¢|;pE ^-yÝ©|%-óÝ
-ÉÒø,;hL7Nk¼2¢)tF¡õ¥íën`6çÆÏt³cý@¡6R!ö©1Q=Ñâ ¨¬5µÕµZÃhBí/Ê uN¹ÌêA«ÉgðàòÀUÞj¬sYÅÃ(áN]ïhY®+**n¿]tÔ¯8°à{4XÀ÷ÀÝ%·âh%¼Zr¤xú0«$Çù^Vv¢ôrrZÒéò R÷
-[²ÖÞPÈ¢Ì%*Âc]H-P-P/¤;Ýzµjj
-úºõ4úD¥©Á3ñbn§'ÐËõz6píûCæ!îiü$q0p¿Iÿÿ9ãùpsj¢Õ²Ä²Ã·C
-Ðfÿ´x °û@zQõ=Íúq¯ÐO ?ëüþ^È¿×?ìõôöõüW2aÓ/¢.H9lËËTkÉU:ÿÛ>=ñN l)¥zQBÃhFù»Áu§èpá=.ìÁ@òΪ1R³jAVKjº±¼ñ8ñÝqèº7Ð?Þß
-ôAÄb
-ccý
-p
-X®Ó#;20Z1Y/ËåÝ nǬyËæ±ì¾²²Bbó÷ã ÷M2p4Ó%ýñ%[Åï|ü3nýIe|׬¦:ÿÛVÌÉâËÿ9Vúw¶R!û·uÅ<ßÜ(Û¦âJþº%pò8JÃ0sf6%øX2ÛººMµLL¦h)5"PÊQa-R-bƦéY4R5ÚÚÅÚ]Ô3{Sôhêl$øå ¦¹^'\!\¥]+Ü"ìA{çèãôëºc
-ë§[¼Ö&{YØ1Ýã-kòÁm:*nG"/ãq©ó!_/Èhm±÷:¤Ï1ä _D;ÔJ+ÓfæÔÉÆÍ¥H
-@öø@7(ü!h@uJlnÔ)èì
-Å(&,(e
-Zp
*. ðiPw<0ý²{êÆóuæ.zHçTræ$qq_6¶>|ú?ß8Ï$p.`mæÉïp't
³IuýÊTgó²áµËV·L=ÿ_àíÏâ~çÿý3=æ@ÿøÃ¦¾ü¼5oüê÷2*!Þ
-$5RTçãÅtù8 at 6gëÒ/
-=Æ>TiiÀïho¦/3Q2#X¶¿exËx"xBü}ààGñO©O?ë,
-ñîøõMñx'±´ºÝmI¨¡%5zµG£üÍ
-át¿T
Cm&¿}là¿jÑF5Í=\ÄÕüÔk&Ãõvl:óàSi@Ð ³ºÆd̸=ÑÅ!öËs&QÊ+YE=¨O`Á.úÌ@]ÕQÆ×èÊK2x»lè)óô×ì׿ó
-Ìü
-î?|,®êî}<sDàóÇ6OÀî.E]2ðÚ|NÅ8ëµ4ù
-'9l(!è¦Ë[¾ÞzùÆ
kýv§Áï÷<±¢yÉòÂÇnnÏY<Xxã{×´&j#ÑäÌ?Ü´Û«uá÷Þ??ß|ÅP]~Iÿ.§ÉÈÉIí'D"úÃaÙC²
-©¬®ÆW'ÌòÍT.Æ:ÚW0N{&A'1#¸Y²jþ@´Õeq£Q«Óêt~ýhcîÃ{ð;ÂÊ<
w-ëð¹
0Á.[^Ûüm'DZEV Ês²ø^Ë)ɺ=&³Çäò ÖìfËzÊ@-ñ%07I7
-á'ÕÇÔÏÓñQªÌFÐäênr+õ4¹¡gÒ¸±
-Ó^[çÔ#Êí@Àü]í5:o¥O5¤"zUª*Rõ
ÞÔÀuúCjÃX`HCvÔpÒ@dãR3ô¯ML\ìM¹?£/OuùƪDxÔÑ!ô
-Ø¥å<çtz%å0¯s{PÚØ
ÑO8ª``¼ËAæR.qæoLyReó§lyô¾ßþpÇþ§iñT±5¹.¿ìûß_ËE¯ÿíÝs
-ÖÕÏ?®ØñÈøª2o¼2ü²Û=¼²Ðwªv"¢Ï=îÂjÇd}Í×ä±ÃÐÅR¬#6ÛgÜW¶7¦ 0#Y8s2FºHXöFx«KSÁ»
¨à6Jv"D¯§Ý¿aM{¬Ø*Kp¼¢¬LÆN^oú|C6 ¸WØ+HápEì]¿Í½(µsY9Ð~.66ÀuËÝÝ çêóf%0(É®Çk4ϽFèfTÐáió·Ã÷8+Ì¿Dñ#±úúXE}ýà{uVú]nór?t|Ëß©TWÄêÂ
«¾83#¨2ÐKÄ%ß%î}$VrÄI4µÐBþXì)h6ê">î°8: í®&Q]Fl¨Ø°@ê¤ú²ÕP3oÙºC}ËvR;Uw:ïâvæ¶O»³ygÛÝór>Äí7BWuåÞ̾Ù6ºìä²ÓËÎ.s»{ÍÙª}ËTÏ0Õ
-nä «ýnÄ7~³IcµÚ48ÂQæM6}J:®axP|E$Åüdì
-ú±eÿ ÿÙ.UR¸Ò/_bjÅm 6lÁÌ1&§ÞÝGÈJIÏ·jS<îàyø-R#
-Ùê¡J«¦ùùx~<njÿî
cµicÓx]zgzOLçòIrp!^(ú"8"·³ÌéÊîày¾ÈhädÜ(,K/í
NP-SÂÜ:}vqçÃ-¸¥Rp`£ÏñtÈPiÝÝ*ÓdIt,IȳEGø²¬;É«.{ß®öxd±¯c²¢+ýØÀ6Ö.Zl
-¸kñàEá%¼xIY.wOAs*[ÜÖ«FA^AÕ{ðÜÔ|Z/ fg£G¢RdáÃ¥ãX¬B¡!²&u+Þ§c´Id ÇZäÃÙC@qhB©Ja6À1u 0a÷ß©lVB°)wá!*cõ¥%(ç.ýõÞ;{_Iµ4Ånª=ñTÓ̸Ïöôýfj÷ºk?ÿê69G÷dcylo]Õí³¢9SøG*]·êå£û3ÙGÿçF¿×uÏ I¥Ö8]ZzVßà1[(o34Eª4¾ËúW>°¤ªãľJ_à
-bë[X2cà=Kg\¸=Ó)¦Ó6ÏÊ:ZcϨõå,IY=
-9GX`³=É«5}ÉÏÅÏ#ÿÿÑ˶æëÞpû²þd2ºªºç}î
-&[5w;·H¦ßÄÞd¦4<OQÔbX<ë4{Y!à÷
-(÷"Öè5ùx¯×7R¼ûlF$C3:Ø¢ÑN3Ãh8;ÇÛZѦÕ`0Íñ6㣡
-P/?-"46è¦+µàp::®
-!;X.½¤Mõ°¡üåQͦpy»áqnI>#2N=·FöÒ²ÁswDñ`˳¤BTGG£'£t´7q1â3& Þ56~P¢;çã~áPÍq±çä}lbÕÅ*ap~&ã¥üXÉ Ùª*yàyp1FΨ&3gb1ðFÆ0;ú?Ò,SÏÔËäyØÒ4lÈ èüó!°_&ñ²e°ÊƲ¼óÄ&'g;ó¢ØÒ!{þ"tYývEVY¥Ã9(Ò¥²LmJe q
-ÿxk½ÓH"éd6ûøßñùjÁê%DÑpõ
/Ùã/Äìç»Å3xz
-PLò I#%TÓH
-¹
-Þ£9¨!4[ô×Ü"²L
-ÖiÝ:~Ê$¿W"ÝýVè%za¶©'ã»
-&Øå!¼M4W.qO®¿b-ï°3èN´B,å«n¿z÷Ïî뮯ä}˪g,$Xíç-ð¡r¨O¡o¼(j.)½-õnC÷x·ev»¾>à:þÜõðSúZtKxcæÑªÝ§Ïe>t}þ0¢¥êF?1®®ÕSSé?ìÎlFòÇáÀ{³UR wY¶)Ø$ns}?~ùD¤©
-U,iW»]6¯#èØÓɪæ`kv îä&Ì,bëá¥ÁÞº¾ºÁº½u+íªê
-ê\7¸û¼ë7oÜ¥¾Û}·wgf°îW©S_ÿ;Èw1&[ã/g}n? "£\Ì$Ë£µñ,ärG4Î,
-V
P*_kYÚÎ.±*À.ÁKL²_±ªÙæY¾×4¯iÿC«rj¬¯Ìçk&fÔ:³ÉjpéËL^£O½\D-Pu±ÍjÞTVæõ- (Ö ³ÅjeyËË'£Þp¸\Kh¼ZyQk8PNMÏy«P
-é¬,|6I6 , Á'¬
-&-ËrÚò´ÐNÿ¶N§UÉóVÖê³z|RZOôéGå §s9/óþ`S)dÃÉÑäɤª#CI"Ù[Á7ñËë@OºñÌe¾³çºÁr_\|U_"¼¬²ÃáÌä×+¤@áÌDÁÜÄ
[åº4-¯èg3ÈÔú%lñ3É®/N
-ìeÄ'µÎyó¦R¢)%ò¤ð!s ØäÄG76+ñL at MÓVÅ['Þe
-+!(çÿ°æbÞçzÆÂ÷_vÝô/¾XQòÓ
-!w¤ðg>Ù^H¶ì:QpÙ+ÌUÝ¡ïý&^o+#HNù¨ðû[ý)£6Äv«3WNvÕr84ëþùä=3Ýæ²B<úsÀõ«ðZi¿Fö±¢5t¬ª¾SµEMh4*Ã3.MÌæ
-i +«ÅÕ{¦eföjþ*×J÷øÍÌFíFþ&×z÷ÍñmÚmü.´KóëáØKèdöu
-y
-©ÙÄÈñ²Ø&9H³G =q7Ä8É>+¯äP"5ígºûÏë©ëX½Ñ>~&V¿Éð8Ù7ôRüÙè7÷Ë1±UF¨4QÒĸ¢ú0¬Á!
Yêñ~{"á?õk3ÍÇp
á4|aGõÁùSæÔ¤ýùÖ;38½ðÉϳÎ0ÈpY¸¹P
ÿ;±htQ¤8¿±áÂõ[îiWd¦i]{#¾d@ÏêA¦
-ûç
½¨°Ä"$d«qu&è¤hÔñ±ªÒ§fP{æPÂnAèð÷ùA?'ªKÓ*o>.Íó"ñr举̼83FWÕ+|IHåh#fCúPZÌÑUNàÑT¸R¼8CM÷þî)fìë,KÁð¤
-×
-ÿºÛØ~×fo¿slë¾Øã¦]{öïªx"¶Ïñ´k¿çDZãÅ~û8öeì|¬BHÜ ÞÙi}Äúm4A/°ârƪPE7gòúÈ+£]]@,ãhZmt»ÏgG7|x½xÄ$þ"TÉÚ;ìÄ+öwõñhyôR¶¸n5(«7&Ø0XAgH@+DG@Àa<
-=±Ilÿ@m}£ÃÒïN&ð)kÙjȧ(ÓÍÕäµ\¦µPe-³qËî½å]lûy¾7T»3¼ª¡oïnr9yðüUUQduùËðöµóþþÖçXOp<
Ò¶¸þg¯ÍÈ|®xK'uƲ@ÛÉ-ãI^^X¡ËËØ´Ü³ñ6W at S®õKxÁU§Ékë
-0öMþF¼DN@h¯ÉÕL£fTô9¤ÕüÊ1¶z®Óc&kÖ/x6ë8×-ãkû¬%upc¥EJ¨H^A´u«&ßÿRÂ>òÏ¡JeÞ,ûÑ
-C3RüìH5AüÓy¼LkÍ35ï}ÓáR´ç°Û²ÙVâ;Oø 'µ¿ÿÑgq,kx
-/Eǹ
-¬rH¤jÂP[fÔt`ÍÞÿIªªS¬qÅKôóàS9ѼKj¹7
»+¸¸ø·$ïæîJlOîN>ØÔ7&f'»x2lâ]dWíª*Îò
Ù[äB®XNÌAÓ-zbÆ9ð!*Ø!¥*}bFµr¦þÄÈH
-åæ3÷3'fèïØødä&íâ¼³:²Á]bx
-U'ÉÜ®êêÚ]55zð[źÄ9í0xH ÄÍðìr»§ï1»0"»®Iâäy¾Þ\fj}<&4UüØ?BÌ>65½Õãú¢B²0ä.±ËYj¼©@[Í/ÔðÇGü·È³@Öΰçäàá×Ýcõ`Ò6T¬Ð*ëzEpê cAù+RKÕNO\?VEÐ0Ë \[òP·Õï~¹¨wåWànDýv#a8?ÈA2ÄûmÉeåÚE+Û"3
-Û§æôtÊ©«°k°³V´f¦D
_
·Íb8XøMmØbÔªæ¼9«yüå
2TÇ.#æ¾9~¨±-ÞR/ª ñ;*¦ã/ǯ'¶¼MQG0h«hÆ¿±r!r¿j
-òâéÓågjàÀË×áÒõôlúYZ- ˨¥Ì2çRîZf½y½åqÝ÷»ÍtoªÞt¾Á}äü;-üú§ÓnÇe¯rÛyïC£qê8]YÉosîh'`èz^m yB¥æn¥#x¤ÑÈóoòÚ÷2#éYk'÷ðyÌ ßwzï¾O2 õÿ7ÏÚc]gÝl¥¢ÐUr!ARy%þ%üOD"$[±ØLì$^!Þ!N%÷½ïàqgêÁËìîÿº»]Y©(¯¯4÷ÇÎLLm)áF5ÖoeUNO(ÁE\BÒCH ½ÀøWOÎu·òÃh×û{.ÆË±ðÄõ«öDþÇú÷tëÓÿW¬]ÒâªÂy¢?{ûÓ7öý½¡Õ«ø|ál-[c¯QG2è¯Ò")·Úsç±ô³ÜôKéÓ9f1ß§î£735êAz'³S£ úÜeþrÑçùßhôiÜí'ÚM{X7F©,%åß âwÒ¬x<FØmO¹?óxÊÍQh 7Ó¢YzMÒâ1_"7¬uÜût/èÈõåöæÈbËÅàÙÓÇñÖÉ7³Ý çºÏÝÝ-ëì¼ úI¡[V<ÐJ¸Lî[vìKÄ~
K¬d2Fc³_ö3æÒOý%W°×dÈÜa"f
-(« ñ\±>U¢Ñh¹lQá6Rûé
-kÒÓ¦Gn<ÿE:®àÂ4e7
íªÈ*bü³@r}!²Ò¦/
-;
Ô´M
¢Vý·{#bá÷×vØM0ºâiÕ!$æ£4X®T6-[0!¨¤ÒB'Qשç¨7(1 «Uáæ@sø©0
-çÃDGz½îVÓ£áWÂÿ©ë¥ÏçæýåJÌêssþ
-ÿD©T×¢ZbÄ[cy¥D&*¢ªØ<<ÐëF
-[w¶ÆöQû2¬Å1d
-¹²LY¶,Â)"A ^Á&2Óð4¢JóioÚöOÍNÍÍ2̪X¨[lXÂ..ù°pg|9wõBn!¿ÐÕUuyæòìå¹Ë«ÖI.jÕ¹£P7%®°X·wÑ»R»ÓûR£W+^Ö³ÍejÝhá>ßÁÞ1~m!÷h¥Ç]¶Îçöz_,ÏdùGm0Þz£M¯7ÆôF*¤Qu
-öÉAyØù3qÊóAó)3i!¶¾à;à±2>þ=IüJò¯ÉbLJ3sRò(()$ÓÉÑ$ü)n÷µE¹++Aau`| VÕ_²Ôprqaimá·VöO.-¬¦ik$¤k2(j
-epÐ
-:
-EmBA:}<f+2ØdV@1)uF^tøÍ2
-.ÝûEK÷Ë×ÜöùÏv´ýõ§S²¾»ø2Z]ϯÝôݺpáÉïÍ9ýãµk.¿Vum!¶uïçOË´mºêºç?zJ£jð¦ð»|·÷®¥UWŽ?_ïÂ~ã})YòËa,ÿ¸Æ¯J8lDÓÈ"¦¨©JÓ©xjª[×p×¥6ràGSoqsá/8ÃZ§:Ý&«¹êôLt¤Ã\(Mª9UÚé$c(
-¥)¨Î){?¹tCÕ¼ª5è´ÛȯOoGÛ¸-@ÓI?Nï®zÛù&7Zõ '«Æáþ®úý·ó¥ÅYx¶³%µw9§®qÞÌ¿Îý"ý÷Aúî´±4$øÜ.yÒçøË ñJ3J~;ì89®aâx eXNÙÒ3â@¡í@/x'¡aC§Óá^dO%ËáuõjÿR®Â|Å1ÖôD¥2µPúWí²Í3õæ|ª0AKgØdQU~ªÉ³á.!ýðAýü¸Sò´2.Ø<ÇókÉ#'O>ïÌ;Ó¶<#Y¾Pøñ¿ü# Cæç3.©ÆdËø9·Ø.Däa3¶-
-vFuü:Ñãë5÷:És³'o
-oNñÔåáËSä
-ÍÌàÙå3§`³É¶ù°g1vj ÇÓk3(h"ÿÒv=.#á`×që[ÒüÅ¿.ÎÒL P´~9sqº#«(ÝFPò üÎr
-pÒBeª\ªüJ4´4bàù_~
-X/ÎbÚ#xá+?-üdd¤pð§¯à
TøÕOöãì¾}8·ÿ'
_¿ïøî®Õ7½òZËG
-ÏQ'ßMG4 at WÅÄØëêú;CIÕµ/ö)üä¥ðe#Çñ¢¦î+¼ùì¾ÂÛÀw=kö½wg÷|
r6=éÇÞò{ý~§m't'_¸3¹ 7ÿz°Ö]ü½ °6OìxÚ@ëÖjÓê<m1rÖ¼~bøFuËÚz ©ÖäR.ªSóFRǸ.¢X#®¨»"®¬Vç]ÙôLuݦå^¨î¤;.m§¾ÓÕ^Xyµz½V·ÆµÆ}mfµA½Þ ½Yw«þV×ÍîM
S[¨{í{R÷¤·U>@ïÖ}Ïú=n·kûÁÈC©Óûç4Ïésís?ëy®ìÔúóvÄu4ýËô?ê.ýSh]º2½¦rªu¯õ®ó] ®¤¯dÖhÈ6Í߬H[êr/IÍOt³TGR4Òwñ8R¨¯Îë4Ñh´`#^/ÔØ¬.[²[#©¨;bÑݰ7äç+kÝùbß·N+×I¶4Cz®Ü
-×»]W£ÕÊ@ow{à'UÆ0ÿ½÷â¸Çg¶\/{']?éöîtEåºN´¢&¶j
-XØÅ±Á¸Û1$¶q!ÀqIìÄiâÄé$ìØqHHB\Ññ{3»'vÊ÷ûûýñûÃÙy7;;;ófæÍ{3ï½
-L«ÔjrÇ,ÅYÖH4JY£×é4µvÊêÅö#Ry±¬h@±dY²x¸xo1ÛP¼¦xmq/ýqºø\±¦ø-͵õ£ný FDnü¡¤'§¬á±ê)cÌÿÆÝd³¡éìpÆ)?OwÆß8TÖ¢¸D&(ݺh¶OÚ¨úoL5äàH-Ôd¶èîÝVÅÔ
-p%7EÀ#Jä¡Ñ¨+
Ù°A3¬vkl\©,ºåMβOÉÑûG³StÉ<%Cô5H³&$x%B
oîe§¿N¼7zÂ
-ÀNdÊÔ)9SøÔ¬)Ãk|´yáëÇ3³²´¼x<ô4¸³lÂwùþÜGÌXGÍǬzM.¶;ðvözÛuö;ØÝö/±÷¸bO²Zkâ¹ì*OhKaþ(ãQä¤Qñ>êeñó»£ÂC%8ºÇ¸ÏÈÇØOä!RUðÔ3ì³ÔZ[ÉH[#:±Ùés2ÎúYÖ©
dëè]b6y~35ãÏ7³ölF!nÎÈÉÍ£2¨Cî°>l©<Ú2Øà¢qñ1࿱+N¾d#Y²Y?÷F\P$ºÅÖ<Y¶¨¬¨ä~äóM{óË;¹}ËÙûnúîo]úÜÉô3ÇwâÚ¯qOÕíÖ@QúÃÑ]éþn,ý÷½Ï>úø'.|/=9×åI"Í_7 :,ßk}\}PwPà¶â!õN|«¡1Fkª´Î`¢s.²IVby¶>ëÖ9Rc©´¢1k}ZF[ïª
Ù
-Ã>£¿åÝ-8O¨ÏmÁ\ÚPbØ3y69Ê+*¬4*É~.£VqFóLQtïºñôò¿´cÏ÷×]ÿǶ~á·ßúòóL©uúÐÂU·¬ª[ÿ7Äâ¼gÚsìÈmw?ùÑÒCÝÀ¿qQóï¯ÛÿðO¶./"|BìÙ»PÛ.]´ÎÒá=Æ=¦=áe?ÓÿÌñËÈ/Kµæ8p¾ú<CnPÿfÚ[7¯®àâµ|Pk©
-×FSeÉêz}Ð`[^_&U/w-5Vªwèw;,;ì;w«÷ û,9OsM¼Y0[ÌE>ÁgñåëòjP½L»º¢±;.Ý)++×é
-R'pjW¸¬¼¬´<dÝcOX°¥Ü`4Ú
-9Û]¹8º=¸#È÷
-Åã©ÒØßóó#¥ÐÀí ð¼:äR«óÊCÙåå!=I²KK
-P§Öà(\úªTvêXCºÜìÅ^¯(g LU.²Z,ää.ÎøËÍÍÑÆð¬£=vlưiDta«¡\rrvsq$عN2¨©ñú#åñÈÖ R\zy ¥P5³pÄÿ]2ïTm¼°©póÙóMwSæD(Ô ¯eo2A&
ÂNkj{ÂùgáLpΦD¤ô§pÃRkSÍNP³ýåIô²æe5DH%Ê[MÔ¼,£³¥¿xî¨f½LrãNß"¦
-bIëµÔ%Pë$©ðÄRÃTËÃ5á*DTpa©ÍIiçFÍ©h&g¯1çt§!*!.(pÃHSÈI°@
<GXrxÄ*GùTÑcL Ð~Í`NY I6².s»Y ãj#&§ç¤,[ªBcKEÙ©|(AaöT>¬Ûùðp ðfy;ë$m´ÿ]i/»A93¨Tu-sÆ [FU¼,¡6áôô£JÂ[zð3ùþ Þ^7n +óm?³tn*ÝseI·|qf,~-Ï^ýâ׿]5½+äu8K@GG«Û
-±Î@ßc鱡b6//Ûäp4½üòÕgÉËã³s¶^¼ÐUI83Bü3À%Ö2_!6º´áj|Úêç>FPvJ¨
-¥:¶ù_úe[ÐumÞÂm±÷Å
-ýÆ&NONOTÖ¾*¼âyE|5õbÝkÖ×Äôçê¼Ö Zb^a4HLÖ¤8Å_IÎAF+ªëu§ê¸oÅð@ìÄÍ
»ÜÂUU~VtíÓjëæ»gDTÖì8ηûøÄ¹¸À1¿!`E8fU jÊ-ìEA@ªö¤xÌyxÕéq
!O¸*Qé©!cÙǵV+ÝÙ¢û-£HUU{ϸ].×tÔâÚBDnEÄ×൸Â/âÓøÖ?ô¡d).ÛDV,Aý&0Æ|sTª»'#ôooÚ|¦é
-¦bù
?aÿW¢Íä«þsLÔ1Äëü×»r4óilÓ*º]Ûéo+ìI¬ã¨1xW"×E:«'ðÄAÁH8ZØTЩOÅ!çÚSá¤*oÚS¨8Ý<}ÄÊ&³XOwæ2ÏôÖTLcM`&WVÚÈUü¢ÊÑ4?>ÅåÏ&º¥±=3Ed£/«&MJLÔÊ'lHä\3C«ÇOT{m:ùfúLÌZ± í+
-Më¥ô?7Ý×Êô7NIú[AÁÊ«X½ùkzѳkøP뵡,Ã2_¾«:bØPÜ+¯ÆwáûZiIÜþ.®ÚlÍ!ÉìXÔIf{ñ3¿±h±¤Eü÷|ë+`±ÉȰÙòÄ'²mMµl/»=ÍªØøiæ{Üî9ü;²¦,µT>Ù¨8YHRfZÚÖßáïüp9ÿyc>BÜ1ß"ºè52+õÌVf·x¿xP<.0HuwJ¥¦¶eÌ5¹Öçaý{¥Ç25 #¢O¤^QXôG¯E`¼AÕ §pH~/Kz»# Õêö77)Û¿°r§¦IälìL±/¡~Ò #±½BíÞV©[ä@»Ç?ðÑ¥ËC6/Q°_×µB%k}è3x«:½7T%°wEÐÒÐ
§ølÙñAhkhÙ ³Ð·¥Í½söÏ95çô.kÎÃ^©¢@ÆêóèýÏãõÊ|¸?0ËçF·ÈuôÄÐã|?XîóLõ¡È`^gÚÔ©z½Çb^¯GcÍ
-0R
-¥þd!g?Ç7uÈÊü¡®íÂÝ4ûñÒ~±'e#>±ä)¤ExÑqEãÕåø sÀ3à½!Ú¿Û«rË;ýçWÞ_æ©\!
-§B©Èh2¾:ÒéÇõßBØíÍ÷Î÷þÜõ+ÿx7ï_æý"òzô<W
-æD5&rÀÀ>Ú4û<6åE9ÑÚ`°Aµ j·ÛZcEnÁtKî^7ï®+Âc)~(Îì£ôl¼Ì¦cñ1¼uÄßܪX»\ÚXH,^²ÅKX¼(ÞéóYjµ[¨¨òyóò^g(ÎwC6/\"®RòK3êg?êIBnÀïNá¹âÁ|ÓS6THeÍ}¸/ãeáÊΦ¶+vÅò,b¿d±¢Æ_õÙíÙÿ6ú㽿zµ¸¯®|qNǽsoZZÚÈ\öÁlªò
-°]dÛ£§Lstº/¯¼w~ôç¼o±Ç@rP:q¤Y#içm$2ÝcØ,YµnÂ^Þ>æÂlZzдíG<r
x5¡-"ëLaà¼`^ Q1ÅJòzr<¹V&²- .Fåç,-ȧñ*ÛÝ@-,¥U°µ .¼X
-Í*³Êâ%¡'|²X¡Ì¢ë:ïöÕkºáÁ[ÒòÏnzyVjsÅ@n<ʯY>·yø-ܰ¸nß+égþ½ûÞK¿uøîæ¾§pêûþ©KÒÆVÆÆ(ÎJÚ-º¦µ¿½R©X¼ÝÆm³ßìàj4QÏ]Q×h°¤ÚQ1ëdÙ;F'È11"²j ZïFR#¬-Ø_pº+pi×CnÉ~>YRÖÞ¬ýYê,Wþ%_hZ8~FÁùyYqAi3GÇ´¼!5ÇëeT1Ò[°Oð´ ¿ <]¸{b
-ÄÉÒlu²¹ ÛL¬úHØRfÍ«(ŲqwÆG
½ç¦ÇÙ·÷ó·}ý
-ß¿ùù/`óûÇ¿o3»´~Å®[·Wð!cÃW¾½«õô¡'nâ3ç¦WÏܹdíï§'¾zßÚ4§g«`UâßHEÖý¹E.ä\6o£kw]}ý©îôòwgq+µ=j?µÅ«ÄÅkE¸ÔάÏÙ¸!´}TÇÖÔM^:5,.^Ç NϹêJn±Ó%0
-Oë@Ô½ÁôcÓͳÃhºÚ{ï÷°s.ølEîlÇ{T¡/«Ð-^ÏU/[®]Pë~Zô$=õ¸§ªÌõÃõLýãYÕda.àZ¶|ÿbÄÿеÎ1\Ic6ýa:@ÎÒÄøÄß &ßÞ¨=+üøË7(C)ïSµ ïìL²òøó+§òÉ9sgÏ5UM©®©fTEamÈCP^8
-½>sjý
-YeF³
-Oçgõ¹
-þUæÂ²ì¹Ìë
Ü-Â0·Ó´Û¼SØiÝ{«ïAóÂýs_wÏýù»Â«9ßÍýùuáó[Â[¹ß>Èù ·Hkïa|@|¹ÊÉÍõjM:ÖîuxìFíÑ
-ö:÷º9¹ô±ÄýN=묻+z+nçæNWpöýì\M®ÏãüG
-hq¡/7`±4Z÷Z³µÁÊ-×ÖVÈÓïK®¦1Ía_ ×·íÎlb¿Pl^ÎPpÀK
-ÿT&ªM(ÉDX!2û-S°è,êB]pDÓ¤¨bX2ÅÐeä¤@Þd¥ªêÄÑâfù;)At5ã*|é@è
ñ;1n¯äÞ&kéÐóéñïùÇðüÛë|u£kQNvÿé]éß¿ùº#woÞPOUVå7¦î¿jðOÿõéïðëjýápYhSºyZõ
¯¿7òÕov®pæÛd¨ÜÒÜrúðilg
-JLQ(//À`{8ï)FdÔùÔºQ½Vͯt0jäyÊ[6?/K¢99^&,ð+¥,+eÊâo(GþgüL¿ñ*°cïT[Q¦ Øm7Ç.4¡?$4õÑ#aÂk'd^;¡ðÚ»Õ³¦¾Ñ;èìñ 5å¦]¶R¥jƲv7Vô
bÁD).Î
K<PTyI±¨¶)<ÕÓÐÐÅÓGÄç¹#Ù©(ÙãȦ
-®&D
-Á0û/ç¼s:)Þ¬Ú©Þe±(ü1%_XôøP4îAògrÀêç
ðÙHXѪ¯¨3ìHDÕIMT ;yòÁ2"5{@Òh©«ÕXN\7JFêÇqoDcîIOÌ^
-Ýã5n§b9±ï¦X(¤vr
-§¨à 3ÔÂI¿ð-QR£nÙ
-éháÉ©ÝX£Do\²Seµ-°ÃTk&:TY
-å]¿rmÜ[ä
-tgúI<ÆFz EÇzɲ¾â[æÁèɲ ZÃ¨Ó :{]$ùr%§äcÉ
-PmöûüÃ~ÖÿªÇG\¢À^(«i\ í â£8ãÎ
-o.ìjývØM¼¦@¸öJOö°D=ªÄ¥?ü¸é'F~8ò-æF£1+UÚ*´Vw(ÁÞWx¢ð[
¿`Rø6÷¶î#î#¶ïUíPïÐóê=ê=Z§-`Ô~a%£Æ£Î!ka@ågÏ{T&ªO +eØ,,ê4ú4
-QT nH!²slwh"
ѧqúÌȧRò÷ªT>5nPãèaæQILÜãÍTîÛPz #ö/MÚþ²9
-¦&5²¾ÿx&Ý@ùÄêýªÛÿõFQ¹yoY1ÂY3ß3êÄ¢dñø eSVcöoÆ {Vûg~Oº¼a^(½|Òâ÷!ý³5«¢/i xz¢4ã«¶®ÊíÌÝÁïPíȹ»#G]Îû±ËÄþÞ-üw'³Û½Ûûû¸vðtÐL$]ò%q .ÛȰìöJÑ-²èw{¼¬ÚÉñºoDýY'ðÈÉfIüÄüÁïG¥â9Gé"5ÿ)é¤ kLÐ>?ý~ì'
HZQö@Ù'ðÝømºi"9>+`¬ÅTÆv=$PÛåÍÊ2ô¹k[.®ì_cµ_ÍÉG&ôH]Ù¡EéUXûàÍ+nºªh[O<è$æ/<üðmÿàÑÈ÷mT.)ñ
-þ²Ã;®:¦fÌççASñÈî²%çZç~çi'ÙnA©.wâ:¤ÅûQ
-±+R1oÀÈ.ÃûË^,cÊavLÊz!Ér^¦Ï «3mÚ|\Ît¨¸Àn¢Z6
-'rÃ:3§"Æ+yþSñ!S8¬[pµà\3@~}¤ë´qU²û9-h+õ½C{»5at.»õó_ò«9É}¡C0"(?ÔQ}ø¦GVL?±}¸÷éwvµ&ü.·å:G¨`ݽA·¯ðEbþ¹]û`7o×ÝVßõpñèõ>ûøÌHN¯Uéîj_ËÕ]{SÃúÞ]ÇÜÀß Qµ¼Çò
¹Å°ËÂèîÓZÐ}8ø öqS Q
UÃÙK¯Ue¸tJ6¨*S. Jè9ræ{Û÷>KÞ½þáE~÷¼íéÐuÇ»+ðÅîNßóÊÏÙýØP8Ôa9CJÊËç
-4sy^nJ
-ÛV~õãÀMYå6«M at j¢5È3ñûÚ÷<þá{×ï[èwÍ¿o+¿î鯥¿ÆÝ¡Yï௼vh÷£(²¡ÊvX%(]÷èsnî^ø-ÂìÂ}Y÷Û¾ãùNÎOÓbÍÎÉeÕ6¼Ó}k.Õ¨|ä¨}£?èð»|QÉȸ¢v;Òxk¬XVµIZ%+o*ë@pÅ î
-¢ÎýD©èáÀ¤.³©Nu2¢&yݹfÊç½Ë±Ûo9öd¹OÚ?'~6^Îl` [Qk"nK[¢ÇJQÄS_zê¥ôà¯v,¤ÿçÜêþP¥¿í"GK»ÓÏÿ$ýÆó?mñâÙØ]xfCä{
-rh ÑÏ¥¨ÝÍhQ2»Ø¦Æ
-³Z^
9Þ8SÁKg«Z¦åÔ*ùØx?THË«Ç*F¥ÒðÁÀÄõ@¿5x¤×jÍ,ÞÇ>Cü®â÷$'®¥&¨ÄCû~ói3kVIÀ¹LìL7×P:V³(
-oR#¼ÚTBqz8ÞWcQüÿîr3ùP¼0E}Ø´-þr|³ÇGì>ÎÃçïL?×
-³7^¸ùòøò]ÚÉöu8!
¶X·8v$vl+çç¬.+ZUÕ]무õ&{oNè4@ægHâ5Å=Å;ÙâTé´1v¹-üþÒ:±,ÔRBJL%S\j]* Ä">Û\ê+MÖr¥4V$ï+®+÷!bÌc+<l®ðU$*j+¸7
-ÞÙû¹CÜÜ9£æFb.±ÖÀ§Ë^Æ`3äPÓËyÊHR%¡¦Ä:ߪ±ïJã9{<bò0ðf©¾ÐyI æ0cp(ºo¿T:5BÙêë?Ù.Ìä}©{ñp~ntôîon;ÿjúìüe|ê"A°ëÿ«
Óom*¼³á§ßùJÖ÷`L¼Í·Æâ%#ààvÃp¡0*ÅÛ¤«TCWDzJ·õÃòUCÃáÝ¥Ü
FϺ
OF^ѽ¢ÿ¹Ñ®F:¬22nmÄnt¸CÆi>¾Îx³é 2MAÕx>ë£kðÕkJ7
-¸YÞé(½ßÙRtC)ñù<¬ÖÜh¹Ñº'{ý>îÍ]{¬Ú
-?yºtÕ¼ÿámÓÛ·KòÕFm¤¥pU ?SîG/Û©ø²9uZÝZ,ÑX) r©!Ü_~º+>7XरYÒ%c¯u¸ÊNà¿(lòyzAæ¤2ÀjÏ*Ú,²bja"7`±s[ÈÏ[OÓ²ZPÜ
-ÜCv"ÝÚc-(aɧJö
²$ÙÉ8¦(ö þR,]èfkVæº Þõå¦ïüê«]OJ-øåáºáâë¤-ëÖ
-W,i¼cS×á9Ì7í_~ÓGú<¼ñÖEë6ïùÞPsÿêÃ?ëÚÞйuKCYG"ýÇÙÖ~öÁm+æ¦6
-±ûÌf 1jö#vü1iì{íçìý¤M²5ÚÙÎÙxѶÖÖk¶q¶1æQѯ¨<ojro:Óm ´ÿÎÛÈÏÍMþèV[ìtDÒê@Û%+ý
-p}êÞ¬[¸Ï©³¢ºÆxA7fÌ6¼Jͳ¬Ê«ôÀgd5ZA£Ã 0Z¨³I*ÕèôA}59NYÑ}*NåNdÕf5d±YQÀÂ5kÈ¿±êFÀ:Lßl¢ßBê`fÅÂN^eû
-9eÒGËûäïRHÞbÕ]|ÿ°lÍ dÖO´õYXªýù#æ\¸)ÞUî>:Ä®K/êj.µ
½üT½OªÒ÷¸%VmÃK4xñÞË^ͦf]c8$å×Wìuíw1d/|¤Ó,ÙXI[¶×¶ßÆØÃ!äD?I.çeOî2×}ÙUÖd7¿~eª(Q7Äì!Ùßo¼n<kºM'ÕÜtpÞ
-Vq)^©¾³*^Ð:¼ß÷¢{4ß6¿´YBÓ1»\ÃÞË1§¤ÆXûFCô°zÑ005#[¨ñe%²Kçþ|V}4cE¢LÔ]C>[Á>#c¬|Á"ý(Ô»IY´a1ä
+xí| `[Õè½:ïÉÒµdKÞ'±ýì ,E±³Í&Å%mle%ÙV°%$Ǥ!%)´ÊPÒ(>¥4ÓOCÒPÒaM´ Ý`ÚPN[C3¥T
+/sî}O'
+IXþâg?ÝåܳsK2>"²
+‘-N^
sÜÏûRÈümå·§bÀýùý¸ð)5óp~^ÿ`òúkäÏÎÃù³8=
+øæ/3ãü=Oô_+5UÈXKp®Dü¡²7[ãé]Z&W²¨ïÇâ¡ØU÷÷¤pDúãÅÿXphäsH²1ÏdfùäÿÉÚKçÐ^²üÇI
+ª^\åQÁý¼Iú<õáç ô1àþÒDa sHù;9¤è^²¼§o¢ä
òZâ¸Þ¦GåCY!
+JJ;¥¤1$õJ7øn0îÖK/IëÉ
+Îmã².¢SÉVÃVÚLËi³á
+góóè[ô·ÈñrVÈl%·Ó"í%ï7ÈÛ$!!Vr»|Øp¾|<Mâ:!k¨ß0K>ÏQòY9B
+òacI^µÔkxÐ
+ÛïÑ©ÔOBm^¤ÕÒ3Ò¸ÚAU°
ë
-:£rò¡ £òÙ1£uÇð~ú³scÐ*"Æe²ÇpÐ
-Åk|F£ PÑdiâü&Ôe)boð¹¬foYwöÞÝéo¥ÿ¸nïÒm;ñnìÄ:|súô¶ÑÛïì>ú\ÿÎy©¯=jùööêºfìy øú/¤7¥ðAúVîO7>>>vd×®¯à<:<Dì¢þ_á, fg<;u¹ùÌÔ|cð.J,ÌLMøzW±Aì¦WIi8w}
ÞYP^f¨ËþUýëú·ôæÜÒc*Öäp¸µh-tv;l\J¥¹³hù³Ä
-"Õ¼ìd±}¸ÂQMqWÀ£×JÕS¡Ï§¡hó±]ì]È×HUV
-çäöqûûL¹1N½ÏAcqE#Zin´±ÎaÊ2_Ë-6ÿ;eV£w¡ÎK>B'ðü³º\=g2óXDÕ3L#kfL\#ù¤Ñ Ö±9ù$3
-ÇLXßG¤ÙF#NTÓkdî£ÖÑ
-
ÓFÀ·Fm
-{þÂëÌÚôOk²<\TÅ¢ñð¢ÎùA]é?æ±®`ɼtèÂOEâzÒc/±íøï0jܨAÊѺ@ám65JÙ¬Æ_mvøÃÄ?$.\ïs¸
-o^º¥¸û95üá
-ÉÊÉ`¤Ó$*ðlÉ8h=ÍOXjy¯v|B=AÎÈÔóüYÎ#ÌcÅ;Ú¾^C*[òôfÕCªZ¹aå~cá´òH¹(WµÔî£U:]Ï.ºÚQÝ(E12qNGÈã4}T
-:,~9XÄ&H¥é>É×K
-$³§z?¢oM>Ó°54-WýL6ÎvÅcx`ÄO¦
-öÔ.$þ°«KEÐ4ÛÄ7(J'- ¡ONƳW.ÐiÆ"kþÔy3ºnf®nôz¾È?uaÕô
-·ðóãmSFyjQrÖÀ²¶§Ãáêk¦yM&aJañܾeO£3XÀ,ZÜÂ#ÚLo6ÂÂJp~]B½s&ÐmÒÔ<Å&Ư&ÞN¨¶»M7;8§ËA3û5çh§v×z«cØóÅcl"pG¾y'ϳ+Y<ud°¾ÛD<X#ý3ðß"¯ùÛÜô¯üzòÿ"½¿½V§7êìv{AÍÂÊéwâÖu:Ñî°
-ÉèDSȦØÿD0 ¢àð`
-eqXtf¥¼Û4Íä»ÿ
->[ËÉnÕGßg÷]hæÊ;Òñåøø«Ó0G®¹øäP½uT«1'lçU%ËËÉÚdCrMòímÚîG<Ú°Æ`4±åý>MY:ϱaýl¸hýÕèQÝlð»Xò¥|=î@(\¤>ü»lÎÁ9;ÃÂ&ûEÉ1¼éXXELñÁ
-CMÁR)ËdµM·Ã«1xBz§1iÝêlpèr°ÆïU>v3Vȼlü©+"Y§=l}+_]¼°&og˶¸¿`Ö7ýæ¹uW¾Î¦p¼XúÌ/n¶ãÅÉP7¯xɼÍ_»nåÆú:¾ºë|]~ý¢NwÀüû&ðäû$7±E5¢K U }êѫ֪°ªÎÌ^
Ôlé Ö# 4
-ÖTéÉÐuókáu'E&ÉHL/sáEàI®1(Ãi3q Ròhâìb'W#x|µYÞèYý³Zü6¿
q¤Møïø|ÚpþÇbü·´yqÚHÚóxzLïH>+9%âôXËr|eµ*°UùÔ©}'°ÄE°²Øüö²Ã,7Ìîeý,fwòªC72kqi´c¸xÄÿc¬ÊæñçåoHg¾Nå,Ùçì1ÙO+ëöd.KÿÒÔ¸á óÓKëy'i÷kµZ5U©Ã <fXk-HP]C*^®,¤\¨,Ð^BÜÉwòöæw&Ñ30 Ïáb`R¡.ç3~§e6·iRU'
-ª6(ñf6È<55?òб1׫®÷¬dÂ`¨Æ±d&VÀuÈøª0ân¿gÀjÃÀè¼7ÖW 7>¢fݰÜ/=ÍüY£QÇgnw»Ý&îM o[nöxïòoØ&Ï¿wå}5µW/ÐîÃ}LâÙýxFª°3UñÂTV*ÝRi/USf>oÈ媮.^Öþn+ξ8r'áìt¤ÕoQéÂ:N2O ñÿ*i+ªÊ$ÕièW<rýe:÷ûÐ0$A[CÇú±õÇjÖ(eé1iL'Hö2Ľï"BVÞ¤êÇųgâàäjOóáªD×H·x=[Pî®]°`¾³ðB².Fcu¤æ!ü+µÝpX¥é7Ê7pk8{]
-¸e(}1ªÃ³¤ `eª5-:<®5F'
-_а°
-Õ°?ì°;í.;«2rB¥Å9¨.oZN4% ,-x_vëòj*OäàÚ0\*cÕ9hj.ÙfkUp±=9(WÉÙúØWìí3¥Ì¨!æ¡XºNxÇv)ÊýK
+[É«t;ÝMy~nVçõHÉVãViyë4@}t
+}||ÑxyW2£ÐFWKpüAuÞ"cÙLåݸ¬'<ª£D~J{Êd¬ ¥épòn0lHë®#
+ÐCîÏt¹ì" (`Úwó²JmÁá
+îp]±Byveõ,ç©bËSvÎÖuÊ®ãÇ;WHå;ä);ÀaÚ!9¦9ÙæYÎÅ+]t§YGëYÝÝ+pÈg¸ëf±Ç©îøë]½C ô+·ÙnÚx-Ô8{ººYêÂGªöNC5é´Ç©I¾Õ ºýF. ¶C#FfÛ«íj{u¯D%`ò±7ÔÍyï½7ÎÁt|Úk¸½&¸]Åù·OþÙdMFZf$`±[¼£Ð·xÍwÕ'ðë¢ûGÿëÇFì
-»æ$±x ÏK&ýüÆøGNþkϯxª³óðªë^¼¾2×Z¶ðÙçw¯~jýá«ÛØùµå峿92§´²þÈsóßêÏ3l/'pÎî°-½Ù|uÅqÓîÙÇÿÐýÍÙ¿uÿt¶¦bª2W»§Ë++f.Ödç¡&».{zö"OѬ©©³yÍZãY3kÈÙïí14÷Vç-Þgì{óïÝ3îûóQïOÖ7üÝJñªú)®dAÙì
-Î]ÉËqOgDNWÈùjã7jÆð1)h-k¸AÐ}Æ×le¾×"÷U¼V[+.H.øáS¸7/?8E4ÇÇÏÃè9Ö1|é³4ÎÎE!Ùì¼´qN¤»èápä²-õJr_!òGø"åØñ_8g 8Ï/WUÍðǦߴ°´lþÐüXnný´ü©-/é åÚâ~JQ}Èí
-$óó=k§M©}N,ë×ÍeÏÙ7ľ<3XÒùBÕ9»ÇdÉ-*¨/.LÍØṞÅ;KK"ÉÅv!îuUZ
-ÙFÇì¶ùXÁÅsÿ:¿
-Ù8Eoðis@õZò1ÛÑ·Ê~þ^fÖê]ú$.gJ¥éRã¬Gñ#ÌiÕþôkt
-ÿùûzÃÿÔ3üÝè´ÚËÊJeKñýè.ã=%w'XѾöÔw_MÝTO
-ÏqÞLµ±}Ôß²jÏ ¨1Ûd2&ÛôKeÙÉdÂÆ²:~VÕqÕFÌ|ªÕ¦^Ó&ÆVsjµÝîzÊY3eJ4Z]~*ât8G^SóEÎL&`¥Ç½°Î1UA26a#>dÄÆ1æc sÀûðÌYÏáúA(0#_1 )M;!n×Ðý §0H©lø<é ËËÔ.'ô.û6£ÍÄû6Q«KLÍ FÌô³ÄtY'fËn$úî[GLdùôúëÅ#ùõâa!ã¨zx¢Û+cY-ÿGóJKE%-ûI!îÛðùë¿¶büúêÒ¬òtµ°??ÉÂrz<Qäsfâüiþ{ÑÜö£Ì¹´ùúUªP(âtËðÓó/Ó°8e+K©-ÝÕ
«£¹ ù´BíììãÌXôçGÆ\kÌ5ÿÔ¸4ü}ås¾?òm_õQ~ZÉÏ©ýéYhE&×ÄÌßU
-{¹ÿEÓß6²w yU
-ÕÀo°+
-ÏØ¨Ñî×ýlgCúL6µAÌpèâGLêb+ÀSùo##ñy¸WÀ/Gx¶Ò-´¼
-÷º!ÿäy®þ9Ê
¸êP
-!NË@h¼â Í
-õü+¼Ã
-Ïßñ/x3º
-ÚϽá8À32û
-
-MA?Æû¿3gïáÚùbQõúvªö§ºïêûLnÓ÷̱lÎZu]¶Êví¼c½s£ó·®sÿÚÌY[ûï»þ9ÍÁñÐÓág"w£Ç^,ÚZt(½ÿI¢+(þbÉKo,;TþͳU¹ªf§ÊS[ScÕ+ª_rUÍâ©×LÛ0íÖÚXí I÷ÖõÖ½4Ý1ýéOϨqlfíÌ÷f52[3û¦Ù¿S2·ª>oÞct4A«#>=SÙâ`&ßý#Ci»³vò¦WÂ\úÀ2a¯³ Ú(0rñC
-Ì#'>¡À*À?V`5zW`
-3ßW`-º
ù»ëøåìu
-¬G}ÿQ`Z§Ø¨zVû¨Ð5Âêy²CU`ÌrfÚ2SY²ÌW`òܤÀ<2X¾¨À*d±ìS`5ê²R`
-ʲzXfX
-¬c´ö)°¥Ça*µ-W`#»Ú¶KM(îü_¨ æÖ
-.
yÒ#®
-«hzÂj¢°ÂõÖ>rR`è#÷
->r*0ôûs
-}äþ§Cy²úÈS¨ÀÐG
-}ä
-)0ôw¾Cy¤ÀÐGCîW`è£ÀE>Ê¡°´«ÀLa=iKÂ.×ÁDáJ
-¤-3(L, WQ8æi¥°ÓCa;MßAa}ö6
-{h¹n94ÏA
-û(|Ây4ÿK. ð)£ðo¬ëÿ
åw½G`M/d)LÛRHÛh&ãzÐR4zQ;ZQ+Ä":a)ê ðBÔº!(¹D4~õL®ÍÞIsÒÏÇIÓÿ_¨À.48§Òê!ßWRð/b
-TBSëà.Ã3ë¡ô©ÅP^?>´®mðN´¦hÄ[iHkòIîõðÞ.øÕ÷±Tÿ§Å+¯FËéû'ZJjZWE¡ôNhOÜé°ÞÿÊÿW¥]zJ~æÒÉ
pÿßû5Úk¤OÚàÞ&Z÷Fjõß"¤ltÂ[hÍ þEøMò(¥.POò¼Âô}áÚ
-C
-&ÓúìF¥®2ÖCØFó2V±.¯ÊËhh_õb¦äfJÓ{&ÖFñ×Kûdè²mC}·~Óu~
-að6nT2{fSêAÒgAʸîg¬è³àßBº©Æ¾nÒºóñ&Þ1ô*X ÌÿÝ*{©¯:^ÇVú
-Ññy'iñI\Ád*©<6MZÃélGV·Rz3E;]SåFÆù*åmdvnQè¥ÞÊÊ%¿ç_a&ÃmUV\2:'ÑÀÉT^IëÑòIøêQÚE0Ö~%ÍÌÙ¿¯M¡$}tæNP¥g&¯L/Ǽ||T|üÍÊsͿĥ4Óu¢Ò¥O~7Áþ2eסõ
ÜOó2%l¦5ê¥íT¨ÈÓç¢23t|ý¤÷ÚÑF1-¯Çòêß7IN(ÈÝ7iÜ^âKþ=¦º(Õ輦_*/³^öÓñw+ÈмK9{ ¯ÌARò;&Ú#×kòèÞ¤PIÿò¬êUÆÇ%jzùúw-º4>êiÛ?ÞsµPæìú'µF^iZi¯v_Ñ}WàûRɤ}=kSÖÂwÈJü7½)OíÊzzùº)ïãý(cKnÁ²Ò<ÎôXó¸^÷TÛKXþøZþEù5¹FíÊJ8
-HéÿgkÝÿýʹ¸{ëáÒ¡ÞöuÍíâAqiG»¸°§»g
-â`w[{ßX@
:ûÚ[iG´]èöÉuC¡Ýêë\ßý"¶_7ÐÞÝß¹¥ÙNz Þ¾RU@Ñ®-¤'Ö
-öÁÓ}¤A æ2ýuø×Moî\÷òPnçJÅsmb+ {°u
-ö'ÛûzÛéXiìjîè~îÑ#rHìéjû k[;ûáY(m ³µ_lû§¹¹8Ð#®'íh¿®µ½«4¸ÆhKgWçÀ¼x°·2míè×÷ôÀȺôlZ¯èlkìÇIKOÏÆ~Z¡MÍë·uv·÷Ë£¢¯fÀ
-t¶Æ;z«[·Æ7)ÃÐItlêJlènÞÔØÔ¿ftÇ>2#ãäæùàÖö.2é#ÖÏ®Q·´¾aØ0[\P?cÖ¢%³Äº9gÍZ8kÑR£Î¨£sgb¸è:ÀæO²´UÐdÀ~C=äÉÖ-ÈCý´Î°f±Õ
-Ù×÷µ·ÅÅUðXG3tVOË@3`zï²ÊJ¶&®ØÞIG <ä¡ÖZ.Õ°=г¾]¤¤g'Nèë!EC5Ù9i
-RÒÜßß>0ù鸸f$Ì¡L+ M
-%AØ,ö÷¶·vÂùxËEÀ"ãëé³ÍmmdÃôï£kBI¥´äJuunêTF:ÍGæeÿLÉÈ£=[@¶tuöw÷@Y2º7ÁúCWõò0U0tù(>ê×]j
@ìúék`Ò´¶÷u+-èSêM3÷wôÂdíkßÒ
-o>É=ÙóT$ßD¡Zðåú4¬Y©õºO.VyâV o-íà=ÍÕ$ò%u°¨D«Ê*óÅÊâ*òA©¤V»l>$&ËÊàZYZ)VV§ÊSFÝ¿uÿv2_ ¥zt°ÜCÅL"!qõØ
-À³·4߯~Æ_
Ø
-ñW =â/ÃoïS~?1¹ÿ~?ü¶C|ßéïß$¾[ù½
¤Ï
-(ñ~¶ÿH®O¨Ë
û"$ »
-çÀJí÷õS¸
-Dj{®çhú!¸¾áM¿ ®{!ì'¿ØÇ|¨Õ.vèÙúTR{]¨Øu#®=~iud BlRb3ÉÛNï¶h
-$µ}Ä#ÇkcmE×C`P6\ó A c[ä%|'ØEhI&ßf»ÛÁsÉØú[5¤¡Èï[S+×j{µÃZ|:©´Z¾ÝÁîaYòIëZ¶]ÃRruu)1\£ª.ݫ߯?¤QJÏR½¨:¥::§âecªµª^Õ°j¯j¿J»WµWͬÕ÷êõ¬ õI½¤oÔó>5Þ_w3ÛBLà*@è
°8^é"{-5Ðk
-p!4B`iÚi0jà¹Tî¯
¢÷ÏÑ<{y¹ 5G^ÌÇòñþ|¼7K5µu%R
-¡hî6XªÖàÁD(Mà|A_Èõàö,xfÁ~¸[³ gÁl%ñ[x¤0YBã@ÄG¸Ü%溩Ì3ÿOk×EÏm»cÛaK)¸I)§;Óå¶Ó
-E+bÚñ¶.¦ÍiÈö(1M.mYþ´k¥5£5!ífH»Ò®´Ã!mgH{,DífâÖi+Èò·¥mvv´Bh_m³Ð
Óøê,.í,ikÉòkÇ
-äy«g,Í¡^áëågȬcL1²Óµ,,y
-ÈÎkL¬zÆ^d);¾"þ´NÓ³?xÀ;".ÁþmÂæO¼ÍߤÃåfOoÓâ«<ßäsf^Eà¬Wøç"ìB«ðbÂÜ&Æ
-ýÔ@§zØj.ñ^ÛØk¡n°ç°ÇvÌb5*V
óá¨Es'åÆóbÜKó¼mrT,jÈSW"Çè 1g²+O4R0?ÏFMÿ ¿Ï¿É¿Þ¿Â¿Øßè¯÷×ùgúkÔjµJ¢Vªåªª©%ª¢2µFΣMÿ«)«"*+!["׫²Já©
-W\;î4ØqîVÛÌÞw#vÞ{»4b»jÇ©ço8ØrWómLak_[Moâ|Á¾×k_Ü÷ºãpÛ=fv_½{£ûQ¾¾Ë-5âA6cWK°¥zåÔe«1=E{ßôqÁÞa¬sß¶;SîguÛD+·ëÛ]ÝY¿%uRÙ©ìH&N*DNê$ßìLn ?ßpîÊ®@Æ,"M2dLçR¶FÊ0Lõd"§ëÑyÞF"óR´«%«2ek¹Y$Ãx($ܬñL¨d2ÙLåÂaHÌ0IrÍaráf½6Â
î8,,ë¹#ëp~O3· Á((jÈÿ¹ôÇÿOö^ÜNöÉ#Ùô¸¯íz:è¾ÔW_Ûzõ®ovO_úiâÞ~÷¢Ñp·ú\oú!á4
{D¥S¹t´?áõF{FoÂjµ¨µÿnÖ¡$¢dTkÄ~HئðÕ²©MµF¢#²½!ÎíTNeq§uK'r\=µ!'>£j`¥¼8V{jO0<¶*"[iÄ]
- Pc¬1F!\w
-îYª=ÅCUpO5â,ÂÉgw¿LfÍF`³AéÄEê´ÝUë»R®åZI7Úpää#ÙâÒVµ.XÊkÈ:`
-[Vi6ëÀ]}V¿ +Ýú}H? ëz¶¤NDaýWÝÅhâX Y3Æ6³Z
-dB¹H6Òé,_½¿ÐÙ4À
-ðð3p(õ5ùdòlaÔ:ptf4ó±g"f³ät¸3ËÞ¨ÎqhƽnñLáPà Þ5ËßYþ1m
+³éã6«ËÚi
UÅÕv©jS?Þ^zzP=Ð~Éõëåé½êïÔ:õÏ"@Ï%òHÓDìD!.Gy¢ðIã6h$yPTi)4O,åAY¥¥¬ÔWVÕ¶c#õ\$û{ÿEêFÞÁ§a¶ËLjl5u55]EüÜiçS{qz at +ii4Ú«©´ÄEW]sÍU_K%^3,¼áê+êËïßdX@/¤záÎÎö%W¨ûßOôü~u¡ü¼lúÙ!ùðÞïyaÅñßÈÓÑçóÉ2ËUl| <`y¾hËDóÂ6XPzñDäõ7ÁëïØÞýø
Å·²Vc,-)#ø
pu·á©á
+n¸aVSºGýúïê´Öó¾Éÿ(QUGðy^DKð¹Hج9þ©yN^q¹¬CAþüʪJqCÈ_UUé`ùUR)yJ^,=4ñ~»t¿ãyû,¿jréÜUP×Y³d²®ó:×fad_ýÓ[¶?½U4¡a6újàMÔ¿þ±²f§)ÒU®kÌf33çç[òæByê$Ë$ë¤
NS¹Õæ×Zj3ÓÅæÙÅùFëbó"¶(e¡uØ2lÝmÚmÞÍvçï¶ì¶:
+y¦s³æ_h½|æµ3Í«È*j¯¥S
òª¨TƬ®6Ý^I5UÖÑZ:oîü9õeÒÄË×öû/§ÅOªï©©è®;¯ñ^þÇ}ïüBºT=:{öyç׿§~íÿò©S©mîÜÆÙuVSåߨùX%×+ú¨tDÄÅlW´Ïø¤aÙdÚǨlF¯î¸ÚgctZcV42AæÙ+¾7ô½·á¡¿þR>¬¾ªþÿU_å4îD?
yy:yØõ)¼J&Ú5[ѧ¥Ò§'n·KÛ÷fí4¹ÍT^3Ãö
+·ÒþÑVzÃöF&0f»|±´¡¢¡²¡ªAYT¹¨j²ª¸ºòªk+«×LVD+£UýJTT'ó¤õªª7çÕrOåÖª{ÕÛò·Y¶Yx´òѪGG«g¬¢£Ì bªºæ¼éö2)×çU×KÒëßÛçV=ô«¿Tòêk·ßNóoøÌ-W}á®_¿DZ°Jò6uÿ
µu^Ò4±ºþŽþ¯ùó¨§m¯½¥²zöwþê¨CÄÛÕ/æ -ÄJ\
+¶TXòó¶Ë6©
IFd))°;tÉþz;ϯºd¤¾H÷]éÍ<üæÊ3jûûTa#ÃÛêt>vø°ú÷×H[Þ¿¶ëÂuÚè"´ÓAd¢ÞËþ]òÞ¤X²ñø®Ãü(Ò~u½Yݰ½hÓÚ´,v9Ê'YlfRVÛ¤'¦mÛvó½°eJåäò,sH]ñ,ãùéס#ÙötÏ5;rSî¼¶
+#Ìa¦jé¢^ l`(-)B_È
S_VÿúEµî¥½Ú×møó
+ÿñ£¯^Ò7óÑú
+Ñ0½ï¢ÕZ[Ôã|SUm´ÂðöúÍÃêr
+£Wa4ʬÂÄd£læcC
ÿL «03IÈv´Éh`fS,áj6B¾íÐÎ*ý¸.yýÐHZÿ&¡ÿ<í²++k¨kãDVDZ^v#¹ÞhºÑd·±ûÙ÷ñy _1[i¹Êâ0}ʬX¼RÜjZh^+¥eòrc?ñRì3®¶$ÉzúiiH^oJono1Ýj¾[Ú,ßeÚj~ÜôùòCúCÃy?00ÿ¼L_6ü<ï°éæ:gÐ3¨x at jyÛµêÃLúa¦ºáýGèÝ/Rz¯³ó
+CQG&Þ÷üêk/ù©2Òñéçîývº^å7,j÷(²E,V÷jEnY;¦Ìµ`¥ÚkHßd,'{å±þ|¬qü4¹ÓðFÄäj`ä ñÒ5ÚL#«É>jÄúñuÃõøì2üfÀ¿êØ-dz°VÙÚsª?%\D/Ëð°%ÃÅü·EîëúÃÃúXÂñwõ±TÑÇFRH~¢ùMÿ>ÎÇØøo}l-ú'jÓÇdnñ·ô±äÑÇv" E*á÷*:»ø¨>¦¤¬TÑÇb*¯(¥éc Ç×ècL,ý>6ÊÒÍúØDjJ¿£óIcéËúØêh,³éãÒñ"}l#eïÔÇvbºøÙ¦hl]<Ü×Tff*õx¹(=ëád"ù7¨UÜJJ(]¡D(¾6¬e'Ïúük×D#}ÊÿI6Öø
+aeèô
?RÂ%6Ô3(Áè ?IÃtû#Ñ`ÎTo¾,O£¥¾¶~¶Ç·fåöF#ÈDeêO&cuuA\_;TÅ¡Þh¼/T %[gÑ2#
+)=¡èðÌZå4¨UZÖÅúJx0'CA¥7TÜñÐZ4
+¡°!Ma¹dËRGñüÆZFëlÖ)Øö9mÓ*c(̯$ãþ`hпNöÅÂXg(>NJ(BZ}qEw¢ì(C¡J2ªø#ëZ
+D{¨±0ªÀ¯iÉþPZO@t0à ÙØQË¡HµW#TR3"
+ýH£¡ÁP$éOr~zÃh¤£8 tG{èþx(!&FÁÂ=CÉç:àD3áp²?:DfÃ:!N!®©Ñ%ãTC\j&$ÑïÌ¡áä4ë¢q%B; tYÕÅC3hc\ÑI¦©NîGÇ:á
+ó@?æ#
+Ù¬SÂ9nθ8ño² X>HpEr»¤Ã#>CÃÑx0¡Ôdâ°ÓNo°¶5Beh6=^zBIëÚëdm4a,t}#FñÇb^þßÐdGÌ|À²Fé÷'~1"£t½.ëÝAe(ÔβÊs§²j7Fµ07_àÙc%
+ó®ó÷¡`(ã®úÁj)LXÈbh 3µÐ£´t´ûîßrwGñv+]˼Íf¥ÆÝó§²Üë[رԧ D»Ý·RéhQÜí+ÅÞöf§âYÑÙåéîf]wIg×kÞö¦¶¥ÍÞöVekïð)mÞ%^"õu£:*¯§#[âéjZS÷o×·ÒÉZ¼¾vÄÌu)n¥ÓÝåó6-msw)K»:;º=£Ñ¶{Û[ºg
@DM+»¼}N<äÃE'óu¹=KÜ]
+"ë@»R\"ųî^ènkSx}ݾ.{ åÚimïXâa-KÛÝ>oG»²À¢¸´y4ÞP¦6·wSiv/q·rqÒD8&NVhõ´{ºÜmN¥»ÓÓäåÔ£·ËÓä¨{ÔD`·©£½ÛsÅR\@¸4 '[¾Ð#H
+®
+aLðT³(O&Ãát¼£Ú§$üHOñ(P+ýx,asT@±ôeñÈp<Äd¢øp5þ´~
+ÇõkJH d%àT²ÉAã?JÄð
+¯
+
+¬«EØ8¿Ë'áÖjºèB}dcºTH*}y0dXÑÕ*ë¬K§Ó-mÏMÄ´:H9:eë åë vb¤'ùÀHßã¨Ù
M¤¤k%öɨfVbZÀUÄÎaIJµrµUAÄNV+)§_+±Z)7|GKxc8WåÓË%å¬Ê%6]ñ½ñ\L,Uκdbç´dbzɤyÉÄÆLÊLlÜIù %ó¹-YÔÁÙv/<£êe%?ꥫ#ålª#[)gT±q«#ålª#%Sø°>Ê(|Ø©å4
+&
+ѵÃß.hix(X-~Ô²sU7¾.\Ær}m¬?V§§±14ÒD¢$FÖ8 >ÒOD!3HÌÄÏz298êA
,@$Ià_'®zIákqä&ø(¤++!f!üáµø"$;
+ªó3T}Hi-ÒZg"ÍùðãF±GkðÜ22õl!qÂ/$RKß1éA¼aSð|©ûÅÞX<ÝK9"|ð$»Êiï/\'VTpR¼×£rÏ¥OÍ: Ö^qVÓDR·×Låj$uøuøµ_pQü£¬!q6.´R8Bx¦%[ZKiKè|k>$¬Bî¢da¹Î8¦VÜY0ýâd÷b擄6×@\àþÁ±®£±rd=lhLÏx²kÖóã(Wk'ú:CÛùÃN+~Î}Ôoï¬ÌaÜab+ÜË
®¯Ãµ(ZàoñÂ%ëø¶lOýb/¤ËÕ'¨Dt«;u»kÖÒ¨i>¦ù³SðÖó1=Ö4
+QÄÔ},¬{_àÐ4ÍtIÁÅX
+8îö4ñ®ùrHD®æ{59^R#,ÇÏÅgBðÀ3~]>&¢ :(°$ÅNZ?½8Ð#iFÇ,k8ÿIô_Íû9ŬNøJLDM)Äé47A!ARøZî&Å®FSæ
+í.ñÂQqË)ºíÅg6-â&â7§_¨v¦Nuëd~·hÔ¹Î{AÝÆ3+§\§Áçz]úõ1,rƱDAÁ)·W$G}£îUR:ú
÷h¾¦1V?¿)SK¦Kõ0¿°Ñés0ÎX}ÇS·÷8>I6gëÄEõ¼Å^Id<2/coçBB4¥a!UP¯ç>¬ÉÈ=öýôm[ãeZÌ´¹_zD¼GsxÒã í'kq7<ÆBäz¡çÉ1|´ÛË/2j(s"×îÏé6n¤ô¯ÏÎcHxÒÉü$ëÆËÝAqDÝsõ5VYærmx¦±Ð+oE$méHâÃ@¦öë'Fc ¾ß}ºÅ´û{ËdÕ3S\ª=Fú}ØÑÔBât:H;Î8ùÈr¬#»Ä׬ãºpgÎqµYØÅ-vø~Æå8æ;ÈRKÃÑ
o{%®pÜóÙboG\ü¬¬4<9ëÀ1ǽWÛðÓ£ÃñM¸²ç|ÜJxªÑkÇS>;üçEãÔëYª£¹ò
+iÎà¬ñ/ÔwÝÛ+ðqþ¢>âãvOMs];×ÇÌq6!GmbÆWâg'Âu}º
Ì·íBÜ×dñ4Kh5ág'ÒæÈOhSòéNaG.O³8Ï©.Pgºù8¥V×¥Æ×ÿ²ån!>ß+>a7âOãMûN«ÀÀùfBK
|n¡AaãZäúlËx\WU¾¸Ý8çÍ[h¤{\IÒØr3w°
V!GhªM at w£=ïͬhþè²6éºÖpj~¯ùD[vܲW UîSn¡»ÑRp;-üg¥Ð,àÖßM9:ËZ¿]·n ìG+ËE,z[غ;#-"~è/ÍxX6,Õý³#ÃÙhý¦ã(
+w:¹Cæ=ÚÍÂÚt»3ÚÐ Ø)ðj¹Ë÷Z@|ÏIfòöè;·jÌV£¹u§3'׿VZn°cಫڷ%íÎÊ~×ÉÝÆûþv¬Õòéª7[}h¹[ûN[õE}®ÕLUu`4SÝìÓ{'ÑQßó8e¿¸ûZé»(K«+ý¢ZàÔãhóä7;áaLÜ÷a1Nê oHåëóm8Ýÿ9Ñʸ6HË2^å«ÿ¸°wLÿ.æõd7NÒß˲:áÐújc¬õ>í*pôåpºfDëÑqLä«tëãï:ë®í'©ÄFõÆV^^?ÛR>â~;~ÐèJ>ÃS¶×<½êxö±õúJìÿ÷rúJÙÃÿ}%6êýøúJlok¾·¯è£é+±Sô>¾#´¯ý§N粯·Ñ}¥Ý¾'ï.ißϵJâÖ]bdtwiüîÆGÓ]b§Ð®£ÁOv ;±ùè»LìÜebcºLÙïºeýÍ.òuØè2)Z ,C¬·¶Ý¸ÿÑõظ6ÿ¸zGìÞò±õØI{GÙÐß;b wt*¼nï(YO~£ØñagÐñÉíÒË;«ÏßÙάãÃr:>§ê;Mòü.í40AÏjÏâß¹ªz¹ÿêoAQ5Õú5k£«±SÿiDÿï¤ÉñÏ+É8?îÏ6ÒiD%@Äïóh5ò,ÓóH
+gSI¾kôµÇÇ@±_Eöà»)»SH9¾'J|O+åâ=Q¼'wxÒRXKÅqxÒ²÷ÅZ©
| ׬bÍJöZh>æYì
+Ráþ{¼Â©pT
?VÂ[*¼9Âä7Ua0âþð{&ÿ¡~Ïàw)øÏ;ÊäÿTá·)ø¼7Tx]
ߨð
+GTøµ
+¿RáßSðê+åWðÊDøå×*å_á?wÈ¿HÁÏð³ùg)øéË%òOËàåÃ6ùå8lC?É)ð|ø1Bü8ÿAüÛW,ò¿M
~T"¿4
+~t HþQ (qûÅ
+x¡nü¼
+Ï=»J~n<·QzÖuüüì*xÖ%=ãUáAØÿe¼_
§§ÀTxJ
}ßo÷¥àûß,¿üÞ$ùÉzøÞ^»ü½I°wO¡¼×{v[ä=
°ÛO ±'TØ¥ÂwKáñ"øß*|G
Qaçøv9ì(F<ÿíø±=ßBøoMÇðã±
+ðMÿK
GTxX
m*|ÁC*|ýÁùë*<X
+·ªð
¿wÈ_Páïp
+Wásõpófø¬
+7©°±ndð6¨p
+ëSðé¬Saxí6yX
µÛ`(9YJAr2$Rß
+Wãüj®ºr²|
+WâìÊɰR
)X®Â2»/Sa©
+¾Jè.®+Êå®\WCgG¹Üv»ÜQívXR mKä¶RX¼È./.EÞy¼°0-%rk)´'ÍMrs!4À·C^7ât;Àuy¡ìRáòË
+äËᲸô«|i\b
ШBC \¤Â
Å0Þ$y¾æÍ-çMyû¤¹Ì*Ï-¹¥9õyN ÌqIõ¸`ö6ùf#þÙÛ ÎµÅ0ËÙ(ÏJ³Ô!;áü |*3UQ
+Ó'Øåé0MG%7pþy0Õ5Ä*פ ºª]RU*+¡bJ¹\á)
Åòr²sÆÒd+L*_,OÚ
+JqÔ%A(¶C
+vÛU°¡°À&Cá>©À%+îXS`©|-¿ò7JÌ
+Ì%U0©§Qf²Qì¤@xÊ bö²ÊÔÄ
+t
+~~=ÿÿòq3ð!þTÿj^xØ
endstream
endobj
-574 0 obj
-38101
+551 0 obj
+7864
endobj
-575 0 obj
-<</Type/FontDescriptor/FontName/FAAAAA+TimesNewRomanPSMT
+552 0 obj
+<</Type/FontDescriptor/FontName/IAAAAA+DejaVuSans-Bold
/Flags 4
-/FontBBox[-568 -306 2027 1006]/ItalicAngle 0
-/Ascent 891
-/Descent -216
-/CapHeight 1006
+/FontBBox[-1069 -388 1974 1174]/ItalicAngle 0
+/Ascent 928
+/Descent -235
+/CapHeight 1174
/StemV 80
-/FontFile2 573 0 R>>
+/FontFile2 550 0 R>>
endobj
-576 0 obj
-<</Length 614/Filter/FlateDecode>>
+553 0 obj
+<</Length 273/Filter/FlateDecode>>
stream
-x]ÔMnÛ0à½N¡eº,ÎV'¼èêô
-¹{¤46_cÇcÿUUËÕn·.rßþ÷îQ¹äíÔü<óÔ0Oª×sËËdeNÈѲTÈãÈKæäyüÀ¼C~´\òãÏÈOÌyË9fxæ¸"¿0Ûøs0*fØýKìÜ¿AvLm~9Ðm>ýÑö¡?¢Æ@ÿò þÚÆÝ¿E¦_,Ó_£Wþ5÷£?¿Á·~µLD]B²LBíBD
þ
-júj÷Û8ýÑÖÒñ»ýZÄûß]èOéODÊþGÌQ??¨WéWËô+êUú£»=Qï?Ìê~ôAéO°)ýþ«ûmO÷£?J¿Úôú£ô+jWúæH¿`ÿHÄî'ºßÆéߨ|úÕö¡?ÁÝ^E÷ã\E÷[¦?Áá*ÀýüØwýüØüαïîñÝT1ã·Hõ&÷Û¸ûqý
-[òó~&÷[v¿íC¿ÏD¿ÀèWÃþúÜs¢.ß2¸pOþ¹ÞÊæcç«Í.S»Ópu}þ{ß«ìï7êcEÆ
+x]ËN
0÷}.îM %aá%¢
+4Å8 Vâ°êä¤ãVm[ü_-9$ãÄ>ãZ×ÇyS;N§3äKë9G.3ÏEè)<_ÌÈiìù9Ë=ß
ü£ç&hKÏ÷4y¸ñvý>Ö@Ùf[.g÷S ¿ÿ¢ö*<ß:ëá
endstream
endobj
-577 0 obj
-<</Type/Font/Subtype/TrueType/BaseFont/FAAAAA+TimesNewRomanPSMT
+554 0 obj
+<</Type/Font/Subtype/TrueType/BaseFont/IAAAAA+DejaVuSans-Bold
/FirstChar 0
-/LastChar 93
-/Widths[777 610 500 443 250 277 500 333 500 333 777 443 277 443 500 389
-500 500 277 500 722 250 389 666 333 500 500 277 250 500 500 500
-979 500 610 722 556 889 759 943 722 666 722 500 500 722 277 610
-722 556 500 500 920 722 722 666 722 277 556 500 500 333 500 333
-333 722 500 500 759 500 722 500 610 277 722 500 180 443 333 333
-443 443 563 563 443 563 333 333 408 333 563 833 500 722 ]
-/FontDescriptor 575 0 R
-/ToUnicode 576 0 R
+/LastChar 11
+/Widths[600 372 762 687 595 683 720 348 695 379 820 773 ]
+/FontDescriptor 552 0 R
+/ToUnicode 553 0 R
>>
endobj
-578 0 obj
-<</Length 579 0 R/Filter/FlateDecode/Length1 40404>>
+555 0 obj
+<</Length 556 0 R/Filter/FlateDecode/Length1 17300>>
stream
-xܼy`TÕù?|νwöíÎÜÙ÷}ßÌd2IÈ\ Bû ,² n at P°(îÖ]TBÂ2àÔV»¨]lûZýVSmÖV2ó{ÎI
-ר_{JÛ$пúþ«¯ºîî8ýG fÕÅÎ|ÑÿBó@ÉêE׫P0Ðÿ ôÝW.Z½´åµú#]³áªÀA} ¡}çÈþµë®µ¼±¡Ðzä§aÃüÁ9XLúÍÄ©L®PªÔV«ãô£Él±Úì§Ëíñúü`(Æâd*þÿö'ÚËäÅN¯CfÊÀò1YJãËçEW _iEùÿÐ-pðþêRù §Ñ¬@[Ш
-Õ¢ÇÑè
-´MAP3úÿEu-
-"#^Æàôö Sù
-Ø3·ü õ¢Ð}h;úºý-F¯!1º×!?j
-<ë´]¶¢]@ÑÑïÑYô5f°kñ©4õ{ZÍ<,2QyPÍRh$ÌÖuhÚ pưq¾
-ÿRSjuuúÞE¦ÿÌü¥<ºütùUóOùàDSª[j{vÏ¡ÐQTD?AE_ s0+ñn|Åÿ¢ôÔóÔ¯ó¢ß¾(?T>0ÛGiøÔÁEíð,W¢ûR¯££?¢ÿ ÿ`ÎãðÜ÷àýønü'üu+õ&õ}7ýÝKÿÁL-³R´[ô¾xdQéîÒýåøv\;|Ós¸xqðÄ0}è8:Ïö/ô
-ÌßÖðT|¾oÇ{ñ#ø]jµZC¥1í }tÞɸÌÛÌïED»KÁRW9ßÈà¹gÃgZwÙÝ0ÐK@×~Üü%úîFØ=8Ûà3¨>ÏÇð
-¼?âßã¿Q,e¦¼Ô^ê.ê1êÔ_èuôôt?ý+ºÄE
-Q-|:D]ð}þ!!Þ%%¹LòôgÑÁ¾WR¥PiZéæÒåÙåkÊ×-?U~¾|¨|ZTx×üåO%Ar:Ð4ÿ
-´x²Ý¾§à;ô£#èpÜÛèè=ô'ø|>Ê~*|§/ÑyøNfìÃ5À/9<_áµxð¹ßïÃà^|
-Æoà_áßâßá÷áóþþÒQ¢rT+5DM¥SK©µÔVê^êêIê8uúPù7Ôo©©mJ´Ñãènz>ÌÈFz;ý(}~þ5ý;úúkhäa|Lid371ïÂ0OKD+EàóC±B¼R|HÜ/þ©øcXL<)éAR¡} ¥ýÇ=#Ô\xJ¿JÁwâS}Ì
-!êV¼ôÍÀ?pÌNtÊ¿CZô½òè(6D--ß²°
-wàÓ CË©uÔ_ó4úý.ðÍG û|·ø§hn #Ê=ßC±J¢9è>z'PÚ,(ʬÇÿ ûгÔÝÔ.êHùu
-¡Ï@ïÍaÆbļz?\øSô<ÛÔ¯¨]ø(#ÆâIðvZ
-üñcä§BKé«1Cm£þÉü½Kå©9tÿ©¡i4ètêÂb)zßM}=h?ÞßþCü)õ!º
-ý©Az/µÿÿ©E§Qú
-`þCÙI_
-zæ:Ü~=èvZvf(°`înø;s9Új2z¬éAØrày¾Ð2¢¹©1ßËfêjkÒ©d"F¡`ÀïózÜ.§Ãn³ZÌ&£AÏé´¬FR*ä2©D,bh
-£xoÌBwopa/ô }ß"XtÑÀÂ^7¹ô^÷Bá0÷¥Gòpä²oÉWäĬ»5'âî6»÷ç>wÏ2¶ooõu¹{íNaûa[Ûàn3¯hu÷â
î¶Þ1׬èi[Ø
-;¬ö^*OÄÑa¹6°Õkò=M-XØ Lm)$UÁCõZ}m½_+y^:жhIïä)³ÛZmOW"ÞG/ö]Ö|£z51á4Z¸M¯xt¯D¸ûròmÐn÷áøéÛ,ºlaL¹Ä·dѼٽô¢.rmîÛÚkÚtÖ|¡×½ãâ½6º§Í|¹t{zv¸{2ûâ½²îêkÀ¹T`ÌÂ1pëÛÈ$Sð äñÉW©|©¥¾62²p¥»Wæå[ѳr!ÐÃÚÓ¦nôôYüòûÈÚæî>Ûçé-Ø|]Zíõ¨gêÆ~ï¶\º'?Ìj+³yX©n(Uo,Þ'l ©ÃÓÉùÚzÝÝð$³}ðEÈjiêYÜ
-L:³½L
-Í;DÉt{f:iAÌ
fv`=ÖêòöËØyü%ûúV½å¨c±îîîÞÚi½õÀgÝÞ.ܺq÷:r#LëêëjÁ>Jh±Ao¬«ÍÕçLbØç
-f39®> ú¼1H$¾¡®$ÏÜòâçÕtl2°2¥6[puOkLâÞ«VÎÿHWÊU{÷1·ÏªtÅô®RzGeæ¶³jNÉÝ%é«ñ¾¨ÞbN¼ùè¥OPë×Fì×<Ó<£,ö<?RJÉh±~{ÁüO×g|Å,kî²ÜÂÝfÞÏ=d~B'©ç-c¹vË,éLÝtN"W*µ~
L~F¡/ÒÛyd[Ç´dÛèì^É %±XÕd8xºxØøÑYÄ×ÂâÌO/
-Ö# "¯Úb¯B_U(ÔùI
X Â
-ÇÉéõ§÷x½NÐR at W¤ÖH¦ÖJJ
I½Duƹڰcã'éÈ Ê#È8±;+-gÃu5ï0'iôwãuê¿?hZ^68^ciáÈi
-i·OÀÞæ<;¦Ës¼VØ$wáªwvÁ]¶qôßcµ2ÎÄÕÊaóðïê)áw<;íþJ
-u1!dA jAO
-°@UBrõö"´7#v
-À\\Ä/O¾Ò?"±ñQ>cxÍlR8üZÕ^Ã1Ư«ßr¿ïþÂMouïupv3îG¤ÁýÖËkfÁd²f>
-ÇyÄ|ÚL¯¯9[ñÆùKBs`8ÎuwÎù¨¬»y¥}A*"G&#D7D¦ÎÇÕ+JRÙØé稿Vt¶´;jnðüÍãæ{t S`D@¼~ñ.ÖÞ_wû·U½\s²ÿùZÓæú=wð+õ*¸õÞf´½Íï¬Ì.ºUDR ßyÐïë`à=øz
-«YsARVJé¦I§È¨°,h59ÇIÚ¥í²qò¹ÒYìÀÌ÷'¸>æX
-ùÌʼ j¤^B©L*ÙTfp£/·¨l[ÊFÛl
-_'
-w£Æà2PkµSDÿÔÛ¦eÕÛÂj¢³¨±Ú¬è{Ó;ÿ}hþNa.»cÄäæÕÍçõêíwÉÊïõãÈ
-WÏIn3î¿ÝwWï\¹lÔ¬gÖ¹«{óælͲñÆZOצ¥Oköãçg6M°xDĪäîkfÞ
-Ò0ç?9¢,~7ËÜROßoîÇ÷ÚîÞ|®îXL&À̤Ô7>^CÕGÇ»)% *¥ÚΨɾ<lLLLô4VòÐUòì ã»Á4¦
-¬ªGù2Yx~úxðy1(Bwµ/AÖ6Ðw0më5¼LíGqz;Ò!(´d&ã Ç¡|Àñ¹rÔÖLzyí«
V¥²@;rÒäpÔ_k©´æjßà«´ê8<ÐrþaS~H#vu~r.F
- ZlHÆÌ}ö,Öæ+O+X>0wå6ïP³gÎyEÀZë+ÖÑ ×@îÊßAXÂå Àn?à¦Ùê²j «ö17d)u9øL9 à:ªjGÃè¼j¤åR¥ÊémÛìi4Ütå¤ í+OݹaÙ)ÿøqË´ÆWo;8Þ58g®JÆ*e¬c®yÅêX¤frÇÁÖ+àE+§óã×Ûgúv´Nzô7Ì@xo6è̤È(ý|ÈtecÖxMcVãuÙo±eºØâÃFS¤Í3'NG:h¸H?È[°R£h\NÞéôØÎhØãdM=
-ðůêm
-
-8M½Ö+9tûM;]©-¶'ßy²¡Ö5µQ¬Ö:¢öà
-/óÈM+nc³Wÿlcóõ!kÇ
ÿÕÞõÜ£·6L{{IÍ®=o(Ä^E;kJ-Í÷o<fkéGç.ÿÁJcL3è´ðhz<_.y,"^®p®
-U/CÒiè 5-{ið%¢/ÉJôûR]â¨>îJ$õDÒWÃHñ¡ÀK2ñ_/'M§è¾ú_%ÚY3¤í3å¸J¢fITU=iy]cöóN0Kâ³
-.ïÆYÞ@Ê·\xG µË¼3jãïÆí¾K0öÏbÝQ¹QóKݤj*>ËnIâ×á;:bz³1ºÞõ1Ó~Î\w½5,¦uAÿæGRðôX¦àô|Ù|ùÔȳôsgÍOXe·X÷[Ë1zsC9].Ú<
-GÒ¨Sz7墰'¥Âª">À{õ±KÂr¹Ü½Ûíq»äaMËxÙd-;Iñȼî&´Kòn>3"ãæãY7ïÅm7owd#ðN¹ßrî.»ÅÀ&;ÆÜ¦ZÁ«¶àì² Ý/Í* ±
- «êpÆb\® $Â] ÈP$LZ»î8´wJ'è5'LHZ5;mQÔ»ï;áÖè=zJCÉc×¶£N'JÕüe¶ÞtµzUR§dedö}åEWÂìO£Úø-À'
- Ü%«\ ¥×ÐÝØÝ4¿yÆÔÜåÆñÊÆMñëwÑ»ã»w~~@ý@ýC£ÂUæi8?Ôx¨é
æg[k;Úp¬ñظÀõ+r+[驨«uêTzWýÎÖ{Ûè¥ùMõW7nn½fÜcyqò¡±©k¦<Þi¥"¶óÓÃSÓÓ:ªQÛGªäudj´Ú5É´×Do±¸"i}$76ºZôMM-h6ÎÕÞ¡ooï*ÚÇkjjG¦¬kiêhg½="ã} ]$ÀÀðêìÂÈ"T¤HeiÄqc¢yCïË6ñ6{fMn,Çò@ËóM'ñi4¢t<?õõö2_Vh\BÓ' ]K¥]ÞÊdÖ´ÞNµ[¦GLM¦vSdúýpIö,¨sÝ,ðÔ@÷:¿H_£zäÖ"ÐêKÇYPÿð/0]E\«
-á¯3´*·fXWm=ù¼¸<SiPepZ¥1U·ª`ñó
I
%ÃLM_ä \Ð;¹!®&L>íS1íãrÕn¿tã¬ædkGÆ>¶oʤdîJ¿L,[òµËÖ9A_*2¤Y¡ÔDS=×Mj»ç ÝÈzÍ/g,óï:a]ª&½«4âÀäëÜ|mͤ®ÙÜZÕ8²´y«Z-pñqðmµi_ú{xä%§³¨Õ±ÞóÕ}Çf5Êèê\é7ÔÎéÌèS]~½4uRhå|~ßèGuÏr~~l¯îóEWÿh¹n%»²c#»±ãþç:ÄZÆÕ2^ßÒ2^£mÏ´xÌÁ|´H×õÅU¤ïä]©×êüqI߬Ñiõã¨#
-¦ë[<JÞϫѿL×";J¿ÉÐ5¼,¢lôl´ä@=F<Ñl0&ΰüVGNtþtYÀº±Ø'ÀOÄKüg¥Ò@îðÎà@º¦áÑTÄèðÀ%Ñ?ÔjØV`¶%V¨_5 Â=]T¡ÀB¬ £I28êj[(,®r
-¡~(ÈÄOqk×ýheVïoÿ᣺Ü~ýÏfçc¶Snºrû¿ßìXèì·îÎù£³[Ã%ÏiÍ3ÜûÓUMtÇúÔÍË+ÜqV«÷hÁL¶mêÎΦ%ÙX·ë
çÔöÌÚó¾ÓýÐäyÞÜyY㲯\Õ0*Ö²¨34ƨ
-Y7QKq|{?ºÂEZ{LDYÕ{ ;ÛÉE©A)'G-þ'˷ܨ²³4þ ðÕâi|Ç|»ò!åóÊT¢¼¡Q1Î/U_Þh}.|BúRäDôu«z´w2©¦Ó(ãåUþZµ¦´Ñ Ö§
-¾6[?Å«ÃÞ´¯ùq*-U¤oç½$ÑFjäS»¬6½Õjúå
-8KcÅÖº°ÍJ¢¼ÛX$ATÐðwV»²$L¬<"9-INÒM` cGl>_ÑJpimÖJB"VóØ¡csd>·b¥Îj²ÖÉtãáÍVUk>6§ØÁª¬Æk×!ø¨/¶Ci¥!]uIVÍ6Ãß3ÃYI}E¹ b0\c¬#Ûú*Gx®@Z þQÛê]]7îÿ[mgºÝhÊtÊJy÷Hÿ Éåvd®l¹<³jùÔí5«~UCïúhÛ²Û×ý±7ÚK¥ &£K0
-[éUÓô6§$4Èo\¿ÿÅg|ý$Ð.,¡oj7`û@
-®17fe«%bay:B´ k_£_cÞ°¼aUµÛºlÛh¦&J1§µÆªeH=I,l·I=5C®RíixM$þ×c!§¬Øi>W£åºFëÒRÚ°òjñï0=b¢&¶zM´Û1ÚÔÞØÐ~*¹I¹9:W¤}¼ù°Dj
-kãdî¨y¤æózrͶÊ]®ákè"eïÏ×¾'è
-QbÐ
-t s?+4²(%[# æL%CÃë±Ñhâ*t M5ÐKTÃEÀoÕDÔçè`EõwxªxóúÜ
XÝJûã-«J?ûÃ=û2®ÔÈ ^%å¤"Xk_lP72Ôo\zWI?îÁ 7Mv³Z
«óDjÛùI?-Íûú`WÊâe¢T$÷¿¬
ÚôP«8@¢E¡òÇÌtð=Rà}þXâ$þ
¦ à-Y9,
-¾¾9#'+
9Í(øÚ:èÖf36¹Uq¹ürÅäï)ÄÃ$ÃÃ:æÂiÞÆL}¶ÝÙÞ4#¹#{7~@¿áItåGG2ýYõtÿ3f8TNNÁ²#xð1Fðö¬^oðùAnEª,âòÁp2êôéëòé ±Þ§§9 ¥R´ê9.XçwKòÅòïûù<s*Ìfµk9iº?xS×ÃsÖ>QôÈ|×Ã~8#¼ÄË鳩ýc9«;9â¡áÕ¶mÓ²6xHïðgTu8K^Ìd>·>hæL\³¼ö©ª2¨f2?9[wvð+`'/ U^¢ªñî!0^º= Ô@t4v=^?CÐ¥Aÿ! yþÈÒDE áÄL/=m×ÊT:ïdï¸;yoÜúÞµS;&¬{åÁÍËë'/SHǵÏßPú|TrníùfÉB§\§2/4,¹>Ï/¼þýM;®Ú§®¯ÃóÆ°Õ ÖJø¥
¯tLÂ?$ødWÞc?FHÉ*â8J[P\¼%Ô¾ÚíÙ:H=î?êê÷³.d¥¬Ed
-¹Ââ[xS¨'ô¤6pÐB£Ððj_ö@øP
-¨,Ú"f8ürIØo[ö¼×hz]¿ÖRqSªjjѨ\*JezIêÂ)]ñ$ññ1³Mü¸W|ZüX$¶Db3+!¡uBººDÚÐ@éÂ@%¬n-{ÀMû"r?FNSî"
-àø[© ¡×BUVA$dAÛV¼sͱg÷êUA{ÄѤä#{ÙéÖ©W-é¼gþï·\ýÈûpøÄÜQ-qoØÉ¹zXÒ÷ß¿ìÚÎ¥U4ã{ø¥FJ[3½y¥q£añ9ÃвÉéM+eta:c ëQ³ò#yê ç
ð¤ðð¯_æ%ú¦æfN&òF¨ÎÐÌC¶Éººj8"&iFbD 6 6XÚ¸a·cå=²
4qClÍÏsüè,Ç-7d]Ü$n·;À8ðXxe]ÀÆ'q2àÞ¯³Uª@lBòÀ"Hc¿ÞPiã¡å-¾p&mãmØheÌfâLpSùµÄ%nz6Þ§+Ð)ö°±ì$ÞÉp$f2_ao.!G\
`HboÅï]'ø Ä1̼¡ê4ÁÅ ËPܼ«¡g}º4.-ês9Z¨\>óBH¥ÐF¦9'MËÕ
â*¶ãÙ/KòñYnÜïêÎ×Ráù!Á³òðFzÝàs·øtZ×*Ó¦`ÜçmÿuéwøpvM©u.4^¥õ»K/ßìãL£þüãw'in+YÔÈyPÓ÷úÄBðô¨Ì¢\ý¥ $§h1wQxôÙX
6õ75,O¼<y3ðä,å«H²V$Q4·èÀ¾·ÍÄ»,ág,ÏFq¨ÀãÙ,kZìÙàyÝòSHæSF§úhÆbµRÑh¬
oiæÃ/eµºÂ¼>æ[¢ÑfGõy
-iI¢ÌehË$ûZ>LLÔÒâé9à}ÓKy_WQgÛNâ±Çþ>ëafqXζðMÞmiëVñª½ªC*FeWk[ÄúÃï ý¨[O£sç>ïCU
-±ÊÁ³Â
-ì
-
v`Hî/©®¨d2r7£3èÕ㻤Â'ÂRºZ®^'È/+ñaÌaÙÃs7üô×·¨dsÿöÌÜYú½Ç ³6>U37í{ÿ·YQ(pCéïÜòÍ=Çf(¥ÖÝJgåBÑàyÙzëÉFòÝxÌ[~HäéÌzËø:gSºÆ½ÁÝ¡ÝáÇÑqtÌ&
±r`sè´2Ö¡5[,N©L/Ê|n`x1ïq'±NKai8äCLT ˤ,z
Ù°;LÏD-/ôËè6¤CRóLjF¾]Ê"̸´2ãR¡ÆLÚmÇ`Â¥ÛÌù¡¹&ñýug/.o!(i@;,'ÿ¥¥Ý!
-ÜÏkõ-bùã>mÞ 8ê\QpÔ¹!GÝs)I¼¡GBLëP´¦ÅsuôÁóz²-ªwù>wæ&håJ*"íhÕE>µÙ´Í7íÞ±µBçH^Gç¥Qø#¶ÛÏÿzßlÔømõÎki/*Mªú
-L·öÑÖig¿Zu/WkuNÚT¤[y}*dMKÌøÁãeãg¼Æp8½WYùyàð]±.mÈaÄìå=#^ÞàÕ¼¬ìóÙö
-5Sy_:(¡R /í'g
¨Kj`4 2sàÃÂ@að¨ÂÁÙ³Ðl¤Pã!
ÇT¬SQz`ëpÀB°øÀç_ at EDQ³J¥ÚØ´bÍíå¥uÏ_æùâq¾ÿ3Xúñ]o¯/ý§´ùÁ%§^ê»ï9½ó¯ûþ>×Û
-e¡s{×MÞ:9gÃVl}äø¯ûðºJáÆ,þàØû?Þó9«zð³Çwüؾ8X¬¡Öã~äqÃ`¼u¶McÞõ0{½¢¼Ü[¬T©%f»ý=è5¸Ü
-.¥+èhã`aRÔÍ
-µH¶`össÙL¹Í¼yùófÙvõ¸Q{ìWê³
à¤àà© |öBBä&0(qW®#ü-àôºÉÅ'»·¹ïp?âfÜî´wÓnâöÜÞXÅíe
lP¾/]ßk!tÄB ÁñàB6Í4ìì|ÝJQ«lV{\M+Uo1߬÷¨Ýu¾(ÏZ÷<¬#``i´$éñëx¾ÇÓïÊ6kkÔ]ÛVWð¢émjãCu2D/¡ZD@iôcºZ^Ãfj
PtHhy*»@µ 0787tgZdàt[pN8N;x¥JV¹A} 4½~Và5ù@M8`ekiÁfï 1OO¦)zV²HÇú'1¸¢g¹FkÎòà§5S f8¸Í~õ 3vnAÕÛ:{Qú{¸d¡Z° AèUðjò°(a ^¨U¸¸P_@ ³l
-Èê/Jkeñ»`ÕÔXlûûm
5nQgQS´R9eCâ}OÌ£Òª,"Ã+]u~ûï4])NÃY9
DÄ0Ëï§Ñ:¥Àã#z¬Ô6ö òcÏεa©KdSÐ,Ñv&X-o¸·X3ZÆ>¿ÙLmê¿iS§Y
=V¬&^;]*µ^¥R{üμ'ÄHTg~
B«U¬x^ x^{%oJ(K.3¿m$¨"tFUqÁ
&(4äö¤åpûÓª·T_¨hU7
-¨Lª¼H¹¿z©o~v`Øxض*õCC.yÅÊJ
-¸à¯ôÔzLW#r¤9/8׺*F§&ýháÞWÞV,ýuÇ=pÚÇXdÉÙ/ïÛÒÝíì\2~ßGK?è[Ç6¬*$ø¯sÛqíóV쿬9(¬y?Ã?É[X¨[,û-OXèö[CwÛïI<e{*ñ"sTwÔ~<!_n¿Æ~+¢E½¦ÝB×ñ¶<ã5ä-^ÎÐbµaa
-Ë"I\^ uH~§ÃÌär¯¤Iñ8Z$rm7L_X6&ã#XÖéèýþ@.§jƧLIÔßøYñ3â?¥Pögl¼É,ø`Çc3¶}É}BºØhµg$>OP kz§ÔÏjA÷±¸àæÇ~xzSly~é¨hùMþÈ5¢K2Ì,ç'×üÕÚ\Óù«ÃÏ/sç>:÷PGÐyî<Ð?ªnú¤¶ù»ð®;9ðb¿Ä4ÂʦDl±£ã«u$\>ÜE%AodÁK/çÒ Ô=lݹ)ØÖùF\¶ý&΢m½îÕO»Û¾ùX5ÑÖÙ³g;
-JúÓ«wdúy=øñ´µ%}K<±
-#½V½ºç`iÀD=r]»8J'®¬?iÖ|ø2B%ÀQ5øý
-c2õOè
xÒy¥YÇXÛÇlû,ÇrtÄó[Ç¿òý5µÌq«ã:pÂËj[PVN²UH;jhã 9«ÞÁã!GP'×:tß@;N½S§L.wVâõp_ݦ·ÛmxÜçrê].§ãìÁ@Àá°KkMQrØ1muYkÃ6«Óż|üÄJ(=ú©U82BßÙ(ôûôY!^¯Pk3nëVë#VÚú2µÕÁWïDq¼W¸xVqñJUÆU½«zAÒòZ¸ëZ«Ée²ºjåÍkÂì ÀNgbX{¡(»~²jQ¶¸F¤ÿoeÚßr0*¼%Ä4v3PËá
"«J6'rØcã;ÄpO®ârØGSu(ÁPÚµ
æpÇ*Îsc´§e?Û&]5ñ÷ÏÞúWý
-Ei¤Â¶8îöá§y\4áÖD¢¸æüã±ÞÙ®ûhÝ7IçO\$@ÿ:ú^³$@SOùÑ£Ch/ï÷³££Ùyâå«ä×(®uÞÊÞÍ8¢T=©{MG5*âN^&õïÖ
Ü´¡HqǵKÌ2DQig%Tõ
v\í}Sª³óc;2v^?`Çö¥á¥[ê;?$éeg#>ð{ Îu$Þâ%éJb¶
-)ëôôW#rr!Ñ£KýÈ?îÊÑý·\4ù£âîw»SWνødÝú7|àW7×Íþ¨èRûÍóÛBm9ûÒ~ôéõÛ=±ûü÷ÞÃÒëSÆÐ¯-C'
-ÎÊDA@ÜXAÌFFå£kãÃ[-¾âaÕÆ×fÛx#,fXÔl¦ìN¨²o(䢩ѣqQ£C£Æå
-H
Øý¶ºý#ü }<\ßWÄWðßÄ6¿Lãj
-\l}#º"Uê3Õ¨H4Ms<GqÏ·ºL®Vyí\Tf3C3Ì&{öBü«ZÝqæúÌ{FÝ<º®Ö
-ø©äNUêËU6ªF¹
-.ʸSuû®lùÆy󣮺-``%2.¶`¼G=â
ÔÓFåâMõã7a^Òï
-Ye*K¡vtÖ6^7ªÔQúÓÃ1Òo »S^£SKd"IýK£RO2ìºnTWWgÂö[ØT-³ëþJ4í/Àvw¦MáqG
-^
-hJB±,Ú ¾'øTðeæ¨öxPÕjÁ²eV©e6:LchE*µ(ì
-YfFï00pµªÑjÕáL%TR¥VÑ u¤ÃNXe$á%Ô?I(Ih
-¦|prpmP´Ö w4Äö:é6^©Ó8\ÞæÀbsÓ2¸sZpäÏ_dr×U+¸Cë¨ZÇPðÄÖñíà ñèSï$?â0²è"ú]|ÈKRyLxGé¢ê=ß°N»È¦lª`Rï¤ïºkÁÛÃ)k\ãÎ]¡[j
-s¶ÀçkÝ%c_T´çûEÌà_Æo,éC#F¯ö ÅH´%²®YÜ`
-è¥gZ£:Y9¢Ê"Ä,æEü=~;m at FÆL{¤^¹Oì(}8å+ø&ùøÖønðíñÝï{Ñ÷÷Wn
È#òüiO7íos´ygxW;xù¯Ñ_í}Úûá×ßú~ãçÞ´>m¨q0·¥ì)âo<×á>Þïó<^¯[®S8ä§HÙøñ^
-
ÓhÒ&¹Ôá
-&´ÎåÒ"J§Ê>c$l2²>4e°©?~GA¤ÝDqGtÛØXÂuà¸WÂuÛ/rAÈ!7VãuÆê»mFq2vT7úY¿ðníz/-_y1í
-qº¯xº§¿|ëæÒù{æoU°~|ðCÅÊié÷ÃùE¯k[Ý¿ôúZ&½qù7zK{nº£â@ ý Ùò%EÏ;æY´ô-Á&{AK×Õ<8ÆûhPª°fu
-
-H©0û,¥WÏò*M&˲YÍÊr¥YaQNE·h`%9S!;Æ4ÓÄØ 5AÓÃ`N¯7ð´3¡pHFNJ«N«"¬+ÅH ¦!\®ëDz³ÙåÄFAJµÚ^«
-áPPÏ(C8H
-S4áûj©ÇG*µÕB`^¤Z[-ԲɳK&b *øJäàG_È~¤G
Nc/ßVê¨óH[É-I/v6@ô¾[d4x"ë-°Uߪ÷bWzZ}M½Z>?Tj
-ÒÚsÃodL,]ÿbNéûø¨¼cuÝR÷L£»ãôZS¦É·úªtÔîÞµüA<Á.
-øLµ¢=ç#`QÉXy0È ã¶ÿ&Ö§YvÍò4ữ-=Ä\½ÈÂÝr×ÛJãéà5H1ædZ]oï× 'Á+hëÉdE<ó¨f´È¢ubQ5 Xupý
-
±¼ÀætäÒ(o÷^ ï?ï7¸zßÉÒöÏ/ììÁ£Ê¸}»}gðé¯^Tç)§\ÂýGÁýµ2Nû_îÏË5£5"Yáñ>><¹òûw#GjY
C`6z¯ì/!ÚÌýxÒË¥ÒK¿sõ<óÕQgî wou®0XlÔ ³QQCJUË,ë´èRëÂèûVQÔ²5ÇÙØæE¯´r]{"t$¦Ð UýéÆJÍR(öïVW¥ôßYÙɧMö5ú:Æfäí ¼²Jì6ÅbV?S(ÒZl1«Ý¥H)
-
-ZA¢¥¢5Z¬-Ò9^?´ôo´ÆzÐ Ìöðr[=0É¿ÀOùtª/ú¡]}´}±¬]¨ëLÖ7çɦí¼}²¶¤}(N7®¬«ëfv`æÁîÁ³Ýü·ñj
-ùZ¯'¥Z½AÞ^ÖÄiýVæ»ð.ýE¯ÕãÝtjÁ3§6_µâ±
-S_(iTía9üOW®SûÒHÇ[?½~§¿¡ôýU#üûþ'ÝIQ(0aç«_N$ï»´¸Ì¬
-P*=¸Î®b¿ î\¾AùÍ\õKnî¡ðÞÛ¢WÀcaÁgyá¨$ óóã`#ci´7z[-ãìÞéÔ,õ4ýÃÇ|çRÃJûJ×5Ü&ûõ®[ô{÷ïâ´ßï8b8åxÙi¨¥¥C´µN*3VÉëóJ~^VIòÊ¥>·;dHî!¹Cö1dÃ[²;ôcÿwr±OÞ´#i,LªðÓ$,Sï7}'Hÿ}Ç[×Vüþ¡_-=^Âîm$Ï7oß=s-¸öûûDW\ýáæß<çw½â¼áß·òCi½Õ»ð3Åo^?
-¢6¤Ìï<A2Ïk¸äÒ¸©¦û¸~½Í)í dºJú[@´òj]&×Ëdr¢°Tæ
-Ëe¬ù%CÀßrqÑÈ\²l«l¯L$ÛfÎË*Ê4Çë²2>ÊÈBÕpvì´ì-Ùû²/àHàw¯Ñ¶Èð¸d2Ì%wð-ÔÎ4ÈD(ã*XÔáÊ2+)%½~7GZï˪B&kBÛÊWNºÉ¶i,
-ÝPÛ"«âLð³ 2ò.)=¬¿ôÐý
æÿ%¿ß}mzêÀw|Ip(Öi4â+©n<¾ÏÖl§R*xW"øÔmÉGÞÚH×.ËXý\ 5úñ[ÏÿbËâãÀî)¿/úÈF=zÀûUy}¾¦½fnë*ÙUªÑkb7+ïvCGe'
-¿ÿ&¬µyìUgqXÓµB§Õ:½½W«ñzlVk* ¡\EiWJêêöÕ§hõÌFâÕðeýNô"6¡¤
-eC!9À7?Ed)W?äüáÒ ìù{K¯ÿ衾QÛ5g±ÁoWPyç6¸d×ÓÝ¿)}µõ®ÿçÆþ}ïêÑâ³®(Íèð_vOé)ýWJé\¸{\ÌÏ9B!ìØn,=ÓzËnêÅ#þPæLq\Ü i§E+=Ê{öJoU<(½[þô òô¤òÒ_åÓe>5~nbJÇËø1dA|-²ãÞà MfÆ(ÀÆÑ:1mSE
-¦YvP#²?;(§(¢ð¿±9(ªOguÄ_áÏ4øyô«³Ba b`J»á_;
-%t{<Y4_
-Õ_À
-M%·©
-¬Âi¯RQó°DT%5ü"Ëñp¬¤NP3nM@%E5©Ô4ÔLòLòN
-MMJÌwÍOlToööp=ú¹õwÅúbÚBbk.
-±B.xZé«à.xèd"¦Lö:é¢5zÒ«9b©Ræ²l°P"ìI°Ø!ÑSA*è
-8.§ÓLèÉÍét¦ÒúÓJ«U*_MZ_SVªTÂÏö¨Ôc¥*~Ø:¡@¡`Ð`Ðë¥R UCjVÒj§Í§à Õé}É©"µ³¯FÈð
-K$£A.0sÚø:ÁE )Å;«5ÕÁ?P»ù¢ì)Ã4 ª$h
-éÐÆÐÈ¥QÊÿ¢ áwͺ«É!DÞÁëP·¨¿
-$uLá"ØÇal¸Z2j¦W,ëPwÀ!£VK©bÇìÓpÑçÇøÓR¼OÚà^28+påà,³r¤¯±ÝÖ±oÐOÛôêf Ñt&mijiuÛ3ö8`â-þû¿ù±~C¤
ü^ÝÛ½j·¯Y iþRj
-?û«øòЯϬpë^Yõ7Ê
ó$R5ü#µf$¹äç»kÄylg
-ÁÒLåÑtæÏå·iGy¾ñ0±Ù°L¢E ¯%B;PTôcäcPùu¯ÖIß^G®ç5×B¨
-Æ¢_e6_¡È¯íý-ýq*_z©{ýRülùeÑLÔc@ÿ°<ËÌ´ÕÃõo£-{ày6¸Æ&èv\Ã-~ý.ÁñÛÔúA¦
ùZ\/J~.ÕÈ4r¹üuå2ÕÕ5êÕNv¶C·V·»Q?Â@ÁçoÆgLËÌ~K§uMi§ì_8þo{ÏÛÆyÝw<Z¢dÑd;-[÷Ù4Û(#YcÉì©ò¯X²k5nyo¦xÌÝQ
-Ó¤ÓfX´Ð¡ë-i
-sâ$¦©üc/ɰaÅþÈ2+ºuI:tHÃÖuË´÷Þ÷¢dÇ?ý3@¦ï¾wï{ï}ï÷wäAä¯~¨}¿À?ÜÒ¾5üxÛß
-ÕÞ~|ÚÎJ~óÀ=~6ó>Zý&àмQïômù½É&ºR«FÙ$aeèã
-½¬Yù®W°å/$\ÁÚp%û{O},äyOÂUì7Õj W¯8©þ¶W2Û÷kØ8~£>Áþª^ð*vºÖ.eËLí_KXa«ëKØÃ*êNKXe]ucö²Ûêð
-VSpk¨»"áJªû; ûØú W±ýõC®ö¯ÿW²ÝëzKß°[÷ ýêÖ½ áU,²¡4Q¼èõUvIØøý¯ üýFüÁèÿ
-/H|¾áÁ_ÂÿÁ>ÄoÜ,aÀoÜApÆwã C|$ô÷KâÛø°·ñC C|7m0ÄwS»!¾t C|7ï0Äwó¨!¾ß0Ä7p§!¾$ñݶFÂß? ¸}H|ë®üÚ𨽬#ì\þ {Y[øUWÞþ©½l{ø#kQ~óz üæ Ák?$aÄ×¢¯0ø§ù)×ý$ô?$ø6Ä·¨|KÁPNË^ A~ZÂHÿÁ~VÂHÿÁáÿEÂÿñ»WE9á·0â' nÁNyJÂÞ"ì#ÿ`¤`²+ò# #â[Côk$øÖ-S\ZJâÒ:
-=)Ç2Ì`ãLgq9{a$ø0³XWRq¶®lñ¬Þ$
-ðG
-Ö|¢±JÀâlvp¨ñg3¬2aUìÀ¸p¸FWJ=úrÐù9Ñzá|Ö§x£ÈgTtOJikè$rËuQ§Ðæ>Ê FºiÒj¢´®)+¦
rÔ%RÉI?ØdJmÌI¢w ÏÙ!òz2M6aîÆ(fIâ~)zYgc$´[¨WÔÃ&ïq²gõ%~,J/^£UqÇC¤oBÆ(Mt@¦Nrm²d\Ú0MºÆár]Âè$+A2±òÒ¤G~ýahÆ£XÝðC|7WqÊ;ôJËq¼,#¦IÈFYT;®'Ï8ð«T×8ÕQÔèµ òN¼E±whmYâ (K^3È/×Ï
Û¥L/«1¢¾~
-¸:~å>JKMÓ%v,uC.»Á ªKS´¦H¦)ëPøHà2Ä[ôªÈ¢)êÊS¥@_Ûrm»¡3¥[Z_Â7Wcº}9"¯þ"/
Ò²Ï/ö¸È¹E_dw<,$eÉv±æ1
]Àëe}åØª|SÖ³¹(EÌf)âpÈÒ̺$ÅQëڲߡuE>»¨~P[¬¸¢
-²RÄíS¯K"}tig©×
-IÓ4$i¼DÏËØLðõ.A+ä¤ÊûÉñº
-¡&àxh0SÊ{æºØ\9c-ê¡ Ê¯ì¢(%ëÔÓ2i ò_b[D ÙäÛb\#´ÿ»@ß
-÷à|E¨kgdDvV¢épv© ^xå°Q-ªNôG»´GFJÿ·+NS$=qa#P%ÃPõàØ÷<,VÏêïÌñ®è ìèýð:LØaægÕt,ì;Wï0E|²¬d¤s¥Î|s»ìB¬Le[Åî£|-®OÝwÙ¢>¢&Ëö0ªAdVZJ×IöTaç#r5¬Î)ÙÿǨ{rçë|g÷kÓrÇÅZ2Ëz`y4.³åZþ²¤]è1cQ'-ÖìÕë%d'±©ò³¥1&#S¾w^»/öØK®Î«W6erðN÷çw):íõ¥k¯Þ?!÷H±§ä®
Óâ{BÑ uÒ(C5e¹sÅ>>Q¶.öyZìÇb÷·ËÞ?4¨í²¼]¸/¹¾§RÔ5Ì%=}A^q¿t(ÿî
-=oÒZq%£üdÉ¡WyvOÊ.)ü/ª*#óc¡.ΡëY´dûÕ+î
âÎÎ)³Fì4qjzIì%þ^öYt/{ Þww(Å>p3Ñ/Ê5iÈýtñ¾Xwu
·®Ü˯UÇÅéK|=~KÚ.xùêâòþmL^kdÈÐ
½§(ß?õ2ñNe;¼7ì`øKÎípÕï;èWñð£lPR¶Ál;ÌtH¸ÞCt×l¼£À¥ßÚ^÷ÙwÆâ\ëïöÃá\Æ×ã'
-~ØJ[. ø~ËÎX¶îVgRñïÓ]ýD(Y©,b>¾öÝ»ÛZàðÞT7'®ÃaOasÒpøc·&õô«§ÌxQ~÷Y.¦»O¶KF#]Q¾ý°·-Çww\¼(æ
-µÈõpãö0&uû·Æ¯k3· Óq
-ÛHp3Í] =1Äé.ñáÃüèøxëé7R1²HIx˰õL2W2xOé ä5!0-|ÈÕÓ)#:ئc¥ùI3îZ6?¤Û #ícÑá¤é.¨²>2¸[ë¸i;.×3C:"9h0l<d¥`QÚv2zưù8¬04ãInº|ZwxÂpÌ´pð,OÆÉ9ÆýYÐ!ãcFÜ4¸6P:bÚ²S OZ Ç
-ÇϦH5·
-ò¡ÒP0mÂLë)Ö;|Å'!<NöR/Ü
-¶§@åúP²O(¥Ah!ÛÊN$!.ÜxÀ5Ò9eF m¡ªà¢)+5
ÏÚÀm£AgÐsÅx×,·OwÀ×Ê_iÈy©8x.ÁãàîlÜ¢¬Ç;c¸YråXJO»&ÄÙnÌq+àÐÆº/Hs͸ÃDz">zBÏ D×âhñ@ÜH¥Ðàäè2Ý,ͤhÚt|² 3Ak2ZÑLȬ#òd̲Î8¤Ð¤>¡?h¦
-Gd
m@¸paMXñ¬0õcYÂt2)=')ÃvM´5tÝLwkëôôtdR:2©Ót'S.þJpë¤3êbè m¬ÈNÞ$ã´ÂL$#Gìï8z=À
-ìï?2ÔÏ{ïï?ÜdØ_í¯¦Ú)ÂIÊxù%KV`2xÓ/ge3nMQ+)r NTa:VÉfp}Â6tX
-ut· Nõ¦²½«£sïlïjiëhk«ª:1ȶöö8wÆ:yç»vïÚí¯þª»n1âU«Tê>¨°åGfú
-?ª_L}®dÞïbê3enSÐÞ_ú=õ²ú¼:«^R/Þo íòC¥åJË*-?TZ~¨´üPiù¡ÒòC¥åJË*-?TZ~¨´üPiù¡Òÿ£J°×Ýʧ=©Ë?y±(²·ò Lgá]µÈþ'/èû»áʽ!_N¼¿.êpcË©<»ÚÍû©?ã'U¥O»rTY7ûÙ F_ý£þm]DíÝèÝïíñöz»¼Ñq.¢¼¥OSF)m¥8s#¾E´Ç¥èÔÓ7áÅÔiê»&ûA7â]LýyêîsÄôs¯ûyêTümÍüGÏýÙüh¹×øwiþMõòl´gÆpÆÂöQ1±1}¤wz=Ç8ÞÃR/3
-zÙsîÑ4 ¾T¸¸æ
-ûöIà.Ìîl¾Ó[αàð¨sê%èñÄ5»=ý¸w% û*SàP}Ä¿¢-tk«{׫³¬V-0Ç182p¼G(3ËÞã#8æáð²zõ\á'ßÐ^WQÎ(Oï²oûmÆ;³Â3ãQ=£=yüûme}aÃ8}#°±qÔ|Dqñ§ê×õ¸þü
öXÏfÁ-4nã 7qA½!ö½+à<ïz.¼¬ö¨[vÀBÿ:ÛÚ½¢>/Öíc/k=ÁÓ1üÛÂéü|6
Kùºz¿
-Ϋ׏»ïÁ/>;{äî(þðÈìÁÃÑU(â
-zWïÙhWtC÷î®nµ!¸¾´=Øô^QÏâ}¬§V[¡òÚg¥Ö«~1«Ùài@´Në¼Pé¸PáÙú<ÐW=ßÃßZ©~^ÛÝGf
-;b4lE§Ì8Hûé«MáX´ 5óÊ¡£Ñh¨9Ö[=ÿsu?Aÿ%a,Ý1N_Cq Úckw´%Ebt IIòC1/^|¡Gp$
-[b
-øe5c[CmÑèÖP¬ÖÿeOu¯
-5n>þ:,¥¨3øb!0,¢uj{+Ôg<<oxÞöxQ/¨o¨o«^¨PUMmU÷ªGÕQuÅêÞ]!¸£p~w<øwYpÞEW vÎ y`öÌ"´³fFÌ`}(jA-x>W^ ¥gc§ÂÚÅ£(¬Jñ0[¿ê¿¾Î×Ó»ÒóO
-MOkW-¬Éì¥PNûøíW±9RÐþsÛç|AûçÐWïÃÜí½v¸êY©ýSû{ÚOÚ¿¡ýmhΣ¼¢ýMè-íà_m'ÂC$äù&@ýÓí÷j¿zZû¶ýø6"ú8ó|ÏíQ0)xOËDÀÖ
-N|@WC Gc<BÁk´íÚÐymû[Ú]{µn
-ð¯h»·½§uhHØw6q ÉÀyíööóÚÎ+Ê_²Jåq8Â=ÊÊû+ÍÊñÊÁÊÊ®Ê;*[*·Vn©\ë«÷ÕúVùj|Õ>¯Âçõy|Ì·vnþÝ0þuèÚZ*¼xö\ëÁ³þxy}åרÁ¡}ùÎðà\åüñ|Wx0_uìSå[#Ê`þÍ8ãù
-Ì)Õw)¿"°OÉײÁá}
-@÷üÖÂOÍ)óÈñXc¾~ÿ)سǾÙãÈcßa·MímØ[WÝî}×8Ý'ÏeßqѰä;/6ç¿38t*ÿÜæ|ùÍ#ùCüô©K=_éï»äySû#^9Ð7R"zÈ ©d3¬ É »gì^A¦7q@²sL#2M9dfHwñ¼ÖßwQÓÆaçæ¼7#hDóAÍZöÑ|°¢[O$Û¶Iû6$¹¸u\ܶ¦ï^éÅôÃ4^éçÄôs0}/
-ùLÿ}7¢è7ö)ÇN]ô±}#ûOñ¶ÚÌ]u/ïy¤ñ5eúc¶2<¯ì˯ìc{÷6kMiýrEM¾pp ù[¾ÚøË¼Ð~9ÕÒÛÒSÎ8µ
-ЫåTÃWïÜSµ®E #Cgúó;ï!Ð7ÂúÍ>ø/þe³YÇq³øBCù=øÙ¡P~Ã}}#áþ³Ï½ýl0¿ö"See¾'L|ápV
+xÝz\T×¹ïZ{í=oæÃ
+~ÈjxvÃóLlÛ÷t¿ÖÀó6x¾µ/ÔíÛ?s<ÿ}î÷l÷òA(w<AO¿¯Sçìöp([v]Eè¦;èz8âßqx>9/úc¡>sTjV§7¤MfKj5Ý5#;'7/_´Î,*.U:{c.úÿðÏÇ
øQ|
+èvò¬À;Þ´7àBô
+¬ÈTÐ Eµùhê5 Þtµ+Î7Àx7óð½=L^!w±÷¸aînqà#ð|z=
¢ÑÓè$º`ö\ç¡Ã¸¸¾åøÖá*ÔE^A íô0ú1¸óaðcGÂ9ô:~. çÑø<'¼¶`ÌUVYÕ
`Y]Akq*|>þç%ÈCx%zFÕÃâ^à7²×í°ã·»;ÎóñqôÊ
+òîBP¬JE¯
|#ú
+®\dh¿IëOöeDz-ÕiPÙf$¡Q~1)¶'aRªÖ¸õÿáõ?yýìs¾2
+7W1»¡³Sú
+ó6òÖÇ:º¼ÿCïýêÛ|gû=/ÞÚ»iÕ5ǽ{ö¶òK®¢UZÄZüßû^a!F«W-Z\Z|dïSùMbaprn+S0jLdYðA9Ô °ØÌ©F+
+§p]t*1®Ä¨XÉ"{ïv5´ÿûøãÒïppXúÑùK«jÎó×ßñw+øÃ
+þС"´ÛU®U¡¬ü£A¥G½ª^K>Ô½ÞBð@Æn*ÌÉ $¦Y>±YK!\^¦ðRu.(>0_ªóúÁ5wA^E~
¸À>ÀEÒ#¶½h/Þ«Û¾Ë6Fñ¨vTwÔz4}4}Ô61iëÄñ
+Xß9¸f ½YM±yØÓâÅh¢hktª©h_c¾äL¥p§S¸iy³nt÷6îIoHïaó±ïÿ~Y9ÿ£®óã»ÈóM?{è|Ëà ·ðVW÷ê0Ô
\VWåâ¶øÂd][äò¨ø6¾\z³¾©ùsÒ¸0dÓ7p¯OrÇ?¸÷ÎüÆc=¿Dr½e®L£EK±±k½HÅVØiR-IR[ÖO:ä?°}bÊ:ñ0¡gAü°ÕJ]V£huÈJd[AÒ§CåOËÏYäÎÒMmÄIFfð;*vîÜ_&½æ<>¸8ºÌq8jn*îNóÝÈÍaõ´â92õ(ºÒTþtä7íKdjm©eÄf(Ídg\/Ì*ÑÑ
Íh¾ºÂÄùÛ¶6mÛ6qgýùÎÞ¹ôgérà<òú`^"½ ½¯ð¹§æ_3Óu¹ Õiyèô:sz½ZlµÀ#02éh
+ÔkzV#7Az5*9ÆÜbÈpÈ.VÍÕfò&¿å!7¿ãN˪Ãù(çsùd6[£Ï7âbU¦ÔP
oPmÖvëÑ6õfȰíUQ³Ïð
+¯¦¼j|5ýÕl¡3qQ§ÛY _HähãzÎnÞ^Çyÿø§Mhñ¡¯ùÆ6ÀEþmú
³gã¹8§â¤_IïþBõR
+Þ¾loï«PÀU¤ p0Oøã áb
E@óH9$C®&Ê5ÕàÇõ£í§, oPGí¤_§Òw´NýlÌïÂ¥ÿù¿ñ£QðÌÙDs@êàWÂY¯G³PkÖ,C®¶¸hý¹iûSáà7ᾦûrK¡§28SU6±´£Å;Ì¿_7VUÓZ+³Ê8`Z£99æj¥F:7lÙ²¡3þ*ýçSm'>wÇÖ9÷ö<÷»ß=³qd.â<qêO=!}Gúëfçà2ÇÀC-MØ1ÜpoëÖ`˯
+ºj ²ZLF2¥R`bL%¤XQ^kFzaÜgÔ4S: 7ÍÓ©Ö-(
+kê5@ß´q i%ñ\ v.Å{ûÉlýËàz÷´/ÀèoxÁÐáûÞZZÌ×@|Åq.áÈì~ë2ò[UÜV¤p:¬óøbZ÷+;IÒí¼¦ÄGoqÖ?s§þ<Þ!ÇÉ;p§ïz®q^
+âT¼²éìËÀàòâ¬BÓyç*¢/áÜÄ9n}~» ÖÂí«
]7ÙÒ¹k *aw|!%
+®mEi0Áëòvåìáº]ÚPJXUfE3ÍÚY3mùf[.)¸nÃÜmv5G3ç'·ù6Q¼=¹*ÁÒ[1ÿvïÏ}·mÜi»{Ç©ãÒߤ¿Þòo}³¯[K#7Ü~æðK,/~[»|mËMkæU,ûõÑß½U¹
+ÙÂ$e!dk´ÇµP¾*ç3õ¸\º5õ¸U˵Kÿ.ý.eíÕ57yä#ð5gæL|/Þð½3gJ§×HW'Æ¥«5Ëå¸m
ºpÔ±t¿«$3Õ¤å!²Uêt_$û²fÕÈbÊɬ±Ä¤©V-1U[
+ÍgWÔ¹WÔ»?×ñdA®Eë
+¢JTQ+êD}yz¹<£<³<«<§<·<¯<©f©v©n©~©a©eiêÒ´¥Ö¥éÙìndËÂ
ñ³=i0_>u¹Çí=7ßz¯ØéõçYNgñ{ç²uuaòÞºJcû¸W·»×Þ>1{õöµîíóø±e«×í`{ĵ¹ràÀJ*CÂWPa5WÌç«Q®ÅÖ[-r¨Dÿ"}CÜi49¬U¥ã=xêfgx żôcéVi\8÷Ñü+sø%½
+úûAr×ãÞÎ}ØÏøÏÅO¹·(ÿ';þe¦Ì.7òô&½ãK¤îø)Ó]9Z¤f8¢tÃä>s4UEô¼ÙLÚT¸o\t±ß&å`4Ó䯪(«§½Rþ¥J%»øÖ'þ]{·«þzõÅã¯ÞMÜç_ÂkÙ´ü4
+g¦ÂLÚÔx
+*×I@Ç"K!c¥ã-Þÿ£Ò>¼ñ2pÕ¥1þ¥ñ¥o`5~uÒ·¤¾¿g±Ø(tY
+c¯Vÿxé©s|ezÚdLXN!hÀJÇ÷àRþ5ÈêññùÒ8æÉ+ÔÙ|Iü÷mÜ ¤JÀ:ifåYÙ·IÿÂ/¾"=Áü¼ r§t³@Üڴ޼¦{Sµ&}>gB¹©äqÊ i¿Í2svÛK">_üEº,ýí¯\ yt\Þ±#L>o~!]ÄVù
+¿Ë¢R
+$ÜаãpQ¢Qá7ëY×ßjÒ´Ù\>WÊ-áhÍßÃíäS?¦{Vý¬ÎXE\JÊÉB\¥d7Þ¿DÉíNíAü
+r¿æ_´ãï#Úïãgɧ´3 ÖÒó¨ãÒ!Èm´sÑ¢uiÐwÚá
ÄR¸o|üû¸K:ü§Q -Ü0ßQîÀGnGû5pët¸2 öh¦Æ0ߣ\:ã!xyÑ¢ÔÙ"»ÈÓ~¡<úâÐ}÷IñW!ëMpéz)(ýSº¹kh¨ëßüã¿xMÆ}!È==£=àZ&ÀÙÃ^
+PI8L
+:(pp±
+ZyU92¨ÌåÊøÄqZ¯f~IÕò¼ÓAPkµz¸©U´çèÅJ˺ø!i>$ÿÍÒq|Xº¯}ê¿qâ§1¬p+¹LéqÜv´ìÚ#¼ÎòYD7¹ff!¿NëOõb¿ng~fÑk82l)'OL©¹vÞ³4Ô,Ur\51ÛiK·ªÔ¬E´?4v`ËÖ½ccáÛ<A)ÿð£û¿û=¨ÓoHùÜQiùÆÁ¡MÜré
+ÚþôçI±üÉ÷8;èz|ÏAð|ßu#
+õÜ"µB¶.So¾¼ê¤¦
+"qÍzèt¬+R1~1©}¦:#éb]®Wpê
+a\Ît|%®æªÕ(¾Û¹Søgÿ`b§w,/οgHÏá
+ÒÀzºL|l¹2o»÷sÕçî|[¼Í´øo(_Ãþ òÂýpò/LÒZþ580ÒLþÑ !u¿üg¨éâ_C~4Fá½
+ù{
ÐèQø>QÐt
+ô
+ãaüÚ
Þsè×ÃÊ1¸<¶à¹°{ìymªt2d;õü 0:þgâü7ór¿%9¤|¼Ìëø/ò'à>Û¯S*³Ê©r«~¦6«ïUÿB£Y¬¹SsBóÍ´HkÓ¶jïÑÖþZªû²îçújýAJ±¨BìÊQaF.
+DkP¡TëQµa2NI+6ìVÆFäÏÿnm(< ôúcâ¬îRÑYQ1_ìbÑXÄçéw
+Áî2±¦¯Ol¥TQ±ÕõE¶ú¼eº:ß&ÏÚ±Ûï öú¢¢'âA1<ÐÕ轡~O §ió£âêP0´,Ôç>'~âäZ_$Egs¾L@×éòܤ==¡ èmý±X¸º¼Üó[Ê¢¡H·¯'éõ}±åjI-MX(Îú|b¯/4XZ&~ÊtºÉÍ ¡G9'ÔͽîN÷Ïc.N
+º
+b,$zCb
+¡®önPRÆü>qOww¨?ä æî
+Ô ÷L±3¸ý¡ïf±¡°¯ÇÊd¥¦®ö{(ÿþ7Ð æéAèÁ
+25zûÂþ(ÝD#ÔÓ
+L¢tG\ètIrÄyeÀ<}I¦1QöÅuä*ûÄÀP">ú¿^-D)Ô7ññAÜùdCoT,Häb_hê0ØÀ;JÎtù (×ð5bk(PÌ·-Y#zÂaH1OW.Èöçiñ{b¢ß¾àT\@Üd{Å WQ¸`j])-¼g£P!³ë¨£<b /q°§{³§\z¯=°¦¢*úúz¨R+ëÅåÍMn±y¹ûÖz±¡Mlim^ÛPW_'Ô´ÁsC¼¥Á½²¹Ý-EkM{ؼ\¬iZ'®jhªsõ-õmmbs«Ø°º¥±¡æjÛëVË`_S³[llXÝà¦îf¶UaÕPßF®o] 5ËÜëâòwå¹Ö-5îÚöÆV±¥½µ¥¹xÔÛ¦¦å ¥~u=j[Öµ6¬XévÀ&7L:DwkM]ýêÖUªa3Ü*22Ðxõkéæ¶5â²w»µ¾f5¥¥è¬hj^M1joª«q747ËêÁeõ²n`JmcMÃjXW³ºfE}Û¤J¦3 ݰ¢¾©¾µ¦Ñ!¶µÔ×6ÐàØÐZ_ëf= ÑÈÔmnj«_Ó@YYÏD5ð¯iÆÌos)ws«;¡Ê-
+mõ±¦µ¡ª°¼µÔ¥þÔÆvÀ:¯IÑúÎ}<:îV¬«¯imTÑBtÕoëö
c4¶äË#+¥rýt°¨
+½¹¦¬LÔ]·_+l Fm+ûÃåJ¡DµÐÑ
+xÍQPhÐÄ yµyP?rÀl
+}jP¼D¸¼ÄyEÙ¾}°g+|zRê`´ 8¬E@Ñ
+´àÒË(ESþ"p Âghºo
+ôe@ï âc{#»2àá=˸űûôã>¤kÔ?>æghËg)óèÿ?Që®)YÆÐ£d?:@îQéÿq~m´'m((lÝÃ|ÜÏPÝs!ðì§éB-kaüú·ÉhyûÙO±«I ²ó2>=lÕ&{X&Ó+Ä4²ýa%âe !àS<`Q!ÛÒ çcZLqPu³ +Üã(µ¬»I>?r$EIóÝëeßQ¦W7ìñ(öÉ1Ø
+QÙÏ¸ÄØJõ)q<+¡ã¤ûTÿäçTâ$&t&!2ÀôÔÆË,±XëÕ[Ëød %ºA³ÆEÆdÅå|LA¦Í%[ç²¶CGwè¸ù3îëÉüÂnÇ'ØáHØYÎêÈ8Ëù ó(¨Nõþõ#'kNDtlZÔMZ4ÈðèÿLâÙÐÃjfP±Ð$ÑË>©û¦HlnÆO¦Iã>¥JÆ=ÔÍd{ÆEÓjne8XeôAr-Dàã1%¢Shã¹2Xr
+HÞ'2=§ºu;k2r%÷\Ç!vÆïûÙ÷dýø,¾åavnyʦ u½½¡þý,û,ãêSª<#kJ1õ&ù<9êâç"ã5
+®¯ÉTyÓq¹Åï}l_à:U=¢T Ó¯
+ßøL4ñ¼~øzçâAfí/¸Æ¹X°{úJ?u¢MÎÆiçLËûP®J>Ä=±V×@̶1JFá%bVY}Éþu¾~ÆøY¥ÙwTÑÑÇ"êãE¶îZ5®0ª©_U1 ¹dþ³9Uú_Q±$uñ¢D_¢(;¦r³Þ½ÇäsQîϧ÷ÿ7*Ö'[Õ¥äHL9{HDõLN3j'*§Üèè'[ÙZÌÐϵÂÊZxªÙ:æ¶B×X6Þcʱµ3^2Vø¤¼×Áå-²gú´
+èÝ[:zàÖÆ([ïÕ0Ûßõ
+ÝQ3íðLÇ+íFeyM°ËÍrȺa~RêTĸf«á©ø¯TVkwãGõw0¤è¸)¡çrEÓåLyÖFìζÃwе1<kͲ¶MÌå°.ÛRÏ4=!kTß- R¬
+Ù5ÊgmfÞoR¼[ðu3²£rËÅzFUÃ|Ý@a9ËßÕæíI÷c»Í ͦâÏ£8Ýg©2¯¸ì©¬cñÔ¨hØ@ãÓùʵ«Îµnvß%êöÔ;¹{ìJûOGRMîä*¼ÑöO£ë³|fMÞy{¸k\ñ[²ÜÓOv¿ñîC®ÝòÝ(¹ûõ²>]D>?BÎdNéòm°Q$ß÷¢L®lÙ²c:/¹¿ô°nJ^ÍëPÓoavÞËRÙ8¦t&Ô¾
Î~Ú82íVõi>ÛòiøG¿ÃÊ*À¦ýdÂ7â÷³IL(òo·ú§y}2ú(·j4½¥ô&iîU<.ÿ¦ÊÔýoü~á½ÞåLG/ëüÊX¹©%û?ìçêôÿ~üç4·Ó{F"gΧÎ\!ÿv
<ùÄ
+áÉ3ääüëyÜI¾ï%'GÈc¦ m&¦iä»9þáøòrìÛ÷Ç$rì9þÛG× ß¾|{'ôbáè:rÔÅ?RLÈ·äH:ùæè
+áùæé«¯¹®ò£ß¨FWoÔÃ_w
+7¯;ÉCù+äÐò5<J("#ä+ù²DîÈAûÌÂðvrï«p¯¸Ç,°{ÌdO°ßI¾d ûööIdïNaï²w'¿çEÂN²Çűì¾Û$ìÎ"wÈ]#äÙüv9ÉÎiÂN/ÙFî!Û½ä6r;p¼ÝI>w¡L²
+&¶yÉ D¶J$M¢)$²¥LHdK Ãjx; e`ÿ!(þ¾N¡ÿéßÉ÷¾NÒçâ7o&àaÓp]-"~Øã÷^øêõÔG|fâH·Dº$âÙN6JäV/Ùð9«°A"³õN²nnª°ÎF:lä*Ü"µNÒ.w^pI´®± #dMYXc#-fÒ,¦Õ^¡i¬öF¬ÈÍ
+iÂÍ#¤!¬¼BV\!Ë·úº4¡~;©K#µ¤ÆH:ÉM²d±QX"Å7ê
ÅFr£TWeÕ#¤j^¨Ê U;ùEz²ÈÅ/¼!SX¸Ü
+«ÈùVaA&o%ÎyÓKæÁò¼LRQé² u¤<ÁTYë°sSÉÜÓË¥åsLÃB§9Osf
9&2ç4~f«tÂl#}ïtÝ®"³L¤d))Ï$EðU´ÌhffB+)ȱ
+Nböóâmòg<øÊH.ä:IdÏH²áæef¤²NYe!YT§[øL+ÉXElÀÎ6BÒëBó´+$ÕI,f§`¹B̰jv±C0m'Fx2v`Gz`È#zÑÁ¼Fm4&¢-T
jQSµ¼JÐ
+*QÆ®S¼ %Âi\Y<?B"<ø$xà<R >½»à9ÿOÿ ÿFÙ¹ÿé8Ú
endstream
endobj
-579 0 obj
-23079
+556 0 obj
+9593
endobj
-580 0 obj
-<</Type/FontDescriptor/FontName/OAAAAA+TimesNewRomanPS-ItalicMT
-/Flags 68
-/FontBBox[-497 -306 1119 1023]/ItalicAngle -30
-/Ascent 891
-/Descent -216
-/CapHeight 1023
+557 0 obj
+<</Type/FontDescriptor/FontName/NAAAAA+DejaVuSansMono-Bold
+/Flags 5
+/FontBBox[-446 -394 730 1051]/ItalicAngle 0
+/Ascent 928
+/Descent -235
+/CapHeight 1051
/StemV 80
-/FontFile2 578 0 R>>
+/FontFile2 555 0 R>>
endobj
-581 0 obj
-<</Length 441/Filter/FlateDecode>>
+558 0 obj
+<</Length 419/Filter/FlateDecode>>
stream
-x]ÍÚ0F÷y
-/§Qâ'f$AbÑéÄ0'2aÁÛ׿´º :¶ïõ=6×ùö°;øaα;ºYßwï¡sêä.Ï´¨~èæe¾Ýµ²<æ·Ù]þ<®×Yþ3®ÝæðPO~<¹/Yþ=ô.þ¢~mq|¼OÓ§»:?«"kÕ»sÜçk;}k¯.OYÏ>.óã9¦üxLNIkªtcïnSÛ¹ÐúËÖEѨõ~ßdÎ÷ÿSNçî£
-1TÇТ¨ßÈBÞËÄÖMâJÀçKpÍø
-lɼ"¿_È[ð&q¹¿rÏ´Ï1+ðû§Zoß÷dYóþ¶
-MÿµôâgMÁÙ5ý-4ýMÊ¥¿¿¦¿¤Z?Ϋéok0ýkQ/þ8¦¿A]¡¿¿ÐßÀMûÇ>Bþµþþ<e¹ÿW0ýgúîDèoqB7¡¿Áÿ.ô7)þ&ÅÓ¿D|Iÿʦ[: ·ð§
Uw!¶oz0©oѱwßÔ4NÈJ¿ß)8Û©
+x]Ínâ0
÷y
+/;*±ã"¡HÄb~TÚa"'2aÁÛÏ=Vêô9¾ÇþntoöÛ½æüO»Õið}p×ñ:§î<øLÕÝVòß]Ú)Ëcöp¿Îî²÷§qµÊò׸wÃ]=¬ûñè~dùïл0ø³zxßâúp¦wq~VEÖ4ªw§xÎÏvúÕ^\.©Ç}·ùþ#_o÷É)#kMnìÝuj;ZvÙª(µÚíÌùþÛ9º¿m¥:E]4
+¹Â¶ä
+¸"/Ár ®~"[ð5¼&/ÀÏäðüÞ2+÷¾ðù¼ãó:².Køhú/à¬?Î×ô7èK'ÉÒ¿¿¦¹Óßà^Mÿ
+½hú[áä/õô·ð×ÉýjúWÂô·ð×ô·ð4ÉYC#LzüqIþk0ý-Î7ô·èÅпä/w%9þÞ¡wnèoÑ»¡¿Õ2<iJ0Fóÿ㩺[q4åcÄ4Þ}~/Ó8!%¿_mÔÇ
endstream
endobj
-582 0 obj
-<</Type/Font/Subtype/TrueType/BaseFont/OAAAAA+TimesNewRomanPS-ItalicMT
+559 0 obj
+<</Type/Font/Subtype/TrueType/BaseFont/NAAAAA+DejaVuSansMono-Bold
/FirstChar 0
-/LastChar 48
-/Widths[777 500 500 277 610 389 443 500 277 277 333 500 500 389 722 500
-333 500 443 500 443 500 250 443 722 556 250 722 443 277 500 610
-833 666 277 610 610 610 556 443 333 333 666 610 722 333 722 500
-833 ]
-/FontDescriptor 580 0 R
-/ToUnicode 581 0 R
+/LastChar 45
+/Widths[602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602
+602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602
+602 602 602 602 602 602 602 602 602 602 602 602 602 602 ]
+/FontDescriptor 557 0 R
+/ToUnicode 558 0 R
>>
endobj
-583 0 obj
-<</Length 584 0 R/Filter/FlateDecode/Length1 45340>>
+560 0 obj
+<</Length 561 0 R/Filter/FlateDecode/Length1 1282 /Length2 77308 /Length3 521>>
stream
-xܼyÕµ?~ï¥÷®ê}ïªîêefz¥gf
-e`´,²¸Ì TEP#h0O4®ÑF@ÐD5ñãå«$!FM&1/HLdºçV÷ $ïû~¿¿Ó3w©ºu»êsÏù¥æ5×.Cf´1H]rÅ⡯?vßm¡7Âö%k¯Mïó×Cû8Bzýò¡Ë®xë¸!ÃGq}]¾~ùÿ»;jÿ+-^zbÎeB+ÁM+àÀõÅõ:Vé¡[qÅ5×ýÞõ£w¡þû_µdñ½í[Zmþ5W,¾n¨Ññ«7C_¾rñËò/xÇ ¿¡®ºúQ¬ÐSéù¡5Ë&¿|"ý¥Ù
c>ôæÃ<íåxÞ`4-VA´ÙNÛãõùÁPX#Q%O$«ªkRéL6W[WßoljnAÿùá¾$nöd¾~'àï£âÒin5R«JÇ,V¬üWù£-(>B;Ѩ~LÔ³hb±ùÁh&qتf¢äB3Ðï±íEuèÜnÄq4=¢h6r£Éè.´O+}nDoáè)¸ú ¬¢$
ûJ ¹h ô|Bíhú&¶" αRzf¸mEÑ;¨æ£û¸=0Ë
-º²ôZ~çãKA4]¾îC¡ï¡ø6|åJP#ºÁ:ìÀUÌM¥'P÷áÙÒ+¥cHñÁ¬")¶·ôg¤¢X\Z»Áàs%zD¿Æ^ÜÈt#+ÊÃwÐõh/S÷Øng;7â½µô<M3Z6¡ãø:|D¸÷¸OK/wº
-=^B/£?Âl½ø|æbWi6ð«¥P|Ót+ú.¬Üàó
-pO_Âïãß0W2ÂÌ£1t
-}«ðJüUÒEnâêÇo,=ð*Ì1].GOãVñÅpídù*ÙÄd~ÍV±)µ^F<ÊÁØÐwà¹~ÞBï½zq?~|ÙÏÝZÚ÷C+à)¶ GÑ!ô氱˸7ÃmÄGðoH(ds)³»³´¾ô5^) epå*t3º=¢ß¢?¢1ì+speÀ_ÃÛñ+ä(s³ÙɪìNö)öìiÎÆý øÓâqXu:O-êO-G`Gáó2ú%fp
-Nâ4<ÝEx^·á{ð#øø7ø>M1(|jHAÈÈiÆÈ(Ìdæ:fó3æìz®>OqÏrò'tqý§w¿_DÅÅÅÝ¥FàE8Ï{.¦
-´C.}X|fX
ZP¾ÏGSáL
-®;dZZPºäRè'xv¡Azyawrâ<
-¬¹=Ö`>Pòjå&t'ì§GAü}E¼
-|³;AÎ{ú5ú$GI»¯4nÇSzKÐßé^ohBøÔ[:0MeÞD¿G1ЮS`>×-Þ°¢jå~ JgZÈJæ{Ø
-ÚÐ
-\u>höIxîBçG.<5§¡VбÑ
-õuµ¹l&ª©®J&â1%¥p(ðû¼·Ëé°ÛDÁj1½çX`îQzÉ#E#lBéëËо²,>ëÀ¢õ;fD^¤
-Ï©ÂÈåÿ2R-TÏÄ¢Ü:2i¹GGþkª"âùsçAûkSAydLk÷kíZÛíH.{¼+¦Ê#xÜ3Ò»vŶESaºgLÆn¥{1FÏMÐ4AkÄ£==XkOOÛ3é-pS#~ejÏOJï`÷,^:20w^ÏÔ@$2Iàî%Ê¥#H2"¤´!¨[û¾{D§}¼>
-ºC~&}dÛ£"ºtQʼTYºxÁ¼fñ ý[
-¾wêgà ï]ÜÞ=oëÙg̶ïJv·mÛ*ì;ïì³ZÂp-÷.ÚÖ_}',âÌódø6rËà¼||¥L>Uùù)=ôÈ¢UòA¢¬Ø¶jÆ¿m}e}d߯*GþyÛùóÈHW@\<5ømûÊúý>Uö{&~F´ö«Pi-g79§µ´á´5ó+gVÓ;R¦CÈKd¸y
-<S-µ mKZ`üb¸jd)Pdå¡{Ñ6±§×pqQ·}±?{dqå?C´Iùä«ÁùöH*5RSCYD×
-4
{ìÔúôÚQò 2$ÊPÁò¡XÛÅm9XþHøQ]
-Ísçû2º4°©¹ÔàYDÏ8ãºÙ<qæÌåàäMãÑ'Îü
-¢Ûѳ¢m»ÿÓËÊçg§Ì;ܳmQemgN¯|¾å̹JkÄÑ= Jí,0å3igyÃ/¯1õÒQ¸R;åÞqQ_¹4F"ÿ/-}J¯Òª//«ÜæH[êÜ~û9ýsnϼfdæùó·m3s®$жm½Ü»mѶţ¥Í*²¨l;h%¹m¨gÑEGKïôÞ9±·eÀî¡X>ËthÊ_æu£^u }AFû2F>=ϽLðdd
-õÍMÍM¶|"¡(Õñ:Þesº=îú¦¦fÎÒðŬL{Ìo5¹»[3ävh&¯â[4|ù9üëb,î²F½ËëWäñrûôVìGö
-§úÇR)à±®±À(0âß®«í^¯máPÜëñy´KaäwºÃ8l±ÇJ¥p*UºRh¸q£¾©ÙÃóJ4hÌÛêݺ|" s¹ÂxÉ0¿gqÇ¥-ÑY£ë¾pü;_ÿé¸KÉGÚñg/?¯û"÷î÷Üøâ'ØõñÃ]'Ùw+°ú½Ì¯:µhXê¨sã¢IèJÇ·nËÜSý,{Ȱ¯ú`öÓØgSÆC#ßʷ˳9}ܯ6TK-Rt§þÝÇ3wԾإÚ+"¦MsvV[ræNº^~XÀNÕÞÚ©&ùN5,Aáòæk;1=½ßîÍw2¬êr:)Ù¡æ]fs(G5WgF jU©ÛÓõ$BBF>{U#ÜÜûú¼m£¥cª(fiÃmõÞ5:×H:ÓaØÝ¼Z¢ÂEP]¹)X"M!Sú""=(jE,HÄQS|-LEòXÈKyW#T~GÓjUu>*ñ¼¾*½=ͤ¥Iz]ËTJNtA-3*åxaøtxbL;J£c<Õa³·æÆì©ÜXJã£h
?\©éU۵ðOÝäiÜå]NwCs½v@GÀMÍå
-õºòú¦Æ|2ÁP9ÓKoáöýuïU/Îà×d&5wþçÏæ¯¸àÆ'¾zl~Ï%7ºúÖëf´
-ÌiêÈÈ×.´®ýö
-+®¬«jj_zÏy\{u,K²ê-Ü©«»¨6;ݧ®é¹©¶nÏÊÛßè¼vôÞ«®|pÿäÚ/þjÎÑí³
Ý$ÃÒß÷÷êPiW]¼(¶²²ØZ¯vLÍßÑxnw#£qÏâ[ñWueîx.óÃÌ{w3ï5~14êzt33<ÓçyëïE»ÅñA½¹A7wÞÏ~3ó@::¸u®ñìtíŶ½wõîÎkÚ>=qÙ]¤~Ë+Ö¿´ãú= æTº*§ÒÕ
-O5<ßÀ°
-únhøZÃ
-ÿÙð½4ü±ÓPnhwê#úeúkõ,Ñ·ëgé7èo×?¨LÿºþzIÐé§]Ïx- )3V/ϵ÷ú]¨Ë¯ZÊ^É»Ð{÷Aï^ï^ÝÞ?yO{¯Wµy/tÄ$¤¥t.ÝfÓS«»
¸'ñOʺ/X*¢Fñóª¨vnî$jç¢NÒù»ô骪ºJH¡f±4×s}¯â>åH-§rÜ"å|GqÝ-D£2løäpê¥X>Y(¬5R8u¢
-ÒeCG6¦9Ä %Q(ZØö0iâPìHn¼¶Á*A>±8åzàôx#Õck»¡|6
-õdúS·
-¬Åµjr?ÞÞuÁ7¯¼e·ÇjtZüpýê©óëÛ_¦~Û®sV?õõKV5Wì^ªªëÕÐwsïð]Å{Õ÷Îèy/n6·©9«@ݤÙcDtD
-Ú7Û<]ìxÄñH887Å$~ÿù@Ç$6sL¡¡º¸ç¨¬jÌ&¦0U÷µ5Òj&×jYÑjUqxò#&¼ÝI4ÓFɾÇ>bgrö.ûvûûq;g§ãëòyZÌdó¶ÙG at v¥R
áSMú8§.=.ÔÕb8)4pE+¨!Ù÷g»ºÎ°3;
õÅÚ%Íl,F¢%Ìë6³qB¥ßp»àé#xxÝ-}¾ÏÒJ+u¹U1
- ¶>
-È!O4JÚBº¨bCîY
- É¡ô`!êDØ ÓQd¬<½^§CÄãÖLª¬/´`Ë
-
-VD[Uð@
-?«»·é. at .Vz³K-ýa?úû¬.¬6Î Æ6ò:@vVâ²)z
+x¸steo5ÛvNlÛ¶mçĶÍJŬضím£mT[¿·ûí¾ýõwÿ¹ãqö~æ\ÏÜkÍ=÷c
+e5sGS ¤£#3/@ÑÚÞÔÝUÍÄAAhéørÂQP¨[»ÙÿG¡ tqµvtàýwÐÄí/ nâö·\ÝÊ ân
+kgw øÿ
àþ³º8YyY@g
+
`nmæ0ZZ;Àý·ú_hñk7k/3ã_Ìÿ|þëÌàï7wt°óþïrE{ à
+ý_´¨¨£À
ÀÀÊÍ`afeðp°üÿ§Ôðoþ
*XÿgÌÿ-)ã`áàù9þø³
+9 ø÷_Ù3¹7õUn
+ËÊyÓOÂ\$=§
+)q'!WÃ÷SÖÃfz'þÝ©GÔHØìpdî"2ª¨tW£ÌÂ_CuöxHßþÌ)>6Áü
+M&ËIê¾Ï(°O#EWügÒø2ó
+Õn¸Â|ñ-
+×1ýY/uX!AP=íW¦|½"¯qx¨"M:ú¬utCi»Åjà²8ÎQîÛÊWÅBñ°ÚÕcë®ÜƸöqÿT>X[cÌ÷5c=í{r
+ïW3Öìo7³X¦lèµ<àc¸Kª?ÔÏùDOÎú#n)gg+P7±Çd¨ÒÛÅ/gÎQwô4ÊIçZZ~]Á¸Øzu º´é×ÈÎÒ/Ç×`h³VÔõY÷"-®y¤ ^n²¯º°{ã?\}PúJßH mg
+ȹhZТFH³!qMÐ=)ÅèÌ]Òo\r_tòäË÷*"PêÓ ÏÁ¿±±3A:Ði01{!FuÒIta}þ5¥DÏ]wyËÿfº8r¥írH´eU;ÔO¦K7TÖZØí;X
+%nÏÈãG¹°cgU¦Å¯)5ïcïÜôÈÉÂ~+_+§I{O긦ÃÌ*:¹Ï¿oJæOúö
+
+z¾ã¶û沸Dê;º
+'1´/-j*ÑêãXÁJëF9Mça>ÑlS1ÂÜ.êfúÉZÙtÈÊÌ ôþè}®Æ.ðKgib4^fj9f÷êTYg!|v;îï"úDTÖÏo<á&J/T¦?&iÉ5èD)U
+«tM¨NÃ~
+gÞfÁùåò
+Èbó1>c$W©ÎÙ³ éù©¥8ëÄϧë´l·6c;h2k![-ÏôcÒòß´zç=}Tëùyík©a
+#m)°xÊ~á°³Ûi`J0Zâ·.ÍôÑ|u>g¤0·'_ùK+sm~AI[ÌJû캡إ´^UO=ýc>µ5g·ÎpnA2¢9Fà%`îr*é6®ò±½à=¼:ÆÌÔc Ó¤.è6¿Ö{{+MtñÍ`wâù@=~`¯ÿP~·ÈÃã2«Q? ~xZÕàJög
+>ºzu}£ÀõÎo3{ «0vùiÐ
Æ2&1·u^OF,)²þÊàEIbÞ~ÓW³
+U9PO+ÃëR&;®ð«£$ð`²dX)~ÛA)E{ÃÚkÞwpö$¢UÒ½ó¤ï7Ñ
m$½[^Sʤq£Ánu¯9E`edRô1Ô?YÖNÞßUØ\mi±Ì\S,iø³hçÓÑíîÕ8H¢Ì %¼¡2ø©ãµ}½ZB ¶«´edí{¢·I;ÐHæ_Å;^ê
+ScǶiú4)&Þ%4¥·QWDë4/¨
[Ý|9§é¥-UÂ'nò?¬÷ýüï"T4ÍåqÚfiûíÙ,9-cáaÜð0A»ã3t¾G4`bÎsûmn¦w×yÚ'ÌC0¼AòϳÕö1w-+êÈT8ìasÑ êQjÚ°Vôð9ëviÕ:
+÷pGQ
+YX?dzÈo¥qÝnkÏÃT°&l:+ÍÊÒD¨{)¼Ò<H¿}±è;îAévbÒÇÿâ@û@ÍV+©-HrY°ûì\Åø°Û!»ÒÛÞa$ÙÉF®,Ae¶Ò¿¹Ú¾òÚüÄ"W·@y«Zµ:¯·¦+âØÂàD/2|Ä~ðÖºT æDvq-·ú¢õÕÖ@it±wÓŤ_·
+Üý3e¥ÙËóñh»7O¾&ßVJE®KìLæÞ:T¼¸,â£F91ÑB¡Ói¥åãçÚãOë<8éÞxΪکhL-l¯:Pú cwVTÆÔ<Lrd
ÆÒ
Ô;ï.Qh¬GSÄ>ùʵØÀê
.úºr-F'É CrÅà/£ûÎg9È>më¡Ù<²f,JHk9
K$ïɱvjÊd\0øqjÊÃöº¿%Uº(æhWwG¢
wiäèÜífÆ%lB';S)©ò÷§&Å«+ࢥgC!îöÛâ-·FI<̼×ÈLüÄRQ;Ö,Ó*>/Ås{»æVmCÂ`±çÆCjÎÚ¡É-®ýd^hÙUSÕø05TfN÷ÚSþ6<ÏÕ%ÌÅYg5
+«oÞp[]m¡ë,(Íl
+$¾¼É>¯
+®¯ã×àÂlZÿÕ±ü{¿omýÑ=Ù¨¼e(¬Ml/û{C3-0µó±ácé3ó&oçY}·XáÚ1)Ôï'åÂë5VÏÔ|ªþaEÒIÜ·û?§ØMÏ Ï£)O½¦SH¿GM°Ö>
v`j×+ÈDÊ7Æ`iWÑFÞ¸UW\{í°Ý.¢å4.¡}|¢¦Nèa¾B'µ!¿+£_' xТ ÆÒ®áÃ#é>#;dÆÎ " åDù[
u
+0o¿&®Â=CÓHOeüü'
+Ñy«
+OL¸{eÊcXJZ-{÷hH&]ô®qRcÙöJ¾½¸cÅÞÑô>ºZÙr¢ËYIÑûÁz
+üÚ]¢b^þ4ÏbÚ&¡ü
+qgÚ6ð«¼)í3'ÆÏh
+®ªq¿kôu-$r í©ÎÜR
+51²vÅÔ} yK$:6ë<K
+@ ¢an
+'
+©zG^"_{ãg "#öuî?GÙ¼\ºUNH§ïÔµüa}l>GCÙ>ж×kãÜp
+Î{¹ÊHÿýè>Ê&Ç1Ç!nÖ
+M}lT±:pkDT§ÿ 8¨
+.á!J¤IÔjb°7K$°Ü&÷÷À²Ë³ÆFìóHÐïÑM¼©Õ¸Ìj¥Z"ÉAÕ<ñ»³i|qÐúÔ0;ºì¸Ìã"ÐÙùÐ,Ö¶Ú>³dFl«VV@hwüØ_A¾êß&ÏÙã¯ëoÓÖÊ
+^¥$iPt[î%ÅúéH«Eáb2ÃÔÎ4eôEïÃѺi$Oã^ç*O;':°Æß»ã}WLò¨d9[MÙ-Î$)n-DD5ge¤ÐÚè6´º`3ÖröÓ¹È_H[ã^QFÚb©Í2D*ÖÉëy|Ýu¼²ìe¶èW6.CaÎWýªe, ¡{2øËA5¤B%.Él¨
+3ÚIì
}$RÍúÔÖª4!1Ì5¸£Ñèâ?óµ´ébBýÕ>v¥Ì6C_Ê_NûÌcÀkh%æR1Ä´"âM*s·Úùò;ïg¥«={mkÑT&Ñþ3±N
+>B»CP2êGvL"Ì sØ:©RØn_eÀá6áH§ £I,g4R×ÃAçº?ßPz¥ºíKó'ÿ´#
+6^;ö]àÇuÄ$\L#0Ö×ç/~xKmøÚ{¤¥N5 âò7{l
+ͯgß)tº9ü¼¢]Õ¡/HèñÃÜSpºÂ»ÿÙÖxíEQ+N¿BÁåª ÝX&M}A4ék_óý'<ôÃ6[-ÑbÚñx88«#;çÁº*û¾Àþã.
+.!:ÈÌìWÜש4ìï¸sWGÑZ[K
+FâÚÐy¼H¡I±Ì}
+G
+ß°M¿33(²¹±Î
+yïò½²÷wDº¾£ÇºFú³dÓÈúYlÈ}3qÌÓÐ/ú
+TAÍÄ&ñWÕq¤3«uèbû®4+å%ñÝc82ÒÖÙ-'0Oáû¸Ç`M´¬Ón7,ôØë¾Óþow 3ßo22ÿ£²íTñ#廊,e;yêÅèÚ[
={E;ÃÃP¸¾é
+;sÄ.0Cg-äÓa¯¼'wÀØÐðÁ@tPð£z=y°º)£opWýÀ×E(Áä»tkÚ¼ÀÝóNÅ«¹µÇõ¥609°ß"=¸úT®X×
+kLÃ÷úKÿ>î/zͰ§âelVñræQ¨W¿(=m½ÅWêÂëYÇu¡µ.« ·ÔäÔæ |Ó
+[ÄØ×v?ËËuT}Êá /;~9û¶_ìF¼mïäÑÁ¶¯¸6Æ^F£Z2y÷À°l,-Eqpw
+Aºª|i¬n|Ç'ȼÝz7ê_áÇ7a}ú.àå8]QVûÄãôÇjuëÒ,ãd!;Ô1t;FÊü$éÃ
+{¶ü¥~9H» Þk8¡Ñ¢î¢ Ƭtà¾BUiÎÎ3¤Û×,CðèQe-É
+°b·Îp¾ö®lÆ¿XHXQ¯0( î~ÃÊ0F§103ßʣÿlz$¶¢Ö¤¤Iö/g½§îÉqû4íl&>åR
çTq/ZÛ"b>ÝÈJËea§ñëjµg´ÏÍ<Fj®Cç|bâR»¹ØåóqYðOsAr£»¤h9vá¾KÞð©
+nÔG
æk©IÒ}Ò+£|§]h:+±ïhl]RÂÐÈ«C ^Iħ³ë=2׸_¾Èý±¢/Lºþ|íÐ8/g¨eåpYÒ!(?ÚÕF¤M¤æHOÓqúôF"÷®÷ÙlaEC#æä´º:VêøClK#P@ÃÑ`Öàïô^óAí¦Ø»O¿
+ëÌË}mòصô.ÜPä»áá?Æ10`HýÍnÉÐvÈnB_îy#ÈÁæÖ~½ý´#°y~¢«;)ì°¸c¾9N¶Ií¼T@<ütss¿R ¸7Eáþ1e Â@*ÙÑH£ ³Åì²îϨY÷@v¬åªÓlHò XÃþÄHµ!²k¸Y3iÑ.û2xÓ}¼®þôû¶Ý}ßCG7(sð4$©¬ÿ¾ïë~×÷see<J´²ÊY*z3OñMëÉ:(¸VPxÑ,§î±òD©ä;zåCƻ¶,.T0)
+¢ç-FöljHa$dA{p,'ÏC~Ó!ÿ
+GT,ö®pËU³tMXâHDÛïãYf;å?ð
!´¦ÀiÂ+º¤ç Ó_¤)8¥ítTn²ô*FÂRlÉz°G¤ÖNüúC1t¿éE3¤.;ÓÕ¢ÄÔÿì<Ñ/¶
+ºc¼ÇÞ'ζ&àîR×Jµc´ô[ó±Í×ÁôoäÉtqµ
+ù§úI+X|é?ÒPÄBĸï±Pó/qª#T4µSwEÁµçh{b+¬9Iï0+7v,ݬ1?Û h[V½U0bèQ¥r6ÜGft¢T*nJr§Bâýayy¾w%°nÕÌÙào¿«ÚôY@Jã<àØGjXrO!G×p(¡ºo§ïübº¤óÖrÿýRcYxû⳪BçpÜäAÁtæ
ñüSW°ñɾèm¹
¯,6ç]ÞWoÒaS¼õ·¼±IÙâÅe=,$ødÙÀ¹®x!ð¹{<
+¼Ù«ów®×Jdóo»ðýÏ073Z¹£ä:
êìü¹p/Ô£Ú&l*ÒÞ-çæÌ91_Õ¬2Ó¾µ<#©º!í¶úL%Á³9Úù
+Q°ÎO *¥¡xE÷ßYð05ãcmÇ/Guî@¢Álµ¤ûvýV¡
+¯¿ËÕ~Á.{ʶF4
h"®[¸J(~NVÁ"%m1
ÍnÜÖ®YA°[Ü·wð¿ÖÎ,¿ä3&>üäøE
õCÄì) ï6)iww:½$Èûý7Yó°«=&[kÆ=pGîºòá©@"ɧÛWûHBD«fíB{2)vªív!j:6©úõ>N6gDºê[e¨|_°BË@EÏ`*âLx¾N®#Xo1ë!q§±PT`MסÁ»ôÅ
+}ôæÄ^÷ÏòaµÕöÍ©NCðsÔ'=,v>Ê÷å¡.Ù
+ª'¬Ẕ»Wþx^øÓÞ¢üÓëJ¶2Ïñ¹¤Ä˳Þ(ëeASÀaQåQ §ár¾¾+}vTM ôÅ$nêÎ+v0P;%×e²T),dhÔïiH|íïÿèuù@Ò¥ý`Ç1ðQWöÓe|çYieÿÎ<¬)Trz×O9TÃôAòôgÔà2\}õ$ê-\¤äNú:xâËkx]È£¡SÅ"ZR¨b·%Yímñðz{õ}è»òÚ'
+°ÄQê;÷*Ó×ëQ²>ÖÓ¢"¢þlD>æ²Msñlg7ÃÁ*æ5â/0Bºeø2zmϺ["aų[·¾ÐÝÙl(eÞ[A½fs#ß\©aü±@Ìü鹬%?z;*fßqF$&XÃäwß/·£ëk¦ªý(eë
K?8]1÷Ekz¥Züë,·Ôa.¨ô|³Cpç.u¬*þò.2Lñ9U¥~»³ÌgÐÏFÃt¡m3¦´NÙâ7¨KÛVþê¬ê¦bVÂÏ$+ðF at 7«÷.̱Tn at U»+½°ç·³*L|Tí"jD[iy/xØ÷])J#j~õ|»µÓä}´êÐêÌ÷·¿sK58}nü3*q¥M^lÈdÎÓ´6ýãEñ8ÒÓmuZw..þx.<]Ýþ|fº Ý"-_ñ;
+ÛÁTX$¹*ªC´l(P^Ñ9I2jáÚÔ,04É3dÏÿÉM©BÍ.c×Þ
+
+Æÿòq'Ç7L®'ôa2lD\·ö@9Þÿ½ ÙE³mz¥I¥aòÁ÷Á2ê}Ns5jÿÑPkËÎK¢COÈû£k?YZ5:ò2sëÞS/[Uç8QeûµTN³Dw7Zî»þIõ¥lñ7S[bNئ:¡jÇ&hÜT¯S½[ØTéå+ÔÚÑN\ïÓ Ï;®@¼/¸ëÚ¦ZÑB¼_i¡»#^Y¢àÊ%¼VÆKÕ`O,3«eu/GLGLocyÁW©Vqá¼q5¯x³EÙn8<Ó[Ó
+M L/ÀmîÀïFaÇ^ø#´÷äW}gBM®qªrnOäú~ oOܹONFï#Ó饯$9<¤þ
wH4(Lèê|ÖÃP«Æª½![¦ÃE+>Ï×Ñ$ÉñÎÞ~TܤïWJÉßáN²J?Æâw8´ Ëü=íqÆ;Ъºç0WüX>·ON#¶£él-ËÃt× k¼v._°¿
ÈOäA2ÕlìúÕ³ü|°$µ¦K©CÐ#X¿ôì=!¼+æ!ÿñ-'p{S÷ÄIl÷þÙ?6q©ØÌjUax¬É²0g¼®Ò@G_®Ù9ÇÙÃ\Ã~äÔ
+ÔËv§»ÐqH¸Ô!w4§$yæ
+ëgÂÈ&lÒk$yC¯k´P-´M at 6i8YâAÂÌYÖý!úÐ?x1Li·×%'g0
+U4G
¶CÁËæã¹Ç7jå#c1þ:À¹jy¾@ÎÇT$í]{F¤8ÚijÜãEKê«xêÆÈü
+±@¼f=2_gR´$±®A\?wÜn.L 7
+â×JØ4ÿøÞ¿bÜÕPíµ±òmøS¦íPªÃEBKÄÊImi:ïª]t[8Ç¿ð½áÜ/QÏùKéLkCc.#ì(Ì®KÎ?U¹Ñ9ÈOGäòS3ãìqkFY%åÇÍ
+øuÝÇ¢®dÿÑG¿VæzÞ¶#*ôî±Or¦F¡®Ù vÊ<±{H~Å-Ç\Ù´ÃiÒÖVÓ£ñOBGçlªm×$vq*3Hë,·!é.kAÒVvF¸é§b&èÏDÎ
5gú°¥(l¾Þý:e¶ SÇH±»çlküS>Ójóóŵ¦Hì~rwÅà²O§æEÆ"ÒÂwaNpQ)LÁà¡$±!i$åB$Ã=ë8PdÊiÑ)A6/>믶úõ.>"|°hQg1äQ§ÂU1;øçQ³rRÙ£S[Ýààr.úÛ$Wè/|¿ZH>ìC3 Dë`¼oa¥DzjmÔìèÅè_Çá[âäIÇi §Ã¦¥K¤&/Íb5DÙ_>1Q²OyÆ;"¥ÖmÉÕm¯æ 8ÝÁ²¶éÇqnNnú;ûÐåÝ9o¿9ZR¦[1û(Yp°ë¤ê³¢M±jëÌ´ÅûgaWâ][¹BåùÓMqi£F}]
»ïG0}Çû%:û¦ø¤Æ¸Ùp
+u¶øôMîu8©¢S>¶3ÜW|ÄÝç7ÇÝ*: 1Ú©Ù¥l¯¶¡âJ~Ö|a=«9«(ß-ÐÇèÌÛ¿^Wú\䣷q<÷r±]¼û²´árìI.Êÿ|
+t'ÍëzÃÞÛJ
+oez!±¶ùªÒTR&~áe4½¦Ön?ÿxa8FX«L2z+2!T}ÔuÿeiG7´ââY¨XM&îðÃìUJêÿýîa¶ì:ýwùbÒÃÜÅ5Í6Xî
ðéÒǺWôº]
+kXXéFä~
+zþ)Akå²¹Ö2T¿QtϾ¨íòÀ²2âîùðrP¨V
+>Ï£ä«!Cg¯.'/Bß@þ
+÷OS´eS8âû¡mAðy3Ì{Æ;êI§³QÈ8·Ñjç¹oª~U±ói?ÑÑý â5/¡Bðþ9Åær ä·=zØÉ[ÓW£¢Íh»2L]´ï÷º2gqÛxN}úT/FEßìwUíØ¹¼:ß_P¨úf'sFìDWÁî°ú4êãôß=;6:»5äòiç³4ºÜ#°a°&¢ÚS÷?"µvÞwg"=èÍaL ÂæÜè3Ò©
+ÁñÒÙþ(l4qo`ä´Ôkð»ÝΨSSö¥áq qx'jrfÄÖy¸-)õBècxëǸ´wbû6KG¹ÊËfÍVC/
+äq¥îîx^ºm³DZò'²LûÌE@`=¹tÓÙ]Â%pü&´¨¥Tÿå®zGØNg=w]#Â:váÕ
+õ2bDÂðmÂ
+t<´ÙȹíE«
+;¢»@ µÍ®]xg;a
â³RäîÌÜ:?©R:m
¤V¼~8-oÓ·Z³ðö5TW´¸Åèfî꽺Ä
\wùÏ ]cWÅ2Vq-P·DïE,Æ$C<V*«#øªâüQæþl[×Û\ù¿`âÕ*nÀ7?©Ô9&Êû,¯kzcØ¢¡öM a¥Ç_âìC,pL´»ö0µ ¦÷Vo¼¦Y¬ëyòõ4ݵ ='{qÀtâh¥yiEØè}wg©WÓk*øm¿cß»îdcô^
+`ö$Ê` ÊâÂ=äÐôls-3Ëwçøò£ß=ªîÚXIÐÙ5xK£c õúÜ=ÄÏ~Ñ7RaÏ
+k¾ï°zF±ùH´$¹SµÊÚLK9áµbdg,,65AN£#sêñ3[×j¬'wcj]Ç÷Êø¡fÕyç\ÿ°ßÝ£U.Â#ÃÜ
+@°«UyOÝîM|nL/'²|iPí9n¥å+þú~«:[Çù˺("õ½Ü·Ý³Ý=äI.ïîÀ }öÃT÷|×&¾!Ï{ $QmO:×·ä¸
+~?S×]7î5Ȭ³Y{öàÅóõɶÖù¸öRÈæÒÀn*5Yz£²>º;±óª
6
+åo®0"LútevùÍ÷¿w
+¶\ïéÔ-¹)ÿô8ÕÛôêÒAËëðä08¶Ô×Ë_ßÜ?md{ÔÇNÍÆÞæg'Ø%Ö
+Ó'~)
èܲwÝ÷]6ÐWGâÜ2G>xZÒñ,Ì%cE¤jôѵdFÜãÀI»Á¦:Ìÿ k¯ÐÉ;,Ál8âÉx»
+á9Ä}ánæFGï®;nNoÝÍ2@ Àʹµt«+8W=ïàBz -1+aøU¾x¤`ÙÖQG0Î+Æ7»3WÔR*ö½¦äu6Ó 7¨ÀmßU ;WçÊUÍÄN¿Êc 52ø(G åûj÷*E}>oaù¨br}9Þmkù¼
+"ÇÈÞ¾@ïÔP9ÓrZyoëo"Á0ünH4ÖãJðþæG8"273ÒiÉæ'sÄñ8N¯!xTãwFm1RƤ¡BX³ QáÛ×à¢Ñ=2X o¼ÇÇQ(:¯ê7
+~ÑÛÂÐób¯R¡hµW>;ò¶>ùF©kXμõïe?»Û¨
¢ÿý/\X`¥[L©hü§P°¼¶'¨{½çèçQB<[J¤'8CTÛ1g²ÏÁ#{9o¾i33q¬Hêrµ"Áð· ÝJv÷ÔÚÏ»(ÅÅxAüýòÀÅN;£ñÇËUÐÒóÊ%û¸R 0Q¹tÇÉ
+JðM¤ÎY½½à9$ã:e¨½VágóòÌñ±Ò}éÅ!Í/عóoÏ ëSQ3Ú Wßðú¼è,{ó«bY¹ÈWùP¼ßÀm˺ioIo//¡PU´1 )oC¼?-Áa$p]«î.÷SVÿRãøÁÖME¢Ï¯S£³£MØir¢¡»©/)]Úô
+bʪ^P4¹1ìªpuw½CïÕçäL(g:«©r~%ë'jH%uÿT$"*øÉ¸d0HZr8ý_ÂÑ2}¤=Yü?ÐxwCó«Â Q6ê>¯+â!s¡k/j¬^óB¹µ1;Õï¡B,ç{°Ç¯IÐEHV<&/'®av¯
+ÞÐß&kæ
F7_`u!§}ì·ÖiîO®6û*
+¿5°åÅPrÍþno·EJ8øýãE§iaWNk0Ý w⻩Ìëí}õÜ®ú2²Ð<eu$Uü}¤rxU¼CƸ Zái³ÈÍ0ÊÏZÎK6ʹÁãJÊ)Ó²©>ÔáÔçÁ>m©Zþ+³HÐ!îcúíS9äùÚÃp\Ýô´¬ú·ÏdG:/Åù¼¿û¢\²(~_ `Ó¥yz±Å(ÜfÖ¥ÚãÁ"~*)ûíÞË{.½í¶ô}g}¤Ldé
l&AuÂ_Î
+®·q{ÕöB0®Ð#Í\õ×õ
+cíùz[+]³?gÊË~mùÕÛ°(Ç.°LwøÁܦG¼µ-M^"^A¤×æm.¿àu»í
+Q~dJãÙ«
"Ucíîo£u\ËÝÅrsSy¬Rkÿ¢Ø/ä<x¯]
!¼;¿"]:².ÙhUÊNöÂ7 ±uÇôÐV§]ýy[ö»Ñ$¡µÞÅ9C>èOeßHÑФ¬&¾~i9ÌBù6ú)ÑEOʸUMH}j'Äðq0L6üÀúr8;`9µ¤k÷Aat*o
+©X?Qߥ!AÁÒÒùG÷M[UÉËòû"XË~jÅÏÎâd¾Þê®÷ºËúµÂ=®3
F««c_9g|_lЬS!½ìñý[!¶Ø¬~û>^}ÙÉ~¡TRå¯N´L¯«ö
Iªîg;©£â±©fïÅHkÒnç²òÿ»JÈixuýãdgé³X>*K )UtÌð#¥$D#AÕï
+ù£î|Ãø"*!È*àð±É±°<×o·õ´5üwm+ë~å{I·¡v°°{¹Ç«û¼[½zù* [mY/à5ý=e&PòmÝY&w;&[jA>Ä}ÁÒÌ}
+0l~ "²>Ù\9
æxÝ7
|ô"E OX3Rvh½k䢢LÎæ¯¬>pZÒ¯½6ÃX8Jô#ùc9¨Y`µ (Iá!C{(§füzر¼z¬ì½_ädð!D~Êð°ÎUcì'rÖPkD<é÷d³xF íÇnÇÖÌÏ£g$ßßrEñ«¥¸7ÞÃMïAÇ{|Á|¬¥F4¼pÃ\òÂ×%¸=zªÐǵOG{ó»JM¦S¹1Pí:²ÃÃHB´Z\»°ªä:£Ü¾ÔHçºé¼%¾ÿG³»¹}F¬´d(E ÙÔFô-³ÝÙÑo~£o²àókÊP·?Åû(f&©ÛahiÐz±NXÃì{ÔôI+sn4¤rq<
+DÖ¹÷> ~¥³õEÅêSÃz}@.åËò¹[û#¿VjRH;E¼\2°´ª"tÆý»ùvÑú[è»âå;¿ÍÉ
+ÔïL!¥³bÅÿP'QÆèX¦Ü¼vH[í¦
+'ÓsqÞîmO÷W°·ù"$7w^¶
+»qÃlùfX¬HVó~ÍXZuV¡·tå¬`Ù`cH¼Å½ [íש.¡·ÓQs'ìáÕ£p¬kª+Ç«0}0WÓM|ã[9ѨÍÉ@ä1Iebúr®~¸qâi}]ÝgJìÎñ¼S×Qt_0Ó8Nµø}Ôcl"µõèÖ¾N
+°$äÚl/¾H
+1ʺ~Þ䱡Ê;Ê0_I.e¦éWuG{áÕD2ßÚ~¸Ü××>:Yî»;*
+"Ðè/¹¥æ·¥4åi§âò¸ý
+}(À¢vZ7Dqµ°h¬-úÈ[½(ë¤
+N¶NVêö`èr&ú.¦³Ôp»É>3¤*| ¼ÍÆSKÍmÑ9k2+®¿½fxO!^ËÆCpðVùG+ÆDéÀÉMlÂ\ !;ß½îÌMmÏOÝÐeÜ+i 5¶3®J?i<ÊYFóå@ÀãdJÒ]ùÞÊ+>9 ßÀ#äl59.\}ÊÖ¹h{ÉΪ8wT@öÆv¶ÚK¯Oüõç<ÊÉÓÞèÌmx~ºãjô XGà7¨×ït¹fÐ¥äCã
+)ø¿02V¬|¾U\MX{ßPvn ì.ZßâÇ#²!-UN¿Úa&MÑ8Ë%Â6£X½2 .ß&tú±;$?д¬É1
+hßf×lýzq
+õ~¼=Ù-ó0¡mÑCÈGFrTzÄ®|ø0gÍT¼-ÔîJÚÒUÛ g*ØÜî%g¯4×ýÅýzÐK'XSÑ/gØCS$¤TWAéPÏ!cE6ña|ãÀ4²Z
+ʪ@öÙ³ß)!=½`Îj@Ætl8B
+l$`©Â¯ã³g¢$ºÙ/YûcbË{§¨
+
+`7)w´¾ùnQÀ]ÎÏ*{cIÑ'cDI`¶ñç<i衳Â÷Ðýó<Ï«PM`ê9]R5¶ñÞ¡µÁñd£pƤ:sa%ñv%Ûº®ê8¥Ípj°ÇHØz¤kÒ z¨øµ9zµaJ%Úé=ĵNc&ÉnÊv§×§ã5D+8v"k^+àáÊ©¨ã¥²äY¨ß û:r|{Ú2&ߢaù"fJ³<íq®Qö±¯·qYAÑ[~à¨1E¿ÝR¶&óDGNÑyE{ºq×IúnRd`$ÀusÙ-à4&¿C
+;÷¨U ,¿¬Ð_ýÉx¬NfB Kã¿«êgÈ÷d©ëoCiòðX5ºçÝ
+ÜRHáÓðÍ>æ,¶ÏCͪ<\ò«ÓûTXy}|Z®BûqXN[v ühù;Õ]iì»âmoF
+ªÝ¬áê¸+á;>8¡êNb%d8&£~ä¡0¹Ywõ8´®^-!ÓÅÉ'8kŦ4_9Í£Êçøâ4HúåÖöȺ{§-{)iJ4áþJËxl5I©Õ5àLÿ
+Cø7ýsÄÐÀaÒõ§ÍÿäÏC.¤?
+å@-Å:`VÅO×ÞÀ}+ð°·òyóÏ
@#¨H
+Ç$P¯Ûµá4TQ?ä8þAìmá9[@EÛyÀ%\òêMHËÇmc³)ü&¡Ñjigi,ýÐw úcl#Sê³ÇªïÒCüÛ¬IÒæl»K¸|QDbÃmÊÐê¨v(Ý(¿í~ýh£mâÎóXjBʵ=æó()úè}Áùsüéz:õ¾*c@ ÍBH±Z³Kðexé±wà©kÄw¹DÏÃ~9F>´1,f¸ÛpOï>æßi¬Pôu_k÷ôböãj)øé8ÒH,FÎI'ý
+ -%_°|T¯¦ï0Ê[õ§
+¹ ü!7mÏÈC0#îbMkXÔÔCfÒZ]Vr\t¡·çª`ÑìÕ~6#B© ÄårÅ<èiçPõQªÉ4cÌ¡Àº³ð~}]]
+_~wV]^Oܰ)¥ ïÑØ¨ö0«?äÉ)VAR®}\£$¤ÛdÈóm˳£²Ðw8J+\²UßMÄG£Lî`5móèªú(?l¼§úwñh%ÿU¶!Ú³Ömí`SZMÍT¿¨â¹JÄ!ݼ¾TÜÌÏRêî½ËÍ$ó¼ÖqsÓ}@¹r5(
+\©+÷Þq:?ê+áY¿ÔIp±'ZyìÛ0o?á¸ówG0¯4 |ôm§Va³Þ!¹«å<±MÐC¤eÏÚE3xæ¼»¢¥¥Á0®qÈÚǾ(A`¶sÌâtìÕ nsSt}=ÆQ´Ò®]
+Òþͨ©ÿ]¥#¡nUV½"(fÑy¸-Q.nEö\ûrá*¹¥uv®@èzñEµ¿ÔÅ×8(g!Êä?I7¶ÃÛ ZsÉ@±iáÃê¢IЩh uEv=zu3*-êÌOݬ.Ë;Ë,[ÁÝýîôü^¡¥Ñ=`ȬaÔ©I,U¤<?zÎ5
+K1¡ÿpû6¶wõ¥jºos5ýüW!<õ¦ÿ@]¼T}ö'Jð¼ÏýX"2ßϬJÞà¶ifÊã$jxÉ{¹h¨ëñ`ËkÇ|¡uQfâW-ù¯®-RÏT6Þ©U.tAUÏ+µ,û®$ص{f
+o«ÀÉh¼<W+hÌ]J½YI®s8Gìx.'¼²HIÓÓtZT'·ÞD4.£(!»ÚzÝ8u¯ûæþ¨ßÊ,Ïd¥}è
+£§_}¼V)âóy5Pnt£6Í38°ÞÝê
+¾®Ýû
¯øáÊ)úQðáYIO
+x3X8nu`jÌplæ sdyDrÝåå>>ÌXWë
+üÿqÏ]{Sj9oYh£.j¨{·TÝVδ±@wû£qjÒ#ÕµÝ9oêc÷§%¼;ÂÓÙ²»|EdcP_~¼B¯ü;gaòÿ¨#¨î's_ß$|Ñ3ýÒÕ]× R* tLN)
+[H>P|vK\"Y!³ì°NµÎM¤¹NÖ;ÄAQôR1ÝÞ61/é[VãL!èæ"vB§æ{çd»Q#<9àdAOÉdü0Sás9ëì©øÐìÆäJO #:R\È#ç*|/ÒÞ«Ø©ÏiGkQ ¯±ËnÞ=!¬n»j`<´²©DT¾MzË'=gåLúÙâ£ã¶¦}ƽ¼-È.^NQÎidr!pH>ôK!kØ¥8gU`b³ÆòÁ䯲.üÂXÞDkå¸O8}e
+»Mdº6Ö+'=6ºt6ÃxõÝUÏ3öÊ"J
+µYÂTm
+ï|t *3zõtP6<÷Â&¶yV[}÷Okëfõ²ñÇxvZyêòíâ³
+â$EU³ã`sõ!Pêà#Pðyþ5y覴÷,³OVþ%"
+ª×â'cb
+aÓß*@_b£ô!m*©`ûßPã Ëò¢ÈqºÉ^(½DM#Gp-J#ï,ÞȹÃSLfYóñ3nê,3_ùή1Ô6ÉèömÑó[tƱã0jlGcÏû!ËÐ8>Égì¢+)*%]~ýÁ®fâ,93§ù è=Ô»2ã0úXìRéÔèý .óñ¢ÂX9/^ÛØáf<t½"} ?kã£B;mvêCðöK`¿xFzÕ¾\ÐzÍÌég/4[+pк Õe
+¸JÐÞZ#oO¥lü%p¯ÍôÍ~¹Ñ{³Êðâoïä.³g-¹ûxoèp#ýflFCìP=ØBù¦+£åu`ZQºO)®|?Ù!Ó8ÆÎã2æ¸Ué´tßãEÚûxó/>üo*R&ÿ9UîÂFgW¦N£+6[{BjE×Ϋ(á7{YºÙ)ããå%O at v¢Þ¡°Û9Ùi~5h]*äKÏbO]«Å¶§ïiÁy¯_æÁFVÐ,ÀÓT=+ÇjÃöe~r8(r
+jçÅxª=
+±4ªÎSçlÀ|;>øwÛº
+"¥×TÞTR[|¾ºÐ$İE¨pà:t at i 4:¬±ò-e:ßm-HÆY*¨yZw/ZNPðÃì:µò=RYóÂhÞüx Y¸µãáËSþ1ÊÕoø!ÿÉ (¥ì_ÿä£tLѹc<ÙØÕ¡4¾ÒýðmëÜÝjºtV¯X¡èU< ÆzFEFÆüà´ýkÊw+Ì-*n=׬<¦l"ú§¾7èÌ-»sëRuï§uï0Ñ?é£6/¼ñ}¨¹b¾ðXÕq@ÅU¤6.»ì¹ÃIÒ«k:Ôk*6Þ/üx.Ãu á(jMl)
+íSÅ|OÙ_æ2õàYìKO¬>T"£y.EQÝø!)Í·ÀÃ;é3³øhN«@wæzAä¬QwX¬?q¾²½Ò%l#/sÆÀ`²¸QÜÄ6¬ñxó*øÆR×¢úØ9¦èËÃ7\'FÈuå´Gç6îNÒ¥]}á à.2 };ögÁý".OeE!}VW äÒ^øà!ð[+ÍÄ8ý+˺K ºøg¢Þ÷`}}Mxh}4·1ïñíä®ð@Kñ¯¿úû·fôñÉIf~1VT\9iÔ¼ïécØu_ÇOÊóÅG{~bua"h·M<ÁË^åËèH?WøÃEW,]×&Mí¾WpæÂ¦PWN2Fü7Ö>âÛª:¦elÏÇé;ßïÎCÜóbö:iöé$×ðÔ%¼KJ¸;DÆlÅýjÎ:úÝ?>É<óT*5×1Õ ·
+óL2TR;2¡O$PÑÕb
+H~Ì¥°" É$îD¤Ñ³z%0ï_x%¬K¼,µe
+ï0V®¸ï5Æ
\µNáÃW
+#,¢ê¿½·Õ®)Dz~Z¸îãè
+]Ѩ¬7ª©h2°¦ ¦i¾à
éYæÒyqöPÐ"6ápEtÛ±éKãWf3,׿è] Ê"x?¹ÈÍj~~A8=c|ßXYöõàõvf7GÇÚ ÞøçÌîîH+5bÜ8/R>UMCiE÷R¥Zñ
+ÖCí1Gì%*Þ¨æ4z×Qºâ×ÌÏ<[¬õ=¤MÔ¸¡ðy*cwVÏ´¶
+PU"Aºòñß.â(Ûd§E(9eVÙøçgüK|Öì[²¨»
+ªK£ii¢3#Õ µ×YÙÀiÑL»X3Uál{Ðßê),b¶rM²Ðc¾¼ÁsùL±^ì)Ä ìOä±GcXJóýg®±zp°iÔÝÅÙEÁ©Àr³Ýæî]hÐFáMÆ^Ô*vO´ß·<Òb¨}d¬ü!»´Í
(O÷°å@¬¯n×Ý|TWÝñ+gôHuªís3s±5¼¦6t-þËâºh!ô+
+«¶Óò×;bsêºÇ·Ã§U6-?gBöÜè¬Þ ÅoÓÙÖIñÔ©nb¦HKºGÜ£Ü~ÜcÑb<ùSûD3jn|¢[ESY8÷û¶¼f9Þl¯9´½Wßàä
+LçÖ9¬½øúZ>GôþuÐÃ¥øÍß\e²Ø_&îöÁ
+®ìÁ.üZdèÅxz,n? 4á
+>ÜGñPi,xU&}5+h"Qì+Àí+\Ãpr\Wg/5:-wRoïß}~!þXô'xéÎ0Xï[*þ²Ó°~Ð}a³ð¶Oª'Þß¿©tÍÆÇ;£³ÉÊÑ
+W÷Hêºâ+Õ~ûàÔ8ÈM÷øÚ×UÓþ
+hìñѺw
+%Sç ¼ ãks?uÏV£V^¬[¦ûúÎ\¸\À*
+ägrÖÈAFvÿ(9P
+
+ªµIXTÁæ g»^±mÐ&ðxNaKYÖÉõpµpÄcêMyuhv»àaª!aÚ4vÌæ¸¼R) Þ~þ'âÜU¾,mû7¿üANW´i\¸¶óÈ_ä©p2Å«2ìðV¾V%ÈUp}gW@¸×ØR
+MÉaµ¯â%â÷`ÿ*.õYT®OE´ eÍð<×Ù?ZSÄLdé!{ê=é8:²Ä²×Søá+ÀA·ö£AL(!Îå"íììHgý¯÷LðÇ&Òï¸þ6;Åçw×Ñ0m °\Dý©¢b¬8bÉ»ùÙÂ
+Ìdx2
+O±Æ0w¯ëBõ'5½£Ã¸YÐQÕÍóëJB¼`aÕ²?ûºoqbóC^ÎKþ IÊïú(·¥âcÚMM-Ø k¬âФgéîJßHÒç$í÷¤/Iiqc"¸â×&ëÜ~¡¡v¢Ú¹w@ð5^â£9#Þ)ÈWÉÁ-}®¥hæVrê@b;´c °÷[ç+úY>´)vdlæSêÙû*
+í!\ðã^«É}Å÷Îr;ò$)9¸ÜÙ¶Ís»9O8wò¯"hid¡³ùþábjz`Ðãç*.»*tL;²¹yTl`×R+9ûS9V4eþòãô·7ãèßFûìË÷æ¾2bѯº9\ßù&쥨¡;þ÷µNxíäVØ&=®2¬Qa]Êv{´æçx<ÖBX¶ð¿##TÖ8½è»î"çðü0ÇÌtñvT,ÂÕóè*k|Iß·Æëè0q
+|ÔÍE\²
+@ÂHYå?Lûøæ°¸òÑH§ÇSâ-§
+,oÜþ¸ý?¾jÀÑyØÏPV¤>¡RéØpVÊA«÷©ÿî¯>R\iQ jãoh9òÚÓÀͦx}hÐDÇ£óL\ áÁrªñ¥3ãÄcJêP6iacQï*JLM¯ú¥êèóŰ#·éi9¼÷cÃãVð,ªu/{>ÅÉiJ,¡¶16Û&g¶%Mæü¥'èçgdò¨[úw
-|@=þ@¾"ùR;\Ø^½ºG.JCóB©)ܬÓÏiRm$7)s}±]yúák¿ãù3ß5EIdø@wÏ·
-ªU ðXÌúÊ¿3µjZ¹êÒªýò´VcU©üåB¢*Ú©õ BÁ.Ù]=f¦
-JÓjÖ|Qcódc˰7E +Rè+
-c·ÁF^](mfkk;0
-r$X)5©XÝóÔº*ܧãéâz37Äo2o|ùíæíâfßëäqnÈ2$lòn×m¶l¶{õ¸
-ÃÀ¸Þ
-²*v¸Ïå5¹å.#wº¸¸ágW,Ûðî['>>Ú0Ýc5õe3á¤Åû¿úѶ×n}W½üNMëÿÝV¦ÍðE'-Äïl
-¹4¥ô7²G>tjÝnÚn&Za2#ß(>¨ú0ët2® æeSI51¦5eVaF±U
-q¦f
-c[K9#À©üN4Úàâf<úþûBBÜ{pp£Í¸á«ÏLaÇßY2þâÜ\hûÈIÑøÊà+ë)â¨Bá.G&D¿RÝa*²£ díb÷Ä$»&
-1ɦIaoL
->ÿÄÃÓØòMù½<æUÍAÞn3è3áhYÿªLµÙ,X$±Ôx=TN{ÊrÚSÏZ
-âÖj.Sñàí<¢x6ªá0ÂÂ{Â#a6î
-oÆðñ0Ò40ï9ò0 TruiIÔ)`3úÏño";1yþŪ:þ_î˵ªzq±}<pFè*Ä1
-»|!ìrýU½â3ÇxÐðXøUòªòþÿèz&5ΤåˤµµÆ5á]§O;GÉaçÁðaåÕðѸ
-a1Öà1t¨qÇÅNPjËëó~jö?z&]¤5p·¦peÓZ
-lyã=x®ðïÿ¶ª$X¯«£õAÇ(êK t¾XÅJ£ðº,4ÞbÂÇÅÀ,6À.ÀkvO«Æxj|k6_3EåeMN^βeƨÒW¯zþøòïÝõTOK{¿÷x¤ÚhþüéÍ3ëæýÕ{ýzìÿáwí½{~ëÔÙK»|¾þ·üµ=¥;pnéù9¬n=Ùª.0ÕºÄ.V´T;ÅP5Ë;ÝÎÆø
øøQW-ÆkZĦ¦{{cO¾(&ÎÌYôÕ.ó4ÓL3¯T3±×Kh70Væ.Lm1Æ£¸Gu ÝöÈçþòJ¾ÝÉï§Cvø±¯Vßn÷ßìv.ÒÙà »É^ªÝÇÛËY³®MB¾ÜZi?j~!sù9ù
ù«òò{ó|Þ.è%=Ñ/·¢þêª ¼
-WMªÊ×@å5%ÀÏÀÒÃTê娥§<p^uFºô.
-wºpëep8H¥û©5Æå#2<~DS0Cä¸Þù~@«aih½ïÌL©ÁÚ þÔ*/¬`Ð
*XÕâ.¢_
®ðhé·ûAîi5 5ÕÇÚ@mÜ!ÄUí0Ã@.£8çÄñOt7cqìäÿ¢_/äT£+§À>¥¤¤Ãè ò(úÍñܨ½cûË5<ªOèg<VÚ{K5@#q[ºâ£¥¿î÷H´>ñWî2}.øDÃ`aǨéP(ÖT
-;aiRWwÙvÔöf^}äBtÒÍ«Û2NfýÂî¡°)âÑÌ·zk'u¬¸?3åޯͰÙÝ^æ¥âK__Ñøª_»ãÂÙ;jLõx`ËöÚÞi«Z¾²äò½qAP´½ñî"n5áÐ!ä.mÞo0æ£å¯Ô¨ÕAhý@£ß«ûÿöÀíAýjÛjûzÛzûí¶Çù',z^óü8`äÝ(ÑíÜì¾Åsk`Kð9öù°1X!ã×ZÖnutÍV=BóIî§
-ÍÈ6»[b¬«\¼0²Ê?À {üÊC¸Q®Moû}¾ýû˱AMæôÐä
-È t
Î if·þz=À;È[Ì O\oÐHXÜÆ8âP¼Ö82ø¹8.
-,nD(AÃØV¦Iv .J´
-± q%ÓÞ·éçu]^y`óÛk×üýÑ_÷>÷c<øí.ðÉ9·ºX3úÊÝkw:X|ûþ¡Û¯]·ú»¸wôxÁÎX®êÐdqÀEQ_£úì9½À#²I¼¨m¼#dÓEGMµføW6UJfGg³æäã ÉÄë¬b5®V~{]Òjû¤<ÕZ+?Pw¬ÔÖ©uuCul]EÕXìª×Uóùù3ûjg½/Ú>3Ã4Àßf:ev:;0?etª7jCëÊCë*CëÎ
-°¤@µëXYÃÂ!Æ*vÀU³@09ö}ñT"HÆÓÞê$N¡¨ñg¸*O"TZÀí1µkZ^¡Å&ï¦ð¦Ä¦4{so(t½2ܺÅy§²Ó¹Ë{øþèîØcÎ'£ßt¾³OuamoRP×ÐÙ=âjÒÓÔð!uðÀÅ{=µ½ãÔ=¾®aú
=9ïâÿ\Õß]ß|á¥MJ¾5¡.¼°øH_Þgó+ª÷7öɹ~¿åëÜõ?²¡õü?ý÷`ûÝT_Ù½Ìó8ÐɳÖ1S±ó]«*óh¥Ï?è]å_X½=0x=`rT9[P¿õZ.ã/Ó]f¾/÷zÂÿ®Ï³ZrsÎÊuïò¹%H³X ¤£CrÖ¸U±5ëõû~¿Ïl±xAtZ.¡Æ Å0äü>«Åt®dÅhs?öIjGX}v9ae8ÞLê×}ZÇhüeqVåë<¿àʹk3ª«®ùäÔ$|#BÜ1À´¾Ú:8·?òÒÔ8Yè?9^8Ðuvϲ©¦Ö ñ_¤`â²óÎ6äV}6²Þ ¾¤Wk gÏ4{²\Îîèôb¾"Àv'4kÀßáÐD¯ÖÕa¢«`<ÍÅá)ø¿?:9ÿZWU¿çöºNÜmZülY]Ïó.¯±^/xUM òì·ú¬@ó¨71T¼vµÇÓ`ïqY<ÝqþÂî¶YjwÂd
-Õì¤s%ìýjT¦©Õä4eã+£Æ×ö¤|ªâ[zó>©QëÂåèÕjÒéÎ)¼Ó´#EL>
-£j)$Åj»Ü>,
50îù¡ÒÀ¸ª© )ÆzA
-wt j°¹K¸cXªæÃ!£P@ÆÃx!bñÂçvèéëDUª<`ì%Z4´Ú_Ïku@ÖjdgþHE1QýeÍì²O·¹At<YO17Ø©:M,P©
-wNném3ZBþjuæ\KQ7)¥7&jÇ~×®îSYÞíZ|í»-bÀÇÄb\ëÂ
-¸ F½±-Ü,ÆåÓ}¦Ö¬flÌlÌs½deãx7àYÁ<-YĨæí{/ZI
-mЩ"YE*°ÆªhËu`ÁeÇQØAö#Y,eG²$¢þåÎÆ¬æhËk5̦Õ0¡VÃLZÎjµjíEe¡¦*©û4sÉ#Éc°Ãéèæ¶¼VçêÊ5Ü6Ôä¾Ìì½ïA
-ȪEÕÄ
-uÁ;Yð&¤ÎvQa at u(zí0#Z)shÚ&Bã&
-nª@tVµQ¨
-*``.lk*Kýs-<
-ØÁεú^îßÜ3ïêªIÅD½ÏnOªf¥G{1Ñî³%;¹Yã¿Û½tëâ=«u±.â_º¦=ÒÜS4-õEõ±/»W3WåõËV³Àe`b´zk/ª^ax+6º_ë<©«m¹¨¥jRUß^}{ÍùÑÃyGëh5]u¡ùBÔD¬
Âóå$KXÅש½áùÈ/úÿIWuJÐ' MA]+¬Þ-<jzÖôÀ§ª«puÒè2ÌÁñUxÞÚã"$1EÕj÷·«&K¾½l~À¡R]Ö×6[§QZ³ÅÕøÔÇMaõhkìVãÝмPAo4$3g£åòÇåd+Û×)¶39Ì
-dÖðóSuèw[¯s
ÔÜwþ|ÞWS]saäo³Çãé/aÅC_ôçg§tæ¶üa
-ØØ(Ïjh1í IS¢@±Û«ÜFãË]fo
-9)÷AÉÅ^
-±ùyo¸:ªBÝQûåy¡êê çõ1ï+ñÅ^á3ȬI¨êú¼` ³l®5o6ï0ï1óÈ,iÍcæOÍ:3ÀÔÚÉæ~9bwj2Ýý':ÄÃ'A7kÅS©/u©¢®øI:¨³Ô4Òt[ÜÖѺRj"FÇéj
-ÔI¨«©¡1ÿRS_@\ñ.«Á
?pÊÿ¢«ÑyÛmø×ÍijfÑJmLÏøºK¼qÔ8P;Ü~iOnÇ-)MCÐ&¸BmãÞujȪtÛÈ*M.:`G6¦nòÇíÎ<bkr<"Õå9wÎÓåìrwyæ8ç¸çxæqóì¯àVØW»W{KkÅ
-öÜ×{®¯¯KnÏÞzÿ}hý$ý9úÌøéõt7ò&ÞÊ
-«Ù좬cb·ÛdM ®äe8ªe?¢ÞãáÎnÉãRB-Ýoc<ZºZ])¡´J§{%Ù)I²/tnef.±NM®@¤×f¶]dÂÒa#Þfñå/d"§RJÂ4©ÅÆt2áõ
-|!È¥#]VÍ-e GÊ
-Àëóç³*
-ôÃ3½Y>M^+pÉTÙlÄö<Î `4
-M©5¨cðe²£äB
-øâô-øNù} üÞq¿oÜ«AÀBYPW²Æ`
-TêÏU£Õw¶zà¯lrQj»eòÿ/%ôEþ-I_~¯6&ß¾ÅÎäð-áÐëüfìÊ6¥ÿï
<¶;'ÚmïÁWxgVëãqÆçqÏî@?cãq¾ñúqåtìú}ZTÈx)°ümþXþØ]."*¸Å[=+=OzF=,`A×ç£/*Ï-.kÈbÖBæOEñîT<:^Ö#¨#:]Æâqq<_åñAËçÒë`;r>ÏãÒs.g3<W1ÐaE|jÍ*[dÆf_T¹<²ý/©¯¿Bö yBMôe2MÒÂ+çô\nCÿ¨Ûe
-^C£k.¬:¬Tÿ㦲ÃEiäöÍh«9¯sç·Î!ÛÜódÅl®uËRj7+nî®?ôÅI¶éå©xÜ-ìu«ÇdðþpÖl@ÍâS¥ñ£gMgèiÙ8Ëãã<óòó¶qñwðb¬(RU©½ÂÎ$Ñb¢5zÔТLÑ¢KR,Õè[NÁz`/ܺ$KϪzñz0y£].'NÀËΣNâ¤`Ò @ÒI¤SmlðI'
N&M:)ØI!¤ eF2$ÊàÇL?j5L©àÈL7f*x2SÁÚ#3AI4L&Î
-ºsm~G0]ø9y{E>I3
-SqVx¦
-*Ø4¶¡a?!q¼RMt£,DZ
-ÅêåŹ)¬\#/^uÏæ°Ä}léÿäV #² ûUo7`PèFN Õ[,&JT±bBX§7Y0ǧDTÍzÌéͱJôÏ3X©ÞÛÅXÂúD3ÏúÙ_éÚÐ|Ný'ËÖúTm"/ek6ÅÊAR¸AGlælÙpýõű¢k1ÞKÌÊÓ»áÚ£Ä;¿ôü8Î#@Óy3ªI6Ô¨÷¯º~ùéÍ
-º¦u¦u±CÌ÷ÙQþ¹ØsçjSÞjµfkõ5Üý]5óßÖ=az5þãjÝ«*µ!/¿ò.jt'ÙäÁ¶×C¨ÒpVà&æ×>
-KX,¯7Ê5¦KcÔl" ÿNö7b¾Ñ^åË7¾Ïs¥¦V at BRÉ($XM2´PNêTëV×ì âHa¡+ÐDkÛ顱z¹LÀ«ñd,Éðº¸Y1Ä5"NÁ²$|
-ôIK ²e
-ÒWk-óMSÿ5)M2kxî%óLD{Τpó²ã©ÿèDð6p·Ä»'¼ïGç/ø¯¯Õ]Öäî©SÈ=3ÛEÃMÅ?ìz©ôrs/þ.î]67ýª=XëäV£¯¼ùTñ'½\üå6ûrxbÅÛÚW>µzÛS¸?&êgV·ÒȺovKÅpzOT3d¹¸V\§loU¾cyNÔí´ì·S"4ZM!£'â
-yL
-ÐÆa/V$§µ
-þ7/?õ<TÄ>)g$ÂÍ hÜåÎD$'dæüb¤5
-¬*N~Iþ½ÜvæÈnWýè¾iËTk@ãË´d7ÛöÅÿQ-q` a»Ã0åoøbhEßKøh.eðuj×þ5þû\^ñ*3ýÓÓ¢K¢:;0^äDÍ]XX½My3ðcåXN¿ûçþx¿ð}áçrzó(yû@HbÁG4ÔÖ=ª( H £DݤÜ$D5ÁH`sôDôd£ÑcQæXG=5Á¨gÁ:øêQâc¬Ãa'òÏ"hX[/GF1ÛÕ5¤æ}Ï(CT·9@Yö0eÌæýtû4hXÐ@5%¤Ç'<´¶§P±cl¼£j×Z)q[¤jÍH£}É´ÓïûUñ´³&~(Rn°«½ò¾Ä2eSÆêU`Ì)½¹5èu¸:q957äý+¡V`ü±U@Bd
-ªrå Ë!ËsnÖnoÖ£°&)cÐ{¯*N¼@1øax/~NÚbK\sNõyÖGNL
ʪ®yE/ñÖàì?ÏÁd6¦?WÁä*ÑÞ&ÃÍÖü@îXåöäHNJઽm¡yfD\»y@<&²¢/ÛR¶ª´$åB%{ªÜ+g¦ÐUülì4þ¬ð/qÛªhÅ+qÂÛUÉê$áñ¨#D5(â¶H'
ÔømMªFßæ,C¡èPÍHîH²n²¯õlRª7fnõlËÜgÙåÞ~Ì
-0?mÝ,Ün#ZÌvPã\9Ê«Ds(3ÖR/ÊîF 7×8ñGÙ&ÓbCJ£CM¤53?ãõâµÓ®êÝ¿âüÏ®è^Ñn0×NÙ:cuÜÏå3ªy³¹Y_¼y
3"³þo\عç¦ïíúËüdì_íkÆoýºSzà¡g¾pl-î(`þÌ<xê·D°Ù1[ôzÂÏ?
-ëÂÔ×fiS$R¾Ë=Ç}!Ïè¬zIÇz°'à< /xÂcNâÝ¢KrnWW ((Á^At
- at G.¬Ð²±¼(Å*ÒDJ`"<B@¬Âèà©Èø»¸¾VP
-ÖO°
-h©M2Þ ÝøG1èíï×î0 $óaÕ"äE-îxÃxÂ_sËñT¯ûNNzÇÎsÏ8ñR)hn-»v¶rÞºÿI²OT4/¥mÕ¦7¦7KD[°ÓÂ:Z:¾ÏÙªU.Z}¾Ï$tMAðÐéþÝ)ÿX|µUödð_s6oú3¸>ÝÒR|=HÞ¾Yñâq;_^|çnj»/ç¶G+ö
-ù3ýo"h¨ÍÁ®/_AÓ²¯Á.+¿f·õ_¾`¦ùS{®ãF\kTCÆ#Fv!ÄèµèU Êà¡È©¨
ÍèðZÂ5]fQsÒkFÃDZ95ÑSq×ÿö"»üy¼ý¬7Ð^Ího Mÿom¡8FSÁ2»4SÙÕz|ÏúùüÓÂ
~S"Fæà¥«-ël-_ÜeÙ)ìôï³Þ?D`Dßo¯²s`ÎgÅU8àáP([1&PJb$£;èÜÕ1 @
-:a.ÁçaÅk%EFo]#âð¾ÐÅÀ«Uª7SÜ.㵩%jqÇãwM5â_FñÐþj#6â½û¬kÄÃØ
-j8.8 ¤ ¥çª¦¦ºÉçªT«>^ÍVûrµ/AA³ñ2à-TT 8O8y²0þ¡xRsx4·¯_<yÒ;~ÒPC@úÊÞ`©ÛSSd£¾³6ÈÙmÍy]vakñL·Â¶æ¦³Ø\ç¨Àí=%FçúWGÔK¿è¤Uüíù7/ÿõ-¾h¾C5:ª:¡JDóô·'·1ênؼ´øýW¼Q6óZ=XhBsÔ,ïÝ
-à&<G]¦øÕÆðÆ0©méihy½¸x° ¯CëëB·¢Á¡ûCO> ý3dj9ÞB$»äÀ*qN°Á 74ñgo´l[(¼ñ)µ
âQ%'iÆúmj7
-eUÁ3à©© ¡L(lF¸)d$ìGMÀKx(h·éjn ~ìï45}`"&fÑÃyíZ¨ep¹ó-a©*§Flô\öx¡¹
-2¶JPZ!Õgcsp¬øÈÅØ6lÙr3Y^¼í\4yì-/D½ä¾ñä®ûvÝIw
-|/ó 6ò°:3º_"þ ØFìqåºÚCmÝêÒ:²Óúͺ7ðzQ'êEèe½½z«%ÝîSúlðD\áXLKKºbM
-O¹v³Ã×õͦÃM$Á¹PX²äBVÉÒ&
-m
-ïóêxã#¤Æ¯[¾]£a¡ë(<5ÕÔGnGè{ =YÚQéÝùo
-zNA_bÎÄ-5ÀãiNmµöñCË9¸té1
-.z2åÚYU®
°Vï3W"T
-±ØÌ×à»§° ì:Qu¹Û®L»B`§iËéÊTzLËâ¨ý:Ö`L3QÓÇs¼1ALM¦yÓkcZn\k¼ÕhÝP½#û,û¬ñì²Oq§F«6
-.ÙëªW_Ññ0[«ióã½´±¸ø,E¢ÍâÆÛ·è¿
-ó2ê%³UiØLvI5õu ^ÉFD/}1É9JÞ=ÍĤ*h¨ÎèäÔ¡D
äP5£1)9JÞ{NQÛqsLj¶Z£LI½¢f":Ì;ê³áåF#«C½|G{UÒé0ö© ´á/Gó¨oOßHß>¶äU$5~:©ÑG¥ú^ôõ1ªo»ø>Dk²8ÑNe^ÌÍ0jf{d>FB³ÔLk¦LÖ^ÞEó&LöL|d2âØdf²oZß(9oF8S³¿÷Ú»5ãu¡£+ ZÞd?
-L4_).ãÔt],W,_&ê¸lóºÉÆfK¯ã9\þg bGùý`-z4ýüõª]õYNr!DrD¯ÃÓ°cú÷Þ3çÍjß;&n7G?Û0Çt¤k!sø9æò,U¡ÃkÊÆ{}G$¤-ô~ÑÕ¢öóý`ÐiµÝD³>=SÛ,åãPk}ÁTîóbå:¨iÿSë/aPíM½ìÿ{zÍNª¼ôüï±Ú7úo=CdàÅWg[vg*±y&Éà̪"¹F8®p7ß}þ
óoßY¼ñò¼DW2°ß}ÃÔHWWѸ̧¯)u_ÁwoRc.ifѸ¤?'°Ñ;Åmd
ö¾óªïdCÜìänU²éçÉõQÃá¼x½VDv½æå]ì£ä¿UQ×-Â"^0_À#~ß*Í<IM z§öN>Õa£
-ÿNw°WѨA Úÿß:tþ*$QУ!íýª5ª/?K§OôbÙ;àÝáe¼²(aY6I;$V:k|wäÊyÔ?II?ú[*¦ñxÇDl"D¦I×<ÿÓX@±qæ<{jbá2Ow[f¼l+_z{çE7«xצ«"ö/>ùR¢±î¶¹;ñUTãt·á·5ª] :Ï¥]DÄ ½e
-q³þÑð7-å̬R÷ÓU:Á֪⻡|÷c3bÇbÄ`kÌÓÍl«ùÁ'£Aö/º?ëIòQDc&9$Nt°èpIéõRµaά5úLFFNøJ~b§©&<ÈE^í¿Ö6èÔÖA¬"ä%O3Mx-oÇeþ(Oʾ/vbÑÚÙ«dÄ*&±J¦ ÷ÕOÃ̱J UÃ?ÃRl$Fr±¡9%vÕ4x?LläX+ù&ÖòdÚKxP,ÿ©ç¬G¬Ç¬Õ§Ì>ã*Õ2µæ³³ÿ%6v&& h¢¦¹jN-Í£¹æÌÿàËÿp¤üJå
-]-ldÞ¬T¼¹ûÖóæl¬IvâÕX¨ª
-ñµ½o¾ø¦ñÕTj߸´-ìðÏÁ'5Bèÿ¹åµ<6©ü
-ƼB)Z\æXá½,þÍêÑ*î2ÛJèì²Ýç~ÄÁ/±êäV/¬Q%¬$Ú ½=,{E:õµ:<
-ñÍPR¢ßî°9O}Ê5Iÿ²Gx·Ëãòº|.ÅSb"kh¡ø¡H:´HÁ±TÜQCÊí6Ð=tª©÷¸í.§¾ ÂØ*îá&H£ãL{`Ð|fÿög_p÷Û&Ý<_twÝW&/ïÇe×Ê2¨2·8ztû_¿µÐofK_¼~Â(¬ù&¹6¤%ÿcÅ^ÖQ|1ȯQýò±3z´`µø!ÊõÕÕ2WÄÁ&¾øeñaGõ@C':®°hw¡ÝÛ¥ýg¦%öpÞM2
°ÍÄíåäOØEüZ~+w/w/ÿ8÷¤xá_·uz»Ãä0c=1~ Ô1F£ ù*7°îWõúEú!ýf=§¿_«~§~®«NDHQï\è¸Ùès¹ÓH/Î?sE9Ð{R{9¯íRÈa±x²üÏ0¢[a+Qjë
-Úë;4V$¾A_ÝÓ¢<To㬻¢A=ûÛÓ¿Ãä¹éë$¿H0á7®÷nëǹY_ Oì¥nè,ý/ <?Pú
-÷)·YP?¥6¬W8î3¾k×÷ÿ½à»¡?Ø
-:¯.ì!^³Çï &Ť#é¬òÃt3xháªÖ
³^¤µºÒØ;
iaß
wûùûõ;Í»,Ç̯q¯~z¿k±V§ç
-¼Ñ=ÄcöXÜ!ÃrßòàuÜ:óZßZ0zÞ
-|ª7]hµ6"ÆÝ¨3ØM>éÊJ&=ì!_9èׯ2ñçä.ÈåÚ
->ÿÈ ç´W»ØÐóöVn´tR5Ù[×Þj?2Zúh°Ù âhÏÒjÞ3/Úà%ú/bÈ&êHDN&l"â@ÛÄòF´7`«y`Ý»ëõâ=Å»_ÿ¼·^<gÃ÷_Ö3ïÒ¥»¹
æâůOþ
-¶à,¾gÖ÷(þºøèc×Ô«Ø÷[8fºjh+ì§C°ºð]êköé>qzx´ÿc_Ý\Ý2_g7È"×åv¦#ä#³kw}:ÙÒ,ì«elH
-9 X)Ç׿p]XuaA¶v(»DÞªñ¾°?äÛÄÉ\U(ÙÚÕjå0â{EOÈ-uÍ¡ZI@,§ _(V
ëþö¾4<®âJ´êÞÞ´ô¢¬]ºWêVKêZrÛ%KÍØÛmÙØ±ZÒm©q«»Ý !lað!M
-vù¾÷~XvU[uêÔ©³UݵsJK⺯ÃÔ"rD ¼°N,5°Nlmà®êíM/sÚ-È¥À9ÜÆwSc¥+Èרuî¶üóiå \ûm)XSFÏÇúX¹2¼º \¸HÜWÞ¶ûÂëç¹à0ÿ"=b³mry!G07shVeÈnÅ"3¬ØÎ»ª`«äßP6äK1¹£Ãê%Wò²é
[â
--ïÅ£ÛÖ5ڱΩ54¾vd[}ݶSm]ÔqÖÞ¿)³h±{¤¼Ù©í:poPh^ÿ°leuá0_têçw-ÓTTh¬
fCé\q*Z]âʽÅù
-¼ÿéFCY±¶¢¢¢8×4|¼½¡ÈYXQ#±*qã\Ù¹·*TãÕîÙqÙ2nüÔ!îr:BbvgE`y¨¯wÍ+tô8¿ Ë*ä)ïúÚ¾ÊkKmÑhÊÈCÈTËÝÚBsµr÷Þh\¶|qOõÑj®¾Ú]ÝS®ÞW=Y=[6Àî²@3U{Ù¸û;k:jR
-ªæ½ëkRnØUÓYïú6ÕÑûõZAf¨Õ©ïú²«®¦$ø(7Ù¨N{ôê
-«¨°BO
ª¼d"½AHØ¢±UâB}i)*Ïy²³·-7ªÃiaqÂúMÝ~õãºçUº[t·¥qªô a¢âêoY544mÅY)¯óÚ*a_ÏÞTNn\
-ìõ|pôë}Oô]ÿã[×6=P®Mw,Â_Õ¤¯Y¶hÕÂÊöÍê5§N]¿óè{>¿µ¾AR}o}vqWqê»§û&,ËV5?uüfbÜ_r°òð¨Á]Ëk+ÇçpxXi3øÄ$r5ªa¹7}üý\Õíj'q2°lÁ\ëé]øõÏGÕwY{zµj5ÿ**ANìwçÁHy(_ ×}KQÍRòÿOåV[¦¶æ«ªü<1b2eiÆ,A@%&ر
-$"0¯3sfl.¬W̨=DP| þh=®ßWÏÕU¸ÊMÏ\ÒIW>
-Ä×&tuì9Ç9Ðí ¹ü¨E\Fmb¾QµÁVn+ËENc·ËeTU"^(Å£C
-peµk)®ÖÖß(ìau8#\vLÖÏÖk°[Ø~óNç·ñõwÔ3êW?rPòazÅë×§>LPA¿8÷ÁÒEôä++ñÙÈ,åñgîÐò%+ÖLúÖßðÆu=7Ö>Xn*\wêDKãK]~Å{{Seõª~w¡õÁþû3·7,ùS×Õyâórü¾ùa[vÇÐéß¼qÅ2±¥ÛâÔÃn}ðð¤Ãß{®|;yÚ·éiÿYP.þA~@M.ǹ
-pÖi3Ù£<3|Ûd0ôCÆFÞdÄÆ|ÃËB:î58ÎÃÇèæ ²ß¦Üµ$Vin¢Ï|(àáåäcíܹ+<©ë«ÍÅE«Ìøêá?=ycWMEEÕ]Ü+×ÔÖ4B¾3*F¿q[ïàæâùÊÌûy.Î 1R÷å>ËåsÀSz®x÷=g®ËíÓ.±Ü4êfxë35ÎägðÇî"¤6©9õ;æñ+Ÿ¸°Î§_Á¼·àÝôÇm;I¤£/£V°B²eëÈS:rçDGó×¹õôUÓ j!yä~}\¸§eIùQqò½YÉÏLnË"Ïu7%>|³¬l 2C +v*G«M.ÝãöüùW8ôà-×ìÝTÑðÎî¡'úVK§Â6{¹5?»ýwïÕÏÎôí_uÛN?kvt!ö°gA¹pN·Ú]V¤4iÕyÚü¢âüê4éJfpºlVWB1Ñóføtwr[mÛálQdàðnÔöu«Öl,ʹri¸WõäYZ}Aò,í§ø6¸Z^¹ÛZ¹¸)'DÊ P9¦gÆ[:ü
-ði ]Hù,ôêËc½ØNâA?¶eBìL
-&§±Z*,=3-S©Ò,ÈÍÉå4ù
ùEù¼Ã<Va^cwT;8MiVy?²i!+ÎÎëÇUjÈÊ%ýØYÙòsr`ØBvRHÎÑN¼çÀùû(y3QyCmJ|¤îFsþÙ¦òè76÷?´¼¦ÌѲèhlôõúÓ?V¥Û
-
9ÆF§«À®áÿ×ÉÀ]ë·uîÜóØÚóØ#w~.»{¡o:uòôñþËëÅÆ8ñ²3ïñwVè[ÐóÃqÇmnË} ûþÜïÏ}!;£¶¸µËÑá|¿;
-ö`¨,£-
-÷!*ã~Û¿C
HBÖg-¦Þb^
-êB=Êá²1V§¿ïG¸ð¹RÅy@åÏgýUª¹j¢þ,#µÖKq)1ÒOr'Áéy×ôñ©¬¦ºÂ.Cù
ï³0¿ísâ\^Mñrß8*+O~úÝDÅu-îñ+¿Þ_±òwÝóü¦«â7~ýôé§Ö5µ;ÊJL¯nZ}í,wÀRÖ¿lãØ?è÷x*Ú}÷¦ý7ýìôMUÎ6îáøwþ\üÄýûï^ýM_Óvãeè
-tô÷$}oÉÄoK³qí°:
-pÈÙ@³àNí=P¾C]NÍh
-Ðüô'<t
-¾VxgÑE¿/ÑjKʬåÎr·å§ÖTìxƶ¦òêªÛ«¾³úûAG¾ãÅýµë¨âù#OAס6ÐÅ]YÏBívÕõ±öÓ4ç©vJéO{ép1y ¿áD`ªÛU`rò5Ã`
-ªÁG¬Eoâ?3XºûÓÐ׸ϮÞÌïbpè~ÁàLäK[É`½æ´§l at Wúö3azÁ³3Cª¬5}cVU('ëkV£Ì¬½Ö ܬǬE¬¬CÙæ*§¡ó2§sOobpjZPüe°E¼éù+ÜÏ`ræN°HÝPPÂ`r8(¬úôV!{Á
-§ý1ô[$0è-g0è·¨Á@³hÁ ߢ·ú-úo~Kú-Nú-)b0è·ä~Ë?c0è×âg0è×rÁ _ûN'²²c0ÈÊþ
3 Þì(b°
-¹µÎ$sqlg0ðX¾ã^«P½ãa
-(#&t~Iál"ólÌk
-(Cø©ie0ðSã¡ð¨Ï©¹Á*´¸F+â¿Ê`ÿï. øgøµÊXEÄj/g0Ø@íz
-~jo`0ðS{3
¿Á_ÑØ@íÛ¨ý5
íD>Îl|É3÷ÈÙÁ`UÖQù'aàßIùÑÑy9'Lê©}f*øLêDaªçg&ãA½h
|È Ñ÷!õ¢a
-{P!Å:à(0ɽPï§"Ô ¿ NZïý)Õ%9ÑFh x'
-uä·ñBdmBõ¨A.ZÛ=Pn>CÀCöÚ
-èúahBòýê¦üEtçú+½çúökSæÔ{±¦Ú#º6RA; pú×ëUZ 4âQctD"£º xcÒ_D6:òu0¶êpHúI at 5JyfÔçáI±¥Kx
-îøbIÔ Þåj(9®yH-µÉå!
-ÿ|pHHýKJ±Ã(ã-!EkCTN^Úwpî£tlŲDªA
-Å©Ô$*/·
J&!?¥1âýûËíDñsõ*aEFAÆi0YG"KF?E ]G½.Hµ5Jiú*2Rê´oBªÒÈ1ô "ë;ÔФÍí_.ÎÇÙµSËQì:ä_±KEA×çK\±¹Aª}źãTÂ
-¥8»2f¥E(Æ ÞWz`®^JßÏüÙ?Ï9N9ÐQ:Ó
-eu/åB¢kªbaÄη²Ñw²øßO£·\Ê8_$Ä>m¸Äü)105Ê+äcÖr>y
ؼĤy4á³ç7È"Iz~<1úfR×ÎóGàùRÖsâÜýÌGEîÇçv)^ºNH4.l"ýMlTÖñst¡èiþP^ÊQJÖÏ¢ÈÅè\d¶ãC)ãØ1H%¬ÇÊêI9_¨IbGRìvn_òå
-Шá?+¦ÏÑK¬Qjs»DÌî²SúÃÉù(|¥Z÷ü¯
-3û¦ómèËf4g«èÜÏÕ\b-TvvÑÙ(+Í
-²µì;3D¸í'è)>)±õtþº w®i)3±µü|~Ð÷,Yûþ"nç¤|îlÿÖÏR9ØJµ'A?µ!åL¥
-Σ¥pn)B¾jály1¤zD®mBݳZBËb/
s¥´WZg$êÙZ÷ׯ¶º³¤\{ÇÃÏ; ß{%Ñ
-bP%v"áPÄób80à;½1ïê1qc('5QqUú-ljª¯
ÌåÛqh87HQ)2*
-öúG¤¨¸V7F¼ÁöP`0A½ù¬646o"Q2ËÙè«<þH(òŪÏKÛ¡¶öl¬¥#õÕëØñJ#ÞÈ1äûÒ¹iÈIiPôÅ nÚ(öxc¢Mìõë|>§è
-R *
-3I ¤xÃÃã©UØñùC¤¯R+nyixø£¡`¸Ù?EÄ5ÞÈ h¹zýQà
°ìíHb,¡O?ÞpXò2 :)É´Ã×0£ 4
-{ÃR¤FôÁcÃþaÑǼQqPúÒ SWÅÄa¨Æû£ÒÎ8ðû¥Ð$¡G1£âHƤhÔPÖÄDejÚ?è
-Êì£âK5ñà 9[
-À?"
-PEô-P at r~
-ÃÀQ ÅA/¢t]L
-Fý£LR"Z( VAD£¡À(Ñ/Þ2¡Dr }çÑ×î¬C>Èx3ÆArâ
-Ä)do ¢hþh8àW*G¥HÌOæêÅÂÍuucccÎ&H'NÝpl$P7zG¤ºèöQØcx¤4^dÇ1)@,vY»®wÕUm½«Ö×׬êèZ»±Kl»|CW§km¯>]N}'é0¦V
-2 ÍÊconrÄ!ØEé0à4R$Èfa|Säèp(ÎFý° 8wú4)2_$xÉ9[0@¼|NÇdb^Ƶïüd)ËÉßú¥!Çk&6¶Á¢RÕ¸xiµ¸tacmýâúú´´MÝPY¿páâÅ/]´T\Ú°¤iI>ý¼îKÕ1ö¨ÒâÊ6l¶.ti~>vűêß¿`¿9LºðM a ãÄ.Íðø;øøò¯@>u¡>gá^ºAtéÑ¥Dn]ºAtéÑ¥Dn]ºAtéÑ¥Dn]ºAtéÑ¥Dný|(yMÆþ+8
-ö(ÑøûÛãr]¢ìÀ[Þ®w OÆûPwá«;óñtXK"ÊÅ<×c3
.ÔOÁZI£â(½&uá>ó±{ØN Nw¨J½
óõIÕÚ
ç;[%¨ZTËTªU£ÊZ®êV5]Âô¹Ø«}s+.Jf
-V7^5ÂÃìf{ì!\
~Å[ å}xý
-ºûÆýKý2ùn:S^Eçù;tfVÅOwu¹Ü3P:´«ª]´A.,v½¤â¹=°Ç ˹E´ÉííhhTi{ëX[º
-¡8RaÑ´×tÓõÑ+pùÓä»J¤ÿó´)FãOM³]î6ÿGÔCü
Ä¡ÿ ÄúA¹v!?8np
-àÎÎ%ä-³h¿crýb6å»zÚrøwñ?A$ð¿²Ê²Ê×ø5ðùÝi£ÉµÆ{ÐãÇaÁøïñ×#øPE{K6(ã¼%WÙ]méü~þ+%ÊïGàüÙ%ùï§nþwÓi¿ßɦ®ø÷ù(°N
-F²_+
-Ààz:ÖµÓÍ®úÃüZ:áµ²`Qªåì
-¬ÓãéNÏ"ÃuRD¬3Ðjó;Þ>çÀéÄxØË@ª´jÄ]Ó&3ø ï¢l»P¤}&!©@. at w"]è81ò
-0§t
-l@Aâ ~!j
t/¤W ¤¦µ}8¨¯ú ß
-uä!wCê´Ò>H³>¤EGøZ¼5Tù.HñäÝ¡_|Ô7«xÒ!$ n»O <ÁMðª õi"Kç^RQãr_K2'ɪ [ÚNÛüKSÆ×µÍÈÌæEÿáùçso^º[³[ËiËá¤xtàÈG&÷íüc-'[ø#cþÈ»ÇÞ=ù.¤öXíÉZÞí)jv-Mü"¯JÀu¸¯Ãªí|àïåU_Ç·-¨ú2»2øúwFOoÊ3¸Ýû2&3f3f¨'5³£ã4êM&¬Ù¥ÙÙ§ÑÚ:m«ÖQ}ÔÖÁ½
-BÝù$$í|7
L´eò£ôx7=î<LÝ÷PÈy= YÖ
-ãÞr×[ÝVÎd²â¬ø¨õ¸´ÎZ¹Ù¶fîMÊåÀåË7¡çtì7.@,Àíï
-À{â½x:_]äa
-¹!ï¡òzqoÈ¥Æ¶î ¸ò!Ä£:È[!
èrÇ=
-
!ßì·BOè¯âö¿=
-eOlÙsÐÆñìLΧt¤Ìí7CsRèdû5P¨e{0OËv}%P|.ûJ¡øTö-âR¼ÿ|Áÿ-ûòø·¨Å¿F6îI(gdO+`?¯A-¸ªeä&\à§d;0Èö*(öËv++Åc²]âÙçâ!ÙwʾPì«ÞTEé|Ùh=EмSö
-aÙSEHö,bÜò:~¹åé:§0X7ö!;åÔ+ûìä×oØD¶¡*Ú|5ZB)_.{HV"mzÜÅ&Ò;È·ã)JÅ-ÛëE¶Û X®Hî2Ùç¢Q®ã¥rÕC ¹6 at 5ÑÏØ
-lBÙþ$ ²¯Z ¿áë¢ô¦²Ù¨fÔBÊíË$ÛEáe|b:²á½Ï §îZfðfYøÜ=£Ã²ðYÏ ¿óôÿÇ3Û[á·àÆO>'Ôw[
-Â
-à
-méêÝ2µÅ-uÊËÝË»,ÞÎÓkonÜ9o¬;c5Þ|b7bd¬µ;ÏÓ¼4¯%cí$cí$cu¯¥cuohÇÝ=[¦t¨|MÓ\F:xK_QÙÖö\S¸
ºÎ²²ü^P!|
+îçÀÀmZõHû:(ËDjôrØUo½_Å#´}mñ6éäf£¢ÅÆýXH¬ëQã@*A:
+·4Äÿ
+Åá^/sDtosqÄÛêyF\iï©
+=ÑóË8IN Ï#1b_6ÆÊØÑ$GÓY6ÎCþÖ¼Ýðý20ËuÎ,¥ÀIªÆ ¡<áÍúei?ÅÓøéO¨kO
+wª¾
+
+çk¨1@£ÑêLnº/(`<|G¤+äÐ:oÃútK¾0´Ò¯YîòË},Zæ¯Lk.êÝÎt#Ï{8wâv¬Åã2ùï kë¥áJóÙN
+DõF1Ôí~׿xA!¢Û^;å¡p1\9Q£ÈÓJü4uõ^ÑqEÛóÛ²½oÝ#%)¾RöF%Eºýn[bEà]ûÀòªÊ²5SEØþ¨¼ØßÖ#øIª ÚùëÜ3 ¿¦}ù¶JaAÄh¡-Ôà)$"Áluê"âÁ¢9¤?år 2;öWçØ´ô¿Q[Ü|d=ýièȺóÿ ò
õóc¥¯X¹Ã¤80¸¬Í
+×ÏÓn´|ä¡ét¡Ö®`8ÔË&×ñùÞ"cËb cÙüYpsÊÃå`O{îâ ±îsµÊ³27!fÚãöXWg:=%ÅôqY̸QÆ1Öö¢W"Ôä;$6ëÊzÝ÷ã°×oò¡ç͵r²WhgÚ
+80Oç¾g&þRÁ\íï6o/7Ô×/¶ÅË]K£oøâëÝìÄ_¢3ÿ )zU=¹º-Ã]Ñ
+
?´¾rA%&éjÕâPl¸w:ºMѹXÿB8ËOè$J0Ù|6Õeß÷F%åF9É,Î%øå¸\ã¾ÙϾ«ËîvOßBâH¾ùöAbàL Ý"´BÀörZx1@=&Ï;3hq*§éjï^ú<®coïli/aU ºyÛ$xë1gÕt«Áj1ÂÍðXþbNݱ¼µÚµ
+«Ä:¸
+¥´uÿ )Þná|oªà>¥<µÓIwlg-Ó,[
+¿Vôà
+
+ßËkóhS±³)øPYK{
0»ç碌¬þO÷e+Ñ:¥#l/z aâG%I±'WP×W}| TznrâߤiA¹é¤óíy*,¢åü§J
+§Ü%¯ JÔ)³Îj
+
+/?&ù¨·èhíeÝàüaaì°Iììî[=ßÐg¶=GÈü0mÇYêÔ%uö?r{cy·Ä. Ñ
+S)úº«å/l-B2Sû
+SFªïÁËÉzá°$Eä*cWP ×htû~oɾ5ÊaÄ:Ü1Újöó$ Ë"èó¶²%줸T$,¯a^bÄíYvϳAÐ_ðǧgXPÍ]§;'ØÁYyù¾Ú³8L8ó?¥+y³âd"ªân «^þñUï;(ýùéÄÃô)ì'ÀÞr*QçÔ89k;óM4ÏwÌ·©¬èú¬[^Èóýwu£,3r
Òí9 Säù±¬KÎéÑBgL¯?ù?ïôño{éO6
+V#J
+ ÖÔÁß_!É&ÉCÃV,ò§H½è¹'ÉmµÜ4pç6$§>*U=¸ÞÐÞ
+a$ð
+Ô=ÃÓE¸lCd¨ÎhhöíiÉZG(ÏõKøEPoðá6ïï\ÍÄ\
+zlj¹<ÂñΡ42o¯'SêI®t8Ú×è
g9Moa3®½ß,T%D+2¨¦Ýåå¶XVvKn^8Y=w³ÁÖ5@ªÓR×R.æXØÒCÅiAoQ
+ÂV$:¸S»XW$K'G
+ÚGõeÍÏb½fÎÛdBRèj¬ùÙμûõ?(ÓbcJ
+Y±*ÿµ·G8öå8#¼Rõ}Â~-8rS°
µÆ·Åäëû°ÌEââ~¸ut®%áphºP·0Îj]ÓÞ
+!;E"ó
+¤ÁÜ}N)Ï9ä(ÑücîqãËôºvßíÕkÐûªÎZ¿ä
+?~!Øg£Ây¯(áqâ®hø0LY¿15ù9Cʦx7µýb¨C¥Â¡1S%«[qsÒèbÞÖ}©Rwr½y`²¥u«÷2ûAøz`É#ö¤t¼c«îõ
ÚWK61Ä'½] ·ôÔ³Ñgzçow=Ì¢ð&²ñ|òó:ÁXÓ«KxæRÂódoª=?a¦±Ì;'ø³vûeuÌ/|¥Çl g4L¼}æ8+D-ÇÌtÕ¨N,þ=¦VGõ?4¡Ô<ÉQS®dM96ÍC i^ÖpÔôÑ~A§0±[W!HÑ;/ZÌÎðâÚL*Ï~ðH¹ð¤Ý1]o}СÃù<×UIÞ©wh1ê`Æ¢UþWf·
+¬*]RkTtþëWÁ²h[*ø R1è0©E[íbi,ØÒµºþÞ|D>¼¾«ÀøA×ÝMúæó·86 ø0ÕZP÷~qV
ãN4·zaº¼Þv£º{`)eFï#søóªlãá[²÷3#´ÙÀrAyÏ:bKzË"¤ôT³è0÷mÔ\¾À¬úíQ~%.Ò`
ÙÎQYGS£+ü¾e8-Îë?øBsãdÀì×þ~#<5ÍtÝ*NYpÆ!¬âׯBP¨òÐý!¿4Ü9jÕn {
+ç±´ÈúUe¥8[µL¬tfá£pÆaM¦³
'èÃ)Í©(C½E¸³®0oó~z.®óýÍ:À«lqÿ®TgNfçI´c¹9ÏÂõ 6
¥¦n\SüØkÝß²è
+X*#rÄOñÆÅ©k§54ұƷîZyHÈ
+ù>{t{Óð§ÁXQòºÄgå·ú
+§þ¼ÆÐÓ 4ã uU3kÅrZ[XêTÒeð¥Q×?mBH
+GÁ¡tÞ»{|ö'C~ÿÃAt£hÌfÝm¬D¾Hã70óÛÞ½¨¸wd¨ðg¶½»æ0¬±ìJØ0S8üv®¨LêÓ!ra
+qÔèðPÖ®ÒìÄÝßfñÞßñp .i,Il´ïâÀ_GåxL`·i ¨Z5Tµ4Öí,+<ç}@ÚpÒöÄì^&ûúT<MýL¹ä)N¤Ð!¡A7^#gý½O¸®.X¥¶ÈnDÓ¡ºáïl|ÈsA^çQÓû8¨«ÎAW-Tùúòlïòϯ²<VÿíÈÓ«à*¤+v6tëqI}5ª¼¡¥v'£ìÃQ¶¶®QSïlØËdÝwOÚ
+L"ýSɵOÃh¥ùÀ«ç£@|<f'whûü#qÅBó<ô¨Öû§s|Ø4(Ûûà±s«ä`CR¬Çwf̶k~N~,[Ï àË{;¿mcl
+Jûaðèqòí8q5ÂD,ô&&cê º»OMȲGz·¶tO'Qx·y[DÄÝUu1PÑ5IW
ÂsCG]fxéY`7H¢ííò_óQUÿμ5/)9W±.Û #ïâBªÛÈÆ÷àÈ$Í#uÁÙáe
+(`±Ã2ÛNÿôª[,`âÄìÓ Ó¡è`ÅxhÍ4: üy¥|4&Æé?¯©¤uØÌثŮ´AL·}(¾Þf¹}~¶ü{>
+< ˰&w(U±sºUñìfØJqР̵ÿÙݱÂluC¦ Qx¥_ÄYì¿!Ñb®ÍÅÝ%¼*¬Ö«áúÁQhÉïB^¾9Ùé¢ñ°5ÞÂQ®è96= ·ªáãèz(0vPVú]ðÞ"÷ÒÈ?Êo)ûÛù%@AÏeȯɱîOzÙL¥&8Þ°Úû|±¸\èDø®W}£U¹î~~õ(Í?ÂÝo
+ÌÕók=Û}¹bÉ[Z;ï¦6øÇí's/¾Zzë
+Ó¶\G9&:®szÎ,\Ôª¦è'ïÛlqì¶9U´¬~ųU*5Ü2S@ Æ¥)kÛ_kb¾ÉÁG]KI´TM
+m5íM¬dÒN}ÊéaBÎPÐJÕÄ¥ã
~ÐEë(÷Q£9$ú·ÄøÝä˺ËÙÕëPÜi$
nßJGU<²L>ßJZn×Ãý%·Ó,x}ài¶ÅUÏd¶?°ÎUJÜçÉWÚúc
+·Í£¢¦&
+¹òÈcûæ»"Ü
+ÎfÛ§Ý®
+ÄyÈØ&hܨDK®eûÛ[ÜU(ÎÁþ¾QXWÛ>±¿åOMÆ*%NÓ>õ/eëhÒ)Æ6µ¶@òËçT-fÓ(BÆëÇ4ö¯!¾íÎÖUaAÙÈ\=ÃÀ«>ñV£ãí8`Í©àSàdpÝ©Yä?«³a̺$ÞXó_l÷?¶Å¡/ ¦¡®=
+gÑ@(¹¤'8¡ÿ P ÛÖbÆ«±ôm¸ª©±·Õ¢dwè@ÓlÀ|úãö°?Âyï@ù"ñ ¬)KÇxÞ ÕÁÄüJ]ÞÿYLf±¹ :{ádkí«ò°CÝx"n6{ÊëXëÀ
+óÛË
+æ ÞîL&ø#ñþ^m§FüÓTs±UDâoO~èt¥F¯éê¡~y¢·Ùæ½×
0v7ÔÓ¾,¯:ݳqÚÅ÷ÌòæTð!üRnò²TOÁb Ô²G;¿u
+ñâq@Ìj'äÜvD3j<Ud-¬$¢Åæ´J>Ëþ´#Òkñ¨êx0ÕÏg¦¹!®Bó|AcþU7Õ,jmÈæAÈc]O¦â]½ÑÙÞôòùkPÍ`x¿u±aÜP=qtä³HεÖQø£îiõÖÎÍ«A ÍG¼\)C¹f¹!ÖÕö·ÕÄ;fÎ8§i]TYõº¥ÜOû-r EÀU?ðñµNV©ëþw§ªL÷ò¥4¸S·LìÚÒïØ>£'ê%·P[.mB|ºO9îãDºüb
+ÐW(;³ÜåOÁ,ý´1yÌbáz²Uä
+Òª¶(J[ßþ´ EëbÕÍjw
󿸥DK="²I°uG
+5ض¼ÄHlÅ¥TÙÑÓvHj×X
+Ï$rPÁ4ÿ3°µ4vý°ÓùÚ¦võ÷/FW¦ü2¬ç"Ì»#iòì#@µÎ·Z=m)êfƯõÜ®RÑÙ;ukÁKf9Þ@%ÿÊí1Ï#}±uÀgä$ñ¿ B_ ÅÙHÚUêmjVv0gõHvȶ
+_9²ßBg຺ïÄòÍßÅ0UKÇ!ö
µN\pÌNuîÅ6g^þí
+Ù'KÈ3¥È-O¹çóå{Ê
+®n2dØ]:i#´÷QÄV"Jîhð%h®ýT¯çqÄ·ª ¹Þ¾
¡dì©ØøÖ©Ào³+H˶S\×ñöÓËý^³g^uÖç³J)âZ3÷»ðØÆ6!.ôvÜ6»ÿÑr')ªÚhðn°U¹]?§ä¦7/a4A¶~®#2Iä7õÙ!Cìqê¸.5¿ñx
° #TJÐdmHÅIá°sìÍx
>ené³ÒÒTÏÀbè¿#AcCs«øeþ¢[*W0X ÂÍYѼ8ç =ÝÀÀÌBcm2^yñîê0a"_$GÖÌ[ãôs9±,¢kR'GÿîzuK~¦:µo¨rÌÈÙÒÀÑ·,<ÅÕÀFzjô¤¥ÄkböSø»éÐ0[¿]pÅeÑnÑý¬&y¿g¯y7À$ly¬e§¥´íÆÛx%®Éï½*êuàÍô8¾8Ì¡Ê«Ú äï\~_²ªPo@&²Yi'C½X¼SÑEçB¹ZmKâáä?ÑÏ~Vý*íb7¨uLÆÌ Ã&áõÔÝ9Im
+©øXÛ*k'ÂûfVÓI$Ñ_MA>¸Ø5¹pí
ë,r t¬ ÞPÀÈ@WAoâÑîU¹p'j|^wûãÌü \èó)* :¹:ê%OwB°dÆäW'¿<î~¼Nu¶§å|"!þe=(µïË9ªÉB;OÜ
+ÑFäô_ÄVæåáF´i6¸Jv.-nT ʸ=EZ6Z]ÇGRÄiAÂ_l²cZÖ] ¾NÊG#Þö")f¯~Ýܬ ¶ãNìaóÞXêËÿ-¥â:·Zó#'KþJë
+µlZkJ[tz~âl#¿÷d_Vç¶i±ïöÂy{(÷xϤ¡jm!â79#a¯oÙ¤934RtÑqüq¹
+°Vy¿©¨£VènLì[jI5PÜ&Ð ø44¹i÷ܧÙÓpιí¾üVðyÚXBeNi
+\tBÆ*ÌÞzUíX³&Q_Øöµ'è$R§z{qÅ|Eç±ycÜ?ª¦Ä7<?àô-Ó- at p¨
+±A°)tJ4³z¸©%!è~/ä?¸´Èþb¥°çõ^1q¡S
+¹ÈoÞ}8"%Óî(þÍìï»óý¿¯ÐÖÜ8lrÃYUж_%Czæ®þÊ[º6Ã!ga sÓó·[+Ë22<M0*Xè5uSæ{Ah/ÎmNÕ/M[o«h{Xç¶oj$%ðodB6aï¢
H/ÖHÀ»Ê>ÝåßéZ:[bc4
+kõÕïw>!X¦rê¤&5ÙÜoVØ
+ÖJ ²hÆn$d9©p[òâ±v¹øs~L£½æüTÐBÑå=k@¬ôÍ36?6l»¤ì[>§MvbtÉû×5Ë@¶´URöÚ$ÈVÙGËtZ?÷Îx&
+^¢§ð?ñ»^JÁöõÙðkij~!Ð.b¡¿JÈØ_~íuGí»ÃUËùÖGªÕ<M:ïEçÉèåñPvÊ«z¶frúùÙ¨¾zËÙ
+ù([Æ<ÿ³ûûf0J^l¯ý,5Dàþº~þØ#Dzúèõ÷õ$ïÛHQ'
¢þ(¬ý±Qme3yßh·öÉÈ<÷ðþóæq)n®Ä ,ë
+oë'õÄ0É»ÃÀYó@ãb/ *KCSQ¶»ÛÂC·"Gc²mD>YT} jn,òfOþ×s1X¦Àæ§áFWÿËóydÙØÇi"ìöó¬>½k=Ôìlv»p%¬ä|ßÂUt/²Ì§ptDÚÅ$¢m¼}Óý(»FðOôy3D·¾íæÍöávðIÝ´AvÿßÎJØÛäª[/ w¯
+nól!ü2Û®ìðÒBÃ:'ÁsíÒvS/
+Ê-FK³óPVGþ¾ák42èûTÀÚ_íú »NÖÄ=·;@»Ií×ó¶ai¾óËYD
¾/AömòÀ_Ø/üYÁǨV(`k¢~ô@÷î¤ ¼¨>ìúÚ¸SY#k÷Z*KþÊøî ÈQ@ôIXa¨ ûPGwëTui38³*ÂdzÁEmÐ2Á3
+f¬Sn?
ªB~<mÅr¸mß. \¥átÜG|¥n.è²¥w!ÞÿéÆ:'[ZbÅ&AVsô1RÆÕÇYg4\Ä>
+¿CÝF4ÈS1ó\},ÀÁͪ%ÍÍÌ% &B¸Ñ»Ó<}¥ÏAë»wºìÌD½#ô>$gÉðÅÊ_æÿ´BbÇ
ÚÑ8_Y; ûI¿2)$ÞyYFç°M¶Uý1§ý¥
+ºP(ø¿KN
+uà*ý´#þ"¹ÓÁPÂO§ðnWìðмëëgã_µ½j@Oö²´-«Ép+=°Óé2zyÝaVØáOajG«Ì
+ N\'üãt\Ì¥`|0ÈüBÕ(ºèÌũբ36öíò²ýizSQhÇÔze-ô,oêègéÒ
+ðË¿JÇþ,õvÚõx¬Èá2&Í/U<à WÅzN
+m'ä¥[kÉkWÄ«EUlÝi+ÇÉwÓÇíe2YékbÒUFmIoj)059býTÖüzºðRi
+)DT3)ZØdQ÷ç@ÈõÞ¡ùm³ãÁmü$X
»\$9V
+MÐÇb&]ú/÷ArNòæ:'È.^d¡É»gÉaJAî-}+»+ÄÊÞµLà³Ý\qì3´åDê\`4|16GYcr>\ñA`Ú
+OKó+8Kï:jkؤ¬ÿbÅ»/ë}Jöq|q)»P3ïn¶Î»krÄ_ýìp/1zJÄÅi©×^á¨Zo8IJÇ]®FB>JMW}bعûj"u
+ùªbZð \¥L¼7³S-þdy51ö0ïväÓÍé Ôµ²ÝH¾féÇY|^kZû5ÂðmòÀo Ñã¡1Q
×Ö¼3dêâÜ{ËZ>Ìâ¹&¾Ë¯x̦¶¸7Þ#^cä«WE âp¤]
á?LpÙ$rµaô¾åáIÜnkKå9Ë
+xãèPÑÒÑ:Ìi-j2Âc¹æî
+ji¿ï
.®
+½¬±ªÎV4eìä°©?tò¾g½à{U^gîa V(#®
+¥ÎD?²ðçUÏË7 at IÞc_s&,¨°@ wV §K¨\ÒÐ31«O¢þØaý¾Åðf{i8Å%9>k¹ùê
+¤µ´IÛ<.¤6ÖkS
+MQ
+ÇéÆ%¼R4>óþÊ /rN9çp6¢CÑÌ}¤YÇÚA ÷Ð$`xÖoÖÝ×Fò½ºÏ½ÇYü¼XÕAcYzÖUµðlåß3ñ[/µ1GIÜ:XÌ*FÖïPrUEpÝ|/Ï4%1åæÁ,(62ùÏñóhv>RdÍ×óVNZó¾±ÏPLû3
+g6÷$(,P(<ÝÑÆNÝ?Ú
+³x`àû"èLâ£:MV4)PSÖïðêçÁi~¹Cw@ôy&¼i¯g<ãceî?dpZÉgÔäÎJ¢Ð"ûõÆD¢ÿI7ì: +õ$VòW-Rb*ËnO¼q(KËM ¼¢,1.à+RÔqj
+«øÈ£Ú
+îÐ:ß¹K¨dζdÞméN{¶üïeÖ CÑ FNtüÄõË.&Ýðn\¶pí`E@åv%ýÁÇÜçs7!7ØÎíù¸à0ãoðV{gª7»\êskïãÖëv$8·ø¡[â5ñãMÆ3¼ã³^^'<;Æ9""£8ïåÜï®3ð~ív¹;lñ?6YHà@èfÎû|Rb´Ýz!Äc¾&JôAíÆ_×oÚPE²2»-YÛÕzÕo¶Ó¦{2*FÃê¯K[s\nHù÷¢>áê21;±N÷ü°Y"ÅÍõ½dÜ´í
+_^&Û`Úï÷nO%Äð|Âþ·ûÊé÷ÖC¿gñL̯ÑÍþHtY©(zÉ|¦³¦Wþ¸Ü)¬'¯ÝK:/¸]õ
+T
+rì«øXí+¢°½3¦ÃzQ±ØoÇ
+únÎ3çÐm"/JH=Dh·poõ©³~T¦Ïm
5|Ì)1qu«qÊqâxVrõÍ*k;Þ">ÆÈ¾!³
+ö
+#§²î'áñ9i¤3ª[zZê¿Iõ¢Ë§¥Ü/.~;¦ZÓö#zZ@v§G§Usæ0³z
+wpÚ
,$%PÅ/H¢ÝHW=§!wò$«¿,KW+Ò'¦+{±&æ°rhh *
+ËÝ
+/à
+ò1|½^uú¼rö÷Ä*fTw*°ÓÔR¤IÕ
+q«ê0)ÏçúÏCòôcÍE%½çÑá¯Þ0Z¾Á
+{-G¸ø8e ]qUÔCÑ`C&ʰ"ÿ¡¥¾ü0}êLã¬ËN//5 ¦>-z¸#$¯§A=ÌuE_6NªªNÃW*ÅoXkFXkmÏ4øC 4¾ÉÙ+s#å|=ì¤'X
+m°u kìlÂ\¾§2FC£yÒF×(EØÊ~5>û!Þ*d8¨ÊüDðÎñHÒ<Fñ´ãe\3¸¿\ÁöñÙ
+ öÔIJhØÛÝ2wxÚa,"ÞQ"ÇcúØ©®_Üõ5kNÂlÿæs7ÆT²ÅÕè²ÿ¾.8²M)̲ҬêeM<T;¼Ù°ö5ÃÄйj\]åa¦Ñ_øOÓ®TËùÆáŸü$X¯á-]ÎÇÅ8tk`+ðÄê÷ý±z¬É©ÕCÜÈr£-Ó j´þfWr
+fàãí
+jÓT£ö@kbyeãï
+z#wì
Uw§|
+¡g|
OØ´®ü¤<EK}tÚ/Péµû°i<y}$à !Z×û ÝÛÅ·ò0y"Ãw¯ÒmGf¥¹òU9Îïµ²cNÍ´[qñ7ÈÞü¯i0ÄÄ]-'ݰX6Tøì¶Ôî[¶¡%1Þ'ÜêÎ϶ôö°M)öØ[Ê8S×;ß5}Q¨3u¡¢&ÂÖéõF¶²'º=6îp©+8Fæ¯RÃVQ9A®zSèÍo>`òËCããÆå0ìåvA4ç
+í_ã&Eho¨OÔ>\ôî¼²¦ £ÅGEM¼î¤i³ø
+H±
¾Ø
+#lì1᤿ªÛ0îës¹Î¾:|寡´XfÛdÚ
+¿J8»P¶JyÍ.svAÛCp::9ß¶Ã|47ËÍ)ͼ³º
X{hJBºãGE^7?ëÉNRìðôÌu¤EVJ:Ü¥eçSh` >ß@ÌËær|ÄLSm:¢íºþReï÷½Z~û¾hµ,ÍsÍ¢ÎP(±©å|Ǽ+|öÚç/`ñ÷-Ëw¸4À#q`ÖÔ¤·AyHü¿&µØ8Ïv£Iqr|;B3÷ÎúÙe]ε_x.â ©ªX`ønVżëÎë®(9_QåVT²þwÑn}Ü~,V»Xê±vé½ùÅB4G§ð "Ô$ȸְ¿ýhE´i51Ýi}È ³ÏûÔÉ£¹éº¯kÙܦ;Ê>XÌEÙÖ½S#n«²¯ùoðæÒ¬S[,Ó)ÝÎÅ7aÿ§$£k)c«c;tMSmê«·j¬%Î9¡F¯wü]"a©Og/ÕH}×®½8RMb»íhzÓºüüúY!~þPpýM*¾ü9Mm¿Ãû0M²»c¶¶?_¬ñ½ñ4Db¿×2JSkÇ%zxú³i|ÙpBJaJj¦}¡´:g¨°yÆb¼³Í Ù:ÂOS-Á£b(У\ß0Ù1ylµNÓ1üÃ=gHã*êýoñâ+þÝQÀÙ`eÅÄÛ<iðëÇõôÊA(tRJ*E0~Ç:
+áãî&4Iíé¼ò#ÇÌÏ<sBà)Ê#ZõxLg«|â66ËȸݼCÛvò÷kã¡`¸=HLqèáz»À{|ÃøÓÀÄÔ=xùqì\©/N0}]¬¢%÷àPçõfÂðv¶2´´^ß(ëÜgeÉ¿´s
@Er+-?0úèÑ(8õ
+<Ôäj¼B~¼ÉÛn×ngjPÞêÀ¾¸ìÕ"f«¨«KKÒñX½®X 9h©î9@ëgWnun¹
¤pûëË@Kî)ó³åx£U>YeÛ¥ð<´ùÍÎUT/ÏFºó[p8rGV°yÔD/QHo
+ö#QaÀ°·
+ź:¿%H^rMu]¦ýþ0f?ÿ¸dvéfM\5
"LFª¤Äd+ ³sÇÆ(ç8vG7mV8X'?sR±GJRzZH×
+ËkÚÐqEé1ÍÃ:w½¶´9Hõh]Cç~÷èÓS@ñÎýßP{ªðE?§ÓCI/4ÊQþðîij®Û-w©¹°î~Î-ç!B¸ë}>%¡cCÙMäÛ=ÝÀVóüt²bi$ØMtAím#qWéÓ±FGöƨzÃÞW?®y7U\ÜÝp^p£é_é5z-®þK¬gaô[Ý©íãb°L
+ºï¨)`ʯ[ë§æ/¸I²CÞÿØ{w^W
+Tb!P>Õxè.-¾þÅ= o]sqBã+öyuF#ÿÒ2¥B~3úÎZL14^#ßxtbõfÓûGAAjÈ@!²ìØô¯D¹Ócà¹SèM¦e'äUÅ^:lx¡÷½¾Ù1Z·æþQlt`£Ö¥8æ·R:ÑtÀ¬¾
+(«Ï[õÈ*+ñûBß
+ÚqYÃ`z
+,©cÌPCÏg9ÂOºqDå½DeÀoì+sÀI~{ä1Ö\
ìþúÐãÓÈR±tÿ(ét_dr-¥~¹Aùc$"عê=4AâU}ß1joDð¯4lò:Ë4«þ5θÔõI{k±§ûNùâ&L %³Í:
+"éûvGÓ
+¿åò<a SÞ²5ü5ºûÌÊ[óÞ ¬A´ßrAÖ¶úZ 1»ä¯dݸp¸ZÝØ'DÖ¿¡òá
+>/Þ+D3k |5ý?è±ÛîT¡û¶
+CFnÙ£Û¤ÃXÚfRªRNÕÆò¨C*}¬³Qëñí`g}ºiü¡rss)¦.¢ËG¬Ú`+KYQÏÿ+»KÅÿÃÖfe£R:ÔÖ¦Y¯÷¦Æ+ÜÎï
<ÙGBTǤbXi¸®Ìü2A*|OKܧ=IÉ%ä&Iê~â@d5#¸Ãæ;GÀ¾Ïg§ºV}>#Ã
+ðìkçPcøbÇMîÙò
+nô Ybw¤ôb>:FªGýÖ|Bd¿ÿôB3¤Ñ²ã7KE.boÐ"ü;Ï?ã{ºQU loÌÜ5Ù<äe A3ñî+98gº&>ÎZ!ÃA¶Õ@Z°2ë6o_¿©äɳ
+¦ZçQð»KÚW3.Ie'Òésaû
+ïBw®D4ß _1Ãði[þ³4dfßhÃÞY w槦½HóÛ¬ÞÏ"ãþîÝjKT`üm3©üdɪ(&éko¦z+
+
+T
+U±Z:P,«:OÁ"uÔÔit°bÔ¹¿è~'Aòa06H§&
ÐÄäF`Ëôáκ»·¬)ç_µoË3<dÔÿKFQ'cÔ1æg«Ú¬Úu?5;3,Ó:´E±Ó5Ö½ì[NoÆ
>
+H/^¤M;¼?*þHéìÏuê¬>åú}®§Ã¼íþQÕpÕ¶_ÇycVc È×%
+HůBëÆyHpRå¯óV¢X} y¡EÚòù^8ÑÒí+XuêwÎ3RqÎ/;ÞaÍ(
+ýÖ1ßüú6©1CçÌñWHJ{E*ȩ׺<G)õ,¦
+
Û55ÖR3á«´K@ gB¼t×U¢Ä+k>7aü¥ÚäB
+F.ÛºVºb
+æ.ª[ìÿÁ :écA<¸Åc;
®Î-¾õ7ÆÉ®,5aY« `ÍC
\¹þøþ]÷h¼¿â+E:¹ê£¬yð.«}RòåîccÊÜ&B®è×ìPF7Dbvôtl0ÎV¬£¿|k3ò§ û`×ͪH?TdP
+@}½áîmv[ÂI±UGZ°8¬{Þvq,$Z¹7RW?¨*DÝCÕÒÖýåOçKýìV=§ÈdëjÝÝPÿù1(
+GZ²¤U;k@*ÑB¨FÆG4ìhÌíþaHchTbEÊÀ´¿
+º¶piùÛ3Eµñ$6f}ÈyJê£ñ¯$tQÏÇÈVó&Y%ÒÐXËtjõtÅ]¶\5m.{²sPs-Æ5¿ìäI¶{Þ! vµ!ydzø(|¦ï|ï8Í3>éùß (NJtáU0øß·xB6EK;Í®`Tï½§½wGKª2-®sÊ¡¯~Y7(Ñà·bï¼o¢J4ò²x¿J¾-Q
ÃBúÜ̯U·Ash^"vPtFècÆÄÃÆIý*4ÌôF¬iBY@é!ÒVÛJ>Oj+±y+eìIBü±*Ð\#lçâ¡·cuúUFÈâG"ý¸N¢ÍòËaPÍ[%íß¾+Øü2Û=æiγ(å4ôYî]é?ÊÂZ0¶±fÁ?ÈwNQzÖÁ°»¢|mËç57Î`÷QÍd×7%Ü{Ͱ8ÃÚc
^¥«n¸9¥bç^ilG¸¿¶ Iºæq*<!ËJüT»º
+ Áû0éÑ>Â*X'UEnCYÞ¨vÞb@)G; B¿GÖ9 òq§ö%Zç7ÎÁ©
+½«Ïð¯SE<¸l?y@´B»+
+ÝK0OaVË/Éì½Å#ÄÄ×Zg `#Ë-íXtó'Hµ ß{,¹ÑãÙÅõÌÜÑaíê²]ÌëWB$+íû>¼b¼çøgîãÛó,FƾÐTMy6áòÄÊþvP-Ë
+¶é1òü®KÚy#(øFhüxÊYøkÂõqW·ìg÷£¸¶ah¸Ðd´ù`vÏ-ÑCH¥åö<:óéѺM0&^<¦Û!(;ÿÖÄæ
+*böÔ91à*{,Z-`)]- A4ca¡SBÛ§ÿ¤Bþ·Oò ³aý
:Å^!ùý|&ïÄf0MS}ªKr¬µç%QkcáüsW E¾7k$q4qòO*gǬ¬ àØªa}¿Fp~±¸bÚd±µj9Ò3ÉÞÒ OP¶e×vSLRÒ%ôÏ*JÊ®Õ-t5DùÆï§#Ðò"Ѿ»9W¯<ª©´AìfÀ!P×ø~Rãã±Í}·ô!Ü
+Ã××a!¥@çpÚ/ä,rz~yNßseÍô`×
+©OrÌ*Qìôt÷míØpMëû}ÆeÆnbú£äpF·|+Ú(X×O"¿"+KÈh~ʾwOÇ'.îãÒ|ߨXÁ(¬¡ßÕAPà³á9úf-ÒR
+¸§ô`) 4VN Ö>\É9ÚnÛ:[ÏL8Xð
+ µ§§Ù3"Ê"o'U4FËv{_aWX.j6!%hîp¡Ê0S´îí¯FDmÄâ½
¶vY¯]°ðÅdõµ6µ+þ%eÜF-óñÆÀlê o d,øH%éXÐ?Hجt`ìç:S ) Å1÷èz(êÖº±èLPÊÏ2ÆI¼<ÇÁª
+ÑçO6·*a´¿üÃiÂÀòO%Å)XH!\ÇïçÖ½¹pÒx\Ú!>IÃZÀ¯¬@Σª:êÎóY«$¢¹d¿·^]RK-AS˼Iaúyky0aïpg2íNL*¸vÚõÔc¯UÜwJ}ÞÌVä³bÁü>'wMqS»ÕEÆÊv¬¬¨e§ßØVÔ»20eéFD§«VÚ9In¾ûÌ)QvÕf'7[ßË Çè6ê#´àÎÿõàmJ¢héAç.o\÷Ï9ÈJim²Í}%ûѱ³
+[¥3Õ_â94
+
+aºÆÛ,¤E¬§J2É..Â<JJB0ÓÎG¢Êîå8q=|
+ßrLH{»ÃÍÉt%j@?z7âª
+d®XCdËÖý%qlòØöfDìÄH½-éé)Eëº]åβb¸B¡éò±Õ©Àrú!ïE¶î(üouÛ
+¦8GG&NÔÁÀÌϾvÒuùáÉÈqÕyé~ÁÚÞ-ç³øÌiùwDÏ%
+Ð<KV.»?Èþ°ãbaÉ£03¡O¿"tZp4^¾îùÈ;;¶Òî%â¯
+4±ÁÆ;d½yýæÕNã$lã_û+y>ÒxJ¶eénD
+O ebf60_cü¡È7%#Ǽe@ÚÞàbV«ÇN3N,³¾+_þ%òìÏÎAúr8BüKB
ÍeÉaÜñ:Ìüܾ3ÑcÀ8HA6á͹Õòr>3m«{ܽrKqE*ê¹Ì²J>§t4& |nn¦¯ÓéJd-E³)Ýîõ$>Q±UÂIáyM¼ó@F°á9ûG¶z,ðxJùø´½ÃFÖ]¢?Kþ
+ïQ8 ^ì2uæ NAw
+!Xå°Ö
I¡Å0iß4u
+«æýþD¨\CrìnkU0¿õ"JÀ
+÷°¼wévÃ¥³ý¯}Ë·+F·Ic°,ïIWjJGg¿à)§ãÉ)dMb85í4^¹à2Q¹ìæÚ«dOË96Û¬EjòÞRLf¦EµWÛ^«×Nh..s)´ÝÄe£¡ãeÝWhÄi
¹ÃeÅ4¶pdjÃð ÍÁ»ÈªIÆ,ìcèçj¾¦àÍÐ:ÀÃJwÓÃu\®Ô^"X>EB
FÝÜÂý½iµÿ¬ÏÛròï#c[Ô¼ý)ÕP²q½làÙOº±QZLÎçÁóßÿñxV©6:@Ðæò«UBÎ?ÂZVBT¼ËÐ%é½C]·t êSÕd.zO¡ÄÇt@QÇVºwRzíÏq©wë/z3н¿ÈvIyË Øüäg½oScü¹Õ"_Þ(GQ)Ç»ìE<Fü°éMdÔôÌJ±eUäïU0ºj
+R4Lkêm¿³Në{{ÆK9tx~üô¬Å1Mlõî®;vòÝ´BÄ~I+Ýjsa6n0yjéþ
+\rÁ´n¨ì¬¡hÆmå¿S³ÁÔp¨Ô9ÛÖ¬Ã_âY:qâ#m¯Òªë?ýÙçÚKga=æ/¶dlèàÂ<J/ê"U»5krþ2ðª:ë©/[ÓÅwÔ
ï¼ú°:)Î7g÷ü5s ÿ©!xYõJ«g?zç¬ùC1#DBÇ~þ.)"uZáÚnK]&.«3ð-;tOx ©`Xè×ýd ¶ý±Ï®f`²&÷oñ26ÝõËm\!./-!ë°±RO¿ÏTà¾rhM×q)VéñNñ´V¿ÿbÄc6iñ¯ý5+±[³m[uÎiQCØP4v¹¬.§ªÝ°áN#Ox(A(=ÒÔl/Î!ðìF(?:ÿUÁàD_L¹2:Ï|Èæüfm=#Zq¡*Ù¨Ew:]/+Ë|àß]h^O·øÚm·DÍñƬMc'Oº#¹Ä©K:\9Ö§÷hÒöÜEîx¸PLC¾zÛ(ÇÅ×YýQ!I|(@8T?7è¶×ýÙcWâYMH:ð¤w ÒJ>R~ù¤®þ ÍPßc8ÛªÔ{yúÔlå+}YÉ^ãH(Ѽ(ö~¹µpLF¾h¿Ì]'Åe4|»_»§/ÀðZD&-.Aàüÿ
+²CJd¦sºTOÙãÜeõBo(L&d¾·=5O°ïÊéÊ,°Ç·oøà
)xJíG5z?ö_5¾îõø$§õêÐ-VêÉçòC ¬0o»Ñæ¥{°q
òôÃe_¿Wñ*OÄkA×ÄØrÎ]Ìl`êŹÅ8KKóaiÊð®Ûz´7º6®e²+ê¼ï4Ãy àÕ({îRÅ\ßPʼ\¹·O¡ÀS¶6DPÑQ󩿍oÔ}$!Xßî-[g!D\äÐô¦OFþvÐ4®¬¥L¢(7@ÙIA,¾áFüiÆâÍ$¼¨ÈDùS§Åëôè}®79ªÇFçéVÇÎ#bwF¶I5é__FÔSè«Ðì¶í?ÜÁ}åÚ?+ÿÈ_³&ãÒõè!<¿4xÉb =èF;ïè²Cª£'×ÙÌíÊU±s'!
+2²1й£»mcX}éEËÜRï~ÇÏý38S\ª§mê_*cãĽË,}L-Hkf]
+ÑçVz8öèÀN-Í@&3Gçï@}ÁlU;«´ ëy
+ÉØéêÓuý¦ßg>ÆÚ{Õ¸2ö{OTôsاôq¤u
++³öî½4vÄÚøizZXI0®y=D,ê¨fR(
+è°ymÞZ³OYhI0ý úÌáSMÕxX«¿GaËÉÙÖö.ñÔÒw§jÓ=EL®¹y}ã`þ×=úfaUU/&ò·ðýÜÃçj·nNpu[ m>á¨ÔñBe=TJ|§ù,a7hïCÄß©y3à>Zð[Ù5À/;;st½¤"1ÀRÒ
++|üûQ-ÉûLDÄ©í=
+¤m
+¾A*d§)'%X¨%
F'd>WÎ<µßÍ:ôèõ¬V¦3øq±ÁçÎ:ëh¼g1mz ¿Í×ðáÝEÜü |µÂ¯Ï³Mn-gþ-hOva÷ïnpÏ>â]÷W¢ÖÇyØSÃtÖSÆßù 9·7[ÃÎï§eæ>á
+ÍN ^qýÀáýÐ9<1Ø MP¬§¡¬Ür C$->ÛÓ¹£roÔ@®ò].µËp»aþÄz¡{Ö
+RrT6þ"±Øø¢ßóC10YËG5=ÙËÕeo[ò®ïMðÈǹb8ǹ|qÁá¶ë!ú!iF^Íåw¢«I^,búj4q¸Ä@2UufÁ(Ìî}³4©_RV34Ý}
+n£¦ÔÔ=À
+[û·ðdRú® W<Ú¸Hõ;÷ðÐ
+j/ï¶Í yßjIïÄîìê
obl¯ ôCÇ_CòrÚä>Ýi´PÔÐ~ý(µM,#Ãgªx§ÃäNîË úÕ
+Ìä©ÞKON¦<½Cvè²x¸Ô%J m¯¥³¸¸×ßt
+g{Æ&kÊ]ûTg×ÃÐñÙvU¼£ »¸[£üW /æu xt§Fm³¡²¶§nêÎÍ
ã(´6UoëÚc8ÞûZ³X±Ò©ü±½%̹Æì3xͦyÌÕèR#yI±«d±¢^7+còÂå©âÙä¿9ÍÙéH
é×Eص-²ÛPcFf\ Xï®Ü6m":bµYP2AÛRtÂÇñ±Ö¼wÎÒJÛlòyt%uu´EúÙ÷"Ký/~GµÝ±bVù°%
+ìq®Cc~@s
+,ôTw¼Å@þÿd'ëkïå8ÞÊòÛÕE£÷©èCqyͶãÜKO¥8è{gkl²Òì^
E¨¨Q{HVÛx\DýûÔ sÆS²8 e7î¤0tÖWñy¢äÖþRÖöî|úg-Û¦Ì#YJù3·ëádYCZ|¬ÜNMÀ§m ´7{PgÖÂ9~{qÃ~Ï]ögq)'Zq3É£ýøåÁ;óþ.ÿX̹Êpö[hÐÇ´dôaY_µ0ê_.jÒR¥Ð¦ýÔ¦Üiâo|
+s½îVTñÄGÊ¢j9ò+U PEôp{åØÑ+gÉ8Iº³¯@7Õ÷(
+¬¥¾YÄ×·wÀô0âûô'¨³_f)5¤Û4s D*Uf&"mDdiDÝ~á6 1\Z
+=@Á®
+«8~θA:s]ý¬ú±D¿+puãU¯¦öÑÍÀËâèÅ 3#õ³d^C ð¥x|D訰¹âU±âyWP¦àbØ\ÔýàZýÆBÊúÏB÷îÞó£ÌÓP@×Qç'ïÄ©ûßÔ¤Hd'Ogg`ô/(ìMЩ H)ÄqS~±jNzÍ´ËcqÃòlmbE±Á\idúZÍZfkz=Çä`
+XÇMÚ°Lüe±ñ¯ÜÑØç©In3Ùm%=i®WýK¥¤ ïá×x¡/¹×kkwDã¦VU æãt+_M«ÃçqÆÿø^YúÝ
+^èád ÆTtE|°<KÿJöfÚf=-p¨8qwßúÒõÓÀØ|&¦ØQIA"
+1IjÒ³TpVñà´\È÷#KtC¶%¯õ"þÊrJb>¸Ü
+UÑ#C]<=ÿ±'ù{KðF}ìú¿"º=
ÆHÈB¾ú(²EÄ+ê×õüZ¦I4P,.ÍkÁcèmàysòNyu
+Xw
>H ÃEY©H áÛ©
+(o&ö;ÕÞe0´*òÁft§Jå°°2¿aì% qTú+¬P'VdÏRT
+"Z®'Ü{gÝKkè¯XYà~ U]w(§;St®ÆnJÑæ¶6|&â9eñmÛìéß¡Ôq
3{4¯ÚoMóyɪkc]¬¤_*êD5¼Ó¬§
+qRPñ jÄVKõV9(ÁèLõÍ
Â[À½¾Wÿñá¹iÈǰÙ2øÝoMÑ*¡êW³ïrÞ
í¶çªp
+êÏ´hÅ1hãÄ(úÁi ÛH!7eÿà±ßÝÁ¦Uf
mM´qûìʯßâi󸦩#»5
,ªgþLz«¶þeè~®:.>¿ãj;!ÎÛê_»¹Øzð³gFOÌc÷[¦áý¿§
+3FD¶&ó µ¯fdGfרi¤Üw²¹n{±/íz `¡,¯L°gQƧíá»ðU¢O×9!RSÀgßÁñ¼FË£§ÝxÇwý+U~aÍYn'ðÞª½3»
+~mª,ÔLÓßøÖiU6}êFPEz®½§¨6!w1Aµá¯®ïçÅïµ8нJíÄFi@¿¥Ð6ù1m¢=wo¥-s²ÞÈNc3ÈÇ !
+ÉÏtÖ6n@.&ºD_ÖT÷PI²iCêæ+6ðKé¼ ?Ê3Ø¡`¸î~Jm|Üä¸rÇ{iÜÌÿÌ
+¥vûGëÌÉNyî±J'
+%érStúIÆ~&«ú|2ÏKGõÈiá{<´Ä¯FPúÞnÞÚ3ðÌÅ*µ78²Ýhï"#³õ'h1û¬6pÙðæh=éê ѼKtÊe5b¨ÄiË@[ø[suüÃi)YÎï®!Ön
+$j}ÇK}
+ZT8ïÛs9é¨ßfOipßv÷ÇÏCpÉy$dÙ/yé°i8:}ÔAóâ©ÅêÏlßÐhÈõFÂnSñ¶ï¡Eé¬P¯±Ã¶¢¥Þ¬Ç1\ÛÝJ5¼à@ø
+#!.È27{~ñÔºþ$ÞZcåªÏÖú#,þ\íÍKÖ
+¥æÄ¹óóQ@'c¥p>*cêi6¼¬"ܺ ôºÓÇ|_<ÄÛ`:¢j <F±°:Æ¿(0É !Aíh\Äõt7wcfQ«ÉÈw^Y«£»
+ð(ØíLKU{Q²"¿½ªy0Ù'Ê3Æ>]"ºÞûÞçà-Q9{DõgÅfÿ@8p¼9ÞLßËæMEåµ{Y\?Ô$ÑÙøCÓJºKß^׺2ïoòo±Ñ^¼#5ë{
¶üÛêS4§
+(Bk õ¶U:YÛÅÆãÃ
¨ÚêiøÄ¾ç0§mNÜiü}í¤Aæ¸<£%J¡Õv £¶j(¶£&ÔãvJÇResÂ\^Ãk
+âÍ%§E¯¯jQÃÊKó(K
+éòæ\{ýÊQu,hÔÀ <ç-Òî|ô
+~m_ «ÈªEöÓZ#%¦'Lõ $iàKWhtÀ-fOÄ®½õMp¼¹Ì%\´ÚAvJÁ`-ì.j0uwéÁYìþT'Sñ±:é £Â`¢dä&ÿ²íV`³+úS «Ïõ๵½þ Ëݲ¬ÞÈðê#=
+±Æ7$4*Ã3ýÛ"ö´ÏInË5iüÁû-Q.3$¨ëê¹N*«&qJot$,¢ì"6f©h¥VÁ
üæANWÙ Aî£yñ/%» »s¢Áe§wg|hìÚhs¾('8˨ëDâÉOõÈj¯>qnqÛ þñà'ÙzØô4uòëØ
+Õ
+!×ÿ®ÀÃ
+Ò¤Ù}U/zѱ`ÈCì.ÖZº¥Õ ÂMtjÓV{7EQ¹T¸
X
+¾ÚqcÒ£ ©kyøäRÙì@9Ÿ¿ÐÐduÎ
+eåé_1ýêXú'
+
+V30ºÍЪô¾2ðô´§o"Y\q(}ùPDñ?X
+_ºCÓ<û©ãQµ
+K»,ØÖt_¶]Z¥vÂ@a7ÇæùzßþÅSKæÛÙ!ÍlúéÁ·fÌê#:=Îâv,,rq,³#bß;#[µ>zà|ÄÈ-5ûÑñu
+T¨ëûhÀ|²Xz^þ
ù<
+qÜæAxfNòd'
+IK½×Ò¸÷{·Mýô u·÷Z¸²6ëÄÚ)ª=ç½míCì¼ýåC$3ÐÅú¯qÙ¦ú÷n6Jò©=6íÙkû»×C³[$§Û<<è#®0=DQ
+þ¨¥Ua4Â_¥ÁØ("> ä_qWbsU¥D¿§ÇóØ.¹.}äti¦Hz²¬µÄ¾ìƤ#TÑÌ{æ]{ļ®YaÂêlÙÖ÷ÿï8 at b
+=NK`CC#òB@~QÙîdÔz»G¬ÐØE^³
+kÔÍôß¿AqÀZ$.ìË0±0ðëæ5d@¤8e¨@C5»X¼4¹5©<ϱpDı4,¢GÀ-îÀþô>ôóMë?¢WèuDØ×Âsº {ÓÿeáG-ìÜ
+þÓÝ8èÆfðº®ÛÆ!þjMrÊÅ¿ßÚµü6!ÃâG³º@|gêGnédH`"UÀ;R¯¾-å~ÙËC;ÂfÞ9cõU}l[Ïå´~_WM4QîÀ$pbuéÙ&E:¡ñÇBé®û[/¡{¿»xy4 ÷ qëWæ°>¤VîÙléáË;ÚT
+¥ÃC¶®É Oá
+WQlò¡ßCäÌþÄʽ£à§éJ&]Æþ`¿«e2Êw¼á-FäGÚ ]®~!4=?sê
+Dz& µÃÃQo*$ͺ¶®8¥àV°±
+8¢OúxÃÂøÚ¼Ä 8
²î_Ï-^CàÖ½9.Ü7¾[hlkÈaݹگØ_ì3ïgTÆÏi§p¼áëú°ïê¦7ã3oúÈK1»?ÙLK;ì!jõÿ¿äº
ÊtïSBÀþÝЪ«´|)ëMrê?\
+4˼T¯nmĹYJã¿BZvÒ½[h91ÆÀùýæÄG¹väb§Åxo»ýÎfgxÍþ{Öª¬ñWpÍ_ðAÀ*Ç©qQÅsX.ÕMói3=KÑdÉ më²"Êwr®¦÷Sëý)J|<h{K¿/·OÇ¿þk21R
búsâD/EGP âÏ)-4¸OÔèrؤh$T(À»Õ »ÀpG{¨¿¢\¬É®X]ÔuXI6bIçNµ<<W Wª+ûpeåËd¾Lä®;+\7&ÜUѺj§5 µaü¡aïèô-åRnX!êðS_ö9Cï¢,Bi6If¡æWT´I²ÄêÙ]ûLßmV&VMçiÊJ}}øp ^Ã
j.£ÑQ½¤¬§å+¬¢0uhDtn$N{åÍéøÅï"Þ§J«ÞÃìô¹µkif4Êältz±Hî°pÔ:!dwðé«þPâ[_íëË[!mCvÑäu±+êDÃ!àP
'z<ÓÒnªLͼ9QyºÑ&lo!ïèsþüÒFþû´,c÷ÝþÝÛæ-43¨d«½¹âÕÉcÇ£Ðú§Q_lr²èü+Ë Òíi¾ßGòDâ''mQ¤0S"Æ®YT»iûÀ³ôüTÀOmãwã]!ÏF
+Tí§á©ýÌrÉ´Ö±ÉmMÆØ|Ï'F« ¨È-ðQr)ÝÊc-ÛÅèo%MCôçòFöaòãfá¼½ÄGaú}
+QD.8ÀÌÏ·<;ßGÖFnís(M'*gÂZofW>NåX(Ðdr§ÌT¬/9(7ìx?j:¢R°§µ¨;»ÑÖBâ7¦¼Ìä
+¶é+qßuHsì|É+CR-ø¼Fpë®vZ;[Oaëj 1Íd,HÈÁ<%wnk]Düc¥Ö$ËÉ¥£·ÅmåöÅLÜÎ3E§ë#º YÕÃ÷R+/®·[xÛçÉïÒËðGP
+Ü¢m8$,¼nÝÝ36¿&ÖukXÅf!osÖÞß½r}«aWó'ÝÙ5R^v?Ýy|¸÷ì¥ãu¥Þø6S fíuKøB»÷)DÔ:ÖÊbàíèýg+{¹¿Ü
+
+üÚôU!Vúѧë\#Ö
+_LÀ(£ÍÙÄÃQ/Qúe§qt׬Âöº$a]XÎ6¨@5ï}èÍ÷£(Ë£6© ©Cç¬ùCÙ>(Y"R\Evö¼6½~dpc*\½º§i
+ÿÃÒ¨1½½æhDä°ÖWâJcYz´7¼}A¾Ó ̼V%:HÍ
+K8BUåµ9$xÁÐÓ
\ÛkÄ> f4¯ñÔ?+Ñ$~4íÌ6ÃïèsÚf\ÊJÚ¸Ìì¬3³ië:}g[[tÄZKY¦µ3Á·¤HÿN}OEüGñmØú³6æÊCå_Ð[;®¢}æ=°
+p>Þ?ÈÉ䫬`âùÑF¶á¦W}ÂïºåZ=r=¶
+(FÐr`ÓMhyy3¯Ü4×+Æg
+øë~£ ß¹gèJBrPZ
+*t¤&`*xÿwÂ`0ê5ÐaÂ\ÊÑ:(âÃ6'siç2äøgH¯/¸³ÎRðAaÇ{ð%
+Er½Úë
Éî$¬¡æ¬-߸D©fãuO¹¨ÆíSíEëiE0È"(LÿHÅhW}[íÉîØM%® «=@õFóÆL¥\´8SðÌßbbFWlWpC¦Þðàk½¥Ñµñ8¬Qeæ´ÎNÄ®aønµþA5Í2K=Q6ü0)|M»ux<gìrÃÀAcgúzE_kwV'ÄVRÞ9R>Sε¶¢5$±T|B#d1E³°£?-^Øú
!¬ÅÁ)ô÷}üÕ üW[â
+!&zûf¹æ}êÃÇÿ?!¾|É¢
²Zé°gVÉ¡¼¨òC6/á;r¯2=ùs*]âݬ;áDWé½q
+TÏE*JÚ¬N~`ÇlyÞ"(Sßm0zîaßx¸õ{¡ãGÓ
+½'{ABó²Ð!Y4?ã8×Wïqô¹ÌÞóHyÄ.JÎF^ÀîM$æg~{Ï_Y2ì+[#à ªJ.bíûZqÝÕ¥õ=ÕmKyÓø??ª^s4ÈeyÁ.È2ÿ\ìg¢fôÖ
+©¿+p±ümrVÅVRög+ÍKSð£zïJJ
OÝÎBD+yÉÔÒLÿiÊ4<!âD:oyØ9Éå-¼ÍâMÛmkÙ6¦r>33*¹pW¢tOî µµ?ÊXc<ge¯ûÍ©Ý*ÎnÆëƱ«·è$k¦²xâÜN~Wé£ÇI
+ÿUõ¢ï¨m%dm¾R:ÙÅÒÜF]És§Åi3uÐÛAEçýåêÇi
+^SRl1-ÿº<%T㿯\?§¿´Èc®díôÓ7~
+ìe®AßæÇør N?aS*V\à6Tæww0$¢\J·Äßä|î_´ ~yµmYòÉá³÷AÎÀh>þà²x+²>#4'í)
+·â whK$jQÏKNɯ)uªåm£¤½/»^ñÉmðåoó¿ËHG
+ÜÿlÝx1}côóÂã8À¾y2ÚÌp¬ÁºÔY¹äÐ
+~'Üé%Øo\u7éçfïÒ`C³ñYtP+DyöÒÐ'
+±7=£(éPî¢RnYP*ªMO-P!7l6Áûæ ]Î0-7 m
yÍôÈç.i5æZÀõwqµ©Á]æil¯ç1F»ê]"!öJó¤©Wû)¢Ò øâÚÒ";èdú
+¤¡N7ÿ%%ªÀzì#ÛC»j{T°?£kËÄkÁ_SîéV
+U©]Êä¥É :o÷÷Xx-
+ÌØp|é±9õZÛP;à#=^5¡àóR6X¶»¢èäu>Ëä¡¡²°SsO'ß¼
+öüß«B*ÁpôFÎJªÞká**©K±Þf ³î²S³î~ÎÈ9
+V?ré4q~6¬hê[Y>57ØeõV×ÒSBèÇ+O8rú+ùµ_Y¥Öî"¸ëåÞn!§E|ku?=Q°Òmû
+[æÊ@rÿ1!-Ùûkrõuè$amÜ),ÂÊ1y2¾¶FÝIQÛå±k>Ð)D㵦²%ÄÝzá]J^4ðÿ¿=Ü"MK2bëákç´y~FtªDá)g¥ÏUhðöY-mæÔç"ų~0ÛS#´bò¥²¼Ã¿Ó±-u¥µZX¡ÑiÂ~è6±ÜÕfbK°ÿ²<
ÔZÚVvÌö¹5h2-pf;#Nl"Û-¢6âPÔ©àÔ:áÏ
+Yr]b}Dk§»K¬`jáÖ¯(×ô®ÌÝç¾
'oÑ10¢«rT
+íÅLñbIL·¦uÆa/uM.sUI[>u(\²c
+[ÎcwÜqËdÝçî!&Ç>O«]9õü§n¸Ùø°sdòAJ
+æIJ'£7ÊàÞ©/ÙÛJt= io%buÕq£ýg;7XWÓg¿zÜ3úä¢éøßÿ;ü}NÞvòÃWfz½\Xhû໬{¤O3hK®&$Gª:s rVöQöbc8%Uå. Ðég9F=¢À
+ñÝ¡'|[\üÿcVpgöÀI]Þuq¡Zá¢nhmȱ FÖLÿ§âBý¥
+ùFnÿlm@ÜÜ8ȧ8\°=¼ÕKÇvNÕÿÈÚÓJhæ%u¢7(Úãò·&ÈYúí'³rãÒy'àbì!ï+¼473i¡ÔoBнÃÛjçÒ»¤3ÑzÁVW`ÍHÂuäo
+ÿzzísÇKßÒ´ÜqÞói}Îé47x¢zÏݶ¹|»6%=ùñdií0«Çc1í}03îDn4
+f\'g?e´XÐByéõóý`à54NO¥J
+k¾¢I8F³¦Ð¥ÎÈ4°JoÌÑ6Oê0dË
ûµúÏIð!
+ÁêØuê-:ü ÆÕ{¯ßÂ
+ñ¦ÿñRñ¸!£
å
+%õ pô¹+j¥=¤¯Z«T.=q&\OHö &ª¡¹¢Kddö§»V¹¸Þ£(v£\¸RïL²ÚÃ}[q%A¯û
+"H
+äpûùS:ÏeÂѯûü*/îÉb$ÊͶ&×TaR=?öÉ®<Àè «u§:7OvÁó2¾EÝà«òÌ ªôK"{2M`]3иI¾ªa¨)*çX
¼BxíÝ`æéÔÄàº}
úu
+G
+bc¢gøYâºW¼K;Øüì
+E*CaUФ[?ÁsG}ã}#kÓ¾\2yýÖ=èÖ¨¿©>8w6ÒôYmô
+ at s56ú"R*Sõ 8eÃ>6¢»kÔ?ÊPY_CÁ#ïß»\a±GøL[JÆ'ó®c7gÎZ1(Rsúï(ÏØUëDÒUãÓÃõÊl´¹Þ;fªK&:lô)bÅÑÐÜ$}~vÎ]oòÞx±¤ß1ÔYÞß ÇØä´õ´ÿ
+µj·Ù®Qò÷Ð=!R+c®:Ä Ë)§¤(|ºFº÷äm)bƽc
+Tþyø0©a1áÅøð: õoK{îÎíÐÿ
+¢S)ÖTìC8Ú}fÁÓÓá<À4IJÂÞÃÛò6c^1xÏW÷Lãü3ÒhQÀeÄAÚZË|bT¬÷ëzaÖi);µ²ò×½¹¨kaX8YF·Æ' ©ñÈ禱4Göu0½s4výWQ½¹pbëH8a$Ó%¹ßT¿aî7ôÜ·v¾äm>T áB
+v½f¤µe#½,÷Ù
[P
+;©p at v¨tºÎ²ËDó×:Ç÷«]ïI.@ÉJÀÆà-AæK@Ë=¡ß\
Ö]® )D6+ËM¹Í@ðÆo{ 4Dd %D8cò5ìèâ3"iN+ ÂCppæºz<
+{[qEUcãuÏÄXõQHÄ]wçPÒ3g·îÅÒÑM)JÅdKòjhhÕdÌ®ÅgÊMôìËP,IìæoUg,vÜ]ìh«aÎÝgl_àÙÌOu?²ÂcjF xaSo´r+h²(<[B¯¥$}àÛó;¤ãùb¾lòºße ¤¨Íª"Tv&öî*3&²¹RâFòÑ9Ô£Sb3C at gµa秬ÙA`éï3ào¸°ÄZHQIüÒ¸g(¾Bõ£
+y'}1·®CEý3Å
ñ7y¶¨]21_^^N´~B϶Ã7í³ãQóðíX²hT z
+PÉ=s¼«Î/¼
E¹'b¶ ÂÁà
+º\+X×Duï©Ã
+âT8z½ÉwÁWîdb¦½}°EC^Pi-³ Õ¿±¼ºÃl£öhPu,´RE"Çqû ɯÌàf ênв&Aú1¨:æ7`£`TPáaÚAN<XÏJüØGÃ_õCMlL[=!
+Ybëßt4Ú7iÇÛg¹V÷kݳÓâ"=õ02½½U³¯m*amYç¸1ø.M1çØðBaçuM\G½{%ôëÂBâ¦?}$ÆÝ-(c¡0{ù:ã·³R)
!ÎÉ63?
1lí½U|AÈPk='TÍètN½CÍ¢²àxû¡%rý¢¸êàðñÇË\
+ØL*ÊYݦÿFqüü¿/Z¥|ã+'þ×à?pÍ)rj½¯Çí5½¿«Óúº],õ¨*RIO¬^1Ãçß2iþ1LËO¥eþt<ò'L´¼m9¬
+¡íÑ tð-Ç)UNDÝkÙ°³}];dqxÑmÝ`ÉE¨g ¶ì¨
+#oftIÑâ}exüë2Øoxç¹WâMüͶMâGCx?÷Aá0ç×4ÑLb?´8ÃÖî£ö,a]VY>;N_ÕB¸Ã±hÈw,Iø`F¤Ó¡î[\;MAxÎ>N/
+È=X
ÿzrû.C+ãf¿Ð}]qöasÞ¿ÞáÕ°y¡Ë
+_Æù2å,ÊȨ¢/µf¯Ft¶½vû7²Ë¶éó6àËíá{0Ü3Ø*óWgçnÛJÂ[îí¥Bý^ÆÚ(b|ñ¯¥XÛ^Ë|ú_2y¥¢oSÊ}áÇÓ°A|dîx±G±$O7à·üÌH¨ÙçÊ+Jp
+àÔW#ÃÁÿîáTU
ªáÍ3Ë=)¦KúÐØqøÇºÐá(/qQ-º
+uëÆºMÊtÉÌþ¯«íðÒob}oåÆp0¾û®âJi~RGøòûÁ7V&UÞ+³]è«<J+uäd`aBÈ&^wÒ½~z .mø *K²Ëe¡µ´kìpO
+[q¦3X\[2 l<5HÓ¥|uã8Æu ½F)ÈæIß¾áMöù´QªúŬÀUú:¦n£#@
+çf²c $®SG@,`çÔëfõVHv at W'P=l dnÃyS8^o¾ÃÁkÞòÄvRý§o³6O©ØÐÝì\ô×2w[EÊaµ2ÞfR3ÔÐ0]à¥Z㽡k)·ú®
+ ־
+YPüßJ·JS0
+v*Ûä³ÑP[@@ÓòuølxNµÆ
+âã½ñB##TcÓ <Hz}×9¯¥¡îTlB«ûðEN|üá ljê¶JÑ^^Ø%£I½@ÚÞ.XðÂþ«é@LN¨È]e¹¢k¬G0³HóðyåÆX÷¨ð´[K±<J´ÆzùÀ$p¾Ê|EN²T¨è-.×9#vq-ΧÎbx4 Ò\nÚ!£yº§MÓHà?§«k6cYÄ>É´Ó9×@o¹püæ²6[lÆ¿³éj-mªÃËcIbëNwéà£Úv3«ë=is:àx<8 4HFÞe-OTøã²'0/üõ¡íäÎÐÓ}
+
+Gé¦ ôÙÏKe!i¦.Ø¢£8a=|ÇPõ«J¢I/.]úê]5â¬icú¿¿·úÔP°¯ªÐ¬>ô:îÊæñÑR,ññ¹ú¡ýÖ×Öªí=KìÉ#H¶X³1!½´'
+®£¤@Ã7ô¼Kõ£kÄîÂÒþRp¢æ2àJÃ#½¢ÎfKɬaf¹ZÜsH'#'iÓ¶Èß Xúyî¢
+¡n~Ã/»ã5B"äT¸ÀâëÉ|Áe¡ÂºGLaLDBm´Q#¶éRv³Âû1L0à%º.dZÕxüÃ÷;;Ò
KÕä©kZZ¬eý
+¾UuPYVbèÈà>u¯pl¼Ç~éÉ:7Smูù8¢ø`zgm
+½}ixQßF²aôàµFU{¨óQè¢ÜZc]PÇNÌýX´m(1)Hxb£{qá
+úé¬DdxlÿAç
+/R¼Úi]µ&í!n äú^4HºI¾°õå¸übòr££E®ï\ØeÕ
+|Ú@¿8Ó_ÉBÎÅ$Ö'vXäMOLúßNêåTDÀ D[¶JDõõX¥DÎ
+ù;û&ÞÙø$#LÀÝ;fÛás2æè2Æ,pe ê
+Ø`,£ )ÿ iDÛhÖ.¨¿"Py`A´ãáuJNå¸rK<J@Êúêaö^â]¯Õª7ÛçàÓßuuô+
+-®íg q.Â[Dîû2Rã¸Ù;EȽÌ}Âw»±xüþsIÿcæyáPñÁ
+ùäêgGóuúÞG=&ýãâJ_ËÆ
+5Ïø{v rüÇ÷1b}ÝõO÷¢ÙEegAç¤ËGëÏбÖï
+©'W@ÞF¥Óï/èõ+¦¨âltîZËÜ÷ó8¦]}¦æìßV·bHü[ hS'ÇÖòÒ°®õZLÀLd»M\¢8ĵ,gq)`(öEhõÿs¸70,gÃXN¢~ëzLªHÒ+QÂVÃ%×¼¶îËcÂÚ
YB
+è¯ÖwV/Bùø
+HÖ±Äü¡¼GºÉÒ· s¨ÐÎö¥Ý`è'JjR³B»¾À5¬È^mpo¡ÿÔi\¹E^ÿsÙ
+$ä°-¾ßhǾ§mvf½;@þRÚbÖÅÀ¹µ/M< /÷®ebÈ|ì°)0TsÉéÙÍ3ø7koeúCªÁÌ
+qâH»À:P¬ÎKÛà¹ôêuãW'+ïS8+/b7àóö¿ûX`JMë'_ÌËt«ï,BêçÌPYAKfddÒ«¯)£Q2TbõÀ2Í÷#
+áºÓò0A
+"eÆ2G0ÄhtÕYez±h<;+åÜßD$°t«ú$I¡S²k
rpl9MTùi>¯ø7(.cÎE)¼
+wF]$5^¦¹\CX×õ°J±rvm,?ï¹g¼°ÊýGkÆ@/©üÇ@òqÕ7SÔe¢éD¦oàXb£A©ÔÄÖ°3ÓD'=aÉ)MÔêh°nT/haºÜÇsZÝõ¯?îÙßÛVvkÓ}£óz*ñ~ÕÝGÉ®ì¼@ö.SÒKìB%Eó´DÇ
+¯-#\Ý¢ÃàÙÌnQ}L;êìçuçvg.ÅÉM%ÏH¤
+k¿9(§â-|TÊt§tÝ*³
+U =2 c<[Å»÷P=ªZ·co'ðU¹Ë¹^y¥õ·lÝËR1C¡%¿³å=P,¬.&
+rªEÌÐkÞ)æ2ªó²sÀWÀu \Ó1<»ª2N
+5Qþ;=mBþ,®Ë"ð
+}"ö>·Ó5 UsØpUAðævj½Å¯¡[áßõ>uùåÐÆxiÝ(MY ùøMeÊ*FG¶ìwO3M¸ù*0<%j1ý6b0ð*èÆM¡@ÍQ:<Éü×½ON <Lxîü¬m(ZµfSÉ*
+ïVâ
+fµm[ÿVÿÁ;yw¬ÇPEÏoiW1ü\JË¥@ÇdA,Öäõí*/wkfsØ1=ù}'î1á^8¹¢=m!jdÀ¯À&Å[ÓÌ4λs¦âá#ÜÑ í=Ü>=S)ãEc
ByÜ1Eíõ=,zf¨8òéÃn_È`ǹ> 9/Ì19(>&¾ßd×.8ÉZ|5ºÎ6ðÈâpG°.§¢8{Á2";õËö\pmÄ$´áÂÙÌöÆO`3xíF¹ý>õA{SÄbyõóÛm¦8á9qÅ"SÜ¿ö| üPê¤rᾩ³÷âèîÝ
+"ùãã"ãÏA¼@o¨ØæÆíÓv%¬cìØìØØ±í¤cÛ¶m۶ݱmÛ¶ÝÑüë¼Â¹5õ
+}ºã½0¾;¯A_ÀyÕ¼?ɺHÛoØð0(P¨eKå#ÁKJgëæf
íÂqF¨PNÿ(®ÒÒM
+ÞºaUÐÙe:Õ¹Z-ÿfàF¡(¶>/r ³¸ FáK$´ÃÆ9Åê×+naiÎ*Ò×Â
+A(|{¢ªM¾üH-¾1¸ÄpeíiKáñ¿¢)üodo=BGFÞulg
¸~¿¾¼87$sþ3qLÎU1éGÏo(QªsîküØÓ½zzl2j)ÎÉÓ!2ç`z³û¡«Î mA¼k,fbÚºËzÝÈ/®tbvEÆ
+î>øSÁÃÏßfÃ[ûêo®¬¢Å<ÉQU¨/
¶c+M.õKk*n¢48zªÄôw8lØè=üi©ëouQü<_ÝÁ ãMtÑ;))pûþ½ÏßO½¦{íFǸòÒãv08ÿo^Ô|l»@°õü^~èqÏís¿oÜõA̾$h3:hôAó+pï|Ä%û¡&V·9üd
+ÁáÑl¶LÃk7= QV§DJÉ+ã
+ëÐ"w ?M
ôzÚhÓjXÙpcÚ,å=Õ¶C ¿±nzÈ¡P¶à0]4#pÎUßpá¥ÇqùRga¾ëÚ6.ö<9ù2§Nnþ-ðåS{)^o"10kªzS²MæÊþP©"ýf°úÓì0Íü¾Þ9˯PÝЫ] õh3+ÞmA[§\I=«ñúÙi>8æ¦
+_0ìââ«wTÙÄ~ѸÀâ»#3É×vô
+W«ZIàò¢{ÀFå®h½C7,ì ß)ãd¿ÎG1E¿CʰZs!i
+¨íQÆèÊíyã2¬}¬u¯R!Ãbý¸¯fD*íìk£#wäX×üòѹXòèrÐUöiÐa²Ì8Q¢-8'>%Ç£ô}»¶Ã¢q ÓÆò6êBÐÄ®?þ6 ªä
+'N̬Â3[y<<õ÷Ý)äÈ//¡a¼î}ÜÁgWÚĨ®£|þUvÆî6ýÛºï¿ÚFæº,r~àuÆÒùç8Î.úo}{D>UÒi4±¡2U¬
5dTÏBÒX_Æ
×·Äik ÖEÁËâµG¿XÓ -Zë·o°ðÇ~µáüü¿
+´æÀÊctfNÑ®
+^
à»Eæ|VØ£å=è&3kÍ*
+Ä^ÿ~°{¤$QïEZÕ8YBg
+Bõ_K:ß) íöé°¹·-qæ*uâÜð¬(dNÙG½áFb2nh<Ç4ÞÌaNÎ¥iàÌ'Ây|Þ
/ݾAKoÎm²&O³ªlglêñEòUDÇB2#ڮɻ<áÈ`yk²q¼5ÂN*v>\Ö)£VÇë¡ñmyç¿®2_y<²Ï'Ò1×Çxþ\h35çâw¾ðéAäBåÃ/è´Rì)Þæ¯~¢Þwî)Èoè8aqµÉ<lûQóØ ÿJkn_Ãp
a?cxÌNÌù¸Bñ¹
+F.Ù¸ÈLÞU¨´¤yÍçy£ÿ7ÎòµîÜ©YÔÀ,¾"ã½ÜV`ûÆ«k"+|"0.2äÓ:möÜÏ#¸îRð¾|pñAþnLð1ßz§ÁÒ]Û=5ÛÚÅ}¢g Ðîðmw¤ är¸ýâg¿RVy
éÙ¿|ù$`¶Ð+èùû÷mÿ[¶\UüÄáç{zËXÀÒüÑuA=È£t09¬ÌP½;ö ã¢vº>@sÜv[·7x
+f.à8¨XÙ\aظ3llî;§¸èÜÙßeXɸl.~õ¨ø|Êy§¶±h?cºËí¢%"ïM] "]ëdÞÆè¿
Ú%¶R1PÜÆô÷¦
+{ÌP5áá¬Ù¶-RO=JÓ!à§Êµ±a©]z¯/ù§çiHÀ¹(%êe½M<9ðÕ½ª#Ô2«¢Î
+ɼò;ê(ä°{¹
+â1±µeê±@ÇOn ]/{£âWNÃny¬ABËêpêè²4ud õk êè>
+ækóñí¯£¯òf7mT¢º])Òp ܵuÃuòÙúåÁñ·F¶3q7i¥Héê7B^0Û! |tîsÈQÇåÎ_mcÛÅ'ÁO³÷ÿ ÿÝ?{àNõ¾rµWWöpÈ@ô8ÉÄ Íüä ÜKs8hÚÙøÚ©A$ Ì5
+/_Þwc`0AøÁöêä9´-ã$'7âJ%ÅMú-nų7çö¥²¨ÚUâÁ!_èfpÃkÖIápìíÍjXã®ß¦fy-ÝînÉRþ+ðþºè@vÞ ÉïjGÒF¶øXJ´xmd%ÅdwPþ~õZØÿÄL8Ó+û×ÙClø±Ñ³Í²ÖìjÁ«®Xr«¨ÝÒ2tS»ãJåòýlYÜ䲪'>ûÈdëñÇûô·òèÚVà|þ$
+wâ1Oæå¯³ØT
+1ØO#01ä"
+âõíéÕÆqõÝ/Y0¡Î-4tÂ.xýaÄ¥ÅlkU)¨à²nÂ
KsêýÜH¼î1¶2EI_,\,Ø0HûååW>´÷͹ºP¦Å\}°Äú«·¼á¶µ|îÕíß
+lOD¸ð>¸683©È +C:3&exWá3ÌZ|塯jù¨©uôñ³±¹\ÐL
+ÒJ°BþjäaÆ/êÒ%Ñà§?#âsÔ½ð{1¨r?:àï"Ârb°'9û«£ùéQÐqÍyNR1X+¢dsÅkkcvvt!ù
vTNÁ1%:VµB"jÞî*Ë®äùUèªÿ`Ü "?kOoÊBëB§óráÝ(.J¡ÚCÉÆ¦üóAÛ?[í7e]B˰_ì>;¥´°"ûÅ¥öTêºzÛ´F´áO
+×AöçNÂb|ô©÷110y0ÆýîÅé;ÇU³´æ"£'?ZéoÈÝÐ,ìq°:߿ܵ©ªØ¶g^«õÊØ²Zîݰ¥ú'
+¿y%²yö2MÙîàdÅ%_?¯®¾H2'Ô_d?7*-Òæ&ÌKÁ¨ÉÂÇÑ_I)JoA[ÿ`ÍZìjs|Ì^<÷T-Îà³æµÀò3§yËÍ,tw|ÃÁätè{.&p,eÔ4×gK&Óø 81þU³>ÑltwñÖ^¼¾Ô5
LÅÁ¡6ï<¿
+ÈS°»±kH¢À3|+ËËÃ_aót*´ÇÕßÝÚd¥CÆ)|bÃ¥Ø ³ý»Í&È&ÖF®¬¥LIé-0,Ø_áçj×ô<óÕºuÛÊi\yÞSÒ7âãô¯§Òµ·ÒÎÖ2jÜúV¥
+º[¿êEÎóFµ7ëªäZü©÷tÕ#IÔ¼4íKýN!ePKÀ²ÐdsGƵÂNÃ0@ÎÃD):-UZCe/g4²uï£g¸J_Pì/ ¼¯*5:ÇÇ62Ñl,÷T¶ÔZ{Ó)Ä6ÏbyLÈfL*6©Ó¥='Í.ì£Owõ°x³·o/%ÕÔiL»Àà±ôd+Qd.H0=ü-L ¨âãcÜÊÈDd¾Lð?
+TqÇ0åÁ|p²8o4;9
+Ç3¤Ñ;@ýM+£¢7¿- _ÝÉlß\5nzL¶ìÓJøF"Ænk}ºôTÒ?÷Êp,VêU1zc¶þÄÏÑ£R53\ÅWKÙHq[_ºY=p<>NîB[+;××Xw°¥8è$￯vrzýÛ3Òæ<
¤ &J¡Mw&¼Þ»%ÿ5½ÀϽ×àë&³(x×6UÛt9lêü7çÊÞ^¨ä»KU:Æa¸BPPDÊòý¥ªm0k¨|ýtS`úªÁþ¥l.BAÇÖ
+ÉÛÅ/l½ÚVéA AÝIY¼ygø^hÎbß;Dx÷¤çiR®}Áß æk ÖÄ]zúZc99æm^ìϲe7}]Cbþ¨¢rÏõ^ê~ëk¦1Kä¶·bmêrWï]QûÜ©üö67 5b8^(ÒOOßnKYy'.MÛMûSÂ"Ôgí8aY»¦¬ =DÇïåAÄ~¾ */ú£O2Mw6ÝÈ;0AÇþï?öë1¹6yqëC¯Næ\@1ñý`RÞz¾ßC;RMÿ\æ¸mGZÜ%gÜÓË
+ÒÅSÛñrúZÆ\ΫNhëÃîØhExÞ¿úßìÉTu´{HÜy=ô0 U¾wQ°´ü¡*nt]ÒÞ4Ö%ÍôåôµÒ¨a65÷ª=BùéÀ÷êÑ.NDBvX½¤äj¢;»4I¥?«ìÔÓIWàâ$^]OÅÃ6D#, 9
+?cX?PIXðG¶MË:¥S"}¤AIµW=©ÌÚWyUڵ˽Ðñ$O¡Õo_ªCWÊðJÊe®Å°£DKºOçcFor´fÂtÖßý£Î|aîÐÏ$g'
F#S1Ì[vEF:åÄØÕ>YbmI'(Íȯ³ÁÂ=ë[]{Ð5æh\Úí¤ùæ´sÆí;Ëèiem.
tnÅy´G¯¯`jEOÃôMïVì£0p^PAñ±W¶¶íåðÊÒü&¯µb
+=GëÔEûw9UøÓm8ö|çµýÍÛqnÂJÌü@
mQ¥Ys
Æü~ZtJ®ëñÀnXv<ð}ç¼Ük*z:#UA6ÏbóÒj=
+Ãàq?§¡"ÄÆÞk
+s9lªO£3ÙiÀÉ4ØBùt?TD¨v¶Þ4á?Ûâ1·^Xmó¡©½¡<«$ÔíLrn\uù¼f:
+gH¥Ó<3]ß5ðR6«·Dj)}õeãoõxËrBeRý!#ÊÐÿX[4(2ˤ.Y|â
+viíA°~_âשo!Q>¢·nì®o
+âh©%HóVo¸QÿY©+&~\±eR¸î!HºjêtÖ.gw¨kتþ᧪!-/pIC.IzRN0t_]ÎôØ8å
+p
+#Pe!¬¢údoÒÎAVWyn~N®#÷u§®äî0úJ&nX Gèã5 ¶J¦`6M{î;¼¾6¬ íÇKKÎ+¤©M5¼vÃñ^ÕºÙØWëܧà1)Wùqåú'ÀdälÆ'ñ3½brwN^U:ë4UAS|õz¬GFè¿ð¯Uuz¯Ý¾* ßÔîQûØRúûb.psE!6J]ìÅ´ÿd`½i~BÅk3ŰF1QÀy*lFó³iB11t¬F»ÝuöÄÁ«ÄÍ6¡£ò7áËáçÝ7?µú&y¬*þ~Ö_w9
+X×±þh54BjÊ`ñByhEø¤ØK)DîB/GѪÅèÇn§gôñÅP.®.;f@¾þ½% céâ´Ý
+4Í»kâIê,°ÄÂkiyòOö9cnAÆHÀ£"ÚúÝ>_2{ÆØöµý9Bp½ddе×8ÄüÀkõÈêªÆÝìÿ ¨ÀήÜ
æð÷ïÌÊSÐÜc9A¬ÂÁ¦We <ûS {
ÛïáÍSRß
+nÌë9w§7gqüþ
+pïj¬ÐT`2/öõ]vþ5DXl¦«DxzàS`lð<4çDáUÀܸ
Îß9¢¯R[+CgÙgT´
+ßÈõ¿·]ívçÏE+'ª4Üëï
+d,ñÍýÇ;T®]
¡$Ï¿¸5\¥äíWD¨\G_É#~ÂRT%ÁÆA8b¨ÿíSÓ2\iVH)q~åïw"0£VýP:Sÿ&ð7ÁñC¹ÔOH*=´=P¡¾6s]#)öõA°°<¦¶¨ã]gªÔJ¶§¢Í£»¼é¦ÔÒ¶3¢êË?+¼ä¸§Ïî=ÙNbLPÄÞ}jpÆ[%ÜW<¹
+r}s¤ñFÕ'!£aÔÿpw\T
+@:[yUo-q}¨þÀ®è»<1¢H.æ]>Ó+wÿÖO;nò¥/BÆ=¬ÂVݽü
+Åìí=JürI¸Dùçñ0ÁW/ÑàI¿B].µ&ÏlT;îþÄÐú,g
+ô¦#g·ÿæÆ(¬Y<±"ÄÿëOä!B íDû8
-ÂkEçF²¦¦2<½ße
+L «qîèçéÆ£Æ ¿§
+<Õ$G?|eOg74®.§±,3Ì{l¹®É3Þ©E2«
+v>8_Æ^Á
+Åù;ñ}ŬaôepæfGÿL¼OÝ
+Ö[®T²¼7o"ÔftL©'ô´p,Ýܲúo>ãöó%êK5s«6û²94FJðé
+Ò[AkÅG7ZùåúÑÓÇ"åW}¬Ö
: gÊi"yÝÜ©Ì#ò¹*A~A,k V£`ry§#1òɸ[Ø=¸(Pj3¥°ÒJ©±ñï%ËãÁèGÉëñ¿T6§Zý
+-ídV¿µ8ùï
+YV> ~rñ)#R×*®ÚFecËí5jRUf,^`êÕ>¨bO)×¥¡¡têöºâØ3ÏOÄø©.$>ÖF]Ë]e´Y6©j#{óiTF¸Ëåu:¶òj°°ÿèôøÈZ¬v&:±3¥RMÕ<Ô»çx1ýc¬Fn¶ ìȹãÔS·Ê°N}TyÐÖ¶#Ý®ñá.®fýKÐè9úhO´,çÍÛ5K¶-aéÄý6
û¦Ë|·8Q¾PRjÙdã²®çÓp¤¹«-÷ÍNê°Ë´\hõ£Gñ{mèàKá©NêE'N·ãU«èBÜ¥9©Yöc¥ÙtÉâ/OJx8æoe) ²M¡oÎ
+0Õ«ÅôäéL¾ê¨iï0I0f½§l3üÍÐPçÓ?ͬ²µ´ÂI<ö'vkªDKõ
Y
+kß3iÓ:WeÑ«Ã_ÜÖ;úÞ8¿fts¥]*dDÐÆ·2ñ.Ïô;£5ÑLFhr¸bp#²ÀÔí*7gÀÏR(êÌ8b¡B1½»*àͧRq^ Úô)ª«ù~ûX½³85
+T~SL¾VòãqO3qW=1ÐI¯%
+ð¤Üëów
i¹Õ¨
+¬Ñ*;ƦãAÄ(VÃ|s®MÃ^P#w+Yôc`áä©ZÑ£!:ɬ¾x$ïÎk×%Ã}Tð|ÅPQ ´ÓÏrçþµÝ×»ÉÛØÍ&Z/»ÀÔ÷f£(Lg"´¦Lá¨ðo_^ª_DË)k{ 2õcìe>K1!LÒ_Ì~w8Ä`².Ù÷9²ëÕõòé±RûyÆMpo¡xãtæsÀ«ÜMhÈÙ(üÜý*IÏï,Y#j±ü¨«@ÇO¿=ó[ß;e'
+î¾d8A`T
+2Ja+Vê£-¢þC>>_-û
+åæè*dmôDÁMÌY c
+¦©íòÜrúäVËdó3ÍÆ¼æ¥¤NÊ.Ó'aZÞHz>Q
+,@à%<&ME]NY
+AõxZÛ^'â5=l&.Ý|êÕ2ñHs5o¨ô}¿è¸P¤Ê!-|gÅÉ ³0ZjßTÏ;!å5Ø, ÕR?CRZ¼'>ÚO
+´ùå×ñ&ò˱£;é¦ë
+äå'ÍÍyá9eÂ6(¤ûÖ®
+¤E*_DxûªøÂõo7qWÔrLÑÊì£$ÇB×°ÀÕ¸-IÈVbÙ,tø[öÖ*Ço¾Å¢
+r¹«éÞJzåëy¯¶Z^wJÔ4e"ÕG/òæ¥m?µJ§? Ì'¹ø÷Âê¡ëR°§ä"¿Ï?Sxôí*T7 V¡=ÎRûäf¸U\t/Dî@¼/ÅGÞV´éW¿¹EglTµ¤©o1'°¸Ì¸¬~p:$ÿ¯Z[È>©ë¼RÚ"³"®yÌP*>Q:;6cSöÆJ.\¶ñ-ÓS?l_|Ðrõ½Ï^M}ð°ä%³ý±vñB!«ZÄhg¦øøFÓ
ø<×;÷©hþØ
+$^tÿU
+|
+º·Újj¥ÉØë_8FÛÜf!wQ<Jùô©ºr¶³:~gc|õqJñ'
+l[Üs´@AKÉÂäJË'y¨ù
NàR¼9aiGdlP/³OiL¶RÕ5ÏS @´Å¬
+)ôfï62®k¨?Ñ"¿qûçsGE]£®.ðÆOûø]j¾êFc$]¥9ÐCÒ#0tcéòw¸ÂÉ?Æ{» øKßÞÚåõºO¦¹&Ù×Ðdí¸Ù²`+½½5ÏX0ÓHûGîPAØ7¶?5oû-HçýÅ*²U]ýèp[§Ë%Ñ ÏÆÓOȧQ ÷3&{g
+örò0x"ÓÆ;CàÕ¨}ÔØàjøkfø½ârúj;Á,³ã²~Ê>åXàøûD\ݬÉèó̳=OÉHVÿ°§üaùª¨¾¯zÏ:UÏ!|¿K÷=köÚZ]öç/Y½µë¦³Ï
+S¨;AR³E÷H¶(á5bLNW¯1UÁ²ô
+ì]?!½9 ü#ùmî¾ZW#A
æ|±Ýa¸§Ñ¸Ãòú
7ϯl«êf^´Ý.
úøû2=DR<IGî¶ú×ÀxÛ;t|ôN¯ý¥x(hôz6¨F¦<Âñi¢hp©;ÃÇüâò/{+LIÌ÷½U·Àù·êê4ísµ6àÈ«R{ââÜêÒNk/Oý»0ú¹5
Öù0}N$ÐZ}¡~ØaaoÓ Ü<ÐHÆ99pkns~[÷w±¡V0!Ú@·>S$ ê:-áÏfýoT|Õ^Ñ=ÐOë|¡@¢8 y(øwváS4]ËÚ_å;Ó l`¡
ÿnÒlS,
+&®T»*ÂÝ#ZÑÖ°$õª´ÅMAyZÍO+ZvªhóE÷3æqñÒ>âÊî9è%Mo¯,,ÈôƼÏ1Þl·1â Øµ$Réç
+ãJÿ¾ï.§}k©ÀTä
+Rëòþºu'ÍíJõQj!ËNäÐg·¢§Ì
+5
°3J8`\`0»úòÑÄ$Uýî÷Ûpz¬¡E%Näw`4XøE¡4Íp
+2¨DNÖÕ£7J
+Ö[ïyÕ¿jÃ
òµe¾ùr¤+ûàÂö#5f ÇZªÅÜ5RØ,,ôzö3-×^ðV7)ÈýYwc:÷z¸ÒUßD¿1WC|ÿÕ<Ø5aÂóõE¤Þ~qW?iø¨å/ÿý®êmFuÓ:£®n
+?XÕ«[;*ª´mYÛå¿©fzùèF~
h&®úø+üº¿ÿß§ÉÛ
+/X6ûHè8Áx("CXb`
+5¶eýìF°Í<D6ú¢{qïªÅãð;ÊuÒðâ/ôóuT-tSctýÁô§LÌ.éF»Ñ2¬8O§1·\³ÐÃâG¼òý¢MÖôE7øÙ²F\ìèõ·ë÷ÙØ4pèþud E?Äû~(ñvÛ¨`i"ºôpEQ¬Ñ$ĽSãQ1÷WJ×Ô7T7(Ëh
+¶(*wÂdÓp´ç×j2Û/â p¾ËÖüóÖ*ï¤aªkô [Æö,åPa£#êØU{6ã
+\d±ck±ÔJ&ùÞÉ8
+j®
Líe»¾4sªVÜfæ3®l&+ù hú¨e®%ï?)uú;{\$+£³O¸Y¿Ì+â-cp`¯º£Öi{àÒX;¨ø¹¾¼ ±z
+äÎ
+ É<psLÈüxWõÑF°ö!)Réóºæ¹êd$~ê©
+\0k1ƾ®´F%5¢"¡bV)LV{ÊEès¤zìºO|8z-S.ÏzK3DÔÛôWE<èøw(Îø
endstream
endobj
-584 0 obj
-26727
+561 0 obj
+78230
endobj
-585 0 obj
-<</Type/FontDescriptor/FontName/EAAAAA+TimesNewRomanPS-BoldMT
+562 0 obj
+<</Type/FontDescriptor/FontName/NimbusSanL-Regu
/Flags 4
-/FontBBox[-558 -306 2032 1025]/ItalicAngle 0
-/Ascent 891
-/Descent -216
-/CapHeight 1025
+/FontBBox[-174 -285 1021 953]/ItalicAngle 0
+/Ascent 953
+/Descent -285
+/CapHeight 953
/StemV 80
-/FontFile2 583 0 R>>
+/FontFile 560 0 R>>
endobj
-586 0 obj
-<</Length 467/Filter/FlateDecode>>
+563 0 obj
+<</Length 875/Filter/FlateDecode>>
stream
-x]Ánâ0ïy
-»*±'"Q(îVK÷BbØHKpàíë~wWÚè³33|3dòÍ~»%Swð:
-cüuº
Ϋ£?c¦ênI'ùî.íå1÷p¿.þ²OÓjå?ã³ëîêaÝOGÿ-ËÞa<«_C<nóüÇ_ü¸¨"kÕûS¬óÖÎßÛÏ%ëqßÇÇÃr)ÿ>î³WFÎ*ÝÔûëÜv>´ãÙg«¢hÔj·k2?öÿ=sS§îwb¨¡EQnÈF¸r`K®Á%YYâ+aSkÖy?1f~®Kð÷Ïà²o#¼eáWÞKý¹º 0ý«'0ýruò¯Àô¯Ñ¦¿{úWpÖÉ
-¦)õé_b&þ½húÉ¥)õ?f¥éï¤ý+ääæ¾LÿþåL9ú×è×п:ô¯$þNêÐßÉïÒßIýkôe¿ÄÐßá¿3É31ô/qoéïà`éoPÓ&ôkéo$>Í3±ô·Âô·O-ýc ¼ÀéMÅ«]ûZÕÝBë!){FÿwgçiF|>§
î]
+x]ÖÍnÛ8à½BËvQXïOHY²é iÀ±Ô@#³ÈÛWGÎtø®>R4éuw¿¿Ï·õ?ÓåøoÕÓy<Mùõò6sõÏãªi«Óùx[ÊÿãËáºZÏ÷>¼¿ÞòËýøtÙnWë/ó¹×Ûô^}§Ëcþ¸ZNy:ÏÕoÝÃ|üðv½þÈ/y¼Uõj·«Nùi®ó×áú÷á%¯Ë]îOóéóíýÓ|Ëï¾¾_sÕããå_¯cãs^mëzWma·ÊãésM]óǧã÷ôڶ¸¶®c½sSòü1ç¹EÌYYÙ
+ÙçÜÖÍùíwÈæÒ#rbNÈs¼§mܳ½Gçnýþ@?Ðàôøýþ@?ÐàÎìÈôøýþ@?Ðàôøýþ@?Ðàú~¡_àú~¡_àú~¡_àú~¡_àú~¡_àú~¡_àú~¡_àú~¡_àWú~¥_áWú~¥_áWú~¥_áWú~¥_áWú~¥_áWú~¥_áWú~¥_áWú~¥_á·sõ~ßè7ø~ßè7ø~ßè7ø~ßè·R~ßè7ø~ßè7ø~ßè7ø~ß9þñwú~§ßáwú~§ßáwú~§ßáwú~§ßáwú~§ßáwú~§ßáwú~§ßátF8#ÎHg3ÂÙ¶
+lÎù+Ú²rÉæÿY,h6¥;ÑÈDt8.Pi|ñFv ¢±+íåK÷ÌèdDTôÀg¥uNmÉ-^F
+̸>-AÍÄNèÄ
²,²éuð¬´aÆ`¥ÅALt&8eÁM³<#artËF{ÇN®tÛáÞ®LvqèípvÆv¼øÎKû2¥=²æn±ö=Ûaîzf»õ1þûåOOgñôË$@;<«)bÏwW<}ynS~y.®X§G¡ô¥)Á°ÔÁõë¨3,uðîÖÙÿdØ@±ÃÿÚ«ãÛ4ÍrùPvcìÃç1ÿûKáz¹â®ò÷pר
endstream
endobj
-587 0 obj
-<</Type/Font/Subtype/TrueType/BaseFont/EAAAAA+TimesNewRomanPS-BoldMT
-/FirstChar 0
-/LastChar 56
-/Widths[777 666 443 500 500 277 250 722 500 333 277 443 389 722 556 500
-443 556 556 333 722 722 556 500 666 666 500 250 777 722 722 556
-500 389 556 943 610 500 610 833 333 666 333 556 722 500 666 777
-722 333 556 277 556 500 500 500 500 ]
-/FontDescriptor 585 0 R
-/ToUnicode 586 0 R
->>
+564 0 obj
+<</Type/Font/Subtype/Type1/BaseFont/NimbusSanL-Regu
+/ToUnicode 563 0 R
+/FirstChar 0 /LastChar 255
+/Widths[0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+278 278 355 556 556 889 667 221 333 333 389 584 278 333 278 278
+556 556 556 556 556 556 556 556 556 556 278 278 584 584 584 556
+1015 667 667 722 722 667 611 778 722 278 500 667 556 833 722 778
+667 778 722 667 611 722 667 944 667 667 611 278 278 278 469 556
+222 556 556 500 556 556 278 556 556 222 222 500 222 833 556 556
+556 556 333 500 278 556 500 722 500 500 500 334 260 334 584 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 333 556 556 167 556 556 556 556 191 333 556 333 333 500 500
+0 556 556 556 278 0 537 350 222 333 333 556 1000 1000 0 611
+0 333 333 333 333 333 333 333 333 0 333 333 0 333 333 333
+1000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 1000 0 370 0 0 0 0 556 778 1000 365 0 0 0 0
+0 889 0 0 0 278 0 0 222 611 944 611 0 0 0 0
+]
+/FontDescriptor 562 0 R>>
endobj
-588 0 obj
-<</Length 589 0 R/Filter/FlateDecode/Length1 34024>>
+565 0 obj
+<</Length 566 0 R/Filter/FlateDecode/Length1 1334 /Length2 85592 /Length3 521>>
stream
-xí½ tǵ0\ÕݳoY4ûLÏ&f$vi´hCØ[F4B2ÚÐÛ¯°Ç[CÛx}Âì@oIìØ~d{IãäÙ±e;æ%1Ìü·º[BxïÿÞùÎùgèªÛU·ªnÝnU÷±ñR£íF±®øð#·>ò=Ða}צ1.ó9^O!$»¡gxýëÂÝIjÖ÷oéñÕ¬|!í½ÿ¼7ïóË:æAe½Ppmj»î{ïÀØÿõÏÑkàþe¸ßÓ?Ô×¾iöõp? ~Åð¨â÷$kð¸zÊÕÃC£c7<lL!´õ7¤~x$1l»ýå?Àý?¦)(Ãð%5RrOÑD*+*µF«c3ô£)Ól±Úì§ËÍy¼>ôÿôGòU¸ 7\úÈPúu¸NÃõFj~údò¥.O¢
-|N¼O
-ô£,Ð3^(è$jGï!_úèUô_¨4ý&Ê @-èAÜW¡|T
n6>T¢¨-D~j°úÚå©4Z®CßFÏ¡ß ÔÐ%¿AAøî$¡çn(ý-¾_þQú7é3èît9QúìÀcLô7`dÅ!T4 ï`̵]úÐVô
-º ý
-K ÔnEgÌü$ýXúé_¢\ °
-ÕBë
-èntJâ®Oßæ@ÙZôMt?úVâßÓ.zOz=p§u Aô:^F'¡¦?IQWR¿9¡y0£KѺÝn¶ GÐ:D'0Ëp9nÄß 8mªÉæ\
.>>^GÿÀ8çâÜÜëÀOÒS̤HRFé;é ç4û
-Úö£¢³Ð&oM¤w²«E«g#ðåZø> Rù6bPùmü+jÃ0ôi4¥mh
-êEý½]¾~^ADSXÝ8×áËñ)ú2úûô~úÉo$ï¥~¾"ýoé×Óÿ ûCËÑ*ë:àïN´æyý=
-|]øj~rñeø*|þ~ÿ;þ¦¨àû]LßJÿy9Ǥ$;%ÿ)=z%=k¦Ì0B5P¸f½mNN
-F¢¾A¤m£Ct¾þ.SÌÄ-Ìo7%WJn<,§:Sw
-éHº9=
, ã:àÎÐþ+ÐU Ëo ;aô'@¿A¿F
-ÞAïþ
¥@E|¸
-×| àn<oÀ·âø~¿ÿߥ$òReTUKÍ¡:©MÔ7áûêiêÚ@gÓaz¾>JÿþwFÇÜ(1ô$-¸ävéÝÒdÙ²y²urVþÂùÐù?¤|©ÔúÔ©GÒþôô¥éxúô÷ÓÁVIÿ4ýjú=^'hÐæä
-ëA'²áÏëq?ÛÌôr<Çð|Ìw'¾ïã¿ã$~
-sJb´J6I¾/9,ùäÒ*é%Ò¤ô
-Tfùeí²e¿¥åÙè,Îy¼6Û?Ò7PQÇIJ·2·Â÷¼ ð)\ÔV´?BÅi+]E9è*üÞI]A)ñ;p¿ôÒOÅñ= ×Qn¡n at wW
-ÐWquz%õG<:´¾<ÔÉ®§íh7Ó¾`éþz<u~½AÿÒÁù¹|xi½z¶~? yGjÁÏ¢«Ñèú*ÐÛ§ÐçÏ@7PûÏýé¦âõt
-ã2p#E¨VãåÈJ?KµàBêo©-©ÇϽK?zN{.NÀܾÞe¢ðe`é7t Vð,ItSú°ðm«aEºÂjTþh+x_·Gþ#ø©'ñåhCQÑÃàKÛ%÷¡=±X¬®¶¦ºª2ZQ^ZR\TXÉÏË
-rÙY¿ÏëáÜ.§Ãn³ZÌ&£AÁê´µJ©Ë¤¦0Êmô5urYLoÞ¼<rïCA|VAçEMãLp<w1f0{>0c3åªQu^.×èã&^lðqI¼fñ*oiðæ&¦x¸÷ð°`pÞnwrMzw5v6 at wTÊz_}B(U
-5aó54NX}
- :Ðïh_¼ª±Áîñ¬ÎËÀõ]¾uÈ7wBæQ $ÃLHë'dü0\
-ÚÍÈ=±ëæ$ÖuÕÝ¾îø¥«&èøj2FFÆm0o=m¹pëëWí]k§w5Zú8r»k×nbßâU³k=$]½ú¶T ©sW}3a¢%òÉTI%|¤¤órnBáëëÝuy'Èök-Ùâ´ÙbGÒ§ÛµlÏ3Qg÷78Ñ®%[Zcõâ¼ÜlÀÍZ¨5³ÄLñèj]2ÃNL(òµLp]P²Ê© I¢íêª
-3YTë²5»v)/ªk·³kWkÚÕ¹+Lo_çãXß®#ôô»;§%LÝmhºy5L¢WæñË&a¸¾ÃÈPÛ
-Ã:$E2jdI$Ö=N#¥
-<
-`¯;Ì*.A¥¸Úþ¬f«lN{Úét8ÔñÅþOØ8ÏK(M9ëðKøcRéFÿ,<åÉÖ¨i§¬4öí&Q῵)o%©¥OýÐÔBölÛLf§ê¦2ÌQ}ôí3Sí:3
Ø·;ÎLaÀÂÜ:::0íËÊÎÊòy¥&c¦9©Ôç
H*ó]TqQYiIÊÎ*-)+.2gÂ}9óðFÊÚ½xáøâ;·,{õæ©ÃÞ²`ö,ͲowwÝØú 8ðÎ_]êuæ»%R%ýs.ëÙÜ:ÿk{Fï$Å&%Ùy|Ãõ«ZwayoÛÊ;m¶@®¨0}þ
-½bÒ úk¬ºÚ}{eðWAF¥U-
ÝÌ'÷)åÅù¬S
-½\¯`rµÓK9 al¶4RÔãc\¾¿SÄ1Z%?©©4%·Ô^ìê·gâÌdúDLe¨\ÜôëHÓuÇuøë|9¾Ë-aP8n#|w`°¢#(0µÐ$3fTC¢WÕ.'¡m>«Û¦6 H¦l[ß´DêlSúhGd
-g裮ÂÂF½î
-,tL±SSuu;$ù ««Ù§1ØAFEwh&z¿QJ¿q0Ë\ûô$?qPgrYÈUb9LäO¢öåGäGÅ´¾¼LHHKå£Éòðï<zYyM¨$â
-¬B©Êlî,yÿ>½ÁS¢ÀùôÞó?ÇßZ[QS¯ª;~{ç/¨;ç[ì.s.H©¬á« %úGl>¬{æëçsÛJ&/>VbV|fÄbÙ¥Ój±eÃXjÄlªOjÞ²ieXÕéÂ1vUÆÌD·õ0¥íæ=æ}æ ó»f ñ>I:vÕ\£Æê$nctÌ\;Æð¯
-n
-¸[ÐÓe<wED
ËOû23W·uÓ·
-5f4»B
[nr, àÇæZXÆ¿:õnjÅÍÿV¿6h)iòÖ7ÞxhþNâwòÒ§©.ðì*ð;¿x\Ìjé³±R6£6Ì>s]¨Ù½Ù}Mè.õCê}ûÌ
pÿË¥5ëuV%ýû=
-¬Pèæ{O¡c±B]v(+kÌ£S«ÃÑC¦æñ8¤¿G1]ô11dÌÞ̹'s_&¤Â1UTË9AÛîÀ³#Géë%æPÞ®³'À¹×m}³ÃaÏLÕu§-ç¼ý%rÄ1%A8¨Àãp5|KÜM9ø/*çu8Jûríò5Õ+_ùb^Wç½ó¡9m»YIJ6¬¨©YA®TÉùhAeÐâÆÔ?[*QüF_¦Ë©íÝÚDwÄlËÕ#Åe°e²îýNW½FE|sD
Nbâñ[,±;P ÇX(ßË>ÆgiÖòå*H!Qã
-JaöÎ0OÞ7w Ð!8^âzYð½)Ó~w½¸#`
-;ão3x}R[¦%®øeWß´f÷ÜIì¿eãÈÒü²ÎÈ-¿®÷òØí³ÍkÛÝr/®9Ò=¿þ²ê² äW±
-kRo_µn|.ð#ý!èØYàG1ÆvIUR2(
-3*Äd©C
ÕLU º°i-¼¹´p³¡ð*æªÂÛï+<TøA¡áD)¶fùè,67·2· t~î~$Ï(Õg/Ä
¼LN-©µ>«Þî@ÖÁ9hG¦(}±¤*OÆÕëUÅ'Ñ6å¦"MÄÛ|QV»HKiø
XnÈzÒ¶ÍqÙY;eKÕ
^
-QºP$îPA(:%¯
d!kÉQú~oi:C¢ö|ÇÔ9à¹Àòj`vu,u`á"ß;2³Aà!üøhðAø~QôAL&ü(§Îæä×·æWÛòîihß»¢ry
ÃêÈr¾Hù¼Èòñí;_]g϶Ð{S?»bWYWQðÐöE·,7³:p[Ö×4DVu\ÓXëß©òlMƽ¸éÑ;IMÐÔ3zA·k°&Iï:" Èp"¦RJ$ìåZÃeóAWl±ã4ªë8/ÄUéì²rrn^Ìwë34ñÆú®ã©Ã¡y>_öZ5{Îe/ºú}¢Ih%P~äò¤ßõ©Ù:W¥«ã$4"ÈÛ%íÒµ²µr9[ÍÞ-* û+²ëÍ²×ø×f¯
-ög÷7{wxó¾þÊü§÷MÿYYf°5X³ÝAJ~E¶.ÈèdnÙ%)_LÍÊ2$e¥RZÊ`S³Ú3íÙÙI\þ¸×Ùîr%13y:e2,Hë¤_î¾&}W*&é³°ê áöx^Áçyá$Ýw0''h£¦*eÓß§àÔL÷À}ÝóxPÇRlîeá~
-¿iÀagrÊ=
A¯'
-7Èòú7PÓÛ÷Ø÷Â(ò=
Ê«WI|àé38<~f>ºâ.>0ð$
-:kËàù,dDÈaÐ|ÄûUmÅ´O¸ÏG|+QU?zÊ¡wÙå1Ö¦¥wæ?±¿2pO1§Ä»aáuÜêqþ9·|x
ºç²¬´©¬SÅDWú{h÷·%øüû[Ï¿Wê)oÒ)SÑj§Yk¼õ¶ÔͶëé¾PV,z´;'V
¨ôA²@\(b]9JP!QõÙ}*oEN3nqÌó®õ¶n6}[ñmÓ£GMG?S¼ª0 wNkN¹K2Îè4aS®ËµA'rër0vkuFV«Ë~
-hBn¼9AvEÌDÉerm(¨Ó²þ6Á³Ùb®¢Î³Øb¶aÛ>Û)̤÷ÆávZÌÚ²âÅ"A#àQ6#¿f§W>ð*Sa§.H
-gDyÇBÖ:â]¢ÄÂçÄìTÆVWO/üÂgyÊËÀDg$Ã|O¦àrÀóSæêË5ç/W-k2gx?´Í]©¢¬¯ÆïHýòüÕs»îéYcpPC©Ú=ù*Ànyݱ"(¦«&JïûJÇz
-äräâ¹øQï]¡Çû//å³zmQ]¡µÐVá¨ðTDñ<ϼÈjÝ*Ïê`®×Ðk¿Ü1àÙbØeØkxXñ°á¡àQÅOvD°\=-$Fï4p·ÃjGÉ"_ /;àG´Ûb`¬ÖàdúTÌì
-`·ZcÔѨÕÇîÍöåAÀ2éX±óµû:}´Of <'yz=vºÀa©5j3H÷)×ÅÔ
í<ÕÊ·M_ÿ)¬ó ÛS"K0HÄ*
-ÅáD¨pcB#ñ?]¾Bºð«gÅ÷8ýþAÐ~uRÈaîg'3¢°±{û.*FïÓÊ0ËH
`^fÈÌ4<´ì"Xp
vöü¨zÝ%YçL%kTÑßwxkaËòÔÂgùúÝKvêTbeNV>èÅèP0$<pÃîá¦âTâ¾:@ÝAÕRϯ³<ö@\°bO'ú Ö
-õF3ѳYo?騿t"¤6"¾D¹_§Ò»fÞ¯l×c
- *Aù(`#ñ¡_G
B0ÌÇ`R»SJ=[P½öÒºæ¹-XirDUx±dÃßì¶jôÚìý]srKèo.°Z´F:«
-8Î^ËÜxý$IÿqÒ$ÓíÐEsle6£8Ú«åt^Öïð;¨ºQ1ºAWÏ.².²Íu®D«,X/±tö ¬C¶NGs£¯´^i»Æ}u}£n·u·mµ¾SòMÛCôcÖ'¨'ègÑÓô³Îè¤óOÔè2ÌÈdH§ÔêíÈfµ8ÉjMbKLgé¤ÛuXw2vv Ç@@.Y§dc1-ÂNÛT§i÷@=£Ý¯·Å½Æ½ØxnÅz°Ð´XæyÙ~õ®:ÈO,+/!yLç*,1u)LfÓÙÁJI¬Ã6{z¡dÏTódÇ,éÙ,lªÃv¾£Æ7øH·IbQÞbåPæµ½3Ê
->âr©
í×û®ÝÏêUúü_ãýí
-¶{v·O\ÅÜzoôüeAë[yÅpciå%s~dÛÍd/>ÃÐ;àÚØú-µ[j/£U*· l¸ XÊÕÍê¦K.-^/¿C~wîýòrkOiÑBåB(/7Î×mJsPÈrÒ|¯B«-sÁÓé
-!T6æÛüüp X*EE'· Y8¤4×ã÷Íy¿Må,
-zùaV»ÿi'v&iNÂÅ¡¢·ò'ÃÖR§9lv*»Ð-âF"æ¶3gNC1&Np¶Áð&Cââ§E`9Ë{JØÏ¥n)zg¼ð^OþãA]FÜ\LÇÍs±Ñ\àô×O<´¸ '"©7R¾pA¹¯ººö*Kæ[¶³:¹Råó+Y·}¯¶ÉrµF¯Î*Ûuíô1;ë/£¨{éÝóÚj+ÚSË+2YjæÿâCFUFÉ
-©S¿¦®[Ì0kÀR)½â/A¾ðsæØ%T®öWå·úð1rBaØý¡¬T¨Ëª-Zñ¬>Uz§igÙ]ÛKî.{Èõ ÛTå71½ßcUËR}rB
U÷" ëF½>HÒ@ÒÐ<¬(I7ÆôV«Ný1ðtÁ
-oDDÒ§O2D¤æÇ2H®¾Àß¹¯¼`Å%ñ{!^0>®ÎA¬Çxίÿ(aÛÔiÁOZêlÂ>?ª;
-Â"¯a~çÆÓ§$ùíìãU>í1
£(s¹ì¢+-ýËé
)
-êݲ
-"ðL³YIêÈ"G)÷kTú"tp¤ôA}òbÛ¥¹6à{6lóÕÄk.xXê´Pë¦À"A¢¶nj`
-0ñ³Â·Lï
sĬg:RÇܬ"#3Pê¿åÁê96×Õ6Ím]ãßY]=ßîwiMJܺ¡ãÍßò|¾å÷Á
-úݾLáXh8[WYÙójKÙÖñÛ±÷GK¹Ü^´xéìó7ÕTxb©«o(ÈçàQwØëÀ^u`%cCêôn÷îóð¾ì°UHf©«\z&VTZÂðÇ«,Ç\ä89ÎPL¯×T©WÅKKöª«(ÏC¸Ësø³C*fªÄCyx$DòI~ú|?ï øÁgD|FÄg.ÆçÏ'x·È¡Åðü¥Ì³¸Y¦6Sß]´»ùPê7wì¼}èá?,,õ5MTde»r·/)¢÷¶\·è{©'}o|÷ßm,u×¥
-æW[üâȶ(XDZOÿ?»-ÁþÇ3A|dò«tÑV7VVd¶7;vï0Èh ËR4ë/ÉÈ Jý4S]âgiÊ023ßʰ¬Öç(äó½å¤22ÊN£(±ÃáôDÛ0¦
-@·J)l¢'ceÙõõ¤%ó¤Å¬u6/WAZ(ö*0§(PÄaÅ^Åcã
-¹¢·:Á>nÞ¡RÙQ
-¡â¼]àôFþùÇÌ
ºó®«æ·ÓgfoÌfo¡§7Ò¼ÚAéaGV}õÓ2> b°2±¼ÎgËfmÖÄ¥âòâ¢Ç!²«pku^ßMs/ëynâå@I¤Ä»Xqþ/ÊØòÀ;ËUìw®×¬YZTísçÕÐë+¾ßYk_êõ?<µ<¾®hjáµtËeÙfåùìBïòûOv¶5émÍu ê À«âÎØÏÊ<µ¡%\·
Ù)Ê<xEhy¸½Fµø-ÙÖ 'ª"uÅu%¨
k5æÎÏ[£èónðmõ\áÝ©ÚíÙ^¼½ä[ª»¸oyîÎÛS¼§äA´?äyÈû`ÞwËk''JNeXáçi"å÷£rY~^nn$#Q8C«´Ø-''ÌØ|¯¶$T\<!ñËgôáº\¾0Ä/\cÜF"¹Å'K¶"U,å
ð¶kwj3ì*WYÐçäBüâ:JÃ"'cÈë¹Ö29×[ö±ØåôÔÙ{J\f;;!nÁaËG¥!èêF5Áíð
¸¾#h#ø¾OK>!0¹°9øNêÜK®¯.n±\¡U¨ÕD&Ù+¾Ù¡ÉUê¿îºëVÿÏ3me2Ü&ÙpîÊçÍm±²Å©
Ni-×:2¿zy¬ w1~(ê+SÿLý¹|Ûª5ÐA²«ÇÜ^»I?×áÕjÊýZŪJJq³vr
-w¹òrîJåÜÝè[Ê;´¢÷kÌ>ê8þöìªÓ:{A)V)Å©d-ÅÀm´ZÆ!s¹UÚIbR¶(T¸¶p¨*ÜÖ°lSmTñ©,oá 1Lÿ-æÊÔÔ
-P% YÒ,ÚV\ÔéÄÌ$ÓHeÏ6UÐYT;ÃAÝÏǪ°§-qfg°Dé{4¿)%fbå`äuìiÞ·²$hDÖ^ö´ÍwðÒæ¸pÆôñ)4§â,@¹vb
-ÆZ6ÉoÌ`þ6,µ!R¹C;ó¬M<W#ç6åô'.³5
[?ÒÊäªü¶Á-?aÑɵw÷þÚfkáuUk®¬(m³nt°"%^Nï=¿*¢WHäK6¿çû©åjç*ËuÅeK|jn×Ü
ÕÅ+ðu^³âôó1wK ;úk¬K°â -*ZçI[ä-ê5òÕêÍÒÒwJïVߥyº_úúÛQê§ÔsÒ?Pàq5
-«ÕÚ$Ù!b åÄS£ªê½Þ-¥DæÔ5jʤ*bZØÉ% Ô-ÁSP-¸*;¶Û³Ä¡¬8óдÓ>ÛÑ¡ Û!zköm"KÁIÙ}Âa
-¿0
-R)®Nnd£ì̱ÉjÏEÇ%äù´(y1Cø*¾:ë©zÚº¬Ãÿܼ¢ûqéP õzzý¼`·ýÊsºËcôÝu'9ù>ìgÀÇüÄA«ç$Ó¿}F£"©jYµtÑXl*ͬ´QódVÝ"v¾±ÉÔX6PãèJj³i8¼z:VÎDvÕdÍdXA©4L1NZg`:·sºµrSë²8®ßb6ä2yÐæ,àgÝfc&¦`íËÝ£Ñ`0RÃiÉh4©LÆßÏAs³°K7cw0I'æE4E!ÊírAaÒé´r!4ÌnKIJÈB[Xù1*Åö°»
-Ø
-ÒµLÙ¬|
-{xeHúÑ_ámè±ï`fLvæ¨m<_4b>0%öû©Gm³4¥Ä»Ø=2¯¨ ÓjØGã¾$-ë¦nÄ¿S¯ëñÿËR½Jqþõ@¯?}î9[SçÙÆ¥ÊTL±8¼À¡úEjÉsÒ÷]uîÛK<*Xz%=ôá=Ìç®,ÕÐ
-USã+¤¸7æÁÛJëe>UkCרÞ6&aaÔ¨·ê¬?ÇÉ[)áíX:[dDÂArJ0Û²¡yxÞ1\
-13«c®ìÊÊì¯e?Mgoã&uyî<ËåQycKß~Cx²~útÿ´¢ãBðuºãÌiÞyÁÁF¼38lá¡/ÂöLÉÃêîùħlYÙRïOÍâ7òà´¤¬<KÌHÊ?sÁ;ílÑcñNxÜA[°ÛÅuýp»5wnZg+~aÎêKþò·¿.8Xcrnضneß7.ë½·Ð[¶8ÊqE¥¶¯müÊW¯ÿz½n°ªôo^ª{Z^cVåÚcK®>Ö^Ù^Óô:²rê{²¯\²ò;ëJ#Wøõ
QGùßÖåë
-¬(ÓwIMYC@«ôMé×%OC´æAûé8¥ºDLÿ*æT¨Krt!kþ©?ÇQº
-ù©#±c*=<I©ì×y%vÍHbæ Ív£m&`Ìm1¸¬^jÆõ4(dóm=Nv+g7BD¼õelw|È[Bmo²äAèù3ÕuaòÐé|51(ñ
ÜAÉø'lú½b"$<æW9ÉÓÝÙ²½Ûw¥ÞYÛöàmî.¸êüáR¿|uÙÕ1kQ±dCjñÄ£oÿýê?zÎy÷¾óC¿¾xaN ù9ØB;~>ö¨¾¶q«Z·2uõò¦wHtK^[B!?ëÏògÊ-eååó-Mþ¦¦Ææy«L;mV_Q½#º£ákKnßn¼³êÕ{Ü+P}¿ñÁ¼«[ÿUý&OcSRcÔìwÚ|ÙJu¹¢£&ÿIÆöýÂGùî5Ùle¡BEee¸ªÖXKn«ªjQSS¸y¾q>¹mn¿ðä¢míÅÇ ÂÑ£94åè¥íR$knjªªªT}u¾oooÂ'ñíÏV
#¡ÚªùÍì$ÝSÙö3!|"ô"Ñ¢r?S
OTá*rÙ´¿yQhá[ó'Cæ*s³9´ø¢øvæpnêìÑá:.,xЧtañÙªØåì¨w&èÿZ
-Tôªâ±
-Y5rÜTè½÷5ÕÌ·n4keaÑ7¢óÇtY }k÷âôÖ_ÌGM©%Ï6&jF
-×~÷ù¹=~[s4ÖÚ½Ô"×ÊjkæµWÔç
Wâ!U.ûñS·eêø'S¯Sׯ
-²|8ödH¦Oýf¢,t.¶VÃb`êbjAM]+ÛÜnÜnº[»Ç¸ÇôvqiÂ8a2(¥tZ
-´È2öcÆìµBFãkÕY¢d,
-¶í+%ñàÁ¨O|ílê,°ötÀô©âcy/+>¨"o O±¸¢C_õÂKÞÑQüÛÂ+R¢æq²iáí³
-\ÐÙU&ù]¡¸¥¥¤|që®
-Ü4/.n)¬)öB·®2©<CáwäeèÆ5ù9ÍWM½yËMµÙMÙî¢ùË¢õ~úÉöC{yùìï*¯ø6¾º/ßK$Ií !6 kbù¹8L
äå¨WÈË/Q/Ñ/r
â?6ØèG(
-SAý#Ò©$õþAX |?¦]v`EÆ f2*ÒßÇý«Ãþ°/<ÓAÚav*\GÎ,
Ä¢o¢IÀà`1T(.Uáà*OKS¡=u[®ÊdKjT©ÒgîK?Tö{µ*B
-óp¦vPÏòó¸-6?ò2E]!à6ª^([ ¯ÑîV>V$QRq:AÐ0X>2G½0G*¤ÞGü3a*êÂø>2¿¶©3ç?en{ÊaÝ-37Ê©gSòÔ"arxtzrÿ¬Êv×_ÊÝàÓªtrY<ÒàÕÔ7¨D#_L&i¼B©$ýC´¹éFèØÓ(2UX`ðÈ<©¦Úó©N%!RÕ§«À±¥'*±Üît;¹l]ÖÊIýåþ
-®²WÑU
-{3n,o¬Xe_V¾¬¢«âFÙvùíÝènûö+MT©¾6ehåNÝ¢µeÇrsÔcʲ2TÎSåå,ët8Hj±ºÍn´ó¯fØì9÷ÕûP
DºV'¬0N)RaN
U÷ë%:[4h·¦å l´É£äåA[Ù}°Z³ÖÙ٨ݶ=¶}¶ã6ÆfÚ̶¨rþÒYOEÚÎ[O[سS,pcÚ-?ݱ_KÏW|ѱáð±CÝʾwS3 ÄUJªÅg^6Y3ÖJØ4m²äicæÌb)âL»Íbe_òíWv,o[WàHå.S©M_üÂnOkCÖà;:WV%ºª¶§öVM¥¤~{ËÜê|çÈ$H}þ3´{~61¿ª¤¦ÈgPª´-ãçÇA÷ÿ>óq.R¡¬Ä2R}J§ÀCkÈÛêê#ø[Ó¯ÏñçÑ ³ýJcg¼¡¡³çv.D¥¦¨ÿ~jz/¶Ë§Éb}Y¹bMqÖu}~vKÎüeö>õ@_ÎPþPäªÀÍÙ&V«vq¯ß®ÓfyìîH(?,G«Vs²9D rr²f½2² @-CÐo½^UÌÉbݦö{³èß+ÈÉñqÅK
-F±-gRKÞVŲpÖdN9«ì0r@>yÌyf+9bSS3²ÚÈ/øúêEϸyc½øÝÕééW¯§ÃYï°¾R»beMíÊ_ÿåÜ%ÑãeëKùvFËeV¼ëWéø×VÖÖ¬$©sS»yÝú¹¡Ð°ËéTKeª"ϯij)ìóqV9¢Ò7#ļÀï.üèw±ú°²JµÙæ+[4k-ÊÊljLù}>Z
-{µgÓ~¿WE+*Ó¸ÓvÎÀvì ¯Ç§ÏÈHÒ=i¦}^rpaò¡Ê¤b1½¶ÛljµJéöè
-n_ÆQXiº ¦öµ{Û#:Ï5Ú¤#ûþ_Ï#;aéô+6ü
-`óAüÞæj~o¯^B²ÒìÕOk«%gôÈdRáèÝ$îÜéYyØ,0]ºtY§C£,®JmP
*úèæåÑå1åùCªG¾DaKíÀzG.³Ù;u
3x5såÔ7ÔJ¹T»z0A¯ùßuCü÷ÊÛ£Ïý>±VWýÜ*çû}÷÷Nÿ.øLÙÏÿ4RÓo'ó¤ÑÊïZì¢?wàF±M¤oAy´ù RQyíL§)~"¿&ZN2JÿòãPï+E6¡ \9p1(-
2+\Mû3}Êî¬@7I£È8útz(ý\Nê!¤¡J%a?SÑÔÐ7hªBoã}Ô(¤ÿY# Jú$}Òݲò
AñåªçÕ'4µÅºrv.û½Ò 4ì1þÕô@æ@æ+æyeå
-kÔú"ßüh)ðÿUbQÍ=mPLAÖZf+ÿKo
⯾I;Gó2±Ci´0Êð#",gðGªõ/¡ßPÓørE+EXn¢DX)YA?!Â*4¢P°õ(¶°Fú¸â´kÑ¥ì]3¾=#Âé2FEBªëDF5·0ì?a RgüY¥Èñ7¡~½FåÈ ß"Â
-T¯¿YÔÃúDX
¢¦3E¤ØtP5ôÓ_DXò1 3ë.ë 3¨Öz3KÈyõ§"Ì JëiB¹ÑæaØxXFäbëa
í*~l"ýØ^àa¯]*Â _#ÂÐÃ+Â _G
CIù:Þa¯0È×9òu±"òu0È×õ¤|ýzùúoa¯ÿ¯"ò
-ßÃÃJ«ð¿DxkáaûsW0r·ò°Ì=÷"sÏý
-kIy^¡</Y(÷æõ0ææíäaáIÞOEøwPîÈÏaUç²0zòEèÉÿ:gúó%Â@þ¶q#E"ãFñ°Ð¹CÎÈ;Dþ* »¡ÜRP$ª(ÏÃ~BgÁu"tüñø¿aÿ>çOPafóüþÂy<ÌÏ«ð&&å÷X-àÿQ¡¼×5/¢ZyBËÐ4¨ÅQäz®e¨ÛÐkLÄâP=Ü
-×Úi7Ñø2-|33eqè.?n7?Q?`w}l&Ó÷)ýT¢<%£33'W@Ê¡ BpF f®hó?çÓF¹ÐÐ×
Úãy3½]<÷eCÅ¿ñ2'í:R66@=ýÏ´ÒȱFãçàçÙÇãL÷ºèæzÒCY<%m.±{x v èu§½Wì-ÿh4pÆ%4
-îOÅJðOð6óT·O´«<^Çxú¡dÈ~V¤×\(YÁãñåZÀóprÑðb^v½|+/Ó\£u|ÏÜu¬Ð1ÂsãçBjãáãtïÓ÷Ó¶;[âðôv2ä99
-}Æù~GøôsØÌÓÚ)éw/ó}uó}ûäé tlgì~/«
-ùl=ÛÌÓ@´ô5À[ÓØkÏQøöÀ]ÿ,®q¼å%féá¨HÛ4G©çùçÛv_$ûQ~lA³8^>Ý<4Îs-Áóå³u![äPßG×,XÇc¶ðqùÍæ°À£AÒÁ2âsÆyÉ~%®ànÖ&¾Ï>Ñ eÃ|Ûi®
-Z´÷"flðzD{dFBftî£ö%ðáÙ0»¹¼æz=4C¿ ÅÕàb:×ÍK_ÐîqÃBOãüÜ
1Ûù¾HcPåWÚa®q¾ÿ>Ñû.ÒfÁGná)<õ(?Ó~Qëzy9ÆÅqGDGf7ÊK~ü"û!Ô¦hÇk¥ 2ï.Þ×õÏH¸_ô£ëàêç©Û"Îx÷µBOù^¾·!ø
->³KÍ
-"X×VhÊl_At]XÆÄ¡|h7¯_ãIqºç8ïÓfõÖÍóoÉ0»yð¼k>%~%Dàùæó^c¶Fæ^'Âã@ïHÇxO@è"w£h-ß·`uY#ógZþq3/ixa
`%ËÀêàªÈÀ XOï=Hy#,
ÄNͰ¢7·/]4HÉ_Ö¯0Óå½³|Á°Èå-3ù²dÕ'JYÐiï·
××é1É7Í
-f{Ùiz{µÅyk4kPì=ÎSà×TAïG#Ö¹IôÿëxïÝ'®\Â8Æén³¸â[êåg{yÁzDmù$~
-ó"K\äI§möããud·üñ±NÌìµó=ðÅÖkÅÇGîmÎÅù(þBç×ï>ylÂýåâ)¬)[>&ANÇ'ó
-óí½È9'êâ´_?k\â;ºyNë±°úÌÚeäÎ`ÌÒÛqÉgsª÷}ñéú^/Gyý»Lû¼C+DÐã<ÇIÿ½3óèÝ¢ø/XÕ°¨¼éÅ:ôY3º -üÜ?.¹éµPìFgÍFXiºx©~D#á÷
ÉüøX®[\KHÜ!ìP¦ýÀþtM&Äõôâuqº¿ËQà01q-ÿ$;Xü#¼îùoQ{Ë¡KßÖw³)J+á¬=Ó=ýÓ$ìT°G,Aå°ëä -»<ØcÀUȹù²fÔBMâoUJaGA.Òûoû¯Óupof=\¶e8ÑïJprËz\ÛÐàÐqõC#ÃC#ñ±¾¡An¸¿+kÅ?)B:ãõQ®eÚF£yåssúû¹%}ë{ÇF¹%ÑÄȦD÷²¾Ä(·0±[24;Ôß͵Åûûº¦©ü
-7§rEbd^_QÄÛúºFFzÆr>£Íì&<`ñHíKó8ú²tñ
-,Ú4Ô¿H¢g|Z m Ðð áæÆG×C¤à%Ð0f ëæºÝã]c4>JZ¶'Fcãq^WÚûãc} ç>Í [8¢Ô£c[@´]½ñ8´
ÞÆúºF¹uã|âÝñaÒãØ·Ì#qEW¢¿L¸tt]_ߨx|¸6÷õrë@3¡-@õʾîr|TÐuCCFyâëã[û£V$ÀÆàfHÐÐî¡®qa9Þ?:Ä£u÷÷Ç·
Ý#c}d®ù½ccÃÈæÍóDFæêDzÇú#cäO¨GF×Ñ>Ì'_°áæD?ÑD¾ÉÂEËZZêç,kY´[ÔÄ-h©o\¸´Ó¼¤±±qá2R£ämgÆ`ÜËk8Êü &ËϪ¦Ü"ê·eh´ìÚÄ»AeI? §ÞÂâ¸P¶_?Hås«¡Yo5´n,é]DqpÁp¹D¯Êz-èn
-OJJ$;Ó06Ò*]¢uÎR`(°VÌ48Îm÷ó.%>:Ý:[ ²ez0'ÑÆ¹ÑáDW¨ÈÇgίçÛÆ»»ûùðKF.)áyËûÕß7Ð'j:GìrtLðÉDóøÂ¡Íà Ç×õ÷öq /Ý @?jx'¨©È¡âùÑÒsarÄ
-ÁÙòÃÑt%FÅtóÈ£½Cã`¬#M}° øøô H2v*Ú"Á#_1X\¤ºç»åIiÐþm]bº#'>VI/J°¢¤<+/¬È+()(P(·BaAaaI ¤åÅå\yYi´4ªQ~Õ}¦1»Hoüy¹Áq߸x6OvGw¾ÿÙÇÐ8Ö
-öåS°/}ùì˧`_>ûò)ØOÁ¾|
-öåS°/}ùì˧`ÿÏ=9MêCÂ9Eýÿè,ê[/\Ðð!èÑìRúy#|>y%LïÏ;ú¼Þ?½ezî6 ³0ÆÍãÅP2öΫ>åôh¼°×Ë¥÷Ó{X!®!$AVßÏë÷[Íã9²?ËûïÚ}VÛv1Âç#oaå¸pR¸
÷×ÿéc¶v2~]´Ïçõg¶fÜL-SÅÔ3eLcjV&8Æ%1f}^ÿ_¨áDöuôß=ËýôMÿY~RV"_\HêqÁíløÜ¾>]«¸ßÙÀób`ç׬Á/ ©Ïj;ȯ}è¯Âº3Ði´ü¼>?Ýÿ¦¿ü_Ô×ÿUºÿ7ü/PúÝ~ö £OøÌQ¡íô ´®Çàz .&}>q°±±(<ÏçÁ¢#¤bÒUô}zbx7ü`2ÓÎ×<59w®UÀÁP^ÑksôSè]¸(ú)úðóÞKÒ?8÷H÷Ȩ#éíÔó
ű$õüAGq;Ç#tÂ5t>
& =ÅCk!ÝÇCHëàZD={ÆÑ±+ªbmÜë~Ü}Âý²û´[Òîîv¹op3Ûèö»KÜ
-nÉi÷7õ°ûûgnú¥÷"µûÅo½øØÇ_d^|ñŶߵQ»Û¾ÕöhÛSmL[[ù5Ì5êêÒÑø%ú5ú]:M3_£÷ÒÑÇif½¢¯¡½ÔcÔqê%*^¢¡âk4ã¦#t½f®ã¢{FC|ºOñiFøÔͧ:>Móé»$¥{&=åº9~êUÒÒ½p½
-¼xxñ*âïöR?ò
-ÐqõdÓ¤*'ÛÜO¶
ÜORE¨ÞRùîÛÜsT.rã
-½Ù'ç@9éÉs'ñ'Û\l»
-²L¶½è~FÂ'Ýë¡Güôø¸De¤'|
-÷ i`Ò}¬ê ļ?cûÝß÷¼èþ^i3¦s¦v7°þæÒÓàL|§Â}
-iþûÊâî-ó ÷ƶl÷ ¡QOÛ|wç+îÎâ%î5UÇÐ*aĽÈãCîå0ÇEÂhÊîq·BÏîª$EWõ¢»Ñr×CX¦{nÛ÷àF¬ø+îhY¿;ßSàÎ
Ö[Üa`!*JM(t//ZdøWpíåËþ {@vl
¬VV"+åȲd'3ÊõrV®«åJ¹\.3rJäFògôsÉRdR¤³I)á7ÙSh>Úûu8ëÐq¸è ÝJµ.;QnMÊÒK&*²öKVÀø««qëÄ.Ôº8»ÔÄÊÅk&$¾¹xBßZ͵
-¼È@÷°G£.Cnå4²WÆw*Åîäw¢2¯L~'Ç`aتll8PYÉc¹Ná?hÌuTMTUJqA9 ¯Uz¾ºðBµG¨nªÛùêè
êR¡ºC¨îêðÿObîFmì[:·¶¯: GsW×_*äìp-¯I÷×Üh?íô UxõÒ7wBåêê,üßÔiÐ,ãÿ[
-ÂÆXªª.ÒKDzÍ~Aø¾5kμ9ysHX
-©Òÿ§Y¬²l«òÀØU,gÀØÆ¾øG²Qø
ÆÆÆÅ"ÉÜ-}P#¤<F8PcC#i66ÂáQ(aÄ8éÿ)IH
-endstream
-endobj
-
-589 0 obj
-18525
-endobj
-
-590 0 obj
-<</Type/FontDescriptor/FontName/UAAAAA+TimesNewRomanPS-BoldItalicMT
-/Flags 68
-/FontBBox[-547 -306 1205 1032]/ItalicAngle -30
-/Ascent 891
-/Descent -216
-/CapHeight 1032
-/StemV 80
-/FontFile2 588 0 R>>
-endobj
-
-591 0 obj
-<</Length 379/Filter/FlateDecode>>
-stream
-x]Ín0ï<EÝ¡¤V !µ´Hö£u{
-ôÀÛ/¶Ù&í
-wg@\áÖÙ@*Ñtf^Gô7}=¡Ï½,Ó}eÛ!ËðͯM³[ÄæÐWxÂ×ëìMl>_îãø=ØYDAZ_ç©ëBÊÚV_îæeëSþÞ¢±d340µWÛYå"+Ë<
-endstream
-endobj
-
-592 0 obj
-<</Type/Font/Subtype/TrueType/BaseFont/UAAAAA+TimesNewRomanPS-BoldItalicMT
-/FirstChar 0
-/LastChar 35
-/Widths[777 556 443 389 443 277 443 389 250 250 666 610 666 277 277 556
-500 500 500 500 556 556 610 889 500 666 777 500 443 333 333 333
-333 250 277 666 ]
-/FontDescriptor 590 0 R
-/ToUnicode 591 0 R
->>
-endobj
-
-593 0 obj
-<</Length 594 0 R/Filter/FlateDecode/Length1 8728>>
-stream
-xåy{`TÕµ÷Þû<æ=gÞIfÌLÞdÌLBÈc&O!BC2!2$C¼ UJ¢VmKQ(X«òѪ´Zõz+-ÐÏÛ¦úµÖÞ«dr×9*ýãþýÉÞç·×~µ×cï}2Ø{'R¢MBþ½¡ðº¥Ýí¡ÿÖÜ0ȳÅ+iÿªðêÞµ&÷ï¢ <wuÏÆU-uI¢ÇÒéêu<xßO5ÅÂy]@è(¥Pþ »zÞU¡; ü6Ã=}+C¿ªÜYPÊózCCá#ÑP
2¿.ÔÛyjÙ\à'îpßÀàªAÈ+Ôû;ÃáIïï¡<!<"?áxf
2¡hHer
R¥æ4ZÞ`4ÅÄÆ-èÿg
-ÌçÌ;ô(¤>F ?Í\E:"-ÔÈ63ö¡gÑ ô:úÕLôAèøÞ&Ðitnæ¦Ý
@O}|>»NÛ¡çÐø7Úí©Ñ3ègè(:ÎmÚ
-Ô'ÑOnj×¶¢è z]ÀÖ(í,1àY>EJòÀ;9Qº
+xùs%_m»oÙVm»ËÆ-Û¶º\ÕeÛ6»lÛê²í·ÏÌ<óÍ7ïüó®\+3Oì8ûìÌç^rbEz!;#Sq;[gzf&n<ÐÆÈÅIÙÎFÞK^ÎÔ(ålh
+øqÀ«Mÿ/'8ruSG' -÷¹8:ÿ5:ÿRµp¹
+ ¡þYþÊLÿ÷ÄG0µ5uüÛÒ¿ÿ¡NÜÎÑÜô_½0q²°¨,í¹ÍþBfÿ@Nf¶¦ÎsÙØÙüSÜ?Á¢@GSã¿Í{0þÜ[ÙÚ¹Ùzý_¨ÐÖä
+mM|¼ìíìfÖN¦>@3Ó¿8/'CWS³£©×ÿ/ð?GpÌÌ
+ÀÌÂÊàâ`øüÏÿæâ¿xøUÑøu2ýwJ)[3;
+Mþmø6vqtüËù¿ýoìÍë45u75³cá/ÀxØë¯4`JMÑ>®°háëÇvIëpÎ'ª¶ L*JF «xØmD_Ë´}_ð8+¡m¯x%MèR9Ä]±èqHõ£â3çݽFÚ_/tú¦ic ï@!ý>ÁMkË0vÉá½f¥bçì?þ'¬\<~ÖNªÇãl*ù¡=sÜA©Àñ¡¥E8Dòæjë3ªòø%/^^ òÏëmFèX`êo²,Ú{(%ddØ:
+LqèZâÞ´ô
+ |vmFA1ÞÂû~$W|%ðÂtªÁ·x%à¦<¸g1æh®û¦Bæ*R%6m1Ò¤Fè]¨ºÆ²¹Ïþ@çÃ1å¿ú¡b'%ûAÃñ@ 7ЬLñÌE¤ØÏV(ø³ÒWì¹ú´D.RJqĶW¡å¸vn]âgD*ûfçæd¢lÎXJD·ÑýcMþY¨¿>FñF·8)ªG¤¸·Cu© ,ó×ÿµMIÊ£«0ãt³{w7TãQ/S/Ìè}ÔY£$s¥¹cì<7agäKéDð¸ô+aÅ!/ÄÑÒÛAWZ}ø|h×÷Ël?ì>3¨l·¾vìÆró÷n!1ËtÙ³ÙØ¶ÖXmÁ¬tæ
+azre;uB §£âHMn ±ìØYyqVÃ#á\×Lùa#öxYbÚ~<w¨ç;¼psãõ¤yp?
+nWð:ÄèârO;¾÷§óÆcç![poyÙ.ÉϹyCâ
+\LVXô
+r)Xb1>e8gl>h$æ[¼[Jæãi¸X¢´Xépú'ñ[X¢q1½æô\E¤µ©Æ3»Kqenie?µä±ÛdÊ oKâÌ3?DÁF½Ê«íÍyÞÔ+ õR$¤Ú1GTAWCèò)¿cº6o¾K½F×÷ãVWâßõØíï
+¢zäBVïa5ÔtXõ²|+´ ë¹gz;.®¬JY.JÍ%#¡âÒ¯
+û½¿Øf)Pê{6ÄA(×°/·áæñ1qÕÑÔm
+#¹$*YfÍa&}Fj¾Iÿñ5°ÀÉÞ,k¦´Ëô7c@ιi d&,
+é÷É'«Oñ¡[òÆÍZ¬:äà~uïϲì¢u"Ï<WÞayl°&³ÓµðÒ4>õ¢[m#M YIãòùüùÆ
ú+÷0¸ÒÏ3Ùü}cH
+wÔÉt3u"jìi|c§ß½[ÞKüÖ
O-£Óé
êOÚ(R§ü¢¿ì1iXÌj@¦d|C×.<Aô÷èMpÍÒü-Þ~i¦í
+Hh?MöRÝ;%ÎÖ1I|m¯Òëì!Ã9FNiMn¿9º£?Rzõ÷û,ÆÔ¬e×KGâ`ÍyP!3·Ý=_ø«\Þ)Zzc#\)cè³ÇTv)õâÓÚ4Îñ]iNÞ^uÎ\53>Îiâ)àq¾¹©6(ã\ÉÔ»g.f¥Ñï¤ ßCEä!BºÄ.ÍSÚm»jË,Qfñk2C]=Ó¯G0×$-à
+ß;Ö~V?gwîÕºfïÂ¥>3æ§³w^Áçd6ÔnY½%À*îÑïJÀã÷=tß3Û£ÙA]Þ¸K}ù(ç?háÂFx³âתñ2[ÃÓ%ר==1eT÷º©hûÉ}éöy^÷µ»ßßXǶ¬`åreSU@½_|záóÄ8
+e_HÉSä
+Z)Wà´ä*ôÈÁ8kKUòP|w+=;ü'¿ö<&.-ôOÙ·ÒöI|Ó¹Ê^w² Òq(±bxí"kÌúmÛF
+¦«Ýmê¶æ
+l7Z÷ÌRVö`ù:aå&z= ¥déìßV«®ªÚ0b6Ö4<C@¤9¬êÿɸ+à[jì.©Ã&lnéÀ¶È¡õ©eµàGݵ÷ÙîÈxAm·á>i²×Ö¢è9~N*|êÙ|3ÝÐH_ ©HáµZ5½(F
þ.Þí¨ócwÈ[¼Ò,èÝð¡?£Z"ôø¶|¾ÃNR?ʾ²Î4-¥¹ÌS¾2%fqÇÝ+[¥sÜä¼f#(M«Î A};Iïç!\fÙ8ÂúKx±i|(¦
â$Vsrü嵨^Ð ¼¨ÏkìåyÙæ!Æ<
+²Ãlulóý`$ëÛº
+å Äv-¨7¬ûGHðïzVè¡ÕÀߤ@íµÄ}³>ô>
+*|ÈÍÁO2Éj§X¶[$Ïm_060«
oúï2oT$Û,åín!â§xÅØ®«*©àXëVñ1xòªáÐBáDɲ®JHÞNhªVÕÇ^{/6 mVispJç¼ë³f¦ nÉëL^&`41¼Ãc[§aá½üþк°í ¤ºÐIH?Ð_;ÔXâðrçéüyH¾WôðXãy{Ú4QtjÝ÷çAó
+53sawò¥:¸-vÂAí¹ÌyZgí¯3Bµ®ûhY~]Ö
+ÀÝ#6
+¦e~:Å M7Tý$åÝìñê騿Q9fp)¸½ ôßkÀ;lÞv¥-Q¥k
+u¨@Övq²±0×ø@?
+,¼7W<¼W§²?"ò,É<;ËõjpcÒæ.WÎÕQx¾ýA¹ÐõµÍ[&zøÅ+EÀ¯ÅàÊ"m}ë ÍìÛ?ñÞïÚÍè÷è{ÛÞûQÄá¬5Ùàgé<Sy=dioµå§3½{LÑsg´äݼw²$ !öÖOT+éþ°Q3k¼Ö}
7nª¬u¬±Ã'WSÞcØ0¼?â3®]àN´¬n
+[ª:]ÚÜ2á·èÖäßÝpYÞ£î4ÅÜc¶0xKuü Hå̬«5>ôíÜyòk4¨lqN·7G,â£w¤Ô¥éÐ1+lä{ ¬þÍÝÔø_Ó½¤,Ý'µZäÅÃÂEmfÚh×W#ë ~JÒ¨ü}£DÎÏ$ïÒ¯ûpa¸E,pà7ªÌÁj#(8DÖ£Ðé-ÉüH
+bÓÓâ¼]AjÀDXÇ«wBÄÁ«M¥y15«A§¶;bf"Ü·Ç6.£1êµ
+°º9¥c#·½ràüeÓ'Ѩ._·näIf'/Þµ3»Ó&Qº?Ò£}'`!Þ-OBªiu D
úTQÐ,ÂxA¿A¦R9ëáÙ}D tíÅ .o²^ÆêãG8ºÆõUâÅ©ÏR=>/#MRª7ößÔùkÜøÎàè¯Db
+óSviç(ÀF¨3mÄ>t¸P
+ôìM;w¥ä?«bnÈKþBÙ@ÚliCHß®[[Í%ä&ZºkÕÑmüñò*DD¶ùm[}¼<7ùï×x
+}fÄO_fs/<¸k
+4
yÎAgX·Ã×ÞÂiPS
ò!¼²&pÇbELرÌè=Rx)@}H5,I&+Ê}¿%?!0O-6(·ôn{i=Ý®pcE!ákßë¢ÚÖ¿¤¬-Afkß s0ª®Q*Büg ´ÃOõ¶£OkæõO·=ÙÁN6¿ lÎÉRÂv]âou<k¾Ðh8!Ú9£J¢¶]©ø6r`JÍLÎH«N(nÍÕ¢ÑÏFiX¤Ü¨u<Ôßóm
+÷¾7ÇŨA¹ß×rT"mõéÕÈØXµMùâm1ÞÐM¸
+ÍÉùÒ
+QY.ó<·°¼Ù¼©Þpï?õ¥ú®ù97é®`ÍÑùbãØN+ÆD:($#TØÍj¡ ÌÀ
+u].Q¼áæ2!ã¹hl
i·Épòð¶ë*IµÍÒÍçÎKÏy#è;¸Ù
+®¨0B0&êE2Sç|ÇÕW[äÞu±^²úéþ½gäDj¾~ïþ¢¸§¥¯êó¿6~äfÇ#Þ0Ëaæe±?¨úÎoù}
+[(ÿòyÃk½¶ZuøXO6²ñ<¨]0ØþyèÊÀ=O[ÆÖôsâb(¡Ù¹÷¤³ô³¨OeZ:ÈÜ/ÜLna?]F*°
+ß#¼Òã`ÛC®®c%«£AôËæÚ5¨?ÀÉ\X²/±â ÉKhû¢±Q:ái>æð´Äߨcô^¿7.¥OkkSµ\+;ÖË;@ÿRC:W)ñÓÕ_|§Y§îéÖiß©â $µ¦âciõ3ßùQ¹^ú5µÀÚýúç@¦ÌfhéuGj¢bB{@Ǩ®*îÖ]o»vpúý°÷üÃéç.XOÑE)4MtOóÂMÚÄ~ήö*Ï
µrü¼lC×Fo"¡Vï\¶¡taÙtÒoJö
Z#Ïpø=\اþE3?âèpK#²Øæ:mÒ$ã¸&¯32þé¸Ö`rKFè¢#X.òQyänã$¼ìáô¥]ÃãÄäÂô&4ü?$Ü?.ÑrL[wNSH÷Ó"ªVkI%Æøöåð_Ü[ô%yF077D÷(¡yy¦hª#ðPÌ6ç^PbAï+qlkpV_²×ö©x£Æm*'þþ8ÜíýqT+wNIòoű-~¤ìPÃHÙÆ¹[Wþi¾Î%Ìh>ldíôhBäE=ï /º#·nÂ1«]Ã(`&ÊdÔò¿éZq'¡?K.å%Çú1y°p7Ê0òêé['Ø
+õ%ÝðÌxcºÂà½Tßþæ6FöLÆ¿æt
+þzÌà<mÄЮÍH°Yñ":QãøhóEdegW¬ÙV`£¶ÙzÄÝÖ¬^ÊåGίA÷pOQÑñZ²c3«$r9è³ ]iuª£nA˱¾Ý軤&V=à?
+¶¨Gä4íAUäµH¾^¥ ÖR±JÏ ;Ç×yVèÌ^=õÕÚ|C½¼Ø<ëqVÏ?vï=ð§ôóóøØ'y4ºe÷+# O£%ê´à¬éçK¥¸{ëXÌ
¨¡üÔY2xa´*\s4¢^·*Ëb
ÖOÛ6zù}Eøýæñ
+À þ]ý
·0EÃBk2äãjÖ2aÏÚ§6ssÓngÂï]$íØýÚ. õ4Ò"#2;í'DêHpEÈXP88L¼>¹XùTaSÀÂ`ð¤ÕÎfºúbãðËÏ
+±¥Â±f! ¡|H
+ü¤ÛGM+þ]sì<6öò?ËßýA®mÂUÜñ¿©Ê»±Xû÷©^ÅÔð±9$yi¹ÜÂ'ai4ÊôYUSÚú×H6AçF
+A\Í ;hºPïgo10ÿhÒÔ5óeÐX(1á¦[$9Ý<ÒTSuI?ì³
NÇíÆOÜ·Q.¿×ì¹À5}},.L¾NíSJ9ÂN,¦Ëeµâb69·5*ìkNnæOYÏÒSR{{(_0ÎO[;;×¢ÙÿÀÑN]ÈЫôÂëöÁ~·Ã?§¸ZzA oÎÓG© 9fºÄáySÀ7ø
+~«I½þ" ñQk~Ár!yv w.ʲx°¸÷ÂÕÆâ0^;¡ðîîÕ"¨ §æZ\QZ]WSMýÍ|)¾ÌÊñ°#1Ø8 Ãò¶b*aXq½eP³IxýðcÊ×/z¸Gt÷³Æõh`¡ù¹ª/KÖË!J@$ÙöS
+Õöíe¯iaº»íáÐKpVìîZP£î¬s4ÚÕ®ÝüË2«¾ì=È:DÎua>½×nNiÓãÔO>/è[¼ûe*ªÛ\²ÞÀTuxBæBúòLFb)R8Òtqþ7ôn0NTÙ]§úÃÎÖ{a·U
+Ð
l0ã@Ì@dõL)?ì
¶º x¾Ô
ú
c
+ÈÓá~Ð4BËY3ÉäÕ IcôÚI?Ü@Ö½ÂqȪl$Ov.îx]ljßÃo¬]rú+6-¶D¦ÚÃâZ¬wQE_¼`Òò©[R+,½íSY¨x.å@ɸ¯,±¸æ¨EY£Kè]w4¢AR{Jºñ¸QôRPeeì«8s°ý¨'=Ý3ÄA]ôª±À¢x7ÑÜç¯CN
B|§PÈñ;ø©ó&å³Nrü
+[k
ÎÎ
+âQß4/HÒë7¦×ñwà´ Osâûn#O-aðFܽÎZæuüYv,å5ËìßG2tMÚü_Áq{ÑíúD\î+·INQ¯xé=§|Éè7¶½¶O£èTEUM
uI8 n§ gWØê{¹Û(¶/Ä×¶È\M°Þí
>J»ø2àò¡è&^úujÂóLUg*oæóß°³Àþâ1®)ãÁ
+Þ-8Û§ÎÁ$õé_(¨TjÓÜÛp¡Q*Yëú
+¿äMò¨~:ù[rX
y¿w¶_ã%Á¹A_Té¸j4óäg÷CakD8¾ "©¯ì³D},»XíÜ-ë/ÀGú-
+ÞêiLhù³iÎ¥Yº§ÞXĤׯÊ&¬£ÆAhûj[âé0í£_Y[\òÝ;G[à]ÿP7ëóܽcÿrBu þÞ붸.éHÙVX=ulÎ:yMe0÷˵'P1N/F-'Y¿Þ_n}CZïïÒ*¡Vpµqµ
+}Øa¸(f>>*ÛPH¤e>{û:¤/V<g?~õvEp>?»Þåp¨ MW VÜÿ°tãÃä²;`ÏpqV,+?|ú+)Ú§#¶P">sÆ~»4H·ªp&»,±¹NÝVæB#&W³@Oê¸E{{#ùÙFâOn`P^Å÷={ßîêzA¬#Búp`ª;z´%-
ÂÃ<¹3ÊCÎÙkytiÝQ²IökÆê
+"Ý;Wvd[AHÆq6â@Úø7Ȱ$jG0À0%¸Zlo
+.a
+fÆRñ_ÕnTôYµdq¼ãLU©í}|
+(ö® ¡È,è°M1,ëþów5ªW"ð_#-LBsfAuÊ®l9Qñ!3ß<]£3»e¬}÷ Ýuèt8°_K_w-Mk)3¾ÔÍAZã!5°<æ_ð{.«<KñnCàÕ^ßcOM-çÿ¸ÓüQò#ËCÿ¹K\ë#Ü
еñTäFÅZ^|[Ìu`øeÌ×õiq²A`|6áîòø-±ÚO£:ÓæéD¶°e§{Üá
+J¯¬×ÕËÛ
+¡
+áb=9¨pß¶N[0²ãq|w4vd½{,÷ôõ|áÈU\_Z¿wð§º4ô^æVñ¦5G×˾¿,ù:ËÝY¾¬£ì¥(ù
+BÝèíøÏFÖåÖ´·XVøÄ'xégIMFø®,ÅηÂ2qX5±L[ÖüC
+þ»ëìp*@B>
#ÅøÍ¨Ì¤]Eö.ø§D+Ô¡Em<
+qY½çÆÂ§å{oËp$Wèçg?ÛÐÔYÈ? ?hóå
+°2ÛäfæßÏÉ
+Hf¨9¥{ÁYDòéO4Ù¾]3ë0Ø«fÂïÏä'<ÈLø25ôU9Ï'Û/³<¡àÝX*°
+Ã
+@ã×ÇE¯k2ÐàMØÂ®Âÿú%Óö¬N©"äyë3¡¥ue¤(ÃqÈ;Gß2{ªZûöZ¾kûM½÷CùV/ÔÓ>¢Lx÷¸wÛ¦Jzëß̦ÎÐÀ¨&Ã)Tý;.ÀoûÇ-©nE
èÉÔ«5N+tï²QAõµIo!1§qb'=
+-æñ8qüÎ×»é×Z¢
+?CF¸öûúêpåbÚ3§¡ÒW¢Ú¯*ÇIXÚLËS°^ÆV9Kç£Hº}ôÙõ[j®½>XD%Jv['_>{ò&5Ò6Ûd¥OïѶ¿Ä
vÁ½~²0AØ(2
+½bÒ2Ý]쵿Fu)öÄscWs @;w.õ=ë·þM1d{xüx³u
+¡jûr at SG¸Fê7hQ|ò½Jݧ¼²
rQ§è
+ä2N%oÍÚñ0Áz´ÇÌ?ÛÆ¹X¾½ÆÞB(ªÝ,=dÃÉr/¼Ì©yË&Ë87ùã´cÃIÎÐP(¢süÌCÀè£Ëôò7.oÉweîø6]©a¨]ÑÒÔG¹ûÓ)@Ç\æ"&Ó">ÚããBJþõ4ʲ_zw¦ýàÌ[¾
+j+ܾ=Éãý1*ùºL1¸X`É>Räí{¡çl)Ñ&i.IÆê¼¤<²Ç¤%ë3ÈüXûµi"ErÑölC\æ`×eõUPûµãîÐêLC<¤;ìÅ_,hµ^:ÓlÛ_`ùY\`¡¼Ø¸¥±@qrlþe"ð;ÜÒR¸ ÒP(Ù¤êVÈ×^Ê%ZOÖs¶~}ÑöÀ71+v½÷¬Û)¯6µ~5l÷ä1VG]vÇtOÔâ-zEÌWû2ü"KÇ!í°Øó¾6HÛãñ4½¨ÈIöÙ!2eù`"¬8Öìl´óXGw&o¾æ¨ü»õáøeYÃww±ÿsõÖ#˦ït¾|&M(Uí·ýº
+*$A «!9Ò¡¨NìÓ{]íãõcVN?§s G/cÏóëªw1jŶ
+h¬Ê,]æþÙ=ôÏßù|ÆùÛõ:ÁLßQpaiÂÆÒ@¬ôn@ ¿rßîQe%]Â}çîÕÍA¾SFÌ-'÷ Q¨êY_È´i2@Úôxÿ wà«N}û\U3ÙÚ§Ù¦Fê3FªäWèçH¥'ÝHðXѽ¡+øØ«ªõµãqre«`EÖ
EYìЪ¹Þù¾øðá¤2¤ðüh5öNHC?t\Ä/×Hµ)VkÔoì'#
ô{K^Yrë
qª¡KºöÊr¼)²I¡ÀL WíÏeåèéb½{ý ü¸Â@ÜP³Ùý°ð ò(FÜ
ÐúPEoµ¨Cbëc¡ÈPR¤»ÖÿuF>õ÷ à®aè÷Ò5ºDÌH(%ûÚ,ºQ°*2H×$9%ó& qÿ _j/ Õ<
+®{@6øï]^°/S»¤
+A9ýL¸¶eqkù[z¾:²6ÜM.DhÐá%:nåd?o¥34úk!AÛjX2ÄEoþAZ7Óók1bí]LZÉÊtâ@÷/Ù¬¾ïP×w*$ëU¤úô©lN
+\Ùºdæ[üìÉB<®©Y¨0B;_Væ{]£8Ûg¨I«Aäj@nÞükÐÅÐ*F/üO#êx4EÃç [CåWnê#òLîhêqǨ¼Øb!Ü.ºN©ÉöA½èF&Èöì ãB³y¨GáW:%ÈeÒlu8äFDçDÅâ
+äk©ÐL"Ev2gA!vb°©X´PñCz^$³5é¨ê®Tà"Æ_ j
+î\rz·®/b
+ö´ðÕ&
ïÙCY'/ºAí^Û÷&¹ÜÝ5ÀënÂÜâX:BÓ÷ØmS).$öO0
+7«Ñäý <p\Gîm¯ýÜßü°â¸Ü&,L½ÒH<SüØXÞèa#t5D1lõDÍF?{»F®3ýÖS×*,½ÖåA¤ þòÊçNÄXá»às= tYìt·ßgûD¬_iTidg+)²á¦Ö
+.²äQ4AK]?pívN
+9%[Ön©[¹¼¾Ä+'ëZh&¼,Á[Ú^ájìGæ'H̾AhË=Êâ7DÄPüÚ$ûZ" gÛ:õnÜÕdä
+|Îgë>&#[Àoï#3Îüìç'ðG+ãw¦ù1%C(ÒÏ| ¡*¡|¬Ð®¾üÞó0Ãé´¾q<e¥16¶IDªÙòu
GcHësí©¿/à(Ñ3´TPÍ´ßn¯¥¥ZÔÆCC.ó²·ä«*+-qßùQZW"# üN:Ëy(½«ÁOüÛL¢¯û.>DFÝæ·qÄ eJɯ1@eKïR8Ê04£Û
+·æî4|Zê÷jîÈÍ4Ì÷é¼Àîb'áx96%qZ%ÇsafP
+zv1Á1©ñð|mLÏ8hup9Ow)I^ìµ_G$N(ËR=
Àñv_Õ_Bb¾/¬Ùvûo¬5
+Ñðܳý
+£ò¼h `KÃEv7MüKÁ^èü;6 ÛßÁÃTc±úÔÇz-+ê¬J½³£^0ïu¶:§ÈÐ4VÝ|÷@ÉÞûe#ªÝ{ØE÷gåÂq8Ô3YZøá±R÷;¯ôtù¦4U*ËúóO ·ý>TsÓÆª·ö«gÏ Ãª"#9Y·avp*5P¿G¡ìÙ@x·
+ùAÝÁÁTqÔëUX¼"-µ$A6´ pº
G"g\È¢GÎã5©ã©@ÃQÔ'
çþ8Kâ®ÀM³~î/,\fT§
+:z§/¾`îÿx^}qSüÐy®¡ákDþ$WL /J©(CÉHíLDKí¯pÍäRp!}úCê+Ãp¿c÷$ÿpÐÉM÷p®,æ:RRÚλF¥¦+}`&/ÙqÜEøËItVú¤¦¹iêu`C7ïè>ºV:ß} â¶%·Å£
+m_¤ðbädbf\
+¾pDþò²ÇƸU'Ú«dRÆa\Kv¢×e"£2
+!öwäýö}ªM}F:ÖêI¦üù{Ý«¢{_óþAÅóøZéðÆZ°,mFtX!8)ð«ªtÃ%ØWºÖ<b,
+2y](j6- òsÝs1;Ï/"î<Ϻf©0¼M=Ïc§þ>yÑ}ßMÞó*U»ºRü×ûxâÒNºº\tá/ûÞt0>]Lt¢róç·ý¿{Üo1[DÌìðjíÕnuAýk¹»qPäuñźÓf%´xôO´¾ÝbzÇ2]O+vqü/ßáýZ¾é£¶E!©\õB®³´2æÑ÷@ÈaÂ*Z·V´Ùoö 7è:²fý©r&8.#xNô¶qx{÷±èUJ4à±Æj¦6Õçvó3DRèºTs9ËI09Z!ËíÃÓo$ë¤.ö<S®µ9_cõpyÁAç¯üÖôí:¨
±iåke×;<+sø7.j±õDÇyLìpAmåÖE 8<Ê#»$º©T~eݸ!å¥GÕbqlpÚ¹MöQêIÂcQm<Ƶ\àTùâª=áH¹³«¯JÊò`TRÒñÂÝQ
+~Rÿ©r"amÌÔÖ¥-Âç1ÈûØP
+ôÎØÅ`YSý¼&¼Í`å
+®ñ¬F·-Rg¦·)SäÇN¢íbpêØ°xº
\¼ü_ñyK*½×@âæËÔÀ³cTåw!Ñ·Åk{+µhÚ¥[<Aìòr=üý¾kxDÔlÉ+mK\ÕÈw*e]{FÇî®ý&^Å2õt°ê¨0;0$j©[Â|BÓ¿ýàzÞqÓÑ$.BMºP9 [ûZÁã4Wè×BÇ´c{;çÞT±êÅô:¸Þa{cÎy÷p£èi [E·È;):\ ñ[±"A4L
+oyüim`\+ãê¯3lÜÊõ(gïnHó"VåéttÐjsëüìÙQ¾åç¢þÌ÷rÖhJÊBs:BøÏk¤f9ó[Áwb0ÑÁ¾("%ñÇxézËìç½FKVJ
+7å/¬¸Zå<9Ès´zSt]UJñª×=õðûåÕ׺:å O%çÓÔ¸³îJÏç L³OÍNòU¼ÕÑr®´ó$;:bÆ-f¨Ð}¾ïáͬiGâ9f ~ζ
+Ê`a¸{Ð9Jmèͼ: cÅw^P2¾ÃR/G·7æ1O3½bW*omf®|Ç>ÃY²²«ZÃ;hñÞÏ.h=ï5ͺ8YajØà¯^Ë×>1|&ãÓE§¦ðöÜäß
+eËÇÕéoXy
+i ¡¥¡Þ~z»1ÆWHMN¤¹e~+i¼\ñ@踦·áÖ±@Nƪ§"ºê¤ú"òçøX¡f0Ûfbìó#_MTü næÞÂùÔR«Ù`¶éߣ!_3ù<m ö8¹¯ sÔ¦¿}U[T¬¤jÈ6ôϬWµ¬CrÀðúðô³x]"åyG0æðV#?²zg¾3
+VæÿÚ È:®{º»!e%w%è«ñû BôöÔÌsŹlNøÅWèMÎLgþmKfúü8¹/¬h®çÖ«È!ngLU/ÊbAIîÂyskí©bÕö;åÔâ4³îï-UHÝõÉòÎWF4¹ÞÂ&´ï;b9¤{øl Ôù]^ÕÂM%¢ßÂû¢òZzßB¦:qÁÙ 8ëA·3»m53tPÚÉSr¡âîaBë&ÀT0wüdLñ¢(T¹5ü&°QÞÓªs"ó¯³×`÷Dñ>ULß_ÆD¼¢ê";.
+åcóòÔ!çX9Yr%ÊÕõJc ZmgmIJþ¤°ýâ\W8¨Ú©¶ä;ÇWU)DBù£Ëæ#Xí½ÆÐæÛ¶U¦ef@ï\
+3ãñãZÎz®k8+f¦{ÔKKTà?T3îS7îoõñ\sñeÿ9ÇvݺmUN<ÊC×tÒûÅSéDýyþºUMNö4Ï×A§
+Ê»5iôÀ¡ÙÈ·XIC%ú§5x§UûÝZ
+¬Djdøãu¼Ô´bBX'AÖzTèÞ'ÕäÉB£7æC8ϼ«mW¹°0X
+ª1(ͧIÐ=©e°4vARáÏE*
+BGÈ8µ¦aIL]:¦¡(pt±¹ÿJt(Ú{ªDL¨p¦jÇ%V÷®_+tðzÅÈM«D>µs%¾¯ôbimÓÌ<3´îìã"\³8ò¿ÁÒB}HCØn.ÿÎeùE¸üÍ0çëVbGq²¹©gÖÈZlÁ#AÈDÊ4^ëÞúa& ¬d/\Sõ`>ß»ÛädÂRB+¼wmª«~^³â4·êû¦ÄPÄJ¢ñ{JGÇ5+Ú6-˹u×]à| ,5cÁK×y{ù0»ÙµÁ*ôMÎaL#!$ÿ5Tp Á¦ôÓ¨æbú¨Ô|gÍñ
ÔÞ7Ù׬ë *¦x&ÓêÏJýïx.l%d®ùVt9º-tzýHfâØ8Åfê1¿¶'Ãßíµ
+[AMQ¶;94gå c H@v|·Å·h÷Ún(QRügjøË¿$eÎ51¹Ý)®,¸WÜÔoàËRèya¤Èõ\ʺ¿²½<|Ó.Ë00ý^1ë7NHá®k³°ÒO
+ñR&ÝO¿QüF28QEmT!Áêæ·ÄNëÒkÿS »á"q·¤ãÔ¼1A7
ìÃOI#gp-c½ÈpèYʪR%þNzôTÏ=TË/ÍwzëuaCå</ý(NÖ¡àvT
l.MOEßn»Ó"e¶í°Ùo°IñC`%2·}Nw4m4ª¨?¬íë,!Ù¸çñC6ñ3V¼Åõ¯àMTÕÛ_fAßÜ|¡K±I_3æ
+Ü`¢{1é¿`ëÌJ>·Ø=nêuË^i#p½°uGR¤,9ö0¥¼Iñàá*K\¨,Ãë3È&_ÂÕ#¬Å2MyTÒS¤oÙNè&ª´©¾USÆH.Wãb,Û«³&cªÎ½÷AvI¨L²:Uç0/U®ö¬YÁFèÒWÿ ïd^ȼë¹ÝàþSáZWx?],%]üÖ¯P¥v¹wNZYk¦+{ÖDõsÿe¥3¢${[bNÏÿ]»ÊËÖ¨]ËÖe,«Á·ÛlÍ|fH¨{4ÓÇú;þkââ[إѳ[-irLj4[
+S
+ÐxÜ«ÝE³qÂmLÚûi¤ºìíAãpëÑWzתâV(_U1U!ÎÒ vÁñà +Àh/çÚ0¼X0åÐɹôiÐ1áôÑÒ>ç|}ÓpÅþbqILl=5Ï
+âÙ÷gò¦HÈê|ukNsbãÁsD5ezÁ*§®t H©©ðL§yk©r\Äi²ñwºÅê:?©5åu_Zu@¯XãlóÆKÍZǬLX@5-ÿ+b?â4Ñzþ±ÆÛAAÂf]<%Q¶¤»ë³ò Z1t·_ÕEffúv?³Ån±á;ClÃVM?¶·Ñ`.@
+Ì]ZX_W½'©¡;ËÎw¶ÝçèL¾_%¦¼qrý=nb;2N|t×R©àTõöB¥ó)©Å!pÆÙÔÖ/èv2.bh¼×¬qòbe»,!÷fag»wgG"Áθï¦õx1MVÐXõÿ
+.µºmçZ¤qúÌõPP¸
DEäïkøzÞp´c(G:íµØ:DÉ2ù!(»®>^-RÎ(iüÜ
+Ùåÿ$·oåÑÃ]xÕzÐ.ÝßÁ6û³Lvpq5¹_[
+nú¥öÂ<2ã]Ì
úÁx,ÀCºIMeÛq¸
+/ÔfÁnf¥zÿ
+MûK~[_
+n
+ýd ÝzZÒå
+<óaÒ÷$&wÆÀËXíÇëyÒØ,]T:¤|ä#d©´â;VcÅ{ºÂòýµmÖT
@LvÁl¥fAd5!ÁÚ¾ë¬.d0$A,uyC0±fM§Frîie¨yÞw¹$+õÜ-5Ü<Z·¹t½¦ðÑ5'Ð>XB/wþßNüÓRrSÞ)áÍÁ®~{
+Ã@=MËQròÎR¡hñv´ÖM#;}{ùÎ; EqßÚÑä»wzUÎqµ÷ï\Å-5dî
+²¨®ÖLÌK&âYîsRYL¤2c õ$Jh16e<ñokè
+§9ÊKUõýc]Ý"o4îõ?çt ãÞU8t̽H
+aMü©b´ÇîNëðT8º 6!µOSïÕãe%wï³íyàTjC¶³aª×ÇI Ëf²e+2ZÜÇz4§"<!êcs´È½ãiLmá'Âì-³Ûx|ýëO'úaÍ©m<»Ärc¨Vã»<-¼Ù4 (zÆO¤]·a8*Ô¤·*<ÄZܨuV/~¯~ç ª¶n¯v)R°¤¦"_Hog#"e½ÃàÊAË»ìÈ%lßZï°mûòÚï*Í2ÄÝå-úËdQì;Ëê1ê7%D¶/Ùæq¦c@ãû^ÿ
¯±DyoW÷tJ"!ÁZàt;ÐîAú3Õóh¡CYý<D¹®2=rsòä3B©[@p@ÿ×°CÔ5V)·%{½@m¢ÊW¹Ò£Ö6µ²O£o½¨èDxþÈ?
+i¶%Ì:u x7ÙùçSE+)µA£H`];/$%ç»]³@¼Ýÿ
+yé°]p£²'ü8æg<
+¦ãðxõ$<,QG|Ózì-È"=ïÆýèeÇ!joTa"¶c£VgøÇ5{¡
+/ëÿéØ|?uÚýag1úØ.{;Î98½
+¦ÂOx§ðõTqDûÆ×J5
+gâyÉCÐyÿrX䣨Ø%Ö.Ï\TÐÿ»hëNlد&
+g´`BêÓ¿#,añ«ü+rÞâÉ®¤ ×¼³w°'¤Våd) àª1â ò:Ôi¹Hé°Õé»ÏFsÓÆÜ´cùÒvÅÔ´
+ݽ²+ÚWàAÝË2Î4¸3g÷~Óõ9Læ²%cPfø&ÏGÓ
+ý,¼£æ2Òûâ!«|ñF7f
+Ö7;«ÏÛoêI;벫\l¬¼¬NAôß.qC,~L31ûD'Oqe½8üþ-Taõm7)ßJ6Z,aÄ4´Bùðj¤ª,{\¢¸BST$£GÝ
+~GgÜöðÜîÞºÊÒ?±K*Ì®ªoù£s&å;ûvNÒ5ß7â ¾iip=«
+¸ìÌåL\ï/.XÊ
+n±G³ªBXo)|·Ì¥i!R5?Tö¯°iä3ÎPGG¥X¡£þE¿â [¤§8äÖàäæ²s¤\qf}B¨ sp'¶ÇÀt¥ÿÃ
+´;d/
ôY
+ãoD
+*Û\xF£Û]
+Wmä8v©4Xé»$ÖÝF©x:íLãÂýêÜj4y¢hîËÙú®âzá\5ðÂ`¦´ý1K#ìv ÖÊ_fíPöË5uLá4uötï$P'
+dAFß½,usÖXdª¤æÏæIS£E&pÊY´C¦-<Ý,¶&
íÙ-¨{ø¬4j=̱¥KÝGR\«3åÃàaT]È=ã)u$»#Ïh]ù\Aâ¢ÿ¼>àÙuÉ\ê>~gc,qØ¥Î) Ë3²ù&8ÕT1«X!ºÖèì¾^B*Ò`/vNÎø§eÁ·%ïàå(
ðß5é@Î×øsÐ6·£ç{³2ÎA/À«ªfªÅñ6báo
+µpÏbK°´ýVè½Ê©g/D¼È£jO{Táf:w#Úö®DNE·Sájç!G?Øär
+
+¦ºÒ¢L¦wá
àh8+|=èòÚ.£®J®(´¹*É7i+¾´ÁKyákÀCD\"0Þº9]ö>±@oÙÙ%ïºøw÷ðØ
OöþÕbÌtUnr¼®¥òÄGp¸vÉ(rr`Ä
+À_ßX u¶(QÑÅx *É˱©Ú¯
+ã2Øp/(
+\´²lª)«>¥ó¢^¼ÜýH ÉÒÓn(t`z¿]÷a¾Ì{¬âêïÇèÇÿ;Ö,
+ÈßÒÜ6!ÇA¡UÇÙ̺Ì+kÏkaYîD~«Þ§\{=ÏÒÈÚ³{׺w£+ã}úÞ`9;ÂÎÊ.¯t4Ìö¥6ç?õçð%Da1IÅoÁL¯½Éj53íÚ:¤(º¹
+Ö¢-©âz,@
+ó÷5»ª Dȼi§÷îVg]½É# JïwG˻Ѵ<Ü
wIjî|
+\äÞCÞ³J$ÐfvçÔ¡
+Ñ\HêÚ?Ñ}ñm·+ey
+§Ýòdk÷ðóH]¦öìgÕOýNô»¨v¥Ò^{÷ü»÷Wsk~éH½aZËzLÑBî»Ø¹^ü1ßõZëféEÎYT°
¼çÄÞ¢P!3è¥Ç-£§[¶(2@¡
+ǯ±Lï)l0)ÄüLåN¹JsZí<Ó5é¾&Ë{ðÍG¹#âqBNdv¬>LXËÔÓãÆº1iViMUçÜæ^»Ïì858LxµüÔ^ÕwóáOEp?±9¥B\OÈH¢1ÀVé4üYJí8$j©{!G«º©`#9ÕµÔÍifèz9*øÜlRlø©uòÔ¾ÈYïìS¹²¹aµV*®¿öãHµ5Ö~©Ák
+2)C7º#sǪidC½±Üq²ð$Sãm{
+ý/!òJæ±ÇúÂ?Ô(¸:ʤÑÏXKôOÐN®¢ÝµùªAxaËLðµàîUøûþ×JÂ}£Tòîäº,ÛvxãþB«rP¸ÈöGØ
+ó³í*¶²ÅsHR±ácPW÷{*ãoy!z ¸£
Äy.
+]Ø©ëÌhv<c7jÞÚ= èa¨¨¥6Ïq§ÞP/Dé é«t)Íá#y¾v{÷\À@³¾¬ì°§ýrXÅÖ^秪Í|àÔ;@lä̺ÊþQasKÖ¡ÙUù4Og Ö0éÃÚ®lͧ
+oGØéjîP" ÷ÈÀìèkD^
ûÿ_)ìãß3©Ù¾Üü 3y1s¸ÔÏýÆ\Êll±IÌWÁÍ)':,YCø/
+¡C¥Ô¦d'6ÍÌËPËØp9ÉDQUÃ÷³)%ò¼b·A®~ÒÁ<`ÏbÛÄõ
+3ÆÙþÊ®g´[)î=JÒï$
+¸IÆëï:oZ׳öð}t3¶ÿóEïÞÀÑåÿ8=¡.$bG ÀõRm× $¸oFÕg}Û'¤=AÞ½-Çý·¨ü¥²¤@M?ßó8÷)!,zCæV<î¶tÎóÁ7þjí¬<°Ù¿Ô1l|"èð^÷ϰ}àjûâ
!JÑâ
+é
+
+ÌèYëÍ%gVr[ÙÝuOÖc_
+OâJøL*sÔÅP Å8ã©&±Päqëk0$.¤¸Ago'Ë4QY7m<ò7LðFM3.Ih<F2¯·?û^ÚÐ"óJ< JlÑ&j
+gÆ|½Î£Áð¨iJÛ3Sà6;:Þé[&0(KI·7é}v±ý;¸Ë,a¶µ¾Tw5e1UÀ<ç¹@à®v1µåwøï½Óä/ª¾\¾ß8üZÀMl,c|¹®
+â p[XaL¹o6ÌåRºÐècñÑ+¥\é%i½DÜÓÌGl£ñ
+6Ô#ooøâ´xÁî¨XµtýûHY)Üo:_l§LC$d
+Kjks?ëXLÚpt}jÆ §àoSr}ìýÅ"Höü&,ÌC¬þd
+ÅëÐ!
+;ÁHu×Q|ëÚþÈF;zhfú7?X(îa×ZSú*0TyxFA¼Ém,Pg²BfF§eJä¦ãê©bî HgbBB2¹|Ó¾¢E^_M1P^s ñ¶ëõ+\ÍyfÓ0ízEnþUü#²[ÂVé:s2¾®·WàxíÚ`úbÓÖw·Æb$QwÝoÚ¹cõ!4Ø/â6^ñ]ý±§T»¨_¶@ªÊجy
ÝÕÈ`©É»°õRÃcmGª¡ºL`Äy3nm:5tÎWS®ûx3¼©h»ÂZÚ@B¿åMÑéW:ËŽåñ3_TZ
LÕæÙ&Wü&Ó
+{¤qj$ËTXêHú^<©½\'RG5Ñ!ï~{y;+ÎU¶þ0É|XVgR9à þfX +§Éeæüw6~£µÒTÓ0NÓâÇñÖvcE®Ð`&^?_Çr´ô¶
+5±(g¢é¸uE·2Sû£F.²À¯×ú«.s!^;'
+ºç>Èßv{®Eßcèjg6CÇVtÍcÃ-&êIN>¬{5N}Ô¸"½~;3§ä&{YRt1yõøIso5
+¥ßK¢Yé!@ÂéÍ'lp½¸ÛLO·ô·Ä$«msww3Þ
+FÕ¥_MÀ"!ÕÑÅs¸Áì¤îD©ÂÓøe^1âÃêVbµ@ûª½:jí^zS%Ä>F6GfÖ&oÎÅþ³ün_ÚÝÛýƪÈÑÐѾÂ-X`¹¥§e!»ÿÁ·
+Ù>!{Ì`m¡úßÍW£¨Ýö¾JçÊ«_¤_¤@ÚLqÎɾ¼Xõ>ѦK?Ûûäc9S}ÉWÖ5?·zü ¼O¸-qk[ß¶&`öWEÞcVºk
+T6)ðoߤ·,=Ó#uûK~D0^Gú*P
+çý«rÉ[Hv6Þ>¹ñìÿ^ünW¹â¼$ ØO %úÉâoU¿¶ç.5:@
+ý
+¯|U3GÞ¡2Et_Ðx
+w²Ù½(,ò[ݤcx78`ÚGú䨹 rãÃÀ㦮PÈì¾ z{¤jbTL_ôØ(ÊÍs¿ªòOj2Ôä:@Á3/DÄÌçgð#M6BêÝÝËýåy¨_âBÃH,lt¸3*g5g$oÐ|~ñON±)t
+Ù?Àf<VìcK+ýóØK>k Õ«Ànry/èçæÚSTí/%Û¾²/§ïghG=q5e=CÞ,ïp
+f²Îæ¶í«ªDnÀì3$y;ÕPù>M7
+>°iÚ±øp;#¢ðÂÍ?þ,yÉG^tt(JFñN÷êë®$öìôñÈf/tmʸ¿#®ÎÑdÏa×wðt«ÀÕ[¢u}òG¸û
+R ARìÙ«vy/Rø¸WzÅPU=æQ#D ×ÞÏÙBBÚpGK£¢e.¹C£;=³ÎêÚíxÊkËÈøÌª ³Ú_TzL@ÂtG{¼
+ m
+¶só\ñdãdèÃ
+ôÞïGjÊÁüñÎQmLëq¬«¿^Ï/îµa:±ðmøÉ¦³Ö
+o2ÜhQùã5ÑCjTÆ
+4ßm½H9@ÉuDøêâ¡rHUAÃæòVhE ¨Ú»eì°7#¿ÆSRЮsúR¦4<Í"ç
+1Ûâ·wÀÖÌÆXrÁz\(ú uTZÎà(ñKhQö))jÏɵÇP\p-{ªU&>õG]ÎôÑ
+ØéÞRÑëÎë®AåhSz¨$SÅæNøÈû~¢øÇÐ
+<3`²at"µäÛ¦Kuëñ:%XÏ¢×íP ËuÜá(þhàù_*ü¢Æ£
+ÆãÒAÓLAI#*r$ö4ƽeËa6÷k;]J´Ï¬dN:í¦4òÏ¿ñgíC¸(rü7ÎrVì·Õ%ä½ÐëD×Õl¾ê%§ÒõÆå»Ä^#ä1~B,]2¤Ü0¬ÄÄ\4±1µNC$ØÆÖwñBÿÖÞ½4®ìÁÄûk)Y¡
+>ÿ»s÷X)`µQON¢ÔqD$z¶äÞù©û/Àtÿ¡Sѹðñ(o¦ã)ßèä_L¸lè4YyÂÓý¤¨ÜOï<µOþ*8Â,ª}Ã3jv²4¾¤5Ïð»Sh.âÛ+æRÈ¢"2Lþh2Þ*¶ðòÒ6©@8ÈWNáB±0aÕ!B%? XèXësøzkÕOüró¨xýàÏGKÕ¾©*@òFÏ1\¾eXm´_È:bÝ'Ì})Êy|¹J^hPÕÔ<ÅvO¶Ù¦¸(ÿåÿ `('1çPs¼¨Ó"Ðé
+I)Å^¯0ëÂa*ó®ßÚEÛ|yÿXdëÛÃs/sn}ÙÁØ¢õð/§ïQFÍuBûtéîØ
+°
++»ãÞÍì¹ä¨Â-õâÉ;\<«ü9þ~C>èxî6SqRlúS1m
+`H.¶p ÌoxÞwUãXDía"å
䢬ÿáäKöÃeÔJòL3ôö_OvVCÅÏçiÀÉÑá/s)0Z^0<^µäzýg50Yä°É_õ`ø$Æýz·þY uñÕ?þ¹ôÖñBe=¾¾û@kRs9Ë]üÂÛé \:¨ÎLV«±Í¿"¬LÊ8Ï%Í¥¡lB2ß}ºúÑ=FÉ3MkwM¢«-¼ºaÜÓÛõ)*ØhÚ%µIÐMÆü^,D~b«XÛÂIE¾á*d,
+Ý';w³£TVN<¹¨%O;+YðÂZªÕà¨é,=j[Ó¯
+úÚ¯B¸¹öÎL
+¦ ,°äáVül¸&úìÕNfÝ`N¾d¡z豪Ç'Å÷«é#Ú¢gæë¨M`0Î~Èêȶ¬N¶xL·}^Lµ»02´iø¹y¤$=VÝ0*÷(ó%BÚ©KÔîÔÕ¦
îÅâH÷E¦ú° Ð$|¹FF¾ïE³o/||ùùRã÷·«»èæÇ>=ýïÙâÛ¦ÀÀº×Q
+;:B:#ÇJºÏ6ëSY,/éF·¼ì[ya at 7íÄöêèTo¶XHúo£¯ù1Ø~
+f¾gN(«¨æL<Z¿vÇÞÍÓwUylÕúð5Áu±ùcñZ$s0|ËþHÆØ´1óºÖ/[Zß\Á¢¿
+êÉ=w¾åШä4=©¼S¨v°¿´F
Ô5G«æLgtðKXá9V¶!ªKò¿ÜF¬Ì"7-}¶tËP»ÊĨüÕfÊÌú¡áØk#º
+éQyxiÆÛÆaFñá1ð:u¤ótDÖ_¬]Ö*·NwßÇ#Ź"ÍN¼w¯8ãÅÖZÑ÷
+¡@¨Aà½ÁOJ>gÇ7ï
Jf.y»dëûE¤Åþ
+®0ή²íPøÿxí§åÈÈ?háYäN ÊHÉ7l§ÙìMN<3{tÑzð®¢Ü±>BÇBâ÷Ü\uÞ^ªke¼¹7õ¢Ý°Ëò¾Þª¤>ÕmÂÌ'ón*~äèîÎrJ?ó®9{û)íéåbO¯°kZÍløT£cÿ'Û%üüE,Bõª|õÑ]ågE·Tý÷ÁR0¢ õûãËÞ+Øý¬!Á¥1ö÷§j3£êüHõüØ`ô=«Ì3,°>¹W÷EÔ
+deàåãzµ¹Ýô1p=_ezÏ%AËl;?9'÷î0ÿcÖ×Y!s2¨yØ&Áî'o54ÿdGßh(eê3loË%²s¼|á*ÅÂÎ#F?ï8§Y©?ê_/9*¯#pÇíVÄ"\Að9÷vz.øUl@<?qtÁQ7ÛN'=,ï£U
+³Ä£©?çf
+³ØãÙJè¾]ù~¹*óC±Èk>lL\J
+Ð&ºÜ¨X°×w3Ø;-© 3«Ñµ7ïÈj?¹Y4y®]÷¥õ%@.¨ÆtØëzLüÿîè×f(
+8`¯KóMeÈ%Û=6PP;ÿ±³ûA¸ü+0+%ànÊ`uë ØeÜ;§(ÓêwöR>»ÆÍhÁÛ<±=èÚÈ<}óäáÿ°f°:Ûy/àTÞõO
+)Q2¡t¶ Çn#æµîÿE ¹ÖónØäCN9Ýä¾xÇÑáÆ_»¦3þÀoéÛ¸ö1%{°äV»¯r{êmjûþ_éù¬~¶f§ÁxwÒªcÁ tÿGl¾ìeT°óI0Hda(oA>dXÊ{XÍV?æs|*ÅÂNÙ*½º%z¦PÜιçýPT»Qci3z¶çN7(3V}$öïv|.Ñ×-ð
+G·oAOIÅxÊ¡
wïÒªÖÄØÊd8Õ7üíspª¹pÛý
+á5ó¬Jû®øf£ai²ÊÎj×xrd[úI,Þcµþȼû¶>: ѹÒ÷P
zg^§ôs·68Nz MÑGO})]{*¦Y¯Æøg ¦µ"mdf <üÀ+ÓßÛDþV!c¹ß:(G9²kxÀ'Þõb\ðÃzB 'Ëv{äsS¢´kWÜBÑ3nÔ¾[£Ë8ÒVG¶¯Ý«uí÷UÅ+Î$ÃAV´¿k¨·=ä}ÌÏÒS_bÓ·ãµÊг9÷ú2þá·V@ÿ¦ggRùP@È]7<ÉÈãÚ©åRR¦Nr~BÒ){¹À _Âkøm
+MîILÌ<Ð=òÛ
+2LrG1ñ,uµÝLXPw~¡ \²WÖkúh=K9Aâyiþyª¼¸©Ç(5åNq½ýï5Mµê¯:G·|ÁfWùbÁã2NGÈçqÝDû£Ç;Âçv¦ÐEnSåøb|»íê/äõòäkô¡fXHüµèø4æ÷ÏYvæõâ«
+Eb èK3¶ºõ\!5bPý?M«-¬Ó|¡®às4_,FXçªkn3ªvÅnìcD.íçk7 àUðÇ
+?=b{è½/øUª¿[^¿úÐÌWvºÜxcqÔZL¿åt,o.®¼÷[$jmJùêßxêãw, 'É|{|f1=þãÚïýárl¥ê»&×
+!ÇQMpRE^9ñؾ×ÓóÜÎì4uªXq©ÿ¸µ1:ßç2ª¦@âº-ï½½.
+£fø5¯rmPR+Ï[alD(Fná¼îõVnû·¸ ¥ZÑYØÁn¼DNýZúâwð/f<fÑy
+Ô
+µ·ÉµÉÍôw¼Ãî
+ethO3gmÝ´¥înØá×"dǬWôÞé¼Ö4´ëuI+mWÅkêáòÅ7Òb,V¹by¾k ®úVÃØ6ju¥)S>YU,}DÅ|ôè¢WìÂ{²lȸgc\õÙ,]:i#´÷]ÞwÒ&&WtÝÖv1r\C8² »Ó>³*qà
+ÖÒß*yíÍT8äo==§"bDIZ]d¦ëDq#H ËVà¶u¯h¹cùOÌgYÈÀnKî`½}Ñ7Ge«nü§Wù6ÉÎ4ÃÇögCÆï ç±·lMþ«µYw¹Ùè¾õÑgy½WòªÇeAÎaS}õž®¯øû>áEw"$T D&Ç ²ÆHÆ5.8¨Ê?¼`1y2*è"ûä@-&Ñ5åP<"R(O6´_¾>þh3ßqÞÑùפôl{Mr'÷YªC( ¾âðD¦¶rÐë6Â#è2&&Ìî' ¸ËðÒÎ*?øH97 GQÒÕ|#ºüq+PØ¢+b 5ܵeRé¥dßüQ·'R¦
+cÁÜRÈ(§¡^iyQ¤ò
+¦ïçÓÅÀd®`æ¨H?o×ò&2çÔêiya'ç»|Ó['G5$IÿCr²GS³½æxÐÔô)ÎnÝÔ|$ øÓ8Ü>JîÑáðøé'µk#Ù&0ùò&/J^O¢Ew¦ :¼qÁk¦|úñIý^Ý)iÇúÄ_~¿
ôåÇ`º÷>ÚUÕ·ZePehþ°íÿ<¨ðøäÏÊ\m¨ÿ}
+bÃìÍöíÅøáòC~ÃÂÂBº9póQÉX`(yÆ_Ü\^m\±µGZ]£¿\D,u[!
b]ؤ¦S4Gß5ÒK¼ÁuÜ¡uòjl°§C©cU\ñWض"¹R/ÿjÉP,ÒëÇÁx¶yÚ2þÉíHÛ\×YKOsT;-
+bð(lIò¿×ÕÞ)¢PÙ±òµ6Îàîn9Q±æ×:5icjæEò ÃY F[öëࡪþ>2$n¨í6ªì{ñ¸ZU£² g·ü¥ãâõ\C½B5ÈÌÕ²·3R5¤â'{;âOFmë¨;áwׯ÷MÙ/¼õ }rU:¤
+Fã¿<ê@>C³y&yÜârÅÓßo:×ÈdÂí~+t¹·(6I&*7õÁ#>F ·©
+>²ul\¤à \~$£®³«æ,ßê[>¬²8
+ò£ÑoQï8ÁWèÍþÆ»QÝDæàN®Iä¨ï¨ö¡Ô¢Âé2æ¬áÒ0¶|ßDbÚFTÎX\¦ªW{<õÖ Ï«VYñVaMÁ.QÏWaOS{õï=Ý$w´ChªWNÏõéQ q}Ðg¦øá^¾ÅÌ-+¡o^êe(YúÚ»[ùÉ;æhz´;£0én[¥LÞnóÎ\ܵ×" 7¼Þ»}ç¦0}Iå^u£3[+®Ü;ýFÜ´RìZOÕ§c\É~§*^!âNËÝ:£â!®EØ10/{ÉüÜËoØMNFT¬ÙÑÛó׬
+ãýQ´w%l'X»]2Mjü3ZIä91\×¶Á¯¹QÛG¢#ö¼¤l5:磿Ír?ÌP3[,°@iáNгê
+¥¢Äß6èþa5¾åh'þH9¢`4×ÈX_ ÃÃ_þfÖ%è9*»D¬o°
+]i}å+ý·T¾À¿ìgÔ7¦Ô>ßdÏ4GOf(¹»%ùkÉÌÀé3=#ãU
+ÊòÛ ©"¶¦¬`A,ݽÞ$O O±~N9» ¼Z~CÅÑæõ5ÀÅÏþ+üÃÖ|©g|ÌRYűß/¯)Kr?Ýäm°¥¯Ìóö ÞÜñÇP÷ÁÜEéLsÃÕÅí¾¦$Zv,ß'´J,DD¤¿ß^G\O¬ÿþbv\F at B
ËQ@ÑÛ=ÙÔGéIò!梢,7*>5Z8
:ÅòqÂè/il½IIm6¾nn÷J½3o p/+ð yö-ùsî=;À¶îÅQ[KÄ-æ¯i»©óSíľÁ]}¸ogoÎDÈ÷ãéÓbQ4äÕP8/iýlä½ÒÐrcÐg<¢"ùËhÊã/Í[b ~ú oêæbAòÿ_ýºÀâN©?Õæ,ײúè×ÂæZÖdu³ç¸Õ~N|u©ËþÒKJ¾Ð8-`
+@-jå§¡&ºoWS
+¡GhÀH,Ö³|øUÞ·¯jg&SP5»ìNs°ëy/DÀÈr NjatE+s9»n,[¢©5°Ö¶í寵!RgÇÞLãý¾Ò![§4éÞ½tw#:[Â×*dæ
+Üz`u>ãøí8ÿí[½
+^Ç/ì!BÍ.5dí<0BCFE<òfwù¬¡£)týlc¦÷:À.Wh-ëî´ôó»CpÏ3`jmÍݤ%Z*8y
+)CÀº'óÍIñ8ü,ØF#ÝÑXh.H9öÛÒ¿aôö¹|
_4þ¼ÙT÷Üs!®Aìc6Ó]»¾j{Öñ¤Ô'+u-ê!ð1g?V\QÙð}.»0F÷[ú¼CãÆ2À'Ñ
¤îÝVqÈæé-g¾J7¦À-¨P/åéDÃiзË^]12µî>ü~òºía«×¢]}ýή6 c -
+ ]öÃsæÄt&£ÙÝöRÖò»ßTÇðl¯R.ã/AÒZJÌd_þ,øw4u¹leW2sF,k=ÍZüÌ|$:ß-Ì~¦"§û$=z$ñ-g|þk¦
ªôÏîø®«DÇr»¥\OK
+·ÜYòöº]Ñ^èÞ+³ßÞð·7çTDóÄîüz,£XÓ+iðqÝò /-Ø2Þ©½&íÔ wx@üýâé
j5¼K
?'ëÑþ¬pi\^/òGÕe·c/I'?)¶=õ
H'¨¬Å+>DØÁ¯lK
+¥Cxp:ù
+E:Ð¥ÈSçnà=íPª¤;%ÊîF¹`W}lrºw7*ÚøËcB±Æ·>xdÎB¬Ì?/.×a [|D³]ÑN4 R]ëAPRmØ®ûÒÌK}¾7T6XÔÇRt+J
¾Ô¥ó®ß;e/ýËÚgì\*ÇTw¼Ó
+£xb<ÆxÈûw¨g&£Ù²}sâDª°`1ÝúM*Äe׳êÒ-Ã;£¯
+ôÆ/xÓæ|× ´Pó§BpÚóvöC¶5évóèG߯jïÞvC|4¥b|Ó;^®Ò»3Li_ûñ#F11Pvº
+¾ÇT
+èæªPJ6ßWOz£ö¢u7YI©Â6xÖÿ`Fü¬üܾc9Á»|·b®~ñÒS¬oØ(&<kK;¾òKúÛçVëP8+¥Ò,¥àPbÿ'FßáPôFI>L0.5ÞÏQÓc\¥}DÂeËÙz("SûIJ÷³ªê
+lÐ?l±ÄªÆÂLãÑ$z¨û!6>Ì|OønlR*åA¶ÂÞÃ+[ºk)éÈQ'íl9p!Ç6l.C@P
9G,Öô5R«]«Îòb#«ªU?LÚõ)¯î1ÿÓÒù6H&u-+9±ÚÑjþ¼^Ò#-
+¢¨F³v$ò^áL~ßˤu÷¸¶ÓdQú@ÙÚà{Mt3îU@eÑ/ÇUkË'b»ÝÚ´§À6ZÚÃvüÕ6¸Án×~ÞOØí}
+Hûz[÷=ò®w
Q}Ï@ýD8ÖÔ>* -Ö¶¶³ Íny5¢@.0¤Ù?@hÞÏ´Õû1"j ô{íY fÑP&,+6ÁÉxÂrãW¼úB8p×M Eùê_ç
+;^Yfi;Ãx¼Lyc
+õÖå~¤wL/¢Wfî´çØ2d$.T¶A¬Ì¡K<V¨êæCàZY±£kÐçó's³ÖìbµLJKm<
+îR[;¿`ãÎ1Ê#uë
BézÌaÚABßÜàÀsøYVÈ5öe¡#Ìβìúå1\V{p¬õìñÔ!å°gì~ÈiÀÙ"¤¾L~¨îZ¢)~~
+dL÷·h_
+aÖúf±|à$ÙöI¨KÐ,Õö2W~UQºá&¤¢åDPHæbàÇVO¢Ìgÿ9æbÒ°ß]
+Y¡
+gé
+w]«9 ±¬\m9Ù÷ð{_»¿Ôc\W¼i£²ü÷¤ÞKüï1Y±Ùä¢o¯+æ0Ösr®ØÝ"f*±¹vÃÕÒþAþ?/[Vp,ÍX
+F±wé×ÿ*ÑüÜ~74Ý`·t
+Ìj××FÆÁàÚÊõÜiHÍf»Q"¢
+ÐcÔXùñGyt
+p¹C)þ2eò,ùúWç^Z?6×>DÉýöðwv%sVTH¶ü²×àqÞ Pê.+:ðé×zûÝõ+jÖß
Nes&°V_ñ`Hm aìP ¦eÏÚ$lÑãwÏó ä¡ÂàËébþàé:M'NÜÓºÞ
+0dåZâÄõµW¯çeÞ|ìqêZ|\º#ÉfÒôöÆ¥8}E#¹l<ñ.o⿯_Ç7:ñGdÇ[FÙQ4þß°3z3ÕPÈ
+ËF#]=<ý
+ö¦÷>&³¿+D@®Rʰª m}ñü ¬I)èá8QÆå@NWRÑ0¸ÍÁ @ Oæ%ÇCRÉl² QM4nõ¼´>¨ü
+þ
+ïÂý¼®êáÒm>I±³ßjz¶¡¹íÀ»ÛJä¾âp1ì©Ù/¡W³¶¯DV=EJ÷A¯ÏѪbÕ¾-O
+0Aª@5îÄdåþ²7!aP6\ñdwÍYéXP^ÍQ°LqýGÚä¯k
+]©sihÃ?qÓLÅè½|K{÷Z_·}t «ºÖ3eì¨ôD
+yÙfKtpÜ ¬syà£G¿°LkY@WÓc7ò3<~*
+IXít·öI)ôZÓ¯¥ú¢ ×'ÌG;D½þ\5:A«{2wiÒ&a£s
+3<T
+!Z×»Î1î&Ó±øîþÛGã-èþ¹òú¸Ôþ+WçMhrv}/üÉôðg¾k pøN ¿O("Ô | ½¹ô¯6Åév\ÐáÖPoüòjsÛñ§0°U;ýÙ
VEÓ¶
+ï@©ª?«¼`n8ëDÀ¾ê"pfÔ
+/àK`rb8n¤íJ¤ý¢sùÆÑUU¬õa°)UYqïãõj'ÉiB,ºñBÜ»éʰãÌ:ã6BW«Ó-c~pp¹prÍQåEéí6Ìäy;íÆwÔEÕáà¬ÌFÛ¥a¢!àÖ!6¨ûä*ÂZàIcÑ'%uþJyX
+½ íÈR«5.tTOvÙD¨ÙlÓ©~ãÉ8«O(âzVa"¬²)Å. }R¾ihɧÝ&Gñ{±ê>xLòµ0±*:+ý0\éoþß.~qEZíþ£^ßM''Y"ûMþ·ÿ@>_kv_üßÝ«bÙ3\h±%sl4(ý²ïp2ÓbU¬xéã³éYh7½=éÅÜ3KÒÎÁèÍm!gV±Gj° (*r\שm}ë¯ÊþMPÞêµkãÆìY×\P#gl)¡8¸@;
+HÛÕgØì¾¹"ÙLpSÙü´3ÑïõÉãÑTØ^^Ë\W»')èß3ûÄJÞ¬.Ctq}Ð:ÊÑ£÷0z¿äMp#¨
+7-þyÖ`wÙz|_ü©V¬Á{ýèÕLé0Á£Íi½"²Õ´Ùô`.kgöÿ<yRïÌ}n»de~5oÅ_hK £Î1¸ÙÑÙ}rÁE7ê¨èssÀÊD×Rqñ^7Cs@ºG²¬D7ïò
+\e]þf§!7Mk§êÿÜfm%q¶þR.û:Lg¬?n´Éf´8Â^¥¸u2Îãòÿl§nÅNôW³N9ªÄ¼Z°Ó¯á8®ä4`Ò3hÖ?¶û~F)5Kzª´Á£ß¼µBf)ÍÛâ.RÑ&ü!àQ¥Eã6é m6ÕÏú±]X´NxÛ¬éSÔMX˦TÎ|ÁåÂHML.Oy£0غåî¾åüüsï-~[~Íþy
+Í.åúIçeav©4º GAåUÝ&wü¦=,á¶ÁäE÷eÇ%Õ{A5ÝL$V£Û$á{¿üHé¤.5ä¢énlŰã%plñ|gA[¾oº^#§Ë
õ4-ÿoÅÝæð
+5ÚïäÛE7(>H]@·Ô¥8ñ¸TQÙWËá/·<¬#< `Õ6Æ}K|¶ÇÃ#kµiªl9ß?꥽ÖtÇ\¬<ÿùr§½WA˧ÿ³V¤Jr#¡W ~ÅUQþ[W¼bw^nÃ{!iÖ»>é °#ôç9ÞhVÒ÷ÚÈüû¾Tó_z\e34ת]ÜsÈr?´ý~S¹ºâw
+ðÕépQñ¸É8ýUzû÷i+»dCÕФõ= lÅÒ*Sî¼üm?ðãúÛdG¨u:Y\³Èô#NpL'æç-
+×N^XGÀØébó¾»ü§®#ÉÙIWeúäw¤áÚn,òÍ$
+¨ BØZÁ
+
+AÁ¿:$BjÓÇÝØi
+Z§ã
+ìÌýf5"®¥âoæÚÉÞôTÞö
+¾,&ö¼õQ(X*6Ï#{m*mBO
+n;þ?¸ 6(Q«1*ølãjÇIÌÅR»Ø& 1ܤŧ9öµÍÒ6âçß
¤Çbìær3aª=̦ñò®|9=éîÔÓÚ=$ÇQîG¦0<Ϭ¦ð$UL[ qh¹Wc¤9aÁ»è!׸ùI4"Y3ÓâõM/@ãR<öüQ7æ]$lIÌÁ²'CÉî&qiÌùÆÓ¿O«l8k´c'Ä\f£ª»Úï/ʳ»éA©#ɧïµòß r¢ùjê~§
+è¾!@ð¡~{"p<b³3è2ªUS%äY¬7G"Ú'X×±t%a¯ò§Ñd3CòúÕí$ôEþ¬Z¸ªÕ[ ¾}B
+·yE»ÄÀ)2·Âj0<´YÇ~8Ø{íb¬¥ÝqÊ5y
+Äågüèq{úZó:]ÏPñ®
+x
+øÇ*/ø÷!Kpïþû<têT\ÒÎS"yÆÒðvòPò¤H3ÊDú¢±ËÈ©ëÄB"hÛëc7*Dz$Ùø<Z|Ĥˣ¸)¸9 Ê
+v=;Û[D @þö;ò©$ÍÖQÝÂ.ÌÓoëD¸ØM±íÞlàiá£ExÃÓ¢JÚoôõnkæ¥_[ûM¥Ôto¯
+3(Qñ³
+»z´kWNÞ.0Ýêªñ¼ø0$yøèá$ý^ûWGèÔå:.§1ià Þ:30¡iº©Þ±5æN5ÜÿWGFô÷cf¶ørLÃD«»ÍêÏpiHHëP2þQãb
+¢hxÊ£°JÜ\R3*º÷ÔQZz¸¹äöÃú¼É\ÇeòâOóºûÖ[ÁâÝ1ÁXu«´`·Ú èAªon [íU½¥+íW ¿{
+²ìÔ=ìR5~ÇO[ÑIzd«¸â¢¼Çªs¨P!K°
+N8©QÃ2w諭L¦Ff+¾Ê³OÚ*qÜÈ5a'#ã£,º8sίÂriW¼´RV0þ>rEé%WÓ>³Bb²ù©^b%ÐVôiµRPèToÅC·a
- ;Ñ=À×xж¨ýhíê ôÆÌwhÕ¨CÏC´t 6¢ -Ún=F÷¢¡§ÑËÀ×0p¶¸Åxw;±£AtF{?H^G?>[X¾làA!Õ¾P¤cæà3íäò8Ùn´À¯ÌÏKN²éu*%C'?N%U:*¡®í|e¿ÝQÑVé44WVXìöL'ä
-~·ñãUºb·W
+@>ãB
+M±ZȺ<ÖK
þ2ÌÑ`bì»AFÔcLòRåÂá¬Õ$ºV.ÎÙî?ÌÉ÷*BÓÙbÖÎöP%rµåLðGfe}©
+îç»þScÍUo¶*íÀhý¶«ô,¦"Ì{ÿõm©}':tJ/¹=»ç´CI+Ý
Àï¿GÇqr:Ê)ý¤IR|Ö`å£á0åfù^¬Ï?mey<ØVqÀDõó
+ħjÓéÊw4qµüö©ß ]Fлî^Ĥ*ëuدÐùÊÆ7)
-Æuã$©RHÝãþ´pTØív¨Ñߨ9>sú¾ªG0WWc³0¥Úºøq*ÅÌ(B]Wä
-`àôo°Xå¨jÛ¾½ÊÁWmoÛ:>³©ÝÁkÛ¶+Ûøq´¨yýä,ãU÷µkÚºð<L`¢ª¡Ùg±kaÀG`ñ²f¾r{[tÜ(e®XBDpp ç¦àex%4ëüÇçÅ,'Û®µk ÃÐê«MúZx#
-¦xìÎÍËw3Uù-ÕÅ;ü³½§«½«}¶ùÛöõ/ί¬[Z^õr×ίzÕ=±é1zËòP+N:s'tVÍ«ùóê5uËûýÃüÚùíí å °ÀV°GÊ÷'PFñv#¥QIËô´cÑîX[l[,Ñ(̪m1/§sû)ä+òù¦t9ÙA»CëINåTëкµ%À¨ÉH·NêbãVê~\79Ù<¹òÅWÉhÝÖäô´
W_e
-Óçk><ÁuÍ\¤ôJFn4ìoTÊiGÜè [Ôãos®Q·Yû2GäðuÄ)'ÒÔâl_K´Z^Z?ÏëãéR©K9+¶jSc«íör^×祲,-aÍ5W´éÜ\W絺WpVbx£JHözò@ùÞëb9¼¢L #¥[B@´õ帥©®áÞíí\
ãg¦§k
äùown8â÷½ÜôiÅâÁ;V¾C[¬±½qpìÑÌL^jõ7ÆÆhRNq)®¬==+ÎgúÐÒ¶P°*'"ô.zéêüÞ\R`ÌåËI±oÒÖÝ)#WËØ2-dâý¬L¡4XЮ[/¨-2³r]Phë)QbA]¢¨vVÌA[FA2åIÕ'Ú½káü²£ß»¿fr2ðr÷[Ïlß¹øp`Ñ@Í£ã¤hÛÅ
µS#Næ¿o÷-ü:ò·Þ¨*Þhþà5%3ÿI¦CȪýN%cf2J¡¨rÆbñQ²zë¨Ñ}V©JcK%~&_²mæËÜÜé\æË\Ð
-904«Ãëë²íÚÞ@¦½ßÏynbll߯êê³:Lr¹Zwüi8K#§E¨æ©I°®Ý3Wè6X×XºËüþd:CMªâËé*¿LµÈÔjR
-Ç«qÍÆÍ)6Ò
-
ÄÇÉÊ83Úiçì6»ÏNÙ°E·
õ/À¢þ&5%,²ýFàGZ
-
6F-n»úfIggSÿrä¯÷Fþ3òÎøâÿx ïÝ÷ÐQ%±¬~8';{¹ó|jÎÄF¬Ãeÿú{úOÜ=ëµT?ì:4×oG*WQJ¾\.ç¤~CØ@³l^dR+°è+%ÕÎZ¼ãËgÍê§×ç}ïñÀädø¹§Ú%Õ_ý|rY~± æ(bÞCçw0U,«¤ÔT58Ö¦%±qãjø¨>*LQ+è*
-KpN«µ5¾ê`;µíƾø0ÔÇæÅ'!NÃeJ]s²9?Çr¢VOKmDj7øC øÑhÈÃàO Ea "$)ÁÞY?´Qô4áÏNᆰYsaùéß»ü7òùS}1²&°öÒJÊþβZN~46¸Ù_ö®cÞǯ,Ý[V2T³æ ýÓGAúbô ?¬P0.³ÂèJS$»Ò^CNÇU«¨4'»pÓ¢XêêV¬ru
-)6¸½#Efϼy¤p¬
-ÎÔfÌÌ´Z,p*¨TÚZÜaÏÏ2Ù©¬øyù´zÌÇùl>¢<P¢¹"ÎÍËåm<èÓ/×tA(=DÅë!Åë5zq)ÀÖ3°·¤ÐÇiuvImyàÜÆÑÏ븥WÖúv8³2ÝjUí1+-£½¤õ½VaÁz*¯®=rGö(9ño«W=ë«*/t¼3·6=ÍÙ½xÑx[ÌScÃyÍfCEÉ;ÂTgö¶å£'bÕR·à÷Té£pâ#êòÒ**QåQU¨Â*V©ªfYÈT5a( EI}òz9s#%ÍËe*¶Ås¬õ±ví
-ê
-Ü`ÝAqOÏïc,Þª¦Ocð1ð.»Cܲk1}ôãÓÓùäãGVNÂODø+TõÕ~òØt;_MoÓQØ¿P.5K3¤ÅR¯¶ØVhIÓº¥ÃR¥Õj®álIþ$*É^ÄÆNn^åêZVÎ'ðõ°
-ì·ÊÐÂéÈfÌê±@ÐcpÊuC®àlÅÿRbî5ÅÑ[Uÿróðªþ½{þ3Óëò<x[ó
Ô¦éÒeöÇ,jÆt½ZZp'^ðÔ¤æfÕ×uóɶX%9¤é4OþϽÜ2?ÍL¡:ü¬Ê¤*Hrç¸ókÊrÊó[qj¿ÈÞi¿=Gm¦Òj¬z}Lâ·.Ãt2ôHW`+ .»lÿÜë»ý´² ¥+ºÓ æwÏYHrMBÉuÁo:yÑOG~ûÁº*KÍØt¢pQ|ÎúÂ÷g±ñµ»4·Ë÷e
î©#¤´ ko÷Sø\¬(_u?çÞ±~L®:ÅY"¿ìö:¼Å'ïgòÔtSíÐK^gÚó
-lXë
{jÌl 4(μY`ÑAdöø2«ª¬õrýöHäÂ¥¿E.îÚ<4
-¿ý=ß9|ßSOnºóG~P¶rmñW8¸¬÷äÎ=Gð>¾:;úf!ëßßÿãOÞ{²ól>[4Nê×
-ª^¦§/Û1=p[ß\SrBλ·ï;^?óGz'óYÔ+¥tF%ex³$-È(Ïj¦[c±
-0Iâ´ÖÜCZµFýÖ«!ËÌèÐì²8íæ}7rAÁìHpÙkvL$,}Ãcuù³þ+,
-ìØ¤»nÇ7®%ÞÙ²lyä¯'<·%ÊÝ¥mÝö` ¹;×s¼rémoùçºz|»Îógö-|¬
-STÙÙÈpÿ¨B ÖeÎÍNôOn¾ãËËD¾>|pÒòÂC6czª1-ê×Âz(ú³óp£,ÔÆzâ+q¢BÐb+âÆ±+svt(IkÄbg÷'¢9«~AX
-±óD«ÑÙy¾92Ýì ;¿üWä~
eXùÏÈ;ââ[W$&Äí;VO#}{ñ(ÞïÇ#±«/.þèÀþOÖ-\X_û×¼»daÃBÁ_tPÜpÍa$ÇIR©T¦WSÕL½¤·Júpd!vL¢`¬¦±4[pBÎFo3§Â`àÂ;Äã %FN0V»üük¯=yñ^_Q ¦¤è@]¤ãþ|øsòSc#ß~.riÓÈ/+Îbóàä§DÛü½*ÊJ9q:I£èd&Q¡ðàB¦ïáfº
ù¢´ÓÒnY|b#þ>é§¥#²ù°"^iá$faL##TAÉ,a*°É¹X
-íPkÔ>uBìfp0mDØéD69øÃYÜzìÆz6/òñÏ"#üiäÃ×Îã8þüú *xõ :xõTHH$Óý[!öüJÒ¥(Ó
}`Ø¡ u¸Xºñ_>ûÚ`´næ2õ>ÜÝh¯=Kd#³$ËÒseEe²+ i½ÉÕÛÇôÚøWg®aÓòS3¶ãmª-æ©àRǦÑñÔ¦\OK$JfO³Äª-È+A;¢×ÇVïÜã¹iûr]¿¹Ã2föòÛçM{§×" Á»é.o4ÄA
-Üzú£Ñ_WÉ[>ì½/9¹'õ.ïÞysº¶ã|
¼úW+WïÈH_á¹+cóüù¸ìá×
-Êë5%$ÄÊbÕ)«Îvåç8ÞôÖÔ/¬t8LÊXy|M-¬ÕÃ$+°²¼ßË8 ÇÔ£z¦µ2ìÂ`A°P²é]$Lr^öã# ÍÌGâ7l<® ~
*P,ÃHÇÀö 6ÚÛÆÌlj¾^¾$Ú/C
-®h µÍ¿ùrr=ûUتpëºH¯[Å ¿³PíÑx
¦ºBSa¤OF}\ WØ8.Îçë£uvKì7#,µvÙÛº÷÷_ù¿|c¦þcÏ<ûÐÃÏ<»ßs$+òYä5\µð+|öÁ
¼ûÁûÀUO¤
.®(ó/,Ö¤ç:çeWÈúéeÎ@ördºqÓme¼6ÑÙ©~Ñbü*«Ô(áXÌÚufÄÆ¢=¹¶\_.ɰÄnÉ÷7³kߦ®Ý|ÂVìß8lc!|íuÉwSÚkÁ[¯<|ÑòL<ë¶;ø¥ÞøóâªÒ·
6×(Ç'wùNÜýpÃcK/ãbNë¼Yi)ë*VUc;ìzgÁüúÔì«ïPõí×'Ïø/Üé Sb¤[è/sÞHõÉ8JÖ'çc?å×Ï7.¢éÛ¨6ýF´©°~Á¨Ã´òvu>Ó´ÂöÄøMñNCÄÓ~~Îë!;xÝ&`Ww°°¤¦¶Ø·w1?R¹áÏÉ+9² Ïyî0N;U#?áůpbºô»3V®èÈ"¿U?{gEÚ/× Ngè#UDnú¼¿õ¹{HÌ>4ÀhÐ úW¨¾NP)¨~
-uSÝèy!ÆM ýÒÓê ½é^H
-CZ/©ÇÑì}¨|¦é´Ê\tþuø=PÞsÂ*¡x>Iä¤<¿KÔJ¥éwåÌ>6}UbtK~-¹"þâòÙÅ(÷sP x¥ð¤A.4W8'bÐÚT|åºå×å
-ìäCë:øÐ`Ï)(ÈãëÖ¬ìïè[5È÷õûúCkúÖeñ¥==|ÃÕ]|Cç@gÿΦÎþкPCçêÛ{Bý×ûÍÒùh
P1ø>õz£´h£ku¹Ynï
-Ø}Í
-uÿvùÒº%hÞëPäý¨:@=O½Bt:Iý5¢(=WAýJxóÑÖ¼ØCèË£g å øå RÑhÙs@Zmxpaư½Ö
-©Æ[@ùréb_1]â³Óå>+]æk K!ù!ù¼¹t®»v{=´×ÓH{¼ñôÛO<{¨ã3=úBRuÞñO¾ qÀû¯~Õ2.ïs5½áè=GÏ[|å9*KÌ;j¨¦ïݦ§Ã=á!Â=òûCÄÿ¨).ÏÿÉç(оKÞ=[ô6înn·ÛÉí²ÝmÛaÛéÚ±i˦m;wïÚ²kë®mÿßd<®ßÖOüëeÊ<®óo`þØ÷úg¯þþ_ÔQ»¦øC
·g´´ÓDg
-ètN3i!¶óå4o(¢ß4WÒfË|Úb.¢ÍáÃ@vu3
6`¿¡´<S§ÛUg6åM~:`Ab&6ú:°>°¡¶³gÒm§O¥Û^ñ7MÚm'OØm/³ÛÎ}MuêôÏU¯¼ª<qòeå±+5&ÿĦ;æ;VlìÍsìxêØ¯ÍÊeù´REP`D1ø8ÙrÿýÖñ}æñMÖãRhlÇãxG˸4°$
-QðdÜâ§*ÇÙÊ®Ð8ë¨
-j¡ vT
-¼Bñ?(4B
-endstream
-endobj
+Ä1ê>Ó ]í»XQwj¤ÿËÒIÆN 6.Ëæoé|¤:ÏÄÊK(rd»
+ÔÕÙ=_:,;áko Ù
GºBNJfè4·F2[®Yê!ëoàpÂÂ߬º,Á¨õ[ÃFRjô°eÿÉùZU7á`õɵ4µ"n·Øë¶Û¸Ýð §(bª;ÆëP¦áÓÔBókÌ·òrÝùRN¬=ó2@#ÕÅ×À@A×úá2kzâU=¼<B[gsBd¹£HÔU[dG#¸ B}¤çûp~.Þ0Ó6¶ÃèBMøÚîo!b ÃÛAÝ¥
+ûkÈTãií#Qtb¨¶Å:pá¬
+é7Â'¹.Û+øVc2L»MÊ¢FÓj¥#wZ¡ÙzòQ¶Mâ2Ka¶C'6ý[qzÌ^LpüËÁ1,û¬
+ºf BRï¿A,ömà«nÓ%Z¥E¶ÚÞ¡Æ9ÛâÔTÍRõůdåT2â
+iv yxÞr{/ÌiÍèUÌ&k«3¸0ú9[TT.¼BA58ð´&Ç1¯X¢ üýºÎaF¶Æ$#Úá©YZp7T¤2<Æ2ø^á1ö0^Óâê¿1Xêê4ÇoÙ(L¸/f·+/!G~¬¨wÁÞ$Û
+_ª0^SþϨ:e;o{q\åç.§8ç¶íB³Y3D'
+Ør¨vÁ?(ÈÊÕæ:O<ËAsÿï¨Aw<Ôã¤@7*hNÍê÷7ddì5L i³VµÈï²Tß-hÕú¥H¶üyzÍqäq 7N¨çi/^w
CfÂËn KY Ý4WI©ÃäfƨU¾3¹=Ú>¤ÉëÂQ¯6~Guùó
+Úh©b(m#üBo°,ÖDì¢ÜüÑN;§ê1VCsÚ%Þ2Ùæ1ß|Ä'^³Ü¹nÔ÷DL¼ó%]´$VpÜì#dIØì®Zþ@â!Y:|U¾;»§zУÍÍóS5ýáÌ/dpn9DbØÕMNQòÈ}YÍ'ýç-óÿúLéAöíñ{
yë8Ü3±ò¤°ÕÇ,]>´¢9IWC at a²µ%Ü
òïw©?szÙ|µð2:è»ËÂRN»EàOoí$ÅFòØé×Ä*ЫΧ·Æ¦)ðìÝÕ9W0«µÜéOÄÎ] é{ðîÃ^/m¦%RqÌm°p'éú¸V®ÃÂ}Y}Ê¥m°^jÑìU=ÊZ³JK#Ö62¸æ"ß°½Bè]Ã5K<qÜRÅw¯4ô'õ _{`¦RúñF¬rëß®£Sâ
+½ÑCµ¦ÎwHïýz[úÔ@³"Û¨ä¥Ç|
+©Ïï{òRxÙãP¸ -ÈLÀúäûcz´BÖGøÔ]0HBn@¼¿8qdR¡È¥¦f 3K÷]n5X¶ïù¢+v+ÔÚ~»YʪFcÐLõ¶$C0ÍðÖí®Ð¾dêGÉLÉ
+:¸ÒfÌåàµ&ÅCr§ù\Í
¥fr+`[\¨¡Êi-¦Ó Rõ#ÄB_Ùh¥;µÿÒÊÀîFÿlÑí4¨nìc«"ÕÝÊül«%ûÅñÇCÆb~¬Çxj×mA±e,èÁª½&8ì]OùÖQ3²±}ßA¬êÖ_PÃ2|_à+{ù¿v ]A"ËÔèi(MïÍ¡l×ú´öóép¤ËêGÅ:e7+òôR?'E_!"e$¿:å3úñ*qK7ªw%ÌÙ6ç%¼
±g½ññ%S°²hÇ]Ýo¹ký{r~fFÕõB at C·ÃÐi$37xªóå\a#ÔbÑ"ÆÅaÓ?nh¢Ã$©á»ÏSü5"ÍÛð¶Lɱø¹<ǽñÿòâ@CD3¾ ¶Au®Ñmj®»ò¼Q~
+a
+eDÝ£wxÖBæjÅÓ©òû
+º}Ù¢:ÌâÿFDÅVìª5þw8n)ܹOçÔ³0êqÊ.è &WÁ
+Ó@LRøb¹tm
ÄÕª<Æ|°,g|$MaQE®B~47AMt)ÍÌ| I¾>¹Ý¬=ûX#`ç¹])g%÷[É% ¾&óT5%dá+òüàrË6a(È\MùÔ!¾>CÒ1xxjå«G)ayäXó Ø'B£ÎnBú|åzE
+©äeÞù¡Ç v;Ù÷xý£9dËbÂ<¦\åè_ÅTð{AèØ&M½CP±BÖ´êî·õ[oæff7vYéA^eNµ¢XÎëÞà Æö)3²üéK/PHªÏF§îÐöâ*¾þÃ4(Wm)+LðÇgxní½¡F<µµ 7ªõ7tUÈÇË_ÈYÍ,æþ}2¦k
¶\ø3Öµ§Ë.cwS2W§ÎÓ5§ÁùÄÉgÄ¡÷uÛã>;k^gÜÿ·ï:çt½ìUãESÅRÕ6¹d}
+t×â>ö7fzÖÁ¢¦[E¿ÆÉ׺qæÌ]8ÖA?üÓJèý-QKºÈYíz¾®ªRB\0Ë¡à¶ÈdeýíZDï×íc
+¢Á²³í,®íFT·A{Z1Ñ6IÊÖ¤°z0¨
ÆXGÄîÇFL+~ðÜÒ¸'>óÔÛä( yøúC¼¤Ü;/&,¹zñrö©O¯@a] áUêÉ;=zíHó/ΡS5B?}{[·Y°>ÞCO¸ÆÞÈ}ú\,õy'ô7¶ï³à·s¦Ð,3ör.ÄPìÚx#^H }FFþ°ççx
+ù5lÉ̱mSöPk&~+jº]zðFüV§£Dû|Ä(}Ë,F¯HZ]§E4sÊ
+>´q>ÆÂó[àÜ0$/Ù¼¦>쯶Ö\TIÜ/½ÖpWBËÊtWhÙÖYw[ºHÓX-±|Bðàð¦µq>'ÿÜ}C>èw
+Ð{Z·¯
+Å8HÕ´
+mòwÖC¹«Õ¥URvv~ â Ðýø¯Ýôãb
+¿Ø¡gUPIüâÅ_ì+<å§È#bä*¾ºzLBKúªÐíí(Õ(ã'RâcÐjKâ¹§ üwôf{ÉÀ%^q<âAmúìtÌ uKΦGGÅóÐÚ»&
A?öë<í·ÆI´9^Væ»ôÚ°Ë.?8fä
+
I/
+]~jtQ÷hý+ø0Î.T±¤%ò¢µÉ¿+_ÏgºoqËË*Cp$V÷_/ë¥UÙ;ª\<PHeoàÐpâùÊü´"X5òa 2þ¦_AÔiÍVýg{sy-9w¬Z7ï
+ õÐñ]<¿)¸±¾¤¾`2á2úÒ3KöFGÏ@ůqOa
+yúIعh:EÚbf6Ô碦.y_¹â쫹Bξbv©&Ä4÷cÙÆm ÁsÍv|\Ä0à$YLhG9Ià
+¹éBÚ¼<ð` ¿1Øü^ÿ¥Óô8S=ÝýZ|T Q?i`t3yÓ{Ìêû¨*6¸çeIA[P!lo¯|¸*
+ïf u"7B"Ô#²d£Å²Å#Øeº¤oñÕlz\mÒIh#ª²âUñ^Ä Þ{Y,*u¯Àþvþq<
+ë/µáF\plN¨¨m_¦ÍÿfG¢½z ¤o¡RL9
+Æà\¯$NÞà©éEv¾Õ\&-ð$!iÑÝQ þì¸P$qø¶ º¡lÁÀý"o2vü·Ï`ع·|ÿ®Úa±é·ÞdÜ ½|®»ø+]WnÆDÔ@Î'þh(%*ÀZùóÏY)Ïò !ÈBb %Íäx\ß?~}µ¾E
+Ò~ÛJ%Éo®å
µÞön°ZßJò7ß;ó~d[ò>äZÕýK/^¯ª·x|.Éü<5¬S
+.Y²õ(æ,³k
p=ô
+I:Ö\CñXØçÍ8ÐV{g)`|á÷å@<¢ÔÆY «\°Û]]®åg@(ü"ÔÍ:ëöãY,³ý¹
+Æ
+ܱÃ$2ô+Ó®ÏécQ¯k7Ôæ)Ý
+è×Ú<©ÔdçZrk`P¥\jÑX§ö ïìrÙIó{g}ÈTBS<lï~·K @HîiÕO^"Ü´¶òdãX;Dg¡¢t7Òò^gª
+añ5l¾·L¬uº.e 5».þÈB½z³¨ñôËêÒALçÞ+åÌ[¿I&NþMÝXO,zúépÉųp£3
+Ï>6÷å\«ôë²{a@
)â³ë²"ôÞÖûz¼Ý=4üÁ[ùykvWîcje/*xÞ¼¿~ª ú»÷ã ZÂý2«Á¢ÖDÒÃ?[tȯi7X Æz"ºCå$òÕÌ;´tÓ»É
+Ãvi¤¯¹zýoáÝnûÚF¾dØcêFÙð-?>é':¿dfJÒ,Ok_>?¼Åã§8:^»T%'S·Æîéè"a´ÕÃ4BêGäi ¨¸ðn2úÓjJS¼´6ÒZ$[«VÜwK¡$7lôáÄÙCø¼å¬yImRL§ÅÓÙ8zUðĤd-ÖaªÎ83 ÞiùÔ2
dÎ&>Ôy]Î]=0«Fc)/ú;ê¸=´
+°
+Í[ +ÌîÄÝü_Þÿeæ±T»9 N«õd7Ê*ò¬Úý
+(l¸Ø"«{ÂÖz®åƪ,qTAà¨âØìAÄv/õñW F/íøuÊѸ³·{ñ'<dè7ëÈzFÛ«ùÀ-&cUï_\÷® J&NÐö»oê~,hòNm
+¥KÜ8:"%/â§xì¼N¾¿Xc)ldà¶ÛÒTùÔèUÀ¹ÿߥ«Ê%åsyGîµSm`{N(1æ_Úºù#8li &.²
+#üMÆÆ>@éB´ä|¸ ß®:£Ø;Ö¹¯
+8Ò®¨ôVP×½'&¯Á
+»ÞöóúWB5ÉQ`V×"C[¶,N"
+ÍiõæÚÒT¨Y:Î*¡R¾a¸êï¥û~ÃÎÚØ³Uµ¸£Yd¯o4p°QܼÁ× Yþ&ãâ'Yfýj6{+a§X5fÂ_ÿeD?!p=@!½y÷- ä/¹
+ã
+_ Øið(ɫ޷·ÜWðtàÒt¾@Ú¶ý!6NâêV¿F3^é©®^¶!K«N`Ð}Óòh#"
ùÓ
+Õ'«;x9å¿ÿêþ·Ê$_i4YZ«p6ðN±Ý
9ÅÓ]fÿd%ªÓ¡ä³FIbiq`äD[J/ï
á,s%$äËeUÚïù¬ü¶'T°W¹Jí?".Gúzh»ÅD¼uYkdJÔ8èjñ
»[a¥GGÎÁÿèµU
ûX&Cß^¾òg'3duxä?Uhè~÷hËA)¶Õ;ÊìàÔKoV5¬¤ÞèZ½¿9ÒTjsàûÎúÐ'×⥹X®Ï3¼Vþ\ª&¯zgfVáúîy]
+p¬eHñ¨6%¾Îÿñ7SáªÔ$(í&Ìvn4'Ç[å¨Á¼Q2Ë/¢®·r¨½_&e`ç>Ì*Ï`n=+Z3ÊÒpE)Sv;úMoö͵
;L0-¸"[Çnþ5¨öu;ôp`¾þáð
+âJWxiÓÍWjÀ =XT¡uÌíþµuVi¢1Õ²}âÏ+±}~Bù~8"ÙÃuŵ-LjÿfIB¨L É´.ï~¢õ jtuê-2i_yc'Yú,
+ÿj²mð¡¢ ·¢Ø±)s`ݲ1Üy]wx
+Y6yEWj<§BËÃ#öÛãô¾æñoûª¢öÀ¾ÀetuaÉâÖ/B
UÊGȺ4¢í¾,ÔÁðÿ*ylÌÇCWÁ>#2ÒWi£4Íò¢/JíeínEÜ/©_~-¿eç
+ÃÓ@3%ú½ó}óêV¥ÐÉóÊòç$úáDØxAøWKIWx/ùNðT:N?ØférçËðÓYЦàgð? Oäë¬Iײô¥+mÀtNFiÜ¢:Ééóî~\*Îü&$T¬ÔèÒ¤O¬xàó/©µúÔY½KÚN§èbm3L+é¤s`WR³¹JYñ:1¢ÒÒObþkí´%
+7<Àñßä3Ø)¢Bù*:ÙÜNf»Ú~5è*3,3±Þ©ZtMHÉ'ùïÀÑï\¤Ðí оM(m&©´SæöËr¯>%³ß¡fÚJlñ
+¯D®B|U© Ñ[Gî:1@°pa£ËÁvìà4[\0pg,¹p<MJÔZ|7Á#uz2d[Å+-p
+Æe¸ÀÛ"®08p§Ø8yÚÌwTWî¯ó&$û̽9c/øp#Dßi²Ïº¯^ãÉ¢î¾ÕãQ&ä"÷{«xDk(Dìo4zÒSªóRÜPä1xõØ
+î·nè!ç|Ê£uq°TB
VßYdD¢Íéx{nÙá°+Ø*íqÙð¾¼GöÈÂäñ¼3;ñX¿ÍÐL®¨Îy¡EÿìÂÞ¥Âr®jê£ìM=¾HÛtäIé¤_}4
+ê8u :Lj7?.à
ûO!e5)gt2
¾ulÎÂ>FÐO·]r¿µõÀ·~Þ.Hh½z~$â' U
ùQ?±aﮣ,б3rþYǰØ~s(Uqý§uI5ä×%¶Û½m¿¨¨õQj65iEÙÔUÍáôC3Æ:+!¸_ÊßôÇ>µ-¹|PI)³·e>sáÞîÒ'ßøØ:oæ æ(l%²Ë<¸È,Ék
+ñÌ
+p^ò!¤Nð¨°S(âÄ/-ÛµßS@É 4
+e¶¹³5ÝtöñÑ
+ú¸ÅÝÁ]g¤Ø.h·kÍ/o|±lBã]>ä¦ËÇÆ
+±U87J .Á¨ª{Çî
+\×§$Né5ã¢B3þ¬{¸î0ßñ1Ð NÖ?w*KKÓlrÕçh%9IÙ>4ã#ïÁ.\gæNÖSÛøWË&LêØ
+©°þÏ»«ôkaƱ®¼(׳Ýo¿Ò-<'@i ÿÊ~"aÀÑá|½º=ü¶hN
+¸øì>êìÓ±d-}EËJÙq;ér½\ôBÈËjU$Îú=u7èi°ô¶°±øð8Y^YèÔQdª%§Èúåð¹ÇßÊ¡aÁï¾*q.«L¬KÎÇÊî: Plé1R5+[{£,;ÉåkÛ®_«
+Ëm6×QÚgçjî¯7ê1ÂAS¨'wøGØ|üúY!¢Òß+qÃì {÷ÌG¹RÝ/§Üw
+UH=Øp(M?ìõy¥- »0EÐîpvxKõa2·nvñAÊDî¤jhQÄ
ÈWM¤ÆKG>`»[%º"li£×#ú×åQ´Ø§y'ÀUÃÍ EºUñ%Påw,}v§¾â÷ËI ¡Fôéln|+ëk
+QoðUY¯ôæ,pMiü;]ÏúÌ!§À9´EØ^¾Êó¥FkTb HåÈ1sªNçì2`ÈDMÌ÷«è
+æÙá>Y$=paØ%ëô*lªõRøËªG·Ã¶¦&s'UÎuD<"¾w
+
+ra8[n0g©$ßÛãIûÑ[OFô:V
+¦HWq¿à8ìÞ£>#OGRÕ¿Lf+ÛÅr«w¸#¢¢º'5é~
+¸,Ò÷éÙOa1ñ¯z·Â}ïßB´N¹µÞxæì}Ѫ/¨¤úH²9!)å>ôt%ÓZß-é»êg4½m¾qÚãq%1¤7ö°2ªoqÕt¼õUÑtÁxsÞÐa´MÏuîÄ+"ûGýÓ*Lo¥fmf
+}@!
+ÀÊæÍ7kÆuE]HÙõøº©Ðé!1772Í
+̾AlóEÎ7{(4Æý5g¹¯ø,cÁ&|*ÚP¦Ùõlm¹hÝÈÏ·ÕmUYEG¡ØÔzSoíO¶[`&
+;Û:¢FÖ$zõÇgW]Õ]0b?¥!µ¤Ã©üŦ»g_r÷}È¡ÑS¤7õãd
+7»ÍO;z
+E:
+VìàQ,{S¦µH^âÀ2<¢dcUn³#n]¯%Ì-yüåR·Ç¨íXú#AY
+©¡j¯§vòP!Ó¤D=üååÐóÛ+ö2"»/`²÷ÍuajoX[S æ¤0À£R4Y0m~O1ºøÕUJľzÃh3l·0)ö%.:n!.áÕ ,R 4y)µÅÝÄxee»T{^VƳ3¬¡ëgè²¥
+¯ý}
+ëÿH ©O/j%ãÄ?¥ÌÞ½
+rkSªºµk`¿Ïò7^r}ï/õ澤=àÏÚ.7ýLWyÛá¾aò¡rîwb
ÙCÊ}#ÜÃðþysdÈ<
«Â`º
+×òFZo
}ºÊ!çiXØÜdn¯D:dg
+Ýr3GÒ
óàgW¸iÆá§}änç¤z>ÑøFd$zÉM74!oêÝ6êT[y»_SGê¤|FtuûÕÃ|3e©åd=oAóÇYô
ß®æÝÜ7r T'¥°ÖàK©í¾ú¾ #wgTêU &NBt¬Æ¸JJîm_Õþü8{õ´[g^o³ä2Þ+¯¦rS:·ÔgzmTÅßî䢡ã|ÅÖhû©DôEÛ¸aôÇÞ§HFHÊ"àûhGCV']ª4ÛñìApÕD0.«tÍÙº·ýÁ Èã¥b]jª.DèJ&û"Mù¥I¶
+©âgÜθ°ëöMNÅèF2À``ÈÈ¢]Ìß}DÊ´q¶¬¦«4í*eiÝ´æMìi½O½î%#êÆÃavÊ@L
t©^ÑÔn
+xÿP
+ÿeGZ®÷m§P½ê°fßN¸º¡ßon~dæÐGÀÆÈ *Ý4gpäÛBÑ;}pÇ´ 9Ë AúSt(`ÏoaGz:JÁ¢îÍÅu¾ÃÙ¦±Cc¶Üôa1ÅÑ2
¦§Âæz
+í!å
+/ì¯ùuþàûfKoÊùç¢Ó±[.6G5A©Aì¯MdWgê\ìeë³ÜXfð¬Pv4¶æÊKõ%·êvn×ËDýùI:q0ßjê ¡åXÎëÞ.Þ>8Ä
+»@`hÖ¤pÑDi@wVsèÀ¥7Î(-}pÇøá0Wy¿ª
ãªKb8,#L!' ð]j§õ2ß_×<úaüYìÊ
+(k>H\4J¬'fT¸ÇLÃ.ï6x/Âûe
;ð7XfÒ1¹?¥îY(Êø¹:ûÈÖ°Ôn
+öúÙâM²®4o<¤ÂüTJcm>{ÒÑpôåi{°µXƹ'qB¦ozÔsÜV`f°[®ðnýÚ|¡JÜq]#ðEÚN.´ÛÁ
+VrÖ¶¸sg/%wÒcÛþòØåt°^§f°Þ×Mæ>ywîÿDZMðæ¨z¢åKP?¼N¦çbKQa`¬á5YÀ±Ðº>ÖZôùyUrTL¦[<ì×ßÖ®®É[|(!¶=òQ7Sn2e"§ ÉAúb0«òÁÝG¶,µÇT×ÄóàÉ4Qø÷÷ÏëP©¿¸i¾úÒIÛÿà%,&Í×L®-ù÷x}Y®W]ï>ït1;«ª£W²ðÁò¨[[X\l
+=ü¦J3À~ÖKs®?, CIA!³èóýZtÞÝa PºÊÎ;¼¹×P¸³í»á ¯qg¾³þ
+eÖÆ*<ÑÌáë N!.³öð)1õ$Ï%XLþ\gÛ¸^äÛ¯?Èvw·Ë»O?0ü)nKw"ÞûNÙù#ºäÎÞÒó'1´_nú¬>;M#Ðe_[¥
+.òlþÙ}vtQ
+$é<Là#§ _ÛõcZö3eA6pѶJ$w#t at få¼YFQ©y6#8Iïÿ×ýÿ.(îu/Î.¨Ì®ÕíÙØ×$yõ«ù§irà:ðÇíÜõôüÓ`
+ÿ=TY´s¨V/T®Àb_ü-
+sϼ¢p±7ñMË>Oפ
w¯ès¡ÿ+6Y°ÎÉòA/·õ-^¢óáÒ¯sý*Hm´Zº O×h©C@u!çôK#V¹ÃóÈ\r´Ç É s÷Ì$4ö
+òp7èX²êq±S¼^øbá!¦}.Ô,ôa+ºÖMùÂFpÄ5A©4
+¥ö íSØðàqtwÌø#3bVɪۨ#|#\ìþ¥saôE-ApÁØéÄQ² HçÑýø3wºûÕä¢Y£ÃóÖ+q$m¾h,ÛþécGä ÃTSØër
]4ðÏI.gr0)(:éäò5~þìNÖø·ýzþ ?L5ÜÌmxÜ;l³Ñ^ö"Þâå[{:zÌ.'bßã~ÄðQ6
®WeØ(|8ÉÊBF ¡xð»ö̺Äküw£¬þýúI,E1ÌÂY
+iJ8p|ñ_ó^Øf/x¤.+XðÞ¼8¼D¹ÊÒë Rï£ÌdIU²]Å[§`¸QM6Ê
+pt&×ʯ¹îÆ?Àv2¹·êÃZh
I©¹)©c0cÛ±ÒÏeà"§ýÛNóÒ-ÚE!YUrAÒð@FfÀíj«?/Wã½tûÚÒÞ
+ÁtQEñã©_!Í
ú7xR¨6#Å«5¬´øôb°çO÷¹¨:¡<´!K1VZ·þ:(9.héq$öåéA¹H~q»"èØÀÚG´ä»¬þ«faìsFúºdsð÷Ú÷;µHI³Äy}\÷ó\ËÝÀè7.°çÑDTréL((Á®t^Þ®·JQgÐÓ5zºqç8Ç®"vãÝÓ42Dåe5w&nî]0XñÙ&kV@ÆÄÖñ%Q/Ei*ÿ²¿0Àà À³AüÁ"m¯å=éʤ¾ëè`^ªqõ
+B;M?Õ
+©ùSGÐù4`ú@Ëb'z>ºKæÊñá[ýq`xq¬\°#ø
+ §¡ÿØ0ÍÚryÅ·æ³àA\Å1kÇG~[Ê<,2½¹
+ÿI©ØêÛÝ&±Èú/º¶Z®LÍþìkPpÔ`'
+è`¡µ9ásÏ_Êóì]ó¨`ärU¾&!Ë|TUT)ÜuÈ@PQüÄÏèº_d{4sQ0«$÷'ëBæF0ù·6;þžɨb\ý-p«§t¡[6Íɼ²pqb£6dü#ÀFõ6ËClÔ6¹ZõÆ/m]#i§KF)
+å§%)´>(¹`%Úþ-PS)Dâkѯ&aß(ᥡ+¶³f
+Zn&ª=n{(ûÜáásüþ° âä«b$®b{I%3p<Ê
+CàÉpÇANAç56_Çuî$-Wxr.L:À÷7ùÝå}WÅþ?8]¿ÇÔ)o±W.óU·\L¹¢0~G{=ae⤻þË·ÏNÒÖ¦q%ó¨³'#ú
++~Õ·sÎ7ʯOºzJâ>1EÌ7ÒÝyxWn<Þ_Èë3Í-Â3¯´mAH9sÇ»7÷ÎUG
Ü¿» reUÌsÕë»lÿxÁ¯_SúÍ2t¹ö¨cR<+y%aqUV8 äöûVÉpÅÉÔ}#
+/˸HyèJ'tÛ ÊÇ/Å·µ±@;ÁÉË!Îïwàm½Úìè"änkië±CîÜ9½r<Øæw ¤Å{<-Øå%
+6¦
¸ÉÇ
+ÍXínaý)¿Éä)):Ö®LÆp¿*¤<¤È[»0i3¹:ÍÑvü µßè¨ñKd;èü÷ÚÔ@#\zcåOO^/`*~s}I4/{e¥½´óßøL¦Ú îz,ÿ¹cʽ1Ö+5#ÁtDûÓ|L¢²Å2)o;L]Øé¤ÿ±ÉgùâSr
+f
+ha¯Ð7µG<ÚûxÚíÝMaÎßQoãnÍ
+ÄÕ?Õî áÞ(] ¼
+es#C.À¯óÜcröcú-<ÎScyÇQP4;ÑÐÓ_¢Å¢S8À^¯jCÛ¿Ào$ý=(qN¯3þ3oDYpËV»óNSêböÈÃÑͺªu#æÖ%¥Ë<!'í>ƪ¸KOê¾d9Ä? ØdYöû>¢\ö§£¢:ÞÐDµhÉSvxêM¿¥k
+º²ôÆ/;Ò6´ëCºêaìt¹ñohú#7<ÄQv7¸¹
+ Aø»G¾yÏBãR#ºP|öPF¹°A£¤¦)?6M7GtÑCdlR:ÓÔEéqÃâ)yò)u}i¯û³Ú¾#òû¢*à⪢Ð<9ÇY
+(LägÒÿ
+ù\løö
+|t´:à6dÌÈÔuNîãì]Áß
+ÄkP¹ýËWùÉÑv*²Â4عç}ç>É
Íd-fÍÙZ(Ô½jÕ_;.bÞHý«øºñ=ÃñT÷*
+E5ß%â¥ÈNï-½³;ì~õ`©X²|\m¤¿ÔÕ²¼I58Û¤#}uZÝ«vÿñsgØÍ÷qîÖ¿üà óÑTýö'³Cotf·eÙdÞ<iñ¦å`}úSLÉ2dÛ
+öðÀÚæ×Ó:ܲª:Ê
+ÉPGåì¦
+ý]v<n?ﹿ¯a!µ3[ã
+ýL&"É\e,©:©#a¡-Ù¾HÍ\ÍH{}IyWâ
+-{ñ¥AöÈÿ°`JVcWëu¾¢çSû4«]x4uÁÀg÷¢¿{¬ÃÁ$"R<9|Ý!ÿ 5ð
D_!Äêp\:°4Üá6·'z±îHþþ
+ËÕ³ÌÛRÖ"ª£iÚ箫¼(XúbÎ@fº³ÆI æhHöÉ[Ý<Ôégo¡z¼{ í&5OÂ2 Zñ"±F¼ó^äAºÏ¶ÑZÔiX(¥xåë3ÇÙë&¿·ûEÐE$X
Bå¦Tª+Ú7ïѨVáý|G<wN5G«¡®ZÚzÌ}V1êÅvw¬ÅqRëD)¿qæÆVR¼ëöPó÷ÝÅt²Í ãy÷Ê+ÎâïQZ®°nµ.>¢TªuìJÊd _¿ÌÛ4Vp"M°ÆÈ·ª.c$Ì!}rb6ÁsîáCñaR_ä2ñÜG4L´ ïH<OêÎìoi¡MÛðwÉkF®yÌ3#$J[- ºMËo#}Ï×vAñkæÊÜsNLÁ³Ú_ãªfô©é\Ū*Õ1Pæ'¤¹±güá1u
+j9 ¬¯»ÄÕ³÷ëUå¤Þ¹áÁÏkx¡º«ÈÔV*¹,FNàÞhá¥Âà`EX¢À¯<ÒHÇÜ×$@?ÜkÀ,y!AÆîÊγ»+§/á%gÝÉÃ|(Èï1NCËr³ZàÊÕ4Èú35kùáC"7Z$úÇ£i»XÅUÖ©_Åv\t¯ÑO"r
+|°íF.¼QPºB¡+¡1Ö
G+^ô{ü»[ÏA+l[5¬ÍOæc;;N"Pj°K-
+bG¾ig)-~Qa
ÑBSâùËâÙæFûJ+:Ñ*@ð(ÚL,|_¤éÿA»×JÏén¿,dÁ+¨©Å«LÊÚZü=KÀ
+>×׬cÀq+ËÒ+ÑÒY!ôyë§Í²l\ßjQD"ëÿ £Ø&BÝÇ:ÛâU´ÈTwý)1Ó;£õ¾(ÊaæNc>)º;<²»Ê-ü+'lø]BÞH8ä-墪ý)^{ÕOM²F7Óͦ=¿¼Â®¤¦È^Oæ_>ñZfqÿrRÍ?+¦x}fЬ®@R
.«o×ÛùB¦4ºsÛoáøÌAõn-jE7Ïwª3[¢Æ°lÙ¾Î×þÈZ8.æÊV#ÍUbïqä\RжhzLEªæB1¿nvZ佡꿽·D\¶õïLdjWJ>h6°¬:±Lµú¬hÒ:öó0tþÉj>Û®OÈ«º\$Vú5ºì
+OÄpt®¯ÐMy@!÷Íld`áã% bVÖÇèþm..k³
+ûUa¡ê8ôJ×r+´ñ¸}Fù·Cߥé&'#ÎðhO)Y¨¢´Ú/#.eÚÍlÁ5ÔàffÏØgì®tMð>4ÂÍoÒFG*6ªþÄ?Õ?(ÆÂ-ÐST ªs,æ !b°ôÄ`(ÚfP:±ÇD]NH±»];ÐHC}èºàºk¤nóH§L|àÆ[\X`{Kÿ,xÐIRµÄæðvÚLI,9ä++È×¹9Y¾è¦¦£ø?®¹ÅË5
+)û¨ÄÖ§Å÷an;N4ú{Iøå®LÔa.é0¦iùz@èÛûÌsÚÞÑwÃ*wb84%Nâµv³Çù
+¾Ã(
+ïõ&«t©´Û£q1¬BÖ9u½_xÀL>ô¸2nE/úÄ®?ù© ¶äÕûn(8óý|j¦ôíÊs`û½êínÐ2kªøD®!´×£ÉÙßL!Ú¶ÕÌýTN+øNb²ÕÒü¥ÖÀàÌôHeÕÕ,nüYúê[N6
+h·£üT÷MÞ* eè|u$xäÔÒ±V yo
+íâû=H±î<¦ ¶èr}¢^[á:ký$¤ey8EQîé§cÏQdC QEdx]OO¼<Áa³`I:6H
+ð3Xæüõ¶K»ZÇá{1
+Ë)o1Ôç|Ry¤VάàñnÏ»Kô]Þñ+°mæa0oýhU¥ Q
îÒvB,~9Êý)Y10Õj]:G";¢;Ä+ùqÑØ¬é`äzÇÈJÒU²wz}°-7ÝßÖp/FõHòEdözkôù'ÑKzj©Pvf±!WQìiÒ>¬ì°ª;&m<D´ Ë_
+9+S"å:E%C÷¶PM$õí³µ3^cæL~æV",awúDþ½µ(´J·07T6;%WSZxÍr¶§óäMrSDj`:ãªÿ´~ò6<Ñ¡H¥Ö]=´üë>»º0®\ÿ¿¯d$40ߺ°`Ó LÕÄ^yÿêÄ#ò,´§Ò äh¤?
+¿ÂJ%É
+¶gØìîàMàYõï'\ÖGY£XMW¾.ÑØ*¬ù+ÜFæ^àªV'uue'9¯xïI+i@Vp/¡1t0y(R¨ù#é¹3-òÛü¡
+étæð7øûóE
+ÑÏ
óJc7ÇØþ~²Ñ8SÇk¸@Égì¡1r`CegËJ¬¯4íÔÒÞý'÷£ÝÚïݯM+XÁúuÕ§¶]?é6×{"ljëíËÛ·!ò³H2
+%ÅÀá®xÎõã[ÆËb¡Ïm|QøLôSøâ®
+7iÃâ² aȧ.®/)w'·,mf®º*ÒÝ9ûvYp(8ÊðǾ÷
+ýé¢fqA9ïø¦|Z6£-µJyLþ¤;R¬
+Ùi8k˽ÙQÝ©¯<&(Þb©w·üÓ¸?Q[ðjüìBç>5áß!§=6h5yåM_k6úpN;ÇÎ)i YmQË/,ç~i&å?t*$ùu`Rv')JJ$ZQîU>Ùjã`l ¤¶_sÑÿãºm+ÂwÑmá?Å$ÝÛª9gí)ýð½né{ìz_µÌÔ«ç!ì(
+>?Ö¡ÂÈÐxÓB²¬¶oJ1Ú!ÛîtO?I#Ñåó]UIê²PZ¹QXKyÈzß·´Faá t2 ÷Î,yÕ}Jcg%[(¼91ý¼)s>0¨EÅíäØzzö pÀü¿U¤ø}¹¾×üëV($,9At{%z)mB28ððR'H)GÄðü|,ë+ï_Ú&ó@ϰS6ÍHx8íÛ§f'è=ɲ@ãV¶iíOÛöküdüº»YHsÉÊ«?§¤#m#ßÍaw'#ðη
+¨K}hÒ©¥tø©BsmÛ¥*U·Û°B°<þ#zC
+-K( Âò$f;¯ËÿýÆQ¤ÍêÙ¾6VýYt¯nWKßä+#4PA÷ÑÃ#äöÑ'²^à8À£\ Ô³:î&ß¹õdt&õQmg°EÖ¯ÖoÍäæQN ñúµ%@h5êpÌså(/«ªM¼s¨I!g?ßé[qHÐl}gum4ÅþK
+UveF,©©8A
+¬NH,ú
+ºqj,áWØÅZî3hæÿXè¿.öK¶æ«JGÊÕ°uÌÉ$)ÝíûNã³ÏYÐL£þ÷ÎÞøW]Vysuÿ >ÇðlS±þ¼pîålWZáPØ>)¸;nçFó-Ðöf®©ëÚ¶7÷X3V±´Ósä`S05Ê,}óºe\ÊQÃaýâÎÊ] h8äMDУý[ЧRÝU¯É½¢H1Ý<ßLPNÿFl~]þ=Bû¿dÝ-´M/"}Õöyd-m-êpgQnP
dò{ImjÝ-Zxæó~×ýD«£"Ç%,«ùqÇÌôÉÁŤüÌ)@5lZrl
-594 0 obj
-6311
-endobj
+oUûÜdd$yK
'ø{ùN¡èXö²H¼Ó94.>îÖb!t8é½Î°xbÃÖ![=b(Û»)PT
+Bû¾y`@/|U+ðÃ;¢{wdd.§ ôª»$ßyî¶
+x(
+Õ̪.£X£)²=¼6]´¢×¾4L%ÌGJSxc´Ïø<
+´¶Ö®DÂel®÷®3â»[þ²ì[Bæìü¬íË,p¸8büæ%:ÞtUÿ+sÜ
àoSÒ41TñT"k¼JBøÂ2¦ûW%"ÒIk=Õµt¢]²~lߤÌô×'ß´Ãàn¸ÞFuùÀòu[ ¡»`¸Ââ6äUµÝQSbÁK°cCäH(ù\Á*9jUr§.»Ò(øbD³É½Kr¥<~Ur{ÐdZ4
+
+e¼âT¬ªFK ©æ«=ò¶C
Vowæ2Å@vÑ.¢
+.l4(t%m2òÕ(æ#`Þ&})¢;pÃÄY+ at wÛoïanøw·QnLl¯35sg3ÜÜû4
+§q¶ÀÒ¾½(ÙöC;oζ}0è\ÕéN»7±øçfD§¡âææ`é;æf¡æf)·-þ¡%Ñ3LQmÞýþ;G¾÷¬y?Úî)ßËà \±ëÜáÓä«F#'7£*÷¡.¯îejõûë0çç
ø8§
+Së«c¨,ºÛQ+Îd9®£15À³{Dl9¯êM¾ 6æ²SwrbÀåZ¯Õ;yÏ:zTª²Ïmd="EO^õÛaxã¯àÍß"YîÓ»æ¯ãU§.sßÇ&À!±É
+r-.ÉåV<_Øú
>ÁÙ.ò·²5¿F@>ÚT>(6ùü¼å6§ÂE(ªbÑË)*«¶îP/*W¯èâ
¼òÃRÂÙTÚá Æ
+çèÛiÎ
ìgÒAár¹oÁ|aç4øÊÌïljáZp»Ù*±+Õ;زûf_-F¶yk;,s(ð=ùÊû:ôÁIÑóCÈØn`ÿútH3æßdñBiÌ:wª6ãA¶¸øZ7ö¥öó¹_§¤ØÅ¼YófÄHy°k{ !) àfQè|îÜ»n6Âkdõû]î°,Tîon7N$³Ë#Æ6GbÉrþQ3P\§QW(x;¡ìî½¼¸háUGûíµvÜù7OOe£-øÙÂæ^ô]á'q%,Fðp
+KÛUÐxÑrâô¸Þøa¤ëo*Ò¹â9¹(b
ÄþrÌÓ¤\ FYÃAÛß\õâ(T1ãHÊÑ-!àË ÖK
+KÒyG¾cÍ-g{Ūy,êàÅ*)Ƽmàú·¾¼º³K
+h!è\~¤vZ¿²Õ péOã÷aå×^ñrj írÂU«PÕï!(7[?ó%Ï] Ä?ÓÙ²Ð\[&æ¿ø.á*ð§]ñéÏ@´ºóg
+-Áj-&ÐfÃtEAÝ]#?^§=|=ø=I¬ÏÁro¢flæþ8³4b(¥þ`=j#ýãz55z|ªñÝl<®úRØãózJº!Qðª8øÿ¡Ù;<õ}*çÁzqF
+>Øñ Yéø"ªö
+¥Nê_Ë"ìòÀØæs|0Aô^=×?uð#
+½*»Æécª£§
+!¡×½ù:BfìUæ"bSª&\j£ró
XJôi½4[*8Ç2"J¡ª<>LñoN_Bo7ÒÀÄCïÍ3ê9¹§\_ WRÊÅËmÅ(y-Î<S£"Ú¢Nÿóî¢dVH^f~©3Z¯
+ÐÃÝpÉQ{2¾øÆïñOµÎRÖ=gBà·QÂÈΤ×($óDº`óüi·¾´×FÙº?¸¬C<tEùͱ2¶L[{µeoPÊ}«$Þ¦Âv¯ðà~ -ýÕJnÖ»XOe1Ðù³
+67à7®ÿðW¹PékÛ¨¨w=ÏD^ɬ͹ö¸Ð7x²¿ÏÃ)ÅÂÌùÀÂÉU^êdUéÉàÏÕuÉþî?xZn5ü:¹Á0ö¸¢îÛMO¿È¼
+1²âöòfÈ<1£ÀzY="6ËQU 3ü¯rÍ*,ùËv
+Ú\fp«xf{D±»x³E7̰1É&"m×Â÷îÇSÇ,Q^¸×í¿4A;Ýj[Å"[½îÒ~ʪB÷ÉãKà ð
+RVµHXêé?àycV5d<Ò=GnÀD¡Ø4~ýú«$dÅcl,}/íìt-Ò¥ßÍ)yiÀmzÞâä]9ÙÍ÷½ß'÷jBe%7ã#öíµÊQDÏÞ òïMfÒÆ0ÆýÂâb 9ί ?iG'
+EF,5"zÎ0Õ|P at Cm>áõ1>å
n+Ñ÷ë,jÙruò33¢Þü÷ß²AZûúÔv¯lÊ>Gï =¬ÎÈo¾lQòm+RNc ¬0^dF½5$Z-Þù£ÃÎÖÊW±?Xç;߯ÓçÀÊÝ G;¸"p¦Ö9Vò7V G÷¼qÎkÛÄY«èþmÑØÙ)_ÁÏêP$lÝ÷
++éÐêÒ«¯éF9j>i
+PçéI»
+vàv)h¡¬éøõíᨸ§k¡)¸ìËsª
+ÀjIocÌLû¤`ÞPää(ðB£.ðáæwøý¨|1×ËQ5`ÆþdºxIã8î'¯Éfê¸/WùÃj
+H|y<KåL`p0ù>ÆñM÷7Ý¥wâ?
+Ãf~×^ÿs»Å|ÛS_L
+¨¢ÓÂÓ\â·Pß·dIJG«ùúÎÊÇn²L¤´uwèt¨áxôIodún ·!|!Ûí(RP?
+ô7Q¬×ÑT]˦Úñ]T·l·ã8ôÊ©}ålåð'qÄ(·Óo8Û¼§òܩרyàï²÷ð
giÕÉYºiZÆÂ3ÌlbZµbÑî9V¹«Ld]mÒÑÆ7ä@à+¥°èL.Ç.ÞÐç`iüMÑ×ç®%½WßÖ0TMþù
¤çCËül
+¥ËêÑö)ÄÅsÏ1I[ñ¬ÿ¿¢»J}ôír±Å waJÕ}Ù1iÝ2kðgñì»Fe8ènft¢óȬdk<ùÃ6º<(¤ZFå3_«¯Î[VÀÛ±f]xsÓ;ë*{;ÂgÙÕòÇȲµø3ÂAÜJFÕ¿¥ÍwÕ1·óòðõá¯æçS2\Iþ¼Ê2·à[ÃOi©bs%°LfH]¥Èÿelæ!ÁE©¼ç· àÖ³í¼î¯\aâuÌç%ûeú_Ë9êoSÚîÔ"äïCJe´ªÔ[å}jX5Te£"uA\VS@ؤL¼)ç%Ia¡¹
+k§YjoC&kòBË/mHçBÓôôwä3aZê»3àvbÜb¬¼|¶ÑMdD1ò_6&ݬóÇ~Ja$£YMÔ¶}9;t>D¡'|tº®ªHÉËê.íÎgv|ßÕo$RwÅd°êðè~òPlb²*þl¢Ï¤D}¬£'G=oJÞvµ¢üMÝ^ Úf±¢²2ýs«ÏI~IºKÃ@¥Z%'Éý²ì½oN _Õ\{] ·V8`o®!ÜA~2ܶ#Ú\È{Zá-
+wµg!Øòݲy\¦x¼åêÀpÅÕsª+Jí»éб.w°y¿´$ðß0¢cè$þ{7k?l:ùñùÃE3
+ÏqónQyõ&]z;ºÌI=?ÓÆ[a*'ß+ ¸Ówl
+I×ϧκ¢c{Pù
+hN·7x4Æ«í{ å_m§)P&ÕQÐõVÅäõy-=¿3ç:-#7l3mî<sBæ[Êq»Þ¥\þÌTíÐæÿ®ÐéNÅBiÁ]#uº 3ùÎë/þêþá/vé0÷Ðl
+ÄÛµöD9`Èï¹/Ê09cÚ¹@a ø{)áx
+©p3um]Á
2¸ûÇ'Ï
+!Ð`±]h½1¦²¬©É;RÕßE
+Yfdó_ý©tÆáCeîìvÍeØU³.h¾Gj8¦ì lóÚ
+ ¿·¦©ànBÜÌË| ¯³%ñçf!äÀ?Mî»Lw⡳jg¢´ÐFÁ°V³§°Û¸ñÈõ'÷NÓ¾:õEÅm|i+Fg -?xÂò¨%JÜÃL+juåï.Ü3Ò/¤âõhSuî½uQr·ÝÄÉõ?©ëÝ5ä8½ÝìPºí^+ÈãþçjÿNµàÇÙ=°0´V àîïíA&ôòÞvs ('QMËÙ¿]©¡®o»¸Ù`Ôvä"EGÑ+hQë÷jÖa¬k?t±F(iÀ\ÚåÒgôpk7·À¯QB(¼ò!ÞÚ}üz~É<x5.ÄM+ÆÆ«ø7Ýh;#,TÒÙþÑÅWé¢\,±ñÀ{Çø7
+Äu}Ë1b_öVrTª¯UR®ØM9K~ý®(bËèw+Á£´d:%iÿænui;~+`y0»gÌ»ãÓA4eW¢Á:À%¬Õò|xn"`6¢)w¹XbÂö8Ð}töé°×?½BÕ¶høiõ0¸÷ÎD8¿dü6Q¥,DÉ;¼ e°f:Ï#¤ý§éìUö7VÃ'çͰÃõ¤år ?S/Vð"[eU³¤qoeúAç{µÜÅãzp¡RÜÃ6½î
ª¿'|$:2ßÁuÀO$Ô BÕ!
+y+t¾¥cµZvÀëõHÒ½äú^ç¨&3C¥m¯v77I1Fú
+&ÏYzS«¦änNZÏ ¹°RÖ«»_KZþ¤
+ #¬_cbwö*hÿgìÃß1°>
!nyäûÌ%2ÝÛUgi)42/?´²Þ`NÀF`åHצ¸Ñævz+.Ð(@Â
+ü9ee°Ô¢gjÌÅíU(5Bw;pÆî³"Û<ÄéH5Øþº}/OÊÍÊ)YÁðjÊ#Ä2Ì5s¼Áf ¼l6³¼:¯GBú?Ñÿð²Qnó%CȺW4ÜR2ç¯ÌÒ;ñ\$¹j=t@4 at 36Ãa¢Cágß«¬j9c{ÊaÄ4iæõÄÉ:ø9Q
+8+9«ÞnßåÏlAàvﯮ|ià+é²÷H
+%ËÚt²g»WÇÿm
+S¹ÖèfÙÆ@r{4Áb1oeA>ëÜé'T¼¬÷ÚØ{õ(6Î"ÔçÁÎ ©¼ü¾5:¼YAQã7x»¢¢=f÷äJjñTëdh®Ë¯Y3Q8¦ú§Øµ2ñdl·vÈ?K7saIµ@©_]ÒÆïÙJ¼qp¾¥ë0I-pVæ~7A)õªdÉeoÚAøõfÓ
+pÐØC¥ÈçÿáÑ~hÃpÜ£Jý1¡ÆêØ"`Ó¡¯¶ÍfSõ|¨wÛæöÅ
+$èõFT¬*ñ9bR<UNÞiï¿ÀÃþ#LCj¶äÖNÓ6RíöÓÓcÿ@ÿ6 ØÛ_XàÿÛE«LÄ v6û²óð+PÔ
+g,¢Ä!Ó¢êõØáF#Ñfï)§5$îìÖ@$|¼¢J`e È÷3.½_É6l¹}
+Îð}{¨tkê =¯»/
+ÝqùÚW!Yy`Õ¥yÍIà#9\Xö'ð¹£ZÂ_\kh¡~õçÓH¯jÿQj/QdÂEÁ>1Ó
+Yz,4¼ Xõl"S7MHg@å¸Cжü÷¨ÎÀÈyG¦
+X^x÷æ5=DÌÑ}Ówwzø/«o¤B¿ÿÏù0í
+бoTÒâÒ¦E°EÝÿóßøÔ´ï¥l*¡ÐMô豪?´ô/äèÊêõÓ
+zWG¯yV}Éݹä7pß5ÈÄ)TåËHRÚ¬·.ú¼Ñ1;NXñËÛÕ¥Ðèý0ô~§c×¶¹6Å.½på¦òm>øjªjà¶!U¿Wâp÷Xu^¯þo LvºöÎ_
+µZWz(ð¢ÆKTå¦E
+ÀùÃmÛõ²;ÝMõ¥£?é
+C-dÙXÓ&ºEV FO[ÓÐHúÐàçÖòn (µ¯ÛP_Åæ:ù6=EÑüÎÒY½¶A.rÜS
+LJ¶ÈÅ%ý©Ïö¡ç}ñ¥þÌÜ©~W6örH§HghApPh³aøN;Ë>ÑCöç+²DÎ] ºG%¥ÈL2`oýþЧêò¿V¡Hú\¾]ÿº»ßÞä¶êkþ 0][9aóðiäB®8´%Ykwíܤø6äñFlU+#?g`z+Ñ£D
+BV(ÔGùrÎ9cD·x+@þ´%^sh®7wQöªlÁ°Oêú³2V.xâ|nâÊì8ÄìðÜô¤!¸i4n|Y\ÙÖ¯MÐL,ü¾Ç¡§)±à^~ËÛ÷°ÛVô8þ¨·¬¯ø¨ÏáËñóÌ1Dr)K&YLµ ÷øTiX²
+òù9ÐD ÁÑ]×oáÃ`Yw
M{pe²·ûsðBÃ%>
BÉ"¨±n_¤P$f÷îpfâë(1éóDK-Ûc$É7kÖªÖ&¥}Æ ÏÇÊfD±}UÂü@¬¡Y×qdåû9
+±´M»9®zIü°5ZÞtáy<eI»©Cogi?;ßeÀcz÷Ês(<&@
+ø±ÇWvîÉëÀ¼;´*(=¯ý¥4Äýz±j-h=pç7MÝÆrj}w8':ZòLóÅýãº,&bÛô¤W3Pâ"äû?ázè ae.PKP3GQñ%Ååe<J|W=B¨ª£Ð¡+Qû'÷ÜsvÁ_ÜCpTkJ=ãW©¶Åd3¨³+&ñÑ
+ÐÖ³êµ5Â3ÝJª§Ø¢2
+´òª"
+vã~+4æÁµ©]ÅP®h/£â¬1jòÒk0IøQ`dïBçÛåK6S±Uï=Þ=ñªIËýFX0lÆ#Ñúï"_ÏEÔØ'£%½õ5|ÖοÆ:z¢ÊÜ0µ>|úC¡®×iud3®DæP¢æl{[ðx[EÍý>Yìü¹2Öag|ïþÞÆÀRrÝTw&½r«Ð²È.Ûd·6;È'ÌÏð/.ètÎÓ¹|IBà}I>âÁÝ?-¬$uØUZu×ý0¶æ U
+nðIÚª±¯F}=:âųÙ\±±úÁ}0~83²R)óBë¦ÞP³:´þXÄêk}
û}p@Iª#©)ïnߨ=2Ñ8¬z´Ã8Rÿcõþìî³ðC²Ö
+2`ÅÙõäIn@w)Y3Xú;²
+ÎYfz¹öÎ"¸²ì¹\(6ô¬1×DÙ^ÊuX³M[eUàhé\Ç@[s#Xf¡¼;{²
+ãA
+'8÷rÖ:ýdƹR+ÞLÈp
+ëjÒ3öéo%Yq-]I*,tóxØOÊE6
+aviÿ/¤§ßr:Pf#°B4×ù¹W¸âYüzi^!¤ôÆ(µ]W!5&®TiË!Öc#yhÜ
+"Lzüɽå*{®³¸¢?(V}+"×P{=*Í?eÏìäã?¡á\Ñ#~:¤}¢g\Ý\جªÅ,*iìc¤ÔËl¢²éJ:ù~fúCÕôç9NzQ·=éq¨,
+t²úµ%E
+îé<8þAt¼Hm©Tñ¸GÛêCÍZÕ8ø¦ ï¤ô
+öÍ×Óc°çáZA:¿yjcj7º§Äøj>ô8b3óuSb×áº`¨s^ü'·´ìæÑá³ÙthþTô£c rº¶
ï«2%ñ0²¢üzȬìç| £ÒìI/+[ÒHû}á*sÃëfWÄùeG}}DZBækÉAðóµéöÅØðACô|@{¤½dcÛwÊ8È#LpÝÀ«zßMÃñOªy6ÒvòÔVìã]÷©ZSà
+©Éâ%N,þ*ÝO57`^P<GóXe
+ô3
-595 0 obj
-<</Type/FontDescriptor/FontName/NAAAAA+Verdana
-/Flags 4
-/FontBBox[-49 -206 1445 1000]/ItalicAngle 0
-/Ascent 1005
-/Descent -209
-/CapHeight 1000
-/StemV 80
-/FontFile2 593 0 R>>
-endobj
-
-596 0 obj
-<</Length 342/Filter/FlateDecode>>
-stream
-x]Mn0F÷ÂËtMÒ$H,ú£ÒØCTeÈÛ×3¶R güÍðäq|¬OµíçøÕºYt½5¦ñæ5\{I%L¯çûÞzh]ÚffjÛEÅoaoý"V3^à!_¼ßÛ«X}°nnÎ}Á
-q o7Èg¶È9WÈ;bEù=qJ}Ìyd¦ÿ©çz3ä9,fôìîÙ?ÅÿJöW¹ûS-û«32ûçè Ù_Ù?£ìUÈìQöW{:äûiâqã}ø£Ð7ïÃéÒÐìpj½
ß{åFUô|ù=ª
+ EgtÞ5àÖúÍbGDô¥[Þ¾î£u<ua£×Å_Ñ Q¨öþÛnÞ;ê¨riv(]¼Ðâ
+äRnVy
+-cØãzä±lîäÎmSS¦Q3
¯¦WÐìVÁIöe²+?dÝj<¿ø0@*hÎ`4k²7ÿ·Ö¹ÈAùJPÀxQNy½³n«ÙÛ,yO)ü q>/N
+£1|Õª£
+`@¨®l `¢0§ï¨÷±ëö¡jI<k3e/<YÃw×{O[>aÛx¿²d;:IéËü]ÄDyêcÆ^ô
+ø$¿JCÈÂGbÀHR}3ÔK'2p
+à°¨ÞÚôPÁ5'.I]áDª,ªzÊÑMÌÁp)¯êÇã¶
+ß#N4w8Ï,¨yókaºìè=~9Í+Nouf¥«ýrôöPÍ,Ü]S0 mý§gkÓ
+°Î}|pÿQòʹ;Õ~jP°¯GaÏéaÅÉÛÃMVï
®Íá2¾WP8Øri
ÿ©ÝTùZ&ÊáèøE]½âôWßÐcè ¹ØóÆjHê<,·ÔGßJ"âDÌJåeë'ÁÜÙ¦äï9÷ØxJ¨=Ï C# IL½Æ¥}5Âì0ÌöaÃxØyíZ¶ÑóàXjd4Í
+¿Û$qù%Ò×î)lA+øHg×öo<ÛL)¬=çEÚàK¢üݦv Ã
+C¾=Nþ¬VaÕïkBr)U*pâÍéùKjNc¶¿SòÎY¡Có½¾pñ^±Fêac]ª§ó?½wy QÁrÑжÐ=æ®9&¶^ÈA<mÒK<w
¤2ExPQ£½%1ûEÙ:£ç|ºÝ·ØY è¬à( °Ñ]Ð2<AÆÚEt.Ï7`DãXÛ»uÚ;hK}L)èW륩¼SQY+Y§ë;òÜ¥5 d~®0S$,ü
BÈ£ã`½SKþ/ßñPÁo?ºµ ´1a>tñ
+iWìÅnXËüâcL¬Æs
+;g;>à*ª§<Mõè)½[}Ûµ(f]j#§Pÿü
+®àù£Ó¡Tò+fÜÞamÏâþd¤6`ÿìD»µlÇìéÔ
+¶a(ì|jµ_éh@Ê[dnÞªé9·ÈÖEQ§¥Mp«1¤£³æ%GÉWð©pËâkÍÃÒfrù!$ÒïÕ³ßE¥ÿ29!ÍL#×Ïü®iv
Ï.WÔáº$Ê×þ¬W$kÚÂÍ®'³AíLÉr¦ "x¾ òÞ;`¦ÐÊÔy£\DñÙÁº
+ªÚ¸,æÀ¬{+´î
+7aÇä·¾!^pH»ó&S'ÿD{Dz:Ô)íì7N
+6Å[v(
+2ÚÏ®/*}Ô§ÇáyE.Ü6-¾le²Pmè{:UiäÓ± ·FP¡þ#ýß
+©êy.:Ù
+cù%åÏ\ @~<ô¦¥mWØ&bM
0°DZ½¿æÞ¡¢>öÏëUQ¥®üÖ~åÉàõf¡mtbB(@×8úuΪ{Ó<ìÀ GÎo2q%YÏ[E-°O_Ãõ(=E:¯84ùõýB\·.f¹©µVzi¼"òzôËzä.{O9¤Þªhe(âóds-`$!ÏA°ßîmY©ý)i»,4Ú¼sÊF©(³"¸ùq\¦uy¶DÁ±§ä°ªÜ|CnhY¾¾ÐHm¬'Ýü½1´ "Ï$ 'Õ+,|bÊ^ W{QÕN
+¨¬f;`"GßÖ
+¥,£×Vª]ÿ¤¤*«µÎa¨è6¥%¾eØO¯
+pÚ4Ð{]©¹ اÇÚ½Eɨá|^á³NFK,(Zr½ÈÈî2%eù'2ã;»8·§¥dÇé¨Òj ]â,ÊU¡_¤°ÞØÃuÓç¥ù«*>ÚýÊU¶CÏpO±aNÉkS½²àü])ÐçöȱðÉÝ.¯$Ó&
+"e¬öe³ù.T°*®°þr{åeXEÎÑÛLÁ5oµÖÇÄͤãݼÏW?TRåâx&OWnñe'ÊêCáå ]2]¶ù·ÀÛmÍuûëvò²JòEû)}=#
+.@ÀZPòäôÙ%K~k
k.<\ö!ï¶ÅeLvìñUüÈ'¦ns¶Õ1'ú^¥?¬k1 ¯:Ç&22Òí#óǦ²AÂNZMb-üÈ÷ì6Ôn+[É@Bù«oL at E
9ýsïíµx¶[ûÛ"Pt-*ìöÇQÔº:æ(Åf÷aÍÃKQ`íÃ&àõ¿§ÐÈkÄ^,Gªý®R<][óá¸s½{X¦_q
+$ mJ<!¸Â15¿!!)àÃì}sûÆ)^81+ne]´a.w¡ÅÜ~BH_®²Y&´$Êk$ÁÀÉäà´X¾QõçIx
+ßKwmZh]®òå= \òûS¢¨Äãø
öyPy
©QDMïÇfýѱW§ol^#WY@ÃQÆTÓ²ý9ÄKÒÕóÿhÞ|´òÃ+ýòßa|¨ÊqÔmÕÕdxôëK
+\õW¨åßLCÓDZkø
+1y·Õ¹P²Ùå£orUø\YýEÁïé¥ôdX×{<°×2ø.o½NNkV6ùªA áÐ%±9#J]@©M3²J¬,=Ù¾ìN;ç|#WçÐ-Þ/.
+
+t>[sòÞvT"'ùuº¢ìêgà{ÎðZÕ
âVÙä1uÀý1-ëÂ1ÿùûZ®Ð(&ËÜÑÜØ·õ,í/ .·«§óÿª¬ï¥àü´÷eÇ
ãÔOÆø=ðⶤö
·«ñQkgÊ<ù Я
+J¦F$yõ!¼b«IK>`
+°_òîë®·I7fs/í|¯qÀD3¼?³Õf¤nµ¸A¥.+ÔÞo³¤ô1BEÒÑmtýîøî>0ù)ã¬*¤½aN£÷pÆQ.ÆÕçÆqú?*5mÄ@"R°nc:eE&ÇH
+ï¿®M²ÍÏþ;¹ ó¤v½èÆÀ`ÄÉ ¨²ÃÞ%Kë%¤®&p<2ý¬PºD¾ÌüZêk|íÌìÝ®0ol¢NϾE8h
+¸VƵè¼zAAéX±¶åVÅZ¡CÏ]|LªÈ¾ÉîçD¯§ê¹i:_¯ñh÷rFß
Ó¾2£èÊ1½\µ\ØÍäÃÃß²\@ȧ÷@Ó¼Ò+ÏmA3¾×ô*Àm¥ÞNâÖÞgv
¿kÀ5ÏçÞ·ûßÄØ{DHÈ?0UU¿õ0Â×êT¬[ÛÙj
+ HÔÚ|ý³_q_c^Vf¯B¹@oÆDHîiÉu3nózÚ^dh(L¶«ÙTýóûÔI§ÌDBÝÜK°uâËò1ÁÂWy¹õn=`N¾èÃmG-Áãßµ-øÒH*k»ç@ÔÁrÔEâZÚSÛLH÷N<%¡kªêÎrÔ2uTp4^4:Y'yÌõúoÃÌÔÕOLÉy¯°W5ë·¬5Jÿö6´øã²b7Þx2À¿
Ð*Ö£nf=K.£=æL á¹¼ü*Jã1)@£×Nº)+t$MUµ¨bfÊB
+¡¡l4ðÃTj]"ë'ÍøøÎF"²÷K¤¯Oî]x.ã ë turÄäåó,R]Ó&å<åaã˶±øÝÆ´2>Ñ
+}²Åwðó¶Õ!å|Éæ¨¤@Ö½ãZüý¹Ø:1%²^¿eÓÄá)cre
+%ÅÙk;^µÏ|J५H
,ïµB
+Pj3×=d*^cñ-íàð̧<XP
+Á"F~Þ/.`(AϺÁQüG_÷µ-xíMº<É |0]_wÕç{ÉüQí¢OYªsâAãTBDu3?ëé]ì¤_V6
+Ùb`Òñ÷dج*ÄÖ ÄÄhÃf$ò{j@¾E&+75³)¶k\ïE6èÞöSäâNèí
+þµ4ùéPVáGqà·âú·^Ó£y\Ïs¼÷ø÷¥L.kwÔµ*Ïç+Q®àÄW^àYäÌÌsÿø%£n¸*y+~M&--]y±
Î8¥55øÔ Êù@ÝNêpè{¹ò¯æJÄÆçjMS¯CÛW¦]}AâÄ£Û3ëâçV;¬|KÄLÒõv¥þaGÇIwf¢
+#äJwÝ2['è;û ?E&f_àyGÒ{ >Áz60KSG£±ñµÆèºía¬:¾JgvóHuÆÒÅjï,T/ðNÝ¿c¯²ñÞµYW:Qs§£Soútuø±Pßh-èTûyñkçYùíËÉÌk_|
+>g³Ï-ÙRêü«É+=¬C 2ùM^³ÝWd©Ò=.äã,`4!>}ëG/pjsæ²ö{öé쫧³°ÿÄÁIàú¿içSsk½&ÙJ 33 ÈeHý1«¯ô½ëUÏ ú3øç×C9t´;WF]êÜÆ.PÎ<¡6ÉLl¿}qùd
+
+cô9[×=ÙåxΰTð:¶ÑRÀjZ.i±¤¦G=<--¨6ÀsÇGI,(³iVÏ'¶~¹£
+a9MR3¿ =qÂ8¢;¼íÌX´Ã×
+I
"üò
+Kqç«É b å·«CKoVeÁ5ÒǺY±·Þ%je»]ò²RVÂë4/ýxT»Ë :I#ê8Õ¨6*,ZNl;pGÆ·M}¥Æ¸kx²Ò+üÓd§Ã
+TÛä5)é;~¼nÍ<Ý»·LþÃ3¼º{äâÏ*T¶M/ªÞ¼èÕÛ¢ >B¤L¸7 TÍLàn¸âÖÉ¢&8ÉïÝïy¼F;ùwålõN¿êÐ
+w¸1îBfæ¡´)õ-iJ*vÉ{ÙªZ¹Íbø-ZbëBcðU+WÀî§~N©-C>¦qî4?>3®¯YÖÙé~`xÎ}ÆØó§d#øÏÉv
%CkѨoRÒçF¼«áøÿ2o7Hr{Öç2#:3FÉ©{Ãq%yúÈ!õæÜv£Çsgòm
º$ȸmx8¹ßÃÀÀö;$çEª~¿ÿ¹{^!7õê\_è÷[Jlí̳PõË+í:
+øñSÓm:õÔè);Ld8@²Ìp¸ÑîaêØ³,ø<c$s©Eä!ÝÙw$~ùÄÚbfÀ\¾Ü;÷iñä=ý3×(ro
+{ãN!ùúÇOyqòªv¶ì´asx+_1I!s}ÇêA3 çF8G¡; ^¢m*ñ¨8Ë<¹
+°LO´>6æ¹xà<ió#'ú
+ÁÉ®°½\ñ£î aõQÂW¡LGEh³ûGöÏBS"Ù,¨»Ø<à´xÙ¡lÇ÷GÓ².Gd.CT%0zz
+¤¼F:&"C&´á½ï~!é0_/Ðq +OüáêÖÕÓ6aKßY±>5
¢ý gH$NÄ/Éñ«~¢¦¼#µÈ0Ç7ýÝ>(Â*ÝÚó4ÈiÙ¼¢±.3L4>Å×?
+ÕÃÔ¡´ä¬,W#±¼
+ßE±)n"äDµó¥
+Ëå
+GO¢\EØ.ÃIoJæ®øºv)ëé^-Ͻ/A,\ÙåÁòÍjÎZn¹hGþÚéÜv$Tæ$Ù¿iÄÚ»A«ÑZý%`thøõ=õÛ¼;bÎÁdÉ´æ>Ëö;dzHÒðs{ÁWT¾.ë¡WTGÅk¦²Uw_®©zÊÃJæÛyW.·í*x{2aÛ÷0~.>Ëíî©Ì?
l¨08´½µè%Ýr#P\¤ýÑÙsÕlÝCdTß|¤_ Cu~"=YÜÑÎd/¾5(hÕÙ^e®DR.ý
+ÃÈ;æJ³¦ã¨*²à§'R1ò«EHû
+×/NÿmEÜ»@yn&ÞÑ
+>»ä8*+dKÀH±Üoÿù"yÄwÐï©x
+KÙA x²n÷ÁäÄ^a]k¬ò:öpÉú³sÃþÖ·¼\| @ÓêÄY¤#ô¬Ók[]Ï üÒ;¹
+$ÆO6ÿ¸Õ?þÀ¨tJL¬SvÉ*ä&®xéÞõ<Àq>ñ~w©½1J> O«¦\ÌÅ÷<íAi_T¼þÓ0¸îðbó0HeмØ*@Á',À·XDé΢59)r{DÝ@ÚKØÀeªqõ2<²Ñ×øøVíÙ!HGùß÷-#Ä^°³»ðÛëºÇ%7V_/'Ä»r+ÀuvIó¬°,ßKXÊhAÎjéZ';:ÂéC;Ör¾)}1MUÉ0¼YôNa#÷îî?¥MC¤¨(øÚT×m*co&T×ÁIËF,HúÚ§2ߦ,þ5$(H¦:º]hs_T'ÓT³Öø ä¡ZêÉÈó¢JÇûmb(ñÂL@út
+0Uk(fªõ@9F4ð`_X¬î'´Zc\Ê?×ò)ÿoä~wîì,þß[sjdÑùXå-§
7ÉYG¢¢Ä'nG¼e¶ªqÞÜ¢pù.£ÐèϰCíÌõ?À
+Îòj8%r<åóz'&D at .ÛUdëÂo ó|ØY}\ÎJ_Ì6ÁUèrL£+~²·IÈ¢|gð«cÅİ¡:§íÿ<½eKoÄuE¢%
+P¾ÿ3ÐZyêr55ÁÉ;áNç9§zÒþÔûIÝJkÕ3é9ÊvÇ ¸tÛ
+<ÝȰñÿäi<UÂÓ5û-Ì¿:PÈÏä¥ý<(¤®Z8¢2Ç$1ÖÏm
FJN`@Ûõ×s%ÚŦy¾T$Ê =GLnV
-JÇ_â8júôSù¾º³Ë¾¦´pôØ®R
+þÏF 6=Ýü\5ï êëX
+ÐfÔ®ÙiP§c{
+îÂô<öÎ(cíí
+¢ÈX°5-èkIµWlÕ¯câë
+ìÌÔhvÌÍç`åcìÆaï$1¤àf_5ì_Ðé~Cp#ÍTl¤ÅÁòª²ÜÙ-S@õ8ÄÐ\7¥ûÓ±ïEµºâÙ®'ùzÒ¦òÌìÂø9Õ©ñX.©( ÄÃ0êoäÌø
+ÆB¸´Ù<ì¿
yìÎírinëºT\\9£`?ÀkMmz5Zªåí,AV_aî;6ª·Y¸öv]ï&S±X>;;ÏÀKcpÙdWÉck+[âMë"9䥿%:ÒYÎûªzãÕ
êé!EÎ)Z
+êQP7ù¥T&Yù|£QÔ(z)åÀFÝɧbÛqÓGD¿LºâÐZg"çLµ.#ßÔ).ÚtO;LG-
+©"DÝ
0K4¯'bçJ%¾çÇdz*ØãÄ!ãà¹[;(pv/¶3£
+!)þÙ¶×úaG¡q
+È"¨-ÓÕè¢xñ(]Ê£|ø°~5¾SÙ0ϸT^µAjAfËÂô® ¢s~úZMÃèwY¸ÇqÓÃÚÿtgýO:!ÐâR·¼¸2ŲWnês÷½kFêÅcH
+*zVùÛÔ_ü7¯Æ?Ô¦
ÒíQ^c*ꬬ¡}zåßùËkÁßT»Zþ,·eÿ¶OÎÑã£;ñ7{`ªæmO¡nfÖõS²f4ø,¨[ öó¦¥&³às]4CÖÎ×aOLü=ÓUè{ß¡~ô®MM&ÄýìNò Ñ|®¨y¶\ã4ÉWL§j,ù Û^¶·ÖÕ1J"e)bä1Aûè8UܯnÇ&i5@V<-Gøµ$©ë|cݲ×óMT³g>ý¡ÉX¶ß
+AÓw·,ÐtlEvÈ×ÉLèìe®^r+âú6|XøÌÎe&UbʼÏèØÅõDjûÎ'õ¯¨Î*~CN½«3&{ZèÒDgyGv£¸£Ú¹²EëPíá',EFþbS":q³´¾m³¯SÕCêB¯´-È|ÓîÜXx±¶ÜvC/±º:^>öäWÇåÒú
+pÇå1agqK±ò(S_a¹ HD:ºÄ¶¦Üó¶EÞV.gúãÎÅîZjÜðÿ1(Jìi Éx×ʼóàÂH£ÿ³¸É_:AÿvÆHÞõARñætSD¯l´ÁÚu¨jè¿JÇàþ)xõÚV7颯ºâ£iÁ|d#ÉÆ
Ì'¡ÊÅ}w¤Æ.ºÄh¬¼N¢`ï/=D¨`!- ¼Cz9)_£V.ÀdÖ ,×r¥ìåââÇúµ.v®þÞøúù"ÙzôÊà Bw `ýþâ¥UÀ$wÍrÉ$èMúÉÃ;¾ãËXÎpwÆ\µÛvÙÖ&S³Sñè®æ¾.» ÙKÔÖû6ÞËPtßTÔSçÀÔ5VsWbã öÅô§}Ahì|B@ß /I\d5Ò[ ðÈlìÀ:ZHeE/9>zÃv¹©ym4HeÜú·p=óêeøm]}NسEæçÕ¡ã·JD¦þ¥O~Á)kë?.êÓÎ<À»ÚCÔ¢×>>ág®
+H9ôâeïy'tòwë·à<;Ö·AwÊúk¯òÑf5Ì8aö²Àðʤíê+
+1
àïÙf6h ]a"~Ý_4®3¸(Ò}üo¥öXüQ_(#½Hµ51®Cßøh&^;3;ìÔZçû²«>Õ5)ÂçÇ)Úq×
OÌ:Ä»ø~G×Z=4 `.¸9ëÛ¿P!:9.kÄs\áÖk=«YïCc>ìu¸_ç6¢ÎͲNà|¢
+
^תjg[vüãNµøÖiàMÞô¿`ím4]®´åø²ËS×ÙwÃØvJVgßÉÀº=ïz
+9 B®Ì2U¬HKû§©3Né¨tñ8OpJuçÕ½uwïݺ¨
¦Â¨ÈÉ5ÏM¶Þâ裬{ãrå
+ª]cïdÆÎ$æy}òþeÎÔæ9©DÕ¤µ`áu]Ó(c<ZòÖ
+T
+¢~N¿ÿþ?ø¿Ø8ÙYyx¹:[y8xØyz¹zØAí þ²ë
endstream
endobj
-597 0 obj
-<</Type/Font/Subtype/TrueType/BaseFont/NAAAAA+Verdana
-/FirstChar 0
-/LastChar 27
-/Widths[1000 698 632 600 623 394 595 426 351 635 635 635 635 635 635 635
-635 635 635 454 818 363 520 454 274 606 623 454 ]
-/FontDescriptor 595 0 R
-/ToUnicode 596 0 R
->>
+566 0 obj
+86536
endobj
-598 0 obj
-<</Length 599 0 R/Filter/FlateDecode/Length1 39876>>
-stream
-xܼcEÚ?^OUõ5=GϹrÌLn2 W IË.! ¢à +¨È¥BV]¼v½ð$KÖEAAauQßwAð°»«ßS= àîû}ÿ_&=Õ]Ý=ÝýÔSÏóù<õTß6ûöë,$×Þ<µqÅ-/%ì%<×Þq[tóugàúaBä§§5Þpó÷§ Qç"ͼᦹÓ2¦ù"82Æ3ýú©×UZâ&dÒYüòéXñbbBÈU}q;wúͷݹ9ôÍ׸=·ß4ëÚ©Ób¥LÛ³ozgãÓ9n¿ÛÑ[¦Þ|ýcëj¸÷Óû÷³n½í
-+#µtýÍ#@ÉiðuIÞ#ȧPDæ÷á:â'ræ(HD&Ary¼
-©#_µdùù59Åd<ÙNÔ°+É3d,¤%_!ßMÆ_HjI3ø¤;¤Oá^"£÷'KϼøÈ ò4ùækþäM~iòäqÒ"â$ä+rï¯ õÉÉT²üd6Dz$YLn!gÙâä³x'
-¹¯;
ÜMëvºNºd*2"õäfòyNN¢æPOnÂ{ßEÃkð9;Î~ä*¿?(å%ªðÙ¤O6
\Cn%ÇÉPá"0zwÞ2â/ôÂc{É2²÷:Á
-i0¡wÓ}ô{þôirÕÜ÷tù#y|Kþ 2ô2¸¶Â)йô'MävRHqd2Cî!Íä ²lGiþaCØÖ¿å?'v¢¾OÂ{ºl$ï±Ý<Aóéw,Æîgϲ½ì4>ßÇÆ§(Ã{¼?ãóßí¼¬ ¿#¯-¤
-ïg?ù3ùÅ»
-Nàg1}>A¤ï¡ì£ûé'ô8í`Ëf¥l
-!áíLwÈ:v)ÔÁ¸°êÆÉïxŦ+i}E)WðQ²È
-ÔÅÙ¯áQ²\DÁ 2Æ~Q»ÉlKÐj@³
-ÂøâÜÑJÌ ëiÙ Ò¬îÞä4IÒÈÒ8þqr,ßbÍ<K/ãïà3¬÷HNHü
-½ûéh/ÛÐ^|Vã8îÿÁ¾ûù©Æ;?IÞÂçû T²ôFáľt$y²ÛD1 R¼ò ¾¼)íPU.®¼h`ÅþåýúöéÝ«¬´gIq¼¨GaA~^nNv,ÉÊÌHÏëq.§Ã®Û4U%ÎðºÅÃrª¢-ù
--<?gı3+¦^PÑÐŪê_Óm°þòHöG©#ÍsG$%ÅÑa9Ñ÷æD[aÒeqý¡¡9uÑk}µÎó
-nÄbxFtXpúÐh4DµTß1}ù°¡ø{ëuÛ!×ÛJÉz«:®µr×C`X+40làzJTÞUK8gè°PÎPq-,oØÔëZj/8lhz,VWRÜC®Í¹¦
änqÅCÈë2-òźLtxò@t}qûò[
-rMCÜ~]ÎuS'OlaSëÄ5Üq¼îÐÀ¼#Áóøã!\¸7-Ë/¶´_6ñ½1ñ]W¿çÒ¼êåÕxé
¥x#âöÅ£¤êúa¢¦áÆh38gúò°AÂË[ȸ¹±
-á°¹aCxXtùsb-Ué9uSf¬÷åãænÑÐ/÷¯7Ü)i®wººVìW®?·ÏZ³k£Ç';Êjн6w21døº~
-]²}Å/¶RûÛ×µ©(ð7nÒDQÿR^uΰ
-#°á=¶xLdé´.µFÓõS¨¶Ïý²Øh¿ÅódKí¯ka¨¶VD«[©ï:[,öÿ<§UQ/8©5yReçOëz¤ñ_n_ôí_Ü}9Ãûåùtô/·ýb_5Ú¨åË«s¢ÕËOmM.¼&'jä,ß`pÈòÆa
-Ýßl{ ½¥úÁ:|é0°*ñ:h´ç(¼!+ô´$Âß
-ÊZ´
-Æ3cSc:+I®gñ«WYÌsçáNÎFYûYS"?(oük2!üEdùÙ3ª@ÉcQÊI9»Òxv9¯fñFÞ(½È\±ÉY+ÝmÚ$¢"þbHt°é#Ü@¿ïã¸Ìõ
-(t;ÔÔèPÓ^FLäTÊ$ÐF_¦H0w^¤óÈX£þLý#qCܽ¸ÿ%RÏø¯½Ê ú@ÅÉÐJô>RÛÏF¿9Eõ,Þ?J syTÁµ5Ú~í¤&#ÖcÔE]ª\<(UÖi»ù.yr@î@´v;rxTªËåÊxi¼P[%¯RW3JUF4ÖB[X;mgûé~v`*dWB%¤0/-ËQ
øDM3[ÃZcÉöP_ÖÊòL'$ÄVVlD1 >¶AG°0]YÕ¯Y¼ûªh¥[׿HSeÒ-ªJãL¼©["àöTTE1*+ÅÒ« êQÐM0»É.°"å/³ ò×ÄR[âlóÏ6/Iã7ò*RÏn%9Éæåª
-Fñ+¯5ùï
-ZEæz
Ñ3Ú³¬§Ù³¶§dsª=Êõáö99;>Î;îP)ÏãÍËÍ«¶
-ËQdª
÷÷dÑ}³ËóeÏ3{Ö«W¤ÕúÇ&ä^?¥¸¶çøâøÎÓÖÄ×·ôܶÇßßYüc8=ºè½ÃWD8"Ap#Á)ÁYØr,×ôx2|(>¨E»ÚC+Ë0]^T¤ª5"¼YÍÝ_
-ÃFáÅ]~ûc}IhËÉc,*"!Økþ«dþCÃÃê£úçÝÅïçÔûCò]J9gö[¶½Ã²#\.d1J.È"krÐOý[v+áwWßNÊîCéáÿRæê!÷Áß)ï4>O8CÝáÞ »8N}^{!ø\¨¶)òB÷ÂôGø*u¶Ëwjså
ÊBCÎ
-ãõl¢V&g«ùZÔÈu¤åå<2o19w¢ë<è÷³óEå:Q$®LpwÚnÃfnÙs3=êg><^qH¢d
-dÑDm)ðêî½-BmèpÓ!ïU°O'hÁn½N&éh%{Wãy}B¸¦ç6û[üí~Fü?+§ü¿^JÂ&P¼#§f1Ì3þ
-,=uªé©ê@}ªì¬GsàìWÑ`éaââË
KX»Ä²çÿH=Z&4dv·þy¬ÃP
)BP¹¼O?#Ǭ+n©õ÷^Z2jìãËóêØe¿üN¢ùãĹîXò±ëöé½ÖÃ+hç =iD{ QøÔüõRÏò
-DÀó¶Ô±ÈÙ¡q¯jh~ËPötÒ¼O´NUK"oj[{µÏµ¿«®Ø<(Bj0YFdhdXÔ6Þ1Í1O¹Ósgdòè³ÚóíÊuzPÝoûLÿZ9¡þ¤ü¨þÓ÷sÆ©?î^ê¡"7D~ocQ5¸#
-+£8ë H,kÖD@ödxm¯*:l^a_Qi¡¬¾µ*Ô¨@TCªûÕª¤íãìº:_Û|(H3j5æ_ͽ2¸WÔuÒÅ]Gc=R££IÙM§ÎY9e1ä.!wY«Dk Ê
-hãÝVav<~¤ªCXP¦°Âzd
-ë)¬G¦yî`w]1»<©o"õVk[6иÛ*4q[
*¬--µ¥¥¶ÖÖzg
e~Ä/£_©X ËÉ&]V(ÍIØ!
Oî,¹V¢Gÿüô'SsÞú*ñÜXW÷PÚÜÚ÷>ê)púìå¯þqpúd¯í;ß=b<ºÇm¨A!in²)ÈHUYQT÷¨r4½Ve!
-¯_(_+_ü89îúÆ`ï»ü»|ý
-ÇneÎ_HÛ n±mÒyy Z~ÁöçúÛú;Ê}<äÚòìSÛý ½ìW´l®rk®ÁªmÃlA at _dwi6]M ªëQ»ËFCÄ
-Ýnl"I"»ì$dèãìB}2÷k¶Ã {ÒN£ö}vê²Ú«ì,j_`§öVÚÛ´ÇÕ ´"l,O?=½¥&ØÎMØÒèîS¿£ª×ºÜýÁ¸³Ëí/qî´:¶õUùËî-Z©«©ÕäÉ
-F
«5ù)¶VkËÅz£.hR¥¼¼hD
żÝí(ãô#cÚúkî{,ö«Äwg\2°êÉâháU/yþò£WÍðtçôª%áþU7N´#q)¶á`ª{°
-]äK³í¬¯¶}nÿÎ.cØ ²=`Ï#ùRwÇhe>Å=KiÀn²Ë±ËuÀqÌáq0?}JyÌɯTV)Ræp¢5Ö8uÓuËE.Ö
-¯âÇ.':鼸_ULea^Ýf
-UV¬sÛ)ðÖ¨7j\àZa¸zn7ôìÀsö«¯7Ôª¨ ª¢ÜUaMg7ÕÙäúô(B`¼¢`¯Z7hø-Å£_T-õÁ±È·ÎÆm{S8[#NÕ`ù<(aJ5B©]Ñ4´ö4
ÕSL¯£7*«èÊ÷ÊIE9D÷B:g#åZ}:ÜÀî óÅt©òyVÑÇ¥'µäþª²V]«m'[j¶ì]lOzGþ¾ gèY%¡!Ù ú
-fÑT(ðøn¥ÇoëaVÇo1
-ò×¥YMwäÊfQY_ÙÞO6õ['ïéy¥¼NNÊ\t¨\+%¹Fþhdør
-Aù£ä$ò¥£é=ÆXNª¾Ãh:c)½TG<.t!J0H¬7IÃïìü|°D(cÀõ-¨-oWÍzϹº¾¹vþÕwÔÎP
-oQ¶jíd7åëÈkð½
ð;µyöíÃ<Ï_®õK«¦ÈÀó¥¨V-ÝÀn´ËCai4×;ávya^ð
-é-pB²
-`5ìÈÂ¥ºdH"¼+ yHàtÄrHölö
-Ö!O8@ÑÁ²ÚèHìÎÙÙ8®ìÛh6P 1Âi)oæÔàQ~»Ã]!.ì}»Ëþ å?uêÑy¿õ¥,PS\ ¼¸eºmÛS*+I°ª3Þ½wEª\Z½Þ]HÔa»55sð.æÍA¨WÞ¿¼Ûb¡
WXyñ
-/7¬)^Èe/¹yÑÃn0{
-·Áó?<û*»âãËÞÏø®-xÀÝÉcÒl·"p3+£î1é3Ó½³2¯íÑ«ÕÕþÕæ_g½¾5ý={»{wú[
iH3«í#c£sXµfêc³j"5Ñ
Ų ÙYiòì1z£:ËÙÏeíö¾÷YÖgQH6ËþV¨3]ëB;BûB,*
-U
XHÀoÂè==h
- 1°[0Ð;kª#rÇXl1]¯©>~¤åÞTª^pµé»9Z
-ÇSAZ»Í:OÅ8t«+mÉ'9úÀH2Æ+à:¸æª÷ÁoÉS°>Ãа=®7;^"-wm»õýtâðÂd®þy^&¯À»ðØÐÅÞaADöm"°ÁM¦ÛCÉl¶VúoÓÑ«ô):Kê@tCêLÙ[ëhp4:°fF÷2`¢^¯äFü%ìvÛa±Óp v6FþÑLY4Ü
-
-°¾ánÉôÆmèÊ DBÐC\¸`¥ZÙf§@WH.TÁ, .
-Ì-úæÉícÅÎ[êr
-anØó}3d¿¶ý°3qÂV7âòæ1
-[Í%moýó/¯Aßõ;×dÖ]1ÿ®vЩáèº^´"kû· ýÏá}%áªÌTYyqªìÓ7UY¥yIAIßf
¬RS@k¥i´FÚEÑÃÒIÉnHS¤ÕØM÷K)Áù"ÅuÜË oÒ¡Ñ:ì"fm$Íd
-A/
-"Á°/9±ÅM)[*d:NÎBQκÍNyð>è¶Hbâ©í§jñ´c°}O«Ã_Í?ª$9³3-Cظgd#øHõfþ_¢+ÃÙpízy{ýF~mbo³ÙgÚg¶¿³cÚOÚO6Cf¦Ù°Ùì^ö¹ö¹MMcOk4È9JZê({)½Ôjyr:·M¦É7*ÓÕÅòBÇ*öòú"Ykåmo°VeÛìVÏàSzä¤åÊAõìÇá;*#/R~TÏh?ØúrÑ;ëD¼Q³iªM²Ù$Æ8Õm:0®Rd5)3Î(ï/Ù|j65ªÈ>Ee§êªêÄ&q<CQ`5zAñD$X)%%*°×I;$¶vØÇ!uPÚ´éãjð´vhC at 0´ËÛu1êO¥"j磢;»+ܵ+D Áó+"Ê!cZ©V.Q
-Dãêîà°Ç§hK6=vtFÇE5\XºRÀ
-aÚëzG¶PSØÔȸnO\ù÷Ä¿5DjëàÄÝáÛWqéUÔÂæÕ¸;%'¶Àq*¤ûù~mTÞ¥»ö,}VÙDÙj¾Zz°eôåqÊæEä~`¦|¹ØpAk8«bU|8a
-!h#FH."êÄ)CÚjÅöc©BJÛ ígñ(Ë5Â`¶Ëèq4Ê7ljò[i
-|«Á a°Fv1f¢] A+Þ¤jX¼Äæ_Õ7AES)¶Ï#eoë
ìºâпèOçy'4!õ)1úaâC q}ø}}ùÛ§Ow±û6`zï"
-I°N{Ùó
vÀ~ÀøÔýGñq4ª;hºò ÏçÊ
-Ã
-¶~6ÿæ5ESa¬Úvz|?Yä½Ìi:÷ã³*½ÛG)ÕöJ³²Ã®
´°=âÌ'EZ±=êTÎì_oÔãöNYF»éB(¯)²ÊlÊÛdºËö¾Û.=f{ʾlS7koØå¥¶íÏÈ«Õê|6ß¾R~HY©.Óäéöç\²@^ Ü¥Ê#ÕáöÚDû,ù&E®ÐØkäKn§ÓTE;.»f³eëv®Û¿g3ê!f`vѾK ë."x ½htè&g ¶ fZ8E?¤ÓzR§.Nrµ+uXO ϵ½¡Jl@©m0ýUHv-Ö»
-|:ÚYB]ø%}ö#ÿRê4;&hvL0ÃEýbDéqEÉ#+E³B
-Ûǹû<6ºÚ]4ï-s%]b½ª-}H®KP<2X44`Võ²Ø8àPïÁ泌ES)ESa¹Á³¤dOÚú&Á¾ãqâwWÔv4aV·D
-Z*`+¼\^å@sô#_ §ûå¦â| LIBD|,q¼ìÄÛïït÷)
-&¾vóªç._ôêÿzgÔÈ1u
-oéåKVäç·áºOº¹ûh?= ÷³=X&O¥åÎtÃ1XUíÈ'S.üC*ÐØÓêÏ Ð©HQ£ò¼Ã%MÄr¹ÉÄOÿTózD«úÇ3E ÕºÝÝ!P5dàUý{í7«Þ½ôÌÂ[z£µdPí¼¦~ù\yó¸ÑW;æ¢è⥱ÜA÷õÿÅ_¶Á5×o?ûÀÇ[n}r£ç.ýá5MËç-¸
Z8i/ú7ö²§ÌìûÐôóLðL´¥m
-¼ö_x<]hßëA´³ÉMÔ¬=áTA¨Øµ
ÍDc°ûad;}xºòÜíØ{é¹$h
-ü÷î
-¤¤fºt±ü"
-îVú¦©g+ÍLfÒ}¹¾IâØØ#6Y1{ÓW8ÔÄã4¾¢ØÈÄál¥Æç±å
9íèbçQ*ÔHʦX¬Ây®£Y½ì¡uçhñ¸Å.\Éã
-_«U8RE85¶Åf£"<%>7Â"ºäÿäιt¹3ý·¯ßy¯§ÿ³¬ÈXøri¨_¿W\¿>ñåâ@EïÒëF§ÛÓ§±
{¼nbíMKû/éCÍ3û4]öA"Þ;+VT>à1¹AÔÈ·_I?H¡Û`ö¬!5`:MW@\Ûâ¾Rk¸oT°Nbì«4³Æ5ÅE]mðöº=HãX)©Âö«BX5k¤pì
-.ý«÷¾t÷í¢FÏ?ÃPèû¬þ"ùEÆÂ[O¼ù»öÇQ*5°n¡Oáõ5sÈÈ$Et-@FèF¶V8VZÈ^]Lå'¡y!¥õÈ8:ÆÑѧߢå
èhå;`64 äêÙöóļQ_nàÏüÕã`ß¡ü UĤ
-iN!3z<nJ£@
Ô¯"YI+pênbF1WþuÚ>®Ó`¶RKjhÕNj\k
ÑÐXÆvG7¸çü¢7,ê-Ì#¤S)VV ¿k 15ÎuÁHW°¢Ôí>G0oçήÄ"b¥_ui1`¢@ñ^à\ybÈè
-5Ë.[ûÞÕëÌÌ»{î¸÷M¸ýòÆÎÚþÊ>_øuâÄ+ï^ëg.~䶦{®[Ò<&Õ¡ô\$|h>^ÃØkP)GeÜ¡\d>16kaÖäeÿ.rwþ@þÅ~´9l
is<hÌb4p:Â:õJ4à`Èá\®¨|ÍÍ[ éá]qºPSÉ8h
-øq»jA,#7
-;¿êR
-¡p=Ï= <"|¥ó
-÷4Ç4çuî9ôvçmîÅîÒnãÀ'ôÿ@ødFº´×çq1.1ë¤y.ûÉü &OÝè»]ËåΣAâ!»=6¥(M¦º<$h¸ç,ðìóЧÊSãaxxÔ³ÀsÂÃ<ð©ã¹$ÍÁ5Á`{pPË4¨yÁ@0ÝvÙøòÇED Ri)ÿÐîÊsè¼]àÀÂV
-Tpsçή!I£5JqAᯰÈ]¸?ôÈ}Á¡ýòGîõß(Oeµì»oU6Ïï| )£çàÌ.Ôs:üôógÍ/º»ÿs¢ÈR~ÀVòA¹)ø«ÕûÕÃþªñ~zÜ{F:%ÿ ó£ô(;Ê¿Òù;ÒÛòú1ûK[¤Íò;ômö6g/+é&¶K°ùcò¯Õg©´-Vxï÷=B¥;èl4×»Juj-ÞàÚ,4ö§±Ô
-P+´j:Iy4çký(¯ÒxjK\¡sÐæ.C;²ã³iªÚ
-SÌ
ûw#ØÊ&>Ù>U¸ËSàp¹úÆB6ZIjAzÉB¢J"<t³²F9¬TTtÑUf1'ãÃIô·ñ¯Ë|¦o¡¯ÙÇ
-üÚï;ìãÄgø¢¾_;nʾ6ú=I£»Ö¿Rtâ·í°:,¹ E½w`UGS¶poèèÄÙr8æ´t%´È³<b þðO
Tè©J7»*|Ýá]ѽÖpª8)º¨þ½Y#ÒÙkPÖÙxYý}¯êÛkѨ'ö{v3øyö¯oýĵ[èA-¢ßY£w^"E¥fi´_JO¼xH¿Ri[(R©Âv~`:e,Ú=AÄ`ÁƵÃ6°<2OyäîßÙ]ä©ÎñÙÂÛ¢ùëY] Ø%Æ'È!³çx[ªí¸<AáDÄéA$ªÙl]EÚ«JF÷1Æ Rä2¤üܦã=ª¨.§ªÎ¡þÅå"Elh«}Sô}ú!£v«q-©sä·7m2 ûu¦·íg´¬1ViפÛ×Ïûä#ÅrÜ´ô<#ëêðçÓÅ`È\Æ[1Æw¾»L`(¹ö#lÒMR[ç{´%C§3ù§ÈºE~6ãá©öËæú"WªNó4F'O¹2Ö\[\=ï]Î]Æ1ñ ëAæÚrýT%sy§¹÷G%êvº¦Ógwº¨¢5^¤NÈéEâ+°ë.ÃÌ]§îS©* ÙJ5©Ò)ª¨`)èP«6ÜAýF4
-£-DÖ·+õ-öc?4¢Ø#´Âªõã»C³Ç'Wo!µxj´ó@ã±ÓJkJ÷º³¹ÉYÀ~4dé
ðø÷¬[õþG7ÝøÍ7|ÑÙÇ-Åóo1è«#/ßyéÎlÒüe76gÁíïêÒý"wl6C*LàÔGBì©uÑyYB5Û¨1nM@>¯Y£yhPoÙ/Cê_B'Ðý´2êP«Î
-Ðü/<ßfMÀýè©Ga¡È.3`Áÿ
-+ÀMbÂp¥Ú^í$M'¸¦ñiÊÒ\Ç\ç\×ýÒÎe®'ø®\»»]ö°îÆZá÷¦A]QdO5H'öC"êWo¡À5µÒ¦4ìÖ¶Cö¼&|î&Ó.BÖ õmð<EºÒãÀc¤³¾Òèw
Õø¤>÷zcLED#&¢ýÿÒíOþëû'<CÆy?ÚÞQ_?dÖ-íßAëѶóñ¹-µ#¶ëgNƶ¡1°ñÊs}ð¤<¥®R£$00Pãª1j|5i5þ ÞG½Ïz7zÛ#í¶v½Ýû÷`ð°÷¨ÿhà÷´ÿt ìr»<.¯ËÇÅpB»s¿;[áFÓíLâu-Väâ0Üö)x'mt6É
-\2ÚP.ºÒtg¬T
-íæE[bdFÔ±ÎÚh¸ÁÝcIùÖ?fq4áwNhx$Å&
DôÔ訷e9Gò0:èàN建E¤(ôTaOTáL^<a½c½OÅY~jå²P3tw;8ýã¶÷¿1î¢Ä©
p¶üìýÎk}ûÑê¾ÆþQ´÷à__°®aèWõIütÓÖn[;»ç¨É7èi3~-C\"f]~X2ñ®
dí<5fËk¥|½½APfAí¤¢(!uúµ]¦eÌ)+LßèKÁSaiÅnô£7BÆÀÄø&!!·òúx};l2w8QèͣølÌ5
Tî!öÎýUàùõí¿'æËïÚÞ±A¿ô5βÞP¶!ÙPñÅÊÓäiéiù }¬Ü¨Ì°-àó;ÕÎEL_¥\¦ÖjWØfÒLéGÊy/©Â6@¯r#J!)åÅrR¤æ¨|RNaòPen:é÷Ù?²!mf KºLl~é
-Eàd£â$ØDdq©ª¬Ûí²$£ÅB
-ÛFðiíôß[êpÍri3`#ãfA»5Vº÷
-lOMÑfiTûMÃáYlþÞ´MgÉäÖìd3¼Ó²jDdu»åB£´
-Í]+ýq£ã2Þª¾S$¶i%õMçPÀDî>)iKì¬LFÎgw&K-¶%¶@
Ybu%)2lá>^kįMü³ob{âÌýÉQ0¤\ Qú\çdÄBèn± ]"!NCË3¨l¦±µQRF×yõ]ÑÍRáG-µ4TÌåè/~k1ú0YohÔ/z'¸ê¼Â³2ze|íµõïÏ a$$>G-Ýð"H!^$T2Å#Ó
-
^×¢,¹rOiÑÁ2ÂÿqLÿ/â_Öñù
-=ÏqB'Ós\0i!ÜcqÁ+Vo½iü¯ç
-ÿÓ{×X3¹ôÊG>ÚF¿vç¬ï¾ÄmûWå¢~C#(ªq(×QD&
¤Ó-ñ¬
#kÚøuöÇäÉþ">Á;!Ò ,âq½À^Vļ
,ÝW «Á¬H¤ËÁú¼B }
P-<THKk
-[
-Ûya$3KÄÒÑãFXzÇr¼Á¨
-¥ê,Ä({rÍ"Hå9«;óêÆ"(Êj£ÍýOÛãóó&AÛq>o£³KõM¥Mçå(ƪ>Q¤Êîôt¾×;E-¦-¬%Ïa]źJlb½ÓÏ^rÓª±KW4-Xø÷Ñ}_=µt¨yQìîo>7~5ú¦»Km6פUWÍÛØ3²úºEÓÙÅ×UaÏÞT9rðlW ôß¶óq3>A[ÍV+«u^®Ôd8W!jêý Tÿ1]ZªÖ¨-j»Ê»¯MÃ-z
-Ö´ÑÁb2Çò~²XÕéàͦÁFmB äxkS §ÖR¾O;¸ËÐþ÷±û/R
-{¦>
pº0ÃúÃúNL¹zóª>gOTÓútjÙ}ÚÙx:1û4>fò#ôû_Aê4z®XL¼ñÊ^%êzªI®9LÇd2 ¦¨µñº`#äi䶬&O²Gd+á%R¾«Ø¢rZÎÊÕrÌ1t,ÍGKcäÊX\Åê´d\Ãøuòµúí"×6G_Jî%Újò(<®=n{Zov|Å,#B§*K
-=ËÄÅ&E¸¨i6¼kºË]Iâ2
-uD^öºNÂ'nÚ#l&m¢TPqÅ´7 ímAWyX_l¿fåmÇó8
>d¡à¢:
²Úð)t]@WÒutÝGÑT§m`C´%0bµzCÐàzC¬ÔMäSÖ\|[LF*©RýÕN+£)µ±sI÷HZV
-¹5¹Ô¨nÍîØâ®`ª»ÙéaÄ*¤5ù·Tè?qKmM~*ö
-½Ú\zÐ
ÛÝĹ+©=Þ51©g*?
-QpÌ sÉk°Þ/«¸0Ù[R"V¼²§¸Däæ/+&9tÏFÓ[é-6V\zZé³(Xªë8ì`°YÖP¶¦EE>µ¤ÖÈ`Ê"µÉbð¡´"ßntöDÔMÂ%\ÊR¨ã²ÝÜ@Wo},wC`á£? ä3kÈ0'ÛI»ÒáSó3ûûyyõªÚĩĿ`Î 0`ìÆU
-7®x°þªYmÍ×®}¨îÍGzJVÕð[d¦g@
-8ÿvH¬Kÿ$q缫+·
-
¿MÜ{^ûªW^yï[V3*Ãk¢
-gc¯ÍÇ^«w³,&춸Y'ÆA¢r£Â5@ó饤jX
-¯QjÔm
-UjõétÒ 7ê°.WWÖҵʲî`-Êm/ÙÃvÊíÊm¿¼_ùä(ÉLʼ:·9PA¸Ð¾7r¢'+?Þ»BÔé
-MÛQ«Ðíl£Ã]Ì)£}9ä>RXç{W²Õ"¾(µÎ
-EìÓao>bÈöBYª
Æê IÁÔªLªìÇÇèî*¨À}ú[Ihh³{ÐêD^)»$§s3${½E~¥óæãøó%q1Jí#ÌKÛýIN÷ÝIæøv{ø
-êa¸Ñ{Wì ¶#4tCõC.z¼HºÇ´KÂI+DÐÏ|ïÆFøZiµi8
-¢Ù¹:
-f{ñ¾sIg¬P¶¬êüêÂÒâʳ1ÚæÌëÑ=
[Güñ£%ȵßVÓ[j;»4±ú§·^ÌggVÚ÷x×ó3%À(1yrVás½×h<êªÐü=üÑè>_O¯gû£jм½¿Gf£¯¿*: - Ø|>W¯Î׿{î4FWÐØC|ôú ögi`aôú{?.=ã¾ÈÞ o°]t;F{x^`úa¸Îá>
-æÒ(#>¬¢Ìå+Pôô§_Â6úÈÛ@UéwXLbi í"x¦°Vz¿YFDZ)\R1EYjB¾Ä¢÷Pbõ´1ÛÑH2ÇÎx[v±¦$Gþ;Öð°56,¢h-»)ò©äó_^Ø¿AM|øòK_ùÒÞå§W~uCgÛmãF.½r^íàexþOÃàÄ ~ûôº®=Q0óîk̳dú ˪~%W£U5H&¹Íù½A(È,äùöéþwù;º¦qI§¨_{684aÍb¡EÔí°Æ´°i¬°Ûá@×h£°Ãä¤%´'7f¥cg£Eì¶)´(³·oÿòn»Çs²siõl)ÛG6ôù3ÚV®æ³ÄòïÞO|sµ®÷å#mÍÿøVÝÛüGÈx>ñzâëã±ß´÷áÇöþ?õÚÛëÐk$¿FvÈ%6rڼ⦢öFûgì/רçòöýöv)ñBm<o{?fS4ØGÑò(Õ´ËDÕ°ix-C¶¢ùEC¥Ê¦R
-[ݮڪs
-e*º{M=ª,PÐ8R¨²
-I&òÎM[A[#=L9öà-¦h¦Ö¨í׸+Õ¶CoDèݳÎÔ;¬`Gw¨ÓcqÿÈ&KºcvwOE;C1à¾Îm-÷ØÅPó}âoã¯Lü&¶ø/@Çvn at yEѬè´fýà§a#äæc´_iílûÜ+*Rï¬`âåkèë²x F©¯\.³9Ê=ÃÁîä¹îßHOkùZi{goý8ýçÇ=Fp´Ì½ÐÇËø©ÌîQßpù9ú[ãÛD·°ý>½ëeO÷Ë0<âeâ÷ÝcwØÐ\63zÁa¬`y¦Öõ:Køto ¯á
.Ét¦¹æÛ\o!ñ7e¤ÞQ`Ú<½¥v¨²]PsWÒ5ð¬ðjÇíû»TT½2AÔ4,Ë*pY¼wêM(ûÊ®´ºÒþó©¸j5½"
ª©YÃ
-å^XÑòÄá,¾Y[1þw\S2¬t`u
õ³¿J,· Úá.´UÇ Å·LZÍ>UjÂéI|zù
-yv¨61®Qÿ
-
-KÜHÎEð}äV?Å-ÅuYkЪIÍb¾´þpäÁuKÑ
-ßú°é3ÎjùÎÅkYsÆ·ÃgØ×³Ìóój.ÔÜ®éÿ9ùKå²^?$~6:âRÛϯð+K¼
Ï7/
-.6H zH`:îlðÐ ê@û²¾¼\ªpÏàÓÛÈ]ú]öÛÒóåÒC®è+®Ý´%°ì´íÔß¶¿ç{/-\D{¸z¸§¸8á$îÒ¸ËìÌàÌ0".îs¹¸Ý!¼°½°Ýa·sF]"V¯(¶bW"H;]eÒv#Hi'Ü^
-!·%¿²ä
xåºÔ¤F±tk>¶¹i3*Ò
-
-Rx~FvÌBÞb²51²#óèÄ£pÑJå*Ywù1¸«s*ÌH¼zËøßÓ¯è_®í6÷o¦tölç¨ÿYwéE[NÙ<&Dï+¶¨5T=®É[b
zÉ&êK²Ëz.kMDÛA7fQ
x/õ@X¼
ÁÓGϬò
-ZdHRÃ#{RïrÈÝ\ø8&ÓShº¸AÏ ZÖÊ¡húÜM4ÛV±¾Nή&&¶RYñóVÂzW ×õ]Ñãó&¢9õßg2Ïä»ÑIÿJQêß?ÆÑæE·%ÖKüõ;WN; èÓ;q,ïù_=|jùÚßOÝ;ª$±¹:=ý®µPõÉÎï÷·èü»O¼µ}ëúþùÖûzN¢>`eî?lÞk§Táéy>Q>³Ñ[Z*:û~¬Ê9RkãÙi<E¹ZâNnnoVng÷Eìõi3yeù)}Ù]%öÉ~$Ñ6.R$Ú§ê
Ëd\µë5TU%ñ*{7¤To¥6ÚÓM&m(Úɤ<)¢¬ThDÌM»a+Å$Ë0ÁÍÔ¿cÛ|µÉ @oµzVi}@_Iê0¾7Náÿ©ÙÝù<o^r®)]M¤{úöá
-ÞÉy1\ÜUÜbGÖkqb1loµF$±ÃS¡
-r}:w¦Ó¨P£¸ QVþÉrOñKEXc©«ôNb_¬óÄ»ý¡À?Àðlø;äò²÷£±LpzVc?¶|VÌ×ÄB\÷¾Ù}¨.Ù·ùCþvVFÊ!þ+¥ñþ ¹¬Q_Ê~ï·;m¥p\m[+dvÔ}5¯ZYéÌ´J³>}̪öÔp=óµ²ð¦h"Ø^µ¦CLâ§P>2¼6Ó5KSÄ´¨y#c¤Í¤pÍÆ¬©¸+>m}Puýlì,Ø(Ïî¨wWXÄÊÏ~(yå¹Ý#²R¢Û ß¿«¸æúÆYû@î?;5ýë&þ
-!ß²øíçT4èòy{þéo¸îó^qeb½þù»÷M/âª<Të5Ï^¶£¼ûý§!a_ùÖõnië<ePb,rî5©1ôþ
-ñ þw2VqüVRB_&Ob9ëÆ£vɸ>ëoÆ»q߸Ü
ÇÇrî;#Åm"¿L.Ç:q¼çÕ)d$oá¹5X7
-¹¸= Ëf<ÎçÔãøß§±®ëþ¸V³\AÁýðã1ã°¼ßüë7"ÍÆã.ÂsæmiWòkZâ1Ç¥ñÉ·°n³ò9ûÅû½ûG eWò;¤Ò1ù¨rúÿµwõ±m\Gþ-IdÙ²ìØ´dgWJD}زdDZI}8e[®%;V> ¯È´0Ée¹K)*úhæpèТÀåpµqHiÜ»ÐTϱ4ÒüÑ9)wH¤Èqî#ý£HqAQßïÍ{ü°%9n¿4;³óæÍÌ÷±$D.ß\~¥"\ñbåëkª¦ª¦uÖǪÏTÿ[ͬùùFgSÕ¦ïyqóË[¼[¾íô¿¸uW»¶¿nÝcul»¸½ýÞÔ
-õÖ\ïªOï¨Øñ
-§ëw®Ùù?÷=!óÕ˺þãÂH; ò±v7xxcþI¢ý÷tuS¿
-ºsS¯ÍOÒn6¥Ü+iÛ¡|]Òk_ùI±FåI{Ùëʯ$íc÷¹ò2åì/\oHºÂóû´¤+Ù¤Ï/éµlÊ÷ªì¾÷%½=ºþÛ
Ê:¿þ×VØjKÒ.V"dz«ú¼¤=lCuNÒkØÚêIºGÝ·$íeÕHÚÇ6nèt9ÜpZÒ.}ÃßJºunü]áSÔwmjtûáMg%½
¶ðgÅã~ï$íaAÑkÀ¯õwHÚÃîó!ºüMþ¤=Lóh/ÏÿI#~¡ßGzÞ4×ó)Ñå<¿[·Iù4ôÔ6JùÝ'i謽(iä·ö5I#¿µÿ.iä·ö÷F~ëò2ÈoÝGF~·¥%üÖï4ò[ÿI#¿õ¿4òÛ%ºÇªy¤«æ Ñà76IÚÃ:'z-{ósÆØ
?ëÿ¤ÁºÆã8Ûl´
"æyLKq>Iô&ð·³ö°¦àDßÃý þFÒð§ÅOôfîËaIÃÿ)¢·r»-ÝÑuÜÏ÷%
-?[>#z;¯VMÒ¨VC|ë¤=¬±5Nt#÷³uAÒð³õûDIþIsùÿ"º¯mÕöäiÅ¿@Ãÿ¶Ñ4®¶3æüYN¯ò%Íù¯MyiûHÒWÈÅÆØ<K1M1E5ö=À!ú³XàH)
-;ÅÒ ùUß$
-8ú@
-_ÿ5µ<ÓØ(Zâ,S±Áö:Ù^üv°6Iu7qàè3
-êuúl@ÍâTí:$ûÈF4;Ä1¡ÿv¯÷ôÐVè³t§a'?"îQ/®kF.F
-B¿æ»ÐyzÅm
·ú?V"óOíôñoH³sàq?þøLià± ÿòÓ ÿMq¤ÖSÈ¢gÞ×
-MJ¯SËET7ßÓÔbR}â!¯EvD-ò¼ô'E9·4|Ñ ¥Ë
-uhRìcT¼Rd«´"¢RN¾ñ ÒÈýýiÑ×ÈkìEe6D÷ÚùÐi¢ß|!ÿ¦#)AbcSÑå3¤Kÿ3dM#¥^å3ÏcÃïçH÷LI5pYt Ûy¾¶##j/s Ó ¨ÀBwTr2i^QŶäÔåªà§< Ù+o!Jýg¥USTÌT®¡
)Hrm[«)£kÉ$¡»bVmªÒ8y·|MäWd»0Þ }E|%9'½Õeü£´Vjræc#ÛÓÄýù3eghÞ¥dX¸ò=+£-4÷r%ªC£FåøMÊZdR4÷D5&©§Iiu
Êâ3ÿqyÃk3¿u'^ð#AwÅêunÛÇìÛÆ6&IC"»¥6
-<@g
-åµ-pj[£xbkSÝ9
õDdû.æ»#W
-1lYeÅÕS´&(#:û
-õ^s½Qj-V°£h¥hÌF·¤5·ë´´Áç¢Cýóçµ§¨´næ}Ñé mvâvèå¿!*]aC´:% 1Cs)**I2èÎfT"ã¡äka*FÈ%Vc¥ÃxÐÊãô¸|8ëQâ3+¯Mþ5ø=FÜ1V
g0cTMö2µ¦øb¦dÌ5zw»X13ù9çIj|¦`3ZXÛD=÷£ÒÕR¬ÅuTÌ_S®¶ÓÓ¤Å(¬|¶Kk|vÏʵt²° Î"_;ç
-«!gQ¨é4ÏS²W~ò%Z³x©½ÜyNÒÊ(¼IJÍËe(@£º5RbE^ZK-ç×6¾étÕa5.£mË5d%Û<ú§À)®³óKraÈSFéK¬Þ:y¢Èò¤s79×d-&KÖ¶¼]¾Ä(ÒfÉ..9a·¤Ó%u[Ü»ï)î]ôçëʺEßåÿe³ô_dÅ 5Cçúg
-ã~VwB®¨"þbV¥d}WÞ[kèN#*ÖÇ}iæòg/¾çò&F#Î{QÊjò¶¤owQ³M§Õ|và>ÌÒÙh®>?ûy}iyþ3åÒr§¸¥yÑ*X£¤sé<ÎgL¿-ÖS·Å(/µpë~«G<Å:Ø{òøóI'&áw³<i¸òoEkÃóån@㯩bÃRY'ZvKºíð^{X78píØ^÷Çïù¶öÛ¢WØÇæSÆ5´ïic3vÌJZXZ¿NYiÝ1¤GCÚîè#ÔÎi£V<Ã9¶6D¿Î½{;Úpé
-ix\;iNÏ8¶vÒ°ô¬¤M=ÞgÅcÚ£ÇÍh^õ>jÐJZöÍiê
-õviMÇÌhÚ²)§yäéAjlãRÿqÓÆÒzÌHèés5uÇAiicÚ´#mÄ43©9=5ªÐí>mì625ÒôdL3â¶17±PAÂaM§õÔÌ|)ËÐÒúæ}MD¾M;iMBõq3:cÅu»kOQS×FõL2á ½]ýVÒ1Ü·ô¼fë0bhNi1Ã6§DRºÆ6´LBOÂ}-:£§õ(3jczRCÛ<¿¤0@#jضs|@:ôg¢3)UñÁg6g:3eÅxoNÃmDT;Ïsæ¤cȤçCEÚB&u6t'&Þ!A9ØÜOª&¦2ñ8HòæÉXÆvh¨¶37J#ÁÙæVtÂLDÚ:µ:üf`H$0fêÓoA̵#BD,mÚ5Hf®Å-a vI3
-q=2ÆdÔnK3Ç`F|^ãUÚs 3Náuä³¥½(zLZÆFIQ4/g¸³(¿6eaÈÐA9¯=m ïJi²2*OÜ&ôiý+fª
-'Ú*î1ÓNÅõyn÷NsvJOÁ5Äà¢cÚ\1O¥EÚB3Ú×Þ>77JÈ
-EDû·'þ%¦í {Bçqæ]v3âàÔåøÈØÐ¡¡þÈØÐÈqmävt¨ðøè yðäàà±ÁãcUUc3k>j<Ä<'p#p(¢ËL1/d>æÉymÞÊðQ^m3Í#Q(ªQäÓ/ q}:m¼CÚ8ºÍè(kO#ôtnqWç/'3x¤ÓFÔA§Ç¢_<
Ö´A"âB?¤Õ;q nZQ%
-Øy§PÈ
P:ójÓfõxFD
é6*¤´wH;¤Ïc+Ê[×ì5±è,¹(&©Úx_=3yM *Ó´`·rvbK³û6§âfÂä³ÒçlQ¤TÄ´æ° f&ã¦=Ãí@w
-ÿªÔ¼&WFèVC¡©âàøêõåa¬{Q##HK¿Iر2ØÒƬiÌåjÉð¹2i`¸Âá-¬Q§c>0]z=µ¼Zr¹ÐAÎ{©vtg85Á&ÐÔ»»§YëéìmëØÝÑQ^~jÌÎÎÝ»qíÙÕ£õìéÞÛ½·ªb
YwÇÉÈïÚ¥{4ñ$kÈó#O]ù26)}EæÎË(U8UÜ@Ë9jù
-ûï%:V§¯s%ZK{.×~H¾Ö¢áܵ|¯e%ÜßtÿÐýºû:®æ¾è~Ùý}÷¢ûîJúÞAjõ½Õ÷FVßY}odõ½Õ÷FVßY}odõ½Õ÷FVßY}odõ½Õ÷FVßù÷ÞHágôþÏ}dyÉ£À¢-à5SúÊçj»ùiåO÷ùgX1?J5,uÝÀÝ9ö)ôÝóVù8Îm¯£¬$×?ÛY,ÿì÷q9?V>-×÷bäøÎXªcyÃÔ:K¯Ýé¡;ɧ=ÓÕºøÓ<ÍÙR]w#_Zÿ²Ò¬kg¤GõðÜïé÷ìñôzÂ<ýLóÔöDÀ+}]C»é1ùJÜìN¯×,uèsâ¼\û0oS:ù£têðÜ-ýVÏ ç(68ÿ):×ÉÛ¢x'¹$í&ûXìÊö+wfxiÿd¾¨5àª/Ì?uý ÿù¸ù@ý+[æç»-¶ïê
-_uËØÅÑâà¸=A·¹2výo¬«£ÆÅMWVuÜã>ÆÎ>¸ÙA\G
-`}¦gËõLxçÄûeï{]×Ë®{]/½àu](»àux]ëËÖKÞúÈcî>¨êÃ(û(}x
-êD¤Üý
-\ù-¹²H*:-Ð)êÂÇ?|x0Hô
-+W\[¶`ýÙà¿ìÚÌÿAÎõDÎÜýÿkư&ÂTeQ e&áK, ì~ø4ðßçßE·¨> ¿C
¹¦í@±\Í5u
-æ,¤õW§Ñ|K5®
-àþ:ª
®*;sêIàQܾ¢Ãø4ü`°Eñ~îgN4Æ04(á:õúÕûáCOèeµ;x¿ÚúPmª;L(zQ=UU^UÞ³pUiïñ.ü»ö.ò.ìö.´{Z¼÷yvzîõ.l÷nòÕøª}ë|k}>ËÇ|øÿg·òÿºÜTVÍQ_=DW»Ä4Ñ? ºa5Ùîa×ðh_¶·eøª÷æÉlOËpÖwâ3åÉqÎ;eÃZöÓÑ«JÅήièS²5Ãlx¬Ïu}óªÂÆÎ ÊyoÔekúÏ\c²õU'ñøxÿ°Fof=Î6Ïô¬9°aï¡e.gåµäÊý%tËðùk(ç½ê/nGq»Àoø{ö;ãg²ÏoÏvqâæöñáì£Ú£g®¹ü®Í×\[8?sͳèòä|ÏâÀøø0RLrØÝücAni\ië|$çº$äT×.×ÄäüÏ2äTÿ³$çQ¸ÜeS¸¬i$ÓÀI2f+¹¦L°FH56
-©ÊR&.r©l)
-
-²HQ@ÙF"ÝEz)2Q ¿,
ûù¼ûy´|?Fß 9Ú§8sÙÇúÆûxsuê
-endstream
-endobj
-
-599 0 obj
-23144
-endobj
-
-600 0 obj
-<</Type/FontDescriptor/FontName/TAAAAA+Arial-BoldItalicMT
+567 0 obj
+<</Type/FontDescriptor/FontName/NimbusRomNo9L-MediItal
/Flags 68
-/FontBBox[-559 -376 1155 1030]/ItalicAngle -30
-/Ascent 905
-/Descent -211
-/CapHeight 1030
+/FontBBox[-200 -324 1229 964]/ItalicAngle -30
+/Ascent 964
+/Descent -324
+/CapHeight 964
/StemV 80
-/FontFile2 598 0 R>>
+/FontFile 565 0 R>>
endobj
-601 0 obj
-<</Length 462/Filter/FlateDecode>>
+568 0 obj
+<</Length 875/Filter/FlateDecode>>
stream
-x]ËÚ@E÷þ^N#»_ö$y(L>ÀØ
-±l«1þ>}ëv)ÐérUq\tÛÃî0Kù-NÝ1,ê<}·é» Ná2
6ªº%ä»»¶sQ¦Úãã¶ëa<O«UQ~OÏnK|¨§M?§¢üûñ¢~lé|¼Ïó¯p
-㢪b½V}8§>ÛùK{
-¥T=úôxXÏ©ä_ÂÇcÊÈYS¥úpÛ.Äv¼bUUkµÚï×EûÿyÏÓ¹ûÙÆªSjU¹í:±®_ÁV¸±`Gv`Ï®Éïà9üÂeμ!×à7a/ý·¬ø9gñÙ3þXW¬
¦ý¦¿©Àôw;0ýk
-Îþ
-þNúпüìM#ñìwÔô¯¥þ^âôo0Mÿþ:ûcÎþÎþ
-
-ýæ`èoáièoÑßÐßnÀôo$þ37ô÷ÒþNjéïàfèßCöÇ|LöþyþÂôoc³?þSïÄóýA¾¥¿Ç»Xú{ü¥¿³¥¿¦¿å¥Í·×ûõg-Tw1,¡ì¶`Ãß=§Uòù
- ì
-
+x]ÖÍnÛ8à½BËvQXïOHY²é iÀ±Ô@#³ÈÛWGÎtø®>R4éuw¿¿Ï·õ?ÓåøoÕÓy<Mùõò6sõÏãªi«Óùx[ÊÿãËáºZÏ÷>¼¿ÞòËýøtÙnWë/ó¹×Ûô^}§Ëcþ¸ZNy:ÏÕoÝÃ|üðv½þÈ/y¼Uõj·«Nùi®ó×áú÷á%¯Ë]îOóéóíýÓ|Ëï¾¾_sÕããå_¯cãs^mëzWma·ÊãésM]óǧã÷ôڶ¸¶®c½sSòü1ç¹EÌYYÙ
+ÙçÜÖÍùíwÈæÒ#rbNÈs¼§mܳ½Gçnýþ@?Ðàôøýþ@?ÐàÎìÈôøýþ@?Ðàôøýþ@?Ðàú~¡_àú~¡_àú~¡_àú~¡_àú~¡_àú~¡_àú~¡_àú~¡_àWú~¥_áWú~¥_áWú~¥_áWú~¥_áWú~¥_áWú~¥_áWú~¥_áWú~¥_á·sõ~ßè7ø~ßè7ø~ßè7ø~ßè·R~ßè7ø~ßè7ø~ßè7ø~ß9þñwú~§ßáwú~§ßáwú~§ßáwú~§ßáwú~§ßáwú~§ßáwú~§ßátF8#ÎHg3ÂÙ¶
+lÎù+Ú²rÉæÿY,h6¥;ÑÈDt8.Pi|ñFv ¢±+íåK÷ÌèdDTôÀg¥uNmÉ-^F
+̸>-AÍÄNèÄ
²,²éuð¬´aÆ`¥ÅALt&8eÁM³<#artËF{ÇN®tÛáÞ®LvqèípvÆv¼øÎKû2¥=²æn±ö=Ûaîzf»õ1þûåOOgñôË$@;<«)bÏwW<}ynS~y.®X§G¡ô¥)Á°ÔÁõë¨3,uðîÖÙÿdØ@±ÃÿÚ«ãÛ4ÍrùPvcìÃç1ÿûKáz¹â®ò÷pר
endstream
endobj
-602 0 obj
-<</Type/Font/Subtype/TrueType/BaseFont/TAAAAA+Arial-BoldItalicMT
-/FirstChar 0
-/LastChar 55
-/Widths[750 610 277 556 333 556 610 389 722 610 333 666 556 556 277 556
-610 610 277 833 556 610 722 889 722 333 610 610 722 610 556 277
-722 610 610 556 556 333 777 277 666 722 666 556 777 500 556 610
-777 722 277 666 666 777 943 610 ]
-/FontDescriptor 600 0 R
-/ToUnicode 601 0 R
->>
+569 0 obj
+<</Type/Font/Subtype/Type1/BaseFont/NimbusRomNo9L-MediItal
+/ToUnicode 568 0 R
+/FirstChar 0 /LastChar 255
+/Widths[0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+250 389 555 500 500 833 778 333 333 333 500 570 250 333 250 278
+500 500 500 500 500 500 500 500 500 500 333 333 570 570 570 500
+832 667 667 667 722 667 667 722 778 389 500 667 611 889 722 722
+611 722 667 556 611 722 667 889 667 611 611 333 278 333 570 500
+333 500 500 444 500 444 333 500 556 278 278 500 278 778 556 500
+500 500 389 389 278 556 444 667 500 444 389 348 220 348 570 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 389 500 500 167 500 500 500 500 278 500 500 333 333 556 556
+0 500 500 500 250 0 500 350 333 500 500 500 1000 1000 0 500
+0 333 333 333 333 333 333 333 333 0 333 333 0 333 333 333
+1000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 944 0 266 0 0 0 0 611 722 944 300 0 0 0 0
+0 722 0 0 0 278 0 0 278 500 722 500 0 0 0 0
+]
+/FontDescriptor 567 0 R>>
endobj
-603 0 obj
-<</Length 604 0 R/Filter/FlateDecode/Length1 1493 /Length2 38721 /Length3 519>>
+570 0 obj
+<</Length 571 0 R/Filter/FlateDecode/Length1 1493 /Length2 38721 /Length3 519>>
stream
x·ct¥]°.ÛvVlÛÛ6Wl£cvرӱmwlÛN:fǺù¾½÷9÷ì}~ÜqÇkùΪù<UõTÍñ.
%Ua3 ½+#3"
¨3ÐØÕÊÁ^ÌØÈPu³(8¸
@@ -8937,11 +7331,11 @@
endstream
endobj
-604 0 obj
+571 0 obj
39812
endobj
-605 0 obj
+572 0 obj
<</Type/FontDescriptor/FontName/Courier10PitchBT-Roman
/Flags 5
/FontBBox[-44 -299 663 858]/ItalicAngle 0
@@ -8949,10 +7343,10 @@
/Descent -299
/CapHeight 858
/StemV 80
-/FontFile 603 0 R>>
+/FontFile 570 0 R>>
endobj
-606 0 obj
+573 0 obj
<</Length 875/Filter/FlateDecode>>
stream
x]ÖÍnÛ8à½BËvQXïOHY²é iÀ±Ô@#³ÈÛWGÎtø®>R4éuw¿¿Ï·õ?ÓåøoÕÓy<Mùõò6sõÏãªi«Óùx[ÊÿãËáºZÏ÷>¼¿ÞòËýøtÙnWë/ó¹×Ûô^}§Ëcþ¸ZNy:ÏÕoÝÃ|üðv½þÈ/y¼Uõj·«Nùi®ó×áú÷á%¯Ë]îOóéóíýÓ|Ëï¾¾_sÕããå_¯cãs^mëzWma·ÊãésM]óǧã÷ôڶ¸¶®c½sSòü1ç¹EÌYYÙ
@@ -8962,9 +7356,9 @@
endstream
endobj
-607 0 obj
+574 0 obj
<</Type/Font/Subtype/Type1/BaseFont/Courier10PitchBT-Roman
-/ToUnicode 606 0 R
+/ToUnicode 573 0 R
/FirstChar 0 /LastChar 255
/Widths[0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
@@ -8983,12 +7377,2106 @@
0 602 0 602 0 0 0 0 602 602 602 602 0 0 0 0
0 602 0 0 0 602 0 0 602 602 602 602 0 0 0 0
]
-/FontDescriptor 605 0 R>>
+/FontDescriptor 572 0 R>>
endobj
-608 0 obj
-<</Length 609 0 R/Filter/FlateDecode/Length1 1307 /Length2 99502 /Length3 521>>
+575 0 obj
+<</Length 576 0 R/Filter/FlateDecode/Length1 1321 /Length2 66915 /Length3 521>>
stream
+xºct¤Ûv*¶mÛN:v*¶m»c'ÛVÇî8«cÛ·ÿï̼sçÎ|º«Öªçyö>gÿÎÙµ«>²¹¤½+#3/@hgâæ¢fl/Ï ê`k&ãjløKpÂQP¨]mÍÿÏ
+8
+Msg =ïÕ9»þÄ]ÿ¶¨[¹DÜ,
+yÎ&pb^Î@K+W^À¿oÔªZ4ttôÿ°ððð
+01·ÚÃý·ú_ØÜâ?]
+ þ'Û4ÿqÀß1\¦æcóïpê1s0ÿÍåßËÿÚÿÁÿ;ºÿÿÒúØ?JÿÓÿ5¡¤í¿,¥þK=uÈþqð@ÓÿÝcl´õú?ºþW¥ù|GÿQûß2jÿ/Lÿq½¥9
õ?Q $ÐÓÜLèjjõ üOBÃÞÌÜÙho®ìàüç×äoËÿT·ÚØ»¸
+ÍOÖMZè?Hì
+
+öµó(2ýÛ¬ýÁ0Dvs¦ì+ÃâÏ8n¶ù®Æ3è`aToöðµ\ñU¼~)JDnTàéú6²AÜiëÍrjã°ÏO?òΰ±æ´FD@äÖ¨né-}±ùà\L¦.Pf³ ÅUñ-~úël\RÙ¡Ûi¥XiDEø¼+ÅÓÁƹ÷4¿:£.vÇÓÅHùƳlù3f Ü2f«¨híÁ1BÔ0xÒÆlµã9
+DÁWÆ}J¸ìð3Ðz¯¡ãÁ
+.òÃèãXã×43å¬tñîí+/<ýØ
+xÎÌF×ítæ°/cUI%Áܶ¢¸*açÓtûþd½Ð©úãòDiúð#c.(ÜÝ(ö¦u³õ¦å/rÞ<Õ]hã`g üÇE)ÑÉ£eÃÍáîd(]8*Ȧoa°æ Çuã¦Ñ}t_Ò®}9ºá»½$ì¿L¸ði
7h¢ÎÄwÆ»ºn@¦
Ä7ÊÈ\ÛA©Öê äH+Sª
²ñ5FDO9
+üß+Ãa«GIüo¼»ü°Øa
+áx#Êíé©¥å˱^'RåÍçO%xÖ6;Hý~vÑgg2·QM¸"r¢
+S2ï1añíæ*b£(Rà2ù:+n:c<ÁßÃJÄsðùnÚZð*Y³AíçK§
+|ØléMyYÙÜ7Fí*YïØ:ðôÓ~0:1}åÔßY1˲ç~Bypô|un+¡(·}`u.$¾,Üú)TÎÈ_Hû'÷®÷ÞpéÖ õFð¡ÌÃòW²(Êpz^\e<üÕùÔrÕÝ:n&BNÝ2®¼:¡4ãtë¹ZÞ+Ô¼yó}4©b5P/+ñ᪠8SÇ©yU¦ÞW{%)¦§nÊ×Ëh[}¾ÐøÏúÌ/`Up Ñ>*ßZ!hðÞs·ûáoÇdÓ£¹ÈQü6Âkoü×a_FâWÚª)$DéFñc:Váp¿Fµäpó1CªÑÝZ®ñæ:³FãT®Ë4ùt׺éÛßlß-?ØdÛêWjU#ü{/Uõ|4Î}M+ð'ÃÁFpÛk:ç¥c 6ðÿìQqïOQSã[¿\p53 3.Þ
D°Î
+ÆîOþc
°õCTU²ÅnRí÷ÆUÄ¢AlÎM
+¤ÇÃçy²À17Ñ
+ln
+)ñ¢ gþ
F-ÝÚyý/ÅÌOä#î¹B >ÒÉÕûüy·ÇbòWó»kÍVémJi<øq¯^>Ë~©¢gK3¹Z{Xöë«ß,óõ{C@îPµØ
+¬g qó
+%`ÀÆÈ¶éV>2Òºw ¤î²7ÁêwæÍz§uTä2GV¿oþ¨!µvg¤7°FÀUmË|¨w^,ât£
+&éíeI.=²ªÏ¿¿Q)ÛAû¡.Y^9^ý1¿÷=DÂaØZÖ]૯Í×yVÁß0¼(¸´ÞQJAǬwÕúLƳAFÔ,C3®+uFF
+D+»¯¨Ëý½ 7(û§TtÍÓ¼µX§#V^.ùþ¡yç©}ÖÜ¡2"d9Æâ¹B¡ÄEÙ|(æqxÔiôÊÄ+ï?Ë({
<òüZ¿c.]¹§hK¡¬¶¸öämO©+ÙÓk±qHí£¾»u©ÿ¼=4¯?ÊNÞY%±ÿh,[|Rϰt þ§ËòÂá=gÔÀòu¶J©7µ"ÿ tíu¿×¥Y-
+tëÁnc»¸CM" qáTws4Óg<ÈîxÓ=2¡b·ÔKCýá¥Ø26ÊA#h-$ªxÑ}@¹¿âD:'§êI}ïÅDηþ߯¤ARunCÙ~üñ÷³¶÷SiÛ§tö@G04WöØT$Î'®8¶¡zÛµþ,u÷5K°ÿÇÐõãÒîÛOÃ>¶¨
+ÓS695c÷òE2¥ú)à¤çOLªNBÑuÀÇçÇè2Tðwí¯î®2¢uÛ[ÏäBèºJ×;@ E9xëc[v&} <îóö½½ä2ÌqGV{V´
®ö»ßB 9a¼*µ¯h2"4vLó§zð©u836)6g߯Wß}³f=»\ä,kãa<
+TÝØ¡R,Q]8åìÚhðߦÈ/lo)ïÆ¤Û06´êb([XB9<£JM9lÛuNÉóòg¯¡á§D6«Úyæk¾¬n¶áMt©3!ÁUÚî®u0
+£=L¥ë§Ê½¸í¨ôo4j Q#P
ÕnÈÙC7ocT¤S ÙöñUVmçy*ª8À+Nת$ÛI©é_£u¯?èuë7kŸz¨Ö¼¯×,8c!1øùÄì¤nãÇöXEAA;¥J¢î1
+®7ªQ«hl5ªÒ1®WvôøG²¼×jw§&ÏÑ#ëEõ¬S>0;P8¦£aCåÈrc,öÞñN̾%T >Vgï+¡?¿oߢË{ Ûú+&Tðdò£qw@,[tÙ&³ØHe[÷ÀÃÉg;^lpI¸PkM²yK?XóÉnì¸yú½Ù°Ï ¦hUñEWã¶ëàaη?ã@Å}O$Oö;8PÆd&ès28÷MÚmBP¤f
ÂK¥kG)°#åà>ƺºJ8~¢^Òd§P¢§é¼õªÈ8òKÛ6N+°+ÊöÝ,2}\è6ülò=ü.Z-Ç7¸"+ï
+U;}sX7yuï¯õûg>FE*jße¨ÖçM_ûÖ±
+pÈGTªÅ':kap¹ÓÅ8é/áõ0Æy^[ì+ÙÓÒ(±SÉ:Ç$'Ø{²=é&<E¾ô|f§w$Gõ$ºMJZOÐÑîüCå̬Î'ûIµt"_6¯_D¨]Úq«ãx>?º×à{N¦b+fz©¤ÐA- z¦ ½7µåÙÕßmtw;(Óä½¢ØÏv
+ÝC¹ÐE æOÁw¹¤CêÇ·¹â Ê[F&¿ÑÎÄÌa|cyíEJÇã%Ü,á: Yí^cUn¸(HËòd§1DÒ¾[ô(¬áÖ7&*ð¤ÇYÁG{Oà#SÂÛ¢"ãjEç»-ì5¡Ü
+MF/¢Á-κ[$m5
+ÕH*5ú\¾oÿ$'8ü[±,]ÈT
ÛÑLãÿ¡\
+Rgpá6Ñxß8-Ïr{ç§/éæz/üâEm´rÌ´-Ï5i@Íʾ¬·¿Yß@yzµCç¦?
²Vv³P3m¾×8F¯ñGC(×Ĩ ´Ù£Hëæz. Zy±ïÓéò1«êT~Ø{í°·5Läa )$ þP+b~£Z¦Ýá_
+B7IѶöõÃÎìõRÜ4FR5åý¦÷QUÅCöüçço§¾¡5àBý/+Ç}óLA¶Âk<å9m(á+-@Ûñ¤£/³¡Y¢<^ÜÊ;¹¤ihFýÂß^¹$ê9©bV;S]`øWìÒ#ÜÌP¥¾ ôLᨥãb¯W@ 1ZÜé«ÝE|VqóÆÁ=Þ£ãß`lkÕîÝþv`»ÔkÝ©÷i±©¢õ¤ÝÊi@¤Qix°%»ª5l$°|C"aci诲áL[.õÓd®=ïÞÖÒ(¹$äÇ3?Ýÿ¨Ä°b+â¾ÌÕ,?$F®:9ìúfð·
+ý>§,¡«ç
+Üîsò
+hd% ¿K½ÆvA
+²X¾0v|\<óÐîu[ÞDùVسÚÂ
B±å;þ5æMÏ/aË£mwGõòÀTË{]
+l8zMÈFÓ¼ºuÌo,Õ¾ÚÈ
+C>¾P5°'¬Ùë¸Î1Ba½sfû_e Ù§
+ðqtM%}vF¤êñÏM'Øf$Ûª
+A®³Ã*g¬Ü¿Ý~À¬ÙíýD½Ê>nPPéK÷ê)×-\²*IÛg&¡XýÅͶ$7å¨ð+AWÝ$ɸAÐÛq®¶2öG®û:|xùTíI,Fàw~Äàwí4}íiÚÒ#~iͲÝöïÈ%ÁO9¢ïÁ^x.6¯²;¹Sû÷"3Ì:ÆêvàxüêÄQËÍ¢ÅÊL/%FbY.][I¯çd[*/tª8ãº(áa6ëÃä/
+8¥¼`-Púkp>C§õû9u¼)?¿üCù¹;`\¼^ÖT7WG²V¸<AòkCË_
+TêH)&5!õ£$º~A1-A몵ý¤VaG)tP6 zgµÙÍRq$ñøÐ|rcòòí/hRFJ'ý©¹O]|#×Û±ip¯ßB 9·ü 2ß6=ãÃH]Iª³»¯E3oU宽ºÚTÅµÔ OL9ÝðÛú
+M±ÌîÛ|[òQEy%ÀÄ©TàD|
+¿`¨7&®âÌ;gÀók;S(gÇѳ¢{`õ~Æø9ÿ0:â9]«¥dMDPM8ãËÐïe%oÉÌ& *ùêec×[2ôÐOG¢<©»ö]é:wöWòõ*ÿF¦àÕµ_ððíuún<ØëMìóøMñYPMgwmû|±oçò\Gq¸\èËél¥KÇ"';e?¿ZÁZtÄΨ Cí¥Ëràí¼\kî"á!ä¤è¢.ïEÛKª£hqõHõäÒ¨
mó.*Æîù^WÁ¸es3(-]ehÖ å,aÓÊõ®
^ºR×Ê5å#{Ç7Ö®±IÞz ìËWï°smybâ¼.s·ú,6qqd+¾nÚX1/"¡}q¯µD Ök}ï$Kÿ«vÑ>§þ0 GðgpÍþçS¶;Îh@ä£?dM®Yd*ú4['åo
ó×!-çÔ}ZñCfö¯ .üõSÕñP*G>ãûSÌJ
+9V·¼ÙðU½¸2¼Ú^î]ãOCôå=d«¦$8½&cgÒ~$OôéötÇ »: ÞüîXÎH £J÷Sû V*Ó;aúÇSª]Zï§íü¶3èâÏñútf$ºëÝd'ÌL«Ù»ùî«ôÎaÖñ
!¼Êuóþ|¤"×|u½yêÎÃàé±:g¤uêßÌí§]
+Ì.&U¨*_¦}|¿]ÓËg<º#7©6»®Ô½?ãÇ`Ò¸§ù«îRþ&ÑC¬ô*ó^euÓDͼ`ßA1"Ô=ܾ¿+-|l#ÍæHJN;ð£HùU_lwgÊ@ãÙv0ë1ÄCl· yÍabÄ
Nbýâ)ÆøGH^Ckë¿Mr÷ÚÜY8°ÍÎKêêPâÊSîúW%|ËódúµÀÉuS¸§YÎØW]_æö7`UÀG°úµø6Cªyb¤Å?75´zJoÒ¶Ô+)DÿH¨öø§Õ¨è1¡Õèà¶ëDBj»qý4+ÿ7>Ó«¾]ÝqX÷Ý@'ÁÕgºÍÖ{\(ËÌÖN_¯ýÁ}³P(Íð[ÎÏ(¼
8:`_[g.¤en®I,$þlV§fÜmÒR2ÝÛ)_&´i03e|;°+\)|Y6uøäH±«¡Aó³PU02ØþÎbwö]S4£è?_I!$LdÉeHÞ>ËY3|öbð/o.Ø=
+éGÍPè9³KåB3;3³
+_ªdâJõBu6Bí¿}¥Ã§sËë> ãò"Þ]Õþüý**bW$ßÒ44¯D:´=LÉÍtÌk
+3¯öl×¼ðàb×±ÈDµ\a¦Ýµ´åÏJ©(ñ Gx}Ͻ7Ôjg?J¡¢dÅÎ?'ÿfM¿
+O r®¿ºÁ@bÔ*î|å¹ü6«Ã¿ê yÁ3FÛ{ù²DÅôàq?â
ÀíZ
+NEfI
+1ûÂh;0ßdVXÚ,sùZùûóÍ}}-.á1]Sù<bJÊâYÐCY` ø6.¯¶D5.où>¤
+Ë_÷;Á2Ö%º±þi"öRIB"@Õ¸è
+yzgfHB
+¬ØK;;ìwî½ó÷f,:U¯*Ãë¤1cü§ËÞÛ§ÏSA57mêËRêÔ)b*äÛþ>ç,à*æõªNkÀZä¹³îMùí~+ñ8ßb¤v¸|¦E ^¬³A\²Ó±2ÐôÖÍlF³Ð¸`Â7âÈ]7Y1Cá£÷nèôüêõ¢åÀ~,qtRàEm)&¡~Î~s}X9±ï5#doýè#
+°ËîÖÄ% ½³{ЫEªMRm" ¦}ó·\°Ii¾µè´}W)2
ëSmåV§êDóÞ <j¯3/n7iþyeÜháx P Ôÿì&ÒlÇê£ZEÌ9HH°Ñ²>vÇÓ
+>{Ƹ
+}©¦ áøÜrâIÎÄ¥ê¸un>7lCÐÛñªu|ñìUjX[:ÊC=ÇàVH"Âw)_÷Áüe@µ~â£àå°Áf6ÅÑ0!»fWÁ8Úb(ÖeÜ¥íz ýÔçþ^^Ë
¯ßÖjçj0;ßî3²¦(éæDÙ+r^ÈHÒ.:ÃÐ\íòË(ÿ§ÄÒCµa¾ù<ÝEOhR-3Çç_ð/¨¥üòȾÆüØPXíâR2Q[ÈÂGhN}Q;«DÈ·Åu2iÕÆ9ò!öÎ]7óQì7çß4Ã0'Xd¾Iº³«*1µ£©D},ÏDºÇ(Îßä!!¼/¯fUùÇ4» TS3:´²@àòÊátà÷ÜgÄÕ.¿F59ñ\5Bá¼[[U.|[¸ç1˽֫µi%êòÍG£@aÛ ¹ðýd¾Öñß"ËÂË-óÙâdJ{diÙ{Ù`AÁq"çÇj}V¸é&´su¥ÜL",Ḭ̈%:Ò>Mw"I4¡ÔÄ¢~vÍj´&NÙÍ#¼N-º[ç]¬Q(â;,òO?Ó?CÆF°Û-`o
mî¦xÎ`®.¶¸NÂX7éÒv"· § ëdM®KxÑ¿/>ºýéT&WâØ2ʤa£kr$Bk'mi¼OÅÒ
+Ïʾ¹ôÀÓ]þIþ_£ýªÍNÓIvq.й ý
Sj)Þ¨2°F²»£7´ÐÌz×/åÇðâÆtèÅÃRqµ¹*â
+ÜôZ`ÃQĵd2øÃóõpØçÚè7ºM9ðkiÉOÞ ¸K/Q×jrO¼¦M¾íìßrû `!xB§óA÷=bu.©HûÆÁ&dø¤$ÀÞýéY§»)ÅÈÀÛbu¾gúbê8]}:7ëÝh6ߨùòÙº¶Eªçð/
+Ô\á\,ì¼1ä¨_8#mÊ?íÑ(gÙM·:ñu ãzÝA<\ï4íî³#ö~&Ï+cF¹DRaA½<òªd4?¿ÿÑÙÙNÃcH'åÜ: ;ö|Úìë' %«a K~à|ª1#ùBÒÙ+¤PfzRQ@¾âAÀÜÛm,©d÷ªW°mðûå LZâ0[k)ª](Yùò ¢N0K6%ÛûépJyYÚÎA1ðk _¼:
+êß:¤8âÓ
¬QîM
+S."=]è9M¹¢ÿÚiÀæéÁMhÂáú`E¿ha!òHܪ|¼Lu4¡ÑlaRwÉL¦MU0[#$+ÛàGî¤ëR9 'Qüyqqë|ÚÀgsW¹Myxø-ÌÀ2»&Ïë"b
+"RóI9úFÏïl#}þ
+ûöJgí73øñhLEúíÖQuAÿYc!L-ÃËAâûz@¾eeºB:LÈ´6dªmöwÏJÃ{xÛ.\¶»<Ô=²Ú»7Ø?/wK1æ}
H±eõ3ÝE«Vλá¾VeôSú$et©ØËÂZùé¾tÛvÆh
+ÿæôÙÆ>®bêh|²¦]z²ò¹æ¹¹Õ-wk#°é&KÆ ÜëûîE
`_G¯¿0Qº+L§ïÛ!Y'2Û&rQoÛmø·O£Û¹ûr&¶1äÛÆ¾¹ÀõDǰXIw}HóßHf?a* @PL'CÓg`¨dnÛ5úfX¯nM°ñÂT{ï
+jZÎ{sTépò&ð¨#ó%2ïÉ·lËT\lÃT°åkjÎèxÎUú5Ì_ÂUª>ÿöxkÝÑêã®É}5f*ùs$w´ÏµGNÖ
ã)q^?ÀÑôZuZ<©aH¹-ÈeÈ0>²
+_
é:hiQf
à&<@C@©YV¢Þýîû§ÁL¶"ÜMÙ¼Ù;zÈdj¤##7ZÔ¢vÀNY4Æ:åT l´w|-§"e[Ð×¥A`ºçRbS;ß q3ÏðÕ3R·®.aæý^
+)û)öÕDzàæ|ïPvµÅ¯Üì:'ßJG_¨ôo¸ÝùÂ[
ÀÆ_2>jÏOáw´S¥G0Ìw>z±ôd{E²p*s?êq+ª±+R½c¶~Üp"VxÏUL±¦Ä[½ÇT¾öÉNY£
+¦46Gp%oø
+1O¤ö{TzW·;·míìyé]X5±?ÍH#$y
+ïP^=)èSt>"sRR¥;1TAÝ¿bU&?OøÅµ*zä\Ûß`æÞ_r®Êm<zÝ7´LwªÉì=i2
+çLT_§&ÛòŵÞ7Wý66®UA°ê.ûüöüu. ~.T*]mH3GóSLçÛ:L'ÙÇò!Q~9ñ
JU&zó4®
+ó¾d¹ì
+ë*ÐL¼F¿Ù®áÓcGõÌki±z-¬¹\½ÿÄhv&Éâ5Jv:+?ÎIð²õ,>-]#bAy`â+µ
+h£5¤µÝÜVixR¦³[â¨æ2©d
+ìÄËHô=ðÚvNõ?JÓ9Ìð{˳®zGªÖPZríôd~{ÚÕxÖ2j¿mÝÓ í¿B"¡ðÓø+>Ø¿Ôy¦¼¤¡ùà7³kß¡[Ò<ûlû¯qävÇ'¹Qã!ùßyª08°ËåöpB%z«4aºná9'ä
p/@ñÛç(VüÔJ Ípïr»¤%-òÅyìåAWÕÛÐÍòµÌÔî§¥BÌŶ§¯×>c~öÓ$q\
ÔJ22bUCojjÀ(Ì(¯jÎ\Åè£ü¥æV_æ\©?¹Aµi@ØfµÓÇÎz÷U[]$7#DÇïdýqéK
+Êí-ÈõøQà|Úêj}ÉOí!Yõ¬ïaßQx^«%·z¯aË÷xU¢¾ù$§OõÎ|pvíöoBéò_U[³ñq{f·íèqN#þÁsårí[æa2\EÝ,w~Õbb¡|¼rqÿ"ðÙ¬#
+£©Vÿ~LÐL̵ø;}f©Á@»¿^ö]aGà\
+xÿ%²ºbl!yN]õh¥bʯúkW;ºê4iSÃ@TJªé1dó8ÕO©¾¶n¾×%¢keL©Udgaм.':ü±fB?·`µúµ8P¼©y_©²ÍËxfMJZïO8Y§!?¾XçÐÝq¿¿6éÙê° ñEÂ2"ò»ødÅb.õÄÄ©ô0dapÀUïtdV>/XÞÆ_gý
+tñÇÚÆW6½£h]Sgê³ l¸fýñ°NC:çÏI &PÖzW<Íy 5D1P½éÔy3zW´7Üj·2ØÒqÅÉ-@èÝ4@¤27T7
+Ó ÍTF¹w8ÃéT¸aiÁìÅÍjÆ0&i¼÷.ÔRÖæÜçä³`¥W5QªÂ³C³$cç8·)0æfS×QqEZ
+Ûé-[:,{ÞW^>¨ñÐËøYòívùO&Û[÷Õ¶\qcÊ÷|ÌØ -´
+üÇnæ
+Ä££ø9÷Ö"¯S߬ÉlÓ
0~[QÌ_ Öê$+ Zr)½j=ÆÕ(ÙÙm#tãµI÷úc:µøùGËC ¹±ºEä©'óI8ùýn£
+ïÊPØÞ·9µ
ú4Ò¶ÐÃs>EM
+µ
í*'¯Ë,J^÷ÎO)¾èë¨
+(ÞC=W .>èZ ¿ÐI:ádzs{h·H£fÜÐJ[·ðy7ñbôLýÖf±
I&Éíi*Ìaé=÷4%M#±%'ÌܲÍ&RÍÄ·MÒþ 2þ²<
&ò©Ðêö öÃXbqåYhý$¯ºYÉÙ«x¨I¶âOδSöaVGÅcÆ/âe¥dcef¤-TD¡T7;)"Ï<«þÖ%I¡
+ù×l±ÀZ¯ÑÏ
+ ä eÙ[?hjèøÐÇK; ÏßÓþXÚà yÎæÊ=¶èÕUwÝ7À£$ÐÀ*öÃÁD×bZ®Ló¾¬B]"Ôùp=F¹B'©BEݳ֮Ðö¸z¯$zä¼y,
+®p·%âø,íN³)zzìmE8ÇÊdàAÀa®Wë Q¬¼z(á«¡ñúR÷&ß³èà·Û¯eçÁ
+a Ç'Íô@R|²Ï0N×:.`özCAå¢ +ñuNávÖÐ(ý¤ÃtvN,¾$ÉÒÜc«tz02óôuâ*ØÕ
+å¥bürÕ{3ù6bqÂQ×`ðº|¤Þ½Wq+NLÅÄìÙK"¼æ9áh?Á¦4ÝÅ^¯¸yN~[رÜl`)A½°¾ãÇò`¡àÛýJdi:fè'gR%ªô¹yp®&¬:JTL×ÁÁlÕµÄ @{SDlî×ShA¶Àlà«êí T-î;ßâ=©J)4¸W¦¯F`÷ߨ®`Ì®¶ùÑ;ËóAU¶=Ée¬p6ãÉÛ뮦*Ij3&·ît¯ï´p-~D±d[&=Õk#^7îÌüdJ·#
g0YÔBÄóFÚÑ'MI&µj\Âô%Äò]O¢·Ä~èíNx7a3©³éõdÙåíxág6ßì²®ï<8dWN¿i~&Q
+yûSÚÆBýÀ2Qª«HÁîÑt'#ìHP½)ê5ä4jæ?dïÛ49âê½\ûXqów'¥Í#öûqJµ©ã(¨ä
+)pæ9(t
+ÁUÆä]!è¬ÆÆÄæ^nįÑefÕg}E'lßóï¯/}Á`
+Óðï¾Ëuég4î[§1ø§ÿ
+j{ÎpîzÒ¯©T§´Pù}~5ëÇXÙÍoK]Uº°1¼5O?!Òæ8ì\Ë¥Lßþ
+ôϺfǺ
+T[
+`¾.B5dHô5äÞ·¦Ç;$YÛç>Ê}gwñ$öÍ8-ôlÖ¸Róé¸x[59.eÑK
+U¿+/é;{,[¨zNÅPCçhÂR
+ä§G/eÌ«ó´6p²Ð¼ªS¹èkæ¥Äê#zU,$³ùð=êúóàµñG:Í«¾|UtJÀh2|?xð®§CNaÞÛ¤ÐéU(w6ÂÛùgK,ÏÓüém:=%÷uÅÂ}¦pyòî¨Övú(
lfïFéÔ%ò¡êv³
+VºQKCA5¸½h!bjwr
+ç¶ä'ù`äÓ@m8üóÞÎX~+¬¤o9¬?eï\8xÖ¡î)ù2[Z|ÛãdvZÌz;ÒÔ
Æ;Gì5Æ£ç!ñÑ@Ú?ÐZ~{fqÒJÝ'58å=·÷JÝØÂ4B$A¿,(ª|Ûå¥R½Á#/.qjnE·C/ $·"°F}[5OE8-?z6B&iD{ÓsªS¶§tÁs#%R¨Üï°õÞO¿àùjì_4ÁÕßÁNßUÝ|¾[µzÊbÀå¤6îÅqësÆ,ûÉñ6o]ú¿¡n®#jN¸\¯©À#¿·µz0óI%{ãóg&ot¢èÂCtµ#W]q!·eÓêî¼
+o>\2)Ôe_ÑB!®po]_<PRuÓËQÇÔd(=á/ü¶?ùo7¹põ(B=rcÌÈÂPôKÁVÜmQ¾!ð¿Jµ[kä=^*(7øàz"hë
+¶F@zCHîúwVéFþëâÈÔ¡1d¥LN»G|ì°`±¼[ÌI'xµ!çÇ)d0Ƚì8#ÏzO0_,<Âb\N«jÏ.Gûð´ÝiÐqddÇáõrXu uâ~"Û?ÅÁéî¹
6í OzÞg·
+-tÈKóBð¹iÜÛn}xúñ*aÂ×2NÅÿ·swÇq3úÚØÝÐPÕ¾XÉ(ËhJµÓ[
+ ævaôS÷4Þ6¨à²ò7âãC^ Ò¥¥çmÝ#sZøÖ 7¿^úáõpóa#iá5<9³·ÜÌb _Hºz³ÝrùEÇ ´Ú1·!.À#6[Gë§ëµºËo"v)Õ»ðþ²¡ñÄÐßæÔÍ7²;ßßÑm,u&&oÙ0û¶'EÜcAr`@·ÁªªBSKßáÁä¥ï¦£LoúFvDÄc¿ì¯!»(Wõ1áw¨A.§¸ÒÛKÄ/£¬pê·G
N®/ù<`5?IÈóÉuúkïÁV}0Þ´¶×ÞCMçSòɯd,?QøÀhݬÖèö~±8tù"}!èiµ4ðÍ,ɰ²wæ÷×Þð¢µË$¥AzØ3ûë«Y«
+°ÅÍ^øÏ_£0hz&LËÒTA°¨ZiËÃü¤Hîlë1;yìô7L×ß]ÊvK,qìÛúxi<Ò3:,oF½>Çðì±âµ=ønèÝE_<½ÉK¡k3ÿ-ªä.þÁ"2®WãøÃíÉ|¨ùçκTøæÜØ
+7çbjÀÒàÍK$}Gßz8ödË{¡],û§ýÏÔTê7«¯à½w/>*Ñs¾Ò¶(êþbI©õ
+i²Ð-ä¬Înò>¸$WÑkÏL_ÑÈH?i;ùÒàÏ
+^O/5¶_ZøS8$ U÷?²(hÐû/XO>üð)LÅ3Vdb¾§Ppµð-ïæ¨ÎZ¥!CÉC¼n PéQÂõ[@Ù'ä>2j̾Pd*vúðòp×2T+ͺ
+ÝdÖ2ü·Ê.ü}hÀø¯^Û,Ìós¹5o²¯ hmEÄybÝZr«rÕR"
+Q´ÌåFss]NÓ>oà *Ò,9½r<mkÞô<+Q'
+´m
+mªXÔ, %Î CÔ0ý;~v.<æ#¥Î¦ðhúÈù½ÆY.÷¤HÊÑåxÉÂÞ{P4Ò4çl¨ ôàÍPøïö8nº`OZ+ZÚr-áD¡b¼{ø½WïËhiÖ×îWÕA|oÒ¼²¡êÓCm&1=.ýYè81´k1ë`gWÜVÍMóƪûDUN·Ì÷ÝñÅD$åQîVÅ®áäg^%'É56°ÜvϨB9IrQZ210³âMUùûÄ©#É)5¡Ï+?DWËÉoß2Ì'ôæ@(»Î¤ qôëj5ÁöÖ¥ªêUÍÝ+yÜ0ó!.ÿØq¬8áPP§6¯çOBÂóïög1só~
+é¹¹VrVú6õ
+~PÅ+MR`f,oy÷óËðã,3uau{ªô¤FÉ ª A+dåö<çB2£al}aküsN;Ñ×Ò!röI7øÖ92Dk^Ôx9
+I¦Ôh¡õÊzõ{îOõëÎ0ãÔÆÅdÚÿ@ë¿z5ÀÖb_`µ: ªæÓÒ#ú²:ÝÖÿ9[A9S3Õ~eÅͽ~m'©½;&pÃ"btÖs¨ÿYji{-ëÑaIu¤¨x¸ß«zu0 ÇÉ!òîBì_Þ%Ý}}Tå§ÞQùÌ£¬êÊ1Ý>
+.°1£WØåPü:ÖÏX84wÐUE°JTÿR;Ùú9~iMSé3óM%IÉcìÀ-;qAçÏ¢Z pª:
ì¨X/¾?ãS#C²jAZç)p¶ñ½¶
+^å÷Bø8]bPÏÍ<`Ù!UNSDÄjÆÉª²«ÀI¿suÖaÕA
+q
+àkALòYj#Kà8løÚ¶^\л#?Í[b+Ö¸üN`
+ í®æxäqã4øÍQòªEl1¼Õn`ñ/t
RJ0@ú`/eÿcb\)`ÝÃqØ]"óXRñc)`µÁZN´±ç|UHزÉé˸0¶úûMÊØ
+8%{o)r^å{llÊtà ©|Y³B"À©Ý r}ñnÜßûÐÆ.9Nüm(äF#1ÚJäÃ[Ô¶uYõ:Z)Ìe »ôËîty=¿ßv¤¡`#^ànã»ËÖTi$ÆO8uN7vc½
+àVde|OfÂk1d¾§lEXí-íY½{[ù0vú \Ý0_UxÄeJ¢qîÀº§n©ð¦ªYÕy,Á¶ò6Cä©ÉÞÌç''8EVƽÞdÂ1§FIYU¯¹¨PæÕnò/[øÊ0¾JIí-6ç£ßWÝëOùÏè°ö½i¿/CËÓý»ýÀçÅËQÎ(ôðônMS³;$a_JKÈ
+¿ê
+¬@±§ßÜô¥H¦u¨a´ç.þÃù«ÒsÖFÓg<A+¤h±á(²VÞçgyÌf=´3A$äBÄn¥Ô"˶ö7ß<f<@fJF~&Cí*u
+.QWû_¯Z)@ð+OkQJLeªÚñ>MPæÅÒy¦Å¬°ÇÖRãè¼üoµ(oÉhÙ!¦/ê`õ*øo^+5ÒW!_y»tL¤Ï:ÖøïÂÒ8é®8«»6ôç¢ßñx¬Ü-!mê°·õÓi÷$µKTe}ÛT9,üVöÄëOÝæý¹Tþ_%}
å{XÖj(£Re÷|"(_zÆ(Vë_'¤°,6`l°áqÃXKSzI+ÑE#¡5
+nðǸOM7Ô[¶I}QmÁÙD'ôm6+Ö¢íÔ¯¬tàÓÊcÐ" #fBçnì9ßãmô©TÕùIÓÁ°/pEi7K
+M¶jRÿ©Åù1äYxà Ï@²®ÍõäçdaÖ>Ñ~ïýã.|ÿ:pªs,p«Uùzôa CÂ]°4-§©¡ÓÚF¬½}`LÂÓº~yp|Vs)W¬5à`
+S#Ð{×
+=Î$$ê(d
+¯«»ge(§)
+Q¯LÍ©0/é{=WÆ: ±wï(ÇDJ³E¾õÝ,@±nÔٲÀ,K'xdÅ
×HÙBÒº^_åbêä9¹=Põ ÿb7¬%sTK¼DÊÈbèc,7Ìf0÷¶Ew©LH¾3Å÷lÐäHÏ÷Dôt3£4r¶z£®Þ¹ð¿7Â^È9d¦CX¢[!²5ÜÃï7+*³qGÁoÞ7î{þhKIÕ5ò{¥Ø#ä½9=GÅ?9âùÌa5îu
+$wªï`_"ÓÅS^Ï ,uýÕT$´¤°É\쪽L@mEOvús3
+¼¤Û:(ÕU>QFX<¼ÒAÿ;ØùVà'jëA4§jåeñ*4¸9c
+cÊ¿y»Lô$ÿz¼ÐhÎao´ÎbîHkw}å8
Yv¼y7+è!·PFBÜñì´¥ïß¾ÜGÕzwRìÿÔÝ./;JÐAõä÷Í-¦ ÷iàÝq îµZ¯Ù½MBÂñxz}9XWâîÀ+ðã*e´Ð.BÄügqÂÑõÆ77_3-£õä¦
ý`ڢͰÐKdáBbêt#>þ¥j˧ܼØôÖèB¾ùö,ðÜ
+
NBÊlo©ôI»Êõ"Iýµ)ÊlÁÕ°ærmDÑvG¦x°ê¿«Óüÿ5!°JFº;Ø#Mã¶ô>É·Fâ9GðµNÂ9nI |éÍ®wòhª¢V·,\ÝÍzÕÜA¤pûóºYN¥*À~ÚIßË
+N£;×Ò"=:tEó²ùÓõ¬%Ä*9ÔäÄÉ¿ÔA <DøË¸ëS×jnS[=FøyO%[-*¨SrÖ¡ÉDÙç¡*8¨ÚÖ;$LýîéfTx»éeÊd©å ÛÄxADvJ¥FXF¤Ôd©wñMÃéñ¦ïým9mýØÂekqLê8Ùô,KkÕLeÒu,ä=:&là/f8L?䨶IîibÃíQïþqàܰ>A'Kß~æ9Òå#¾OÈ`ç<õéÖé¯Iò»±î4X¸ê
+ÿ
+8aTù'êD¼<Ep£½¶ah1^¹
+³9jÉ=Ö@±:À´ÏyÁè:I¬WÓKu)cº_ÒSYÃód|KÑÔÛ.¯ÔF"Rëm
+ÚØ3=½Q9/1 %$GtBª%ÔPÍ®Ìÿ}L4
+©ÞÃp¢ÂU¬ÇÉSÚ=ü[EÛ¡y#øMÝÐQéNh£WJ~¿*oÔvæã?K$YÌ@(KÑ47O ôg¤|uÉ×ù~FºÚ¨ç/7w&Ð ¿RðèfQÃ*¶¹
+Ø?1
+x"sÇfç"ÌÃb}ɲïÇ×kºbQgEUõ1Þ1Befav
+aUå =»÷í%@¯µ³B½áezèjkp{Efá¬ÍòøCÉ(FÇêÊåZ¦oàr7Pg]×{lL6x ðg`~w¤XõÔL>ÃMÖn]Ùñû¸}ì0ÉåÎÌÕÄæ~÷M¨¶þiãÛmòÆ©;È<êw'Cã<é!JëÕíîN³ÅÃôÀCöTÖJðr96mDzaÏRÔït7+×IÍ<Å(Ú¸b§Ç7ÕW
+ÆI at PÖ
+¦4(ec¸>é§£LÊÛ"UÂízs²Ðl/ë/ÝHC
I¡oe¸üN-6ܨyÆ[%T:²Ò÷fD(X¦i¦½Ýä×ßFSómGAüà¨(ù«kjFç×ê¦88üÞ^¼
+jÝÁ~<ú3u{Ü6>ÁqÏ5È
+P°ÅÙ¡°®¼ 2ðÍÈ6Çþ±_²GÖ¥z£¬=:{ò:y¬¤ÇDuâê9Y,8Ý4ëh«¸Ù}GþúPI¼[Ít£ó=ÄëTU<ÕÅû<ÏÂI6?@
+[Ý
CcûçUhÇÃ#tÅ2l¥ÂÉóÿ±+½wÃàPl»Ø·zBQÒQÐ¥¦PÚ ¢©åeÅ!»ïýüá
+ò¼¨ÖýǬ\äìAÀºÕ%pÙ½Fê} ðö.õ"pLÿý²O&2<ÜI
+Q<¥ûÉò QCÊËàÐæRà4ø^1Ür=·@·¶%$;½_'`²DO\'2û-u~¹)²<M3¨]GàniÃ
+É?~#OìÚC÷C̪
+FÛê
+;nSÿÎÿsWwúð¦ûB6Ä,ÒWJ À,äȲù^=}üF*ý©#ÒÚ¿GyL%Ö1q¸*pxª9¦{QØÀ&üX/í©í¦HâýR!c¤ßÊ)k"ê|EïÀÖYkNØ«ûGè ÒÂVº¼GAç)A^Üüåå¬ç¬¸V}ÿå
+ _×mÓé¢ Ø.©÷JRBFèdtRû¦ÂÇÊHªØÉ¶ÏÒKaÉR8µNPTRÂy«!Ó5óDú=xÕt>)´«õ$¥0\S±fFÚÍo¸»¦t}Áã#̤´91#'´3ìÎm§1¼9Z"}ê7Sâ5'h´êÓ~]ѯػÑÍ}T
+\cc-´o6;?lÀâ§n¿f·T¶rÝ3xä°Dh2KÄçÉ£-³5çC}ÿ;:U&é:köZü~T$µ0|Ƹ¸yS»3[¬Ò;
+WuÏpÊ-AZÊ
+Ò¥#ãäw7[Ñ1iøù®G¹ÊÂè'¶
+éSþgs¢t¬1wtÜ ¥¶ÚËU-1¼áÑfãÒþÖrGÉæwyjäJßÏå£5*Güæ@=02ØÔø0¼L/øi=J²üOJ>v]*r"%sMKÆàÝg~·î=ÎÔgJqàEq?:þíÎø{G¥6¸nÜèUé(ù äËèF³þ1ó1-&TÎÆ½cõ?÷ݵÚ{PQ.Õw_aGÌyÔÄ*ieØ uzJ&>x!¶7¿ÑlL´+±D|Íó¤\Õ¿Ãß-§S
+m»Ê®¥ô{7ì ºòMim&TG°É?dTYÌíá¸náÎ̽TGGR{ÌÝìEÎ`H(Zºõzíâ-)ãÈr<JW£¦rîÇVÔ- ó5'ýn¦Ñõy µ0|&Þ´F[.©±ÚÓñJ¾3éU»÷Y
HInÝÔT,§6èwMqs«6PDµîèÖµO2ïùçQ6¸ª>$^V}JH
+_¥è-[& ;Aø[ÎV37l©M·Ë=Eùt¢[LZ¹
{7å÷®Ú_ku?¨§,¦#ð/IÆbrP¥HõZá\SHSýz¨úXÔþ{íøpCSÛã,x(¸5ø (IÉ#(¨¥]gÛ=Biµ£^$uúåßh^ò½Ï̸»â)«*þᬯøfø8r§À5ßr
+Blõ
+á]3|¦) @ßä»Îç®×<üIhî-+Àvöh"XÌ\QèvIÐY6)¤½aêi(?a8æ"fy,Îw" P
+Ãsp'-÷({£ÁÆðl¿sÌ,Ñí=RСH©s c^Ù(§JÏòîrÁÝ[?²øa;N~ôpåA¿ÈQæ8§3Ò
+LZÜn~ ÀýNÇã¢tì/È,oE¸Ú×Ú@µì´m±T|!̺¹¿ÄxÆAçÓE1ð"¥®EU at dº¨Îu¼înñï¸ñ ÀûþäÿnmøXwÇuñvMROÑgºrøëb<zK³Zø³lHµ7bù:å ÌW²B/ ¾aTÿ^«Õ]`´?Æ{j¼Ué#Wûø!Tý>#C®¨¬D¢xófª¨ÿMY2äÀ±cEØã7."EçØQ
lK'O8±2æ
+qä
$_OGxP¬u¥
+mæ Û¢Vµþ]Ðíл˸ñ¤Ûþ^æ_õê:ðÊݾ¬ M
ÌdüOêZ|ìÿDbSå8>ö{ä$âÁÈÍ(w@Àä=èß7)®]¥5> sÃòɬbÜXâÚVdëû^ýj¢«üScµW
+Ãê??ýDúÈ@¡å`¿3¯JlÐùDÔþÈ-j:«ZY|¿áYÚçR©@¢&ä/* ]=ºíGEl²¡pqQlãñMi8
+ÒNpò:é²<ÄD?ùöÍfÿzGLÖZ'ÕÜFãíPt\ê²Ë îJ|2²»x¼$K-&WÖ)±ÕÖ
+Ä´F÷ÒÞÖm°Ä[H`_Ó2Kë`gÈC Qù3ÑèJMZ)ÁCNC×e
+¼½y®£²M³Q3Öò4´z]ÈÌ[æÀq~èïÜËÊ£§*£çuY
+Öaü·Yâq,:ªê
+Çn¹YNÛQw8yb(ì%U%äT̳ Ïbí,ÿÚkÌHÑÚâ6*æÀ!M½qt'Ûu8ébXZJwvÂh_îNûù¼;'ûbl@å«§Nój>íFqÕ}FµäººÓâQ¾ûØÿeÜÚY
,ÚbNwÈûàöøã·ä9ûÂòÀ?»Ï¿Ü
+Ãaù÷år¸è$¢,p{§Fî@¡0ªßÛùþ®Jà¡uýTÌziÐËÆf ñ¾vÙLT ¹î
÷Ìڤ ÖJ¨l^ÔÈÞv* ¡¼©¿ví¦¸¡ÉNü·¸C
+ÖBp°ÎU!öÁ4ê
+-ÑÎ^þÃeqÈëKëi±Äd¶½¶ÍÀØÃÌË*@DÓR
+ § Ù)eM[¸ævS5ÅËÉ×iMî'®ÂÕjè0~yhb$2üÖòç0©Ë; ¢ã§NPs,´Pxp½»
+¡L«c!:¶
+Úo«^bßÝtg
E±°ðióö¼4¹9¡nö^·ßPaVÙÂK?xPÑHÚsë-:hw¯Âç
+ú©>7kâXÿNÐt¹ÌäS4ÝÑ
+¥-w2ÛdI»±^z£<DöFÅdåEõ%"
+쯳2ýM»q¯dÂ'µ+R|jbg1³ÆººBXFtÏ
+Ôò¯$ªÄ6ÇêÛ)ä_çF© óÜKY¼è´6gà¬ÚGèÙe¬°3|ÝrY#QºwQºHÛÔWÈ5D8e³2-ó4_NÆØÍhɽuCQêI;eg²B,ã,`u¤ð1òâçÐÂ>¶ÄÙ³3FÔ'îwG-B±Ts K¹½ÎاB¿í¶»P6mîâOíù¥ö%y>öðµ=þ(¾gçK¢«
+Ût{XRe«§(ÞH*4
+¦+¦Áq&ËôD$ìÜEttÖU$g¬B±#¼Û>¿`û!<áì'¡!kɬsì.á¼4aüÔB{Y:¦ü¬î8¿gÎãpÈñ?=Ï«¾
+ÍÛtF¿êjr
£TzAË2ZÆNhæDR<È
+ì Ì
+$3VZßA½zu%tiXæ ùtÊVCu
&?õg<¼î%»ª9ÈÿçHNÓÔ¹d'ðH;bU¨_C±ñÐhÿsý7àÅ4±ýÅ»ª²Aù+Tp6_î#IÛZÑÑsµâç=k=&58Í©¹óNxÿðÛtú°(Öb
+¾¾¿
+Ã;Û£L²"-)ÒBAFö±ìf5Öè¤JÛÀïÎif䶨ALì:ð<ÜSJéÔuÛ¼¨x{)Óµ/½#ÓLkU¿4ÁÇt-²1-®ªÌª+8XüÓ³£0ù}L@ÐæFm&¬URóÕ²ÚÜ(±;vqôÈ®ôÉBåXÒîÎhçõVfÁa7<;ÝTÖeSH`f¨£þùÔ¡¥5PÆùûÐ$KðÛj..cøx j´º¸{ã?Ê(_jÎݼwÒ£lÀ1ùÇÜFêH_cü$V ìG¢¤¼:ãÐ{9áië5~®oZGA1WZ¾K´ü׬ÃöQb´¨~Ø|»,U¦ÁFáéTµ½ï*Õ/^¹@6äIíîañr¤î©·x»_Pìa&ÂÒ½8
+{dé Þ.<Dú¾¾°DL>¦úËàDgNÐTâåìþmA¥ÆÅ!¤
+ÕjGéIÇür ܯÍÊ9ÅPNǵf@)mÛ®©rjÇù?æÕ±Ö¨Ù«ßº6b;àï8
+æ+ùB¥ÀzlLE×AÁËü+õ Û*!+u¨ÝãWÐ{ç£-7¸ë R>aÛZ"6f§ÈSeøÃ6ÿi*F<2~$·ê³]O¸ÈËç!á½FKçì»G¼JJÐUs%Zâ£Ë"Æ-øÆBM¡hO<8\¾Ãáp;jÒCní»PAýuåÎ E%Pý!Âd`cÇÂúoJ«Ì9ÂÄ G aDZÏZqzø>¼Ï2Æê×ö<üЧÜ8QÌiÄ>¦ôH¾N0IÞz=ïô¹ñÑA|ªò àvæAÐ#ü?âtøE5ÍÄRÍRä$+U-àÙZÿbèônûïÑëmÃ[nû°/ûMz,ß
+Øºç¯øä®;S/N$ôsõR©ÙÕ»à 5nÚjÒtøK³óJ9¡¤¯çêHmÙR¨ð³Ү1úÏþÿá+®_YN*k§ÌDþöªì3ÈJ;AdUD×÷¶2ÄlÚµLí{5Êö>+·²¸y=ÔX×i<|N[½b~Ë (qÁ'(³¦åÙÈ!DNmoþöaÅðP¯º.WyN¿g¯ÿig?|é(]ᆵq>§¶óDó üª¸èM$Ò¶ô»E¤
+zÎÝuQ«ÎÞçÞFñ±|^²ëÙºÑw;óC¢¬ïI
+õ·Ç¸ýÄÁB&ð.´ ë8íæéG°Õ ÃhsëdçJ¥,Q¤fWà9!1Å|Â\iLC¿³_ 'BÛ¢x®>D251oMt"i·*½ró2 tÅÙiE6®JÊÙê¤k:¬Ðà]DÄR
+h>
+fµÕvn¦þH)^¨NDú°)µP¥gÚà4Ö¡kAß§H{aÏ ÄCð`þöÑT_ùém²AÕ0ÿê¤Ñë8þ¹áÜÅ@¾¸(£3`Æ+ ÆÇz=D¸³tªÜ`c÷~ú
D÷ºÑ:M#,-×¶;¢¢Yïè, "bRÒÚÀèüÎ2¸5Ù¤-÷Ægm¦´J
+mÊØÕï»Ù×Jgö®D6ó!³ Ò¥(°K&8ÁÚx«
ÃX}q^
+|Òÿeé)åù./-þæ>Üýâ;ôÉy¿ikuä©´~-¶Fð¸T%$åáð@a-F÷¼P8KÞ§N¾e"TÊîv ±\Ó2Õþº1hæsÓ<óä+ÀZí5õ«°X"5[Àgûð_4"ºÕ¾ÎrøZ¥q¹É´³h,1Ïc
+Ë|Ã2Ó¶©¬ÏjZØÌ¹!3eöKø6½1õµÍ+)«Üó×ûMWðîd3Õf®×L6ãgÐMXb²?KôbTãóðkòÞOû¢ýÚ¼(c%_zÌæ±»}.V~#:ø0íÈdzVÏsté[ÎÒPì¡ãÝÄûÊbÛ r/R
+ßHvÓØMÊ:Éösy¹Õ ±Ióè*VÂÛÒAÚÎûCWcá ˧KÖj _<î5úfþÛ¦m<Æ#Õ
+ºm¶%¾R¹H%Ã¥ùPVä)!£mÄè¡'Á©åUS4(&UyX÷<,å
¬Ex¤k@´þ*êögl~#Á;ÍDã9 î#cmøñ¹µSy9
Ñ
+éçOGÒf{¸eê+<8Înq²¤Ä:MÔÍV¶Ûİ7oÿܪa*T£WVÇF̯;káeªl´¤ÁV"t¨]¡s8Ob
+|¶eI7¹FP>µååT²kä~,Ƚ~¡Ôýë¤,áû´V\
=½tVóú¸ª+;é¥=*H϶]ÍL¸EûM1KjËIN?+÷αô¡o8´v¡KN`-ÛãæºÞ|B÷|F"eð&z^._N¯þÁ9ªì}Ly;Ú»Æß.èYÎ(7/ZÛ>0ý1FIöâú!DzNÛz2¦r&ö /#:}ò¥
Gg¶ºº:ØvüÈþòíIIè¸'Áb N˰é*gµl
kpÑO7à±½]äÛßõ
+ÁƲØN²-³bâì¬mS77³õÏ)xö3>ο
A£óCë×eûøSt1$â·7¸
+
unÃôBK$1^bá*ukUV[$áS^À¦ýÀK¶fì~6k©eé±é\íëÊ#Ú0TC
=æÞèÆ[R~4´ï<ÿü Fjõä¯0ËD
+,-Î!¤ïÁYÔ¡íAÿCO¹¯þÑ£/áÜKÓfáÍæ¸9R7mÊÈrQ²NMÅËÀ©øß'iPn88FlÖ 9ù"¹*rbAªî²/ÅÍS
'f/*Û,0@h¹RRëEyÙÇêW°¾òÛÛ,ªDì
+Ö¥Yî6&oë½Ñ)º Ab?.äKS§ÆÝ´"=v \--©"Lµ2SÓ«¸ÆbÌ;\jÁÏ/¬|(ÑF×`¶j¥ÓZ8ÇêÌeR fñ-ØÐo7IQûùËbô|û¸§mcÑ
+¦ÇÀð¯{ ÓþÕiñ¹ »KwnCÜ =ïÐ}gò
1z³±çXn'Ôð(2УöÃ`ö+Èñ×qB*ûl K!1ud+ZØÌvñóÕ>(-û°ü>hýaìy%Ø8âqúÙ¨Èú¶BØAçf:Gw:×<ÞÿÖ»ËDHs¹¶äe»RÙÝû@F)Fé"ãu²Û5Èè,¦H·Ñ5ÀDvÉä©/[ÓÛÍ?à]gZ!Ij»8U:²E#ÙV5<¶D:Ûì
+#
ó{¸¸lòùDZÝÞá¡RéI?6¢º~-Ì'i¹Ð»°5ëKdÈ÷ógFºp¬±ª:çñÖ
+0÷G¦¬ºS¡|SÊk¨ÒØë7W¯³k.Gñ
+᪨éÚi¦°l|ÛKþ¹Æ{%zWDa¬¤ß¿¸TÁËñ§".M/ÊTKnxl¨ýGbGR+UMXJ¸YüW.qºêÌ&ð-fàùR)Ú¢9Èg1 #F[G%
+«Q{HÁ×Úç _Èô¢ññNw¸H?¸Õ×Á_|¤ñT¨¯kþ¤ß~d´J>ºEè è
+"m´ÓL~
ØGêýáÛ2J~¬B::
+jþÛNа˳Xz>
+[ZDx¤óg%|P<Ç{>Þ¶
+æN}RÎñÖÞçj͵¨ ÚpõrögÁZ)¥ØïüÛFm4^¥ö@Ý'P¦oé>ÈæìABÔeâÂV»E¹Æ±«HÊøBîÓ\[âdRËÛZHpb=»tÚÑcwë}½B¶ûI^ÅUà
+
+WgJ<1kÈ.!\w.ÄcRR;H¸ÃAv6?Í9îrWOv±Ò@ÝLE©q¹SG·?¸5ämÚ8Im7çg¡Ã»úäIßj)þá!sÄÅÜ?~`ÍÅÑæ#°w¸ÈüSßÙO¥=Ùïðö+H6¹ïc;
&L]>ø\`ådLt>xK/óõLƦK³DS3,G;Õ)ª>É(´C¥çEMF#ïo¯ñ÷,\>>ÔÕoðÐÃÐ×ï/Ð×M 8;¾a[BʧÈÅ$7tµÄ+G¤;H
+¹ÉZ¯éÀ¥:pgçÂs¢cpd¯ð}%î,Í->¥¤!|ìróû»*N dda5¥ZULÖ_dGRöÅqmL{2ã´Wæ×ËÛîѬÊ?Ürh¹ ½øÞ!ÝÙ 2'ÿÀæ}Þ;"aìÊ¢;
+ïU³×Dx¨}eäÄÞët ¤jÑÚv3³¥·dûØÛ
+ at bBNà¾Wdg#ar]]Snɾ_n¿^=æËê8ð=UMѬBêI 4Þ¥(³
+DìÚé¬*êt¨¼ý«NÍá
+6ºX¤Uú`{å0îÚI3læt£âuG½'÷ÓjmÕͶ¢ôoÛ:߸Ì0±"»@6l¢ÞÉÚú«ç¬hÛ@O´«ùÊIS<ð&d=Û4÷UXGyä3EÆ5&IÃ1CHaV¥À¾Ç¶o¯ÊãùërãW0PÜ:ÁOÙ/4kãºýÆÄ-(¾Òîùvl;H :ÏË%k"iÌrÜÊÜuQ ´izL~<üºÖRÛ&¾Jq¶>*x¢üJÍ·Öôb7È3J3èÚ¨A©ÝDZ+0ô¯n'C÷Ñàägâlº§Â.ÚbÉwÞ'Gý0»{<1°!Q°öíÂökØT˰G-´i£
+üCðû÷RH
+-õÀbÈp+Ûê]üë0ód.n;/Ä!}Ì¡)ÕOmëlî¦ÅaHM_a/¼Y¶#N;ì
+J¹®ðµ Ú@éqãÓ*B.×y1O¡xÙ[Ãv×:áØ¿Sª£ëNSF]¡óåGDNG¦<Ð{ÅÆ{¤ù@9'ܪ"¶qº'ìF]!¬81óÿëpøs-©ïÓ£na6òAë©û¤ôZ'÷qì¦ÉÐç¹*ÓVÎ'2ÙmN¿
+Â#
+\ ¶@©ê?ï3Ùk×CmSawðB§«n(°Cn!>¾÷q¥üµ@2]-ÒÁÂçÇy°Adî&£siÜi@ çMN³1
+NH¡æ¾æiZN%gv~âý4XwÖ\úíÍðBÌ^«XÆdåÿ.lf·y±î>T¦g¯¼m_\¡iÎu« (¹Ú'æ1¯àã@ÑÀÀôrȼ&éWDe%ɼq _Yïbºr÷UFÆÀDeÇYWÚS/*@ØN6òsn©2^¦b¡Ðowô¹ÁúL£±è7¯°Û«_/o'w ±¿ ²-:
Ah|Ó׬Ceß^<Câ ¿ùWM¼Üóàñج£9$ï0ç¹óY#¨B¶[F«Ý¦dÌ
+yzN=Û.îé
+ó d6âZ²iÞy{Yö<²UuÃ4+á.ëj(ññÛGλZyÏÎñ>&Ï´j¤¡l黫*sN®
+M`Kà·w4|<2¦ÃdjèË4éÀpìm_l´±ÏCwPxÅfízÛÝ<ÏÒL¬Câ«M2ëÁn ´6Ö¢FVXÜ9´J°¶M+å=.QÄ.vÐî.U3öö
: DüÆúJrñ:J¢nâ¡,dÎó¡
+ªèß,©ÔÒÁ®Äs}4ÇRÜÏ&iô%òÜ4¢ýy^y¯8u(Z(õ(J
+¼Ög(O<Aï,FFÜ,ò[
+Ö1û-¥@ç}¨6Õ|1´¶¢ÙÊÅë4×¥îLÿ°--n¤³0lR³º¹7ÕØ$S1UFí¶òÒzÀcôGªX÷ñS P;ÊG-ú;· ºâwÓ(@Ìxa6£c°r~Å*/³°`ÎÄsY¥ò6þ×.Ý YE°òbLU9R£Efu£;¾¾d^é8ÆÎç]RÓvÿ¡9°Ø¾LûÔà
+R¤È¢Ø¥lÕ8î¤SÔæ÷¸7[^í[Íá,¬gL!!üÑß
+)Põ×nѾ#(væÀ,RÆ*;OO}q7z5mý©CÕ²_tòBº§Ðß<%ÊÄq$£~ö£o®¹ºCö0-UÖ'j^R°{˪µNòzß<º_Y=òìý
+v½I¦OEiwõ\¸ ån¯¢rÕíEµêɦKÍdç(\&mÝà³Í"SnehãèC7ØÉÕoíø9ø'ÿ§G|1ÉFºµ¼Òûâ÷|AÂ.w&ÞߦOBnaÙG~N£ÄWàû´qìçNJPXÊÕ³µÉ ønX¨0~S×$Lq àønÄ÷Séud@\hY¼Õ TÝ¥þídN±³
$<Gä±*ÜXéÇgÐ
+H _Õ´jÌ@¡Cþ,`?>dXäÒ,ådígµë7jà #¹¡ÿðw?
+në¥á ÇV°Õó~Gj\ª$0 @BpÀTÆØÛÍÇ{8\U[ãJ4|¯º5«$/â#ãéæaBָ׵ìþ%ÞüâÒ:óç4 Ü¥lóàÏ1¿ä÷
+ruËNa%ßGsäâÖ±»ªÊ7aÓÚ~«åK@%c?ز»ªnòj4Ï~¬4÷)ËØú¹í{Äu:ä`©IHÕ×wS0wdÐá¯cÞS±(§ÿ1I×Ô¼:uFÉ)ºxÓź¨®Ihî¾Å
+
+Hwbu±_n/û³:tbª){-WtØTËòNMÔËÚ¢UËpUcY#ç.ûëÆ<öÌPôª¦
}°xv¹%F»I´ù<4±a?)6)ØUÿÞ+pªgJ?7ÍûssË#Ï7áºLÓ`USíéçýïÛe
+eF xímIR`2rn/ÙÅV)'Å
+K2uùÈ)X÷FâåHºÛäø²îI<Î+À
*+éFµ÷°OTF<í!RéiH,P¬é°S@èssRÜR·z¨
+yÅæ÷.1ç´h+R.ÍUG&×Öí®×L6Äç@ôiÂA4Ô¢¦>eoSQäô¢
+K(7Ëe?Þêÿ$diðÁbÎMÑá|`
+ 7W
+ð˺(éi8 +JÊr 4çF,Ì&ÚkkE|áß°ÿqpc
+$bÛÉ#Dô¿ý¡:Óß*ÍØ åsNugïlÅf»JºÀãHÀùrºÐËlÝñС»¼~ÖÛs>"¨ûaÞ?G îbvë#®|×/[ïHk2D&µûÆãÍåU(]³A[hET}¸÷5Þ4 rN<;|Ã3;øÓÊÒ˲b1c¤¤áMÔ0ã:ÊõOZ+úĵiÒÊúøL
3µò¿sú¥Ô¦òeu7Kùkfþa|Ý8黯 "Oo¿YOø£8m¶hïRù:I./7ÜJøØ¸sÀÅ ÖìûZÂz5M µ®µ[£ñë½Ór.9(GVå豫NG
+Ť¨ùTvT*ë;YþO/߯&õ 0·+[{ì ¶ÐíÂÈ«</(ßHðºõº,R%
òÁ/øSÔSÍÄ;WH¾ãG{îbÅ' XÏß°½Å:±¬«äDÖZ¬--tõ6NÔ,+È#$þ®ë¡[mq<´èÛ×cXGÝÄÛ?^¬isʹïñLs¦nw_¥£z¸@åH¦qÌM%¯äÞmɳFº¯ç5MAÇsÛÁx*»ým¯Rß$§6rÁühóÔû
+ï¼±KúÆÌû f
+(f¹ZÒ«¢Æí5ÉWÍç51Ó~Ú['Ù@ò¯Ü%¦/½+ºNÞ9ÐöêÅhD¼Í°Yþ¡gúÊ0dÖÜÛ³pç¼ôÚJب@BiN{~Zt²$Ýúw®üÃ.Ï2è</ek±³º©øïë
+ùÌ
+nDYô«¸ÅånéÙî%½pío²ìn
+B3
+I¶%Øýb+$V9«Íøç6©©wºtåHyaÀkÌö>ìRݧñÿêgB
+k
ÁåÑ#P!c§%¿ ×Ðz_
+ÄÒïßÕ6ÒV¤Sí±ÓÞva©£Ré
+y`hÁ"ËpÀ½'¦ô.8Or>÷¨KðqQìÒzË1¦CJ¯eâëîäJ>pviPuA½ãö AGÀÇÇÀn§yb at x¨iD½óºJû
+
zî£@ ãåùãBýðÅ{]Ak5¨R¶V¬¦åÉ´ÁÓG)å.DËÚsæ$1ðéj%Tf+ÑaZÅA Ã,j@<æFLÝçÎ?Ò*c!-<N¶b
¦HmÆg`BõÎ0ã¥âßüËÝuo]PIËÁö¸t«cH
+góÀX®nf 7
+®¿ì
+æ©fÜOºòcã°nå6nïoÐ"ò)¢ñ¶¾Q«J»+
+ÖNiÔLÎD¹ßÏcÚÙ#&}NÅWt;6¥ÄG.á»qQ&`O\pSu-U¤ùX'ÍDÁß/\#£Ptf¨Á=±W$±|ÏXÇú<x(Ñë}Ý?¿¹ôUÖ8Ô3Q+çùÇU=«º3»ßìÍOO×t>ãØD8Ì¾ãÆ¥£¢
+î|66±$¤OÃ/wVúÌJ&ZY£²¬ØgÒËdX¢³2L`püd-4}K³Ú£ØeøhÞйQoÓ4
+¨øË <&@íÊC@ù¶×iß±zqì¥qfôBðg'nõª¨uL
(
Á£âËÌ¿¾Yï`ñç;7ýøòÓÕ
+´!Ð&Hó(¹ýýH,/àLÉm¥àDå´=&Xâ±+N÷SÔÔ#uU±Ìkð§¦ji¼Ûu W[ÇLòKHüp29\aù¢çÇ@LÍ5ãç2»ì¦AÛ´0w)ÝßO!¯f5
+r/WÊYúW»öÑÚ`#|p|C@»uC"]vâãÖjocØ|êÇWÞäÍñ¦ë l__¢¹N4
`b_QxS|¤ÎÕZ 8Àäzçqs^ØíìAàÈ350}:gZy <AEZ\-±
+ÅÏ\#ô²ÓìQvû×û\ôKHÊÀ©jBP¾4|HâÕw&©.~ßСXfmϦù]·NBÚ¹M4Íèu÷ª
+|ï~§Ç¥.FM+êpµ?[pI3¹ª7jÒN\7Ìã÷SDØ©Ó=7,:ÚKÐó¿z¯æ¾Håj
+!ÿ3âFO&s©áøô}9sYWQÀ¡DQzÈÃÊ
+øïç.üW½jO#¢
+5ãrN¥PØ-_&˸îèÓö¯(þsyN·¨sÄc0SO¢Î¤c{ðäÆÏß{=Áöòl¾²qÇÄÃ(::¤à±-"jÌÖð±¹ûá÷
+Ä;õî0¦ó¬Qw¤ìÁw¬÷õýã57ý¸©.¬Y4»Ø#ñ^÷ØÊßç½Ë¹Ë £¯6
+á¯êw[Y7Ö;
+qkÔJott°¦iv0î!@ÈÊê÷nãÌ7ùX^GÖn³¯$/,î6 Á«Ýµ"KÊä0#n]V2Yñ!nPúåÐcv>xm<ïâÉLgYkæ³Å
Õ¨ßÿþ¨,ÒÆîrºµPö©G#Æ[Óùb:
+qèе9±<Òâ.ö&P¹cª¸ho)r×WãBpÝ_À{Ù·¢q+Ú>ñ$ç¸tï×¾Jv¬60úKÅO¶BOf+%
+eÆ$6íË2§û¹r$a¨u"ÕigOµá
+Îäe>ýwøzyé]C`m¢fRlU¬x1èþÃG®¾7εÌ1qáüR( ¡
+¡
+B'×eLa§wØ6óõÞ¥ÿã";Úð©á9Áis!í¨fÌß³Âî tcüS§¡T¦C°¶nFå
+êß²¤æ¢H'Z{+w³4OI=g&5¦æÑÀðe ub:hftÚ3öߣ%f;ô^©/t(òïÌ!{!CÒ¯¨¸øñTÉî\;·éÔ
+^=ìdRÝõÐ S±NÏ&Ôh\]º wå%a Rðov`Ô³3Rº=+ÂÒëÅáê:ß¼Ã!o³ðçÖ¿m×Ç
+4Ùf¦Y¦¬_|!²â©jS%~üªÙU7óø¿Ù@Y|Qã»ÎQàè¹û.O^Ô(àDt¬·¿¾=e#Ö_þ(j"µº]ª'ýMíVîL+"f£Ëwöõ§ z -µùT7ä´;Y÷îÞä[üê"A<¾ì¿`Þ幸©1b¿ >x·ò°£>ïôm={ÚÕaËBJÁ9 ÿ¡¬Õ³±ûI4®!ù&ÞJ°ÉkÛÂ3åPÔA?
+ð¥rvõçfñ+·mè5¦
+ÕaÿãÄ\×t¤&¢ù,êÓ
+t÷=`g|k
+æüýþh XÛ`wªxQð --x*$cþ®"S±l¬&+áá@P¾JWO/öÆæfÁf¤õ< úÝ®6µÿ°£p÷Ò¡$?Ø*<µsS!©æe4c.íÚ%¤çøá9ñ9í¢Í|õW¬µZA/¼à£f)våZ«Û¶è,$h`Ð)<+B{${rßG¡b¯°ÒêD<ö
+x+ùÝAX:ìãn¡Î½) (oO¼(²S31$¡¥°È¹P/BJax¸O©)ÊÏ}"+Oî*ÜÜÁB»f"Ðû=947Dtø¿ñ¨ë/#fèÜiåSúü¬6áÊHOªÎfз¶b'"Fg
³æ´Ò¥R¤¶"ä»q^
+ù¾Àà<P_8nzü»þã»Ë>ñÆä#mýÙõì ïÏE0êy/O8I-í*^[4|éå±õý_`¤>mgí]^öXÙò¢vÙ`qbæid2Ä;ù.ßßÂÂDß±
+;.XÌ÷â!±ÞÃÜ˦ôÞBëî¦úªå£Ö¯¤yiHA¡yý$+(
+¡J9ÆaKfCèíþFÿ3Å_¿dö~AydÐÄ
+µ¬Qí*Ha=y¬
µWÍÜåÐôoܦ4cri¦Ùü-+/åùtó· ±¨ÜJXɱì¯Â®àbL¼>uP}L¿5ñ-åG$'3/)H(ôÃagF©· BS~râWÈ{é.Íá|$ë)*w-½[[ºíÒpù3¢]äñúÓuH*¢ Øé\Ã@³_£}ݶ¾®¿iµ9HÓm2¿§ê²45¿!å|Î=Ipµ<íµú³ÿÊ>²æñ¬Ú6ã%'ks.çq½Sí}i´½þ«ìçDåâ%0^¬õÖÜÔs¾FÀñd$ÅK¾.níïÔÑ3jUãâX3Üâ|ÞrÑ
+©ÑNÄV¹orm1Ù\lZJ7ÓJ$Æblܵæö{
+/Ù½||4`2øoy#¶U´`jig(Ê¡«tÂP¸Õ*úr95ã`e0n¥¸7FÆ?à@¢M8KÆäúÔÅÓ@¹`Ðø }W0°¯hþñ¿1iߨ³q¸@CU¡¶²Þîl~JÁ¸P|«0o½ Î4qìmEöáfÕbâ'ÛøOZÃ?/Ú{qH=§
+eó=x3Ytý¨âæ¼:Dï30-^ç`H
¦þÔ¬Y}ÕLÏ!
+}p§Á¡m&§¥¯µyâ¨U9ZuÂâ1¡ý8Ï·óI3õÖ1``>B
+%ö}HÙïílákT^R1¿·)<ÌöøXUKb
+ at Mqtº<¸Ô*`õ>~û+Nu
3£;òÝ`Á²Ç[ôê®C»&«7¼·vÃéQdN$Òñç¡z(mÉ©#%,µ ßgÐgÀ¼¢u°Ãs{Ƭ¤ÓTÚ´¬uÆée
+ݯðûl_<{%H]Î(²ñ"r#èÁÀÊ=YÉ?^
+°;.\¼ÀDîßÊu2?bÐGOJµb[ï0Ðÿa¦Í÷*õ·KÑî«ìß9Ý5'EÖê©æ´ÚåÇ
+YAiåÎÍÚ<m³!o3ã_¢¾`Úb9MS6PõéÔ`O¶!`Êñab©«ßqUAÊÇÀǧÍ÷VÐ;6»I8-%Kß
+Ö´Ùëàlò7ã¿7°»*¨M Nõäº%ªÖ§T1¡Àn>éÑ¢÷ýà*Ŭ5˧x
+áºt¸à^ùZâ ¡!ønl9gäX±ú¡xQ_²ö4LKx^<ªDG;¦l¡õ;j©WÛ¾ÏÁÛÄ&
½G=
+
+ÏÑBFÞ |O;SÃþÀ¦â©iJ@
+bÊ÷}OÞ¤ Góuë> 5?PFÚ¾ÀÛö[;M·¼tSBÔckÿ=KAo0ËÓ¡PèUHs¯Ñó[9tAÊ4;s,OnôUKê\G_F)¢ÃÆ¡¾µÕ%B~
+>+Ï3ú£¹3 !«wëðEsÍÖZ }éð4~z׺$prù΢:ø¢]GÓl'¢Ð}«üj«PpÈ3¸Iý`µþÃç«}O×uû3?rD:£³±»±]l
+Úý³ÐýàE<vðfu:eÊ©öÓøÓ|lñjôÛ+M66oUqµt·éV|âmÕ%U\sÆêòO¨¢ß#·B¡ÔoûEâ©6¥¶
+¯sr}u OÅïÌI£ã ÓìF1*©_q½G(=ȪfÌl³´9QNOmj
+¤yuPÐ ÊÎ3¤GÅ
+K«rzEã¨ÝRÔ,¨ò5UçÛ0×4¿äO®êöê w÷^+%ð$/Ãù¯7e¹
+èÒ~=çkýûWÏ_%{÷¶¿ó
+²uÛCX+ñ<q)PÃïý,ùL'
<Hßm /è«EÎýmaôXÛ<téQ
+\»ðms` Ùâ¿qÛ$l]ú+k°pãE0ÿMÖUÜC at ewøü
+9²DªðrØ^GRÓz9bÐ=ROµi$^Pµ¼Ð×X9¸µªiôDTª¼©
+;gx/[úÊ8_n·lк÷üÔÒG.E{÷óáqÙqDZ gí±[.wCoYåÙxd/Vµ3Aå z÷Ìþü«Ù¹ñéÊ q
+6ÒX²¦üÀg'N--¤ õÑq&ÿüObS£ ÅRtdÄ»/@ÑÞ>{fd>¯µZã\Çðö@åÍT½`ë
+tÑ˹¶;*¥-½
+e×
+ãk¥Fm¡;gxH0üÊÙõ5¬¦/!{·éùº²bÞÊ
+W8{Ò'¡gXI_\Þ-.Ï[Gê-VéV¤Qo&8<,MÎßÃ: ¡®õ$3¾/§¹ê~µ3òDZKTX_Ò
ßà"tSõ~?§ÿP´æ'åÂÖÃMkèC®üåçD°8Ȳi*
+}U*|+ÛBæ Gï»Þ[Nÿ_{ùÛÓ0jfŪ|_[Õ%}|·HW¯~ÍØ þó¢êÎ)=¥ÍnêǸvÍÒóWÝXKý
+8klÄåF£ü!o[ñ=Åý´Ïg}mÞ²Y¥õn.Û~h-fõÅÍ}ò88Ð íq.B¤ÉµÃtL¢©Q0ÎÙ^a¢,'sNaõÌÆâójÜk#ÆëMØ
+?-ÕKsÁV#vÃÆæs¼}Âj¥ÒfJo©iïºTZ¤~µTþNoß=ª¹mÂgá$é¥ p¾x RG,pø¥,¢ñ¶
+
¾CH3äîÛ³!NaùÔµa×Ôµ«l?#
+L&<pvÖGwYç2Ï(ÞívÊâçêe¿ ø§¡ï
+"y]Ôz¯æï¨Ü»<림: <Ûãßm¿ ¬ÜD÷1²Áç3sn¤ý7ôw5 F¢kH&ªÉÈ2èYÊXFÃv²déä,³#s`¶®¼yÖËVLIÛÚÛ;J¼¸c qõ¯»´î»çµ&ß
+êéÀÓÛÜé
+Ê ´_¦dãØÝøõ¿ä®p«î!;Ö²
+SÓº³wJãÓб
(W"?µi,`àý&ëë
9r4ÑPcs
+Éqm ÊÝò@{ë|<۽ùw)1^ÅBîéÃíÕWþ$¢)Ã5Ä!dcç*Î/¤ÃÚA(côhH áã´÷´H`pt±¾µ
üâ¯
\\«]ÉÈ\ÑrñÕãm°Ë.ÔÜo|Î5éÕ%
+C,p~\[8!yK£4LmÚùé|7
+]
GñîðÂYþLH_ã¨yï6zÑR%e£lqÃ+)"º§ªcEHfo|N×ÊMzãÌA}ÿA¶lZTùÄl²Õñ(úRfû@47i`H}^IïîLï3Þ$z$÷{£7ãÙû&
+Û
ÝÅHÓZGáîÁÏe
+u5HLÀÔ@¨mE<=ÀÑñR£çª]ZAmó±¦ödÈBü#¨¸=:ªçî$Ô9Lõ 5"£ghëQ\>©îºá6s;6Ýa
+³Æö®Öo¥_&µëËeOOð_7 M¿>5Nz*{ØÕZÿ×ÜéÙ
+0ÊÞnäÝ©M,i"2OêÈ)IðÇû¸ (l/öSÙØÀï+"Ý⮤ýµôÅêïJs¦¢ÒNÕÖsñÝLFöD ~üÃ(¢!ï¥4ÜdM²¶=M=¸bµò²«Zÿdze.ØímRóüÄzîmè Ù&6©8]ðÄ^àÈOF'N»
+Y"k1qÈy¤2£)naã¤õÒîió\4a A'J
+
+0ý-:
+N ÃI`ÖsÏ}A!l@á÷ãfslæcÐlÌöÇØ1Í%GªZ_^¦`v]}@׫âïÜóæ¾7ç¨{øMªyÀáè` ¬¼¹íó$sïäÖ9pÙÛÆ4 «LlÒ)βªL.ú@#
+¶dÏÒ8
+éh)/p³Äì]uø³Ç_£æÑÇx!¤¼óDÎBä·#6
E¨e^aÂ@ýÚOý´ùúæ]=tD^Ϫ$WãRZÁÁÑïÓĺ
ÂK"¤Z¯ûTrM¨Ghy;{aÈ]P{ þÌ/ãÁòu!ä ß>
+6Å<ñ6~6a߯8ÍSÐE´÷·m/_¨m¡Ø¤n$àÌ©ÃgÄc>T<Ý Åùæ¦áE>
+ËÚà³¹iÖÕÚcÀ$© (Qº·Sñmhæz ÅWLÄÇtà²÷¦/¼xªNvÙáö5õHv(ekHWµ=fƽÕe]úFdaÈÏó?¨ÒÔÌý¬±ú-;#BÕîCÌEcÏöë*Ê_P]HÝhqʺYÇ{°LÊq×ÒV쥢÷ÊN´ËO£º¤×ϯ¯¢Ìñ8&6§tÉù`¬¶îÂråDzáÅA®¤È×òì|Ö`¹BL¡ BÜè×`¤iÕ¥þIòLR{ÏUiYpeÕ è92;:fÒTèºNLruö.%±ø2íÆ¦/O»ÈÆ~]r&}®ÒJogIîÝ;\lºáOaï#l*OÆ
+ò~öIo?¡þ¬Oð-@±
+ùwÝ+Z:|üÌ@$èîAû«Û%´ÙWFP}Íf0ZÇ úÆGÜQ¶Ô¤ÑjãöNW0Rì
+-ìõiz}a!b}ôIc,W«(³ì= t?¾¯v'íøy
+2äþ¹å^;£Í¼>ÐÀT at r~_ÙuO}Å'õåI<Sùdñõw¶Kÿ)5ÓMLá¡mêGúo ¢g/
+céZªUy)FDÇÝv¸b¦Dewüµ®Í8B5
+£!Ö ²êI\á±½«ô¿ÍKn¹ÚWͤ&¶m/ãϹ£E+Hóɮޣß9?âö~Db'%ju³¡ªº÷öÕFHEckÂ}IA*;§Ó¯ZbÌyöu61üpãØzku±±±:á\gÑøñô½ÿ×Ãuã|e¾_ipxlÔÃ_°[da(;¥±í|oÂÁÒ¯WiºäÀsëÇÃ*õWä¹~:¬mØáx=8züìzÖãýÔ}ø°öè¼ÊE5E3ª¡a gÒøZú¨ÌxäN<ÿÞiµ?bø+z±yÙÚT
æ»dÄÛ
+¶2ìD1ßÄz0DÙcµudeåHudnZu7è«ò:Øó:½ T?$k:qrȾ~½# P²C=ì1ó«¦f=~{[iM}Å×zâ¹^ð\ÓYs¾©BYÜÖEHó,Ðg£¼Kü|ÃäJù+.ì+Gj/õ@GË4
C¯í¸<ôéÛÞµ[¼7[õ[
+mòð¯
ÔD"à¾×;Ìe1vtFix"
ùîôç$xÝÄÚ¨¦5Ðè0¶JLOìÙF=ø"ã8¦UAìE#PR}È¥¢rlÿ¹AsE@-V?ýUítö[{[M©^@
~ªûh_àÂúèÏ«Yù8ñÍBÉ '¢üc ×ÄKGìÙë5JrýzË~FÊdZ6Õ)tjK#iQr÷õ7½^zaoã¸ç-h ña YwQâ&T\ÝÇ!ï|ÒÑrÔ5 év&Ö^]å±År¶:Õ¸Ò=a%¡Yo»ïj9x^¦éúªÚþào¢ô3`4´NMAbëvj$Äàºtã¥áÌ!æEÌûð0»Ìî÷~Óø×Ë_ (~ÛñG~ÿ Ex »ùûó$ël´Lú{åÞ$õýâ¦kDpic^Z2¢¿HÔ¬E½EÏüßV2¶K׬M4^åÓjU
t%üñ´±)}ø z'"2óXþ>lþº\ñÒ;°¾SÌ"cÄÿµ;ÄN%̦ÝN%½8Çä¶ôún)ãé©I&[.ò:µí
+º1ףةü*ÍÕí!V¤Ä?`±ph?ºb}Çë¥ÐûÖn$/<¤Ð´Zí`þ'%Ï4ÿ|¢m±+\½.\s°Gcxù#ð8îV×QãÝÏ1oHã69©ò©-FMפæÿÅâi£i ¬;rOüòßtêl²ï,®mrmbúú=lõR¨jTVTõæÚÛf7¬É×ij!ðáci_IÈúo>°å<_>'ÈÅMºÓsÛBy9RáMÎï,¹÷fª,ÝaÆøüÚ»ÄJHrU4bb(KãåÈ{¾«ÇuFq7_i
+ÁOY«Z?ùìÜD¬X 9VtDZ©¶]wÀÛæ~PÄ|@²héÙôÁÄÜ x4{Eñj¶@Y_ËáRZ±Ña¿aÇnpÄI~¨Q¯ö#%ù´ÀhôzÏôÞ+ýüñ
+±Á^Õû4Ë?Ìù¾»4A,bÒMNê
+CtùÕ^ëÖà¶P~KfíÄþ$Y®vXÞm:7(¬DÑi[ÐVßævQ
K¥0
®À±hxø¬ÿdÓ7Ôý¿OIb¦ÿ£XD¶ÙuÒUñY¼õBÎ:9Zê´mXñÉ= F4nÓÊ &Ñz!#¢e¯¥_Ý!¶D&)òçà|Æ[5¼¯Îøç6ÓPT3âÖ=g[£QO
+½xÚ磡'nô×Ó·4=uÜWí.o[_gÝ4d·Mæ~T
+2NÚR;OÐÁf"·Þû>ì\Önoõ$hþÙâ2ÑÌÛ-Æüÿ+h¶,2Àë4T:0DKMmãÒO&vø
+3*»fîm/oÜp=ðGÓKjO¿óàk¨ÔÌ&goDqÌ\2^Zå¨káqìÒô¤\ñû}ßjP¡ÐÎ# áÍ£Øòà´øß$¹IÖ??îºâÜÃzÌ|~a®yrC²ÚOSP&3ç/F{PMuLõ!ª¯
+ÚÑf9ÃϹ×PûС}¼lÀöhÿvÐÐ_õµ}ÖæQEâZêJY?òo]ÒúühP;/ÇK@êÎn«»Kô`
+df+J¾½Y¤l>LϤÂuî·pq¥)yo ?GºøOw
rc:½9W+4z_
+ìv©O9#_UæÍ
+
+ÙXÂòð`7S0vJ£FWÚ¨36DjíÑDëå¦Kl¥[,¯bX@º>¾áÁ¹8Ä@¶Ïñ:r¿Á¡j$ÖÄh>édã²hºLc:ÊÓ,:W§æS`ä9KÕæK2v¡N£h0Aÿzd~©-J©ê0EX¶æ«I)_*ߪ©ìâj¤èk8«ºÂV¦=ý½#pu»
+ð¢s/Ûh]µø YGûqfJz´÷*dåÌìÅe,¥Þ,.\X @È_$¼<BÀÝ
+yB5HÍ6ë
+h.%¬ñ´ëÁ¼r6½Iâ@â¬9y`s| Æ¡mÖçåü¥ÈöÈå92ãôÃèB¦Çðsõ.óñÜ``
Ö¼¿tm¿öGxË~c.ÑjmõX̸ïßÖ©åhòëjZ:q;ð2nêw§Áz¡ê³G³$¡*ë^ýivsÙVá2õµë
+:ðJ
+Çäã.®Öÿ$z3÷»ÐôÞlC5»ÝAeÇQ͸Fª,ßGD#¬÷1=3<gèø}¢Vw«¦Î4=:úeH8\%dý²¸ã+£®kÆÿÁܼèÁ~"[ÿ×ß½Äô|÷,kñÆ~ú²ÈU·©¬ÕÜâ=.¯SªG˲ÐAØÑhõj;q»C'B¦|g
iÇÜ@Îù³ß~rx>e(ý¼öÎÒfFqòIA^ª«,ýF´²áÉ'òydÑJ\©cEíÚªÿç
k©õLs:räaL¢4å~ÎYà¡f±V&äÜXöõ(À²}×eCØvÏNÖ§Ã-[÷&ä
+`é¿_%$_ox&±
+,¬½9RÃNW
+΢{åaN"XR:½þ¸xÐ,Ç&&äwêª#°§ÂG´wb<3N`5ú;3z?v(:Õ
á £÷Îîçâ,«OåðÈ2¡4þÓXE¯AxO?·¨1$TÉ_Ûélú4ÖÛÄ#8Bá¨mã±´Jí¯]{mÒ¬§Û¿NKM×±Ü/"´>y¸¥ÒJÀ\¯/3f=nªwè¹#8NµJ
+¨
+dÔù`ù*´]7>6ü¨ë&Fì
Í!=IYÈÃ$>[¹¤öêk©öÊÖéD$ÆSÎM£oLS®¸êDC(¡°iéñ D
+ÖÊ´± öýÍ¿
+f
+æJ§îbÔ5Iq}pÜî]"m£UùªX/G#òµ²h°¶siTYólƼkx)
+AöÔðç Z|ªQB®1
+/§xB9¢Yû¿
+kÈý*Ò|½^ÊÄ´k0YÕr1u©·ým&B
+ðxæ:9ÍMâ;[ÍÇc·o,)J[RZY8Æ\αUK23»_õPÖó¹úÊ4)÷¶WPÔNº¯Aµ¼´é°?O¯9n°ÉÙ'G-èy бû<*ÝÛsKþÛS?`
+
+òìw(^ð"nt·Q¨¼²ÑJ¯fcà¤YÝì*r3iuçù
+üÀs(è<Õ× ]óá\ݱú
+ð0°9÷$=v½WªÁK@$Óå°Æ:q?á× ¤^´ªF
+=Uâ[½zzëÇF¡/*Ùù2zù̲«ò«~»ìj$õoÔ
+R¨VrÊ@;ÆGÉ#êêa¨^¤Ã+";`íÉ+Ø+¾õ;5uà'HöG_åÖc65·6
+vSLÍ k%FKù^l?@Uþçy§ºÇ>é´ qhøû¥7ÌåPTáËCi佨Ť¢[=)lð Ê8Hóõ Ó²AXüc-E(PAÿ»2;¢e§ Öj7]?ÆÂppwõæïÄö
+hÝÒQ
+kÓ÷_Éí&^î%ÿG(²Û
+ÑâOÕ&?è¾Ô½)?©F¼døIt Y~)TK\PQãó54¹q¦VC«Ä¢ Zónãß~8F~Â\L5
+.·Âí9¡K/å(+h_c)
+ïH3r9zù¶íG7·ëüá!\«Æiv³'9ľ̤*TBTa0
üåÊyéE´!)¬uoòs½¸"v
+R6<Ê:Gñ_eGÁ
/bdP®<Öµ÷faµ)}¶L&¡!ôé
+ô¿póõïB÷Ògü4Ò©¾Ñbú OÂÀhmα¥ñÊ-`!ô·2[YînÂÃ|I·5Ì9c5£ÏH¯0X2Tp~+xixNvÕ5§ÈÑ}¾Qø
+^
Ç¢{RÀX°ÃV×lÌ-%¸ZèæÀÓÇÁÚ¤¥ùDègùáÅ~3=G§±ôåDkCmRäzfc<ª{.çX½¬°rÒ¡@mw`Cà1Û6éÖñ´2ö-[ì¸aÕ%áöF8â!5Dc8×hG?.U¼§no8Oõüu¢¶±)
+^6æ(PÍåû±ô=fEßÙ0MÙCz3 5
+¼:µ"²&X@"vù÷£M#Käg,a)iôÈG1
+#¦ßtN¬¦ð¥òìáá0`¾<è»tZ·?¼h£äRYÍ çªu¼ît#â
+*¢èoxÜ|Òµ³ëå}à×ëíf0))@8#W¿x%¦kØ@X²>èmêòòK©9þÇhð볺P jD}ZKÜX¬ËC?®1ÿv>yÆÇG¯3W¡ÐéÙÀXäiülh*×AÖ1Ñ:Y·$lC ¸´tk6 séIµ
\,mmcmIfKh{ò5ã20£/7åæ3
+D³+ùAö>ï<uâe··Äq;«½Hd?ÎlÅV_0¹ºP"Sÿ»@|]À ^,ÛúÀ£ë£zçÙLLìè<zL(vªÓqìeÛû¦/Í'×ÞÏ·*c,Slô{xXf¢7 Ü_}8õI
Ô°û¸Ê
WÔ³>æKCvo½«-ÔäÇ¢Ue
+_B³l´°u[£ïy0©.¾Ðt/Yøñ2!,MñÁb̶æ«Ö5yx_*#cô$puÐ"
+ùbÔuç÷HC¡r-ª]høÈp¤-7%x$Þ(ZÄ~Ä*ޯ橺,9}ÀËäEî
+õÌÅj1²NâaÏ?gÈ9ÆòïÉVôN+îÍź:ý>S¬wæ!ý1PþÚõ5U×ÐS &¦ÙïbK)ðüyðÝ@ qÑÅf¨óó;s¬Aº F½âSk]ÁÖÚþóºDgLçêà¥.ÕÿÄl-UÁ½òI<-V=0é º6¸±`eg(Û|Eñ>Î
ݤºx?·T}{k
+ÒÊê]l7û-üàÌ-Ôø
+f:dÿÎ.*0RxF¢y7ä,£½VÓdS¤añ¸¨4¡À
+ª$~óâe£6ª^ûGoîQ¿3¥rþ¸¸mzÄV¡r~Ó=Í+¤öv¦ñö¨s'yrtÿ©*L¥JɦXå!kû¦I6 xí7UÞË2ÏØW $FË\Ç6ft5+×}Â\~øåZP8ä¡Ôµ~WZ¼c¾ªÇ6øÜ HD
+Ü¢Ñ,®>]G2;T at s©Ø²OÃó¡ûÍÇËÉqdM''¬á²î ãn_ðK
+}¾Á^ôYö¶pÃP±æõ´#MJËByú ¹c:Å
+ÔU0{¥Xô õ¹ëV<ÖôéÚ]6~fÁ «ÔÀü:obz1|yY1C1GýFúäaÚw*Â@JùÚÖÛ/n09Wõ¸OwòMðú5N¹#wg0¾ø*¾Ð¹F1ß`íNÞ{èüªm¨ñ¥TíÙ%4þ¢^ðã[fyúý7Àýp>¯§j\ZYí£ºéX¨êî¸û|9ÌiÂÌòjD¤Q3¤ü`_vW!»UÐHG*d#0Tì`-<àN¢m¨ú?(ªcÀ¦¶¸7·Ód´"·_${Ðêàa¶¸Nzìµ(kT
+³h §ä$Éqp î Ôïµ2M2êig2²;ím\»Ñ²Ö¥èÑH¾ßÃNÁÍÊà¸û¿õ°Íu0Gùi4åÈRúôæºÝæ¤PO´1Å' Åk_Á×½\E öBv}tP`Á¡½§ÅKYÄàZN$Ô$1înCJØ}
+ìfÊýÞZN¡ú
+E:ÔPNÔ¹/ßÃK̶ ¤§ó¶<qî«ÔÒ0nïyä ½Å¾û³³¦[°éE² §`îÿhÚÕ±RJÎp÷gEºfÿ½à~§AæÑªnçòÂiXUænFßp9Ã
+£kÄL
+H¤Üäé¹ÍÁd/P)ñÂ\Üý35ô5Mù[éÈÝÀõ±²Åg(Íéëu_ÝÚw`AXEý>¬Á$½bíXKk²*6F~X©µû":dáâ~&pOaKJ
+ôzÀ¸EN¡M *TÒòÎÖæSÉþ
+°S»¬Ê u%Lß__õwdCEÖ±¼ÑhУOQ@¯ø<; ë¹Ïá³ÞBrÃÍÉÕÝ. RØ÷b[˲m
+ÖÎÖZ-,ÙO±Há÷NU¯8-è'þíÞ¡#/¶Â¶Ú äQÆþó1s6%Ã\tÔ´¹Kñsx³«ÛÙî³»Aak3;"!ÊHÝ¢fxogÃe½:düþ¨X7ì©By_Ù$uo»sݲið$^©\©úKÝU×þfÈñú«n@µtU=ìeGfñÆG8m6þÛ}j½Ï:½(þ#r,¾O©¬9hÝmÆ:Üüöë[ßs#G¥'ÿÐ=;©eRmeë@«#ÖxÛ²A(2Aý.J!¦+\JîpSØY× x{ìÞÜJåi9R`Þ·9£o¥Fo¦ h/ä&#÷ÆGy,U`N{.m¾ær© Kão0EîóÀúÙZÓDZ#\Wu@Ìëcyo\9¦\Ü-c¡ÜMúóbì¤äËÖy:´WaäI½Ûr
+Ǩ¥ÑiU9LÞ#¢^u2}æoo3Ón%üØ$Ðô
+Âîêçÿ×âì°XÕß- ¯îIl1
+óS¬ggx]XrIýýx§wÛþ¥^GæÿØì[e
+&»¸ØV[eEQj$¯==EZMgfE0C_òæójÍ}Åê¸'Ý\´¨¢{ûNßsûl¶©·{ÕÚ¶0é.A
+«9$ÁÓ\ä+(Zª)%Pö»¸´~ìæ?³c¹±eÂl@ØÙîÊ@b¾û¬mãâ~¯Àب>Øxv·Uůö£nU=ÚDó5}:ló%NÙ^pa'ZhѸ!`mdW&a'aU5ÈzF²c¤ÍÚ?&6²x'ã2´OJì÷ffô(ðNÛºsÁô0Â÷
+;ásÜsïÃî
++©µ±FZf,0ÍþÁ©ºÅóa¤oR39¬Éý¹¥rK\J¡Vu°Ð6é9}ÜvléÏrÑcá9ø²èü¸hw ìDî½òVÕ¬§qù±¥.}جqøuòCK¼ ºb\@f/$æ<6ÕpØO~YØÕo!áüRnK]1Íèº[móÊo?¾jGÁ$ëgyCîz¦Ì5ìõ¦[*»ï¥ÚÃ.cÐm¼þUNu!@ Z$¤?è´ÊÌÝL]w¿6b7£Ój¬ÎÛKÁ¡f$ ê8;»Ê:¦:(³®ï~æ
+¥@3Û*¥.ÝÌ£O
)x]Ò¤ mÈF5sÈÞz'çåÖã?µÖD Ï#©Úêj&ÚO¼6¼ã·r\Ï}[-8 æDzÎm¼"¹ûQàåá=N_%<äOáÒSÃÊu¡-úcú"QãË,úY]OÔnÖáÜ&L4H[kömØh±NÍ5]."0èT¦½?§»p¢½ÖbÆpøwØl ü4 at K¡86[Õ·¢Í*:¶*ÐܶyÍMrqJ¸z+S"*ä<(ù=
+Á=~mùþU,±ð8þesÌÄúõªM»çPÃå>á#Z£¿µ`D1 ël'm`1i¬ðíyÚsØO(è°NNo×ÉÕ&Á§>ª$ùJhnCXÛ¡ÛÂy|AÀ<¯LAdú¼ñªÆcÚQ
+à i<Ø f¦¦þ<â7h¯ß®Kt]´Ä($|:3æN+¸Å5´½ýÀÿ¦ý°WªYu÷Sÿ¼à¨¬¤¡²W×ü¥kæ.
+f®¥åziÕcb#§×B¶qͰwåïë½Î¿.GÕÔ$cH*ðªÇÝY\÷¸gvµ¦2(5â·84²ïWÌ#õ»jx¢8CïEýñ
+AÃ÷yï7Ò$;ÖoÜ´ÊÛyQøã<IêÆ½|3D^ÿ
+ðµq&6*}ªVÁCõ¢"ÁG<y4¨$kG\ûé[Ùx«"
++¿L}wìjâ REãTdy5hl?R<yl[¢ÖÈöa×ß÷fG¶Wìn5>wG
+ÎòD¢¥ugH,¦¢Z ¨½"ÑRóå3{¤Ý%P°(³µÖ©ËÉ:RÝðxço¾ÄÚ%NLz+¹i±ª.èyèÝOÑk¸®ó¿Ì©þü1¼n^»©& «^/Ìé´ÀîYµUIà·§ÒF·Ù-ÊY-%=AA'ïõ0£ê¼~»Ó³íg¦
f»Ó}ªq«¦s9X
_ïdïãTqÒXâ5}
+mgj?ÞÍ (ô1#`(ÏÈEP-¹ñ^¹ÕÁj¯¤·È<dÑì G£þ íB¼ïû+>¸g·¢véHòP8êYrÃÕ6f
6ÊÕîÎwÛ?ðâªØÐÁËlÇ{=.sàû`1ÅÛó²"ÚkéÄB9ñrïN¥m¢EySõB`j Í'cù¢w4ªâªGª#Rø_«QH7A[feñüâö@ó(¥â´¿PQnûñ/À.+6«ìRhÁÌÅ{]°x[©þDÔyAïÞ"øTím÷'åâkÌß#µ´ x^uÊ£°L B×C{Ï×Ú=Óæ¸i6gã[êlhk·#t
+Ô¬|æÚÒJÙ©4·xm¬jßy7I[ÿä@£Ò8páÀ8(WA¾½K-éÿÖedϤ°B¡4jùN;Ú¯£Æ«çÓk=
+h«yÁ «q\%mÔ©á±ÅÖ|M,ä·/µ1
+{HZÝç#ØO»»Fj÷ÈÆ&
+áÿ ¿¶,¸0ÝWK¨§ÖeÍìÎx1e.
u±4ÖHWS:BmÿMTüÀë`U)/k2²ìAéérìÏÈ
+Û'aѨ»IîKíÛ-ÅE`ÿé`U×Ö#iXEà ½®Êׯ:5§£ÿʧöôýbÿëg_`ý"¹z6ÐAl~]!¤HtÈráMâTû<%%8x:çBç%@Ôa¤RWÃO¬ÁÔÉ÷¥Lçñ±Òx1¼¼é»} áÈr÷OÞ,wh*Ô3]þ|Aá.<SÔß Û|e+>òày×VÉ7ºSò°B G/èõ ÜC¿|£-Á¬Vi´ÊÖTeÓÖιKG«óÇ«ÅÞDYKÊ͵!{$û±ä<Æê<ijt ACöþÚKnæ3»eÃK~ÐfµÉðWáFÍþLÅçHöùþ¹;Ø^1¥/ËóZ#/u=TÍ6j7òåZEÂðÛ/ÕþÚÄ1ÌpÙÁ/â++ù¢vÁÉ(pj0¡4©ËÇcتի÷äV
+CǤ²
ªìâÊ+§Mr%a«ç:
+xE×JÍuö¤àO
+U4n"bÙZVNýÞ
+wè_²§-Wîç<Qxì{ðY%a¤aú±YÝcÐUAD¥ÝiXØ E«äÜueG«R
+JLþ
+椏
+¡èV×°n+Ý.Î
»µ.dÃ6<JgøÜ5C]úFnlèS]ºe¥.CÓAÄØÚdK¡éDÎæä(²ÛdA¸¶U8~h.U¥¶XcÝ=ËÞ4ãüèçßQÃSlçlöCò¸âÂFäÉpöUy¶ê½Tí"nòQÝÿ
¢ÛÐCmiõ×Ó¡oÖ¤´ÂRe4Yµb¬ðöÕë[£|Üzø&ÎAfAïÎ¥¼\ÜíÇ.è1ó©eÌü¢6áKbXGã´²NCéóñÆ÷!àFê(q¯%IÔôN0ô%bÃý
+BC/ÿô }3©äãu9¶"Úýa[>Ê Î-zHKDwäjLÿàã7V%,Ù\èR
àr¡Äæ6i4ï?.ô?X:
+ò \%SkZo&MþBNø%
+z¿N«Ü³RnUÂÓ~×`6³MØPJ»%¥îïξe¯MÚºÐé¯õï7ø÷Ø&ÇuñòFRcuÇ)Ýÿà¤Ê(~nåÕ64o6Är]'*ÈÎüݾÌU«Cê+ÿ¨;65ªÅâ¿qãTA¨C·Y6ÏUéÒDNaw°`ÇZâbê1â¤a(÷<¦Õ<C_ªLæ$xbB¦q¢à3rR04Ï6èWC9ô_ k:8÷Ú2ü%×;Åçóìþa3_'ÂâýâGU3gFÐá
+Ö-&¤È[ZV´ù>$?¯ tllýãf/lÅãÛO@#¸.Ì~s¶Ë4
+5÷cp¯òHöãǪ¢-7Â
+îTµäÜü÷aERF@ß:ѳýQKB[¥9Zåqí"D³N)5f>nÂÏä?Nºc_³§>tèË#Bü£±ÉÏr<h¦ìÇÁ6þóÞ{EæíµDûà¾ùW,2\þÈ÷XQáü¯xeÒ´W «ûIþ±ë®Ï(ÓkDn(=ºý/ò8üìǾa
+èÒPK.Ñ#ü¨ÕzS5lí~ðñ~ZXX³Ò·ÝùÈÓ$Rähû¸|[Aà£RoÄu7WOô/\|Õ >ßLãW_Ôþ¯~å°ï8 Ï£ÄÓ¶1àXìÊX³":ãwO]®½>]Oó¦Ì/ »È}=6j/Ým2aºc®.¡ù°ärHÖeÕí®iI(bE4¹-Sàñ
+v¾Îè)~°¢£¼³[Cx{óÃ^]éLÂ
+«9Îâj
e§-å®4RæºjE¸2Èø(³óÐàhÿ»B"i©÷G((
+zOÛç¬Ä°pMVb
+4ü]AÔ<RýZÛ'kNâ2bÛXÿ ¿rõ¾ÍÀgAòÈì»ð×Ú¿%Õwd31
+§Ü«þ|´
+¨·["ÚI«Ù2öd4þtÖ°)VìMìäê» úâÃô¼ 2B`cÑ©8Ù"d\ Õâá,Üòp¦£m]Û5.ððî;DuîQàÄh)Ü55?¾¡¸%² '`×Ög4î´ÿeOÿ;Æv.Ë(y7NÜ=¾*~:xÕâ_,'ö0¤|!¬ZðE³Ä"
4á}ä;óÞ%¯ÄwL
ÇÎø\"rª\î¬Z*J³Í|Íú£ßx(éH¯b6èãÝ©älK±mµ4äûÃÍÓIV2
C¤BkSfÂsHv`¤@lAzÐæQBû³)ê%4)&v®ý_ôÖÀw(¡¨ÜßÝ^§ä¾
+¾ªÆ£BÀùçOHç ù^b¡Úÿ_²9±¬Í.³}µ¤r.Ê÷K`ä)çʬÇ.ÝAds>µrß°à%gÝÉ=Õó1ó³¤rkÞ-âtwÄ^L>5ód:ÀÂjÉIÅ.à´ßó]0FI£f'B@Í
+PEã£L³xhdæt_efd¢Ü¸;£½¤
+Ò-8@ý¿çÅÞjÉ) 'é)1O)ÅÇPAý0N|ÇSÞ
+
+y¨Ô}§yIkÕ6U]^dskTmXaMá Ü\Ê2B¨bÆ|Ѩ2
+0JÖu ÃÕB´$í®A»¿vt¿Q@ÊÕÄéK[ÒCÉç+5æjy;Ýþ"·-ÐV0^1ö"õ¬ Ï7*f+ÒíÓàôÃÛà_úç\|ÐÓù\æKéo¨Sýmfö5!0UÁ_|^~ÜqÀM
+!Íà»_ª
+-ñDá¸ÊðÒ¬ºä
+_*ϲôÕÑÅ0ïéRЫÌU
+tÝu
Ýà$!aQ°BcɤÅr1¸9vc»Ó®6¡«>^⣸¬íÄoºåxY3aúøiß^ë
+p"vAõd÷6ª?/uq»ßhõÁ³C»´©Ví PCT°b²wQ«_5ëñoKÄÜo·süéE.ØxekΪÂ8Ò:|B~ÛE»Âs[Õôù{V¦!Bhì4Òm=
+râw¾ñè»_ù¦à2dO>ÄxMÜ´'\
:A;û×OÀ;BZèXZ`ª*2ÉîÁÖÖyå³ FæÃ4tÊa0xTùEÑä$£}î\qFMFlÆ¢³Ödú{ÿÍãܽ¤Vî>©DþTõ kJÞþiåÚÉ+yåøÛÎZ^µÌ]+üOì6RâúØÅ¶85¾OÈ®{gpG0}ýSALÑ`æªÿò*éÕp®¿A.~X«°pnvR°D.èDÒù`½D²ü$í¾å÷ý¯eqì¹/ ·-.?¸$Ù:Üi
+_ßæ:vÆä2÷,m×D&;\ª3À!Û_¡ñï¶´þ±wÄBè^w5Ðñ¦pW»dÓ®ØXeQe{ërGβUh5^?¢eÎɰÊ߯6DgµSÚ{Ý6ê9ͬÁs<¡Äs½üçHÄ`5R÷!¼àdØ`m¸!:@¬RÓÆÖ²;0ð}%íÖNw¡3qó«zÔ<ÃC Í{©8Å: e¹¨y|åsªÀ¦Ëëx/xXt~DyPW?Q\Uïl¡ÖپϪdû¾¨o"%qÅ©nÇm¥>KS§Jó3p£ç¢kÝ
ð2ÉÆie>9úsÆ1Ýøö5b5-cÚ;*¡û@p+²·<^¼Tó}l,¶"#Å5ë ôãn8ù×@v¬íÛÈ,¬Âço0ÙåÙTþlÛ*³
?x ÁÆÆÖ)gê&Gµc@#O©ok{;W¢ÑVi¹ÿ?,ñZèàÀÙV+/dw"(ûEw
+9Pt{,EíO g½#ðÊ1õ¬ÆuÝ &ʬ¦MÀÆ TW
+}j,Ò«JJj'¦#¬¹OÍ
+ôYÕÖÖß¿DÆØ§$¸¦ò>{¥H³<%Ùÿ/Åîó<cþÓÓ¶dtvÜ,å
ö£@KFÅ1-¯uXîúF6ØE»£ü¥¾6pñ~³E|xgðG\,òíÖÅ_÷Îw«ºæÇ]E;e:D]Æg!³I|ÔÔì²sãrE¢Tß)¢M»£ªT!ª>Óä̺¸$±7U^B&´ØÝxé.|É«ÜíÊÃp¦ÎTZAAì»[Ò¸»Ò:tQòû=bBAauJW)P`%ACác²)@®H0§"-rÅ{ñLïA ôȹ6µjÏeà¡Õ²I¶?/xÜÇ^x}X
+ßîÖ¸¤"ÔÔÃBët9
+7æ@P§´%Ü_-Óí9Üo®ÌÛÇæÞ¡¯é|ÛcêÐêeÍ36ÇXÉ]¼µ}WYéJ&z÷¹ÊRçýÄÛdàD rsû²Ýö`À`s$ajºÉØÎ+½ÉϼVB+¥Âz!·§¥þàÉÞÄÞ4N(¤íY¬MÉ%·øxæÄ*ç÷~jÈMá缾ÇZ©x±+HXUÚÛ²ì1Ô2ML¥²Ø Ì|Sa|cËÖù·cÜܤ±ìGQѶ¬ÓÚðÄj>\|.CP
+ÀRÓ#øc=mXFXù/°Û¤@éÉðÌùâÿ )¥oé>i¬ÊÖª¤kj|Ù$_3FiéT¸ìÂdôâkáGqð&ÚeèA2`3ÄKZßF¢ì
+|Å4ÙlHs (unÏ®ÿ/©éa¸øñæI6¢¶ÜldÀI]"ìߢµ_×ëþF[çdem£JÖbQ÷ÞíJ7OgPùSøyÆ%"¶zöêòªâÍgPÊ4À:¡M(NÜàè)pºåDC¾¿îxÈ(ú®oLòÃÜ@"§Ûû1ñÝ^¸ß©&!C×Olí ¯»-uµ{Óc>ü<ìñ>)Ê?¾hB¯D(tkR§Ýé°wÏ©fàßd`)7kjo-8kª:(
+»¦q-!u:$ªÝÂàïGô|©vn×W¸:Ë:$_øñÄż7;R¨e)Z`ÖæúíXÉs¹ûëçÃ5·]Í?c~Ù0ÑgMk^oV»¸Ïö)öQëä:R^©;4¿éÆí2¦·Æ'Ô£ä~ Õôµ×«CD*Ác ÔÙHrÜak7Úv¯Û¡B-ÒNïp¾ê¬äñxª´Õ?¾6U?z{vd"¢ ç
+Éç-ØÅ<¬E«JWNj;¦ôX)
+ã b¨_?!ÐJ0lÌSÞ¬o%
+=´"åm¸tÌXÅ¢¿PÈ@>z·¶ýÛ¸ê¦
+ÙļÜJ`Cè+×/¡²²Ç3¬ý#ja"uß>Ø(r_1®pÑô«ÏÄÅø£ê(P§-&#¶ÞòÃ{vîÊö¤|å6¼¿É J%:éuSþ»ö£`êÓ¹1*\ºýMFsèÚK¿¡Õçæn%Úd±#ÑTëd§¢1B65v
+{éXâîßÿ«ËmæÒâ4ºjCßlo:üÛ÷P+Éb8Ë82ùë±)NÇ'[gW8Ä¡-^
+ð¨8(MFÚ
+Û8!;O.¼aaØÇÛøkÐ$<ÖÒ\¡'&Xi²WPf¹þ³<vØNî߿ߢ®CnKy|:²áâÀ¦¿Aj_OQ$M,r_¼äAÒÍ;ö~ùq×n}
+Òºçò¨ëb]àÒRm¤9×Ï®¯ãÎt-ª³\6ëlÌÐçÍýDL:¨ìÈc¦ùö£>
+úSlÍç¹1Å&3Î
+É
ïªK®Ô¬ü¯ùÚ,èT%W¡çs¾<É´¦GÝöþöZàx:ë1aj¸^ëÈ®;ÃÅÇìxH¿
çÙç¹ÚF Ç\UoÀB
+ùJÒXSYzHÒ½éX¯ß.ºFpå;Á~FÒ¢å*à5I PvÕÚLîÉNãUÜ&}¦úyùð¥ß7H°2ÿ|RÚfÀnçêFêÄvþa+Æõ{)ê>Aa%Ú9¬µ[S\Ö$"//ÇMöþ¾-oBÊö£é¸?vTzÄʵIþÇu,@Tâ>òÓp
+§Àrþ£
+QÒralh¦Íì±à<AX|ÃþwM÷û+TâÆñWXèg
}Xùë̹e|f¹µéI'M~ùÀJä`J-OR`,«kÙü]L+2ùðk¯Ô*W~gI=Îe¿¬«ççìÿbzɹánR0°ÁJgmA4 Vصiæ«?©ô,þ
+Ø+¥"zª:û@}(?Ëþøc_é/de÷[Fâ¬;ðåvPZÛÙô7^Éeçw5}}©>߳ߧt#Í
+5
+yY.\qØÓ/xOOÒ'¹ø7q&emøæaÒ[É`Ö¢%ë§ÖÉ
+¤vm·Ö\8R`öòPÌUâ-|N÷¿ãoâ°$ó÷Ëÿiw
#ºç×|¡vùåZú\H|8 jóUd¤¬ÓßûÓá#óP³ÑÞµöIPÓ»¼rNÇv@±;>¤IY¨¬áܤ
+ù#kUzµÑÜ
+BÝ·Ð+pßÞܰ¶1ÛabAv5Ψ§ÖqÊY,u! 3<.QÇ@)n®:Mö8~3Ry=òÙ%_{³ü®>àO&fL{.«*ÂiMJÇvUäÚ5mÐf6Í#^·|¶¨<iéOd©é! ýÄrjäÎ?L4Å&xôнýôªê¦Ón wþ)5!¨llGß<«ºÁ
+"âíÌù?
+ø»·zekO8ñ~ÀN¬êU^¥zÃÆ|×ßy¢h%æ¹Í£$g[8Õ¶Ú+¢¸Z=áK©MíåçlÓr³]_ðZrP~Eèmò®¥V5öËûìí@Owð°Å³ÕhˬÂtz
+ÊÌRÓ_̹?¦(Ëg>üiN¦·¾¸ýz0
+ÉÛg-Kq&Á}½ÛÑÊYq²´À0tòÞQÎX{ghk83&â½lÑ ;Î;}2 $n_ùçªÃ>|«Éª7K«7C¥Yè*r&RFá¶`mµ\¨ÍÞÆÆá¹õWCÖ·°Ò*L¶&Ol£ÂÐUrpcl[Ç>uÑ+Ë,õн[ôOJËßyYòº~>PD ©v©Eë.e|ì$Sfñ¡Î2°¦WK¿x´I¹!û!ûþÅPëG<
+{rú¡iUÌ>l¢E(ÿÚ¢26qããÇÔ&8ʪ¥t}(x*}lµ¬{nlçÙÛ×vS~ݤt\bó^P6*$gøuAëY,wýª¯`ä{41áhá:gK~Ä{P×èh!<
+¤.Cÿ«©àè%h¥_8~ûRrFA3zæ¡§éèÖB;Ï¢¤ü¯Ï±»uºê?
+øWkå&3`AIÊv
+® iåç\QêÚû¨\_¸æ!8Sqã§öXl¼AɦªÎH+å«
+ËTâÆ³Ü©~M¯OwÚ¯Ózìì_GÇEÅΧ¢m
+ÌO,¿â>â÷¦´77àOØ#ÖͱÝõº¤Ï0ÏêâÅVInv!î!#y ª?þ|èÕ¬GæÞæ|$ª;k{ß¾ZdÂÛ Fßè}ºÛåãè
+sµ¶Ú-R¿ª/ÂæTýyi÷É@´-K´Öº¢E¦.é¢-,ÆOé¹ÏYü$fzmÇÎÝÜp%¯Y£»ÎÜ1XÊV¡OÍAr,ù8L¢á3"dZD¿[zß2¤û¶µFÉ¡sw®øóéI4²¢\æ¦h£ÑéÒ&YDh¥8ä!u//µÈDJPÛcRL5òøÔ@UóÐr$zÇÚÍ $ëdµ=*ÛiÆ;¹>´W·
rS<8Kë
+ú mqØí#G6*ûÏÄ\BsÊÉp.â¸H]ìáÒÂM3wyLÙpgÑ5ô;ý»øé',]PÔ~¢|pz®\7¯ª;_òÍ^À?GoÄ5°è2Q¦·Ü?[Ü9|Ù»>J¨Ã
+fwUÖOµÈÐk6.?·O¨ÆvC ÃÚýfýòfïëxûs[9nN¶Uí¬+=ÔZ^9wÃÅ9gÏ´åè<TÀ«ô!éT7d)®èöÔ@)>M+Ä-QÏ+6ÉØÇ'[À°¥-1ðÙ-Á
+ö7}âµ0W"£²n öýØþÚB±Z6ÿÄ-o`ÌD@ðñüeÅ6ÈØ#VðÞ´ÆZ½«vÃ.ãÒÑ,ªÄÃäqþ~Q¡q t×eiÒÄÆÀö_úð¿ ¼<P!AO<PþÜOQ^è W7÷¿Ìa
+endstream
+endobj
+
+576 0 obj
+67866
+endobj
+
+577 0 obj
+<</Type/FontDescriptor/FontName/NimbusSanL-BoldItal
+/Flags 68
+/FontBBox[-177 -309 1198 953]/ItalicAngle -30
+/Ascent 953
+/Descent -309
+/CapHeight 953
+/StemV 80
+/FontFile 575 0 R>>
+endobj
+
+578 0 obj
+<</Length 875/Filter/FlateDecode>>
+stream
+x]ÖÍnÛ8à½BËvQXïOHY²é iÀ±Ô@#³ÈÛWGÎtø®>R4éuw¿¿Ï·õ?ÓåøoÕÓy<Mùõò6sõÏãªi«Óùx[ÊÿãËáºZÏ÷>¼¿ÞòËýøtÙnWë/ó¹×Ûô^}§Ëcþ¸ZNy:ÏÕoÝÃ|üðv½þÈ/y¼Uõj·«Nùi®ó×áú÷á%¯Ë]îOóéóíýÓ|Ëï¾¾_sÕããå_¯cãs^mëzWma·ÊãésM]óǧã÷ôڶ¸¶®c½sSòü1ç¹EÌYYÙ
+ÙçÜÖÍùíwÈæÒ#rbNÈs¼§mܳ½Gçnýþ@?Ðàôøýþ@?ÐàÎìÈôøýþ@?Ðàôøýþ@?Ðàú~¡_àú~¡_àú~¡_àú~¡_àú~¡_àú~¡_àú~¡_àú~¡_àWú~¥_áWú~¥_áWú~¥_áWú~¥_áWú~¥_áWú~¥_áWú~¥_áWú~¥_á·sõ~ßè7ø~ßè7ø~ßè7ø~ßè·R~ßè7ø~ßè7ø~ßè7ø~ß9þñwú~§ßáwú~§ßáwú~§ßáwú~§ßáwú~§ßáwú~§ßáwú~§ßátF8#ÎHg3ÂÙ¶
+lÎù+Ú²rÉæÿY,h6¥;ÑÈDt8.Pi|ñFv ¢±+íåK÷ÌèdDTôÀg¥uNmÉ-^F
+̸>-AÍÄNèÄ
²,²éuð¬´aÆ`¥ÅALt&8eÁM³<#artËF{ÇN®tÛáÞ®LvqèípvÆv¼øÎKû2¥=²æn±ö=Ûaîzf»õ1þûåOOgñôË$@;<«)bÏwW<}ynS~y.®X§G¡ô¥)Á°ÔÁõë¨3,uðîÖÙÿdØ@±ÃÿÚ«ãÛ4ÍrùPvcìÃç1ÿûKáz¹â®ò÷pר
+endstream
+endobj
+
+579 0 obj
+<</Type/Font/Subtype/Type1/BaseFont/NimbusSanL-BoldItal
+/ToUnicode 578 0 R
+/FirstChar 0 /LastChar 255
+/Widths[0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+278 333 474 556 556 889 722 278 333 333 389 584 278 333 278 278
+556 556 556 556 556 556 556 556 556 556 333 333 584 584 584 611
+975 722 722 722 722 667 611 778 722 278 556 722 611 833 722 778
+667 778 722 667 611 722 667 944 667 667 611 333 278 333 584 556
+278 556 611 556 611 556 333 611 611 278 278 556 278 889 611 611
+611 611 389 556 333 611 556 778 556 556 500 389 280 389 584 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 333 556 556 167 556 556 556 556 238 500 556 333 333 611 611
+0 556 556 556 278 0 556 350 278 500 500 556 1000 1000 0 611
+0 333 333 333 333 333 333 333 333 0 333 333 0 333 333 333
+1000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 1000 0 370 0 0 0 0 611 778 1000 365 0 0 0 0
+0 889 0 0 0 278 0 0 278 611 944 611 0 0 0 0
+]
+/FontDescriptor 577 0 R>>
+endobj
+
+580 0 obj
+<</Length 581 0 R/Filter/FlateDecode/Length1 1304 /Length2 86728 /Length3 521>>
+stream
+x´ste_ÛvݰbÛN*¶ÜØFŶmÛ¶íTR±+¶¼ú}Ýýõë×ý×w{Îs¯¹×gCN¬ L'dbg·³u¦c¢gäÈYع8ÉÚÙÊÐ ÛYÈY[
+ÿ¢ÎKTÌ]
+ÀÌÈÈñ_í¹¦vFpä"vöfæÎÜß(UÔ©hhhÿaâââyü:YÙ(þÀ_Ôhmgo´uæü
-fÖöæN
+ÿ1MÜÎÑø¯Y9Y
+mM¼½ìíì¦ÖN at oSàß¡+àìèôöúÿsÇÄ0±0vÍ,láþ[ý/4ýµ¬¡³£
;@þ¯
+ð?ôÿöhçlaü'Sño(ÿ^þÏÄþþß¹ýÿÕ´DþQúïþ¯Å]¬ÿå'åø øk¨@ð¥<ýkÐÿ.2´±°öø?Êþ×Nu༡ÿÈý/ò³áß)lͬ
+ÎÆæÿ¸ÿ$TmMÖ¶@;'>ÿ¿¤¹
±-ÐÉéïCý´5ù3ÙÛXØÿ&ÛÐÑäßÀ?´±£ã_ÿõ¤ÿÖþ×ÚÔâo@ ;Ðà"DVÁõ#¶æA, p¥1
¡
+UÕN'+ÀyheôðÕ$
+vÊ(M]vxL²In¿DD°JUÍþÄT4|Tá)ÌDþÅnÎJð´CWÏc'èc8G -Þ7Ù§£¬òÕCltäIr¹}6_ÂX&ÑúÅå¼ðhSNæ@4ú¸Î
jájkuÕþ|Dãä¥ÃöÛ¨çm¶à&Rs¬Ùðæ\óÛ«W9U}ü$MÔª=þQ2iî+ä|ô%1v<Jj!´xÓñ ¾¯þF^ËïܹÕEÈÅ,åOÌgt±³ÉKl=,ÄÝ'XYX
+kDÒ¦
+ãζ¸BÇ¢è¯
Üþhw¨{¸åú=#+*`iòwÜBäº]«eMhK|~l¿Üô`xW1N9N?#ÎðáE³=X¼ï0û1÷ý0ÀÖ¡rDNQ@ú(NÇÙ¢Í\«òÛÎ+åó0Kh~IÂlTj{£âËÍû°§[riNæ~?ûP
+V<FHMÌð?¡ï(¼Îì¾åÖrR³O¢ÐµÏÓúSâ¿Û1£ªêþòïíµ´Cøäxì
+:MÔ ·`ôë 3"Òÿ²3þä$*mÍ"
+.ßI°!ZðÙ_
+hcC=:û¾Ô;¯X®üKË£ýØ¿vëë÷¹Zï0Ûþ8çÐðûnì©z¨W$.ÂæDÁÔ#*f8¯°ïfñ-©¢q?®»|²n÷CßÝpB!Eå®It$£ð1d
{§gujNøNd6ÇcKÃñÏÑíº9©%Û@Ñ;þùrÿæKnµÇ_c]çB¢ÐÚ"tuæñßêãÑZk´c¿ÉåÒF)iÕÑ
+]Vø|°wq`(Üs5ʰì[Ò`çäbű^C¸N
ÿSlÿ©âÉÀ²â©Ùd¼U0z[Ccâ:ô^ÌÚÔÂ*mgNF]â¼:QL¨OG4;zÿ±'A:sZóÔÛÏ´wZ¶¤Zq$GÓÎ3wBó!±®{îï|^sçI@þUðiµóÎcдJ·¬¶Í̧¡û¤¬44D>Kk/0Æö E£§<Ú»oÑ̬i
+WZíÄËÀŧX|s¦¡þ<]ÇüØ+׫Íã
+¸¶ò£N7«òÐË3/3ËóàÕéBÌjÃ÷Lö1£Tò¹£(Ä
+4?qU(w{Õ ¨·´Uù84P
+F¼=ýQÔÔåóÖÊ©öãç5^UÂmUZz\w%sôYDA2 ÇïÒf·TÅQ6eÑ4ØYJ¦KmÃg"s©rë~¦%U4zа
´9úFÜ¢Ý{çÂ,Æå I/ç$vD©T¢ÃpDU¶¥èæ/Rr³×ú;=>¢º¿^'õÊ4òzM<ÑÍÚK¿ð¥;Ý3-6ïDÑ1±Vvéoa²RÓï.æä`×'äP+ÁíÀ$eÍCYójBÒy?Hμ0K ß_àû&ðrZÊòEyx¸<{²8*7âçØ¤'Ú½«áZ
+ñBc"º«!J#Q/èÑ{GM}9]×Ã7Ïa+«Lµøòïäý5}]ǯ±ËíêÓÕDåÀ(#&F&Ü8RÓS8 ¸/ºç¯ÊÍiè^ÈÞx¦úÿ¦£I{¥oê~IÇÚüò¬IÎ
+9uZýÑT/9ÝZegüÅ©EáTñ½L|ÀüõEyeUWHÁܧ`v³°ÊüméùÔ
+ ñçÖ|Æ-*é»,lã£ÂªÅ7Ⱦ_¿6HtD¬i¾
+Îä^8s{Ê"þ1P6ã@Qð/ò
+5è=wYÆpùI¸=3/ùK]"íS2¦}Ý>
+îÔ R½Àâr§âàvh²ö,H=4Ôn#(òçìª<§XÛ<b¦bçKÈ[ÇÉé´ {¬í/JEtä
+glJ,ólÜ'Ve¼n?/O®Äã#ìB>¤0ÌdB÷`½ú ô0yõÌ?©áÁ+yt¿¤G¡-Ó%ÏÍÖ°H7huùZä¬×¥ÔmkÈ¿Ä"Ö'ñ
+ð|ù¹õé®~ß½eG#jû×àe¢¡¿CÉ/u_½1妽f4ÆØïx2 Vlo`°ó
+ûôzyè*ªä¸ÛÔª£
¾ý:ê'<aí¤F«Xÿéîöû5}ôJk¦=¢&0_ txý%?
+Ê÷¨@HàWã'ØAÕ åòQÜý3Nãð?éÅâoCì"ä
+Ú#Û×bL®|ùé«ñ3°ÀLï.ªuë5tÿÖé&v GóF ¨,¤odp;&Á´Ý«gTùôÕ\A½ÇTêðs#=¶éÊ4äUÈ7GýúöÿÕ0)ûZJ¯µe }
I[,²
+ÕÐX
+_
+û*L,âó~ì¶::^[ï_éÃèAºÎÖNÜ·ì"èýÚ¯v'sWñÈÁ4jüè-4Á Ü+5Í~:t¯ £Mkä4ÒÈùà&¸â'OÝ¢mÉÛ'=¹ªç?ÌØ=êµAþ8?yܳ¿ëëiÁï/,5Ü
+uGþAE?+:=/5ó|^7OÁ|¨ËÈVÜô;
+krξJ]ê^u£^
+|U(WÞ6È]:ú)ýe¬þüIéL~Ö<ÊmÌ>JÍëºÜP²ïüùòdãËÙ õ)jBÕ®NéOªbMr?ÿÈ
+¥OòþÞñi¯V:paêò啕°Í²µ<rÂÞɱÛçßÇÄ8ÂAÁ=z4"8ô'Tîo+uòÐTPÏìÛn]êX¿ÈhÈg §A¥§ÒdPh[-Dß,ìöM£Ñ+Óàï»ÈSÏrýÜP¨QHxD&ààv;㯳H 2FM,¹ò¶d«EÄv<äÍ;Çråßy¥´3HmLuYäFÂUâÁ<Ï*è=Ù£»5¾r§EÏÝq.UéÖqxu=QEþ÷CÈS°j.ÙFpzv`
+Kn ¬S²¬.ª¼*vQ©z.ì2æL±Î&¨]@wSÃ^9º_mqßÙM±TÄl<%G;ÔÚÎð¥
+O_®<7ãÄÞFMüÀmÖ\ÑÒÐÐ6H¿ëäõTV
IéjùUfè4XºÞ®KÅ|Ë&øv,Èuv8g®èNÓwÕJ̼ýQûÉZKU>)¬
+óQß ¼àï~ýèð?x^¾Ï»»óýnêôF0éÛqOÎà;4.5öXÂæ4àLØ`ßGMñáöß½N_Ø6>îÚ:ø}Â"ºÞù¯¢K|HõñôþgW%øÎNõ¸}î6³©ÍÆfW C͵¨3ó8S®ËGÏÔ£µ(xʺs'an5ò4n§*TOjÃ\Vª«ã@óã]lܳ{xÐwk±½³äà°iM[Û®XFî^ ¨Þ©CéÔbYD?^RÕ®Q-3üîrÅ ¤w|¶öxò5®¬ï¼ÁÖÌôZ¹g(dHx~è·¡*Aæc9Fвá Þtâ]£m³³ÊJ9àS±É|«ñ«vÕ¦Ã3ºíÕÒÅ|FFdÀu³@l
+,¾ç\,V7«i=ç>xKJ5ÔÈ5p/Ì>¨§íFβ\æ´%@N<G@fø`éѧS5K~ðVCÝu¼ã̱§Øè|c?D¡+ßÎ2Ýç:{L>fw}¬ãrºH;Ð2«® Rí'©'¥¾ºÙciPn4u`°z*úluÛÇçÇtG at P~ϯ2m¶m1À!/ô¤<wu«òí^ybyýCÓýZ×
ýDò{¤;í9§ª5f¥têÄ'êg±ÄV[ù½}O»tQ^"w{×pO©ÿPíÍè/Äæè·R¸ÎG=&þ-NóRÁiÇD_uI
"d`3·
+ga/Úf¹¢ç31Ð.8þ (A?\Â×FÞ÷9í2ZÆÇÄ>ÔÔ6Ò§D¿é©¥]:ÞVUµûñc.bH"
+;,¦J=çÐÕ
oCçòÀ¾à*ß» ;à×(}aU¾d»±¢îeÜþ£Î»¢òþÛï´/<U;!}ó¤Ó¶hÅZnÑj¶ól½0©fò|
+YVä©6j`ÀÅ_VUnR<í·æÄCôjÁãMþVlÄÀI¹èÞ0]Êw=a?4$47N©
+©*òÚÞÝÛîoýh_ø'+ï5Ŧîy«¯"uÒ3ÝîwC³êÈ%ö ·Ü%rá¨>J¾ßË|onéý£#>ýMÈspõàbÐÚ}ÿxmÈ÷
y[á%¯îGk,öËOûWëC#Þ~kÝêBûýI:;ðH©.7ËaLé0v©¤±
+üÂ<Ë4pKYhÂïp©ÈÛo¹º·D0®ì5õÙG*IÁºù»Lú£³õ
+1ÉõÀÏ<´á
ʼÌÂfÙýîí|ðîqa>>rô¢,D£þ©å+ðerh7(îrÜ>h.ÚSè·Ä7樸ÁvÖ3
+÷òO¹®[«Å©å83üí.½/Oüæ
+Q
lìÃ&+Ð=ÎqËuÕVÕnÕo 8<ZðeBàed²ì>!yè»LzNmÔæh²GÅj§½Z¢:Zv:ÜX%ß÷|ú>=õ21<äKu£%Ò²:@6þ0Çh
+çA½·àm>ºè©Û·x(ÆZ÷3¿½:zç\ü-KA§êÚæ,²YÑɳâ¾
+{Ú%¥»×Sè U.Æ=dX¿ÜL/~)è[|A2¤)
+x´Úñ$häµ ð3#ìs)ê_«ÉUè°_ÛU%¹viAÏ Ç]Z>Hg?ó[wcmZÛ#HÙl¥T£Å»ÀN*W@±øNAB¶EØÐ0C dR£Íòf´÷¥z±/½bÏ.Udóm]ËÉjåîÛ½xãoTÌ÷»Ù<BÁ´sô¾Ñ¹¾añ_k!7æz¥kYø&ÜĹ¼¼Õ×
+½SÏH[/öZI¬0f]AyÄ9Çôa¸Ì%¼
+²OéWnïЫ&\7ë"j]u¬¤Õ (\ªþãls¼±|[ùÊ@ôÒÁe5"kv°§_Ng£öÍVþ,¬qE±õ)¯WN"|ÁbG¹¼¦rOKרi!®Æ3,Tc Õ«Bÿ8í^P$ôRÛø³Ñݸò-x)ç¸Xm¯ºj½ö/KMbSÁ&KC¡x8
+xubØíÜíóóçgb»!,ÐlTowíîýª§IBZ<K¿nHOJúõ8éOB%ÂEÖ¯ÁÚ8Òû«)?ýL£
+-¥4¸IÎëf!ÇØb¼{/<S%]ÒãÊ4¹:³}ãþ]yßÊÆB
+Ï$³!1ͳù1c9cªBNzbnNbæ=:q
úþ\^«ÆUÈ9»vBE«â`îj~á^¹ëÌj?<×Þаý¸6o§3
+¤ñ³ª&Ý
+ñ1±fÿÃÇ=
+}d¿f¦ÂÒá/B÷«T%V0ï'
+VÑ
Ø{P©ËqðBö%Öú+%*ÍYÑöüÅDy¢æ8ÐÓñÖëúNkÎa¦çî0FT[0¾eÁ0ÇÇØ§òAêÐõ4(ò¶nXë]ëV²þ÷Jæz¿Ëäòzògx(qÛ#aõnÌ4(u-©Ùíû¢ ³þu"·ò]=¬ÖZÜG4;DmÔÿ¬èÂ@«.RXcN
+/¾ùÐ~¦A;¦ñèHuµaøÃ[½þ·q_ÐczÎ*32ü@óaå JM>ÐùV.H*lMHw¦Í²É¬#¶ÎKÂt`gn)R£^tuÙÔQTµèyMuÈ
+íSº2ÐÚ<ÃÁ°¯wºoI/mm0ÀoóSÞy'¥ý¬Ô9²Â»¯IA¤Bâ¿HàÛλóðögãíW®À$F at 2|êE¨QVrMa;Àý6¸w¡nP||槯r«";RY rb$Ð{ÿæà?Ov+»âr-FGØÙ½Þú©([ÿöÍÓ~_ ØÏni³^ã'¾¨n.hÕêÈïÒØÑ<(¿¾~b
XåëâE¿fÀjº\äU"óýÀòÑpfÐZflê²7²Ïøìæ¢}ÒmD}@
=ìèb÷Ñö§HÇ#Ä(/ñÃnÕMGíºè¿ìc~Ý
+H¡þ¹)¦Ä5sû @$
+O×êFËÌÕ_Mû§hò²ÆÛa¹,&ܨäc Ó}¨ífQï2E.<sß´ï娥kפí¼åI)RöoìÒ!Ó T{2vQãÒ¸LÙ¡¿ÊUÜ+Ä¢ØÈ!%M¿=$ÓÞrºëâUÅ\Èzìq&?¨}Ú©N9´?±Èmút}fD40ËÓzûA^&Hm_ÉÌzðï]¤$¸^Öäõ k4ÄÔÑ«QüÍxWç£IçùöQÐÞBuFÁ®1=-p;¾ãù´å9êÍÙÎãÄ=§Cͬ8äåÇÙQ¥¸2òìrõïhkcÅó
ܵ(DæomÎ0K@kîQ4(Aè£S§O+JïÈîs|%5gç¤4pòºLêK¢Óì#ø[Û%&W¥HCJHñäLT8¡Ú*¿ç >à·°ç;÷Á¨}IØÜ¨&îùÛÕI9Øñ/®4þNsY¤¡Iñ¢'LQ>ýâ×Ä,@hññak¼ñPZ¬ÚU,¦À`q·o¾'kÁ'&GΦdqø%i¢åS?Cñ}J^¥ÎS®>¡²ùh(âÓLK°)À=¨èǺ=¬ÚþjÔY.ÖT±ÎéÊ{çC}%Ç éä>°íÆÏ>hµ%ɳ¬qØ=ÒÇÂÖ.Isó2øñ$$Ùû ÓíÑ`ÕÅê/ÂV¬ÆQ:+Û"æüÂ/ÈGgfvÌT
+%^:r»V½½ù>²
·$?|¤ß² 6/m´æ)*;igýõØ·¶Ó½¯ö@ä0],6»Y¢¹÷\"¼w<C¸'Uþ¹iRs1'q[ÉEºéy7@ïåõEܲ¸i)±¥Yü
+ÿóP¼ËÚ¶ BW'´\Â^ÏÍÃP,_¯Ò;ýÊ2§µ@;&Ü
+Yí5!L»`
Äí9
+ôZò§¤8Ô.ªnìÃðYwçà,8ç9-+
+D|Íq_sbCrÚyXÝâÆüSx3B6o/1bg¿WpoöÎKwçy»×"«o®³Ëã/S§_ío
+þ¬,(drWt}ðÔÎ-
*nÅÇA3}dM÷}5&¬Z A¼SFnÖÎ+ðk°Jߪy'¶mÖý
+r¦÷÷áBÚ=òh$yZP3q4!<Îó
Ù#VF*þý1H;ºÄêZÒZtS0ÒNuØ}¬v¥ã'pSV
|âÞ~Òi
0×ÌÖ!.u"£CaEç1h¼hvd
ðñZ?ׯX8¯ª Ú>@ã_·NÙ~s³e(£"D«|Øäò9û$Mù<S9ô ?/
+w[ØÐfl?}¹ëïõWmö·q?ojǦ&l¸ôáár7¡<;L3¯5zn
îäK¥sF'Ü6"Æï´trfN÷Î
+'9ºzú·Ï.¶",Ôn¶V9ecõ^rÉÑØÐY]Ïù>lwFL§Ý纮ë2"¼3Ù3&ßׯ´V¾ª|m*%4ØS þjãL1¬zymÁú¶»@ØÁYç´WbF¬-S^¨Âß©/úõçØQ¢+ÌÆ÷®
Çímæ¨&Æ`|ÕrKmÚnUIWô3 ÑïßT8]j½ÑÕ1Æ5
+0§!«
+ÄR§
+¨ü¡îiÁ@ðdøçvàuê¹Q
+èW¥¨>" =¡k!-¹öùý£3¨ü*DçÇRù¢ð Zæô=RNQY¨&%èM¥Nw)gLà× >ìQýµÈ¾£ý58`Wî«ä B¶.ê&×XÑ2Ow
+*<HJÅíbÔØ&¤¬Ã<ún©¯U }Åj]Ðèö®Oç´qÉàÈÂÉÌ'eÑ Ý ç43½ëZjB3Øhb3ÝG»'"©§ºgëlj°D¸Þ¤ïñõÕÉÝ<¿ÀIÍ+'lÚ0éabtÇA ÖåÔI0ýèdß´è£B¿gÅ)Â*"þòpD«èZoåe-õr?G® ×TÝèlXpµNÒOÌo ÙÝçd:Ã!ÐKãqï¿â_òtF¢vÎ@ÚäplÍ3#wTÂBn¹ýNáDáy).Û©T»0#vÅ
Y1ÇÞ
+Ó6GcÜK¢ûMÎå%¥$(2ûÈ*$ßåÁJð%°WYeÛü ~RfA^±¿8ØzaYN)òðËb§3å³l!y¶jmªiÊûîl²ÕäýqjZõè³}§Ç!í×ê+BVkðFqT
+ÊbJmÉéíqýǰóÌFZt("}Ìij0ða ÖBØË!ã5Ün]©´Ù·SP¦¸ÆÇ8ù!?0Ìói&ë¸:6bÜ!_ç`³³_ïÛ§b~²^òhYKL/Ðé9¤{X},¿z0tCØSl\Vr7ºË ïâòdÑXy%Äæòn $v±Uák)J6¹¹[Û ïåµ³Èóº
+Kã
+ÙÎ4¥
+·y¡^tP´ÈWß
+àå¸õSL¶
+Adñ©`ßê?Øê±¸@¯ÛAéxÿÜ
YŸ¼öfFÅlÜ]$(ZÔëË¥ø}&kÈùK~Q³S`ñQ¦BÇËøù¹Ýn¥tRr$ÉÛ`P²¥'èïíd
+Î,á¬çKß±}ZÉB»pCÔÖÎÄÅ`³Ä¡øIÆ(¾¤7FJeL6ÇZÚø£*³+
r£^·bAB²¿7nÚ,a© KüÐqúø£ÍHa!¦¾{£
+Ò1¸$¶Jì
+;dµû´2omN_âw
++Q¯÷`IázÇZü%1@~÷kÜÍíC¨ÔL,úÔÞwOÄþeÒÜöãð=ôåG÷S6%Kbõa
+ÛÖ]Ô½ûORÜöÝz§å° ÃíaK=?Îh".ׯ¸=NÙèEj
+6F@{¦
+®¹d»r7+*ÏǨ*z·_nvÌ·*Û
+» Ƶ¡<I
Ã-r¹°¥é¶m´3Âû½©qD,{
¦E
+¯ù{²ÈßÔW&§ùYÐfÌ8ôw:tîÑOÄ5NúL¿
+ýÄÃÂE at YÿAinükeïÀH°â(À+)¦Ü´¢â%Y»:skeEXswwy¬Wûi
+÷Yät¦-ûÐÅ_¸¾q~ò§áÝõÕó
âe¿uxf@ÊtÕQÒñìÝ=Db0N(cÆB-ýÛ?u\ìvJ×};iTj 5ö1¬N`ÛøwµÃGg"j(ÞSÏ÷o¸¨}_F8]ï
+ªT<¡/(°48Å/ýäu,Tìd¬ÓOKpÞfÎt7üáþHK"tfDÕaößaðYµßÞÿì¡òÁäeÎñ@®ÿv=
+gð©×ÌjæÛ
+³Ká6|uÁ|cûá"
q÷ü+u˹_dx¹Ó/ §ìp+u¸©.Tp©qMO®xð% @Vµü¦§O `Eâu´"î>«ÆÊúúlQj(ÉN¥nº|çä9$,×t8jºp5.+¸å¥uÍrTþrràÃò.ß°åX1
+@*Ôü¾»sqÂ(E-¢j!.* ïw;ò÷ìÑ8E.Û¦ËôË{_Ðí Ü[H_SP£JöD3oÌ>Ðc!8K3y%°WÄôûÏ#@|,I
+ ª/6Ór$§EYô»T6 ¬×Íd6-dP)¼¿¬ä%06ªéð8nÆÓLùi9Á&¹/m½Ò[ÀP fÆ`i(\ñ½ÍüÇx¹K$#§|çЬû{ÃÏiÛC]4ëèÖò
±QrakýÁ*ÜïÂ*ÕMÄ%]yÀªô"rMU´àh«ï4ÃwàfVîºU@Ï'jßRí9x?ýIÝ|}òíÓê&I8ÕPïÑ)qúîÑ(ÚÈ'F¹,þTWS8÷òݲÔü%4Ê,¸4ϢʪÁgJe ~}#ºÝYrm)ª)XeInÈàäî
+hÁß_e¾=iWÛ¶ÁÒqÁÛ^OérýcãUÄÍ«òj§é,A,Þ
+ò\GuKòé³]~hqõâÚSDÙz£#Ðw owÁÚ>IxN³ïváøùÄ/¸ïVvºw|(|kHÚ@è»1§¼,hO¬_°ñÏ}S!«|°·³OÜÊáð¢ÀÄ!¿H¥ºeíKÐäéL¶¥ëNs\R.M<H_kÔ3ÇÇ~
+#ö<mú³¢çp%`±P¬
+wPÄ+ì*NY¨F!áÌBô}¦;8¶Mááq7b[ËQÕCÖØt¤ñ¨¿côùûÙ' /)Ó}¤ã«+º9iËYþè¬r]äëT«3Y8
3YD38_>Q,½x
ÆÚ] ÿy{hn3,Ésû!íE«¢çÚ:$è["o°#êÏØß5Éu1jtâÉµÃøN»*õº[½.Ìcº¦ýGUfø;ï/ÕÅD§ê½£®YéSÆéÒW}C
t`l²ªvé§SC¡Åkn<N\¤B^nñ)lëxª¨
+í¢µ]¢%àȫäîP¥ ʺ'Ù°Á\oRÌRFPê8èþN
b;Ë~År¸¬~jjÔYäq¯Å¥ÕÏsMh©ÊWñûkyI|Ù_¯CA6Á¸4Znl7cí1$
+ BüUBNðþ©Þê°<ï>
+EëS=Ô¸J¬«p[ä?G7cQh|¡ÖÇÁ<T·üÓàY'
+ÐÚ§:õÒ¬706 Rjë"èfÑäb»O5á&oßV¸§¢Lãã׿dí¼dǯU7">ì÷Ñ-Ý´¢Èh(þÌw¨ý-`lk?gECey¶;Ý9§ ëÙy
+`d²µ¨§v2zºIмÇùbk¾õØÑe?¶t:e)"º`¥½JºgÒ·n)0OmxÍ·c;ÃæX̵J×^ë¡spBùW/gã]bÀ>É©ÝmBëÈ"ÏÞñÐÆëD;ÂÊ¢PÙGÑ~cO(Æ1A]£ÅCi°bÍÝ8¥0û4¸&ã"]f;+I~kþühÐ ª¨çdù²vS>ͼ\»ºIçÁHÒì!pOá4»°7Òöb¨AÝ£$ad²'W¯KéDªf÷k\h|spÕܸáØ\ÄÕíJ)¼}LX¦¹¶s9fêæ«|Z¹=êÚF ÏM½¬
+!ì<|¿])TªáSºÙÒ^÷=ã!?"(ílY/Gwׯ¯Dmø%ÒXëSë<
+ßäiòÉêþ F«àQ¡VÚ;;óV¸;cd at tú¶¨½Dü'Ò*¤ïN)
+zKPD§~£`»¶é¾Yð°úñoþ
+Gak<æÂæy«ü%HïýÇh2ì?e̶Ëó(>
+&èÊ
+íÞÎl£ËúvAÃ9m!Î;ò3Ùè2-3ÀÜT>HÃ
+DPa¬)oÄ^G¡f}irg?DÑ6b§²ä¦üðX¿æ¹¼õLlº2â^ôa3¶ÞpW»Xüv0l Õ0æ´º36ôâËÇ5hObݪ ZAP»0óø¬;Çú>°°_ N)µ¹YW][âó¥ös¬^5ióé$òz¼®k.ÐÞ¤4êªü ÷«Q!/Hi¾
+ÄÃ>}âJ&ÆçO]TæykÃA ĺdZgnÑ«Sôß®dØyÌïÇ:¨ïmZC×H²rh-r_G·
ÓßîUDRùöJ®ñÞOì_}ËÅÊ
ã[Tøõϱuä3Ç ;xâ¯[bLò²Ígé¥9¦q(Ir+Qµ£VQï§
+1rRn'D0ãVY§Þà49ùÍäżËGÍ÷Â|Ô hyÐøÜxĘ̂P1Þ¥§'7¢ú¼íà±Gù×ým¶êåû]ôâz0}/¡Íe"übIÍ #O 6$l¶b]ÓóÙå·±kî.FÀ,úì3Í1!ØBÏ^âõÐϾâódîHÁZ®ï½Ívß_-n°e&îÖ=0Óï[zÎý¶¨
+Ú§´2x³0¨AÀ»?iár/GÀU@äõHø¨xÍãçc GR¡ÌÃ4
+òYºÂyTò_Ñù .£í¡Ö?¯ò«¶®Q(rÆ
+.È06¡@û²eÖöDRQ2ÀÝQÉY:ÛÈÇ^Tæ¾¥·Xo÷æ»ñuz²wyÖ/(pÒ¡¯qÞLðÚm"Xl"Kº©·ÒëªV²ø:¤&ÇB2Z®nÕ)åÅÐùim¢æ2ò©,½ÖJ|ï£É¿·Âþ¹J+K[ü¬GAýªK"£GݽxëuG®ÔÆÔ)̬³n1ÑÔmf¤zY»G@üS'
+Ú_rTËrʾ.æ#«åÛ kPûy. ÷°Ëí ÌgGÊ)Mãwß.ÍM¯)¡«âY2Õ2¢Î/
+?¨¸+&Xî/ª=ù"°¾üjæ30®Y%Ài"L¿&2ÊìÔ
+ÝÊMD,µÌiEÂÚêhCÅÏíØù6®}¤Á[µCÚo+ø¤Yrysø)v=Ç{IÛ?l k{J¢kN]Ôzrt6qdx{ç:NX©^$Óè©ìÊ T(nÂ1?¬d¸úÃbƨ øyÜYeÉñÙ
+ÜSoñÐD@úþZ ®Ó[M{I(`íO±ÃRuÌëï À´¦4GTá&©|éåxsôµÇÏ #é ò¾~-}@»)ÇHC6ó½ÿþÑÛ¾àdæGyQãêùt0©sÈyúòÝ´$ç±ÝUµú®2Í<CøîPç¾ztʦq¹µrõ±·M9]IY¼Îà
+6Æ´Ç×"oÜ£´]ÀyÐÊB)§$GOtÀ#^" n2äT·l¨jD:#ûÄItAZâüxz]®øp!#{ÆenféZí#"víÍÇÎRȰzí¼ÎâBåÂcoFâÏTÐ=Öþ©t;m3FT/cq©fÎX×@hiíÌ8ì^ï-ufÜDÁ±J÷ØÒf ÈÄ<·ÎÅ
+$V¸õ}õ¥\<5
+ËI
+Má®.ÂS¢U-ѻĴÔp{òkäDyÕ²í:rk)UÌa8"t(±&iÎ$´>ìÃñÏÛ^xSâ9¢tFK¬#ìïî[a'ÄÒBz½sD¦ÆuÊ[õ Ä3,4âóaðõáÌyJX°Àç4OÒQ\ã;sÈìZ®ªþ©ÞÜ"u|´Z;ÛàîÂU)ú³ÎûóÑV-tÐ
+ÿC·=Tf± 5ªN½ Çä7UTEtêÓæ\Üßð$ÇYÑæ
+v´zÅ(KhC½â½ ˽~¦9¤ØY»{^"(yYÝÊ¥iy"Ä ¾Ì§V굺;1zÐW$_¥;UW<(Åðúi/>Q!{¶£=v:Ó+iÜ}0)º£Qu¶¾·ª°ØgSqë*RËð}n>Ç~ân|éC
+¿\2ÅJù÷´É`È©zÇ\á]ö6ß§>Èy[Û´]3)åBdÁã@T(0qøAÔÎf«3lk¦P¶[ÂôI`G;©j =4Î8êM3ð)DQ§ù9ÜÚèîFðGk%F:ËQIÿåþÒÆO%£~¥[\þð¿ 7Ú[UR-²ÏÄÖPÅû÷§Ën
é:v ]ãb>ÌoÛ÷ÏNéì5çѳþÞF$¾1x¥k{øãíÅ5×Zÿd!æÈl.³S¶S¼àK.Yõ.û°ó?&|W¡¾<ÄÇ!
+÷Ãúw|ÄköuWQ\mA¡CþH
+@ò¿W«eÚ.=ÛÆw)uÃq7
+UBeÄ».µ
+/kK,¶H^rÄ2ë÷á¥í©él¡ª
+Ø}LáÏ[ÓîÑÚAÖMû
+6Y>LýÑc/¶X
+Ûî+.å´ø¢»éä~S1ý0!ª°H¡MM
+ÝqàÔV|È=Ó<¿^ÉaEH;CgçÍ{¬i²·=Ô»2ã0feÞpÔúÑ^ÛH tþ"º²T;»Í@Ê´¯0^ò·KIhÅ@XµÚ
+*Í+W«Ùãæ±?WÇg<&ÁÀ³®¹ôb TÀJa< Ц´úö]êÛ<øyr¾S_D§K¿Õ³ö¶ ïâDùP¡Ó¾H9ÈyÄË}8¶ñ¾ÎVº 22AqRÕ \6ßóÆãî¡*:©,qqøßºúÜbFÊîXró´ñè[)w/´¦$7òá^9\Jè?Ö<B9^áF2ÿÅágÕé«.mÐIüX~²É$n;µPX ¥^ö:Tûï!ª7¥Åðm+ÀÔµ&hÑ:¸o\~åsÖ²ù}²Ì(P»q£µeð waûhtR>E÷»Ø
µ xôá`x«åZÀHeî(
+2Kå}i;aãÝ~Ætf}l(Â!³,ØÆ@U8ÕÑt®4|òl§at¿ùжmªí·
]
+GûëÜÐø~®¬ÏY
ìA@Fﻩ¶¹yrmïÇÑð±G)a4mµ©ýïéìÿÿÃ(±ºð8«ì-z«Èv{5l jËü$ª6<7{¤
+{\Vó.¨>ä¤vQ×ïÿæ¿s»ÐYÈ]hEõs&½RY¤ûØ9E
+Uj#|èmÔ½'?ËëÝê-yúÞEÜ
+_WöÚf'ïa&~`,}òà.mPBµé*d7-E,oïSøÕhðêæÒü\ä¢B¿âjä;öâóÄàzpþÀZ»jûücÿñwº&ÿ°ÓfþÞ²[0"³w Q~üâi©
Ãüªy=íÁáR@lJ]mµ§»¿H|Òjé.ï½ÿ½³YVWá¬D«æ^¬a½7TçÀ
v.qyFÖá ÉÍØP=6R÷³4;âÓÇD<Þçr¯)A>
+î pH;rø fMC¡¨Ì«ß|ÈàÈ7lTÀ¥ÁF0´ð¤\÷
+³ḭ́Û×eèy+³*ß
+üÿ§æ+ùIwBb¡ÝÉ'±
+·#³N
+©®Ü0ãÓãMÝ](¢Àè2³0EÚÂNytt6§©íj¡ÎÎÙ"¾V{I*[pmVö×Ì»jÆ/!GäìLrþPbÎöHÏt1ás¦0I«G÷ÜÏ
+¤MrsdÜá;w©þ¥ÈÖµ¬®tgÕ=%§æÒík¸ïÕ © ÀÇCæ|]ÊF0¥IHä#Põjâ¤ÔÞ¨²~s&
+X]U,Üsf
+B)§ç
+ÿÃC²t~ÀË쬪\ÿ"MÁ-¬IÐf+µÈ@+ÍÄ"êmHÁ9swr«îú-ßÂàwõ¤»d=RMHÏÅoãÕs}®GÑ=\¼ïÄþ0©@Ò>sEvc[½¨só&
8¸sµÄö4q"½¾sµ¶t[â3GÄÇ7¼ª÷-é
+âC3æ"ÃîÊÎ]#C
+ê×Ç<mÈ>=Wá9gù
+hÿ7hVzíµ~î ¼L£ßYºßN'M?kü^@CGwÀÐXßÇ
õ}X½&5aÛ6]ýÕï&=Ъè¹¹[TóÙªÎÔÃ[ýÞò9ÆÝ;Uw²a[e$sÎ|ðì.Ù9lòTz°ïç
+Ú%|JVfHbï½CS·CþÖ¢aT[æ×æúNN(.çMvKµ^
+üÙ>6$I&Ð;YòÄg?[ç'-3ÄX±o$¹éÉ$¿o'ëò°ê\¥xò^Qß3ÙâÅê
4ìf_r¢uÆ#âvëR -£<®dò O©í~
®ý¸óc¹
pméѦjÚ/î ±"@ø§Z;£]tT
+CBEW.)ËÕEQZ2Äæ#9¡RE´z;Â.·ãT¦â,ÖTжÛoqOú£üºkÎA³6¥kÌ]¡ï}Êì_aæ_·EÔaót§=è*¡åC2öÍ´û®.jlcGèÎ/Á
+ChÌJÄØ
+ÒF©±ÛT¥ø{÷£-à,AdsÀ#·ñßC&2=k³Þûs®%Moÿ]ìïȵ9´ekV²È"ÓÓ´¬
+ÜN#Z!Ìãw&ðj7ŧ¿
+aS$¢x(òÅÅ2"ð-¦[´îîgê¿1`TÿPã=®*¯¦kðG pAó-æÑRU ¡NSÿ Ýßá+ñÝBÍkåÛ9í(Y%÷u)¨Þ1çk´ÿ¹9=ËæIf¢j
¿);gø$Σ¡øàéI?£p©$Í&Øé@Z²I(øÄ¿¤w
+èÕxæ*»"_÷[·Fi\|. ¿é4D¬Æ@cÑq2A?_§»ôÇS=ö¦ÕHÎW?ñé||'x©Àaa³L©JØ·C[,Î)/éYõ¦±V
+AjÁNÆ¿1+É®%->Xêæ~6uV.RÞoRWäQ2àz
+ Ì99!¡/t\A²MJ`éJÚµ}rÕ'#v|F§i'i²_Nâé7Ì.º¤6f;²ü!%9 Ç¿*$4ì#ìo>;´þUºSIð]صëõûh¶^ÃËäÊ?5:Ô'÷mø"{âGÝ£ótö×´gñÜXuþêÐpí8£aFtT±ät
+qò¨Zí×ù@Ð\zì±y{:¯
2áßökê[úñ¶|à2ÿê|3{ä¶cc_>?òø Ä)÷ÿ.á§ÁD£<xaÚHñB߸ÍíXtǦàu®ßcTë á1Ö9]¿FTÂÅÿïØfµÆ/s*Tãk]?¯¸7ö¿¥eàGÌ;¼èMïÂD÷¤D3/]çw¿Ð̰ÔLÊÆ²
ê±äýÓĩ幨{àI&ïßKE4>#É|Ý$¶¿Y4ØÄÌ㺶k ÈîH ³ö=B<'6U
+xÁþ kÁÞ5Z3þ¦çÖ|;¿ôoÅÛ(+ú$keÑKo³J_DÈæGÔ¯%£g¦,JAµ{ðËCÄLq6j\;Xüü
+ZÊ
+®ìzïásEÒ®êõL!ùºñ-8ØjDR5º-PWOÂÆiÙ*S?+ÒNã+ä¸ÕÚ/~o@¼¢-L
:¼¡¼$Ýò6[ûKè
+ãí¢üxiü¿_Mâ;*åçA)í¿jÁjn¦Ó»
+èbΣÞ/Æ%Ù¯¾
+õµAâ¾:8Ó»"Ù)¤ "åùøýkb¼"yÚøË=ëVû/Dg[ú¥¶h±6%´äáé³/KeÌj}1¦1ïb£Óß;=eMd
+¢¦ÙÆû~±Õ¢ ËîáÓ²SD¢Ü²¥ñUd2$|ﻲÔ(o¡^]]j
+Ê»c³OÑûÈÐHZNÞ5z~]}Ü{Øè£ÿ_
+ÇX2ó~ ¯$]V]7Þpµ67¯_Èá+fEk
+§$È^£·Ìõp8uH+/Hó`W¼e6üþV#LAB=ó\Fy$··=Ç!Sù÷ÚÙjÎè0
+Ú\;ÆÜlïx#|©Ôi6¿"ilen¹<ù¤
+ÎA½oúàR·hFãdÄÖ=þôÚPg
+Y³XWßp09Úõ)ã¶.î"5PÃ¥üÃçv®_P:Chöyû}>!ôA'äHäL¸]÷X
+ø=o;O£Ái!rüçDhÎ÷}ص¿;ì6³´ÒÔZ
+epβoÏÁ'÷Û ô|¼3N^ð+<¾âÕ
+Æý»0-ÐÔáQ²Þâ®VJUj at 63é2Çg%óVïÏÖ°êî#LÇ¥B¥
+6Ô0Q*a?Çðû¼6Ùàª`âõÊÓ¨('g÷çÑf ç'AÈ;!>»¼m¹¼úW°2ÎÜÛ1J¡ "×è1|;¤y¾Ö
+N²°<ëîíüF¨w²zKGva±`Ýw§7I_%Û¾Üô
+nÔ8M#D× "ÊáBØ×ÿÂ-
+C¿g¦fb"^URÍHÚÅMmAáoyâÌ×6ðí=JQVFÂßQau)D{{rJ1ÁÝ},îËâß^Ù'®Ú¥v~khìtØ©`ôÖéòòu¿Uþÿ7_R5ÒîÿòyͺåO[LâM9BôRI
õÌÓfêéðÑ#Ò³{à=³Ï/ºöºÓ¨'ym8}ô8ÍCî¿«p\¹
*·há~-m¡ã8lNkv}vðÍÔe¶Ó»ÏBúè8G*©Õ´Ìc*g¦S§fÄ2Î%vÀ¿9¾)ÛWǦàÉwXê"m¯6Ü7Y×E¿
+pH*d[ gËB1 w.MÕ
+ Z.âX«íî¿ðÔ¬DgsÙÊRÛoîSK
+ZÙÓü|Û;0º
+Wh&2|=P§ug¢°j~¥à7F$Ax\ùûª¿¬Ë°ÏT+´öÉI3\ÛhS5¼$\.¾Ï'Ñ*´BÐK g§ ró®ôºÈ¼
+Z2>ïü}W×ãµà»#ÿ{så¨ð×ßë¯NLÒºk·Z~uÝÎ×r¨áªF
+Õ-0àMÔP©¼'ð^Ê$ú3N3ÛáìËÉñ_èæ_
+·ÛÙÕñ_Ó±UÙùß5à ¡iyq%Xù
+~¨}ü¨Þ´^ÙµCØ`#l9Ñã(d´$÷òÓË·AD<+á
+@Xâ¯Ùóò'ÃB+®y_e:¡=iö1`QÍp;çì¬üCÜåðµÂÎ
+¾AÙu!ÒQ¹SÉéÇG`{=ݤ²êE|ãì4S~ËÁ3Iq=
+wÕA-8ÉWf°ì¨\7çPW¨aäÖ¦î¯Î.¤ |.ÝÙHd¦£ö×iùÉtÚúÌÚ·)uÓcT!¿N89+¬_qªESÔ\®Î
+6¸`q1¹VÂób)oÙë'Ó{ÔöägĘ̀¸LFë¤SþÀ_@¤F±ºKâ×ÃܦÍpzµ.y²G-.¬eÜ~úí
+¡% ·wÛǰŽÖÑгQÍpÑ@>ÁÄÝÉa8GÛo(¬8»óýoßN[Ï4i>-B&åz®Ñ?PýÕ±p\VÀ¾zë7¬ö¾GèËãnÚe§yÏìLÿàB6¢RC´
ñ¿M¸TrbÙÖI*hÀV[rcEÉûÍÃÌÛz)RÑ*Á£RdMÌDKekÓí3*<Ûw Óú»K
+iJ ÅA.Nd_ aSPU
í¡7N#7Ý˪@EL[Ó'ý¤1¶_Þh¬ÿ[ËO#av¼!I'4l!+©EjæÂÇÀ:èi~R¥TóSV ®d`ÐÄ»ð²i»ÿzè`jHñ^õÂï@îÃbl>µG¡Ã¸Þ¿¹"ø?
+1ɰþ udþ¥Ô¢º:\Pû\µ6s-)ÂÝDN"
+¥¨pCi&¹«õ
ä%<÷8r¯hûô>X§eÊ:CçÆH÷Q^ÿ~ß3»´âvj+nÌ÷ܸwã×xñlô5E¥q¯ÖJh%©`L%«ÙElJØ;m
+Ýü>ô²ìþÅ+/]åø´¥©e£-ætdã£òKX´þ:>öµL'XN¡=¬!Ðú'§gѳ.³ñâsáÖn¥ÜÃ%|^)éS}#QãT\.Gã<Yн zÃïÕa2~\A±Òæ¦
+è©ÈÐ=RËZÀÔä_ü
8ÙÕt(Êð+ö\aÕR9j@ÎLʶóèMÓº>äaõò_'»éó;°ZEɯ,ïÏ=±ÔK#KÖóúGfÇøÁ>½"ÂêÇ+õ
êÝ÷ôé#ï5i]LëvÖmÓ¨3ýIÌô~ôH
pø9èÕ7&Ö·íñ2Auüh2ôãZÈ©W)ÅeÔÈ4ÐôÌ¡tk;¯ª¨îÛjäkn±Ö)UK;¡ÀëS`(íʺk~ÖmÛP^w¼Ë4ég^¦D+YéÌ$Ã/Duîü]Îæ¨®«3úZ·TǬL më;þÔ0Q£ÞxY¹ÌØWÿ}:¿óõ(ß]ÄOãÏ$*ÖÕåëÿÛ¿YKB¾Ý<Q
+,Tf=©t®ÚeAyzS%[ü»
+sÎ^4í¢çrv[h¡?Ðý·®@i³/À5¥.áß9Z¿¢JJsäýNð®!CF6`³õ7Z]©ÏÙÐ
+"7Î>ð.õ\»Í[¿|´7>$ûµfÃWcJ¼;^øÒCJh¹àqádÉfmáé\ÕW úøË«A:Ë_ÄKæþ·3³¶¹6ßÚ¦÷ÅE ×ÖÕkCή Èò}¬:tèÍýÛÏ)÷AÚµÓ¯ÿ<ñ
+lM¦ø ´ÄÝmHYªN%xLÌ0ÌðD-9]%yÜõ%~voí¤hF/iØ}ó-¹ÓÅ;n£¡º
+È] U£¹ñhÿw7íPûèÇF¸¡ðß#âFnhʪ.Ð÷>ÄE yÇ$q´¢Î'
kcïz"«Ò
+hÞôæúarÍ Ö¢<NSÁñúÀAçHÆðgÕb~ä9¥BJ>?IZ9ö¿Ñ°3¥K×RðÍÇ#Ǧ
+ÂJ¿Ü½7 L4!Ù±?¾¸I9U}B¹d?ÕA)/.goqi¿rbißâô34_oÀl<ÕSAµ;TXk^Í*.SÁ/>è@pùjU"¢¶v}\ #Óà?~é¸ñÞl}å±Ñ+#³MøéÍGc¿à&ësÅjº-¶ÂCLØâWI~A^2HðÖ00: ½¸n2*¹ì ÿøà6ÇÖmfÈ@]sü4¸Ò]È!«{rBÙbXÆÈY~l¨À«q¹{ƪüót0©:¢©¨0è-uÌ<ÅtÚÀoÐ}8 ÂtJw¡ñ¨u²
«}Y!Ý?×w³
+»H at 5½'&D:H
+*à +ܹÛNöãõB»f?Å·8¢ù<fåÏ[äl©Uï§§bÖîÜ;ÞòD;É¡¢÷
+ÓngV@&øÏ£txè¾]Ïíñ
+N[+Ô
+z&ïvï÷17ø¶¾<>ã}úQjGOã"qNÜ`KÎß-5ª¡¨ÍéÇ~NKF£ò së^Ʊrª/ùºâÑèÕ[üJéù÷5 ShÁº¯fÆIñèÊ
+w(óp²¢Q
+07Ë+Ô
+°i>!Ç
+ä·ÄF%YØ[@¤LiÉ{nz£7¹lwéþrI Õýyï·GSõÀpóÚ/xF§_N^w»ët ÝxU}ëcñ¢Õ̵Õx3yPìgÞb6íu;/`¹{úâÔÎÈ´{÷*êü+¡ãuTÖPE-ÂÈNU*×(Ø©¯ÃCñ¯ëÒ7D)ý CÅ
mT,K(þ1àÈjÊg®(YM)*±¸ýëÒ²«s|Ëj1tߢ±$jß%xÒ8Ïa?W>8>ü]H~TK[Ê«ÂÄ@ú#½Qÿ¤"O®i£é0ðÙÛñ
Fü§ª×½5Yô`h¢dýÔ)Õ¨XoIÛ¥åwTßì$§ñ's)KzµvjD§%ÿ$ÔÖô:)l)¬PâaZ!"XÌ@«>\c«pBÏFkë@N)¤´N¯ú×gø/réÁ:ÊGLø¸Sïâǽ./'´ù}>?Ålè¯ÔAÄàÈÓqÀ%x
+Á\cP/í@±ïû¼í¹&ÇíiúÆàÌ#íè«Ý¿!úyïvãò+Bl@JJz6¤îa;ºvmÀ2ÇH¨ì"rÚ/Ð^ÿµ^²êå1(euLÝcsãr×Kù®Â/Û<MÔÑÇAspkÉÂroX¯ãdIª¦O7¥r¥ºÙMýÏ¥ãPÙɳ)Âd쾹ɶÿ5#0¤0Äc৽ê;=[Jv ¼
('±.tAKö;IÀ§#ï"À¶§~Z÷}¸´îÛ/]
V ê«_ܯ{sµ
+àPÎp½ké~jøHø;³Hñ|«]&ñ3e6Èë*³?ðHI5ö\v¶cÊ®zþÝjá¢%h]¶@ÓªaǦê\¾2wQýã¾½¥×'x/'
Σ)ûÆU6ÛuÈäpñÂp±ï¥Izn÷Í
+M,MÂ@½ö;®õd·:X¯³prdf1ÀÒ%'y+¿¬7Ì?®¾Öìª+Zq£IþÝO`,A
+|&Ô`m¹wHÚÙ }¿*kjZ:÷ U¯_UxIRBY+JaG×ÉÏ<÷Ùñ¤
+óýnDF£J§H$_¼iâsÚ9oÙì}[%àèCkaAP²r~òèùÎLå~N<Q;ÜñüSov'K_3-5R|ÖÁvï,}X0EᲡá§Y¨
+f<½yѯl8á.
+xìì]F"Pµ¸Ñú>ç
+wº÷Áµ7Äe·±Y¸Ú<
ñÖͼ|²TæUÀÔIge{ûÖúkÉ;¢"Ûô×>íʼö7äð>EYg³·¹Ý
+Øú7k½ç³±hy».è=Â0Jôp±7g6F5ýA9IÚ4ËxNaV´¦ªÁ¤»#ÙCQE¤©÷¦)¿5èéA
+ñ]ØïXÊ2a?k GN^²ÕK#3öä~
++Î!Ön²G31Ì%»j=ÞYõDû\Üttò²C×ÝHYß\Ps6â?<K|ô]È\ÚOÖ)8ALÀWñÿo[Ô0ЧyÛÕ
+Â@社Àë]µ'£»ÃÒÂï·Ä«ôó¹Æ ql''Ù¢R^ BTÐý1â¬tïç×WÚ{ÜÛX%}ÝC#Z³ë-ßFîxËí¥ÚQÃÉ$~jZó©Æ·Ú_Ç´²¯q×°£øC¨S0Ðq%·å{æ¨âÅbt}üwñ1á¶Ô¸ö^aeê$yÙ(¼[©Ä
+¤&£¡¿ÏmU<ì¸ädì'û=+#
+¤j4rz®ÁCÑIü_½¬È»l?MQê¯OÍ
+ at 3lãiØTÎø³×c¡úB¬ýQ¿C{$4Öó
++¸[ES x)ÕA²¯)]CÛ-¹zÉîæLJãA7tȰ²?6ýÄU´¿Ç+9æâ¼"g¡úScefi-Vw¡§úËÈYjàæÒb¨êÙ´×À?êâ¯üÂD[FêªÄãOÓç衳!}ÿáNWGY<¯æP«ð=?L5.=GÒÒLÊCj`<$ëCqåþ
ù}>fêF
·Êy¿jÑ{Á9ÍáRK%øB&.^ôüÀ^'-;2>|øQ/ûøqÿý7¥)jȲ´j'§.½ bªõóÝêÂ
+æ«
.Ê×SôÕlrnJÆ©XmB§Üª¹¥^¯7öË'èå°± ´þ<Åý^ëQÅ>i<_ÌteÀ©ÕÕ)ÊÊaÒ
+ïLË.sCfVE%Îb¼ R¼·ìɸÍwjÓ Òª¼\
+ÞËAu<£=õà:¹#õ÷*Ë^§Å˽8̨´!pÈMÙ3ø/¢á÷ä;.«ËÏl°dCßh«\°H::LÎËqQ¸:3 ÌàO>¨L¦hëXeyß#tõ¯s
+SaòHø"R¥Ì9 áñ`q%
+ÜîCì6zxÄø[ÅG¨ÆH-{wÍg ÷äeü
+Dc4?îíÖÅ|ó´kÛÜlYa
+Á¾Ü@¯÷±KìÛ0)¬-õ2£${/
+ò¥F¹r-_×ö¢Yaug¬»Åz¸.ÅmÅ?ëe1I׸
+ÆÉÂHêàjyå´\^÷C}=eñ²Uúmô&O9f¹,1 óz¦mÀ3.%8¼
m]g¸d?Öd*¿H.ç/PÃZÍr ÚØ4$è¤Îð°~̽!J/EϼÂ-Ó(Úò¸&ãÿ¸ü¶%Y²À¥³YÆä'À·´¬1÷«%ÍuþèCSvæTQìç}éÇI,£UTvåw ¨v¢¸Èy¢>,?´¨1O4X9cRÈ_°'Yû´u©åçÔrî± :×ÀòÜáMÃ+7ÂéÕgÜk°Û²Ï®W$wÙ4aEI÷áYø]¿¤l!tÐ-¨01ôEøÃ9vF¶ÿEYO6)XÖ§ÃuýÐ`t㼸ytJTýç^ÃÌT÷[`´NggÍì1|LÛ¬ãós"&P SùW4 I~¼ñYj#|Î!©+íº¯Å¦/ÔÛÉí/é9ÑIÊG?ý4 &Û(ÒÙiùÚ/ø&·LÇгç;VìׯñÔúÙõxõ]ë+=22ÎR«¡
+´Ùõä¼M
+u{y¤ÍN9!ëPA?Bòîtõ6üƽîäÃïÙòp ¿f¯ÌV3ÁúÓ
+Íɬ½FmGÑô¸ÙàÓk¥¡Ê'ÏýK°ØñÇü8÷J%Èö2¥úsçõÝ"wXÇÕ`\NÿWB°ÓsùÏÂp5Ýãg|«¦ÍH½<<^ÇÃ#
+f¶~ìMykdë³¹0ì)-`_Bñp·±ßZÊ*À*©Ç¢ûûÙ|
+ÒÏh£yÀRéÉ¥=½V bhëó¼ðÁ¨Fi`?\à÷Hî_¡9yÏ}yj9&ÉÚ|´Z
+(@ÚÀ
+Z·pôÿMlÉ©5ô~d.ÝÈ÷yÑĬñ¤T¶p´áòǾcyM_WåªÏO¥òl\³fÐ2ã5ïÁEjX>ª¥\ÍÂÐÃG»¸¯S(¶» $JmÎ:4ªÍôý[M¨}RÚêPpäð2I±q'³0Nm¤NDp`.;ÊÓ
+úeÉ¢R×)~]h¡)¥'Ó1SráPý+Vb(£¨MP£R¸È&Ä;ð¦î¬V´¤~ÑGñ*ë¯QÑ-Ý 4ó hÓb¹ì
+¸O1|Ë%c|ª$¯¤gE:Õx-"àâÓ¼Ò\§±qZ|¦ì^-m:zÌ;©ý¾zÒ (L(ì,æÉ©Q'Cl1Ñ×ûKPIKµÕè´û3xD¸7Íb÷³át].Ç× Pô9D1²#ܪê<¯
+¾ÙWª7JÞMÿZ1éj ÄË44¯\f{bL̸Q
+l_T ^aÏ1Fê<fÅîÉYyÓzú3Õóc£v88ÞUصhOÀ1d¡¸VÄÉíl0=Wè¸ÈF*n%ÌdïÉ ]ïFp¸Nèù¨ªlì5¬+*ëlôÿæ²
+»$oµ÷/·a+9_ÌQvv¿Þ
+rÕoâ1ÛÛXÕV(G'*gäÀó¶v}þ± Êq=àÌJ«d8kTNÃë°áܼrñJO®.
+ cJÜdF4õØêq
7´#<Ï|aËß¹
+»
+EÓ÷OgHÁTA«Þ«ü$Û ùy&Kl
+ñÌ»,ém1<?*lÜ÷ãMêøsÁò»¦KbÕ^ÁîÂü0ù×Ãaçã5(Ã_Æi4¿g½.êÛ¹R£ÕÔT³á)ºÊä·Öÿ
}F ,ÄAû_t©ÅPbÃ5
+K¤¸lzJ
+M°¸Áæ³÷JøNúDÌ3JÍø]ÕÙ9ÕÖ["Joé[gÞ}z@¶á¬`¸ðÊèhÕwr=èyñroV_;ÍÑÖïño &¡Zµ3
3%=Ø>S at T,|%íFrs:H×Qå·PòÀ¾ ÜØô~Ãyû÷ð3ó¬)Ö0"'K¤/B6 0ê£öÙNF#t^·Ú!?¥VZ
+颣aRÐr#ÃX2
+yÈA»¼
+j>9®> ¤wú&Ò½¾ûd¸þÝFÝRç
+º WpG«~{LW9§¡Aw}ódÂõU&ºÍ¬XÓfR;ÅRÆL\.¦àXêÊtÏ$@ç òîÀÄ7W:'Ð9r¼«çïï!¼¥åÈþ,ávæ1ØÓÝÀßGp¶j«¾*í¯dAqÚ#¦ þ ù¬(
+dyü4N3)âóyFOñb}¶fê6®8ªMW,jÜ>¯aV³÷뫫ѧF%û´øÂ<ú/ðõ'ÉÒÓnÞ × Ú§(c[hVtB`X=N8*Êæ²Ælûõ"sÁ¨ß2Cqi·¡3¾¤»´ÕBÆ7¥¢
Ëܺüûÿ)2?ÑI[ÕVRÖåíNaÞ¥srß3§/¢ÁÄñ5J ûß:4wEÑ vXäZ¯L6Ð=ïUSñ- ÏÅ×Ȳâÿ¼VúèµDuD0*2ÇÎ>.Â.>jêÄ\°¦Ûí8)i¢¢
+ßÍÑñ´<73@ÝXáEð°[wj2úmÆ÷Ç6Ù.ÓiØæÙ5Ò-v ô§að'[äüõJ³ã¤`*Í®6É{¤½Ë«¡à£/Ï÷YÐJb½å0ãÉ
+ø5ii¯ÑÈa¨@ö¡ÜQTàø4
+i>®¬^¤FãÌ@S:òêT SºMíMüÉÍ0yÜpdüîédÅëÍÕâªóäîGpI2ìëþÝ÷¢þ[BÍÔzÏ'ø&¹ÖQ¬Y÷µ¿QÔOlæ"c?¸.˧äm I;¨Ù·¬Ázéu5þ>Rm¤C= UÕî¼Ð#SƺTõÛÄ2ßkAgï Ö`>LùNB+ý¹\Ó®®ânµÀG~Õ
+v,WIÄ:OfÓ&ï ÜRÄÒWg#ÉÜkPØ-_&ÛâOFèoÒaÁzÝæKdÛÛUYÙH8¿ý¼CÓp5%]LÖÄ·Ò-ÉI®"+;4ú
+çÜ'Òç*£DÐ
+Éöå9pa¤Ç|v¡&%L7Q¾0Å
+c·¯õßæä.ß~'6îVä»"|ÕúRnáNǧVÔ)
+#8ÒÁ4·ªåÏÑ4üÞój
+Ëø
ð¶Hàr"Ki)yÛ,2%·uÕǺât;1z´
+¢¶ºc
+Éù¡ê³¦óкwQáSãã[ô
Cû8¾.¶võSûÖãkI]Þ0OýHåOb89¤U
uâM}ô)O*=)óÆQJ|Tàc¼Å4¼DæñrkW£Ó2ÂGà"X{
{ D{įtUÚ´oö6¦-ã¸Ý»°À68ïV"Ý3º±ÊäùZI)æå«Î^Â3P^ðX¬VäöãlQÐøbz9V¬¸á+Ä¥hYiª9+ËÒ+ÄbÎÍúý#ÔrRgÊ9¸êúUî¥'*°Gþë§[/ ´èiü0q&÷!:¨°H4££r¶ZÜÍõ
+}_àoêöä9ÍѶÊÜÂÚ áA>¢'ÅõIB½áÇê¦!òʹó¾áñÐn
+Öµ<+|ßãfü«N£ô
ÿi@ÓºR¹ùïw<úTèð0òÜÎá?z
+¾=BA$õú¥öw÷®Mó- @IRí'[ÚSI£#TáË·f
+bÒí6¡©ç"Uè
36`SõgúZÊÆ×îÝS°º+ÃÖm¦ cÓàDpNoð£uK/1é±mÙDOí»ó> ôä|¢0à9ÊØI úV¸$±U¶©à6Àð®B_I¹®»(1ûèÒJñ ÉvÍÌõéܦ/.jÖnFæ¬MΫA°hñqdá4ôé$ÜËà4PÉdê`+é'AÃ1üßY£*·é¥w¨\uØ©j(ûÌGo
6ùY À«½fUwö%äS
+m
+/Ü(Qe Zé¿ø_Â.¿IÔBÌwHmâµæÞñýs/
+b1Wv[¶x³¨³û[ºóÅKRâGÙ[Ú%±ßvìߢ_¿â_ 1ǬùVvúBZKúA Rø¼^®÷ðAÿ<9qף̱CD4àQÖ³ú)Ó´Aí-WRh
+}¥ä«³U
+¯GCç{_7þØæ}rH.gÖö^Éÿa"
KzÌbè,#{y2ä%3¾0<»!?v)GHì_ÞÂ
+âeÍZMsØ3ÓcÎÚþÍâi[ÆËÜÎ^ÑÊz¶±¢îþ½x¢ qÇ\j }§HEEÆEÀ&û'O&»
+×Ì#eêÐÝ?½Ö4òÕ"·3¢ªlÀ0+Vj°(å+Ù§Õ>üªg¥ÌOñ)IÒqcj]Î|øLçæ¯Á/Ünø6J(´Ö>¿W¦ÿgBc5À#Vj·][x¶þò¿ÝèÙͳC¶
Tn1F9³íeÜ»´í¾¢E5´ø|+lE;m¯cv¼×·¤¦cÔÚf$»°é<Èu.¼ÓOZ«#õAKOV9½N/Õ{ÓWêK<ðß
+5¯>b>P¦/ÜC5å¢ï[ \ÚVø¿ÕÎMü<;ÿ0µâ¨þè3V2/!ÁÎÒdC²WÂø i£:Í
ÚÛfÉafüÕÒðÈ»NenÍMkAÿÎVi£)]P!
+ÑÅÝô´]9\¢GêÓ¨
+n6TçôTóÈ@:£9$ùïu
+¦5&]îM
+ÉìÞÉÆ°ÌV¡ª'Ã[jò»XäXíý-ÒÒ«Âù«_B¼É¹Dt~ûVµúsÐü¬ÓÝëñø é_òÎDg`á3eµa3º"
+7Q.ûcÈfo8»]éÆ>÷¥{h8x?oÊb
s>2µ_ûøDuíA&<ñãÜg§zL+4OG[d,MÞ±zÁjµ¬[$°>gª°#=w8Y°uä\J¹P{ø%3;¼£S%lÆ!LCµùe¢
+¤£¡µfF»É(s-(X#§»áÛYTnsÀUt#j;¾@¤w±yãÆâö÷ÿ¬ÑÕÌÄT¡¬YR}pc?%]<Öºâ
+§÷´£®5äHÙÏäk-âãÿm^åQñÿøJÀ\MXPâ½Ä¯Æ¯%,ØÞâ];Mv6Äýà{gCdfqS·|þ°o
+CËë¥èÚÂxܬ"Oyp_TX} ¨±Éû©ÈàÂTY7{Pp¾Êe\,'Ë=8«C«>¼
h°ÎÊ2Jðf§Åªýþ#
++ÎðíîA4N¾WúïnMPÛǤ:}ÊûoëlÖÍau¹"<üÝ0xýϦ
+.!kv º¢¢mg3_PëÝ-*iäDQ
+ÐÁí~^²X:£Uõ÷G¸ÁW°uRæ÷ù¿BÊ)I¯û/
+1Òol&ݦ7ûÃq¼ÕWÈ%sÂÁP¤Ñopx¦Þø$û>lý4ÊéEuVRxªÞYái@(êøå¯Ú%ChDíÛFe7Êñ¯Ý]øV9¿fvÑcåAx:«ÓlÎZÔÄîðÉÓh»úè¤ °%
+×v:µ¤údâ¥ÈáîÓ¤a¦
+;AlNÙC¶¡ï56¿"ÚÇîÀwHçÛ[ëG®N}¡}Âodcd2ÚIV$º«ØÑ¯Ëg~Ó¿
YóGxq)Õ
+ªNuÄio'ȳ4Åpô1WzF3<(Oçîá®ÛhÛ©ÁæUKBôJóäÃ@Þ£wäê
çSÑ×J¿|¨}&<jìsE$ò¨úP1½
¿ü¡ã§¢z7©ÜÅùç ½§|WP:Qii÷S2
+Ñ%PÎGiÀ ®
ä§sÊ5ÈîÉér³ÜNª@æA¸ÛqµÃ¹¬µôBúÐ5gÝ#¨ºc½G§ýG£¸ÝUêÓË"8èlmi1
+RöWhîÛ6©aÖ00Ö¸î×´«£T$n8Nì¯À5·eÑÜ
+BåìnTY}xM,dÝqÑ®Sõ`#áVå¹´éñàyÛ¤Àþw¡j4Ð~®óê©#zñcêÝJ©ÖC¦ØÙÜC
+9Ë¥±°¯L:ýA bÙ@âq
+ßH!G¥
bõ',¯×Ðló?XB]ƵÐìâWw{_ÕL.¡¼k
+^ä(UͶÌîûrÅ¢4¾´Û¡B:kPNÌæº«¶ÈE^ßüܪÈÉÔ¿èl¶µÝÎFø9Ý)jÉÛø4:æñôoݨga¦_2ଣÅükõ¯ñxö<=0{>ä±|ÄtiJ©ZTé´6ÿ¨åɨ:S°i ýøêTE Db©P»ùoHãOGèm¥Ùg Gê³µsù¼E'
+ævݼ>ªlÀ.ÃÀ×Êæd@yLaÞìÛa¥eT[êsÀL¸HÂàÓ(L"<O at I|¢¹e6=]˼þt¶ÑðYz%Iy,qiÌòp!JïJ0ïHÉ&Ö¤\qTcÄ@öÓQÂÏöìSçT¨ ß%6+UÙßÇ81÷Ü|òj{Ú]U\gú(Ü7»NxHU¸UÜdQįåÂg$¤-b°Ç_RðBÍxø½üéa 'öyh×HùÕb?*Xëbál×4O SÀ¿]ögðÔM©enËÕÙ>ãQ¾SEwB5¿Ý
+#³&µÙ¹Ãéõ)mó
E¼ÏñËt®^AJÔëqî±J'Æ«@¼!î°ãÝÉx°¹±3qèY|4T6BøIA¼n¢vѱNf˼p{ã'!PX +ê8$rAì¯+^ß:#U(HªD÷}´ïI{Ä£$¤ÿû§Pª2h"÷ÚiFsV$üD£Ç5§ìA¨«uØâ´ez8cs)-é
+¤/¤íÅF5uÙ
Ì7pþÕ±ñÒ\qL, ß
' ú%|7·
+ûÉ<^Gf®e\_Æ&¦ï8Ôìó½ÅÅÖ;dðnpy¤ñA.tßÒD]¾3AG«ùC[´ªA-øvf¦à2Ì5ÝY~;bî0h
+@jBÁÝ®6k,1Ñ&ÝbSîPYjzoeY
+«©f«ñ©d>ë}|Þxì;¨ÊçÀ£|
+êÑZyÑ£%D¡ü]I{|igSÒ3ªTXçré*
+í/qðö;Õ!#v=Ø[¨ìÑì¯ïa¿Á5Ò«Äϰ^{áâM%Ú~þ~8q¤e½P "åÀ¤äïLgfXßxB6Pª¿Ù9Lk ηaÐ
++56úñ¿vÁK1båFg4t6Q=D¦dX5¯ÁmUø¾Çþ®®lÔÿaùºiÞh|Î;ù©oÌNÅ|xOm7ëdYÔV7í °óîôàdS«:S¶ä¥÷ qÅEÍ9)Ói.©nÇ*½Ðû÷D½'êAׯÙÍ_\¶
+9^}½rÃ× ï4'Û½Ò¿°`UL]`JU.|%¿ÿññ½|ν+»7lÍV@|u¡"''ùI{)4ù}tµ<ak¾záÊEYf´Âj¼è9vMxVbïÜÏÊ
+ía|hÓÛÆîYcq©gAdÛ¶ VAòèöûJ`¢ÛÏ´Y(.t`[ÃeO¢,
+Ó6vYï¤bØ"3j.R$IÓ¨"ͶHZ?0Eëó÷ÐËgVõÛÐhÛôäyWgH$ÿÍ[~£ëÂr Æ`
+ûå IS`ѬQ°qmîvìÌvýjNÓøÙtܸð%QÔbüVJJñW5NvõÛµNÍN!üËOÃúÕmpG&Ö*U
+÷õ B9<q¬Pâãc«Â²¹Â
+²o¸ÂåT7&:³üÏ¿t¬lUôX9/ ÿàè2ÃÙáéøY¿.Ù;ô×Zrô}-dÛSDôQ{ÎûÅû§(ÓÂ'ñ'=,í|óÞ]HVíý¹Ú`íûqÎ],¨ñ¸iji@^Ò¯äoß
+ÑR*\ñ \ygL¸À1·d
õ6Sw¿|¤¯
+.v¶W¹VçºH4E 2îúmZ4æ*wäÕÝvÀ©¡ñ.¦,¿âpùC¿Nñ¥QÄ÷êûiÁß32lËÍu7 \
+t)D©ð(ýøÇT4ç¶Ô1Ãð=<ÙÜÝöÜKÛïX]#ÃCëÊó0ÌËx¹âÅÜ8SÝNZXqït¦ßUû4qrð=»µÉß´õ´2Ó8<!WRZ÷/V-Ø)Ö!Ç®
+²ð×=,Ýê·úÉH+ØêýôyÆ÷²PÓzr;öx
+U ÿpîk²¸ 8ÓþAÏKö_KgPzaëÍç@oâ»;®j²ÁÙû«¶áj{s³¡Î×Ñcy¾&ùñÒ4Hz1s?ÌÑN®0a¢d/UX,a·á5E3Nw9¦ÔbÆ+î±¢~ýûþ2añÀ£ý:к¦ä®£åÒæ³ê\±ON+æ
+(_¼V,KcÀh
¦¬.˯߰<VÀLÆöQ|DÖÚÅáæ2¼tïê/¨wB÷ñÉE£YïÎat±kt´2,EU.®,àE![Ègè{)bDn¨qeëɾ
+v{â
Ò1ɰÜîàus½ð»CS26¶Zaº\êÀW¸¶ íW½ë{`Õ¹¢CJ¢Z½iª®üÈM;cVxLìôÈäeJ!nè\ «~»õÈuÐhØÂ³\BÂc°ûõý(ö³1ö3ǰ÷»X¯´Ú7hO´Hð6þ5bGÿcôNÄ|öUYâìCç*ë¥ËeE¼öùöø.=u®3V&̲'~¹^ËüM!ñ0
+4&Þ¡%ß"Z§ÏÔdßgçÿ#oéå¦Ûª$õ)o\¸÷G¼E_ûsáM©ÅLÒNR:OìKN·Û?¤DÅ"hä4C}|ç gkQ@&xZ
+i¥aªï³
+ïøRÑK1&ÚH&¨ åÌ¢èÔGF§ËHM´¼MǪÏ?êòT
+ìn¯R1ATb!Ô1ôjHçlüe®¦Ø×ø·]Î%ÿÔ*²9H1ùÏïeo£mJ[~( ©gN©mHKA¸ñ4mmvü Ç_gyR+yý0U:s¨Îeá7o´O·r£¨H9¦b´ÌÉ ÷K}mp*\6ö^µÐ_ûÈY5êé-`Ã!6ÄÎ9¬¹ÜÜx7
4üæoÌl.ÒuöñÕ7bu2{ÿ
+e¬>w©Î§n¶!}u
+Óþq?jy§è"´«TJ7Bç.°h
+
uhµ)·8EGrøõë%ÁA[9"èR¦IvÍÞÓmËDO¢-PÀ%®iî÷=«dve ø(R]¡K®ørÅ#MZ£ï¨|cÌêDC¸7?¤4jù¾C¨t,ê\ó-ãfä4æþ
+¨]kbV§
+C9î¶½hu/Ö~ª5Ñ)¥B[¥únyjíf#'F
+g_`#{\¤X&1÷¹[oÖõËäM^¼csLéVaÇ~ÌeIc×T%êÞãÿw
åv=D8ËA±Þúÿ ý:w¾ÙF&Â>kd^zÅ´¸{þÝ>Á0á®Ê©¨*çûWJÍá|¸ (¤Ãÿ³°FËØì`£ú¿ªg){ ú~°
+%
+Ë~Ýs¨z,P[¿h¦xÞìøønEtLã¦5ïÿ7Òù)[CðÈ3ýÍÁ»@câ¯ñ·B}À ·¬ûGèBMÌ@'?ÅX%V·lÀXCü´MT B2¯P§'ÌK¢,ÞñÙH"É{£Kо
¢çæ%èHÓûãÑ"3 lË[
+{I¹Ú*X,7¬*O¬Ç+¾ùù&AËzvMèZ@pg±ÜRºå³íJF2èéîæ!þÒsÞ°3 TàpôgÈ
Q%©E5MóeÐ\)Þ[ÐZ»òCQJ¾r²¦À°. â? >ý?©ÓwÉ÷jmÛ½ï§&´M§è4
+,Ä/6Z½÷S4Ç6{ðÔCìeÂ!Æ^Òì+
sÀmßYÌ)k®äÊt.¨V=¦$ô@«hWñpúc(¸ T$Â¥µÓüI,A&ŰÒò+B½nDP÷[°+2oݦ
+i¯ðcÊó
#cpÓIöE·*ÏÜM÷¾G ².8ñ¦Én}àzNRèÔ$?££øÑÁ8[(01n0%Õá}Y ÈÚtÙxÂo+uíз|/æäµ^¶nâ6ç^h|8³8é\ñ&1¶õæJè9§v¦Ö:IÊapÉÏßcº:J`q9í=ñ;Ât¿ÆÇ«¹ÆÌÄ òÃx£*1wW2T±²Ç¶àýÞeöÅ®Ü&3TµE6¹ÅY_ÇzËð
+õ-éh#³z¢=Ì+!òKÙÀjpE= 72,ËCS&mNÈ(6BJï.«A¼Iö<?ö-¾¨`¦
+ ¼NÛB5×è<XýºÞq5.Ã!ï´N½y=R¤lÔ.
+ª ¬ÐÈs Î -öÊRÀ6ÀâöátèýÔerÈEàóù##¯õf5\s5iNdk"Üp}à8¶Aà#ÙbzûÎè«Rr¦íí+ 2//ÑâôöByÉX`'8S¹uG|Ô¹Áw3R¤D±Ã
pCþ6þØ#BRKà½}®a`Ëc#þѹ¡²ÿ®j½ßDz
+çwÉðnVÔmÙ éC
+XîÀ2)7÷Â/ÀmÃDE,<%Ü5ÌfyLØRh
+fáþóïGC8vMËÎØZ¾8èIöÇ$âÆªÇå¯âJÅôaÐ ×K;fV×rDv;è-Ç¢J+BQ&¹ÐI8kXx¼%-G°<K1gQ¬=v!FÚW?ÎÀ¸F¬Ïr"6º¯Ä³»ÝvÑã¯KÌ5·j12¾þ ûª×/´ hâ{.J>g½DäÆá¸]R;ßèy9oжýâìûvyïzÍØÅ·nÁ/4.ÎYö¼®þï@Í2´©ÅP±Ë
Ô¹UT2¨lì`¶H(ÿcÙ5 eÀþj ÞâQH
+]ã!ðÈá÷Î@â>¤6Â@: ýC]¢$6tý_´kÓO]#eoUØ Qz/ÈÚ§øwQpçZeßÕaÓnÅp}Çxy¯Gk¨ð)(Oqxùqü
+MaJºP0Ãn2Å*§è
+bÏßí^ncLLºÒ+_/ ,e {^1k}göò¶P/C^PñFî3Ïa§Æ#aÿ÷fùmë¦(ñyÁ!àq¢G!_â¥þ1¼rFÒþ¨ë:ûôôwèùRO
@íºÈ8q!°]©F
+}M#»åηMÒeK÷RjÙQÞú^°9êÃ6Á×ù2 »§2ï]ÓéRÉÞrÏ»ÝøËÄ=MÝ`8Wë0-÷áfN]ú
+3ß
+êéÀÒ-4wóA&àdë/s¸÷1µ*^cM»ªEfa_wqT.t:AuuüùC¯$=CSc8Àà¢Õ-"Q÷ÝvÈæOîB¹»Ý¯²¶ôiµ¯
+øºû¢E4wÑV«÷ÆÞÚ÷¤²i
+»nQScN\jÇ/HàÐ~a·ÑÔSFT,°¾A¸Fpoq¨&µè¾ÉÈ¡M'MQØ@ôçú-µ.#ûæ`&ºÎUwS?¿°/'w2û-%5¨$.ý4ñvyN BÂìªUHd±ÁÝÇ©*B&VYwÎÛÎlÆìo½æN0éºÒYÙ¤Òá"pKºÍEA1·µôø ï¯';³bÓÊm-ûù_R\+ä§ hcfm
+ÒA
+³lsç®ÿ[ò5²Øçô³~]Ï÷«âþÉåÇÁàTúw}dw
+¦:·ýª:®Xª¬
+E*S¶Ø}¬ g^3rFâcò¦d¥_áMÃ>î4ý `p¾0ÊLøE:Û@È(Q$^?{èD
+ùestàÀeº{oTçN®ük=Ñ,øØìÔêxÊòU2wø6°IÌa?Ô
+Ùêøut^µ4G¢ M #@+G>·¨
+t@(-tglÃäD³P C}ñ|ùdæ«Pÿ§Az¹!Gt¡hd˼Xå+×*8$Vw+Ü}«ÀxZeLá%®]ÖTsF¶¡ËJJù?¡¤µã
+
+?ÀU%á80¿{it
+*o@ü³êvX5´Y¦°å§yݺ©ß£5«cÌ ÍòX»Q$ûCúW&$þAï©8!KØ3TáÁ¯¡jn_ØzØ9êOûL¾þ[ÚÚÊÙsj^¼$µïQ5ÐÏî«mõÚjY wÿg"e¹52/:ðèuHK¿6ÓÑ%ýQ÷Hä¥íF4^¹äLÍÞÄéäÔLÓÎÙ²A\¹+ÊQ`ÉeçÄÈjù¾èÎxÉ &eME~E©ÕÿÀéÿýPÂ,£ZºE»áÿ!ÜNy-´IÒPý|ßO v
+O¡ø?ÅÀq½
+7éRú;kGCYÅ)Ëï
+K{<½x±6lvóvûY Wi·H!óWëwÒ¡¨@zìÿrìÅ]FX¯ ù¡¶kïÍj¼bóþMæÞ6ÈO
+Ç>÷$R¿_^BÜ@ý"GP.2ÿVa'zóÉÖ9Þ%
+÷C ¶+3EåºA¬Ì¶p)ìi¸õÉEQ³s×ÒYË×
í4%ersºÚÌv<¯÷X¹\Ûu$8÷¨ïñlðÔF³y¨ÊßÃø³c¼Ó§Aë\J¤f>ot2Úw¹s´«5®ýêÚhÒ0ñ7P¡&y{Ã_ïK¬>ÿ-oæ|·QjhÒkú\[r®9@&{â×ôç*æUÐñ²xØòk¢ÖË¡e²º
+ at a£ÑÙî)-êÿ«ïø;òñÄÖÆn´íé÷!
+{_s¤£2õ]ª§ñ{èÑhúÍÂK.ß+µ µÃìvÒæ@R?2ÀwïP5tR´>C5QÀ¿;ËQ
+ úß3ßGâC´4p9^@¼¢.rϦÌs,H Ãn9p]¼ÛEClé?µÛÕÎv\»©ä2ZBð2kùÛÏÙrãK¸È.ĵ.7^±þÜ
+×öÜ|¶RmÜÖþó,ÄUÿ^V at têdN·yhi%M93M|äî¯ï"DKäõ o
+ùlÏê9o¼ÉoáÂ6È3"Aþ´P¿a}ivBz4F8W´uÐÝ"Nñ&mBºñÕ~ÿYvùóä)E¦heµ/¶=KøBvÂÉçü¸³¾¥fþXÊC¡4½c¥}Ñ1¯ÃN;ÝAÙ[äþáìmn?õÀnÒ˪Ü;R}|bxû¨mP0PÛáÞÚ÷ºÁZÕê;\lnE¬&[xJ
BÂCèWQFe$KBNyøå^Ç>ÁËí)í<ÃÌö»l1yç}]%·Fs'ct÷ëRs¤üÉØÑ¼sðüXrBø_5¡{ïà§âA9ÎWK~c)ÿ¼"=ÿ=¨ò(xìøì²ºPVÁBFºÏÑSÀ3RÁ
+A7Fì³Ý´9y,n#Pæö~IÔñiB(ñDïªmKý%ù<x$t/ÏG`úîîî£?ͼÂVÓzÁªõ-3 ý7m:^°Z§éÑb¦Ï"Êôøáß,YtnGVRJR°÷¢´:CŤ |[¤ùt³,u,ÞÙ÷O¡*¾P\æùºãt»ÑB»Ä0, P2òQXHD´è$éú_eòhì)&B]Õð±ôEíf¦NGöõv¹¿¬ª?*é.ƽ5ÄUÞ3ÔçÖѲ"E@ZT+úoúT{¨A
+,ÊåìÉæ>rl0r¾ô1ö£Éߺq¥ÆQ5 ûü½§ùÆÀb=ögÓÂsä°½ÌÙ<ív
+^G÷
+ÿ½Er·ÅúéW.*ÒPÙÐ-¾úDjê5QoGµû³RZ
+¢c¹'`[Û6·¦Å³×\éÝ£¦5¹#k¯]_qÇp£%qRË9·¸Ý>©µ®mhhuÑ*nõºú½bóDõ)ÈdhÒ§~¯¢¶/+Kè¿UX· eîXgÙ¶ð.:Cy´k
Ûèøv)ÿ¡g5Jx½ìúZÆ5À?ÆFå?L(¾JC¿ì¨Ö¾4÷E7sJý&hÜyKgô2ueËAȯÁu£eÖÿåkÇ¡ë?¦pS`¬ÚÆ{Ì-£¤6Øâ·PÃ#ß}Û5r2#ÿïusÍk¸PÖå»ç
+Ve/cn^ÀïÛ~.6Zyi·C; @aaZÑKºeVé[¾µÞmõ[°ªìÝ`ê
+!xÖ'ªÊíÃÎ
`ÀůÚÖwá;97C{X]ëvK¶(ÎA¥½Ñ¬*ïË0á\4×ÚÖÃÕÒþAùzÍYÛl¦ÝÐuÅ÷¹I¡t¶§¢<!y%EFAwþëËcÖzæ6ù·Q¼én!kNBù{¨¡~?Z&É~^}·õ«ðM%c=¥p®`ædã˦3å¹*z-q°±üÈ©÷_â_ÃÆ%W÷ÑuhB¡ý&}[s÷ØÌ,eÊ-_bsìðXãzÁb`ÀÈî*R~}/èÆRÃrÍw¥/ù~§z1ùLÿÖQµµ&)ÅX² p*¿æt¡¶dÛßãRuqqñL+s µ:Ô¯/'ÝþrY6)ÆÐð¾ß¹ó
+~¬ò-'Ǫ̀ûØíS§åç®È@À;8Êõª^Cé¥ÔUäÌî¥|RÆ(üö^æ"½ma/®a¾·8§|ÿ´Å»ßÎI£ý¢fØ*ìÚ1(·;«MkáÀ°øx
+=ºÔ]ùr߯¥Òöì:77Iì¶
+3r×KaÒ׹¦Ýg*pnØe'ÁáPýñ&ÿüà:
+é16`Þ&Xê(¿rì}·\RF¾j¯}
@CdT=û¸Õ¡¥Eµ}l'¦Û/kOÛù
+íivÅmâ°Zë}!
+KOnÈjò¬´ÕÌ&Ìôx
+à}·z[0qþë޵ūuôi{?-*ÅckÝâGáÌÉöÐÜÛé¥Vfá[Gîk±Þ±Dµ|®:¡ö£`:HÖD&´ÑEâüÝò5!zë¨]ñ`T2[úpÄüñi#
+6(s¦é9µ²»e\¤!JøÎ½6þ
+÷RÕ$G¯Å¤õ#x_Î}êM7²YFUC
ï.t>âÀÌËÅc¼íÔô)K8©pØ\ðY·peX¡ç¿ËYZ·Ø¶R42è¢ßO0
+ÃS½#ÊZ»Êö9ü©.$+ÁCñ³çúì¦è¨ÝS:_{mBt[îAY=biÔ¦Ð(Eµ®Aq¸ý?q ÅU4ýãttëNCò¥
+s`)û¿|Èvr$æÑThyÁÔ°OGnWÀ¸WÍ á
+RźÀý°16\'.ÖL6¶1\ræ¯Pt-®¢õ¶ÍEÀÛFÞÕ"Pµ®TÍ@ÜæºN¥(>¢/ö]X¡ý¼#?
+ãã¾Bü)·]Õõåë¼#YpÈbäLõ[¡üÃÛ÷ÔÆÑ*c¸ºÇ*n*{üMvß½uù¿§ÛÌjÝûýîLDþ ú;' Zªb= ¿B
.DÓ8Êäèäö.ïãѤ׸¨Ýyñ÷J=Ué¸à;ÒÏÞoê ºVGò3q§n·æÞçêÁAè¹Êú*"24Ó.U§hûزÂþóXü½±Ícë$83:b9Òø²ÞðN(T5ËoÞí§O߸Ë)¼¬åV ¾ËÑuôssÉXXÒ<cÃ(ÃÇñe#¨ix"ÇLÃ>ʹJyýÚ'©GÇǰ¿C
+Üâï5v×Ê!ü=eWÐuE_6ÐͰæ®7hÉØ/uÃþsm½¢Sü² ¢6e××.¾9üæU'å@¦]{Zò9 T}«¾]ÐCû ¶Ã
Qµ-ÌÀém1Yh?åx¸`ÎM±SûM
+Yó1ÊHcÄF;ZGë y¼Øáäú4ÊdPª uSpØZÁßøá«ÛßÂ~xÐó5ÿ¢oáë¥J ñÝçWW&X¤Ì½:jÍÅ|ØÛ5xàJ`Ç=5qÉÔG&æXJX/¬¤'^ïþ}Ë»vçS,iDòB®v0P8X£<k>ù»ü4jPÖÑG×R¼[ØlÙ¼:Ìåsd/Zrñ© ÊùÁiÅG£JÞüÕ_@>S%lâä¨5ÐÝ£×£¦Ú®UOÏBN¤µó,§QÐM®gñç}ÂÐsräÎ-è~qz)pÂÇ_ìÔýØüºH!äìªRr`êÎà¢@ÝS`ÿYÚ¹|°£à Ý3ËþdA0"r$ÄíðK<ôÄ;Rè¾2¾/®
+ÈËñXÈwúU-½|örZõ«ó½õ@Ø®RÑÙ,ÕÓãÕÀ"ðÓÏôÊCÇÄ-Ý>àþÖ
+4*ÉèËFú¯"G!
+SËG®2¶I¨arYA´fMí^ \Ëÿqk6ëÓùfìpZ<C¢^oÅ\PÊïÈd÷Êaërγt3éi
+]D ù«,÷à3õ
ª´[û
>è^f\;"Ù³¿V,*ÚÕ7n$9Ð ³CÆFÄ
+ãµ*
+TºÚ¯{#(væÀÐAµ¤·éG6E«{Ú`aÑ´ÑÙª§<ð¶pMqß:qòH©2n8i'î¤À¶ëEÑâñ²x¿
+nà
+7nõQJ
+ÙøôsVPÚ¢ÍÊ*C~&§ôa³EÃÔK¬ »akHD6«
+·]à²(j|¹<!ù¡V¾±qVEõ1ÿ«Î{S(F¾"`?ádµÀ»¢-¤ãF2%÷é¤Èÿn* îrÇ$¯ó G&íÏ|ç?Õ -Æ|ã%À-ºèÎÝÆr+Ùö9Á}êEç·G'If2yyU<ÕF gGócºqónæ7Wi=8Z4ÒbNÁîQ%!¤|eslôz«Ð9(q¼b¨4nRÙÃi~ëMïÙk¢ ×Kîw°nN¨õð/ ¨.9òo1®`Mí¨ãz:üü» 8³c6Ò\ºskNÓ¬ Óä¹%!,÷{UqíÂàÍ©Ð7ØK ]$re³mñü;Ê¡o¡·Ã_i¨
+mQmô©§
+÷c@ØA*Ü¥ãÄoz@&$O1ßX÷3*ÒGÁæjÚr!þ2ÄÙ$ج l<°å¥ÏíF±"¡?e"ìq[e4`<a\ã0
+¯¢fL£b15ªÝÇÆ£ÅTe°tï$Õîm©"÷#ÁwpY
H¦ÞJJ>¥·?êjpõàÀÑÆce¢gî6ªTðÓD^»¬Ü´11þ¯vêp#§"¶lzü¦yÑ
+VÃ(äNMDÞ¸þ¦
+Y|¾O®
+ST=×#xÞÇ>¯¤q<¶Ò,¿lRvèªL3¡½Ö º,ºò¤
+¾ò'.:1ÀÛ
+ÁµÞÎóí´ÅnvéQ`c#|Ùë$ÛØÄknû¦Í,
+?rÔ-·@ããßH°KÄÔ¨ÜùK¥õwÑR0ÒD°!Sú¼yѸ»Í^"ܯäphl!ÚË
+)hq5ª3»Î XÝe@!J(¤·Aõ^¦dtù
+hû-V30vÏn<ÀýÜA
+ÁLû·ôGa2ÊÏÌ&_ÐWãË®ðyh´-ÍhDù¨ê~¤s ø7zX
+`Â6e ¥¢/ÑWr³jô
Q¿üíÓ´rç¼ÖJV¤¨
+hÂGµÞo÷öV5n,Ùì_gÇYº(uÑUíúh'g?l@¼´T ¬¦uÝ #ò =˱ã«&Dr«D"¤ì=ÏZ´ªwË'Ú¹¹¯¶ÁµéµéÜ¡]aγ¤8GZZ
+t±*jYÌ·$aSùrÈ+öÅkr+·&ê&¶E+\íp8ö¾jÐû9%HunWDfâËê&H°üòÍÛõ9µN¯3/& xí«ü¸#V¨JZ?þv<é5jçý.Ñi°äé=¥¯4ÃUÞÁÙ´J(ÛþìY½îê2ãpVjy,ß±§º\´jµTáS¿4È£)¨J»(³Ìó¡-¡¾u>Y+¶a0Ýäwë ÛjöÍ?3tø6¹¤q¡pÄ Á:Õ"@KwcµÉ9uMD£+x}c¯¥ÎoâA¬Âª¾C{^ÉÂÁ*bç3#Wþý©OÉIQMt&lXnÔDZÖÏHï:³ÃÕÜ9:ÜY
+iÆð¼Æ£<êÆ×Xè'íBÄ⸢[bG'ìiiAÁÏÖõ9©ã«h¯UÊjQÚÙA}T"Yøi;i2Ò¼ãbƸNkîç8Ø×Png!°.4ÜÇz[lIvøYKãÓÎ-Fhã!T:Fn\Þòűû2Rxwy÷«kø~Þ}¯qöX*XÈ÷ËVuÙ]Ö¢×§
+8Áï 'ë>·h|'ÿͼ0x ¡î¸AØZÒ×½ñ¸ÒA¹ª?:\Ë 4FÅÓv©^ýaÖcþYÁ0Ðf{Â8nȨÒûò25¯×<¼ÛÔeÈÈc¦mi5¬ºT«A:Âý'°NÒìéf(SÜ鍸^IpD?ñî<ÝX¾ßB`ë´ÔòG7K 5ÖgÁõÐÒ\ÔXñNH^Hyt%^/©EØ}ðàVÊÒ)
+2ÔÝ'¢çvQ=è2ÕÃùë´rìI¯¯3ñü g¼E
+ýW&
?@~SÊK§3×`× <Eÿ°¶[ÉD}©%:0Þ· ¦»ÛTQr<@âô§£C¥gBɶ)§Ð?ü!«7-¥`µÍ4ý!é±õ¦EÖ»÷ó|¼Ë{÷SÇn?EDv¡ÔQ5Ö³HÎ÷ÅñYþðÉ·¡º¾gu>*S»Áèë
Éâu¼b·¾þmªbå÷¦í|~²£$Ôöc]ÎVN:°5&r¤!ú¤|pcOhè>ç
ënãy[Kµ%¶Yõª½U7-R4f2Z"=½öÕÚáÔ×½k:æ¸ü
+½ÙÊÊ+Æô-%8d¨µ£ldó«»ÝY£ HÊV\ÉSn¦"J~2ý£<3ÑgÔ-
B·ß©äËÑj¢µê4(xÕÜQèXA¢R§weUH Á
+Û{ê9 OësÞ¬^QE"ÜRèÂü|9ZºÅU!ÓÅßç)K;½¡~p'ãh`úE£ä}²æJ¬¦ù»§R.|*[ºz¤ jÍ%Ë5nkÍ*òp(u×¾_íNbçÖ¹ãF]ò®0Èmø ÖsmÄ¡ü$2᧨& 7gÜÑL¬(×èøm¬%w¬|Mù¶ÔÚ;Vé¥ÂnÊçÒ£ôùguÏ O¢/3Àã=¥Ø|¹îÉõÆRÛ¡ "¨iÙ:h3)q`
+^\W/òP]uuTIfîc¬¦²¹9ÿÀo¤ÛÒ©÷2¢Ôx`¼GÂØ®Ü$D°IñOB$âù÷ËØ4W¨%þ¡ªÉ0Äâó®äø-wÔ§\PÄ˱IÚ4ËϳLÛ!{´^ú$.>C0²ÐYÖ«¢
+sÀã¶ð^7<Â=
+¹hL8Jj5¡ÙñÝï3>÷¥¬JûÌZ¿ìæÁ7SOÅÞQÝ@o@âð«Ü;zn©d²+ó+veoôØ;$.q«£
+Þ5µ¨*[fG8õ©¢Ç< øø(=ùjyE/¶½Ì^à`u'ÌÖÚQ
E|n'Ø}ë«Ï[#z?d׿8´y!+7º©'
+ؾð¶Ê~Ù=F¶RÆNVäó"i1+cí%¦fòy6.Wɰ7gúìÉ®ÒßóW7ß(¯YÀûÑ{WǨ$$#øºHåÐþ¤¾1OW]3sWÛ=å=nW¦R7f½oóf¢>ä!庰TEǵìJØ0Ä«e/6¡¹´3qÅ{qSÆX0Ä4i4áUpBW¸fÝÞqfØ´#@ó¼@¹kÁËãM,áÒåÛÉZÚñ5sõ@/Ò¼K©¸Í[ÂÓ+«ùTêmc]tIä$87T_äò»@áµ2Ü4îÍeürý5öÂS3M¹çàg1æ¾Â³ê&Øý¡¥"¦]æÔÔ0Q6;ÍCߤA1oÃÍw,¬BÝcØÐ½|³p¶Ênü}7ZcgG©ÍÖòG®ÿ|1YèA²d.òÇíg$
+Pm|n§SM2]FCLðWh©w
+AT!&NÑã
Ë·Ô¾@:î·9çVFCȹÑZ+I\YrL#¢u4
}¹¿Î+«c±°ÄZol3Q%Àø®æºçÆ.}¯A Qò]5Üqß.»¹¼à9î\s/]f*jÇç+rGÏÎrÁyÎ+¯«b1Ü4+ø=¹LG^5éÔÐk[ûðâ@£ÄKVWx*/j¡¯MPTy'õäOØJ2Í7!è³P
+oô-¡Ö_(õ;§T µ¹/ñ-R56¬óÐZ¬ÌW¨
+xd8ÉbØ$õï&×7xäØUº~~Y3\ÐÞë» 3ºÄ¬»ÕkjD;w0_17múhŬ"îµÅ'õé¦àâ^s
+òH<ùþ~N)ÌгvñÃxveà$1ÑýGw-Öë= <àz^°=Å+Þ!M ¦«H5OH·cª>¥bù"-OPÁº* ¢DÿÎT¥"7!¸Ã>q.e<§køâ÷¥2
+)Óî;*ú¬sjæL+ßÅ^%Éu§,o°vU©CRþ=Ù&sTÑG"©Br´»A
4,nóq¾2-òhv22,ø»ävaÜ£û}®Æ?ôxLîU`:*¢ÒâÔ@ï{UÀÞ%à#ë;ÑyÞRúF<7~Løîó½uJÖ
åW91Ôy¤ºÇãÝ?AOâzͰ¡N7KÑ< Î>-ñ,À£²dMwÂÀÈÏ;!¿_DÆ/«9º¶rBì;^¼8þ¡²×âxªDåwu´Ô¾Y0;ù?/c|çlo2ðÇÇ^Ïk5TMñt±ôÜ´È6jM½¼?Ñ+VøS¯ïh=z_XJCii}
+Á«Gûm£`À*Ù{ÁÙügìíÑÝÝrðj.þáO.A&C<^Ѷ:w?éYëÄÖûl ùW¾ÏqÑyã141sÓûø nQh³¼Úº¡E»²_õ¯HܲÄù'¤ë°ÒNU`ÁòeLîËEÓºå¶r-4¬íÔXþ»v¦¶³öWB2©,,ya ÝdR>ªÄÖQnv±e©¢?l
5¾Ä¯«øPèF´§OBn«Æ;5¹Ï×W.Ûõ]®&¾cé»v'¾ÜBDT&ãÛ÷§XÁ =ß·>õ8óìЯRåðTÌVáÚk¯(kô!e+x 7
úÄñßÂïFÕ ¤ÌAi
+fÔß_p@`Ô°©Vp.-Ùz²«õ\p?¢ü»è,iÍÂ-½qy' 2ëA³ÿÒ¬»ÏîÁ¯=%¢úyé£/S³)·6±.y-ºÏÀ)¾ùùÓJëÒ²Ü5ï±ä§é8¶7CÊR<Q¿ó×ÒPCcw pkm;¬Ñëi'FàQÒ
+é°.Ú{Aè°zèM\§Q¾/&×Úô
¤«!ÛÂ?Ù&@s¾{=ýѵ¸n0S ÁîMPsøãºi¡ùСüîâÅP¢nê¡¶ÊߺóÚÂUÐßÀtsm.Z,CêÎ:¡>K
+Yq+x.÷xØ9&¹´§Âö<Þ
+xlo§Ø $##X¦³Û9Y:kׯ·jÑ!z
+[î!5ô,Ê"s¶q¥¿çôçCù WÝk¨þë-\97åÁ§Z~¤æÞ ý`ò6°IÌcåà|4¸l_ãgÁÊI±<K¯ÝðÜB¾nÓP¦;éÏâVß³|AÚbwHê1Ú.)ZN3H0`o½Êãj é/ÙU'`:¶iÀ«ôÁHÂÍ-{ÿõ4jXBzê8$5]úÒæéd1¸ÓÛRÙQð¢xÛHÀ1w<
»mù}°à¥N]
+ÏÌÆãí?úû-ïÙ
¾8ójYÅ?Á°¬áùä$ý0ç C'&tàZ .´µ1Ñ/8#@fÌUicèKÞk¥4~ç_?ÕkÄý¸Ô¹SÑW?×õ!éHä3P§ÂB'Èpñ"e
+ÑçÀ£©ÐjÔiNYåIï$RèWrÃzèÌ-¨FÂtQ¨2¯ÝD·éL÷$fØBKTBî
ÉÇW?9!ÉdU¤ïýT·.§ñìYuÔ×5jêÐH
+PÖÜvä`,¦¼sóe&@ÊÙ¢8ÂBçuÐñjßÓÅq°8'T¡
+̾õthC¸¶+¯ÚÙbY<çû<ÂvÖÝU9«
´\M6ÛdTK84Q¤<§4?YÝ+qÃì èá3-LQT±?Ëø;Ñr(ÞÇÆ±bë(ô§¾¹!¯Y@¦'¸Ù£8TêmNÙp¶}ND&S{8(|>ÉkI{Óý÷'Ýíf.ߥ²¿ãOZPÄkãV£}»0H
+
+éjÁð;<æaã5¹4üdó¯
+¥¬Ï?!ðZ6þð§ *
+xèyÇu
+ÎZ«âtÈüoh¨DÉÔ¨iVÌnÜÑ$|V~üd©IÛóy1@7Ë}±1ªãxnâmá¥3ÈY§£YGÖAUSÀjLAíxÁã>Ùþ!0êY¼Ò²ûã÷³ÿuÙ¿üN÷^{e·OÎíwC°âEgA&H)õ>¸ìñï>W½ïÅâqéÎT>³\ê¡Ð°Ó<ß:nûÑ4·CýÚoå óög<¾qy
kv"Ch?RÎåä10TË|%Iõ8ÜÖBöþÂ&ÎyV=W´`ÐËÀ¯ÔÈwÅdÑdòñªk=ézYðå¶«Þ£Bâ]µû*ƽ¦Ì~B³v³ÏݪäòèCm>)8ÏòÌoQD1ý~¢· »t³î½ |7+bèöh`ÉD&ÐM¢N;Q%öiü+p°èwñå&îU¬Guò¼9E
+Îc'{ýòOußU²¸-í4áÝ6û2qdý/©÷Ó@yzÖû4áÕB<XBFøTAÄêøoW (Ù¨G#2
+Tñèô¾óºÃÖëwîü?j¸$hpÐWëvz|êßÈàZ4^
+÷Ä]eóeJ 2Øm>ű}®A³JØW£Z\+Lü¸K§Ö $íÕôðÜ£G3QdÒì\ÿó]
+e·ú¶X ÜænôáËÎÓÿÐÎ;3TíðþG¢óSpÜö£a[M¬§kiïOa¶¸$(o4i:â@^ÍØAFÉgìΨö>þ5CâYì!méga¹@Öp4@rmùÚçU¸
µ/æQ+cÁ'[j&>ñÐ<Üxâ|kܱô^ZZ
+Ê^d¸iN)sQSÂùr±Sî%-¹|»÷Ü×ݨ½FïÃ{mF/Á¯£o=Ã-áбÜ(?ðÁ8¾uWÙpõè*à öÅW6 _Ì`W/¾2oØñb1ÐpU(JÏS¾ü? ß/ÂÚÄ»ÖW¡ò x°Â×Ù×7Æë]ò¸Ë]û)µÒg
+Ó$»;áç|+eÇòÐñÕºoÀáà_ËáÀ#ÎY
++©FøÔÎ
+?Üö5}]ÔÑE¢r+¾e¶c0¤i=«9ñ´Pî{è½´F!ÝÝÄÔÀVG~TdgV,e=Åpg¿t&Æ1¯ J|ðx¥¥4åRvËÉSäK,¨LÜËþ"³[m¦)T ¯¿j7Üù:¦PljΡ£á8Êw"Úü8ÕýÃ~4MØ%¡¸ÑÍÒã^ÑõcÅ
+fÌÊUdWܳöúÀ 0zß5`ܨáéy«wZk^HxÕÁ:×®æfÍÎÒài7«t¦4.y²Ñã~UG
+ +ÁzÆä_éS@1áÿ¬@ @Ñ%¤í[àÿþÐýß4pç*ÿsµEE¾S6Oq·~!à¹]x/³ËÒ{}
* pEÁÁÄ4U)[½sö<#ÕÂúR·Òºhò¯·x¹fõ8áö׸Ñj÷ÁTÖ
+Whh«/¥Ø"`-J vôQA\|K#A<
+UVòö¾
+Õ¤µOÎ*
+NõØ
+¢Î@¦¿½ÆF#÷ÚSÔ V%ZÃçØp|"dÔ¡2¤Éª0*?ßW3ÀÑ
+»-Øý4à§m´Ã°qQUÜ ¼S«¾ÉQ3>
#AJµ ¦4°cÿ`f_x»ãx¨CD'~M0,ãò=ªvÔ@7øüýzn@Eã7m
+ôD ´Ö¯ÎnÕ6ràÌÊ^ü"¨¿;æ<íOË KÛÁ%¼ÛÉk
Àþo¢ûTâó*`´Ãn.Gp¢M (²iÑÆh<ôËbgУÌÀæ/CðlËo*Ú/ÝçIN²×.²çÏzýö³5Å£ì_£P³µªÝåpCDÑÅtË@d¼|i{á¦%Ah·AúÙØdÑ(ãÞYñB3xV~]y=Iú¥ ÓPE£
+È¢w`à èm9ìÿxh»F <Ó^D_ªóë!ë㶨H ½årpnz£.Ä`l&ÞÚöë>ôýÙGüÒûèÀ0y¡7¶æxô<u˶Ðè?¢ùu«Ã»ÀØLÈK§i0é6"ëðBk²8/Üf¶dã%Üf¯»aï£^¿XE¸vnöÍ ë4¢6jÐoàJSÜuãM
^^àLZÿM«¼¯=z:ñ¾.KçóÅIl×âßáýXn¿Ý6J,C£âúêFàzAØ&2à¾Ð-ö»£¸NmûÉí%i|PÇsÄÅnâ®VÕsâø
+}·L8(
+h*àºÎ¤müÞÙ¬~d5`ûæ6L¶Ý±[(
+´+µ#Df
+¾Úî0è|+ÈußñÝtÓVÇ=×\²°lw&Ý£oÈ¢ÇË2¤VÕ³u,¶Ò10´rp*{_§+µF?r_ÕÂÖHÝ^ÉɺlåîX+j¬û¢¦ìî£1mcÑö°F KÑìÒ #0©N>.9ü_¥inTWÁ]õùÏQµSØN¤E6W^
üíDT
ÒÊ·5;UJåµ²&9r^L©¨sýmÛÍ( ±<4´ÎÒgF²ßòV´vÒ£qê§pà±;ó!ÓÅ@Lµ ÚV²ëèS04G#äÆÙVÙ}äLY¼¾Á&¢T§¼)Ã;4ºÞ<\¦èE
+ÌmT
+è
+yí$]ö϶ps5ZnôhtG69÷û©wOly
+½±hÒHo¹f£ÑÅK'ï¾7¤0Í) ân.ê?ÒãØÅL `Ðbk#î¥ëµÐA²ÊûVRÙú¡aÁxô®q±Ýì©7SÝ4;Wëz³Âõ
+õ,kËÔHpY{63|5xñq,9F)ÈþÅ(RÏ
+46:XæÛðÑï)Xì_çtK@\}ªR7óKñó«;o;>vsó&ËWúR@á8¯O
V 4
+Q8-ò7};ÎH;Dï¼^ *)Øú¯÷P7z*eIonE0w
+¬Ê ÷:饫Ï
+Üó
++d×@ò4åZFSëLxÈ{Ë)û³ïF¥.¶¬±JOËMâ äæª7CUc?ÙæÙ[Biò/_Qãs´ía'_Ò#¹Þȼ)0×Óí³d4¹{ä: ÇÆßÖ¥wçÇkrçã~&ûUÔ02
TÆ[+óF,[è3t$=i¹CL;cz~÷ÖÒáéjA+³m;a Ùåýæu.ÿ
+'6Ã?ÐÅâmMÊ~ÄórL'8PÉ&Ò±ãg®É -}8SÁHäËìòÞ:ãPJßçs¿¬e*"'mV÷¶tÆoÿÊ¡/¡¯5
0Ë{ÒôC0úX¦Ãv'1sXÇÆ÷]icf\¦ÆP3ñ
+D¹rf_+Ï ÚD(ÚmÝBw¦o^Ý`9°\|º!FI§<£(²¾fãÉ$¡tý'2=±ú½ÆZV/Òcôn"((ÜÿÏ-Ë;å9}
+sÀÊMJr«q£6hÇîX^Ùæ3A×óèÇÞ£Ñèú´iû(FJ¿l*3½³ 9¡=ÚskÜU ðÖ$É¡NæµbRîEÖÑBÆ÷b`ÅONkºÅ§\I£è¯É¯ͻÃü^-)lò( ÁÑÓò7Ó±9Kª^g.¶HXå{ò
+ýÕÑ ÈsúᡳÞNXó²§ÃeÕÃÜ#õv|ÜL®pÕ/Lãv?ÝNbV½N51×½ôiÜéR,¡"ÕéöªÄá&ôótKáÈ«eØbѲ:8â]ò·}£µvìÀo"þV³<ìÌæþ4Ð6¯É¼~ÿùã
«b@)ËÓ°±
+ìÀ¶[<]NáÞ
+·Ks@Õûfý`ظ£Îì)C-7#0`(=n¯1jíß3+ïùa%ä¾_ùwe4ÌB¥>hG¡ßÄܬO<çè
+˰äKåUyÍ´íͦ#8ÉÊa÷½Tå¡{ZLÏõý©ÿqî(ÂàÎÁøª,3t<rJK-éÙyóÏÿ
+½,©qÖ¤$ VUâ¸9Øu]n,7Ë3f.ÍÓæ0(§¿øÅKxWÃlö7<íaTg°ô´ 8Ñ5@£CIÓ-Z3üRö·å@uN±¤¤osÌÌM,7Íá-È7Í
+<¿\»}°kZ¾,ÑxÍj]:*:©L
+Ïë×õc¬(íç¶~fÏ% i+Å`÷¬lÓèßZS¬ü(WõºÃ|iç9¥À·µ²sC|Hä,)Æ6ÞúíõÖPUZG»ç§à
Ù×¾HRÔQØu¶Å/rÞ
![6O A?!s¡Ë.8dþïÚ`*$Òî«Ô¾.Ùd{óÂÑRUïõ˶"@Bf WÓpíªóh}Ëi¹\oNæþÞJ©;}W³ü-ÎÜE¬ÝçG·µ.-¯>í¥-JáEú[Q²x
+'>\Õ9 {ÊÖ6¥§`PSú\̼ï×¹åéS`æS
+yÇ¡ÔcSuAªrß«ÛÛ/ "ù
+zÌOK~z
¬Û¦ëE{ׯ¼i^ØUò:EÓ>QfÀÞ1ç`Éqs4ø
+pËÝÓPþðRõy¸ÄºÛ¡æ#3!ÖøN <ádaÉoqstûÌké)½ù8ÑG^Q¶F:Éæ$¡?O_«k ¾eÛ¨¦Ï¹ïx&§÷òíìdÞd|ÂëMåÎc,Ý9jÂìbR-jEØïqÌ=G5aþ u|¡µÒC8l¹Z¬¡I]¿;Û×ÕC2ÊY׿vW0NÁQ( Ý®½ÆÑ³®µrû£m/,Ühzdàc0aðÏ;zZt<Ã͸Iêepú/ÖLïÜoå8Àè9U6ú,`=bXêÉÑâÓÃk÷ot½ïH¬_5Ì*dJ¢òÒÚxºþ®_Î?caE¼WÛä¦Jd% >¤§»Å%GaÐØ±Ø¨ü¯ø´¸ÝØê«N=Ìz_/®0 AùsL8èu÷¹Y&µ`kÖÙásn[}
Çu²¨Í±7Å+]ᢡÁU¬ohµ@aj¥Ä Ås)¶EÝg4"æº[c 5r7EzýhöÁ\yoE7â GþB¼]M ñ·¡áÆùàW¬Á^5.wbI
+z·ÊäËdZqy
+_̤! ¸dÎgfåFj±©ÿÑðù[Ã@4$6_ìZtZçöe´Ô>à6ÉE VMý¼Ñ¦Õ&f6ÿoT+AÉ&"¹
+Gê¢äæLR|?%4ºÖqµÔ(õ0úûnøËGæ²ú÷îêlºuùLbü´jz2Æ¡ÁRÿ£{BN%f _hú¨Ü`Ê-¹PÞK:µY®ÒÉ
ï°±0VÄ(õ"åôXv ïùïÕ$*Ï LvóþáxùxÚÚà"$~YÇÔý
+ÌÍÊ´ýý9ZpØ
Eh
+Z·×kS
Yµí[ï!
+©Þ8$@d2NJ¯-Ëg
À(Ïk 0ÖYgoX/ðu
++MÜüâ
+¼(<FåBø±Iwºò]lÛ*òÓý
+ª-¡êÄFèr{ã/)±¼!ì¿ôh
G8oEÎÝSX+Ïà«ýA÷¸2¬Ó||°cOKðé¸þÏè+µ¡*·Ü/£sD²ûÍá(ÃY:½ºqQÌÙËÖVÀò¾æ°6Þ`Âw
+@õ¿èÕýùÐ]¥« g
+fXæÀÿô«_Þ!WR
+' °û¿Ý-Al\ ¬ÿÃö4â@,F?&ôb;ùÚ.S
+ÓNSÌËzñÔ!Á+O¾ú^;á²Þ^ìÆþϲ±E'PûIíC ù²
+áS:º9
+l%%'Ûr(¡Åñ÷ß÷½ñT,BFÊØ¨Ú@ο¼XR^<?Yð£³ñ}uÇlö¨à®[§F¹
°[yíë[eÔS¢©LbÒÁMÑäZa®B³©D8ðMÝx[À·þ|í)Á"fLe)ªúì,i*?MÆ
u%ÁøCnüÏ1ЫfãðèÜꤴ0öwÒ5?»Æóü"î%º3_öµÊb)¥Ii¬%QbSòþÈ?ûÀîl°`^ôÃc5]^¢Õ
+kÏíB·å#äX\5dÖiòÞó^i/çT{±Is±7
õäÏÞÊÆØ/5ë,@§Zk¸Í¿$iÄd¶$xïÓt%Ç
+EïÖ`·ùÞÛJÓ)h§mG)=Ì\o_LÎ0~ªlêx¦Tp#Ò{xXÙ9ÚǪ4]ôþUµå"ò&§pQ>ÿú]EÚ9sl9×TÀ+±ÕÁ+°ÐeýØl½Ëûw7ö'¹sü¸·>lò >üµ*zÃz¾¥·¼Ú%tðS¡
W`1åp[«CfÌçÆ)O à×!ô[´§wʯäT׺»Æ¶
+Óæwä¾PÔÒ¨U
(fëhÂðÕý`¶D#}Wud¯âAø°5Bμ[Ö60bÕ ¡ãÚês°-Æ!àÅ©¡~¹q8g¶+°kcÑæL¾¬cX¨ r@Ûìko°Ví¯Å·Ç
+Q½oEÚÈοóÇLd~4G¾æQi±|'·9Yn+ÌÚç
+L0§*¼rÐ8,ýU½
¿¯ï7Ï&¶8 Ä¡#ϬzàÕàÁê 9ØF'k8Æ}ÜM4ëHMRðÙ@»Ï¿Zf8çpraðÄ90ä¥%4ærQª{É)UÎLÛ~Û"~Ã9Ê]ÇÆclÞ?¥reÜ¥8§Ñ³ÿÃ-pN")¢nü¿ MÛñl8½ée)¤h×ÏX<ìÝÉ.Ý`- at eÍí
+DÔE-¯è`Âvó®UEÓD{hj¬q C,S}Åð$ý<QGÚª±
1·±vlºÎ6ö
+®# x?'×h¤Y¿|òÃ)ù-³ù¾\{4̦IÓÆôTÒp¤¥£7mZ|ÅÐm¨ÄíþÔ?TìX at hÃep¤¶!ñß#ÞM?Æ´;jjz#]$4¼i´$âY¢
+MæÄ³£¯ëG|}³ü¤W»"ÉTC
»ì#Øç³°ÏqÖC1eÝ"3'×F õÚ^¬îÐ;Ì;ÄN[mZ¼2CÄfHâÜn®gGb®©+Æ/a.(Ý&eóî±y¦²õ¨ÿ:ÙúXli=
+
+dïúõ(_r¶ËWÛÌt7ÌâÆd`9 ÏrP%N*§
°4XË+ÙÖ}õWÍ£$àcF¼}dHLí
+Ñc
+ôÉ¡ÝÀt¨v7ews:ÎLvÛµý«O]6¥N%1Gù&'bÕÜY§Àà h¸Ô,²`va^²éZhÍ5Líì|¶åæ¢HMîäCYå/$æÃ
+$6o±§hc¾N ÉÿZ±®õ>4ÑÄóÑÅ2³
³¨ÚwÜH5uZ,!ôYÍêZv¬ZvÕª«ÁÞiT,þ×nÚë÷p¥õéäeUà°ðT¤ÕQ'&\ÛZðè®b~Ì8N`ó)~mËõÊÑ@KÒ/8W|Y©¿Rò`D:b+c|©ßní.¼Ýh¿o*éì´?KÇçæ>{5,¿Pµ0ûôð?çaZ>ÑN9õGÐR~Mb.ÅÁ(ù,«vu7ÛèÝ tÉKRãVÑ ª:"¯·sP
+·ñI?kJ">Í°ÊØOÖΡ½£Çè^©
+
+®Dîf\zïÁÿ~
ÆnDU9Eª[¼%CÂbÖ!°ÿÐ<ñë
ÔKIÞÔk«Ç.23 ¯ÒØ8hñ¦¨KÈ]Ó Ú4dØà«çº¸_a-ôoaC'cùB$9q׿RfÌ\Øc%Rü(U¾Ãúg}\5õaËSës»ì¹$1vògcppÚ?jê¢4Ó!?7¹_Jirã@^uY
+OzÚIø÷¹6¹zÖèWQ?¦{@¡æ"áqc÷ÚÕvü½ÚÛ¯P.àòU ÷nVb"éÈôlmµ2íD];}÷vÄ¿sëa0¯ÙL{º5-7
+ûvا⫾¶¯Ëëòý}?Zð@?:&¤oQÝ4º]<EOq¦ãô @n^¿\ãly[ÊOØáÓ¨(âîî¢ÈèØóPTÿ3EäÛ·#s0¿tÞþA
+³;ðxu##³geù*¢dðâJð¼¾2·áÏ:Ë5¨lw*GcDͯOóÀ ÚúËcÌå]ßrëJd@¶ÏÊ45ÄLîûFxûmCMÔ?H
A{zh£_6ì/Wm Ô¡GÔ-âá ȱÿDªÐLÕ++ E®iÒa³®Hël}d1wH9"@¶ÎÈÃ#îÌi)°?«é´hæ!¹ÐdL§|DO13
+>.äíNR¬Üø03{Þ1L±hmXÜÜø<Þ¡H Ë2@×tºþó¬÷ÚÉ1à×LÓ!Åý3ei̺hìå=H å?ý<ÈÏKËlw§(rLý5æ¹~h¬EÖéîf£Àrqð9æQírÁHÐÏ·kA§ÝÄFÓ3gKÃ#»Fu²9O caÕ}k{JDëä°
+19³»/ò̺&UêÕ#îN1Tnu_VÒÑ6ET¡<ÂdyZÂSjû|^FZBÐs7ÅI¦ùÂÃX¤E#uN<åBÛ¹jÂZÒ
+¼x;q®ºñH éØÏ°UjµÀûÇ¿kdgAyyóãá÷`ÓyÚª°h¥j[±¡uv~àjÿtóæk"Ýsx\u:Þõ¶y)ZV`E7`÷cÕa '«Á¯k©¤Úíâ6£'6¶Úpqó
+
+´ªèÙÍr¹÷?Ò±¥àÖÅ*Öúc"ÒL¤FãC5¶[Y-öNÖø{º-ä#½óµ°qmþàtQ,êCH9h ?ìÄê,!Ob~JY»i±5{2ú/_ØAö¤gÈfäjÙuA|ÙJ£ä <Q!äùÇ»÷ea-%ú4¬'Ä}þymþº¨ÏúÜà³³Kê°P}V±×ßWËÀùÁ²¤Ü{<*)²Òf$t÷Gà²j¬qü"*ê=Än|G«òç?Xð
³éÂŶÅ[ÃÍÜpku%c?±[QuØ
"ÇÒØ
®Gfz)?(ßßÌÔ7uسÞÉÝáè¾jT'ìb=Ö®7Ïc4Nߣ¨ª³´ß¦(þ¯õ|Vxò£×Ì-½ò3ÿ¬&VUÍóWÌKXSgýUÛnlŨ~sÓíÛ·§
"ÐÓÈ
+àSªè¼¿0pUÏú¸£Ñ8
+|v$ñ8Ðÿl]xϽ#ÚüUå×ÿ$#?¦×ó[lÖìFSdY,#µKÎÇÈC¹òO¾ÇRÜÏ&MgÙ6Îoû/öÉëa¨ÑÁi²ñØÞ®æcè á7°æÃm£!.²×-¡AD½1ðºþF´KÙ»WIîªÞ×7l£WÀ;|~ÐêBá:s|
+ÃhVWÙg[]¯¬ZiaM6uÀ8WoE|>©º³%Û'n±eÁùU Hëiß©¨¤>N"h³÷°ñMCô±[POVü¼X-"®7oX)]úu, "gBÄ]>iàÈvßÒ,Hÿb)áɼÔ.0m³ñy CY+æØíÝÑÉQ
³ ÃekÝ8îâÒ &gõÉeû"U`3"leÚHA³ÚÌ4¦VleTá»EZæ*¿¥}H:/ÌïK¡öÊEA´uE2Ûe~¥GÛ'_åÙ}Ôt(+»ãZÛÑ/Ër® £ÙÈG
+1rçMðÂâyü±ªP .k?ãÒ=tKæþÉwaìÿTKÌ.£ËÅZqGÎ:æF2"üMLäÖÚ¶x¶æ/ÝìÃú£ uGmEÍDí2ÝÞwÅcíþG0T(^bÃnÝ@!a5e´ÝE`ðr{¶d¯ÎÏêo_ÀüS¼^||zÿf9¿Ýùcnæ6,é§ãìöDR):]#íNþ: ¼w®·zKIqÎE
+s¯ávFvÀhËÍí1ân¿¥/Î8aMÝBñMÉßf¸L6ßñ¤£Q
=D±(DHî+¬·;ÎáOZÍÛ3#î)SòLYè Ã6ÐËUôícÎK×71ÉÍg¾¨àÔ{1br÷99XN¶å*øUÅ¥Jª¶'ItTÕ¯Åtö¶-
+}üäÄtYiÃ#*ø/òµeÊÇ }Ã+·ÔO.càçMoÊ?öì¸ËAV©0«©À7¿
+~¬jñB}zÉ>«×ý;ÊhXaRE(̹¢õ\!$
+ÖyÂu\ê«Ãvrª§´èÐy$Ñüûírn¯Hn+Ý{°O8êÜ5~k®ùÑ]¾]z)íX˰&êÉ©úWH!ºøo£ã1¤E2ÕMMÄGÕ²íù¶àB¡d :ãeL/¼rçEÞ+yüO¾3öVÖËï/@O¶¸nD9ÀwsÆùh§
+Û+ªõl{G§1+é<ÏY²Epçÿo¦Ñ·K:¨³ÚÔ¼.¼éx!ïaÏ"X¨i:uyÌZMíW$*ÿw©:;¼w ¸8ƽٷ?ð¹pw=¥d_î{d£gH àüðvCÒ¤
+0gÁèdOw ÒÈâA&Ë¡ßtrB5tÍzØÓö2IN µÆ#¹ÆbZÕÅ9câok9²ªØl¦ov|Î¥ÏÞOpA¤ÀA´µ¦B?Å*zþáH|v3ÖüüRÕ©hèTÞ)©»°¢þq¯:[ò»½ÔG)åiZUN¥ºVÊ,Þ.! `÷iÆ·º¯ µôª^áwZ}w®ÏëìQS©»îØ/P¿460b¥£ÕeÙ,{U¿L zΧ»Es¾ß[B³¼-½ÆFÓ5ÞÉy²Ñn±â±¼j'Â0X
öÐs¾Oz-íð\ÊìVÈ
~jØ®î¥_+ÝZ_dð@µ¦¤è2Äúb{ÓÂâ/=nÊEfË#[d¥=)ô
+ËPaþÚÞÊv¬k«¢àÓ8®èä`,Ï¿jKÁ<ÌÙ6¨6IHJ½Y¼|g®ø¾ö3©ã«ÙµÂ#AÜJVøÇÎâHfó×òøÌ5ÞüL«!ACáõié)99`HÉ$@`¯¡»àóà{²[&ô[,èÞdµ=-,çf|æ`%
+3î3Ö·¨~°÷Êà°þû½¼imåß¶GØ#¬¹;ó¾,U,Zöº°7 at 5Vb
+<éȰ2ÿGû ýÏ0#LìݳÏBLf×Gyü]üñ¦x?©uîÓVGíªÙÞkɳMå¢7,s*-ÇÜàó{åìãu%_>MÕu¦:koX-ð~+oV7ó/¬ã"¶WûY°7Y\ÃæI?~ØÂاT½+M?U2tÁMõÆùÇ£³²K7¤AëCÚ\0Ú
+DCíYû½eä]Ru@A%á1¹º<Ká V1T« uóê"È5Ýào÷*D3÷\1Àù$ݲc×qãú °ð{®,
+"p'(¦õ×½ÔX^rÝ
+ðy½¹¨ ÉnÍY{D(Ó:°MÉ
+$¶NOtÆg*ì. ¿¾JÊ
+ÙlÊ"ÇM¯?÷TD7F±e]ãrÏ~¯ÊAO¿ÉûÀòIPñ¼½©¤³6
+áÄ¡w1B<º}%@9a0:o9?Ld-\ ¨}Õ×
+º6°Ö>ûùO!rþÿQMÂ9r$øénýÑ=zÀ±q¸0tãdå¼Û!0ksçÆ×wzÖõaÒð|ödÔÒÝ0ÉÚgDç+]rôÉ:WAì×m¾lT#¶ÙgZõm¼~}º¤líÄRÌ:E/
+¬ÕÞ#G?úná³ÀäÓKª²ZóK½óMÎÕËÚÞ-y·ìíMÍv¦³8XÅkìBÓû7r¯uK<ø¹B&Q+Ø)Ä/pÅx¤p
+ÀâÕ
+ëÎX¼½Lóu
t_²A@óÎLb</²
+sÊdÂÊúò<ùXÅ+ÙÍ:³oܱ,Ó|p¨H?ïDM×w9átÕ¥Lyjíô[V#ñ 81¸
D_¨LÁ%ý B~={Ðíã ¦LdzßôQº5z½¸å,½¯
+t¹\"1@¿ÈÇ>RÇiÒ6æÇÀWOË1VÝe-!"¢
èy§½Ø;>mÉÍB}LÃä®ûѽÐHo º`ms¹µÚuÒøcÖåÔ{îÇJf'§ÏSâ'4op³hÈx-lôîϯÆ?ô µjÙCÉó@Wr-æ2ÚN7Ñì·%TD:^pî¶5móB>8×GzúÝØ Ö½,b HubÒb² S9ïVrme£YWÐ%y ÚÁqqxSa¡Ô<<1±F1ÄËTvåYÏHkå£QzõXÿ?Ñfñ¸qµ>? ¼SyVÞ H¿g®HÒsÖÍgh~ÀΩÒÚЫ.0j?LÕæ§À§omWdËÛÅxô) ÂaüÃ*c^°ÍÒ¤(_Èx·üµÐÃ(&§qí,©iØd"!Ä¿âóFè-;jTµx¼ZC8ÌtÑ¥``a6Ï뫹}xÊvûtrÐú¢èeª*ÉeÖäR:Ñä'¹Rx?ÓX/ æã_\
mR+´ñ7o"«ð(`²{Äø}ªF¾þÄÎ¥Äé&Q¼ÙU>,Ù§/Öä
Xfñkìf\J7ÊÖîñ_2CµÔ9ÇÜÑnÃ4p5_j©!4Óÿ£½÷ò×j°ë_¢|©¾ß"ÜÄR«Ò´à´3Fh£jêa÷t\
+5ø4_òÁÀ£O9FR#
+¥[íbµAò,ü>L¿Rå¢ò§[Ýþ/H¸\¢..n ±ðu§\)îb7ΨïQìéuHj7Ò\B×ìæÙ¹¡gý#,=ÕD)+ÍrYÈDb0æwHã#¸îÆe롾¢ö`¼
+ü»©ô|Øö#Ym·ÑÚUl
+1_»vG9ah¼»B"F¼H¿ÿ ÓÇ ïÀÑൠ¯»:H}¥ìáQùpx_wÜ3¥û [÷(§¨ÉJh"Сµs`ݧUùå§4ôkÍqWåikJ«a.Iæ8hX{)»$¥«²L¿I¸13ȫˣU£+ðå;Ö[W³÷jÍSÅÄò@c§Ï2DÌÎEHEfªlêÐpé\Ù Gwç[~y¾çBa_í7}O|Ì ·_½Âd VKB~)þ1·ö¦»5ý9sX2Zã/G®-¦
Y{K½3%,é\F«(BmA×'È<(>;"u7a¥ïQ3aB*?W{7NÄ6O×s^;¼ÒzÏ:õáeõÜ8ÁӤоÍö¸°¡ñµ
+ºÄ0>ñê~½¿Óß«[EKþrJð,7ëwBj
+¸³6¦ÑQ9R/nÝ]GÇéÈj|â£¥ÈÆ¸ú4AÞu<nu×˾ì\ªRßE<ÌLÂãíÒæI?
+FæQö_DO
L§×´ÕH ÇTæÅô`yHduô±
+±9Ñ-¨i¾´÷U5r÷Rf,{D[^Í(ºé£¯~äû«KÀå[5RæÞ«¦ÖOúÈOѱ:©Ý:yõðº2 ©ØrÀWk.)c,K7^Õëu=XvÓC'ªÜù
+°èSgÉd`c|ZÛÞl[í·Àfý¹<ÚÔKJüýõþß
+kõ©P
+eûFH+Àn.^iùy»ÒÔ[m®+Oæ©î+ÂÐaãJdhÆÃ-ºÂFH6E¿#¡%ùÏhËËáô`x¿éP¯
+ª¯þ.ÏÙçºOB#)·;-êH²¢IiÈnñ/ßïc;Á3ÿt~M®¬9m)sww(®µ'ÃNM÷p}íQ4þй\=:¢Q]æ!_@ô»ÃeÓâÒÇaæy1\®¼õk§h¥C0 ÷±À}ftèPd°êv¥^ZÂýíÄ
+1û¯_X5ÙöJêðÅát-²áì¤æw.¨rjñ6\yÑJ6I9*,WûÂ!",#A\ µKÈëZõLhè?:iîAɨ£¸7ä-R4x
+ä7[ÙRkGL¬µ^BwzMÆ¥lVW pÒªR±W
+ümüóÆeu·4öl7%>Eg<F
+d\ñÅ m:u<U . êw4ð²7S¶¹°2{¸HÚWÝÅUí·¯ ,Ê *_)#s\sø\3kD~WÇW8Mè¿ËÐvÎ ÿ{²¶ÅG_ñÅèTfncl¨"6#]1ÿdë®ÙhYç̱ÈãuæÄ¹Ünýeb!
Bºçà¥SÁVÎÂjÌ7¯x'xé¨jmÎÒ+4F¶{µ0êÉÑaÑLÔÆoO¼6.î6_Y)Z*K
+/ äB¼â·WM)¼_´Ù·&Ôɯ7¯¯äkź¤
+¾É!ÿ|l|Ék&9Peý¤h$½¼Åù´ÓZ~à7|x¦c¶ÞW×QÆOÉËÔ?$ìhñeÓö<¬&¤ìæYåAwÑçç.
+¥úüî
ðìÉä°6~QìPÖ*-Xòª;¯ª6%ZLm$²µ¾`qßùÚ<(|)I;vq®¾Ón>̪õà XÏ<+4z7x(¡b1è¬8S
+__¦Âç®ÔA Sìæ£lå·)ü°<f*³ÍG¦ÉÁ)ØúáÒc,ï?aìA%ÚÙ·Ï#ï¯<n¼¨å0H%
+YþüìH]CFHìNµSþÆH~ùÂQ§f;sé`&ݤ
+¬§uÊgu(
+ÿ£è[eÓtí\öf4áïÖcnn i
+Ô'è^X ØÕ1ºÞé-ä[.ÅN£§þ2׫:C at _ájæÏðÍÙ1
+G§JþDg[®©A>ö àf»÷iDú2Ø*Ñb¥ÑHç¸Â>ÂÊa^/½éüeé0ÿÈu¥.\&&°èï¢ý6Sÿücc ¼§eÝÔÈ M&Õ(×Ï?¦ÏàTDøÂZ^(-
+p<
û ÊÇ¥Ã7 at rçÌÔ~¦ùNs
+ã2p£öùýö|t
+.ÚMþçmÉ{ßðµÐ[®w1ßÅË|»²po¥'×i¿HÐqy¾_¨MÄAñ÷xK4_ñá9JªjâIëm¯ ÜRÎvé0RCÅ«/ÒM >"!m>{³[@W Òõ«HB*'ûHL®æ?Öæò»7æÜ¥®Y9Ó;þFõ´³A4@ÞLkwm°M¹Ç÷?<MyØC?}î¬ÓÅáfã k´él!Î1"A rÇ^·D«7×
+ÇSæX±¬7ÕYsÁʸÊlçÏ&¦xvû-aÑARÁ¾%D Ñå¬pXlJ¢c?.#Ý_-EuÎa ¬{µO£¯3Ú¢¤PÈmXG[êÑ?áÙ´[d#M22ÅVè6¯CǬÚ÷ªI~³Ô÷`Ç]oßã;ù
+éTw
+¥Eϵ1(ù7Kç÷ôªh¨ÂyØocþÿRS³ÁÇð@x.EuÿM¾<ÙyY×Ǻã¤Í<åÌl_·Ìÿ
+!àè(¡uîõÚa
+Gê1<$1]£H´
ó¦ÛÿÌl:õãׯZ²%jj|cíìÝ]ÌÿåºRIW
Ííô²Âûé»KíøY¸>
+¯uM|bVbék«d
)(¨·Þôßñ&ö NßFú*É5A
_MB³-ª9dòr¶ûV ú·(,h½ípÚO _64ÚOhÒRV8>\+Ä0h£ýîxÖÂßv¹´Q\p@<ÃÆÔvÌ/Ê×lla&ê}
+P,ðs«2$/SÓYåã??Ó
Ûtí¢ ëGTü-»m*9Ò®ïR¿ 0\ºûGÊ(IÓè *3mp$Gøb:Ôª¯z#ÙJ¦Ü¯7±*¶SL¼/sæµ)¼øf9 }bÙµy¾PGv)º)ñ
+¶°muÞHVä
+ÔmaÞ;ßü®aóAæôZU5À5b·«:j,˹èøã½ÆÇl¯ÑBqÙKϪµGúHh}4®AúÊbÍ GK)ðq£ä<X°ìÿ
+Û®ÆwR|¶z®Sïlcb+tæàÖ)3¨Zc*]|è~ßKÐ+ýæíÚìK°v¹1S;êL9ÐúQe@,x>À^3¾=7:¯ä¹]ë¿$gêû¬YÎïFÏ·Dm²Ðõ¦éÅ#tÄDML8á$EWAeBgÃc·~ÈÅÄBNNÍOA·X»ÄF?áM¾¢Üj|yµyACL*$0¡N´Ácí-»'ßïr¥w³FÎBqD Hé[(ýÈÛåÃ×<´öu<ÈßmFÒÞQ±Á±U¢²£{@¼[vÁïG®óAº¶$¬ÃU&§NÅÖ"Ï79Î¥¥ºQÅ)ýaDVå'r§'eä½OPæË)èo~±û(ߺX41ʦ!·ñs`îH
+´û¤Ré`ñîåHnÍýZw½&ÿ#ϲ$ûÓØPÆwûZØjÊ|d«óÿ'Û˽*ÿånb¹l*øc#Ìs²GC³ÇÙr[£ ;b
~±~Ĥ¬
+zRYëÒÉ
+ÿÑÖpA NlKª?.Ä¢Hÿú*TʱE¯Çߦöâö³ËvëöYKvò91P%ü®.:gÜÜz+ 0Ä¥¢ÔÅS\JβÝ/ÕÁ^YÑ#¯Þ^»3Ñk3v îïD
+,@®Ðx³X ù¾ø2¶rÛê`ü~0{µ"¯~¯.>mMò±Z#â9¼
+~FôaÛªþm2еf~5 tðN`FLGø6óqwm2KI%Yl¢s7õÜ®¸"»´ÂÓ%±ÂM,Kk·Kµ¹ypÍßýæÓþñù9#)O
+¡gx¼£ÊTUh:öÔug¦`pÓ|eî$û!gÈæcÕ\ÚdØ¢áòÚ¹f < JØõ¸}
+úXºÙäµ
+³P!3ÈONA ¤7ùʶs§¨_'òrïýÃC§ùÐ
+Ò`Yõj at R929¯ÅóAcA;Bäò`H¦ûÙ7È<I_'[1¸v0î¸1øýü)KÏ3ÃÌíõ+éPqET(ÈHÑÓóV¡[²3l ²èx[cFZçjÕeÞf< ¢£@X%7ú
+Gê,³xvæsM¸>Þî}Ãm¹*{ÆðKÐý¿¨8ø/ æïä~çÕÚkN2ܸç4üN=fÄ<F> ¤ºzgשÄ>S~-6JçîIW<]bWÖÅø©ëËã²Óy_è;CAÖkÍyYj-ÍÙ2|ÅT)qaV»Uµj2SõÈê{\B?Uܯv<ÝÁl{êìðµð¾ZDÌr¢=©Z;îÐ2³¯ô\sp·²(ð\IÝîþÓdEq'}¯0]
+๸#c½ú¼w?¦}Û
ÐéÞò0ø¼ð¦K~hnV]CĽ2£ÀÛ` M(-ßc ¹ä9¨¦y¼É+àï£hY¤`,yÀ'ø1) æ²6)'JøzY<è¯Uþ@µÿ|÷ùûñ)C¶ûÑýU®D*¬ìFáX
+eöêÂ?Ë«0°häIÕÏC_Îõö
+÷6¹NýN"©ÔÐC4
OηùÍâ²-ü9µëC)uÁ¡<%*æë®Ç4ïÆbÆÙøXý0Ûí§j|²±m#z¾©0jð(6ã
+Û©"«¹²i¿ú õJÙÔj½iËúÝaªL°Tg;<`<m©. º
+fÐ÷>.6EÀ&U²
}ñè¢cBîÆÂú^ÀëÃÁ?*@ô4rÙgO÷mÝO
+@´u~h»üû¬¢6ÄÏþzfW#áEtËC1H*q¯OÜRuKnvÃoa0û·k[ÄíMýÀÀºÈZ[êÝ- XÇ
+ÿG|°úÉÑÐÂÛÃ%V !û.ÝtüàjMÂèî[ÍÍtdX"°Þ$ã 5LrÂÀ³GAI¤!Ð"}|®ºÈ½¢#+àD¾»(
+Æ¥Ò¥Ïã9voñÈ´³88òFÚ¶WáJzu¸Og¶mJêiu[cË%%S(]+t«u ºcÏÌau92Iu
!^ÝdiÉ~:¿/Ý\
+VQm¬ä¹3ºC ¬êñMR¯«ÕåËÎ{JwÉ·vº_
+.
+1ê8È?ëPþÈuТs¼D×z;©§µÂ!")uâVÏ@bOæ+;Yth×x¿°/Òö³j¬gÒ2r¾R½zu\[Ô¥'pï¤:[-1°.(s}7
+Gän2ÉSÉëe%jEgÜ|"L§K å
+Þñ©µTñ*Ò#Dæ«|B±7(Xkü%4<@òÇ_BRHLü°vg=7ãb¸¸¸ÌtKØ÷ gñOÕPæðtí±lË(VZ[ÆÁýöï±)Cå¶ÍÛ4CáÁjß¼À;7.g`ëÈíøà¥ Ò}oø )®GÇM}Ó2ÿM»³Çt¬¶¾ ±@xÇÊÑÔCßiî¨^¬ï÷¦QSæ©Èo<¤Ä{Bÿ¸ßoöKÝle/§
+Fh±È\ÅÃu¶8fF}ÎMnµ¶bÛX¦ÞúpïL³:Æóí¢Ì¶¶dL
+^Ù5=qT+Þ
+ñæx9bû?ü) *ÍU#Ä)ºÛ%Òcz0<áHûõV#éI8ëãâ-2LÐny¨0¸4Uë
+©
+Òu§TëÌüâתûLîñúð¤¯rD1
p @éùs®ÊÉZ¯n
+öó?
+_c»ÁT½ü°q»Í2Åí³6 ü¬ÜRBw7Ét&=µÉiðËR¬;\qÉÇÞ»Ìöé#=³ShàZi*+S/%©,¶énÈÝÈ®
+Î#&
+« 9ÔE¿öÈÈ<Sëyßq'$2¼Ý^Ï3äðtæVëÉÝZ+>P¼ú+lYãi·e
+¨Ô²£ÁGô\OQëú_?ç)Yl
+KvÔâö"sX§ûËî?ÒãØ÷¹+무¤?òLgfk±þ{4ÇÈÖ=âOÝåk+¸ÜÝÀ°ÝÈR¹HÙÁMæN±õ9³°bÙn¿Ð~#òmä+âÇ9Êþ@µs§O+ú6ûQpÑóFnÃÑòs²ÈìÄh!Ç»ò¤Ï°íxxºóBÞ!
+ÞþæÉ&Ö8¡¶ú·Cµô 6[ÕÿcrÜxfECô¡¶åxúpøåGÁÛ*ÞqSRqaǸØâs¦E¬ÆÜYÑÚÙÂ'ª.bð¹bèôR ®í 9á8,üyXdy´)/ã¾H»\¥
+7,Ê_`ÌÅÏÅ(-G,A90L5Wh^sa_Á_Â:
+v½
T¬@üµäËaMV³ü¸iNlÎCBUï6¤W<p~͹Ù/Ä©=q7úvæÏðlÃ5à1ùgàÝa95÷2úîæ|D.p`ÔÇüP_│ê2(ñ
+
Äñzña¹jTÎ{¬ c4ÎXîT|íõ|ñbÅá¼páÙøÖå÷yÅ8ãDLóÁåøî,^4îçdÙä¤âU?ÌÕ+ºPÅõP.ݾÄYãhìQgv à颣ßõ
+û¹*ͺc§ØéìÀrºÛeob±
+ÒV¤QÁõ>,ÒÐÚôIN\~&ëÙÒg¸«E=¯¹]
c|øB!üY{êg
+\ß®BºÛ`'¾ù±Ðe¬
+ïqðqýlyKÖRò
+».=¼qsÛÍãËÂÞð§èBOEXí1¯=Óc!Ü'PÙ³¥Â®bÝ_BNn¤TÆl2ºÞìÝJMÈ e¦+Ò>F¦V°r°¥Á'õöÕíѨ30ÚãÄ>vòì"¤Ýkò¹A£¾+øpÚAÌ mMðQÙÃ$32¡9¨p¦Û´Üº@pÊy6 Gp4_,L>1PMóã.°+`qQD'7¢ñ%Ï£µâ-¾©ß½ßK£^ã²î37¢ËwÏ9b´q# ·âó¦Jy=Ù Ñ]?ÉJvfO$íñG~Íêqg at p»¦<Û÷1ÓÌbýêi`9*jf^<rÞã£`e7ß`òØ& )°ç§ãáþz¬[ô:Duw麶ê0£hrP\JÌnêçÊɰKEHÿä'y¤ÍRà/uûa/e_
+ZÍ'þ'ÜÖCÌ,¯¦áDÒ'j|C>̵KfðÖêau¹é'Ëø¸ejøþÄî¥\
+ÕÀ¥ããøibÛa?¼³:±[C8¨:hÊzª]è¨ÞH7ÖÛ#uly+
+»¦¥)ØÈr£-à\
+}òÃRIÈà«J¾äOR¦&.Kf¾üÛuQÒó9
+NSTdJ* ¸òîf{Nchl¶ñäÁ+)¸Î1ãMÓÍï<áï;öFËÞü_%j.ýMÑfy4JÞ«FÒSíÕe_ °art§ô¤{ FwÃ$ÄîîîÝCºC)¥K éîtç;<ïÎïÜàz{ûì.þVç
+ SRvÍoWÖÛç"PVçÕWÚ-£áÿ6
>àú¬³"ózh`{êߣd_RÁ!Æe¾rUîc|&Ñ6V/Åý´räña©b·}×ø«<<$¶¨NkzÏXN¦¹äq¥ÔZÌ0ö¹þ¿;èg$LÐ(û¤íüaþï²ÇmÂ3×ÖVâ"\ü,ûzç"²Xyræì/^DÚSè6³{Aa)&S¬Ð
§uµ
+×ã¬û##ZÖmPÛéê7.
+a§êâkifKÁw!vÊÿR_ë&àqÑòáç§ý¿Jðj_!ÎG±ïi°$hO}#KrcÐÃ=ã. «ãÀÌ1©~¡%,ÍîÆzÿ·À"z¼ÿ̵dqóͶþãS z¨BÎz6T²§®ùÙ\'ƨc]N²ø=Û俨ØÃ~çRÏÁî"7N÷~S¦"Êk)¥Ò)m²ÒXÉå·Ý
+V>!pâ72Këò_bNnjÞæy¹X=mz:+Y|<Ò©@½ü§iÁs3aÅøÍסP*ðCà[³ÌÎ)áµðºÙ-6ÓPªWò²P¢'C,
+}L2çú:yy_Ø5Æ´Y3[è®=iµN>ÝÒé6Bèÿ0Úr
+Pj(ë5Üù^>¸ùkÓEqЪA7¾>V!zvÅ%z,jߨD
+¬4Ï<T¸òè¯Z±1¸¡ÄÆ6ÿ¥£é4W¶n]~÷Å?½Q"¢æ¹ËÄvQù-¹ñ!jÀ«´â´æj):~)½$ßÉÜÂ\púûv'9ýS\oÛ}tüÅÈ,
+øy®SSgTà=E·ÐѪ:Ù å¨,2ªâNßÝ?ÖËçåo4ØV(6o¸÷b&G
9&ÿªû©ÜÅöJN!Ôõòà«<Ñ¿fDK´ßp]Á/ßEì;,aÑ^^Q¸£9èÌnµ@
+YÑ©®87;_¥cÍi«Q,nì|^(nø¹Þwýuµ9À"Äe~«X@´¢_"#_ZQsz/VU¨à'%Ã0äOfeÊfÆ9±¯Qåß*ÑÁ
+ìeE%V³n9éõù
+ÍÈáIÃ_S¿¶nÂý! `¢âðDwWΦ,îf+²HítÁ_s; EGú tAr¦alp|8Í(À¸þ±76ÐQ`6LݺáeL¸Ü,Ǭ¢7¥É¦d'VÛÚGÐÇn3>Wu¢éb&´úûî¢oEIG=ÈXïÄq³$*jÞkLÿ¯[*!à?®IÄ,ʽÇ×(x5Ûë>}¯:TPù@¦y2öÈNoD+n )½ L¶5¡«6a÷£cLõô4Ð~ö "nþV`c~ej²Pz³ W's©ÌüÈJ`BS´x"&9H¸¤÷J«÷ÜÎ}¤Kf´Éù|S³Þ7=ò%Ú4Þt^§Kgá|èà?|v>ñÆZìOjÇ".UH§VoW°ñCVÏc¿¹ê®â\Ùa³²fuëø
c.Êv^
+Á¾)ÿl
+¯Ð[¤MçÄûî×2¤6AÄ9 µû.JSeÇüçºòÓ®ueX±;,76àäuùĶN¦ì0à_Ï{=Þ.rÏuÉ
+v3{ÞÂ;ù°Náïñ¼¹öÒxÈc¦¥àN(CïÀNkîRtâuD(Wdj{¶k¹S¢$Üs¯^útý¢6-»ìý¡3´cͦö}²'ÊXmqENB1G¹3ùaÃ~Ú×C*Åúí¿ýÃdàÇôzsmYÃÓUÓ¡(úK¢
ä¶ÍÞ LÕg»í8ÏÆ¬gG»ÂÌ×hndOæ!cÏ¿kG$¬'eÔà ìÈ[²Q4¢ü9Ý?¾ÔøûÇ60Ï%§!§Z04eÊÕÊÓMsF Òż޲7°(åÙ¨ÎÈ,ËjGæÌN9E3<£FõYJô¯gæk¡ÖTõa«Vÿ8Ó< B:Z;ÇÀOú*ï²
+Ûð>[¾óªë *1ÂhnõgT½ï&ÞÈÉÝo·ÿ»ÉxCVEeæMõY^ðø{|CVmNQá]Õ*I\!î¥×¬ìzv®ôQ¯?¦C!¼e{eXÆr{} idÝ$y})Bkß¡1N\ÝÙç3ÿ|B¶%;Ä5îW}F¯©}u·RÎ:bT;Åým)` ÏxES52×r|Pyí¥ç§H+«ëd\ö×9ê/x'먣rþX_þÕÌt ¯IEÔzêàÖ\é½Ö¤Þk,W$kd:°|GôæÛóø3÷@ãùöJúþkù¤õ/ôÛ>&,ÏåLüÏê_^åim.âÇ÷]ñé8íp¬é;XSO;MG0j/²ôá°¡$>Çü®=5¥È Kæd3öëKõíè\ÂSè^7%
+FÐWÖOÈi¦û¼9A@ø)ïΩçOý¤"hèP6#k,Uþ±·nÐÛ:Ã6¤nx0äõ~ëuþÔ÷,ÞéF®Z]K:ʺÌÍ×Ì
+F5¼!\Ôëä©ö?[F{F¡}_ÂÙ
+×k»K·A
+ܶ\se³]½`NþÑy±o9eùðð¤ëïÕc6H+BLî~/4º³GÝë%Çù(JÔ&=EÏ
ðѦS,#ìê'$\]3ÇYóV¹}:hK<
+¬òK.oP9UìÏõlDØv±¸ÙÊ&lzà/õ
+4.ã|
þÅÒâÐÎÂÒ¥%v¿Å.H%°\¾ZJ0mÜ<ZeÍoi¤*!ë6eá¦OCºOð½Q?û;1FçZä/OåúBJÅoXfÏyî7NÆmPäâò{pmT4¨ý
+ú²èÓ8BnW½®¼¼Y"
+='¼·R;ü¿ ÙU8®r`±ÆD[Ê(ûøÂ(Zúü*Ema~
+®Ëµ¾*§;`ä&TûÚ(Üí)ûîôTKb£_,£\o¨íLÃô}8©õ¢íÞ°ãÅ.¨
+t³û Æ³ßøAtóóÜ=¶ÖïO4¶;®:ÂgV¨tËÏ+*QÒ)<¬¤M5Ç
+V4Cò;nf~.{ÄçlºËrÕ§ÅÀQÛoØ~Ë[KÓïÙÿqæ2Ù/zøÎ?.×áõ±ÃZ3ö¡²ã¹`®Ëä´H»ªúí~Ih6^²u"8Áÿ¬}±B¥öãÇRüÁrÁù¡[[NÇÀEßÝ;|Ùw4tç¯6d6:e)ªüö+ð)ÈQ_pàà7ËDÚ"¦»JM°Ü¨+'QÛ¨Rèö
¶zsßze²É06«hêc$Ïå¤ïìEÙÚ^s÷úÖ3Ý+ӱɪu@ò=9Bd©ÌµKµ¹ÐyBõmË0ï>¥]L²
+ýÑg2mÝr×`niwxÈíÜ\îö¢ö*BÕí²R¶û¤i9*µô)eÒâËj1É}ºÅdf¿¬8Í(A=TR¯î>æ-ñvõjaw,Aû;Ì÷'ûX³±¯¨fx΢¥£oâ#
+4Òêp]jÂ\ö#+&]¸ÝÄ¥fäÚú¿-±tľºh a4ÚÅ3H?°x¢aUìB¡Uû:H4oÓ+å0 4ÌÞ_þþZXl»xÉÓO¶J¼®~I÷9]ëUnf¨Ö¥Â*ð´´è3PªyÉûF6?õ|Ue8eÖtéá©/÷c2Ëõ±ØÔ{dýñÅ2[à_JOßûRC²Vn9ÙéJ2>¡MÌM8ËzXÒ{¡"¸¨6µ¶HbèÝ8Sâù_ÜäM6ÝJº;¦µh[ɺ{Ñxo= Nûþ98·*+ÚÒª
Ä·
+·,«!°WI Õßø½Ð½oëuvÅyd1>.ÊðÅ2¶o6ðYI
+W.h¥19jJk«Ñ.ì°I:9Ö£|o|Ïc½#\(¢Â¤Ë¹êñæ§D#fпÔUññÕ¦¥¬eþ°êçüeµ¾ ª:CEÎØ2KØWÐåGËÈOnåìAÔ5 *ı*È«%1½ÆñúÈòÂãßìÏÐáûG Q=õÃWcªMñï¨øëqÇyàÆ¸:¨´
+Uû»Vt)ôHá%ééiϨK^`aB|Éý
³á^Å>.KíSCÎWÀ^~ÿÛo5~
¥H4ßU棰o©øKÃ
+Îçâg ÄO%+TÔ¿ùmôo{õfÅêo"~J}UåÐm¹¾¤¼AU!ñq¢øáOcªz)å·Û$4Ì2Rì-kîl
+{oJ+UñÎѿ֥¨á5ËìuHú¿·ÄîÊENÜ* ×9ðÓO²Ñ¿@.qî°A½|£âʦ3éï(ïÅpø¯~ô¦Kã
qÍ/NÌÃ=BÞ9 at KßÿÌs8¯Ååÿÿìÿÿ¥£¹»§¹»n»§»U5îÿ
+endstream
+endobj
+
+581 0 obj
+87673
+endobj
+
+582 0 obj
+<</Type/FontDescriptor/FontName/NimbusMonL-BoldObli
+/Flags 68
+/FontBBox[-84 -278 839 871]/ItalicAngle -30
+/Ascent 871
+/Descent -278
+/CapHeight 871
+/StemV 80
+/FontFile 580 0 R>>
+endobj
+
+583 0 obj
+<</Length 875/Filter/FlateDecode>>
+stream
+x]ÖÍnÛ8à½BËvQXïOHY²é iÀ±Ô@#³ÈÛWGÎtø®>R4éuw¿¿Ï·õ?ÓåøoÕÓy<Mùõò6sõÏãªi«Óùx[ÊÿãËáºZÏ÷>¼¿ÞòËýøtÙnWë/ó¹×Ûô^}§Ëcþ¸ZNy:ÏÕoÝÃ|üðv½þÈ/y¼Uõj·«Nùi®ó×áú÷á%¯Ë]îOóéóíýÓ|Ëï¾¾_sÕããå_¯cãs^mëzWma·ÊãésM]óǧã÷ôڶ¸¶®c½sSòü1ç¹EÌYYÙ
+ÙçÜÖÍùíwÈæÒ#rbNÈs¼§mܳ½Gçnýþ@?Ðàôøýþ@?ÐàÎìÈôøýþ@?Ðàôøýþ@?Ðàú~¡_àú~¡_àú~¡_àú~¡_àú~¡_àú~¡_àú~¡_àú~¡_àWú~¥_áWú~¥_áWú~¥_áWú~¥_áWú~¥_áWú~¥_áWú~¥_áWú~¥_á·sõ~ßè7ø~ßè7ø~ßè7ø~ßè·R~ßè7ø~ßè7ø~ßè7ø~ß9þñwú~§ßáwú~§ßáwú~§ßáwú~§ßáwú~§ßáwú~§ßáwú~§ßátF8#ÎHg3ÂÙ¶
+lÎù+Ú²rÉæÿY,h6¥;ÑÈDt8.Pi|ñFv ¢±+íåK÷ÌèdDTôÀg¥uNmÉ-^F
+̸>-AÍÄNèÄ
²,²éuð¬´aÆ`¥ÅALt&8eÁM³<#artËF{ÇN®tÛáÞ®LvqèípvÆv¼øÎKû2¥=²æn±ö=Ûaîzf»õ1þûåOOgñôË$@;<«)bÏwW<}ynS~y.®X§G¡ô¥)Á°ÔÁõë¨3,uðîÖÙÿdØ@±ÃÿÚ«ãÛ4ÍrùPvcìÃç1ÿûKáz¹â®ò÷pר
+endstream
+endobj
+
+584 0 obj
+<</Type/Font/Subtype/Type1/BaseFont/NimbusMonL-BoldObli
+/ToUnicode 583 0 R
+/FirstChar 0 /LastChar 255
+/Widths[0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600
+600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600
+600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600
+600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600
+600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600
+600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600
+0 600 600 600 600 0 600 600 600 600 600 600 600 600 0 600
+0 600 600 600 600 600 600 600 600 0 600 600 0 600 600 600
+600 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 600 0 600 0 0 0 0 600 600 600 600 0 0 0 0
+0 600 0 0 0 600 0 0 600 600 600 600 0 0 0 0
+]
+/FontDescriptor 582 0 R>>
+endobj
+
+585 0 obj
+<</Length 586 0 R/Filter/FlateDecode/Length1 1354 /Length2 89523 /Length3 521>>
+stream
+x¶st%o·5ÛvvlÛ¶N:ܱmwmÛ¶mÛîØénÿÞó½÷»ç;jªzæ\k=kÍU{S(«1Ú%íí\Xy¶Æ®Îªö¶ö<òª@sW#À_BÝÒÅø¿ÁQh-ííxÿ;\Ì häò7rù¥ná
+q5
+ at máââÀËÄdö2ûbt6c´º0ýI!ag*foûO7Îppÿ$[:MþïÉô¿homgïnçý¿±fv¦ÿl0uu`Ò°³ttÊÿWÎ_î0s
+*èC+z³nçõï¾,òÒo8J±UUhS$fµaÖà>¨UP;Î
+ö? Oò
+$p²èÆltjU¨gÄòuÖ±f@,£5»ÀVÉàq=ÉàE$
+>ø7rí@sQlº×L|//807êFLmÌ
+ñ'ynNÝ£ äÖwmbA¢y~¤¢â3íN0ÝyU%Ü,Òèñ)ÐDãlY"Å5S½RÄB½ÀËç½.qÍ3cPºº¤Ý¼¥ðj; %¤^RÊá:ý%F(
ñpHĬÆÊkI,Pk:ºs¶E\½ZQ>?F·Üï3ô1Òéðj¨
+¢pýÔÐP5ÖÈÆnÎö.àÇ+1'»
+]t÷á-Á¡ìdqyÜ|îÏWç*` ê§vE¯´¿'2nc¦9Ö)|A®Äy£ªþ88A»A·?ÁÜ&8Ò
+°{^²Ã!Þ
+$ýº¿I¼k¦í¢®xB[§\:кS3EQ9åâÜ4û0û2È·åù ¨¹ ³¢ßÑc² 0¡?T§þîÅëdgÞQPÐì¦
ÇüÆ dû{òÎ*Ú+Σ¤ÂÂpe:[KDùϪ1ë
µA²¾µ_<0
·RÄOW¼M·À:¸Øßª¬!ѯФyñ
+¡ÏªY÷ì*{ tÑ»üÏgJ#S6þ×@ÝéhÜ.ìûlÂ
+4Ì|°Ð_ñ@¾Ï`1}düÙåTШç±Ü#Qi±1¨2ï· 0ã`hTQz«&v¡ãhÃêÛ
+Ø·CH³â6}?UxËúü2Ôu.ôßã/õ e
+¡ea;u÷z1$ßLPiXA¾Ö&óKßp9¡w½áÈvÜc ð_ÃÁbR_æNn4$|â-òÐ eØ+)BÌ0Æ´ö1¦ø]4è;cs\µªZs
+lFêJ±Ï¥qç¦È\ÑÉÃ!Ŧ-Í÷Yú9v/e4«Õ_Ú
+('.~ë~MYsÝ=mÝH}Úz¦³/Á0ß7âÑ2¦©
+yp,iÜmù$.E\AD¨Lr¹0õê÷5`;ÀnCì9|Z=Oct³ð¾ZÒñr®p$Ʋäé.×Ú
+hZíz(ô:×8Ãäø|}k"ìÛY«8có§÷ÏO9wÑW/Õ*æ4!/=` FZéúp.ÓG}£Yh!µÉ²l
+n`kÌ9?ù££
+3%ýpì\NQµK4ª®í@[ê9¿¼^}Ú¦F. |O¼D¼²ãDç4ÖF «F4r©0º«CYï:t¬mJ+ª9í÷ò»&kyÒË0¬
+ñK^2hAÐ
iujYò"¦ZAµD±Å´GXJ¾-ÍwÃG$´úu¹Ç;{PüÏoÁLúíÔïú]r¯C± D£Ø?
+o
+Þ*ÊñGâ3£ÑÉ,Ám~}pU÷¼W´{·åð3ýÐrlÄ1Ú
+|(ã_Ô¨IqÅeGÀÏñ+%o¯±¬?D2%ëDí
+
rõsöÔÀ_¸Nø
¤<¦µÂpÀéðe¸gH¿}·¡íþÊQ«Þ7küu
+¾o5mØß¹»öÑùèD3mB_nWÁ¨|lÍ*Èñï~ioåaÖeä^ÕKë°¸ÚÅòì¾õ¬G9~ûq4+
+Xå5/XÞUù^íTðäÞÝlS;afÍ5Mö(#$Ô,Z`ó60(¼ç½6=½p¦aÖDßz
+¿±¬û¸ó
+JeÊ'Bq&¬ùF@äÐ&~³-·òc»6ëEk6/ÝǵøÉ
+©å½b''
+ÿÞeÇV ø|h¶ZCmd@Ï6ÈÊûÍÒ\g³EzÒá)ÞnÁ>:Ar¬nzô'é¼JQTÓÇý:IÝã°ÉóôLXÀ
d+É|ÂV:oȱ«7
+mÖ¸éÆV¯ÀñWXZx6lZ¶íY<¦úìÉÛÔx§ÙH¾^
+(Éâóáøæ75Lç\)_
sÃÙIB°A-žÙB÷RÈì1Ç)ãË'zä$³ýÁÐÛÀÉ%\u~d÷JØX·+kW<XpW1!«aÖÂ)°@UÕ.=lÌÉÊ«ý&CâM$Ó«Ô² àbîvä]Q³eíÖ*ÓÈ¢ÜÐ
bæ·zæQÖPsÍý¥¿¿kð¿Uñ X`9ñ+"E½JYü¨jÀjîa#ÈRðÚÊVx3ßÏóßûd¡À±+ÒFB¡ò
+¼ÝÏÀ@ëD¥ÁWù°}ó9楩(ÀõO8|1o¨Aõ[3a^¶p®X2îê®l¸óÄU bÈ!²;~6ÑmØítÇ>ª¢ÄÓx`ز¼TøÐH^Òì
ïbÌÂIx.q}wm«e6ÖE!ù
+KB½êkÍmÌζMÕîyøV× \¥EÕpà=W§e«×°rúQ )gL÷~ù§ûÇ~sc§
+ÒªWø¿X&eÍÕêXlÑ þSßz2JDCÙfÛ25] ÑÝÔ§ k«]¥@D_ýÈOM>Loý¢LAÇÈ[[@N_Àt~=¹ëê¡y ¼å~©¥¤È/QôùîªL.±T ÀO
+ïð)½ö¸v/® ʾ6t}85»n"\tz«y¸}aiòãßp#öÞv PRnÝïcqä̳Oߤ]Cã²Ún£[Ä¢/3¨aZn¨Í ¨FâGRiTù!¡ßF#*CÁßÿ ûâ9£»È#¢¼z-¼Âê{#±V&äÝ2Î-÷^3ùîT÷Ïß@·¿Mp<áºSgV:ô³Ö
+WeþV#
+ãÝb
+=ìÊÕy&gøàHoå·ö¹/Á8Ôî×±.£ö}ä¯R~£GÌ(ÞuÁ¥Q÷uõ/UnJªâ(^ÚH-[ÈñóæÁAú[§Ô(¥ºÞ(5=v»6ÅÒA-¯nÙ¶õm`»û.+t½³ÍÔ>ævùî³Æarq
+mÍ;ElÅÄäiøT
+8U«)¶gʺڱ;¿Æ×¶Yhg3«H(øm´©óC4"£?9ôÙ±/Öwf[Ð/&oûgÙbsî¥}ÂI»{¹ÓuRIZ¬Þ£è¯äSËÍGK)9y(uÙGøSÓôa< Y-®ñßH\«Fã¨I¦Ýãßye¨Ì
+-3 ]édÒÚÍEZü_Ïð8ãëö_=ü»¹íNnöé§|íïÒn
+ì¸"m
+]k?»¢¤À jv÷Ï)æhÌ»Îu^óéij-+!aóøÁ¡q_yFíà×Þ=©æÖÁðóü½0ãVâ}øâÃåQ¡&ãú£ïé ×KJ.2xSÔº4Ç5£1ýÊút[ÓµÃ~CKâ2FFü*Ý µï6¸z/ë=ÐôÝûmK4³@|¬hF õ/«òI¦]ÁõÌ8_©dÞ¥Z¾¼qMX|ø2¹sA(YSü1æÇlXIXõ³ëIìuä¢TàNÈ},Bn÷ÕÉÀÉ4gãR 7ݨek}$>Nóqëd<rbQF]´uÛOÞ0þÌQϤ¡fó³)
+.6cØóäraM³lÞÞB}JÇݽ
ÕãEϺóJ]N6Q[üojæÆ¨»ÀXÃZ^ZBMD/Ü=ñÔPÇSîP¾f4ßæ¯_c¤¸Lñã£éRuç AfYæHIÖoÇs4øª¦U"2ò1N9´¢Ó8´"Ü8Yò°M;eÝØ&Õ«á¦Ë7êæv~·äs̳
+bÔÛkÜô|Ò$J¡¢3Í¡å£iBÔɧy²KӸƳóÓuzDrRi?·V¬IÍ,´n²Oàðb¯?^ævcÈ=g¡hÔç<³ÉÔµeÕ÷2ÅjX/f
+}¥â¬Ø×2¿1ªÄV7ÜÐ3Í'gÅÁ
AñÅ}©é(Ðnoþa"x
+
+r=õªÊké·úäö§¤~
+îYʪï¾ÿAáX*ÁlÁA^ùix¤aÀ§Óz8ç=CǤ:dµ²®BÖØùÝsfA
Ç|§3±#Ô"[&7m£Ì>;0xèéËo`êu
+¡ÄN×{bfËWÇÍ,¹£h:GuZ{
+ï¾cLÙÞ
+nÌåuh+Æõy/dζaÉçdES¢ÍÚz°4-þQÙ!çÔEñ×ê$æÁî³Dh6»WQl è=ûópwåe§~~µúºÏ°Þ ºD}1Ãgg5Jµb¦}
+¤ê¦½6½³Pþ¶+Øå\Kðàª~k³Êg(iÚ{I~<ÞãÑÕ¥oz6ìÌ9^§%%^ëgJý¬Ã÷üÍöúH$õøØ\wËho¢Q0!÷C½äÛí0!2ªÕ~.EÝm*z
+¢
+ånHnØ<GAå@³C¯&×óòi`]Ûña5¿(kÚ¤VO®M
+ìö2Du`F òiAè'xÙ¶qâ~i?Õ¨ÎÌ÷°>ó~ùInXÕòximÓzÑÅQäN]âÆc!,øÛÏ`#Uû
+"F³9s+|vÿ¤ï_¶ ðxäÖüGÀÛþÇè¶ñäo7©k +:!( Aßu²î»¾]ç`¢ÿX*AxB
ÿ>LÚ½xLû)¾QhD÷²ÿÙ1Qéß+¸}zÞ
+JöðÐ[øÄê²8ÐósÓz Ñè;c(7Þ×§dÒÔB:ç( düôqñ²þ³à%ù'è×TµåÖÿÌá'!é¬.´ÚÜï®j® òLÙ(>èCx[ª ÊB¾ýk¥grÈOµÒvs÷z¨9w§Â
+&ë¥ö+PRƨÇY*´Â_ó8!O¯z:$zþ(àÇMÄá>ë©ñþv2?¶X7wIá £¿äݸ§ÿL8v»kãM
+¢AI¯ÇL|Ä8É·MV ßC°{G>=¨Ä*5©îÝnóØ-°CÁT¹xzú*KÁ06àzöJ¯£m q÷Å#%¾à,Î2
9R
+¼{d¸~¿|«ÃvÇ6m"ÖÅâÌ?)w\¦§Îÿ¦Â"sdï¡jöGÍ¥^ ««§»·ö¥AËst{±£ýÔØ
ÏdWÙçwu±Þ>`Y"Sk*ÍKËlÞ©7qJóAª°4=XèZrµ%×Hø¨ÞJ
+¿îÜÀSÖ}¢üüR\WmM/OÑofa¯¤bªÙ}k´µ\Ywè°®±ÝP]É髵O^AÉmzií/x>ãýûR)?=üÅÍP°äÁASíøÆ£NrUèïR2L\%µ÷Cì'^P5jtKb:ÓRwL-1/¡ÒªÔº2ãåzÐãöy93x0ÞAHöT\A¸ÿI$£Ì")â¬}ÞÒs×]£@q*åSÔËÞgü÷¶Ñmré"8z¢÷'yú3HZ« +OçÍÐä#®ZMÛbtÖÃ!÷õÚQ ç7·µÉñQAk'9ÄÒúð[¨âÉ>{qß
+ãEúÌ÷ÞØÇ¥£"Ô¿^Ù/<ÞÊ 3qnIZîqvj©EÑvH¾EôÜoeøÞdmlâ?ÉiÆ Ý2ÓL¦ÚÀÔ÷x
+twQ;àÙý 3߯ø±m'¿ï@ëYt-Iº:úÇÃÇ!Íl¤6ãNCrÁ3ÙTÖ¶þl%ª$´Ó·*ßtæ®VüO&<YF¹ãXmåc)¨%á$ÅïCvEâªÉ¤ê«4ajÏégùÿX@h d+
&-ýªïbÇ*ézéÓ5]°``±ñ>ÅØ©uÂB|ròô3F#§ºÄ¡¾_Ãbé7t«zÔrȦ$Óy·UźQµEÅ×IÚ\xyÜsV>¼sg#:¹.t¼£éÊDs~(pÐá\({
+5#æ{S
+sÌeæGÔ%¹ìÇn«¨Êà ÷7ãrHÖöqóö²¢ú8Âe¸G^À8ùnÐô!ðT²E¡FÚ}¥Ô"±é§s^ÙÛ&¥]¼.p{ƺËáâº_p@Ôë}ô=ì;
+g[9ÚéD½èÿõOt=ÒVíò>'¾µÆLïF)íaÿTY8§¨¬ß¦S7ÝÚd¦¼µQ½¦ÖEÙ3ðl ;B´|Àå:ÆV¼çѬç|Cb©H_3c
+»(zxCs]>Jj×=uùi3
+i"¦)ª;JpîwØ^qâÇÈ&B¯Ð<Gqd'MUëÒ÷í¾·&»4T]ö¶yO¤b>Ïü¡Õ©JONH*9;©](á2ØýíÍ{öNnúEõ+gùvá¢UNêÂD¶|ZÒ5iP"2l¼'çO£G.X9ÀZí''"¼mÜÐ÷Y©áÂó0ý¬ÈjÞeÜ®ùjR÷Öno:5|ÓðsËî/<©ÒkÇ{c^ÀD9cªF¡¨\Ý{
+ §nY¹7HqËñô|c`Ö:ë`¨\@,UÆFÇá³È+ÃAÀ/×L2t6\3NKýøç÷ÐÌL×â
+¯°ÈP;ÔìÀ¢Yrã ©T¶¹¤-«ÈS74ÃÃ_$AN¬r_Óûõd·â¯ :5InF_ÛÂj1¸¾@û4/õCcÛ³
+ÌsÝûÉó4Â&ʨ;ßws´áÅiº-T¿}ÃcÂ8J®ª-÷\ûÖÁ'¼îáoʵÛ)'Úð$Zªø¶°UhZâÈsC/¸3ïdÇdzǪÎ;.ì¿gÈb©¯¸p¦Áú1¹
+´JP0ØZëËF$7fÏNÂ{2ÕOjÌ=󪯻«¹=`ÇËÜ
+?|F8nsýfHs=å¶Çû_V©Çζ¬OèF»2S0pû(Czfádk&}QÐ
+)¶c8 üòªËÕP/í§o'ð` eÿÄE|ÝÔÃÞ°rÌ÷º¦3ÿ¢Çódxð2¯§Ze~·ÐßiÙÍÝã MÓúÞ¤P/¸ÏZ+»6··hÔ|»÷Wx¯1æ6)"®
+¨·´ÁiêLî@¶ÞKâ¶
+×WQ7 3ZyWúaö
+qÐ;´é¾æ77ùï¨üj"¥4½`½ÄÒIe£ öÝFû´^ðýßÂ"Ë´xY6ÈÜß¿=[äÓñaòZËÀ G¥ì<Áy¼+õ>
xpºÝTÌ(ÑôÅØµ4ÞÓ_?oZäEq8ËïWÔznÆ$a
l8EÞd
K¸Ó±«^ØÅo2¥^; t|>E·û%(¯ióëlÚDsèo/K*Ô³YªjÅ#J
2Â3³z)qÄhÚ6¾)Ç&©lÅïþ¦gÛ*»9ÞÀê}JÍ&ª99¨ûÁÌBì«?}ªÖIN6Ôñ\$6Þ0¾¸Ö×]@ô¾`ê)=RI)ÇuÃΩÍa~ãÇ7Qªë°«Ù0ÀþeGÇöë½®(PøýÑââd,ÆQÅ7ßDDkõ·m·ocWÆë±cÚcÉÖ´mD·DدßeÍ$ÖBnaõ
+[¬
¨èÚ)$|Lo: ¥×°ü\ó¸H¥¯ú»÷£W#õ?Øb?éé?«`}/W¾p
+m¢õH8¨ô_e²+U¥,¹Qj1îÔë¶'âFꤷ8ÞM ûÙÓS¨¾Éüó LB¾P i*çsͱ©:vß·DiÄ(Nb1÷]h·àBÖcÃfñ¯f^õ]º3µY ~¡/e¯sí-äCá{'#ÎN:×i»]ÀjÙäL%w1n4g¡ü&é=B÷þ'þÓYA©ÀÎ
+[4îÃ׳WæIëðåÑ8ðé¡eäÌmW8¥[[_® &Öê:!mYÜËêF+kѹC¡:©±Íeü(h
+V»tË
+fK¯ÓÕ~m«DÆDà±§®w=ôe*Ãå´¤ftËáÊppµ?NÑr«[;êN¤ÅâRS¬ù*Ñe-eó;ÔÑîç*°ÖAË+|ÛÜ(íaÍ£º'iZIÇ¿·¹j̬Ü÷_cϸ
+gÚ UíÐÒ¹0
ån~ĺF
Gun°¨R«S´à²lÎü»Â;ûðèãèHô+=o
+ùÐéR¾×.iTÞ'É
º*èô©Âçïé;¼?©0)
+bCÑèKQBÖé0¶¬ tPïÏhX"÷Rúz^¯Ê4[N¬@Ced9\äpÉ·,¦WyèuìLÄ7¯øÑ7»ÇËC³)
qãä^.>÷zJѧU«(sÍWs/£!oÂøj¿Òy}Æc(YØr.¡ªãSX0¬ÁHpY0øò}ádÞS÷%"y /éÅïFßÞ}D¦I¨öòvû§H4º²ñ8ï¾ö²LN:">
+&u×ûþAâ=R YýntØ¢@¡+¨ÝðæåðK2BR¶°ÃqôÄ^À¹üb(vùya«'ò©7õë®ÉîÞÒ¯Ê:£Ï0@§Èsó©¾bvaÖv6T½AYÝÏÐý'Uh3è(z Ìò0"Æ<D8Ì<Y
+ÀÚâú0M§q3&qºú|×÷ZãEÈVûô©êź¯ñ.0gEÈU~W³ë î±yªJtjsé¥ãwbïGC³|ñ¼àNÓe«ï$Ûeãîhè:)¡ÍlÉ<¡åwE,¥)¼Î-zù:Ü2³»å<
+L¤üÔFG¢²o®ÊÑð.ÝñÒòóÊÅ}|&@îÈg'ü¥+µÌÀ5 +L1½á'úOæ¥ÍWq*1«×FzRÉßÉþÌX;8¢ôÒq.¦ÎrÐR«&:o¤
+u{ëC§Hë_Òn©S³~Ó~.è¤ý1íôW-MWíMÙÝ@p¯ÿl8l¿ó²©éÏ÷ùýîú´¼Ð%E¹-
+i´úSá<}>"_uìÊ0¥¤.·uÃùíTL8gËå=Ú^æG"<èAâÇdØ@ö÷Õ²ÙÚÜÞzïð5ë WYìáGÛjÒÕ,æGZ Ư£®K¯,]ÊtÑ£c¼?´¯P±ólÐ
+±úkôÏÆï6SÁ_±XW5Ã\ewK$¿èêA>Ýì·2áñ/b
+ªwOOH9¼ÔcNaªl±BÇö\ÕËk%Ô}ãW
â$ô·vÚ¢íP2Ëf¤¶dyæ3ìª=±d¾»ÅÌíÌÆANk#ñs£YÁ³
+Ú¶8~ï{MóÙ¥ú¾
l¿}g_U<¤éÊÂovC 9Ý=È)éI'eÙJ\b§ýÎ
+
+VÛ8ÇÓ»àxp¬¡B§^Ñ®ÂÊ:úV¤7[°¦>X`ÀêQæïE3(:¤,þ£ù»_Óêóº^Nø¼Ð±sN¸/ï,á¯Å-ÂÈ#Ýç~åuêè1Æ5×ázÈðIÄF*Õuð諯B¨Å;f?Á×Za£Ë+E¸ág´O¬
X'¥w?8Ò=ÒrûÂã8ù"?Æx{I¿!ûÉö¾º|G¸¸x±Èd6KÑÞS» °ã4.i§ðfmÏLBÏYõv¦ýÔ3iäo´õmÞDí`¡sVŹ´´¥@°¶7¡xò'>Ï#ET*\ahG6º[ô3ûÌØ@RÏ¡5¬;¶Ä-ÎbªtÒvkøX¨Þj5tºZrroY
+kâ,hÐjWó
Úå»OHî
+"N¨ç-$Ý?ðF»û´çB3¾ÑÑñÏÐM1(Þnwìçp%ô²óïÃÿà¿wÓ°¢ñû{åb-,:Ù_©Ðõ£Z[íA¥ô¿{ÀI£).}¢++ÎuÓsEnù÷\îd®¹p«¿Oi¤Íxd»n0í'××Ä+Nôâã1@÷[$ÎÊÛ~-Qßêno{E`äïõà¶B
+òëåæ =ÒAäãÂkÐÐ5gÔ"ú±èNz<ÎNãEÙÒ^®EUèðV~B[3K@£ôhѼ%]4ÛDóÌbÏÄ|AuE@[¯würÉc0-Öï¾sÐzìóyG%'"ôJÒµ°Üö4ó°-ÅÖO7Qn
+ÍÄËk¨©°ë¿0â´·m
+ÁìÇ?¶}CÿÃ-Mqé¤+Xh¥£í3ïû´`í1§xTçÙqãh}ÎýèúJyðè\³f_Kq²¯a'¨R[6!-bqã-ç$%¬É¦úËz}yØ'WË맸
Qwëð 3
+IËY¿G)VRÇn^^ÜF¼§÷²{
+Ú@»ß~øâDÄÊs}LsvÊïåÍzhnr©Ü;¨/Úeã´_j
+àátôo :·k¹Ì;:Í-é ö
²QoÆ·¥úP¥í~âüI4¿Ä>hßâWé*&TÂîH´D±ôÊ*UbÃ
tDS¸´g]ÕßLÊIUux¿!=`C{{*ùúñÄ]Øî²A¿rÒuçÆf0¹üvI{cCƸ&½°hfâ±o>îÐë³ÄΪëö>M¦ü1e"W´7Éí¿nåÞÒ^æÒþgO«p¡a*Ö^@|rQbsú±Æ×G'Køû+j5¯æ,ý«kö'ÌîÜWFÁG{N²ÁÞ=½/Æúus?Ç«{"·<Ðà
+ï^¨sä/hÖÏJoa¦ðeÊÀ^ÙI¾,Ô¾ÕÚFñÜgÃéAWà#þH-ÄØîPÎ2· LDhÓâÇ5}w$$ÝÊ®±ðíÚ¾b4eÑçZÝUd¥«ÌøpÁu¡àµ}PGõÕîÖÒáyCêõv}Ø.
ÛuòIñiH×ÀßÊñõô}Ø®£Ûløªð[ÉÀç÷.)èÊóÒc?Ãæþk
+±)!+Í»+4¥Àwdh³ý!÷]ñít[Vu7°~òóiyÇ©ÀpáÅl|Ê2õ.êÑ ·xÐü¤¬Sï°¹ÒO^yÎ^TJÐÜ4:äox¢Wórl^wÚ/i
+**¤JôYõÎÂ2+x릺@ü
+Q`ãØëd*íPøPjFØ7uûÄSÙXGr«;JGÑð}Z{Ø3ñbóJ}¹ = N
)Ó?Þ3r»@ÈÛ°f×làv7V!b|ǵQéf,2g :KåÆDÙ±·M){WOñT¶yDMàU¢âé(î¡°{Ï俯Ë,ïöu]Kµyç¾{¢RTÄôAÞ8r£
+5D¸ýõÆæñüq>HSacW½NyYNÌÀ$èÚ§8ǤPl)
+³ã¦°±º·´þÍUÎ¥¹hK#öæ¬`"eJ~>"}5§î¸<iMzvC,ÑÅW1èÞ}uÚnÛ¬m$£tªáÄg°Ä½]veLùzDäÉú6õiiFK)oNJøá´*ÜRl*y w´Ûð´à)¡Jüw°
+0UÖ*Èa¹¥PÐòÆöâáGv¾¸Î_åÊE@ΦÞ÷7ß+Æù·]ýòü^Ezæà¹4°®Ä"Ð1t¡¦³5sê¡n£*®Aí|UB©Æ¾#ß\PTHGΣ*ÎuJ {´:K~Â@ZJÆåá³Àt驯î¦[ûJð¯³7Éñ+è¨íþ¹ÕËÐp²E³³(&Aâ}^)åÎ ÉQÃSJ!âȤNBnôÍúRå¶4Ì /êÂ
+³ Cõs;Ý%äR#)?Ñ»ìNîθ«S_ûŲÑâMöQ|QèÀË´O~Á¼:¹4hl±${&/Æ pu¤D{èé s4²|ò] ¦²½Ðèµùo6*
{ ¢õôc#e*:ºië÷¤¸àvtÝ:Ê1wÄr¦ËÔþò
+W¤ã@üxϬn¡-
+N¢Ä{§K ©À9p5a ¶ø?® 9þÇÁû¬ØJïºc¢Du#?è þP
+yìQÐïÀ¯wQÆDqfݳ²4 Ufu.¦xÑ^Å;9áâdµæçd§I¸í
+=y^|©D:LET¯@6ÓÊHr6ät]·Ôj*ã®<E¹f_óÄVfÿÆOV/Ô¡HC#åABèà^ß0¬g.0©àÂà*êEöL¥0ØWÿb§É½;ÁòâòÍt^7ÿÒ¬=õö.Ü£ïS¡v!wàvü±ª.rå§`(Ãx
+UGÕü²á§.Ʋ³.Ö¹ÙnËyql|'Scg¼)ª>M+v[¯8[æ=aÁ§ö
"Y&&õè´4¶J¶Ø¸Ú<:@_÷õ¢èê|7Òyàì! ¡ ÛÄÅRÅ$ø¼s
+iÔ~bHAýeSá-<²ïeK!g:8¾h2è'xÀ¢K©£¯½×_IL!T{!ÂÏÁ»w<YÂcäQ%w÷w̾¯Àsë½
íãuu5Sev¥ÜéµïgËwTòîôLñ°ÞèóqF~LB#8ûÊÓk2¥ÝùD¨Ü;¯ÒC¡Í¼àR@ß¶Êq0~*%ÈìpÅã&¥oÀô%'o¡u̺®lfõk.oÛrJÃsÃÐvZ¹"[ES²SË/Çq
iä¬ì8¸1É9ªÚ¤1æ[¹hÒW¹¯-Y³3ªaûmDiJ)ÞÌd[Ú3;x`O3¨j8ÓLÂE4ÞcuñÁn$qßàÎTéõSUE͵s
+Ú³qSK¸Ò±1ð'X
+~ûT
+~¹½%%òÿè_
<>:LýÃ'ïÏù%\SºÙ¬¬äí
+SH£ýôÉ
+ÓG«S
+Õ ½U¡ÆÖüQS$ø^®<Aß¿H+ÏîLf=<AäÂA©
+ª¯äd¦áÓ\¥É5´õÍÌ,¿-°²S ¦6ïFïÍU !ÄtRÚpüá|,2[lݦ4/*Q
+BÖºg}¸!údf²W+ÅaöïB÷ðOzìSY;kUõ9¾tgÎýõª,Dm
+$ÚWU³q¯'ÑwmØûêN1k`§<½ÿ¦Ä;Ѷ¨Æ£øÉÔãóóÎ@atë£~W$1½ù"¨"¸Í¤×ß±ò³íÞì2¸÷=ù¨F«gZÌÑåV¼¹SÍðb
Rà.m}¼îVoÊþ[BòÏ{°Û&î)swÈÒß)äÊD~ý?;+õÝç~«å&nýÒ'#ìçËZs³nËȼ·ûæ+±aÆG§ÀÔ2¨X§¯áòD£ÉG{Ø"heBUØ2TÑÓ&ø_nJöÐ"G§ßO%m8ìÊHÛн¥YTµXÉHóÜj}Hg©Z§,xËðÿÜzP3QLªa÷i`¯Î®£4dxÀ¨v0Ï4I¢.YËó:Yy´ «ÑÕpJïæé´éÎR1½yÿ
+fÅÁ¾^QäD êù{¨¿£á¶fIÞ,HÍX Øë´ä"`Ü׬°éJD;¥bµ¼íá[V8MÇpmçÙQU¥Z
+½ó
+¬tÍ%w<~Ñݲ1ºjI éÖBÊàøÏ=¹#ÕIêHF¤aeªAd/ ÷{ɱ5X_ß|$Eêǰ
fÜî·ÈA¾vÎ( ÓÿÜ`bÜã5kk{~þ ·»M&Ö¶=åa{þc\'9e8«?SÉ[×¾nÄì¯ßIês¼ïÇ ¶23.e÷å¦RLÕ/ý´Ö»µî~å$Hâ*í·Gݶ#ññc[îÒ*¬ç}C÷¼Â>p)¡ä¼÷u
+)Ë
+ÏfFÔÚì_µs7Û÷°ÒêO²@A×ÚºÒZú=&Söµ0'uº
×^
+FEzã½àû Cå®.ErÂ'¤Q>&ùé}¤GB^#`µðfm¿~Òi
+¤J|ÒÚ0`kñ>æÿúæÛS$²CBKdCÕK!©¶bqba2Ð þ»Õ³îx°Ì,j<¼ÊªÙ¶Ü4ùÊÃ%üênOÿÑCk¬?dU|ZIÔ3ihA%£
¨²<DÞ²AÆó\a¢
+1Ðú='uVo (R7` ¨YÿB«w`ãAée<4§Ïæ:OOÀ_cÕã¡v¾©·£ÕÁJ@,äéQÒ8àuëØ®>Vÿ±ªäk¶ÈgjÓ´^km;
+3ßÌ@éÆ@r[
§ ãÆ#äIA\ÐE¿BïöR¨ëAóÞÑç!>Lçðia fì?ê(Üÿ^4uõW£ÿ²ººQ°pOS÷ë¤æÑÀ¦F^há.V²ª>{+ÿ^H%9ä; ¹RÈó2ûÂV-_ÓCyÆËp¬îÙS³½ú=K#¥µÚÝV
+N)·ú¬>
+~*¯~·@*¶Ø(] JóÚx#²£ß-âÐîú,Ü@uC¹Côµ{:ü'Hi´Þ`Tè.ww¥¢¤yh,¤àfÛ«ÂâÑ£¿yí´¼X7Q?C±à©ãb×Ie·ØûàTôôÜßYÚà[ç[ÅèÿºErŤVUÖì
+dÌÊzÜo&ñïz r%æ ý. üÖK²4Ï/-`=agôÐn½SIn׫Ó%Héû½0×eeQ|ͨçâT¸G¶îyáÃÈÃ~ö«{~(â¥(+Ô¿£Iìá+´xbÃÏI3"cHÍô³,cÍݨ¡*¤E#µjº°®SúªÙÍîÄójÄ1x\îÔjÌ»]g2[=ÔÀ¹Fé6WHq_ò·ÍU¯iÁê9p OQ+ÞnéÊîö ? «b ÊØfOA¶¢ðM§ìq¾á(èd14HèFC'ßÙ ²[J}Ö+»Ö;°¡P0úÌÃBi¾
+9±2lî_7\%T©±FoÍDWÊ©b¤ØST1êXÚvÌò[YËCoÔÑWÊlÍ=ú ©CN
+W¸°eÍs5Ò?ýÖûlèÕÇUCþ@OwV\Ì4:ãMÀè¹ÇÐK`
+L*«rø
£2ÔßÁ9vãïÍUzLµ)U£zÚ×ïh!:½MSeÎA¢g`ñM1jáñÑß5(átETbÕ9±.ÃF°WÜsù.Bä +-_óu{¥1.QsL¿÷Ä¥±VZ9 <
+©w¸ÈJbVÚ´³o;s;¡TÚNòró6رòÕi§cáõþ(÷ß·/X¦¹ ¾µK¼°b#zÂÌæÂ§t§EÊìTQÒøQ@þ© ÕÓW¦Ð1 at 5ÍýJɬ-÷¿dN;nv_@ î2ÏIò÷õ:;qÏmgråçÅt-I/tN îiÇæryùíÀL:ùÎÏÓö´ËnÎ~ªýÛÀH°*æX§´¦s¤ë9¬<¾Õ¤ÿÒËpªÔ¹dX÷¾)³ä;FV z²[Y3âöå
+5¢NÄÚÇ0Qæj|²©Ú6~(LönÜtwðyZ§|CGã_ÆÞÎ2ØêÍ#UÞòEÝ©8/ókkT! !{Ê"gR²!®_û͹pº8é¤è{Wm Ù§ :¸ãaM3zKå¶reXZ9èÖx ¾bç{Ò*îGg$6¬ë"Qe\¡ØÏÕF îP½jy%+:ë׳q(l på-sBÎý^\{òÖoiíÃËÙ»UÒÿeÝûU*é"Y
+kdü<¢"eøq÷ñkajñDv0Oï,Wdpçɺ¯Û¿Ý6O
ö¯2»V1áyudä}À^çóÂGß;S©úÏs#ËÓÈ3Cô(Jøß^Ênè8P¼j+:îü¬×Ch½«/Éù wªëþå8ľ³£þ6b ]öä64y·³¶Ó¡Sx½sµø;Ý% ëÝ~ª[ª/Å"ÀÃP6ÏyQÝ&:îSÁå{Õ|´kÎTÚo±¼ÚFíjv:@×5Xo¨tvÇí3`·záw
+SlÁÊí»<OÖXåB±ÒòD¥ (ðWí`¸û,hVú
+û»ÀU[æ;ÌFLõÄ<_÷íy±¼ZNU[Æ)g³~¯3ßhÍ-«eHÐòñ|ôÄÏÄì]þÙkª×+^zÍ×¶*÷&ôäÌøci!A¿æ!IC)çM·åOGïUREIä±óN+k{$
qþ±t¯R)(3b¥é~|Îö<]`×"uL"YB« â^¼ÅÓõár¤\5«c`çï -Ì·&ÎÔ`zgáÈ`'O~»fg÷Þ¬° ÏDBIÔ¢/MEk; ÝLTO~jëè³Û÷Ö5h÷ûäê_(wÑÄm½½gðIzCÁÔ,yæRÿfÕÐÞj/T1³IÇM(#·ß36`Yá^?m¿¤l.¸°,RgÛîéø"âIÃÂû®n!1Ø7Ê
+Á}oOËMäÖÄ
+2sîp|B[ûyêK{ãWb:¸¦ÔúLרx´!Æ~Q®jE'Å!*wA¤µµÑtM×GêhïJðæ#"-6IzR9Ëæâú7u?4WtÐõÉE}H!<hÏmøMg¦oOÄAAVßà×BÅJ·&®IÄÞTãê:ð¸D9À«"
+» /-¥84PlÓ©¬¼°sÿif½ ÑIrÿ§kh¯ÓzzÅÀ;2S9ïëBëHD×§¦ü1ÑÅ%ú7
+#ÞͲhMB/|£:QJä¾³§x®rbüóhíühãëHF"O *vd/b²5l¸Yê$á¿Õ×ÑO©kK°x(±¦¹½$B\Á'ÇYÎ^Àfß=Ççzéâ¹-ÕÄÆ3_ÐÊL0ÙOª¿|9[£]£
+ϲføYæÉS´K~¡¹|°i
+#QÞn>ãínÿDkñòOo¤ýüEf!TGÍvÝ1 ÇEÙes
+¢ }FYï{4
möúôCúwÎt9ýâÒ¥íÔ-\"AÌÔbEñUérrüYÂ/MMê¤×ÔÀQÁX®µ¢o 9ÜQ¾±Ú
+·
+¤àCuHknÄBk>/ÆSI,ÔV"Uw{ÙÚE¡l<WÛ^N¡×»_
v²ÖPEñB<_øSc
+HÀÓa8Â|kï<-&nÒ¹ ä#<Ú~
+ÿä Q£¾¤óuË·|yåå@ý5Uõ3Læüt
+4Ð"hX¶Xc¤û>ÏU?fÁ/yFËÞ¡ð¯ßÏÎÜmwÖüS¼Ì#þJmãlPp×z
+í`á\êRùr¢ÌÛH&õVîYªÏ?Û5 Úq¦ º×óÍ1f9ïºÃy¡é£ùÖêÏgAؼÎ>ÒÇB®k^y³zÅ!¢*fßæF9S%Ë{mpÁÔ<¨ÌÀi$Âh'ÁeCì{$us`4Ì®¸YÙ¸RtìYî-.ÕCÔC.ƪ³ì
t§ÿ@ïÄ{(
+cïäq}f÷Ö*òñgÑ>C?/nøÊU£Cc¼?ôÅR³¬æÆ5ñ/1\ÖïÜ,õ:ÁÊ1mßíÜpzÔ/W»ÓüózûlÙBd#¿ç&ÖÜnðú·ÀöÎiĘ̀É/Ú:Y£ÛÒ±M
{ìeÇÌ©¥åD9ER©>KmßÇ¡a¢è±?u
+;[æQD<Ýs
@øÀ«À
+Ý,õ¡ÑBé¹(×B÷ m?*²Û°^aù S?·sye 2Y·þí2_Óg¹øj+ÉUû¬Ývô&pn.ÄËùé²lâ#éýð s{k§ÛH@ò_qQ'
ÖbXûâ«}Ô
+SD÷q7±i[\l¾½½V£"MLÌE(Ê~/å=$ wÀÓ¬-Ô/¨ðèÑX?zÊCpoÊÓ0nP5GªñJ-sûawì
+Ýf`gí~º¬;;.å̸Gö*¢ \ð³ýÿ¿vnÜ9uÃ¥ê´2ãp§¿båÁÒÛ^ÔQG\_°\¹õýÔ³õYÊhv1\qØ©C[LO<Õ\#ã)Ý"ŲU¬ ôb
+®Dÿ4¡AV<Ý1ÝÖÛ zwÊÒðÿA0kYñJ®&G°Ê]t´x>É2JWð¬«ZØE$Ù:繩ûddÍ!#}©Z
+ñíþ)§´G¾_"|æ «MÕL bêôM\#!×T;«¦¨zw
+ÅawiCÉà¯Âu6ÈÁ["I×Lvý¢ýéóÈöUo
+rϳÌÊT¥"%Y,]ÞÐ×zj*#}ݱLC[ÐÞxJGÇÿZ½© ?ÄÎùâ/4½2^(ÝrP¦ÒdÆ`U]
+èGSPbf{ )érá/øü@kØÂ ¸Ð?*
+¼}ô=FÈeÕ×ò£*5bÏãR\htU¥Åî¼ËéO©û¤å\)>Üä-´/va£çûpgõÊU1¬¸ÊC9LÇPÎd
+7μÛt*·z"|
+
+aÊ:ºê{ËLàEÐ]ÃÞY7íî=2z|½¢Ó:]R¶L6yÆ-5Ù- q¹WûVÐAÉ´NÅļTEô´©Gë2°Í?yÐ{RVé(©
+A4PªÇ~à4éµn4¶ó¥¾Q³¢¦{`Ð:iýúO÷µÞñN®òVwj5ñ#y±=r±¬kÊ=/Rï-¹FÕüP¥$s¥1½±Ð¬«â꾦êbSÝ+ %<ûE }±Ùák z
+}ûnlæÿT
+/íl¿eÆiEfW` M4ÓõlI¿»rÈ\®çj«ÕÅzWµ}'kx©ðûKÞûS
+=×NC-s]¨ 9Yt>wEh±Xo¨sA«%öYè5þËl¤cÆ:NéX¹ÎÇ£)Fõ'úÏà
+ùå± )h1Ãlú`p´^Ú´ ßâUòTýGå¹
+¬Û¶÷óC8¿ô|fX¤àìv>àõ +òD*Î^Ò¡·ÃÖ¦¾.Xß
+peP'³7kÎNhµÎ%º?wEä? #3¢®_ÇÔ&Ù+V9¨ÛÛÉ7eã®G#ö¥:¢«»Vóv/8R&Z\jã 3ATýܾ³×ú¤J03ܲa}üd£ýéèÿcßð7§ÊuX¼ì¤®ZYR?ßÇÈO~©¼ó?ÃOÇ'¿,¦ðEÞ;
+.?ç £Kè¦ù¼®´@òNOùËäalpKå$p¿¦Î;CãUÌ'>Ã"é[ñ"eõ%Ë»Eæèا z¢Çç°ó7~²}ôïù÷_Ù3N0Ó\,«k.Êqãâ{!¤¸ð
cóTH{avÈU«
+ׯñ·NpÀÅ%.Ï
+zcÚx¬QéhQ÷,d8Æ:¹++
¯éZÐæfÙClSpeÖæ·ÅY¥uv2鿹·A©ÙNHdö]I8ÝÝëé·¿T ÑZtèðH6 ·w¡wº/î9°²ìYðTRn%ã[>¹g3Sôb »;4eöçR>éýÛÓ¦sçËÉe TúùÁômpVÄã
+¹ãë0SâŧàZk¨
+öbRT¹"ßtqÞÐÃy1âkµâ?¥ÿ:èNÅn8$MPûK¢M
ûà
åt§Tÿóܱ×ÀWR ymŹ;hÃ.ß4Kº|õ>¥ñVÓ-½R!v:h!aC'ydkR¹¢x¯IiüP¿9½áÒÅöè3$ã{®rcd2ZC
+ÓØõfO®Q|FhÍ18*®K´tôkúG´6-ÓÖë®ïæç2dä$ òÿÁd±3ù@`¹òdzâ¯OÿξBrFLR?ÀÎ#ݪ@e/Úú"©YTÒàm
+«KÅRÙdX8D\©ö¨D5âHôL<X0n&ßÉ·mÎ-þe
+rϳÈógô±eÁ¸"3Céü¡WE0_qFã{]ù+<½¦âË
éÀÛ-Óæ¬.ܲL©<»*áåñ¿7¾ø¿4Xªz
+\È·l¡õ¬³I³!]¹=¬Ì{4|£t³Èj{2»! ©r®G¬cÄaBü¸S
+ãþîÃô.ÓJ`&ji#©ÞÜI$ô>\«T¿Uì P;oCÀ>GTz1Á·úÈsËö%Y29¤vÝI Wú»by/~Çꮳ!~Rxö¾ÛÖáÉ%*>dé@hp(àÊÀCãKÀK¢T#ÔêÊí
+Do
+-l¼ÁØ ñÌù«ºwÏ.&WµÄÇe9h¬y#èUP¼6ñDÊGlµ·p÷nûÝÅóL{·®ê¾Ö-Âö*ð #
+²*·Þ2I«´Jo8"wŽ6@?N ÅÊ7
Á
+TÁ¥A¶}Ræ9ÿZbÏZ¢`b¯a]
+~<ÏÞÎíÓÙÎõ´cj¾ÙÙ-µInåü·L»"8»O§
+6µ»ç NrM11?;L_+ýûéÊ(<¿)íBTú¯áËè¼9@`3|A,æhl³1õhë$xo<Ò¦áÙÔ&eñ
l"ÚÒ5'½õÜr»ÿËNÕשg¤EC?c2%¯n¹]DE»Ðz:¤ýÇis) M #©eåK¬Ê»XÍØt<7cø¾~˱¡;¡¬;
+ËÁÕ
+CïuùÁµB\ÿGÅ-æ e4⫨ITm
+Kp µi%Û9g
+t§¨
+ê»[).¨A$ôIJ/eOm
+s²æCüÈqôãº8
ݺZêpÒEª´EvÄ>Ü©«ç³51Þá3ÛbÊE¸,KE,¡_êþ
»?h¤6ùPcÜ@ÝÆñI(Ùå2HMÊw=;!GKEüz¦Õê
+{¦ûPFÄhub½]O¦Ça
+! >æü\áøÚâPhµöÚÑÜÃd<¿4eÔìî&ëaê
+[ÍeB×_ ¨ôè²dãuMû¹LרBðdUÿõÿ2j¢e7)¨øù êw=#=BI·)¡zþäÅ"T¬ØV°5åÇ%H½¼ýÐ3ë!vúͺ¾'í%H-¢fù æoÈÞí(ÖnLå¹ðÚïk¬zïWgX£ÒªQíG0V ühÊl£ºS[Fâ?IYãF¥wGÎ0a½?9U(ºprLÂx[
+wyS2U3µ>§â²GNíB:è
+7+>\©¾'M¶²3º»·ãð]Ť¿~ªúÔ©âÒñ÷ë³#&ÇÀ@áÅnh´ÌÔï¤.àªê_ÌÛÜÌÑë
+±ëHÒè1%g<_ñܲþg|îu]AÆ+zBõR³ÂNú¤N£»]~ñ9¿á¦/Øè8WWú U6-àYáù2¦ÉÈV,ÉÖüºp}®¡Ã¿=¶Û0ªuÊoðs
ÒÁûµãâ
òc³§"÷ÑWë«#¡"ÀmñRê
+
+ÁFÂ.g4½gí,Çë±ì¿t$$V"Oë|ÊÀÔîa]=¯ôêÐ: Ój<ÓÖ8!ï²±¥EÀ±îZç4¾É+àÏ8<°$Î
àm¤ì_OJ¤Ú ®ÎÛ»~%=
+ßÈ]¬U,ü!P
+ëoóÁ¾{´§iù×sÃqÐ@94KÛá×nsM¢4âê
+²¤zPºÍCì
+¯Ä!'Y[ùÓz!yY
+ÔsiTìÌçþFÊz%òGy+ F3;s·Ðkö'
+Xf"|¼èõH`Úëfïy¼øw=uàsÿ/»_0¤R¬ nÕ׿Õ#ãORÇÓJÃnV¢dæüá:È5 B¿-ÜjÉYQ²ßpi'¹ *lÓOýT¼íÝÒaP7~Çdó¿5QÆ$Ðþ£î$S
+ÓÓåÂï¥Æz$b-xv=¡¼Ïù_;2Õßg¬<5Uô^ë|
+·+8kLÅÇoý~²;âÊB½'K¤IüÎÇh8ÇëÈAÈþõïʶ)$&jVò~Í<[Úù«(1»-x²jôÁƺcP®c~ÂN2-LiCº7~Îõ Ü}65 ²Y8ªæ²?ºÐÈ|Å{Ƹ
+HR.k¤JÙ½Cmö¢èÕhcU@Ã`]iµXÊÍP8j at y. òÐËò«Êhú=ùRx5 ?;6¦åPjz.xp!v̤"*yÿ¨ªÒ¡oÏ6ÔTúÌúý8ÓíÝ®¤Ööã ,ú«vuΦ$èWcDÞ!K÷µ¹ì¯¥äzÍGEÞ³rmnè$âæÖ )ËËT¦qÊY{ÖÎ.Ù:;Ð]ßnt~Ô¶tÇs½Äîd#TÌ®ç£ò¶
+ÓÏþeÅ>@=˸ÌÅ;S|åÄý¢sÐ/²)\îÚû{¨&³A£34ÊòK>rÙû>ì\
§gm½pb'0=Lµõjm8CöÍêBÝõTp[õÓÕõËÛ`úÛ48kÝêºÐC²,°¬õý¢ã6Dã=ã¦ÜÒ<RfÇbFfRàu
+ñ=]HØuÊ_¶XÉûߢ»43F`ZÃx1¾]¤MàÓ"`·|èº\¼<¡Æ!<ÐyÈ1ΡvÞ¾6RikUïnrp*¿<Há»±¾Bö3úÌVµoaµ¿Ò}Ì8@/ATé12gINï{l,
,ô ë©ûQÕNGX_¥±QET¬îªx¾UÂJ!Õ:Y¹'6µ]GZâhêûàë6êý<BCÐ9¿âÈ¥Â5øv^$«C%õ¡ÎÍGfYßA+8×m]ZìKÀ÷ @÷¿ÁâÞF×
+k8Û<õæoíÇXtÇ£Ò«
UÍ$gB
ÁXïrÔC ·#9.?ÚR Qn`öív³¥l¡k¢wPAM{-Ìwl©o¸DÓÞ²_9·$9vñ^Ó_éL_N°ÎòºwoïPW)T*wZ÷ZQ#úx²Í|B*UÏ º2Õs7×LSyÞçÙî1
++´x2+e{|dB¿ò¼¹Ç¾®F@GÍ3ÿÓÂ}næ;¨ÙçG$¤7M,N<'"»+ÆØa`$ § e¹)õ#ÙÁ57
+× <i|À@}²hòv6þ¬ð0 ø"(e6¡ÈȪâúRÔeIãk=
+ýûöQ'
+j Ë<2<p? òº·&Éédþ4
^Jïn¿½Éõu§CäXNðäRñê6¼nïFfà8hµCrM۸ı5¶³¸í¦'Åë|àú§}å×ý_PXñc¤ãÒ¯»C·Ù캤ҾtlÙ'T®g@n¦ALì·H³CIôd>3v;;nÈRí°1¹ÄW.Å'ŦöcMmJUhh=: vLxh^~C¥U© ÃÅÙÅ4*däç¶N²·¨?$Oæ_ñg ¡PK\µ{½s!(=ŲT-5í4ÿIS¯ÒÏØZptF9u¼¹z*Q×S«¼j¾ë«UÐ ·LW|.4t(e¦+Òrv£nÇá37×_þîRÅB9ÕJEáæ¤ ]¨âá·ë²,I+ØW]IÇl]¼Zºz5u$ÆQ
+ÜÛ;&[~<ÙD¥)^Îõ½ðÇo°{Ô,ÌwU°]¨5"Úî»ðæÕ?%¸`ãæÍ±ûÐ9ÈHRó¨V__®"Õ: 'T~a¡Ùu
+wWb§§H¦<nÂ7î
+ìòÚ°ã=´v<·gsÌÐ-òyéɾ
+"(%t¿}¦kxe£ì<ÛÌoç½oKFu|$ðC³
+Ó)(
Ù%ÞOáç3¨±qTâ(§
+ì¼â©\79v¶pø¹ÛaZØaí
+ôw"äjSË,Ö
+µZÁmöV]é£Ð¦2¯¦Ú£í½ÜÅ2DnÚ²F¯/ëAu' 4×£jaUd|ÃLæþ¾¸¨ëéÃyb#ï]½Ê¯d lݪ¨PHW,Kï,`DvãAßó'öOû̺¾i@íyø:7ðZ&%®yAÔ[bÐP7º6Þ´G5ÈêÉ+t$½cú·tÔ
+¤¦Ïl!{$úK=eÈ}É×ådëZ¥2Êïȱî®V_-ñïûÔtRñØgg! a!ùÀ7
+?µªoçêól½^_¨Ç¥'°5øÐýè«ta±.ÙüBn&ÇÉ05 xûòPÊë¦Ë
+&<Awн°l ÅÙk±IK©²çìÀPIÎ>§J|FuÀøëRÅÌý
+YÃïrMÿÿ´ÞûZBo´ð?¿Ít°¦É@¶DºPzgÑÆbÐPfbhÏI¥BòIÖ2ä8Bm
ULrÎs§¿¶¥e¢l-¦¹²]t1fé.¼ö£,ôýFáv~A+;1Ók=Ö|ö
+I2öqÎÔãgÑs¾cf;ë"°G4ª%VÞ=ëÜö.`iUfT«ÑQãr";±_Å×~W;÷°Snî"ã®ô àN¹®ªs¦y£ñÝmV õåÖèÏ¡1Yª=iÔN±³Dè(ñ`®2ïÎæc4$8£HqªRrïvËÕ§É3
+9ÉzNh½ë_|¼^áä}0x99%¶
+×íû06ïó6¤fÒ</
+%FtmùÇË
+!ù×c®°YO½8-`ïÀ|BìO0¡[gÔ
9<áÏà{vÞÞõ¥3ßáõZåeõ§øâ5ÍÆ°nÏËzaÍÈ®>U-Ò ëS
+l÷ëêbÇ){}
+9 at 7VúÊìÚ·¨ÙËQ+, ÁØÏ*±@*
+ê=7ÒtÖ/YUêÐUÒ]h8%nÁAÚñË**>õÉIánh´3åß@ð
+ývbç1~('(i®çÕ[\{®].ASŵؤ C*ÝëÂûY¥Ô¿$Â,(³nëìÙVbznÅ]&½O[Ùàèz+</4]V¡¼Hn±FõÍ0ZZÏ<B );·,¿N³ßVaµxFd
+:ÕÑj P^Û-(jÔ¤;ûÎhïoýÌ#üÒ ß^ªÃÖ
¤9>úõÏIóçʪâWÑn)p+d¤äÍå)tmìÊ묫dn¹í©ÉëC]5$¦þ³lЮ©½ÊæàSkµvá5]$a@^ÙHbÜÓÈe_ö1=¾BÔ±ôA+TÜ¥º{¢°£ÃVécbhº+ÞO
+}±ïÙݤÃjt#Î
ìñ8g3Ãÿâ`ÆzÈÝ)+¬Ìuô?¹27Ã
??EEË2>é¤ÈRíu
òsíQjYWJÍ\Ó¦5èå¾×Ú4 ï|d¹8_³Ê&P«bÛPñ\Û0ª°¢ìy;±FZÌíý%ó£VòËõôÓ40æ_ô üò
+XQcURb¨Ï.jqq!f¹ëöj¨]ëcKªkÙ¬K¸ê1¼=
+=§jBìèyâ¶ø<)%¨j}ªe
оxÙ$в¾VwÆä«3ôµ®+Äf1L*úÂáúÛwMSÌcµ|ß÷! ¸dç'Û·¤ÿ§+(Ö¹Í)èêørÈ}3×<
+ø{¶;Ê<'piÁ*N´eT&_ñº)E`û¹^Xüüæ¸[¢'<çP©íÓáÏ[ÏÖZ¯Þ´$ÆcMüÏøû°aU_"¢¸Ò¬²Z·ñ¦¡3ç<ÌýùÞ.©2RТmxÍ;ïqZôÛÊKÜXõ
ŧ|Ê_o[ ]lî§ÁÔ)+è3dõ-Û_9à¼²Ôæ¬ì«
+LÙñ9ZrÀäNõÔØx©¾ï÷ï
I`¾E28Ë(+ sUxHª+_¤·)*-è
+qÌGvôJ|ý
+Uwk&g:6rqâ>-Þ2üNUÞ^Ú÷Ö9ÒíaܧV}¡ÛNk·rÔúký"×?óÓäŽ6/÷ñ¼>{|#*ëA²wP}Ø~¢ÈcZØË«ufU%û·ÇoHÁ_EÔ0u©òJãl²§8º²PðAu"^þ£¶r<êç:лm
+U±ZR_;MPòdAóH7¦ï%µ?¡ÿsáIhLòß¶È\êþfqØaGVè#¾ÔCpðòåá>ô,Z迹ÔÄ/õºÝkWÿ$&ZìyWKAÑéʯ4&çhwÄh¯exN[ÔpÍùì+Xûëq©Ý3ûSIú±I^m8¯x©³èCãë¹;æQ&ÃNÖôo&¹¾ °»r8Ê&BñÖ£
+J§PÖ{>Êñö·=íñ¼Ë-;ÿ$ZjÀÁ
+7¦I+a·s·ÀèCâgÇÔ×lj
+ð?fv*§(Ê«
+H6"*æçíÍÉôèñ
+\j<F¿©a$NrvwÝæ[ø
©%"ê8Ü^õÜÿ_üÛóâZC=Jt>~iyÎÙKµ²wÕâ#ú«¦å'í>º¿ït×£FÚFOèÍôÉ:C¯·qRVdeé^.A©^b&8§ÎÓB=íRB{cP¹-©äòo £Ýb{ØÌïg=KcuÞîÐ
+mܲ®°/á~B.á,4YpѱIëÁë°,3C9áúxöëIGOZ·¾«³>±Ó q¨¾®:EfÌswáâW¯í
+äá!`ü«\ëxH®I$1j EÓeßrx¼¼«2}&KGVoÖLö˳upU
+0^|U:ô`Õß°~uùÖÕý /:oýWJyßíw*®¶ùêv#Ú©ï®$#þ×M:º8Á°«ÖÌ;É)ª;R8ß:¹ËÔO3\Î4l;¢5¡ü2l×zådÍa
Ô0¯é'LÁ@s{¹ÅÜ{Ýôz¬¶mþÄ=¿Ôá.FÃè5à{P6È&
+±3³3©U0u WwëÉ;mYÅwCa%
+ñÚQj*è×Ày
+º ôaîLDXtÕ5˦§Ê7ÐNYÆãU«?)WúG[}Ïαþ£±PLùü§Û¶<QM.ZÀ
+û¥ÏdI Ñú6bóeLÞáÛóbÍvöiª
ªzp/ ä1L¬Éd$áë%¥½¥ù¢yÏ´ñZ-ä²R&vMÔdÏ/hz¡k!2ÄkÜXô!?pÁ±Äþ»*xhô1ÿéÏÏ$hDj»]ÚØMÆmNF%^zp²ìª§ís1ìèaá-|Q¨Ç3%6ö{d)
+
+p6w"Z´ÚÈÏ=÷ª£Í.¸\þKÀ¡I@ÖP_ÞâüþçE FMXý`Wf¦"
+ÜXý¦ÂC4t¤7{Cò£ó1Ù7
Ä´ÎlÝÖÄÆj=³lcïEíã%QVÜdßx<ÜF¸.nCçÅ
+Я4õpo{øòÀÈ)9÷±+ÑÇÿX(à%ø¹H5EtÉb1gE$Î÷{gO$þZ¤]ÔTsÖ¼¬bV54Ï0öÉÊøüoUº îàîÒ¿<úGÆuz4âøâSè_(l0NüóIõÛår²jsjòõDÎ ù¹ïòù%-Ð?»ü&»Xu»¥p¹Çܾ
+XwâUf "nätoù5ÆB-å-Y{Ö`æx#ß+SgpxÕ74'x@Bó-õy²;øâ(rÏ^äO«¥akܤ¨ìv¹C~»Äà/GÃÓE>Zdß§y-
4Nx
¼¸
+&ÇhIÓ61ñ¬òõÅÀñÕS`K¼nÌ3ç)ãøAbL"0~\&hª:ÏK´|Ë¥^^Ý~!Uø¨"M¨à iy¾et=kÙÆó²ÍÁÈ+&ù߯£[.´w\0ëÆ2&¢UºÝ.ª EYÅ~
2h×<Áî:Ï&,n£µ¨rÉfVCù)YóU×
+óZ5e$3]J|°Ú`¢±ôñ*Åò'A¤ó÷U
+¤Q[¡ö?îbd¶ÂȰ&-T¡M`èÁ_
+å_©bÞXIo3j§uÐïºÙ
+PÈMlm!#l%ô¶2î¿)Aú¡û*;õ:ðY×ï÷b_3K>=ñòêaë*¤NÏÆö4ó«ýÈCkúTã.WPP쾿ÜÔw¤Àcë
+Ç´µWºÆù¥Ï
+1q½ìSiˬfVaý7STàì*vº¢c_66î3Ùú=wGft¯ÁBZ%tz´?¤Å@xÓklÃ?InžµÀ]~#nq?ûÕQí´Ë7*ís
+àc )\Àfõ³qgcnÇâ¯'Ì|´ôÕ-¼$åêÝXùhAµ|úB³#V±Å5
ѺCóÜk1EPýÑòXß¹Í8ØjxOJ)õAò´Ì4Ø;oʹYÛ
Yº y(Ri5T=l0ícPâcÓ*=W{²!¯¹/ª&'ñ%øJirïW*½ZÁr
Í=ÚW¦õne¼Ø°Xõ׫ÖAÎ?¶üæmä
+Ádn¤ê>âüÁA²Êû>ôªå"{¹ 8Ox@~/·í¸k¥¥fLáí`¸"«éâui||FýÉym,^6LZ5Èάm®¢^Lùúµ2e¡¡B*Üð²qÖØ_Ià=;ÐzÀGKÆÔÌ"ýõÿØ
+Cw?Ò$`z)2yõ¸sqüvºRÊÆb÷yFû`¹}N_³¤«¢dRØÝ¨Éî>pçÓ/]ØË2ôQõÃÖ^éB%-1}vûë¡Ó¹!bÈdõQ¦x,ñ
+½§ù¯>nàöGܦp&ß4°V»ìêaÏ"ª,}6L@ù°¦¥lÖKo'îÚ7%=Paó¡+$ÏèKZÐ0ºHò«ßø²9átJöº¡÷¢+ìÀ[E7áÍb¢ójÍfd\,¾sÆ¿è ¤¼ûáeRÙæ¥òmçò9JÛÉT¸×UÔÏéÀÚÊ®¾lãj@\?a6R©Ç|"Kl¿°K¢=âãÊÅÇ 9Vrq
+QâPe)úÂ\FÝýy·~Ø9àû9aËÖ£8sÚ¨54_õWT~ßÒ±ÒFÞ%[ÆgPDØÛrÒà|æò ¨8ù¢aòÓвÁ9µÈ¯M¾5Ë,Èz'ØØ¸#![&ý7ð~¾¨èÛl
+3O3éç^Ã÷ÉW4ÉG?<`AOEMøÎ-1ù
+õUÔ¡¥Æm~Þ>{ye#ì¶Ì2_E *Ý«µR>¶Ifúw;¿pÏÅ´Ú
+WZÆ[
+ ¾,A_ã[ß¶µ¦:Iüì·&´Öq[Wí¬UýWAQ+øåûÅ.î[ä@ûe£ä{)C[3/=?Cl<¯Pªäoõáè ¦Ã?
+d
*ÈLDàª`5w¹x?aMôDM?
íçUÞLp¯ÙFòyi*,Y´@¤±N~oÃYûa $<&®åhÈ3¹t±T#°¥¨yøLÊr;@£æáF5==äñÙFâä/ ¬@»Ý7ÜadÚ¢ùÈ£]¨©¥b¢õA|9µ]fÄ5ÓÈ^Az$¿É/UcE?×»^2]ÃÐN¡xÉ7Â{ÃÞ6öÅ÷ý-©Âr9GLñ+ºÏî³Éö@ëZé*ð/ÿLÔª&Êò1rÎÚÒ
e¡
+ú, º^Ï"uK]Ý!W4á¦2<DY§ïêY¸3\ê½Æ¬b½â
+JCëÓ¹·U1JAl^T[¸ï wTæzf®3¿ÎSy"öMGèÚiæ %9ø%:í6Åý;Vé(¨~±dïî9ü¤
+ H
½ú´{;Ð&k ¤JéQú5 0ÒÑsx@|ä×Ü8p £Pn5¡CdÂïTbøªWé úÃ7ëu¥[J8´ÖêéíÌÞa1;ª^vOôn%\0ê[I||c{gÑ8'jfîEÚRU1VgJ¦?÷½÷t¶åp0-ÏKôlßl\X>ÞxÖÅh÷
+áÒÓ$&ò
+PµíuêªlAKxH;#<ó("pãý¯7|É#v#Þ9HÖ Ãûx~Ö cævBGBÓ[0¸g¦`m5ØNý7ó¢ô%\PÐÏÓ1L)]
+ݽ±öGo2`Ôi/`t/ðÿ
ÓRÜüÒ>ñØ\·ÕMgúÈÙâªkäuÑD÷eN¤?cgÝõ>ív¼,â#ìÝTÅÔ®Ï$Ò¸ÞÙ]Ù8ëÇæDȤfÔÍíß
+àSPà¿áFÉâµ2A>ÃN
+ J¢ßdXehÿ¾¤Ùª>
+F#õS]¡ ey©äª&ÆssURªÖßs6èfÃÑ ¨Y0 ½NHr Qݽ[a¾0%nãÿübLk¶ôÏ3F^|K<GТ®®x»2 ÁOzYZ7];ÌàÆï»\`ç°ñ9©lÑ&y>£wÿÖ%¢$)¯ôÃÓ«@bãài~&A+ vêxd÷½Bª77hO¾!Ë%ZX·íM|
+¦ÎipX%oK÷/3váíéÌõC^5%Hb&ÍÂKÑod©Î=43®UãÚòj64ÛøùÏ_{8M̦ó,}.EÚý&}kF
rQ¼#
+Ûö¿~ô/BÆXãëm¤
+z§²nÖêþøJûØt7|[¢¾ð¥t*20~+L¾{Ò2a"S®ÝG$:º¾ÙriþÏ®k«aÃ>S{ ÜHs´/_p×$)ªgPQÌ¢?¸!f!Ït¿¤7àËÜϺd+b w¬¢N9C¯¬-¼ãX8>ÆBKP³®Îxz×wß÷
:éç:ÚqD{<ÿÄë[uQ]zN-ä CaÞöf=eÒæóµgâ+u3´§áÉiõûPûÒï(_»¬øòS »WÁ¶}-þÂ.¹±ÎD$5?¿¥Þ9ÕW¿@ø¾§;4¶özöÃýÒû¯ÜØh6ï"Âîú.Ð\¶D!Ø=ÉT®y¦]¼¼\ ñø`±+Ø¿è®opXû
íÈ>óÇî9WIr0Í5ÿð üàï
+þé¦sÔíáäqÐZMãÞºé¥ýJKOé§è»xNlgIZÖÌ!
+³ÇÔc·ôd¦ûín=H·«cÜâ!ª|ié<1êÄ
+q2¶gØ%÷]}ã&²Óá¹ôw6aË&!¯êcÙâS~ªÐkmèf¢àç´¸I1
+BO>ù¨ìúrhiÜvÇ߬ æ
+ôYuW
+³¢~ùzõKj¹»ÞûIï>P+ÄËE"ªýò4~¤§=bغU6Vì¬;ØådÌ9^Êkx~Ó´q~¡T½÷Ã_ùCBà|rR´
+ ÓlJÆç&vaÄvL¬Örþ"¹ò^wfÚ<ú»¡zHæÉ믤~äºIÔKð^
+@´1¾º[¶_~°Ù¨Xõ"P(ýn_Î?â*IæTÙÒæÓ'eÑT?峫@»[%Ñs(w{ 1º)dypÿÓJ4ì²ãô¯cÒç¹²èÕÌR+aUxò'KÁ¤¹9Añ˨ëìUgXI.ç9],ߥÛù̼óÙ£u·mÎbv»Q¾Wz×2XäáçM/a}×tÄ¡,ë/ê*Wk>tõ|9ÜS#RÆ&îMíU îÓÀ9¶¾`UBtŦÔE z,ø6ÐÒú¤¦ÿ~<¥&*[ev?ZºLLÐAfk á?rM`R®4¸ñt/ÆàëYUù#ºï32ÂÜ·bzûõUJ¨*@HØt¶µÒ oW'ïu½Uoý©úàkyY?}ÞX£&xͱ¯LÔ3Ñ9Èd±NÃ{9.¶ñ ÀÕͲwl3A
+!R`N ÃÃLUM[Å(í¸(bíLRýUNtǰPö5aªìü>
+ZÜTLlþ?jþ
+%qHNaå
+¶ÿNñ°âÛ÷/OVCû0äÅôÊÇoÿÍ
+;E<ã`EïÈqewÝ>«¨
+ÁÇ0ZðÍ×ȵ% ÷kWïÃêì%ÙîjªjkéÓ=}Óî= ðFϱ)óWú·Lµ%ÔQªÐ¼À0XQÃ7 at K{AÔ³ó³
[Õ»»¯¥tÈÏ`¡è¦nºV#ÇJkÿ«7ó¹_³¥
+VK=±¥äqXg|MÚ~~ÓHSßÐ2ÒÌdÑ*,À|.W󳡻mì+²ë
+$PJ¶Rmã
+¼ÈHûNpkúØ¡oNMûN¬§þï¡8Zo
+Ópp3ÁÒ¡
+¶ #ukÞ§tÇß/×Z`û3D>EÂrî}¾äÕ¤`à-,H§áI>+$à>MA?®þ¨}ö¾%ÈÞ¹vÄu
+º9ôîwÛW¹ïqræÞN}Û¼Sýäp÷Ù)Bðj8ÎÞ0ÁÚÿxÕÃ5"x?/í.ër{ë]ð*t@ËÁ4ö!bäõâGÌñ<s£à3\³*|TþÍóËSÝ Xk¦¿ïc:/Þ
+3p:þE.EУ$Y+·
+%-að{I1GjknóÆ»dÒ;OWãýµëÓQ¿©äÿÎen÷DyYòüî;h?7{X@÷D®Ü;7Å3úâÁÖܤà1±RDÄúõNÔ®»B1@±»#ÞÊüMsd¼âckì%%SOúCFIBvté«@䨾`kUbo»æ´5`7µkþ.aö:DÉÎKvnyQô¨OYË2o¹ÐúS£Ñ½g¾ÌÈüD0Ó|Ê:°]iE£8
+óÔ
+^OÀäÆÛØ6ܼT² ý[lÆ<ëtb¼;ÍEÓ$]À·âû8r ôh´uÒQ~CÎ
+LZÅ/®©ÑYÁ40¢Rüi[ytW >4`^
NÁ9¬º`øÑ'`/ÔÃ>ÌÔø´\(É[Ö´ÊX*ÓXpëËh29+"}Â&¶ A(zôýOSàgY&OßS'w©ß
+®êe@¦Â¥ç;
W½ÑLÌÆ¿?Ã~Ø&×Ç|£Oò\L~*bÉôÒꨬgËÁ>olÉ Ø+³Ï·H+#é¯R0ò Î-¤
+'Ú Ü¶ÈBÔÞâÿÐ]vD¾ ÎsãlC¦Ó83±û¯ë©gâso?¶gý~5Zy{Î`*S¤$EÈcqx].}2Oi>ÈlYDÛ<lBSrpR±`
Ue9
+)ø.Èßýê¶¾n]:nÅ:åm+'3+Nù¦Ò-Qý÷±\
ûpAf2iæefïPElÝàЪÝCyЪ\Uþ¾´g at K£û¥ì»UV×¾ºíXìê«ûn
+Æ=*|#sÛ8bªµ5ïE+ТÝq
ß/XòñäÔ<!ò¸j7¿ÿø¯IÂöRJ3fËÇÄ^Ù&ÙBµÁ×95¸ÍèmÖ:
+24p!ßkIÎú½»÷C/xkÂñ»Á¶³¨Oó@`ɶà3EÝïJKp9¾þÔýR£nl¤üÅâ;ªhªÞ`ëå-bAµÊ¯3Æè,Cc̤u&
ñdYÕj,»qü)ímò¿÷qc±$Ë!M5jT¸päbtìçÆÎËÆ°§tK$09T1çR¦¦ ɼq}fÐ,áØõßY$Ó{S¿7ïÁGâ]lBîn
+ìÌæx¥0ðraµ¨&>éªLGÁDáw; GR?0º$uùJËØppMÝÂÄ©
+Z¿r<ML®½XTËèMùþáêQ½Ê&Ú]ËÑ©pÁÝ`âIØfsýÝJÖ.öj#iÆè'¨¨ÚóP]èEpéi¬¹X]sεNÛa§ÚÒ6Ò
6«O{8îùb}_SÑÁÁ$ð
+ÿaȰÅ]SU¸ÈÄp6ÔCèwN~â+
cao>êßpnâü×mbâgwÌ£!Ïö[ÅAë{Õdª)Ç»·b¿*£w_u éü³ÝòJ´áìJ~e{t
+Í»2`qtV²ÛÕ÷Ò KÞnf¬'?(S:¯ÌÊåNcx!RRøÿ®7}Ô÷üw±.iS`ÍÌÔÙØë?Í~¬øÖ±I7éxFìæÁ깬"£ºþU.ˬföI¦S#qö@ÿæÄ}%A !dPjPÉWèåøgSÈþ¥Ä7ÎÃÖâÖZ¶ÀV¥ª³xn÷w®$)¾ÝOå`ûÚlKT»þ?²)ý"ÛÀªPÒTµH
+©thF0ìïö9súìký¦K«"n$gïÀ$;ð9·îö'EúÀÆ%Ìô|Tõ%µ/?ÀóϾf«ºD[¨FiÑâku.Ô@EcdÓ[ÌwºøÖ®x^¦Ï[üæTµ
©,pË4;+Ó{Ø=ÔÎpå C'YAýôØvAkÜá_2WÚ|6ÐͰ½áÝ0æQ½Öe×
+3SÈè©Á%¯«P¤µª¼ïê6¿Bbpÿ®®¢ø¾ßóP9È2(ã°§±Î÷NÒ®È;b½Æ%n±Åûc,Ä÷[ÚpÁÚÜ? ±ÂInÛpK£GöK¡;>(ìDHfDùd`í»ôk6åC[¦¦) »CnnfeKÆx»·¿µøÄtnöm×àµ-ß\ÒtÄ0½q«4N¢
·xw(R.CÒÛÏWÏ\jÛή ¿¹
+ÞL~sg¯ÿDzôe¨©6ùoqZ`úÞµå£ ¬Æ¦Htxéðz#Þ7¯¥Ï¿C[Ö]O]þæÃ¨$:ñÔaiÈQûÚ3Îø.ÃH¡Ðx¹nz{E â{Ú?1`Ñiؤ"Y(Þ0BÏÈ s #óÕWæ@GÑÏ]hà÷J^\K·_à®ËªÅv[¢´æíÔ·´M²ã&
+²Ô>»ÈJ!Q\Ô« iÀSãÌ£fM×àêeLAU¸Q?û
ü-¡¹ðÜþ2¥²!ëý
Ì;ÃóÔ>@À±ATö¹äÝp÷A±7êY4¾nAþÿDÆÃ #6KÁÒN¹
+g4É5õÓ¾äòÚ`-ýF2Ðdl.Ôj¦c©Y«[LÖñ¼È$»îÅÛ@z`ÏÓÖÏdÄ_ÁÔQ_ £úÈ@
+àíô¿S¾é¹ûÕ*@4Ã^¸ÊS¸Ð:TR}1}ð?ïì¼#ç³'ÈYOÒ ; ¡¦¯|¦U+á|
j{.Xó3ÎKKæ¥ôþzã~4öú¾Îéý"·s¨;ú@GAÂ_]x4þ®ÿvÀ1)ïÎ6Ê×¾ºÜÚ̼¦ôdÐc/Â×gÃÔÉ¿èp`åBjòü9*{½E;Ó=Q¡8¶b7z8;|ñö.ûP¡7Ëåó`/Z=e4ÝØ,PåCÏÅÔ½G;0¤À-¥R?ø
8R(a}ëKG°q¨¬Ìz±(ºyeÓÈOò>w%³º±
+d^, ¤s%wî¸ðéÁI¬¡ù¬ã¥Báã'ÄøÕ£ÀÀ
+*Ío+ê0 Gî9éºÃÆí>:ÍÓõ#5cU°b0z ãeA!t¿° ÌÄo ªó ²é¾ëKЮKÖpÙ2ÿ²ï×µîBT~+ºN¿#[
×|¥¯þôÝ+ÿÖÊÕ÷«SOsÆØ(Ãj÷ï/#
Wã¡äù*CLÁÞÅaÓÜ
+ƹ$a¸¯¦â¾iHÊ©
+ÑÄzÍÔaT8ÐZ ¡FAÿ7ãky²PÓ/HÊYB;j#ïºÉÁ<BƲ.£,¥ÄúÕ§eÿÜÐ \ð0·HF5Qj¥@|¬yLuÛAò1h¨C¸°\}«=v7eÙ+y¯·Æî½D-÷.
+¿§§,eç#Àp`kÙ½ºdÀ»_
+0.*<¤ÜáÁa¢\9QÓÿb´J7v-è/¶Äºx¢Ou
+YÁ×Ï:ô±¬!ü·È®ñ|f0
¢VØäT®2ø ®µ¦$Dbö3Eº[àUoÚÎ>D= 4#97[< f»WbyPg¥ç¾º¨68Zí~P4Æ®ÎËOK±þGB>F'Në7D{ÊC¹Ï´¡jõ±âö'D/ï!W,µR ÞbWÏv¸K·ûÌѲ`SÙ¿|ÏM½(äüÓæ¤Nõ¿ëO
+,Ñ7«Ñ¹O ÿ¯Ï$µæÌd< ³¶ýAÜ-®H8 8ÙüTRhd?ÛʸöçFÔ/!Q\<RÀÒ4ß²5U½¦{²Á y+õ*PNVl¹±þï1~Ê>ÑÉãLdy!\Ó2Õþ¨@iÚF·)2²þt@¤#+ÛMH¦YTKW-zļwzk#Oàu§t«¬o`}JÓ=yVú[É^9TQ©?8/äϼ
êºÉÆUZu
+\Ðò´z¯h&[ zõ]Ë_Ã9h8>Ä^qVëáõr1é¯<·ºIP
+ë¬>
Ä£L*sÞjÔÿþ^ö»ð¬~åë¸ÍZ$׿U·î¾;¥¿È
Û»r¹äë:Jy&~9ñíËy´
+B{{f÷j\l¨0¢1¹ÞôH·I´]7¢üÔ¯2ER ¨'U\qåèÇ~=d6X#¾¢$FäG«*ÄI¸¾_ìRéFKÕçëæß_¥@3y%# Zkcá!°Áa'r"ϲ4ÇÔ
+§JUëyºÚmü´`ܤPsM*ßÚÝÕP§
+¤2ë¾=uò±ÏÓRlðÞêC¨¬/´Ðd0çQ}·ù¢kÊ)+©G"êeÞ6¯2¸Þ4Ã)Ï´¿êz<`ÙÄ$ëb8ðÅL¬Ç¥³ùèPÌI]·Àv-}³YàÏñÀ04j-ÐÌÑóHô74/eúcbÑ¿åBýÏg"¾~ì£é»,µ+×ñãEpÎO^v`}tÍqÖÿÏ1zÉ÷\>à¾t»ÿ71á\íEbØA÷Hßøã4sÈ´æÂãì*=VýqÜÃÕ®u
+ÈÁ¥!*U>ô`]aÑêúgE>.м@Öô×N:ÂPEÙ;BÆbÓ=²\#{YfÛÐ
+ÄF1¢§ÊöfËðsd°3¨#µìÞEön0îQr#àù#¬5ÿüãò*±$&*h¶ÏÔÕÒ_§J ©´-ý ãÕ£si¯goeº±3tbÈSÉ|Ã
+ÍʰD£þE¡ÉÊ]rÔ
~çEÆUÐÕvy:@o?×·ëNw ñ ;ny3ÅÝÊkZYí¶2÷\Ôéjm9ò±Þç~|tA¿Á>Èû!t,ÉÜ÷«[e¤îH;u¾ÅÆä6Ý"1¤6n=oX=L¶t¹\õGÿ¯6&
+ÄDæBEsNî!f,êϵÚ
+Ão½y±ÙÌìxB£DHôð¶LÕñDXÛ§[Gs>ªý? £ìò¶NA^à\vâ&:ÚáÔòQWKßù%å§õzêXøW|Ú9Nn\Ú¹@\ô¿òÖ
+Hw -¾ø©-·|Õo?´mçæç.#Ï´+Í´kÆP-ülÖMìð;(N| fàÖ²c#ÃÏc£Ñ)þrÂÇÉm3¤S÷Óä¬w8QCBÚ²TÒE{]"do $UhÄKèB#s}Ù50;ÆõÊöµkòÉ0ÝÛRy9±Òö6rbnÖ¹>
+÷Ë!
+Å7'£vÈ5ÓuÈæpýbßÁÐMáw±Éa½sõ×è_·&¿ß'
X
ï¬$c´ÅÉNÒ}ë;ßáÄ,yÂMñÇ1EgbøÑXºM¥ìì»WoɦÐÓ% E=ÿ§¼P#jÂHèh\õyH£jªØßÉ
#é¤~~g$çRø#eÓ¦h²¸ª3Ã
´;IíFXIFÙnÅx½>é§ÔSQ6ËMÞBÐðî1ç#£C ZhЩ¸~Ö&°ïGáýÉ¥LÙÙ@fï~múEìÚÏJ"«1%b=ádp_VØ64WDãÓ×wü|`Väá¿Øy¢xOp ôÄY+Ü¿ý ]oþ¼¡²BáD4zhDø£.µ4©_¡s01½Ò¢xìeô®ë
+tfI sÔ}Фß5ìwÀ×*I¬®øøPkèÁ$£û.ÏòÍ=x_¬¨EKÐqº8s¦&$×îG£¸èE*a¾Ù¾Á°d9µÚ4Í}8m#ÇcDS5¦³R1NпµIåG¿VRöüàk(n˦Ü*ó8Çîꤼ9e6$5Ùú hT¦æ-à^gX¸s`;u¬Ôóä? àù÷V³g±7wärsH Èm¿Æ$ÁÚÕe;§
+ñÇGeLP,âæFàlX³lh±nÉ[BÉÌé#@DBi£¢?Æv ¸écQ´,{[EF³ñºùeì*Æè²&©ùO&WÁh¥Ô?ÜÇ@³öSÒ¨°%g½
+éB ôÞè7yxÕVÄÛíÃ,Òÿ·¡B\Wå?C!ÀJôÑÀ`ÿ¨×Sw§ÃvZ^¦¬¡Ï°"©-U¬êò£cIÑ9£ÔCzsýSlÙ\B5]m ËnªoYÈmCÓº!~PjdF4¨R¦6/AÍY¸r¬öòTÜ2Q++9/4Ü¯ÇæÔ©YíÉ7B¥sÇ
+/Güÿ°8Äe@óyÁ&Zp´û<ªIHAæ´bh¹fÎ!Ð|Þöá9'v£ûoOíåî?Á÷I²ZSÌõ¬V2VA×¾
38/@`ù ±ëYþ2i1à ;¬°ÝRxXXiü¤kõ1QLôy/Ãû$<«x
+T:ô«ÔØÐäáF0ÊÈP(¥Üit'óPÛÍÑ
+êymA÷r©Ø5Æ5!N¾r[0}Ü>TJû!Goó{Lä*âúénüô*¹ý7óÖLµ.ÜÀycë`EÄ>¡:IA¶MÙ1~B*£@/TwAW¤irÇ+ÕÏ[·rJ&F¡QtNM"ã³6æ¿¡Aí~à8ÿèa&´ÏRéÈL¬®öð"Åi¼ÑÏÛÖøÓÊUøÈ¢ìhüâpGYnâÅdÆÌ¼[kMI_1w#1¤1I'tøgøìº¤Ú¤à!ûx³èéÁ GÃâ·¬>HûÌÞAZ/ésT³25¾ú2 [Àä
+æ>0>&¡ÂéðÜÀý¿Ò×1þÔuöÍ
+(}*ú_<æ áCí õNLöñTݸ
+@p´n.ÒOÀÊJ^¼ÂK2õÇÇ<øØB7pµav®ùó ´n\JÙ
+ÂaßoÒÒá$H'N¢ÂDóú\£d`¤"øßlUh¯x3%f;w³ú¿h5lGj%D´ÈfÿØ0ÚÕ_söÜüÅ×ÿV[W4f× FS_
+,¢ÏG,5>w/äm©ÚÓÊ·§å´Z¼5.Ö"ªVeYåáD½'=¹Yr~ë1MYß
+·»=ÑÒg¾úKÀ«êYS·èânçf'q®W˶¹j6ôfTNn·y¦°Îÿý³ÍÏa\ªMg!d°aWúÀZlûùb{¨U5ĵí?=YûÀ(q5!ðÌ«òl;öÛÙv4*òÙ®¿Õ«9ÍS½Ð}ÊOÇÛ¶ýCòçæTf|eòYlT÷ÚhÃj®¼5ú`Eê¥T
+K
+~ú±¾Út¡¤l$TzÊGÏZâäÙoÄDò2A´üu:ÞíËåÕÕ,G±cª;9?z`ªúN:Éõ7|upgM()ÉD³?læUhpÉ î^é5F,Q·¿¢Á´^âò\Òöçï;(³»xqH8++^T/ÓêêbQ½¬¸ûÁì Ä®È/l*÷µtyEew¼è0¬¢klÚÔíêÿ^5 ãé}lçù/µ¼_O$CÅ\8ÍUìCÉûÛ×ù³Ì¶åÿC³Þ._âßÛY·ÔfSî±3Y¹§Hu-+Þ
+4ùÊFõÃÌwr `¾.q
+óØÁö:Ù´9%okÚù`n¢RþÞ
+ º'È
+ìøYï*<¿/-1Îg#Àr«Æ->¨{ÄGðcùj^Ç«ÀGKb==þº6\
+ò7Ò7TN¨r¯#CÂ}\Â!bm%cÓÃJuÝ&º%Ä\ªª£\0p©ÓÁÀêøôWüÌT9è9¡
HªÚ¯
+Hí1qúçÛsò'U¹ZXÍõ +¦a:ÝÁÿò¢b åx¥¦þ3µ[ ¡FA$Ô
+êJê¸öÆ\»5yÜç=0Z÷Ü´æZÏFëwiÏ;«ß|ú3àü¡9{Àì¼82¥v"q.ÊDufÇãaDJéf×å@áu·Ë@#+hoI?ë=¹Ð,ÁùIeXßîSêpxvjÅã\V³ÖäçiÉ7ÚùÕ#o¢EÓ%!g&sï1¡·µzÚë|
ê;èÜQ E7×MÅc5Jç-+m¡Ã9âÑ»B }äªÅºô½´"'<רíFr0ÔõÙ#ë2ÙÙ·ëâsÎûêýΦÀöû¥Ò>%?mâOtkáRÉOÎÆÖàiÚqL·$¬>}à©ÝÖrÂöÀ[R
+I!ÌÎÖ¯¹a?~·£õ@TØ
hÍèZzFSÖDzä,L1/`UhDý>W¼)Õ%^ÈÝd\ 5Ïsö£ÑiyÄoK00û½xb:SÍG´·[ÖyÕèxo eéí®¹±ø¯<õ"çÎð|
+¾ÎjbÈòl%
+ÆÅXÖXOô±GeBY(+3?LY´[Urɬ7I¿tÚú¡}b9=ñnç`Þg[Õ7©l*îdÃ.ËA¸Þß!YÙÆ&ae«p£¬¦©A"°îjÂpo W*-G*ÏÂ^+PèSVÖAöà
+¨ëmg¶ôµßþ\6¸gIáÂZPdê}³iIcBKþñ÷µÁç|kùq&ÖkMUûGqúÔáµ´³îTnL&=A^sê¯AöñqÀQ®©(þ(uüÑB¬B¦ÎFSüE«U½D^Õ:V$®ã¶!ä0Nª
+º=îB»Ó<Páð$Ôæ¬QD¥^´z£@×`ª+7ZËç.¿ÑÖO¸ö_ËkÝWµ<Çi§Qà°V.ÈJ
+9DTôMÎ(
+û
+#í5;jw°½¶ðIy"Xè
+BGýn *ìÇG£A2-L8ÿõ2r¹o$"q6ù=R|H3PÝñ VjWÔsäìÒ1g¼âIt÷4ÔM=X±5%:²:HDzÔ(NkùµCÞ;äËdbÛ
+Y¹Qk~ügW¡øÈÆà&ôþϵ·Ì[ÔÂUV¬7§Ñ´H®AÀ çÍÂ|È0ì$]ßø-ÕÜnÑÃI^LD-|É}æ%ÃÐiÓ¤Btt»M^^|ÇI¦Yw¶ÊEý¢p{Å©vav´É°NüdñúödÓáfa+ìÐã^ íó=¢b[côïý O¼:Öl#fÍ»³!èO£"¿O%Åæ²dc'ÄÄÛô0'«0o8
+hÐÝìzJbZ½ÛHÏó£ägÝèëÏÛ7ɦn 0¿¹5X#!mÃOº:w&»91ÿ¼õ:´ÜõV¤t¤Pà±
+
½ó`«KÁz[<+ÌÕ Zã`Öî?ß `!?¤¯zØ(¹n,yÄÀëÁ^oñ
MåÀÊÑÞª¯þr¤è
+<ÔhÔw¼
+¯-[÷@§¡p[&[Lå¯aª®íÝù~öû<**8%óÊ
+oRbý?bSÏêÁë9"¥S§LKõã½o/0î·ø5ãI$@§ø*yR4kbÓêbËSêI
d'?©k[`|òÜÍ=µO`gÓëá :{7§`¶MÞÿ}n×?ĵÈÊiH&£×Ý)Ås¢N¤#îÐÀm¿dà/ÜZQ^+®$£:ºx¸§rÄd$«a}åÏÿ=Á<ÊdPÁD¢±\@Ä`_ÝûBÆÿÖt°ÉXçG#EVÏ©H:iê*ÏÖm6i¦}<©Á³a9ñä1-vàgj³:@AµÙÃÕwluC}Ñézaü-%¤dfK°n¼þëÇQ©±¶nÝhË!¢ÆFÕánø<umû,±)7&ÝY=÷Ç~÷ÔtOðµ¹dõ·NÝÍ{STDûú°6cñjbOfyäs®é°ë^NTæ
+Ãã;«
+
+A åv¡?Þõþ`ôRáÊYáÛh ¨Iû®¦®°^ ×G¿põ«lªÈíX]Nï»ái
¯VpËÚ¦MÁfL.\Gëüî7dìê5sì3öonYýDÝõ?` ;0F*0µèCBét"MÆÅfy8¶ìl§ÜrwǺðp)ýÂ/^ãÖ|ßkZpgñN¢µ\y«©KlÛÂÖ;Ú òUpVï½í³ÿ4h¸r±K`ÎíId·û\Ure+NQ÷sð£,¤ØK/ü&añ¨f4+7}VµPki@%~_?<âËÕ.Ź«3Jû¦ÅnY½ßj<¨åݶ-Zuæe&#]&ê[vE[:íMý.:¯¸¶Òl*;öô2)º»¿·¸\Ò]©_í^¿MÊëæ5w=Sy¨~룴²î/ZÞ?8vOÖ '§q¶îË¡k
+æè=9'(¼2^-s³¾@
g5Æ>äêµÎ.ÔlÍýt2m
!Ld˰~áù0}¸>(-Ç®SÅaù¢ i"© »î=®¯¬f½¢/nEDùÛ\ÎÅéh[8rúuXìÓþ"2S0'Z3t
+å16Þö«ÎLÙsº~;âýÉ©
+
+±u«¶Î®¤oÄÈäñ/4]DûÏañ^sNøÿq*æãZöQcAVn¤æÍa&D3N§£
+Ó×pW üå«pWß/f^æÅÖ[JÓì/?nXíyá
+hÜ¡u¡ ËsE}¥6Þ°ªýõ+±æbQû+
+ßo?JäfU~íЧÊj+xð:±ë{OYÅHPÿ[ë¾Öv¯Ê®X·xú¤Ú9i§µ³åz5ÎWÑw$8df¼ÈûÈù9¯£Þ3´ÙÃc×9
Ý9 ÿþRK°&ZâùvÀ§@'DÊlHvLôCö¥þècfZÖ°gÄÔ¡M¿ª2°B9CéÓÈ"m}ǯ:dïå!®ïs¢WÿÅ£Øå)fY ña×x=ÜËxL¢UÍ\¯vô1³güÚ£þ²Küô·ÐOµÐx4
VdO$éóô1bV?Ì[*V]zâRݺ~ÀÌ2[ÅÄÖK®é{ùñ#üi~öæQÑKÈZö%qÂ(g¸;`a{SLÚc4ýûù;Æi¿Óñ
+éìeíw'z(»k
L±ªõ1JV¿ïK!]#ìëÞ)N¨£8lB4_úÊúô(¯)
+©¡$ªÃ_Hv¢¢J¼´/þ>Éûn¯RÐýr?ÃyÊciêyßël¡ÆBôºR(ÚõÃ_ʨ`Û³ZºwÊzmÕ,-JME}ØtbÜ6aT0 ßÛõF|COH½.KEÕàX~³Â~¬ëGU5ÁÕaH2½3yvÿï¼LèîÈÅéjSq´lÓ¤ÐH ×
+åKV¤JoKÔËèé:<lûmW¶:è°²æU
++ézï#
+·p¢ýö(½ðã& îç9ïsì4qH~ÚV*©üÑþ¤9ñ«.ë3±2¢Ò÷ëîB·]a ð4©LÅk¾OÕÐ
+m1¨üÍNT"È#÷
+LSFpæFíâ àP[µÑ+諬mûFU$Ùæj÷{÷"x±ð?QñG:}gÝÆ9èäXtÎ^'moE/YI<ÉÕnn6i:Û²
+vK¯¶õÎÓrÚ ü-À+©0¬IØ«0}cà2¢õ?½-±mp/yF÷·7¤Ì
æ¼»õØö¿_GW¤B<XéUõBÂÄC(~ãvE:Ì-QÆØÞ÷ÓW#TÕO
ÅúßxiÔã¶cc¿
+ô1æ*P"îÙ¼G°l·OÑI (~ýì
àqG8S=[«1{ ÉqiöL«ZÖs6üûNÃÙÏV"ôY>jÃÅäAò ~rÉ ÖåC7ÕC§Y_Ô'dQÔËȽܳ$ëlÚïý3½7
+«ÒªàÅÚf©/ÔÏvO4 ¼yyǸ3wºû'ÝËgñÔÑ2#ÿ&s@(¨ï
+ù6uþ¿¿ùiú+värÖ#m(
+x¨ûéA%{X ly¡W`9~î¦ýö-k£»íÊÉ/Ͳ?\EF±µSKà²ûÏNÎÐÚqÜ
+54>²î,¤Ã±D©WAÕóÄtð"ðºüçvØû9ö0ÆÒRbÆRuÄ,¼U¬*¥MÝG0Ç3:²)Õ(ßi%µÄF::ç¥jø
+ÇB§ö²Ã±xóÄó*DtXðó«âõ
n»7?Ä/3]öĿæ覫jâ;-I[IèýuIPà¨ØmO©8¿ >ï+~?¡m Q"r|Q·ãY5
+h0
+ÉO
+à>IÅfÅ/½] gÝÚ8ËÛo×X Mh¸ ζLÆ_!AÒ Û[¤yK¿/ó¨@Ú¿B'iIWøæ#Ýxêu@âfU_q^s[èU|°ô«4ßO;{1åbøà$[¦[¤
+ÏWºóÏ4¬ÙVéøhû¦ÐÜ07¢lTs·qì5'Êv.wQ÷}ÀâÁj=R~ÚÔ
+§0þ
+`î/ývD©i`Ã1é´ÊÎÎ[ØàqÄߪÀ¶øØ~$löj?7åÍ{Û¯2äÁ)ºU¾\i¤,öÆRzHÞ±ÆnòÁ¡ìÜçm%ÿ8!¶dPH@öp÷DÊöÁéM;éÆÓ¯ofO\ÖZÞ£¯!ìÀ7x±=Qð±Ål&uKìh,DwcÆ ¤óÕ Ä]X˺¿±yFAºMZgäÃTã2Ýtxu'¿Áxàé
+q5÷AÌ4çÞT!I3Pò³+?ÓU¥¿:¼ÊÄ+ûý7
+IõSî=tO#n,µË\î6ÈÅéôz$¦ºAè)ÀT`uµÊEPò¶ëËvIxíëDGQ@ßßYGkyEÔ^W~M©ak4弿T´ç &z±Ì ªkj»¬´;M°e"0ÏSÔµ^'º55ª´leZ&î ¤aت\cVÐga¾Âï}P+¯½M#·zQÛ)Z4HsVù@ wóÂ|ç9I¸¹
+|êtZ«rï.lqWÞÅaÓ½\¯ãªòÅ¥"ÔÍÏÿêîtV!¼Gpovóòã?ù£iXê,¶H¾;Ã}fCªS¼Âç+snæ=NÅà#
MZQï-X£X<!"{!Ëçûó-ÛWç
+/Rµ¤sRÞ<líBülBL3pýïÝë£DQOÚÛïA8µ ,`%Ómà´¤ÆÖß½aãvë¾O0?dÆÊ<À`#¥ÈAPKòÀ/{ÊÝI_±QòÿítÜàê`#çÒ<ÿ¢Ñ?¥=2«èجéy-lqÞ~8<*.½08èAFù)q̨g«$û¥eoêÆmi
U2kÉ.ñÌdÝq¼Í_bî©Ê)Þ-/¨VgZS9oÚÅT*P¡x§¹nÕq²[ÉyÑ$Êd''=}[åR`$êG¬sé¼_ìÞå>¬D3LB¶5üÌÁaºÊ- at gZÅñvÖr
+J at Eq$V{ð¤ì76mÞ}#Å6C#GÇùÁÝ4´®#±àd
oä~gfvÉÜ«ùNr¡_{ÀݶL«
+GAdzEÞþÖÞÌÎdíl±A¿£}bnܨG¾gÿïR
+^rªNN¿fqZ¨¯ôrLpú·-NÇ¥Óâ
+ýTp:!¨¢»7y¹î$×ìhFÅS0èö°jÚ£ü6Î8"iKæ£[lneoÂPÎd$±°©.ZdFÕPãJoÏ óÑ#rµõp»¼Ód
+ÙÏ µÞ÷®iZ
+
"HMx8òèEÃ `¡¶F>¡_Èù:ê: |Vág
+hÔºüÒÍi -Rkôø¡JOgÝpóADtläîu½#T6ëpÜÑEÁgZä÷ÙÖUù7X7ÚL<[
+yËõCX,_]PS6,z4¶ÊFÝ·<Ñ ÂvHà£ÞèÇóXïðjѵ5ÀÄ ,qIPØÂã.Cj3yÒF/µ
öNmâèR)A-jì_,ÞÜã!@RVÔ/å#*ßÂB¸¾öÜCxªív²h]½Çñ¹÷1õ2ååûnÄvÖè/ÜXÊp
+~ÊÓ@ÖÉ|Û0p¾Y¼fÒbm=À0
+Úã{u at 7«CsXøZã.S·ð×FÎg¾@Kã·|ô$*
´SK*Û)LêwÁzh¥Ïv§2ÙÜ¢ªÑÇ©Bd{ÛÛ
+aËÐ\®VÖ;oôÞ«^ç}±W¿fp,A1SóõV`C{¸÷9:É©3HïÝáxÖözöË/æ`5JD©]Ù´a£¡ùäåZ"?F`ô]OÓ¢ð±x\]yýÝIlI>?MvõÂUõVZÇU/E®ãÔT8wsÜJe¿pk«yIBY½+j8yÁrÆfÎYþa
+º:®ÛBØ I¸sàÔKoµ*ÔÊ\
+ʵܢ|§Ç/|röïßbïèq|1¹}M§ö+g;ØsºMÿ.\å÷õa
+`ÿ
ͬsõÑ>¡"cAåU^"îÁªå?¹Cñ4Å·ësDoÚOn®KþÙäÛÎRFeBuD%Ò{
+ÞØpêï¬ÅDY#QÄ}È×33é?¿W«¾ëKó¼Ì2I7B")úö·ú-¥!
+Vóϲ}pI %¼9YèΩ£]~@QõF#p¯X?¢ùivýß¹µmöå°¾÷72ÉõOrÞ0þSuÐÓ;c
+uÓ!ÔqµU±óKhP¶æ°¦Ö|¯
+g]:ÞÜGrLßÕV«¼xÕj°Âöi©Óî+÷;pæ8ئݻoçcH0¼(Zz»oxBèS*õfÑðß%?óÄKp!{ðµÝô6Ö*58}ÙӦŪs®[GðVlcåí\~
+®U-½|üÂi±?þÛ¤.ØJ²q(ÍD²i¼n$çR3¯È]ÊüanU¥KÓ^¸×·Ewý¾eê¨1"ð¨acÜØÖþL¿nÀã
ܤÅuÉУáRüÇa%4°'[Rí¬o+XòÏDnçYBægËCz"T=6V%6cw&ïêÙǨÅE`xÚ=Õì7uI<ðõÅpo/ºz ØÂÊ+º»>U¿áx£],0ô[¤ït
+vàlCM¼¿òñÂ ßØÃÐÕ)Úòð°-X)A¨Nmjµ«1Bý@µKþ:eê8ê
+Z àú¶tã'õ¡Bx$CÌÖâ^×47q
+^²±r^H`ZËâßC§jhäÁä'`¾A)ià¨h;þj~æ!öÔ翺¿;c÷^ ?S®(ÅÞÊqúuD
+Îkät ÜIS#§°ÿH÷º]-hú×ßP]V
+9+X¹æ]GSE])0LÚ½DSyøº&hÙ#Þð.¥¨Ý8zA®2øäjµ?,Å¿G¼h2Ç
+Ézµ×ÆýÒ»U^Ar:)«<c¬T#´`R!+ø }é^èUV N&ÃÙâzNñÚ]ÇÃÜØÍgKh¶-³xÍMGoõ\üU©úóæ×fN4¿óî{·[`pÞÌ$ö$In1ÝÓÆÔB
+QG. ¡3H[ _uo"³ÛWØT¨biª¢û5Úz¢íqû²ZTö.I*ü±¹zÅ]¶7`ª@Öm/¢À~éÐ#>pábhMùEªöÞµ'ßX{o¯>n½× Ù/¦¼j?ªL²~aÅY¤ä ¿*øürk»F:nýñ
+Ci»Ð⬲w¶ßwþªc6
+ã?[3¦cÅÞü@Ät<3ºFËV#-üg'D.¥OȸµÈ¼ù
l
+MñG±ÌBÿÿMéé&§:a33R©
+{(òj
+ at g(RÇGä_Ú9HEAO_½dë¥'/&ZV
+êºÀòà6ùWâ n ßFÞ±ÚPw>±!côQF´|Á
fÑVðB¦¬¢Nòf´æõóÓ!îo{>¼Õ<¹×y÷ÁÆ=bÞ¸ÀÒ¢K óvÃݯJiª×½µ¬P¾'Dá]
R+ü×IÀ£¨Õ}ô$Ðhý*5äç±óícÇdñÖ«Ô}Ü]±~OÉ6gêÂÎiN1ÙÓÜ~xÈÚG¢ï3÷ÙÍ9ãWÌV]¼d^:vKßpÇnÑd
ô°#dçMähÖÅtèlH¥Ä1Åz±ÍëCõ©O¼ÏGOaZ¼ Y KZCùQf9s@ߣ±EMÎJ¶·í,ñûÝõFC¥^ÆsF`¼Göà¹V˸Sß¾I\WWº³ò½D?4¾,Ã,!© 9$õÉb73å@¥ðå
+o(uä Ó¿´«aóZÃÖã~@¨´ºö%\á,V¥ý®¹úÉ+hYucö@ÕêPTiªþï
åGoqc-a)¾½òKmVWçý¶8¶´&pZö³¡ÈJÞÀVÀ8;£Þ¹,¼ÍJ3K»bw«Á¸çÔÞôµÛÑિÂzíûC
+gÌÌ JÁ°êúÉ/Æa¿#µÈ0à!B3 ¶ÄÚÎ{æþ}Ȭñ§A2BÂÛ×R 3·â9A#AÖ±$Õ×hÝX¤
+ "(ôdÅbK° Åù
wÐ Ý@gáî&é2ÙöÑ·ð}¼p/Ì ñ¡»{Ð-ñêg#ºÄå¼
îû_'é&{åÖZ&hq5é&GU~) ¡\c.ÂÈSÌúÚÈíuZ/¼\nDm®x¦ÿ2¯Óº"`dbH Äp¨¢®Áj:ð;ªë
ä£î«vÁýq>AgAë_-Ý?YáR-øUküÖk[¯
+&È~]©ÛT1¸ÏÊç§HýoîBï-¸#(&òaðd/ñ·ÄÌEn²Ã.r©·Ûè^rëx_é
¦ ݤR7®_Q|·ì0[eXG_úgï 4úöÂ5
¶fðSé³¹UPþvu3È
+±o<´÷P}\^5Ti6(ÆáÒ]6ÐéÔ©Høá¢û×
x#¥j¯øZ±·Æå.VbãVÑÍÕh׬E?Õ
½ÔTY¶_bÝ$¶QµA>źl5Ö.½pí<F˾q9ÉhhÞâ
+A²gÌ
+í}{á½#½lVfGï´üKheçß;CÆ¢+iibê'v"§sÙíçfLØ?Á «R Ce
+ôóçb6Db{ÜòC·å?)8JÈíg¸ÎZ/½_G nâ=ºðT<}àuz¹HÅz7¹vá^.·!cáÇýå«ÔB"bö¼Î®ÿêö'æBê>`ü/é8aôÖ-hô«ü¶JçU÷í]çØîPã·(dIX3\1$§¨2|¦b|®ýBða¸òÍÏ]Ó¤ÁIùÃLö÷
+3Ú½(x!çùE:P½ç¿ú/àFÆÜÞc¥7s
+Aú÷7K´áyé´=PÌ®/j¼òpƸ.n`µ+ u«¯Öµ»7H[&¯På<$Ý2V)#ZUiuÆ£x|ã#6L!¾w¯TU}â#2¿¡<wYJ±8vË*9 ÜUXéaÓ
+:öä\±÷͹µ;
+±¸ÑqFr=ëo¬kzÄùgú,g<·ÓL3NOM\v?dïWc=ÿD[Û#7à½Û<N]F£¼8²(Ößùìê',·j[u ÈÙØi|ÔpxEKüC©è#ÔÄy ¾¯»ªòíàÙÛöå´V
+õÆ6HjªäfN¾Fwñ¶ Ç0&â©8W]Nºý `þ#«fS^É{wèa?O9fóçÉS»O|ð}O¤l
+(Á~¾ÿsɺ[ìm ÔWöï¢ÇJõ|ð&DÉ`[ö"Ë^¦SË ©w}muס$ÆâSë;·Ð31¼oZ vû"{ ÃhYo-o©|ÁGê òØkôûæ³ÇrKõ~ÆÛA£D-7 Øu ÜëÐóYQ²E!x´t&ãÉÔgâC¸-9±J±-$BMnÆÓ°A¹ai x[ó-U¸pY¿èâ¯áR1G¶hnæ"fJoÊ(ú+_A@}ç ?i Ò>Jp á;À
+ÀLmÓgz´ß[ÃýsÜqä;¹ ½ÃÈL?VÂ-¤ñ¸svÃ5õÇå:þAzø §e¶":ª]Oû¯áuDêÃ#º¬
+ÿÃ'¹Ù8;S¥Ûý
+0Y:-;(ÁexÛPVSÀ#è¡ãBó÷¤ªï4ðÇâÓÙ¼ÌSóGý?Rþ² $1æT×°+Hºo¿S÷áà°ÜVWóìûÞ²Ôôæ¬ëÆÞæ
+aJq
´n_Q¯%#¯èKx^×9õ³ñ¨ÚÝv¢C'z³D©m´à_¿ú9j°±ùXÂÅ)«|ä%¯i¢uhEä²dû Ü»¼é
+«Ðü_ÉÖÓZêâ6nçÊJ³ní¦¯±µ!ûÆVyF$c§{¾
{|xvxn)'E§%yÝ&ËéÉü.%ÌÆÁ0Ï´f#VËÑbĺ«ÁQÇÚ¢É?njÛ4¥3g
a2ÁÇå
+K0n3púþ·´YA]d ÏC¿«0ª °Ii¶®´¸×3#îi?½~vY5tþ41oî1Éá!OÓØ£9Q¼)èÜ
+Mj~Ú¸T
+mb´ólg3Q¼B2<¦öcCÈ
+ÌAÀk`âmÞ¡Ë&@S@ß\ÖÔvãÔ©6Ö«8Y«IC沪SDv;îäÑ£hîgY¬kQù
+4Dmb捚
+vJ}$53P /£iªA.3ÍWlúö¾çÖ
+}¾sÐ:©IÆ (s¾wä@
+[f"Ûß»"-ô·ÊqöÍÄõز¬}À{S.Ó»}Nk´%|1fÉä"ÞûNÇY¬,§½è\BX¹WAµ;+½àØj;ÀpØ¿¤þÍÐãy#Êç²7̾øÄ^ÊAùm$¾<y~JÕ3á8Ìý+M^³xÔY·+yÁä¢ÊÜaáiù¢òº6ù%»MòmúW¨Aæ5¡Ä|\sÀygmB
+o¬m¾ä¿Dì¢ÍÒÀc¥-¿N¬2DPå.á×´+®8Ýuð=IcÖÏËV¥¬
Õ¦çN]
+¯Nàp<8Û÷]Zo[
+Éf{îlBI¬)ùÈ´L²»
+Uöÿ̪|¡/F¬lôL8þa²0ÿûI=ÏÎ'à¯
+A}@Þ$½ó{íY$%5/Ù[ãQ¼y ñWÆ*NlÄÜÝZa
+»Ì[ s,ÍMáªÊÏC¹b8$¼LñÚöòp®ÈÈÊ4§åèèjʬë¨3t^©¤Héif÷½5 þ¢¬Bd
°ÙÌ*ëÀä©ÀWñ¶h4éù¡õ Õ¯¢?ղťakÇ{¢¼úê¤ËªãæSyª=ã-ÍÙý¢ÿ V¤ ÷ÎÝ,+¶
+ðC1×ÈÓ3¬B±ª´KìHL*LXâÒ0m3×-L
+VºäbÏ%ý"GâÆðÓPýAs]²Z®ÛÑCo0¬bÖAÍ`usbVI!.¹øYÊðow6AÞ0;ýGcÃ"Do<¨ò
+*Öþ_Ñ!ØQ¢s²! ·ºqªBô˹
{m±6B£<ò×+õÍ8)xÜ5%cÙ¢ë)²SSÂõ¾Ê÷®*
Tê$פ¾åÛ¿NF:z$LßÀ6Ãx´ÇF߸Aï®ë`Êw¾wpæx9DX:ôPgE:t÷¬pÞXÈéÅ>fèÈÏ`±¡bMÛºÓ²Ïk]A%äâZMÁ©2´÷:QFÌÐ̯_ýHß3Þðþ=h.ñSÌqmBrçÈ¥[ý°0óÔk
ó5å¾
+%FèR!<Oò+¯#¬#sJqÚʶý
+ 9õ
Ñ®çL7q8£`½ß¹fÍBúBËçhÊ:åürf&0ý!ÅT^ñVsU!ÇÞºÙ~jZðõ}¼'bÊF!бéj'(e)Ì\Ëòå
+bÏ0åÂjÓ2ÇÈÈ@oÝÐ{3ôb
+òò<bÕ~H`ÙK§<É
+? è3z`|{ä%2ÜÙ¬(§ÿ3Á¯©&nöJh ô½²~¯TÓ×j£·H_Õ:4åCdx#
+û¸È%7CÎù2ë 7¦G=.¥x»:þÐíc
+Ú«ÕyDs>oQB¼ÎSKpK¸
+öl!CI5«U®iWìª=£»íÊùmÍÄöÄíePF(åÁЧÐ+%)0eºÞ}ÿýMÎX3©¹® -¬wr 4s3¿þêóSJ¶õagÒι
+ÚÍǦr?{6Ô~͹@ãA?Üõç¤QöGt7V=$
ÏòDxE4?Ù?=û¨ÁcÍ3ufÉtjDtî[r±uçéd£Õ$â
+ =¹PÛù¢ê$ÑAéM¶§,¨¨r
+5VþrZ³¡ôåEß:ÕÓBü_kÉñ^ØkB
+쯲رþ2Óe}sÒ
+¢°$MC
+Ó²FÙÛÃçeóbóþU;Ïzk(ݬݵá|®?V¬ÁmT¹Ó21qå0KE}yâMVÿ ýBÙdÓڴ˧×U¼ªï)dÅÏV[«àtZE£b+Z\ za¥UDoótpHHýN%Þú¸"|Ág`ÍíNÓÁîÍcDkvzú{Úzô1
æ[Í|¾iÖm°;}aßÇÈõCûUû²ßÒ9ÜÆd|PÿmÓNC`
+ȹ9Vk;åmw<ÏÔ=ÇA:a=
+¡öK°qñ\ûW¿x.GÖ!³\ú¯B
g"Þf½KiíÄçRv¿`
+s¨Sö/Õ\Y§µrº9ö½]ÍY-K
KY¥ö
EÒ«þ
+å(ÿreù¿vì/,; >ulkàìmo²ZZ¸Ëa÷æn
+[Lp7p}ߢ`M7ÊñqlXq#í»%£üÖ
+_×lh(óã*0^>¦Ô1¨ÕNÍʨH©xsJàÍX4nXK<Î/Åcè r
+#CòsÔß°Ë»#±
+øj0õפëNRõ äUEyÅÁ¯jL\M©ÿÕ
+ê`ÌZõåÐsD-FbÑxyý"Óõþ]
+¼/#Ñ;:`Õ|>+·b°³°¹ÍÊöñA}ºrÉø¹PEÐÅ?v^ Èg-æþ ¯P© æ&nÉYÓ°{ÈýBÉ_Doµ1Ï=V²ñð+ Em½þÖ'Q
+@ò¿
+ÂÅí?o@íqÌÅÄ.$@®°Ð®ÃjWÄ䯤Ï[èw[ájt»
DrçýH{Nü`ïË/9ç"Ðпè¼v9{¸-l£û¢VÏã
+ǯ=dZÂKt/Ñv¦¨ì\y:Õ6vѤ,zf~´V!?)áw*Þ^úEe}F$ObÛ_Þx-åû0Î1æ
+:Qô)Í Àg¡Á°·ß2rÉ0E:ñ:Ióùâ OÔQJv
+
+¤b:6ú)nø4ÁÈÚó#¾%$@¿ªTÚ§8å{Ä:Шw|Å
jçæ'M°OïvÄ»@)£7òt~&_Þ§@õ$ã "¾¡c{¨½ün¡üÔ}¢&.î 3»2%æ½5<í,D=Hpìp*É.
+]|nmåÙUIÊD{o¨,(ì!«íW¸ý4 ?ØsØÓO2j¶Å¹£À/í¿ùß·@ìß>Ì
+y²ÿ5ã
+·k_s´lè¢#l·KC@â¼ðAù j®]Õ¦tN
+Þdö UdKÝùµt¥´$"GüÌTPdº>ÈwëÃÜ
·ÖKÿ)1}<Ù{TTäB1ª#Å
+h÷÷¬;kf #È=
+VSG"QXg±Eg#屪¥®Å,ãú¸¢[¶ÄúPÌWz8!tæ~é§<Z£¶´JÿMµ; [ÍÚP;K%LøÜ¸ØËêGwæÇ½TPeù\ÒÛe1!^ëås&§J¬ÛZ¼6wXNÍËpÞÛù%gê»û¥dCÉÛ}*³@2Öç-
JEêæ@7ZÏØniâkoæ|¯}ÔßOHØÒß;ûW
<WxvÉyÍÁ0ÃnY>ÔÖ¹ßù-aì5»êrrNªy=È&$0~Lð¨»B«9eøÖ7%ny﫾òvTcê1?ì>^Æ©*. fÚ;Êk }ä¶QÒ.UC+%QÓÙÍx¾h'9»)òcáî~¥rn[üRÔ~%´¬Ýd)àÄÛLù&<¶RrìÃÿá
+iç»~'¿U#þîá¹.Z!/IßY/CΨÉÝ!tQ;ãÃÚËïìu´§MÇÇQ/R
+¬$Q%¢Lçq6}oYRùMZ¨ÏÆ\M/Öd{
+ý»RÝ«"Ñwc^ÙF9Á'#P]ÖSa3#!vö[³}vWp
våN)ÆÅû(?¦ëpDôÕξ®Ú®p¨À:`I¯8É!/¦|ÆKäz!ÑSgÍc4è¡TCdr §Ì÷kìuKµDQE´8äíç59¶î´îcqH
+>]gúì7F
+Zô*Èîçî\×äg8ãNWa:£M_Ðö*\`±lO$Ô°T£¹³ö¾ª{h#Hj¡'tdáb½ÐQ_.MòQÄüÜ ÏFÁ¦¢ç8z©.Ç3øÌÁç×йFâ½öÐ|\«ñ¿+µE#9ÜR}7¡Ñ]¿QÝçjzÏù¥5ZxX§J[igÀ
+C¯iÃDuè8ðÙH¿Uk"åÈFI.P6cÖ'ÌÄÝ9%YÐ]!ߢü
=1qÖÍE]ÎØ;Ë1ÎÉÃô´MÇ]K¢¿§ån÷=v3áÖooq¢2[ÄÈS7ÜBð©øfÿU®
+H+ÇÈx=×i(»¶L¤îÌÕííÝn5¶åòtíî
+-Ñx dEfí>U=ñ/ôÎGê¦ûâ®
+ôÊò}t!ƤrgIXH^Û´øD¤LYÐߪ
±ªçÜý§kyM: Kª_ä¦wÍÕ0ß[Ç´ìãèaˤ73ÔØ£ÊÆ^RNÿßbÐùn~ÿÌWGÎË$SÙ£C(ÎúVÅÑ©;_ìÕ¸b:µ4/ÒÛå54^ÃK©
+ΰõ©®¹µµxç²r(±ðÒó4'<JÏ×_Ó~M(ªùLµ ÚV²ë<¶hñÞrqéÕÆ^ùõV8'Ð¥üÜoá+Ѥ¨_;»@¤±F
+ëèãÃz\áñTØ9k$p[µªâj08¾;B>æ=÷ ü<Ù8¼_~¯¾F8ÑäÅ{ö÷¢/ä®Ü |qöGÕÁ½
++;Dó¶Ôéb±þT%}XÏpÍØ<Â(@æ)È©
+-½1Ù²£È¸½Àû¾A-44ì£a¦ÌJÛ5ΪÒZUêÙ'{¿ã6þ2aø4¹"æ.ÖÎY0` alë[õTìMö2jr¼wdÈÐÇ+æL¬ðD¬ç®B²Y·`cØnc6ôó^?(#
«0ÈöÖÖáéWHG¿÷Ôtî|2ð²Ë(4Ö@lb]íM*H
d¸H sÉ0á¶êA ï®àx}§ÞÊ;].Åù!Í6ªyÞã¿ÕÒXÍ4Z³
+cì°«1@@¹ãK!zÁmµb»c=c6vÓ*Îp©Ìûï½gq»Téõ°®ÌN÷/ÿk»ðø<8 U;ö#ÆUs&_É-lR¢púù£DÈÝï äOdÏø/]oÌÖÀX³Jô¼ÊíjIMu ûλW¨ä,K3º±@yÄa2ùs,,Ï |-7§êÅ/Eå·ådè»;E;o¼NÉwÜ
¡5¬|·Äe¡3Eßè7ypqDµd¸×ÀMìæÇê¢VZræÅÓb´F7=Æ%´·ðoHá%ñ"R0ó ÖÖ;»ù¦|)êÐÁxºâ+@þku[¦xï&qÆ ÷RÖêê¶yê UÈÁEKMàbüyêõ¨ÃÈã¬S(F:&ë.#þBµ/ºÀ.;GÞSÐ#A¾ÔòZóv
+ÆÙçú²¢=ómðÝPLøY¿O´ögñRp"¼2R»õ<@rîÅ´Dùo¥è3滽ÝáòÎ#ü9lÄÍê'l¶¬ùfËù}Y#NÐÚó!ͳeÕçU1½ï®ÊÞÛN¢íA2×f<¯¼d!{©õzBx¶´¶ÅÌFsWL)¢oÒö'£8ïà#oÈçÔ= P1þRÛb°É&ÙßzðÐêWÓYäÚx9#µÞ
kÉ&+ÇæÆ³â2DÊr·. þw¹ý,ÜþBNÑÀT,ïIÚ³X
7naóÌéŶW¥/ÜÒdÚùãê¶#!|Ãa]ýÀ(i§+â
óÙ"µs'WýÌNSyèâk¼áyY\à¬;^o§H½ª×ûIÀø¯Ë0XÀë
+v=,¬õ#*'J#~{¶irþTk¥ó\¿ÊàX"²j¡¼pÓß{ä~M¹
+©}´f1w§W|6vN;r,0Qâ¬kÃÓ±O( ³è>¤DHÅGdϬe
+S\Õ¤2!7»°]Õ
Y÷òßD
czNåÏSÁYI ðëWÑØNøh|pzÝ.¦þÝçE¶"gýNúéC"&xa<17¤ õôû8ÑrNøÊD7{¡ðëìr>èÏ÷bÄ<Cidb2)·ñíúÉÇ|Yô«oâ.ì'Cú/·|4±o³²e³+:õWâ²4ø¨àßÞN?/Xê*ë³ÕáÎÞlaöbôÕ Ùö-Ù°lébN¦´Ñ~ßÕÆa?9QfªáÙ]GÎ8Â1-5¨!®ºÁJüYp¯8d$['¼~-³Ê:vؾÀº»ßÞä¶êk¬8ÍR®ÎvÑl¡ÝLUL EÌù
+Ú5CÕöoªÔÆÈ%4ÃäçøÇÚÂHðt'ðÝ k¬¶¹,!Êÿbo- eÃAJbí}Ê2'jØ:r÷¯Dª¯O¡«è¸ÎR1ukýnØn·Ád±¼¶kk]°&ãvWú¼e'W¡/;¾¬7ÐÜýç7Z¥×bj#Ã
+~Pë|P¡øO'xÛÈêw(G°Q`Æwæ±YÞt²øf1IäoxàÐNÜT|CÊ2·ÖWĦî UY@jæ+¹×µ6B¡)masÃ!^§)ª°J×d\èòh³5ÿÞÕ©÷Ë;â"};æ3v7æyG¶/¿ £TþZ@êDTS,o[N3ÃÝfý:î
M°À~2yË£ØC¹sÑ#ÍFÃqG3 AÞ>¶E?òIÉL_ãbkðæô¼!³öR}×:([?ÒÖHO³ýSѵØVPäEB}¤RåáÅCxÚ=k+ £-§¦ÂëÒè
+X" âÒoæ©¡ëJ4wü¯'óJ5«<OÓ
+"Ñk
+Ô]ðaaSqAHª2ÑÃÈ `õ¢Q±þÂ~º¢Å@:ç§ã7MÄ=ôdgD¦dÅáQ4ûUXS(¿ùÙ5Ùú¼öØkã·?{½`9LSGóW´<v(¬9¶_ÐKÀÃ.§PhÚÌ»@[hÖiÝ
+N/Jò¡¿âkìúè©ÊȰ}ÍÀò¥µ¶6hH75p*F
+´ã1÷ÅÎâÔ¥#~ô³ÉQ#µó 3áò6pL*%¸Ï
+fê?¯ pëAÀ[rÉ1òæÝÙÆB;ÂÖVÊ9³ÚkÔüÛ<BX-Ú¡RN`¿î¨é!u³^[q¦ou7ö¢eõ<µ]õÞ
í,\7BWEb»å±ê}E;ÐÑÀ¹ÆI°&ÁTÝárZètxÄlÌ×A×!Ê^ö@é,5ÂX&ò5¸hpÈ¡,Wöäßáõ©.©x`Hì{â¢_èBÚ7PìlhMÚ¡³oH
+u<Êèâ
+x5`ioE6Þ7ÙÚ¿ªHÅm¨a\Rúó8^þfgRy ÏÊäãÙdäRº²>®é!èµ%d.ûÕîRêÜ7fá~J¸¹ÁÁÜîËi¡ G¹6 dtQB9Cê6Ç Í#neVcÏ<%·î£'ì:rlô뵩´½!ÕÕÅVkr8ã@Ôîr¼9£Úo¾[932dE46jÖé?ذà pÒj>¶ýI$iÊPËvF3¾Ç\\u &î7÷PǵHÓ2+ Ã]¼I=5o÷4Ëk¸´¶÷ðs×Eu«ó
+ÖA[#¥n¦³ K>ÊP<"s».<AÝvÑ¡CßLi½¶÷mdÞèÖ(uI+6ÓÛáýª1õ¤J#ºF|
+
+tßÂ4£""Q´[ÓUQ<|Ñ5hI¼ácSun<xFgq6L×Rs½C[Q0Ü eZ¬Ùá$§Mnðôcr¶Åp0}ûÎGHA¬ÀiOFrÐózû«ú8êë¦Y}ªü]lÅ$CÚûÿ?ÿ|ëîû7
ru¢jÍÀÇNf ËßÛÍ%«enÖÌJúy
+¯'|§×RCBß!ZþNv6u¡wä*h¹¯éó˯^dôÅ.08O]'Cb3§?¢IpµÀЩ *ÖÎ;r$ºlË.ÅM'ÙÑYÆ
+päÅïûfCûp:;Ujý5Lé 2ßåv)[n¯À¾el$JL0Hñóxé*ð¢6+/l+PßÎ&~È9ÏïyïSc<[Z>Ʋڣd¤³GH+1DWa©¤«vj¹OT¼W'&&«ÕeÇvÓ8@çµ*¥@¡p= åzX_µ¥M%@=ÓLua@»îãWãpF`ºN½íªgUûSÕß`èI\änQQÇ/FáÛ¶Ìp®+_ä6íÉéy¿ÚÛÂÙNU°,Öx0üÀÅàLÕ0o¥û)&Kµ¿®S6®y@pÙ
¹s2'c²ÑWÚ¢D»¤µ¬ô)«oÔÀ%rÑ${Û{¿Ç÷Ép¾*Ê&av
+Jiåíʤ߸Û,ÍÁ?6VÚsøk_û¹×½Q´¹T³9T %¡oáÅè`neu3ô¡ým£8
+ÅÌ«Í §¨Ã<%¦
+PØG#ǬHn=0¯{RñîÝêjr=Ѩ
+iJˤÌPéRU×eÒ%ö¬[By6ÎãÆóúÓWIØÀ¦¿Ë¾)céñ]o«éð±^(Ëþ»¡ÍµxZöæE£Fÿ;ç³Î
¢\\l¾fû¶G}o:L+ëtÆ4Õ¶e²ÀêÅ(ì
+¡¥S6yúyx¨·¶
áWøµæåwÔ½ÀZÖ»ömb- ±*Jñ¤ ¤Xnhr:°í±
+¨Jüûõ/OªjÒ²iS©Ó[åÝÆÞÞu^=ðïâÃsJ'UæÐ¢3Û/%í¿=ßcc[\í7Piq
+~¥ØÕ>@#¼gRô¸¨ìz;ºæð¬µÿÆ© /ÖþÆ_+ô¥îp¡_{Ðÿßã¿@¹ì+[Ïcd
+Þy«öL¹G?S~Ö &*ízµ>=%ÖÞ»òelÆÿÜÖô´J?oµ/Èá^e#±°Þüî³"2QÖIX𺪣Îì<_Ó(§|Χ³}¥ÄõK m=S4x9Øã_Þ
+ÕñÞ«
+°vßMÖZ£È^{½e
+
+31|fØ0¶R>I ûê:úÍÔ`ÿòüÜt´\°
+d¼hôÇõÝ3ß©i$×ôßEÁÿ Ý&¸Ù+@:ÑÂZMºbç¹e½Äv2"¯³C};ʼk¾G*`²îÑJ½9êë GmÄPÛå¿AK¡Üé°HÌE3Þ¡!<H_°GK½ýÚÖ\|ÄD~øT
+HyãKÿÚ ªfZw9;87¾Ðþ½óMúS˳¾Û÷# iD´[5àùÑáùmï7©NBÂÁ[$f%ðBaÔÛ-ÊPeÚÜE>')ÍCºéeï
+ήLRX[6#¨wÂÍð×ùV6åh껾DÞà¶$$¤pØôÿGvÐä.öAEs¶ëd½ßkÔ¼
+´!ó0BÄrDRiuDÊbß³JN<ýºP\h¼O7èâ±ã)ºH3¥KÝ1\AØQGò3+
+¥: ÛD|,ôóêǰüÚ@XXX#7¼7öL³Ahó>Ôì¬#x
+g)<-»OÿQU1Ô»O¾ÎE"¸
+eâg6còßfËqÅìåàç²ÆÎ¦ÎiAzɵ¦À\ŶÂÃ*°ù*äb=0ß§0ßø
+õü¨ÿk>.$z ÷7kv¾ÄÊ s.B©gK¨Ýë1}ñÿÌø½:ÐMÅg[
+6UÓ¥Ècªg·V2
+ÔÓ`µ9
+ÌÛ à®Ýé°c®6ämU¬
Ù{¹2päî]÷Ú±]ÜÑèSËûÞVÌ¿¡)³oþÏCTÊ+{uóê%-áGZâvÙ<×ÆÍ ßâNåHcø_ºZ~»÷§o'Ýs´ÕjÚ±F!lóûªùcXÒV wsThrÃÔ¾C 8k55Tê Y#¯l9¹#;Cë¢j¸§¦LÉFRÁßÍ{GätB9)Z×¶A¹H\mß2GÔøïÍOùeh©¼ºlr¼^(+T~A¼ÏÖbÿ±VÐAµò·áØB} {l/ÍÚ« OòÆtäzâ ¦ÏæeWÇ©b]Rh_q;²ÐGÚ|
+Âi?Þîçü<³k
QªZ(ønIE%»hí*ý<(ºþªûr8¥ª#Ù¯Öi?/Ù×´WZxkô1vùC5ÿ0w³ Ûí¼^ç¤Y´]ZmáV³Æ÷@Lâí´¤{±ÞãYí¹4Í3~¤×.fF%éÄz¨6|µ(-mã©¡ê =$H®Ørþ2ÊZ ÊúÞÝxÂ!/- oÔ¢ø½<ówÌ\¹
+ojö\¯ù´©¶ÉQ u`]Þ±&.75ÏÈ´Éõx5P0ó
+
+Åöo£²¼aqƽ=4`|ÉØË,´ÇµÁ!áØÐN&UЩcÂp¹¡5¥´Áêâ:ZR:´¶ZN¿ðü¿K\WÞ|`ä&W%µAäNAö8Â0]Þµ¬ÒÜÐl'¸[I&°«BJOÀÿ¯9ÇÓ7K WQ¤ ó
+Üz¾Nt5I ÆôTáûæAG@
ëýFÄùD¥f#ÁõlìwMG²gòiúß¿E÷½UP°Å)ý£'_úü
¡°ZWr*e«þ
+QLüͧzV²Å¡mIrǽ<7ê F,/3y¸Ê8ÆhºÎå5xÅt¼·[0tÆb4O
+pÊ2Úv¦ã»øc-ÐFt¢.²ÊÄYõr^DÉÆäö_ÀØPýBäÿç+ÃÊt¯Ãba×ÿ¤±µi+wâïüÏr^ªÞeÛd«N}o|¬>?4vÄ1<ËÁAÝUÙi7ÏkGä¸ðéoÐYÖÈ×!ÍÛ
_eÚİ
+§z«Hå àC%N
Ü©05ø
VÝÏu²w½(Ect¿ã¢ÃÈÚÃÖÖY¸+ã6A)_äµ)qc§ò%æÐZñØ~5K?ÿæMÀ+È\ÃË8úK¥Òíö²Â±ÀÈkÆTg¼6Ò/§®ß+äþÂ!´¾|3¦X$QvÈ$ò
©)XÈß
ëÓýAå"û¸?%uÒ¾U³z<L\5×ʪ
+
+J¯Qóè(2FãÂOî{S~Ï
+úä)+ G}p¢{ÚCCu-FÄÖî`÷½Aèv¯U¢/8ffúz%,U9ÂYÿ«s×ÙÌ¿W,®rO§è;2Ìʾ}Ø0HÔ;!t\ñb·p¸Q÷{Éi ½#
+üÚé`/ ÈZ¶#Ë.]·ãù^§ôÀ=5ÌlVFØønj еux¨¥Æ:Õu]ÝGSh·ùU?À¹·ò?GÙÌPýçvÚCrrl4´) "^\kºv¯kU4½RêJ®Æ ¸ÂIíiùõ=YTQV®íûW¥ý/)Æq6úù^J¾[SræU
âSùBì§ Ú=Áÿ©~ÏzQ·ïï¹ûÄ[q7ædУíuÊüz<Ù»½z÷æÕÅhÝïueí¸5Ó1hKöïÚUHÁ
ú¤m!Ýå^5äèz-!õÁ²ÐpØöèVA ¿«å£æ¾êÔ;þ,KÙ*\Ø·*E[kÇ]CÇN¤ºCKWÜoxtÌÔì8SRU5å~XÍÛUa!9ØYdжn~,àEù¼5é(|ÖÓÙÀx0:.=ê%º98ª(ÎCoø©ëë3ô²ÚVßiÍñkøû\-go®É.¯ßðÒ@ÀÇpDP^E2®Ç¢"C5ç¯*Öþ@Ã
+p^Âëõ$¯ØE¬6º1¬ÜUx±üãlîF±¤É}e%ÐoCH«Ò.
+ÌB}û3"O²G-ä=/&Ý#,çRõÝç¢WM`ÕòØGk°U÷ª{Îúï;Ýå K)äfÎ
+%h³ãø¢¬ÇÅl7\!ÐÞ¨L¾:½tÔ¡·d:é*éÖ9àcÁìc°¯4üëº. Ïk¦ðHyÜU;É:g1`i«Q^h1[ZáÕÓ)®0Oc`ß)ù OTd§VËèÞ_5ËOóí¬±`l&výãvìçéÿ°,HðPmâdZ¹BÅðhb¾ãzï©ÁT÷²¤ L8û*×Dö¡öÓFÀzuy{S°oæãþF-_R³Eµ£©²ïAcös³æcB¥$BXú.¤û3*çaýsc.«/
,'èçzçñò
+[9_låÆÒâézËÎoXQSqÔöýÑΧÓgV(¤,x{¢%tK[7«éÇÚ«tEXù¢r9>ªúkês? ®nsi_CØ¥wòÚXϪÙ=ïvÄp]mõeÃ#IGç¯yÃÊÔ#5ÒuF*Ë-»/Ò¥?øv¹ø´a¨&ö>oGï 1UkTÖmtc}
+Z$õUÕï®àõÀú¿ÍÆ0´´
+
+5½O¹"ÙTæGÛ9C'ÿ»n¿ÏN?γ¸¢KûÝ!}ãУgd,5ùè_¨x×ÖaSþ ¼\ÜÅ+Ôå)41(«ÁãJï[mÂôT;I>Ò®XÍÏ@ìNofkà/¾ÜtiøDýY-ßúö(®é"Ë-.ç0._dº4Ð
+O½*kr%løv?<\ȯè²ÚdÒÏ;H#¸q[àÞ-cFË8±¹ª?.Z
+Ù¶·óE^|pÜj÷Q"Yú³Î¯Lyôå
+äù¬+eË
+R>a .áõV yð¨××*÷ÃW|L¼cÜÃÜã@¯ê¾0iÐ#ǯOñ¾ÿ  Nåu רÓnËjsð¾p¿ñ]9x˺«G¿T¾&â]¢ÙpüÆÕLpå'ÛBs8l¦;õØúÁQ¿ú[Y! ð«p*ºÉÝo¹ÑÜÕ«y®qrúk2RIôFÁ¤jÍhE>öËØL«yRõÌÛæÝêÿO¨
+ø§kØÒÛS.ì¨p¼à]Çs6¯qbJ!qvI¤}´`ó½xP|À5
+ç8¸§8züé»;ë±§Ô£áxª-y¹Ré%Ïhûæ·+óR'o
¸'~¡G§ÿ!ÉÖîC©p[@ÀSiѤ¦öãÀ¡Ü^8ó,6´@üòð£þ,øÖÆGÛ{òþÆ»É(_ÿûà3ýçý®T_BÊ`È»`Q÷ÍSÂÌC$̳pϦd/ø½4cåäûŬ¸cÿHÌ¥ÞÍeÄî&ôÐNö¥±%£Æi&|bo¹_Æ6{f#
åutºSluÖ7nâΡEjë%zznÑðáËY|¾ ±R©Î4.J:Ù
§ÏßS¨¾øÉxËqG3ß|å·!¯âÚ*Úe¨µ'ÆÅ÷ÉÚ@>E
+9_lÓk
+k¥äeØÔáå6Ñ^
ZØjÍüw|ÿæfÞÕÁTQë|¡¼PÊñM®hè°é YhìäààLnòEØ]ú¼;> âIûaÙÝ`"ÐbåktO
+årÙJçEÇÙS7)ÌnU¡ö?
+Mj ®¾ö0Ò¨øW2ûg$Z Äâ
+óy8i®Ì`l|LãÒã@pW-ó÷[2n³äSè×ï§Ïý¬ûèÇåP½zQóìþ$
Á ùãþË08fu꺻ø~.0fÆ:m%áÿ0ô¾ºð||kmK²7"ø/Qlê=`±y$!|'§äBPÔi¸6|E ÝÒq½ºÓjª
+q/ÃÃiÍâü½´Ãù5·JãïÃOe%¹`¹BÀf¬þé^êÖ~IÖªä0ÃN`wCä±`¦YépÛºåZ=r:Ær2}¶©ùë]P¶´U!Söã
+Ê`A¾0[yËcÅISF¿iM^F$v;Úæ_=Að«iÔè÷a"Í[«<רyº
+ÈA£÷
+|Bâ~Ëá%;N;Ê4Mã|çÍ:¥qàaG©Wþ*xùÌ"³íáJ)!O¥4íW£bHñÀ©Øê\EçiX-ö1¦Øµ"»è9(JÓÚM aÿ.f½8i¶ jsÎåɬ_¨¡§ÀµýøÞ1ñûÒãéeu+îÿ¹9Àä° vWôÊcýÏapanڪݥìÇÉãyÒµ¥{tþ»u;h¦'Ôâ
+kñsÉ|
+:ªígb;«±*~¤"[BäY¿E¤Gïî Ûû¯È>
ü¸·#ùb¥çJÐówÀvÀ,½
+Ã:}lBGY:´hD~2%@n*/ R Óèu´ásÿ¹Ë§§ÂËvÈ|ØÑ+±ÄàyÀÙ30Xß©©W¸«ÞX¼SÛâ]~\Å£QipÓÆè
+¬ðqÄé&þ«·TTFóõágÎqaD½#=,ǰÒJÅüõ«"ycÑrRE±Þ
Ñ?Hq6ÙNrf:8skIÄ÷¹áâã5UÉÎ
+vqPvkŬW!W¡ó³©ÌÇGc+mqdìç}L¥.oö\ÑPUËô%cYÒ]>Rçùwÿ¾í6mIþÔè!È,\;·á¹uíêü! àZ
+È%¬âãnUËÒSéXðä*Çüc<ýØWçÎÛö`»Î¤Å~Ú;,ÍÀ¦øv]5÷í·pãc«í B[jÜë¸fc »ÿ¥cpûÖÈìäõC'4
+S(Ò·6zeL?<¼ÿW#JA}¤ç!¯=ô²$ÛÍXí1våOÜÂJGÔJËfbðR²dê.xMaÿKó¶FVêÂ{òŽ>SÿW|,B"9ìqPA&Æëß
+/pÆ<éjçÌuo'\
+ô !dÚq§ÕRXáñû ÇUÀ&3,sCÊÓWÓ(ð·øÿØ"
+POª<Dëaª"¥~ø¢ôð¦¨<·¹éÕ»}cw8¾QýìD/Âçi{&í4ÙÌr8·¶ÀäWe'AÛ~ Ù>ÊöåÈQ*þÆ´¬¸þ¹ÊªmN@5t
+únçYVcÇ·OoÐ[¶lÇXÒß÷}#Ï·¼32¯*tTXSÅõ
_Dz.6y1Eübü½+¦ÿìR í¯Nî·Æ¥(M~(¦«åF{nÍNó`D¡aÔWøn¶Ø²³õªÔ)0M_½'óÓ+áÂ@³N¤©ÛkW3&
óÓË+Íß>;#Sñð$(¤½u+C±Ùg`7ð~~Ý9uÆ´1h¾fO»/Ê÷>Ûº
+X>,~@(ò¡¦
+L¢|óÂ+©ïIùñG¡-+$º&=̨MÒ.g4é8JÙÒ=û
+ó5©Üb®Ø<¯ VØD l=ù#Á,<c§|¿«[@ûgïý·Ñì÷qÐIU«ìôOÑbÞ©Ð;q?,sñmð¾ÖH¸JV^T
+´4Ö:e8_íÙX5X4¹$eåÇ
+ óñö°v!]Å>Rû j|µªÂ"÷II}²1o+°Óa;_êêÒº¤tY±ò»î¤`å
+p¼{°¦}·"³ÑòÖð¯j[8\Wébò0Ñ ÕÃu@/]jÃþQOchÆNS\íZ7ÙÖÜftc¿ØÉ
+*ð=ø:ö2Ì}*½{Vä'`û[aã*¿ÿìj[anòìfQOÝ
+³ü
+«ú}ºóªãyµì6òκXEß#¾U
+XÂCÆý,÷òèË0·ÿ3}×¥¤
+£Q¡AÛT&|v,¹é
+×ë;ÛþÊYÎYø?£ÜÐpïÁqhoÌ®ý³à²÷A"mð3D¢åvlÎ
³²Ø«@Î{.^ÃcnÉ·CE¿Aïn²\ruá»dÐXO¿-È.Ï)ÃI³}p«=É w¤Ïüѹè®AÐÐ3ßm Iפ¾µ& ºÎ!6B/X5{È8ëIµ()Ïåë)¨]\æÑ]#öpÂ'
+ºQ>BáHS+Ð×µªÜÈ?Ó1næh¬Â©üÃJç¨ÖYþ´ÃØïÃNð³âû+Á<Ä2g?µh?+ÓÓ#+¢97\e¼Ç)$¶¬cOPXr¿ýz$Ìd°°Ä¨Dï´4|®½)Ý+Û?^a±Óò æIhHºe¹®ÊäªJà}Xø÷3×ZÍð ûrFôÃHña»fÐn¯¶OµObAknwßÅñÈÁÙú
+J*óþ¾¦íËoIïòMÅdø0`䣽piÆü¸`Qæ©ø¯ùR#ý§Á*Ù3#SQô¤£A [ý`D@Þ·ÞÕú©%ãÀ7,Úâ¤ëÍ9l ^î*¥oÅ¿®7/:ñ¯kT/X¿QðíïYêÜ#Ü£5ݶ©^µz»ãPÉb»¢°"c-Ôº`!}jS"iëF
+L³esóËnʬ¹N*ÒÊqMáCq©§LºË
\ÐÛB{Âr¦.·ªlfñ_R/{½r^½îµ¥Dµê*§O'ÇuøÚk×P<¿cH¸âÚï
+¨à
+diŵ_e¸#4
+ãÿ~³dèÌ?>çb«§Af1
¼n_iÓ^m(H>¡ôÅé
m
+vD
+FR"÷ã³EºÁ½
+9æáU?#ñVè}(äÁo6éÍý¡å#Â(¤?ðªlMm#©kAöKþ=©Ü·µ4¦íC¨é§§.{C&G OS%&,{Çõ©³EâúBÐZ¦`øÔHñ0yÚz&yõûåIÉ«3|¥K{ÎC-±:Uèv<
+GöÛQSʺ
¿ä÷$ø¼.®ç2J@v®*Ýôï¥sÉ)Üô$#ÆË·ò°¤þëkj1
éË¢] ¡=ù@nör<éÜâª_p|Àé2
v}¿?Qùooo*Re)m6uáq,?7!z½îâ½¢C/
+ëC:>_fyÎÁìÏPË£Ý,Á¿ööA½Ñ4«°qø ÆÈ ÿÑäcw!T¾|O¬êùÙöÉ[~ê6Þ8\IN4R¦©&ÐÞ¥¤nÜ,ã䮹0©Å:ÎÜSǺ¥ÉE±ÛEÖPI¦!Äø¬IÞĨReCÚëð¯6Ãò b¸{.[CtÖJñµJ·)ýå¡3I¬ÉÅã¨~ϱ©-õáï¾ñu5ÜuS($Ö^<Ñ)»p³FÕgë/\¶nÔ#Å¢Iêôý%9¬W{+ÊiGצYãå Þ\e-,
+ä³cêQÒ@\¼Pì÷ÒÃÕþ£Æüþȸó~ïßwYfe¹XÆË¾FÀëÛ]åòÊùb`&qä2w/Þ9GÆuzs«"·+(>ØïCo75X
+×ø¸ý³¼éÄ©Wí&Àñʲ=mÏ6FhöC(F~\3¨ÂCü ¦jø>n¡K· 1Sã8.K°¾À £L÷¦y®ä¹¿^
G{ÆìÞMqzÜi #n;ÛÑÖâZÅý¼C»¸W %n×ÀÖÁ®ìÞ-³nïüý6!¯:ò;«®ðá¡ÓTʼÿµ@|µZ)Ûªés(,Ä'}ÙÁóâO²§8r¸Bñòû=ç³)¾7JFÜÓA¹mõ°}#ò§0AVk=Y9
+¦`®û^OyèºM`!¹ÃöX=ñV¥RÙÈùÓvKê}~z
+öñ¡¨NN{£Ú[¤ë&:']înÔ/a4½ìJëÁ!o/Ðme5j"Uª\Ì©Ö9M0à.FþVÞ íuï'ÂùáY
+?x\£éNÒÆ÷s@Ó%;¶[PÁ+760~ä×5 _±ÏWúîö²¦Mì=áßì¥Ïz]]7±×¥/*3*)¤%O°& ë<·TF¦ºç|¤çî"bWz×KwibÚìBGÌFJ¿·úÛhÄ4!õ>ò¸.$ä÷k¬â7 ¿½VÍ*sÞjÈrP-¬B
ÝKDê3ýé'2zB
+ôîzÊÎ%RD[¿ÚÒ.Mu=\îÞ`j¥&í~NúIQ÷ÀÝ¢=1ªYdMQü]Ô<ô ÀñÎ2,à¯'®±BÕy½ÔRÿeU|À[^2xpÆr)â+úÄQj8|®ÃADmÎoú9ÉI$ì
+ê
íñÏleÚÝz[üÅC»í%hÁC<*0§&úý¦ÿpJÁ¦Gq0l£FûÒ8ùR¤ó@-ÙL_´G`L£ÆCcbæ<:Hú®È³¸HÆfn&LÀ'u¶(8É
+)^Äíù8Í¥ò¨´Ó'l#ç÷hý~}sfvß)ÒÂþ,°Ä}§¨°÷ÐÌúm×\÷h
+zBAT
+Hí%·àZýÑïiÌ6Ë|"ýùæCâ8Ïfåæ{z*¤Pùúq*]Zô7ТL<õ'ý§_ùä¯Ù¶äæÑÉóMâàµ÷éhÍ=ÕöudÞ^#8q¼¸c=Á$ýf,Ö¦hë$| ·Ì¹àPåÕ$oyºéÒ]>Ñkh^ÕhLg¾Ô&9kXSt&Aaz¹*±ªy´©O²L½wbûâN@IK4uÍäNä#NÝ@Í.Áàù_¥çYµ®ßF@_ìÒ»+O«&Mñ;ÿþµÝõ;<&!¸|Þ®Îÿ+ëéA³Áïס×Î#ÿõì°¥;À@}gñ︼ڡà¿7ÊèÙ!%Âòú¾ùÐ_t:dÛŶWáVkXèBÜchl·,£bçÔì[ÏT#ò&(xg'C,*$â¸äY7
+]oCÊq&Õ÷9
+»òu~¾´xÁuÓHñBxPDP¾ù_Ó@}"Ï-3ðZ¾¹ÉñPWH
+¥äÂñ
+e0¬¿s{ÉÔ
+ÌØ åòªì# |Ù|iÆà2Þ¾¾
+¹³>uDö¥èDBdl+k \Ø"Zýéñ{ÕâKÒo£4èNù0Ô)
+fâOKnü:GÙRûÇç "¶cþܧðv?ÖNèèùð~n|G$k<ç÷çôÞ/«V*¥c`C¨jvhR¯N}=_*Ez+ÅE^2; E
À(<9àÄû(iIètæp>µY¸ÍÄ,Zÿiéß0,o hÝÚ<"Û! ôOª²PØ{4L2jyb§Z!þõ§â°¤SV1©~8Øè-®½Æ«æÏM5ä¦uËÌUkfÿ KÜSúÏËVÑÖ-fÒ£¡²Óz¢áÒ)<ÂÎzrkÏEÁäÜJ\ÁnÙ§ÖÊþgÖûƽKåÂL§êjw¤1½)6Îa§(¨W^ MÎç4ÒBz>¾Ô/}£(D³Zãflkª±ÂÉÅh¡qûé&_çÖeµi»'^hÊ^cwH~<Ð
+&o%¥êñÆ>i Ïr¸Å.¢ |áVjeØÉ¾Ñh±_)<mÉÝd>ö9IU¼!ÛЩzlººX°´@1i¡éj<vñÛûXõöyÕPÈRîfa
+yÑÜ9§û´ø|/tý×Y!äo6îöT
+CTzÿÉ}ÐôDáºðKîʳ½ØFÇLR\åÖ)|Àf°¦×}
+%»yqÝ]à
]Éë¯9|QÞò½·gsðù6u+hV Ð8<¥ï¹Ñ*ÖÒîåF?æERrk
+{Nì±%k»Õè®1+ø|ïJ5iD¿èøYéV~LT¸°Z8Ôfó#[áaÀ0tL2Ã:L7ð#ì¬â6
¼#h~½8ÀA[å~nÂ
eîO¨EV
+~ºÕ/NÇÓáèWöźnÊ?ô[=ÛìéÄ<ë²ou=Ey³_änK7õyéÜ£ÝîÌáfÆ:úþdq)ã
+,>Ø[èNEo4ºj?æªéR*?i`¹$)Ùæ%ê<ùQÃ\ã}#£7ÀF{¤5
+×ÂpÆ&pXÎTÚBKU®ÛQ8ÑÑÙH>à\ù×k).Ó
H:B"Öj&§;°[X1DþÀ6Ñ~k
ÜY²
+oî=]áe8$J]àÒçÕaO-v}˸få%xö¬CÆk{Ç®¶n
BéS/á2qB²ûgà\8wï®cCt¶ÄEÓâǰÝ_iì¸ÇÅû_NëK4¶eÀ/{çI·!kàäYû4]KRÐ%>*¹æ6/º½iÊÔ\¹~J.vZÝj-+â\Ùsõ§z9\93Eó
+á]ÕC y øk2ðW̬òÀÚ#ÓÑ RÏxÝÞ\{dq¦¤OûXÿð~òsåIÎôÎÝæáw]»Á Ö?ͨWúk«¨h°ÅB#!
+ùs/B®ÿMxÎMÖ¯F4q;]oi¿¯ãN¼zèÒ«¹f´Øvµ²`äÞBÂ
+UµÔ»÷èx-Ys*ÀåÝþÕ¬"ݸxÓôS´JÅà'f}{qÇ_©bó~"üw 'â¹@b1H>PdzOg°üÚ¯¸¯ÉÅ)ÚOë{k
+ñV9£ÜCW+ó`óaóÃCµßÔ³±FîUx7}ó ´xR¶úåêñ´~:µ%Ñ
+ñhï?ÏîÖFåý5¥(óßVåÝVôsMÒeÌØn)#ꩤùñJ>ÀÒw æ»ïãÅïUç¿6o UÕ&<L¥7DÑÌcáøLy÷赩õÎõ«ý:²*=Nj]'@Ý^¶é>X±\{X¿ëv9gL\§<ï(`ìä¡¿/"e÷å T¬·}óâoIH©
+AVèpe¾¡8+4¹ºwyLF_Ï*ÈÍC[ôôQC§·§rO««ucH5ö6«íQëHÖÀó/×ûn£!üá_.Ó±ö7Vm¤q?¥ß[{aFññµc¡V¹ÚÑ磡'
ë,.íÚNT ϱ¾´Ì[k30è³;ï£Vµ ÅB(3ìÇxØdm¦{ôø^þl}¥½õáVI§\ìkÀR;ýEU¹3D¶'càe.ô¥ôtÊð÷'·Ïâe*-¤½ôZâóÌÿÎfHRÀî?y»;æ¬'¾ÿ:gS)ôÁvRËeqvl
+ÖÐbE¢c QÑ
+
G×}eÛèW3Õi°õ°ícwrBx
+e0«8&ÐylôÐèÕÿzó¨¾÷%àèåöÁe8?Ç}ÎTóD¢l]sd¿ÅlÈ£ÌI@]¨ó/;xfÔSÇdãs ¬NÍù *jAô
+ÔMï'ö^Ëäd§{1
+búòg
+Ã*1ôó×&]RPlúëþsÐ$Sâû¿vêά(äæÅñßsoGQæõ¾¹îtx
+`ªèZ ãÒçO1¨3O¦d"¸¾ïÒW,gñØô6Ï*J|&nü0;ÞÐWÞ´}̶ZnãmFíýØ®ÕðÑjC\oRÂÃD$ê£Ô:ͦÃÛüµK]ßô?þa1òY*Þßë°WÂíÎP:¿Ä¿0~,î49¦Ó»ð>möøüÿs6(ØtädnVÓ½2ÊÔÖC^ù®?³}µâ´FbTOg~½9æ¯æ Q3²PòU?µ¸þ
+M¯sÃ|KÒ¸»¹ûÚF}Væþ
ÒEã'/K.±¾(aÄ«óÂ{3ur%¥¶r°ìºÑEËK%Û³Üã2øF#cÛþð÷j` 3/
ÊVYÔµÎ
+ÆKìùnÝÓARÐUûå¦Ã¥8d")]¿¯
+sð y°î殹wïÔÝ2 ¹²¼fóà¨MHß|}h¸0[·Û ©ÂLrÍ?{§+©+)Y-?Æé»¢:é"Þ@ã7JJUZçÏ^£Q1²Q'
+'Ôb´I®=Æh]3E}
+endstream
+endobj
+
+586 0 obj
+90488
+endobj
+
+587 0 obj
+<</Type/FontDescriptor/FontName/NimbusRomNo9L-ReguItal
+/Flags 68
+/FontBBox[-169 -270 1111 924]/ItalicAngle -30
+/Ascent 924
+/Descent -270
+/CapHeight 924
+/StemV 80
+/FontFile 585 0 R>>
+endobj
+
+588 0 obj
+<</Length 875/Filter/FlateDecode>>
+stream
+x]ÖÍnÛ8à½BËvQXïOHY²é iÀ±Ô@#³ÈÛWGÎtø®>R4éuw¿¿Ï·õ?ÓåøoÕÓy<Mùõò6sõÏãªi«Óùx[ÊÿãËáºZÏ÷>¼¿ÞòËýøtÙnWë/ó¹×Ûô^}§Ëcþ¸ZNy:ÏÕoÝÃ|üðv½þÈ/y¼Uõj·«Nùi®ó×áú÷á%¯Ë]îOóéóíýÓ|Ëï¾¾_sÕããå_¯cãs^mëzWma·ÊãésM]óǧã÷ôڶ¸¶®c½sSòü1ç¹EÌYYÙ
+ÙçÜÖÍùíwÈæÒ#rbNÈs¼§mܳ½Gçnýþ@?Ðàôøýþ@?ÐàÎìÈôøýþ@?Ðàôøýþ@?Ðàú~¡_àú~¡_àú~¡_àú~¡_àú~¡_àú~¡_àú~¡_àú~¡_àWú~¥_áWú~¥_áWú~¥_áWú~¥_áWú~¥_áWú~¥_áWú~¥_áWú~¥_á·sõ~ßè7ø~ßè7ø~ßè7ø~ßè·R~ßè7ø~ßè7ø~ßè7ø~ß9þñwú~§ßáwú~§ßáwú~§ßáwú~§ßáwú~§ßáwú~§ßáwú~§ßátF8#ÎHg3ÂÙ¶
+lÎù+Ú²rÉæÿY,h6¥;ÑÈDt8.Pi|ñFv ¢±+íåK÷ÌèdDTôÀg¥uNmÉ-^F
+̸>-AÍÄNèÄ
²,²éuð¬´aÆ`¥ÅALt&8eÁM³<#artËF{ÇN®tÛáÞ®LvqèípvÆv¼øÎKû2¥=²æn±ö=Ûaîzf»õ1þûåOOgñôË$@;<«)bÏwW<}ynS~y.®X§G¡ô¥)Á°ÔÁõë¨3,uðîÖÙÿdØ@±ÃÿÚ«ãÛ4ÍrùPvcìÃç1ÿûKáz¹â®ò÷pר
+endstream
+endobj
+
+589 0 obj
+<</Type/Font/Subtype/Type1/BaseFont/NimbusRomNo9L-ReguItal
+/ToUnicode 588 0 R
+/FirstChar 0 /LastChar 255
+/Widths[0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+250 333 420 500 500 833 778 333 333 333 500 675 250 333 250 278
+500 500 500 500 500 500 500 500 500 500 333 333 675 675 675 500
+920 611 611 667 722 611 611 722 722 333 444 667 556 833 667 722
+611 722 611 500 556 722 611 833 611 556 556 389 278 389 422 500
+333 500 500 444 500 444 278 500 500 278 278 444 278 722 500 500
+500 500 389 389 278 500 444 667 444 444 389 400 275 400 541 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 389 500 500 167 500 500 500 500 214 556 500 333 333 500 500
+0 500 500 500 250 0 523 350 333 556 556 500 889 1000 0 500
+0 333 333 333 333 333 333 333 333 0 333 333 0 333 333 333
+889 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 889 0 276 0 0 0 0 556 722 944 310 0 0 0 0
+0 667 0 0 0 278 0 0 278 500 667 500 0 0 0 0
+]
+/FontDescriptor 587 0 R>>
+endobj
+
+590 0 obj
+<</Length 591 0 R/Filter/FlateDecode/Length1 1307 /Length2 99502 /Length3 521>>
+stream
x¹cte]·5ÛvvR±m;UìT´cÛ¶mÛ¶mUl§Â[Ï{ÎyÏ=÷;ßÛvk{9ú}Ñg_ëÏ"'ù¡L/llk°µq¢gf`âÈ[:;*ÙZËÛrËÒ+Mãpää*æNVÀÿ-\
èàhnkÃó_©¢@§¿1§¿*fÎ
`abâü¯D[!¹¨»¹©àß·
@@ -9805,11 +10293,11 @@
endstream
endobj
-609 0 obj
+591 0 obj
100460
endobj
-610 0 obj
+592 0 obj
<</Type/FontDescriptor/FontName/NimbusRomNo9L-Regu
/Flags 4
/FontBBox[-168 -281 1030 924]/ItalicAngle 0
@@ -9817,10 +10305,10 @@
/Descent -281
/CapHeight 924
/StemV 80
-/FontFile 608 0 R>>
+/FontFile 590 0 R>>
endobj
-611 0 obj
+593 0 obj
<</Length 875/Filter/FlateDecode>>
stream
x]ÖÍnÛ8à½BËvQXïOHY²é iÀ±Ô@#³ÈÛWGÎtø®>R4éuw¿¿Ï·õ?ÓåøoÕÓy<Mùõò6sõÏãªi«Óùx[ÊÿãËáºZÏ÷>¼¿ÞòËýøtÙnWë/ó¹×Ûô^}§Ëcþ¸ZNy:ÏÕoÝÃ|üðv½þÈ/y¼Uõj·«Nùi®ó×áú÷á%¯Ë]îOóéóíýÓ|Ëï¾¾_sÕããå_¯cãs^mëzWma·ÊãésM]óǧã÷ôڶ¸¶®c½sSòü1ç¹EÌYYÙ
@@ -9830,9 +10318,9 @@
endstream
endobj
-612 0 obj
+594 0 obj
<</Type/Font/Subtype/Type1/BaseFont/NimbusRomNo9L-Regu
-/ToUnicode 611 0 R
+/ToUnicode 593 0 R
/FirstChar 0 /LastChar 255
/Widths[0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
@@ -9851,12 +10339,614 @@
0 889 0 276 0 0 0 0 611 722 889 310 0 0 0 0
0 667 0 0 0 278 0 0 278 500 722 500 0 0 0 0
]
-/FontDescriptor 610 0 R>>
+/FontDescriptor 592 0 R>>
endobj
-613 0 obj
-<</Length 614 0 R/Filter/FlateDecode/Length1 1303 /Length2 99512 /Length3 521>>
+595 0 obj
+<</Type/Encoding/Differences[ 0
+ /trademark /registered /copyright]>>
+endobj
+
+596 0 obj
+<</Length 233/Filter/FlateDecode>>
stream
+x]PAjÃ0¼ë{LA¶z*AHð!i©ÛÈÒÚÔXËÿ¾ì¶Ðij3Ì.?·ÖÙÈ_Éë#ÖÂÙ/¤zcµ
+endstream
+endobj
+
+597 0 obj
+<</Type/Font/Subtype/Type1/BaseFont/NimbusRomNo9L-Regu
+/Encoding 595 0 R
+/ToUnicode 596 0 R
+/FirstChar 0
+/LastChar 2
+/Widths[980 760 760 ]
+/FontDescriptor 592 0 R>>
+endobj
+
+598 0 obj
+<</Type/Font/Subtype/Type1/BaseFont/Symbol
+>>
+endobj
+
+599 0 obj
+<</Length 600 0 R/Filter/FlateDecode/Length1 1311 /Length2 65988 /Length3 521>>
+stream
+x·std_·³Ó±U±mvlۮضm'Û¶mtÔ±tl'¯ß}ß»÷¯7j:gϹÖÜkÏ3ëQdD
+Êt&vF at 1;[g:&zFn
²¡ÐÌEÒÙÐð`##S±p¶þpdj at G';[îÿ®v:ÿDÿ¶¨»
+´¶³·Ú:ó
+5Ck @ÌÂÚÂÞÞÎ@)Lõï*e¢ûûÅGÚÿé?ÿ1MÌÎÑøgaä`fP;;Ûs30þ¥Lÿ¡èLémÎ5ÉDmMílþÆ îfG ñßÃ{0ü_®[ÙÚ¹Ùzý©
É?[
+ÿkaü¿Ûm,¬=þÆÿU©üÏ_é þ/þ?7´5³èÿµp³p(X8ÿgîþPµ5:Z[Øì,þyümbcúÿ*æÆV¶@'§¿Oö?8 É¿oÌ jklgbakPvþpCGÿÐÆ.½þÇý·÷¿×¦§ÝÆpv¬!ü
h;`aUé`ÂêqÑ'V
+ÊvÑ×Òåkâg¥45¯$ÝʧCØ+æ½é~|f¼»×¨ûëE.#ªYFXâ¸.ßÈ¥Þ§¸ilé'P.ٽ׬íý'QÂ*TÀæì${íѿˤÚ3¥Êý89´µô"/ÿ²¹Úö¬4yÉ/`¢sý°Í
+ÖgþßhA
'hù =u° Q»Â~äzèe¹ÅÌ
+
ïX¿®ÉÀ (P%>ðæøúíâûqÝânjEUºÉlθÈzOGRܦ^§Þúz¸MÄ6pNÖ;aäºrXàÜg*ÇÁKèÙuÊZ
DQ¸Ó~èØwâ?ä¯X4é²6ojSFºâ_o"zòUíô
+þüiÙlÎDȰѶ§9± Áûj}"azLºc8ïí8©uáQì+hWçðõf2Äk²BÿµÆÁyÜõ¼FÀGÒöTÄ»ì*üBd*¿?þ#E±½cØ=Ʀëïmõ¾öI´¢röÄôyÅ_ßË·QoÍ) |¦oÍBªòÉ{»´DIÿJ%#£ûYoÛR¡æ^p)!µ»Î¯$õY´ÊgÚA}»uRãÞ[¬@¥BH¥\
ÎDø
夼â½ó§O¸¼neÐzB4ÓG×ð-ùä¬m¿:¹K¯ÃZ0>Ðx²n˺*QC¼QoÛ$wôKNjÝ鳫ÕRV=?¬\Å
+ö1.;¢I]:rÔ
þBäB@öøº\#`2` ¥¤/ÒÏçM¯Ü÷
+
+Wì96³{¿¡§ÀµãA±¦ôd´vüª~°¨ ¥)ÙÆgYåP¯ 1dû²®QÌ|ü¹öG«îÝ|Ü|*Áp
ûL[Þç kçæ«JP²O*a7B×
+üÔü$õ|!C ©7ú
+ºÉ°§üеî4ÍS{ÌÅ"·)ûX+_XÖM¦FËcLÇ·FÊÎÿJ«øÍyÔ
<þF<àÿB
+m´=¯IÐhåûé
+2̸Ê}²fWÄt2OCÕ
åYÕØÂ Úä.óN9ëîxwL][¸vùÙ6 ÆEÐKæËùJtµ`@Î5FjvÓW¶×¢ÃÂÖ´½°òéùÞãfZ¼WIBóÈ·ºµåÉÿ[y|¨{önçOÿk|ÌîÅös¦Q?%Nù/éRÔß¡G<õ]W
+Î&l{1©LÍoþWĵê1è²é|hUíS{ÅÈ ^t
FFbíÞc
+ÅV,&P1à£d`ê"mµ¹³³ØãX,îiòx4O[MË·´Ø*ï
+ú³ÚyBH
°9¢Ú=êNÐÐír$¹ ¡7ì
+é¯×Ä7È4E%8õUmФ{¿(r¿Ýné\fçbÌKâ]Þ£à×ûµÃ©äJu 5WUÓÞÊ.µ©3SKúz´ì7Ñft¦CeßÎU!tY±Sßi³«YÆ|ãÖ]·âCCTÛYÁ\[5u^ÞÖKd²
+Ç ï,Þàk¹Î~Wv´zTzñóFýF?Ìú7çÞ<³,jÓFÙ2oÌÚP2+¸Os¼Ë<úC«Þ´éÉiNFOìþÏ¡7pRT4Çux"OéJCÑhkµèè!øñ¸
+®×ác·ðTÙ§CJÑçVé!wø»)fÚi,ªKÅã>ùIàïuißhX¡já³Ô¬÷|ñêD(07®ÁçåArê-XmàÙ% vpO±¾5-ñO Ò¯´
+ç[7ß·2ÎÖÓÂcçJ)ßgåÒ¬é¨ÃŨ!=w+èeGÆåú1ÍøÊjÁðpúl©`áìþBÓç9Û1Ôa`ãVA¼4¸¯©?tQö®Æzû»F²+K_Âlïæ¼r qÂ=|gsKYGI FÛn?Õ:Wã¿%+³§2ÎÅ®;¨ÞWÃÃg!õ¢ããÔUñîOê=Aç÷bÆ!P÷Õ5tH'é+º$×BU,ñðKm09÷E¶m}'ðZ/qJ94ê³}%«²¢[î3_T¾ùöT;ÆÖRïï;á@'!3ó«ÖÓjÈhtN#Ýs\A)*ب~A
+$+óήý!
+Å?¸¬¯o¶Y;
+ÆhÌC¼Ú®Âï¡zÎ_b¶4øÐùS
+nnàLI>¼h®h]L[ÚudGÏö)HFîÚQÙySbl¸vª&ñËDÜf~ÛDýÀwÑI}¹xBxUÅ{ºÎ m2i,LKQ,Æhje¡¢`êB9ÞÕâ²Llá9h=Øú&¤Ë÷Òæqä¥WÊÕõô·RªRbÜͲxXÚ÷ƶW½ÙHâ.=zO¹9¿åªFêadmW<-ÒE´G·"ðiÛã«ùÍ»¯eÞ{bu¦zP¸Ò_ Â,«Â¦saÜqr6í¡ÙëÍ+«©ðT\8[£Yb5/û9ô»gÊ»8þì_¢áÔ@3cÉbƺâÍ
+lÂý1i{1'¥ÀÍ-zbQýíún@¼¬TÑãÈüæþ q.I㣡¿þÄ}tÿ¾ä(Ã,7÷˧«[áO¿fYõDí{]¸·s|pà¤v^.¢¶qLähK*ªr<#:¡ç w@²_%ÑWÑwAMcÁÕü¢
+þü]£ÇS3Íï³;÷½§ê8%ãKcGÿy÷eúhÒÐR];,wÚ> xNÓH:WbLà§§0 ½ÏÄÅL+ödZÿqî)\¼*èåSnû·8.däzS&i
+¸ÓÁ÷³Ù'©»4ñËßËéBýö÷W8æg¡]`qpçK`¤BØd³TG¡xN7(Ø-v1×Ò¨Jáâ½ÊoÞAVcY5rÛÍïlÊÓgUM7ô£ýü&BÞ[W¯÷cRJºU\lXmÁ$
+÷<s<õmç{ ªÜNydé`EJcqÜÇõkûiÕÝJ-ú{ìJý2?n¥´®ûÂ|ÒÒÎ}^»f3ïOj!$.(A Ä
+í^
´ý7ºSO»
3Óæp¡NZÑî6êöáZ<!èSHÞoeãNØÎ-Æs³Úå½Z$
+L$åb!F%EWëJô,xà ÄðT«5çO+&m1¤×MØO\L¾H;Ïoõ|é D÷öõ¼M´ävsz×'ëv¤sésÞf7SI¿QÀ±xßhàd.#Kþý&«=r¨,/M»Ó! *ïzùjdñ>¥ÊÑÙêa§<®z at ZÌ´"u`MQd@«^¯Ck©ëÍ8Ð!²4kE «Û8é&Î; RÓ®ö3ËPAïpk1ú5Ù?[ïÚÄG|öTP`ªd/¯f$ЪÎvÙ[®Øan+ÉDóc9";vÅXâ|°5CW>%FTv[Nü®bÒ¯A$¨~·¾Àh(ýwòiʨuC¤¿*FÅ]£¢lKòjN'ûªRn ÈÈsØ2ÐgLi#¾©'>´G¾,Þt.ÈâÖ³ÓÜ*oY£ £©ì¸Óaë0ÉÉSwz
+ÇÎ ^8ɱóyàåº0ÍÛɳDø×ïÕ6·Pngô#º£ÃåD6ýò¨ë'%ìØ°ëd×óùãËóWŶ)pt'#£¾§lÕâ'ÛsÌixØÊvþÁ¼c7Æ*sAü9»b²^õ¸æ@æïÌï*AG-`RêÍ5 ¹(M¯¦ç
+2ä§Í=8K>é¬àTbt«~ >~nʸjàÚ¨ÜÁ§)[.W3A}«'
+ýÑå
+¬+!Ò¡â3yõëyÃ)3
+°"
+ZLDÀH¾X²Ä#íåîBôtPDbèÂäGÚY7ÅÀ5·7Ý\b|+×Wãnì×ìwW¿y5Ö7r/$ì¡YáÈ}Õlõ¼«o9³Ü:JÉPçq«Éÿ¹õvÐp}<>¨!OÀÿ~t+«YÆM¸øeïÐbUù(o§qâomNDy
+£Ü¶¼ðV¼$IÐ^÷A6åsz÷ËÒaDz<y¶P±¯D ù1¥H-ÍQøÄ¡=]Z²¹0wÈßFÄ I¾A/l93û[
+»ßù¬ÚxX¼*
+¯Ù¸[[_³äÎwØ:í^µ©Æ@¸·`J¸ç4N¤Ñ%(ÂýT]b 1Pí«¨Ñ,/PÐìû[Û©óúL|{Ô¿1`PøW¾ö\á>¨,¦÷îiïâ³mZ'B×n håvX¯HÀxêÖ¼Ä{ØÄ(Nî¾Ë²%u[,«HYË@ÄÓ²h¿têªüÒ´uø.ý $ºª~
+¨;ÁíåÛµ÷îß1gÎ}bx¨¤îK0¸|æé+K¾F!ó®ÍF½üð-}ã1È\
c±üó `AË_éö³IæöÇ;¿Æx_AÓÒ·;^Có¸ð¦}40´Ð!£§¦îH4tKrQº1ÜùØ6NÇç4]¼Åclø,ÃÉMªM
+«n3ÒËä¤?eVópÙ&J@÷ü2ðQb¡Ñäè ÌË¥¥AB:¹üÊ÷Qä2ܰ½ÂàABÚ
öñLðt60øṈ̃,ýÄh_¡JÒ[BÄÅ|1yED
+pÉgáü{×EÚùÓsjÜî£SÁÊ#ð"Ú/yÿw´o¯R]÷¿¡LXKÖVúÚ¦Þ¶j~'±Ð¸,«1}øßW¼£Û°ßÿÐ}ìêêêët½EãAäúwR 8}%e{,/ßE
+?Öý/Æ{ú ã¹^°gã,SÛçJläExõbÛµÝ1xÇYñH~
ªßÞn1ßåÖî)YlÄaÚè»J½ÛF¿ûÖö¨Ç>Út¤uTKÍ/ûùøñÑî¤ü.¯$ò×ûB¬¶P»øE"@«oÈìûªUt&0ëSÁÑaeü$+ÑNVÌ}Dçkë5M°ûÓÈ-Ñ$ÕÊÓJ°lù£ð ä½¼éÛ&t
+Õ^¦§eæ
+té½ýðÆ&LÛÁ½6@×Õp
+Ë»ÎÖ\ù¢³CTfî÷Ìf»©
+9
+0eªyr¹úÀ¬qV/åNS0Ie/;%DÙyÎì¡Ñcû®ÏNð®ç¥}Ñå&]C9ÒE0¶FÚÄC9D ª÷³ëtl-Ó¬'æ¡êWÄäÍc2ÒæÝàÓüb¯
+Åøâc;?M\)b¦þ
ñ¶I<Õ[ÿü£¬£¶7EÑC,Ä{(=Ä×rlg¹2NªÌÇÉClW®RÍëÿérË©
C²Ìý[ùÄ
+>¬Ò%5ÒªªÅæLYei[àÍzí{ýaÉî÷¨ÝD¶(ܺ±zxdDfH§ï*($_cä)ºÈ¿*K²Q
Ûkå÷;ÝfX/_dqL<ÂÌÞb.Æf²³"ÄùÚ =ræû°ái7¼Þ$lMƲ rý=áÄÅÆàõ=*@Çfµ1*¬ÄÆÓÏq¦ó.N~ri»m#5¬´üg¦^r)÷ó¶yb1:ÄxDÑ6¼-òquÓ*bÔ¸I´JÁµOɳ+ÊC!bC]÷&=ÚÃ#²9F¬(ø4]¾L¬ô(¾çSä¬cÔ\el[ÇÙì~
+s4¥ÈÖwm%¦^RèÏãÈfpSPnz°ï|Â7_xéu!Ì6Û±ùRXF¼fx6 ê®"k`G¬@¬QhÔºCyäÇ^I½
+åÖv"ئGêºLB^Hà
+¤ìñ±c½~
+ä}ý[æ'ÃL²ÿbÂÄÔU?î-¾'_Dýd¹ðÂàE¸(RHëÙ
+Åi_¾¤ÞX1ºÿ¯k/¶qB Ç7ãйüù´¬å3[ÃkâÁø0ÊQ¢£ÈgutÍÝ@ÂÖza¶¬¥ÌØ?¬"¡FÜvÒï<\.Oø®2AØâ¾CÍ>r7]åUXQ'²´iÈÓ»î]Îè3tÄãÆëóÁøASg½,.Ù|öÔ!LxÎnÿÐæAtp®&ë(Ý"lOiÏÀq;`-ï8=]»fì(ÊýGw2zg¶vüa¼´ÂUôb²ä¨4evGOð@¾"}¤·pG{=B18 ÜÜeÚ#D1ç0Þ{æ\XÏCúó
+º¸Õ=óË"/TøåijÞåÆb¼ºgiBGm`)[×
+Á$JàþV;°¹HûþÕ6?rôâJþdû®¾Ý ÍóÆAç®
+5oj\*ÉÆ¥¸=½amæÀ=^o6«lE´yYá±°;þ¬ºÙ×.Ç$õ¼·Jö@ÛIì@æ)Xz]¢í·¹
+ùü©³HÜÔ"èmÅE<ïaÃ|eYÌËaôXZkÝ0aîiàïa"2þ!ïàây-¢L(uizhuU{÷xr¯YVS¿Ú
ÛéÑÓbFbª/l_mÆÍs-5l4Á¦u¸»gÏ]Ýh ¢vÙÁÀ<üÎ(Ñêç¬Qëãb ¾»Pç¿Xt+¢óݦ]Xÿï ˪a5ë¼fÿA$]O¶Zbzð¿&¿6Ñ^É?£Û§øL÷@è@m*Aû±~,¼k6qq<Ñ'Ììµsgü¥çz°{%y¯ê
+9E?â?©õÊûêµ7ÍeïjÀq~.Fû,_ÓÍÝmº¥ëÒK!åÖÜBïµ
w
+Ø/X³8üýýÎMF¸Ök¨À!]á5ç<¥òúú{âµBîø8l%EÄÔn¿Y¶@hz{m3]Ç$ ¶Ã:½ðeBúϲX$ð(=5}UÂâ£Q?$wäÂï"iéºìæôÁ¯CÌg#u®÷ÓL9ìû3*ÐøAåûݪ1{$6A>Ñ"Qälú"íYË
+>9f¡Õ¢¨UÁ¶Ük¿_eÏñ{ÞÕ
+¦°±ll°äO}£4ZçpP6Hç(c÷.3æ¯ß^ñåþP,'©Çç¶¢&ýðõ?ÙI¼±Î´î~lèíá,¡ÊQG¡"d\ÌYÓ´"ÃìHøu7¢Ãíèö³þÖ2oãu¡
+øê´W"Ê1Ô-%ê+|ä³Ü*'CRÏZ9ÐíMur¤a_)>s£¡$¿|.Ø=äã0+Éwìì-4
+æ~³c£ibMDAoKHÄÂ1Ò¶ÎÝ
+¾ÖikkýöE5
µoOÚÃè[=\
+ýS® ºh^õyà SsLè7&6÷¯K¡;$B,âÝ_ܪCBG«ñÒ«ã{E-4KC9ztôàé;ÃÖ:ËéYgrWþÔÛ½´M>:Æeò4s#ÔHè8u]õö@2?À0 Õ6U±´·³Z~s¥´|¨æk \ûI6±ÇþCdNê%vX4ÎvHèýåþ5ûw{z[8'±ýûõï£I¹ßÍÉ9Caµ?רX½A
CDåÎ((¯. at Bl*\äO³/¯$=×»¨0V'@gµ?¾Ø¿«Ð¥ìCÓv87,ïëÙ®ÜÖ7
+j¹«Gjm÷mê¯<ùBùMÕÒÓqõ<-v»S;ÄÈ]ÈýFÕqs¹Ñ&´dX²{&_Öê (êÒ"üÁb3ìuB80B ¦fÆÅT®.¨ÏñédÓ] Goç*Î @qÂæÁÍ5ÿ%^doN¬Æ³á®ÑjD.WJ·çÖ®Q+èë_Fû~z(%QM
½ÉfH<&ùßÑèäÌãÇÎ,¤ú|Ñ+¹òèë-õâ|õ5à
+riÄ
+d×I7ϼÔXºÏU
+ü^÷¨üK´®Üijì¸%zúý¤ÁßòT¯L|CÎv{{Êáãô§52Iböé~¨
+&¯aüD=åÞÈìĶxn",êsPðãçliÛªdiL+°Ìm¯VöIdöì°iPuvþçKÛ'*[¤I±?ÀU$sí&z;^ìï=i½è³Î¯³nhÓQHt·t«(ªÁÁxó»Tí/øóǶB\7/¸qÃ&ÉCø[oa r#»>7=®!èRÑoR:§×¦íR¡Gâ'¾ö¬ÎK,¯ "3uòìØÃË)hkÊS¬¯¾6õ
+8/ǧ¾kAºt% -ǻԲë¥|R« þlºLÆÄÖ¨3Ï?KD 4¡Ù¶Ó{Ü1 Kq2
+EG@"¡î,TNC¡ÜOa6´ðéO%»èÔäu6}hm'*ð'ÒÄu>º0#?î
+·òÌÿqÐEcaÏ
+ §óæ
CùæaÙ U÷@SdÔ{ÚÚ4OsØë0r5+È¥îfú¥r3¾} +¦S¼ÍÛooM«¢²à%â±åè#
+é
+e¯,`Sò;-®ÇÀ§§æli®åiß©%§æo±FXI<ÓÁÑLàl÷Z/GÝ|ëØ°·ÙQã&aGªs±n'!L>f»F¢~b ß9lÏÚ÷<®ø÷¿/b»{øS@áôæèuiõã}¨hA
+§n;cõý)Ûír:ÈÒ3;M¤H⩸?VE¹<UÉJ¦£õáÎçm«¬ûÏôj. ¦SÊé:ºß£0wyÀ>eðµ¸8§ÙA
+Á[=¢ë;.J;8v}/½=Þ¡-óØ;À`xätUyøA°{¢ÈÚ]'QÍxl~Ôãí½º7LÕª;oz)¹){Îpòµ Ó9çþÃïÆÛ39|<V¹Wû&r:³Hõ
áø)-ïEjÀZ}k±X,*5Îj³/JACÕ'q?r&ªíÔíÝ{K1µx\}>//ï!&µWÕ¥nÚ½w"úAàlÌ +`þr·°ù-úbWhI.ÜÓþ&3ß'®îð
+ ¯Ý0½õQw¬ÚÏa*.n¸.åÂõCèXºw*WkþÐÚö6ƽ(è'ºPëæÚ8{£èIû|(c®Ç×Ù¶.ߦ{Æzá
+ ]ÄòTBm¢
îÒ\ÙÍTD8±%¨
qi
÷úM|hcÝge£6?}rQgÃ
˳Üé[ð-c&äOP¢c¿úXü1ÏB:P´
+Ü$®?}º=t#²wózPÝßKÃó[2<~%g]´h£å¯Fã»ÇÃèG7-¥/ìÑ.h8{}·}ã!<)'2õRcXh%}nþdvQ°öeQÑMëÎÖ)ÌeÆÎ\IàZªõIÍËùéûçîF¢Ú¾²rLW,$~¤ÝûåJ×IJÀy¡I%µïÓwÀ¦u±Ø0)
+º-
+mÊÎígºZ]ãT"al±tuYRSÒ^Ä¥K[À9"Q¦Yî"SNÆö«=ËópzXìûtXV£áÃr>¡ÂóGú
ô4Ìé3$¡èªZÑZAÐYó¯"Åw8AJEÆ-䧯MÙµpðNÐ îÿ@Q7EäýwÿÊþ²6KW%LòEíãY
+!}1Fõì´~¾B¨´7È© _$Íæ]-å«ô¡.,Ëð(Gb·ÁeòYܬ¾X¶ùå¾tÐ* OJKÂØÄ£)BÉ®#O&?+Ë U]È;?L\GmÍr<b[ 'op.»|-ÙB+ðsÎÌíNxO¡ÑíJ÷oýTåë© 1Lñx"U{å©Ñ§[W>z¨¦òûúVBØoÍ,Aét6¸fEvǧ7Äp&*³9F
+J¹½¾Ü7x3Â)æøRTW!³òz®ße6YÙ«9V}ý.½¢Duõ²YÑ×bÉRôgÉ¤ÔøÏ{ï÷ÐØûÜeÔJµæ²3W ~XÀé"#ºEfÊîU¬1¯Ã¤*ÿþ]³S澩1±9w!èë4Gö{UAêµ9S V.gdBíQQöi÷ÇF¢-~Ź&¢:íÐ=éSýø±Y_9ö3MÍÍî¹Í'Ê
+6³¦.·F×·þ¯ëK[ñºæÐ£Fá
+Th¸BtZaÊ(dÉ@"}âSÉ6F¬{
+LJ¸CÐ,ïÜHQrâY{\Þ±wò¾â;Hx ç-ٲ뱼õbys
*Úñ´¯QIkàF~LP×ÈêÐ:vRSöçmÄN=u¯seðVdù4*;qÃ^Jý
+÷¹)S¦QqÈí-@ñËzía8«y·7¢ýF/;21©*xA=d ¹éØG§Ô¯*%ó,¦¡§¤-cµ¼VÓqÃ3GÌh0f#xÕEè«Í8L7ærPÍñ/·ø¶=Iÿ¢Á,µ µó.Îù§y<m{ ÷ØJ©±eÇmá¸)ÌÞiXucøÌ±iÝ=xDxöFqtaøtn´{}¸DÒ\z9©ðCç½M³XãVÒ.¢aWìXbÑ®¸óqºÙ¨»ÝiäueMqéàä(d"ÂsX'!Y;àFYÿ²ßö´
+¡lbDÔ \Ѳ²DÖU³¾eÎÇ(tû<¶CcØËHðQÑ:mÊ´¡ûX
+_9þãþ<ÖØÉ/âÇë¡)£¼ü9õ»#oî§2æ¬îd¶úõ¿]oäLaf×Áû$åÙ,A°!ë·»ôè¼ÜgJè¾!
+Äkúج:³Ä/äµáG´Äã,ãiA¦s¢À8ÓfTÉtf¸ÉÖ`æzR0[%£½®ô6<ãB!¹$`læ(
+×v-ó
+"xt@ßå-7ÞÛ(ñ ±°man!ö·÷è(}WpïI3°uÌ5WàÎ+0"Fyò@ÆM-ÝmËÛìUq\ëåZ`´ø ÁîvfBÛî,EåpÈLÑòsLO}½AÃ
Æ\uòÑý|ºßþÔ^§8¡!éLÞÈåýѱp·Å?¶O¼ßoÌuµëÖËëjIÏpÙéy)þöË[±Â£ÎÁM~ѸÁCË´ÕÔu,¯ÅÿT-g
ʼN¦ÇhØk?*(z¢rÇ¢BÖ§Ðt°£§±§
üÜ\¬ R÷]
+©F£¿;`°PþÌMzBWiKð&/°
+hÈu yq£ëá±H-»¦ÕäûF1Ò_ª0\î²ÏW]"Î#8=)ÒV&ù.D<ÍLqÈn at llTJÑ)s Õ¢uI+Å8ÎX¯YHOÓè#yâI¯uªjh6ãÆ´ å÷"Wm±Õ9àFÛìÙ9¦ÓQáQpg¾ÅåtgxæcMU
+QÁò\ó6DD*çOçSîH«½£CÆý¨É^âøõ*UªnLbn ¢ÈÈ 1¨ø©<ãøI$#çCèµÔ«U©AN©*ëob9¾¢Ôº.>h«UþovzÞ¡Í.ÕçÀSàúIqEß ðí«I$vÂÕ$ØN_öBy¥ùÌ~4¥Ãí,Þé~ÂU`äycéQ8½hdû¶__ãC¬Íu¹2ÁçY/
+çâi7iqpA3ð8zbã¢
+õ ÙÎ5{Kw.còè«NÐh
+ÑC£!©ò-VÙñ."N5ñl65l¢îuf{5iuJsfKã*«n[Ò»lµ8KÒs½ám¦¸#×
+Nß®M$Â4Ò¸oó¹Ágw·Î)T°ûãZ³[PÍÄÕBËðèTÏ@òiX e¦!~@½îwÁ*ï,TJ
#â÷UÊ=B/°íþ\Èà+Õ«KÌk,kò p:xÜ?î<³Æ"?
+é-PÛºÌÃA=G_ìÒS$þ[L^´¢ñiìý3JÑ{|Ú¨þÞå:whà"Ú~MH
+¤9
+´¹M¼FB°vÎÇÍÓ¡Â
hS©l)Ry9jîk³ñ\Æî¸,`³îÖAÜtì¡ÉÅ<$Ì1
+ï"~!Ók.ä´Ë@:Á¨Ö-RÍ0z1bhÜf½ðz§
2*ü6!øþ,O~,ÄFfúŦÒ{çwÆÊlý.×> ¾O²×'V«;K<dÆK3qNFÊɤäó?þ
¯ü¦v«c$Ì{Ïîè
+î7AÝôMYåë¬X¡¸TGÄkÑïþ¶x±fY]±-Ôcä]¾'~ ¾h?aSârê÷VP`,+×ÈmÐTp8Òe羫È
+ÓdÆYõðÂqe¼NI;%%àñ@õV©S!å
+"<
+õbØÇ!4ðɾR¬Â¼*p´=/Pr;~6õ«úöï7H{5.£¶>UJYKFÒQ³Ñ\mG îeB«söaøÁ6äáóÝ¡Dý1þìÅøÞÓ·Y¹µÄªbî_ÔïK{LàaNyи²l?/#·ên{¤#È?.vÄL¤LΫ¹(m²²rJØ0*LiÀUbTùbêP¦uó¯3:èpÇ:q#+®ûé-,¹Üååè näYK~ák!£»7µÌ½#$bXÇ»[¦Ähü1±
+½c Ç
+s¹eèÒG
ûôHÊ*Ï mÕÍ
+uî.«$ÓþÂù º©°J¢ÑU(¡\XZãÛf&[Mñ4"^Euwnß3ûtsö¦çE+ó`}¢~58îÿÒR±Ñ¶N5¹
{¤×Ùÿ¹¼ð
+ ìRb
+ðå8áÄù{ãÀºNú=¹c¢QHûÖZ~!d߸°
üTÒ/Ó_Óz#jRÜBú>re3Îè-)¦uþ8®~Õ?u7¸4Ú
:Ý1g4å·õå¼fg¢«µöLen¸³g-[o&IIcüºRÜbàROÞõ êuXæýÔVÓWºCDdàHÊno3YàJ» Ý?}Å@CðäÀ îKm ¶¤l°'¬ºòK\Õ|,ú
+¨ÒøGôâ7MègØnü^Êbsß<
+Õóq|âÌï<&`ÚªDw8Ò/ö¢+Øô×qøÊØhvd)Ñ3U÷VWü³÷KoQÀõH*Kíç=ñ{ØÕ«¦éÕ¡ûZP³óÊeÄæ)
+²¢(§VßTúòY9ÒtBÇ@8ëáU9îõ$ÈÜA¿ÍÚI:ôúùOf#!äp!ß·*,TwÖ¾Þ1ö¤A´Âó+x¼ü+6n«"¦Jë²íO6#7Í ²æÀÐ
+ß·;ÚÆÉ¡}ûÊo4ÊLdWÐ2có'
+¤&È£AÜl
+ÕSìÈIçDª@¶"$ki§1ûζ@üØ1r]=|« .;¬j¯Tã£+{vBk÷2
qé9oIM¿¼Ö:FI<ï¸ybYENnrM
+ij-äñßVaNRFCÖ¦äWjÊNpô/LÀòUó¾¿4.¦îºÚð¤ôLX¬UVgM%¯tÔK¥»WÌ=$¤Ôcþ?
+³k~~!Ç)ªº9åIeY¯Û
søÂó[å¢)MÍJéÉE4IU9üIÅQ6ê{ja®¢2µê±!É÷WfL׺Îÿ´FàÛQÎÂr,°;©Å]8a83½ê
+UM껸ó¼¸Ò%ótMIeÈÐU9:ÎÓã¥öØ"ãÇ®LÏÔ»òKUì=åÄO0¤fmÿ8ç}ÊÍ:ÇØ
+ZâºÑݤ
++æ=OUO&Í!äúÀN¹¬Ð>ùf6Ú'«j¡lcª¿Â4ÍRý̾úèFyÎ°ÕæwÅÖR<_A¿ßÿS·Å÷Ddtu
sd}e·Â%ZÔYº|
+®îî´ûB®Yå¢aMô-ð
+ó®ÒK«L)íÙØCÐI:x\,õÈÉUuìpqÇ"P OÔdÉ`ÛòÊ&g*ÕÆWÜÃûgòhÓl;B@è8þÏÎ3³p·;~*«V¦ëÅzê#³¨¬ÐôÃ[o¦X ÏwÕcCÐ*}!Íeû6#Vröås{7OñAÄ
+÷}7IµoÈJ»qX\±ßÞ@½¯DíKO÷myó<_
2 ?O²}èAdÃÔÊ]êÈâAÉãÈ
£ÜZwXëÃ7+¶_c1¦'|ù"^ì
+NlQ¬<Ë;mïFàXÔ{Ï@¥·UfxÙM4Ön8Â2=÷vÕKIãâïÈ¥â¼R·Ôé{M¢
+TFpìÍ·Æþà©ø)bÏ k^2p'a8|ô»þÍÁzæäm?ÐV=¢
*Cæ^èLu$%m±Ë~ëÎÒ)t®´wMÔ´ü³`[ÏÔbDi\ºO{ñßë7T#%\bíî 'ó¸£<, wpLÀ`âý~úÿÖïÏÙUÕÙ\gÌ¥sØa8ó»N6¯%ª¨¶}ÌxK2(êYS³§
+Euqõf
+¹ÒTf|·«Î7BiÍê
+vD¥B²ÙÜ9^`^B;BnüªaY¿æá¸&çÿòÓz^Vh´µÄìdj¹à Ý®ù
+Ó;ô sBÕFH¼¤Qæ³¥`ê r¿É8Óðò¥×2Ú8Á0ªö-w/´ASùËß:_篰~yÏMI,Ag
+î¹÷Û£!®¸Óúß¼NZôý´ÊÝ7Óº©¯
+ ðÏSÜJïóC}ðáXÙsÏtÃygXÒú{óÕ(üɰ MÙàµB´E¥xLàÒôUÌqéʤøÂ¹±°;X"·-N¨ÁÁÔY\kÌé·eRd¾tê4Éê¹ßT=
+o0öiÃïòÀçõ4Û·ÿ D
+Àû.ÊUyóήyC³O´TîpŦüÉÐ}0o1À¢8ðFG½
+Ì'Ñ4|ÿÓBøSÎ#×t½ªÔÕ&yc
3ÊµÃÆ\Z[ño:EòzTHjÏIª ]×bç8 OpìhòUëu½¶ õοqos¹2 ÛÙÖyÔëùq¨u¥gÒþ×Ú÷@µ«½E%p§ºÆNµ*éB7¹¾SçíAg¸3²£Q}Aö,u¤çx!#ì$J%ÿlä×z
+Qû³;1
+§õÿrÛ|ÎVâàkWFÝKg&Ì0¼¥í/Z~OÁ8ëK<>Ç+[=
+úäM> Ëh§;ÙV·ÓÎâYÉaØD¢ªcÜvÒãt's|RÏ_ü`KXia
+í9Bqg ¥ .1eSi¼çy)Jí<6wÑ)~nw1yÓhàùær éâ}ëðìjñL,§ézåÍ=)ã ¯]ôÏäM_qàôð%?¤@=}Sij
ãGÕÊßv6Ö>ùÜj¨G)">G¾È£Ø¡)ß\ÀÕsN´«ÕêgPëÌ!7ßÿBAqÏwlüv4ÀêzÜíÞ«2¿µ@p¡Öá;°;ö.¨?+×aÀ»õ¯Í¥jÀ¶møÔ¶(4'?Áª¾ÿ·XQ©]Õßmexbb,L9P¼*5M¯7ÅÕjrÿß:@nu*û§ÀtU_#óÃýXe-øõ~UVV$-æ/»æÌ<DµM»_$'µêwÚÃÍ l
+;zHëíýêµ91µâúuÅ£ª)}³K&Ùö[eöÏõVwæÁí^ܧFéJøÔãí0³Ó° Ò»95 yÔm<ùÚ ó9©UJ
ß^F&ê¸>ôK&'í×ùêxûUÀ[
+Ä+v=<EónÌlk¶£aÍ>¶·¾eÍUàçÃàè·!ýä
+ï°Sð¢ÌÛH&õVîXøVtÒxÜÑ[5e|ñ5Û=?QVó`VÀ~h!CÎV[ÎB¯ð½/»4QÏúÐºí·ØAüYî!ÂÂ/ÜÈ{æVlWGRÑqwcâc0ÔÁ¦jæR°Ä,F!ÍÅý¬cÞ>@/²_HøW³ºùþh´êâøÏ)´·Ìô¾:äuLÒf¬ûq̲>bo½®T¢´Û
+ÈOª*Ôa=A79çs&Yp$yþSqvuD×Ï`Í÷è "¾n¶R§4l#Ôèýo&ÌNüÌøÈ=h9ÉÍ@©®BÚ¥:U)ÂVX6.Ä$¹FÍUãøîË\Þbdt(/¬"*MH£hªªg¢~Ì3ê½¾Iµ\%,}û¯zøÒGsÂcCËå@[
+Ùxò;>l|]¯a=ÉZÒ²ibÅß,
+IáÞ°|,ÅbÝ@$.ÏãJÜù&îÿÜ_¼>Îý;E1i@
+0ËR<tü_¶.Çp#Ge¤xp¸tÁv`a±5|¬¾ÏX`5FqQ¯rè1ÈÉè
+16¹tlMtk^óßMV@ö/ |ùn$§Â¯éE¢îÂt°lâ_:ÊXqO«b,FqÚÜÇ5çr¨ÕòÛáWÚ"àj¤âR@ ìIfv±É.ÆxÔ
+_ª¶,·ÁÈ-2Âh¹e^W%E û§!r1=ÓûÀO2ÕJ¾¼V ¬¦Õ§?D
+q·26ÙXÆ]ß«ÑëµþcEàM«èÛb9÷*°
+ñN&Èz¹Ó
+DñDµZ½[sJÓOÓ%X0éÔxÛ°]0\Çë)Zð&I¡ÊסQ"w¹..ÿhówÖºTôçYÜJ^¸CÖËÇÌuŪ@ÿçÄüòõ¶Eþ´XÞ¿~T7ÛΤ>=ë;HsÂë4º=¾V(C ¦ØZFU at ./¤BBè°[tµn»o0D'£Y´^Ç +]3:Í$þãë7¦ùeÇÚã©ét-
£3}^C¼¢Ï@ÿ*gÇ'ýºkR+rÿ~õYb¦#!e¢ÛJ~Ãê½Y¾§¤È9Ù°*.ÈN©z0Ý Øq%j`÷uÏ´éÁfÌhÛ!¤oÖXWmÑÅÅZÄòìWµz1éä5ðOû0Æ9
+A ,¹¼id
½õ«8±ÞJIâ`ýJ+=HÙ»üç4Ì·s
+j2FaùNj¯ßNÐGº¿,@«Êÿ¿¶@÷m ´¥6îÕÝ#ÃA¢cÍU.û¹YçC ¥ì¤AáGSGËLjSÊhëSRÀý¯F0-ÇM<é"´5¾ëáÈ&w3¼sîÛþ§l¥µJÀËwÈßðä+ jt¯àúlÂîâ[We ú->.vHYÛ¶o@tÐFS_
+¥nt0ÏS®Ó¢æ£4(ÁȺߢÇåÜCÎ}¨Ý[w}¯[ÔT8;¹¾1ä<«U-.f×§·Ûþù.
+uÇ5\¥ôWÁ{»ôõ4#UäzMEdTÃq14°öõ§°Ñ`§U¯
+}eýU6ù?NÔBtÐ1Y½zÈÄGA¥|·)ücÏ¥^¾S³|.ók¿Ky(Wɰ
Ílöx_åzÌl0Ò³¾¬ôä\PÓ~
+Lo#a4lz#¡)ï&\mÁReN&ËÐ ÔûºùûÓA²
+1½÷kBÍ ý!írÆ(´]Éâs·÷)Y!§Tª\¿ÀK ðâh8Ý4*ÙÀ#zïÑ©&üïYø¦åu)
;ã¦7Ô²SËAà5yàò5³ªæÀÏçóÁGäñöñ©»C:
+¬bü üò
+)iñb5qkðEí[êZ²¸Ø:Ü´.;Á
o[Þ>Ǥ{)ü\ë×B
+4&ÖíÀ34ÂD{Ä0ñá»Aßaõ?6XjßÝâgqÅ7~ÃÐXot_o ^þµéÈû2é¾Fn1¾(XÜlm*Tb²QDBú§ônníXº|
+ëzJB>2T¶¤z>ô?p6¯6S(LöOrîçúHÜ-ÓÆ>£*í¡«é1½áô0»CcàÂ59öµ£ò~¯]k¿ðÜ¡?ÅçKÇïdpí^¼Äè ÖõgBqµqB9×·6^)ÿ¼är^]æVKeJbN\ÓêraÍ\6;°Å<¦É)a½«}X¯Õ÷²Eâ§i%ÔÔ8lÂ-,M¢!mw÷¦y&ì±ãßÊÃ86`5~hJu*±¼:¯äRÄ!Ú¼8Õ²HFwg\ÏXeb(¦|?A;@õ|£ûáÆ±
+~kµ+ at Rë sýð½ó¸äEúì%÷n»:}K:Ó··w}+Ý¥£:Ú
+uÊmrç;P(³µÙÓç§ Ôïó#cé}:¾øææ0a¸D·Q#I#mYH
+z²íºÒvÝý!MA0èGÅC>`Òe.|ïJù>j_#÷Ê9V£àöQÊZ0¥e|@¥fe\1BI×¢±`óJö¡ÐL)*yØØx'ö$!åS©sÆÑDÓ&I\q¦IY³¥%£2<evÓîðÝ#l7
+RóùIÿ£Ä__ݽ6ÑÃêê[¡_Ã×ë°pпÒíaÕ9B¶±_pFB¶ûÑQ
+×ûÚ1
+¶åz¼w_2zdiínúYnbÍÖ2 ©ÇÜãñqìÓB$%¶ªZGzüÙZÁVðè N¨btòÂ× Þîxh¾G¶¾|bH*K¹Ö¬a³ÍwÎ÷Ï]\
+~òÙ%·ÅH#¬Z{µêTÀ?ît ¶ÁaÍ¥Ëwn¶Wå¾{wÍET³D6¯éeL³I3!&LÏZJf(×sÙX[Iî=5þÈ6f³j©5Ýh6èoVûku"ghcö5î~^Y!\q <NÖ úL9Î~;ÆNBòQyø¬;ÎÚX¢Þ6%ȲÐѦ*æP9]ªæ×VQ?ضY?4ù§¢¼Ó·Í^kï
+ã¾ë§ôP§2N%u.ÈÇGËÁ_éX(®8.Ýø +×ç¤qOã(訯¼«ôahU*Ìóï:/Ó-Okk¯Ëe
+Ï4J-"Yåow°µÈä!à®K>Á*
ao|àÒ²-í%î l̽*¾÷Çñ>V;Ð$yËÂ9ì
+á;¯+µõZI-Õµ ã}'þÉ:z¬Ö7Ym&g}°ÍédjââQ"µè½.Ó!£©5³PÕ¯þYÈ`ö1¼½M¶È)ÖÇV.åºÝö×
+±µH4
+ÜÍ/~·TÂ'ýoaÌpº¤ÃTìÐ÷8Uâ}Ì
+«Í÷CóxSt[ð9¯,hKò«ù§i¯0ìÙqÑRnºÔõÄóÈ`Óºd±Q(Ýð/1Ñ¥<k¦qgö¦äìcÅ)àA|R¾Î¬æ<Dô÷¤AiÔ³0ÂÖÞöyàz°ü2WP(ÊQ?ë¹Éï`ZP¥³±òh®ûyÒ)`eo:Ü¿L-»Ð:D|K`àõ4Ò63ûëvUë"°Vټ஠p2¸Ù
`w9SEÏX÷ÚõUeàcM¯àç+?Ò&¯þØ)ÊNç{â&Òÿ¼¦Pº=ß
+¨ãÙºsìÇ z]©ðûVÈVÁ]ìÓª3Ä?ó¥Êtz·ãÁ}W§=4¡bGÛßË)¡/ú£üäÕ·l~<P¾ìV¦áæaBǪÀ¾øÖ¥VÝÁí®ìª
+¦·ÄPFÜm¥BI´rØÃu,<ùöÏ0§Æ7v½û!` T.L5ôÓ`ÈH
+àGãr#,Òö^ÜEC®6ãíç6ðz?Ônt]Ó?èò°X±]ð[nEë·Pú³èh§;b°G°XM(ë3ðüÓ9eûö\ïqê¸Úøx8$-ZÎVWÎ@'Y&øý;2«©Ad MÙÏoã½6o¬Ä;sØFZ%.û²+éùÆí(aÖÞ¥&͵åã%GduGû߬B_V6榨×5eÄÜÆ_tJw+Bñóüê:ÌN÷X_)A-êÐAðWµÓ=Rl¬7wÔÑÓáÁ»³´Ýyj´ÔåÏDz8Ø·0{´fÙ(¦)z¼±9¿jÂßcxO
+嶬$ÿ£Ý`h\to"ÈqoÅŤ>å(ò[S½£@2e;À®/H¯ìèù¡?¹Ð×xep²Fl7Ø16}yóOç̺(B&<¾Ã\KzÉR5â
+T
+6ø£_UÁP',èÀ'̳{ì4½d<z«mTEÎF¯¦UqxI++±èìÁÆ¢xz at n_¦°ÇòVÁÞ\5ë7|_îtÊÞ
+èj¥Ä°`.`+7L÷zøn×A@&Aÿ(BÓ§«ßÀ©ö$Çä¬5pYË5Ãp@Z½9ZkD[
+HÕÎ2Øû@_îYq°/þ׳¦|UHp'±86OpÍÐñßõ:òðHÝçB1 yÅ&Ó<ÁM|P÷2OïBv¡'²øÔ»KûfÂι>kÊñcùý1>L>£ñT Ò%cñ *k3M²Å~N77®pùÏÁPÆÓJ¼tÜ]Íݪ¡pxµ_~ñ·3¹-²Àx¢Y·suN¿0û½Üj|gºZMYNE,´{.±{|BPLØhÇAÎý+óÁBfÅèÌW6°ù v/VÄý°æÔ¯.6PWî\WáOÖ\MºQg1Ð^Õ
+d9ªïiA~ÒÐòzÉ)Ä¢x,\ª/>ý£ö_yÁíð¸lË[!uyîÀìÎSNyíº;ãâ|ªÄÚi¾ÀØHøW³U h{?oèª]Óö5ÙÂTMdÂq×_D;7Ä÷Ú8Vú¢~Ye¼\íÄ@kk»pÏ0ñÆq¼Ôôw4êѽ
+}úÄîáòûÑ9¸Â¶GêíCO7¸MGÔjAàK1¿V+oüì#V¹¡¦772xµé¡(«=åOÀç1ÿÀH¡E§Ó«í0C&CÙm¸+I|:ÑÚc¢²v
+?g¢¿pïêb8Ha.b^ËÛ}iÅj£yÉ
³_¡RÂÅs[ÁTQë{BMøH½QßËËøKëµåݰ]¦]^lê}X>Dî'¹Ç$«´8ZE(ß·ÊXZ¢ÜÇ9O
+a%ݧ/åçb¾¤î0×ÏqyÔØik1@¶ÿD"õ=ð1ÕGhùõQ\Püý§ÈBjävÉß_=ùÊÏ>Í«L1yaÈ ³¹÷ÂÔB.½ßh{2NE´][¸+ØÖcIV¾Qý6B£n"ðýÐͯÊÎ×, ô1/q/Ú[Ëuuµ"ô/PJîULÆFqD@üãÀÇo Âbí:0Ú
+s±ÖpÙ=¬sPûèU ½xóß]cÆÒÔÍ]
+eèè®!YÝþûv%sH^÷üH¹öW<·ÿ:C^Ìm£`=ká`NLH'ë',cÉɤ5ýUìÜàa;!óphVMµnØE¯ÉïÆ*'-^rDð)dÂå~®ÙájUéÁ MC&ÿ`=ãõÃóð.;cåM´·jP¢Wamï
+ß*w©ÏHkå ¨Ï²tª¾
+ëîCÂÀ·Í¿ ¬³;Ú4f¯ÚÃZN`Jª#E
+)B8ÞýİäÐ×Jð<eÀ²®~kpVxU £CÒK#FV
+wxW#×~GöÓÕÁW¯q]!Ï%*TE:,¤ØÖ-qD4oF²íÆ
+ =!ßÈpØ@:nÕiõÞø-{FdÚ½8R½6KÝ2z¬nîA+5C,Éö 4>XùÕêëÆôé"ÅùùÕ?4T
æ"¥umÐSë³
+/¯èð_;Pm_5æk7ß?1#£ôl¿³|QÍB÷hÊÎ0©bM¾;øMNºÐûwjëtqðÍöx£ÀÎÊÂX$¶D-'®õÍN~Ûùg¬¬AùBq·pJ+WÚÎAzY\ø6$D :¯ÅeyXn}A~ÙDñk¹5J¢*HùZ¢{«vv³´!8nþñ¨@lϦO;ÈÍLýÿâ1=íI.kB:X,KruX*
+ ÚøÎÂ^,ÜHJ©KìyªO÷à/UZ|ÁÏo )Ö¢¡·»ãüò ÊaÍÌþ>~GùoG
+*º4®s§ IÆeÝ· ;@¡íóÏ30ÞúyÑÌBËË_çBÐ*¿r¹Ú{MÁôõÎBüæekàßmmë&6ð0ìëX±Úéâò(ÝfD}§ñêè]I&ãüÈþ3
+dÂLÞ@r
+ê£(0wû2×þ´ìǾk©ÂɾâÄ
+ßPÒ2_®VDóÿq¾þQ÷'å,cż²Ò¥K.Þ!°&ùd}¡ç³
+Y$áßV7Ê~&M}¯|p;!³@42
+'Fuó`¬øÒÖAÕÏ]
+ *Ú>oBDcN#@n,òÍ$ß>DÏYr;¶-¦r<
+#Í(Äç®´µ{
+Qþa!p;f)¹Þ
+Ä©¼Ü_·éf@ß5nE>¼Ùv¶¿É0²YÁaØ(H¶ößÙÂ;S^Râÿ®t²Ì\¸LVU6*}ÿ)A&æI3±Kkë¢_NtÄïäùA*^ù<±B³µ)cQMeJHÂ$1ZJî}E*Ïr
+ÏSæ
+ã_²÷*]?2±
+4½MÈl¸ÓѽÂY¨hL6=ÈàÇKæ¡¶{Êf^[
+]³û.0úæþ×Ç
E¿ãW¦eÿçÿjq<PI eycݯEÕ1Ó
+
+ÁÑÿÛpÈ
+Û@^0U ¡æ2¬BY½»~suÍ@Þ¡õ´iǸÁ=éqÞÁ´Êj"¾ëet¶4#¯"ÊZÚM\I8Wb¾MØüJw%-¡HÑô0h±Ì
+! & û)Ô½'ÞáýG®Y®
+oyN]~¡©½éUIOC/Ц}¯i¢NApi´ù±ß!9¿Éé '9À
+˯Gé=tYðÓåOõ¿ø?cJÉ tÂìùÓpÅy,`lFàücD¥Ì_çè9íT-ó²Ôó ãKeÎ`ñ¹5n>=!Uüh· ý,ÿÜRL¿2ÛíPØ{NÇýÉëåÔ8@ÝÌ=.ø/£öÝ<Ò|ÐnÛØî#½vô¨2yhî%½Mþ$»¯rC}Ù²ó«/à¨ìâÞ+AÆÌmñt°¨
+nWܽ0±p`÷ì~b7Õ
+ÁL[Ã3ïQÉú¥b{«Ó§¤,|p¨èÄøã'(Ì%äý¾ }õ*H¿Lî"Ý!B4uCöxÒ]1®AIöúþì
-Ð"§]³_±1̹H%5ÕE:#NPDyXâl+õÏYc³äãÒOã¯ÑÉÿdT+8bëL´H£ø¨èCéÉ«²èÓ(Ôå}¢]~U(ÎÔG墹]ÿñ«®4¶K'sÓ'\U~ß½ÄWR³ejI0és± ¾+¹] kvýESþ¤ª
´É®£4ÁK§Ì÷WÙÄ]3M7 ¨ûr½úPóÝãDïAr@ÿ'áüù)øyjà]Gðó·JðÂ">]Å$î÷IÞÖW0²§6´ul/ÿ;8
+&ÑÃÖgøbyâQ2Än,é)]ó'è^ݳ=T5è£\-gL@ñoèrüïCèñMKz ì~PA¨ìxøÁJææN1;1
ù8~ìaÓé/6ùªA ójsNíLOûwð"t¶²g½ðíWe
YÊi¡S}{4)?7ãð?({ñ¥"A b0D'- #èQ©ªJ§é奮6]I>\6GT3Í:QLßCàÈ[.ÚbSçT=Ö¥hÙ*Gü}'mj«pÇÔJÍ«pezDÈst3jìã&KaT-'âÏêØù¯KK騾ó*ìïÎØò¡Ï?°(°I´õßà~Ü
£BÔ@Ö\þrÈ}^ìû2
+gõõÚ<ãÞAA½çåÔ¿Õ3.xÈNg8 at e5
+;ÚÔ$ù#LÃ3T¬Iù
+ÿwêûz2ÐÇú(ãj+JûA».]MéÑËB
+Z6´K-e~2º)Jàh÷>·8~Í7wËÏ¥fÚ\rEÅL»[6wøfãy})fþXf,aR9-Bºz0©,hFÇþ:
*HιR×è
+§ã]õ¢dYünw)ÊûO©ÐC\ £Iß
+ÛÍsNÇ
+ù8@ÓÀ_®G3Q«Ã®Wõ(rÏWv èÖêßÒ%øåÈ«>@A6-a¾Uú¹rt³yÙ±fô9¯»G
+ÇGY
+¾-XvÛe¦º£ÍKèÌG1ÛÍϦÀWÝðãO)5Ýk¦NM\
[T;âd$¡/
+JF3ÀAå_}ϳômm
+dù?óÎàð°*ó¦üý8zÿã9àä# rbÚËý° ûÍÇËÉs°Ð_QFðö{|,½ßÙÇØä±#ö_.Äðµ@Rtø@=æGtPfüÏOwâéxÚyÏ¥ v$o2û¶
+¹úÿfbF´¼Ö9ä'¦÷tr¬Æk&o\ݧ~4AѶÝr°$]S?·{Ï6ÏQpfcºVÀóû<¯¿#|ÙO, m£4Ó%r\©Ñí¿n°§bè#2VUÞóǽápyÈw³¶u\ç$Ò¥tÉ
+ê°të!Ü]|;¡Æ¯·a[*&:
+-àq´ß÷»;Úé*8d?Çq3+MîrË"Î"¯¸5PØ
+÷¬Çn2tÝëÐqöÎXdªà9«
+gæ~çÑéjµ>ë¸ÇÁk³`~?¨å«ß_
ôäÎõðÖ&ý©C%ÂU¦R ÿG7
êݼ; ÚØ)yFfRÇ?Vc~7eyR¤gÛ°7H#,êé!=#
+KØ·.
~MÉ*@x£Ð°Bð¨bÿ)δ|×
+FÌ
+v[ïÍ@¦ÇNÓE7±>Ë¥Õ÷°ÈïÂâ;.]CüÚºÍØ^®iþïÈGì:Å·WnΨsëò¿=½¡ÿµ0ØË<Ô è~Û[iÄNCí³ üÄýÅÑyÉ+8Öµ+G\>Ceúè×'ß÷VH£Ö|ìäG
+p1 þÔ1þm$5+[É
+àjÈÍ^`p<8IÀguÛ!ÓÈW>ÑÊX
+³<=x46û
+¨<ãÝ.ý^8FöíqW24c½ÌþbxsüÔÃ*³T)¢XÞ²óαÖE|WÚ×Ötr,fÿ"ºº]¾/ô¬Õ!ÍLèZ©ÜÚ§?Esý
+Z©Ý~,µ¶DLO-})êß\!n¾çÝÔªúð<¦Ö =Pzp¯ø¿¬¿m¸U Ù7Q»^\øçU»§fÎV«Ó¯ºÉp¤UóiÖÏà4y;8ÞÉNÄ$Ý6Ú®Ñ"éÈ¿Ô2õÊ?þ2pðãçàÓ%°c¦(ll4`
+,=h¡HpâícîYh×ß³ú.%81 èÇ}ãqº«7ÉðâÔ_øeYCç±UF¨Û5ÙqS at 2ÆÅ¦ßù(9Ê®¥BôTu¶¯"9׸.ÅfT½¼Èëáäà|lʲµ¾øÔAAWð»óïs$Ëo-^ü½*¤ºçk95%'å ¿côyñîs¶ô̤lw¹xÚêë\¹.l¸ÅË7A
Âe\@$Âatì © ìÍ-sfÂ7ûÙ>{ÁDeïm¸-Ür"F÷ñ®{7 2f¯È
«F [£õt¬7¤'ÿÍ)ÔL¢Ã{©ÊÙÖ;æ[;S{èçÇgÄ߯óHã¶EÁÚ ¥Z¹1Ã
+Y¹6Ĥ9Aàé/Cùà<í ÏíüûMp§WåKÕ/2/\Õ´}P
+³\:ùa;OÝQ¿Ôj?²âÎRZñ2§¨gjȪÞÎ4¦[nD
+óåúþ#ö &ÉË©ÙË%
+`P#
+Æ$®àÖ ]®þº+'ÞäÙ
+ÉÿK3 "D±Æôì5=8Ïÿ5,¼,
+YÏbHMÙ-=µË£Åá0¾8=/·9qJËS}ÀP¬ë¾m'0Ý=ªG0¦lãÀËâbD<®ä´Ðȵ#æúز0µ&
+¡Ö¥Ò×üQAL?E)xÝ"ÐÄßlAòxú5µ[Z&#£ª1 æêÀ¾`6L`r¹üHÕKBϣ̻S[
CNãÕ>HªÁþeN ")²y
+îùË=okuÄWɵ!
+.|:Bø\. ÐÒû|UÙÓæ{|£ýw$½y7ã¿]r·è}þ®ÉÀN¸nÅ=éI{`ùI,Úç¥è6<æIöý^5î f¼6Ê&§å¥µC®ãTø³ÕØ\áÊ"NDл¶W^CnSQE1¯Sr
+¼.CCcæ
+@õ¿
+4c׸ÐÉÄHÕ{1Z¸E
+3À/Z(ãYÎVD4f¶ºs#cí
+ÄÅe
+¸àª" 8_h}Hd Y¶\ônlio7ǧÕÀ±Î6+[¸ü3²ï6Þ¶0QÚÔXÖ¨{
+41RUÛ"bñ"¬¸Ú:Bváí¶HÀñ5%=l F<Ë]/c°F§Q¾-9L¤ÅÝpaó«ù*z8R´È÷ºÔ½<Æ
+
+½d$£,¼Îû&íI¥'pÿ|ËN
?Äè+ÒrùwdþfàZÐa2$ÍEU× E=ÔÌFâ^HîÕÝÖJx'Cut§2Sñ¡a¦Pa©{$Ø-nfA8tOê1§´põÇ»Iö
+HÄÅÒ]ÊvÖ>dÿUP½úÕCüäñÇgÇÂÞIèÝo1þG
+]Õ¶Îa
+¼Páÿ®ªÃ³&è÷
®£Ëá}D+ò
L¾¯mP÷pAjÄÖ
+#ËæFØX2;nß9ÉôÑ6iÆ$2åqW¨ï\ê´Æ¾}EXD"HäUÓÁºIÕÉvMºcvÕåµ`N<tK9áºÜ_èÙSØ»è°ôÎhr[vÒ¸¸êI¡ÊHܾ<Ää'Ï7BmÄ3ñÏWÛ»%¹¶W¾[-¸×2µÄw=c#zUÛÎ0m(.ÑPfMÓ±rËhäÓQuÔÙl¡1í3³]B.2sÓ=,Op¤ïPiGc6
+ØC>ûxµFNuIÞî.·m&·IÍ=dì¢ïVÈ<éÞOxÊS¦{Z?{(}c(#¨\òÈ0^/þÏ|àøÝðNQû ÷C~2i óÛݸÑ1ýÐ4YÛ¥àK#8W]ì|äõC¨zg@ò½@ùy6G*»¤4pq¾å[]²5fÄàx,µVWq
+1÷ÁØ$}µmÙRQJÖ¢Ñk+yX§àyª«8ûª¹og¿×Ã7Ø 4 KÓÔý8¡AP²WȧÍ(ÊMMú±E
+¿hhªHäãö:±Õ" Ä
+~ÿCɾ©åwÃé÷ |æ_¨Ôì?ù_ò`?eAyÏAäË$À]j³)«ÄåÍ9*)°FZVJH²/¾ü¼b5< £®°ñ½ðNÛ¡ÍOý:Ê oaý!r¼Ü+¯ÅcLD? XéìÊ=±I{)!&ú¦Òº/Pëdjz4¹}ªS¨7ÀLüÍF²ß÷ żÿñ˵¬{×Ò5i'If+sn#ÖÍ;;¢ûÔ~s¸q>/ÀE#ãÆüqä-§Ø]+LD
+µ
Ûw]Û;äeê5^¹UJx8Pøj6ÌhU¹Ü4KYÛ¶7)°6õ.)Q!2¡
+];7ûïÙir»~xRfÌÞ£á8N§£Ìæqä´6¶ ¡·Ã)ülwfhLucNCÿìÞþ íÈ# \O°JÀ}3QdìC3.lÒï4tÝQùÁñ½Ûl
+ý Pb·Ñ×¹
l~aó2ìå`&PPsc9Eèt\ úùòõ¥Ò¨ë ÃÂÛ:W
Z7,I8<_
É®cYp±ÁæÊÐ#ÑÎò®,&6A¤nÊP/¤¿ÖÒäF
óõ4Åq¶HÑ3ºïåt!ÿ-U(åäáª8§s¸ÙdO,FY2êéãXeM_À ¬;̹LaÆöG!u¿l<¢Ã{½b°Ç>ö©Ðê^erb¾íVì¼s7×w4HEY¡î³&pÏh¬»ñ¨§ý`ø
rc¡§Ê<>[ØVº5ðãljóñ¢øþrì
+ö²MÄX\Yó\¯VÚh[YÖî`ø»¥AiÐÏØÛâ..ýס%4½Ò9m{W]ÒÒD"g:nCWºjÏvD\Nr¸ fÁXÇÌg§èµc¼¼'Øê§Þtupí¸XùIý1ÆÛµµEÌ ª³.ûÙûX½mV,î$Kl0OM½îÅ(B2 ¤dâJH3¯µq{:¬ã~Þux!L/ºÔãÊPê8(ÞÎþ
+FÙ«1ã[5R8ø(=äXhÈ;
!DSþ0¦5Qܤ.ÊV-ëDzå»1Z$Á¿uÁ&±+Î`Güié54Ë{ÖoQ¼«MÏÏàýc$[iZ
+fþSYý UsÖ%_-"ÍÚg©+/L»snBdºM£a8*üõÚî1Ê|ó®ð§65ZÂY 6çõ¼©¹$ÞóPHßp º£ÑsðPàÎâ½k
>S#LÝ{#Þg*Çr
Ìjaõ¥¡fd
+È̵´ÃP«ÝlÖlÐ_zÁü
+ê\\Í´ìL3Á¦þKÄ]+yýA
+ì´1ÜÔPA>Ôy4 Ê$éwDV/ù~[T,¶{³¶v¢ø9^+L;û4¬ô4b<ÓÈ7Þµ< ÐËYá²:!ZshX#fÍ)®O;¤ÿqM4#vãfÀGXIeÙ[Þ£~9g»
+Y,»IFlØ8å;[Â!¥3MæX at i¼»~£#ú¯%$GôÞ8*éТë4)¾!¥yvÇôwh]¶ó"Úß?âq¦¸Çéf¦ÓÉÊS¡áåRÛ9{cUìó>,]
+Æð¿÷irf?«ìxÁm¢ÜÅTËPé¹RÆé1C[&ÎL?hê9º¯óg sát4¸äÒX4|³Îç²[-^q´SJ0²Ä²\§ëî/Æ/G¦.úVÜsv&n.-DÓ§øhÿsõVn
Eׯl\ΪÄB«ô ËHÇ@ù¤vcÉf´
+³é
+)Å!lím§Ù³¥§_«WnÑ6ù¸-âr5ØTv2Ñ Ç9ÂA¶jõ¼é:ïv2~éÒ5qHõßµ¬+1Þf9F¸¼HÑÑ<g⯼'IÎö[ép¢ÑÜÞ$$49fúÿÛ©kÀÀÆ7q/UeN,lè²ÎKrI S=C½ÝßXû¥üElÌ«)CZÖ¸×9
+ÿ£Q*lÉÀO>c®û±Õ)f^ÀUúÁéHµÔkEBËêúì,¢ÉOl>zWã7PFE¥UhÕisÕº ®Sx; Û²
+ÃaÈ¿M(ÌÜ
+'"$Ðc=ä
+³å4±ùTg>ÛI-@øÒ!Ü0\:³Äs³þ ¤Ä
+üãâÝcX¯g¶RæAðý|Òæã9é ľ1Úc}?cL ¬_Ãcסӯ tV.ªÒÇè¿9úÀLW3`¢D+{'l¦W
+÷KOsÏÅp?"£ñ8תä}¶o
+¿Ðó+Ü4õ÷áf¹èÿ5¿ÏJïNnÑb ÆÜÆPÿØß6ßwRç&m 7§'*ÑA4ö9(2~¿"âȺæ"ZÕ¹6©
+h£ÖVÛ$åê¢,DÆá?²»ÀüÖj²ë"÷Q¢cÎeð:>aSÖ®ÅÕ] üjR£éÅýf¹
+Ò8^©ûs
+¤½Ìáa§×öl»jæI<D5ê[
+ÄÂî¡tÕÖÂ(©êMá2pZ7L±Fov¨ùí°Võ&¸ß@ÖËæ¢wöa²¼>[˳R}z®- ò@
+ïÃ!ÓÃãÜøZ¸÷ýéð¸ÔV¯XÔæ÷ü{l.´¸è¯ÞîC´Èog8ùùÌÜýÐΰÃ*çL3 4h¼1lSI4 :¹d¡obouv°þ(ì$åY0|;#ÅÏ
íõT±)¿öúü¥Ði´í,Û2"±°ª¸Þv÷Ç·ÞD£µjï1$ãw%A Ná P®ïÿýÅ_Êom,rn\>·ï1¥drEX,Rg/
ûD §ÒÒDG%F-£çͲX§Ì2=h ÜFLÛBl¶Ù½¯ßrqÙÄYËè¤_9ÂvÛ
+fâ/x:éjG¬ïty]'ßkLxèêôAPO¸ÓQÅÚ¾"+¬,É£A¯D9]g
+Úï`ëÝðafcDÊôrET/ùRÊðÔD>M[A)ÑjqÓ˰½Æ³ÒüæZÄbb|äYÖFÿ*©¨MÊnË}Ðy
+"¯t¸Çfÿoo²#Í 1"Íoº,v·æ²0
vÇ;þ9¯XØíCz9jXtòç7*5ä² rÕÊØñÃhnúMd£{ñä4«Nùì³VØ}´hË
+øeVêFVu2øZl#6g"c!±¤³|*ð
+>,?öø^¯þ¿µ/x ð² lÖ!§xj¯AÁ
.¶ºe¯A|z5ýîIBåWo=©òn1Û¥)÷ð°^¯ô÷bþ§æDäå¥fuǼ¯Lbä Ýw®
+øX<^KÁÇæ
+Fýªq@X°
J5ÒÓ
+Üx®cB»z¥%ÊdÛÊék/ `µ«÷²»E¬7VÈùB :1XrêÿØ-Ã+ îm0 ÑlÆ µªÓÅv¸¿q¬¢IbÅóô-~dkÊ@_#¥Ø«
+FÄ®î¬Ã@ÆØßYðÝr_üåÈSàÊ×r§1 SdT´OFïôäÙ*¿B|~*tÞ4 ñö6eµâ%nªvbÎw
+UëR
+ÊÒJªâzÔÄ|æú2£/7~Û¡)S·IC· ë¥ÆS@W*§h tD«2ÐñÏj)Õ KQ©Áºà$:C×Õ]5IãVGÃæÔ`ùÙ¾L,CÀ¼éóQfÉJ7ø¯Ô@=Ü«Áoö9*é5f·ÞÎî;®Æ£Xø¬BWÒ@%*ÂMªA áôÐ5W¨Ím£YSßÎÍÞÔÀÜ~
+©h
B®h=àbN6X×t.¬rbR]ÍY&¿V×Hõ
+\RÀ¦Ó§ëÿav¢-ý¤ÎÄGѶÛNT¥gj^§=[VYÓæBkûJ*«dÆ~²ùÜIw^«ÿçAA.«8 îæjâ¯Oúë_JÂkfÞ«xZ~ÝP¬ûÌ÷íåGÄ>5tê³ )=¿¼¨" âÛ ¬«nG<q×wÖ¸R<^WwÑk04}ÞÇH²&ß Ô.^\ B¯1{×xý ºzÜ$©ð»ÊtD©ô>`Ù~éÝûEifQ§ÎR 9Ãâ%gE[ëÁýþà÷tcÏÞEu0èÖM#ªkÜ73õµå³Ñ(Ó3ãæ¯y6¡×â6*EvÊ¥èì®g¡Uê+®QÃð V\¸É7ü\ Äê¢:ªÙíʰ<9ÍGÜ÷ë ÞóÚs ì2tµzSH¦9O[QBf«
+kZR 'ãèôÍ=ÊÂÈh´æ:®Æú4vÊ ¥ãbJ#Òèô XYõÜk4Z´F1ùàÎß·¹j²Ï¯±7ã-ØÃH|¯FrÎS;¦ZÃãRæÃ9¸ ÷ðÞ¢=î:áË^ÒY~2rêkBK}&tÖ2c7!^Iyc2Éûܧ\XBe.ø×æÅ0ÚhÍÔ©5MJG [sÚ)Ð÷´î*ZDu
+0ÀC`¿]îYêB×Ï6EO°¹ÐÑú¿ôyh³y³@Ç
+è/CDl&Anâå"_µñò Î\4ûyBÕ±ëÈ·ÿý
ú±rQòé·§Ï`ìÀlÏû[ÌÉsûµä} ÷`¼{ÔHèïF¸¼?@v
+(Ë(Û¢¡kø°gÏh x,Ý
½Éµ¿.zÔ»ïÑ89ª\t½È×/mÆr{>jÝÚáÞ¨ÖÈG´;§«8#9»«ÐLª89èÑ=øÊFIÜåþÔýÎ,Z×Ùe¨ü±bE:ÖÅèfÑ>þ\¯^PuDR&Ý??0È*\àÄiU|^F#ëí_í¢¹p`lý#'ÝáL+zÿ¿àÔ(_ÏÇÅuëÔsS£2ámËXyIP¤æçÝ_Ö8Y0ð³!-Ò·á>}ç «ñåì XäëdÚ
+z¨önNF5tq´ìVz:>±¸+e#CÑÇ`ß>
+}Y*PuZI¦u<Idb½
+E*oçY!I0-$Ìà¥ß¥Õ%¯×#×vÆÛ. ØVzÑ×îg>2¤«Hc<1IAyaý[=9è¼
+mXÿΧõe?QìÞätg´þ*æÒDÔ¿[âbWááKï>özÝ©Ì<ºIX=è÷¯µòø)ª_!*aÒ÷Õת+´P\öÁ%ÌIMûC?RÇ:áe§VÙ¯©v®Òu«ÈrnÒq¸ïÔdÒO3Ê$öºRX¤ç^ð²FSVPHqþEÉ'¯®õ_ã¯í44ã
+שôÀ}ÿB]6þIBt° X;ô´/»eR/C©üçÓ
+0
+»q
+/
+5
+Þò»#à5 ÙH\ô4¿ÿf&K¹gÏ{ }&'\.õ¦l_ÙáWNPöWf:uüצÔnu«!Pà:i ¤êcêQ©v@ª`#ï$gô«¸7°Vl<îwóS¹¨°»%²W@ÄVª¼Xw_ê«`ÚZb*_ôò=äï7Ø(ⱿDÃÀ[ÌÚþw° ITPÍeÐPµû¹»MØñYZÁ"²4,ð]1 ý|ºCúöhP`bxh¡cr
+!ëïö
FØïïLK¿é
+ÔrôveÒ¸ûKLñ¦éÊ䤢Ns:¿ØçÑÑÝ ÚÓþ6tSõFó¥¿ÂC
ÍøGï4
+Ù+¡ðѰ£¥ÑÅ%±>uÑ¢W£ÌÂöãÇÿlÅRYcp¶Ä V#ÔÜZ,`ìî3
+Ç»|pZ:Eå"{µf+Ö×ãBeµ÷»
+Oö!þ=û$gµ6k}d¤Ã½%i;ñzúpÂÔñqàóGÙ·I¹KvP°
+æp7ñ^Øk]N
+»DhR)vHàÛì(·õpºþ¦4@?¹$º½uÞE\Yæt·¢P°ëgXÂi_ï¦÷Cûp:ÿPárÁ²:Ku#RÞùFPÕÅúÔö9*VÝÆ¢µÉÆ\ünà{üÌ1P>P|AØû
+%¬:Q¤|Æ\xÙåß_HåfËÍ¿fhã¿TªÁèJ~r8ó½yø~ù÷)ʨ "¹6éGu*O8<ýÔ
+2Ýk£Ö¬ÓýeíOW
+68U¤ÆYûW¡r>¢ Kg6÷OkóYyýXA÷sãÊ
+¸PYü9 l#øÕ?¥ßõù×&ËiÆÇõm#(5¡UÎOHQLý;ÕîL¸iµÍq¢ó-ZÆú£Á¢C¨0¾'JYI¾àFË®Þ×jGämë ^奣rMsñQÉ
+@¤tY]U£¼la»0Ç)Öó¢5u·®¹t@¥ÝÅ̧hÎb#»Jv4\6ÔA¼¶AóRµ³bÝ`9½²Ç0óÓëOAayFA¡ÝÜBðóÝ÷°W|Ä&X=Ær0&8$
+ghÎaN3h`&#avz¼áOpË(4?ÌeXÌg[uÎTký¡¨öÜêt
+|ÊÛ÷cüêK/Å=aù°~ÆQæ$ÅòMv-µ~¼ËÚ0á'\ÓCpj«Üµ:Ø ÌûNÄÿSN³¡×urÚQ?0ËÜ;ÈYøÒÑ8²¸
+Väñcë¥,abòÙê8¨bHÔO'â[Ê7oD¾[º&rbðÖuÍü!#×BKªR®Ý%" ó»l
£=Qq(Ó"
kEU»ðÌ»qÿg£e¢Q3©hTìáhì9-BhKó
+öCÖÆ?¥6¸ßJ'Gºjæ¹T·©r¹[5Åìj\|æxPSÿ9b¤¬rJj2çNK_7NòË<j¢þ®X µÎoÛØèàhëé²¢\ÓÅnß*!DÂze¢ã\¡´L*q
+cï¯ïa¿Õª°fç¿5[ÖÕyC/\ÿd_§ ¼éW-*ô
+~æÜ£3äÔuë
+OkíWÁÙ¯D|0^qC)kãêSàëÓ²øk¿/§ÁTÚèrß·4ãfÖ¨_Y&uÿq8~A!äɬàëCc³yÍXتäÆYåeÉå˲ӮÖK¨§6^~UúÇÀê¦üJª¡t=áñ!gïØ®ÃCqOj®Û-`T ·ÎßHYÙvÃ/uÜÓEØW]Àì/9#Rßó4G(@
N9ôÎHì*JÄ\Û¥EéªíbËEsFÒK!¡íy·\m#Wo6a@yfÈDÑýn!ÀªøºÏD«¡{AÄ- ½(JñÿRrö«ÔLÕíÁæWK;°Í"Ó-¯ luÄqérÄìVl¤¬
+ñ]äTaTÉÁ@i¤EhOµó%îVÔ0:,ÇxuúfE>Gÿkx£Þ¯
J»{c0Í>sݧÒpÉè¾vÀSĪhèþÏnÍë¾<uËET at x h¨÷7Í`Jðcöç¤7ó %íJUµUC´KÝV²A4ª´æiUß/kÍNÄ=Õ^ö$ô3qp±N:ÑÕSy½²Æ[G¢h:hkc§£+IUR¢»m|èĺ¢GªZDÎNæÐÈ"Wél´ßMÞ¶3Ö¶4øÈwòz
¢®{$ItÿÊÞP1J
+¼©áC¦ adNÜÓA÷Ý+¬VP]5roË̦angê>ýUýST`ÒæºðP½A
+¼p*©ïñ¶¢aá!ö@ËÄ
+Q54
+?ÉÅ| "æË-o<ú
+Àaÿ&'ØÝó-:ÙB»»OO"z^êA)Z©×K¤ÏM9KÉyÜî9åNkdd
+t`êMp\üm·;8,ùáåÝ:ÂGºÎÉ.³
+Ö´ó.f8?X^ÉQ%°±-Ï÷:IþÀ/
+ãSHç§?¨×]ü©Wqä[ÏúÃdY~BÔS~´)·¹á^Ü0"ÓÑ×Ò8L
+ ½yGGyK*÷Çп]γ6xwV
+ÁQûvµO¢|=-ÜV±B¹:E7Ø*{¡s¬4ì\E˧M¢ï@lM;ºXl?ûgo9f8I5jÂÿó5Ò, äÇë¦kÉ5=ézÖä?T§?UÐ¥NttÍ/iúÜYÚßb8æ:µÐõi
+HËô
+Y&§¡ê¾op.yYú
Y@¨D·xû<¦"-2<P{LºñÎJôÔ§´qåïæÖ
§HìÒZ8Ì¡ÓxQÐrî¶ÑAbÙ¬qQ
+C×øÊ;»ù<(æúxF :OÎz?TH¼¤y©¬ÆX±]f8ÄÛ9èmz`ÚÞ½¤jGßÿÙVo.k«|BÞ·r*ëÎüóÀ¾A}F\Wÿø¥Õ ¾±mb?FLöÚf·v%±!xÎsêÙÅ0þÈRvºtŽJO
+ë
õÒgBò!.R¯ï´EÒ§Rγüv±tTºD^phöµ~êzÓÇô6äM´@λ-nu×ìíRï¿Í7ïÂöþÉ]rõq79Åc«br"Áç×óSÁÈÑCÑÜȽØÀ1ÆìreØ4øH3[¿m4ÌK!ùH{¥b×¶f*=JTbõáMÚP$gÔå
+¢¨ÀþÔF*È~¿È<0²,1(ìÑ/Ç¡`×_¿½=bUsïYÈâxU5Èþ£-
+%kqÐÜèï/fYÆ{Èx!ÿbñFGûv)Èm#ᨮ,nXÌS\¶\R=)/Lhø$-Ñ3Éñ3"Vf
+2]av«Å>Ë, }Ài6ܾîÿ J0î72wmÜ{ùbêÜBUh¿JþHÅÛD¶¬+UH×!¦\5Im¿¬´¹ýêdsÙãõ£yÑ~.ºÏ³Llº½$ÿêý;
+£¹sÈøT*(jáü£À8~3ÊÜF¢_ÝâJA
+®&m$%u¼þ¬ú¥ÚFt³£QÒ0ÄÝS%*üóÝ=&Éññ:;˵é# Íès@\Sé:aÒ¯CÉÏ¢¬ µÁu¬MÏ^µ³½ 9·d>Ï%B|\@uÔpl6vý9ή¡_®µÔû$ÃûüEJ>Åú{t¾åÅ«Y0PôdSe«1ö«¦-À(¤ÆöWÑqÄWÖ¥Á×¶xH
ôï
+äôª>
Ǧ6(3¿ÕD°Bëc¤Nr}àë43xevþÄÊ nx-X%KÊ¢«äÞiÝĶr;Æ@ÉhC¹O²n$!µë0ãY6×G¿¯w$±õ°Ã°
ú1è0ÑEbØyF+°£+¢éâÄ_lY!ëùMÊí:!ÔRX©QEM´hè:ÂsFðÍÛO¦Êî·Åµí%
+ñwïÒßíP û¥¾jIÓ *6<ÐÁÕ mÏt)³éáåIÕ
+ÂØÏó%Ô4ªÌÓ ½ìmÛã~m¸p dníbw]yØÛ
+·ï
N1@ÓïHM/«eçË7¢êoäkgZ%ücCkµæ¬Fb0/ôW5©8cÖÝQ*Wkµ0:¹rZ
TÔÁæñ]nmwh¯ëÜb1xKãÇÃM+gUÀã¦66ó·¬{ÕWÑ5¤uyý[ÊöØYÝ1©!Q%²
+pÆj²{8¢§F)ñÀï ýõÒ,cÑCW&¢Êo\£PwºÝÂê_¨ØýÿòñLì«Ýu¨!=1Cëv±måC
+ÂÙke<ºdy5£´\Ç´Âd}Âýc_ö'ªVé¶Vj
+$ûùáæð¦¹
+Õ=÷KëíÅ/ËêñLMØ\-ûéÇÊh³'è
+ÞwøKö>hXí\Ï6.ÖUs£Ñ6Ö*õ\ÛQ)ª}qGt|e}
+&ܧ®:i¯Ó¹î²´Xõ0¥DõZ! ¢!Æü
+
+´ä´'ÉWÕÎQ¿MÏ
âéöÿ(«Pt
+«Ä² þÚ@ãÑìagV3Õm~ë²±¸Ézuñ
+gÝw)ýÉÀa½h,1 J«|²>ç Ý
+È*?ÌGÃKmâ2ó*í«ÀcáôöÚȵ{×
o4(gõyp=vgõçä2¨±I?!P9)D¿~^ÌÃýòÃHÅÖ5ÐÙÏîjJÆ;^dÛN4<¹Gt<qW½À=äuE:üC6öØâGã¸uH+£0Ç?\ÖVÓqlb²º-´ÇµÁ!;;`çÎû-E¶BXö3K]9§³¹
+ðØf¼æ¬qïÀê\²Ý÷Ïc¤7»ì{B9°ösiªmÑôÊ(Æ?öÊ¥
+ª,Í×aL´íW±S¸$@,ÈÒ¢4ßQBýöçHºõ\y u1 í¡O8\N9V©I8s½Õ¦ôôÊôò~DeÂO¦to,´æÚ¤jI×a¤ UVF)¯Pµo-ÝñÆé¹|¬:ñÁ5ë{MX^Þ®þ×pÔ§§ÂAüë¨ÆÓéý2þS@½Ø×öÙÎy>ÇÂm©³ú
+ßjîñ³?êbÄé¤S%Ð6v
+Ê}IDª
+(×5KVÉÆù¥øÝ¢P×áIúÅeDD¹ÞõW¸ÓÏ@47
+½»
+¬ô4ñ¢SXéY«×÷G
+ºìu¯úr/sÒYß@UË×3Wü¤Äº(
+XÈOñtõiZÊOóöjXN#Hy0Ôp6Üþd§%]WUØ´Ú;ûYâ-æ&§;Á\wâGù¯A°D6̨bÊâ\=¨0vÑ.NÐ2W×fÂ|öª¢¾ò~ÕYß?"*gøÀ¸ÖÒFª5#,-} ²Ä|ǯ¹`áA9v`aúÚ16|jaì zøÚ=6òm²ÔSëÅ&ø;ì¶±-¨ô
+ª|ÞűR*ðÛ
¿ÐÓsPÚÚ%
+¦¼ZìO$õÇ]SA'³5Ï7UIþéô1¬-âïDè)j»£öºjnlo#0X_
+G!237rÞøÂ<
+è£äfUÇëþ th4åèýh_®¹Gñ:?9ª0¤åÌ÷«d<vØï,²9QúQ
+V Ù¸JðKJdwÔ
>åXv_s\HtÌQä¿WKNÎJÓÁÎïXTǦ³9ÓÊËÛ²dfÓÚ@Äè Rûf\k<ë0á¿úµõUcxxà7w³¿
+r0RæÀàñ©¸
çÂïC¦PàÇm[U
++Áø©wüÁǬ¡ïx7Ñb¶ËÌK:2ÙatÖ_åCòP$L^tuÄú5q h»Y (
+T7ÑYh|@úDÙ±°%:·¤º,ôSÒNXkUf²çqyî@^ï- Kã¹ïuÖP¶FMÁy±ôµÞná>ÃÆ
ïËN³ù'3ÏA¾=Ôwµz+¨ÛHξy}/ú.`/,<03PhÁ&â:(l_6´B²Mà²HD~#QÑÓgÙ#¤ÕÐÌ`>¤«~í07¦NJnRëÐs2-é´l+S!¾UúHeóÜðÕOuÿèwî»Êä[â|
+æ|@61éa\dáÙ máÍ(±Ê`7(Ú½ÇKT÷[ûq±nDªû¸É Ðjßtz!Rÿº7/ÞSÅ|y©ÊÙ°jlJÄhÄC-KLz/uh½Ëóî1M£ãÂci"3ÊD¼¦ÝÑMÖ2º6¦F×áîÉhºJ¼G¶Èåã«ÀCaÓýܵÏ<
+®W+«:¥¥£eý~7ϧÙê*<OÀ1Ña<Ø"þWßçà~4öpoSa¹4óï¥+P§«D͹¬ñ õ¹ùgÔ¢Ms'Òz&h5²S Z`üu"=¶¼(ß콪ð.|~%yÆBäÙF}Á¦?dUzá'Þ<j¬1ZAmïñ<]s
+3&ÛÔ±ÛGK"¨ÄaúFçîk¥=""PDò¿0Uc5¢½.
+mKûngMs)YÆ.$ÂhÝ#$Í!õö½ÎcEæ0;!Ro®ÌíËu=t
+¤}ä®ÑÓZ1ÞWÒ;ý©¹Ã\êÊj®\öÒVµÆhWè6I-E3«fÓ ¨±äÞUÚz[P(Ó3AÙh§ø{ÏÆþÎÉ?ü:÷i`²áó!ÝqÉlÄE/ÐÿÂAÉòÃ-¹[©_áÁؤSA¯yî¢Çu!~Îùbx$æÚA¡·Ù.
+%Nwïæ ±¡1rµ?RI
+{[Ó{zjÔMôº+ôÑ{òÎf³3Ë14~F¤7CVÞ ûêfïæ´pÄe8´¯}Ø+ɮϹ1ÏpÑ´Çn2I4礵ª¼ïÊ&j´mìW8CYqƱãdÚ>CfCV6`µW>ðÐö
+Ò!Êf©»ÓÈI$u?}0j}ïdËé-[[ûß«*
+Ý1/+åtÓËEêDuy7Vg$E&ÔÉy´IAÜG1
ÔqÇTxWuÖêv»Nþ̦*nÊÖ¥IC($¼®R(±9Öa±XÞ$áî~LéÛºe¾¤NÅ;JR Á|ÏôðÂcªéCQ
+qã,òµ[Ïf`tÓ½yMN2$8OLûuØz/P_)hq
+TeÖCä
+zÂkËÓá¼$v*d
+õ-Bû
#áyV4¡±y,k
N)°üù)ì~×'gëq(¦ðøWKVb`úY×5
ó0*m'¶T?sÈ\ßëðõ¡'«íhò
+Õ²/TÙU»/CGR&ÏÕiÎUíã/¨ú¦tDo8L´
Rÿ×\ ·&&ì&ì£cþ"rG1ëëû8¦ÔD
XI»ðí-,¡\O½ED2<®º"
+»BïÒ)®¡t«Áø=kµ§ËÉí]<×ÈrH3ë´B¹=g²¨33^îßµ¾Ôµãaø²
+¾tcÁ/GùYä~
+ྮAøvÞ*¼ûŽ41?ÜfäJI
+»
+(^ÖÖ5ÑÁÑÑ/¢Ã±Ý <~-©õVË «j «sÔ
LQ£L_
+ÖN+£Û8×9hJCpÑ
¡h±¥ùÔÕ!páHV¦D+úég:
}$ sÿbøó-aB[%ð\DÁ- FkrÝÒßP/MF¨) Lqczó£¿ËÈÐÎl
DwÕ7:@Pļ¥Õ^2ùv¡gâÏÈV|R°Y@¾Í@
+* ßr¶XÄ!±c:ÄÇóö-¿Ýqoüc&ÁB[J<Ô'¿YÔ gdn~eåc^Ýè3EäVÓáø@ÝÛD>IÔ_ìæ³WZÁÖüÜ9S(Ibð¸9 ³â±ÕGVË=Â2åÿxÄ£ò»ûs½±¼ÒýîâÁ{ùhèncqS[é2i±P7»RÆÇ %áx½KGÍ4(ýv:
+å
+ü1\¦
+ÕÅ·àRZQ¯W©4yÒb§Í+¡S[@ÂçÁIç$7û´äÐÁº~4ðUhn1õÝâØºÊ&³pLùãß7Îê)|¡Èb¢
l<i¬oA¶÷](
+¨SÚÁ*´F´FÞõU»ªÚ¦ï¡iUHæ7ËfAâ_Ìkf¯ýW5¸êQqyN°u"åAu´¢Ý;ÒIDiÔ>pU,üFFðsfJï6W¾IÞ·[ÀµÊ¡YÿNv¾¤8G=϶¥9@Ô)£]°hÈbñö¨e¸¤.Æ~õ´½úÇ
+²d%ß3Xd5òRõfY;ôå¨-!BO1!ÿ9¬OJ©MFM{I.¹!O
?´Z¤¶û^¼uJÑQ¯l$P!{>JáôsÿÀí`ÜAé
+ä¿#¹P¤xíKnwÉ!ÂÁìr)Ö±$k(ÆÑÜ]"l¥©ÁAPVhþCÈ ,Ø
+BK¾=v<ÐF mF
+"h¡îb!T^ ¹hk5>Xåc³L^ÅjP¾¬g;<
+lxp,@ªªÊ¶Ïé#-b¿Ô»
+
+Z¿¹5X'ýþüÖjDè
+p8)Eg0ÑÁäè©Ã
4×#ÏxÖ-ß^ÖÖæb³oÇ"©ôû+øêbuáÄûw·ýéd^ü¼C¯:¢¢®~½0ßuDú iUÏFWþ,÷§k NÒ3é©ä9åÁú¹ÐFH«¯K]í ë-¢0Ñu°\9·×>#Gs+5³Xiþ>ý8ôɵäÎBcsº¥}kûu&ç3¶âõѦ"M5L,
+¨À´[RY>¤ô§^2À}È5c®-Ù¥8Y¬Wp:&ò©Iùf
jè PølËÂ`Ì:x/xõðç¦YÀs ë¾¥¥>rj9î#~
+eHÚ[QàLöÛÚÍÄÄ~(±3+°Ë¬D{çÙgàª!]·im<ó6=p´[«á%¦°Ùä¬ ïü£Æ£ÅòpâúöÓjPÿÁÏ5MÛTIýîë9íø_ÝÄÿKhز0AǸ½Ìót0o¼eY§1Eä|~s~èÑ7Iw66úÕ)ý·lÉë»!!¿·½:N@¸²:À:Óu°d¢ñBå&( ¨: 2ÌP¦GÄssÛaÓ~ú¬kVô¬Df)dçgì`VÞÞærð!¨¤½±î©]¸BWÔÝ{<-O»¤¢ú¢´¯¨!¹$Iã÷ ÌáÙÿg(·,5üÖù¬3=(\ !%¥Qz»Ó(?q_¥½
+y·Q5ɦԡ]¯¸·s´ÆÙüt®<¢=I~f
+u¢TæÂîðéÂU8û°ìàêúÎß~\説?dÓH³áîgUUtEíï§?_ø>ÃLF¸Kdç#.ÆZD®R¯á>^'}dT=^ñx¥s×Î9Á<²qDÕ[híÍg.u~Ou:]ÌhàÚä\ÅŹ}6¾Dj 'ªÆÃuäa¶Çý|Ze)gÔ:H¢ö¬±{ '2îçqÛ¡·øÞt:xdc#Ѭlýª£º
+È_é¹Ü¿h½!Å
+°ÊüÈÑkg¥>#!Sþ¨³¡ÒAá_íÒl]ÜÀJ,:èÛ[ÜDåµNɦJeÙ{îÔ7ÔëR¸æ@{DʼZ2¯
%ÓdB¼óÇ[[
+e~9Ê1t¨âDñ(otÝR))¸ó9b"tÿrö[ay?~Îó13$z÷
ªlõ^ÖXÒÌAë)é8ÍO1rêì¹t½(=Ù¶+àÛ;À
+ê10Th\M\%3
+Pc(&*¢¼¹k ¥¬zÂm¢ÞÐè'8ÿFÑ¡9hèæp¸ÜBMêB
!
+2«>¡5¤¸öÇV5û56C
uåqµõ¼¡×Ýê"k-ù¦Q©
+¶Ò¤ÕsL>~ÿ=¦2MEM
+
+ôK~éyÞÛ9yofÄ'¥·g¥y¢ûk=P
+Á"PÚÐ>¨e|±ü¡"½}«®_ô³5èÔyÆÝkÆs ¼ÞTô±3¥¨ô*ñ¬« fË_;g7}?ØõÛV3
+5÷¯
+i
+zqå÷ïÌ÷dóæâ°ó&{ý{±yÂÞ£ÚÆ´aZÉÖ*
²]|äüxõÖÍÖép(§û3Pz¸àfb½ ·¤ÔËDð³^ù~.ãÈo¾(ÔâÈ{\sö1têÜã9Ï]Ä¡È>ÍEÝ8ðSDÎvYT
+0I«j¾?\Ôi7Ú¦çÃ\è|÷ò4$ɪö¼rÊgA
+9ãFÒY>
+bïî&·a#Ñêt#þatÓ-e¬¨Æ]d¡ü»RÒ1"àïT3e|ü*8a`7(ß%F£½ÖÛâóðkc]l">ìÝðWò³´F¬cLäçäù´oaÕ£\nÍá
+ÌYÅîkÁß¹à BX:¼*.6QÅ^
+Ñ\þj&.2µ²^
+%«NAk|ý²<ÅT»iNí»JB4fIë¨&ò£7رÝJ6Égb¹}T¶2îD²¸ÚÔE«ùu_A½Wû:ðHØ\*
+Þ_ÕFÜ`Xº6óÕö8ãÑçÿpü
E«©ö¬±~ÌI¥E£}§«XHNÞÂ@û_Hën=n=)xn¯ßùä?:xÆØYçg®Æ|3EVj\:¤§®,ûºÑ`32}Us4²Ù'V\áÊúûRª©s÷Ò×I&ÌðäZÇÉ
+©jÓ]?cÿK>Wü`iùOæ±Ç̨{9»Âá÷4 at e¨LX0òX3ÎÊV»ÏÎØ=®ÿÝAuìVtí^~Ô &cJåKIÀíB°ßN6ªL2Ô['«59!ë.Gà»Ì
+Ê:|^t`ìx¥¶eIéÂZ"ÿ:Â϶é
+Í{YIÃ]©5yØý^z ")M
+©ùI¾Ñ*]³ÿ,¡wÂ,¡¢pl gç:@êÅihbó)»çs6
+è䬤cbî.³[oæã§EoÙÅ£ÆK5mÁvlJCkÏèÉùQr jg&à ·KSkÇÃU êQFúØXÇIZú=X}í^ÆU{PgÉÀÍ9ec³>oO½èa¤âöeT^Cï:
(tLUÖOYúÕXÍSÜN%äQÒYCñìÅGnÂl9ÙM`í
+ºòÊ`~5¼|däB¹R#4ÑûF}9d%ÿ¥©¦bªá7®ÿ,Щ¿¯4ù¬5-¡Âêaã}0{uzgÿUCkæ4,ü Î
+
ÏäI¿äSZHé¬öL ̹ñ£5ø& ]âPÿÎ{æûÊÇK
+Kj7Jô¬_~ÈøCO
Ùà¾ÃYí
+àUÖ¨
+`$$ºóæÆey`Ð73ó+¦!?8Ò&o±l^ðÂ¥ÙàýÛyÕa²!¡
}§tu7a%^ĸmf3(¾µ<ÕÕØ¨5¤çJBÞ(ÈjÅ *¶·ZJf3ö§È¸>ú®þrJ3;mT,ÇLN0a)?J»{#Õæj¹? 5ÅÛϧ§ã*I?ÁÃæ[èï¶zág» Tèë^³¬yn¢Ð§ñºîÊåÔýÖÏG,»:þ§EÓ\JW®Ôyѵ+©?&®Ý*tg~6yEµ,Ñï{àÛ%½àXë#uzR\ç
+«Gu¾Ó?ò£uþÏ_x²A"ìê!N>J1¢º[7lúÛÁ«q»¡V½ÕÐEY 6¢i*!ÝWX_7twWÒNC³ËrðÐ)µp÷ö3Ô#×öh;õQÌ÷ZhIa"¡kúpܼüâÑd@²zÅón£f'§
+C"U
+¹qNd0g$¶QÏà.
»
+G;>xÆÖn=ìê.§9ý\·ÁÅIÏÇ</6}¶Lh?á>3~I·æýÿ
G8ás$Ôþit@Ȭö$]4?ûWÕÛbóhÔú.@·]DHØxs ²æD§æ(âÙç£ç×v¸y3¡.¹·¨FG
Gä<®Z¯rX\¸Uí/èý¢8_ ZMZU±øDSE|÷nÿ&ÿê8*¸ÂÃê½>̽îRo¶ItÀ÷;`T¿Â9ù³È§Ks1Å1røá$yÐ!VIÂÖ
WóWËëÇiW2®ÊLßrßAº³xr?I½ãrIª¹»uUêôZв:6<«MààÄ¡m[ÄÀkß~G¼v/\A¼É.t£ÆàÆI ýxpdÖùtE?±£QlÝ
H
+ü õèÞT7Íarfz^6¸g©ð²jÁ]"aÛPþ>Wrù·rQ.¶¿ÌV2A4Ëô'ªkábÓF#w³àÕfÑeC
+nOÅ·¦>}Q&áöÃÒu,üð':Zk÷x®.
+ìjæÞ×ÜçXvvÖ§oÅTGé¥6)f`LÚñMæõ2âßÝù^vÞÌuÕ+ÛC¥ÏóÕïÓó;ýRFeS²hÈ=VbâÚ=ô{Ü%Ø|ûÍ}7[0+ÞÇwÆ }ZÕGD¦rÄÍ[r^åbÒ®.iwÙ¡ícákVM@û^ÀÆÎ§ÖûÞEÑu io³w[íuåæÊªCëèå=4L×äÿ÷Ô[Ïíèá=&ôsoú
É-éú!(d£eÌUÞZUu^oÓ+¤G·/Ù\Ï[/ØZ.µþ
ݬôz*ñÌͨhÂí£ÁÊÁÛÚ¶¤,N7Ï6"eÅxÐôÝÈF@fõ.ëø Lí×BHã^B<"rÕØ÷¹
kÌf]ìôµ§»4-ëͤð¬áRcùÝHé}j´¤<¥£áCa)¢Q!¦äðµÍÐ
+Å"÷ü¶X2¸[ªûªs ë]1ú¿J;çRJÕ0W¶1ÂË·uÖCÏÜË\þ$íöó¬5¢X¼1oá/îR)äÛw
+ÿ0îç_ºí³^
+;¾ÿÎa<N¬`~m®ûXTþã©Ü#_ŵºCtÉÖz)´øô*ÝZP/Þ¬F¤#ðíËú®ù¢KÁPÞF*MvÄëI»2q8kÖ¡SÊÎ%ÖyJxRº6x(ÚÐ'ª'D¯slðå+*þ{kFiª÷ËT)qßü,c[Òîß_§cØëú"¬½Ô}]ËúþDp¸^4ï6;«¡ÄaÍ^Än¦[¦¥ÝÄZ¼3ÇÆØêeA´6,._18:û<I(7DP!Ô]Àá;ÕÌ}ñkP¢aüvwwlB[ÛQq-ÄnØW}ϱbQâDØÉC)¼ÊÚ_×Êߤ8i*0ñÜ0G¹|ÂüU)]è «)\ý
taôÓ}ÛHéR×d©éϱéðíjÙ| ÂXF²OnèN´ïDÑÞéPû@*°´T.º`ã÷;Ûâ©prsÓoÉL¼ÈWÊêÃF½áÜgv5Íý ©ÑqáåÌ»
+Ák`RöØÇ°<çÌJu{(7åRÏü¸í!ûív:Kz_=È. +¿ä}õ}(®Dbð5Y¢ïº¢Ó½Oqı¶
+ ñÈ«ü¼¥âEÆìÉoHºýâKrÉGîIÁ
â½]ªUíñ.Íxä|¥çQ$åPMÁM
+¥®ÇÀ[þ]/ͬL$´l*ä(ÙPáEGe)^¡NQ× Ü[ÅÏËUÄûngu¶JvgÂMmøH1bÞ
+ÄÔ ê:ëÛÈ{{À!ö7û96 at Váõ^ìß
+Þ§(Pm©ToñÈôå:©6((toJHm8fºp;W8öAÈÊëKÜÃý@gcNÐvJ1»Ê"hcM¹Ù|¥Êæ3QݸøTL(Ýç[E-tÐ
+50|NN]ÚÞ¿¤'HNéÚ[Ç8²(f?øöiy\ºÂóÏ+|zÎÉ[
+lýCuçÛDeÏq¤tS-¾û}æk!ÇÅp¬Iç1h
+HÕíLT>Ï*}g
+dÏdáWàÞ¾Ð
+JMUáêݶ²ö+¦çw£EÈ\߯ÁÒùA v·CTå÷Ñ.ö\*C¡ÁIá03µ¶ÛÔ¹v&²û;³'ìA9w
+ò¡bYÕdúßÉ?Ýf¨eTÀèöï»FKf`-ÿÀ´w_·ðAéÍ)4P$oW¯(Ã6ô Êsa1êz@*á߯~ÎoëÕ;}¥ÊT©ãNÿÖ&Wõ êvw:çJÔøùî1ÐôÚ,ì}RA
+÷ð6!w¥?3èÐ}¢¥d¯g7+ì´æ«å!Ò AE²ÛÛÀ»SdqXHGèHÛmSÞ¡v8UáKïÙ[úû¦!ÂGÃÊÍ¡S´ótp»7 ¶Skl&ót ù3W[«
+ÌéW~¤¬^"öEJkÜL£#ßb,¸þÚo·
+©5¢{_®»Þ
`¥Ì..åd¬oÊn$§s «$ß÷ß3Ê)<óî{sLÁ$\ãx¼âÂÏ0úQB¹(WS¶úMsBû*hö÷òÒãý(fEü/ÍL©øKþ]úe×vxâÂ¥ôs
+°aGs]×·×gü>YÞîµC¾ä]µå
+y± ¶}`Q²>ã1<#Í|}63,û©Ø
+Nk©_½=ì '§¤%¬/©qç'@àÙ,+FÁï|Ôz[lRXSåÄñï,ü¯Y£Dë¬/)!tÑIDÛWsö`{.4-A³)Åâ|,W±lª)Ø
+ïp?åý~Raih¥lά§ÕÒ¹±y]s&8VUëdÇÃÙ.©ÖmXnuØn× B(Õï$ÆÏÝÓ'`ûZê£Ê0½
+ÞN¹oi\ɼ®6V8ÕÆsx©ñÉ]Ç^Õ»éxí,GO
+ø¥!ùìfí¤^ð¢&.C8
+SAJxQÀüRú³I{üJZ¸
T3ZíÖRaJ<À»=¥rö7ÎÍX®¤î²66wRÌVú((QAû<ó$
+H
MÌäǯ1¹Î|
]ÏHueêvyo;.þê0 9Ý0|[ §T0HÙ¿ªMúÖ.éé(sñÝßuÕÝÐ*:Ë$ߺbçÀê0Nx̯UOÄcÆRS´é[ A×(ÐüàÌÈfñx¶Á]0¾íãs÷?ð»l½0
+ìÚÕêPH¦AİaϵxívØÝ
+®öŦ Ùî- GãoW»8L7ÇYòÐÛº
+ºrÈi©È¶º5è
+}°|0O´"-ÿð»ÎzÖäõë°RÁôO®¹%\PáÜîÿòv
+¦¥û«½ l,ö©¤:8h¦ýÓñWNMÛåñÓ©'´¦ZÆk:KÙ-ýî0È{z-,n[ É\íýîÆ]{ËÏvchõâ6" ýA~¬úb¾=L¡<>/![åF%ÅC$Õ_JW{GóBÃKÚ6!U¹¥+m/QÔÉxÉJüs$å½í°·Ø·OP#B}e6f
ð7±Ø±åt?Êw,
+ QR?{Ø,ý®§
+È¢DÇײÔs
+»jvu]M5èÕñ¦_+\|gßöb$¯Á¬?èÑAJ¿D%ÎÃ?
+bEzÀv Ñ3}V´øóU µÙí
+®¸·5Â'rØtnr:8ü·û¦:ÄEºgþÅ/XßÎ-ZGé`ìGX;0ÅêÄ¢}aÙA¸çÝRK@èd¼Aë
«ÁAÌ?ødÔ¦üuF78²ýrãøß¨Qsß}DµNÒCc4.£<ùî;Søhm8
+© "ÿÝKZî;ùº·Qy?2mA¤Ø³íÎYè÷e²Ç&¬-ã!;s*ÌrÑ®ö.¸h'º [a¶®Vb>dKðåÈíý½ª8;éVeÆZP:ÈäcHO¤¼§úÁÂëyÒöiGslá=yÐÖvIK
+µôgÊ,F]É¥µrEÞûW°Æ*»@ȸÍ<½¬K¯ºª¼ÆJ^'«W»ÆÔnm(Dpå,×ÀÖJ-=áîRþ>rÐqÝ# á-Ä£$f¦ã7$âQ¹Ê×+çüäéí²Ò@1uËWtáµ!
+ð2^bö'VAøé?õ§Wx±~¬¹QÊ~&½Á^51
+Ú C,éaÕïGNfU;²JVXÙIïu ½Í,Kiù߯ ;W¿úíÌy;Û
+KP>TM?;¾ MGÙ.%óÝ÷$é¼~c¨zj@þKIJäj¾ÑS0FÓ
+súã§r½6|± ËÝy¡j&þçdÐó1+ _Yß4V>ëú>ðï]:qÒX!?ÍçX
+æFæï9k\a¾]³äù¿ëkE{D 2«h\J?tDÅ
+X0ì#ýü7Økqè¤<g&Å%§àân'`Àÿ[{ø
+endstream
+endobj
+
+600 0 obj
+66940
+endobj
+
+601 0 obj
+<</Type/FontDescriptor/FontName/NimbusSanL-ReguItal
+/Flags 68
+/FontBBox[-178 -284 1138 979]/ItalicAngle -30
+/Ascent 979
+/Descent -284
+/CapHeight 979
+/StemV 80
+/FontFile 599 0 R>>
+endobj
+
+602 0 obj
+<</Length 875/Filter/FlateDecode>>
+stream
+x]ÖÍnÛ8à½BËvQXïOHY²é iÀ±Ô@#³ÈÛWGÎtø®>R4éuw¿¿Ï·õ?ÓåøoÕÓy<Mùõò6sõÏãªi«Óùx[ÊÿãËáºZÏ÷>¼¿ÞòËýøtÙnWë/ó¹×Ûô^}§Ëcþ¸ZNy:ÏÕoÝÃ|üðv½þÈ/y¼Uõj·«Nùi®ó×áú÷á%¯Ë]îOóéóíýÓ|Ëï¾¾_sÕããå_¯cãs^mëzWma·ÊãésM]óǧã÷ôڶ¸¶®c½sSòü1ç¹EÌYYÙ
+ÙçÜÖÍùíwÈæÒ#rbNÈs¼§mܳ½Gçnýþ@?Ðàôøýþ@?ÐàÎìÈôøýþ@?Ðàôøýþ@?Ðàú~¡_àú~¡_àú~¡_àú~¡_àú~¡_àú~¡_àú~¡_àú~¡_àWú~¥_áWú~¥_áWú~¥_áWú~¥_áWú~¥_áWú~¥_áWú~¥_áWú~¥_á·sõ~ßè7ø~ßè7ø~ßè7ø~ßè·R~ßè7ø~ßè7ø~ßè7ø~ß9þñwú~§ßáwú~§ßáwú~§ßáwú~§ßáwú~§ßáwú~§ßáwú~§ßátF8#ÎHg3ÂÙ¶
+lÎù+Ú²rÉæÿY,h6¥;ÑÈDt8.Pi|ñFv ¢±+íåK÷ÌèdDTôÀg¥uNmÉ-^F
+̸>-AÍÄNèÄ
²,²éuð¬´aÆ`¥ÅALt&8eÁM³<#artËF{ÇN®tÛáÞ®LvqèípvÆv¼øÎKû2¥=²æn±ö=Ûaîzf»õ1þûåOOgñôË$@;<«)bÏwW<}ynS~y.®X§G¡ô¥)Á°ÔÁõë¨3,uðîÖÙÿdØ@±ÃÿÚ«ãÛ4ÍrùPvcìÃç1ÿûKáz¹â®ò÷pר
+endstream
+endobj
+
+603 0 obj
+<</Type/Font/Subtype/Type1/BaseFont/NimbusSanL-ReguItal
+/ToUnicode 602 0 R
+/FirstChar 0 /LastChar 255
+/Widths[0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+278 278 355 556 556 889 667 222 333 333 389 584 278 333 278 278
+556 556 556 556 556 556 556 556 556 556 278 278 584 584 584 556
+1015 667 667 722 722 667 611 778 722 278 500 667 556 833 722 778
+667 778 722 667 611 722 667 944 667 667 611 278 278 278 469 556
+222 556 556 500 556 556 278 556 556 222 222 500 222 833 556 556
+556 556 333 500 278 556 500 722 500 500 500 334 260 334 584 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 333 556 556 167 556 556 556 556 191 333 556 333 333 500 500
+0 556 556 556 278 0 537 350 222 333 333 556 1000 1000 0 611
+0 333 333 333 333 333 333 333 333 0 333 333 0 333 333 333
+1000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 1000 0 370 0 0 0 0 556 778 1000 365 0 0 0 0
+0 889 0 0 0 278 0 0 222 611 944 611 0 0 0 0
+]
+/FontDescriptor 601 0 R>>
+endobj
+
+604 0 obj
+<</Length 605 0 R/Filter/FlateDecode/Length1 1303 /Length2 99512 /Length3 521>>
+stream
xöste_ÇvR1nlÛ¶Y±olTl['»bÛ¶mãßÓÝOýu¿ÿ¼ãqÏÙs®µöZsÏsÆ!'VR¥6µ7JØÛ¹Ð330ñ
ðÿ
#×
@@ -10635,11 +11725,11 @@
endstream
endobj
-614 0 obj
+605 0 obj
100471
endobj
-615 0 obj
+606 0 obj
<</Type/FontDescriptor/FontName/NimbusRomNo9L-Medi
/Flags 4
/FontBBox[-168 -341 1092 960]/ItalicAngle 0
@@ -10647,10 +11737,10 @@
/Descent -341
/CapHeight 960
/StemV 80
-/FontFile 613 0 R>>
+/FontFile 604 0 R>>
endobj
-616 0 obj
+607 0 obj
<</Length 875/Filter/FlateDecode>>
stream
x]ÖÍnÛ8à½BËvQXïOHY²é iÀ±Ô@#³ÈÛWGÎtø®>R4éuw¿¿Ï·õ?ÓåøoÕÓy<Mùõò6sõÏãªi«Óùx[ÊÿãËáºZÏ÷>¼¿ÞòËýøtÙnWë/ó¹×Ûô^}§Ëcþ¸ZNy:ÏÕoÝÃ|üðv½þÈ/y¼Uõj·«Nùi®ó×áú÷á%¯Ë]îOóéóíýÓ|Ëï¾¾_sÕããå_¯cãs^mëzWma·ÊãésM]óǧã÷ôڶ¸¶®c½sSòü1ç¹EÌYYÙ
@@ -10660,9 +11750,9 @@
endstream
endobj
-617 0 obj
+608 0 obj
<</Type/Font/Subtype/Type1/BaseFont/NimbusRomNo9L-Medi
-/ToUnicode 616 0 R
+/ToUnicode 607 0 R
/FirstChar 0 /LastChar 255
/Widths[0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
@@ -10681,738 +11771,535 @@
0 1000 0 300 0 0 0 0 667 778 1000 330 0 0 0 0
0 722 0 0 0 278 0 0 278 500 722 556 0 0 0 0
]
-/FontDescriptor 615 0 R>>
+/FontDescriptor 606 0 R>>
endobj
-618 0 obj
-<</Length 619 0 R/Filter/FlateDecode/Length1 1354 /Length2 89523 /Length3 521>>
+609 0 obj
+<</Length 610 0 R/Filter/FlateDecode/Length1 1292 /Length2 68873 /Length3 521>>
stream
-x¶st%o·5ÛvvlÛ¶N:ܱmwmÛ¶mÛîØénÿÞó½÷»ç;jªzæ\k=kÍU{S(«1Ú%íí\Xy¶Æ®Îªö¶ö<òª@sW#À_BÝÒÅø¿ÁQh-ííxÿ;\Ì häò7rù¥ná
-q5
- at máââÀËÄdö2ûbt6c´º0ýI!ag*foûO7Îppÿ$[:MþïÉô¿homgïnçý¿±fv¦ÿl0uu`Ò°³ttÊÿWÎ_î0s
-*èC+z³nçõï¾,òÒo8J±UUhS$fµaÖà>¨UP;Î
-ö? Oò
-$p²èÆltjU¨gÄòuÖ±f@,£5»ÀVÉàq=ÉàE$
->ø7rí@sQlº×L|//807êFLmÌ
-ñ'ynNÝ£ äÖwmbA¢y~¤¢â3íN0ÝyU%Ü,Òèñ)ÐDãlY"Å5S½RÄB½ÀËç½.qÍ3cPºº¤Ý¼¥ðj; %¤^RÊá:ý%F(
ñpHĬÆÊkI,Pk:ºs¶E\½ZQ>?F·Üï3ô1Òéðj¨
-¢pýÔÐP5ÖÈÆnÎö.àÇ+1'»
-]t÷á-Á¡ìdqyÜ|îÏWç*` ê§vE¯´¿'2nc¦9Ö)|A®Äy£ªþ88A»A·?ÁÜ&8Ò
-°{^²Ã!Þ
-$ýº¿I¼k¦í¢®xB[§\:кS3EQ9åâÜ4û0û2È·åù ¨¹ ³¢ßÑc² 0¡?T§þîÅëdgÞQPÐì¦
ÇüÆ dû{òÎ*Ú+Σ¤ÂÂpe:[KDùϪ1ë
µA²¾µ_<0
·RÄOW¼M·À:¸Øßª¬!ѯФyñ
-¡ÏªY÷ì*{ tÑ»üÏgJ#S6þ×@ÝéhÜ.ìûlÂ
-4Ì|°Ð_ñ@¾Ï`1}düÙåTШç±Ü#Qi±1¨2ï· 0ã`hTQz«&v¡ãhÃêÛ
-Ø·CH³â6}?UxËúü2Ôu.ôßã/õ e
-¡ea;u÷z1$ßLPiXA¾Ö&óKßp9¡w½áÈvÜc ð_ÃÁbR_æNn4$|â-òÐ eØ+)BÌ0Æ´ö1¦ø]4è;cs\µªZs
-lFêJ±Ï¥qç¦È\ÑÉÃ!Ŧ-Í÷Yú9v/e4«Õ_Ú
-('.~ë~MYsÝ=mÝH}Úz¦³/Á0ß7âÑ2¦©
-yp,iÜmù$.E\AD¨Lr¹0õê÷5`;ÀnCì9|Z=Oct³ð¾ZÒñr®p$Ʋäé.×Ú
-hZíz(ô:×8Ãäø|}k"ìÛY«8có§÷ÏO9wÑW/Õ*æ4!/=` FZéúp.ÓG}£Yh!µÉ²l
-n`kÌ9?ù££
-3%ýpì\NQµK4ª®í@[ê9¿¼^}Ú¦F. |O¼D¼²ãDç4ÖF «F4r©0º«CYï:t¬mJ+ª9í÷ò»&kyÒË0¬
-ñK^2hAÐ
iujYò"¦ZAµD±Å´GXJ¾-ÍwÃG$´úu¹Ç;{PüÏoÁLúíÔïú]r¯C± D£Ø?
-o
-Þ*ÊñGâ3£ÑÉ,Ám~}pU÷¼W´{·åð3ýÐrlÄ1Ú
-|(ã_Ô¨IqÅeGÀÏñ+%o¯±¬?D2%ëDí
-
rõsöÔÀ_¸Nø
¤<¦µÂpÀéðe¸gH¿}·¡íþÊQ«Þ7küu
-¾o5mØß¹»öÑùèD3mB_nWÁ¨|lÍ*Èñï~ioåaÖeä^ÕKë°¸ÚÅòì¾õ¬G9~ûq4+
-Xå5/XÞUù^íTðäÞÝlS;afÍ5Mö(#$Ô,Z`ó60(¼ç½6=½p¦aÖDßz
-¿±¬û¸ó
-JeÊ'Bq&¬ùF@äÐ&~³-·òc»6ëEk6/ÝǵøÉ
-©å½b''
-ÿÞeÇV ø|h¶ZCmd@Ï6ÈÊûÍÒ\g³EzÒá)ÞnÁ>:Ar¬nzô'é¼JQTÓÇý:IÝã°ÉóôLXÀ
d+É|ÂV:oȱ«7
-mÖ¸éÆV¯ÀñWXZx6lZ¶íY<¦úìÉÛÔx§ÙH¾^
-(Éâóáøæ75Lç\)_
sÃÙIB°A-žÙB÷RÈì1Ç)ãË'zä$³ýÁÐÛÀÉ%\u~d÷JØX·+kW<XpW1!«aÖÂ)°@UÕ.=lÌÉÊ«ý&CâM$Ó«Ô² àbîvä]Q³eíÖ*ÓÈ¢ÜÐ
bæ·zæQÖPsÍý¥¿¿kð¿Uñ X`9ñ+"E½JYü¨jÀjîa#ÈRðÚÊVx3ßÏóßûd¡À±+ÒFB¡ò
-¼ÝÏÀ@ëD¥ÁWù°}ó9楩(ÀõO8|1o¨Aõ[3a^¶p®X2îê®l¸óÄU bÈ!²;~6ÑmØítÇ>ª¢ÄÓx`ز¼TøÐH^Òì
ïbÌÂIx.q}wm«e6ÖE!ù
-KB½êkÍmÌζMÕîyøV× \¥EÕpà=W§e«×°rúQ )gL÷~ù§ûÇ~sc§
-ÒªWø¿X&eÍÕêXlÑ þSßz2JDCÙfÛ25] ÑÝÔ§ k«]¥@D_ýÈOM>Loý¢LAÇÈ[[@N_Àt~=¹ëê¡y ¼å~©¥¤È/QôùîªL.±T ÀO
-ïð)½ö¸v/® ʾ6t}85»n"\tz«y¸}aiòãßp#öÞv PRnÝïcqä̳Oߤ]Cã²Ún£[Ä¢/3¨aZn¨Í ¨FâGRiTù!¡ßF#*CÁßÿ ûâ9£»È#¢¼z-¼Âê{#±V&äÝ2Î-÷^3ùîT÷Ïß@·¿Mp<áºSgV:ô³Ö
-WeþV#
-ãÝb
-=ìÊÕy&gøàHoå·ö¹/Á8Ôî×±.£ö}ä¯R~£GÌ(ÞuÁ¥Q÷uõ/UnJªâ(^ÚH-[ÈñóæÁAú[§Ô(¥ºÞ(5=v»6ÅÒA-¯nÙ¶õm`»û.+t½³ÍÔ>ævùî³Æarq
-mÍ;ElÅÄäiøT
-8U«)¶gʺڱ;¿Æ×¶Yhg3«H(øm´©óC4"£?9ôÙ±/Öwf[Ð/&oûgÙbsî¥}ÂI»{¹ÓuRIZ¬Þ£è¯äSËÍGK)9y(uÙGøSÓôa< Y-®ñßH\«Fã¨I¦Ýãßye¨Ì
--3 ]édÒÚÍEZü_Ïð8ãëö_=ü»¹íNnöé§|íïÒn
-ì¸"m
-]k?»¢¤À jv÷Ï)æhÌ»Îu^óéij-+!aóøÁ¡q_yFíà×Þ=©æÖÁðóü½0ãVâ}øâÃåQ¡&ãú£ïé ×KJ.2xSÔº4Ç5£1ýÊút[ÓµÃ~CKâ2FFü*Ý µï6¸z/ë=ÐôÝûmK4³@|¬hF õ/«òI¦]ÁõÌ8_©dÞ¥Z¾¼qMX|ø2¹sA(YSü1æÇlXIXõ³ëIìuä¢TàNÈ},Bn÷ÕÉÀÉ4gãR 7ݨek}$>Nóqëd<rbQF]´uÛOÞ0þÌQϤ¡fó³)
-.6cØóäraM³lÞÞB}JÇݽ
ÕãEϺóJ]N6Q[üojæÆ¨»ÀXÃZ^ZBMD/Ü=ñÔPÇSîP¾f4ßæ¯_c¤¸Lñã£éRuç AfYæHIÖoÇs4øª¦U"2ò1N9´¢Ó8´"Ü8Yò°M;eÝØ&Õ«á¦Ë7êæv~·äs̳
-bÔÛkÜô|Ò$J¡¢3Í¡å£iBÔɧy²KӸƳóÓuzDrRi?·V¬IÍ,´n²Oàðb¯?^ævcÈ=g¡hÔç<³ÉÔµeÕ÷2ÅjX/f
-}¥â¬Ø×2¿1ªÄV7ÜÐ3Í'gÅÁ
AñÅ}©é(Ðnoþa"x
-
-r=õªÊké·úäö§¤~
-îYʪï¾ÿAáX*ÁlÁA^ùix¤aÀ§Óz8ç=CǤ:dµ²®BÖØùÝsfA
Ç|§3±#Ô"[&7m£Ì>;0xèéËo`êu
-¡ÄN×{bfËWÇÍ,¹£h:GuZ{
-ï¾cLÙÞ
-nÌåuh+Æõy/dζaÉçdES¢ÍÚz°4-þQÙ!çÔEñ×ê$æÁî³Dh6»WQl è=ûópwåe§~~µúºÏ°Þ ºD}1Ãgg5Jµb¦}
-¤ê¦½6½³Pþ¶+Øå\Kðàª~k³Êg(iÚ{I~<ÞãÑÕ¥oz6ìÌ9^§%%^ëgJý¬Ã÷üÍöúH$õøØ\wËho¢Q0!÷C½äÛí0!2ªÕ~.EÝm*z
-¢
-ånHnØ<GAå@³C¯&×óòi`]Ûña5¿(kÚ¤VO®M
-ìö2Du`F òiAè'xÙ¶qâ~i?Õ¨ÎÌ÷°>ó~ùInXÕòximÓzÑÅQäN]âÆc!,øÛÏ`#Uû
-"F³9s+|vÿ¤ï_¶ ðxäÖüGÀÛþÇè¶ñäo7©k +:!( Aßu²î»¾]ç`¢ÿX*AxB
ÿ>LÚ½xLû)¾QhD÷²ÿÙ1Qéß+¸}zÞ
-JöðÐ[øÄê²8ÐósÓz Ñè;c(7Þ×§dÒÔB:ç( düôqñ²þ³à%ù'è×TµåÖÿÌá'!é¬.´ÚÜï®j® òLÙ(>èCx[ª ÊB¾ýk¥grÈOµÒvs÷z¨9w§Â
-&ë¥ö+PRƨÇY*´Â_ó8!O¯z:$zþ(àÇMÄá>ë©ñþv2?¶X7wIá £¿äݸ§ÿL8v»kãM
-¢AI¯ÇL|Ä8É·MV ßC°{G>=¨Ä*5©îÝnóØ-°CÁT¹xzú*KÁ06àzöJ¯£m q÷Å#%¾à,Î2
9R
-¼{d¸~¿|«ÃvÇ6m"ÖÅâÌ?)w\¦§Îÿ¦Â"sdï¡jöGÍ¥^ ««§»·ö¥AËst{±£ýÔØ
ÏdWÙçwu±Þ>`Y"Sk*ÍKËlÞ©7qJóAª°4=XèZrµ%×Hø¨ÞJ
-¿îÜÀSÖ}¢üüR\WmM/OÑofa¯¤bªÙ}k´µ\Ywè°®±ÝP]É髵O^AÉmzií/x>ãýûR)?=üÅÍP°äÁASíøÆ£NrUèïR2L\%µ÷Cì'^P5jtKb:ÓRwL-1/¡ÒªÔº2ãåzÐãöy93x0ÞAHöT\A¸ÿI$£Ì")â¬}ÞÒs×]£@q*åSÔËÞgü÷¶Ñmré"8z¢÷'yú3HZ« +OçÍÐä#®ZMÛbtÖÃ!÷õÚQ ç7·µÉñQAk'9ÄÒúð[¨âÉ>{qß
-ãEúÌ÷ÞØÇ¥£"Ô¿^Ù/<ÞÊ 3qnIZîqvj©EÑvH¾EôÜoeøÞdmlâ?ÉiÆ Ý2ÓL¦ÚÀÔ÷x
-twQ;àÙý 3߯ø±m'¿ï@ëYt-Iº:úÇÃÇ!Íl¤6ãNCrÁ3ÙTÖ¶þl%ª$´Ó·*ßtæ®VüO&<YF¹ãXmåc)¨%á$ÅïCvEâªÉ¤ê«4ajÏégùÿX@h d+
&-ýªïbÇ*ézéÓ5]°``±ñ>ÅØ©uÂB|ròô3F#§ºÄ¡¾_Ãbé7t«zÔrȦ$Óy·UźQµEÅ×IÚ\xyÜsV>¼sg#:¹.t¼£éÊDs~(pÐá\({
-5#æ{S
-sÌeæGÔ%¹ìÇn«¨Êà ÷7ãrHÖöqóö²¢ú8Âe¸G^À8ùnÐô!ðT²E¡FÚ}¥Ô"±é§s^ÙÛ&¥]¼.p{ƺËáâº_p@Ôë}ô=ì;
-g[9ÚéD½èÿõOt=ÒVíò>'¾µÆLïF)íaÿTY8§¨¬ß¦S7ÝÚd¦¼µQ½¦ÖEÙ3ðl ;B´|Àå:ÆV¼çѬç|Cb©H_3c
-»(zxCs]>Jj×=uùi3
-i"¦)ª;JpîwØ^qâÇÈ&B¯Ð<Gqd'MUëÒ÷í¾·&»4T]ö¶yO¤b>Ïü¡Õ©JONH*9;©](á2ØýíÍ{öNnúEõ+gùvá¢UNêÂD¶|ZÒ5iP"2l¼'çO£G.X9ÀZí''"¼mÜÐ÷Y©áÂó0ý¬ÈjÞeÜ®ùjR÷Öno:5|ÓðsËî/<©ÒkÇ{c^ÀD9cªF¡¨\Ý{
- §nY¹7HqËñô|c`Ö:ë`¨\@,UÆFÇá³È+ÃAÀ/×L2t6\3NKýøç÷ÐÌL×â
-¯°ÈP;ÔìÀ¢Yrã ©T¶¹¤-«ÈS74ÃÃ_$AN¬r_Óûõd·â¯ :5InF_ÛÂj1¸¾@û4/õCcÛ³
-ÌsÝûÉó4Â&ʨ;ßws´áÅiº-T¿}ÃcÂ8J®ª-÷\ûÖÁ'¼îáoʵÛ)'Úð$Zªø¶°UhZâÈsC/¸3ïdÇdzǪÎ;.ì¿gÈb©¯¸p¦Áú1¹
-´JP0ØZëËF$7fÏNÂ{2ÕOjÌ=󪯻«¹=`ÇËÜ
-?|F8nsýfHs=å¶Çû_V©Çζ¬OèF»2S0pû(Czfádk&}QÐ
-)¶c8 üòªËÕP/í§o'ð` eÿÄE|ÝÔÃÞ°rÌ÷º¦3ÿ¢Çódxð2¯§Ze~·ÐßiÙÍÝã MÓúÞ¤P/¸ÏZ+»6··hÔ|»÷Wx¯1æ6)"®
-¨·´ÁiêLî@¶ÞKâ¶
-×WQ7 3ZyWúaö
-qÐ;´é¾æ77ùï¨üj"¥4½`½ÄÒIe£ öÝFû´^ðýßÂ"Ë´xY6ÈÜß¿=[äÓñaòZËÀ G¥ì<Áy¼+õ>
xpºÝTÌ(ÑôÅØµ4ÞÓ_?oZäEq8ËïWÔznÆ$a
l8EÞd
K¸Ó±«^ØÅo2¥^; t|>E·û%(¯ióëlÚDsèo/K*Ô³YªjÅ#J
2Â3³z)qÄhÚ6¾)Ç&©lÅïþ¦gÛ*»9ÞÀê}JÍ&ª99¨ûÁÌBì«?}ªÖIN6Ôñ\$6Þ0¾¸Ö×]@ô¾`ê)=RI)ÇuÃΩÍa~ãÇ7Qªë°«Ù0ÀþeGÇöë½®(PøýÑââd,ÆQÅ7ßDDkõ·m·ocWÆë±cÚcÉÖ´mD·DدßeÍ$ÖBnaõ
+[¬
¨èÚ)$|Lo: ¥×°ü\ó¸H¥¯ú»÷£W#õ?Øb?éé?«`}/W¾p
-m¢õH8¨ô_e²+U¥,¹Qj1îÔë¶'âFꤷ8ÞM ûÙÓS¨¾Éüó LB¾P i*çsͱ©:vß·DiÄ(Nb1÷]h·àBÖcÃfñ¯f^õ]º3µY ~¡/e¯sí-äCá{'#ÎN:×i»]ÀjÙäL%w1n4g¡ü&é=B÷þ'þÓYA©ÀÎ
-[4îÃ׳WæIëðåÑ8ðé¡eäÌmW8¥[[_® &Öê:!mYÜËêF+kѹC¡:©±Íeü(h
-V»tË
-fK¯ÓÕ~m«DÆDà±§®w=ôe*Ãå´¤ftËáÊppµ?NÑr«[;êN¤ÅâRS¬ù*Ñe-eó;ÔÑîç*°ÖAË+|ÛÜ(íaÍ£º'iZIÇ¿·¹j̬Ü÷_cϸ
-gÚ UíÐÒ¹0
ån~ĺF
Gun°¨R«S´à²lÎü»Â;ûðèãèHô+=o
-ùÐéR¾×.iTÞ'É
º*èô©Âçïé;¼?©0)
-bCÑèKQBÖé0¶¬ tPïÏhX"÷Rúz^¯Ê4[N¬@Ced9\äpÉ·,¦WyèuìLÄ7¯øÑ7»ÇËC³)
qãä^.>÷zJѧU«(sÍWs/£!oÂøj¿Òy}Æc(YØr.¡ªãSX0¬ÁHpY0øò}ádÞS÷%"y /éÅïFßÞ}D¦I¨öòvû§H4º²ñ8ï¾ö²LN:">
-&u×ûþAâ=R YýntØ¢@¡+¨ÝðæåðK2BR¶°ÃqôÄ^À¹üb(vùya«'ò©7õë®ÉîÞÒ¯Ê:£Ï0@§Èsó©¾bvaÖv6T½AYÝÏÐý'Uh3è(z Ìò0"Æ<D8Ì<Y
-ÀÚâú0M§q3&qºú|×÷ZãEÈVûô©êź¯ñ.0gEÈU~W³ë î±yªJtjsé¥ãwbïGC³|ñ¼àNÓe«ï$Ûeãîhè:)¡ÍlÉ<¡åwE,¥)¼Î-zù:Ü2³»å<
-L¤üÔFG¢²o®ÊÑð.ÝñÒòóÊÅ}|&@îÈg'ü¥+µÌÀ5 +L1½á'úOæ¥ÍWq*1«×FzRÉßÉþÌX;8¢ôÒq.¦ÎrÐR«&:o¤
-u{ëC§Hë_Òn©S³~Ó~.è¤ý1íôW-MWíMÙÝ@p¯ÿl8l¿ó²©éÏ÷ùýîú´¼Ð%E¹-
-i´úSá<}>"_uìÊ0¥¤.·uÃùíTL8gËå=Ú^æG"<èAâÇdØ@ö÷Õ²ÙÚÜÞzïð5ë WYìáGÛjÒÕ,æGZ Ư£®K¯,]ÊtÑ£c¼?´¯P±ólÐ
-±úkôÏÆï6SÁ_±XW5Ã\ewK$¿èêA>Ýì·2áñ/b
-ªwOOH9¼ÔcNaªl±BÇö\ÕËk%Ô}ãW
â$ô·vÚ¢íP2Ëf¤¶dyæ3ìª=±d¾»ÅÌíÌÆANk#ñs£YÁ³
-Ú¶8~ï{MóÙ¥ú¾
l¿}g_U<¤éÊÂovC 9Ý=È)éI'eÙJ\b§ýÎ
+x¶st$o×5Ûv:¶mÛ¶Ó±mNlÛN&L4±I&¶mëߣû½ßçýë[½VW]{k×9»vU7²¹£)PÒÑÁ
hmoêîªfâ Ï êhgørÂQP¨[»ÙÿG¡ tqµvtàýï:1 Û_@ÜÄío¹º;@ÄÝ
+G!æèäíbmi寸S
+ý¿©÷3
+
`nmæ0ZZ;ÀýKý/´øÏµµ@ñ¯
+s µPÙÑÕú
ãÿ&Õ¬Íl®®
+ä8¢-ÈEN+H=k8É'tìlÈÒx³4±R:Á®éµÈÙ¹ô]°(¹ª¬ }!«&Jf*5Ò0cxÓéaD|Ïä1¯K³ïàÀeÊïØw¹QOLÜ »ÜÅ01)zÒcÞpW1EàaãÊQc®¢:áÀÜ9_XÊBK´±;XUßÕ¥
+èÖàbùì9C¯î'XuÄé-`ܲ"¢2çÞ|VúRGL¸¸õÖYÈT¸æóNÚ¦Ø5|ê Æåe¡d²E:ÕqüKóµèPåHUê\.
+]?VËÖ,òPhô#ÝÐ}¦¶$OöÙ±rÚj¤À¡W9Öò>ùÌÀ'·Ìß&IÐ^`KÄFòÙê_(ï4Sêí/8$E7>¥ßîÔIÑ>ºn¨.´'[E¼Áx¸_G¡Qgòà4«Ý¿#óP7¾Ï`2'§²Læ&)iÊox-Ù$-Ë˼Ү÷ö#Ýâ\QªÄÙ¿ xk[LÚW²²[('¼jí¶oaeÓfHuÚ7ëH½üÖ9ö&ÛÕbV
+5àÖÁäKõýZ0´+f-¢²ÃUq ×lÓ¾.hÕ¹iÕ¶ã³\Nväy¥
®Ïr¹(5lÚuÃLWݲÞÀèÝ|lAÑCÚÙÜRq£ÿ¹GHaà/á¾TÂL«"#/LÙ
+ÌaQ¤ÛZ»pb
XKÓ@\Êó¤Ðû·/4U!±M4¦ÿà÷)q:ö\hZæ]Å
+x2Â%$¯µn¦£ù°ÇµðUQûûC´lcR®5ñÖÈÏM:o`Ü0m3Ð%>;Ï00ø ÷ÞαsPTÄt²:e^ù. µ~©`}:Õn»ÿ9æð43õ´ÇòºÛFnª±[Á8X¯3w7Õ4þ50Æ1ÅL
óÈ¿ç¸*m|ÍX*" ñ®Ä~åiÛk®'ÇãìW
+*ÙÝ>ìú¥bCéºñU¼«û¬µLXÌ»Mß'c§WºýfÉÖbÊïݽr«å8Ø@ìWÛÐ@M¾Õh'ôeÈ<aßÞ3¨û7£ßêV ×KãhYS
+ÂÄzÙä|èpÑnh\³Õú²2ÕKé_øØ×»DÞ¹2á8<f
+¬»º=滳Ä3í0»ßÊ2ÕVÁ¾ïâ¤DgúfEJùnûÆå* Tk?¯¢Ô~kÂÈ»_Éù2oXÓÄçi¡J7ÀtÞüoÐZåÞö&åc¬jû5qy.ó±²jñMè¸Ø·ÂÈ>sïeõgpYk YTåÁ|0\hÅa:
lù1ãÕíu?=
+ßÃB²±§´Vïó#÷¾ùblC§sH7u©û3¤lòy¡_;6¸û|¢WÁúv¥ÏHöij(AM˸YHµ~ëê%
ëÚ`OJ;/üv6P½êÂÙG¨Ù×õîaÞ¾{ä¸Ã5(ð:
+tÔ è¬Ëö¶åþ8IÌU?r7ßA¯åu Q&ÍȳY°)Ç HÛÀ7W©~îµg[¬>4¢6§jÑò¬ªRJJ¨kàAÓN:áGØ(·QèõA,ý¸uú~ª*Uh嵪~ÞËd{ñv Ëïb3P1îDã õ>TøIäÉãNtZGÓÚ¡£«$Æö(ɸ³8ù×yB¡a/J D1õÛTsïÕ>L+
@]0WwÔNÓfÛ¢|çgf·^0OÝl¥qîj.âîÙHfÎû±PÔÖfe6^ì-u
VLñ¹<=ËNÙbRå¤×^ê
+~D÷ùó/oZ-¬C}Jg'eá±Ãâ¸å{ëÎ!úND9ÔýI9xã7øó
+cR5öàâÇôk¢¶%ǹjMÄ×'{n;µ°ñûuëºóÊ}Z®;§g 3~úë·ME¥q%tD¬4gj·å@;b5FØÇuDûúRhä±kȪQ®ª)wè«BRK=\Ì'óÝqTK9n:ôk#çåAzç,x~ðqqµÔÀá7Ñ»n_ÂYS$çµe^jíàæ×0E|¨ÕU*á×ôÏ?üx¯<´Ñ¤ ÞïúæÔææd_ý׿^&¾ýô~²Ý¬zORJa,ÿÜl%*9¡`ñ¶¤X=
+y)§ðöýáØ¾Ü?+¯üX¸)EWë[UÐz33bøBuzÑY^ÊúM<)½HP¨3^1éHÏ
;±, áúrË´¸TSú!Ç7Óq}&'=×Üòéå~Â
+{M©Ï}}bú6ë7Áe°é{¸ùî9Ó#-×û0.°"bqx*-!0wçË
+Áxvd¢ÈÄæÖ¯¥_ÛËê#&ÂïçÓ\<ÌA·²±¹üðõ¦Ñ´DÛN<Sm¤½z *ÆciçQã>2H®&xùPCvø3
+C
+ª2~y6d2U ¹XÛÅzÐßcÄóàüÕîçï&WnaN.XÂDèÎ-ò/q+¯;ÚÍ N2îMã¨ëk§¶ôü=#8Ù?9Êmí®g]iµáB¤J¨5;ÍDÉ]ñ:«ÛìSNÃê
+¬t=éõú#¿!&ce{¾Cà&ÐxÃjsËlÁNnð¶Tr ݸ~ì6kMìII
+,Ø÷ø^çiQÖ3>£EQ(9fg>Pw^ÿj<úxÛ¶[Å¢í
!þIJmvQo~\.b@°R³mü,ÀQssT"ùl]0²Èø½þWó|TÅ×K<xoÔ>Ñç³ø×ËùhDx°ñîeC˽*¸Áä÷w+ÆéÛªÑWûqøä/ýÔFw0´G»8è$wºÝîDS
mCÅC© ®<[µ8¹
+åôìýÒ+ T*ì?¾ØîÓûYàERke`vØ¡° @í5ÔÈÁxyǺ{ÿ¨Ãn¼ AËÑÞ³3]PÖE%© ¡,ÃÙö-Gü`Ó¼¸IÛ&×3pÀ´\CJ´3oFåE8k¾tÍgÀÌùslå**õ~Úõu¨¤r*4
+ÕôÞíl8-ÍiLèÚ?,ýcâsÙ¤Ä)k¦jê9ÌùS꺩`¯øÛéª44·4)fUcvÿ¸×Õ
+^UËײräq
0Weò£ë15Åñ³ÔûTí
+ð§ß7¬Ò¾ÅßÞ)?ûxêÜäi¹]ßF2üýßLì¥ml¯fÊ0àqá~5²ÖdʬN1¯Ö×É¥u@´ÖVèiÔ®(cÐòiç xÏ7ª8Ô*¢5êÒWÈÈ@¾º°a£o%&éË7ï^@iÖºÒó¹ÛÏ\Áæ²lîeÎÄÐZ 9Q¢@\÷Äm(`h|q,°jAí8Å{'Ýðñ³
+1Þ=°lIHBf·Sü-àοQêá\ÏÃaÝÍò@bk/Âí ¶vÏp¨ngupl«îq
ÁQy]=a÷ÄëóêÏ¿,
+um.ßÕ:T©âéé,ceο"íñ
+äÿ"TÑ
+ßh[JάÛÞV[Ééª QÐh(Tv{¹A´êºZk«#Á
+ûFÄÕêî,§6^ó«ù#XÀNk:©z=éMiì°ôE.">äõcr¶àkîï]r`'§Û¨éu.1fe¡wÄnGêm´ñÇ#Éÿ%Vx½B¬mà"1hëé½ø6â»|kÑM½G¶Ùðe4êCRºÃë<tèoA÷¶J¨æ¶d<&ßí±±]5ʲümôÌaÊúÐQE]/>æâÔî7¦XíÙÉãGÈÿGpd§æY$TXÿÍÊATf
+ôéNûýÓÃ.ô¶.PÆm|}q£Yܧ%2μ2׿7Bø'tp4,&MviÖ)ôªoe¨ú´
+ÜAw>ÏMù6\ºf/Õ"Öàãî¢e!o4*ESÍ(÷ôè1qy0º³J¡ËtO§Lb
ñùÏÕjûæD3#V}÷0^,÷XðØsbÇJÕeIÙüöÓÿø³rѤ~õ.bÙpÔÑÉä±»êàcñ B
(
+k±Uof1"Yþ§¦¥û+6±
+,îWÃT3úºG}ú§<½9Õ±dof%´
7Wê(múR üÇJ½#RnÿmìȶàÔ:þá'eç¾ÁnõÝä´îGboÜ[çÒl±`8E¤Õ%Gÿ¾0d¥Y'çÃ*
+þê¬d÷çSp³1$ýt-L\èÛÒKHf¬|¥OÝáußÞg¯¢P>+¿T$ð§6äOÖ
Êtÿ*y£¬×ã«;ú ßÑ:+ú7å[|ñKé9
+`hܤS«8:BCj-SϾÔÍÂ¯ß î»Ïu¬±bÄöìö@ä¦
+¹X{@$+T:XÏkh¯%Þ°íõå¼.ŪßáÏ<²Ù
Â1.RÀ:QGc^Êûugª§Øè,£qkÛëtäbûíÛ7åófraÉÈo&´8ýÅ3.Üa=³Ä/}âN8Îv¾¥OÑëVÛñ^6y¯à·o£fl?(¬@bÄÓQê×.Hg&¨wº'ßA®6X®;L{ v<;ÏqøÄ¾ÍQ9&%C&¬iBÉ bS»¶p~á<ù7@¡¬%{+Sä),SM¤ÃU»ÏyÐÄw6ùR§:üÂÁïm_OÛ¯¾yi´p"-Æêí¿ÌÓî7Y®u\M|s-ÄÖ¶)pÞ_h"
+#"´%¹¶Ûâ³5:Ñ(©Xy8ÝÕ¥[éÏØ@uxÈø÷íêzÏ®+<ÇW[4þdMhÝç&³:u;°åIÙ¬Õ äe4K(çuWùÐ/?soǬ/pvx
+í[ßObʱZõ¿õ¦<¼`ðcdÕåd³â/½úÒbÎÑ6hßãMXóÞÁz ¤Ê8ÐoØH|HR6®Ì)`Ôç¿Úº=½Rl]¡m¾rñL&»äþ 1l9ÿðäý`$'ý¹1Åx\ÛæöÅÇ#IÎß©¯Ô{qæã3´ òÍ×ÃÛ®YrüõëD?¸«¨j/-N×FE!§EM·i¯^À¨iÙ¢1u¸ÁÞ¿ùG7E»;®Bc ¤·ãwVïÜ3*âOÀ~¨ÿþOl
þÃ/oÌE¨¥±£¢Û
+°Ö<H(FÐñTT®*Gqv6àKHºWÅ
+°ÆÁlK ìé
ÍbWíq³|''PY*x^Æ9ÍP®¶)ÚõÈf
J§ÖóÑ(°Øu¸ ¤*t©~²~Þl2Cýós\ItÌOY¬å)BÛÀ6óN{Ó
î*Î=ÇÝ áí%ÍIc¤lwuýÜ=º&G×O£áÉbn:,³(Ë|3ò¾²É³û¨æ¢µC^Mî§D.
+R 7X.
+²
+$Ý5¦üÎàÊ9#M!æ·½^âÙÝtÅ4D¾çܯqÞ¶ç7iÎlâÇöÝ K5k]i÷Í¢ðJñm¡Ìåö%ÛR®á)Q?Úy¡9D»íÖC£L½%Ææ9S½öÃ
+ãË÷£L¾¹ààJÙ¹JÂvÙF!vSöðjÀfÙöÛ;µRÌ´ËõF½ºh-I]«p5Å@åZè7=ðDÌV4¿ø|̦ÈBÏñòåÚì~³ÉD6º±·uË7èÜAöÁ`¡<@TÓ:ð[~bÑ£ð¯ÂY´NÀí%K=Ieì̦?äÓ¡,ǬèÚÚmy8¤uvê=dûrðÙge$$£GÙA:a/äËÁn½Àè!Ã5¹ô²úÿ&=˾¿^×yacee ç§×.¹¼WoT±à}Õ^Ò4`d£9¦72öDo0µËù1ý[êÒ²²¶Dw0ÖkåTpz¶Ç%ÈðGñé~Å[îcÃ=VÉqnÐûÖt\YÒyJ(TF³¬¾¬h㮳
+A6 nÁØþ½Í^5dtN§t5wƨï6iàÆGÊ8a}SÜw=?4K~»QçBSx¬´tBHE4f»!z
+?r÷Á=y9d0¬
+[ÑøËËÕç=$Ô?ÖS+å#¾~Õ ½â%
+`Å79å46¼â½ #ó=å_{|}rbZÅÖöÈO«¯Èéj%Ã8ôßyá'ïòÂ1¸ðêýïð®ÊjcÂÇÎæ«Gfjí
+ êÁCK<N«iÖÓðͺ¨óDÐÒ7_°v¶Òs²#ÚOTTB*Æ8æä~·SL(Ýê®P$
Gdm4¤[ÆÖ µU= Ãóg»è×;ËO¾JÃÎÇ*_Z§1¼ø1o³&¾Gth1Ýs2ò¸§²ÿe¢pàé÷óÚÓbnOèA¦ËXwçX]Ò©`ÄÓØQÛ¨äRÀkи;t¥ë'ÈïcÓZAÂë¾±äºÀWWf»QºÛÒ%{^P¾Us?Ìm\
+£-OÁBù1&î¼P|¼+§ã0çïþ§©àsYÎ9ÃR.l¿ï =!Ìø1R,.:*n8Aâ@W ?y8cÀÌäàkUUxÌ[»Îáf&#»c ô¨8»½ýgÕ4Çe
S7UÅDM£8:¥ËCÕw&¿hýÉd
+¼¾RÅ,2߸ ã<¡^!%²bRàC\ûFscôdQßÁ&ViëX
+/~,ÞàØw°³ª¡ë¸lpîþpß Ìð0µÂ&PJCuÉL={ÃmÓÓ·6?ïQ*ÎxÖ~ôä2
oà~´«v¸ÇZ}FÊ¿üàÇRX`!Y¾cÕd>'(ð2Xsϱ8U ¯/WþEòÛ0Í
9èclZúü»m ?xkæQÖÐôhP/LÆÂÏKd5ç{Ï Í¶+¹"¾-*Ùþh.æË©Aů?åòU1´ù§m8¹ÂA©nì!åz×õ§cÆí©Ód[0^ÄX½á!ÃØW¾Ñü>ÏÒ¨¶·bìò"ÑI½)׸h¦éÄ»ÃX"¸ïG»¼*ø:4í¹ æ24ä!+Yf3¾è5D]Ø|¦î@ZЬmjÃ×Ü´O¬ðàÞ§H½¢ß¿2îÖû°²¶Þ n+ Î^AíîôXêQZúD êпé>"x) }_!w;±p£<íSPk3äëv`zÖô®¦¾kÖЯK Ý¥BJù»²n~µaìn·ÇÞA±V5LeÈÄ{-MÞ]ðøioåÕù² Ü:íQª!#¬÷ È¡99ïÀùý~}r^yñ
+_UZÆt¯l¿æõR[ðóYs³ÍU¾Ä=$¦Ôaêî3åÅu#¢y6ÓigäÎ)ÖÝàì=¸Z:>PÍ!AGê¢ýîÖçîZ¥íkÞÎP¹aÑraK
;á¼^ÒYnøÕ)õD¬ë2ñ±Ìy6Ìà±öTʲFì¢|Øý
+1vPPÏ I TËgË9áÃCÜ=/ϳ\¸i.SSáJØ/~ D&gyº_±ïù®õ³FBïä`dÌnIÚyð¯¹z¾~û
+ÛwxÄ·EÍöV,Ò.jÝ"¥Ø»$Kâ;VÊ祷«S1aÕ[Vf6('r\¢ü@lÿhcc¿{Y2¸dÛèAû1ÑÛ
¼ I=b°p
=iGаþ´3ë;U0äbñ1õ`ØY^Rö¡s_b?iÌ¥¡Û{NRLÃîuvÙ¤ðu¿ÛhuZ²\´¦H
+Ê¡il{Tc÷äpç¤ñýà¡ýÃ|VüaãYËcþêy¹_çtÅù.S×%q»~
+ä4¯iË==£+ÚÊÉ5
+å ÜlüíÙOÃuþÁrTXG³^CØh˵j5Zd°pÄ4ÞlÎ5ï¥v8Úùü£¥)¬ácÌJ
g#ö¶¼
É®?à¾>·UâPõ|7a(°Ë
+3jFD¶÷ÀMhGñs
+ óeêÜPYù?QGOòèzSÐ\xiãíC§9KÁ`¬ÇRQpwMÝ$k)Ϲ«vTIKîâö4N~ßìâ»YjE¤zb&K-nù«SÁêÛï£WÚ@¢à¶Ô¤§¹¼´
+ó]¼@È¥óÚìÄò·âÑ»å÷U¡£Ê½fÇ^"ÂcÕzúBHÒî°
+ºp¹bP¡{Ê
+ö³Ö¾FÒÓøRúNvhw¾×ñøÚ3þ¡èÒ³ +R6&×#ñ¹*@ó©yH$éµWn·$Ò\Ѹs=)¡{ArRE/Rîq¿Bùº/êjªc»¼0ÕA¾Ër±qïè:Ä!ø"Û¢æ»ÞÊÈnºb>¶úíñbÅ»WrÉâ×
+´0
+%òÑÍÉËáRKZ)Ï¢EnFÚLÝ<îįÉ$ Ééïé]«ïø'ÏÕÓU¿ Õ
+ ÖÑ3ÊÁ5Åæc }k±ÔÌòMԮ粢Û5§Ù@EÛ ã¯¬õÍlÀLô
+XPM±h"ÛñKJây´´zÀ
+ÐÀÔÕ¼ÕUW Bç
+YÜæ¿àxþ/ãá3Ì7`ç/tøD-ÁRMQ-0µÈhfCŽ׿]Z}V<?A1rOyh¶J
+0D½3ýöîGùöãm5¥+jJp}8¥áX÷-ŹݣÃôñ%ñy/¸T"Ìk9òñÞY1Oi¥eÁ"ÏÍôë{[ä-%ÅfÅH÷y"ظvìÀçk ?¦+¼ÑhfOÙ¢ô#¿îi&ÕPɯ`üFJÞg©w×ϤßY;^¹x\¼oñéê(
+ÃÀ,FnÎú|É÷±ÙB]WmËå(¼)º[ßàôêìÊ@,û26°àwBiÂD±c¬×ÌõyÏVHaÚ<AcðËWØÍ Ø7[Á4tZóï¥
+o¢Ì^[û? Ûû¼M*gÔ¯ÜEËD4Ú¾º)Ͻc¿*¢ÝÒ þ¸%õóÑÎéäÐb³·ÒÖýùPÈÞ<aèªwQRq&âÈ/
ÛXxG¯È²»
¶"µåûAþmå§cÔPL¾é M?5áBû$%ºFkÑNɯä®NHùï³'òëù¸+
+ÒR²ÁO/¿¹¢0y»o¼þôÐà \µn!&a·3;Íé`çò±'°iŶ/Èzã£SB,K\â%¶pR^sæ_'£)£DÙ*éÕ
+9²¥æþz·h*!ʾ3cÀ²ÇÂîxûò
+Ï1úó$ýkzC7L?dÊÊÚXK¡£|¬DÆ*U#WE»Ækòm§°Cð.¦þ+?!èàöÁûZ¢FlU2qF°¬'¹«ÌlnèDî;É~ÏR8ôFõ×1)Ò§ûôOS)A<QúqwÙÊ5ýªÂ:¡ýÊʯô±(Ãùç!V¾."uß-gÊ`¤ÐxÎb¸q±Ä~¡6«¿ML]]lÏ Ó&îÛ¡×ÀPoÄ©çiÉ2E¦àmésÅ|ª"GÄÑ«A]ï¹äÖ-·%[e¨¼×âÈyd·fkïMè]'eNwSÎ7pù[[áY 6ð¹9xºf;ÌlÃXǪǯñÎø*ý¢z
++0èqnmÛ\´³ñ±ÛÝìCÊJª/g\å\%ÈMª'40
JHúgâ4ºV¹Òò`aCB¼pïhßÇÒ]²õà§þ
+¼Á¦ÿN«*¡ÉY£2åí
+ÏÙ¿ëÍÎM¹ûóÕ±+²d@z
+¾ðD²bE@÷:)@åõ@ä®äu©Þ[NSáô¦OºìÓMpîkj9bE]ÀærÙQ´0 }Ì¿®!(Ù¢WW±¤¤Ý÷~i 9ÂÍM%'»
£±Poa'Ý ýü¹Ó»¡â~=áÙ©ýh jk1øDäHÖ
+ \¸
V$ùôËíæ@+DÓFH2b5¯[¨q7SäÀþ¾qÅ<eR¹¢CLö[3º({vs)ѺbÔ)éhU)_ã@6*åZUjÔ]%Â!`Pøs
+Cr×&W
+!i
+Ò·Þ¼|ö¹õÒû*©
+ÿ»®¾q¢ö#£`{FÒ
%vÁ k^Fý»Æ÷VXwi=´ïåM½=¿¾G}s!õ|¥eÿ°_{jÿD,~©³¹ÕûPX
»p±Uf´,®óÀã&~6[®¶Bª
+§¢c
+°-Ãk
+<ò´ÐBâU¸æñuº/RaTØöpÈÏÁ-Yh@0{#8KÇÅzèg ¾6í3±
+Y}+h*«öº~Løóçz¡ÙzßBÛt¾5aeìÇü?&à®Êìȱó|CØË¹hR¹æ¡Ä¥ryFivT)ª¬ÚK+\§DO}C¦KX+¦SpÞ²BL
+bíÀî=h\³Ý>ÝÌçn³ËL[Èuu}86̽µèò8%-ùú3!ÍbD÷Äå½ëËüE7grï#g¡yQn֩dÇÊ2I$á?¾WJëï³ÎdY0E9JL¢¿~Ïæìß$¡ÿj¯ÍÂz]B8»®eAGHø=lãl÷ÃSÿÈîðGª7(¦lýÞEDGW¹0i$fFLÈB:ëÈÛÙ7óéaܯYçÊÊ+H¡G|ðÞ]Gë6%¾°ÓüÏà"Íud4ÏøñAx2Ù»¨§H¯+®²b@ÙLD0¨Fw.iÒ-pèf|s»QaTn+ë»|÷U
+½¯©´¶ 3(æi¹³²$Ó§ü*c(-Åï{SÖEùe^»+:oqÓ;bÐÒ¼EJ¿tþŮƣ-SÜW¥¡®)0³±\bøÂGÄw/ºt£ PùXH3<'ò~ãÛÒE0GbhH´®OÐêþlâ¬gÖÂNGcåÁÍÊ")fõ÷ñåY8øB£Ûo`'Xé«ËåO!¨r
°XxÎm¨#ÓYÚð
\1!G)é];0o³<§0ðâéÆlÍ,pÚSS¦Q¿0ý+0áW¯rë4p*åÔB18WnöJAfbBÏ_µÂõëÄnb73\r/Rîéª:l¥7¬,Óh gÑQmóíÝïù°PÐÞØ>gÇËYÝ$«û¦ÖuoÑ]ÃðRVK ZoHÏô£RµÔ$àõÆæÈïbl¨RôÆyz©%¿O¬Öÿ"pÐN<Az_÷
+É6;tØ$ïè"@¾%°Tý.=ãï»x;ÇMº 1ÀÊD¾·av&æÔ0~¤A¸É*ËWVð")Õ1ÉKúµÎVbI\GÔÆÙø&«7Ѻ6]8a#¢nÖ®tê/¦
+m%æZÓöZ*öhæwmvÊrQ
+wÚÝzüDê%u¼Ýd¶[.]ÑÆÒÃ0XÐpÌ2UëxÐ9|[~R'¯S±y\±"êMìÁµGdâÛ/DóCìEoô±[FuN¤.K²piâ~Ë Ì
úÖb½\®Ýá|Ó`ùhx$M»|µ"ÝÍþ"ÚúìÌðÍ
+2®É!_ÆGgbÐ`&8M¸!m¸ V1hó3"]ê$=¼ò@èS
+å,SL±.@²¢äù½øÛax²rè¸çLäñ]QO³¬£ØZ%ÀVRA
+|xªëCyírÏ
+<PP}>ÇÁsA=14¡~v¿×ÊWc«²ç58¼XÞ2 `Ñ÷ÿÔ ¨ªßþúíD®è?\ÅØØy|²oLO|0§$:$øûËÐwðì2ßå¿>NÒFG"ÎI2³ÍÿUm£ëQþ¹|'þ=ç
3ø¼ÈBãQR³SPAê;°§¡þ¼]¨ªÐ®d=¼k[á? ä²ËºvÃi¹¾UMYFÒÑ]Tzéoè\¬ÌlºNÎÛ6¢¼þqÇNo/åÑßP_sX°üh¼gd8lëF9¨°3òR%°7#¼=
±É:ZNüBÿ¿5©|üÄ}D˨¾ïB>år,z6OSw.L*k«¥óçëÚ;çpüféelùäò|/ýZ9óÎ
+ÿOD4-],
£ùïÛâß^ KL¨òØA41fïXVêô§'
+K]Ϩ%ðåèÓ+tÁÄÎ3f ¾Ö5a~:¤ícȯAÖE&ãê×b\à<a»Ø0ÆÔc¢.i(ÙI÷RkHVD³Á²Ù.¼º
+ß6ûtx2IIo¿þj3Åé
+åL§mìÉZ¹oãz5s¯¸==%¯QõÔ*µÏÌåðçìJjâ_h¬<ìùOh~öÍÄ)&fþ1«^~Ó»y]Òú6ép ,A4Ý ¶ÿs6ñë.¾vÛ½½¯tßQÇSâèÏÞÙÈBcX½:ßÙNÁrå\¹«ÓE\G½ÊzM>gĪE@õôh`ø\ ¬K at n)Ã{Æ=Y¸
+£±þøaß^Æ{Jg5ùW©QÄgé½¼
+Tb×´KükÂw
+e1í$¥¯
-VÛ8ÇÓ»àxp¬¡B§^Ñ®ÂÊ:úV¤7[°¦>X`ÀêQæïE3(:¤,þ£ù»_Óêóº^Nø¼Ð±sN¸/ï,á¯Å-ÂÈ#Ýç~åuêè1Æ5×ázÈðIÄF*Õuð諯B¨Å;f?Á×Za£Ë+E¸ág´O¬
X'¥w?8Ò=ÒrûÂã8ù"?Æx{I¿!ûÉö¾º|G¸¸x±Èd6KÑÞS» °ã4.i§ðfmÏLBÏYõv¦ýÔ3iäo´õmÞDí`¡sVŹ´´¥@°¶7¡xò'>Ï#ET*\ahG6º[ô3ûÌØ@RÏ¡5¬;¶Ä-ÎbªtÒvkøX¨Þj5tºZrroY
-kâ,hÐjWó
Úå»OHî
-"N¨ç-$Ý?ðF»û´çB3¾ÑÑñÏÐM1(Þnwìçp%ô²óïÃÿà¿wÓ°¢ñû{åb-,:Ù_©Ðõ£Z[íA¥ô¿{ÀI£).}¢++ÎuÓsEnù÷\îd®¹p«¿Oi¤Íxd»n0í'××Ä+Nôâã1@÷[$ÎÊÛ~-Qßêno{E`äïõà¶B
-òëåæ =ÒAäãÂkÐÐ5gÔ"ú±èNz<ÎNãEÙÒ^®EUèðV~B[3K@£ôhѼ%]4ÛDóÌbÏÄ|AuE@[¯würÉc0-Öï¾sÐzìóyG%'"ôJÒµ°Üö4ó°-ÅÖO7Qn
-ÍÄËk¨©°ë¿0â´·m
-ÁìÇ?¶}CÿÃ-Mqé¤+Xh¥£í3ïû´`í1§xTçÙqãh}ÎýèúJyðè\³f_Kq²¯a'¨R[6!-bqã-ç$%¬É¦úËz}yØ'WË맸
Qwëð 3
-IËY¿G)VRÇn^^ÜF¼§÷²{
-Ú@»ß~øâDÄÊs}LsvÊïåÍzhnr©Ü;¨/Úeã´_j
-àátôo :·k¹Ì;:Í-é ö
²QoÆ·¥úP¥í~âüI4¿Ä>hßâWé*&TÂîH´D±ôÊ*UbÃ
tDS¸´g]ÕßLÊIUux¿!=`C{{*ùúñÄ]Øî²A¿rÒuçÆf0¹üvI{cCƸ&½°hfâ±o>îÐë³ÄΪëö>M¦ü1e"W´7Éí¿nåÞÒ^æÒþgO«p¡a*Ö^@|rQbsú±Æ×G'Køû+j5¯æ,ý«kö'ÌîÜWFÁG{N²ÁÞ=½/Æúus?Ç«{"·<Ðà
-ï^¨sä/hÖÏJoa¦ðeÊÀ^ÙI¾,Ô¾ÕÚFñÜgÃéAWà#þH-ÄØîPÎ2· LDhÓâÇ5}w$$ÝÊ®±ðíÚ¾b4eÑçZÝUd¥«ÌøpÁu¡àµ}PGõÕîÖÒáyCêõv}Ø.
ÛuòIñiH×ÀßÊñõô}Ø®£Ûløªð[ÉÀç÷.)èÊóÒc?Ãæþk
-±)!+Í»+4¥Àwdh³ý!÷]ñít[Vu7°~òóiyÇ©ÀpáÅl|Ê2õ.êÑ ·xÐü¤¬Sï°¹ÒO^yÎ^TJÐÜ4:äox¢Wórl^wÚ/i
-**¤JôYõÎÂ2+x릺@ü
-Q`ãØëd*íPøPjFØ7uûÄSÙXGr«;JGÑð}Z{Ø3ñbóJ}¹ = N
)Ó?Þ3r»@ÈÛ°f×làv7V!b|ǵQéf,2g :KåÆDÙ±·M){WOñT¶yDMàU¢âé(î¡°{Ï俯Ë,ïöu]Kµyç¾{¢RTÄôAÞ8r£
-5D¸ýõÆæñüq>HSacW½NyYNÌÀ$èÚ§8ǤPl)
-³ã¦°±º·´þÍUÎ¥¹hK#öæ¬`"eJ~>"}5§î¸<iMzvC,ÑÅW1èÞ}uÚnÛ¬m$£tªáÄg°Ä½]veLùzDäÉú6õiiFK)oNJøá´*ÜRl*y w´Ûð´à)¡Jüw°
-0UÖ*Èa¹¥PÐòÆöâáGv¾¸Î_åÊE@ΦÞ÷7ß+Æù·]ýòü^Ezæà¹4°®Ä"Ð1t¡¦³5sê¡n£*®Aí|UB©Æ¾#ß\PTHGΣ*ÎuJ {´:K~Â@ZJÆåá³Àt驯î¦[ûJð¯³7Éñ+è¨íþ¹ÕËÐp²E³³(&Aâ}^)åÎ ÉQÃSJ!âȤNBnôÍúRå¶4Ì /êÂ
-³ Cõs;Ý%äR#)?Ñ»ìNîθ«S_ûŲÑâMöQ|QèÀË´O~Á¼:¹4hl±${&/Æ pu¤D{èé s4²|ò] ¦²½Ðèµùo6*
{ ¢õôc#e*:ºië÷¤¸àvtÝ:Ê1wÄr¦ËÔþò
-W¤ã@üxϬn¡-
-N¢Ä{§K ©À9p5a ¶ø?® 9þÇÁû¬ØJïºc¢Du#?è þP
-yìQÐïÀ¯wQÆDqfݳ²4 Ufu.¦xÑ^Å;9áâdµæçd§I¸í
-=y^|©D:LET¯@6ÓÊHr6ät]·Ôj*ã®<E¹f_óÄVfÿÆOV/Ô¡HC#åABèà^ß0¬g.0©àÂà*êEöL¥0ØWÿb§É½;ÁòâòÍt^7ÿÒ¬=õö.Ü£ïS¡v!wàvü±ª.rå§`(Ãx
-UGÕü²á§.Ʋ³.Ö¹ÙnËyql|'Scg¼)ª>M+v[¯8[æ=aÁ§ö
"Y&&õè´4¶J¶Ø¸Ú<:@_÷õ¢èê|7Òyàì! ¡ ÛÄÅRÅ$ø¼s
-iÔ~bHAýeSá-<²ïeK!g:8¾h2è'xÀ¢K©£¯½×_IL!T{!ÂÏÁ»w<YÂcäQ%w÷w̾¯Àsë½
íãuu5Sev¥ÜéµïgËwTòîôLñ°ÞèóqF~LB#8ûÊÓk2¥ÝùD¨Ü;¯ÒC¡Í¼àR@ß¶Êq0~*%ÈìpÅã&¥oÀô%'o¡u̺®lfõk.oÛrJÃsÃÐvZ¹"[ES²SË/Çq
iä¬ì8¸1É9ªÚ¤1æ[¹hÒW¹¯-Y³3ªaûmDiJ)ÞÌd[Ú3;x`O3¨j8ÓLÂE4ÞcuñÁn$qßàÎTéõSUE͵s
-Ú³qSK¸Ò±1ð'X
-~ûT
-~¹½%%òÿè_
<>:LýÃ'ïÏù%\SºÙ¬¬äí
-SH£ýôÉ
-ÓG«S
-Õ ½U¡ÆÖüQS$ø^®<Aß¿H+ÏîLf=<AäÂA©
-ª¯äd¦áÓ\¥É5´õÍÌ,¿-°²S ¦6ïFïÍU !ÄtRÚpüá|,2[lݦ4/*Q
-BÖºg}¸!údf²W+ÅaöïB÷ðOzìSY;kUõ9¾tgÎýõª,Dm
-$ÚWU³q¯'ÑwmØûêN1k`§<½ÿ¦Ä;Ѷ¨Æ£øÉÔãóóÎ@atë£~W$1½ù"¨"¸Í¤×ß±ò³íÞì2¸÷=ù¨F«gZÌÑåV¼¹SÍðb
Rà.m}¼îVoÊþ[BòÏ{°Û&î)swÈÒß)äÊD~ý?;+õÝç~«å&nýÒ'#ìçËZs³nËȼ·ûæ+±aÆG§ÀÔ2¨X§¯áòD£ÉG{Ø"heBUØ2TÑÓ&ø_nJöÐ"G§ßO%m8ìÊHÛн¥YTµXÉHóÜj}Hg©Z§,xËðÿÜzP3QLªa÷i`¯Î®£4dxÀ¨v0Ï4I¢.YËó:Yy´ «ÑÕpJïæé´éÎR1½yÿ
-fÅÁ¾^QäD êù{¨¿£á¶fIÞ,HÍX Øë´ä"`Ü׬°éJD;¥bµ¼íá[V8MÇpmçÙQU¥Z
-½ó
-¬tÍ%w<~Ñݲ1ºjI éÖBÊàøÏ=¹#ÕIêHF¤aeªAd/ ÷{ɱ5X_ß|$Eêǰ
fÜî·ÈA¾vÎ( ÓÿÜ`bÜã5kk{~þ ·»M&Ö¶=åa{þc\'9e8«?SÉ[×¾nÄì¯ßIês¼ïÇ ¶23.e÷å¦RLÕ/ý´Ö»µî~å$Hâ*í·Gݶ#ññc[îÒ*¬ç}C÷¼Â>p)¡ä¼÷u
-)Ë
-ÏfFÔÚì_µs7Û÷°ÒêO²@A×ÚºÒZú=&Söµ0'uº
×^
-FEzã½àû Cå®.ErÂ'¤Q>&ùé}¤GB^#`µðfm¿~Òi
-¤J|ÒÚ0`kñ>æÿúæÛS$²CBKdCÕK!©¶bqba2Ð þ»Õ³îx°Ì,j<¼ÊªÙ¶Ü4ùÊÃ%üênOÿÑCk¬?dU|ZIÔ3ihA%£
¨²<DÞ²AÆó\a¢
-1Ðú='uVo (R7` ¨YÿB«w`ãAée<4§Ïæ:OOÀ_cÕã¡v¾©·£ÕÁJ@,äéQÒ8àuëØ®>Vÿ±ªäk¶ÈgjÓ´^km;
-3ßÌ@éÆ@r[
§ ãÆ#äIA\ÐE¿BïöR¨ëAóÞÑç!>Lçðia fì?ê(Üÿ^4uõW£ÿ²ººQ°pOS÷ë¤æÑÀ¦F^há.V²ª>{+ÿ^H%9ä; ¹RÈó2ûÂV-_ÓCyÆËp¬îÙS³½ú=K#¥µÚÝV
-N)·ú¬>
-~*¯~·@*¶Ø(] JóÚx#²£ß-âÐîú,Ü@uC¹Côµ{:ü'Hi´Þ`Tè.ww¥¢¤yh,¤àfÛ«ÂâÑ£¿yí´¼X7Q?C±à©ãb×Ie·ØûàTôôÜßYÚà[ç[ÅèÿºErŤVUÖì
-dÌÊzÜo&ñïz r%æ ý. üÖK²4Ï/-`=agôÐn½SIn׫Ó%Héû½0×eeQ|ͨçâT¸G¶îyáÃÈÃ~ö«{~(â¥(+Ô¿£Iìá+´xbÃÏI3"cHÍô³,cÍݨ¡*¤E#µjº°®SúªÙÍîÄójÄ1x\îÔjÌ»]g2[=ÔÀ¹Fé6WHq_ò·ÍU¯iÁê9p OQ+ÞnéÊîö ? «b ÊØfOA¶¢ðM§ìq¾á(èd14HèFC'ßÙ ²[J}Ö+»Ö;°¡P0úÌÃBi¾
-9±2lî_7\%T©±FoÍDWÊ©b¤ØST1êXÚvÌò[YËCoÔÑWÊlÍ=ú ©CN
-W¸°eÍs5Ò?ýÖûlèÕÇUCþ@OwV\Ì4:ãMÀè¹ÇÐK`
-L*«rø
£2ÔßÁ9vãïÍUzLµ)U£zÚ×ïh!:½MSeÎA¢g`ñM1jáñÑß5(átETbÕ9±.ÃF°WÜsù.Bä +-_óu{¥1.QsL¿÷Ä¥±VZ9 <
-©w¸ÈJbVÚ´³o;s;¡TÚNòró6رòÕi§cáõþ(÷ß·/X¦¹ ¾µK¼°b#zÂÌæÂ§t§EÊìTQÒøQ@þ© ÕÓW¦Ð1 at 5ÍýJɬ-÷¿dN;nv_@ î2ÏIò÷õ:;qÏmgråçÅt-I/tN îiÇæryùíÀL:ùÎÏÓö´ËnÎ~ªýÛÀH°*æX§´¦s¤ë9¬<¾Õ¤ÿÒËpªÔ¹dX÷¾)³ä;FV z²[Y3âöå
-5¢NÄÚÇ0Qæj|²©Ú6~(LönÜtwðyZ§|CGã_ÆÞÎ2ØêÍ#UÞòEÝ©8/ókkT! !{Ê"gR²!®_û͹pº8é¤è{Wm Ù§ :¸ãaM3zKå¶reXZ9èÖx ¾bç{Ò*îGg$6¬ë"Qe\¡ØÏÕF îP½jy%+:ë׳q(l på-sBÎý^\{òÖoiíÃËÙ»UÒÿeÝûU*é"Y
-kdü<¢"eøq÷ñkajñDv0Oï,Wdpçɺ¯Û¿Ý6O
ö¯2»V1áyudä}À^çóÂGß;S©úÏs#ËÓÈ3Cô(Jøß^Ênè8P¼j+:îü¬×Ch½«/Éù wªëþå8ľ³£þ6b ]öä64y·³¶Ó¡Sx½sµø;Ý% ëÝ~ª[ª/Å"ÀÃP6ÏyQÝ&:îSÁå{Õ|´kÎTÚo±¼ÚFíjv:@×5Xo¨tvÇí3`·záw
-SlÁÊí»<OÖXåB±ÒòD¥ (ðWí`¸û,hVú
-û»ÀU[æ;ÌFLõÄ<_÷íy±¼ZNU[Æ)g³~¯3ßhÍ-«eHÐòñ|ôÄÏÄì]þÙkª×+^zÍ×¶*÷&ôäÌøci!A¿æ!IC)çM·åOGïUREIä±óN+k{$
qþ±t¯R)(3b¥é~|Îö<]`×"uL"YB« â^¼ÅÓõár¤\5«c`çï -Ì·&ÎÔ`zgáÈ`'O~»fg÷Þ¬° ÏDBIÔ¢/MEk; ÝLTO~jëè³Û÷Ö5h÷ûäê_(wÑÄm½½gðIzCÁÔ,yæRÿfÕÐÞj/T1³IÇM(#·ß36`Yá^?m¿¤l.¸°,RgÛîéø"âIÃÂû®n!1Ø7Ê
-Á}oOËMäÖÄ
-2sîp|B[ûyêK{ãWb:¸¦ÔúLרx´!Æ~Q®jE'Å!*wA¤µµÑtM×GêhïJðæ#"-6IzR9Ëæâú7u?4WtÐõÉE}H!<hÏmøMg¦oOÄAAVßà×BÅJ·&®IÄÞTãê:ð¸D9À«"
-» /-¥84PlÓ©¬¼°sÿif½ ÑIrÿ§kh¯ÓzzÅÀ;2S9ïëBëHD×§¦ü1ÑÅ%ú7
-#ÞͲhMB/|£:QJä¾³§x®rbüóhíühãëHF"O *vd/b²5l¸Yê$á¿Õ×ÑO©kK°x(±¦¹½$B\Á'ÇYÎ^Àfß=Ççzéâ¹-ÕÄÆ3_ÐÊL0ÙOª¿|9[£]£
-ϲføYæÉS´K~¡¹|°i
-#QÞn>ãínÿDkñòOo¤ýüEf!TGÍvÝ1 ÇEÙes
-¢ }FYï{4
möúôCúwÎt9ýâÒ¥íÔ-\"AÌÔbEñUérrüYÂ/MMê¤×ÔÀQÁX®µ¢o 9ÜQ¾±Ú
-·
-¤àCuHknÄBk>/ÆSI,ÔV"Uw{ÙÚE¡l<WÛ^N¡×»_
v²ÖPEñB<_øSc
-HÀÓa8Â|kï<-&nÒ¹ ä#<Ú~
-ÿä Q£¾¤óuË·|yåå@ý5Uõ3Læüt
-4Ð"hX¶Xc¤û>ÏU?fÁ/yFËÞ¡ð¯ßÏÎÜmwÖüS¼Ì#þJmãlPp×z
-í`á\êRùr¢ÌÛH&õVîYªÏ?Û5 Úq¦ º×óÍ1f9ïºÃy¡é£ùÖêÏgAؼÎ>ÒÇB®k^y³zÅ!¢*fßæF9S%Ë{mpÁÔ<¨ÌÀi$Âh'ÁeCì{$us`4Ì®¸YÙ¸RtìYî-.ÕCÔC.ƪ³ì
t§ÿ@ïÄ{(
-cïäq}f÷Ö*òñgÑ>C?/nøÊU£Cc¼?ôÅR³¬æÆ5ñ/1\ÖïÜ,õ:ÁÊ1mßíÜpzÔ/W»ÓüózûlÙBd#¿ç&ÖÜnðú·ÀöÎiĘ̀É/Ú:Y£ÛÒ±M
{ìeÇÌ©¥åD9ER©>KmßÇ¡a¢è±?u
-;[æQD<Ýs
@øÀ«À
-Ý,õ¡ÑBé¹(×B÷ m?*²Û°^aù S?·sye 2Y·þí2_Óg¹øj+ÉUû¬Ývô&pn.ÄËùé²lâ#éýð s{k§ÛH@ò_qQ'
ÖbXûâ«}Ô
-SD÷q7±i[\l¾½½V£"MLÌE(Ê~/å=$ wÀÓ¬-Ô/¨ðèÑX?zÊCpoÊÓ0nP5GªñJ-sûawì
-Ýf`gí~º¬;;.å̸Gö*¢ \ð³ýÿ¿vnÜ9uÃ¥ê´2ãp§¿båÁÒÛ^ÔQG\_°\¹õýÔ³õYÊhv1\qØ©C[LO<Õ\#ã)Ý"ŲU¬ ôb
-®Dÿ4¡AV<Ý1ÝÖÛ zwÊÒðÿA0kYñJ®&G°Ê]t´x>É2JWð¬«ZØE$Ù:繩ûddÍ!#}©Z
-ñíþ)§´G¾_"|æ «MÕL bêôM\#!×T;«¦¨zw
-ÅawiCÉà¯Âu6ÈÁ["I×Lvý¢ýéóÈöUo
-rϳÌÊT¥"%Y,]ÞÐ×zj*#}ݱLC[ÐÞxJGÇÿZ½© ?ÄÎùâ/4½2^(ÝrP¦ÒdÆ`U]
-èGSPbf{ )érá/øü@kØÂ ¸Ð?*
-¼}ô=FÈeÕ×ò£*5bÏãR\htU¥Åî¼ËéO©û¤å\)>Üä-´/va£çûpgõÊU1¬¸ÊC9LÇPÎd
-7μÛt*·z"|
+\«%OI¶;%w>PijU1o@/zÐ<ÀSH³ÊÄÌVLû¢nþ,EF4«Gâb¡ºøRÉ^jXu@Á (Ó?¢}q
+¤%ó5|7ö}»'vm| Ûûº»Tú¥È
+êlðC ÉÆ%Õ¶D¿Q<Wz£`Ó1ò(«øD¤53oÌ=Wݽ?
+ó¤Ý?¨R]IrúpfdW6@¥¬
«KïEôAÅÙ%K&VþÚõ5!ÐàÖIv¯ù*Þ+lÍÒiwmÏÏJ® `ɹ»#I{õ_//vI[Yg36
+«ç(¿DÁ6&
+Ùpi7µû> _S'ȵ¦)¡¯âJýqJ$i³¶aÜuAUyD.\}oKCfJJAW8Hd SE_÷¥¸j±GÙÍ
Õ(ßDdáÉ¢;¤R_tÜhÂ4Zë
% X¦D*íZ×l&_éNæiy¢ïq¥¸
+[îYa©>
Y<7S´ÇýÞ/¤b×O`-gð¢Ç;'¢K®H)>ÍÊ·«J2"Éó֯קÓê}é;)q±YàeZxËS¶¯K£H÷1Vy«%Ft!£¤ÙåÎ0GE
âàYýáÒ&¼)1º*`
+¾´@ÍR;ó±ìfX2Ý´þ%pº Q?¡;ZØ Yí¬0u¾õ|¿ ñáZüm´B
+¼Ää4Ü8îÙì¶Z>AoÚdp³zøò
+öKæ}¥E
+ÈAYdSF¶¶ÁÚØÚ«1ÐmãwHν)3)F¶}vîkg×W £saGdOÖµaйuøÂ}ûò5v"á©þܽºz3xøÁ謡ÿáÂÚË{SrÕ7øèpa >EºqõÉtSQ©L
+ïÕË'Óaµðàê-Þà
YÖÓo÷½J}>?ôrÔ@cÐ_2}J°¿6óWܸw©©vì§«>oCþ¬# É#P`ÏjåïMº~a>0f$6töÖ&ܸ§BP:nÐÿ\¬Cû¬Í,ß÷4çÜô %©UÒ<`ßO>AÎ(C]kÿì½ôGÅ?BøU2ÞèN'ïQ·Á-î4ò¿ß;m{ ¤ºË÷LbïAêáW"ü[ÉÆ¢°TPµÆ`k°ó#'k+Ñ~¨NpÐÙ½?Àv¥pÈYl¦æôn¸}ò¶³¸ÍR¡¹uø~ùlMÃÇ´ª÷«£SmÛî{(:fðÀèi¬(êà#ý%I®=Zµ$O»k i,òXø¦Ð½ó¿Ïàk´Îm>2ä_/RT¸z¨Ö4Çp±ëG(sÒÃÆ~Fß²#²í
+EvlKQÑR¤2[?:lø{ü/L¶8ÊO¹ËÞÕ8áJßHôP*iÇÌcÙzìuxSïý[ýùez^Ñ"Ê«¬Üq§î
+xµòv«õð^CJ3 ^ak};jirñ<H¢_ÂØß]ÂqNϹò{¥¢
+îNrk1îEVÓvÝòòÒ ·¯ØåðÑúl°(
+þ^Î^aùÁw´á뻲öN/êg*=¦^à´pyØ%wõ¥<"GÇAýji=ülPÎ~«[Ö³igáf¸¼¼ÈÓ×§,ÁýÓ© ,o?P0ØÛ
+ëIlC»#? ÷^褽ûåæ'
+ïþ°Övwk?Òp^eZöîñgê`ß
k £Áxȱôï¡§:ï_GÊqq,&à»nOZ{Þñx±eêZ3FMÉ+ñþ®¥ya±=~I$J7È(ïÕ4MËMÇù¿"*³i°iG÷õA3/ÄuæXÅ|n\ÌxÎDÈ2ò.ÛÃÈ
+EwàXD»ZÇ%¯¹wÇq[CxsÎòYS,©Çÿ¢¥µ³o´&£|CºãbìëaÏø0ìiFµÝ^õ0_<IPɸ¨>^¶ßA¼ËjÚæ Ö)rTVxèÀÒ¼&ù
c³y×ä5eñïæq#òÃyíuºÝuVpÖä_άçV#©-G,@(¤ºB¬}ú¦%"²@E}âRǾJm´)ª:®Kì%ÿQÃÊÕ'¨¿²4r:[jjÔdù=,þëâßç§»MÄÆtë¿#ÊêwöHÕ c¾/H÷2¬è$þÄì©ÞZ`]ׯàÏ9£#}/U%9¨»dï.°×£ ;ã¬ÍòjL~Ïè/{QÜRgÀb.hâ°õæwiËìà¶æ·CëIL3x¶±"Ý¡y°ÑV>~3JYëÉ vèC~U¬b4,ø6õI£«[µ³úee·Ç-,(ì
+Qný#ð»1oôÞ³r9N/dñ[È0Ô1WÒ¤èJ?."N{Õ·sttç®$+øB)éôÒ{M²/Y1*GPrñ¸¹üç±ÄÇ}MR½z,3&Pr½p»ñ$O¢y±ÁáeÄØ·IÀBsîà¼ín}οɷU(æS[ÖUAUÐÔ
+5Ëb¥â«¢ÏG{TãOÄ
+äqÄÆgäÌmà"§yרbèßÑ&äQ2KCvþñ'Å [íI[Êxþ¯L´g©@Ú70øI6ù±ìB
+øû`z¯ ]ÎüÍ
+5Ô??I3H at c0dðLld»Pú` ®4ïØ·¼MßR®ª¡í0fë ªYGÒ-xFà´ÙûA5,óõB:
+ÛßUo§h\cõs1Ð'¼~U°rÈ
+ÖÓ;q¯ j.À!'SCbG¶¿âbO²LDT¾$¼~Røu/¿o©,ûSXðÍà»lÃýh7íKÞ\ùøùå¼ &áL^N~ȸ<îû1À¹ç¬ÞPi\$`.c]vÅ.äI $´,ø"кKÝES!9QÙÊ6ºõBHÂd¢@ô]eÛu¦ün9Ïv#²w¾ÛIö´`<Öí×.Ü~Ò,ñÝéÂòã¾aåVìéàÌæPÝQ ríEjþÝrÇ/Nz<· ¶IÖ8
J;ø}ÉÊ\ê_jpûüsï¢yì`¤qQóà'Ã_;cÛ¡ÈU¨Ëý@^åÊGQø
+Rf Ôí¿±ú½Q¬qå«`˼ìeØ,\!ïçyÃa9ù¼>W\ä3¶÷Ûb¦
+/LÉ>«Bå±×A`2E={±Ð [éO¢Ý
+>ÐCÞ߯
+Ëyæäá©å,ªAÛ½Þ[dy¦Z¢ÅdgQ¥¨3£´#¯·Ä¡/P#aH?¯Áj]i£BC¹ÇÍCä¡Ç»
+75vÍýÒ[AHäZìöMìÕ 0#"ÅCÎB
+ovÃÔ²úÆU3º³W§ÓZâYáMr²¤N$¬Jö×h¦Ã/ÓPGÜ(ñZcd=DM â°û7úHæhY&=
+Bë# ÿcÿwMk9qOÄOk4¼Gó£"k-Ptl£?±,mã¸o·Ïè±
+èØ^¹í1o
+®_Ò+a`G½g̦aÕæZEhJ´Æx³`í§¾ÜÃkÿT¶-iÖî·g´ëSkú¶d¿z5×8Dcù7U½Zxoª»îPô)óèd7?u¹ ÷µ5=¸ûæ.÷ï×ËíØ¡J®Qzõ
+ªýÑì«ÅË-T]aëó¨íÒFðø3
+fÚ8sÖþw÷«.rü,èר;¥pËjDpÿ4Áã#.Î&eqàìïù_âÿêcÑ?ÊH¹G±5Ý9zÏí<p}Z
+Ô"úÎõÖH^&jzJð^ðì¨Gêæhýü{8ǹb}T>l31:î¡ÂJ )oF8ú¸óHDD#¦^Ä¥ÕêvkÌpÑ0]aÅ.È|!Èão01?0lwc-2kÆæAnvg at N¼ö
I µ¥IÞ¤Ðÿg°KÙD^Pôvý
+÷ÿ\Òﺨ§PÍKg
+(¯Isv÷1Z")¶«,ÕkÝýò0d¾ÔFîÌ«ü±£õRÕá¸GxµvAÐÃBಠçvFC-µà<u>J/Íÿ´ËvùNUo¿ÁtÓÓÁäR¿ >6¦):ö
ÚøClù`ÀðÊORRúërÓ¡LØë¨¬áDÛíëÀ
+á¢&>ÏÎ^+ÛlCzÐìë*SÚ_e)dk_¨Å{3°!¸y39ì÷^¨¬³r<adáUÎ
+åK´åÖÞÃûEK2ú¡ô>åÊ!»¤i³h4Á3b¯Â¯uôjéË}Bzüj^fÃÎ(O9$Õó5_tBnqs<L:e³Û¾½Ú_âÿ#4þã¦{'!(=kÑLZÊËzZ Et%³Kê5¹1îÎ:V®Àh·á9ô\|\ê |¯Ív\ª <KÙÓtËQD=;%a¤§©QÆc×J[!êÊQ>öWàg´|ЧʥÛ*HÖ¢_ïóÚ·Ô:7®ªî+å=1dWcGÚ*ÈyßKØ!tìùº+âw'æ*2àÉ÷°}
+ä³PÛÕgÛN D at y+NÈТâD^Õ7?å}jæ¬V-²N+Rú<öäúÅ*{Aôþ
+Éɹ§þEY´´µAÌâHÇwÆð"c2d|cXDØe¡à´F-ÏwÜNÖ'ÝÒhZi² l!;»àj"a7åã;ujøÖÓ3IR0î$CÁÒ-Ç$ñM6mÊÉK§¸Ñ(oÄä½
â
-aÊ:ºê{ËLàEÐ]ÃÞY7íî=2z|½¢Ó:]R¶L6yÆ-5Ù- q¹WûVÐAÉ´NÅļTEô´©Gë2°Í?yÐ{RVé(©
-A4PªÇ~à4éµn4¶ó¥¾Q³¢¦{`Ð:iýúO÷µÞñN®òVwj5ñ#y±=r±¬kÊ=/Rï-¹FÕüP¥$s¥1½±Ð¬«â꾦êbSÝ+ %<ûE }±Ùák z
-}ûnlæÿT
-/íl¿eÆiEfW` M4ÓõlI¿»rÈ\®çj«ÕÅzWµ}'kx©ðûKÞûS
-=×NC-s]¨ 9Yt>wEh±Xo¨sA«%öYè5þËl¤cÆ:NéX¹ÎÇ£)Fõ'úÏà
-ùå± )h1Ãlú`p´^Ú´ ßâUòTýGå¹
-¬Û¶÷óC8¿ô|fX¤àìv>àõ +òD*Î^Ò¡·ÃÖ¦¾.Xß
-peP'³7kÎNhµÎ%º?wEä? #3¢®_ÇÔ&Ù+V9¨ÛÛÉ7eã®G#ö¥:¢«»Vóv/8R&Z\jã 3ATýܾ³×ú¤J03ܲa}üd£ýéèÿcßð7§ÊuX¼ì¤®ZYR?ßÇÈO~©¼ó?ÃOÇ'¿,¦ðEÞ;
-.?ç £Kè¦ù¼®´@òNOùËäalpKå$p¿¦Î;CãUÌ'>Ã"é[ñ"eõ%Ë»Eæèا z¢Çç°ó7~²}ôïù÷_Ù3N0Ó\,«k.Êqãâ{!¤¸ð
cóTH{avÈU«
-ׯñ·NpÀÅ%.Ï
-zcÚx¬QéhQ÷,d8Æ:¹++
¯éZÐæfÙClSpeÖæ·ÅY¥uv2鿹·A©ÙNHdö]I8ÝÝëé·¿T ÑZtèðH6 ·w¡wº/î9°²ìYðTRn%ã[>¹g3Sôb »;4eöçR>éýÛÓ¦sçËÉe TúùÁômpVÄã
-¹ãë0SâŧàZk¨
-öbRT¹"ßtqÞÐÃy1âkµâ?¥ÿ:èNÅn8$MPûK¢M
ûà
åt§Tÿóܱ×ÀWR ymŹ;hÃ.ß4Kº|õ>¥ñVÓ-½R!v:h!aC'ydkR¹¢x¯IiüP¿9½áÒÅöè3$ã{®rcd2ZC
-ÓØõfO®Q|FhÍ18*®K´tôkúG´6-ÓÖë®ïæç2dä$ òÿÁd±3ù@`¹òdzâ¯OÿξBrFLR?ÀÎ#ݪ@e/Úú"©YTÒàm
-«KÅRÙdX8D\©ö¨D5âHôL<X0n&ßÉ·mÎ-þe
-rϳÈógô±eÁ¸"3Céü¡WE0_qFã{]ù+<½¦âË
éÀÛ-Óæ¬.ܲL©<»*áåñ¿7¾ø¿4Xªz
-\È·l¡õ¬³I³!]¹=¬Ì{4|£t³Èj{2»! ©r®G¬cÄaBü¸S
-ãþîÃô.ÓJ`&ji#©ÞÜI$ô>\«T¿Uì P;oCÀ>GTz1Á·úÈsËö%Y29¤vÝI Wú»by/~Çꮳ!~Rxö¾ÛÖáÉ%*>dé@hp(àÊÀCãKÀK¢T#ÔêÊí
-Do
--l¼ÁØ ñÌù«ºwÏ.&WµÄÇe9h¬y#èUP¼6ñDÊGlµ·p÷nûÝÅóL{·®ê¾Ö-Âö*ð #
-²*·Þ2I«´Jo8"wŽ6@?N ÅÊ7
Á
-TÁ¥A¶}Ræ9ÿZbÏZ¢`b¯a]
-~<ÏÞÎíÓÙÎõ´cj¾ÙÙ-µInåü·L»"8»O§
-6µ»ç NrM11?;L_+ýûéÊ(<¿)íBTú¯áËè¼9@`3|A,æhl³1õhë$xo<Ò¦áÙÔ&eñ
l"ÚÒ5'½õÜr»ÿËNÕשg¤EC?c2%¯n¹]DE»Ðz:¤ýÇis) M #©eåK¬Ê»XÍØt<7cø¾~˱¡;¡¬;
-ËÁÕ
-CïuùÁµB\ÿGÅ-æ e4⫨ITm
-Kp µi%Û9g
-t§¨
-ê»[).¨A$ôIJ/eOm
-s²æCüÈqôãº8
ݺZêpÒEª´EvÄ>Ü©«ç³51Þá3ÛbÊE¸,KE,¡_êþ
»?h¤6ùPcÜ@ÝÆñI(Ùå2HMÊw=;!GKEüz¦Õê
-{¦ûPFÄhub½]O¦Ça
-! >æü\áøÚâPhµöÚÑÜÃd<¿4eÔìî&ëaê
-[ÍeB×_ ¨ôè²dãuMû¹LרBðdUÿõÿ2j¢e7)¨øù êw=#=BI·)¡zþäÅ"T¬ØV°5åÇ%H½¼ýÐ3ë!vúͺ¾'í%H-¢fù æoÈÞí(ÖnLå¹ðÚïk¬zïWgX£ÒªQíG0V ühÊl£ºS[Fâ?IYãF¥wGÎ0a½?9U(ºprLÂx[
-wyS2U3µ>§â²GNíB:è
-7+>\©¾'M¶²3º»·ãð]Ť¿~ªúÔ©âÒñ÷ë³#&ÇÀ@áÅnh´ÌÔï¤.àªê_ÌÛÜÌÑë
-±ëHÒè1%g<_ñܲþg|îu]AÆ+zBõR³ÂNú¤N£»]~ñ9¿á¦/Øè8WWú U6-àYáù2¦ÉÈV,ÉÖüºp}®¡Ã¿=¶Û0ªuÊoðs
ÒÁûµãâ
òc³§"÷ÑWë«#¡"ÀmñRê
-
-ÁFÂ.g4½gí,Çë±ì¿t$$V"Oë|ÊÀÔîa]=¯ôêÐ: Ój<ÓÖ8!ï²±¥EÀ±îZç4¾É+àÏ8<°$Î
àm¤ì_OJ¤Ú ®ÎÛ»~%=
-ßÈ]¬U,ü!P
-ëoóÁ¾{´§iù×sÃqÐ@94KÛá×nsM¢4âê
-²¤zPºÍCì
-¯Ä!'Y[ùÓz!yY
-ÔsiTìÌçþFÊz%òGy+ F3;s·Ðkö'
-Xf"|¼èõH`Úëfïy¼øw=uàsÿ/»_0¤R¬ nÕ׿Õ#ãORÇÓJÃnV¢dæüá:È5 B¿-ÜjÉYQ²ßpi'¹ *lÓOýT¼íÝÒaP7~Çdó¿5QÆ$Ðþ£î$S
-ÓÓåÂï¥Æz$b-xv=¡¼Ïù_;2Õßg¬<5Uô^ë|
-·+8kLÅÇoý~²;âÊB½'K¤IüÎÇh8ÇëÈAÈþõïʶ)$&jVò~Í<[Úù«(1»-x²jôÁƺcP®c~ÂN2-LiCº7~Îõ Ü}65 ²Y8ªæ²?ºÐÈ|Å{Ƹ
-HR.k¤JÙ½Cmö¢èÕhcU@Ã`]iµXÊÍP8j at y. òÐËò«Êhú=ùRx5 ?;6¦åPjz.xp!v̤"*yÿ¨ªÒ¡oÏ6ÔTúÌúý8ÓíÝ®¤Ööã ,ú«vuΦ$èWcDÞ!K÷µ¹ì¯¥äzÍGEÞ³rmnè$âæÖ )ËËT¦qÊY{ÖÎ.Ù:;Ð]ßnt~Ô¶tÇs½Äîd#TÌ®ç£ò¶
-ÓÏþeÅ>@=˸ÌÅ;S|åÄý¢sÐ/²)\îÚû{¨&³A£34ÊòK>rÙû>ì\
§gm½pb'0=Lµõjm8CöÍêBÝõTp[õÓÕõËÛ`úÛ48kÝêºÐC²,°¬õý¢ã6Dã=ã¦ÜÒ<RfÇbFfRàu
-ñ=]HØuÊ_¶XÉûߢ»43F`ZÃx1¾]¤MàÓ"`·|èº\¼<¡Æ!<ÐyÈ1ΡvÞ¾6RikUïnrp*¿<Há»±¾Bö3úÌVµoaµ¿Ò}Ì8@/ATé12gINï{l,
,ô ë©ûQÕNGX_¥±QET¬îªx¾UÂJ!Õ:Y¹'6µ]GZâhêûàë6êý<BCÐ9¿âÈ¥Â5øv^$«C%õ¡ÎÍGfYßA+8×m]ZìKÀ÷ @÷¿ÁâÞF×
-k8Û<õæoíÇXtÇ£Ò«
UÍ$gB
ÁXïrÔC ·#9.?ÚR Qn`öív³¥l¡k¢wPAM{-Ìwl©o¸DÓÞ²_9·$9vñ^Ó_éL_N°ÎòºwoïPW)T*wZ÷ZQ#úx²Í|B*UÏ º2Õs7×LSyÞçÙî1
-+´x2+e{|dB¿ò¼¹Ç¾®F@GÍ3ÿÓÂ}næ;¨ÙçG$¤7M,N<'"»+ÆØa`$ § e¹)õ#ÙÁ57
-× <i|À@}²hòv6þ¬ð0 ø"(e6¡ÈȪâúRÔeIãk=
-ýûöQ'
-j Ë<2<p? òº·&Éédþ4
^Jïn¿½Éõu§CäXNðäRñê6¼nïFfà8hµCrM۸ı5¶³¸í¦'Åë|àú§}å×ý_PXñc¤ãÒ¯»C·Ù캤ҾtlÙ'T®g@n¦ALì·H³CIôd>3v;;nÈRí°1¹ÄW.Å'ŦöcMmJUhh=: vLxh^~C¥U© ÃÅÙÅ4*däç¶N²·¨?$Oæ_ñg ¡PK\µ{½s!(=ŲT-5í4ÿIS¯ÒÏØZptF9u¼¹z*Q×S«¼j¾ë«UÐ ·LW|.4t(e¦+Òrv£nÇá37×_þîRÅB9ÕJEáæ¤ ]¨âá·ë²,I+ØW]IÇl]¼Zºz5u$ÆQ
-ÜÛ;&[~<ÙD¥)^Îõ½ðÇo°{Ô,ÌwU°]¨5"Úî»ðæÕ?%¸`ãæÍ±ûÐ9ÈHRó¨V__®"Õ: 'T~a¡Ùu
-wWb§§H¦<nÂ7î
-ìòÚ°ã=´v<·gsÌÐ-òyéɾ
-"(%t¿}¦kxe£ì<ÛÌoç½oKFu|$ðC³
-Ó)(
Ù%ÞOáç3¨±qTâ(§
-ì¼â©\79v¶pø¹ÛaZØaí
-ôw"äjSË,Ö
-µZÁmöV]é£Ð¦2¯¦Ú£í½ÜÅ2DnÚ²F¯/ëAu' 4×£jaUd|ÃLæþ¾¸¨ëéÃyb#ï]½Ê¯d lݪ¨PHW,Kï,`DvãAßó'öOû̺¾i@íyø:7ðZ&%®yAÔ[bÐP7º6Þ´G5ÈêÉ+t$½cú·tÔ
-¤¦Ïl!{$úK=eÈ}É×ådëZ¥2Êïȱî®V_-ñïûÔtRñØgg! a!ùÀ7
-?µªoçêól½^_¨Ç¥'°5øÐýè«ta±.ÙüBn&ÇÉ05 xûòPÊë¦Ë
-&<Awн°l ÅÙk±IK©²çìÀPIÎ>§J|FuÀøëRÅÌý
-YÃïrMÿÿ´ÞûZBo´ð?¿Ít°¦É@¶DºPzgÑÆbÐPfbhÏI¥BòIÖ2ä8Bm
ULrÎs§¿¶¥e¢l-¦¹²]t1fé.¼ö£,ôýFáv~A+;1Ók=Ö|ö
-I2öqÎÔãgÑs¾cf;ë"°G4ª%VÞ=ëÜö.`iUfT«ÑQãr";±_Å×~W;÷°Snî"ã®ô àN¹®ªs¦y£ñÝmV õåÖèÏ¡1Yª=iÔN±³Dè(ñ`®2ïÎæc4$8£HqªRrïvËÕ§É3
-9ÉzNh½ë_|¼^áä}0x99%¶
-×íû06ïó6¤fÒ</
-%FtmùÇË
-!ù×c®°YO½8-`ïÀ|BìO0¡[gÔ
9<áÏà{vÞÞõ¥3ßáõZåeõ§øâ5ÍÆ°nÏËzaÍÈ®>U-Ò ëS
-l÷ëêbÇ){}
-9 at 7VúÊìÚ·¨ÙËQ+, ÁØÏ*±@*
-ê=7ÒtÖ/YUêÐUÒ]h8%nÁAÚñË**>õÉIánh´3åß@ð
-ývbç1~('(i®çÕ[\{®].ASŵؤ C*ÝëÂûY¥Ô¿$Â,(³nëìÙVbznÅ]&½O[Ùàèz+</4]V¡¼Hn±FõÍ0ZZÏ<B );·,¿N³ßVaµxFd
-:ÕÑj P^Û-(jÔ¤;ûÎhïoýÌ#üÒ ß^ªÃÖ
¤9>úõÏIóçʪâWÑn)p+d¤äÍå)tmìÊ묫dn¹í©ÉëC]5$¦þ³lЮ©½ÊæàSkµvá5]$a@^ÙHbÜÓÈe_ö1=¾BÔ±ôA+TÜ¥º{¢°£ÃVécbhº+ÞO
-}±ïÙݤÃjt#Î
ìñ8g3Ãÿâ`ÆzÈÝ)+¬Ìuô?¹27Ã
??EEË2>é¤ÈRíu
òsíQjYWJÍ\Ó¦5èå¾×Ú4 ï|d¹8_³Ê&P«bÛPñ\Û0ª°¢ìy;±FZÌíý%ó£VòËõôÓ40æ_ô üò
-XQcURb¨Ï.jqq!f¹ëöj¨]ëcKªkÙ¬K¸ê1¼=
-=§jBìèyâ¶ø<)%¨j}ªe
оxÙ$в¾VwÆä«3ôµ®+Äf1L*úÂáúÛwMSÌcµ|ß÷! ¸dç'Û·¤ÿ§+(Ö¹Í)èêørÈ}3×<
-ø{¶;Ê<'piÁ*N´eT&_ñº)E`û¹^Xüüæ¸[¢'<çP©íÓáÏ[ÏÖZ¯Þ´$ÆcMüÏøû°aU_"¢¸Ò¬²Z·ñ¦¡3ç<ÌýùÞ.©2RТmxÍ;ïqZôÛÊKÜXõ
ŧ|Ê_o[ ]lî§ÁÔ)+è3dõ-Û_9à¼²Ôæ¬ì«
-LÙñ9ZrÀäNõÔØx©¾ï÷ï
I`¾E28Ë(+ sUxHª+_¤·)*-è
-qÌGvôJ|ý
-Uwk&g:6rqâ>-Þ2üNUÞ^Ú÷Ö9ÒíaܧV}¡ÛNk·rÔúký"×?óÓäŽ6/÷ñ¼>{|#*ëA²wP}Ø~¢ÈcZØË«ufU%û·ÇoHÁ_EÔ0u©òJãl²§8º²PðAu"^þ£¶r<êç:лm
-U±ZR_;MPòdAóH7¦ï%µ?¡ÿsáIhLòß¶È\êþfqØaGVè#¾ÔCpðòåá>ô,Z迹ÔÄ/õºÝkWÿ$&ZìyWKAÑéʯ4&çhwÄh¯exN[ÔpÍùì+Xûëq©Ý3ûSIú±I^m8¯x©³èCãë¹;æQ&ÃNÖôo&¹¾ °»r8Ê&BñÖ£
-J§PÖ{>Êñö·=íñ¼Ë-;ÿ$ZjÀÁ
-7¦I+a·s·ÀèCâgÇÔ×lj
-ð?fv*§(Ê«
-H6"*æçíÍÉôèñ
-\j<F¿©a$NrvwÝæ[ø
©%"ê8Ü^õÜÿ_üÛóâZC=Jt>~iyÎÙKµ²wÕâ#ú«¦å'í>º¿ït×£FÚFOèÍôÉ:C¯·qRVdeé^.A©^b&8§ÎÓB=íRB{cP¹-©äòo £Ýb{ØÌïg=KcuÞîÐ
-mܲ®°/á~B.á,4YpѱIëÁë°,3C9áúxöëIGOZ·¾«³>±Ó q¨¾®:EfÌswáâW¯í
-äá!`ü«\ëxH®I$1j EÓeßrx¼¼«2}&KGVoÖLö˳upU
-0^|U:ô`Õß°~uùÖÕý /:oýWJyßíw*®¶ùêv#Ú©ï®$#þ×M:º8Á°«ÖÌ;É)ª;R8ß:¹ËÔO3\Î4l;¢5¡ü2l×zådÍa
Ô0¯é'LÁ@s{¹ÅÜ{Ýôz¬¶mþÄ=¿Ôá.FÃè5à{P6È&
-±3³3©U0u WwëÉ;mYÅwCa%
-ñÚQj*è×Ày
-º ôaîLDXtÕ5˦§Ê7ÐNYÆãU«?)WúG[}Ïαþ£±PLùü§Û¶<QM.ZÀ
-û¥ÏdI Ñú6bóeLÞáÛóbÍvöiª
ªzp/ ä1L¬Éd$áë%¥½¥ù¢yÏ´ñZ-ä²R&vMÔdÏ/hz¡k!2ÄkÜXô!?pÁ±Äþ»*xhô1ÿéÏÏ$hDj»]ÚØMÆmNF%^zp²ìª§ís1ìèaá-|Q¨Ç3%6ö{d)
+¨¢îV³ê<ËM-¹XYÑÌèa-ÊÈÚz=Aý³ÿÈ?e°
+ü3ÃëIåq}a÷¢ª\°¨$[ær,b¦W9¡ê,«)²-uÝeåÎ ¢ÆZ«²Ãüò²ÙkþàåìÈWÄl"ú?»ÐUù")BedÈ
+°[×îû²|gRhmtãBEV¼x.ku;wãfD¢Å±zíLÚD¦P{ÿ^«¼ÅIlÊçÙß6ýx`ót>ëÿI d?rbRbÔ&:ÅÂÜqì
+T/
+ÙO«LlØFØHD³n°u648q÷»èôPj¤fNo»¸ì83çfÊ<Àü¾e[`:Ø)ç>öVú9qP0ö4¬ª#Ôl}ïÂÜ´õ
+^x,}´UT"%=lA!oëXñ5@F./ßV-,¦¬Úo½&Ó-IO?0S¨=GMk
+i¤jH1ÇÌ©ú{D0&æ}ÄþÇÇ
+P´Ñäc©äÄþél·òÜj&UCÚ3ÂW¦Lè}Çßg)¢Ã
+\[°9á³Ü*OµØ=fõÁ,«Q-ì¤(>øÓ¢å"¨1¤kgÄhÐãëÌ1½f]ý¢Ø¶KËÞb(|åîRÒ
+{O!ôjÀ%îì
+Ð÷3¡¯ÿõúG!#YM
+°T̬.H³;A>#PERX56yB²<^ Íð\bü&Ö;ö6»BؾΡqAÞÍwo>«9,µs¤ :µ~«Sí^ØíÓÀàÌ`ÒۢˬãYµ dpBvc¨ôS¤
+J.EükT±ShUárÞ(XärbÅÍ*ßáeêѧ®Â
+-òRF&<B·©ôýýöÏytó»È"eAYë!Zü«¨i{½èÏ&&%§¤Vøè"lóØÇ%3ûÔò}ê ;d¨ÔÊJ+LuÄTÃ×.ªµÞáÚЯâ6Ïvc¢Zà²=ûCa¡÷m¯Çº,hÞ[`ôhÑÓA^ Å»ï:gÔk8·ý¹^}±²_ý»_¹GúR}F²¥IF=~³íb§ugK
ZÉqËR´¦ò©Ó7¾Ï´Ý#ôôÒBÖqý£xÛ{
+6ÿ°w
+âaTõoG9øxHÈ%÷ðw¥¿û#
Wa"ywÄ_w
(
Á£å|j)§)ÃÆãVVÌú3`£úTöõ»¬]ã]ýpºlf+§=ÿßa °Vx6èVÆÂÁ)rEÓ]Tf')Á'ù5þ¾Bã%¬Ä`6¢I+çóq§_ÖìI(n(Ò ö=i.Òð·ÁWéßc±7QÆ1`å9˦^'AùÓ'zpZ Û¦ÖµE+ÇȽ231
+{-ÅÆwµæ\{>xâãWW«ØðË
;óÀSJ<ÖNQR;ÿ
-p6w"Z´ÚÈÏ=÷ª£Í.¸\þKÀ¡I@ÖP_ÞâüþçE FMXý`Wf¦"
-ÜXý¦ÂC4t¤7{Cò£ó1Ù7
Ä´ÎlÝÖÄÆj=³lcïEíã%QVÜdßx<ÜF¸.nCçÅ
-Я4õpo{øòÀÈ)9÷±+ÑÇÿX(à%ø¹H5EtÉb1gE$Î÷{gO$þZ¤]ÔTsÖ¼¬bV54Ï0öÉÊøüoUº îàîÒ¿<úGÆuz4âøâSè_(l0NüóIõÛår²jsjòõDÎ ù¹ïòù%-Ð?»ü&»Xu»¥p¹Çܾ
-XwâUf "nätoù5ÆB-å-Y{Ö`æx#ß+SgpxÕ74'x@Bó-õy²;øâ(rÏ^äO«¥akܤ¨ìv¹C~»Äà/GÃÓE>Zdß§y-
4Nx
¼¸
-&ÇhIÓ61ñ¬òõÅÀñÕS`K¼nÌ3ç)ãøAbL"0~\&hª:ÏK´|Ë¥^^Ý~!Uø¨"M¨à iy¾et=kÙÆó²ÍÁÈ+&ù߯£[.´w\0ëÆ2&¢UºÝ.ª EYÅ~
2h×<Áî:Ï&,n£µ¨rÉfVCù)YóU×
-óZ5e$3]J|°Ú`¢±ôñ*Åò'A¤ó÷U
-¤Q[¡ö?îbd¶ÂȰ&-T¡M`èÁ_
-å_©bÞXIo3j§uÐïºÙ
-PÈMlm!#l%ô¶2î¿)Aú¡û*;õ:ðY×ï÷b_3K>=ñòêaë*¤NÏÆö4ó«ýÈCkúTã.WPP쾿ÜÔw¤Àcë
-Ç´µWºÆù¥Ï
-1q½ìSiˬfVaý7STàì*vº¢c_66î3Ùú=wGft¯ÁBZ%tz´?¤Å@xÓklÃ?InžµÀ]~#nq?ûÕQí´Ë7*ís
-àc )\Àfõ³qgcnÇâ¯'Ì|´ôÕ-¼$åêÝXùhAµ|úB³#V±Å5
ѺCóÜk1EPýÑòXß¹Í8ØjxOJ)õAò´Ì4Ø;oʹYÛ
Yº y(Ri5T=l0ícPâcÓ*=W{²!¯¹/ª&'ñ%øJirïW*½ZÁr
Í=ÚW¦õne¼Ø°Xõ׫ÖAÎ?¶üæmä
-Ádn¤ê>âüÁA²Êû>ôªå"{¹ 8Ox@~/·í¸k¥¥fLáí`¸"«éâui||FýÉym,^6LZ5Èάm®¢^Lùúµ2e¡¡B*Üð²qÖØ_Ià=;ÐzÀGKÆÔÌ"ýõÿØ
-Cw?Ò$`z)2yõ¸sqüvºRÊÆb÷yFû`¹}N_³¤«¢dRØÝ¨Éî>pçÓ/]ØË2ôQõÃÖ^éB%-1}vûë¡Ó¹!bÈdõQ¦x,ñ
-½§ù¯>nàöGܦp&ß4°V»ìêaÏ"ª,}6L@ù°¦¥lÖKo'îÚ7%=Paó¡+$ÏèKZÐ0ºHò«ßø²9átJöº¡÷¢+ìÀ[E7áÍb¢ójÍfd\,¾sÆ¿è ¤¼ûáeRÙæ¥òmçò9JÛÉT¸×UÔÏéÀÚÊ®¾lãj@\?a6R©Ç|"Kl¿°K¢=âãÊÅÇ 9Vrq
-QâPe)úÂ\FÝýy·~Ø9àû9aËÖ£8sÚ¨54_õWT~ßÒ±ÒFÞ%[ÆgPDØÛrÒà|æò ¨8ù¢aòÓвÁ9µÈ¯M¾5Ë,Èz'ØØ¸#![&ý7ð~¾¨èÛl
-3O3éç^Ã÷ÉW4ÉG?<`AOEMøÎ-1ù
-õUÔ¡¥Æm~Þ>{ye#ì¶Ì2_E *Ý«µR>¶Ifúw;¿pÏÅ´Ú
-WZÆ[
- ¾,A_ã[ß¶µ¦:Iüì·&´Öq[Wí¬UýWAQ+øåûÅ.î[ä@ûe£ä{)C[3/=?Cl<¯Pªäoõáè ¦Ã?
-d
*ÈLDàª`5w¹x?aMôDM?
íçUÞLp¯ÙFòyi*,Y´@¤±N~oÃYûa $<&®åhÈ3¹t±T#°¥¨yøLÊr;@£æáF5==äñÙFâä/ ¬@»Ý7ÜadÚ¢ùÈ£]¨©¥b¢õA|9µ]fÄ5ÓÈ^Az$¿É/UcE?×»^2]ÃÐN¡xÉ7Â{ÃÞ6öÅ÷ý-©Âr9GLñ+ºÏî³Éö@ëZé*ð/ÿLÔª&Êò1rÎÚÒ
e¡
-ú, º^Ï"uK]Ý!W4á¦2<DY§ïêY¸3\ê½Æ¬b½â
-JCëÓ¹·U1JAl^T[¸ï wTæzf®3¿ÎSy"öMGèÚiæ %9ø%:í6Åý;Vé(¨~±dïî9ü¤
- H
½ú´{;Ð&k ¤JéQú5 0ÒÑsx@|ä×Ü8p £Pn5¡CdÂïTbøªWé úÃ7ëu¥[J8´ÖêéíÌÞa1;ª^vOôn%\0ê[I||c{gÑ8'jfîEÚRU1VgJ¦?÷½÷t¶åp0-ÏKôlßl\X>ÞxÖÅh÷
-áÒÓ$&ò
-PµíuêªlAKxH;#<ó("pãý¯7|É#v#Þ9HÖ Ãûx~Ö cævBGBÓ[0¸g¦`m5ØNý7ó¢ô%\PÐÏÓ1L)]
-ݽ±öGo2`Ôi/`t/ðÿ
ÓRÜüÒ>ñØ\·ÕMgúÈÙâªkäuÑD÷eN¤?cgÝõ>ív¼,â#ìÝTÅÔ®Ï$Ò¸ÞÙ]Ù8ëÇæDȤfÔÍíß
-àSPà¿áFÉâµ2A>ÃN
- J¢ßdXehÿ¾¤Ùª>
-F#õS]¡ ey©äª&ÆssURªÖßs6èfÃÑ ¨Y0 ½NHr Qݽ[a¾0%nãÿübLk¶ôÏ3F^|K<GТ®®x»2 ÁOzYZ7];ÌàÆï»\`ç°ñ9©lÑ&y>£wÿÖ%¢$)¯ôÃÓ«@bãài~&A+ vêxd÷½Bª77hO¾!Ë%ZX·íM|
-¦ÎipX%oK÷/3váíéÌõC^5%Hb&ÍÂKÑod©Î=43®UãÚòj64ÛøùÏ_{8M̦ó,}.EÚý&}kF
rQ¼#
-Ûö¿~ô/BÆXãëm¤
-z§²nÖêþøJûØt7|[¢¾ð¥t*20~+L¾{Ò2a"S®ÝG$:º¾ÙriþÏ®k«aÃ>S{ ÜHs´/_p×$)ªgPQÌ¢?¸!f!Ït¿¤7àËÜϺd+b w¬¢N9C¯¬-¼ãX8>ÆBKP³®Îxz×wß÷
:éç:ÚqD{<ÿÄë[uQ]zN-ä CaÞöf=eÒæóµgâ+u3´§áÉiõûPûÒï(_»¬øòS »WÁ¶}-þÂ.¹±ÎD$5?¿¥Þ9ÕW¿@ø¾§;4¶özöÃýÒû¯ÜØh6ï"Âîú.Ð\¶D!Ø=ÉT®y¦]¼¼\ ñø`±+Ø¿è®opXû
íÈ>óÇî9WIr0Í5ÿð üàï
-þé¦sÔíáäqÐZMãÞºé¥ýJKOé§è»xNlgIZÖÌ!
-³ÇÔc·ôd¦ûín=H·«cÜâ!ª|ié<1êÄ
-q2¶gØ%÷]}ã&²Óá¹ôw6aË&!¯êcÙâS~ªÐkmèf¢àç´¸I1
-BO>ù¨ìúrhiÜvÇ߬ æ
-ôYuW
-³¢~ùzõKj¹»ÞûIï>P+ÄËE"ªýò4~¤§=bغU6Vì¬;ØådÌ9^Êkx~Ó´q~¡T½÷Ã_ùCBà|rR´
- ÓlJÆç&vaÄvL¬Örþ"¹ò^wfÚ<ú»¡zHæÉ믤~äºIÔKð^
-@´1¾º[¶_~°Ù¨Xõ"P(ýn_Î?â*IæTÙÒæÓ'eÑT?峫@»[%Ñs(w{ 1º)dypÿÓJ4ì²ãô¯cÒç¹²èÕÌR+aUxò'KÁ¤¹9Añ˨ëìUgXI.ç9],ߥÛù̼óÙ£u·mÎbv»Q¾Wz×2XäáçM/a}×tÄ¡,ë/ê*Wk>tõ|9ÜS#RÆ&îMíU îÓÀ9¶¾`UBtŦÔE z,ø6ÐÒú¤¦ÿ~<¥&*[ev?ZºLLÐAfk á?rM`R®4¸ñt/ÆàëYUù#ºï32ÂÜ·bzûõUJ¨*@HØt¶µÒ oW'ïu½Uoý©úàkyY?}ÞX£&xͱ¯LÔ3Ñ9Èd±NÃ{9.¶ñ ÀÕͲwl3A
-!R`N ÃÃLUM[Å(í¸(bíLRýUNtǰPö5aªìü>
-ZÜTLlþ?jþ
-%qHNaå
-¶ÿNñ°âÛ÷/OVCû0äÅôÊÇoÿÍ
-;E<ã`EïÈqewÝ>«¨
-ÁÇ0ZðÍ×ȵ% ÷kWïÃêì%ÙîjªjkéÓ=}Óî= ðFϱ)óWú·Lµ%ÔQªÐ¼À0XQÃ7 at K{AÔ³ó³
[Õ»»¯¥tÈÏ`¡è¦nºV#ÇJkÿ«7ó¹_³¥
-VK=±¥äqXg|MÚ~~ÓHSßÐ2ÒÌdÑ*,À|.W󳡻mì+²ë
-$PJ¶Rmã
-¼ÈHûNpkúØ¡oNMûN¬§þï¡8Zo
-Ópp3ÁÒ¡
-¶ #ukÞ§tÇß/×Z`û3D>EÂrî}¾äÕ¤`à-,H§áI>+$à>MA?®þ¨}ö¾%ÈÞ¹vÄu
-º9ôîwÛW¹ïqræÞN}Û¼Sýäp÷Ù)Bðj8ÎÞ0ÁÚÿxÕÃ5"x?/í.ër{ë]ð*t@ËÁ4ö!bäõâGÌñ<s£à3\³*|TþÍóËSÝ Xk¦¿ïc:/Þ
-3p:þE.EУ$Y+·
-%-að{I1GjknóÆ»dÒ;OWãýµëÓQ¿©äÿÎen÷DyYòüî;h?7{X@÷D®Ü;7Å3úâÁÖܤà1±RDÄúõNÔ®»B1@±»#ÞÊüMsd¼âckì%%SOúCFIBvté«@䨾`kUbo»æ´5`7µkþ.aö:DÉÎKvnyQô¨OYË2o¹ÐúS£Ñ½g¾ÌÈüD0Ó|Ê:°]iE£8
-óÔ
-^OÀäÆÛØ6ܼT² ý[lÆ<ëtb¼;ÍEÓ$]À·âû8r ôh´uÒQ~CÎ
-LZÅ/®©ÑYÁ40¢Rüi[ytW >4`^
NÁ9¬º`øÑ'`/ÔÃ>ÌÔø´\(É[Ö´ÊX*ÓXpëËh29+"}Â&¶ A(zôýOSàgY&OßS'w©ß
-®êe@¦Â¥ç;
W½ÑLÌÆ¿?Ã~Ø&×Ç|£Oò\L~*bÉôÒꨬgËÁ>olÉ Ø+³Ï·H+#é¯R0ò Î-¤
-'Ú Ü¶ÈBÔÞâÿÐ]vD¾ ÎsãlC¦Ó83±û¯ë©gâso?¶gý~5Zy{Î`*S¤$EÈcqx].}2Oi>ÈlYDÛ<lBSrpR±`
Ue9
-)ø.Èßýê¶¾n]:nÅ:åm+'3+Nù¦Ò-Qý÷±\
ûpAf2iæefïPElÝàЪÝCyЪ\Uþ¾´g at K£û¥ì»UV×¾ºíXìê«ûn
-Æ=*|#sÛ8bªµ5ïE+ТÝq
ß/XòñäÔ<!ò¸j7¿ÿø¯IÂöRJ3fËÇÄ^Ù&ÙBµÁ×95¸ÍèmÖ:
-24p!ßkIÎú½»÷C/xkÂñ»Á¶³¨Oó@`ɶà3EÝïJKp9¾þÔýR£nl¤üÅâ;ªhªÞ`ëå-bAµÊ¯3Æè,Cc̤u&
ñdYÕj,»qü)ímò¿÷qc±$Ë!M5jT¸päbtìçÆÎËÆ°§tK$09T1çR¦¦ ɼq}fÐ,áØõßY$Ó{S¿7ïÁGâ]lBîn
-ìÌæx¥0ðraµ¨&>éªLGÁDáw; GR?0º$uùJËØppMÝÂÄ©
-Z¿r<ML®½XTËèMùþáêQ½Ê&Ú]ËÑ©pÁÝ`âIØfsýÝJÖ.öj#iÆè'¨¨ÚóP]èEpéi¬¹X]sεNÛa§ÚÒ6Ò
6«O{8îùb}_SÑÁÁ$ð
-ÿaȰÅ]SU¸ÈÄp6ÔCèwN~â+
cao>êßpnâü×mbâgwÌ£!Ïö[ÅAë{Õdª)Ç»·b¿*£w_u éü³ÝòJ´áìJ~e{t
-Í»2`qtV²ÛÕ÷Ò KÞnf¬'?(S:¯ÌÊåNcx!RRøÿ®7}Ô÷üw±.iS`ÍÌÔÙØë?Í~¬øÖ±I7éxFìæÁ깬"£ºþU.ˬföI¦S#qö@ÿæÄ}%A !dPjPÉWèåøgSÈþ¥Ä7ÎÃÖâÖZ¶ÀV¥ª³xn÷w®$)¾ÝOå`ûÚlKT»þ?²)ý"ÛÀªPÒTµH
-©thF0ìïö9súìký¦K«"n$gïÀ$;ð9·îö'EúÀÆ%Ìô|Tõ%µ/?ÀóϾf«ºD[¨FiÑâku.Ô@EcdÓ[ÌwºøÖ®x^¦Ï[üæTµ
©,pË4;+Ó{Ø=ÔÎpå C'YAýôØvAkÜá_2WÚ|6ÐͰ½áÝ0æQ½Öe×
-3SÈè©Á%¯«P¤µª¼ïê6¿Bbpÿ®®¢ø¾ßóP9È2(ã°§±Î÷NÒ®È;b½Æ%n±Åûc,Ä÷[ÚpÁÚÜ? ±ÂInÛpK£GöK¡;>(ìDHfDùd`í»ôk6åC[¦¦) »CnnfeKÆx»·¿µøÄtnöm×àµ-ß\ÒtÄ0½q«4N¢
·xw(R.CÒÛÏWÏ\jÛή ¿¹
-ÞL~sg¯ÿDzôe¨©6ùoqZ`úÞµå£ ¬Æ¦Htxéðz#Þ7¯¥Ï¿C[Ö]O]þæÃ¨$:ñÔaiÈQûÚ3Îø.ÃH¡Ðx¹nz{E â{Ú?1`Ñiؤ"Y(Þ0BÏÈ s #óÕWæ@GÑÏ]hà÷J^\K·_à®ËªÅv[¢´æíÔ·´M²ã&
-²Ô>»ÈJ!Q\Ô« iÀSãÌ£fM×àêeLAU¸Q?û
ü-¡¹ðÜþ2¥²!ëý
Ì;ÃóÔ>@À±ATö¹äÝp÷A±7êY4¾nAþÿDÆÃ #6KÁÒN¹
-g4É5õÓ¾äòÚ`-ýF2Ðdl.Ôj¦c©Y«[LÖñ¼È$»îÅÛ@z`ÏÓÖÏdÄ_ÁÔQ_ £úÈ@
-àíô¿S¾é¹ûÕ*@4Ã^¸ÊS¸Ð:TR}1}ð?ïì¼#ç³'ÈYOÒ ; ¡¦¯|¦U+á|
j{.Xó3ÎKKæ¥ôþzã~4öú¾Îéý"·s¨;ú@GAÂ_]x4þ®ÿvÀ1)ïÎ6Ê×¾ºÜÚ̼¦ôdÐc/Â×gÃÔÉ¿èp`åBjòü9*{½E;Ó=Q¡8¶b7z8;|ñö.ûP¡7Ëåó`/Z=e4ÝØ,PåCÏÅÔ½G;0¤À-¥R?ø
8R(a}ëKG°q¨¬Ìz±(ºyeÓÈOò>w%³º±
-d^, ¤s%wî¸ðéÁI¬¡ù¬ã¥Báã'ÄøÕ£ÀÀ
-*Ío+ê0 Gî9éºÃÆí>:ÍÓõ#5cU°b0z ãeA!t¿° ÌÄo ªó ²é¾ëKЮKÖpÙ2ÿ²ï×µîBT~+ºN¿#[
×|¥¯þôÝ+ÿÖÊÕ÷«SOsÆØ(Ãj÷ï/#
Wã¡äù*CLÁÞÅaÓÜ
-ƹ$a¸¯¦â¾iHÊ©
-ÑÄzÍÔaT8ÐZ ¡FAÿ7ãky²PÓ/HÊYB;j#ïºÉÁ<BƲ.£,¥ÄúÕ§eÿÜÐ \ð0·HF5Qj¥@|¬yLuÛAò1h¨C¸°\}«=v7eÙ+y¯·Æî½D-÷.
-¿§§,eç#Àp`kÙ½ºdÀ»_
-0.*<¤ÜáÁa¢\9QÓÿb´J7v-è/¶Äºx¢Ou
-YÁ×Ï:ô±¬!ü·È®ñ|f0
¢VØäT®2ø ®µ¦$Dbö3Eº[àUoÚÎ>D= 4#97[< f»WbyPg¥ç¾º¨68Zí~P4Æ®ÎËOK±þGB>F'Në7D{ÊC¹Ï´¡jõ±âö'D/ï!W,µR ÞbWÏv¸K·ûÌѲ`SÙ¿|ÏM½(äüÓæ¤Nõ¿ëO
-,Ñ7«Ñ¹O ÿ¯Ï$µæÌd< ³¶ýAÜ-®H8 8ÙüTRhd?ÛʸöçFÔ/!Q\<RÀÒ4ß²5U½¦{²Á y+õ*PNVl¹±þï1~Ê>ÑÉãLdy!\Ó2Õþ¨@iÚF·)2²þt@¤#+ÛMH¦YTKW-zļwzk#Oàu§t«¬o`}JÓ=yVú[É^9TQ©?8/äϼ
êºÉÆUZu
-\Ðò´z¯h&[ zõ]Ë_Ã9h8>Ä^qVëáõr1é¯<·ºIP
-ë¬>
Ä£L*sÞjÔÿþ^ö»ð¬~åë¸ÍZ$׿U·î¾;¥¿È
Û»r¹äë:Jy&~9ñíËy´
-B{{f÷j\l¨0¢1¹ÞôH·I´]7¢üÔ¯2ER ¨'U\qåèÇ~=d6X#¾¢$FäG«*ÄI¸¾_ìRéFKÕçëæß_¥@3y%# Zkcá!°Áa'r"ϲ4ÇÔ
-§JUëyºÚmü´`ܤPsM*ßÚÝÕP§
-¤2ë¾=uò±ÏÓRlðÞêC¨¬/´Ðd0çQ}·ù¢kÊ)+©G"êeÞ6¯2¸Þ4Ã)Ï´¿êz<`ÙÄ$ëb8ðÅL¬Ç¥³ùèPÌI]·Àv-}³YàÏñÀ04j-ÐÌÑóHô74/eúcbÑ¿åBýÏg"¾~ì£é»,µ+×ñãEpÎO^v`}tÍqÖÿÏ1zÉ÷\>à¾t»ÿ71á\íEbØA÷Hßøã4sÈ´æÂãì*=VýqÜÃÕ®u
-ÈÁ¥!*U>ô`]aÑêúgE>.м@Öô×N:ÂPEÙ;BÆbÓ=²\#{YfÛÐ
-ÄF1¢§ÊöfËðsd°3¨#µìÞEön0îQr#àù#¬5ÿüãò*±$&*h¶ÏÔÕÒ_§J ©´-ý ãÕ£si¯goeº±3tbÈSÉ|Ã
-ÍʰD£þE¡ÉÊ]rÔ
~çEÆUÐÕvy:@o?×·ëNw ñ ;ny3ÅÝÊkZYí¶2÷\Ôéjm9ò±Þç~|tA¿Á>Èû!t,ÉÜ÷«[e¤îH;u¾ÅÆä6Ý"1¤6n=oX=L¶t¹\õGÿ¯6&
-ÄDæBEsNî!f,êϵÚ
-Ão½y±ÙÌìxB£DHôð¶LÕñDXÛ§[Gs>ªý? £ìò¶NA^à\vâ&:ÚáÔòQWKßù%å§õzêXøW|Ú9Nn\Ú¹@\ô¿òÖ
-Hw -¾ø©-·|Õo?´mçæç.#Ï´+Í´kÆP-ülÖMìð;(N| fàÖ²c#ÃÏc£Ñ)þrÂÇÉm3¤S÷Óä¬w8QCBÚ²TÒE{]"do $UhÄKèB#s}Ù50;ÆõÊöµkòÉ0ÝÛRy9±Òö6rbnÖ¹>
-÷Ë!
-Å7'£vÈ5ÓuÈæpýbßÁÐMáw±Éa½sõ×è_·&¿ß'
X
ï¬$c´ÅÉNÒ}ë;ßáÄ,yÂMñÇ1EgbøÑXºM¥ìì»WoɦÐÓ% E=ÿ§¼P#jÂHèh\õyH£jªØßÉ
#é¤~~g$çRø#eÓ¦h²¸ª3Ã
´;IíFXIFÙnÅx½>é§ÔSQ6ËMÞBÐðî1ç#£C ZhЩ¸~Ö&°ïGáýÉ¥LÙÙ@fï~múEìÚÏJ"«1%b=ádp_VØ64WDãÓ×wü|`Väá¿Øy¢xOp ôÄY+Ü¿ý ]oþ¼¡²BáD4zhDø£.µ4©_¡s01½Ò¢xìeô®ë
-tfI sÔ}Фß5ìwÀ×*I¬®øøPkèÁ$£û.ÏòÍ=x_¬¨EKÐqº8s¦&$×îG£¸èE*a¾Ù¾Á°d9µÚ4Í}8m#ÇcDS5¦³R1NпµIåG¿VRöüàk(n˦Ü*ó8Çîꤼ9e6$5Ùú hT¦æ-à^gX¸s`;u¬Ôóä? àù÷V³g±7wärsH Èm¿Æ$ÁÚÕe;§
-ñÇGeLP,âæFàlX³lh±nÉ[BÉÌé#@DBi£¢?Æv ¸écQ´,{[EF³ñºùeì*Æè²&©ùO&WÁh¥Ô?ÜÇ@³öSÒ¨°%g½
-éB ôÞè7yxÕVÄÛíÃ,Òÿ·¡B\Wå?C!ÀJôÑÀ`ÿ¨×Sw§ÃvZ^¦¬¡Ï°"©-U¬êò£cIÑ9£ÔCzsýSlÙ\B5]m ËnªoYÈmCÓº!~PjdF4¨R¦6/AÍY¸r¬öòTÜ2Q++9/4Ü¯ÇæÔ©YíÉ7B¥sÇ
-/Güÿ°8Äe@óyÁ&Zp´û<ªIHAæ´bh¹fÎ!Ð|Þöá9'v£ûoOíåî?Á÷I²ZSÌõ¬V2VA×¾
38/@`ù ±ëYþ2i1à ;¬°ÝRxXXiü¤kõ1QLôy/Ãû$<«x
-T:ô«ÔØÐäáF0ÊÈP(¥Üit'óPÛÍÑ
-êymA÷r©Ø5Æ5!N¾r[0}Ü>TJû!Goó{Lä*âúénüô*¹ý7óÖLµ.ÜÀycë`EÄ>¡:IA¶MÙ1~B*£@/TwAW¤irÇ+ÕÏ[·rJ&F¡QtNM"ã³6æ¿¡Aí~à8ÿèa&´ÏRéÈL¬®öð"Åi¼ÑÏÛÖøÓÊUøÈ¢ìhüâpGYnâÅdÆÌ¼[kMI_1w#1¤1I'tøgøìº¤Ú¤à!ûx³èéÁ GÃâ·¬>HûÌÞAZ/ésT³25¾ú2 [Àä
-æ>0>&¡ÂéðÜÀý¿Ò×1þÔuöÍ
+(}*ú_<æ áCí õNLöñTݸ
-@p´n.ÒOÀÊJ^¼ÂK2õÇÇ<øØB7pµav®ùó ´n\JÙ
-ÂaßoÒÒá$H'N¢ÂDóú\£d`¤"øßlUh¯x3%f;w³ú¿h5lGj%D´ÈfÿØ0ÚÕ_söÜüÅ×ÿV[W4f× FS_
-,¢ÏG,5>w/äm©ÚÓÊ·§å´Z¼5.Ö"ªVeYåáD½'=¹Yr~ë1MYß
-·»=ÑÒg¾úKÀ«êYS·èânçf'q®W˶¹j6ôfTNn·y¦°Îÿý³ÍÏa\ªMg!d°aWúÀZlûùb{¨U5ĵí?=YûÀ(q5!ðÌ«òl;öÛÙv4*òÙ®¿Õ«9ÍS½Ð}ÊOÇÛ¶ýCòçæTf|eòYlT÷ÚhÃj®¼5ú`Eê¥T
-K
-~ú±¾Út¡¤l$TzÊGÏZâäÙoÄDò2A´üu:ÞíËåÕÕ,G±cª;9?z`ªúN:Éõ7|upgM()ÉD³?læUhpÉ î^é5F,Q·¿¢Á´^âò\Òöçï;(³»xqH8++^T/ÓêêbQ½¬¸ûÁì Ä®È/l*÷µtyEew¼è0¬¢klÚÔíêÿ^5 ãé}lçù/µ¼_O$CÅ\8ÍUìCÉûÛ×ù³Ì¶åÿC³Þ._âßÛY·ÔfSî±3Y¹§Hu-+Þ
-4ùÊFõÃÌwr `¾.q
-óØÁö:Ù´9%okÚù`n¢RþÞ
- º'È
-ìøYï*<¿/-1Îg#Àr«Æ->¨{ÄGðcùj^Ç«ÀGKb==þº6\
-ò7Ò7TN¨r¯#CÂ}\Â!bm%cÓÃJuÝ&º%Ä\ªª£\0p©ÓÁÀêøôWüÌT9è9¡
HªÚ¯
-Hí1qúçÛsò'U¹ZXÍõ +¦a:ÝÁÿò¢b åx¥¦þ3µ[ ¡FA$Ô
-êJê¸öÆ\»5yÜç=0Z÷Ü´æZÏFëwiÏ;«ß|ú3àü¡9{Àì¼82¥v"q.ÊDufÇãaDJéf×å@áu·Ë@#+hoI?ë=¹Ð,ÁùIeXßîSêpxvjÅã\V³ÖäçiÉ7ÚùÕ#o¢EÓ%!g&sï1¡·µzÚë|
ê;èÜQ E7×MÅc5Jç-+m¡Ã9âÑ»B }äªÅºô½´"'<רíFr0ÔõÙ#ë2ÙÙ·ëâsÎûêýΦÀöû¥Ò>%?mâOtkáRÉOÎÆÖàiÚqL·$¬>}à©ÝÖrÂöÀ[R
-I!ÌÎÖ¯¹a?~·£õ@TØ
hÍèZzFSÖDzä,L1/`UhDý>W¼)Õ%^ÈÝd\ 5Ïsö£ÑiyÄoK00û½xb:SÍG´·[ÖyÕèxo eéí®¹±ø¯<õ"çÎð|
-¾ÎjbÈòl%
-ÆÅXÖXOô±GeBY(+3?LY´[Urɬ7I¿tÚú¡}b9=ñnç`Þg[Õ7©l*îdÃ.ËA¸Þß!YÙÆ&ae«p£¬¦©A"°îjÂpo W*-G*ÏÂ^+PèSVÖAöà
-¨ëmg¶ôµßþ\6¸gIáÂZPdê}³iIcBKþñ÷µÁç|kùq&ÖkMUûGqúÔáµ´³îTnL&=A^sê¯AöñqÀQ®©(þ(uüÑB¬B¦ÎFSüE«U½D^Õ:V$®ã¶!ä0Nª
-º=îB»Ó<Páð$Ôæ¬QD¥^´z£@×`ª+7ZËç.¿ÑÖO¸ö_ËkÝWµ<Çi§Qà°V.ÈJ
-9DTôMÎ(
-û
-#í5;jw°½¶ðIy"Xè
-BGýn *ìÇG£A2-L8ÿõ2r¹o$"q6ù=R|H3PÝñ VjWÔsäìÒ1g¼âIt÷4ÔM=X±5%:²:HDzÔ(NkùµCÞ;äËdbÛ
-Y¹Qk~ügW¡øÈÆà&ôþϵ·Ì[ÔÂUV¬7§Ñ´H®AÀ çÍÂ|È0ì$]ßø-ÕÜnÑÃI^LD-|É}æ%ÃÐiÓ¤Btt»M^^|ÇI¦Yw¶ÊEý¢p{Å©vav´É°NüdñúödÓáfa+ìÐã^ íó=¢b[côïý O¼:Öl#fÍ»³!èO£"¿O%Åæ²dc'ÄÄÛô0'«0o8
-hÐÝìzJbZ½ÛHÏó£ägÝèëÏÛ7ɦn 0¿¹5X#!mÃOº:w&»91ÿ¼õ:´ÜõV¤t¤Pà±
-
½ó`«KÁz[<+ÌÕ Zã`Öî?ß `!?¤¯zØ(¹n,yÄÀëÁ^oñ
MåÀÊÑÞª¯þr¤è
-<ÔhÔw¼
-¯-[÷@§¡p[&[Lå¯aª®íÝù~öû<**8%óÊ
-oRbý?bSÏêÁë9"¥S§LKõã½o/0î·ø5ãI$@§ø*yR4kbÓêbËSêI
d'?©k[`|òÜÍ=µO`gÓëá :{7§`¶MÞÿ}n×?ĵÈÊiH&£×Ý)Ås¢N¤#îÐÀm¿dà/ÜZQ^+®$£:ºx¸§rÄd$«a}åÏÿ=Á<ÊdPÁD¢±\@Ä`_ÝûBÆÿÖt°ÉXçG#EVÏ©H:iê*ÏÖm6i¦}<©Á³a9ñä1-vàgj³:@AµÙÃÕwluC}Ñézaü-%¤dfK°n¼þëÇQ©±¶nÝhË!¢ÆFÕánø<umû,±)7&ÝY=÷Ç~÷ÔtOðµ¹dõ·NÝÍ{STDûú°6cñjbOfyäs®é°ë^NTæ
-Ãã;«
-
-A åv¡?Þõþ`ôRáÊYáÛh ¨Iû®¦®°^ ×G¿põ«lªÈíX]Nï»ái
¯VpËÚ¦MÁfL.\Gëüî7dìê5sì3öonYýDÝõ?` ;0F*0µèCBét"MÆÅfy8¶ìl§ÜrwǺðp)ýÂ/^ãÖ|ßkZpgñN¢µ\y«©KlÛÂÖ;Ú òUpVï½í³ÿ4h¸r±K`ÎíId·û\Ure+NQ÷sð£,¤ØK/ü&añ¨f4+7}VµPki@%~_?<âËÕ.Ź«3Jû¦ÅnY½ßj<¨åݶ-Zuæe&#]&ê[vE[:íMý.:¯¸¶Òl*;öô2)º»¿·¸\Ò]©_í^¿MÊëæ5w=Sy¨~룴²î/ZÞ?8vOÖ '§q¶îË¡k
-æè=9'(¼2^-s³¾@
g5Æ>äêµÎ.ÔlÍýt2m
!Ld˰~áù0}¸>(-Ç®SÅaù¢ i"© »î=®¯¬f½¢/nEDùÛ\ÎÅéh[8rúuXìÓþ"2S0'Z3t
-å16Þö«ÎLÙsº~;âýÉ©
-
-±u«¶Î®¤oÄÈäñ/4]DûÏañ^sNøÿq*æãZöQcAVn¤æÍa&D3N§£
-Ó×pW üå«pWß/f^æÅÖ[JÓì/?nXíyá
-hÜ¡u¡ ËsE}¥6Þ°ªýõ+±æbQû+
-ßo?JäfU~íЧÊj+xð:±ë{OYÅHPÿ[ë¾Öv¯Ê®X·xú¤Ú9i§µ³åz5ÎWÑw$8df¼ÈûÈù9¯£Þ3´ÙÃc×9
Ý9 ÿþRK°&ZâùvÀ§@'DÊlHvLôCö¥þècfZÖ°gÄÔ¡M¿ª2°B9CéÓÈ"m}ǯ:dïå!®ïs¢WÿÅ£Øå)fY ña×x=ÜËxL¢UÍ\¯vô1³güÚ£þ²Küô·ÐOµÐx4
VdO$éóô1bV?Ì[*V]zâRݺ~ÀÌ2[ÅÄÖK®é{ùñ#üi~öæQÑKÈZö%qÂ(g¸;`a{SLÚc4ýûù;Æi¿Óñ
-éìeíw'z(»k
L±ªõ1JV¿ïK!]#ìëÞ)N¨£8lB4_úÊúô(¯)
-©¡$ªÃ_Hv¢¢J¼´/þ>Éûn¯RÐýr?ÃyÊciêyßël¡ÆBôºR(ÚõÃ_ʨ`Û³ZºwÊzmÕ,-JME}ØtbÜ6aT0 ßÛõF|COH½.KEÕàX~³Â~¬ëGU5ÁÕaH2½3yvÿï¼LèîÈÅéjSq´lÓ¤ÐH ×
-åKV¤JoKÔËèé:<lûmW¶:è°²æU
-+ézï#
-·p¢ýö(½ðã& îç9ïsì4qH~ÚV*©üÑþ¤9ñ«.ë3±2¢Ò÷ëîB·]a ð4©LÅk¾OÕÐ
-m1¨üÍNT"È#÷
-LSFpæFíâ àP[µÑ+諬mûFU$Ùæj÷{÷"x±ð?QñG:}gÝÆ9èäXtÎ^'moE/YI<ÉÕnn6i:Û²
-vK¯¶õÎÓrÚ ü-À+©0¬IØ«0}cà2¢õ?½-±mp/yF÷·7¤Ì
æ¼»õØö¿_GW¤B<XéUõBÂÄC(~ãvE:Ì-QÆØÞ÷ÓW#TÕO
ÅúßxiÔã¶cc¿
-ô1æ*P"îÙ¼G°l·OÑI (~ýì
àqG8S=[«1{ ÉqiöL«ZÖs6üûNÃÙÏV"ôY>jÃÅäAò ~rÉ ÖåC7ÕC§Y_Ô'dQÔËȽܳ$ëlÚïý3½7
-«ÒªàÅÚf©/ÔÏvO4 ¼yyǸ3wºû'ÝËgñÔÑ2#ÿ&s@(¨ï
-ù6uþ¿¿ùiú+värÖ#m(
-x¨ûéA%{X ly¡W`9~î¦ýö-k£»íÊÉ/Ͳ?\EF±µSKà²ûÏNÎÐÚqÜ
-54>²î,¤Ã±D©WAÕóÄtð"ðºüçvØû9ö0ÆÒRbÆRuÄ,¼U¬*¥MÝG0Ç3:²)Õ(ßi%µÄF::ç¥jø
-ÇB§ö²Ã±xóÄó*DtXðó«âõ
n»7?Ä/3]öĿæ覫jâ;-I[IèýuIPà¨ØmO©8¿ >ï+~?¡m Q"r|Q·ãY5
-h0
-ÉO
-à>IÅfÅ/½] gÝÚ8ËÛo×X Mh¸ ζLÆ_!AÒ Û[¤yK¿/ó¨@Ú¿B'iIWøæ#Ýxêu@âfU_q^s[èU|°ô«4ßO;{1åbøà$[¦[¤
-ÏWºóÏ4¬ÙVéøhû¦ÐÜ07¢lTs·qì5'Êv.wQ÷}ÀâÁj=R~ÚÔ
-§0þ
-`î/ývD©i`Ã1é´ÊÎÎ[ØàqÄߪÀ¶øØ~$löj?7åÍ{Û¯2äÁ)ºU¾\i¤,öÆRzHÞ±ÆnòÁ¡ìÜçm%ÿ8!¶dPH@öp÷DÊöÁéM;éÆÓ¯ofO\ÖZÞ£¯!ìÀ7x±=Qð±Ål&uKìh,DwcÆ ¤óÕ Ä]X˺¿±yFAºMZgäÃTã2Ýtxu'¿Áxàé
-q5÷AÌ4çÞT!I3Pò³+?ÓU¥¿:¼ÊÄ+ûý7
-IõSî=tO#n,µË\î6ÈÅéôz$¦ºAè)ÀT`uµÊEPò¶ëËvIxíëDGQ@ßßYGkyEÔ^W~M©ak4弿T´ç &z±Ì ªkj»¬´;M°e"0ÏSÔµ^'º55ª´leZ&î ¤aت\cVÐga¾Âï}P+¯½M#·zQÛ)Z4HsVù@ wóÂ|ç9I¸¹
-|êtZ«rï.lqWÞÅaÓ½\¯ãªòÅ¥"ÔÍÏÿêîtV!¼Gpovóòã?ù£iXê,¶H¾;Ã}fCªS¼Âç+snæ=NÅà#
MZQï-X£X<!"{!Ëçûó-ÛWç
-/Rµ¤sRÞ<líBülBL3pýïÝë£DQOÚÛïA8µ ,`%Ómà´¤ÆÖß½aãvë¾O0?dÆÊ<À`#¥ÈAPKòÀ/{ÊÝI_±QòÿítÜàê`#çÒ<ÿ¢Ñ?¥=2«èجéy-lqÞ~8<*.½08èAFù)q̨g«$û¥eoêÆmi
U2kÉ.ñÌdÝq¼Í_bî©Ê)Þ-/¨VgZS9oÚÅT*P¡x§¹nÕq²[ÉyÑ$Êd''=}[åR`$êG¬sé¼_ìÞå>¬D3LB¶5üÌÁaºÊ- at gZÅñvÖr
-J at Eq$V{ð¤ì76mÞ}#Å6C#GÇùÁÝ4´®#±àd
oä~gfvÉÜ«ùNr¡_{ÀݶL«
-GAdzEÞþÖÞÌÎdíl±A¿£}bnܨG¾gÿïR
-^rªNN¿fqZ¨¯ôrLpú·-NÇ¥Óâ
-ýTp:!¨¢»7y¹î$×ìhFÅS0èö°jÚ£ü6Î8"iKæ£[lneoÂPÎd$±°©.ZdFÕPãJoÏ óÑ#rµõp»¼Ód
-ÙÏ µÞ÷®iZ
-
"HMx8òèEÃ `¡¶F>¡_Èù:ê: |Vág
-hÔºüÒÍi -Rkôø¡JOgÝpóADtläîu½#T6ëpÜÑEÁgZä÷ÙÖUù7X7ÚL<[
-yËõCX,_]PS6,z4¶ÊFÝ·<Ñ ÂvHà£ÞèÇóXïðjѵ5ÀÄ ,qIPØÂã.Cj3yÒF/µ
öNmâèR)A-jì_,ÞÜã!@RVÔ/å#*ßÂB¸¾öÜCxªív²h]½Çñ¹÷1õ2ååûnÄvÖè/ÜXÊp
-~ÊÓ@ÖÉ|Û0p¾Y¼fÒbm=À0
-Úã{u at 7«CsXøZã.S·ð×FÎg¾@Kã·|ô$*
´SK*Û)LêwÁzh¥Ïv§2ÙÜ¢ªÑÇ©Bd{ÛÛ
-aËÐ\®VÖ;oôÞ«^ç}±W¿fp,A1SóõV`C{¸÷9:É©3HïÝáxÖözöË/æ`5JD©]Ù´a£¡ùäåZ"?F`ô]OÓ¢ð±x\]yýÝIlI>?MvõÂUõVZÇU/E®ãÔT8wsÜJe¿pk«yIBY½+j8yÁrÆfÎYþa
-º:®ÛBØ I¸sàÔKoµ*ÔÊ\
-ʵܢ|§Ç/|röïßbïèq|1¹}M§ö+g;ØsºMÿ.\å÷õa
-`ÿ
ͬsõÑ>¡"cAåU^"îÁªå?¹Cñ4Å·ësDoÚOn®KþÙäÛÎRFeBuD%Ò{
-ÞØpêï¬ÅDY#QÄ}È×33é?¿W«¾ëKó¼Ì2I7B")úö·ú-¥!
-Vóϲ}pI %¼9YèΩ£]~@QõF#p¯X?¢ùivýß¹µmöå°¾÷72ÉõOrÞ0þSuÐÓ;c
-uÓ!ÔqµU±óKhP¶æ°¦Ö|¯
-g]:ÞÜGrLßÕV«¼xÕj°Âöi©Óî+÷;pæ8ئݻoçcH0¼(Zz»oxBèS*õfÑðß%?óÄKp!{ðµÝô6Ö*58}ÙӦŪs®[GðVlcåí\~
-®U-½|üÂi±?þÛ¤.ØJ²q(ÍD²i¼n$çR3¯È]ÊüanU¥KÓ^¸×·Ewý¾eê¨1"ð¨acÜØÖþL¿nÀã
ܤÅuÉУáRüÇa%4°'[Rí¬o+XòÏDnçYBægËCz"T=6V%6cw&ïêÙǨÅE`xÚ=Õì7uI<ðõÅpo/ºz ØÂÊ+º»>U¿áx£],0ô[¤ït
-vàlCM¼¿òñÂ ßØÃÐÕ)Úòð°-X)A¨Nmjµ«1Bý@µKþ:eê8ê
-Z àú¶tã'õ¡Bx$CÌÖâ^×47q
-^²±r^H`ZËâßC§jhäÁä'`¾A)ià¨h;þj~æ!öÔ翺¿;c÷^ ?S®(ÅÞÊqúuD
-Îkät ÜIS#§°ÿH÷º]-hú×ßP]V
-9+X¹æ]GSE])0LÚ½DSyøº&hÙ#Þð.¥¨Ý8zA®2øäjµ?,Å¿G¼h2Ç
-Ézµ×ÆýÒ»U^Ar:)«<c¬T#´`R!+ø }é^èUV N&ÃÙâzNñÚ]ÇÃÜØÍgKh¶-³xÍMGoõ\üU©úóæ×fN4¿óî{·[`pÞÌ$ö$In1ÝÓÆÔB
-QG. ¡3H[ _uo"³ÛWØT¨biª¢û5Úz¢íqû²ZTö.I*ü±¹zÅ]¶7`ª@Öm/¢À~éÐ#>pábhMùEªöÞµ'ßX{o¯>n½× Ù/¦¼j?ªL²~aÅY¤ä ¿*øürk»F:nýñ
-Ci»Ð⬲w¶ßwþªc6
-ã?[3¦cÅÞü@Ät<3ºFËV#-üg'D.¥OȸµÈ¼ù
l
-MñG±ÌBÿÿMéé&§:a33R©
-{(òj
- at g(RÇGä_Ú9HEAO_½dë¥'/&ZV
-êºÀòà6ùWâ n ßFÞ±ÚPw>±!côQF´|Á
fÑVðB¦¬¢Nòf´æõóÓ!îo{>¼Õ<¹×y÷ÁÆ=bÞ¸ÀÒ¢K óvÃݯJiª×½µ¬P¾'Dá]
R+ü×IÀ£¨Õ}ô$Ðhý*5äç±óícÇdñÖ«Ô}Ü]±~OÉ6gêÂÎiN1ÙÓÜ~xÈÚG¢ï3÷ÙÍ9ãWÌV]¼d^:vKßpÇnÑd
ô°#dçMähÖÅtèlH¥Ä1Åz±ÍëCõ©O¼ÏGOaZ¼ Y KZCùQf9s@ߣ±EMÎJ¶·í,ñûÝõFC¥^ÆsF`¼Göà¹V˸Sß¾I\WWº³ò½D?4¾,Ã,!© 9$õÉb73å@¥ðå
-o(uä Ó¿´«aóZÃÖã~@¨´ºö%\á,V¥ý®¹úÉ+hYucö@ÕêPTiªþï
åGoqc-a)¾½òKmVWçý¶8¶´&pZö³¡ÈJÞÀVÀ8;£Þ¹,¼ÍJ3K»bw«Á¸çÔÞôµÛÑિÂzíûC
-gÌÌ JÁ°êúÉ/Æa¿#µÈ0à!B3 ¶ÄÚÎ{æþ}Ȭñ§A2BÂÛ×R 3·â9A#AÖ±$Õ×hÝX¤
- "(ôdÅbK° Åù
wÐ Ý@gáî&é2ÙöÑ·ð}¼p/Ì ñ¡»{Ð-ñêg#ºÄå¼
îû_'é&{åÖZ&hq5é&GU~) ¡\c.ÂÈSÌúÚÈíuZ/¼\nDm®x¦ÿ2¯Óº"`dbH Äp¨¢®Áj:ð;ªë
ä£î«vÁýq>AgAë_-Ý?YáR-øUküÖk[¯
-&È~]©ÛT1¸ÏÊç§HýoîBï-¸#(&òaðd/ñ·ÄÌEn²Ã.r©·Ûè^rëx_é
¦ ݤR7®_Q|·ì0[eXG_úgï 4úöÂ5
¶fðSé³¹UPþvu3È
-±o<´÷P}\^5Ti6(ÆáÒ]6ÐéÔ©Høá¢û×
x#¥j¯øZ±·Æå.VbãVÑÍÕh׬E?Õ
½ÔTY¶_bÝ$¶QµA>źl5Ö.½pí<F˾q9ÉhhÞâ
-A²gÌ
-í}{á½#½lVfGï´üKheçß;CÆ¢+iibê'v"§sÙíçfLØ?Á «R Ce
-ôóçb6Db{ÜòC·å?)8JÈíg¸ÎZ/½_G nâ=ºðT<}àuz¹HÅz7¹vá^.·!cáÇýå«ÔB"bö¼Î®ÿêö'æBê>`ü/é8aôÖ-hô«ü¶JçU÷í]çØîPã·(dIX3\1$§¨2|¦b|®ýBða¸òÍÏ]Ó¤ÁIùÃLö÷
-3Ú½(x!çùE:P½ç¿ú/àFÆÜÞc¥7s
-Aú÷7K´áyé´=PÌ®/j¼òpƸ.n`µ+ u«¯Öµ»7H[&¯På<$Ý2V)#ZUiuÆ£x|ã#6L!¾w¯TU}â#2¿¡<wYJ±8vË*9 ÜUXéaÓ
-:öä\±÷͹µ;
-±¸ÑqFr=ëo¬kzÄùgú,g<·ÓL3NOM\v?dïWc=ÿD[Û#7à½Û<N]F£¼8²(Ößùìê',·j[u ÈÙØi|ÔpxEKüC©è#ÔÄy ¾¯»ªòíàÙÛöå´V
-õÆ6HjªäfN¾Fwñ¶ Ç0&â©8W]Nºý `þ#«fS^É{wèa?O9fóçÉS»O|ð}O¤l
-(Á~¾ÿsɺ[ìm ÔWöï¢ÇJõ|ð&DÉ`[ö"Ë^¦SË ©w}muס$ÆâSë;·Ð31¼oZ vû"{ ÃhYo-o©|ÁGê òØkôûæ³ÇrKõ~ÆÛA£D-7 Øu ÜëÐóYQ²E!x´t&ãÉÔgâC¸-9±J±-$BMnÆÓ°A¹ai x[ó-U¸pY¿èâ¯áR1G¶hnæ"fJoÊ(ú+_A@}ç ?i Ò>Jp á;À
-ÀLmÓgz´ß[ÃýsÜqä;¹ ½ÃÈL?VÂ-¤ñ¸svÃ5õÇå:þAzø §e¶":ª]Oû¯áuDêÃ#º¬
-ÿÃ'¹Ù8;S¥Ûý
-0Y:-;(ÁexÛPVSÀ#è¡ãBó÷¤ªï4ðÇâÓÙ¼ÌSóGý?Rþ² $1æT×°+Hºo¿S÷áà°ÜVWóìûÞ²Ôôæ¬ëÆÞæ
-aJq
´n_Q¯%#¯èKx^×9õ³ñ¨ÚÝv¢C'z³D©m´à_¿ú9j°±ùXÂÅ)«|ä%¯i¢uhEä²dû Ü»¼é
-«Ðü_ÉÖÓZêâ6nçÊJ³ní¦¯±µ!ûÆVyF$c§{¾
{|xvxn)'E§%yÝ&ËéÉü.%ÌÆÁ0Ï´f#VËÑbĺ«ÁQÇÚ¢É?njÛ4¥3g
a2ÁÇå
-K0n3púþ·´YA]d ÏC¿«0ª °Ii¶®´¸×3#îi?½~vY5tþ41oî1Éá!OÓØ£9Q¼)èÜ
-Mj~Ú¸T
-mb´ólg3Q¼B2<¦öcCÈ
-ÌAÀk`âmÞ¡Ë&@S@ß\ÖÔvãÔ©6Ö«8Y«IC沪SDv;îäÑ£hîgY¬kQù
-4Dmb捚
-vJ}$53P /£iªA.3ÍWlúö¾çÖ
-}¾sÐ:©IÆ (s¾wä@
-[f"Ûß»"-ô·ÊqöÍÄõز¬}À{S.Ó»}Nk´%|1fÉä"ÞûNÇY¬,§½è\BX¹WAµ;+½àØj;ÀpØ¿¤þÍÐãy#Êç²7̾øÄ^ÊAùm$¾<y~JÕ3á8Ìý+M^³xÔY·+yÁä¢ÊÜaáiù¢òº6ù%»MòmúW¨Aæ5¡Ä|\sÀygmB
-o¬m¾ä¿Dì¢ÍÒÀc¥-¿N¬2DPå.á×´+®8Ýuð=IcÖÏËV¥¬
Õ¦çN]
-¯Nàp<8Û÷]Zo[
-Éf{îlBI¬)ùÈ´L²»
-Uöÿ̪|¡/F¬lôL8þa²0ÿûI=ÏÎ'à¯
-A}@Þ$½ó{íY$%5/Ù[ãQ¼y ñWÆ*NlÄÜÝZa
-»Ì[ s,ÍMáªÊÏC¹b8$¼LñÚöòp®ÈÈÊ4§åèèjʬë¨3t^©¤Héif÷½5 þ¢¬Bd
°ÙÌ*ëÀä©ÀWñ¶h4éù¡õ Õ¯¢?ղťakÇ{¢¼úê¤ËªãæSyª=ã-ÍÙý¢ÿ V¤ ÷ÎÝ,+¶
-ðC1×ÈÓ3¬B±ª´KìHL*LXâÒ0m3×-L
-VºäbÏ%ý"GâÆðÓPýAs]²Z®ÛÑCo0¬bÖAÍ`usbVI!.¹øYÊðow6AÞ0;ýGcÃ"Do<¨ò
-*Öþ_Ñ!ØQ¢s²! ·ºqªBô˹
{m±6B£<ò×+õÍ8)xÜ5%cÙ¢ë)²SSÂõ¾Ê÷®*
Tê$פ¾åÛ¿NF:z$LßÀ6Ãx´ÇF߸Aï®ë`Êw¾wpæx9DX:ôPgE:t÷¬pÞXÈéÅ>fèÈÏ`±¡bMÛºÓ²Ïk]A%äâZMÁ©2´÷:QFÌÐ̯_ýHß3Þðþ=h.ñSÌqmBrçÈ¥[ý°0óÔk
ó5å¾
-%FèR!<Oò+¯#¬#sJqÚʶý
- 9õ
Ñ®çL7q8£`½ß¹fÍBúBËçhÊ:åürf&0ý!ÅT^ñVsU!ÇÞºÙ~jZðõ}¼'bÊF!бéj'(e)Ì\Ëòå
-bÏ0åÂjÓ2ÇÈÈ@oÝÐ{3ôb
-òò<bÕ~H`ÙK§<É
-? è3z`|{ä%2ÜÙ¬(§ÿ3Á¯©&nöJh ô½²~¯TÓ×j£·H_Õ:4åCdx#
-û¸È%7CÎù2ë 7¦G=.¥x»:þÐíc
-Ú«ÕyDs>oQB¼ÎSKpK¸
-öl!CI5«U®iWìª=£»íÊùmÍÄöÄíePF(åÁЧÐ+%)0eºÞ}ÿýMÎX3©¹® -¬wr 4s3¿þêóSJ¶õagÒι
-ÚÍǦr?{6Ô~͹@ãA?Üõç¤QöGt7V=$
ÏòDxE4?Ù?=û¨ÁcÍ3ufÉtjDtî[r±uçéd£Õ$â
- =¹PÛù¢ê$ÑAéM¶§,¨¨r
-5VþrZ³¡ôåEß:ÕÓBü_kÉñ^ØkB
-쯲رþ2Óe}sÒ
-¢°$MC
-Ó²FÙÛÃçeóbóþU;Ïzk(ݬݵá|®?V¬ÁmT¹Ó21qå0KE}yâMVÿ ýBÙdÓڴ˧×U¼ªï)dÅÏV[«àtZE£b+Z\ za¥UDoótpHHýN%Þú¸"|Ág`ÍíNÓÁîÍcDkvzú{Úzô1
æ[Í|¾iÖm°;}aßÇÈõCûUû²ßÒ9ÜÆd|PÿmÓNC`
-ȹ9Vk;åmw<ÏÔ=ÇA:a=
-¡öK°qñ\ûW¿x.GÖ!³\ú¯B
g"Þf½KiíÄçRv¿`
-s¨Sö/Õ\Y§µrº9ö½]ÍY-K
KY¥ö
EÒ«þ
-å(ÿreù¿vì/,; >ulkàìmo²ZZ¸Ëa÷æn
-[Lp7p}ߢ`M7ÊñqlXq#í»%£üÖ
-_×lh(óã*0^>¦Ô1¨ÕNÍʨH©xsJàÍX4nXK<Î/Åcè r
-#CòsÔß°Ë»#±
-øj0õפëNRõ äUEyÅÁ¯jL\M©ÿÕ
-ê`ÌZõåÐsD-FbÑxyý"Óõþ]
-¼/#Ñ;:`Õ|>+·b°³°¹ÍÊöñA}ºrÉø¹PEÐÅ?v^ Èg-æþ ¯P© æ&nÉYÓ°{ÈýBÉ_Doµ1Ï=V²ñð+ Em½þÖ'Q
-@ò¿
-ÂÅí?o@íqÌÅÄ.$@®°Ð®ÃjWÄ䯤Ï[èw[ájt»
DrçýH{Nü`ïË/9ç"Ðпè¼v9{¸-l£û¢VÏã
-ǯ=dZÂKt/Ñv¦¨ì\y:Õ6vѤ,zf~´V!?)áw*Þ^úEe}F$ObÛ_Þx-åû0Î1æ
-:Qô)Í Àg¡Á°·ß2rÉ0E:ñ:Ióùâ OÔQJv
+÷êÛ1¨#)Ô&ÊÏ-È)ÉÞýI÷²©Êxå̯cÄ)¼éâô|κ ¦~JóåfñÅÀg4A¿}ÇþÜÒàÜ«õxKÃõoN ĨáÇ̶ÎĽL 6tÿÉ[ªæ Ky,ð
+7`gh>¼Yâ3X;êɪÞDô´ã[XáóàÆµr7
+] Þí«5ðVø±-ÕÒn»ÍîWwðö6ËæÐåÓÓë²P²]µG@ésÔ°XÇÁÞÞMP¾5´r ¿÷"9)ÙÞ±Bø
+Îeê7sþxû¨ÍRd[Uò
ÙòN4×+»óº®FÌÜëHõÙ±÷Ú2âÜõ6F}ѹ`3¨ÔT@õØ{ã"#× ¡ÖJäûÏØ>·Ô¨/d¢ J.]6øÝeñ~â¢(Ê" ¢¼s:=[$sÃxí»ãbêÅ!ÅNµ¬úß¶ðÒªå9ÎW.ÍÀ¤áÕÍÿ}ÙkÖ!F¸°óµPêu§"à;7Häq:e7¢¬ØÉü¯UWÅ^ry]9àúZa¿ ¦®ÅWP6r
+óÏOT¸Ëë%$~¶¢ÇI$Çó,¼;KZF¾ôzîÉ_Ïö@Ríf{ÎP¡,o cj
+þ;ìgo»UqíÈ^Þx=0Oú>£ì;1§7¶ê´
+UUñ<S?uñQ¹=¹
+çÆÑµ0ùy2ÃF<rÃÕ5LTîðd_ºF¢P°àZ-vê$ô.zH
+{©@8ÒAÕ'¹¿ßäp ·+\ö'El£Ï/PhÀ*8\Ô ¦ôb¾ê*ëÏI2^m+Ì=Ñ»t¾²ºiu]M7MhÒù>Ev]^fËÑÊ<|âWÙ{=0¼4é
+ÚÚ¢üahÞ/Þ;7¹ôTZk¡;Û¥j(³ÃUHé~Iª
+¸veÏŹd|$
+ò,Î9 }Ì ¡û¦Þ_|P»!×(DðÊà>mEoYÊóÛ 0ÓMNÎY®"/¯Qxm9Ke {Óv×ÒÎ Dq~Ù ÂËÂKVtÓÉË\ÍùÌ¡,®@üôh
+¹Æ:tÐÛÜ&µ+ ÅÀÇeÄô#äsï*aò!IþÕ"¾àHTÌc½W`
d¿QR¨
DRaÈ=®|Ho)¯ìÚ²·É/#i¦ôSQbSõ§
+¹Êzuäïî¾!·'óTåÆàW¸ÝW)¦+ÎÁkæðÎ!
^Ñ%dN<
à:ÇuMã3 Ø"&áFl1[ANÃÝ
²%~?¿HGúãÉÜJ©BÛz×´¥§q[ §@<ÅÑâ]yIFwêÏYtU[)|j¨'(>1öY/äïNIÜ62¾DÈEÆF8iÌúW¢ß¸p7h-m¨¶$C3w¬¤àSc&#[ð(·çV$ÇLðVW
4u1ý1þISG<.éì,Tòwðè$:xÜqÓ$¿$ÔÈ®Ñ@¤+îüGWOÂëëú°5ÿØ9ZòÇ_RÑxÙ9Sqn0õ´Ya|%CͶӼæy
+Yͽ¦nè
+Çk.V¤4=]¥ã¸ü¾ëÒüq¦"6jê%.«{«gʪ®2éd*/!
+ù7áÅÅR8ÏÑZ &C1{ íá
+#åö«wógÕ³KA-]T÷Æø¿4µoZ#<ì¤ú
+`¬b¥7ém½Ö·æ8ÔõzJL
+À ÄeÊw<úËæêb[vóø¶â:4Jù]@Ër}Î ^õ¨-sÕ:Íp)Ííh9Gùd½æ=F²Û]u·öØDYÏAÉAÚʯ<þÿßDâ]¼ÃªzõH:6ë~P3-ºÌ5z3É>8ôjwM<âÝ|ê¶ÜBKÖaw`¯, ]Ð<Üí_÷LÄcÊ
+Ã{JBtvv%ä¸IÑyÙÔUýK<p(LõÅr2[)ìtØf$7>ZsîCrr×÷¨%÷¨^pæ`{¼^°ûuàí°W
+y3SNI´ZëÃ_,tUsêßÎ'¢¢t¹Á§ª0þ»÷ÂOV{?n_÷*<I»
+8Ñh»¨À(«y¯^_&§ÌéEnÒÍÄÃÑé%÷°ú8»Pz5¶<?ÍVÛ#¢ÜÞ³Jñ-FÈ6ôì.N´~Á,^x <ñää.¾@O¼
+³¬_wôÑ%/¶=@½úÚ¥¬ãs$K7~NÃÒoü§yÓ?Jþç0a¡Äw¯é¯®nÖwE¼-uY|`P?(ÁÒL4×?¾¼
+=º»jLÎÊ¥bñ®ÙÞvNZê-ª¸¶
+<M¼8'Q©beÑ"ÊÆýS_ÈgÄaF¼(Û0§ÄÛ®ê6§R®övakoø?1ï²RzTGNQµU Å`qè$Ä/ØEéÙäùg/îÞ«à-Ç
+Ü$9cË>(¾3Ób^(jýÖNàA1X,jðâë
+|ò¦J#óù¡ëbÒÄ'ÒÌnâÚ],rrñF"ÃVÒ¤qõæì:mLùÚ<<2RÅ4hË¡?t@ ߺ57gå&ü¶ÔùL}|E¼aM¨ÅÈíÊ;tÏ9¤!íQ¯_ÖÝ^'Fö²õz<_9
+:ÁØß9e
+E >Φ_SÉ)÷AxhGÚsݽýÕwoëºqtó\ ?Àpü}-ã§Dú×[Ký³
+ãùϲ³¦ï×_º1d\7jAPض®ßNÁàÒto¼¸5ú/rßôõ;B
+6 ®:§Aw¨ãjÄ¥0cÌáâ05_o¦ÎC
+/ÈÐ~Ø}µË)w\H6=ªZôª@¨ëy¯ÙRÕ!iì_i at Z8ãNá¼&_æ»:o
E²WØ4ÚÂ('aÄÍ¡l]Ó(nõË[/1-gØ<Äl/uÂÞÏp½67XuýWJãF_©D7f -!
+é I(¸@R>I]2z½´>~ÜöõáE:nRø±L´`<?É©#
+}¤ö÷xýÈ»±¼ *Þ¥ðj{ÎV&<9âiü0Nz}À% ¼P2 at t½i¢ÃxêtæïlÈát!òâg8½JE%&¨ñ]c±gOçéùÐuJ{Å
+'¼A{ªÓ¾æviøUôbÛ@j».¯Á+í«\K×*µyÏjëW¾û¹à[âq{¦jFN~kEÝaß
+rª`\ò¯¬´uÉY÷ýÊÉ /¶áSÍs×ï@ÉûÌAÍXÙñ4
+§6å\L#ò+Ò¢5/h¿$Ñ3_Ã$Ü&±å¦Y¿ÇyAÁ¿]fÈí¥í¹u ȶ«I¬*.WZ¼0qö×¼:®Ñ½XÜjóµáÏ"qN£D:^¸ïɯFÝ@ÁhÖÊm%ÚÙ^Ó+_Ï¥ûT¾ÄßK¡R©ÞºÛX*DØsÂx /Ë*γüÌxbøËiËCÆdÌUìOU%÷KÚ§ÍJ
+Û×忾ûº ==DZo97>\ÝÒ,ha)mn {¾ßÛöÀ¥Ls æÞt¨±'"e»û&m9Þ3vLõÀW?vðuL&y½¹2<F²t%ýÌÿtѼÿË^:kXÆðþ\)E=QÚÕ¢±Çï}íKÔÔì7Ööÿ}\¶[:ü$6-É. D &§Õ±¢)¢8?³Ï.§{4ÙßmÕ+A_Ã"tG_~z+ýÞ@ïÅJ/Ðc5ö$$c_òTüë㽤¢õµfI¢òè'p©ö»ôÀ?{û§Þ&Ýþ@Ijå²ï¾Â:ôãcqa.Ù©c?¥÷ëosÁ¾è«>ó½_Ï#Ø=åK¢ö~ä3ØÇ"¦mM¡edÝ+¾³S£Þø£¿¾¦³R(ßþÔTcxähè°îÞå B:&
+#Ë7'{øùÀöwÎPd´W:ÉÈq6#°õb at n&±¸Ó}û°âBÿÂÑÜËñX*Ud`8Ìꣽ.<fßC5\+Q£¦äÄ¥mQ-Å¿ñ /ÄbBå)Ç â³Õ'°û~ ©ª# a¡"d2$Àé¨.Yúóüiåÿ·Ôs:ô¬SÊvûÌ
ht\
+$QºÕo3pé$|EêUÏ»Âéâ
+ïFöþ¼Zâ×^iHjÕ »u/3´VaZ4Îé^2t3ä½äµ¨§ìü+v'´Ï11Yiabs·Zþ¡ h¯¾4ýÅ®#$Dà=1Ó)î1ñÉÉ㾺P¬`þܺIØoØ8\·WtcCihªH(¥ÞRº_ËB.¾=£pý¿¼¼©9ukv[ÆÅ'ÿ!¢u4Í´Ì1s̶ççK(ÎÙßÅíäéôóÕ+,JÉ£Ô¯cIµ8äX9kõ
+<´ëV Ïf6¤c¿ÉȦÃß
+Hôy
+;vPZÜLoÓ
+´Hþ"EP_cÇE®Þ:A×ÌÜWƪAøo¨ã°Ò¤Jÿ÷,¸n¤l§CÖu×¼Z ¢»UG0ìç³ÏUdGd© 9/ ÈüµA>®,·RÃ_D
hêXM,Õ% <>ÆØ÷îQ6®Ý
+`u¸^H)º)@úº©åQ½$(Ï3.«_û=êkS1âj
+úç«ÅùÐhvþ3Yj°Ø«åØW8Øz
+Áâ\í¤d3nçÆ°×°Êôê@ÿPª¤öoúhÅDØgq_ÊÖ¸°h¬Øäðâ& m-è½Kc¶TqP{|íäárå2ÝUÊxÂnÄþ,]ç|æ¬ìjëúÃê
+®@Jí_äÏköö¸*áUïVV
+BA#Ý+,lâáJ£\7ÙÝÉÀÅw±ÕeÐ'#Y¹yqª`ufõVòPNMàWÂi´bQÙØ±BãxY£6bé`ËX|&;[é:RÌpQ@©ÙØâ2iÕ^¿ h¥xp0ºÜÇsZ
+é\Ë@ëK\ÖôʯwcüH
+uåO°ÏߢcÁLä§@ggã *º©Ü/^ï£þ¢
WÏ^¿n?Ý1¶îìN-5Èâ9>D¹5Â@eÚµyNnBoUÔðÌz5Ð5¹©«g Zì<ã^
+O Ï«´ÿ¢K½ÒåÐ~ÈXY2æ²£XnU¥TÊ<£³ìí6qBAøÑà$Â'qÁ[l<¥0¡Zr0ü¥~¥ÏShHJpY¶ã7c?tÀϦ²åÙ-©ÝÄi
¶¯P µg%¦,Ù1C±¡¢÷<!FÅõR¨ø@õHMOù
'txÈ6H?7¤§I<ýr®+÷â0È¢dfZklBµÄÏ,ëÍ+%ÄÄhäÝüÃÝè{ìjá+Æv3¸GHê©Iq
a-acXt߻Dz¡ iQµ:# _þÑYÌQUU·Çd7ÊfØkƪ¾¯ð>.Cîò¥Sxbl£RJ9}½<¹Æ9ÁÄ¡%¢ßA±nÊ ãÉH-pÙÊÉ Èã¾Ý¿DÜ9·4ÞUcø4`¼`Ï~[¿ãåonzJbú1Ya7@·»ºÑj´á , IþBÃËÎ,¿ú#;køH/Û
+{S¾ªw&)¯Ì?v»qÅUS4é1R¯kqFz$A"ZL`Ýo¾ª~|øCÏàwióZ¼¸V>ïlTÚ ÞÏá
PçÕÊúNÉo0ØT²;_k÷Ãe*RÝR!yÕz ÊÃ:±0IµÇÄ
+«ø)ØÕW%Áßd÷Mó>w¦¢æ\@¯¯`Sø¡Ã0â
+Í©ëw²ã8 }ä?ŶK°´ÍþòÞ/Ì¢Òs]zX9TÀù$ñ3Ûrc1ðD'}ÔÌÁ+Sî¯ÄAËþ@Y±]Àz
+Õ{h+ñ¦)e³i3ÓaçãÙ»13VÓRÔܳÜBãV«MÒTêûO=kîB3h{L,þË©»üÔ,ÔȾM5Ö:]
+"Òþ¬§bjÍËmö
kuÆdÀéÓ¾#¨PHo¸æa½í¤9ñ+ªñÍtÀ¤Hæi©ÞRL¨ÅZ´aÿ§ÈCÌÜÕÇKjÒ
ö;èEf*qH§å½,N{w@êu÷"KùCµò©:Ùu´}"hÊ8ÙÅõÌܹÖ
+r!¸Ð+Û
+·
+óâûçç¤7ht
c?@$Ëùå©?9å©#£üè?ÿu]b%Ô
+@ò¿ªÂçí|ׯ %û÷pÜW'íZHùhD±È¯
+¼¬¢j¹rkç·MC;=0¦Âü*]9qЯ"]|ü¥ïyß²TN
y¸n9Cmµ'²èð
+1ë1ôÅxé]Ö¤¿³#ÏÙýÈ(ºRÓÚzwÛã8ƪæ¨~×:á]!ÄL¾F²¬f)Ð'
+¯:·Jå¤(¤-m
+ÌTÚkæHëº{ü[ï*Òn[FM¡çVPI7G»kx¼°MY§<ëéê·!m§éNíjV5øeT,NßÝã<U»sô±Óü[½^Lp¿ÊGB>ÉÞòÆIñ}a8p°1âÕ5QR[®OÀfö"Nìt&´Bϱ=øÿÿÜ»Íû|¯ö&
+Þèà
+³^
+ñ½x]<«"v_î#¥5ðQ¸è«!å{|¸õGYM:¦SCZ5Â`ÊxtØö½Lxî[É·-%çan¢Üßø"½òÎ.| mv0°KÆïº6ÔU]Ax§²1PÇ¿W+Ã×|ªQ¼Â8"¨ÕV4m|µÒVTÁqÓ'5ýã
+¶
+WùX(Cß
+ç©PLÂX«0iÞÙ\Åq;Ö>ß=DrË`W<ýÉW|§4Þ#eô0Mw£ì?~ps±vò¬^s¨Í0* øZGú$aúÉIqþÚ×
+¹m../¨w·¾ºWYÿù3¬X-wab
+ò[ng$7VÇR
+9òÉcïYÓ¡øüξf¯×³Ψè|$óDµÊ7ÎHô:RC )ùI.pWgUÞ"{39KÚ<fLÔL?úØÈÓWÞäu¥¬NºR/^wî3ë賩Tbi5r»ä]ÆK`V¡Ë»Ñê«ÚYÈe©Wqi
+~?7ònr¼5ëÂßòÞÞåâÛ¥^©«CÈÛ"Ùùúð×M0]$nû©ßÙûB¶éÜŲÀ»þ·'L¤þ7[î/tQ6ØÃ=ðh£aSòÑ>ü»~¨Øµ§R<¶(xã
PKצoÿU¨Ù¤AôÙû;Òd`}4cí¡¹AZ>ýÊiÈ~Úý%w´µBû`fJè¡
h_d['.Ø«
Oº;Øû+«
+ÕA×(S¤½c\W"ë,&fÄ¡¤B¦ÒÉù9Ðn¸0ÒËJ¾Xâqg¼XlWL¾åÿ/ALæË}Í>=i!¯ªV;!y>
+k py¾ì¶ gÇ}5òótÛñ.ùK iæcÉwd{,¯ç¿ôåñvèÝI<þ}>üuèCxí¹:rÏ´ ysbÄoþÍ^4ú%ªËÎý¸§ï='Ýê
+){reàé`àP½ÜGÑÈöå¤éËt1"2¡«kü¯ÁaÖÄ5ÛEóϸF3N6:Ê2Dl¹æð3²SíÈZ>¥û:qtÁ´/¬ðÛÅö.
kÊöÕ9/¾Ôà3lÌ»¨QJ#¢N3ÓUDÙQ¥·¯ÄnÆÝÛc§þ»«(.o1DxpfK¡
+Ù+/÷çàöªnqëòZ
+Í*(e½çö
+ðkâÍÖlDpK© 3ù?"u7âæobûUxµÎr=©À¥ªD-æ]GWÇÒi5Ý9~ÑYx\0x
+>ÒÛ%ÖzÄyPÑØË!ú³ùSNæ°å-
+Ýñ~sX¼äÎôÞÌß7ÆÐbÍ"
,ff
¨lõ*° ¶´òvUklâÔð©`+eoY\ÄÍöÅ`Ûi¶}¬B8O¥nK*ýü¹2óθ
+|$ãýEü+O«±©ò\ýq^r
×-ôÀ77äÏ·y¦ífhh®c^8ÞOÊzÿë°8èÕ¼TYÓ².0:êkR0¾?LË¥Â?+`qûôÛ/eà
+LñÚ G¨ê\e\©ÌídÌ/
5Ò;:ºs[îjïÔ6´ÂË)÷ðu"ºfkeM¶ßÏSl족xE&TI"+å"·DÒtKÌkãP«b&SyT§Xà
+2ûÔÝþsØÔ¥$$ÿ;Þ&ÇÃÑȹ(¿\w<]½úvYÍ«¡[h]·Ì]±ȸ¤¸ É;ÓÞ´ü¶ã¦ù±Î©×úe¿ÿîðZqÝ×Ôe:!ùTõ%ÕЩXJ¬ØÅ÷^5ú&ò¿Ä©ÕÅù$qvQ1
+Û:ÚjùZa.jÞF¼Ê%ºbôýÓ¹ óÀæJ9,Cs^
+3½JúkrîcÁ~gÌç¢ð]xµGr'µµ;ÙÔ9QÄ⯶
Ù6ü´7£#ñÕDµS#JØ%^7ÚÌ8 î¹ WÏ
+9
+D³)ÎöÓÈXPI2§Ê÷è(»H8%HlqÀ¦õ3Ó1þYx4YFë$ÒÒ¬Þ¾½GZ|Á¡Jèejç¥^YæFÝ='Qøï®¦-1äJ¨
+&¸ßͽÌN«²odÈüFDûN©{2@ÓºÔîöhOò¼O dÒÉ¢Ë]fÎ>·yãµ
\aÿµ;¤êF¯+(íHìÕDBÏ× 8LдKËhjiW¯Éþ9Áô¢Â÷UJK(&2f4ý®OèCLX½ésem3ÑÊVtâsîm32<Ø+3}ï¹ÊÔ ayþñ^ÎÕ²ã7xq)~
×Dzµ1ÑÜý=4nÞM¥IùZÓìKhá$w}¬¡iÎA¹þS»:ÜxJXâØïTO»¿Ù¬ÔË <
+øVÌ¡ÝñÖÖþ1G,®dîÊ CµT
+`AÎtÎUb÷àußGÌX¤xi-W¥ìòP×'Ú[nýýع`ü&&RÉNÔá[åõu09×¹>Ü´81z´püÌÙípÕõGóî!ÒAMø m*ÕsåÞö©Ú·(ßj_¹LTëemè0£?hzÝDþ+¼0¹.UkoeÑæÿ ü£ðæÑs¦s¨Øûb³
+{¡ ÷ÝT¹À5<{ðøñPhÿÖÑ(ÞÊ£bêFî¯þQͬ|úã¯ÕÛåbÂi,ú3r
+H;YQ°¾ÃcJuÿ[CÑÏøcÌàó4¹¸J²áGÇýjNÄ~
+`¾yÈ
+¡¸JIäBgçPw^@y£ØrEýy6hǾÁ¢ÂqÞTàùÞ8j-鬤7
h®èãOÓy°¥R÷ÊãµÅr&½s}çâÌ98C:ÓÚbä5oWy&²]E5B¨Y¢ÒÜ{?*r<&í£>rPõ¸DôH$°B"(atíË$˧a+Yç²èä^¤É?YÎTá-G.5!ÇymÊvªí
+rÕ8¡îx%¸nOåÔ+WjÐßøeJ|½áè»!ÁïiÕA»<ã¹?9H2Ccæ¾)Ú)ùT>Ò¦Tºîò÷ðxñJÃÓI={|2¸û
+§²·KCz`ã7ÙÉ#è¿ãã3µ[ nãŬ>ïvÃxè3$ÄVfè÷Ì]°v¹I¹å°¶ýнÇù¾èÛC×Aü¯¹cJ¥q{JÂAãÿ¿}6JýÛ âPºbà7tUæ{V33¸3åFÈN¡Ô2ôs¡µ4mW¢,³)Û»íhÞ+Üa[v}¶³¨êjÎ6çõº`ENÌö%à¾Ëö¡Ä¾¥½í 4Sñ×8Óª\ÄMN\ϲ§ «{5&âRøñnûGälCÉ|4_:{-<'[C¤Ëï·ñRÊ©"^~Úç.fv®ª©ÚÆ@Å»ÊVG¸XQ¡½E»^~(Pÿ'¨h¬ÇV
+0ÛpßÓæï&Ô/0Yõõô\ývZÉb}7
¥ÕM´4½oA&OºÓwùÍyåU]Éÿô61j_ÀÍ-=rk0Ü¿¨?a
+L_ëLä¼Î ö_
+âJui÷bªÅÏ+ëø3²ØµCaôT®T¦çàðÚ)×£:n*J^5ÅÍoñ;YWÄãº
oKx*÷$õ|ñɦÌVóÁÙopÐÓT^/ß¡°§;*ÆÒUn±8aÃÚüHBôöS_ܤL !GQú#D~ÓqÃm¤Õ°VfãCÿÏZq@ÞǾÏñ¸Õ´TÒK/ÜyÎþ ±·kªYßM=/×
+æ.ÞáGkâipÓîc¸þ¶V_BQBØeßÐÏÌ©?l8Èu¶EÐ
+Ûk²{DgYiXZ³êÐtsÕAwtС¬ç¹
+ü4û¡0ð*_#±Ê8W¶²ûcÐ
Öú¬Ôõ³Ù-eÃD¡wÎÿg\¢S§
+ at CÂ'¼ªä¥©;|ý×½]Èÿðf¿}§m¸}ÎY*cÿ»(S¬íLB;?I(8uÑXêdsÙ×
+ò½ ù[IzÜ|ûÝ¡L~?-
+iíÊg0Dþ#þ#x&/3¯ìàHsf[MíÚÎÑZtëæ^!I*ol&ÚKÍR,Ý¢²¼}H)êéèÒ'3ÜÃÕÜ9¹ ã
+©¦^Gh/Ð~lyH7$"åo=àRÿå³D÷H0ÇlÙi(oÝ$ÔÕÒÈo¹óÐÉt'MÅ[Æî7jÐRòa#\vxQµ-¿Õ*D«vb"×ðz;2¯2«çÌðé
+qÑ^Aå÷ú£úÉÃÝS®ÙÀõÜ*H¨I«Óu<sLuÛXIøWkYéÚ
Ähxô¹ÚÜ-d{ <é¸U²~$Í£íÃÚ¸8ðv¹FZ Díû[<z»·Xk áLº6)!+n}Üuî¸É#DÜú/`:n¶òÑoAåÿÇÏßj¶C)§°3é?©çù)¥êAAÁa}°ày½?Ý+ KµA¡..iödv§ ÿ´P%£.
+ºõÿ{úý}èótÔ¯~ZÞE=ÚOÇ?YíüνiÝ[XÕx~÷Îள©ëÿôùo}ì¢ëS4CLõ3xOß2¤Î¦gÖ@}ܦbyîq4Û½T.èØMý§æàûy×hàÂü7×vQâÆxòrØmó»Æ_l¿åÔ~/¾Àt¶od0ÔS*PTÍèÏÊ_XñF¨¯ì8ZúTR»çD?wZºFÓצ]yéòe'bô©Q¿üR,É#ûQJv\긱Ür^:J«1
+ÞÔ±sK¹@ § E2Z£¹{^êoË[Ä0R)!cpaOpý ÉTü¦³øÍ^tCMoo÷ÞxÞQ]=³ß5?ÊĹü ¢{¢ÆèÜhYļyßÞ9<Ø?¯/v1ã!}³·g Ìx«f!çÂ
+mjX^íÛûL¦)òN;ç³!ê÷Ó`ÅØO&l ²ÏäÅRëù¸ù ÑG¦³løÅdX<T~·q7Á¿%¾rð@êxÍè3ǪkA±÷#bâ¤ãÉWñêÒÜ6,¼ó^à®îê:[oÕ&@1í.døo ©)GÑ!xe6,jöZ|@s¿GH·ö&ñDêï<ÃtC¯Oð(Xåݼ¯c¤ÅÑeÊÜäºîÛ/Få(Õni$·RïJt/|Í®sß:ÿTÄSÑa6b7¼/åÛ9¼I;
+ÉfWÎ3sÃÞíj£}ùìÀ§wPGv£ûZCºÆ ùÇcpÑ$ÁĽ_<ÈþÒßÇÑâ3u(Z)~àîöÿ{óO¬Åó¼îá^²MÝI8Kæ/5Éæ9¯ªI®¼#aL¡Sfi.5Û,ø5"ö^ßÞ¢ùÖ¨WÛ´õUvqÑÈ;½o|i;áÒ,aËu,O$C¶¤-3â¦Ø/cà×TVÐ1bÂæý»ÆQ'ÖC2£aQ8;V%-Áfù_èÞÊ
+oâEoW¯ê íH²Äb2(ªÈÀ³d>Ëkõ2ë
+§JÒ8Êû{0¦åïUMÊxIn1uw[~©ïêÄÇÁÿgcø;vw¢í0Âäî³ÇUÖ¾ª]§#@¼{4=æ!dŹjÖV.Ù</Àü±m
+6êT¾N!0ObQ¨¹ôPÎL \þN¸`pÍ¥Pç)-Å×K>!2Lðÿ
+öa6c¶ÌgãgÔ¢!T!whöBZÕßQE·-V Í÷¦¬QBöpN¯Q®°ð&É×ùìá÷ X»îÎ
+çö=(áÇ+üöI*<¡,ˤ>äÒ$ò¬àh'ól¼D)¤°~Bÿµ{âtÃúí%Ók}¬%v^ðùÍ3Á2nÎè?pv1/çy%phÞ!ùggÂaÂîx°<`®þv60ñ}ßë9 s²´ÜÂ%Ø;Î?c©"vjß3ðÉò©¼ä»kÅ\O0ÔY1fQ:;òÒhOô@ϨTUÁ\ùðh1ª8ͼÊuñôZ/~t&#
+láp9òÞ/ÉÞpï$ZÁÑ´V·ã
+ÕÙÆ'ÄFdL½þGÝ` ³hiúºôúëkLå.ßµgÂzSsÙRù|(¬Ìà¤;
+²¦@¼
Çâç1$Ä}B]¼Í Mïn qQ¶
-¤b:6ú)nø4ÁÈÚó#¾%$@¿ªTÚ§8å{Ä:Шw|Å
jçæ'M°OïvÄ»@)£7òt~&_Þ§@õ$ã "¾¡c{¨½ün¡üÔ}¢&.î 3»2%æ½5<í,D=Hpìp*É.
-]|nmåÙUIÊD{o¨,(ì!«íW¸ý4 ?ØsØÓO2j¶Å¹£À/í¿ùß·@ìß>Ì
-y²ÿ5ã
-·k_s´lè¢#l·KC@â¼ðAù j®]Õ¦tN
-Þdö UdKÝùµt¥´$"GüÌTPdº>ÈwëÃÜ
·ÖKÿ)1}<Ù{TTäB1ª#Å
-h÷÷¬;kf #È=
-VSG"QXg±Eg#屪¥®Å,ãú¸¢[¶ÄúPÌWz8!tæ~é§<Z£¶´JÿMµ; [ÍÚP;K%LøÜ¸ØËêGwæÇ½TPeù\ÒÛe1!^ëås&§J¬ÛZ¼6wXNÍËpÞÛù%gê»û¥dCÉÛ}*³@2Öç-
JEêæ@7ZÏØniâkoæ|¯}ÔßOHØÒß;ûW
<WxvÉyÍÁ0ÃnY>ÔÖ¹ßù-aì5»êrrNªy=È&$0~Lð¨»B«9eøÖ7%ny﫾òvTcê1?ì>^Æ©*. fÚ;Êk }ä¶QÒ.UC+%QÓÙÍx¾h'9»)òcáî~¥rn[üRÔ~%´¬Ýd)àÄÛLù&<¶RrìÃÿá
-iç»~'¿U#þîá¹.Z!/IßY/CΨÉÝ!tQ;ãÃÚËïìu´§MÇÇQ/R
-¬$Q%¢Lçq6}oYRùMZ¨ÏÆ\M/Öd{
-ý»RÝ«"Ñwc^ÙF9Á'#P]ÖSa3#!vö[³}vWp
våN)ÆÅû(?¦ëpDôÕξ®Ú®p¨À:`I¯8É!/¦|ÆKäz!ÑSgÍc4è¡TCdr §Ì÷kìuKµDQE´8äíç59¶î´îcqH
->]gúì7F
-Zô*Èîçî\×äg8ãNWa:£M_Ðö*\`±lO$Ô°T£¹³ö¾ª{h#Hj¡'tdáb½ÐQ_.MòQÄüÜ ÏFÁ¦¢ç8z©.Ç3øÌÁç×йFâ½öÐ|\«ñ¿+µE#9ÜR}7¡Ñ]¿QÝçjzÏù¥5ZxX§J[igÀ
-C¯iÃDuè8ðÙH¿Uk"åÈFI.P6cÖ'ÌÄÝ9%YÐ]!ߢü
=1qÖÍE]ÎØ;Ë1ÎÉÃô´MÇ]K¢¿§ån÷=v3áÖooq¢2[ÄÈS7ÜBð©øfÿU®
-H+ÇÈx=×i(»¶L¤îÌÕííÝn5¶åòtíî
--Ñx dEfí>U=ñ/ôÎGê¦ûâ®
-ôÊò}t!ƤrgIXH^Û´øD¤LYÐߪ
±ªçÜý§kyM: Kª_ä¦wÍÕ0ß[Ç´ìãèaˤ73ÔØ£ÊÆ^RNÿßbÐùn~ÿÌWGÎË$SÙ£C(ÎúVÅÑ©;_ìÕ¸b:µ4/ÒÛå54^ÃK©
-ΰõ©®¹µµxç²r(±ðÒó4'<JÏ×_Ó~M(ªùLµ ÚV²ë<¶hñÞrqéÕÆ^ùõV8'Ð¥üÜoá+Ѥ¨_;»@¤±F
-ëèãÃz\áñTØ9k$p[µªâj08¾;B>æ=÷ ü<Ù8¼_~¯¾F8ÑäÅ{ö÷¢/ä®Ü |qöGÕÁ½
-+;Dó¶Ôéb±þT%}XÏpÍØ<Â(@æ)È©
--½1Ù²£È¸½Àû¾A-44ì£a¦ÌJÛ5ΪÒZUêÙ'{¿ã6þ2aø4¹"æ.ÖÎY0` alë[õTìMö2jr¼wdÈÐÇ+æL¬ðD¬ç®B²Y·`cØnc6ôó^?(#
«0ÈöÖÖáéWHG¿÷Ôtî|2ð²Ë(4Ö@lb]íM*H
d¸H sÉ0á¶êA ï®àx}§ÞÊ;].Åù!Í6ªyÞã¿ÕÒXÍ4Z³
-cì°«1@@¹ãK!zÁmµb»c=c6vÓ*Îp©Ìûï½gq»Téõ°®ÌN÷/ÿk»ðø<8 U;ö#ÆUs&_É-lR¢púù£DÈÝï äOdÏø/]oÌÖÀX³Jô¼ÊíjIMu ûλW¨ä,K3º±@yÄa2ùs,,Ï |-7§êÅ/Eå·ådè»;E;o¼NÉwÜ
¡5¬|·Äe¡3Eßè7ypqDµd¸×ÀMìæÇê¢VZræÅÓb´F7=Æ%´·ðoHá%ñ"R0ó ÖÖ;»ù¦|)êÐÁxºâ+@þku[¦xï&qÆ ÷RÖêê¶yê UÈÁEKMàbüyêõ¨ÃÈã¬S(F:&ë.#þBµ/ºÀ.;GÞSÐ#A¾ÔòZóv
-ÆÙçú²¢=ómðÝPLøY¿O´ögñRp"¼2R»õ<@rîÅ´Dùo¥è3滽ÝáòÎ#ü9lÄÍê'l¶¬ùfËù}Y#NÐÚó!ͳeÕçU1½ï®ÊÞÛN¢íA2×f<¯¼d!{©õzBx¶´¶ÅÌFsWL)¢oÒö'£8ïà#oÈçÔ= P1þRÛb°É&ÙßzðÐêWÓYäÚx9#µÞ
kÉ&+ÇæÆ³â2DÊr·. þw¹ý,ÜþBNÑÀT,ïIÚ³X
7naóÌéŶW¥/ÜÒdÚùãê¶#!|Ãa]ýÀ(i§+â
óÙ"µs'WýÌNSyèâk¼áyY\à¬;^o§H½ª×ûIÀø¯Ë0XÀë
-v=,¬õ#*'J#~{¶irþTk¥ó\¿ÊàX"²j¡¼pÓß{ä~M¹
-©}´f1w§W|6vN;r,0Qâ¬kÃÓ±O( ³è>¤DHÅGdϬe
-S\Õ¤2!7»°]Õ
Y÷òßD
czNåÏSÁYI ðëWÑØNøh|pzÝ.¦þÝçE¶"gýNúéC"&xa<17¤ õôû8ÑrNøÊD7{¡ðëìr>èÏ÷bÄ<Cidb2)·ñíúÉÇ|Yô«oâ.ì'Cú/·|4±o³²e³+:õWâ²4ø¨àßÞN?/Xê*ë³ÕáÎÞlaöbôÕ Ùö-Ù°lébN¦´Ñ~ßÕÆa?9QfªáÙ]GÎ8Â1-5¨!®ºÁJüYp¯8d$['¼~-³Ê:vؾÀº»ßÞä¶êk¬8ÍR®ÎvÑl¡ÝLUL EÌù
-Ú5CÕöoªÔÆÈ%4ÃäçøÇÚÂHðt'ðÝ k¬¶¹,!Êÿbo- eÃAJbí}Ê2'jØ:r÷¯Dª¯O¡«è¸ÎR1ukýnØn·Ád±¼¶kk]°&ãvWú¼e'W¡/;¾¬7ÐÜýç7Z¥×bj#Ã
-~Pë|P¡øO'xÛÈêw(G°Q`Æwæ±YÞt²øf1IäoxàÐNÜT|CÊ2·ÖWĦî UY@jæ+¹×µ6B¡)masÃ!^§)ª°J×d\èòh³5ÿÞÕ©÷Ë;â"};æ3v7æyG¶/¿ £TþZ@êDTS,o[N3ÃÝfý:î
M°À~2yË£ØC¹sÑ#ÍFÃqG3 AÞ>¶E?òIÉL_ãbkðæô¼!³öR}×:([?ÒÖHO³ýSѵØVPäEB}¤RåáÅCxÚ=k+ £-§¦ÂëÒè
-X" âÒoæ©¡ëJ4wü¯'óJ5«<OÓ
-"Ñk
-Ô]ðaaSqAHª2ÑÃÈ `õ¢Q±þÂ~º¢Å@:ç§ã7MÄ=ôdgD¦dÅáQ4ûUXS(¿ùÙ5Ùú¼öØkã·?{½`9LSGóW´<v(¬9¶_ÐKÀÃ.§PhÚÌ»@[hÖiÝ
-N/Jò¡¿âkìúè©ÊȰ}ÍÀò¥µ¶6hH75p*F
-´ã1÷ÅÎâÔ¥#~ô³ÉQ#µó 3áò6pL*%¸Ï
-fê?¯ pëAÀ[rÉ1òæÝÙÆB;ÂÖVÊ9³ÚkÔüÛ<BX-Ú¡RN`¿î¨é!u³^[q¦ou7ö¢eõ<µ]õÞ
í,\7BWEb»å±ê}E;ÐÑÀ¹ÆI°&ÁTÝárZètxÄlÌ×A×!Ê^ö@é,5ÂX&ò5¸hpÈ¡,Wöäßáõ©.©x`Hì{â¢_èBÚ7PìlhMÚ¡³oH
-u<Êèâ
-x5`ioE6Þ7ÙÚ¿ªHÅm¨a\Rúó8^þfgRy ÏÊäãÙdäRº²>®é!èµ%d.ûÕîRêÜ7fá~J¸¹ÁÁÜîËi¡ G¹6 dtQB9Cê6Ç Í#neVcÏ<%·î£'ì:rlô뵩´½!ÕÕÅVkr8ã@Ôîr¼9£Úo¾[932dE46jÖé?ذà pÒj>¶ýI$iÊPËvF3¾Ç\\u &î7÷PǵHÓ2+ Ã]¼I=5o÷4Ëk¸´¶÷ðs×Eu«ó
-ÖA[#¥n¦³ K>ÊP<"s».<AÝvÑ¡CßLi½¶÷mdÞèÖ(uI+6ÓÛáýª1õ¤J#ºF|
-
-tßÂ4£""Q´[ÓUQ<|Ñ5hI¼ácSun<xFgq6L×Rs½C[Q0Ü eZ¬Ùá$§Mnðôcr¶Åp0}ûÎGHA¬ÀiOFrÐózû«ú8êë¦Y}ªü]lÅ$CÚûÿ?ÿ|ëîû7
ru¢jÍÀÇNf ËßÛÍ%«enÖÌJúy
-¯'|§×RCBß!ZþNv6u¡wä*h¹¯éó˯^dôÅ.08O]'Cb3§?¢IpµÀЩ *ÖÎ;r$ºlË.ÅM'ÙÑYÆ
-päÅïûfCûp:;Ujý5Lé 2ßåv)[n¯À¾el$JL0Hñóxé*ð¢6+/l+PßÎ&~È9ÏïyïSc<[Z>Ʋڣd¤³GH+1DWa©¤«vj¹OT¼W'&&«ÕeÇvÓ8@çµ*¥@¡p= åzX_µ¥M%@=ÓLua@»îãWãpF`ºN½íªgUûSÕß`èI\änQQÇ/FáÛ¶Ìp®+_ä6íÉéy¿ÚÛÂÙNU°,Öx0üÀÅàLÕ0o¥û)&Kµ¿®S6®y@pÙ
¹s2'c²ÑWÚ¢D»¤µ¬ô)«oÔÀ%rÑ${Û{¿Ç÷Ép¾*Ê&av
-Jiåíʤ߸Û,ÍÁ?6VÚsøk_û¹×½Q´¹T³9T %¡oáÅè`neu3ô¡ým£8
-ÅÌ«Í §¨Ã<%¦
-PØG#ǬHn=0¯{RñîÝêjr=Ѩ
-iJˤÌPéRU×eÒ%ö¬[By6ÎãÆóúÓWIØÀ¦¿Ë¾)céñ]o«éð±^(Ëþ»¡ÍµxZöæE£Fÿ;ç³Î
¢\\l¾fû¶G}o:L+ëtÆ4Õ¶e²ÀêÅ(ì
-¡¥S6yúyx¨·¶
áWøµæåwÔ½ÀZÖ»ömb- ±*Jñ¤ ¤Xnhr:°í±
-¨Jüûõ/OªjÒ²iS©Ó[åÝÆÞÞu^=ðïâÃsJ'UæÐ¢3Û/%í¿=ßcc[\í7Piq
-~¥ØÕ>@#¼gRô¸¨ìz;ºæð¬µÿÆ© /ÖþÆ_+ô¥îp¡_{Ðÿßã¿@¹ì+[Ïcd
-Þy«öL¹G?S~Ö &*ízµ>=%ÖÞ»òelÆÿÜÖô´J?oµ/Èá^e#±°Þüî³"2QÖIX𺪣Îì<_Ó(§|Χ³}¥ÄõK m=S4x9Øã_Þ
-ÕñÞ«
-°vßMÖZ£È^{½e
-
-31|fØ0¶R>I ûê:úÍÔ`ÿòüÜt´\°
-d¼hôÇõÝ3ß©i$×ôßEÁÿ Ý&¸Ù+@:ÑÂZMºbç¹e½Äv2"¯³C};ʼk¾G*`²îÑJ½9êë GmÄPÛå¿AK¡Üé°HÌE3Þ¡!<H_°GK½ýÚÖ\|ÄD~øT
-HyãKÿÚ ªfZw9;87¾Ðþ½óMúS˳¾Û÷# iD´[5àùÑáùmï7©NBÂÁ[$f%ðBaÔÛ-ÊPeÚÜE>')ÍCºéeï
-ήLRX[6#¨wÂÍð×ùV6åh껾DÞà¶$$¤pØôÿGvÐä.öAEs¶ëd½ßkÔ¼
-´!ó0BÄrDRiuDÊbß³JN<ýºP\h¼O7èâ±ã)ºH3¥KÝ1\AØQGò3+
-¥: ÛD|,ôóêǰüÚ@XXX#7¼7öL³Ahó>Ôì¬#x
-g)<-»OÿQU1Ô»O¾ÎE"¸
-eâg6còßfËqÅìåàç²ÆÎ¦ÎiAzɵ¦À\ŶÂÃ*°ù*äb=0ß§0ßø
-õü¨ÿk>.$z ÷7kv¾ÄÊ s.B©gK¨Ýë1}ñÿÌø½:ÐMÅg[
-6UÓ¥Ècªg·V2
-ÔÓ`µ9
-ÌÛ à®Ýé°c®6ämU¬
Ù{¹2päî]÷Ú±]ÜÑèSËûÞVÌ¿¡)³oþÏCTÊ+{uóê%-áGZâvÙ<×ÆÍ ßâNåHcø_ºZ~»÷§o'Ýs´ÕjÚ±F!lóûªùcXÒV wsThrÃÔ¾C 8k55Tê Y#¯l9¹#;Cë¢j¸§¦LÉFRÁßÍ{GätB9)Z×¶A¹H\mß2GÔøïÍOùeh©¼ºlr¼^(+T~A¼ÏÖbÿ±VÐAµò·áØB} {l/ÍÚ« OòÆtäzâ ¦ÏæeWÇ©b]Rh_q;²ÐGÚ|
-Âi?Þîçü<³k
QªZ(ønIE%»hí*ý<(ºþªûr8¥ª#Ù¯Öi?/Ù×´WZxkô1vùC5ÿ0w³ Ûí¼^ç¤Y´]ZmáV³Æ÷@Lâí´¤{±ÞãYí¹4Í3~¤×.fF%éÄz¨6|µ(-mã©¡ê =$H®Ørþ2ÊZ ÊúÞÝxÂ!/- oÔ¢ø½<ówÌ\¹
-ojö\¯ù´©¶ÉQ u`]Þ±&.75ÏÈ´Éõx5P0ó
-
-Åöo£²¼aqƽ=4`|ÉØË,´ÇµÁ!áØÐN&UЩcÂp¹¡5¥´Áêâ:ZR:´¶ZN¿ðü¿K\WÞ|`ä&W%µAäNAö8Â0]Þµ¬ÒÜÐl'¸[I&°«BJOÀÿ¯9ÇÓ7K WQ¤ ó
-Üz¾Nt5I ÆôTáûæAG@
ëýFÄùD¥f#ÁõlìwMG²gòiúß¿E÷½UP°Å)ý£'_úü
¡°ZWr*e«þ
-QLüͧzV²Å¡mIrǽ<7ê F,/3y¸Ê8ÆhºÎå5xÅt¼·[0tÆb4O
-pÊ2Úv¦ã»øc-ÐFt¢.²ÊÄYõr^DÉÆäö_ÀØPýBäÿç+ÃÊt¯Ãba×ÿ¤±µi+wâïüÏr^ªÞeÛd«N}o|¬>?4vÄ1<ËÁAÝUÙi7ÏkGä¸ðéoÐYÖÈ×!ÍÛ
_eÚİ
-§z«Hå àC%N
Ü©05ø
VÝÏu²w½(Ect¿ã¢ÃÈÚÃÖÖY¸+ã6A)_äµ)qc§ò%æÐZñØ~5K?ÿæMÀ+È\ÃË8úK¥Òíö²Â±ÀÈkÆTg¼6Ò/§®ß+äþÂ!´¾|3¦X$QvÈ$ò
©)XÈß
ëÓýAå"û¸?%uÒ¾U³z<L\5×ʪ
-
-J¯Qóè(2FãÂOî{S~Ï
-úä)+ G}p¢{ÚCCu-FÄÖî`÷½Aèv¯U¢/8ffúz%,U9ÂYÿ«s×ÙÌ¿W,®rO§è;2Ìʾ}Ø0HÔ;!t\ñb·p¸Q÷{Éi ½#
-üÚé`/ ÈZ¶#Ë.]·ãù^§ôÀ=5ÌlVFØønj еux¨¥Æ:Õu]ÝGSh·ùU?À¹·ò?GÙÌPýçvÚCrrl4´) "^\kºv¯kU4½RêJ®Æ ¸ÂIíiùõ=YTQV®íûW¥ý/)Æq6úù^J¾[SræU
âSùBì§ Ú=Áÿ©~ÏzQ·ïï¹ûÄ[q7ædУíuÊüz<Ù»½z÷æÕÅhÝïueí¸5Ó1hKöïÚUHÁ
ú¤m!Ýå^5äèz-!õÁ²ÐpØöèVA ¿«å£æ¾êÔ;þ,KÙ*\Ø·*E[kÇ]CÇN¤ºCKWÜoxtÌÔì8SRU5å~XÍÛUa!9ØYdжn~,àEù¼5é(|ÖÓÙÀx0:.=ê%º98ª(ÎCoø©ëë3ô²ÚVßiÍñkøû\-go®É.¯ßðÒ@ÀÇpDP^E2®Ç¢"C5ç¯*Öþ@Ã
-p^Âëõ$¯ØE¬6º1¬ÜUx±üãlîF±¤É}e%ÐoCH«Ò.
-ÌB}û3"O²G-ä=/&Ý#,çRõÝç¢WM`ÕòØGk°U÷ª{Îúï;Ýå K)äfÎ
-%h³ãø¢¬ÇÅl7\!ÐÞ¨L¾:½tÔ¡·d:é*éÖ9àcÁìc°¯4üëº. Ïk¦ðHyÜU;É:g1`i«Q^h1[ZáÕÓ)®0Oc`ß)ù OTd§VËèÞ_5ËOóí¬±`l&výãvìçéÿ°,HðPmâdZ¹BÅðhb¾ãzï©ÁT÷²¤ L8û*×Dö¡öÓFÀzuy{S°oæãþF-_R³Eµ£©²ïAcös³æcB¥$BXú.¤û3*çaýsc.«/
,'èçzçñò
-[9_låÆÒâézËÎoXQSqÔöýÑΧÓgV(¤,x{¢%tK[7«éÇÚ«tEXù¢r9>ªúkês? ®nsi_CØ¥wòÚXϪÙ=ïvÄp]mõeÃ#IGç¯yÃÊÔ#5ÒuF*Ë-»/Ò¥?øv¹ø´a¨&ö>oGï 1UkTÖmtc}
-Z$õUÕï®àõÀú¿ÍÆ0´´
-
-5½O¹"ÙTæGÛ9C'ÿ»n¿ÏN?γ¸¢KûÝ!}ãУgd,5ùè_¨x×ÖaSþ ¼\ÜÅ+Ôå)41(«ÁãJï[mÂôT;I>Ò®XÍÏ@ìNofkà/¾ÜtiøDýY-ßúö(®é"Ë-.ç0._dº4Ð
-O½*kr%løv?<\ȯè²ÚdÒÏ;H#¸q[àÞ-cFË8±¹ª?.Z
-Ù¶·óE^|pÜj÷Q"Yú³Î¯Lyôå
-äù¬+eË
-R>a .áõV yð¨××*÷ÃW|L¼cÜÃÜã@¯ê¾0iÐ#ǯOñ¾ÿ  Nåu רÓnËjsð¾p¿ñ]9x˺«G¿T¾&â]¢ÙpüÆÕLpå'ÛBs8l¦;õØúÁQ¿ú[Y! ð«p*ºÉÝo¹ÑÜÕ«y®qrúk2RIôFÁ¤jÍhE>öËØL«yRõÌÛæÝêÿO¨
-ø§kØÒÛS.ì¨p¼à]Çs6¯qbJ!qvI¤}´`ó½xP|À5
-ç8¸§8züé»;ë±§Ô£áxª-y¹Ré%Ïhûæ·+óR'o
¸'~¡G§ÿ!ÉÖîC©p[@ÀSiѤ¦öãÀ¡Ü^8ó,6´@üòð£þ,øÖÆGÛ{òþÆ»É(_ÿûà3ýçý®T_BÊ`È»`Q÷ÍSÂÌC$̳pϦd/ø½4cåäûŬ¸cÿHÌ¥ÞÍeÄî&ôÐNö¥±%£Æi&|bo¹_Æ6{f#
åutºSluÖ7nâΡEjë%zznÑðáËY|¾ ±R©Î4.J:Ù
§ÏßS¨¾øÉxËqG3ß|å·!¯âÚ*Úe¨µ'ÆÅ÷ÉÚ@>E
-9_lÓk
-k¥äeØÔáå6Ñ^
ZØjÍüw|ÿæfÞÕÁTQë|¡¼PÊñM®hè°é YhìäààLnòEØ]ú¼;> âIûaÙÝ`"ÐbåktO
-årÙJçEÇÙS7)ÌnU¡ö?
-Mj ®¾ö0Ò¨øW2ûg$Z Äâ
-óy8i®Ì`l|LãÒã@pW-ó÷[2n³äSè×ï§Ïý¬ûèÇåP½zQóìþ$
Á ùãþË08fu꺻ø~.0fÆ:m%áÿ0ô¾ºð||kmK²7"ø/Qlê=`±y$!|'§äBPÔi¸6|E ÝÒq½ºÓjª
-q/ÃÃiÍâü½´Ãù5·JãïÃOe%¹`¹BÀf¬þé^êÖ~IÖªä0ÃN`wCä±`¦YépÛºåZ=r:Ær2}¶©ùë]P¶´U!Söã
-Ê`A¾0[yËcÅISF¿iM^F$v;Úæ_=Að«iÔè÷a"Í[«<רyº
-ÈA£÷
-|Bâ~Ëá%;N;Ê4Mã|çÍ:¥qàaG©Wþ*xùÌ"³íáJ)!O¥4íW£bHñÀ©Øê\EçiX-ö1¦Øµ"»è9(JÓÚM aÿ.f½8i¶ jsÎåɬ_¨¡§ÀµýøÞ1ñûÒãéeu+îÿ¹9Àä° vWôÊcýÏapanڪݥìÇÉãyÒµ¥{tþ»u;h¦'Ôâ
-kñsÉ|
-:ªígb;«±*~¤"[BäY¿E¤Gïî Ûû¯È>
ü¸·#ùb¥çJÐówÀvÀ,½
-Ã:}lBGY:´hD~2%@n*/ R Óèu´ásÿ¹Ë§§ÂËvÈ|ØÑ+±ÄàyÀÙ30Xß©©W¸«ÞX¼SÛâ]~\Å£QipÓÆè
-¬ðqÄé&þ«·TTFóõágÎqaD½#=,ǰÒJÅüõ«"ycÑrRE±Þ
Ñ?Hq6ÙNrf:8skIÄ÷¹áâã5UÉÎ
-vqPvkŬW!W¡ó³©ÌÇGc+mqdìç}L¥.oö\ÑPUËô%cYÒ]>Rçùwÿ¾í6mIþÔè!È,\;·á¹uíêü! àZ
-È%¬âãnUËÒSéXðä*Çüc<ýØWçÎÛö`»Î¤Å~Ú;,ÍÀ¦øv]5÷í·pãc«í B[jÜë¸fc »ÿ¥cpûÖÈìäõC'4
-S(Ò·6zeL?<¼ÿW#JA}¤ç!¯=ô²$ÛÍXí1våOÜÂJGÔJËfbðR²dê.xMaÿKó¶FVêÂ{òŽ>SÿW|,B"9ìqPA&Æëß
-/pÆ<éjçÌuo'\
-ô !dÚq§ÕRXáñû ÇUÀ&3,sCÊÓWÓ(ð·øÿØ"
-POª<Dëaª"¥~ø¢ôð¦¨<·¹éÕ»}cw8¾QýìD/Âçi{&í4ÙÌr8·¶ÀäWe'AÛ~ Ù>ÊöåÈQ*þÆ´¬¸þ¹ÊªmN@5t
-únçYVcÇ·OoÐ[¶lÇXÒß÷}#Ï·¼32¯*tTXSÅõ
_Dz.6y1Eübü½+¦ÿìR í¯Nî·Æ¥(M~(¦«åF{nÍNó`D¡aÔWøn¶Ø²³õªÔ)0M_½'óÓ+áÂ@³N¤©ÛkW3&
óÓË+Íß>;#Sñð$(¤½u+C±Ùg`7ð~~Ý9uÆ´1h¾fO»/Ê÷>Ûº
-X>,~@(ò¡¦
-L¢|óÂ+©ïIùñG¡-+$º&=̨MÒ.g4é8JÙÒ=û
-ó5©Üb®Ø<¯ VØD l=ù#Á,<c§|¿«[@ûgïý·Ñì÷qÐIU«ìôOÑbÞ©Ð;q?,sñmð¾ÖH¸JV^T
-´4Ö:e8_íÙX5X4¹$eåÇ
- óñö°v!]Å>Rû j|µªÂ"÷II}²1o+°Óa;_êêÒº¤tY±ò»î¤`å
-p¼{°¦}·"³ÑòÖð¯j[8\Wébò0Ñ ÕÃu@/]jÃþQOchÆNS\íZ7ÙÖÜftc¿ØÉ
-*ð=ø:ö2Ì}*½{Vä'`û[aã*¿ÿìj[anòìfQOÝ
-³ü
-«ú}ºóªãyµì6òκXEß#¾U
-XÂCÆý,÷òèË0·ÿ3}×¥¤
-£Q¡AÛT&|v,¹é
-×ë;ÛþÊYÎYø?£ÜÐpïÁqhoÌ®ý³à²÷A"mð3D¢åvlÎ
³²Ø«@Î{.^ÃcnÉ·CE¿Aïn²\ruá»dÐXO¿-È.Ï)ÃI³}p«=É w¤Ïüѹè®AÐÐ3ßm Iפ¾µ& ºÎ!6B/X5{È8ëIµ()Ïåë)¨]\æÑ]#öpÂ'
-ºQ>BáHS+Ð×µªÜÈ?Ó1næh¬Â©üÃJç¨ÖYþ´ÃØïÃNð³âû+Á<Ä2g?µh?+ÓÓ#+¢97\e¼Ç)$¶¬cOPXr¿ýz$Ìd°°Ä¨Dï´4|®½)Ý+Û?^a±Óò æIhHºe¹®ÊäªJà}Xø÷3×ZÍð ûrFôÃHña»fÐn¯¶OµObAknwßÅñÈÁÙú
-J*óþ¾¦íËoIïòMÅdø0`䣽piÆü¸`Qæ©ø¯ùR#ý§Á*Ù3#SQô¤£A [ý`D@Þ·ÞÕú©%ãÀ7,Úâ¤ëÍ9l ^î*¥oÅ¿®7/:ñ¯kT/X¿QðíïYêÜ#Ü£5ݶ©^µz»ãPÉb»¢°"c-Ôº`!}jS"iëF
-L³esóËnʬ¹N*ÒÊqMáCq©§LºË
\ÐÛB{Âr¦.·ªlfñ_R/{½r^½îµ¥Dµê*§O'ÇuøÚk×P<¿cH¸âÚï
-¨à
-diŵ_e¸#4
-ãÿ~³dèÌ?>çb«§Af1
¼n_iÓ^m(H>¡ôÅé
m
-vD
-FR"÷ã³EºÁ½
-9æáU?#ñVè}(äÁo6éÍý¡å#Â(¤?ðªlMm#©kAöKþ=©Ü·µ4¦íC¨é§§.{C&G OS%&,{Çõ©³EâúBÐZ¦`øÔHñ0yÚz&yõûåIÉ«3|¥K{ÎC-±:Uèv<
-GöÛQSʺ
¿ä÷$ø¼.®ç2J@v®*Ýôï¥sÉ)Üô$#ÆË·ò°¤þëkj1
éË¢] ¡=ù@nör<éÜâª_p|Àé2
v}¿?Qùooo*Re)m6uáq,?7!z½îâ½¢C/
-ëC:>_fyÎÁìÏPË£Ý,Á¿ööA½Ñ4«°qø ÆÈ ÿÑäcw!T¾|O¬êùÙöÉ[~ê6Þ8\IN4R¦©&ÐÞ¥¤nÜ,ã䮹0©Å:ÎÜSǺ¥ÉE±ÛEÖPI¦!Äø¬IÞĨReCÚëð¯6Ãò b¸{.[CtÖJñµJ·)ýå¡3I¬ÉÅã¨~ϱ©-õáï¾ñu5ÜuS($Ö^<Ñ)»p³FÕgë/\¶nÔ#Å¢Iêôý%9¬W{+ÊiGצYãå Þ\e-,
-ä³cêQÒ@\¼Pì÷ÒÃÕþ£Æüþȸó~ïßwYfe¹XÆË¾FÀëÛ]åòÊùb`&qä2w/Þ9GÆuzs«"·+(>ØïCo75X
-×ø¸ý³¼éÄ©Wí&Àñʲ=mÏ6FhöC(F~\3¨ÂCü ¦jø>n¡K· 1Sã8.K°¾À £L÷¦y®ä¹¿^
G{ÆìÞMqzÜi #n;ÛÑÖâZÅý¼C»¸W %n×ÀÖÁ®ìÞ-³nïüý6!¯:ò;«®ðá¡ÓTʼÿµ@|µZ)Ûªés(,Ä'}ÙÁóâO²§8r¸Bñòû=ç³)¾7JFÜÓA¹mõ°}#ò§0AVk=Y9
-¦`®û^OyèºM`!¹ÃöX=ñV¥RÙÈùÓvKê}~z
-öñ¡¨NN{£Ú[¤ë&:']înÔ/a4½ìJëÁ!o/Ðme5j"Uª\Ì©Ö9M0à.FþVÞ íuï'ÂùáY
-?x\£éNÒÆ÷s@Ó%;¶[PÁ+760~ä×5 _±ÏWúîö²¦Mì=áßì¥Ïz]]7±×¥/*3*)¤%O°& ë<·TF¦ºç|¤çî"bWz×KwibÚìBGÌFJ¿·úÛhÄ4!õ>ò¸.$ä÷k¬â7 ¿½VÍ*sÞjÈrP-¬B
ÝKDê3ýé'2zB
-ôîzÊÎ%RD[¿ÚÒ.Mu=\îÞ`j¥&í~NúIQ÷ÀÝ¢=1ªYdMQü]Ô<ô ÀñÎ2,à¯'®±BÕy½ÔRÿeU|À[^2xpÆr)â+úÄQj8|®ÃADmÎoú9ÉI$ì
-ê
íñÏleÚÝz[üÅC»í%hÁC<*0§&úý¦ÿpJÁ¦Gq0l£FûÒ8ùR¤ó@-ÙL_´G`L£ÆCcbæ<:Hú®È³¸HÆfn&LÀ'u¶(8É
-)^Äíù8Í¥ò¨´Ó'l#ç÷hý~}sfvß)ÒÂþ,°Ä}§¨°÷ÐÌúm×\÷h
-zBAT
-Hí%·àZýÑïiÌ6Ë|"ýùæCâ8Ïfåæ{z*¤Pùúq*]Zô7ТL<õ'ý§_ùä¯Ù¶äæÑÉóMâàµ÷éhÍ=ÕöudÞ^#8q¼¸c=Á$ýf,Ö¦hë$| ·Ì¹àPåÕ$oyºéÒ]>Ñkh^ÕhLg¾Ô&9kXSt&Aaz¹*±ªy´©O²L½wbûâN@IK4uÍäNä#NÝ@Í.Áàù_¥çYµ®ßF@_ìÒ»+O«&Mñ;ÿþµÝõ;<&!¸|Þ®Îÿ+ëéA³Áïס×Î#ÿõì°¥;À@}gñ︼ڡà¿7ÊèÙ!%Âòú¾ùÐ_t:dÛŶWáVkXèBÜchl·,£bçÔì[ÏT#ò&(xg'C,*$â¸äY7
-]oCÊq&Õ÷9
-»òu~¾´xÁuÓHñBxPDP¾ù_Ó@}"Ï-3ðZ¾¹ÉñPWH
-¥äÂñ
-e0¬¿s{ÉÔ
-ÌØ åòªì# |Ù|iÆà2Þ¾¾
-¹³>uDö¥èDBdl+k \Ø"Zýéñ{ÕâKÒo£4èNù0Ô)
-fâOKnü:GÙRûÇç "¶cþܧðv?ÖNèèùð~n|G$k<ç÷çôÞ/«V*¥c`C¨jvhR¯N}=_*Ez+ÅE^2; E
À(<9àÄû(iIètæp>µY¸ÍÄ,Zÿiéß0,o hÝÚ<"Û! ôOª²PØ{4L2jyb§Z!þõ§â°¤SV1©~8Øè-®½Æ«æÏM5ä¦uËÌUkfÿ KÜSúÏËVÑÖ-fÒ£¡²Óz¢áÒ)<ÂÎzrkÏEÁäÜJ\ÁnÙ§ÖÊþgÖûƽKåÂL§êjw¤1½)6Îa§(¨W^ MÎç4ÒBz>¾Ô/}£(D³Zãflkª±ÂÉÅh¡qûé&_çÖeµi»'^hÊ^cwH~<Ð
-&o%¥êñÆ>i Ïr¸Å.¢ |áVjeØÉ¾Ñh±_)<mÉÝd>ö9IU¼!ÛЩzlººX°´@1i¡éj<vñÛûXõöyÕPÈRîfa
-yÑÜ9§û´ø|/tý×Y!äo6îöT
-CTzÿÉ}ÐôDáºðKîʳ½ØFÇLR\åÖ)|Àf°¦×}
-%»yqÝ]à
]Éë¯9|QÞò½·gsðù6u+hV Ð8<¥ï¹Ñ*ÖÒîåF?æERrk
-{Nì±%k»Õè®1+ø|ïJ5iD¿èøYéV~LT¸°Z8Ôfó#[áaÀ0tL2Ã:L7ð#ì¬â6
¼#h~½8ÀA[å~nÂ
eîO¨EV
-~ºÕ/NÇÓáèWöźnÊ?ô[=ÛìéÄ<ë²ou=Ey³_änK7õyéÜ£ÝîÌáfÆ:úþdq)ã
-,>Ø[èNEo4ºj?æªéR*?i`¹$)Ùæ%ê<ùQÃ\ã}#£7ÀF{¤5
-×ÂpÆ&pXÎTÚBKU®ÛQ8ÑÑÙH>à\ù×k).Ó
H:B"Öj&§;°[X1DþÀ6Ñ~k
ÜY²
-oî=]áe8$J]àÒçÕaO-v}˸få%xö¬CÆk{Ç®¶n
BéS/á2qB²ûgà\8wï®cCt¶ÄEÓâǰÝ_iì¸ÇÅû_NëK4¶eÀ/{çI·!kàäYû4]KRÐ%>*¹æ6/º½iÊÔ\¹~J.vZÝj-+â\Ùsõ§z9\93Eó
-á]ÕC y øk2ðW̬òÀÚ#ÓÑ RÏxÝÞ\{dq¦¤OûXÿð~òsåIÎôÎÝæáw]»Á Ö?ͨWúk«¨h°ÅB#!
-ùs/B®ÿMxÎMÖ¯F4q;]oi¿¯ãN¼zèÒ«¹f´Øvµ²`äÞBÂ
-UµÔ»÷èx-Ys*ÀåÝþÕ¬"ݸxÓôS´JÅà'f}{qÇ_©bó~"üw 'â¹@b1H>PdzOg°üÚ¯¸¯ÉÅ)ÚOë{k
-ñV9£ÜCW+ó`óaóÃCµßÔ³±FîUx7}ó ´xR¶úåêñ´~:µ%Ñ
-ñhï?ÏîÖFåý5¥(óßVåÝVôsMÒeÌØn)#ꩤùñJ>ÀÒw æ»ïãÅïUç¿6o UÕ&<L¥7DÑÌcáøLy÷赩õÎõ«ý:²*=Nj]'@Ý^¶é>X±\{X¿ëv9gL\§<ï(`ìä¡¿/"e÷å T¬·}óâoIH©
-AVèpe¾¡8+4¹ºwyLF_Ï*ÈÍC[ôôQC§·§rO««ucH5ö6«íQëHÖÀó/×ûn£!üá_.Ó±ö7Vm¤q?¥ß[{aFññµc¡V¹ÚÑ磡'
ë,.íÚNT ϱ¾´Ì[k30è³;ï£Vµ ÅB(3ìÇxØdm¦{ôø^þl}¥½õáVI§\ìkÀR;ýEU¹3D¶'càe.ô¥ôtÊð÷'·Ïâe*-¤½ôZâóÌÿÎfHRÀî?y»;æ¬'¾ÿ:gS)ôÁvRËeqvl
-ÖÐbE¢c QÑ
-
G×}eÛèW3Õi°õ°ícwrBx
-e0«8&ÐylôÐèÕÿzó¨¾÷%àèåöÁe8?Ç}ÎTóD¢l]sd¿ÅlÈ£ÌI@]¨ó/;xfÔSÇdãs ¬NÍù *jAô
-ÔMï'ö^Ëäd§{1
-búòg
-Ã*1ôó×&]RPlúëþsÐ$Sâû¿vêά(äæÅñßsoGQæõ¾¹îtx
-`ªèZ ãÒçO1¨3O¦d"¸¾ïÒW,gñØô6Ï*J|&nü0;ÞÐWÞ´}̶ZnãmFíýØ®ÕðÑjC\oRÂÃD$ê£Ô:ͦÃÛüµK]ßô?þa1òY*Þßë°WÂíÎP:¿Ä¿0~,î49¦Ó»ð>möøüÿs6(ØtädnVÓ½2ÊÔÖC^ù®?³}µâ´FbTOg~½9æ¯æ Q3²PòU?µ¸þ
-M¯sÃ|KÒ¸»¹ûÚF}Væþ
ÒEã'/K.±¾(aÄ«óÂ{3ur%¥¶r°ìºÑEËK%Û³Üã2øF#cÛþð÷j` 3/
ÊVYÔµÎ
-ÆKìùnÝÓARÐUûå¦Ã¥8d")]¿¯
-sð y°î殹wïÔÝ2 ¹²¼fóà¨MHß|}h¸0[·Û ©ÂLrÍ?{§+©+)Y-?Æé»¢:é"Þ@ã7JJUZçÏ^£Q1²Q'
-'Ôb´I®=Æh]3E}
+N¿bMC..ña´ÅõâÒnç5
D+þBWøÁ8×u6ÁÍz4g?õEönÄqÂXpV7Èn&am·
+³~ c¬@-§>3fQÎØñvïÊÝTè ±P[ÅCièÎj$ê
+³ø«ÉpãWí»cn<L§g
+1cÒÏò£½¯)Ö<2ÑÀ½±
+z^BÜê?bû7-¦®xÆ{ÝûàÙ¾6Sµ\No?a7ò'õP)ý¿TlÐ8*J*H'¸A8¹Ì3Ω¼ÃFHÓã74±æ¨ÂXËü¢ö¥mÁN «?ñj=¥0ôD¯¡9ºÑÖ&Úc$LØ«&>«²m¦1@Ü")²»ÍÞïù·&&ÖMD¼,oÔ{Rß`,C"i+ý¤à²ÏÜÖ%=\<PíýlE¾pU0(fׯµ@¦ÞÆÚÐâ[JjoRk8²:Ñèࣹ">èï*2ê9;L®î½ó.øÁ
+)øÚM}0YhåT°µC$½wº¤í<mëvE«¯w
+ª¶Ù]êmÕ¯
+Â+7my/
+G³I)+½[ÆQÈö°#íIåéißÓÈè8kæ×{¢ã fxÐüÃéÍIuPÖ°àI2Ý#u^ò MÏ
+-å°YmÁTwÌ7h+~1(6?ÕÙÓï¿O6È·?<ua£Ù?Ãn.«{«gþº£[ü©64HEËØT¯ÂÁþxX±oBC:à?£ÒÍϹbg;q<cÓvl#vCx
+û>--úàoT9;Ù702stz?ÕjX¦ÊÌyÂþ=Íxø<µgÝH¨©Í|[eúè.ÛçeÑÅfê¸Ê6ýÃ!2êè¿ÜEÃ*å
+4f×Ðãïбü¯Í£·QÓ®
+¦¿½þÜa¢íú¢VÅD=¥-°(X<¦°i»|DòZ¹N\*;hW[±W
ÙI ó"¾V4tþ£Dæ?)7Ìë4ó
+4þJ§9²ãÚ^¯wÛ;ÎÉÑ;4ÑÜMûJ/ÊT&Þ:x²åuO
+'÷5ÜKú{ã*üé_¿ÈÝhìÜxþ~˯¾öCÐÕ¶6È$ë|/`e#¤&ì G=ÉPüï»JÂ¥9£Ð>t^Y]öK²Ûvnd¸dGQß1BûO¶Á£IiéíÊ-Z[£kKÝÄ~] ?}Ò¯;»Ú¦08àhõwibE
+µ_Ë×8Î@ò~R¨zLëjÓ÷\~Y}£dÚjzzÿÇ-Í\
+
+RØîûùÖt u¼U¸#Øh£ËhZ¤µW«ëfkÜÚ_ôd³
c]n´ôTm"¾©ÈiüØyz±âgugoíëЪ¥þ³ÏV+Ƴĩ½rÆvå-¬^õ¯RðÐX_¢ZEôxÓUà<зõG f {Ì 2È:æï'.ªö%Qªmù¿xj0v(ìz¸KqîÍÞ[æq`hG¨XbJøA'"xÓAïê±óyÇË¢¦1(ûk£Rt¢èÒÂïdmx/¸ËÍA*ä
+æîÕürÎ}ýr硺Ù}ûKwGqx
+tÞ]*ùsu¨8#|A¨7óÐ`im²Gm½2Ëp_/;Ú³Äitàì_Èto4ÐñÏjmsmÚkbvpy2ºÌM
½^Fx&Ѧúô¤oÝÔTP
+Q.u#*qÞ
+çÃÒ¼{7©ÖÒØÅç:°ô)Åt|×åTÝè#
+N&jßaÄ´KO1ºrôåÏDp±<ûLFé,É@ÅcÖ:ê`ÌøÑÙ úÈé«çÚP.ml6¢Ù!|¯øAMÀ{ïgw:àÛ{ñÃþ4¢g
ípÓº¿P¾5+>hàaxòÙ²áb6¹Ü3Mè»=ÓU¼2·¡4å(V9w=ÙsS¶õZÂó1v±çÀýºâ²W'+Ve* Ì*è}mË[
ãUø/\bñw4âEµµø«<cçU¯Ã9QypqA½`.vc®¹VìVFgK¦y6ÃG×êC`±º\9ª-ÛYÎì@æo?{ÃÆ¤¬ð<ä«HIÀÒ/
ooåÎËb9»²ÿÛàô3cßû÷2P÷~/`¬nF//µ:TØéÎR3E&"L¿ivªe¯T'Í<Þm¶(Üòâ¿býùbèÐ9Çð]Û_]ï{òþ+ÑÛ%Þ'gÓÞr¿û3¢j<Õj5ç9+Öñ6º@pj½CyëÂQ
+ùß^@?&5õ{ÍX+?mÞg~~Ûôo5XgpA®66Ǫþÿäçq<úaº³I[{
+²0¶õغ >4±yiÉì2jù¯<ÒÊ«õS½âÄý|¥ lÞêJi¢øM6²Ü²%Fr|»¸î:âóåk¼ËʳÄçBã½k·Á¯´+g;ØËàø§kôûÖõ8>Á¤¸°m>UÇBþf¬ì°Y67ö¤¿ßT+ÆÚøoËàÈdåÂò¯uçÆWe(Nxx],þ}
zë6no{
+2îR9cJXfZiùBkaó t׺Oç%áäóùÎþ¢O0ùÓÖ.þýtl®Z!O¦F³}é=ê¨Ü½ò8èÏJ~áho[_ð©±C?3¾Ì²õQõ*©sqÍKëe¤3i·xÌ<ÃQÊ»OIEß-ÓìPJàúñ{±JªGT¡uZ¾3`d[h
+5íSu1«-ëӹܽôâv
+ºÛØ\KÄ>í·dÒ7 gÔ^ÀPüvþ\Xø²çUR_ bÅ:ÅkCy´»LµCfÌ
ù`÷h×ÔÎ0ÙÒVY°_§K¤È6/¼M¶´4ô8ÿå{BùNXwx¸ZKa°aü×#âÛ·U$Þí$P
+Ógrs 4:ø,àÓÃFçb'JÁ@ÿB¬?Úî+ÅF÷©UÈOª-:í
+,»M·Öð4ÀCÄLþOx)¨Üûµj4FÏó¥)¢¤(;æ<7~^ìzv*ͳ`h©æÝ[¦7õå0ÑÓ÷?áiæì*%XzqWÊÍÊ/CÚ'848mÁ£Ýg,ãç¹%ñã ÜibFÌy¼?Ö%h\öV$Ôë:onSÐAºâPKäÏáÁzÒÄÓ9¿@âЬÕ˾Á¯Z&vjsAöÑ[óNÑ,ÌL×üZÊÊáLÑt¢[%ukÜ¥}ÛQÖcxÒöpîØ¨þKï;½l%Ià5J{ëû¨JÁßÌÊ]WÍ%ìB,M©¼£Ï{ANA
+"\ñ+^½{eø2Ðͳ§áÌ#ìì¯WÙºØúH¾GûÌg~%>?ß2&ñ7Ñ®sA^nqÈJp´>£©[®
+BYZÙ0UÞÔFó~׸0 Óû}åϦ¤ùÀ¢aC@ËR²R8Á!
+ ì¡¢Itg K%Ul:´Óm¤úºÏúè# ]sg-aÀËEö¬ý-GsñØv
+çÑãùQÒͺpgë½ÁP'¿ü?rüLähÆWxbíÝ_VD/)$ÑfÚúOe¿X·ñÉ/ÄTªM&¢"øóé$5÷cèrRôTMk=
w¬¥ò°ù9ÛaX¿æC(_Ü©(Þ]Àøù+û¾M¥¼Å°Hý uOZò7nøÂöà8\´&(ùP©kÁØÚØWqìÐÆbz;±Î"4ès;ùÿÊâòÊwôø-Òw>"Èz)tRºÆj°÷¦/@I¥l¤$ýL¼òãMLcLRbÆd¡PÖÖKìçG"¬'ûÇê\¸Sfx$çü¶¡É ®IÓDu֨زqQ/ð5²FĪ>%¬Ö@a9}ãÅeé_6T¯Î@ÂX
+¡Øì¢nYÁ}P³u¡ý»÷ËãÎ[ݧ±êé®îpżÔF´ýËȨb×öÁñ´½[9´±Ob=Ôö¹:2À,©B6£Ñhe(;¿$Í0ÓcsçܵòüCq Sº<Ô¨ÙªÎ81°>?sÌ?Üý_k=¿Ð¡8O2Á|9ÛÀ9çhóÚÊ(it¹4ߢÎÍò`}bSÞÚpèG(¤¹jº¬ HÀ À·~`cZNzìq2¯mðÙGÿæõ+AÔT§O¾]úM¬i¶#Bnnç5_Ò-ñ«7S÷³+½-~orCÞÖBJ©¬îÒe++Þ´&Ã]KÅ£×äG at u <¸D¨ösq~]óFú
+WîA´Y{þéH2Tå,åÙ«®;¨^»e}}»
+«MÏÛ´ÉS«ºòV]DEI`Ð_twìÚaÅ6 «¯À@½¥º±&΢»ùQ[£ Ó¬ýåUö=æ¨è¹éKajya6N"Ã#gVhxf´Ã'.P¿¡Jä ¯ñþB]1èXú$ê@@µK'
+Dccøâ|jfºíxYtßôo2?Rº__*Ú|°bS-/FeH}4µ6 SEêRfiD ;ñ¥ËS¾¥t=Öð·mÂõº}ýÖ¬×Ò}KaW®Pß¡úËÐzáZf±0ï}µæø'ã(B]T¸WʱûI ÖN¢6ýn¶"É%üDx¾cDèÄDX÷EIÀp<¹Ü|¸eFp{80wd3z,æ¶ýà nfÐÎêÞOãç¿©QµÛJn.ySî(ðÄÇAy}GlÜÈÌÞ½<1QU[ÇÆ_]¶ð<0Y
§j&ÍU>YÑdM¯e,MtÆ!Üv$Ðh\º¢PS"AìZ®à¡ôã.#)m¥ÖV'Ud«ÝèÞTR®dBþp%w3g~'{Ú$mÔ;/m5Pk~]q"3£¸:PóØnÙ¥h¦BîÞë6¼QgøëY» Z_peQÀ§ûå5=ÖÜXY٠Ű
+¼÷¢lãÚc;pô¼Û×Ï#Ir7þ
+<¢ØÏÙó©rõ|*
+ýëõÚûV±Â¶3¸¶A1e±õ?L/^yí¢èò]/!ÚÃ? u!BYÎ(üS§Jb`«îØÈ6qcÊÓÇ(ZÁvYÁÌ@£2±c¯ëãôµÚ\¿
ÎöF\²K%û¾µ§ð6{\3<`©;4¿§ 1(¹t|¼î\D.æÓëßd'5x»
¢äÎç ø5¯V|,¥Ã(®áÛÖÛR
y¼çl3]
+þj
+Mú
+àÑ+¿÷L5ä'xͱ;'6®Æ<Í¡Ov&ëªÆãH(ê}´_BoÝ8$írýVsqDÅÖEV·ISMÔ \r k;Î0TÂãìÃØ|Ë&è8<¤t¬nW¼k37$)&;²_)7ío;N¹h¥i.Llúâ觬չÜSEäÅê#¹?ÿ;9$ÁÓ\ð4]IÈÔK»Xâ3Ó§ÿÁ.lÈöN<,ënq
Ôdêè:nÅSõ-¬:pð^é
+¡¡}n·ä°2*Ìßj¢Cºã-xóv$÷ cP£:ÏÂÐü°É¹4PAÀeî²½I¼0ô!&Á¹."nL
+ Úû`+*8?nèÆ¿p6îæH¢zS`ÑøQ Ùº`·d"ÃÖLÓ#Ã˶¦Æ},||ì0%q mM,à( dM°x@ð`ÿwäGÞ._+N¼þ®¬Uÿµÿ¬ô3÷Eü¥a4VÆ5/^ÔB
+,ÔO+ Ø
p$_*I ¬à3~ñ3E%V°`×9,Ïô*ÑymúÉc9ê/$:"×Y ¶!@K>ÇyIILü»B飱c&ø1Ïápí{NÒáBºÖ¸ÀD©þÃÖnº*òdâ¹Ø'r¾jZ'ÀßÌs[<ØuX0ÇQù3}ìra*Ý)XU@ 5õ¶Ì¼{wuZj×åU} ví<]úG-ÞмÜJù[Nf_
àÐ"ÊÕ º)5þ·¶ÍÈFúVÅáòÁ>««ÍæVáÕµ÷ÑÞ¼Kâ+S+®±½æÐwì+Ë·
+-)dÀ¬8{ÛM¡ÓÞ}º±00KZÚÉ«J&]å®7i %W¶mß=QîZðMíÀ[´kè}ôMîP
°°ÏhÿÔñ#Vbi¼
5Ï
+ÀIBSY°çÚ
+
+láuÉ´F¢Wø
+o3£¹Ô>ÅubÐb
+X5ä4§PøíÕ::Î
+H[ªÉ̹!3bR4öîl
Ò»Ûri_5fÿ4è%(îG}©öß×¾âÖôbeÒ×KY©guX?÷6)½¢´
+â
Íþ,X§O°f¡RQ+[m¡ìư(îñ!¹}jRR_^|zqdÖ²HgVJ#_ "#àï÷s.ÍO;,F1@Ö+¦Ý}çô¦-ã2ïñj8ýzC7«v ¹ûÆBPMï÷B®éHÀà%þð°xâFÕbQ²§³³z]í"yüõ4ÏdãºÐºS
+Mä>3¥K8ÿ×2¢¨ÍSíÚ`d³(¯?!.cò*¿¼ÛñbâßXêÒ½×ÊFn_eéî»qï1 n!Uwo¼ÂêÊèc $ùrl¼|d®$>?¶åA\¦WcÕáÐÊÄÝ5ÉC/7Èó§pÂÍñzìte)+Çiòè©Jç߸ø¨=Ô°k@Ê©Ld"¤¦ÈkIyµêà³~D4
+¯i}±
+ú` âÓK¬±^T_ƽ¥ðKiç5äkÖQãâ W\ü[nÛ>qNÀ»åÚò¨ÙSh¢G¢.^Èuiv¾ç@øá¬Z1R >¨C§¬òãJíP¡]·GýN¨wä¹#¸jÐ*eÜòqbSýµÿÇ$4K2W3·Ù%éÈ¿û-òTã¡p°²eb
+3+;ÀwI$¾»U¨Ì4~N2hj;+4È&m
+Ï-Ð.ÄXÃþ«k-ÏkÞ@¿ ±q^Ëz~w-ëå&ËYö?ÝùÉÖgnÁº2VçJn´wéå¸Yì°ôÑ
+ƶ°*0IÂ%Û
]ØÊ8 ´øýeCf©Öor6CE
+h«ÑX
+ÂQëy;©¤èKy$¶ë#
+íßUò¥O
+Ø+úóFÝmiïNDüú®8}CU+\ÍËr2# G9÷\91ñßÔ2ß\Ðå÷ë¸Hþþ"ö}o 3Ìs®Ó+8s>©Æw°Ì«1
+DÁ¬DBYUB^pÔöfü+K¡2·½Ý¹ÈagZÖ7Õ¹1õZ3àcµEw`§¢)8[EÀ\Ó`Úááó÷#&Ê#7UyC¹nQHì2l*ÀZ½áyÄÐz¹þ¾3a
KTïÝr®!¢JXóÇÓ`,T´É³*oGÜÁðwÕ
é¤ÚkåbPâXÜÚ-ØvÃ2ürÏV¢\忥Ò(5ãXÉ!×ñdüÂ4BÇUa÷³¾ëD¬0?*ó5ýѤr4q1[×
+
+³ÆÇ©êGu±Q¢ }4p¸íºêÐ5
+hG^þA"%0ÏçÀ*5°¼jÐHã
+ÔÎ\eÔ¾
+*óÏ%)eJÉ®sÀèÔw3¸nh»ßMQºEêc A¤[uÛjaBCÍ~½
+¿rq]"ò1
_$Z
ApQÐs aY+Ên©&+4|ÙÒxV.
8n6ýbÏE]ÚdþuvÜEWë<·ÔàÞ5j4Èû¢ðÁBItÉkk#âp|/úØP¾;:ü#<Ð?»?*}¢hmÜrzJgN ÖZF²ûÕ£8Aä"o¡[ï¬ÓUÉw÷Å4ÑæhzB`;¤û'ò¯Ü³`/TGP¡ï¾aCàPM´H}¿WÀ0Pñ3ÿ'Øaê`7§omê'¤ RðÍÇ2¢`W1ãsOØ0n¼?Q]¸äúùØÚä°§¼ef©r\ÎöEMD9`ehL* O_+·?Ï_tiÑâS9úúë}vA
+`c%¾ÌmÐÇ%Ïãò¼,µ/Èå&ïFÂÒ¦`Xè6¾ÌêV^Nü§µ°}Ç,×òEÒÚ£=~
+³s¦g CæE /»ªÅª¤²3;4ÝñQ0/Îõº±G¤ÖfÚKÊFm< O!¨G¢bÔ±£DÈM
+Sé6HdEåFYTÖÄõÅYK¶VCô
²1l»òcÍ@bRz
+ªs¯óZxTº}·º/>Ê.¹>uzÐ%òMƶ½@-¨Âé¢9\Ñ÷EK²åi:óÈKí5ü-ÿ=áþ̲ãD
+V6úÜ`yVëe/£Ü2:·ÒklÞYÿk?"×ÇWî$!¥ñåP$ëuÛ8÷íÍÑ
+¾ØNÇ'ZÁѰɥû.KRì@nD@;Tb@>óË~rx¬ð(ÉVyaçfÁ|"1ÊõJRdÕ6nNJnÍ!ïjê[XJ©È+Ùa¾O§·µa´zù©cØ5ÇóoKH¸6oÜüŵC´ÌBxg륣öWÄNº1ú#û5!]`y@R*È' AÖà}D¸RÃ:2è8¢Ðs+E]õ®æïÈþ÷õÃ
+~sF=uðµ*V§á·h ;lè~8}4lNTùÇD»z9hú'®Lfº¤Æ¡
+*£Lÿ+=;Õ>«×ÃY°FïeÝD5Cn§YÍÍw%ëóéxlâê<nùÌü¸b
+M3<½{ù½eo¿&¸*ÆÓ#çG
+ËÙ2¤RÔ)Y]p[{\P¦ðJè*¶¹CdJIºé¿£¦°ç x]ÄÚݧòåÙj
+xï-
+©Ü4xmËïÓ5ßA@ÉAÁi·¿:ï-$aÄR¢%UdZl¶i8U
n;&'²Jêײ
~³vÙº~^óK[.,-÷H_ :4ùB*dBÖ¯1£zv-\çèqIHÂüµ'q%¾!sU¬®j¢ÎÍGfìuÈXªÍyI;ÏÒTöGiäO±f©åÝf¶¹ð]íݲîÿð|^ó<ÞJBÎÓçE~3ü /Ç=HI-Gévjg: L|úÁzÒ#ã²sóAºS®Pä^Ú«Ûé`Ex%ûÖ³¨H(cäcÇI@väÙ{wtÌ..ȯl=¯\Ó
+ä×8ügÓåð<\µ¢©°ßLfY׫µßTijC2gû_ddU-úcª/¦ëE/ß©9L¬ÃÏo!*:ô0Ã_ïD&UB§wæÍ3-÷öÆóq5ÇØÖðÜ¡ËwEQ/6±X
+ ÕùKðãëg¶µ½¡çÚt-õÊiÝNbÖ)>)S§£æâ-öy¸RQåÙ·ë²RûÐ3Í?ø¼¤ËJwôªÉ#»
+øHü
+U+_éY&÷-¬ñtí_ÆNø$¯4#Ð
+&°-çqùI`ð½£ÍÜn× A½ö"ì4Ù%ñ#Éüo÷æÏYå Ðûµòëð2Ý1´°0¬
+óeÌÎó%Ò3g
y¡=£Äa"z CKì9?òÏN
ù$ú@ÃÌ:àû<êËÒvä¯:a_A*Ô©4Q>üòÂ\óQ©vNxÍëÙ(Úó_~Ë?(ÜÅ´èöf.éçÔÛºÖcÄ/ߨOöf çîo3+¢Óg`¬ëåñOü½Z¼ æ¬@½(±®q0ÐÕç?ÒÃxà:£¹ª®Ê£¤ çLGS¼¾B/;hÀÆf"EåMÅv±¼ÅxpNICjëéKÀ=«øYaZÒksØ@LãË+#8æîK«a)Ãô,;
+¹(
+±!:lði(G°È£Ü¦
vákh²Pxa~õ\ßÄñÎïwQs~¦l¡ög47ÔöLòø¬å|)$ýÐÅd
+/´|}ÉÙoPgäÁ)±Õê¢Í9²sÃ$Q¢ë}ï~¸RíÚ÷
+ê%ÄìQÂ[¾(«Å9[¨ªú)r?PÕ¥p`ç
Îèúày-¾Ñoþß4¥æÚÖñsü[ÌÔx@çúóíböæDç¯Ku1¿Ï6§Ní¥dd¼8l©!"üÌ-
+ 7ÊWNºåD¨pNÕaÆ>HÓú®eS{?Þ0"ÿÕ7O H~éÈÜÿ m~r´]'Á
+ý$¿¸Däa*&F;8±
+>±K/î°ìû
<+ÒvñÕë@õóé@§ÙÖÎJe6C*¿ÓÇÆ(E;÷Ñ^ÍÌ`±ýî3~¢È¡zw«´àëp<#_[ù±múIbYl(éW,B*éÎß<>ØF\q©|AL°5íA=àO,Q>²Áo6Ô {ÚÐY*~ÛÉk¢cA)©¾Hz´{WA#{· û
+zC÷uæç)%o+QZªxF5Ãq1ôÍyE
+_®;ô+N6Ê=<æõÉ6fÝËw,~S¯1R[ åÏs½À|U`ÍËJ@
+Æí[2·¢î¥J<ÉtJ*üÌÐv$GwÁÀm,¯n¾ÄKÈâèÆ7Ïó<!éló##üå°ª8»Ðû'¬ÀØk^\ã}ÅôP5È$X¶Lîâ*¤=>DlñùCt¯`Ü ÂßafÕwÉ;^ýÞ×üÚ¸«L0êù1:¡æk
+;bÇððxq_Ps6=¹£ã¼p»8z3u[8Ð(üÒTµ<Ã/Êø¾£Ä¾¤å×ï/_êï´á$à
õ°^\½W{ëé([jªdLÆ<
+F
+hê;úÁûî×q¬ÉçmìÖ}Ô)
+»Ý¯{¾ÚÌÁDëIëþþä,¤4Ñ¡6Ð($ÂYìÝv?D¦géú).óó,@{Û
Ælã÷Oák¸=³8m×fî"éünËZ¤ }ÇÅ]þó6úu\Àû±±KaZfÓ|U1IaÅò¼s_ÕjO¤GÛû6Äuø-o¤
+Pñu[oðI
+«µÔüTSeùÓÐ.yëëñîð>ý$*\ÿñìa¹Ä"²gçv^¤½'
+~ºõô"¼
+s
+Õê°Bw½1RÆ%0bN j±JQ5A®òÍ#¡!éãïê±§4øa5ÿr&ØWHt»ÏíÐxeÇk¸a`£óýåÌ·¥Õ ûjo£Ç*A5+F!ÓKKFNo
+;H$ØÊÚÂa3ðeìRϹN=ôD(/¾ÁîPëýÛõmç":ûRÄ;ázEp*ÝÌwÚ÷NÃW~ªK(¸2ÿàÌe+? A¾&Ò°¯©iÒOiê¢ù±!§ñ±x?-ú¨ægÒr.ýÜÔÎÖ¯òüæÁÔoCeÛîýÄ©YYå¢ñ]mä> Ç
+Û
+×_ÒxæÝ`Í0%P1û~'ú5Ø%å2Nôèi.©ÒL³tÚ@MzZU¤
OLòï¹½"H¬¢V·j»(°8ù%@Þ»^âGd1½*çø3$aÌ=â«£®]¶,Dz¾Ópý72=Ä«îW¯Ay
+vGkV¸S»QQ°XkN0#<é!*Hµw{Î3¤öÊßRYw|ãõ~*¦C'p¤±ôï!ÞÁúüÍb¥^sgîÓO>Ä}ço0ú'{ÒÍ·Rq&-S«RÁM¦¾r¾ªoÖÜl_r½B®"¸uKAS±Wê_ë )²
nº¶y×X§«âÛvE!!³¡ÚI5ùÕ¤²î°dT %|°íʽ³qNV¹²üÏJLÿrÊFt.¤p«\MìH°zGz@[ôvMÁ´í!@qU®i*SòbPALµ<?åqÝÖ
+PÃi¢¤M²G'øOòG¤7ð·èh. !ßèzÁzðÄ0x'\SÛ¹/\
+µv=ÔÄ&ýÀÒæ>ïÄ\óßEù-yÉQÛ´üÀ^±äìöÁ"ñkllfuZ&½°íkkUER£·#°ïiCáâ
+F»õÍ2¤;¼7Ú
+½
·¦ã÷Ë©½(Áê¦un&ê¿5¾ÅÆû½¶Á
+ø²`Ħ §°E9Vc&s«§Jøò,7´º¢Å/±Ú]G*ß2rYò_½d̤E
¨c½0©v¤öë·ÈhnÙFÂ(²!¾4TIÿò3WEøxâ
#º\&òz¦
+!*Ì´j× ÒÇ9.T¿ùGAôÌ|©DÖMÿù=û(@aa\Ø:AÜ=Êß·/²J§~íñýÐshÿ0J4
+È%²`IÜ®uÃu
+
+¬ÿ@)!´Èi]¸èz(®®Ë¬èÛ¹k>g
+>·Äà<[~
+`tNâ=kôº[âêú aÊÆDÂl\alÒéwÊTÇÛüB|¨
+ÈnÇ:-Ù>B¯Á@96iÀ5q Ü÷a§®Â©´éèÆ½½gÉpªw'à_tiÙÂî%<þßèãWyL*âü¦»ßyð³2Çí¿hÄñ9rúyÈHöaA$<å`õá%ÙéíÛÔAé^Å,ø,Ê>ëøt*ñ½ò=R&Õ L
+kd-yÎöá³Å~îyê@åç5¾V[sºñhµ°½Õ×=EÖ©ïÅÏY0Ap
+·õÎ¥!V è
~U6xçìô'ØÞFUÇ´z÷¯rTD|3p×n_±\è(Pt¹é^ÕÏ_Yá%¦ù]#B«/
+Ñï7Êóhsq+×¶f§K¥1úºöpcPáÈe4»ÝÒwÜ(ý àdN#Îc~ù8ä¼x@)ô*
+ÿÿý%!2?~C·ÏQ«@±à%¦¸kÕö'¾ÄEUGÉCâ¡êïÍÓì¸ÌAÙĪ[ª7ñ£ 6ëÁ1Ê}ðwmG|9^ÕbÕ#ø·ÝH&EÆ;Lp°@æ>æÏÑËWø§Ó|mç>è/úàBd%(ÙE±XYÛl¨KF¢ ÝíÎ7^®±høÚ/Ì áQ"p¢~[R³ã¯MÕñÍ|ì3>/-8yþ \pÑÓ3kÒÐ@q¹;XÙð$'Zþ`úÇò%DÖׯ./Ù¦HùòõlÓëH+rø}ÇóS£3WØtý½¥Lp±dìË6
+þKðh_4q°¢ÍüIÏè^ÅÃÏBm&nÒ¬N2q2Þ#»ÁdønïùÁ·âk³â:ߺvÝÈÏÒü ´ £ýÜûl±Q±¹¿Â/¬yÓðo%Èg¸%C9(0å»gßÛ_w"eÐÃ
m]úh·®+¾zØ6ÂÿKCÉXǺTIþB×¾ö2õPº%¸Ñ½ö²
arºÐ§³m'Dí@Wþeò³é(³
[ãÔq·¤ ó¾û172ij¯!åNø;½íG^ä_SÇq5ê4l'ãÝN¬yC;R½à
+yºígxÕîÞЪ!û
òr¯ª¼[K®`¦ÉRì0@}é¡&ìÁØs®N:*Ù¶R¥³r5i"G¶¨kî|a·ör×|tzð#ç@±Tµ
+bp&åþ^N߸ÈoµFï_Úqèfßµéª
òønJ$¤Ô#l¿yp´âú ^1¯Î< ¼í¡7u3·íYùÓî0ýõ¤ÛÉkÓlðºÓ-BÒ:|çp¢#Íð9U1{Ó÷U7.¬#Ó«¢T$Ýð'P[p
+HñD\µA+·ÐYù±*O7ÊA> TÖ¥½È|¹´ØpÏÞ>N·ðÑQÎU|d,²AfÂÒ=øjÇóLuÔeÄHýo¤í=½ÙGˤºSpôñ?erÂ`cáµH¢°^¼um@ÒÊ
+0í±îK#HW \;öäØãJÄ
Ø8)æ9=£5²üïKÚTÝ#ꦾ+±Z:"`g9q
+ílþ×/íc Ðì+¶DyÓÿÏcþæ4&¨û]µ
_¨8 ±§mPÚ¥>⦬e³ä;k_c}Mé¿Eçw±ÓSBlUÑþ³Mü§ê^VðÏ
+£Ç}srÏÑ$)vâÓLP+ÐÐ]¥<R1xóGÂE8ÂTÉãÏÍ{9è®Ðò®%r+ô]ü/LnUòR[Þ&;>-¤nt/èºÕ¶Iö°«gô*Ù«W1[r+`Ípgñ\jM¶iBÙÍPèûØ9¦¥>÷
Áú::ÖÆhúVYÛu0´ü0cÏQÙÑïò||ضî¿4à»á
+wþ 2×RÉ 9x"ÇI¹Ùø~Æ
+Hz¨@{¿ñÐÒQô¬òÖºò®Ä-k6Z
+¯O;§ê÷
+¦â×ÍN{ÿÞ±/Q¤AôhÑ"¨
+òwD 0ÐÄ.Àp·¬-
+uO(t~ÈIÞ>+
+׿Ñ<%¢,
+MȹFÃù>ëéaqXÆSO¹}´U
+ÐæñÆó×My³È¡ëaùÍ·n&e9©+ðÛt§jè
+ùþ½»y$'MkOKRú@Nú¢=Lc£Ä¬-vxmÂúݺ
+íõå8bÆïóï=Ó:)#'X\UílÔ¸®6vnýyQîIc-ë
ô
+L²ûu&_ »[4Ú×)TïìÎzðÄ0x'\S ¬ÝÑ67a¾39
aGDIúÖÊpÚd|¢>/àÁèB;9¡È=DíþZFgaÉìkU5²DRç6ÜÏM{Åûá)HųêÍ+¢½R½.ÄÃú»ß&Ô(]I¾è5ÈmQavÚQÔYIÒS¥r®¹w$×£xG¿À3eÛh¸ü3`º9îËKH8˼&ÀbHÝiî꨸ñIHôQxÐo >ÈtäÉ´J+E
+ëäɸµày_@' jçÌÀÈ?Û+©rga:
+®ÿOÈík ,µØ|ä£Î̽eAXåÑ~J:/UÆî×lÍÆy
«uý¹VÃ$.så3Ùî/%ðpc¸}vÃzêÍ.s1·³µâ¾Ò鶸h=.ÈÉ9·ì@Rr«ÿüã$Ùü×%Ó[ÆG<ÚúÇÇ$sN
+/r C©ÑïlH³ñ+°¸¡Âµì£~ì] W¬¼GR{[Ù÷tïd>HèÉy,o¬oÉÈ@IU_ô|´Z!ÔBG"²G?Û)
|Ý¢÷\\~Êë©XEbtÂÎ#0O¹ãå3X"vfµÈI/dä
+<@Ô62s6v9D·
¨I1ªð¹b0AvºÁé\O0ºýÅ,ûócÇÓexóó hÓÔÞjJ0E³z@':ynÒ°Qó½Y3,
+é ý³5¥ùæ½éb0hWÕië?AÉWÈ;ñßü'B¤ Ðî¿Dùª?µiÆ£å ¢7SÅÏó+Ù×
+Z/iÓ
+}B3øð¬HÄæÛÞù³Þ¼:Õ±ì[Ô¯:t`¤dD:þßó4ǰ'Û6ºÿ "|mÄtiJ©
+æ{äýº"¹
+ß2½Ôò<=I§XäWU¶E¥ñÃx
+iÂûÎÖÎJ6¤¥R@ÕKæ
+4²}Ù;/iÏýp]yêuJÎ:, rFÿV¯b³Hxe?GYß"½à¤àÅcÁ°{¯os´7.a۾̹Þÿ+S\ûÂiºûÁ§£ã!U¬nç}àSl5tæ.#h:oâq9×)ÙU
£Ë7Bï{ú#6jüÐÚ
+ ób
+úçK1J2\N¤gºl©üh(kÌQâ´0ýÐ?÷¨aX³ ÃBNª"|¼oïo3<FôѤTMç£O0øËFm¦|òþ<_Å@â±ÒòÁ£VÃË%Ú<õï¬öºÛ=Ç´ZÂÐmxbjgá Ürï@qË3;¸ByèC
O}LÔE»£M è¶+,Ïa$ Ò4ÆÕÓ®º\Ôk{%%ÁIºÛ>¢s'a"îìܽoKl¯½Ù )zÈÃàs>=£±j.þOÏñÔ¥§'>Þ9ß+mõÎFÀ¢)
QRÅÛ
êÜ7¾¤zè·C
+£qn"9Uäòvé4Þq¹&@Íñ'©ßYÙòÇ£Z! ¥µVÜj8ÌÉj´oi¾[:'3©ë`§UnÅßS´eÑ|XÖ!¥»çVbfTÍâyG¯~ÚéÇü\ÌÇî=¤s
+
+8Î¥¦ê~ÝÁAL*6q >8¸FÈÄ=v Ï`
+B} ¸±ÞôV/{V¾aØßuc¹ØÎõPÖaÌõ¶îN¶"Ú`íÞOH»åÓ1äZÛ½Ò½¨SHÙ$ùyèt2À!ÞYdòº½!gå
+ôf=z^z±×ƽ¹þd\ëèn$Jè8Ê2Iw2ËyBSüßGÅHÇ]÷®;£ÿÒÚdXJW±¤(%ÚPÎ<îeí{*}α+P«¯Þà5ùGdYQ¼\¡e6o_a"»ø]êûK£ß¿í¾x°`¯¢
+ùÖlx25.Yµ¬ T=Þ^ZÒ`Tb
+24QÍæ±6 Þñur ²`L
Bn1ny¹j
+dN»å0Äh¾YLªÑøÑC^ñ<>?#9\¤uØLxéJÉRØhèQÞòV©36´u kгöÝÎsùóIrßÓbÀ1´xÒ'v M{¬Êb¥¢´u^ĶåwÔÅ^7¿ÇòÏw¶Å»R»y8]`«9¿ ªis²d6\¶PæhQ8xLÀöü^9¯ËQ#¯^_/Ëc~|îËå%¼ `Õ;ØKöpÊÈ"Saì>m=.±í'w.4Ùý[(fgaTfÕ¼úJµ«öü6ÀhCjͱÍwßÌFReÙ]Ò³n÷ÿÐ66ë(5Ȥ¸·¸(Í»=¿lWÙ
%pí,$PÒ¦_fÊw]Æ+=î½60Ù^9ÞiñqúÀçõù9Y#_Û!§(]Y¤ÂÇ`IQö·JåhËAÖ«;\îoâfÖ/Ôx:tÜlÛkJÝKcôé}åùýe/ö)b1zÃV?¬ÑܧbÜ7 at pU¨þ~!>B×ñî/v+sN~´ENøÍmÈ6¦~¾§Ý²Mr"¨¡\¯ì¡`6\ͤ\y,«wMÚu?ÏçÒÅ$éaöàãè^ÕAðn]CÏhþï9S}DUºWÆrøÿ £$¢â¯³Êqï.¾
+¬fµhrwh78èõGn)áêûá×Bôõ´<¤_nìÝå1ÂVé¸á»Òñ±aÄÚhHÝa4~:¿qù/tÎF=
Ùke3rãz~!Å6M>ÈÕ¢`ܪ(8¿0Ö½]ãêCûuÊXKq«@ w´IÚG2]jsß©hÀçIk
+¥"ãq ¼?%XÛ-<ü ÑAx=J y¡qeïÈAÕ4~nMXSãÌK9æÎq¾@x+ÙÌÚçÉ1Ô
+büJ3T w)ï°wã³]ös´|Úà×½½+]%kðFë#þ¤kãUEI3ÃÜ,¿{t(£©¿
iÞ)~åÞ¤xç~ôÉÌkS¿rìØnM²-ÃXÓ|ªU[nøË¶ãêøHB.ÑâÕÊöõW}ºéa³:9¶fÀnÈÞàpê^wä
+|Ö3V§ïoí/|9`ÉÃd ¶â+>oñ¼WKBjðÎnVÄ!U<¾Q3Xò Æ¢ô(¼´>75uìwF¢RwêBøÏ°0¥_Ûtq)>E^xEz©p
+åLð(0hf\Ürvï?Ø×kàú.q®Á 9kfÓòÛOvÔÐÜè¹r
rY´h-cJ}§þ±ªTQËB!/ñ@Æ
+I íiu˪a§ÑI-p$TîÞÉj@¸°üþ»RÈA HØ CíÞS8Ù«ØÏïð@pS:¤»xnè'üGÌôq¬gø¬§WD:Óæ/ådÒ©²¿ºI»
¡Î`_Ãë
¾¨Â4öíW÷ûËM)RVÜ1ìÙuôÏVÂÏ_P¦K\V`XÊñæv"þ5VòEå«Â·RõPîvdÊGÛKø
+E >êth¢"À9fÍD¥´,6ùë%4ÃBtï°*ÄôwÐ4l=®Qáöþ&\BÇwKßPIXa*´Gþ!4{»>Íý'¨ßªXýF¨î¤¡M¡ÝvÙXû¶/
+è¦Í®Ë<T'ùCùr^½§D-âà_¬ñ$úWCÛÍB½âýSÉBmytô³Lµ/&{fÿYq¦Çx¥ìïwûCÑhí)3ë1àº(Åè|jýV ×Ó}Iùq6_óÔøHéÆ}¥Ìºp3¢fíw {·(îwtM|:=1¦Ã
vup\qÒ1÷
®eS,ÅS3ß ²ú¼;§lM¹bÀ#§UÓù)[ÃVH¨m¡`B.Ì]ÂÊçÉØÿÌ¢ÈÕsÇ5P=ÔM®ÿÍÉËö1 ÚYp-¤~:¤_`PÌ®$
·Ðêàôüÿ¢
+Ü:°sCD¹×\ðÉîË%Ne÷¥ÆÑAnw#©´XOeóìT ª.kD¨®ÆsßeªmÎè¼Øoÿ>¢¤~'ììí
$08Æzò¦¿_ÓL± ~Ϥ¢2<Z|mYùòüíÐiyH2ÎN¶àyÌ©\¯óy.Â[úT¤s
+UÔS Dæ¡J^¶÷ÂçuNB
+ÑK¥0tw-*t xláxÅ:±2Õ5ýh{q±×G¡fÚk â
+pµa~?Õp`¡¤Ôú£È¥U?ºæ|ÖmDÅø¬ ¤²)e®*¿¥uKl¼·v ¢³@ÁõV
+IZ
+9añóî
+,?'ôkcõ/øÏî|3ÂiCé36FU\@?Ý>xã;O Û=ZÚÚJÝÐ%º@þvÄß$Ð(7zV¨<ô2¯ éÔuk~_HXO¶Í2v]2ôi75·úùNG¢·ÿä£Ì
+ÎgäÁÔp7³Îòo
Ú:Æk;J#GsïùæqûÈÝ{O>÷4ÜÏy½?f¡=,õhl-|(úÂy1ÌÁ¬½ó½C#'3dLÃß;¾¹ÍóÃ>¿m<!íeª)v¨#QзªùmvÉ@o°ÜËöÛýI|~FøgÌnø3âÛ¸Pô|ëÙʯµIóÞtt$Ü¥!¡p(wðìnÒUüÝÇ´ÊÂ7g¿¶ÝvÉ|ór5ß\ÇlÎ]sS >×KP;hä=Q<â
+'å\ìñlT»ü2ÒhEø"F+ÛgàÕmuëwsÍ
+Ï_hVô*X$]ÊÜ[©ÝæÙ´íÀ"yWÁW¦.EhçáÊÌäçzKvHæïÜtT+ªVJ&} [\GÿQÓ[ä´qÿì¢N÷a¡³
+ÒÇpX¥Â°_'ßXhÇèËÚp!w#áM=±»\(±Ýü¿¢Ug>䨴°L
+ö3û®Å]²Á^'~W@^Àxp_¢Üo§vE©Ä¯âú=¥á*l&± hÂN¢ÿÑR>ð¹rxôÒ;qÝ>çÝk æ±â4¼M^ 9²\Óè® Ïíõoç±¼6{
+)r¹F5 gÝHgT]åÝ:yðö;Ùq0F½ÇKÝÌPÏDÿ<zÅ>аÑþ¹¶5uNæPc0ya_Í ¼ñL@Ð*¯WF7zÊ?ý;ùw1é¢ |ZH\S K%nÈ¢Þ§2
+0r^oàÔ7zfHõà¤ùkç"åxñB&"ÊÒ8-ùjÖ%6Iòà]yú¤åv÷²>%¸vUHÄb^åÆn+Ë
+3þ(S¡USñϯ~\¬ÓÍÛ¸éñlào,cµJ÷ÄánynÛÙ]6G´¿Ïå°bõR´·±Hr~þÅù·VAXI?~Ö(>Ý1®#3Ù4uÃx²Dr5¾÷rr`
»ì¦åf*âKÒ¯JÊà£ebÁU%p÷GùÓKñfÁàíqí¤ìP8pæõ9 4R!8ëZÙµj,g®5ÚÉ çí¹£9±Ô%YJZx¯ÁÑ
ÕWA¡dÅÚòÛüÖF¬!
*
+ãs-è&ecô!+6!.lý%¬j0zù°Fж¨õâ÷øÉü¬á?(ã«:TI@ÑÆ¦»!Ü%¥FÜ5
ì?FICæªÒé¥ÖJu]¥Nÿd¿q;ù'½av¬$3pÍ 7.p4îųPÈqòe
+é'ñ5ï±R<<Ôð×çxBæß´,ÿf^*qxtE¸ñ'aÌHÄ^Ñ»i´Ä^5)jÙè]+
+
+låHmUÙêú^ê¯B=5Puâ49V½vôêî±mKc»â@òiÚÝÚH^úQKÄÆ%:ý^þÞFØÈ²º>%hõHÐÆ-®?}°H¦ù³5-óÛf+ÚGF®5ì
+Ý´SÞ¬ãÏ~ÔÃö4øÂ¹´ºÓ8
+-ßÓ ÉÅ¿ØÉ}AG¸¾_³tiØ||ÆéFåüÄàZì;0ÃìøÕæe;ݬ~[£jFØ+PçR²:ã<qFgÇë¼ýð§Ý¸4ìØBÌñ<Âr6ö\ªË¤®É*·ot¶Ò[pN}å\]¢xQAu¬oìÉ!ßwRÜ̵½
+C%úøÌ¡5eðSËUQÞ!R=*2Ï9¶ÿݳËÐÚ3ûrS¼@(ë#ð5ºÌzJÇ
+ø.Xë.-O]¿
Mì<«fu(ë{ý.õsrO49¢r½L ¤/æ¹uxðg.beØîÏ[YH¤sàw`3a½»áɧ±Jw':"ͧJOæù,ßeSwí*¹N[úíhp@|®Od \ò-`y$ª¬4IÓÆ,r£ÊUd÷²kêZ)Ãp`¨ÃèëD
+?¬ÂätmÇøhÂÎÍý
+]WërRÏÛýû-L«µah³Mûà{ÀÂ5)§ãF{Iòì
+á _Ïó,ï¬!¾úçP¬YgÇu³ûy Vq̬¾¿Lä©g:=з
+\AO¢>JüÒ^a)TÍ\ý;5©!/¨+ïµK;ÛltI59þ#îÃnû§÷
+Çÿþ $S¢ÔmÞ×í÷4ÛZ~\³LöKñr¤â.1ë
+£wÔ×½]W5®SDæì§ëÓ²ÑOß*0ÏP<Cwo.sâM|Y-*ä©à:êY¦ËøQyeÔÑXÝÎ`ª""èWlÁêa
+&xã02"%ü&\xz¥£4Ipb`¥YÔýÒ$DØr²±;X,[rødÒ-GQ×oÍ wÏ·9;ÑÄÆn$âw×7ÃÑiõñ>%±Õ¶#é
+í*¨ÌPá(Ñ?ÎÛVU~è3ixöÇèÇùyxtËÛúòâ¿JDyþb9Ø ½¥D¾{{ÔE~Çc=Ä@jekÉ"fwB×lßZ±Õ×RÇêÍÚÖ=ãt÷ëÁcMqD ¢WÄÖðmjÞåª)î°·O÷ØÖÓ_zëhÐp¤ÝÆöu¹ØõlfõD¸Ç¡æé¾ÚÇ«z^3SÕzPûÁò1Ö]5iÞ2xA× â×{íäbÿKþ_ðCààµóñóô°óq#öúúyú@C]ÉÿýÕt
endstream
endobj
-619 0 obj
-90488
+610 0 obj
+69805
endobj
-620 0 obj
-<</Type/FontDescriptor/FontName/NimbusRomNo9L-ReguItal
-/Flags 68
-/FontBBox[-169 -270 1111 924]/ItalicAngle -30
-/Ascent 924
-/Descent -270
-/CapHeight 924
+611 0 obj
+<</Type/FontDescriptor/FontName/NimbusSanL-Bold
+/Flags 4
+/FontBBox[-173 -307 1096 979]/ItalicAngle 0
+/Ascent 979
+/Descent -307
+/CapHeight 979
/StemV 80
-/FontFile 618 0 R>>
+/FontFile 609 0 R>>
endobj
-621 0 obj
+612 0 obj
<</Length 875/Filter/FlateDecode>>
stream
x]ÖÍnÛ8à½BËvQXïOHY²é iÀ±Ô@#³ÈÛWGÎtø®>R4éuw¿¿Ï·õ?ÓåøoÕÓy<Mùõò6sõÏãªi«Óùx[ÊÿãËáºZÏ÷>¼¿ÞòËýøtÙnWë/ó¹×Ûô^}§Ëcþ¸ZNy:ÏÕoÝÃ|üðv½þÈ/y¼Uõj·«Nùi®ó×áú÷á%¯Ë]îOóéóíýÓ|Ëï¾¾_sÕããå_¯cãs^mëzWma·ÊãésM]óǧã÷ôڶ¸¶®c½sSòü1ç¹EÌYYÙ
@@ -11422,2528 +12309,2650 @@
endstream
endobj
-622 0 obj
-<</Type/Font/Subtype/Type1/BaseFont/NimbusRomNo9L-ReguItal
-/ToUnicode 621 0 R
+613 0 obj
+<</Type/Font/Subtype/Type1/BaseFont/NimbusSanL-Bold
+/ToUnicode 612 0 R
/FirstChar 0 /LastChar 255
/Widths[0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-250 333 420 500 500 833 778 333 333 333 500 675 250 333 250 278
-500 500 500 500 500 500 500 500 500 500 333 333 675 675 675 500
-920 611 611 667 722 611 611 722 722 333 444 667 556 833 667 722
-611 722 611 500 556 722 611 833 611 556 556 389 278 389 422 500
-333 500 500 444 500 444 278 500 500 278 278 444 278 722 500 500
-500 500 389 389 278 500 444 667 444 444 389 400 275 400 541 0
+278 333 474 556 556 889 722 278 333 333 389 584 278 333 278 278
+556 556 556 556 556 556 556 556 556 556 333 333 584 584 584 611
+975 722 722 722 722 667 611 778 722 278 556 722 611 833 722 778
+667 778 722 667 611 722 667 944 667 667 611 333 278 333 584 556
+278 556 611 556 611 556 333 611 611 278 278 556 278 889 611 611
+611 611 389 556 333 611 556 778 556 556 500 389 280 389 584 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 389 500 500 167 500 500 500 500 214 556 500 333 333 500 500
-0 500 500 500 250 0 523 350 333 556 556 500 889 1000 0 500
+0 333 556 556 167 556 556 556 556 238 500 556 333 333 611 611
+0 556 556 556 278 0 556 350 278 500 500 556 1000 1000 0 611
0 333 333 333 333 333 333 333 333 0 333 333 0 333 333 333
-889 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 889 0 276 0 0 0 0 556 722 944 310 0 0 0 0
-0 667 0 0 0 278 0 0 278 500 667 500 0 0 0 0
+1000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 1000 0 370 0 0 0 0 611 778 1000 365 0 0 0 0
+0 889 0 0 0 278 0 0 278 611 944 611 0 0 0 0
]
-/FontDescriptor 620 0 R>>
+/FontDescriptor 611 0 R>>
endobj
-623 0 obj
-<</Type/Font/Subtype/Type1/BaseFont/Symbol
+614 0 obj
+<</F1 613 0 R/F2 564 0 R/F3 549 0 R/F4 608 0 R/F5 594 0 R/F6 597 0 R/F7 539 0 R/F8 554 0 R
+/F9 589 0 R/F10 603 0 R/F11 584 0 R/F12 544 0 R/F13 559 0 R/F14 579 0 R/F15 569 0 R/F16 598 0 R
+/F17 574 0 R
>>
endobj
-624 0 obj
-<</F1 557 0 R/F2 502 0 R/F3 567 0 R/F4 587 0 R/F5 577 0 R/F6 617 0 R/F7 612 0 R/F8 512 0 R
-/F9 517 0 R/F10 622 0 R/F11 507 0 R/F12 542 0 R/F13 597 0 R/F14 582 0 R/F15 522 0 R/F16 537 0 R
-/F17 532 0 R/F18 552 0 R/F19 602 0 R/F20 592 0 R/F21 562 0 R/F22 623 0 R/F23 527 0 R/F24 572 0 R
-/F25 547 0 R/F26 607 0 R
->>
-endobj
-
-625 0 obj
-<</Font 624 0 R
-/XObject<</Im204 204 0 R/Im31 31 0 R/Im35 35 0 R>>
+615 0 obj
+<</Font 614 0 R
+/XObject<</Im213 213 0 R/Im31 31 0 R/Im35 35 0 R>>
/ProcSet[/PDF/Text/ImageC/ImageI/ImageB]
>>
endobj
1 0 obj
-<</Type/Page/Parent 497 0 R/Resources 625 0 R/MediaBox[0 0 612 792]/Group<</S/Transparency/CS/DeviceRGB/I true>>/Contents 2 0 R>>
+<</Type/Page/Parent 534 0 R/Resources 615 0 R/MediaBox[0 0 612 792]/Group<</S/Transparency/CS/DeviceRGB/I true>>/Contents 2 0 R>>
endobj
4 0 obj
-<</Type/Page/Parent 497 0 R/Resources 625 0 R/MediaBox[0 0 612 792]/Annots[
-473 0 R ]
+<</Type/Page/Parent 534 0 R/Resources 615 0 R/MediaBox[0 0 612 792]/Annots[
+510 0 R ]
/Group<</S/Transparency/CS/DeviceRGB/I true>>/Contents 5 0 R>>
endobj
7 0 obj
-<</Type/Page/Parent 497 0 R/Resources 625 0 R/MediaBox[0 0 612 792]/Group<</S/Transparency/CS/DeviceRGB/I true>>/Contents 8 0 R>>
+<</Type/Page/Parent 534 0 R/Resources 615 0 R/MediaBox[0 0 612 792]/Group<</S/Transparency/CS/DeviceRGB/I true>>/Contents 8 0 R>>
endobj
10 0 obj
-<</Type/Page/Parent 497 0 R/Resources 625 0 R/MediaBox[0 0 612 792]/Group<</S/Transparency/CS/DeviceRGB/I true>>/Contents 11 0 R>>
+<</Type/Page/Parent 534 0 R/Resources 615 0 R/MediaBox[0 0 612 792]/Group<</S/Transparency/CS/DeviceRGB/I true>>/Contents 11 0 R>>
endobj
13 0 obj
-<</Type/Page/Parent 497 0 R/Resources 625 0 R/MediaBox[0 0 612 792]/Group<</S/Transparency/CS/DeviceRGB/I true>>/Contents 14 0 R>>
+<</Type/Page/Parent 534 0 R/Resources 615 0 R/MediaBox[0 0 612 792]/Group<</S/Transparency/CS/DeviceRGB/I true>>/Contents 14 0 R>>
endobj
16 0 obj
-<</Type/Page/Parent 497 0 R/Resources 625 0 R/MediaBox[0 0 612 792]/Annots[
-491 0 R 492 0 R 493 0 R ]
+<</Type/Page/Parent 534 0 R/Resources 615 0 R/MediaBox[0 0 612 792]/Annots[
+528 0 R 529 0 R 530 0 R ]
/Group<</S/Transparency/CS/DeviceRGB/I true>>/Contents 17 0 R>>
endobj
19 0 obj
-<</Type/Page/Parent 497 0 R/Resources 625 0 R/MediaBox[0 0 612 792]/Annots[
-488 0 R 489 0 R 490 0 R ]
+<</Type/Page/Parent 534 0 R/Resources 615 0 R/MediaBox[0 0 612 792]/Annots[
+526 0 R 527 0 R ]
/Group<</S/Transparency/CS/DeviceRGB/I true>>/Contents 20 0 R>>
endobj
22 0 obj
-<</Type/Page/Parent 497 0 R/Resources 625 0 R/MediaBox[0 0 612 792]/Annots[
-484 0 R 485 0 R 486 0 R 487 0 R ]
+<</Type/Page/Parent 534 0 R/Resources 615 0 R/MediaBox[0 0 612 792]/Annots[
+521 0 R 522 0 R 523 0 R 524 0 R 525 0 R ]
/Group<</S/Transparency/CS/DeviceRGB/I true>>/Contents 23 0 R>>
endobj
25 0 obj
-<</Type/Page/Parent 497 0 R/Resources 625 0 R/MediaBox[0 0 612 792]/Group<</S/Transparency/CS/DeviceRGB/I true>>/Contents 26 0 R>>
+<</Type/Page/Parent 534 0 R/Resources 615 0 R/MediaBox[0 0 612 792]/Group<</S/Transparency/CS/DeviceRGB/I true>>/Contents 26 0 R>>
endobj
28 0 obj
-<</Type/Page/Parent 497 0 R/Resources 625 0 R/MediaBox[0 0 612 792]/Group<</S/Transparency/CS/DeviceRGB/I true>>/Contents 29 0 R>>
+<</Type/Page/Parent 534 0 R/Resources 615 0 R/MediaBox[0 0 612 792]/Group<</S/Transparency/CS/DeviceRGB/I true>>/Contents 29 0 R>>
endobj
32 0 obj
-<</Type/Page/Parent 497 0 R/Resources 625 0 R/MediaBox[0 0 612 792]/Group<</S/Transparency/CS/DeviceRGB/I true>>/Contents 33 0 R>>
+<</Type/Page/Parent 534 0 R/Resources 615 0 R/MediaBox[0 0 612 792]/Group<</S/Transparency/CS/DeviceRGB/I true>>/Contents 33 0 R>>
endobj
36 0 obj
-<</Type/Page/Parent 497 0 R/Resources 625 0 R/MediaBox[0 0 612 792]/Group<</S/Transparency/CS/DeviceRGB/I true>>/Contents 37 0 R>>
+<</Type/Page/Parent 534 0 R/Resources 615 0 R/MediaBox[0 0 612 792]/Group<</S/Transparency/CS/DeviceRGB/I true>>/Contents 37 0 R>>
endobj
39 0 obj
-<</Type/Page/Parent 497 0 R/Resources 625 0 R/MediaBox[0 0 612 792]/Group<</S/Transparency/CS/DeviceRGB/I true>>/Contents 40 0 R>>
+<</Type/Page/Parent 534 0 R/Resources 615 0 R/MediaBox[0 0 612 792]/Group<</S/Transparency/CS/DeviceRGB/I true>>/Contents 40 0 R>>
endobj
42 0 obj
-<</Type/Page/Parent 497 0 R/Resources 625 0 R/MediaBox[0 0 612 792]/Group<</S/Transparency/CS/DeviceRGB/I true>>/Contents 43 0 R>>
+<</Type/Page/Parent 534 0 R/Resources 615 0 R/MediaBox[0 0 612 792]/Group<</S/Transparency/CS/DeviceRGB/I true>>/Contents 43 0 R>>
endobj
45 0 obj
-<</Type/Page/Parent 497 0 R/Resources 625 0 R/MediaBox[0 0 612 792]/Group<</S/Transparency/CS/DeviceRGB/I true>>/Contents 46 0 R>>
+<</Type/Page/Parent 534 0 R/Resources 615 0 R/MediaBox[0 0 612 792]/Group<</S/Transparency/CS/DeviceRGB/I true>>/Contents 46 0 R>>
endobj
48 0 obj
-<</Type/Page/Parent 497 0 R/Resources 625 0 R/MediaBox[0 0 612 792]/Group<</S/Transparency/CS/DeviceRGB/I true>>/Contents 49 0 R>>
+<</Type/Page/Parent 534 0 R/Resources 615 0 R/MediaBox[0 0 612 792]/Group<</S/Transparency/CS/DeviceRGB/I true>>/Contents 49 0 R>>
endobj
51 0 obj
-<</Type/Page/Parent 497 0 R/Resources 625 0 R/MediaBox[0 0 612 792]/Annots[
-392 0 R ]
+<</Type/Page/Parent 534 0 R/Resources 615 0 R/MediaBox[0 0 612 792]/Annots[
+413 0 R ]
/Group<</S/Transparency/CS/DeviceRGB/I true>>/Contents 52 0 R>>
endobj
54 0 obj
-<</Type/Page/Parent 497 0 R/Resources 625 0 R/MediaBox[0 0 612 792]/Annots[
-471 0 R 472 0 R ]
+<</Type/Page/Parent 534 0 R/Resources 615 0 R/MediaBox[0 0 612 792]/Annots[
+508 0 R 509 0 R ]
/Group<</S/Transparency/CS/DeviceRGB/I true>>/Contents 55 0 R>>
endobj
57 0 obj
-<</Type/Page/Parent 497 0 R/Resources 625 0 R/MediaBox[0 0 612 792]/Group<</S/Transparency/CS/DeviceRGB/I true>>/Contents 58 0 R>>
+<</Type/Page/Parent 534 0 R/Resources 615 0 R/MediaBox[0 0 612 792]/Group<</S/Transparency/CS/DeviceRGB/I true>>/Contents 58 0 R>>
endobj
60 0 obj
-<</Type/Page/Parent 497 0 R/Resources 625 0 R/MediaBox[0 0 612 792]/Group<</S/Transparency/CS/DeviceRGB/I true>>/Contents 61 0 R>>
+<</Type/Page/Parent 534 0 R/Resources 615 0 R/MediaBox[0 0 612 792]/Group<</S/Transparency/CS/DeviceRGB/I true>>/Contents 61 0 R>>
endobj
63 0 obj
-<</Type/Page/Parent 497 0 R/Resources 625 0 R/MediaBox[0 0 612 792]/Group<</S/Transparency/CS/DeviceRGB/I true>>/Contents 64 0 R>>
+<</Type/Page/Parent 534 0 R/Resources 615 0 R/MediaBox[0 0 612 792]/Group<</S/Transparency/CS/DeviceRGB/I true>>/Contents 64 0 R>>
endobj
66 0 obj
-<</Type/Page/Parent 497 0 R/Resources 625 0 R/MediaBox[0 0 612 792]/Group<</S/Transparency/CS/DeviceRGB/I true>>/Contents 67 0 R>>
+<</Type/Page/Parent 534 0 R/Resources 615 0 R/MediaBox[0 0 612 792]/Group<</S/Transparency/CS/DeviceRGB/I true>>/Contents 67 0 R>>
endobj
69 0 obj
-<</Type/Page/Parent 497 0 R/Resources 625 0 R/MediaBox[0 0 612 792]/Group<</S/Transparency/CS/DeviceRGB/I true>>/Contents 70 0 R>>
+<</Type/Page/Parent 534 0 R/Resources 615 0 R/MediaBox[0 0 612 792]/Group<</S/Transparency/CS/DeviceRGB/I true>>/Contents 70 0 R>>
endobj
72 0 obj
-<</Type/Page/Parent 497 0 R/Resources 625 0 R/MediaBox[0 0 612 792]/Group<</S/Transparency/CS/DeviceRGB/I true>>/Contents 73 0 R>>
+<</Type/Page/Parent 534 0 R/Resources 615 0 R/MediaBox[0 0 612 792]/Group<</S/Transparency/CS/DeviceRGB/I true>>/Contents 73 0 R>>
endobj
75 0 obj
-<</Type/Page/Parent 497 0 R/Resources 625 0 R/MediaBox[0 0 612 792]/Annots[
-470 0 R ]
-/Group<</S/Transparency/CS/DeviceRGB/I true>>/Contents 76 0 R>>
+<</Type/Page/Parent 534 0 R/Resources 615 0 R/MediaBox[0 0 612 792]/Group<</S/Transparency/CS/DeviceRGB/I true>>/Contents 76 0 R>>
endobj
78 0 obj
-<</Type/Page/Parent 497 0 R/Resources 625 0 R/MediaBox[0 0 612 792]/Annots[
-468 0 R 469 0 R ]
+<</Type/Page/Parent 534 0 R/Resources 615 0 R/MediaBox[0 0 612 792]/Annots[
+506 0 R 507 0 R ]
/Group<</S/Transparency/CS/DeviceRGB/I true>>/Contents 79 0 R>>
endobj
81 0 obj
-<</Type/Page/Parent 497 0 R/Resources 625 0 R/MediaBox[0 0 612 792]/Group<</S/Transparency/CS/DeviceRGB/I true>>/Contents 82 0 R>>
+<</Type/Page/Parent 534 0 R/Resources 615 0 R/MediaBox[0 0 612 792]/Annots[
+505 0 R ]
+/Group<</S/Transparency/CS/DeviceRGB/I true>>/Contents 82 0 R>>
endobj
84 0 obj
-<</Type/Page/Parent 497 0 R/Resources 625 0 R/MediaBox[0 0 612 792]/Group<</S/Transparency/CS/DeviceRGB/I true>>/Contents 85 0 R>>
+<</Type/Page/Parent 534 0 R/Resources 615 0 R/MediaBox[0 0 612 792]/Group<</S/Transparency/CS/DeviceRGB/I true>>/Contents 85 0 R>>
endobj
87 0 obj
-<</Type/Page/Parent 497 0 R/Resources 625 0 R/MediaBox[0 0 612 792]/Group<</S/Transparency/CS/DeviceRGB/I true>>/Contents 88 0 R>>
+<</Type/Page/Parent 534 0 R/Resources 615 0 R/MediaBox[0 0 612 792]/Group<</S/Transparency/CS/DeviceRGB/I true>>/Contents 88 0 R>>
endobj
90 0 obj
-<</Type/Page/Parent 497 0 R/Resources 625 0 R/MediaBox[0 0 612 792]/Group<</S/Transparency/CS/DeviceRGB/I true>>/Contents 91 0 R>>
+<</Type/Page/Parent 534 0 R/Resources 615 0 R/MediaBox[0 0 612 792]/Group<</S/Transparency/CS/DeviceRGB/I true>>/Contents 91 0 R>>
endobj
93 0 obj
-<</Type/Page/Parent 497 0 R/Resources 625 0 R/MediaBox[0 0 612 792]/Group<</S/Transparency/CS/DeviceRGB/I true>>/Contents 94 0 R>>
+<</Type/Page/Parent 534 0 R/Resources 615 0 R/MediaBox[0 0 612 792]/Group<</S/Transparency/CS/DeviceRGB/I true>>/Contents 94 0 R>>
endobj
96 0 obj
-<</Type/Page/Parent 497 0 R/Resources 625 0 R/MediaBox[0 0 612 792]/Group<</S/Transparency/CS/DeviceRGB/I true>>/Contents 97 0 R>>
+<</Type/Page/Parent 534 0 R/Resources 615 0 R/MediaBox[0 0 612 792]/Group<</S/Transparency/CS/DeviceRGB/I true>>/Contents 97 0 R>>
endobj
99 0 obj
-<</Type/Page/Parent 497 0 R/Resources 625 0 R/MediaBox[0 0 612 792]/Group<</S/Transparency/CS/DeviceRGB/I true>>/Contents 100 0 R>>
+<</Type/Page/Parent 534 0 R/Resources 615 0 R/MediaBox[0 0 612 792]/Group<</S/Transparency/CS/DeviceRGB/I true>>/Contents 100 0 R>>
endobj
102 0 obj
-<</Type/Page/Parent 497 0 R/Resources 625 0 R/MediaBox[0 0 612 792]/Group<</S/Transparency/CS/DeviceRGB/I true>>/Contents 103 0 R>>
+<</Type/Page/Parent 534 0 R/Resources 615 0 R/MediaBox[0 0 612 792]/Group<</S/Transparency/CS/DeviceRGB/I true>>/Contents 103 0 R>>
endobj
105 0 obj
-<</Type/Page/Parent 497 0 R/Resources 625 0 R/MediaBox[0 0 612 792]/Group<</S/Transparency/CS/DeviceRGB/I true>>/Contents 106 0 R>>
+<</Type/Page/Parent 534 0 R/Resources 615 0 R/MediaBox[0 0 612 792]/Group<</S/Transparency/CS/DeviceRGB/I true>>/Contents 106 0 R>>
endobj
108 0 obj
-<</Type/Page/Parent 497 0 R/Resources 625 0 R/MediaBox[0 0 612 792]/Group<</S/Transparency/CS/DeviceRGB/I true>>/Contents 109 0 R>>
+<</Type/Page/Parent 534 0 R/Resources 615 0 R/MediaBox[0 0 612 792]/Group<</S/Transparency/CS/DeviceRGB/I true>>/Contents 109 0 R>>
endobj
111 0 obj
-<</Type/Page/Parent 497 0 R/Resources 625 0 R/MediaBox[0 0 612 792]/Annots[
-483 0 R ]
+<</Type/Page/Parent 534 0 R/Resources 615 0 R/MediaBox[0 0 612 792]/Annots[
+520 0 R ]
/Group<</S/Transparency/CS/DeviceRGB/I true>>/Contents 112 0 R>>
endobj
114 0 obj
-<</Type/Page/Parent 497 0 R/Resources 625 0 R/MediaBox[0 0 612 792]/Group<</S/Transparency/CS/DeviceRGB/I true>>/Contents 115 0 R>>
+<</Type/Page/Parent 534 0 R/Resources 615 0 R/MediaBox[0 0 612 792]/Group<</S/Transparency/CS/DeviceRGB/I true>>/Contents 115 0 R>>
endobj
117 0 obj
-<</Type/Page/Parent 497 0 R/Resources 625 0 R/MediaBox[0 0 612 792]/Group<</S/Transparency/CS/DeviceRGB/I true>>/Contents 118 0 R>>
+<</Type/Page/Parent 534 0 R/Resources 615 0 R/MediaBox[0 0 612 792]/Group<</S/Transparency/CS/DeviceRGB/I true>>/Contents 118 0 R>>
endobj
120 0 obj
-<</Type/Page/Parent 497 0 R/Resources 625 0 R/MediaBox[0 0 612 792]/Annots[
-480 0 R 481 0 R 482 0 R ]
-/Group<</S/Transparency/CS/DeviceRGB/I true>>/Contents 121 0 R>>
+<</Type/Page/Parent 534 0 R/Resources 615 0 R/MediaBox[0 0 612 792]/Group<</S/Transparency/CS/DeviceRGB/I true>>/Contents 121 0 R>>
endobj
123 0 obj
-<</Type/Page/Parent 497 0 R/Resources 625 0 R/MediaBox[0 0 612 792]/Group<</S/Transparency/CS/DeviceRGB/I true>>/Contents 124 0 R>>
+<</Type/Page/Parent 534 0 R/Resources 615 0 R/MediaBox[0 0 612 792]/Annots[
+519 0 R ]
+/Group<</S/Transparency/CS/DeviceRGB/I true>>/Contents 124 0 R>>
endobj
126 0 obj
-<</Type/Page/Parent 497 0 R/Resources 625 0 R/MediaBox[0 0 612 792]/Annots[
-467 0 R ]
+<</Type/Page/Parent 534 0 R/Resources 615 0 R/MediaBox[0 0 612 792]/Annots[
+517 0 R 518 0 R ]
/Group<</S/Transparency/CS/DeviceRGB/I true>>/Contents 127 0 R>>
endobj
129 0 obj
-<</Type/Page/Parent 497 0 R/Resources 625 0 R/MediaBox[0 0 612 792]/Group<</S/Transparency/CS/DeviceRGB/I true>>/Contents 130 0 R>>
+<</Type/Page/Parent 534 0 R/Resources 615 0 R/MediaBox[0 0 612 792]/Group<</S/Transparency/CS/DeviceRGB/I true>>/Contents 130 0 R>>
endobj
132 0 obj
-<</Type/Page/Parent 497 0 R/Resources 625 0 R/MediaBox[0 0 612 792]/Group<</S/Transparency/CS/DeviceRGB/I true>>/Contents 133 0 R>>
+<</Type/Page/Parent 534 0 R/Resources 615 0 R/MediaBox[0 0 612 792]/Annots[
+504 0 R ]
+/Group<</S/Transparency/CS/DeviceRGB/I true>>/Contents 133 0 R>>
endobj
135 0 obj
-<</Type/Page/Parent 497 0 R/Resources 625 0 R/MediaBox[0 0 612 792]/Group<</S/Transparency/CS/DeviceRGB/I true>>/Contents 136 0 R>>
+<</Type/Page/Parent 534 0 R/Resources 615 0 R/MediaBox[0 0 612 792]/Group<</S/Transparency/CS/DeviceRGB/I true>>/Contents 136 0 R>>
endobj
138 0 obj
-<</Type/Page/Parent 497 0 R/Resources 625 0 R/MediaBox[0 0 612 792]/Group<</S/Transparency/CS/DeviceRGB/I true>>/Contents 139 0 R>>
+<</Type/Page/Parent 534 0 R/Resources 615 0 R/MediaBox[0 0 612 792]/Group<</S/Transparency/CS/DeviceRGB/I true>>/Contents 139 0 R>>
endobj
141 0 obj
-<</Type/Page/Parent 497 0 R/Resources 625 0 R/MediaBox[0 0 612 792]/Group<</S/Transparency/CS/DeviceRGB/I true>>/Contents 142 0 R>>
+<</Type/Page/Parent 534 0 R/Resources 615 0 R/MediaBox[0 0 612 792]/Group<</S/Transparency/CS/DeviceRGB/I true>>/Contents 142 0 R>>
endobj
144 0 obj
-<</Type/Page/Parent 497 0 R/Resources 625 0 R/MediaBox[0 0 612 792]/Group<</S/Transparency/CS/DeviceRGB/I true>>/Contents 145 0 R>>
+<</Type/Page/Parent 534 0 R/Resources 615 0 R/MediaBox[0 0 612 792]/Group<</S/Transparency/CS/DeviceRGB/I true>>/Contents 145 0 R>>
endobj
147 0 obj
-<</Type/Page/Parent 497 0 R/Resources 625 0 R/MediaBox[0 0 612 792]/Annots[
-465 0 R 466 0 R ]
-/Group<</S/Transparency/CS/DeviceRGB/I true>>/Contents 148 0 R>>
+<</Type/Page/Parent 534 0 R/Resources 615 0 R/MediaBox[0 0 612 792]/Group<</S/Transparency/CS/DeviceRGB/I true>>/Contents 148 0 R>>
endobj
150 0 obj
-<</Type/Page/Parent 497 0 R/Resources 625 0 R/MediaBox[0 0 612 792]/Group<</S/Transparency/CS/DeviceRGB/I true>>/Contents 151 0 R>>
+<</Type/Page/Parent 534 0 R/Resources 615 0 R/MediaBox[0 0 612 792]/Group<</S/Transparency/CS/DeviceRGB/I true>>/Contents 151 0 R>>
endobj
153 0 obj
-<</Type/Page/Parent 497 0 R/Resources 625 0 R/MediaBox[0 0 612 792]/Annots[
-462 0 R 463 0 R 464 0 R ]
+<</Type/Page/Parent 534 0 R/Resources 615 0 R/MediaBox[0 0 612 792]/Annots[
+502 0 R 503 0 R ]
/Group<</S/Transparency/CS/DeviceRGB/I true>>/Contents 154 0 R>>
endobj
156 0 obj
-<</Type/Page/Parent 497 0 R/Resources 625 0 R/MediaBox[0 0 612 792]/Group<</S/Transparency/CS/DeviceRGB/I true>>/Contents 157 0 R>>
+<</Type/Page/Parent 534 0 R/Resources 615 0 R/MediaBox[0 0 612 792]/Group<</S/Transparency/CS/DeviceRGB/I true>>/Contents 157 0 R>>
endobj
159 0 obj
-<</Type/Page/Parent 497 0 R/Resources 625 0 R/MediaBox[0 0 612 792]/Annots[
-460 0 R 461 0 R 478 0 R 479 0 R ]
+<</Type/Page/Parent 534 0 R/Resources 615 0 R/MediaBox[0 0 612 792]/Annots[
+499 0 R 500 0 R 501 0 R ]
/Group<</S/Transparency/CS/DeviceRGB/I true>>/Contents 160 0 R>>
endobj
162 0 obj
-<</Type/Page/Parent 497 0 R/Resources 625 0 R/MediaBox[0 0 612 792]/Annots[
-458 0 R 459 0 R ]
-/Group<</S/Transparency/CS/DeviceRGB/I true>>/Contents 163 0 R>>
+<</Type/Page/Parent 534 0 R/Resources 615 0 R/MediaBox[0 0 612 792]/Group<</S/Transparency/CS/DeviceRGB/I true>>/Contents 163 0 R>>
endobj
165 0 obj
-<</Type/Page/Parent 497 0 R/Resources 625 0 R/MediaBox[0 0 612 792]/Annots[
-457 0 R ]
+<</Type/Page/Parent 534 0 R/Resources 615 0 R/MediaBox[0 0 612 792]/Annots[
+515 0 R 516 0 R ]
/Group<</S/Transparency/CS/DeviceRGB/I true>>/Contents 166 0 R>>
endobj
168 0 obj
-<</Type/Page/Parent 497 0 R/Resources 625 0 R/MediaBox[0 0 612 792]/Group<</S/Transparency/CS/DeviceRGB/I true>>/Contents 169 0 R>>
+<</Type/Page/Parent 534 0 R/Resources 615 0 R/MediaBox[0 0 612 792]/Annots[
+495 0 R 496 0 R 497 0 R 498 0 R ]
+/Group<</S/Transparency/CS/DeviceRGB/I true>>/Contents 169 0 R>>
endobj
171 0 obj
-<</Type/Page/Parent 497 0 R/Resources 625 0 R/MediaBox[0 0 612 792]/Group<</S/Transparency/CS/DeviceRGB/I true>>/Contents 172 0 R>>
+<</Type/Page/Parent 534 0 R/Resources 615 0 R/MediaBox[0 0 612 792]/Annots[
+494 0 R ]
+/Group<</S/Transparency/CS/DeviceRGB/I true>>/Contents 172 0 R>>
endobj
174 0 obj
-<</Type/Page/Parent 497 0 R/Resources 625 0 R/MediaBox[0 0 612 792]/Group<</S/Transparency/CS/DeviceRGB/I true>>/Contents 175 0 R>>
+<</Type/Page/Parent 534 0 R/Resources 615 0 R/MediaBox[0 0 612 792]/Group<</S/Transparency/CS/DeviceRGB/I true>>/Contents 175 0 R>>
endobj
177 0 obj
-<</Type/Page/Parent 497 0 R/Resources 625 0 R/MediaBox[0 0 612 792]/Group<</S/Transparency/CS/DeviceRGB/I true>>/Contents 178 0 R>>
+<</Type/Page/Parent 534 0 R/Resources 615 0 R/MediaBox[0 0 612 792]/Group<</S/Transparency/CS/DeviceRGB/I true>>/Contents 178 0 R>>
endobj
180 0 obj
-<</Type/Page/Parent 497 0 R/Resources 625 0 R/MediaBox[0 0 612 792]/Group<</S/Transparency/CS/DeviceRGB/I true>>/Contents 181 0 R>>
+<</Type/Page/Parent 534 0 R/Resources 615 0 R/MediaBox[0 0 612 792]/Group<</S/Transparency/CS/DeviceRGB/I true>>/Contents 181 0 R>>
endobj
183 0 obj
-<</Type/Page/Parent 497 0 R/Resources 625 0 R/MediaBox[0 0 612 792]/Group<</S/Transparency/CS/DeviceRGB/I true>>/Contents 184 0 R>>
+<</Type/Page/Parent 534 0 R/Resources 615 0 R/MediaBox[0 0 612 792]/Group<</S/Transparency/CS/DeviceRGB/I true>>/Contents 184 0 R>>
endobj
186 0 obj
-<</Type/Page/Parent 497 0 R/Resources 625 0 R/MediaBox[0 0 612 792]/Group<</S/Transparency/CS/DeviceRGB/I true>>/Contents 187 0 R>>
+<</Type/Page/Parent 534 0 R/Resources 615 0 R/MediaBox[0 0 612 792]/Group<</S/Transparency/CS/DeviceRGB/I true>>/Contents 187 0 R>>
endobj
189 0 obj
-<</Type/Page/Parent 497 0 R/Resources 625 0 R/MediaBox[0 0 612 792]/Group<</S/Transparency/CS/DeviceRGB/I true>>/Contents 190 0 R>>
+<</Type/Page/Parent 534 0 R/Resources 615 0 R/MediaBox[0 0 612 792]/Group<</S/Transparency/CS/DeviceRGB/I true>>/Contents 190 0 R>>
endobj
192 0 obj
-<</Type/Page/Parent 497 0 R/Resources 625 0 R/MediaBox[0 0 612 792]/Annots[
-456 0 R 477 0 R ]
-/Group<</S/Transparency/CS/DeviceRGB/I true>>/Contents 193 0 R>>
+<</Type/Page/Parent 534 0 R/Resources 615 0 R/MediaBox[0 0 612 792]/Group<</S/Transparency/CS/DeviceRGB/I true>>/Contents 193 0 R>>
endobj
195 0 obj
-<</Type/Page/Parent 497 0 R/Resources 625 0 R/MediaBox[0 0 612 792]/Group<</S/Transparency/CS/DeviceRGB/I true>>/Contents 196 0 R>>
+<</Type/Page/Parent 534 0 R/Resources 615 0 R/MediaBox[0 0 612 792]/Group<</S/Transparency/CS/DeviceRGB/I true>>/Contents 196 0 R>>
endobj
198 0 obj
-<</Type/Page/Parent 497 0 R/Resources 625 0 R/MediaBox[0 0 612 792]/Group<</S/Transparency/CS/DeviceRGB/I true>>/Contents 199 0 R>>
+<</Type/Page/Parent 534 0 R/Resources 615 0 R/MediaBox[0 0 612 792]/Group<</S/Transparency/CS/DeviceRGB/I true>>/Contents 199 0 R>>
endobj
201 0 obj
-<</Type/Page/Parent 497 0 R/Resources 625 0 R/MediaBox[0 0 612 792]/Group<</S/Transparency/CS/DeviceRGB/I true>>/Contents 202 0 R>>
+<</Type/Page/Parent 534 0 R/Resources 615 0 R/MediaBox[0 0 612 792]/Annots[
+493 0 R 514 0 R ]
+/Group<</S/Transparency/CS/DeviceRGB/I true>>/Contents 202 0 R>>
endobj
-206 0 obj
-<</Type/Page/Parent 497 0 R/Resources 625 0 R/MediaBox[0 0 612 792]/Group<</S/Transparency/CS/DeviceRGB/I true>>/Contents 207 0 R>>
+204 0 obj
+<</Type/Page/Parent 534 0 R/Resources 615 0 R/MediaBox[0 0 612 792]/Group<</S/Transparency/CS/DeviceRGB/I true>>/Contents 205 0 R>>
endobj
-209 0 obj
-<</Type/Page/Parent 497 0 R/Resources 625 0 R/MediaBox[0 0 612 792]/Group<</S/Transparency/CS/DeviceRGB/I true>>/Contents 210 0 R>>
+207 0 obj
+<</Type/Page/Parent 534 0 R/Resources 615 0 R/MediaBox[0 0 612 792]/Group<</S/Transparency/CS/DeviceRGB/I true>>/Contents 208 0 R>>
endobj
-212 0 obj
-<</Type/Page/Parent 497 0 R/Resources 625 0 R/MediaBox[0 0 612 792]/Annots[
-455 0 R ]
-/Group<</S/Transparency/CS/DeviceRGB/I true>>/Contents 213 0 R>>
+210 0 obj
+<</Type/Page/Parent 534 0 R/Resources 615 0 R/MediaBox[0 0 612 792]/Group<</S/Transparency/CS/DeviceRGB/I true>>/Contents 211 0 R>>
endobj
215 0 obj
-<</Type/Page/Parent 497 0 R/Resources 625 0 R/MediaBox[0 0 612 792]/Group<</S/Transparency/CS/DeviceRGB/I true>>/Contents 216 0 R>>
+<</Type/Page/Parent 534 0 R/Resources 615 0 R/MediaBox[0 0 612 792]/Group<</S/Transparency/CS/DeviceRGB/I true>>/Contents 216 0 R>>
endobj
218 0 obj
-<</Type/Page/Parent 497 0 R/Resources 625 0 R/MediaBox[0 0 612 792]/Annots[
-454 0 R ]
-/Group<</S/Transparency/CS/DeviceRGB/I true>>/Contents 219 0 R>>
+<</Type/Page/Parent 534 0 R/Resources 615 0 R/MediaBox[0 0 612 792]/Group<</S/Transparency/CS/DeviceRGB/I true>>/Contents 219 0 R>>
endobj
221 0 obj
-<</Type/Page/Parent 497 0 R/Resources 625 0 R/MediaBox[0 0 612 792]/Annots[
-453 0 R ]
+<</Type/Page/Parent 534 0 R/Resources 615 0 R/MediaBox[0 0 612 792]/Annots[
+492 0 R ]
/Group<</S/Transparency/CS/DeviceRGB/I true>>/Contents 222 0 R>>
endobj
224 0 obj
-<</Type/Page/Parent 497 0 R/Resources 625 0 R/MediaBox[0 0 612 792]/Group<</S/Transparency/CS/DeviceRGB/I true>>/Contents 225 0 R>>
+<</Type/Page/Parent 534 0 R/Resources 615 0 R/MediaBox[0 0 612 792]/Group<</S/Transparency/CS/DeviceRGB/I true>>/Contents 225 0 R>>
endobj
227 0 obj
-<</Type/Page/Parent 497 0 R/Resources 625 0 R/MediaBox[0 0 612 792]/Group<</S/Transparency/CS/DeviceRGB/I true>>/Contents 228 0 R>>
+<</Type/Page/Parent 534 0 R/Resources 615 0 R/MediaBox[0 0 612 792]/Annots[
+491 0 R ]
+/Group<</S/Transparency/CS/DeviceRGB/I true>>/Contents 228 0 R>>
endobj
230 0 obj
-<</Type/Page/Parent 497 0 R/Resources 625 0 R/MediaBox[0 0 612 792]/Group<</S/Transparency/CS/DeviceRGB/I true>>/Contents 231 0 R>>
+<</Type/Page/Parent 534 0 R/Resources 615 0 R/MediaBox[0 0 612 792]/Annots[
+490 0 R ]
+/Group<</S/Transparency/CS/DeviceRGB/I true>>/Contents 231 0 R>>
endobj
233 0 obj
-<</Type/Page/Parent 497 0 R/Resources 625 0 R/MediaBox[0 0 612 792]/Group<</S/Transparency/CS/DeviceRGB/I true>>/Contents 234 0 R>>
+<</Type/Page/Parent 534 0 R/Resources 615 0 R/MediaBox[0 0 612 792]/Group<</S/Transparency/CS/DeviceRGB/I true>>/Contents 234 0 R>>
endobj
236 0 obj
-<</Type/Page/Parent 497 0 R/Resources 625 0 R/MediaBox[0 0 612 792]/Group<</S/Transparency/CS/DeviceRGB/I true>>/Contents 237 0 R>>
+<</Type/Page/Parent 534 0 R/Resources 615 0 R/MediaBox[0 0 612 792]/Group<</S/Transparency/CS/DeviceRGB/I true>>/Contents 237 0 R>>
endobj
239 0 obj
-<</Type/Page/Parent 497 0 R/Resources 625 0 R/MediaBox[0 0 612 792]/Annots[
-452 0 R ]
-/Group<</S/Transparency/CS/DeviceRGB/I true>>/Contents 240 0 R>>
+<</Type/Page/Parent 534 0 R/Resources 615 0 R/MediaBox[0 0 612 792]/Group<</S/Transparency/CS/DeviceRGB/I true>>/Contents 240 0 R>>
endobj
242 0 obj
-<</Type/Page/Parent 497 0 R/Resources 625 0 R/MediaBox[0 0 612 792]/Annots[
-444 0 R 445 0 R 446 0 R 447 0 R 448 0 R 449 0 R 450 0 R 451 0 R ]
-/Group<</S/Transparency/CS/DeviceRGB/I true>>/Contents 243 0 R>>
+<</Type/Page/Parent 534 0 R/Resources 615 0 R/MediaBox[0 0 612 792]/Group<</S/Transparency/CS/DeviceRGB/I true>>/Contents 243 0 R>>
endobj
245 0 obj
-<</Type/Page/Parent 497 0 R/Resources 625 0 R/MediaBox[0 0 612 792]/Annots[
-440 0 R 441 0 R 442 0 R 443 0 R ]
-/Group<</S/Transparency/CS/DeviceRGB/I true>>/Contents 246 0 R>>
+<</Type/Page/Parent 534 0 R/Resources 615 0 R/MediaBox[0 0 612 792]/Group<</S/Transparency/CS/DeviceRGB/I true>>/Contents 246 0 R>>
endobj
248 0 obj
-<</Type/Page/Parent 497 0 R/Resources 625 0 R/MediaBox[0 0 612 792]/Annots[
-435 0 R 436 0 R 437 0 R 438 0 R 439 0 R ]
+<</Type/Page/Parent 534 0 R/Resources 615 0 R/MediaBox[0 0 612 792]/Annots[
+489 0 R ]
/Group<</S/Transparency/CS/DeviceRGB/I true>>/Contents 249 0 R>>
endobj
251 0 obj
-<</Type/Page/Parent 497 0 R/Resources 625 0 R/MediaBox[0 0 612 792]/Annots[
-427 0 R 428 0 R 429 0 R 430 0 R 431 0 R 432 0 R 433 0 R 434 0 R ]
+<</Type/Page/Parent 534 0 R/Resources 615 0 R/MediaBox[0 0 612 792]/Annots[
+481 0 R 482 0 R 483 0 R 484 0 R 485 0 R 486 0 R 487 0 R 488 0 R ]
/Group<</S/Transparency/CS/DeviceRGB/I true>>/Contents 252 0 R>>
endobj
254 0 obj
-<</Type/Page/Parent 497 0 R/Resources 625 0 R/MediaBox[0 0 612 792]/Annots[
-421 0 R 422 0 R 423 0 R 424 0 R 425 0 R 426 0 R ]
+<</Type/Page/Parent 534 0 R/Resources 615 0 R/MediaBox[0 0 612 792]/Annots[
+479 0 R 480 0 R ]
/Group<</S/Transparency/CS/DeviceRGB/I true>>/Contents 255 0 R>>
endobj
257 0 obj
-<</Type/Page/Parent 497 0 R/Resources 625 0 R/MediaBox[0 0 612 792]/Group<</S/Transparency/CS/DeviceRGB/I true>>/Contents 258 0 R>>
+<</Type/Page/Parent 534 0 R/Resources 615 0 R/MediaBox[0 0 612 792]/Annots[
+472 0 R 473 0 R 474 0 R 475 0 R 476 0 R 477 0 R 478 0 R ]
+/Group<</S/Transparency/CS/DeviceRGB/I true>>/Contents 258 0 R>>
endobj
260 0 obj
-<</Type/Page/Parent 497 0 R/Resources 625 0 R/MediaBox[0 0 612 792]/Group<</S/Transparency/CS/DeviceRGB/I true>>/Contents 261 0 R>>
+<</Type/Page/Parent 534 0 R/Resources 615 0 R/MediaBox[0 0 612 792]/Annots[
+464 0 R 465 0 R 466 0 R 467 0 R 468 0 R 469 0 R 470 0 R 471 0 R ]
+/Group<</S/Transparency/CS/DeviceRGB/I true>>/Contents 261 0 R>>
endobj
263 0 obj
-<</Type/Page/Parent 497 0 R/Resources 625 0 R/MediaBox[0 0 612 792]/Group<</S/Transparency/CS/DeviceRGB/I true>>/Contents 264 0 R>>
+<</Type/Page/Parent 534 0 R/Resources 615 0 R/MediaBox[0 0 612 792]/Annots[
+458 0 R 459 0 R 460 0 R 461 0 R 462 0 R 463 0 R ]
+/Group<</S/Transparency/CS/DeviceRGB/I true>>/Contents 264 0 R>>
endobj
266 0 obj
-<</Type/Page/Parent 497 0 R/Resources 625 0 R/MediaBox[0 0 612 792]/Annots[
-420 0 R ]
-/Group<</S/Transparency/CS/DeviceRGB/I true>>/Contents 267 0 R>>
+<</Type/Page/Parent 534 0 R/Resources 615 0 R/MediaBox[0 0 612 792]/Group<</S/Transparency/CS/DeviceRGB/I true>>/Contents 267 0 R>>
endobj
269 0 obj
-<</Type/Page/Parent 497 0 R/Resources 625 0 R/MediaBox[0 0 612 792]/Group<</S/Transparency/CS/DeviceRGB/I true>>/Contents 270 0 R>>
+<</Type/Page/Parent 534 0 R/Resources 615 0 R/MediaBox[0 0 612 792]/Group<</S/Transparency/CS/DeviceRGB/I true>>/Contents 270 0 R>>
endobj
272 0 obj
-<</Type/Page/Parent 497 0 R/Resources 625 0 R/MediaBox[0 0 612 792]/Annots[
-416 0 R 417 0 R 418 0 R 419 0 R ]
-/Group<</S/Transparency/CS/DeviceRGB/I true>>/Contents 273 0 R>>
+<</Type/Page/Parent 534 0 R/Resources 615 0 R/MediaBox[0 0 612 792]/Group<</S/Transparency/CS/DeviceRGB/I true>>/Contents 273 0 R>>
endobj
275 0 obj
-<</Type/Page/Parent 497 0 R/Resources 625 0 R/MediaBox[0 0 612 792]/Group<</S/Transparency/CS/DeviceRGB/I true>>/Contents 276 0 R>>
+<</Type/Page/Parent 534 0 R/Resources 615 0 R/MediaBox[0 0 612 792]/Group<</S/Transparency/CS/DeviceRGB/I true>>/Contents 276 0 R>>
endobj
278 0 obj
-<</Type/Page/Parent 497 0 R/Resources 625 0 R/MediaBox[0 0 612 792]/Annots[
-414 0 R 415 0 R ]
+<</Type/Page/Parent 534 0 R/Resources 615 0 R/MediaBox[0 0 612 792]/Annots[
+441 0 R 442 0 R 443 0 R 444 0 R 445 0 R 446 0 R 447 0 R 448 0 R 449 0 R 450 0 R 451 0 R 452 0 R 453 0 R 454 0 R 455 0 R
+456 0 R 457 0 R ]
/Group<</S/Transparency/CS/DeviceRGB/I true>>/Contents 279 0 R>>
endobj
281 0 obj
-<</Type/Page/Parent 497 0 R/Resources 625 0 R/MediaBox[0 0 612 792]/Annots[
-413 0 R ]
-/Group<</S/Transparency/CS/DeviceRGB/I true>>/Contents 282 0 R>>
+<</Type/Page/Parent 534 0 R/Resources 615 0 R/MediaBox[0 0 612 792]/Group<</S/Transparency/CS/DeviceRGB/I true>>/Contents 282 0 R>>
endobj
284 0 obj
-<</Type/Page/Parent 497 0 R/Resources 625 0 R/MediaBox[0 0 612 792]/Annots[
-412 0 R ]
-/Group<</S/Transparency/CS/DeviceRGB/I true>>/Contents 285 0 R>>
+<</Type/Page/Parent 534 0 R/Resources 615 0 R/MediaBox[0 0 612 792]/Group<</S/Transparency/CS/DeviceRGB/I true>>/Contents 285 0 R>>
endobj
287 0 obj
-<</Type/Page/Parent 497 0 R/Resources 625 0 R/MediaBox[0 0 612 792]/Group<</S/Transparency/CS/DeviceRGB/I true>>/Contents 288 0 R>>
+<</Type/Page/Parent 534 0 R/Resources 615 0 R/MediaBox[0 0 612 792]/Annots[
+437 0 R 438 0 R 439 0 R 440 0 R ]
+/Group<</S/Transparency/CS/DeviceRGB/I true>>/Contents 288 0 R>>
endobj
290 0 obj
-<</Type/Page/Parent 497 0 R/Resources 625 0 R/MediaBox[0 0 612 792]/Annots[
-411 0 R ]
-/Group<</S/Transparency/CS/DeviceRGB/I true>>/Contents 291 0 R>>
+<</Type/Page/Parent 534 0 R/Resources 615 0 R/MediaBox[0 0 612 792]/Group<</S/Transparency/CS/DeviceRGB/I true>>/Contents 291 0 R>>
endobj
293 0 obj
-<</Type/Page/Parent 497 0 R/Resources 625 0 R/MediaBox[0 0 612 792]/Group<</S/Transparency/CS/DeviceRGB/I true>>/Contents 294 0 R>>
+<</Type/Page/Parent 534 0 R/Resources 615 0 R/MediaBox[0 0 612 792]/Annots[
+435 0 R 436 0 R ]
+/Group<</S/Transparency/CS/DeviceRGB/I true>>/Contents 294 0 R>>
endobj
296 0 obj
-<</Type/Page/Parent 497 0 R/Resources 625 0 R/MediaBox[0 0 612 792]/Annots[
-410 0 R ]
+<</Type/Page/Parent 534 0 R/Resources 615 0 R/MediaBox[0 0 612 792]/Annots[
+434 0 R ]
/Group<</S/Transparency/CS/DeviceRGB/I true>>/Contents 297 0 R>>
endobj
299 0 obj
-<</Type/Page/Parent 497 0 R/Resources 625 0 R/MediaBox[0 0 612 792]/Annots[
-408 0 R 409 0 R ]
+<</Type/Page/Parent 534 0 R/Resources 615 0 R/MediaBox[0 0 612 792]/Annots[
+433 0 R ]
/Group<</S/Transparency/CS/DeviceRGB/I true>>/Contents 300 0 R>>
endobj
302 0 obj
-<</Type/Page/Parent 497 0 R/Resources 625 0 R/MediaBox[0 0 612 792]/Group<</S/Transparency/CS/DeviceRGB/I true>>/Contents 303 0 R>>
+<</Type/Page/Parent 534 0 R/Resources 615 0 R/MediaBox[0 0 612 792]/Group<</S/Transparency/CS/DeviceRGB/I true>>/Contents 303 0 R>>
endobj
305 0 obj
-<</Type/Page/Parent 497 0 R/Resources 625 0 R/MediaBox[0 0 612 792]/Annots[
-407 0 R ]
+<</Type/Page/Parent 534 0 R/Resources 615 0 R/MediaBox[0 0 612 792]/Annots[
+432 0 R ]
/Group<</S/Transparency/CS/DeviceRGB/I true>>/Contents 306 0 R>>
endobj
308 0 obj
-<</Type/Page/Parent 497 0 R/Resources 625 0 R/MediaBox[0 0 612 792]/Annots[
-405 0 R 406 0 R ]
-/Group<</S/Transparency/CS/DeviceRGB/I true>>/Contents 309 0 R>>
+<</Type/Page/Parent 534 0 R/Resources 615 0 R/MediaBox[0 0 612 792]/Group<</S/Transparency/CS/DeviceRGB/I true>>/Contents 309 0 R>>
endobj
311 0 obj
-<</Type/Page/Parent 497 0 R/Resources 625 0 R/MediaBox[0 0 612 792]/Annots[
-402 0 R 403 0 R 404 0 R ]
+<</Type/Page/Parent 534 0 R/Resources 615 0 R/MediaBox[0 0 612 792]/Annots[
+431 0 R ]
/Group<</S/Transparency/CS/DeviceRGB/I true>>/Contents 312 0 R>>
endobj
314 0 obj
-<</Type/Page/Parent 497 0 R/Resources 625 0 R/MediaBox[0 0 612 792]/Group<</S/Transparency/CS/DeviceRGB/I true>>/Contents 315 0 R>>
+<</Type/Page/Parent 534 0 R/Resources 615 0 R/MediaBox[0 0 612 792]/Annots[
+429 0 R 430 0 R ]
+/Group<</S/Transparency/CS/DeviceRGB/I true>>/Contents 315 0 R>>
endobj
317 0 obj
-<</Type/Page/Parent 497 0 R/Resources 625 0 R/MediaBox[0 0 612 792]/Annots[
-398 0 R 399 0 R 400 0 R 401 0 R 494 0 R ]
-/Group<</S/Transparency/CS/DeviceRGB/I true>>/Contents 318 0 R>>
+<</Type/Page/Parent 534 0 R/Resources 615 0 R/MediaBox[0 0 612 792]/Group<</S/Transparency/CS/DeviceRGB/I true>>/Contents 318 0 R>>
endobj
320 0 obj
-<</Type/Page/Parent 497 0 R/Resources 625 0 R/MediaBox[0 0 612 792]/Group<</S/Transparency/CS/DeviceRGB/I true>>/Contents 321 0 R>>
+<</Type/Page/Parent 534 0 R/Resources 615 0 R/MediaBox[0 0 612 792]/Annots[
+428 0 R ]
+/Group<</S/Transparency/CS/DeviceRGB/I true>>/Contents 321 0 R>>
endobj
323 0 obj
-<</Type/Page/Parent 497 0 R/Resources 625 0 R/MediaBox[0 0 612 792]/Group<</S/Transparency/CS/DeviceRGB/I true>>/Contents 324 0 R>>
+<</Type/Page/Parent 534 0 R/Resources 615 0 R/MediaBox[0 0 612 792]/Annots[
+426 0 R 427 0 R ]
+/Group<</S/Transparency/CS/DeviceRGB/I true>>/Contents 324 0 R>>
endobj
326 0 obj
-<</Type/Page/Parent 497 0 R/Resources 625 0 R/MediaBox[0 0 612 792]/Group<</S/Transparency/CS/DeviceRGB/I true>>/Contents 327 0 R>>
+<</Type/Page/Parent 534 0 R/Resources 615 0 R/MediaBox[0 0 612 792]/Annots[
+423 0 R 424 0 R 425 0 R ]
+/Group<</S/Transparency/CS/DeviceRGB/I true>>/Contents 327 0 R>>
endobj
329 0 obj
-<</Type/Page/Parent 497 0 R/Resources 625 0 R/MediaBox[0 0 612 792]/Group<</S/Transparency/CS/DeviceRGB/I true>>/Contents 330 0 R>>
+<</Type/Page/Parent 534 0 R/Resources 615 0 R/MediaBox[0 0 612 792]/Group<</S/Transparency/CS/DeviceRGB/I true>>/Contents 330 0 R>>
endobj
332 0 obj
-<</Type/Page/Parent 497 0 R/Resources 625 0 R/MediaBox[0 0 612 792]/Group<</S/Transparency/CS/DeviceRGB/I true>>/Contents 333 0 R>>
+<</Type/Page/Parent 534 0 R/Resources 615 0 R/MediaBox[0 0 612 792]/Annots[
+420 0 R 421 0 R 422 0 R 531 0 R ]
+/Group<</S/Transparency/CS/DeviceRGB/I true>>/Contents 333 0 R>>
endobj
335 0 obj
-<</Type/Page/Parent 497 0 R/Resources 625 0 R/MediaBox[0 0 612 792]/Group<</S/Transparency/CS/DeviceRGB/I true>>/Contents 336 0 R>>
+<</Type/Page/Parent 534 0 R/Resources 615 0 R/MediaBox[0 0 612 792]/Annots[
+419 0 R ]
+/Group<</S/Transparency/CS/DeviceRGB/I true>>/Contents 336 0 R>>
endobj
338 0 obj
-<</Type/Page/Parent 497 0 R/Resources 625 0 R/MediaBox[0 0 612 792]/Group<</S/Transparency/CS/DeviceRGB/I true>>/Contents 339 0 R>>
+<</Type/Page/Parent 534 0 R/Resources 615 0 R/MediaBox[0 0 612 792]/Group<</S/Transparency/CS/DeviceRGB/I true>>/Contents 339 0 R>>
endobj
341 0 obj
-<</Type/Page/Parent 497 0 R/Resources 625 0 R/MediaBox[0 0 612 792]/Group<</S/Transparency/CS/DeviceRGB/I true>>/Contents 342 0 R>>
+<</Type/Page/Parent 534 0 R/Resources 615 0 R/MediaBox[0 0 612 792]/Group<</S/Transparency/CS/DeviceRGB/I true>>/Contents 342 0 R>>
endobj
344 0 obj
-<</Type/Page/Parent 497 0 R/Resources 625 0 R/MediaBox[0 0 612 792]/Group<</S/Transparency/CS/DeviceRGB/I true>>/Contents 345 0 R>>
+<</Type/Page/Parent 534 0 R/Resources 615 0 R/MediaBox[0 0 612 792]/Group<</S/Transparency/CS/DeviceRGB/I true>>/Contents 345 0 R>>
endobj
347 0 obj
-<</Type/Page/Parent 497 0 R/Resources 625 0 R/MediaBox[0 0 612 792]/Group<</S/Transparency/CS/DeviceRGB/I true>>/Contents 348 0 R>>
+<</Type/Page/Parent 534 0 R/Resources 615 0 R/MediaBox[0 0 612 792]/Group<</S/Transparency/CS/DeviceRGB/I true>>/Contents 348 0 R>>
endobj
350 0 obj
-<</Type/Page/Parent 497 0 R/Resources 625 0 R/MediaBox[0 0 612 792]/Annots[
-393 0 R 394 0 R 395 0 R 396 0 R 397 0 R ]
-/Group<</S/Transparency/CS/DeviceRGB/I true>>/Contents 351 0 R>>
+<</Type/Page/Parent 534 0 R/Resources 615 0 R/MediaBox[0 0 612 792]/Group<</S/Transparency/CS/DeviceRGB/I true>>/Contents 351 0 R>>
endobj
353 0 obj
-<</Type/Page/Parent 497 0 R/Resources 625 0 R/MediaBox[0 0 612 792]/Group<</S/Transparency/CS/DeviceRGB/I true>>/Contents 354 0 R>>
+<</Type/Page/Parent 534 0 R/Resources 615 0 R/MediaBox[0 0 612 792]/Group<</S/Transparency/CS/DeviceRGB/I true>>/Contents 354 0 R>>
endobj
356 0 obj
-<</Type/Page/Parent 497 0 R/Resources 625 0 R/MediaBox[0 0 612 792]/Annots[
-495 0 R 496 0 R ]
-/Group<</S/Transparency/CS/DeviceRGB/I true>>/Contents 357 0 R>>
+<</Type/Page/Parent 534 0 R/Resources 615 0 R/MediaBox[0 0 612 792]/Group<</S/Transparency/CS/DeviceRGB/I true>>/Contents 357 0 R>>
endobj
359 0 obj
-<</Type/Page/Parent 497 0 R/Resources 625 0 R/MediaBox[0 0 612 792]/Group<</S/Transparency/CS/DeviceRGB/I true>>/Contents 360 0 R>>
+<</Type/Page/Parent 534 0 R/Resources 615 0 R/MediaBox[0 0 612 792]/Group<</S/Transparency/CS/DeviceRGB/I true>>/Contents 360 0 R>>
endobj
362 0 obj
-<</Type/Page/Parent 497 0 R/Resources 625 0 R/MediaBox[0 0 612 792]/Group<</S/Transparency/CS/DeviceRGB/I true>>/Contents 363 0 R>>
+<</Type/Page/Parent 534 0 R/Resources 615 0 R/MediaBox[0 0 612 792]/Group<</S/Transparency/CS/DeviceRGB/I true>>/Contents 363 0 R>>
endobj
365 0 obj
-<</Type/Page/Parent 497 0 R/Resources 625 0 R/MediaBox[0 0 612 792]/Group<</S/Transparency/CS/DeviceRGB/I true>>/Contents 366 0 R>>
+<</Type/Page/Parent 534 0 R/Resources 615 0 R/MediaBox[0 0 612 792]/Group<</S/Transparency/CS/DeviceRGB/I true>>/Contents 366 0 R>>
endobj
368 0 obj
-<</Type/Page/Parent 497 0 R/Resources 625 0 R/MediaBox[0 0 612 792]/Group<</S/Transparency/CS/DeviceRGB/I true>>/Contents 369 0 R>>
+<</Type/Page/Parent 534 0 R/Resources 615 0 R/MediaBox[0 0 612 792]/Annots[
+414 0 R 415 0 R 416 0 R 417 0 R 418 0 R ]
+/Group<</S/Transparency/CS/DeviceRGB/I true>>/Contents 369 0 R>>
endobj
371 0 obj
-<</Type/Page/Parent 497 0 R/Resources 625 0 R/MediaBox[0 0 612 792]/Group<</S/Transparency/CS/DeviceRGB/I true>>/Contents 372 0 R>>
+<</Type/Page/Parent 534 0 R/Resources 615 0 R/MediaBox[0 0 612 792]/Group<</S/Transparency/CS/DeviceRGB/I true>>/Contents 372 0 R>>
endobj
374 0 obj
-<</Type/Page/Parent 497 0 R/Resources 625 0 R/MediaBox[0 0 612 792]/Annots[
-474 0 R 475 0 R 476 0 R ]
+<</Type/Page/Parent 534 0 R/Resources 615 0 R/MediaBox[0 0 612 792]/Annots[
+532 0 R 533 0 R ]
/Group<</S/Transparency/CS/DeviceRGB/I true>>/Contents 375 0 R>>
endobj
377 0 obj
-<</Type/Page/Parent 497 0 R/Resources 625 0 R/MediaBox[0 0 612 792]/Group<</S/Transparency/CS/DeviceRGB/I true>>/Contents 378 0 R>>
+<</Type/Page/Parent 534 0 R/Resources 615 0 R/MediaBox[0 0 612 792]/Group<</S/Transparency/CS/DeviceRGB/I true>>/Contents 378 0 R>>
endobj
380 0 obj
-<</Type/Page/Parent 497 0 R/Resources 625 0 R/MediaBox[0 0 612 792]/Group<</S/Transparency/CS/DeviceRGB/I true>>/Contents 381 0 R>>
+<</Type/Page/Parent 534 0 R/Resources 615 0 R/MediaBox[0 0 612 792]/Group<</S/Transparency/CS/DeviceRGB/I true>>/Contents 381 0 R>>
endobj
383 0 obj
-<</Type/Page/Parent 497 0 R/Resources 625 0 R/MediaBox[0 0 612 792]/Group<</S/Transparency/CS/DeviceRGB/I true>>/Contents 384 0 R>>
+<</Type/Page/Parent 534 0 R/Resources 615 0 R/MediaBox[0 0 612 792]/Group<</S/Transparency/CS/DeviceRGB/I true>>/Contents 384 0 R>>
endobj
386 0 obj
-<</Type/Page/Parent 497 0 R/Resources 625 0 R/MediaBox[0 0 612 792]/Group<</S/Transparency/CS/DeviceRGB/I true>>/Contents 387 0 R>>
+<</Type/Page/Parent 534 0 R/Resources 615 0 R/MediaBox[0 0 612 792]/Group<</S/Transparency/CS/DeviceRGB/I true>>/Contents 387 0 R>>
endobj
389 0 obj
-<</Type/Page/Parent 497 0 R/Resources 625 0 R/MediaBox[0 0 612 792]/Group<</S/Transparency/CS/DeviceRGB/I true>>/Contents 390 0 R>>
+<</Type/Page/Parent 534 0 R/Resources 615 0 R/MediaBox[0 0 612 792]/Group<</S/Transparency/CS/DeviceRGB/I true>>/Contents 390 0 R>>
endobj
-626 0 obj
-<</Count 118/First 627 0 R/Last 739 0 R
+392 0 obj
+<</Type/Page/Parent 534 0 R/Resources 615 0 R/MediaBox[0 0 612 792]/Annots[
+511 0 R 512 0 R 513 0 R ]
+/Group<</S/Transparency/CS/DeviceRGB/I true>>/Contents 393 0 R>>
+endobj
+
+395 0 obj
+<</Type/Page/Parent 534 0 R/Resources 615 0 R/MediaBox[0 0 612 792]/Group<</S/Transparency/CS/DeviceRGB/I true>>/Contents 396 0 R>>
+endobj
+
+398 0 obj
+<</Type/Page/Parent 534 0 R/Resources 615 0 R/MediaBox[0 0 612 792]/Group<</S/Transparency/CS/DeviceRGB/I true>>/Contents 399 0 R>>
+endobj
+
+401 0 obj
+<</Type/Page/Parent 534 0 R/Resources 615 0 R/MediaBox[0 0 612 792]/Group<</S/Transparency/CS/DeviceRGB/I true>>/Contents 402 0 R>>
+endobj
+
+404 0 obj
+<</Type/Page/Parent 534 0 R/Resources 615 0 R/MediaBox[0 0 612 792]/Group<</S/Transparency/CS/DeviceRGB/I true>>/Contents 405 0 R>>
+endobj
+
+407 0 obj
+<</Type/Page/Parent 534 0 R/Resources 615 0 R/MediaBox[0 0 612 792]/Group<</S/Transparency/CS/DeviceRGB/I true>>/Contents 408 0 R>>
+endobj
+
+410 0 obj
+<</Type/Page/Parent 534 0 R/Resources 615 0 R/MediaBox[0 0 612 792]/Group<</S/Transparency/CS/DeviceRGB/I true>>/Contents 411 0 R>>
+endobj
+
+616 0 obj
+<</Count 122/First 617 0 R/Last 733 0 R
>>
endobj
-627 0 obj
+617 0 obj
<</Count 0/Title<FEFF00540068006500200063006F007200650020006F00660020004A0042006F0073007300450053004200200069006E002000610020006E00750074007300680065006C006C>
-/Dest[45 0 R/XYZ 156.5 374.1 0]/Parent 626 0 R/Next 628 0 R>>
+/Dest[45 0 R/XYZ 156.5 322.3 0]/Parent 616 0 R/Next 618 0 R>>
endobj
-628 0 obj
+618 0 obj
<</Count 0/Title<FEFF00470065007400740069006E006700200061006E0064002000530065007400740069006E0067002000440061007400610020006F006E00200074006800650020004D00650073007300610067006500200042006F00640079>
-/Dest[66 0 R/XYZ 156.5 183.1 0]/Parent 626 0 R/Prev 627 0 R/Next 629 0 R>>
+/Dest[69 0 R/XYZ 156.5 682.3 0]/Parent 616 0 R/Prev 617 0 R/Next 619 0 R>>
endobj
-629 0 obj
+619 0 obj
<</Count 0/Title<FEFF0045007800740065006E00730069006F006E007300200074006F00200042006F00640079>
-/Dest[69 0 R/XYZ 156.5 579.5 0]/Parent 626 0 R/Prev 628 0 R/Next 630 0 R>>
+/Dest[69 0 R/XYZ 156.5 418.8 0]/Parent 616 0 R/Prev 618 0 R/Next 620 0 R>>
endobj
-630 0 obj
-<</Count 3/First 631 0 R/Last 633 0 R
+620 0 obj
+<</Count 3/First 621 0 R/Last 623 0 R
/Title<FEFF0054006800650020004D0065007300730061006700650020004800650061006400650072>
-/Dest[72 0 R/XYZ 156.5 585.5 0]/Parent 626 0 R/Prev 629 0 R/Next 634 0 R>>
+/Dest[72 0 R/XYZ 156.5 405.3 0]/Parent 616 0 R/Prev 619 0 R/Next 624 0 R>>
endobj
-631 0 obj
+621 0 obj
<</Count 0/Title<FEFF004C006F0067006900630061006C004500500052>
-/Dest[75 0 R/XYZ 174.5 203.1 0]/Parent 630 0 R/Next 632 0 R>>
+/Dest[78 0 R/XYZ 174.5 618.1 0]/Parent 620 0 R/Next 622 0 R>>
endobj
-632 0 obj
+622 0 obj
<</Count 0/Title<FEFF00440065006600610075006C00740020004600610075006C00740054006F>
-/Dest[78 0 R/XYZ 174.5 653 0]/Parent 630 0 R/Prev 631 0 R/Next 633 0 R>>
+/Dest[78 0 R/XYZ 174.5 409.2 0]/Parent 620 0 R/Prev 621 0 R/Next 623 0 R>>
endobj
-633 0 obj
+623 0 obj
<</Count 0/Title<FEFF00440065006600610075006C00740020005200650070006C00790054006F>
-/Dest[78 0 R/XYZ 174.5 504.4 0]/Parent 630 0 R/Prev 632 0 R>>
+/Dest[78 0 R/XYZ 174.5 249.4 0]/Parent 620 0 R/Prev 622 0 R>>
endobj
-634 0 obj
+624 0 obj
<</Count 0/Title<FEFF0054006800650020004D0065007300730061006700650020007000610079006C006F00610064>
-/Dest[78 0 R/XYZ 156.5 247.3 0]/Parent 626 0 R/Prev 630 0 R/Next 635 0 R>>
+/Dest[81 0 R/XYZ 156.5 596.9 0]/Parent 616 0 R/Prev 620 0 R/Next 625 0 R>>
endobj
-635 0 obj
+625 0 obj
<</Count 0/Title<FEFF0054006800650020004D0065007300730061006700650046006100630074006F00720079>
-/Dest[81 0 R/XYZ 156.5 457.7 0]/Parent 626 0 R/Prev 634 0 R/Next 636 0 R>>
+/Dest[81 0 R/XYZ 156.5 143.3 0]/Parent 616 0 R/Prev 624 0 R/Next 626 0 R>>
endobj
-636 0 obj
-<</Count 2/First 637 0 R/Last 638 0 R
+626 0 obj
+<</Count 2/First 627 0 R/Last 628 0 R
/Title<FEFF004D00650073007300610067006500200046006F0072006D006100740073>
-/Dest[84 0 R/XYZ 156.5 382.2 0]/Parent 626 0 R/Prev 635 0 R/Next 639 0 R>>
+/Dest[87 0 R/XYZ 156.5 682 0]/Parent 616 0 R/Prev 625 0 R/Next 629 0 R>>
endobj
-637 0 obj
+627 0 obj
<</Count 0/Title<FEFF004D0065007300730061006700650054007900700065002E004A004100560041005F00530045005200490041004C0049005A00450044>
-/Dest[84 0 R/XYZ 174.5 318.1 0]/Parent 636 0 R/Next 638 0 R>>
+/Dest[87 0 R/XYZ 174.5 612.6 0]/Parent 626 0 R/Next 628 0 R>>
endobj
-638 0 obj
+628 0 obj
<</Count 0/Title<FEFF004D0065007300730061006700650054007900700065002E004A0042004F00530053005F0058004D004C>
-/Dest[84 0 R/XYZ 174.5 257.4 0]/Parent 636 0 R/Prev 637 0 R>>
+/Dest[87 0 R/XYZ 174.5 546.5 0]/Parent 626 0 R/Prev 627 0 R>>
endobj
-639 0 obj
+629 0 obj
<</Count 0/Title<FEFF004C0069007300740065006E006500720073>
-/Dest[90 0 R/XYZ 156.5 569.4 0]/Parent 626 0 R/Prev 636 0 R/Next 640 0 R>>
+/Dest[90 0 R/XYZ 156.5 559.9 0]/Parent 616 0 R/Prev 626 0 R/Next 630 0 R>>
endobj
-640 0 obj
-<</Count 3/First 641 0 R/Last 643 0 R
+630 0 obj
+<</Count 3/First 631 0 R/Last 633 0 R
/Title<FEFF004E006F0074006900660069006500720073>
-/Dest[90 0 R/XYZ 156.5 467.3 0]/Parent 626 0 R/Prev 639 0 R/Next 644 0 R>>
+/Dest[90 0 R/XYZ 156.5 448.8 0]/Parent 616 0 R/Prev 629 0 R/Next 634 0 R>>
endobj
-641 0 obj
+631 0 obj
<</Count 0/Title<FEFF0041006300740069006F006E007300200061006E00640020004D0065007300730061006700650073>
-/Dest[102 0 R/XYZ 156.5 518.2 0]/Parent 640 0 R/Next 642 0 R>>
+/Dest[102 0 R/XYZ 156.5 408.7 0]/Parent 630 0 R/Next 632 0 R>>
endobj
-642 0 obj
+632 0 obj
<</Count 0/Title<FEFF00480061006E0064006C0069006E006700200072006500730070006F006E007300650073>
-/Dest[102 0 R/XYZ 156.5 169.3 0]/Parent 640 0 R/Prev 641 0 R/Next 643 0 R>>
+/Dest[105 0 R/XYZ 156.5 682 0]/Parent 630 0 R/Prev 631 0 R/Next 633 0 R>>
endobj
-643 0 obj
+633 0 obj
<</Count 0/Title<FEFF004500720072006F0072002000680061006E0064006C0069006E00670020007700680065006E002000700072006F00630065007300730069006E006700200061006300740069006F006E0073>
-/Dest[105 0 R/XYZ 156.5 487 0]/Parent 640 0 R/Prev 642 0 R>>
+/Dest[105 0 R/XYZ 156.5 338.4 0]/Parent 630 0 R/Prev 632 0 R>>
endobj
-644 0 obj
-<</Count 7/First 645 0 R/Last 646 0 R
+634 0 obj
+<</Count 11/First 635 0 R/Last 643 0 R
/Title<FEFF00530065007200760069006300650049006E0076006F006B00650072>
-/Dest[114 0 R/XYZ 156.5 625.9 0]/Parent 626 0 R/Prev 640 0 R/Next 652 0 R>>
+/Dest[114 0 R/XYZ 156.5 396.8 0]/Parent 616 0 R/Prev 630 0 R/Next 646 0 R>>
endobj
-645 0 obj
+635 0 obj
<</Count 0/Title<FEFF0053006500720076006900630065007300200061006E0064002000530065007200760069006300650049006E0076006F006B00650072>
-/Dest[117 0 R/XYZ 156.5 720 0]/Parent 644 0 R/Next 646 0 R>>
+/Dest[117 0 R/XYZ 156.5 442.8 0]/Parent 634 0 R/Next 636 0 R>>
endobj
-646 0 obj
-<</Count 5/First 647 0 R/Last 651 0 R
+636 0 obj
+<</Count 6/First 637 0 R/Last 642 0 R
/Title<FEFF0049006E0056004D0020005400720061006E00730070006F00720074>
-/Dest[117 0 R/XYZ 156.5 544.8 0]/Parent 644 0 R/Prev 645 0 R>>
+/Dest[117 0 R/XYZ 156.5 254.7 0]/Parent 634 0 R/Prev 635 0 R/Next 643 0 R>>
endobj
-647 0 obj
+637 0 obj
<</Count 0/Title<FEFF0049006E0056004D002000530063006F00700065>
-/Dest[117 0 R/XYZ 174.5 312.1 0]/Parent 646 0 R/Next 648 0 R>>
+/Dest[120 0 R/XYZ 174.5 504.9 0]/Parent 636 0 R/Next 638 0 R>>
endobj
-648 0 obj
+638 0 obj
+<</Count 0/Title<FEFF0049006E0056004D0020005400720061006E007300610063007400650064>
+/Dest[120 0 R/XYZ 174.5 173.2 0]/Parent 636 0 R/Prev 637 0 R/Next 639 0 R>>
+endobj
+
+639 0 obj
+<</Count 0/Title<FEFF005400720061006E00730061006300740069006F006E002000530065006D0061006E0074006900630073>
+/Dest[123 0 R/XYZ 174.5 639.8 0]/Parent 636 0 R/Prev 638 0 R/Next 640 0 R>>
+endobj
+
+640 0 obj
<</Count 0/Title<FEFF004C006F0063006B002D0073007400650070002000440065006C00690076006500720079>
-/Dest[120 0 R/XYZ 174.5 646.6 0]/Parent 646 0 R/Prev 647 0 R/Next 649 0 R>>
+/Dest[123 0 R/XYZ 174.5 300.4 0]/Parent 636 0 R/Prev 639 0 R/Next 641 0 R>>
endobj
-649 0 obj
+641 0 obj
<</Count 0/Title<FEFF004C006F00610064002000420061006C0061006E00630069006E0067>
-/Dest[120 0 R/XYZ 174.5 331.3 0]/Parent 646 0 R/Prev 648 0 R/Next 650 0 R>>
+/Dest[126 0 R/XYZ 174.5 603.1 0]/Parent 636 0 R/Prev 640 0 R/Next 642 0 R>>
endobj
-650 0 obj
-<</Count 0/Title<FEFF005400720061006E00730061006300740069006F006E002000530065006D0061006E0074006900630073>
-/Dest[120 0 R/XYZ 174.5 202.7 0]/Parent 646 0 R/Prev 649 0 R/Next 651 0 R>>
+642 0 obj
+<</Count 0/Title<FEFF0050006100730073002D00620079002D00560061006C00750065002F0050006100730073002D00620079002D005200650066006500720065006E00630065>
+/Dest[126 0 R/XYZ 174.5 462.6 0]/Parent 636 0 R/Prev 641 0 R>>
endobj
-651 0 obj
-<</Count 0/Title<FEFF0050006100730073002D00620079002D00560061006C00750065002F0050006100730073002D00620079002D005200650066006500720065006E00630065>
-/Dest[123 0 R/XYZ 174.5 533.4 0]/Parent 646 0 R/Prev 650 0 R>>
+643 0 obj
+<</Count 2/First 644 0 R/Last 645 0 R
+/Title<FEFF005300650072007600690063006500200043006F006E0074007200610063007400200044006500660069006E006900740069006F006E>
+/Dest[126 0 R/XYZ 156.5 281.8 0]/Parent 634 0 R/Prev 636 0 R>>
endobj
-652 0 obj
+644 0 obj
+<</Count 0/Title<FEFF004D006500730073006100670065002000760061006C00690064006100740069006F006E>
+/Dest[129 0 R/XYZ 174.5 578.1 0]/Parent 643 0 R/Next 645 0 R>>
+endobj
+
+645 0 obj
+<</Count 0/Title<FEFF004500780070006F00730069006E006700200061006E0020004500530042002000730065007200760069006300650020006100730020006100200077006500620073006500720076006900630065002000200020>
+/Dest[129 0 R/XYZ 174.5 477.9 0]/Parent 643 0 R/Prev 644 0 R>>
+endobj
+
+646 0 obj
<</Count 0/Title<FEFF0054006800650020004D006500730073006100670065002000530074006F00720065>
-/Dest[126 0 R/XYZ 156.5 546.9 0]/Parent 626 0 R/Prev 644 0 R/Next 653 0 R>>
+/Dest[132 0 R/XYZ 156.5 535.8 0]/Parent 616 0 R/Prev 634 0 R/Next 647 0 R>>
endobj
-653 0 obj
+647 0 obj
<</Count 0/Title<FEFF00440061007400610020005400720061006E00730066006F0072006D006100740069006F006E>
-/Dest[126 0 R/XYZ 156.5 388.6 0]/Parent 626 0 R/Prev 652 0 R/Next 654 0 R>>
+/Dest[132 0 R/XYZ 156.5 363.7 0]/Parent 616 0 R/Prev 646 0 R/Next 648 0 R>>
endobj
-654 0 obj
+648 0 obj
<</Count 0/Title<FEFF0043006F006E00740065006E0074002D0062006100730065006400200052006F007500740069006E0067>
-/Dest[126 0 R/XYZ 156.5 210.9 0]/Parent 626 0 R/Prev 653 0 R/Next 655 0 R>>
+/Dest[132 0 R/XYZ 156.5 171 0]/Parent 616 0 R/Prev 647 0 R/Next 649 0 R>>
endobj
-655 0 obj
+649 0 obj
<</Count 0/Title<FEFF005400680065002000520065006700690073007400720079>
-/Dest[129 0 R/XYZ 156.5 720 0]/Parent 626 0 R/Prev 654 0 R/Next 656 0 R>>
+/Dest[135 0 R/XYZ 156.5 684.5 0]/Parent 616 0 R/Prev 648 0 R/Next 650 0 R>>
endobj
-656 0 obj
+650 0 obj
<</Count 0/Title<FEFF0054006800650020004D0065007300730061006700650020007300740072007500630074007500720065>
-/Dest[132 0 R/XYZ 156.5 233 0]/Parent 626 0 R/Prev 655 0 R/Next 657 0 R>>
+/Dest[138 0 R/XYZ 156.5 208.3 0]/Parent 616 0 R/Prev 649 0 R/Next 651 0 R>>
endobj
-657 0 obj
-<</Count 1/First 658 0 R/Last 658 0 R
+651 0 obj
+<</Count 1/First 652 0 R/Last 652 0 R
/Title<FEFF00540068006500200053006500720076006900630065>
-/Dest[135 0 R/XYZ 156.5 220.6 0]/Parent 626 0 R/Prev 656 0 R/Next 659 0 R>>
+/Dest[141 0 R/XYZ 156.5 164.6 0]/Parent 616 0 R/Prev 650 0 R/Next 653 0 R>>
endobj
-658 0 obj
+652 0 obj
<</Count 0/Title<FEFF0055006E007000690063006B0069006E006700200074006800650020007000610079006C006F00610064>
-/Dest[138 0 R/XYZ 156.5 375.7 0]/Parent 657 0 R>>
+/Dest[144 0 R/XYZ 156.5 301.2 0]/Parent 651 0 R>>
endobj
-659 0 obj
+653 0 obj
<</Count 0/Title<FEFF00540068006500200043006C00690065006E0074>
-/Dest[141 0 R/XYZ 156.5 615.4 0]/Parent 626 0 R/Prev 657 0 R/Next 660 0 R>>
+/Dest[147 0 R/XYZ 156.5 523.7 0]/Parent 616 0 R/Prev 651 0 R/Next 654 0 R>>
endobj
-660 0 obj
+654 0 obj
<</Count 0/Title<FEFF00480069006E0074007300200061006E006400200054006900700073>
-/Dest[141 0 R/XYZ 156.5 167.5 0]/Parent 626 0 R/Prev 659 0 R/Next 661 0 R>>
+/Dest[150 0 R/XYZ 156.5 682.1 0]/Parent 616 0 R/Prev 653 0 R/Next 655 0 R>>
endobj
-661 0 obj
+655 0 obj
<</Count 0/Title<FEFF00530065007200760069006300650073002C00200045005000520073002C0020006C0069007300740065006E00650072007300200061006E006400200061006300740069006F006E0073>
-/Dest[147 0 R/XYZ 156.5 420 0]/Parent 626 0 R/Prev 660 0 R/Next 662 0 R>>
+/Dest[153 0 R/XYZ 156.5 396.4 0]/Parent 616 0 R/Prev 654 0 R/Next 656 0 R>>
endobj
-662 0 obj
+656 0 obj
<</Count 0/Title<FEFF005200650070006C006900630061007400650064002000530065007200760069006300650073>
-/Dest[150 0 R/XYZ 156.5 562.8 0]/Parent 626 0 R/Prev 661 0 R/Next 663 0 R>>
+/Dest[156 0 R/XYZ 156.5 523.3 0]/Parent 616 0 R/Prev 655 0 R/Next 657 0 R>>
endobj
-663 0 obj
+657 0 obj
<</Count 0/Title<FEFF00460069006700750072006500200037002D0032003A002000540077006F0020007300650072007600690063006500200069006E007300740061006E00630065002000650061006300680020006F006E0020006100200064006900660066006500720065006E00740020006E006F00640065002E>
-/Dest[150 0 R/XYZ 156.5 449.7 0]/Parent 626 0 R/Prev 662 0 R/Next 664 0 R>>
+/Dest[156 0 R/XYZ 156.5 399.7 0]/Parent 616 0 R/Prev 656 0 R/Next 658 0 R>>
endobj
-664 0 obj
+658 0 obj
<</Count 0/Title<FEFF00500072006F0074006F0063006F006C00200043006C007500730074006500720069006E0067>
-/Dest[153 0 R/XYZ 156.5 720 0]/Parent 626 0 R/Prev 663 0 R/Next 665 0 R>>
+/Dest[159 0 R/XYZ 156.5 671 0]/Parent 616 0 R/Prev 657 0 R/Next 659 0 R>>
endobj
-665 0 obj
+659 0 obj
<</Count 0/Title<FEFF0043006C007500730074006500720069006E0067>
-/Dest[153 0 R/XYZ 156.5 360.3 0]/Parent 626 0 R/Prev 664 0 R/Next 666 0 R>>
+/Dest[159 0 R/XYZ 156.5 283.1 0]/Parent 616 0 R/Prev 658 0 R/Next 660 0 R>>
endobj
-666 0 obj
+660 0 obj
<</Count 0/Title<FEFF004300680061006E006E0065006C0020004600610069006C002D006F00760065007200200061006E00640020004C006F00610064002000420061006C0061006E00630069006E0067>
-/Dest[153 0 R/XYZ 156.5 203.9 0]/Parent 626 0 R/Prev 665 0 R/Next 667 0 R>>
+/Dest[162 0 R/XYZ 156.5 720 0]/Parent 616 0 R/Prev 659 0 R/Next 661 0 R>>
endobj
-667 0 obj
+661 0 obj
<</Count 0/Title<FEFF00530069006D0070006C00650020005300630068006500640075006C0065>
-/Dest[159 0 R/XYZ 156.5 267.3 0]/Parent 626 0 R/Prev 666 0 R/Next 668 0 R>>
+/Dest[168 0 R/XYZ 156.5 684.5 0]/Parent 616 0 R/Prev 660 0 R/Next 662 0 R>>
endobj
-668 0 obj
+662 0 obj
<</Count 0/Title<FEFF00430072006F006E0020005300630068006500640075006C0065>
-/Dest[162 0 R/XYZ 156.5 653.6 0]/Parent 626 0 R/Prev 667 0 R/Next 669 0 R>>
+/Dest[168 0 R/XYZ 156.5 397.5 0]/Parent 616 0 R/Prev 661 0 R/Next 663 0 R>>
endobj
-669 0 obj
+663 0 obj
<</Count 0/Title<FEFF005300630068006500640075006C006500640020004C0069007300740065006E00650072>
-/Dest[162 0 R/XYZ 156.5 401.6 0]/Parent 626 0 R/Prev 668 0 R/Next 670 0 R>>
+/Dest[168 0 R/XYZ 156.5 125 0]/Parent 616 0 R/Prev 662 0 R/Next 664 0 R>>
endobj
-670 0 obj
+664 0 obj
<</Count 0/Title<FEFF004500780061006D0070006C006500200043006F006E00660069006700750072006100740069006F006E0073>
-/Dest[165 0 R/XYZ 156.5 686.9 0]/Parent 626 0 R/Prev 669 0 R/Next 671 0 R>>
+/Dest[171 0 R/XYZ 156.5 405.8 0]/Parent 616 0 R/Prev 663 0 R/Next 665 0 R>>
endobj
-671 0 obj
+665 0 obj
<</Count 0/Title<FEFF00510075006100720074007A0020005300630068006500640075006C00650072002000500072006F0070006500720074007900200043006F006E00660069006700750072006100740069006F006E>
-/Dest[165 0 R/XYZ 156.5 435.3 0]/Parent 626 0 R/Prev 670 0 R/Next 672 0 R>>
+/Dest[171 0 R/XYZ 156.5 141.2 0]/Parent 616 0 R/Prev 664 0 R/Next 666 0 R>>
endobj
-672 0 obj
+666 0 obj
<</Count 0/Title<FEFF004A0042006F0073007300450053004200200061006E006400200074006800650020004600610075006C00740020004D006F00640065006C0073>
-/Dest[171 0 R/XYZ 156.5 330.7 0]/Parent 626 0 R/Prev 671 0 R/Next 673 0 R>>
+/Dest[180 0 R/XYZ 156.5 280 0]/Parent 616 0 R/Prev 665 0 R/Next 667 0 R>>
endobj
-673 0 obj
+667 0 obj
<</Count 0/Title<FEFF004600610069006C0075007200650020004400650074006500630074006F0072007300200061006E00640020004600610069006C00750072006500200053007500730070006500630074006F00720073>
-/Dest[174 0 R/XYZ 156.5 313.3 0]/Parent 626 0 R/Prev 672 0 R/Next 674 0 R>>
+/Dest[183 0 R/XYZ 156.5 207 0]/Parent 616 0 R/Prev 666 0 R/Next 668 0 R>>
endobj
-674 0 obj
+668 0 obj
<</Count 0/Title<FEFF004D0065007300730061006700650020006C006F00730073>
-/Dest[180 0 R/XYZ 156.5 686.9 0]/Parent 626 0 R/Prev 673 0 R/Next 675 0 R>>
+/Dest[189 0 R/XYZ 156.5 502.4 0]/Parent 616 0 R/Prev 667 0 R/Next 669 0 R>>
endobj
-675 0 obj
+669 0 obj
<</Count 0/Title<FEFF00530075007300700065006300740069006E006700200045006E00640070006F0069006E00740020004600610069006C0075007200650073>
-/Dest[183 0 R/XYZ 156.5 720 0]/Parent 626 0 R/Prev 674 0 R/Next 676 0 R>>
+/Dest[192 0 R/XYZ 156.5 465.9 0]/Parent 616 0 R/Prev 668 0 R/Next 670 0 R>>
endobj
-676 0 obj
+670 0 obj
<</Count 0/Title<FEFF0053007500700070006F00720074006500640020004300720061007300680020004600610069006C0075007200650020004D006F006400650073>
-/Dest[183 0 R/XYZ 156.5 630.2 0]/Parent 626 0 R/Prev 675 0 R/Next 677 0 R>>
+/Dest[192 0 R/XYZ 156.5 368.3 0]/Parent 616 0 R/Prev 669 0 R/Next 671 0 R>>
endobj
-677 0 obj
-<</Count 4/First 678 0 R/Last 681 0 R
+671 0 obj
+<</Count 4/First 672 0 R/Last 675 0 R
/Title<FEFF0043006F006D0070006F006E0065006E00740020005300700065006300690066006900630073>
-/Dest[183 0 R/XYZ 156.5 540.3 0]/Parent 626 0 R/Prev 676 0 R/Next 682 0 R>>
+/Dest[192 0 R/XYZ 156.5 270.6 0]/Parent 616 0 R/Prev 670 0 R/Next 676 0 R>>
endobj
-678 0 obj
+672 0 obj
<</Count 0/Title<FEFF00470061007400650077006100790073>
-/Dest[183 0 R/XYZ 156.5 499.4 0]/Parent 677 0 R/Next 679 0 R>>
+/Dest[192 0 R/XYZ 156.5 226.7 0]/Parent 671 0 R/Next 673 0 R>>
endobj
-679 0 obj
+673 0 obj
<</Count 0/Title<FEFF00530065007200760069006300650049006E0076006F006B00650072>
-/Dest[183 0 R/XYZ 156.5 420.2 0]/Parent 677 0 R/Prev 678 0 R/Next 680 0 R>>
+/Dest[192 0 R/XYZ 156.5 141 0]/Parent 671 0 R/Prev 672 0 R/Next 674 0 R>>
endobj
-680 0 obj
+674 0 obj
<</Count 0/Title<FEFF004A004D0053002000420072006F006B00650072>
-/Dest[183 0 R/XYZ 156.5 327.5 0]/Parent 677 0 R/Prev 679 0 R/Next 681 0 R>>
+/Dest[195 0 R/XYZ 156.5 684.4 0]/Parent 671 0 R/Prev 673 0 R/Next 675 0 R>>
endobj
-681 0 obj
+675 0 obj
<</Count 0/Title<FEFF0041006300740069006F006E00200050006900700065006C0069006E0069006E0067>
-/Dest[183 0 R/XYZ 156.5 273.3 0]/Parent 677 0 R/Prev 680 0 R>>
+/Dest[195 0 R/XYZ 156.5 625.6 0]/Parent 671 0 R/Prev 674 0 R>>
endobj
-682 0 obj
+676 0 obj
<</Count 0/Title<FEFF00500072006F007600690064006500720073>
-/Dest[195 0 R/XYZ 156.5 715 0]/Parent 626 0 R/Prev 677 0 R/Next 683 0 R>>
+/Dest[204 0 R/XYZ 156.5 715 0]/Parent 616 0 R/Prev 671 0 R/Next 677 0 R>>
endobj
-683 0 obj
+677 0 obj
<</Count 0/Title<FEFF00530065007200760069006300650073>
-/Dest[198 0 R/XYZ 156.5 715 0]/Parent 626 0 R/Prev 682 0 R/Next 684 0 R>>
+/Dest[207 0 R/XYZ 156.5 715 0]/Parent 616 0 R/Prev 676 0 R/Next 678 0 R>>
endobj
-684 0 obj
+678 0 obj
<</Count 0/Title<FEFF005400720061006E00730070006F007200740020005300700065006300690066006900630020005400790070006500200049006D0070006C0065006D0065006E0074006100740069006F006E0073>
-/Dest[209 0 R/XYZ 156.5 701.7 0]/Parent 626 0 R/Prev 683 0 R/Next 685 0 R>>
+/Dest[218 0 R/XYZ 156.5 662.9 0]/Parent 616 0 R/Prev 677 0 R/Next 679 0 R>>
endobj
-685 0 obj
+679 0 obj
<</Count 0/Title<FEFF004A004D00530020004D006500730073006100670065002000660069006C00740065007200200063006F006E00660069006700750072006100740069006F006E>
-/Dest[212 0 R/XYZ 156.5 320.4 0]/Parent 626 0 R/Prev 684 0 R/Next 686 0 R>>
+/Dest[221 0 R/XYZ 156.5 242 0]/Parent 616 0 R/Prev 678 0 R/Next 680 0 R>>
endobj
-686 0 obj
+680 0 obj
<</Count 0/Title<FEFF004600540050002000200063006F006E00660069006700750072006100740069006F006E0020>
-/Dest[215 0 R/XYZ 156.5 502 0]/Parent 626 0 R/Prev 685 0 R/Next 687 0 R>>
+/Dest[224 0 R/XYZ 156.5 391.7 0]/Parent 616 0 R/Prev 679 0 R/Next 681 0 R>>
endobj
-687 0 obj
+681 0 obj
<</Count 0/Title<FEFF0046005400500020004C0069007300740065006E0065007200200063006F006E00660069006700750072006100740069006F006E0020>
-/Dest[218 0 R/XYZ 156.5 366.2 0]/Parent 626 0 R/Prev 686 0 R/Next 688 0 R>>
+/Dest[227 0 R/XYZ 156.5 182.9 0]/Parent 616 0 R/Prev 680 0 R/Next 682 0 R>>
endobj
-688 0 obj
+682 0 obj
<</Count 0/Title<FEFF0052006500610064002D006F006E006C007900200046005400500020004C0069007300740065006E00650072>
-/Dest[218 0 R/XYZ 156.5 313.1 0]/Parent 626 0 R/Prev 687 0 R/Next 689 0 R>>
+/Dest[230 0 R/XYZ 156.5 720 0]/Parent 616 0 R/Prev 681 0 R/Next 683 0 R>>
endobj
-689 0 obj
+683 0 obj
<</Count 0/Title<FEFF0052006500610064002D006F006E006C007900200046005400500020004C0069007300740065006E0065007200200043006F006E00660069006700750072006100740069006F006E0020>
-/Dest[221 0 R/XYZ 156.5 720 0]/Parent 626 0 R/Prev 688 0 R/Next 690 0 R>>
+/Dest[230 0 R/XYZ 156.5 486.9 0]/Parent 616 0 R/Prev 682 0 R/Next 684 0 R>>
endobj
-690 0 obj
-<</Count 1/First 691 0 R/Last 691 0 R
+684 0 obj
+<</Count 1/First 685 0 R/Last 685 0 R
/Title<FEFF005400720061006E0073006900740069006F006E0069006E0067002000460072006F006D00200054006800650020004F006C006400200043006F006E00660069006700750072006100740069006F006E0020004D006F00640065006C>
-/Dest[227 0 R/XYZ 156.5 715 0]/Parent 626 0 R/Prev 689 0 R/Next 692 0 R>>
+/Dest[236 0 R/XYZ 156.5 715 0]/Parent 616 0 R/Prev 683 0 R/Next 686 0 R>>
endobj
-691 0 obj
+685 0 obj
<</Count 0/Title<FEFF0043006F006E00660069006700750072006100740069006F006E>
-/Dest[227 0 R/XYZ 156.5 270.6 0]/Parent 690 0 R>>
+/Dest[236 0 R/XYZ 156.5 231.6 0]/Parent 684 0 R>>
endobj
-692 0 obj
+686 0 obj
<</Count 0/Title<FEFF0042007900740065004100720072006100790054006F0053007400720069006E0067>
-/Dest[236 0 R/XYZ 156.5 499.5 0]/Parent 626 0 R/Prev 690 0 R/Next 693 0 R>>
+/Dest[245 0 R/XYZ 156.5 484.3 0]/Parent 616 0 R/Prev 684 0 R/Next 687 0 R>>
endobj
-693 0 obj
+687 0 obj
<</Count 0/Title<FEFF004C006F006E00670054006F00440061007400650043006F006E007600650072007400650072>
-/Dest[236 0 R/XYZ 156.5 331.6 0]/Parent 626 0 R/Prev 692 0 R/Next 694 0 R>>
+/Dest[245 0 R/XYZ 156.5 303.8 0]/Parent 616 0 R/Prev 686 0 R/Next 688 0 R>>
endobj
-694 0 obj
+688 0 obj
<</Count 0/Title<FEFF004F0062006A0065006300740049006E0076006F006B0065>
-/Dest[236 0 R/XYZ 156.5 154.7 0]/Parent 626 0 R/Prev 693 0 R/Next 695 0 R>>
+/Dest[248 0 R/XYZ 156.5 696.8 0]/Parent 616 0 R/Prev 687 0 R/Next 689 0 R>>
endobj
-695 0 obj
+689 0 obj
<</Count 0/Title<FEFF004F0062006A0065006300740054006F0043005300560053007400720069006E0067>
-/Dest[239 0 R/XYZ 156.5 545.2 0]/Parent 626 0 R/Prev 694 0 R/Next 696 0 R>>
+/Dest[248 0 R/XYZ 156.5 423.2 0]/Parent 616 0 R/Prev 688 0 R/Next 690 0 R>>
endobj
-696 0 obj
+690 0 obj
<</Count 0/Title<FEFF004F0062006A0065006300740054006F005800530074007200650061006D>
-/Dest[242 0 R/XYZ 156.5 715 0]/Parent 626 0 R/Prev 695 0 R/Next 697 0 R>>
+/Dest[251 0 R/XYZ 156.5 715 0]/Parent 616 0 R/Prev 689 0 R/Next 691 0 R>>
endobj
-697 0 obj
+691 0 obj
<</Count 0/Title<FEFF005800530074007200650061006D0054006F004F0062006A006500630074>
-/Dest[245 0 R/XYZ 156.5 701.6 0]/Parent 626 0 R/Prev 696 0 R/Next 698 0 R>>
+/Dest[254 0 R/XYZ 156.5 641.1 0]/Parent 616 0 R/Prev 690 0 R/Next 692 0 R>>
endobj
-698 0 obj
+692 0 obj
<</Count 0/Title<FEFF0053006D006F006F006B0073005400720061006E00730066006F0072006D00650072>
-/Dest[245 0 R/XYZ 156.5 169.9 0]/Parent 626 0 R/Prev 697 0 R/Next 699 0 R>>
+/Dest[257 0 R/XYZ 156.5 696.8 0]/Parent 616 0 R/Prev 691 0 R/Next 693 0 R>>
endobj
-699 0 obj
-<</Count 5/First 700 0 R/Last 704 0 R
+693 0 obj
+<</Count 5/First 694 0 R/Last 698 0 R
/Title<FEFF0053006D006F006F006B00730041006300740069006F006E>
-/Dest[251 0 R/XYZ 156.5 715 0]/Parent 626 0 R/Prev 698 0 R/Next 705 0 R>>
+/Dest[260 0 R/XYZ 156.5 715 0]/Parent 616 0 R/Prev 692 0 R/Next 699 0 R>>
endobj
-700 0 obj
+694 0 obj
<</Count 0/Title<FEFF0053006D006F006F006B00730041006300740069006F006E00200043006F006E00660069006700750072006100740069006F006E>
-/Dest[251 0 R/XYZ 156.5 524.9 0]/Parent 699 0 R/Next 701 0 R>>
+/Dest[260 0 R/XYZ 156.5 508.7 0]/Parent 693 0 R/Next 695 0 R>>
endobj
-701 0 obj
+695 0 obj
<</Count 0/Title<FEFF004D00650073007300610067006500200049006E0070007500740020005000610079006C006F00610064>
-/Dest[251 0 R/XYZ 156.5 146.6 0]/Parent 699 0 R/Prev 700 0 R/Next 702 0 R>>
+/Dest[263 0 R/XYZ 156.5 720 0]/Parent 693 0 R/Prev 694 0 R/Next 696 0 R>>
endobj
-702 0 obj
+696 0 obj
<</Count 0/Title<FEFF0058004D004C002C0020004500440049002C0020004300530056002000650074006300200049006E0070007500740020005000610079006C006F006100640073>
-/Dest[254 0 R/XYZ 156.5 642.9 0]/Parent 699 0 R/Prev 701 0 R/Next 703 0 R>>
+/Dest[263 0 R/XYZ 156.5 573.9 0]/Parent 693 0 R/Prev 695 0 R/Next 697 0 R>>
endobj
-703 0 obj
+697 0 obj
<</Count 0/Title<FEFF004A00610076006100200049006E0070007500740020005000610079006C006F00610064>
-/Dest[254 0 R/XYZ 156.5 454.7 0]/Parent 699 0 R/Prev 702 0 R/Next 704 0 R>>
+/Dest[263 0 R/XYZ 156.5 372.2 0]/Parent 693 0 R/Prev 696 0 R/Next 698 0 R>>
endobj
-704 0 obj
+698 0 obj
<</Count 0/Title<FEFF00530070006500630069006600790069006E0067002000740068006500200052006500730075006C007400200054007900700065>
-/Dest[254 0 R/XYZ 156.5 388.3 0]/Parent 699 0 R/Prev 703 0 R>>
+/Dest[263 0 R/XYZ 156.5 300.6 0]/Parent 693 0 R/Prev 697 0 R>>
endobj
-705 0 obj
+699 0 obj
<</Count 0/Title<FEFF00500065007200730069007300740041006300740069006F006E>
-/Dest[254 0 R/XYZ 156.5 151.1 0]/Parent 626 0 R/Prev 699 0 R/Next 706 0 R>>
+/Dest[266 0 R/XYZ 156.5 686.2 0]/Parent 616 0 R/Prev 693 0 R/Next 700 0 R>>
endobj
-706 0 obj
+700 0 obj
<</Count 0/Title<FEFF0042007500730069006E006500730073002000500072006F00630065007300730020004D0061006E006100670065006D0065006E0074>
-/Dest[260 0 R/XYZ 156.5 715 0]/Parent 626 0 R/Prev 705 0 R/Next 707 0 R>>
+/Dest[269 0 R/XYZ 156.5 715 0]/Parent 616 0 R/Prev 699 0 R/Next 701 0 R>>
endobj
-707 0 obj
+701 0 obj
<</Count 0/Title<FEFF006A00420050004D0020002D002000420070006D00500072006F0063006500730073006F0072>
-/Dest[260 0 R/XYZ 156.5 674.1 0]/Parent 626 0 R/Prev 706 0 R/Next 708 0 R>>
+/Dest[269 0 R/XYZ 156.5 671.1 0]/Parent 616 0 R/Prev 700 0 R/Next 702 0 R>>
endobj
-708 0 obj
+702 0 obj
<</Count 0/Title<FEFF00470072006F006F007600790041006300740069006F006E00500072006F0063006500730073006F0072>
-/Dest[266 0 R/XYZ 156.5 668.2 0]/Parent 626 0 R/Prev 707 0 R/Next 709 0 R>>
+/Dest[278 0 R/XYZ 156.5 664 0]/Parent 616 0 R/Prev 701 0 R/Next 703 0 R>>
endobj
-709 0 obj
+703 0 obj
<</Count 0/Title<FEFF0053006300720069007000740069006E00670041006300740069006F006E>
-/Dest[266 0 R/XYZ 156.5 473.8 0]/Parent 626 0 R/Prev 708 0 R/Next 710 0 R>>
+/Dest[278 0 R/XYZ 156.5 370.3 0]/Parent 616 0 R/Prev 702 0 R/Next 704 0 R>>
endobj
-710 0 obj
+704 0 obj
<</Count 0/Title<FEFF0045004A004200500072006F0063006500730073006F0072>
-/Dest[269 0 R/XYZ 156.5 680.4 0]/Parent 626 0 R/Prev 709 0 R/Next 711 0 R>>
+/Dest[284 0 R/XYZ 156.5 677.4 0]/Parent 616 0 R/Prev 703 0 R/Next 705 0 R>>
endobj
-711 0 obj
+705 0 obj
<</Count 0/Title<FEFF00410067006700720065006700610074006F0072>
-/Dest[272 0 R/XYZ 156.5 668.2 0]/Parent 626 0 R/Prev 710 0 R/Next 712 0 R>>
+/Dest[287 0 R/XYZ 156.5 664 0]/Parent 616 0 R/Prev 704 0 R/Next 706 0 R>>
endobj
-712 0 obj
+706 0 obj
<</Count 0/Title<FEFF004500630068006F0052006F0075007400650072>
-/Dest[272 0 R/XYZ 156.5 360.6 0]/Parent 626 0 R/Prev 711 0 R/Next 713 0 R>>
+/Dest[287 0 R/XYZ 156.5 334 0]/Parent 616 0 R/Prev 705 0 R/Next 707 0 R>>
endobj
-713 0 obj
+707 0 obj
<</Count 0/Title<FEFF00480074007400700052006F0075007400650072>
-/Dest[272 0 R/XYZ 156.5 293.6 0]/Parent 626 0 R/Prev 712 0 R/Next 714 0 R>>
+/Dest[287 0 R/XYZ 156.5 262.1 0]/Parent 616 0 R/Prev 706 0 R/Next 708 0 R>>
endobj
-714 0 obj
+708 0 obj
<</Count 0/Title<FEFF004A004D00530052006F0075007400650072>
-/Dest[272 0 R/XYZ 156.5 191.5 0]/Parent 626 0 R/Prev 713 0 R/Next 715 0 R>>
+/Dest[287 0 R/XYZ 156.5 151 0]/Parent 616 0 R/Prev 707 0 R/Next 709 0 R>>
endobj
-715 0 obj
+709 0 obj
<</Count 0/Title<FEFF0043006F006E00740065006E0074004200610073006500640052006F0075007400650072>
-/Dest[278 0 R/XYZ 156.5 715 0]/Parent 626 0 R/Prev 714 0 R/Next 716 0 R>>
+/Dest[293 0 R/XYZ 156.5 715 0]/Parent 616 0 R/Prev 708 0 R/Next 710 0 R>>
endobj
-716 0 obj
+710 0 obj
<</Count 0/Title<FEFF0053007400610074006900630052006F0075007400650072>
-/Dest[281 0 R/XYZ 156.5 715 0]/Parent 626 0 R/Prev 715 0 R/Next 717 0 R>>
+/Dest[296 0 R/XYZ 156.5 715 0]/Parent 616 0 R/Prev 709 0 R/Next 711 0 R>>
endobj
-717 0 obj
+711 0 obj
<</Count 0/Title<FEFF0053007400610074006900630057006900720065007400610070>
-/Dest[284 0 R/XYZ 156.5 715 0]/Parent 626 0 R/Prev 716 0 R/Next 718 0 R>>
+/Dest[299 0 R/XYZ 156.5 715 0]/Parent 616 0 R/Prev 710 0 R/Next 712 0 R>>
endobj
-718 0 obj
-<</Count 4/First 719 0 R/Last 722 0 R
+712 0 obj
+<</Count 4/First 713 0 R/Last 716 0 R
/Title<FEFF0053004F0041005000500072006F0063006500730073006F0072>
-/Dest[296 0 R/XYZ 156.5 429.5 0]/Parent 626 0 R/Prev 717 0 R/Next 723 0 R>>
+/Dest[311 0 R/XYZ 156.5 204.6 0]/Parent 616 0 R/Prev 711 0 R/Next 717 0 R>>
endobj
-719 0 obj
+713 0 obj
<</Count 0/Title<FEFF0044006500700065006E00640065006E0063006900650073>
-/Dest[296 0 R/XYZ 156.5 295.7 0]/Parent 718 0 R/Next 720 0 R>>
+/Dest[314 0 R/XYZ 156.5 684.4 0]/Parent 712 0 R/Next 714 0 R>>
endobj
-720 0 obj
+714 0 obj
<</Count 0/Title<FEFF00220045005300420020004D00650073007300610067006500200041007700610072006500220020005700650062007300650072007600690063006500200045006E00640070006F0069006E00740073>
-/Dest[296 0 R/XYZ 156.5 214.2 0]/Parent 718 0 R/Prev 719 0 R/Next 721 0 R>>
+/Dest[314 0 R/XYZ 156.5 599.3 0]/Parent 712 0 R/Prev 713 0 R/Next 715 0 R>>
endobj
-721 0 obj
+715 0 obj
<</Count 0/Title<FEFF005700650062007300650072007600690063006500200045006E00640070006F0069006E00740020004400650070006C006F0079006D0065006E0074>
-/Dest[296 0 R/XYZ 156.5 123.3 0]/Parent 718 0 R/Prev 720 0 R/Next 722 0 R>>
+/Dest[314 0 R/XYZ 156.5 500.1 0]/Parent 712 0 R/Prev 714 0 R/Next 716 0 R>>
endobj
-722 0 obj
+716 0 obj
<</Count 0/Title<FEFF0045006E00640070006F0069006E00740020005000750062006C0069007300680069006E0067>
-/Dest[299 0 R/XYZ 156.5 662.4 0]/Parent 718 0 R/Prev 721 0 R>>
+/Dest[314 0 R/XYZ 156.5 387.4 0]/Parent 712 0 R/Prev 715 0 R>>
endobj
-723 0 obj
-<</Count 5/First 724 0 R/Last 728 0 R
+717 0 obj
+<</Count 5/First 718 0 R/Last 722 0 R
/Title<FEFF0053004F004100500043006C00690065006E0074>
-/Dest[299 0 R/XYZ 156.5 603.3 0]/Parent 626 0 R/Prev 718 0 R/Next 729 0 R>>
+/Dest[314 0 R/XYZ 156.5 322.8 0]/Parent 616 0 R/Prev 712 0 R/Next 723 0 R>>
endobj
-724 0 obj
+718 0 obj
<</Count 0/Title<FEFF004F007000740069006F006E0061006C002000500072006F0070006500720074006900650073>
-/Dest[299 0 R/XYZ 156.5 468.4 0]/Parent 723 0 R/Next 725 0 R>>
+/Dest[314 0 R/XYZ 156.5 180.4 0]/Parent 717 0 R/Next 719 0 R>>
endobj
-725 0 obj
-<</Count 1/First 726 0 R/Last 726 0 R
+719 0 obj
+<</Count 1/First 720 0 R/Last 720 0 R
/Title<FEFF0053004F004100500020004F007000650072006100740069006F006E00200050006100720061006D00650074006500720073>
-/Dest[302 0 R/XYZ 156.5 527.7 0]/Parent 723 0 R/Prev 724 0 R/Next 727 0 R>>
+/Dest[317 0 R/XYZ 156.5 170.3 0]/Parent 717 0 R/Prev 718 0 R/Next 721 0 R>>
endobj
-726 0 obj
+720 0 obj
<</Count 0/Title<FEFF004A00410058004200200041006E006E006F0074006100740069006F006E00200049006E00740072006F00640075006300740069006F006E0073>
-/Dest[308 0 R/XYZ 174.5 717.9 0]/Parent 725 0 R>>
+/Dest[323 0 R/XYZ 174.5 717.8 0]/Parent 719 0 R>>
endobj
-727 0 obj
+721 0 obj
<</Count 0/Title<FEFF0041006300740069006F006E00200043006F006E00660069006700750072006100740069006F006E>
-/Dest[308 0 R/XYZ 156.5 553.3 0]/Parent 723 0 R/Prev 725 0 R/Next 728 0 R>>
+/Dest[323 0 R/XYZ 156.5 543.9 0]/Parent 717 0 R/Prev 719 0 R/Next 722 0 R>>
endobj
-728 0 obj
+722 0 obj
<</Count 0/Title<FEFF0051007500690063006B007300740061007200740073>
-/Dest[308 0 R/XYZ 156.5 352 0]/Parent 723 0 R/Prev 727 0 R>>
+/Dest[323 0 R/XYZ 156.5 329.5 0]/Parent 717 0 R/Prev 721 0 R>>
endobj
-729 0 obj
-<</Count 3/First 730 0 R/Last 732 0 R
+723 0 obj
+<</Count 3/First 724 0 R/Last 726 0 R
/Title<FEFF0053004F004100500043006C00690065006E0074>
-/Dest[311 0 R/XYZ 156.5 715 0]/Parent 626 0 R/Prev 723 0 R/Next 733 0 R>>
+/Dest[326 0 R/XYZ 156.5 715 0]/Parent 616 0 R/Prev 717 0 R/Next 727 0 R>>
endobj
-730 0 obj
+724 0 obj
<</Count 0/Title<FEFF0045006E00640070006F0069006E00740020004F007000650072006100740069006F006E002000530070006500630069006600690063006100740069006F006E>
-/Dest[311 0 R/XYZ 156.5 642.4 0]/Parent 729 0 R/Next 731 0 R>>
+/Dest[326 0 R/XYZ 156.5 637 0]/Parent 723 0 R/Next 725 0 R>>
endobj
-731 0 obj
+725 0 obj
<</Count 0/Title<FEFF0053004F00410050002000520065007100750065007300740020004D00650073007300610067006500200043006F006E0073007400720075006300740069006F006E>
-/Dest[311 0 R/XYZ 156.5 511.5 0]/Parent 729 0 R/Prev 730 0 R/Next 732 0 R>>
+/Dest[326 0 R/XYZ 156.5 500.2 0]/Parent 723 0 R/Prev 724 0 R/Next 726 0 R>>
endobj
-732 0 obj
+726 0 obj
<</Count 0/Title<FEFF0053004F0041005000200052006500730070006F006E007300650020004D00650073007300610067006500200043006F006E00730075006D007000740069006F006E>
-/Dest[317 0 R/XYZ 156.5 467.2 0]/Parent 729 0 R/Prev 731 0 R>>
+/Dest[332 0 R/XYZ 156.5 380.7 0]/Parent 723 0 R/Prev 725 0 R>>
endobj
-733 0 obj
+727 0 obj
<</Count 0/Title<FEFF00530079007300740065006D005000720069006E0074006C006E>
-/Dest[323 0 R/XYZ 156.5 680.4 0]/Parent 626 0 R/Prev 729 0 R/Next 734 0 R>>
+/Dest[341 0 R/XYZ 156.5 677.4 0]/Parent 616 0 R/Prev 723 0 R/Next 728 0 R>>
endobj
-734 0 obj
-<</Count 1/First 735 0 R/Last 735 0 R
+728 0 obj
+<</Count 1/First 729 0 R/Last 729 0 R
/Title<FEFF0047006100740065007700610079002000440061007400610020004D0061007000700069006E00670073>
-/Dest[338 0 R/XYZ 156.5 396.3 0]/Parent 626 0 R/Prev 733 0 R/Next 736 0 R>>
+/Dest[356 0 R/XYZ 156.5 386.7 0]/Parent 616 0 R/Prev 727 0 R/Next 730 0 R>>
endobj
-735 0 obj
+729 0 obj
<</Count 0/Title<FEFF0048006F007700200074006F0020006300680061006E00670065002000740068006500200047006100740065007700610079002000440061007400610020004D0061007000700069006E00670073>
-/Dest[341 0 R/XYZ 156.5 720 0]/Parent 734 0 R>>
+/Dest[359 0 R/XYZ 156.5 720 0]/Parent 728 0 R>>
endobj
-736 0 obj
+730 0 obj
<</Count 0/Title<FEFF0043006F006E00660069006700750072006100740069006F006E>
-/Dest[344 0 R/XYZ 156.5 396.4 0]/Parent 626 0 R/Prev 734 0 R/Next 737 0 R>>
+/Dest[362 0 R/XYZ 156.5 359.4 0]/Parent 616 0 R/Prev 728 0 R/Next 731 0 R>>
endobj
-737 0 obj
+731 0 obj
<</Count 0/Title<FEFF00570068007900200053004F0041003F>
-/Dest[359 0 R/XYZ 156.5 122 0]/Parent 626 0 R/Prev 736 0 R/Next 738 0 R>>
+/Dest[380 0 R/XYZ 156.5 695.5 0]/Parent 616 0 R/Prev 730 0 R/Next 732 0 R>>
endobj
-738 0 obj
+732 0 obj
<</Count 0/Title<FEFF0042006100730069006300730020006F006600200053004F0041>
-/Dest[365 0 R/XYZ 156.5 375.6 0]/Parent 626 0 R/Prev 737 0 R/Next 739 0 R>>
+/Dest[383 0 R/XYZ 156.5 275.7 0]/Parent 616 0 R/Prev 731 0 R/Next 733 0 R>>
endobj
-739 0 obj
-<</Count 5/First 740 0 R/Last 744 0 R
+733 0 obj
+<</Count 5/First 734 0 R/Last 738 0 R
/Title<FEFF0041006400760061006E007400610067006500730020006F006600200053004F0041>
-/Dest[365 0 R/XYZ 156.5 133.6 0]/Parent 626 0 R/Prev 738 0 R>>
+/Dest[386 0 R/XYZ 156.5 681.1 0]/Parent 616 0 R/Prev 732 0 R>>
endobj
-740 0 obj
+734 0 obj
<</Count 0/Title<FEFF0049006E007400650072006F007000650072006100620069006C006900740079>
-/Dest[368 0 R/XYZ 156.5 720 0]/Parent 739 0 R/Next 741 0 R>>
+/Dest[386 0 R/XYZ 156.5 609.5 0]/Parent 733 0 R/Next 735 0 R>>
endobj
-741 0 obj
+735 0 obj
<</Count 0/Title<FEFF0045006600660069006300690065006E006300790020>
-/Dest[368 0 R/XYZ 156.5 422.2 0]/Parent 739 0 R/Prev 740 0 R/Next 742 0 R>>
+/Dest[386 0 R/XYZ 156.5 287.7 0]/Parent 733 0 R/Prev 734 0 R/Next 736 0 R>>
endobj
-742 0 obj
+736 0 obj
<</Count 0/Title<FEFF005300740061006E00640061007200640069007A006100740069006F006E>
-/Dest[368 0 R/XYZ 156.5 268.5 0]/Parent 739 0 R/Prev 741 0 R/Next 743 0 R>>
+/Dest[386 0 R/XYZ 156.5 122 0]/Parent 733 0 R/Prev 735 0 R/Next 737 0 R>>
endobj
-743 0 obj
+737 0 obj
<</Count 0/Title<FEFF0053007400610074006500660075006C006C00200061006E0064002000530074006100740065006C006500730073002000730065007200760069006300650073>
-/Dest[368 0 R/XYZ 156.5 140.2 0]/Parent 739 0 R/Prev 742 0 R/Next 744 0 R>>
+/Dest[389 0 R/XYZ 156.5 630.6 0]/Parent 733 0 R/Prev 736 0 R/Next 738 0 R>>
endobj
-744 0 obj
+738 0 obj
<</Count 0/Title<FEFF004A0042006F0073007300450053004200200061006E00640020006900740073002000720065006C006100740069006F006E00730068006900700020007700690074006800200053004F0041>
-/Dest[374 0 R/XYZ 156.5 476.4 0]/Parent 739 0 R/Prev 743 0 R>>
+/Dest[392 0 R/XYZ 156.5 238.7 0]/Parent 733 0 R/Prev 737 0 R>>
endobj
-497 0 obj
+534 0 obj
<</Type/Pages
-/Resources 625 0 R
+/Resources 615 0 R
/MediaBox[ 0 0 595 842 ]
/Kids[ 1 0 R 4 0 R 7 0 R 10 0 R 13 0 R 16 0 R 19 0 R 22 0 R 25 0 R 28 0 R 32 0 R 36 0 R 39 0 R 42 0 R 45 0 R 48 0 R
51 0 R 54 0 R 57 0 R 60 0 R 63 0 R 66 0 R 69 0 R 72 0 R 75 0 R 78 0 R 81 0 R 84 0 R 87 0 R 90 0 R 93 0 R 96 0 R
99 0 R 102 0 R 105 0 R 108 0 R 111 0 R 114 0 R 117 0 R 120 0 R 123 0 R 126 0 R 129 0 R 132 0 R 135 0 R 138 0 R 141 0 R 144 0 R
147 0 R 150 0 R 153 0 R 156 0 R 159 0 R 162 0 R 165 0 R 168 0 R 171 0 R 174 0 R 177 0 R 180 0 R 183 0 R 186 0 R 189 0 R 192 0 R
-195 0 R 198 0 R 201 0 R 206 0 R 209 0 R 212 0 R 215 0 R 218 0 R 221 0 R 224 0 R 227 0 R 230 0 R 233 0 R 236 0 R 239 0 R 242 0 R
+195 0 R 198 0 R 201 0 R 204 0 R 207 0 R 210 0 R 215 0 R 218 0 R 221 0 R 224 0 R 227 0 R 230 0 R 233 0 R 236 0 R 239 0 R 242 0 R
245 0 R 248 0 R 251 0 R 254 0 R 257 0 R 260 0 R 263 0 R 266 0 R 269 0 R 272 0 R 275 0 R 278 0 R 281 0 R 284 0 R 287 0 R 290 0 R
293 0 R 296 0 R 299 0 R 302 0 R 305 0 R 308 0 R 311 0 R 314 0 R 317 0 R 320 0 R 323 0 R 326 0 R 329 0 R 332 0 R 335 0 R 338 0 R
341 0 R 344 0 R 347 0 R 350 0 R 353 0 R 356 0 R 359 0 R 362 0 R 365 0 R 368 0 R 371 0 R 374 0 R 377 0 R 380 0 R 383 0 R 386 0 R
-389 0 R ]
-/Count 129>>
+389 0 R 392 0 R 395 0 R 398 0 R 401 0 R 404 0 R 407 0 R 410 0 R ]
+/Count 136>>
endobj
-392 0 obj
-<</Type/Annot/Subtype/Link/Border[0 0 0]/Rect[148.4 386 334.7 393.8]/A<</Type/Action/S/URI/URI(http://anonsvn.labs.jboss.com/labs/jbossesb/)>>
+413 0 obj
+<</Type/Annot/Subtype/Link/Border[0 0 0]/Rect[148.4 362.1 334.7 370.3]/A<</Type/Action/S/URI/URI(http://anonsvn.labs.jboss.com/labs/jbossesb/)>>
>>
endobj
-393 0 obj
-<</Type/Annot/Subtype/Link/Border[0 0 0]/Rect[139.9 459.5 222.5 472.4]/A<</Type/Action/S/URI/URI(https://jaxb.dev.java.net/nonav/2.1.3/docs/api/javax/xml/bind/annotation/XmlAttribute.html)>>
->>
-endobj
-
-394 0 obj
-<</Type/Annot/Subtype/Link/Border[0 0 0]/Rect[139.9 479.5 219.5 492.4]/A<</Type/Action/S/URI/URI(https://jaxb.dev.java.net/nonav/2.1.3/docs/api/javax/xml/bind/annotation/XmlElement.html)>>
->>
-endobj
-
-395 0 obj
-<</Type/Annot/Subtype/Link/Border[0 0 0]/Rect[139.9 499.6 200.9 512.5]/A<</Type/Action/S/URI/URI(https://jaxb.dev.java.net/nonav/2.1.3/docs/api/javax/xml/bind/annotation/XmlType.html)>>
->>
-endobj
-
-396 0 obj
-<</Type/Annot/Subtype/Link/Border[0 0 0]/Rect[201.8 539.7 402.6 552.6]/A<</Type/Action/S/URI/URI(http://www.jboss.org/xsd/jaxb/intros)>>
->>
-endobj
-
-397 0 obj
-<</Type/Annot/Subtype/Link/Border[0 0 0]/Rect[283.8 552.5 373.2 565.4]/A<</Type/Action/S/URI/URI(http://anonsvn.labs.jboss.com/labs/jbossesb/trunk/product/extras/jaxbintros/src/main/resources/jaxb-intros.xsd)>>
->>
-endobj
-
-398 0 obj
-<</Type/Annot/Subtype/Link/Border[0 0 0]/Rect[131.1 211.1 172.1 223.4]/A<</Type/Action/S/URI/URI(http://xstream.codehaus.org/)>>
->>
-endobj
-
-399 0 obj
-<</Type/Annot/Subtype/Link/Border[0 0 0]/Rect[406.2 306.2 447.2 318.5]/A<</Type/Action/S/URI/URI(http://xstream.codehaus.org/)>>
->>
-endobj
-
-400 0 obj
-<</Type/Annot/Subtype/Link/Border[0 0 0]/Rect[48.1 72 113.2 85.3]/Dest[317 0 R/XYZ 112.4 85.3 0]>>
-endobj
-
-401 0 obj
-<</Type/Annot/Subtype/Link/Border[0 0 0]/Rect[422 85.3 522.8 98.6]/Dest[317 0 R/XYZ 112.4 85.3 0]>>
-endobj
-
-402 0 obj
-<</Type/Annot/Subtype/Link/Border[0 0 0]/Rect[177.8 297.5 210 309.8]/A<</Type/Action/S/URI/URI(http://www.ognl.org/)>>
->>
-endobj
-
-403 0 obj
-<</Type/Annot/Subtype/Link/Border[0 0 0]/Rect[180.4 360.9 212.6 373.2]/A<</Type/Action/S/URI/URI(http://www.ognl.org/)>>
->>
-endobj
-
-404 0 obj
-<</Type/Annot/Subtype/Link/Border[0 0 0]/Rect[142.6 663.3 176 675.6]/A<</Type/Action/S/URI/URI(http://www.soapui.org/)>>
->>
-endobj
-
-405 0 obj
-<</Type/Annot/Subtype/Link/Border[0 0 0]/Rect[259.2 562 312.6 574.9]/Dest[308 0 R/XYZ 311.8 574.9 0]>>
-endobj
-
-406 0 obj
-<</Type/Annot/Subtype/Link/Border[0 0 0]/Rect[285.7 627.8 330.7 640.1]/Dest[308 0 R/XYZ 329.9 640.1 0]>>
-endobj
-
-407 0 obj
-<</Type/Annot/Subtype/Link/Border[0 0 0]/Rect[333.5 578.8 371.7 591.1]/A<</Type/Action/S/URI/URI(http://www.javalinuxlabs.org/wise/index.html)>>
->>
-endobj
-
-408 0 obj
-<</Type/Annot/Subtype/Link/Border[0 0 0]/Rect[312.7 494.9 487 505.1]/A<</Type/Action/S/URI/URI(http://www.acme.com/OrderManagement/SendSalesOrderNotification)>>
->>
-endobj
-
-409 0 obj
-<</Type/Annot/Subtype/Link/Border[0 0 0]/Rect[280.3 505.1 481.6 515.3]/A<</Type/Action/S/URI/URI(http://localhost:8080/acme/services/OrderManagement?wsdl)>>
->>
-endobj
-
-410 0 obj
-<</Type/Annot/Subtype/Link/Border[0 0 0]/Rect[205.6 484.4 399.1 493.8]/A<</Type/Action/S/URI/URI(ftp://username:pwd@server.com/remote/dir)>>
->>
-endobj
-
-411 0 obj
-<</Type/Annot/Subtype/Link/Border[0 0 0]/Rect[205.6 287.2 399.1 296.6]/A<</Type/Action/S/URI/URI(ftp://username:pwd@server.com/remote/dir)>>
->>
-endobj
-
-412 0 obj
-<</Type/Annot/Subtype/Link/Border[0 0 0]/Rect[189.3 507.8 245.3 520.1]/Dest[272 0 R/XYZ 156.5 668.2 0]>>
-endobj
-
-413 0 obj
-<</Type/Annot/Subtype/Link/Border[0 0 0]/Rect[189.3 520 245.3 532.3]/Dest[272 0 R/XYZ 156.5 668.2 0]>>
-endobj
-
414 0 obj
-<</Type/Annot/Subtype/Link/Border[0 0 0]/Rect[120.6 319.4 237.9 331.7]/A<</Type/Action/S/URI/URI(file:///Documents and Settings/Tom Fennelly/Local Settings/Temp/services/ContentBasedRouting.pdf)>>
+<</Type/Annot/Subtype/Link/Border[0 0 0]/Rect[139.9 454.3 222.9 467.2]/A<</Type/Action/S/URI/URI(https://jaxb.dev.java.net/nonav/2.1.3/docs/api/javax/xml/bind/annotation/XmlAttribute.html)>>
>>
endobj
415 0 obj
-<</Type/Annot/Subtype/Link/Border[0 0 0]/Rect[189.3 471 245.3 483.3]/Dest[272 0 R/XYZ 156.5 668.2 0]>>
+<</Type/Annot/Subtype/Link/Border[0 0 0]/Rect[139.9 474.3 219.7 487.2]/A<</Type/Action/S/URI/URI(https://jaxb.dev.java.net/nonav/2.1.3/docs/api/javax/xml/bind/annotation/XmlElement.html)>>
+>>
endobj
416 0 obj
-<</Type/Annot/Subtype/Link/Border[0 0 0]/Rect[216.2 455.2 273.2 467.5]/Dest[281 0 R/XYZ 156.5 715 0]>>
+<</Type/Annot/Subtype/Link/Border[0 0 0]/Rect[139.9 494.4 200.9 507.3]/A<</Type/Action/S/URI/URI(https://jaxb.dev.java.net/nonav/2.1.3/docs/api/javax/xml/bind/annotation/XmlType.html)>>
+>>
endobj
417 0 obj
-<</Type/Annot/Subtype/Link/Border[0 0 0]/Rect[101.9 455.2 196 467.5]/Dest[278 0 R/XYZ 156.5 715 0]>>
+<</Type/Annot/Subtype/Link/Border[0 0 0]/Rect[201.8 534.5 402.6 547.4]/A<</Type/Action/S/URI/URI(http://www.jboss.org/xsd/jaxb/intros)>>
+>>
endobj
418 0 obj
-<</Type/Annot/Subtype/Link/Border[0 0 0]/Rect[101.9 623.7 134.8 636]/A<</Type/Action/S/URI/URI(http://www.enterpriseintegrationpatterns.com/Aggregator.html)>>
+<</Type/Annot/Subtype/Link/Border[0 0 0]/Rect[283.5 547.3 372 560.2]/A<</Type/Action/S/URI/URI(http://anonsvn.labs.jboss.com/labs/jbossesb/trunk/product/extras/jaxbintros/src/main/resources/jaxb-intros.xsd)>>
>>
endobj
419 0 obj
-<</Type/Annot/Subtype/Link/Border[0 0 0]/Rect[350.6 635.9 522.8 648.2]/A<</Type/Action/S/URI/URI(http://www.enterpriseintegrationpatterns.com/Aggregator.html)>>
+<</Type/Annot/Subtype/Link/Border[0 0 0]/Rect[131.1 706.5 171.9 720]/A<</Type/Action/S/URI/URI(http://xstream.codehaus.org/)>>
>>
endobj
420 0 obj
-<</Type/Annot/Subtype/Link/Border[0 0 0]/Rect[152.3 635.9 187.6 648.2]/A<</Type/Action/S/URI/URI(http://groovy.codehaus.org/)>>
+<</Type/Annot/Subtype/Link/Border[0 0 0]/Rect[405.6 206.5 446.4 221]/A<</Type/Action/S/URI/URI(http://xstream.codehaus.org/)>>
>>
endobj
421 0 obj
-<</Type/Annot/Subtype/Link/Border[0 0 0]/Rect[323.2 409.2 375.2 421.5]/A<</Type/Action/S/URI/URI(http://milyn.codehaus.org/javadoc/v1.0/smooks/org/milyn/payload/JavaSource.html)>>
->>
+<</Type/Annot/Subtype/Link/Border[0 0 0]/Rect[48.1 72 113.5 86.7]/Dest[332 0 R/XYZ 112.7 86.7 0]>>
endobj
422 0 obj
-<</Type/Annot/Subtype/Link/Border[0 0 0]/Rect[118.9 463.4 147.5 475.7]/A<</Type/Action/S/URI/URI(http://milyn.codehaus.org/Smooks+User+Guide)>>
->>
+<</Type/Annot/Subtype/Link/Border[0 0 0]/Rect[421.8 86.6 522.8 101.3]/Dest[332 0 R/XYZ 112.7 86.7 0]>>
endobj
423 0 obj
-<</Type/Annot/Subtype/Link/Border[0 0 0]/Rect[461.2 475.6 522.7 487.9]/A<</Type/Action/S/URI/URI(http://milyn.codehaus.org/Smooks+User+Guide)>>
+<</Type/Annot/Subtype/Link/Border[0 0 0]/Rect[177.5 270.2 209.5 283.7]/A<</Type/Action/S/URI/URI(http://www.ognl.org/)>>
>>
endobj
424 0 obj
-<</Type/Annot/Subtype/Link/Border[0 0 0]/Rect[154.9 539 187.9 551.3]/A<</Type/Action/S/URI/URI(http://java.sun.com/j2se/1.5.0/docs/api/java/io/Reader.html)>>
+<</Type/Annot/Subtype/Link/Border[0 0 0]/Rect[180.4 339.4 212.4 352.9]/A<</Type/Action/S/URI/URI(http://www.ognl.org/)>>
>>
endobj
425 0 obj
-<</Type/Annot/Subtype/Link/Border[0 0 0]/Rect[154.9 558.5 211.2 570.8]/A<</Type/Action/S/URI/URI(http://java.sun.com/j2se/1.5.0/docs/api/java/io/InputStream.html)>>
+<</Type/Annot/Subtype/Link/Border[0 0 0]/Rect[142.5 659.1 175.9 672.6]/A<</Type/Action/S/URI/URI(http://www.soapui.org/)>>
>>
endobj
426 0 obj
-<</Type/Annot/Subtype/Link/Border[0 0 0]/Rect[226.5 663.8 306.8 676.1]/A<</Type/Action/S/URI/URI(http://milyn.codehaus.org/javadoc/v1.0/smooks/org/milyn/container/plugin/PayloadProcessor.html)>>
->>
+<</Type/Annot/Subtype/Link/Border[0 0 0]/Rect[259 552.5 312.3 565.4]/Dest[323 0 R/XYZ 311.6 565.4 0]>>
endobj
427 0 obj
-<</Type/Annot/Subtype/Link/Border[0 0 0]/Rect[271.5 174.7 377.7 184.8]/A<</Type/Action/S/URI/URI(http://milyn.codehaus.org/Smooks+User+Guide#SmooksUserGuide-CheckingtheSmooksExecutionProcess)>>
->>
+<</Type/Annot/Subtype/Link/Border[0 0 0]/Rect[285.4 618.3 330.4 631.8]/Dest[323 0 R/XYZ 329.7 631.8 0]>>
endobj
428 0 obj
-<</Type/Annot/Subtype/Link/Border[0 0 0]/Rect[290.1 286.8 399.5 296.9]/Dest[254 0 R/XYZ 156.5 388.3 0]>>
+<</Type/Annot/Subtype/Link/Border[0 0 0]/Rect[333.6 146.5 371.7 160]/A<</Type/Action/S/URI/URI(http://www.javalinuxlabs.org/wise/index.html)>>
+>>
endobj
429 0 obj
-<</Type/Annot/Subtype/Link/Border[0 0 0]/Rect[271.5 342.8 344 352.9]/A<</Type/Action/S/URI/URI(http://milyn.codehaus.org/javadoc/v1.0/smooks/org/milyn/container/ExecutionContext.html)>>
+<</Type/Annot/Subtype/Link/Border[0 0 0]/Rect[312.7 207.6 487 218.2]/A<</Type/Action/S/URI/URI(http://www.acme.com/OrderManagement/SendSalesOrderNotification)>>
>>
endobj
430 0 obj
-<</Type/Annot/Subtype/Link/Border[0 0 0]/Rect[190.4 533.6 270.4 545.9]/A<</Type/Action/S/URI/URI(http://milyn.codehaus.org/Tutorials)>>
+<</Type/Annot/Subtype/Link/Border[0 0 0]/Rect[280.3 218.2 481.6 228.8]/A<</Type/Action/S/URI/URI(http://localhost:8080/acme/services/OrderManagement?wsdl)>>
>>
endobj
431 0 obj
-<</Type/Annot/Subtype/Link/Border[0 0 0]/Rect[443.7 545.8 519.9 558.1]/A<</Type/Action/S/URI/URI(http://milyn.codehaus.org/Smooks+Documentation)>>
+<</Type/Annot/Subtype/Link/Border[0 0 0]/Rect[205.6 262.6 399.1 272]/A<</Type/Action/S/URI/URI(ftp://username:pwd@server.com/remote/dir)>>
>>
endobj
432 0 obj
-<</Type/Annot/Subtype/Link/Border[0 0 0]/Rect[101.9 602 182.2 614.3]/A<</Type/Action/S/URI/URI(http://milyn.codehaus.org/javadoc/v1.0/smooks/org/milyn/container/plugin/PayloadProcessor.html)>>
+<</Type/Annot/Subtype/Link/Border[0 0 0]/Rect[205.6 162.7 399.1 172.1]/A<</Type/Action/S/URI/URI(ftp://username:pwd@server.com/remote/dir)>>
>>
endobj
433 0 obj
-<</Type/Annot/Subtype/Link/Border[0 0 0]/Rect[339.5 626.5 419.8 638.8]/A<</Type/Action/S/URI/URI(http://milyn.codehaus.org/javadoc/v1.0/smooks/org/milyn/container/plugin/PayloadProcessor.html)>>
->>
+<</Type/Annot/Subtype/Link/Border[0 0 0]/Rect[189.2 489 245.3 502.8]/Dest[287 0 R/XYZ 156.5 664 0]>>
endobj
434 0 obj
-<</Type/Annot/Subtype/Link/Border[0 0 0]/Rect[241.7 658.2 334.4 670.5]/Dest[245 0 R/XYZ 156.5 169.9 0]>>
+<</Type/Annot/Subtype/Link/Border[0 0 0]/Rect[189.2 501.8 245.3 515.6]/Dest[287 0 R/XYZ 156.5 664 0]>>
endobj
435 0 obj
-<</Type/Annot/Subtype/Link/Border[0 0 0]/Rect[341.6 261 368.8 273.3]/A<</Type/Action/S/URI/URI(http://wiki.jboss.org/wiki/Wiki.jsp?page=MessageTransformation)>>
+<</Type/Annot/Subtype/Link/Border[0 0 0]/Rect[120.6 289.2 237.3 302.7]/A<</Type/Action/S/URI/URI(file:///Documents and Settings/Tom Fennelly/Local Settings/Temp/services/ContentBasedRouting.pdf)>>
>>
endobj
436 0 obj
-<</Type/Annot/Subtype/Link/Border[0 0 0]/Rect[366.9 273.3 398.5 285.6]/A<</Type/Action/S/URI/URI(http://milyn.codehaus.org/javadoc/smooks-cartridges/javabean/org/milyn/javabean/BeanPopulator.html)>>
->>
+<</Type/Annot/Subtype/Link/Border[0 0 0]/Rect[189.2 445.5 245.3 459.3]/Dest[287 0 R/XYZ 156.5 664 0]>>
endobj
437 0 obj
-<</Type/Annot/Subtype/Link/Border[0 0 0]/Rect[485.6 639.3 522.2 651.6]/A<</Type/Action/S/URI/URI(http://milyn.codehaus.org/Smooks)>>
->>
+<</Type/Annot/Subtype/Link/Border[0 0 0]/Rect[215.6 434.1 272.5 447.6]/Dest[296 0 R/XYZ 156.5 715 0]>>
endobj
438 0 obj
-<</Type/Annot/Subtype/Link/Border[0 0 0]/Rect[336.3 695.5 373.5 707.8]/A<</Type/Action/S/URI/URI(http://milyn.codehaus.org/Smooks)>>
->>
+<</Type/Annot/Subtype/Link/Border[0 0 0]/Rect[101.9 434.1 195.5 447.6]/Dest[293 0 R/XYZ 156.5 715 0]>>
endobj
439 0 obj
-<</Type/Annot/Subtype/Link/Border[0 0 0]/Rect[232.3 707.7 280 720]/A<</Type/Action/S/URI/URI(http://wiki.jboss.org/wiki/Wiki.jsp?page=JBossESB)>>
+<</Type/Annot/Subtype/Link/Border[0 0 0]/Rect[101.9 615.3 134.8 628.8]/A<</Type/Action/S/URI/URI(http://www.enterpriseintegrationpatterns.com/Aggregator.html)>>
>>
endobj
440 0 obj
-<</Type/Annot/Subtype/Link/Border[0 0 0]/Rect[120.1 125.4 155.3 137.7]/A<</Type/Action/S/URI/URI(http://milyn.codehaus.org/Smooks)>>
+<</Type/Annot/Subtype/Link/Border[0 0 0]/Rect[350.9 628.7 522.7 642.2]/A<</Type/Action/S/URI/URI(http://www.enterpriseintegrationpatterns.com/Aggregator.html)>>
>>
endobj
441 0 obj
-<</Type/Annot/Subtype/Link/Border[0 0 0]/Rect[232 137.6 296.1 149.9]/Dest[251 0 R/XYZ 156.5 715 0]>>
+<</Type/Annot/Subtype/Link/Border[0 0 0]/Rect[366.6 102.5 398.1 116.6]/A<</Type/Action/S/URI/URI(http://logging.apache.org/log4j/)>>
+>>
endobj
442 0 obj
-<</Type/Annot/Subtype/Link/Border[0 0 0]/Rect[252.9 657.1 320.3 669.4]/Dest[251 0 R/XYZ 156.5 715 0]>>
+<</Type/Annot/Subtype/Link/Border[0 0 0]/Rect[343.7 178.9 407.7 192.4]/A<</Type/Action/S/URI/URI(http://wiki.jboss.org/wiki/BSHDeployer)>>
+>>
endobj
443 0 obj
-<</Type/Annot/Subtype/Link/Border[0 0 0]/Rect[101.9 657.1 142.9 669.4]/A<</Type/Action/S/URI/URI(http://xstream.codehaus.org/)>>
+<</Type/Annot/Subtype/Link/Border[0 0 0]/Rect[211.7 192.4 258.7 205.9]/A<</Type/Action/S/URI/URI(http://www.beanshell.org/)>>
>>
endobj
444 0 obj
-<</Type/Annot/Subtype/Link/Border[0 0 0]/Rect[166 169.8 216.6 182.1]/A<</Type/Action/S/URI/URI(http://xstream.codehaus.org/javadoc/com/thoughtworks/xstream/XStream.html)>>
+<</Type/Annot/Subtype/Link/Border[0 0 0]/Rect[137.9 239.9 158.9 253.4]/A<</Type/Action/S/URI/URI(http://jakarta.apache.org/bsf/)>>
>>
endobj
445 0 obj
-<</Type/Annot/Subtype/Link/Border[0 0 0]/Rect[380.5 182.1 520 194.4]/A<</Type/Action/S/URI/URI(http://xstream.codehaus.org/javadoc/com/thoughtworks/xstream/XStream.html)>>
+<</Type/Annot/Subtype/Link/Border[0 0 0]/Rect[156.6 260.6 185.1 274.1]/A<</Type/Action/S/URI/URI(http://www.mozilla.org/rhino/)>>
>>
endobj
446 0 obj
-<</Type/Annot/Subtype/Link/Border[0 0 0]/Rect[311.2 279.3 408.7 288.4]/A<</Type/Action/S/URI/URI(http://www.xyz.com/)>>
+<</Type/Annot/Subtype/Link/Border[0 0 0]/Rect[472.3 274 507.5 287.5]/A<</Type/Action/S/URI/URI(http://groovy.codehaus.org/)>>
>>
endobj
447 0 obj
-<</Type/Annot/Subtype/Link/Border[0 0 0]/Rect[311.2 288.4 399.1 297.5]/A<</Type/Action/S/URI/URI(http://www.xyz.com/)>>
+<</Type/Annot/Subtype/Link/Border[0 0 0]/Rect[393.7 274 440.7 287.5]/A<</Type/Action/S/URI/URI(http://www.beanshell.org/)>>
>>
endobj
448 0 obj
-<</Type/Annot/Subtype/Link/Border[0 0 0]/Rect[166 586.2 216.6 598.5]/A<</Type/Action/S/URI/URI(http://xstream.codehaus.org/javadoc/com/thoughtworks/xstream/XStream.html)>>
+<</Type/Annot/Subtype/Link/Border[0 0 0]/Rect[258 274 279 287.5]/A<</Type/Action/S/URI/URI(http://jakarta.apache.org/bsf/)>>
>>
endobj
449 0 obj
-<</Type/Annot/Subtype/Link/Border[0 0 0]/Rect[380.5 598.4 520 610.7]/A<</Type/Action/S/URI/URI(http://xstream.codehaus.org/javadoc/com/thoughtworks/xstream/XStream.html)>>
+<</Type/Annot/Subtype/Link/Border[0 0 0]/Rect[448.1 287.5 476.6 301]/A<</Type/Action/S/URI/URI(http://www.mozilla.org/rhino/)>>
>>
endobj
450 0 obj
-<</Type/Annot/Subtype/Link/Border[0 0 0]/Rect[210.6 670.5 278 682.8]/Dest[251 0 R/XYZ 156.5 715 0]>>
+<</Type/Annot/Subtype/Link/Border[0 0 0]/Rect[316 287.5 351.2 301]/A<</Type/Action/S/URI/URI(http://groovy.codehaus.org/)>>
+>>
endobj
451 0 obj
-<</Type/Annot/Subtype/Link/Border[0 0 0]/Rect[476.8 682.7 517.8 695]/A<</Type/Action/S/URI/URI(http://xstream.codehaus.org/)>>
+<</Type/Annot/Subtype/Link/Border[0 0 0]/Rect[226.4 287.5 273.4 301]/A<</Type/Action/S/URI/URI(http://www.beanshell.org/)>>
>>
endobj
452 0 obj
-<</Type/Annot/Subtype/Link/Border[0 0 0]/Rect[279.6 488.4 347 500.7]/Dest[251 0 R/XYZ 156.5 715 0]>>
+<</Type/Annot/Subtype/Link/Border[0 0 0]/Rect[462.9 300.9 483.9 314.4]/A<</Type/Action/S/URI/URI(http://jakarta.apache.org/bsf/)>>
+>>
endobj
453 0 obj
-<</Type/Annot/Subtype/Link/Border[0 0 0]/Rect[412.1 653.5 499.4 664.7]/Dest[159 0 R/XYZ 156.5 267.3 0]>>
+<</Type/Annot/Subtype/Link/Border[0 0 0]/Rect[245.7 300.9 266.7 314.4]/A<</Type/Action/S/URI/URI(http://jakarta.apache.org/bsf/)>>
+>>
endobj
454 0 obj
-<</Type/Annot/Subtype/Link/Border[0 0 0]/Rect[120.6 321.7 207.8 334]/Dest[159 0 R/XYZ 156.5 267.3 0]>>
+<</Type/Annot/Subtype/Link/Border[0 0 0]/Rect[349.2 335 370.2 348.5]/A<</Type/Action/S/URI/URI(http://jakarta.apache.org/bsf/)>>
+>>
endobj
455 0 obj
-<</Type/Annot/Subtype/Link/Border[0 0 0]/Rect[136.5 377.3 226.3 389.6]/A<</Type/Action/S/URI/URI(http://anonsvn.labs.jboss.com/labs/jbossesb/trunk/product/etc/schemas/xml/jbossesb-1.0.1.xsd)>>
+<</Type/Annot/Subtype/Link/Border[0 0 0]/Rect[341.5 486.1 378.6 500.2]/A<</Type/Action/S/URI/URI(http://groovy.codehaus.org/)>>
>>
endobj
456 0 obj
-<</Type/Annot/Subtype/Link/Border[0 0 0]/Rect[337 597.2 426.8 610.1]/A<</Type/Action/S/URI/URI(http://anonsvn.labs.jboss.com/labs/jbossesb/trunk/product/etc/schemas/xml/jbossesb-1.0.1.xsd)>>
+<</Type/Annot/Subtype/Link/Border[0 0 0]/Rect[409.1 538.9 440.6 553]/A<</Type/Action/S/URI/URI(http://logging.apache.org/log4j/)>>
>>
endobj
457 0 obj
-<</Type/Annot/Subtype/Link/Border[0 0 0]/Rect[386.2 403 465.2 415.3]/A<</Type/Action/S/URI/URI(http://www.opensymphony.com/quartz/)>>
+<</Type/Annot/Subtype/Link/Border[0 0 0]/Rect[152.3 628.7 187.5 642.2]/A<</Type/Action/S/URI/URI(http://groovy.codehaus.org/)>>
>>
endobj
458 0 obj
-<</Type/Annot/Subtype/Link/Border[0 0 0]/Rect[351.9 494.6 395.3 506.9]/A<</Type/Action/S/URI/URI(http://books.xmlschemata.org/relaxng/ch19-77049.html)>>
+<</Type/Annot/Subtype/Link/Border[0 0 0]/Rect[323.2 322.7 375.1 336.2]/A<</Type/Action/S/URI/URI(http://milyn.codehaus.org/javadoc/v1.0/smooks/org/milyn/payload/JavaSource.html)>>
>>
endobj
459 0 obj
-<</Type/Annot/Subtype/Link/Border[0 0 0]/Rect[351.9 526.3 395.3 538.6]/A<</Type/Action/S/URI/URI(http://books.xmlschemata.org/relaxng/ch19-77049.html)>>
+<</Type/Annot/Subtype/Link/Border[0 0 0]/Rect[118.9 380.8 147.4 394.3]/A<</Type/Action/S/URI/URI(http://milyn.codehaus.org/Smooks+User+Guide)>>
>>
endobj
460 0 obj
-<</Type/Annot/Subtype/Link/Border[0 0 0]/Rect[351.9 76.6 395.3 88.9]/A<</Type/Action/S/URI/URI(http://books.xmlschemata.org/relaxng/ch19-77049.html)>>
+<</Type/Annot/Subtype/Link/Border[0 0 0]/Rect[461.4 394.3 522.7 407.8]/A<</Type/Action/S/URI/URI(http://milyn.codehaus.org/Smooks+User+Guide)>>
>>
endobj
461 0 obj
-<</Type/Annot/Subtype/Link/Border[0 0 0]/Rect[351.9 108.3 395.3 120.6]/A<</Type/Action/S/URI/URI(http://books.xmlschemata.org/relaxng/ch19-77049.html)>>
+<</Type/Annot/Subtype/Link/Border[0 0 0]/Rect[154.9 462.5 187.7 476]/A<</Type/Action/S/URI/URI(http://java.sun.com/j2se/1.5.0/docs/api/java/io/Reader.html)>>
>>
endobj
462 0 obj
-<</Type/Annot/Subtype/Link/Border[0 0 0]/Rect[318.3 603.6 393.6 615.9]/A<</Type/Action/S/URI/URI(http://wiki.jboss.org/wiki/Wiki.jsp?page=JBossMessaging)>>
+<</Type/Annot/Subtype/Link/Border[0 0 0]/Rect[154.9 483.1 211.2 496.6]/A<</Type/Action/S/URI/URI(http://java.sun.com/j2se/1.5.0/docs/api/java/io/InputStream.html)>>
>>
endobj
463 0 obj
-<</Type/Annot/Subtype/Link/Border[0 0 0]/Rect[314 675.5 361.7 687.8]/A<</Type/Action/S/URI/URI(http://wiki.jboss.org/wiki/Wiki.jsp?page=JBossESB)>>
+<</Type/Annot/Subtype/Link/Border[0 0 0]/Rect[226.3 596 306.5 609.5]/A<</Type/Action/S/URI/URI(http://milyn.codehaus.org/javadoc/v1.0/smooks/org/milyn/container/plugin/PayloadProcessor.html)>>
>>
endobj
464 0 obj
-<</Type/Annot/Subtype/Link/Border[0 0 0]/Rect[274.7 687.8 350 700.1]/A<</Type/Action/S/URI/URI(http://wiki.jboss.org/wiki/Wiki.jsp?page=JBossMessaging)>>
+<</Type/Annot/Subtype/Link/Border[0 0 0]/Rect[271.5 124.6 377.6 135.9]/A<</Type/Action/S/URI/URI(http://milyn.codehaus.org/Smooks+User+Guide#SmooksUserGuide-CheckingtheSmooksExecutionProcess)>>
>>
endobj
465 0 obj
-<</Type/Annot/Subtype/Link/Border[0 0 0]/Rect[101.9 352.2 200 364.5]/A<</Type/Action/S/URI/URI(http://wiki.jboss.org/wiki/Wiki.jsp?page=JBossESBHelloworld)>>
->>
+<</Type/Annot/Subtype/Link/Border[0 0 0]/Rect[290.1 249.3 399.5 260.6]/Dest[263 0 R/XYZ 156.5 300.6 0]>>
endobj
466 0 obj
-<</Type/Annot/Subtype/Link/Border[0 0 0]/Rect[412.5 376.7 510.6 389]/A<</Type/Action/S/URI/URI(http://wiki.jboss.org/wiki/Wiki.jsp?page=JBossESBHelloworld)>>
+<</Type/Annot/Subtype/Link/Border[0 0 0]/Rect[271.5 311.4 344 322.7]/A<</Type/Action/S/URI/URI(http://milyn.codehaus.org/javadoc/v1.0/smooks/org/milyn/container/ExecutionContext.html)>>
>>
endobj
467 0 obj
-<</Type/Annot/Subtype/Link/Border[0 0 0]/Rect[354.4 275.7 421.4 288]/A<</Type/Action/S/URI/URI(http://milyn.codehaus.org/Smooks)>>
+<</Type/Annot/Subtype/Link/Border[0 0 0]/Rect[190.1 517.4 270.1 530.9]/A<</Type/Action/S/URI/URI(http://milyn.codehaus.org/Tutorials)>>
>>
endobj
468 0 obj
-<</Type/Annot/Subtype/Link/Border[0 0 0]/Rect[241.5 258.4 299.9 270.7]/Dest[75 0 R/XYZ 174.5 203.1 0]>>
+<</Type/Annot/Subtype/Link/Border[0 0 0]/Rect[443.9 530.8 520 544.3]/A<</Type/Action/S/URI/URI(http://milyn.codehaus.org/Smooks+Documentation)>>
+>>
endobj
469 0 obj
-<</Type/Annot/Subtype/Link/Border[0 0 0]/Rect[241.5 512.5 299.9 524.8]/Dest[75 0 R/XYZ 174.5 203.1 0]>>
+<</Type/Annot/Subtype/Link/Border[0 0 0]/Rect[101.9 591.8 182.1 605.3]/A<</Type/Action/S/URI/URI(http://milyn.codehaus.org/javadoc/v1.0/smooks/org/milyn/container/plugin/PayloadProcessor.html)>>
+>>
endobj
470 0 obj
-<</Type/Annot/Subtype/Link/Border[0 0 0]/Rect[244.3 285.1 302.7 297.4]/Dest[75 0 R/XYZ 174.5 203.1 0]>>
+<</Type/Annot/Subtype/Link/Border[0 0 0]/Rect[339.6 618.7 419.8 632.2]/A<</Type/Action/S/URI/URI(http://milyn.codehaus.org/javadoc/v1.0/smooks/org/milyn/container/plugin/PayloadProcessor.html)>>
+>>
endobj
471 0 obj
-<</Type/Annot/Subtype/Link/Border[0 0 0]/Rect[190.4 512.1 376.7 519.9]/A<</Type/Action/S/URI/URI(http://anonsvn.labs.jboss.com/labs/jbossesb/)>>
->>
+<</Type/Annot/Subtype/Link/Border[0 0 0]/Rect[242 652.8 334.6 666.3]/Dest[257 0 R/XYZ 156.5 696.8 0]>>
endobj
472 0 obj
-<</Type/Annot/Subtype/Link/Border[0 0 0]/Rect[137.6 707.7 211.3 720]/Dest[117 0 R/XYZ 156.5 544.8 0]>>
+<</Type/Annot/Subtype/Link/Border[0 0 0]/Rect[341.4 131.6 368.7 145.1]/A<</Type/Action/S/URI/URI(http://wiki.jboss.org/wiki/Wiki.jsp?page=MessageTransformation)>>
+>>
endobj
473 0 obj
-<</Type/Annot/Subtype/Link/Border[0 0 0]/Rect[70.2 295.2 155.3 307.5]/Dest[1 0 R/XYZ 126.2 491.4 0]>>
+<</Type/Annot/Subtype/Link/Border[0 0 0]/Rect[366.6 145.1 398.2 158.6]/A<</Type/Action/S/URI/URI(http://milyn.codehaus.org/javadoc/smooks-cartridges/javabean/org/milyn/javabean/BeanPopulator.html)>>
+>>
endobj
474 0 obj
-<</Type/Annot/Subtype/Link/Border[0 0 0]/Rect[101.9 345.2 119.3 357.5]/Dest[1 0 R/XYZ 126.2 491.4 0]>>
+<</Type/Annot/Subtype/Link/Border[0 0 0]/Rect[485.7 538.7 522.2 552.2]/A<</Type/Action/S/URI/URI(http://milyn.codehaus.org/Smooks)>>
+>>
endobj
475 0 obj
-<</Type/Annot/Subtype/Link/Border[0 0 0]/Rect[457.5 357.4 522.7 369.7]/Dest[1 0 R/XYZ 126.2 491.4 0]>>
+<</Type/Annot/Subtype/Link/Border[0 0 0]/Rect[336.2 599.7 373.3 613.2]/A<</Type/Action/S/URI/URI(http://milyn.codehaus.org/Smooks)>>
+>>
endobj
476 0 obj
-<</Type/Annot/Subtype/Link/Border[0 0 0]/Rect[284.7 418.7 368 431]/Dest[1 0 R/XYZ 126.2 491.4 0]>>
+<</Type/Annot/Subtype/Link/Border[0 0 0]/Rect[232.7 613.1 280.1 626.6]/A<</Type/Action/S/URI/URI(http://wiki.jboss.org/wiki/Wiki.jsp?page=JBossESB)>>
+>>
endobj
477 0 obj
-<</Type/Annot/Subtype/Link/Border[0 0 0]/Rect[101.9 597.2 205 610.1]/Dest[1 0 R/XYZ 126.2 491.4 0]>>
+<</Type/Annot/Subtype/Link/Border[0 0 0]/Rect[120.1 647.1 155.3 660.6]/A<</Type/Action/S/URI/URI(http://milyn.codehaus.org/Smooks)>>
+>>
endobj
478 0 obj
-<</Type/Annot/Subtype/Link/Border[0 0 0]/Rect[101.9 312.7 184.7 325]/Dest[1 0 R/XYZ 126.2 491.4 0]>>
+<</Type/Annot/Subtype/Link/Border[0 0 0]/Rect[231.9 660.5 296 675]/Dest[260 0 R/XYZ 156.5 715 0]>>
endobj
479 0 obj
-<</Type/Annot/Subtype/Link/Border[0 0 0]/Rect[102.1 476.2 184.9 488.5]/Dest[1 0 R/XYZ 126.2 491.4 0]>>
+<</Type/Annot/Subtype/Link/Border[0 0 0]/Rect[252.6 592.4 319.8 605.9]/Dest[260 0 R/XYZ 156.5 715 0]>>
endobj
480 0 obj
-<</Type/Annot/Subtype/Link/Border[0 0 0]/Rect[205.1 172.9 287.9 185.2]/Dest[1 0 R/XYZ 126.2 491.4 0]>>
+<</Type/Annot/Subtype/Link/Border[0 0 0]/Rect[101.9 592.4 142.7 605.9]/A<</Type/Action/S/URI/URI(http://xstream.codehaus.org/)>>
+>>
endobj
481 0 obj
-<</Type/Annot/Subtype/Link/Border[0 0 0]/Rect[101.9 245.2 135.8 257.5]/Dest[1 0 R/XYZ 126.2 491.4 0]>>
+<</Type/Annot/Subtype/Link/Border[0 0 0]/Rect[166 120.9 216.7 134.7]/A<</Type/Action/S/URI/URI(http://xstream.codehaus.org/javadoc/com/thoughtworks/xstream/XStream.html)>>
+>>
endobj
482 0 obj
-<</Type/Annot/Subtype/Link/Border[0 0 0]/Rect[467.2 257.5 522.7 269.8]/Dest[1 0 R/XYZ 126.2 491.4 0]>>
+<</Type/Annot/Subtype/Link/Border[0 0 0]/Rect[380.9 134.7 520 148.8]/A<</Type/Action/S/URI/URI(http://xstream.codehaus.org/javadoc/com/thoughtworks/xstream/XStream.html)>>
+>>
endobj
483 0 obj
-<</Type/Annot/Subtype/Link/Border[0 0 0]/Rect[120.2 371.6 203 383.9]/Dest[1 0 R/XYZ 126.2 491.4 0]>>
+<</Type/Annot/Subtype/Link/Border[0 0 0]/Rect[311.2 239.3 408.7 248.7]/A<</Type/Action/S/URI/URI(http://www.xyz.com/)>>
+>>
endobj
484 0 obj
-<</Type/Annot/Subtype/Link/Border[0 0 0]/Rect[236.9 591.8 319.7 604.1]/Dest[1 0 R/XYZ 126.2 491.4 0]>>
+<</Type/Annot/Subtype/Link/Border[0 0 0]/Rect[311.2 248.6 399.1 258]/A<</Type/Action/S/URI/URI(http://www.xyz.com/)>>
+>>
endobj
485 0 obj
-<</Type/Annot/Subtype/Link/Border[0 0 0]/Rect[147.1 642.2 250.2 655.7]/Dest[1 0 R/XYZ 126.2 491.4 0]>>
+<</Type/Annot/Subtype/Link/Border[0 0 0]/Rect[166 574 216.7 587.8]/A<</Type/Action/S/URI/URI(http://xstream.codehaus.org/javadoc/com/thoughtworks/xstream/XStream.html)>>
+>>
endobj
486 0 obj
-<</Type/Annot/Subtype/Link/Border[0 0 0]/Rect[147.1 681.1 250.2 694.6]/Dest[1 0 R/XYZ 126.2 491.4 0]>>
+<</Type/Annot/Subtype/Link/Border[0 0 0]/Rect[380.9 587.8 520 601.9]/A<</Type/Action/S/URI/URI(http://xstream.codehaus.org/javadoc/com/thoughtworks/xstream/XStream.html)>>
+>>
endobj
487 0 obj
-<</Type/Annot/Subtype/Link/Border[0 0 0]/Rect[147.1 706.5 250.2 720]/Dest[1 0 R/XYZ 126.2 491.4 0]>>
+<</Type/Annot/Subtype/Link/Border[0 0 0]/Rect[210.5 666.3 277.7 679.8]/Dest[260 0 R/XYZ 156.5 715 0]>>
endobj
488 0 obj
-<</Type/Annot/Subtype/Link/Border[0 0 0]/Rect[147.1 98.1 250.2 111.6]/Dest[1 0 R/XYZ 126.2 491.4 0]>>
+<</Type/Annot/Subtype/Link/Border[0 0 0]/Rect[476.1 679.7 516.9 693.2]/A<</Type/Action/S/URI/URI(http://xstream.codehaus.org/)>>
+>>
endobj
489 0 obj
-<</Type/Annot/Subtype/Link/Border[0 0 0]/Rect[147.1 137 250.2 150.5]/Dest[1 0 R/XYZ 126.2 491.4 0]>>
+<</Type/Annot/Subtype/Link/Border[0 0 0]/Rect[279.6 361.1 346.8 374.6]/Dest[260 0 R/XYZ 156.5 715 0]>>
endobj
490 0 obj
-<</Type/Annot/Subtype/Link/Border[0 0 0]/Rect[433.3 172.3 522.2 184.6]/Dest[1 0 R/XYZ 126.2 491.4 0]>>
+<</Type/Annot/Subtype/Link/Border[0 0 0]/Rect[412.1 414.7 498.7 427.2]/Dest[168 0 R/XYZ 156.5 684.5 0]>>
endobj
491 0 obj
-<</Type/Annot/Subtype/Link/Border[0 0 0]/Rect[436.4 524 522.2 536.3]/Dest[1 0 R/XYZ 126.2 491.4 0]>>
+<</Type/Annot/Subtype/Link/Border[0 0 0]/Rect[120.6 134.3 207.9 147.8]/Dest[168 0 R/XYZ 156.5 684.5 0]>>
endobj
492 0 obj
-<</Type/Annot/Subtype/Link/Border[0 0 0]/Rect[373.5 558.6 456.3 570.9]/Dest[1 0 R/XYZ 126.2 491.4 0]>>
+<</Type/Annot/Subtype/Link/Border[0 0 0]/Rect[136.5 303.1 226.1 316.6]/A<</Type/Action/S/URI/URI(http://anonsvn.labs.jboss.com/labs/jbossesb/trunk/product/etc/schemas/xml/jbossesb-1.0.1.xsd)>>
+>>
endobj
493 0 obj
-<</Type/Annot/Subtype/Link/Border[0 0 0]/Rect[121.8 558.6 212.9 570.9]/Dest[1 0 R/XYZ 378.9 449.1 0]>>
+<</Type/Annot/Subtype/Link/Border[0 0 0]/Rect[337.5 591 427.1 604.5]/A<</Type/Action/S/URI/URI(http://anonsvn.labs.jboss.com/labs/jbossesb/trunk/product/etc/schemas/xml/jbossesb-1.0.1.xsd)>>
+>>
endobj
494 0 obj
-<</Type/Annot/Subtype/Link/Border[0 0 0]/Rect[477.4 306.2 482 318.5]/Dest[317 0 R/XYZ 52.1 98.6 0]>>
+<</Type/Annot/Subtype/Link/Border[0 0 0]/Rect[386.4 106 465 119.5]/A<</Type/Action/S/URI/URI(http://www.opensymphony.com/quartz/)>>
+>>
endobj
495 0 obj
-<</Type/Annot/Subtype/Link/Border[0 0 0]/Rect[202.6 580 207.3 592.3]/Dest[356 0 R/XYZ 52 108.8 0]>>
+<</Type/Annot/Subtype/Link/Border[0 0 0]/Rect[351.3 221.6 394.7 235.1]/A<</Type/Action/S/URI/URI(http://books.xmlschemata.org/relaxng/ch19-77049.html)>>
+>>
endobj
496 0 obj
-<</Type/Annot/Subtype/Link/Border[0 0 0]/Rect[204.5 567.8 209.1 580.1]/Dest[356 0 R/XYZ 51.9 84.3 0]>>
+<</Type/Annot/Subtype/Link/Border[0 0 0]/Rect[351.3 256.8 394.7 270.3]/A<</Type/Action/S/URI/URI(http://books.xmlschemata.org/relaxng/ch19-77049.html)>>
+>>
endobj
-745 0 obj
-<</Type/Catalog/Pages 497 0 R
+497 0 obj
+<</Type/Annot/Subtype/Link/Border[0 0 0]/Rect[351.3 473.5 394.7 487]/A<</Type/Action/S/URI/URI(http://books.xmlschemata.org/relaxng/ch19-77049.html)>>
+>>
+endobj
+
+498 0 obj
+<</Type/Annot/Subtype/Link/Border[0 0 0]/Rect[351.3 508.6 394.7 522.1]/A<</Type/Action/S/URI/URI(http://books.xmlschemata.org/relaxng/ch19-77049.html)>>
+>>
+endobj
+
+499 0 obj
+<</Type/Annot/Subtype/Link/Border[0 0 0]/Rect[318.3 546.8 393.6 560.3]/A<</Type/Action/S/URI/URI(http://wiki.jboss.org/wiki/Wiki.jsp?page=JBossMessaging)>>
+>>
+endobj
+
+500 0 obj
+<</Type/Annot/Subtype/Link/Border[0 0 0]/Rect[313.5 622.3 360.9 635.8]/A<</Type/Action/S/URI/URI(http://wiki.jboss.org/wiki/Wiki.jsp?page=JBossESB)>>
+>>
+endobj
+
+501 0 obj
+<</Type/Annot/Subtype/Link/Border[0 0 0]/Rect[274.5 635.8 349.8 649.3]/A<</Type/Action/S/URI/URI(http://wiki.jboss.org/wiki/Wiki.jsp?page=JBossMessaging)>>
+>>
+endobj
+
+502 0 obj
+<</Type/Annot/Subtype/Link/Border[0 0 0]/Rect[101.9 321.8 199.7 335.3]/A<</Type/Action/S/URI/URI(http://wiki.jboss.org/wiki/Wiki.jsp?page=JBossESBHelloworld)>>
+>>
+endobj
+
+503 0 obj
+<</Type/Annot/Subtype/Link/Border[0 0 0]/Rect[412.4 348.7 510.2 362.2]/A<</Type/Action/S/URI/URI(http://wiki.jboss.org/wiki/Wiki.jsp?page=JBossESBHelloworld)>>
+>>
+endobj
+
+504 0 obj
+<</Type/Annot/Subtype/Link/Border[0 0 0]/Rect[354.5 240.6 421.5 254.1]/A<</Type/Action/S/URI/URI(http://milyn.codehaus.org/Smooks)>>
+>>
+endobj
+
+505 0 obj
+<</Type/Annot/Subtype/Link/Border[0 0 0]/Rect[241.7 608 300.2 622.5]/Dest[78 0 R/XYZ 174.5 618.1 0]>>
+endobj
+
+506 0 obj
+<</Type/Annot/Subtype/Link/Border[0 0 0]/Rect[241.7 257.5 300.2 272]/Dest[78 0 R/XYZ 174.5 618.1 0]>>
+endobj
+
+507 0 obj
+<</Type/Annot/Subtype/Link/Border[0 0 0]/Rect[244.5 705.5 303 720]/Dest[78 0 R/XYZ 174.5 618.1 0]>>
+endobj
+
+508 0 obj
+<</Type/Annot/Subtype/Link/Border[0 0 0]/Rect[190.4 453 376.7 461.2]/A<</Type/Action/S/URI/URI(http://anonsvn.labs.jboss.com/labs/jbossesb/)>>
+>>
+endobj
+
+509 0 obj
+<</Type/Annot/Subtype/Link/Border[0 0 0]/Rect[137.6 666.2 211.4 679.7]/Dest[117 0 R/XYZ 156.5 254.7 0]>>
+endobj
+
+510 0 obj
+<</Type/Annot/Subtype/Link/Border[0 0 0]/Rect[70.2 263.2 155.3 277.7]/Dest[1 0 R/XYZ 126.2 470.4 0]>>
+endobj
+
+511 0 obj
+<</Type/Annot/Subtype/Link/Border[0 0 0]/Rect[101.9 94.3 119.2 107.8]/Dest[1 0 R/XYZ 126.2 470.4 0]>>
+endobj
+
+512 0 obj
+<</Type/Annot/Subtype/Link/Border[0 0 0]/Rect[457.7 107.8 522.7 121.3]/Dest[1 0 R/XYZ 126.2 470.4 0]>>
+endobj
+
+513 0 obj
+<</Type/Annot/Subtype/Link/Border[0 0 0]/Rect[284.6 175 367.8 188.5]/Dest[1 0 R/XYZ 126.2 470.4 0]>>
+endobj
+
+514 0 obj
+<</Type/Annot/Subtype/Link/Border[0 0 0]/Rect[101.9 591 205.4 604.5]/Dest[1 0 R/XYZ 126.2 470.4 0]>>
+endobj
+
+515 0 obj
+<</Type/Annot/Subtype/Link/Border[0 0 0]/Rect[101.9 104.2 184.5 117.7]/Dest[1 0 R/XYZ 126.2 470.4 0]>>
+endobj
+
+516 0 obj
+<</Type/Annot/Subtype/Link/Border[0 0 0]/Rect[102.1 283 184.7 296.5]/Dest[1 0 R/XYZ 126.2 470.4 0]>>
+endobj
+
+517 0 obj
+<</Type/Annot/Subtype/Link/Border[0 0 0]/Rect[101.9 508.7 135.8 522.2]/Dest[1 0 R/XYZ 126.2 470.4 0]>>
+endobj
+
+518 0 obj
+<</Type/Annot/Subtype/Link/Border[0 0 0]/Rect[468.2 522.1 522.8 535.6]/Dest[1 0 R/XYZ 126.2 470.4 0]>>
+endobj
+
+519 0 obj
+<</Type/Annot/Subtype/Link/Border[0 0 0]/Rect[205.2 606.3 287.8 619.8]/Dest[1 0 R/XYZ 126.2 470.4 0]>>
+endobj
+
+520 0 obj
+<</Type/Annot/Subtype/Link/Border[0 0 0]/Rect[120.2 166.4 202.8 179.9]/Dest[1 0 R/XYZ 126.2 470.4 0]>>
+endobj
+
+521 0 obj
+<</Type/Annot/Subtype/Link/Border[0 0 0]/Rect[236.7 549.9 319.3 563.4]/Dest[1 0 R/XYZ 126.2 470.4 0]>>
+endobj
+
+522 0 obj
+<</Type/Annot/Subtype/Link/Border[0 0 0]/Rect[147.1 603.3 250.6 616.8]/Dest[1 0 R/XYZ 126.2 470.4 0]>>
+endobj
+
+523 0 obj
+<</Type/Annot/Subtype/Link/Border[0 0 0]/Rect[147.1 642.2 250.6 655.7]/Dest[1 0 R/XYZ 126.2 470.4 0]>>
+endobj
+
+524 0 obj
+<</Type/Annot/Subtype/Link/Border[0 0 0]/Rect[147.1 667.6 250.6 681.1]/Dest[1 0 R/XYZ 126.2 470.4 0]>>
+endobj
+
+525 0 obj
+<</Type/Annot/Subtype/Link/Border[0 0 0]/Rect[147.1 706.5 250.6 720]/Dest[1 0 R/XYZ 126.2 470.4 0]>>
+endobj
+
+526 0 obj
+<</Type/Annot/Subtype/Link/Border[0 0 0]/Rect[147.1 119 250.6 132.5]/Dest[1 0 R/XYZ 126.2 470.4 0]>>
+endobj
+
+527 0 obj
+<</Type/Annot/Subtype/Link/Border[0 0 0]/Rect[433.7 155.5 522.2 169]/Dest[1 0 R/XYZ 126.2 470.4 0]>>
+endobj
+
+528 0 obj
+<</Type/Annot/Subtype/Link/Border[0 0 0]/Rect[436.7 510.3 522.2 523.8]/Dest[1 0 R/XYZ 126.2 470.4 0]>>
+endobj
+
+529 0 obj
+<</Type/Annot/Subtype/Link/Border[0 0 0]/Rect[373.4 547.8 456 561.3]/Dest[1 0 R/XYZ 126.2 470.4 0]>>
+endobj
+
+530 0 obj
+<</Type/Annot/Subtype/Link/Border[0 0 0]/Rect[121.8 547.8 212.8 561.3]/Dest[1 0 R/XYZ 379.4 423.9 0]>>
+endobj
+
+531 0 obj
+<</Type/Annot/Subtype/Link/Border[0 0 0]/Rect[476.7 206.5 481.4 221]/Dest[332 0 R/XYZ 52.3 101.3 0]>>
+endobj
+
+532 0 obj
+<</Type/Annot/Subtype/Link/Border[0 0 0]/Rect[202.6 571.3 207.3 584.8]/Dest[374 0 R/XYZ 52 112.4 0]>>
+endobj
+
+533 0 obj
+<</Type/Annot/Subtype/Link/Border[0 0 0]/Rect[204.2 557.9 208.9 571.4]/Dest[374 0 R/XYZ 52 85.5 0]>>
+endobj
+
+739 0 obj
+<</Type/Catalog/Pages 534 0 R
/OpenAction[1 0 R /XYZ null null 0]
/ViewerPreferences<</DisplayDocTitle true
>>
-/Outlines 626 0 R
+/Outlines 616 0 R
/Lang(en-US)
>>
endobj
-746 0 obj
+740 0 obj
<</Title<FEFF00500072006F006700720061006D006D006500720073002000470075006900640065>
/Author<FEFF004500730074006500620061006E>
/Creator<FEFF005700720069007400650072>
/Producer<FEFF004F00700065006E004F00660066006900630065002E006F0072006700200032002E0034>
-/CreationDate(D:20080805120325+01'00')>>
+/CreationDate(D:20080827114358+02'00')>>
endobj
xref
-0 747
+0 741
0000000000 65535 f
-0001196021 00000 n
+0001334636 00000 n
0000000019 00000 n
-0000000408 00000 n
-0001196167 00000 n
-0000000428 00000 n
-0000003382 00000 n
-0001196332 00000 n
-0000003403 00000 n
-0000006593 00000 n
-0001196478 00000 n
-0000006614 00000 n
-0000010573 00000 n
-0001196626 00000 n
-0000010595 00000 n
-0000012599 00000 n
-0001196774 00000 n
-0000012621 00000 n
-0000014862 00000 n
-0001196957 00000 n
-0000014884 00000 n
-0000017894 00000 n
-0001197140 00000 n
-0000017916 00000 n
-0000018912 00000 n
-0001197331 00000 n
-0000018933 00000 n
-0000019164 00000 n
-0001197479 00000 n
-0000019185 00000 n
-0000026023 00000 n
-0000026045 00000 n
-0001197627 00000 n
-0000028004 00000 n
-0000035556 00000 n
-0000035578 00000 n
-0001197775 00000 n
-0000042480 00000 n
-0000048234 00000 n
-0001197923 00000 n
-0000048256 00000 n
-0000050013 00000 n
-0001198071 00000 n
-0000050035 00000 n
-0000053590 00000 n
-0001198219 00000 n
-0000053612 00000 n
-0000057686 00000 n
-0001198367 00000 n
-0000057708 00000 n
-0000071181 00000 n
-0001198515 00000 n
-0000071204 00000 n
-0000074684 00000 n
-0001198682 00000 n
-0000074706 00000 n
-0000078549 00000 n
-0001198857 00000 n
-0000078571 00000 n
-0000081745 00000 n
-0001199005 00000 n
-0000081767 00000 n
-0000085170 00000 n
-0001199153 00000 n
-0000085192 00000 n
-0000087688 00000 n
-0001199301 00000 n
-0000087710 00000 n
-0000091807 00000 n
-0001199449 00000 n
-0000091829 00000 n
-0000095860 00000 n
-0001199597 00000 n
-0000095882 00000 n
-0000098870 00000 n
-0001199745 00000 n
-0000098892 00000 n
-0000103463 00000 n
-0001199912 00000 n
-0000103485 00000 n
-0000107618 00000 n
-0001200087 00000 n
-0000107640 00000 n
-0000111721 00000 n
-0001200235 00000 n
-0000111743 00000 n
-0000115311 00000 n
-0001200383 00000 n
-0000115333 00000 n
-0000116839 00000 n
-0001200531 00000 n
-0000116861 00000 n
-0000120529 00000 n
-0001200679 00000 n
-0000120551 00000 n
-0000123127 00000 n
-0001200827 00000 n
-0000123149 00000 n
-0000125605 00000 n
-0001200975 00000 n
-0000125627 00000 n
-0000128618 00000 n
-0001201124 00000 n
-0000128641 00000 n
-0000133017 00000 n
-0001201274 00000 n
-0000133040 00000 n
-0000136721 00000 n
-0001201424 00000 n
-0000136744 00000 n
-0000140602 00000 n
-0001201574 00000 n
-0000140625 00000 n
-0000144639 00000 n
-0001201743 00000 n
-0000144662 00000 n
-0000148849 00000 n
-0001201893 00000 n
-0000148872 00000 n
-0000152393 00000 n
-0001202043 00000 n
-0000152416 00000 n
-0000156218 00000 n
-0001202228 00000 n
-0000156241 00000 n
-0000158930 00000 n
-0001202378 00000 n
-0000158953 00000 n
-0000162530 00000 n
-0001202547 00000 n
-0000162553 00000 n
-0000164039 00000 n
-0001202697 00000 n
-0000164062 00000 n
-0000167671 00000 n
-0001202847 00000 n
-0000167694 00000 n
-0000171600 00000 n
-0001202997 00000 n
-0000171623 00000 n
-0000174126 00000 n
-0001203147 00000 n
-0000174149 00000 n
-0000177188 00000 n
-0001203297 00000 n
-0000177211 00000 n
-0000178772 00000 n
-0001203447 00000 n
-0000178795 00000 n
-0000182277 00000 n
-0001203624 00000 n
-0000182300 00000 n
-0000186899 00000 n
-0001203774 00000 n
-0000186922 00000 n
-0000190486 00000 n
-0001203959 00000 n
-0000190509 00000 n
-0000193743 00000 n
-0001204109 00000 n
-0000193766 00000 n
-0000197926 00000 n
-0001204302 00000 n
-0000197949 00000 n
-0000201034 00000 n
-0001204479 00000 n
-0000201057 00000 n
-0000203788 00000 n
-0001204648 00000 n
-0000203811 00000 n
-0000207790 00000 n
-0001204798 00000 n
-0000207813 00000 n
-0000212174 00000 n
-0001204948 00000 n
-0000212197 00000 n
-0000217065 00000 n
-0001205098 00000 n
-0000217088 00000 n
-0000221846 00000 n
-0001205248 00000 n
-0000221869 00000 n
-0000226337 00000 n
-0001205398 00000 n
-0000226360 00000 n
-0000230426 00000 n
-0001205548 00000 n
-0000230449 00000 n
-0000233868 00000 n
-0001205698 00000 n
-0000233891 00000 n
-0000235596 00000 n
-0001205848 00000 n
-0000235619 00000 n
-0000237360 00000 n
-0001206025 00000 n
-0000237383 00000 n
-0000240229 00000 n
-0001206175 00000 n
-0000240252 00000 n
-0000243341 00000 n
-0001206325 00000 n
-0000243364 00000 n
-0000245032 00000 n
-0000245055 00000 n
-0000295864 00000 n
-0001206475 00000 n
-0000295888 00000 n
-0000299809 00000 n
-0001206625 00000 n
-0000299832 00000 n
-0000303120 00000 n
-0001206775 00000 n
-0000303143 00000 n
-0000306989 00000 n
-0001206944 00000 n
-0000307012 00000 n
-0000310207 00000 n
-0001207094 00000 n
-0000310230 00000 n
-0000314440 00000 n
-0001207263 00000 n
-0000314463 00000 n
-0000317718 00000 n
-0001207432 00000 n
-0000317741 00000 n
-0000318539 00000 n
-0001207582 00000 n
-0000318561 00000 n
-0000322674 00000 n
-0001207732 00000 n
-0000322697 00000 n
-0000323905 00000 n
-0001207882 00000 n
-0000323928 00000 n
-0000325843 00000 n
-0001208032 00000 n
-0000325866 00000 n
-0000328873 00000 n
-0001208182 00000 n
-0000328896 00000 n
-0000331570 00000 n
-0001208351 00000 n
-0000331593 00000 n
-0000334965 00000 n
-0001208576 00000 n
-0000334988 00000 n
-0000338333 00000 n
-0001208769 00000 n
-0000338356 00000 n
-0000341468 00000 n
-0001208970 00000 n
-0000341491 00000 n
-0000345915 00000 n
-0001209195 00000 n
-0000345938 00000 n
-0000349749 00000 n
-0001209404 00000 n
-0000349772 00000 n
-0000351545 00000 n
-0001209554 00000 n
-0000351568 00000 n
-0000355825 00000 n
-0001209704 00000 n
-0000355848 00000 n
-0000358996 00000 n
-0001209854 00000 n
-0000359019 00000 n
-0000361360 00000 n
-0001210023 00000 n
-0000361383 00000 n
-0000364366 00000 n
-0001210173 00000 n
-0000364389 00000 n
-0000367489 00000 n
-0001210366 00000 n
-0000367512 00000 n
-0000369037 00000 n
-0001210516 00000 n
-0000369060 00000 n
-0000371301 00000 n
-0001210693 00000 n
-0000371324 00000 n
-0000373021 00000 n
-0001210862 00000 n
-0000373044 00000 n
-0000376896 00000 n
-0001211031 00000 n
-0000376919 00000 n
-0000379851 00000 n
-0001211181 00000 n
-0000379874 00000 n
-0000382918 00000 n
-0001211350 00000 n
-0000382941 00000 n
-0000385998 00000 n
-0001211500 00000 n
-0000386021 00000 n
-0000389651 00000 n
-0001211669 00000 n
-0000389674 00000 n
-0000392986 00000 n
-0001211846 00000 n
-0000393009 00000 n
-0000396078 00000 n
-0001211996 00000 n
-0000396101 00000 n
-0000396971 00000 n
-0001212165 00000 n
-0000396993 00000 n
-0000400064 00000 n
-0001212342 00000 n
-0000400087 00000 n
-0000403108 00000 n
-0001212527 00000 n
-0000403131 00000 n
-0000405625 00000 n
-0001212677 00000 n
-0000405648 00000 n
-0000410001 00000 n
-0001212878 00000 n
-0000410024 00000 n
-0000412281 00000 n
-0001213028 00000 n
-0000412304 00000 n
-0000413929 00000 n
-0001213178 00000 n
-0000413952 00000 n
-0000415738 00000 n
-0001213328 00000 n
-0000415761 00000 n
-0000418846 00000 n
-0001213478 00000 n
-0000418869 00000 n
-0000419967 00000 n
-0001213628 00000 n
-0000419990 00000 n
-0000424119 00000 n
-0001213778 00000 n
-0000424142 00000 n
-0000428337 00000 n
-0001213928 00000 n
-0000428360 00000 n
-0000432080 00000 n
-0001214078 00000 n
-0000432103 00000 n
-0000435032 00000 n
-0001214228 00000 n
-0000435055 00000 n
-0000437138 00000 n
-0001214378 00000 n
-0000437161 00000 n
-0000440080 00000 n
-0001214579 00000 n
-0000440103 00000 n
-0000440807 00000 n
-0001214729 00000 n
-0000440829 00000 n
-0000445310 00000 n
-0001214906 00000 n
-0000445333 00000 n
-0000449942 00000 n
-0001215056 00000 n
-0000449965 00000 n
-0000454744 00000 n
-0001215206 00000 n
-0000454767 00000 n
-0000458335 00000 n
-0001215356 00000 n
-0000458358 00000 n
-0000463337 00000 n
-0001215506 00000 n
-0000463360 00000 n
-0000468998 00000 n
-0001215656 00000 n
-0000469021 00000 n
-0000472446 00000 n
-0001215841 00000 n
-0000472469 00000 n
-0000475515 00000 n
-0001215991 00000 n
-0000475538 00000 n
-0000478949 00000 n
-0001216141 00000 n
-0000478972 00000 n
-0000482205 00000 n
-0001216291 00000 n
-0000482228 00000 n
-0000485056 00000 n
-0001216441 00000 n
-0000485079 00000 n
-0000485960 00000 n
-0001241074 00000 n
-0001241238 00000 n
-0001241450 00000 n
-0001241660 00000 n
-0001241867 00000 n
-0001242025 00000 n
-0001242257 00000 n
-0001242407 00000 n
-0001242557 00000 n
-0001242674 00000 n
-0001242792 00000 n
-0001242932 00000 n
-0001243074 00000 n
-0001243216 00000 n
-0001243337 00000 n
-0001243460 00000 n
-0001243626 00000 n
-0001243808 00000 n
-0001243986 00000 n
-0001244148 00000 n
-0001244310 00000 n
-0001244433 00000 n
-0001244554 00000 n
-0001244772 00000 n
-0001244893 00000 n
-0001245014 00000 n
-0001245133 00000 n
-0001245313 00000 n
-0001245495 00000 n
-0001245644 00000 n
-0001245845 00000 n
-0001246010 00000 n
-0001246175 00000 n
-0001246354 00000 n
-0001246540 00000 n
-0001246756 00000 n
-0001246971 00000 n
-0001247094 00000 n
-0001247301 00000 n
-0001247458 00000 n
-0001247626 00000 n
-0001247840 00000 n
-0001248056 00000 n
-0001248179 00000 n
-0001248361 00000 n
-0001248581 00000 n
-0001248735 00000 n
-0001248889 00000 n
-0001249056 00000 n
-0001249210 00000 n
-0001249329 00000 n
-0001249450 00000 n
-0001249600 00000 n
-0001249793 00000 n
-0001249986 00000 n
-0001250127 00000 n
-0001250268 00000 n
-0001250461 00000 n
-0001250654 00000 n
-0001250773 00000 n
-0001250921 00000 n
-0001251040 00000 n
-0001251163 00000 n
-0001251284 00000 n
-0001251498 00000 n
-0001251710 00000 n
-0001251865 00000 n
-0001252039 00000 n
-0001252213 00000 n
-0001252385 00000 n
-0001252559 00000 n
-0001252736 00000 n
-0001252905 00000 n
-0001253080 00000 n
-0001253259 00000 n
-0001253438 00000 n
-0001253590 00000 n
-0001253712 00000 n
-0001253834 00000 n
-0001253956 00000 n
-0001254122 00000 n
-0001254243 00000 n
-0001254363 00000 n
-0001254484 00000 n
-0001254605 00000 n
-0001254722 00000 n
-0001254841 00000 n
-0001254960 00000 n
-0001255081 00000 n
-0001255202 00000 n
-0001255323 00000 n
-0001255444 00000 n
-0001255563 00000 n
-0001255684 00000 n
-0001255805 00000 n
-0001255926 00000 n
-0001256045 00000 n
-0001256165 00000 n
-0001256284 00000 n
-0001256405 00000 n
-0001256524 00000 n
-0001256645 00000 n
-0001256766 00000 n
-0001256885 00000 n
-0001257003 00000 n
-0001239980 00000 n
-0000485982 00000 n
-0000509637 00000 n
-0000509661 00000 n
-0000509853 00000 n
-0000510487 00000 n
-0000510961 00000 n
-0000525889 00000 n
-0000525913 00000 n
-0000526115 00000 n
-0000526587 00000 n
-0000526916 00000 n
-0000527741 00000 n
-0000527763 00000 n
-0000527956 00000 n
-0000528276 00000 n
-0000528456 00000 n
-0000536409 00000 n
-0000536432 00000 n
-0000536633 00000 n
-0000536977 00000 n
-0000537187 00000 n
-0000547143 00000 n
-0000547166 00000 n
-0000547363 00000 n
-0000547852 00000 n
-0000548195 00000 n
-0000557338 00000 n
-0000557361 00000 n
-0000557568 00000 n
-0000557948 00000 n
-0000558193 00000 n
-0000572262 00000 n
-0000572286 00000 n
-0000572493 00000 n
-0000572866 00000 n
-0000573110 00000 n
-0000594637 00000 n
-0000594661 00000 n
-0000594863 00000 n
-0000595342 00000 n
-0000595680 00000 n
-0000625500 00000 n
-0000625524 00000 n
-0000625721 00000 n
-0000626394 00000 n
-0000626911 00000 n
-0000635326 00000 n
-0000635349 00000 n
-0000635558 00000 n
-0000635944 00000 n
-0000636197 00000 n
-0000649353 00000 n
-0000649377 00000 n
-0000649575 00000 n
-0000650172 00000 n
-0000650617 00000 n
-0000673397 00000 n
-0000673421 00000 n
-0000673618 00000 n
-0000674199 00000 n
-0000674626 00000 n
-0000677907 00000 n
-0000677930 00000 n
-0000678119 00000 n
-0000678411 00000 n
-0000678575 00000 n
-0000693070 00000 n
-0000693094 00000 n
-0000693290 00000 n
-0000693870 00000 n
-0000694292 00000 n
-0000711142 00000 n
-0000711166 00000 n
-0000711378 00000 n
-0000711781 00000 n
-0000712053 00000 n
-0000750243 00000 n
-0000750267 00000 n
-0000750469 00000 n
-0000751154 00000 n
-0000751694 00000 n
-0000774862 00000 n
-0000774886 00000 n
-0000775098 00000 n
-0000775610 00000 n
-0000775977 00000 n
-0000802793 00000 n
-0000802817 00000 n
-0000803024 00000 n
-0000803562 00000 n
-0000803959 00000 n
-0000822573 00000 n
-0000822597 00000 n
-0000822813 00000 n
-0000823263 00000 n
-0000823582 00000 n
-0000829981 00000 n
-0000830004 00000 n
-0000830196 00000 n
-0000830609 00000 n
-0000830876 00000 n
-0000854109 00000 n
-0000854133 00000 n
-0000854339 00000 n
-0000854872 00000 n
-0000855261 00000 n
-0000895189 00000 n
-0000895213 00000 n
-0000895408 00000 n
-0000896354 00000 n
-0000897323 00000 n
-0000997899 00000 n
-0000997924 00000 n
-0000998117 00000 n
-0000999063 00000 n
-0001000031 00000 n
-0001100618 00000 n
-0001100643 00000 n
-0001100836 00000 n
-0001101782 00000 n
-0001102754 00000 n
-0001193358 00000 n
-0001193382 00000 n
-0001193582 00000 n
-0001194528 00000 n
-0001195498 00000 n
-0001195562 00000 n
-0001195892 00000 n
-0001216591 00000 n
-0001216652 00000 n
-0001216891 00000 n
-0001217183 00000 n
-0001217371 00000 n
-0001217587 00000 n
-0001217730 00000 n
-0001217904 00000 n
-0001218067 00000 n
-0001218259 00000 n
-0001218447 00000 n
-0001218651 00000 n
-0001218862 00000 n
-0001219049 00000 n
-0001219201 00000 n
-0001219381 00000 n
-0001219565 00000 n
-0001219754 00000 n
-0001220008 00000 n
-0001220209 00000 n
-0001220419 00000 n
-0001220607 00000 n
-0001220751 00000 n
-0001220940 00000 n
-0001221113 00000 n
-0001221314 00000 n
-0001221542 00000 n
-0001221727 00000 n
-0001221920 00000 n
-0001222121 00000 n
-0001222284 00000 n
-0001222483 00000 n
-0001222672 00000 n
-0001222847 00000 n
-0001223004 00000 n
-0001223177 00000 n
-0001223440 00000 n
-0001223633 00000 n
-0001223982 00000 n
-0001224173 00000 n
-0001224330 00000 n
-0001224591 00000 n
-0001224768 00000 n
-0001224937 00000 n
-0001225126 00000 n
-0001225331 00000 n
-0001225604 00000 n
-0001225837 00000 n
-0001226114 00000 n
-0001226279 00000 n
-0001226506 00000 n
-0001226739 00000 n
-0001226960 00000 n
-0001227096 00000 n
-0001227269 00000 n
-0001227426 00000 n
-0001227598 00000 n
-0001227749 00000 n
-0001227896 00000 n
-0001228169 00000 n
-0001228414 00000 n
-0001228605 00000 n
-0001228830 00000 n
-0001229035 00000 n
-0001229298 00000 n
-0001229625 00000 n
-0001229768 00000 n
-0001229953 00000 n
-0001230146 00000 n
-0001230311 00000 n
-0001230496 00000 n
-0001230671 00000 n
-0001230848 00000 n
-0001231033 00000 n
-0001231224 00000 n
-0001231432 00000 n
-0001231633 00000 n
-0001231878 00000 n
-0001232067 00000 n
-0001232275 00000 n
-0001232444 00000 n
-0001232667 00000 n
-0001232860 00000 n
-0001233061 00000 n
-0001233238 00000 n
-0001233403 00000 n
-0001233560 00000 n
-0001233717 00000 n
-0001233874 00000 n
-0001234027 00000 n
-0001234214 00000 n
-0001234377 00000 n
-0001234544 00000 n
-0001234741 00000 n
-0001234893 00000 n
-0001235170 00000 n
-0001235407 00000 n
-0001235587 00000 n
-0001235772 00000 n
-0001235952 00000 n
-0001236197 00000 n
-0001236404 00000 n
-0001236601 00000 n
-0001236747 00000 n
-0001236930 00000 n
-0001237162 00000 n
-0001237411 00000 n
-0001237647 00000 n
-0001237816 00000 n
-0001238045 00000 n
-0001238290 00000 n
-0001238459 00000 n
-0001238606 00000 n
-0001238775 00000 n
-0001238975 00000 n
-0001239141 00000 n
-0001239302 00000 n
-0001239479 00000 n
-0001239724 00000 n
-0001257124 00000 n
-0001257287 00000 n
+0000000412 00000 n
+0001334782 00000 n
+0000000432 00000 n
+0000003195 00000 n
+0001334947 00000 n
+0000003216 00000 n
+0000006355 00000 n
+0001335093 00000 n
+0000006376 00000 n
+0000010281 00000 n
+0001335241 00000 n
+0000010303 00000 n
+0000012529 00000 n
+0001335389 00000 n
+0000012551 00000 n
+0000014643 00000 n
+0001335572 00000 n
+0000014665 00000 n
+0000017406 00000 n
+0001335747 00000 n
+0000017428 00000 n
+0000018498 00000 n
+0001335946 00000 n
+0000018519 00000 n
+0000018757 00000 n
+0001336094 00000 n
+0000018778 00000 n
+0000025251 00000 n
+0000025273 00000 n
+0001336242 00000 n
+0000027232 00000 n
+0000034930 00000 n
+0000034952 00000 n
+0001336390 00000 n
+0000041854 00000 n
+0000047492 00000 n
+0001336538 00000 n
+0000047514 00000 n
+0000049371 00000 n
+0001336686 00000 n
+0000049393 00000 n
+0000052731 00000 n
+0001336834 00000 n
+0000052753 00000 n
+0000055920 00000 n
+0001336982 00000 n
+0000055942 00000 n
+0000069604 00000 n
+0001337130 00000 n
+0000069627 00000 n
+0000072644 00000 n
+0001337297 00000 n
+0000072666 00000 n
+0000076190 00000 n
+0001337472 00000 n
+0000076212 00000 n
+0000079014 00000 n
+0001337620 00000 n
+0000079036 00000 n
+0000082032 00000 n
+0001337768 00000 n
+0000082054 00000 n
+0000084798 00000 n
+0001337916 00000 n
+0000084820 00000 n
+0000087979 00000 n
+0001338064 00000 n
+0000088001 00000 n
+0000091347 00000 n
+0001338212 00000 n
+0000091369 00000 n
+0000094470 00000 n
+0001338360 00000 n
+0000094492 00000 n
+0000097631 00000 n
+0001338508 00000 n
+0000097653 00000 n
+0000101491 00000 n
+0001338683 00000 n
+0000101513 00000 n
+0000105105 00000 n
+0001338850 00000 n
+0000105127 00000 n
+0000108084 00000 n
+0001338998 00000 n
+0000108106 00000 n
+0000111020 00000 n
+0001339146 00000 n
+0000111042 00000 n
+0000114158 00000 n
+0001339294 00000 n
+0000114180 00000 n
+0000117010 00000 n
+0001339442 00000 n
+0000117032 00000 n
+0000119377 00000 n
+0001339590 00000 n
+0000119399 00000 n
+0000122042 00000 n
+0001339739 00000 n
+0000122065 00000 n
+0000125887 00000 n
+0001339889 00000 n
+0000125910 00000 n
+0000128968 00000 n
+0001340039 00000 n
+0000128991 00000 n
+0000132518 00000 n
+0001340189 00000 n
+0000132541 00000 n
+0000135582 00000 n
+0001340358 00000 n
+0000135605 00000 n
+0000139005 00000 n
+0001340508 00000 n
+0000139028 00000 n
+0000143209 00000 n
+0001340658 00000 n
+0000143232 00000 n
+0000145901 00000 n
+0001340808 00000 n
+0000145924 00000 n
+0000149662 00000 n
+0001340977 00000 n
+0000149685 00000 n
+0000153107 00000 n
+0001341154 00000 n
+0000153130 00000 n
+0000155746 00000 n
+0001341304 00000 n
+0000155769 00000 n
+0000158818 00000 n
+0001341473 00000 n
+0000158841 00000 n
+0000160374 00000 n
+0001341623 00000 n
+0000160397 00000 n
+0000163394 00000 n
+0001341773 00000 n
+0000163417 00000 n
+0000167001 00000 n
+0001341923 00000 n
+0000167024 00000 n
+0000169221 00000 n
+0001342073 00000 n
+0000169244 00000 n
+0000171802 00000 n
+0001342223 00000 n
+0000171825 00000 n
+0000173934 00000 n
+0001342373 00000 n
+0000173957 00000 n
+0000177160 00000 n
+0001342550 00000 n
+0000177183 00000 n
+0000181227 00000 n
+0001342700 00000 n
+0000181250 00000 n
+0000184308 00000 n
+0001342885 00000 n
+0000184331 00000 n
+0000186820 00000 n
+0001343035 00000 n
+0000186843 00000 n
+0000190331 00000 n
+0001343212 00000 n
+0000190354 00000 n
+0000192824 00000 n
+0001343405 00000 n
+0000192847 00000 n
+0000196007 00000 n
+0001343574 00000 n
+0000196030 00000 n
+0000197386 00000 n
+0001343724 00000 n
+0000197409 00000 n
+0000200661 00000 n
+0001343874 00000 n
+0000200684 00000 n
+0000204420 00000 n
+0001344024 00000 n
+0000204443 00000 n
+0000208572 00000 n
+0001344174 00000 n
+0000208595 00000 n
+0000212438 00000 n
+0001344324 00000 n
+0000212461 00000 n
+0000216136 00000 n
+0001344474 00000 n
+0000216159 00000 n
+0000219843 00000 n
+0001344624 00000 n
+0000219866 00000 n
+0000223178 00000 n
+0001344774 00000 n
+0000223201 00000 n
+0000226240 00000 n
+0001344924 00000 n
+0000226263 00000 n
+0000227792 00000 n
+0001345101 00000 n
+0000227815 00000 n
+0000230481 00000 n
+0001345251 00000 n
+0000230504 00000 n
+0000233418 00000 n
+0001345401 00000 n
+0000233441 00000 n
+0000235024 00000 n
+0000235047 00000 n
+0000285856 00000 n
+0001345551 00000 n
+0000285880 00000 n
+0000289511 00000 n
+0001345701 00000 n
+0000289534 00000 n
+0000292338 00000 n
+0001345851 00000 n
+0000292361 00000 n
+0000295657 00000 n
+0001346020 00000 n
+0000295680 00000 n
+0000298772 00000 n
+0001346170 00000 n
+0000298795 00000 n
+0000301983 00000 n
+0001346339 00000 n
+0000302006 00000 n
+0000305344 00000 n
+0001346508 00000 n
+0000305367 00000 n
+0000307800 00000 n
+0001346658 00000 n
+0000307823 00000 n
+0000311378 00000 n
+0001346808 00000 n
+0000311401 00000 n
+0000312828 00000 n
+0001346958 00000 n
+0000312851 00000 n
+0000314655 00000 n
+0001347108 00000 n
+0000314678 00000 n
+0000317293 00000 n
+0001347258 00000 n
+0000317316 00000 n
+0000320157 00000 n
+0001347427 00000 n
+0000320180 00000 n
+0000323386 00000 n
+0001347652 00000 n
+0000323409 00000 n
+0000326362 00000 n
+0001347829 00000 n
+0000326385 00000 n
+0000329901 00000 n
+0001348046 00000 n
+0000329924 00000 n
+0000333614 00000 n
+0001348271 00000 n
+0000333637 00000 n
+0000337246 00000 n
+0001348480 00000 n
+0000337269 00000 n
+0000339241 00000 n
+0001348630 00000 n
+0000339264 00000 n
+0000342954 00000 n
+0001348780 00000 n
+0000342977 00000 n
+0000346123 00000 n
+0001348930 00000 n
+0000346146 00000 n
+0000346719 00000 n
+0001349080 00000 n
+0000346741 00000 n
+0000350401 00000 n
+0001349377 00000 n
+0000350424 00000 n
+0000351483 00000 n
+0001349527 00000 n
+0000351505 00000 n
+0000355133 00000 n
+0001349677 00000 n
+0000355156 00000 n
+0000357920 00000 n
+0001349870 00000 n
+0000357943 00000 n
+0000359631 00000 n
+0001350020 00000 n
+0000359654 00000 n
+0000361902 00000 n
+0001350197 00000 n
+0000361925 00000 n
+0000363614 00000 n
+0001350366 00000 n
+0000363637 00000 n
+0000367046 00000 n
+0001350535 00000 n
+0000367069 00000 n
+0000369865 00000 n
+0001350685 00000 n
+0000369888 00000 n
+0000372533 00000 n
+0001350854 00000 n
+0000372556 00000 n
+0000374841 00000 n
+0001351004 00000 n
+0000374864 00000 n
+0000377840 00000 n
+0001351173 00000 n
+0000377863 00000 n
+0000381008 00000 n
+0001351350 00000 n
+0000381031 00000 n
+0000383724 00000 n
+0001351500 00000 n
+0000383747 00000 n
+0000385906 00000 n
+0001351669 00000 n
+0000385929 00000 n
+0000388821 00000 n
+0001351846 00000 n
+0000388844 00000 n
+0000391616 00000 n
+0001352031 00000 n
+0000391639 00000 n
+0000393964 00000 n
+0001352181 00000 n
+0000393987 00000 n
+0000397533 00000 n
+0001352374 00000 n
+0000397556 00000 n
+0000399924 00000 n
+0001352543 00000 n
+0000399947 00000 n
+0000400718 00000 n
+0001352693 00000 n
+0000400740 00000 n
+0000402339 00000 n
+0001352843 00000 n
+0000402362 00000 n
+0000404034 00000 n
+0001352993 00000 n
+0000404057 00000 n
+0000407265 00000 n
+0001353143 00000 n
+0000407288 00000 n
+0000408377 00000 n
+0001353293 00000 n
+0000408400 00000 n
+0000412045 00000 n
+0001353443 00000 n
+0000412068 00000 n
+0000415885 00000 n
+0001353593 00000 n
+0000415908 00000 n
+0000419304 00000 n
+0001353743 00000 n
+0000419327 00000 n
+0000421901 00000 n
+0001353893 00000 n
+0000421924 00000 n
+0000424045 00000 n
+0001354043 00000 n
+0000424068 00000 n
+0000426796 00000 n
+0001354244 00000 n
+0000426819 00000 n
+0000427539 00000 n
+0001354394 00000 n
+0000427561 00000 n
+0000431523 00000 n
+0001354571 00000 n
+0000431546 00000 n
+0000435359 00000 n
+0001354721 00000 n
+0000435382 00000 n
+0000439405 00000 n
+0001354871 00000 n
+0000439428 00000 n
+0000442675 00000 n
+0001355021 00000 n
+0000442698 00000 n
+0000446846 00000 n
+0001355171 00000 n
+0000446869 00000 n
+0000451586 00000 n
+0001355321 00000 n
+0000451609 00000 n
+0000456187 00000 n
+0001355506 00000 n
+0000456210 00000 n
+0000458838 00000 n
+0001355656 00000 n
+0000458861 00000 n
+0000461762 00000 n
+0001355806 00000 n
+0000461785 00000 n
+0000464608 00000 n
+0001355956 00000 n
+0000464631 00000 n
+0000467318 00000 n
+0001356106 00000 n
+0000467341 00000 n
+0000468314 00000 n
+0001356256 00000 n
+0000468336 00000 n
+0000469173 00000 n
+0001381814 00000 n
+0001381980 00000 n
+0001382192 00000 n
+0001382402 00000 n
+0001382609 00000 n
+0001382767 00000 n
+0001382997 00000 n
+0001383145 00000 n
+0001383293 00000 n
+0001383410 00000 n
+0001383531 00000 n
+0001383673 00000 n
+0001383815 00000 n
+0001383959 00000 n
+0001384080 00000 n
+0001384203 00000 n
+0001384367 00000 n
+0001384549 00000 n
+0001384727 00000 n
+0001384887 00000 n
+0001385049 00000 n
+0001385168 00000 n
+0001385289 00000 n
+0001385507 00000 n
+0001385628 00000 n
+0001385749 00000 n
+0001385870 00000 n
+0001386052 00000 n
+0001386234 00000 n
+0001386388 00000 n
+0001386548 00000 n
+0001386695 00000 n
+0001386847 00000 n
+0001386998 00000 n
+0001387145 00000 n
+0001387290 00000 n
+0001387436 00000 n
+0001387585 00000 n
+0001387730 00000 n
+0001387875 00000 n
+0001388027 00000 n
+0001388179 00000 n
+0001388329 00000 n
+0001388478 00000 n
+0001388630 00000 n
+0001388779 00000 n
+0001388980 00000 n
+0001389145 00000 n
+0001389310 00000 n
+0001389489 00000 n
+0001389675 00000 n
+0001389889 00000 n
+0001390104 00000 n
+0001390227 00000 n
+0001390434 00000 n
+0001390591 00000 n
+0001390757 00000 n
+0001390973 00000 n
+0001391189 00000 n
+0001391310 00000 n
+0001391494 00000 n
+0001391714 00000 n
+0001391868 00000 n
+0001392022 00000 n
+0001392193 00000 n
+0001392347 00000 n
+0001392464 00000 n
+0001392585 00000 n
+0001392735 00000 n
+0001392928 00000 n
+0001393121 00000 n
+0001393262 00000 n
+0001393401 00000 n
+0001393592 00000 n
+0001393785 00000 n
+0001393906 00000 n
+0001394056 00000 n
+0001394177 00000 n
+0001394300 00000 n
+0001394423 00000 n
+0001394637 00000 n
+0001394849 00000 n
+0001395002 00000 n
+0001395176 00000 n
+0001395350 00000 n
+0001395522 00000 n
+0001395696 00000 n
+0001395873 00000 n
+0001396044 00000 n
+0001396221 00000 n
+0001396402 00000 n
+0001396583 00000 n
+0001396737 00000 n
+0001396857 00000 n
+0001396977 00000 n
+0001397095 00000 n
+0001397259 00000 n
+0001397382 00000 n
+0001397502 00000 n
+0001397622 00000 n
+0001397743 00000 n
+0001397862 00000 n
+0001397981 00000 n
+0001398102 00000 n
+0001398221 00000 n
+0001398342 00000 n
+0001398463 00000 n
+0001398584 00000 n
+0001398705 00000 n
+0001398826 00000 n
+0001398947 00000 n
+0001399068 00000 n
+0001399189 00000 n
+0001399308 00000 n
+0001399427 00000 n
+0001399546 00000 n
+0001399667 00000 n
+0001399786 00000 n
+0001399907 00000 n
+0001400027 00000 n
+0001400147 00000 n
+0001380664 00000 n
+0000469195 00000 n
+0000470020 00000 n
+0000470042 00000 n
+0000470235 00000 n
+0000470555 00000 n
+0000470735 00000 n
+0000485700 00000 n
+0000485724 00000 n
+0000485922 00000 n
+0000486597 00000 n
+0000487114 00000 n
+0000502117 00000 n
+0000502141 00000 n
+0000502337 00000 n
+0000502937 00000 n
+0000503379 00000 n
+0000511332 00000 n
+0000511355 00000 n
+0000511556 00000 n
+0000511900 00000 n
+0000512110 00000 n
+0000521792 00000 n
+0000521815 00000 n
+0000522018 00000 n
+0000522508 00000 n
+0000522858 00000 n
+0000601204 00000 n
+0000601228 00000 n
+0000601418 00000 n
+0000602364 00000 n
+0000603332 00000 n
+0000689984 00000 n
+0000690008 00000 n
+0000690208 00000 n
+0000691154 00000 n
+0000692126 00000 n
+0000732054 00000 n
+0000732078 00000 n
+0000732273 00000 n
+0000733219 00000 n
+0000734188 00000 n
+0000802170 00000 n
+0000802194 00000 n
+0000802391 00000 n
+0000803337 00000 n
+0000804308 00000 n
+0000892097 00000 n
+0000892121 00000 n
+0000892316 00000 n
+0000893262 00000 n
+0000894228 00000 n
+0000984832 00000 n
+0000984856 00000 n
+0000985056 00000 n
+0000986002 00000 n
+0000986972 00000 n
+0001087548 00000 n
+0001087573 00000 n
+0001087766 00000 n
+0001088712 00000 n
+0001089680 00000 n
+0001089768 00000 n
+0001090072 00000 n
+0001090256 00000 n
+0001090320 00000 n
+0001157376 00000 n
+0001157400 00000 n
+0001157597 00000 n
+0001158543 00000 n
+0001159515 00000 n
+0001260102 00000 n
+0001260127 00000 n
+0001260320 00000 n
+0001261266 00000 n
+0001262238 00000 n
+0001332159 00000 n
+0001332183 00000 n
+0001332373 00000 n
+0001333319 00000 n
+0001334286 00000 n
+0001334507 00000 n
+0001356406 00000 n
+0001356467 00000 n
+0001356706 00000 n
+0001356998 00000 n
+0001357186 00000 n
+0001357402 00000 n
+0001357545 00000 n
+0001357721 00000 n
+0001357884 00000 n
+0001358076 00000 n
+0001358264 00000 n
+0001358466 00000 n
+0001358677 00000 n
+0001358864 00000 n
+0001359016 00000 n
+0001359196 00000 n
+0001359380 00000 n
+0001359567 00000 n
+0001359823 00000 n
+0001360025 00000 n
+0001360237 00000 n
+0001360438 00000 n
+0001360582 00000 n
+0001360759 00000 n
+0001360960 00000 n
+0001361149 00000 n
+0001361322 00000 n
+0001361550 00000 n
+0001361790 00000 n
+0001361966 00000 n
+0001362238 00000 n
+0001362423 00000 n
+0001362616 00000 n
+0001362815 00000 n
+0001362980 00000 n
+0001363181 00000 n
+0001363370 00000 n
+0001363545 00000 n
+0001363702 00000 n
+0001363875 00000 n
+0001364140 00000 n
+0001364333 00000 n
+0001364682 00000 n
+0001364873 00000 n
+0001365030 00000 n
+0001365289 00000 n
+0001365466 00000 n
+0001365635 00000 n
+0001365822 00000 n
+0001366027 00000 n
+0001366300 00000 n
+0001366531 00000 n
+0001366806 00000 n
+0001366971 00000 n
+0001367200 00000 n
+0001367433 00000 n
+0001367654 00000 n
+0001367790 00000 n
+0001367961 00000 n
+0001368118 00000 n
+0001368290 00000 n
+0001368441 00000 n
+0001368588 00000 n
+0001368861 00000 n
+0001369104 00000 n
+0001369297 00000 n
+0001369522 00000 n
+0001369725 00000 n
+0001369990 00000 n
+0001370317 00000 n
+0001370460 00000 n
+0001370645 00000 n
+0001370838 00000 n
+0001371003 00000 n
+0001371188 00000 n
+0001371363 00000 n
+0001371540 00000 n
+0001371725 00000 n
+0001371916 00000 n
+0001372124 00000 n
+0001372323 00000 n
+0001372568 00000 n
+0001372757 00000 n
+0001372965 00000 n
+0001373134 00000 n
+0001373357 00000 n
+0001373550 00000 n
+0001373749 00000 n
+0001373926 00000 n
+0001374091 00000 n
+0001374246 00000 n
+0001374401 00000 n
+0001374558 00000 n
+0001374709 00000 n
+0001374896 00000 n
+0001375059 00000 n
+0001375226 00000 n
+0001375423 00000 n
+0001375575 00000 n
+0001375852 00000 n
+0001376089 00000 n
+0001376269 00000 n
+0001376454 00000 n
+0001376634 00000 n
+0001376879 00000 n
+0001377086 00000 n
+0001377283 00000 n
+0001377431 00000 n
+0001377614 00000 n
+0001377844 00000 n
+0001378093 00000 n
+0001378329 00000 n
+0001378498 00000 n
+0001378727 00000 n
+0001378972 00000 n
+0001379141 00000 n
+0001379290 00000 n
+0001379459 00000 n
+0001379659 00000 n
+0001379827 00000 n
+0001379988 00000 n
+0001380163 00000 n
+0001380408 00000 n
+0001400266 00000 n
+0001400429 00000 n
trailer
-<</Size 747/Root 745 0 R
-/Info 746 0 R
-/ID [ <C9D8D931FD41EC3790AB2E9F048A18A5>
-<C9D8D931FD41EC3790AB2E9F048A18A5> ]
-/DocChecksum /261B22386D35894C24E4AEDBD7A81579
+<</Size 741/Root 739 0 R
+/Info 740 0 R
+/ID [ <24B63F1BE4AFCD03F2C0FB253112D967>
+<24B63F1BE4AFCD03F2C0FB253112D967> ]
+/DocChecksum /BB3266B9F2D0652AA4016F44956F6F7E
>>
startxref
-1257598
+1400740
%%EOF
Modified: labs/jbossesb/workspace/mlittle/legstar/product/docs/ServicesGuide.odt
===================================================================
(Binary files differ)
Modified: labs/jbossesb/workspace/mlittle/legstar/product/docs/ServicesGuide.pdf
===================================================================
(Binary files differ)
Modified: labs/jbossesb/workspace/mlittle/legstar/product/etc/schemas/xml/jbossesb-1.0.1.xsd
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/etc/schemas/xml/jbossesb-1.0.1.xsd 2009-01-21 14:47:17 UTC (rev 24849)
+++ labs/jbossesb/workspace/mlittle/legstar/product/etc/schemas/xml/jbossesb-1.0.1.xsd 2009-01-21 15:38:08 UTC (rev 24850)
@@ -261,6 +261,7 @@
</xsd:annotation>
<xsd:complexType>
<xsd:sequence>
+ <xsd:element maxOccurs="1" minOccurs="0" ref="jesb:security" />
<xsd:element maxOccurs="unbounded" minOccurs="0"
ref="jesb:property" />
<xsd:element maxOccurs="1" minOccurs="0"
@@ -268,7 +269,7 @@
<xsd:element maxOccurs="1" minOccurs="0"
ref="jesb:actions" />
</xsd:sequence>
- <xsd:attribute name="category" type="xsd:string"
+ <xsd:attribute name="category"
use="required">
<xsd:annotation>
<xsd:documentation xml:lang="en">
@@ -276,8 +277,13 @@
a reference to this service in the registry.
</xsd:documentation>
</xsd:annotation>
+ <xsd:simpleType>
+ <xsd:restriction base="xsd:string">
+ <xsd:maxLength value="255"/>
+ </xsd:restriction>
+ </xsd:simpleType>
</xsd:attribute>
- <xsd:attribute name="name" type="xsd:string"
+ <xsd:attribute name="name"
use="required">
<xsd:annotation>
<xsd:documentation xml:lang="en">
@@ -285,8 +291,13 @@
reference to this service in the registry.
</xsd:documentation>
</xsd:annotation>
+ <xsd:simpleType>
+ <xsd:restriction base="xsd:string">
+ <xsd:maxLength value="255"/>
+ </xsd:restriction>
+ </xsd:simpleType>
</xsd:attribute>
- <xsd:attribute name="description" type="xsd:string"
+ <xsd:attribute name="description"
use="required">
<xsd:annotation>
<xsd:documentation xml:lang="en">
@@ -295,6 +306,11 @@
this service can be understood by a human.
</xsd:documentation>
</xsd:annotation>
+ <xsd:simpleType>
+ <xsd:restriction base="xsd:string">
+ <xsd:maxLength value="255"/>
+ </xsd:restriction>
+ </xsd:simpleType>
</xsd:attribute>
<xsd:attribute name="invmScope" type="jesb:invmScope" use="optional">
<xsd:annotation>
@@ -348,6 +364,11 @@
ref="jesb:action" />
</xsd:sequence>
<xsd:attribute name="mep" type="jesb:mepType" />
+ <xsd:attribute name="inXsd" type="xsd:string" />
+ <xsd:attribute name="outXsd" type="xsd:string" />
+ <xsd:attribute name="faultXsd" type="xsd:string" />
+ <xsd:attribute name="webservice" type="xsd:boolean" default="true"/>
+ <xsd:attribute name="validate" type="xsd:boolean" default="false"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="action">
@@ -393,6 +414,55 @@
</xsd:complexType>
</xsd:element>
+ <xsd:element name="security">
+ <xsd:annotation>
+ <xsd:documentation xml:lang="en">
+ </xsd:documentation>
+ </xsd:annotation>
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element maxOccurs="unbounded" minOccurs="0" ref="jesb:property" />
+ </xsd:sequence>
+ <xsd:attribute name="runAs" type="xsd:string" use="optional">
+ <xsd:annotation>
+ <xsd:documentation xml:lang="en">
+ Is used to specify that a specific security role given by the role-name value should be used
+ as the security identity for this service.
+ </xsd:documentation>
+ </xsd:annotation>
+ </xsd:attribute>
+ <xsd:attribute name="rolesAllowed" type="xsd:string" use="optional">
+ <xsd:annotation>
+ <xsd:documentation xml:lang="en">
+ Specifies one or more logical roles that are allowed to acccess the service.
+ </xsd:documentation>
+ </xsd:annotation>
+ </xsd:attribute>
+ <xsd:attribute name="moduleName" type="xsd:string" use="required">
+ <xsd:annotation>
+ <xsd:documentation xml:lang="en">
+ </xsd:documentation>
+ </xsd:annotation>
+ </xsd:attribute>
+ <xsd:attribute name="useCallerIdentity" type="xsd:string" use="optional">
+ <xsd:annotation>
+ <xsd:documentation xml:lang="en">
+ Is used to indicate that the current caller's identity should be propagated as the security identity
+ this service.
+ </xsd:documentation>
+ </xsd:annotation>
+ </xsd:attribute>
+ <xsd:attribute name="callbackHandler" type="xsd:string" use="optional">
+ <xsd:annotation>
+ <xsd:documentation xml:lang="en">
+ CallbackHandler implementation class. This will override the global callbackhandler
+ which can be specified in jbossesb-properties.xml
+ </xsd:documentation>
+ </xsd:annotation>
+ </xsd:attribute>
+ </xsd:complexType>
+ </xsd:element>
+
<!-- 88888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888
Listener base types.
88888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888-->
Modified: labs/jbossesb/workspace/mlittle/legstar/product/etc/schemas/xml/jbossesb-1.0.1.xsdconfig
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/etc/schemas/xml/jbossesb-1.0.1.xsdconfig 2009-01-21 14:47:17 UTC (rev 24849)
+++ labs/jbossesb/workspace/mlittle/legstar/product/etc/schemas/xml/jbossesb-1.0.1.xsdconfig 2009-01-21 15:38:08 UTC (rev 24850)
@@ -9,6 +9,6 @@
<!-- Use the "namespace" element to map a namespace to the Java package
name that should be generated. -->
<xb:namespace uri="http://anonsvn.labs.jboss.com/labs/jbossesb/trunk/product/etc/schemas/xml/jbossesb-1.0.1.xsd">
- <xb:package>org.jboss.soa.esb.listeners.config.xbeanmodel</xb:package>
+ <xb:package>org.jboss.soa.esb.listeners.config.xbeanmodel101</xb:package>
</xb:namespace>
-</xb:config>
\ No newline at end of file
+</xb:config>
Copied: labs/jbossesb/workspace/mlittle/legstar/product/etc/schemas/xml/jbossesb-1.1.0.xsd (from rev 24846, labs/jbossesb/trunk/product/etc/schemas/xml/jbossesb-1.1.0.xsd)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/etc/schemas/xml/jbossesb-1.1.0.xsd (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/etc/schemas/xml/jbossesb-1.1.0.xsd 2009-01-21 15:38:08 UTC (rev 24850)
@@ -0,0 +1,1785 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--Generated by Turbo XML 2.4.1.100. Conforms to w3c http://www.w3.org/2001/XMLSchema-->
+<xsd:schema
+ xmlns:jesb="http://anonsvn.labs.jboss.com/labs/jbossesb/trunk/product/etc/schemas/xml/jbossesb-1.1.0.xsd"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+ elementFormDefault="qualified"
+ targetNamespace="http://anonsvn.labs.jboss.com/labs/jbossesb/trunk/product/etc/schemas/xml/jbossesb-1.1.0.xsd">
+
+ <!-- 88888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888
+ Document root + some basic types.
+ 88888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888-->
+
+ <xsd:element name="jbossesb">
+ <xsd:annotation>
+ <xsd:documentation xml:lang="en">
+ The jbossesb configuration for a single instance.
+ </xsd:documentation>
+ </xsd:annotation>
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element maxOccurs="1" minOccurs="0"
+ ref="jesb:providers" />
+ <xsd:element maxOccurs="1" minOccurs="0"
+ ref="jesb:services" />
+ </xsd:sequence>
+ <xsd:attribute default="180" name="parameterReloadSecs"
+ use="optional" />
+ </xsd:complexType>
+ </xsd:element>
+
+ <xsd:element name="property">
+ <xsd:annotation>
+ <xsd:documentation xml:lang="en">
+ A simple name-value pair.
+ </xsd:documentation>
+ </xsd:annotation>
+ <xsd:complexType>
+ <xsd:complexContent>
+ <xsd:extension base="xsd:anyType">
+ <xsd:attribute name="name" type="xsd:string"
+ use="required" />
+ <xsd:attribute name="value" type="xsd:string" />
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+ </xsd:element>
+
+ <!-- 88888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888
+ Provider and Bus base types.
+ 88888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888-->
+
+ <xsd:element name="providers">
+ <xsd:annotation>
+ <xsd:documentation xml:lang="en">
+ A container for the providers referenced in the jbossesb
+ config file
+ </xsd:documentation>
+ </xsd:annotation>
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element maxOccurs="unbounded" minOccurs="0"
+ ref="jesb:provider" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:complexType abstract="true" name="provider">
+ <xsd:annotation>
+ <xsd:documentation xml:lang="en">
+ Abstract provider.
+ </xsd:documentation>
+ </xsd:annotation>
+ <xsd:sequence>
+ <xsd:element maxOccurs="unbounded" minOccurs="0"
+ ref="jesb:property" />
+ </xsd:sequence>
+ <xsd:attribute name="name" type="xsd:string" use="required" />
+ </xsd:complexType>
+ <xsd:element abstract="true" name="provider" type="jesb:provider" />
+
+ <xsd:complexType name="bus-provider">
+ <xsd:complexContent>
+ <xsd:extension base="jesb:provider">
+ <xsd:annotation>
+ <xsd:documentation xml:lang="en">
+ A provider of a bus. So for instance you can
+ have a jms-provider (JBossMQ) or an
+ ftp-provider.
+ </xsd:documentation>
+ </xsd:annotation>
+ <xsd:sequence>
+ <xsd:element maxOccurs="unbounded" minOccurs="1"
+ ref="jesb:bus" />
+ </xsd:sequence>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+ <xsd:element name="bus-provider"
+ substitutionGroup="jesb:provider">
+ <xsd:annotation>
+ <xsd:documentation xml:lang="en">
+ Generic Bus Provider.
+ </xsd:documentation>
+ </xsd:annotation>
+ <xsd:complexType>
+ <xsd:complexContent>
+ <xsd:extension base="jesb:bus-provider" />
+ </xsd:complexContent>
+ </xsd:complexType>
+ </xsd:element>
+
+ <xsd:complexType name="bus">
+ <xsd:annotation>
+ <xsd:documentation xml:lang="en">
+ A bus (also called "channel" by others) is a means by
+ which Services communicate with each other (JMS, FTP,
+ HTTP, etc).
+ </xsd:documentation>
+ </xsd:annotation>
+ <xsd:sequence>
+ <xsd:element maxOccurs="unbounded" minOccurs="0"
+ ref="jesb:property" />
+ </xsd:sequence>
+ <xsd:attribute name="busid" type="xsd:string" use="required">
+ <xsd:annotation>
+ <xsd:documentation xml:lang="en">
+ An id such that this bus can be referenced by
+ Service listn.
+ </xsd:documentation>
+ </xsd:annotation>
+ </xsd:attribute>
+ </xsd:complexType>
+ <xsd:element name="bus" type="jesb:bus" />
+
+ <xsd:element name="schedule-provider"
+ substitutionGroup="jesb:provider">
+ <xsd:complexType>
+ <xsd:complexContent>
+ <xsd:extension base="jesb:provider">
+ <xsd:sequence>
+ <xsd:element maxOccurs="unbounded" minOccurs="1"
+ ref="jesb:schedule" />
+ </xsd:sequence>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+ </xsd:element>
+
+ <xsd:complexType abstract="true" name="schedule">
+ <xsd:annotation>
+ <xsd:documentation xml:lang="en">
+ Schedule Configuration.
+ </xsd:documentation>
+ </xsd:annotation>
+ <xsd:sequence>
+ <xsd:element maxOccurs="unbounded" minOccurs="0"
+ ref="jesb:property" />
+ </xsd:sequence>
+ <xsd:attribute name="scheduleid" type="xsd:string"
+ use="required">
+ <xsd:annotation>
+ <xsd:documentation xml:lang="en">
+ An id such that this schedule can be referenced by
+ Service listner.
+ </xsd:documentation>
+ </xsd:annotation>
+ </xsd:attribute>
+ <xsd:attribute name="startDate" type="xsd:dateTime"
+ use="optional">
+ <xsd:annotation>
+ <xsd:documentation xml:lang="en">
+ Schedule start time and date.
+ </xsd:documentation>
+ </xsd:annotation>
+ </xsd:attribute>
+ <xsd:attribute name="endDate" type="xsd:dateTime"
+ use="optional">
+ <xsd:annotation>
+ <xsd:documentation xml:lang="en">
+ Schedule end time and date.
+ </xsd:documentation>
+ </xsd:annotation>
+ </xsd:attribute>
+ </xsd:complexType>
+ <xsd:element abstract="true" name="schedule" type="jesb:schedule" />
+
+ <xsd:element name="simple-schedule"
+ substitutionGroup="jesb:schedule">
+ <xsd:complexType>
+ <xsd:complexContent>
+ <xsd:extension base="jesb:schedule">
+ <xsd:attribute name="frequency" use="optional" type="xsd:long" default="10">
+ <xsd:annotation>
+ <xsd:documentation xml:lang="en">Schedule frequency.</xsd:documentation>
+ </xsd:annotation>
+ </xsd:attribute>
+ <xsd:attribute name="frequencyUnits" use="optional" type="jesb:frequency-unit" default="seconds">
+ <xsd:annotation>
+ <xsd:documentation xml:lang="en">Schedule frequency time units.</xsd:documentation>
+ </xsd:annotation>
+ </xsd:attribute>
+ <xsd:attribute default="-1" name="execCount" type="xsd:int" use="optional">
+ <xsd:annotation>
+ <xsd:documentation xml:lang="en">
+ Schedule execution count. -1 to execute indefinitely.
+ </xsd:documentation>
+ </xsd:annotation>
+ </xsd:attribute>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+ </xsd:element>
+
+ <xsd:simpleType name="frequency-unit">
+ <xsd:restriction base="xsd:NMTOKEN">
+ <xsd:enumeration value="seconds"/>
+ <xsd:enumeration value="milliseconds"/>
+ </xsd:restriction>
+ </xsd:simpleType>
+
+ <xsd:element name="cron-schedule"
+ substitutionGroup="jesb:schedule">
+ <xsd:complexType>
+ <xsd:complexContent>
+ <xsd:extension base="jesb:schedule">
+ <xsd:attribute name="cronExpression"
+ type="xsd:string" use="optional">
+ <xsd:annotation>
+ <xsd:documentation xml:lang="en">
+ Schedule CRON expression.
+ </xsd:documentation>
+ </xsd:annotation>
+ </xsd:attribute>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+ </xsd:element>
+
+ <!-- 88888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888
+ Service and Action types.
+ 88888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888-->
+
+ <xsd:element name="services">
+ <xsd:annotation>
+ <xsd:documentation xml:lang="en">
+ A container for services.
+ </xsd:documentation>
+ </xsd:annotation>
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element maxOccurs="unbounded" minOccurs="1"
+ ref="jesb:service" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="service">
+ <xsd:annotation>
+ <xsd:documentation xml:lang="en">
+ A service has listener or gateways and a list of
+ actions.
+ </xsd:documentation>
+ </xsd:annotation>
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element maxOccurs="1" minOccurs="0" ref="jesb:security" />
+ <xsd:element maxOccurs="unbounded" minOccurs="0"
+ ref="jesb:property" />
+ <xsd:element maxOccurs="1" minOccurs="0"
+ ref="jesb:listeners" />
+ <xsd:element maxOccurs="1" minOccurs="0"
+ ref="jesb:actions" />
+ </xsd:sequence>
+ <xsd:attribute name="category"
+ use="required">
+ <xsd:annotation>
+ <xsd:documentation xml:lang="en">
+ The service category which will be used to store
+ a reference to this service in the registry.
+ </xsd:documentation>
+ </xsd:annotation>
+ <xsd:simpleType>
+ <xsd:restriction base="xsd:string">
+ <xsd:maxLength value="255"/>
+ </xsd:restriction>
+ </xsd:simpleType>
+ </xsd:attribute>
+ <xsd:attribute name="name"
+ use="required">
+ <xsd:annotation>
+ <xsd:documentation xml:lang="en">
+ The service name which will be used to store a
+ reference to this service in the registry.
+ </xsd:documentation>
+ </xsd:annotation>
+ <xsd:simpleType>
+ <xsd:restriction base="xsd:string">
+ <xsd:maxLength value="255"/>
+ </xsd:restriction>
+ </xsd:simpleType>
+ </xsd:attribute>
+ <xsd:attribute name="description"
+ use="required">
+ <xsd:annotation>
+ <xsd:documentation xml:lang="en">
+ The service description which stored with this
+ service in the registry, so that the purpose of
+ this service can be understood by a human.
+ </xsd:documentation>
+ </xsd:annotation>
+ <xsd:simpleType>
+ <xsd:restriction base="xsd:string">
+ <xsd:maxLength value="255"/>
+ </xsd:restriction>
+ </xsd:simpleType>
+ </xsd:attribute>
+ <xsd:attribute name="invmScope" type="jesb:invmScope" use="optional">
+ <xsd:annotation>
+ <xsd:documentation xml:lang="en">
+ All services are locally invokable over an "in VM" transport. Invokability
+ can be scoped using this attribute. An "invmScope" value of "NONE" means that
+ the Service should not be locally invokable over the "in VM" transport.
+ More fine grained scoping will be added in the future.
+ </xsd:documentation>
+ </xsd:annotation>
+ </xsd:attribute>
+ <xsd:attribute name="invmTransacted" type="xsd:boolean">
+ <xsd:annotation>
+ <xsd:documentation xml:lang="en">
+ Should the InVM listener execute in a transacted environment?
+ </xsd:documentation>
+ </xsd:annotation>
+ </xsd:attribute>
+ </xsd:complexType>
+ </xsd:element>
+
+ <xsd:simpleType name="invmScope">
+ <xsd:restriction base="xsd:NMTOKEN">
+ <!-- Not invokable over InVM -->
+ <xsd:enumeration value="NONE" />
+
+ <!-- Invokable over InVM only from within the same/local deployment. -->
+ <!-- xsd:enumeration value="LOCAL" / -->
+
+ <!-- (DEFAULT) Invokable over InVM from within the same classloader scope. -->
+ <xsd:enumeration value="GLOBAL" />
+ </xsd:restriction>
+ </xsd:simpleType>
+
+ <xsd:simpleType name="mepType">
+ <xsd:restriction base="xsd:string">
+ <xsd:enumeration value="RequestResponse" />
+ <xsd:enumeration value="OneWay" />
+ </xsd:restriction>
+ </xsd:simpleType>
+
+ <xsd:element name="actions">
+ <xsd:annotation>
+ <xsd:documentation xml:lang="en">
+ A container for actions belonging to this service.
+ </xsd:documentation>
+ </xsd:annotation>
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element maxOccurs="unbounded" minOccurs="1"
+ ref="jesb:action" />
+ </xsd:sequence>
+ <xsd:attribute name="mep" type="jesb:mepType" />
+ <xsd:attribute name="inXsd" type="xsd:string" />
+ <xsd:attribute name="outXsd" type="xsd:string" />
+ <xsd:attribute name="faultXsd" type="xsd:string" />
+ <xsd:attribute name="webservice" type="xsd:boolean" default="true"/>
+ <xsd:attribute name="validate" type="xsd:boolean" default="false"/>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="action">
+ <xsd:annotation>
+ <xsd:documentation xml:lang="en">
+ An action which will act on the message when it is
+ received by the service. Actions can be chained. Hence
+ you can specify a list of actions. Action are
+ 'pluggable' and can be custom code, however JBossESB
+ comes with a list of predefined actions.
+ </xsd:documentation>
+ </xsd:annotation>
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element maxOccurs="unbounded" minOccurs="0"
+ ref="jesb:property" />
+ </xsd:sequence>
+ <xsd:attribute name="name" type="xsd:string"
+ use="required">
+ <xsd:annotation>
+ <xsd:documentation xml:lang="en">
+ The logical name of the action.
+ </xsd:documentation>
+ </xsd:annotation>
+ </xsd:attribute>
+ <xsd:attribute name="class" type="xsd:string"
+ use="required">
+ <xsd:annotation>
+ <xsd:documentation xml:lang="en">
+ The full classname of the java class in which
+ this action is defined.
+ </xsd:documentation>
+ </xsd:annotation>
+ </xsd:attribute>
+ <xsd:attribute name="process" type="xsd:string">
+ <xsd:annotation>
+ <xsd:documentation xml:lang="en">
+ The name of the method on the action that needs
+ to be called when the message is received.
+ </xsd:documentation>
+ </xsd:annotation>
+ </xsd:attribute>
+ </xsd:complexType>
+ </xsd:element>
+
+ <xsd:element name="security">
+ <xsd:annotation>
+ <xsd:documentation xml:lang="en">
+ </xsd:documentation>
+ </xsd:annotation>
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element maxOccurs="unbounded" minOccurs="0" ref="jesb:property" />
+ </xsd:sequence>
+ <xsd:attribute name="runAs" type="xsd:string" use="optional">
+ <xsd:annotation>
+ <xsd:documentation xml:lang="en">
+ Is used to specify that a specific security role given by the role-name value should be used
+ as the security identity for this service.
+ </xsd:documentation>
+ </xsd:annotation>
+ </xsd:attribute>
+ <xsd:attribute name="rolesAllowed" type="xsd:string" use="optional">
+ <xsd:annotation>
+ <xsd:documentation xml:lang="en">
+ Specifies one or more logical roles that are allowed to acccess the service.
+ </xsd:documentation>
+ </xsd:annotation>
+ </xsd:attribute>
+ <xsd:attribute name="moduleName" type="xsd:string" use="required">
+ <xsd:annotation>
+ <xsd:documentation xml:lang="en">
+ </xsd:documentation>
+ </xsd:annotation>
+ </xsd:attribute>
+ <xsd:attribute name="useCallerIdentity" type="xsd:string" use="optional">
+ <xsd:annotation>
+ <xsd:documentation xml:lang="en">
+ Is used to indicate that the current caller's identity should be propagated as the security identity
+ this service.
+ </xsd:documentation>
+ </xsd:annotation>
+ </xsd:attribute>
+ <xsd:attribute name="callbackHandler" type="xsd:string" use="optional">
+ <xsd:annotation>
+ <xsd:documentation xml:lang="en">
+ CallbackHandler implementation class. This will override the global callbackhandler
+ which can be specified in jbossesb-properties.xml
+ </xsd:documentation>
+ </xsd:annotation>
+ </xsd:attribute>
+ </xsd:complexType>
+ </xsd:element>
+
+ <!-- 88888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888
+ Listener base types.
+ 88888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888-->
+
+ <xsd:element name="listeners">
+ <xsd:annotation>
+ <xsd:documentation xml:lang="en">
+ A container for all listener for a service.
+ </xsd:documentation>
+ </xsd:annotation>
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element maxOccurs="unbounded" minOccurs="1"
+ ref="jesb:listener" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:complexType name="listener">
+ <xsd:annotation>
+ <xsd:documentation xml:lang="en">
+ A listener is a listener or a gateway. The listener
+ defines to which bus the service is listening. The
+ service can simultaneniously listen to multiple buses.
+ </xsd:documentation>
+ </xsd:annotation>
+ <xsd:sequence>
+ <xsd:element maxOccurs="unbounded" minOccurs="0"
+ ref="jesb:property" />
+ </xsd:sequence>
+ <xsd:attribute name="name" type="xsd:string" use="required">
+ <xsd:annotation>
+ <xsd:documentation xml:lang="en">
+ The logical name of the listener.
+ </xsd:documentation>
+ </xsd:annotation>
+ </xsd:attribute>
+ <xsd:attribute default="$not-defined$" name="busidref"
+ type="xsd:string" use="optional">
+ <xsd:annotation>
+ <xsd:documentation xml:lang="en">
+ A reference to an existing bus, as defined in the
+ 'buses' section of this jbossesb config.
+ </xsd:documentation>
+ </xsd:annotation>
+ </xsd:attribute>
+ <xsd:attribute default="1" name="maxThreads" type="xsd:int"
+ use="optional">
+ <xsd:annotation>
+ <xsd:documentation xml:lang="en">
+ The number of threads which will be started for this
+ listener.
+ </xsd:documentation>
+ </xsd:annotation>
+ </xsd:attribute>
+ <xsd:attribute default="false" name="is-gateway"
+ type="xsd:boolean" use="optional">
+ <xsd:annotation>
+ <xsd:documentation xml:lang="en">
+ true if the listener is a gateway. A gateway is an
+ ESB-Unware listener, while a listener is ESB-aware
+ and as such expects jbossesb formatted messages.
+ </xsd:documentation>
+ </xsd:annotation>
+ </xsd:attribute>
+ </xsd:complexType>
+ <xsd:element name="listener" type="jesb:listener" />
+
+ <xsd:complexType abstract="true"
+ name="abstract-scheduled-listener">
+ <xsd:annotation>
+ <xsd:documentation xml:lang="en">
+ Abstract scheduled listener.
+ </xsd:documentation>
+ </xsd:annotation>
+ <xsd:complexContent>
+ <xsd:extension base="jesb:listener">
+ <xsd:attribute default="-1"
+ name="poll-frequency-seconds" type="xsd:int" use="optional">
+<!-- Purposely defaults to -1 -->
+ <xsd:annotation>
+ <xsd:documentation xml:lang="en">
+ DEPRECATED (use "schedule-frequency" or
+ "scheduleidref"): The frequency with which
+ this listener is scheduled (in seconds).
+ Defaults to 10 seconds.
+ </xsd:documentation>
+ </xsd:annotation>
+ </xsd:attribute>
+ <xsd:attribute default="-1" name="schedule-frequency"
+ type="xsd:int" use="optional">
+<!-- Purposely defaults to -1 -->
+ <xsd:annotation>
+ <xsd:documentation xml:lang="en">
+ The frequency with which this listener is
+ scheduled (in seconds). Defaults to 10
+ seconds.
+ </xsd:documentation>
+ </xsd:annotation>
+ </xsd:attribute>
+ <xsd:attribute name="scheduleidref" type="xsd:string"
+ use="optional">
+ <xsd:annotation>
+ <xsd:documentation xml:lang="en">
+ The id reference for the schedule that's
+ driving this scheduled listener.
+ </xsd:documentation>
+ </xsd:annotation>
+ </xsd:attribute>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="scheduled-listener"
+ substitutionGroup="jesb:listener">
+ <xsd:annotation>
+ <xsd:documentation xml:lang="en">
+ Scheduled listener.
+ </xsd:documentation>
+ </xsd:annotation>
+ <xsd:complexType>
+ <xsd:complexContent>
+ <xsd:extension
+ base="jesb:abstract-scheduled-listener">
+ <xsd:attribute name="event-processor"
+ type="xsd:string" use="required">
+ <xsd:annotation>
+ <xsd:documentation xml:lang="en">
+ Message Composer class name.
+ </xsd:documentation>
+ </xsd:annotation>
+ </xsd:attribute>
+ <xsd:attribute name="transacted"
+ type="xsd:boolean">
+ <xsd:annotation>
+ <xsd:documentation xml:lang="en">
+ Should the schedule execute in a
+ transacted environment?
+ </xsd:documentation>
+ </xsd:annotation>
+ </xsd:attribute>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+ </xsd:element>
+
+ <!-- JCA Types -->
+ <xsd:element name="activation-config">
+ <xsd:annotation>
+ <xsd:documentation xml:lang="en">
+ Activation configuration for jca bus or listener.
+ </xsd:documentation>
+ </xsd:annotation>
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element maxOccurs="unbounded" minOccurs="1"
+ ref="jesb:property" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="jca-gateway" substitutionGroup="jesb:listener">
+ <xsd:annotation>
+ <xsd:documentation xml:lang="en">
+ A specific gateway using JCA inflow.
+ </xsd:documentation>
+ </xsd:annotation>
+ <xsd:complexType>
+ <xsd:complexContent>
+ <xsd:extension base="jesb:listener">
+ <xsd:sequence>
+ <xsd:element maxOccurs="1" minOccurs="0"
+ ref="jesb:activation-config" />
+ </xsd:sequence>
+ <xsd:attribute name="adapter" type="xsd:string"
+ use="required" />
+ <xsd:attribute name="endpointClass"
+ type="xsd:string" use="required" />
+ <xsd:attribute name="messagingType"
+ type="xsd:string" use="optional" />
+ <xsd:attribute name="jcaBridge" type="xsd:string"
+ use="optional" />
+ <xsd:attribute name="transacted" type="xsd:boolean"
+ use="optional" />
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+ </xsd:element>
+
+ <!-- 88888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888
+ JMS Type Implementations.
+ 88888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888-->
+
+ <xsd:element name="jms-message-filter">
+ <xsd:annotation>
+ <xsd:documentation xml:lang="en">
+ A JMS filter can add information to a Queue, or Topic.
+ For example you can defined a message-selector. However,
+ you can also push the queue name and type into this
+ filter given you did not already specify them in the
+ jms-bus.
+ </xsd:documentation>
+ </xsd:annotation>
+ <xsd:complexType>
+ <xsd:attribute name="dest-name" type="xsd:string"
+ use="required">
+ <xsd:annotation>
+ <xsd:documentation xml:lang="en">
+ Name of the Queue of Topic.
+ </xsd:documentation>
+ </xsd:annotation>
+ </xsd:attribute>
+ <xsd:attribute name="dest-type" use="required">
+ <xsd:annotation>
+ <xsd:documentation xml:lang="en">
+ A Queue delivers a message once, a topic
+ broadcasts a message to all registered
+ listeners.
+ </xsd:documentation>
+ </xsd:annotation>
+ <xsd:simpleType>
+ <xsd:restriction base="xsd:NMTOKEN">
+ <xsd:enumeration value="QUEUE" />
+ <xsd:enumeration value="TOPIC" />
+ </xsd:restriction>
+ </xsd:simpleType>
+ </xsd:attribute>
+ <xsd:attribute name="selector" type="xsd:string">
+ <xsd:annotation>
+ <xsd:documentation xml:lang="en">
+ A message-selector allows multiple listeners to
+ register with the same queue/topic, but they
+ will filter on this message-selector.
+ </xsd:documentation>
+ </xsd:annotation>
+ </xsd:attribute>
+ <xsd:attribute default="true" name="persistent"
+ type="xsd:boolean" use="optional">
+ <xsd:annotation>
+ <xsd:documentation xml:lang="en">
+ If false, JMS messages will be sent
+ non-persistent. Default is to send messages with
+ DeliveryMode.PERSISTENT.
+ </xsd:documentation>
+ </xsd:annotation>
+ </xsd:attribute>
+ <xsd:attribute default="AUTO_ACKNOWLEDGE"
+ name="acknowledge-mode" type="xsd:string" use="optional">
+ <xsd:annotation>
+ <xsd:documentation xml:lang="en">
+ JMS Session acknowledge mode. Can be on of
+ AUTO_ACKNOWLEDGE (default), CLIENT_ACKNOWLEDGE,
+ or DUPS_OK_ACKNOWLEDGE.
+ </xsd:documentation>
+ </xsd:annotation>
+ </xsd:attribute>
+ <xsd:attribute
+ name="jms-security-principal" type="xsd:string" use="optional">
+ <xsd:annotation>
+ <xsd:documentation xml:lang="en">
+ JMS destination username. Will be used when creating a connection
+ to the destination.
+ </xsd:documentation>
+ </xsd:annotation>
+ </xsd:attribute>
+ <xsd:attribute
+ name="jms-security-credential" type="xsd:string" use="optional">
+ <xsd:annotation>
+ <xsd:documentation xml:lang="en">
+ JMS destination password. Will be used when creating a connection
+ to the destination. Will be ignored if username is not specified.
+ </xsd:documentation>
+ </xsd:annotation>
+ </xsd:attribute>
+ <xsd:attribute default="false" name="transacted"
+ type="xsd:boolean" use="optional">
+ <xsd:annotation>
+ <xsd:documentation xml:lang="en">
+ If true, JMS sessions will be transaction aware.
+ Default is false.
+ </xsd:documentation>
+ </xsd:annotation>
+ </xsd:attribute>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="jms-bus" substitutionGroup="jesb:bus">
+ <xsd:annotation>
+ <xsd:documentation xml:lang="en">
+ A JMS-Bus is a specific instance of a bus using the JMS
+ protocol.
+ </xsd:documentation>
+ </xsd:annotation>
+ <xsd:complexType>
+ <xsd:complexContent>
+ <xsd:extension base="jesb:bus">
+ <xsd:sequence>
+ <xsd:element maxOccurs="1" minOccurs="0"
+ ref="jesb:jms-message-filter" />
+ </xsd:sequence>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:complexType name="jms-provider-type">
+ <xsd:annotation>
+ <xsd:documentation xml:lang="en">
+ A specific instance of a provider, providing JMS.
+ </xsd:documentation>
+ </xsd:annotation>
+ <xsd:complexContent>
+ <xsd:extension base="jesb:bus-provider">
+ <xsd:attribute name="connection-factory"
+ type="xsd:string" use="required">
+ <xsd:annotation>
+ <xsd:documentation xml:lang="en">
+ The connection-factory used to lookup
+ queues/topics in a naming directory (JNDI)
+ </xsd:documentation>
+ </xsd:annotation>
+ </xsd:attribute>
+ <xsd:attribute name="jndi-context-factory"
+ type="xsd:string">
+ <xsd:annotation>
+ <xsd:documentation xml:lang="en">
+ The context factory class the JBossESB will
+ use to do naming lookups.
+ </xsd:documentation>
+ </xsd:annotation>
+ </xsd:attribute>
+ <xsd:attribute name="jndi-pkg-prefix"
+ type="xsd:string">
+ <xsd:annotation>
+ <xsd:documentation xml:lang="en">
+ The pkg-prefix which will be used to do
+ naming lookups. It is left empty by default.
+ </xsd:documentation>
+ </xsd:annotation>
+ </xsd:attribute>
+ <xsd:attribute name="jndi-URL" type="xsd:anyURI">
+ <xsd:annotation>
+ <xsd:documentation xml:lang="en">
+ The URL used to do naming lookups.
+ </xsd:documentation>
+ </xsd:annotation>
+ </xsd:attribute>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+ <xsd:element name="jms-provider" substitutionGroup="jesb:provider"
+ type="jesb:jms-provider-type" />
+
+ <xsd:element name="jms-jca-provider"
+ substitutionGroup="jesb:provider">
+ <xsd:annotation>
+ <xsd:documentation xml:lang="en">
+ A specific instance of a provider, providing JMS through
+ JCA inflow.
+ </xsd:documentation>
+ </xsd:annotation>
+ <xsd:complexType>
+ <xsd:complexContent>
+ <xsd:extension base="jesb:jms-provider-type">
+ <xsd:sequence>
+ <xsd:element maxOccurs="1" minOccurs="0"
+ ref="jesb:activation-config" />
+ </xsd:sequence>
+ <xsd:attribute name="adapter" type="xsd:string">
+ <xsd:annotation>
+ <xsd:documentation xml:lang="en">
+ The artifact containing the resource
+ adapter.
+ </xsd:documentation>
+ </xsd:annotation>
+ </xsd:attribute>
+ <xsd:attribute name="endpointClass"
+ type="xsd:string">
+ <xsd:annotation>
+ <xsd:documentation xml:lang="en">
+ The class name of the JCA endpoint.
+ </xsd:documentation>
+ </xsd:annotation>
+ </xsd:attribute>
+ <xsd:attribute name="messagingType"
+ type="xsd:string">
+ <xsd:annotation>
+ <xsd:documentation xml:lang="en">
+ The class name of the messaging specific
+ interface.
+ </xsd:documentation>
+ </xsd:annotation>
+ </xsd:attribute>
+ <xsd:attribute name="jcaBridge" type="xsd:string">
+ <xsd:annotation>
+ <xsd:documentation xml:lang="en">
+ The class name of the JCA Bridge.
+ </xsd:documentation>
+ </xsd:annotation>
+ </xsd:attribute>
+ <xsd:attribute name="transacted"
+ type="xsd:boolean">
+ <xsd:annotation>
+ <xsd:documentation xml:lang="en">
+ The transacted flag.
+ </xsd:documentation>
+ </xsd:annotation>
+ </xsd:attribute>
+ <xsd:attribute name="providerAdapterJNDI" type="xsd:string">
+ <xsd:annotation>
+ <xsd:documentation xml:lang="en">
+ The JNDI location of an alternate provider adapter
+ </xsd:documentation>
+ </xsd:annotation>
+ </xsd:attribute>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="jms-listener"
+ substitutionGroup="jesb:listener">
+ <xsd:annotation>
+ <xsd:documentation xml:lang="en">
+ A specific listener using the jms protocol.
+ </xsd:documentation>
+ </xsd:annotation>
+ <xsd:complexType>
+ <xsd:complexContent>
+ <xsd:extension base="jesb:listener">
+ <xsd:sequence>
+ <xsd:element maxOccurs="1" minOccurs="0"
+ ref="jesb:jms-message-filter" />
+ </xsd:sequence>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+ </xsd:element>
+
+ <!-- 88888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888
+ FS Type Implementations.
+ 88888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888-->
+ <xsd:element name="fs-message-filter">
+ <xsd:annotation>
+ <xsd:documentation xml:lang="en">
+ A FS filter.
+ </xsd:documentation>
+ </xsd:annotation>
+ <xsd:complexType>
+ <xsd:attribute name="directory" type="xsd:string"
+ use="required">
+ <xsd:annotation>
+ <xsd:documentation xml:lang="en">
+ The file share that is monitored for incoming
+ new files.
+ </xsd:documentation>
+ </xsd:annotation>
+ </xsd:attribute>
+ <xsd:attribute name="input-suffix" type="xsd:string"
+ use="optional">
+ <xsd:annotation>
+ <xsd:documentation xml:lang="en">
+ The file suffix used to filter files targeted
+ for comsumption by the ESB (note: add the dot,
+ so something like '.esbIn').
+ </xsd:documentation>
+ </xsd:annotation>
+ </xsd:attribute>
+ <xsd:attribute default=".esbInProcess" name="work-suffix"
+ type="xsd:string" use="optional">
+ <xsd:annotation>
+ <xsd:documentation xml:lang="en">
+ The file suffix used while the file is being
+ process, so that another thread or process won't
+ pick it up too.
+ </xsd:documentation>
+ </xsd:annotation>
+ </xsd:attribute>
+ <xsd:attribute default="true" name="post-delete"
+ type="xsd:boolean" use="optional">
+ <xsd:annotation>
+ <xsd:documentation xml:lang="en">
+ If true, the file will be deleted after it is
+ processed. Note that in that case post-directory
+ and post-suffix have no effect.
+ </xsd:documentation>
+ </xsd:annotation>
+ </xsd:attribute>
+ <xsd:attribute default="true" name="post-rename"
+ type="xsd:boolean" use="optional">
+ <xsd:annotation>
+ <xsd:documentation xml:lang="en">
+ If true, the file will be renamed after it is
+ processed. Note that in that case post-directory
+ and post-suffix have no effect.
+ </xsd:documentation>
+ </xsd:annotation>
+ </xsd:attribute>
+ <xsd:attribute default="processed" name="post-directory"
+ type="xsd:string" use="optional">
+ <xsd:annotation>
+ <xsd:documentation xml:lang="en">
+ The file share to which the file will be moved
+ after it is processed by the ESB
+ </xsd:documentation>
+ </xsd:annotation>
+ </xsd:attribute>
+ <xsd:attribute default=".esbDone" name="post-suffix"
+ type="xsd:string" use="optional">
+ <xsd:annotation>
+ <xsd:documentation xml:lang="en">
+ The file suffix which will be added to the file
+ name after it is processed.
+ </xsd:documentation>
+ </xsd:annotation>
+ </xsd:attribute>
+ <xsd:attribute default="true" name="error-delete"
+ type="xsd:boolean" use="optional">
+ <xsd:annotation>
+ <xsd:documentation xml:lang="en">
+ If true, the file will be deleted if an error
+ occurs during processing. Note that in that case
+ error-directory and error-suffix have no effect.
+ </xsd:documentation>
+ </xsd:annotation>
+ </xsd:attribute>
+ <xsd:attribute default="processed" name="error-directory"
+ type="xsd:string" use="optional">
+ <xsd:annotation>
+ <xsd:documentation xml:lang="en">
+ The file share to which the file will be moved
+ after when an error occurs during processing.
+ </xsd:documentation>
+ </xsd:annotation>
+ </xsd:attribute>
+ <xsd:attribute default=".esbERROR" name="error-suffix"
+ type="xsd:string" use="optional">
+ <xsd:annotation>
+ <xsd:documentation xml:lang="en">
+ The file suffix which will be added to the file
+ name after an error occurs during processing.
+ </xsd:documentation>
+ </xsd:annotation>
+ </xsd:attribute>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="fs-bus" substitutionGroup="jesb:bus">
+ <xsd:annotation>
+ <xsd:documentation xml:lang="en">
+ A Fs-Bus is a specific instance of a bus using the File
+ protocol.
+ </xsd:documentation>
+ </xsd:annotation>
+ <xsd:complexType>
+ <xsd:complexContent>
+ <xsd:extension base="jesb:bus">
+ <xsd:sequence>
+ <xsd:element maxOccurs="1" minOccurs="0"
+ ref="jesb:fs-message-filter" />
+ </xsd:sequence>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="fs-provider" substitutionGroup="jesb:provider">
+ <xsd:annotation>
+ <xsd:documentation xml:lang="en">
+ A specific instance of a provider, providing a file
+ system (local fileshare or NAS).
+ </xsd:documentation>
+ </xsd:annotation>
+ <xsd:complexType>
+ <xsd:complexContent>
+ <xsd:extension base="jesb:bus-provider" />
+ </xsd:complexContent>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="fs-listener" substitutionGroup="jesb:listener">
+ <xsd:annotation>
+ <xsd:documentation xml:lang="en">
+ A specific listener using the file protocol.
+ </xsd:documentation>
+ </xsd:annotation>
+ <xsd:complexType>
+ <xsd:complexContent>
+ <xsd:extension
+ base="jesb:abstract-scheduled-listener">
+ <xsd:sequence>
+ <xsd:element maxOccurs="1" minOccurs="0"
+ ref="jesb:fs-message-filter" />
+ </xsd:sequence>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+ </xsd:element>
+ <!-- 88888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888
+ FTP Type Implementations.
+ 88888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888-->
+ <xsd:element name="ftp-message-filter">
+ <xsd:annotation>
+ <xsd:documentation xml:lang="en">
+ A FTP filter.
+ </xsd:documentation>
+ </xsd:annotation>
+ <xsd:complexType>
+ <xsd:attribute name="directory" type="xsd:string"
+ use="required">
+ <xsd:annotation>
+ <xsd:documentation xml:lang="en">
+ The ftp directory that is monitored for incoming
+ new files.
+ </xsd:documentation>
+ </xsd:annotation>
+ </xsd:attribute>
+ <xsd:attribute name="username" type="xsd:string"
+ use="required">
+ <xsd:annotation>
+ <xsd:documentation xml:lang="en">
+ The username used to access the ftp server
+ </xsd:documentation>
+ </xsd:annotation>
+ </xsd:attribute>
+ <xsd:attribute name="password" type="xsd:string">
+ <xsd:annotation>
+ <xsd:documentation xml:lang="en">
+ The password used to access the ftp server.
+ </xsd:documentation>
+ </xsd:annotation>
+ </xsd:attribute>
+ <xsd:attribute name="input-suffix" type="xsd:string"
+ use="required">
+ <xsd:annotation>
+ <xsd:documentation xml:lang="en">
+ The file suffix used to filter files targeted
+ for comsumption by the ESB (note: add the dot,
+ so something like '.esbIn').
+ </xsd:documentation>
+ </xsd:annotation>
+ </xsd:attribute>
+ <xsd:attribute default=".esbInProcess" name="work-suffix"
+ type="xsd:string" use="optional">
+ <xsd:annotation>
+ <xsd:documentation xml:lang="en">
+ The file suffix used while the file is being
+ process, so that another thread or process won't
+ pick it up too.
+ </xsd:documentation>
+ </xsd:annotation>
+ </xsd:attribute>
+ <xsd:attribute default="true" name="post-delete"
+ type="xsd:boolean" use="optional">
+ <xsd:annotation>
+ <xsd:documentation xml:lang="en">
+ If true, the file will be deleted after it is
+ processed. Note that in that case post-directory
+ and post-suffix have no effect.
+ </xsd:documentation>
+ </xsd:annotation>
+ </xsd:attribute>
+ <xsd:attribute default="true" name="post-rename"
+ type="xsd:boolean" use="optional">
+ <xsd:annotation>
+ <xsd:documentation xml:lang="en">
+ If true, the file will be renamed after it is
+ processed. Note that in that case post-directory
+ and post-suffix have no effect.
+ </xsd:documentation>
+ </xsd:annotation>
+ </xsd:attribute>
+ <xsd:attribute name="post-directory" type="xsd:string"
+ use="optional">
+ <xsd:annotation>
+ <xsd:documentation xml:lang="en">
+ The ftp directory to which the file will be
+ moved after it is processed by the ESB
+ </xsd:documentation>
+ </xsd:annotation>
+ </xsd:attribute>
+ <xsd:attribute default=".esbDone" name="post-suffix"
+ type="xsd:string" use="optional">
+ <xsd:annotation>
+ <xsd:documentation xml:lang="en">
+ The file suffix which will be added to the file
+ name after it is processed.
+ </xsd:documentation>
+ </xsd:annotation>
+ </xsd:attribute>
+ <xsd:attribute default="true" name="error-delete"
+ type="xsd:boolean" use="optional">
+ <xsd:annotation>
+ <xsd:documentation xml:lang="en">
+ If true, the file will be deleted if an error
+ occurs during processing. Note that in that case
+ error-directory and error-suffix have no effect.
+ </xsd:documentation>
+ </xsd:annotation>
+ </xsd:attribute>
+ <xsd:attribute default="processed" name="error-directory"
+ type="xsd:string" use="optional">
+ <xsd:annotation>
+ <xsd:documentation xml:lang="en">
+ The ftp directory to which the file will be
+ moved after when an error occurs during
+ processing.
+ </xsd:documentation>
+ </xsd:annotation>
+ </xsd:attribute>
+ <xsd:attribute default=".esbERROR" name="error-suffix"
+ type="xsd:string" use="optional">
+ <xsd:annotation>
+ <xsd:documentation xml:lang="en">
+ The file suffix which will be added to the file
+ name after an error occurs during processing.
+ </xsd:documentation>
+ </xsd:annotation>
+ </xsd:attribute>
+ <xsd:attribute name="passive" type="xsd:boolean"
+ use="optional">
+ <xsd:annotation>
+ <xsd:documentation xml:lang="en">
+ This is an ftp server setting which may vary per
+ session.
+ </xsd:documentation>
+ </xsd:annotation>
+ </xsd:attribute>
+ <xsd:attribute default="ftp" name="protocol"
+ use="optional">
+ <xsd:annotation>
+ <xsd:documentation xml:lang="en">
+ The protocol, can be sftp (SSH File Transfer
+ Protocol), ftps (FTP over SLL) and ftp (to which
+ it defaults).
+ </xsd:documentation>
+ </xsd:annotation>
+ <xsd:simpleType>
+ <xsd:restriction base="xsd:NMTOKEN">
+ <xsd:enumeration value="ftp" />
+ <xsd:enumeration value="ftps" />
+ <xsd:enumeration value="sftp" />
+ </xsd:restriction>
+ </xsd:simpleType>
+ </xsd:attribute>
+ <xsd:attribute name="certificate-url" type="xsd:string"
+ use="optional">
+ <xsd:annotation>
+ <xsd:documentation xml:lang="en">
+ The url to a public server certificate for ftps, or to a
+ private certificate for sftp client verification. sftp certificate
+ can be located via a resource.
+ </xsd:documentation>
+ </xsd:annotation>
+ </xsd:attribute>
+ <xsd:attribute name="certificate-name" type="xsd:string"
+ use="optional">
+ <xsd:annotation>
+ <xsd:documentation xml:lang="en">
+ The common name of a certificate, which may be needed
+ for ftps.
+ </xsd:documentation>
+ </xsd:annotation>
+ </xsd:attribute>
+ <xsd:attribute name="certificate-passphrase" type="xsd:string"
+ use="optional">
+ <xsd:annotation>
+ <xsd:documentation xml:lang="en">
+ The passphrase of the private key, if necessary, for sftp client verification.
+ </xsd:documentation>
+ </xsd:annotation>
+ </xsd:attribute>
+ <xsd:attribute default="false" name="read-only"
+ type="xsd:boolean" use="optional">
+ <xsd:annotation>
+ <xsd:documentation xml:lang="en">
+ If true, the ftp server does not permit write
+ opertations on files. Note that in this case the
+ following properties have no effect:
+ work-suffix, post-delete, post-directory,
+ post-suffix, error-delete, error-directory, and
+ error-suffix.
+ </xsd:documentation>
+ </xsd:annotation>
+ </xsd:attribute>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="ftp-bus" substitutionGroup="jesb:bus">
+ <xsd:annotation>
+ <xsd:documentation xml:lang="en">
+ A FTP-Bus is a specific instance of a bus using the FTP
+ protocol.
+ </xsd:documentation>
+ </xsd:annotation>
+ <xsd:complexType>
+ <xsd:complexContent>
+ <xsd:extension base="jesb:bus">
+ <xsd:sequence>
+ <xsd:element maxOccurs="1" minOccurs="0"
+ ref="jesb:ftp-message-filter" />
+ </xsd:sequence>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="ftp-provider"
+ substitutionGroup="jesb:provider">
+ <xsd:annotation>
+ <xsd:documentation xml:lang="en">
+ A specific instance of a provider, providing a ftp
+ service.
+ </xsd:documentation>
+ </xsd:annotation>
+ <xsd:complexType>
+ <xsd:complexContent>
+ <xsd:extension base="jesb:bus-provider">
+ <xsd:attribute name="hostname" type="xsd:string"
+ use="required">
+ <xsd:annotation>
+ <xsd:documentation xml:lang="en">
+ The ftp hostname, as it can be resolved
+ by DNS.
+ </xsd:documentation>
+ </xsd:annotation>
+ </xsd:attribute>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="ftp-listener"
+ substitutionGroup="jesb:listener">
+ <xsd:annotation>
+ <xsd:documentation xml:lang="en">
+ A specific listener using the ftp protocol.
+ </xsd:documentation>
+ </xsd:annotation>
+ <xsd:complexType>
+ <xsd:complexContent>
+ <xsd:extension
+ base="jesb:abstract-scheduled-listener">
+ <xsd:sequence>
+ <xsd:element maxOccurs="1" minOccurs="0"
+ ref="jesb:ftp-message-filter" />
+ </xsd:sequence>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+ </xsd:element>
+
+ <!-- 88888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888
+ SQL Type Implementations.
+ 88888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888-->
+ <xsd:element name="sql-message-filter">
+ <xsd:annotation>
+ <xsd:documentation xml:lang="en">
+ A SQL filter.
+ </xsd:documentation>
+ </xsd:annotation>
+ <xsd:complexType>
+ <xsd:attribute name="tablename" type="xsd:string"
+ use="required">
+ <xsd:annotation>
+ <xsd:documentation xml:lang="en">
+ The table in which esb message are stored.
+ </xsd:documentation>
+ </xsd:annotation>
+ </xsd:attribute>
+ <xsd:attribute name="message-id-column"
+ type="xsd:string" use="required">
+ <xsd:annotation>
+ <xsd:documentation xml:lang="en">
+ A unique key (PK) in the table.
+ </xsd:documentation>
+ </xsd:annotation>
+ </xsd:attribute>
+ <xsd:attribute name="message-column"
+ type="xsd:string" use="required">
+ <xsd:annotation>
+ <xsd:documentation xml:lang="en">
+ The field that holds the serialized message.
+ </xsd:documentation>
+ </xsd:annotation>
+ </xsd:attribute>
+ <xsd:attribute name="status-column"
+ type="xsd:string" use="required">
+ <xsd:annotation>
+ <xsd:documentation xml:lang="en">
+ This column contents ('P', 'W', 'E' or 'D')
+ indicates if the row is pending (P), in process
+ (W), in error(E) or done (D) if postDelete
+ and/or errorDelete are 'true' rows might be
+ deleted
+ </xsd:documentation>
+ </xsd:annotation>
+ </xsd:attribute>
+ <xsd:attribute name="where-condition" use="optional"
+ type="xsd:string" default="">
+ <xsd:annotation>
+ <xsd:documentation xml:lang="en">
+ A where clause, not including the word where,
+ which is applied to the query.
+ </xsd:documentation>
+ </xsd:annotation>
+ </xsd:attribute>
+ <xsd:attribute name="order-by" use="optional"
+ type="xsd:string" default="">
+ <xsd:annotation>
+ <xsd:documentation xml:lang="en">
+ A where clause, not including the word where,
+ which is applied to the query.
+ </xsd:documentation>
+ </xsd:annotation>
+ </xsd:attribute>
+ <xsd:attribute name="insert-timestamp-column" use="optional"
+ type="xsd:string">
+ <xsd:annotation>
+ <xsd:documentation xml:lang="en">
+ Holds the timestamp when the record was
+ inserted.
+ </xsd:documentation>
+ </xsd:annotation>
+ </xsd:attribute>
+ <xsd:attribute default="true" name="post-delete"
+ type="xsd:boolean" use="optional">
+ <xsd:annotation>
+ <xsd:documentation xml:lang="en">
+ If true, records will be deleted after
+ processing.((e.g. no rows with a 'D' for done,
+ in column defined in 'status_column')
+ </xsd:documentation>
+ </xsd:annotation>
+ </xsd:attribute>
+ <xsd:attribute default="true" name="error-delete"
+ type="xsd:boolean" use="optional">
+ <xsd:annotation>
+ <xsd:documentation xml:lang="en">
+ If true, records in error will be deleted after
+ attempted picked up for processing.(e.g. no rows
+ with a 'E' for error, in column defined in
+ 'status_column')
+ </xsd:documentation>
+ </xsd:annotation>
+ </xsd:attribute>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="sql-bus" substitutionGroup="jesb:bus">
+ <xsd:annotation>
+ <xsd:documentation xml:lang="en">
+ A SQL-Bus is a specific instance of a bus using the SQL
+ protocol.
+ </xsd:documentation>
+ </xsd:annotation>
+ <xsd:complexType>
+ <xsd:complexContent>
+ <xsd:extension base="jesb:bus">
+ <xsd:sequence>
+ <xsd:element maxOccurs="1" minOccurs="0"
+ ref="jesb:sql-message-filter" />
+ </xsd:sequence>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="sql-provider"
+ substitutionGroup="jesb:provider">
+ <xsd:annotation>
+ <xsd:documentation xml:lang="en">
+ A specific instance of a provider, providing a db
+ service.
+ </xsd:documentation>
+ </xsd:annotation>
+ <xsd:complexType>
+ <xsd:complexContent>
+ <xsd:extension base="jesb:bus-provider">
+ <xsd:attribute name="datasource" type="xsd:string"
+ use="optional">
+ <xsd:annotation>
+ <xsd:documentation xml:lang="en">
+ The name of the datasource.
+ </xsd:documentation>
+ </xsd:annotation>
+ </xsd:attribute>
+ <xsd:attribute name="url" type="xsd:string"
+ use="optional">
+ <xsd:annotation>
+ <xsd:documentation xml:lang="en">
+ The url needed to connect to the db.
+ </xsd:documentation>
+ </xsd:annotation>
+ </xsd:attribute>
+ <xsd:attribute name="driver" type="xsd:string"
+ use="optional">
+ <xsd:annotation>
+ <xsd:documentation xml:lang="en">
+ The driver needed to connect to the db.
+ </xsd:documentation>
+ </xsd:annotation>
+ </xsd:attribute>
+ <xsd:attribute name="username" type="xsd:string"
+ use="optional">
+ <xsd:annotation>
+ <xsd:documentation xml:lang="en">
+ The username used to access the
+ database.
+ </xsd:documentation>
+ </xsd:annotation>
+ </xsd:attribute>
+ <xsd:attribute name="password" type="xsd:string"
+ use="optional">
+ <xsd:annotation>
+ <xsd:documentation xml:lang="en">
+ The password used to access the
+ database.
+ </xsd:documentation>
+ </xsd:annotation>
+ </xsd:attribute>
+ <xsd:attribute name="transacted"
+ type="xsd:boolean">
+ <xsd:annotation>
+ <xsd:documentation xml:lang="en">
+ The transacted flag.
+ </xsd:documentation>
+ </xsd:annotation>
+ </xsd:attribute>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="sql-listener"
+ substitutionGroup="jesb:listener">
+ <xsd:annotation>
+ <xsd:documentation xml:lang="en">
+ A specific listener using the SQL protocol.
+ </xsd:documentation>
+ </xsd:annotation>
+ <xsd:complexType>
+ <xsd:complexContent>
+ <xsd:extension base="jesb:listener">
+ <xsd:sequence>
+ <xsd:element maxOccurs="1" minOccurs="0"
+ ref="jesb:sql-message-filter" />
+ </xsd:sequence>
+ <xsd:attribute default="10"
+ name="poll-frequency-seconds" use="optional">
+ <xsd:annotation>
+ <xsd:documentation xml:lang="en">
+ The frequency with which this listener
+ polls the db in seconds. Defaults to 10
+ seconds.
+ </xsd:documentation>
+ </xsd:annotation>
+ <xsd:simpleType>
+ <xsd:restriction base="xsd:integer">
+ <xsd:minExclusive value="0" />
+ </xsd:restriction>
+ </xsd:simpleType>
+ </xsd:attribute>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+ </xsd:element>
+
+ <!-- 88888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888
+ Hibernate Type Implementations.
+ 88888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888-->
+ <xsd:element name="hibernate-message-filter">
+ <xsd:annotation>
+ <xsd:documentation xml:lang="en">
+ A Hibernate filter.
+ </xsd:documentation>
+ </xsd:annotation>
+ <xsd:complexType>
+ <xsd:attribute name="classname" type="xsd:string"
+ use="required">
+ <xsd:annotation>
+ <xsd:documentation xml:lang="en">
+ The class name to monitor.
+ </xsd:documentation>
+ </xsd:annotation>
+ </xsd:attribute>
+ <xsd:attribute default="message_id" name="event"
+ type="xsd:string" use="optional">
+ <xsd:annotation>
+ <xsd:documentation xml:lang="en">
+ A comma-separated list of events to intercept.
+ </xsd:documentation>
+ </xsd:annotation>
+ </xsd:attribute>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="hibernate-bus" substitutionGroup="jesb:bus">
+ <xsd:annotation>
+ <xsd:documentation xml:lang="en">
+ A hibernate-bus is a specific instance of a bus using
+ the Hibernate protocol.
+ </xsd:documentation>
+ </xsd:annotation>
+ <xsd:complexType>
+ <xsd:complexContent>
+ <xsd:extension base="jesb:bus">
+ <xsd:sequence>
+ <xsd:element maxOccurs="unbounded" minOccurs="1"
+ ref="jesb:hibernate-message-filter" />
+ </xsd:sequence>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="hibernate-provider"
+ substitutionGroup="jesb:provider">
+ <xsd:annotation>
+ <xsd:documentation xml:lang="en">
+ A specific instance of a provider, providing a hibernate
+ service.
+ </xsd:documentation>
+ </xsd:annotation>
+ <xsd:complexType>
+ <xsd:complexContent>
+ <xsd:extension base="jesb:bus-provider">
+ <xsd:attribute name="hibernate-cfg-file"
+ type="xsd:string" use="required">
+ <xsd:annotation>
+ <xsd:documentation xml:lang="en">
+ The Hibernate configuration file to use.
+ </xsd:documentation>
+ </xsd:annotation>
+ </xsd:attribute>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="hibernate-listener"
+ substitutionGroup="jesb:listener">
+ <xsd:annotation>
+ <xsd:documentation xml:lang="en">
+ A specific listener using the hibernate protocol.
+ </xsd:documentation>
+ </xsd:annotation>
+ <xsd:complexType>
+ <xsd:complexContent>
+ <xsd:extension base="jesb:listener">
+ <xsd:sequence>
+ <xsd:element maxOccurs="unbounded" minOccurs="0"
+ ref="jesb:hibernate-message-filter" />
+ </xsd:sequence>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+ </xsd:element>
+
+
+
+ <!-- 88888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888
+ JBoss Remoting Type Implementations.
+ 88888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888-->
+ <xsd:element name="jbr-bus" substitutionGroup="jesb:bus">
+ <xsd:annotation>
+ <xsd:documentation xml:lang="en">
+ JBoss Remoting Bus
+ </xsd:documentation>
+ </xsd:annotation>
+ <xsd:complexType>
+ <xsd:complexContent>
+ <xsd:extension base="jesb:bus">
+ <xsd:attribute name="port" type="xsd:int"
+ use="required">
+ <xsd:annotation>
+ <xsd:documentation xml:lang="en">
+ JBoss Remoting Server listen port.
+ </xsd:documentation>
+ </xsd:annotation>
+ </xsd:attribute>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="jbr-provider"
+ substitutionGroup="jesb:provider">
+ <xsd:annotation>
+ <xsd:documentation xml:lang="en">
+ JBoss Remoting Provider.
+ </xsd:documentation>
+ </xsd:annotation>
+ <xsd:complexType>
+ <xsd:complexContent>
+ <xsd:extension base="jesb:bus-provider">
+ <xsd:attribute name="protocol" use="required">
+ <xsd:annotation>
+ <xsd:documentation xml:lang="en">
+ Jboss Remoting Listener/Server protocol.
+ </xsd:documentation>
+ </xsd:annotation>
+ <xsd:simpleType>
+ <xsd:restriction base="xsd:NMTOKEN">
+ <xsd:enumeration value="http" />
+ <xsd:enumeration value="https" />
+ <xsd:enumeration value="socket" />
+ <xsd:enumeration value="sslsocket" />
+ </xsd:restriction>
+ </xsd:simpleType>
+ </xsd:attribute>
+ <xsd:attribute name="host" type="xsd:string">
+ <xsd:annotation>
+ <xsd:documentation xml:lang="en">
+ JBoss Remoting Server bind address. When
+ not specified, defaults to
+ InetAddress.getLocalHost().getHostName().
+ </xsd:documentation>
+ </xsd:annotation>
+ </xsd:attribute>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="jbr-listener"
+ substitutionGroup="jesb:listener">
+ <xsd:annotation>
+ <xsd:documentation xml:lang="en">
+ JBoss Remoting Listener.
+ </xsd:documentation>
+ </xsd:annotation>
+ <xsd:complexType>
+ <xsd:complexContent>
+ <xsd:extension base="jesb:listener" />
+ </xsd:complexContent>
+ </xsd:complexType>
+ </xsd:element>
+<!-- 88888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888
+ Http Type Implementations.
+ 88888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888-->
+ <xsd:element name="http-bus" substitutionGroup="jesb:bus">
+ <xsd:annotation>
+ <xsd:documentation xml:lang="en">
+ Http Bus
+ </xsd:documentation>
+ </xsd:annotation>
+ <xsd:complexType>
+ <xsd:complexContent>
+ <xsd:extension base="jesb:bus">
+ <xsd:attribute name="context" type="xsd:string"
+ use="required">
+ <xsd:annotation>
+ <xsd:documentation xml:lang="en">
+ Http server startup context
+ </xsd:documentation>
+ </xsd:annotation>
+ </xsd:attribute>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="http-provider"
+ substitutionGroup="jesb:provider">
+ <xsd:annotation>
+ <xsd:documentation xml:lang="en">
+ Http Provider.
+ </xsd:documentation>
+ </xsd:annotation>
+ <xsd:complexType>
+ <xsd:complexContent>
+ <xsd:extension base="jesb:bus-provider">
+ <xsd:attribute name="host" type="xsd:string" use="required">
+ <xsd:annotation>
+ <xsd:documentation xml:lang="en" >
+ Http Server based on JbossWeb bind address. When
+ not specified, defaults to
+ InetAddress.getLocalHost().getHostName().
+ </xsd:documentation>
+ </xsd:annotation>
+ </xsd:attribute>
+
+ <xsd:attribute name="port" type="xsd:int" use="required">
+ <xsd:annotation>
+ <xsd:documentation xml:lang="en">
+ Http server listening port
+ </xsd:documentation>
+ </xsd:annotation>
+ </xsd:attribute>
+
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="http-listener"
+ substitutionGroup="jesb:listener">
+ <xsd:annotation>
+ <xsd:documentation xml:lang="en">
+ http Listener.
+ </xsd:documentation>
+ </xsd:annotation>
+ <xsd:complexType>
+ <xsd:complexContent>
+ <xsd:extension base="jesb:listener" />
+ </xsd:complexContent>
+ </xsd:complexType>
+ </xsd:element>
+
+
+
+ <!-- 88888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888
+ Groovy Gateway Type Implementations.
+ 88888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888-->
+ <xsd:element name="groovy-listener"
+ substitutionGroup="jesb:listener">
+ <xsd:annotation>
+ <xsd:documentation xml:lang="en">
+ Groovy Listener.
+ </xsd:documentation>
+ </xsd:annotation>
+ <xsd:complexType>
+ <xsd:complexContent>
+ <xsd:extension base="jesb:listener">
+ <xsd:attribute name="script" type="xsd:string"
+ use="required">
+ <xsd:annotation>
+ <xsd:documentation xml:lang="en">
+ The path (classpath) to the Groovy
+ Gateway script. Or, the alias for the
+ pre-packaged Groovy Gateway script.
+ </xsd:documentation>
+ </xsd:annotation>
+ </xsd:attribute>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+ </xsd:element>
+
+</xsd:schema>
Copied: labs/jbossesb/workspace/mlittle/legstar/product/etc/schemas/xml/jbossesb-1.1.0.xsdconfig (from rev 24846, labs/jbossesb/trunk/product/etc/schemas/xml/jbossesb-1.1.0.xsdconfig)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/etc/schemas/xml/jbossesb-1.1.0.xsdconfig (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/etc/schemas/xml/jbossesb-1.1.0.xsdconfig 2009-01-21 15:38:08 UTC (rev 24850)
@@ -0,0 +1,14 @@
+<!-- An xsdconfig file must begin with a "config" element in the
+ http://www.bea.com/2002/09/xbean/config namespace. Also, be sure
+ to declare any namespaces used to qualify types in your schema (here,
+ the namespace corresponding to the pol prefix. -->
+
+<xb:config xmlns:pol="http://anonsvn.labs.jboss.com/labs/jbossesb/trunk/product/etc/schemas/xml/jbossesb-1.1.0.xsd"
+ xmlns:xb="http://www.bea.com/2002/09/xbean/config">
+
+ <!-- Use the "namespace" element to map a namespace to the Java package
+ name that should be generated. -->
+ <xb:namespace uri="http://anonsvn.labs.jboss.com/labs/jbossesb/trunk/product/etc/schemas/xml/jbossesb-1.1.0.xsd">
+ <xb:package>org.jboss.soa.esb.listeners.config.xbeanmodel110</xb:package>
+ </xb:namespace>
+</xb:config>
Modified: labs/jbossesb/workspace/mlittle/legstar/product/install/bindings.xslt
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/install/bindings.xslt 2009-01-21 14:47:17 UTC (rev 24849)
+++ labs/jbossesb/workspace/mlittle/legstar/product/install/bindings.xslt 2009-01-21 15:38:08 UTC (rev 24850)
@@ -52,7 +52,7 @@
xmlns:xsl='http://www.w3.org/1999/XSL/Transform' version='1.0'>
<xsl:output method="xml"/>
- <xsl:param name="host"/>
+ <xsl:param name="esbHost"/>
<xsl:param name="port"/>
<xsl:template match="/">
@@ -62,7 +62,7 @@
<xsl:template match="property[@name='org.jboss.soa.esb.jndi.server.url']">
<xsl:element name="property">
<xsl:attribute name="name">org.jboss.soa.esb.jndi.server.url</xsl:attribute>
- <xsl:attribute name="value"><xsl:value-of select='$host'/>:<xsl:value-of select='$port'/></xsl:attribute>
+ <xsl:attribute name="value"><xsl:value-of select='$esbHost'/>:<xsl:value-of select='$port'/></xsl:attribute>
</xsl:element>
</xsl:template>
@@ -74,7 +74,8 @@
</xsl:stylesheet>
]]>
</xslt-config>
- <binding host="${{jboss.esb.bind.address}}" port="{$jndiPort}" />
+ <binding host="${{jboss.bind.address}}" port="{$jndiPort}" />
+ <xslt-param name="esbHost">${jboss.esb.bind.address}</xslt-param>
</delegate-config>
</service-config><xsl:text>
</xsl:text>
@@ -89,7 +90,7 @@
xmlns:xsl='http://www.w3.org/1999/XSL/Transform' version='1.0'>
<xsl:output method="xml"/>
- <xsl:param name="host"/>
+ <xsl:param name="esbHost"/>
<xsl:param name="port"/>
<xsl:param name="webPort"/>
@@ -98,23 +99,23 @@
</xsl:template>
<xsl:template match="entry[@key='java.naming.provider.url']">
- <entry key="java.naming.provider.url">jnp://<xsl:value-of select='$host'/>:<xsl:value-of select='$port'/></entry>
+ <entry key="java.naming.provider.url">jnp://<xsl:value-of select='$esbHost'/>:<xsl:value-of select='$port'/></entry>
</xsl:template>
<xsl:template match="entry[@key='juddi.discoveryURL']">
- <entry key="juddi.discoveryURL">http://<xsl:value-of select="$host"/>:<xsl:value-of select="$webPort"/>/juddi/uddiget.jsp?</entry>
+ <entry key="juddi.discoveryURL">http://<xsl:value-of select="$esbHost"/>:<xsl:value-of select="$webPort"/>/juddi/uddiget.jsp?</entry>
</xsl:template>
<xsl:template match="entry[@key='juddi.proxy.adminURL']">
- <entry key="juddi.proxy.adminURL">http://<xsl:value-of select="$host"/>:<xsl:value-of select="$webPort"/>/juddi/admin</entry>
+ <entry key="juddi.proxy.adminURL">http://<xsl:value-of select="$esbHost"/>:<xsl:value-of select="$webPort"/>/juddi/admin</entry>
</xsl:template>
<xsl:template match="entry[@key='juddi.proxy.inquiryURL']">
- <entry key="juddi.proxy.inquiryURL">http://<xsl:value-of select="$host"/>:<xsl:value-of select="$webPort"/>/juddi/inquiry</entry>
+ <entry key="juddi.proxy.inquiryURL">http://<xsl:value-of select="$esbHost"/>:<xsl:value-of select="$webPort"/>/juddi/inquiry</entry>
</xsl:template>
<xsl:template match="entry[@key='juddi.proxy.publishURL']">
- <entry key="juddi.proxy.publishURL">http://<xsl:value-of select="$host"/>:<xsl:value-of select="$webPort"/>/juddi/publish</entry>
+ <entry key="juddi.proxy.publishURL">http://<xsl:value-of select="$esbHost"/>:<xsl:value-of select="$webPort"/>/juddi/publish</entry>
</xsl:template>
<xsl:template match="*|@*">
@@ -125,7 +126,8 @@
</xsl:stylesheet>
]]>
</xslt-config>
- <binding host="${{jboss.esb.bind.address}}" port="{$jndiPort}" />
+ <binding host="${{jboss.bind.address}}" port="{$jndiPort}" />
+ <xslt-param name="esbHost">${jboss.esb.bind.address}</xslt-param>
<xslt-param name="webPort"><xsl:value-of select="$webPort"/></xslt-param>
</delegate-config>
</service-config><xsl:text>
@@ -143,7 +145,7 @@
<xsl:output method="xml"/>
- <xsl:param name="host"/>
+ <xsl:param name="esbHost"/>
<xsl:param name="port"/>
<xsl:template match="/">
@@ -151,7 +153,7 @@
</xsl:template>
<xsl:template match="entry[@key='java.naming.provider.url']">
- <entry key="java.naming.provider.url">jnp://<xsl:value-of select='$host'/>:<xsl:value-of select='$port'/></entry>
+ <entry key="java.naming.provider.url">jnp://<xsl:value-of select='$esbHost'/>:<xsl:value-of select='$port'/></entry>
</xsl:template>
<xsl:template match="*|@*">
@@ -162,7 +164,8 @@
</xsl:stylesheet>
]]>
</xslt-config>
- <binding host="${{jboss.esb.bind.address}}" port="{$jndiPort}" />
+ <binding host="${{jboss.bind.address}}" port="{$jndiPort}" />
+ <xslt-param name="esbHost">${jboss.esb.bind.address}</xslt-param>
</delegate-config>
</service-config><xsl:text>
</xsl:text>
Modified: labs/jbossesb/workspace/mlittle/legstar/product/install/build.xml
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/install/build.xml 2009-01-21 14:47:17 UTC (rev 24849)
+++ labs/jbossesb/workspace/mlittle/legstar/product/install/build.xml 2009-01-21 15:38:08 UTC (rev 24850)
@@ -21,7 +21,7 @@
</condition>
<!-- Are we embedded in a jbossesb distribution hierarchy? -->
<condition property="hierarchy.jbossesb">
- <available file="${product.dir}/JBossORG-EULA.txt"/>
+ <available file="${product.dir}/JBossEULA.txt"/>
</condition>
<condition property="hierarchy.recognised">
@@ -142,11 +142,11 @@
excludes="${messaging.excludes}"/>
</copy>
- <!-- slsb.esb -->
- <copy todir="${deploy.dir}/slsb.esb">
- <fileset dir="${org.jboss.esb.dist.lib}/slsb.esb"
- excludes="${messaging.excludes}"/>
- </copy>
+ <!-- slsb.esb -->
+ <copy todir="${deploy.dir}/slsb.esb">
+ <fileset dir="${org.jboss.esb.dist.lib}/slsb.esb"
+ excludes="${messaging.excludes}"/>
+ </copy>
<!-- soapui-client.sar -->
<copy todir="${deploy.dir}/soapui-client.sar">
@@ -162,6 +162,13 @@
<!-- install h2 jar -->
<copy file="${org.jboss.esb.dist.lib}/h2-1.0.68.jar" todir="${server.lib.dir}"/>
+ <!-- embedded jopr console -->
+ <ant dir="embedded-console" target="replace">
+ <property name="org.jboss.esb.server.home" value="${org.jboss.esb.server.home}"/>
+ <property name="org.jboss.esb.server.config" value="${org.jboss.esb.server.config}"/>
+ </ant>
+
+
<ant dir="jbpm-patch" target="replace">
<property name="org.jboss.esb.server.home" value="${org.jboss.esb.server.home}"/>
<property name="org.jboss.esb.server.config" value="${org.jboss.esb.server.config}"/>
Copied: labs/jbossesb/workspace/mlittle/legstar/product/install/conf/jaas.login (from rev 24846, labs/jbossesb/trunk/product/install/conf/jaas.login)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/install/conf/jaas.login (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/install/conf/jaas.login 2009-01-21 15:38:08 UTC (rev 24850)
@@ -0,0 +1 @@
+// Plase login module configs here
Modified: labs/jbossesb/workspace/mlittle/legstar/product/install/conf/jbossesb-properties.xml
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/install/conf/jbossesb-properties.xml 2009-01-21 14:47:17 UTC (rev 24849)
+++ labs/jbossesb/workspace/mlittle/legstar/product/install/conf/jbossesb-properties.xml 2009-01-21 15:38:08 UTC (rev 24850)
@@ -37,6 +37,24 @@
<property name="org.jboss.soa.esb.loadbalancer.policy" value="org.jboss.soa.esb.listeners.ha.RoundRobin"/>
<property name="jboss.esb.invm.scope.default" value="NONE"/>
</properties>
+ <properties name="security">
+ <property name="org.jboss.soa.esb.services.security.implementationClass" value="org.jboss.internal.soa.esb.services.security.JaasSecurityService"/>
+ <property name="org.jboss.soa.esb.services.security.callbackHandler" value="org.jboss.internal.soa.esb.services.security.UserPassCallbackHandler"/>
+ <property name="org.jboss.soa.esb.services.security.configUrl" value="/jaas.login"/>
+
+ <property name="org.jboss.soa.esb.services.security.privateKeystore" value="/privateKeyStore"/>
+ <property name="org.jboss.soa.esb.services.security.privateKeystorePassword" value="testKeystorePassword"/>
+ <property name="org.jboss.soa.esb.services.security.privateKeyAlias" value="testAlias"/>
+ <property name="org.jboss.soa.esb.services.security.privateKeyPassword" value="testPassword"/>
+ <property name="org.jboss.soa.esb.services.security.privateKeyTransformation" value="RSA/ECB/PKCS1Padding"/>
+
+ <property name="org.jboss.soa.esb.services.security.publicKeystore" value="/publicKeyStore"/>
+ <property name="org.jboss.soa.esb.services.security.publicKeystorePassword" value="testKeystorePassword"/>
+ <property name="org.jboss.soa.esb.services.security.publicKeyAlias" value="testAlias"/>
+ <property name="org.jboss.soa.esb.services.security.publicKeyPassword" value="testPassword"/>
+ <property name="org.jboss.soa.esb.services.security.publicKeyTransformation" value="RSA/ECB/PKCS1Padding"/>
+
+ </properties>
<properties name="registry">
<property name="org.jboss.soa.esb.registry.queryManagerURI" value="org.apache.juddi.registry.local.InquiryService#inquire"/>
<property name="org.jboss.soa.esb.registry.lifeCycleManagerURI" value="org.apache.juddi.registry.local.PublishService#publish"/>
@@ -46,9 +64,14 @@
<property name="org.jboss.soa.esb.registry.password" value="password"/>
<!-- the following parameter is scout specific to set the type of communication between scout and the UDDI (embedded, rmi, soap) -->
<property name="org.jboss.soa.esb.scout.proxy.transportClass" value="org.apache.ws.scout.transport.LocalTransport"/>
+
<!-- specify the interceptors, in order -->
+ <property name="org.jboss.soa.esb.registry.interceptors" value="org.jboss.internal.soa.esb.services.registry.InVMRegistryInterceptor"/>
+ <!-- Example of specifying multiple registry interceptors
<property name="org.jboss.soa.esb.registry.interceptors"
value="org.jboss.internal.soa.esb.services.registry.InVMRegistryInterceptor, org.jboss.internal.soa.esb.services.registry.CachingRegistryInterceptor"/>
+ -->
+
<!-- The following properties modify the cache interceptor behaviour -->
<property name="org.jboss.soa.esb.registry.cache.maxSize" value="100"/>
<property name="org.jboss.soa.esb.registry.cache.validityPeriod" value="600000"/>
@@ -63,6 +86,13 @@
<property name="org.jboss.soa.esb.ftp.remotedir" value="/tmp"/>
<property name="org.jboss.soa.esb.jms.connectionPool" value="20"/>
<property name="org.jboss.soa.esb.jms.sessionSleep" value="30"/>
+
+ <!-- Uncomment this to return stack traces when exposing an ESB service through WS
+ <property name="org.jboss.soa.esb.ws.returnStackTrace" value="true"/>
+ -->
+ <!-- Uncomment this to specify the WS response timeout when exposing an ESB service through WS
+ <property name="org.jboss.soa.esb.ws.timeout" value="30000"/>
+ -->
</properties>
<properties name="connection">
<property name="min-pool-size" value="5"/>
Modified: labs/jbossesb/workspace/mlittle/legstar/product/install/conf/log4j.xml
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/install/conf/log4j.xml 2009-01-21 14:47:17 UTC (rev 24849)
+++ labs/jbossesb/workspace/mlittle/legstar/product/install/conf/log4j.xml 2009-01-21 15:38:08 UTC (rev 24850)
@@ -159,6 +159,11 @@
<!-- Limit categories -->
<!-- ================ -->
+ <!-- Limit JON category to WARN as INFO is verbose -->
+ <category name="org.jboss.on.pc.impl.measurement">
+ <priority value="WARN"/>
+ </category>
+
<!-- Limit the org.apache category to INFO as its DEBUG is verbose -->
<category name="org.apache">
<priority value="WARN"/>
Copied: labs/jbossesb/workspace/mlittle/legstar/product/install/conf/privateKeyStore (from rev 24846, labs/jbossesb/trunk/product/install/conf/privateKeyStore)
===================================================================
(Binary files differ)
Copied: labs/jbossesb/workspace/mlittle/legstar/product/install/conf/publicKeyStore (from rev 24846, labs/jbossesb/trunk/product/install/conf/publicKeyStore)
===================================================================
(Binary files differ)
Modified: labs/jbossesb/workspace/mlittle/legstar/product/install/deployment.properties-example
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/install/deployment.properties-example 2009-01-21 14:47:17 UTC (rev 24849)
+++ labs/jbossesb/workspace/mlittle/legstar/product/install/deployment.properties-example 2009-01-21 15:38:08 UTC (rev 24850)
@@ -20,7 +20,7 @@
# when deploying and executing the quickstart and the trailblazers.
# (e.g. /home/pbennett/jboss-4.0.5.GA-ejb3)
# (By default the 'ant install' task will create this directory.)
-org.jboss.esb.server.home=/jbossesb-server-4.2
+org.jboss.esb.server.home=/jbossesb-server-4.5.GA
# The Configuration of JBoss AS to Use
# (e.g. default)
org.jboss.esb.server.config=default
@@ -28,4 +28,4 @@
# Tomcat
######################################################################
# jbossesb tomcat home directory
-org.jboss.esb.tomcat.home=/apache-tomcat-5.5.20
\ No newline at end of file
+org.jboss.esb.tomcat.home=/apache-tomcat-5.5.20
Copied: labs/jbossesb/workspace/mlittle/legstar/product/install/embedded-console (from rev 24846, labs/jbossesb/trunk/product/install/embedded-console)
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/install/embedded-console/barrier-service.xml
===================================================================
--- labs/jbossesb/trunk/product/install/embedded-console/barrier-service.xml 2009-01-21 09:35:03 UTC (rev 24846)
+++ labs/jbossesb/workspace/mlittle/legstar/product/install/embedded-console/barrier-service.xml 2009-01-21 15:38:08 UTC (rev 24850)
@@ -1,49 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- $Id:$ -->
-
-<server>
- <!--
- In this example we have the BarrierController controlling a Barrier
- that is started when we receive the "org.jboss.system.server.started"
- notification from the server mbean, and stopped when we receive the
- "org.jboss.system.server.stopped" notification from the server mbean.
-
- The dependent services need only define a dependency on the Barrier mbean!
- -->
- <mbean code="org.jboss.system.BarrierController"
- name="jboss:service=BarrierController">
-
- <!-- Whether to have the Barrier initially started or not -->
- <attribute name="BarrierEnabledOnStartup">false</attribute>
-
- <!-- Whether to subscribe for notifications after startup -->
- <attribute name="DynamicSubscriptions">true</attribute>
-
- <!-- Dependent services will depend on this mbean -->
- <attribute name="BarrierObjectName">jboss:name=Server,type=Barrier</attribute>
-
- <!-- The notification subscription handback that starts the barrier -->
- <attribute name="StartBarrierHandback">start</attribute>
-
- <!-- The notification subscription handback that stops the barrier -->
- <attribute name="StopBarrierHandback">stop</attribute>
-
- <!-- The notifications to subscribe for, along with their handbacks -->
- <attribute name="SubscriptionList">
- <subscription-list>
- <mbean name="jboss.system:type=Server" handback="start">
- <filter factory="NotificationFilterSupportFactory">
- <enable type="org.jboss.system.server.started"/>
- </filter>
- </mbean>
- <mbean name="jboss.system:type=Server" handback="stop">
- <filter factory="NotificationFilterSupportFactory">
- <enable type="org.jboss.system.server.stopped"/>
- </filter>
- </mbean>
- </subscription-list>
- </attribute>
- </mbean>
-
-
-</server>
Copied: labs/jbossesb/workspace/mlittle/legstar/product/install/embedded-console/barrier-service.xml (from rev 24846, labs/jbossesb/trunk/product/install/embedded-console/barrier-service.xml)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/install/embedded-console/barrier-service.xml (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/install/embedded-console/barrier-service.xml 2009-01-21 15:38:08 UTC (rev 24850)
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- $Id:$ -->
+
+<server>
+ <!--
+ In this example we have the BarrierController controlling a Barrier
+ that is started when we receive the "org.jboss.system.server.started"
+ notification from the server mbean, and stopped when we receive the
+ "org.jboss.system.server.stopped" notification from the server mbean.
+
+ The dependent services need only define a dependency on the Barrier mbean!
+ -->
+ <mbean code="org.jboss.system.BarrierController"
+ name="jboss:service=BarrierController">
+
+ <!-- Whether to have the Barrier initially started or not -->
+ <attribute name="BarrierEnabledOnStartup">false</attribute>
+
+ <!-- Whether to subscribe for notifications after startup -->
+ <attribute name="DynamicSubscriptions">true</attribute>
+
+ <!-- Dependent services will depend on this mbean -->
+ <attribute name="BarrierObjectName">jboss:name=Server,type=Barrier</attribute>
+
+ <!-- The notification subscription handback that starts the barrier -->
+ <attribute name="StartBarrierHandback">start</attribute>
+
+ <!-- The notification subscription handback that stops the barrier -->
+ <attribute name="StopBarrierHandback">stop</attribute>
+
+ <!-- The notifications to subscribe for, along with their handbacks -->
+ <attribute name="SubscriptionList">
+ <subscription-list>
+ <mbean name="jboss.system:type=Server" handback="start">
+ <filter factory="NotificationFilterSupportFactory">
+ <enable type="org.jboss.system.server.started"/>
+ </filter>
+ </mbean>
+ <mbean name="jboss.system:type=Server" handback="stop">
+ <filter factory="NotificationFilterSupportFactory">
+ <enable type="org.jboss.system.server.stopped"/>
+ </filter>
+ </mbean>
+ </subscription-list>
+ </attribute>
+ </mbean>
+
+
+</server>
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/install/embedded-console/build.xml
===================================================================
--- labs/jbossesb/trunk/product/install/embedded-console/build.xml 2009-01-21 09:35:03 UTC (rev 24846)
+++ labs/jbossesb/workspace/mlittle/legstar/product/install/embedded-console/build.xml 2009-01-21 15:38:08 UTC (rev 24850)
@@ -1,13 +0,0 @@
-<project name="JBESB_Installer" default="replace" basedir=".">
- <property name="deploy.dir" value="${org.jboss.esb.server.home}/server/${org.jbossesb.server.config}/deploy"/>
- <target name="replace">
- <loadfile property="measurement.category"
- srcFile="measurementpatch.txt"/>
- <replace file="${org.jboss.esb.server.home}/server/${org.jboss.esb.server.config}/conf/jboss-log4j.xml"
- value="${measurement.category}">
- <replacetoken><![CDATA[<!-- Limit the org.apache category to INFO as its DEBUG is verbose -->]]></replacetoken>
- </replace>
- <copy file="esb-console.war" todir="${deploy.dir}"/>
- <copy file="barrier-service.xml" todir="${deploy.dir}"/>
- </target>
-</project>
Copied: labs/jbossesb/workspace/mlittle/legstar/product/install/embedded-console/build.xml (from rev 24846, labs/jbossesb/trunk/product/install/embedded-console/build.xml)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/install/embedded-console/build.xml (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/install/embedded-console/build.xml 2009-01-21 15:38:08 UTC (rev 24850)
@@ -0,0 +1,13 @@
+<project name="JBESB_Installer" default="replace" basedir=".">
+ <property name="deploy.dir" value="${org.jboss.esb.server.home}/server/${org.jbossesb.server.config}/deploy"/>
+ <target name="replace">
+ <loadfile property="measurement.category"
+ srcFile="measurementpatch.txt"/>
+ <replace file="${org.jboss.esb.server.home}/server/${org.jboss.esb.server.config}/conf/jboss-log4j.xml"
+ value="${measurement.category}">
+ <replacetoken><![CDATA[<!-- Limit the org.apache category to INFO as its DEBUG is verbose -->]]></replacetoken>
+ </replace>
+ <copy file="esb-console.war" todir="${deploy.dir}"/>
+ <copy file="barrier-service.xml" todir="${deploy.dir}"/>
+ </target>
+</project>
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/install/embedded-console/esb-console.war
===================================================================
(Binary files differ)
Copied: labs/jbossesb/workspace/mlittle/legstar/product/install/embedded-console/esb-console.war (from rev 24846, labs/jbossesb/trunk/product/install/embedded-console/esb-console.war)
===================================================================
(Binary files differ)
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/install/embedded-console/measurementpatch.txt
===================================================================
--- labs/jbossesb/trunk/product/install/embedded-console/measurementpatch.txt 2009-01-21 09:35:03 UTC (rev 24846)
+++ labs/jbossesb/workspace/mlittle/legstar/product/install/embedded-console/measurementpatch.txt 2009-01-21 15:38:08 UTC (rev 24850)
@@ -1,23 +0,0 @@
-<!-- Limit the org.jboss.on.pc.impl.measurement category to WARN -->
- <category name="org.jboss.on.pc.impl.measurement">
- <priority value="ERROR"/>
- </category>
-
- <!-- Limit the org.jboss.seam category to WARN -->
- <!-- Recommended by embedded console -->
- <category name="org.jboss.seam">
- <priority value="WARN"/>
- </category>
-
- <!-- Limit the com.sun category to WARN -->
- <!-- Recommended by embedded console -->
- <category name="com.sun">
- <priority value="WARN"/>
- </category>
-
- <!-- Limit the org.rhq.core.pc.inventory.RuntimeDiscoveryExecutor to WARN -->
- <category name="org.rhq.core.pc.inventory.RuntimeDiscoveryExecutor">
- <priority value="WARN"/>
- </category>
-
- <!-- Limit the org.apache category to INFO as its DEBUG is verbose -->
Copied: labs/jbossesb/workspace/mlittle/legstar/product/install/embedded-console/measurementpatch.txt (from rev 24846, labs/jbossesb/trunk/product/install/embedded-console/measurementpatch.txt)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/install/embedded-console/measurementpatch.txt (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/install/embedded-console/measurementpatch.txt 2009-01-21 15:38:08 UTC (rev 24850)
@@ -0,0 +1,23 @@
+<!-- Limit the org.jboss.on.pc.impl.measurement category to WARN -->
+ <category name="org.jboss.on.pc.impl.measurement">
+ <priority value="ERROR"/>
+ </category>
+
+ <!-- Limit the org.jboss.seam category to WARN -->
+ <!-- Recommended by embedded console -->
+ <category name="org.jboss.seam">
+ <priority value="WARN"/>
+ </category>
+
+ <!-- Limit the com.sun category to WARN -->
+ <!-- Recommended by embedded console -->
+ <category name="com.sun">
+ <priority value="WARN"/>
+ </category>
+
+ <!-- Limit the org.rhq.core.pc.inventory.RuntimeDiscoveryExecutor to WARN -->
+ <category name="org.rhq.core.pc.inventory.RuntimeDiscoveryExecutor">
+ <priority value="WARN"/>
+ </category>
+
+ <!-- Limit the org.apache category to INFO as its DEBUG is verbose -->
Copied: labs/jbossesb/workspace/mlittle/legstar/product/install/jUDDI-registry/sql/mssql (from rev 24846, labs/jbossesb/trunk/product/install/jUDDI-registry/sql/mssql)
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/install/jUDDI-registry/sql/mssql/create_database.sql
===================================================================
--- labs/jbossesb/trunk/product/install/jUDDI-registry/sql/mssql/create_database.sql 2009-01-21 09:35:03 UTC (rev 24846)
+++ labs/jbossesb/workspace/mlittle/legstar/product/install/jUDDI-registry/sql/mssql/create_database.sql 2009-01-21 15:38:08 UTC (rev 24850)
@@ -1,726 +0,0 @@
--- DROP TABLE ${prefix}BUSINESS_DESCR;
--- DROP TABLE ${prefix}BUSINESS_CATEGORY;
--- DROP TABLE ${prefix}BUSINESS_IDENTIFIER;
--- DROP TABLE ${prefix}BUSINESS_NAME;
--- DROP TABLE ${prefix}DISCOVERY_URL;
--- DROP TABLE ${prefix}ADDRESS_LINE;
--- DROP TABLE ${prefix}ADDRESS;
--- DROP TABLE ${prefix}PHONE;
--- DROP TABLE ${prefix}EMAIL;
--- DROP TABLE ${prefix}CONTACT_DESCR;
--- DROP TABLE ${prefix}CONTACT;
--- DROP TABLE ${prefix}SERVICE_DESCR;
--- DROP TABLE ${prefix}SERVICE_CATEGORY;
--- DROP TABLE ${prefix}SERVICE_NAME;
--- DROP TABLE ${prefix}BINDING_DESCR;
--- DROP TABLE ${prefix}BINDING_CATEGORY;
--- DROP TABLE ${prefix}INSTANCE_DETAILS_DESCR;
--- DROP TABLE ${prefix}INSTANCE_DETAILS_DOC_DESCR;
--- DROP TABLE ${prefix}TMODEL_CATEGORY;
--- DROP TABLE ${prefix}TMODEL_DESCR;
--- DROP TABLE ${prefix}TMODEL_DOC_DESCR;
--- DROP TABLE ${prefix}TMODEL_IDENTIFIER;
--- DROP TABLE ${prefix}TMODEL_INSTANCE_INFO_DESCR;
--- DROP TABLE ${prefix}TMODEL_INSTANCE_INFO;
--- DROP TABLE ${prefix}PUBLISHER_ASSERTION;
--- DROP TABLE ${prefix}TMODEL;
--- DROP TABLE ${prefix}BINDING_TEMPLATE;
--- DROP TABLE ${prefix}BUSINESS_SERVICE;
--- DROP TABLE ${prefix}BUSINESS_ENTITY;
--- DROP TABLE ${prefix}PUBLISHER;
--- DROP TABLE ${prefix}AUTH_TOKEN;
-
-CREATE TABLE ${prefix}BUSINESS_ENTITY
-(
- BUSINESS_KEY VARCHAR(41) NOT NULL,
- AUTHORIZED_NAME VARCHAR(255) NOT NULL,
- PUBLISHER_ID VARCHAR(20) NULL,
- OPERATOR VARCHAR(255) NOT NULL,
- LAST_UPDATE DATETIME NOT NULL,
- PRIMARY KEY (BUSINESS_KEY)
-)
-
-CREATE TABLE ${prefix}BUSINESS_DESCR
-(
- BUSINESS_KEY VARCHAR(41) NOT NULL,
- BUSINESS_DESCR_ID INT NOT NULL,
- LANG_CODE VARCHAR(5) NULL,
- DESCR VARCHAR(255) NOT NULL,
- PRIMARY KEY (BUSINESS_KEY,BUSINESS_DESCR_ID),
- FOREIGN KEY (BUSINESS_KEY)
- REFERENCES ${prefix}BUSINESS_ENTITY (BUSINESS_KEY)
-)
-
-CREATE TABLE ${prefix}BUSINESS_CATEGORY
-(
- BUSINESS_KEY VARCHAR(41) NOT NULL,
- CATEGORY_ID INT NOT NULL,
- TMODEL_KEY_REF VARCHAR(41) NULL,
- KEY_NAME VARCHAR(255) NULL,
- KEY_VALUE VARCHAR(255) NOT NULL,
- PRIMARY KEY (BUSINESS_KEY,CATEGORY_ID),
- FOREIGN KEY (BUSINESS_KEY)
- REFERENCES ${prefix}BUSINESS_ENTITY (BUSINESS_KEY)
-)
-
-CREATE TABLE ${prefix}BUSINESS_IDENTIFIER
-(
- BUSINESS_KEY VARCHAR(41) NOT NULL,
- IDENTIFIER_ID INT NOT NULL,
- TMODEL_KEY_REF VARCHAR(41) NULL,
- KEY_NAME VARCHAR(255) NULL,
- KEY_VALUE VARCHAR(255) NOT NULL,
- PRIMARY KEY (BUSINESS_KEY,IDENTIFIER_ID),
- FOREIGN KEY (BUSINESS_KEY)
- REFERENCES ${prefix}BUSINESS_ENTITY (BUSINESS_KEY)
-)
-
-CREATE TABLE ${prefix}BUSINESS_NAME
-(
- BUSINESS_KEY VARCHAR(41) NOT NULL,
- BUSINESS_NAME_ID INT NOT NULL,
- LANG_CODE VARCHAR(5) NULL,
- NAME VARCHAR(255) NOT NULL,
- PRIMARY KEY (BUSINESS_KEY,BUSINESS_NAME_ID),
- FOREIGN KEY (BUSINESS_KEY)
- REFERENCES ${prefix}BUSINESS_ENTITY (BUSINESS_KEY)
-)
-
-CREATE TABLE ${prefix}CONTACT
-(
- BUSINESS_KEY VARCHAR(41) NOT NULL,
- CONTACT_ID INT NOT NULL,
- USE_TYPE VARCHAR(255) NULL,
- PERSON_NAME VARCHAR(255) NOT NULL,
- PRIMARY KEY (BUSINESS_KEY,CONTACT_ID),
- FOREIGN KEY (BUSINESS_KEY)
- REFERENCES ${prefix}BUSINESS_ENTITY (BUSINESS_KEY)
-)
-
-CREATE TABLE ${prefix}CONTACT_DESCR
-(
- BUSINESS_KEY VARCHAR(41) NOT NULL,
- CONTACT_ID INT NOT NULL,
- CONTACT_DESCR_ID INT NOT NULL,
- LANG_CODE VARCHAR(5) NULL,
- DESCR VARCHAR(255) NOT NULL,
- PRIMARY KEY (BUSINESS_KEY,CONTACT_ID,CONTACT_DESCR_ID),
- FOREIGN KEY (BUSINESS_KEY,CONTACT_ID)
- REFERENCES ${prefix}CONTACT (BUSINESS_KEY,CONTACT_ID)
-)
-
-CREATE TABLE ${prefix}ADDRESS
-(
- BUSINESS_KEY VARCHAR(41) NOT NULL,
- CONTACT_ID INT NOT NULL,
- ADDRESS_ID INT NOT NULL,
- USE_TYPE VARCHAR(255) NULL,
- SORT_CODE VARCHAR(10) NULL,
- TMODEL_KEY VARCHAR(41) NULL,
- PRIMARY KEY (BUSINESS_KEY,CONTACT_ID,ADDRESS_ID),
- FOREIGN KEY (BUSINESS_KEY,CONTACT_ID)
- REFERENCES ${prefix}CONTACT (BUSINESS_KEY,CONTACT_ID)
-)
-
-CREATE TABLE ${prefix}ADDRESS_LINE
-(
- BUSINESS_KEY VARCHAR(41) NOT NULL,
- CONTACT_ID INT NOT NULL,
- ADDRESS_ID INT NOT NULL,
- ADDRESS_LINE_ID INT NOT NULL,
- LINE VARCHAR(80) NOT NULL,
- KEY_NAME VARCHAR(255) NULL,
- KEY_VALUE VARCHAR(255) NULL,
- PRIMARY KEY (BUSINESS_KEY,CONTACT_ID,ADDRESS_ID,ADDRESS_LINE_ID),
- FOREIGN KEY (BUSINESS_KEY,CONTACT_ID,ADDRESS_ID)
- REFERENCES ${prefix}ADDRESS (BUSINESS_KEY,CONTACT_ID,ADDRESS_ID)
-)
-
-CREATE TABLE ${prefix}EMAIL
-(
- BUSINESS_KEY VARCHAR(41) NOT NULL,
- CONTACT_ID INT NOT NULL,
- EMAIL_ID INT NOT NULL,
- USE_TYPE VARCHAR(255) NULL,
- EMAIL_ADDRESS VARCHAR(255) NOT NULL,
- PRIMARY KEY (BUSINESS_KEY,CONTACT_ID,EMAIL_ID),
- FOREIGN KEY (BUSINESS_KEY,CONTACT_ID)
- REFERENCES ${prefix}CONTACT (BUSINESS_KEY,CONTACT_ID)
-)
-
-CREATE TABLE ${prefix}PHONE
-(
- BUSINESS_KEY VARCHAR(41) NOT NULL,
- CONTACT_ID INT NOT NULL,
- PHONE_ID INT NOT NULL,
- USE_TYPE VARCHAR(255) NULL,
- PHONE_NUMBER VARCHAR(50) NOT NULL,
- PRIMARY KEY (BUSINESS_KEY,CONTACT_ID,PHONE_ID),
- FOREIGN KEY (BUSINESS_KEY,CONTACT_ID)
- REFERENCES ${prefix}CONTACT (BUSINESS_KEY,CONTACT_ID)
-)
-
-CREATE TABLE ${prefix}DISCOVERY_URL
-(
- BUSINESS_KEY VARCHAR(41) NOT NULL,
- DISCOVERY_URL_ID INT NOT NULL,
- USE_TYPE VARCHAR(255) NOT NULL,
- URL VARCHAR(255) NOT NULL,
- PRIMARY KEY (BUSINESS_KEY,DISCOVERY_URL_ID),
- FOREIGN KEY (BUSINESS_KEY)
- REFERENCES ${prefix}BUSINESS_ENTITY (BUSINESS_KEY)
-)
-
-CREATE TABLE ${prefix}BUSINESS_SERVICE
-(
- BUSINESS_KEY VARCHAR(41) NOT NULL,
- SERVICE_KEY VARCHAR(41) NOT NULL,
- LAST_UPDATE DATETIME NOT NULL,
- PRIMARY KEY (SERVICE_KEY),
- FOREIGN KEY (BUSINESS_KEY)
- REFERENCES ${prefix}BUSINESS_ENTITY (BUSINESS_KEY)
-)
-
-CREATE TABLE ${prefix}SERVICE_DESCR
-(
- SERVICE_KEY VARCHAR(41) NOT NULL,
- SERVICE_DESCR_ID INT NOT NULL,
- LANG_CODE VARCHAR(5) NULL,
- DESCR VARCHAR(255) NOT NULL,
- PRIMARY KEY (SERVICE_KEY,SERVICE_DESCR_ID),
- FOREIGN KEY (SERVICE_KEY)
- REFERENCES ${prefix}BUSINESS_SERVICE (SERVICE_KEY)
-)
-
-CREATE TABLE ${prefix}SERVICE_CATEGORY
-(
- SERVICE_KEY VARCHAR(41) NOT NULL,
- CATEGORY_ID INT NOT NULL,
- TMODEL_KEY_REF VARCHAR(41) NULL,
- KEY_NAME VARCHAR(255) NULL,
- KEY_VALUE VARCHAR(255) NOT NULL,
- PRIMARY KEY (SERVICE_KEY,CATEGORY_ID),
- FOREIGN KEY (SERVICE_KEY)
- REFERENCES ${prefix}BUSINESS_SERVICE (SERVICE_KEY)
-)
-
-CREATE TABLE ${prefix}SERVICE_NAME
-(
- SERVICE_KEY VARCHAR(41) NOT NULL,
- SERVICE_NAME_ID INT NOT NULL,
- LANG_CODE VARCHAR(5) NULL,
- NAME VARCHAR(255) NOT NULL,
- PRIMARY KEY (SERVICE_KEY,SERVICE_NAME_ID),
- FOREIGN KEY (SERVICE_KEY)
- REFERENCES ${prefix}BUSINESS_SERVICE (SERVICE_KEY)
-)
-
-CREATE TABLE ${prefix}BINDING_TEMPLATE
-(
- SERVICE_KEY VARCHAR(41) NOT NULL,
- BINDING_KEY VARCHAR(41) NOT NULL,
- ACCESS_POINT_TYPE VARCHAR(20) NULL,
- ACCESS_POINT_URL TEXT NULL,
- HOSTING_REDIRECTOR VARCHAR(255) NULL,
- LAST_UPDATE DATETIME NOT NULL,
- PRIMARY KEY (BINDING_KEY),
- FOREIGN KEY (SERVICE_KEY)
- REFERENCES ${prefix}BUSINESS_SERVICE (SERVICE_KEY)
-)
-
-CREATE TABLE ${prefix}BINDING_CATEGORY
-(
- BINDING_KEY VARCHAR(41) NOT NULL,
- CATEGORY_ID INT NOT NULL,
- TMODEL_KEY_REF VARCHAR(41) NULL,
- KEY_NAME VARCHAR(255) NULL,
- KEY_VALUE VARCHAR(255) NOT NULL,
- PRIMARY KEY (BINDING_KEY,CATEGORY_ID),
- FOREIGN KEY (BINDING_KEY)
- REFERENCES ${prefix}BINDING_TEMPLATE (BINDING_KEY)
-)
-
-CREATE TABLE ${prefix}BINDING_DESCR
-(
- BINDING_KEY VARCHAR(41) NOT NULL,
- BINDING_DESCR_ID INT NOT NULL,
- LANG_CODE VARCHAR(5) NULL,
- DESCR VARCHAR(255) NOT NULL,
- PRIMARY KEY (BINDING_KEY,BINDING_DESCR_ID),
- FOREIGN KEY (BINDING_KEY)
- REFERENCES ${prefix}BINDING_TEMPLATE (BINDING_KEY)
-)
-
-CREATE TABLE ${prefix}TMODEL_INSTANCE_INFO
-(
- BINDING_KEY VARCHAR(41) NOT NULL,
- TMODEL_INSTANCE_INFO_ID INT NOT NULL,
- TMODEL_KEY VARCHAR(41) NOT NULL,
- OVERVIEW_URL VARCHAR(255) NULL,
- INSTANCE_PARMS VARCHAR(255) NULL,
- PRIMARY KEY (BINDING_KEY,TMODEL_INSTANCE_INFO_ID),
- FOREIGN KEY (BINDING_KEY)
- REFERENCES ${prefix}BINDING_TEMPLATE (BINDING_KEY)
-)
-
-CREATE TABLE ${prefix}TMODEL_INSTANCE_INFO_DESCR
-(
- BINDING_KEY VARCHAR(41) NOT NULL,
- TMODEL_INSTANCE_INFO_ID INT NOT NULL,
- TMODEL_INSTANCE_INFO_DESCR_ID INT NOT NULL,
- LANG_CODE VARCHAR(5) NULL,
- DESCR VARCHAR(255) NOT NULL,
- PRIMARY KEY (BINDING_KEY,TMODEL_INSTANCE_INFO_ID,TMODEL_INSTANCE_INFO_DESCR_ID),
- FOREIGN KEY (BINDING_KEY,TMODEL_INSTANCE_INFO_ID)
- REFERENCES ${prefix}TMODEL_INSTANCE_INFO (BINDING_KEY,TMODEL_INSTANCE_INFO_ID)
-)
-
-CREATE TABLE ${prefix}INSTANCE_DETAILS_DESCR
-(
- BINDING_KEY VARCHAR(41) NOT NULL,
- TMODEL_INSTANCE_INFO_ID INT NOT NULL,
- INSTANCE_DETAILS_DESCR_ID INT NOT NULL,
- LANG_CODE VARCHAR(5) NULL,
- DESCR VARCHAR(255) NOT NULL,
- PRIMARY KEY (BINDING_KEY,TMODEL_INSTANCE_INFO_ID,INSTANCE_DETAILS_DESCR_ID),
- FOREIGN KEY (BINDING_KEY,TMODEL_INSTANCE_INFO_ID)
- REFERENCES ${prefix}TMODEL_INSTANCE_INFO (BINDING_KEY,TMODEL_INSTANCE_INFO_ID)
-)
-
-CREATE TABLE ${prefix}INSTANCE_DETAILS_DOC_DESCR
-(
- BINDING_KEY VARCHAR(41) NOT NULL,
- TMODEL_INSTANCE_INFO_ID INT NOT NULL,
- INSTANCE_DETAILS_DOC_DESCR_ID INT NOT NULL,
- LANG_CODE VARCHAR(5) NULL,
- DESCR VARCHAR(255) NOT NULL,
- PRIMARY KEY (BINDING_KEY,TMODEL_INSTANCE_INFO_ID,INSTANCE_DETAILS_DOC_DESCR_ID),
- FOREIGN KEY (BINDING_KEY,TMODEL_INSTANCE_INFO_ID)
- REFERENCES ${prefix}TMODEL_INSTANCE_INFO (BINDING_KEY,TMODEL_INSTANCE_INFO_ID)
-)
-
-CREATE TABLE ${prefix}TMODEL
-(
- TMODEL_KEY VARCHAR(41) NOT NULL,
- AUTHORIZED_NAME VARCHAR(255) NOT NULL,
- PUBLISHER_ID VARCHAR(20) NULL,
- OPERATOR VARCHAR(255) NOT NULL,
- NAME VARCHAR(255) NOT NULL,
- LANG_CODE VARCHAR(5) NULL,
- OVERVIEW_URL VARCHAR(255) NULL,
- DELETED VARCHAR(5) NULL,
- LAST_UPDATE DATETIME NOT NULL,
- PRIMARY KEY (TMODEL_KEY)
-)
-
-CREATE TABLE ${prefix}TMODEL_DESCR
-(
- TMODEL_KEY VARCHAR(41) NOT NULL,
- TMODEL_DESCR_ID INT NOT NULL,
- LANG_CODE VARCHAR(5) NULL,
- DESCR VARCHAR(255) NOT NULL,
- PRIMARY KEY (TMODEL_KEY,TMODEL_DESCR_ID),
- FOREIGN KEY (TMODEL_KEY)
- REFERENCES ${prefix}TMODEL (TMODEL_KEY)
-)
-
-CREATE TABLE ${prefix}TMODEL_CATEGORY
-(
- TMODEL_KEY VARCHAR(41) NOT NULL,
- CATEGORY_ID INT NOT NULL,
- TMODEL_KEY_REF VARCHAR(255) NULL,
- KEY_NAME VARCHAR(255) NULL,
- KEY_VALUE VARCHAR(255) NOT NULL,
- PRIMARY KEY (TMODEL_KEY,CATEGORY_ID),
- FOREIGN KEY (TMODEL_KEY)
- REFERENCES ${prefix}TMODEL (TMODEL_KEY)
-)
-
-CREATE TABLE ${prefix}TMODEL_IDENTIFIER
-(
- TMODEL_KEY VARCHAR(41) NOT NULL,
- IDENTIFIER_ID INT NOT NULL,
- TMODEL_KEY_REF VARCHAR(255) NULL,
- KEY_NAME VARCHAR(255) NULL,
- KEY_VALUE VARCHAR(255) NOT NULL,
- PRIMARY KEY (TMODEL_KEY,IDENTIFIER_ID),
- FOREIGN KEY (TMODEL_KEY)
- REFERENCES ${prefix}TMODEL (TMODEL_KEY)
-)
-
-CREATE TABLE ${prefix}TMODEL_DOC_DESCR
-(
- TMODEL_KEY VARCHAR(41) NOT NULL,
- TMODEL_DOC_DESCR_ID INT NOT NULL,
- LANG_CODE VARCHAR(5) NULL,
- DESCR VARCHAR(255) NOT NULL,
- PRIMARY KEY (TMODEL_KEY,TMODEL_DOC_DESCR_ID),
- FOREIGN KEY (TMODEL_KEY)
- REFERENCES ${prefix}TMODEL (TMODEL_KEY)
-)
-
-CREATE TABLE ${prefix}PUBLISHER_ASSERTION
-(
- FROM_KEY VARCHAR(41) NOT NULL,
- TO_KEY VARCHAR(41) NOT NULL,
- TMODEL_KEY VARCHAR(41) NOT NULL,
- KEY_NAME VARCHAR(255) NOT NULL,
- KEY_VALUE VARCHAR(255) NOT NULL,
- FROM_CHECK VARCHAR(5) NOT NULL,
- TO_CHECK VARCHAR(5) NOT NULL,
- FOREIGN KEY (FROM_KEY)
- REFERENCES ${prefix}BUSINESS_ENTITY (BUSINESS_KEY),
- FOREIGN KEY (TO_KEY)
- REFERENCES ${prefix}BUSINESS_ENTITY (BUSINESS_KEY)
-)
-
-CREATE TABLE ${prefix}PUBLISHER
-(
- PUBLISHER_ID VARCHAR(20) NOT NULL,
- PUBLISHER_NAME VARCHAR(255) NOT NULL,
- EMAIL_ADDRESS VARCHAR(255) NULL,
- IS_ADMIN VARCHAR(5) NULL,
- IS_ENABLED VARCHAR(5) NULL,
- MAX_BUSINESSES INT NULL,
-
- MAX_SERVICES_PER_BUSINESS INT NULL,
- MAX_BINDINGS_PER_SERVICE INT NULL,
- MAX_TMODELS INT NULL,
- PRIMARY KEY (PUBLISHER_ID)
-)
-
-CREATE TABLE ${prefix}AUTH_TOKEN
-(
- AUTH_TOKEN VARCHAR(51) NOT NULL,
- PUBLISHER_ID VARCHAR(20) NOT NULL,
- PUBLISHER_NAME VARCHAR(255) NOT NULL,
- CREATED DATETIME NOT NULL,
- LAST_USED DATETIME NOT NULL,
- NUMBER_OF_USES INT NOT NULL,
- TOKEN_STATE INT NOT NULL,
- PRIMARY KEY (AUTH_TOKEN)
-)
-
-INSERT INTO ${prefix}TMODEL (TMODEL_KEY,AUTHORIZED_NAME,OPERATOR,NAME,OVERVIEW_URL,LAST_UPDATE)
-VALUES ('uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','Administrator','jUDDI.org','uddi-org:types','http://www.uddi.org/taxonomies/UDDI_Taxonomy_tModels.htm#UDDItypes',getDate())
-
-INSERT INTO ${prefix}TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
-VALUES ('uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4',0,'en','UDDI Type Taxonomy')
-
-INSERT INTO ${prefix}TMODEL_DOC_DESCR (TMODEL_KEY,TMODEL_DOC_DESCR_ID,LANG_CODE,DESCR)
-VALUES ('uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4',0,'en','Taxonomy used to categorize Service Descriptions.')
-
-INSERT INTO ${prefix}TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
-VALUES ('uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4',0,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','types','categorization')
-
-INSERT INTO ${prefix}TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
-VALUES ('uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4',1,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','types','checked')
-
-INSERT INTO ${prefix}TMODEL (TMODEL_KEY,AUTHORIZED_NAME,OPERATOR,NAME,OVERVIEW_URL,LAST_UPDATE)
-VALUES ('uuid:DB77450D-9FA8-45D4-A7BC-04411D14E384','Administrator','jUDDI.org','unspsc-org:unspsc:3-1','http://www.uddi.org/taxonomies/UDDI_Taxonomy_tModels.htm#UNSPSC31',getDate())
-
-INSERT INTO ${prefix}TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
-VALUES ('uuid:DB77450D-9FA8-45D4-A7BC-04411D14E384',0,'en','Product Taxonomy: UNSPSC (Version 3.1)')
-
-INSERT INTO ${prefix}TMODEL_DOC_DESCR (TMODEL_KEY,TMODEL_DOC_DESCR_ID,LANG_CODE,DESCR)
-VALUES ('uuid:DB77450D-9FA8-45D4-A7BC-04411D14E384',0,'en','This tModel defines the UNSPSC product taxonomy.')
-
-INSERT INTO ${prefix}TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
-VALUES ('uuid:DB77450D-9FA8-45D4-A7BC-04411D14E384',0,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','types','categorization')
-
-INSERT INTO ${prefix}TMODEL (TMODEL_KEY,AUTHORIZED_NAME,OPERATOR,NAME,OVERVIEW_URL,LAST_UPDATE)
-VALUES ('uuid:CD153257-086A-4237-B336-6BDCBDCC6634','Administrator','jUDDI.org','unspsc-org:unspsc','http://www.uddi.org/taxonomies/UDDI_Taxonomy_tModels.htm#UNSPSC',getDate())
-
-INSERT INTO ${prefix}TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
-VALUES ('uuid:CD153257-086A-4237-B336-6BDCBDCC6634',0,'en','Product Taxonomy: UNSPSC (Version 7.3)')
-
-INSERT INTO ${prefix}TMODEL_DOC_DESCR (TMODEL_KEY,TMODEL_DOC_DESCR_ID,LANG_CODE,DESCR)
-VALUES ('uuid:CD153257-086A-4237-B336-6BDCBDCC6634',0,'en','This tModel defines Version 7.3 of the UNSPSC product taxonomy.')
-
-INSERT INTO ${prefix}TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
-VALUES ('uuid:CD153257-086A-4237-B336-6BDCBDCC6634',0,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','types','categorization')
-
-INSERT INTO ${prefix}TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
-VALUES ('uuid:CD153257-086A-4237-B336-6BDCBDCC6634',1,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','types','Checked')
-
-INSERT INTO ${prefix}TMODEL (TMODEL_KEY,AUTHORIZED_NAME,OPERATOR,NAME,OVERVIEW_URL,LAST_UPDATE)
-VALUES ('uuid:C0B9FE13-179F-413D-8A5B-5004DB8E5BB2','Administrator','jUDDI.org','ntis-gov:naics:1997','http://www.uddi.org/taxonomies/UDDI_Taxonomy_tModels.htm#NAICS',getDate())
-
-INSERT INTO ${prefix}TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
-VALUES ('uuid:C0B9FE13-179F-413D-8A5B-5004DB8E5BB2',0,'en','Business Taxonomy: NAICS(1997 Release)')
-
-INSERT INTO ${prefix}TMODEL_DOC_DESCR (TMODEL_KEY,TMODEL_DOC_DESCR_ID,LANG_CODE,DESCR)
-
-VALUES ('uuid:C0B9FE13-179F-413D-8A5B-5004DB8E5BB2',0,'en','This tModel defines the NAICS industry taxonomy.')
-
-INSERT INTO ${prefix}TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
-VALUES ('uuid:C0B9FE13-179F-413D-8A5B-5004DB8E5BB2',0,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','types','categorization')
-
-INSERT INTO ${prefix}TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
-VALUES ('uuid:C0B9FE13-179F-413D-8A5B-5004DB8E5BB2',1,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','types','checked')
-
-INSERT INTO ${prefix}TMODEL (TMODEL_KEY,AUTHORIZED_NAME,OPERATOR,NAME,OVERVIEW_URL,LAST_UPDATE)
-VALUES ('uuid:4E49A8D6-D5A2-4FC2-93A0-0411D8D19E88','Administrator','jUDDI.org','uddi-org:iso-ch:3166-1999','http://www.uddi.org/taxonomies/UDDI_Taxonomy_tModels.htm#ISO3166',getDate())
-
-INSERT INTO ${prefix}TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
-VALUES ('uuid:4E49A8D6-D5A2-4FC2-93A0-0411D8D19E88',0,'en','ISO 3166-1:1997 and 3166-2:1998. Codes for names of countries and their subdivisions. Part 1: Country codes. Part 2:Country subdivision codes. Update newsletters include ISO 3166-1 V-1 (1998-02-05), V-2 (1999-10-01), ISO 3166-2 I-1 (1998)')
-
-INSERT INTO ${prefix}TMODEL_DOC_DESCR (TMODEL_KEY,TMODEL_DOC_DESCR_ID,LANG_CODE,DESCR)
-VALUES ('uuid:4E49A8D6-D5A2-4FC2-93A0-0411D8D19E88',0,'en','Taxonomy used to categorize entries by geographic location.')
-
-INSERT INTO ${prefix}TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
-VALUES ('uuid:4E49A8D6-D5A2-4FC2-93A0-0411D8D19E88',0,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','types','categorization')
-
-INSERT INTO ${prefix}TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
-VALUES ('uuid:4E49A8D6-D5A2-4FC2-93A0-0411D8D19E88',1,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','types','checked')
-
-INSERT INTO ${prefix}TMODEL (TMODEL_KEY,AUTHORIZED_NAME,OPERATOR,NAME,OVERVIEW_URL,LAST_UPDATE)
-VALUES ('uuid:A035A07C-F362-44DD-8F95-E2B134BF43B4','Administrator','jUDDI.org','uddi-org:general_keywords','http://www.uddi.org/taxonomies/UDDI_Taxonomy_tModels.htm#GenKW',getDate())
-
-INSERT INTO ${prefix}TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
-VALUES ('uuid:A035A07C-F362-44DD-8F95-E2B134BF43B4',0,'en','Special taxonomy consisting of namespace identifiers and the keywords associated with the namespaces')
-
-INSERT INTO ${prefix}TMODEL_DOC_DESCR (TMODEL_KEY,TMODEL_DOC_DESCR_ID,LANG_CODE,DESCR)
-VALUES ('uuid:A035A07C-F362-44DD-8F95-E2B134BF43B4',0,'en','This tModel defines an unidentified taxonomy.')
-
-INSERT INTO ${prefix}TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
-VALUES ('uuid:A035A07C-F362-44DD-8F95-E2B134BF43B4',0,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','types','categorization')
-
-INSERT INTO ${prefix}TMODEL (TMODEL_KEY,AUTHORIZED_NAME,OPERATOR,NAME,OVERVIEW_URL,LAST_UPDATE)
-VALUES ('uuid:4064C064-6D14-4F35-8953-9652106476A9','Administrator','jUDDI.org','uddi-org:owningBusiness','http://www.uddi.org/taxonomies/UDDI_Taxonomy_tModels.htm#owningBusiness',getDate())
-
-INSERT INTO ${prefix}TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
-VALUES ('uuid:4064C064-6D14-4F35-8953-9652106476A9',0,'en','A pointer to a businessEntity that owns the tagged data.')
-
-INSERT INTO ${prefix}TMODEL_DOC_DESCR (TMODEL_KEY,TMODEL_DOC_DESCR_ID,LANG_CODE,DESCR)
-VALUES ('uuid:4064C064-6D14-4F35-8953-9652106476A9',0,'en','This tModel indicates the businessEntity that published or owns the tagged tModel. Used with tModels to establish an "owned" relationship with a registered businessEntity.')
-
-INSERT INTO ${prefix}TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
-VALUES ('uuid:4064C064-6D14-4F35-8953-9652106476A9',0,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','types','categorization')
-
-INSERT INTO ${prefix}TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
-VALUES ('uuid:4064C064-6D14-4F35-8953-9652106476A9',1,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','types','checked')
-
-INSERT INTO ${prefix}TMODEL (TMODEL_KEY,AUTHORIZED_NAME,OPERATOR,NAME,OVERVIEW_URL,LAST_UPDATE)
-VALUES ('uuid:807A2C6A-EE22-470D-ADC7-E0424A337C03','Administrator','jUDDI.org','uddi-org:relationships','http://www.uddi.org/taxonomies/UDDI_Taxonomy_tModels.htm#Relationships',getDate())
-
-INSERT INTO ${prefix}TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
-VALUES ('uuid:807A2C6A-EE22-470D-ADC7-E0424A337C03',0,'en','Starter set classifications of businessEntity relationships')
-
-INSERT INTO ${prefix}TMODEL_DOC_DESCR (TMODEL_KEY,TMODEL_DOC_DESCR_ID,LANG_CODE,DESCR)
-VALUES ('uuid:807A2C6A-EE22-470D-ADC7-E0424A337C03',0,'en','This tModel is used to describe business relationships. Used in the publisher assertion messages.')
-
-INSERT INTO ${prefix}TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
-VALUES ('uuid:807A2C6A-EE22-470D-ADC7-E0424A337C03',0,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','types','relationship')
-
-INSERT INTO ${prefix}TMODEL (TMODEL_KEY,AUTHORIZED_NAME,OPERATOR,NAME,OVERVIEW_URL,LAST_UPDATE)
-VALUES ('uuid:327A56F0-3299-4461-BC23-5CD513E95C55','Administrator','jUDDI.org','uddi-org:operators','http://www.uddi.org/taxonomies/UDDI_Taxonomy_tModels.htm#Operators',getDate())
-
-INSERT INTO ${prefix}TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
-VALUES ('uuid:327A56F0-3299-4461-BC23-5CD513E95C55',0,'en','Taxonomy for categorizing the businessEntity of an operator of a registry.')
-
-INSERT INTO ${prefix}TMODEL_DOC_DESCR (TMODEL_KEY,TMODEL_DOC_DESCR_ID,LANG_CODE,DESCR)
-VALUES ('uuid:327A56F0-3299-4461-BC23-5CD513E95C55',0,'en','This checked value set is used to identify UDDI operators.')
-
-INSERT INTO ${prefix}TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
-VALUES ('uuid:327A56F0-3299-4461-BC23-5CD513E95C55',0,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','types','categorization')
-
-INSERT INTO ${prefix}TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
-VALUES ('uuid:327A56F0-3299-4461-BC23-5CD513E95C55',1,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','types','checked')
-
-INSERT INTO ${prefix}TMODEL (TMODEL_KEY,AUTHORIZED_NAME,OPERATOR,NAME,OVERVIEW_URL,LAST_UPDATE)
-VALUES ('uuid:E59AE320-77A5-11D5-B898-0004AC49CC1E','Administrator','jUDDI.org','uddi-org:isReplacedBy','http://www.uddi.org/taxonomies/UDDI_Taxonomy_tModels.htm#IsReplacedBy',getDate())
-
-INSERT INTO ${prefix}TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
-VALUES ('uuid:E59AE320-77A5-11D5-B898-0004AC49CC1E',0,'en','An identifier system used to point (using UDDI keys) to the tModel (or businessEntity) that is the logical replacement for the one in which isReplacedBy is used')
-
-INSERT INTO ${prefix}TMODEL_DOC_DESCR (TMODEL_KEY,TMODEL_DOC_DESCR_ID,LANG_CODE,DESCR)
-VALUES ('uuid:E59AE320-77A5-11D5-B898-0004AC49CC1E',0,'en','This is a checked value set.')
-
-INSERT INTO ${prefix}TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
-VALUES ('uuid:E59AE320-77A5-11D5-B898-0004AC49CC1E',0,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','types','identifier')
-
-INSERT INTO ${prefix}TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
-VALUES ('uuid:E59AE320-77A5-11D5-B898-0004AC49CC1E',1,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','types','checked')
-
-INSERT INTO ${prefix}TMODEL (TMODEL_KEY,AUTHORIZED_NAME,OPERATOR,NAME,OVERVIEW_URL,LAST_UPDATE)
-VALUES ('uuid:8609C81E-EE1F-4D5A-B202-3EB13AD01823','Administrator','jUDDI.org','dnb-com:D-U-N-S','http://www.uddi.org/taxonomies/UDDI_Taxonomy_tModels.htm#D-U-N-S',getDate())
-
-INSERT INTO ${prefix}TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
-VALUES ('uuid:8609C81E-EE1F-4D5A-B202-3EB13AD01823',0,'en','Dun&Bradstreet D-U-N-S� Number')
-
-INSERT INTO ${prefix}TMODEL_DOC_DESCR (TMODEL_KEY,TMODEL_DOC_DESCR_ID,LANG_CODE,DESCR)
-VALUES ('uuid:8609C81E-EE1F-4D5A-B202-3EB13AD01823',0,'en','This tModel is used for the Dun&Bradstreet D-U-N-S� Number identifier.')
-
-INSERT INTO ${prefix}TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
-VALUES ('uuid:8609C81E-EE1F-4D5A-B202-3EB13AD01823',0,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','types','identifier')
-
-INSERT INTO ${prefix}TMODEL (TMODEL_KEY,AUTHORIZED_NAME,OPERATOR,NAME,OVERVIEW_URL,LAST_UPDATE)
-VALUES ('uuid:B1B1BAF5-2329-43E6-AE13-BA8E97195039','Administrator','jUDDI.org','thomasregister-com:supplierID','http://www.uddi.org/taxonomies/UDDI_Taxonomy_tModels.htm#Thomas',getDate())
-
-INSERT INTO ${prefix}TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
-VALUES ('uuid:B1B1BAF5-2329-43E6-AE13-BA8E97195039',0,'en','Thomas Registry Suppliers')
-
-INSERT INTO ${prefix}TMODEL_DOC_DESCR (TMODEL_KEY,TMODEL_DOC_DESCR_ID,LANG_CODE,DESCR)
-VALUES ('uuid:B1B1BAF5-2329-43E6-AE13-BA8E97195039',0,'en','This tModel is used for the Thomas Register supplier identifier codes.')
-
-INSERT INTO ${prefix}TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
-VALUES ('uuid:B1B1BAF5-2329-43E6-AE13-BA8E97195039',0,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','types','identifier')
-
-
-
-INSERT INTO ${prefix}TMODEL (TMODEL_KEY,AUTHORIZED_NAME,PUBLISHER_ID,OPERATOR,NAME,OVERVIEW_URL,LAST_UPDATE)
-VALUES ('uuid:6E090AFA-33E5-36EB-81B7-1CA18373F457','Administrator','admin','jUDDI.org','uddi-org:wsdl:types','http://www.oasis-open.org/committees/uddi-spec/doc/tn/uddi-spec-tc-tn-wsdl-v2.htm#wsdlTypes',getDate());
-
-INSERT INTO ${prefix}TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
-VALUES ('uuid:6E090AFA-33E5-36EB-81B7-1CA18373F457',0,'en','WSDL Type Category System');
-
-INSERT INTO ${prefix}TMODEL_DOC_DESCR (TMODEL_KEY,TMODEL_DOC_DESCR_ID,LANG_CODE,DESCR)
-VALUES ('uuid:6E090AFA-33E5-36EB-81B7-1CA18373F457',0,'en','The WSDL Entity Type tModel uses a number of UDDI entities to represent the various entities within a WSDL document.');
-
-INSERT INTO ${prefix}TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
-VALUES ('uuid:6E090AFA-33E5-36EB-81B7-1CA18373F457',0,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','uddi-org:types','unchecked');
-
-INSERT INTO ${prefix}TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
-VALUES ('uuid:6E090AFA-33E5-36EB-81B7-1CA18373F457',1,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','uddi-org:types','categorization');
-
-
-INSERT INTO ${prefix}TMODEL (TMODEL_KEY,AUTHORIZED_NAME,PUBLISHER_ID,OPERATOR,NAME,OVERVIEW_URL,LAST_UPDATE)
-VALUES ('uuid:D01987D1-AB2E-3013-9BE2-2A66EB99D824','Administrator','admin','jUDDI.org','uddi-org:xml:namespace','http://www.oasis-open.org/committees/uddi-spec/doc/tn/uddi-spec-tc-tn-wsdl-v2.htm#xmlNamespace',getDate());
-
-INSERT INTO ${prefix}TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
-VALUES ('uuid:D01987D1-AB2E-3013-9BE2-2A66EB99D824',0,'en','A category system used to indicate namespaces');
-
-INSERT INTO ${prefix}TMODEL_DOC_DESCR (TMODEL_KEY,TMODEL_DOC_DESCR_ID,LANG_CODE,DESCR)
-VALUES ('uuid:D01987D1-AB2E-3013-9BE2-2A66EB99D824',0,'en','A namespace provides necessary qualifying information about a technical concept or model. The XML Namespace tModel provides a mechanism to associate a namespace with a UDDI entity.');
-
-INSERT INTO ${prefix}TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
-VALUES ('uuid:D01987D1-AB2E-3013-9BE2-2A66EB99D824',0,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','uddi-org:types','unchecked');
-
-INSERT INTO ${prefix}TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
-VALUES ('uuid:D01987D1-AB2E-3013-9BE2-2A66EB99D824',1,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','uddi-org:types','categorization');
-
-
-INSERT INTO ${prefix}TMODEL (TMODEL_KEY,AUTHORIZED_NAME,PUBLISHER_ID,OPERATOR,NAME,OVERVIEW_URL,LAST_UPDATE)
-VALUES ('uuid:2EC65201-9109-3919-9BEC-C9DBEFCACCF6','Administrator','admin','jUDDI.org','uddi-org:xml:localName','http://www.oasis-open.org/committees/uddi-spec/doc/tn/uddi-spec-tc-tn-wsdl-v2.htm#xmlLocalName',getDate());
-
-INSERT INTO ${prefix}TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
-VALUES ('uuid:2EC65201-9109-3919-9BEC-C9DBEFCACCF6',0,'en','A category system used to indicate XML local names');
-
-INSERT INTO ${prefix}TMODEL_DOC_DESCR (TMODEL_KEY,TMODEL_DOC_DESCR_ID,LANG_CODE,DESCR)
-VALUES ('uuid:2EC65201-9109-3919-9BEC-C9DBEFCACCF6',0,'en','The XML Local Name tModel provides a mechanism to indicate the name attribute for the uddi:businessService.');
-
-INSERT INTO ${prefix}TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
-VALUES ('uuid:2EC65201-9109-3919-9BEC-C9DBEFCACCF6',0,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','uddi-org:types','unchecked');
-
-INSERT INTO ${prefix}TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
-VALUES ('uuid:2EC65201-9109-3919-9BEC-C9DBEFCACCF6',1,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','uddi-org:types','categorization');
-
-
-INSERT INTO ${prefix}TMODEL (TMODEL_KEY,AUTHORIZED_NAME,PUBLISHER_ID,OPERATOR,NAME,OVERVIEW_URL,LAST_UPDATE)
-VALUES ('uuid:082B0851-25D8-303C-B332-F24A6D53E38E','Administrator','admin','jUDDI.org','uddi-org:wsdl:portTypeReference','http://www.oasis-open.org/committees/uddi-spec/doc/tn/uddi-spec-tc-tn-wsdl-v2.htm#portTypeReference',getDate());
-
-INSERT INTO ${prefix}TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
-VALUES ('uuid:082B0851-25D8-303C-B332-F24A6D53E38E',0,'en','A category system used to reference a wsdl:portType tModel');
-
-INSERT INTO ${prefix}TMODEL_DOC_DESCR (TMODEL_KEY,TMODEL_DOC_DESCR_ID,LANG_CODE,DESCR)
-VALUES ('uuid:082B0851-25D8-303C-B332-F24A6D53E38E',0,'en','The WSDL portType Reference category system provides a mechanism to indicate that a UDDI entity has a relationship with a certain wsdl:portType tModel.');
-
-INSERT INTO ${prefix}TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
-VALUES ('uuid:082B0851-25D8-303C-B332-F24A6D53E38E',0,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','uddi-org:types','checked');
-
-INSERT INTO ${prefix}TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
-VALUES ('uuid:082B0851-25D8-303C-B332-F24A6D53E38E',1,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','uddi-org:types','categorization');
-
-
-INSERT INTO ${prefix}TMODEL (TMODEL_KEY,AUTHORIZED_NAME,PUBLISHER_ID,OPERATOR,NAME,OVERVIEW_URL,LAST_UPDATE)
-VALUES ('uuid:AA254698-93DE-3870-8DF3-A5C075D64A0E','Administrator','admin','jUDDI.org','uddi-org:protocol:soap','http://www.oasis-open.org/committees/uddi-spec/doc/tn/uddi-spec-tc-tn-wsdl-v2.htm#soap',getDate());
-
-INSERT INTO ${prefix}TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
-VALUES ('uuid:AA254698-93DE-3870-8DF3-A5C075D64A0E',0,'en','A tModel that represents the SOAP 1.1 protocol');
-
-INSERT INTO ${prefix}TMODEL_DOC_DESCR (TMODEL_KEY,TMODEL_DOC_DESCR_ID,LANG_CODE,DESCR)
-VALUES ('uuid:AA254698-93DE-3870-8DF3-A5C075D64A0E',0,'en','The SOAP Protocol tModel can be used to indicate that a Web service supports the SOAP 1.1 protocol.');
-
-INSERT INTO ${prefix}TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
-VALUES ('uuid:AA254698-93DE-3870-8DF3-A5C075D64A0E',0,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','uddi-org:types','protocol');
-
-
-INSERT INTO ${prefix}TMODEL (TMODEL_KEY,AUTHORIZED_NAME,PUBLISHER_ID,OPERATOR,NAME,OVERVIEW_URL,LAST_UPDATE)
-VALUES ('uuid:6E10B91B-BABC-3442-B8FC-5A3C8FDE0794','Administrator','admin','jUDDI.org','uddi-org:protocol:http','http://www.oasis-open.org/committees/uddi-spec/doc/tn/uddi-spec-tc-tn-wsdl-v2.htm#http',getDate());
-
-INSERT INTO ${prefix}TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
-VALUES ('uuid:6E10B91B-BABC-3442-B8FC-5A3C8FDE0794',0,'en','A tModel that represents the HTTP protocol');
-
-INSERT INTO ${prefix}TMODEL_DOC_DESCR (TMODEL_KEY,TMODEL_DOC_DESCR_ID,LANG_CODE,DESCR)
-VALUES ('uuid:6E10B91B-BABC-3442-B8FC-5A3C8FDE0794',0,'en','The HTTP Protocol tModel can be used to indicate that a Web service supports the HTTP protocol.');
-
-INSERT INTO ${prefix}TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
-VALUES ('uuid:6E10B91B-BABC-3442-B8FC-5A3C8FDE0794',0,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','uddi-org:types','protocol');
-
-
-INSERT INTO ${prefix}TMODEL (TMODEL_KEY,AUTHORIZED_NAME,PUBLISHER_ID,OPERATOR,NAME,OVERVIEW_URL,LAST_UPDATE)
-VALUES ('uuid:4DC74177-7806-34D9-AECD-33C57DC3A865','Administrator','admin','jUDDI.org','uddi-org:wsdl:categorization:protocol','http://www.oasis-open.org/committees/uddi-spec/doc/tn/uddi-spec-tc-tn-wsdl-v2.htm#protocol',getDate());
-
-INSERT INTO ${prefix}TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
-VALUES ('uuid:4DC74177-7806-34D9-AECD-33C57DC3A865',0,'en','Category system used to describe the protocol supported by a wsdl:binding.');
-
-INSERT INTO ${prefix}TMODEL_DOC_DESCR (TMODEL_KEY,TMODEL_DOC_DESCR_ID,LANG_CODE,DESCR)
-VALUES ('uuid:4DC74177-7806-34D9-AECD-33C57DC3A865',0,'en','The Protocol Categorization tModel provides a mechanism to capture this protocol information in the UDDI binding tModel.');
-
-INSERT INTO ${prefix}TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
-VALUES ('uuid:4DC74177-7806-34D9-AECD-33C57DC3A865',0,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','uddi-org:types','categorization');
-
-INSERT INTO ${prefix}TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
-VALUES ('uuid:4DC74177-7806-34D9-AECD-33C57DC3A865',1,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','uddi-org:types','checked');
-
-
-INSERT INTO ${prefix}TMODEL (TMODEL_KEY,AUTHORIZED_NAME,PUBLISHER_ID,OPERATOR,NAME,OVERVIEW_URL,LAST_UPDATE)
-VALUES ('uuid:E5C43936-86E4-37BF-8196-1D04B35C0099','Administrator','admin','jUDDI.org','uddi-org:wsdl:categorization:transport','http://www.oasis-open.org/committees/uddi-spec/doc/tn/uddi-spec-tc-tn-wsdl-v2.htm#transport',getDate());
-
-INSERT INTO ${prefix}TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
-VALUES ('uuid:E5C43936-86E4-37BF-8196-1D04B35C0099',0,'en','Category system used to describe the transport supported by a wsdl:binding.');
-
-INSERT INTO ${prefix}TMODEL_DOC_DESCR (TMODEL_KEY,TMODEL_DOC_DESCR_ID,LANG_CODE,DESCR)
-VALUES ('uuid:E5C43936-86E4-37BF-8196-1D04B35C0099',0,'en','The Transport Categorization tModel provides a mechanism to capture transport information in the UDDI binding tModel which allows a user to search for bindings that implement a specific transport protocol.');
-
-INSERT INTO ${prefix}TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
-VALUES ('uuid:E5C43936-86E4-37BF-8196-1D04B35C0099',0,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','uddi-org:types','categorization');
-
-INSERT INTO ${prefix}TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
-VALUES ('uuid:E5C43936-86E4-37BF-8196-1D04B35C0099',1,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','uddi-org:types','checked');
-
-
-INSERT INTO ${prefix}TMODEL (TMODEL_KEY,AUTHORIZED_NAME,PUBLISHER_ID,OPERATOR,NAME,OVERVIEW_URL,LAST_UPDATE)
-VALUES ('uuid:AD61DE98-4DB8-31B2-A299-A2373DC97212','Administrator','admin','jUDDI.org','uddi-org:wsdl:address','http://www.oasis-open.org/committees/uddi-spec/doc/tn/uddi-spec-tc-tn-wsdl-v2.htm#Address',getDate());
-
-INSERT INTO ${prefix}TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
-VALUES ('uuid:AD61DE98-4DB8-31B2-A299-A2373DC97212',0,'en','A tModel used to indicate the WSDL address option.');
-
-INSERT INTO ${prefix}TMODEL_DOC_DESCR (TMODEL_KEY,TMODEL_DOC_DESCR_ID,LANG_CODE,DESCR)
-VALUES ('uuid:AD61DE98-4DB8-31B2-A299-A2373DC97212',0,'en','The WSDL Address tModel provides A mechanism to indicate that the endpoint address should be obtained from a WSDL document.');
-
--- ** http transport **
-INSERT INTO ${prefix}TMODEL (TMODEL_KEY,AUTHORIZED_NAME,PUBLISHER_ID,OPERATOR,NAME,OVERVIEW_URL,LAST_UPDATE)
-VALUES ('uuid:68DE9E80-AD09-469D-8A37-088422BFBC36','Administrator','admin','jUDDI.org','uddi-org:http','http://www.uddi.org/taxonomies/UDDI_CoreOther_tModels.htm#overHTTP',getDate());
-INSERT INTO ${prefix}TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
-VALUES ('uuid:68DE9E80-AD09-469D-8A37-088422BFBC36',0,'en','An HTTP or web browser-based web service');
-INSERT INTO ${prefix}TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
-VALUES ('uuid:68DE9E80-AD09-469D-8A37-088422BFBC36',0,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','tModelType','transport');
-
--- ** uddi inquiry **
-INSERT INTO ${prefix}TMODEL (TMODEL_KEY,AUTHORIZED_NAME,PUBLISHER_ID,OPERATOR,NAME,OVERVIEW_URL,LAST_UPDATE)
-VALUES ('uuid:AC104DCC-D623-452F-88A7-F8ACD94D9B2B','Administrator','admin','jUDDI.org','uddi-org:inquiry_v2','http://www.uddi.org/wsdl/inquire_v2.wsdl',getDate());
-INSERT INTO ${prefix}TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
-VALUES ('uuid:AC104DCC-D623-452F-88A7-F8ACD94D9B2B',0,'en','UDDI Inquiry API Version 2 - Core Specification');
-INSERT INTO ${prefix}TMODEL_DOC_DESCR (TMODEL_KEY,TMODEL_DOC_DESCR_ID,LANG_CODE,DESCR)
-VALUES ('uuid:AC104DCC-D623-452F-88A7-F8ACD94D9B2B',0,'en','This tModel defines the inquiry API calls for interacting with a V2 UDDI node.');
-INSERT INTO ${prefix}TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
-VALUES ('uuid:AC104DCC-D623-452F-88A7-F8ACD94D9B2B',0,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','types','specification');
-INSERT INTO ${prefix}TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
-VALUES ('uuid:AC104DCC-D623-452F-88A7-F8ACD94D9B2B',1,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','types','xmlSpec');
-INSERT INTO ${prefix}TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
-VALUES ('uuid:AC104DCC-D623-452F-88A7-F8ACD94D9B2B',2,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','types','soapSpec');
-INSERT INTO ${prefix}TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
-VALUES ('uuid:AC104DCC-D623-452F-88A7-F8ACD94D9B2B',3,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','types','wsdlSpec');
-
Copied: labs/jbossesb/workspace/mlittle/legstar/product/install/jUDDI-registry/sql/mssql/create_database.sql (from rev 24846, labs/jbossesb/trunk/product/install/jUDDI-registry/sql/mssql/create_database.sql)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/install/jUDDI-registry/sql/mssql/create_database.sql (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/install/jUDDI-registry/sql/mssql/create_database.sql 2009-01-21 15:38:08 UTC (rev 24850)
@@ -0,0 +1,726 @@
+-- DROP TABLE ${prefix}BUSINESS_DESCR;
+-- DROP TABLE ${prefix}BUSINESS_CATEGORY;
+-- DROP TABLE ${prefix}BUSINESS_IDENTIFIER;
+-- DROP TABLE ${prefix}BUSINESS_NAME;
+-- DROP TABLE ${prefix}DISCOVERY_URL;
+-- DROP TABLE ${prefix}ADDRESS_LINE;
+-- DROP TABLE ${prefix}ADDRESS;
+-- DROP TABLE ${prefix}PHONE;
+-- DROP TABLE ${prefix}EMAIL;
+-- DROP TABLE ${prefix}CONTACT_DESCR;
+-- DROP TABLE ${prefix}CONTACT;
+-- DROP TABLE ${prefix}SERVICE_DESCR;
+-- DROP TABLE ${prefix}SERVICE_CATEGORY;
+-- DROP TABLE ${prefix}SERVICE_NAME;
+-- DROP TABLE ${prefix}BINDING_DESCR;
+-- DROP TABLE ${prefix}BINDING_CATEGORY;
+-- DROP TABLE ${prefix}INSTANCE_DETAILS_DESCR;
+-- DROP TABLE ${prefix}INSTANCE_DETAILS_DOC_DESCR;
+-- DROP TABLE ${prefix}TMODEL_CATEGORY;
+-- DROP TABLE ${prefix}TMODEL_DESCR;
+-- DROP TABLE ${prefix}TMODEL_DOC_DESCR;
+-- DROP TABLE ${prefix}TMODEL_IDENTIFIER;
+-- DROP TABLE ${prefix}TMODEL_INSTANCE_INFO_DESCR;
+-- DROP TABLE ${prefix}TMODEL_INSTANCE_INFO;
+-- DROP TABLE ${prefix}PUBLISHER_ASSERTION;
+-- DROP TABLE ${prefix}TMODEL;
+-- DROP TABLE ${prefix}BINDING_TEMPLATE;
+-- DROP TABLE ${prefix}BUSINESS_SERVICE;
+-- DROP TABLE ${prefix}BUSINESS_ENTITY;
+-- DROP TABLE ${prefix}PUBLISHER;
+-- DROP TABLE ${prefix}AUTH_TOKEN;
+
+CREATE TABLE ${prefix}BUSINESS_ENTITY
+(
+ BUSINESS_KEY VARCHAR(41) NOT NULL,
+ AUTHORIZED_NAME VARCHAR(255) NOT NULL,
+ PUBLISHER_ID VARCHAR(20) NULL,
+ OPERATOR VARCHAR(255) NOT NULL,
+ LAST_UPDATE DATETIME NOT NULL,
+ PRIMARY KEY (BUSINESS_KEY)
+)
+
+CREATE TABLE ${prefix}BUSINESS_DESCR
+(
+ BUSINESS_KEY VARCHAR(41) NOT NULL,
+ BUSINESS_DESCR_ID INT NOT NULL,
+ LANG_CODE VARCHAR(5) NULL,
+ DESCR VARCHAR(255) NOT NULL,
+ PRIMARY KEY (BUSINESS_KEY,BUSINESS_DESCR_ID),
+ FOREIGN KEY (BUSINESS_KEY)
+ REFERENCES ${prefix}BUSINESS_ENTITY (BUSINESS_KEY)
+)
+
+CREATE TABLE ${prefix}BUSINESS_CATEGORY
+(
+ BUSINESS_KEY VARCHAR(41) NOT NULL,
+ CATEGORY_ID INT NOT NULL,
+ TMODEL_KEY_REF VARCHAR(41) NULL,
+ KEY_NAME VARCHAR(255) NULL,
+ KEY_VALUE VARCHAR(255) NOT NULL,
+ PRIMARY KEY (BUSINESS_KEY,CATEGORY_ID),
+ FOREIGN KEY (BUSINESS_KEY)
+ REFERENCES ${prefix}BUSINESS_ENTITY (BUSINESS_KEY)
+)
+
+CREATE TABLE ${prefix}BUSINESS_IDENTIFIER
+(
+ BUSINESS_KEY VARCHAR(41) NOT NULL,
+ IDENTIFIER_ID INT NOT NULL,
+ TMODEL_KEY_REF VARCHAR(41) NULL,
+ KEY_NAME VARCHAR(255) NULL,
+ KEY_VALUE VARCHAR(255) NOT NULL,
+ PRIMARY KEY (BUSINESS_KEY,IDENTIFIER_ID),
+ FOREIGN KEY (BUSINESS_KEY)
+ REFERENCES ${prefix}BUSINESS_ENTITY (BUSINESS_KEY)
+)
+
+CREATE TABLE ${prefix}BUSINESS_NAME
+(
+ BUSINESS_KEY VARCHAR(41) NOT NULL,
+ BUSINESS_NAME_ID INT NOT NULL,
+ LANG_CODE VARCHAR(5) NULL,
+ NAME VARCHAR(255) NOT NULL,
+ PRIMARY KEY (BUSINESS_KEY,BUSINESS_NAME_ID),
+ FOREIGN KEY (BUSINESS_KEY)
+ REFERENCES ${prefix}BUSINESS_ENTITY (BUSINESS_KEY)
+)
+
+CREATE TABLE ${prefix}CONTACT
+(
+ BUSINESS_KEY VARCHAR(41) NOT NULL,
+ CONTACT_ID INT NOT NULL,
+ USE_TYPE VARCHAR(255) NULL,
+ PERSON_NAME VARCHAR(255) NOT NULL,
+ PRIMARY KEY (BUSINESS_KEY,CONTACT_ID),
+ FOREIGN KEY (BUSINESS_KEY)
+ REFERENCES ${prefix}BUSINESS_ENTITY (BUSINESS_KEY)
+)
+
+CREATE TABLE ${prefix}CONTACT_DESCR
+(
+ BUSINESS_KEY VARCHAR(41) NOT NULL,
+ CONTACT_ID INT NOT NULL,
+ CONTACT_DESCR_ID INT NOT NULL,
+ LANG_CODE VARCHAR(5) NULL,
+ DESCR VARCHAR(255) NOT NULL,
+ PRIMARY KEY (BUSINESS_KEY,CONTACT_ID,CONTACT_DESCR_ID),
+ FOREIGN KEY (BUSINESS_KEY,CONTACT_ID)
+ REFERENCES ${prefix}CONTACT (BUSINESS_KEY,CONTACT_ID)
+)
+
+CREATE TABLE ${prefix}ADDRESS
+(
+ BUSINESS_KEY VARCHAR(41) NOT NULL,
+ CONTACT_ID INT NOT NULL,
+ ADDRESS_ID INT NOT NULL,
+ USE_TYPE VARCHAR(255) NULL,
+ SORT_CODE VARCHAR(10) NULL,
+ TMODEL_KEY VARCHAR(41) NULL,
+ PRIMARY KEY (BUSINESS_KEY,CONTACT_ID,ADDRESS_ID),
+ FOREIGN KEY (BUSINESS_KEY,CONTACT_ID)
+ REFERENCES ${prefix}CONTACT (BUSINESS_KEY,CONTACT_ID)
+)
+
+CREATE TABLE ${prefix}ADDRESS_LINE
+(
+ BUSINESS_KEY VARCHAR(41) NOT NULL,
+ CONTACT_ID INT NOT NULL,
+ ADDRESS_ID INT NOT NULL,
+ ADDRESS_LINE_ID INT NOT NULL,
+ LINE VARCHAR(80) NOT NULL,
+ KEY_NAME VARCHAR(255) NULL,
+ KEY_VALUE VARCHAR(255) NULL,
+ PRIMARY KEY (BUSINESS_KEY,CONTACT_ID,ADDRESS_ID,ADDRESS_LINE_ID),
+ FOREIGN KEY (BUSINESS_KEY,CONTACT_ID,ADDRESS_ID)
+ REFERENCES ${prefix}ADDRESS (BUSINESS_KEY,CONTACT_ID,ADDRESS_ID)
+)
+
+CREATE TABLE ${prefix}EMAIL
+(
+ BUSINESS_KEY VARCHAR(41) NOT NULL,
+ CONTACT_ID INT NOT NULL,
+ EMAIL_ID INT NOT NULL,
+ USE_TYPE VARCHAR(255) NULL,
+ EMAIL_ADDRESS VARCHAR(255) NOT NULL,
+ PRIMARY KEY (BUSINESS_KEY,CONTACT_ID,EMAIL_ID),
+ FOREIGN KEY (BUSINESS_KEY,CONTACT_ID)
+ REFERENCES ${prefix}CONTACT (BUSINESS_KEY,CONTACT_ID)
+)
+
+CREATE TABLE ${prefix}PHONE
+(
+ BUSINESS_KEY VARCHAR(41) NOT NULL,
+ CONTACT_ID INT NOT NULL,
+ PHONE_ID INT NOT NULL,
+ USE_TYPE VARCHAR(255) NULL,
+ PHONE_NUMBER VARCHAR(50) NOT NULL,
+ PRIMARY KEY (BUSINESS_KEY,CONTACT_ID,PHONE_ID),
+ FOREIGN KEY (BUSINESS_KEY,CONTACT_ID)
+ REFERENCES ${prefix}CONTACT (BUSINESS_KEY,CONTACT_ID)
+)
+
+CREATE TABLE ${prefix}DISCOVERY_URL
+(
+ BUSINESS_KEY VARCHAR(41) NOT NULL,
+ DISCOVERY_URL_ID INT NOT NULL,
+ USE_TYPE VARCHAR(255) NOT NULL,
+ URL VARCHAR(255) NOT NULL,
+ PRIMARY KEY (BUSINESS_KEY,DISCOVERY_URL_ID),
+ FOREIGN KEY (BUSINESS_KEY)
+ REFERENCES ${prefix}BUSINESS_ENTITY (BUSINESS_KEY)
+)
+
+CREATE TABLE ${prefix}BUSINESS_SERVICE
+(
+ BUSINESS_KEY VARCHAR(41) NOT NULL,
+ SERVICE_KEY VARCHAR(41) NOT NULL,
+ LAST_UPDATE DATETIME NOT NULL,
+ PRIMARY KEY (SERVICE_KEY),
+ FOREIGN KEY (BUSINESS_KEY)
+ REFERENCES ${prefix}BUSINESS_ENTITY (BUSINESS_KEY)
+)
+
+CREATE TABLE ${prefix}SERVICE_DESCR
+(
+ SERVICE_KEY VARCHAR(41) NOT NULL,
+ SERVICE_DESCR_ID INT NOT NULL,
+ LANG_CODE VARCHAR(5) NULL,
+ DESCR VARCHAR(255) NOT NULL,
+ PRIMARY KEY (SERVICE_KEY,SERVICE_DESCR_ID),
+ FOREIGN KEY (SERVICE_KEY)
+ REFERENCES ${prefix}BUSINESS_SERVICE (SERVICE_KEY)
+)
+
+CREATE TABLE ${prefix}SERVICE_CATEGORY
+(
+ SERVICE_KEY VARCHAR(41) NOT NULL,
+ CATEGORY_ID INT NOT NULL,
+ TMODEL_KEY_REF VARCHAR(41) NULL,
+ KEY_NAME VARCHAR(255) NULL,
+ KEY_VALUE VARCHAR(255) NOT NULL,
+ PRIMARY KEY (SERVICE_KEY,CATEGORY_ID),
+ FOREIGN KEY (SERVICE_KEY)
+ REFERENCES ${prefix}BUSINESS_SERVICE (SERVICE_KEY)
+)
+
+CREATE TABLE ${prefix}SERVICE_NAME
+(
+ SERVICE_KEY VARCHAR(41) NOT NULL,
+ SERVICE_NAME_ID INT NOT NULL,
+ LANG_CODE VARCHAR(5) NULL,
+ NAME VARCHAR(255) NOT NULL,
+ PRIMARY KEY (SERVICE_KEY,SERVICE_NAME_ID),
+ FOREIGN KEY (SERVICE_KEY)
+ REFERENCES ${prefix}BUSINESS_SERVICE (SERVICE_KEY)
+)
+
+CREATE TABLE ${prefix}BINDING_TEMPLATE
+(
+ SERVICE_KEY VARCHAR(41) NOT NULL,
+ BINDING_KEY VARCHAR(41) NOT NULL,
+ ACCESS_POINT_TYPE VARCHAR(20) NULL,
+ ACCESS_POINT_URL TEXT NULL,
+ HOSTING_REDIRECTOR VARCHAR(255) NULL,
+ LAST_UPDATE DATETIME NOT NULL,
+ PRIMARY KEY (BINDING_KEY),
+ FOREIGN KEY (SERVICE_KEY)
+ REFERENCES ${prefix}BUSINESS_SERVICE (SERVICE_KEY)
+)
+
+CREATE TABLE ${prefix}BINDING_CATEGORY
+(
+ BINDING_KEY VARCHAR(41) NOT NULL,
+ CATEGORY_ID INT NOT NULL,
+ TMODEL_KEY_REF VARCHAR(41) NULL,
+ KEY_NAME VARCHAR(255) NULL,
+ KEY_VALUE VARCHAR(255) NOT NULL,
+ PRIMARY KEY (BINDING_KEY,CATEGORY_ID),
+ FOREIGN KEY (BINDING_KEY)
+ REFERENCES ${prefix}BINDING_TEMPLATE (BINDING_KEY)
+)
+
+CREATE TABLE ${prefix}BINDING_DESCR
+(
+ BINDING_KEY VARCHAR(41) NOT NULL,
+ BINDING_DESCR_ID INT NOT NULL,
+ LANG_CODE VARCHAR(5) NULL,
+ DESCR VARCHAR(255) NOT NULL,
+ PRIMARY KEY (BINDING_KEY,BINDING_DESCR_ID),
+ FOREIGN KEY (BINDING_KEY)
+ REFERENCES ${prefix}BINDING_TEMPLATE (BINDING_KEY)
+)
+
+CREATE TABLE ${prefix}TMODEL_INSTANCE_INFO
+(
+ BINDING_KEY VARCHAR(41) NOT NULL,
+ TMODEL_INSTANCE_INFO_ID INT NOT NULL,
+ TMODEL_KEY VARCHAR(41) NOT NULL,
+ OVERVIEW_URL VARCHAR(255) NULL,
+ INSTANCE_PARMS VARCHAR(255) NULL,
+ PRIMARY KEY (BINDING_KEY,TMODEL_INSTANCE_INFO_ID),
+ FOREIGN KEY (BINDING_KEY)
+ REFERENCES ${prefix}BINDING_TEMPLATE (BINDING_KEY)
+)
+
+CREATE TABLE ${prefix}TMODEL_INSTANCE_INFO_DESCR
+(
+ BINDING_KEY VARCHAR(41) NOT NULL,
+ TMODEL_INSTANCE_INFO_ID INT NOT NULL,
+ TMODEL_INSTANCE_INFO_DESCR_ID INT NOT NULL,
+ LANG_CODE VARCHAR(5) NULL,
+ DESCR VARCHAR(255) NOT NULL,
+ PRIMARY KEY (BINDING_KEY,TMODEL_INSTANCE_INFO_ID,TMODEL_INSTANCE_INFO_DESCR_ID),
+ FOREIGN KEY (BINDING_KEY,TMODEL_INSTANCE_INFO_ID)
+ REFERENCES ${prefix}TMODEL_INSTANCE_INFO (BINDING_KEY,TMODEL_INSTANCE_INFO_ID)
+)
+
+CREATE TABLE ${prefix}INSTANCE_DETAILS_DESCR
+(
+ BINDING_KEY VARCHAR(41) NOT NULL,
+ TMODEL_INSTANCE_INFO_ID INT NOT NULL,
+ INSTANCE_DETAILS_DESCR_ID INT NOT NULL,
+ LANG_CODE VARCHAR(5) NULL,
+ DESCR VARCHAR(255) NOT NULL,
+ PRIMARY KEY (BINDING_KEY,TMODEL_INSTANCE_INFO_ID,INSTANCE_DETAILS_DESCR_ID),
+ FOREIGN KEY (BINDING_KEY,TMODEL_INSTANCE_INFO_ID)
+ REFERENCES ${prefix}TMODEL_INSTANCE_INFO (BINDING_KEY,TMODEL_INSTANCE_INFO_ID)
+)
+
+CREATE TABLE ${prefix}INSTANCE_DETAILS_DOC_DESCR
+(
+ BINDING_KEY VARCHAR(41) NOT NULL,
+ TMODEL_INSTANCE_INFO_ID INT NOT NULL,
+ INSTANCE_DETAILS_DOC_DESCR_ID INT NOT NULL,
+ LANG_CODE VARCHAR(5) NULL,
+ DESCR VARCHAR(255) NOT NULL,
+ PRIMARY KEY (BINDING_KEY,TMODEL_INSTANCE_INFO_ID,INSTANCE_DETAILS_DOC_DESCR_ID),
+ FOREIGN KEY (BINDING_KEY,TMODEL_INSTANCE_INFO_ID)
+ REFERENCES ${prefix}TMODEL_INSTANCE_INFO (BINDING_KEY,TMODEL_INSTANCE_INFO_ID)
+)
+
+CREATE TABLE ${prefix}TMODEL
+(
+ TMODEL_KEY VARCHAR(41) NOT NULL,
+ AUTHORIZED_NAME VARCHAR(255) NOT NULL,
+ PUBLISHER_ID VARCHAR(20) NULL,
+ OPERATOR VARCHAR(255) NOT NULL,
+ NAME VARCHAR(255) NOT NULL,
+ LANG_CODE VARCHAR(5) NULL,
+ OVERVIEW_URL VARCHAR(255) NULL,
+ DELETED VARCHAR(5) NULL,
+ LAST_UPDATE DATETIME NOT NULL,
+ PRIMARY KEY (TMODEL_KEY)
+)
+
+CREATE TABLE ${prefix}TMODEL_DESCR
+(
+ TMODEL_KEY VARCHAR(41) NOT NULL,
+ TMODEL_DESCR_ID INT NOT NULL,
+ LANG_CODE VARCHAR(5) NULL,
+ DESCR VARCHAR(255) NOT NULL,
+ PRIMARY KEY (TMODEL_KEY,TMODEL_DESCR_ID),
+ FOREIGN KEY (TMODEL_KEY)
+ REFERENCES ${prefix}TMODEL (TMODEL_KEY)
+)
+
+CREATE TABLE ${prefix}TMODEL_CATEGORY
+(
+ TMODEL_KEY VARCHAR(41) NOT NULL,
+ CATEGORY_ID INT NOT NULL,
+ TMODEL_KEY_REF VARCHAR(255) NULL,
+ KEY_NAME VARCHAR(255) NULL,
+ KEY_VALUE VARCHAR(255) NOT NULL,
+ PRIMARY KEY (TMODEL_KEY,CATEGORY_ID),
+ FOREIGN KEY (TMODEL_KEY)
+ REFERENCES ${prefix}TMODEL (TMODEL_KEY)
+)
+
+CREATE TABLE ${prefix}TMODEL_IDENTIFIER
+(
+ TMODEL_KEY VARCHAR(41) NOT NULL,
+ IDENTIFIER_ID INT NOT NULL,
+ TMODEL_KEY_REF VARCHAR(255) NULL,
+ KEY_NAME VARCHAR(255) NULL,
+ KEY_VALUE VARCHAR(255) NOT NULL,
+ PRIMARY KEY (TMODEL_KEY,IDENTIFIER_ID),
+ FOREIGN KEY (TMODEL_KEY)
+ REFERENCES ${prefix}TMODEL (TMODEL_KEY)
+)
+
+CREATE TABLE ${prefix}TMODEL_DOC_DESCR
+(
+ TMODEL_KEY VARCHAR(41) NOT NULL,
+ TMODEL_DOC_DESCR_ID INT NOT NULL,
+ LANG_CODE VARCHAR(5) NULL,
+ DESCR VARCHAR(255) NOT NULL,
+ PRIMARY KEY (TMODEL_KEY,TMODEL_DOC_DESCR_ID),
+ FOREIGN KEY (TMODEL_KEY)
+ REFERENCES ${prefix}TMODEL (TMODEL_KEY)
+)
+
+CREATE TABLE ${prefix}PUBLISHER_ASSERTION
+(
+ FROM_KEY VARCHAR(41) NOT NULL,
+ TO_KEY VARCHAR(41) NOT NULL,
+ TMODEL_KEY VARCHAR(41) NOT NULL,
+ KEY_NAME VARCHAR(255) NOT NULL,
+ KEY_VALUE VARCHAR(255) NOT NULL,
+ FROM_CHECK VARCHAR(5) NOT NULL,
+ TO_CHECK VARCHAR(5) NOT NULL,
+ FOREIGN KEY (FROM_KEY)
+ REFERENCES ${prefix}BUSINESS_ENTITY (BUSINESS_KEY),
+ FOREIGN KEY (TO_KEY)
+ REFERENCES ${prefix}BUSINESS_ENTITY (BUSINESS_KEY)
+)
+
+CREATE TABLE ${prefix}PUBLISHER
+(
+ PUBLISHER_ID VARCHAR(20) NOT NULL,
+ PUBLISHER_NAME VARCHAR(255) NOT NULL,
+ EMAIL_ADDRESS VARCHAR(255) NULL,
+ IS_ADMIN VARCHAR(5) NULL,
+ IS_ENABLED VARCHAR(5) NULL,
+ MAX_BUSINESSES INT NULL,
+
+ MAX_SERVICES_PER_BUSINESS INT NULL,
+ MAX_BINDINGS_PER_SERVICE INT NULL,
+ MAX_TMODELS INT NULL,
+ PRIMARY KEY (PUBLISHER_ID)
+)
+
+CREATE TABLE ${prefix}AUTH_TOKEN
+(
+ AUTH_TOKEN VARCHAR(51) NOT NULL,
+ PUBLISHER_ID VARCHAR(20) NOT NULL,
+ PUBLISHER_NAME VARCHAR(255) NOT NULL,
+ CREATED DATETIME NOT NULL,
+ LAST_USED DATETIME NOT NULL,
+ NUMBER_OF_USES INT NOT NULL,
+ TOKEN_STATE INT NOT NULL,
+ PRIMARY KEY (AUTH_TOKEN)
+)
+
+INSERT INTO ${prefix}TMODEL (TMODEL_KEY,AUTHORIZED_NAME,OPERATOR,NAME,OVERVIEW_URL,LAST_UPDATE)
+VALUES ('uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','Administrator','jUDDI.org','uddi-org:types','http://www.uddi.org/taxonomies/UDDI_Taxonomy_tModels.htm#UDDItypes',getDate())
+
+INSERT INTO ${prefix}TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4',0,'en','UDDI Type Taxonomy')
+
+INSERT INTO ${prefix}TMODEL_DOC_DESCR (TMODEL_KEY,TMODEL_DOC_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4',0,'en','Taxonomy used to categorize Service Descriptions.')
+
+INSERT INTO ${prefix}TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4',0,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','types','categorization')
+
+INSERT INTO ${prefix}TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4',1,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','types','checked')
+
+INSERT INTO ${prefix}TMODEL (TMODEL_KEY,AUTHORIZED_NAME,OPERATOR,NAME,OVERVIEW_URL,LAST_UPDATE)
+VALUES ('uuid:DB77450D-9FA8-45D4-A7BC-04411D14E384','Administrator','jUDDI.org','unspsc-org:unspsc:3-1','http://www.uddi.org/taxonomies/UDDI_Taxonomy_tModels.htm#UNSPSC31',getDate())
+
+INSERT INTO ${prefix}TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:DB77450D-9FA8-45D4-A7BC-04411D14E384',0,'en','Product Taxonomy: UNSPSC (Version 3.1)')
+
+INSERT INTO ${prefix}TMODEL_DOC_DESCR (TMODEL_KEY,TMODEL_DOC_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:DB77450D-9FA8-45D4-A7BC-04411D14E384',0,'en','This tModel defines the UNSPSC product taxonomy.')
+
+INSERT INTO ${prefix}TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:DB77450D-9FA8-45D4-A7BC-04411D14E384',0,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','types','categorization')
+
+INSERT INTO ${prefix}TMODEL (TMODEL_KEY,AUTHORIZED_NAME,OPERATOR,NAME,OVERVIEW_URL,LAST_UPDATE)
+VALUES ('uuid:CD153257-086A-4237-B336-6BDCBDCC6634','Administrator','jUDDI.org','unspsc-org:unspsc','http://www.uddi.org/taxonomies/UDDI_Taxonomy_tModels.htm#UNSPSC',getDate())
+
+INSERT INTO ${prefix}TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:CD153257-086A-4237-B336-6BDCBDCC6634',0,'en','Product Taxonomy: UNSPSC (Version 7.3)')
+
+INSERT INTO ${prefix}TMODEL_DOC_DESCR (TMODEL_KEY,TMODEL_DOC_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:CD153257-086A-4237-B336-6BDCBDCC6634',0,'en','This tModel defines Version 7.3 of the UNSPSC product taxonomy.')
+
+INSERT INTO ${prefix}TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:CD153257-086A-4237-B336-6BDCBDCC6634',0,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','types','categorization')
+
+INSERT INTO ${prefix}TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:CD153257-086A-4237-B336-6BDCBDCC6634',1,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','types','Checked')
+
+INSERT INTO ${prefix}TMODEL (TMODEL_KEY,AUTHORIZED_NAME,OPERATOR,NAME,OVERVIEW_URL,LAST_UPDATE)
+VALUES ('uuid:C0B9FE13-179F-413D-8A5B-5004DB8E5BB2','Administrator','jUDDI.org','ntis-gov:naics:1997','http://www.uddi.org/taxonomies/UDDI_Taxonomy_tModels.htm#NAICS',getDate())
+
+INSERT INTO ${prefix}TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:C0B9FE13-179F-413D-8A5B-5004DB8E5BB2',0,'en','Business Taxonomy: NAICS(1997 Release)')
+
+INSERT INTO ${prefix}TMODEL_DOC_DESCR (TMODEL_KEY,TMODEL_DOC_DESCR_ID,LANG_CODE,DESCR)
+
+VALUES ('uuid:C0B9FE13-179F-413D-8A5B-5004DB8E5BB2',0,'en','This tModel defines the NAICS industry taxonomy.')
+
+INSERT INTO ${prefix}TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:C0B9FE13-179F-413D-8A5B-5004DB8E5BB2',0,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','types','categorization')
+
+INSERT INTO ${prefix}TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:C0B9FE13-179F-413D-8A5B-5004DB8E5BB2',1,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','types','checked')
+
+INSERT INTO ${prefix}TMODEL (TMODEL_KEY,AUTHORIZED_NAME,OPERATOR,NAME,OVERVIEW_URL,LAST_UPDATE)
+VALUES ('uuid:4E49A8D6-D5A2-4FC2-93A0-0411D8D19E88','Administrator','jUDDI.org','uddi-org:iso-ch:3166-1999','http://www.uddi.org/taxonomies/UDDI_Taxonomy_tModels.htm#ISO3166',getDate())
+
+INSERT INTO ${prefix}TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:4E49A8D6-D5A2-4FC2-93A0-0411D8D19E88',0,'en','ISO 3166-1:1997 and 3166-2:1998. Codes for names of countries and their subdivisions. Part 1: Country codes. Part 2:Country subdivision codes. Update newsletters include ISO 3166-1 V-1 (1998-02-05), V-2 (1999-10-01), ISO 3166-2 I-1 (1998)')
+
+INSERT INTO ${prefix}TMODEL_DOC_DESCR (TMODEL_KEY,TMODEL_DOC_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:4E49A8D6-D5A2-4FC2-93A0-0411D8D19E88',0,'en','Taxonomy used to categorize entries by geographic location.')
+
+INSERT INTO ${prefix}TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:4E49A8D6-D5A2-4FC2-93A0-0411D8D19E88',0,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','types','categorization')
+
+INSERT INTO ${prefix}TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:4E49A8D6-D5A2-4FC2-93A0-0411D8D19E88',1,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','types','checked')
+
+INSERT INTO ${prefix}TMODEL (TMODEL_KEY,AUTHORIZED_NAME,OPERATOR,NAME,OVERVIEW_URL,LAST_UPDATE)
+VALUES ('uuid:A035A07C-F362-44DD-8F95-E2B134BF43B4','Administrator','jUDDI.org','uddi-org:general_keywords','http://www.uddi.org/taxonomies/UDDI_Taxonomy_tModels.htm#GenKW',getDate())
+
+INSERT INTO ${prefix}TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:A035A07C-F362-44DD-8F95-E2B134BF43B4',0,'en','Special taxonomy consisting of namespace identifiers and the keywords associated with the namespaces')
+
+INSERT INTO ${prefix}TMODEL_DOC_DESCR (TMODEL_KEY,TMODEL_DOC_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:A035A07C-F362-44DD-8F95-E2B134BF43B4',0,'en','This tModel defines an unidentified taxonomy.')
+
+INSERT INTO ${prefix}TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:A035A07C-F362-44DD-8F95-E2B134BF43B4',0,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','types','categorization')
+
+INSERT INTO ${prefix}TMODEL (TMODEL_KEY,AUTHORIZED_NAME,OPERATOR,NAME,OVERVIEW_URL,LAST_UPDATE)
+VALUES ('uuid:4064C064-6D14-4F35-8953-9652106476A9','Administrator','jUDDI.org','uddi-org:owningBusiness','http://www.uddi.org/taxonomies/UDDI_Taxonomy_tModels.htm#owningBusiness',getDate())
+
+INSERT INTO ${prefix}TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:4064C064-6D14-4F35-8953-9652106476A9',0,'en','A pointer to a businessEntity that owns the tagged data.')
+
+INSERT INTO ${prefix}TMODEL_DOC_DESCR (TMODEL_KEY,TMODEL_DOC_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:4064C064-6D14-4F35-8953-9652106476A9',0,'en','This tModel indicates the businessEntity that published or owns the tagged tModel. Used with tModels to establish an "owned" relationship with a registered businessEntity.')
+
+INSERT INTO ${prefix}TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:4064C064-6D14-4F35-8953-9652106476A9',0,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','types','categorization')
+
+INSERT INTO ${prefix}TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:4064C064-6D14-4F35-8953-9652106476A9',1,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','types','checked')
+
+INSERT INTO ${prefix}TMODEL (TMODEL_KEY,AUTHORIZED_NAME,OPERATOR,NAME,OVERVIEW_URL,LAST_UPDATE)
+VALUES ('uuid:807A2C6A-EE22-470D-ADC7-E0424A337C03','Administrator','jUDDI.org','uddi-org:relationships','http://www.uddi.org/taxonomies/UDDI_Taxonomy_tModels.htm#Relationships',getDate())
+
+INSERT INTO ${prefix}TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:807A2C6A-EE22-470D-ADC7-E0424A337C03',0,'en','Starter set classifications of businessEntity relationships')
+
+INSERT INTO ${prefix}TMODEL_DOC_DESCR (TMODEL_KEY,TMODEL_DOC_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:807A2C6A-EE22-470D-ADC7-E0424A337C03',0,'en','This tModel is used to describe business relationships. Used in the publisher assertion messages.')
+
+INSERT INTO ${prefix}TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:807A2C6A-EE22-470D-ADC7-E0424A337C03',0,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','types','relationship')
+
+INSERT INTO ${prefix}TMODEL (TMODEL_KEY,AUTHORIZED_NAME,OPERATOR,NAME,OVERVIEW_URL,LAST_UPDATE)
+VALUES ('uuid:327A56F0-3299-4461-BC23-5CD513E95C55','Administrator','jUDDI.org','uddi-org:operators','http://www.uddi.org/taxonomies/UDDI_Taxonomy_tModels.htm#Operators',getDate())
+
+INSERT INTO ${prefix}TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:327A56F0-3299-4461-BC23-5CD513E95C55',0,'en','Taxonomy for categorizing the businessEntity of an operator of a registry.')
+
+INSERT INTO ${prefix}TMODEL_DOC_DESCR (TMODEL_KEY,TMODEL_DOC_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:327A56F0-3299-4461-BC23-5CD513E95C55',0,'en','This checked value set is used to identify UDDI operators.')
+
+INSERT INTO ${prefix}TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:327A56F0-3299-4461-BC23-5CD513E95C55',0,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','types','categorization')
+
+INSERT INTO ${prefix}TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:327A56F0-3299-4461-BC23-5CD513E95C55',1,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','types','checked')
+
+INSERT INTO ${prefix}TMODEL (TMODEL_KEY,AUTHORIZED_NAME,OPERATOR,NAME,OVERVIEW_URL,LAST_UPDATE)
+VALUES ('uuid:E59AE320-77A5-11D5-B898-0004AC49CC1E','Administrator','jUDDI.org','uddi-org:isReplacedBy','http://www.uddi.org/taxonomies/UDDI_Taxonomy_tModels.htm#IsReplacedBy',getDate())
+
+INSERT INTO ${prefix}TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:E59AE320-77A5-11D5-B898-0004AC49CC1E',0,'en','An identifier system used to point (using UDDI keys) to the tModel (or businessEntity) that is the logical replacement for the one in which isReplacedBy is used')
+
+INSERT INTO ${prefix}TMODEL_DOC_DESCR (TMODEL_KEY,TMODEL_DOC_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:E59AE320-77A5-11D5-B898-0004AC49CC1E',0,'en','This is a checked value set.')
+
+INSERT INTO ${prefix}TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:E59AE320-77A5-11D5-B898-0004AC49CC1E',0,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','types','identifier')
+
+INSERT INTO ${prefix}TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:E59AE320-77A5-11D5-B898-0004AC49CC1E',1,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','types','checked')
+
+INSERT INTO ${prefix}TMODEL (TMODEL_KEY,AUTHORIZED_NAME,OPERATOR,NAME,OVERVIEW_URL,LAST_UPDATE)
+VALUES ('uuid:8609C81E-EE1F-4D5A-B202-3EB13AD01823','Administrator','jUDDI.org','dnb-com:D-U-N-S','http://www.uddi.org/taxonomies/UDDI_Taxonomy_tModels.htm#D-U-N-S',getDate())
+
+INSERT INTO ${prefix}TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:8609C81E-EE1F-4D5A-B202-3EB13AD01823',0,'en','Dun&Bradstreet D-U-N-S� Number')
+
+INSERT INTO ${prefix}TMODEL_DOC_DESCR (TMODEL_KEY,TMODEL_DOC_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:8609C81E-EE1F-4D5A-B202-3EB13AD01823',0,'en','This tModel is used for the Dun&Bradstreet D-U-N-S� Number identifier.')
+
+INSERT INTO ${prefix}TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:8609C81E-EE1F-4D5A-B202-3EB13AD01823',0,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','types','identifier')
+
+INSERT INTO ${prefix}TMODEL (TMODEL_KEY,AUTHORIZED_NAME,OPERATOR,NAME,OVERVIEW_URL,LAST_UPDATE)
+VALUES ('uuid:B1B1BAF5-2329-43E6-AE13-BA8E97195039','Administrator','jUDDI.org','thomasregister-com:supplierID','http://www.uddi.org/taxonomies/UDDI_Taxonomy_tModels.htm#Thomas',getDate())
+
+INSERT INTO ${prefix}TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:B1B1BAF5-2329-43E6-AE13-BA8E97195039',0,'en','Thomas Registry Suppliers')
+
+INSERT INTO ${prefix}TMODEL_DOC_DESCR (TMODEL_KEY,TMODEL_DOC_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:B1B1BAF5-2329-43E6-AE13-BA8E97195039',0,'en','This tModel is used for the Thomas Register supplier identifier codes.')
+
+INSERT INTO ${prefix}TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:B1B1BAF5-2329-43E6-AE13-BA8E97195039',0,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','types','identifier')
+
+
+
+INSERT INTO ${prefix}TMODEL (TMODEL_KEY,AUTHORIZED_NAME,PUBLISHER_ID,OPERATOR,NAME,OVERVIEW_URL,LAST_UPDATE)
+VALUES ('uuid:6E090AFA-33E5-36EB-81B7-1CA18373F457','Administrator','admin','jUDDI.org','uddi-org:wsdl:types','http://www.oasis-open.org/committees/uddi-spec/doc/tn/uddi-spec-tc-tn-wsdl-v2.htm#wsdlTypes',getDate());
+
+INSERT INTO ${prefix}TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:6E090AFA-33E5-36EB-81B7-1CA18373F457',0,'en','WSDL Type Category System');
+
+INSERT INTO ${prefix}TMODEL_DOC_DESCR (TMODEL_KEY,TMODEL_DOC_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:6E090AFA-33E5-36EB-81B7-1CA18373F457',0,'en','The WSDL Entity Type tModel uses a number of UDDI entities to represent the various entities within a WSDL document.');
+
+INSERT INTO ${prefix}TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:6E090AFA-33E5-36EB-81B7-1CA18373F457',0,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','uddi-org:types','unchecked');
+
+INSERT INTO ${prefix}TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:6E090AFA-33E5-36EB-81B7-1CA18373F457',1,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','uddi-org:types','categorization');
+
+
+INSERT INTO ${prefix}TMODEL (TMODEL_KEY,AUTHORIZED_NAME,PUBLISHER_ID,OPERATOR,NAME,OVERVIEW_URL,LAST_UPDATE)
+VALUES ('uuid:D01987D1-AB2E-3013-9BE2-2A66EB99D824','Administrator','admin','jUDDI.org','uddi-org:xml:namespace','http://www.oasis-open.org/committees/uddi-spec/doc/tn/uddi-spec-tc-tn-wsdl-v2.htm#xmlNamespace',getDate());
+
+INSERT INTO ${prefix}TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:D01987D1-AB2E-3013-9BE2-2A66EB99D824',0,'en','A category system used to indicate namespaces');
+
+INSERT INTO ${prefix}TMODEL_DOC_DESCR (TMODEL_KEY,TMODEL_DOC_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:D01987D1-AB2E-3013-9BE2-2A66EB99D824',0,'en','A namespace provides necessary qualifying information about a technical concept or model. The XML Namespace tModel provides a mechanism to associate a namespace with a UDDI entity.');
+
+INSERT INTO ${prefix}TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:D01987D1-AB2E-3013-9BE2-2A66EB99D824',0,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','uddi-org:types','unchecked');
+
+INSERT INTO ${prefix}TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:D01987D1-AB2E-3013-9BE2-2A66EB99D824',1,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','uddi-org:types','categorization');
+
+
+INSERT INTO ${prefix}TMODEL (TMODEL_KEY,AUTHORIZED_NAME,PUBLISHER_ID,OPERATOR,NAME,OVERVIEW_URL,LAST_UPDATE)
+VALUES ('uuid:2EC65201-9109-3919-9BEC-C9DBEFCACCF6','Administrator','admin','jUDDI.org','uddi-org:xml:localName','http://www.oasis-open.org/committees/uddi-spec/doc/tn/uddi-spec-tc-tn-wsdl-v2.htm#xmlLocalName',getDate());
+
+INSERT INTO ${prefix}TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:2EC65201-9109-3919-9BEC-C9DBEFCACCF6',0,'en','A category system used to indicate XML local names');
+
+INSERT INTO ${prefix}TMODEL_DOC_DESCR (TMODEL_KEY,TMODEL_DOC_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:2EC65201-9109-3919-9BEC-C9DBEFCACCF6',0,'en','The XML Local Name tModel provides a mechanism to indicate the name attribute for the uddi:businessService.');
+
+INSERT INTO ${prefix}TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:2EC65201-9109-3919-9BEC-C9DBEFCACCF6',0,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','uddi-org:types','unchecked');
+
+INSERT INTO ${prefix}TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:2EC65201-9109-3919-9BEC-C9DBEFCACCF6',1,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','uddi-org:types','categorization');
+
+
+INSERT INTO ${prefix}TMODEL (TMODEL_KEY,AUTHORIZED_NAME,PUBLISHER_ID,OPERATOR,NAME,OVERVIEW_URL,LAST_UPDATE)
+VALUES ('uuid:082B0851-25D8-303C-B332-F24A6D53E38E','Administrator','admin','jUDDI.org','uddi-org:wsdl:portTypeReference','http://www.oasis-open.org/committees/uddi-spec/doc/tn/uddi-spec-tc-tn-wsdl-v2.htm#portTypeReference',getDate());
+
+INSERT INTO ${prefix}TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:082B0851-25D8-303C-B332-F24A6D53E38E',0,'en','A category system used to reference a wsdl:portType tModel');
+
+INSERT INTO ${prefix}TMODEL_DOC_DESCR (TMODEL_KEY,TMODEL_DOC_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:082B0851-25D8-303C-B332-F24A6D53E38E',0,'en','The WSDL portType Reference category system provides a mechanism to indicate that a UDDI entity has a relationship with a certain wsdl:portType tModel.');
+
+INSERT INTO ${prefix}TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:082B0851-25D8-303C-B332-F24A6D53E38E',0,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','uddi-org:types','checked');
+
+INSERT INTO ${prefix}TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:082B0851-25D8-303C-B332-F24A6D53E38E',1,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','uddi-org:types','categorization');
+
+
+INSERT INTO ${prefix}TMODEL (TMODEL_KEY,AUTHORIZED_NAME,PUBLISHER_ID,OPERATOR,NAME,OVERVIEW_URL,LAST_UPDATE)
+VALUES ('uuid:AA254698-93DE-3870-8DF3-A5C075D64A0E','Administrator','admin','jUDDI.org','uddi-org:protocol:soap','http://www.oasis-open.org/committees/uddi-spec/doc/tn/uddi-spec-tc-tn-wsdl-v2.htm#soap',getDate());
+
+INSERT INTO ${prefix}TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:AA254698-93DE-3870-8DF3-A5C075D64A0E',0,'en','A tModel that represents the SOAP 1.1 protocol');
+
+INSERT INTO ${prefix}TMODEL_DOC_DESCR (TMODEL_KEY,TMODEL_DOC_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:AA254698-93DE-3870-8DF3-A5C075D64A0E',0,'en','The SOAP Protocol tModel can be used to indicate that a Web service supports the SOAP 1.1 protocol.');
+
+INSERT INTO ${prefix}TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:AA254698-93DE-3870-8DF3-A5C075D64A0E',0,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','uddi-org:types','protocol');
+
+
+INSERT INTO ${prefix}TMODEL (TMODEL_KEY,AUTHORIZED_NAME,PUBLISHER_ID,OPERATOR,NAME,OVERVIEW_URL,LAST_UPDATE)
+VALUES ('uuid:6E10B91B-BABC-3442-B8FC-5A3C8FDE0794','Administrator','admin','jUDDI.org','uddi-org:protocol:http','http://www.oasis-open.org/committees/uddi-spec/doc/tn/uddi-spec-tc-tn-wsdl-v2.htm#http',getDate());
+
+INSERT INTO ${prefix}TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:6E10B91B-BABC-3442-B8FC-5A3C8FDE0794',0,'en','A tModel that represents the HTTP protocol');
+
+INSERT INTO ${prefix}TMODEL_DOC_DESCR (TMODEL_KEY,TMODEL_DOC_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:6E10B91B-BABC-3442-B8FC-5A3C8FDE0794',0,'en','The HTTP Protocol tModel can be used to indicate that a Web service supports the HTTP protocol.');
+
+INSERT INTO ${prefix}TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:6E10B91B-BABC-3442-B8FC-5A3C8FDE0794',0,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','uddi-org:types','protocol');
+
+
+INSERT INTO ${prefix}TMODEL (TMODEL_KEY,AUTHORIZED_NAME,PUBLISHER_ID,OPERATOR,NAME,OVERVIEW_URL,LAST_UPDATE)
+VALUES ('uuid:4DC74177-7806-34D9-AECD-33C57DC3A865','Administrator','admin','jUDDI.org','uddi-org:wsdl:categorization:protocol','http://www.oasis-open.org/committees/uddi-spec/doc/tn/uddi-spec-tc-tn-wsdl-v2.htm#protocol',getDate());
+
+INSERT INTO ${prefix}TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:4DC74177-7806-34D9-AECD-33C57DC3A865',0,'en','Category system used to describe the protocol supported by a wsdl:binding.');
+
+INSERT INTO ${prefix}TMODEL_DOC_DESCR (TMODEL_KEY,TMODEL_DOC_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:4DC74177-7806-34D9-AECD-33C57DC3A865',0,'en','The Protocol Categorization tModel provides a mechanism to capture this protocol information in the UDDI binding tModel.');
+
+INSERT INTO ${prefix}TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:4DC74177-7806-34D9-AECD-33C57DC3A865',0,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','uddi-org:types','categorization');
+
+INSERT INTO ${prefix}TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:4DC74177-7806-34D9-AECD-33C57DC3A865',1,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','uddi-org:types','checked');
+
+
+INSERT INTO ${prefix}TMODEL (TMODEL_KEY,AUTHORIZED_NAME,PUBLISHER_ID,OPERATOR,NAME,OVERVIEW_URL,LAST_UPDATE)
+VALUES ('uuid:E5C43936-86E4-37BF-8196-1D04B35C0099','Administrator','admin','jUDDI.org','uddi-org:wsdl:categorization:transport','http://www.oasis-open.org/committees/uddi-spec/doc/tn/uddi-spec-tc-tn-wsdl-v2.htm#transport',getDate());
+
+INSERT INTO ${prefix}TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:E5C43936-86E4-37BF-8196-1D04B35C0099',0,'en','Category system used to describe the transport supported by a wsdl:binding.');
+
+INSERT INTO ${prefix}TMODEL_DOC_DESCR (TMODEL_KEY,TMODEL_DOC_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:E5C43936-86E4-37BF-8196-1D04B35C0099',0,'en','The Transport Categorization tModel provides a mechanism to capture transport information in the UDDI binding tModel which allows a user to search for bindings that implement a specific transport protocol.');
+
+INSERT INTO ${prefix}TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:E5C43936-86E4-37BF-8196-1D04B35C0099',0,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','uddi-org:types','categorization');
+
+INSERT INTO ${prefix}TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:E5C43936-86E4-37BF-8196-1D04B35C0099',1,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','uddi-org:types','checked');
+
+
+INSERT INTO ${prefix}TMODEL (TMODEL_KEY,AUTHORIZED_NAME,PUBLISHER_ID,OPERATOR,NAME,OVERVIEW_URL,LAST_UPDATE)
+VALUES ('uuid:AD61DE98-4DB8-31B2-A299-A2373DC97212','Administrator','admin','jUDDI.org','uddi-org:wsdl:address','http://www.oasis-open.org/committees/uddi-spec/doc/tn/uddi-spec-tc-tn-wsdl-v2.htm#Address',getDate());
+
+INSERT INTO ${prefix}TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:AD61DE98-4DB8-31B2-A299-A2373DC97212',0,'en','A tModel used to indicate the WSDL address option.');
+
+INSERT INTO ${prefix}TMODEL_DOC_DESCR (TMODEL_KEY,TMODEL_DOC_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:AD61DE98-4DB8-31B2-A299-A2373DC97212',0,'en','The WSDL Address tModel provides A mechanism to indicate that the endpoint address should be obtained from a WSDL document.');
+
+-- ** http transport **
+INSERT INTO ${prefix}TMODEL (TMODEL_KEY,AUTHORIZED_NAME,PUBLISHER_ID,OPERATOR,NAME,OVERVIEW_URL,LAST_UPDATE)
+VALUES ('uuid:68DE9E80-AD09-469D-8A37-088422BFBC36','Administrator','admin','jUDDI.org','uddi-org:http','http://www.uddi.org/taxonomies/UDDI_CoreOther_tModels.htm#overHTTP',getDate());
+INSERT INTO ${prefix}TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:68DE9E80-AD09-469D-8A37-088422BFBC36',0,'en','An HTTP or web browser-based web service');
+INSERT INTO ${prefix}TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:68DE9E80-AD09-469D-8A37-088422BFBC36',0,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','tModelType','transport');
+
+-- ** uddi inquiry **
+INSERT INTO ${prefix}TMODEL (TMODEL_KEY,AUTHORIZED_NAME,PUBLISHER_ID,OPERATOR,NAME,OVERVIEW_URL,LAST_UPDATE)
+VALUES ('uuid:AC104DCC-D623-452F-88A7-F8ACD94D9B2B','Administrator','admin','jUDDI.org','uddi-org:inquiry_v2','http://www.uddi.org/wsdl/inquire_v2.wsdl',getDate());
+INSERT INTO ${prefix}TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:AC104DCC-D623-452F-88A7-F8ACD94D9B2B',0,'en','UDDI Inquiry API Version 2 - Core Specification');
+INSERT INTO ${prefix}TMODEL_DOC_DESCR (TMODEL_KEY,TMODEL_DOC_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:AC104DCC-D623-452F-88A7-F8ACD94D9B2B',0,'en','This tModel defines the inquiry API calls for interacting with a V2 UDDI node.');
+INSERT INTO ${prefix}TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:AC104DCC-D623-452F-88A7-F8ACD94D9B2B',0,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','types','specification');
+INSERT INTO ${prefix}TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:AC104DCC-D623-452F-88A7-F8ACD94D9B2B',1,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','types','xmlSpec');
+INSERT INTO ${prefix}TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:AC104DCC-D623-452F-88A7-F8ACD94D9B2B',2,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','types','soapSpec');
+INSERT INTO ${prefix}TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:AC104DCC-D623-452F-88A7-F8ACD94D9B2B',3,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','types','wsdlSpec');
+
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/install/jUDDI-registry/sql/mssql/import.sql
===================================================================
--- labs/jbossesb/trunk/product/install/jUDDI-registry/sql/mssql/import.sql 2009-01-21 09:35:03 UTC (rev 24846)
+++ labs/jbossesb/workspace/mlittle/legstar/product/install/jUDDI-registry/sql/mssql/import.sql 2009-01-21 15:38:08 UTC (rev 24850)
@@ -1,5 +0,0 @@
-INSERT INTO ${prefix}PUBLISHER (PUBLISHER_ID,PUBLISHER_NAME,EMAIL_ADDRESS,IS_ENABLED,IS_ADMIN,MAX_SERVICES_PER_BUSINESS,MAX_BINDINGS_PER_SERVICE,MAX_BUSINESSES,MAX_TMODELS)
-VALUES ('jbossesb','JBoss ESB User','uddi-admin at example.com','true','true',25,20,10,100);
-
-INSERT INTO ${prefix}TMODEL (TMODEL_KEY,AUTHORIZED_NAME,PUBLISHER_ID,OPERATOR,NAME,OVERVIEW_URL,LAST_UPDATE)
-VALUES ('uuid:C7536010-F786-11DB-A010-E6245C4E79A1','JBoss ESB User','jbossesb','jUDDI.org','org.jboss.soa.esb.:category',NULL,getDate());
Copied: labs/jbossesb/workspace/mlittle/legstar/product/install/jUDDI-registry/sql/mssql/import.sql (from rev 24846, labs/jbossesb/trunk/product/install/jUDDI-registry/sql/mssql/import.sql)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/install/jUDDI-registry/sql/mssql/import.sql (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/install/jUDDI-registry/sql/mssql/import.sql 2009-01-21 15:38:08 UTC (rev 24850)
@@ -0,0 +1,5 @@
+INSERT INTO ${prefix}PUBLISHER (PUBLISHER_ID,PUBLISHER_NAME,EMAIL_ADDRESS,IS_ENABLED,IS_ADMIN,MAX_SERVICES_PER_BUSINESS,MAX_BINDINGS_PER_SERVICE,MAX_BUSINESSES,MAX_TMODELS)
+VALUES ('jbossesb','JBoss ESB User','uddi-admin at example.com','true','true',25,20,10,100);
+
+INSERT INTO ${prefix}TMODEL (TMODEL_KEY,AUTHORIZED_NAME,PUBLISHER_ID,OPERATOR,NAME,OVERVIEW_URL,LAST_UPDATE)
+VALUES ('uuid:C7536010-F786-11DB-A010-E6245C4E79A1','JBoss ESB User','jbossesb','jUDDI.org','org.jboss.soa.esb.:category',NULL,getDate());
Modified: labs/jbossesb/workspace/mlittle/legstar/product/install/standalone/jbossesb-server-base.zip
===================================================================
(Binary files differ)
Modified: labs/jbossesb/workspace/mlittle/legstar/product/ivy.xml
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/ivy.xml 2009-01-21 14:47:17 UTC (rev 24849)
+++ labs/jbossesb/workspace/mlittle/legstar/product/ivy.xml 2009-01-21 15:38:08 UTC (rev 24850)
@@ -16,17 +16,18 @@
<dependency org="com.h2database" name="h2" rev="1.0.68"/>
<dependency org="hibernate" name="hibernate3" rev="3.2.4.SP1"/>
<dependency org="jboss" name="jboss-cache" rev="1.2.4.SP2"/>
+ <dependency org="jgroups" name="jgroups" rev="2.4.1"/>
<dependency org="javassist" name="javassist" rev="3.6.0.GA"/>
<!-- Only declaring a direct dependency on jaxr-api because there's an issue with
- the scout-1.0rc1 pom in the repo. It declares a dep on an unavailable (easily)
+ the scout-1.0rc2 pom in the repo. It declares a dep on an unavailable (easily)
SNAPSHOT version. -->
- <dependency org="org.apache.ws.scout" name="jaxr-api" rev="1.0rc1">
+ <dependency org="org.apache.ws.scout" name="jaxr-api" rev="1.0rc2">
<exclude org="axis" module="axis"/>
<exclude org="geronimo-spec" module="geronimo-spec-activation"/>
</dependency>
- <dependency org="org.apache.ws.scout" name="scout" rev="1.0rc1">
+ <dependency org="org.apache.ws.scout" name="scout" rev="1.0rc2">
<exclude org="axis" module="axis"/>
<exclude org="geronimo-spec" module="geronimo-spec-activation"/>
</dependency>
@@ -37,7 +38,6 @@
<dependency org="jboss" name="jboss" rev="4.2.2.GA"/>
<dependency org="jboss" name="jbossall-client" rev="4.2.2.GA"/>
<!-- dependency org="jboss" name="jbossts.jbossts-common" rev="4.2.2.GA"/ -->
- <!-- dependency org="jgroups" name="jgroups" rev="2.4.1-SP3"/ -->
<dependency org="com.jcraft" name="jsch" rev="0.1.38"/>
<dependency org="org.apache.juddi" name="juddi" rev="2.0rc5">
<exclude org="axis" module="axis"/>
@@ -60,5 +60,17 @@
<dependency org="com.thoughtworks.xstream" name="xstream" rev="1.2.2"/>
<dependency org="apache-bsf" name="bsf" rev="2.3.0"/>
<dependency org="beanshell" name="bsh" rev="1.3.0"/>
+
+ <!-- Smooks dependencies -->
+ <dependency org="milyn" name="milyn-smooks-core" rev="1.0.1"/>
+ <dependency org="milyn" name="milyn-commons" rev="1.0"/>
+ <dependency org="milyn" name="milyn-smooks-javabean" rev="1.0.1"/>
+
+ <dependency org="javax.jcr" name="jcr" rev="1.0"/>
+
+ <!-- soap dependencies -->
+ <dependency org="sun-jaxws" name="jaxws-tools" rev="2.1.1"/>
+ <dependency org="sun-jaxws" name="jaxws-rt" rev="2.1.1"/>
+ <dependency org="sun-jaxb" name="jaxb-xjc" rev="2.1.4"/>
</dependencies>
</ivy-module>
Copied: labs/jbossesb/workspace/mlittle/legstar/product/lib/ext/endorsed (from rev 24846, labs/jbossesb/trunk/product/lib/ext/endorsed)
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/lib/ext/endorsed/jboss-saaj.jar
===================================================================
(Binary files differ)
Copied: labs/jbossesb/workspace/mlittle/legstar/product/lib/ext/endorsed/jboss-saaj.jar (from rev 24846, labs/jbossesb/trunk/product/lib/ext/endorsed/jboss-saaj.jar)
===================================================================
(Binary files differ)
Copied: labs/jbossesb/workspace/mlittle/legstar/product/lib/ext/jboss-ejb3x.jar (from rev 24846, labs/jbossesb/trunk/product/lib/ext/jboss-ejb3x.jar)
===================================================================
(Binary files differ)
Copied: labs/jbossesb/workspace/mlittle/legstar/product/lib/ext/jboss-jaxws.jar (from rev 24846, labs/jbossesb/trunk/product/lib/ext/jboss-jaxws.jar)
===================================================================
(Binary files differ)
Copied: labs/jbossesb/workspace/mlittle/legstar/product/lib/ext/jboss-saaj.jar (from rev 24846, labs/jbossesb/trunk/product/lib/ext/jboss-saaj.jar)
===================================================================
(Binary files differ)
Copied: labs/jbossesb/workspace/mlittle/legstar/product/lib/ext/jboss-security-spi.jar (from rev 24846, labs/jbossesb/trunk/product/lib/ext/jboss-security-spi.jar)
===================================================================
(Binary files differ)
Copied: labs/jbossesb/workspace/mlittle/legstar/product/lib/ext/jbosssx.jar (from rev 24846, labs/jbossesb/trunk/product/lib/ext/jbosssx.jar)
===================================================================
(Binary files differ)
Copied: labs/jbossesb/workspace/mlittle/legstar/product/lib/ext/jbossws-common.jar (from rev 24846, labs/jbossesb/trunk/product/lib/ext/jbossws-common.jar)
===================================================================
(Binary files differ)
Copied: labs/jbossesb/workspace/mlittle/legstar/product/lib/ext/jbossws-core.jar (from rev 24846, labs/jbossesb/trunk/product/lib/ext/jbossws-core.jar)
===================================================================
(Binary files differ)
Copied: labs/jbossesb/workspace/mlittle/legstar/product/lib/ext/jbossws-spi.jar (from rev 24846, labs/jbossesb/trunk/product/lib/ext/jbossws-spi.jar)
===================================================================
(Binary files differ)
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/lib/ext/jgroups-all.jar
===================================================================
(Binary files differ)
Modified: labs/jbossesb/workspace/mlittle/legstar/product/lib/ext/jms/oracleaq/readme.txt
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/lib/ext/jms/oracleaq/readme.txt 2009-01-21 14:47:17 UTC (rev 24849)
+++ labs/jbossesb/workspace/mlittle/legstar/product/lib/ext/jms/oracleaq/readme.txt 2009-01-21 15:38:08 UTC (rev 24850)
@@ -8,9 +8,10 @@
From lib/ext obtain
asm.jar
-cglib-2.1_2jboss.jar
mockejb.jar
+From maven obtain cglib-2.1_2jboss.jar (maven)
+
In plugins/org.jboss.soa.esb.oracle.aq run the package target and obtain
org.jboss.soa.esb.oracle.aq.<version>.jar.
@@ -35,10 +36,7 @@
2. Oracle AQ does not have a JNDI provider and it is common to register
Queues in an LDAP. Here we chose to register the Queues to MockContext
which is why you need the mockejb.jar, as well as the asm and cglib jars
- that it depends on. The org.jboss.soa.esb.oracle.aq-4.2.MR2.jar plugin
+ that it depends on. The org.jboss.soa.esb.oracle.aq.<version>.jar plugin
does the actual work of registering. Registering to JNP proved not
possible because of code in the Oracle API to support option 1, the LDAP
registration.
-
-
-
Copied: labs/jbossesb/workspace/mlittle/legstar/product/lib/ext/servlet-api.jar (from rev 24846, labs/jbossesb/trunk/product/lib/ext/servlet-api.jar)
===================================================================
(Binary files differ)
Copied: labs/jbossesb/workspace/mlittle/legstar/product/lib/ext/wsdl4j-1.6.2.jar (from rev 24846, labs/jbossesb/trunk/product/lib/ext/wsdl4j-1.6.2.jar)
===================================================================
(Binary files differ)
Copied: labs/jbossesb/workspace/mlittle/legstar/product/plugins/org.jboss.soa.esb.oracle.aq/org.jboss.soa.esb.oracle.aq-4.3.jar (from rev 24846, labs/jbossesb/trunk/product/plugins/org.jboss.soa.esb.oracle.aq/org.jboss.soa.esb.oracle.aq-4.3.jar)
===================================================================
(Binary files differ)
Modified: labs/jbossesb/workspace/mlittle/legstar/product/plugins/org.jboss.soa.esb.oracle.aq/pom.xml
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/plugins/org.jboss.soa.esb.oracle.aq/pom.xml 2009-01-21 14:47:17 UTC (rev 24849)
+++ labs/jbossesb/workspace/mlittle/legstar/product/plugins/org.jboss.soa.esb.oracle.aq/pom.xml 2009-01-21 15:38:08 UTC (rev 24850)
@@ -2,7 +2,7 @@
<modelVersion>4.0.0</modelVersion>
<groupId>org.jboss.soa.esb</groupId>
<artifactId>org.jboss.soa.esb.oracle.aq</artifactId>
- <version>4.2</version>
+ <version>4.3</version>
<description>Plugin to add JNDI capability to Oracle AQ</description>
<build>
<defaultGoal>package</defaultGoal>
@@ -69,6 +69,11 @@
<version>1.2</version>
<scope>provided</scope>
</dependency>
+ <dependency>
+ <groupId>jboss</groupId>
+ <artifactId>jbossall-client</artifactId>
+ <version>4.2.2</version>
+ </dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
@@ -77,7 +82,7 @@
<dependency>
<groupId>mockejb</groupId>
<artifactId>mockejb</artifactId>
- <version>0.5</version>
+ <version>0.6-beta2</version>
</dependency>
<dependency>
<groupId>cglib</groupId>
@@ -85,4 +90,4 @@
<version>2.1_3</version>
</dependency>
</dependencies>
-</project>
\ No newline at end of file
+</project>
Modified: labs/jbossesb/workspace/mlittle/legstar/product/plugins/org.jboss.soa.esb.oracle.aq/src/main/java/org/jboss/soa/esb/oracle/aq/AQInitialContextFactory.java
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/plugins/org.jboss.soa.esb.oracle.aq/src/main/java/org/jboss/soa/esb/oracle/aq/AQInitialContextFactory.java 2009-01-21 14:47:17 UTC (rev 24849)
+++ labs/jbossesb/workspace/mlittle/legstar/product/plugins/org.jboss.soa.esb.oracle.aq/src/main/java/org/jboss/soa/esb/oracle/aq/AQInitialContextFactory.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -1,24 +1,24 @@
/*
* JBoss, Home of Professional Open Source
- * Copyright 2006, JBoss Inc., and others contributors as indicated
- * by the @authors tag. All rights reserved.
+ * Copyright 2006, JBoss Inc., and others contributors as indicated
+ * by the @authors tag. All rights reserved.
* See the copyright.txt in the distribution for a
- * full listing of individual contributors.
+ * full listing of individual contributors.
* This copyrighted material is made available to anyone wishing to use,
* modify, copy, or redistribute it subject to the terms and conditions
* of the GNU Lesser General Public License, v. 2.1.
- * This program is distributed in the hope that it will be useful, but WITHOUT A
- * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+ * This program is distributed in the hope that it will be useful, but WITHOUT A
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
* PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
* You should have received a copy of the GNU Lesser General Public License,
* v.2.1 along with this distribution; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
* MA 02110-1301, USA.
- *
+ *
* (C) 2005-2007,
* @author David Fry <dfry at redhat.com>
* @author Kurt Stam <kurt.stam at jboss.com>
- *
+ *
*/
package org.jboss.soa.esb.oracle.aq;
@@ -68,7 +68,7 @@
public static final String CONNECTION_FACTORY = "ConnectionFactory";
/** The Oracle XA Connection factory name */
public static final String XA_CONNECTION_FACTORY = "XAConnectionFactory";
-
+
public static final String DB_DATASOURCE = "java.naming.oracle.aq.datasource";
public static final String DB_USER = "java.naming.oracle.aq.user";
public static final String DB_PASSWD = "java.naming.oracle.aq.password";
@@ -77,7 +77,8 @@
public static final String DB_PORT = "java.naming.oracle.aq.port";
public static final String DB_SCHEMA = "java.naming.oracle.aq.schema";
public static final String DB_DRIVER = "java.naming.oracle.aq.driver";
-
+ public static final String DB_CONNECTION_URL = "java.naming.oracle.aq.url";
+
protected static Log log = LogFactory
.getLog(AQInitialContextFactory.class);
@@ -99,7 +100,9 @@
protected int aqServerPortNumber = 1521;
+ protected String aqConnectionUrl;
+
private void addAQDestinationContext(Context context) throws NamingException {
// lookup and cache the queues
@@ -114,11 +117,16 @@
DataSource ds = null;
XADataSource xaDs = null;
try {
- ds = AQUtil.getSQLDataSource(
- aqServerName, aqServerDBInst, aqServerPortNumber, aqDBDriver, dbuser,
- dbpass);
- xaDs = AQUtil.getXASQLDataSource(aqServerName, aqServerDBInst, aqServerPortNumber, aqDBDriver, dbuser,
- dbpass);
+ if (aqConnectionUrl != null)
+ {
+ ds = AQUtil.getSQLDataSource(aqConnectionUrl, dbuser, dbpass);
+ xaDs = AQUtil.getXASQLDataSource(aqConnectionUrl, dbuser, dbpass);
+ }
+ else
+ {
+ ds = AQUtil.getSQLDataSource( aqServerName, aqServerDBInst, aqServerPortNumber, aqDBDriver, dbuser, dbpass);
+ xaDs = AQUtil.getXASQLDataSource(aqServerName, aqServerDBInst, aqServerPortNumber, aqDBDriver, dbuser, dbpass);
+ }
} catch (SQLException e) {
throw new RuntimeException(e.getMessage());
}
@@ -141,11 +149,11 @@
// create the queue XA connection factory
XAQueueConnectionFactory xaQueueConnectionFactory = AQjmsFactory.getXAQueueConnectionFactory(xaDs);
context.rebind(XA_QUEUE_CONNECTION_FACTORY, xaQueueConnectionFactory);
-
+
// create the topic XA connection factory
XATopicConnectionFactory xaTopicConnectionFactory = AQjmsFactory.getXATopicConnectionFactory(xaDs);
context.rebind(XA_TOPIC_CONNECTION_FACTORY, xaTopicConnectionFactory);
-
+
// create the topic connection factory
topicFactory = AQjmsFactory.getTopicConnectionFactory(ds);
context.rebind(TOPIC_CONNECTION_FACTORY, topicFactory);
@@ -201,18 +209,28 @@
}
public void init(Hashtable<?, ?> env) {
-
dbuser = (String) env.get(AQInitialContextFactory.DB_USER);
dbpass = (String) env.get(AQInitialContextFactory.DB_PASSWD);
- aqServerName = (String) env.get(AQInitialContextFactory.DB_SERVER);
- aqServerDBInst = (String) env.get(AQInitialContextFactory.DB_INSTANCE);
- aqServerPort = (String) env.get(AQInitialContextFactory.DB_PORT);
- aqDBDriver = (String) env.get(AQInitialContextFactory.DB_DRIVER);
- aqSchemaName = (String) env.get(AQInitialContextFactory.DB_SCHEMA);
- try {
- aqServerPortNumber = Integer.parseInt(aqServerPort);
- } catch (Exception e) {
- log.error("caught exception converting port", e);
+ aqConnectionUrl = (String) env.get(AQInitialContextFactory.DB_CONNECTION_URL);
+
+ if (aqConnectionUrl == null )
+ {
+ aqServerName = (String) env.get(AQInitialContextFactory.DB_SERVER);
+ aqServerDBInst = (String) env.get(AQInitialContextFactory.DB_INSTANCE);
+ aqDBDriver = (String) env.get(AQInitialContextFactory.DB_DRIVER);
+ aqSchemaName = (String) env.get(AQInitialContextFactory.DB_SCHEMA);
+ aqServerPort = (String) env.get(AQInitialContextFactory.DB_PORT);
+ if (aqServerPort != null)
+ {
+ try
+ {
+ aqServerPortNumber = Integer.parseInt(aqServerPort);
+ }
+ catch (NumberFormatException e)
+ {
+ log.error("caught exception converting port", e);
+ }
+ }
}
}
@@ -260,4 +278,8 @@
this.dbuser = dbuser;
}
+ public void setAqConnectionUrl(String url) {
+ aqConnectionUrl = url;
+ }
+
}
\ No newline at end of file
Modified: labs/jbossesb/workspace/mlittle/legstar/product/plugins/org.jboss.soa.esb.oracle.aq/src/main/java/org/jboss/soa/esb/oracle/aq/AQUtil.java
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/plugins/org.jboss.soa.esb.oracle.aq/src/main/java/org/jboss/soa/esb/oracle/aq/AQUtil.java 2009-01-21 14:47:17 UTC (rev 24849)
+++ labs/jbossesb/workspace/mlittle/legstar/product/plugins/org.jboss.soa.esb.oracle.aq/src/main/java/org/jboss/soa/esb/oracle/aq/AQUtil.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -1,24 +1,24 @@
/*
* JBoss, Home of Professional Open Source
- * Copyright 2006, JBoss Inc., and others contributors as indicated
- * by the @authors tag. All rights reserved.
+ * Copyright 2006, JBoss Inc., and others contributors as indicated
+ * by the @authors tag. All rights reserved.
* See the copyright.txt in the distribution for a
- * full listing of individual contributors.
+ * full listing of individual contributors.
* This copyrighted material is made available to anyone wishing to use,
* modify, copy, or redistribute it subject to the terms and conditions
* of the GNU Lesser General Public License, v. 2.1.
- * This program is distributed in the hope that it will be useful, but WITHOUT A
- * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+ * This program is distributed in the hope that it will be useful, but WITHOUT A
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
* PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
* You should have received a copy of the GNU Lesser General Public License,
* v.2.1 along with this distribution; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
* MA 02110-1301, USA.
- *
+ *
* (C) 2005-2007,
* @author David Fry <dfry at redhat.com>
* @author Kurt Stam <kurt.stam at jboss.com>
- *
+ *
*/
package org.jboss.soa.esb.oracle.aq;
@@ -54,8 +54,8 @@
private static final String GET_QUEUES_PSQL = "SELECT allq.OWNER as owner, allq.NAME as name, allq.QUEUE_TYPE as queue_type, allqt.RECIPIENTS as recipients" +
" from SYS.ALL_QUEUES allq, SYS.ALL_QUEUE_TABLES allqt " +
" where allq.QUEUE_TABLE = allqt.QUEUE_TABLE and upper(allq.OWNER) in (?) order by name asc";
-
+
public static DataSource getSQLDataSource(String serverName,
String dbInstance, int portNo, String driverName)
throws SQLException {
@@ -98,6 +98,15 @@
return ds;
}
+ public static DataSource getSQLDataSource(final String url, final String username, final String password)throws SQLException {
+
+ OracleDataSource ds = new OracleDataSource();
+ ds.setURL(url);
+ ds.setUser(username);
+ ds.setPassword(password);
+ return ds;
+ }
+
public static XADataSource getXASQLDataSource(String serverName,
String dbInstance, int portNo, String driverName,
String username, String password)
@@ -114,6 +123,15 @@
return ds;
}
+ public static XADataSource getXASQLDataSource(final String url, final String username, final String password) throws SQLException {
+
+ OracleXADataSource ds = new OracleXADataSource();
+ ds.setURL(url);
+ ds.setUser(username);
+ ds.setPassword(password);
+ return ds;
+ }
+
public static List<DestinationInfo> getDestinationInfoList(DataSource ds, String commaSeperatedQueueOwnerList) {
ArrayList<DestinationInfo> list = new ArrayList<DestinationInfo>();
Connection connection = null;
Copied: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/aop/java/org/jboss/internal/soa/esb/services/registry/aspect/JUDDIAspect.java (from rev 24846, labs/jbossesb/trunk/product/rosetta/aop/java/org/jboss/internal/soa/esb/services/registry/aspect/JUDDIAspect.java)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/aop/java/org/jboss/internal/soa/esb/services/registry/aspect/JUDDIAspect.java (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/aop/java/org/jboss/internal/soa/esb/services/registry/aspect/JUDDIAspect.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -0,0 +1,57 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.internal.soa.esb.services.registry.aspect;
+
+import org.jboss.aop.joinpoint.MethodInvocation;
+import org.w3c.dom.Element;
+import org.w3c.dom.Node;
+import org.w3c.dom.NodeList;
+
+/**
+ * Aspect used to support CDATA sections from within jUDDI.
+ *
+ * @author <a href='mailto:Kevin.Conner at jboss.com'>Kevin Conner</a>
+ */
+public class JUDDIAspect
+{
+ public Object getText(final MethodInvocation invocation)
+ throws Throwable
+ {
+ final Object[] args = invocation.getArguments() ;
+ final Element element = (Element)args[0] ;
+ final StringBuffer sb = new StringBuffer();
+
+ final NodeList nodeList = element.getChildNodes() ;
+ final int numNodes = nodeList.getLength() ;
+ for(int count = 0 ; count < numNodes ; count++)
+ {
+ final Node node = nodeList.item(count) ;
+ final short type = node.getNodeType() ;
+ if ((type == Element.TEXT_NODE) || (type == Element.CDATA_SECTION_NODE))
+ {
+ sb.append(node.getNodeValue()) ;
+ }
+ }
+
+ return sb.toString().trim();
+ }
+}
Modified: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/aop/resources/META-INF/jboss-aop.xml
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/aop/resources/META-INF/jboss-aop.xml 2009-01-21 14:47:17 UTC (rev 24849)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/aop/resources/META-INF/jboss-aop.xml 2009-01-21 15:38:08 UTC (rev 24850)
@@ -5,9 +5,14 @@
<aop>
<aspect class="org.jboss.internal.soa.esb.services.registry.aspect.ScoutAspect" scope="PER_VM"/>
+ <aspect class="org.jboss.internal.soa.esb.services.registry.aspect.JUDDIAspect" scope="PER_VM"/>
<bind pointcut="withincode(* org.apache.ws.scout.registry.BusinessQueryManagerImpl->findServiceBindings(..)) AND call(* org.apache.ws.scout.registry.BusinessQueryManagerImpl->getRegistryObject(..))">
<advice name="getRegistryObject" aspect="org.jboss.internal.soa.esb.services.registry.aspect.ScoutAspect"/>
</bind>
+
+ <bind pointcut="execution(* org.apache.juddi.util.xml.XMLUtils->getText(..))">
+ <advice name="getText" aspect="org.jboss.internal.soa.esb.services.registry.aspect.JUDDIAspect"/>
+ </bind>
</aop>
Modified: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/build.xml
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/build.xml 2009-01-21 14:47:17 UTC (rev 24849)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/build.xml 2009-01-21 15:38:08 UTC (rev 24850)
@@ -5,10 +5,15 @@
<property name="org.jboss.esb.rosetta.distrib.dir" location="${org.jboss.esb.internal.dest}/jbossesb"/>
<property name="org.jboss.esb.rosetta.classes.dir" location="${org.jboss.esb.internal.dest}/classes/rosetta"/>
<property name="org.jboss.esb.rosetta.aop.classes.dir" location="${org.jboss.esb.rosetta.classes.dir}-aop"/>
- <property name="org.jboss.esb.rosetta.aopc.classes.dir" location="${org.jboss.esb.rosetta.classes.dir}-aopc"/>
+ <property name="org.jboss.esb.rosetta.aopc.scout.classes.dir" location="${org.jboss.esb.rosetta.classes.dir}-scout-aopc"/>
+ <property name="org.jboss.esb.rosetta.aopc.juddi.classes.dir" location="${org.jboss.esb.rosetta.classes.dir}-juddi-aopc"/>
<property name="org.jboss.esb.rosetta.src.dir" location="src"/>
<property name="org.jboss.esb.root.dir" location="../"/>
<property name="gendir" location="${org.jboss.esb.internal.dest}/schema-model" />
+ <property name="schema101.src.dir" location="${gendir}/src" />
+ <property name="schema101.classes.dir" location="${gendir}/classes" />
+ <property name="schema110.src.dir" location="${gendir}/src110" />
+ <property name="schema110.classes.dir" location="${gendir}/classes110" />
<property environment="env"/>
<property name="org.jboss.esb.lib.dir" location="${org.jboss.esb.internal.dest}/lib"/>
@@ -20,7 +25,8 @@
<fileset dir="${org.jboss.esb.lib.dir}" includes="*.jar"/>
<fileset dir="../../testlib" includes="emma*.jar"/>
<fileset dir="${org.jboss.esb.ext.lib.dir}/standalone" includes="*.jar"/>
- <pathelement location="${gendir}/classes"/>
+ <pathelement location="${schema101.classes.dir}"/>
+ <pathelement location="${schema110.classes.dir}"/>
</path>
<target name="org.jboss.esb.rosetta.init">
@@ -91,6 +97,7 @@
>
<fileset dir="${org.jboss.esb.rosetta.src.dir}" includes="**/*.groovy"/>
<fileset dir="${org.jboss.esb.rosetta.src.dir}" includes="**/*.properties"/>
+ <fileset dir="${org.jboss.esb.rosetta.src.dir}" includes="org/jboss/soa/esb/services/security/auth/ws/smooks-ws-security.xml"/>
</jar>
<jar destfile="${org.jboss.esb.rosetta.distrib.dir}/lib/test-util.jar" manifest="${org.jboss.esb.rosetta.classes.dir}/MANIFEST.MF">
@@ -141,21 +148,37 @@
<delete dir="${gendir}" /><mkdir dir="${gendir}" />
<xmlbean
- classgendir="${gendir}/classes"
+ classgendir="${schema101.classes.dir}"
javasource="1.5"
debug="${org.jboss.esb.debug}"
- srcgendir="${gendir}/src"
+ srcgendir="${schema101.src.dir}"
destfile="${org.jboss.esb.rosetta.distrib.dir}/lib/jbossesb-config-model-1.0.1.jar"
classpathref="xbeans-classpath">
<fileset dir="${org.jboss.esb.root.dir}/etc/schemas/xml/" includes="jbossesb-1.0.1.xsd,jbossesb-1.0.1.xsdconfig"/>
</xmlbean>
<!-- now add the xsd to it -->
<jar destfile="${org.jboss.esb.rosetta.distrib.dir}/lib/jbossesb-config-model-1.0.1.jar" update="true" manifest="${org.jboss.esb.rosetta.classes.dir}/MANIFEST.MF"
- basedir="${org.jboss.esb.root.dir}/etc/schemas/xml/"
- includes="jbossesb-1.0.1.xsd">
- <fileset dir="${org.jboss.esb.rosetta.classes.dir}"
- includes="VERSION org/jboss/soa/**/Version.class"/>
- </jar>
+ basedir="${org.jboss.esb.root.dir}/etc/schemas/xml/" includes="jbossesb-1.0.1.xsd">
+ <fileset dir="${org.jboss.esb.rosetta.classes.dir}"
+ includes="VERSION org/jboss/soa/**/Version.class"/>
+ </jar>
+
+ <!-- now handle 1.1.0 -->
+ <xmlbean
+ classgendir="${schema110.classes.dir}"
+ javasource="1.5"
+ debug="${org.jboss.esb.debug}"
+ srcgendir="${schema110.src.dir}"
+ destfile="${org.jboss.esb.rosetta.distrib.dir}/lib/jbossesb-config-model-1.1.0.jar"
+ classpathref="xbeans-classpath">
+ <fileset dir="${org.jboss.esb.root.dir}/etc/schemas/xml/" includes="jbossesb-1.1.0.xsd,jbossesb-1.1.0.xsdconfig"/>
+ </xmlbean>
+ <!-- now add the xsd to it -->
+ <jar destfile="${org.jboss.esb.rosetta.distrib.dir}/lib/jbossesb-config-model-1.1.0.jar" update="true" manifest="${org.jboss.esb.rosetta.classes.dir}/MANIFEST.MF"
+ basedir="${org.jboss.esb.root.dir}/etc/schemas/xml/" includes="jbossesb-1.1.0.xsd">
+ <fileset dir="${org.jboss.esb.rosetta.classes.dir}"
+ includes="VERSION org/jboss/soa/**/Version.class"/>
+ </jar>
</target>
<path id="xbeans-classpath">
@@ -173,19 +196,30 @@
<target name="aop" depends="aop-jar">
<taskdef name="aopc" classname="org.jboss.aop.ant.AopC" classpathref="aop-classpath"/>
- <delete dir="${org.jboss.esb.rosetta.aopc.classes.dir}" quiet="true"/>
- <mkdir dir="${org.jboss.esb.rosetta.aopc.classes.dir}"/>
+ <delete dir="${org.jboss.esb.rosetta.aopc.scout.classes.dir}" quiet="true"/>
+ <delete dir="${org.jboss.esb.rosetta.aopc.juddi.classes.dir}" quiet="true"/>
+ <mkdir dir="${org.jboss.esb.rosetta.aopc.scout.classes.dir}"/>
+ <mkdir dir="${org.jboss.esb.rosetta.aopc.juddi.classes.dir}"/>
- <unzip src="${org.jboss.esb.lib.dir}/scout-1.0rc1.jar" dest="${org.jboss.esb.rosetta.aopc.classes.dir}"/>
+ <unzip src="${org.jboss.esb.lib.dir}/scout-1.0rc2.jar" dest="${org.jboss.esb.rosetta.aopc.scout.classes.dir}"/>
+ <unzip src="${org.jboss.esb.lib.dir}/juddi-2.0rc5.jar" dest="${org.jboss.esb.rosetta.aopc.juddi.classes.dir}"/>
+
<aopc compilerclasspathref="aop-classpath">
- <classpath path="${org.jboss.esb.rosetta.aopc.classes.dir}"/>
- <src path="${org.jboss.esb.rosetta.aopc.classes.dir}"/>
+ <classpath path="${org.jboss.esb.rosetta.aopc.scout.classes.dir}"/>
+ <src path="${org.jboss.esb.rosetta.aopc.scout.classes.dir}"/>
<include name="org/apache/ws/scout/registry/BusinessQueryManagerImpl.class"/>
-
<aoppath path="aop/resources/META-INF/jboss-aop.xml"/>
<aopclasspath path="${org.jboss.esb.rosetta.aop.classes.dir}"/>
</aopc>
- <zip destfile="${org.jboss.esb.aoplib.dir}/scout-1.0rc1.aop.jar" basedir="${org.jboss.esb.rosetta.aopc.classes.dir}"/>
+ <aopc compilerclasspathref="aop-classpath">
+ <classpath path="${org.jboss.esb.rosetta.aopc.juddi.classes.dir}"/>
+ <src path="${org.jboss.esb.rosetta.aopc.juddi.classes.dir}"/>
+ <include name="org/apache/juddi/util/xml/XMLUtils.class"/>
+ <aoppath path="aop/resources/META-INF/jboss-aop.xml"/>
+ <aopclasspath path="${org.jboss.esb.rosetta.aop.classes.dir}"/>
+ </aopc>
+ <zip destfile="${org.jboss.esb.aoplib.dir}/scout-1.0rc2.aop.jar" basedir="${org.jboss.esb.rosetta.aopc.scout.classes.dir}"/>
+ <zip destfile="${org.jboss.esb.aoplib.dir}/juddi-2.0rc5.aop.jar" basedir="${org.jboss.esb.rosetta.aopc.juddi.classes.dir}"/>
</target>
<target name="aop-jar" depends="aop-compile">
Modified: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/internal/soa/esb/couriers/InVMCourier.java
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/internal/soa/esb/couriers/InVMCourier.java 2009-01-21 14:47:17 UTC (rev 24849)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/internal/soa/esb/couriers/InVMCourier.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -29,6 +29,7 @@
import org.jboss.soa.esb.common.TransactionStrategy;
import org.jboss.soa.esb.common.TransactionStrategyException;
import org.jboss.soa.esb.couriers.CourierException;
+import org.jboss.soa.esb.message.ByReferenceMessage;
import org.jboss.soa.esb.message.Message;
import java.io.IOException;
@@ -105,10 +106,8 @@
* if problems were encountered
*/
- public boolean deliver(Message message) {
- if (!isCourierActive()) {
- return false;
- }
+ public boolean deliver(Message message) throws CourierException {
+ isCourierActive() ;
if (message == null) {
return false;
@@ -153,21 +152,47 @@
}
else
{
- synchronized (messageQueue) {
-
- if (!addMessageToQueue(message)) {
+ Object addedObject;
+
+ if (passByValue) {
+ try {
+ addedObject = MessageSerializer.serialize(message);
+ } catch (IOException ex) {
+ logger.warn("Could not serialize message to pass by value.", ex);
return false;
}
+ } else if (message instanceof ByReferenceMessage){
+ addedObject = ((ByReferenceMessage)message).reference() ;
+ } else {
+ addedObject = message;
+ }
+
+ synchronized (messageQueue) {
+ messageQueue.add(addedObject);
+
// Notify 1 waiting pickup thread of the delivery...
messageQueue.notify();
if (deliveryTimeout > 0) {
- try {
- // Wait on notification from the pickup thread...
- messageQueue.wait(deliveryTimeout);
- } catch (InterruptedException e) {
- logger.warn("Timeout expired while waiting on message pickup on InVM queue '" + epr.getAddr().getAddress() + "'.", e);
+ long start = System.currentTimeMillis();
+
+ // Continue to wait until the "addedObject" has been removed from the queue,
+ // or the delivery timeout expires...
+ while(messageQueue.contains(addedObject)) {
+ try {
+ // Wait on notification from the pickup thread....
+ messageQueue.wait(5); // Yes, it's a "magic" number, but we don't need to configure it or make a one-off constant!!!
+ } catch (InterruptedException e) {
+ logger.warn("Waiting delivery thread interupted while waiting on message pickup on InVM queue '" + epr.getAddr().getAddress() + "'. Exiting pickup wait state.");
+ break;
+ }
+
+ // If the delivery timeout has expired...
+ if(System.currentTimeMillis() > start + deliveryTimeout) {
+ logger.warn("Timeout expired while waiting on message pickup on InVM queue '" + epr.getAddr().getAddress() + "'.");
+ break;
+ }
}
}
}
@@ -183,19 +208,23 @@
}
}
- private boolean addMessageToQueue(Message message) {
+ private Object addMessageToQueue(Message message) {
+ Object addedObject;
+
if (passByValue) {
try {
- messageQueue.add(MessageSerializer.serialize(message));
+ addedObject = MessageSerializer.serialize(message);
+ messageQueue.add(addedObject);
} catch (IOException ex) {
logger.warn("Could not serialize message to pass by value.", ex);
return false;
}
} else {
+ addedObject = message;
messageQueue.add(message);
}
- return true;
+ return addedObject;
}
/**
@@ -213,10 +242,8 @@
// see associated test
- public Message pickup(long millis) {
- if (!isCourierActive()) {
- return null;
- }
+ public Message pickup(long millis) throws CourierException {
+ isCourierActive() ;
Message message = null;
@@ -279,12 +306,10 @@
public void cleanup() {
}
- private boolean isCourierActive() {
+ private void isCourierActive() throws CourierException {
if (!isActive) {
- logger.debug("InVMCourier for EPR '" + epr.getAddr().getAddress() + "' is not active. Cannot pickup/deliver on this courier.", new Exception());
- return false;
+ throw new CourierException("InVMCourier for EPR '" + epr.getAddr().getAddress() + "' is not active. Cannot pickup/deliver on this courier.");
}
- return true;
}
public void setActive(boolean active) {
@@ -319,7 +344,9 @@
{
synchronized (messageQueue)
{
- if (!addMessageToQueue(message)) {
+ Object addedObject = addMessageToQueue(message);
+
+ if (addedObject == null) {
return false;
}
@@ -345,7 +372,7 @@
public boolean doRedeliver (Message message)
{
synchronized (messageQueue) {
- messageQueue.add(message);
+ messageQueue.add(message);
}
return true;
Modified: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/internal/soa/esb/couriers/SqlTableCourier.java
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/internal/soa/esb/couriers/SqlTableCourier.java 2009-01-21 14:47:17 UTC (rev 24849)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/internal/soa/esb/couriers/SqlTableCourier.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -321,8 +321,12 @@
{
case Types.BLOB:
final Blob blob = resultSet.getBlob(1) ;
- final byte[] blobData = StreamUtils.readStream(blob.getBinaryStream()) ;
- value = new String(blobData) ;
+ final byte[] blobData = ((blob != null) ? StreamUtils.readStream(blob.getBinaryStream()) : null);
+
+ if (blobData != null)
+ value = new String(blobData) ;
+ else
+ value = "";
break ;
case Types.BINARY:
case Types.VARBINARY:
@@ -332,7 +336,11 @@
break ;
case Types.CLOB:
final Clob clob = resultSet.getClob(1) ;
- value = StreamUtils.readReader(clob.getCharacterStream());
+
+ if (clob != null)
+ value = StreamUtils.readReader(clob.getCharacterStream());
+ else
+ value = "";
break ;
case Types.CHAR:
case Types.VARCHAR:
Copied: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/internal/soa/esb/listeners (from rev 24846, labs/jbossesb/trunk/product/rosetta/src/org/jboss/internal/soa/esb/listeners)
Copied: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/internal/soa/esb/listeners/gateway (from rev 24846, labs/jbossesb/trunk/product/rosetta/src/org/jboss/internal/soa/esb/listeners/gateway)
Copied: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/internal/soa/esb/listeners/gateway/filefilter (from rev 24846, labs/jbossesb/trunk/product/rosetta/src/org/jboss/internal/soa/esb/listeners/gateway/filefilter)
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/internal/soa/esb/listeners/gateway/filefilter/FileEndsWith.java
===================================================================
--- labs/jbossesb/trunk/product/rosetta/src/org/jboss/internal/soa/esb/listeners/gateway/filefilter/FileEndsWith.java 2009-01-21 09:35:03 UTC (rev 24846)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/internal/soa/esb/listeners/gateway/filefilter/FileEndsWith.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -1,51 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2006, JBoss Inc., and others contributors as indicated
- * by the @authors tag. All rights reserved.
- * See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- * This copyrighted material is made available to anyone wishing to use,
- * modify, copy, or redistribute it subject to the terms and conditions
- * of the GNU Lesser General Public License, v. 2.1.
- * This program is distributed in the hope that it will be useful, but WITHOUT A
- * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
- * PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
- * You should have received a copy of the GNU Lesser General Public License,
- * v.2.1 along with this distribution; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
- * MA 02110-1301, USA.
- *
- * (C) 2005-2006, JBoss Inc.
- */
-
-package org.jboss.internal.soa.esb.listeners.gateway.filefilter;
-
-import java.io.File;
-import java.io.FileFilter;
-
-import org.jboss.soa.esb.ConfigurationException;
-import org.jboss.soa.esb.util.Util;
-
-/**
- * Simple file filter for local filesystem Will accept only files that end with
- * the String supplied at constructor time
- */
-
-// normal file filter
-public class FileEndsWith implements FileFilter
-{
- public FileEndsWith(String p_sEnd) throws ConfigurationException
- {
- m_sSuffix = p_sEnd;
-
- if (Util.isNullString(m_sSuffix))
- throw new ConfigurationException("Must specify file extension");
- }
-
- public boolean accept (File p_f)
- {
- return (p_f.isFile()) ? p_f.toString().endsWith(m_sSuffix) : false;
- }
-
- private String m_sSuffix;
-}
Copied: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/internal/soa/esb/listeners/gateway/filefilter/FileEndsWith.java (from rev 24846, labs/jbossesb/trunk/product/rosetta/src/org/jboss/internal/soa/esb/listeners/gateway/filefilter/FileEndsWith.java)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/internal/soa/esb/listeners/gateway/filefilter/FileEndsWith.java (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/internal/soa/esb/listeners/gateway/filefilter/FileEndsWith.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -0,0 +1,51 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and others contributors as indicated
+ * by the @authors tag. All rights reserved.
+ * See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License, v. 2.1.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+ * PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
+ * You should have received a copy of the GNU Lesser General Public License,
+ * v.2.1 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301, USA.
+ *
+ * (C) 2005-2006, JBoss Inc.
+ */
+
+package org.jboss.internal.soa.esb.listeners.gateway.filefilter;
+
+import java.io.File;
+import java.io.FileFilter;
+
+import org.jboss.soa.esb.ConfigurationException;
+import org.jboss.soa.esb.util.Util;
+
+/**
+ * Simple file filter for local filesystem Will accept only files that end with
+ * the String supplied at constructor time
+ */
+
+// normal file filter
+public class FileEndsWith implements FileFilter
+{
+ public FileEndsWith(String p_sEnd) throws ConfigurationException
+ {
+ m_sSuffix = p_sEnd;
+
+ if (Util.isNullString(m_sSuffix))
+ throw new ConfigurationException("Must specify file extension");
+ }
+
+ public boolean accept (File p_f)
+ {
+ return (p_f.isFile()) ? p_f.toString().endsWith(m_sSuffix) : false;
+ }
+
+ private String m_sSuffix;
+}
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/internal/soa/esb/listeners/gateway/filefilter/IgnoreFile.java
===================================================================
--- labs/jbossesb/trunk/product/rosetta/src/org/jboss/internal/soa/esb/listeners/gateway/filefilter/IgnoreFile.java 2009-01-21 09:35:03 UTC (rev 24846)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/internal/soa/esb/listeners/gateway/filefilter/IgnoreFile.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -1,74 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2006, JBoss Inc., and others contributors as indicated
- * by the @authors tag. All rights reserved.
- * See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- * This copyrighted material is made available to anyone wishing to use,
- * modify, copy, or redistribute it subject to the terms and conditions
- * of the GNU Lesser General Public License, v. 2.1.
- * This program is distributed in the hope that it will be useful, but WITHOUT A
- * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
- * PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
- * You should have received a copy of the GNU Lesser General Public License,
- * v.2.1 along with this distribution; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
- * MA 02110-1301, USA.
- *
- * (C) 2005-2006, JBoss Inc.
- */
-
-package org.jboss.internal.soa.esb.listeners.gateway.filefilter;
-
-import java.io.File;
-import java.io.FileFilter;
-
-import org.jboss.soa.esb.ConfigurationException;
-import org.jboss.soa.esb.util.Util;
-
-// worker file filter (used if input suffix is null)
-
-public class IgnoreFile implements FileFilter
-{
- public IgnoreFile(String workSuffix, String errorSuffix, String postSuffix)
- throws ConfigurationException
- {
- _workSuffix = workSuffix;
- _errorSuffix = errorSuffix;
- _postSuffix = postSuffix;
-
- if (Util.isNullString(_workSuffix))
- throw new ConfigurationException("Must specify workSuffix");
- if (Util.isNullString(_errorSuffix))
- throw new ConfigurationException("Must specify errorSuffix");
- if (Util.isNullString(_postSuffix))
- throw new ConfigurationException("Must specify postProcessSuffix");
- } // ______________________________
-
- public boolean accept (File p_f)
- {
- if (p_f.isFile())
- {
- /*
- * If file is a work file then ignore it.
- */
-
- String fileName = p_f.toString();
-
- if (fileName.endsWith(_workSuffix)
- || fileName.endsWith(_errorSuffix)
- || fileName.endsWith(_postSuffix))
- {
- return false;
- }
- else
- return true;
- }
- else
- return false;
- }
-
- private String _workSuffix;
- private String _errorSuffix;
- private String _postSuffix;
-}
Copied: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/internal/soa/esb/listeners/gateway/filefilter/IgnoreFile.java (from rev 24846, labs/jbossesb/trunk/product/rosetta/src/org/jboss/internal/soa/esb/listeners/gateway/filefilter/IgnoreFile.java)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/internal/soa/esb/listeners/gateway/filefilter/IgnoreFile.java (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/internal/soa/esb/listeners/gateway/filefilter/IgnoreFile.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -0,0 +1,74 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and others contributors as indicated
+ * by the @authors tag. All rights reserved.
+ * See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License, v. 2.1.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+ * PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
+ * You should have received a copy of the GNU Lesser General Public License,
+ * v.2.1 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301, USA.
+ *
+ * (C) 2005-2006, JBoss Inc.
+ */
+
+package org.jboss.internal.soa.esb.listeners.gateway.filefilter;
+
+import java.io.File;
+import java.io.FileFilter;
+
+import org.jboss.soa.esb.ConfigurationException;
+import org.jboss.soa.esb.util.Util;
+
+// worker file filter (used if input suffix is null)
+
+public class IgnoreFile implements FileFilter
+{
+ public IgnoreFile(String workSuffix, String errorSuffix, String postSuffix)
+ throws ConfigurationException
+ {
+ _workSuffix = workSuffix;
+ _errorSuffix = errorSuffix;
+ _postSuffix = postSuffix;
+
+ if (Util.isNullString(_workSuffix))
+ throw new ConfigurationException("Must specify workSuffix");
+ if (Util.isNullString(_errorSuffix))
+ throw new ConfigurationException("Must specify errorSuffix");
+ if (Util.isNullString(_postSuffix))
+ throw new ConfigurationException("Must specify postProcessSuffix");
+ } // ______________________________
+
+ public boolean accept (File p_f)
+ {
+ if (p_f.isFile())
+ {
+ /*
+ * If file is a work file then ignore it.
+ */
+
+ String fileName = p_f.toString();
+
+ if (fileName.endsWith(_workSuffix)
+ || fileName.endsWith(_errorSuffix)
+ || fileName.endsWith(_postSuffix))
+ {
+ return false;
+ }
+ else
+ return true;
+ }
+ else
+ return false;
+ }
+
+ private String _workSuffix;
+ private String _errorSuffix;
+ private String _postSuffix;
+}
Modified: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/internal/soa/esb/message/format/serialized/ContextImpl.java
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/internal/soa/esb/message/format/serialized/ContextImpl.java 2009-01-21 14:47:17 UTC (rev 24849)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/internal/soa/esb/message/format/serialized/ContextImpl.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -1,5 +1,12 @@
package org.jboss.internal.soa.esb.message.format.serialized;
+import java.io.Serializable;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.Set;
+
+import org.jboss.internal.soa.esb.assertion.AssertArgument;
import org.jboss.soa.esb.message.Context;
/*
@@ -25,10 +32,89 @@
public class ContextImpl implements Context, java.io.Serializable
{
+ /**
+ * The context variables.
+ */
+ private Map<String, Serializable> context = new HashMap<String, Serializable>() ;
+
+ /**
+ * Default constructor for the context.
+ */
+ public ContextImpl()
+ {
+ }
+
+ /**
+ * Create a copy of the context.
+ * @param copy The context to copy.
+ */
+ ContextImpl(final ContextImpl copy)
+ {
+ context.putAll(copy.context) ;
+ }
+
private static final long serialVersionUID = 0x0;
public String toString ()
{
- return "context: [ ]";
+ return "context: " + context ;
}
+
+ /**
+ * Set the context value, replacing existing value if present.
+ * @param key The context key.
+ * @param value The context value.
+ * @return the previous value of the context or null if not set.
+ */
+ public Object setContext(final String key, final Object value)
+ {
+ AssertArgument.isNotNull(key, "key");
+ AssertArgument.isNotNull(value, "value");
+
+ if (value instanceof Serializable)
+ {
+ return context.put(key, (Serializable)value) ;
+ }
+ else
+ {
+ throw new IllegalArgumentException("value must be serializable");
+ }
+ }
+
+ /**
+ * Retrieves the context value.
+ * @param key The context key.
+ * @return The value or null if not present.
+ */
+ public Object getContext(final String key)
+ {
+ return context.get(key) ;
+ }
+
+ /**
+ * Remove the context value.
+ * @param key The context key.
+ * @return The value of the context, or null if not present.
+ */
+ public Object removeContext(final String key)
+ {
+ return context.remove(key) ;
+ }
+
+ /**
+ * Get the keys in the context.
+ * @return the context keys.
+ */
+ public Set<String> getContextKeys()
+ {
+ return Collections.unmodifiableSet(context.keySet()) ;
+ }
+
+ /**
+ * Clear the context.
+ */
+ public void clearContext()
+ {
+ context = new HashMap<String, Serializable>() ;
+ }
}
\ No newline at end of file
Modified: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/internal/soa/esb/message/format/serialized/MessageImpl.java
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/internal/soa/esb/message/format/serialized/MessageImpl.java 2009-01-21 14:47:17 UTC (rev 24849)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/internal/soa/esb/message/format/serialized/MessageImpl.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -30,8 +30,10 @@
import java.io.ObjectOutputStream;
import java.net.URI;
+import org.jboss.soa.esb.addressing.Call;
import org.jboss.soa.esb.message.Attachment;
import org.jboss.soa.esb.message.Body;
+import org.jboss.soa.esb.message.ByReferenceMessage;
import org.jboss.soa.esb.message.Context;
import org.jboss.soa.esb.message.Fault;
import org.jboss.soa.esb.message.Header;
@@ -61,7 +63,7 @@
*
*/
-public class MessageImpl implements Message, Externalizable
+public class MessageImpl implements ByReferenceMessage, Externalizable
{
private static final long serialVersionUID = 0x0;
@@ -75,6 +77,27 @@
_theProperties = new PropertiesImpl();
}
+ private MessageImpl(final MessageImpl message)
+ {
+ // Header and context are not by reference.
+ _theHeader = new HeaderImpl() ;
+ final Call origCall = message._theHeader.getCall() ;
+ final Call call = new Call(origCall.getTo()) ;
+ call.setAction(origCall.getAction()) ;
+ call.setFaultTo(origCall.getFaultTo()) ;
+ call.setFrom(origCall.getFrom()) ;
+ call.setMessageID(origCall.getMessageID()) ;
+ call.setRelatesTo(origCall.getRelatesTo()) ;
+ call.setReplyTo(origCall.getReplyTo()) ;
+ _theHeader.setCall(call) ;
+ _theContext = new ContextImpl(message._theContext) ;
+
+ _theBody = message._theBody ;
+ _theFault = message._theFault ;
+ _theAttachment = message._theAttachment ;
+ _theProperties = message._theProperties ;
+ }
+
/**
* @return get the header component of the message.
*/
@@ -202,6 +225,16 @@
}
}
+
+ /**
+ * Create the message used for pass by reference semantics.
+ * @return the referencable message.
+ */
+ public Message reference()
+ {
+ return new MessageImpl(this) ;
+ }
+
// should be a capability on the base interface, but no changes for 4.2
// ...
Modified: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/internal/soa/esb/message/format/xml/CallImpl.java
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/internal/soa/esb/message/format/xml/CallImpl.java 2009-01-21 14:47:17 UTC (rev 24849)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/internal/soa/esb/message/format/xml/CallImpl.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -21,7 +21,6 @@
import org.jboss.soa.esb.addressing.EPR;
import org.jboss.soa.esb.addressing.PortReference;
import org.jboss.soa.esb.addressing.XMLUtil;
-import org.jboss.soa.esb.message.Context;
/*
* JBoss, Home of Professional Open Source
* Copyright 2006, JBoss Inc., and others contributors as indicated
@@ -42,7 +41,7 @@
* (C) 2005-2006,
*/
-public class CallImpl extends ElementContent implements Context
+public class CallImpl extends ElementContent
{
/**
* The call object associated with this type.
Modified: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/internal/soa/esb/message/format/xml/ContextImpl.java
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/internal/soa/esb/message/format/xml/ContextImpl.java 2009-01-21 14:47:17 UTC (rev 24849)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/internal/soa/esb/message/format/xml/ContextImpl.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -1,10 +1,22 @@
package org.jboss.internal.soa.esb.message.format.xml;
+import java.io.Serializable;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.Set;
+import java.util.Map.Entry;
+
import javax.xml.namespace.QName;
import javax.xml.stream.XMLStreamException;
import javax.xml.stream.XMLStreamReader;
+import javax.xml.stream.XMLStreamWriter;
+import org.jboss.internal.soa.esb.assertion.AssertArgument;
+import org.jboss.internal.soa.esb.util.Encoding;
import org.jboss.internal.soa.esb.util.stax.ElementContent;
+import org.jboss.internal.soa.esb.util.stax.StreamHelper;
+import org.jboss.internal.soa.esb.util.stax.TextElement;
import org.jboss.soa.esb.message.Context;
/*
@@ -31,6 +43,11 @@
public class ContextImpl extends ElementContent implements Context
{
/**
+ * The context variables.
+ */
+ private Map<String, SerializedValueImpl> context = new HashMap<String, SerializedValueImpl>() ;
+
+ /**
* Default constructor for the context.
*/
public ContextImpl()
@@ -38,6 +55,15 @@
}
/**
+ * Create a copy of the context.
+ * @param copy The context to copy.
+ */
+ ContextImpl(final ContextImpl copy)
+ {
+ context.putAll(copy.context) ;
+ }
+
+ /**
* Construct a context from the input stream.
*
* @param in The input stream.
@@ -51,17 +77,129 @@
public String toString ()
{
- return "context: [ ]";
+ return "context: " + context ;
}
/**
+ * Set the context value, replacing existing value if present.
+ * @param key The context key.
+ * @param value The context value.
+ * @return the previous value of the context or null if not set.
+ */
+ public Object setContext(final String key, final Object value)
+ {
+ AssertArgument.isNotNull(key, "key");
+ AssertArgument.isNotNull(value, "value");
+
+ if (value instanceof Serializable)
+ {
+ return unwrap(context.put(key, new SerializedValueImpl((Serializable)value))) ;
+ }
+ else
+ {
+ throw new IllegalArgumentException("value must be serializable");
+ }
+ }
+
+ /**
+ * Retrieves the context value.
+ * @param key The context key.
+ * @return The value or null if not present.
+ */
+ public Object getContext(final String key)
+ {
+ return unwrap(context.get(key)) ;
+ }
+
+ /**
+ * Remove the context value.
+ * @param key The context key.
+ * @return The value of the context, or null if not present.
+ */
+ public Object removeContext(final String key)
+ {
+ return unwrap(context.remove(key)) ;
+ }
+
+ /**
+ * Get the keys in the context.
+ * @return the context keys.
+ */
+ public Set<String> getContextKeys()
+ {
+ return Collections.unmodifiableSet(context.keySet()) ;
+ }
+
+ /**
+ * Clear the context.
+ */
+ public void clearContext()
+ {
+ context = new HashMap<String, SerializedValueImpl>() ;
+ }
+
+ /**
+ * Write the child content of the element.
+ * @param out The output stream.
+ * @throws XMLStreamException For errors during output.
+ */
+ @Override
+ protected void writeChildContent(XMLStreamWriter out)
+ throws XMLStreamException
+ {
+ for (Entry<String, SerializedValueImpl> entry: context.entrySet())
+ {
+ final String origPropertyURI = StreamHelper.writeStartElement(out, XMLUtil.ESB_QNAME_CONTEXT_ENTRY) ;
+
+ final TextElement keyElement = new TextElement(Encoding.encodeBytes(entry.getKey().getBytes())) ;
+ StreamHelper.writeElement(out, XMLUtil.ESB_QNAME_CONTEXT_ENTRY_KEY, keyElement) ;
+
+ final String value = entry.getValue().getSerialisedForm() ;
+ final TextElement valueElement = new TextElement(value) ;
+ StreamHelper.writeElement(out, XMLUtil.ESB_QNAME_CONTEXT_ENTRY_VALUE, valueElement) ;
+
+ StreamHelper.writeEndElement(out, XMLUtil.ESB_QNAME_CONTEXT_ENTRY.getPrefix(), origPropertyURI) ;
+ }
+ }
+
+ /**
* Add the element.
* @param in The current input stream.
* @param elementName The qualified element name.
+ * @throws XMLStreamException For errors during parsing.
*/
- protected void putElement(final XMLStreamReader in, final QName elementName)
+ @Override
+ protected void putElement(final XMLStreamReader in,
+ final QName elementName)
throws XMLStreamException
{
- throw new XMLStreamException("Unexpected element name: " + elementName) ;
+ if (XMLUtil.ESB_QNAME_CONTEXT_ENTRY.equals(elementName))
+ {
+ StreamHelper.checkNextStartTag(in, XMLUtil.ESB_QNAME_CONTEXT_ENTRY_KEY) ;
+ final TextElement keyElement = new TextElement(in) ;
+ final String key = new String(Encoding.decodeToBytes(keyElement.getText())) ;
+
+ StreamHelper.checkNextStartTag(in, XMLUtil.ESB_QNAME_CONTEXT_ENTRY_VALUE) ;
+ final TextElement valueElement = new TextElement(in) ;
+ final SerializedValueImpl value = new SerializedValueImpl(valueElement.getText()) ;
+
+ StreamHelper.checkParentFinished(in) ;
+
+ context.put(key, value) ;
+ }
+ else
+ {
+ throw new XMLStreamException("Unexpected element name: " + elementName) ;
+ }
}
+
+ /**
+ * Unwrap the serialised value.
+ * @param value The serialised value.
+ * @return The unwrapped value.
+ */
+ private Object unwrap(final SerializedValueImpl value)
+ {
+ return (value == null ? null : value.getValue()) ;
+ }
}
\ No newline at end of file
Modified: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/internal/soa/esb/message/format/xml/MessageImpl.java
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/internal/soa/esb/message/format/xml/MessageImpl.java 2009-01-21 14:47:17 UTC (rev 24849)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/internal/soa/esb/message/format/xml/MessageImpl.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -31,8 +31,10 @@
import org.jboss.internal.soa.esb.util.stax.ElementContent;
import org.jboss.internal.soa.esb.util.stax.StreamHelper;
+import org.jboss.soa.esb.addressing.Call;
import org.jboss.soa.esb.message.Attachment;
import org.jboss.soa.esb.message.Body;
+import org.jboss.soa.esb.message.ByReferenceMessage;
import org.jboss.soa.esb.message.Context;
import org.jboss.soa.esb.message.Fault;
import org.jboss.soa.esb.message.Header;
@@ -65,7 +67,7 @@
*
*/
-public class MessageImpl extends ElementContent implements Message
+public class MessageImpl extends ElementContent implements ByReferenceMessage
{
public MessageImpl()
{
@@ -77,6 +79,26 @@
_theProperties = new PropertiesImpl();
}
+ private MessageImpl(final MessageImpl message)
+ {
+ // Header and context are not by reference.
+ _theHeader = new HeaderImpl() ;
+ final Call origCall = message._theHeader.getCall() ;
+ final Call call = new Call(origCall.getTo()) ;
+ call.setAction(origCall.getAction()) ;
+ call.setFaultTo(origCall.getFaultTo()) ;
+ call.setFrom(origCall.getFrom()) ;
+ call.setMessageID(origCall.getMessageID()) ;
+ call.setRelatesTo(origCall.getRelatesTo()) ;
+ call.setReplyTo(origCall.getReplyTo()) ;
+ _theHeader.setCall(call) ;
+ _theContext = new ContextImpl(message._theContext) ;
+
+ _theBody = message._theBody ;
+ _theFault = message._theFault ;
+ _theAttachment = message._theAttachment ;
+ _theProperties = message._theProperties ;
+ }
/**
* Construct a message from the input stream.
*
@@ -244,6 +266,15 @@
}
}
+ /**
+ * Create the message used for pass by reference semantics.
+ * @return the referencable message.
+ */
+ public Message reference()
+ {
+ return new MessageImpl(this) ;
+ }
+
// should be a capability on the base interface, but no changes for 4.2
// ...
Modified: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/internal/soa/esb/message/format/xml/XMLUtil.java
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/internal/soa/esb/message/format/xml/XMLUtil.java 2009-01-21 14:47:17 UTC (rev 24849)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/internal/soa/esb/message/format/xml/XMLUtil.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -60,6 +60,30 @@
*/
public static final QName ESB_QNAME_CONTEXT = new QName(ESB_ELEMENT_CONTEXT) ;
/**
+ * The name of the context entry element.
+ */
+ public static final String ESB_ELEMENT_CONTEXT_ENTRY = "ContextEntry" ;
+ /**
+ * The qualified name of the context entry element.
+ */
+ public static final QName ESB_QNAME_CONTEXT_ENTRY = new QName(ESB_ELEMENT_CONTEXT_ENTRY) ;
+ /**
+ * The name of the context entry key element.
+ */
+ public static final String ESB_ELEMENT_CONTEXT_ENTRY_KEY = "ContextKey" ;
+ /**
+ * The qualified name of the context entry key element.
+ */
+ public static final QName ESB_QNAME_CONTEXT_ENTRY_KEY = new QName(ESB_ELEMENT_CONTEXT_ENTRY_KEY) ;
+ /**
+ * The name of the context entry value element.
+ */
+ public static final String ESB_ELEMENT_CONTEXT_ENTRY_VALUE = "ContextValue" ;
+ /**
+ * The qualified name of the context entry value element.
+ */
+ public static final QName ESB_QNAME_CONTEXT_ENTRY_VALUE = new QName(ESB_ELEMENT_CONTEXT_ENTRY_VALUE) ;
+ /**
* The name of the body element.
*/
public static final String ESB_ELEMENT_BODY = "Body" ;
Modified: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/internal/soa/esb/publish/ActionContractPublisher.java
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/internal/soa/esb/publish/ActionContractPublisher.java 2009-01-21 14:47:17 UTC (rev 24849)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/internal/soa/esb/publish/ActionContractPublisher.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -1,7 +1,7 @@
package org.jboss.internal.soa.esb.publish;
import org.jboss.soa.esb.ConfigurationException;
-import org.jboss.soa.esb.listeners.config.xbeanmodel.ActionDocument.Action;
+import org.jboss.soa.esb.listeners.config.Action;
/**
* Action contract Publisher.
Copied: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/internal/soa/esb/publish/ContractReferencePublisher.java (from rev 24846, labs/jbossesb/trunk/product/rosetta/src/org/jboss/internal/soa/esb/publish/ContractReferencePublisher.java)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/internal/soa/esb/publish/ContractReferencePublisher.java (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/internal/soa/esb/publish/ContractReferencePublisher.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -0,0 +1,37 @@
+package org.jboss.internal.soa.esb.publish;
+
+import java.net.URI;
+
+import org.jboss.soa.esb.Service;
+
+/**
+ * Contract Publisher which represents a referenced contract.
+ *
+ * @author <a href="mailto:kevin.conner at jboss.com">Kevin Conner</a>
+ */
+public interface ContractReferencePublisher extends Publisher
+{
+ /**
+ * Get the service represented by this contract configuration.
+ * @return The service.
+ */
+ public Service getService() ;
+
+ /**
+ * Get the service description represented by this contract configuration.
+ * @return The service description.
+ */
+ public String getDescription() ;
+
+ /**
+ * Get the URI of the service.
+ * @return The service URI.
+ */
+ public URI getServiceURI() ;
+
+ /**
+ * Get the URI of the contract.
+ * @return The contract URI.
+ */
+ public URI getServiceContractURI() ;
+}
Copied: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/internal/soa/esb/publish/ServletContractPublisher.java (from rev 24846, labs/jbossesb/trunk/product/rosetta/src/org/jboss/internal/soa/esb/publish/ServletContractPublisher.java)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/internal/soa/esb/publish/ServletContractPublisher.java (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/internal/soa/esb/publish/ServletContractPublisher.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -0,0 +1,48 @@
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2006, JBoss Inc., and individual contributors as indicated
+* by the @authors tag. See the copyright.txt in the distribution for a
+* full listing of individual contributors.
+*
+* This is free software; you can redistribute it and/or modify it
+* under the terms of the GNU Lesser General Public License as
+* published by the Free Software Foundation; either version 2.1 of
+* the License, or (at your option) any later version.
+*
+* This software is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+* Lesser General Public License for more details.
+*
+* You should have received a copy of the GNU Lesser General Public
+* License along with this software; if not, write to the Free
+* Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+* 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+*/
+package org.jboss.internal.soa.esb.publish;
+
+import org.jboss.soa.esb.addressing.EPR;
+
+import javax.servlet.http.HttpServletRequest;
+
+/**
+ * Action contract Publisher.
+ *
+ * @author
+ */
+public interface ServletContractPublisher extends ContractPublisher {
+
+ /**
+ * Get the contract information within a servlet context.
+ * <p/>
+ * A Service may publish a number of addressable endpoints. The publisher
+ * will likely return different contract info depending on the endpoint EPR.
+ * <p/>
+ * This info can be stored and published from a global registry of some sort.
+ *
+ * @param epr Endpoint EPR.
+ * @param servletRequest The servlet request context.
+ * @return Contract information.
+ */
+ public ContractInfo getContractInfo(final EPR epr, final HttpServletRequest servletRequest) ;
+}
Modified: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/internal/soa/esb/rosetta/pooling/JmsSession.java
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/internal/soa/esb/rosetta/pooling/JmsSession.java 2009-01-21 14:47:17 UTC (rev 24849)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/internal/soa/esb/rosetta/pooling/JmsSession.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -56,6 +56,10 @@
* The pool instance id.
*/
private final long id ;
+ /**
+ * The session acknowledge mode.
+ */
+ private final int acknowledgeMode ;
/**
* The set of active queue browsers.
@@ -82,6 +86,7 @@
{
this.id = id ;
this.session = session ;
+ acknowledgeMode = session.getAcknowledgeMode() ;
// Workaround for JBESB-1873
if ("org.jboss.jms.client.JBossSession".equals(session.getClass().getName()))
{
@@ -224,8 +229,7 @@
public int getAcknowledgeMode() throws JMSException
{
- associate() ;
- return session.getAcknowledgeMode();
+ return acknowledgeMode;
}
public MessageListener getMessageListener() throws JMSException
Copied: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/internal/soa/esb/services/security (from rev 24846, labs/jbossesb/trunk/product/rosetta/src/org/jboss/internal/soa/esb/services/security)
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/internal/soa/esb/services/security/AMConfig.properties
===================================================================
--- labs/jbossesb/trunk/product/rosetta/src/org/jboss/internal/soa/esb/services/security/AMConfig.properties 2009-01-21 09:35:03 UTC (rev 24846)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/internal/soa/esb/services/security/AMConfig.properties 2009-01-21 15:38:08 UTC (rev 24850)
@@ -1,429 +0,0 @@
-#
-# The contents of this file are subject to the terms
-# of the Common Development and Distribution License
-# (the License). You may not use this file except in
-# compliance with the License.
-#
-# You can obtain a copy of the License at
-# https://opensso.dev.java.net/public/CDDLv1.0.html or
-# opensso/legal/CDDLv1.0.txt
-# See the License for the specific language governing
-# permission and limitations under the License.
-#
-# When distributing Covered Code, include this CDDL
-# Header Notice in each file and include the License file
-# at opensso/legal/CDDLv1.0.txt.
-# If applicable, add the following below the CDDL Header,
-# with the fields enclosed by brackets [] replaced by
-# your own identifying information:
-# "Portions Copyrighted [year] [name of copyright owner]"
-#
-# $Id: AMClient.properties,v 1.12 2008/03/04 00:25:12 beomsuk Exp $
-#
-# Copyright 2006 Sun Microsystems Inc. All Rights Reserved
-#
-
-/* The following keys are used to configure the Debug service.
- * Possible values for the key 'level' are: off | error | warning | message.
- * The key 'directory' specifies the output directory where the debug files
- * will be created.
- * Trailing spaces are significant.
- * Windows: Use forward slashes "/" separate directories, not backslash "\".
- * Windows: Spaces in the file name are allowed for Windows.
- */
-com.iplanet.services.debug.level=message
-com.iplanet.services.debug.directory=/tmp
-
-/*
- * Server mode should be 'false'
- */
-com.iplanet.am.serverMode=false
-
-/*
- * Cache enable / disable properties
- */
-com.iplanet.am.sdk.caching.enabled=false
-com.sun.identity.idm.cache.enabled=false
-com.sun.identity.sm.cache.enabled=true
-
-/*
- * Configure remote plugin classes for configuration (SMS)
- */
-com.sun.identity.sm.sms_object_class_name=com.sun.identity.sm.jaxrpc.SMSJAXRPCObject
-
-/*
- * Naming URL
- */
-com.iplanet.am.naming.url=http://localhost:8080/opensso/namingservice
-
-/*
- * Notification URL
- */
-com.iplanet.am.notification.url=
-
-/*
- * Security Credentails to read the configuration data
- */
-com.sun.identity.agents.app.username=UrlAccessAgent
-com.iplanet.am.service.password=
-com.iplanet.am.service.secret=AQIC24u86rq9RRbx13mx0nb0uAGpxLdxGBY9
-
-/*
- * Encryption key that will be used to encrypt and decypt
- * data to communicate with the server.
- * This key is needed to decrypt passwords stored
- * in the SMS configuration.
- */
-am.encryption.pwd=SAMPLE_RAND
-
-/*
- * Encryption key that will be used to encrypt and decypt
- * data used locally within the client.
- */
-com.sun.identity.client.encryptionKey=SAMPLE_RAND
-
-/*
- * Encryption: The key "com.iplanet.security.encryptor" specifies
- * the encrypting class implementation.
- * Available classes are:
- * com.iplanet.services.util.JCEEncryption
- * com.iplanet.services.util.JSSEncryption
- */
-com.iplanet.security.encryptor=com.iplanet.services.util.JCEEncryption
-
-/*
- * Property to enable/disable the notifications for am.sdk and IdRepo Caches.
- * If set to "true" notifications are enabled and disabled if set to "false".
- */
-com.sun.identity.idm.remote.notification.enabled=true
-
-/*
- * Cache update time (in minutes) for am.sdk & IdRepo Caches
- * if notification URL is not provided or if notifications are disabled.
- * Note:
- * 1. This property is applicable only if 'com.iplanet.am.notification.url'
- * is not provided or if 'com.sun.identity.idm.remote.notification.enabled'
- * is set to 'false'.
- * 2. If the polling time is set as 0, then polling is disabled.
- */
-com.iplanet.am.sdk.remote.pollingTime=1
-
-/*
- * Property to enable/disable the notifications for service management caches.
- * If set to "true" notifications are enabled and disabled if set to "false".
- */
-com.sun.identity.sm.notification.enabled=true
-
-/*
- * Cache update time (in minutes) for service configutation data,
- * if notification URL is not provided or if notifications are disabled.
- * Note:
- * 1. This property is applicable only if 'com.iplanet.am.notification.url'
- * is not provided or if 'com.sun.identity.sm.notification.enabled' is
- * set to 'false'.
- * 2. If the cache time is set as 0, then no cache updates will occur.
- */
-com.sun.identity.sm.cacheTime=1
-
-/*
- * Server protocol, host and port to be used by Client Services
- */
-com.iplanet.am.server.protocol=http
-com.iplanet.am.server.host=localhost
-com.iplanet.am.server.port=8080
-com.iplanet.am.services.deploymentDescriptor=opensso
-com.iplanet.am.console.protocol=@CONSOLE_PROTOCOL@
-com.iplanet.am.console.host=@CONSOLE_HOST@
-com.iplanet.am.console.port=@CONSOLE_PORT@
-com.iplanet.am.console.deploymentDescriptor=@CONSOLE_DEPLOY_URI@
-com.iplanet.am.console.remote=@CONSOLE_REMOTE@
-
-com.iplanet.am.cookie.name=iPlanetDirectoryPro
-
-/*
- * Session related properties.
- */
-com.iplanet.am.session.client.polling.enable=true
-com.iplanet.am.session.client.polling.period=180
-
-/*
- * Identify cert db directory path, prefix and password file
- * to initialize JSS Socket Factory when Web Container is configured SSL
- */
-com.iplanet.am.admin.cli.certdb.dir=
-com.iplanet.am.admin.cli.certdb.prefix=
-com.iplanet.am.admin.cli.certdb.passfile=//config/.wtpass
-
-/*
- * Identify property value for SSL ApprovalCallback / HostnameVerifier
- * If com.iplanet.services.comm is configured as protocol handler
- * and the checkSubjectAltName or resolveIPAddress feature is enabled,
- * cert8.db and key3.db with the prefix value of
- * com.iplanet.am.admin.cli.certdb.prefix will have to be created under
- * the directory of com.iplanet.am.admin.cli.certdb.dir before server is
- * restarted.
- */
-com.iplanet.am.jssproxy.trustAllServerCerts=false
-com.iplanet.am.jssproxy.checkSubjectAltName=false
-com.iplanet.am.jssproxy.resolveIPAddress=false
-com.iplanet.am.jssproxy.SSLTrustHostList=false
-
-/**************************************************************
- * Policy Client parameters
- **************************************************************/
-/* Policy decision log parameters. Possible values for logging.level
- * are NONE, ALLOW, DENY, BOTH, and DECISION */
-com.sun.identity.agents.server.log.file.name=amRemotePolicyLog
-com.sun.identity.agents.logging.level=NONE
-
-/* Notification URL for updating cache */
-com.sun.identity.agents.notification.enabled=false
-com.sun.identity.agents.notification.url=
-
-/* Cache time in minutes */
-com.sun.identity.agents.polling.interval=3
-
-/* Information to cache. Possible value are "subtree" or "self" */
-com.sun.identity.policy.client.cacheMode=subtree
-
-/* Policy client clock skew value in seconds */
-com.sun.identity.policy.client.clockSkew=10
-
-/*
-* Explicitly disable monitoring services in the client applications.
-*/
-com.sun.identity.monitoring=off
-
-/*
-* Specify if allow to use cached data for HttpURLConnection
-*/
-com.sun.identity.urlconnection.useCache=false
-
-#
-# Specify implementation class for
-# com.sun.identity.plugin.configuration.ConfigurationInstance interface.
-com.sun.identity.plugin.configuration.class=com.sun.identity.plugin.configuration.impl.ConfigurationInstanceImpl
-
-#
-# Specify implementation class for
-# com.sun.identity.plugin.datastore.DataStoreProvider interface.
-# This property defines the default datastore provider.
-com.sun.identity.plugin.datastore.class.default=com.sun.identity.plugin.datastore.impl.IdRepoDataStoreProvider
-
-#
-# Specify implementation class for
-# com.sun.identity.plugin.session.SessionProvider interface.
-com.sun.identity.plugin.session.class=com.sun.identity.plugin.session.impl.FMSessionProvider
-
-#
-# Specify XML signature provider class
-com.sun.identity.saml.xmlsig.signatureprovider.class=com.sun.identity.saml.xmlsig.AMSignatureProvider
-
-#
-# Specify XML key provider implementation class
-com.sun.identity.saml.xmlsig.keyprovider.class=com.sun.identity.saml.xmlsig.JKSKeyProvider
-
-#
-# Identify SAML XML signature keystore file, keystore password file
-# and key password file
-com.sun.identity.saml.xmlsig.keystore=@BASE_DIR@/keystore.jks
-com.sun.identity.saml.xmlsig.storepass=@BASE_DIR@/.storepass
-com.sun.identity.saml.xmlsig.keypass=@BASE_DIR@/.keypass
-com.sun.identity.saml.xmlsig.certalias=test
-
-#
-# Specify type of KeyStore used for saml xml signature. Default is JKS.
-# com.sun.identity.saml.xmlsig.storetype=JKS
-
-#
-# Flag for checking the Certificate which is embedded in the
-# KeyInfo against the certificates in the keystore (specified
-# by the "com.sun.identity.saml.xmlsig.keystore" property).
-# Possible values for the key are: on|off. If the flag is "on",
-# the certification must be presented in the keystore for
-# XML signature validation. If the flag is "off", skip
-# the presence checking.
-com.sun.identity.saml.checkcert=on
-
-#
-# XML cannonicalization algorithm. Used for SAML XML signature generation
-# and verification. When not specified, or value is empty, default value
-# will be used. The following is the list of supported algorithms:
-# http://www.w3.org/2001/10/xml-exc-c14n# (default)
-# http://www.w3.org/2001/10/xml-exc-c14n#WithComments
-# http://www.w3.org/TR/2001/REC-xml-c14n-20010315
-# http://www.w3.org/TR/2001/REC-xml-c14n-20010315#WithComments
-com.sun.identity.saml.xmlsig.c14nMethod=http://www.w3.org/2001/10/xml-exc-c14n#
-
-#
-# XML signature algorithm. Used for SAML XML Signature generation and
-# verification. When not specified, or value is empty, default value will be
-# used. The following is the list of supported algorithms:
-# http://www.w3.org/2000/09/xmldsig#rsa-sha1 (default)
-# http://www.w3.org/2000/09/xmldsig#hmac-sha1
-# http://www.w3.org/2000/09/xmldsig#dsa-sha1
-# http://www.w3.org/2001/04/xmldsig-more#rsa-md5
-# http://www.w3.org/2001/04/xmldsig-more#rsa-ripemd160
-# http://www.w3.org/2001/04/xmldsig-more#rsa-sha256
-# http://www.w3.org/2001/04/xmldsig-more#rsa-sha384
-# http://www.w3.org/2001/04/xmldsig-more#rsa-sha512
-# http://www.w3.org/2001/04/xmldsig-more#hmac-md5
-# http://www.w3.org/2001/04/xmldsig-more#hmac-ripemd160
-# http://www.w3.org/2001/04/xmldsig-more#hmac-sha256
-# http://www.w3.org/2001/04/xmldsig-more#hmac-sha384
-# http://www.w3.org/2001/04/xmldsig-more#hmac-sha512
-com.sun.identity.saml.xmlsig.xmlSigAlgorithm=
-
-#
-# XML transformation algorithm. Used for SAML XML signature generation
-# and verification. When not specified, or value is empty, default value
-# will be used. The following is the list of supported algorithms:
-# http://www.w3.org/2001/10/xml-exc-c14n# (default)
-# http://www.w3.org/2001/10/xml-exc-c14n#WithComments
-# http://www.w3.org/TR/2001/REC-xml-c14n-20010315
-# http://www.w3.org/TR/2001/REC-xml-c14n-20010315#WithComments
-# http://www.w3.org/TR/1999/REC-xslt-19991116
-# http://www.w3.org/2000/09/xmldsig#base64
-# http://www.w3.org/TR/1999/REC-xpath-19991116
-# http://www.w3.org/2000/09/xmldsig#enveloped-signature
-# http://www.w3.org/TR/2001/WD-xptr-20010108
-# http://www.w3.org/2002/04/xmldsig-filter2
-# http://www.w3.org/2002/06/xmldsig-filter2
-# http://www.nue.et-inf.uni-siegen.de/~geuer-pollmann/#xpathFilter
-com.sun.identity.saml.xmlsig.transformAlg=http://www.w3.org/2001/10/xml-exc-c14n#
-
-
-#
-# SAML2 XML Encryption Provider Implementation class
-com.sun.identity.saml2.xmlenc.EncryptionProvider=com.sun.identity.saml2.xmlenc.FMEncProvider
-
-
-#
-# SAML2 XML Signing Provider Implementation class.
-com.sun.identity.saml2.xmlsig.SignatureProvider=com.sun.identity.saml2.xmlsig.FMSigProvider
-
-#
-# SAML2 XML Signing Certificate Validation.
-com.sun.identity.saml2.crl.check=false
-
-#
-# SAML2 XML Signing Certificate Validation.
-com.sun.identity.saml2.crl.check.ca=false
-
-#
-# Client ceritificate alias that will be used in SSL connection for Liberty
-# SOAP Binding
-com.sun.identity.liberty.ws.soap.certalias=
-
-#
-# If the message timestamp is before current timestamp by this amount
-# (millisec), it is considered a stale message.
-com.sun.identity.liberty.ws.soap.staleTimeLimit=300000
-
-#
-# All the messageID of a valid message will be stored in a cache with the it
-# is received to avoid duplicate messages. If the current time minus the
-# received time is greater than the above staleTimeLimit, it should be removed
-# from the cache. The is property specify the interval(millisec) that a
-# cleanup thread should check the cache and remove those messageID.
-com.sun.identity.liberty.ws.soap.messageIDCacheCleanupInterval=60000
-
-#
-# Supported SOAP actors. Each actor must be seperated by '|'
-com.sun.identity.liberty.ws.soap.supportedActors=http://schemas.xmlsoap.org/soap/actor/next
-
-#
-# Namespace prefix mapping used when marshalling a JAXB content tree to a
-# DOM tree. The syntax is
-# <prefix>=<namespace>|<prefix>=<namespace>|..........
-com.sun.identity.liberty.ws.jaxb.namespacePrefixMappingList=S=http://schemas.xmlsoap.org/soap/envelope/|sb=urn:liberty:sb:2003-08|pp=urn:liberty:id-sis-pp:2003-08|ispp=http://www.sun.com/identity/liberty/pp|is=urn:liberty:is:2003-08
-
-#
-# JAXB package list used when constructing JAXBContext. Each package must be
-# seperated by ':'.
-com.sun.identity.liberty.ws.jaxb.packageList=
-
-#
-# Liberty ID-WSF security profile,
-# com.sun.identity.liberty.ws.wsc.certalias specifies default certificate
-# alias for issuing web service security token for this web service client
-# com.sun.identity.liberty.ws.ta.certalias specifies certificate
-# alias for trusted authority that will be used to sign SAML or SAML
-# BEARER token of response message.
-# com.sun.identity.liberty.ws.trustedca.certaliases specifies certificate
-# aliases for trusted CA. SAML or SAML BEARER token of incoming request
-# message needs to be signed by a trusted CA in this list. The syntax is
-# <cert alias 1>[:<issuer 1>]|<cert alias 2>[:<issuer 2>]|.....
-# For example, 'myalias1:myissuer1|myalias2|myalias3:myissuer3
-# 'issuer' is used when the token doesn't have a KeyInfo inside the
-# signature. The 'issuer' of the token needs to be in this list and the
-# corresponding cert alias will be used to verify signature. If KeyInfo
-# exists, the keystore needs to contain a cert alias that matches the
-# KeyInfo and the cert alias needs to be in this list.
-# com.sun.identity.liberty.ws.security.TokenProviderImpl specifies
-# implementation for security token provider
-com.sun.identity.liberty.ws.wsc.certalias=
-com.sun.identity.liberty.ws.ta.certalias=
-com.sun.identity.liberty.ws.trustedca.certaliases=
-com.sun.identity.liberty.ws.security.TokenProviderImpl=com.sun.identity.liberty.ws.security.LibSecurityTokenProvider
-
-
-#
-# URL for WSPRedirectHandlerServlet to handle Liberty WSF WSP-resource owner
-# interactions based on user agent redirects. This should be running in
-# the same JVM where Liberty SP is running
-com.sun.identity.liberty.interaction.wspRedirectHandler=http://localhost:8080/opensso/WSPRedirectHandler
-
-
-#
-# indicates whether WSC would participate in interaction
-# valid values are interactIfNeeded | doNotInteract | doNotInteractForData
-# default value:interactIfNeeded
-# value used if an invalid value is specified:interactIfNeeded
-com.sun.identity.liberty.interaction.wscSpecifiedInteractionChoice=interactIfNeeded
-
-
-#
-# indicates whether WSC would include userInteractionHeader
-# valid values are yes|no (case ignored)
-# default value:yes
-# value used if no value is specified:yes
-com.sun.identity.liberty.interaction.wscWillInlcudeUserInteractionHeader=yes
-
-
-#
-# indicates whether WSC would redirect user for interaction
-# valid values are yes|no
-# default value:yes
-# value used if no value is specified:yes
-com.sun.identity.liberty.interaction.wscWillRedirect=yes
-
-
-#
-# WSC's preference on the acceptable duration for interaction(in seconds)
-# default value if the value is not specified or a non integer value is
-# specified : 60
-com.sun.identity.liberty.interaction.wscSpecifiedMaxInteractionTime=80
-
-
-#
-# indicates whether WSC would enforce that redirected to URL is https
-# valid values are yes|no (case ignored)
-# liberty specification require the value to be yes
-# default value:yes
-# value used if no value is specified:yes
-com.sun.identity.liberty.interaction.wscWillEnforceHttpsCheck=no
-
-
-#
-# This property is used to determine the Liberty identity web services framework
-# to be used when the framework can not determine from the in-bound message or
-# from the resource offering when AM is acting as the WSC.
-# The default version is 1.1, but the possible values are 1.0 or 1.1
-# com.sun.identity.liberty.wsf.version=1.1
-
-#
-# Login URL and Authentication web service URL for Liberty use cases
-com.sun.identity.loginurl=http://localhost:8080/opensso/UI/Login
-com.sun.identity.liberty.authnsvc.url=http://localhost:8080/opensso/Liberty/authnsvc
-
Copied: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/internal/soa/esb/services/security/AMConfig.properties (from rev 24846, labs/jbossesb/trunk/product/rosetta/src/org/jboss/internal/soa/esb/services/security/AMConfig.properties)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/internal/soa/esb/services/security/AMConfig.properties (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/internal/soa/esb/services/security/AMConfig.properties 2009-01-21 15:38:08 UTC (rev 24850)
@@ -0,0 +1,429 @@
+#
+# The contents of this file are subject to the terms
+# of the Common Development and Distribution License
+# (the License). You may not use this file except in
+# compliance with the License.
+#
+# You can obtain a copy of the License at
+# https://opensso.dev.java.net/public/CDDLv1.0.html or
+# opensso/legal/CDDLv1.0.txt
+# See the License for the specific language governing
+# permission and limitations under the License.
+#
+# When distributing Covered Code, include this CDDL
+# Header Notice in each file and include the License file
+# at opensso/legal/CDDLv1.0.txt.
+# If applicable, add the following below the CDDL Header,
+# with the fields enclosed by brackets [] replaced by
+# your own identifying information:
+# "Portions Copyrighted [year] [name of copyright owner]"
+#
+# $Id: AMClient.properties,v 1.12 2008/03/04 00:25:12 beomsuk Exp $
+#
+# Copyright 2006 Sun Microsystems Inc. All Rights Reserved
+#
+
+/* The following keys are used to configure the Debug service.
+ * Possible values for the key 'level' are: off | error | warning | message.
+ * The key 'directory' specifies the output directory where the debug files
+ * will be created.
+ * Trailing spaces are significant.
+ * Windows: Use forward slashes "/" separate directories, not backslash "\".
+ * Windows: Spaces in the file name are allowed for Windows.
+ */
+com.iplanet.services.debug.level=message
+com.iplanet.services.debug.directory=/tmp
+
+/*
+ * Server mode should be 'false'
+ */
+com.iplanet.am.serverMode=false
+
+/*
+ * Cache enable / disable properties
+ */
+com.iplanet.am.sdk.caching.enabled=false
+com.sun.identity.idm.cache.enabled=false
+com.sun.identity.sm.cache.enabled=true
+
+/*
+ * Configure remote plugin classes for configuration (SMS)
+ */
+com.sun.identity.sm.sms_object_class_name=com.sun.identity.sm.jaxrpc.SMSJAXRPCObject
+
+/*
+ * Naming URL
+ */
+com.iplanet.am.naming.url=http://localhost:8080/opensso/namingservice
+
+/*
+ * Notification URL
+ */
+com.iplanet.am.notification.url=
+
+/*
+ * Security Credentails to read the configuration data
+ */
+com.sun.identity.agents.app.username=UrlAccessAgent
+com.iplanet.am.service.password=
+com.iplanet.am.service.secret=AQIC24u86rq9RRbx13mx0nb0uAGpxLdxGBY9
+
+/*
+ * Encryption key that will be used to encrypt and decypt
+ * data to communicate with the server.
+ * This key is needed to decrypt passwords stored
+ * in the SMS configuration.
+ */
+am.encryption.pwd=SAMPLE_RAND
+
+/*
+ * Encryption key that will be used to encrypt and decypt
+ * data used locally within the client.
+ */
+com.sun.identity.client.encryptionKey=SAMPLE_RAND
+
+/*
+ * Encryption: The key "com.iplanet.security.encryptor" specifies
+ * the encrypting class implementation.
+ * Available classes are:
+ * com.iplanet.services.util.JCEEncryption
+ * com.iplanet.services.util.JSSEncryption
+ */
+com.iplanet.security.encryptor=com.iplanet.services.util.JCEEncryption
+
+/*
+ * Property to enable/disable the notifications for am.sdk and IdRepo Caches.
+ * If set to "true" notifications are enabled and disabled if set to "false".
+ */
+com.sun.identity.idm.remote.notification.enabled=true
+
+/*
+ * Cache update time (in minutes) for am.sdk & IdRepo Caches
+ * if notification URL is not provided or if notifications are disabled.
+ * Note:
+ * 1. This property is applicable only if 'com.iplanet.am.notification.url'
+ * is not provided or if 'com.sun.identity.idm.remote.notification.enabled'
+ * is set to 'false'.
+ * 2. If the polling time is set as 0, then polling is disabled.
+ */
+com.iplanet.am.sdk.remote.pollingTime=1
+
+/*
+ * Property to enable/disable the notifications for service management caches.
+ * If set to "true" notifications are enabled and disabled if set to "false".
+ */
+com.sun.identity.sm.notification.enabled=true
+
+/*
+ * Cache update time (in minutes) for service configutation data,
+ * if notification URL is not provided or if notifications are disabled.
+ * Note:
+ * 1. This property is applicable only if 'com.iplanet.am.notification.url'
+ * is not provided or if 'com.sun.identity.sm.notification.enabled' is
+ * set to 'false'.
+ * 2. If the cache time is set as 0, then no cache updates will occur.
+ */
+com.sun.identity.sm.cacheTime=1
+
+/*
+ * Server protocol, host and port to be used by Client Services
+ */
+com.iplanet.am.server.protocol=http
+com.iplanet.am.server.host=localhost
+com.iplanet.am.server.port=8080
+com.iplanet.am.services.deploymentDescriptor=opensso
+com.iplanet.am.console.protocol=@CONSOLE_PROTOCOL@
+com.iplanet.am.console.host=@CONSOLE_HOST@
+com.iplanet.am.console.port=@CONSOLE_PORT@
+com.iplanet.am.console.deploymentDescriptor=@CONSOLE_DEPLOY_URI@
+com.iplanet.am.console.remote=@CONSOLE_REMOTE@
+
+com.iplanet.am.cookie.name=iPlanetDirectoryPro
+
+/*
+ * Session related properties.
+ */
+com.iplanet.am.session.client.polling.enable=true
+com.iplanet.am.session.client.polling.period=180
+
+/*
+ * Identify cert db directory path, prefix and password file
+ * to initialize JSS Socket Factory when Web Container is configured SSL
+ */
+com.iplanet.am.admin.cli.certdb.dir=
+com.iplanet.am.admin.cli.certdb.prefix=
+com.iplanet.am.admin.cli.certdb.passfile=//config/.wtpass
+
+/*
+ * Identify property value for SSL ApprovalCallback / HostnameVerifier
+ * If com.iplanet.services.comm is configured as protocol handler
+ * and the checkSubjectAltName or resolveIPAddress feature is enabled,
+ * cert8.db and key3.db with the prefix value of
+ * com.iplanet.am.admin.cli.certdb.prefix will have to be created under
+ * the directory of com.iplanet.am.admin.cli.certdb.dir before server is
+ * restarted.
+ */
+com.iplanet.am.jssproxy.trustAllServerCerts=false
+com.iplanet.am.jssproxy.checkSubjectAltName=false
+com.iplanet.am.jssproxy.resolveIPAddress=false
+com.iplanet.am.jssproxy.SSLTrustHostList=false
+
+/**************************************************************
+ * Policy Client parameters
+ **************************************************************/
+/* Policy decision log parameters. Possible values for logging.level
+ * are NONE, ALLOW, DENY, BOTH, and DECISION */
+com.sun.identity.agents.server.log.file.name=amRemotePolicyLog
+com.sun.identity.agents.logging.level=NONE
+
+/* Notification URL for updating cache */
+com.sun.identity.agents.notification.enabled=false
+com.sun.identity.agents.notification.url=
+
+/* Cache time in minutes */
+com.sun.identity.agents.polling.interval=3
+
+/* Information to cache. Possible value are "subtree" or "self" */
+com.sun.identity.policy.client.cacheMode=subtree
+
+/* Policy client clock skew value in seconds */
+com.sun.identity.policy.client.clockSkew=10
+
+/*
+* Explicitly disable monitoring services in the client applications.
+*/
+com.sun.identity.monitoring=off
+
+/*
+* Specify if allow to use cached data for HttpURLConnection
+*/
+com.sun.identity.urlconnection.useCache=false
+
+#
+# Specify implementation class for
+# com.sun.identity.plugin.configuration.ConfigurationInstance interface.
+com.sun.identity.plugin.configuration.class=com.sun.identity.plugin.configuration.impl.ConfigurationInstanceImpl
+
+#
+# Specify implementation class for
+# com.sun.identity.plugin.datastore.DataStoreProvider interface.
+# This property defines the default datastore provider.
+com.sun.identity.plugin.datastore.class.default=com.sun.identity.plugin.datastore.impl.IdRepoDataStoreProvider
+
+#
+# Specify implementation class for
+# com.sun.identity.plugin.session.SessionProvider interface.
+com.sun.identity.plugin.session.class=com.sun.identity.plugin.session.impl.FMSessionProvider
+
+#
+# Specify XML signature provider class
+com.sun.identity.saml.xmlsig.signatureprovider.class=com.sun.identity.saml.xmlsig.AMSignatureProvider
+
+#
+# Specify XML key provider implementation class
+com.sun.identity.saml.xmlsig.keyprovider.class=com.sun.identity.saml.xmlsig.JKSKeyProvider
+
+#
+# Identify SAML XML signature keystore file, keystore password file
+# and key password file
+com.sun.identity.saml.xmlsig.keystore=@BASE_DIR@/keystore.jks
+com.sun.identity.saml.xmlsig.storepass=@BASE_DIR@/.storepass
+com.sun.identity.saml.xmlsig.keypass=@BASE_DIR@/.keypass
+com.sun.identity.saml.xmlsig.certalias=test
+
+#
+# Specify type of KeyStore used for saml xml signature. Default is JKS.
+# com.sun.identity.saml.xmlsig.storetype=JKS
+
+#
+# Flag for checking the Certificate which is embedded in the
+# KeyInfo against the certificates in the keystore (specified
+# by the "com.sun.identity.saml.xmlsig.keystore" property).
+# Possible values for the key are: on|off. If the flag is "on",
+# the certification must be presented in the keystore for
+# XML signature validation. If the flag is "off", skip
+# the presence checking.
+com.sun.identity.saml.checkcert=on
+
+#
+# XML cannonicalization algorithm. Used for SAML XML signature generation
+# and verification. When not specified, or value is empty, default value
+# will be used. The following is the list of supported algorithms:
+# http://www.w3.org/2001/10/xml-exc-c14n# (default)
+# http://www.w3.org/2001/10/xml-exc-c14n#WithComments
+# http://www.w3.org/TR/2001/REC-xml-c14n-20010315
+# http://www.w3.org/TR/2001/REC-xml-c14n-20010315#WithComments
+com.sun.identity.saml.xmlsig.c14nMethod=http://www.w3.org/2001/10/xml-exc-c14n#
+
+#
+# XML signature algorithm. Used for SAML XML Signature generation and
+# verification. When not specified, or value is empty, default value will be
+# used. The following is the list of supported algorithms:
+# http://www.w3.org/2000/09/xmldsig#rsa-sha1 (default)
+# http://www.w3.org/2000/09/xmldsig#hmac-sha1
+# http://www.w3.org/2000/09/xmldsig#dsa-sha1
+# http://www.w3.org/2001/04/xmldsig-more#rsa-md5
+# http://www.w3.org/2001/04/xmldsig-more#rsa-ripemd160
+# http://www.w3.org/2001/04/xmldsig-more#rsa-sha256
+# http://www.w3.org/2001/04/xmldsig-more#rsa-sha384
+# http://www.w3.org/2001/04/xmldsig-more#rsa-sha512
+# http://www.w3.org/2001/04/xmldsig-more#hmac-md5
+# http://www.w3.org/2001/04/xmldsig-more#hmac-ripemd160
+# http://www.w3.org/2001/04/xmldsig-more#hmac-sha256
+# http://www.w3.org/2001/04/xmldsig-more#hmac-sha384
+# http://www.w3.org/2001/04/xmldsig-more#hmac-sha512
+com.sun.identity.saml.xmlsig.xmlSigAlgorithm=
+
+#
+# XML transformation algorithm. Used for SAML XML signature generation
+# and verification. When not specified, or value is empty, default value
+# will be used. The following is the list of supported algorithms:
+# http://www.w3.org/2001/10/xml-exc-c14n# (default)
+# http://www.w3.org/2001/10/xml-exc-c14n#WithComments
+# http://www.w3.org/TR/2001/REC-xml-c14n-20010315
+# http://www.w3.org/TR/2001/REC-xml-c14n-20010315#WithComments
+# http://www.w3.org/TR/1999/REC-xslt-19991116
+# http://www.w3.org/2000/09/xmldsig#base64
+# http://www.w3.org/TR/1999/REC-xpath-19991116
+# http://www.w3.org/2000/09/xmldsig#enveloped-signature
+# http://www.w3.org/TR/2001/WD-xptr-20010108
+# http://www.w3.org/2002/04/xmldsig-filter2
+# http://www.w3.org/2002/06/xmldsig-filter2
+# http://www.nue.et-inf.uni-siegen.de/~geuer-pollmann/#xpathFilter
+com.sun.identity.saml.xmlsig.transformAlg=http://www.w3.org/2001/10/xml-exc-c14n#
+
+
+#
+# SAML2 XML Encryption Provider Implementation class
+com.sun.identity.saml2.xmlenc.EncryptionProvider=com.sun.identity.saml2.xmlenc.FMEncProvider
+
+
+#
+# SAML2 XML Signing Provider Implementation class.
+com.sun.identity.saml2.xmlsig.SignatureProvider=com.sun.identity.saml2.xmlsig.FMSigProvider
+
+#
+# SAML2 XML Signing Certificate Validation.
+com.sun.identity.saml2.crl.check=false
+
+#
+# SAML2 XML Signing Certificate Validation.
+com.sun.identity.saml2.crl.check.ca=false
+
+#
+# Client ceritificate alias that will be used in SSL connection for Liberty
+# SOAP Binding
+com.sun.identity.liberty.ws.soap.certalias=
+
+#
+# If the message timestamp is before current timestamp by this amount
+# (millisec), it is considered a stale message.
+com.sun.identity.liberty.ws.soap.staleTimeLimit=300000
+
+#
+# All the messageID of a valid message will be stored in a cache with the it
+# is received to avoid duplicate messages. If the current time minus the
+# received time is greater than the above staleTimeLimit, it should be removed
+# from the cache. The is property specify the interval(millisec) that a
+# cleanup thread should check the cache and remove those messageID.
+com.sun.identity.liberty.ws.soap.messageIDCacheCleanupInterval=60000
+
+#
+# Supported SOAP actors. Each actor must be seperated by '|'
+com.sun.identity.liberty.ws.soap.supportedActors=http://schemas.xmlsoap.org/soap/actor/next
+
+#
+# Namespace prefix mapping used when marshalling a JAXB content tree to a
+# DOM tree. The syntax is
+# <prefix>=<namespace>|<prefix>=<namespace>|..........
+com.sun.identity.liberty.ws.jaxb.namespacePrefixMappingList=S=http://schemas.xmlsoap.org/soap/envelope/|sb=urn:liberty:sb:2003-08|pp=urn:liberty:id-sis-pp:2003-08|ispp=http://www.sun.com/identity/liberty/pp|is=urn:liberty:is:2003-08
+
+#
+# JAXB package list used when constructing JAXBContext. Each package must be
+# seperated by ':'.
+com.sun.identity.liberty.ws.jaxb.packageList=
+
+#
+# Liberty ID-WSF security profile,
+# com.sun.identity.liberty.ws.wsc.certalias specifies default certificate
+# alias for issuing web service security token for this web service client
+# com.sun.identity.liberty.ws.ta.certalias specifies certificate
+# alias for trusted authority that will be used to sign SAML or SAML
+# BEARER token of response message.
+# com.sun.identity.liberty.ws.trustedca.certaliases specifies certificate
+# aliases for trusted CA. SAML or SAML BEARER token of incoming request
+# message needs to be signed by a trusted CA in this list. The syntax is
+# <cert alias 1>[:<issuer 1>]|<cert alias 2>[:<issuer 2>]|.....
+# For example, 'myalias1:myissuer1|myalias2|myalias3:myissuer3
+# 'issuer' is used when the token doesn't have a KeyInfo inside the
+# signature. The 'issuer' of the token needs to be in this list and the
+# corresponding cert alias will be used to verify signature. If KeyInfo
+# exists, the keystore needs to contain a cert alias that matches the
+# KeyInfo and the cert alias needs to be in this list.
+# com.sun.identity.liberty.ws.security.TokenProviderImpl specifies
+# implementation for security token provider
+com.sun.identity.liberty.ws.wsc.certalias=
+com.sun.identity.liberty.ws.ta.certalias=
+com.sun.identity.liberty.ws.trustedca.certaliases=
+com.sun.identity.liberty.ws.security.TokenProviderImpl=com.sun.identity.liberty.ws.security.LibSecurityTokenProvider
+
+
+#
+# URL for WSPRedirectHandlerServlet to handle Liberty WSF WSP-resource owner
+# interactions based on user agent redirects. This should be running in
+# the same JVM where Liberty SP is running
+com.sun.identity.liberty.interaction.wspRedirectHandler=http://localhost:8080/opensso/WSPRedirectHandler
+
+
+#
+# indicates whether WSC would participate in interaction
+# valid values are interactIfNeeded | doNotInteract | doNotInteractForData
+# default value:interactIfNeeded
+# value used if an invalid value is specified:interactIfNeeded
+com.sun.identity.liberty.interaction.wscSpecifiedInteractionChoice=interactIfNeeded
+
+
+#
+# indicates whether WSC would include userInteractionHeader
+# valid values are yes|no (case ignored)
+# default value:yes
+# value used if no value is specified:yes
+com.sun.identity.liberty.interaction.wscWillInlcudeUserInteractionHeader=yes
+
+
+#
+# indicates whether WSC would redirect user for interaction
+# valid values are yes|no
+# default value:yes
+# value used if no value is specified:yes
+com.sun.identity.liberty.interaction.wscWillRedirect=yes
+
+
+#
+# WSC's preference on the acceptable duration for interaction(in seconds)
+# default value if the value is not specified or a non integer value is
+# specified : 60
+com.sun.identity.liberty.interaction.wscSpecifiedMaxInteractionTime=80
+
+
+#
+# indicates whether WSC would enforce that redirected to URL is https
+# valid values are yes|no (case ignored)
+# liberty specification require the value to be yes
+# default value:yes
+# value used if no value is specified:yes
+com.sun.identity.liberty.interaction.wscWillEnforceHttpsCheck=no
+
+
+#
+# This property is used to determine the Liberty identity web services framework
+# to be used when the framework can not determine from the in-bound message or
+# from the resource offering when AM is acting as the WSC.
+# The default version is 1.1, but the possible values are 1.0 or 1.1
+# com.sun.identity.liberty.wsf.version=1.1
+
+#
+# Login URL and Authentication web service URL for Liberty use cases
+com.sun.identity.loginurl=http://localhost:8080/opensso/UI/Login
+com.sun.identity.liberty.authnsvc.url=http://localhost:8080/opensso/Liberty/authnsvc
+
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/internal/soa/esb/services/security/EsbCallbackHandler.java
===================================================================
--- labs/jbossesb/trunk/product/rosetta/src/org/jboss/internal/soa/esb/services/security/EsbCallbackHandler.java 2009-01-21 09:35:03 UTC (rev 24846)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/internal/soa/esb/services/security/EsbCallbackHandler.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -1,44 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source Copyright 2008, Red Hat Middleware
- * LLC, and individual contributors by the @authors tag. See the copyright.txt
- * in the distribution for a full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it under the
- * terms of the GNU Lesser General Public License as published by the Free
- * Software Foundation; either version 2.1 of the License, or (at your option)
- * any later version.
- *
- * This software is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
- * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
- * details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this software; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA, or see the FSF
- * site: http://www.fsf.org.
- */
-package org.jboss.internal.soa.esb.services.security;
-
-import javax.security.auth.callback.CallbackHandler;
-
-import org.jboss.soa.esb.services.security.SecurityConfig;
-import org.jboss.soa.esb.services.security.auth.AuthenticationRequest;
-
-/**
- * EsbCallbackHandler extends CallbackHandler to proved access to
- * an AuthenticationRequest instance, and SecurityConfig instance.
- * <p/>
- * This can be used to access security information, like principals and credentials
- * needed by a callbacks.
- *
- * @author <a href="mailto:dbevenius at redhat.com">Daniel Bevenius</a>
- * @since 4.4
- *
- */
-public interface EsbCallbackHandler extends CallbackHandler
-{
- void setAuthenticationRequest(final AuthenticationRequest authRequest);
-
- void setSecurityConfig(final SecurityConfig config);
-}
Copied: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/internal/soa/esb/services/security/EsbCallbackHandler.java (from rev 24846, labs/jbossesb/trunk/product/rosetta/src/org/jboss/internal/soa/esb/services/security/EsbCallbackHandler.java)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/internal/soa/esb/services/security/EsbCallbackHandler.java (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/internal/soa/esb/services/security/EsbCallbackHandler.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -0,0 +1,44 @@
+/*
+ * JBoss, Home of Professional Open Source Copyright 2008, Red Hat Middleware
+ * LLC, and individual contributors by the @authors tag. See the copyright.txt
+ * in the distribution for a full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it under the
+ * terms of the GNU Lesser General Public License as published by the Free
+ * Software Foundation; either version 2.1 of the License, or (at your option)
+ * any later version.
+ *
+ * This software is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+ * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
+ * details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this software; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA, or see the FSF
+ * site: http://www.fsf.org.
+ */
+package org.jboss.internal.soa.esb.services.security;
+
+import javax.security.auth.callback.CallbackHandler;
+
+import org.jboss.soa.esb.services.security.SecurityConfig;
+import org.jboss.soa.esb.services.security.auth.AuthenticationRequest;
+
+/**
+ * EsbCallbackHandler extends CallbackHandler to proved access to
+ * an AuthenticationRequest instance, and SecurityConfig instance.
+ * <p/>
+ * This can be used to access security information, like principals and credentials
+ * needed by a callbacks.
+ *
+ * @author <a href="mailto:dbevenius at redhat.com">Daniel Bevenius</a>
+ * @since 4.4
+ *
+ */
+public interface EsbCallbackHandler extends CallbackHandler
+{
+ void setAuthenticationRequest(final AuthenticationRequest authRequest);
+
+ void setSecurityConfig(final SecurityConfig config);
+}
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/internal/soa/esb/services/security/JaasSecurityService.java
===================================================================
--- labs/jbossesb/trunk/product/rosetta/src/org/jboss/internal/soa/esb/services/security/JaasSecurityService.java 2009-01-21 09:35:03 UTC (rev 24846)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/internal/soa/esb/services/security/JaasSecurityService.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -1,378 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source Copyright 2008, Red Hat Middleware
- * LLC, and individual contributors by the @authors tag. See the copyright.txt
- * in the distribution for a full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it under the
- * terms of the GNU Lesser General Public License as published by the Free
- * Software Foundation; either version 2.1 of the License, or (at your option)
- * any later version.
- *
- * This software is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
- * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
- * details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this software; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA, or see the FSF
- * site: http://www.fsf.org.
- */
-package org.jboss.internal.soa.esb.services.security;
-
-import java.net.URL;
-import java.security.Principal;
-import java.security.Security;
-import java.util.List;
-import java.util.Properties;
-import java.util.Set;
-
-import javax.security.auth.Subject;
-import javax.security.auth.login.LoginContext;
-import javax.security.auth.login.LoginException;
-
-import org.apache.log4j.Logger;
-import org.jboss.internal.soa.esb.assertion.AssertArgument;
-import org.jboss.security.RunAsIdentity;
-import org.jboss.security.SecurityAssociation;
-import org.jboss.soa.esb.ConfigurationException;
-import org.jboss.soa.esb.common.Configuration;
-import org.jboss.soa.esb.common.Environment;
-import org.jboss.soa.esb.services.security.SecurityConfig;
-import org.jboss.soa.esb.services.security.SecurityContext;
-import org.jboss.soa.esb.services.security.SecurityService;
-import org.jboss.soa.esb.services.security.SecurityServiceException;
-import org.jboss.soa.esb.services.security.auth.AuthenticationRequest;
-import org.jboss.soa.esb.services.security.principals.Group;
-import org.jboss.soa.esb.services.security.principals.Role;
-import org.jboss.soa.esb.util.ClassUtil;
-
-import com.sun.security.auth.login.ConfigFile;
-
-/**
- * Concrete impl of a SecurityService in JBoss ESB that uses JAAS.
- * <p/>
- * This class is indented to be specified as the security implementation
- * to be used with JBoss ESB. <br>
- * This would be specified in jbossesb-properties.xml:
- * <pre>
- * {@literal
- * <properties name="security">
- * <property name="org.jboss.soa.esb.services.security.implementationClass" value="org.jboss.internal.soa.esb.services.security.JaasSecurityService"/>
- * <property name="org.jboss.soa.esb.services.security.callbackHandler" value="org.jboss.internal.soa.esb.services.security.UserPassCallbackHandler"/>
- * <property name="org.jboss.soa.esb.services.security.configUrl" value="/jaas.login"/>
- * </properties>
- * </pre>}
- *
- * @author <a href="mailto:dbevenius at jboss.com">Daniel Bevenius</a>
- * @Since 4.4
- */
-public final class JaasSecurityService implements SecurityService
-{
- /*
- * Property name for login config urls.
- */
- private static final String LOGIN_CONFIG_URL_PREFIX = "login.config.url.";
-
- /*
- * Callback handler implementation name
- */
- private String callbackHandlerClassName;
-
- /*
- * Original login configuration e.g JBoss AS login configuration
- */
- private javax.security.auth.login.Configuration containerConfig;
-
- /*
- * Custom login configuration
- */
- private javax.security.auth.login.Configuration configuration;
-
- private final Logger log = Logger.getLogger(JaasSecurityService.class);
-
- /**
- * Performs authentication of the passed in SecurityContext.
- * </p>
- *
- * This method will first try to authenticate the authRequest by using a custom <br>
- * javax.security.auth.login.Configuration, which would be the case where the <br>
- * login module name specified exists in a jaas.login file.
- * <br>
- * If the login module name cannot be found in jaas.login then this method will <br>
- * fall back and try to authenticate using a an underlying Configuration. This would <br>
- * be the case when running in an appserver for instance.
- *
- * @param config - the security configuration. Properties from jboss-esb.xml
- * @param securityContext - the security context to be used.
- * @param authRequest - the authentication request to be processed.
- * @throws SecurityServiceException
- * @throws LoginException if the authentication fails
- */
- public void authenticate(final SecurityConfig config, SecurityContext securityContext, final AuthenticationRequest authRequest) throws SecurityServiceException
- {
- AssertArgument.isNotNull(config, "config");
-
- LoginContext loginContext;
- final String runAs = config.getRunAs();
- try
- {
- final EsbCallbackHandler callbackHandler = createCallbackHandler(config, authRequest);
- try
- {
- // try to login with a standalone jaas login configuration file(for example jaas.login file)
- loginContext = new LoginContext(config.getModuleName(), securityContext.getSubject(), callbackHandler, getConfiguration());
- }
- catch (final LoginException ignore)
- {
- // fall back and try using the orginal configuration(for example jboss login-config.xml)
- loginContext = new LoginContext(config.getModuleName(), securityContext.getSubject(), callbackHandler, containerConfig);
- }
-
- // invoke the login process
- loginContext.login();
-
- final Subject subject = securityContext.getSubject();
-
- // add a runAs group if specified
- addRunAs(runAs, subject);
-
- final Principal principal = getPrincipal(subject);
-
- // associate the subject with jboss security
- SecurityAssociation.pushSubjectContext(subject, principal, subject.getPublicCredentials());
-
- if ( runAs != null )
- {
- // associate the runAs role with jboss security
- SecurityAssociation.pushRunAsIdentity(new RunAsIdentity(runAs, principal.getName()));
- }
-
- }
- catch (final LoginException e)
- {
- throw new SecurityServiceException("Exception while trying to login:", e);
- }
-
- }
-
- public boolean checkRolesAllowed(final List<String> rolesAllowed, SecurityContext securityContext)
- {
- if (rolesAllowed.isEmpty())
- {
- return true;
- }
-
- for (String roleName : rolesAllowed)
- {
- boolean isInRole = securityContext.isCallerInRole(roleName);
- if (isInRole)
- {
- return true;
- }
- }
- return false;
- }
-
- /**
- * Determines if the passed in Subject has the role specified in the context.
- * @return true - if the callers has the role
- */
- public boolean isCallerInRole( final Subject subject, final Principal role)
- {
- Set<java.security.acl.Group> principals = subject.getPrincipals(java.security.acl.Group.class);
- for (java.security.acl.Group group : principals)
- {
- if ( group.isMember(role) )
- return true;
- }
- return false;
- }
-
- /**
- * Configures by reading the value of the property 'org.jboss.soa.esb.services.security.configUrl'
- * from jbossesb-properties, is one exists.
- */
- public void configure() throws ConfigurationException
- {
- try
- {
- containerConfig = javax.security.auth.login.Configuration.getConfiguration();
- }
- catch(final SecurityException ignore)
- {
- log.warn("Could not locate a security configuration");
- }
-
- final Properties securityProperties = Configuration.getSecurityServiceProperies();
- final String loginConfigUrl = securityProperties.getProperty(Environment.SECURITY_SERVICE_CONFIG_URL);
- if ( loginConfigUrl != null )
- {
- final URL loginUrl = ClassUtil.getResource(loginConfigUrl, getClass());
- if ( loginUrl == null )
- {
- final String invalidPropertyMsg = "The value for property [" + Environment.SECURITY_SERVICE_CONFIG_URL +
- "] must be a valid URL. This property should point to a file on the local file system or on the classpath.";
- throw new ConfigurationException(invalidPropertyMsg);
- }
- addLoginConfig(loginUrl);
- }
-
- // get a EsbCallbackHandler if one is configured in jbossesb-properties.xml
- callbackHandlerClassName = securityProperties.getProperty(Environment.SECURITY_SERVICE_CALLBACK_HANLDER_CLASS);
- }
-
- public void logout(SecurityConfig config)
- {
- // NoOp
- }
-
- public synchronized void refreshSecurityConfig()
- {
- if ( configuration != null )
- {
- log.info("Refreshing Security configuration");
- configuration.refresh();
- }
- }
-
- private Principal getPrincipal( final Subject subject)
- {
- for (Principal principal : subject.getPrincipals())
- {
- return principal;
- }
- return null;
- }
-
- /**
- * Creates an instance of EsbCallbackHandler specified in either jboss-esb.xml:
- * <pre>
- * {@literal
- * <security moduleName="OpenSSOLogin" runAs="adminRole" callbackHandler="org.jboss.internal.soa.esb.services.security.UserPassCallbackHandler"/>
- * }</pre><br>
- * or if one was not specified in jboss-esb.xml but one has been specified in jbossesb-properties.xml:
- * <pre>
- * {@literal
- * <property name="org.jboss.soa.esb.services.security.callbackHandler" value="org.jboss.internal.soa.esb.services.security.UserPassCallbackHandler"/>
- * }</pre><br>
- * After an instance has been created its {@link EsbCallbackHandler#setAuthenticationRequest(AuthenticationRequest)} method is called
- * which gives the callback handler access to the authentication information.
- *
- * @param config - the security configuration information(from jboss-esb.xml)
- * @param authRequest - the authentication request information
- * @return EsbCallbackHandler - new instance with authReqeust set or null if no callback handler has been specified in either jboss-esb.xml or jbossesb-properties.xml
- * @throws SecurityServiceException - if an EsbCallbackHandler has specified in the configuration but the implementation cannot be created.
- */
- private EsbCallbackHandler createCallbackHandler( final SecurityConfig config, final AuthenticationRequest authRequest ) throws SecurityServiceException
- {
- EsbCallbackHandler callbackHandler = null;
-
- // check if a callbackhandler was specified in jboss-esb.xml
- String callbackImpl = config.getCallbackHandler();
- if ( callbackImpl == null )
- {
- // use the global callbackhandler that can be specified in jbossesb-properties.xml(optional)
- callbackImpl = callbackHandlerClassName;
- }
-
- if ( callbackImpl != null )
- {
- callbackHandler = createNewInstance(callbackImpl);
- // set the authReqeust so that the callback handler has access to the authentication information(Principals, Credentials)
- callbackHandler.setAuthenticationRequest(authRequest);
- // set the SecurityConfig so that the callbakc handler has access to the configuration information
- callbackHandler.setSecurityConfig(config);
- }
- return callbackHandler;
- }
-
- private void addLoginConfig(final URL loginConfigUrl) throws ConfigurationException
- {
- if (loginConfigUrl == null)
- {
- throw new ConfigurationException("Could not locate the login config file at Url [" + loginConfigUrl + "]");
- }
-
- int urlIndex = 1;
- boolean loginUrlRegistered = false;
- String registeredLoginUrl;
- while ((registeredLoginUrl = Security.getProperty(LOGIN_CONFIG_URL_PREFIX + urlIndex)) != null)
- {
- loginUrlRegistered = registeredLoginUrl.equals(loginConfigUrl.toString());
- if (loginUrlRegistered)
- {
- break;
- }
- else
- {
- urlIndex++;
- }
- }
-
- if (!loginUrlRegistered)
- {
- log.info("Adding file [ " + loginConfigUrl + "] as [" + LOGIN_CONFIG_URL_PREFIX + urlIndex + "]");
- Security.setProperty(LOGIN_CONFIG_URL_PREFIX + urlIndex, loginConfigUrl.toExternalForm());
- setConfiguration(new ConfigFile());
- }
- }
-
- private synchronized javax.security.auth.login.Configuration getConfiguration()
- {
- return configuration;
- }
-
- private synchronized void setConfiguration(final javax.security.auth.login.Configuration configuration)
- {
- this.configuration = configuration;
- }
-
- private void addRunAs( final String runAs, final Subject subject )
- {
- if ( runAs != null )
- {
- final Role runAsRole = new Role(runAs);
- Set<Group> principals = subject.getPrincipals(Group.class);
- if ( principals.isEmpty() )
- {
- final Group group = new Group("Roles");
- group.addMember(runAsRole);
- subject.getPrincipals().add(group);
- }
- else
- {
- for (Group groups : principals)
- {
- if ( "Roles".equals(groups.getName()) )
- {
- groups.addMember(runAsRole);
- }
- }
- }
- }
- }
-
- private <T extends EsbCallbackHandler> T createNewInstance( final String className ) throws SecurityServiceException
- {
- try
- {
- @SuppressWarnings("unchecked")
- Class<T> forName = ClassUtil.forName(className, getClass());
- return forName.newInstance();
- }
- catch (final ClassNotFoundException e)
- {
- throw new SecurityServiceException("ClassNotFoundException while trying to create an impl of [" + className + "]", e);
- }
- catch (final InstantiationException e)
- {
- throw new SecurityServiceException("InstantiationException while trying to create an impl of [" + className + "]", e);
- }
- catch (final IllegalAccessException e)
- {
- throw new SecurityServiceException("IllegalAccess while trying to create an impl of [" + className + "]", e);
- }
- }
-
-}
Copied: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/internal/soa/esb/services/security/JaasSecurityService.java (from rev 24846, labs/jbossesb/trunk/product/rosetta/src/org/jboss/internal/soa/esb/services/security/JaasSecurityService.java)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/internal/soa/esb/services/security/JaasSecurityService.java (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/internal/soa/esb/services/security/JaasSecurityService.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -0,0 +1,378 @@
+/*
+ * JBoss, Home of Professional Open Source Copyright 2008, Red Hat Middleware
+ * LLC, and individual contributors by the @authors tag. See the copyright.txt
+ * in the distribution for a full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it under the
+ * terms of the GNU Lesser General Public License as published by the Free
+ * Software Foundation; either version 2.1 of the License, or (at your option)
+ * any later version.
+ *
+ * This software is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+ * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
+ * details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this software; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA, or see the FSF
+ * site: http://www.fsf.org.
+ */
+package org.jboss.internal.soa.esb.services.security;
+
+import java.net.URL;
+import java.security.Principal;
+import java.security.Security;
+import java.util.List;
+import java.util.Properties;
+import java.util.Set;
+
+import javax.security.auth.Subject;
+import javax.security.auth.login.LoginContext;
+import javax.security.auth.login.LoginException;
+
+import org.apache.log4j.Logger;
+import org.jboss.internal.soa.esb.assertion.AssertArgument;
+import org.jboss.security.RunAsIdentity;
+import org.jboss.security.SecurityAssociation;
+import org.jboss.soa.esb.ConfigurationException;
+import org.jboss.soa.esb.common.Configuration;
+import org.jboss.soa.esb.common.Environment;
+import org.jboss.soa.esb.services.security.SecurityConfig;
+import org.jboss.soa.esb.services.security.SecurityContext;
+import org.jboss.soa.esb.services.security.SecurityService;
+import org.jboss.soa.esb.services.security.SecurityServiceException;
+import org.jboss.soa.esb.services.security.auth.AuthenticationRequest;
+import org.jboss.soa.esb.services.security.principals.Group;
+import org.jboss.soa.esb.services.security.principals.Role;
+import org.jboss.soa.esb.util.ClassUtil;
+
+import com.sun.security.auth.login.ConfigFile;
+
+/**
+ * Concrete impl of a SecurityService in JBoss ESB that uses JAAS.
+ * <p/>
+ * This class is indented to be specified as the security implementation
+ * to be used with JBoss ESB. <br>
+ * This would be specified in jbossesb-properties.xml:
+ * <pre>
+ * {@literal
+ * <properties name="security">
+ * <property name="org.jboss.soa.esb.services.security.implementationClass" value="org.jboss.internal.soa.esb.services.security.JaasSecurityService"/>
+ * <property name="org.jboss.soa.esb.services.security.callbackHandler" value="org.jboss.internal.soa.esb.services.security.UserPassCallbackHandler"/>
+ * <property name="org.jboss.soa.esb.services.security.configUrl" value="/jaas.login"/>
+ * </properties>
+ * </pre>}
+ *
+ * @author <a href="mailto:dbevenius at jboss.com">Daniel Bevenius</a>
+ * @Since 4.4
+ */
+public final class JaasSecurityService implements SecurityService
+{
+ /*
+ * Property name for login config urls.
+ */
+ private static final String LOGIN_CONFIG_URL_PREFIX = "login.config.url.";
+
+ /*
+ * Callback handler implementation name
+ */
+ private String callbackHandlerClassName;
+
+ /*
+ * Original login configuration e.g JBoss AS login configuration
+ */
+ private javax.security.auth.login.Configuration containerConfig;
+
+ /*
+ * Custom login configuration
+ */
+ private javax.security.auth.login.Configuration configuration;
+
+ private final Logger log = Logger.getLogger(JaasSecurityService.class);
+
+ /**
+ * Performs authentication of the passed in SecurityContext.
+ * </p>
+ *
+ * This method will first try to authenticate the authRequest by using a custom <br>
+ * javax.security.auth.login.Configuration, which would be the case where the <br>
+ * login module name specified exists in a jaas.login file.
+ * <br>
+ * If the login module name cannot be found in jaas.login then this method will <br>
+ * fall back and try to authenticate using a an underlying Configuration. This would <br>
+ * be the case when running in an appserver for instance.
+ *
+ * @param config - the security configuration. Properties from jboss-esb.xml
+ * @param securityContext - the security context to be used.
+ * @param authRequest - the authentication request to be processed.
+ * @throws SecurityServiceException
+ * @throws LoginException if the authentication fails
+ */
+ public void authenticate(final SecurityConfig config, SecurityContext securityContext, final AuthenticationRequest authRequest) throws SecurityServiceException
+ {
+ AssertArgument.isNotNull(config, "config");
+
+ LoginContext loginContext;
+ final String runAs = config.getRunAs();
+ try
+ {
+ final EsbCallbackHandler callbackHandler = createCallbackHandler(config, authRequest);
+ try
+ {
+ // try to login with a standalone jaas login configuration file(for example jaas.login file)
+ loginContext = new LoginContext(config.getModuleName(), securityContext.getSubject(), callbackHandler, getConfiguration());
+ }
+ catch (final LoginException ignore)
+ {
+ // fall back and try using the orginal configuration(for example jboss login-config.xml)
+ loginContext = new LoginContext(config.getModuleName(), securityContext.getSubject(), callbackHandler, containerConfig);
+ }
+
+ // invoke the login process
+ loginContext.login();
+
+ final Subject subject = securityContext.getSubject();
+
+ // add a runAs group if specified
+ addRunAs(runAs, subject);
+
+ final Principal principal = getPrincipal(subject);
+
+ // associate the subject with jboss security
+ SecurityAssociation.pushSubjectContext(subject, principal, subject.getPublicCredentials());
+
+ if ( runAs != null )
+ {
+ // associate the runAs role with jboss security
+ SecurityAssociation.pushRunAsIdentity(new RunAsIdentity(runAs, principal.getName()));
+ }
+
+ }
+ catch (final LoginException e)
+ {
+ throw new SecurityServiceException("Exception while trying to login:", e);
+ }
+
+ }
+
+ public boolean checkRolesAllowed(final List<String> rolesAllowed, SecurityContext securityContext)
+ {
+ if (rolesAllowed.isEmpty())
+ {
+ return true;
+ }
+
+ for (String roleName : rolesAllowed)
+ {
+ boolean isInRole = securityContext.isCallerInRole(roleName);
+ if (isInRole)
+ {
+ return true;
+ }
+ }
+ return false;
+ }
+
+ /**
+ * Determines if the passed in Subject has the role specified in the context.
+ * @return true - if the callers has the role
+ */
+ public boolean isCallerInRole( final Subject subject, final Principal role)
+ {
+ Set<java.security.acl.Group> principals = subject.getPrincipals(java.security.acl.Group.class);
+ for (java.security.acl.Group group : principals)
+ {
+ if ( group.isMember(role) )
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * Configures by reading the value of the property 'org.jboss.soa.esb.services.security.configUrl'
+ * from jbossesb-properties, is one exists.
+ */
+ public void configure() throws ConfigurationException
+ {
+ try
+ {
+ containerConfig = javax.security.auth.login.Configuration.getConfiguration();
+ }
+ catch(final SecurityException ignore)
+ {
+ log.warn("Could not locate a security configuration");
+ }
+
+ final Properties securityProperties = Configuration.getSecurityServiceProperies();
+ final String loginConfigUrl = securityProperties.getProperty(Environment.SECURITY_SERVICE_CONFIG_URL);
+ if ( loginConfigUrl != null )
+ {
+ final URL loginUrl = ClassUtil.getResource(loginConfigUrl, getClass());
+ if ( loginUrl == null )
+ {
+ final String invalidPropertyMsg = "The value for property [" + Environment.SECURITY_SERVICE_CONFIG_URL +
+ "] must be a valid URL. This property should point to a file on the local file system or on the classpath.";
+ throw new ConfigurationException(invalidPropertyMsg);
+ }
+ addLoginConfig(loginUrl);
+ }
+
+ // get a EsbCallbackHandler if one is configured in jbossesb-properties.xml
+ callbackHandlerClassName = securityProperties.getProperty(Environment.SECURITY_SERVICE_CALLBACK_HANLDER_CLASS);
+ }
+
+ public void logout(SecurityConfig config)
+ {
+ // NoOp
+ }
+
+ public synchronized void refreshSecurityConfig()
+ {
+ if ( configuration != null )
+ {
+ log.info("Refreshing Security configuration");
+ configuration.refresh();
+ }
+ }
+
+ private Principal getPrincipal( final Subject subject)
+ {
+ for (Principal principal : subject.getPrincipals())
+ {
+ return principal;
+ }
+ return null;
+ }
+
+ /**
+ * Creates an instance of EsbCallbackHandler specified in either jboss-esb.xml:
+ * <pre>
+ * {@literal
+ * <security moduleName="OpenSSOLogin" runAs="adminRole" callbackHandler="org.jboss.internal.soa.esb.services.security.UserPassCallbackHandler"/>
+ * }</pre><br>
+ * or if one was not specified in jboss-esb.xml but one has been specified in jbossesb-properties.xml:
+ * <pre>
+ * {@literal
+ * <property name="org.jboss.soa.esb.services.security.callbackHandler" value="org.jboss.internal.soa.esb.services.security.UserPassCallbackHandler"/>
+ * }</pre><br>
+ * After an instance has been created its {@link EsbCallbackHandler#setAuthenticationRequest(AuthenticationRequest)} method is called
+ * which gives the callback handler access to the authentication information.
+ *
+ * @param config - the security configuration information(from jboss-esb.xml)
+ * @param authRequest - the authentication request information
+ * @return EsbCallbackHandler - new instance with authReqeust set or null if no callback handler has been specified in either jboss-esb.xml or jbossesb-properties.xml
+ * @throws SecurityServiceException - if an EsbCallbackHandler has specified in the configuration but the implementation cannot be created.
+ */
+ private EsbCallbackHandler createCallbackHandler( final SecurityConfig config, final AuthenticationRequest authRequest ) throws SecurityServiceException
+ {
+ EsbCallbackHandler callbackHandler = null;
+
+ // check if a callbackhandler was specified in jboss-esb.xml
+ String callbackImpl = config.getCallbackHandler();
+ if ( callbackImpl == null )
+ {
+ // use the global callbackhandler that can be specified in jbossesb-properties.xml(optional)
+ callbackImpl = callbackHandlerClassName;
+ }
+
+ if ( callbackImpl != null )
+ {
+ callbackHandler = createNewInstance(callbackImpl);
+ // set the authReqeust so that the callback handler has access to the authentication information(Principals, Credentials)
+ callbackHandler.setAuthenticationRequest(authRequest);
+ // set the SecurityConfig so that the callbakc handler has access to the configuration information
+ callbackHandler.setSecurityConfig(config);
+ }
+ return callbackHandler;
+ }
+
+ private void addLoginConfig(final URL loginConfigUrl) throws ConfigurationException
+ {
+ if (loginConfigUrl == null)
+ {
+ throw new ConfigurationException("Could not locate the login config file at Url [" + loginConfigUrl + "]");
+ }
+
+ int urlIndex = 1;
+ boolean loginUrlRegistered = false;
+ String registeredLoginUrl;
+ while ((registeredLoginUrl = Security.getProperty(LOGIN_CONFIG_URL_PREFIX + urlIndex)) != null)
+ {
+ loginUrlRegistered = registeredLoginUrl.equals(loginConfigUrl.toString());
+ if (loginUrlRegistered)
+ {
+ break;
+ }
+ else
+ {
+ urlIndex++;
+ }
+ }
+
+ if (!loginUrlRegistered)
+ {
+ log.info("Adding file [ " + loginConfigUrl + "] as [" + LOGIN_CONFIG_URL_PREFIX + urlIndex + "]");
+ Security.setProperty(LOGIN_CONFIG_URL_PREFIX + urlIndex, loginConfigUrl.toExternalForm());
+ setConfiguration(new ConfigFile());
+ }
+ }
+
+ private synchronized javax.security.auth.login.Configuration getConfiguration()
+ {
+ return configuration;
+ }
+
+ private synchronized void setConfiguration(final javax.security.auth.login.Configuration configuration)
+ {
+ this.configuration = configuration;
+ }
+
+ private void addRunAs( final String runAs, final Subject subject )
+ {
+ if ( runAs != null )
+ {
+ final Role runAsRole = new Role(runAs);
+ Set<Group> principals = subject.getPrincipals(Group.class);
+ if ( principals.isEmpty() )
+ {
+ final Group group = new Group("Roles");
+ group.addMember(runAsRole);
+ subject.getPrincipals().add(group);
+ }
+ else
+ {
+ for (Group groups : principals)
+ {
+ if ( "Roles".equals(groups.getName()) )
+ {
+ groups.addMember(runAsRole);
+ }
+ }
+ }
+ }
+ }
+
+ private <T extends EsbCallbackHandler> T createNewInstance( final String className ) throws SecurityServiceException
+ {
+ try
+ {
+ @SuppressWarnings("unchecked")
+ Class<T> forName = ClassUtil.forName(className, getClass());
+ return forName.newInstance();
+ }
+ catch (final ClassNotFoundException e)
+ {
+ throw new SecurityServiceException("ClassNotFoundException while trying to create an impl of [" + className + "]", e);
+ }
+ catch (final InstantiationException e)
+ {
+ throw new SecurityServiceException("InstantiationException while trying to create an impl of [" + className + "]", e);
+ }
+ catch (final IllegalAccessException e)
+ {
+ throw new SecurityServiceException("IllegalAccess while trying to create an impl of [" + className + "]", e);
+ }
+ }
+
+}
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/internal/soa/esb/services/security/PrivateCryptoUtil.java
===================================================================
--- labs/jbossesb/trunk/product/rosetta/src/org/jboss/internal/soa/esb/services/security/PrivateCryptoUtil.java 2009-01-21 09:35:03 UTC (rev 24846)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/internal/soa/esb/services/security/PrivateCryptoUtil.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -1,259 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source Copyright 2008, Red Hat Middleware
- * LLC, and individual contributors by the @authors tag. See the copyright.txt
- * in the distribution for a full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it under the
- * terms of the GNU Lesser General Public License as published by the Free
- * Software Foundation; either version 2.1 of the License, or (at your option)
- * any later version.
- *
- * This software is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
- * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
- * details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this software; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA, or see the FSF
- * site: http://www.fsf.org.
- */
-package org.jboss.internal.soa.esb.services.security;
-
-import java.io.ByteArrayInputStream;
-import java.io.ByteArrayOutputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.ObjectInputStream;
-import java.io.ObjectOutputStream;
-import java.io.Serializable;
-import java.security.Key;
-import java.security.KeyStore;
-import java.security.KeyStoreException;
-import java.security.NoSuchAlgorithmException;
-import java.security.PrivateKey;
-import java.security.PublicKey;
-import java.security.UnrecoverableKeyException;
-import java.security.cert.Certificate;
-import java.security.cert.CertificateException;
-
-import org.apache.log4j.Logger;
-import org.jboss.soa.esb.common.Configuration;
-import org.jboss.soa.esb.common.Environment;
-import org.jboss.soa.esb.services.security.SecurityServiceException;
-import org.jboss.soa.esb.services.security.util.CryptoUtil;
-import org.jboss.soa.esb.util.ClassUtil;
-
-/**
- *
- * @author <a href="mailto:dbevenius at redhat.com">Daniel Bevenius</a>
- *
- */
-public enum PrivateCryptoUtil
-{
- INSTANCE;
-
- private Logger log;
- private Key key;
- private PublicKey publicKey;
- private String transformation;
-
- private PrivateCryptoUtil()
- {
- try
- {
- log = getLogger();
- init();
- }
- catch (final Exception e)
- {
- throw new IllegalStateException(e.getMessage(), e);
- }
- }
-
- private void init() throws SecurityServiceException
- {
- String keystorePath = Configuration.getSecurityServicePrivateKeystore();
- if (keystorePath == null)
- {
- log.info("No private keystore was specified in jbossesb-properites.xml. Add '" + Environment.SECURITY_SERVICE_PUBLIC_KEYSTORE + "'");
- }
- else
- {
- try
- {
- String keystoreType = Configuration.getSecurityServicePrivateKeystoreType();
- if (keystoreType == null)
- {
- keystoreType = KeyStore.getDefaultType();
- }
- String keystorePassword = Configuration.getSecurityServicePrivateKeystorePassword();
- String privateKeyAlias = Configuration.getSecurityServicePrivateKeyAlias();
- String privateKeyPass = Configuration.getSecurityServicePrivateKeyPassword();
-
- try
- {
- KeyStore keystore = KeyStore.getInstance(keystoreType);
- InputStream in = ClassUtil.getResourceAsStream(keystorePath, this.getClass());
- if (in == null)
- {
- throw new SecurityServiceException("Could not locate public keystore using '" + keystorePath + "'");
- }
-
- // load the keystore contents
- keystore.load(in, keystorePassword.toCharArray());
- key = keystore.getKey(privateKeyAlias, privateKeyPass.toCharArray());
- Certificate certificate = keystore.getCertificate(privateKeyAlias);
- publicKey = certificate.getPublicKey();
-
- // "algorithm/mode/padding" or defaults to "algorithm"
- transformation = Configuration.getSecurityServicePrivateKeyTransformation();
- if (transformation == null)
- {
- this.transformation = key.getAlgorithm();
- }
- }
- finally
- {
- keystorePassword = null;
- privateKeyAlias = null;
- privateKeyPass = null;
- }
- }
- catch (final KeyStoreException e)
- {
- throw new SecurityServiceException(e.getMessage(), e);
- }
- catch (final NoSuchAlgorithmException e)
- {
- throw new SecurityServiceException(e.getMessage(), e);
- }
- catch (final CertificateException e)
- {
- throw new SecurityServiceException(e.getMessage(), e);
- }
- catch (final IOException e)
- {
- throw new SecurityServiceException(e.getMessage(), e);
- }
- catch (final UnrecoverableKeyException e)
- {
- throw new SecurityServiceException(e.getMessage(), e);
- }
- }
- }
-
- private static byte[] getBytes(final Serializable ser) throws IOException
- {
- ByteArrayOutputStream bout = new ByteArrayOutputStream();
- ObjectOutputStream oout = new ObjectOutputStream(bout);
- oout.writeObject(ser);
- return bout.toByteArray();
- }
-
- public byte[] encrypt(final Serializable object) throws SecurityServiceException
- {
- ByteArrayInputStream plainInStream;
- try
- {
- plainInStream = new ByteArrayInputStream(getBytes(object));
- }
- catch (final IOException e)
- {
- throw new SecurityServiceException(e.getMessage(), e);
- }
-
- ByteArrayOutputStream encryptedOutStream = new ByteArrayOutputStream();
-
- try
- {
- byte[] buf = new byte[100];
- int bufLength;
- while ( (bufLength = plainInStream.read(buf)) != -1)
- {
- byte[] tmp = CryptoUtil.encrypt(copyBytes(buf,bufLength),publicKey, transformation);
- encryptedOutStream.write(tmp);
- encryptedOutStream.flush();
- }
- return encryptedOutStream.toByteArray();
- }
- catch (final IOException e)
- {
- throw new SecurityServiceException(e.getMessage(), e);
- }
- }
-
- public Serializable decrypt(final byte[] bytes) throws SecurityServiceException
- {
- ByteArrayInputStream encryptedBytesInStream = new ByteArrayInputStream(bytes);
-
- ByteArrayOutputStream decryptedBytesOutStream = new ByteArrayOutputStream();
-
- byte[] decryptBytes = null;
- try
- {
- byte[] buf = new byte[128];
- int bufLenth;
- while ( (bufLenth = encryptedBytesInStream.read(buf)) != -1)
- {
- byte[] tmp = CryptoUtil.decrypt( copyBytes(buf,bufLenth),(PrivateKey)key, transformation);
- decryptedBytesOutStream.write(tmp);
- decryptedBytesOutStream.flush();
- decryptBytes = decryptedBytesOutStream.toByteArray();
- }
- }
- catch (final IOException e)
- {
- throw new SecurityServiceException(e.getMessage(), e);
- }
- finally
- {
- try { decryptedBytesOutStream.close(); } catch (IOException ignore) { log.error(ignore.getMessage(),ignore); }
- }
-
- return toSerializable(decryptBytes);
- }
-
- private Serializable toSerializable(final byte[] decryptBytes) throws SecurityServiceException
- {
- ObjectInputStream inputStream = null;
- try
- {
- inputStream = new ObjectInputStream(new ByteArrayInputStream(decryptBytes));
- return (Serializable) inputStream.readObject();
- }
- catch (final IOException e)
- {
- throw new SecurityServiceException(e.getMessage(), e);
- }
- catch (final ClassNotFoundException e)
- {
- throw new SecurityServiceException(e.getMessage(), e);
- }
- finally
- {
- try { inputStream.close(); } catch (IOException ignore) { log.error(ignore.getMessage(), ignore); }
- }
- }
-
- private static byte[] copyBytes(byte[] bytes, int length)
- {
- if (bytes.length == length)
- {
- return bytes;
- }
-
- byte[] newBytes = new byte[length];
- for (int i = 0; i < length; i++)
- {
- newBytes[i] = bytes[i];
- }
- return newBytes;
- }
-
- private static Logger getLogger()
- {
- return Logger.getLogger(PrivateCryptoUtil.class);
- }
-
-}
Copied: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/internal/soa/esb/services/security/PrivateCryptoUtil.java (from rev 24846, labs/jbossesb/trunk/product/rosetta/src/org/jboss/internal/soa/esb/services/security/PrivateCryptoUtil.java)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/internal/soa/esb/services/security/PrivateCryptoUtil.java (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/internal/soa/esb/services/security/PrivateCryptoUtil.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -0,0 +1,259 @@
+/*
+ * JBoss, Home of Professional Open Source Copyright 2008, Red Hat Middleware
+ * LLC, and individual contributors by the @authors tag. See the copyright.txt
+ * in the distribution for a full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it under the
+ * terms of the GNU Lesser General Public License as published by the Free
+ * Software Foundation; either version 2.1 of the License, or (at your option)
+ * any later version.
+ *
+ * This software is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+ * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
+ * details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this software; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA, or see the FSF
+ * site: http://www.fsf.org.
+ */
+package org.jboss.internal.soa.esb.services.security;
+
+import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.ObjectInputStream;
+import java.io.ObjectOutputStream;
+import java.io.Serializable;
+import java.security.Key;
+import java.security.KeyStore;
+import java.security.KeyStoreException;
+import java.security.NoSuchAlgorithmException;
+import java.security.PrivateKey;
+import java.security.PublicKey;
+import java.security.UnrecoverableKeyException;
+import java.security.cert.Certificate;
+import java.security.cert.CertificateException;
+
+import org.apache.log4j.Logger;
+import org.jboss.soa.esb.common.Configuration;
+import org.jboss.soa.esb.common.Environment;
+import org.jboss.soa.esb.services.security.SecurityServiceException;
+import org.jboss.soa.esb.services.security.util.CryptoUtil;
+import org.jboss.soa.esb.util.ClassUtil;
+
+/**
+ *
+ * @author <a href="mailto:dbevenius at redhat.com">Daniel Bevenius</a>
+ *
+ */
+public enum PrivateCryptoUtil
+{
+ INSTANCE;
+
+ private Logger log;
+ private Key key;
+ private PublicKey publicKey;
+ private String transformation;
+
+ private PrivateCryptoUtil()
+ {
+ try
+ {
+ log = getLogger();
+ init();
+ }
+ catch (final Exception e)
+ {
+ throw new IllegalStateException(e.getMessage(), e);
+ }
+ }
+
+ private void init() throws SecurityServiceException
+ {
+ String keystorePath = Configuration.getSecurityServicePrivateKeystore();
+ if (keystorePath == null)
+ {
+ log.info("No private keystore was specified in jbossesb-properites.xml. Add '" + Environment.SECURITY_SERVICE_PUBLIC_KEYSTORE + "'");
+ }
+ else
+ {
+ try
+ {
+ String keystoreType = Configuration.getSecurityServicePrivateKeystoreType();
+ if (keystoreType == null)
+ {
+ keystoreType = KeyStore.getDefaultType();
+ }
+ String keystorePassword = Configuration.getSecurityServicePrivateKeystorePassword();
+ String privateKeyAlias = Configuration.getSecurityServicePrivateKeyAlias();
+ String privateKeyPass = Configuration.getSecurityServicePrivateKeyPassword();
+
+ try
+ {
+ KeyStore keystore = KeyStore.getInstance(keystoreType);
+ InputStream in = ClassUtil.getResourceAsStream(keystorePath, this.getClass());
+ if (in == null)
+ {
+ throw new SecurityServiceException("Could not locate public keystore using '" + keystorePath + "'");
+ }
+
+ // load the keystore contents
+ keystore.load(in, keystorePassword.toCharArray());
+ key = keystore.getKey(privateKeyAlias, privateKeyPass.toCharArray());
+ Certificate certificate = keystore.getCertificate(privateKeyAlias);
+ publicKey = certificate.getPublicKey();
+
+ // "algorithm/mode/padding" or defaults to "algorithm"
+ transformation = Configuration.getSecurityServicePrivateKeyTransformation();
+ if (transformation == null)
+ {
+ this.transformation = key.getAlgorithm();
+ }
+ }
+ finally
+ {
+ keystorePassword = null;
+ privateKeyAlias = null;
+ privateKeyPass = null;
+ }
+ }
+ catch (final KeyStoreException e)
+ {
+ throw new SecurityServiceException(e.getMessage(), e);
+ }
+ catch (final NoSuchAlgorithmException e)
+ {
+ throw new SecurityServiceException(e.getMessage(), e);
+ }
+ catch (final CertificateException e)
+ {
+ throw new SecurityServiceException(e.getMessage(), e);
+ }
+ catch (final IOException e)
+ {
+ throw new SecurityServiceException(e.getMessage(), e);
+ }
+ catch (final UnrecoverableKeyException e)
+ {
+ throw new SecurityServiceException(e.getMessage(), e);
+ }
+ }
+ }
+
+ private static byte[] getBytes(final Serializable ser) throws IOException
+ {
+ ByteArrayOutputStream bout = new ByteArrayOutputStream();
+ ObjectOutputStream oout = new ObjectOutputStream(bout);
+ oout.writeObject(ser);
+ return bout.toByteArray();
+ }
+
+ public byte[] encrypt(final Serializable object) throws SecurityServiceException
+ {
+ ByteArrayInputStream plainInStream;
+ try
+ {
+ plainInStream = new ByteArrayInputStream(getBytes(object));
+ }
+ catch (final IOException e)
+ {
+ throw new SecurityServiceException(e.getMessage(), e);
+ }
+
+ ByteArrayOutputStream encryptedOutStream = new ByteArrayOutputStream();
+
+ try
+ {
+ byte[] buf = new byte[100];
+ int bufLength;
+ while ( (bufLength = plainInStream.read(buf)) != -1)
+ {
+ byte[] tmp = CryptoUtil.encrypt(copyBytes(buf,bufLength),publicKey, transformation);
+ encryptedOutStream.write(tmp);
+ encryptedOutStream.flush();
+ }
+ return encryptedOutStream.toByteArray();
+ }
+ catch (final IOException e)
+ {
+ throw new SecurityServiceException(e.getMessage(), e);
+ }
+ }
+
+ public Serializable decrypt(final byte[] bytes) throws SecurityServiceException
+ {
+ ByteArrayInputStream encryptedBytesInStream = new ByteArrayInputStream(bytes);
+
+ ByteArrayOutputStream decryptedBytesOutStream = new ByteArrayOutputStream();
+
+ byte[] decryptBytes = null;
+ try
+ {
+ byte[] buf = new byte[128];
+ int bufLenth;
+ while ( (bufLenth = encryptedBytesInStream.read(buf)) != -1)
+ {
+ byte[] tmp = CryptoUtil.decrypt( copyBytes(buf,bufLenth),(PrivateKey)key, transformation);
+ decryptedBytesOutStream.write(tmp);
+ decryptedBytesOutStream.flush();
+ decryptBytes = decryptedBytesOutStream.toByteArray();
+ }
+ }
+ catch (final IOException e)
+ {
+ throw new SecurityServiceException(e.getMessage(), e);
+ }
+ finally
+ {
+ try { decryptedBytesOutStream.close(); } catch (IOException ignore) { log.error(ignore.getMessage(),ignore); }
+ }
+
+ return toSerializable(decryptBytes);
+ }
+
+ private Serializable toSerializable(final byte[] decryptBytes) throws SecurityServiceException
+ {
+ ObjectInputStream inputStream = null;
+ try
+ {
+ inputStream = new ObjectInputStream(new ByteArrayInputStream(decryptBytes));
+ return (Serializable) inputStream.readObject();
+ }
+ catch (final IOException e)
+ {
+ throw new SecurityServiceException(e.getMessage(), e);
+ }
+ catch (final ClassNotFoundException e)
+ {
+ throw new SecurityServiceException(e.getMessage(), e);
+ }
+ finally
+ {
+ try { inputStream.close(); } catch (IOException ignore) { log.error(ignore.getMessage(), ignore); }
+ }
+ }
+
+ private static byte[] copyBytes(byte[] bytes, int length)
+ {
+ if (bytes.length == length)
+ {
+ return bytes;
+ }
+
+ byte[] newBytes = new byte[length];
+ for (int i = 0; i < length; i++)
+ {
+ newBytes[i] = bytes[i];
+ }
+ return newBytes;
+ }
+
+ private static Logger getLogger()
+ {
+ return Logger.getLogger(PrivateCryptoUtil.class);
+ }
+
+}
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/internal/soa/esb/services/security/UserPassCallbackHandler.java
===================================================================
--- labs/jbossesb/trunk/product/rosetta/src/org/jboss/internal/soa/esb/services/security/UserPassCallbackHandler.java 2009-01-21 09:35:03 UTC (rev 24846)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/internal/soa/esb/services/security/UserPassCallbackHandler.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -1,87 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source Copyright 2008, Red Hat Middleware
- * LLC, and individual contributors by the @authors tag. See the copyright.txt
- * in the distribution for a full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it under the
- * terms of the GNU Lesser General Public License as published by the Free
- * Software Foundation; either version 2.1 of the License, or (at your option)
- * any later version.
- *
- * This software is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
- * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
- * details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this software; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA, or see the FSF
- * site: http://www.fsf.org.
- */
-package org.jboss.internal.soa.esb.services.security;
-
-import java.io.IOException;
-
-import javax.security.auth.callback.Callback;
-import javax.security.auth.callback.NameCallback;
-import javax.security.auth.callback.PasswordCallback;
-import javax.security.auth.callback.UnsupportedCallbackException;
-
-import org.apache.log4j.Logger;
-import org.jboss.soa.esb.services.security.SecurityConfig;
-import org.jboss.soa.esb.services.security.auth.AuthenticationRequest;
-
-/**
- *
- * @author <a href="mailto:dbevenius at redhat.com">Daniel Bevenius</a>
- *
- */
-public class UserPassCallbackHandler implements EsbCallbackHandler
-{
- private Logger log = Logger.getLogger(UserPassCallbackHandler.class);
-
- private AuthenticationRequest authRequest;
-
- public void handle(final Callback[] callbacks) throws IOException, UnsupportedCallbackException
- {
- if ( authRequest == null )
- throw new IllegalStateException("No AuthenticationRequest has been set");
-
- if (log.isDebugEnabled()) log.debug("Nr of callback to handle : " + callbacks.length);
- for (int i = 0; i < callbacks.length; i++)
- {
- if (log.isDebugEnabled()) log.debug("Callback" + callbacks[i].getClass().getName());
- if (callbacks[i] instanceof NameCallback)
- {
- NameCallback nc = (NameCallback) callbacks[i];
- nc.setName(authRequest.getPrincipal().getName());
- }
- else if (callbacks[i] instanceof PasswordCallback)
- {
- PasswordCallback pc = (PasswordCallback) callbacks[i];
- for (Object object : authRequest.getCredentials() )
- {
- if ( object instanceof char[] )
- {
- pc.setPassword((char[]) object);
- }
- else if ( object instanceof String )
- {
- pc.setPassword( ((String) object).toCharArray() );
- }
- }
- }
- else
- {
- throw new UnsupportedCallbackException(callbacks[i], "UserPassCallbackHandler");
- }
- }
- }
-
- public void setAuthenticationRequest(AuthenticationRequest authRequest)
- {
- this.authRequest = authRequest;
- }
-
- public void setSecurityConfig(SecurityConfig config) { }
-}
Copied: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/internal/soa/esb/services/security/UserPassCallbackHandler.java (from rev 24846, labs/jbossesb/trunk/product/rosetta/src/org/jboss/internal/soa/esb/services/security/UserPassCallbackHandler.java)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/internal/soa/esb/services/security/UserPassCallbackHandler.java (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/internal/soa/esb/services/security/UserPassCallbackHandler.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -0,0 +1,87 @@
+/*
+ * JBoss, Home of Professional Open Source Copyright 2008, Red Hat Middleware
+ * LLC, and individual contributors by the @authors tag. See the copyright.txt
+ * in the distribution for a full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it under the
+ * terms of the GNU Lesser General Public License as published by the Free
+ * Software Foundation; either version 2.1 of the License, or (at your option)
+ * any later version.
+ *
+ * This software is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+ * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
+ * details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this software; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA, or see the FSF
+ * site: http://www.fsf.org.
+ */
+package org.jboss.internal.soa.esb.services.security;
+
+import java.io.IOException;
+
+import javax.security.auth.callback.Callback;
+import javax.security.auth.callback.NameCallback;
+import javax.security.auth.callback.PasswordCallback;
+import javax.security.auth.callback.UnsupportedCallbackException;
+
+import org.apache.log4j.Logger;
+import org.jboss.soa.esb.services.security.SecurityConfig;
+import org.jboss.soa.esb.services.security.auth.AuthenticationRequest;
+
+/**
+ *
+ * @author <a href="mailto:dbevenius at redhat.com">Daniel Bevenius</a>
+ *
+ */
+public class UserPassCallbackHandler implements EsbCallbackHandler
+{
+ private Logger log = Logger.getLogger(UserPassCallbackHandler.class);
+
+ private AuthenticationRequest authRequest;
+
+ public void handle(final Callback[] callbacks) throws IOException, UnsupportedCallbackException
+ {
+ if ( authRequest == null )
+ throw new IllegalStateException("No AuthenticationRequest has been set");
+
+ if (log.isDebugEnabled()) log.debug("Nr of callback to handle : " + callbacks.length);
+ for (int i = 0; i < callbacks.length; i++)
+ {
+ if (log.isDebugEnabled()) log.debug("Callback" + callbacks[i].getClass().getName());
+ if (callbacks[i] instanceof NameCallback)
+ {
+ NameCallback nc = (NameCallback) callbacks[i];
+ nc.setName(authRequest.getPrincipal().getName());
+ }
+ else if (callbacks[i] instanceof PasswordCallback)
+ {
+ PasswordCallback pc = (PasswordCallback) callbacks[i];
+ for (Object object : authRequest.getCredentials() )
+ {
+ if ( object instanceof char[] )
+ {
+ pc.setPassword((char[]) object);
+ }
+ else if ( object instanceof String )
+ {
+ pc.setPassword( ((String) object).toCharArray() );
+ }
+ }
+ }
+ else
+ {
+ throw new UnsupportedCallbackException(callbacks[i], "UserPassCallbackHandler");
+ }
+ }
+ }
+
+ public void setAuthenticationRequest(AuthenticationRequest authRequest)
+ {
+ this.authRequest = authRequest;
+ }
+
+ public void setSecurityConfig(SecurityConfig config) { }
+}
Copied: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/internal/soa/esb/services/security/jaas (from rev 24846, labs/jbossesb/trunk/product/rosetta/src/org/jboss/internal/soa/esb/services/security/jaas)
Modified: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/internal/soa/esb/util/FtpImpl.java
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/internal/soa/esb/util/FtpImpl.java 2009-01-21 14:47:17 UTC (rev 24849)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/internal/soa/esb/util/FtpImpl.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -60,76 +60,78 @@
public class FtpImpl implements RemoteFileSystem
{
- private static final Logger _logger = Logger.getLogger(FtpImpl.class);
+ private static final Logger _logger = Logger.getLogger(FtpImpl.class);
- private static final String TMP_SUFFIX = ".rosettaPart";
+ private static final String TMP_SUFFIX = ".rosettaPart";
- private boolean m_bPassive;
+ private boolean m_bPassive;
- private int m_iPort;
- private int _timeout = 0;
+ private int m_iPort;
+ private int _timeout = 0;
- protected FTPClient m_oConn ;
+ protected FTPClient m_oConn ;
- private FTPEpr m_oEpr;
+ private FTPEpr m_oEpr;
- protected ConfigTree m_oParms;
+ protected ConfigTree m_oParms;
- private String m_sFtpServer, m_sUser, m_sPasswd;
+ private String m_sFtpServer, m_sUser, m_sPasswd;
- private String m_sRemoteDir, m_sLocalDir;
+ private String m_sRemoteDir, m_sLocalDir;
+
+ private int renameRetry;
- /**
- * Checks validity and completeness of parameters, and keeps the info
- * internally for subsequent FTP requests
- *
- * @param p_oP
- * ConfigTree
- * @throws ConfigurationException :
- * if parameters are invalid or incomplete
- * <li>Parameters: (XML attributes at the root level) </li>
- * <li> ftpServer = name or IP of FTP server </li>
- * <li> ftpUser = login ID for server </li>
- * <li> ftpPassword </li>
- * <li> localDirURI = absolute path in the local filesystem
- * </li>
- * <li> remoteDirURI = remote path is relative to ftp user home
- * in remote computer </li>
- */
+ /**
+ * Checks validity and completeness of parameters, and keeps the info
+ * internally for subsequent FTP requests
+ *
+ * @param p_oP
+ * ConfigTree
+ * @throws ConfigurationException :
+ * if parameters are invalid or incomplete
+ * <li>Parameters: (XML attributes at the root level) </li>
+ * <li> ftpServer = name or IP of FTP server </li>
+ * <li> ftpUser = login ID for server </li>
+ * <li> ftpPassword </li>
+ * <li> localDirURI = absolute path in the local filesystem
+ * </li>
+ * <li> remoteDirURI = remote path is relative to ftp user home
+ * in remote computer </li>
+ */
- public FtpImpl (ConfigTree p_oP, boolean p_bConnect)
- throws ConfigurationException, RemoteFileSystemException
- {
- m_oParms = p_oP;
- initialize(p_bConnect);
- }
+ public FtpImpl (ConfigTree p_oP, boolean p_bConnect)
+ throws ConfigurationException, RemoteFileSystemException
+ {
+ m_oParms = p_oP;
+ initialize(p_bConnect);
+ }
- public FtpImpl (FTPEpr p_oP, boolean p_bConnect)
- throws ConfigurationException, RemoteFileSystemException
- {
- this(p_oP) ;
- // TODO there is still a bit of space for improvements here.
- configTreeFromEpr() ;
-
- initialize(p_bConnect) ;
- }
+ public FtpImpl (FTPEpr p_oP, boolean p_bConnect)
+ throws ConfigurationException, RemoteFileSystemException
+ {
+ this(p_oP) ;
+ // TODO there is still a bit of space for improvements here.
+ configTreeFromEpr() ;
+
+ initialize(p_bConnect) ;
+ }
- public FtpImpl (FTPEpr p_oP)
- throws ConfigurationException
- {
- m_oEpr = p_oP;
+ public FtpImpl (FTPEpr p_oP)
+ throws ConfigurationException
+ {
+ m_oEpr = p_oP;
- final URI uri;
- try
- {
- uri = m_oEpr.getURI();
- }
- catch (URISyntaxException e)
- {
- throw new ConfigurationException(e);
- }
+ final URI uri;
+ try
+ {
+ uri = m_oEpr.getURI();
+ }
+ catch (URISyntaxException e)
+ {
+ throw new ConfigurationException(e);
+ }
- m_sFtpServer = uri.getHost();
+ m_sFtpServer = uri.getHost();
String[] sa = null;
@@ -145,19 +147,19 @@
m_sUser = sa[0] ;
}
- m_sRemoteDir = uri.getPath();
+ m_sRemoteDir = uri.getPath();
- final String tmpdir = System.getProperty("java.io.tmpdir");
- if ((m_sRemoteDir == null) || (m_sRemoteDir.equals("")))
- m_sRemoteDir = ModulePropertyManager.getPropertyManager(
- ModulePropertyManager.TRANSPORTS_MODULE).getProperty(
- Environment.FTP_REMOTEDIR, tmpdir);
+ final String tmpdir = System.getProperty("java.io.tmpdir");
+ if ((m_sRemoteDir == null) || (m_sRemoteDir.equals("")))
+ m_sRemoteDir = ModulePropertyManager.getPropertyManager(
+ ModulePropertyManager.TRANSPORTS_MODULE).getProperty(
+ Environment.FTP_REMOTEDIR, tmpdir);
- m_iPort = uri.getPort();
+ m_iPort = uri.getPort();
- m_sLocalDir = ModulePropertyManager.getPropertyManager(
- ModulePropertyManager.TRANSPORTS_MODULE).getProperty(
- Environment.FTP_LOCALDIR, tmpdir);
+ m_sLocalDir = ModulePropertyManager.getPropertyManager(
+ ModulePropertyManager.TRANSPORTS_MODULE).getProperty(
+ Environment.FTP_LOCALDIR, tmpdir);
File oLocalDir = new File(m_sLocalDir);
if(!oLocalDir.exists()) {
@@ -168,106 +170,125 @@
m_bPassive = m_oEpr.getPassive();
- String timeout = ModulePropertyManager.getPropertyManager(ModulePropertyManager.TRANSPORTS_MODULE).getProperty(Environment.FTP_SOCKET_TIMEOUT, null);
-
- if (timeout != null)
- {
- try
- {
- _timeout = Integer.parseInt(timeout);
- }
- catch (NumberFormatException ex)
- {
- throw new ConfigurationException("Invalid timeout specified.", ex);
- }
- }
- else
- _timeout = 0;
- }
+ String timeout = ModulePropertyManager.getPropertyManager(ModulePropertyManager.TRANSPORTS_MODULE).getProperty(Environment.FTP_SOCKET_TIMEOUT, null);
+
+ if (timeout != null)
+ {
+ try
+ {
+ _timeout = Integer.parseInt(timeout);
+ }
+ catch (NumberFormatException ex)
+ {
+ throw new ConfigurationException("Invalid timeout specified.", ex);
+ }
+ }
+ else
+ _timeout = 0;
+ }
- public FtpImpl (List<KeyValuePair> p_oAttribs, boolean p_bConnect)
- throws ConfigurationException, RemoteFileSystemException
- {
- m_oParms = new ConfigTree("fromProps");
- for (KeyValuePair oCurr : p_oAttribs)
- m_oParms.setAttribute(oCurr.getKey(), oCurr.getValue());
- initialize(p_bConnect);
- }
+ public FtpImpl (List<KeyValuePair> p_oAttribs, boolean p_bConnect)
+ throws ConfigurationException, RemoteFileSystemException
+ {
+ m_oParms = new ConfigTree("fromProps");
+ for (KeyValuePair oCurr : p_oAttribs)
+ m_oParms.setAttribute(oCurr.getKey(), oCurr.getValue());
+ initialize(p_bConnect);
+ }
- protected void checkParms () throws ConfigurationException
- {
- String att = m_oParms.getAttribute(FileEpr.URL_TAG);
- URI uri = null;
-
- try
- {
- if (att != null)
- uri = new URI(att);
- }
- catch (URISyntaxException ex)
- {
- throw new ConfigurationException(ex);
- }
-
- m_sFtpServer = (null != uri) ? uri.getHost() : m_oParms
- .getAttribute(PARMS_FTP_SERVER);
- if (null == m_sFtpServer)
- throw new ConfigurationException("No FTP server specified");
+ protected void checkParms () throws ConfigurationException
+ {
+ String att = m_oParms.getAttribute(FileEpr.URL_TAG);
+ URI uri = null;
+
+ try
+ {
+ if (att != null)
+ uri = new URI(att);
+ }
+ catch (URISyntaxException ex)
+ {
+ throw new ConfigurationException(ex);
+ }
+
+ m_sFtpServer = (null != uri) ? uri.getHost() : m_oParms
+ .getAttribute(PARMS_FTP_SERVER);
+ if (null == m_sFtpServer)
+ throw new ConfigurationException("No FTP server specified");
- String[] sa = (null == uri) ? null : uri.getUserInfo().split(":");
- m_sUser = (null != sa) ? sa[0] : m_oParms.getAttribute(PARMS_USER);
- if (null == m_sUser)
- throw new ConfigurationException("No username specified for FTP");
+ String[] sa = (null == uri) ? null : uri.getUserInfo().split(":");
+ m_sUser = (null != sa) ? sa[0] : m_oParms.getAttribute(PARMS_USER);
+ if (null == m_sUser)
+ throw new ConfigurationException("No username specified for FTP");
- m_sPasswd = ((null != sa) && (sa.length > 1)) ? sa[1] : m_oParms.getAttribute(PARMS_PASSWD);
+ m_sPasswd = ((null != sa) && (sa.length > 1)) ? sa[1] : m_oParms.getAttribute(PARMS_PASSWD);
- m_sRemoteDir = (null != uri) ? uri.getPath() : m_oParms
- .getAttribute(PARMS_REMOTE_DIR);
- if (null == m_sRemoteDir) m_sRemoteDir = "";
+ m_sRemoteDir = (null != uri) ? uri.getPath() : m_oParms
+ .getAttribute(PARMS_REMOTE_DIR);
+ if (null == m_sRemoteDir) m_sRemoteDir = "";
- m_sLocalDir = m_oParms.getAttribute(PARMS_LOCAL_DIR);
- if (null == m_sLocalDir) m_sLocalDir = ".";
+ m_sLocalDir = m_oParms.getAttribute(PARMS_LOCAL_DIR);
+ if (null == m_sLocalDir) m_sLocalDir = ".";
- String sAux = m_oParms.getAttribute(PARMS_PORT);
- m_iPort = (null != uri) ? uri.getPort() : (null == sAux) ? 21 : Integer
- .parseInt(sAux);
-
- m_bPassive = false;
- sAux = m_oParms.getAttribute(PARMS_PASSIVE);
- m_bPassive = (null != sAux) && Boolean.parseBoolean(sAux);
+ String sAux = m_oParms.getAttribute(PARMS_PORT);
+ m_iPort = (null != uri) ? uri.getPort() : (null == sAux) ? 21 : Integer
+ .parseInt(sAux);
+
+ m_bPassive = false;
+ sAux = m_oParms.getAttribute(PARMS_PASSIVE);
+ m_bPassive = (null != sAux) && Boolean.parseBoolean(sAux);
+
+ String renameRetryString = ModulePropertyManager.getPropertyManager(
+ ModulePropertyManager.TRANSPORTS_MODULE).getProperty(
+ Environment.FTP_RENAME_RETRY, null);
- return;
- }
+ if (renameRetryString != null)
+ {
+ try
+ {
+ renameRetry = Integer.parseInt(renameRetryString);
+ }
+ catch (Exception ex)
+ {
+ throw new ConfigurationException("Invalid rename retry limit: "+renameRetryString);
+ }
+ }
+ else
+ renameRetry = DEFAULT_RENAME_RETRY_NUMBER;
+
+ if (renameRetry < 1)
+ renameRetry = 1;
+ }
- protected void configTreeFromEpr () throws RemoteFileSystemException
- {
- m_oParms = new ConfigTree("fromEpr");
- try
- {
- m_oParms.setAttribute(RemoteFileSystem.PARMS_FTP_SERVER,
- m_sFtpServer);
- m_oParms.setAttribute(RemoteFileSystem.PARMS_USER, m_sUser);
- if (m_sPasswd != null)
- m_oParms.setAttribute(RemoteFileSystem.PARMS_PASSWD, m_sPasswd);
- m_oParms.setAttribute(RemoteFileSystem.PARMS_REMOTE_DIR,
- m_sRemoteDir);
- if (m_iPort > 0)
- {
- m_oParms.setAttribute(RemoteFileSystem.PARMS_PORT, Integer
- .toString(m_iPort));
- }
- m_oParms
- .setAttribute(RemoteFileSystem.PARMS_LOCAL_DIR, m_sLocalDir);
- m_oParms.setAttribute(RemoteFileSystem.PARMS_ASCII, Boolean
- .toString(false));
- m_oParms.setAttribute(RemoteFileSystem.PARMS_PASSIVE, Boolean
- .toString(m_bPassive));
- }
- catch (Exception e)
- {
- throw new RemoteFileSystemException(e);
- }
- }
+ protected void configTreeFromEpr () throws RemoteFileSystemException
+ {
+ m_oParms = new ConfigTree("fromEpr");
+ try
+ {
+ m_oParms.setAttribute(RemoteFileSystem.PARMS_FTP_SERVER,
+ m_sFtpServer);
+ m_oParms.setAttribute(RemoteFileSystem.PARMS_USER, m_sUser);
+ if (m_sPasswd != null)
+ m_oParms.setAttribute(RemoteFileSystem.PARMS_PASSWD, m_sPasswd);
+ m_oParms.setAttribute(RemoteFileSystem.PARMS_REMOTE_DIR,
+ m_sRemoteDir);
+ if (m_iPort > 0)
+ {
+ m_oParms.setAttribute(RemoteFileSystem.PARMS_PORT, Integer
+ .toString(m_iPort));
+ }
+ m_oParms
+ .setAttribute(RemoteFileSystem.PARMS_LOCAL_DIR, m_sLocalDir);
+ m_oParms.setAttribute(RemoteFileSystem.PARMS_ASCII, Boolean
+ .toString(false));
+ m_oParms.setAttribute(RemoteFileSystem.PARMS_PASSIVE, Boolean
+ .toString(m_bPassive));
+ }
+ catch (Exception e)
+ {
+ throw new RemoteFileSystemException(e);
+ }
+ }
/*
* (non-Javadoc)
@@ -369,15 +390,15 @@
}
}
- /*
- * (non-Javadoc)
- *
- * @see org.jboss.soa.esb.util.RemoteFileSystem#getRemoteDir()
- */
- public String getRemoteDir ()
- {
- return m_sRemoteDir;
- }
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.jboss.soa.esb.util.RemoteFileSystem#getRemoteDir()
+ */
+ public String getRemoteDir ()
+ {
+ return m_sRemoteDir;
+ }
protected void initialize (boolean bConnect)
throws ConfigurationException, RemoteFileSystemException
@@ -444,25 +465,25 @@
}
}
- /*
- * (non-Javadoc)
- *
- * @see org.jboss.soa.esb.util.RemoteFileSystem#quit()
- */
- public void quit ()
- {
- if (null != m_oConn)
- {
- try
- {
- m_oConn.quit();
- m_oConn.disconnect() ;
- }
- catch (Exception e)
- {
- }
- }
- }
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.jboss.soa.esb.util.RemoteFileSystem#quit()
+ */
+ public void quit ()
+ {
+ if (null != m_oConn)
+ {
+ try
+ {
+ m_oConn.quit();
+ m_oConn.disconnect() ;
+ }
+ catch (Exception e)
+ {
+ }
+ }
+ }
/*
* (non-Javadoc)
@@ -586,10 +607,34 @@
{
throw new RemoteFileSystemException("Failed to upload contents: " + m_oConn.getReplyString()) ;
}
- if (!m_oConn.rename(sRemoteTmp, p_sRemoteName))
+
+ boolean retryProblem = true; // https://jira.jboss.org/jira/browse/JBESB-1995
+
+ for (int i = 0; i < renameRetry; i++)
{
+ if (m_oConn.rename(sRemoteTmp, p_sRemoteName))
+ {
+ retryProblem = false;
+
+ break;
+ }
+ else
+ {
+ if (i+1 < renameRetry)
+ {
+ try
+ {
+ Thread.sleep(DEFAULT_RENAME_RETRY_TIMEOUT);
+ }
+ catch (final Exception ex)
+ {
+ }
+ }
+ }
+ }
+
+ if (retryProblem)
throw new RemoteFileSystemException("Failed to rename file: " + m_oConn.getReplyString());
- }
}
catch (final IOException ioe)
{
Modified: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/internal/soa/esb/util/XMLHelper.java
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/internal/soa/esb/util/XMLHelper.java 2009-01-21 14:47:17 UTC (rev 24849)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/internal/soa/esb/util/XMLHelper.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -20,9 +20,11 @@
*/
package org.jboss.internal.soa.esb.util;
+import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.Reader;
+import java.io.StringReader;
import java.io.Writer;
import javax.xml.namespace.QName;
@@ -31,10 +33,17 @@
import javax.xml.stream.XMLStreamException;
import javax.xml.stream.XMLStreamReader;
import javax.xml.stream.XMLStreamWriter;
+import javax.xml.transform.Source;
+import javax.xml.transform.stream.StreamSource;
+import javax.xml.validation.Schema;
+import javax.xml.validation.SchemaFactory;
+import javax.xml.validation.Validator;
import org.jboss.internal.soa.esb.util.stax.ParsingSupport;
import org.jboss.internal.soa.esb.util.stax.StreamHelper;
+import org.jboss.soa.esb.util.ClassUtil;
import org.jboss.util.StringPropertyReplacer;
+import org.xml.sax.SAXException;
/**
* Helper class for manipulating XML documents.
@@ -51,6 +60,10 @@
* The XML output factory.
*/
private static final XMLOutputFactory XML_OUTPUT_FACTORY = XMLOutputFactory.newInstance() ;
+ /**
+ * The schema factory.
+ */
+ private static final SchemaFactory SCHEMA_FACTORY = SchemaFactory.newInstance( "http://www.w3.org/2001/XMLSchema" );
/**
* Get the XML stream reader.
@@ -149,6 +162,58 @@
streamWriter.writeEndDocument() ;
streamWriter.flush() ;
}
+
+ /**
+ * Get the schema for the specified resource.
+ * @param resource The schema resource to parse.
+ * @return The resource schema for validation.
+ * @throws SAXException For errors during parsing.
+ */
+ public static Schema getSchema(final String resource)
+ throws SAXException
+ {
+ final InputStream resourceIS = ClassUtil.getResourceAsStream(resource, XMLHelper.class) ;
+ return SCHEMA_FACTORY.newSchema(new StreamSource(resourceIS)) ;
+ }
+
+ /**
+ * Get the schema for the specified resources.
+ * @param resources The schema resources to parse.
+ * @return The resource schema for validation.
+ * @throws SAXException For errors during parsing.
+ */
+ public static Schema getSchema(final String[] resources)
+ throws SAXException
+ {
+ final int numResources = (resources == null ? 0 : resources.length) ;
+ final Source[] sources = new Source[numResources] ;
+ for(int count = 0 ; count < numResources ; count++)
+ {
+ final InputStream resourceIS = ClassUtil.getResourceAsStream(resources[count], XMLHelper.class) ;
+ sources[count] = new StreamSource(resourceIS) ;
+ }
+ return SCHEMA_FACTORY.newSchema(sources) ;
+ }
+
+ /**
+ * Validate the specified xml against the schema.
+ * @param schema The resource schema for validation.
+ * @param xml The XML to validate.
+ * @return true if valid, false otherwise.
+ */
+ public static boolean validate(final Schema schema, final String xml)
+ {
+ final Validator validator = schema.newValidator() ;
+ try
+ {
+ validator.validate(new StreamSource(new StringReader(xml))) ;
+ return true ;
+ }
+ catch (final IOException ioe) {} // fall through
+ catch (final SAXException saxe) {} // fall through
+
+ return false ;
+ }
/**
* Create the XML input factory.
Copied: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/internal/soa/esb/webservice (from rev 24846, labs/jbossesb/trunk/product/rosetta/src/org/jboss/internal/soa/esb/webservice)
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/internal/soa/esb/webservice/BaseWebService.java
===================================================================
--- labs/jbossesb/trunk/product/rosetta/src/org/jboss/internal/soa/esb/webservice/BaseWebService.java 2009-01-21 09:35:03 UTC (rev 24846)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/internal/soa/esb/webservice/BaseWebService.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -1,223 +0,0 @@
-/*
-* JBoss, Home of Professional Open Source
-* Copyright 2006, JBoss Inc., and individual contributors as indicated
-* by the @authors tag. See the copyright.txt in the distribution for a
-* full listing of individual contributors.
-*
-* This is free software; you can redistribute it and/or modify it
-* under the terms of the GNU Lesser General Public License as
-* published by the Free Software Foundation; either version 2.1 of
-* the License, or (at your option) any later version.
-*
-* This software is distributed in the hope that it will be useful,
-* but WITHOUT ANY WARRANTY; without even the implied warranty of
-* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-* Lesser General Public License for more details.
-*
-* You should have received a copy of the GNU Lesser General Public
-* License along with this software; if not, write to the Free
-* Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
-* 02110-1301 USA, or see the FSF site: http://www.fsf.org.
-*/
-package org.jboss.internal.soa.esb.webservice;
-
-import java.io.ByteArrayInputStream;
-import java.io.ByteArrayOutputStream;
-import java.io.PrintWriter;
-import java.io.StringWriter;
-import java.util.Iterator;
-
-import javax.xml.namespace.QName;
-import javax.xml.soap.Detail;
-import javax.xml.soap.Node;
-import javax.xml.soap.SOAPBody;
-import javax.xml.soap.SOAPElement;
-import javax.xml.soap.SOAPException;
-import javax.xml.soap.SOAPFault;
-import javax.xml.soap.SOAPMessage;
-import javax.xml.transform.stream.StreamResult;
-import javax.xml.ws.Provider;
-import javax.xml.ws.WebServiceException;
-
-import org.apache.log4j.Logger;
-import org.jboss.soa.esb.client.ServiceInvoker;
-import org.jboss.soa.esb.common.Environment;
-import org.jboss.soa.esb.common.ModulePropertyManager;
-import org.jboss.soa.esb.couriers.FaultMessageException;
-import org.jboss.soa.esb.dom.YADOMUtil;
-import org.jboss.soa.esb.listeners.message.MessageDeliverException;
-import org.jboss.soa.esb.message.Body;
-import org.jboss.soa.esb.message.Fault;
-import org.jboss.soa.esb.message.Message;
-import org.jboss.soa.esb.message.format.MessageFactory;
-import org.w3c.dom.Document;
-
-import com.arjuna.common.util.propertyservice.PropertyManager;
-
-
-/**
- * This is the abstract base class for a SOAP messages
- * @author kevin
- */
-public abstract class BaseWebService implements Provider<SOAPMessage>
-{
- private static final QName SERVER_FAULT_QN = new QName("http://schemas.xmlsoap.org/soap/envelope/", "Server") ;
-
- private static final boolean RETURN_STACK_TRACES ;
- private static final Logger LOGGER = Logger.getLogger(BaseWebService.class);
-
- protected final ServiceInvoker serviceInvoker ;
-
- protected BaseWebService(final String category, final String name)
- throws MessageDeliverException
- {
- serviceInvoker = new ServiceInvoker(category, name) ;
- }
-
- public SOAPMessage invoke(final SOAPMessage request)
- {
- final Message esbReq = MessageFactory.getInstance().getMessage() ;
- try
- {
- final SOAPBody soapBody = request.getSOAPBody() ;
- if (soapBody == null)
- {
- throw new WebServiceException("Missing SOAP body from request") ;
- }
- // There is a bug in JBossWS extractContentAsDocument so we do this ourselves
- final Iterator children = soapBody.getChildElements() ;
- boolean found = false ;
- while(children.hasNext())
- {
- final Node node = (Node)children.next() ;
- if (node instanceof SOAPElement)
- {
- if (found)
- {
- throw new SOAPException("Found multiple SOAPElements in SOAPBody") ;
- }
- final ByteArrayOutputStream byteStream = new ByteArrayOutputStream() ;
- YADOMUtil.serialize(node, new StreamResult(byteStream), true);
- byteStream.close();
- esbReq.getBody().add(byteStream.toString()) ;
- found = true ;
- }
- }
-
- if (!found)
- {
- throw new SOAPException("Could not find SOAPElement in SOAPBody") ;
- }
-
- final Message esbRes = deliverMessage(esbReq) ;
- if (esbRes != null)
- {
- final Object input = esbRes.getBody().get() ;
- if (input == null)
- {
- throw new SOAPException("Null response from service") ;
- }
- final String soapRes = input.toString();
-
- final Document respDoc = YADOMUtil.parseStream(new ByteArrayInputStream(soapRes.getBytes()),
- false, false, true);
- final SOAPMessage response = javax.xml.soap.MessageFactory.newInstance().createMessage();
- response.getSOAPBody().addDocument(respDoc) ;
- return response ;
- }
- else
- {
- // We should be able to return null here but this causes JBossWS to NPE.
- return javax.xml.soap.MessageFactory.newInstance().createMessage();
- }
- }
- catch (final WebServiceException wse)
- {
- throw wse ;
- }
- catch (final Exception ex)
- {
- try
- {
- SOAPMessage faultMsg = null;
- if (ex instanceof FaultMessageException)
- {
- final FaultMessageException fme = (FaultMessageException) ex ;
- final Message faultMessage = fme.getReturnedMessage() ;
- if (faultMessage != null)
- {
- final Body body = faultMessage.getBody() ;
- final QName faultCode = (QName)body.get(Fault.DETAIL_CODE_CONTENT) ;
- final String faultDescription = (String)body.get(Fault.DETAIL_DESCRIPTION_CONTENT) ;
- final String faultDetail = (String)body.get(Fault.DETAIL_DETAIL_CONTENT) ;
-
- if (faultCode != null)
- {
- faultMsg = javax.xml.soap.MessageFactory.newInstance().createMessage() ;
- final SOAPFault fault = faultMsg.getSOAPBody().addFault(faultCode, faultDescription) ;
- if (faultDetail != null)
- {
- try
- {
- final Document detailDoc = YADOMUtil.parseStream(new ByteArrayInputStream(faultDetail.getBytes()),
- false, false, true);
- final Detail detail = fault.addDetail() ;
- detail.appendChild(detailDoc.getDocumentElement()) ;
- }
- catch (final Exception ex2)
- {
- LOGGER.warn("Failed to parse fault detail", ex2) ;
- }
- }
- }
- else
- {
- final Throwable cause = fme.getCause() ;
- faultMsg = (cause != null) ? generateFault(cause) : generateFault(ex) ;
- }
- }
- }
-
- if (faultMsg == null)
- {
- faultMsg = generateFault(ex) ;
- }
- return faultMsg ;
- }
- catch (final SOAPException soape)
- {
- throw new WebServiceException("Unexpected exception generating fault response", soape) ;
- }
- }
- }
-
- private SOAPMessage generateFault(final Throwable th)
- throws SOAPException
- {
- final SOAPMessage faultMsg = javax.xml.soap.MessageFactory.newInstance().createMessage() ;
- if (RETURN_STACK_TRACES)
- {
- final StringWriter sw = new StringWriter() ;
- final PrintWriter pw = new PrintWriter(sw) ;
- th.printStackTrace(pw) ;
- pw.flush() ;
- pw.close() ;
- faultMsg.getSOAPBody().addFault(SERVER_FAULT_QN, sw.toString());
- }
- else
- {
- faultMsg.getSOAPBody().addFault(SERVER_FAULT_QN, th.getMessage());
- }
- return faultMsg ;
- }
-
- protected abstract Message deliverMessage(final Message request)
- throws Exception ;
-
- static
- {
- final PropertyManager propertyManager = ModulePropertyManager.getPropertyManager(ModulePropertyManager.TRANSPORTS_MODULE) ;
- final String returnStackTraces = propertyManager.getProperty(Environment.WS_RETURN_STACK_TRACE);
- RETURN_STACK_TRACES = Boolean.parseBoolean(returnStackTraces) ;
- }
-}
Copied: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/internal/soa/esb/webservice/BaseWebService.java (from rev 24846, labs/jbossesb/trunk/product/rosetta/src/org/jboss/internal/soa/esb/webservice/BaseWebService.java)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/internal/soa/esb/webservice/BaseWebService.java (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/internal/soa/esb/webservice/BaseWebService.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -0,0 +1,223 @@
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2006, JBoss Inc., and individual contributors as indicated
+* by the @authors tag. See the copyright.txt in the distribution for a
+* full listing of individual contributors.
+*
+* This is free software; you can redistribute it and/or modify it
+* under the terms of the GNU Lesser General Public License as
+* published by the Free Software Foundation; either version 2.1 of
+* the License, or (at your option) any later version.
+*
+* This software is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+* Lesser General Public License for more details.
+*
+* You should have received a copy of the GNU Lesser General Public
+* License along with this software; if not, write to the Free
+* Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+* 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+*/
+package org.jboss.internal.soa.esb.webservice;
+
+import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
+import java.io.PrintWriter;
+import java.io.StringWriter;
+import java.util.Iterator;
+
+import javax.xml.namespace.QName;
+import javax.xml.soap.Detail;
+import javax.xml.soap.Node;
+import javax.xml.soap.SOAPBody;
+import javax.xml.soap.SOAPElement;
+import javax.xml.soap.SOAPException;
+import javax.xml.soap.SOAPFault;
+import javax.xml.soap.SOAPMessage;
+import javax.xml.transform.stream.StreamResult;
+import javax.xml.ws.Provider;
+import javax.xml.ws.WebServiceException;
+
+import org.apache.log4j.Logger;
+import org.jboss.soa.esb.client.ServiceInvoker;
+import org.jboss.soa.esb.common.Environment;
+import org.jboss.soa.esb.common.ModulePropertyManager;
+import org.jboss.soa.esb.couriers.FaultMessageException;
+import org.jboss.soa.esb.dom.YADOMUtil;
+import org.jboss.soa.esb.listeners.message.MessageDeliverException;
+import org.jboss.soa.esb.message.Body;
+import org.jboss.soa.esb.message.Fault;
+import org.jboss.soa.esb.message.Message;
+import org.jboss.soa.esb.message.format.MessageFactory;
+import org.w3c.dom.Document;
+
+import com.arjuna.common.util.propertyservice.PropertyManager;
+
+
+/**
+ * This is the abstract base class for a SOAP messages
+ * @author kevin
+ */
+public abstract class BaseWebService implements Provider<SOAPMessage>
+{
+ private static final QName SERVER_FAULT_QN = new QName("http://schemas.xmlsoap.org/soap/envelope/", "Server") ;
+
+ private static final boolean RETURN_STACK_TRACES ;
+ private static final Logger LOGGER = Logger.getLogger(BaseWebService.class);
+
+ protected final ServiceInvoker serviceInvoker ;
+
+ protected BaseWebService(final String category, final String name)
+ throws MessageDeliverException
+ {
+ serviceInvoker = new ServiceInvoker(category, name) ;
+ }
+
+ public SOAPMessage invoke(final SOAPMessage request)
+ {
+ final Message esbReq = MessageFactory.getInstance().getMessage() ;
+ try
+ {
+ final SOAPBody soapBody = request.getSOAPBody() ;
+ if (soapBody == null)
+ {
+ throw new WebServiceException("Missing SOAP body from request") ;
+ }
+ // There is a bug in JBossWS extractContentAsDocument so we do this ourselves
+ final Iterator children = soapBody.getChildElements() ;
+ boolean found = false ;
+ while(children.hasNext())
+ {
+ final Node node = (Node)children.next() ;
+ if (node instanceof SOAPElement)
+ {
+ if (found)
+ {
+ throw new SOAPException("Found multiple SOAPElements in SOAPBody") ;
+ }
+ final ByteArrayOutputStream byteStream = new ByteArrayOutputStream() ;
+ YADOMUtil.serialize(node, new StreamResult(byteStream), true);
+ byteStream.close();
+ esbReq.getBody().add(byteStream.toString()) ;
+ found = true ;
+ }
+ }
+
+ if (!found)
+ {
+ throw new SOAPException("Could not find SOAPElement in SOAPBody") ;
+ }
+
+ final Message esbRes = deliverMessage(esbReq) ;
+ if (esbRes != null)
+ {
+ final Object input = esbRes.getBody().get() ;
+ if (input == null)
+ {
+ throw new SOAPException("Null response from service") ;
+ }
+ final String soapRes = input.toString();
+
+ final Document respDoc = YADOMUtil.parseStream(new ByteArrayInputStream(soapRes.getBytes()),
+ false, false, true);
+ final SOAPMessage response = javax.xml.soap.MessageFactory.newInstance().createMessage();
+ response.getSOAPBody().addDocument(respDoc) ;
+ return response ;
+ }
+ else
+ {
+ // We should be able to return null here but this causes JBossWS to NPE.
+ return javax.xml.soap.MessageFactory.newInstance().createMessage();
+ }
+ }
+ catch (final WebServiceException wse)
+ {
+ throw wse ;
+ }
+ catch (final Exception ex)
+ {
+ try
+ {
+ SOAPMessage faultMsg = null;
+ if (ex instanceof FaultMessageException)
+ {
+ final FaultMessageException fme = (FaultMessageException) ex ;
+ final Message faultMessage = fme.getReturnedMessage() ;
+ if (faultMessage != null)
+ {
+ final Body body = faultMessage.getBody() ;
+ final QName faultCode = (QName)body.get(Fault.DETAIL_CODE_CONTENT) ;
+ final String faultDescription = (String)body.get(Fault.DETAIL_DESCRIPTION_CONTENT) ;
+ final String faultDetail = (String)body.get(Fault.DETAIL_DETAIL_CONTENT) ;
+
+ if (faultCode != null)
+ {
+ faultMsg = javax.xml.soap.MessageFactory.newInstance().createMessage() ;
+ final SOAPFault fault = faultMsg.getSOAPBody().addFault(faultCode, faultDescription) ;
+ if (faultDetail != null)
+ {
+ try
+ {
+ final Document detailDoc = YADOMUtil.parseStream(new ByteArrayInputStream(faultDetail.getBytes()),
+ false, false, true);
+ final Detail detail = fault.addDetail() ;
+ detail.appendChild(detailDoc.getDocumentElement()) ;
+ }
+ catch (final Exception ex2)
+ {
+ LOGGER.warn("Failed to parse fault detail", ex2) ;
+ }
+ }
+ }
+ else
+ {
+ final Throwable cause = fme.getCause() ;
+ faultMsg = (cause != null) ? generateFault(cause) : generateFault(ex) ;
+ }
+ }
+ }
+
+ if (faultMsg == null)
+ {
+ faultMsg = generateFault(ex) ;
+ }
+ return faultMsg ;
+ }
+ catch (final SOAPException soape)
+ {
+ throw new WebServiceException("Unexpected exception generating fault response", soape) ;
+ }
+ }
+ }
+
+ private SOAPMessage generateFault(final Throwable th)
+ throws SOAPException
+ {
+ final SOAPMessage faultMsg = javax.xml.soap.MessageFactory.newInstance().createMessage() ;
+ if (RETURN_STACK_TRACES)
+ {
+ final StringWriter sw = new StringWriter() ;
+ final PrintWriter pw = new PrintWriter(sw) ;
+ th.printStackTrace(pw) ;
+ pw.flush() ;
+ pw.close() ;
+ faultMsg.getSOAPBody().addFault(SERVER_FAULT_QN, sw.toString());
+ }
+ else
+ {
+ faultMsg.getSOAPBody().addFault(SERVER_FAULT_QN, th.getMessage());
+ }
+ return faultMsg ;
+ }
+
+ protected abstract Message deliverMessage(final Message request)
+ throws Exception ;
+
+ static
+ {
+ final PropertyManager propertyManager = ModulePropertyManager.getPropertyManager(ModulePropertyManager.TRANSPORTS_MODULE) ;
+ final String returnStackTraces = propertyManager.getProperty(Environment.WS_RETURN_STACK_TRACE);
+ RETURN_STACK_TRACES = Boolean.parseBoolean(returnStackTraces) ;
+ }
+}
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/internal/soa/esb/webservice/ESBContractGenerator.java
===================================================================
--- labs/jbossesb/trunk/product/rosetta/src/org/jboss/internal/soa/esb/webservice/ESBContractGenerator.java 2009-01-21 09:35:03 UTC (rev 24846)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/internal/soa/esb/webservice/ESBContractGenerator.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -1,337 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2006, JBoss Inc., and others contributors as indicated
- * by the @authors tag. All rights reserved.
- * See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- * This copyrighted material is made available to anyone wishing to use,
- * modify, copy, or redistribute it subject to the terms and conditions
- * of the GNU Lesser General Public License, v. 2.1.
- * This program is distributed in the hope that it will be useful, but WITHOUT A
- * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
- * PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
- * You should have received a copy of the GNU Lesser General Public License,
- * v.2.1 along with this distribution; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
- * MA 02110-1301, USA.
- *
- * (C) 2005-2006, JBoss Inc.
- */
-package org.jboss.internal.soa.esb.webservice;
-
-import java.io.StringWriter;
-import java.security.AccessController;
-import java.security.PrivilegedActionException;
-import java.security.PrivilegedExceptionAction;
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-
-import javax.wsdl.Binding;
-import javax.wsdl.BindingFault;
-import javax.wsdl.BindingInput;
-import javax.wsdl.BindingOperation;
-import javax.wsdl.BindingOutput;
-import javax.wsdl.Definition;
-import javax.wsdl.Fault;
-import javax.wsdl.Input;
-import javax.wsdl.Message;
-import javax.wsdl.Operation;
-import javax.wsdl.Output;
-import javax.wsdl.Part;
-import javax.wsdl.PortType;
-import javax.wsdl.Types;
-import javax.wsdl.WSDLException;
-import javax.wsdl.extensions.soap.SOAPOperation;
-import javax.wsdl.factory.WSDLFactory;
-import javax.xml.namespace.QName;
-
-import org.jboss.soa.esb.ConfigurationException;
-import org.jboss.soa.esb.Service;
-import org.jboss.soa.esb.dom.YADOMUtil;
-import org.jboss.soa.esb.listeners.config.WebserviceInfo;
-import org.jboss.soa.esb.util.ClassUtil;
-import org.w3c.dom.Document;
-import org.w3c.dom.Element;
-import org.w3c.dom.Node;
-import org.w3c.dom.NodeList;
-
-import com.ibm.wsdl.extensions.schema.SchemaImpl;
-import com.ibm.wsdl.extensions.soap.SOAPAddressImpl;
-import com.ibm.wsdl.extensions.soap.SOAPBindingImpl;
-import com.ibm.wsdl.extensions.soap.SOAPBodyImpl;
-import com.ibm.wsdl.extensions.soap.SOAPFaultImpl;
-import com.ibm.wsdl.extensions.soap.SOAPOperationImpl;
-
-public class ESBContractGenerator {
- private static final QName XSD_QN = new QName("http://www.w3.org/2001/XMLSchema", "schema");
- private static WSDLFactory wsdlFactory ;
-
- public static String generateWSDL(final WebserviceInfo serviceConfig, final ESBServiceEndpointInfo serviceInfo)
- throws ConfigurationException {
- final Definition def = getWSDLFactory().newDefinition() ;
- final String namespace = serviceInfo.getNamespace() ;
- def.setTargetNamespace(namespace);
- def.addNamespace("tns", namespace);
- def.addNamespace("soap", "http://schemas.xmlsoap.org/wsdl/soap/");
- // add types
- Types types = def.createTypes();
- def.setTypes(types);
-
- Message reqMessage = null;
- Message resMessage = null;
- List<Message> faultMessages = null;
-
- String inXsd = serviceConfig.getInXsd();
- String outXsd = serviceConfig.getOutXsd();
- String faultXsd = serviceConfig.getFaultXsd();
-
- int nsSuffixCounter = 0 ;
- if (inXsd != null) {
- try {
- Document doc = YADOMUtil.parseStream(ClassUtil
- .getResourceAsStream(inXsd, ESBContractGenerator.class),
- false, false);
- if (doc != null) {
- reqMessage = addMessage(def, doc.getDocumentElement(),
- serviceInfo.getRequestName(), "in", ++nsSuffixCounter);
- }
- } catch (Exception e) {
- throw new ConfigurationException("File defined in inXsd attribute '" + inXsd + "' not found in classpath.", e);
- }
- }
-
- if (outXsd != null) {
- try {
- Document doc = YADOMUtil.parseStream(ClassUtil
- .getResourceAsStream(outXsd, ESBContractGenerator.class),
- false, false);
- if (doc != null) {
- resMessage = addMessage(def, doc.getDocumentElement(),
- serviceInfo.getResponseName(), "out", ++nsSuffixCounter);
- }
- } catch (Exception e) {
- throw new ConfigurationException("File defined in outXsd attribute '" + outXsd + "' not found in classpath.", e);
- }
-
- }
-
- if ((faultXsd != null) && !serviceInfo.isOneWay()) {
- try {
- final String[] xsds = faultXsd.split(",") ;
- faultMessages = new ArrayList<Message>();
- for(String xsd: xsds) {
- Document doc = YADOMUtil.parseStream(ClassUtil
- .getResourceAsStream(xsd, ESBContractGenerator.class),
- false, false);
- if (doc != null) {
- addFaultMessage(faultMessages, def, doc.getDocumentElement(),
- serviceInfo.getFaultName(), "fault", ++nsSuffixCounter);
- }
- }
- } catch (Exception e) {
- throw new ConfigurationException("File defined in faultXsd attribute '" + faultXsd + "' not found in classpath.", e);
- }
-
- }
-
- PortType portType = addPortType(def, serviceInfo, reqMessage,
- resMessage, faultMessages);
- Binding binding = addBinding(def, serviceInfo, portType);
- addService(def, serviceInfo, binding);
- StringWriter sw = new java.io.StringWriter();
- try {
- getWSDLFactory().newWSDLWriter().writeWSDL(def, sw);
- } catch (WSDLException e) {
- final Service service = serviceConfig.getService() ;
- throw new ConfigurationException("Failed to generate wsdl for service:" + service.getCategory() + "/" + service.getName() , e);
- }
- return sw.toString();
- }
-
- private static void addSchema(Types types, Element xsdElement) {
- SchemaImpl schemaImpl = new SchemaImpl();
- schemaImpl.setElement(xsdElement);
- schemaImpl.setElementType(XSD_QN);
- types.addExtensibilityElement(schemaImpl);
- }
-
- private static Message addMessage(Definition def, Element element, String msgName, String partName, int nsSuffixCounter) {
- String schemaNs = YADOMUtil
- .getAttribute(element, "targetNamespace", "");
- addSchema(def.getTypes(), element);
- if (def.getNamespace(schemaNs) == null) {
- def.addNamespace("ns" + nsSuffixCounter, schemaNs);
- }
- // add request message
- Node node = YADOMUtil.getNode(element, "/schema/element");
- Message msg = def.createMessage();
- msg.setQName(new QName(def.getTargetNamespace(), msgName));
- msg.setUndefined(false);
- Part part = def.createPart();
- part.setName(partName);
- part.setElementName(new QName(schemaNs, YADOMUtil.getAttribute(
- (Element) node, "name", "")));
- msg.addPart(part);
- def.addMessage(msg);
- return msg;
- }
-
- private static void addFaultMessage(final List<Message> faultMessages,
- Definition def, Element element, String msgName, String partName,
- int nsSuffixCounter) {
- String schemaNs = YADOMUtil
- .getAttribute(element, "targetNamespace", "");
- addSchema(def.getTypes(), element);
- if (def.getNamespace(schemaNs) == null) {
- def.addNamespace("ns" + nsSuffixCounter, schemaNs);
- }
- // add request message
- NodeList nodes = YADOMUtil.getNodeList(element, "/schema/element");
- for (int i = 0; i < nodes.getLength(); i++) {
- final int nameIndex = i + 1;
- Node node = nodes.item(0);
- Message msg = def.createMessage();
- msg.setQName(new QName(def.getTargetNamespace(), msgName
- + nameIndex));
- msg.setUndefined(false);
- Part part = def.createPart();
- part.setName(partName + nameIndex);
- part.setElementName(new QName(schemaNs, YADOMUtil.getAttribute(
- (Element) node, "name", "")));
- msg.addPart(part);
- def.addMessage(msg);
- faultMessages.add(msg);
- }
- }
-
- private static PortType addPortType(Definition def, final ESBServiceEndpointInfo serviceInfo,
- Message inMessage, Message outMessage, List<Message> faultMessages) {
- // add port type
- PortType portType = def.createPortType();
- portType.setQName(new QName(def.getTargetNamespace(), serviceInfo.getPortName())) ;
- Operation op = def.createOperation();
- op.setUndefined(false);
- op.setName(serviceInfo.getOperationName());
- if (inMessage != null) {
- Input in = def.createInput();
- in.setMessage(inMessage);
- in.setName(inMessage.getQName().getLocalPart());
- op.setInput(in);
- }
- if (outMessage != null) {
- Output out = def.createOutput();
- out.setMessage(outMessage);
- out.setName(outMessage.getQName().getLocalPart());
- op.setOutput(out);
- }
-
- int count = 1 ;
- if (faultMessages != null) {
- for (Message message : faultMessages) {
- Fault fault = def.createFault();
- fault.setMessage(message);
- fault.setName("fault" + (count++));
- op.addFault(fault);
- }
- }
- portType.addOperation(op);
- portType.setUndefined(false);
- def.addPortType(portType);
- return portType;
- }
-
- private static Binding addBinding(Definition def, final ESBServiceEndpointInfo serviceInfo, PortType portType) {
- // add binding
- Binding binding = def.createBinding();
- binding.setUndefined(false);
- binding.setPortType(portType);
- binding.setQName(new QName(def.getTargetNamespace(), serviceInfo.getBindingName())) ;
- SOAPBindingImpl soapBinding = new SOAPBindingImpl();
- soapBinding.setStyle("document");
- soapBinding.setTransportURI("http://schemas.xmlsoap.org/soap/http");
- binding.addExtensibilityElement(soapBinding);
-
- BindingOperation bop = def.createBindingOperation();
-
- bop.setName(serviceInfo.getOperationName());
-
- Operation op = (Operation) portType.getOperations().get(0);
- bop.setOperation(op);
- SOAPOperation soapOperation = new SOAPOperationImpl() ;
- soapOperation.setSoapActionURI(serviceInfo.getAction()) ;
- bop.addExtensibilityElement(soapOperation) ;
-
- if (op.getInput() != null) {
- BindingInput binput = def.createBindingInput();
- bop.setBindingInput(binput);
- SOAPBodyImpl soapBody = new SOAPBodyImpl();
- soapBody.setUse("literal");
- binput.setName(serviceInfo.getRequestName()) ;
- binput.addExtensibilityElement(soapBody);
- }
- if (op.getOutput() != null) {
- BindingOutput boutput = def.createBindingOutput();
- bop.setBindingOutput(boutput);
- SOAPBodyImpl soapBody = new SOAPBodyImpl();
- soapBody.setUse("literal");
- boutput.setName(serviceInfo.getResponseName()) ;
- boutput.addExtensibilityElement(soapBody);
- }
- final Map faults = op.getFaults() ;
- if (faults != null) {
- Iterator iterator = op.getFaults().values().iterator();
- while (iterator.hasNext()) {
- Fault fault = (Fault) iterator.next();
- BindingFault bfault = def.createBindingFault();
- bfault.setName(fault.getName());
- bop.addBindingFault(bfault);
- SOAPFaultImpl soapFault = new SOAPFaultImpl();
- soapFault.setName(fault.getName());
- soapFault.setUse("literal");
- bfault.addExtensibilityElement(soapFault);
- }
- }
- binding.addBindingOperation(bop);
- def.addBinding(binding);
- return binding;
-
- }
-
- private static void addService(Definition def, final ESBServiceEndpointInfo serviceInfo, Binding binding) {
- // create service
- javax.wsdl.Service service = def.createService();
- service.setQName(new QName(def.getTargetNamespace(), serviceInfo.getServiceName()));
- javax.wsdl.Port port = def.createPort();
- port.setBinding(binding);
- port.setName(serviceInfo.getPortName());
- SOAPAddressImpl soapAddress = new SOAPAddressImpl();
- soapAddress.setLocationURI("http://change_this_URI/"+serviceInfo.getServletPath());
- port.addExtensibilityElement(soapAddress);
- service.addPort(port);
- def.addService(service);
- }
-
- private synchronized static WSDLFactory getWSDLFactory()
- throws ConfigurationException
- {
- if (wsdlFactory == null)
- {
- try
- {
- wsdlFactory = AccessController.doPrivileged(new PrivilegedExceptionAction<WSDLFactory>() {
- public WSDLFactory run() throws WSDLException
- {
- return WSDLFactory.newInstance();
- }
- }) ;
- }
- catch (final PrivilegedActionException pae)
- {
- throw new ConfigurationException("Failed to instantiate the WSDL factory", pae.getCause()) ;
- }
- }
- return wsdlFactory ;
- }
-}
Copied: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/internal/soa/esb/webservice/ESBContractGenerator.java (from rev 24846, labs/jbossesb/trunk/product/rosetta/src/org/jboss/internal/soa/esb/webservice/ESBContractGenerator.java)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/internal/soa/esb/webservice/ESBContractGenerator.java (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/internal/soa/esb/webservice/ESBContractGenerator.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -0,0 +1,337 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and others contributors as indicated
+ * by the @authors tag. All rights reserved.
+ * See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License, v. 2.1.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+ * PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
+ * You should have received a copy of the GNU Lesser General Public License,
+ * v.2.1 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301, USA.
+ *
+ * (C) 2005-2006, JBoss Inc.
+ */
+package org.jboss.internal.soa.esb.webservice;
+
+import java.io.StringWriter;
+import java.security.AccessController;
+import java.security.PrivilegedActionException;
+import java.security.PrivilegedExceptionAction;
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+
+import javax.wsdl.Binding;
+import javax.wsdl.BindingFault;
+import javax.wsdl.BindingInput;
+import javax.wsdl.BindingOperation;
+import javax.wsdl.BindingOutput;
+import javax.wsdl.Definition;
+import javax.wsdl.Fault;
+import javax.wsdl.Input;
+import javax.wsdl.Message;
+import javax.wsdl.Operation;
+import javax.wsdl.Output;
+import javax.wsdl.Part;
+import javax.wsdl.PortType;
+import javax.wsdl.Types;
+import javax.wsdl.WSDLException;
+import javax.wsdl.extensions.soap.SOAPOperation;
+import javax.wsdl.factory.WSDLFactory;
+import javax.xml.namespace.QName;
+
+import org.jboss.soa.esb.ConfigurationException;
+import org.jboss.soa.esb.Service;
+import org.jboss.soa.esb.dom.YADOMUtil;
+import org.jboss.soa.esb.listeners.config.WebserviceInfo;
+import org.jboss.soa.esb.util.ClassUtil;
+import org.w3c.dom.Document;
+import org.w3c.dom.Element;
+import org.w3c.dom.Node;
+import org.w3c.dom.NodeList;
+
+import com.ibm.wsdl.extensions.schema.SchemaImpl;
+import com.ibm.wsdl.extensions.soap.SOAPAddressImpl;
+import com.ibm.wsdl.extensions.soap.SOAPBindingImpl;
+import com.ibm.wsdl.extensions.soap.SOAPBodyImpl;
+import com.ibm.wsdl.extensions.soap.SOAPFaultImpl;
+import com.ibm.wsdl.extensions.soap.SOAPOperationImpl;
+
+public class ESBContractGenerator {
+ private static final QName XSD_QN = new QName("http://www.w3.org/2001/XMLSchema", "schema");
+ private static WSDLFactory wsdlFactory ;
+
+ public static String generateWSDL(final WebserviceInfo serviceConfig, final ESBServiceEndpointInfo serviceInfo)
+ throws ConfigurationException {
+ final Definition def = getWSDLFactory().newDefinition() ;
+ final String namespace = serviceInfo.getNamespace() ;
+ def.setTargetNamespace(namespace);
+ def.addNamespace("tns", namespace);
+ def.addNamespace("soap", "http://schemas.xmlsoap.org/wsdl/soap/");
+ // add types
+ Types types = def.createTypes();
+ def.setTypes(types);
+
+ Message reqMessage = null;
+ Message resMessage = null;
+ List<Message> faultMessages = null;
+
+ String inXsd = serviceConfig.getInXsd();
+ String outXsd = serviceConfig.getOutXsd();
+ String faultXsd = serviceConfig.getFaultXsd();
+
+ int nsSuffixCounter = 0 ;
+ if (inXsd != null) {
+ try {
+ Document doc = YADOMUtil.parseStream(ClassUtil
+ .getResourceAsStream(inXsd, ESBContractGenerator.class),
+ false, false);
+ if (doc != null) {
+ reqMessage = addMessage(def, doc.getDocumentElement(),
+ serviceInfo.getRequestName(), "in", ++nsSuffixCounter);
+ }
+ } catch (Exception e) {
+ throw new ConfigurationException("File defined in inXsd attribute '" + inXsd + "' not found in classpath.", e);
+ }
+ }
+
+ if (outXsd != null) {
+ try {
+ Document doc = YADOMUtil.parseStream(ClassUtil
+ .getResourceAsStream(outXsd, ESBContractGenerator.class),
+ false, false);
+ if (doc != null) {
+ resMessage = addMessage(def, doc.getDocumentElement(),
+ serviceInfo.getResponseName(), "out", ++nsSuffixCounter);
+ }
+ } catch (Exception e) {
+ throw new ConfigurationException("File defined in outXsd attribute '" + outXsd + "' not found in classpath.", e);
+ }
+
+ }
+
+ if ((faultXsd != null) && !serviceInfo.isOneWay()) {
+ try {
+ final String[] xsds = faultXsd.split(",") ;
+ faultMessages = new ArrayList<Message>();
+ for(String xsd: xsds) {
+ Document doc = YADOMUtil.parseStream(ClassUtil
+ .getResourceAsStream(xsd, ESBContractGenerator.class),
+ false, false);
+ if (doc != null) {
+ addFaultMessage(faultMessages, def, doc.getDocumentElement(),
+ serviceInfo.getFaultName(), "fault", ++nsSuffixCounter);
+ }
+ }
+ } catch (Exception e) {
+ throw new ConfigurationException("File defined in faultXsd attribute '" + faultXsd + "' not found in classpath.", e);
+ }
+
+ }
+
+ PortType portType = addPortType(def, serviceInfo, reqMessage,
+ resMessage, faultMessages);
+ Binding binding = addBinding(def, serviceInfo, portType);
+ addService(def, serviceInfo, binding);
+ StringWriter sw = new java.io.StringWriter();
+ try {
+ getWSDLFactory().newWSDLWriter().writeWSDL(def, sw);
+ } catch (WSDLException e) {
+ final Service service = serviceConfig.getService() ;
+ throw new ConfigurationException("Failed to generate wsdl for service:" + service.getCategory() + "/" + service.getName() , e);
+ }
+ return sw.toString();
+ }
+
+ private static void addSchema(Types types, Element xsdElement) {
+ SchemaImpl schemaImpl = new SchemaImpl();
+ schemaImpl.setElement(xsdElement);
+ schemaImpl.setElementType(XSD_QN);
+ types.addExtensibilityElement(schemaImpl);
+ }
+
+ private static Message addMessage(Definition def, Element element, String msgName, String partName, int nsSuffixCounter) {
+ String schemaNs = YADOMUtil
+ .getAttribute(element, "targetNamespace", "");
+ addSchema(def.getTypes(), element);
+ if (def.getNamespace(schemaNs) == null) {
+ def.addNamespace("ns" + nsSuffixCounter, schemaNs);
+ }
+ // add request message
+ Node node = YADOMUtil.getNode(element, "/schema/element");
+ Message msg = def.createMessage();
+ msg.setQName(new QName(def.getTargetNamespace(), msgName));
+ msg.setUndefined(false);
+ Part part = def.createPart();
+ part.setName(partName);
+ part.setElementName(new QName(schemaNs, YADOMUtil.getAttribute(
+ (Element) node, "name", "")));
+ msg.addPart(part);
+ def.addMessage(msg);
+ return msg;
+ }
+
+ private static void addFaultMessage(final List<Message> faultMessages,
+ Definition def, Element element, String msgName, String partName,
+ int nsSuffixCounter) {
+ String schemaNs = YADOMUtil
+ .getAttribute(element, "targetNamespace", "");
+ addSchema(def.getTypes(), element);
+ if (def.getNamespace(schemaNs) == null) {
+ def.addNamespace("ns" + nsSuffixCounter, schemaNs);
+ }
+ // add request message
+ NodeList nodes = YADOMUtil.getNodeList(element, "/schema/element");
+ for (int i = 0; i < nodes.getLength(); i++) {
+ final int nameIndex = i + 1;
+ Node node = nodes.item(0);
+ Message msg = def.createMessage();
+ msg.setQName(new QName(def.getTargetNamespace(), msgName
+ + nameIndex));
+ msg.setUndefined(false);
+ Part part = def.createPart();
+ part.setName(partName + nameIndex);
+ part.setElementName(new QName(schemaNs, YADOMUtil.getAttribute(
+ (Element) node, "name", "")));
+ msg.addPart(part);
+ def.addMessage(msg);
+ faultMessages.add(msg);
+ }
+ }
+
+ private static PortType addPortType(Definition def, final ESBServiceEndpointInfo serviceInfo,
+ Message inMessage, Message outMessage, List<Message> faultMessages) {
+ // add port type
+ PortType portType = def.createPortType();
+ portType.setQName(new QName(def.getTargetNamespace(), serviceInfo.getPortName())) ;
+ Operation op = def.createOperation();
+ op.setUndefined(false);
+ op.setName(serviceInfo.getOperationName());
+ if (inMessage != null) {
+ Input in = def.createInput();
+ in.setMessage(inMessage);
+ in.setName(inMessage.getQName().getLocalPart());
+ op.setInput(in);
+ }
+ if (outMessage != null) {
+ Output out = def.createOutput();
+ out.setMessage(outMessage);
+ out.setName(outMessage.getQName().getLocalPart());
+ op.setOutput(out);
+ }
+
+ int count = 1 ;
+ if (faultMessages != null) {
+ for (Message message : faultMessages) {
+ Fault fault = def.createFault();
+ fault.setMessage(message);
+ fault.setName("fault" + (count++));
+ op.addFault(fault);
+ }
+ }
+ portType.addOperation(op);
+ portType.setUndefined(false);
+ def.addPortType(portType);
+ return portType;
+ }
+
+ private static Binding addBinding(Definition def, final ESBServiceEndpointInfo serviceInfo, PortType portType) {
+ // add binding
+ Binding binding = def.createBinding();
+ binding.setUndefined(false);
+ binding.setPortType(portType);
+ binding.setQName(new QName(def.getTargetNamespace(), serviceInfo.getBindingName())) ;
+ SOAPBindingImpl soapBinding = new SOAPBindingImpl();
+ soapBinding.setStyle("document");
+ soapBinding.setTransportURI("http://schemas.xmlsoap.org/soap/http");
+ binding.addExtensibilityElement(soapBinding);
+
+ BindingOperation bop = def.createBindingOperation();
+
+ bop.setName(serviceInfo.getOperationName());
+
+ Operation op = (Operation) portType.getOperations().get(0);
+ bop.setOperation(op);
+ SOAPOperation soapOperation = new SOAPOperationImpl() ;
+ soapOperation.setSoapActionURI(serviceInfo.getAction()) ;
+ bop.addExtensibilityElement(soapOperation) ;
+
+ if (op.getInput() != null) {
+ BindingInput binput = def.createBindingInput();
+ bop.setBindingInput(binput);
+ SOAPBodyImpl soapBody = new SOAPBodyImpl();
+ soapBody.setUse("literal");
+ binput.setName(serviceInfo.getRequestName()) ;
+ binput.addExtensibilityElement(soapBody);
+ }
+ if (op.getOutput() != null) {
+ BindingOutput boutput = def.createBindingOutput();
+ bop.setBindingOutput(boutput);
+ SOAPBodyImpl soapBody = new SOAPBodyImpl();
+ soapBody.setUse("literal");
+ boutput.setName(serviceInfo.getResponseName()) ;
+ boutput.addExtensibilityElement(soapBody);
+ }
+ final Map faults = op.getFaults() ;
+ if (faults != null) {
+ Iterator iterator = op.getFaults().values().iterator();
+ while (iterator.hasNext()) {
+ Fault fault = (Fault) iterator.next();
+ BindingFault bfault = def.createBindingFault();
+ bfault.setName(fault.getName());
+ bop.addBindingFault(bfault);
+ SOAPFaultImpl soapFault = new SOAPFaultImpl();
+ soapFault.setName(fault.getName());
+ soapFault.setUse("literal");
+ bfault.addExtensibilityElement(soapFault);
+ }
+ }
+ binding.addBindingOperation(bop);
+ def.addBinding(binding);
+ return binding;
+
+ }
+
+ private static void addService(Definition def, final ESBServiceEndpointInfo serviceInfo, Binding binding) {
+ // create service
+ javax.wsdl.Service service = def.createService();
+ service.setQName(new QName(def.getTargetNamespace(), serviceInfo.getServiceName()));
+ javax.wsdl.Port port = def.createPort();
+ port.setBinding(binding);
+ port.setName(serviceInfo.getPortName());
+ SOAPAddressImpl soapAddress = new SOAPAddressImpl();
+ soapAddress.setLocationURI("http://change_this_URI/"+serviceInfo.getServletPath());
+ port.addExtensibilityElement(soapAddress);
+ service.addPort(port);
+ def.addService(service);
+ }
+
+ private synchronized static WSDLFactory getWSDLFactory()
+ throws ConfigurationException
+ {
+ if (wsdlFactory == null)
+ {
+ try
+ {
+ wsdlFactory = AccessController.doPrivileged(new PrivilegedExceptionAction<WSDLFactory>() {
+ public WSDLFactory run() throws WSDLException
+ {
+ return WSDLFactory.newInstance();
+ }
+ }) ;
+ }
+ catch (final PrivilegedActionException pae)
+ {
+ throw new ConfigurationException("Failed to instantiate the WSDL factory", pae.getCause()) ;
+ }
+ }
+ return wsdlFactory ;
+ }
+}
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/internal/soa/esb/webservice/ESBServiceContractPublisher.java
===================================================================
--- labs/jbossesb/trunk/product/rosetta/src/org/jboss/internal/soa/esb/webservice/ESBServiceContractPublisher.java 2009-01-21 09:35:03 UTC (rev 24846)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/internal/soa/esb/webservice/ESBServiceContractPublisher.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -1,117 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source Copyright 2008, Red Hat Middleware
- * LLC, and individual contributors by the @authors tag. See the copyright.txt
- * in the distribution for a full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it under the
- * terms of the GNU Lesser General Public License as published by the Free
- * Software Foundation; either version 2.1 of the License, or (at your option)
- * any later version.
- *
- * This software is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
- * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
- * details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this software; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA, or see the FSF
- * site: http://www.fsf.org.
- */
-package org.jboss.internal.soa.esb.webservice;
-
-import java.net.URI;
-import java.net.URISyntaxException;
-import java.util.Set;
-
-import javax.management.ObjectName;
-
-import org.jboss.internal.soa.esb.publish.ContractReferencePublisher;
-import org.jboss.soa.esb.Service;
-import org.jboss.wsf.spi.SPIProvider;
-import org.jboss.wsf.spi.SPIProviderResolver;
-import org.jboss.wsf.spi.deployment.Endpoint;
-import org.jboss.wsf.spi.management.EndpointRegistry;
-import org.jboss.wsf.spi.management.EndpointRegistryFactory;
-
-public class ESBServiceContractPublisher implements ContractReferencePublisher {
- private String address;
- private final String endpointName;
- private final Service service ;
- private final String description ;
-
- public ESBServiceContractPublisher(final Service service, final String description, final String jaxwsEndpoint) {
- this.service = service ;
- this.description = description ;
- endpointName = jaxwsEndpoint;
- }
-
- /**
- * Get the service represented by this contract configuration.
- * @return The service.
- */
- public Service getService() {
- return service ;
- }
-
- /**
- * Get the service description represented by this contract configuration.
- * @return The service description.
- */
- public String getDescription() {
- return description ;
- }
-
- /**
- * Get the URI of the service.
- * @return The service URI.
- */
- public URI getServiceURI() {
- final String address = getEndpointAddress() ;
- if (address != null) {
- try {
- return new URI(address) ;
- } catch (final URISyntaxException urise) {} // fall through
- }
- return null ;
- }
-
- /**
- * Get the URI of the contract.
- * @return The contract URI.
- */
- public URI getServiceContractURI() {
- final String address = getEndpointAddress() ;
- if (address != null) {
- try {
- return new URI(address+"?wsdl") ;
- } catch (final URISyntaxException urise) {} // fall through
- }
- return null ;
- }
-
- private String getEndpointAddress() {
- if (address != null) {
- return address;
- }
-
- SPIProvider spiProv = SPIProviderResolver.getInstance().getProvider();
- EndpointRegistryFactory factory = spiProv
- .getSPI(EndpointRegistryFactory.class);
- EndpointRegistry registry = factory.getEndpointRegistry();
- Set<ObjectName> objectNames = registry.getEndpoints();
-
- for (ObjectName objectName : objectNames) {
- String endpoint = objectName
- .getKeyProperty(Endpoint.SEPID_PROPERTY_ENDPOINT);
-
- if (endpoint != null && endpoint.equals(endpointName)) {
- Endpoint ep = registry.getEndpoint(objectName);
- address = ep.getAddress();
- return address;
- }
- }
-
- return null;
- }
-}
Copied: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/internal/soa/esb/webservice/ESBServiceContractPublisher.java (from rev 24846, labs/jbossesb/trunk/product/rosetta/src/org/jboss/internal/soa/esb/webservice/ESBServiceContractPublisher.java)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/internal/soa/esb/webservice/ESBServiceContractPublisher.java (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/internal/soa/esb/webservice/ESBServiceContractPublisher.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -0,0 +1,117 @@
+/*
+ * JBoss, Home of Professional Open Source Copyright 2008, Red Hat Middleware
+ * LLC, and individual contributors by the @authors tag. See the copyright.txt
+ * in the distribution for a full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it under the
+ * terms of the GNU Lesser General Public License as published by the Free
+ * Software Foundation; either version 2.1 of the License, or (at your option)
+ * any later version.
+ *
+ * This software is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+ * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
+ * details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this software; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA, or see the FSF
+ * site: http://www.fsf.org.
+ */
+package org.jboss.internal.soa.esb.webservice;
+
+import java.net.URI;
+import java.net.URISyntaxException;
+import java.util.Set;
+
+import javax.management.ObjectName;
+
+import org.jboss.internal.soa.esb.publish.ContractReferencePublisher;
+import org.jboss.soa.esb.Service;
+import org.jboss.wsf.spi.SPIProvider;
+import org.jboss.wsf.spi.SPIProviderResolver;
+import org.jboss.wsf.spi.deployment.Endpoint;
+import org.jboss.wsf.spi.management.EndpointRegistry;
+import org.jboss.wsf.spi.management.EndpointRegistryFactory;
+
+public class ESBServiceContractPublisher implements ContractReferencePublisher {
+ private String address;
+ private final String endpointName;
+ private final Service service ;
+ private final String description ;
+
+ public ESBServiceContractPublisher(final Service service, final String description, final String jaxwsEndpoint) {
+ this.service = service ;
+ this.description = description ;
+ endpointName = jaxwsEndpoint;
+ }
+
+ /**
+ * Get the service represented by this contract configuration.
+ * @return The service.
+ */
+ public Service getService() {
+ return service ;
+ }
+
+ /**
+ * Get the service description represented by this contract configuration.
+ * @return The service description.
+ */
+ public String getDescription() {
+ return description ;
+ }
+
+ /**
+ * Get the URI of the service.
+ * @return The service URI.
+ */
+ public URI getServiceURI() {
+ final String address = getEndpointAddress() ;
+ if (address != null) {
+ try {
+ return new URI(address) ;
+ } catch (final URISyntaxException urise) {} // fall through
+ }
+ return null ;
+ }
+
+ /**
+ * Get the URI of the contract.
+ * @return The contract URI.
+ */
+ public URI getServiceContractURI() {
+ final String address = getEndpointAddress() ;
+ if (address != null) {
+ try {
+ return new URI(address+"?wsdl") ;
+ } catch (final URISyntaxException urise) {} // fall through
+ }
+ return null ;
+ }
+
+ private String getEndpointAddress() {
+ if (address != null) {
+ return address;
+ }
+
+ SPIProvider spiProv = SPIProviderResolver.getInstance().getProvider();
+ EndpointRegistryFactory factory = spiProv
+ .getSPI(EndpointRegistryFactory.class);
+ EndpointRegistry registry = factory.getEndpointRegistry();
+ Set<ObjectName> objectNames = registry.getEndpoints();
+
+ for (ObjectName objectName : objectNames) {
+ String endpoint = objectName
+ .getKeyProperty(Endpoint.SEPID_PROPERTY_ENDPOINT);
+
+ if (endpoint != null && endpoint.equals(endpointName)) {
+ Endpoint ep = registry.getEndpoint(objectName);
+ address = ep.getAddress();
+ return address;
+ }
+ }
+
+ return null;
+ }
+}
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/internal/soa/esb/webservice/ESBServiceEndpointInfo.java
===================================================================
--- labs/jbossesb/trunk/product/rosetta/src/org/jboss/internal/soa/esb/webservice/ESBServiceEndpointInfo.java 2009-01-21 09:35:03 UTC (rev 24846)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/internal/soa/esb/webservice/ESBServiceEndpointInfo.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -1,156 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2006, JBoss Inc., and others contributors as indicated
- * by the @authors tag. All rights reserved.
- * See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- * This copyrighted material is made available to anyone wishing to use,
- * modify, copy, or redistribute it subject to the terms and conditions
- * of the GNU Lesser General Public License, v. 2.1.
- * This program is distributed in the hope that it will be useful, but WITHOUT A
- * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
- * PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
- * You should have received a copy of the GNU Lesser General Public License,
- * v.2.1 along with this distribution; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
- * MA 02110-1301, USA.
- *
- * (C) 2005-2006, JBoss Inc.
- */
-package org.jboss.internal.soa.esb.webservice;
-
-import java.io.UnsupportedEncodingException;
-import java.net.URLEncoder;
-import java.security.AccessController;
-import java.security.PrivilegedAction;
-
-import org.apache.log4j.Logger;
-import org.jboss.soa.esb.Service;
-import org.jboss.soa.esb.listeners.config.WebserviceInfo;
-
-
-public class ESBServiceEndpointInfo {
- private static final String DEFAULT_ENCODING ;
- private static final Logger LOGGER = Logger.getLogger(ESBServiceEndpointInfo.class) ;
-
- private final String requestName ;
- private final String responseName ;
- private final String faultName ;
- private final String bindingName ;
- private final String serviceName ;
- private final String portName ;
- private final String operationName ;
- private final String servletName ;
- private final String servletPath ;
- private final String wsdlFileName ;
- private final String packageName ;
- private final String className ;
- private final String namespace ;
- private final boolean isOneWay ;
- private final String action ;
-
- public ESBServiceEndpointInfo(final WebserviceInfo webserviceInfo)
- throws UnsupportedEncodingException {
- final Service service = webserviceInfo.getService() ;
- final String name = service.getName() ;
- requestName = name + "Req" ;
- responseName = name + "Res" ;
- faultName = name + "Fault" ;
- bindingName = name + "Binding" ;
- serviceName = name + "Service" ;
- portName = name + "PortType" ;
- operationName = name + "Op" ;
- final String serviceCategory = service.getCategory().replace('/', '_') ;
- final String serviceName = service.getName().replace('/', '_') ;
- servletName = serviceCategory + "_" + serviceName ;
- servletPath = "/" + serviceCategory + "/" + serviceName ;
- wsdlFileName = "WEB-INF/wsdl/" + serviceCategory + "/" + serviceName + ".wsdl" ;
- packageName = "esb.ws." + serviceCategory + "." + serviceName ;
- className = packageName + ".Implementation" ;
- namespace = "http://soa.jboss.org/" + URLEncoder.encode(service.getCategory(), DEFAULT_ENCODING) ;
- action = namespace + "/" + operationName ;
-
- isOneWay = (webserviceInfo.getOutXsd() == null) ;
- if (isOneWay)
- {
- if (webserviceInfo.getFaultXsd() != null)
- {
- LOGGER.warn("Fault schemas ignored for OneWay service " + serviceCategory + ":" + serviceName) ;
- }
- if (webserviceInfo.isRequestResponse())
- {
- LOGGER.warn("No response specified for RequestResponse service " + serviceCategory + ":" + serviceName) ;
- }
- }
- }
-
- public String getRequestName() {
- return requestName ;
- }
-
- public String getResponseName() {
- return responseName ;
- }
-
- public String getFaultName() {
- return faultName ;
- }
-
- public String getBindingName() {
- return bindingName ;
- }
-
- public String getServiceName() {
- return serviceName ;
- }
-
- public String getPortName() {
- return portName ;
- }
-
- public String getOperationName() {
- return operationName ;
- }
-
- public String getServletName() {
- return servletName ;
- }
-
- public String getServletPath() {
- return servletPath ;
- }
-
- public String getWSDLFileName() {
- return wsdlFileName ;
- }
-
- public String getPackageName() {
- return packageName ;
- }
-
- public String getClassName() {
- return className ;
- }
-
- public String getNamespace() {
- return namespace ;
- }
-
- public String getAction() {
- return action ;
- }
-
- public boolean isOneWay() {
- return isOneWay ;
- }
-
- static
- {
- DEFAULT_ENCODING = AccessController.doPrivileged(new PrivilegedAction<String>() {
- public String run()
- {
- return System.getProperty("file.encoding");
- }
- }) ;
- }
-}
\ No newline at end of file
Copied: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/internal/soa/esb/webservice/ESBServiceEndpointInfo.java (from rev 24846, labs/jbossesb/trunk/product/rosetta/src/org/jboss/internal/soa/esb/webservice/ESBServiceEndpointInfo.java)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/internal/soa/esb/webservice/ESBServiceEndpointInfo.java (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/internal/soa/esb/webservice/ESBServiceEndpointInfo.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -0,0 +1,156 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and others contributors as indicated
+ * by the @authors tag. All rights reserved.
+ * See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License, v. 2.1.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+ * PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
+ * You should have received a copy of the GNU Lesser General Public License,
+ * v.2.1 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301, USA.
+ *
+ * (C) 2005-2006, JBoss Inc.
+ */
+package org.jboss.internal.soa.esb.webservice;
+
+import java.io.UnsupportedEncodingException;
+import java.net.URLEncoder;
+import java.security.AccessController;
+import java.security.PrivilegedAction;
+
+import org.apache.log4j.Logger;
+import org.jboss.soa.esb.Service;
+import org.jboss.soa.esb.listeners.config.WebserviceInfo;
+
+
+public class ESBServiceEndpointInfo {
+ private static final String DEFAULT_ENCODING ;
+ private static final Logger LOGGER = Logger.getLogger(ESBServiceEndpointInfo.class) ;
+
+ private final String requestName ;
+ private final String responseName ;
+ private final String faultName ;
+ private final String bindingName ;
+ private final String serviceName ;
+ private final String portName ;
+ private final String operationName ;
+ private final String servletName ;
+ private final String servletPath ;
+ private final String wsdlFileName ;
+ private final String packageName ;
+ private final String className ;
+ private final String namespace ;
+ private final boolean isOneWay ;
+ private final String action ;
+
+ public ESBServiceEndpointInfo(final WebserviceInfo webserviceInfo)
+ throws UnsupportedEncodingException {
+ final Service service = webserviceInfo.getService() ;
+ final String name = service.getName() ;
+ requestName = name + "Req" ;
+ responseName = name + "Res" ;
+ faultName = name + "Fault" ;
+ bindingName = name + "Binding" ;
+ serviceName = name + "Service" ;
+ portName = name + "PortType" ;
+ operationName = name + "Op" ;
+ final String serviceCategory = service.getCategory().replace('/', '_') ;
+ final String serviceName = service.getName().replace('/', '_') ;
+ servletName = serviceCategory + "_" + serviceName ;
+ servletPath = "/" + serviceCategory + "/" + serviceName ;
+ wsdlFileName = "WEB-INF/wsdl/" + serviceCategory + "/" + serviceName + ".wsdl" ;
+ packageName = "esb.ws." + serviceCategory + "." + serviceName ;
+ className = packageName + ".Implementation" ;
+ namespace = "http://soa.jboss.org/" + URLEncoder.encode(service.getCategory(), DEFAULT_ENCODING) ;
+ action = namespace + "/" + operationName ;
+
+ isOneWay = (webserviceInfo.getOutXsd() == null) ;
+ if (isOneWay)
+ {
+ if (webserviceInfo.getFaultXsd() != null)
+ {
+ LOGGER.warn("Fault schemas ignored for OneWay service " + serviceCategory + ":" + serviceName) ;
+ }
+ if (webserviceInfo.isRequestResponse())
+ {
+ LOGGER.warn("No response specified for RequestResponse service " + serviceCategory + ":" + serviceName) ;
+ }
+ }
+ }
+
+ public String getRequestName() {
+ return requestName ;
+ }
+
+ public String getResponseName() {
+ return responseName ;
+ }
+
+ public String getFaultName() {
+ return faultName ;
+ }
+
+ public String getBindingName() {
+ return bindingName ;
+ }
+
+ public String getServiceName() {
+ return serviceName ;
+ }
+
+ public String getPortName() {
+ return portName ;
+ }
+
+ public String getOperationName() {
+ return operationName ;
+ }
+
+ public String getServletName() {
+ return servletName ;
+ }
+
+ public String getServletPath() {
+ return servletPath ;
+ }
+
+ public String getWSDLFileName() {
+ return wsdlFileName ;
+ }
+
+ public String getPackageName() {
+ return packageName ;
+ }
+
+ public String getClassName() {
+ return className ;
+ }
+
+ public String getNamespace() {
+ return namespace ;
+ }
+
+ public String getAction() {
+ return action ;
+ }
+
+ public boolean isOneWay() {
+ return isOneWay ;
+ }
+
+ static
+ {
+ DEFAULT_ENCODING = AccessController.doPrivileged(new PrivilegedAction<String>() {
+ public String run()
+ {
+ return System.getProperty("file.encoding");
+ }
+ }) ;
+ }
+}
\ No newline at end of file
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/internal/soa/esb/webservice/JAXWSProviderClassGenerator.java
===================================================================
--- labs/jbossesb/trunk/product/rosetta/src/org/jboss/internal/soa/esb/webservice/JAXWSProviderClassGenerator.java 2009-01-21 09:35:03 UTC (rev 24846)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/internal/soa/esb/webservice/JAXWSProviderClassGenerator.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -1,118 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2006, JBoss Inc., and others contributors as indicated
- * by the @authors tag. All rights reserved.
- * See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- * This copyrighted material is made available to anyone wishing to use,
- * modify, copy, or redistribute it subject to the terms and conditions
- * of the GNU Lesser General Public License, v. 2.1.
- * This program is distributed in the hope that it will be useful, but WITHOUT A
- * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
- * PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
- * You should have received a copy of the GNU Lesser General Public License,
- * v.2.1 along with this distribution; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
- * MA 02110-1301, USA.
- *
- * (C) 2005-2006, JBoss Inc.
- */
-package org.jboss.internal.soa.esb.webservice;
-
-import javassist.ClassPool;
-import javassist.CtClass;
-import javassist.CtConstructor;
-import javassist.LoaderClassPath;
-import javassist.NotFoundException;
-import javassist.bytecode.AnnotationsAttribute;
-import javassist.bytecode.ConstPool;
-import javassist.bytecode.annotation.Annotation;
-import javassist.bytecode.annotation.EnumMemberValue;
-import javassist.bytecode.annotation.StringMemberValue;
-
-public class JAXWSProviderClassGenerator {
- private final ClassPool pool ;
- private final CtClass oneWaySuperClass ;
- private final CtClass requestResponseSuperClass ;
-
- public JAXWSProviderClassGenerator()
- throws WebServicePublishException {
- pool = new ClassPool() ;
- final ClassLoader tccl = Thread.currentThread().getContextClassLoader() ;
- if (tccl != null)
- {
- pool.appendClassPath(new LoaderClassPath(tccl)) ;
- }
- pool.appendClassPath(new LoaderClassPath(JAXWSProviderClassGenerator.class.getClassLoader())) ;
- try {
- oneWaySuperClass = pool.get(OneWayBaseWebService.class.getName());
- requestResponseSuperClass = pool.get(RequestResponseBaseWebService.class.getName()) ;
- } catch (final NotFoundException nfe) {
- throw new WebServicePublishException("Failed to obtain superclasses", nfe) ;
- }
- }
-
- public byte[] generate(final String category, final String service, final ESBServiceEndpointInfo epInfo)
- throws WebServicePublishException {
- try {
- pool.get(epInfo.getClassName());
- throw new WebServicePublishException("Duplicate class within context: " + epInfo.getClassName()) ;
- } catch (final NotFoundException nfe) {} // ignore
-
- final CtClass seiClass = pool.makeClass(epInfo.getClassName());
-
- try {
- if (epInfo.isOneWay())
- {
- seiClass.setSuperclass(oneWaySuperClass) ;
- }
- else
- {
- seiClass.setSuperclass(requestResponseSuperClass) ;
- }
-
- ConstPool constantPool = seiClass.getClassFile().getConstPool();
- AnnotationsAttribute attribute = new AnnotationsAttribute(
- constantPool, AnnotationsAttribute.visibleTag);
- Annotation annotation = new Annotation(
- "javax.xml.ws.WebServiceProvider", constantPool);
- StringMemberValue strValue1 = new StringMemberValue(constantPool);
- strValue1.setValue(epInfo.getWSDLFileName());
- annotation.addMemberValue("wsdlLocation", strValue1);
- StringMemberValue strValue2 = new StringMemberValue(constantPool);
- strValue2.setValue(epInfo.getServiceName());
- annotation.addMemberValue("serviceName", strValue2);
- StringMemberValue strValue3 = new StringMemberValue(constantPool);
- strValue3.setValue(epInfo.getPortName());
- annotation.addMemberValue("portName", strValue3);
-
- StringMemberValue strValue4 = new StringMemberValue(constantPool);
- strValue4.setValue(epInfo.getNamespace());
- annotation.addMemberValue("targetNamespace", strValue4);
-
- attribute.addAnnotation(annotation);
-
- Annotation annotation2 = new Annotation("javax.xml.ws.ServiceMode",
- constantPool);
- EnumMemberValue enumValue = new EnumMemberValue(constantPool);
- enumValue.setType("javax.xml.ws.Service$Mode");
- enumValue.setValue("MESSAGE");
- annotation2.addMemberValue("value", enumValue);
- attribute.addAnnotation(annotation2);
-
- seiClass.getClassFile().addAttribute(attribute);
-
- final String constructorStr = "super(\"" + category + "\"," + "\"" + service + "\");";
- CtConstructor defaultConstructor = new CtConstructor(null, seiClass) ;
- defaultConstructor.setBody(constructorStr) ;
- seiClass.addConstructor(defaultConstructor) ;
-
- return seiClass.toBytecode();
- } catch (Exception e) {
-
- throw new WebServicePublishException(
- "Failed to generate jaxws dispatch class for ESB service",
- e);
- }
- }
-}
Copied: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/internal/soa/esb/webservice/JAXWSProviderClassGenerator.java (from rev 24846, labs/jbossesb/trunk/product/rosetta/src/org/jboss/internal/soa/esb/webservice/JAXWSProviderClassGenerator.java)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/internal/soa/esb/webservice/JAXWSProviderClassGenerator.java (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/internal/soa/esb/webservice/JAXWSProviderClassGenerator.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -0,0 +1,118 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and others contributors as indicated
+ * by the @authors tag. All rights reserved.
+ * See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License, v. 2.1.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+ * PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
+ * You should have received a copy of the GNU Lesser General Public License,
+ * v.2.1 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301, USA.
+ *
+ * (C) 2005-2006, JBoss Inc.
+ */
+package org.jboss.internal.soa.esb.webservice;
+
+import javassist.ClassPool;
+import javassist.CtClass;
+import javassist.CtConstructor;
+import javassist.LoaderClassPath;
+import javassist.NotFoundException;
+import javassist.bytecode.AnnotationsAttribute;
+import javassist.bytecode.ConstPool;
+import javassist.bytecode.annotation.Annotation;
+import javassist.bytecode.annotation.EnumMemberValue;
+import javassist.bytecode.annotation.StringMemberValue;
+
+public class JAXWSProviderClassGenerator {
+ private final ClassPool pool ;
+ private final CtClass oneWaySuperClass ;
+ private final CtClass requestResponseSuperClass ;
+
+ public JAXWSProviderClassGenerator()
+ throws WebServicePublishException {
+ pool = new ClassPool() ;
+ final ClassLoader tccl = Thread.currentThread().getContextClassLoader() ;
+ if (tccl != null)
+ {
+ pool.appendClassPath(new LoaderClassPath(tccl)) ;
+ }
+ pool.appendClassPath(new LoaderClassPath(JAXWSProviderClassGenerator.class.getClassLoader())) ;
+ try {
+ oneWaySuperClass = pool.get(OneWayBaseWebService.class.getName());
+ requestResponseSuperClass = pool.get(RequestResponseBaseWebService.class.getName()) ;
+ } catch (final NotFoundException nfe) {
+ throw new WebServicePublishException("Failed to obtain superclasses", nfe) ;
+ }
+ }
+
+ public byte[] generate(final String category, final String service, final ESBServiceEndpointInfo epInfo)
+ throws WebServicePublishException {
+ try {
+ pool.get(epInfo.getClassName());
+ throw new WebServicePublishException("Duplicate class within context: " + epInfo.getClassName()) ;
+ } catch (final NotFoundException nfe) {} // ignore
+
+ final CtClass seiClass = pool.makeClass(epInfo.getClassName());
+
+ try {
+ if (epInfo.isOneWay())
+ {
+ seiClass.setSuperclass(oneWaySuperClass) ;
+ }
+ else
+ {
+ seiClass.setSuperclass(requestResponseSuperClass) ;
+ }
+
+ ConstPool constantPool = seiClass.getClassFile().getConstPool();
+ AnnotationsAttribute attribute = new AnnotationsAttribute(
+ constantPool, AnnotationsAttribute.visibleTag);
+ Annotation annotation = new Annotation(
+ "javax.xml.ws.WebServiceProvider", constantPool);
+ StringMemberValue strValue1 = new StringMemberValue(constantPool);
+ strValue1.setValue(epInfo.getWSDLFileName());
+ annotation.addMemberValue("wsdlLocation", strValue1);
+ StringMemberValue strValue2 = new StringMemberValue(constantPool);
+ strValue2.setValue(epInfo.getServiceName());
+ annotation.addMemberValue("serviceName", strValue2);
+ StringMemberValue strValue3 = new StringMemberValue(constantPool);
+ strValue3.setValue(epInfo.getPortName());
+ annotation.addMemberValue("portName", strValue3);
+
+ StringMemberValue strValue4 = new StringMemberValue(constantPool);
+ strValue4.setValue(epInfo.getNamespace());
+ annotation.addMemberValue("targetNamespace", strValue4);
+
+ attribute.addAnnotation(annotation);
+
+ Annotation annotation2 = new Annotation("javax.xml.ws.ServiceMode",
+ constantPool);
+ EnumMemberValue enumValue = new EnumMemberValue(constantPool);
+ enumValue.setType("javax.xml.ws.Service$Mode");
+ enumValue.setValue("MESSAGE");
+ annotation2.addMemberValue("value", enumValue);
+ attribute.addAnnotation(annotation2);
+
+ seiClass.getClassFile().addAttribute(attribute);
+
+ final String constructorStr = "super(\"" + category + "\"," + "\"" + service + "\");";
+ CtConstructor defaultConstructor = new CtConstructor(null, seiClass) ;
+ defaultConstructor.setBody(constructorStr) ;
+ seiClass.addConstructor(defaultConstructor) ;
+
+ return seiClass.toBytecode();
+ } catch (Exception e) {
+
+ throw new WebServicePublishException(
+ "Failed to generate jaxws dispatch class for ESB service",
+ e);
+ }
+ }
+}
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/internal/soa/esb/webservice/OneWayBaseWebService.java
===================================================================
--- labs/jbossesb/trunk/product/rosetta/src/org/jboss/internal/soa/esb/webservice/OneWayBaseWebService.java 2009-01-21 09:35:03 UTC (rev 24846)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/internal/soa/esb/webservice/OneWayBaseWebService.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -1,46 +0,0 @@
-/*
-* JBoss, Home of Professional Open Source
-* Copyright 2006, JBoss Inc., and individual contributors as indicated
-* by the @authors tag. See the copyright.txt in the distribution for a
-* full listing of individual contributors.
-*
-* This is free software; you can redistribute it and/or modify it
-* under the terms of the GNU Lesser General Public License as
-* published by the Free Software Foundation; either version 2.1 of
-* the License, or (at your option) any later version.
-*
-* This software is distributed in the hope that it will be useful,
-* but WITHOUT ANY WARRANTY; without even the implied warranty of
-* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-* Lesser General Public License for more details.
-*
-* You should have received a copy of the GNU Lesser General Public
-* License along with this software; if not, write to the Free
-* Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
-* 02110-1301 USA, or see the FSF site: http://www.fsf.org.
-*/
-package org.jboss.internal.soa.esb.webservice;
-
-import org.jboss.soa.esb.listeners.message.MessageDeliverException;
-import org.jboss.soa.esb.message.Message;
-
-/**
- * This is the base class for a OneWay SOAP message
- * @author kevin
- */
-public class OneWayBaseWebService extends BaseWebService
-{
- protected OneWayBaseWebService(final String category, final String name)
- throws MessageDeliverException
- {
- super(category, name) ;
- }
-
- @Override
- protected Message deliverMessage(final Message request)
- throws Exception
- {
- serviceInvoker.deliverAsync(request) ;
- return null ;
- }
-}
Copied: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/internal/soa/esb/webservice/OneWayBaseWebService.java (from rev 24846, labs/jbossesb/trunk/product/rosetta/src/org/jboss/internal/soa/esb/webservice/OneWayBaseWebService.java)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/internal/soa/esb/webservice/OneWayBaseWebService.java (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/internal/soa/esb/webservice/OneWayBaseWebService.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -0,0 +1,46 @@
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2006, JBoss Inc., and individual contributors as indicated
+* by the @authors tag. See the copyright.txt in the distribution for a
+* full listing of individual contributors.
+*
+* This is free software; you can redistribute it and/or modify it
+* under the terms of the GNU Lesser General Public License as
+* published by the Free Software Foundation; either version 2.1 of
+* the License, or (at your option) any later version.
+*
+* This software is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+* Lesser General Public License for more details.
+*
+* You should have received a copy of the GNU Lesser General Public
+* License along with this software; if not, write to the Free
+* Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+* 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+*/
+package org.jboss.internal.soa.esb.webservice;
+
+import org.jboss.soa.esb.listeners.message.MessageDeliverException;
+import org.jboss.soa.esb.message.Message;
+
+/**
+ * This is the base class for a OneWay SOAP message
+ * @author kevin
+ */
+public class OneWayBaseWebService extends BaseWebService
+{
+ protected OneWayBaseWebService(final String category, final String name)
+ throws MessageDeliverException
+ {
+ super(category, name) ;
+ }
+
+ @Override
+ protected Message deliverMessage(final Message request)
+ throws Exception
+ {
+ serviceInvoker.deliverAsync(request) ;
+ return null ;
+ }
+}
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/internal/soa/esb/webservice/RequestResponseBaseWebService.java
===================================================================
--- labs/jbossesb/trunk/product/rosetta/src/org/jboss/internal/soa/esb/webservice/RequestResponseBaseWebService.java 2009-01-21 09:35:03 UTC (rev 24846)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/internal/soa/esb/webservice/RequestResponseBaseWebService.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -1,74 +0,0 @@
-/*
-* JBoss, Home of Professional Open Source
-* Copyright 2006, JBoss Inc., and individual contributors as indicated
-* by the @authors tag. See the copyright.txt in the distribution for a
-* full listing of individual contributors.
-*
-* This is free software; you can redistribute it and/or modify it
-* under the terms of the GNU Lesser General Public License as
-* published by the Free Software Foundation; either version 2.1 of
-* the License, or (at your option) any later version.
-*
-* This software is distributed in the hope that it will be useful,
-* but WITHOUT ANY WARRANTY; without even the implied warranty of
-* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-* Lesser General Public License for more details.
-*
-* You should have received a copy of the GNU Lesser General Public
-* License along with this software; if not, write to the Free
-* Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
-* 02110-1301 USA, or see the FSF site: http://www.fsf.org.
-*/
-package org.jboss.internal.soa.esb.webservice;
-
-import org.apache.log4j.Logger;
-import org.jboss.soa.esb.common.Environment;
-import org.jboss.soa.esb.common.ModulePropertyManager;
-import org.jboss.soa.esb.listeners.message.MessageDeliverException;
-import org.jboss.soa.esb.message.Message;
-
-import com.arjuna.common.util.propertyservice.PropertyManager;
-
-
-/**
- * This is the base class for a RequestResponse SOAP message
- * @author kevin
- */
-public class RequestResponseBaseWebService extends BaseWebService
-{
- private static final long DEFAULT_TIMEOUT = 30000L ;
- private static final long TIMEOUT ;
- private static final Logger LOGGER = Logger.getLogger(RequestResponseBaseWebService.class) ;
-
- protected RequestResponseBaseWebService(final String category, final String name)
- throws MessageDeliverException
- {
- super(category, name) ;
- }
-
- @Override
- protected Message deliverMessage(final Message request)
- throws Exception
- {
- return serviceInvoker.deliverSync(request, TIMEOUT);
- }
-
- static
- {
- final PropertyManager propertyManager = ModulePropertyManager.getPropertyManager(ModulePropertyManager.TRANSPORTS_MODULE) ;
- final String timeoutVal = propertyManager.getProperty(Environment.WS_TIMEOUT);
- long timeout = DEFAULT_TIMEOUT ;
- if (timeoutVal != null)
- {
- try
- {
- timeout = Long.parseLong(timeoutVal) ;
- }
- catch (final NumberFormatException nfe)
- {
- LOGGER.warn("Failed to parse specified timeout: " + timeoutVal, nfe) ;
- }
- }
- TIMEOUT = timeout ;
- }
-}
Copied: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/internal/soa/esb/webservice/RequestResponseBaseWebService.java (from rev 24846, labs/jbossesb/trunk/product/rosetta/src/org/jboss/internal/soa/esb/webservice/RequestResponseBaseWebService.java)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/internal/soa/esb/webservice/RequestResponseBaseWebService.java (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/internal/soa/esb/webservice/RequestResponseBaseWebService.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -0,0 +1,74 @@
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2006, JBoss Inc., and individual contributors as indicated
+* by the @authors tag. See the copyright.txt in the distribution for a
+* full listing of individual contributors.
+*
+* This is free software; you can redistribute it and/or modify it
+* under the terms of the GNU Lesser General Public License as
+* published by the Free Software Foundation; either version 2.1 of
+* the License, or (at your option) any later version.
+*
+* This software is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+* Lesser General Public License for more details.
+*
+* You should have received a copy of the GNU Lesser General Public
+* License along with this software; if not, write to the Free
+* Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+* 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+*/
+package org.jboss.internal.soa.esb.webservice;
+
+import org.apache.log4j.Logger;
+import org.jboss.soa.esb.common.Environment;
+import org.jboss.soa.esb.common.ModulePropertyManager;
+import org.jboss.soa.esb.listeners.message.MessageDeliverException;
+import org.jboss.soa.esb.message.Message;
+
+import com.arjuna.common.util.propertyservice.PropertyManager;
+
+
+/**
+ * This is the base class for a RequestResponse SOAP message
+ * @author kevin
+ */
+public class RequestResponseBaseWebService extends BaseWebService
+{
+ private static final long DEFAULT_TIMEOUT = 30000L ;
+ private static final long TIMEOUT ;
+ private static final Logger LOGGER = Logger.getLogger(RequestResponseBaseWebService.class) ;
+
+ protected RequestResponseBaseWebService(final String category, final String name)
+ throws MessageDeliverException
+ {
+ super(category, name) ;
+ }
+
+ @Override
+ protected Message deliverMessage(final Message request)
+ throws Exception
+ {
+ return serviceInvoker.deliverSync(request, TIMEOUT);
+ }
+
+ static
+ {
+ final PropertyManager propertyManager = ModulePropertyManager.getPropertyManager(ModulePropertyManager.TRANSPORTS_MODULE) ;
+ final String timeoutVal = propertyManager.getProperty(Environment.WS_TIMEOUT);
+ long timeout = DEFAULT_TIMEOUT ;
+ if (timeoutVal != null)
+ {
+ try
+ {
+ timeout = Long.parseLong(timeoutVal) ;
+ }
+ catch (final NumberFormatException nfe)
+ {
+ LOGGER.warn("Failed to parse specified timeout: " + timeoutVal, nfe) ;
+ }
+ }
+ TIMEOUT = timeout ;
+ }
+}
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/internal/soa/esb/webservice/WebServicePublishException.java
===================================================================
--- labs/jbossesb/trunk/product/rosetta/src/org/jboss/internal/soa/esb/webservice/WebServicePublishException.java 2009-01-21 09:35:03 UTC (rev 24846)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/internal/soa/esb/webservice/WebServicePublishException.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -1,50 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2006, JBoss Inc., and others contributors as indicated
- * by the @authors tag. All rights reserved.
- * See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- * This copyrighted material is made available to anyone wishing to use,
- * modify, copy, or redistribute it subject to the terms and conditions
- * of the GNU Lesser General Public License, v. 2.1.
- * This program is distributed in the hope that it will be useful, but WITHOUT A
- * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
- * PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
- * You should have received a copy of the GNU Lesser General Public License,
- * v.2.1 along with this distribution; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
- * MA 02110-1301, USA.
- *
- * (C) 2005-2006, JBoss Inc.
- */
-package org.jboss.internal.soa.esb.webservice;
-
-public class WebServicePublishException extends Exception {
- private static final long serialVersionUID = 1L;
-
- /**
- * Public constructor.
- * @param message Exception message.
- */
- public WebServicePublishException(String message) {
- super(message);
- }
-
- /**
- * Public constructor.
- * @param message Exception message.
- * @param cause Exception cause.
- */
- public WebServicePublishException(String message, Throwable cause) {
- super(message, cause);
- }
-
- /**
- * Public constructor.
- * @param cause Exception cause.
- */
- public WebServicePublishException(Throwable cause) {
- super(cause);
- }
-
-}
Copied: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/internal/soa/esb/webservice/WebServicePublishException.java (from rev 24846, labs/jbossesb/trunk/product/rosetta/src/org/jboss/internal/soa/esb/webservice/WebServicePublishException.java)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/internal/soa/esb/webservice/WebServicePublishException.java (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/internal/soa/esb/webservice/WebServicePublishException.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -0,0 +1,50 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and others contributors as indicated
+ * by the @authors tag. All rights reserved.
+ * See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License, v. 2.1.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+ * PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
+ * You should have received a copy of the GNU Lesser General Public License,
+ * v.2.1 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301, USA.
+ *
+ * (C) 2005-2006, JBoss Inc.
+ */
+package org.jboss.internal.soa.esb.webservice;
+
+public class WebServicePublishException extends Exception {
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * Public constructor.
+ * @param message Exception message.
+ */
+ public WebServicePublishException(String message) {
+ super(message);
+ }
+
+ /**
+ * Public constructor.
+ * @param message Exception message.
+ * @param cause Exception cause.
+ */
+ public WebServicePublishException(String message, Throwable cause) {
+ super(message, cause);
+ }
+
+ /**
+ * Public constructor.
+ * @param cause Exception cause.
+ */
+ public WebServicePublishException(Throwable cause) {
+ super(cause);
+ }
+
+}
Copied: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/actions/ActionProcessingDetailFaultException.java (from rev 24846, labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/actions/ActionProcessingDetailFaultException.java)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/actions/ActionProcessingDetailFaultException.java (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/actions/ActionProcessingDetailFaultException.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -0,0 +1,82 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+
+package org.jboss.soa.esb.actions;
+
+import java.net.URI;
+
+import javax.xml.namespace.QName;
+
+import org.jboss.soa.esb.listeners.message.errors.Factory;
+import org.jboss.soa.esb.message.Body;
+import org.jboss.soa.esb.message.Fault;
+import org.jboss.soa.esb.message.Message;
+import org.jboss.soa.esb.message.format.MessageFactory;
+
+/**
+ * Exception used to specify SOAP code/reason/detail equivalents in a fault.
+ *
+ * @author <href='mailto:kevin.conner at jboss.com'>Kevin Conner</a>
+ */
+public class ActionProcessingDetailFaultException extends ActionProcessingFaultException
+{
+ /**
+ * The serial version UID for this class.
+ */
+ private static final long serialVersionUID = -2402515550073037696L ;
+
+ public ActionProcessingDetailFaultException(final QName code, final String description, final String detail)
+ {
+ this(code, description, detail, null) ;
+ }
+
+ public ActionProcessingDetailFaultException(final QName code, final String description, final String detail, final Throwable th)
+ {
+ super(getFaultMessage(code, description, detail, th), description) ;
+ }
+
+ private static Message getFaultMessage(final QName code, final String description, final String detail, final Throwable th)
+ {
+ final Message message = MessageFactory.getInstance().getMessage() ;
+ final Body body = message.getBody() ;
+ final Fault fault = message.getFault() ;
+ if (th != null)
+ {
+ fault.setCause(th);
+ fault.setReason(th.toString()) ;
+ }
+ fault.setCode(URI.create(Factory.PROCESSING_ERROR)) ;
+
+ body.add(Fault.DETAIL_CODE_CONTENT, code) ;
+ if (description != null)
+ {
+ body.add(Fault.DETAIL_DESCRIPTION_CONTENT, description) ;
+ }
+ if (detail != null)
+ {
+ body.add(Fault.DETAIL_DETAIL_CONTENT, detail) ;
+ }
+ fault.setReason(description) ;
+
+ return message ;
+ }
+}
Modified: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/actions/SystemPrintln.java
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/actions/SystemPrintln.java 2009-01-21 14:47:17 UTC (rev 24849)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/actions/SystemPrintln.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -19,11 +19,8 @@
*/
package org.jboss.soa.esb.actions;
-import java.io.File;
-import java.io.FileOutputStream;
import java.io.PrintStream;
-import org.apache.log4j.Logger;
import org.jboss.soa.esb.helpers.ConfigTree;
import org.jboss.soa.esb.message.Message;
import org.jboss.soa.esb.message.MessagePayloadProxy;
@@ -79,61 +76,75 @@
*/
public Message process(Message message) throws ActionProcessingException
{
- Object messageObject = null;
- try {
- messageObject = payloadProxy.getPayload(message);
- } catch (MessageDeliverException e) {
- throw new ActionProcessingException(e);
- }
+ Object messageObject = null;
+ try {
+ messageObject = payloadProxy.getPayload(message);
+ } catch (MessageDeliverException e) {
+ throw new ActionProcessingException(e);
+ }
- PrintStream stream = (useOutputStream ? System.out : System.err);
-
- stream.println(printlnMessage + ": ");
-
- String messageStr=null;
-
- if (printFullMessage && (message != null))
- {
- // the message should be responsible for converting itself to a string
- messageStr = message.toString();
- stream.println("[ "+messageStr+" ]");
-
- }
- else
- {
- if (messageObject instanceof byte[])
- {
- messageStr = Util.format(new String((byte[]) messageObject));
- stream.println("[" + messageStr + "].");
- }
- else
- {
- if (messageObject != null) {
- messageStr = Util.format(messageObject.toString());
- stream.println("[" + messageStr + "].");
- }
- for (int i = 0; i < message.getAttachment().getUnnamedCount(); i++)
- {
- Message attachedMessage = (Message) message.getAttachment()
- .itemAt(i);
- try {
- Object payload = payloadProxy.getPayload(attachedMessage);
- if(payload instanceof byte[]) {
- stream.println("attachment " + i + ": ["
- + new String((byte[]) payload)
- + "].");
- } else {
- stream.println("attachment " + i + ": ["
- + payload
- + "].");
- }
- } catch (MessageDeliverException e) {
- throw new ActionProcessingException(e);
- }
- }
- }
- }
- return message;
+ PrintStream stream = (useOutputStream ? System.out : System.err);
+
+ stream.println(printlnMessage + ": ");
+
+ String messageStr=null;
+
+ if (printFullMessage && (message != null))
+ {
+ // the message should be responsible for converting itself to a string
+ messageStr = message.toString();
+ stream.println("[ "+messageStr+" ]");
+
+ }
+ else
+ {
+ if (messageObject instanceof byte[])
+ {
+ messageStr = Util.format(new String((byte[]) messageObject));
+ stream.println("[" + messageStr + "].");
+ }
+ else
+ {
+ if (messageObject != null) {
+ messageStr = Util.format(messageObject.toString());
+ stream.println("[" + messageStr + "].");
+ }
+
+ for (int i = 0; i < message.getAttachment().getUnnamedCount(); i++)
+ {
+ Object payload = message.getAttachment().itemAt(i);
+
+ /*
+ * If the attachment is a message then get the contents from it.
+ * Otherwise treat the attachment as the payload we want to deal
+ * with.
+ */
+
+ if (payload instanceof Message)
+ {
+ Message attachedMessage = (Message) payload;
+
+ try {
+ payload = payloadProxy.getPayload(attachedMessage);
+ } catch (MessageDeliverException e) {
+ throw new ActionProcessingException(e);
+ }
+ }
+
+ if(payload instanceof byte[]) {
+ stream.println("attachment " + i + ": ["
+ + new String((byte[]) payload)
+ + "].");
+ } else {
+ stream.println("attachment " + i + ": ["
+ + payload
+ + "].");
+ }
+ }
+ }
+ }
+
+ return message;
}
private String printlnMessage;
Copied: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/actions/monitoring (from rev 24846, labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/actions/monitoring)
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/actions/monitoring/MVELMonitor.java
===================================================================
--- labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/actions/monitoring/MVELMonitor.java 2009-01-21 09:35:03 UTC (rev 24846)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/actions/monitoring/MVELMonitor.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -1,112 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2006, JBoss Inc., and individual contributors as indicated
- * by the @authors tag. See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
-package org.jboss.soa.esb.actions.monitoring;
-
-import java.util.ArrayList;
-import java.util.Set;
-
-import javax.management.InstanceAlreadyExistsException;
-import javax.management.InstanceNotFoundException;
-import javax.management.MBeanRegistrationException;
-import javax.management.MBeanServer;
-import javax.management.MalformedObjectNameException;
-import javax.management.NotCompliantMBeanException;
-import javax.management.ObjectName;
-
-import org.jboss.mx.util.MBeanServerLocator;
-import org.jboss.soa.esb.helpers.ConfigTree;
-import org.jboss.soa.esb.listeners.ListenerTagNames;
-import org.jboss.soa.esb.message.Message;
-
-/**
- * Monitor store for any message that matches the MVEL pattern expression. An ArrayList of
- * MonitoringPatternBeans is stored, which can be reset.
- *
- * @author tcunning
- * @since Version 4.4
- */
-public class MVELMonitor implements MVELMonitorMBean {
- public ArrayList <MonitoringPatternBean> monitoredEvents;
- private ConfigTree m_config;
-
- public MVELMonitor(ConfigTree config) {
- monitoredEvents = new ArrayList();
- m_config = config;
- }
-
- public ArrayList getMonitoredEvents() {
- return (ArrayList) monitoredEvents;
- }
-
- public void reset() {
- monitoredEvents = new ArrayList();
- }
-
- public void addEvent(Message message, MonitoringPatternBean mpb) {
- mpb.setMessageString(message.toString());
- monitoredEvents.add(mpb);
- }
-
- protected void registerMBean() throws InstanceAlreadyExistsException,
- InstanceNotFoundException, MBeanRegistrationException, MBeanRegistrationException,
- MalformedObjectNameException, NotCompliantMBeanException {
- MBeanServer mbeanServer = null;
- try {
- mbeanServer = MBeanServerLocator.locateJBoss();
- } catch (IllegalStateException ise) {
- // If we can't find a JBoss MBeanServer, just return
- // Needed for unit tests
- return;
- }
-
- ObjectName listObjectName = getObjectName();
-
- if (mbeanServer.isRegistered(listObjectName)) {
- mbeanServer.unregisterMBean(listObjectName);
- }
-
- mbeanServer.registerMBean(this, listObjectName);
- }
-
- protected ObjectName getObjectName() throws MalformedObjectNameException {
- ObjectName listObjectName = null;
-
- String deploymentName = m_config.getParent().getParent().getAttribute(ListenerTagNames.DEPLOYMENT_NAME_TAG);
- String serviceName = m_config.getParent().getAttribute(ListenerTagNames.SERVICE_NAME_TAG);
-
- StringBuffer objectName = new StringBuffer("category=MVELMonitor");
- if (deploymentName != null) {
- objectName.append(",").append(ListenerTagNames.DEPLOYMENT_NAME_TAG).append("=").append(deploymentName);
- }
-
- if (serviceName != null) {
- if (objectName.length() > 0) {
- objectName.append(",");
- }
- objectName.append(ListenerTagNames.SERVICE_NAME_TAG).append("=").append(serviceName);
- }
-
- listObjectName = new ObjectName("jboss.esb:" + objectName.toString());
-
- return listObjectName;
- }
-}
\ No newline at end of file
Copied: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/actions/monitoring/MVELMonitor.java (from rev 24846, labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/actions/monitoring/MVELMonitor.java)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/actions/monitoring/MVELMonitor.java (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/actions/monitoring/MVELMonitor.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -0,0 +1,112 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.soa.esb.actions.monitoring;
+
+import java.util.ArrayList;
+import java.util.Set;
+
+import javax.management.InstanceAlreadyExistsException;
+import javax.management.InstanceNotFoundException;
+import javax.management.MBeanRegistrationException;
+import javax.management.MBeanServer;
+import javax.management.MalformedObjectNameException;
+import javax.management.NotCompliantMBeanException;
+import javax.management.ObjectName;
+
+import org.jboss.mx.util.MBeanServerLocator;
+import org.jboss.soa.esb.helpers.ConfigTree;
+import org.jboss.soa.esb.listeners.ListenerTagNames;
+import org.jboss.soa.esb.message.Message;
+
+/**
+ * Monitor store for any message that matches the MVEL pattern expression. An ArrayList of
+ * MonitoringPatternBeans is stored, which can be reset.
+ *
+ * @author tcunning
+ * @since Version 4.4
+ */
+public class MVELMonitor implements MVELMonitorMBean {
+ public ArrayList <MonitoringPatternBean> monitoredEvents;
+ private ConfigTree m_config;
+
+ public MVELMonitor(ConfigTree config) {
+ monitoredEvents = new ArrayList();
+ m_config = config;
+ }
+
+ public ArrayList getMonitoredEvents() {
+ return (ArrayList) monitoredEvents;
+ }
+
+ public void reset() {
+ monitoredEvents = new ArrayList();
+ }
+
+ public void addEvent(Message message, MonitoringPatternBean mpb) {
+ mpb.setMessageString(message.toString());
+ monitoredEvents.add(mpb);
+ }
+
+ protected void registerMBean() throws InstanceAlreadyExistsException,
+ InstanceNotFoundException, MBeanRegistrationException, MBeanRegistrationException,
+ MalformedObjectNameException, NotCompliantMBeanException {
+ MBeanServer mbeanServer = null;
+ try {
+ mbeanServer = MBeanServerLocator.locateJBoss();
+ } catch (IllegalStateException ise) {
+ // If we can't find a JBoss MBeanServer, just return
+ // Needed for unit tests
+ return;
+ }
+
+ ObjectName listObjectName = getObjectName();
+
+ if (mbeanServer.isRegistered(listObjectName)) {
+ mbeanServer.unregisterMBean(listObjectName);
+ }
+
+ mbeanServer.registerMBean(this, listObjectName);
+ }
+
+ protected ObjectName getObjectName() throws MalformedObjectNameException {
+ ObjectName listObjectName = null;
+
+ String deploymentName = m_config.getParent().getParent().getAttribute(ListenerTagNames.DEPLOYMENT_NAME_TAG);
+ String serviceName = m_config.getParent().getAttribute(ListenerTagNames.SERVICE_NAME_TAG);
+
+ StringBuffer objectName = new StringBuffer("category=MVELMonitor");
+ if (deploymentName != null) {
+ objectName.append(",").append(ListenerTagNames.DEPLOYMENT_NAME_TAG).append("=").append(deploymentName);
+ }
+
+ if (serviceName != null) {
+ if (objectName.length() > 0) {
+ objectName.append(",");
+ }
+ objectName.append(ListenerTagNames.SERVICE_NAME_TAG).append("=").append(serviceName);
+ }
+
+ listObjectName = new ObjectName("jboss.esb:" + objectName.toString());
+
+ return listObjectName;
+ }
+}
\ No newline at end of file
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/actions/monitoring/MVELMonitorMBean.java
===================================================================
--- labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/actions/monitoring/MVELMonitorMBean.java 2009-01-21 09:35:03 UTC (rev 24846)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/actions/monitoring/MVELMonitorMBean.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -1,36 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2006, JBoss Inc., and individual contributors as indicated
- * by the @authors tag. See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
-package org.jboss.soa.esb.actions.monitoring;
-
-import java.util.ArrayList;
-import java.util.Set;
-
-/**
- * Interface for the MVEL Monitoring MBean.
- *
- * @author tcunning
- * @since Version 4.4
- */
-public interface MVELMonitorMBean {
- public ArrayList getMonitoredEvents();
- public void reset();
-}
Copied: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/actions/monitoring/MVELMonitorMBean.java (from rev 24846, labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/actions/monitoring/MVELMonitorMBean.java)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/actions/monitoring/MVELMonitorMBean.java (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/actions/monitoring/MVELMonitorMBean.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -0,0 +1,36 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.soa.esb.actions.monitoring;
+
+import java.util.ArrayList;
+import java.util.Set;
+
+/**
+ * Interface for the MVEL Monitoring MBean.
+ *
+ * @author tcunning
+ * @since Version 4.4
+ */
+public interface MVELMonitorMBean {
+ public ArrayList getMonitoredEvents();
+ public void reset();
+}
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/actions/monitoring/MVELMonitoringAction.java
===================================================================
--- labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/actions/monitoring/MVELMonitoringAction.java 2009-01-21 09:35:03 UTC (rev 24846)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/actions/monitoring/MVELMonitoringAction.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -1,125 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2006, JBoss Inc., and individual contributors as indicated
- * by the @authors tag. See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
-package org.jboss.soa.esb.actions.monitoring;
-
-import java.util.ArrayList;
-
-import org.apache.log4j.Logger;
-import org.jboss.soa.esb.actions.AbstractActionPipelineProcessor;
-import org.jboss.soa.esb.actions.ActionProcessingException;
-import org.jboss.soa.esb.actions.scripting.ScriptingAction;
-import org.jboss.soa.esb.helpers.ConfigTree;
-import org.jboss.soa.esb.message.Message;
-import org.jboss.soa.esb.message.mapping.ObjectMapper;
-import org.jboss.soa.esb.message.mapping.ObjectMappingException;
-
-import bsh.EvalError;
-import bsh.Interpreter;
-
-/**
- * Action that monitors messages and has the ability to store information found at a particular MVEL pattern.
- * Uses beanshell evaluation to decide whether to store the message information.
- *
- * @author tcunning
- * @since Version 4.4
- */
-public class MVELMonitoringAction extends AbstractActionPipelineProcessor {
-
- public static final String MONITOR_VALUE = "monitor-value";
- public static final String MVEL_PATTERN = "mvel-pattern";
- public static final String PATTERN_NAME = "pattern-name";
- public static final String PATTERN_CONDITIONAL = "pattern-conditional";
-
- private static final String BEANSHELL_VARIABLE = "beanshellVar";
-
- private ObjectMapper objectMapper;
- private MVELMonitor mvelMonitor;
-
- ArrayList <MonitoringPatternBean> list = null;
-
- private static Logger logger = Logger.getLogger(ScriptingAction.class);
- protected ConfigTree _config;
-
- /**
- * Constructor that forms
- * @param config ConfigTree
- */
- public MVELMonitoringAction(ConfigTree config) {
- this._config = config;
-
- ConfigTree[] configTree = _config.getChildren(MONITOR_VALUE);
- if (null == configTree || configTree.length < 1)
- {
- logger.warn("Missing or empty destination list - This action class won't have any effect");
- return;
- }
-
- list = new ArrayList<MonitoringPatternBean>();
-
- for (ConfigTree curr : configTree)
- {
- try
- {
- String pattern = curr.getAttribute(MVEL_PATTERN, "");
- String name = curr.getAttribute(PATTERN_NAME, "");
- String conditional = curr.getAttribute(PATTERN_CONDITIONAL, "");
- list.add(new MonitoringPatternBean(pattern, name, conditional));
- }
- catch (Exception e)
- {
- e.printStackTrace();
- }
- }
-
- mvelMonitor = new MVELMonitor(config);
- try {
- mvelMonitor.registerMBean();
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
-
- public Message process(Message message) throws ActionProcessingException {
- objectMapper = new ObjectMapper();
- if (list != null) {
- for (int i = 0; i<list.size(); i++) {
- MonitoringPatternBean mpb = list.get(i);
- String object = null;
- ObjectMapper mapper = new ObjectMapper();
- try {
- object = (String) mapper.getObjectFromMessage(message, mpb.getPattern());
- Interpreter inter = new Interpreter();
- inter.eval(BEANSHELL_VARIABLE + " = " + object + mpb.getConditional());
- Boolean b = (Boolean)inter.get(BEANSHELL_VARIABLE);
- if (b.booleanValue()) {
- mvelMonitor.addEvent(message, mpb);
- }
- } catch (ObjectMappingException e1) {
- throw new ActionProcessingException(e1);
- } catch (EvalError e) {
- throw new ActionProcessingException(e);
- }
- }
- }
- return message;
- }
-}
Copied: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/actions/monitoring/MVELMonitoringAction.java (from rev 24846, labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/actions/monitoring/MVELMonitoringAction.java)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/actions/monitoring/MVELMonitoringAction.java (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/actions/monitoring/MVELMonitoringAction.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -0,0 +1,125 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.soa.esb.actions.monitoring;
+
+import java.util.ArrayList;
+
+import org.apache.log4j.Logger;
+import org.jboss.soa.esb.actions.AbstractActionPipelineProcessor;
+import org.jboss.soa.esb.actions.ActionProcessingException;
+import org.jboss.soa.esb.actions.scripting.ScriptingAction;
+import org.jboss.soa.esb.helpers.ConfigTree;
+import org.jboss.soa.esb.message.Message;
+import org.jboss.soa.esb.message.mapping.ObjectMapper;
+import org.jboss.soa.esb.message.mapping.ObjectMappingException;
+
+import bsh.EvalError;
+import bsh.Interpreter;
+
+/**
+ * Action that monitors messages and has the ability to store information found at a particular MVEL pattern.
+ * Uses beanshell evaluation to decide whether to store the message information.
+ *
+ * @author tcunning
+ * @since Version 4.4
+ */
+public class MVELMonitoringAction extends AbstractActionPipelineProcessor {
+
+ public static final String MONITOR_VALUE = "monitor-value";
+ public static final String MVEL_PATTERN = "mvel-pattern";
+ public static final String PATTERN_NAME = "pattern-name";
+ public static final String PATTERN_CONDITIONAL = "pattern-conditional";
+
+ private static final String BEANSHELL_VARIABLE = "beanshellVar";
+
+ private ObjectMapper objectMapper;
+ private MVELMonitor mvelMonitor;
+
+ ArrayList <MonitoringPatternBean> list = null;
+
+ private static Logger logger = Logger.getLogger(ScriptingAction.class);
+ protected ConfigTree _config;
+
+ /**
+ * Constructor that forms
+ * @param config ConfigTree
+ */
+ public MVELMonitoringAction(ConfigTree config) {
+ this._config = config;
+
+ ConfigTree[] configTree = _config.getChildren(MONITOR_VALUE);
+ if (null == configTree || configTree.length < 1)
+ {
+ logger.warn("Missing or empty destination list - This action class won't have any effect");
+ return;
+ }
+
+ list = new ArrayList<MonitoringPatternBean>();
+
+ for (ConfigTree curr : configTree)
+ {
+ try
+ {
+ String pattern = curr.getAttribute(MVEL_PATTERN, "");
+ String name = curr.getAttribute(PATTERN_NAME, "");
+ String conditional = curr.getAttribute(PATTERN_CONDITIONAL, "");
+ list.add(new MonitoringPatternBean(pattern, name, conditional));
+ }
+ catch (Exception e)
+ {
+ e.printStackTrace();
+ }
+ }
+
+ mvelMonitor = new MVELMonitor(config);
+ try {
+ mvelMonitor.registerMBean();
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
+
+ public Message process(Message message) throws ActionProcessingException {
+ objectMapper = new ObjectMapper();
+ if (list != null) {
+ for (int i = 0; i<list.size(); i++) {
+ MonitoringPatternBean mpb = list.get(i);
+ String object = null;
+ ObjectMapper mapper = new ObjectMapper();
+ try {
+ object = (String) mapper.getObjectFromMessage(message, mpb.getPattern());
+ Interpreter inter = new Interpreter();
+ inter.eval(BEANSHELL_VARIABLE + " = " + object + mpb.getConditional());
+ Boolean b = (Boolean)inter.get(BEANSHELL_VARIABLE);
+ if (b.booleanValue()) {
+ mvelMonitor.addEvent(message, mpb);
+ }
+ } catch (ObjectMappingException e1) {
+ throw new ActionProcessingException(e1);
+ } catch (EvalError e) {
+ throw new ActionProcessingException(e);
+ }
+ }
+ }
+ return message;
+ }
+}
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/actions/monitoring/MonitoringEventBean.java
===================================================================
--- labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/actions/monitoring/MonitoringEventBean.java 2009-01-21 09:35:03 UTC (rev 24846)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/actions/monitoring/MonitoringEventBean.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -1,64 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2006, JBoss Inc., and individual contributors as indicated
- * by the @authors tag. See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
-package org.jboss.soa.esb.actions.monitoring;
-
-import java.util.Date;
-
-import org.jboss.soa.esb.message.Message;
-
-/**
- * Bean for storing event and message information.
- *
- * @author tcunning
- * @since Version 4.4
- */
-public class MonitoringEventBean {
- private String pattern;
- private String name;
- private String conditional;
- private Message message;
-
- public MonitoringEventBean(Message message, MonitoringPatternBean mpb, String data) {
- this.pattern = mpb.getPattern();
- this.name = mpb.getName();
- this.conditional = mpb.getConditional();
- this.message = message;
- }
-
- public String getName() {
- return name;
- }
-
- public String getPattern() {
- return pattern;
- }
-
- public String getConditional() {
- return conditional;
- }
-
- public String toString() {
- return "Pattern [" + pattern + "] "
- + "Name [" + name + "] "
- + "Conditional [" + conditional + "] matched " + message.toString();
- }
-}
Copied: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/actions/monitoring/MonitoringEventBean.java (from rev 24846, labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/actions/monitoring/MonitoringEventBean.java)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/actions/monitoring/MonitoringEventBean.java (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/actions/monitoring/MonitoringEventBean.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -0,0 +1,64 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.soa.esb.actions.monitoring;
+
+import java.util.Date;
+
+import org.jboss.soa.esb.message.Message;
+
+/**
+ * Bean for storing event and message information.
+ *
+ * @author tcunning
+ * @since Version 4.4
+ */
+public class MonitoringEventBean {
+ private String pattern;
+ private String name;
+ private String conditional;
+ private Message message;
+
+ public MonitoringEventBean(Message message, MonitoringPatternBean mpb, String data) {
+ this.pattern = mpb.getPattern();
+ this.name = mpb.getName();
+ this.conditional = mpb.getConditional();
+ this.message = message;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public String getPattern() {
+ return pattern;
+ }
+
+ public String getConditional() {
+ return conditional;
+ }
+
+ public String toString() {
+ return "Pattern [" + pattern + "] "
+ + "Name [" + name + "] "
+ + "Conditional [" + conditional + "] matched " + message.toString();
+ }
+}
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/actions/monitoring/MonitoringPatternBean.java
===================================================================
--- labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/actions/monitoring/MonitoringPatternBean.java 2009-01-21 09:35:03 UTC (rev 24846)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/actions/monitoring/MonitoringPatternBean.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -1,81 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2006, JBoss Inc., and individual contributors as indicated
- * by the @authors tag. See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
-package org.jboss.soa.esb.actions.monitoring;
-
-import java.io.Serializable;
-
-/**
- * Bean for storing pattern information. This bean stores:
- *
- * pattern - the pattern that is being monitored
- * name - the name for this pattern
- * conditional - expression that is tested to determine whether the information should be stored
- * messageString - the Message in the form of an XML string
- *
- * @author tcunning
- * @since Version 4.4
- */
-public class MonitoringPatternBean implements Serializable {
- private String pattern;
- private String name;
- private String conditional;
- private String messageString;
-
- /**
- * Constructor method.
- * @param name name
- * @param pattern pattern
- * @param conditional conditional
- */
- public MonitoringPatternBean(String name, String pattern, String conditional) {
- this.pattern = pattern;
- this.name = name;
- this.conditional = conditional;
- }
-
- public String getName() {
- return name;
- }
-
- public String getPattern() {
- return pattern;
- }
-
- public String getConditional() {
- return conditional;
- }
-
- public String getMessageString() {
- return messageString;
- }
-
- public void setMessageString(String f_messageString) {
- messageString = f_messageString;
- }
-
- public String toString() {
- return "Pattern [" + pattern + "] "
- + "Name [" + name + "] "
- + "Conditional [" + conditional + "]"
- + "Message [" + messageString + "]";
- }
-}
\ No newline at end of file
Copied: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/actions/monitoring/MonitoringPatternBean.java (from rev 24846, labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/actions/monitoring/MonitoringPatternBean.java)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/actions/monitoring/MonitoringPatternBean.java (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/actions/monitoring/MonitoringPatternBean.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -0,0 +1,81 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.soa.esb.actions.monitoring;
+
+import java.io.Serializable;
+
+/**
+ * Bean for storing pattern information. This bean stores:
+ *
+ * pattern - the pattern that is being monitored
+ * name - the name for this pattern
+ * conditional - expression that is tested to determine whether the information should be stored
+ * messageString - the Message in the form of an XML string
+ *
+ * @author tcunning
+ * @since Version 4.4
+ */
+public class MonitoringPatternBean implements Serializable {
+ private String pattern;
+ private String name;
+ private String conditional;
+ private String messageString;
+
+ /**
+ * Constructor method.
+ * @param name name
+ * @param pattern pattern
+ * @param conditional conditional
+ */
+ public MonitoringPatternBean(String name, String pattern, String conditional) {
+ this.pattern = pattern;
+ this.name = name;
+ this.conditional = conditional;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public String getPattern() {
+ return pattern;
+ }
+
+ public String getConditional() {
+ return conditional;
+ }
+
+ public String getMessageString() {
+ return messageString;
+ }
+
+ public void setMessageString(String f_messageString) {
+ messageString = f_messageString;
+ }
+
+ public String toString() {
+ return "Pattern [" + pattern + "] "
+ + "Name [" + name + "] "
+ + "Conditional [" + conditional + "]"
+ + "Message [" + messageString + "]";
+ }
+}
\ No newline at end of file
Modified: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/actions/routing/HttpRouter.java
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/actions/routing/HttpRouter.java 2009-01-21 14:47:17 UTC (rev 24849)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/actions/routing/HttpRouter.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -37,19 +37,21 @@
/**
* HttpRouter Action Processor. This ActionProcessor will forward the message to an url for further processing.
* If the routeUrl property is not set a default url will be used.
- *
+ *
* <p/> Sample Action Configuration:
- *
+ *
* <pre>
* <Action class="org.jboss.soa.esb.actions.routing.HttpRouter">
* <property name="routeUrl" value="http://localhost:8888"</property>
* </Action>
* </pre>
*
- *
*
+ *
* @author <a href="mailto:johan.kumps at telenet.be">Johan Kumps</a>
+ * @deprecated {@link org.jboss.soa.esb.actions.routing.http.HttpRouter} can provide the same functionality and more.
*/
+ at Deprecated
public class HttpRouter extends AbstractActionPipelineProcessor {
/* The logger for this class */
@@ -67,7 +69,7 @@
/**
* Constructing a HttpRouter instance
- *
+ *
* @param configTree
* the configuration to use in this HttpRouter instance
*/
@@ -82,7 +84,7 @@
/*
* (non-Javadoc)
- *
+ *
* @see org.jboss.soa.esb.actions.ActionProcessor#process(java.lang.Object)
*/
public org.jboss.soa.esb.message.Message process(
@@ -128,7 +130,7 @@
/**
* Method obtaining an attribute from the configuration tree
- *
+ *
* @param configTree
* the configuration to use
* @param p_sAtt
Modified: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/actions/routing/JMSRouter.java
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/actions/routing/JMSRouter.java 2009-01-21 14:47:17 UTC (rev 24849)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/actions/routing/JMSRouter.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -53,6 +53,7 @@
import org.jboss.soa.esb.helpers.NamingContextPool;
import org.jboss.soa.esb.notification.jms.DefaultJMSPropertiesSetter;
import org.jboss.soa.esb.notification.jms.JMSPropertiesSetter;
+import org.jboss.soa.esb.util.ClassUtil;
import org.jboss.soa.esb.util.Util;
/**
@@ -75,6 +76,7 @@
* <property name="time-to-live" value="javax.jms.Message.DEFAULT_TIME_TO_LIVE"/>
* <property name="security-principal" value="username"/>
* <property name="security-credential" value="pasword"/>
+ * <property name="property-strategy" value="<property setter class name>" />
* <property name="message-prop-<i>>prop-name<</i>="<i>> value="prop-value<</i>" />
* </pre>
* Description of configuration attribues:
@@ -89,6 +91,7 @@
* <li><i>time-to-live</i>: the JMS Time-To-Live to be used. Default is "javax.jms.Message.DEFAULT_TIME_TO_LIVE"
* <li><i>security-principal</i>: security principal use when creating the JMS connection.
* <li><i>security-credential</i>: the security credentials to use when creating the JMS connection.
+ * <li><i>property-strategy</i>: the implementation of the JMSPropertiesSetter interface, if overriding the default.
* <li><i>message-prop</i>: properties to be set on the message are prefixed with "message-prop-".
* </ul>
*
@@ -121,6 +124,10 @@
* Security credential used when creating the JMS connection
*/
public static final String SECURITY_CREDITIAL = "security-credential";
+ /**
+ * property strategy class.
+ */
+ public static final String PROPERTY_STRATEGY = "property-strategy" ;
/**
* Routing properties.
*/
@@ -136,7 +143,7 @@
/**
* Strategy for setting JMSProperties
*/
- private JMSPropertiesSetter jmsPropertiesStrategy = new DefaultJMSPropertiesSetter();
+ private final JMSPropertiesSetter jmsPropertiesStrategy ;
/**
* Whether messages sent by this router should be sent with delivery mode
* DeliveryMode.PERSISTENT or DeliveryMode.NON_PERSISTENT
@@ -190,6 +197,17 @@
jndiPkgPrefix = properties.getAttribute( JMSEpr.JNDI_PKG_PREFIX_TAG );
connectionFactory = properties.getAttribute( JMSEpr.CONNECTION_FACTORY_TAG );
+ final String propertyStrategy = properties.getAttribute(PROPERTY_STRATEGY) ;
+ if (propertyStrategy == null) {
+ jmsPropertiesStrategy = new DefaultJMSPropertiesSetter() ;
+ } else {
+ try {
+ final Class propertyStrategyClass = ClassUtil.forName(propertyStrategy, getClass()) ;
+ jmsPropertiesStrategy = (JMSPropertiesSetter)propertyStrategyClass.newInstance() ;
+ } catch (final Throwable th) {
+ throw new ConfigurationException("Failed to instantiate property strategy class: " + propertyStrategy, th) ;
+ }
+ }
final String securityPrincipal = properties.getAttribute(SECURITY_PRINCIPAL);
final String securityCredential = properties.getAttribute(SECURITY_CREDITIAL);
Modified: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/actions/scripting/ScriptingAction.java
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/actions/scripting/ScriptingAction.java 2009-01-21 14:47:17 UTC (rev 24849)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/actions/scripting/ScriptingAction.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -139,8 +139,9 @@
private ConfigTree config;
private MessagePayloadProxy payloadProxy;
- private String script = null;
- private String language = null;
+ private String script ;
+ private String source ;
+ private String language ;
public ScriptingAction(ConfigTree config)
{
@@ -152,6 +153,7 @@
{
// attempt to get the script
String scriptPath = getAttribute("script");
+ final String source ;
if (scriptPath == null)
{
boolean supportMessageBasedScripting = config.getBooleanAttribute("supportMessageBasedScripting", false);
@@ -162,6 +164,7 @@
logger.debug("No script specified on action config " + config.getAttribute("name")
+ ". Expecting script to be in message.");
}
+ source = "Embedded script in message" ;
}
else
{
@@ -192,7 +195,9 @@
{
try { if (scriptStream != null) scriptStream.close(); } catch (Throwable t) {}
}
+ source = scriptPath ;
}
+ this.source = source ;
// attempt to get the language
language = getAttribute("language");
if (language == null && script != null)
@@ -237,11 +242,16 @@
bsf.declareBean( "payloadProxy", payloadProxy, payloadProxy.getClass() );
bsf.declareBean( "logger", logger, logger.getClass() );
// NOTE: cannot use eval here since it does not work for all engines (jython in particular)
- bsf.exec( language, null, 0, 0, getScript(message) );
+ bsf.exec( language, source, 0, 0, getScript(message) );
}
catch (BSFException bsfe)
{
- throw new ActionProcessingException(bsfe);
+ final String error = "Exception caught while processing script: '" + source + "'" ;
+ if (logger.isDebugEnabled())
+ {
+ logger.debug(error, bsfe) ;
+ }
+ throw new ActionProcessingException(error, bsfe);
}
finally
{
Copied: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/actions/validation (from rev 24846, labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/actions/validation)
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/actions/validation/SchemaValidationAction.java
===================================================================
--- labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/actions/validation/SchemaValidationAction.java 2009-01-21 09:35:03 UTC (rev 24846)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/actions/validation/SchemaValidationAction.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -1,219 +0,0 @@
-package org.jboss.soa.esb.actions.validation;
-
-import java.io.ByteArrayInputStream;
-import java.io.IOException;
-
-import javax.xml.XMLConstants;
-import javax.xml.parsers.DocumentBuilder;
-import javax.xml.parsers.DocumentBuilderFactory;
-import javax.xml.parsers.ParserConfigurationException;
-import javax.xml.transform.dom.DOMResult;
-import javax.xml.transform.dom.DOMSource;
-import javax.xml.transform.stream.StreamSource;
-import javax.xml.validation.Schema;
-import javax.xml.validation.SchemaFactory;
-import javax.xml.validation.Validator;
-
-import org.apache.log4j.Logger;
-import org.jboss.soa.esb.ConfigurationException;
-import org.jboss.soa.esb.actions.AbstractActionPipelineProcessor;
-import org.jboss.soa.esb.actions.ActionProcessingException;
-import org.jboss.soa.esb.helpers.ConfigTree;
-import org.jboss.soa.esb.listeners.message.MessageDeliverException;
-import org.jboss.soa.esb.message.Message;
-import org.jboss.soa.esb.message.MessagePayloadProxy;
-import org.jboss.soa.esb.util.ClassUtil;
-import org.w3c.dom.Document;
-import org.xml.sax.SAXException;
-
-/**
- * An action that validates the passed-in message payload against the configured schema.
- * The payload can be of either type byte[] or String.
- *
- * Example configuration:
- * <pre>{@code
- * <action name="validate" class="org.jboss.soa.esb.actions.validation.SchemaValidationAction">
- * <property name="schema" value="/test.xsd"/>
- * </action>
- * }</pre>
- * Optional properties:
- * <lu>
- * <li><i>schemaLanguage</i> the schema langauage to use. Defaults to "http://www.w3.org/2001/XMLSchema".</li>
- * </lu>
- *
- * @author <a href="mailto:dbevenius at jboss.com">Daniel Bevenius</a>
- *
- */
-public class SchemaValidationAction extends AbstractActionPipelineProcessor
-{
- /**
- * Logger.
- */
- final Logger log = Logger.getLogger(SchemaValidationAction.class);
-
- /**
- * Path to the xsd.
- */
- private String xsd;
-
- /**
- * Schema language.
- */
- private String schemaLanguage;
-
- /**
- * DocumentBuilderFactory.
- */
- private DocumentBuilderFactory docBuilderFactory;
-
- /**
- * The schema that will be used for validation.
- */
- private Schema schema;
-
- /**
- * The {@link MessagePayloadProxy}.
- */
- private MessagePayloadProxy payloadProxy;
-
- /**
- * Sole constructor that expects the config tree to have the attribute "schema"
- *
- * @param config The action configuration.
- * @throws ConfigurationException
- */
- public SchemaValidationAction(final ConfigTree config) throws ConfigurationException
- {
- xsd = config.getRequiredAttribute("schema");
- schemaLanguage = config.getAttribute("schemaLanguage", XMLConstants.W3C_XML_SCHEMA_NS_URI);
-
- payloadProxy = new MessagePayloadProxy(config);
- docBuilderFactory = createDocumentBuilderFactory();
- schema = createSchema(xsd);
- }
-
- /**
- * Processes the messsage, extracting the payload and validating the xml against the
- * configured schema.
- *
- * @param message The esb Message object.
- * @return Message The esb Message unmodified.
- *
- * @throws ActionProcessingException If a exception occurs while trying to validate
- *
- */
- public Message process(final Message message) throws ActionProcessingException
- {
- validate(extractXmlFromPayload(message));
- return message;
- }
-
- private void validate(final String xml) throws ActionProcessingException
- {
- final DOMResult result = new DOMResult();
- try
- {
- final Validator validator = schema.newValidator();
- validator.validate(createDomSourceFromPayload(xml), result);
- }
- catch (final SAXException e)
- {
- final String errorMsg = "SAXExcption while trying to validate against schema '" + xsd + "'";
- log.error(errorMsg, e);
- throw new ValidationException(errorMsg, e, result);
- }
- catch (IOException e)
- {
- throw new ActionProcessingException(e.getMessage(), e);
- }
- }
-
- private String extractXmlFromPayload(final Message message) throws ActionProcessingException
- {
- Object payload;
- try
- {
- payload = payloadProxy.getPayload(message);
- }
- catch (final MessageDeliverException e)
- {
- throw new ActionProcessingException(e.getMessage(), e);
- }
-
- if (payload instanceof byte[])
- {
- return new String((byte[]) payload);
- }
- else if (payload instanceof String)
- {
- return (String) payload;
- }
- else
- {
- throw new ActionProcessingException("Message payload must be either a byte[] or a String. The payload type was '" + payload.getClass().getName() + "'");
- }
- }
-
- /**
- * Returns a DOMSource from the passed in xml String.
- *
- * @param xml The xml payload.
- * @return DOMSource The {@link DOMSource} representation of the passed in xml.
- *
- * @throws ActionProcessingException If an exception occurs while trying to create the DOMSource.
- */
- private DOMSource createDomSourceFromPayload(final String xml) throws ActionProcessingException
- {
- try
- {
- final DocumentBuilder parser = docBuilderFactory.newDocumentBuilder();
- final Document document = parser.parse(new ByteArrayInputStream(xml.getBytes()));
- return new DOMSource(document);
- }
- catch (final ParserConfigurationException e)
- {
- throw new ActionProcessingException(e.getMessage(), e);
- }
- catch (final SAXException e)
- {
- throw new ActionProcessingException(e.getMessage(), e);
- }
- catch (final IOException e)
- {
- throw new ActionProcessingException(e.getMessage(), e);
- }
- }
-
- /**
- * Creates a Validator instance which will be used for schema validation.
- *
- * @param xsd The schema to validate against.
- * @return Validator The Validator instance.
- *
- * @throws ConfigurationException Is an exception is thrown while trying to create the schema.
- */
- private Schema createSchema(final String xsd) throws ConfigurationException
- {
- final SchemaFactory schemafactory = SchemaFactory.newInstance(schemaLanguage);
- try
- {
- return schemafactory.newSchema(new StreamSource(ClassUtil.getResourceAsStream(xsd, getClass())));
- }
- catch (final SAXException e)
- {
- throw new ConfigurationException("Could not create a validator for schema '" + xsd + "'", e);
- }
- }
-
- /**
- * Creates a DocumentBuilderFactory that is namespace aware.
- *
- * @return {@link DocumentBuilderFactory} that is namespace aware.
- */
- private DocumentBuilderFactory createDocumentBuilderFactory()
- {
- final DocumentBuilderFactory docBuilderFactory = DocumentBuilderFactory.newInstance();
- docBuilderFactory.setNamespaceAware(true);
- return docBuilderFactory;
- }
-}
Copied: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/actions/validation/SchemaValidationAction.java (from rev 24846, labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/actions/validation/SchemaValidationAction.java)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/actions/validation/SchemaValidationAction.java (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/actions/validation/SchemaValidationAction.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -0,0 +1,219 @@
+package org.jboss.soa.esb.actions.validation;
+
+import java.io.ByteArrayInputStream;
+import java.io.IOException;
+
+import javax.xml.XMLConstants;
+import javax.xml.parsers.DocumentBuilder;
+import javax.xml.parsers.DocumentBuilderFactory;
+import javax.xml.parsers.ParserConfigurationException;
+import javax.xml.transform.dom.DOMResult;
+import javax.xml.transform.dom.DOMSource;
+import javax.xml.transform.stream.StreamSource;
+import javax.xml.validation.Schema;
+import javax.xml.validation.SchemaFactory;
+import javax.xml.validation.Validator;
+
+import org.apache.log4j.Logger;
+import org.jboss.soa.esb.ConfigurationException;
+import org.jboss.soa.esb.actions.AbstractActionPipelineProcessor;
+import org.jboss.soa.esb.actions.ActionProcessingException;
+import org.jboss.soa.esb.helpers.ConfigTree;
+import org.jboss.soa.esb.listeners.message.MessageDeliverException;
+import org.jboss.soa.esb.message.Message;
+import org.jboss.soa.esb.message.MessagePayloadProxy;
+import org.jboss.soa.esb.util.ClassUtil;
+import org.w3c.dom.Document;
+import org.xml.sax.SAXException;
+
+/**
+ * An action that validates the passed-in message payload against the configured schema.
+ * The payload can be of either type byte[] or String.
+ *
+ * Example configuration:
+ * <pre>{@code
+ * <action name="validate" class="org.jboss.soa.esb.actions.validation.SchemaValidationAction">
+ * <property name="schema" value="/test.xsd"/>
+ * </action>
+ * }</pre>
+ * Optional properties:
+ * <lu>
+ * <li><i>schemaLanguage</i> the schema langauage to use. Defaults to "http://www.w3.org/2001/XMLSchema".</li>
+ * </lu>
+ *
+ * @author <a href="mailto:dbevenius at jboss.com">Daniel Bevenius</a>
+ *
+ */
+public class SchemaValidationAction extends AbstractActionPipelineProcessor
+{
+ /**
+ * Logger.
+ */
+ final Logger log = Logger.getLogger(SchemaValidationAction.class);
+
+ /**
+ * Path to the xsd.
+ */
+ private String xsd;
+
+ /**
+ * Schema language.
+ */
+ private String schemaLanguage;
+
+ /**
+ * DocumentBuilderFactory.
+ */
+ private DocumentBuilderFactory docBuilderFactory;
+
+ /**
+ * The schema that will be used for validation.
+ */
+ private Schema schema;
+
+ /**
+ * The {@link MessagePayloadProxy}.
+ */
+ private MessagePayloadProxy payloadProxy;
+
+ /**
+ * Sole constructor that expects the config tree to have the attribute "schema"
+ *
+ * @param config The action configuration.
+ * @throws ConfigurationException
+ */
+ public SchemaValidationAction(final ConfigTree config) throws ConfigurationException
+ {
+ xsd = config.getRequiredAttribute("schema");
+ schemaLanguage = config.getAttribute("schemaLanguage", XMLConstants.W3C_XML_SCHEMA_NS_URI);
+
+ payloadProxy = new MessagePayloadProxy(config);
+ docBuilderFactory = createDocumentBuilderFactory();
+ schema = createSchema(xsd);
+ }
+
+ /**
+ * Processes the messsage, extracting the payload and validating the xml against the
+ * configured schema.
+ *
+ * @param message The esb Message object.
+ * @return Message The esb Message unmodified.
+ *
+ * @throws ActionProcessingException If a exception occurs while trying to validate
+ *
+ */
+ public Message process(final Message message) throws ActionProcessingException
+ {
+ validate(extractXmlFromPayload(message));
+ return message;
+ }
+
+ private void validate(final String xml) throws ActionProcessingException
+ {
+ final DOMResult result = new DOMResult();
+ try
+ {
+ final Validator validator = schema.newValidator();
+ validator.validate(createDomSourceFromPayload(xml), result);
+ }
+ catch (final SAXException e)
+ {
+ final String errorMsg = "SAXExcption while trying to validate against schema '" + xsd + "'";
+ log.error(errorMsg, e);
+ throw new ValidationException(errorMsg, e, result);
+ }
+ catch (IOException e)
+ {
+ throw new ActionProcessingException(e.getMessage(), e);
+ }
+ }
+
+ private String extractXmlFromPayload(final Message message) throws ActionProcessingException
+ {
+ Object payload;
+ try
+ {
+ payload = payloadProxy.getPayload(message);
+ }
+ catch (final MessageDeliverException e)
+ {
+ throw new ActionProcessingException(e.getMessage(), e);
+ }
+
+ if (payload instanceof byte[])
+ {
+ return new String((byte[]) payload);
+ }
+ else if (payload instanceof String)
+ {
+ return (String) payload;
+ }
+ else
+ {
+ throw new ActionProcessingException("Message payload must be either a byte[] or a String. The payload type was '" + payload.getClass().getName() + "'");
+ }
+ }
+
+ /**
+ * Returns a DOMSource from the passed in xml String.
+ *
+ * @param xml The xml payload.
+ * @return DOMSource The {@link DOMSource} representation of the passed in xml.
+ *
+ * @throws ActionProcessingException If an exception occurs while trying to create the DOMSource.
+ */
+ private DOMSource createDomSourceFromPayload(final String xml) throws ActionProcessingException
+ {
+ try
+ {
+ final DocumentBuilder parser = docBuilderFactory.newDocumentBuilder();
+ final Document document = parser.parse(new ByteArrayInputStream(xml.getBytes()));
+ return new DOMSource(document);
+ }
+ catch (final ParserConfigurationException e)
+ {
+ throw new ActionProcessingException(e.getMessage(), e);
+ }
+ catch (final SAXException e)
+ {
+ throw new ActionProcessingException(e.getMessage(), e);
+ }
+ catch (final IOException e)
+ {
+ throw new ActionProcessingException(e.getMessage(), e);
+ }
+ }
+
+ /**
+ * Creates a Validator instance which will be used for schema validation.
+ *
+ * @param xsd The schema to validate against.
+ * @return Validator The Validator instance.
+ *
+ * @throws ConfigurationException Is an exception is thrown while trying to create the schema.
+ */
+ private Schema createSchema(final String xsd) throws ConfigurationException
+ {
+ final SchemaFactory schemafactory = SchemaFactory.newInstance(schemaLanguage);
+ try
+ {
+ return schemafactory.newSchema(new StreamSource(ClassUtil.getResourceAsStream(xsd, getClass())));
+ }
+ catch (final SAXException e)
+ {
+ throw new ConfigurationException("Could not create a validator for schema '" + xsd + "'", e);
+ }
+ }
+
+ /**
+ * Creates a DocumentBuilderFactory that is namespace aware.
+ *
+ * @return {@link DocumentBuilderFactory} that is namespace aware.
+ */
+ private DocumentBuilderFactory createDocumentBuilderFactory()
+ {
+ final DocumentBuilderFactory docBuilderFactory = DocumentBuilderFactory.newInstance();
+ docBuilderFactory.setNamespaceAware(true);
+ return docBuilderFactory;
+ }
+}
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/actions/validation/ValidationException.java
===================================================================
--- labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/actions/validation/ValidationException.java 2009-01-21 09:35:03 UTC (rev 24846)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/actions/validation/ValidationException.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -1,31 +0,0 @@
-package org.jboss.soa.esb.actions.validation;
-
-import javax.xml.transform.dom.DOMResult;
-
-import org.jboss.soa.esb.actions.ActionProcessingException;
-
-/**
- * Validation exception extends ActionProcessingExcption and
- * adds a constructor that takes a {@link DOMResult}.
- *
- * @author <a href="mailto:dbevenius at jboss.com">Daniel Bevenius</a>
- */
-public class ValidationException extends ActionProcessingException
-{
- private static final long serialVersionUID = 1L;
-
- private DOMResult domResult;
-
- public ValidationException(final String message, final Throwable cause, final DOMResult domResult)
- {
- super(message, cause);
- this.domResult = domResult;
- }
-
- public DOMResult getDomResult()
- {
- return domResult;
- }
-
-
-}
Copied: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/actions/validation/ValidationException.java (from rev 24846, labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/actions/validation/ValidationException.java)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/actions/validation/ValidationException.java (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/actions/validation/ValidationException.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -0,0 +1,31 @@
+package org.jboss.soa.esb.actions.validation;
+
+import javax.xml.transform.dom.DOMResult;
+
+import org.jboss.soa.esb.actions.ActionProcessingException;
+
+/**
+ * Validation exception extends ActionProcessingExcption and
+ * adds a constructor that takes a {@link DOMResult}.
+ *
+ * @author <a href="mailto:dbevenius at jboss.com">Daniel Bevenius</a>
+ */
+public class ValidationException extends ActionProcessingException
+{
+ private static final long serialVersionUID = 1L;
+
+ private DOMResult domResult;
+
+ public ValidationException(final String message, final Throwable cause, final DOMResult domResult)
+ {
+ super(message, cause);
+ this.domResult = domResult;
+ }
+
+ public DOMResult getDomResult()
+ {
+ return domResult;
+ }
+
+
+}
Modified: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/addressing/Call.java
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/addressing/Call.java 2009-01-21 14:47:17 UTC (rev 24849)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/addressing/Call.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -94,9 +94,6 @@
public void setTo (EPR epr)
{
- if (epr == null)
- throw new IllegalArgumentException();
-
_to = epr;
}
Modified: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/client/ServiceInvoker.java
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/client/ServiceInvoker.java 2009-01-21 14:47:17 UTC (rev 24849)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/client/ServiceInvoker.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -19,18 +19,23 @@
*/
package org.jboss.soa.esb.client;
+import java.security.AccessController;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
+import javax.security.auth.Subject;
+
import org.apache.log4j.Logger;
import org.jboss.internal.soa.esb.addressing.eprs.DefaultHttpReplyToEpr;
import org.jboss.internal.soa.esb.addressing.helpers.EPRHelper;
import org.jboss.internal.soa.esb.assertion.AssertArgument;
import org.jboss.internal.soa.esb.couriers.HttpCourier;
import org.jboss.internal.soa.esb.couriers.TwoWayCourierImpl;
+import org.jboss.internal.soa.esb.services.security.PrivateCryptoUtil;
import org.jboss.soa.esb.ConfigurationException;
import org.jboss.soa.esb.Service;
+import org.jboss.soa.esb.addressing.Call;
import org.jboss.soa.esb.addressing.EPR;
import org.jboss.soa.esb.addressing.MalformedEPRException;
import org.jboss.soa.esb.addressing.PortReference;
@@ -38,9 +43,12 @@
import org.jboss.soa.esb.common.Configuration;
import org.jboss.soa.esb.common.Environment;
import org.jboss.soa.esb.common.ModulePropertyManager;
+import org.jboss.soa.esb.common.TransactionStrategy;
+import org.jboss.soa.esb.common.TransactionStrategyException;
import org.jboss.soa.esb.couriers.Courier;
import org.jboss.soa.esb.couriers.CourierException;
import org.jboss.soa.esb.couriers.CourierFactory;
+import org.jboss.soa.esb.couriers.CourierTimeoutException;
import org.jboss.soa.esb.couriers.CourierTransportException;
import org.jboss.soa.esb.couriers.CourierServiceBindException;
import org.jboss.soa.esb.couriers.CourierMarshalUnmarshalException;
@@ -51,7 +59,9 @@
import org.jboss.soa.esb.listeners.ha.LoadBalancePolicy;
import org.jboss.soa.esb.listeners.ha.ServiceClusterInfo;
import org.jboss.soa.esb.listeners.ha.ServiceClusterInfoImpl;
+import org.jboss.soa.esb.listeners.message.IncompatibleTransactionScopeException;
import org.jboss.soa.esb.listeners.message.MessageDeliverException;
+import org.jboss.soa.esb.listeners.message.ResponseTimeoutException;
import org.jboss.soa.esb.listeners.message.errors.Factory;
import org.jboss.soa.esb.message.Message;
import org.jboss.soa.esb.message.util.Type;
@@ -59,6 +69,9 @@
import org.jboss.soa.esb.services.persistence.RedeliverStore;
import org.jboss.soa.esb.services.registry.RegistryException;
import org.jboss.soa.esb.services.registry.ServiceNotFoundException;
+import org.jboss.soa.esb.services.security.SecurityContext;
+import org.jboss.soa.esb.services.security.SecurityService;
+import org.jboss.soa.esb.services.security.SecurityServiceException;
import org.jboss.soa.esb.util.ClassUtil;
/**
@@ -67,10 +80,10 @@
* Manages loading of {@link EPR EPRs}, {@link Courier} selection and
* message delivery. Provides a unified/simplified interface for message
* delivery.
- *
+ *
* The ServiceInvoker will cache entries from the registry for the relevant
* service. This cache will be refreshed under the following conditions:
- *
+ *
* (i) all of the entries fail on a delivery attempt.
* (ii) the cache times out (see property org.jboss.soa.esb.registry.cache.life): default is
* 60 seconds.
@@ -82,19 +95,19 @@
public static final String INTERNAL_SERVICE_CATEGORY = "JBossESB-Internal";
public static final String DEAD_LETTER_SERVICE_NAME = "DeadLetterService";
public static final String DELIVER_TO = "org.jboss.soa.esb.deliver.to";
-
+
/*
* Remove (suspected) dead EPRs.
*/
-
+
private static boolean removeDeadEprs;
-
+
/*
* Throw an exception on delivery failure rather than retry?
*/
-
+
private static boolean exceptionOnDeliveryFailure;
-
+
/**
* Class logger.
*/
@@ -116,13 +129,13 @@
*/
private ServiceClusterInfo serviceClusterInfo;
/**
- *
+ *
*/
private Date expirationDate;
/**
- *
+ *
*/
- private long registryCacheLife;
+ private final long registryCacheLife;
/**
* Dead letter channel Service invoker.
*/
@@ -140,7 +153,7 @@
public ServiceInvoker(Service service) throws MessageDeliverException {
this(service, null) ;
}
-
+
/**
* Public constructor.
*
@@ -187,6 +200,10 @@
* Synchronously deliver the supplied message to the target service associated with this invoker instance.
* If the To field of the Message is set, then it will be ignored in favour of the equivalent information
* obtained through the parameters provided during instance construction.
+ *
+ * Redelivery on failure can be defined by setting the global org.jboss.soa.esb.dls.redeliver property in
+ * the configuration file or by setting it on a per message basis as a message property. The message property
+ * will be used in preference to the global value.
*
* @param message The message to be delivered.
* @param timeoutMillis Number of milliseconds before synchronous reply pickup should timeout.
@@ -200,13 +217,12 @@
try {
message = post(message, new EPRInvoker(timeoutMillis));
} catch (MessageDeliverException mde) {
- if ("true".equalsIgnoreCase(Configuration.getRedeliveryDlsOn())
- && !service.equals(dlqService)) {
+ if (asyncRedelivery(message) && !service.equals(dlqService)) {
//Send a copy to the DLQ, no retries for syncDeliveries
message.getProperties().setProperty(DELIVER_TO, service);
-
+
logger.info("Delivering message ["+message.getHeader()+"] to DLQ.");
-
+
deliverToDeadLetterService(message);
}
throw mde;
@@ -218,11 +234,15 @@
* Asynchronously deliver the supplied message to the target service associated with this invoker instance.
* If the To field of the Message is set, then it will be ignored in favour of the equivalent information
* obtained through the parameters provided during instance construction.
+ *
+ * Redelivery on failure can be defined by setting the global org.jboss.soa.esb.dls.redeliver property in
+ * the configuration file or by setting it on a per message basis as a message property. The message property
+ * will be used in preference to the global value.
*
* @param message The message to be delivered.
* @throws MessageDeliverException Failed to deliver message, after trying all available EPRs.
*/
- public void deliverAsync(Message message) throws MessageDeliverException
+ public void deliverAsync(Message message) throws MessageDeliverException
{
AssertArgument.isNotNull(message, "message");
// Not interested in a reply
@@ -230,13 +250,13 @@
post(message, new EPRInvoker());
} catch (MessageDeliverException mde) {
if (message.getProperties().getProperty(RedeliverStore.IS_REDELIVERY)==null
- && "true".equalsIgnoreCase(Configuration.getRedeliveryDlsOn())
+ && asyncRedelivery(message)
&& !service.equals(dlqService)) {
message.getProperties().setProperty(MessageStore.CLASSIFICATION, MessageStore.CLASSIFICATION_RDLVR);
message.getProperties().setProperty(DELIVER_TO, service);
try {
logger.info("Delivering message ["+message.getHeader()+"] to RDLVRQ.");
-
+
deliverToDeadLetterService(message);
} finally {
message.getProperties().remove(MessageStore.CLASSIFICATION);
@@ -268,7 +288,7 @@
if (dlQueueInvoker == null) {
dlQueueInvoker = new ServiceInvoker(dlqService);
}
-
+
dlQueueInvoker.deliverAsync(message);
}
}
@@ -289,20 +309,20 @@
//removed EPRs that have now come back to life. We should try once more to pull a fresh list of EPRS
//from the registry before we give up (and fail-over to redelivery at a later time in the care
//of asyncDeliver). I think the end-user expects the message to be delivered successfully if there
- //is a healhty EPR out there. So this is really for EPR cache management (serviceClusterInfo will
+ //is a healthy EPR out there. So this is really for EPR cache management (serviceClusterInfo will
//be empty when going for the 2nd attempt, or else there delivery was successful and there will be
//no second attempt!).
while (staleEPRCache) {
if ((serviceClusterInfo.getEPRs().size() == 0) || (new Date().after(expirationDate))) {
loadServiceClusterInfo();
-
+
if (initialPass && (serviceClusterInfo.getEPRs().size() == 0)) // zero from a previous send
{
/*
* We need to check to see if this instance used up all of it's attempts to deliver
* in a previous deliver or we'll only refresh the cache once per subsequent send
* because we will have exhausted the EPRs in the cache, i.e., size==0.
- *
+ *
* When the instance is originally created we do an initial cache fetch. Until this
* check, that cache fetch was not being done again after a complete failure. Unlikely
* to cause problems anyway, but possible.
@@ -318,45 +338,71 @@
while ((epr = loadBalancer.chooseEPR(serviceClusterInfo)) != null) {
try
{
+ final Subject subject = Subject.getSubject(AccessController.getContext());
+ if (subject != null)
+ {
+ logger.info("Subject in ServiceInvoker " + subject);
+ try
+ {
+ byte[] encrypted = PrivateCryptoUtil.INSTANCE.encrypt(new SecurityContext(subject));
+ message.getContext().setContext(SecurityService.CONTEXT, encrypted);
+ }
+ catch (final SecurityServiceException e)
+ {
+ logger.error("Could not encrypt the security conext. Will not be added to the outgoing message", e);
+ }
+ }
+
replyMessage = eprInvoker.attemptDelivery(message, epr);
if (replyMessage != null) {
- if (Type.isFaultMessage(replyMessage)) {
- Factory.createExceptionFromFault(replyMessage) ;
+ if(eprInvoker.synchronous) {
+ // remove the security context so that it is not exposed to the action pipeline.
+ replyMessage.getContext().removeContext(SecurityService.CONTEXT);
+
+ if (Type.isFaultMessage(replyMessage)) {
+ Factory.createExceptionFromFault(replyMessage) ;
+ }
+
+ // We've delivered it, we're done!
+ return replyMessage;
+ } else {
+ // It was an async delivery. The replyMessage was just an indicator that
+ // the delivery succeeded. Return null...
+ return null;
}
- // We've delivered it, we're done!
- return replyMessage;
- } else {
+ } else {
logger.info("Unresponsive EPR: " + epr+" for message: "+message.getHeader());
-
+
serviceClusterInfo.removeDeadEPR(epr);
-
+
/*
* So far we've only removed the EPR from the cache. Should we
* also remove it from the registry?
*/
-
+
if (removeDeadEprs)
RegistryUtil.unregister(service.getCategory(), service.getName(), epr);
-
+
/*
* If the message property is set to fail immediately, or the global property is set,
* then don't do retries even if there are other EPRs in the list.
*/
-
+
if (("true".equals(message.getProperties().getProperty(Environment.EXCEPTION_ON_DELIVERY_FAILURE, "false")) || exceptionOnDeliveryFailure))
throw new MessageDeliverException("Failed to deliver message ["+message.getHeader()+"] to Service [" + service + "]. Told not to retry.");
}
}
catch (MalformedEPRException ex) // so we can differentiate failure modes, since returning null is limiting
{
- logger.info("Invalid EPR for service (probably ESB-unaware): ignoring for message: "+message.getHeader());
-
+ logger.debug("Invalid EPR for service (probably ESB-unaware): ignoring for message: "+message.getHeader());
+
serviceClusterInfo.removeDeadEPR(epr);
-
+
/*
* DO NOT remove from the registry - it is not dead!!
*/
}
+
}
}
@@ -451,7 +497,25 @@
serviceClusterInfo = new ServiceClusterInfoImpl(service.getName(), serviceEprs);
expirationDate = new Date(java.lang.System.currentTimeMillis() + registryCacheLife);
}
-
+
+ /*
+ * Is redelivery overridden on a per message basis? If not, use the global setting.
+ */
+
+ private boolean asyncRedelivery (final Message message)
+ {
+ Object perMessage = message.getProperties().getProperty(Environment.REDELIVER_DLS_SERVICE_ON);
+
+ if (perMessage == null) // user does not care so use the global property
+ return "true".equalsIgnoreCase(Configuration.getRedeliveryDlsOn());
+ else
+ {
+ // use whatever is set on the message in preference to global value
+
+ return "true".equalsIgnoreCase((String) perMessage);
+ }
+ }
+
private class EPRInvoker {
private boolean synchronous = false;
@@ -500,9 +564,9 @@
logger.debug("Courier lookup failed for EPR [" + targetEPR + "] for Service [" + service + "] and Message ["+message.getHeader()+"].", e);
} catch (MalformedEPRException e) {
// probably an ESB-unaware EPR in the registry!!
-
+
logger.info("Badly formed EPR [" + targetEPR + "] for Service [" + service + "] and Message ["+message.getHeader()+"]." + e.getMessage());
-
+
throw e;
} catch (Throwable t) {
logger.warn("Unexpected exception during Courier lookup for EPR [" + targetEPR + "] for Service [" + service + "] and Message ["+message.getHeader()+"].", t);
@@ -512,23 +576,39 @@
if (courier != null) {
// make sure the message header does not change when we exit
+ final Call call = message.getHeader().getCall() ;
+ final EPR currentToEpr = call.getTo() ;
+ final EPR currentReplyToEpr = call.getReplyTo() ;
- EPR currentEpr = message.getHeader().getCall().getTo();
-
try {
- EPR replyToEPR = message.getHeader().getCall().getReplyTo();
+ call.setTo(targetEPR);
- message.getHeader().getCall().setTo(targetEPR);
-
+ final EPR replyToEPR ;
if (synchronous) {
- if (replyToEPR == null)
- replyToEPR = getReplyToAddress(targetEPR);
+ /*
+ * Currently all couriers that have transactional semantics work in a manner similar
+ * to JMS, i.e., messages are not delivered on to a queue (or to an endpoint) until
+ * the enclosing transaction has committed. In a synchronous invocation this will
+ * result in timeouts if the sending thread is also the terminating thread. We check
+ * for this here and throw an exception before we try to do a send so the application can
+ * figure it out.
+ *
+ * Note: if the transactional semantics change (e.g., to support true distributed transactions)
+ * then this will need to be modified too.
+ */
+
+ if (isTransactional())
+ throw new IncompatibleTransactionScopeException("Request-response attempt within running transaction controlling request delivery! Using epr [" + targetEPR + "] for Service [" + service + "] and Message ["+message.getHeader()+"]");
+
+ replyToEPR = (currentReplyToEpr == null ? getReplyToAddress(targetEPR) : currentReplyToEpr) ;
if (replyToEPR == null) {
logger.debug("Not using epr [" + targetEPR + "] for Service [" + service + "] and Message ["+message.getHeader()+"]. No reply-to address available for synchronous response.");
return null;
}
- message.getHeader().getCall().setReplyTo(replyToEPR);
+ call.setReplyTo(replyToEPR);
+ } else {
+ replyToEPR = null ;
}
if (courier.deliver(message)) {
if (synchronous) {
@@ -557,51 +637,90 @@
throw e;
} catch (final CourierServiceBindException e) {
// meant to be masked by the SI fail-over
-
+
logger.debug("Caught service lookup exception for EPR [" + targetEPR + "] and Service [" + service + "] and Message ["+message.getHeader()+"]. " + e.getMessage());
-
+
// could be stale EPR, so move on to next entry in registry.
} catch (final CourierMarshalUnmarshalException e) {
logger.warn("Courier indicated (un)marshal related error "+e+" during delivery to EPR [" + targetEPR + "] for Service [" + service + "] and Message ["+message.getHeader()+"]. " + e.getMessage());
-
+
throw new MessageDeliverException("Caught (un)marshal related exception during attempted send/receive.", e);
} catch (final CourierTransportException e) {
// meant to be masked by the SI fail-over
-
+
logger.debug("Courier indicated transport related error "+e+" during send/receive with EPR [" + targetEPR + "] for Service [" + service + "] and Message ["+message.getHeader()+"]. " + e.getMessage());
} catch (CourierException e) {
// probable config error. Log it and move on to next EPR/service entry.
-
+
logger.warn("Possible configuration error while using Courier for EPR [" + targetEPR + "] and Service [" + service + "] and Message ["+message.getHeader()+"]. " + e.getMessage());
} catch (MalformedEPRException e) {
// Hmmmm???... Can this really happen? The Courier has already been created. Haven't we already validated the EPR during the Courier lookup (above)??
logger.error("Unexpected error. Badly formed EPR [" + targetEPR + "] for Service [" + service + "]. But the EPR has already been validated!!");
+
+ throw e;
+ } catch (final CourierTimeoutException ex) {
+ logger.error("Response timeout using Courier for EPR [" + targetEPR + "] for Service [" + service + "] and Message ["+message.getHeader()+"].");
+
+ // timeout from synchronous invocation
- throw e;
+ // would like to make this an independent exception (not inherit from MDE). But signatures and applications would break.
+
+ throw new ResponseTimeoutException("Caught response timeout!", ex);
} catch (Throwable t) {
logger.error("Unexpected throwable during attempted message delivery using Courier for EPR [" + targetEPR + "] for Service [" + service + "] and Message ["+message.getHeader()+"].", t);
-
+
// we don't know what state we're in so better to bail-out now!
-
+
throw new MessageDeliverException("Caught unexpected throwable during send. Bailing-out!", t);
} finally {
CourierUtil.cleanCourier(courier);
// put back the old To since we will have changed it.
- if (currentEpr != null)
- message.getHeader().getCall().setTo(currentEpr);
+ call.setTo(currentToEpr) ;
+ call.setReplyTo(currentReplyToEpr) ;
}
}
return null;
}
}
+
+ private boolean isTransactional() throws MessageDeliverException
+ {
+ boolean transactional;
+
+ try
+ {
+ TransactionStrategy txStrategy = TransactionStrategy.getTransactionStrategy(true);
+ Object txHandle = ((txStrategy == null) ? null : txStrategy.getTransaction());
+ boolean isActive = ((txStrategy == null) ? false : txStrategy.isActive());
+
+ transactional = (txHandle != null);
+
+ /*
+ * Make sure the current transaction is still active! If we
+ * have previously slept, then the timeout may be longer than that
+ * associated with the transaction.
+ */
+
+ if (transactional && !isActive)
+ {
+ throw new MessageDeliverException("Associated transaction is no longer active!");
+ }
+ }
+ catch (final TransactionStrategyException ex)
+ {
+ throw new MessageDeliverException("Could not determine transactionality.", ex);
+ }
+
+ return transactional;
+ }
static
{
String pruneDead = ModulePropertyManager.getPropertyManager(ModulePropertyManager.CORE_MODULE).getProperty(Environment.REMOVE_DEAD_EPR, "false");
-
+
if ("true".equalsIgnoreCase(pruneDead))
{
removeDeadEprs = true;
@@ -610,9 +729,9 @@
{
removeDeadEprs = false;
}
-
+
String exceptionOnFailure = ModulePropertyManager.getPropertyManager(ModulePropertyManager.CORE_MODULE).getProperty(Environment.EXCEPTION_ON_DELIVERY_FAILURE, "false");
-
+
if ("true".equalsIgnoreCase(exceptionOnFailure))
{
exceptionOnDeliveryFailure = true;
Modified: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/common/Configuration.java
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/common/Configuration.java 2009-01-21 14:47:17 UTC (rev 24849)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/common/Configuration.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -36,10 +36,12 @@
import org.jboss.soa.esb.helpers.NamingContextException;
import org.jboss.soa.esb.helpers.NamingContextPool;
+import com.arjuna.common.util.propertyservice.PropertyManager;
+
public class Configuration
{
private static Logger _logger = Logger.getLogger(Configuration.class);
-
+
private static KeyValuePair[] s_oaKV = new KeyValuePair[]
{
new KeyValuePair(Environment.SMTP_HOST, getSmtpHost()),
@@ -128,31 +130,31 @@
return ModulePropertyManager.getPropertyManager(ModulePropertyManager.CORE_MODULE).getProperty(Environment.JNDI_SERVER_URL,
Environment.DEFAULT_HOST);
}
-
+
public static String getJndiServerContextFactory()
{
return ModulePropertyManager.getPropertyManager(ModulePropertyManager.CORE_MODULE).getProperty(Environment.JNDI_SERVER_CONTEXT_FACTORY,
Environment.DEFAULT_JNDI_CONTEXT_FACTORY);
}
-
+
public static String getJndiServerPkgPrefix()
{
return ModulePropertyManager.getPropertyManager(ModulePropertyManager.CORE_MODULE).getProperty(Environment.JNDI_SERVER_PKG_PREFIX,
Environment.DEFAULT_JNDI_PKG_PREFIX);
}
-
+
public static String getLoadBalancerPolicy()
{
return ModulePropertyManager.getPropertyManager(ModulePropertyManager.CORE_MODULE).getProperty(Environment.LOAD_BALANCER_POLICY,
Environment.DEFAULT_LOAD_BALANCER_POLICY);
}
-
+
public static String getRedeliveryDlsOn()
{
return ModulePropertyManager.getPropertyManager(ModulePropertyManager.CORE_MODULE).getProperty(Environment.REDELIVER_DLS_SERVICE_ON,
Environment.DEFAULT_REDELIVER_DLS_ON);
}
-
+
public static String getRegistryCacheLife()
{
return ModulePropertyManager.getPropertyManager(ModulePropertyManager.CORE_MODULE).getProperty(Environment.REGISTRY_CACHE_LIFE_MILLIS,
@@ -215,27 +217,27 @@
{
return ModulePropertyManager.getPropertyManager(ModulePropertyManager.REGISTRY_MODULE).getProperty(Environment.REGISTRY_PASSWORD);
}
-
+
public static String getRegistrySemanticEquivalences()
{
return ModulePropertyManager.getPropertyManager(ModulePropertyManager.REGISTRY_MODULE).getProperty(Environment.REGISTRY_SEMANTIC_EQUIVALENCES);
}
-
+
public static String getRegistryPostalAddressScheme()
{
return ModulePropertyManager.getPropertyManager(ModulePropertyManager.REGISTRY_MODULE).getProperty(Environment.REGISTRY_POSTAL_ADDRESS_SCHEME);
}
-
+
public static String getRegistrySecurityAuthenticationMethod()
{
return ModulePropertyManager.getPropertyManager(ModulePropertyManager.REGISTRY_MODULE).getProperty(Environment.REGISTRY_SECURITY_AUTHENTICATION_METHOD);
}
-
+
public static String getRegistryUDDIMaxRows()
{
return ModulePropertyManager.getPropertyManager(ModulePropertyManager.REGISTRY_MODULE).getProperty(Environment.REGISTRY_UDDI_MAX_ROWS);
}
-
+
public static String getParamRepositoryImplClass()
{
return ModulePropertyManager.getPropertyManager(ModulePropertyManager.CORE_MODULE).getProperty(Environment.PARAMS_REPOS_IMPL_CLASS);
@@ -253,93 +255,93 @@
org.jboss.soa.esb.services.DefaultEncryptionFactory.class
.getName());
}
-
+
public static String getStoreUrl()
{
String property = ModulePropertyManager.getPropertyManager(ModulePropertyManager.DBSTORE_MODULE).getProperty(Environment.MSG_STORE_DB_CONNECTION_URL);
return property;
}
-
+
public static String getStoreDriver()
{
String property = ModulePropertyManager.getPropertyManager(ModulePropertyManager.DBSTORE_MODULE).getProperty(Environment.MSG_STORE_DB_JDBC_DRIVER);
return property;
- }
-
+ }
+
public static String getStorePwd()
{
String property = ModulePropertyManager.getPropertyManager(ModulePropertyManager.DBSTORE_MODULE).getProperty(Environment.MSG_STORE_DB_CONNECTION_PWD);
return property;
}
-
+
public static String getStoreUser()
{
String property = ModulePropertyManager.getPropertyManager(ModulePropertyManager.DBSTORE_MODULE).getProperty(Environment.MSG_STORE_DB_CONNECTION_USER);
return property;
}
-
+
public static String getStorePoolInitialSize()
{
String property = ModulePropertyManager.getPropertyManager(ModulePropertyManager.DBSTORE_MODULE).getProperty(Environment.MSG_STORE_DB_POOL_INITIAL_SIZE);
return property;
}
-
+
public static String getStorePoolMinSize()
{
String property = ModulePropertyManager.getPropertyManager(ModulePropertyManager.DBSTORE_MODULE).getProperty(Environment.MSG_STORE_DB_POOL_MIN_SIZE);
return property;
}
-
+
public static String getStorePoolMaxSize()
{
String property = ModulePropertyManager.getPropertyManager(ModulePropertyManager.DBSTORE_MODULE).getProperty(Environment.MSG_STORE_DB_POOL_MAX_SIZE);
return property;
}
-
+
public static String getStorePoolTestTable()
{
String property = ModulePropertyManager.getPropertyManager(ModulePropertyManager.DBSTORE_MODULE).getProperty(Environment.MSG_STORE_DB_POOL_TEST_TABLE);
return property;
}
-
+
public static String getStorePoolTimeoutMillis()
{
String property = ModulePropertyManager.getPropertyManager(ModulePropertyManager.DBSTORE_MODULE).getProperty(Environment.MSG_STORE_DB_POOL_TIMEOUT_MILLIS);
return property;
}
-
+
public static String getStoreDBConnectionManager()
{
String property = ModulePropertyManager.getPropertyManager(ModulePropertyManager.DBSTORE_MODULE).getProperty(Environment.MSG_STORE_DB_CONN_MANAGER);
return property;
}
-
+
public static String getStoreDBDatasourceName()
{
String property = ModulePropertyManager.getPropertyManager(ModulePropertyManager.DBSTORE_MODULE).getProperty(Environment.MSG_STORE_DB_DATASOURCE_NAME);
return property;
}
-
+
public static String getJcrStoreJNDIPath()
{
return ModulePropertyManager.getPropertyManager(ModulePropertyManager.DBSTORE_MODULE).getProperty(Environment.MSG_STORE_JCR_JNDI_PATH);
}
-
+
public static String getJcrStoreUsername()
{
return ModulePropertyManager.getPropertyManager(ModulePropertyManager.DBSTORE_MODULE).getProperty(Environment.MSG_STORE_JCR_USERNAME);
}
-
+
public static String getJcrStorePassword()
{
return ModulePropertyManager.getPropertyManager(ModulePropertyManager.DBSTORE_MODULE).getProperty(Environment.MSG_STORE_JCR_PASSWORD);
}
-
+
public static String getJcrStoreRootNodePath()
{
return ModulePropertyManager.getPropertyManager(ModulePropertyManager.DBSTORE_MODULE).getProperty(Environment.MSG_STORE_JCR_ROOT_NODE_PATH);
}
-
+
/**
* Get the registry interceptor class names
* @return Registry interceptor Class names.
@@ -350,7 +352,7 @@
return ModulePropertyManager.getPropertyManager(ModulePropertyManager.REGISTRY_MODULE).getProperty(Environment.REGISTRY_INTERCEPTORS,
InVMRegistryInterceptor.class.getName());
}
-
+
/**
* Get the maximum cache size for the caching registry.
* @return The maximum cache size.
@@ -359,7 +361,7 @@
{
return ModulePropertyManager.getPropertyManager(ModulePropertyManager.REGISTRY_MODULE).getProperty(Environment.REGISTRY_CACHE_MAX_SIZE) ;
}
-
+
/**
* Get the validity period for the caching registry.
* @return The cache validity period.
@@ -368,7 +370,7 @@
{
return ModulePropertyManager.getPropertyManager(ModulePropertyManager.REGISTRY_MODULE).getProperty(Environment.REGISTRY_CACHE_VALIDITY_PERIOD) ;
}
-
+
/**
* Construct a naming context based on the connection details outlined
* in the named configuration module/section.
@@ -379,23 +381,24 @@
* <li><b>{@link Context#INITIAL_CONTEXT_FACTORY}</b>: Value defaults to "{@link Environment#JBOSS_INITIAL_CONTEXT_FACTORY}".</li>
* <li><b>{@link Context#URL_PKG_PREFIXES}</b>: Value defaults to "{@link Environment#JBOSS_URL_PKG_PREFIX}".</li>
* </ol>
- *
+ *
* @param contextModuleName Conficuration module/section name.
* @return The context instance.
* @throws ConfigurationException Unable to connect to context.
- *
+ *
* @deprecated {@link org.jboss.soa.esb.helpers.NamingContextPool}
*/
- public static Context getNamingContext(String contextModuleName) throws ConfigurationException {
+ @Deprecated
+ public static Context getNamingContext(String contextModuleName) throws ConfigurationException {
final Properties environment = getProperties(contextModuleName) ;
-
+
try {
return new InitialContext(environment) ;
} catch (final NamingException ne) {
throw new ConfigurationException("Failed to create JNDI context [" + contextModuleName + "].");
}
}
-
+
private static Properties getProperties(final String contextModuleName)
{
final String providerUrl = ModulePropertyManager.getPropertyManager(contextModuleName).getProperty(Context.PROVIDER_URL, Environment.JBOSS_PROVIDER_URL);
@@ -407,7 +410,7 @@
environment.setProperty(Context.URL_PKG_PREFIXES, urlPackagePrefix);
return environment ;
}
-
+
/**
* Lookup the JMS Connection Factory based on the connection details outlined
* in the named configuration module/section.
@@ -419,10 +422,10 @@
* <li><b>{@link Context#URL_PKG_PREFIXES}</b>: Value defaults to "{@link Environment#JBOSS_URL_PKG_PREFIX}".</li>
* <li><b>javax.jms.ConnectionFactory</b>: Value defaults to "".</li>
* </ol>
- *
+ *
* @param jmsConnectionFactoryModuleName Configuration module/section name.
* @return The JMS ConnectionFactory instance.
- * @throws ConfigurationException Lookup failed either because it was unable to
+ * @throws ConfigurationException Lookup failed either because it was unable to
* lookup the context, or the ConnectionFactory lookup failed.
*/
public static ConnectionFactory getJmsConnectionFactory(String jmsConnectionFactoryModuleName) throws ConfigurationException {
@@ -432,7 +435,7 @@
try {
String connectionFactoryRuntime = ModulePropertyManager.getPropertyManager(jmsConnectionFactoryModuleName).getProperty(ConnectionFactory.class.getName(), "ConnectionFactory");
ConnectionFactory factory = null;
-
+
try {
factory = (ConnectionFactory) context.lookup(connectionFactoryRuntime);
} catch (NamingException e) {
@@ -448,4 +451,96 @@
throw new ConfigurationException("Unexpected exception while accessing naming context pool", nce) ;
}
}
+
+ /**
+ * The SecurityService Implememtation Class
+ *
+ * @return String the fully qualified name of the ServiceService implementation class
+ */
+ public static String getSecurityServiceImplementationClass()
+ {
+ return ModulePropertyManager.getPropertyManager(ModulePropertyManager.SECURITY_MODULE).getProperty(Environment.SECURITY_SERVICE_IMPEMENTATION_CLASS);
+ }
+
+ public static String getSecurityServiceConfigUrl()
+ {
+ return ModulePropertyManager.getPropertyManager(ModulePropertyManager.SECURITY_MODULE).getProperty(Environment.SECURITY_SERVICE_CONFIG_URL);
+ }
+
+ /*
+ * Private Keystore getters
+ */
+ public static String getSecurityServicePrivateKeystore()
+ {
+ return ModulePropertyManager.getPropertyManager(ModulePropertyManager.SECURITY_MODULE).getProperty(Environment.SECURITY_SERVICE_PRIVATE_KEYSTORE);
+ }
+
+ public static String getSecurityServicePrivateKeyAlias()
+ {
+ return ModulePropertyManager.getPropertyManager(ModulePropertyManager.SECURITY_MODULE).getProperty(Environment.SECURITY_SERVICE_PRIVATE_KEY_ALIAS);
+ }
+
+ public static String getSecurityServicePrivateKeyPassword()
+ {
+ return ModulePropertyManager.getPropertyManager(ModulePropertyManager.SECURITY_MODULE).getProperty(Environment.SECURITY_SERVICE_PRIVATE_KEY_PASS);
+ }
+
+ public static String getSecurityServicePrivateKeystorePassword()
+ {
+ return ModulePropertyManager.getPropertyManager(ModulePropertyManager.SECURITY_MODULE).getProperty(Environment.SECURITY_SERVICE_PRIVATE_KEYSTORE_PASS);
+ }
+
+ public static String getSecurityServicePrivateKeystoreType()
+ {
+ return ModulePropertyManager.getPropertyManager(ModulePropertyManager.SECURITY_MODULE).getProperty(Environment.SECURITY_SERVICE_PRIVATE_KEYSTORE_TYPE);
+ }
+
+ public static String getSecurityServicePrivateKeyTransformation()
+ {
+ return ModulePropertyManager.getPropertyManager(ModulePropertyManager.SECURITY_MODULE).getProperty(Environment.SECURITY_SERVICE_PRIVATE_KEY_TRANSFORMATION);
+ }
+
+ /*
+ * Public Keystore getters
+ */
+
+ public static String getSecurityServicePublicKeystore()
+ {
+ return ModulePropertyManager.getPropertyManager(ModulePropertyManager.SECURITY_MODULE).getProperty(Environment.SECURITY_SERVICE_PUBLIC_KEYSTORE);
+ }
+
+ public static String getSecurityServicePublicKeyAlias()
+ {
+ return ModulePropertyManager.getPropertyManager(ModulePropertyManager.SECURITY_MODULE).getProperty(Environment.SECURITY_SERVICE_PUBLIC_KEY_ALIAS);
+ }
+
+ public static String getSecurityServicePublicKeyPassword()
+ {
+ return ModulePropertyManager.getPropertyManager(ModulePropertyManager.SECURITY_MODULE).getProperty(Environment.SECURITY_SERVICE_PUBLIC_KEY_PASS);
+ }
+
+ public static String getSecurityServicePublicKeyTransformation()
+ {
+ return ModulePropertyManager.getPropertyManager(ModulePropertyManager.SECURITY_MODULE).getProperty(Environment.SECURITY_SERVICE_PUBLIC_KEY_TRANSFORMATION);
+ }
+
+ public static String getSecurityServicePublicKeystorePassword()
+ {
+ return ModulePropertyManager.getPropertyManager(ModulePropertyManager.SECURITY_MODULE).getProperty(Environment.SECURITY_SERVICE_PUBLIC_KEYSTORE_PASS);
+ }
+
+ public static String getSecurityServicePublicKeystoreType()
+ {
+ return ModulePropertyManager.getPropertyManager(ModulePropertyManager.SECURITY_MODULE).getProperty(Environment.SECURITY_SERVICE_PUBLIC_KEYSTORE_TYPE);
+ }
+
+ public static String getSecurityServiceCallbackHandlerImplClass()
+ {
+ return ModulePropertyManager.getPropertyManager(ModulePropertyManager.SECURITY_MODULE).getProperty(Environment.SECURITY_SERVICE_CALLBACK_HANLDER_CLASS);
+ }
+
+ public static Properties getSecurityServiceProperies()
+ {
+ return ModulePropertyManager.getPropertyManager(ModulePropertyManager.SECURITY_MODULE).getProperties();
+ }
}
Modified: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/common/Environment.java
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/common/Environment.java 2009-01-21 14:47:17 UTC (rev 24849)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/common/Environment.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -24,90 +24,93 @@
public class Environment
{
- public enum Transports
- {
- File, FTP, JMS, SQL, Hibernate;
- }
-
- public static final String PROPERTIES_FILE = "org.jboss.soa.esb.propertyFile";
-
- /**
- * Binding properties
- */
- public static final String ESB_BIND_ADDRESS = "jboss.esb.bind.address" ;
- /*
- * Transport specific properties.
- */
+ public enum Transports
+ {
+ File, FTP, JMS, SQL, Hibernate;
+ }
+ public static final String PROPERTIES_FILE = "org.jboss.soa.esb.propertyFile";
+
+ /**
+ * Binding properties
+ */
+ public static final String ESB_BIND_ADDRESS = "jboss.esb.bind.address" ;
+ /*
+ * Transport specific properties.
+ */
+
public static final String DEFAULT_INVM_SCOPE = "jboss.esb.invm.scope.default";
public static final String SMTP_HOST = "org.jboss.soa.esb.mail.smtp.host";
- public static final String SMTP_USERNAME = "org.jboss.soa.esb.mail.smtp.user";
- public static final String SMTP_PASSWORD = "org.jboss.soa.esb.mail.smtp.password";
- public static final String SMTP_PORT = "org.jboss.soa.esb.mail.smtp.port";
- public static final String SMTP_FROM = "org.jboss.soa.esb.mail.smtp.from";
- public static final String SMTP_AUTH = "org.jboss.soa.esb.mail.smtp.auth";
-
- public static final String FTP_LOCALDIR = "org.jboss.soa.esb.ftp.localdir";
- public static final String FTP_REMOTEDIR = "org.jboss.soa.esb.ftp.remotedir";
- public static final String FTP_SOCKET_TIMEOUT = "org.jboss.soa.esb.ftp.timeout";
-
- public static final String JMS_CONNECTION_POOL_SIZE = "org.jboss.soa.esb.jms.connectionPool";
- public static final String JMS_SESSION_SLEEP = "org.jboss.soa.esb.jms.sessionSleep";
-
- /*
- * Core properties
- */
- public static final String JNDI_SERVER_URL = "org.jboss.soa.esb.jndi.server.url";
- public static final String JNDI_SERVER_CONTEXT_FACTORY = "org.jboss.soa.esb.jndi.server.context.factory";
- public static final String JNDI_SERVER_PKG_PREFIX = "org.jboss.soa.esb.jndi.server.pkg.prefix";
- public static final String JNDI_SERVER_TEST_LOOKUP = "org.jboss.soa.esb.jndi.test.lookup";
- public static final String PARAMS_REPOS_IMPL_CLASS = "org.jboss.soa.esb.paramsRepository.class";
- public static final String OBJECT_STORE_CONFIG_FILE = "org.jboss.soa.esb.objStore.configFile";
- public static final String ENCRYPT_FACTORY_CLASS = "org.jboss.soa.esb.encryption.factory.class";
+ public static final String SMTP_USERNAME = "org.jboss.soa.esb.mail.smtp.user";
+ public static final String SMTP_PASSWORD = "org.jboss.soa.esb.mail.smtp.password";
+ public static final String SMTP_PORT = "org.jboss.soa.esb.mail.smtp.port";
+ public static final String SMTP_FROM = "org.jboss.soa.esb.mail.smtp.from";
+ public static final String SMTP_AUTH = "org.jboss.soa.esb.mail.smtp.auth";
+
+ public static final String FTP_LOCALDIR = "org.jboss.soa.esb.ftp.localdir";
+ public static final String FTP_REMOTEDIR = "org.jboss.soa.esb.ftp.remotedir";
+ public static final String FTP_SOCKET_TIMEOUT = "org.jboss.soa.esb.ftp.timeout";
+ public static final String FTP_RENAME_RETRY = "org.jboss.soa.esb.ftp.renameretry";
+
+ public static final String JMS_CONNECTION_POOL_SIZE = "org.jboss.soa.esb.jms.connectionPool";
+ public static final String JMS_SESSION_SLEEP = "org.jboss.soa.esb.jms.sessionSleep";
+
+ public static final String WS_RETURN_STACK_TRACE = "org.jboss.soa.esb.ws.returnStackTrace";
+ public static final String WS_TIMEOUT = "org.jboss.soa.esb.ws.timeout" ;
+ /*
+ * Core properties
+ */
+ public static final String JNDI_SERVER_URL = "org.jboss.soa.esb.jndi.server.url";
+ public static final String JNDI_SERVER_CONTEXT_FACTORY = "org.jboss.soa.esb.jndi.server.context.factory";
+ public static final String JNDI_SERVER_PKG_PREFIX = "org.jboss.soa.esb.jndi.server.pkg.prefix";
+ public static final String JNDI_SERVER_TEST_LOOKUP = "org.jboss.soa.esb.jndi.test.lookup";
+ public static final String PARAMS_REPOS_IMPL_CLASS = "org.jboss.soa.esb.paramsRepository.class";
+ public static final String OBJECT_STORE_CONFIG_FILE = "org.jboss.soa.esb.objStore.configFile";
+ public static final String ENCRYPT_FACTORY_CLASS = "org.jboss.soa.esb.encryption.factory.class";
public static final String LOAD_BALANCER_POLICY = "org.jboss.soa.esb.loadbalancer.policy";
public static final String REDELIVER_DLS_SERVICE_ON = "org.jboss.soa.esb.dls.redeliver";
public static final String REGISTRY_CACHE_LIFE_MILLIS = "org.jboss.soa.esb.registry.cache.life";
public static final String REMOVE_DEAD_EPR = "org.jboss.soa.esb.failure.detect.removeDeadEPR";
- public static final String EXCEPTION_ON_DELIVERY_FAILURE = "org.jboss.soa.esb.exceptionOnDeliverFailure";
-
- /**
- * The Registry Query Manager URI defines the endPoint where registry queries can be made.
- */
- public static final String REGISTRY_QUERY_MANAGER_URI = "org.jboss.soa.esb.registry.queryManagerURI";
- /**
- * The Registry Lifecycle Manager URI defines the endPoint where service information can be published to.
- */
- public static final String REGISTRY_LIFECYCLE_MANAGER_URI = "org.jboss.soa.esb.registry.lifeCycleManagerURI";
+ public static final String EXCEPTION_ON_DELIVERY_FAILURE = "org.jboss.soa.esb.exceptionOnDeliverFailure";
+
+ /**
+ * The Registry Query Manager URI defines the endPoint where registry queries can be made.
+ */
+ public static final String REGISTRY_QUERY_MANAGER_URI = "org.jboss.soa.esb.registry.queryManagerURI";
+ /**
+ * The Registry Lifecycle Manager URI defines the endPoint where service information can be published to.
+ */
+ public static final String REGISTRY_LIFECYCLE_MANAGER_URI = "org.jboss.soa.esb.registry.lifeCycleManagerURI";
/**
* The Registry Implementation class, a light wrapper class.
*/
- public static final String REGISTRY_IMPEMENTATION_CLASS = "org.jboss.soa.esb.registry.implementationClass";
- /**
- * The Registry Factory Class setting specifies which JAXR implementation should be used.
- */
- public static final String REGISTRY_FACTORY_CLASS = "org.jboss.soa.esb.registry.factoryClass";
- /**
- * The user used to query and publish to the registry.
- */
- public static final String REGISTRY_USER = "org.jboss.soa.esb.registry.user";
- /**
- * The password for the registry user.
- */
- public static final String REGISTRY_PASSWORD = "org.jboss.soa.esb.registry.password";
- /**
- * The Registry Scout Transport Class property defines which communication protocol Scout should use to communicate
- * with the UDDI registry. Note that this parameter is Scout specific.
- */
- public static final String REGISTRY_SCOUT_TRANSPORT_CLASS = "org.jboss.soa.esb.scout.proxy.transportClass";
- /**
- * Property that holds directory to use with the helper EPRManager class.
- */
- public static final String REGISTRY_FILE_HELPER_DIR = "org.jboss.soa.esb.registry.file.directory";
+ public static final String REGISTRY_IMPEMENTATION_CLASS = "org.jboss.soa.esb.registry.implementationClass";
+ /**
+ * The Registry Factory Class setting specifies which JAXR implementation should be used.
+ */
+ public static final String REGISTRY_FACTORY_CLASS = "org.jboss.soa.esb.registry.factoryClass";
+ /**
+ * The user used to query and publish to the registry.
+ */
+ public static final String REGISTRY_USER = "org.jboss.soa.esb.registry.user";
+ /**
+ * The password for the registry user.
+ */
+ public static final String REGISTRY_PASSWORD = "org.jboss.soa.esb.registry.password";
+ /**
+ * The Registry Scout Transport Class property defines which communication protocol Scout should use to communicate
+ * with the UDDI registry. Note that this parameter is Scout specific.
+ */
+ public static final String REGISTRY_SCOUT_TRANSPORT_CLASS = "org.jboss.soa.esb.scout.proxy.transportClass";
+ /**
+ * Property that holds directory to use with the helper EPRManager class.
+ */
+ public static final String REGISTRY_FILE_HELPER_DIR = "org.jboss.soa.esb.registry.file.directory";
/**
* Property that holds the setting to the semantic equivalence scheme to use.
*/
- public static final String REGISTRY_SEMANTIC_EQUIVALENCES = "org.jboss.soa.esb.registry.semanticEquivalences";
+ public static final String REGISTRY_SEMANTIC_EQUIVALENCES = "org.jboss.soa.esb.registry.semanticEquivalences";
/**
* Property that holds the postal address scheme.
*/
@@ -120,7 +123,7 @@
* Property that holds the max number of rows the UDDI should return on searches.
*/
public static final String REGISTRY_UDDI_MAX_ROWS = "org.jboss.soa.esb.registry.uddi.maxRows";
-
+
/**
* The Registry interceptor class names.
*/
@@ -133,114 +136,138 @@
* The cache validity period.
*/
public static final String REGISTRY_CACHE_VALIDITY_PERIOD = "org.jboss.soa.esb.registry.cache.validityPeriod";
- /*
- * Some default values.
- */
- public static final String DEFAULT_PROPERTY_FILE = "jbossesb-properties.xml";
- public static final String DEFAULT_HOST = "localhost";
- public static final String DEFAULT_USERNAME = "";
- public static final String DEFAULT_PASSWORD = "";
- public static final String DEFAULT_PORT = "25";
- public static final String DEFAULT_JNDI_CONTEXT_FACTORY = "org.jnp.interfaces.NamingContextFactory";
- public static final String DEFAULT_JNDI_PKG_PREFIX = "org.jnp.interfaces";
+ /*
+ * Some default values.
+ */
+ public static final String DEFAULT_PROPERTY_FILE = "jbossesb-properties.xml";
+ public static final String DEFAULT_HOST = "localhost";
+ public static final String DEFAULT_USERNAME = "";
+ public static final String DEFAULT_PASSWORD = "";
+ public static final String DEFAULT_PORT = "25";
+ public static final String DEFAULT_JNDI_CONTEXT_FACTORY = "org.jnp.interfaces.NamingContextFactory";
+ public static final String DEFAULT_JNDI_PKG_PREFIX = "org.jnp.interfaces";
public static final String DEFAULT_LOAD_BALANCER_POLICY = "org.jboss.soa.esb.listeners.ha.FirstAvailable";
- public static final String DEFAULT_REDELIVER_DLS_ON = "true";
+ public static final String DEFAULT_REDELIVER_DLS_ON = "true";
public static final String DEFAULT_REGISTRY_CACHE_LIFE_MILLIS = "60000";
- /*
- * DatabaseMessageStore Persistence Store properties.
- */
- public static final String MSG_STORE_DB_CONNECTION_URL = "org.jboss.soa.esb.persistence.db.connection.url";
- public static final String MSG_STORE_DB_CONNECTION_USER = "org.jboss.soa.esb.persistence.db.user";
- public static final String MSG_STORE_DB_CONNECTION_PWD = "org.jboss.soa.esb.persistence.db.pwd";
- public static final String MSG_STORE_DB_TABLE_NAME = "org.jboss.soa.esb.persistence.db.table";
- public static final String MSG_STORE_DB_JDBC_DRIVER = "org.jboss.soa.esb.persistence.db.jdbc.driver";
- public static final String MSG_STORE_DB_POOL_INITIAL_SIZE = "org.jboss.soa.esb.persistence.db.pool.initial.size";
- public static final String MSG_STORE_DB_POOL_MIN_SIZE = "org.jboss.soa.esb.persistence.db.pool.min.size";
- public static final String MSG_STORE_DB_POOL_MAX_SIZE = "org.jboss.soa.esb.persistence.db.pool.max.size";
- public static final String MSG_STORE_DB_POOL_TEST_TABLE = "org.jboss.soa.esb.persistence.db.pool.test.table";
- public static final String MSG_STORE_DB_POOL_TIMEOUT_MILLIS = "org.jboss.soa.esb.persistence.db.pool.timeout.millis";
- public static final String MSG_STORE_DB_CONN_MANAGER = "org.jboss.soa.esb.persistence.db.conn.manager";
- public static final String MSG_STORE_DB_DATASOURCE_NAME = "org.jboss.soa.esb.persistence.db.datasource.name";
-
- /*
- * JcrMessageStore Persistence Store properties.
- */
- public static final String MSG_STORE_JCR_JNDI_PATH = "org.jboss.soa.esb.persistence.jcr.jndi.path";
- public static final String MSG_STORE_JCR_USERNAME = "org.jboss.soa.esb.persistence.jcr.username";
- public static final String MSG_STORE_JCR_PASSWORD = "org.jboss.soa.esb.persistence.jcr.password";
- public static final String MSG_STORE_JCR_ROOT_NODE_PATH = "org.jboss.soa.esb.persistence.jcr.root.node.path";
-
- /*
- * Some message metadata properties.
- */
-
- public static final String TRANSPORT_TYPE = "org.jboss.soa.esb.message.transport.type";
- public static final String MESSAGE_SOURCE = "org.jboss.soa.esb.message.source";
- public static final String MESSAGE_ENTRY_TIME = "org.jboss.soa.esb.message.time.dob"; // time born
- public static final String MESSAGE_EXIT_TIME = "org.jboss.soa.esb.message.time.dod"; // time died
- public static final String MESSAGE_BYTE_SIZE = "org.jboss.soa.esb.message.byte.size"; // size
-
- /** Message property name for original filename */
-
- public static final String ORIGINAL_FILE_NAME_MSG_PROP = "org.jboss.soa.esb.gateway.original.file.name";
- public static final String ORIGINAL_QUEUE_NAME_MSG_PROP = "org.jboss.soa.esb.gateway.original.queue.name";
- public static final String ORIGINAL_URL_PROP = "org.jboss.soa.esb.gateway.original.url";
-
- /*
- * Some gateway attachment names.
- */
-
- public static final String ORIGINAL_FILE = "org.jboss.soa.esb.gateway.file";
- public static final String GATEWAY_CONFIG = "org.jboss.soa.esb.gateway.config";
-
- /*
- * Some JMS specific message element names.
- */
-
- public static final String JMS_MESSAGE_ID = "org.jboss.soa.esb.message.transport.jms.messageID";
- public static final String JMS_NATIVE_MESSAGE_TYPE = "org.jboss.soa.esb.message.transport.jms.nativeMessageType"; // Text or Object
-
- /*
- * Filter properties should be identified by:
- *
- * org.jboss.soa.esb.filter.<number>
- *
- * and will be called in increasing order of <number>. Same <number> may be
- * called arbitrarily.
- */
+ /*
+ * DatabaseMessageStore Persistence Store properties.
+ */
+ public static final String MSG_STORE_DB_CONNECTION_URL = "org.jboss.soa.esb.persistence.db.connection.url";
+ public static final String MSG_STORE_DB_CONNECTION_USER = "org.jboss.soa.esb.persistence.db.user";
+ public static final String MSG_STORE_DB_CONNECTION_PWD = "org.jboss.soa.esb.persistence.db.pwd";
+ public static final String MSG_STORE_DB_TABLE_NAME = "org.jboss.soa.esb.persistence.db.table";
+ public static final String MSG_STORE_DB_JDBC_DRIVER = "org.jboss.soa.esb.persistence.db.jdbc.driver";
+ public static final String MSG_STORE_DB_POOL_INITIAL_SIZE = "org.jboss.soa.esb.persistence.db.pool.initial.size";
+ public static final String MSG_STORE_DB_POOL_MIN_SIZE = "org.jboss.soa.esb.persistence.db.pool.min.size";
+ public static final String MSG_STORE_DB_POOL_MAX_SIZE = "org.jboss.soa.esb.persistence.db.pool.max.size";
+ public static final String MSG_STORE_DB_POOL_TEST_TABLE = "org.jboss.soa.esb.persistence.db.pool.test.table";
+ public static final String MSG_STORE_DB_POOL_TIMEOUT_MILLIS = "org.jboss.soa.esb.persistence.db.pool.timeout.millis";
+ public static final String MSG_STORE_DB_CONN_MANAGER = "org.jboss.soa.esb.persistence.db.conn.manager";
+ public static final String MSG_STORE_DB_DATASOURCE_NAME = "org.jboss.soa.esb.persistence.db.datasource.name";
- public static final String FILTER_NAME = "org.jboss.soa.esb.filter";
-
- /*
- * Some specific out-of-the-box filter configuration options.
- */
-
- public static final String MESSAGE_TRACE = "org.jboss.soa.esb.messagetrace"; // on or off
- public static final String PER_MESSAGE_TRACE = "org.jboss.soa.esb.permessagetrace"; // on or off
-
- // Configuration options for the Naming Context pooling.
- /**
- * The maximum pool size.
- */
- public static final String NAMING_CONTEXT_POOL_SIZE = "org.jboss.soa.esb.namingcontext.poolsize" ;
- /**
- * The maximum sleep period when waiting for a naming context, specified in seconds.
- */
+ /*
+ * JcrMessageStore Persistence Store properties.
+ */
+ public static final String MSG_STORE_JCR_JNDI_PATH = "org.jboss.soa.esb.persistence.jcr.jndi.path";
+ public static final String MSG_STORE_JCR_USERNAME = "org.jboss.soa.esb.persistence.jcr.username";
+ public static final String MSG_STORE_JCR_PASSWORD = "org.jboss.soa.esb.persistence.jcr.password";
+ public static final String MSG_STORE_JCR_ROOT_NODE_PATH = "org.jboss.soa.esb.persistence.jcr.root.node.path";
+
+ /*
+ * Some message metadata properties.
+ */
+
+ public static final String TRANSPORT_TYPE = "org.jboss.soa.esb.message.transport.type";
+ public static final String MESSAGE_SOURCE = "org.jboss.soa.esb.message.source";
+ public static final String MESSAGE_ENTRY_TIME = "org.jboss.soa.esb.message.time.dob"; // time born
+ public static final String MESSAGE_EXIT_TIME = "org.jboss.soa.esb.message.time.dod"; // time died
+ public static final String MESSAGE_BYTE_SIZE = "org.jboss.soa.esb.message.byte.size"; // size
+
+ /** Message property name for original filename */
+
+ public static final String ORIGINAL_FILE_NAME_MSG_PROP = "org.jboss.soa.esb.gateway.original.file.name";
+ public static final String ORIGINAL_QUEUE_NAME_MSG_PROP = "org.jboss.soa.esb.gateway.original.queue.name";
+ public static final String ORIGINAL_URL_PROP = "org.jboss.soa.esb.gateway.original.url";
+
+ /*
+ * Some gateway attachment names.
+ */
+
+ public static final String ORIGINAL_FILE = "org.jboss.soa.esb.gateway.file";
+ public static final String GATEWAY_CONFIG = "org.jboss.soa.esb.gateway.config";
+
+ /*
+ * Some JMS specific message element names.
+ */
+
+ public static final String JMS_MESSAGE_ID = "org.jboss.soa.esb.message.transport.jms.messageID";
+ public static final String JMS_NATIVE_MESSAGE_TYPE = "org.jboss.soa.esb.message.transport.jms.nativeMessageType"; // Text or Object
+
+ /*
+ * Filter properties should be identified by:
+ *
+ * org.jboss.soa.esb.filter.<number>
+ *
+ * and will be called in increasing order of <number>. Same <number> may be
+ * called arbitrarily.
+ */
+
+ public static final String FILTER_NAME = "org.jboss.soa.esb.filter";
+
+ /*
+ * Some specific out-of-the-box filter configuration options.
+ */
+
+ public static final String MESSAGE_TRACE = "org.jboss.soa.esb.messagetrace"; // on or off
+ public static final String PER_MESSAGE_TRACE = "org.jboss.soa.esb.permessagetrace"; // on or off
+
+ /**
+ * The SecurityService Implementation class
+ */
+ public static final String SECURITY_SERVICE_IMPEMENTATION_CLASS = "org.jboss.soa.esb.services.security.implementationClass";
+ public static final String SECURITY_SERVICE_CALLBACK_HANLDER_CLASS = "org.jboss.soa.esb.services.security.callbackHandler";
+ public static final String SECURITY_SERVICE_CALLBACK = "org.jboss.soa.esb.services.security.callback_";
+ public static final String SECURITY_SERVICE_CONFIG_URL = "org.jboss.soa.esb.services.security.configUrl";
+ public static final String SECURITY_SERVICE_SEAL_ALGORITHM = "org.jboss.soa.esb.services.security.sealAlgorithm";
+ public static final String SECURITY_SERVICE_SEAL_KEYSIZE = "org.jboss.soa.esb.services.security.sealKeySize";
+
+ public static final String SECURITY_SERVICE_PRIVATE_KEYSTORE = "org.jboss.soa.esb.services.security.privateKeystore";
+ public static final String SECURITY_SERVICE_PRIVATE_KEYSTORE_TYPE = "org.jboss.soa.esb.services.security.privateKeystoreType";
+ public static final String SECURITY_SERVICE_PRIVATE_KEYSTORE_PASS = "org.jboss.soa.esb.services.security.privateKeystorePassword";
+ public static final String SECURITY_SERVICE_PRIVATE_KEY_ALIAS = "org.jboss.soa.esb.services.security.privateKeyAlias";
+ public static final String SECURITY_SERVICE_PRIVATE_KEY_PASS = "org.jboss.soa.esb.services.security.privateKeyPassword";
+ public static final String SECURITY_SERVICE_PRIVATE_KEY_TRANSFORMATION = "org.jboss.soa.esb.services.security.privateKeyTransformation";
+
+ public static final String SECURITY_SERVICE_PUBLIC_KEYSTORE = "org.jboss.soa.esb.services.security.publicKeystore";
+ public static final String SECURITY_SERVICE_PUBLIC_KEYSTORE_TYPE = "org.jboss.soa.esb.services.security.publicKeystoreType";
+ public static final String SECURITY_SERVICE_PUBLIC_KEYSTORE_PASS = "org.jboss.soa.esb.services.security.publicKeystorePassword";
+ public static final String SECURITY_SERVICE_PUBLIC_KEY_ALIAS = "org.jboss.soa.esb.services.security.publicKeyAlias";
+ public static final String SECURITY_SERVICE_PUBLIC_KEY_PASS = "org.jboss.soa.esb.services.security.publicKeyPassword";
+ public static final String SECURITY_SERVICE_PUBLIC_KEY_TRANSFORMATION = "org.jboss.soa.esb.services.security.publicKeyTransformation";
+
+ // Configuration options for the Naming Context pooling.
+ /**
+ * The maximum pool size.
+ */
+ public static final String NAMING_CONTEXT_POOL_SIZE = "org.jboss.soa.esb.namingcontext.poolsize" ;
+ /**
+ * The maximum sleep period when waiting for a naming context, specified in seconds.
+ */
public static final String NAMING_CONTEXT_SLEEP_PERIOD = "org.jboss.soa.esb.namingcontext.sleepperiod" ;
/**
* The maximum number of retries when creating a naming context.
*/
public static final String NAMING_CONTEXT_RETRY_COUNT = "org.jboss.soa.esb.namingcontext.retrycount" ;
/**
- * The JBoss JNDI provider URL.
+ * The JBoss JNDI provider URL.
*/
public static final String JBOSS_PROVIDER_URL = "localhost";
/**
- * The JBoss JNDI initial context factory.
+ * The JBoss JNDI initial context factory.
*/
public static final String JBOSS_INITIAL_CONTEXT_FACTORY = "org.jnp.interfaces.NamingContextFactory";
/**
- * The JBoss JNDI URL package prefix.
+ * The JBoss JNDI URL package prefix.
*/
public static final String JBOSS_URL_PKG_PREFIX = ""; //"org.jboss.naming:org.jnp.interfaces"
}
Modified: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/common/ModulePropertyManager.java
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/common/ModulePropertyManager.java 2009-01-21 14:47:17 UTC (rev 24849)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/common/ModulePropertyManager.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -101,6 +101,8 @@
public static final String DBSTORE_MODULE = "dbstore";
public static final String FILTER_MODULE = "filters";
+
+ public static final String SECURITY_MODULE = "security";
/**
* Get the property manager responsible for the module component in the
@@ -143,12 +145,9 @@
try
{
- PropertyManager propertyManager = PropertyManagerFactory
- .getPropertyManager(
- "org.jboss.soa.esb.propertymanager." + name, name);
+ PropertyManager propertyManager = PropertyManagerFactory.getPropertyManager("org.jboss.soa.esb.propertymanager." + name, name);
- String propertiesFilename = System.getProperty(
- Environment.PROPERTIES_FILE, Environment.DEFAULT_PROPERTY_FILE);
+ String propertiesFilename = System.getProperty(Environment.PROPERTIES_FILE, Environment.DEFAULT_PROPERTY_FILE);
/*
* Does not cause reloading of the same file over and over. Once it is
@@ -157,8 +156,7 @@
try
{
- propertyManager.load(XMLFilePlugin.class.getName(),
- propertiesFilename);
+ propertyManager.load(XMLFilePlugin.class.getName(), propertiesFilename);
}
catch (LoadPropertiesException ex)
{
Modified: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/helpers/Email.java
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/helpers/Email.java 2009-01-21 14:47:17 UTC (rev 24849)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/helpers/Email.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -50,6 +50,7 @@
import javax.mail.internet.MimeMultipart;
import org.apache.log4j.Logger;
+import org.jboss.internal.soa.esb.assertion.AssertArgument;
import org.jboss.soa.esb.common.Configuration;
import org.jboss.soa.esb.common.Environment;
import org.jboss.soa.esb.util.Util;
@@ -83,6 +84,13 @@
* Class logger.
*/
private static Logger logger = Logger.getLogger(Email.class);
+
+ public static final String HOST = "host";
+ public static final String PORT = "port";
+ public static final String USERNAME = "username";
+ public static final String PASSWORD = "password";
+ public static final String AUTH = "auth";
+
/**
* ConfigTree attribute : will be the contents of the From: field in the
* outgoing message
@@ -184,6 +192,25 @@
// Message can be "sent" via a subsequent call to the sendMessage method!
} // __________________________________
+
+ /**
+ * Initialises the mail server session to the specified smtp host and port and uses
+ * SMTP Authentication.
+ *
+ * @param host The host of the smtp server. Must not be null or an empty String.
+ * @param port The port that the smtp server is running on.
+ * @param username The username on the smtp server. Can be null.
+ * @param password The password for username on the smtp server. Cannot be null if username was specified.
+ * @param auth If true will attempt to authenticate the user using the AUTH command.
+ *
+ * @throws AddressException
+ * @throws MessagingException
+ */
+ public Email(final String host, final int port, final String username, final String password, final boolean auth) throws AddressException, MessagingException {
+ AssertArgument.isNotNullAndNotEmpty(host, "host");
+ this.oMailSess = initMailServerSession(host, port, username, password, auth);
+ }
+
/**
* Send the mail message associated with this instance.
@@ -426,7 +453,35 @@
oMultiP.addBodyPart(part);
}
}
+
+ /**
+ * Initialise an authenticated {@link javax.mail.Session} with the mail server.
+ *
+ * @param host The host of the smtp server.
+ * @param port The port that the smtp server is running on.
+ * @param username The username on the smtp server
+ * @param password The password for username on the smtp server.
+ * @param auth If true will attempt to authenticate the user using the AUTH command. This will set the property 'mail.smtp.auth'.
+ *
+ * @return The {@link javax.mail.Session}.
+ */
+ private Session initMailServerSession(final String host, final int port, final String username, final String password, final boolean auth) {
+ Authenticator authenticator = null;
+
+ if (!Util.isNullString(username)) {
+ authenticator = new MyAuth(username, password);
+ }
+ final Properties properties = new Properties();
+ properties.setProperty("mail.smtp.host", host);
+ properties.setProperty("mail.smtp.port", String.valueOf(port));
+ properties.setProperty("mail.smtp.auth", String.valueOf(auth));
+
+ logger.debug("Initialising mail server sesson. Properties: " + properties);
+
+ return Session.getInstance(properties, authenticator);
+ }
+
/**
* Initialise an authenticated {@link javax.mail.Session} with the mail server.
* @return The {@link javax.mail.Session}.
Modified: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/http/configurators/HttpProtocol.java
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/http/configurators/HttpProtocol.java 2009-01-21 14:47:17 UTC (rev 24849)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/http/configurators/HttpProtocol.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -73,7 +73,7 @@
URI targetURI = getTargetURI(properties, true);
String factory;
String scheme = targetURI.getScheme();
- int port = targetURI.getPort();
+ int port = 80; //default to http;
org.apache.commons.httpclient.protocol.Protocol protocol;
KeyMaterial keyMaterial = null;
ProtocolSocketFactory socketFactory;
@@ -92,9 +92,6 @@
}
} else {
factory = properties.getProperty("protocol-socket-factory", DefaultProtocolSocketFactory.class.getName());
- if(port == -1) {
- port = 80;
- }
}
assertPropertySetAndNotBlank(factory, "protocol-socket-factory");
socketFactory = createFactoryClass(factory, keyMaterial, properties);
@@ -102,7 +99,6 @@
// And finally... configure the host with the protocol....
protocol = new Protocol(scheme, socketFactory, port);
Protocol.registerProtocol(scheme, protocol);
- //httpClient.getHostConfiguration().setHost(targetURI.getHost(), port, protocol);
}
private KeyMaterial getKeyMaterial(Properties properties) throws ConfigurationException {
Modified: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/lifecycle/LifecyclePriorities.java
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/lifecycle/LifecyclePriorities.java 2009-01-21 14:47:17 UTC (rev 24849)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/lifecycle/LifecyclePriorities.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -37,6 +37,16 @@
public static final int RULE_BASE_PRIORITY = 50000;
/**
+ * The scheduler priority.
+ */
+ public static final int SCHEDULE_RESOURCE_PRIORITY = 70000 ;
+
+ /**
+ * The service message counter priority.
+ */
+ public static final int SERVICE_MESSAGE_COUNTER_PRIORITY = 75000 ;
+
+ /**
* The courier priority.
*/
public static final int COURIER_PRIORITY = 100000 ;
Modified: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/lifecycle/LifecycleResourceManager.java
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/lifecycle/LifecycleResourceManager.java 2009-01-21 14:47:17 UTC (rev 24849)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/lifecycle/LifecycleResourceManager.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -145,6 +145,33 @@
logger.debug("Associating deploymentName " + deploymentName + " with identity: " + identity) ;
}
}
+
+ /**
+ * Get the list of deployments associated with the context classloader.
+ * @return The list of associated deployments or null if no association exists.
+ */
+ public String[] getAssociatedDeployments()
+ {
+ final ClassLoader classLoader = Thread.currentThread().getContextClassLoader() ;
+ final Lock readLock = deploymentLock.readLock() ;
+ readLock.lock() ;
+ try
+ {
+ final Set<String> currentAssociations = associatedDeployments.get(classLoader) ;
+ if (currentAssociations != null)
+ {
+ return (String[])currentAssociations.toArray(new String[currentAssociations.size()]) ;
+ }
+ else
+ {
+ return null ;
+ }
+ }
+ finally
+ {
+ readLock.unlock() ;
+ }
+ }
/**
* Disassociate the current thread with a specified deployment.
Modified: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/ListenerTagNames.java
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/ListenerTagNames.java 2009-01-21 14:47:17 UTC (rev 24849)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/ListenerTagNames.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -21,13 +21,14 @@
*/
/**
* Contains tag names as they can be used in the configuration.
- *
+ *
*/
package org.jboss.soa.esb.listeners;
import org.jboss.soa.esb.addressing.eprs.JDBCEpr;
+import org.jboss.soa.esb.schedule.ScheduleProvider;
-public class ListenerTagNames
+public class ListenerTagNames
{
/** EPRs */
public static final String EPR_TAG = "EPR";
@@ -35,6 +36,8 @@
public static final String URL_TAG = JDBCEpr.URL_TAG; // change only in one place // TODO huh?!
public static final String PROTOCOL_TAG = "protocol";
+ public static final String NAME_TAG = "name";
+
/** Threading */
public static final String MAX_THREADS_TAG = "maxThreads";
@@ -54,17 +57,22 @@
public static final String TARGET_SERVICE_NAME_TAG = "target-service-name";
public static final String GATEWAY_CLASS_TAG = "gatewayClass";
public static final String IS_GATEWAY_TAG = "is-gateway";
-
+
/** Listeners */
public static final String LISTENER_CLASS_TAG = "listenerClass";
public static final String TRANSACTED_TAG = "transacted";
public static final String ROLLBACK_ON_PIPELINE_FAULTS = "rollbackOnPipelineFaults";
-
+
/** Deployment */
public static final String DEPLOYMENT_NAME_TAG = "deployment";
-
+
/** ActionProcessingPipeline */
- public static final String MEP_ATTRIBUTE_TAG = "mep";
+ public static final String MEP_ATTRIBUTE_TAG = "mep";
+ public static final String IN_XSD_ATTRIBUTE_TAG = "inXsd";
+ public static final String OUT_XSD_ATTRIBUTE_TAG = "outXsd";
+ public static final String FAULT_XSD_ATTRIBUTE_TAG = "faultXsd";
+ public static final String VALIDATE_ATTRIBUTE_TAG = "validate";
+ public static final String WEBSERVICE_ATTRIBUTE_TAG = "webservice";
public static final String ACTION_ELEMENT_TAG = "action";
public static final String ACTION_CLASS_TAG = "class";
public static final String PROCESS_METHOD_TAG = "process";
@@ -72,7 +80,18 @@
public static final String NORMAL_COMPLETION_METHOD_TAG = "okMethod";
public static final String EXCEPTION_METHOD_TAG = "exceptionMethod";
public static final String HTTP_ROUTER_ROUTE_URL = "routeUrl";
-
+ public static final String SECURITY_TAG = "security";
+ public static final String AUTHENTICATION_TAG = "authentication";
+ public static final String LOGIN_CONFIG_TAG = "login-config";
+ public static final String CONFIG_POLICY_TAG = "policy-config";
+ public static final String CONFIG_POLICY_FILE_TAG = "file";
+ public static final String RUN_AS_TAG = "runAs";
+ public static final String USE_CALLERS_IDENTIDY_TAG = "useCallersIdentity";
+ public static final String ROLES_ALLOWED = "rolesAllowed";
+ public static final String MODULE_NAME_TAG = "moduleName";
+ public static final String CALLBACK_HANDLER_TAG = "callbackHandler";
+
+
public static final String MEP_ONE_WAY = "OneWay" ;
public static final String MEP_REQUEST_RESPONSE = "RequestResponse" ;
@@ -80,7 +99,9 @@
public static final String GATEWAY_COMPOSER_CLASS_TAG = "composer-class";
public static final String GATEWAY_COMPOSER_METHOD_TAG = "composer-process";
public static final String GATEWAY_RESPONDER_METHOD_TAG = "responder-process";
- public static final String GATEWAY_WAIT_MILLIS_TAG = "max-millis-for-response";
+ public static final String GATEWAY_WAIT_MILLIS_TAG = "max-millis-for-response";
+ public static final String GATEWAY_FILE_FILTER_TAG = "file-filter-class";
+
/** Routing */
public static final String DESTINATION_NAME_TAG = "destination-name";
public static final String DESTINATION_TYPE_TAG = "destination-type";
@@ -93,7 +114,7 @@
/** Poller tagnames */
public static final String POLL_LATENCY_SECS_TAG = "pollLatencySeconds";
-
+
/** File Actions */
public static final String FILE_INPUT_DIR_TAG = "inputDir";
public static final String FILE_INPUT_SFX_TAG = "inputSuffix";
@@ -104,17 +125,17 @@
public static final String FILE_POST_SFX_TAG = "postSuffix";
public static final String FILE_POST_DEL_TAG = "postDelete";
public static final String FILE_POST_RENAME_TAG = "postRename";
-
+
/** Hibernate related */
public static final String HIBERNATE_OBJECT_DATA_TAG = "hibernateObject";
-
+
public static final String HIBERNATE_INTERCEPTOR_STATE = "hibernateInterceptorState";
public static final String HIBERNATE_INTERCEPTOR_ID = "hibernateInterceptorId";
public static final String HIBERNATE_INTERCEPTOR_TYPES = "hibernateInterceptorTypes";
public static final String HIBERNATE_INTERCEPTOR_NEWVALUES = "hibernateInterceptorNewValues";
public static final String HIBERNATE_INTERCEPTOR_OLDVALUES = "hibernateInterceptorOldValues";
public static final String HIBERNATE_INTERCEPTOR_PROPERTYNAMES = "hibernateInterceptorPropertyNames";
-
+
/** SQL related */
public static final String SQL_ROW_DATA_TAG = "sqlRowData";
public static final String SQL_TABLE_NAME_TAG = "tableName";
@@ -129,7 +150,7 @@
/** Reply Listener */
public static final String REPLY_LISTENER_TIMEOUT_TAG = "replyListenerTimeout";
-
+
/** Tomcat Listener */
public static final String HOST_TAG = "host";
public static final String PORT_TAG = "port";
@@ -139,5 +160,14 @@
public static final String AUTH_METHOD = "authMethod";
public static final String SECURITY_DOMAIN = "securityDomain";
public static final String SECURITY_ROLE = "securityRole";
-
+
+ /** Scheduled listeners */
+ public static final String SCHEDULE_ID_REF = "scheduleidref" ; // taken from ScheduleProviderFactory
+ public static final String SCHEDULE_FREQUENCY = "schedule-frequency" ; // taken from ScheduleProviderFactory
+ public static final String SCHEDULE_START_DATE = "scheduleStartDate" ;
+ public static final String SCHEDULE_END_DATE = "scheduleEndDate" ;
+ public static final String SCHEDULE_SIMPLE_FREQUENCY = "scheduleSimpleFrequency" ;
+ public static final String SCHEDULE_SIMPLE_EXEC = "scheduleSimpleExec" ;
+ public static final String SCHEDULE_CRON_EXPRESSION = "scheduleCronExpression" ;
+ public static final String SCHEDULE_PROPERTIES = "ScheduleProperties" ;
}
Modified: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/ListenerUtil.java
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/ListenerUtil.java 2009-01-21 14:47:17 UTC (rev 24849)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/ListenerUtil.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -249,8 +249,12 @@
}
else
{
- final String passphrase = tree.getAttribute(SFTPEpr.PASSPHRASE_TAG) ;
- epr = new SFTPEpr(uri,new URI(cert), passphrase);
+ final String passphrase = tree.getAttribute(SFTPEpr.PASSPHRASE_TAG, null) ;
+
+ if (passphrase != null)
+ epr = new SFTPEpr(uri, new URI(cert), passphrase);
+ else
+ epr = new SFTPEpr(uri, new URI(cert));
}
}
else
Modified: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/ScheduleListener.java
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/ScheduleListener.java 2009-01-21 14:47:17 UTC (rev 24849)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/ScheduleListener.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -19,25 +19,25 @@
*/
package org.jboss.soa.esb.listeners;
-import org.jboss.soa.esb.listeners.lifecycle.AbstractManagedLifecycle;
+import org.jboss.soa.esb.ConfigurationException;
+import org.jboss.soa.esb.Initializable;
+import org.jboss.soa.esb.common.TransactionStrategy;
+import org.jboss.soa.esb.common.TransactionStrategyException;
+import org.jboss.soa.esb.helpers.ConfigTree;
+import org.jboss.soa.esb.listeners.lifecycle.AbstractScheduledManagedLifecycle;
import org.jboss.soa.esb.listeners.lifecycle.ManagedLifecycleException;
import org.jboss.soa.esb.listeners.message.ActionProcessingPipeline;
+import org.jboss.soa.esb.message.Message;
import org.jboss.soa.esb.schedule.ScheduledEventListener;
import org.jboss.soa.esb.schedule.SchedulingException;
-import org.jboss.soa.esb.common.TransactionStrategy;
-import org.jboss.soa.esb.common.TransactionStrategyException;
-import org.jboss.soa.esb.helpers.ConfigTree;
-import org.jboss.soa.esb.ConfigurationException;
-import org.jboss.soa.esb.Initializable;
import org.jboss.soa.esb.util.ClassUtil;
-import org.jboss.soa.esb.message.Message;
/**
* ESB Schedule listener.
*
* @author <a href="mailto:tom.fennelly at jboss.com">tom.fennelly at jboss.com</a>
*/
-public class ScheduleListener extends AbstractManagedLifecycle implements ScheduledEventListener {
+public class ScheduleListener extends AbstractScheduledManagedLifecycle {
/**
*
@@ -136,23 +136,8 @@
}
}
- protected void doInitialise() throws ManagedLifecycleException {
- }
-
- public void initialize(ConfigTree config) throws ConfigurationException {
- // TODO Convert lifecycle code to use the Initializable interface.
- }
-
- public void uninitialize() {
- }
-
- protected void doStart() throws ManagedLifecycleException {
- }
-
- protected void doStop() throws ManagedLifecycleException {
- }
-
- protected void doDestroy() throws ManagedLifecycleException {
+ @Override
+ protected void doScheduledDestroy() throws ManagedLifecycleException {
eventProcessor.uninitialize();
if(pipeline != null) {
pipeline.destroy() ;
Copied: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/Action.java (from rev 24846, labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/listeners/config/Action.java)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/Action.java (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/Action.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -0,0 +1,102 @@
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2006, JBoss Inc., and individual contributors as indicated
+* by the @authors tag. See the copyright.txt in the distribution for a
+* full listing of individual contributors.
+*
+* This is free software; you can redistribute it and/or modify it
+* under the terms of the GNU Lesser General Public License as
+* published by the Free Software Foundation; either version 2.1 of
+* the License, or (at your option) any later version.
+*
+* This software is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+* Lesser General Public License for more details.
+*
+* You should have received a copy of the GNU Lesser General Public
+* License along with this software; if not, write to the Free
+* Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+* 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+*/
+package org.jboss.soa.esb.listeners.config;
+
+import java.util.Properties;
+
+/**
+ * Common information used to configure an action
+ *
+ * @author <a href="kevin.conner at jboss.com">Kevin Conner</a>
+ */
+public class Action
+{
+ /**
+ * The action name attribute.
+ */
+ private final String nameAttribute ;
+ /**
+ * The action class attribute.
+ */
+ private final String classAttribute ;
+ /**
+ * The action process attribute.
+ */
+ private final String processAttribute ;
+ /**
+ * The action properties.
+ */
+ private final Properties properties ;
+
+ /**
+ * Create the common action information.
+ *
+ * @param nameAttribute The name attribute.
+ * @param classAttribute The class attribute.
+ * @param processAttribute The process attribute.
+ * @param properties The properties.
+ */
+ public Action(final String nameAttribute, final String classAttribute,
+ final String processAttribute, final Properties properties)
+ {
+ this.nameAttribute = nameAttribute ;
+ this.classAttribute = classAttribute ;
+ this.processAttribute = processAttribute ;
+ this.properties = properties ;
+ }
+
+ /**
+ * Get the action name attribute.
+ * @return The name attribute.
+ */
+ public String getNameAttribute()
+ {
+ return nameAttribute ;
+ }
+
+ /**
+ * Get the action class attribute.
+ * @return The class attribute.
+ */
+ public String getClassAttribute()
+ {
+ return classAttribute ;
+ }
+
+ /**
+ * Get the action process attribute.
+ * @return The process attribute.
+ */
+ public String getProcessAttribute()
+ {
+ return processAttribute ;
+ }
+
+ /**
+ * Get the action properties.
+ * @return The properties.
+ */
+ public Properties getProperties()
+ {
+ return properties ;
+ }
+}
Modified: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/Configuration.java
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/Configuration.java 2009-01-21 14:47:17 UTC (rev 24849)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/Configuration.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -24,6 +24,7 @@
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.InputStream;
+import java.io.Reader;
import java.io.StringReader;
import java.net.URL;
import java.util.List;
@@ -31,14 +32,15 @@
import javax.management.ObjectName;
import javax.xml.transform.stream.StreamSource;
+import org.jboss.internal.soa.esb.publish.ContractReferencePublisher;
import org.jboss.internal.soa.esb.util.StreamUtils;
import org.jboss.soa.esb.helpers.ConfigTree;
import org.jboss.soa.esb.listeners.LifecycleUtil;
import org.jboss.soa.esb.listeners.ListenerTagNames;
+import org.jboss.soa.esb.listeners.config.model.ModelParser;
import org.jboss.soa.esb.listeners.lifecycle.ManagedLifecycle;
import org.jboss.soa.esb.listeners.lifecycle.ManagedLifecycleController;
import org.jboss.soa.esb.util.ClassUtil;
-import org.jboss.soa.esb.schedule.ScheduleProvider;
import org.xml.sax.InputSource;
/**
@@ -50,8 +52,6 @@
*/
public class Configuration
{
- private static final String JBOSSESB_XSD = "/jbossesb-1.0.1.xsd";
-
public static String getStringFromStream(InputStream is) throws Exception
{
byte[] bytes = StreamUtils.readStream(is);
@@ -78,19 +78,15 @@
public static ManagedLifecycleController create(String configXml, ObjectName serviceName)
{
- InputStream validationInputStream = ClassUtil.getResourceAsStream(JBOSSESB_XSD, Configuration.class);
- //if this fails try using the
- if (validationInputStream == null)
- {
- throw new IllegalStateException("ESB validation file [" + JBOSSESB_XSD + "] not found.");
- }
- StreamSource validationInputSource = new StreamSource(validationInputStream);
-
+ return create(configXml, serviceName, null) ;
+ }
+
+ public static ManagedLifecycleController create(final String configXml, final ObjectName serviceName, final List<ContractReferencePublisher> publishers)
+ {
try
{
- InputSource xmlInputSource = new InputSource(new StringReader(configXml));
- XmlValidator validator = new XmlValidatorImpl();
- if (validator.validate(xmlInputSource, validationInputSource))
+ final Reader config = new StringReader(configXml);
+ if (ModelParser.getParser().validate(config))
{
ByteArrayOutputStream listenerXml = new ByteArrayOutputStream();
ByteArrayOutputStream gatewayXml = new ByteArrayOutputStream();
@@ -113,12 +109,10 @@
instances.addAll(LifecycleUtil.getGateways(gatewayConfig));
ManagedLifecycleController controller = new ManagedLifecycleController(instances);
- ScheduleProvider scheduleProvider = ScheduleProviderFactory.createInstance(instances, generator.getModel().getScheduleProvider());
- controller.setScheduleProvider(scheduleProvider);
// In parallel, create a map of the contract publication info...
- ServicePublisher.addServicePublishers(controller, generator.getModel());
-
+ ServicePublisher.addServicePublishers(controller, generator.getModel().getServicePublishers());
+ ServicePublisher.addContractReferencePublishers(controller, publishers) ;
return controller;
}
else
Modified: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/ConfigurationController.java
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/ConfigurationController.java 2009-01-21 14:47:17 UTC (rev 24849)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/ConfigurationController.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -40,13 +40,14 @@
import org.apache.log4j.Logger;
import org.jboss.soa.esb.lifecycle.LifecycleResourceManager;
import org.jboss.soa.esb.listeners.LifecycleUtil;
+import org.jboss.soa.esb.listeners.config.model.ModelAdapter;
+import org.jboss.soa.esb.listeners.config.model.ModelParser;
import org.jboss.soa.esb.listeners.lifecycle.ManagedLifecycle;
import org.jboss.soa.esb.listeners.lifecycle.ManagedLifecycleController;
import org.jboss.soa.esb.listeners.lifecycle.ManagedLifecycleException;
import org.jboss.soa.esb.parameters.ParamRepositoryFactory;
import org.jboss.soa.esb.parameters.ParamRepositoryException;
import org.jboss.soa.esb.util.ClassUtil;
-import org.jboss.soa.esb.schedule.ScheduleProvider;
import org.jboss.soa.esb.ConfigurationException;
import org.jboss.soa.esb.helpers.ConfigTree;
import org.xml.sax.InputSource;
@@ -313,9 +314,7 @@
mLogger.info("loading configuration..");
String configXml = ParamRepositoryFactory.getInstance().get(mConfigFileName);
mLogger.debug("Start validation on configXml=" + configXml);
- InputSource xmlInputSource = new InputSource(new StringReader(configXml));
- XmlValidator validator = new XmlValidatorImpl();
- if (validator.validate(xmlInputSource, validationInputSource)) {
+ if (ModelParser.getParser().validate(new StringReader(configXml))) {
mLogger.debug("Configuration file " + mConfigFileName + " passed validation. Starting " +
" the generation process of the jbossesb-listener.xml and the jbossesb-gateway.xml.");
Generator generator = new Generator(new ByteArrayInputStream(configXml.getBytes()));
@@ -326,18 +325,6 @@
// TODO: Get rid of generating config files to disk. It's nuts. Use in memory stream buffers!!
controller = startController(generator.getModel());
- } else {
- StringBuffer buffer = new StringBuffer("The configuration file "
- + mConfigFileName + "\n did not pass validation for the following reasons: \n");
- int i=0;
- for (String error: validator.getValidationResults())
- {
- buffer.append("** " + ++i + ". "+ error + "\n");
- }
- mLogger.debug(buffer);
- mLogger.error(buffer);
- mLogger.info("The current configuration is kept in place until "
- + " validation passes.");
}
} catch (Exception e) {
mLogger.error("The current versions of the jbossesb-listener.xml and/or"
@@ -347,26 +334,24 @@
}
}
- public ManagedLifecycleController startController(final Generator.XMLBeansModel configModel)
+ public ManagedLifecycleController startController(final ModelAdapter configModel)
throws ParamRepositoryException, SAXException, ManagedLifecycleException, ConfigurationException
{
LifecycleResourceManager.getSingleton().associateDeployment(mConfigFileName) ;
return startController(configModel, LifecycleUtil.getConfigTree(mListenerConfigFile), LifecycleUtil.getConfigTree(mGatewayConfigFile)) ;
}
- public static ManagedLifecycleController startController(Generator.XMLBeansModel configModel, ConfigTree listenerConfig, ConfigTree gatewayConfig) throws ParamRepositoryException, SAXException, ManagedLifecycleException, ConfigurationException {
+ public static ManagedLifecycleController startController(ModelAdapter configModel, ConfigTree listenerConfig, ConfigTree gatewayConfig) throws ParamRepositoryException, SAXException, ManagedLifecycleException, ConfigurationException {
final List<ManagedLifecycle> instances = LifecycleUtil.getListeners(listenerConfig);
instances.addAll(LifecycleUtil.getGateways(gatewayConfig));
ManagedLifecycleController lifecycleController = new ManagedLifecycleController(instances);
- ScheduleProvider scheduleProvider = ScheduleProviderFactory.createInstance(instances, configModel.getScheduleProvider());
- lifecycleController.setScheduleProvider(scheduleProvider);
try {
lifecycleController.start();
// In parallel, create a map of the contract publication info...
- ServicePublisher.addServicePublishers(lifecycleController, configModel);
+ ServicePublisher.addServicePublishers(lifecycleController, configModel.getServicePublishers());
} catch (final ManagedLifecycleException mle) {
lifecycleController = null;
mLogger.error("Unexpected exception starting controller", mle);
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/ESBAwareGenerator.java
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/ESBAwareGenerator.java 2009-01-21 14:47:17 UTC (rev 24849)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/ESBAwareGenerator.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -1,225 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2006, JBoss Inc., and others contributors as indicated
- * by the @authors tag. All rights reserved.
- * See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- * This copyrighted material is made available to anyone wishing to use,
- * modify, copy, or redistribute it subject to the terms and conditions
- * of the GNU Lesser General Public License, v. 2.1.
- * This program is distributed in the hope that it will be useful, but WITHOUT A
- * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
- * PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
- * You should have received a copy of the GNU Lesser General Public License,
- * v.2.1 along with this distribution; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
- * MA 02110-1301, USA.
- *
- * (C) 2005-2006,
- * @author JBoss Inc.
- */
-
-package org.jboss.soa.esb.listeners.config;
-
-import java.util.List;
-
-import org.apache.log4j.Logger;
-import org.jboss.soa.esb.ConfigurationException;
-import org.jboss.soa.esb.addressing.eprs.InVMEpr;
-import org.jboss.soa.esb.dom.YADOMUtil;
-import org.jboss.soa.esb.listeners.config.xbeanmodel.FsListenerDocument.FsListener;
-import org.jboss.soa.esb.listeners.config.xbeanmodel.FtpListenerDocument.FtpListener;
-import org.jboss.soa.esb.listeners.config.xbeanmodel.HttpListenerDocument.HttpListener;
-import org.jboss.soa.esb.listeners.config.Generator.XMLBeansModel;
-import org.jboss.soa.esb.listeners.config.xbeanmodel.JmsBusDocument.JmsBus;
-import org.jboss.soa.esb.listeners.config.xbeanmodel.JmsJcaProviderDocument.JmsJcaProvider;
-import org.jboss.soa.esb.listeners.config.xbeanmodel.JmsListenerDocument.JmsListener;
-import org.jboss.soa.esb.listeners.config.xbeanmodel.JmsMessageFilterDocument.JmsMessageFilter;
-import org.jboss.soa.esb.listeners.config.xbeanmodel.ServiceDocument.Service;
-import org.jboss.soa.esb.listeners.config.xbeanmodel.SqlBusDocument.SqlBus;
-import org.jboss.soa.esb.listeners.config.xbeanmodel.SqlListenerDocument.SqlListener;
-import org.jboss.soa.esb.listeners.config.xbeanmodel.SqlProviderDocument.SqlProvider;
-import org.jboss.soa.esb.listeners.config.xbeanmodel.ScheduledListenerDocument.ScheduledListener;
-import org.jboss.soa.esb.listeners.config.xbeanmodel.*;
-import org.jboss.soa.esb.listeners.config.mappers.*;
-import org.jboss.soa.esb.listeners.ListenerTagNames;
-import org.jboss.soa.esb.listeners.message.MessageAwareListener;
-import org.w3c.dom.Document;
-import org.w3c.dom.Element;
-
-/**
- * ESB Aware Listeners Configuration Generator.
- * <p/>
- * Generates a "ConfigTree" style configuration for the ESB Aware Listeners.
- *
- * @author <a href="mailto:tom.fennelly at jboss.com">tom.fennelly at jboss.com</a>
- */
-public class ESBAwareGenerator {
-
- private static final Logger logger = Logger.getLogger(ESBAwareGenerator.class);
-
- /**
- * XMLBeans based configuration model instance.
- */
- private XMLBeansModel model;
-
- /**
- * Public constructor.
- * @param model XMLBeans based configuration model instance.
- */
- public ESBAwareGenerator(XMLBeansModel model) {
- this.model = model;
- }
-
- /**
- * Generate the configuration DOM for the target Server.
- * @return The configuration DOM.
- * @throws ConfigurationException Error creating configuration.
- */
- public Document generate() throws ConfigurationException {
- Document doc = YADOMUtil.createDocument();
- Element root;
-
- doc.appendChild(doc.createComment("\n\tNOTE: DO NOT MODIFY\n\tThis file was auto-generated.\n"));
- root = YADOMUtil.addElement(doc, "jbossesb-listeners");
- root.setAttribute("parameterReloadSecs", model.getParameterReloadSecs());
-
- // Add an InVM listener for each service...
- List<Service> services = model.getServices();
- for (int i = 0; i < services.size(); i++) {
- Service service = services.get(i);
- if(Generator.exposesInVMListener(service)) {
- addInVMListener(root, service, i);
- }
- }
-
- // Iterate over all the ESB Aware listner configs and map them to the listener configuration...
- List<Listener> listeners = model.getESBAwareListeners();
- for(Listener listener : listeners) {
- addESBAwareConfig(root, listener);
- }
-
- return doc;
- }
-
- private void addInVMListener(Element root, Service service, int serviceIndex) throws ConfigurationException {
- Element listenerNode = YADOMUtil.addElement(root, "InVM-" + serviceIndex);
- Element properties = listenerNode.getOwnerDocument().createElement("properties");
-
- MapperUtil.mapListenerServiceAttributes(listenerNode, service, false);
- listenerNode.setAttribute(ListenerTagNames.LISTENER_CLASS_TAG, MessageAwareListener.class.getName());
-
- Element eprNode = YADOMUtil.addElement(listenerNode, ListenerTagNames.EPR_TAG);
- eprNode.setAttribute(ListenerTagNames.PROTOCOL_TAG, InVMEpr.INVM_PROTOCOL);
-
- MapperUtil.mapProperties(service.getPropertyList(), properties);
- eprNode.setAttribute(ListenerTagNames.URL_TAG, InVMEpr.INVM_PROTOCOL + "://"
- + InVMEpr.createEncodedServiceId(service.getCategory(), service.getName())
- + "/" + YADOMUtil.getAttribute(properties, "inVMPassByValue", "false")
- + "?" + YADOMUtil.getAttribute(properties, "inVMLockStep", "false")
- + "#" + YADOMUtil.getAttribute(properties, "inVMLockStepTimeout", "10000"));
-
- listenerNode.setAttribute(ListenerTagNames.MAX_THREADS_TAG, YADOMUtil.getAttribute(properties, ListenerTagNames.MAX_THREADS_TAG, "1"));
-
- listenerNode.setAttribute(ListenerTagNames.TRANSACTED_TAG, Boolean.toString(getInVMTransacted(service))) ;
- YADOMUtil.removeEmptyAttributes(eprNode);
-
- ActionMapper.map(listenerNode, service, model);
- }
-
- /**
- * Try to find the InVM transacted value. Check to see if the transacted attribute
- * has been explicitly set on the service. If it has not been explicitly set then we
- * check to see if any of the listener/bus configurations are transacted and assume the
- * InVM is implicitly transacted.
- *
- * @param service The current service.
- * @return true if transacted, false otherwise.
- */
- private boolean getInVMTransacted(final Service service)
- throws ConfigurationException
- {
- if (service.isSetInvmScope()) {
- return service.getInvmTransacted() ;
- } else if (service.isSetListeners()) {
- for (Listener listener: service.getListeners().getListenerList()) {
- if (listener instanceof ScheduledListener) {
- if (((ScheduledListener)listener).getTransacted())
- return true ;
- }
- else if (listener instanceof JmsListener) {
- final Bus bus = model.getBus(listener.getBusidref()) ;
- if (!(bus instanceof JmsBus))
- continue ;
-
- final Provider provider = model.getProvider(bus) ;
- if (provider instanceof JmsJcaProvider) {
- // Jms JCA provider defaults to true
- final JmsJcaProvider jmsJcaProvider = (JmsJcaProvider)provider ;
- if (!jmsJcaProvider.isSetTransacted() || jmsJcaProvider.getTransacted())
- return true ;
- } else if (provider instanceof JmsProviderType) {
- JmsMessageFilter filter = ((JmsListener)listener).getJmsMessageFilter() ;
- if (filter == null)
- filter = ((JmsBus)bus).getJmsMessageFilter() ;
- if ((filter != null) && filter.getTransacted())
- return true ;
- }
- } else if (listener instanceof SqlListener) {
- final Bus bus = model.getBus(listener.getBusidref()) ;
- if (!(bus instanceof SqlBus))
- continue ;
-
- final Provider provider = model.getProvider(bus) ;
- if ((provider instanceof SqlProvider) && ((SqlProvider)provider).getTransacted())
- return true ;
- }
- }
- }
- return false ;
- }
-
- /**
- * Add a single ESB Aware Listener configuration node to configuration root.
- * @param root Configuration root node.
- * @param listener The ESB Aware Listener configuration to be added.
- * @throws ConfigurationException Invalid listener configuration.
- */
- private void addESBAwareConfig(Element root, Listener listener) throws ConfigurationException {
- Element listenerConfigTree;
- Service listenerService;
-
- // Of course we could do the following reflectively if we really want to - TODO perhaps!!
- if(listener instanceof JmsListener) {
- listenerConfigTree = JmsListenerMapper.map(root, (JmsListener)listener, model);
- } else if (listener instanceof ScheduledListener) {
- listenerConfigTree = ScheduledListenerMapper.map(root, (ScheduledListener) listener);
- } else if(listener instanceof FsListener) {
- listenerConfigTree = FsListenerMapper.map(root, (FsListener)listener, model);
- } else if (listener instanceof FtpListener) {
- listenerConfigTree = FtpListenerMapper.map(root, (FtpListener)listener, model);
- } else if (listener instanceof SqlListener) {
- listenerConfigTree = SqlListenerMapper.map(root, (SqlListener)listener, model);
- } else if (listener instanceof JbrListenerDocument.JbrListener) {
- logger.error("JbossRemoting listener only supported in Gateway mode.");
- return;
- } else if (listener instanceof GroovyListenerDocument.GroovyListener) {
- listenerConfigTree = GroovyListenerMapper.map(root, (GroovyListenerDocument.GroovyListener)listener, model);
- } else if (listener instanceof HttpListener) {
- listenerConfigTree = HttpListenerMapper.map(root, (HttpListener) listener, model);
- } else {
- listenerConfigTree = UntypedListenerMapper.map(root, listener, model);
- }
-
- if (listener instanceof AbstractScheduledListener) {
- ScheduleMapper.map(listenerConfigTree, (AbstractScheduledListener) listener);
- }
-
- // Locate the Service to which the listener is bound...
- listenerService = model.getService(listener);
-
- // Map the actions and notiications...
- ActionMapper.map(listenerConfigTree, listenerService, model);
- NotificationMapper.map(listenerConfigTree, listenerService, model);
- }
-}
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/GatewayGenerator.java
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/GatewayGenerator.java 2009-01-21 14:47:17 UTC (rev 24849)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/GatewayGenerator.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -1,157 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2006, JBoss Inc., and others contributors as indicated
- * by the @authors tag. All rights reserved.
- * See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- * This copyrighted material is made available to anyone wishing to use,
- * modify, copy, or redistribute it subject to the terms and conditions
- * of the GNU Lesser General Public License, v. 2.1.
- * This program is distributed in the hope that it will be useful, but WITHOUT A
- * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
- * PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
- * You should have received a copy of the GNU Lesser General Public License,
- * v.2.1 along with this distribution; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
- * MA 02110-1301, USA.
- *
- * (C) 2005-2006,
- * @author JBoss Inc.
- */
-
-package org.jboss.soa.esb.listeners.config;
-
-import java.util.HashMap;
-import java.util.List;
-
-import org.apache.log4j.Logger;
-import org.jboss.soa.esb.ConfigurationException;
-import org.jboss.soa.esb.dom.YADOMUtil;
-import org.jboss.soa.esb.listeners.config.xbeanmodel.FsListenerDocument.FsListener;
-import org.jboss.soa.esb.listeners.config.xbeanmodel.FtpListenerDocument.FtpListener;
-import org.jboss.soa.esb.listeners.config.Generator.XMLBeansModel;
-import org.jboss.soa.esb.listeners.config.xbeanmodel.GroovyListenerDocument.GroovyListener;
-import org.jboss.soa.esb.listeners.config.xbeanmodel.HibernateListenerDocument.HibernateListener;
-import org.jboss.soa.esb.listeners.config.xbeanmodel.HttpListenerDocument.HttpListener;
-import org.jboss.soa.esb.listeners.config.xbeanmodel.JbrListenerDocument.JbrListener;
-import org.jboss.soa.esb.listeners.config.xbeanmodel.JmsListenerDocument.JmsListener;
-import org.jboss.soa.esb.listeners.config.xbeanmodel.ServiceDocument.Service;
-import org.jboss.soa.esb.listeners.config.xbeanmodel.SqlListenerDocument.SqlListener;
-import org.jboss.soa.esb.listeners.config.xbeanmodel.Listener;
-import org.jboss.soa.esb.listeners.config.xbeanmodel.JcaGatewayDocument;
-import org.jboss.soa.esb.listeners.config.xbeanmodel.AbstractScheduledListener;
-import org.jboss.soa.esb.listeners.config.mappers.*;
-import org.w3c.dom.Document;
-import org.w3c.dom.Element;
-
-/**
- * Gateway Listeners Configuration Generator.
- * <p/>
- * Generates a "ConfigTree" style configuration for the Gateways Listeners.
- *
- * @author <a href="mailto:tom.fennelly at jboss.com">tom.fennelly at jboss.com</a>
- */
-public class GatewayGenerator {
-
- private static final Logger logger = Logger.getLogger(GatewayGenerator.class);
-
- /**
- * XMLBeans based configuration model instance.
- */
- @SuppressWarnings("unused")
- private XMLBeansModel model;
-
- /**
- * Public constructor.
- *
- * @param model XMLBeans based configuration model instance.
- */
- public GatewayGenerator(XMLBeansModel model) {
- this.model = model;
- }
-
- /**
- * Generate the configuration DOM for the target Server.
- *
- * @return The configuration DOM.
- * @throws ConfigurationException Error creating configuration.
- */
- public Document generate() throws ConfigurationException {
- Document doc = YADOMUtil.createDocument();
- Element root;
-
- doc.appendChild(doc.createComment("\n\tNOTE: DO NOT MODIFY\n\tThis file was auto-generated.\n"));
- root = YADOMUtil.addElement(doc, "jbossesb-gateways");
- root.setAttribute("parameterReloadSecs", model.getParameterReloadSecs());
-
- try {
- List<Service> services = model.getServices();
- HashMap<String, HashMap> hm = new HashMap<String, HashMap>();
- for (Service service : services) {
- if (hm.containsKey(service.getCategory())) {
- HashMap<String, String> hc = hm.get(service.getCategory());
-
- if (hc.containsKey(service.getName())) {
- throw new ConfigurationException("Service names must be unique within a category. "
- + "The service name " + service.getName()
- + " is already defined within the " + service.getCategory() + " category.");
- } else {
- hc.put(service.getName(), service.getName());
- }
- } else {
- HashMap <String,String> hc = new HashMap<String,String>();
- hc.put(service.getName(), service.getName());
- hm.put(service.getCategory(), hc);
- }
- }
- } catch (ConfigurationException ce) {
- logger.error("", ce);
- }
-
- // Iterate over all the gateway configs and map them to the gateway configuration...
- List<Listener> gateways = model.getGatewayListeners();
- for (Listener gateway : gateways) {
- addGatewayConfig(root, gateway);
- }
-
- return doc;
- }
-
- /**
- * Add a single gateway configuration node to configuration root.
- *
- * @param root Configuration root node.
- * @param gateway The Gateway Listener configuration to be added.
- * @throws ConfigurationException Invalid listener configuration.
- */
- private void addGatewayConfig(Element root, Listener gateway) throws ConfigurationException {
- Element listenerConfig;
-
- // Of course we could do the following reflectively if we really want to - TODO perhaps!!
- if (gateway instanceof JmsListener) {
- listenerConfig = JmsListenerMapper.map(root, (JmsListener) gateway, model);
- } else if (gateway instanceof FsListener) {
- listenerConfig = FsListenerMapper.map(root, (FsListener) gateway, model);
- } else if (gateway instanceof JcaGatewayDocument.JcaGateway) {
- listenerConfig = JcaGatewayMapper.map(root, (JcaGatewayDocument.JcaGateway) gateway, model);
- } else if (gateway instanceof FtpListener) {
- listenerConfig = FtpListenerMapper.map(root, (FtpListener) gateway, model);
- } else if (gateway instanceof SqlListener) {
- listenerConfig = SqlListenerMapper.map(root, (SqlListener) gateway, model);
- } else if (gateway instanceof JbrListener) {
- listenerConfig = JbrListenerMapper.map(root, (JbrListener) gateway, model);
- } else if (gateway instanceof HttpListener) {
- listenerConfig = HttpListenerMapper.map(root, (HttpListener) gateway, model);
- } else if (gateway instanceof GroovyListener) {
- listenerConfig = GroovyListenerMapper.map(root, (GroovyListener) gateway, model);
- } else if (gateway instanceof HibernateListener) {
- listenerConfig = HibernateListenerMapper.map(root, (HibernateListener) gateway, model);
- } else {
- listenerConfig = UntypedListenerMapper.map(root, gateway, model);
- }
-
- if (gateway instanceof AbstractScheduledListener) {
- ScheduleMapper.map(listenerConfig, (AbstractScheduledListener) gateway);
- }
- }
-}
Modified: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/Generator.java
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/Generator.java 2009-01-21 14:47:17 UTC (rev 24849)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/Generator.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -22,26 +22,18 @@
package org.jboss.soa.esb.listeners.config;
import org.apache.log4j.Logger;
-import org.apache.xmlbeans.XmlException;
import org.jboss.soa.esb.ConfigurationException;
-import org.jboss.soa.esb.common.Environment;
-import org.jboss.soa.esb.common.ModulePropertyManager;
import org.jboss.soa.esb.dom.YADOMUtil;
-import org.jboss.soa.esb.listeners.config.xbeanmodel.*;
-import org.jboss.soa.esb.listeners.config.xbeanmodel.JbossesbDocument.Jbossesb;
-import org.jboss.soa.esb.listeners.config.xbeanmodel.ScheduleProviderDocument.ScheduleProvider;
-import org.jboss.soa.esb.listeners.config.xbeanmodel.ServiceDocument.Service;
-import org.jboss.soa.esb.listeners.config.xbeanmodel.ServicesDocument.Services;
+import org.jboss.soa.esb.listeners.config.model.ModelAdapter;
+import org.jboss.soa.esb.listeners.config.model.ModelException;
+import org.jboss.soa.esb.listeners.config.model.ModelParser;
import org.w3c.dom.Document;
import java.io.File;
import java.io.IOException;
import java.io.InputStream;
+import java.io.InputStreamReader;
import java.io.OutputStream;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.List;
-import java.util.Properties;
/**
* ESB Configuration Generator.
@@ -68,7 +60,7 @@
/**
* Configuration model.
*/
- private XMLBeansModel model;
+ private ModelAdapter model;
private OutputStream gatewayOutputStream;
@@ -94,30 +86,9 @@
// Parse the config into our internal model instance...
model = parseConfig(config);
- assertOneScheduleProviderConfig(model);
+ model.verifyScheduleProviderConfig();
}
- private void assertOneScheduleProviderConfig(XMLBeansModel model) throws ConfigurationException {
- ProvidersDocument.Providers providersConfig = model.jbossesb.getProviders();
-
- if(providersConfig == null) {
- return;
- }
-
- List<Provider> providers = providersConfig.getProviderList();
- int numScheduleProviders = 0;
-
- for(Provider provider : providers) {
- if(provider instanceof ScheduleProvider) {
- numScheduleProviders++;
- }
- }
-
- if(numScheduleProviders > 1) {
- throw new ConfigurationException("Configuration contains " + numScheduleProviders + " <schedule-provider> configurations. Only one of this provider type can exist per configuration.");
- }
- }
-
/**
* Parse the supplied config into a config model.
* @param config The input configuration stream.
@@ -125,16 +96,11 @@
* @throws ConfigurationException Bad listener ESB configuration.
* @throws IOException Unable to read the ESB listener configuration.
*/
- public static XMLBeansModel parseConfig(InputStream config) throws IOException, ConfigurationException {
+ public static ModelAdapter parseConfig(InputStream config) throws IOException, ConfigurationException {
try {
- JbossesbDocument doc = JbossesbDocument.Factory.parse(config);
-
- // TODO: Get validation working from here - would save
- // doc.validate();
-
- return new XMLBeansModel(doc);
- } catch (XmlException e) {
- throw new ConfigurationException("Error while processing ESB Listener configuration stream.", e);
+ return ModelParser.getParser().parse(new InputStreamReader(config)) ;
+ } catch (final ModelException me) {
+ throw new ConfigurationException("Error while processing ESB Listener configuration stream.", me);
}
}
@@ -143,15 +109,11 @@
* @throws ConfigurationException Failed to generate configuration set.
*/
public void generate() throws ConfigurationException {
- // Generate and serialise the configuration for the ESB Aware listeners...
- ESBAwareGenerator awareGenerator = new ESBAwareGenerator(model);
- Document awareConfig = awareGenerator.generate();
+ Document awareConfig = model.generateESBAwareConfig();
YADOMUtil.serialize(awareConfig, listenerOutputStream);
- // Generate and serialise the configuration for the Gateway listeners...
- GatewayGenerator gatewayGenerator = new GatewayGenerator(model);
- Document gatewayConfig = gatewayGenerator.generate();
+ Document gatewayConfig = model.generateGatewayConfig();
YADOMUtil.serialize(gatewayConfig, gatewayOutputStream);
}
@@ -180,248 +142,22 @@
throw new IllegalArgumentException("'outdir' exists, but is not a directory.");
}
- // Generate and serialise the configuration for the ESB Aware listeners...
- ESBAwareGenerator awareGenerator = new ESBAwareGenerator(model);
- Document awareConfig = awareGenerator.generate();
+ Document awareConfig = model.generateESBAwareConfig();
logger.info("Serializing ESB Aware Listener 'ConfigTree' configuration to [" + (new File(outdir, ESB_CONFIG_XML_FILE)).getAbsolutePath() + "].");
YADOMUtil.serialize(awareConfig, outdir, ESB_CONFIG_XML_FILE);
- // Generate and serialise the configuration for the Gateway listeners...
- GatewayGenerator gatewayGenerator = new GatewayGenerator(model);
- Document gatewayConfig = gatewayGenerator.generate();
+ Document gatewayConfig = model.generateGatewayConfig();
logger.info("Serializing ESB Gateway 'ConfigTree' configuration to [" + (new File(outdir, ESB_CONFIG_GATEWAY_XML_FILE)).getAbsolutePath() + "].");
YADOMUtil.serialize(gatewayConfig, outdir, ESB_CONFIG_GATEWAY_XML_FILE);
}
- public static Properties toProperties(List<PropertyDocument.Property> configProperties) {
- Properties properties = new Properties();
-
- for(PropertyDocument.Property property : configProperties) {
- properties.setProperty(property.getName(), property.getValue());
- }
-
- return properties;
- }
-
/**
* Get the model instance associate with the configuration used to create this Generator instance.
* @return Returns the model.
*/
- public XMLBeansModel getModel() {
+ public ModelAdapter getModel() {
return model;
}
-
- public static boolean exposesInVMListener(Service service) {
- if(service.xgetInvmScope() != null && service.xgetInvmScope().getStringValue() != null) {
- return (service.xgetInvmScope().getStringValue().equals("GLOBAL"));
- }
-
- String systemDefaultScope = System.getProperty(Environment.DEFAULT_INVM_SCOPE, "GLOBAL");
- String defaultScope = ModulePropertyManager.getPropertyManager("core").getProperty(Environment.DEFAULT_INVM_SCOPE, systemDefaultScope);
-
- return defaultScope.equals("GLOBAL");
- }
-
- /**
- * XMLBeans based model implementation.
- *
- * @author <a href="mailto:tom.fennelly at jboss.com">tom.fennelly at jboss.com</a>
- */
- public static class XMLBeansModel {
-
- /**
- * XMLBeans config model instance.
- */
- private Jbossesb jbossesb;
-
- /**
- * Constructor.
- * @param xmlBeansDoc XMLBeans config model.
- */
- private XMLBeansModel(JbossesbDocument xmlBeansDoc) {
- this.jbossesb = xmlBeansDoc.getJbossesb();
- }
-
- /**
- * Get the list of ESB Gateway Listeners from the configuration.
- * @return The list of ESB Gateway Listeners from the configuration.
- * @throws ConfigurationException Bad configuration.
- */
- public List<Listener> getGatewayListeners() throws ConfigurationException {
- return getListeners(true);
- }
-
- /**
- * Get the list of ESB Aware Listeners from the configuration.
- * @return The list of ESB Aware Listeners from the configuration.
- * @throws ConfigurationException Bad configuration.
- */
- public List<Listener> getESBAwareListeners() throws ConfigurationException {
- return getListeners(false);
- }
-
- /**
- * Get the Service to which the supplied {@link Listener} configuration instance is bound.
- * @param listener The listener instance (Gateway or ESB Aware).
- * @return The Service to which the
- */
- public Service getService(Listener listener) {
- List<Service> services = getServices();
-
- for(Service service : services) {
- ListenersDocument.Listeners listeners = service.getListeners();
-
- if(listeners != null) {
- List<Listener> listenerList = listeners.getListenerList();
-
- if(listenerList != null) {
- for(Listener serviceListener : listenerList) {
- if(serviceListener == listener) {
- return service;
- }
- }
- }
- }
- }
-
- throw new IllegalStateException("No Service instance found for the supplied Listener instance. This should not be possible if the Listener instance was provided by this configuration. Where has this Listener instance come from?");
- }
-
- /**
- * Get the Service list.
- * @return Service list.
- */
- public List<Service> getServices() {
- final Services services = jbossesb.getServices();
- if (services != null) {
- return jbossesb.getServices().getServiceList();
- } else {
- return Collections.emptyList();
- }
- }
-
- /**
- * Get the <bus> configuration matching the supplied busid reference value.
- * @param busid The required <bus> configuration reference value.
- * @return The Bus configuration instance.
- * @throws ConfigurationException Unknown busid reference value.
- */
- public Bus getBus(String busid) throws ConfigurationException {
- List<Provider> providers = jbossesb.getProviders().getProviderList();
-
- for(Provider provider : providers) {
- if(provider instanceof BusProvider) {
- List<Bus> buses = ((BusProvider)provider).getBusList();
-
- for(Bus bus : buses) {
- if(bus.getBusid().equals(busid)) {
- return bus;
- }
- }
- }
- }
-
- throw new ConfigurationException("Invalid ESB Configuration: No <bus> configuration matching busid reference value [" + busid + "].");
- }
-
- /**
- * Get the <provider> configuration containing the supplied Bus configuration instance.
- * @param bus The Bus config instance whose Provider is being sought.
- * @return The Provider configuration instance.
- */
- public Provider getProvider(Bus bus) {
- List<Provider> providers = jbossesb.getProviders().getProviderList();
-
- for(Provider provider : providers) {
- if(provider instanceof BusProvider) {
- List<Bus> buses = ((BusProvider)provider).getBusList();
-
- for(Bus installedBus : buses) {
- if(installedBus == bus) {
- return provider;
- }
- }
- }
- }
-
- throw new IllegalStateException("No Provider instance found for the supplied Bus config instance. This should not be possible if the Bus instance was provided by this configuration. Where has this Bus instance come from?");
- }
-
- public ScheduleProvider getScheduleProvider() {
- if(jbossesb.getProviders() == null) {
- return null;
- }
-
- List<Provider> providers = jbossesb.getProviders().getProviderList();
-
- for(Provider provider : providers) {
- if(provider instanceof ScheduleProvider) {
- return (ScheduleProvider) provider;
- }
- }
-
- return null;
- }
-
- private boolean isGateway(Listener listener)
- {
- return listener.getIsGateway() || (listener instanceof JcaGatewayDocument.JcaGateway);
- }
-
- /**
- * Get the list of ESB Listeners based on their Gateway flag.
- * @return The list of ESB Aware or Gateway Listeners from the configuration.
- * @param isGateway Is the listener a gateway or ESB aware listener.
- * @throws ConfigurationException Bad configuration.
- */
- private List<Listener> getListeners(boolean isGateway) throws ConfigurationException {
- List<Listener> gateways = new ArrayList<Listener>();
- if (jbossesb.getServices() != null) {
- List<Service> services = getServices();
-
- for(Service service : services) {
- boolean listenerAdded = false;
- ListenersDocument.Listeners listeners = service.getListeners();
-
- if(listeners != null) {
- for(Listener listener : listeners.getListenerList()) {
- if(isGateway(listener) == isGateway) {
- gateways.add(listener);
- listenerAdded = true;
- }
- }
- }
-
- // Make sure each Service config has a message aware listener...
- // http://jira.jboss.com/jira/browse/JBESB-648
- if(!exposesInVMListener(service) && !isGateway && !listenerAdded) {
- throw new ConfigurationException("Service configuration for Service '" + service.getCategory() + ":" + service.getName() + "' doesn't define a Message-Aware Listener (i.e. is-gateway='false').");
- }
- }
- }
-
- return gateways;
- }
-
- /**
- * Gets the setting for the number of seconds between reloads.
- *
- * @return The param reload seconds config value.
- */
- public String getParameterReloadSecs() {
- return jbossesb.getParameterReloadSecs().getStringValue();
- }
-
- public static String getProperty(List<PropertyDocument.Property> properties, String name, String defaultVal) {
- for (PropertyDocument.Property property : properties) {
- if(property.getName().equals(name)) {
- return property.getValue();
- }
- }
-
- return defaultVal;
- }
- }
}
Modified: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/JBoss4ESBDeployer.java
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/JBoss4ESBDeployer.java 2009-01-21 14:47:17 UTC (rev 24849)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/JBoss4ESBDeployer.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -21,45 +21,54 @@
*/
package org.jboss.soa.esb.listeners.config;
+import java.io.ByteArrayOutputStream;
import java.io.File;
+import java.io.FileOutputStream;
+import java.io.IOException;
import java.io.InputStream;
import java.io.StringReader;
import java.io.StringWriter;
import java.net.URL;
+import java.util.ArrayList;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Iterator;
+import java.util.List;
import java.util.Map;
import java.util.Properties;
import java.util.Set;
+import java.util.zip.ZipEntry;
+import java.util.zip.ZipOutputStream;
import javax.management.MalformedObjectNameException;
import javax.management.ObjectName;
-import javax.xml.xpath.XPath;
-import javax.xml.xpath.XPathConstants;
-import javax.xml.xpath.XPathExpressionException;
-import javax.xml.xpath.XPathFactory;
import org.jboss.deployment.DeploymentException;
import org.jboss.deployment.DeploymentInfo;
import org.jboss.deployment.SubDeployer;
import org.jboss.deployment.SubDeployerSupport;
+import org.jboss.internal.soa.esb.publish.ContractReferencePublisher;
import org.jboss.internal.soa.esb.util.XMLHelper;
+import org.jboss.internal.soa.esb.webservice.ESBContractGenerator;
+import org.jboss.internal.soa.esb.webservice.ESBServiceContractPublisher;
+import org.jboss.internal.soa.esb.webservice.ESBServiceEndpointInfo;
+import org.jboss.internal.soa.esb.webservice.JAXWSProviderClassGenerator;
import org.jboss.logging.Logger;
import org.jboss.metadata.MetaData;
import org.jboss.metadata.XmlFileLoader;
import org.jboss.mx.loading.LoaderRepositoryFactory;
import org.jboss.mx.util.MBeanProxyExt;
import org.jboss.mx.util.ObjectNameConverter;
+import org.jboss.soa.esb.Service;
import org.jboss.soa.esb.lifecycle.LifecycleResourceManager;
+import org.jboss.soa.esb.listeners.config.model.ModelAdapter;
+import org.jboss.soa.esb.listeners.config.model.ModelParser;
import org.jboss.soa.esb.util.ClassUtil;
-import org.jboss.soa.esb.util.XPathNamespaceContext;
import org.jboss.system.ServiceControllerMBean;
+import org.jboss.system.server.ServerConfig;
+import org.jboss.system.server.ServerConfigLocator;
import org.jboss.web.AbstractWebContainer;
import org.w3c.dom.Element;
-import org.w3c.dom.Node;
-import org.w3c.dom.NodeList;
-import org.xml.sax.InputSource;
/**
* comment
@@ -74,6 +83,8 @@
private ServiceControllerMBean serviceController;
private Properties actionArtifactProperties;
+ private final File esbWarFiles ;
+ private final Set<String> esbNames = new HashSet<String>() ;
private static final String PREFIX_CANONICAL_NAME = "jboss.esb:deployment=" ;
private static final String ESB_ARTIFACT_NAME = "jbossesb.esb" ;
@@ -87,8 +98,11 @@
{
setSuffixes(new String[]{".esb"});
setRelativeOrder(1000); // before old EJB 2.1 deployer
+ final ServerConfig config = ServerConfigLocator.locate();
+ esbWarFiles = new File(config.getServerTempDeployDir(), "esbwarfiles") ;
+ esbWarFiles.mkdirs() ;
}
-
+
public static boolean hasFile(DeploymentInfo di, String filePath)
{
String urlStr = di.url.getFile();
@@ -223,6 +237,57 @@
in.close();
}
}
+
+ final URL document = getDocumentUrl(di);
+
+ if (document == null)
+ {
+ throw new DeploymentException("Unable to find document url of META-INF/jboss-esb.xml in: "
+ + di.url);
+ }
+ final InputStream inputStream = document.openStream();
+ final String jbossEsbXml ;
+ try
+ {
+ final StringWriter sw = new StringWriter() ;
+ XMLHelper.replaceSystemProperties(XMLHelper.getXMLStreamReader(inputStream),
+ XMLHelper.getXMLStreamWriter(sw)) ;
+ jbossEsbXml = sw.toString();
+ }
+ finally
+ {
+ inputStream.close();
+ }
+
+ final Set<ObjectName> deps = new HashSet<ObjectName>();
+ final ModelAdapter model = getJbossEsbModel(jbossEsbXml) ;
+ addActionDependencies(di.shortName, model, deps) ;
+
+ JBoss4ESBDeployment deployment = new JBoss4ESBDeployment(jbossEsbXml, di.shortName);
+ initialiseDeploymentName(deployment) ;
+ final String deploymentName = deployment.getDeploymentName() ;
+ di.context.put(JBoss4ESBDeploymentMetaData.class, new JBoss4ESBDeploymentMetaData(deployment, deploymentName, deps)) ;
+ // invoke super-class initialization
+ super.init(di);
+ // create webservice WAR
+ final ClassLoader origCL = Thread.currentThread().getContextClassLoader() ;
+ final List<ContractReferencePublisher> publishers = new ArrayList<ContractReferencePublisher>() ;
+ final File warFile ;
+ try
+ {
+ Thread.currentThread().setContextClassLoader(di.localCl) ;
+ warFile = createWebserviceWars(di.shortName, model, deploymentName, publishers) ;
+ }
+ finally
+ {
+ Thread.currentThread().setContextClassLoader(origCL) ;
+ }
+ if (warFile != null)
+ {
+ deployment.setPublishers(publishers) ;
+ final URL warFileURL = warFile.toURL() ;
+ deployUrl(di, warFileURL, warFile.getName()) ;
+ }
}
catch (Exception e)
{
@@ -232,24 +297,15 @@
}
throw new DeploymentException("failed to initialize", e);
}
-
- // invoke super-class initialization
- super.init(di);
}
public synchronized void create(DeploymentInfo di) throws DeploymentException
{
log.info("create esb service, " + di.shortName);
- URL document = getDocumentUrl(di);
-
- if (document == null)
- {
- throw new DeploymentException("Unable to find document url of META-INF/jboss-esb.xml in: "
- + di.url);
- }
try
{
- Set<ObjectName> deps = new HashSet<ObjectName>();
+ final JBoss4ESBDeploymentMetaData metaData = (JBoss4ESBDeploymentMetaData)di.context.get(JBoss4ESBDeploymentMetaData.class) ;
+ final Set<ObjectName> deps = metaData.getDependencies() ;
InputStream in = di.localCl.getResourceAsStream("META-INF/deployment.xml");
if (in != null)
{
@@ -317,34 +373,16 @@
}
}
- final InputStream inputStream = document.openStream();
- final String jbossEsbXml ;
- try
- {
- final StringWriter sw = new StringWriter() ;
- XMLHelper.replaceSystemProperties(XMLHelper.getXMLStreamReader(inputStream),
- XMLHelper.getXMLStreamWriter(sw)) ;
- jbossEsbXml = sw.toString();
- }
- finally
- {
- inputStream.close();
- }
-
- addActionDependencies(di.shortName, jbossEsbXml, deps) ;
-
- JBoss4ESBDeployment deployment = new JBoss4ESBDeployment(jbossEsbXml, di.shortName);
- deployment.setClassloader(di.ucl);
- String name = PREFIX_CANONICAL_NAME + di.shortName;
+ String name = PREFIX_CANONICAL_NAME + metaData.getDeploymentName();
ObjectName on = ObjectNameConverter.convert(name);
// Check that the name is not registered
if (server.isRegistered(on) == true)
{
- log.debug("The ESBModule name: " + name
- + "is already registered, adding uid=" + System.identityHashCode(deployment));
- name = name + ",uid=" + System.identityHashCode(deployment);
- on = ObjectNameConverter.convert(name);
+ throw new DeploymentException("Duplicate registration for " + name) ;
}
+
+ final JBoss4ESBDeployment deployment = metaData.getDeployment() ;
+ deployment.setClassloader(di.ucl);
server.registerMBean(deployment, on);
di.deployedObject = on;
log.debug("Deploying: " + di.url);
@@ -359,58 +397,40 @@
super.create(di);
}
+ private ModelAdapter getJbossEsbModel(final String configuration)
+ throws DeploymentException
+ {
+ try
+ {
+ final StringReader sr = new StringReader(configuration) ;
+ return ModelParser.getParser().parse(sr) ;
+ }
+ catch (final Exception ex)
+ {
+ throw new DeploymentException("Failed to parse jboss-esb.xml", ex) ;
+ }
+ }
+
private void addActionDependencies(final String deploymentName,
- final String configuration, final Set<ObjectName> deps)
- throws XPathExpressionException, DeploymentException, MalformedObjectNameException
+ final ModelAdapter model, final Set<ObjectName> deps)
+ throws MalformedObjectNameException
{
- final XmlFileLoader xfl = new XmlFileLoader() ;
- final StringReader sr = new StringReader(configuration) ;
- final InputSource is = new InputSource(sr) ;
- final Element rootElement = xfl.getDocument(is, "META-INF/jboss-esb.xml").getDocumentElement() ;
-
final Set<String> artifacts = new HashSet<String>() ;
artifacts.add(ESB_ARTIFACT_NAME) ;
- final String namespaceURI = "http://anonsvn.labs.jboss.com/labs/jbossesb/trunk/product/etc/schemas/xml/jbossesb-1.0.1.xsd" ;
+ final Set<String> actionClasses = model.getActions() ;
- final XPath xpathEvaluater = XPathFactory.newInstance().newXPath();
- final XPathNamespaceContext namespaceContext = new XPathNamespaceContext() ;
- namespaceContext.setMapping("jbesb", namespaceURI) ;
- xpathEvaluater.setNamespaceContext(namespaceContext) ;
-
- final NodeList actionList = (NodeList) xpathEvaluater.evaluate("/jbesb:jbossesb/jbesb:services/jbesb:service/jbesb:actions/jbesb:action",
- rootElement, XPathConstants.NODESET) ;
- final int numActions = actionList.getLength() ;
- if (numActions > 0)
+ final int numActionClasses = (actionClasses == null ? 0 : actionClasses.size()) ;
+ if (numActionClasses > 0)
{
- final Set<String> actionClasses = new HashSet<String>() ;
- for(int count = 0 ; count < numActions ; count++)
+ for(final String actionClass: actionClasses)
{
- final Node actionNode = actionList.item(count) ;
- if (!(actionNode instanceof Element))
+ final String artifact = (String)actionArtifactProperties.get(actionClass) ;
+ if (artifact != null)
{
- log.warn("Action node is not an element: " + actionNode) ;
+ artifacts.add(artifact) ;
}
- else
- {
- final Element actionElement = (Element)actionNode ;
- final String actionClass = actionElement.getAttribute("class") ;
- actionClasses.add(actionClass) ;
- }
}
-
- final int numActionClasses = actionClasses.size() ;
- if (numActionClasses > 0)
- {
- for(final String actionClass: actionClasses)
- {
- final String artifact = (String)actionArtifactProperties.get(actionClass) ;
- if (artifact != null)
- {
- artifacts.add(artifact) ;
- }
- }
- }
}
for(final String artifact: artifacts)
@@ -423,7 +443,95 @@
}
}
}
+
+ private File createWebserviceWars(final String esbName, final ModelAdapter model, final String deploymentName,
+ final List<ContractReferencePublisher> publishers)
+ throws DeploymentException
+ {
+ final List<WebserviceInfo> endpointServices = model.getWebserviceServices() ;
+ if (endpointServices != null)
+ {
+ if (endpointServices.size() > 0)
+ {
+ final StringWriter servletDefinition = new StringWriter() ;
+ final StringWriter servletMapping = new StringWriter() ;
+
+ final ByteArrayOutputStream baos = new ByteArrayOutputStream() ;
+ final ZipOutputStream zos = new ZipOutputStream(baos) ;
+ zos.setComment("ESB war file for exposing webservices: " + esbName) ;
+ try
+ {
+ final JAXWSProviderClassGenerator generator = new JAXWSProviderClassGenerator() ;
+
+ for(WebserviceInfo webserviceInfo: endpointServices)
+ {
+ final ESBServiceEndpointInfo serviceInfo = new ESBServiceEndpointInfo(webserviceInfo) ;
+ final String wsdl = ESBContractGenerator.generateWSDL(webserviceInfo, serviceInfo) ;
+ addFile(zos, serviceInfo.getWSDLFileName(), wsdl) ;
+
+ final Service service = webserviceInfo.getService() ;
+ final byte[] wsClass = generator.generate(service.getCategory(),
+ service.getName(), serviceInfo) ;
+ final String wsClassName = serviceInfo.getClassName().replace('.', '/') + ".class" ;
+ addFile(zos, "WEB-INF/classes/" + wsClassName, wsClass) ;
+
+ servletDefinition.append("<servlet><servlet-name>") ;
+ servletDefinition.append(serviceInfo.getServletName()) ;
+ servletDefinition.append("</servlet-name><servlet-class>") ;
+ servletDefinition.append(serviceInfo.getClassName()) ;
+ servletDefinition.append("</servlet-class></servlet>") ;
+
+ servletMapping.append("<servlet-mapping><servlet-name>") ;
+ servletMapping.append(serviceInfo.getServletName()) ;
+ servletMapping.append("</servlet-name><url-pattern>") ;
+ servletMapping.append(serviceInfo.getServletPath()) ;
+ servletMapping.append("</url-pattern></servlet-mapping>") ;
+
+ final ContractReferencePublisher publisher = new ESBServiceContractPublisher(service, webserviceInfo.getDescription(), serviceInfo.getServletName()) ;
+ publishers.add(publisher) ;
+ }
+
+ final StringWriter webXml = new StringWriter() ;
+ webXml.append("<web-app xmlns=\"http://java.sun.com/xml/ns/j2ee\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"") ;
+ webXml.append(" xsi:schemaLocation=\"http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd\" version=\"2.4\">") ;
+ webXml.append(servletDefinition.getBuffer()) ;
+ webXml.append(servletMapping.getBuffer()) ;
+ webXml.append("</web-app>") ;
+
+ addFile(zos, "WEB-INF/web.xml", webXml.toString()) ;
+ zos.close() ;
+
+ final File warFile = getESBWarFile(deploymentName, esbName, true) ;
+
+ final FileOutputStream fos = new FileOutputStream(warFile) ;
+ fos.write(baos.toByteArray()) ;
+ fos.close() ;
+ return warFile ;
+ }
+ catch (final Exception ex)
+ {
+ throw new DeploymentException("Failed to create webservice artifact", ex) ;
+ }
+ }
+ }
+ return null ;
+ }
+ private void addFile(final ZipOutputStream zos, final String filename, final String contents)
+ throws IOException
+ {
+ addFile(zos, filename, contents.getBytes()) ;
+ }
+
+ private void addFile(final ZipOutputStream zos, final String filename, final byte[] contents)
+ throws IOException
+ {
+ final ZipEntry entry = new ZipEntry(filename) ;
+ zos.putNextEntry(entry) ;
+ zos.write(contents) ;
+ zos.closeEntry() ;
+ }
+
public synchronized void start(DeploymentInfo di)
throws DeploymentException
{
@@ -469,6 +577,18 @@
public void destroy(DeploymentInfo di)
throws DeploymentException
{
+ final JBoss4ESBDeploymentMetaData metaData = (JBoss4ESBDeploymentMetaData)di.context.get(JBoss4ESBDeploymentMetaData.class) ;
+ if (metaData != null)
+ {
+ final String deploymentName = metaData.getDeploymentName() ;
+ final File warFile = getESBWarFile(deploymentName, di.shortName, false) ;
+ if (warFile != null)
+ {
+ warFile.delete();
+ warFile.getParentFile().delete() ;
+ }
+ removeDeploymentName(deploymentName) ;
+ }
if (di.deployedObject != null)
{
try
@@ -484,4 +604,36 @@
}
super.destroy(di);
}
+
+ private File getESBWarFile(final String deploymentName, final String esbName, final boolean createDir)
+ {
+ final File esbDir = new File(esbWarFiles, deploymentName) ;
+ if (!esbDir.exists())
+ {
+ if (!createDir)
+ {
+ return null ;
+ }
+ esbDir.mkdir() ;
+ }
+
+ final int lastSeparator = esbName.lastIndexOf('.') ;
+ final String warFileName = ((lastSeparator >= 0) ? esbName.substring(0, lastSeparator) : esbName) + ".war" ;
+
+ return new File(esbDir, warFileName) ;
+ }
+
+ private synchronized void initialiseDeploymentName(final JBoss4ESBDeployment deployment)
+ {
+ final String deploymentName = deployment.getDeploymentName() ;
+ if (!esbNames.add(deploymentName))
+ {
+ deployment.setDeploymentName(deploymentName + ",uid=" + System.identityHashCode(deployment)) ;
+ }
+ }
+
+ private synchronized void removeDeploymentName(final String deploymentName)
+ {
+ esbNames.remove(deploymentName) ;
+ }
}
Modified: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/JBoss4ESBDeployment.java
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/JBoss4ESBDeployment.java 2009-01-21 14:47:17 UTC (rev 24849)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/JBoss4ESBDeployment.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -21,6 +21,9 @@
*/
package org.jboss.soa.esb.listeners.config;
+import java.util.List;
+
+import org.jboss.internal.soa.esb.publish.ContractReferencePublisher;
import org.jboss.soa.esb.lifecycle.LifecycleResourceManager;
import org.jboss.soa.esb.listeners.lifecycle.ManagedLifecycleController;
import org.jboss.system.ServiceMBeanSupport;
@@ -34,11 +37,11 @@
public class JBoss4ESBDeployment extends ServiceMBeanSupport implements JBoss4ESBDeploymentMBean
{
private final String jbossEsbXml;
- private final String deploymentName ;
+ private String deploymentName ;
+ private List<ContractReferencePublisher> publishers ;
private ManagedLifecycleController controller;
private ClassLoader classloader;
-
public JBoss4ESBDeployment(String jbossEsbXml, final String deploymentName)
{
this.jbossEsbXml = jbossEsbXml;
@@ -55,16 +58,35 @@
return jbossEsbXml.replace("<", "<").replace(">", ">");
}
-
public void setClassloader(ClassLoader classloader)
{
this.classloader = classloader;
}
+ public void setPublishers(final List<ContractReferencePublisher> publishers)
+ {
+ this.publishers = publishers ;
+ }
+
public ManagedLifecycleController getController()
{
return controller;
}
+
+ public String getDeploymentName()
+ {
+ return deploymentName ;
+ }
+
+ public void setDeploymentName(final String deploymentName)
+ {
+ this.deploymentName = deploymentName ;
+ }
+
+ public List<ContractReferencePublisher> getPublishers()
+ {
+ return publishers ;
+ }
@Override
public void createService()
@@ -79,7 +101,7 @@
{
Thread.currentThread().setContextClassLoader(classloader);
LifecycleResourceManager.getSingleton().associateDeployment(deploymentName) ;
- controller = Configuration.create(jbossEsbXml, serviceName);
+ controller = Configuration.create(jbossEsbXml, serviceName, publishers);
controller.start();
}
finally
Copied: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/JBoss4ESBDeploymentMetaData.java (from rev 24846, labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/listeners/config/JBoss4ESBDeploymentMetaData.java)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/JBoss4ESBDeploymentMetaData.java (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/JBoss4ESBDeploymentMetaData.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -0,0 +1,61 @@
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2006, JBoss Inc., and individual contributors as indicated
+* by the @authors tag. See the copyright.txt in the distribution for a
+* full listing of individual contributors.
+*
+* This is free software; you can redistribute it and/or modify it
+* under the terms of the GNU Lesser General Public License as
+* published by the Free Software Foundation; either version 2.1 of
+* the License, or (at your option) any later version.
+*
+* This software is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+* Lesser General Public License for more details.
+*
+* You should have received a copy of the GNU Lesser General Public
+* License along with this software; if not, write to the Free
+* Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+* 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+*/
+package org.jboss.soa.esb.listeners.config;
+
+import java.util.Set;
+
+import javax.management.ObjectName;
+
+/**
+ * Meta Data used for ESB deployments
+ *
+ * @author <a href="kevin.conner at jboss.com">Kevin Conner</a>
+ */
+public class JBoss4ESBDeploymentMetaData
+{
+ private final JBoss4ESBDeployment deployment ;
+ private final String deploymentName ;
+ private final Set<ObjectName> dependencies ;
+
+ public JBoss4ESBDeploymentMetaData(final JBoss4ESBDeployment deployment, final String deploymentName,
+ final Set<ObjectName> dependencies)
+ {
+ this.deployment = deployment ;
+ this.deploymentName = deploymentName ;
+ this.dependencies = dependencies ;
+ }
+
+ public JBoss4ESBDeployment getDeployment()
+ {
+ return deployment ;
+ }
+
+ public String getDeploymentName()
+ {
+ return deploymentName ;
+ }
+
+ public Set<ObjectName> getDependencies()
+ {
+ return dependencies ;
+ }
+}
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/ScheduleProviderFactory.java
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/ScheduleProviderFactory.java 2009-01-21 14:47:17 UTC (rev 24849)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/ScheduleProviderFactory.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -1,119 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2006, JBoss Inc., and others contributors as indicated
- * by the @authors tag. All rights reserved.
- * See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- * This copyrighted material is made available to anyone wishing to use,
- * modify, copy, or redistribute it subject to the terms and conditions
- * of the GNU Lesser General Public License, v. 2.1.
- * This program is distributed in the hope that it will be useful, but WITHOUT A
- * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
- * PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
- * You should have received a copy of the GNU Lesser General Public License,
- * v.2.1 along with this distribution; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
- * MA 02110-1301, USA.
- *
- * (C) 2005-2006, JBoss Inc.
- */
-package org.jboss.soa.esb.listeners.config;
-
-import org.jboss.soa.esb.schedule.*;
-import org.jboss.soa.esb.ConfigurationException;
-import org.jboss.soa.esb.helpers.ConfigTree;
-import org.jboss.soa.esb.listeners.lifecycle.ManagedLifecycle;
-import org.jboss.soa.esb.listeners.config.xbeanmodel.ScheduleProviderDocument;
-import org.jboss.soa.esb.listeners.config.xbeanmodel.SimpleScheduleDocument;
-import org.jboss.soa.esb.listeners.config.xbeanmodel.CronScheduleDocument;
-import org.jboss.soa.esb.listeners.config.xbeanmodel.FrequencyUnit;
-
-import java.util.List;
-import java.util.Properties;
-import java.util.ArrayList;
-
-/**
- * Factory class for creating and configuring a {@link ScheduleProvider}
- * instance.
- *
- * @author <a href="daniel.bevenius at redpill.se">Daniel Bevenius</a>
- * @author <a href="mailto:tom.fennelly at jboss.com">tom.fennelly at jboss.com</a>
- */
-public abstract class ScheduleProviderFactory {
-
- public static final String ATTR_SCHEDULE_ID_REF = "scheduleidref";
- public static final String ATTR_FREQUENCY = "schedule-frequency";
-
- public static ScheduleProvider createInstance(List<ManagedLifecycle> listeners, ScheduleProviderDocument.ScheduleProvider scheduleProviderConfig) throws ConfigurationException {
- Properties schedulerConfig = null;
- List<org.jboss.soa.esb.schedule.Schedule> schedules = null;
- ScheduleProvider instance;
-
- if(scheduleProviderConfig != null) {
- schedulerConfig = Generator.toProperties(scheduleProviderConfig.getPropertyList());
- schedules = getSchedules(scheduleProviderConfig);
- }
- instance = new ScheduleProvider(schedulerConfig, schedules);
-
- try {
- for(ManagedLifecycle listener : listeners) {
- if(listener instanceof ScheduledEventListener) {
- ConfigTree config = listener.getConfig();
- String scheduleIdRef = config.getAttribute(ATTR_SCHEDULE_ID_REF);
-
- if(scheduleIdRef != null) {
- instance.addListener((ScheduledEventListener) listener, scheduleIdRef);
- } else {
- long frequency = config.getLongAttribute(ATTR_FREQUENCY, 10);
- instance.addListener((ScheduledEventListener) listener, frequency);
- }
- }
- }
- } catch (SchedulingException e) {
- throw new ConfigurationException(e);
- }
-
- return instance;
- }
-
- private static List<org.jboss.soa.esb.schedule.Schedule> getSchedules(ScheduleProviderDocument.ScheduleProvider scheduleProviderConfig) throws ConfigurationException {
- List<Schedule> schedules = new ArrayList<Schedule>();
- List<org.jboss.soa.esb.listeners.config.xbeanmodel.Schedule> scheduleConfigs = scheduleProviderConfig.getScheduleList();
- List<String> schedulIds = new ArrayList<String>();
-
- // We wouldn't have to do this if we were using JAXB!!!
- // TODO: Get XMLBeans to fudge the class names for the generated binds - existing names are potentialy dangerous because they're the same as the non XMLBeans types
- for(org.jboss.soa.esb.listeners.config.xbeanmodel.Schedule scheduleConfig : scheduleConfigs) {
- String scheduleId = scheduleConfig.getScheduleid();
- Schedule schedule;
-
- if(schedulIds.contains(scheduleId)) {
- throw new ConfigurationException("Duplicate 'scheduleid' value of '" + scheduleId + "'. Must be unique on a per <schedule-provider> basis.");
- }
- schedulIds.add(scheduleId);
-
- if(scheduleConfig instanceof SimpleScheduleDocument.SimpleSchedule) {
- SimpleSchedule simpleSchedule;
- FrequencyUnit.Enum frequencyUnit = ((SimpleScheduleDocument.SimpleSchedule)scheduleConfig).getFrequencyUnits();
-
- schedule = simpleSchedule = new SimpleSchedule(scheduleId);
- if(frequencyUnit == FrequencyUnit.SECONDS) {
- simpleSchedule.setFrequency(((SimpleScheduleDocument.SimpleSchedule)scheduleConfig).getFrequency() * 1000);
- } else {
- simpleSchedule.setFrequency(((SimpleScheduleDocument.SimpleSchedule)scheduleConfig).getFrequency());
- }
- simpleSchedule.setExecCount(((SimpleScheduleDocument.SimpleSchedule)scheduleConfig).getExecCount());
- } else {
- CronSchedule cronSchedule;
-
- schedule = cronSchedule = new CronSchedule(scheduleId);
- cronSchedule.setCronExpression(((CronScheduleDocument.CronSchedule)scheduleConfig).getCronExpression());
- }
- schedule.setStartDate(scheduleConfig.getStartDate());
- schedule.setEndDate(scheduleConfig.getEndDate());
- schedules.add(schedule);
- }
-
- return schedules;
- }
-}
Modified: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/ServicePublisher.java
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/ServicePublisher.java 2009-01-21 14:47:17 UTC (rev 24849)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/ServicePublisher.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -3,18 +3,16 @@
import java.util.ArrayList;
import java.util.Collection;
import java.util.LinkedHashMap;
+import java.util.LinkedHashSet;
import java.util.List;
import java.util.Map;
import org.jboss.internal.soa.esb.assertion.AssertArgument;
-import org.jboss.internal.soa.esb.publish.ActionContractPublisher;
import org.jboss.internal.soa.esb.publish.ContractPublisher;
-import org.jboss.internal.soa.esb.publish.Publish;
-import org.jboss.soa.esb.listeners.config.xbeanmodel.ActionDocument.Action;
-import org.jboss.soa.esb.listeners.config.Generator.XMLBeansModel;
-import org.jboss.soa.esb.listeners.config.xbeanmodel.ServiceDocument.Service;
+import org.jboss.internal.soa.esb.publish.ContractReferencePublisher;
+import org.jboss.internal.soa.esb.publish.Publisher;
+import org.jboss.soa.esb.Service;
import org.jboss.soa.esb.listeners.lifecycle.ManagedLifecycleController;
-import org.jboss.soa.esb.util.ClassUtil;
/**
* Service contract publisher.
@@ -26,23 +24,23 @@
private String serviceName;
private String category;
private String description;
- private ContractPublisher contractPublisher;
- private static Map<ManagedLifecycleController, List<ServicePublisher>> servicePublishers = new LinkedHashMap<ManagedLifecycleController, List<ServicePublisher>>();
+ private Publisher publisher;
+ private static Map<ManagedLifecycleController, Map<Service, List<ServicePublisher>>> SERVICE_PUBLISHERS = new LinkedHashMap<ManagedLifecycleController, Map<Service, List<ServicePublisher>>>();
/**
* Public constructor.
*
* @param name Service name.
* @param category Service category.
- * @param contractPublisher Contract publisher implementation.
+ * @param publisher publisher implementation.
*/
- protected ServicePublisher(String name, String category, ContractPublisher contractPublisher) {
+ public ServicePublisher(String name, String category, Publisher publisher) {
AssertArgument.isNotNullAndNotEmpty(name, "name");
AssertArgument.isNotNullAndNotEmpty(category, "category");
this.serviceName = name;
this.category = category;
- this.contractPublisher = contractPublisher;
+ this.publisher = publisher;
}
/**
@@ -85,33 +83,57 @@
* @return The contract publisher.
*/
public ContractPublisher getContractPublisher() {
- return contractPublisher;
+ return (publisher instanceof ContractPublisher ? (ContractPublisher)publisher : null);
}
/**
- * Add service publication from the suppplied configuration, keying them under the
- * controller that is managing these services.
- * <p/>
- * This is used later to publish as service list, their EPRs (from the reg),
- * links to their contract definitions, and the contract definitions
- * (e.g. wsdls) themselves.
+ * Get the publisher for the Service associated with this publisher.
*
- * @param model The configuration model.
+ * @return The publisher.
*/
- public static void addServicePublishers(ManagedLifecycleController controller, XMLBeansModel model) {
- List<Service> serviceConfigs = model.getServices();
- List<ServicePublisher> publishers = new ArrayList<ServicePublisher>();
+ public Publisher getPublisher() {
+ return publisher ;
+ }
+
+ /**
+ * Add the publisher into map for the specified service.
+ * @param servicePublishers The service publishers
+ * @param service The service name
+ * @param publisher The publisher
+ */
+ private static void addPublisher(final Map<Service, List<ServicePublisher>> servicePublishers,
+ final Service service, final ServicePublisher publisher)
+ {
+ final List<ServicePublisher> publishers = servicePublishers.get(service) ;
+ if (publishers != null) {
+ publishers.add(publisher);
+ } else {
+ final List<ServicePublisher> newPublishers = new ArrayList<ServicePublisher>() ;
+ newPublishers.add(publisher) ;
+ servicePublishers.put(service, newPublishers) ;
+ }
+ }
- publishers.clear();
- for (Service service : serviceConfigs) {
- ContractPublisher contractPublisher = getConractPublisher(service);
- ServicePublisher servicePublisher = new ServicePublisher(service.getName(), service.getCategory(), contractPublisher);
-
- servicePublisher.setDescription(service.getDescription());
- publishers.add(servicePublisher);
+ /**
+ * Add the service publishers to the controller map.
+ * @param controller The controller for the services
+ * @param servicePublishers The service publishers
+ */
+ public static synchronized void addServicePublishers(ManagedLifecycleController controller, Map<Service, List<ServicePublisher>> publishers) {
+ final Map<Service, List<ServicePublisher>> currentMap = SERVICE_PUBLISHERS.get(controller) ;
+ if (currentMap != null) {
+ for(Map.Entry<Service, List<ServicePublisher>> entry: publishers.entrySet()) {
+ final Service service = entry.getKey() ;
+ final List<ServicePublisher> currentList = currentMap.get(service) ;
+ if (currentList != null) {
+ currentList.addAll(entry.getValue()) ;
+ } else {
+ currentMap.put(service, entry.getValue()) ;
+ }
+ }
+ } else {
+ SERVICE_PUBLISHERS.put(controller, publishers) ;
}
-
- servicePublishers.put(controller, publishers);
}
/**
@@ -119,12 +141,14 @@
* instances.
* @return The full list of publishers.
*/
- public static List<ServicePublisher> getServicePublishers() {
+ public static synchronized List<ServicePublisher> getServicePublishers() {
List<ServicePublisher> publishers = new ArrayList<ServicePublisher>();
- Collection<List<ServicePublisher>> allPublishers = servicePublishers.values();
+ Collection<Map<Service, List<ServicePublisher>>> allPublishers = SERVICE_PUBLISHERS.values();
- for(List<ServicePublisher> curPublisherList : allPublishers) {
- publishers.addAll(curPublisherList);
+ for(Map<Service, List<ServicePublisher>> servicePublishers: allPublishers) {
+ for(List<ServicePublisher> curPublisherList : servicePublishers.values()) {
+ publishers.addAll(curPublisherList);
+ }
}
return publishers;
@@ -134,44 +158,58 @@
* Remove the service publications for the services under the control of the supplied controller.
* @param controller Controller.
*/
- public static void removeServicePublishers(ManagedLifecycleController controller) {
- servicePublishers.remove(controller);
+ public static synchronized void removeServicePublishers(ManagedLifecycleController controller) {
+ SERVICE_PUBLISHERS.remove(controller);
}
- @SuppressWarnings("unchecked")
- private static ContractPublisher getConractPublisher(Service service) {
- if(service.getActions() == null || service.getActions().getActionList() == null) {
- return null;
+ /**
+ * Add external contract reference publishers to the list of publishers
+ * @param controller The controller
+ * @param publishers
+ */
+ public static synchronized void addContractReferencePublishers(final ManagedLifecycleController controller, final List<? extends ContractReferencePublisher> publishers) {
+ if (publishers != null) {
+ final Map<Service, List<ServicePublisher>> servicePublishers = new LinkedHashMap<Service, List<ServicePublisher>>() ;
+ for(ContractReferencePublisher publisher: publishers) {
+ final Service service = publisher.getService() ;
+ final ServicePublisher servicePublisher = new ServicePublisher(service.getName(), service.getCategory(), publisher) ;
+ servicePublisher.setDescription(publisher.getDescription()) ;
+ addPublisher(servicePublishers, service, servicePublisher) ;
+ }
+ addServicePublishers(controller, servicePublishers) ;
}
+ }
- for (Action action : service.getActions().getActionList()) {
- Class<Class> actionClass;
+ /**
+ * Get the list of registered services
+ * @return The list of services.
+ */
+ public static synchronized List<Service> getServices() {
+ LinkedHashSet<Service> services = new LinkedHashSet<Service>();
+ Collection<Map<Service, List<ServicePublisher>>> allPublishers = SERVICE_PUBLISHERS.values();
- try {
- actionClass = (Class<Class>) ClassUtil.forName(action.getClass1(), ServicePublisher.class);
- } catch (ClassNotFoundException e) {
- throw new RuntimeException("Failed to find action class '" + action.getClass1() + "'.", e);
- }
+ for(Map<Service, List<ServicePublisher>> servicePublishers: allPublishers) {
+ services.addAll(servicePublishers.keySet()) ;
+ }
- Publish publishAnnotation = (Publish) actionClass.getAnnotation(Publish.class);
- if (publishAnnotation != null) {
- Class publisherClass;
- ActionContractPublisher publisher = null;
+ return new ArrayList<Service>(services);
+ }
- publisherClass = publishAnnotation.value();
- try {
- publisher = (ActionContractPublisher) publisherClass.newInstance();
- publisher.setActionConfig(action);
- return publisher;
- } catch (ClassCastException e) {
- throw new RuntimeException("Action Contract Publisher class '" + publisherClass.getName() + "' must implement " + ActionContractPublisher.class.getName());
- } catch (Exception e) {
- throw new RuntimeException("Failed to instantiate Contract Publisher '" + publisherClass.getName() + "'. Class must implement a public default constructor.", e);
- }
+ /**
+ * Get the list of publishers registered against the specified {@link Service}
+ * @return The list of publishers.
+ */
+ public static synchronized List<ServicePublisher> getServicePublishers(final Service service) {
+ List<ServicePublisher> publishers = new ArrayList<ServicePublisher>();
+ Collection<Map<Service, List<ServicePublisher>>> allPublishers = SERVICE_PUBLISHERS.values();
+
+ for(Map<Service, List<ServicePublisher>> servicePublishers: allPublishers) {
+ final List<ServicePublisher> curPublisherList = servicePublishers.get(service) ;
+ if (curPublisherList != null) {
+ publishers.addAll(curPublisherList);
}
}
- // No publisher configured on any of the actions in the processing chain...
- return null;
+ return publishers;
}
}
Copied: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/WebserviceInfo.java (from rev 24846, labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/listeners/config/WebserviceInfo.java)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/WebserviceInfo.java (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/WebserviceInfo.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -0,0 +1,212 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and others contributors as indicated
+ * by the @authors tag. All rights reserved.
+ * See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License, v. 2.1.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+ * PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
+ * You should have received a copy of the GNU Lesser General Public License,
+ * v.2.1 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301, USA.
+ *
+ * (C) 2005-2006, JBoss Inc.
+ */
+package org.jboss.soa.esb.listeners.config;
+
+import org.jboss.soa.esb.Service;
+
+/**
+ * Webservice information required to expose the service.
+ *
+ * @author <a href="mailto:Kevin.Conner at jboss.com">Kevin Conner</a>
+ */
+public class WebserviceInfo
+{
+ /**
+ * The associated service details.
+ */
+ private final Service service ;
+ /**
+ * The input schema.
+ */
+ private final String inXsd ;
+ /**
+ * The output schema.
+ */
+ private final String outXsd ;
+ /**
+ * The fault schemas.
+ */
+ private final String faultXsd ;
+ /**
+ * The service description.
+ */
+ private final String description ;
+ /**
+ * The service request/response flag.
+ */
+ private final boolean requestResponse ;
+
+ /**
+ * Construct the webservice information.
+ * @param service The associated service details.
+ * @param inXsd The input schema.
+ * @param outXsd The output schema.
+ * @param faultXsd The fault schemas.
+ * @param description The service description.
+ * @param requestResponse The service request/response flag.
+ */
+ public WebserviceInfo(final Service service, final String inXsd, final String outXsd,
+ final String faultXsd, final String description, final boolean requestResponse)
+ {
+ this.service = service ;
+ this.inXsd = inXsd ;
+ this.outXsd = outXsd ;
+ this.faultXsd = faultXsd ;
+ this.description = description ;
+ this.requestResponse = requestResponse ;
+ }
+
+ /**
+ * Get the service details.
+ * @return The service details.
+ */
+ public Service getService()
+ {
+ return service ;
+ }
+
+ /**
+ * Get the input schema.
+ * @return The input schema.
+ */
+ public String getInXsd()
+ {
+ return inXsd ;
+ }
+
+ /**
+ * Get the output schema.
+ * @return The output schema.
+ */
+ public String getOutXsd()
+ {
+ return outXsd ;
+ }
+
+ /**
+ * Get the fault schema.
+ * @return The fault schema.
+ */
+ public String getFaultXsd()
+ {
+ return faultXsd ;
+ }
+
+ /**
+ * Get the service description.
+ * @return The service description.
+ */
+ public String getDescription()
+ {
+ return description ;
+ }
+
+ /**
+ * Is this a defined request/response service?
+ * @return true if it is a request/response service, false otherwise.
+ */
+ public boolean isRequestResponse()
+ {
+ return requestResponse ;
+ }
+
+ /**
+ * Test for equality.
+ * @param obj The object to compare with
+ * @return true if equal, false otherwise.
+ */
+ public boolean equals(final Object obj)
+ {
+ if(obj instanceof WebserviceInfo)
+ {
+ final WebserviceInfo webserviceInfo = (WebserviceInfo)obj;
+ return (service.equals(webserviceInfo.getService()) && objEquals(inXsd, webserviceInfo.inXsd) &&
+ objEquals(outXsd, webserviceInfo.outXsd) && objEquals(faultXsd, webserviceInfo.faultXsd) &&
+ objEquals(description, webserviceInfo.description) &&
+ (requestResponse == webserviceInfo.isRequestResponse())) ;
+ }
+
+ return false ;
+ }
+
+ /**
+ * Get the instance hash code.
+ * @return the instance hash code.
+ */
+ public int hashCode()
+ {
+ return service.hashCode() ^ objHash(inXsd) ^ objHash(outXsd) ^ objHash(faultXsd) & objHash(description) ^ (requestResponse ? 0xdeafdeaf : 0) ;
+ }
+
+ /**
+ * Get a string representation of this instance.
+ * @return the string representation.
+ */
+ public String toString()
+ {
+ return service + objName("inXsd", inXsd) + objName("outXsd", outXsd) + objName("faultXsd" , faultXsd) + objName("description" , description) + (requestResponse ? ",requestResponse" : "") ;
+ }
+
+ /**
+ * Generate a hashcode for an object.
+ * @param value The object value or null.
+ * @return The hashcode.
+ */
+ private int objHash(final String value)
+ {
+ return (value == null ? 0 : value.hashCode()) ;
+ }
+
+ /**
+ * Generate a string representation for an object.
+ * @param name The object name.
+ * @param value The object value or null.
+ * @return The string representation.
+ */
+ private String objName(final String name, final String value)
+ {
+ if (value != null)
+ {
+ return "," + name + "=" + value ;
+ }
+ else
+ {
+ return "" ;
+ }
+ }
+
+ /**
+ * Test for object equality.
+ * @param lhs The object value or null.
+ * @param rhs The object value or null.
+ * @return true if equal, false otherwise.
+ */
+ private boolean objEquals(final Object lhs, final Object rhs)
+ {
+ if (lhs == null)
+ {
+ return (rhs == null) ;
+ }
+ else
+ {
+ return lhs.equals(rhs) ;
+ }
+ }
+}
Modified: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers/ActionMapper.java
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers/ActionMapper.java 2009-01-21 14:47:17 UTC (rev 24849)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers/ActionMapper.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -28,12 +28,11 @@
import org.jboss.soa.esb.ConfigurationException;
import org.jboss.soa.esb.dom.YADOMUtil;
import org.jboss.soa.esb.listeners.ListenerTagNames;
-import org.jboss.soa.esb.listeners.config.xbeanmodel.MepType;
-import org.jboss.soa.esb.listeners.config.xbeanmodel.ActionDocument.Action;
-import org.jboss.soa.esb.listeners.config.xbeanmodel.ActionsDocument.Actions;
-import org.jboss.soa.esb.listeners.config.Generator.XMLBeansModel;
-import org.jboss.soa.esb.listeners.config.xbeanmodel.PropertyDocument.Property;
-import org.jboss.soa.esb.listeners.config.xbeanmodel.ServiceDocument.Service;
+import org.jboss.soa.esb.listeners.config.xbeanmodel101.MepType;
+import org.jboss.soa.esb.listeners.config.xbeanmodel101.ActionDocument.Action;
+import org.jboss.soa.esb.listeners.config.xbeanmodel101.ActionsDocument.Actions;
+import org.jboss.soa.esb.listeners.config.xbeanmodel101.PropertyDocument.Property;
+import org.jboss.soa.esb.listeners.config.xbeanmodel101.ServiceDocument.Service;
import org.w3c.dom.Element;
/**
@@ -61,22 +60,42 @@
{
listenerConfigTree.setAttribute(ListenerTagNames.MEP_ATTRIBUTE_TAG, mep.toString()) ;
}
+ final String inxsd = actions.getInXsd();
+ if (inxsd != null)
+ {
+ listenerConfigTree.setAttribute(ListenerTagNames.IN_XSD_ATTRIBUTE_TAG, inxsd);
+ }
+ final String outxsd = actions.getOutXsd();
+ if (outxsd != null)
+ {
+ listenerConfigTree.setAttribute(ListenerTagNames.OUT_XSD_ATTRIBUTE_TAG, outxsd);
+ }
+
+ final String faultxsd = actions.getFaultXsd();
+
+ if (faultxsd != null)
+ {
+ listenerConfigTree.setAttribute(ListenerTagNames.FAULT_XSD_ATTRIBUTE_TAG, faultxsd);
+ }
+
+ if (actions.isSetValidate())
+ {
+ listenerConfigTree.setAttribute(ListenerTagNames.VALIDATE_ATTRIBUTE_TAG, Boolean.toString(actions.getValidate())) ;
+ }
+
+ SecurityMapper.map(listenerConfigTree, listenerService);
List<Action> actionList = actions.getActionList();
- try {
- HashMap<String,String> hm = new HashMap<String,String>();
- for(Action action : actionList) {
- mapAction(listenerConfigTree, action);
- if (hm.containsKey(action.getName())) {
- throw new ConfigurationException("Tried to register a duplicate action name. Service "
- + listenerService.getName() + " already contains an action named "
- + action.getName() + ". Action names must be unique per service.");
- } else {
- hm.put(action.getName(), action.getName());
- }
+ HashMap<String,String> hm = new HashMap<String,String>();
+ for(Action action : actionList) {
+ mapAction(listenerConfigTree, action);
+ if (hm.containsKey(action.getName())) {
+ throw new ConfigurationException("Tried to register a duplicate action name. Service "
+ + listenerService.getName() + " already contains an action named "
+ + action.getName() + ". Action names must be unique per service.");
+ } else {
+ hm.put(action.getName(), action.getName());
}
- } catch (ConfigurationException ce) {
- logger.error("", ce);
}
}
}
Copied: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers/ESBAwareGenerator.java (from rev 24846, labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers/ESBAwareGenerator.java)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers/ESBAwareGenerator.java (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers/ESBAwareGenerator.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -0,0 +1,229 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and others contributors as indicated
+ * by the @authors tag. All rights reserved.
+ * See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License, v. 2.1.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+ * PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
+ * You should have received a copy of the GNU Lesser General Public License,
+ * v.2.1 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301, USA.
+ *
+ * (C) 2005-2006,
+ * @author JBoss Inc.
+ */
+
+package org.jboss.soa.esb.listeners.config.mappers;
+
+import java.util.List;
+
+import org.apache.log4j.Logger;
+import org.jboss.soa.esb.ConfigurationException;
+import org.jboss.soa.esb.addressing.eprs.InVMEpr;
+import org.jboss.soa.esb.dom.YADOMUtil;
+import org.jboss.soa.esb.listeners.config.xbeanmodel101.AbstractScheduledListener;
+import org.jboss.soa.esb.listeners.config.xbeanmodel101.Bus;
+import org.jboss.soa.esb.listeners.config.xbeanmodel101.JmsProviderType;
+import org.jboss.soa.esb.listeners.config.xbeanmodel101.Listener;
+import org.jboss.soa.esb.listeners.config.xbeanmodel101.Provider;
+import org.jboss.soa.esb.listeners.config.xbeanmodel101.FsListenerDocument.FsListener;
+import org.jboss.soa.esb.listeners.config.xbeanmodel101.FtpListenerDocument.FtpListener;
+import org.jboss.soa.esb.listeners.config.xbeanmodel101.GroovyListenerDocument.GroovyListener;
+import org.jboss.soa.esb.listeners.config.xbeanmodel101.JbrListenerDocument.JbrListener;
+import org.jboss.soa.esb.listeners.config.xbeanmodel101.HttpListenerDocument.HttpListener;
+import org.jboss.soa.esb.listeners.config.xbeanmodel101.JmsBusDocument.JmsBus;
+import org.jboss.soa.esb.listeners.config.xbeanmodel101.JmsJcaProviderDocument.JmsJcaProvider;
+import org.jboss.soa.esb.listeners.config.xbeanmodel101.JmsListenerDocument.JmsListener;
+import org.jboss.soa.esb.listeners.config.xbeanmodel101.JmsMessageFilterDocument.JmsMessageFilter;
+import org.jboss.soa.esb.listeners.config.xbeanmodel101.ServiceDocument.Service;
+import org.jboss.soa.esb.listeners.config.xbeanmodel101.SqlBusDocument.SqlBus;
+import org.jboss.soa.esb.listeners.config.xbeanmodel101.SqlListenerDocument.SqlListener;
+import org.jboss.soa.esb.listeners.config.xbeanmodel101.SqlProviderDocument.SqlProvider;
+import org.jboss.soa.esb.listeners.config.xbeanmodel101.ScheduledListenerDocument.ScheduledListener;
+import org.jboss.soa.esb.listeners.ListenerTagNames;
+import org.jboss.soa.esb.listeners.message.MessageAwareListener;
+import org.w3c.dom.Document;
+import org.w3c.dom.Element;
+
+/**
+ * ESB Aware Listeners Configuration Generator.
+ * <p/>
+ * Generates a "ConfigTree" style configuration for the ESB Aware Listeners.
+ *
+ * @author <a href="mailto:tom.fennelly at jboss.com">tom.fennelly at jboss.com</a>
+ */
+public class ESBAwareGenerator {
+
+ private static final Logger logger = Logger.getLogger(ESBAwareGenerator.class);
+
+ /**
+ * XMLBeans based configuration model instance.
+ */
+ private XMLBeansModel model;
+
+ /**
+ * Public constructor.
+ * @param model XMLBeans based configuration model instance.
+ */
+ public ESBAwareGenerator(XMLBeansModel model) {
+ this.model = model;
+ }
+
+ /**
+ * Generate the configuration DOM for the target Server.
+ * @return The configuration DOM.
+ * @throws ConfigurationException Error creating configuration.
+ */
+ public Document generate() throws ConfigurationException {
+ Document doc = YADOMUtil.createDocument();
+ Element root;
+
+ doc.appendChild(doc.createComment("\n\tNOTE: DO NOT MODIFY\n\tThis file was auto-generated.\n"));
+ root = YADOMUtil.addElement(doc, "jbossesb-listeners");
+ root.setAttribute("parameterReloadSecs", model.getParameterReloadSecs());
+
+ // Add an InVM listener for each service...
+ List<Service> services = model.getServices();
+ for (int i = 0; i < services.size(); i++) {
+ Service service = services.get(i);
+ if(model.exposesInVMListener(service)) {
+ addInVMListener(root, service, i);
+ }
+ }
+
+ // Iterate over all the ESB Aware listner configs and map them to the listener configuration...
+ List<Listener> listeners = model.getESBAwareListeners();
+ for(Listener listener : listeners) {
+ addESBAwareConfig(root, listener);
+ }
+
+ return doc;
+ }
+
+ private void addInVMListener(Element root, Service service, int serviceIndex) throws ConfigurationException {
+ Element listenerNode = YADOMUtil.addElement(root, "InVM-" + serviceIndex);
+ Element properties = listenerNode.getOwnerDocument().createElement("properties");
+
+ MapperUtil.mapListenerServiceAttributes(listenerNode, service, false);
+ listenerNode.setAttribute(ListenerTagNames.LISTENER_CLASS_TAG, MessageAwareListener.class.getName());
+
+ Element eprNode = YADOMUtil.addElement(listenerNode, ListenerTagNames.EPR_TAG);
+ eprNode.setAttribute(ListenerTagNames.PROTOCOL_TAG, InVMEpr.INVM_PROTOCOL);
+
+ MapperUtil.mapProperties(service.getPropertyList(), properties);
+ eprNode.setAttribute(ListenerTagNames.URL_TAG, InVMEpr.INVM_PROTOCOL + "://"
+ + InVMEpr.createEncodedServiceId(service.getCategory(), service.getName())
+ + "/" + YADOMUtil.getAttribute(properties, "inVMPassByValue", "false")
+ + "?" + YADOMUtil.getAttribute(properties, "inVMLockStep", "false")
+ + "#" + YADOMUtil.getAttribute(properties, "inVMLockStepTimeout", "10000"));
+
+ listenerNode.setAttribute(ListenerTagNames.MAX_THREADS_TAG, YADOMUtil.getAttribute(properties, ListenerTagNames.MAX_THREADS_TAG, "1"));
+
+ listenerNode.setAttribute(ListenerTagNames.TRANSACTED_TAG, Boolean.toString(getInVMTransacted(service))) ;
+ YADOMUtil.removeEmptyAttributes(eprNode);
+
+ ActionMapper.map(listenerNode, service, model);
+ }
+
+ /**
+ * Try to find the InVM transacted value. Check to see if the transacted attribute
+ * has been explicitly set on the service. If it has not been explicitly set then we
+ * check to see if any of the listener/bus configurations are transacted and assume the
+ * InVM is implicitly transacted.
+ *
+ * @param service The current service.
+ * @return true if transacted, false otherwise.
+ */
+ private boolean getInVMTransacted(final Service service)
+ throws ConfigurationException
+ {
+ if (service.isSetInvmScope()) {
+ return service.getInvmTransacted() ;
+ } else if (service.isSetListeners()) {
+ for (Listener listener: service.getListeners().getListenerList()) {
+ if (listener instanceof ScheduledListener) {
+ if (((ScheduledListener)listener).getTransacted())
+ return true ;
+ }
+ else if (listener instanceof JmsListener) {
+ final Bus bus = model.getBus(listener.getBusidref()) ;
+ if (!(bus instanceof JmsBus))
+ continue ;
+
+ final Provider provider = model.getProvider(bus) ;
+ if (provider instanceof JmsJcaProvider) {
+ // Jms JCA provider defaults to true
+ final JmsJcaProvider jmsJcaProvider = (JmsJcaProvider)provider ;
+ if (!jmsJcaProvider.isSetTransacted() || jmsJcaProvider.getTransacted())
+ return true ;
+ } else if (provider instanceof JmsProviderType) {
+ JmsMessageFilter filter = ((JmsListener)listener).getJmsMessageFilter() ;
+ if (filter == null)
+ filter = ((JmsBus)bus).getJmsMessageFilter() ;
+ if ((filter != null) && filter.getTransacted())
+ return true ;
+ }
+ } else if (listener instanceof SqlListener) {
+ final Bus bus = model.getBus(listener.getBusidref()) ;
+ if (!(bus instanceof SqlBus))
+ continue ;
+
+ final Provider provider = model.getProvider(bus) ;
+ if ((provider instanceof SqlProvider) && ((SqlProvider)provider).getTransacted())
+ return true ;
+ }
+ }
+ }
+ return false ;
+ }
+
+ /**
+ * Add a single ESB Aware Listener configuration node to configuration root.
+ * @param root Configuration root node.
+ * @param listener The ESB Aware Listener configuration to be added.
+ * @throws ConfigurationException Invalid listener configuration.
+ */
+ private void addESBAwareConfig(Element root, Listener listener) throws ConfigurationException {
+ Element listenerConfigTree;
+ Service listenerService;
+
+ // Of course we could do the following reflectively if we really want to - TODO perhaps!!
+ if(listener instanceof JmsListener) {
+ listenerConfigTree = JmsListenerMapper.map(root, (JmsListener)listener, model);
+ } else if (listener instanceof ScheduledListener) {
+ listenerConfigTree = ScheduledListenerMapper.map(root, (ScheduledListener) listener, model);
+ } else if(listener instanceof FsListener) {
+ listenerConfigTree = FsListenerMapper.map(root, (FsListener)listener, model);
+ } else if (listener instanceof FtpListener) {
+ listenerConfigTree = FtpListenerMapper.map(root, (FtpListener)listener, model);
+ } else if (listener instanceof SqlListener) {
+ listenerConfigTree = SqlListenerMapper.map(root, (SqlListener)listener, model);
+ } else if (listener instanceof JbrListener) {
+ logger.error("JbossRemoting listener only supported in Gateway mode.");
+ return;
+ } else if (listener instanceof GroovyListener) {
+ listenerConfigTree = GroovyListenerMapper.map(root, (GroovyListener)listener, model);
+ } else if (listener instanceof HttpListener) {
+ listenerConfigTree = HttpListenerMapper.map(root, (HttpListener) listener, model);
+ } else {
+ listenerConfigTree = UntypedListenerMapper.map(root, listener, model);
+ }
+
+ if (listener instanceof AbstractScheduledListener) {
+ ScheduleMapper.map(listenerConfigTree, (AbstractScheduledListener) listener, model);
+ }
+
+ // Locate the Service to which the listener is bound...
+ listenerService = model.getService(listener);
+
+ // Map the actions and notiications...
+ ActionMapper.map(listenerConfigTree, listenerService, model);
+ NotificationMapper.map(listenerConfigTree, listenerService, model);
+ }
+}
Modified: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers/FsListenerMapper.java
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers/FsListenerMapper.java 2009-01-21 14:47:17 UTC (rev 24849)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers/FsListenerMapper.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -26,11 +26,10 @@
import org.jboss.soa.esb.addressing.eprs.FileEpr;
import org.jboss.soa.esb.dom.YADOMUtil;
import org.jboss.soa.esb.listeners.ListenerTagNames;
-import org.jboss.soa.esb.listeners.config.xbeanmodel.FsBusDocument.FsBus;
-import org.jboss.soa.esb.listeners.config.xbeanmodel.FsListenerDocument.FsListener;
-import org.jboss.soa.esb.listeners.config.xbeanmodel.FsMessageFilterDocument.FsMessageFilter;
-import org.jboss.soa.esb.listeners.config.xbeanmodel.FsProviderDocument.FsProvider;
-import org.jboss.soa.esb.listeners.config.Generator.XMLBeansModel;
+import org.jboss.soa.esb.listeners.config.xbeanmodel101.FsBusDocument.FsBus;
+import org.jboss.soa.esb.listeners.config.xbeanmodel101.FsListenerDocument.FsListener;
+import org.jboss.soa.esb.listeners.config.xbeanmodel101.FsMessageFilterDocument.FsMessageFilter;
+import org.jboss.soa.esb.listeners.config.xbeanmodel101.FsProviderDocument.FsProvider;
import org.jboss.soa.esb.listeners.gateway.FileGatewayListener;
import org.w3c.dom.Element;
Modified: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers/FtpListenerMapper.java
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers/FtpListenerMapper.java 2009-01-21 14:47:17 UTC (rev 24849)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers/FtpListenerMapper.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -26,12 +26,11 @@
import org.jboss.soa.esb.addressing.eprs.SFTPEpr;
import org.jboss.soa.esb.dom.YADOMUtil;
import org.jboss.soa.esb.listeners.ListenerTagNames;
-import org.jboss.soa.esb.listeners.config.xbeanmodel.FtpBusDocument.FtpBus;
-import org.jboss.soa.esb.listeners.config.xbeanmodel.FtpListenerDocument.FtpListener;
-import org.jboss.soa.esb.listeners.config.xbeanmodel.FtpMessageFilterDocument.FtpMessageFilter;
-import org.jboss.soa.esb.listeners.config.xbeanmodel.FtpMessageFilterDocument.FtpMessageFilter.Protocol;
-import org.jboss.soa.esb.listeners.config.xbeanmodel.FtpProviderDocument.FtpProvider;
-import org.jboss.soa.esb.listeners.config.Generator.XMLBeansModel;
+import org.jboss.soa.esb.listeners.config.xbeanmodel101.FtpBusDocument.FtpBus;
+import org.jboss.soa.esb.listeners.config.xbeanmodel101.FtpListenerDocument.FtpListener;
+import org.jboss.soa.esb.listeners.config.xbeanmodel101.FtpMessageFilterDocument.FtpMessageFilter;
+import org.jboss.soa.esb.listeners.config.xbeanmodel101.FtpMessageFilterDocument.FtpMessageFilter.Protocol;
+import org.jboss.soa.esb.listeners.config.xbeanmodel101.FtpProviderDocument.FtpProvider;
import org.jboss.soa.esb.listeners.gateway.ReadOnlyRemoteGatewayListener;
import org.jboss.soa.esb.listeners.gateway.RemoteGatewayListener;
import org.w3c.dom.Element;
Copied: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers/GatewayGenerator.java (from rev 24846, labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers/GatewayGenerator.java)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers/GatewayGenerator.java (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers/GatewayGenerator.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -0,0 +1,150 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and others contributors as indicated
+ * by the @authors tag. All rights reserved.
+ * See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License, v. 2.1.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+ * PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
+ * You should have received a copy of the GNU Lesser General Public License,
+ * v.2.1 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301, USA.
+ *
+ * (C) 2005-2006,
+ * @author JBoss Inc.
+ */
+
+package org.jboss.soa.esb.listeners.config.mappers;
+
+import java.util.HashMap;
+import java.util.List;
+
+import org.apache.log4j.Logger;
+import org.jboss.soa.esb.ConfigurationException;
+import org.jboss.soa.esb.dom.YADOMUtil;
+import org.jboss.soa.esb.listeners.config.xbeanmodel101.FsListenerDocument.FsListener;
+import org.jboss.soa.esb.listeners.config.xbeanmodel101.FtpListenerDocument.FtpListener;
+import org.jboss.soa.esb.listeners.config.xbeanmodel101.GroovyListenerDocument.GroovyListener;
+import org.jboss.soa.esb.listeners.config.xbeanmodel101.HibernateListenerDocument.HibernateListener;
+import org.jboss.soa.esb.listeners.config.xbeanmodel101.JbrListenerDocument.JbrListener;
+import org.jboss.soa.esb.listeners.config.xbeanmodel101.JmsListenerDocument.JmsListener;
+import org.jboss.soa.esb.listeners.config.xbeanmodel101.HttpListenerDocument.HttpListener;
+import org.jboss.soa.esb.listeners.config.xbeanmodel101.ServiceDocument.Service;
+import org.jboss.soa.esb.listeners.config.xbeanmodel101.SqlListenerDocument.SqlListener;
+import org.jboss.soa.esb.listeners.config.xbeanmodel101.Listener;
+import org.jboss.soa.esb.listeners.config.xbeanmodel101.JcaGatewayDocument;
+import org.jboss.soa.esb.listeners.config.xbeanmodel101.AbstractScheduledListener;
+import org.w3c.dom.Document;
+import org.w3c.dom.Element;
+
+/**
+ * Gateway Listeners Configuration Generator.
+ * <p/>
+ * Generates a "ConfigTree" style configuration for the Gateways Listeners.
+ *
+ * @author <a href="mailto:tom.fennelly at jboss.com">tom.fennelly at jboss.com</a>
+ */
+public class GatewayGenerator {
+
+ private static final Logger logger = Logger.getLogger(GatewayGenerator.class);
+
+ /**
+ * XMLBeans based configuration model instance.
+ */
+ private XMLBeansModel model;
+
+ /**
+ * Public constructor.
+ *
+ * @param model XMLBeans based configuration model instance.
+ */
+ public GatewayGenerator(XMLBeansModel model) {
+ this.model = model;
+ }
+
+ /**
+ * Generate the configuration DOM for the target Server.
+ *
+ * @return The configuration DOM.
+ * @throws ConfigurationException Error creating configuration.
+ */
+ public Document generate() throws ConfigurationException {
+ Document doc = YADOMUtil.createDocument();
+ Element root;
+
+ doc.appendChild(doc.createComment("\n\tNOTE: DO NOT MODIFY\n\tThis file was auto-generated.\n"));
+ root = YADOMUtil.addElement(doc, "jbossesb-gateways");
+ root.setAttribute("parameterReloadSecs", model.getParameterReloadSecs());
+
+ List<Service> services = model.getServices();
+ HashMap<String, HashMap<String, String>> hm = new HashMap<String, HashMap<String, String>>();
+ for (Service service : services) {
+ if (hm.containsKey(service.getCategory())) {
+ HashMap<String, String> hc = hm.get(service.getCategory());
+
+ if (hc.containsKey(service.getName())) {
+ throw new ConfigurationException("Service names must be unique within a category. "
+ + "The service name " + service.getName()
+ + " is already defined within the " + service.getCategory() + " category.");
+ } else {
+ hc.put(service.getName(), service.getName());
+ }
+ } else {
+ HashMap <String,String> hc = new HashMap<String,String>();
+ hc.put(service.getName(), service.getName());
+ hm.put(service.getCategory(), hc);
+ }
+ }
+
+ // Iterate over all the gateway configs and map them to the gateway configuration...
+ List<Listener> gateways = model.getGatewayListeners();
+ for (Listener gateway : gateways) {
+ addGatewayConfig(root, gateway);
+ }
+
+ return doc;
+ }
+
+ /**
+ * Add a single gateway configuration node to configuration root.
+ *
+ * @param root Configuration root node.
+ * @param gateway The Gateway Listener configuration to be added.
+ * @throws ConfigurationException Invalid listener configuration.
+ */
+ private void addGatewayConfig(Element root, Listener gateway) throws ConfigurationException {
+ Element listenerConfig;
+
+ // Of course we could do the following reflectively if we really want to - TODO perhaps!!
+ if (gateway instanceof JmsListener) {
+ listenerConfig = JmsListenerMapper.map(root, (JmsListener) gateway, model);
+ } else if (gateway instanceof FsListener) {
+ listenerConfig = FsListenerMapper.map(root, (FsListener) gateway, model);
+ } else if (gateway instanceof JcaGatewayDocument.JcaGateway) {
+ listenerConfig = JcaGatewayMapper.map(root, (JcaGatewayDocument.JcaGateway) gateway, model);
+ } else if (gateway instanceof FtpListener) {
+ listenerConfig = FtpListenerMapper.map(root, (FtpListener) gateway, model);
+ } else if (gateway instanceof SqlListener) {
+ listenerConfig = SqlListenerMapper.map(root, (SqlListener) gateway, model);
+ } else if (gateway instanceof JbrListener) {
+ listenerConfig = JbrListenerMapper.map(root, (JbrListener) gateway, model);
+ } else if (gateway instanceof HttpListener) {
+ listenerConfig = HttpListenerMapper.map(root, (HttpListener) gateway, model);
+ } else if (gateway instanceof GroovyListener) {
+ listenerConfig = GroovyListenerMapper.map(root, (GroovyListener) gateway, model);
+ } else if (gateway instanceof HibernateListener) {
+ listenerConfig = HibernateListenerMapper.map(root, (HibernateListener) gateway, model);
+ } else {
+ listenerConfig = UntypedListenerMapper.map(root, gateway, model);
+ }
+
+ if (gateway instanceof AbstractScheduledListener) {
+ ScheduleMapper.map(listenerConfig, (AbstractScheduledListener) gateway, model);
+ }
+ }
+}
Modified: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers/GroovyListenerMapper.java
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers/GroovyListenerMapper.java 2009-01-21 14:47:17 UTC (rev 24849)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers/GroovyListenerMapper.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -21,11 +21,9 @@
import org.jboss.soa.esb.ConfigurationException;
import org.jboss.soa.esb.dom.YADOMUtil;
-import org.jboss.soa.esb.listeners.config.Generator;
-import org.jboss.soa.esb.listeners.config.xbeanmodel.GroovyListenerDocument;
+import org.jboss.soa.esb.listeners.config.xbeanmodel101.GroovyListenerDocument;
import org.jboss.soa.esb.listeners.gateway.GroovyGateway;
import org.jboss.soa.esb.listeners.ListenerTagNames;
-import org.jboss.soa.esb.listeners.ScheduleListener;
import org.w3c.dom.Element;
/**
@@ -35,7 +33,7 @@
*/
public class GroovyListenerMapper {
- public static Element map(Element root, GroovyListenerDocument.GroovyListener listener, Generator.XMLBeansModel model) throws ConfigurationException {
+ public static Element map(Element root, GroovyListenerDocument.GroovyListener listener, XMLBeansModel model) throws ConfigurationException {
Element listenerNode = YADOMUtil.addElement(root, "listener");
listenerNode.setAttribute("name", listener.getName());
Modified: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers/HibernateListenerMapper.java
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers/HibernateListenerMapper.java 2009-01-21 14:47:17 UTC (rev 24849)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers/HibernateListenerMapper.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -27,11 +27,10 @@
import org.jboss.soa.esb.addressing.eprs.HibernateEpr;
import org.jboss.soa.esb.dom.YADOMUtil;
import org.jboss.soa.esb.listeners.ListenerTagNames;
-import org.jboss.soa.esb.listeners.config.Generator.XMLBeansModel;
-import org.jboss.soa.esb.listeners.config.xbeanmodel.HibernateBusDocument.HibernateBus;
-import org.jboss.soa.esb.listeners.config.xbeanmodel.HibernateListenerDocument.HibernateListener;
-import org.jboss.soa.esb.listeners.config.xbeanmodel.HibernateMessageFilterDocument.HibernateMessageFilter;
-import org.jboss.soa.esb.listeners.config.xbeanmodel.HibernateProviderDocument.HibernateProvider;
+import org.jboss.soa.esb.listeners.config.xbeanmodel101.HibernateBusDocument.HibernateBus;
+import org.jboss.soa.esb.listeners.config.xbeanmodel101.HibernateListenerDocument.HibernateListener;
+import org.jboss.soa.esb.listeners.config.xbeanmodel101.HibernateMessageFilterDocument.HibernateMessageFilter;
+import org.jboss.soa.esb.listeners.config.xbeanmodel101.HibernateProviderDocument.HibernateProvider;
import org.jboss.soa.esb.listeners.gateway.HibernateGatewayListener;
import org.w3c.dom.Element;
Modified: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers/HttpListenerMapper.java
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers/HttpListenerMapper.java 2009-01-21 14:47:17 UTC (rev 24849)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers/HttpListenerMapper.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -24,11 +24,10 @@
import org.jboss.soa.esb.addressing.eprs.JMSEpr;
import org.jboss.soa.esb.dom.YADOMUtil;
import org.jboss.soa.esb.listeners.ListenerTagNames;
-import org.jboss.soa.esb.listeners.config.Generator.XMLBeansModel;
-import org.jboss.soa.esb.listeners.config.xbeanmodel.PropertyDocument.Property;
-import org.jboss.soa.esb.listeners.config.xbeanmodel.HttpBusDocument.HttpBus;
-import org.jboss.soa.esb.listeners.config.xbeanmodel.HttpListenerDocument.HttpListener;
-import org.jboss.soa.esb.listeners.config.xbeanmodel.HttpProviderDocument.HttpProvider;
+import org.jboss.soa.esb.listeners.config.xbeanmodel101.PropertyDocument.Property;
+import org.jboss.soa.esb.listeners.config.xbeanmodel101.HttpBusDocument.HttpBus;
+import org.jboss.soa.esb.listeners.config.xbeanmodel101.HttpListenerDocument.HttpListener;
+import org.jboss.soa.esb.listeners.config.xbeanmodel101.HttpProviderDocument.HttpProvider;
import org.jboss.soa.esb.listeners.gateway.HttpGatewayListener;
import org.jboss.soa.esb.listeners.message.HttpMessageAwareListener;
import org.w3c.dom.Element;
Modified: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers/JbrListenerMapper.java
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers/JbrListenerMapper.java 2009-01-21 14:47:17 UTC (rev 24849)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers/JbrListenerMapper.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -22,10 +22,9 @@
import org.jboss.soa.esb.ConfigurationException;
import org.jboss.soa.esb.dom.YADOMUtil;
import org.jboss.soa.esb.listeners.ListenerTagNames;
-import org.jboss.soa.esb.listeners.config.Generator.XMLBeansModel;
-import org.jboss.soa.esb.listeners.config.xbeanmodel.JbrBusDocument.JbrBus;
-import org.jboss.soa.esb.listeners.config.xbeanmodel.JbrListenerDocument.JbrListener;
-import org.jboss.soa.esb.listeners.config.xbeanmodel.JbrProviderDocument.JbrProvider;
+import org.jboss.soa.esb.listeners.config.xbeanmodel101.JbrBusDocument.JbrBus;
+import org.jboss.soa.esb.listeners.config.xbeanmodel101.JbrListenerDocument.JbrListener;
+import org.jboss.soa.esb.listeners.config.xbeanmodel101.JbrProviderDocument.JbrProvider;
import org.jboss.soa.esb.listeners.gateway.JBossRemotingGatewayListener;
import org.w3c.dom.Element;
Modified: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers/JcaGatewayMapper.java
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers/JcaGatewayMapper.java 2009-01-21 14:47:17 UTC (rev 24849)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers/JcaGatewayMapper.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -24,9 +24,8 @@
import org.jboss.soa.esb.ConfigurationException;
import org.jboss.soa.esb.dom.YADOMUtil;
import org.jboss.soa.esb.listeners.ListenerTagNames;
-import org.jboss.soa.esb.listeners.config.Generator;
-import org.jboss.soa.esb.listeners.config.xbeanmodel.ServiceDocument;
-import org.jboss.soa.esb.listeners.config.xbeanmodel.JcaGatewayDocument.JcaGateway;
+import org.jboss.soa.esb.listeners.config.xbeanmodel101.ServiceDocument;
+import org.jboss.soa.esb.listeners.config.xbeanmodel101.JcaGatewayDocument.JcaGateway;
import org.jboss.soa.esb.listeners.jca.JcaInflowGateway;
import org.w3c.dom.Element;
@@ -38,7 +37,7 @@
*/
public class JcaGatewayMapper
{
- public static Element map(Element root, JcaGateway gateway, Generator.XMLBeansModel model) throws ConfigurationException
+ public static Element map(Element root, JcaGateway gateway, XMLBeansModel model) throws ConfigurationException
{
Element listenerNode = YADOMUtil.addElement(root, "listener");
gateway.setIsGateway(true);
@@ -54,7 +53,7 @@
listenerNode.setAttribute("endpointClass", gateway.getEndpointClass());
listenerNode.setAttribute("messagingType", gateway.getMessagingType());
listenerNode.setAttribute("jcaBridge", gateway.getJcaBridge());
- listenerNode.setAttribute("transacted", gateway.getTransacted());
+ listenerNode.setAttribute("transacted", new Boolean(gateway.getTransacted()).toString());
MapperUtil.mapProperties(gateway.getPropertyList(), listenerNode);
listenerNode.setAttribute("gatewayClass", JcaInflowGateway.class.getName());
Modified: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers/JmsListenerMapper.java
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers/JmsListenerMapper.java 2009-01-21 14:47:17 UTC (rev 24849)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers/JmsListenerMapper.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -33,15 +33,14 @@
import org.jboss.soa.esb.addressing.eprs.JMSEpr;
import org.jboss.soa.esb.dom.YADOMUtil;
import org.jboss.soa.esb.listeners.ListenerTagNames;
-import org.jboss.soa.esb.listeners.config.Generator.XMLBeansModel;
-import org.jboss.soa.esb.listeners.config.xbeanmodel.JmsProviderType;
-import org.jboss.soa.esb.listeners.config.xbeanmodel.ActivationConfigDocument.ActivationConfig;
-import org.jboss.soa.esb.listeners.config.xbeanmodel.JmsBusDocument.JmsBus;
-import org.jboss.soa.esb.listeners.config.xbeanmodel.JmsJcaProviderDocument.JmsJcaProvider;
-import org.jboss.soa.esb.listeners.config.xbeanmodel.JmsListenerDocument.JmsListener;
-import org.jboss.soa.esb.listeners.config.xbeanmodel.JmsMessageFilterDocument.JmsMessageFilter;
-import org.jboss.soa.esb.listeners.config.xbeanmodel.JmsMessageFilterDocument.JmsMessageFilter.DestType;
-import org.jboss.soa.esb.listeners.config.xbeanmodel.PropertyDocument.Property;
+import org.jboss.soa.esb.listeners.config.xbeanmodel101.JmsProviderType;
+import org.jboss.soa.esb.listeners.config.xbeanmodel101.ActivationConfigDocument.ActivationConfig;
+import org.jboss.soa.esb.listeners.config.xbeanmodel101.JmsBusDocument.JmsBus;
+import org.jboss.soa.esb.listeners.config.xbeanmodel101.JmsJcaProviderDocument.JmsJcaProvider;
+import org.jboss.soa.esb.listeners.config.xbeanmodel101.JmsListenerDocument.JmsListener;
+import org.jboss.soa.esb.listeners.config.xbeanmodel101.JmsMessageFilterDocument.JmsMessageFilter;
+import org.jboss.soa.esb.listeners.config.xbeanmodel101.JmsMessageFilterDocument.JmsMessageFilter.DestType;
+import org.jboss.soa.esb.listeners.config.xbeanmodel101.PropertyDocument.Property;
import org.jboss.soa.esb.listeners.gateway.JmsGatewayListener;
import org.jboss.soa.esb.listeners.gateway.PackageJmsMessageContents;
import org.jboss.soa.esb.listeners.jca.JcaConstants;
Modified: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers/MapperUtil.java
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers/MapperUtil.java 2009-01-21 14:47:17 UTC (rev 24849)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers/MapperUtil.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -29,12 +29,11 @@
import org.jboss.soa.esb.ConfigurationException;
import org.jboss.soa.esb.dom.YADOMUtil;
import org.jboss.soa.esb.listeners.ListenerTagNames;
-import org.jboss.soa.esb.listeners.config.xbeanmodel.Bus;
-import org.jboss.soa.esb.listeners.config.xbeanmodel.Listener;
-import org.jboss.soa.esb.listeners.config.xbeanmodel.Provider;
-import org.jboss.soa.esb.listeners.config.Generator.XMLBeansModel;
-import org.jboss.soa.esb.listeners.config.xbeanmodel.PropertyDocument.Property;
-import org.jboss.soa.esb.listeners.config.xbeanmodel.ServiceDocument.Service;
+import org.jboss.soa.esb.listeners.config.xbeanmodel101.Bus;
+import org.jboss.soa.esb.listeners.config.xbeanmodel101.Listener;
+import org.jboss.soa.esb.listeners.config.xbeanmodel101.Provider;
+import org.jboss.soa.esb.listeners.config.xbeanmodel101.PropertyDocument.Property;
+import org.jboss.soa.esb.listeners.config.xbeanmodel101.ServiceDocument.Service;
import org.jboss.soa.esb.listeners.message.MessageAwareListener;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
Modified: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers/NotificationMapper.java
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers/NotificationMapper.java 2009-01-21 14:47:17 UTC (rev 24849)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers/NotificationMapper.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -21,8 +21,7 @@
package org.jboss.soa.esb.listeners.config.mappers;
-import org.jboss.soa.esb.listeners.config.Generator.XMLBeansModel;
-import org.jboss.soa.esb.listeners.config.xbeanmodel.ServiceDocument.Service;
+import org.jboss.soa.esb.listeners.config.xbeanmodel101.ServiceDocument.Service;
import org.w3c.dom.Element;
/**
Modified: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers/ScheduleMapper.java
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers/ScheduleMapper.java 2009-01-21 14:47:17 UTC (rev 24849)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers/ScheduleMapper.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -19,11 +19,20 @@
*/
package org.jboss.soa.esb.listeners.config.mappers;
+import java.util.List;
+
import org.apache.log4j.Logger;
import org.jboss.soa.esb.ConfigurationException;
-import org.jboss.soa.esb.listeners.config.Generator;
-import org.jboss.soa.esb.listeners.config.ScheduleProviderFactory;
-import org.jboss.soa.esb.listeners.config.xbeanmodel.AbstractScheduledListener;
+import org.jboss.soa.esb.dom.YADOMUtil;
+import org.jboss.soa.esb.listeners.ListenerTagNames;
+import org.jboss.soa.esb.listeners.config.xbeanmodel101.AbstractScheduledListener;
+import org.jboss.soa.esb.listeners.config.xbeanmodel101.FrequencyUnit;
+import org.jboss.soa.esb.listeners.config.xbeanmodel101.PropertyDocument;
+import org.jboss.soa.esb.listeners.config.xbeanmodel101.Schedule;
+import org.jboss.soa.esb.listeners.config.xbeanmodel101.CronScheduleDocument.CronSchedule;
+import org.jboss.soa.esb.listeners.config.xbeanmodel101.ScheduleProviderDocument.ScheduleProvider;
+import org.jboss.soa.esb.listeners.config.xbeanmodel101.SimpleScheduleDocument.SimpleSchedule;
+import org.jboss.soa.esb.schedule.SchedulerResource;
import org.w3c.dom.Element;
/**
@@ -39,20 +48,51 @@
private static Logger logger = Logger.getLogger(ScheduleMapper.class);
- public static void map(Element listenerConfig, AbstractScheduledListener scheduledListener) throws ConfigurationException {
+ public static void map(Element listenerConfig, AbstractScheduledListener scheduledListener, final XMLBeansModel model) throws ConfigurationException {
String scheduleIdRef = scheduledListener.getScheduleidref();
Element domElement = (Element) scheduledListener.getDomNode();
- int frequency = scheduledListener.getScheduleFrequency();
+ int scheduleFrequency = scheduledListener.getScheduleFrequency();
int pollFrequency = scheduledListener.getPollFrequencySeconds();
int pollLatency = getPollLatencySeconds(scheduledListener);
if(scheduleIdRef != null) {
- listenerConfig.setAttribute(ScheduleProviderFactory.ATTR_SCHEDULE_ID_REF, scheduleIdRef);
+ listenerConfig.setAttribute(ListenerTagNames.SCHEDULE_ID_REF, scheduleIdRef);
+ final Schedule schedule = model.getSchedule(scheduleIdRef) ;
+ if (schedule.isSetStartDate()) {
+ listenerConfig.setAttribute(ListenerTagNames.SCHEDULE_START_DATE, Long.toString(schedule.getStartDate().getTimeInMillis())) ;
+ }
+ if (schedule.isSetEndDate()) {
+ listenerConfig.setAttribute(ListenerTagNames.SCHEDULE_END_DATE, Long.toString(schedule.getEndDate().getTimeInMillis())) ;
+ }
+ if (schedule instanceof SimpleSchedule) {
+ final SimpleSchedule simpleSchedule = (SimpleSchedule)schedule ;
+ final long simpleFrequency = simpleSchedule.getFrequency() ;
+ final FrequencyUnit.Enum unit = simpleSchedule.getFrequencyUnits() ;
+ final String frequencyVal ;
+ if (unit.equals(FrequencyUnit.SECONDS)) {
+ frequencyVal = Long.toString(simpleFrequency * 1000) ;
+ } else {
+ frequencyVal = Long.toString(simpleFrequency) ;
+ }
+ listenerConfig.setAttribute(ListenerTagNames.SCHEDULE_SIMPLE_FREQUENCY, frequencyVal) ;
+ if (simpleSchedule.isSetExecCount()) {
+ listenerConfig.setAttribute(ListenerTagNames.SCHEDULE_SIMPLE_EXEC, Integer.toString(simpleSchedule.getExecCount())) ;
+ }
+ } else if (schedule instanceof CronSchedule) {
+ final String cronExpression = ((CronSchedule)schedule).getCronExpression() ;
+ if (cronExpression == null) {
+ throw new ConfigurationException("Missing cron expression from configuration") ;
+ }
+ listenerConfig.setAttribute(ListenerTagNames.SCHEDULE_CRON_EXPRESSION, cronExpression) ;
+ } else {
+ throw new ConfigurationException("Unknown schedule type specified in configuration: " + schedule.getClass().getName()) ;
+ }
+
if(domElement.hasAttribute("poll-frequency-seconds") || domElement.hasAttribute("schedule-frequency") ) {
logger.warn("Schedule Listener '" + listenerConfig.getTagName() + "' defines both 'scheduleidref' and frequency attributes. Using the 'scheduleidref'.");
}
- } else if(frequency > -1) {
- listenerConfig.setAttribute(ScheduleProviderFactory.ATTR_FREQUENCY, Integer.toString(frequency));
+ } else if(scheduleFrequency > -1) {
+ listenerConfig.setAttribute(ScheduleProviderFactory.ATTR_FREQUENCY, Integer.toString(scheduleFrequency));
} else if(pollFrequency > -1) {
listenerConfig.setAttribute(ScheduleProviderFactory.ATTR_FREQUENCY, Integer.toString(pollFrequency));
} else if(pollLatency > -1) {
@@ -61,6 +101,12 @@
listenerConfig.setAttribute(ScheduleProviderFactory.ATTR_FREQUENCY, "10");
}
+ final ScheduleProvider scheduleProvider = model.getScheduleProvider() ;
+ if (scheduleProvider != null) {
+ // There is only one schedule provider allowed in the configuration at present
+ copyProperties(listenerConfig, model.getScheduleProvider().getPropertyList(), model.getScheduledListenerCount()) ;
+ }
+
if(domElement.hasAttribute("poll-frequency-seconds")) {
logger.warn("Attrubute 'poll-frequency-seconds' is DEPRECATED. Please change your configuration to use 'schedule-frequency'.");
}
@@ -69,8 +115,19 @@
}
}
+ private static void copyProperties(final Element listenerConfig, final List<PropertyDocument.Property> properties, final int numScheduledListeners)
+ {
+ final Element schedulePropertyElement = YADOMUtil.addElement(listenerConfig, ListenerTagNames.SCHEDULE_PROPERTIES) ;
+ schedulePropertyElement.setAttribute(SchedulerResource.THREAD_COUNT, Integer.toString(numScheduledListeners)) ;
+
+ if ((properties != null) && (properties.size() > 0))
+ {
+ MapperUtil.mapProperties(properties, schedulePropertyElement) ;
+ }
+ }
+
private static int getPollLatencySeconds(AbstractScheduledListener scheduledListener) {
- String value = Generator.XMLBeansModel.getProperty(scheduledListener.getPropertyList(), "pollLatencySeconds", "-1");
+ String value = XMLBeansModel.getProperty(scheduledListener.getPropertyList(), "pollLatencySeconds", "-1");
try {
return Integer.parseInt(value);
@@ -78,4 +135,4 @@
return -1;
}
}
-}
\ No newline at end of file
+}
Copied: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers/ScheduleProviderFactory.java (from rev 24846, labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers/ScheduleProviderFactory.java)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers/ScheduleProviderFactory.java (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers/ScheduleProviderFactory.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -0,0 +1,119 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and others contributors as indicated
+ * by the @authors tag. All rights reserved.
+ * See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License, v. 2.1.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+ * PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
+ * You should have received a copy of the GNU Lesser General Public License,
+ * v.2.1 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301, USA.
+ *
+ * (C) 2005-2006, JBoss Inc.
+ */
+package org.jboss.soa.esb.listeners.config.mappers;
+
+import org.jboss.soa.esb.schedule.*;
+import org.jboss.soa.esb.ConfigurationException;
+import org.jboss.soa.esb.helpers.ConfigTree;
+import org.jboss.soa.esb.listeners.lifecycle.ManagedLifecycle;
+import org.jboss.soa.esb.listeners.config.xbeanmodel101.ScheduleProviderDocument;
+import org.jboss.soa.esb.listeners.config.xbeanmodel101.SimpleScheduleDocument;
+import org.jboss.soa.esb.listeners.config.xbeanmodel101.CronScheduleDocument;
+import org.jboss.soa.esb.listeners.config.xbeanmodel101.FrequencyUnit;
+
+import java.util.List;
+import java.util.Properties;
+import java.util.ArrayList;
+
+/**
+ * Factory class for creating and configuring a {@link ScheduleProvider}
+ * instance.
+ *
+ * @author <a href="daniel.bevenius at redpill.se">Daniel Bevenius</a>
+ * @author <a href="mailto:tom.fennelly at jboss.com">tom.fennelly at jboss.com</a>
+ */
+public abstract class ScheduleProviderFactory {
+
+ public static final String ATTR_SCHEDULE_ID_REF = "scheduleidref";
+ public static final String ATTR_FREQUENCY = "schedule-frequency";
+
+ public static ScheduleProvider createInstance(List<ManagedLifecycle> listeners, ScheduleProviderDocument.ScheduleProvider scheduleProviderConfig) throws ConfigurationException {
+ Properties schedulerConfig = null;
+ List<org.jboss.soa.esb.schedule.Schedule> schedules = null;
+ ScheduleProvider instance;
+
+ if(scheduleProviderConfig != null) {
+ schedulerConfig = XMLBeansModel.toProperties(scheduleProviderConfig.getPropertyList());
+ schedules = getSchedules(scheduleProviderConfig);
+ }
+ instance = new ScheduleProvider(schedulerConfig, schedules);
+
+ try {
+ for(ManagedLifecycle listener : listeners) {
+ if(listener instanceof ScheduledEventListener) {
+ ConfigTree config = listener.getConfig();
+ String scheduleIdRef = config.getAttribute(ATTR_SCHEDULE_ID_REF);
+
+ if(scheduleIdRef != null) {
+ instance.addListener((ScheduledEventListener) listener, scheduleIdRef);
+ } else {
+ long frequency = config.getLongAttribute(ATTR_FREQUENCY, 10);
+ instance.addListener((ScheduledEventListener) listener, frequency);
+ }
+ }
+ }
+ } catch (SchedulingException e) {
+ throw new ConfigurationException(e);
+ }
+
+ return instance;
+ }
+
+ private static List<Schedule> getSchedules(ScheduleProviderDocument.ScheduleProvider scheduleProviderConfig) throws ConfigurationException {
+ List<Schedule> schedules = new ArrayList<Schedule>();
+ List<org.jboss.soa.esb.listeners.config.xbeanmodel101.Schedule> scheduleConfigs = scheduleProviderConfig.getScheduleList();
+ List<String> schedulIds = new ArrayList<String>();
+
+ // We wouldn't have to do this if we were using JAXB!!!
+ // TODO: Get XMLBeans to fudge the class names for the generated binds - existing names are potentialy dangerous because they're the same as the non XMLBeans types
+ for(org.jboss.soa.esb.listeners.config.xbeanmodel101.Schedule scheduleConfig : scheduleConfigs) {
+ String scheduleId = scheduleConfig.getScheduleid();
+ Schedule schedule;
+
+ if(schedulIds.contains(scheduleId)) {
+ throw new ConfigurationException("Duplicate 'scheduleid' value of '" + scheduleId + "'. Must be unique on a per <schedule-provider> basis.");
+ }
+ schedulIds.add(scheduleId);
+
+ if(scheduleConfig instanceof SimpleScheduleDocument.SimpleSchedule) {
+ SimpleSchedule simpleSchedule;
+ FrequencyUnit.Enum frequencyUnit = ((SimpleScheduleDocument.SimpleSchedule)scheduleConfig).getFrequencyUnits();
+
+ schedule = simpleSchedule = new SimpleSchedule(scheduleId);
+ if(frequencyUnit == FrequencyUnit.SECONDS) {
+ simpleSchedule.setFrequency(((SimpleScheduleDocument.SimpleSchedule)scheduleConfig).getFrequency() * 1000);
+ } else {
+ simpleSchedule.setFrequency(((SimpleScheduleDocument.SimpleSchedule)scheduleConfig).getFrequency());
+ }
+ simpleSchedule.setExecCount(((SimpleScheduleDocument.SimpleSchedule)scheduleConfig).getExecCount());
+ } else {
+ CronSchedule cronSchedule;
+
+ schedule = cronSchedule = new CronSchedule(scheduleId);
+ cronSchedule.setCronExpression(((CronScheduleDocument.CronSchedule)scheduleConfig).getCronExpression());
+ }
+ schedule.setStartDate(scheduleConfig.getStartDate());
+ schedule.setEndDate(scheduleConfig.getEndDate());
+ schedules.add(schedule);
+ }
+
+ return schedules;
+ }
+}
Modified: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers/ScheduledListenerMapper.java
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers/ScheduledListenerMapper.java 2009-01-21 14:47:17 UTC (rev 24849)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers/ScheduledListenerMapper.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -20,7 +20,8 @@
package org.jboss.soa.esb.listeners.config.mappers;
import org.w3c.dom.Element;
-import org.jboss.soa.esb.listeners.config.xbeanmodel.ScheduledListenerDocument;
+import org.jboss.soa.esb.listeners.config.xbeanmodel101.ScheduledListenerDocument;
+import org.jboss.soa.esb.listeners.config.xbeanmodel101.ServiceDocument.Service;
import org.jboss.soa.esb.listeners.ListenerTagNames;
import org.jboss.soa.esb.listeners.ScheduleListener;
import org.jboss.soa.esb.dom.YADOMUtil;
@@ -30,7 +31,9 @@
* @author <a href="mailto:tom.fennelly at jboss.com">tom.fennelly at jboss.com</a>
*/
public class ScheduledListenerMapper {
- public static Element map(Element root, ScheduledListenerDocument.ScheduledListener listener) {
+ public static Element map(Element root, ScheduledListenerDocument.ScheduledListener listener, XMLBeansModel model) {
+ Service service = model.getService(listener);
+ boolean isGateway = listener.getIsGateway();
Element listenerNode = YADOMUtil.addElement(root, "listener");
listenerNode.setAttribute("name", listener.getName());
@@ -41,6 +44,7 @@
listenerNode.setAttribute(ListenerTagNames.TRANSACTED_TAG, Boolean.toString(listener.getTransacted()));
}
+ MapperUtil.mapListenerServiceAttributes(listenerNode, service, isGateway) ;
// Map the <property> elements targeted at the listener - from the listener itself.
MapperUtil.mapProperties(listener.getPropertyList(), listenerNode);
Copied: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers/SecurityMapper.java (from rev 24846, labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers/SecurityMapper.java)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers/SecurityMapper.java (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers/SecurityMapper.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -0,0 +1,59 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and others contributors as indicated
+ * by the @authors tag. All rights reserved.
+ * See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License, v. 2.1.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+ * PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
+ * You should have received a copy of the GNU Lesser General Public License,
+ * v.2.1 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301, USA.
+ *
+ * (C) 2005-2006,
+ * @author JBoss Inc.
+ */
+
+package org.jboss.soa.esb.listeners.config.mappers;
+
+import org.jboss.soa.esb.ConfigurationException;
+import org.jboss.soa.esb.dom.YADOMUtil;
+import org.jboss.soa.esb.listeners.ListenerTagNames;
+import org.jboss.soa.esb.listeners.config.xbeanmodel101.SecurityDocument.Security;
+import org.jboss.soa.esb.listeners.config.xbeanmodel101.ServiceDocument.Service;
+import org.w3c.dom.Element;
+
+/**
+ * Performs the mapping of XSD based configuration service actions onto a
+ * "ConfigTree" style listener configuration.
+ *
+ * @author <a href="mailto:dbevenius at jboss.com">Daniel Bevenius</a>
+ */
+public class SecurityMapper
+{
+ private SecurityMapper() {}
+
+ /**
+ * Perform the mapping.
+ *
+ * @param toConfigTree
+ * The listener ConfigTree to which the actions are to be added.
+ * @param service
+ * The Service to which the listener is bound. The Service defines the actions.
+ * @throws ConfigurationException
+ */
+ public static void map( final Element toConfigTree, final Service service ) throws ConfigurationException
+ {
+ final Security security = service.getSecurity();
+ if ( security != null)
+ {
+ final Element securityElement = YADOMUtil.addElement( toConfigTree, ListenerTagNames.SECURITY_TAG );
+ MapperUtil.serialize( security, securityElement );
+ }
+ }
+}
Modified: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers/SqlListenerMapper.java
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers/SqlListenerMapper.java 2009-01-21 14:47:17 UTC (rev 24849)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers/SqlListenerMapper.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -24,11 +24,10 @@
import org.jboss.soa.esb.addressing.eprs.JDBCEpr;
import org.jboss.soa.esb.dom.YADOMUtil;
import org.jboss.soa.esb.listeners.ListenerTagNames;
-import org.jboss.soa.esb.listeners.config.Generator.XMLBeansModel;
-import org.jboss.soa.esb.listeners.config.xbeanmodel.SqlBusDocument.SqlBus;
-import org.jboss.soa.esb.listeners.config.xbeanmodel.SqlListenerDocument.SqlListener;
-import org.jboss.soa.esb.listeners.config.xbeanmodel.SqlMessageFilterDocument.SqlMessageFilter;
-import org.jboss.soa.esb.listeners.config.xbeanmodel.SqlProviderDocument.SqlProvider;
+import org.jboss.soa.esb.listeners.config.xbeanmodel101.SqlBusDocument.SqlBus;
+import org.jboss.soa.esb.listeners.config.xbeanmodel101.SqlListenerDocument.SqlListener;
+import org.jboss.soa.esb.listeners.config.xbeanmodel101.SqlMessageFilterDocument.SqlMessageFilter;
+import org.jboss.soa.esb.listeners.config.xbeanmodel101.SqlProviderDocument.SqlProvider;
import org.jboss.soa.esb.listeners.gateway.SqlTableGatewayListener;
import org.w3c.dom.Element;
Modified: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers/UntypedListenerMapper.java
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers/UntypedListenerMapper.java 2009-01-21 14:47:17 UTC (rev 24849)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers/UntypedListenerMapper.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -24,13 +24,12 @@
import org.jboss.soa.esb.ConfigurationException;
import org.jboss.soa.esb.dom.YADOMUtil;
import org.jboss.soa.esb.listeners.ListenerTagNames;
-import org.jboss.soa.esb.listeners.config.xbeanmodel.Bus;
-import org.jboss.soa.esb.listeners.config.xbeanmodel.Listener;
-import org.jboss.soa.esb.listeners.config.xbeanmodel.Provider;
-import org.jboss.soa.esb.listeners.config.Generator.XMLBeansModel;
-import org.jboss.soa.esb.listeners.config.xbeanmodel.impl.BusImpl;
-import org.jboss.soa.esb.listeners.config.xbeanmodel.impl.ListenerImpl;
-import org.jboss.soa.esb.listeners.config.xbeanmodel.impl.BusProviderImpl;
+import org.jboss.soa.esb.listeners.config.xbeanmodel101.Bus;
+import org.jboss.soa.esb.listeners.config.xbeanmodel101.Listener;
+import org.jboss.soa.esb.listeners.config.xbeanmodel101.Provider;
+import org.jboss.soa.esb.listeners.config.xbeanmodel101.impl.BusImpl;
+import org.jboss.soa.esb.listeners.config.xbeanmodel101.impl.ListenerImpl;
+import org.jboss.soa.esb.listeners.config.xbeanmodel101.impl.BusProviderImpl;
import org.w3c.dom.Element;
/**
Copied: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers/XMLBeansModel.java (from rev 24846, labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers/XMLBeansModel.java)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers/XMLBeansModel.java (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers/XMLBeansModel.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -0,0 +1,527 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and others contributors as indicated
+ * by the @authors tag. All rights reserved.
+ * See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License, v. 2.1.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+ * PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
+ * You should have received a copy of the GNU Lesser General Public License,
+ * v.2.1 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301, USA.
+ *
+ * (C) 2005-2006,
+ * @author JBoss Inc.
+ */
+
+package org.jboss.soa.esb.listeners.config.mappers;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.HashSet;
+import java.util.LinkedHashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Properties;
+import java.util.Set;
+
+import org.jboss.internal.soa.esb.publish.ActionContractPublisher;
+import org.jboss.internal.soa.esb.publish.ContractPublisher;
+import org.jboss.internal.soa.esb.publish.Publish;
+import org.jboss.soa.esb.ConfigurationException;
+import org.jboss.soa.esb.common.Environment;
+import org.jboss.soa.esb.common.ModulePropertyManager;
+import org.jboss.soa.esb.listeners.config.ServicePublisher;
+import org.jboss.soa.esb.listeners.config.WebserviceInfo;
+import org.jboss.soa.esb.listeners.config.xbeanmodel101.AbstractScheduledListener;
+import org.jboss.soa.esb.listeners.config.xbeanmodel101.Bus;
+import org.jboss.soa.esb.listeners.config.xbeanmodel101.BusProvider;
+import org.jboss.soa.esb.listeners.config.xbeanmodel101.JbossesbDocument;
+import org.jboss.soa.esb.listeners.config.xbeanmodel101.JcaGatewayDocument;
+import org.jboss.soa.esb.listeners.config.xbeanmodel101.Listener;
+import org.jboss.soa.esb.listeners.config.xbeanmodel101.ListenersDocument;
+import org.jboss.soa.esb.listeners.config.xbeanmodel101.MepType;
+import org.jboss.soa.esb.listeners.config.xbeanmodel101.PropertyDocument;
+import org.jboss.soa.esb.listeners.config.xbeanmodel101.Provider;
+import org.jboss.soa.esb.listeners.config.xbeanmodel101.Schedule;
+import org.jboss.soa.esb.listeners.config.xbeanmodel101.ActionDocument.Action;
+import org.jboss.soa.esb.listeners.config.xbeanmodel101.ActionsDocument.Actions;
+import org.jboss.soa.esb.listeners.config.xbeanmodel101.JbossesbDocument.Jbossesb;
+import org.jboss.soa.esb.listeners.config.xbeanmodel101.PropertyDocument.Property;
+import org.jboss.soa.esb.listeners.config.xbeanmodel101.ProvidersDocument.Providers;
+import org.jboss.soa.esb.listeners.config.xbeanmodel101.ScheduleProviderDocument.ScheduleProvider;
+import org.jboss.soa.esb.listeners.config.xbeanmodel101.ServiceDocument.Service;
+import org.jboss.soa.esb.listeners.config.xbeanmodel101.ServicesDocument.Services;
+import org.jboss.soa.esb.util.ClassUtil;
+import org.w3c.dom.Document;
+
+/**
+ * XMLBeans based model implementation.
+ *
+ * @author <a href="mailto:tom.fennelly at jboss.com">tom.fennelly at jboss.com</a>
+ */
+public class XMLBeansModel {
+
+ /**
+ * XMLBeans config model instance.
+ */
+ private Jbossesb jbossesb;
+
+ /**
+ * Constructor.
+ * @param xmlBeansDoc XMLBeans config model.
+ */
+ public XMLBeansModel(Jbossesb jbossesb) {
+ this.jbossesb = jbossesb;
+ }
+
+ /**
+ * Get the list of ESB Gateway Listeners from the configuration.
+ * @return The list of ESB Gateway Listeners from the configuration.
+ * @throws ConfigurationException Bad configuration.
+ */
+ public List<Listener> getGatewayListeners() throws ConfigurationException {
+ return getListeners(true);
+ }
+
+ /**
+ * Get the list of ESB Aware Listeners from the configuration.
+ * @return The list of ESB Aware Listeners from the configuration.
+ * @throws ConfigurationException Bad configuration.
+ */
+ public List<Listener> getESBAwareListeners() throws ConfigurationException {
+ return getListeners(false);
+ }
+
+ /**
+ * Get the Service to which the supplied {@link Listener} configuration instance is bound.
+ * @param listener The listener instance (Gateway or ESB Aware).
+ * @return The Service to which the
+ */
+ public Service getService(Listener listener) {
+ List<Service> services = getServices();
+
+ for(Service service : services) {
+ ListenersDocument.Listeners listeners = service.getListeners();
+
+ if(listeners != null) {
+ List<Listener> listenerList = listeners.getListenerList();
+
+ if(listenerList != null) {
+ for(Listener serviceListener : listenerList) {
+ if(serviceListener == listener) {
+ return service;
+ }
+ }
+ }
+ }
+ }
+
+ throw new IllegalStateException("No Service instance found for the supplied Listener instance. This should not be possible if the Listener instance was provided by this configuration. Where has this Listener instance come from?");
+ }
+
+ /**
+ * Get the Service list.
+ * @return Service list.
+ */
+ public List<Service> getServices() {
+ final Services services = jbossesb.getServices();
+ if (services != null) {
+ return jbossesb.getServices().getServiceList();
+ } else {
+ return Collections.emptyList();
+ }
+ }
+
+ /**
+ * Get the <bus> configuration matching the supplied busid reference value.
+ * @param busid The required <bus> configuration reference value.
+ * @return The Bus configuration instance.
+ * @throws ConfigurationException Unknown busid reference value.
+ */
+ public Bus getBus(String busid) throws ConfigurationException {
+ List<Provider> providers = jbossesb.getProviders().getProviderList();
+
+ for(Provider provider : providers) {
+ if(provider instanceof BusProvider) {
+ List<Bus> buses = ((BusProvider)provider).getBusList();
+
+ for(Bus bus : buses) {
+ if(bus.getBusid().equals(busid)) {
+ return bus;
+ }
+ }
+ }
+ }
+
+ throw new ConfigurationException("Invalid ESB Configuration: No <bus> configuration matching busid reference value [" + busid + "].");
+ }
+
+ /**
+ * Get the <provider> configuration containing the supplied Bus configuration instance.
+ * @param bus The Bus config instance whose Provider is being sought.
+ * @return The Provider configuration instance.
+ */
+ public Provider getProvider(Bus bus) {
+ List<Provider> providers = jbossesb.getProviders().getProviderList();
+
+ for(Provider provider : providers) {
+ if(provider instanceof BusProvider) {
+ List<Bus> buses = ((BusProvider)provider).getBusList();
+
+ for(Bus installedBus : buses) {
+ if(installedBus == bus) {
+ return provider;
+ }
+ }
+ }
+ }
+
+ throw new IllegalStateException("No Provider instance found for the supplied Bus config instance. This should not be possible if the Bus instance was provided by this configuration. Where has this Bus instance come from?");
+ }
+
+ public Schedule getSchedule(final String id) {
+ if((id == null) || (jbossesb.getProviders() == null)) {
+ return null;
+ }
+
+ List<Provider> providers = jbossesb.getProviders().getProviderList();
+
+ for(Provider provider : providers) {
+ if(provider instanceof ScheduleProvider) {
+ final ScheduleProvider scheduleProvider = (ScheduleProvider)provider ;
+ final List<Schedule> schedules = scheduleProvider.getScheduleList() ;
+ for(Schedule schedule: schedules) {
+ if (id.equals(schedule.getScheduleid())) {
+ return schedule ;
+ }
+ }
+ }
+ }
+
+ return null;
+ }
+
+ public ScheduleProvider getScheduleProvider() {
+ if(jbossesb.getProviders() == null) {
+ return null;
+ }
+
+ List<Provider> providers = jbossesb.getProviders().getProviderList();
+
+ for(Provider provider : providers) {
+ if(provider instanceof ScheduleProvider) {
+ return (ScheduleProvider) provider;
+ }
+ }
+
+ return null;
+ }
+
+ public int getScheduledListenerCount() {
+ int count = 0 ;
+ if (jbossesb.getServices() != null) {
+ final List<Service> services = getServices() ;
+ for(Service service: services) {
+ final ListenersDocument.Listeners listeners = service.getListeners() ;
+ if (listeners != null) {
+ for (Listener listener: listeners.getListenerList()) {
+ if (listener instanceof AbstractScheduledListener) {
+ count++ ;
+ }
+ }
+ }
+ }
+ }
+ return count ;
+ }
+
+ private boolean isGateway(Listener listener)
+ {
+ return listener.getIsGateway() || (listener instanceof JcaGatewayDocument.JcaGateway);
+ }
+
+ /**
+ * Get the list of ESB Listeners based on their Gateway flag.
+ * @return The list of ESB Aware or Gateway Listeners from the configuration.
+ * @param isGateway Is the listener a gateway or ESB aware listener.
+ * @throws ConfigurationException Bad configuration.
+ */
+ private List<Listener> getListeners(boolean isGateway) throws ConfigurationException {
+ List<Listener> gateways = new ArrayList<Listener>();
+ if (jbossesb.getServices() != null) {
+ List<Service> services = getServices();
+
+ for(Service service : services) {
+ boolean listenerAdded = false;
+ ListenersDocument.Listeners listeners = service.getListeners();
+
+ if(listeners != null) {
+ for(Listener listener : listeners.getListenerList()) {
+ if(isGateway(listener) == isGateway) {
+ gateways.add(listener);
+ listenerAdded = true;
+ }
+ }
+ }
+
+ // Make sure each Service config has a message aware listener...
+ // http://jira.jboss.com/jira/browse/JBESB-648
+ if(!exposesInVMListener(service) && !isGateway && !listenerAdded) {
+ throw new ConfigurationException("Service configuration for Service '" + service.getCategory() + ":" + service.getName() + "' doesn't define a Message-Aware Listener (i.e. is-gateway='false').");
+ }
+ }
+ }
+
+ return gateways;
+ }
+
+ /**
+ * Gets the setting for the number of seconds between reloads.
+ *
+ * @return The param reload seconds config value.
+ */
+ public String getParameterReloadSecs() {
+ return jbossesb.getParameterReloadSecs().getStringValue();
+ }
+
+ public static String getProperty(List<Property> properties, String name, String defaultVal) {
+ for (PropertyDocument.Property property : properties) {
+ if(property.getName().equals(name)) {
+ return property.getValue();
+ }
+ }
+
+ return defaultVal;
+ }
+
+ public static boolean exposesInVMListener(Service service) {
+ if(service.xgetInvmScope() != null && service.xgetInvmScope().getStringValue() != null) {
+ return (service.xgetInvmScope().getStringValue().equals("GLOBAL"));
+ }
+
+ String systemDefaultScope = System.getProperty(Environment.DEFAULT_INVM_SCOPE, "GLOBAL");
+ String defaultScope = ModulePropertyManager.getPropertyManager("core").getProperty(Environment.DEFAULT_INVM_SCOPE, systemDefaultScope);
+
+ return defaultScope.equals("GLOBAL");
+ }
+
+ /**
+ * Verify the schedule provider configuration.
+ * @throws ConfigurationException
+ */
+ public void verifyScheduleProviderConfig()
+ throws ConfigurationException {
+ Providers providersConfig = jbossesb.getProviders();
+
+ if(providersConfig == null) {
+ return;
+ }
+
+ List<Provider> providers = providersConfig.getProviderList();
+ int numScheduleProviders = 0;
+
+ for(Provider provider : providers) {
+ if(provider instanceof ScheduleProvider) {
+ numScheduleProviders++;
+ }
+ }
+
+ if(numScheduleProviders > 1) {
+ throw new ConfigurationException("Configuration contains " + numScheduleProviders + " <schedule-provider> configurations. Only one of this provider type can exist per configuration.");
+ }
+ }
+
+
+ /**
+ * Get a map of service publishers provided by each service.
+ *
+ * @return The map of service publishers, keyed by service.
+ */
+ public Map<org.jboss.soa.esb.Service, List<ServicePublisher>> getServicePublishers() {
+ List<Service> serviceConfigs = getServices();
+ final Map<org.jboss.soa.esb.Service, List<ServicePublisher>> servicePublishers = new LinkedHashMap<org.jboss.soa.esb.Service, List<ServicePublisher>>() ;
+
+ for (Service docService : serviceConfigs) {
+ ContractPublisher publisher = getContractPublisher(docService);
+ final org.jboss.soa.esb.Service service = new org.jboss.soa.esb.Service(docService.getCategory(), docService.getName()) ;
+ ServicePublisher servicePublisher = new ServicePublisher(service.getName(), service.getCategory(), publisher);
+
+ servicePublisher.setDescription(docService.getDescription());
+ addPublisher(servicePublishers, service, servicePublisher) ;
+ }
+
+ return servicePublishers ;
+ }
+
+ /**
+ * Get the contract publisher for the service.
+ * @param service The current service definition.
+ * @return The contract publisher of null if none present.
+ */
+ private static ContractPublisher getContractPublisher(Service service) {
+ if(service.getActions() == null || service.getActions().getActionList() == null) {
+ return null;
+ }
+
+ for (Action action : service.getActions().getActionList()) {
+ Class<Class> actionClass;
+
+ try {
+ actionClass = (Class<Class>) ClassUtil.forName(action.getClass1(), ServicePublisher.class);
+ } catch (ClassNotFoundException e) {
+ throw new RuntimeException("Failed to find action class '" + action.getClass1() + "'.", e);
+ }
+
+ Publish publishAnnotation = (Publish) actionClass.getAnnotation(Publish.class);
+ if (publishAnnotation != null) {
+ Class publisherClass;
+ ActionContractPublisher publisher = null;
+
+ publisherClass = publishAnnotation.value();
+ try {
+ publisher = (ActionContractPublisher) publisherClass.newInstance();
+ final org.jboss.soa.esb.listeners.config.Action actionInfo = new org.jboss.soa.esb.listeners.config.Action(
+ action.getName(), action.getClass1(), action.getProcess(), toProperties(action.getPropertyList())) ;
+ publisher.setActionConfig(actionInfo);
+ return publisher;
+ } catch (ClassCastException e) {
+ throw new RuntimeException("Action Contract Publisher class '" + publisherClass.getName() + "' must implement " + ActionContractPublisher.class.getName());
+ } catch (Exception e) {
+ throw new RuntimeException("Failed to instantiate Contract Publisher '" + publisherClass.getName() + "'. Class must implement a public default constructor.", e);
+ }
+ }
+ }
+
+ // No publisher configured on any of the actions in the processing chain...
+ return null;
+ }
+
+
+ /**
+ * Add the publisher into map for the specified service.
+ * @param servicePublishers The service publishers
+ * @param service The service name
+ * @param publisher The publisher
+ */
+ private static void addPublisher(final Map<org.jboss.soa.esb.Service, List<ServicePublisher>> servicePublishers,
+ final org.jboss.soa.esb.Service service, final ServicePublisher publisher)
+ {
+ final List<ServicePublisher> publishers = servicePublishers.get(service) ;
+ if (publishers != null) {
+ publishers.add(publisher);
+ } else {
+ final List<ServicePublisher> newPublishers = new ArrayList<ServicePublisher>() ;
+ newPublishers.add(publisher) ;
+ servicePublishers.put(service, newPublishers) ;
+ }
+ }
+
+ /**
+ * Generate the ESB Aware configuration document.
+ * @return The ESB aware configuration.
+ * @throws ConfigurationException Error creating configuration.
+ */
+ public Document generateESBAwareConfig()
+ throws ConfigurationException
+ {
+ // Generate and serialise the configuration for the ESB Aware listeners...
+ ESBAwareGenerator awareGenerator = new ESBAwareGenerator(this);
+ return awareGenerator.generate();
+ }
+
+ /**
+ * Generate the gateway configuration document.
+ * @return The gateway configuration.
+ * @throws ConfigurationException Error creating configuration.
+ */
+ public Document generateGatewayConfig()
+ throws ConfigurationException
+ {
+ // Generate and serialise the configuration for the Gateway listeners...
+ GatewayGenerator gatewayGenerator = new GatewayGenerator(this);
+ return gatewayGenerator.generate();
+ }
+
+ /**
+ * Get the properties from the document.
+ * @param configProperties The document properties.
+ * @return The properties.
+ */
+ public static Properties toProperties(List<PropertyDocument.Property> configProperties) {
+ Properties properties = new Properties();
+
+ for(PropertyDocument.Property property : configProperties) {
+ properties.setProperty(property.getName(), property.getValue());
+ }
+
+ return properties;
+ }
+
+ /**
+ * Get the list of actions in this deployment.
+ * @return a list of actions or null if none present.
+ */
+ public Set<String> getActions()
+ {
+ final Services services = jbossesb.getServices() ;
+ if (services != null)
+ {
+ final Set<String> actionClasses = new HashSet<String>() ;
+
+ for(final Service service : services.getServiceList())
+ {
+ final Actions actions = service.getActions() ;
+ if (actions != null)
+ {
+ for (final Action action: actions.getActionList())
+ {
+ actionClasses.add(action.getClass1()) ;
+ }
+ }
+ }
+
+ return actionClasses ;
+ }
+ return null ;
+ }
+
+
+ /**
+ * Get the list of services which require a webservice endpoint.
+ * @return The list of services.
+ */
+ public List<WebserviceInfo> getWebserviceServices()
+ {
+ final List<WebserviceInfo> endpointServices = new ArrayList<WebserviceInfo>() ;
+ final Services services = jbossesb.getServices() ;
+ if (services != null)
+ {
+ for(final Service service : services.getServiceList())
+ {
+ final Actions actions = service.getActions() ;
+ if (actions != null)
+ {
+ if (!actions.isSetWebservice() || actions.getWebservice())
+ {
+ final String inXsd = actions.getInXsd() ;
+ if (inXsd != null)
+ {
+ final WebserviceInfo webserviceInfo = new WebserviceInfo(
+ new org.jboss.soa.esb.Service(service.getCategory(), service.getName()),
+ actions.getInXsd(), actions.getOutXsd(), actions.getFaultXsd(),
+ service.getDescription(), MepType.REQUEST_RESPONSE.equals(actions.getMep())) ;
+ endpointServices.add(webserviceInfo) ;
+ }
+ }
+ }
+ }
+ }
+ return endpointServices ;
+ }
+}
Copied: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers110 (from rev 24846, labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers110)
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers110/ActionMapper.java
===================================================================
--- labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers110/ActionMapper.java 2009-01-21 09:35:03 UTC (rev 24846)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers110/ActionMapper.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -1,136 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2006, JBoss Inc., and others contributors as indicated
- * by the @authors tag. All rights reserved.
- * See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- * This copyrighted material is made available to anyone wishing to use,
- * modify, copy, or redistribute it subject to the terms and conditions
- * of the GNU Lesser General Public License, v. 2.1.
- * This program is distributed in the hope that it will be useful, but WITHOUT A
- * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
- * PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
- * You should have received a copy of the GNU Lesser General Public License,
- * v.2.1 along with this distribution; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
- * MA 02110-1301, USA.
- *
- * (C) 2005-2006,
- * @author JBoss Inc.
- */
-
-package org.jboss.soa.esb.listeners.config.mappers110;
-
-import java.util.HashMap;
-import java.util.List;
-
-import org.apache.log4j.Logger;
-import org.jboss.soa.esb.ConfigurationException;
-import org.jboss.soa.esb.dom.YADOMUtil;
-import org.jboss.soa.esb.listeners.ListenerTagNames;
-import org.jboss.soa.esb.listeners.config.xbeanmodel110.MepType;
-import org.jboss.soa.esb.listeners.config.xbeanmodel110.ActionDocument.Action;
-import org.jboss.soa.esb.listeners.config.xbeanmodel110.ActionsDocument.Actions;
-import org.jboss.soa.esb.listeners.config.xbeanmodel110.PropertyDocument.Property;
-import org.jboss.soa.esb.listeners.config.xbeanmodel110.ServiceDocument.Service;
-import org.w3c.dom.Element;
-
-/**
- * Performs the mapping of XSD based configuration service actions onto a "ConfigTree"
- * style listener configuration.
- *
- * @author <a href="mailto:tom.fennelly at jboss.com">tom.fennelly at jboss.com</a>
- */
-public class ActionMapper {
- private static final Logger logger = Logger.getLogger(ActionMapper.class);
-
- /**
- * Perform the mapping. Checks to ensure that action names are unique, and throws a ConfigurationException if
- * a duplicate action name is registered.
- * @param listenerConfigTree The listener ConfigTree to which the actions are to be added.
- * @param listenerService The Service to which the listener is bound. The Service defines the actions.
- * @param model The configuration model from which the mapping is being performed.
- * @throws ConfigurationException
- */
- public static void map(Element listenerConfigTree, Service listenerService, XMLBeansModel model) throws ConfigurationException {
- if (listenerService.getActions()!=null) {
- final Actions actions = listenerService.getActions();
- final MepType.Enum mep = actions.getMep() ;
- if (mep != null)
- {
- listenerConfigTree.setAttribute(ListenerTagNames.MEP_ATTRIBUTE_TAG, mep.toString()) ;
- }
- final String inxsd = actions.getInXsd();
- if (inxsd != null)
- {
- listenerConfigTree.setAttribute(ListenerTagNames.IN_XSD_ATTRIBUTE_TAG, inxsd);
- }
- final String outxsd = actions.getOutXsd();
- if (outxsd != null)
- {
- listenerConfigTree.setAttribute(ListenerTagNames.OUT_XSD_ATTRIBUTE_TAG, outxsd);
- }
-
- final String faultxsd = actions.getFaultXsd();
-
- if (faultxsd != null)
- {
- listenerConfigTree.setAttribute(ListenerTagNames.FAULT_XSD_ATTRIBUTE_TAG, faultxsd);
- }
-
- if (actions.isSetValidate())
- {
- listenerConfigTree.setAttribute(ListenerTagNames.VALIDATE_ATTRIBUTE_TAG, Boolean.toString(actions.getValidate())) ;
- }
-
- SecurityMapper.map(listenerConfigTree, listenerService);
- List<Action> actionList = actions.getActionList();
-
- HashMap<String,String> hm = new HashMap<String,String>();
- for(Action action : actionList) {
- mapAction(listenerConfigTree, action);
- if (hm.containsKey(action.getName())) {
- throw new ConfigurationException("Tried to register a duplicate action name. Service "
- + listenerService.getName() + " already contains an action named "
- + action.getName() + ". Action names must be unique per service.");
- } else {
- hm.put(action.getName(), action.getName());
- }
- }
- }
- }
-
- /**
- * Map an action instance onto the listener ConfigTree.
- * @param listenerConfigTree The target listener ConfigTree.
- * @param action The action instance.
- */
- private static void mapAction(Element listenerConfigTree, Action action) {
- Element actionConfigTree = YADOMUtil.addElement(listenerConfigTree, "action");
- List<Property> properties = action.getPropertyList();
-
- actionConfigTree.setAttribute(ListenerTagNames.ACTION_ELEMENT_TAG, action.getName());
- actionConfigTree.setAttribute(ListenerTagNames.ACTION_CLASS_TAG, action.getClass1());
- actionConfigTree.setAttribute(ListenerTagNames.PROCESS_METHOD_TAG, action.getProcess());
- // The "okMethods" and "exceptionMethod" attributes are supported by adding them as child <property> elements.
-
- // Map the property elements to action attributes...
- for(Property property : properties) {
- Element propertyElement = listenerConfigTree.getOwnerDocument().createElement("property");
-
- MapperUtil.serialize(property, propertyElement);
-
- if(property.getValue() != null) {
- actionConfigTree.setAttribute(property.getName(), property.getValue());
- }
- // If the property has child content, add that directy to the action. Of course it only really
- // makes sense to do this with one property!
- if(propertyElement.hasChildNodes()) {
- YADOMUtil.copyChildNodes(propertyElement, actionConfigTree);
- }
- }
-
- // Remove any empty attributes set on the action config...
- YADOMUtil.removeEmptyAttributes(actionConfigTree);
- }
-}
Copied: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers110/ActionMapper.java (from rev 24846, labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers110/ActionMapper.java)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers110/ActionMapper.java (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers110/ActionMapper.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -0,0 +1,136 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and others contributors as indicated
+ * by the @authors tag. All rights reserved.
+ * See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License, v. 2.1.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+ * PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
+ * You should have received a copy of the GNU Lesser General Public License,
+ * v.2.1 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301, USA.
+ *
+ * (C) 2005-2006,
+ * @author JBoss Inc.
+ */
+
+package org.jboss.soa.esb.listeners.config.mappers110;
+
+import java.util.HashMap;
+import java.util.List;
+
+import org.apache.log4j.Logger;
+import org.jboss.soa.esb.ConfigurationException;
+import org.jboss.soa.esb.dom.YADOMUtil;
+import org.jboss.soa.esb.listeners.ListenerTagNames;
+import org.jboss.soa.esb.listeners.config.xbeanmodel110.MepType;
+import org.jboss.soa.esb.listeners.config.xbeanmodel110.ActionDocument.Action;
+import org.jboss.soa.esb.listeners.config.xbeanmodel110.ActionsDocument.Actions;
+import org.jboss.soa.esb.listeners.config.xbeanmodel110.PropertyDocument.Property;
+import org.jboss.soa.esb.listeners.config.xbeanmodel110.ServiceDocument.Service;
+import org.w3c.dom.Element;
+
+/**
+ * Performs the mapping of XSD based configuration service actions onto a "ConfigTree"
+ * style listener configuration.
+ *
+ * @author <a href="mailto:tom.fennelly at jboss.com">tom.fennelly at jboss.com</a>
+ */
+public class ActionMapper {
+ private static final Logger logger = Logger.getLogger(ActionMapper.class);
+
+ /**
+ * Perform the mapping. Checks to ensure that action names are unique, and throws a ConfigurationException if
+ * a duplicate action name is registered.
+ * @param listenerConfigTree The listener ConfigTree to which the actions are to be added.
+ * @param listenerService The Service to which the listener is bound. The Service defines the actions.
+ * @param model The configuration model from which the mapping is being performed.
+ * @throws ConfigurationException
+ */
+ public static void map(Element listenerConfigTree, Service listenerService, XMLBeansModel model) throws ConfigurationException {
+ if (listenerService.getActions()!=null) {
+ final Actions actions = listenerService.getActions();
+ final MepType.Enum mep = actions.getMep() ;
+ if (mep != null)
+ {
+ listenerConfigTree.setAttribute(ListenerTagNames.MEP_ATTRIBUTE_TAG, mep.toString()) ;
+ }
+ final String inxsd = actions.getInXsd();
+ if (inxsd != null)
+ {
+ listenerConfigTree.setAttribute(ListenerTagNames.IN_XSD_ATTRIBUTE_TAG, inxsd);
+ }
+ final String outxsd = actions.getOutXsd();
+ if (outxsd != null)
+ {
+ listenerConfigTree.setAttribute(ListenerTagNames.OUT_XSD_ATTRIBUTE_TAG, outxsd);
+ }
+
+ final String faultxsd = actions.getFaultXsd();
+
+ if (faultxsd != null)
+ {
+ listenerConfigTree.setAttribute(ListenerTagNames.FAULT_XSD_ATTRIBUTE_TAG, faultxsd);
+ }
+
+ if (actions.isSetValidate())
+ {
+ listenerConfigTree.setAttribute(ListenerTagNames.VALIDATE_ATTRIBUTE_TAG, Boolean.toString(actions.getValidate())) ;
+ }
+
+ SecurityMapper.map(listenerConfigTree, listenerService);
+ List<Action> actionList = actions.getActionList();
+
+ HashMap<String,String> hm = new HashMap<String,String>();
+ for(Action action : actionList) {
+ mapAction(listenerConfigTree, action);
+ if (hm.containsKey(action.getName())) {
+ throw new ConfigurationException("Tried to register a duplicate action name. Service "
+ + listenerService.getName() + " already contains an action named "
+ + action.getName() + ". Action names must be unique per service.");
+ } else {
+ hm.put(action.getName(), action.getName());
+ }
+ }
+ }
+ }
+
+ /**
+ * Map an action instance onto the listener ConfigTree.
+ * @param listenerConfigTree The target listener ConfigTree.
+ * @param action The action instance.
+ */
+ private static void mapAction(Element listenerConfigTree, Action action) {
+ Element actionConfigTree = YADOMUtil.addElement(listenerConfigTree, "action");
+ List<Property> properties = action.getPropertyList();
+
+ actionConfigTree.setAttribute(ListenerTagNames.ACTION_ELEMENT_TAG, action.getName());
+ actionConfigTree.setAttribute(ListenerTagNames.ACTION_CLASS_TAG, action.getClass1());
+ actionConfigTree.setAttribute(ListenerTagNames.PROCESS_METHOD_TAG, action.getProcess());
+ // The "okMethods" and "exceptionMethod" attributes are supported by adding them as child <property> elements.
+
+ // Map the property elements to action attributes...
+ for(Property property : properties) {
+ Element propertyElement = listenerConfigTree.getOwnerDocument().createElement("property");
+
+ MapperUtil.serialize(property, propertyElement);
+
+ if(property.getValue() != null) {
+ actionConfigTree.setAttribute(property.getName(), property.getValue());
+ }
+ // If the property has child content, add that directy to the action. Of course it only really
+ // makes sense to do this with one property!
+ if(propertyElement.hasChildNodes()) {
+ YADOMUtil.copyChildNodes(propertyElement, actionConfigTree);
+ }
+ }
+
+ // Remove any empty attributes set on the action config...
+ YADOMUtil.removeEmptyAttributes(actionConfigTree);
+ }
+}
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers110/ESBAwareGenerator.java
===================================================================
--- labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers110/ESBAwareGenerator.java 2009-01-21 09:35:03 UTC (rev 24846)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers110/ESBAwareGenerator.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -1,226 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2006, JBoss Inc., and others contributors as indicated
- * by the @authors tag. All rights reserved.
- * See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- * This copyrighted material is made available to anyone wishing to use,
- * modify, copy, or redistribute it subject to the terms and conditions
- * of the GNU Lesser General Public License, v. 2.1.
- * This program is distributed in the hope that it will be useful, but WITHOUT A
- * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
- * PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
- * You should have received a copy of the GNU Lesser General Public License,
- * v.2.1 along with this distribution; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
- * MA 02110-1301, USA.
- *
- * (C) 2005-2006,
- * @author JBoss Inc.
- */
-
-package org.jboss.soa.esb.listeners.config.mappers110;
-
-import java.util.List;
-
-import org.apache.log4j.Logger;
-import org.jboss.soa.esb.ConfigurationException;
-import org.jboss.soa.esb.addressing.eprs.InVMEpr;
-import org.jboss.soa.esb.dom.YADOMUtil;
-import org.jboss.soa.esb.listeners.config.xbeanmodel110.AbstractScheduledListener;
-import org.jboss.soa.esb.listeners.config.xbeanmodel110.Bus;
-import org.jboss.soa.esb.listeners.config.xbeanmodel110.JmsProviderType;
-import org.jboss.soa.esb.listeners.config.xbeanmodel110.Listener;
-import org.jboss.soa.esb.listeners.config.xbeanmodel110.Provider;
-import org.jboss.soa.esb.listeners.config.xbeanmodel110.FsListenerDocument.FsListener;
-import org.jboss.soa.esb.listeners.config.xbeanmodel110.FtpListenerDocument.FtpListener;
-import org.jboss.soa.esb.listeners.config.xbeanmodel110.GroovyListenerDocument.GroovyListener;
-import org.jboss.soa.esb.listeners.config.xbeanmodel110.JbrListenerDocument.JbrListener;
-import org.jboss.soa.esb.listeners.config.xbeanmodel110.JmsBusDocument.JmsBus;
-import org.jboss.soa.esb.listeners.config.xbeanmodel110.JmsJcaProviderDocument.JmsJcaProvider;
-import org.jboss.soa.esb.listeners.config.xbeanmodel110.JmsListenerDocument.JmsListener;
-import org.jboss.soa.esb.listeners.config.xbeanmodel110.JmsMessageFilterDocument.JmsMessageFilter;
-import org.jboss.soa.esb.listeners.config.xbeanmodel110.ServiceDocument.Service;
-import org.jboss.soa.esb.listeners.config.xbeanmodel110.SqlBusDocument.SqlBus;
-import org.jboss.soa.esb.listeners.config.xbeanmodel110.SqlListenerDocument.SqlListener;
-import org.jboss.soa.esb.listeners.config.xbeanmodel110.SqlProviderDocument.SqlProvider;
-import org.jboss.soa.esb.listeners.config.xbeanmodel110.ScheduledListenerDocument.ScheduledListener;
-import org.jboss.soa.esb.listeners.ListenerTagNames;
-import org.jboss.soa.esb.listeners.message.MessageAwareListener;
-import org.w3c.dom.Document;
-import org.w3c.dom.Element;
-
-/**
- * ESB Aware Listeners Configuration Generator.
- * <p/>
- * Generates a "ConfigTree" style configuration for the ESB Aware Listeners.
- *
- * @author <a href="mailto:tom.fennelly at jboss.com">tom.fennelly at jboss.com</a>
- */
-public class ESBAwareGenerator {
-
- private static final Logger logger = Logger.getLogger(ESBAwareGenerator.class);
-
- /**
- * XMLBeans based configuration model instance.
- */
- private XMLBeansModel model;
-
- /**
- * Public constructor.
- * @param model XMLBeans based configuration model instance.
- */
- public ESBAwareGenerator(XMLBeansModel model) {
- this.model = model;
- }
-
- /**
- * Generate the configuration DOM for the target Server.
- * @return The configuration DOM.
- * @throws ConfigurationException Error creating configuration.
- */
- public Document generate() throws ConfigurationException {
- Document doc = YADOMUtil.createDocument();
- Element root;
-
- doc.appendChild(doc.createComment("\n\tNOTE: DO NOT MODIFY\n\tThis file was auto-generated.\n"));
- root = YADOMUtil.addElement(doc, "jbossesb-listeners");
- root.setAttribute("parameterReloadSecs", model.getParameterReloadSecs());
-
- // Add an InVM listener for each service...
- List<Service> services = model.getServices();
- for (int i = 0; i < services.size(); i++) {
- Service service = services.get(i);
- if(model.exposesInVMListener(service)) {
- addInVMListener(root, service, i);
- }
- }
-
- // Iterate over all the ESB Aware listner configs and map them to the listener configuration...
- List<Listener> listeners = model.getESBAwareListeners();
- for(Listener listener : listeners) {
- addESBAwareConfig(root, listener);
- }
-
- return doc;
- }
-
- private void addInVMListener(Element root, Service service, int serviceIndex) throws ConfigurationException {
- Element listenerNode = YADOMUtil.addElement(root, "InVM-" + serviceIndex);
- Element properties = listenerNode.getOwnerDocument().createElement("properties");
-
- MapperUtil.mapListenerServiceAttributes(listenerNode, service, false);
- listenerNode.setAttribute(ListenerTagNames.LISTENER_CLASS_TAG, MessageAwareListener.class.getName());
-
- Element eprNode = YADOMUtil.addElement(listenerNode, ListenerTagNames.EPR_TAG);
- eprNode.setAttribute(ListenerTagNames.PROTOCOL_TAG, InVMEpr.INVM_PROTOCOL);
-
- MapperUtil.mapProperties(service.getPropertyList(), properties);
- eprNode.setAttribute(ListenerTagNames.URL_TAG, InVMEpr.INVM_PROTOCOL + "://"
- + InVMEpr.createEncodedServiceId(service.getCategory(), service.getName())
- + "/" + YADOMUtil.getAttribute(properties, "inVMPassByValue", "false")
- + "?" + YADOMUtil.getAttribute(properties, "inVMLockStep", "false")
- + "#" + YADOMUtil.getAttribute(properties, "inVMLockStepTimeout", "10000"));
-
- listenerNode.setAttribute(ListenerTagNames.MAX_THREADS_TAG, YADOMUtil.getAttribute(properties, ListenerTagNames.MAX_THREADS_TAG, "1"));
-
- listenerNode.setAttribute(ListenerTagNames.TRANSACTED_TAG, Boolean.toString(getInVMTransacted(service))) ;
- YADOMUtil.removeEmptyAttributes(eprNode);
-
- ActionMapper.map(listenerNode, service, model);
- }
-
- /**
- * Try to find the InVM transacted value. Check to see if the transacted attribute
- * has been explicitly set on the service. If it has not been explicitly set then we
- * check to see if any of the listener/bus configurations are transacted and assume the
- * InVM is implicitly transacted.
- *
- * @param service The current service.
- * @return true if transacted, false otherwise.
- */
- private boolean getInVMTransacted(final Service service)
- throws ConfigurationException
- {
- if (service.isSetInvmScope()) {
- return service.getInvmTransacted() ;
- } else if (service.isSetListeners()) {
- for (Listener listener: service.getListeners().getListenerList()) {
- if (listener instanceof ScheduledListener) {
- if (((ScheduledListener)listener).getTransacted())
- return true ;
- }
- else if (listener instanceof JmsListener) {
- final Bus bus = model.getBus(listener.getBusidref()) ;
- if (!(bus instanceof JmsBus))
- continue ;
-
- final Provider provider = model.getProvider(bus) ;
- if (provider instanceof JmsJcaProvider) {
- // Jms JCA provider defaults to true
- final JmsJcaProvider jmsJcaProvider = (JmsJcaProvider)provider ;
- if (!jmsJcaProvider.isSetTransacted() || jmsJcaProvider.getTransacted())
- return true ;
- } else if (provider instanceof JmsProviderType) {
- JmsMessageFilter filter = ((JmsListener)listener).getJmsMessageFilter() ;
- if (filter == null)
- filter = ((JmsBus)bus).getJmsMessageFilter() ;
- if ((filter != null) && filter.getTransacted())
- return true ;
- }
- } else if (listener instanceof SqlListener) {
- final Bus bus = model.getBus(listener.getBusidref()) ;
- if (!(bus instanceof SqlBus))
- continue ;
-
- final Provider provider = model.getProvider(bus) ;
- if ((provider instanceof SqlProvider) && ((SqlProvider)provider).getTransacted())
- return true ;
- }
- }
- }
- return false ;
- }
-
- /**
- * Add a single ESB Aware Listener configuration node to configuration root.
- * @param root Configuration root node.
- * @param listener The ESB Aware Listener configuration to be added.
- * @throws ConfigurationException Invalid listener configuration.
- */
- private void addESBAwareConfig(Element root, Listener listener) throws ConfigurationException {
- Element listenerConfigTree;
- Service listenerService;
-
- // Of course we could do the following reflectively if we really want to - TODO perhaps!!
- if(listener instanceof JmsListener) {
- listenerConfigTree = JmsListenerMapper.map(root, (JmsListener)listener, model);
- } else if (listener instanceof ScheduledListener) {
- listenerConfigTree = ScheduledListenerMapper.map(root, (ScheduledListener) listener, model);
- } else if(listener instanceof FsListener) {
- listenerConfigTree = FsListenerMapper.map(root, (FsListener)listener, model);
- } else if (listener instanceof FtpListener) {
- listenerConfigTree = FtpListenerMapper.map(root, (FtpListener)listener, model);
- } else if (listener instanceof SqlListener) {
- listenerConfigTree = SqlListenerMapper.map(root, (SqlListener)listener, model);
- } else if (listener instanceof JbrListener) {
- logger.error("JbossRemoting listener only supported in Gateway mode.");
- return;
- } else if (listener instanceof GroovyListener) {
- listenerConfigTree = GroovyListenerMapper.map(root, (GroovyListener)listener, model);
- } else {
- listenerConfigTree = UntypedListenerMapper.map(root, listener, model);
- }
-
- if (listener instanceof AbstractScheduledListener) {
- ScheduleMapper.map(listenerConfigTree, (AbstractScheduledListener) listener, model);
- }
-
- // Locate the Service to which the listener is bound...
- listenerService = model.getService(listener);
-
- // Map the actions and notiications...
- ActionMapper.map(listenerConfigTree, listenerService, model);
- NotificationMapper.map(listenerConfigTree, listenerService, model);
- }
-}
Copied: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers110/ESBAwareGenerator.java (from rev 24846, labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers110/ESBAwareGenerator.java)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers110/ESBAwareGenerator.java (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers110/ESBAwareGenerator.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -0,0 +1,226 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and others contributors as indicated
+ * by the @authors tag. All rights reserved.
+ * See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License, v. 2.1.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+ * PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
+ * You should have received a copy of the GNU Lesser General Public License,
+ * v.2.1 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301, USA.
+ *
+ * (C) 2005-2006,
+ * @author JBoss Inc.
+ */
+
+package org.jboss.soa.esb.listeners.config.mappers110;
+
+import java.util.List;
+
+import org.apache.log4j.Logger;
+import org.jboss.soa.esb.ConfigurationException;
+import org.jboss.soa.esb.addressing.eprs.InVMEpr;
+import org.jboss.soa.esb.dom.YADOMUtil;
+import org.jboss.soa.esb.listeners.config.xbeanmodel110.AbstractScheduledListener;
+import org.jboss.soa.esb.listeners.config.xbeanmodel110.Bus;
+import org.jboss.soa.esb.listeners.config.xbeanmodel110.JmsProviderType;
+import org.jboss.soa.esb.listeners.config.xbeanmodel110.Listener;
+import org.jboss.soa.esb.listeners.config.xbeanmodel110.Provider;
+import org.jboss.soa.esb.listeners.config.xbeanmodel110.FsListenerDocument.FsListener;
+import org.jboss.soa.esb.listeners.config.xbeanmodel110.FtpListenerDocument.FtpListener;
+import org.jboss.soa.esb.listeners.config.xbeanmodel110.GroovyListenerDocument.GroovyListener;
+import org.jboss.soa.esb.listeners.config.xbeanmodel110.JbrListenerDocument.JbrListener;
+import org.jboss.soa.esb.listeners.config.xbeanmodel110.JmsBusDocument.JmsBus;
+import org.jboss.soa.esb.listeners.config.xbeanmodel110.JmsJcaProviderDocument.JmsJcaProvider;
+import org.jboss.soa.esb.listeners.config.xbeanmodel110.JmsListenerDocument.JmsListener;
+import org.jboss.soa.esb.listeners.config.xbeanmodel110.JmsMessageFilterDocument.JmsMessageFilter;
+import org.jboss.soa.esb.listeners.config.xbeanmodel110.ServiceDocument.Service;
+import org.jboss.soa.esb.listeners.config.xbeanmodel110.SqlBusDocument.SqlBus;
+import org.jboss.soa.esb.listeners.config.xbeanmodel110.SqlListenerDocument.SqlListener;
+import org.jboss.soa.esb.listeners.config.xbeanmodel110.SqlProviderDocument.SqlProvider;
+import org.jboss.soa.esb.listeners.config.xbeanmodel110.ScheduledListenerDocument.ScheduledListener;
+import org.jboss.soa.esb.listeners.ListenerTagNames;
+import org.jboss.soa.esb.listeners.message.MessageAwareListener;
+import org.w3c.dom.Document;
+import org.w3c.dom.Element;
+
+/**
+ * ESB Aware Listeners Configuration Generator.
+ * <p/>
+ * Generates a "ConfigTree" style configuration for the ESB Aware Listeners.
+ *
+ * @author <a href="mailto:tom.fennelly at jboss.com">tom.fennelly at jboss.com</a>
+ */
+public class ESBAwareGenerator {
+
+ private static final Logger logger = Logger.getLogger(ESBAwareGenerator.class);
+
+ /**
+ * XMLBeans based configuration model instance.
+ */
+ private XMLBeansModel model;
+
+ /**
+ * Public constructor.
+ * @param model XMLBeans based configuration model instance.
+ */
+ public ESBAwareGenerator(XMLBeansModel model) {
+ this.model = model;
+ }
+
+ /**
+ * Generate the configuration DOM for the target Server.
+ * @return The configuration DOM.
+ * @throws ConfigurationException Error creating configuration.
+ */
+ public Document generate() throws ConfigurationException {
+ Document doc = YADOMUtil.createDocument();
+ Element root;
+
+ doc.appendChild(doc.createComment("\n\tNOTE: DO NOT MODIFY\n\tThis file was auto-generated.\n"));
+ root = YADOMUtil.addElement(doc, "jbossesb-listeners");
+ root.setAttribute("parameterReloadSecs", model.getParameterReloadSecs());
+
+ // Add an InVM listener for each service...
+ List<Service> services = model.getServices();
+ for (int i = 0; i < services.size(); i++) {
+ Service service = services.get(i);
+ if(model.exposesInVMListener(service)) {
+ addInVMListener(root, service, i);
+ }
+ }
+
+ // Iterate over all the ESB Aware listner configs and map them to the listener configuration...
+ List<Listener> listeners = model.getESBAwareListeners();
+ for(Listener listener : listeners) {
+ addESBAwareConfig(root, listener);
+ }
+
+ return doc;
+ }
+
+ private void addInVMListener(Element root, Service service, int serviceIndex) throws ConfigurationException {
+ Element listenerNode = YADOMUtil.addElement(root, "InVM-" + serviceIndex);
+ Element properties = listenerNode.getOwnerDocument().createElement("properties");
+
+ MapperUtil.mapListenerServiceAttributes(listenerNode, service, false);
+ listenerNode.setAttribute(ListenerTagNames.LISTENER_CLASS_TAG, MessageAwareListener.class.getName());
+
+ Element eprNode = YADOMUtil.addElement(listenerNode, ListenerTagNames.EPR_TAG);
+ eprNode.setAttribute(ListenerTagNames.PROTOCOL_TAG, InVMEpr.INVM_PROTOCOL);
+
+ MapperUtil.mapProperties(service.getPropertyList(), properties);
+ eprNode.setAttribute(ListenerTagNames.URL_TAG, InVMEpr.INVM_PROTOCOL + "://"
+ + InVMEpr.createEncodedServiceId(service.getCategory(), service.getName())
+ + "/" + YADOMUtil.getAttribute(properties, "inVMPassByValue", "false")
+ + "?" + YADOMUtil.getAttribute(properties, "inVMLockStep", "false")
+ + "#" + YADOMUtil.getAttribute(properties, "inVMLockStepTimeout", "10000"));
+
+ listenerNode.setAttribute(ListenerTagNames.MAX_THREADS_TAG, YADOMUtil.getAttribute(properties, ListenerTagNames.MAX_THREADS_TAG, "1"));
+
+ listenerNode.setAttribute(ListenerTagNames.TRANSACTED_TAG, Boolean.toString(getInVMTransacted(service))) ;
+ YADOMUtil.removeEmptyAttributes(eprNode);
+
+ ActionMapper.map(listenerNode, service, model);
+ }
+
+ /**
+ * Try to find the InVM transacted value. Check to see if the transacted attribute
+ * has been explicitly set on the service. If it has not been explicitly set then we
+ * check to see if any of the listener/bus configurations are transacted and assume the
+ * InVM is implicitly transacted.
+ *
+ * @param service The current service.
+ * @return true if transacted, false otherwise.
+ */
+ private boolean getInVMTransacted(final Service service)
+ throws ConfigurationException
+ {
+ if (service.isSetInvmScope()) {
+ return service.getInvmTransacted() ;
+ } else if (service.isSetListeners()) {
+ for (Listener listener: service.getListeners().getListenerList()) {
+ if (listener instanceof ScheduledListener) {
+ if (((ScheduledListener)listener).getTransacted())
+ return true ;
+ }
+ else if (listener instanceof JmsListener) {
+ final Bus bus = model.getBus(listener.getBusidref()) ;
+ if (!(bus instanceof JmsBus))
+ continue ;
+
+ final Provider provider = model.getProvider(bus) ;
+ if (provider instanceof JmsJcaProvider) {
+ // Jms JCA provider defaults to true
+ final JmsJcaProvider jmsJcaProvider = (JmsJcaProvider)provider ;
+ if (!jmsJcaProvider.isSetTransacted() || jmsJcaProvider.getTransacted())
+ return true ;
+ } else if (provider instanceof JmsProviderType) {
+ JmsMessageFilter filter = ((JmsListener)listener).getJmsMessageFilter() ;
+ if (filter == null)
+ filter = ((JmsBus)bus).getJmsMessageFilter() ;
+ if ((filter != null) && filter.getTransacted())
+ return true ;
+ }
+ } else if (listener instanceof SqlListener) {
+ final Bus bus = model.getBus(listener.getBusidref()) ;
+ if (!(bus instanceof SqlBus))
+ continue ;
+
+ final Provider provider = model.getProvider(bus) ;
+ if ((provider instanceof SqlProvider) && ((SqlProvider)provider).getTransacted())
+ return true ;
+ }
+ }
+ }
+ return false ;
+ }
+
+ /**
+ * Add a single ESB Aware Listener configuration node to configuration root.
+ * @param root Configuration root node.
+ * @param listener The ESB Aware Listener configuration to be added.
+ * @throws ConfigurationException Invalid listener configuration.
+ */
+ private void addESBAwareConfig(Element root, Listener listener) throws ConfigurationException {
+ Element listenerConfigTree;
+ Service listenerService;
+
+ // Of course we could do the following reflectively if we really want to - TODO perhaps!!
+ if(listener instanceof JmsListener) {
+ listenerConfigTree = JmsListenerMapper.map(root, (JmsListener)listener, model);
+ } else if (listener instanceof ScheduledListener) {
+ listenerConfigTree = ScheduledListenerMapper.map(root, (ScheduledListener) listener, model);
+ } else if(listener instanceof FsListener) {
+ listenerConfigTree = FsListenerMapper.map(root, (FsListener)listener, model);
+ } else if (listener instanceof FtpListener) {
+ listenerConfigTree = FtpListenerMapper.map(root, (FtpListener)listener, model);
+ } else if (listener instanceof SqlListener) {
+ listenerConfigTree = SqlListenerMapper.map(root, (SqlListener)listener, model);
+ } else if (listener instanceof JbrListener) {
+ logger.error("JbossRemoting listener only supported in Gateway mode.");
+ return;
+ } else if (listener instanceof GroovyListener) {
+ listenerConfigTree = GroovyListenerMapper.map(root, (GroovyListener)listener, model);
+ } else {
+ listenerConfigTree = UntypedListenerMapper.map(root, listener, model);
+ }
+
+ if (listener instanceof AbstractScheduledListener) {
+ ScheduleMapper.map(listenerConfigTree, (AbstractScheduledListener) listener, model);
+ }
+
+ // Locate the Service to which the listener is bound...
+ listenerService = model.getService(listener);
+
+ // Map the actions and notiications...
+ ActionMapper.map(listenerConfigTree, listenerService, model);
+ NotificationMapper.map(listenerConfigTree, listenerService, model);
+ }
+}
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers110/FsListenerMapper.java
===================================================================
--- labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers110/FsListenerMapper.java 2009-01-21 09:35:03 UTC (rev 24846)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers110/FsListenerMapper.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -1,120 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2006, JBoss Inc., and others contributors as indicated
- * by the @authors tag. All rights reserved.
- * See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- * This copyrighted material is made available to anyone wishing to use,
- * modify, copy, or redistribute it subject to the terms and conditions
- * of the GNU Lesser General Public License, v. 2.1.
- * This program is distributed in the hope that it will be useful, but WITHOUT A
- * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
- * PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
- * You should have received a copy of the GNU Lesser General Public License,
- * v.2.1 along with this distribution; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
- * MA 02110-1301, USA.
- *
- * (C) 2005-2006,
- */
-
-package org.jboss.soa.esb.listeners.config.mappers110;
-
-import java.io.File;
-
-import org.jboss.soa.esb.ConfigurationException;
-import org.jboss.soa.esb.addressing.eprs.FileEpr;
-import org.jboss.soa.esb.dom.YADOMUtil;
-import org.jboss.soa.esb.listeners.ListenerTagNames;
-import org.jboss.soa.esb.listeners.config.xbeanmodel110.FsBusDocument.FsBus;
-import org.jboss.soa.esb.listeners.config.xbeanmodel110.FsListenerDocument.FsListener;
-import org.jboss.soa.esb.listeners.config.xbeanmodel110.FsMessageFilterDocument.FsMessageFilter;
-import org.jboss.soa.esb.listeners.config.xbeanmodel110.FsProviderDocument.FsProvider;
-import org.jboss.soa.esb.listeners.gateway.FileGatewayListener;
-import org.w3c.dom.Element;
-
-/**
- * Performs the mapping of a <fs-listener> XSD based configuration to the "ConfigTree"
- * style configuration, adding the "ConfigTree" listener config to the "root" node.
- *
- * @author <a href="mailto:kurt.stam at jboss.com">kurt.stam at jboss.com</a>
- */
-public class FsListenerMapper {
-
- /**
- * Perform the mapping.
- * @param root The "ConfigTree" configuration root node.
- * @param listener The Jmslistener to be mapped into the ConfigTree.
- * @param model The configuration model from which the mapping is being performed.
- * @return The ConfigTree listener configuration node.
- * @throws ConfigurationException Invalid listener configuration.
- */
- public static Element map(Element root, FsListener listener, XMLBeansModel model) throws ConfigurationException {
- Element listenerNode = YADOMUtil.addElement(root, "listener");
- FsBus bus;
- FsProvider provider;
-
- listenerNode.setAttribute("name", listener.getName());
-
- try {
- bus = (FsBus) model.getBus(listener.getBusidref());
- } catch (ClassCastException e) {
- throw new ConfigurationException("Invalid busid reference [" + listener.getBusidref() + "] on listener [" + listener.getName() + "]. A <fs-listener> must reference a <fs-bus>.");
- }
- try {
- provider = (FsProvider) model.getProvider(bus);
- } catch (ClassCastException e) {
- throw new ConfigurationException("Invalid bus config [" + listener.getBusidref() + "]. Should be contained within a <fs-provider> instance. Unexpected exception - this should have caused a validation error!");
- }
-
- FsMessageFilter messageFilter = listener.getFsMessageFilter();
- if(messageFilter == null) {
- messageFilter = bus.getFsMessageFilter();
- if(messageFilter == null) {
- throw new ConfigurationException("No <fs-detination> defined on either <fs-listener> [" + listener.getName() + "] or <fs-bus> [" + bus.getBusid() + "].");
- }
- }
- // Map the standard listener attributes - common across all listener types...
- MapperUtil.mapDefaultAttributes(listener, listenerNode, model);
- // Map the <property> elements targeted at the listener - from the listener itself.
- MapperUtil.mapProperties(listener.getPropertyList(), listenerNode);
- if(listener.getIsGateway()) {
- listenerNode.setAttribute("gatewayClass", FileGatewayListener.class.getName());
- // Map EPR related attributes onto the listener - from the bus and provider and listener.
- // Note: This will change - the Gateways will also support the EPR element...
- mapFsEprProperties(listenerNode, provider, messageFilter);
- MapperUtil.mapEPRProperties(listener, listenerNode, model);
- } else {
- Element eprNode = YADOMUtil.addElement(listenerNode, ListenerTagNames.EPR_TAG);
-
- // Map EPR related attributes onto the EPR - from the bus and provider and listener...
- mapFsEprProperties(eprNode, provider, messageFilter);
- MapperUtil.mapEPRProperties(listener, eprNode, model);
- // Remove any empty attributes set on the EPR config...
- YADOMUtil.removeEmptyAttributes(eprNode);
- }
-
- // Remove any empty attributes set on the listener config...
- YADOMUtil.removeEmptyAttributes(listenerNode);
-
- return listenerNode;
- }
-
- private static void mapFsEprProperties(Element toElement, FsProvider provider, FsMessageFilter messageFilter) {
- final File directory = new File(messageFilter.getDirectory()) ;
- toElement.setAttribute(ListenerTagNames.URL_TAG, directory.toURI().toString());
- toElement.setAttribute(FileEpr.INPUT_SUFFIX_TAG, messageFilter.getInputSuffix());
- toElement.setAttribute(FileEpr.WORK_SUFFIX_TAG, messageFilter.getWorkSuffix());
- toElement.setAttribute(FileEpr.POST_DEL_TAG, String.valueOf(messageFilter.getPostDelete()));
- toElement.setAttribute(FileEpr.POST_RENAME_TAG, String.valueOf(messageFilter.getPostRename()));
- if (!messageFilter.getPostDelete()) {
- toElement.setAttribute(FileEpr.POST_DIR_TAG, messageFilter.getPostDirectory());
- toElement.setAttribute(FileEpr.POST_SUFFIX_TAG, messageFilter.getPostSuffix());
- }
- toElement.setAttribute(FileEpr.ERROR_DEL_TAG, String.valueOf(messageFilter.getErrorDelete()));
- if (!messageFilter.getErrorDelete()) {
- toElement.setAttribute(FileEpr.ERROR_DIR_TAG, messageFilter.getErrorDirectory());
- toElement.setAttribute(FileEpr.ERROR_SUFFIX_TAG, messageFilter.getErrorSuffix());
- }
- }
-}
Copied: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers110/FsListenerMapper.java (from rev 24846, labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers110/FsListenerMapper.java)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers110/FsListenerMapper.java (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers110/FsListenerMapper.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -0,0 +1,120 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and others contributors as indicated
+ * by the @authors tag. All rights reserved.
+ * See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License, v. 2.1.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+ * PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
+ * You should have received a copy of the GNU Lesser General Public License,
+ * v.2.1 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301, USA.
+ *
+ * (C) 2005-2006,
+ */
+
+package org.jboss.soa.esb.listeners.config.mappers110;
+
+import java.io.File;
+
+import org.jboss.soa.esb.ConfigurationException;
+import org.jboss.soa.esb.addressing.eprs.FileEpr;
+import org.jboss.soa.esb.dom.YADOMUtil;
+import org.jboss.soa.esb.listeners.ListenerTagNames;
+import org.jboss.soa.esb.listeners.config.xbeanmodel110.FsBusDocument.FsBus;
+import org.jboss.soa.esb.listeners.config.xbeanmodel110.FsListenerDocument.FsListener;
+import org.jboss.soa.esb.listeners.config.xbeanmodel110.FsMessageFilterDocument.FsMessageFilter;
+import org.jboss.soa.esb.listeners.config.xbeanmodel110.FsProviderDocument.FsProvider;
+import org.jboss.soa.esb.listeners.gateway.FileGatewayListener;
+import org.w3c.dom.Element;
+
+/**
+ * Performs the mapping of a <fs-listener> XSD based configuration to the "ConfigTree"
+ * style configuration, adding the "ConfigTree" listener config to the "root" node.
+ *
+ * @author <a href="mailto:kurt.stam at jboss.com">kurt.stam at jboss.com</a>
+ */
+public class FsListenerMapper {
+
+ /**
+ * Perform the mapping.
+ * @param root The "ConfigTree" configuration root node.
+ * @param listener The Jmslistener to be mapped into the ConfigTree.
+ * @param model The configuration model from which the mapping is being performed.
+ * @return The ConfigTree listener configuration node.
+ * @throws ConfigurationException Invalid listener configuration.
+ */
+ public static Element map(Element root, FsListener listener, XMLBeansModel model) throws ConfigurationException {
+ Element listenerNode = YADOMUtil.addElement(root, "listener");
+ FsBus bus;
+ FsProvider provider;
+
+ listenerNode.setAttribute("name", listener.getName());
+
+ try {
+ bus = (FsBus) model.getBus(listener.getBusidref());
+ } catch (ClassCastException e) {
+ throw new ConfigurationException("Invalid busid reference [" + listener.getBusidref() + "] on listener [" + listener.getName() + "]. A <fs-listener> must reference a <fs-bus>.");
+ }
+ try {
+ provider = (FsProvider) model.getProvider(bus);
+ } catch (ClassCastException e) {
+ throw new ConfigurationException("Invalid bus config [" + listener.getBusidref() + "]. Should be contained within a <fs-provider> instance. Unexpected exception - this should have caused a validation error!");
+ }
+
+ FsMessageFilter messageFilter = listener.getFsMessageFilter();
+ if(messageFilter == null) {
+ messageFilter = bus.getFsMessageFilter();
+ if(messageFilter == null) {
+ throw new ConfigurationException("No <fs-detination> defined on either <fs-listener> [" + listener.getName() + "] or <fs-bus> [" + bus.getBusid() + "].");
+ }
+ }
+ // Map the standard listener attributes - common across all listener types...
+ MapperUtil.mapDefaultAttributes(listener, listenerNode, model);
+ // Map the <property> elements targeted at the listener - from the listener itself.
+ MapperUtil.mapProperties(listener.getPropertyList(), listenerNode);
+ if(listener.getIsGateway()) {
+ listenerNode.setAttribute("gatewayClass", FileGatewayListener.class.getName());
+ // Map EPR related attributes onto the listener - from the bus and provider and listener.
+ // Note: This will change - the Gateways will also support the EPR element...
+ mapFsEprProperties(listenerNode, provider, messageFilter);
+ MapperUtil.mapEPRProperties(listener, listenerNode, model);
+ } else {
+ Element eprNode = YADOMUtil.addElement(listenerNode, ListenerTagNames.EPR_TAG);
+
+ // Map EPR related attributes onto the EPR - from the bus and provider and listener...
+ mapFsEprProperties(eprNode, provider, messageFilter);
+ MapperUtil.mapEPRProperties(listener, eprNode, model);
+ // Remove any empty attributes set on the EPR config...
+ YADOMUtil.removeEmptyAttributes(eprNode);
+ }
+
+ // Remove any empty attributes set on the listener config...
+ YADOMUtil.removeEmptyAttributes(listenerNode);
+
+ return listenerNode;
+ }
+
+ private static void mapFsEprProperties(Element toElement, FsProvider provider, FsMessageFilter messageFilter) {
+ final File directory = new File(messageFilter.getDirectory()) ;
+ toElement.setAttribute(ListenerTagNames.URL_TAG, directory.toURI().toString());
+ toElement.setAttribute(FileEpr.INPUT_SUFFIX_TAG, messageFilter.getInputSuffix());
+ toElement.setAttribute(FileEpr.WORK_SUFFIX_TAG, messageFilter.getWorkSuffix());
+ toElement.setAttribute(FileEpr.POST_DEL_TAG, String.valueOf(messageFilter.getPostDelete()));
+ toElement.setAttribute(FileEpr.POST_RENAME_TAG, String.valueOf(messageFilter.getPostRename()));
+ if (!messageFilter.getPostDelete()) {
+ toElement.setAttribute(FileEpr.POST_DIR_TAG, messageFilter.getPostDirectory());
+ toElement.setAttribute(FileEpr.POST_SUFFIX_TAG, messageFilter.getPostSuffix());
+ }
+ toElement.setAttribute(FileEpr.ERROR_DEL_TAG, String.valueOf(messageFilter.getErrorDelete()));
+ if (!messageFilter.getErrorDelete()) {
+ toElement.setAttribute(FileEpr.ERROR_DIR_TAG, messageFilter.getErrorDirectory());
+ toElement.setAttribute(FileEpr.ERROR_SUFFIX_TAG, messageFilter.getErrorSuffix());
+ }
+ }
+}
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers110/FtpListenerMapper.java
===================================================================
--- labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers110/FtpListenerMapper.java 2009-01-21 09:35:03 UTC (rev 24846)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers110/FtpListenerMapper.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -1,148 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2006, JBoss Inc., and others contributors as indicated
- * by the @authors tag. All rights reserved.
- * See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- * This copyrighted material is made available to anyone wishing to use,
- * modify, copy, or redistribute it subject to the terms and conditions
- * of the GNU Lesser General Public License, v. 2.1.
- * This program is distributed in the hope that it will be useful, but WITHOUT A
- * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
- * PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
- * You should have received a copy of the GNU Lesser General Public License,
- * v.2.1 along with this distribution; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
- * MA 02110-1301, USA.
- *
- * (C) 2005-2006,
- */
-
-package org.jboss.soa.esb.listeners.config.mappers110;
-
-import org.jboss.soa.esb.ConfigurationException;
-import org.jboss.soa.esb.addressing.eprs.FTPEpr;
-import org.jboss.soa.esb.addressing.eprs.FTPSEpr;
-import org.jboss.soa.esb.addressing.eprs.SFTPEpr;
-import org.jboss.soa.esb.dom.YADOMUtil;
-import org.jboss.soa.esb.listeners.ListenerTagNames;
-import org.jboss.soa.esb.listeners.config.xbeanmodel110.FtpBusDocument.FtpBus;
-import org.jboss.soa.esb.listeners.config.xbeanmodel110.FtpListenerDocument.FtpListener;
-import org.jboss.soa.esb.listeners.config.xbeanmodel110.FtpMessageFilterDocument.FtpMessageFilter;
-import org.jboss.soa.esb.listeners.config.xbeanmodel110.FtpMessageFilterDocument.FtpMessageFilter.Protocol;
-import org.jboss.soa.esb.listeners.config.xbeanmodel110.FtpProviderDocument.FtpProvider;
-import org.jboss.soa.esb.listeners.gateway.ReadOnlyRemoteGatewayListener;
-import org.jboss.soa.esb.listeners.gateway.RemoteGatewayListener;
-import org.w3c.dom.Element;
-
-/**
- * Performs the mapping of a <fs-listener> XSD based configuration to the "ConfigTree"
- * style configuration, adding the "ConfigTree" listener config to the "root" node.
- *
- * @author <a href="mailto:kurt.stam at jboss.com">kurt.stam at jboss.com</a>
- */
-public class FtpListenerMapper {
-
- /**
- * Perform the mapping.
- * @param root The "ConfigTree" configuration root node.
- * @param listener The Jmslistener to be mapped into the ConfigTree.
- * @param model The configuration model from which the mapping is being performed.
- * @return The ConfigTree listener configuration node.
- * @throws ConfigurationException Invalid listener configuration.
- */
- public static Element map(Element root, FtpListener listener, XMLBeansModel model) throws ConfigurationException {
- Element listenerNode = YADOMUtil.addElement(root, "listener");
- FtpBus bus;
- FtpProvider provider;
-
- listenerNode.setAttribute("name", listener.getName());
-
- try {
- bus = (FtpBus) model.getBus(listener.getBusidref());
- } catch (ClassCastException e) {
- throw new ConfigurationException("Invalid busid reference [" + listener.getBusidref() + "] on listener [" + listener.getName() + "]. A <ftp-listener> must reference a <ftp-bus>.");
- }
- try {
- provider = (FtpProvider) model.getProvider(bus);
- } catch (ClassCastException e) {
- throw new ConfigurationException("Invalid bus config [" + listener.getBusidref() + "]. Should be contained within a <ftp-provider> instance. Unexpected exception - this should have caused a validation error!");
- }
-
- FtpMessageFilter messageFilter = listener.getFtpMessageFilter();
- if(messageFilter == null) {
- messageFilter = bus.getFtpMessageFilter();
- if(messageFilter == null) {
- throw new ConfigurationException("No <ftp-detination> defined on either <ftp-listener> [" + listener.getName() + "] or <ftp-bus> [" + bus.getBusid() + "].");
- }
- }
- // Map the standard listener attributes - common across all listener types...
- MapperUtil.mapDefaultAttributes(listener, listenerNode, model);
- // Map the <property> elements targeted at the listener - from the listener itself.
- MapperUtil.mapProperties(listener.getPropertyList(), listenerNode);
- if(listener.getIsGateway()) {
- if ( messageFilter.getReadOnly() )
- listenerNode.setAttribute("gatewayClass", ReadOnlyRemoteGatewayListener.class.getName());
- else
- listenerNode.setAttribute("gatewayClass", RemoteGatewayListener.class.getName());
- // Map EPR related attributes onto the listener - from the bus and provider and listener.
- // Note: This will change - the Gateways will also support the EPR element...
- mapFtpEprProperties(listenerNode, provider, messageFilter);
- MapperUtil.mapEPRProperties(listener, listenerNode, model);
- } else {
- Element eprNode = YADOMUtil.addElement(listenerNode, ListenerTagNames.EPR_TAG);
-
- // Map EPR related attributes onto the EPR - from the bus and provider and listener...
- mapFtpEprProperties(eprNode, provider, messageFilter);
- MapperUtil.mapEPRProperties(listener, eprNode, model);
- // Remove any empty attributes set on the EPR config...
- YADOMUtil.removeEmptyAttributes(eprNode);
- }
-
- // Remove any empty attributes set on the listener config...
- YADOMUtil.removeEmptyAttributes(listenerNode);
-
- return listenerNode;
- }
-
- /**
- * The separator used by the ftp protocol to separate the
- * host:port section from the path
- */
- private static final String FTP_SEPARATOR = "/";
-
- private static void mapFtpEprProperties(Element toElement, FtpProvider provider, FtpMessageFilter messageFilter)
- {
- String inputDir = messageFilter.getDirectory();
- if ( ! inputDir.startsWith( FTP_SEPARATOR ) )
- inputDir = FTP_SEPARATOR + inputDir;
-
- final String filterPassword = messageFilter.getPassword() ;
- final String urlPassword = (filterPassword == null ? "" : ":" + filterPassword) ;
- toElement.setAttribute(ListenerTagNames.URL_TAG, messageFilter.getProtocol() + "://" + messageFilter.getUsername()
- + urlPassword + "@" + provider.getHostname() + inputDir );
- toElement.setAttribute(FTPEpr.INPUT_SUFFIX_TAG, messageFilter.getInputSuffix());
- toElement.setAttribute(FTPEpr.WORK_SUFFIX_TAG, messageFilter.getWorkSuffix());
- toElement.setAttribute(FTPEpr.POST_DEL_TAG, String.valueOf(messageFilter.getPostDelete()));
- toElement.setAttribute(FTPEpr.POST_RENAME_TAG, String.valueOf(messageFilter.getPostRename()));
-
- if (!messageFilter.getPostDelete()) {
- toElement.setAttribute(FTPEpr.POST_DIR_TAG, messageFilter.getPostDirectory());
- toElement.setAttribute(FTPEpr.POST_SUFFIX_TAG, messageFilter.getPostSuffix());
- }
- toElement.setAttribute(FTPEpr.ERROR_DEL_TAG, String.valueOf(messageFilter.getErrorDelete()));
- if (!messageFilter.getErrorDelete()) {
- toElement.setAttribute(FTPEpr.ERROR_DIR_TAG, messageFilter.getErrorDirectory());
- toElement.setAttribute(FTPEpr.ERROR_SUFFIX_TAG, messageFilter.getErrorSuffix());
- }
- toElement.setAttribute(FTPEpr.PASSIVE_TAG, String.valueOf(messageFilter.getPassive()));
- if (Protocol.SFTP.equals(messageFilter.getProtocol())) {
- toElement.setAttribute(SFTPEpr.CERTIFICATE_TAG, messageFilter.getCertificateUrl());
- toElement.setAttribute(SFTPEpr.PASSPHRASE_TAG, messageFilter.getCertificatePassphrase()) ;
- }
- if (Protocol.FTPS.equals(messageFilter.getProtocol())) {
- toElement.setAttribute(FTPSEpr.CERTIFICATE_TAG, messageFilter.getCertificateUrl());
- toElement.setAttribute(FTPSEpr.CERTIFICATE_NAME_TAG, messageFilter.getCertificateName());
- }
- }
-}
Copied: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers110/FtpListenerMapper.java (from rev 24846, labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers110/FtpListenerMapper.java)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers110/FtpListenerMapper.java (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers110/FtpListenerMapper.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -0,0 +1,148 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and others contributors as indicated
+ * by the @authors tag. All rights reserved.
+ * See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License, v. 2.1.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+ * PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
+ * You should have received a copy of the GNU Lesser General Public License,
+ * v.2.1 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301, USA.
+ *
+ * (C) 2005-2006,
+ */
+
+package org.jboss.soa.esb.listeners.config.mappers110;
+
+import org.jboss.soa.esb.ConfigurationException;
+import org.jboss.soa.esb.addressing.eprs.FTPEpr;
+import org.jboss.soa.esb.addressing.eprs.FTPSEpr;
+import org.jboss.soa.esb.addressing.eprs.SFTPEpr;
+import org.jboss.soa.esb.dom.YADOMUtil;
+import org.jboss.soa.esb.listeners.ListenerTagNames;
+import org.jboss.soa.esb.listeners.config.xbeanmodel110.FtpBusDocument.FtpBus;
+import org.jboss.soa.esb.listeners.config.xbeanmodel110.FtpListenerDocument.FtpListener;
+import org.jboss.soa.esb.listeners.config.xbeanmodel110.FtpMessageFilterDocument.FtpMessageFilter;
+import org.jboss.soa.esb.listeners.config.xbeanmodel110.FtpMessageFilterDocument.FtpMessageFilter.Protocol;
+import org.jboss.soa.esb.listeners.config.xbeanmodel110.FtpProviderDocument.FtpProvider;
+import org.jboss.soa.esb.listeners.gateway.ReadOnlyRemoteGatewayListener;
+import org.jboss.soa.esb.listeners.gateway.RemoteGatewayListener;
+import org.w3c.dom.Element;
+
+/**
+ * Performs the mapping of a <fs-listener> XSD based configuration to the "ConfigTree"
+ * style configuration, adding the "ConfigTree" listener config to the "root" node.
+ *
+ * @author <a href="mailto:kurt.stam at jboss.com">kurt.stam at jboss.com</a>
+ */
+public class FtpListenerMapper {
+
+ /**
+ * Perform the mapping.
+ * @param root The "ConfigTree" configuration root node.
+ * @param listener The Jmslistener to be mapped into the ConfigTree.
+ * @param model The configuration model from which the mapping is being performed.
+ * @return The ConfigTree listener configuration node.
+ * @throws ConfigurationException Invalid listener configuration.
+ */
+ public static Element map(Element root, FtpListener listener, XMLBeansModel model) throws ConfigurationException {
+ Element listenerNode = YADOMUtil.addElement(root, "listener");
+ FtpBus bus;
+ FtpProvider provider;
+
+ listenerNode.setAttribute("name", listener.getName());
+
+ try {
+ bus = (FtpBus) model.getBus(listener.getBusidref());
+ } catch (ClassCastException e) {
+ throw new ConfigurationException("Invalid busid reference [" + listener.getBusidref() + "] on listener [" + listener.getName() + "]. A <ftp-listener> must reference a <ftp-bus>.");
+ }
+ try {
+ provider = (FtpProvider) model.getProvider(bus);
+ } catch (ClassCastException e) {
+ throw new ConfigurationException("Invalid bus config [" + listener.getBusidref() + "]. Should be contained within a <ftp-provider> instance. Unexpected exception - this should have caused a validation error!");
+ }
+
+ FtpMessageFilter messageFilter = listener.getFtpMessageFilter();
+ if(messageFilter == null) {
+ messageFilter = bus.getFtpMessageFilter();
+ if(messageFilter == null) {
+ throw new ConfigurationException("No <ftp-detination> defined on either <ftp-listener> [" + listener.getName() + "] or <ftp-bus> [" + bus.getBusid() + "].");
+ }
+ }
+ // Map the standard listener attributes - common across all listener types...
+ MapperUtil.mapDefaultAttributes(listener, listenerNode, model);
+ // Map the <property> elements targeted at the listener - from the listener itself.
+ MapperUtil.mapProperties(listener.getPropertyList(), listenerNode);
+ if(listener.getIsGateway()) {
+ if ( messageFilter.getReadOnly() )
+ listenerNode.setAttribute("gatewayClass", ReadOnlyRemoteGatewayListener.class.getName());
+ else
+ listenerNode.setAttribute("gatewayClass", RemoteGatewayListener.class.getName());
+ // Map EPR related attributes onto the listener - from the bus and provider and listener.
+ // Note: This will change - the Gateways will also support the EPR element...
+ mapFtpEprProperties(listenerNode, provider, messageFilter);
+ MapperUtil.mapEPRProperties(listener, listenerNode, model);
+ } else {
+ Element eprNode = YADOMUtil.addElement(listenerNode, ListenerTagNames.EPR_TAG);
+
+ // Map EPR related attributes onto the EPR - from the bus and provider and listener...
+ mapFtpEprProperties(eprNode, provider, messageFilter);
+ MapperUtil.mapEPRProperties(listener, eprNode, model);
+ // Remove any empty attributes set on the EPR config...
+ YADOMUtil.removeEmptyAttributes(eprNode);
+ }
+
+ // Remove any empty attributes set on the listener config...
+ YADOMUtil.removeEmptyAttributes(listenerNode);
+
+ return listenerNode;
+ }
+
+ /**
+ * The separator used by the ftp protocol to separate the
+ * host:port section from the path
+ */
+ private static final String FTP_SEPARATOR = "/";
+
+ private static void mapFtpEprProperties(Element toElement, FtpProvider provider, FtpMessageFilter messageFilter)
+ {
+ String inputDir = messageFilter.getDirectory();
+ if ( ! inputDir.startsWith( FTP_SEPARATOR ) )
+ inputDir = FTP_SEPARATOR + inputDir;
+
+ final String filterPassword = messageFilter.getPassword() ;
+ final String urlPassword = (filterPassword == null ? "" : ":" + filterPassword) ;
+ toElement.setAttribute(ListenerTagNames.URL_TAG, messageFilter.getProtocol() + "://" + messageFilter.getUsername()
+ + urlPassword + "@" + provider.getHostname() + inputDir );
+ toElement.setAttribute(FTPEpr.INPUT_SUFFIX_TAG, messageFilter.getInputSuffix());
+ toElement.setAttribute(FTPEpr.WORK_SUFFIX_TAG, messageFilter.getWorkSuffix());
+ toElement.setAttribute(FTPEpr.POST_DEL_TAG, String.valueOf(messageFilter.getPostDelete()));
+ toElement.setAttribute(FTPEpr.POST_RENAME_TAG, String.valueOf(messageFilter.getPostRename()));
+
+ if (!messageFilter.getPostDelete()) {
+ toElement.setAttribute(FTPEpr.POST_DIR_TAG, messageFilter.getPostDirectory());
+ toElement.setAttribute(FTPEpr.POST_SUFFIX_TAG, messageFilter.getPostSuffix());
+ }
+ toElement.setAttribute(FTPEpr.ERROR_DEL_TAG, String.valueOf(messageFilter.getErrorDelete()));
+ if (!messageFilter.getErrorDelete()) {
+ toElement.setAttribute(FTPEpr.ERROR_DIR_TAG, messageFilter.getErrorDirectory());
+ toElement.setAttribute(FTPEpr.ERROR_SUFFIX_TAG, messageFilter.getErrorSuffix());
+ }
+ toElement.setAttribute(FTPEpr.PASSIVE_TAG, String.valueOf(messageFilter.getPassive()));
+ if (Protocol.SFTP.equals(messageFilter.getProtocol())) {
+ toElement.setAttribute(SFTPEpr.CERTIFICATE_TAG, messageFilter.getCertificateUrl());
+ toElement.setAttribute(SFTPEpr.PASSPHRASE_TAG, messageFilter.getCertificatePassphrase()) ;
+ }
+ if (Protocol.FTPS.equals(messageFilter.getProtocol())) {
+ toElement.setAttribute(FTPSEpr.CERTIFICATE_TAG, messageFilter.getCertificateUrl());
+ toElement.setAttribute(FTPSEpr.CERTIFICATE_NAME_TAG, messageFilter.getCertificateName());
+ }
+ }
+}
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers110/GatewayGenerator.java
===================================================================
--- labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers110/GatewayGenerator.java 2009-01-21 09:35:03 UTC (rev 24846)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers110/GatewayGenerator.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -1,147 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2006, JBoss Inc., and others contributors as indicated
- * by the @authors tag. All rights reserved.
- * See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- * This copyrighted material is made available to anyone wishing to use,
- * modify, copy, or redistribute it subject to the terms and conditions
- * of the GNU Lesser General Public License, v. 2.1.
- * This program is distributed in the hope that it will be useful, but WITHOUT A
- * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
- * PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
- * You should have received a copy of the GNU Lesser General Public License,
- * v.2.1 along with this distribution; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
- * MA 02110-1301, USA.
- *
- * (C) 2005-2006,
- * @author JBoss Inc.
- */
-
-package org.jboss.soa.esb.listeners.config.mappers110;
-
-import java.util.HashMap;
-import java.util.List;
-
-import org.apache.log4j.Logger;
-import org.jboss.soa.esb.ConfigurationException;
-import org.jboss.soa.esb.dom.YADOMUtil;
-import org.jboss.soa.esb.listeners.config.xbeanmodel110.FsListenerDocument.FsListener;
-import org.jboss.soa.esb.listeners.config.xbeanmodel110.FtpListenerDocument.FtpListener;
-import org.jboss.soa.esb.listeners.config.xbeanmodel110.GroovyListenerDocument.GroovyListener;
-import org.jboss.soa.esb.listeners.config.xbeanmodel110.HibernateListenerDocument.HibernateListener;
-import org.jboss.soa.esb.listeners.config.xbeanmodel110.JbrListenerDocument.JbrListener;
-import org.jboss.soa.esb.listeners.config.xbeanmodel110.JmsListenerDocument.JmsListener;
-import org.jboss.soa.esb.listeners.config.xbeanmodel110.ServiceDocument.Service;
-import org.jboss.soa.esb.listeners.config.xbeanmodel110.SqlListenerDocument.SqlListener;
-import org.jboss.soa.esb.listeners.config.xbeanmodel110.Listener;
-import org.jboss.soa.esb.listeners.config.xbeanmodel110.JcaGatewayDocument;
-import org.jboss.soa.esb.listeners.config.xbeanmodel110.AbstractScheduledListener;
-import org.w3c.dom.Document;
-import org.w3c.dom.Element;
-
-/**
- * Gateway Listeners Configuration Generator.
- * <p/>
- * Generates a "ConfigTree" style configuration for the Gateways Listeners.
- *
- * @author <a href="mailto:tom.fennelly at jboss.com">tom.fennelly at jboss.com</a>
- */
-public class GatewayGenerator {
-
- private static final Logger logger = Logger.getLogger(GatewayGenerator.class);
-
- /**
- * XMLBeans based configuration model instance.
- */
- private XMLBeansModel model;
-
- /**
- * Public constructor.
- *
- * @param model XMLBeans based configuration model instance.
- */
- public GatewayGenerator(XMLBeansModel model) {
- this.model = model;
- }
-
- /**
- * Generate the configuration DOM for the target Server.
- *
- * @return The configuration DOM.
- * @throws ConfigurationException Error creating configuration.
- */
- public Document generate() throws ConfigurationException {
- Document doc = YADOMUtil.createDocument();
- Element root;
-
- doc.appendChild(doc.createComment("\n\tNOTE: DO NOT MODIFY\n\tThis file was auto-generated.\n"));
- root = YADOMUtil.addElement(doc, "jbossesb-gateways");
- root.setAttribute("parameterReloadSecs", model.getParameterReloadSecs());
-
- List<Service> services = model.getServices();
- HashMap<String, HashMap<String, String>> hm = new HashMap<String, HashMap<String, String>>();
- for (Service service : services) {
- if (hm.containsKey(service.getCategory())) {
- HashMap<String, String> hc = hm.get(service.getCategory());
-
- if (hc.containsKey(service.getName())) {
- throw new ConfigurationException("Service names must be unique within a category. "
- + "The service name " + service.getName()
- + " is already defined within the " + service.getCategory() + " category.");
- } else {
- hc.put(service.getName(), service.getName());
- }
- } else {
- HashMap <String,String> hc = new HashMap<String,String>();
- hc.put(service.getName(), service.getName());
- hm.put(service.getCategory(), hc);
- }
- }
-
- // Iterate over all the gateway configs and map them to the gateway configuration...
- List<Listener> gateways = model.getGatewayListeners();
- for (Listener gateway : gateways) {
- addGatewayConfig(root, gateway);
- }
-
- return doc;
- }
-
- /**
- * Add a single gateway configuration node to configuration root.
- *
- * @param root Configuration root node.
- * @param gateway The Gateway Listener configuration to be added.
- * @throws ConfigurationException Invalid listener configuration.
- */
- private void addGatewayConfig(Element root, Listener gateway) throws ConfigurationException {
- Element listenerConfig;
-
- // Of course we could do the following reflectively if we really want to - TODO perhaps!!
- if (gateway instanceof JmsListener) {
- listenerConfig = JmsListenerMapper.map(root, (JmsListener) gateway, model);
- } else if (gateway instanceof FsListener) {
- listenerConfig = FsListenerMapper.map(root, (FsListener) gateway, model);
- } else if (gateway instanceof JcaGatewayDocument.JcaGateway) {
- listenerConfig = JcaGatewayMapper.map(root, (JcaGatewayDocument.JcaGateway) gateway, model);
- } else if (gateway instanceof FtpListener) {
- listenerConfig = FtpListenerMapper.map(root, (FtpListener) gateway, model);
- } else if (gateway instanceof SqlListener) {
- listenerConfig = SqlListenerMapper.map(root, (SqlListener) gateway, model);
- } else if (gateway instanceof JbrListener) {
- listenerConfig = JbrListenerMapper.map(root, (JbrListener) gateway, model);
- } else if (gateway instanceof GroovyListener) {
- listenerConfig = GroovyListenerMapper.map(root, (GroovyListener) gateway, model);
- } else if (gateway instanceof HibernateListener) {
- listenerConfig = HibernateListenerMapper.map(root, (HibernateListener) gateway, model);
- } else {
- listenerConfig = UntypedListenerMapper.map(root, gateway, model);
- }
-
- if (gateway instanceof AbstractScheduledListener) {
- ScheduleMapper.map(listenerConfig, (AbstractScheduledListener) gateway, model);
- }
- }
-}
Copied: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers110/GatewayGenerator.java (from rev 24846, labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers110/GatewayGenerator.java)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers110/GatewayGenerator.java (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers110/GatewayGenerator.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -0,0 +1,147 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and others contributors as indicated
+ * by the @authors tag. All rights reserved.
+ * See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License, v. 2.1.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+ * PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
+ * You should have received a copy of the GNU Lesser General Public License,
+ * v.2.1 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301, USA.
+ *
+ * (C) 2005-2006,
+ * @author JBoss Inc.
+ */
+
+package org.jboss.soa.esb.listeners.config.mappers110;
+
+import java.util.HashMap;
+import java.util.List;
+
+import org.apache.log4j.Logger;
+import org.jboss.soa.esb.ConfigurationException;
+import org.jboss.soa.esb.dom.YADOMUtil;
+import org.jboss.soa.esb.listeners.config.xbeanmodel110.FsListenerDocument.FsListener;
+import org.jboss.soa.esb.listeners.config.xbeanmodel110.FtpListenerDocument.FtpListener;
+import org.jboss.soa.esb.listeners.config.xbeanmodel110.GroovyListenerDocument.GroovyListener;
+import org.jboss.soa.esb.listeners.config.xbeanmodel110.HibernateListenerDocument.HibernateListener;
+import org.jboss.soa.esb.listeners.config.xbeanmodel110.JbrListenerDocument.JbrListener;
+import org.jboss.soa.esb.listeners.config.xbeanmodel110.JmsListenerDocument.JmsListener;
+import org.jboss.soa.esb.listeners.config.xbeanmodel110.ServiceDocument.Service;
+import org.jboss.soa.esb.listeners.config.xbeanmodel110.SqlListenerDocument.SqlListener;
+import org.jboss.soa.esb.listeners.config.xbeanmodel110.Listener;
+import org.jboss.soa.esb.listeners.config.xbeanmodel110.JcaGatewayDocument;
+import org.jboss.soa.esb.listeners.config.xbeanmodel110.AbstractScheduledListener;
+import org.w3c.dom.Document;
+import org.w3c.dom.Element;
+
+/**
+ * Gateway Listeners Configuration Generator.
+ * <p/>
+ * Generates a "ConfigTree" style configuration for the Gateways Listeners.
+ *
+ * @author <a href="mailto:tom.fennelly at jboss.com">tom.fennelly at jboss.com</a>
+ */
+public class GatewayGenerator {
+
+ private static final Logger logger = Logger.getLogger(GatewayGenerator.class);
+
+ /**
+ * XMLBeans based configuration model instance.
+ */
+ private XMLBeansModel model;
+
+ /**
+ * Public constructor.
+ *
+ * @param model XMLBeans based configuration model instance.
+ */
+ public GatewayGenerator(XMLBeansModel model) {
+ this.model = model;
+ }
+
+ /**
+ * Generate the configuration DOM for the target Server.
+ *
+ * @return The configuration DOM.
+ * @throws ConfigurationException Error creating configuration.
+ */
+ public Document generate() throws ConfigurationException {
+ Document doc = YADOMUtil.createDocument();
+ Element root;
+
+ doc.appendChild(doc.createComment("\n\tNOTE: DO NOT MODIFY\n\tThis file was auto-generated.\n"));
+ root = YADOMUtil.addElement(doc, "jbossesb-gateways");
+ root.setAttribute("parameterReloadSecs", model.getParameterReloadSecs());
+
+ List<Service> services = model.getServices();
+ HashMap<String, HashMap<String, String>> hm = new HashMap<String, HashMap<String, String>>();
+ for (Service service : services) {
+ if (hm.containsKey(service.getCategory())) {
+ HashMap<String, String> hc = hm.get(service.getCategory());
+
+ if (hc.containsKey(service.getName())) {
+ throw new ConfigurationException("Service names must be unique within a category. "
+ + "The service name " + service.getName()
+ + " is already defined within the " + service.getCategory() + " category.");
+ } else {
+ hc.put(service.getName(), service.getName());
+ }
+ } else {
+ HashMap <String,String> hc = new HashMap<String,String>();
+ hc.put(service.getName(), service.getName());
+ hm.put(service.getCategory(), hc);
+ }
+ }
+
+ // Iterate over all the gateway configs and map them to the gateway configuration...
+ List<Listener> gateways = model.getGatewayListeners();
+ for (Listener gateway : gateways) {
+ addGatewayConfig(root, gateway);
+ }
+
+ return doc;
+ }
+
+ /**
+ * Add a single gateway configuration node to configuration root.
+ *
+ * @param root Configuration root node.
+ * @param gateway The Gateway Listener configuration to be added.
+ * @throws ConfigurationException Invalid listener configuration.
+ */
+ private void addGatewayConfig(Element root, Listener gateway) throws ConfigurationException {
+ Element listenerConfig;
+
+ // Of course we could do the following reflectively if we really want to - TODO perhaps!!
+ if (gateway instanceof JmsListener) {
+ listenerConfig = JmsListenerMapper.map(root, (JmsListener) gateway, model);
+ } else if (gateway instanceof FsListener) {
+ listenerConfig = FsListenerMapper.map(root, (FsListener) gateway, model);
+ } else if (gateway instanceof JcaGatewayDocument.JcaGateway) {
+ listenerConfig = JcaGatewayMapper.map(root, (JcaGatewayDocument.JcaGateway) gateway, model);
+ } else if (gateway instanceof FtpListener) {
+ listenerConfig = FtpListenerMapper.map(root, (FtpListener) gateway, model);
+ } else if (gateway instanceof SqlListener) {
+ listenerConfig = SqlListenerMapper.map(root, (SqlListener) gateway, model);
+ } else if (gateway instanceof JbrListener) {
+ listenerConfig = JbrListenerMapper.map(root, (JbrListener) gateway, model);
+ } else if (gateway instanceof GroovyListener) {
+ listenerConfig = GroovyListenerMapper.map(root, (GroovyListener) gateway, model);
+ } else if (gateway instanceof HibernateListener) {
+ listenerConfig = HibernateListenerMapper.map(root, (HibernateListener) gateway, model);
+ } else {
+ listenerConfig = UntypedListenerMapper.map(root, gateway, model);
+ }
+
+ if (gateway instanceof AbstractScheduledListener) {
+ ScheduleMapper.map(listenerConfig, (AbstractScheduledListener) gateway, model);
+ }
+ }
+}
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers110/GroovyListenerMapper.java
===================================================================
--- labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers110/GroovyListenerMapper.java 2009-01-21 09:35:03 UTC (rev 24846)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers110/GroovyListenerMapper.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -1,56 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2006, JBoss Inc., and others contributors as indicated
- * by the @authors tag. All rights reserved.
- * See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- * This copyrighted material is made available to anyone wishing to use,
- * modify, copy, or redistribute it subject to the terms and conditions
- * of the GNU Lesser General Public License, v. 2.1.
- * This program is distributed in the hope that it will be useful, but WITHOUT A
- * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
- * PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
- * You should have received a copy of the GNU Lesser General Public License,
- * v.2.1 along with this distribution; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
- * MA 02110-1301, USA.
- *
- * (C) 2005-2006, JBoss Inc.
- */
-package org.jboss.soa.esb.listeners.config.mappers110;
-
-import org.jboss.soa.esb.ConfigurationException;
-import org.jboss.soa.esb.dom.YADOMUtil;
-import org.jboss.soa.esb.listeners.config.xbeanmodel110.GroovyListenerDocument;
-import org.jboss.soa.esb.listeners.gateway.GroovyGateway;
-import org.jboss.soa.esb.listeners.ListenerTagNames;
-import org.w3c.dom.Element;
-
-/**
- * Config mapper class for the Groovy Listener.
- *
- * @author <a href="mailto:tom.fennelly at jboss.com">tom.fennelly at jboss.com</a>
- */
-public class GroovyListenerMapper {
-
- public static Element map(Element root, GroovyListenerDocument.GroovyListener listener, XMLBeansModel model) throws ConfigurationException {
- Element listenerNode = YADOMUtil.addElement(root, "listener");
-
- listenerNode.setAttribute("name", listener.getName());
-
- // Map the standard listener attributes - common across all listener types...
- MapperUtil.mapDefaultAttributes(listener, listenerNode, model);
- // Map the <property> elements targeted at the listener - from the listener itself.
- MapperUtil.mapProperties(listener.getPropertyList(), listenerNode);
-
- if(listener.getIsGateway()) {
- listenerNode.setAttribute("gatewayClass", GroovyGateway.class.getName());
- } else {
- listenerNode.setAttribute(ListenerTagNames.LISTENER_CLASS_TAG, GroovyGateway.class.getName());
- }
-
- listenerNode.setAttribute("script", listener.getScript());
-
- return listenerNode;
- }
-}
Copied: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers110/GroovyListenerMapper.java (from rev 24846, labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers110/GroovyListenerMapper.java)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers110/GroovyListenerMapper.java (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers110/GroovyListenerMapper.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -0,0 +1,56 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and others contributors as indicated
+ * by the @authors tag. All rights reserved.
+ * See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License, v. 2.1.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+ * PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
+ * You should have received a copy of the GNU Lesser General Public License,
+ * v.2.1 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301, USA.
+ *
+ * (C) 2005-2006, JBoss Inc.
+ */
+package org.jboss.soa.esb.listeners.config.mappers110;
+
+import org.jboss.soa.esb.ConfigurationException;
+import org.jboss.soa.esb.dom.YADOMUtil;
+import org.jboss.soa.esb.listeners.config.xbeanmodel110.GroovyListenerDocument;
+import org.jboss.soa.esb.listeners.gateway.GroovyGateway;
+import org.jboss.soa.esb.listeners.ListenerTagNames;
+import org.w3c.dom.Element;
+
+/**
+ * Config mapper class for the Groovy Listener.
+ *
+ * @author <a href="mailto:tom.fennelly at jboss.com">tom.fennelly at jboss.com</a>
+ */
+public class GroovyListenerMapper {
+
+ public static Element map(Element root, GroovyListenerDocument.GroovyListener listener, XMLBeansModel model) throws ConfigurationException {
+ Element listenerNode = YADOMUtil.addElement(root, "listener");
+
+ listenerNode.setAttribute("name", listener.getName());
+
+ // Map the standard listener attributes - common across all listener types...
+ MapperUtil.mapDefaultAttributes(listener, listenerNode, model);
+ // Map the <property> elements targeted at the listener - from the listener itself.
+ MapperUtil.mapProperties(listener.getPropertyList(), listenerNode);
+
+ if(listener.getIsGateway()) {
+ listenerNode.setAttribute("gatewayClass", GroovyGateway.class.getName());
+ } else {
+ listenerNode.setAttribute(ListenerTagNames.LISTENER_CLASS_TAG, GroovyGateway.class.getName());
+ }
+
+ listenerNode.setAttribute("script", listener.getScript());
+
+ return listenerNode;
+ }
+}
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers110/HibernateListenerMapper.java
===================================================================
--- labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers110/HibernateListenerMapper.java 2009-01-21 09:35:03 UTC (rev 24846)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers110/HibernateListenerMapper.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -1,121 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2006, JBoss Inc., and individual contributors as indicated
- * by the @authors tag. See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
-package org.jboss.soa.esb.listeners.config.mappers110;
-
-import java.util.List;
-
-import org.jboss.soa.esb.ConfigurationException;
-import org.jboss.soa.esb.addressing.eprs.HibernateEpr;
-import org.jboss.soa.esb.dom.YADOMUtil;
-import org.jboss.soa.esb.listeners.ListenerTagNames;
-import org.jboss.soa.esb.listeners.config.xbeanmodel110.HibernateBusDocument.HibernateBus;
-import org.jboss.soa.esb.listeners.config.xbeanmodel110.HibernateListenerDocument.HibernateListener;
-import org.jboss.soa.esb.listeners.config.xbeanmodel110.HibernateMessageFilterDocument.HibernateMessageFilter;
-import org.jboss.soa.esb.listeners.config.xbeanmodel110.HibernateProviderDocument.HibernateProvider;
-import org.jboss.soa.esb.listeners.gateway.HibernateGatewayListener;
-import org.w3c.dom.Element;
-
-/**
- * Performs the mapping of a <fs-listener> XSD based configuration to the "ConfigTree"
- * style configuration, adding the "ConfigTree" listener config to the "root" node.
- *
- * @author <a href="mailto:tcunning at redhat.com">tcunning at redhat.com</a>
- */
-public class HibernateListenerMapper {
-
- /**
- * Perform the mapping.
- * @param root The "ConfigTree" configuration root node.
- * @param listener The Jmslistener to be mapped into the ConfigTree.
- * @param model The configuration model from which the mapping is being performed.
- * @return The ConfigTree listener configuration node.
- * @throws ConfigurationException Invalid listener configuration.
- */
- public static Element map(Element root, HibernateListener listener, XMLBeansModel model) throws ConfigurationException {
- Element listenerNode = YADOMUtil.addElement(root, "listener");
- HibernateBus bus;
- HibernateProvider provider;
-
- listenerNode.setAttribute("name", listener.getName());
-
- try {
- bus = (HibernateBus) model.getBus(listener.getBusidref());
- } catch (ClassCastException e) {
- throw new ConfigurationException("Invalid busid reference [" + listener.getBusidref() + "] on listener [" + listener.getName() + "]. A <hibernate-listener> must reference a <hibernate-bus>.");
- }
- try {
- provider = (HibernateProvider) model.getProvider(bus);
- } catch (ClassCastException e) {
- throw new ConfigurationException("Invalid bus config [" + listener.getBusidref() + "]. Should be contained within a <hibernate-provider> instance. Unexpected exception - this should have caused a validation error!");
- }
-
- List<HibernateMessageFilter> messageFilters = null;
- messageFilters = listener.getHibernateMessageFilterList();
-
- if(messageFilters.size() == 0) {
- messageFilters = bus.getHibernateMessageFilterList();
- if(messageFilters == null) {
- throw new ConfigurationException("No <hibernate-message-filter> defined on either <hibernate-listener> [" + listener.getName() + "] or <hibernate-bus> [" + bus.getBusid() + "].");
- }
- }
- // Map the standard listener attributes - common across all listener types...
- MapperUtil.mapDefaultAttributes(listener, listenerNode, model);
- // Map the <property> elements targeted at the listener - from the listener itself.
- MapperUtil.mapProperties(listener.getPropertyList(), listenerNode);
- if(listener.getIsGateway()) {
- listenerNode.setAttribute("gatewayClass", HibernateGatewayListener.class.getName());
- // Map EPR related attributes onto the listener - from the bus and provider and listener.
- // Note: This will change - the Gateways will also support the EPR element...
- mapHibernateEprProperties(listenerNode, provider, messageFilters);
- MapperUtil.mapEPRProperties(listener, listenerNode, model);
- } else {
- Element eprNode = YADOMUtil.addElement(listenerNode, ListenerTagNames.EPR_TAG);
- // Map EPR related attributes onto the EPR - from the bus and provider and listener...
- mapHibernateEprProperties(eprNode, provider, messageFilters);
- MapperUtil.mapEPRProperties(listener, eprNode, model);
- // Remove any empty attributes set on the EPR config...
- YADOMUtil.removeEmptyAttributes(eprNode);
- }
-
- // Remove any empty attributes set on the listener config...
- YADOMUtil.removeEmptyAttributes(listenerNode);
-
- return listenerNode;
- }
-
- /**
- * mapHibernateEprProperties creates a ConfigTree with the details we need
- * from the HibernateProvider and MessageFilters.
- * @param toElement the element we are passing on
- * @param provider the provider object
- * @param messageFilters collection of MessageFilters we need to implement
- */
- private static void mapHibernateEprProperties(Element toElement, HibernateProvider provider, List<HibernateMessageFilter> messageFilters) {
- toElement.setAttribute(HibernateEpr.HIBERNATE_CFG_TAG, provider.getHibernateCfgFile());
- for (HibernateMessageFilter messageFilter: messageFilters) {
- Element temp = YADOMUtil.addElement(toElement, "messagefilter");
- temp.setAttribute(HibernateEpr.CLASS_NAME_TAG, messageFilter.getClassname());
- temp.setAttribute(HibernateEpr.EVENT_TAG, messageFilter.getEvent());
- toElement.appendChild(temp);
- }
- }
-}
Copied: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers110/HibernateListenerMapper.java (from rev 24846, labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers110/HibernateListenerMapper.java)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers110/HibernateListenerMapper.java (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers110/HibernateListenerMapper.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -0,0 +1,121 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.soa.esb.listeners.config.mappers110;
+
+import java.util.List;
+
+import org.jboss.soa.esb.ConfigurationException;
+import org.jboss.soa.esb.addressing.eprs.HibernateEpr;
+import org.jboss.soa.esb.dom.YADOMUtil;
+import org.jboss.soa.esb.listeners.ListenerTagNames;
+import org.jboss.soa.esb.listeners.config.xbeanmodel110.HibernateBusDocument.HibernateBus;
+import org.jboss.soa.esb.listeners.config.xbeanmodel110.HibernateListenerDocument.HibernateListener;
+import org.jboss.soa.esb.listeners.config.xbeanmodel110.HibernateMessageFilterDocument.HibernateMessageFilter;
+import org.jboss.soa.esb.listeners.config.xbeanmodel110.HibernateProviderDocument.HibernateProvider;
+import org.jboss.soa.esb.listeners.gateway.HibernateGatewayListener;
+import org.w3c.dom.Element;
+
+/**
+ * Performs the mapping of a <fs-listener> XSD based configuration to the "ConfigTree"
+ * style configuration, adding the "ConfigTree" listener config to the "root" node.
+ *
+ * @author <a href="mailto:tcunning at redhat.com">tcunning at redhat.com</a>
+ */
+public class HibernateListenerMapper {
+
+ /**
+ * Perform the mapping.
+ * @param root The "ConfigTree" configuration root node.
+ * @param listener The Jmslistener to be mapped into the ConfigTree.
+ * @param model The configuration model from which the mapping is being performed.
+ * @return The ConfigTree listener configuration node.
+ * @throws ConfigurationException Invalid listener configuration.
+ */
+ public static Element map(Element root, HibernateListener listener, XMLBeansModel model) throws ConfigurationException {
+ Element listenerNode = YADOMUtil.addElement(root, "listener");
+ HibernateBus bus;
+ HibernateProvider provider;
+
+ listenerNode.setAttribute("name", listener.getName());
+
+ try {
+ bus = (HibernateBus) model.getBus(listener.getBusidref());
+ } catch (ClassCastException e) {
+ throw new ConfigurationException("Invalid busid reference [" + listener.getBusidref() + "] on listener [" + listener.getName() + "]. A <hibernate-listener> must reference a <hibernate-bus>.");
+ }
+ try {
+ provider = (HibernateProvider) model.getProvider(bus);
+ } catch (ClassCastException e) {
+ throw new ConfigurationException("Invalid bus config [" + listener.getBusidref() + "]. Should be contained within a <hibernate-provider> instance. Unexpected exception - this should have caused a validation error!");
+ }
+
+ List<HibernateMessageFilter> messageFilters = null;
+ messageFilters = listener.getHibernateMessageFilterList();
+
+ if(messageFilters.size() == 0) {
+ messageFilters = bus.getHibernateMessageFilterList();
+ if(messageFilters == null) {
+ throw new ConfigurationException("No <hibernate-message-filter> defined on either <hibernate-listener> [" + listener.getName() + "] or <hibernate-bus> [" + bus.getBusid() + "].");
+ }
+ }
+ // Map the standard listener attributes - common across all listener types...
+ MapperUtil.mapDefaultAttributes(listener, listenerNode, model);
+ // Map the <property> elements targeted at the listener - from the listener itself.
+ MapperUtil.mapProperties(listener.getPropertyList(), listenerNode);
+ if(listener.getIsGateway()) {
+ listenerNode.setAttribute("gatewayClass", HibernateGatewayListener.class.getName());
+ // Map EPR related attributes onto the listener - from the bus and provider and listener.
+ // Note: This will change - the Gateways will also support the EPR element...
+ mapHibernateEprProperties(listenerNode, provider, messageFilters);
+ MapperUtil.mapEPRProperties(listener, listenerNode, model);
+ } else {
+ Element eprNode = YADOMUtil.addElement(listenerNode, ListenerTagNames.EPR_TAG);
+ // Map EPR related attributes onto the EPR - from the bus and provider and listener...
+ mapHibernateEprProperties(eprNode, provider, messageFilters);
+ MapperUtil.mapEPRProperties(listener, eprNode, model);
+ // Remove any empty attributes set on the EPR config...
+ YADOMUtil.removeEmptyAttributes(eprNode);
+ }
+
+ // Remove any empty attributes set on the listener config...
+ YADOMUtil.removeEmptyAttributes(listenerNode);
+
+ return listenerNode;
+ }
+
+ /**
+ * mapHibernateEprProperties creates a ConfigTree with the details we need
+ * from the HibernateProvider and MessageFilters.
+ * @param toElement the element we are passing on
+ * @param provider the provider object
+ * @param messageFilters collection of MessageFilters we need to implement
+ */
+ private static void mapHibernateEprProperties(Element toElement, HibernateProvider provider, List<HibernateMessageFilter> messageFilters) {
+ toElement.setAttribute(HibernateEpr.HIBERNATE_CFG_TAG, provider.getHibernateCfgFile());
+ for (HibernateMessageFilter messageFilter: messageFilters) {
+ Element temp = YADOMUtil.addElement(toElement, "messagefilter");
+ temp.setAttribute(HibernateEpr.CLASS_NAME_TAG, messageFilter.getClassname());
+ temp.setAttribute(HibernateEpr.EVENT_TAG, messageFilter.getEvent());
+ toElement.appendChild(temp);
+ }
+ }
+}
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers110/JbrListenerMapper.java
===================================================================
--- labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers110/JbrListenerMapper.java 2009-01-21 09:35:03 UTC (rev 24846)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers110/JbrListenerMapper.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -1,87 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2006, JBoss Inc., and others contributors as indicated
- * by the @authors tag. All rights reserved.
- * See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- * This copyrighted material is made available to anyone wishing to use,
- * modify, copy, or redistribute it subject to the terms and conditions
- * of the GNU Lesser General Public License, v. 2.1.
- * This program is distributed in the hope that it will be useful, but WITHOUT A
- * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
- * PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
- * You should have received a copy of the GNU Lesser General Public License,
- * v.2.1 along with this distribution; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
- * MA 02110-1301, USA.
- *
- * (C) 2005-2006, JBoss Inc.
- */
-package org.jboss.soa.esb.listeners.config.mappers110;
-
-import org.jboss.soa.esb.ConfigurationException;
-import org.jboss.soa.esb.dom.YADOMUtil;
-import org.jboss.soa.esb.listeners.ListenerTagNames;
-import org.jboss.soa.esb.listeners.config.xbeanmodel110.JbrBusDocument.JbrBus;
-import org.jboss.soa.esb.listeners.config.xbeanmodel110.JbrListenerDocument.JbrListener;
-import org.jboss.soa.esb.listeners.config.xbeanmodel110.JbrProviderDocument.JbrProvider;
-import org.jboss.soa.esb.listeners.gateway.JBossRemotingGatewayListener;
-import org.w3c.dom.Element;
-
-/**
- * JBoss Remoting listener mapper.
- * @author <a href="mailto:tom.fennelly at jboss.com">tom.fennelly at jboss.com</a>
- */
-public class JbrListenerMapper {
-
- /**
- * Perform the mapping.
- * @param root The "ConfigTree" configuration root node.
- * @param listener JBoss Remoting listener config.
- * @param model The configuration model from which the mapping is being performed.
- * @return The ConfigTree listener configuration node.
- * @throws org.jboss.soa.esb.ConfigurationException Invalid listener configuration.
- */
- public static Element map(Element root, JbrListener listener, XMLBeansModel model) throws ConfigurationException {
- Element listenerNode = YADOMUtil.addElement(root, "listener");
- JbrBus bus;
- JbrProvider provider;
-
- listenerNode.setAttribute("name", listener.getName());
-
- try {
- bus = (JbrBus) model.getBus(listener.getBusidref());
- } catch (ClassCastException e) {
- throw new ConfigurationException("Invalid busid reference [" + listener.getBusidref() + "] on listener [" + listener.getName() + "]. A <jbr-listener> must reference a <jbr-bus>.");
- }
- try {
- provider = (JbrProvider) model.getProvider(bus);
- } catch (ClassCastException e) {
- throw new ConfigurationException("Invalid bus config [" + listener.getBusidref() + "]. Should be contained within a <jbr-provider> instance. Unexpected exception - this should have caused a validation error!");
- }
-
- // Map the standard listener attributes - common across all listener types...
- MapperUtil.mapDefaultAttributes(listener, listenerNode, model);
- // Map the <property> elements targeted at the listener - from the listener itself.
- MapperUtil.mapProperties(provider.getPropertyList(), listenerNode);
- MapperUtil.mapProperties(bus.getPropertyList(), listenerNode);
- MapperUtil.mapProperties(listener.getPropertyList(), listenerNode);
-
- if(listener.getIsGateway()) {
- String host = provider.getHost();
-
- listenerNode.setAttribute("gatewayClass", JBossRemotingGatewayListener.class.getName());
- listenerNode.setAttribute(ListenerTagNames.IS_GATEWAY_TAG, Boolean.toString(listener.getIsGateway()));
-
- if(host != null) {
- listenerNode.setAttribute(JBossRemotingGatewayListener.JBR_SERVER_HOST, host);
- }
- listenerNode.setAttribute(JBossRemotingGatewayListener.JBR_SERVER_PROTOCOL, provider.getProtocol().toString());
- listenerNode.setAttribute(JBossRemotingGatewayListener.JBR_SERVER_PORT, Integer.toString(bus.getPort()));
- } else {
- throw new ConfigurationException("Invalid <jbr-listener> config [" + listener.getName() + "]. <jbr-listener> is currently only supported as a gateway listener.");
- }
-
- return listenerNode;
- }
-}
Copied: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers110/JbrListenerMapper.java (from rev 24846, labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers110/JbrListenerMapper.java)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers110/JbrListenerMapper.java (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers110/JbrListenerMapper.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -0,0 +1,87 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and others contributors as indicated
+ * by the @authors tag. All rights reserved.
+ * See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License, v. 2.1.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+ * PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
+ * You should have received a copy of the GNU Lesser General Public License,
+ * v.2.1 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301, USA.
+ *
+ * (C) 2005-2006, JBoss Inc.
+ */
+package org.jboss.soa.esb.listeners.config.mappers110;
+
+import org.jboss.soa.esb.ConfigurationException;
+import org.jboss.soa.esb.dom.YADOMUtil;
+import org.jboss.soa.esb.listeners.ListenerTagNames;
+import org.jboss.soa.esb.listeners.config.xbeanmodel110.JbrBusDocument.JbrBus;
+import org.jboss.soa.esb.listeners.config.xbeanmodel110.JbrListenerDocument.JbrListener;
+import org.jboss.soa.esb.listeners.config.xbeanmodel110.JbrProviderDocument.JbrProvider;
+import org.jboss.soa.esb.listeners.gateway.JBossRemotingGatewayListener;
+import org.w3c.dom.Element;
+
+/**
+ * JBoss Remoting listener mapper.
+ * @author <a href="mailto:tom.fennelly at jboss.com">tom.fennelly at jboss.com</a>
+ */
+public class JbrListenerMapper {
+
+ /**
+ * Perform the mapping.
+ * @param root The "ConfigTree" configuration root node.
+ * @param listener JBoss Remoting listener config.
+ * @param model The configuration model from which the mapping is being performed.
+ * @return The ConfigTree listener configuration node.
+ * @throws org.jboss.soa.esb.ConfigurationException Invalid listener configuration.
+ */
+ public static Element map(Element root, JbrListener listener, XMLBeansModel model) throws ConfigurationException {
+ Element listenerNode = YADOMUtil.addElement(root, "listener");
+ JbrBus bus;
+ JbrProvider provider;
+
+ listenerNode.setAttribute("name", listener.getName());
+
+ try {
+ bus = (JbrBus) model.getBus(listener.getBusidref());
+ } catch (ClassCastException e) {
+ throw new ConfigurationException("Invalid busid reference [" + listener.getBusidref() + "] on listener [" + listener.getName() + "]. A <jbr-listener> must reference a <jbr-bus>.");
+ }
+ try {
+ provider = (JbrProvider) model.getProvider(bus);
+ } catch (ClassCastException e) {
+ throw new ConfigurationException("Invalid bus config [" + listener.getBusidref() + "]. Should be contained within a <jbr-provider> instance. Unexpected exception - this should have caused a validation error!");
+ }
+
+ // Map the standard listener attributes - common across all listener types...
+ MapperUtil.mapDefaultAttributes(listener, listenerNode, model);
+ // Map the <property> elements targeted at the listener - from the listener itself.
+ MapperUtil.mapProperties(provider.getPropertyList(), listenerNode);
+ MapperUtil.mapProperties(bus.getPropertyList(), listenerNode);
+ MapperUtil.mapProperties(listener.getPropertyList(), listenerNode);
+
+ if(listener.getIsGateway()) {
+ String host = provider.getHost();
+
+ listenerNode.setAttribute("gatewayClass", JBossRemotingGatewayListener.class.getName());
+ listenerNode.setAttribute(ListenerTagNames.IS_GATEWAY_TAG, Boolean.toString(listener.getIsGateway()));
+
+ if(host != null) {
+ listenerNode.setAttribute(JBossRemotingGatewayListener.JBR_SERVER_HOST, host);
+ }
+ listenerNode.setAttribute(JBossRemotingGatewayListener.JBR_SERVER_PROTOCOL, provider.getProtocol().toString());
+ listenerNode.setAttribute(JBossRemotingGatewayListener.JBR_SERVER_PORT, Integer.toString(bus.getPort()));
+ } else {
+ throw new ConfigurationException("Invalid <jbr-listener> config [" + listener.getName() + "]. <jbr-listener> is currently only supported as a gateway listener.");
+ }
+
+ return listenerNode;
+ }
+}
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers110/JcaGatewayMapper.java
===================================================================
--- labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers110/JcaGatewayMapper.java 2009-01-21 09:35:03 UTC (rev 24846)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers110/JcaGatewayMapper.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -1,67 +0,0 @@
-/*
-* JBoss, Home of Professional Open Source
-* Copyright 2006, JBoss Inc., and individual contributors as indicated
-* by the @authors tag. See the copyright.txt in the distribution for a
-* full listing of individual contributors.
-*
-* This is free software; you can redistribute it and/or modify it
-* under the terms of the GNU Lesser General Public License as
-* published by the Free Software Foundation; either version 2.1 of
-* the License, or (at your option) any later version.
-*
-* This software is distributed in the hope that it will be useful,
-* but WITHOUT ANY WARRANTY; without even the implied warranty of
-* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-* Lesser General Public License for more details.
-*
-* You should have received a copy of the GNU Lesser General Public
-* License along with this software; if not, write to the Free
-* Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
-* 02110-1301 USA, or see the FSF site: http://www.fsf.org.
-*/
-package org.jboss.soa.esb.listeners.config.mappers110;
-
-import org.jboss.soa.esb.ConfigurationException;
-import org.jboss.soa.esb.dom.YADOMUtil;
-import org.jboss.soa.esb.listeners.ListenerTagNames;
-import org.jboss.soa.esb.listeners.config.xbeanmodel110.ServiceDocument;
-import org.jboss.soa.esb.listeners.config.xbeanmodel110.JcaGatewayDocument.JcaGateway;
-import org.jboss.soa.esb.listeners.jca.JcaInflowGateway;
-import org.w3c.dom.Element;
-
-/**
- * comment
- *
- * @author <a href="bill at jboss.com">Bill Burke</a>
- * @version $Revision$
- */
-public class JcaGatewayMapper
-{
- public static Element map(Element root, JcaGateway gateway, XMLBeansModel model) throws ConfigurationException
- {
- Element listenerNode = YADOMUtil.addElement(root, "listener");
- gateway.setIsGateway(true);
-
- listenerNode.setAttribute("name", gateway.getName());
-
- ServiceDocument.Service service = model.getService(gateway);
- listenerNode.setAttribute(ListenerTagNames.SERVICE_DESCRIPTION_TAG, service.getDescription());
- listenerNode.setAttribute(ListenerTagNames.TARGET_SERVICE_CATEGORY_TAG, service.getCategory());
- listenerNode.setAttribute(ListenerTagNames.TARGET_SERVICE_NAME_TAG, service.getName());
-
- listenerNode.setAttribute("adapter", gateway.getAdapter());
- listenerNode.setAttribute("endpointClass", gateway.getEndpointClass());
- listenerNode.setAttribute("messagingType", gateway.getMessagingType());
- listenerNode.setAttribute("jcaBridge", gateway.getJcaBridge());
- listenerNode.setAttribute("transacted", new Boolean(gateway.getTransacted()).toString());
-
- MapperUtil.mapProperties(gateway.getPropertyList(), listenerNode);
- listenerNode.setAttribute("gatewayClass", JcaInflowGateway.class.getName());
- Element activationConfig = YADOMUtil.addElement(listenerNode, "activation-config");
- MapperUtil.serialize(gateway.getActivationConfig(), activationConfig);
-
-
- YADOMUtil.removeEmptyAttributes(listenerNode);
- return listenerNode;
- }
-}
Copied: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers110/JcaGatewayMapper.java (from rev 24846, labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers110/JcaGatewayMapper.java)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers110/JcaGatewayMapper.java (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers110/JcaGatewayMapper.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -0,0 +1,67 @@
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2006, JBoss Inc., and individual contributors as indicated
+* by the @authors tag. See the copyright.txt in the distribution for a
+* full listing of individual contributors.
+*
+* This is free software; you can redistribute it and/or modify it
+* under the terms of the GNU Lesser General Public License as
+* published by the Free Software Foundation; either version 2.1 of
+* the License, or (at your option) any later version.
+*
+* This software is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+* Lesser General Public License for more details.
+*
+* You should have received a copy of the GNU Lesser General Public
+* License along with this software; if not, write to the Free
+* Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+* 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+*/
+package org.jboss.soa.esb.listeners.config.mappers110;
+
+import org.jboss.soa.esb.ConfigurationException;
+import org.jboss.soa.esb.dom.YADOMUtil;
+import org.jboss.soa.esb.listeners.ListenerTagNames;
+import org.jboss.soa.esb.listeners.config.xbeanmodel110.ServiceDocument;
+import org.jboss.soa.esb.listeners.config.xbeanmodel110.JcaGatewayDocument.JcaGateway;
+import org.jboss.soa.esb.listeners.jca.JcaInflowGateway;
+import org.w3c.dom.Element;
+
+/**
+ * comment
+ *
+ * @author <a href="bill at jboss.com">Bill Burke</a>
+ * @version $Revision$
+ */
+public class JcaGatewayMapper
+{
+ public static Element map(Element root, JcaGateway gateway, XMLBeansModel model) throws ConfigurationException
+ {
+ Element listenerNode = YADOMUtil.addElement(root, "listener");
+ gateway.setIsGateway(true);
+
+ listenerNode.setAttribute("name", gateway.getName());
+
+ ServiceDocument.Service service = model.getService(gateway);
+ listenerNode.setAttribute(ListenerTagNames.SERVICE_DESCRIPTION_TAG, service.getDescription());
+ listenerNode.setAttribute(ListenerTagNames.TARGET_SERVICE_CATEGORY_TAG, service.getCategory());
+ listenerNode.setAttribute(ListenerTagNames.TARGET_SERVICE_NAME_TAG, service.getName());
+
+ listenerNode.setAttribute("adapter", gateway.getAdapter());
+ listenerNode.setAttribute("endpointClass", gateway.getEndpointClass());
+ listenerNode.setAttribute("messagingType", gateway.getMessagingType());
+ listenerNode.setAttribute("jcaBridge", gateway.getJcaBridge());
+ listenerNode.setAttribute("transacted", new Boolean(gateway.getTransacted()).toString());
+
+ MapperUtil.mapProperties(gateway.getPropertyList(), listenerNode);
+ listenerNode.setAttribute("gatewayClass", JcaInflowGateway.class.getName());
+ Element activationConfig = YADOMUtil.addElement(listenerNode, "activation-config");
+ MapperUtil.serialize(gateway.getActivationConfig(), activationConfig);
+
+
+ YADOMUtil.removeEmptyAttributes(listenerNode);
+ return listenerNode;
+ }
+}
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers110/JmsListenerMapper.java
===================================================================
--- labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers110/JmsListenerMapper.java 2009-01-21 09:35:03 UTC (rev 24846)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers110/JmsListenerMapper.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -1,299 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2006, JBoss Inc., and others contributors as indicated
- * by the @authors tag. All rights reserved.
- * See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- * This copyrighted material is made available to anyone wishing to use,
- * modify, copy, or redistribute it subject to the terms and conditions
- * of the GNU Lesser General Public License, v. 2.1.
- * This program is distributed in the hope that it will be useful, but WITHOUT A
- * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
- * PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
- * You should have received a copy of the GNU Lesser General Public License,
- * v.2.1 along with this distribution; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
- * MA 02110-1301, USA.
- *
- * (C) 2005-2006,
- * @author JBoss Inc.
- */
-
-package org.jboss.soa.esb.listeners.config.mappers110;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-
-import javax.jms.Queue;
-import javax.jms.Topic;
-
-import org.apache.log4j.Logger;
-import org.jboss.soa.esb.ConfigurationException;
-import org.jboss.soa.esb.addressing.eprs.JMSEpr;
-import org.jboss.soa.esb.dom.YADOMUtil;
-import org.jboss.soa.esb.listeners.ListenerTagNames;
-import org.jboss.soa.esb.listeners.config.xbeanmodel110.JmsProviderType;
-import org.jboss.soa.esb.listeners.config.xbeanmodel110.ActivationConfigDocument.ActivationConfig;
-import org.jboss.soa.esb.listeners.config.xbeanmodel110.JmsBusDocument.JmsBus;
-import org.jboss.soa.esb.listeners.config.xbeanmodel110.JmsJcaProviderDocument.JmsJcaProvider;
-import org.jboss.soa.esb.listeners.config.xbeanmodel110.JmsListenerDocument.JmsListener;
-import org.jboss.soa.esb.listeners.config.xbeanmodel110.JmsMessageFilterDocument.JmsMessageFilter;
-import org.jboss.soa.esb.listeners.config.xbeanmodel110.JmsMessageFilterDocument.JmsMessageFilter.DestType;
-import org.jboss.soa.esb.listeners.config.xbeanmodel110.PropertyDocument.Property;
-import org.jboss.soa.esb.listeners.gateway.JmsGatewayListener;
-import org.jboss.soa.esb.listeners.gateway.PackageJmsMessageContents;
-import org.jboss.soa.esb.listeners.jca.JcaConstants;
-import org.jboss.soa.esb.listeners.jca.JcaGatewayListener;
-import org.jboss.soa.esb.listeners.jca.JcaJMSInflowMessageProcessorAdapter;
-import org.jboss.soa.esb.listeners.jca.JcaJMSMessageAwareComposer;
-import org.jboss.soa.esb.listeners.jca.JcaMessageAwareListener;
-import org.w3c.dom.Element;
-import org.w3c.dom.NodeList;
-
-/**
- * Performs the mapping of a <jms-listener> XSD based configuration to the "ConfigTree"
- * style configuration, adding the "ConfigTree" listener config to the "root" node.
- *
- * @author <a href="mailto:tom.fennelly at jboss.com">tom.fennelly at jboss.com</a>
- */
-public class JmsListenerMapper {
-
- @SuppressWarnings("unused")
- private static Logger log = Logger.getLogger( JmsListenerMapper.class );
-
- /**
- * Perform the mapping.
- * @param root The "ConfigTree" configuration root node.
- * @param listener The Jmslistener to be mapped into the ConfigTree.
- * @param model The configuration model from which the mapping is being performed.
- * @return The ConfigTree listener configuration node.
- * @throws ConfigurationException Invalid listener configuration.
- */
- public static Element map(Element root, JmsListener listener, XMLBeansModel model) throws ConfigurationException {
- Element listenerNode = YADOMUtil.addElement(root, "listener");
- JmsBus bus;
- JmsProviderType provider;
-
- listenerNode.setAttribute("name", listener.getName());
-
- try {
- bus = (JmsBus) model.getBus(listener.getBusidref());
- } catch (ClassCastException e) {
- throw new ConfigurationException("Invalid busid reference [" + listener.getBusidref() + "] on listener [" + listener.getName() + "]. A <jms-listener> must reference a <jms-bus>.");
- }
- try {
- provider = (JmsProviderType) model.getProvider(bus);
- } catch (ClassCastException e) {
- throw new ConfigurationException("Invalid bus config [" + listener.getBusidref() + "]. Should be contained within a <jms-provider> instance. Unexpected exception - this should have caused a validation error!");
- }
-
- JmsMessageFilter messageFilter = listener.getJmsMessageFilter();
- if(messageFilter == null) {
- messageFilter = bus.getJmsMessageFilter();
- if(messageFilter == null) {
- throw new ConfigurationException("No <jms-detination> defined on either <jms-listener> [" + listener.getName() + "] or <jms-bus> [" + bus.getBusid() + "].");
- }
- }
-
- final Class<?> gatewayClass ;
- if (provider instanceof JmsJcaProvider) {
- final JmsJcaProvider jmsJcaProvider = (JmsJcaProvider)provider ;
- mapJmsJcaAttributes(listener, listenerNode, jmsJcaProvider, messageFilter) ;
- gatewayClass = JcaGatewayListener.class ;
- } else {
- gatewayClass = JmsGatewayListener.class ;
- }
-
- // Map the standard listener attributes - common across all listener types...
- MapperUtil.mapDefaultAttributes(listener, listenerNode, model);
- // Map the <property> elements targeted at the listener - from the listener itself.
- MapperUtil.mapProperties(listener.getPropertyList(), listenerNode);
- if(listener.getIsGateway()) {
-
- listenerNode.setAttribute("gatewayClass", gatewayClass.getName());
- listenerNode.setAttribute(ListenerTagNames.IS_GATEWAY_TAG, Boolean.toString(listener.getIsGateway()));
-
- // Map EPR related attributes onto the listener - from the bus and provider and listener.
- // Note: This will change - the Gateways will also support the EPR element...
- mapJmsEprProperties(listenerNode, provider, messageFilter);
- listenerNode.setAttribute(ListenerTagNames.PROTOCOL_TAG, JMSEpr.JMS_PROTOCOL);
-
- MapperUtil.mapEPRProperties(listener, listenerNode, model);
- } else {
- Element eprNode = YADOMUtil.addElement(listenerNode, ListenerTagNames.EPR_TAG);
-
-
- // Map EPR related attributes onto the EPR - from the bus and provider and listener...
- mapJmsEprProperties(eprNode, provider, messageFilter);
- eprNode.setAttribute(ListenerTagNames.PROTOCOL_TAG, JMSEpr.JMS_PROTOCOL);
-
- MapperUtil.mapEPRProperties(listener, eprNode, model);
- // Remove any empty attributes set on the EPR config...
- YADOMUtil.removeEmptyAttributes(eprNode);
- }
-
- // Remove any empty attributes set on the listener config...
- YADOMUtil.removeEmptyAttributes(listenerNode);
-
- return listenerNode;
- }
-
- private static void mapJmsEprProperties(Element toElement, JmsProviderType provider, JmsMessageFilter messageFilter) {
- if(messageFilter.getDestType() == JmsMessageFilter.DestType.QUEUE) {
- toElement.setAttribute(JMSEpr.DESTINATION_TYPE_TAG, JMSEpr.QUEUE_TYPE);
- } else {
- toElement.setAttribute(JMSEpr.DESTINATION_TYPE_TAG, JMSEpr.TOPIC_TYPE);
- }
- toElement.setAttribute(JMSEpr.DESTINATION_NAME_TAG, messageFilter.getDestName());
- toElement.setAttribute(JMSEpr.MESSAGE_SELECTOR_TAG, messageFilter.getSelector());
- toElement.setAttribute(JMSEpr.CONNECTION_FACTORY_TAG, provider.getConnectionFactory());
- toElement.setAttribute(JMSEpr.JNDI_CONTEXT_FACTORY_TAG, provider.getJndiContextFactory());
- toElement.setAttribute(JMSEpr.JNDI_PKG_PREFIX_TAG, provider.getJndiPkgPrefix());
- toElement.setAttribute(JMSEpr.JNDI_URL_TAG, provider.getJndiURL());
- toElement.setAttribute(JMSEpr.PERSISTENT_TAG, Boolean.toString( messageFilter.getPersistent()));
- toElement.setAttribute(JMSEpr.ACKNOWLEDGE_MODE_TAG, messageFilter.getAcknowledgeMode());
- toElement.setAttribute(JMSEpr.JMS_SECURITY_PRINCIPAL_TAG, messageFilter.getJmsSecurityPrincipal());
- toElement.setAttribute(JMSEpr.JMS_SECURITY_CREDENTIAL_TAG, messageFilter.getJmsSecurityCredential());
- toElement.setAttribute(JMSEpr.TRANSACTED_TAG, Boolean.toString( messageFilter.getTransacted()));
- }
-
- /*
- * @throws ConfigurationException is one of the following activation-config
- * properties are overridden:
- * - destination
- * - destinationType
- * - messageSelector
- * - maxMessages
- */
- private static void mapJmsJcaAttributes(final JmsListener listener,
- final Element listenerNode, final JmsJcaProvider jmsJcaProvider,
- final JmsMessageFilter messageFilter)
- throws ConfigurationException {
- setAttribute(listenerNode, JcaConstants.ATTRIBUTE_ADAPTER,
- jmsJcaProvider.getAdapter(), "jms-ra.rar") ;
- setAttribute(listenerNode, JcaConstants.ATTRIBUTE_ENDPOINT_CLASS,
- jmsJcaProvider.getEndpointClass(), JcaJMSInflowMessageProcessorAdapter.class.getName()) ;
- setAttribute(listenerNode, JcaConstants.ATTRIBUTE_MESSAGING_TYPE,
- jmsJcaProvider.getMessagingType()) ;
- setAttribute(listenerNode, JcaConstants.ATTRIBUTE_JCA_BRIDGE,
- jmsJcaProvider.getJcaBridge()) ;
- final boolean transacted ;
- if (jmsJcaProvider.isSetTransacted())
- {
- transacted = jmsJcaProvider.getTransacted() ;
- }
- else
- {
- transacted = true ;
- }
-
- setAttribute(listenerNode, JcaConstants.ATTRIBUTE_TRANSACTED,
- Boolean.toString(transacted)) ;
-
- if (listener.getIsGateway())
- {
- setAttribute(listenerNode, ListenerTagNames.GATEWAY_COMPOSER_CLASS_TAG,
- PackageJmsMessageContents.class.getName()) ;
- setAttribute(listenerNode, ListenerTagNames.GATEWAY_COMPOSER_METHOD_TAG,
- "process") ;
- }
- else
- {
- setAttribute(listenerNode, ListenerTagNames.LISTENER_CLASS_TAG,
- JcaMessageAwareListener.class.getName()) ;
- setAttribute(listenerNode, JcaConstants.ATTRIBUTE_LISTENER_COMPOSER_CLASS,
- JcaJMSMessageAwareComposer.class.getName()) ;
- }
-
- final Element activationConfigElement = YADOMUtil.addElement(listenerNode, JcaConstants.ELEMENT_ACTIVATION_CONFIG) ;
- addPropertyElement(activationConfigElement, "destination", messageFilter.getDestName()) ;
- if (jmsJcaProvider.isSetProviderAdapterJNDI())
- {
- addPropertyElement(activationConfigElement, "providerAdapterJNDI", jmsJcaProvider.getProviderAdapterJNDI()) ;
- }
- final int destType = messageFilter.getDestType().intValue() ;
- if (destType == DestType.INT_QUEUE)
- {
- addPropertyElement(activationConfigElement, "destinationType", Queue.class.getName()) ;
- }
- else if (destType == DestType.INT_TOPIC)
- {
- addPropertyElement(activationConfigElement, "destinationType", Topic.class.getName()) ;
- }
- else
- {
- throw new ConfigurationException("Unknown destination type: " + messageFilter.getDestType()) ;
- }
-
- if (messageFilter.getSelector() != null)
- {
- addPropertyElement(activationConfigElement, "messageSelector", messageFilter.getSelector()) ;
- }
- if (listener.getMaxThreads() > 0)
- {
- addPropertyElement(activationConfigElement, "maxMessages", Integer.toString(listener.getMaxThreads())) ;
- }
-
- final List<String> defaultPropertyNames = getDefaultActivationConfigNames( activationConfigElement );
- log.debug("Default activation-config properties :" + defaultPropertyNames );
-
- /*
- * add user activation-config properties specified in the provider element.
- */
- ActivationConfig activationConfig = jmsJcaProvider.getActivationConfig();
- if ( activationConfig != null )
- {
- List<Property> propertyList = activationConfig.getPropertyList();
- for (Iterator<Property> iterator = propertyList.iterator(); iterator.hasNext();)
- {
- Property prop = iterator.next();
- if ( defaultPropertyNames.contains( prop.getName() ))
- throw new ConfigurationException( "activation-config already contains [" + prop.getName() + "], which cannot be overridden");
-
- addPropertyElement(activationConfigElement, prop.getName(), prop.getValue()) ;
- }
- }
- }
-
- private static List<String> getDefaultActivationConfigNames(final Element activationConfigElement )
- {
- NodeList defaultActivationProperties = activationConfigElement.getElementsByTagName( "property" );
- final List<String> defaultPropertyNames = new ArrayList<String>(5);
- for (int i = defaultActivationProperties.getLength() ; i-->0 ; )
- defaultPropertyNames.add(defaultActivationProperties.item( i ).getAttributes().getNamedItem( "name" ).getNodeValue() );
-
- return defaultPropertyNames;
- }
-
- private static void setAttribute(final Element listenerNode,
- final String name, final String value)
- {
- if (value != null)
- {
- listenerNode.setAttribute(name, value) ;
- }
- }
-
- private static void setAttribute(final Element listenerNode,
- final String name, final String value, final String defaultValue)
- {
- if (value == null)
- {
- listenerNode.setAttribute(name, defaultValue) ;
- }
- else
- {
- listenerNode.setAttribute(name, value) ;
- }
- }
-
- private static void addPropertyElement(final Element activationConfigElement,
- final String name, final String value)
- {
- final Element propertyElement = YADOMUtil.addElement(activationConfigElement,
- JcaConstants.ELEMENT_PROPERTY) ;
- propertyElement.setAttribute("name", name) ;
- propertyElement.setAttribute("value", value) ;
- }
-}
Copied: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers110/JmsListenerMapper.java (from rev 24846, labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers110/JmsListenerMapper.java)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers110/JmsListenerMapper.java (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers110/JmsListenerMapper.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -0,0 +1,299 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and others contributors as indicated
+ * by the @authors tag. All rights reserved.
+ * See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License, v. 2.1.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+ * PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
+ * You should have received a copy of the GNU Lesser General Public License,
+ * v.2.1 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301, USA.
+ *
+ * (C) 2005-2006,
+ * @author JBoss Inc.
+ */
+
+package org.jboss.soa.esb.listeners.config.mappers110;
+
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
+
+import javax.jms.Queue;
+import javax.jms.Topic;
+
+import org.apache.log4j.Logger;
+import org.jboss.soa.esb.ConfigurationException;
+import org.jboss.soa.esb.addressing.eprs.JMSEpr;
+import org.jboss.soa.esb.dom.YADOMUtil;
+import org.jboss.soa.esb.listeners.ListenerTagNames;
+import org.jboss.soa.esb.listeners.config.xbeanmodel110.JmsProviderType;
+import org.jboss.soa.esb.listeners.config.xbeanmodel110.ActivationConfigDocument.ActivationConfig;
+import org.jboss.soa.esb.listeners.config.xbeanmodel110.JmsBusDocument.JmsBus;
+import org.jboss.soa.esb.listeners.config.xbeanmodel110.JmsJcaProviderDocument.JmsJcaProvider;
+import org.jboss.soa.esb.listeners.config.xbeanmodel110.JmsListenerDocument.JmsListener;
+import org.jboss.soa.esb.listeners.config.xbeanmodel110.JmsMessageFilterDocument.JmsMessageFilter;
+import org.jboss.soa.esb.listeners.config.xbeanmodel110.JmsMessageFilterDocument.JmsMessageFilter.DestType;
+import org.jboss.soa.esb.listeners.config.xbeanmodel110.PropertyDocument.Property;
+import org.jboss.soa.esb.listeners.gateway.JmsGatewayListener;
+import org.jboss.soa.esb.listeners.gateway.PackageJmsMessageContents;
+import org.jboss.soa.esb.listeners.jca.JcaConstants;
+import org.jboss.soa.esb.listeners.jca.JcaGatewayListener;
+import org.jboss.soa.esb.listeners.jca.JcaJMSInflowMessageProcessorAdapter;
+import org.jboss.soa.esb.listeners.jca.JcaJMSMessageAwareComposer;
+import org.jboss.soa.esb.listeners.jca.JcaMessageAwareListener;
+import org.w3c.dom.Element;
+import org.w3c.dom.NodeList;
+
+/**
+ * Performs the mapping of a <jms-listener> XSD based configuration to the "ConfigTree"
+ * style configuration, adding the "ConfigTree" listener config to the "root" node.
+ *
+ * @author <a href="mailto:tom.fennelly at jboss.com">tom.fennelly at jboss.com</a>
+ */
+public class JmsListenerMapper {
+
+ @SuppressWarnings("unused")
+ private static Logger log = Logger.getLogger( JmsListenerMapper.class );
+
+ /**
+ * Perform the mapping.
+ * @param root The "ConfigTree" configuration root node.
+ * @param listener The Jmslistener to be mapped into the ConfigTree.
+ * @param model The configuration model from which the mapping is being performed.
+ * @return The ConfigTree listener configuration node.
+ * @throws ConfigurationException Invalid listener configuration.
+ */
+ public static Element map(Element root, JmsListener listener, XMLBeansModel model) throws ConfigurationException {
+ Element listenerNode = YADOMUtil.addElement(root, "listener");
+ JmsBus bus;
+ JmsProviderType provider;
+
+ listenerNode.setAttribute("name", listener.getName());
+
+ try {
+ bus = (JmsBus) model.getBus(listener.getBusidref());
+ } catch (ClassCastException e) {
+ throw new ConfigurationException("Invalid busid reference [" + listener.getBusidref() + "] on listener [" + listener.getName() + "]. A <jms-listener> must reference a <jms-bus>.");
+ }
+ try {
+ provider = (JmsProviderType) model.getProvider(bus);
+ } catch (ClassCastException e) {
+ throw new ConfigurationException("Invalid bus config [" + listener.getBusidref() + "]. Should be contained within a <jms-provider> instance. Unexpected exception - this should have caused a validation error!");
+ }
+
+ JmsMessageFilter messageFilter = listener.getJmsMessageFilter();
+ if(messageFilter == null) {
+ messageFilter = bus.getJmsMessageFilter();
+ if(messageFilter == null) {
+ throw new ConfigurationException("No <jms-detination> defined on either <jms-listener> [" + listener.getName() + "] or <jms-bus> [" + bus.getBusid() + "].");
+ }
+ }
+
+ final Class<?> gatewayClass ;
+ if (provider instanceof JmsJcaProvider) {
+ final JmsJcaProvider jmsJcaProvider = (JmsJcaProvider)provider ;
+ mapJmsJcaAttributes(listener, listenerNode, jmsJcaProvider, messageFilter) ;
+ gatewayClass = JcaGatewayListener.class ;
+ } else {
+ gatewayClass = JmsGatewayListener.class ;
+ }
+
+ // Map the standard listener attributes - common across all listener types...
+ MapperUtil.mapDefaultAttributes(listener, listenerNode, model);
+ // Map the <property> elements targeted at the listener - from the listener itself.
+ MapperUtil.mapProperties(listener.getPropertyList(), listenerNode);
+ if(listener.getIsGateway()) {
+
+ listenerNode.setAttribute("gatewayClass", gatewayClass.getName());
+ listenerNode.setAttribute(ListenerTagNames.IS_GATEWAY_TAG, Boolean.toString(listener.getIsGateway()));
+
+ // Map EPR related attributes onto the listener - from the bus and provider and listener.
+ // Note: This will change - the Gateways will also support the EPR element...
+ mapJmsEprProperties(listenerNode, provider, messageFilter);
+ listenerNode.setAttribute(ListenerTagNames.PROTOCOL_TAG, JMSEpr.JMS_PROTOCOL);
+
+ MapperUtil.mapEPRProperties(listener, listenerNode, model);
+ } else {
+ Element eprNode = YADOMUtil.addElement(listenerNode, ListenerTagNames.EPR_TAG);
+
+
+ // Map EPR related attributes onto the EPR - from the bus and provider and listener...
+ mapJmsEprProperties(eprNode, provider, messageFilter);
+ eprNode.setAttribute(ListenerTagNames.PROTOCOL_TAG, JMSEpr.JMS_PROTOCOL);
+
+ MapperUtil.mapEPRProperties(listener, eprNode, model);
+ // Remove any empty attributes set on the EPR config...
+ YADOMUtil.removeEmptyAttributes(eprNode);
+ }
+
+ // Remove any empty attributes set on the listener config...
+ YADOMUtil.removeEmptyAttributes(listenerNode);
+
+ return listenerNode;
+ }
+
+ private static void mapJmsEprProperties(Element toElement, JmsProviderType provider, JmsMessageFilter messageFilter) {
+ if(messageFilter.getDestType() == JmsMessageFilter.DestType.QUEUE) {
+ toElement.setAttribute(JMSEpr.DESTINATION_TYPE_TAG, JMSEpr.QUEUE_TYPE);
+ } else {
+ toElement.setAttribute(JMSEpr.DESTINATION_TYPE_TAG, JMSEpr.TOPIC_TYPE);
+ }
+ toElement.setAttribute(JMSEpr.DESTINATION_NAME_TAG, messageFilter.getDestName());
+ toElement.setAttribute(JMSEpr.MESSAGE_SELECTOR_TAG, messageFilter.getSelector());
+ toElement.setAttribute(JMSEpr.CONNECTION_FACTORY_TAG, provider.getConnectionFactory());
+ toElement.setAttribute(JMSEpr.JNDI_CONTEXT_FACTORY_TAG, provider.getJndiContextFactory());
+ toElement.setAttribute(JMSEpr.JNDI_PKG_PREFIX_TAG, provider.getJndiPkgPrefix());
+ toElement.setAttribute(JMSEpr.JNDI_URL_TAG, provider.getJndiURL());
+ toElement.setAttribute(JMSEpr.PERSISTENT_TAG, Boolean.toString( messageFilter.getPersistent()));
+ toElement.setAttribute(JMSEpr.ACKNOWLEDGE_MODE_TAG, messageFilter.getAcknowledgeMode());
+ toElement.setAttribute(JMSEpr.JMS_SECURITY_PRINCIPAL_TAG, messageFilter.getJmsSecurityPrincipal());
+ toElement.setAttribute(JMSEpr.JMS_SECURITY_CREDENTIAL_TAG, messageFilter.getJmsSecurityCredential());
+ toElement.setAttribute(JMSEpr.TRANSACTED_TAG, Boolean.toString( messageFilter.getTransacted()));
+ }
+
+ /*
+ * @throws ConfigurationException is one of the following activation-config
+ * properties are overridden:
+ * - destination
+ * - destinationType
+ * - messageSelector
+ * - maxMessages
+ */
+ private static void mapJmsJcaAttributes(final JmsListener listener,
+ final Element listenerNode, final JmsJcaProvider jmsJcaProvider,
+ final JmsMessageFilter messageFilter)
+ throws ConfigurationException {
+ setAttribute(listenerNode, JcaConstants.ATTRIBUTE_ADAPTER,
+ jmsJcaProvider.getAdapter(), "jms-ra.rar") ;
+ setAttribute(listenerNode, JcaConstants.ATTRIBUTE_ENDPOINT_CLASS,
+ jmsJcaProvider.getEndpointClass(), JcaJMSInflowMessageProcessorAdapter.class.getName()) ;
+ setAttribute(listenerNode, JcaConstants.ATTRIBUTE_MESSAGING_TYPE,
+ jmsJcaProvider.getMessagingType()) ;
+ setAttribute(listenerNode, JcaConstants.ATTRIBUTE_JCA_BRIDGE,
+ jmsJcaProvider.getJcaBridge()) ;
+ final boolean transacted ;
+ if (jmsJcaProvider.isSetTransacted())
+ {
+ transacted = jmsJcaProvider.getTransacted() ;
+ }
+ else
+ {
+ transacted = true ;
+ }
+
+ setAttribute(listenerNode, JcaConstants.ATTRIBUTE_TRANSACTED,
+ Boolean.toString(transacted)) ;
+
+ if (listener.getIsGateway())
+ {
+ setAttribute(listenerNode, ListenerTagNames.GATEWAY_COMPOSER_CLASS_TAG,
+ PackageJmsMessageContents.class.getName()) ;
+ setAttribute(listenerNode, ListenerTagNames.GATEWAY_COMPOSER_METHOD_TAG,
+ "process") ;
+ }
+ else
+ {
+ setAttribute(listenerNode, ListenerTagNames.LISTENER_CLASS_TAG,
+ JcaMessageAwareListener.class.getName()) ;
+ setAttribute(listenerNode, JcaConstants.ATTRIBUTE_LISTENER_COMPOSER_CLASS,
+ JcaJMSMessageAwareComposer.class.getName()) ;
+ }
+
+ final Element activationConfigElement = YADOMUtil.addElement(listenerNode, JcaConstants.ELEMENT_ACTIVATION_CONFIG) ;
+ addPropertyElement(activationConfigElement, "destination", messageFilter.getDestName()) ;
+ if (jmsJcaProvider.isSetProviderAdapterJNDI())
+ {
+ addPropertyElement(activationConfigElement, "providerAdapterJNDI", jmsJcaProvider.getProviderAdapterJNDI()) ;
+ }
+ final int destType = messageFilter.getDestType().intValue() ;
+ if (destType == DestType.INT_QUEUE)
+ {
+ addPropertyElement(activationConfigElement, "destinationType", Queue.class.getName()) ;
+ }
+ else if (destType == DestType.INT_TOPIC)
+ {
+ addPropertyElement(activationConfigElement, "destinationType", Topic.class.getName()) ;
+ }
+ else
+ {
+ throw new ConfigurationException("Unknown destination type: " + messageFilter.getDestType()) ;
+ }
+
+ if (messageFilter.getSelector() != null)
+ {
+ addPropertyElement(activationConfigElement, "messageSelector", messageFilter.getSelector()) ;
+ }
+ if (listener.getMaxThreads() > 0)
+ {
+ addPropertyElement(activationConfigElement, "maxMessages", Integer.toString(listener.getMaxThreads())) ;
+ }
+
+ final List<String> defaultPropertyNames = getDefaultActivationConfigNames( activationConfigElement );
+ log.debug("Default activation-config properties :" + defaultPropertyNames );
+
+ /*
+ * add user activation-config properties specified in the provider element.
+ */
+ ActivationConfig activationConfig = jmsJcaProvider.getActivationConfig();
+ if ( activationConfig != null )
+ {
+ List<Property> propertyList = activationConfig.getPropertyList();
+ for (Iterator<Property> iterator = propertyList.iterator(); iterator.hasNext();)
+ {
+ Property prop = iterator.next();
+ if ( defaultPropertyNames.contains( prop.getName() ))
+ throw new ConfigurationException( "activation-config already contains [" + prop.getName() + "], which cannot be overridden");
+
+ addPropertyElement(activationConfigElement, prop.getName(), prop.getValue()) ;
+ }
+ }
+ }
+
+ private static List<String> getDefaultActivationConfigNames(final Element activationConfigElement )
+ {
+ NodeList defaultActivationProperties = activationConfigElement.getElementsByTagName( "property" );
+ final List<String> defaultPropertyNames = new ArrayList<String>(5);
+ for (int i = defaultActivationProperties.getLength() ; i-->0 ; )
+ defaultPropertyNames.add(defaultActivationProperties.item( i ).getAttributes().getNamedItem( "name" ).getNodeValue() );
+
+ return defaultPropertyNames;
+ }
+
+ private static void setAttribute(final Element listenerNode,
+ final String name, final String value)
+ {
+ if (value != null)
+ {
+ listenerNode.setAttribute(name, value) ;
+ }
+ }
+
+ private static void setAttribute(final Element listenerNode,
+ final String name, final String value, final String defaultValue)
+ {
+ if (value == null)
+ {
+ listenerNode.setAttribute(name, defaultValue) ;
+ }
+ else
+ {
+ listenerNode.setAttribute(name, value) ;
+ }
+ }
+
+ private static void addPropertyElement(final Element activationConfigElement,
+ final String name, final String value)
+ {
+ final Element propertyElement = YADOMUtil.addElement(activationConfigElement,
+ JcaConstants.ELEMENT_PROPERTY) ;
+ propertyElement.setAttribute("name", name) ;
+ propertyElement.setAttribute("value", value) ;
+ }
+}
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers110/MapperUtil.java
===================================================================
--- labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers110/MapperUtil.java 2009-01-21 09:35:03 UTC (rev 24846)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers110/MapperUtil.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -1,178 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2006, JBoss Inc., and others contributors as indicated
- * by the @authors tag. All rights reserved.
- * See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- * This copyrighted material is made available to anyone wishing to use,
- * modify, copy, or redistribute it subject to the terms and conditions
- * of the GNU Lesser General Public License, v. 2.1.
- * This program is distributed in the hope that it will be useful, but WITHOUT A
- * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
- * PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
- * You should have received a copy of the GNU Lesser General Public License,
- * v.2.1 along with this distribution; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
- * MA 02110-1301, USA.
- *
- * (C) 2005-2006,
- * @author JBoss Inc.
- */
-
-package org.jboss.soa.esb.listeners.config.mappers110;
-
-import java.util.List;
-
-import org.apache.xmlbeans.XmlCursor;
-import org.apache.xmlbeans.XmlObject;
-import org.apache.xmlbeans.XmlCursor.TokenType;
-import org.jboss.soa.esb.ConfigurationException;
-import org.jboss.soa.esb.dom.YADOMUtil;
-import org.jboss.soa.esb.listeners.ListenerTagNames;
-import org.jboss.soa.esb.listeners.config.xbeanmodel110.Bus;
-import org.jboss.soa.esb.listeners.config.xbeanmodel110.Listener;
-import org.jboss.soa.esb.listeners.config.xbeanmodel110.Provider;
-import org.jboss.soa.esb.listeners.config.xbeanmodel110.PropertyDocument.Property;
-import org.jboss.soa.esb.listeners.config.xbeanmodel110.ServiceDocument.Service;
-import org.jboss.soa.esb.listeners.message.MessageAwareListener;
-import org.w3c.dom.Document;
-import org.w3c.dom.Element;
-
-/**
- * Mapper utility methods.
- * @author <a href="mailto:tom.fennelly at jboss.com">tom.fennelly at jboss.com</a>
- */
-public abstract class MapperUtil {
-
- /**
- * Map all default listener attributes onto the target listener ConfigTree.
- * @param listener The listener configuration instance.
- * @param listenerNode The target DOM ConfigTree listener element.
- * @param model The model.
- */
- protected static void mapDefaultAttributes(Listener listener, Element listenerNode, XMLBeansModel model) {
- Service service = model.getService(listener);
- boolean isGateway = listener.getIsGateway();
-
- // Map maxThreads - appears to be a JMS only attrib...
- listenerNode.setAttribute(ListenerTagNames.MAX_THREADS_TAG, String.valueOf(listener.getMaxThreads()));
-
- mapListenerServiceAttributes(listenerNode, service, isGateway);
- if (!isGateway && !listenerNode.hasAttribute(ListenerTagNames.LISTENER_CLASS_TAG)) {
- listenerNode.setAttribute(ListenerTagNames.LISTENER_CLASS_TAG, MessageAwareListener.class.getName());
- }
- }
-
- /**
- * Map the Service specific attributes onto the listener configuration.
- * @param listenerNode The listener config node.
- * @param service The Service details (from the model).
- * @param isGateway True if the listener is a gateway, otherwise false.
- */
- public static void mapListenerServiceAttributes(Element listenerNode, Service service, boolean isGateway) {
- listenerNode.setAttribute(ListenerTagNames.SERVICE_DESCRIPTION_TAG, service.getDescription());
- if (isGateway) {
- listenerNode.setAttribute(ListenerTagNames.TARGET_SERVICE_CATEGORY_TAG, service.getCategory());
- listenerNode.setAttribute(ListenerTagNames.TARGET_SERVICE_NAME_TAG, service.getName());
- } else {
- listenerNode.setAttribute(ListenerTagNames.SERVICE_CATEGORY_NAME_TAG, service.getCategory());
- listenerNode.setAttribute(ListenerTagNames.SERVICE_NAME_TAG, service.getName());
- }
- }
-
- /**
- * Map all the properties targeted at the supplied listener onto the target element.
- * <p/>
- * This involves copying the properties from the associated bus and provider nodes.
- * @param listener The listener config instance.
- * @param target The target DOM ConfigTree listener element.
- * @param model The model.
- * @throws ConfigurationException Bad bis configuration.
- */
- protected static void mapEPRProperties(Listener listener, Element target, XMLBeansModel model) throws ConfigurationException {
- Bus bus = model.getBus(listener.getBusidref());
- Provider provider = model.getProvider(bus);
-
- // Map the properties from the provider config...
- mapProperties(provider.getPropertyList(), target);
- // Map the properties from the bus config...
- mapProperties(bus.getPropertyList(), target);
- }
-
- /**
- * Map all the supplied properties onto the target element.
- * @param target The target DOM element.
- * @param properties The properties to be mapped.
- */
- public static void mapProperties(List<Property> properties, Element target) {
- // Map the property elements to actions attributes...
- for(Property property : properties) {
- Element propertyElement = target.getOwnerDocument().createElement("property");
- serialize(property, propertyElement);
- if (propertyElement.hasChildNodes())
- {
- YADOMUtil.copyChildNodes(propertyElement, target);
- }
- else
- {
- target.setAttribute(property.getName(), property.getValue());
- }
- }
- }
-
- /**
- * Serialise the supplied {@link XmlObject} instance to the supplied element.
- * @param xmlObject The XmlObject instance.
- * @param toElement The element to which the cursor is to be serialised.
- */
- protected static void serialize(XmlObject xmlObject, Element toElement) {
- XmlCursor cursor = xmlObject.newCursor();
-
- // Note there are methods on the XmlObject that "looked" as though they might be able
- // to do this for us (save, newDomNode etc), but they kept throwing exceptions.
-
- serialize(cursor, toElement);
- cursor.dispose();
- }
-
- /**
- * Serialise the XML content behind the supplied XmlCursor instance to the supplied
- * target element.
- * @param cursor The cursor instance.
- * @param toElement The target DOM Element.
- */
- private static void serialize(XmlCursor cursor, Element toElement) {
- TokenType token;
- Document doc = toElement.getOwnerDocument();
-
- while(true) {
- token = cursor.toNextToken();
-
- switch (token.intValue()) {
- case TokenType.INT_ATTR:
- toElement.setAttribute(cursor.getName().getLocalPart(), cursor.getTextValue());
- break;
- case TokenType.INT_COMMENT:
- toElement.appendChild(doc.createComment(cursor.getTextValue()));
- break;
- case TokenType.INT_START:
- Element childElement = doc.createElement(cursor.getName().getLocalPart());
- toElement.appendChild(childElement);
- serialize(cursor, childElement);
- break;
- case TokenType.INT_TEXT:
- toElement.appendChild(doc.createTextNode(cursor.getChars()));
- break;
- case TokenType.INT_END:
- case TokenType.INT_STARTDOC:
- case TokenType.INT_ENDDOC:
- case TokenType.INT_NONE:
- return;
- case TokenType.INT_PROCINST:
- case TokenType.INT_NAMESPACE:
- default:
- break;
- }
- }
- }
-}
Copied: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers110/MapperUtil.java (from rev 24846, labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers110/MapperUtil.java)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers110/MapperUtil.java (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers110/MapperUtil.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -0,0 +1,178 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and others contributors as indicated
+ * by the @authors tag. All rights reserved.
+ * See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License, v. 2.1.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+ * PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
+ * You should have received a copy of the GNU Lesser General Public License,
+ * v.2.1 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301, USA.
+ *
+ * (C) 2005-2006,
+ * @author JBoss Inc.
+ */
+
+package org.jboss.soa.esb.listeners.config.mappers110;
+
+import java.util.List;
+
+import org.apache.xmlbeans.XmlCursor;
+import org.apache.xmlbeans.XmlObject;
+import org.apache.xmlbeans.XmlCursor.TokenType;
+import org.jboss.soa.esb.ConfigurationException;
+import org.jboss.soa.esb.dom.YADOMUtil;
+import org.jboss.soa.esb.listeners.ListenerTagNames;
+import org.jboss.soa.esb.listeners.config.xbeanmodel110.Bus;
+import org.jboss.soa.esb.listeners.config.xbeanmodel110.Listener;
+import org.jboss.soa.esb.listeners.config.xbeanmodel110.Provider;
+import org.jboss.soa.esb.listeners.config.xbeanmodel110.PropertyDocument.Property;
+import org.jboss.soa.esb.listeners.config.xbeanmodel110.ServiceDocument.Service;
+import org.jboss.soa.esb.listeners.message.MessageAwareListener;
+import org.w3c.dom.Document;
+import org.w3c.dom.Element;
+
+/**
+ * Mapper utility methods.
+ * @author <a href="mailto:tom.fennelly at jboss.com">tom.fennelly at jboss.com</a>
+ */
+public abstract class MapperUtil {
+
+ /**
+ * Map all default listener attributes onto the target listener ConfigTree.
+ * @param listener The listener configuration instance.
+ * @param listenerNode The target DOM ConfigTree listener element.
+ * @param model The model.
+ */
+ protected static void mapDefaultAttributes(Listener listener, Element listenerNode, XMLBeansModel model) {
+ Service service = model.getService(listener);
+ boolean isGateway = listener.getIsGateway();
+
+ // Map maxThreads - appears to be a JMS only attrib...
+ listenerNode.setAttribute(ListenerTagNames.MAX_THREADS_TAG, String.valueOf(listener.getMaxThreads()));
+
+ mapListenerServiceAttributes(listenerNode, service, isGateway);
+ if (!isGateway && !listenerNode.hasAttribute(ListenerTagNames.LISTENER_CLASS_TAG)) {
+ listenerNode.setAttribute(ListenerTagNames.LISTENER_CLASS_TAG, MessageAwareListener.class.getName());
+ }
+ }
+
+ /**
+ * Map the Service specific attributes onto the listener configuration.
+ * @param listenerNode The listener config node.
+ * @param service The Service details (from the model).
+ * @param isGateway True if the listener is a gateway, otherwise false.
+ */
+ public static void mapListenerServiceAttributes(Element listenerNode, Service service, boolean isGateway) {
+ listenerNode.setAttribute(ListenerTagNames.SERVICE_DESCRIPTION_TAG, service.getDescription());
+ if (isGateway) {
+ listenerNode.setAttribute(ListenerTagNames.TARGET_SERVICE_CATEGORY_TAG, service.getCategory());
+ listenerNode.setAttribute(ListenerTagNames.TARGET_SERVICE_NAME_TAG, service.getName());
+ } else {
+ listenerNode.setAttribute(ListenerTagNames.SERVICE_CATEGORY_NAME_TAG, service.getCategory());
+ listenerNode.setAttribute(ListenerTagNames.SERVICE_NAME_TAG, service.getName());
+ }
+ }
+
+ /**
+ * Map all the properties targeted at the supplied listener onto the target element.
+ * <p/>
+ * This involves copying the properties from the associated bus and provider nodes.
+ * @param listener The listener config instance.
+ * @param target The target DOM ConfigTree listener element.
+ * @param model The model.
+ * @throws ConfigurationException Bad bis configuration.
+ */
+ protected static void mapEPRProperties(Listener listener, Element target, XMLBeansModel model) throws ConfigurationException {
+ Bus bus = model.getBus(listener.getBusidref());
+ Provider provider = model.getProvider(bus);
+
+ // Map the properties from the provider config...
+ mapProperties(provider.getPropertyList(), target);
+ // Map the properties from the bus config...
+ mapProperties(bus.getPropertyList(), target);
+ }
+
+ /**
+ * Map all the supplied properties onto the target element.
+ * @param target The target DOM element.
+ * @param properties The properties to be mapped.
+ */
+ public static void mapProperties(List<Property> properties, Element target) {
+ // Map the property elements to actions attributes...
+ for(Property property : properties) {
+ Element propertyElement = target.getOwnerDocument().createElement("property");
+ serialize(property, propertyElement);
+ if (propertyElement.hasChildNodes())
+ {
+ YADOMUtil.copyChildNodes(propertyElement, target);
+ }
+ else
+ {
+ target.setAttribute(property.getName(), property.getValue());
+ }
+ }
+ }
+
+ /**
+ * Serialise the supplied {@link XmlObject} instance to the supplied element.
+ * @param xmlObject The XmlObject instance.
+ * @param toElement The element to which the cursor is to be serialised.
+ */
+ protected static void serialize(XmlObject xmlObject, Element toElement) {
+ XmlCursor cursor = xmlObject.newCursor();
+
+ // Note there are methods on the XmlObject that "looked" as though they might be able
+ // to do this for us (save, newDomNode etc), but they kept throwing exceptions.
+
+ serialize(cursor, toElement);
+ cursor.dispose();
+ }
+
+ /**
+ * Serialise the XML content behind the supplied XmlCursor instance to the supplied
+ * target element.
+ * @param cursor The cursor instance.
+ * @param toElement The target DOM Element.
+ */
+ private static void serialize(XmlCursor cursor, Element toElement) {
+ TokenType token;
+ Document doc = toElement.getOwnerDocument();
+
+ while(true) {
+ token = cursor.toNextToken();
+
+ switch (token.intValue()) {
+ case TokenType.INT_ATTR:
+ toElement.setAttribute(cursor.getName().getLocalPart(), cursor.getTextValue());
+ break;
+ case TokenType.INT_COMMENT:
+ toElement.appendChild(doc.createComment(cursor.getTextValue()));
+ break;
+ case TokenType.INT_START:
+ Element childElement = doc.createElement(cursor.getName().getLocalPart());
+ toElement.appendChild(childElement);
+ serialize(cursor, childElement);
+ break;
+ case TokenType.INT_TEXT:
+ toElement.appendChild(doc.createTextNode(cursor.getChars()));
+ break;
+ case TokenType.INT_END:
+ case TokenType.INT_STARTDOC:
+ case TokenType.INT_ENDDOC:
+ case TokenType.INT_NONE:
+ return;
+ case TokenType.INT_PROCINST:
+ case TokenType.INT_NAMESPACE:
+ default:
+ break;
+ }
+ }
+ }
+}
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers110/NotificationMapper.java
===================================================================
--- labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers110/NotificationMapper.java 2009-01-21 09:35:03 UTC (rev 24846)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers110/NotificationMapper.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -1,43 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2006, JBoss Inc., and others contributors as indicated
- * by the @authors tag. All rights reserved.
- * See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- * This copyrighted material is made available to anyone wishing to use,
- * modify, copy, or redistribute it subject to the terms and conditions
- * of the GNU Lesser General Public License, v. 2.1.
- * This program is distributed in the hope that it will be useful, but WITHOUT A
- * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
- * PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
- * You should have received a copy of the GNU Lesser General Public License,
- * v.2.1 along with this distribution; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
- * MA 02110-1301, USA.
- *
- * (C) 2005-2006,
- * @author JBoss Inc.
- */
-
-package org.jboss.soa.esb.listeners.config.mappers110;
-
-import org.jboss.soa.esb.listeners.config.xbeanmodel110.ServiceDocument.Service;
-import org.w3c.dom.Element;
-
-/**
- *
- * @author <a href="mailto:tom.fennelly at jboss.com">tom.fennelly at jboss.com</a>
- */
-public class NotificationMapper {
-
- /**
- * @param listenerConfigTree
- * @param listenerService
- * @param model
- */
- public static void map(Element listenerConfigTree, Service listenerService, XMLBeansModel model) {
- // TODO Auto-generated method stub
-
- }
-
-}
Copied: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers110/NotificationMapper.java (from rev 24846, labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers110/NotificationMapper.java)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers110/NotificationMapper.java (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers110/NotificationMapper.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -0,0 +1,43 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and others contributors as indicated
+ * by the @authors tag. All rights reserved.
+ * See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License, v. 2.1.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+ * PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
+ * You should have received a copy of the GNU Lesser General Public License,
+ * v.2.1 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301, USA.
+ *
+ * (C) 2005-2006,
+ * @author JBoss Inc.
+ */
+
+package org.jboss.soa.esb.listeners.config.mappers110;
+
+import org.jboss.soa.esb.listeners.config.xbeanmodel110.ServiceDocument.Service;
+import org.w3c.dom.Element;
+
+/**
+ *
+ * @author <a href="mailto:tom.fennelly at jboss.com">tom.fennelly at jboss.com</a>
+ */
+public class NotificationMapper {
+
+ /**
+ * @param listenerConfigTree
+ * @param listenerService
+ * @param model
+ */
+ public static void map(Element listenerConfigTree, Service listenerService, XMLBeansModel model) {
+ // TODO Auto-generated method stub
+
+ }
+
+}
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers110/ScheduleMapper.java
===================================================================
--- labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers110/ScheduleMapper.java 2009-01-21 09:35:03 UTC (rev 24846)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers110/ScheduleMapper.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -1,138 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2006, JBoss Inc., and others contributors as indicated
- * by the @authors tag. All rights reserved.
- * See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- * This copyrighted material is made available to anyone wishing to use,
- * modify, copy, or redistribute it subject to the terms and conditions
- * of the GNU Lesser General Public License, v. 2.1.
- * This program is distributed in the hope that it will be useful, but WITHOUT A
- * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
- * PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
- * You should have received a copy of the GNU Lesser General Public License,
- * v.2.1 along with this distribution; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
- * MA 02110-1301, USA.
- *
- * (C) 2005-2006, JBoss Inc.
- */
-package org.jboss.soa.esb.listeners.config.mappers110;
-
-import java.util.List;
-
-import org.apache.log4j.Logger;
-import org.jboss.soa.esb.ConfigurationException;
-import org.jboss.soa.esb.dom.YADOMUtil;
-import org.jboss.soa.esb.listeners.ListenerTagNames;
-import org.jboss.soa.esb.listeners.config.xbeanmodel110.AbstractScheduledListener;
-import org.jboss.soa.esb.listeners.config.xbeanmodel110.FrequencyUnit;
-import org.jboss.soa.esb.listeners.config.xbeanmodel110.PropertyDocument;
-import org.jboss.soa.esb.listeners.config.xbeanmodel110.Schedule;
-import org.jboss.soa.esb.listeners.config.xbeanmodel110.CronScheduleDocument.CronSchedule;
-import org.jboss.soa.esb.listeners.config.xbeanmodel110.ScheduleProviderDocument.ScheduleProvider;
-import org.jboss.soa.esb.listeners.config.xbeanmodel110.SimpleScheduleDocument.SimpleSchedule;
-import org.jboss.soa.esb.schedule.SchedulerResource;
-import org.w3c.dom.Element;
-
-/**
- * Schedule Mapper.
- * <p/>
- * Maps the scheduling info from the Schedule based listener config, to the
- * ConfigTree config model.
- *
- * @author <a href="daniel.bevenius at redpill.se">Daniel Bevenius</a>
- * @author <a href="mailto:tom.fennelly at jboss.com">tom.fennelly at jboss.com</a>
- */
-public class ScheduleMapper {
-
- private static Logger logger = Logger.getLogger(ScheduleMapper.class);
-
- public static void map(Element listenerConfig, AbstractScheduledListener scheduledListener, final XMLBeansModel model) throws ConfigurationException {
- String scheduleIdRef = scheduledListener.getScheduleidref();
- Element domElement = (Element) scheduledListener.getDomNode();
- int scheduleFrequency = scheduledListener.getScheduleFrequency();
- int pollFrequency = scheduledListener.getPollFrequencySeconds();
- int pollLatency = getPollLatencySeconds(scheduledListener);
-
- if(scheduleIdRef != null) {
- listenerConfig.setAttribute(ListenerTagNames.SCHEDULE_ID_REF, scheduleIdRef);
- final Schedule schedule = model.getSchedule(scheduleIdRef) ;
- if (schedule.isSetStartDate()) {
- listenerConfig.setAttribute(ListenerTagNames.SCHEDULE_START_DATE, Long.toString(schedule.getStartDate().getTimeInMillis())) ;
- }
- if (schedule.isSetEndDate()) {
- listenerConfig.setAttribute(ListenerTagNames.SCHEDULE_END_DATE, Long.toString(schedule.getEndDate().getTimeInMillis())) ;
- }
- if (schedule instanceof SimpleSchedule) {
- final SimpleSchedule simpleSchedule = (SimpleSchedule)schedule ;
- final long simpleFrequency = simpleSchedule.getFrequency() ;
- final FrequencyUnit.Enum unit = simpleSchedule.getFrequencyUnits() ;
- final String frequencyVal ;
- if (unit.equals(FrequencyUnit.SECONDS)) {
- frequencyVal = Long.toString(simpleFrequency * 1000) ;
- } else {
- frequencyVal = Long.toString(simpleFrequency) ;
- }
- listenerConfig.setAttribute(ListenerTagNames.SCHEDULE_SIMPLE_FREQUENCY, frequencyVal) ;
- if (simpleSchedule.isSetExecCount()) {
- listenerConfig.setAttribute(ListenerTagNames.SCHEDULE_SIMPLE_EXEC, Integer.toString(simpleSchedule.getExecCount())) ;
- }
- } else if (schedule instanceof CronSchedule) {
- final String cronExpression = ((CronSchedule)schedule).getCronExpression() ;
- if (cronExpression == null) {
- throw new ConfigurationException("Missing cron expression from configuration") ;
- }
- listenerConfig.setAttribute(ListenerTagNames.SCHEDULE_CRON_EXPRESSION, cronExpression) ;
- } else {
- throw new ConfigurationException("Unknown schedule type specified in configuration: " + schedule.getClass().getName()) ;
- }
-
- if(domElement.hasAttribute("poll-frequency-seconds") || domElement.hasAttribute("schedule-frequency") ) {
- logger.warn("Schedule Listener '" + listenerConfig.getTagName() + "' defines both 'scheduleidref' and frequency attributes. Using the 'scheduleidref'.");
- }
- } else if(scheduleFrequency > -1) {
- listenerConfig.setAttribute(ScheduleProviderFactory.ATTR_FREQUENCY, Integer.toString(scheduleFrequency));
- } else if(pollFrequency > -1) {
- listenerConfig.setAttribute(ScheduleProviderFactory.ATTR_FREQUENCY, Integer.toString(pollFrequency));
- } else if(pollLatency > -1) {
- listenerConfig.setAttribute(ScheduleProviderFactory.ATTR_FREQUENCY, Integer.toString(pollLatency));
- } else {
- listenerConfig.setAttribute(ScheduleProviderFactory.ATTR_FREQUENCY, "10");
- }
-
- final ScheduleProvider scheduleProvider = model.getScheduleProvider() ;
- if (scheduleProvider != null) {
- // There is only one schedule provider allowed in the configuration at present
- copyProperties(listenerConfig, model.getScheduleProvider().getPropertyList(), model.getScheduledListenerCount()) ;
- }
-
- if(domElement.hasAttribute("poll-frequency-seconds")) {
- logger.warn("Attrubute 'poll-frequency-seconds' is DEPRECATED. Please change your configuration to use 'schedule-frequency'.");
- }
- if(pollLatency > -1) {
- logger.warn("Property 'pollLatencySeconds' is DEPRECATED. Please change your configuration to use 'schedule-frequency'.");
- }
- }
-
- private static void copyProperties(final Element listenerConfig, final List<PropertyDocument.Property> properties, final int numScheduledListeners)
- {
- final Element schedulePropertyElement = YADOMUtil.addElement(listenerConfig, ListenerTagNames.SCHEDULE_PROPERTIES) ;
- schedulePropertyElement.setAttribute(SchedulerResource.THREAD_COUNT, Integer.toString(numScheduledListeners)) ;
-
- if ((properties != null) && (properties.size() > 0))
- {
- MapperUtil.mapProperties(properties, schedulePropertyElement) ;
- }
- }
-
- private static int getPollLatencySeconds(AbstractScheduledListener scheduledListener) {
- String value = XMLBeansModel.getProperty(scheduledListener.getPropertyList(), "pollLatencySeconds", "-1");
-
- try {
- return Integer.parseInt(value);
- } catch (NumberFormatException e) {
- return -1;
- }
- }
-}
Copied: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers110/ScheduleMapper.java (from rev 24846, labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers110/ScheduleMapper.java)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers110/ScheduleMapper.java (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers110/ScheduleMapper.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -0,0 +1,138 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and others contributors as indicated
+ * by the @authors tag. All rights reserved.
+ * See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License, v. 2.1.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+ * PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
+ * You should have received a copy of the GNU Lesser General Public License,
+ * v.2.1 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301, USA.
+ *
+ * (C) 2005-2006, JBoss Inc.
+ */
+package org.jboss.soa.esb.listeners.config.mappers110;
+
+import java.util.List;
+
+import org.apache.log4j.Logger;
+import org.jboss.soa.esb.ConfigurationException;
+import org.jboss.soa.esb.dom.YADOMUtil;
+import org.jboss.soa.esb.listeners.ListenerTagNames;
+import org.jboss.soa.esb.listeners.config.xbeanmodel110.AbstractScheduledListener;
+import org.jboss.soa.esb.listeners.config.xbeanmodel110.FrequencyUnit;
+import org.jboss.soa.esb.listeners.config.xbeanmodel110.PropertyDocument;
+import org.jboss.soa.esb.listeners.config.xbeanmodel110.Schedule;
+import org.jboss.soa.esb.listeners.config.xbeanmodel110.CronScheduleDocument.CronSchedule;
+import org.jboss.soa.esb.listeners.config.xbeanmodel110.ScheduleProviderDocument.ScheduleProvider;
+import org.jboss.soa.esb.listeners.config.xbeanmodel110.SimpleScheduleDocument.SimpleSchedule;
+import org.jboss.soa.esb.schedule.SchedulerResource;
+import org.w3c.dom.Element;
+
+/**
+ * Schedule Mapper.
+ * <p/>
+ * Maps the scheduling info from the Schedule based listener config, to the
+ * ConfigTree config model.
+ *
+ * @author <a href="daniel.bevenius at redpill.se">Daniel Bevenius</a>
+ * @author <a href="mailto:tom.fennelly at jboss.com">tom.fennelly at jboss.com</a>
+ */
+public class ScheduleMapper {
+
+ private static Logger logger = Logger.getLogger(ScheduleMapper.class);
+
+ public static void map(Element listenerConfig, AbstractScheduledListener scheduledListener, final XMLBeansModel model) throws ConfigurationException {
+ String scheduleIdRef = scheduledListener.getScheduleidref();
+ Element domElement = (Element) scheduledListener.getDomNode();
+ int scheduleFrequency = scheduledListener.getScheduleFrequency();
+ int pollFrequency = scheduledListener.getPollFrequencySeconds();
+ int pollLatency = getPollLatencySeconds(scheduledListener);
+
+ if(scheduleIdRef != null) {
+ listenerConfig.setAttribute(ListenerTagNames.SCHEDULE_ID_REF, scheduleIdRef);
+ final Schedule schedule = model.getSchedule(scheduleIdRef) ;
+ if (schedule.isSetStartDate()) {
+ listenerConfig.setAttribute(ListenerTagNames.SCHEDULE_START_DATE, Long.toString(schedule.getStartDate().getTimeInMillis())) ;
+ }
+ if (schedule.isSetEndDate()) {
+ listenerConfig.setAttribute(ListenerTagNames.SCHEDULE_END_DATE, Long.toString(schedule.getEndDate().getTimeInMillis())) ;
+ }
+ if (schedule instanceof SimpleSchedule) {
+ final SimpleSchedule simpleSchedule = (SimpleSchedule)schedule ;
+ final long simpleFrequency = simpleSchedule.getFrequency() ;
+ final FrequencyUnit.Enum unit = simpleSchedule.getFrequencyUnits() ;
+ final String frequencyVal ;
+ if (unit.equals(FrequencyUnit.SECONDS)) {
+ frequencyVal = Long.toString(simpleFrequency * 1000) ;
+ } else {
+ frequencyVal = Long.toString(simpleFrequency) ;
+ }
+ listenerConfig.setAttribute(ListenerTagNames.SCHEDULE_SIMPLE_FREQUENCY, frequencyVal) ;
+ if (simpleSchedule.isSetExecCount()) {
+ listenerConfig.setAttribute(ListenerTagNames.SCHEDULE_SIMPLE_EXEC, Integer.toString(simpleSchedule.getExecCount())) ;
+ }
+ } else if (schedule instanceof CronSchedule) {
+ final String cronExpression = ((CronSchedule)schedule).getCronExpression() ;
+ if (cronExpression == null) {
+ throw new ConfigurationException("Missing cron expression from configuration") ;
+ }
+ listenerConfig.setAttribute(ListenerTagNames.SCHEDULE_CRON_EXPRESSION, cronExpression) ;
+ } else {
+ throw new ConfigurationException("Unknown schedule type specified in configuration: " + schedule.getClass().getName()) ;
+ }
+
+ if(domElement.hasAttribute("poll-frequency-seconds") || domElement.hasAttribute("schedule-frequency") ) {
+ logger.warn("Schedule Listener '" + listenerConfig.getTagName() + "' defines both 'scheduleidref' and frequency attributes. Using the 'scheduleidref'.");
+ }
+ } else if(scheduleFrequency > -1) {
+ listenerConfig.setAttribute(ScheduleProviderFactory.ATTR_FREQUENCY, Integer.toString(scheduleFrequency));
+ } else if(pollFrequency > -1) {
+ listenerConfig.setAttribute(ScheduleProviderFactory.ATTR_FREQUENCY, Integer.toString(pollFrequency));
+ } else if(pollLatency > -1) {
+ listenerConfig.setAttribute(ScheduleProviderFactory.ATTR_FREQUENCY, Integer.toString(pollLatency));
+ } else {
+ listenerConfig.setAttribute(ScheduleProviderFactory.ATTR_FREQUENCY, "10");
+ }
+
+ final ScheduleProvider scheduleProvider = model.getScheduleProvider() ;
+ if (scheduleProvider != null) {
+ // There is only one schedule provider allowed in the configuration at present
+ copyProperties(listenerConfig, model.getScheduleProvider().getPropertyList(), model.getScheduledListenerCount()) ;
+ }
+
+ if(domElement.hasAttribute("poll-frequency-seconds")) {
+ logger.warn("Attrubute 'poll-frequency-seconds' is DEPRECATED. Please change your configuration to use 'schedule-frequency'.");
+ }
+ if(pollLatency > -1) {
+ logger.warn("Property 'pollLatencySeconds' is DEPRECATED. Please change your configuration to use 'schedule-frequency'.");
+ }
+ }
+
+ private static void copyProperties(final Element listenerConfig, final List<PropertyDocument.Property> properties, final int numScheduledListeners)
+ {
+ final Element schedulePropertyElement = YADOMUtil.addElement(listenerConfig, ListenerTagNames.SCHEDULE_PROPERTIES) ;
+ schedulePropertyElement.setAttribute(SchedulerResource.THREAD_COUNT, Integer.toString(numScheduledListeners)) ;
+
+ if ((properties != null) && (properties.size() > 0))
+ {
+ MapperUtil.mapProperties(properties, schedulePropertyElement) ;
+ }
+ }
+
+ private static int getPollLatencySeconds(AbstractScheduledListener scheduledListener) {
+ String value = XMLBeansModel.getProperty(scheduledListener.getPropertyList(), "pollLatencySeconds", "-1");
+
+ try {
+ return Integer.parseInt(value);
+ } catch (NumberFormatException e) {
+ return -1;
+ }
+ }
+}
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers110/ScheduleProviderFactory.java
===================================================================
--- labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers110/ScheduleProviderFactory.java 2009-01-21 09:35:03 UTC (rev 24846)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers110/ScheduleProviderFactory.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -1,119 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2006, JBoss Inc., and others contributors as indicated
- * by the @authors tag. All rights reserved.
- * See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- * This copyrighted material is made available to anyone wishing to use,
- * modify, copy, or redistribute it subject to the terms and conditions
- * of the GNU Lesser General Public License, v. 2.1.
- * This program is distributed in the hope that it will be useful, but WITHOUT A
- * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
- * PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
- * You should have received a copy of the GNU Lesser General Public License,
- * v.2.1 along with this distribution; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
- * MA 02110-1301, USA.
- *
- * (C) 2005-2006, JBoss Inc.
- */
-package org.jboss.soa.esb.listeners.config.mappers110;
-
-import org.jboss.soa.esb.schedule.*;
-import org.jboss.soa.esb.ConfigurationException;
-import org.jboss.soa.esb.helpers.ConfigTree;
-import org.jboss.soa.esb.listeners.lifecycle.ManagedLifecycle;
-import org.jboss.soa.esb.listeners.config.xbeanmodel110.ScheduleProviderDocument;
-import org.jboss.soa.esb.listeners.config.xbeanmodel110.SimpleScheduleDocument;
-import org.jboss.soa.esb.listeners.config.xbeanmodel110.CronScheduleDocument;
-import org.jboss.soa.esb.listeners.config.xbeanmodel110.FrequencyUnit;
-
-import java.util.List;
-import java.util.Properties;
-import java.util.ArrayList;
-
-/**
- * Factory class for creating and configuring a {@link ScheduleProvider}
- * instance.
- *
- * @author <a href="daniel.bevenius at redpill.se">Daniel Bevenius</a>
- * @author <a href="mailto:tom.fennelly at jboss.com">tom.fennelly at jboss.com</a>
- */
-public abstract class ScheduleProviderFactory {
-
- public static final String ATTR_SCHEDULE_ID_REF = "scheduleidref";
- public static final String ATTR_FREQUENCY = "schedule-frequency";
-
- public static ScheduleProvider createInstance(List<ManagedLifecycle> listeners, ScheduleProviderDocument.ScheduleProvider scheduleProviderConfig) throws ConfigurationException {
- Properties schedulerConfig = null;
- List<org.jboss.soa.esb.schedule.Schedule> schedules = null;
- ScheduleProvider instance;
-
- if(scheduleProviderConfig != null) {
- schedulerConfig = XMLBeansModel.toProperties(scheduleProviderConfig.getPropertyList());
- schedules = getSchedules(scheduleProviderConfig);
- }
- instance = new ScheduleProvider(schedulerConfig, schedules);
-
- try {
- for(ManagedLifecycle listener : listeners) {
- if(listener instanceof ScheduledEventListener) {
- ConfigTree config = listener.getConfig();
- String scheduleIdRef = config.getAttribute(ATTR_SCHEDULE_ID_REF);
-
- if(scheduleIdRef != null) {
- instance.addListener((ScheduledEventListener) listener, scheduleIdRef);
- } else {
- long frequency = config.getLongAttribute(ATTR_FREQUENCY, 10);
- instance.addListener((ScheduledEventListener) listener, frequency);
- }
- }
- }
- } catch (SchedulingException e) {
- throw new ConfigurationException(e);
- }
-
- return instance;
- }
-
- private static List<Schedule> getSchedules(ScheduleProviderDocument.ScheduleProvider scheduleProviderConfig) throws ConfigurationException {
- List<Schedule> schedules = new ArrayList<Schedule>();
- List<org.jboss.soa.esb.listeners.config.xbeanmodel110.Schedule> scheduleConfigs = scheduleProviderConfig.getScheduleList();
- List<String> schedulIds = new ArrayList<String>();
-
- // We wouldn't have to do this if we were using JAXB!!!
- // TODO: Get XMLBeans to fudge the class names for the generated binds - existing names are potentialy dangerous because they're the same as the non XMLBeans types
- for(org.jboss.soa.esb.listeners.config.xbeanmodel110.Schedule scheduleConfig : scheduleConfigs) {
- String scheduleId = scheduleConfig.getScheduleid();
- Schedule schedule;
-
- if(schedulIds.contains(scheduleId)) {
- throw new ConfigurationException("Duplicate 'scheduleid' value of '" + scheduleId + "'. Must be unique on a per <schedule-provider> basis.");
- }
- schedulIds.add(scheduleId);
-
- if(scheduleConfig instanceof SimpleScheduleDocument.SimpleSchedule) {
- SimpleSchedule simpleSchedule;
- FrequencyUnit.Enum frequencyUnit = ((SimpleScheduleDocument.SimpleSchedule)scheduleConfig).getFrequencyUnits();
-
- schedule = simpleSchedule = new SimpleSchedule(scheduleId);
- if(frequencyUnit == FrequencyUnit.SECONDS) {
- simpleSchedule.setFrequency(((SimpleScheduleDocument.SimpleSchedule)scheduleConfig).getFrequency() * 1000);
- } else {
- simpleSchedule.setFrequency(((SimpleScheduleDocument.SimpleSchedule)scheduleConfig).getFrequency());
- }
- simpleSchedule.setExecCount(((SimpleScheduleDocument.SimpleSchedule)scheduleConfig).getExecCount());
- } else {
- CronSchedule cronSchedule;
-
- schedule = cronSchedule = new CronSchedule(scheduleId);
- cronSchedule.setCronExpression(((CronScheduleDocument.CronSchedule)scheduleConfig).getCronExpression());
- }
- schedule.setStartDate(scheduleConfig.getStartDate());
- schedule.setEndDate(scheduleConfig.getEndDate());
- schedules.add(schedule);
- }
-
- return schedules;
- }
-}
Copied: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers110/ScheduleProviderFactory.java (from rev 24846, labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers110/ScheduleProviderFactory.java)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers110/ScheduleProviderFactory.java (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers110/ScheduleProviderFactory.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -0,0 +1,119 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and others contributors as indicated
+ * by the @authors tag. All rights reserved.
+ * See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License, v. 2.1.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+ * PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
+ * You should have received a copy of the GNU Lesser General Public License,
+ * v.2.1 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301, USA.
+ *
+ * (C) 2005-2006, JBoss Inc.
+ */
+package org.jboss.soa.esb.listeners.config.mappers110;
+
+import org.jboss.soa.esb.schedule.*;
+import org.jboss.soa.esb.ConfigurationException;
+import org.jboss.soa.esb.helpers.ConfigTree;
+import org.jboss.soa.esb.listeners.lifecycle.ManagedLifecycle;
+import org.jboss.soa.esb.listeners.config.xbeanmodel110.ScheduleProviderDocument;
+import org.jboss.soa.esb.listeners.config.xbeanmodel110.SimpleScheduleDocument;
+import org.jboss.soa.esb.listeners.config.xbeanmodel110.CronScheduleDocument;
+import org.jboss.soa.esb.listeners.config.xbeanmodel110.FrequencyUnit;
+
+import java.util.List;
+import java.util.Properties;
+import java.util.ArrayList;
+
+/**
+ * Factory class for creating and configuring a {@link ScheduleProvider}
+ * instance.
+ *
+ * @author <a href="daniel.bevenius at redpill.se">Daniel Bevenius</a>
+ * @author <a href="mailto:tom.fennelly at jboss.com">tom.fennelly at jboss.com</a>
+ */
+public abstract class ScheduleProviderFactory {
+
+ public static final String ATTR_SCHEDULE_ID_REF = "scheduleidref";
+ public static final String ATTR_FREQUENCY = "schedule-frequency";
+
+ public static ScheduleProvider createInstance(List<ManagedLifecycle> listeners, ScheduleProviderDocument.ScheduleProvider scheduleProviderConfig) throws ConfigurationException {
+ Properties schedulerConfig = null;
+ List<org.jboss.soa.esb.schedule.Schedule> schedules = null;
+ ScheduleProvider instance;
+
+ if(scheduleProviderConfig != null) {
+ schedulerConfig = XMLBeansModel.toProperties(scheduleProviderConfig.getPropertyList());
+ schedules = getSchedules(scheduleProviderConfig);
+ }
+ instance = new ScheduleProvider(schedulerConfig, schedules);
+
+ try {
+ for(ManagedLifecycle listener : listeners) {
+ if(listener instanceof ScheduledEventListener) {
+ ConfigTree config = listener.getConfig();
+ String scheduleIdRef = config.getAttribute(ATTR_SCHEDULE_ID_REF);
+
+ if(scheduleIdRef != null) {
+ instance.addListener((ScheduledEventListener) listener, scheduleIdRef);
+ } else {
+ long frequency = config.getLongAttribute(ATTR_FREQUENCY, 10);
+ instance.addListener((ScheduledEventListener) listener, frequency);
+ }
+ }
+ }
+ } catch (SchedulingException e) {
+ throw new ConfigurationException(e);
+ }
+
+ return instance;
+ }
+
+ private static List<Schedule> getSchedules(ScheduleProviderDocument.ScheduleProvider scheduleProviderConfig) throws ConfigurationException {
+ List<Schedule> schedules = new ArrayList<Schedule>();
+ List<org.jboss.soa.esb.listeners.config.xbeanmodel110.Schedule> scheduleConfigs = scheduleProviderConfig.getScheduleList();
+ List<String> schedulIds = new ArrayList<String>();
+
+ // We wouldn't have to do this if we were using JAXB!!!
+ // TODO: Get XMLBeans to fudge the class names for the generated binds - existing names are potentialy dangerous because they're the same as the non XMLBeans types
+ for(org.jboss.soa.esb.listeners.config.xbeanmodel110.Schedule scheduleConfig : scheduleConfigs) {
+ String scheduleId = scheduleConfig.getScheduleid();
+ Schedule schedule;
+
+ if(schedulIds.contains(scheduleId)) {
+ throw new ConfigurationException("Duplicate 'scheduleid' value of '" + scheduleId + "'. Must be unique on a per <schedule-provider> basis.");
+ }
+ schedulIds.add(scheduleId);
+
+ if(scheduleConfig instanceof SimpleScheduleDocument.SimpleSchedule) {
+ SimpleSchedule simpleSchedule;
+ FrequencyUnit.Enum frequencyUnit = ((SimpleScheduleDocument.SimpleSchedule)scheduleConfig).getFrequencyUnits();
+
+ schedule = simpleSchedule = new SimpleSchedule(scheduleId);
+ if(frequencyUnit == FrequencyUnit.SECONDS) {
+ simpleSchedule.setFrequency(((SimpleScheduleDocument.SimpleSchedule)scheduleConfig).getFrequency() * 1000);
+ } else {
+ simpleSchedule.setFrequency(((SimpleScheduleDocument.SimpleSchedule)scheduleConfig).getFrequency());
+ }
+ simpleSchedule.setExecCount(((SimpleScheduleDocument.SimpleSchedule)scheduleConfig).getExecCount());
+ } else {
+ CronSchedule cronSchedule;
+
+ schedule = cronSchedule = new CronSchedule(scheduleId);
+ cronSchedule.setCronExpression(((CronScheduleDocument.CronSchedule)scheduleConfig).getCronExpression());
+ }
+ schedule.setStartDate(scheduleConfig.getStartDate());
+ schedule.setEndDate(scheduleConfig.getEndDate());
+ schedules.add(schedule);
+ }
+
+ return schedules;
+ }
+}
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers110/ScheduledListenerMapper.java
===================================================================
--- labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers110/ScheduledListenerMapper.java 2009-01-21 09:35:03 UTC (rev 24846)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers110/ScheduledListenerMapper.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -1,53 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2006, JBoss Inc., and others contributors as indicated
- * by the @authors tag. All rights reserved.
- * See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- * This copyrighted material is made available to anyone wishing to use,
- * modify, copy, or redistribute it subject to the terms and conditions
- * of the GNU Lesser General Public License, v. 2.1.
- * This program is distributed in the hope that it will be useful, but WITHOUT A
- * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
- * PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
- * You should have received a copy of the GNU Lesser General Public License,
- * v.2.1 along with this distribution; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
- * MA 02110-1301, USA.
- *
- * (C) 2005-2006, JBoss Inc.
- */
-package org.jboss.soa.esb.listeners.config.mappers110;
-
-import org.w3c.dom.Element;
-import org.jboss.soa.esb.listeners.config.xbeanmodel110.ScheduledListenerDocument;
-import org.jboss.soa.esb.listeners.config.xbeanmodel110.ServiceDocument.Service;
-import org.jboss.soa.esb.listeners.ListenerTagNames;
-import org.jboss.soa.esb.listeners.ScheduleListener;
-import org.jboss.soa.esb.dom.YADOMUtil;
-
-/**
- * Mapper for the {@link ScheduleListener}.
- * @author <a href="mailto:tom.fennelly at jboss.com">tom.fennelly at jboss.com</a>
- */
-public class ScheduledListenerMapper {
- public static Element map(Element root, ScheduledListenerDocument.ScheduledListener listener, XMLBeansModel model) {
- Service service = model.getService(listener);
- boolean isGateway = listener.getIsGateway();
- Element listenerNode = YADOMUtil.addElement(root, "listener");
-
- listenerNode.setAttribute("name", listener.getName());
-
- listenerNode.setAttribute("event-processor", listener.getEventProcessor());
- listenerNode.setAttribute(ListenerTagNames.LISTENER_CLASS_TAG, ScheduleListener.class.getName());
- if (listener.isSetTransacted()) {
- listenerNode.setAttribute(ListenerTagNames.TRANSACTED_TAG, Boolean.toString(listener.getTransacted()));
- }
-
- MapperUtil.mapListenerServiceAttributes(listenerNode, service, isGateway) ;
- // Map the <property> elements targeted at the listener - from the listener itself.
- MapperUtil.mapProperties(listener.getPropertyList(), listenerNode);
-
- return listenerNode;
- }
-}
Copied: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers110/ScheduledListenerMapper.java (from rev 24846, labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers110/ScheduledListenerMapper.java)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers110/ScheduledListenerMapper.java (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers110/ScheduledListenerMapper.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -0,0 +1,53 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and others contributors as indicated
+ * by the @authors tag. All rights reserved.
+ * See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License, v. 2.1.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+ * PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
+ * You should have received a copy of the GNU Lesser General Public License,
+ * v.2.1 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301, USA.
+ *
+ * (C) 2005-2006, JBoss Inc.
+ */
+package org.jboss.soa.esb.listeners.config.mappers110;
+
+import org.w3c.dom.Element;
+import org.jboss.soa.esb.listeners.config.xbeanmodel110.ScheduledListenerDocument;
+import org.jboss.soa.esb.listeners.config.xbeanmodel110.ServiceDocument.Service;
+import org.jboss.soa.esb.listeners.ListenerTagNames;
+import org.jboss.soa.esb.listeners.ScheduleListener;
+import org.jboss.soa.esb.dom.YADOMUtil;
+
+/**
+ * Mapper for the {@link ScheduleListener}.
+ * @author <a href="mailto:tom.fennelly at jboss.com">tom.fennelly at jboss.com</a>
+ */
+public class ScheduledListenerMapper {
+ public static Element map(Element root, ScheduledListenerDocument.ScheduledListener listener, XMLBeansModel model) {
+ Service service = model.getService(listener);
+ boolean isGateway = listener.getIsGateway();
+ Element listenerNode = YADOMUtil.addElement(root, "listener");
+
+ listenerNode.setAttribute("name", listener.getName());
+
+ listenerNode.setAttribute("event-processor", listener.getEventProcessor());
+ listenerNode.setAttribute(ListenerTagNames.LISTENER_CLASS_TAG, ScheduleListener.class.getName());
+ if (listener.isSetTransacted()) {
+ listenerNode.setAttribute(ListenerTagNames.TRANSACTED_TAG, Boolean.toString(listener.getTransacted()));
+ }
+
+ MapperUtil.mapListenerServiceAttributes(listenerNode, service, isGateway) ;
+ // Map the <property> elements targeted at the listener - from the listener itself.
+ MapperUtil.mapProperties(listener.getPropertyList(), listenerNode);
+
+ return listenerNode;
+ }
+}
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers110/SecurityMapper.java
===================================================================
--- labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers110/SecurityMapper.java 2009-01-21 09:35:03 UTC (rev 24846)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers110/SecurityMapper.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -1,59 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2006, JBoss Inc., and others contributors as indicated
- * by the @authors tag. All rights reserved.
- * See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- * This copyrighted material is made available to anyone wishing to use,
- * modify, copy, or redistribute it subject to the terms and conditions
- * of the GNU Lesser General Public License, v. 2.1.
- * This program is distributed in the hope that it will be useful, but WITHOUT A
- * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
- * PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
- * You should have received a copy of the GNU Lesser General Public License,
- * v.2.1 along with this distribution; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
- * MA 02110-1301, USA.
- *
- * (C) 2005-2006,
- * @author JBoss Inc.
- */
-
-package org.jboss.soa.esb.listeners.config.mappers110;
-
-import org.jboss.soa.esb.ConfigurationException;
-import org.jboss.soa.esb.dom.YADOMUtil;
-import org.jboss.soa.esb.listeners.ListenerTagNames;
-import org.jboss.soa.esb.listeners.config.xbeanmodel110.SecurityDocument.Security;
-import org.jboss.soa.esb.listeners.config.xbeanmodel110.ServiceDocument.Service;
-import org.w3c.dom.Element;
-
-/**
- * Performs the mapping of XSD based configuration service actions onto a
- * "ConfigTree" style listener configuration.
- *
- * @author <a href="mailto:dbevenius at jboss.com">Daniel Bevenius</a>
- */
-public class SecurityMapper
-{
- private SecurityMapper() {}
-
- /**
- * Perform the mapping.
- *
- * @param toConfigTree
- * The listener ConfigTree to which the actions are to be added.
- * @param service
- * The Service to which the listener is bound. The Service defines the actions.
- * @throws ConfigurationException
- */
- public static void map( final Element toConfigTree, final Service service ) throws ConfigurationException
- {
- final Security security = service.getSecurity();
- if ( security != null)
- {
- final Element securityElement = YADOMUtil.addElement( toConfigTree, ListenerTagNames.SECURITY_TAG );
- MapperUtil.serialize( security, securityElement );
- }
- }
-}
Copied: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers110/SecurityMapper.java (from rev 24846, labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers110/SecurityMapper.java)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers110/SecurityMapper.java (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers110/SecurityMapper.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -0,0 +1,59 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and others contributors as indicated
+ * by the @authors tag. All rights reserved.
+ * See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License, v. 2.1.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+ * PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
+ * You should have received a copy of the GNU Lesser General Public License,
+ * v.2.1 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301, USA.
+ *
+ * (C) 2005-2006,
+ * @author JBoss Inc.
+ */
+
+package org.jboss.soa.esb.listeners.config.mappers110;
+
+import org.jboss.soa.esb.ConfigurationException;
+import org.jboss.soa.esb.dom.YADOMUtil;
+import org.jboss.soa.esb.listeners.ListenerTagNames;
+import org.jboss.soa.esb.listeners.config.xbeanmodel110.SecurityDocument.Security;
+import org.jboss.soa.esb.listeners.config.xbeanmodel110.ServiceDocument.Service;
+import org.w3c.dom.Element;
+
+/**
+ * Performs the mapping of XSD based configuration service actions onto a
+ * "ConfigTree" style listener configuration.
+ *
+ * @author <a href="mailto:dbevenius at jboss.com">Daniel Bevenius</a>
+ */
+public class SecurityMapper
+{
+ private SecurityMapper() {}
+
+ /**
+ * Perform the mapping.
+ *
+ * @param toConfigTree
+ * The listener ConfigTree to which the actions are to be added.
+ * @param service
+ * The Service to which the listener is bound. The Service defines the actions.
+ * @throws ConfigurationException
+ */
+ public static void map( final Element toConfigTree, final Service service ) throws ConfigurationException
+ {
+ final Security security = service.getSecurity();
+ if ( security != null)
+ {
+ final Element securityElement = YADOMUtil.addElement( toConfigTree, ListenerTagNames.SECURITY_TAG );
+ MapperUtil.serialize( security, securityElement );
+ }
+ }
+}
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers110/SqlListenerMapper.java
===================================================================
--- labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers110/SqlListenerMapper.java 2009-01-21 09:35:03 UTC (rev 24846)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers110/SqlListenerMapper.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -1,146 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2006, JBoss Inc., and others contributors as indicated
- * by the @authors tag. All rights reserved.
- * See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- * This copyrighted material is made available to anyone wishing to use,
- * modify, copy, or redistribute it subject to the terms and conditions
- * of the GNU Lesser General Public License, v. 2.1.
- * This program is distributed in the hope that it will be useful, but WITHOUT A
- * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
- * PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
- * You should have received a copy of the GNU Lesser General Public License,
- * v.2.1 along with this distribution; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
- * MA 02110-1301, USA.
- *
- * (C) 2005-2006,
- */
-
-package org.jboss.soa.esb.listeners.config.mappers110;
-
-import org.jboss.soa.esb.ConfigurationException;
-import org.jboss.soa.esb.addressing.eprs.JDBCEpr;
-import org.jboss.soa.esb.dom.YADOMUtil;
-import org.jboss.soa.esb.listeners.ListenerTagNames;
-import org.jboss.soa.esb.listeners.config.xbeanmodel110.SqlBusDocument.SqlBus;
-import org.jboss.soa.esb.listeners.config.xbeanmodel110.SqlListenerDocument.SqlListener;
-import org.jboss.soa.esb.listeners.config.xbeanmodel110.SqlMessageFilterDocument.SqlMessageFilter;
-import org.jboss.soa.esb.listeners.config.xbeanmodel110.SqlProviderDocument.SqlProvider;
-import org.jboss.soa.esb.listeners.gateway.SqlTableGatewayListener;
-import org.w3c.dom.Element;
-
-/**
- * Performs the mapping of a <fs-listener> XSD based configuration to the "ConfigTree"
- * style configuration, adding the "ConfigTree" listener config to the "root" node.
- *
- * @author <a href="mailto:kurt.stam at jboss.com">kurt.stam at jboss.com</a>
- */
-public class SqlListenerMapper {
-
- /**
- * Perform the mapping.
- * @param root The "ConfigTree" configuration root node.
- * @param listener The Jmslistener to be mapped into the ConfigTree.
- * @param model The configuration model from which the mapping is being performed.
- * @return The ConfigTree listener configuration node.
- * @throws ConfigurationException Invalid listener configuration.
- */
- public static Element map(Element root, SqlListener listener, XMLBeansModel model) throws ConfigurationException {
- Element listenerNode = YADOMUtil.addElement(root, "listener");
- SqlBus bus;
- SqlProvider provider;
-
- listenerNode.setAttribute("name", listener.getName());
-
- try {
- bus = (SqlBus) model.getBus(listener.getBusidref());
- } catch (ClassCastException e) {
- throw new ConfigurationException("Invalid busid reference [" + listener.getBusidref() + "] on listener [" + listener.getName() + "]. A <sql-listener> must reference a <sql-bus>.");
- }
- try {
- provider = (SqlProvider) model.getProvider(bus);
- } catch (ClassCastException e) {
- throw new ConfigurationException("Invalid bus config [" + listener.getBusidref() + "]. Should be contained within a <sql-provider> instance. Unexpected exception - this should have caused a validation error!");
- }
-
- if (provider.getDatasource() != null) {
- if ((provider.getUsername() != null)
- || (provider.getDriver() != null)) {
- throw new ConfigurationException ("Invalid sql-provider configuration : a datasource and a username/password/driver "
- + "combination cannot both be defined. Use only one (datasource or JDBC connection info)."
- + "Datasource : [" + provider.getDatasource() + "] JDBC URL [" + provider.getUrl() + "]");
- }
- } else if (provider.getUrl() == null) {
- throw new ConfigurationException ("Invalid sql-provider configuration : a datasource or a URL/username/password/driver "
- + "combination must be defined. Use only one (datasource or JDBC connection info). "
- + "URL was null.");
- } else if (provider.getUsername() == null) {
- throw new ConfigurationException ("Invalid sql-provider configuration : a datasource or a URL/username/password/driver "
- + "combination must be defined. Use only one (datasource or JDBC connection info). "
- + "Username was null.");
- } else if (provider.getDriver() == null) {
- throw new ConfigurationException ("Invalid sql-provider configuration : either a datasource or a URL/username/password/driver "
- + "combination must be defined. Use only one (datasource or JDBC connection info). "
- + "Driver was null.");
- }
-
- SqlMessageFilter messageFilter = listener.getSqlMessageFilter();
- if(messageFilter == null) {
- messageFilter = bus.getSqlMessageFilter();
- if(messageFilter == null) {
- throw new ConfigurationException("No <sql-destination> defined on either <sql-listener> [" + listener.getName() + "] or <sql-bus> [" + bus.getBusid() + "].");
- }
- }
- listenerNode.setAttribute("pollLatencySeconds", String.valueOf(listener.getPollFrequencySeconds()));
- if (provider.isSetTransacted()) {
- listenerNode.setAttribute(ListenerTagNames.TRANSACTED_TAG, Boolean.toString(provider.getTransacted())) ;
- }
- // Map the standard listener attributes - common across all listener types...
- MapperUtil.mapDefaultAttributes(listener, listenerNode, model);
- // Map the <property> elements targeted at the listener - from the listener itself.
- MapperUtil.mapProperties(listener.getPropertyList(), listenerNode);
- if(listener.getIsGateway()) {
- listenerNode.setAttribute("gatewayClass", SqlTableGatewayListener.class.getName());
- listenerNode.setAttribute(ListenerTagNames.IS_GATEWAY_TAG, Boolean.toString(listener.getIsGateway()));
-
- // Map EPR related attributes onto the listener - from the bus and provider and listener.
- // Note: This will change - the Gateways will also support the EPR element...
- mapSqlEprProperties(listenerNode, provider, messageFilter);
- MapperUtil.mapEPRProperties(listener, listenerNode, model);
- } else {
- Element eprNode = YADOMUtil.addElement(listenerNode, ListenerTagNames.EPR_TAG);
-
- // Map EPR related attributes onto the EPR - from the bus and provider and listener...
- mapSqlEprProperties(eprNode, provider, messageFilter);
- MapperUtil.mapEPRProperties(listener, eprNode, model);
- // Remove any empty attributes set on the EPR config...
- YADOMUtil.removeEmptyAttributes(eprNode);
- }
-
- // Remove any empty attributes set on the listener config...
- YADOMUtil.removeEmptyAttributes(listenerNode);
-
- return listenerNode;
- }
-
- private static void mapSqlEprProperties(Element toElement, SqlProvider provider, SqlMessageFilter messageFilter) {
- toElement.setAttribute(JDBCEpr.DATASOURCE_TAG, provider.getDatasource());
- toElement.setAttribute(JDBCEpr.URL_TAG, provider.getUrl());
- toElement.setAttribute(JDBCEpr.DRIVER_TAG, provider.getDriver());
- toElement.setAttribute(JDBCEpr.USERNAME_TAG, provider.getUsername());
- toElement.setAttribute(JDBCEpr.PASSWORD_TAG, provider.getPassword());
- toElement.setAttribute(JDBCEpr.TABLE_NAME_TAG, messageFilter.getTablename());
- toElement.setAttribute(JDBCEpr.WHERE_CONDITION_TAG, messageFilter.getWhereCondition());
- toElement.setAttribute(JDBCEpr.ORDER_BY_TAG, messageFilter.getOrderBy());
- toElement.setAttribute(JDBCEpr.MESSAGE_ID_COLUMN_TAG, messageFilter.getMessageIdColumn());
- toElement.setAttribute(JDBCEpr.DATA_COLUMN_TAG, messageFilter.getMessageColumn());
- toElement.setAttribute(JDBCEpr.STATUS_COLUMN_TAG, String.valueOf(messageFilter.getStatusColumn()));
- toElement.setAttribute(JDBCEpr.TIMESTAMP_COLUMN_TAG, messageFilter.getInsertTimestampColumn());
- toElement.setAttribute(JDBCEpr.POST_DEL_TAG, String.valueOf(messageFilter.getPostDelete()));
- toElement.setAttribute(JDBCEpr.ERROR_DEL_TAG, String.valueOf(messageFilter.getErrorDelete()));
-
-
- }
-}
Copied: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers110/SqlListenerMapper.java (from rev 24846, labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers110/SqlListenerMapper.java)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers110/SqlListenerMapper.java (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers110/SqlListenerMapper.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -0,0 +1,146 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and others contributors as indicated
+ * by the @authors tag. All rights reserved.
+ * See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License, v. 2.1.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+ * PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
+ * You should have received a copy of the GNU Lesser General Public License,
+ * v.2.1 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301, USA.
+ *
+ * (C) 2005-2006,
+ */
+
+package org.jboss.soa.esb.listeners.config.mappers110;
+
+import org.jboss.soa.esb.ConfigurationException;
+import org.jboss.soa.esb.addressing.eprs.JDBCEpr;
+import org.jboss.soa.esb.dom.YADOMUtil;
+import org.jboss.soa.esb.listeners.ListenerTagNames;
+import org.jboss.soa.esb.listeners.config.xbeanmodel110.SqlBusDocument.SqlBus;
+import org.jboss.soa.esb.listeners.config.xbeanmodel110.SqlListenerDocument.SqlListener;
+import org.jboss.soa.esb.listeners.config.xbeanmodel110.SqlMessageFilterDocument.SqlMessageFilter;
+import org.jboss.soa.esb.listeners.config.xbeanmodel110.SqlProviderDocument.SqlProvider;
+import org.jboss.soa.esb.listeners.gateway.SqlTableGatewayListener;
+import org.w3c.dom.Element;
+
+/**
+ * Performs the mapping of a <fs-listener> XSD based configuration to the "ConfigTree"
+ * style configuration, adding the "ConfigTree" listener config to the "root" node.
+ *
+ * @author <a href="mailto:kurt.stam at jboss.com">kurt.stam at jboss.com</a>
+ */
+public class SqlListenerMapper {
+
+ /**
+ * Perform the mapping.
+ * @param root The "ConfigTree" configuration root node.
+ * @param listener The Jmslistener to be mapped into the ConfigTree.
+ * @param model The configuration model from which the mapping is being performed.
+ * @return The ConfigTree listener configuration node.
+ * @throws ConfigurationException Invalid listener configuration.
+ */
+ public static Element map(Element root, SqlListener listener, XMLBeansModel model) throws ConfigurationException {
+ Element listenerNode = YADOMUtil.addElement(root, "listener");
+ SqlBus bus;
+ SqlProvider provider;
+
+ listenerNode.setAttribute("name", listener.getName());
+
+ try {
+ bus = (SqlBus) model.getBus(listener.getBusidref());
+ } catch (ClassCastException e) {
+ throw new ConfigurationException("Invalid busid reference [" + listener.getBusidref() + "] on listener [" + listener.getName() + "]. A <sql-listener> must reference a <sql-bus>.");
+ }
+ try {
+ provider = (SqlProvider) model.getProvider(bus);
+ } catch (ClassCastException e) {
+ throw new ConfigurationException("Invalid bus config [" + listener.getBusidref() + "]. Should be contained within a <sql-provider> instance. Unexpected exception - this should have caused a validation error!");
+ }
+
+ if (provider.getDatasource() != null) {
+ if ((provider.getUsername() != null)
+ || (provider.getDriver() != null)) {
+ throw new ConfigurationException ("Invalid sql-provider configuration : a datasource and a username/password/driver "
+ + "combination cannot both be defined. Use only one (datasource or JDBC connection info)."
+ + "Datasource : [" + provider.getDatasource() + "] JDBC URL [" + provider.getUrl() + "]");
+ }
+ } else if (provider.getUrl() == null) {
+ throw new ConfigurationException ("Invalid sql-provider configuration : a datasource or a URL/username/password/driver "
+ + "combination must be defined. Use only one (datasource or JDBC connection info). "
+ + "URL was null.");
+ } else if (provider.getUsername() == null) {
+ throw new ConfigurationException ("Invalid sql-provider configuration : a datasource or a URL/username/password/driver "
+ + "combination must be defined. Use only one (datasource or JDBC connection info). "
+ + "Username was null.");
+ } else if (provider.getDriver() == null) {
+ throw new ConfigurationException ("Invalid sql-provider configuration : either a datasource or a URL/username/password/driver "
+ + "combination must be defined. Use only one (datasource or JDBC connection info). "
+ + "Driver was null.");
+ }
+
+ SqlMessageFilter messageFilter = listener.getSqlMessageFilter();
+ if(messageFilter == null) {
+ messageFilter = bus.getSqlMessageFilter();
+ if(messageFilter == null) {
+ throw new ConfigurationException("No <sql-destination> defined on either <sql-listener> [" + listener.getName() + "] or <sql-bus> [" + bus.getBusid() + "].");
+ }
+ }
+ listenerNode.setAttribute("pollLatencySeconds", String.valueOf(listener.getPollFrequencySeconds()));
+ if (provider.isSetTransacted()) {
+ listenerNode.setAttribute(ListenerTagNames.TRANSACTED_TAG, Boolean.toString(provider.getTransacted())) ;
+ }
+ // Map the standard listener attributes - common across all listener types...
+ MapperUtil.mapDefaultAttributes(listener, listenerNode, model);
+ // Map the <property> elements targeted at the listener - from the listener itself.
+ MapperUtil.mapProperties(listener.getPropertyList(), listenerNode);
+ if(listener.getIsGateway()) {
+ listenerNode.setAttribute("gatewayClass", SqlTableGatewayListener.class.getName());
+ listenerNode.setAttribute(ListenerTagNames.IS_GATEWAY_TAG, Boolean.toString(listener.getIsGateway()));
+
+ // Map EPR related attributes onto the listener - from the bus and provider and listener.
+ // Note: This will change - the Gateways will also support the EPR element...
+ mapSqlEprProperties(listenerNode, provider, messageFilter);
+ MapperUtil.mapEPRProperties(listener, listenerNode, model);
+ } else {
+ Element eprNode = YADOMUtil.addElement(listenerNode, ListenerTagNames.EPR_TAG);
+
+ // Map EPR related attributes onto the EPR - from the bus and provider and listener...
+ mapSqlEprProperties(eprNode, provider, messageFilter);
+ MapperUtil.mapEPRProperties(listener, eprNode, model);
+ // Remove any empty attributes set on the EPR config...
+ YADOMUtil.removeEmptyAttributes(eprNode);
+ }
+
+ // Remove any empty attributes set on the listener config...
+ YADOMUtil.removeEmptyAttributes(listenerNode);
+
+ return listenerNode;
+ }
+
+ private static void mapSqlEprProperties(Element toElement, SqlProvider provider, SqlMessageFilter messageFilter) {
+ toElement.setAttribute(JDBCEpr.DATASOURCE_TAG, provider.getDatasource());
+ toElement.setAttribute(JDBCEpr.URL_TAG, provider.getUrl());
+ toElement.setAttribute(JDBCEpr.DRIVER_TAG, provider.getDriver());
+ toElement.setAttribute(JDBCEpr.USERNAME_TAG, provider.getUsername());
+ toElement.setAttribute(JDBCEpr.PASSWORD_TAG, provider.getPassword());
+ toElement.setAttribute(JDBCEpr.TABLE_NAME_TAG, messageFilter.getTablename());
+ toElement.setAttribute(JDBCEpr.WHERE_CONDITION_TAG, messageFilter.getWhereCondition());
+ toElement.setAttribute(JDBCEpr.ORDER_BY_TAG, messageFilter.getOrderBy());
+ toElement.setAttribute(JDBCEpr.MESSAGE_ID_COLUMN_TAG, messageFilter.getMessageIdColumn());
+ toElement.setAttribute(JDBCEpr.DATA_COLUMN_TAG, messageFilter.getMessageColumn());
+ toElement.setAttribute(JDBCEpr.STATUS_COLUMN_TAG, String.valueOf(messageFilter.getStatusColumn()));
+ toElement.setAttribute(JDBCEpr.TIMESTAMP_COLUMN_TAG, messageFilter.getInsertTimestampColumn());
+ toElement.setAttribute(JDBCEpr.POST_DEL_TAG, String.valueOf(messageFilter.getPostDelete()));
+ toElement.setAttribute(JDBCEpr.ERROR_DEL_TAG, String.valueOf(messageFilter.getErrorDelete()));
+
+
+ }
+}
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers110/UntypedListenerMapper.java
===================================================================
--- labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers110/UntypedListenerMapper.java 2009-01-21 09:35:03 UTC (rev 24846)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers110/UntypedListenerMapper.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -1,112 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2006, JBoss Inc., and others contributors as indicated
- * by the @authors tag. All rights reserved.
- * See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- * This copyrighted material is made available to anyone wishing to use,
- * modify, copy, or redistribute it subject to the terms and conditions
- * of the GNU Lesser General Public License, v. 2.1.
- * This program is distributed in the hope that it will be useful, but WITHOUT A
- * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
- * PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
- * You should have received a copy of the GNU Lesser General Public License,
- * v.2.1 along with this distribution; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
- * MA 02110-1301, USA.
- *
- * (C) 2005-2006,
- * @author JBoss Inc.
- */
-
-package org.jboss.soa.esb.listeners.config.mappers110;
-
-import org.jboss.soa.esb.ConfigurationException;
-import org.jboss.soa.esb.dom.YADOMUtil;
-import org.jboss.soa.esb.listeners.ListenerTagNames;
-import org.jboss.soa.esb.listeners.config.xbeanmodel110.Bus;
-import org.jboss.soa.esb.listeners.config.xbeanmodel110.Listener;
-import org.jboss.soa.esb.listeners.config.xbeanmodel110.Provider;
-import org.jboss.soa.esb.listeners.config.xbeanmodel110.impl.BusImpl;
-import org.jboss.soa.esb.listeners.config.xbeanmodel110.impl.ListenerImpl;
-import org.jboss.soa.esb.listeners.config.xbeanmodel110.impl.BusProviderImpl;
-import org.w3c.dom.Element;
-
-/**
- * Perform a mapping for an "untyped" listener configuration.
- * <p/>
- * By "untyped" we mean that the listener type is not defined in the XSD, but instead is being
- * defined using the base <listener> type, mapping all it's associated
- * <property> values (including those of the associated bus and provider) onto the listener
- * ConfigTree as attributes.
- * <p/>
- * This is effectively like the base transform - if we don't have a mapper for the listener, this one is applied.
- *
- * @author <a href="mailto:tom.fennelly at jboss.com">tom.fennelly at jboss.com</a>
- */
-public class UntypedListenerMapper {
-
- /**
- * Perform the mapping.
- * @param root The "ConfigTree" configuration root node.
- * @param listener The listener to be mapped into the ConfigTree.
- * @param model The configuration model from which the mapping is being performed.
- * @return The ConfigTree listener configuration node.
- * @throws ConfigurationException Invalid listener configuration.
- */
- public static Element map(Element root, Listener listener, XMLBeansModel model) throws ConfigurationException {
- Element listenerNode = YADOMUtil.addElement(root, "listener");
-
- listenerNode.setAttribute("name", listener.getName());
-
- assertListenerConfigOK(listener, model);
-
- // Map the standard listener attributes - common across all listener types...
- MapperUtil.mapDefaultAttributes(listener, listenerNode, model);
- // Map the <property> elements targeted at the listener - from the listener itself.
- MapperUtil.mapProperties(listener.getPropertyList(), listenerNode);
-
- if(listener.getIsGateway()) {
- listenerNode.setAttribute(ListenerTagNames.IS_GATEWAY_TAG, Boolean.toString(listener.getIsGateway()));
-
- MapperUtil.mapEPRProperties(listener, listenerNode, model);
-
- } else {
-
- Element eprNode = YADOMUtil.addElement(listenerNode, ListenerTagNames.EPR_TAG);
- MapperUtil.mapEPRProperties(listener, eprNode, model);
-
- // Remove any empty attributes set on the EPR config...
- YADOMUtil.removeEmptyAttributes(eprNode);
- }
-
- // Remove any empty attributes set on the listener config...
- YADOMUtil.removeEmptyAttributes(listenerNode);
-
- return listenerNode;
- }
-
- /**
- * Assert that a valid mapping can be performed from the supplied listener, and the bus + provider it reverences.
- * @param listener The listener to be checked.
- * @param model The config model instance.
- * @throws ConfigurationException Invalid mappng request.
- */
-
- private static void assertListenerConfigOK(Listener listener, XMLBeansModel model) throws ConfigurationException {
-
- // Note we're purposely performing instanceof comparisons here...
-
- if(listener.getClass() != ListenerImpl.class) {
- throw new ConfigurationException("Can only use the " + UntypedListenerMapper.class.getName() + " mapper on the base listener type. Cannot use on " + listener.getClass().getName());
- }
- Bus bus = model.getBus(listener.getBusidref());
- if(bus.getClass() != BusImpl.class) {
- throw new ConfigurationException("The base Listener config [" + listener.getName() + "] must reference a base Bus config type (<bus>).");
- }
- Provider provider = model.getProvider(bus);
- if(provider.getClass().isAssignableFrom(BusProviderImpl.class)) {
- throw new ConfigurationException("A base Bus config type (<bus>) must be contained within a base Provider type (<bus-provider>).");
- }
- }
-}
Copied: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers110/UntypedListenerMapper.java (from rev 24846, labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers110/UntypedListenerMapper.java)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers110/UntypedListenerMapper.java (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers110/UntypedListenerMapper.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -0,0 +1,112 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and others contributors as indicated
+ * by the @authors tag. All rights reserved.
+ * See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License, v. 2.1.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+ * PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
+ * You should have received a copy of the GNU Lesser General Public License,
+ * v.2.1 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301, USA.
+ *
+ * (C) 2005-2006,
+ * @author JBoss Inc.
+ */
+
+package org.jboss.soa.esb.listeners.config.mappers110;
+
+import org.jboss.soa.esb.ConfigurationException;
+import org.jboss.soa.esb.dom.YADOMUtil;
+import org.jboss.soa.esb.listeners.ListenerTagNames;
+import org.jboss.soa.esb.listeners.config.xbeanmodel110.Bus;
+import org.jboss.soa.esb.listeners.config.xbeanmodel110.Listener;
+import org.jboss.soa.esb.listeners.config.xbeanmodel110.Provider;
+import org.jboss.soa.esb.listeners.config.xbeanmodel110.impl.BusImpl;
+import org.jboss.soa.esb.listeners.config.xbeanmodel110.impl.ListenerImpl;
+import org.jboss.soa.esb.listeners.config.xbeanmodel110.impl.BusProviderImpl;
+import org.w3c.dom.Element;
+
+/**
+ * Perform a mapping for an "untyped" listener configuration.
+ * <p/>
+ * By "untyped" we mean that the listener type is not defined in the XSD, but instead is being
+ * defined using the base <listener> type, mapping all it's associated
+ * <property> values (including those of the associated bus and provider) onto the listener
+ * ConfigTree as attributes.
+ * <p/>
+ * This is effectively like the base transform - if we don't have a mapper for the listener, this one is applied.
+ *
+ * @author <a href="mailto:tom.fennelly at jboss.com">tom.fennelly at jboss.com</a>
+ */
+public class UntypedListenerMapper {
+
+ /**
+ * Perform the mapping.
+ * @param root The "ConfigTree" configuration root node.
+ * @param listener The listener to be mapped into the ConfigTree.
+ * @param model The configuration model from which the mapping is being performed.
+ * @return The ConfigTree listener configuration node.
+ * @throws ConfigurationException Invalid listener configuration.
+ */
+ public static Element map(Element root, Listener listener, XMLBeansModel model) throws ConfigurationException {
+ Element listenerNode = YADOMUtil.addElement(root, "listener");
+
+ listenerNode.setAttribute("name", listener.getName());
+
+ assertListenerConfigOK(listener, model);
+
+ // Map the standard listener attributes - common across all listener types...
+ MapperUtil.mapDefaultAttributes(listener, listenerNode, model);
+ // Map the <property> elements targeted at the listener - from the listener itself.
+ MapperUtil.mapProperties(listener.getPropertyList(), listenerNode);
+
+ if(listener.getIsGateway()) {
+ listenerNode.setAttribute(ListenerTagNames.IS_GATEWAY_TAG, Boolean.toString(listener.getIsGateway()));
+
+ MapperUtil.mapEPRProperties(listener, listenerNode, model);
+
+ } else {
+
+ Element eprNode = YADOMUtil.addElement(listenerNode, ListenerTagNames.EPR_TAG);
+ MapperUtil.mapEPRProperties(listener, eprNode, model);
+
+ // Remove any empty attributes set on the EPR config...
+ YADOMUtil.removeEmptyAttributes(eprNode);
+ }
+
+ // Remove any empty attributes set on the listener config...
+ YADOMUtil.removeEmptyAttributes(listenerNode);
+
+ return listenerNode;
+ }
+
+ /**
+ * Assert that a valid mapping can be performed from the supplied listener, and the bus + provider it reverences.
+ * @param listener The listener to be checked.
+ * @param model The config model instance.
+ * @throws ConfigurationException Invalid mappng request.
+ */
+
+ private static void assertListenerConfigOK(Listener listener, XMLBeansModel model) throws ConfigurationException {
+
+ // Note we're purposely performing instanceof comparisons here...
+
+ if(listener.getClass() != ListenerImpl.class) {
+ throw new ConfigurationException("Can only use the " + UntypedListenerMapper.class.getName() + " mapper on the base listener type. Cannot use on " + listener.getClass().getName());
+ }
+ Bus bus = model.getBus(listener.getBusidref());
+ if(bus.getClass() != BusImpl.class) {
+ throw new ConfigurationException("The base Listener config [" + listener.getName() + "] must reference a base Bus config type (<bus>).");
+ }
+ Provider provider = model.getProvider(bus);
+ if(provider.getClass().isAssignableFrom(BusProviderImpl.class)) {
+ throw new ConfigurationException("A base Bus config type (<bus>) must be contained within a base Provider type (<bus-provider>).");
+ }
+ }
+}
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers110/XMLBeansModel.java
===================================================================
--- labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers110/XMLBeansModel.java 2009-01-21 09:35:03 UTC (rev 24846)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers110/XMLBeansModel.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -1,527 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2006, JBoss Inc., and others contributors as indicated
- * by the @authors tag. All rights reserved.
- * See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- * This copyrighted material is made available to anyone wishing to use,
- * modify, copy, or redistribute it subject to the terms and conditions
- * of the GNU Lesser General Public License, v. 2.1.
- * This program is distributed in the hope that it will be useful, but WITHOUT A
- * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
- * PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
- * You should have received a copy of the GNU Lesser General Public License,
- * v.2.1 along with this distribution; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
- * MA 02110-1301, USA.
- *
- * (C) 2005-2006,
- * @author JBoss Inc.
- */
-
-package org.jboss.soa.esb.listeners.config.mappers110;
-
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.HashSet;
-import java.util.LinkedHashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.Properties;
-import java.util.Set;
-
-import org.jboss.internal.soa.esb.publish.ActionContractPublisher;
-import org.jboss.internal.soa.esb.publish.ContractPublisher;
-import org.jboss.internal.soa.esb.publish.Publish;
-import org.jboss.soa.esb.ConfigurationException;
-import org.jboss.soa.esb.common.Environment;
-import org.jboss.soa.esb.common.ModulePropertyManager;
-import org.jboss.soa.esb.listeners.config.ServicePublisher;
-import org.jboss.soa.esb.listeners.config.WebserviceInfo;
-import org.jboss.soa.esb.listeners.config.xbeanmodel110.AbstractScheduledListener;
-import org.jboss.soa.esb.listeners.config.xbeanmodel110.Bus;
-import org.jboss.soa.esb.listeners.config.xbeanmodel110.BusProvider;
-import org.jboss.soa.esb.listeners.config.xbeanmodel110.JbossesbDocument;
-import org.jboss.soa.esb.listeners.config.xbeanmodel110.JcaGatewayDocument;
-import org.jboss.soa.esb.listeners.config.xbeanmodel110.Listener;
-import org.jboss.soa.esb.listeners.config.xbeanmodel110.ListenersDocument;
-import org.jboss.soa.esb.listeners.config.xbeanmodel110.MepType;
-import org.jboss.soa.esb.listeners.config.xbeanmodel110.PropertyDocument;
-import org.jboss.soa.esb.listeners.config.xbeanmodel110.Provider;
-import org.jboss.soa.esb.listeners.config.xbeanmodel110.Schedule;
-import org.jboss.soa.esb.listeners.config.xbeanmodel110.ActionDocument.Action;
-import org.jboss.soa.esb.listeners.config.xbeanmodel110.ActionsDocument.Actions;
-import org.jboss.soa.esb.listeners.config.xbeanmodel110.JbossesbDocument.Jbossesb;
-import org.jboss.soa.esb.listeners.config.xbeanmodel110.PropertyDocument.Property;
-import org.jboss.soa.esb.listeners.config.xbeanmodel110.ProvidersDocument.Providers;
-import org.jboss.soa.esb.listeners.config.xbeanmodel110.ScheduleProviderDocument.ScheduleProvider;
-import org.jboss.soa.esb.listeners.config.xbeanmodel110.ServiceDocument.Service;
-import org.jboss.soa.esb.listeners.config.xbeanmodel110.ServicesDocument.Services;
-import org.jboss.soa.esb.util.ClassUtil;
-import org.w3c.dom.Document;
-
-/**
- * XMLBeans based model implementation.
- *
- * @author <a href="mailto:tom.fennelly at jboss.com">tom.fennelly at jboss.com</a>
- */
-public class XMLBeansModel {
-
- /**
- * XMLBeans config model instance.
- */
- private Jbossesb jbossesb;
-
- /**
- * Constructor.
- * @param xmlBeansDoc XMLBeans config model.
- */
- public XMLBeansModel(Jbossesb jbossesb) {
- this.jbossesb = jbossesb;
- }
-
- /**
- * Get the list of ESB Gateway Listeners from the configuration.
- * @return The list of ESB Gateway Listeners from the configuration.
- * @throws ConfigurationException Bad configuration.
- */
- public List<Listener> getGatewayListeners() throws ConfigurationException {
- return getListeners(true);
- }
-
- /**
- * Get the list of ESB Aware Listeners from the configuration.
- * @return The list of ESB Aware Listeners from the configuration.
- * @throws ConfigurationException Bad configuration.
- */
- public List<Listener> getESBAwareListeners() throws ConfigurationException {
- return getListeners(false);
- }
-
- /**
- * Get the Service to which the supplied {@link Listener} configuration instance is bound.
- * @param listener The listener instance (Gateway or ESB Aware).
- * @return The Service to which the
- */
- public Service getService(Listener listener) {
- List<Service> services = getServices();
-
- for(Service service : services) {
- ListenersDocument.Listeners listeners = service.getListeners();
-
- if(listeners != null) {
- List<Listener> listenerList = listeners.getListenerList();
-
- if(listenerList != null) {
- for(Listener serviceListener : listenerList) {
- if(serviceListener == listener) {
- return service;
- }
- }
- }
- }
- }
-
- throw new IllegalStateException("No Service instance found for the supplied Listener instance. This should not be possible if the Listener instance was provided by this configuration. Where has this Listener instance come from?");
- }
-
- /**
- * Get the Service list.
- * @return Service list.
- */
- public List<Service> getServices() {
- final Services services = jbossesb.getServices();
- if (services != null) {
- return jbossesb.getServices().getServiceList();
- } else {
- return Collections.emptyList();
- }
- }
-
- /**
- * Get the <bus> configuration matching the supplied busid reference value.
- * @param busid The required <bus> configuration reference value.
- * @return The Bus configuration instance.
- * @throws ConfigurationException Unknown busid reference value.
- */
- public Bus getBus(String busid) throws ConfigurationException {
- List<Provider> providers = jbossesb.getProviders().getProviderList();
-
- for(Provider provider : providers) {
- if(provider instanceof BusProvider) {
- List<Bus> buses = ((BusProvider)provider).getBusList();
-
- for(Bus bus : buses) {
- if(bus.getBusid().equals(busid)) {
- return bus;
- }
- }
- }
- }
-
- throw new ConfigurationException("Invalid ESB Configuration: No <bus> configuration matching busid reference value [" + busid + "].");
- }
-
- /**
- * Get the <provider> configuration containing the supplied Bus configuration instance.
- * @param bus The Bus config instance whose Provider is being sought.
- * @return The Provider configuration instance.
- */
- public Provider getProvider(Bus bus) {
- List<Provider> providers = jbossesb.getProviders().getProviderList();
-
- for(Provider provider : providers) {
- if(provider instanceof BusProvider) {
- List<Bus> buses = ((BusProvider)provider).getBusList();
-
- for(Bus installedBus : buses) {
- if(installedBus == bus) {
- return provider;
- }
- }
- }
- }
-
- throw new IllegalStateException("No Provider instance found for the supplied Bus config instance. This should not be possible if the Bus instance was provided by this configuration. Where has this Bus instance come from?");
- }
-
- public Schedule getSchedule(final String id) {
- if((id == null) || (jbossesb.getProviders() == null)) {
- return null;
- }
-
- List<Provider> providers = jbossesb.getProviders().getProviderList();
-
- for(Provider provider : providers) {
- if(provider instanceof ScheduleProvider) {
- final ScheduleProvider scheduleProvider = (ScheduleProvider)provider ;
- final List<Schedule> schedules = scheduleProvider.getScheduleList() ;
- for(Schedule schedule: schedules) {
- if (id.equals(schedule.getScheduleid())) {
- return schedule ;
- }
- }
- }
- }
-
- return null;
- }
-
- public ScheduleProvider getScheduleProvider() {
- if(jbossesb.getProviders() == null) {
- return null;
- }
-
- List<Provider> providers = jbossesb.getProviders().getProviderList();
-
- for(Provider provider : providers) {
- if(provider instanceof ScheduleProvider) {
- return (ScheduleProvider) provider;
- }
- }
-
- return null;
- }
-
- public int getScheduledListenerCount() {
- int count = 0 ;
- if (jbossesb.getServices() != null) {
- final List<Service> services = getServices() ;
- for(Service service: services) {
- final ListenersDocument.Listeners listeners = service.getListeners() ;
- if (listeners != null) {
- for (Listener listener: listeners.getListenerList()) {
- if (listener instanceof AbstractScheduledListener) {
- count++ ;
- }
- }
- }
- }
- }
- return count ;
- }
-
- private boolean isGateway(Listener listener)
- {
- return listener.getIsGateway() || (listener instanceof JcaGatewayDocument.JcaGateway);
- }
-
- /**
- * Get the list of ESB Listeners based on their Gateway flag.
- * @return The list of ESB Aware or Gateway Listeners from the configuration.
- * @param isGateway Is the listener a gateway or ESB aware listener.
- * @throws ConfigurationException Bad configuration.
- */
- private List<Listener> getListeners(boolean isGateway) throws ConfigurationException {
- List<Listener> gateways = new ArrayList<Listener>();
- if (jbossesb.getServices() != null) {
- List<Service> services = getServices();
-
- for(Service service : services) {
- boolean listenerAdded = false;
- ListenersDocument.Listeners listeners = service.getListeners();
-
- if(listeners != null) {
- for(Listener listener : listeners.getListenerList()) {
- if(isGateway(listener) == isGateway) {
- gateways.add(listener);
- listenerAdded = true;
- }
- }
- }
-
- // Make sure each Service config has a message aware listener...
- // http://jira.jboss.com/jira/browse/JBESB-648
- if(!exposesInVMListener(service) && !isGateway && !listenerAdded) {
- throw new ConfigurationException("Service configuration for Service '" + service.getCategory() + ":" + service.getName() + "' doesn't define a Message-Aware Listener (i.e. is-gateway='false').");
- }
- }
- }
-
- return gateways;
- }
-
- /**
- * Gets the setting for the number of seconds between reloads.
- *
- * @return The param reload seconds config value.
- */
- public String getParameterReloadSecs() {
- return jbossesb.getParameterReloadSecs().getStringValue();
- }
-
- public static String getProperty(List<Property> properties, String name, String defaultVal) {
- for (PropertyDocument.Property property : properties) {
- if(property.getName().equals(name)) {
- return property.getValue();
- }
- }
-
- return defaultVal;
- }
-
- public static boolean exposesInVMListener(Service service) {
- if(service.xgetInvmScope() != null && service.xgetInvmScope().getStringValue() != null) {
- return (service.xgetInvmScope().getStringValue().equals("GLOBAL"));
- }
-
- String systemDefaultScope = System.getProperty(Environment.DEFAULT_INVM_SCOPE, "GLOBAL");
- String defaultScope = ModulePropertyManager.getPropertyManager("core").getProperty(Environment.DEFAULT_INVM_SCOPE, systemDefaultScope);
-
- return defaultScope.equals("GLOBAL");
- }
-
- /**
- * Verify the schedule provider configuration.
- * @throws ConfigurationException
- */
- public void verifyScheduleProviderConfig()
- throws ConfigurationException {
- Providers providersConfig = jbossesb.getProviders();
-
- if(providersConfig == null) {
- return;
- }
-
- List<Provider> providers = providersConfig.getProviderList();
- int numScheduleProviders = 0;
-
- for(Provider provider : providers) {
- if(provider instanceof ScheduleProvider) {
- numScheduleProviders++;
- }
- }
-
- if(numScheduleProviders > 1) {
- throw new ConfigurationException("Configuration contains " + numScheduleProviders + " <schedule-provider> configurations. Only one of this provider type can exist per configuration.");
- }
- }
-
-
- /**
- * Get a map of service publishers provided by each service.
- *
- * @return The map of service publishers, keyed by service.
- */
- public Map<org.jboss.soa.esb.Service, List<ServicePublisher>> getServicePublishers() {
- List<Service> serviceConfigs = getServices();
- final Map<org.jboss.soa.esb.Service, List<ServicePublisher>> servicePublishers = new LinkedHashMap<org.jboss.soa.esb.Service, List<ServicePublisher>>() ;
-
- for (Service docService : serviceConfigs) {
- ContractPublisher publisher = getContractPublisher(docService);
- final org.jboss.soa.esb.Service service = new org.jboss.soa.esb.Service(docService.getCategory(), docService.getName()) ;
- ServicePublisher servicePublisher = new ServicePublisher(service.getName(), service.getCategory(), publisher);
-
- servicePublisher.setDescription(docService.getDescription());
- addPublisher(servicePublishers, service, servicePublisher) ;
- }
-
- return servicePublishers ;
- }
-
- /**
- * Get the contract publisher for the service.
- * @param service The current service definition.
- * @return The contract publisher of null if none present.
- */
- private static ContractPublisher getContractPublisher(Service service) {
- if(service.getActions() == null || service.getActions().getActionList() == null) {
- return null;
- }
-
- for (Action action : service.getActions().getActionList()) {
- Class<Class> actionClass;
-
- try {
- actionClass = (Class<Class>) ClassUtil.forName(action.getClass1(), ServicePublisher.class);
- } catch (ClassNotFoundException e) {
- throw new RuntimeException("Failed to find action class '" + action.getClass1() + "'.", e);
- }
-
- Publish publishAnnotation = (Publish) actionClass.getAnnotation(Publish.class);
- if (publishAnnotation != null) {
- Class publisherClass;
- ActionContractPublisher publisher = null;
-
- publisherClass = publishAnnotation.value();
- try {
- publisher = (ActionContractPublisher) publisherClass.newInstance();
- final org.jboss.soa.esb.listeners.config.Action actionInfo = new org.jboss.soa.esb.listeners.config.Action(
- action.getName(), action.getClass1(), action.getProcess(), toProperties(action.getPropertyList())) ;
- publisher.setActionConfig(actionInfo);
- return publisher;
- } catch (ClassCastException e) {
- throw new RuntimeException("Action Contract Publisher class '" + publisherClass.getName() + "' must implement " + ActionContractPublisher.class.getName());
- } catch (Exception e) {
- throw new RuntimeException("Failed to instantiate Contract Publisher '" + publisherClass.getName() + "'. Class must implement a public default constructor.", e);
- }
- }
- }
-
- // No publisher configured on any of the actions in the processing chain...
- return null;
- }
-
-
- /**
- * Add the publisher into map for the specified service.
- * @param servicePublishers The service publishers
- * @param service The service name
- * @param publisher The publisher
- */
- private static void addPublisher(final Map<org.jboss.soa.esb.Service, List<ServicePublisher>> servicePublishers,
- final org.jboss.soa.esb.Service service, final ServicePublisher publisher)
- {
- final List<ServicePublisher> publishers = servicePublishers.get(service) ;
- if (publishers != null) {
- publishers.add(publisher);
- } else {
- final List<ServicePublisher> newPublishers = new ArrayList<ServicePublisher>() ;
- newPublishers.add(publisher) ;
- servicePublishers.put(service, newPublishers) ;
- }
- }
-
- /**
- * Generate the ESB Aware configuration document.
- * @return The ESB aware configuration.
- * @throws ConfigurationException Error creating configuration.
- */
- public Document generateESBAwareConfig()
- throws ConfigurationException
- {
- // Generate and serialise the configuration for the ESB Aware listeners...
- ESBAwareGenerator awareGenerator = new ESBAwareGenerator(this);
- return awareGenerator.generate();
- }
-
- /**
- * Generate the gateway configuration document.
- * @return The gateway configuration.
- * @throws ConfigurationException Error creating configuration.
- */
- public Document generateGatewayConfig()
- throws ConfigurationException
- {
- // Generate and serialise the configuration for the Gateway listeners...
- GatewayGenerator gatewayGenerator = new GatewayGenerator(this);
- return gatewayGenerator.generate();
- }
-
- /**
- * Get the properties from the document.
- * @param configProperties The document properties.
- * @return The properties.
- */
- public static Properties toProperties(List<PropertyDocument.Property> configProperties) {
- Properties properties = new Properties();
-
- for(PropertyDocument.Property property : configProperties) {
- properties.setProperty(property.getName(), property.getValue());
- }
-
- return properties;
- }
-
- /**
- * Get the list of actions in this deployment.
- * @return a list of actions or null if none present.
- */
- public Set<String> getActions()
- {
- final Services services = jbossesb.getServices() ;
- if (services != null)
- {
- final Set<String> actionClasses = new HashSet<String>() ;
-
- for(final Service service : services.getServiceList())
- {
- final Actions actions = service.getActions() ;
- if (actions != null)
- {
- for (final Action action: actions.getActionList())
- {
- actionClasses.add(action.getClass1()) ;
- }
- }
- }
-
- return actionClasses ;
- }
- return null ;
- }
-
-
- /**
- * Get the list of services which require a webservice endpoint.
- * @return The list of services.
- */
- public List<WebserviceInfo> getWebserviceServices()
- {
- final List<WebserviceInfo> endpointServices = new ArrayList<WebserviceInfo>() ;
- final Services services = jbossesb.getServices() ;
- if (services != null)
- {
- for(final Service service : services.getServiceList())
- {
- final Actions actions = service.getActions() ;
- if (actions != null)
- {
- if (!actions.isSetWebservice() || actions.getWebservice())
- {
- final String inXsd = actions.getInXsd() ;
- if (inXsd != null)
- {
- final WebserviceInfo webserviceInfo = new WebserviceInfo(
- new org.jboss.soa.esb.Service(service.getCategory(), service.getName()),
- actions.getInXsd(), actions.getOutXsd(), actions.getFaultXsd(),
- service.getDescription(), MepType.REQUEST_RESPONSE.equals(actions.getMep())) ;
- endpointServices.add(webserviceInfo) ;
- }
- }
- }
- }
- }
- return endpointServices ;
- }
-}
Copied: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers110/XMLBeansModel.java (from rev 24846, labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers110/XMLBeansModel.java)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers110/XMLBeansModel.java (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers110/XMLBeansModel.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -0,0 +1,527 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and others contributors as indicated
+ * by the @authors tag. All rights reserved.
+ * See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License, v. 2.1.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+ * PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
+ * You should have received a copy of the GNU Lesser General Public License,
+ * v.2.1 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301, USA.
+ *
+ * (C) 2005-2006,
+ * @author JBoss Inc.
+ */
+
+package org.jboss.soa.esb.listeners.config.mappers110;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.HashSet;
+import java.util.LinkedHashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Properties;
+import java.util.Set;
+
+import org.jboss.internal.soa.esb.publish.ActionContractPublisher;
+import org.jboss.internal.soa.esb.publish.ContractPublisher;
+import org.jboss.internal.soa.esb.publish.Publish;
+import org.jboss.soa.esb.ConfigurationException;
+import org.jboss.soa.esb.common.Environment;
+import org.jboss.soa.esb.common.ModulePropertyManager;
+import org.jboss.soa.esb.listeners.config.ServicePublisher;
+import org.jboss.soa.esb.listeners.config.WebserviceInfo;
+import org.jboss.soa.esb.listeners.config.xbeanmodel110.AbstractScheduledListener;
+import org.jboss.soa.esb.listeners.config.xbeanmodel110.Bus;
+import org.jboss.soa.esb.listeners.config.xbeanmodel110.BusProvider;
+import org.jboss.soa.esb.listeners.config.xbeanmodel110.JbossesbDocument;
+import org.jboss.soa.esb.listeners.config.xbeanmodel110.JcaGatewayDocument;
+import org.jboss.soa.esb.listeners.config.xbeanmodel110.Listener;
+import org.jboss.soa.esb.listeners.config.xbeanmodel110.ListenersDocument;
+import org.jboss.soa.esb.listeners.config.xbeanmodel110.MepType;
+import org.jboss.soa.esb.listeners.config.xbeanmodel110.PropertyDocument;
+import org.jboss.soa.esb.listeners.config.xbeanmodel110.Provider;
+import org.jboss.soa.esb.listeners.config.xbeanmodel110.Schedule;
+import org.jboss.soa.esb.listeners.config.xbeanmodel110.ActionDocument.Action;
+import org.jboss.soa.esb.listeners.config.xbeanmodel110.ActionsDocument.Actions;
+import org.jboss.soa.esb.listeners.config.xbeanmodel110.JbossesbDocument.Jbossesb;
+import org.jboss.soa.esb.listeners.config.xbeanmodel110.PropertyDocument.Property;
+import org.jboss.soa.esb.listeners.config.xbeanmodel110.ProvidersDocument.Providers;
+import org.jboss.soa.esb.listeners.config.xbeanmodel110.ScheduleProviderDocument.ScheduleProvider;
+import org.jboss.soa.esb.listeners.config.xbeanmodel110.ServiceDocument.Service;
+import org.jboss.soa.esb.listeners.config.xbeanmodel110.ServicesDocument.Services;
+import org.jboss.soa.esb.util.ClassUtil;
+import org.w3c.dom.Document;
+
+/**
+ * XMLBeans based model implementation.
+ *
+ * @author <a href="mailto:tom.fennelly at jboss.com">tom.fennelly at jboss.com</a>
+ */
+public class XMLBeansModel {
+
+ /**
+ * XMLBeans config model instance.
+ */
+ private Jbossesb jbossesb;
+
+ /**
+ * Constructor.
+ * @param xmlBeansDoc XMLBeans config model.
+ */
+ public XMLBeansModel(Jbossesb jbossesb) {
+ this.jbossesb = jbossesb;
+ }
+
+ /**
+ * Get the list of ESB Gateway Listeners from the configuration.
+ * @return The list of ESB Gateway Listeners from the configuration.
+ * @throws ConfigurationException Bad configuration.
+ */
+ public List<Listener> getGatewayListeners() throws ConfigurationException {
+ return getListeners(true);
+ }
+
+ /**
+ * Get the list of ESB Aware Listeners from the configuration.
+ * @return The list of ESB Aware Listeners from the configuration.
+ * @throws ConfigurationException Bad configuration.
+ */
+ public List<Listener> getESBAwareListeners() throws ConfigurationException {
+ return getListeners(false);
+ }
+
+ /**
+ * Get the Service to which the supplied {@link Listener} configuration instance is bound.
+ * @param listener The listener instance (Gateway or ESB Aware).
+ * @return The Service to which the
+ */
+ public Service getService(Listener listener) {
+ List<Service> services = getServices();
+
+ for(Service service : services) {
+ ListenersDocument.Listeners listeners = service.getListeners();
+
+ if(listeners != null) {
+ List<Listener> listenerList = listeners.getListenerList();
+
+ if(listenerList != null) {
+ for(Listener serviceListener : listenerList) {
+ if(serviceListener == listener) {
+ return service;
+ }
+ }
+ }
+ }
+ }
+
+ throw new IllegalStateException("No Service instance found for the supplied Listener instance. This should not be possible if the Listener instance was provided by this configuration. Where has this Listener instance come from?");
+ }
+
+ /**
+ * Get the Service list.
+ * @return Service list.
+ */
+ public List<Service> getServices() {
+ final Services services = jbossesb.getServices();
+ if (services != null) {
+ return jbossesb.getServices().getServiceList();
+ } else {
+ return Collections.emptyList();
+ }
+ }
+
+ /**
+ * Get the <bus> configuration matching the supplied busid reference value.
+ * @param busid The required <bus> configuration reference value.
+ * @return The Bus configuration instance.
+ * @throws ConfigurationException Unknown busid reference value.
+ */
+ public Bus getBus(String busid) throws ConfigurationException {
+ List<Provider> providers = jbossesb.getProviders().getProviderList();
+
+ for(Provider provider : providers) {
+ if(provider instanceof BusProvider) {
+ List<Bus> buses = ((BusProvider)provider).getBusList();
+
+ for(Bus bus : buses) {
+ if(bus.getBusid().equals(busid)) {
+ return bus;
+ }
+ }
+ }
+ }
+
+ throw new ConfigurationException("Invalid ESB Configuration: No <bus> configuration matching busid reference value [" + busid + "].");
+ }
+
+ /**
+ * Get the <provider> configuration containing the supplied Bus configuration instance.
+ * @param bus The Bus config instance whose Provider is being sought.
+ * @return The Provider configuration instance.
+ */
+ public Provider getProvider(Bus bus) {
+ List<Provider> providers = jbossesb.getProviders().getProviderList();
+
+ for(Provider provider : providers) {
+ if(provider instanceof BusProvider) {
+ List<Bus> buses = ((BusProvider)provider).getBusList();
+
+ for(Bus installedBus : buses) {
+ if(installedBus == bus) {
+ return provider;
+ }
+ }
+ }
+ }
+
+ throw new IllegalStateException("No Provider instance found for the supplied Bus config instance. This should not be possible if the Bus instance was provided by this configuration. Where has this Bus instance come from?");
+ }
+
+ public Schedule getSchedule(final String id) {
+ if((id == null) || (jbossesb.getProviders() == null)) {
+ return null;
+ }
+
+ List<Provider> providers = jbossesb.getProviders().getProviderList();
+
+ for(Provider provider : providers) {
+ if(provider instanceof ScheduleProvider) {
+ final ScheduleProvider scheduleProvider = (ScheduleProvider)provider ;
+ final List<Schedule> schedules = scheduleProvider.getScheduleList() ;
+ for(Schedule schedule: schedules) {
+ if (id.equals(schedule.getScheduleid())) {
+ return schedule ;
+ }
+ }
+ }
+ }
+
+ return null;
+ }
+
+ public ScheduleProvider getScheduleProvider() {
+ if(jbossesb.getProviders() == null) {
+ return null;
+ }
+
+ List<Provider> providers = jbossesb.getProviders().getProviderList();
+
+ for(Provider provider : providers) {
+ if(provider instanceof ScheduleProvider) {
+ return (ScheduleProvider) provider;
+ }
+ }
+
+ return null;
+ }
+
+ public int getScheduledListenerCount() {
+ int count = 0 ;
+ if (jbossesb.getServices() != null) {
+ final List<Service> services = getServices() ;
+ for(Service service: services) {
+ final ListenersDocument.Listeners listeners = service.getListeners() ;
+ if (listeners != null) {
+ for (Listener listener: listeners.getListenerList()) {
+ if (listener instanceof AbstractScheduledListener) {
+ count++ ;
+ }
+ }
+ }
+ }
+ }
+ return count ;
+ }
+
+ private boolean isGateway(Listener listener)
+ {
+ return listener.getIsGateway() || (listener instanceof JcaGatewayDocument.JcaGateway);
+ }
+
+ /**
+ * Get the list of ESB Listeners based on their Gateway flag.
+ * @return The list of ESB Aware or Gateway Listeners from the configuration.
+ * @param isGateway Is the listener a gateway or ESB aware listener.
+ * @throws ConfigurationException Bad configuration.
+ */
+ private List<Listener> getListeners(boolean isGateway) throws ConfigurationException {
+ List<Listener> gateways = new ArrayList<Listener>();
+ if (jbossesb.getServices() != null) {
+ List<Service> services = getServices();
+
+ for(Service service : services) {
+ boolean listenerAdded = false;
+ ListenersDocument.Listeners listeners = service.getListeners();
+
+ if(listeners != null) {
+ for(Listener listener : listeners.getListenerList()) {
+ if(isGateway(listener) == isGateway) {
+ gateways.add(listener);
+ listenerAdded = true;
+ }
+ }
+ }
+
+ // Make sure each Service config has a message aware listener...
+ // http://jira.jboss.com/jira/browse/JBESB-648
+ if(!exposesInVMListener(service) && !isGateway && !listenerAdded) {
+ throw new ConfigurationException("Service configuration for Service '" + service.getCategory() + ":" + service.getName() + "' doesn't define a Message-Aware Listener (i.e. is-gateway='false').");
+ }
+ }
+ }
+
+ return gateways;
+ }
+
+ /**
+ * Gets the setting for the number of seconds between reloads.
+ *
+ * @return The param reload seconds config value.
+ */
+ public String getParameterReloadSecs() {
+ return jbossesb.getParameterReloadSecs().getStringValue();
+ }
+
+ public static String getProperty(List<Property> properties, String name, String defaultVal) {
+ for (PropertyDocument.Property property : properties) {
+ if(property.getName().equals(name)) {
+ return property.getValue();
+ }
+ }
+
+ return defaultVal;
+ }
+
+ public static boolean exposesInVMListener(Service service) {
+ if(service.xgetInvmScope() != null && service.xgetInvmScope().getStringValue() != null) {
+ return (service.xgetInvmScope().getStringValue().equals("GLOBAL"));
+ }
+
+ String systemDefaultScope = System.getProperty(Environment.DEFAULT_INVM_SCOPE, "GLOBAL");
+ String defaultScope = ModulePropertyManager.getPropertyManager("core").getProperty(Environment.DEFAULT_INVM_SCOPE, systemDefaultScope);
+
+ return defaultScope.equals("GLOBAL");
+ }
+
+ /**
+ * Verify the schedule provider configuration.
+ * @throws ConfigurationException
+ */
+ public void verifyScheduleProviderConfig()
+ throws ConfigurationException {
+ Providers providersConfig = jbossesb.getProviders();
+
+ if(providersConfig == null) {
+ return;
+ }
+
+ List<Provider> providers = providersConfig.getProviderList();
+ int numScheduleProviders = 0;
+
+ for(Provider provider : providers) {
+ if(provider instanceof ScheduleProvider) {
+ numScheduleProviders++;
+ }
+ }
+
+ if(numScheduleProviders > 1) {
+ throw new ConfigurationException("Configuration contains " + numScheduleProviders + " <schedule-provider> configurations. Only one of this provider type can exist per configuration.");
+ }
+ }
+
+
+ /**
+ * Get a map of service publishers provided by each service.
+ *
+ * @return The map of service publishers, keyed by service.
+ */
+ public Map<org.jboss.soa.esb.Service, List<ServicePublisher>> getServicePublishers() {
+ List<Service> serviceConfigs = getServices();
+ final Map<org.jboss.soa.esb.Service, List<ServicePublisher>> servicePublishers = new LinkedHashMap<org.jboss.soa.esb.Service, List<ServicePublisher>>() ;
+
+ for (Service docService : serviceConfigs) {
+ ContractPublisher publisher = getContractPublisher(docService);
+ final org.jboss.soa.esb.Service service = new org.jboss.soa.esb.Service(docService.getCategory(), docService.getName()) ;
+ ServicePublisher servicePublisher = new ServicePublisher(service.getName(), service.getCategory(), publisher);
+
+ servicePublisher.setDescription(docService.getDescription());
+ addPublisher(servicePublishers, service, servicePublisher) ;
+ }
+
+ return servicePublishers ;
+ }
+
+ /**
+ * Get the contract publisher for the service.
+ * @param service The current service definition.
+ * @return The contract publisher of null if none present.
+ */
+ private static ContractPublisher getContractPublisher(Service service) {
+ if(service.getActions() == null || service.getActions().getActionList() == null) {
+ return null;
+ }
+
+ for (Action action : service.getActions().getActionList()) {
+ Class<Class> actionClass;
+
+ try {
+ actionClass = (Class<Class>) ClassUtil.forName(action.getClass1(), ServicePublisher.class);
+ } catch (ClassNotFoundException e) {
+ throw new RuntimeException("Failed to find action class '" + action.getClass1() + "'.", e);
+ }
+
+ Publish publishAnnotation = (Publish) actionClass.getAnnotation(Publish.class);
+ if (publishAnnotation != null) {
+ Class publisherClass;
+ ActionContractPublisher publisher = null;
+
+ publisherClass = publishAnnotation.value();
+ try {
+ publisher = (ActionContractPublisher) publisherClass.newInstance();
+ final org.jboss.soa.esb.listeners.config.Action actionInfo = new org.jboss.soa.esb.listeners.config.Action(
+ action.getName(), action.getClass1(), action.getProcess(), toProperties(action.getPropertyList())) ;
+ publisher.setActionConfig(actionInfo);
+ return publisher;
+ } catch (ClassCastException e) {
+ throw new RuntimeException("Action Contract Publisher class '" + publisherClass.getName() + "' must implement " + ActionContractPublisher.class.getName());
+ } catch (Exception e) {
+ throw new RuntimeException("Failed to instantiate Contract Publisher '" + publisherClass.getName() + "'. Class must implement a public default constructor.", e);
+ }
+ }
+ }
+
+ // No publisher configured on any of the actions in the processing chain...
+ return null;
+ }
+
+
+ /**
+ * Add the publisher into map for the specified service.
+ * @param servicePublishers The service publishers
+ * @param service The service name
+ * @param publisher The publisher
+ */
+ private static void addPublisher(final Map<org.jboss.soa.esb.Service, List<ServicePublisher>> servicePublishers,
+ final org.jboss.soa.esb.Service service, final ServicePublisher publisher)
+ {
+ final List<ServicePublisher> publishers = servicePublishers.get(service) ;
+ if (publishers != null) {
+ publishers.add(publisher);
+ } else {
+ final List<ServicePublisher> newPublishers = new ArrayList<ServicePublisher>() ;
+ newPublishers.add(publisher) ;
+ servicePublishers.put(service, newPublishers) ;
+ }
+ }
+
+ /**
+ * Generate the ESB Aware configuration document.
+ * @return The ESB aware configuration.
+ * @throws ConfigurationException Error creating configuration.
+ */
+ public Document generateESBAwareConfig()
+ throws ConfigurationException
+ {
+ // Generate and serialise the configuration for the ESB Aware listeners...
+ ESBAwareGenerator awareGenerator = new ESBAwareGenerator(this);
+ return awareGenerator.generate();
+ }
+
+ /**
+ * Generate the gateway configuration document.
+ * @return The gateway configuration.
+ * @throws ConfigurationException Error creating configuration.
+ */
+ public Document generateGatewayConfig()
+ throws ConfigurationException
+ {
+ // Generate and serialise the configuration for the Gateway listeners...
+ GatewayGenerator gatewayGenerator = new GatewayGenerator(this);
+ return gatewayGenerator.generate();
+ }
+
+ /**
+ * Get the properties from the document.
+ * @param configProperties The document properties.
+ * @return The properties.
+ */
+ public static Properties toProperties(List<PropertyDocument.Property> configProperties) {
+ Properties properties = new Properties();
+
+ for(PropertyDocument.Property property : configProperties) {
+ properties.setProperty(property.getName(), property.getValue());
+ }
+
+ return properties;
+ }
+
+ /**
+ * Get the list of actions in this deployment.
+ * @return a list of actions or null if none present.
+ */
+ public Set<String> getActions()
+ {
+ final Services services = jbossesb.getServices() ;
+ if (services != null)
+ {
+ final Set<String> actionClasses = new HashSet<String>() ;
+
+ for(final Service service : services.getServiceList())
+ {
+ final Actions actions = service.getActions() ;
+ if (actions != null)
+ {
+ for (final Action action: actions.getActionList())
+ {
+ actionClasses.add(action.getClass1()) ;
+ }
+ }
+ }
+
+ return actionClasses ;
+ }
+ return null ;
+ }
+
+
+ /**
+ * Get the list of services which require a webservice endpoint.
+ * @return The list of services.
+ */
+ public List<WebserviceInfo> getWebserviceServices()
+ {
+ final List<WebserviceInfo> endpointServices = new ArrayList<WebserviceInfo>() ;
+ final Services services = jbossesb.getServices() ;
+ if (services != null)
+ {
+ for(final Service service : services.getServiceList())
+ {
+ final Actions actions = service.getActions() ;
+ if (actions != null)
+ {
+ if (!actions.isSetWebservice() || actions.getWebservice())
+ {
+ final String inXsd = actions.getInXsd() ;
+ if (inXsd != null)
+ {
+ final WebserviceInfo webserviceInfo = new WebserviceInfo(
+ new org.jboss.soa.esb.Service(service.getCategory(), service.getName()),
+ actions.getInXsd(), actions.getOutXsd(), actions.getFaultXsd(),
+ service.getDescription(), MepType.REQUEST_RESPONSE.equals(actions.getMep())) ;
+ endpointServices.add(webserviceInfo) ;
+ }
+ }
+ }
+ }
+ }
+ return endpointServices ;
+ }
+}
Copied: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/model (from rev 24846, labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/listeners/config/model)
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/model/Model101SchemaParser.java
===================================================================
--- labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/listeners/config/model/Model101SchemaParser.java 2009-01-21 09:35:03 UTC (rev 24846)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/model/Model101SchemaParser.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -1,160 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2006, JBoss Inc., and others contributors as indicated
- * by the @authors tag. All rights reserved.
- * See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- * This copyrighted material is made available to anyone wishing to use,
- * modify, copy, or redistribute it subject to the terms and conditions
- * of the GNU Lesser General Public License, v. 2.1.
- * This program is distributed in the hope that it will be useful, but WITHOUT A
- * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
- * PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
- * You should have received a copy of the GNU Lesser General Public License,
- * v.2.1 along with this distribution; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
- * MA 02110-1301, USA.
- *
- * (C) 2005-2006,
- * @author JBoss Inc.
- */
-
-package org.jboss.soa.esb.listeners.config.model;
-
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-
-import javax.xml.stream.XMLStreamException;
-import javax.xml.stream.XMLStreamReader;
-
-import org.apache.xmlbeans.XmlException;
-import org.jboss.soa.esb.ConfigurationException;
-import org.jboss.soa.esb.Service;
-import org.jboss.soa.esb.listeners.config.ServicePublisher;
-import org.jboss.soa.esb.listeners.config.WebserviceInfo;
-import org.jboss.soa.esb.listeners.config.mappers.XMLBeansModel;
-import org.jboss.soa.esb.listeners.config.xbeanmodel101.JbossesbDocument.Factory;
-import org.w3c.dom.Document;
-
-/**
- * Schema parser for jbossesb-1.0.1.xsd schema.
- *
- * <a href='mailto:Kevin.Conner at jboss.com>Kevin Conner</a>
- */
-class Model101SchemaParser implements SchemaParser
-{
- /**
- * The namespace associated with this parser.
- */
- static final String NAMESPACE = "http://anonsvn.labs.jboss.com/labs/jbossesb/trunk/product/etc/schemas/xml/jbossesb-1.0.1.xsd" ;
-
- /**
- * The schema resource for validation.
- */
- static final String SCHEMA = "/jbossesb-1.0.1.xsd";
-
-
- /**
- * Obtain a model adapter from the specified stream.
- * @param reader The XML stream reader.
- * @return The model adapter
- * @throws XMLStreamException for errors during parsing.
- */
- public ModelAdapter parse(final XMLStreamReader reader)
- throws ModelException
- {
- try
- {
- return new Model101Adapter(new XMLBeansModel(Factory.parse(reader).getJbossesb())) ;
- }
- catch (final XmlException xmle)
- {
- throw new ModelException("Error during schema parsing", xmle) ;
- }
- }
-
- /**
- * Model adapter for the jbossesb-1.0.1.xsd schema.
- *
- * <a href='mailto:Kevin.Conner at jboss.com>Kevin Conner</a>
- *
- */
- private static final class Model101Adapter implements ModelAdapter
- {
- /**
- * The model for jbossesb-1.0.1.xsd.
- */
- private final XMLBeansModel model ;
-
- /**
- * Create the jbossesb-1.0.1 model adapter.
- * @param model The jbossesb-1.0.1 model.
- */
- Model101Adapter(final XMLBeansModel model)
- {
- this.model = model ;
- }
-
- /**
- * Verify the schedule provider configuration.
- * @throws ConfigurationException
- */
- public void verifyScheduleProviderConfig()
- throws ConfigurationException
- {
- model.verifyScheduleProviderConfig() ;
- }
-
- /**
- * Get a map of service publishers provided by each service.
- *
- * @return The map of service publishers, keyed by service.
- */
- public Map<Service, List<ServicePublisher>> getServicePublishers()
- {
- return model.getServicePublishers() ;
- }
-
-
- /**
- * Generate the ESB Aware configuration document.
- * @return The ESB aware configuration.
- * @throws ConfigurationException Error creating configuration.
- */
- public Document generateESBAwareConfig()
- throws ConfigurationException
- {
- return model.generateESBAwareConfig() ;
- }
-
- /**
- * Generate the gateway configuration document.
- * @return The gateway configuration.
- * @throws ConfigurationException Error creating configuration.
- */
- public Document generateGatewayConfig()
- throws ConfigurationException
- {
- return model.generateGatewayConfig() ;
- }
-
- /**
- * Get the list of actions in this deployment.
- * @return a list of actions or null if none present.
- */
- public Set<String> getActions()
- {
- return model.getActions() ;
- }
-
- /**
- * Get the list of services which require a webservice endpoint.
- * @return The list of services.
- */
- public List<WebserviceInfo> getWebserviceServices()
- {
- return model.getWebserviceServices() ;
- }
- }
-}
Copied: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/model/Model101SchemaParser.java (from rev 24846, labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/listeners/config/model/Model101SchemaParser.java)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/model/Model101SchemaParser.java (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/model/Model101SchemaParser.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -0,0 +1,160 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and others contributors as indicated
+ * by the @authors tag. All rights reserved.
+ * See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License, v. 2.1.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+ * PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
+ * You should have received a copy of the GNU Lesser General Public License,
+ * v.2.1 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301, USA.
+ *
+ * (C) 2005-2006,
+ * @author JBoss Inc.
+ */
+
+package org.jboss.soa.esb.listeners.config.model;
+
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+
+import javax.xml.stream.XMLStreamException;
+import javax.xml.stream.XMLStreamReader;
+
+import org.apache.xmlbeans.XmlException;
+import org.jboss.soa.esb.ConfigurationException;
+import org.jboss.soa.esb.Service;
+import org.jboss.soa.esb.listeners.config.ServicePublisher;
+import org.jboss.soa.esb.listeners.config.WebserviceInfo;
+import org.jboss.soa.esb.listeners.config.mappers.XMLBeansModel;
+import org.jboss.soa.esb.listeners.config.xbeanmodel101.JbossesbDocument.Factory;
+import org.w3c.dom.Document;
+
+/**
+ * Schema parser for jbossesb-1.0.1.xsd schema.
+ *
+ * <a href='mailto:Kevin.Conner at jboss.com>Kevin Conner</a>
+ */
+class Model101SchemaParser implements SchemaParser
+{
+ /**
+ * The namespace associated with this parser.
+ */
+ static final String NAMESPACE = "http://anonsvn.labs.jboss.com/labs/jbossesb/trunk/product/etc/schemas/xml/jbossesb-1.0.1.xsd" ;
+
+ /**
+ * The schema resource for validation.
+ */
+ static final String SCHEMA = "/jbossesb-1.0.1.xsd";
+
+
+ /**
+ * Obtain a model adapter from the specified stream.
+ * @param reader The XML stream reader.
+ * @return The model adapter
+ * @throws XMLStreamException for errors during parsing.
+ */
+ public ModelAdapter parse(final XMLStreamReader reader)
+ throws ModelException
+ {
+ try
+ {
+ return new Model101Adapter(new XMLBeansModel(Factory.parse(reader).getJbossesb())) ;
+ }
+ catch (final XmlException xmle)
+ {
+ throw new ModelException("Error during schema parsing", xmle) ;
+ }
+ }
+
+ /**
+ * Model adapter for the jbossesb-1.0.1.xsd schema.
+ *
+ * <a href='mailto:Kevin.Conner at jboss.com>Kevin Conner</a>
+ *
+ */
+ private static final class Model101Adapter implements ModelAdapter
+ {
+ /**
+ * The model for jbossesb-1.0.1.xsd.
+ */
+ private final XMLBeansModel model ;
+
+ /**
+ * Create the jbossesb-1.0.1 model adapter.
+ * @param model The jbossesb-1.0.1 model.
+ */
+ Model101Adapter(final XMLBeansModel model)
+ {
+ this.model = model ;
+ }
+
+ /**
+ * Verify the schedule provider configuration.
+ * @throws ConfigurationException
+ */
+ public void verifyScheduleProviderConfig()
+ throws ConfigurationException
+ {
+ model.verifyScheduleProviderConfig() ;
+ }
+
+ /**
+ * Get a map of service publishers provided by each service.
+ *
+ * @return The map of service publishers, keyed by service.
+ */
+ public Map<Service, List<ServicePublisher>> getServicePublishers()
+ {
+ return model.getServicePublishers() ;
+ }
+
+
+ /**
+ * Generate the ESB Aware configuration document.
+ * @return The ESB aware configuration.
+ * @throws ConfigurationException Error creating configuration.
+ */
+ public Document generateESBAwareConfig()
+ throws ConfigurationException
+ {
+ return model.generateESBAwareConfig() ;
+ }
+
+ /**
+ * Generate the gateway configuration document.
+ * @return The gateway configuration.
+ * @throws ConfigurationException Error creating configuration.
+ */
+ public Document generateGatewayConfig()
+ throws ConfigurationException
+ {
+ return model.generateGatewayConfig() ;
+ }
+
+ /**
+ * Get the list of actions in this deployment.
+ * @return a list of actions or null if none present.
+ */
+ public Set<String> getActions()
+ {
+ return model.getActions() ;
+ }
+
+ /**
+ * Get the list of services which require a webservice endpoint.
+ * @return The list of services.
+ */
+ public List<WebserviceInfo> getWebserviceServices()
+ {
+ return model.getWebserviceServices() ;
+ }
+ }
+}
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/model/Model110SchemaParser.java
===================================================================
--- labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/listeners/config/model/Model110SchemaParser.java 2009-01-21 09:35:03 UTC (rev 24846)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/model/Model110SchemaParser.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -1,159 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2006, JBoss Inc., and others contributors as indicated
- * by the @authors tag. All rights reserved.
- * See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- * This copyrighted material is made available to anyone wishing to use,
- * modify, copy, or redistribute it subject to the terms and conditions
- * of the GNU Lesser General Public License, v. 2.1.
- * This program is distributed in the hope that it will be useful, but WITHOUT A
- * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
- * PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
- * You should have received a copy of the GNU Lesser General Public License,
- * v.2.1 along with this distribution; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
- * MA 02110-1301, USA.
- *
- * (C) 2005-2006,
- * @author JBoss Inc.
- */
-
-package org.jboss.soa.esb.listeners.config.model;
-
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-
-import javax.xml.stream.XMLStreamException;
-import javax.xml.stream.XMLStreamReader;
-
-import org.apache.xmlbeans.XmlException;
-import org.jboss.soa.esb.ConfigurationException;
-import org.jboss.soa.esb.Service;
-import org.jboss.soa.esb.listeners.config.ServicePublisher;
-import org.jboss.soa.esb.listeners.config.WebserviceInfo;
-import org.jboss.soa.esb.listeners.config.mappers110.XMLBeansModel;
-import org.jboss.soa.esb.listeners.config.xbeanmodel110.JbossesbDocument.Factory;
-import org.w3c.dom.Document;
-
-/**
- * Schema parser for jbossesb-1.1.0.xsd schema.
- *
- * <a href='mailto:Kevin.Conner at jboss.com>Kevin Conner</a>
- */
-class Model110SchemaParser implements SchemaParser
-{
- /**
- * The namespace associated with this parser.
- */
- static final String NAMESPACE = "http://anonsvn.labs.jboss.com/labs/jbossesb/trunk/product/etc/schemas/xml/jbossesb-1.1.0.xsd" ;
-
- /**
- * The schema resource for validation.
- */
- static final String SCHEMA = "/jbossesb-1.1.0.xsd";
-
- /**
- * Obtain a model adapter from the specified stream.
- * @param reader The XML stream reader.
- * @return The model adapter
- * @throws XMLStreamException for errors during parsing.
- */
- public ModelAdapter parse(final XMLStreamReader reader)
- throws ModelException
- {
- try
- {
- return new Model110Adapter(new XMLBeansModel(Factory.parse(reader).getJbossesb())) ;
- }
- catch (final XmlException xmle)
- {
- throw new ModelException("Error during schema parsing", xmle) ;
- }
- }
-
- /**
- * Model adapter for the jbossesb-1.1.0.xsd schema.
- *
- * <a href='mailto:Kevin.Conner at jboss.com>Kevin Conner</a>
- *
- */
- private static final class Model110Adapter implements ModelAdapter
- {
- /**
- * The model for jbossesb-1.1.0.xsd.
- */
- private final XMLBeansModel model ;
-
- /**
- * Create the jbossesb-1.1.0 model adapter.
- * @param model The jbossesb-1.1.0 model.
- */
- Model110Adapter(final XMLBeansModel model)
- {
- this.model = model ;
- }
-
- /**
- * Verify the schedule provider configuration.
- * @throws ConfigurationException
- */
- public void verifyScheduleProviderConfig()
- throws ConfigurationException
- {
- model.verifyScheduleProviderConfig() ;
- }
-
- /**
- * Get a map of service publishers provided by each service.
- *
- * @return The map of service publishers, keyed by service.
- */
- public Map<Service, List<ServicePublisher>> getServicePublishers()
- {
- return model.getServicePublishers() ;
- }
-
-
- /**
- * Generate the ESB Aware configuration document.
- * @return The ESB aware configuration.
- * @throws ConfigurationException Error creating configuration.
- */
- public Document generateESBAwareConfig()
- throws ConfigurationException
- {
- return model.generateESBAwareConfig() ;
- }
-
- /**
- * Generate the gateway configuration document.
- * @return The gateway configuration.
- * @throws ConfigurationException Error creating configuration.
- */
- public Document generateGatewayConfig()
- throws ConfigurationException
- {
- return model.generateGatewayConfig() ;
- }
-
- /**
- * Get the list of actions in this deployment.
- * @return a list of actions or null if none present.
- */
- public Set<String> getActions()
- {
- return model.getActions() ;
- }
-
- /**
- * Get the list of services which require a webservice endpoint.
- * @return The list of services.
- */
- public List<WebserviceInfo> getWebserviceServices()
- {
- return model.getWebserviceServices() ;
- }
- }
-}
Copied: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/model/Model110SchemaParser.java (from rev 24846, labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/listeners/config/model/Model110SchemaParser.java)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/model/Model110SchemaParser.java (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/model/Model110SchemaParser.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -0,0 +1,159 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and others contributors as indicated
+ * by the @authors tag. All rights reserved.
+ * See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License, v. 2.1.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+ * PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
+ * You should have received a copy of the GNU Lesser General Public License,
+ * v.2.1 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301, USA.
+ *
+ * (C) 2005-2006,
+ * @author JBoss Inc.
+ */
+
+package org.jboss.soa.esb.listeners.config.model;
+
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+
+import javax.xml.stream.XMLStreamException;
+import javax.xml.stream.XMLStreamReader;
+
+import org.apache.xmlbeans.XmlException;
+import org.jboss.soa.esb.ConfigurationException;
+import org.jboss.soa.esb.Service;
+import org.jboss.soa.esb.listeners.config.ServicePublisher;
+import org.jboss.soa.esb.listeners.config.WebserviceInfo;
+import org.jboss.soa.esb.listeners.config.mappers110.XMLBeansModel;
+import org.jboss.soa.esb.listeners.config.xbeanmodel110.JbossesbDocument.Factory;
+import org.w3c.dom.Document;
+
+/**
+ * Schema parser for jbossesb-1.1.0.xsd schema.
+ *
+ * <a href='mailto:Kevin.Conner at jboss.com>Kevin Conner</a>
+ */
+class Model110SchemaParser implements SchemaParser
+{
+ /**
+ * The namespace associated with this parser.
+ */
+ static final String NAMESPACE = "http://anonsvn.labs.jboss.com/labs/jbossesb/trunk/product/etc/schemas/xml/jbossesb-1.1.0.xsd" ;
+
+ /**
+ * The schema resource for validation.
+ */
+ static final String SCHEMA = "/jbossesb-1.1.0.xsd";
+
+ /**
+ * Obtain a model adapter from the specified stream.
+ * @param reader The XML stream reader.
+ * @return The model adapter
+ * @throws XMLStreamException for errors during parsing.
+ */
+ public ModelAdapter parse(final XMLStreamReader reader)
+ throws ModelException
+ {
+ try
+ {
+ return new Model110Adapter(new XMLBeansModel(Factory.parse(reader).getJbossesb())) ;
+ }
+ catch (final XmlException xmle)
+ {
+ throw new ModelException("Error during schema parsing", xmle) ;
+ }
+ }
+
+ /**
+ * Model adapter for the jbossesb-1.1.0.xsd schema.
+ *
+ * <a href='mailto:Kevin.Conner at jboss.com>Kevin Conner</a>
+ *
+ */
+ private static final class Model110Adapter implements ModelAdapter
+ {
+ /**
+ * The model for jbossesb-1.1.0.xsd.
+ */
+ private final XMLBeansModel model ;
+
+ /**
+ * Create the jbossesb-1.1.0 model adapter.
+ * @param model The jbossesb-1.1.0 model.
+ */
+ Model110Adapter(final XMLBeansModel model)
+ {
+ this.model = model ;
+ }
+
+ /**
+ * Verify the schedule provider configuration.
+ * @throws ConfigurationException
+ */
+ public void verifyScheduleProviderConfig()
+ throws ConfigurationException
+ {
+ model.verifyScheduleProviderConfig() ;
+ }
+
+ /**
+ * Get a map of service publishers provided by each service.
+ *
+ * @return The map of service publishers, keyed by service.
+ */
+ public Map<Service, List<ServicePublisher>> getServicePublishers()
+ {
+ return model.getServicePublishers() ;
+ }
+
+
+ /**
+ * Generate the ESB Aware configuration document.
+ * @return The ESB aware configuration.
+ * @throws ConfigurationException Error creating configuration.
+ */
+ public Document generateESBAwareConfig()
+ throws ConfigurationException
+ {
+ return model.generateESBAwareConfig() ;
+ }
+
+ /**
+ * Generate the gateway configuration document.
+ * @return The gateway configuration.
+ * @throws ConfigurationException Error creating configuration.
+ */
+ public Document generateGatewayConfig()
+ throws ConfigurationException
+ {
+ return model.generateGatewayConfig() ;
+ }
+
+ /**
+ * Get the list of actions in this deployment.
+ * @return a list of actions or null if none present.
+ */
+ public Set<String> getActions()
+ {
+ return model.getActions() ;
+ }
+
+ /**
+ * Get the list of services which require a webservice endpoint.
+ * @return The list of services.
+ */
+ public List<WebserviceInfo> getWebserviceServices()
+ {
+ return model.getWebserviceServices() ;
+ }
+ }
+}
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/model/ModelAdapter.java
===================================================================
--- labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/listeners/config/model/ModelAdapter.java 2009-01-21 09:35:03 UTC (rev 24846)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/model/ModelAdapter.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -1,82 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2006, JBoss Inc., and others contributors as indicated
- * by the @authors tag. All rights reserved.
- * See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- * This copyrighted material is made available to anyone wishing to use,
- * modify, copy, or redistribute it subject to the terms and conditions
- * of the GNU Lesser General Public License, v. 2.1.
- * This program is distributed in the hope that it will be useful, but WITHOUT A
- * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
- * PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
- * You should have received a copy of the GNU Lesser General Public License,
- * v.2.1 along with this distribution; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
- * MA 02110-1301, USA.
- *
- * (C) 2005-2006,
- * @author JBoss Inc.
- */
-
-package org.jboss.soa.esb.listeners.config.model;
-
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-
-import org.jboss.soa.esb.ConfigurationException;
-import org.jboss.soa.esb.Service;
-import org.jboss.soa.esb.listeners.config.ServicePublisher;
-import org.jboss.soa.esb.listeners.config.WebserviceInfo;
-import org.w3c.dom.Document;
-
-/**
- * Adapter interface for external querying of the model.
- *
- * <a href='mailto:Kevin.Conner at jboss.com>Kevin Conner</a>
- */
-public interface ModelAdapter
-{
- /**
- * Verify the schedule provider configuration.
- * @throws ConfigurationException
- */
- public void verifyScheduleProviderConfig()
- throws ConfigurationException ;
-
- /**
- * Get a map of service publishers provided by each service.
- *
- * @return The map of service publishers, keyed by service.
- */
- public Map<Service, List<ServicePublisher>> getServicePublishers() ;
-
- /**
- * Generate the ESB Aware configuration document.
- * @return The ESB aware configuration.
- * @throws ConfigurationException Error creating configuration.
- */
- public Document generateESBAwareConfig()
- throws ConfigurationException ;
-
- /**
- * Generate the gateway configuration document.
- * @return The gateway configuration.
- * @throws ConfigurationException Error creating configuration.
- */
- public Document generateGatewayConfig()
- throws ConfigurationException ;
-
- /**
- * Get the list of actions in this deployment.
- * @return a list of actions or null if none present.
- */
- public Set<String> getActions() ;
-
- /**
- * Get the list of services which require a webservice endpoint.
- * @return The list of services.
- */
- public List<WebserviceInfo> getWebserviceServices() ;
-}
Copied: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/model/ModelAdapter.java (from rev 24846, labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/listeners/config/model/ModelAdapter.java)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/model/ModelAdapter.java (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/model/ModelAdapter.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -0,0 +1,82 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and others contributors as indicated
+ * by the @authors tag. All rights reserved.
+ * See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License, v. 2.1.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+ * PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
+ * You should have received a copy of the GNU Lesser General Public License,
+ * v.2.1 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301, USA.
+ *
+ * (C) 2005-2006,
+ * @author JBoss Inc.
+ */
+
+package org.jboss.soa.esb.listeners.config.model;
+
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+
+import org.jboss.soa.esb.ConfigurationException;
+import org.jboss.soa.esb.Service;
+import org.jboss.soa.esb.listeners.config.ServicePublisher;
+import org.jboss.soa.esb.listeners.config.WebserviceInfo;
+import org.w3c.dom.Document;
+
+/**
+ * Adapter interface for external querying of the model.
+ *
+ * <a href='mailto:Kevin.Conner at jboss.com>Kevin Conner</a>
+ */
+public interface ModelAdapter
+{
+ /**
+ * Verify the schedule provider configuration.
+ * @throws ConfigurationException
+ */
+ public void verifyScheduleProviderConfig()
+ throws ConfigurationException ;
+
+ /**
+ * Get a map of service publishers provided by each service.
+ *
+ * @return The map of service publishers, keyed by service.
+ */
+ public Map<Service, List<ServicePublisher>> getServicePublishers() ;
+
+ /**
+ * Generate the ESB Aware configuration document.
+ * @return The ESB aware configuration.
+ * @throws ConfigurationException Error creating configuration.
+ */
+ public Document generateESBAwareConfig()
+ throws ConfigurationException ;
+
+ /**
+ * Generate the gateway configuration document.
+ * @return The gateway configuration.
+ * @throws ConfigurationException Error creating configuration.
+ */
+ public Document generateGatewayConfig()
+ throws ConfigurationException ;
+
+ /**
+ * Get the list of actions in this deployment.
+ * @return a list of actions or null if none present.
+ */
+ public Set<String> getActions() ;
+
+ /**
+ * Get the list of services which require a webservice endpoint.
+ * @return The list of services.
+ */
+ public List<WebserviceInfo> getWebserviceServices() ;
+}
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/model/ModelException.java
===================================================================
--- labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/listeners/config/model/ModelException.java 2009-01-21 09:35:03 UTC (rev 24846)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/model/ModelException.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -1,71 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2006, JBoss Inc., and others contributors as indicated
- * by the @authors tag. All rights reserved.
- * See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- * This copyrighted material is made available to anyone wishing to use,
- * modify, copy, or redistribute it subject to the terms and conditions
- * of the GNU Lesser General Public License, v. 2.1.
- * This program is distributed in the hope that it will be useful, but WITHOUT A
- * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
- * PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
- * You should have received a copy of the GNU Lesser General Public License,
- * v.2.1 along with this distribution; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
- * MA 02110-1301, USA.
- *
- * (C) 2005-2006,
- * @author JBoss Inc.
- */
-
-package org.jboss.soa.esb.listeners.config.model;
-
-/**
- * Exception representing errors during parsing of the model.
- *
- * <a href='mailto:Kevin.Conner at jboss.com>Kevin Conner</a>
- */
-public class ModelException extends Exception
-{
- /**
- * The serial version UID for this class.
- */
- private static final long serialVersionUID = 6108565070668277643L;
-
- /**
- * Default constructor for the exception
- */
- public ModelException()
- {
- }
-
- /**
- * Create an exception with a specified message.
- * @param message The message associated with this exception.
- */
- public ModelException(final String message)
- {
- super(message) ;
- }
-
- /**
- * Create an exception with a specified cause.
- * @param cause The cause associated with this exception.
- */
- public ModelException(final Throwable cause)
- {
- super(cause) ;
- }
-
- /**
- * Create an exception with a specified message and cause.
- * @param message The message associated with this exception.
- * @param cause The cause associated with this exception.
- */
- public ModelException(final String message, final Throwable cause)
- {
- super(message, cause) ;
- }
-
-}
Copied: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/model/ModelException.java (from rev 24846, labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/listeners/config/model/ModelException.java)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/model/ModelException.java (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/model/ModelException.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -0,0 +1,71 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and others contributors as indicated
+ * by the @authors tag. All rights reserved.
+ * See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License, v. 2.1.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+ * PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
+ * You should have received a copy of the GNU Lesser General Public License,
+ * v.2.1 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301, USA.
+ *
+ * (C) 2005-2006,
+ * @author JBoss Inc.
+ */
+
+package org.jboss.soa.esb.listeners.config.model;
+
+/**
+ * Exception representing errors during parsing of the model.
+ *
+ * <a href='mailto:Kevin.Conner at jboss.com>Kevin Conner</a>
+ */
+public class ModelException extends Exception
+{
+ /**
+ * The serial version UID for this class.
+ */
+ private static final long serialVersionUID = 6108565070668277643L;
+
+ /**
+ * Default constructor for the exception
+ */
+ public ModelException()
+ {
+ }
+
+ /**
+ * Create an exception with a specified message.
+ * @param message The message associated with this exception.
+ */
+ public ModelException(final String message)
+ {
+ super(message) ;
+ }
+
+ /**
+ * Create an exception with a specified cause.
+ * @param cause The cause associated with this exception.
+ */
+ public ModelException(final Throwable cause)
+ {
+ super(cause) ;
+ }
+
+ /**
+ * Create an exception with a specified message and cause.
+ * @param message The message associated with this exception.
+ * @param cause The cause associated with this exception.
+ */
+ public ModelException(final String message, final Throwable cause)
+ {
+ super(message, cause) ;
+ }
+
+}
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/model/ModelParser.java
===================================================================
--- labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/listeners/config/model/ModelParser.java 2009-01-21 09:35:03 UTC (rev 24846)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/model/ModelParser.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -1,196 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2006, JBoss Inc., and others contributors as indicated
- * by the @authors tag. All rights reserved.
- * See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- * This copyrighted material is made available to anyone wishing to use,
- * modify, copy, or redistribute it subject to the terms and conditions
- * of the GNU Lesser General Public License, v. 2.1.
- * This program is distributed in the hope that it will be useful, but WITHOUT A
- * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
- * PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
- * You should have received a copy of the GNU Lesser General Public License,
- * v.2.1 along with this distribution; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
- * MA 02110-1301, USA.
- *
- * (C) 2005-2006,
- * @author JBoss Inc.
- */
-
-package org.jboss.soa.esb.listeners.config.model;
-
-import java.io.Reader;
-import java.util.HashMap;
-import java.util.Map;
-
-import javax.xml.namespace.QName;
-import javax.xml.parsers.DocumentBuilder;
-import javax.xml.parsers.DocumentBuilderFactory;
-import javax.xml.stream.XMLStreamException;
-import javax.xml.stream.XMLStreamReader;
-import javax.xml.validation.Schema;
-
-import org.apache.log4j.Logger;
-import org.jboss.internal.soa.esb.util.XMLHelper;
-import org.jboss.internal.soa.esb.util.stax.StreamHelper;
-import org.xml.sax.ErrorHandler;
-import org.xml.sax.InputSource;
-import org.xml.sax.SAXException;
-import org.xml.sax.SAXParseException;
-
-/**
- * Handle parsing of different schemas into model adapter.
- *
- * <a href='mailto:Kevin.Conner at jboss.com'>Kevin Conner</a>
- */
-public class ModelParser
-{
- /**
- * Map of namespaces to schema parsers.
- */
- private static final Map<String, SchemaParser> SCHEMA_PARSERS = new HashMap<String, SchemaParser>() ;
-
- /**
- * The parser singleton.
- */
- private static final ModelParser PARSER = new ModelParser() ;
-
- /**
- * The schema to validate against.
- */
- private static Schema SCHEMA ;
-
- /**
- * The logger for this class.
- */
- private static Logger LOG = Logger.getLogger(XmlErrorHandler.class) ;
-
- static
- {
- SCHEMA_PARSERS.put(Model101SchemaParser.NAMESPACE, new Model101SchemaParser()) ;
- SCHEMA_PARSERS.put(Model110SchemaParser.NAMESPACE, new Model110SchemaParser()) ;
-
- Schema schema = null ;
- try
- {
- schema = XMLHelper.getSchema(new String[] {Model101SchemaParser.SCHEMA,
- Model110SchemaParser.SCHEMA}) ;
- }
- catch (SAXException saxe)
- {
- LOG.warn("Unexpected exception loading schemas", saxe) ;
- }
- SCHEMA = schema ;
- }
-
- /**
- * Get the model parser singleton.
- * @return The model parser singleton.
- */
- public static ModelParser getParser()
- {
- return PARSER ;
- }
-
- /**
- * Get a model adapter from the input.
- * @param config The configuration input.
- * @return The appropriate model adapter.
- */
- public ModelAdapter parse(final Reader config)
- throws ModelException
- {
- final XMLStreamReader reader ;
- try
- {
- reader = XMLHelper.getXMLStreamReader(config) ;
- StreamHelper.skipToStartElement(reader) ;
- }
- catch (final XMLStreamException xmlse)
- {
- throw new ModelException("Error parsing schema", xmlse) ;
- }
-
- final QName name = reader.getName() ;
- final String namespace = name.getNamespaceURI() ;
- final SchemaParser parser = SCHEMA_PARSERS.get(namespace) ;
- if (parser != null)
- {
- return parser.parse(reader) ;
- }
- else
- {
- throw new ModelException("Unsupported schema namespace: " + namespace) ;
- }
- }
-
- /**
- * Validate a model from the input.
- * @param config The configuration input.
- * @return true if valid, false otherwise.
- */
- public boolean validate(Reader config)
- {
- if (SCHEMA == null)
- {
- return true ;
- }
-
- try
- {
- final DocumentBuilderFactory builderFactory = DocumentBuilderFactory.newInstance() ;
- builderFactory.setNamespaceAware(true) ;
- builderFactory.setSchema(SCHEMA) ;
- final DocumentBuilder parser = builderFactory.newDocumentBuilder() ;
- final XmlErrorHandler errorHandler = new XmlErrorHandler() ;
- parser.setErrorHandler(errorHandler) ;
- parser.parse(new InputSource(config));
- return errorHandler.isValid() ;
- }
- catch (final Exception ex)
- {
- LOG.error("Unexpected exception", ex);
- return false ;
- }
- }
-
- /**
- * The XML Error handler for validation.
- * @author <href="mailto:kevin.conner at jboss.com">Kevin Conner</a>
- *
- */
- private static class XmlErrorHandler implements ErrorHandler
- {
- /**
- * The valid flag.
- */
- private boolean valid = true ;
-
- public void warning(final SAXParseException exception)
- throws SAXException
- {
- LOG.warn("WARNING-"+exception.getSystemId()+"-"+exception.getLineNumber()+":"+exception.getMessage()) ;
- }
-
- public void error(final SAXParseException exception)
- throws SAXException
- {
- LOG.error("ERROR-"+exception.getSystemId()+"-"+exception.getLineNumber()+":"+exception.getMessage()) ;
- valid = false ;
- }
-
- public void fatalError(final SAXParseException exception)
- throws SAXException
- {
- LOG.fatal("FATAL-"+exception.getSystemId()+"-"+exception.getLineNumber()+":"+exception.getMessage()) ;
- valid = false ;
- }
-
- boolean isValid()
- {
- return valid ;
- }
- }
-}
Copied: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/model/ModelParser.java (from rev 24846, labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/listeners/config/model/ModelParser.java)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/model/ModelParser.java (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/model/ModelParser.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -0,0 +1,196 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and others contributors as indicated
+ * by the @authors tag. All rights reserved.
+ * See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License, v. 2.1.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+ * PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
+ * You should have received a copy of the GNU Lesser General Public License,
+ * v.2.1 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301, USA.
+ *
+ * (C) 2005-2006,
+ * @author JBoss Inc.
+ */
+
+package org.jboss.soa.esb.listeners.config.model;
+
+import java.io.Reader;
+import java.util.HashMap;
+import java.util.Map;
+
+import javax.xml.namespace.QName;
+import javax.xml.parsers.DocumentBuilder;
+import javax.xml.parsers.DocumentBuilderFactory;
+import javax.xml.stream.XMLStreamException;
+import javax.xml.stream.XMLStreamReader;
+import javax.xml.validation.Schema;
+
+import org.apache.log4j.Logger;
+import org.jboss.internal.soa.esb.util.XMLHelper;
+import org.jboss.internal.soa.esb.util.stax.StreamHelper;
+import org.xml.sax.ErrorHandler;
+import org.xml.sax.InputSource;
+import org.xml.sax.SAXException;
+import org.xml.sax.SAXParseException;
+
+/**
+ * Handle parsing of different schemas into model adapter.
+ *
+ * <a href='mailto:Kevin.Conner at jboss.com'>Kevin Conner</a>
+ */
+public class ModelParser
+{
+ /**
+ * Map of namespaces to schema parsers.
+ */
+ private static final Map<String, SchemaParser> SCHEMA_PARSERS = new HashMap<String, SchemaParser>() ;
+
+ /**
+ * The parser singleton.
+ */
+ private static final ModelParser PARSER = new ModelParser() ;
+
+ /**
+ * The schema to validate against.
+ */
+ private static Schema SCHEMA ;
+
+ /**
+ * The logger for this class.
+ */
+ private static Logger LOG = Logger.getLogger(XmlErrorHandler.class) ;
+
+ static
+ {
+ SCHEMA_PARSERS.put(Model101SchemaParser.NAMESPACE, new Model101SchemaParser()) ;
+ SCHEMA_PARSERS.put(Model110SchemaParser.NAMESPACE, new Model110SchemaParser()) ;
+
+ Schema schema = null ;
+ try
+ {
+ schema = XMLHelper.getSchema(new String[] {Model101SchemaParser.SCHEMA,
+ Model110SchemaParser.SCHEMA}) ;
+ }
+ catch (SAXException saxe)
+ {
+ LOG.warn("Unexpected exception loading schemas", saxe) ;
+ }
+ SCHEMA = schema ;
+ }
+
+ /**
+ * Get the model parser singleton.
+ * @return The model parser singleton.
+ */
+ public static ModelParser getParser()
+ {
+ return PARSER ;
+ }
+
+ /**
+ * Get a model adapter from the input.
+ * @param config The configuration input.
+ * @return The appropriate model adapter.
+ */
+ public ModelAdapter parse(final Reader config)
+ throws ModelException
+ {
+ final XMLStreamReader reader ;
+ try
+ {
+ reader = XMLHelper.getXMLStreamReader(config) ;
+ StreamHelper.skipToStartElement(reader) ;
+ }
+ catch (final XMLStreamException xmlse)
+ {
+ throw new ModelException("Error parsing schema", xmlse) ;
+ }
+
+ final QName name = reader.getName() ;
+ final String namespace = name.getNamespaceURI() ;
+ final SchemaParser parser = SCHEMA_PARSERS.get(namespace) ;
+ if (parser != null)
+ {
+ return parser.parse(reader) ;
+ }
+ else
+ {
+ throw new ModelException("Unsupported schema namespace: " + namespace) ;
+ }
+ }
+
+ /**
+ * Validate a model from the input.
+ * @param config The configuration input.
+ * @return true if valid, false otherwise.
+ */
+ public boolean validate(Reader config)
+ {
+ if (SCHEMA == null)
+ {
+ return true ;
+ }
+
+ try
+ {
+ final DocumentBuilderFactory builderFactory = DocumentBuilderFactory.newInstance() ;
+ builderFactory.setNamespaceAware(true) ;
+ builderFactory.setSchema(SCHEMA) ;
+ final DocumentBuilder parser = builderFactory.newDocumentBuilder() ;
+ final XmlErrorHandler errorHandler = new XmlErrorHandler() ;
+ parser.setErrorHandler(errorHandler) ;
+ parser.parse(new InputSource(config));
+ return errorHandler.isValid() ;
+ }
+ catch (final Exception ex)
+ {
+ LOG.error("Unexpected exception", ex);
+ return false ;
+ }
+ }
+
+ /**
+ * The XML Error handler for validation.
+ * @author <href="mailto:kevin.conner at jboss.com">Kevin Conner</a>
+ *
+ */
+ private static class XmlErrorHandler implements ErrorHandler
+ {
+ /**
+ * The valid flag.
+ */
+ private boolean valid = true ;
+
+ public void warning(final SAXParseException exception)
+ throws SAXException
+ {
+ LOG.warn("WARNING-"+exception.getSystemId()+"-"+exception.getLineNumber()+":"+exception.getMessage()) ;
+ }
+
+ public void error(final SAXParseException exception)
+ throws SAXException
+ {
+ LOG.error("ERROR-"+exception.getSystemId()+"-"+exception.getLineNumber()+":"+exception.getMessage()) ;
+ valid = false ;
+ }
+
+ public void fatalError(final SAXParseException exception)
+ throws SAXException
+ {
+ LOG.fatal("FATAL-"+exception.getSystemId()+"-"+exception.getLineNumber()+":"+exception.getMessage()) ;
+ valid = false ;
+ }
+
+ boolean isValid()
+ {
+ return valid ;
+ }
+ }
+}
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/model/SchemaParser.java
===================================================================
--- labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/listeners/config/model/SchemaParser.java 2009-01-21 09:35:03 UTC (rev 24846)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/model/SchemaParser.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -1,41 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2006, JBoss Inc., and others contributors as indicated
- * by the @authors tag. All rights reserved.
- * See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- * This copyrighted material is made available to anyone wishing to use,
- * modify, copy, or redistribute it subject to the terms and conditions
- * of the GNU Lesser General Public License, v. 2.1.
- * This program is distributed in the hope that it will be useful, but WITHOUT A
- * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
- * PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
- * You should have received a copy of the GNU Lesser General Public License,
- * v.2.1 along with this distribution; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
- * MA 02110-1301, USA.
- *
- * (C) 2005-2006,
- * @author JBoss Inc.
- */
-
-package org.jboss.soa.esb.listeners.config.model;
-
-import javax.xml.stream.XMLStreamReader;
-
-/**
- * Schema parser interface.
- *
- * <a href='mailto:Kevin.Conner at jboss.com>Kevin Conner</a>
- */
-interface SchemaParser
-{
- /**
- * Obtain a model adapter from the specified stream.
- * @param reader The XML stream reader.
- * @return The model adapter
- * @throws ModelException for errors during parsing.
- */
- public ModelAdapter parse(final XMLStreamReader reader)
- throws ModelException ;
-}
Copied: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/model/SchemaParser.java (from rev 24846, labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/listeners/config/model/SchemaParser.java)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/model/SchemaParser.java (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/model/SchemaParser.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -0,0 +1,41 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and others contributors as indicated
+ * by the @authors tag. All rights reserved.
+ * See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License, v. 2.1.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+ * PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
+ * You should have received a copy of the GNU Lesser General Public License,
+ * v.2.1 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301, USA.
+ *
+ * (C) 2005-2006,
+ * @author JBoss Inc.
+ */
+
+package org.jboss.soa.esb.listeners.config.model;
+
+import javax.xml.stream.XMLStreamReader;
+
+/**
+ * Schema parser interface.
+ *
+ * <a href='mailto:Kevin.Conner at jboss.com>Kevin Conner</a>
+ */
+interface SchemaParser
+{
+ /**
+ * Obtain a model adapter from the specified stream.
+ * @param reader The XML stream reader.
+ * @return The model adapter
+ * @throws ModelException for errors during parsing.
+ */
+ public ModelAdapter parse(final XMLStreamReader reader)
+ throws ModelException ;
+}
Modified: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/gateway/AbstractFileGateway.java
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/gateway/AbstractFileGateway.java 2009-01-21 14:47:17 UTC (rev 24849)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/gateway/AbstractFileGateway.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -34,7 +34,6 @@
import org.jboss.soa.esb.ConfigurationException;
import org.jboss.soa.esb.Service;
import org.jboss.soa.esb.addressing.eprs.FileEpr;
-import org.jboss.soa.esb.schedule.ScheduledEventListener;
import org.jboss.soa.esb.schedule.SchedulingException;
import org.jboss.soa.esb.common.Environment;
import org.jboss.soa.esb.couriers.CourierException;
@@ -58,7 +57,7 @@
* @author <a href="mailto:schifest at heuristica.com.ar">schifest at heuristica.com.ar</a>
* @since Version 4.0
*/
-public abstract class AbstractFileGateway extends AbstractManagedLifecycle implements ScheduledEventListener {
+public abstract class AbstractFileGateway extends AbstractScheduledManagedLifecycle {
protected final static Logger _logger = Logger
.getLogger(AbstractFileGateway.class);
@@ -81,8 +80,6 @@
protected String _inputSuffix, _postProcessSuffix, _workingSuffix,
_errorSuffix;
- protected FileFilter _fileFilter;
-
protected AbstractFileGateway(ConfigTree config) throws ConfigurationException, RegistryException, GatewayException {
super(config);
this.config = config;
@@ -102,22 +99,6 @@
}
}
- public void initialize(ConfigTree config) throws ConfigurationException {
- // TODO Convert lifecycle code to use the Initializable interface.
- }
-
- public void uninitialize() {
- }
-
- protected void doStart() throws ManagedLifecycleException {
- }
-
- protected void doStop() throws ManagedLifecycleException {
- }
-
- protected void doDestroy() throws ManagedLifecycleException {
- }
-
/**
* Execute on trigger from the scheduler.
*/
@@ -270,14 +251,6 @@
return new File(fileIn.toString() + _workingSuffix);
}
- /**
- * Handle the threaded destroy of the managed instance.
- *
- * @throws ManagedLifecycleException for errors while destroying.
- */
- protected void doThreadedDestroy() throws ManagedLifecycleException {
- }
-
/*
* Is the input suffix valid for this type of gateway?
*/
Modified: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/gateway/DefaultESBPropertiesSetter.java
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/gateway/DefaultESBPropertiesSetter.java 2009-01-21 14:47:17 UTC (rev 24849)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/gateway/DefaultESBPropertiesSetter.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -24,12 +24,14 @@
import java.net.URI;
import java.net.URISyntaxException;
import java.util.Enumeration;
+import java.util.regex.Pattern;
import javax.jms.Destination;
import javax.jms.JMSException;
import javax.jms.Message;
import org.apache.log4j.Logger;
+import org.jboss.internal.soa.esb.assertion.AssertArgument;
import org.jboss.soa.esb.addressing.eprs.JMSEpr;
import org.jboss.soa.esb.message.Properties;
import org.jboss.soa.esb.notification.jms.JMSPropertiesSetter;
@@ -55,6 +57,20 @@
public class DefaultESBPropertiesSetter implements ESBPropertiesSetter
{
private Logger log = Logger.getLogger( DefaultESBPropertiesSetter.class );
+ private Pattern propertiesPattern;
+
+ /**
+ * No args constructor.
+ */
+ public DefaultESBPropertiesSetter()
+ {
+ }
+
+ public DefaultESBPropertiesSetter(final String propertiesFilter)
+ {
+ AssertArgument.isNotNull(propertiesFilter, "propertiesFilter");
+ propertiesPattern = Pattern.compile(propertiesFilter);
+ }
public void setPropertiesFromJMSMessage( final Message fromJMSMessage, final org.jboss.soa.esb.message.Message toESBMessage ) throws JMSException
{
@@ -118,12 +134,22 @@
{
while (properties.hasMoreElements())
{
- String key = properties.nextElement();
- Object value = fromJMSMessage.getObjectProperty(key);
+ final String key = properties.nextElement();
+
+ if (filter() && propertiesPattern.matcher(key).matches())
+ continue;
+
+ final Object value = fromJMSMessage.getObjectProperty(key);
if (null != value)
esbProperties.setProperty(key, value);
}
}
}
+
+ private boolean filter()
+ {
+ return propertiesPattern != null;
+ }
+
}
Modified: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/gateway/FileGatewayListener.java
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/gateway/FileGatewayListener.java 2009-01-21 14:47:17 UTC (rev 24849)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/gateway/FileGatewayListener.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -29,13 +29,21 @@
import java.io.FileOutputStream;
import java.io.IOException;
+import org.jboss.internal.soa.esb.listeners.gateway.filefilter.FileEndsWith;
+import org.jboss.internal.soa.esb.listeners.gateway.filefilter.IgnoreFile;
import org.jboss.soa.esb.ConfigurationException;
import org.jboss.soa.esb.helpers.ConfigTree;
+import org.jboss.soa.esb.listeners.ListenerTagNames;
import org.jboss.soa.esb.services.registry.RegistryException;
+import org.jboss.soa.esb.util.ClassUtil;
import org.jboss.soa.esb.util.FileUtil;
-import org.jboss.soa.esb.util.Util;
public class FileGatewayListener extends AbstractFileGateway {
+ public interface FileFilterInit
+ {
+ void init (ConfigTree config) throws ConfigurationException;
+ };
+
/**
* serial version uid for this class
*/
@@ -44,30 +52,67 @@
public FileGatewayListener(ConfigTree config) throws ConfigurationException, RegistryException, GatewayException {
super(config);
+ _filterClass = config.getAttribute(ListenerTagNames.GATEWAY_FILE_FILTER_TAG);
+
/*
* JBESB-454 allowed gateways to pull files with any extension. Obvious
* security issue, but we are explicit about this in the docs and users
* should beware.
*/
- if ((_inputSuffix == null) || (_inputSuffix.equals(""))) {
- /*
- * If no suffix, then inputDir must be different from outputDir
- * or we go into an infinite loop. Already checked through
- * checkMyParams.
- */
+ if (_filterClass == null)
+ {
+ if ((_inputSuffix == null) || (_inputSuffix.equals(""))) {
+ /*
+ * If no suffix, then inputDir must be different from outputDir
+ * or we go into an infinite loop. Already checked through
+ * checkMyParams.
+ */
+
+ _theFilter = new IgnoreFile(_workingSuffix, _errorSuffix, _postProcessSuffix);
- _inputFileFilter = null;
-
- /*
- * If no input suffix, then we must have a work suffix and we
- * must ignore worker files when sourcing new input files, or
- * we end up in an infinite loop.
- */
-
- _ignoreFileFilter = new IgnoreFile(_workingSuffix, _errorSuffix, _postProcessSuffix);
- } else
- _inputFileFilter = new FileEndsWith(_inputSuffix);
+ /*
+ * If no input suffix, then we must have a work suffix and we
+ * must ignore worker files when sourcing new input files, or
+ * we end up in an infinite loop.
+ */
+ } else
+ _theFilter = new FileEndsWith(_inputSuffix);
+ }
+ else
+ {
+ try
+ {
+ Class c = ClassUtil.forName(_filterClass, getClass());
+
+ _theFilter = (FileFilter) c.newInstance();
+
+ if (_theFilter instanceof FileFilterInit)
+ {
+ ((FileFilterInit) _theFilter).init(config);
+ }
+ }
+ catch (final ClassNotFoundException ex)
+ {
+ throw new ConfigurationException(ex);
+ }
+ catch (final IllegalAccessException ex)
+ {
+ throw new ConfigurationException(ex);
+ }
+ catch (final InstantiationException ex)
+ {
+ throw new ConfigurationException(ex);
+ }
+ catch (final ConfigurationException ex)
+ {
+ throw ex;
+ }
+ catch (final Exception ex)
+ {
+ throw new GatewayException(ex);
+ }
+ }
}
@Override
@@ -116,19 +161,7 @@
* to be concerned about them.
*/
- if (_inputFileFilter != null) {
- /*
- * Input suffix is not null.
- */
-
- return filterFiles(_inputDirectory, _inputFileFilter);
- } else {
- /*
- * Input suffix is null so ignore any worker files.
- */
-
- return filterFiles(_inputDirectory, _ignoreFileFilter);
- }
+ return filterFiles(_inputDirectory, _theFilter);
}
private File[] filterFiles(File dir, FileFilter filter) {
@@ -143,11 +176,6 @@
@Override
boolean renameFile(File from, File to) throws GatewayException {
- if (to.exists() && !to.delete()) {
- throw new GatewayException("Cannot delete target file: "
- + to.getAbsolutePath());
- }
-
return FileUtil.renameTo(from, to);
}
@@ -182,61 +210,7 @@
_inputSuffix = "";
}
- /**
- * Simple file filter for local filesystem Will accept only files that end
- * with the String supplied at constructor time
- */
- private class FileEndsWith implements FileFilter {
- String m_sSuffix;
+ private FileFilter _theFilter;
- FileEndsWith(String p_sEnd) throws ConfigurationException {
- m_sSuffix = p_sEnd;
- if (Util.isNullString(m_sSuffix))
- throw new ConfigurationException("Must specify file extension");
- } // ______________________________
-
- public boolean accept(File p_f) {
- return (p_f.isFile()) ? p_f.toString().endsWith(m_sSuffix) : false;
- }
- }
-
- private class IgnoreFile implements FileFilter {
- String _workSuffix;
- String _errorSuffix;
- String _postSuffix;
-
- IgnoreFile(String workSuffix, String errorSuffix, String postSuffix) throws ConfigurationException {
- _workSuffix = workSuffix;
- _errorSuffix = errorSuffix;
- _postSuffix = postSuffix;
-
- if (Util.isNullString(_workSuffix))
- throw new ConfigurationException("Must specify workSuffix");
- if (Util.isNullString(_errorSuffix))
- throw new ConfigurationException("Must specify errorSuffix");
- if (Util.isNullString(_postSuffix))
- throw new ConfigurationException("Must specify postProcessSuffix");
- } // ______________________________
-
- public boolean accept(File p_f) {
- if (p_f.isFile()) {
- /*
- * If file is a work file then ignore it.
- */
-
- String fileName = p_f.toString();
-
- if (fileName.endsWith(_workSuffix) || fileName.endsWith(_errorSuffix) || fileName.endsWith(_postSuffix)) {
- return false;
- } else
- return true;
- } else
- return false;
- }
- }
-
- private FileFilter _inputFileFilter; // normal file filter
- private FileFilter _ignoreFileFilter; // worker file filter (used if input suffix is null)
-
-
+ private String _filterClass = null;
}
Modified: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/gateway/HibernateGatewayListener.java
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/gateway/HibernateGatewayListener.java 2009-01-21 14:47:17 UTC (rev 24849)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/gateway/HibernateGatewayListener.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -54,6 +54,8 @@
protected String _composerName;
protected String m_targetServiceCategory, m_targetServiceName;
+ private HibernateInterceptor interceptor ;
+
protected Collection<EPR> m_targetEprs;
private static final String MESSAGE_FILTER = "messagefilter";
@@ -119,7 +121,8 @@
// we need to close the SessionFactory so that the old interceptors don't get
// in the way.
if (eventList.size() != 0) {
- cfg.setInterceptor(new HibernateInterceptor(m_config, eventList));
+ interceptor = new HibernateInterceptor(m_config, eventList) ;
+ cfg.setInterceptor(interceptor);
}
// We're suppressing warnings here - we need to initialize the
@@ -137,9 +140,15 @@
@Override
protected void doStart() throws ManagedLifecycleException {
+ if (interceptor != null) {
+ interceptor.enable() ;
+ }
}
@Override
protected void doStop() throws ManagedLifecycleException {
+ if (interceptor != null) {
+ interceptor.disable() ;
+ }
}
}
Modified: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/gateway/HibernateInterceptor.java
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/gateway/HibernateInterceptor.java 2009-01-21 14:47:17 UTC (rev 24849)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/gateway/HibernateInterceptor.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -36,12 +36,7 @@
import org.hibernate.type.Type;
import org.jboss.soa.esb.ConfigurationException;
import org.jboss.soa.esb.addressing.EPR;
-import org.jboss.soa.esb.addressing.MalformedEPRException;
import org.jboss.soa.esb.client.ServiceInvoker;
-import org.jboss.soa.esb.couriers.Courier;
-import org.jboss.soa.esb.couriers.CourierException;
-import org.jboss.soa.esb.couriers.CourierFactory;
-import org.jboss.soa.esb.couriers.CourierUtil;
import org.jboss.soa.esb.helpers.ConfigTree;
import org.jboss.soa.esb.listeners.ListenerTagNames;
import org.jboss.soa.esb.listeners.ListenerUtil;
@@ -74,6 +69,8 @@
protected Object m_composer;
protected String m_composerName;
protected ConfigTree m_config;
+
+ private boolean enabled ;
protected ServiceInvoker m_serviceInvoker;
protected String m_targetServiceCategory, m_targetServiceName;
@@ -267,68 +264,84 @@
}
public void afterTransactionBegin(Transaction arg0) {
- m_logger.debug("afterTransactionBegin");
+ if (isEnabled()) {
+ m_logger.debug("afterTransactionBegin");
+ }
}
public void afterTransactionCompletion(Transaction arg0) {
- m_logger.debug("afterTransactionCompletion");
+ if (isEnabled()) {
+ m_logger.debug("afterTransactionCompletion");
+ }
}
public void beforeTransactionCompletion(Transaction arg0) {
- m_logger.debug("beforeTransactionCompletion");
+ if (isEnabled()) {
+ m_logger.debug("beforeTransactionCompletion");
+ }
}
public void onCollectionRecreate(Object entity, Serializable id) throws CallbackException {
- m_logger.debug("onCollectionRecreate");
+ if (isEnabled()) {
+ m_logger.debug("onCollectionRecreate");
+ }
}
public void onCollectionRemove(Object entity, Serializable id) throws CallbackException {
- System.out.println("onCollectionRemove");
- for (HibernateEventBean heb: m_events) {
- if (heb.getEvent().equals(COLLECTION_REMOVE_EVENT)) {
- if (entity.getClass().getName().equals(heb.getClassname())) {
- Message message = createMessage(entity);
- message.getProperties().setProperty(ListenerTagNames.HIBERNATE_INTERCEPTOR_ID, id);
- deliverMessage(message);
+ if (isEnabled()) {
+ m_logger.debug("onCollectionRemove");
+ for (HibernateEventBean heb: m_events) {
+ if (heb.getEvent().equals(COLLECTION_REMOVE_EVENT)) {
+ if (entity.getClass().getName().equals(heb.getClassname())) {
+ Message message = createMessage(entity);
+ message.getProperties().setProperty(ListenerTagNames.HIBERNATE_INTERCEPTOR_ID, id);
+ deliverMessage(message);
+ }
}
}
}
}
public void onCollectionUpdate(Object entity, Serializable id) throws CallbackException {
- System.out.println("onCollectionUpdate");
- for (HibernateEventBean heb: m_events) {
- if (heb.getEvent().equals(COLLECTION_UPDATE_EVENT)) {
- if (entity.getClass().getName().equals(heb.getClassname())) {
- Message message = createMessage(entity);
- message.getProperties().setProperty(ListenerTagNames.HIBERNATE_INTERCEPTOR_ID, id);
- deliverMessage(message);
+ if (isEnabled()) {
+ m_logger.debug("onCollectionUpdate");
+ for (HibernateEventBean heb: m_events) {
+ if (heb.getEvent().equals(COLLECTION_UPDATE_EVENT)) {
+ if (entity.getClass().getName().equals(heb.getClassname())) {
+ Message message = createMessage(entity);
+ message.getProperties().setProperty(ListenerTagNames.HIBERNATE_INTERCEPTOR_ID, id);
+ deliverMessage(message);
+ }
}
}
}
}
public void onDelete(Object entity, Serializable id, Object[] state, String[] propertyNames, Type[] types) throws CallbackException {
- System.out.println("onDelete");
- for (HibernateEventBean heb: m_events) {
- if (heb.getEvent().equals(DELETE_EVENT)) {
- if (entity.getClass().getName().equals(heb.getClassname())) {
- Message message = createMessage(entity);
- addMessageInfo(message, id, state, propertyNames, types);
- deliverMessage(message);
+ if (isEnabled()) {
+ m_logger.debug("onDelete");
+ for (HibernateEventBean heb: m_events) {
+ if (heb.getEvent().equals(DELETE_EVENT)) {
+ if (entity.getClass().getName().equals(heb.getClassname())) {
+ Message message = createMessage(entity);
+ addMessageInfo(message, id, state, propertyNames, types);
+ deliverMessage(message);
+ }
}
}
}
}
public boolean onFlushDirty(Object entity, Serializable id, Object[] newValues, Object[] oldValues, String[] propertyNames, Type[] types) throws CallbackException {
- m_logger.debug("onFlushDirty");
- for (HibernateEventBean heb: m_events) {
- if (heb.getEvent().equals(FLUSH_DIRTY_EVENT)) {
- if (entity.getClass().getName().equals(heb.getClassname())) {
- Message message = createMessage(entity);
- addMessageInfo(message, id, newValues, oldValues, propertyNames, types);
- deliverMessage(message);
+ if (isEnabled()) {
+ m_logger.debug("onFlushDirty");
+ for (HibernateEventBean heb: m_events) {
+ if (heb.getEvent().equals(FLUSH_DIRTY_EVENT)) {
+ if (entity.getClass().getName().equals(heb.getClassname())) {
+ Message message = createMessage(entity);
+ addMessageInfo(message, id, newValues, oldValues, propertyNames, types);
+ deliverMessage(message);
+ }
}
}
}
@@ -336,13 +349,15 @@
}
public boolean onLoad(Object entity, Serializable id, Object[] state, String[] propertyNames, Type[] types) throws CallbackException {
- System.out.println("onLoad");
- for (HibernateEventBean heb: m_events) {
- if (heb.getEvent().equals(LOAD_EVENT)) {
- if (entity.getClass().getName().equals(heb.getClassname())) {
- Message message = createMessage(entity);
- addMessageInfo(message, id, state, propertyNames, types);
- deliverMessage(message);
+ if (isEnabled()) {
+ m_logger.debug("onLoad");
+ for (HibernateEventBean heb: m_events) {
+ if (heb.getEvent().equals(LOAD_EVENT)) {
+ if (entity.getClass().getName().equals(heb.getClassname())) {
+ Message message = createMessage(entity);
+ addMessageInfo(message, id, state, propertyNames, types);
+ deliverMessage(message);
+ }
}
}
}
@@ -351,13 +366,15 @@
public boolean onSave(Object entity, Serializable id, Object[] state,
String[] propertyNames, Type[] types) throws CallbackException {
- System.out.println("onSave");
- for (HibernateEventBean heb: m_events) {
- if (heb.getEvent().equals(SAVE_EVENT)) {
- if (entity.getClass().getName().equals(heb.getClassname())) {
- Message message = createMessage(entity);
- addMessageInfo(message, id, state, propertyNames, types);
- deliverMessage(message);
+ if (isEnabled()) {
+ m_logger.debug("onSave");
+ for (HibernateEventBean heb: m_events) {
+ if (heb.getEvent().equals(SAVE_EVENT)) {
+ if (entity.getClass().getName().equals(heb.getClassname())) {
+ Message message = createMessage(entity);
+ addMessageInfo(message, id, state, propertyNames, types);
+ deliverMessage(message);
+ }
}
}
}
@@ -365,10 +382,26 @@
}
public void postFlush(Iterator arg0) throws CallbackException {
- m_logger.debug("postFlush");
+ if (isEnabled()) {
+ m_logger.debug("postFlush");
+ }
}
public void preFlush(Iterator arg0) throws CallbackException {
- m_logger.debug("preFlush");
- }
+ if (isEnabled()) {
+ m_logger.debug("preFlush");
+ }
+ }
+
+ public synchronized boolean isEnabled() {
+ return enabled ;
+ }
+
+ public synchronized void enable() {
+ enabled = true ;
+ }
+
+ public synchronized void disable() {
+ enabled = false ;
+ }
}
Modified: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/gateway/JBossRemotingGatewayListener.java
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/gateway/JBossRemotingGatewayListener.java 2009-01-21 14:47:17 UTC (rev 24849)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/gateway/JBossRemotingGatewayListener.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -51,9 +51,17 @@
import org.jboss.soa.esb.message.body.content.BytesBody;
import org.jboss.soa.esb.services.registry.RegistryException;
import org.jboss.soa.esb.services.registry.RegistryFactory;
+import org.jboss.soa.esb.services.security.PublicCryptoUtil;
+import org.jboss.soa.esb.services.security.SecurityService;
+import org.jboss.soa.esb.services.security.SecurityServiceException;
+import org.jboss.soa.esb.services.security.auth.AuthenticationRequest;
+import org.jboss.soa.esb.services.security.auth.http.JbrHttpSecurityInfoExtractor;
+import org.jboss.soa.esb.services.security.auth.ws.WSSecurityInfoExtractor;
import org.jboss.soa.esb.util.ClassUtil;
import javax.management.MBeanServer;
+
+import java.io.Serializable;
import java.net.InetAddress;
import java.net.URI;
import java.net.URISyntaxException;
@@ -116,7 +124,7 @@
/**
* Connector configuration.
*/
- private Map<String, String> connectorConfig = new HashMap<String, String>();
+ private final Map<String, String> connectorConfig = new HashMap<String, String>();
/**
* Server URI.
*/
@@ -132,11 +140,11 @@
/**
* Service category to which this listener is associated.
*/
- private String serviceCategory;
+ private final String serviceCategory;
/**
* Service name to which this listener is associated.
*/
- private String serviceName;
+ private final String serviceName;
/**
* Listener endpoint EPR.
*/
@@ -148,7 +156,7 @@
/**
* Asynchronous response.
*/
- private String asyncResponse;
+ private final String asyncResponse;
/**
* Install our own marshaller/unmarshaller for HTTP.
@@ -204,10 +212,11 @@
* ***************************************************************************
*
* AbstractManagedLifecycle methods...
- *
+ *
* ****************************************************************************
*/
+ @Override
protected void doInitialise() throws ManagedLifecycleException {
if (isInitialised()) {
throw new ManagedLifecycleException("Unexpected request to initialise JBoss Remoting Gateway listener '" + getConfig().getName() + "'. Gateway already initialised.");
@@ -224,6 +233,7 @@
initialised = true;
}
+ @Override
protected void doStart() throws ManagedLifecycleException {
if (!isInitialised()) {
throw new ManagedLifecycleException("Unexpected request to start JBoss Remoting Gateway listener '" + getConfig().getName() + "'. Gateway not initialised.");
@@ -245,6 +255,7 @@
}
}
+ @Override
protected void doStop() throws ManagedLifecycleException {
if (!isStarted()) {
throw new ManagedLifecycleException("Unexpected request to stop JBoss Remoting Gateway listener '" + getConfig().getName() + "'. Gateway not running.");
@@ -300,6 +311,7 @@
}
}
+ @Override
protected void doDestroy() throws ManagedLifecycleException {
}
@@ -503,6 +515,11 @@
private MessagePayloadProxy payloadProxy;
+ private JbrHttpSecurityInfoExtractor jbrHttpSecurityExtractor = new JbrHttpSecurityInfoExtractor();
+
+ private WSSecurityInfoExtractor wsSecurityExtractor = new WSSecurityInfoExtractor();
+
+ @Override
public void setConfiguration(ConfigTree config) {
super.setConfiguration(config);
payloadProxy = new MessagePayloadProxy(config,
@@ -512,10 +529,12 @@
payloadProxy.setNullSetPayloadHandling(NullPayloadHandling.LOG);
}
+ @Override
protected MessagePayloadProxy getPayloadProxy() {
return payloadProxy;
}
+ @Override
@SuppressWarnings("unchecked")
protected void populateMessage(Message message, T invocationRequest) throws MessageDeliverException {
@@ -524,7 +543,31 @@
// Copy the request properties onto the message...
Map properties = invocationRequest.getRequestPayload();
+
+
if (properties != null) {
+ // Extract any jbr http security information that may exist
+ AuthenticationRequest authRequest = jbrHttpSecurityExtractor.extractSecurityInfo(properties);
+
+ // Extract any ws security information that may exist
+ if ( authRequest == null ) {
+ authRequest = wsSecurityExtractor.extractSecurityInfo((String) invocationRequest.getParameter());
+ }
+
+ if ( authRequest != null ) {
+ try {
+ byte[] encrypted = PublicCryptoUtil.INSTANCE.encrypt((Serializable) authRequest);
+ if (encrypted != null) {
+ message.getContext().setContext(SecurityService.AUTH_REQUEST, encrypted);
+ } else {
+ logger.warn("No public keystore has been configured which means that the authentication request cannot be encrypted. Please configure jbossesb-properties.xml with a publickey store.");
+ }
+ } catch (final SecurityServiceException e) {
+ throw new MessageDeliverException(e.getMessage(), e);
+ }
+ }
+
+
// Purposely not iterating over the Map.Entry Set because there's
// a bug in the Map impl used by JBossRemoting. Not all the
// "values" are actually in the Map.Entry set. Some of them are handled
@@ -539,6 +582,7 @@
}
}
+ @Override
public Object decompose(Message message, T invocationRequest) throws MessageDeliverException {
Properties properties = message.getProperties();
String propertyNames[] = properties.getNames();
@@ -557,7 +601,7 @@
responseMap.put(header.getName(), header.getValue());
}
}
-
+
return super.decompose(message, invocationRequest);
}
}
Modified: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/gateway/JmsGatewayListener.java
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/gateway/JmsGatewayListener.java 2009-01-21 14:47:17 UTC (rev 24849)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/gateway/JmsGatewayListener.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -321,7 +321,7 @@
} else {
_composerName = PackageJmsMessageContents.class.getName();
_composerClass = PackageJmsMessageContents.class;
- _composer = new PackageJmsMessageContents(PackageJmsMessageContents.createPayloadProxy(_config));
+ _composer = new PackageJmsMessageContents(_config);
sProcessMethod = "process";
_logger
.debug("No <" + ListenerTagNames.ACTION_ELEMENT_TAG
Modified: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/gateway/PackageJmsMessageContents.java
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/gateway/PackageJmsMessageContents.java 2009-01-21 14:47:17 UTC (rev 24849)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/gateway/PackageJmsMessageContents.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -57,6 +57,11 @@
public PackageJmsMessageContents(ConfigTree config) {
this(createPayloadProxy(config)) ;
+ String excludeProperties = config.getAttribute("excludeProperties");
+ if (excludeProperties != null)
+ {
+ esbPropertiesStrategy = new DefaultESBPropertiesSetter(excludeProperties);
+ }
}
public PackageJmsMessageContents(MessagePayloadProxy payloadProxy) {
Modified: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/gateway/ReadOnlyRemoteGatewayListener.java
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/gateway/ReadOnlyRemoteGatewayListener.java 2009-01-21 14:47:17 UTC (rev 24849)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/gateway/ReadOnlyRemoteGatewayListener.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -173,20 +173,22 @@
* Stop the service and also after that stop the
* remotefileSystemStrategy in use
*/
+ @Override
protected void doStop() throws ManagedLifecycleException
{
+ super.doStop();
remotefileSystemStrategy.stop();
- super.doStop();
}
/**
* Destroys the service and also after that stop the
* remotefileSystemStrategy in use
*/
- protected void doThreadedDestroy() throws ManagedLifecycleException
+ @Override
+ protected void doScheduledDestroy() throws ManagedLifecycleException
{
+ super.doScheduledDestroy();
remotefileSystemStrategy.destroy();
- super.doDestroy();
}
private void createRemoteFileSystemStrategy() throws ConfigurationException
Modified: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/gateway/SqlTableGatewayListener.java
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/gateway/SqlTableGatewayListener.java 2009-01-21 14:47:17 UTC (rev 24849)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/gateway/SqlTableGatewayListener.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -348,6 +348,7 @@
+ ListenerTagNames.SQL_TIMESTAMP_TAG);
_timestamp = null ;
}
+
_where = ListenerUtil.getValue(_config,
ListenerTagNames.SQL_WHERE_CONDITION_TAG, "");
if (_where.trim().length() < 1)
@@ -490,10 +491,10 @@
final int type = meta.getColumnType(iCurr) ;
if (type == Types.BLOB) {
final Blob blob = RS.getBlob(iCurr) ;
- row.put(sCol, StreamUtils.readStreamString(blob.getBinaryStream(), "UTF-8"));
+ row.put(sCol, ((blob != null) ? StreamUtils.readStreamString(blob.getBinaryStream(), "UTF-8") : null));
} else if (type == Types.CLOB) {
final Clob clob = RS.getClob(iCurr) ;
- row.put(sCol, StreamUtils.readReader(clob.getCharacterStream()));
+ row.put(sCol, ((clob != null) ? StreamUtils.readReader(clob.getCharacterStream()) : null));
} else {
row.put(sCol, RS.getObject(iCurr));
}
@@ -755,6 +756,16 @@
_logger.warn("Cannot change row state from " + fromState
+ " to " + toState + ". Number of rows in state "
+ fromState + " = " + count);
+
+ if (count == 0) // the execute affected zero rows!
+ {
+ // https://jira.jboss.org/jira/browse/SOA-642
+
+ _logger.warn("No rows affected by update statement. Check listener/gateway/notifier table definitions are correct.");
+ }
+ else
+ _logger.warn("Curent implementation expected only one row to be applicable to update request.");
+
return false;
}
}
Modified: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/lifecycle/AbstractManagedLifecycle.java
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/lifecycle/AbstractManagedLifecycle.java 2009-01-21 14:47:17 UTC (rev 24849)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/lifecycle/AbstractManagedLifecycle.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -112,8 +112,7 @@
this.config = config;
- lifecycleController = new LifecycleController(this, config);
- lifecycleController.registerMBean();
+ lifecycleController = new LifecycleController(new LifecycleControllerAdapter());
}
/**
@@ -127,23 +126,27 @@
public final void initialise()
throws ManagedLifecycleException
{
- changeState(ManagedLifecycleState.INITIALISING) ;
- try
+ if (!ManagedLifecycleState.INITIALISED.equals(getState()))
{
- doInitialise() ;
- changeState(ManagedLifecycleState.INITIALISED) ;
+ changeState(ManagedLifecycleState.INITIALISING) ;
+ try
+ {
+ doInitialise() ;
+ changeState(ManagedLifecycleState.INITIALISED) ;
+ lifecycleController.registerMBean();
+ }
+ catch (final ManagedLifecycleException mle)
+ {
+ changeState(ManagedLifecycleState.DESTROYED) ;
+ throw mle ;
+ }
+ catch (final Exception ex)
+ {
+ logger.warn("Unexpected exception caught while initialisation", ex) ;
+ changeState(ManagedLifecycleState.DESTROYED) ;
+ throw new ManagedLifecycleException(ex) ;
+ }
}
- catch (final ManagedLifecycleException mle)
- {
- changeState(ManagedLifecycleState.DESTROYED) ;
- throw mle ;
- }
- catch (final Exception ex)
- {
- logger.warn("Unexpected exception caught while initialisation", ex) ;
- changeState(ManagedLifecycleState.DESTROYED) ;
- throw new ManagedLifecycleException(ex) ;
- }
}
/**
@@ -163,25 +166,27 @@
public final void start()
throws ManagedLifecycleException
{
- changeState(ManagedLifecycleState.STARTING) ;
- try
+ if (!ManagedLifecycleState.STARTED.equals(getState()))
{
- doStart() ;
- changeState(ManagedLifecycleState.STARTED) ;
- lifecycleController.setStartTime(System.currentTimeMillis());
+ changeState(ManagedLifecycleState.STARTING) ;
+ try
+ {
+ doStart() ;
+ changeState(ManagedLifecycleState.STARTED) ;
+ lifecycleController.setStartTime(System.currentTimeMillis());
+ }
+ catch (final ManagedLifecycleException mle)
+ {
+ changeState(ManagedLifecycleState.STOPPED);
+ throw mle ;
+ }
+ catch (final Exception ex)
+ {
+ logger.warn("Unexpected exception caught while starting", ex) ;
+ changeState(ManagedLifecycleState.STOPPED) ;
+ throw new ManagedLifecycleException(ex) ;
+ }
}
- catch (final ManagedLifecycleException mle)
- {
- changeState(ManagedLifecycleState.STOPPED);
- lifecycleController.unsetStartTime();
- throw mle ;
- }
- catch (final Exception ex)
- {
- logger.warn("Unexpected exception caught while starting", ex) ;
- changeState(ManagedLifecycleState.STOPPED) ;
- throw new ManagedLifecycleException(ex) ;
- }
}
/**
@@ -204,25 +209,28 @@
public final void stop()
throws ManagedLifecycleException
{
- changeState(ManagedLifecycleState.STOPPING) ;
- try
+ if (!ManagedLifecycleState.STOPPED.equals(getState()))
{
- doStop() ;
+ changeState(ManagedLifecycleState.STOPPING) ;
+ try
+ {
+ doStop() ;
+ }
+ catch (final ManagedLifecycleException mle)
+ {
+ throw mle ;
+ }
+ catch (final Exception ex)
+ {
+ logger.warn("Unexpected exception caught while stopping", ex) ;
+ throw new ManagedLifecycleException(ex) ;
+ }
+ finally
+ {
+ changeState(ManagedLifecycleState.STOPPED) ;
+ lifecycleController.unsetStartTime();
+ }
}
- catch (final ManagedLifecycleException mle)
- {
- throw mle ;
- }
- catch (final Exception ex)
- {
- logger.warn("Unexpected exception caught while stopping", ex) ;
- throw new ManagedLifecycleException(ex) ;
- }
- finally
- {
- changeState(ManagedLifecycleState.STOPPED) ;
- lifecycleController.unsetStartTime();
- }
}
/**
@@ -243,25 +251,28 @@
public final void destroy()
throws ManagedLifecycleException
{
- changeState(ManagedLifecycleState.DESTROYING) ;
- try
+ if (!ManagedLifecycleState.DESTROYED.equals(getState()))
{
- doDestroy() ;
+ changeState(ManagedLifecycleState.DESTROYING) ;
+ lifecycleController.unregisterMBean();
+ try
+ {
+ doDestroy() ;
+ }
+ catch (final ManagedLifecycleException mle)
+ {
+ throw mle ;
+ }
+ catch (final Exception ex)
+ {
+ logger.warn("Unexpected exception caught while destroying", ex) ;
+ throw new ManagedLifecycleException(ex) ;
+ }
+ finally
+ {
+ changeState(ManagedLifecycleState.DESTROYED) ;
+ }
}
- catch (final ManagedLifecycleException mle)
- {
- throw mle ;
- }
- catch (final Exception ex)
- {
- logger.warn("Unexpected exception caught while destroying", ex) ;
- throw new ManagedLifecycleException(ex) ;
- }
- finally
- {
- changeState(ManagedLifecycleState.DESTROYED) ;
- lifecycleController.unsetStartTime();
- }
}
/**
@@ -477,4 +488,52 @@
{
return config;
}
+
+ private final class LifecycleControllerAdapter implements ManagedLifecycleAdapter
+ {
+ /**
+ * Start the managed instance.
+ * <p/>
+ * This method is called to inform the managed instance that it can initialise
+ * resources prior to enabling the service.
+ */
+ public void start()
+ throws ManagedLifecycleException
+ {
+ AbstractManagedLifecycle.this.start() ;
+ }
+
+ /**
+ * Stop the managed instance.
+ * <p/>
+ * This method is called to inform the managed instance that it must disable
+ * resources associated with the running service. The service may choose to
+ * disable the resources asynchronously provided that any subsequent call to
+ * {@link #start()} or {@link #destroy()} blocks until these resources have been
+ * disabled.
+ */
+ public void stop()
+ throws ManagedLifecycleException
+ {
+ AbstractManagedLifecycle.this.stop() ;
+ }
+
+ /**
+ * Get the state of the managed instance.
+ * @return The managed instance state.
+ */
+ public ManagedLifecycleState getState()
+ {
+ return AbstractManagedLifecycle.this.getState() ;
+ }
+
+ /**
+ * Get the configuration assoicated with the ManagedLifecycle.
+ * @return Configuration.
+ */
+ public ConfigTree getConfig()
+ {
+ return AbstractManagedLifecycle.this.getConfig() ;
+ }
+ }
}
Copied: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/lifecycle/AbstractScheduledManagedLifecycle.java (from rev 24846, labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/listeners/lifecycle/AbstractScheduledManagedLifecycle.java)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/lifecycle/AbstractScheduledManagedLifecycle.java (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/lifecycle/AbstractScheduledManagedLifecycle.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -0,0 +1,340 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.soa.esb.listeners.lifecycle;
+
+import java.text.ParseException;
+import java.util.Date;
+import java.util.List;
+import java.util.Properties;
+
+import org.apache.log4j.Logger;
+import org.jboss.soa.esb.ConfigurationException;
+import org.jboss.soa.esb.helpers.ConfigTree;
+import org.jboss.soa.esb.helpers.KeyValuePair;
+import org.jboss.soa.esb.listeners.ListenerTagNames;
+import org.jboss.soa.esb.schedule.SchedulerJob;
+import org.jboss.soa.esb.schedule.SchedulerJobListener;
+import org.jboss.soa.esb.schedule.SchedulingException;
+
+
+/**
+ * This class provides threaded support for a managed instance.
+ *
+ * @author kevin
+ */
+public abstract class AbstractScheduledManagedLifecycle extends AbstractManagedLifecycle
+{
+ /**
+ * The job associated with the scheduler.
+ */
+ private final SchedulerJob job ;
+ /**
+ * The logger for this class.
+ */
+ private static final Logger logger = Logger.getLogger(AbstractScheduledManagedLifecycle.class) ;
+
+ /**
+ * Construct the threaded managed lifecycle.
+ * @param config The configuration associated with this instance.
+ * @throws ConfigurationException for configuration errors during initialisation.
+ */
+ protected AbstractScheduledManagedLifecycle(final ConfigTree config)
+ throws ConfigurationException
+ {
+ super(config) ;
+
+ final Properties properties = extractProperties(config) ;
+ final SchedulerJobListener listener = new SchedulerJobListener() {
+ public void onSchedule() throws SchedulingException {
+ AbstractScheduledManagedLifecycle.this.onSchedule() ;
+ }
+ } ;
+ final String scheduleIdRef = config.getAttribute(ListenerTagNames.SCHEDULE_ID_REF) ;
+ if (scheduleIdRef == null)
+ {
+ final String intervalVal = config.getAttribute(ListenerTagNames.SCHEDULE_FREQUENCY) ;
+ final long interval ;
+ if (intervalVal != null)
+ {
+ interval = parseInt(ListenerTagNames.SCHEDULE_FREQUENCY, intervalVal) ;
+ }
+ else
+ {
+ interval = 10 ;
+ }
+
+ job = SchedulerJob.createIntervalSchedulerJob(null, listener, interval*1000, properties) ;
+ }
+ else
+ {
+ final Date scheduleStartDate = getDate(config.getAttribute(ListenerTagNames.SCHEDULE_START_DATE)) ;
+ final Date scheduleEndDate = getDate(config.getAttribute(ListenerTagNames.SCHEDULE_END_DATE)) ;
+ final String simpleFrequency = config.getAttribute(ListenerTagNames.SCHEDULE_SIMPLE_FREQUENCY) ;
+ if (simpleFrequency != null)
+ {
+ final long frequency = parseLong(ListenerTagNames.SCHEDULE_SIMPLE_FREQUENCY, simpleFrequency) ;
+ if (frequency <= 0)
+ {
+ throw new ConfigurationException("Invalid " + ListenerTagNames.SCHEDULE_SIMPLE_FREQUENCY + " value, must be greate than zero: " + simpleFrequency) ;
+ }
+ final String simpleExecCount = config.getAttribute(ListenerTagNames.SCHEDULE_SIMPLE_EXEC) ;
+ if (simpleExecCount != null)
+ {
+ final int execCount = parseInt(ListenerTagNames.SCHEDULE_SIMPLE_EXEC, simpleExecCount) ;
+ if (execCount < 0)
+ {
+ job = SchedulerJob.createIntervalSchedulerJob(scheduleIdRef, listener, frequency, scheduleStartDate, scheduleEndDate, properties) ;
+ }
+ else if (execCount == 0)
+ {
+ logger.warn("<simple-schedule> '" + scheduleIdRef + "' has an execCount of 0 configured. This schedule will not fire!");
+ job = null ;
+ }
+ else
+ {
+ job = SchedulerJob.createIntervalSchedulerJob(scheduleIdRef, listener, frequency, execCount, scheduleStartDate, scheduleEndDate, properties) ;
+ }
+ }
+ else
+ {
+ job = SchedulerJob.createIntervalSchedulerJob(scheduleIdRef, listener, frequency, scheduleStartDate, scheduleEndDate, properties) ;
+ }
+ }
+ else
+ {
+ final String cronExpression = config.getAttribute(ListenerTagNames.SCHEDULE_CRON_EXPRESSION) ;
+ if (cronExpression == null)
+ {
+ throw new ConfigurationException("Missing cron expression") ;
+ }
+ try
+ {
+ job = SchedulerJob.createCronSchedulerJob(scheduleIdRef, listener, cronExpression, scheduleStartDate, scheduleEndDate, properties) ;
+ }
+ catch (final ParseException pe)
+ {
+ throw new ConfigurationException("Invalid cron expression", pe) ;
+ }
+ }
+ }
+ }
+
+ /**
+ * Handle the initialisation of the managed instance.
+ *
+ * @throws ManagedLifecycleException for errors while initialisation.
+ */
+ @Override
+ protected void doInitialise()
+ throws ManagedLifecycleException
+ {
+ }
+
+ /**
+ * Handle the start of the managed instance.
+ *
+ * @throws ManagedLifecycleException for errors while starting.
+ */
+ @Override
+ protected void doStart()
+ throws ManagedLifecycleException
+ {
+ if (job != null)
+ {
+ try
+ {
+ job.start() ;
+ }
+ catch (final SchedulingException se)
+ {
+ throw new ManagedLifecycleException("Failed to start the scheduling job", se) ;
+ }
+ }
+ }
+
+ /**
+ * Execute the scheduled event.
+ */
+ protected abstract void onSchedule()
+ throws SchedulingException ;
+
+ /**
+ * Handle the stop of the managed instance.
+ *
+ * @throws ManagedLifecycleException for errors while stopping.
+ */
+ @Override
+ protected void doStop()
+ throws ManagedLifecycleException
+ {
+ if (job != null)
+ {
+ try
+ {
+ job.pause() ;
+ }
+ catch (final SchedulingException se)
+ {
+ throw new ManagedLifecycleException("Failed to pause the scheduling job", se) ;
+ }
+ }
+ }
+
+ /**
+ * Handle the destroy of the managed instance.
+ *
+ * @throws ManagedLifecycleException for errors while destroying.
+ */
+ @Override
+ protected final void doDestroy()
+ throws ManagedLifecycleException
+ {
+ try
+ {
+ doScheduledDestroy() ;
+ }
+ finally
+ {
+ if (job != null)
+ {
+ try
+ {
+ job.destroy() ;
+ }
+ catch (final SchedulingException se)
+ {
+ throw new ManagedLifecycleException("Failed to destroy the scheduling job", se) ;
+ }
+ }
+ }
+ }
+
+ /**
+ * Handle the scheduled destroy of the managed instance.
+ *
+ * @throws ManagedLifecycleException for errors while destroying.
+ */
+ protected void doScheduledDestroy()
+ throws ManagedLifecycleException
+ {
+ }
+
+ /**
+ * Parse the value as an integer.
+ * @param propertyName The property name.
+ * @param value The string representation.
+ * @return the integer value.
+ * @throws ConfigurationException For failures in parsing the integer.
+ */
+ private int parseInt(final String propertyName, final String value)
+ throws ConfigurationException
+ {
+ try
+ {
+ return Integer.parseInt(value) ;
+ }
+ catch (final NumberFormatException nfe)
+ {
+ throw new ConfigurationException("Failed to parse " + propertyName + " as integer: " + value) ;
+ }
+ }
+
+ /**
+ * Parse the value as a long.
+ * @param propertyName The property name.
+ * @param value The string representation.
+ * @return the long value.
+ * @throws ConfigurationException For failures in parsing the long.
+ */
+ private long parseLong(final String propertyName, final String value)
+ throws ConfigurationException
+ {
+ try
+ {
+ return Long.parseLong(value) ;
+ }
+ catch (final NumberFormatException nfe)
+ {
+ throw new ConfigurationException("Failed to parse " + propertyName + " as long: " + value) ;
+ }
+ }
+
+ /**
+ * Extract any scheduler properties from the configuration.
+ * @param config The current configuration.
+ * @return The scheduler properties or null if none present.
+ * @throws ConfigurationException for errors in configuration
+ */
+ private Properties extractProperties(final ConfigTree config)
+ throws ConfigurationException
+ {
+ final ConfigTree[] children = config.getChildren(ListenerTagNames.SCHEDULE_PROPERTIES) ;
+ final int numChildren = (children == null ? 0 : children.length) ;
+ if (numChildren == 0)
+ {
+ return null ;
+ }
+ else if (numChildren > 1)
+ {
+ throw new ConfigurationException("Only one " + ListenerTagNames.SCHEDULE_PROPERTIES + " element allowed within the configuration") ;
+ }
+
+ final List<KeyValuePair> attributeList = children[0].attributesAsList() ;
+ if ((attributeList == null) || attributeList.isEmpty())
+ {
+ return null ;
+ }
+
+ final Properties properties = new Properties() ;
+ for(KeyValuePair pair: attributeList)
+ {
+ properties.put(pair.getKey(), pair.getValue()) ;
+ }
+ return properties ;
+ }
+
+ /**
+ * Create a date object from the time value.
+ * @param time The time value.
+ * @return The date instance.
+ * @throws ConfigurationException for parsing errors.
+ */
+ private Date getDate(final String time)
+ throws ConfigurationException
+ {
+ if (time == null)
+ {
+ return null ;
+ }
+
+ final long timeval ;
+ try
+ {
+ timeval = Long.parseLong(time) ;
+ }
+ catch (final NumberFormatException nfe)
+ {
+ throw new ConfigurationException("Could not create date from millisecond value: " + time) ;
+ }
+ return new Date(timeval) ;
+ }
+}
Modified: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/lifecycle/LifecycleController.java
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/lifecycle/LifecycleController.java 2009-01-21 14:47:17 UTC (rev 24849)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/lifecycle/LifecycleController.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -48,6 +48,7 @@
import org.apache.log4j.Logger;
import org.jboss.mx.util.MBeanServerLocator;
import org.jboss.soa.esb.helpers.ConfigTree;
+import org.jboss.soa.esb.lifecycle.LifecycleResourceManager;
import org.jboss.soa.esb.listeners.ListenerTagNames;
/**
@@ -56,9 +57,10 @@
* @author <a href="mailto:tcunning at redhat.com">tcunning at redhat.com</a>
*/
public class LifecycleController implements DynamicMBean {
- private ManagedLifecycle m_lifecycle;
- private ConfigTree m_config;
+ private ManagedLifecycleAdapter m_lifecycle;
private String m_startTime;
+ private final ObjectName listObjectName ;
+ private final ClassLoader tccl ;
private static final Logger logger = Logger.getLogger(LifecycleController.class);
@@ -66,20 +68,19 @@
public static final String STARTTIME_ATTRIB = "StartDate";
public static final String XML_ATTRIB = "ListenerXMLAsHtml";
- public static final String INIT_ACTION = "initialise";
public static final String START_ACTION = "start";
public static final String STOP_ACTION = "stop";
- public static final String DESTROY_ACTION = "destroy";
/**
* Constructor using lifecycle and config tree.
* @param f_lifecycle lifecycle
* @param f_configtree config tree
*/
- public LifecycleController(ManagedLifecycle f_lifecycle, ConfigTree f_configtree) {
+ public LifecycleController(ManagedLifecycleAdapter f_lifecycle) {
m_lifecycle = f_lifecycle;
- m_config = f_configtree;
m_startTime = "";
+ listObjectName = getObjectName() ;
+ tccl = Thread.currentThread().getContextClassLoader() ;
}
/**
@@ -102,7 +103,7 @@
* Lifecycle mutator.
* @param f_aml lifecycle
*/
- public void setLifecycle(ManagedLifecycle f_aml) {
+ public void setLifecycle(ManagedLifecycleAdapter f_aml) {
m_lifecycle = f_aml;
}
@@ -111,32 +112,10 @@
* @return configtree XML
*/
public String getListenerXMLAsHtml() {
- return m_config.toXml().replace("<", "<").replace(">", ">");
+ return m_lifecycle.getConfig().toXml().replace("<", "<").replace(">", ">");
}
/**
- * ConfigTree mutator.
- * @param f_ct config tree
- */
- public void setConfigTree(ConfigTree f_ct) {
- m_config = f_ct;
- }
-
- /**
- * Calls destroy on the lifecycle.
- */
- public void destroy() throws ManagedLifecycleException {
- m_lifecycle.destroy();
- }
-
- /**
- * Calls initialise on the lifecycle.
- */
- public void initialise() throws ManagedLifecycleException {
- m_lifecycle.initialise();
- }
-
- /**
* Calls start on the lifecycle.
*/
public void start() throws ManagedLifecycleException {
@@ -154,6 +133,9 @@
* Register this MBean with JBoss.
*/
protected void registerMBean() {
+ if (listObjectName == null) {
+ return ;
+ }
MBeanServer mbeanServer = null;
try {
mbeanServer = MBeanServerLocator.locateJBoss();
@@ -163,55 +145,8 @@
return;
}
- ObjectName listObjectName = null;
try {
- String categoryName = m_config.getAttribute(ListenerTagNames.SERVICE_CATEGORY_NAME_TAG);
- String serviceName = m_config.getAttribute(ListenerTagNames.SERVICE_NAME_TAG);
- String listenerName = m_config.getName();
-
- StringBuffer objectName = new StringBuffer();
- if (categoryName != null) {
- objectName.append(ListenerTagNames.SERVICE_CATEGORY_NAME_TAG + "=" + categoryName);
- }
-
- if (serviceName != null) {
- if (objectName.length() > 0) {
- objectName.append(",");
- }
- objectName.append(ListenerTagNames.SERVICE_NAME_TAG + "=" + serviceName);
- }
-
- if (listenerName != null) {
- if (objectName.length() > 0) {
- objectName.append(",");
- }
- if ("true".equals(m_config.getAttribute(ListenerTagNames.IS_GATEWAY_TAG))) {
- objectName.append("gateway-name=" + listenerName);
- } else {
- objectName.append("listener-name=" + listenerName);
- }
-
- }
-
- listObjectName = new ObjectName("jboss.esb:" + objectName.toString());
- } catch (MalformedObjectNameException e1) {
- logger.error("", e1);
- } catch (NullPointerException e1) {
- logger.error("", e1);
- }
-
- if (mbeanServer.isRegistered(listObjectName)) {
- try {
- mbeanServer.unregisterMBean(listObjectName);
- } catch (InstanceNotFoundException e) {
- logger.error("", e);
- } catch (MBeanRegistrationException e) {
- logger.error("", e);
- }
- }
-
- try {
- mbeanServer.registerMBean(this, listObjectName);
+ mbeanServer.registerMBean(this, listObjectName);
} catch (InstanceAlreadyExistsException e) {
logger.error("", e);
} catch (MBeanRegistrationException e) {
@@ -222,15 +157,41 @@
}
/**
+ * Unregister this MBean with JBoss.
+ */
+ protected void unregisterMBean() {
+ if (listObjectName == null) {
+ return ;
+ }
+ MBeanServer mbeanServer = null;
+ try {
+ mbeanServer = MBeanServerLocator.locateJBoss();
+ } catch (IllegalStateException ise) {
+ // If we can't find a JBoss MBeanServer, just return
+ // Needed for unit tests
+ return;
+ }
+
+ try {
+ mbeanServer.unregisterMBean(listObjectName);
+ } catch (InstanceNotFoundException e) {
+ logger.error("", e);
+ } catch (MBeanRegistrationException e) {
+ logger.error("", e);
+ }
+ }
+
+ /**
* Gets the list of attributes. We return all Lifecycle attributes from the ConfigTree,
* and the start time, configtree XML, and the lifecycle state.
*/
public AttributeList getAttributes(String[] arg0) {
+ final ConfigTree config = m_lifecycle.getConfig() ;
AttributeList attributeList = new AttributeList();
- Set<String> set = m_config.getAttributeNames();
+ Set<String> set = config.getAttributeNames();
String[] attribs = (String[])set.toArray(new String[set.size()]);
for (int i = 0; i < attribs.length; i++) {
- Attribute at = new Attribute(attribs[i], m_config.getAttribute(attribs[i]));
+ Attribute at = new Attribute(attribs[i], config.getAttribute(attribs[i]));
attributeList.add(at);
}
@@ -259,7 +220,7 @@
} else if (name.equals(XML_ATTRIB)) {
value = getListenerXMLAsHtml();
} else {
- value = m_config.getAttribute(name);
+ value = m_lifecycle.getConfig().getAttribute(name);
}
if (value != null)
return value;
@@ -275,7 +236,7 @@
*/
public MBeanInfo getMBeanInfo() {
SortedSet<String> names = new TreeSet<String>();
- for (Object name : m_config.getAttributeNames())
+ for (Object name : m_lifecycle.getConfig().getAttributeNames())
names.add((String) name);
names.add(LIFECYCLESTATE_ATTRIB);
names.add(STARTTIME_ATTRIB);
@@ -288,9 +249,6 @@
name, "java.lang.String", "Property " + name, true, false, false);
}
MBeanOperationInfo[] opers = {
- new MBeanOperationInfo(
- INIT_ACTION, "Initialise the lifecycle",
- null, "void", MBeanOperationInfo.ACTION),
new MBeanOperationInfo(
START_ACTION, "Start the lifecycle",
null, "void", MBeanOperationInfo.ACTION),
@@ -298,9 +256,6 @@
new MBeanOperationInfo(
STOP_ACTION, "Stop the lifecycle",
null, "void", MBeanOperationInfo.ACTION),
- new MBeanOperationInfo(
- DESTROY_ACTION, "Destroy the lifecycle",
- null, "void", MBeanOperationInfo.ACTION),
};
return new MBeanInfo(
this.getClass().getName(), "Lifecycle Controller MBean",
@@ -314,40 +269,30 @@
* an exception.
*/
public Object invoke(String method, Object[] arg1, String[] arg2) throws ReflectionException {
- if (method.equalsIgnoreCase(START_ACTION)) {
- try {
- start();
- } catch (ManagedLifecycleException e) {
- logger.error("", e);
- return "Error invoking " + method + ": " + e.toString();
+ final ClassLoader current = Thread.currentThread().getContextClassLoader() ;
+ Thread.currentThread().setContextClassLoader(tccl) ;
+ try {
+ if (method.equalsIgnoreCase(START_ACTION)) {
+ try {
+ start();
+ } catch (ManagedLifecycleException e) {
+ logger.error("", e);
+ return "Error invoking " + method + ": " + e.toString();
+ }
+ return "Invoking the " + method + " on the lifecycle.";
+ } else if (method.equalsIgnoreCase(STOP_ACTION)) {
+ try {
+ stop();
+ } catch (ManagedLifecycleException e) {
+ logger.error("", e);
+ return "Error invoking " + method + ": " + e.toString();
+ }
+ return "Invoking the " + method + " on the lifecycle.";
+ } else {
+ throw new ReflectionException(new NoSuchMethodException(method));
}
- return "Invoking the " + method + " on the lifecycle.";
- } else if (method.equalsIgnoreCase(INIT_ACTION)) {
- try {
- initialise();
- } catch (ManagedLifecycleException e) {
- logger.error("", e);
- return "Error invoking " + method + ": " + e.toString();
- }
- return "Invoking the " + method + " on the lifecycle.";
- } else if (method.equalsIgnoreCase(STOP_ACTION)) {
- try {
- stop();
- } catch (ManagedLifecycleException e) {
- logger.error("", e);
- return "Error invoking " + method + ": " + e.toString();
- }
- return "Invoking the " + method + " on the lifecycle.";
- } else if (method.equalsIgnoreCase(DESTROY_ACTION)) {
- try {
- destroy();
- } catch (ManagedLifecycleException e) {
- logger.error("", e);
- return "Error invoking " + method + ": " + e.toString();
- }
- return "Invoking the " + method + " on the lifecycle.";
- } else {
- throw new ReflectionException(new NoSuchMethodException(method));
+ } finally {
+ Thread.currentThread().setContextClassLoader(current) ;
}
}
@@ -364,5 +309,59 @@
*/
public AttributeList setAttributes(AttributeList arg0) {
return null;
- }
+ }
+
+ protected ObjectName getObjectName()
+ {
+ ObjectName listObjectName = null;
+ try {
+ final ConfigTree config = m_lifecycle.getConfig() ;
+ String categoryName = config.getAttribute(ListenerTagNames.SERVICE_CATEGORY_NAME_TAG);
+ String serviceName = config.getAttribute(ListenerTagNames.SERVICE_NAME_TAG);
+ String targetCategoryName = config.getAttribute(ListenerTagNames.TARGET_SERVICE_CATEGORY_TAG);
+ String targetServiceName = config.getAttribute(ListenerTagNames.TARGET_SERVICE_NAME_TAG);
+ String listenerName = config.getAttribute(ListenerTagNames.NAME_TAG);
+ final LifecycleResourceManager lifecycleResourceManager = LifecycleResourceManager.getSingleton() ;
+ final String[] associatedDeployments = lifecycleResourceManager.getAssociatedDeployments() ;
+ final String deployment ;
+ if ((associatedDeployments != null) && (associatedDeployments.length == 1))
+ {
+ deployment = associatedDeployments[0] ;
+ }
+ else
+ {
+ deployment = lifecycleResourceManager.getIdentity() ;
+ }
+
+ StringBuffer objectName = new StringBuffer();
+ append(objectName, "deployment", deployment) ;
+ append(objectName, ListenerTagNames.SERVICE_CATEGORY_NAME_TAG, categoryName) ;
+ append(objectName, ListenerTagNames.SERVICE_NAME_TAG, serviceName);
+ append(objectName, ListenerTagNames.TARGET_SERVICE_CATEGORY_TAG, targetCategoryName);
+ append(objectName, ListenerTagNames.TARGET_SERVICE_NAME_TAG, targetServiceName);
+
+ if ("true".equals(config.getAttribute(ListenerTagNames.IS_GATEWAY_TAG))) {
+ append(objectName, "gateway-name", listenerName) ;
+ } else {
+ append(objectName, "listener-name", listenerName) ;
+ }
+
+ listObjectName = new ObjectName("jboss.esb:" + objectName.toString());
+ } catch (MalformedObjectNameException e1) {
+ logger.error("", e1);
+ } catch (NullPointerException e1) {
+ logger.error("", e1);
+ }
+ return listObjectName ;
+ }
+
+ private void append(final StringBuffer objectName, final String name, final String value)
+ {
+ if ((value != null) && (value.length() > 0)) {
+ if (objectName.length() > 0) {
+ objectName.append(",") ;
+ }
+ objectName.append(name).append("=").append(value) ;
+ }
+ }
}
Modified: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/lifecycle/LifecycleControllerMBean.java
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/lifecycle/LifecycleControllerMBean.java 2009-01-21 14:47:17 UTC (rev 24849)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/lifecycle/LifecycleControllerMBean.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -28,8 +28,6 @@
* @author <a href="mailto:tcunning at redhat.com">tcunning at redhat.com</a>
*/
public interface LifecycleControllerMBean {
- public void initialise() throws ManagedLifecycleException;
public void start() throws ManagedLifecycleException;
public void stop() throws ManagedLifecycleException;
- public void destroy() throws ManagedLifecycleException;
}
Copied: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/lifecycle/ManagedLifecycleAdapter.java (from rev 24846, labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/listeners/lifecycle/ManagedLifecycleAdapter.java)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/lifecycle/ManagedLifecycleAdapter.java (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/lifecycle/ManagedLifecycleAdapter.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -0,0 +1,63 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.soa.esb.listeners.lifecycle;
+
+import org.jboss.soa.esb.helpers.ConfigTree;
+
+/**
+ * Adapter interface used for management through lifecycle MBean
+ */
+public interface ManagedLifecycleAdapter
+{
+ /**
+ * Start the managed instance.
+ * <p/>
+ * This method is called to inform the managed instance that it can initialise
+ * resources prior to enabling the service.
+ */
+ public void start()
+ throws ManagedLifecycleException ;
+
+ /**
+ * Stop the managed instance.
+ * <p/>
+ * This method is called to inform the managed instance that it must disable
+ * resources associated with the running service. The service may choose to
+ * disable the resources asynchronously provided that any subsequent call to
+ * {@link #start()} or {@link #destroy()} blocks until these resources have been
+ * disabled.
+ */
+ public void stop()
+ throws ManagedLifecycleException ;
+
+ /**
+ * Get the state of the managed instance.
+ * @return The managed instance state.
+ */
+ public ManagedLifecycleState getState() ;
+
+ /**
+ * Get the configuration assoicated with the ManagedLifecycle.
+ * @return Configuration.
+ */
+ public ConfigTree getConfig();
+}
\ No newline at end of file
Modified: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/lifecycle/ManagedLifecycleController.java
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/lifecycle/ManagedLifecycleController.java 2009-01-21 14:47:17 UTC (rev 24849)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/lifecycle/ManagedLifecycleController.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -23,10 +23,6 @@
import java.util.Collection;
-import org.jboss.soa.esb.schedule.ScheduleProvider;
-import org.jboss.soa.esb.schedule.SchedulingException;
-import org.apache.log4j.Logger;
-
/**
* Controller class to manage the lifecycles of a set of managed instances.
*
@@ -34,13 +30,10 @@
*/
public class ManagedLifecycleController
{
- private static Logger logger = Logger.getLogger(ManagedLifecycleController.class);
-
/**
* The managed lifecycle instances.
*/
private final ManagedLifecycle[] instances;
- private ScheduleProvider scheduleProvider;
/**
* Construct the controller to manage the specified managed lifecycle instances.
@@ -68,14 +61,6 @@
{
initialiseInstances();
startInstances();
- try {
- if(scheduleProvider != null) {
- scheduleProvider.start();
- }
- } catch (SchedulingException e) {
- stopAndDestroy(false);
- throw new ManagedLifecycleException("Failed to start schedule provider.", e);
- }
}
/**
@@ -87,25 +72,8 @@
*/
public void restart() throws ManagedLifecycleException
{
- try
- {
- if(scheduleProvider != null) {
- scheduleProvider.standby();
- }
- } catch (SchedulingException e) {
- stopAndDestroy(false);
- throw new ManagedLifecycleException("Failed to put schedule provider into standby.", e);
- }
stopInstances();
startInstances();
- try {
- if(scheduleProvider != null) {
- scheduleProvider.start();
- }
- } catch (SchedulingException e) {
- stopAndDestroy(false);
- throw new ManagedLifecycleException("Failed to restart schedule provider.", e);
- }
}
/**
@@ -117,20 +85,7 @@
*/
public void stop() throws ManagedLifecycleException
{
- try
- {
- stopAndDestroy(true) ;
- }
- finally
- {
- if(scheduleProvider != null) {
- try {
- scheduleProvider.stop();
- } catch (SchedulingException e) {
- logger.error("Failed to stop scheduling.", e);
- }
- }
- }
+ stopAndDestroy(true) ;
}
/**
@@ -302,8 +257,4 @@
destroyInstances(numInstances-1) ;
}
}
-
- public void setScheduleProvider(ScheduleProvider scheduleProvider) {
- this.scheduleProvider = scheduleProvider;
- }
}
Modified: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/lifecycle/ManagedLifecycleState.java
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/lifecycle/ManagedLifecycleState.java 2009-01-21 14:47:17 UTC (rev 24849)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/lifecycle/ManagedLifecycleState.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -48,7 +48,7 @@
{
CONSTRUCTED { public boolean canTransition(final ManagedLifecycleState newState) { return (newState == INITIALISING) ;}} ,
INITIALISING { public boolean canTransition(final ManagedLifecycleState newState) { return ((newState == INITIALISED) || (newState == DESTROYED)) ;}} ,
- INITIALISED { public boolean canTransition(final ManagedLifecycleState newState) { return ((newState == STARTING) || (newState == DESTROYED)) ;}} ,
+ INITIALISED { public boolean canTransition(final ManagedLifecycleState newState) { return ((newState == STARTING) || (newState == DESTROYING)) ;}} ,
STARTING { public boolean canTransition(final ManagedLifecycleState newState) { return ((newState == STARTED) || (newState == STOPPED)) ;}} ,
STARTED { public boolean canTransition(final ManagedLifecycleState newState) { return ((newState == RUNNING) || (newState == STOPPING)) ;}} ,
RUNNING { public boolean canTransition(final ManagedLifecycleState newState) { return (newState == STOPPING) ;}} ,
Modified: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/message/ActionBeanConfigurator.java
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/message/ActionBeanConfigurator.java 2009-01-21 14:47:17 UTC (rev 24849)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/message/ActionBeanConfigurator.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -26,6 +26,7 @@
import java.util.List;
import java.util.Map;
+import org.jboss.internal.soa.esb.assertion.AssertArgument;
import org.jboss.soa.esb.helpers.ConfigTree;
import org.jboss.soa.esb.helpers.KeyValuePair;
import org.jboss.soa.esb.listeners.ListenerTagNames;
@@ -48,15 +49,32 @@
private static final List<String> ignored = Arrays.asList("action",
ListenerTagNames.ACTION_ELEMENT_TAG,
ListenerTagNames.ACTION_CLASS_TAG,
+ ListenerTagNames.LISTENER_CLASS_TAG,
ListenerTagNames.PROCESS_METHOD_TAG);
-
+
+ private static final Map<String, String> optionalFields = getOptionalFieldsMap();
+
/**
* @param config
* @param bean
*/
ActionBeanConfigurator(ConfigTree config, Object bean) {
+ AssertArgument.isNotNull(config, "config");
+
setBean(bean);
List<KeyValuePair> pairs = config.attributesAsList();
+
+ ConfigTree parent = config.getParent();
+ if (parent != null) {
+ List<KeyValuePair> parentAttributes = parent.attributesAsList();
+ for (KeyValuePair attr : parentAttributes) {
+ String newKeyName = optionalFields.get(attr.getKey());
+ if (newKeyName != null) {
+ pairs.add(new KeyValuePair(newKeyName, attr.getValue()));
+ }
+ }
+ }
+
Map<String, String> properties = new HashMap<String, String>();
for (KeyValuePair kvp : pairs) {
if (!ignored.contains(kvp.getKey())) {
@@ -68,5 +86,26 @@
properties.put(child.getName(), child.toXml());
}
setProperties(properties);
+ setOptionalFields(optionalFields.values());
}
+
+
+ /**
+ * Maps configuration tag names to java field names. Some of the configuration
+ * names have '-' in them. This map contains the configuration names as its
+ * keys and the java field name as its value.
+ *
+ * @return Map<String, String> Map of configuration names to java bean names(field names).
+ */
+ static Map<String, String> getOptionalFieldsMap()
+ {
+ Map<String, String> map = new HashMap<String, String>();
+ map.put(ListenerTagNames.SERVICE_CATEGORY_NAME_TAG, "serviceCategory");
+ map.put(ListenerTagNames.SERVICE_NAME_TAG, "serviceName");
+ map.put(ListenerTagNames.SERVICE_DESCRIPTION_TAG, "serviceDescription");
+ map.put(ListenerTagNames.MAX_THREADS_TAG, "maxThreads");
+ map.put(ListenerTagNames.MEP_ATTRIBUTE_TAG, "mep");
+ return map;
+ }
+
}
Modified: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/message/ActionProcessingPipeline.java
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/message/ActionProcessingPipeline.java 2009-01-21 14:47:17 UTC (rev 24849)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/message/ActionProcessingPipeline.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -22,7 +22,15 @@
package org.jboss.soa.esb.listeners.message;
+import java.security.PrivilegedAction;
+import java.util.ArrayList;
+import java.util.concurrent.atomic.AtomicBoolean;
+
+import javax.security.auth.Subject;
+import javax.xml.validation.Schema;
+
import org.apache.log4j.Logger;
+import org.jboss.internal.soa.esb.util.XMLHelper;
import org.jboss.soa.esb.ConfigurationException;
import org.jboss.soa.esb.actions.ActionLifecycle;
import org.jboss.soa.esb.actions.ActionPipelineProcessor;
@@ -40,19 +48,26 @@
import org.jboss.soa.esb.couriers.CourierFactory;
import org.jboss.soa.esb.couriers.CourierUtil;
import org.jboss.soa.esb.helpers.ConfigTree;
+import org.jboss.soa.esb.lifecycle.LifecycleResourceException;
import org.jboss.soa.esb.listeners.ListenerTagNames;
import org.jboss.soa.esb.listeners.message.errors.Factory;
import org.jboss.soa.esb.message.Message;
import org.jboss.soa.esb.message.Properties;
import org.jboss.soa.esb.services.persistence.MessageStore;
+import org.jboss.soa.esb.services.security.PublicCryptoUtil;
+import org.jboss.soa.esb.services.security.SecurityConfig;
+import org.jboss.soa.esb.services.security.SecurityConfigUtil;
+import org.jboss.soa.esb.services.security.SecurityContext;
+import org.jboss.soa.esb.services.security.SecurityService;
+import org.jboss.soa.esb.services.security.SecurityServiceException;
+import org.jboss.soa.esb.services.security.SecurityServiceFactory;
+import org.jboss.soa.esb.services.security.auth.AuthenticationRequest;
import org.jboss.soa.esb.util.ClassUtil;
+import org.xml.sax.SAXException;
-import java.util.ArrayList;
-import java.util.concurrent.atomic.AtomicBoolean;
-
/**
* Action Processing Pipeline. <p/> Runs a list of action classes on a message
- *
+ *
* @author <a
* href="mailto:schifest at heuristica.com.ar">schifest at heuristica.com.ar</a>
* @author kevin
@@ -77,28 +92,42 @@
private final AtomicBoolean active = new AtomicBoolean(false);
/**
- *
+ * The request XSD.
*/
- private ServiceMessageCounter serviceMessageCounter;
-
+ private final Schema requestSchema ;
/**
+ * The response XSD.
+ */
+ private final Schema responseSchema ;
+
+ /**
+ *
+ */
+ private final ServiceMessageCounter serviceMessageCounter;
+
+ /**
* The transactional flag.
*/
private boolean transactional ;
-
+
/**
* The flag indicating an action pipeline for a one way MEP.
*/
- private boolean oneWay ;
-
+ private final boolean oneWay ;
+
/**
* The flag indicating whether we are using implicit or explicit processing.
*/
- private boolean defaultProcessing ;
-
+ private final boolean defaultProcessing ;
+
/**
+ * ESB Service Security configuration information.
+ */
+ private SecurityConfig securityConf;
+
+ /**
* public constructor
- *
+ *
* @param config
* The pipeline configuration.
*/
@@ -133,14 +162,41 @@
{
throw new ConfigurationException("Unrecognised action MEP: " + mep) ;
}
-
+
+ final boolean validate = config.getBooleanAttribute(ListenerTagNames.VALIDATE_ATTRIBUTE_TAG, false) ;
+ if (validate)
+ {
+ final String inXsd = config.getAttribute(ListenerTagNames.IN_XSD_ATTRIBUTE_TAG) ;
+ try
+ {
+ requestSchema = (inXsd == null ? null : XMLHelper.getSchema(inXsd)) ;
+ }
+ catch (final SAXException saxe)
+ {
+ throw new ConfigurationException("Failed to parse the request schema: " + inXsd, saxe) ;
+ }
+ final String outXsd = config.getAttribute(ListenerTagNames.OUT_XSD_ATTRIBUTE_TAG) ;
+ try
+ {
+ responseSchema = (outXsd == null ? null : XMLHelper.getSchema(outXsd)) ;
+ }
+ catch (final SAXException saxe)
+ {
+ throw new ConfigurationException("Failed to parse the response schema: " + outXsd, saxe) ;
+ }
+ }
+ else
+ {
+ requestSchema = null ;
+ responseSchema = null ;
+ }
if (LOGGER.isDebugEnabled())
{
LOGGER.debug("Using mep: " + mep + ", oneWay: " + oneWay + ", defaultProcessing: " + defaultProcessing) ;
}
this.oneWay = oneWay ;
this.defaultProcessing = defaultProcessing ;
-
+
final ConfigTree[] actionList = config
.getChildren(ListenerTagNames.ACTION_ELEMENT_TAG);
@@ -151,9 +207,15 @@
final ArrayList<ActionPipelineProcessor> processorList = new ArrayList<ActionPipelineProcessor>();
- serviceMessageCounter = new ServiceMessageCounter(config);
- serviceMessageCounter.registerMBean();
-
+ try
+ {
+ serviceMessageCounter = ServiceMessageCounterLifecycleResource.getServiceMessageCounter(config);
+ }
+ catch (final LifecycleResourceException lre)
+ {
+ throw new ConfigurationException("Failed to obtain the service message counter", lre);
+ }
+
for (final ConfigTree actionConfig : actionList)
{
final String actionClassTag = actionConfig
@@ -240,11 +302,21 @@
}
processors = processorList
.toArray(new ActionPipelineProcessor[processorList.size()]);
+
+ ConfigTree[] securityConfigs = config.getChildren( ListenerTagNames.SECURITY_TAG );
+ if (securityConfigs.length > 0)
+ {
+ securityConf = SecurityConfigUtil.createSecurityConfig(securityConfigs[0]);
+ LOGGER.debug(securityConf);
+ final SecurityService securitySerivce = SecurityServiceFactory.getSecurityService();
+ securitySerivce.configure();
+ securitySerivce.refreshSecurityConfig();
+ }
}
/**
* Handle the initialisation of the pipeline
- *
+ *
* @throws ConfigurationException
* For errors during initialisation.
*/
@@ -267,6 +339,7 @@
}
}
active.set(true);
+
}
/**
@@ -280,7 +353,7 @@
/**
* Process the specified message.
- *
+ *
* @param message
* The current message.
* @return true if the processing was successful, false otherwise.
@@ -289,8 +362,6 @@
{
long start = System.nanoTime();
serviceMessageCounter.incrementTotalCount();
- final Call callDetails = new Call() ;
- callDetails.copy(message.getHeader().getCall()) ;
if (active.get())
{
@@ -299,107 +370,255 @@
LOGGER.debug("pipeline process for message: "+message.getHeader());
}
- final int numProcessors = processors.length;
- final Message[] messages = new Message[numProcessors];
+ SecurityContext securityContext = null;
+ try
+ {
+ // Check if a encrypted SecurityContext was passed with the Message to this service.
+ securityContext = SecurityContext.decryptContext((byte[])message.getContext().getContext(SecurityService.CONTEXT));
+ }
+ catch (final SecurityServiceException e)
+ {
+ LOGGER.debug("Security exception: ", e);
+ // just make sure the securityContext is null. This will trigger a new auth if security is enabled.
+ securityContext = null;
+ }
- Message currentMessage = message;
+ if (securityConf != null || securityContext != null)
+ {
+ return processPipelineSecured(message, securityContext);
+ }
+ else
+ {
+ return processPipeline(message);
+ }
+ }
+ else
+ {
+ final Call callDetails = new Call() ;
+ callDetails.copy(message.getHeader().getCall()) ;
+ LOGGER.debug("pipeline process disabled for message: "+message.getHeader());
- for (int count = 0; count < numProcessors; count++)
+ faultTo(callDetails, Factory.createErrorMessage(Factory.NOT_ENABLED, message, null));
+ long procTime = System.nanoTime() - start;
+ MessageCounterStatistics.getMessageCounterStatistics().update(new MessageStatusBean(procTime, message,
+ MessageStatusBean.MESSAGE_FAILED));
+
+ return false;
+ }
+ }
+
+ private boolean processPipelineSecured(final Message message, SecurityContext securityContext)
+ {
+ final Call callDetails = new Call() ;
+ callDetails.copy(message.getHeader().getCall()) ;
+
+ try
+ {
+ // always perform authentication if the service is security enabled.
+ if (securityConf != null )
+ {
+ if (securityContext == null)
+ {
+ // no existing security context exist. Create one to drive the autentication.
+ securityContext = new SecurityContext();
+
+ // get the authentication request from the message
+ byte[] encrypted = (byte[]) message.getContext().getContext(SecurityService.AUTH_REQUEST);
+ if (encrypted == null)
+ {
+ throw new SecurityServiceException("Missing AuthenticationRequest. Cannot be authenticated.");
+ }
+ AuthenticationRequest authRequest = (AuthenticationRequest) PublicCryptoUtil.INSTANCE.decrypt(encrypted);
+
+ // authenticate the caller
+ SecurityServiceFactory.getSecurityService().authenticate(securityConf, securityContext, authRequest);
+ }
+ /*
+ * The SecurityContext was not null so we were able to decrypt the security context
+ * and this is a valid authenticated request and re-authentication is not done.
+ */
+
+ // check the allowed roles if configured.
+ boolean checkRolesAllowed = SecurityServiceFactory.getSecurityService().checkRolesAllowed(securityConf.getRolesAllowed(), securityContext);
+ if (!checkRolesAllowed)
+ {
+ throw new SecurityServiceException("Caller did not belong to any of the rolesAllowed " + securityConf.getRolesAllowed());
+ }
+ }
+ }
+ catch (final SecurityServiceException e)
+ {
+ LOGGER.debug( "SecurityService exception : ", e);
+ faultTo(callDetails, Factory.createErrorMessage(Factory.UNEXPECTED_ERROR, message, e));
+ return false;
+ }
+ catch (final ConfigurationException e)
+ {
+ LOGGER.debug( "SecurityService exception : ", e);
+ faultTo(callDetails, Factory.createErrorMessage(Factory.UNEXPECTED_ERROR, message, e));
+ return false;
+ }
+ finally
+ {
+ // always remove the security context
+ message.getContext().removeContext(SecurityService.CONTEXT);
+ message.getContext().removeContext(SecurityService.AUTH_REQUEST);
+ }
+
+ // the work to be performed in the context of the authenticated caller
+ PrivilegedAction<Boolean> action = new PrivilegedAction<Boolean>()
+ {
+ public Boolean run()
{
- final ActionPipelineProcessor processor = processors[count];
- messages[count] = currentMessage;
+ return processPipeline(message);
+ }
+ };
- try
+ Boolean processResult = (Boolean)Subject.doAsPrivileged(securityContext.getSubject(), action, null);
+
+ return processResult.booleanValue();
+ }
+
+ private boolean processPipeline(final Message message)
+ {
+ final long start = System.nanoTime();
+ final Call callDetails = new Call() ;
+ callDetails.copy(message.getHeader().getCall()) ;
+
+ if (LOGGER.isDebugEnabled())
+ {
+ LOGGER.debug("pipeline process for message: "+message.getHeader());
+ }
+
+ boolean result = false ;
+ String validationFailure = null ;
+ if (requestSchema != null)
+ {
+ final Object input = message.getBody().get() ;
+ if ((input == null) || !XMLHelper.validate(requestSchema, input.toString()))
{
- LOGGER.debug("executing processor " + count+ " "+processor+" "+message.getHeader());
-
- currentMessage = processor.process(currentMessage);
+ validationFailure = "Request validation failure: " + input ;
+ }
+ }
+ if (validationFailure == null)
+ {
+ final int numProcessors = processors.length;
+ final Message[] messages = new Message[numProcessors];
+ Message currentMessage = message;
+
+ for (int count = 0; count < numProcessors; count++)
+ {
+ final ActionPipelineProcessor processor = processors[count];
+ messages[count] = currentMessage;
+
+ final long actionStart = System.nanoTime();
+ try
+ {
+ LOGGER.debug("executing processor " + count+ " "+processor+" "+message.getHeader());
+
+ currentMessage = processor.process(currentMessage);
+ }
+ catch (final Exception ex)
+ {
+ final long procTime = System.nanoTime() - actionStart;
+ if (LOGGER.isDebugEnabled())
+ {
+ LOGGER.debug("Unexpected exception caught while processing the action pipeline: "+message.getHeader(),ex);
+ }
+
+ notifyException(count, ex, messages);
+
+ /*
+ * Is this an application specific error? If so, try to return
+ * the error message to the identified recipient.
+ */
+
+ final boolean throwRuntime = transactional && (ex instanceof RuntimeException) ;
+
+ if (ex instanceof ActionProcessingFaultException)
+ {
+ ActionProcessingFaultException fault = (ActionProcessingFaultException) ex;
+
+ if (fault.getFaultMessage() == null)
+ {
+ faultTo(callDetails, Factory.createErrorMessage(Factory.PROCESSING_ERROR, message, ex));
+ }
+ else
+ faultTo(callDetails, fault.getFaultMessage());
+ }
+ else if (!throwRuntime)
+ {
+ faultTo(callDetails, Factory.createErrorMessage(Factory.UNEXPECTED_ERROR, message, ex));
+ }
+
+ final long totalProcTime = System.nanoTime() - start;
+ serviceMessageCounter.update(new ActionStatusBean(procTime, count, message,
+ ActionStatusBean.ACTION_FAILED));
+ MessageCounterStatistics.getMessageCounterStatistics().update(new MessageStatusBean(totalProcTime, message,
+ MessageStatusBean.MESSAGE_FAILED));
+
+ if (throwRuntime)
+ {
+ throw (RuntimeException)ex ;
+ }
+ return false;
+ }
+ final long procTime = System.nanoTime() - actionStart;
+ serviceMessageCounter.update(new ActionStatusBean(procTime, count, message,
+ ActionStatusBean.ACTION_SENT));
+
if (currentMessage == null)
{
break;
}
}
- catch (final Exception ex)
+
+ // Reply...
+ if (!oneWay)
{
- LOGGER
- .warn(
- "Unexpected exception caught while processing the action pipeline: "+message.getHeader(),
- ex);
-
- notifyException(count, ex, messages);
-
- /*
- * Is this an application specific error? If so, try to return
- * the error message to the identified recipient.
- */
-
- final boolean throwRuntime = transactional && (ex instanceof RuntimeException) ;
-
- if (ex instanceof ActionProcessingFaultException)
+ if (currentMessage != null)
{
- ActionProcessingFaultException fault = (ActionProcessingFaultException) ex;
-
- if (fault.getFaultMessage() == null)
+ if (responseSchema != null)
{
- faultTo(callDetails, Factory.createErrorMessage(Factory.PROCESSING_ERROR, message, ex));
+ final Object output = message.getBody().get() ;
+ if ((output == null) || !XMLHelper.validate(responseSchema, output.toString()))
+ {
+ validationFailure = "Response validation failure: " + output ;
+ }
}
- else
- faultTo(callDetails, fault.getFaultMessage());
+ if (validationFailure == null)
+ {
+ replyTo(callDetails, currentMessage);
+ }
}
- else if (!throwRuntime)
+ else if (!defaultProcessing)
{
- faultTo(callDetails, Factory.createErrorMessage(Factory.UNEXPECTED_ERROR, message, ex));
+ LOGGER.warn("No response message for RequestResponse mep! " + callDetails);
}
+ }
+ if (validationFailure == null)
+ {
+ notifySuccess(messages);
long procTime = System.nanoTime() - start;
- serviceMessageCounter.update(new ActionStatusBean(procTime, count, message,
- ActionStatusBean.ACTION_FAILED));
- DeliveryObservableLogger.getInstance().logMessage(new MessageStatusBean(procTime, message,
- MessageStatusBean.MESSAGE_FAILED));
-
- if (throwRuntime)
- {
- throw (RuntimeException)ex ;
- }
- return false;
+ MessageCounterStatistics.getMessageCounterStatistics().update(new MessageStatusBean(procTime, message,
+ MessageStatusBean.MESSAGE_SENT));
+ result = true;
}
- serviceMessageCounter.update(new ActionStatusBean((System.nanoTime() - start), count, message,
- ActionStatusBean.ACTION_SENT));
}
- // Reply...
- if (!oneWay)
+ if (validationFailure != null)
{
- if (currentMessage != null)
- {
- replyTo(callDetails, currentMessage);
- }
- else if (!defaultProcessing)
- {
- LOGGER.warn("No response message for RequestResponse mep! " + callDetails);
- }
+ final MessageValidationException mve = new MessageValidationException(validationFailure) ;
+ faultTo(callDetails, Factory.createErrorMessage(Factory.VALIDATION_FAILURE, message, mve));
+ long procTime = System.nanoTime() - start;
+ MessageCounterStatistics.getMessageCounterStatistics().update(new MessageStatusBean(procTime, message,
+ MessageStatusBean.MESSAGE_FAILED));
}
+ return result ;
+ }
- notifySuccess(messages);
- long procTime = System.nanoTime() - start;
- DeliveryObservableLogger.getInstance().logMessage(new MessageStatusBean(procTime, message,
- MessageStatusBean.MESSAGE_SENT));
- return true;
- }
- else
- {
- LOGGER.debug("pipeline process disabled for message: "+message.getHeader());
-
- faultTo(callDetails, Factory.createErrorMessage(Factory.NOT_ENABLED, message, null));
- long procTime = System.nanoTime() - start;
- DeliveryObservableLogger.getInstance().logMessage(new MessageStatusBean(procTime, message,
- MessageStatusBean.MESSAGE_FAILED));
-
- return false;
- }
- }
-
/**
* Set the transactional flag for this pipeline.
* @param transactional true if running within a transaction, false otherwise.
@@ -408,7 +627,7 @@
{
this.transactional = transactional ;
}
-
+
/**
* Get the transactional flag for this pipeline.
* @return true if running within a transaction, false otherwise.
@@ -420,7 +639,7 @@
/**
* Send the reply.
- *
+ *
* @param callDetails
* the call details for the original request.
* @param message
@@ -446,7 +665,7 @@
/**
* Send the fault message to the EPR.
- *
+ *
* @param callDetails
* the call details for the original request.
* @param faultToAddress
@@ -471,7 +690,7 @@
messageTo(faultToEPR, message, MessageType.fault);
}
}
-
+
/**
* Sent the message to the DLQ service.
* @param callDetails The original call details.
@@ -489,7 +708,7 @@
try
{
final ServiceInvoker serviceInvoker = new ServiceInvoker(ServiceInvoker.dlqService) ;
-
+
serviceInvoker.deliverAsync(message) ;
}
catch (final MessageDeliverException mde)
@@ -538,7 +757,7 @@
/**
* Handle the destruction of the pipeline from the specified position.
- *
+ *
* @param initialPosition
* The initial position to begin destruction.
*/
@@ -563,7 +782,7 @@
/**
* Notify the processors of an error during processing.
- *
+ *
* @param initialPosition
* The position of the first processor to notify.
* @param ex
@@ -593,7 +812,7 @@
/**
* Notify the processors of a successful pipeline process.
- *
+ *
* @param messages
* The messages associated with the processors.
*/
@@ -619,5 +838,5 @@
}
}
}
-
+
}
Modified: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/message/BeanConfigActionProcessor.java
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/message/BeanConfigActionProcessor.java 2009-01-21 14:47:17 UTC (rev 24849)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/message/BeanConfigActionProcessor.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -23,6 +23,7 @@
import java.lang.reflect.Constructor;
+import org.jboss.internal.soa.esb.assertion.AssertArgument;
import org.jboss.soa.esb.ConfigurationException;
import org.jboss.soa.esb.actions.ActionLifecycleException;
import org.jboss.soa.esb.actions.ActionPipelineProcessor;
@@ -49,8 +50,10 @@
* @param actionClass The action class.
* @throws ConfigurationException for errors during configuration.
*/
- BeanConfigActionProcessor(final ConfigTree config, final Class actionClass)
- throws ConfigurationException {
+ BeanConfigActionProcessor(final ConfigTree config, final Class actionClass) throws ConfigurationException {
+ AssertArgument.isNotNull(config, "config");
+ AssertArgument.isNotNull(actionClass, "actionClass");
+
this.config = config;
try {
this.constructor = actionClass.getConstructor();
Modified: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/message/DeliveryObservableLogger.java
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/message/DeliveryObservableLogger.java 2009-01-21 14:47:17 UTC (rev 24849)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/message/DeliveryObservableLogger.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -25,6 +25,7 @@
* DeliveryObservableLogger is an observable which reports out to Observers.
*
* @author <a href="mailto:tcunning at redhat.com">tcunning at redhat.com</a>
+ * @deprecated No longer used
*/
public class DeliveryObservableLogger extends Observable {
private static DeliveryObservableLogger ref = null;
Copied: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/message/IncompatibleTransactionScopeException.java (from rev 24846, labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/listeners/message/IncompatibleTransactionScopeException.java)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/message/IncompatibleTransactionScopeException.java (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/message/IncompatibleTransactionScopeException.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -0,0 +1,43 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and others contributors as indicated
+ * by the @authors tag. All rights reserved.
+ * See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License, v. 2.1.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+ * PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
+ * You should have received a copy of the GNU Lesser General Public License,
+ * v.2.1 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301, USA.
+ *
+ * (C) 2005-2006, JBoss Inc.
+ */
+package org.jboss.soa.esb.listeners.message;
+
+import org.jboss.soa.esb.BaseException;
+
+/**
+ * If a user attempts to use a request-response MEP while within the
+ * scope of a transaction then the request won't be sent until the transaction
+ * commits, which can't happen if the sender thread is blocked. Rather than wait for
+ * a timeout to occur we spot this incompatibility at send time and throw this
+ * exception. The application can then take appropriate action.
+ */
+
+public class IncompatibleTransactionScopeException extends BaseException {
+
+ private static final long serialVersionUID = 1L;
+
+ public IncompatibleTransactionScopeException(String message) {
+ super(message);
+ }
+
+ public IncompatibleTransactionScopeException(String message, Throwable cause) {
+ super(message, cause);
+ }
+}
Modified: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/message/MessageAwareListener.java
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/message/MessageAwareListener.java 2009-01-21 14:47:17 UTC (rev 24849)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/message/MessageAwareListener.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -267,6 +267,18 @@
+ " finished on thread " + Thread.currentThread().getName());
}
}
+
+ /**
+ * Handle the stop of the managed instance.
+ *
+ * @throws ManagedLifecycleException for errors while stopping.
+ */
+ protected void doStop()
+ throws ManagedLifecycleException
+ {
+ super.doStop();
+ _execService.shutdown() ;
+ }
/**
* We have JMS transactional delivery/work semantics: before pulling a unit of work
@@ -373,22 +385,18 @@
protected void doThreadedDestroy()
throws ManagedLifecycleException
{
- if (_execService != null)
+ try
{
- try
- {
- _execService.shutdown() ;
- checkExecutorTermination() ;
- }
- catch (final ManagedLifecycleException ex)
- {
- throw ex;
- }
- catch (final Throwable ex)
- {
- _logger.warn("Caught throwable during shutdown: "+ex);
- }
+ checkExecutorTermination() ;
}
+ catch (final ManagedLifecycleException ex)
+ {
+ throw ex;
+ }
+ catch (final Throwable ex)
+ {
+ _logger.warn("Caught throwable during shutdown: "+ex);
+ }
pipeline.destroy() ;
pipeline = null ;
Modified: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/message/MessageCounter.java
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/message/MessageCounter.java 2009-01-21 14:47:17 UTC (rev 24849)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/message/MessageCounter.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -20,12 +20,6 @@
package org.jboss.soa.esb.listeners.message;
-import java.sql.Timestamp;
-import java.util.Observable;
-import java.util.Observer;
-
-import org.jboss.system.ServiceMBeanSupport;
-
/**
* MessageCounter is a MBean implementation which keeps track of message data and
* metadata.
@@ -33,30 +27,14 @@
* @author <a href="mailto:tcunning at redhat.com">tcunning at redhat.com</a>
*
*/
-public class MessageCounter extends ServiceMBeanSupport implements MessageCounterMBean, Observer {
+public class MessageCounter implements MessageCounterMBean {
- private String lastSuccessfulMessageDate;
- private String lastFailedMessageDate;
- private int failedMessageCount;
- private int successMessageCount;
- private long totalProcessTime;
- private int bytesProcessed;
- private int bytesFailed;
-
/**
- * Constructor.
- */
- public MessageCounter () {
- DeliveryObservableLogger.getInstance().addObserver(this);
- resetCounts();
- }
-
- /**
* Get the total number of failed messages.
* @return total number of failed messages
*/
public int getFailedMessageCount() {
- return failedMessageCount;
+ return MessageCounterStatistics.getMessageCounterStatistics().getFailedMessageCount();
}
/**
@@ -64,7 +42,7 @@
* @return time the last message was processed at
*/
public String getLastSuccessfulMessageDate() {
- return lastSuccessfulMessageDate;
+ return MessageCounterStatistics.getMessageCounterStatistics().getLastSuccessfulMessageDate();
}
/**
@@ -72,7 +50,7 @@
* @return time the last message was processed at
*/
public String getLastFailedMessageDate() {
- return lastFailedMessageDate;
+ return MessageCounterStatistics.getMessageCounterStatistics().getLastFailedMessageDate();
}
/**
@@ -80,7 +58,7 @@
* @return total number of processed messages
*/
public int getTotalMessageCount() {
- return (failedMessageCount + successMessageCount);
+ return MessageCounterStatistics.getMessageCounterStatistics().getTotalMessageCount();
}
/**
@@ -88,64 +66,29 @@
* @return total number of successfully processed messages
*/
public int getSuccessfulMessageCount() {
- return successMessageCount;
+ return MessageCounterStatistics.getMessageCounterStatistics().getSuccessfulMessageCount();
}
public int getProcessedBytes() {
- return bytesProcessed;
+ return MessageCounterStatistics.getMessageCounterStatistics().getProcessedBytes();
}
public int getFailedBytes() {
- return bytesFailed;
+ return MessageCounterStatistics.getMessageCounterStatistics().getFailedBytes();
}
-
- /**
- * Update the message counter based on the MessageStatusBean that is returned
- * from the observable.
- * @param o the observable object
- * @param arg the MessageStatusBean
- */
- public void update(Observable o, Object arg) {
- MessageStatusBean msb = (MessageStatusBean) arg;
-
- if (msb.getMessageStatus().equals(MessageStatusBean.MESSAGE_SENT)) {
- successMessageCount++;
- Timestamp ts = new Timestamp(msb.getMessageTime());
- lastSuccessfulMessageDate = ts.toString();
- bytesProcessed += msb.getMessageBytes();
- } else if (msb.getMessageStatus().equals(MessageStatusBean.MESSAGE_FAILED)) {
- failedMessageCount++;
- Timestamp ts = new Timestamp(msb.getMessageTime());
- lastFailedMessageDate = ts.toString();
- bytesFailed += msb.getMessageBytes();
- }
-
- totalProcessTime += msb.getProcessTime();
- }
/**
* Get the average time to process a message.
* @return average time to process a message
*/
public Double getAverageSuccessTime() {
- if ((successMessageCount) > 0) {
- double ms = (double) totalProcessTime / (1000000 * successMessageCount);
- return new Double(ms);
- } else {
- return null;
- }
+ return MessageCounterStatistics.getMessageCounterStatistics().getAverageSuccessTime();
}
/**
* Reset the counts - this resets the totals and the last message time.
*/
public void resetCounts() {
- lastSuccessfulMessageDate = "---";
- lastFailedMessageDate = "---";
- successMessageCount = 0;
- failedMessageCount = 0;
- totalProcessTime = 0;
- bytesProcessed = 0;
- bytesFailed = 0;
+ MessageCounterStatistics.getMessageCounterStatistics().resetCounts();
}
}
Modified: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/message/MessageCounterMBean.java
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/message/MessageCounterMBean.java 2009-01-21 14:47:17 UTC (rev 24849)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/message/MessageCounterMBean.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -19,7 +19,6 @@
*/
package org.jboss.soa.esb.listeners.message;
-import org.jboss.system.ServiceMBean;
/**
* MBean to represent simple message counting. Stores the number of succesful and
@@ -29,7 +28,7 @@
* @author <a href="mailto:tcunning at redhat.com">tcunning at redhat.com</a>
*
*/
-public interface MessageCounterMBean extends ServiceMBean {
+public interface MessageCounterMBean {
public int getTotalMessageCount();
public int getSuccessfulMessageCount();
Copied: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/message/MessageCounterStatistics.java (from rev 24846, labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/listeners/message/MessageCounterStatistics.java)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/message/MessageCounterStatistics.java (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/message/MessageCounterStatistics.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -0,0 +1,170 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and others contributors as indicated
+ * by the @authors tag. All rights reserved.
+ * See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License, v. 2.1.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+ * PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
+ * You should have received a copy of the GNU Lesser General Public License,
+ * v.2.1 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301, USA.
+ *
+ * (C) 2005-2006, JBoss Inc.
+ */
+
+package org.jboss.soa.esb.listeners.message;
+
+import java.sql.Timestamp;
+import java.util.Observable;
+
+/**
+ * Extraction of core from MessageCounter bean.
+ *
+ * @author <a href="mailto:tcunning at redhat.com">tcunning at redhat.com</a>
+ *
+ */
+public class MessageCounterStatistics {
+
+
+ private static final MessageCounterStatistics SINGLETON = new MessageCounterStatistics() ;
+
+ private long lastSuccessfulMessageDate;
+ private long lastFailedMessageDate;
+ private int failedMessageCount;
+ private int successMessageCount;
+ private long totalProcessTime;
+ private int bytesProcessed;
+ private int bytesFailed;
+
+ /**
+ * Constructor.
+ */
+ public MessageCounterStatistics() {
+ resetCounts();
+ }
+
+ /**
+ * Get the total number of failed messages.
+ * @return total number of failed messages
+ */
+ public synchronized int getFailedMessageCount() {
+ return failedMessageCount;
+ }
+
+ /**
+ * Get the time the last message was processed at.
+ * @return time the last message was processed at
+ */
+ public synchronized String getLastSuccessfulMessageDate() {
+ return getDate(lastSuccessfulMessageDate);
+ }
+
+ /**
+ * Get the time the last message was processed at.
+ * @return time the last message was processed at
+ */
+ public synchronized String getLastFailedMessageDate() {
+ return getDate(lastFailedMessageDate);
+ }
+
+ /**
+ * Get the total number of processed messages, both successful and failed.
+ * @return total number of processed messages
+ */
+ public synchronized int getTotalMessageCount() {
+ return (failedMessageCount + successMessageCount);
+ }
+
+ /**
+ * Get the total number of successfully processed messages.
+ * @return total number of successfully processed messages
+ */
+ public synchronized int getSuccessfulMessageCount() {
+ return successMessageCount;
+ }
+
+ public synchronized int getProcessedBytes() {
+ return bytesProcessed;
+ }
+
+ public synchronized int getFailedBytes() {
+ return bytesFailed;
+ }
+
+ /**
+ * Update the message counter based on the MessageStatusBean that is returned
+ * from the observable.
+ * @param o the observable object
+ * @param arg the MessageStatusBean
+ */
+ public synchronized void update(MessageStatusBean msb) {
+ if (msb.getMessageStatus().equals(MessageStatusBean.MESSAGE_SENT)) {
+ successMessageCount++;
+ Timestamp ts = new Timestamp(msb.getMessageTime());
+ if (msb.getMessageTime() > lastSuccessfulMessageDate) {
+ lastSuccessfulMessageDate = msb.getMessageTime();
+ }
+ bytesProcessed += msb.getMessageBytes();
+ } else if (msb.getMessageStatus().equals(MessageStatusBean.MESSAGE_FAILED)) {
+ failedMessageCount++;
+ Timestamp ts = new Timestamp(msb.getMessageTime());
+ if (msb.getMessageTime() > lastFailedMessageDate) {
+ lastFailedMessageDate = msb.getMessageTime();
+ }
+ bytesFailed += msb.getMessageBytes();
+ }
+
+ totalProcessTime += msb.getProcessTime();
+ }
+
+ /**
+ * Get the average time to process a message.
+ * @return average time to process a message
+ */
+ public synchronized Double getAverageSuccessTime() {
+ if ((successMessageCount) > 0) {
+ double ms = (double) totalProcessTime / (1000000 * successMessageCount);
+ return new Double(ms);
+ } else {
+ return null;
+ }
+ }
+
+ /**
+ * Reset the counts - this resets the totals and the last message time.
+ */
+ public synchronized void resetCounts() {
+ lastSuccessfulMessageDate = 0;
+ lastFailedMessageDate = 0;
+ successMessageCount = 0;
+ failedMessageCount = 0;
+ totalProcessTime = 0;
+ bytesProcessed = 0;
+ bytesFailed = 0;
+ }
+
+ /**
+ * Get the string representation of the time.
+ * @param time The time.
+ * @return The string representation.
+ */
+ private static String getDate(final long time) {
+ if (time <= 0) {
+ return "---" ;
+ } else {
+ // not sure why timestamp is being used.
+ final Timestamp ts = new Timestamp(time) ;
+ return ts.toString() ;
+ }
+ }
+
+ public static MessageCounterStatistics getMessageCounterStatistics() {
+ return SINGLETON ;
+ }
+}
Copied: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/message/MessageValidationException.java (from rev 24846, labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/listeners/message/MessageValidationException.java)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/message/MessageValidationException.java (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/message/MessageValidationException.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -0,0 +1,55 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and others contributors as indicated
+ * by the @authors tag. All rights reserved.
+ * See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License, v. 2.1.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+ * PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
+ * You should have received a copy of the GNU Lesser General Public License,
+ * v.2.1 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301, USA.
+ *
+ * (C) 2005-2006, JBoss Inc.
+ */
+package org.jboss.soa.esb.listeners.message;
+
+import org.jboss.soa.esb.BaseException;
+
+/**
+ * Exception sent when pipeline message validation fails.
+ *
+ * @author <a href="mailto:Kevin.Conner at jboss.com">Kevin Conner</a>
+ */
+public class MessageValidationException extends BaseException
+{
+ /**
+ * The serial version UID for this exception.
+ */
+ private static final long serialVersionUID = 1145249669785492077L ;
+
+ public MessageValidationException()
+ {
+ super() ;
+ }
+
+ public MessageValidationException(final String message)
+ {
+ super(message) ;
+ }
+
+ public MessageValidationException(final Throwable cause)
+ {
+ super(cause) ;
+ }
+
+ public MessageValidationException(final String message, final Throwable cause)
+ {
+ super(message, cause);
+ }
+}
Copied: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/message/ResponseTimeoutException.java (from rev 24846, labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/listeners/message/ResponseTimeoutException.java)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/message/ResponseTimeoutException.java (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/message/ResponseTimeoutException.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -0,0 +1,37 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and others contributors as indicated
+ * by the @authors tag. All rights reserved.
+ * See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License, v. 2.1.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+ * PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
+ * You should have received a copy of the GNU Lesser General Public License,
+ * v.2.1 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301, USA.
+ *
+ * (C) 2005-2006, JBoss Inc.
+ */
+package org.jboss.soa.esb.listeners.message;
+
+/**
+ * Timeout on response.
+ */
+
+public class ResponseTimeoutException extends MessageDeliverException {
+
+ private static final long serialVersionUID = 1L;
+
+ public ResponseTimeoutException(String message) {
+ super(message);
+ }
+
+ public ResponseTimeoutException(String message, Throwable cause) {
+ super(message, cause);
+ }
+}
Modified: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/message/ServiceMessageCounter.java
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/message/ServiceMessageCounter.java 2009-01-21 14:47:17 UTC (rev 24849)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/message/ServiceMessageCounter.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -23,6 +23,7 @@
package org.jboss.soa.esb.listeners.message;
import java.util.Hashtable;
+
import javax.management.Attribute;
import javax.management.AttributeList;
import javax.management.AttributeNotFoundException;
@@ -36,11 +37,11 @@
import javax.management.MBeanOperationInfo;
import javax.management.MBeanRegistrationException;
import javax.management.MBeanServer;
-import javax.management.MalformedObjectNameException;
import javax.management.NotCompliantMBeanException;
import javax.management.ObjectName;
import javax.management.ReflectionException;
+import org.apache.log4j.Logger;
import org.jboss.mx.util.MBeanServerLocator;
import org.jboss.soa.esb.helpers.ConfigTree;
import org.jboss.soa.esb.listeners.ListenerTagNames;
@@ -54,18 +55,19 @@
* @since Version 4.2
*/
public class ServiceMessageCounter implements DynamicMBean {
- private Hashtable<String, Integer> actionCounterHash;
- private Hashtable<String, Integer> actionFailedCounterHash;
- private Hashtable<String, Long> actionProcessTimeHash;
- private Hashtable<String, Integer> actionBytesProcessedHash;
- private Hashtable<String, Integer> actionBytesFailedHash;
+ private Hashtable<String, IntHolder> actionCounterHash;
+ private Hashtable<String, IntHolder> actionFailedCounterHash;
+ private Hashtable<String, LongHolder> actionProcessTimeHash;
+ private Hashtable<String, LongHolder> actionBytesProcessedHash;
+ private Hashtable<String, LongHolder> actionBytesFailedHash;
- private ConfigTree m_config;
- private ConfigTree[] actionArray;
+ private String[] actionNames;
+ private final ObjectName listObjectName ;
- private Integer serviceCount;
- private Integer bytesFailed;
- private Integer bytesProcessed;
+ private int serviceCount;
+ private long bytesFailed;
+ private long bytesProcessed;
+ private long bytesOverall;
public static final String RESET_COUNTER = "resetCounter";
private static final String MESSAGE_COUNTER = "messages successfully processed count";
@@ -75,28 +77,36 @@
private static final String BYTES_PROCESSED = "processed bytes";
private static final String OVERALL_SERVICE_COUNT = "overall service message count";
+ private static final String OVERALL_BYTES = "overall service count bytes";
private static final String OVERALL_BYTES_PROCESSED = "overall processedbytes";
private static final String OVERALL_BYTES_FAILED = "overall failed bytes";
+ private static final Logger logger = Logger.getLogger(ServiceMessageCounter.class);
+
+
/**
* Constructor
* @param f_config config tree
+ * @param objectName The name to use as the MBean.
*/
- public ServiceMessageCounter(ConfigTree f_config) {
- actionCounterHash = new Hashtable<String, Integer>();
- actionFailedCounterHash = new Hashtable<String, Integer>();
- actionProcessTimeHash = new Hashtable<String, Long>();
- actionBytesProcessedHash = new Hashtable<String, Integer>();
- actionBytesFailedHash = new Hashtable<String, Integer>();
+ public ServiceMessageCounter(ConfigTree f_config, final String objectName) {
+ actionCounterHash = new Hashtable<String, IntHolder>();
+ actionFailedCounterHash = new Hashtable<String, IntHolder>();
+ actionProcessTimeHash = new Hashtable<String, LongHolder>();
+ actionBytesProcessedHash = new Hashtable<String, LongHolder>();
+ actionBytesFailedHash = new Hashtable<String, LongHolder>();
- serviceCount = new Integer(0);
- bytesProcessed = new Integer(0);
- bytesFailed = new Integer(0);
-
- m_config = f_config;
- actionArray = m_config.getChildren(ListenerTagNames.ACTION_ELEMENT_TAG);
-
- initHashes();
+ init(f_config);
+ ObjectName listObjectName = null ;
+ try
+ {
+ listObjectName = new ObjectName("jboss.esb:" + objectName);
+ }
+ catch (final Exception ex)
+ {
+ logger.error("Unexpected exception creating MBean object name, counter will be unregistered", ex);
+ }
+ this.listObjectName = listObjectName ;
}
/**
@@ -105,7 +115,7 @@
* @param ct config tree
* @return action id
*/
- public String getActionId(ConfigTree ct) {
+ private String getActionId(ConfigTree ct) {
if (ct.getAttribute("name") != null) {
return ct.getAttribute("name");
} else if (ct.getAttribute("action") != null) {
@@ -117,56 +127,63 @@
/**
* Increment the total message count of this service.
*/
- public void incrementTotalCount() {
- serviceCount = new Integer(serviceCount.intValue() + 1);
+ public synchronized void incrementTotalCount() {
+ serviceCount += 1 ;
}
/**
- * Initialize the hashes by setting the counts and the processing time to an initial value of 0.
+ * Initialize the bean.
+ * @param configTree The current configuration.
*/
- public void initHashes() {
- ConfigTree[] actionList = m_config.getChildren(ListenerTagNames.ACTION_ELEMENT_TAG);
+ private void init(final ConfigTree configTree) {
+ ConfigTree[] actionList = configTree.getChildren(ListenerTagNames.ACTION_ELEMENT_TAG);
+ final int numActions = actionList.length ;
+ actionNames = new String[numActions] ;
- for (ConfigTree actionConfig : actionList) {
+ for (int count = 0 ; count < numActions ; count++) {
+ final ConfigTree actionConfig = actionList[count] ;
String actionId = getActionId(actionConfig);
- actionCounterHash.put(actionId + " " + MESSAGE_COUNTER, new Integer(0));
- actionFailedCounterHash.put(actionId + " " + FAILED_MESSAGE_COUNTER, new Integer(0));
- actionProcessTimeHash.put(actionId + " " + PROCESSING_TIME, new Long(0));
- actionBytesFailedHash.put(actionId + " " + BYTES_FAILED, new Integer(0));
- actionBytesProcessedHash.put(actionId + " " + BYTES_PROCESSED, new Integer(0));
- }
+ actionCounterHash.put(actionId + " " + MESSAGE_COUNTER, new IntHolder());
+ actionFailedCounterHash.put(actionId + " " + FAILED_MESSAGE_COUNTER, new IntHolder());
+ actionProcessTimeHash.put(actionId + " " + PROCESSING_TIME, new LongHolder());
+ actionBytesFailedHash.put(actionId + " " + BYTES_FAILED, new LongHolder());
+ actionBytesProcessedHash.put(actionId + " " + BYTES_PROCESSED, new LongHolder());
+ actionNames[count] = actionId ;
+ }
serviceCount = new Integer(0);
- bytesProcessed = new Integer(0);
- bytesFailed = new Integer(0);
+ bytesProcessed = new Long(0);
+ bytesFailed = new Long(0);
+ bytesOverall = new Long(0);
}
/**
* Reset the counters - set all the entries in the action counter hash
* and in the action process time hash to zero.
*/
- public void resetCounter() {
- serviceCount = new Integer(0);
- bytesProcessed = new Integer(0);
- bytesFailed = new Integer(0);
+ public synchronized void resetCounter() {
+ serviceCount = 0 ;
+ bytesProcessed = 0 ;
+ bytesFailed = 0 ;
+ bytesOverall = 0;
for (String key : actionCounterHash.keySet()) {
- actionCounterHash.put(key, new Integer(0));
+ actionCounterHash.put(key, new IntHolder());
}
for (String key : actionFailedCounterHash.keySet()) {
- actionFailedCounterHash.put(key, new Integer(0));
+ actionFailedCounterHash.put(key, new IntHolder());
}
for (String key : actionProcessTimeHash.keySet()) {
- actionProcessTimeHash.put(key, new Long(0));
+ actionProcessTimeHash.put(key, new LongHolder());
}
for (String key : actionBytesFailedHash.keySet()) {
- actionBytesFailedHash.put(key, new Integer(0));
+ actionBytesFailedHash.put(key, new LongHolder());
}
for (String key : actionBytesProcessedHash.keySet()) {
- actionBytesProcessedHash.put(key, new Integer(0));
+ actionBytesProcessedHash.put(key, new LongHolder());
}
}
@@ -176,12 +193,12 @@
* attribute), all of the attributes are read-only, and we provide four
* invocation methods - start/stop/initialise/destroy on the Lifecycle.
*/
- public MBeanInfo getMBeanInfo() {
+ public synchronized MBeanInfo getMBeanInfo() {
int count = actionCounterHash.size() + actionProcessTimeHash.size()
+ actionFailedCounterHash.size() + actionBytesProcessedHash.size()
- + actionBytesFailedHash.size() + 3; // the extra 3 here are overall service count, failed byte size
- // and processed byte size
+ + actionBytesFailedHash.size() + 4; // the extra 4 here are overall service count, failed byte size
+ // processed byte size, and overall bytes
MBeanAttributeInfo[] attrs = new MBeanAttributeInfo[count];
int counter = 0;
@@ -205,13 +222,13 @@
for (String key : actionBytesFailedHash.keySet()) {
attrs[counter] = new MBeanAttributeInfo(
- key, "java.lang.Integer", "Property " + key, true, false, false);
+ key, "java.lang.Long", "Property " + key, true, false, false);
counter++;
}
for (String key : actionBytesProcessedHash.keySet()) {
attrs[counter] = new MBeanAttributeInfo(
- key, "java.lang.Integer", "Property " + key, true, false, false);
+ key, "java.lang.Long", "Property " + key, true, false, false);
counter++;
}
@@ -219,17 +236,22 @@
"Property " + OVERALL_SERVICE_COUNT, true, false, false);
attrs[counter] = overallCount;
counter++;
-
- MBeanAttributeInfo overallBytesProcessed = new MBeanAttributeInfo(OVERALL_BYTES_PROCESSED, "java.lang.Integer",
+
+ MBeanAttributeInfo overallBytesProcessed = new MBeanAttributeInfo(OVERALL_BYTES_PROCESSED, "java.lang.Long",
"Property " + OVERALL_BYTES_PROCESSED, true, false, false);
attrs[counter] = overallBytesProcessed;
counter++;
- MBeanAttributeInfo overallBytesFailed = new MBeanAttributeInfo(OVERALL_BYTES_FAILED, "java.lang.Integer",
+ MBeanAttributeInfo overallBytesFailed = new MBeanAttributeInfo(OVERALL_BYTES_FAILED, "java.lang.Long",
"Property " + OVERALL_BYTES_FAILED, true, false, false);
attrs[counter] = overallBytesFailed;
counter++;
+ MBeanAttributeInfo overallBytes = new MBeanAttributeInfo(OVERALL_BYTES, "java.lang.Long",
+ "Property " + OVERALL_BYTES, true, false, false);
+ attrs[counter] = overallBytes;
+ counter++;
+
MBeanOperationInfo[] opers = {
new MBeanOperationInfo(
RESET_COUNTER, "Reset the counter",
@@ -243,38 +265,35 @@
/* (non-Javadoc)
* @see javax.management.DynamicMBean#getAttribute(java.lang.String)
*/
- public Object getAttribute(String key) throws AttributeNotFoundException, MBeanException, ReflectionException {
+ public synchronized Object getAttribute(String key) throws AttributeNotFoundException, MBeanException, ReflectionException {
if (actionCounterHash.containsKey(key)) {
- Integer value = null;
- value = actionCounterHash.get(key);
- return value;
+ return actionCounterHash.get(key).value;
} else if (actionProcessTimeHash.containsKey(key)) {
- Long processTotal = actionProcessTimeHash.get(key);
+ long processTotal = actionProcessTimeHash.get(key).value;
String actionId = key.substring(0, key.indexOf(PROCESSING_TIME)-1);
- Integer successCount = actionCounterHash.get(actionId + " " + MESSAGE_COUNTER);
+ int successCount = actionCounterHash.get(actionId + " " + MESSAGE_COUNTER).value;
Double value = null;
- if (successCount.intValue() > 0) {
- value = ((double) processTotal / successCount.intValue());
+ if (successCount > 0) {
+ value = ((double) processTotal / successCount);
} else {
value = null;
}
return value;
} else if (actionFailedCounterHash.containsKey(key)) {
- Integer value = actionFailedCounterHash.get(key);
- return value;
+ return actionFailedCounterHash.get(key).value;
} else if (actionBytesFailedHash.containsKey(key)) {
- Integer value = actionBytesFailedHash.get(key);
- return value;
+ return actionBytesFailedHash.get(key).value;
} else if (actionBytesProcessedHash.containsKey(key)) {
- Integer value = actionBytesProcessedHash.get(key);
- return value;
+ return actionBytesProcessedHash.get(key).value;
} else if (OVERALL_SERVICE_COUNT.equals(key)) {
return serviceCount;
} else if (OVERALL_BYTES_PROCESSED.equals(key)) {
return bytesProcessed;
} else if (OVERALL_BYTES_FAILED.equals(key)) {
return bytesFailed;
+ } else if (OVERALL_BYTES.equals(key)) {
+ return bytesOverall;
}
return null;
}
@@ -282,7 +301,7 @@
/* (non-Javadoc)
* @see javax.management.DynamicMBean#getAttributes(java.lang.String[])
*/
- public AttributeList getAttributes(String[] arg0) {
+ public synchronized AttributeList getAttributes(String[] arg0) {
AttributeList attributeList = new AttributeList();
for (String key : actionCounterHash.keySet()) {
Attribute at = new Attribute(key, actionCounterHash.get(key).toString());
@@ -293,12 +312,12 @@
attributeList.add(overallCount);
for (String key : actionProcessTimeHash.keySet()) {
- Long processTotal = actionProcessTimeHash.get(key);
+ long processTotal = actionProcessTimeHash.get(key).value;
String actionId = key.substring(0, key.indexOf(PROCESSING_TIME));
- Integer successCount = actionCounterHash.get(actionId + " " + MESSAGE_COUNTER);
+ int successCount = actionCounterHash.get(actionId + " " + MESSAGE_COUNTER).value;
String avgTime = null;
- if (successCount.intValue() > 0) {
- avgTime = ((double) processTotal / successCount.intValue()) + " ns";
+ if (successCount > 0) {
+ avgTime = ((double) processTotal / successCount) + " ns";
}
Attribute at = new Attribute(key, avgTime);
attributeList.add(at);
@@ -351,6 +370,9 @@
* Register this MBean with JBoss.
*/
protected void registerMBean() {
+ if (listObjectName == null) {
+ return ;
+ }
MBeanServer mbeanServer = null;
try {
mbeanServer = MBeanServerLocator.locateJBoss();
@@ -360,83 +382,96 @@
return;
}
- ObjectName listObjectName = getObjectName();
-
- if (mbeanServer.isRegistered(listObjectName)) {
- try {
- mbeanServer.unregisterMBean(listObjectName);
- } catch (InstanceNotFoundException e) {
- e.printStackTrace();
- } catch (MBeanRegistrationException e) {
- e.printStackTrace();
- }
- }
-
- try {
- mbeanServer.registerMBean(this, listObjectName);
+ try {
+ mbeanServer.registerMBean(this, listObjectName);
} catch (InstanceAlreadyExistsException e) {
- e.printStackTrace();
+ logger.warn("", e);
} catch (MBeanRegistrationException e) {
- e.printStackTrace();
+ logger.warn("", e);
} catch (NotCompliantMBeanException e) {
- e.printStackTrace();
+ logger.warn("", e);
}
}
/**
+ * Unregister this MBean with JBoss.
+ */
+ protected void unregisterMBean() {
+ if (listObjectName == null) {
+ return ;
+ }
+ MBeanServer mbeanServer = null;
+ try {
+ mbeanServer = MBeanServerLocator.locateJBoss();
+ } catch (IllegalStateException ise) {
+ // If we can't find a JBoss MBeanServer, just return
+ // Needed for unit tests
+ return;
+ }
+
+ try {
+ mbeanServer.unregisterMBean(listObjectName);
+ } catch (InstanceNotFoundException e) {
+ logger.warn("", e);
+ } catch (MBeanRegistrationException e) {
+ logger.warn("", e);
+ }
+ }
+
+ /**
* Update the ServiceMessageCounter
* @param asb ActionStatusBean
*/
- public void update(ActionStatusBean asb) {
- String actionName = getActionId(actionArray[asb.getProcCount()]);
+ public synchronized void update(ActionStatusBean asb) {
+ String actionName = actionNames[asb.getProcCount()];
if (ActionStatusBean.ACTION_SENT.equals(asb.getStatus())) {
- Integer count = actionCounterHash.get(actionName + " " + MESSAGE_COUNTER);
- count = count.intValue() + 1;
- actionCounterHash.put(actionName + " " + MESSAGE_COUNTER, count);
- Long time = actionProcessTimeHash.get(actionName + " " + PROCESSING_TIME);
- time = time.longValue() + asb.getProcTime();
- actionProcessTimeHash.put(actionName + " " + PROCESSING_TIME, time);
- Integer bProcessed = actionBytesProcessedHash.get(actionName + " " + BYTES_PROCESSED);
- bProcessed = bProcessed.intValue() + asb.getBytesProcessed();
- actionBytesProcessedHash.put(actionName + " " + BYTES_PROCESSED, bProcessed);
- bytesProcessed += asb.getBytesProcessed();
+ IntHolder count = actionCounterHash.get(actionName + " " + MESSAGE_COUNTER);
+ count.value++ ;
+ LongHolder time = actionProcessTimeHash.get(actionName + " " + PROCESSING_TIME);
+ time.value += asb.getProcTime();
+ LongHolder bProcessed = actionBytesProcessedHash.get(actionName + " " + BYTES_PROCESSED);
+ bProcessed.value += asb.getBytesProcessed();
+
+ if (asb.getProcCount() == (actionNames.length-1)) {
+ bytesProcessed += asb.getBytesProcessed();
+ }
} else if (ActionStatusBean.ACTION_FAILED.equals(asb.getStatus())) {
- Integer count = actionFailedCounterHash.get(actionName + " " + FAILED_MESSAGE_COUNTER);
- count = count.intValue() + 1;
- actionFailedCounterHash.put(actionName + " " + FAILED_MESSAGE_COUNTER, count);
+ IntHolder count = actionFailedCounterHash.get(actionName + " " + FAILED_MESSAGE_COUNTER);
+ count.value++ ;
+ LongHolder time = actionProcessTimeHash.get(actionName + " " + PROCESSING_TIME);
+ time.value += asb.getProcTime();
+ LongHolder bFailed = actionBytesFailedHash.get(actionName + " " + BYTES_FAILED);
+ bFailed.value += asb.getBytesProcessed();
bytesFailed += asb.getBytesProcessed();
- Integer bFailed = actionBytesFailedHash.get(actionName + " " + BYTES_FAILED);
- bFailed = bFailed.intValue() + asb.getBytesProcessed();
- actionBytesProcessedHash.put(actionName + " " + BYTES_FAILED, bFailed);
- }
+ }
+
+ if (asb.getProcCount() == 0) {
+ bytesOverall += asb.getBytesProcessed();
+ }
}
protected ObjectName getObjectName()
{
- ObjectName listObjectName = null;
- try {
- String deploymentName = m_config.getParent().getAttribute(ListenerTagNames.DEPLOYMENT_NAME_TAG);
- String serviceName = m_config.getAttribute(ListenerTagNames.SERVICE_NAME_TAG);
-
- StringBuffer objectName = new StringBuffer("category=MessageCounter");
- if (deploymentName != null) {
- objectName.append(",").append(ListenerTagNames.DEPLOYMENT_NAME_TAG).append("=").append(deploymentName);
- }
-
- if (serviceName != null) {
- if (objectName.length() > 0) {
- objectName.append(",");
- }
- objectName.append(ListenerTagNames.SERVICE_NAME_TAG).append("=").append(serviceName);
- }
-
- listObjectName = new ObjectName("jboss.esb:" + objectName.toString());
- } catch (MalformedObjectNameException e1) {
- e1.printStackTrace();
- } catch (NullPointerException e1) {
- e1.printStackTrace();
- }
return listObjectName;
}
+
+ // Very basic holder classes
+ private static final class IntHolder
+ {
+ int value ;
+ @Override
+ public String toString() {
+ return Integer.toString(value);
+ }
+ }
+
+ private static final class LongHolder
+ {
+ long value ;
+ @Override
+ public String toString() {
+ return Long.toString(value);
+ }
+ }
}
Copied: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/message/ServiceMessageCounterLifecycleResource.java (from rev 24846, labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/listeners/message/ServiceMessageCounterLifecycleResource.java)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/message/ServiceMessageCounterLifecycleResource.java (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/message/ServiceMessageCounterLifecycleResource.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -0,0 +1,167 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+
+package org.jboss.soa.esb.listeners.message;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import org.apache.log4j.Logger;
+import org.jboss.soa.esb.helpers.ConfigTree;
+import org.jboss.soa.esb.lifecycle.LifecyclePriorities;
+import org.jboss.soa.esb.lifecycle.LifecycleResource;
+import org.jboss.soa.esb.lifecycle.LifecycleResourceException;
+import org.jboss.soa.esb.lifecycle.LifecycleResourceFactory;
+import org.jboss.soa.esb.lifecycle.LifecycleResourceManager;
+import org.jboss.soa.esb.listeners.ListenerTagNames;
+
+/**
+ */
+public class ServiceMessageCounterLifecycleResource
+{
+ /**
+ * The lifecycle resource factory for service message counters.
+ */
+ private static final LifecycleResourceFactory<Map<String, ServiceMessageCounter>> lifecycleServiceMessageCounterFactory = new LifecycleServiceMessageCounterFactory();
+ /**
+ * The lifecycle resources for service message counters.
+ */
+ private static final LifecycleResource<Map<String, ServiceMessageCounter>> lifecycleServiceMessageCounters =
+ new LifecycleResource<Map<String, ServiceMessageCounter>>(lifecycleServiceMessageCounterFactory, LifecyclePriorities.SERVICE_MESSAGE_COUNTER_PRIORITY);
+
+ /**
+ * The logger for the service message counter lifecycle resource.
+ */
+ private static final Logger LOGGER = Logger.getLogger(ServiceMessageCounterLifecycleResource.class) ;
+
+ /**
+ * Get the service message counter for the specified config tree.
+ * @param configTree The configTree
+ * @return The service message counter.
+ * throws LifecycleResourceException for errors accessing the lifecycle context.
+ */
+ public static ServiceMessageCounter getServiceMessageCounter(final ConfigTree configTree)
+ throws LifecycleResourceException
+ {
+ final String objectName = getObjectName(configTree) ;
+ final Map<String, ServiceMessageCounter> contextCounters = lifecycleServiceMessageCounters.getLifecycleResource() ;
+
+ synchronized(contextCounters)
+ {
+ final ServiceMessageCounter serviceMessageCounter = contextCounters.get(objectName) ;
+ if (serviceMessageCounter != null)
+ {
+ return serviceMessageCounter ;
+ }
+ final ServiceMessageCounter newServiceMessageCounter = new ServiceMessageCounter(configTree, objectName) ;
+ newServiceMessageCounter.registerMBean() ;
+ contextCounters.put(objectName, newServiceMessageCounter) ;
+ return newServiceMessageCounter ;
+ }
+ }
+
+ /**
+ * Create the object name associated with the configuration.
+ * @param configTree The current configuration.
+ * @return The object name.
+ */
+ private static String getObjectName(final ConfigTree configTree)
+ {
+ final String categoryName = configTree.getAttribute(ListenerTagNames.SERVICE_CATEGORY_NAME_TAG);
+ final String serviceName = configTree.getAttribute(ListenerTagNames.SERVICE_NAME_TAG);
+ final String targetCategoryName = configTree.getAttribute(ListenerTagNames.TARGET_SERVICE_CATEGORY_TAG);
+ final String targetServiceName = configTree.getAttribute(ListenerTagNames.TARGET_SERVICE_NAME_TAG);
+ final LifecycleResourceManager lifecycleResourceManager = LifecycleResourceManager.getSingleton() ;
+ final String[] associatedDeployments = lifecycleResourceManager.getAssociatedDeployments() ;
+ final String deployment ;
+ if ((associatedDeployments != null) && (associatedDeployments.length == 1))
+ {
+ deployment = associatedDeployments[0] ;
+ }
+ else
+ {
+ deployment = lifecycleResourceManager.getIdentity() ;
+ }
+
+ final StringBuffer objectName = new StringBuffer("category=MessageCounter");
+ append(objectName, "deployment", deployment) ;
+ append(objectName, ListenerTagNames.SERVICE_CATEGORY_NAME_TAG, categoryName) ;
+ append(objectName, ListenerTagNames.SERVICE_NAME_TAG, serviceName);
+ append(objectName, ListenerTagNames.TARGET_SERVICE_CATEGORY_TAG, targetCategoryName);
+ append(objectName, ListenerTagNames.TARGET_SERVICE_NAME_TAG, targetServiceName);
+
+ return objectName.toString();
+ }
+
+ /**
+ * Append the name/value to the object name.
+ * @param objectName The current object name.
+ * @param name The property name.
+ * @param value The property value.
+ */
+ private static void append(final StringBuffer objectName, final String name, final String value)
+ {
+ if ((value != null) && (value.length() > 0)) {
+ objectName.append(",").append(name).append("=").append(value) ;
+ }
+ }
+
+ /**
+ * The lifecycle resource factory
+ * @author kevin
+ */
+ private static class LifecycleServiceMessageCounterFactory implements LifecycleResourceFactory<Map<String, ServiceMessageCounter>>
+ {
+ /**
+ * Create a resource object which will be associated with the specified lifecycle identity.
+ * @param lifecycleIdentity The associated lifecycle identity.
+ * @return The lifecycle resource
+ * @throws LifecycleResourceException for errors during construction.
+ */
+ public Map<String, ServiceMessageCounter> createLifecycleResource(final String lifecycleIdentity)
+ throws LifecycleResourceException
+ {
+ return new HashMap<String, ServiceMessageCounter>() ;
+ }
+
+ /**
+ * Destroy a resource object which is associated with the specified lifecycle identity.
+ * @param resource The lifecycle resource.
+ * @param lifecycleIdentity The associated lifecycle identity.
+ * @return The lifecycle resource.
+ * @throws LifecycleResourceException for errors during destroy.
+ */
+ public void destroyLifecycleResource(final Map<String, ServiceMessageCounter> resource,
+ final String lifecycleIdentity)
+ throws LifecycleResourceException
+ {
+ if (resource.size() > 0)
+ {
+ LOGGER.warn("Calling cleanup on existing service message counters for identity " + lifecycleIdentity) ;
+ for (final ServiceMessageCounter counter: resource.values())
+ {
+ counter.unregisterMBean() ;
+ }
+ }
+ }
+ }
+}
Modified: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/message/errors/Factory.java
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/message/errors/Factory.java 2009-01-21 14:47:17 UTC (rev 24849)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/message/errors/Factory.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -36,6 +36,7 @@
public static final String PROCESSING_ERROR = "urn:action/error/actionprocessingerror";
public static final String UNEXPECTED_ERROR = "urn:action/error/unexpectederror";
public static final String NOT_ENABLED = "urn:action/error/disabled";
+ public static final String VALIDATION_FAILURE = "urn:action/error/validationFailure" ;
public static void createExceptionFromFault (Message msg) throws FaultMessageException
{
Copied: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/message/ByReferenceMessage.java (from rev 24846, labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/message/ByReferenceMessage.java)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/message/ByReferenceMessage.java (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/message/ByReferenceMessage.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -0,0 +1,41 @@
+package org.jboss.soa.esb.message;
+
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and others contributors as indicated
+ * by the @authors tag. All rights reserved.
+ * See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License, v. 2.1.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+ * PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
+ * You should have received a copy of the GNU Lesser General Public License,
+ * v.2.1 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301, USA.
+ *
+ * (C) 2005-2006,
+ * @author mark.little at jboss.com
+ */
+
+
+/**
+ * This interface extends the generic Message interface to provide a mechanism
+ * whereby implementations can take control over pass by value messaging.
+ * The implementation will be provided with an opportunity to create the
+ * reference message.
+ *
+ * @author <a href='mailto:kevin.conner at jboss.com'>Kevin Conner</a>
+ */
+
+public interface ByReferenceMessage extends Message
+{
+ /**
+ * Create the message used for pass by reference semantics.
+ * @return the referencable message.
+ */
+ public Message reference() ;
+}
Modified: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/message/Context.java
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/message/Context.java 2009-01-21 14:47:17 UTC (rev 24849)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/message/Context.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -1,5 +1,7 @@
package org.jboss.soa.esb.message;
+import java.util.Set;
+
/*
* JBoss, Home of Professional Open Source
* Copyright 2006, JBoss Inc., and others contributors as indicated
@@ -25,9 +27,42 @@
* The context is the section of the message containing information such as session
* management, transaction information, security data etc. Entries in the context
* may be ordered.
+ *
+ * This section should never be passed by reference.
*/
public interface Context
{
- // TODO add some methods!
+ /**
+ * Set the context value, replacing existing value if present.
+ * @param key The context key.
+ * @param value The context value.
+ * @return the previous value of the context or null if not set.
+ */
+ public Object setContext(final String key, final Object value) ;
+
+ /**
+ * Retrieves the context value.
+ * @param key The context key.
+ * @return The value or null if not present.
+ */
+ public Object getContext(final String key) ;
+
+ /**
+ * Remove the context value.
+ * @param key The context key.
+ * @return The value of the context, or null if not present.
+ */
+ public Object removeContext(final String key) ;
+
+ /**
+ * Get the keys in the context.
+ * @return the context keys.
+ */
+ public Set<String> getContextKeys() ;
+
+ /**
+ * Clear the context.
+ */
+ public void clearContext() ;
}
\ No newline at end of file
Modified: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/message/Fault.java
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/message/Fault.java 2009-01-21 14:47:17 UTC (rev 24849)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/message/Fault.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -32,6 +32,10 @@
public interface Fault
{
public static final String THROWABLE_CONTENT = "org.jboss.soa.esb.message.fault.throwable";
+ public static final String DETAIL_CODE_CONTENT = "org.jboss.soa.esb.message.fault.detail.code";
+ public static final String DETAIL_DESCRIPTION_CONTENT = "org.jboss.soa.esb.message.fault.detail.description";
+ public static final String DETAIL_DETAIL_CONTENT = "org.jboss.soa.esb.message.fault.detail.detail";
+
/**
* @return the unique code representing this fault.
Modified: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/notification/NotifyEmail.java
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/notification/NotifyEmail.java 2009-01-21 14:47:17 UTC (rev 24849)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/notification/NotifyEmail.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -30,19 +30,46 @@
import javax.mail.internet.InternetAddress;
import org.jboss.soa.esb.ConfigurationException;
+import org.jboss.soa.esb.common.Configuration;
import org.jboss.soa.esb.helpers.ConfigTree;
import org.jboss.soa.esb.helpers.Email;
import org.jboss.soa.esb.listeners.message.MessageDeliverException;
import org.jboss.soa.esb.message.Message;
import org.jboss.soa.esb.message.MessagePayloadProxy;
+import org.jboss.soa.esb.message.Properties;
import org.jboss.soa.esb.message.body.content.BytesBody;
import org.jboss.soa.esb.util.Util;
/**
- * This class will send an e-mail using the Email class
+ * This class will send an e-mail using the Email class.
* <p>
- * Description:
+ * Example configuration:
* </p>
+ * <pre>{@code
+ * <target class="NotifyEmail"
+ * host=âlocalhostâ
+ * port=â8801"
+ * username=âsmtpUsername"
+ * password=âsmtpPassword"
+ * auth=âtrue"
+ * from=âperson at somewhere.comâ
+ * sendTo=âperson at elsewhere.comâ
+ * subject=âtheSubjectâ>
+ * msgAttachmentName=âtheSubjectâ>
+ * <attachment>attachThisFile.txt</attachment>
+ * </target>
+ * }</pre>
+ * <lu>
+ * <li>{@code host} The host name of the SMTP server. If not specified will default to the property 'org.jboss.soa.esb.mail.smtp.host' in jbossesb-properties.xml. </li>
+ * <li>{@code port} The port for the SMTP server. If not specified will default to the property 'org.jboss.soa.esb.mail.smtp.port' in jbossesb-properties.xml.</li>
+ * <li>{@code username} The username for the SMTP server. If not specified will default to the property 'org.jboss.soa.esb.mail.smtp.user' in jbossesb-properties.xml.</li>
+ * <li>{@code password} The password for the above username on the SMTP server. If not specified will default to the property 'org.jboss.soa.esb.mail.smtp.password' in jbossesb-properties.xml </li>
+ * <li>{@code username} The username for the SMTP server. If not specified will default to the property 'org.jboss.soa.esb.mail.smtp.user' in jbossesb-properties.xml </li>
+ * <li>{@code auth} If true will attempt to authenticate the user using the AUTH command. If not specified will default to the property 'org.jboss.soa.esb.mail.smtp.auth' in jbossesb-properties.xml </li>
+ * <li>{@code msgAttachmentName} filename of an attachment containing the message payload (optional). If not specified the message payload will be included in the message body.</li>
+ * </lu>
+ * Note that all of the properties except attachments can be specified jboss-esb.xml can be overridden by specifying the same properties on the ESB Message object instance
+ * passed to this classes sendNotification method.
* <p>
* Author: Heuristica - Buenos Aires - Argentina
* </p>
@@ -99,7 +126,7 @@
* Object - This object's toString() method will supply contents
* of mail message
*/
- public void sendNotification (Message message) throws NotificationException
+ public void sendNotification (final Message message) throws NotificationException
{
try
{
@@ -115,24 +142,29 @@
payloadBytes = content.getBytes();
}
- ConfigTree oP = m_oParms.cloneObj();
- String sMsg = oP.getAttribute(Email.MESSAGE);
- sMsg = ((null == sMsg) ? content : (sMsg + "\n" + content));
- oP.setAttribute(Email.MESSAGE, sMsg);
- sendEmailNotification(oP, payloadBytes);
- } catch (MessageDeliverException e) {
+ ConfigTree configTree = m_oParms.cloneObj();
+ String sMsg = configTree.getAttribute(Email.MESSAGE);
+ sMsg = ((null == sMsg) ? content : (sMsg + "\n" + content));
+ configTree.setAttribute(Email.MESSAGE, sMsg);
+
+ overrideSmtpProperties(message, configTree);
+
+ sendEmailNotification(configTree, payloadBytes);
+ }
+ catch (final MessageDeliverException e) {
throw new NotificationException(e);
}
- catch (AddressException e)
+ catch (final AddressException e)
{
Util.getDefaultLogger(this.getClass()).error("Send Mail Failed", e);
throw new NotificationException(e);
}
- catch (MessagingException ex)
+ catch (final MessagingException ex)
{
throw new NotificationException(ex);
- } catch (IOException e) {
+ }
+ catch (final IOException e) {
Util.getDefaultLogger(this.getClass()).error("Send Mail Failed", e);
throw new NotificationException(e);
@@ -140,6 +172,36 @@
} // __________________________________
/**
+ * Allows smtp overrides by setting properties on the passed-in message. This could be
+ * populated by a previsous action in an action pipline.
+ * @param message The ESB Message object that contains the overrides in its properties.
+ * @param configTree The configTree the properties on the ESB Message object will override.
+ */
+ protected void overrideSmtpProperties(final Message message, final ConfigTree configTree)
+ {
+ final Properties properties = message.getProperties();
+ override(Email.HOST, properties, configTree);
+ override(Email.PORT, properties, configTree);
+ override(Email.USERNAME, properties, configTree);
+ override(Email.PASSWORD, properties, configTree);
+ override(Email.AUTH, properties, configTree);
+ override(Email.FROM, properties, configTree);
+ override(Email.SENDTO, properties, configTree);
+ override(Email.COPYTO, properties, configTree);
+ override(Email.SUBJECT, properties, configTree);
+ override(MESSAGE_ATTACHMENT_NAME, properties, configTree);
+ }
+
+ private void override(final String key, final Properties properties, final ConfigTree configTree)
+ {
+ final String value = (String) properties.getProperty(key);
+ if (value != null)
+ {
+ configTree.setAttribute(key, value);
+ }
+ }
+
+ /**
* Send an email notification based on the supplied parameters. <p/> This
* method allows overriding for test purposes.
*
@@ -148,11 +210,9 @@
* @param message
* @throws IOException
*/
- protected void sendEmailNotification (ConfigTree messageParams, byte[] msgPayload)
- throws AddressException, MessagingException, IOException
+ protected void sendEmailNotification (ConfigTree messageParams, byte[] msgPayload) throws AddressException, MessagingException, IOException
{
-
- Email esbMail = new Email();
+ Email esbMail = createEmailInstance(messageParams);
esbMail.setSendTo(messageParams.getAttribute(Email.SENDTO));
esbMail.setFrom(messageParams.getAttribute(Email.FROM));
esbMail.setCopyTo(messageParams.getAttribute(Email.COPYTO));
@@ -164,9 +224,42 @@
} else {
esbMail.setMessage(messageParams.getAttribute(Email.MESSAGE));
}
-
esbMail.sendMessage();
}
+
+ /**
+ * Creates a new {@link Email} instance using the properties specified in the
+ * passed-in {@link ConfigTree}.
+ *
+ * @param configTree The {@link ConfigTree} containing the SMTP properties uses to create the Email instance.
+ * @return Email The newly created {@link Email} instance.
+ * @throws AddressException
+ * @throws MessagingException
+ */
+ private Email createEmailInstance(final ConfigTree configTree) throws AddressException, MessagingException
+ {
+ String portStr = configTree.getAttribute(Email.PORT);
+ if (portStr == null)
+ {
+ portStr = Configuration.getSmtpPort();
+ }
+ int port;
+ try
+ {
+ port = Integer.parseInt(portStr);
+ }
+ catch(final NumberFormatException e)
+ {
+ throw new MessagingException("Could not parse port '" + portStr + "'");
+ }
+
+ String host = configTree.getAttribute(Email.HOST, Configuration.getSmtpHost());
+ String username = configTree.getAttribute(Email.USERNAME, Configuration.getSmtpUsername());
+ String password = configTree.getAttribute(Email.PASSWORD,Configuration.getSmtpPassword());
+ boolean auth = configTree.getBooleanAttribute(Email.AUTH, false);
+
+ return new Email(host, port, username, password, auth);
+ }
} // ____________________________________________________________________________
Modified: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/notification/NotifySqlTable.java
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/notification/NotifySqlTable.java 2009-01-21 14:47:17 UTC (rev 24849)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/notification/NotifySqlTable.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -166,7 +166,8 @@
{
oConn = createJdbcCleanConnection();
ps = oConn.prepareStatement(getInsertStmt());
- oConn.execUpdWait(ps, 3);
+ oConn.execUpdWait(ps, 3); // TODO the executeUpdate routine doesn't check return code, which could mask a problem https://jira.jboss.org/jira/browse/SOA-642
+ // TODO the executeUpdate routine doesn't check return code, which could mask a problem https://jira.jboss.org/jira/browse/SOA-642
oConn.commit();
}
catch( SQLException e)
Modified: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/schedule/ScheduleProvider.java
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/schedule/ScheduleProvider.java 2009-01-21 14:47:17 UTC (rev 24849)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/schedule/ScheduleProvider.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -28,9 +28,10 @@
import java.io.IOException;
import java.io.InputStream;
import java.text.ParseException;
-import java.util.ArrayList;
import java.util.Date;
+import java.util.HashMap;
import java.util.List;
+import java.util.Map;
import java.util.Properties;
/**
@@ -40,6 +41,7 @@
*
* @author <a href="daniel.bevenius at redpill.se">Daniel Bevenius</a>
* @author <a href="mailto:tom.fennelly at jboss.com">tom.fennelly at jboss.com</a>
+ * @deprecated {@link ScheduleResource}
*/
public class ScheduleProvider {
@@ -47,8 +49,9 @@
/* Quartz scheduler instance */
private Scheduler scheduler;
- private List<String> scheduledJobs = new ArrayList<String>();
+ private Map<JobDetail, Trigger> scheduledJobs = new HashMap<JobDetail, Trigger>();
private List<Schedule> schedules;
+ private boolean active ;
private final ClassLoader tcc ;
private static final String JBOSS_ESB = "JBossESB";
@@ -70,6 +73,7 @@
} else {
scheduler = new StdSchedulerFactory().getScheduler();
}
+ scheduler.start() ;
tcc = Thread.currentThread().getContextClassLoader() ;
} catch (SchedulerException e) {
throw new ConfigurationException("Unable to create Scheduler instance.", e);
@@ -136,27 +140,32 @@
private static volatile int nameDelta = 1;
private void addListener(ScheduledEventListener listener, Trigger trigger) throws SchedulingException {
+ final int id ;
synchronized (ScheduleProvider.class) {
- JobDataMap jobDataMap = new JobDataMap();
- JobDetail jobDetail;
+ id = nameDelta++ ;
+ }
+ JobDataMap jobDataMap = new JobDataMap();
+ JobDetail jobDetail;
- String name = trigger.getName();
+ String name = trigger.getName();
- // this is just to make sure they're unique - i.e. so as 1+
- // "things" can listen to the same schedule...
- // This is not thread safe!
- name += ("-" + nameDelta++);
- trigger.setName(name);
+ name += "-" + id;
+ trigger.setName(name);
- jobDetail = new JobDetail(name, JBOSS_ESB, ScheduleProvider.ESBScheduledJob.class);
- jobDataMap.put(ScheduledEventListener.class.getName(), listener);
- jobDataMap.put(ClassLoader.class.getName(), tcc);
- jobDetail.setJobDataMap(jobDataMap);
- try {
- scheduler.scheduleJob(jobDetail, trigger);
- scheduledJobs.add(name);
- } catch (SchedulerException e) {
- throw new SchedulingException("Failed to schedule job.", e);
+ jobDetail = new JobDetail(name, JBOSS_ESB, ScheduleProvider.ESBScheduledJob.class);
+ jobDataMap.put(ScheduledEventListener.class.getName(), listener);
+ jobDataMap.put(ClassLoader.class.getName(), tcc);
+ jobDetail.setJobDataMap(jobDataMap);
+ synchronized(this)
+ {
+ scheduledJobs.put(jobDetail, trigger);
+ if (active)
+ {
+ try {
+ scheduler.scheduleJob(jobDetail, trigger);
+ } catch (SchedulerException e) {
+ throw new SchedulingException("Failed to schedule job.", e);
+ }
}
}
}
@@ -175,42 +184,36 @@
* Start the scheduler.
* @throws SchedulingException Start failed.
*/
- public void start() throws SchedulingException {
- try {
- scheduler.start();
- } catch (SchedulerException e) {
- throw new SchedulingException("Failed to start scheduling.", e);
+ public synchronized void start() throws SchedulingException {
+ if (!active) {
+ try {
+ for (Map.Entry<JobDetail, Trigger> entry: scheduledJobs.entrySet()) {
+ scheduler.scheduleJob(entry.getKey(), entry.getValue());
+ }
+ } catch (SchedulerException e) {
+ throw new SchedulingException("Failed to start scheduling.", e);
+ }
+ active = true ;
}
}
/**
- * Standby the scheduler.
- * <p/>
- * Restart the scheduler through the {@link #start()} method.
- *
- * @throws SchedulingException Standby failed.
- */
- public void standby() throws SchedulingException {
- try {
- scheduler.standby();
- } catch (SchedulerException e) {
- throw new SchedulingException("Failed to standby scheduling.", e);
- }
- }
-
- /**
* Stop the scheduler.
* @throws SchedulingException Stop failed.
*/
- public void stop() throws SchedulingException {
- try {
- for(String jobName : scheduledJobs) {
- if(!scheduler.deleteJob(jobName, JBOSS_ESB)) {
- logger.info("Failed to delete scheduled Job '" + jobName + "' from job group '" + JBOSS_ESB + "'. Job run may have already completed.");
+ public synchronized void stop() throws SchedulingException {
+ if (active) {
+ try {
+ for(Trigger trigger: scheduledJobs.values()) {
+ final String jobName = trigger.getName() ;
+ if(!scheduler.deleteJob(jobName, JBOSS_ESB)) {
+ logger.info("Failed to delete scheduled Job '" + jobName + "' from job group '" + JBOSS_ESB + "'. Job run may have already completed.");
+ }
}
+ } catch (SchedulerException e) {
+ throw new SchedulingException("Failed to shutdown scheduling.", e);
}
- } catch (SchedulerException e) {
- throw new SchedulingException("Failed to shutdown scheduling.", e);
+ active = false ;
}
}
Copied: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/schedule/SchedulerJob.java (from rev 24846, labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/schedule/SchedulerJob.java)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/schedule/SchedulerJob.java (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/schedule/SchedulerJob.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -0,0 +1,309 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and others contributors as indicated
+ * by the @authors tag. All rights reserved.
+ * See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License, v. 2.1.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+ * PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
+ * You should have received a copy of the GNU Lesser General Public License,
+ * v.2.1 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301, USA.
+ *
+ * (C) 2005-2006, JBoss Inc.
+ */
+package org.jboss.soa.esb.schedule;
+
+import java.text.ParseException;
+import java.util.Date;
+import java.util.Properties;
+
+import org.apache.log4j.Logger;
+import org.quartz.CronTrigger;
+import org.quartz.JobDataMap;
+import org.quartz.JobDetail;
+import org.quartz.JobExecutionContext;
+import org.quartz.JobExecutionException;
+import org.quartz.SimpleTrigger;
+import org.quartz.StatefulJob;
+import org.quartz.Trigger;
+
+/**
+ * Scheduler job tied to the lifecycle.
+ */
+public class SchedulerJob
+{
+ /**
+ * The logger for this class.
+ */
+ private static Logger LOGGER = Logger.getLogger(SchedulerJob.class);
+
+ /**
+ * The job group used by scheduled jobs.
+ */
+ private static final String JOB_GROUP = "ESBScheduler" ;
+
+ /**
+ * The base job name used by scheduled jobs.
+ */
+ private static final String JOB_NAME = "ESBJob" ;
+
+ /**
+ * The job counter.
+ */
+ private static long jobCounter ;
+
+ /**
+ * The name associated with this scheduler.
+ */
+ private final String name ;
+ /**
+ * The job details.
+ */
+ private final JobDetail jobDetail ;
+ /**
+ * The trigger associated with this job.
+ */
+ private final Trigger trigger ;
+ /**
+ * The scheduler properties.
+ */
+ private final Properties properties ;
+
+ /**
+ * Construct the job with the specified listener, trigger and properties.
+ * @param listener The job listener.
+ * @param trigger The associated trigger.
+ * @param properties Scheduler properties.
+ */
+ private SchedulerJob(final String name, final SchedulerJobListener listener,
+ final Trigger trigger, final Properties properties)
+ {
+ this.name = name ;
+ this.jobDetail = new JobDetail(trigger.getName(), JOB_GROUP, ESBScheduledJob.class) ;
+
+ final JobDataMap jobDataMap = new JobDataMap() ;
+ jobDataMap.put(SchedulerJobListener.class.getName(), listener) ;
+ jobDataMap.put(ClassLoader.class.getName(), Thread.currentThread().getContextClassLoader()) ;
+ jobDetail.setJobDataMap(jobDataMap) ;
+
+ this.trigger = trigger ;
+ this.properties = properties ;
+ }
+
+ /**
+ * Start or resume the operation of the trigger.
+ * @throws SchedulingException for errors during the operation.
+ */
+ public void start()
+ throws SchedulingException
+ {
+ if (LOGGER.isDebugEnabled())
+ {
+ LOGGER.debug("Starting SchedulerJob " + getName()) ;
+ }
+ SchedulerResource.getSchedulerResource().start(trigger, jobDetail, properties) ;
+ }
+
+ /**
+ * Pause the operation of the trigger.
+ * @throws SchedulingException for errors during the operation.
+ */
+ public void pause()
+ throws SchedulingException
+ {
+ if (LOGGER.isDebugEnabled())
+ {
+ LOGGER.debug("Pausing SchedulerJob " + getName()) ;
+ }
+ SchedulerResource.getSchedulerResource().pause(trigger) ;
+ }
+
+ /**
+ * Destroy the trigger.
+ * @throws SchedulingException for errors during the operation.
+ */
+ public void destroy()
+ throws SchedulingException
+ {
+ if (LOGGER.isDebugEnabled())
+ {
+ LOGGER.debug("Destroying SchedulerJob " + getName()) ;
+ }
+ SchedulerResource.getSchedulerResource().destroy(trigger) ;
+ }
+
+ /**
+ * Get a name associated with this schedule.
+ * @return a name for this schedule.
+ */
+ private String getName()
+ {
+ if (name != null)
+ {
+ return name + '/' + trigger.getName();
+ }
+ else
+ {
+ return trigger.getName() ;
+ }
+ }
+
+ /**
+ * Create a job based on an interval.
+ * @param name The name for the job.
+ * @param listener The listener to fire on schedule.
+ * @param interval The specified interval.
+ * @param properties Any scheduler properties that may be required.
+ * @return The Scheduler Job managing the schedule.
+ */
+ public static SchedulerJob createIntervalSchedulerJob(final String name, final SchedulerJobListener listener,
+ final long interval, final Properties properties)
+ {
+ final SimpleTrigger trigger = new SimpleTrigger(getJobName(), JOB_GROUP, SimpleTrigger.REPEAT_INDEFINITELY, interval) ;
+ trigger.setMisfireInstruction(SimpleTrigger.MISFIRE_INSTRUCTION_RESCHEDULE_NOW_WITH_EXISTING_REPEAT_COUNT) ;
+ return new SchedulerJob(name, listener, trigger, properties) ;
+ }
+
+ /**
+ * Create a job based on an interval.
+ * @param name The name for the job.
+ * @param listener The listener to fire on schedule.
+ * @param interval The specified interval.
+ * @param startDate The start date of the trigger or null if not constrained.
+ * @param endDate The end date of the trigger or null if not constrained.
+ * @param properties Any scheduler properties that may be required.
+ * @return The Scheduler Job managing the schedule.
+ */
+ public static SchedulerJob createIntervalSchedulerJob(final String name, final SchedulerJobListener listener,
+ final long interval, final Date startDate, final Date endDate, final Properties properties)
+ {
+ final SimpleTrigger trigger = new SimpleTrigger(getJobName(), JOB_GROUP, SimpleTrigger.REPEAT_INDEFINITELY, interval) ;
+ trigger.setMisfireInstruction(SimpleTrigger.MISFIRE_INSTRUCTION_RESCHEDULE_NOW_WITH_EXISTING_REPEAT_COUNT) ;
+ if (startDate != null)
+ {
+ trigger.setStartTime(startDate) ;
+ }
+ if (endDate != null)
+ {
+ trigger.setEndTime(endDate) ;
+ }
+ return new SchedulerJob(name, listener, trigger, properties) ;
+ }
+
+ /**
+ * Create a job based on an interval.
+ * @param name The name for the job.
+ * @param listener The listener to fire on schedule.
+ * @param interval The specified interval.
+ * #param execCount The execution count.
+ * @param startDate The start date of the trigger or null if not constrained.
+ * @param endDate The end date of the trigger or null if not constrained.
+ * @param properties Any scheduler properties that may be required.
+ * @return The Scheduler Job managing the schedule.
+ */
+ public static SchedulerJob createIntervalSchedulerJob(final String name, final SchedulerJobListener listener,
+ final long interval, final int execCount, final Date startDate, final Date endDate, final Properties properties)
+ {
+ final SimpleTrigger trigger = new SimpleTrigger(getJobName(), JOB_GROUP, execCount-1, interval) ;
+ trigger.setMisfireInstruction(SimpleTrigger.MISFIRE_INSTRUCTION_RESCHEDULE_NOW_WITH_EXISTING_REPEAT_COUNT) ;
+ if (startDate != null)
+ {
+ trigger.setStartTime(startDate) ;
+ }
+ if (endDate != null)
+ {
+ trigger.setEndTime(endDate) ;
+ }
+ return new SchedulerJob(name, listener, trigger, properties) ;
+ }
+
+ /**
+ * Create a job based on cron.
+ * @param name The name for the job.
+ * @param listener The listener to fire on schedule.
+ * @param cronExpression The cron expression.
+ * @param startDate The start date of the trigger or null if not constrained.
+ * @param endDate The end date of the trigger or null if not constrained.
+ * @param properties Any scheduler properties that may be required.
+ * @return The Scheduler Job managing the schedule.
+ * @throws ParseException for errors in the cron expression.
+ */
+ public static SchedulerJob createCronSchedulerJob(final String name, final SchedulerJobListener listener,
+ final String cronExpression, final Date startDate, final Date endDate, final Properties properties)
+ throws ParseException
+ {
+ final CronTrigger trigger = new CronTrigger(getJobName(), JOB_GROUP, cronExpression) ;
+ trigger.setMisfireInstruction(CronTrigger.MISFIRE_INSTRUCTION_DO_NOTHING) ;
+ if (startDate != null)
+ {
+ trigger.setStartTime(startDate) ;
+ }
+ if (endDate != null)
+ {
+ trigger.setEndTime(endDate) ;
+ }
+ return new SchedulerJob(name, listener, trigger, properties) ;
+ }
+
+ /**
+ * Get the name of the next job.
+ * @return The job name.
+ */
+ private static String getJobName()
+ {
+ final long id ;
+ synchronized(SchedulerJob.class)
+ {
+ id = ++jobCounter ;
+ }
+ return JOB_NAME + id ;
+ }
+
+ /**
+ * The scheduled job for executing the listener.
+ * @author kevin
+ */
+ public static class ESBScheduledJob implements StatefulJob
+ {
+ /**
+ * Execute the current job.
+ */
+ public void execute(final JobExecutionContext jobExecutionContext)
+ throws JobExecutionException
+ {
+ final JobDataMap jobDataMap = jobExecutionContext.getJobDetail().getJobDataMap() ;
+ final SchedulerJobListener listener = (SchedulerJobListener) jobDataMap.get(SchedulerJobListener.class.getName()) ;
+ final ClassLoader tcc = (ClassLoader)jobDataMap.get(ClassLoader.class.getName()) ;
+
+ final Thread thread = Thread.currentThread() ;
+ final ClassLoader currentClassLoader = thread.getContextClassLoader() ;
+ thread.setContextClassLoader(tcc) ;
+ try
+ {
+ listener.onSchedule() ;
+ }
+ catch (final SchedulingException se)
+ {
+ final JobExecutionException jobException = new JobExecutionException("Scheduling exception on " + jobExecutionContext.getTrigger().getName()) ;
+ jobException.initCause(se) ;
+ throw jobException ;
+ }
+ catch (final Throwable th)
+ {
+ final JobExecutionException jobException = new JobExecutionException("Unexpected exception on " + jobExecutionContext.getTrigger().getName()) ;
+ jobException.initCause(th) ;
+ throw jobException ;
+ }
+ finally
+ {
+ thread.setContextClassLoader(currentClassLoader) ;
+ }
+ }
+ }
+}
Copied: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/schedule/SchedulerJobListener.java (from rev 24846, labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/schedule/SchedulerJobListener.java)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/schedule/SchedulerJobListener.java (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/schedule/SchedulerJobListener.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -0,0 +1,36 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and others contributors as indicated
+ * by the @authors tag. All rights reserved.
+ * See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License, v. 2.1.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+ * PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
+ * You should have received a copy of the GNU Lesser General Public License,
+ * v.2.1 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301, USA.
+ *
+ * (C) 2005-2006, JBoss Inc.
+ */
+package org.jboss.soa.esb.schedule;
+
+/**
+ * Interface used to register scheduled resource listeners with the lifecycle.
+ *
+ * @author <a href="mailto:Kevin.Conner at jboss.com">Kevin Conner</a>
+ */
+public interface SchedulerJobListener
+{
+ /**
+ * Handle the scheduled event.
+ *
+ * @throws SchedulingException For any errors occurring during the scheduled event.
+ */
+ public void onSchedule()
+ throws SchedulingException ;
+}
Copied: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/schedule/SchedulerResource.java (from rev 24846, labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/schedule/SchedulerResource.java)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/schedule/SchedulerResource.java (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/schedule/SchedulerResource.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -0,0 +1,316 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and others contributors as indicated
+ * by the @authors tag. All rights reserved.
+ * See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License, v. 2.1.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+ * PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
+ * You should have received a copy of the GNU Lesser General Public License,
+ * v.2.1 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301, USA.
+ *
+ * (C) 2005-2006, JBoss Inc.
+ */
+package org.jboss.soa.esb.schedule;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.Properties;
+
+import org.apache.log4j.Logger;
+import org.jboss.soa.esb.lifecycle.LifecyclePriorities;
+import org.jboss.soa.esb.lifecycle.LifecycleResource;
+import org.jboss.soa.esb.lifecycle.LifecycleResourceException;
+import org.jboss.soa.esb.lifecycle.LifecycleResourceFactory;
+import org.jboss.soa.esb.lifecycle.LifecycleResourceManager;
+import org.jboss.soa.esb.util.ClassUtil;
+import org.quartz.JobDetail;
+import org.quartz.ObjectAlreadyExistsException;
+import org.quartz.Scheduler;
+import org.quartz.SchedulerException;
+import org.quartz.Trigger;
+import org.quartz.impl.StdSchedulerFactory;
+
+/**
+ * Scheduler resource tied to the lifecycle.
+ */
+public class SchedulerResource
+{
+ /**
+ * The logger for this class.
+ */
+ private static Logger LOGGER = Logger.getLogger(SchedulerResource.class);
+
+ /**
+ * The lifecycle resource factory.
+ */
+ private static final LifecycleResourceFactory<SchedulerResource> lifecycleSchedulerFactory = new SchedulerFactory() ;
+ /**
+ * Lifecycle schedulers.
+ */
+ private static final LifecycleResource<SchedulerResource> lifecycleSchedulerResource =
+ new LifecycleResource<SchedulerResource>(lifecycleSchedulerFactory, LifecyclePriorities.SCHEDULE_RESOURCE_PRIORITY) ;
+
+ /**
+ * The instance name property.
+ */
+ public static final String INSTANCE_NAME = "org.quartz.scheduler.instanceName" ;
+ /**
+ * The thread name property.
+ */
+ public static final String THREAD_NAME = "org.quartz.scheduler.threadName" ;
+ /**
+ * The thread count property.
+ */
+ public static final String THREAD_COUNT = "org.quartz.threadPool.threadCount" ;
+
+ /**
+ * The quartz scheduler associated with this resource.
+ */
+ private Scheduler scheduler ;
+
+ private SchedulerResource()
+ {
+ }
+
+ /**
+ * Start a trigger on the contextualised resource.
+ * @param trigger The trigger to enable.
+ * @param jobDetail The details of the job.
+ * @param properties The properties for the scheduler.
+ * @throws SchedulingException For any errors.
+ *
+ * Note that there is only one scheduler in force per scheduled esb artifact and, therefore,
+ * the first invocation will create the scheduler. We may support multiple schedulers at a later
+ * point in time.
+ */
+ synchronized void start(final Trigger trigger, final JobDetail jobDetail, final Properties properties)
+ throws SchedulingException
+ {
+ initScheduler(properties) ;
+ try
+ {
+ try
+ {
+ scheduler.scheduleJob(jobDetail, trigger) ;
+ }
+ catch (final ObjectAlreadyExistsException oaee)
+ {
+ scheduler.resumeTrigger(trigger.getName(), trigger.getGroup()) ;
+ }
+ }
+ catch (final SchedulerException se)
+ {
+ throw new SchedulingException("Failed to start scheduled job", se) ;
+ }
+ }
+
+ /**
+ * Pause a trigger on the contextualised resource.
+ * @param trigger The trigger to pause.
+ * @throws SchedulingException For any errors.
+ */
+ synchronized void pause(final Trigger trigger)
+ throws SchedulingException
+ {
+ if (scheduler != null)
+ {
+ try
+ {
+ if (scheduler.isShutdown())
+ {
+ throw new SchedulingException("Scheduler has been shutdown") ;
+ }
+ scheduler.pauseTrigger(trigger.getName(), trigger.getGroup()) ;
+ }
+ catch (final SchedulerException se)
+ {
+ throw new SchedulingException("Failed to pause scheduled job", se) ;
+ }
+ }
+ }
+
+ /**
+ * Destroy a trigger on the contextualised resource.
+ * @param trigger The trigger to destroy.
+ * @throws SchedulingException For any errors.
+ */
+ synchronized void destroy(final Trigger trigger)
+ throws SchedulingException
+ {
+ if (scheduler != null)
+ {
+ try
+ {
+ if (scheduler.isShutdown())
+ {
+ throw new SchedulingException("Scheduler has been shutdown") ;
+ }
+ scheduler.unscheduleJob(trigger.getName(), trigger.getGroup()) ;
+ }
+ catch (final SchedulerException se)
+ {
+ throw new SchedulingException("Failed to destroy scheduled job", se) ;
+ }
+ }
+ }
+
+ /**
+ * Shutdown the contextualised resource.
+ * @throws SchedulingException For any errors.
+ */
+ synchronized void shutdown()
+ throws SchedulingException
+ {
+ if (scheduler != null)
+ {
+ try
+ {
+ if (!scheduler.isShutdown())
+ {
+ scheduler.shutdown() ;
+ }
+ }
+ catch (final SchedulerException se)
+ {
+ throw new SchedulingException("Failed to shutdown scheduler", se) ;
+ }
+ }
+ }
+
+ /**
+ * Initialise the scheduler if necessary.
+ * @param properties The properties used to create a scheduler.
+ */
+ private void initScheduler(final Properties properties)
+ throws SchedulingException
+ {
+ if (scheduler == null)
+ {
+ final InputStream quartzProperties = ClassUtil.getResourceAsStream("quartz.properties", SchedulerResource.class) ;
+
+ if(quartzProperties == null)
+ {
+ throw new SchedulingException("Failed to locate the default scheduling properties") ;
+ }
+
+ final Properties defaultProperties = new Properties();
+ try
+ {
+ defaultProperties.load(quartzProperties) ;
+ }
+ catch (final IOException ioe)
+ {
+ throw new SchedulingException("Failed to load the default scheduling properties") ;
+ }
+
+ if(properties != null)
+ {
+ defaultProperties.putAll(properties) ;
+ }
+
+ final String name = "ESBScheduler:" + getDeploymentName() ;
+ defaultProperties.put(INSTANCE_NAME, name) ;
+ defaultProperties.put(THREAD_NAME, name) ;
+ if (!defaultProperties.containsKey(THREAD_COUNT))
+ {
+ defaultProperties.put(THREAD_COUNT, "1") ;
+ }
+ final Scheduler scheduler ;
+ try
+ {
+ scheduler = new StdSchedulerFactory(defaultProperties).getScheduler();
+ scheduler.start() ;
+ }
+ catch (final SchedulerException se)
+ {
+ throw new SchedulingException("Failed to initialise the scheduler", se) ;
+ }
+ this.scheduler = scheduler ;
+ }
+ }
+
+ /**
+ * Create a name associated with this deployment.
+ * @return The deployment name.
+ */
+ private String getDeploymentName()
+ {
+ final LifecycleResourceManager lifecycleResourceManager = LifecycleResourceManager.getSingleton() ;
+ final String[] associatedDeployments = lifecycleResourceManager.getAssociatedDeployments() ;
+ final String deployment ;
+ if ((associatedDeployments != null) && (associatedDeployments.length == 1))
+ {
+ deployment = associatedDeployments[0] ;
+ }
+ else
+ {
+ deployment = lifecycleResourceManager.getIdentity() ;
+ }
+ return deployment ;
+ }
+
+ /**
+ * Get the scheduler resource.
+ * @return The scheduler resource.
+ * @throws LifecycleResourceException for errors acquiring the resource.
+ */
+ static SchedulerResource getSchedulerResource()
+ throws SchedulingException
+ {
+ try
+ {
+ return lifecycleSchedulerResource.getLifecycleResource() ;
+ }
+ catch (final LifecycleResourceException lre)
+ {
+ throw new SchedulingException("Failed to obtain the contextualised scheduler resource", lre) ;
+ }
+ }
+
+ /**
+ * The lifecycle resource factory
+ * @author kevin
+ */
+ private static class SchedulerFactory implements LifecycleResourceFactory<SchedulerResource>
+ {
+ /**
+ * Create a resource object which will be associated with the specified lifecycle identity.
+ * @param lifecycleIdentity The associated lifecycle identity.
+ * @return The lifecycle resource
+ * @throws LifecycleResourceException for errors during construction.
+ */
+ public SchedulerResource createLifecycleResource(final String lifecycleIdentity)
+ throws LifecycleResourceException
+ {
+ return new SchedulerResource() ;
+ }
+
+ /**
+ * Destroy a resource object which is associated with the specified lifecycle identity.
+ * @param resource The lifecycle resource.
+ * @param lifecycleIdentity The associated lifecycle identity.
+ * @return The lifecycle resource.
+ * @throws LifecycleResourceException for errors during destroy.
+ */
+ public void destroyLifecycleResource(final SchedulerResource resource, final String lifecycleIdentity)
+ throws LifecycleResourceException
+ {
+ LOGGER.debug("Shutting down scheduler for identity " + lifecycleIdentity) ;
+ try
+ {
+ resource.shutdown() ;
+ }
+ catch (final SchedulingException se)
+ {
+ throw new LifecycleResourceException("Failed to shutdown the contextualised scheduler resource") ;
+ }
+ }
+ }
+}
Modified: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/schedule/quartz.properties
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/schedule/quartz.properties 2009-01-21 14:47:17 UTC (rev 24849)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/schedule/quartz.properties 2009-01-21 15:38:08 UTC (rev 24850)
@@ -1,17 +1,14 @@
# Default ESB Quartz Properties file.
#
-org.quartz.scheduler.instanceName = DefaultQuartzScheduler
org.quartz.scheduler.rmi.export = false
org.quartz.scheduler.rmi.proxy = false
org.quartz.scheduler.wrapJobExecutionInUserTransaction = false
org.quartz.threadPool.class = org.quartz.simpl.SimpleThreadPool
-org.quartz.threadPool.threadCount = 2
org.quartz.threadPool.threadPriority = 5
-org.quartz.threadPool.threadsInheritContextClassLoaderOfInitializingThread = true
-org.quartz.jobStore.misfireThreshold = 60000
+org.quartz.jobStore.misfireThreshold = 1
org.quartz.jobStore.class = org.quartz.simpl.RAMJobStore
Modified: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/services/persistence/RedeliverStore.java
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/services/persistence/RedeliverStore.java 2009-01-21 14:47:17 UTC (rev 24849)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/services/persistence/RedeliverStore.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -1,6 +1,25 @@
-/**
- *
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
*/
+
package org.jboss.soa.esb.services.persistence;
import java.net.URI;
Copied: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/services/security (from rev 24846, labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/services/security)
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/services/security/PublicCryptoUtil.java
===================================================================
--- labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/services/security/PublicCryptoUtil.java 2009-01-21 09:35:03 UTC (rev 24846)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/services/security/PublicCryptoUtil.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -1,269 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source Copyright 2008, Red Hat Middleware
- * LLC, and individual contributors by the @authors tag. See the copyright.txt
- * in the distribution for a full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it under the
- * terms of the GNU Lesser General Public License as published by the Free
- * Software Foundation; either version 2.1 of the License, or (at your option)
- * any later version.
- *
- * This software is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
- * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
- * details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this software; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA, or see the FSF
- * site: http://www.fsf.org.
- */
-package org.jboss.soa.esb.services.security;
-
-import java.io.ByteArrayInputStream;
-import java.io.ByteArrayOutputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.ObjectInputStream;
-import java.io.ObjectOutputStream;
-import java.io.Serializable;
-import java.security.Key;
-import java.security.KeyStore;
-import java.security.KeyStoreException;
-import java.security.NoSuchAlgorithmException;
-import java.security.PrivateKey;
-import java.security.PublicKey;
-import java.security.UnrecoverableKeyException;
-import java.security.cert.Certificate;
-import java.security.cert.CertificateException;
-
-import org.apache.log4j.Logger;
-import org.jboss.soa.esb.common.Configuration;
-import org.jboss.soa.esb.common.Environment;
-import org.jboss.soa.esb.services.security.util.CryptoUtil;
-import org.jboss.soa.esb.util.ClassUtil;
-
-/**
- *
- * @author <a href="mailto:dbevenius at redhat.com">Daniel Bevenius</a>
- *
- */
-public enum PublicCryptoUtil
-{
- INSTANCE;
-
- private Logger log;
- private Key key;
- private PublicKey publicKey;
- private String transformation;
- private boolean isSecurityConfigured;
-
- private PublicCryptoUtil()
- {
- try
- {
- log = getLogger();
- init();
- }
- catch (final Exception e)
- {
- throw new IllegalStateException("Unknown algorithm:", e);
- }
- }
-
- private void init() throws SecurityServiceException
- {
- String keystorePath = Configuration.getSecurityServicePublicKeystore();
- if (keystorePath == null)
- {
- log.info("No public keystore was specified in jbossesb-properites.xml. Add '" + Environment.SECURITY_SERVICE_PUBLIC_KEYSTORE + "'");
- }
- else
- {
- isSecurityConfigured = true;
- try
- {
- String keystoreType = Configuration.getSecurityServicePublicKeystoreType();
- if (keystoreType == null)
- {
- keystoreType = KeyStore.getDefaultType();
- }
- String keystorePassword = Configuration.getSecurityServicePublicKeystorePassword();
- String privateKeyAlias = Configuration.getSecurityServicePublicKeyAlias();
- String privateKeyPass = Configuration.getSecurityServicePublicKeyPassword();
-
- try
- {
- KeyStore keystore = KeyStore.getInstance(keystoreType);
- InputStream in = ClassUtil.getResourceAsStream(keystorePath, this.getClass());
- if (in == null)
- {
- throw new SecurityServiceException("Could not locate public keystore using '" + keystorePath + "'");
- }
-
- // load the keystore contents
- keystore.load(in, keystorePassword.toCharArray());
- key = keystore.getKey(privateKeyAlias, privateKeyPass.toCharArray());
- Certificate certificate = keystore.getCertificate(privateKeyAlias);
- publicKey = certificate.getPublicKey();
-
- // "algorithm/mode/padding" or defaults to "algorithm"
- transformation = Configuration.getSecurityServicePublicKeyTransformation();
- if (transformation == null)
- {
- this.transformation = key.getAlgorithm();
- }
- }
- finally
- {
- keystorePassword = null;
- privateKeyAlias = null;
- privateKeyPass = null;
- }
- }
- catch (final KeyStoreException e)
- {
- throw new SecurityServiceException(e.getMessage(), e);
- }
- catch (final NoSuchAlgorithmException e)
- {
- throw new SecurityServiceException(e.getMessage(), e);
- }
- catch (final CertificateException e)
- {
- throw new SecurityServiceException(e.getMessage(), e);
- }
- catch (final IOException e)
- {
- throw new SecurityServiceException(e.getMessage(), e);
- }
- catch (final UnrecoverableKeyException e)
- {
- throw new SecurityServiceException(e.getMessage(), e);
- }
- }
- }
-
- private static byte[] getBytes(final Serializable ser) throws IOException
- {
- ByteArrayOutputStream bout = new ByteArrayOutputStream();
- ObjectOutputStream oout = new ObjectOutputStream(bout);
- oout.writeObject(ser);
- return bout.toByteArray();
- }
-
- public byte[] encrypt(final Serializable object) throws SecurityServiceException
- {
- if (!isSecurityConfigured)
- {
- return null;
- }
-
- ByteArrayInputStream plainInStream;
- try
- {
- plainInStream = new ByteArrayInputStream(getBytes(object));
- }
- catch (final IOException e)
- {
- throw new SecurityServiceException(e.getMessage(), e);
- }
-
- ByteArrayOutputStream encryptedOutStream = new ByteArrayOutputStream();
-
- try
- {
- byte[] buf = new byte[100];
- int bufLength;
- while ( (bufLength = plainInStream.read(buf)) != -1)
- {
- byte[] tmp = CryptoUtil.encrypt(copyBytes(buf,bufLength),publicKey, transformation);
- encryptedOutStream.write(tmp);
- encryptedOutStream.flush();
- }
- return encryptedOutStream.toByteArray();
- }
- catch (final IOException e)
- {
- throw new SecurityServiceException(e.getMessage(), e);
- }
- }
-
- public Serializable decrypt(final byte[] bytes) throws SecurityServiceException
- {
- if (!isSecurityConfigured)
- {
- return null;
- }
- ByteArrayInputStream encryptedBytesInStream = new ByteArrayInputStream(bytes);
-
- ByteArrayOutputStream decryptedBytesOutStream = new ByteArrayOutputStream();
-
- byte[] decryptBytes = null;
- try
- {
- byte[] buf = new byte[128];
- int bufLenth;
- while ( (bufLenth = encryptedBytesInStream.read(buf)) != -1)
- {
- byte[] tmp = CryptoUtil.decrypt( copyBytes(buf,bufLenth),(PrivateKey)key, transformation);
- decryptedBytesOutStream.write(tmp);
- decryptedBytesOutStream.flush();
- decryptBytes = decryptedBytesOutStream.toByteArray();
- }
- }
- catch (final IOException e)
- {
- throw new SecurityServiceException(e.getMessage(), e);
- }
- finally
- {
- try { decryptedBytesOutStream.close(); } catch (IOException ignore) { log.error(ignore.getMessage(),ignore); }
- }
-
- return toSerializable(decryptBytes);
- }
-
- private Serializable toSerializable(final byte[] decryptBytes) throws SecurityServiceException
- {
- ObjectInputStream inputStream = null;
- try
- {
- inputStream = new ObjectInputStream(new ByteArrayInputStream(decryptBytes));
- return (Serializable) inputStream.readObject();
- }
- catch (final IOException e)
- {
- throw new SecurityServiceException(e.getMessage(), e);
- }
- catch (final ClassNotFoundException e)
- {
- throw new SecurityServiceException(e.getMessage(), e);
- }
- finally
- {
- try { inputStream.close(); } catch (IOException ignore) { log.error(ignore.getMessage(), ignore); }
- }
- }
-
- private static byte[] copyBytes(byte[] bytes, int length)
- {
- if (bytes.length == length)
- {
- return bytes;
- }
-
- byte[] newBytes = new byte[length];
- for (int i = 0; i < length; i++)
- {
- newBytes[i] = bytes[i];
- }
- return newBytes;
- }
-
- private static Logger getLogger()
- {
- return Logger.getLogger(PublicCryptoUtil.class);
- }
-
-}
Copied: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/services/security/PublicCryptoUtil.java (from rev 24846, labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/services/security/PublicCryptoUtil.java)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/services/security/PublicCryptoUtil.java (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/services/security/PublicCryptoUtil.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -0,0 +1,269 @@
+/*
+ * JBoss, Home of Professional Open Source Copyright 2008, Red Hat Middleware
+ * LLC, and individual contributors by the @authors tag. See the copyright.txt
+ * in the distribution for a full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it under the
+ * terms of the GNU Lesser General Public License as published by the Free
+ * Software Foundation; either version 2.1 of the License, or (at your option)
+ * any later version.
+ *
+ * This software is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+ * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
+ * details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this software; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA, or see the FSF
+ * site: http://www.fsf.org.
+ */
+package org.jboss.soa.esb.services.security;
+
+import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.ObjectInputStream;
+import java.io.ObjectOutputStream;
+import java.io.Serializable;
+import java.security.Key;
+import java.security.KeyStore;
+import java.security.KeyStoreException;
+import java.security.NoSuchAlgorithmException;
+import java.security.PrivateKey;
+import java.security.PublicKey;
+import java.security.UnrecoverableKeyException;
+import java.security.cert.Certificate;
+import java.security.cert.CertificateException;
+
+import org.apache.log4j.Logger;
+import org.jboss.soa.esb.common.Configuration;
+import org.jboss.soa.esb.common.Environment;
+import org.jboss.soa.esb.services.security.util.CryptoUtil;
+import org.jboss.soa.esb.util.ClassUtil;
+
+/**
+ *
+ * @author <a href="mailto:dbevenius at redhat.com">Daniel Bevenius</a>
+ *
+ */
+public enum PublicCryptoUtil
+{
+ INSTANCE;
+
+ private Logger log;
+ private Key key;
+ private PublicKey publicKey;
+ private String transformation;
+ private boolean isSecurityConfigured;
+
+ private PublicCryptoUtil()
+ {
+ try
+ {
+ log = getLogger();
+ init();
+ }
+ catch (final Exception e)
+ {
+ throw new IllegalStateException("Unknown algorithm:", e);
+ }
+ }
+
+ private void init() throws SecurityServiceException
+ {
+ String keystorePath = Configuration.getSecurityServicePublicKeystore();
+ if (keystorePath == null)
+ {
+ log.info("No public keystore was specified in jbossesb-properites.xml. Add '" + Environment.SECURITY_SERVICE_PUBLIC_KEYSTORE + "'");
+ }
+ else
+ {
+ isSecurityConfigured = true;
+ try
+ {
+ String keystoreType = Configuration.getSecurityServicePublicKeystoreType();
+ if (keystoreType == null)
+ {
+ keystoreType = KeyStore.getDefaultType();
+ }
+ String keystorePassword = Configuration.getSecurityServicePublicKeystorePassword();
+ String privateKeyAlias = Configuration.getSecurityServicePublicKeyAlias();
+ String privateKeyPass = Configuration.getSecurityServicePublicKeyPassword();
+
+ try
+ {
+ KeyStore keystore = KeyStore.getInstance(keystoreType);
+ InputStream in = ClassUtil.getResourceAsStream(keystorePath, this.getClass());
+ if (in == null)
+ {
+ throw new SecurityServiceException("Could not locate public keystore using '" + keystorePath + "'");
+ }
+
+ // load the keystore contents
+ keystore.load(in, keystorePassword.toCharArray());
+ key = keystore.getKey(privateKeyAlias, privateKeyPass.toCharArray());
+ Certificate certificate = keystore.getCertificate(privateKeyAlias);
+ publicKey = certificate.getPublicKey();
+
+ // "algorithm/mode/padding" or defaults to "algorithm"
+ transformation = Configuration.getSecurityServicePublicKeyTransformation();
+ if (transformation == null)
+ {
+ this.transformation = key.getAlgorithm();
+ }
+ }
+ finally
+ {
+ keystorePassword = null;
+ privateKeyAlias = null;
+ privateKeyPass = null;
+ }
+ }
+ catch (final KeyStoreException e)
+ {
+ throw new SecurityServiceException(e.getMessage(), e);
+ }
+ catch (final NoSuchAlgorithmException e)
+ {
+ throw new SecurityServiceException(e.getMessage(), e);
+ }
+ catch (final CertificateException e)
+ {
+ throw new SecurityServiceException(e.getMessage(), e);
+ }
+ catch (final IOException e)
+ {
+ throw new SecurityServiceException(e.getMessage(), e);
+ }
+ catch (final UnrecoverableKeyException e)
+ {
+ throw new SecurityServiceException(e.getMessage(), e);
+ }
+ }
+ }
+
+ private static byte[] getBytes(final Serializable ser) throws IOException
+ {
+ ByteArrayOutputStream bout = new ByteArrayOutputStream();
+ ObjectOutputStream oout = new ObjectOutputStream(bout);
+ oout.writeObject(ser);
+ return bout.toByteArray();
+ }
+
+ public byte[] encrypt(final Serializable object) throws SecurityServiceException
+ {
+ if (!isSecurityConfigured)
+ {
+ return null;
+ }
+
+ ByteArrayInputStream plainInStream;
+ try
+ {
+ plainInStream = new ByteArrayInputStream(getBytes(object));
+ }
+ catch (final IOException e)
+ {
+ throw new SecurityServiceException(e.getMessage(), e);
+ }
+
+ ByteArrayOutputStream encryptedOutStream = new ByteArrayOutputStream();
+
+ try
+ {
+ byte[] buf = new byte[100];
+ int bufLength;
+ while ( (bufLength = plainInStream.read(buf)) != -1)
+ {
+ byte[] tmp = CryptoUtil.encrypt(copyBytes(buf,bufLength),publicKey, transformation);
+ encryptedOutStream.write(tmp);
+ encryptedOutStream.flush();
+ }
+ return encryptedOutStream.toByteArray();
+ }
+ catch (final IOException e)
+ {
+ throw new SecurityServiceException(e.getMessage(), e);
+ }
+ }
+
+ public Serializable decrypt(final byte[] bytes) throws SecurityServiceException
+ {
+ if (!isSecurityConfigured)
+ {
+ return null;
+ }
+ ByteArrayInputStream encryptedBytesInStream = new ByteArrayInputStream(bytes);
+
+ ByteArrayOutputStream decryptedBytesOutStream = new ByteArrayOutputStream();
+
+ byte[] decryptBytes = null;
+ try
+ {
+ byte[] buf = new byte[128];
+ int bufLenth;
+ while ( (bufLenth = encryptedBytesInStream.read(buf)) != -1)
+ {
+ byte[] tmp = CryptoUtil.decrypt( copyBytes(buf,bufLenth),(PrivateKey)key, transformation);
+ decryptedBytesOutStream.write(tmp);
+ decryptedBytesOutStream.flush();
+ decryptBytes = decryptedBytesOutStream.toByteArray();
+ }
+ }
+ catch (final IOException e)
+ {
+ throw new SecurityServiceException(e.getMessage(), e);
+ }
+ finally
+ {
+ try { decryptedBytesOutStream.close(); } catch (IOException ignore) { log.error(ignore.getMessage(),ignore); }
+ }
+
+ return toSerializable(decryptBytes);
+ }
+
+ private Serializable toSerializable(final byte[] decryptBytes) throws SecurityServiceException
+ {
+ ObjectInputStream inputStream = null;
+ try
+ {
+ inputStream = new ObjectInputStream(new ByteArrayInputStream(decryptBytes));
+ return (Serializable) inputStream.readObject();
+ }
+ catch (final IOException e)
+ {
+ throw new SecurityServiceException(e.getMessage(), e);
+ }
+ catch (final ClassNotFoundException e)
+ {
+ throw new SecurityServiceException(e.getMessage(), e);
+ }
+ finally
+ {
+ try { inputStream.close(); } catch (IOException ignore) { log.error(ignore.getMessage(), ignore); }
+ }
+ }
+
+ private static byte[] copyBytes(byte[] bytes, int length)
+ {
+ if (bytes.length == length)
+ {
+ return bytes;
+ }
+
+ byte[] newBytes = new byte[length];
+ for (int i = 0; i < length; i++)
+ {
+ newBytes[i] = bytes[i];
+ }
+ return newBytes;
+ }
+
+ private static Logger getLogger()
+ {
+ return Logger.getLogger(PublicCryptoUtil.class);
+ }
+
+}
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/services/security/SecurityConfig.java
===================================================================
--- labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/services/security/SecurityConfig.java 2009-01-21 09:35:03 UTC (rev 24846)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/services/security/SecurityConfig.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -1,175 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source Copyright 2008, Red Hat Middleware
- * LLC, and individual contributors by the @authors tag. See the copyright.txt
- * in the distribution for a full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it under the
- * terms of the GNU Lesser General Public License as published by the Free
- * Software Foundation; either version 2.1 of the License, or (at your option)
- * any later version.
- *
- * This software is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
- * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
- * details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this software; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA, or see the FSF
- * site: http://www.fsf.org.
- */
-package org.jboss.soa.esb.services.security;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-
-/**
- * This class is indended to security related configuration properties.
- *
- * @author <a href="mailto:dbevenius at redhat.com">Daniel Bevenius</a>
- * @since 4.4
- */
-public class SecurityConfig
-{
- private final String runAs;
- private final List<String> rolesAllowed;
- private final String useCallerIdentity;
- private final String moduleName;
- private final String callbackHandler;
- private Map<String,String> properties = new HashMap<String,String>();
-
- private SecurityConfig(
- final String runAs,
- final List<String> rolesAllowed,
- final String useCallerIdentity,
- final String moduleName,
- final String callbackHandler,
- final Map<String,String> properties)
- {
- this.runAs = runAs;
- this.rolesAllowed = rolesAllowed;
- this.useCallerIdentity = useCallerIdentity;
- this.moduleName = moduleName;
- this.callbackHandler= callbackHandler;
- this.properties = properties;
- }
-
- public String getCallbackHandler()
- {
- return callbackHandler;
- }
-
- public String getRunAs()
- {
- return runAs;
- }
- public String getUseCallerIdentity()
- {
- return useCallerIdentity;
- }
-
- public String getModuleName()
- {
- return moduleName;
- }
-
- public boolean hasRunAs()
- {
- return runAs != null;
- }
-
- public Map<String, String> getProperties()
- {
- return properties;
- }
-
- public List<String> getRolesAllowed()
- {
- return rolesAllowed;
- }
-
- @Override
- public String toString()
- {
- return "[SecurityConfigInfo : runAs=" + runAs + ", useCallerIdentity=" + useCallerIdentity + ", moduleName=" + moduleName + ", callbackHandler=" + callbackHandler +", properties=" + properties +", rolesAllowed=" + rolesAllowed + "]";
- }
-
- public static class Builder
- {
- private String runAs;
- private String rolesAllowed;
- private String useCallerIdentity;
- private final String moduleName;
- private String callbackHandler;
- private final Map<String,String> properties = new HashMap<String,String>();
-
- public Builder(final String moduleName)
- {
- this.moduleName = moduleName;
- }
-
- public Builder runAs(final String runAs)
- {
- this.runAs = runAs;
- return this;
- }
-
- public Builder rolesAllowed(final String rolesAllowed)
- {
- this.rolesAllowed = rolesAllowed;
- return this;
- }
-
- public Builder useCallerIdentity(final String useCallerIdentity)
- {
- this.useCallerIdentity = useCallerIdentity;
- return this;
- }
-
- public Builder callBackhandler(final String callbackHandler)
- {
- this.callbackHandler = callbackHandler;
- return this;
- }
-
- public Builder property(final String name, final String value)
- {
- properties.put(name, value);
- return this;
- }
-
- public SecurityConfig build()
- {
- final List<String> rolesAllowedList = new ArrayList<String>();
- if ( rolesAllowed != null )
- {
- String[] split = rolesAllowed.split(",");
- List<String> asList = Arrays.asList(split);
- for (String roleName : asList)
- {
- if ( !"".equals(roleName))
- rolesAllowedList.add(roleName.trim());
- }
- }
-
- final List<String> unmodifiableRoles = Collections.unmodifiableList(rolesAllowedList);
- final Map<String,String> unmodifiableProperties = Collections.unmodifiableMap(properties);
- SecurityConfig securityConfig = new SecurityConfig(
- runAs,
- unmodifiableRoles,
- useCallerIdentity,
- moduleName,
- callbackHandler,
- unmodifiableProperties);
-
- return securityConfig;
- }
-
- }
-
-}
Copied: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/services/security/SecurityConfig.java (from rev 24846, labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/services/security/SecurityConfig.java)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/services/security/SecurityConfig.java (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/services/security/SecurityConfig.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -0,0 +1,175 @@
+/*
+ * JBoss, Home of Professional Open Source Copyright 2008, Red Hat Middleware
+ * LLC, and individual contributors by the @authors tag. See the copyright.txt
+ * in the distribution for a full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it under the
+ * terms of the GNU Lesser General Public License as published by the Free
+ * Software Foundation; either version 2.1 of the License, or (at your option)
+ * any later version.
+ *
+ * This software is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+ * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
+ * details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this software; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA, or see the FSF
+ * site: http://www.fsf.org.
+ */
+package org.jboss.soa.esb.services.security;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+
+/**
+ * This class is indended to security related configuration properties.
+ *
+ * @author <a href="mailto:dbevenius at redhat.com">Daniel Bevenius</a>
+ * @since 4.4
+ */
+public class SecurityConfig
+{
+ private final String runAs;
+ private final List<String> rolesAllowed;
+ private final String useCallerIdentity;
+ private final String moduleName;
+ private final String callbackHandler;
+ private Map<String,String> properties = new HashMap<String,String>();
+
+ private SecurityConfig(
+ final String runAs,
+ final List<String> rolesAllowed,
+ final String useCallerIdentity,
+ final String moduleName,
+ final String callbackHandler,
+ final Map<String,String> properties)
+ {
+ this.runAs = runAs;
+ this.rolesAllowed = rolesAllowed;
+ this.useCallerIdentity = useCallerIdentity;
+ this.moduleName = moduleName;
+ this.callbackHandler= callbackHandler;
+ this.properties = properties;
+ }
+
+ public String getCallbackHandler()
+ {
+ return callbackHandler;
+ }
+
+ public String getRunAs()
+ {
+ return runAs;
+ }
+ public String getUseCallerIdentity()
+ {
+ return useCallerIdentity;
+ }
+
+ public String getModuleName()
+ {
+ return moduleName;
+ }
+
+ public boolean hasRunAs()
+ {
+ return runAs != null;
+ }
+
+ public Map<String, String> getProperties()
+ {
+ return properties;
+ }
+
+ public List<String> getRolesAllowed()
+ {
+ return rolesAllowed;
+ }
+
+ @Override
+ public String toString()
+ {
+ return "[SecurityConfigInfo : runAs=" + runAs + ", useCallerIdentity=" + useCallerIdentity + ", moduleName=" + moduleName + ", callbackHandler=" + callbackHandler +", properties=" + properties +", rolesAllowed=" + rolesAllowed + "]";
+ }
+
+ public static class Builder
+ {
+ private String runAs;
+ private String rolesAllowed;
+ private String useCallerIdentity;
+ private final String moduleName;
+ private String callbackHandler;
+ private final Map<String,String> properties = new HashMap<String,String>();
+
+ public Builder(final String moduleName)
+ {
+ this.moduleName = moduleName;
+ }
+
+ public Builder runAs(final String runAs)
+ {
+ this.runAs = runAs;
+ return this;
+ }
+
+ public Builder rolesAllowed(final String rolesAllowed)
+ {
+ this.rolesAllowed = rolesAllowed;
+ return this;
+ }
+
+ public Builder useCallerIdentity(final String useCallerIdentity)
+ {
+ this.useCallerIdentity = useCallerIdentity;
+ return this;
+ }
+
+ public Builder callBackhandler(final String callbackHandler)
+ {
+ this.callbackHandler = callbackHandler;
+ return this;
+ }
+
+ public Builder property(final String name, final String value)
+ {
+ properties.put(name, value);
+ return this;
+ }
+
+ public SecurityConfig build()
+ {
+ final List<String> rolesAllowedList = new ArrayList<String>();
+ if ( rolesAllowed != null )
+ {
+ String[] split = rolesAllowed.split(",");
+ List<String> asList = Arrays.asList(split);
+ for (String roleName : asList)
+ {
+ if ( !"".equals(roleName))
+ rolesAllowedList.add(roleName.trim());
+ }
+ }
+
+ final List<String> unmodifiableRoles = Collections.unmodifiableList(rolesAllowedList);
+ final Map<String,String> unmodifiableProperties = Collections.unmodifiableMap(properties);
+ SecurityConfig securityConfig = new SecurityConfig(
+ runAs,
+ unmodifiableRoles,
+ useCallerIdentity,
+ moduleName,
+ callbackHandler,
+ unmodifiableProperties);
+
+ return securityConfig;
+ }
+
+ }
+
+}
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/services/security/SecurityConfigUtil.java
===================================================================
--- labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/services/security/SecurityConfigUtil.java 2009-01-21 09:35:03 UTC (rev 24846)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/services/security/SecurityConfigUtil.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -1,63 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source Copyright 2008, Red Hat Middleware
- * LLC, and individual contributors by the @authors tag. See the copyright.txt
- * in the distribution for a full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it under the
- * terms of the GNU Lesser General Public License as published by the Free
- * Software Foundation; either version 2.1 of the License, or (at your option)
- * any later version.
- *
- * This software is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
- * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
- * details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this software; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA, or see the FSF
- * site: http://www.fsf.org.
- */
-package org.jboss.soa.esb.services.security;
-
-import java.util.HashMap;
-import java.util.Map;
-
-import org.jboss.soa.esb.helpers.ConfigTree;
-import org.jboss.soa.esb.listeners.ListenerTagNames;
-import org.jboss.soa.esb.services.security.SecurityConfig.Builder;
-
-/**
- * This util class provides methods to extract information from a security
- * configuration. <p/>
- *
- * @author <a href="mailto:dbevenius at redhat.com">Daniel Bevenius</a>
- * @since 4.4.
- *
- */
-public class SecurityConfigUtil
-{
- private SecurityConfigUtil() { }
-
- public static SecurityConfig createSecurityConfig(final ConfigTree securityFragment)
- {
- final String moduleName = securityFragment.getAttribute(ListenerTagNames.MODULE_NAME_TAG);
-
- Builder builder = new SecurityConfig.Builder(moduleName);
- builder.runAs(securityFragment.getAttribute(ListenerTagNames.RUN_AS_TAG));
- builder.useCallerIdentity(securityFragment.getAttribute(ListenerTagNames.USE_CALLERS_IDENTIDY_TAG));
- builder.rolesAllowed(securityFragment.getAttribute(ListenerTagNames.ROLES_ALLOWED));
- builder.callBackhandler(securityFragment.getAttribute(ListenerTagNames.CALLBACK_HANDLER_TAG));
-
- final Map<String,String> properties = new HashMap<String, String>();
- ConfigTree[] children = securityFragment.getChildren("property");
- for (ConfigTree configTree : children)
- {
- String propertyName = configTree.getAttribute("name");
- String propertyValue = configTree.getAttribute("value");
- System.out.println(propertyName + " " + propertyValue);
- builder.property(propertyName, propertyValue);
- }
- return builder.build();
- }
-}
Copied: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/services/security/SecurityConfigUtil.java (from rev 24846, labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/services/security/SecurityConfigUtil.java)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/services/security/SecurityConfigUtil.java (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/services/security/SecurityConfigUtil.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -0,0 +1,63 @@
+/*
+ * JBoss, Home of Professional Open Source Copyright 2008, Red Hat Middleware
+ * LLC, and individual contributors by the @authors tag. See the copyright.txt
+ * in the distribution for a full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it under the
+ * terms of the GNU Lesser General Public License as published by the Free
+ * Software Foundation; either version 2.1 of the License, or (at your option)
+ * any later version.
+ *
+ * This software is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+ * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
+ * details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this software; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA, or see the FSF
+ * site: http://www.fsf.org.
+ */
+package org.jboss.soa.esb.services.security;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import org.jboss.soa.esb.helpers.ConfigTree;
+import org.jboss.soa.esb.listeners.ListenerTagNames;
+import org.jboss.soa.esb.services.security.SecurityConfig.Builder;
+
+/**
+ * This util class provides methods to extract information from a security
+ * configuration. <p/>
+ *
+ * @author <a href="mailto:dbevenius at redhat.com">Daniel Bevenius</a>
+ * @since 4.4.
+ *
+ */
+public class SecurityConfigUtil
+{
+ private SecurityConfigUtil() { }
+
+ public static SecurityConfig createSecurityConfig(final ConfigTree securityFragment)
+ {
+ final String moduleName = securityFragment.getAttribute(ListenerTagNames.MODULE_NAME_TAG);
+
+ Builder builder = new SecurityConfig.Builder(moduleName);
+ builder.runAs(securityFragment.getAttribute(ListenerTagNames.RUN_AS_TAG));
+ builder.useCallerIdentity(securityFragment.getAttribute(ListenerTagNames.USE_CALLERS_IDENTIDY_TAG));
+ builder.rolesAllowed(securityFragment.getAttribute(ListenerTagNames.ROLES_ALLOWED));
+ builder.callBackhandler(securityFragment.getAttribute(ListenerTagNames.CALLBACK_HANDLER_TAG));
+
+ final Map<String,String> properties = new HashMap<String, String>();
+ ConfigTree[] children = securityFragment.getChildren("property");
+ for (ConfigTree configTree : children)
+ {
+ String propertyName = configTree.getAttribute("name");
+ String propertyValue = configTree.getAttribute("value");
+ System.out.println(propertyName + " " + propertyValue);
+ builder.property(propertyName, propertyValue);
+ }
+ return builder.build();
+ }
+}
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/services/security/SecurityContext.java
===================================================================
--- labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/services/security/SecurityContext.java 2009-01-21 09:35:03 UTC (rev 24846)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/services/security/SecurityContext.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -1,213 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source Copyright 2008, Red Hat Middleware
- * LLC, and individual contributors by the @authors tag. See the copyright.txt
- * in the distribution for a full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it under the
- * terms of the GNU Lesser General Public License as published by the Free
- * Software Foundation; either version 2.1 of the License, or (at your option)
- * any later version.
- *
- * This software is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
- * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
- * details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this software; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA, or see the FSF
- * site: http://www.fsf.org.
- */
-package org.jboss.soa.esb.services.security;
-
-import static org.jboss.soa.esb.services.security.principals.Group.ROLES_GROUP_NAME;
-
-import java.io.IOException;
-import java.io.ObjectInputStream;
-import java.io.ObjectOutputStream;
-import java.io.Serializable;
-import java.security.Principal;
-import java.security.acl.Group;
-import java.util.Collections;
-import java.util.Enumeration;
-import java.util.Set;
-
-import javax.security.auth.Subject;
-
-import org.jboss.internal.soa.esb.assertion.AssertArgument;
-import org.jboss.internal.soa.esb.services.security.PrivateCryptoUtil;
-import org.jboss.soa.esb.services.security.auth.AuthenticationRequest;
-import org.mvel.ast.AssertNode;
-
-/**
- * Security Context contains security related information.
- * <p/>
- * Note that even though a Subject object instance is serialiable,
- * its private and public credentials are not(they are transient).
- * Also not that the Principal interface is not serializable but
- * all implemenations should be.
- *
- * @author <a href="mailto:dbevenius at redhat.com">Daniel Bevenius</a>
- * @since 4.4
- *
- */
-public final class SecurityContext implements Serializable
-{
- private static final long serialVersionUID = 1L;
-
- private final Subject subject;
-
- private Set<?> pubCredentials;
-
- private Set<?> privCredentials;
-
- public SecurityContext()
- {
- subject = new Subject();
- }
-
- public SecurityContext(Subject subject)
- {
- AssertArgument.isNotNull(subject, "subject");
- this.subject = subject;
- }
-
- public Subject getSubject()
- {
- return subject;
- }
-
- @Override
- public String toString()
- {
- return "SecurityContext [" + subject + "]";
- }
-
- public boolean isCallerInRole( final String roleName )
- {
- Set<Principal> principals = subject.getPrincipals();
- for(Principal principal: principals)
- {
- if(principal instanceof Group)
- {
- Group group = (Group) principal;
- if( group.getName().equalsIgnoreCase( ROLES_GROUP_NAME ) )
- {
- Enumeration<? extends Principal> roles = group.members();
- while(roles.hasMoreElements())
- {
- Principal role = roles.nextElement();
- if(role.getName().equals(roleName))
- {
- return true;
- }
- }
- }
- }
- }
- return false;
- }
-
- private void writeObject(final ObjectOutputStream out) throws IOException
- {
- out.defaultWriteObject();
- out.writeObject(subject.getPrivateCredentials());
- out.writeObject(subject.getPublicCredentials());
- }
-
- private void readObject(final ObjectInputStream in) throws IOException, ClassNotFoundException
- {
- in.defaultReadObject();
- privCredentials = (Set<?>) in.readObject();
- pubCredentials = (Set<?>) in.readObject();
- }
-
- final Set<? extends Principal> getPrincipals()
- {
- return Collections.unmodifiableSet(subject.getPrincipals());
- }
-
- final Set<?> getPubCredentials()
- {
- return Collections.unmodifiableSet(pubCredentials);
- }
-
- public Set<?> getPrivCredentials()
- {
- return Collections.unmodifiableSet(privCredentials);
- }
-
- /**
- * Will check if the passed in {@link AuthenticationRequest} contains the
- * same security information (Principal and credentials) as the this context.
- *
- * @param authrequest - the authentication request to compare
- * @return true - if this security context has the same principal and credentials as the passed in authentication request.
- */
- public boolean compareTo(final AuthenticationRequest authrequest)
- {
- if ( authrequest == null )
- {
- return false;
- }
-
- final Principal authPrincipal = authrequest.getPrincipal();
- if (subject.getPrincipals().contains(authPrincipal))
- {
- final Set<?> authCredentials = authrequest.getCredentials();
-
- // check if the auth request credentials exist as a public credential
- final Set<Object> publicCredentials = subject.getPublicCredentials();
- for (final Object object : authCredentials)
- {
- if (publicCredentials.contains(object))
- {
- return true;
- }
- }
-
- // check if the auth request credentials exist as a public credential
- final Set<Object> privateCredentials = subject.getPrivateCredentials();
- for (final Object object : authCredentials)
- {
- if (privateCredentials.contains(object))
- {
- return true;
- }
- }
- }
-
- return false;
- }
-
- public static SecurityContext decryptContext(final byte[] encrypt) throws SecurityServiceException
- {
- SecurityContext context = null;
- if (encrypt == null)
- return context;
-
- Serializable decrypted = PrivateCryptoUtil.INSTANCE.decrypt(encrypt);
- if (decrypted instanceof SecurityContext)
- {
- context = (SecurityContext) decrypted;
- final Subject subject = context.getSubject();
- final Set<?> publCreds = context.getPubCredentials();
- if (publCreds != null )
- {
- subject.getPublicCredentials().addAll(publCreds);
- }
- final Set<?> privCreds = context.getPrivCredentials();
- if (privCreds != null)
- {
- subject.getPrivateCredentials().addAll(privCreds);
- }
- }
- return context;
- }
-
- public static byte[] encryptContext(final SecurityContext context) throws SecurityServiceException
- {
- return PrivateCryptoUtil.INSTANCE.encrypt(context);
- }
-
-}
Copied: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/services/security/SecurityContext.java (from rev 24846, labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/services/security/SecurityContext.java)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/services/security/SecurityContext.java (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/services/security/SecurityContext.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -0,0 +1,213 @@
+/*
+ * JBoss, Home of Professional Open Source Copyright 2008, Red Hat Middleware
+ * LLC, and individual contributors by the @authors tag. See the copyright.txt
+ * in the distribution for a full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it under the
+ * terms of the GNU Lesser General Public License as published by the Free
+ * Software Foundation; either version 2.1 of the License, or (at your option)
+ * any later version.
+ *
+ * This software is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+ * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
+ * details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this software; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA, or see the FSF
+ * site: http://www.fsf.org.
+ */
+package org.jboss.soa.esb.services.security;
+
+import static org.jboss.soa.esb.services.security.principals.Group.ROLES_GROUP_NAME;
+
+import java.io.IOException;
+import java.io.ObjectInputStream;
+import java.io.ObjectOutputStream;
+import java.io.Serializable;
+import java.security.Principal;
+import java.security.acl.Group;
+import java.util.Collections;
+import java.util.Enumeration;
+import java.util.Set;
+
+import javax.security.auth.Subject;
+
+import org.jboss.internal.soa.esb.assertion.AssertArgument;
+import org.jboss.internal.soa.esb.services.security.PrivateCryptoUtil;
+import org.jboss.soa.esb.services.security.auth.AuthenticationRequest;
+import org.mvel.ast.AssertNode;
+
+/**
+ * Security Context contains security related information.
+ * <p/>
+ * Note that even though a Subject object instance is serialiable,
+ * its private and public credentials are not(they are transient).
+ * Also not that the Principal interface is not serializable but
+ * all implemenations should be.
+ *
+ * @author <a href="mailto:dbevenius at redhat.com">Daniel Bevenius</a>
+ * @since 4.4
+ *
+ */
+public final class SecurityContext implements Serializable
+{
+ private static final long serialVersionUID = 1L;
+
+ private final Subject subject;
+
+ private Set<?> pubCredentials;
+
+ private Set<?> privCredentials;
+
+ public SecurityContext()
+ {
+ subject = new Subject();
+ }
+
+ public SecurityContext(Subject subject)
+ {
+ AssertArgument.isNotNull(subject, "subject");
+ this.subject = subject;
+ }
+
+ public Subject getSubject()
+ {
+ return subject;
+ }
+
+ @Override
+ public String toString()
+ {
+ return "SecurityContext [" + subject + "]";
+ }
+
+ public boolean isCallerInRole( final String roleName )
+ {
+ Set<Principal> principals = subject.getPrincipals();
+ for(Principal principal: principals)
+ {
+ if(principal instanceof Group)
+ {
+ Group group = (Group) principal;
+ if( group.getName().equalsIgnoreCase( ROLES_GROUP_NAME ) )
+ {
+ Enumeration<? extends Principal> roles = group.members();
+ while(roles.hasMoreElements())
+ {
+ Principal role = roles.nextElement();
+ if(role.getName().equals(roleName))
+ {
+ return true;
+ }
+ }
+ }
+ }
+ }
+ return false;
+ }
+
+ private void writeObject(final ObjectOutputStream out) throws IOException
+ {
+ out.defaultWriteObject();
+ out.writeObject(subject.getPrivateCredentials());
+ out.writeObject(subject.getPublicCredentials());
+ }
+
+ private void readObject(final ObjectInputStream in) throws IOException, ClassNotFoundException
+ {
+ in.defaultReadObject();
+ privCredentials = (Set<?>) in.readObject();
+ pubCredentials = (Set<?>) in.readObject();
+ }
+
+ final Set<? extends Principal> getPrincipals()
+ {
+ return Collections.unmodifiableSet(subject.getPrincipals());
+ }
+
+ final Set<?> getPubCredentials()
+ {
+ return Collections.unmodifiableSet(pubCredentials);
+ }
+
+ public Set<?> getPrivCredentials()
+ {
+ return Collections.unmodifiableSet(privCredentials);
+ }
+
+ /**
+ * Will check if the passed in {@link AuthenticationRequest} contains the
+ * same security information (Principal and credentials) as the this context.
+ *
+ * @param authrequest - the authentication request to compare
+ * @return true - if this security context has the same principal and credentials as the passed in authentication request.
+ */
+ public boolean compareTo(final AuthenticationRequest authrequest)
+ {
+ if ( authrequest == null )
+ {
+ return false;
+ }
+
+ final Principal authPrincipal = authrequest.getPrincipal();
+ if (subject.getPrincipals().contains(authPrincipal))
+ {
+ final Set<?> authCredentials = authrequest.getCredentials();
+
+ // check if the auth request credentials exist as a public credential
+ final Set<Object> publicCredentials = subject.getPublicCredentials();
+ for (final Object object : authCredentials)
+ {
+ if (publicCredentials.contains(object))
+ {
+ return true;
+ }
+ }
+
+ // check if the auth request credentials exist as a public credential
+ final Set<Object> privateCredentials = subject.getPrivateCredentials();
+ for (final Object object : authCredentials)
+ {
+ if (privateCredentials.contains(object))
+ {
+ return true;
+ }
+ }
+ }
+
+ return false;
+ }
+
+ public static SecurityContext decryptContext(final byte[] encrypt) throws SecurityServiceException
+ {
+ SecurityContext context = null;
+ if (encrypt == null)
+ return context;
+
+ Serializable decrypted = PrivateCryptoUtil.INSTANCE.decrypt(encrypt);
+ if (decrypted instanceof SecurityContext)
+ {
+ context = (SecurityContext) decrypted;
+ final Subject subject = context.getSubject();
+ final Set<?> publCreds = context.getPubCredentials();
+ if (publCreds != null )
+ {
+ subject.getPublicCredentials().addAll(publCreds);
+ }
+ final Set<?> privCreds = context.getPrivCredentials();
+ if (privCreds != null)
+ {
+ subject.getPrivateCredentials().addAll(privCreds);
+ }
+ }
+ return context;
+ }
+
+ public static byte[] encryptContext(final SecurityContext context) throws SecurityServiceException
+ {
+ return PrivateCryptoUtil.INSTANCE.encrypt(context);
+ }
+
+}
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/services/security/SecurityService.java
===================================================================
--- labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/services/security/SecurityService.java 2009-01-21 09:35:03 UTC (rev 24846)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/services/security/SecurityService.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -1,97 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source Copyright 2008, Red Hat Middleware
- * LLC, and individual contributors by the @authors tag. See the copyright.txt
- * in the distribution for a full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it under the
- * terms of the GNU Lesser General Public License as published by the Free
- * Software Foundation; either version 2.1 of the License, or (at your option)
- * any later version.
- *
- * This software is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
- * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
- * details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this software; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA, or see the FSF
- * site: http://www.fsf.org.
- */
-package org.jboss.soa.esb.services.security;
-
-import java.security.Principal;
-import java.util.List;
-
-import javax.security.auth.Subject;
-import javax.security.auth.login.LoginException;
-
-import org.jboss.soa.esb.ConfigurationException;
-import org.jboss.soa.esb.services.security.auth.AuthenticationRequest;
-
-/**
- * This interface represents a Security service.
- * <p/>
- *
- * @author <a href="mailto:dbevenius at redhat.com">Daniel Bevenius</a>
- * @since 4.4
- *
- */
-public interface SecurityService
-{
- /**
- * Constant intended for usage as a key in different types of maps.
- */
- String CONTEXT = "org.jboss.soa.esb.services.security.context";
-
- String AUTH_REQUEST = "org.jboss.soa.esb.services.security.authRequest";
-
- /**
- * Configure the security serivce for usage. This should take care of
- * reading any needed configurations required by the security system.
- *
- * @throws ConfigurationException
- */
- void configure() throws ConfigurationException;
-
- /**
- * Authenticates a subject.
- *
- * @param securityContext - the security context to authenticate
- * @throws LoginException - if the authentication was not sucessful
- */
- void authenticate(final SecurityConfig securityConfig, final SecurityContext securityContext, final AuthenticationRequest authRequest) throws SecurityServiceException;
-
- /**
- * Check if the the SecurityContext has a principal that is a member of one
- * of the passed in rolesAllowed list.
- *
- * @param rolesAllowed - list or allowed roles
- * @param securityContext - the security context
- * @return true - if the SecurityContext has a principal that is a member of one the roles.
- */
- boolean checkRolesAllowed(final List<String> rolesAllowed, SecurityContext securityContext);
-
- /**
- * Determines if the subject contains the passed in role in it's
- * set of Principals.
- *
- * @param subject - the Subject instance belonging to the caller.
- * @param context - the principal instance representing the role to check for.
- * @return true - if the caller has the role of
- */
- boolean isCallerInRole(final Subject subject, final Principal role);
-
- /**
- * Logout and clean up of any security state.
- *
- * @param securityContext
- * @throws LoginException
- */
- void logout(final SecurityConfig securityConfig);
-
- /**
- * Refresh the security configuration
- */
- void refreshSecurityConfig();
-}
Copied: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/services/security/SecurityService.java (from rev 24846, labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/services/security/SecurityService.java)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/services/security/SecurityService.java (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/services/security/SecurityService.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -0,0 +1,97 @@
+/*
+ * JBoss, Home of Professional Open Source Copyright 2008, Red Hat Middleware
+ * LLC, and individual contributors by the @authors tag. See the copyright.txt
+ * in the distribution for a full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it under the
+ * terms of the GNU Lesser General Public License as published by the Free
+ * Software Foundation; either version 2.1 of the License, or (at your option)
+ * any later version.
+ *
+ * This software is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+ * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
+ * details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this software; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA, or see the FSF
+ * site: http://www.fsf.org.
+ */
+package org.jboss.soa.esb.services.security;
+
+import java.security.Principal;
+import java.util.List;
+
+import javax.security.auth.Subject;
+import javax.security.auth.login.LoginException;
+
+import org.jboss.soa.esb.ConfigurationException;
+import org.jboss.soa.esb.services.security.auth.AuthenticationRequest;
+
+/**
+ * This interface represents a Security service.
+ * <p/>
+ *
+ * @author <a href="mailto:dbevenius at redhat.com">Daniel Bevenius</a>
+ * @since 4.4
+ *
+ */
+public interface SecurityService
+{
+ /**
+ * Constant intended for usage as a key in different types of maps.
+ */
+ String CONTEXT = "org.jboss.soa.esb.services.security.context";
+
+ String AUTH_REQUEST = "org.jboss.soa.esb.services.security.authRequest";
+
+ /**
+ * Configure the security serivce for usage. This should take care of
+ * reading any needed configurations required by the security system.
+ *
+ * @throws ConfigurationException
+ */
+ void configure() throws ConfigurationException;
+
+ /**
+ * Authenticates a subject.
+ *
+ * @param securityContext - the security context to authenticate
+ * @throws LoginException - if the authentication was not sucessful
+ */
+ void authenticate(final SecurityConfig securityConfig, final SecurityContext securityContext, final AuthenticationRequest authRequest) throws SecurityServiceException;
+
+ /**
+ * Check if the the SecurityContext has a principal that is a member of one
+ * of the passed in rolesAllowed list.
+ *
+ * @param rolesAllowed - list or allowed roles
+ * @param securityContext - the security context
+ * @return true - if the SecurityContext has a principal that is a member of one the roles.
+ */
+ boolean checkRolesAllowed(final List<String> rolesAllowed, SecurityContext securityContext);
+
+ /**
+ * Determines if the subject contains the passed in role in it's
+ * set of Principals.
+ *
+ * @param subject - the Subject instance belonging to the caller.
+ * @param context - the principal instance representing the role to check for.
+ * @return true - if the caller has the role of
+ */
+ boolean isCallerInRole(final Subject subject, final Principal role);
+
+ /**
+ * Logout and clean up of any security state.
+ *
+ * @param securityContext
+ * @throws LoginException
+ */
+ void logout(final SecurityConfig securityConfig);
+
+ /**
+ * Refresh the security configuration
+ */
+ void refreshSecurityConfig();
+}
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/services/security/SecurityServiceException.java
===================================================================
--- labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/services/security/SecurityServiceException.java 2009-01-21 09:35:03 UTC (rev 24846)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/services/security/SecurityServiceException.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -1,47 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source Copyright 2008, Red Hat Middleware
- * LLC, and individual contributors by the @authors tag. See the copyright.txt
- * in the distribution for a full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it under the
- * terms of the GNU Lesser General Public License as published by the Free
- * Software Foundation; either version 2.1 of the License, or (at your option)
- * any later version.
- *
- * This software is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
- * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
- * details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this software; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA, or see the FSF
- * site: http://www.fsf.org.
- */
-package org.jboss.soa.esb.services.security;
-
-/**
- * Exception for SecurityServices.
- *
- * @author <a href="mailto:dbevenius at redhat.com">Daniel Bevenius</a>
- *
- */
-public class SecurityServiceException extends Exception
-{
- private static final long serialVersionUID = 1L;
-
- public SecurityServiceException()
- {
- super();
- }
-
- public SecurityServiceException (String msg)
- {
- super(msg);
- }
-
- public SecurityServiceException (String msg, Throwable cause)
- {
- super (msg, cause);
- }
-}
Copied: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/services/security/SecurityServiceException.java (from rev 24846, labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/services/security/SecurityServiceException.java)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/services/security/SecurityServiceException.java (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/services/security/SecurityServiceException.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -0,0 +1,47 @@
+/*
+ * JBoss, Home of Professional Open Source Copyright 2008, Red Hat Middleware
+ * LLC, and individual contributors by the @authors tag. See the copyright.txt
+ * in the distribution for a full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it under the
+ * terms of the GNU Lesser General Public License as published by the Free
+ * Software Foundation; either version 2.1 of the License, or (at your option)
+ * any later version.
+ *
+ * This software is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+ * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
+ * details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this software; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA, or see the FSF
+ * site: http://www.fsf.org.
+ */
+package org.jboss.soa.esb.services.security;
+
+/**
+ * Exception for SecurityServices.
+ *
+ * @author <a href="mailto:dbevenius at redhat.com">Daniel Bevenius</a>
+ *
+ */
+public class SecurityServiceException extends Exception
+{
+ private static final long serialVersionUID = 1L;
+
+ public SecurityServiceException()
+ {
+ super();
+ }
+
+ public SecurityServiceException (String msg)
+ {
+ super(msg);
+ }
+
+ public SecurityServiceException (String msg, Throwable cause)
+ {
+ super (msg, cause);
+ }
+}
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/services/security/SecurityServiceFactory.java
===================================================================
--- labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/services/security/SecurityServiceFactory.java 2009-01-21 09:35:03 UTC (rev 24846)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/services/security/SecurityServiceFactory.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -1,68 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source Copyright 2008, Red Hat Middleware
- * LLC, and individual contributors by the @authors tag. See the copyright.txt
- * in the distribution for a full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it under the
- * terms of the GNU Lesser General Public License as published by the Free
- * Software Foundation; either version 2.1 of the License, or (at your option)
- * any later version.
- *
- * This software is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
- * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
- * details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this software; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA, or see the FSF
- * site: http://www.fsf.org.
- */
-package org.jboss.soa.esb.services.security;
-
-import org.apache.log4j.Logger;
-import org.jboss.soa.esb.ConfigurationException;
-import org.jboss.soa.esb.common.Configuration;
-import org.jboss.soa.esb.util.ClassUtil;
-
-public class SecurityServiceFactory
-{
- private static Logger log = Logger.getLogger(SecurityServiceFactory.class);
-
- private static SecurityService instance;
-
- private SecurityServiceFactory() { }
-
- public static synchronized SecurityService getSecurityService() throws ConfigurationException
- {
- if (instance != null)
- {
- return instance;
- }
-
- String className = Configuration.getSecurityServiceImplementationClass();
- if ( className == null )
- {
- throw new ConfigurationException("No SecurityService implementation has been set. Please check the configuration");
- }
-
- SecurityService service = null;
- try
- {
- log.info("Using [" + className + "] as the SecurityService implementation.");
- Class<?> securityClass = ClassUtil.forName(className, SecurityService.class);
- service = (SecurityService) securityClass.newInstance();
- }
- catch (ClassNotFoundException e)
- {
- throw new ConfigurationException("SecurityService Implementation=" + className + " not found", e);
- }
- catch (Exception e)
- {
- throw new ConfigurationException("Invocation exception. " + e.getLocalizedMessage(), e);
- }
- instance = service;
- return service;
- }
-
-}
Copied: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/services/security/SecurityServiceFactory.java (from rev 24846, labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/services/security/SecurityServiceFactory.java)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/services/security/SecurityServiceFactory.java (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/services/security/SecurityServiceFactory.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -0,0 +1,68 @@
+/*
+ * JBoss, Home of Professional Open Source Copyright 2008, Red Hat Middleware
+ * LLC, and individual contributors by the @authors tag. See the copyright.txt
+ * in the distribution for a full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it under the
+ * terms of the GNU Lesser General Public License as published by the Free
+ * Software Foundation; either version 2.1 of the License, or (at your option)
+ * any later version.
+ *
+ * This software is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+ * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
+ * details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this software; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA, or see the FSF
+ * site: http://www.fsf.org.
+ */
+package org.jboss.soa.esb.services.security;
+
+import org.apache.log4j.Logger;
+import org.jboss.soa.esb.ConfigurationException;
+import org.jboss.soa.esb.common.Configuration;
+import org.jboss.soa.esb.util.ClassUtil;
+
+public class SecurityServiceFactory
+{
+ private static Logger log = Logger.getLogger(SecurityServiceFactory.class);
+
+ private static SecurityService instance;
+
+ private SecurityServiceFactory() { }
+
+ public static synchronized SecurityService getSecurityService() throws ConfigurationException
+ {
+ if (instance != null)
+ {
+ return instance;
+ }
+
+ String className = Configuration.getSecurityServiceImplementationClass();
+ if ( className == null )
+ {
+ throw new ConfigurationException("No SecurityService implementation has been set. Please check the configuration");
+ }
+
+ SecurityService service = null;
+ try
+ {
+ log.info("Using [" + className + "] as the SecurityService implementation.");
+ Class<?> securityClass = ClassUtil.forName(className, SecurityService.class);
+ service = (SecurityService) securityClass.newInstance();
+ }
+ catch (ClassNotFoundException e)
+ {
+ throw new ConfigurationException("SecurityService Implementation=" + className + " not found", e);
+ }
+ catch (Exception e)
+ {
+ throw new ConfigurationException("Invocation exception. " + e.getLocalizedMessage(), e);
+ }
+ instance = service;
+ return service;
+ }
+
+}
Copied: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/services/security/auth (from rev 24846, labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/services/security/auth)
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/services/security/auth/AuthenticationRequest.java
===================================================================
--- labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/services/security/auth/AuthenticationRequest.java 2009-01-21 09:35:03 UTC (rev 24846)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/services/security/auth/AuthenticationRequest.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -1,45 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source Copyright 2008, Red Hat Middleware
- * LLC, and individual contributors by the @authors tag. See the copyright.txt
- * in the distribution for a full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it under the
- * terms of the GNU Lesser General Public License as published by the Free
- * Software Foundation; either version 2.1 of the License, or (at your option)
- * any later version.
- *
- * This software is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
- * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
- * details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this software; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA, or see the FSF
- * site: http://www.fsf.org.
- */
-package org.jboss.soa.esb.services.security.auth;
-
-import java.security.Principal;
-import java.util.Map;
-import java.util.Set;
-
-/**
- * An AuthenticationRequest is intended to carry sensitive security
- * information between gateways and ESB services.
- * The information will be extracted from the specific transport that
- * the gateway uses.
- *
- * @author <a href="mailto:dbevenius at redhat.com">Daniel Bevenius</a>
- * @since 4.4
- *
- */
-public interface AuthenticationRequest
-{
- public abstract Set<?> getCredentials();
-
- public abstract Map<String, ?> getProperties();
-
- public abstract Principal getPrincipal();
-
-}
\ No newline at end of file
Copied: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/services/security/auth/AuthenticationRequest.java (from rev 24846, labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/services/security/auth/AuthenticationRequest.java)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/services/security/auth/AuthenticationRequest.java (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/services/security/auth/AuthenticationRequest.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -0,0 +1,45 @@
+/*
+ * JBoss, Home of Professional Open Source Copyright 2008, Red Hat Middleware
+ * LLC, and individual contributors by the @authors tag. See the copyright.txt
+ * in the distribution for a full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it under the
+ * terms of the GNU Lesser General Public License as published by the Free
+ * Software Foundation; either version 2.1 of the License, or (at your option)
+ * any later version.
+ *
+ * This software is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+ * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
+ * details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this software; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA, or see the FSF
+ * site: http://www.fsf.org.
+ */
+package org.jboss.soa.esb.services.security.auth;
+
+import java.security.Principal;
+import java.util.Map;
+import java.util.Set;
+
+/**
+ * An AuthenticationRequest is intended to carry sensitive security
+ * information between gateways and ESB services.
+ * The information will be extracted from the specific transport that
+ * the gateway uses.
+ *
+ * @author <a href="mailto:dbevenius at redhat.com">Daniel Bevenius</a>
+ * @since 4.4
+ *
+ */
+public interface AuthenticationRequest
+{
+ public abstract Set<?> getCredentials();
+
+ public abstract Map<String, ?> getProperties();
+
+ public abstract Principal getPrincipal();
+
+}
\ No newline at end of file
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/services/security/auth/AuthenticationRequestImpl.java
===================================================================
--- labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/services/security/auth/AuthenticationRequestImpl.java 2009-01-21 09:35:03 UTC (rev 24846)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/services/security/auth/AuthenticationRequestImpl.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -1,120 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source Copyright 2008, Red Hat Middleware
- * LLC, and individual contributors by the @authors tag. See the copyright.txt
- * in the distribution for a full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it under the
- * terms of the GNU Lesser General Public License as published by the Free
- * Software Foundation; either version 2.1 of the License, or (at your option)
- * any later version.
- *
- * This software is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
- * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
- * details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this software; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA, or see the FSF
- * site: http://www.fsf.org.
- */
-package org.jboss.soa.esb.services.security.auth;
-
-import java.io.Serializable;
-import java.security.Principal;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.Map;
-import java.util.Set;
-
-import org.jboss.soa.esb.services.security.principals.User;
-
-/**
- * AuthenticationRequestImpl is indended to transport security related information
- * needed to authenticate a caller.
- * </p>
- *
- * @author <a href="mailto:dbevenius at redhat.com">Daniel Bevenius</a>
- *
- */
-public class AuthenticationRequestImpl implements Serializable, AuthenticationRequest
-{
- private static final long serialVersionUID = 1L;
-
- private Principal principal;
- private Set<?> credentials;
- private Map<String,?> properties;
-
- /* (non-Javadoc)
- * @see org.jboss.soa.esb.services.security.auth.AuthenticationRequest#getCredentials()
- */
- public Set<?> getCredentials()
- {
- return credentials;
- }
-
- /* (non-Javadoc)
- * @see org.jboss.soa.esb.services.security.auth.AuthenticationRequest#getProperties()
- */
- public Map<String, ?> getProperties()
- {
- return properties;
- }
-
- /* (non-Javadoc)
- * @see org.jboss.soa.esb.services.security.auth.AuthenticationRequest#getPrincipal()
- */
- public Principal getPrincipal()
- {
- return principal;
- }
-
- public static class Builder
- {
- private Principal principal;
- private Set<Object> credentials = new HashSet<Object>();
- private Map<String,Object> properties = new HashMap<String,Object>();
-
- public Builder() {}
-
- public Builder(final Principal principal, final Set<Object> credentials)
- {
- this.principal = principal;
- if ( credentials != null )
- {
- this.credentials.addAll(credentials);
- }
- }
-
- public Builder property( final String name, final Object value)
- {
- properties.put(name, value);
- return this;
- }
-
- public Builder username( final String username )
- {
- principal = new User( username );
- return this;
- }
-
- public Builder password( final char[] password )
- {
- credentials.add(password);
- return this;
- }
-
- public AuthenticationRequest build()
- {
- return new AuthenticationRequestImpl(this);
- }
- }
-
- private AuthenticationRequestImpl(final Builder builder)
- {
- principal = builder.principal;
- credentials = builder.credentials;
- properties = builder.properties;
- }
-
-}
Copied: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/services/security/auth/AuthenticationRequestImpl.java (from rev 24846, labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/services/security/auth/AuthenticationRequestImpl.java)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/services/security/auth/AuthenticationRequestImpl.java (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/services/security/auth/AuthenticationRequestImpl.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -0,0 +1,120 @@
+/*
+ * JBoss, Home of Professional Open Source Copyright 2008, Red Hat Middleware
+ * LLC, and individual contributors by the @authors tag. See the copyright.txt
+ * in the distribution for a full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it under the
+ * terms of the GNU Lesser General Public License as published by the Free
+ * Software Foundation; either version 2.1 of the License, or (at your option)
+ * any later version.
+ *
+ * This software is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+ * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
+ * details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this software; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA, or see the FSF
+ * site: http://www.fsf.org.
+ */
+package org.jboss.soa.esb.services.security.auth;
+
+import java.io.Serializable;
+import java.security.Principal;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Map;
+import java.util.Set;
+
+import org.jboss.soa.esb.services.security.principals.User;
+
+/**
+ * AuthenticationRequestImpl is indended to transport security related information
+ * needed to authenticate a caller.
+ * </p>
+ *
+ * @author <a href="mailto:dbevenius at redhat.com">Daniel Bevenius</a>
+ *
+ */
+public class AuthenticationRequestImpl implements Serializable, AuthenticationRequest
+{
+ private static final long serialVersionUID = 1L;
+
+ private Principal principal;
+ private Set<?> credentials;
+ private Map<String,?> properties;
+
+ /* (non-Javadoc)
+ * @see org.jboss.soa.esb.services.security.auth.AuthenticationRequest#getCredentials()
+ */
+ public Set<?> getCredentials()
+ {
+ return credentials;
+ }
+
+ /* (non-Javadoc)
+ * @see org.jboss.soa.esb.services.security.auth.AuthenticationRequest#getProperties()
+ */
+ public Map<String, ?> getProperties()
+ {
+ return properties;
+ }
+
+ /* (non-Javadoc)
+ * @see org.jboss.soa.esb.services.security.auth.AuthenticationRequest#getPrincipal()
+ */
+ public Principal getPrincipal()
+ {
+ return principal;
+ }
+
+ public static class Builder
+ {
+ private Principal principal;
+ private Set<Object> credentials = new HashSet<Object>();
+ private Map<String,Object> properties = new HashMap<String,Object>();
+
+ public Builder() {}
+
+ public Builder(final Principal principal, final Set<Object> credentials)
+ {
+ this.principal = principal;
+ if ( credentials != null )
+ {
+ this.credentials.addAll(credentials);
+ }
+ }
+
+ public Builder property( final String name, final Object value)
+ {
+ properties.put(name, value);
+ return this;
+ }
+
+ public Builder username( final String username )
+ {
+ principal = new User( username );
+ return this;
+ }
+
+ public Builder password( final char[] password )
+ {
+ credentials.add(password);
+ return this;
+ }
+
+ public AuthenticationRequest build()
+ {
+ return new AuthenticationRequestImpl(this);
+ }
+ }
+
+ private AuthenticationRequestImpl(final Builder builder)
+ {
+ principal = builder.principal;
+ credentials = builder.credentials;
+ properties = builder.properties;
+ }
+
+}
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/services/security/auth/SecurityInfoExtractor.java
===================================================================
--- labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/services/security/auth/SecurityInfoExtractor.java 2009-01-21 09:35:03 UTC (rev 24846)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/services/security/auth/SecurityInfoExtractor.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -1,41 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source Copyright 2008, Red Hat Middleware
- * LLC, and individual contributors by the @authors tag. See the copyright.txt
- * in the distribution for a full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it under the
- * terms of the GNU Lesser General Public License as published by the Free
- * Software Foundation; either version 2.1 of the License, or (at your option)
- * any later version.
- *
- * This software is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
- * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
- * details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this software; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA, or see the FSF
- * site: http://www.fsf.org.
- */
-package org.jboss.soa.esb.services.security.auth;
-
-/**
- * SecurityInfoExtractor is indended for extracting security related
- * information for different of transports.
- *
- * @author <a href="mailto:dbevenius at redhat.com">Daniel Bevenius</a>
- *
- * @param <T>
- */
-public interface SecurityInfoExtractor<T>
-{
- /**
- * Extracts security related information from type T and
- * populates a {@link AuthenticationRequest}.
- *
- * @param t - the type from which security information is to be extracted
- * @return - and instance of {@link AuthenticationRequest}
- */
- AuthenticationRequest extractSecurityInfo( final T t );
-}
\ No newline at end of file
Copied: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/services/security/auth/SecurityInfoExtractor.java (from rev 24846, labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/services/security/auth/SecurityInfoExtractor.java)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/services/security/auth/SecurityInfoExtractor.java (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/services/security/auth/SecurityInfoExtractor.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -0,0 +1,41 @@
+/*
+ * JBoss, Home of Professional Open Source Copyright 2008, Red Hat Middleware
+ * LLC, and individual contributors by the @authors tag. See the copyright.txt
+ * in the distribution for a full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it under the
+ * terms of the GNU Lesser General Public License as published by the Free
+ * Software Foundation; either version 2.1 of the License, or (at your option)
+ * any later version.
+ *
+ * This software is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+ * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
+ * details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this software; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA, or see the FSF
+ * site: http://www.fsf.org.
+ */
+package org.jboss.soa.esb.services.security.auth;
+
+/**
+ * SecurityInfoExtractor is indended for extracting security related
+ * information for different of transports.
+ *
+ * @author <a href="mailto:dbevenius at redhat.com">Daniel Bevenius</a>
+ *
+ * @param <T>
+ */
+public interface SecurityInfoExtractor<T>
+{
+ /**
+ * Extracts security related information from type T and
+ * populates a {@link AuthenticationRequest}.
+ *
+ * @param t - the type from which security information is to be extracted
+ * @return - and instance of {@link AuthenticationRequest}
+ */
+ AuthenticationRequest extractSecurityInfo( final T t );
+}
\ No newline at end of file
Copied: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/services/security/auth/http (from rev 24846, labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/services/security/auth/http)
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/services/security/auth/http/JbrHttpSecurityInfoExtractor.java
===================================================================
--- labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/services/security/auth/http/JbrHttpSecurityInfoExtractor.java 2009-01-21 09:35:03 UTC (rev 24846)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/services/security/auth/http/JbrHttpSecurityInfoExtractor.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -1,70 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source Copyright 2008, Red Hat Middleware
- * LLC, and individual contributors by the @authors tag. See the copyright.txt
- * in the distribution for a full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it under the
- * terms of the GNU Lesser General Public License as published by the Free
- * Software Foundation; either version 2.1 of the License, or (at your option)
- * any later version.
- *
- * This software is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
- * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
- * details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this software; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA, or see the FSF
- * site: http://www.fsf.org.
- */
-package org.jboss.soa.esb.services.security.auth.http;
-
-import java.util.HashSet;
-import java.util.Map;
-import java.util.Set;
-
-import org.apache.log4j.Logger;
-import org.jboss.soa.esb.services.security.auth.AuthenticationRequest;
-import org.jboss.soa.esb.services.security.auth.AuthenticationRequestImpl;
-import org.jboss.soa.esb.services.security.auth.SecurityInfoExtractor;
-import org.jboss.soa.esb.services.security.principals.User;
-
-/**
- *
- * @author <a href="mailto:dbevenius at redhat.com">Daniel Bevenius</a>
- *
- */
-public class JbrHttpSecurityInfoExtractor implements SecurityInfoExtractor<Map<String,Object>>
-{
- private Logger log = Logger.getLogger(JbrHttpSecurityInfoExtractor.class);
-
- public static final String USERNAME_KEY = "http.basic.username";
- public static final String PASSWORD_KEY = "http.basic.password";
-
- public AuthenticationRequest extractSecurityInfo( final Map<String,Object> request )
- {
- AuthenticationRequest authRequest = null;
- String username = (String) request.get(USERNAME_KEY);
- if ( username != null )
- {
- User user = new User((String)username);
- Set<Object> credentials = new HashSet<Object>();
-
- String passwd = (String) request.get(PASSWORD_KEY);
- if ( passwd != null )
- {
- credentials.add(passwd.toCharArray());
- Object remove = request.remove(PASSWORD_KEY);
- if ( remove == null )
- {
- log.warn("Could not remove the password from the request map");
- }
- }
-
- authRequest = new AuthenticationRequestImpl.Builder( user, credentials ).build();
- }
- return authRequest;
- }
-
-}
Copied: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/services/security/auth/http/JbrHttpSecurityInfoExtractor.java (from rev 24846, labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/services/security/auth/http/JbrHttpSecurityInfoExtractor.java)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/services/security/auth/http/JbrHttpSecurityInfoExtractor.java (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/services/security/auth/http/JbrHttpSecurityInfoExtractor.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -0,0 +1,70 @@
+/*
+ * JBoss, Home of Professional Open Source Copyright 2008, Red Hat Middleware
+ * LLC, and individual contributors by the @authors tag. See the copyright.txt
+ * in the distribution for a full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it under the
+ * terms of the GNU Lesser General Public License as published by the Free
+ * Software Foundation; either version 2.1 of the License, or (at your option)
+ * any later version.
+ *
+ * This software is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+ * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
+ * details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this software; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA, or see the FSF
+ * site: http://www.fsf.org.
+ */
+package org.jboss.soa.esb.services.security.auth.http;
+
+import java.util.HashSet;
+import java.util.Map;
+import java.util.Set;
+
+import org.apache.log4j.Logger;
+import org.jboss.soa.esb.services.security.auth.AuthenticationRequest;
+import org.jboss.soa.esb.services.security.auth.AuthenticationRequestImpl;
+import org.jboss.soa.esb.services.security.auth.SecurityInfoExtractor;
+import org.jboss.soa.esb.services.security.principals.User;
+
+/**
+ *
+ * @author <a href="mailto:dbevenius at redhat.com">Daniel Bevenius</a>
+ *
+ */
+public class JbrHttpSecurityInfoExtractor implements SecurityInfoExtractor<Map<String,Object>>
+{
+ private Logger log = Logger.getLogger(JbrHttpSecurityInfoExtractor.class);
+
+ public static final String USERNAME_KEY = "http.basic.username";
+ public static final String PASSWORD_KEY = "http.basic.password";
+
+ public AuthenticationRequest extractSecurityInfo( final Map<String,Object> request )
+ {
+ AuthenticationRequest authRequest = null;
+ String username = (String) request.get(USERNAME_KEY);
+ if ( username != null )
+ {
+ User user = new User((String)username);
+ Set<Object> credentials = new HashSet<Object>();
+
+ String passwd = (String) request.get(PASSWORD_KEY);
+ if ( passwd != null )
+ {
+ credentials.add(passwd.toCharArray());
+ Object remove = request.remove(PASSWORD_KEY);
+ if ( remove == null )
+ {
+ log.warn("Could not remove the password from the request map");
+ }
+ }
+
+ authRequest = new AuthenticationRequestImpl.Builder( user, credentials ).build();
+ }
+ return authRequest;
+ }
+
+}
Copied: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/services/security/auth/ws (from rev 24846, labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/services/security/auth/ws)
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/services/security/auth/ws/BinarySecurityToken.java
===================================================================
--- labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/services/security/auth/ws/BinarySecurityToken.java 2009-01-21 09:35:03 UTC (rev 24846)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/services/security/auth/ws/BinarySecurityToken.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -1,122 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source Copyright 2008, Red Hat Middleware
- * LLC, and individual contributors by the @authors tag. See the copyright.txt
- * in the distribution for a full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it under the
- * terms of the GNU Lesser General Public License as published by the Free
- * Software Foundation; either version 2.1 of the License, or (at your option)
- * any later version.
- *
- * This software is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
- * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
- * details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this software; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA, or see the FSF
- * site: http://www.fsf.org.
- */
-package org.jboss.soa.esb.services.security.auth.ws;
-
-import java.io.ByteArrayInputStream;
-import java.io.IOException;
-import java.security.cert.Certificate;
-import java.security.cert.CertificateException;
-import java.security.cert.CertificateFactory;
-
-import org.apache.commons.codec.binary.Base64;
-
-/**
- * Represents a WS-Security BinarySecurityToken.
- * <p/>
- *
- * @author <a href="mailto:dbevenius at redhat.com">Daniel Bevenius</a>
- *
- */
-public class BinarySecurityToken
-{
- private String encodingType;
- private String valueType;
- private Certificate cert;
- private enum EncodingType { Base64Binary, HexBinary }
-
- public String getEncodingType()
- {
- return encodingType;
- }
-
- public void setEncodingType(String encodingType)
- {
- this.encodingType = stripNS(encodingType);
- }
-
- public String getValueType()
- {
- return valueType;
- }
-
- public void setValueType(String valueType)
- {
- this.valueType = stripNS(valueType);
- }
-
- public Certificate getKey()
- {
- return cert;
- }
-
- public void setKey(final String key)
- {
- try
- {
- byte[] keyBytes = null;
- if ( encodingType.equalsIgnoreCase( EncodingType.Base64Binary.toString() ) )
- {
- Base64 decoder = new Base64();
- keyBytes = decoder.decode(key.getBytes());
- }
- else
- {
- keyBytes = key.getBytes();
- }
-
- CertificateFactory factory = CertificateFactory.getInstance( certificateMatch( valueType ) );
- cert = factory.generateCertificate( new ByteArrayInputStream( keyBytes ));
- }
- catch (CertificateException e)
- {
- throw new IllegalStateException("Could not create certificate: ", e);
- }
- }
-
- private String certificateMatch(final String valueType)
- {
- if ( valueType.startsWith("X509") )
- return "X.509";
-
- return valueType;
- }
-
- private String stripNS(String value)
- {
- if ( value != null )
- {
- if ( value.startsWith("http"))
- {
- final int idx = value.indexOf('#');
- if ( idx > 0 )
- value = value.substring( idx + 1 );
- }
- else
- {
- final int idx = value.indexOf(':');
- if ( idx > 0 )
- value = value.substring( idx + 1 );
- }
- }
- return value;
- }
-
-}
Copied: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/services/security/auth/ws/BinarySecurityToken.java (from rev 24846, labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/services/security/auth/ws/BinarySecurityToken.java)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/services/security/auth/ws/BinarySecurityToken.java (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/services/security/auth/ws/BinarySecurityToken.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -0,0 +1,122 @@
+/*
+ * JBoss, Home of Professional Open Source Copyright 2008, Red Hat Middleware
+ * LLC, and individual contributors by the @authors tag. See the copyright.txt
+ * in the distribution for a full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it under the
+ * terms of the GNU Lesser General Public License as published by the Free
+ * Software Foundation; either version 2.1 of the License, or (at your option)
+ * any later version.
+ *
+ * This software is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+ * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
+ * details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this software; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA, or see the FSF
+ * site: http://www.fsf.org.
+ */
+package org.jboss.soa.esb.services.security.auth.ws;
+
+import java.io.ByteArrayInputStream;
+import java.io.IOException;
+import java.security.cert.Certificate;
+import java.security.cert.CertificateException;
+import java.security.cert.CertificateFactory;
+
+import org.apache.commons.codec.binary.Base64;
+
+/**
+ * Represents a WS-Security BinarySecurityToken.
+ * <p/>
+ *
+ * @author <a href="mailto:dbevenius at redhat.com">Daniel Bevenius</a>
+ *
+ */
+public class BinarySecurityToken
+{
+ private String encodingType;
+ private String valueType;
+ private Certificate cert;
+ private enum EncodingType { Base64Binary, HexBinary }
+
+ public String getEncodingType()
+ {
+ return encodingType;
+ }
+
+ public void setEncodingType(String encodingType)
+ {
+ this.encodingType = stripNS(encodingType);
+ }
+
+ public String getValueType()
+ {
+ return valueType;
+ }
+
+ public void setValueType(String valueType)
+ {
+ this.valueType = stripNS(valueType);
+ }
+
+ public Certificate getKey()
+ {
+ return cert;
+ }
+
+ public void setKey(final String key)
+ {
+ try
+ {
+ byte[] keyBytes = null;
+ if ( encodingType.equalsIgnoreCase( EncodingType.Base64Binary.toString() ) )
+ {
+ Base64 decoder = new Base64();
+ keyBytes = decoder.decode(key.getBytes());
+ }
+ else
+ {
+ keyBytes = key.getBytes();
+ }
+
+ CertificateFactory factory = CertificateFactory.getInstance( certificateMatch( valueType ) );
+ cert = factory.generateCertificate( new ByteArrayInputStream( keyBytes ));
+ }
+ catch (CertificateException e)
+ {
+ throw new IllegalStateException("Could not create certificate: ", e);
+ }
+ }
+
+ private String certificateMatch(final String valueType)
+ {
+ if ( valueType.startsWith("X509") )
+ return "X.509";
+
+ return valueType;
+ }
+
+ private String stripNS(String value)
+ {
+ if ( value != null )
+ {
+ if ( value.startsWith("http"))
+ {
+ final int idx = value.indexOf('#');
+ if ( idx > 0 )
+ value = value.substring( idx + 1 );
+ }
+ else
+ {
+ final int idx = value.indexOf(':');
+ if ( idx > 0 )
+ value = value.substring( idx + 1 );
+ }
+ }
+ return value;
+ }
+
+}
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/services/security/auth/ws/UsernameToken.java
===================================================================
--- labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/services/security/auth/ws/UsernameToken.java 2009-01-21 09:35:03 UTC (rev 24846)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/services/security/auth/ws/UsernameToken.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -1,56 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source Copyright 2008, Red Hat Middleware
- * LLC, and individual contributors by the @authors tag. See the copyright.txt
- * in the distribution for a full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it under the
- * terms of the GNU Lesser General Public License as published by the Free
- * Software Foundation; either version 2.1 of the License, or (at your option)
- * any later version.
- *
- * This software is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
- * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
- * details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this software; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA, or see the FSF
- * site: http://www.fsf.org.
- */
-package org.jboss.soa.esb.services.security.auth.ws;
-
-/**
- * Placeholder for security information form a ws request.
- * <p/>
- *
- * @author <a href="mailto:dbevenius at redhat.com">Daniel Bevenius</a>
- *
- */
-public class UsernameToken
-{
- private String userName;
- private char[] password;
-
- public char[] getPassword()
- {
- return password;
- }
-
- public void setPassword(String password)
- {
- this.password = password.toCharArray();
- }
-
- public String getUserName()
- {
- return userName;
- }
-
- public void setUserName(String userName)
- {
- this.userName = userName;
- }
-
-
-}
Copied: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/services/security/auth/ws/UsernameToken.java (from rev 24846, labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/services/security/auth/ws/UsernameToken.java)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/services/security/auth/ws/UsernameToken.java (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/services/security/auth/ws/UsernameToken.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -0,0 +1,56 @@
+/*
+ * JBoss, Home of Professional Open Source Copyright 2008, Red Hat Middleware
+ * LLC, and individual contributors by the @authors tag. See the copyright.txt
+ * in the distribution for a full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it under the
+ * terms of the GNU Lesser General Public License as published by the Free
+ * Software Foundation; either version 2.1 of the License, or (at your option)
+ * any later version.
+ *
+ * This software is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+ * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
+ * details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this software; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA, or see the FSF
+ * site: http://www.fsf.org.
+ */
+package org.jboss.soa.esb.services.security.auth.ws;
+
+/**
+ * Placeholder for security information form a ws request.
+ * <p/>
+ *
+ * @author <a href="mailto:dbevenius at redhat.com">Daniel Bevenius</a>
+ *
+ */
+public class UsernameToken
+{
+ private String userName;
+ private char[] password;
+
+ public char[] getPassword()
+ {
+ return password;
+ }
+
+ public void setPassword(String password)
+ {
+ this.password = password.toCharArray();
+ }
+
+ public String getUserName()
+ {
+ return userName;
+ }
+
+ public void setUserName(String userName)
+ {
+ this.userName = userName;
+ }
+
+
+}
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/services/security/auth/ws/WSSecurityInfoExtractor.java
===================================================================
--- labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/services/security/auth/ws/WSSecurityInfoExtractor.java 2009-01-21 09:35:03 UTC (rev 24846)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/services/security/auth/ws/WSSecurityInfoExtractor.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -1,136 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source Copyright 2008, Red Hat Middleware
- * LLC, and individual contributors by the @authors tag. See the copyright.txt
- * in the distribution for a full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it under the
- * terms of the GNU Lesser General Public License as published by the Free
- * Software Foundation; either version 2.1 of the License, or (at your option)
- * any later version.
- *
- * This software is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
- * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
- * details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this software; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA, or see the FSF
- * site: http://www.fsf.org.
- */
-package org.jboss.soa.esb.services.security.auth.ws;
-
-import java.io.IOException;
-import java.io.StringReader;
-import java.util.HashSet;
-import java.util.Set;
-
-import javax.xml.transform.stream.StreamSource;
-
-import org.jboss.soa.esb.services.security.auth.AuthenticationRequest;
-import org.jboss.soa.esb.services.security.auth.AuthenticationRequestImpl;
-import org.jboss.soa.esb.services.security.auth.SecurityInfoExtractor;
-import org.jboss.soa.esb.services.security.principals.User;
-import org.jboss.soa.esb.util.ClassUtil;
-import org.milyn.Smooks;
-import org.milyn.payload.JavaResult;
-import org.xml.sax.SAXException;
-
-/**
- * WSSecurityInfoExtractor extracts security related information from
- * a SOAP security header.
- * </p>
- * If the security element contains a 'UsernameToken' element this will be
- * extraced into a principal with the username and a credential being the
- * password represented as a character array.
- *
- *
- * @author <a href="mailto:dbevenius at redhat.com">Daniel Bevenius</a>
- *
- */
-public class WSSecurityInfoExtractor implements SecurityInfoExtractor<String>
-{
- /**
- * Smooks configuration file which specified the extraction
- */
- private static final String SMOOK_CONFIG_FILE = "smooks-ws-security.xml";
- /**
- * Smooks instance the will perform the extraction
- */
- private Smooks smooks;
-
- /**
- * Creates an instance using the default Smooks config file.
- */
- public WSSecurityInfoExtractor()
- {
- createSmooks( SMOOK_CONFIG_FILE );
- }
-
- /**
- * Creates an instance of Smooks using the passed in config file.
- *
- * @param configFile - the Smooks config file to use.
- */
- public WSSecurityInfoExtractor(final String configFile)
- {
- createSmooks(configFile);
- }
-
- /**
- * Extracts UsernameToken element is one exists and creates
- * a Principal with the username and sets a Credential using
- * the password. The type of the Credential is a character array.
- * If the SOAP message contains a BinarySecurityToken this will be
- * extracted and added as a Credential.
- * @param soap - the soap message represented as a String
- * @return {@link AuthenticationRequest}
- */
- public AuthenticationRequest extractSecurityInfo(final String soap)
- {
- if ( soap == null || !soap.startsWith("<") )
- {
- return null;
- }
-
- final JavaResult javaResult = new JavaResult();
- smooks.filter(new StreamSource(new StringReader(soap)), javaResult);
-
- UsernameToken token = (UsernameToken) javaResult.getBean("userNameToken");
- User user = null;
- Set<Object> credentials = new HashSet<Object>();
- if ( token != null )
- {
- user = new User(token.getUserName());
- credentials.add(token.getPassword());
- }
-
- BinarySecurityToken binaryToken = (BinarySecurityToken) javaResult.getBean("binarySecurityToken");
- if ( binaryToken != null )
- {
- credentials.add(binaryToken.getKey());
- }
- if (credentials.isEmpty())
- {
- return null ;
- }
- return new AuthenticationRequestImpl.Builder(user, credentials ).build();
- }
-
- private void createSmooks(final String configFile)
- {
- try
- {
- this.smooks = new Smooks( ClassUtil.getResourceAsStream(configFile, getClass()));
- }
- catch (final SAXException e)
- {
- throw new IllegalStateException("Could not parse " + configFile, e);
- }
- catch (final IOException e)
- {
- throw new IllegalStateException("Could not parse " + configFile, e);
- }
- }
-
-}
Copied: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/services/security/auth/ws/WSSecurityInfoExtractor.java (from rev 24846, labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/services/security/auth/ws/WSSecurityInfoExtractor.java)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/services/security/auth/ws/WSSecurityInfoExtractor.java (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/services/security/auth/ws/WSSecurityInfoExtractor.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -0,0 +1,136 @@
+/*
+ * JBoss, Home of Professional Open Source Copyright 2008, Red Hat Middleware
+ * LLC, and individual contributors by the @authors tag. See the copyright.txt
+ * in the distribution for a full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it under the
+ * terms of the GNU Lesser General Public License as published by the Free
+ * Software Foundation; either version 2.1 of the License, or (at your option)
+ * any later version.
+ *
+ * This software is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+ * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
+ * details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this software; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA, or see the FSF
+ * site: http://www.fsf.org.
+ */
+package org.jboss.soa.esb.services.security.auth.ws;
+
+import java.io.IOException;
+import java.io.StringReader;
+import java.util.HashSet;
+import java.util.Set;
+
+import javax.xml.transform.stream.StreamSource;
+
+import org.jboss.soa.esb.services.security.auth.AuthenticationRequest;
+import org.jboss.soa.esb.services.security.auth.AuthenticationRequestImpl;
+import org.jboss.soa.esb.services.security.auth.SecurityInfoExtractor;
+import org.jboss.soa.esb.services.security.principals.User;
+import org.jboss.soa.esb.util.ClassUtil;
+import org.milyn.Smooks;
+import org.milyn.payload.JavaResult;
+import org.xml.sax.SAXException;
+
+/**
+ * WSSecurityInfoExtractor extracts security related information from
+ * a SOAP security header.
+ * </p>
+ * If the security element contains a 'UsernameToken' element this will be
+ * extraced into a principal with the username and a credential being the
+ * password represented as a character array.
+ *
+ *
+ * @author <a href="mailto:dbevenius at redhat.com">Daniel Bevenius</a>
+ *
+ */
+public class WSSecurityInfoExtractor implements SecurityInfoExtractor<String>
+{
+ /**
+ * Smooks configuration file which specified the extraction
+ */
+ private static final String SMOOK_CONFIG_FILE = "smooks-ws-security.xml";
+ /**
+ * Smooks instance the will perform the extraction
+ */
+ private Smooks smooks;
+
+ /**
+ * Creates an instance using the default Smooks config file.
+ */
+ public WSSecurityInfoExtractor()
+ {
+ createSmooks( SMOOK_CONFIG_FILE );
+ }
+
+ /**
+ * Creates an instance of Smooks using the passed in config file.
+ *
+ * @param configFile - the Smooks config file to use.
+ */
+ public WSSecurityInfoExtractor(final String configFile)
+ {
+ createSmooks(configFile);
+ }
+
+ /**
+ * Extracts UsernameToken element is one exists and creates
+ * a Principal with the username and sets a Credential using
+ * the password. The type of the Credential is a character array.
+ * If the SOAP message contains a BinarySecurityToken this will be
+ * extracted and added as a Credential.
+ * @param soap - the soap message represented as a String
+ * @return {@link AuthenticationRequest}
+ */
+ public AuthenticationRequest extractSecurityInfo(final String soap)
+ {
+ if ( soap == null || !soap.startsWith("<") )
+ {
+ return null;
+ }
+
+ final JavaResult javaResult = new JavaResult();
+ smooks.filter(new StreamSource(new StringReader(soap)), javaResult);
+
+ UsernameToken token = (UsernameToken) javaResult.getBean("userNameToken");
+ User user = null;
+ Set<Object> credentials = new HashSet<Object>();
+ if ( token != null )
+ {
+ user = new User(token.getUserName());
+ credentials.add(token.getPassword());
+ }
+
+ BinarySecurityToken binaryToken = (BinarySecurityToken) javaResult.getBean("binarySecurityToken");
+ if ( binaryToken != null )
+ {
+ credentials.add(binaryToken.getKey());
+ }
+ if (credentials.isEmpty())
+ {
+ return null ;
+ }
+ return new AuthenticationRequestImpl.Builder(user, credentials ).build();
+ }
+
+ private void createSmooks(final String configFile)
+ {
+ try
+ {
+ this.smooks = new Smooks( ClassUtil.getResourceAsStream(configFile, getClass()));
+ }
+ catch (final SAXException e)
+ {
+ throw new IllegalStateException("Could not parse " + configFile, e);
+ }
+ catch (final IOException e)
+ {
+ throw new IllegalStateException("Could not parse " + configFile, e);
+ }
+ }
+
+}
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/services/security/auth/ws/WSSecuritySoapExtractor.java
===================================================================
--- labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/services/security/auth/ws/WSSecuritySoapExtractor.java 2009-01-21 09:35:03 UTC (rev 24846)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/services/security/auth/ws/WSSecuritySoapExtractor.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -1,210 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source Copyright 2008, Red Hat Middleware
- * LLC, and individual contributors by the @authors tag. See the copyright.txt
- * in the distribution for a full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it under the
- * terms of the GNU Lesser General Public License as published by the Free
- * Software Foundation; either version 2.1 of the License, or (at your option)
- * any later version.
- *
- * This software is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
- * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
- * details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this software; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA, or see the FSF
- * site: http://www.fsf.org.
- */
-package org.jboss.soa.esb.services.security.auth.ws;
-
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.Set;
-
-import javax.xml.soap.Name;
-import javax.xml.soap.SOAPEnvelope;
-import javax.xml.soap.SOAPException;
-import javax.xml.soap.SOAPHeader;
-import javax.xml.soap.SOAPHeaderElement;
-import javax.xml.soap.SOAPMessage;
-
-import org.apache.log4j.Logger;
-import org.jboss.soa.esb.services.security.auth.AuthenticationRequest;
-import org.jboss.soa.esb.services.security.auth.AuthenticationRequestImpl;
-import org.jboss.soa.esb.services.security.auth.SecurityInfoExtractor;
-import org.jboss.soa.esb.services.security.principals.User;
-import org.w3c.dom.NamedNodeMap;
-import org.w3c.dom.Node;
-import org.w3c.dom.NodeList;
-
-/**
- * WSSecurityInfoExtractor extracts security related information from
- * a SOAP security header.
- * </p>
- *
- * If the security element contains a 'UsernameToken' element this will be
- * extraced into a principal with the username and a credential being the
- * password represented as a character array.
- * <br>
- * If the security element contains a 'BinarySecurityToken' element this informaiton
- * will be extracted into a credential which will be the content, or value, of
- * the BinarySecurityToken element.
- *
- * @author <a href="mailto:dbevenius at redhat.com">Daniel Bevenius</a>
- *
- */
-public class WSSecuritySoapExtractor implements SecurityInfoExtractor<SOAPMessage>
-{
- /**
- * Security element localname
- */
- public static final String WSSE_LN = "Security";
-
- /**
- * SOAP Message Security 1.0 NameSpace URL
- */
- public static final String WSSE_NS = "http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd";
-
- private Logger log = Logger.getLogger(WSSecuritySoapExtractor.class);
-
- /**
- * Extracts UsernameToken element is one exists and creates
- * a Principal with the username and sets a Credential using
- * the password. The type of the Credential is a character array.
- * If the SOAP message contains a BinarySecurityToken this will be
- * extracted and added as a Credential.
- * <p>
- * Note that this method i restrictive in reporting errors within the soap
- * message. This is instead reflected in missing values in the returned
- * AuthenticationRequest. This is done on purpose as not to give away
- * any information about missing information. The SecuritySerivce impl
- * should decide what information it wants a caller to recieve.
- *
- * @param soap - the soap message represented as a String
- * @return {@link AuthenticationRequest}
- */
- public AuthenticationRequest extractSecurityInfo(final SOAPMessage soap)
- {
- if ( soap == null )
- {
- return null;
- }
-
- User user = null;
- Set<Object> credentials = new HashSet<Object>();
-
- try
- {
- final SOAPHeaderElement securityHeader = getSecurityHeader( soap.getSOAPPart().getEnvelope() );
- if ( securityHeader == null )
- {
- return null;
- }
- Iterator childElements = securityHeader.getChildElements();
- while ( childElements.hasNext() )
- {
- final Node securityNode = (Node) childElements.next();
- if ( securityNode.getNodeType() == Node.ELEMENT_NODE )
- {
- final String localName = securityNode.getLocalName();
- if ( "BinarySecurityToken".equalsIgnoreCase( localName ) )
- {
- // create a BinarySecurityToken (does some filtering and checking)
- final BinarySecurityToken binaryToken = createBinarySecurityToken(securityNode);
- // add the key(cert) as a credential
- credentials.add(binaryToken.getKey());
- }
- else if ( "UsernameToken".equalsIgnoreCase(localName) )
- {
- UsernameToken usernameToken = createUsernameToken(securityNode);
- final String userName = usernameToken.getUserName();
- if ( userName != null )
- {
- user = new User(usernameToken.getUserName());
- }
- char[] passwd = usernameToken.getPassword();
- if ( passwd != null )
- {
- credentials.add(passwd);
- }
- }
- }
- }
- // build the AuthenticationRequest.
- return new AuthenticationRequestImpl.Builder(user, credentials ).build();
- }
- catch (final SOAPException e)
- {
- log.error("Caught a SOAPException while trying to extract security information: ", e);
- throw new SecurityException("Could not extract security info from SOAPMessage");
- }
- }
-
- private SOAPHeaderElement getSecurityHeader( final SOAPEnvelope env ) throws SOAPException
- {
- final SOAPHeader soapHeader = env.getHeader();
- if ( soapHeader == null)
- return null;
-
- Iterator<?> headerElements = soapHeader.examineAllHeaderElements();
- while ( headerElements.hasNext() )
- {
- final SOAPHeaderElement header = (SOAPHeaderElement) headerElements.next();
- final Name name = header.getElementName();
-
- if (name.getLocalName().equalsIgnoreCase(WSSE_LN) && name.getURI().equalsIgnoreCase(WSSE_NS) )
- {
- return header;
- }
- }
- return null;
- }
-
- private BinarySecurityToken createBinarySecurityToken( final Node node )
- {
- final NamedNodeMap attributes = node.getAttributes();;
-
- // get the EncodingType
- final Node encodingTypeNode = attributes.getNamedItem("EncodingType");
- final String encodingType = encodingTypeNode.getNodeValue();
-
- // get the ValueType
- final Node valueTypeNode = attributes.getNamedItem("ValueType");
- final String valueType = valueTypeNode.getNodeValue();
-
- // get the certificate
- final String certString = node.getFirstChild().getNodeValue();
-
- // create a BinarySecurityToken (does some filtering and checking for us
- final BinarySecurityToken binaryToken = new BinarySecurityToken();
- binaryToken.setEncodingType(encodingType);
- binaryToken.setValueType(valueType);
- binaryToken.setKey(certString);
- return binaryToken;
- }
-
- private UsernameToken createUsernameToken (final Node node)
- {
- final NodeList usernameElements = node.getChildNodes();
- int nrOfElements = usernameElements.getLength();
- final UsernameToken usernameToken = new UsernameToken();
- for ( int i = 0 ; i < nrOfElements ; i ++ )
- {
- final Node element = usernameElements.item(i);
- final String elLocalName = element.getLocalName();
- if ( "Username".equalsIgnoreCase( elLocalName ) )
- {
- usernameToken.setUserName(element.getFirstChild().getNodeValue());
- }
- else if ( "Password".equalsIgnoreCase( elLocalName ) )
- {
- usernameToken.setPassword(element.getFirstChild().getNodeValue());
- }
- }
- return usernameToken;
- }
-
-}
Copied: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/services/security/auth/ws/WSSecuritySoapExtractor.java (from rev 24846, labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/services/security/auth/ws/WSSecuritySoapExtractor.java)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/services/security/auth/ws/WSSecuritySoapExtractor.java (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/services/security/auth/ws/WSSecuritySoapExtractor.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -0,0 +1,210 @@
+/*
+ * JBoss, Home of Professional Open Source Copyright 2008, Red Hat Middleware
+ * LLC, and individual contributors by the @authors tag. See the copyright.txt
+ * in the distribution for a full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it under the
+ * terms of the GNU Lesser General Public License as published by the Free
+ * Software Foundation; either version 2.1 of the License, or (at your option)
+ * any later version.
+ *
+ * This software is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+ * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
+ * details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this software; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA, or see the FSF
+ * site: http://www.fsf.org.
+ */
+package org.jboss.soa.esb.services.security.auth.ws;
+
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.Set;
+
+import javax.xml.soap.Name;
+import javax.xml.soap.SOAPEnvelope;
+import javax.xml.soap.SOAPException;
+import javax.xml.soap.SOAPHeader;
+import javax.xml.soap.SOAPHeaderElement;
+import javax.xml.soap.SOAPMessage;
+
+import org.apache.log4j.Logger;
+import org.jboss.soa.esb.services.security.auth.AuthenticationRequest;
+import org.jboss.soa.esb.services.security.auth.AuthenticationRequestImpl;
+import org.jboss.soa.esb.services.security.auth.SecurityInfoExtractor;
+import org.jboss.soa.esb.services.security.principals.User;
+import org.w3c.dom.NamedNodeMap;
+import org.w3c.dom.Node;
+import org.w3c.dom.NodeList;
+
+/**
+ * WSSecurityInfoExtractor extracts security related information from
+ * a SOAP security header.
+ * </p>
+ *
+ * If the security element contains a 'UsernameToken' element this will be
+ * extraced into a principal with the username and a credential being the
+ * password represented as a character array.
+ * <br>
+ * If the security element contains a 'BinarySecurityToken' element this informaiton
+ * will be extracted into a credential which will be the content, or value, of
+ * the BinarySecurityToken element.
+ *
+ * @author <a href="mailto:dbevenius at redhat.com">Daniel Bevenius</a>
+ *
+ */
+public class WSSecuritySoapExtractor implements SecurityInfoExtractor<SOAPMessage>
+{
+ /**
+ * Security element localname
+ */
+ public static final String WSSE_LN = "Security";
+
+ /**
+ * SOAP Message Security 1.0 NameSpace URL
+ */
+ public static final String WSSE_NS = "http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd";
+
+ private Logger log = Logger.getLogger(WSSecuritySoapExtractor.class);
+
+ /**
+ * Extracts UsernameToken element is one exists and creates
+ * a Principal with the username and sets a Credential using
+ * the password. The type of the Credential is a character array.
+ * If the SOAP message contains a BinarySecurityToken this will be
+ * extracted and added as a Credential.
+ * <p>
+ * Note that this method i restrictive in reporting errors within the soap
+ * message. This is instead reflected in missing values in the returned
+ * AuthenticationRequest. This is done on purpose as not to give away
+ * any information about missing information. The SecuritySerivce impl
+ * should decide what information it wants a caller to recieve.
+ *
+ * @param soap - the soap message represented as a String
+ * @return {@link AuthenticationRequest}
+ */
+ public AuthenticationRequest extractSecurityInfo(final SOAPMessage soap)
+ {
+ if ( soap == null )
+ {
+ return null;
+ }
+
+ User user = null;
+ Set<Object> credentials = new HashSet<Object>();
+
+ try
+ {
+ final SOAPHeaderElement securityHeader = getSecurityHeader( soap.getSOAPPart().getEnvelope() );
+ if ( securityHeader == null )
+ {
+ return null;
+ }
+ Iterator childElements = securityHeader.getChildElements();
+ while ( childElements.hasNext() )
+ {
+ final Node securityNode = (Node) childElements.next();
+ if ( securityNode.getNodeType() == Node.ELEMENT_NODE )
+ {
+ final String localName = securityNode.getLocalName();
+ if ( "BinarySecurityToken".equalsIgnoreCase( localName ) )
+ {
+ // create a BinarySecurityToken (does some filtering and checking)
+ final BinarySecurityToken binaryToken = createBinarySecurityToken(securityNode);
+ // add the key(cert) as a credential
+ credentials.add(binaryToken.getKey());
+ }
+ else if ( "UsernameToken".equalsIgnoreCase(localName) )
+ {
+ UsernameToken usernameToken = createUsernameToken(securityNode);
+ final String userName = usernameToken.getUserName();
+ if ( userName != null )
+ {
+ user = new User(usernameToken.getUserName());
+ }
+ char[] passwd = usernameToken.getPassword();
+ if ( passwd != null )
+ {
+ credentials.add(passwd);
+ }
+ }
+ }
+ }
+ // build the AuthenticationRequest.
+ return new AuthenticationRequestImpl.Builder(user, credentials ).build();
+ }
+ catch (final SOAPException e)
+ {
+ log.error("Caught a SOAPException while trying to extract security information: ", e);
+ throw new SecurityException("Could not extract security info from SOAPMessage");
+ }
+ }
+
+ private SOAPHeaderElement getSecurityHeader( final SOAPEnvelope env ) throws SOAPException
+ {
+ final SOAPHeader soapHeader = env.getHeader();
+ if ( soapHeader == null)
+ return null;
+
+ Iterator<?> headerElements = soapHeader.examineAllHeaderElements();
+ while ( headerElements.hasNext() )
+ {
+ final SOAPHeaderElement header = (SOAPHeaderElement) headerElements.next();
+ final Name name = header.getElementName();
+
+ if (name.getLocalName().equalsIgnoreCase(WSSE_LN) && name.getURI().equalsIgnoreCase(WSSE_NS) )
+ {
+ return header;
+ }
+ }
+ return null;
+ }
+
+ private BinarySecurityToken createBinarySecurityToken( final Node node )
+ {
+ final NamedNodeMap attributes = node.getAttributes();;
+
+ // get the EncodingType
+ final Node encodingTypeNode = attributes.getNamedItem("EncodingType");
+ final String encodingType = encodingTypeNode.getNodeValue();
+
+ // get the ValueType
+ final Node valueTypeNode = attributes.getNamedItem("ValueType");
+ final String valueType = valueTypeNode.getNodeValue();
+
+ // get the certificate
+ final String certString = node.getFirstChild().getNodeValue();
+
+ // create a BinarySecurityToken (does some filtering and checking for us
+ final BinarySecurityToken binaryToken = new BinarySecurityToken();
+ binaryToken.setEncodingType(encodingType);
+ binaryToken.setValueType(valueType);
+ binaryToken.setKey(certString);
+ return binaryToken;
+ }
+
+ private UsernameToken createUsernameToken (final Node node)
+ {
+ final NodeList usernameElements = node.getChildNodes();
+ int nrOfElements = usernameElements.getLength();
+ final UsernameToken usernameToken = new UsernameToken();
+ for ( int i = 0 ; i < nrOfElements ; i ++ )
+ {
+ final Node element = usernameElements.item(i);
+ final String elLocalName = element.getLocalName();
+ if ( "Username".equalsIgnoreCase( elLocalName ) )
+ {
+ usernameToken.setUserName(element.getFirstChild().getNodeValue());
+ }
+ else if ( "Password".equalsIgnoreCase( elLocalName ) )
+ {
+ usernameToken.setPassword(element.getFirstChild().getNodeValue());
+ }
+ }
+ return usernameToken;
+ }
+
+}
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/services/security/auth/ws/smooks-ws-security.xml
===================================================================
--- labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/services/security/auth/ws/smooks-ws-security.xml 2009-01-21 09:35:03 UTC (rev 24846)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/services/security/auth/ws/smooks-ws-security.xml 2009-01-21 15:38:08 UTC (rev 24850)
@@ -1,25 +0,0 @@
-<?xml version="1.0"?>
-<smooks-resource-list xmlns="http://www.milyn.org/xsd/smooks-1.0.xsd">
-
- <resource-config selector="Envelope/Header/Security/UsernameToken">
- <resource>org.milyn.javabean.BeanPopulator</resource>
- <param name="beanId">userNameToken</param>
- <param name="beanClass">org.jboss.soa.esb.services.security.auth.ws.UsernameToken</param>
- <param name="bindings">
- <binding property="userName" selector="Username" default="" />
- <binding property="password" selector="Password" />
- </param>
- </resource-config>
-
- <resource-config selector="Envelope/Header/Security/BinarySecurityToken">
- <resource>org.milyn.javabean.BeanPopulator</resource>
- <param name="beanId">binarySecurityToken</param>
- <param name="beanClass">org.jboss.soa.esb.services.security.auth.ws.BinarySecurityToken</param>
- <param name="bindings">
- <binding property="encodingType" selector="BinarySecurityToken @EncodingType" />
- <binding property="valueType" selector="BinarySecurityToken @ValueType" />
- <binding property="key" selector="BinarySecurityToken" />
- </param>
- </resource-config>
-
-</smooks-resource-list>
Copied: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/services/security/auth/ws/smooks-ws-security.xml (from rev 24846, labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/services/security/auth/ws/smooks-ws-security.xml)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/services/security/auth/ws/smooks-ws-security.xml (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/services/security/auth/ws/smooks-ws-security.xml 2009-01-21 15:38:08 UTC (rev 24850)
@@ -0,0 +1,25 @@
+<?xml version="1.0"?>
+<smooks-resource-list xmlns="http://www.milyn.org/xsd/smooks-1.0.xsd">
+
+ <resource-config selector="Envelope/Header/Security/UsernameToken">
+ <resource>org.milyn.javabean.BeanPopulator</resource>
+ <param name="beanId">userNameToken</param>
+ <param name="beanClass">org.jboss.soa.esb.services.security.auth.ws.UsernameToken</param>
+ <param name="bindings">
+ <binding property="userName" selector="Username" default="" />
+ <binding property="password" selector="Password" />
+ </param>
+ </resource-config>
+
+ <resource-config selector="Envelope/Header/Security/BinarySecurityToken">
+ <resource>org.milyn.javabean.BeanPopulator</resource>
+ <param name="beanId">binarySecurityToken</param>
+ <param name="beanClass">org.jboss.soa.esb.services.security.auth.ws.BinarySecurityToken</param>
+ <param name="bindings">
+ <binding property="encodingType" selector="BinarySecurityToken @EncodingType" />
+ <binding property="valueType" selector="BinarySecurityToken @ValueType" />
+ <binding property="key" selector="BinarySecurityToken" />
+ </param>
+ </resource-config>
+
+</smooks-resource-list>
Copied: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/services/security/principals (from rev 24846, labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/services/security/principals)
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/services/security/principals/Group.java
===================================================================
--- labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/services/security/principals/Group.java 2009-01-21 09:35:03 UTC (rev 24846)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/services/security/principals/Group.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -1,104 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source Copyright 2008, Red Hat Middleware
- * LLC, and individual contributors by the @authors tag. See the copyright.txt
- * in the distribution for a full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it under the
- * terms of the GNU Lesser General Public License as published by the Free
- * Software Foundation; either version 2.1 of the License, or (at your option)
- * any later version.
- *
- * This software is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
- * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
- * details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this software; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA, or see the FSF
- * site: http://www.fsf.org.
- */
-package org.jboss.soa.esb.services.security.principals;
-
-import java.io.Serializable;
-import java.security.Principal;
-import java.util.Collections;
-import java.util.Enumeration;
-import java.util.HashSet;
-import java.util.Set;
-
-/**
- * A Role is a collection/group of Principals.
- * <p/>
- *
- * @author <a href="mailto:dbevenius at redhat.com">Daniel Bevenius</a>
- *
- */
-public class Group implements java.security.acl.Group, Serializable
-{
- private static final long serialVersionUID = 1L;
- public static final String ROLES_GROUP_NAME = "Roles";
-
- private final String groupName;
- private final Set<Principal> members = new HashSet<Principal>();
-
- public Group(final String groupName)
- {
- if ( groupName == null )
- throw new NullPointerException("groupName argument must not be null");
-
- this.groupName = groupName;
- }
-
- public String getName()
- {
- return groupName;
- }
-
- public String toString()
- {
- return "[groupName=" + groupName + ", members=" + members + "]";
- }
-
- @Override
- public boolean equals(Object obj)
- {
- if (this == obj)
- return true;
- if(!(obj instanceof Group))
- return false;
-
- Group other = (Group) obj;
- return other.groupName.equals(groupName) &&
- other.members.equals(members);
- }
-
- @Override
- public int hashCode()
- {
- int hash = 17;
- hash = 31 * hash + groupName == null ? 0 : groupName.hashCode();
- return hash;
- }
-
- public boolean addMember(Principal user)
- {
- return members.add(user);
- }
-
- public boolean isMember(Principal user)
- {
- return members.contains(user);
- }
-
- public Enumeration<? extends Principal> members()
- {
- return Collections.enumeration(members);
- }
-
- public boolean removeMember(Principal user)
- {
- return members.remove(user);
- }
-
-}
Copied: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/services/security/principals/Group.java (from rev 24846, labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/services/security/principals/Group.java)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/services/security/principals/Group.java (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/services/security/principals/Group.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -0,0 +1,104 @@
+/*
+ * JBoss, Home of Professional Open Source Copyright 2008, Red Hat Middleware
+ * LLC, and individual contributors by the @authors tag. See the copyright.txt
+ * in the distribution for a full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it under the
+ * terms of the GNU Lesser General Public License as published by the Free
+ * Software Foundation; either version 2.1 of the License, or (at your option)
+ * any later version.
+ *
+ * This software is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+ * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
+ * details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this software; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA, or see the FSF
+ * site: http://www.fsf.org.
+ */
+package org.jboss.soa.esb.services.security.principals;
+
+import java.io.Serializable;
+import java.security.Principal;
+import java.util.Collections;
+import java.util.Enumeration;
+import java.util.HashSet;
+import java.util.Set;
+
+/**
+ * A Role is a collection/group of Principals.
+ * <p/>
+ *
+ * @author <a href="mailto:dbevenius at redhat.com">Daniel Bevenius</a>
+ *
+ */
+public class Group implements java.security.acl.Group, Serializable
+{
+ private static final long serialVersionUID = 1L;
+ public static final String ROLES_GROUP_NAME = "Roles";
+
+ private final String groupName;
+ private final Set<Principal> members = new HashSet<Principal>();
+
+ public Group(final String groupName)
+ {
+ if ( groupName == null )
+ throw new NullPointerException("groupName argument must not be null");
+
+ this.groupName = groupName;
+ }
+
+ public String getName()
+ {
+ return groupName;
+ }
+
+ public String toString()
+ {
+ return "[groupName=" + groupName + ", members=" + members + "]";
+ }
+
+ @Override
+ public boolean equals(Object obj)
+ {
+ if (this == obj)
+ return true;
+ if(!(obj instanceof Group))
+ return false;
+
+ Group other = (Group) obj;
+ return other.groupName.equals(groupName) &&
+ other.members.equals(members);
+ }
+
+ @Override
+ public int hashCode()
+ {
+ int hash = 17;
+ hash = 31 * hash + groupName == null ? 0 : groupName.hashCode();
+ return hash;
+ }
+
+ public boolean addMember(Principal user)
+ {
+ return members.add(user);
+ }
+
+ public boolean isMember(Principal user)
+ {
+ return members.contains(user);
+ }
+
+ public Enumeration<? extends Principal> members()
+ {
+ return Collections.enumeration(members);
+ }
+
+ public boolean removeMember(Principal user)
+ {
+ return members.remove(user);
+ }
+
+}
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/services/security/principals/Role.java
===================================================================
--- labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/services/security/principals/Role.java 2009-01-21 09:35:03 UTC (rev 24846)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/services/security/principals/Role.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -1,76 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source Copyright 2008, Red Hat Middleware
- * LLC, and individual contributors by the @authors tag. See the copyright.txt
- * in the distribution for a full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it under the
- * terms of the GNU Lesser General Public License as published by the Free
- * Software Foundation; either version 2.1 of the License, or (at your option)
- * any later version.
- *
- * This software is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
- * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
- * details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this software; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA, or see the FSF
- * site: http://www.fsf.org.
- */
-package org.jboss.soa.esb.services.security.principals;
-
-import java.io.Serializable;
-import java.security.Principal;
-
-/**
- * A Role is a collection/group of Principals.
- * <p/>
- *
- * @author <a href="mailto:dbevenius at redhat.com">Daniel Bevenius</a>
- *
- */
-public class Role implements Principal, Serializable
-{
- private static final long serialVersionUID = 1L;
- private final String roleName;
-
- public Role(final String roleName)
- {
- if ( roleName == null )
- throw new NullPointerException("roleName argument must not be null");
-
- this.roleName = roleName;
- }
-
- public String getName()
- {
- return roleName;
- }
-
- public String toString()
- {
- return "[roleName=" + roleName + "]";
- }
-
- @Override
- public boolean equals(Object obj)
- {
- if (this == obj)
- return true;
- if(!(obj instanceof Role))
- return false;
-
- Role other = (Role) obj;
- return this.roleName.equals(other.roleName);
- }
-
- @Override
- public int hashCode()
- {
- int hash = 17;
- hash = 31 * hash + roleName == null ? 0 : roleName.hashCode();
- return hash;
- }
-
-}
Copied: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/services/security/principals/Role.java (from rev 24846, labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/services/security/principals/Role.java)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/services/security/principals/Role.java (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/services/security/principals/Role.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -0,0 +1,76 @@
+/*
+ * JBoss, Home of Professional Open Source Copyright 2008, Red Hat Middleware
+ * LLC, and individual contributors by the @authors tag. See the copyright.txt
+ * in the distribution for a full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it under the
+ * terms of the GNU Lesser General Public License as published by the Free
+ * Software Foundation; either version 2.1 of the License, or (at your option)
+ * any later version.
+ *
+ * This software is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+ * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
+ * details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this software; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA, or see the FSF
+ * site: http://www.fsf.org.
+ */
+package org.jboss.soa.esb.services.security.principals;
+
+import java.io.Serializable;
+import java.security.Principal;
+
+/**
+ * A Role is a collection/group of Principals.
+ * <p/>
+ *
+ * @author <a href="mailto:dbevenius at redhat.com">Daniel Bevenius</a>
+ *
+ */
+public class Role implements Principal, Serializable
+{
+ private static final long serialVersionUID = 1L;
+ private final String roleName;
+
+ public Role(final String roleName)
+ {
+ if ( roleName == null )
+ throw new NullPointerException("roleName argument must not be null");
+
+ this.roleName = roleName;
+ }
+
+ public String getName()
+ {
+ return roleName;
+ }
+
+ public String toString()
+ {
+ return "[roleName=" + roleName + "]";
+ }
+
+ @Override
+ public boolean equals(Object obj)
+ {
+ if (this == obj)
+ return true;
+ if(!(obj instanceof Role))
+ return false;
+
+ Role other = (Role) obj;
+ return this.roleName.equals(other.roleName);
+ }
+
+ @Override
+ public int hashCode()
+ {
+ int hash = 17;
+ hash = 31 * hash + roleName == null ? 0 : roleName.hashCode();
+ return hash;
+ }
+
+}
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/services/security/principals/User.java
===================================================================
--- labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/services/security/principals/User.java 2009-01-21 09:35:03 UTC (rev 24846)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/services/security/principals/User.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -1,76 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source Copyright 2008, Red Hat Middleware
- * LLC, and individual contributors by the @authors tag. See the copyright.txt
- * in the distribution for a full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it under the
- * terms of the GNU Lesser General Public License as published by the Free
- * Software Foundation; either version 2.1 of the License, or (at your option)
- * any later version.
- *
- * This software is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
- * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
- * details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this software; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA, or see the FSF
- * site: http://www.fsf.org.
- */
-package org.jboss.soa.esb.services.security.principals;
-
-import java.io.Serializable;
-import java.security.Principal;
-
-/**
- * Simple User
- * <p/>
- *
- * @author <a href="mailto:dbevenius at redhat.com">Daniel Bevenius</a>
- *
- */
-public class User implements Principal, Serializable
-{
- private static final long serialVersionUID = 1L;
- private final String name;
-
- public User(final String name)
- {
- if ( name == null )
- throw new NullPointerException("name argument must not be null");
-
- this.name = name;
- }
-
- public String getName()
- {
- return name;
- }
-
- public String toString()
- {
- return "User [userName=" + name + "]";
- }
-
- @Override
- public boolean equals(Object obj)
- {
- if (this == obj)
- return true;
- if(!(obj instanceof User))
- return false;
-
- User other = (User) obj;
- return this.name.equals(other.name);
- }
-
- @Override
- public int hashCode()
- {
- int hash = 17;
- hash = 31 * hash + name == null ? 0 : name.hashCode();
- return hash;
- }
-
-}
Copied: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/services/security/principals/User.java (from rev 24846, labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/services/security/principals/User.java)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/services/security/principals/User.java (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/services/security/principals/User.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -0,0 +1,76 @@
+/*
+ * JBoss, Home of Professional Open Source Copyright 2008, Red Hat Middleware
+ * LLC, and individual contributors by the @authors tag. See the copyright.txt
+ * in the distribution for a full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it under the
+ * terms of the GNU Lesser General Public License as published by the Free
+ * Software Foundation; either version 2.1 of the License, or (at your option)
+ * any later version.
+ *
+ * This software is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+ * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
+ * details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this software; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA, or see the FSF
+ * site: http://www.fsf.org.
+ */
+package org.jboss.soa.esb.services.security.principals;
+
+import java.io.Serializable;
+import java.security.Principal;
+
+/**
+ * Simple User
+ * <p/>
+ *
+ * @author <a href="mailto:dbevenius at redhat.com">Daniel Bevenius</a>
+ *
+ */
+public class User implements Principal, Serializable
+{
+ private static final long serialVersionUID = 1L;
+ private final String name;
+
+ public User(final String name)
+ {
+ if ( name == null )
+ throw new NullPointerException("name argument must not be null");
+
+ this.name = name;
+ }
+
+ public String getName()
+ {
+ return name;
+ }
+
+ public String toString()
+ {
+ return "User [userName=" + name + "]";
+ }
+
+ @Override
+ public boolean equals(Object obj)
+ {
+ if (this == obj)
+ return true;
+ if(!(obj instanceof User))
+ return false;
+
+ User other = (User) obj;
+ return this.name.equals(other.name);
+ }
+
+ @Override
+ public int hashCode()
+ {
+ int hash = 17;
+ hash = 31 * hash + name == null ? 0 : name.hashCode();
+ return hash;
+ }
+
+}
Copied: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/services/security/util (from rev 24846, labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/services/security/util)
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/services/security/util/CryptoUtil.java
===================================================================
--- labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/services/security/util/CryptoUtil.java 2009-01-21 09:35:03 UTC (rev 24846)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/services/security/util/CryptoUtil.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -1,121 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source Copyright 2008, Red Hat Middleware
- * LLC, and individual contributors by the @authors tag. See the copyright.txt
- * in the distribution for a full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it under the
- * terms of the GNU Lesser General Public License as published by the Free
- * Software Foundation; either version 2.1 of the License, or (at your option)
- * any later version.
- *
- * This software is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
- * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
- * details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this software; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA, or see the FSF
- * site: http://www.fsf.org.
- */
-package org.jboss.soa.esb.services.security.util;
-
-import java.security.InvalidKeyException;
-import java.security.NoSuchAlgorithmException;
-import java.security.PrivateKey;
-import java.security.PublicKey;
-
-import javax.crypto.BadPaddingException;
-import javax.crypto.Cipher;
-import javax.crypto.IllegalBlockSizeException;
-import javax.crypto.NoSuchPaddingException;
-
-import org.jboss.soa.esb.services.security.SecurityServiceException;
-
-/**
- *
- * @author <a href="mailto:dbevenius at redhat.com">Daniel Bevenius</a>
- *
- */
-public final class CryptoUtil
-{
- private CryptoUtil() {}
-
- public static byte[] decrypt(final byte[] bytes, final PrivateKey key, final String transformation) throws SecurityServiceException
- {
- try
- {
- final Cipher cipher = Cipher.getInstance(transformation);
- cipher.init(Cipher.DECRYPT_MODE, key);
- return cipher.doFinal(bytes);
- }
- catch (final NoSuchAlgorithmException e)
- {
- throw new SecurityServiceException(e.getMessage(), e);
- }
- catch (final NoSuchPaddingException e)
- {
- throw new SecurityServiceException(e.getMessage(), e);
- }
- catch (final InvalidKeyException e)
- {
- throw new SecurityServiceException(e.getMessage(), e);
- }
- catch (final IllegalBlockSizeException e)
- {
- throw new SecurityServiceException(e.getMessage(), e);
- }
- catch (final BadPaddingException e)
- {
- throw new SecurityServiceException(e.getMessage(), e);
- }
- }
-
- public static byte[] encrypt(byte[] text, PublicKey key, String transformation) throws SecurityServiceException
- {
- try
- {
- final Cipher cipher = Cipher.getInstance(transformation);
- cipher.init(Cipher.ENCRYPT_MODE, key);
- return cipher.doFinal(text);
- }
- catch (final NoSuchAlgorithmException e)
- {
- throw new SecurityServiceException(e.getMessage(), e);
- }
- catch (final NoSuchPaddingException e)
- {
- throw new SecurityServiceException(e.getMessage(), e);
- }
- catch (InvalidKeyException e)
- {
- throw new SecurityServiceException(e.getMessage(), e);
- }
- catch (IllegalBlockSizeException e)
- {
- throw new SecurityServiceException(e.getMessage(), e);
- }
- catch (BadPaddingException e)
- {
- throw new SecurityServiceException(e.getMessage(), e);
- }
- }
-
- public static byte[] copyBytes(final byte[] bytes, final int length)
- {
- byte[] newArr = null;
- if (bytes.length == length)
- {
- newArr = bytes;
- } else
- {
- newArr = new byte[length];
- for (int i = 0; i < length; i++)
- {
- newArr[i] = bytes[i];
- }
- }
- return newArr;
- }
-
-}
Copied: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/services/security/util/CryptoUtil.java (from rev 24846, labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/services/security/util/CryptoUtil.java)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/services/security/util/CryptoUtil.java (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/services/security/util/CryptoUtil.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -0,0 +1,121 @@
+/*
+ * JBoss, Home of Professional Open Source Copyright 2008, Red Hat Middleware
+ * LLC, and individual contributors by the @authors tag. See the copyright.txt
+ * in the distribution for a full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it under the
+ * terms of the GNU Lesser General Public License as published by the Free
+ * Software Foundation; either version 2.1 of the License, or (at your option)
+ * any later version.
+ *
+ * This software is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+ * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
+ * details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this software; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA, or see the FSF
+ * site: http://www.fsf.org.
+ */
+package org.jboss.soa.esb.services.security.util;
+
+import java.security.InvalidKeyException;
+import java.security.NoSuchAlgorithmException;
+import java.security.PrivateKey;
+import java.security.PublicKey;
+
+import javax.crypto.BadPaddingException;
+import javax.crypto.Cipher;
+import javax.crypto.IllegalBlockSizeException;
+import javax.crypto.NoSuchPaddingException;
+
+import org.jboss.soa.esb.services.security.SecurityServiceException;
+
+/**
+ *
+ * @author <a href="mailto:dbevenius at redhat.com">Daniel Bevenius</a>
+ *
+ */
+public final class CryptoUtil
+{
+ private CryptoUtil() {}
+
+ public static byte[] decrypt(final byte[] bytes, final PrivateKey key, final String transformation) throws SecurityServiceException
+ {
+ try
+ {
+ final Cipher cipher = Cipher.getInstance(transformation);
+ cipher.init(Cipher.DECRYPT_MODE, key);
+ return cipher.doFinal(bytes);
+ }
+ catch (final NoSuchAlgorithmException e)
+ {
+ throw new SecurityServiceException(e.getMessage(), e);
+ }
+ catch (final NoSuchPaddingException e)
+ {
+ throw new SecurityServiceException(e.getMessage(), e);
+ }
+ catch (final InvalidKeyException e)
+ {
+ throw new SecurityServiceException(e.getMessage(), e);
+ }
+ catch (final IllegalBlockSizeException e)
+ {
+ throw new SecurityServiceException(e.getMessage(), e);
+ }
+ catch (final BadPaddingException e)
+ {
+ throw new SecurityServiceException(e.getMessage(), e);
+ }
+ }
+
+ public static byte[] encrypt(byte[] text, PublicKey key, String transformation) throws SecurityServiceException
+ {
+ try
+ {
+ final Cipher cipher = Cipher.getInstance(transformation);
+ cipher.init(Cipher.ENCRYPT_MODE, key);
+ return cipher.doFinal(text);
+ }
+ catch (final NoSuchAlgorithmException e)
+ {
+ throw new SecurityServiceException(e.getMessage(), e);
+ }
+ catch (final NoSuchPaddingException e)
+ {
+ throw new SecurityServiceException(e.getMessage(), e);
+ }
+ catch (InvalidKeyException e)
+ {
+ throw new SecurityServiceException(e.getMessage(), e);
+ }
+ catch (IllegalBlockSizeException e)
+ {
+ throw new SecurityServiceException(e.getMessage(), e);
+ }
+ catch (BadPaddingException e)
+ {
+ throw new SecurityServiceException(e.getMessage(), e);
+ }
+ }
+
+ public static byte[] copyBytes(final byte[] bytes, final int length)
+ {
+ byte[] newArr = null;
+ if (bytes.length == length)
+ {
+ newArr = bytes;
+ } else
+ {
+ newArr = new byte[length];
+ for (int i = 0; i < length; i++)
+ {
+ newArr[i] = bytes[i];
+ }
+ }
+ return newArr;
+ }
+
+}
Modified: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/util/BeanConfigurator.java
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/util/BeanConfigurator.java 2009-01-21 14:47:17 UTC (rev 24849)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/util/BeanConfigurator.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -28,6 +28,8 @@
import java.beans.PropertyEditor;
import java.beans.PropertyEditorManager;
import java.lang.reflect.Method;
+import java.util.ArrayList;
+import java.util.Collection;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@@ -57,6 +59,13 @@
private Object bean;
private Map<String, String> properties;
+
+ /**
+ * Optional fields that may be specified in the bean class but are
+ * optional and will not cause an exception to be thrown if they
+ * don't exist in the bean class.
+ */
+ private Collection<String> optionalFields = new ArrayList<String>();
public BeanConfigurator() {
super();
@@ -86,10 +95,15 @@
key = Introspector.decapitalize(key);
PropertyDescriptor descriptor = getPropertyDescriptor(key);
if (descriptor == null) {
- throw new IllegalArgumentException("'" + key
- + "' property not found on " + beanClass.getName());
+ if (optionalFields.contains(key)) {
+ // just ignore optional fields.
+ continue;
+ }
+ throw new IllegalArgumentException("'" + key + "' property not found on " + beanClass.getName());
}
- setProperty(descriptor, key, entry.getValue());
+ else {
+ setProperty(descriptor, key, entry.getValue());
+ }
}
}
@@ -158,4 +172,16 @@
public void setProperties(Map<String, String> properties) {
this.properties = properties;
}
+
+ /**
+ * Fields that will not cause an exception to be thrown if
+ * they are missing in the bean class but exist in the configuration.
+ * This was added to support fields like 'service-category' which can
+ * now exist in a bean class.
+ *
+ * @param optionalFields List of field names that can be specified in a bean class.
+ */
+ public void setOptionalFields(Collection<String> optionalFields) {
+ this.optionalFields = optionalFields;
+ }
}
\ No newline at end of file
Modified: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/util/ClassUtil.java
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/util/ClassUtil.java 2009-01-21 14:47:17 UTC (rev 24849)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/util/ClassUtil.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -184,6 +184,48 @@
return ClassLoader.getSystemResourceAsStream(resource) ;
}
+
+ public static URL getResource(final String resourceName, final Class<?> caller)
+ {
+ final String resource ;
+ if (resourceName.startsWith("/"))
+ {
+ resource = resourceName.substring(1) ;
+ }
+ else
+ {
+ final Package callerPackage = caller.getPackage() ;
+ if (callerPackage != null)
+ {
+ resource = callerPackage.getName().replace('.', '/') + '/' + resourceName ;
+ }
+ else
+ {
+ resource = resourceName ;
+ }
+ }
+ final ClassLoader threadClassLoader = Thread.currentThread().getContextClassLoader() ;
+ if (threadClassLoader != null)
+ {
+ final URL url = threadClassLoader.getResource(resource) ;
+ if (url != null)
+ {
+ return url ;
+ }
+ }
+
+ final ClassLoader classLoader = caller.getClassLoader() ;
+ if (classLoader != null)
+ {
+ final URL url = classLoader.getResource(resource) ;
+ if (url != null)
+ {
+ return url ;
+ }
+ }
+
+ return ClassLoader.getSystemResource(resource) ;
+ }
/**
* Get a package name and convert it to a path value, so it can be used
Modified: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/util/FtpClientUtil.java
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/util/FtpClientUtil.java 2009-01-21 14:47:17 UTC (rev 24849)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/util/FtpClientUtil.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -35,8 +35,12 @@
import org.apache.commons.net.ftp.FTPClient;
import org.jboss.internal.soa.esb.util.FtpUtils;
import org.jboss.soa.esb.ConfigurationException;
+import org.jboss.soa.esb.common.Environment;
+import org.jboss.soa.esb.common.ModulePropertyManager;
import org.jboss.soa.esb.helpers.ConfigTree;
import org.jboss.soa.esb.helpers.KeyValuePair;
+import org.jboss.soa.esb.util.RemoteFileSystem;
+import org.jboss.soa.esb.util.RemoteFileSystemException;
/**
* Simplified FTP transfers
@@ -45,443 +49,492 @@
* establish the FTP connection are provided at construction time and cannot
* change during the lifetime of the object <br/>Hides low level details.
* </p>
+ *
+ * TODO why duplicate so much of FtpImpl.java?
*/
public class FtpClientUtil
{
- public static final String PARMS_FTP_SERVER = "ftpServer";
+ public static final String PARMS_FTP_SERVER = "ftpServer";
- public static final String PARMS_USER = "ftpUser";
+ public static final String PARMS_USER = "ftpUser";
- public static final String PARMS_PASSWD = "ftpPassword";
+ public static final String PARMS_PASSWD = "ftpPassword";
- public static final String PARMS_PORT = "ftpPort";
+ public static final String PARMS_PORT = "ftpPort";
- public static final String PARMS_REMOTE_DIR = "ftpRemoteDir";
+ public static final String PARMS_REMOTE_DIR = "ftpRemoteDir";
- public static final String PARMS_LOCAL_DIR = "ftpLocalDir";
+ public static final String PARMS_LOCAL_DIR = "ftpLocalDir";
- public static final String PARMS_ASCII = "ftpAscii";
+ public static final String PARMS_ASCII = "ftpAscii";
- public static final String PARMS_PASSIVE = "ftpPassive";
+ public static final String PARMS_PASSIVE = "ftpPassive";
- private static final String TMP_SUFFIX = ".rosettaPart";
+ private static final String TMP_SUFFIX = ".rosettaPart";
+
+ public enum XFER_TYPE
+ {
+ ascii, binary
+ }
- public enum XFER_TYPE
- {
- ascii, binary
- }
+ private ConfigTree m_oParms;
- private ConfigTree m_oParms;
+ private String m_sFtpServer, m_sUser, m_sPasswd;
- private String m_sFtpServer, m_sUser, m_sPasswd;
+ private String m_sRemoteDir, m_sLocalDir;
- private String m_sRemoteDir, m_sLocalDir;
+ private int m_iPort;
- private int m_iPort;
+ private boolean m_bPassive;
- private boolean m_bPassive;
-
private FTPClient m_oConn = new FTPClient();
private boolean m_bAsciiTransferType ;
+
+ private int renameRetry;
- public String getRemoteDir ()
- {
- return m_sRemoteDir;
- }
+ public String getRemoteDir ()
+ {
+ return m_sRemoteDir;
+ }
- /**
- * Checks validity and completeness of parameters, and keeps the info
- * internally for subsequent FTP requests
- *
- * @param p_oP
- * ConfigTree
- * @throws ConfigurationException :
- * if parameters are invalid or incomplete
- * <li>Parameters: (XML attributes at the root level) </li>
- * <li> ftpServer = name or IP of FTP server </li>
- * <li> ftpUser = login ID for server </li>
- * <li> ftpPassword </li>
- * <li> localDirURI = absolute path in the local filesystem
- * </li>
- * <li> remoteDirURI = remote path is relative to ftp user home
- * in remote computer </li>
- * @throws RemoteFileSystemException
- */
+ /**
+ * Checks validity and completeness of parameters, and keeps the info
+ * internally for subsequent FTP requests
+ *
+ * @param p_oP
+ * ConfigTree
+ * @throws ConfigurationException :
+ * if parameters are invalid or incomplete
+ * <li>Parameters: (XML attributes at the root level) </li>
+ * <li> ftpServer = name or IP of FTP server </li>
+ * <li> ftpUser = login ID for server </li>
+ * <li> ftpPassword </li>
+ * <li> localDirURI = absolute path in the local filesystem
+ * </li>
+ * <li> remoteDirURI = remote path is relative to ftp user home
+ * in remote computer </li>
+ * @throws RemoteFileSystemException
+ */
- public FtpClientUtil (ConfigTree p_oP, boolean p_bConnect) throws RemoteFileSystemException, ConfigurationException
- {
- m_oParms = p_oP;
- initialize(p_bConnect);
- } // _________________________________
+ public FtpClientUtil (ConfigTree p_oP, boolean p_bConnect) throws RemoteFileSystemException, ConfigurationException
+ {
+ m_oParms = p_oP;
+ initialize(p_bConnect);
+ } // _________________________________
- public FtpClientUtil (List<KeyValuePair> attribs, boolean connect)
- throws RemoteFileSystemException, ConfigurationException
- {
- m_oParms = new ConfigTree("fromProps");
- for (KeyValuePair oCurr : attribs)
- m_oParms.setAttribute(oCurr.getKey(), oCurr.getValue());
- initialize(connect);
- } // __________________________________
+ public FtpClientUtil (List<KeyValuePair> attribs, boolean connect)
+ throws RemoteFileSystemException, ConfigurationException
+ {
+ m_oParms = new ConfigTree("fromProps");
+ for (KeyValuePair oCurr : attribs)
+ m_oParms.setAttribute(oCurr.getKey(), oCurr.getValue());
+ initialize(connect);
+ } // __________________________________
- private void initialize (boolean bConnect) throws RemoteFileSystemException, ConfigurationException
- {
- checkParms();
-
- try
- {
- if (bConnect)
- {
- if (m_iPort > 0)
- {
- m_oConn.connect(m_sFtpServer, m_iPort) ;
- }
- else
- {
- m_oConn.connect(m_sFtpServer) ;
- }
+ private void initialize (boolean bConnect) throws RemoteFileSystemException, ConfigurationException
+ {
+ checkParms();
+
+ try
+ {
+ if (bConnect)
+ {
+ if (m_iPort > 0)
+ {
+ m_oConn.connect(m_sFtpServer, m_iPort) ;
+ }
+ else
+ {
+ m_oConn.connect(m_sFtpServer) ;
+ }
-
- if (!m_oConn.isConnected())
- throw new RemoteFileSystemException("Can't connect to FTP server");
- if (!m_oConn.login(m_sUser, m_sPasswd))
- {
- m_oConn.logout() ;
- throw new RemoteFileSystemException("Remote login failed: " + m_oConn.getReplyString());
- }
- m_oConn.setFileType(m_bAsciiTransferType ? FTP.ASCII_FILE_TYPE : FTP.BINARY_FILE_TYPE) ;
- if (m_bPassive)
- {
- m_oConn.enterLocalPassiveMode() ;
- }
- }
- }
- catch (IOException ioe)
- {
- if (m_oConn.isConnected())
- {
- try
- {
- m_oConn.disconnect() ;
- }
- catch (final IOException ioe2) {} // ignore
- }
- throw new RemoteFileSystemException(ioe);
- }
- } // __________________________________
+
+ if (!m_oConn.isConnected())
+ throw new RemoteFileSystemException("Can't connect to FTP server");
+ if (!m_oConn.login(m_sUser, m_sPasswd))
+ {
+ m_oConn.logout() ;
+ throw new RemoteFileSystemException("Remote login failed: " + m_oConn.getReplyString());
+ }
+ m_oConn.setFileType(m_bAsciiTransferType ? FTP.ASCII_FILE_TYPE : FTP.BINARY_FILE_TYPE) ;
+ if (m_bPassive)
+ {
+ m_oConn.enterLocalPassiveMode() ;
+ }
+ }
+ }
+ catch (IOException ioe)
+ {
+ if (m_oConn.isConnected())
+ {
+ try
+ {
+ m_oConn.disconnect() ;
+ }
+ catch (final IOException ioe2) {} // ignore
+ }
+ throw new RemoteFileSystemException(ioe);
+ }
+ } // __________________________________
- /**
- * Terminates ftp session and frees resources
- * <li>Well behaved programs should make sure to call this method </li>
- */
- public void quit ()
- {
- if (null != m_oConn) try
- {
- m_oConn.quit();
- m_oConn.disconnect();
- }
- catch (Exception e)
- {
- }
- } // _________________________________
+ /**
+ * Terminates ftp session and frees resources
+ * <li>Well behaved programs should make sure to call this method </li>
+ */
+ public void quit ()
+ {
+ if (null != m_oConn) try
+ {
+ m_oConn.quit();
+ m_oConn.disconnect();
+ }
+ catch (Exception e)
+ {
+ }
+ } // _________________________________
- /**
- * Deletes specified file in remote directory
- *
- * @param p_sFile
- * String : filename to delete. Method will attempt to delete
- * file with rightmost node of argument within remote directory
- * specified in 'remoteDirURI'
- * @throws RemoteFileSystemException :
- * if ftp connection cannot be established, or file cannot be
- * deleted in remote directory
- */
- public void deleteRemoteFile (String p_sFile) throws RemoteFileSystemException
- {
- try
- {
- changeRemoteDirectory() ;
- if (!m_oConn.deleteFile(p_sFile))
- {
- throw new RemoteFileSystemException("Failed to delete remote file: " + m_oConn.getReplyString());
- }
- }
- catch (IOException ex)
- {
- throw new RemoteFileSystemException(ex);
- }
- } // _________________________________
+ /**
+ * Deletes specified file in remote directory
+ *
+ * @param p_sFile
+ * String : filename to delete. Method will attempt to delete
+ * file with rightmost node of argument within remote directory
+ * specified in 'remoteDirURI'
+ * @throws RemoteFileSystemException :
+ * if ftp connection cannot be established, or file cannot be
+ * deleted in remote directory
+ */
+ public void deleteRemoteFile (String p_sFile) throws RemoteFileSystemException
+ {
+ try
+ {
+ changeRemoteDirectory() ;
+ if (!m_oConn.deleteFile(p_sFile))
+ {
+ throw new RemoteFileSystemException("Failed to delete remote file: " + m_oConn.getReplyString());
+ }
+ }
+ catch (IOException ex)
+ {
+ throw new RemoteFileSystemException(ex);
+ }
+ } // _________________________________
- public void remoteDelete (File p_oFile) throws RemoteFileSystemException
- {
- try
- {
- changeRemoteDirectory() ;
- if (!m_oConn.deleteFile(p_oFile.getName()))
- {
- throw new RemoteFileSystemException("Failed to delete remote file: " + m_oConn.getReplyString());
- }
- }
- catch (IOException ex)
- {
- throw new RemoteFileSystemException(ex);
- }
- } // _________________________________
+ public void remoteDelete (File p_oFile) throws RemoteFileSystemException
+ {
+ try
+ {
+ changeRemoteDirectory() ;
+ if (!m_oConn.deleteFile(p_oFile.getName()))
+ {
+ throw new RemoteFileSystemException("Failed to delete remote file: " + m_oConn.getReplyString());
+ }
+ }
+ catch (IOException ex)
+ {
+ throw new RemoteFileSystemException(ex);
+ }
+ } // _________________________________
- /**
- * Gets the list of files in the remote directory that end with arg0
- *
- * @param p_sSuffix
- * String : retrieve only files that end with that suffix - all
- * files if null
- * @throws RemoteFileSystemException :
- * if ftp connection cannot be established, or problems
- * encountered
- */
- public String[] getFileListFromRemoteDir (String p_sSuffix)
- throws RemoteFileSystemException
- {
- String sSuffix = (null == p_sSuffix) ? "*" : "*" + p_sSuffix;
-
- try
- {
- changeRemoteDirectory() ;
- return m_oConn.listNames(sSuffix);
- }
- catch (IOException ex)
- {
- throw new RemoteFileSystemException(ex);
- }
- } // _________________________________
+ /**
+ * Gets the list of files in the remote directory that end with arg0
+ *
+ * @param p_sSuffix
+ * String : retrieve only files that end with that suffix - all
+ * files if null
+ * @throws RemoteFileSystemException :
+ * if ftp connection cannot be established, or problems
+ * encountered
+ */
+ public String[] getFileListFromRemoteDir (String p_sSuffix)
+ throws RemoteFileSystemException
+ {
+ String sSuffix = (null == p_sSuffix) ? "*" : "*" + p_sSuffix;
+
+ try
+ {
+ changeRemoteDirectory() ;
+ return m_oConn.listNames(sSuffix);
+ }
+ catch (IOException ex)
+ {
+ throw new RemoteFileSystemException(ex);
+ }
+ } // _________________________________
- /**
- * Change remote directory
- *
- * @param p_sDir
- * String : directory to set
- * @throws RemoteFileSystemException :
- * if ftp connection cannot be established, or problems
- * encountered
- */
- public void setRemoteDir (String p_sDir) throws RemoteFileSystemException
- {
- m_sRemoteDir = p_sDir ;
- } // _________________________________
+ /**
+ * Change remote directory
+ *
+ * @param p_sDir
+ * String : directory to set
+ * @throws RemoteFileSystemException :
+ * if ftp connection cannot be established, or problems
+ * encountered
+ */
+ public void setRemoteDir (String p_sDir) throws RemoteFileSystemException
+ {
+ m_sRemoteDir = p_sDir ;
+ } // _________________________________
- /**
- * Renames specified file in remote directory to specified new name
- *
- * @param p_sFrom
- * String : filename to rename
- * @param p_sTo
- * String : new filename
- * @throws RemoteFileSystemException :
- * if ftp connection cannot be established, or file cannot be
- * renamed to new name in remote directory
- * <li>Method will attempt to rename file with rightmost node
- * of argument within remote directory specified in
- * 'remoteDirURI', to new name inside the SAME remote directory
- */
- public void renameInRemoteDir (String p_sFrom, String p_sTo)
- throws RemoteFileSystemException
- {
- try
- {
- changeRemoteDirectory() ;
- if (!m_oConn.rename(p_sFrom, p_sTo))
- {
- throw new RemoteFileSystemException("Failed to rename file: " + m_oConn.getReplyString());
- }
- }
- catch (final IOException ioe)
- {
- throw new RemoteFileSystemException(ioe);
- }
- } // _________________________________
+ /**
+ * Renames specified file in remote directory to specified new name
+ *
+ * @param p_sFrom
+ * String : filename to rename
+ * @param p_sTo
+ * String : new filename
+ * @throws RemoteFileSystemException :
+ * if ftp connection cannot be established, or file cannot be
+ * renamed to new name in remote directory
+ * <li>Method will attempt to rename file with rightmost node
+ * of argument within remote directory specified in
+ * 'remoteDirURI', to new name inside the SAME remote directory
+ */
+ public void renameInRemoteDir (String p_sFrom, String p_sTo)
+ throws RemoteFileSystemException
+ {
+ try
+ {
+ changeRemoteDirectory() ;
+ if (!m_oConn.rename(p_sFrom, p_sTo))
+ {
+ throw new RemoteFileSystemException("Failed to rename file: " + m_oConn.getReplyString());
+ }
+ }
+ catch (final IOException ioe)
+ {
+ throw new RemoteFileSystemException(ioe);
+ }
+ } // _________________________________
- public void remoteRename (File p_oFrom, File p_oTo) throws RemoteFileSystemException
- {
- try
- {
- if (!m_oConn.rename(FtpClientUtil.fileToFtpString(p_oFrom),
- FtpUtils.fileToFtpString(p_oTo)))
- {
- throw new RemoteFileSystemException("Failed to rename file: " + m_oConn.getReplyString());
- }
- }
- catch (IOException ioe)
- {
- throw new RemoteFileSystemException(ioe);
- }
- } // _________________________________
+ public void remoteRename (File p_oFrom, File p_oTo) throws RemoteFileSystemException
+ {
+ try
+ {
+ if (!m_oConn.rename(FtpClientUtil.fileToFtpString(p_oFrom),
+ FtpUtils.fileToFtpString(p_oTo)))
+ {
+ throw new RemoteFileSystemException("Failed to rename file: " + m_oConn.getReplyString());
+ }
+ }
+ catch (IOException ioe)
+ {
+ throw new RemoteFileSystemException(ioe);
+ }
+ } // _________________________________
- /**
- * Uploads specified file from local directory (localDirURI) to remote
- * directory (remoteDirURI)
- *
- * @param p_oFile
- * String : filename to upload
- * @throws RemoteFileSystemException :
- * if ftp connection cannot be established, or file cannot be
- * uploaded
- * <li> local file will be renamed during transfer
- * ('.xferNotReady' appended to name)</li>
- * <li> upon successful completion. the suffix '.xferDone' will
- * be appended to the original filename </li>
- */
- public void uploadFile (File p_oFile, String p_sRemoteName)
- throws RemoteFileSystemException
- {
- try
- {
- changeRemoteDirectory() ;
- final String sRemoteTmp = p_sRemoteName + TMP_SUFFIX ;
-
- final OutputStream os = m_oConn.storeFileStream(sRemoteTmp) ;
- try
- {
- final FileInputStream fis = new FileInputStream(p_oFile) ;
- try
- {
- copyStream(fis, os) ;
- }
- finally
- {
- fis.close() ;
- }
- }
- finally
- {
- os.flush() ;
- os.close() ;
- }
- if (!m_oConn.completePendingCommand())
- {
- throw new RemoteFileSystemException("Failed to upload contents: " + m_oConn.getReplyString()) ;
- }
- if (!m_oConn.rename(sRemoteTmp, p_sRemoteName))
- {
- throw new RemoteFileSystemException("Failed to rename file: " + m_oConn.getReplyString());
- }
- }
- catch (IOException ex)
- {
- throw new RemoteFileSystemException(ex);
- }
- } // _________________________________
+ /**
+ * Uploads specified file from local directory (localDirURI) to remote
+ * directory (remoteDirURI)
+ *
+ * @param p_oFile
+ * String : filename to upload
+ * @throws RemoteFileSystemException :
+ * if ftp connection cannot be established, or file cannot be
+ * uploaded
+ * <li> local file will be renamed during transfer
+ * ('.xferNotReady' appended to name)</li>
+ * <li> upon successful completion. the suffix '.xferDone' will
+ * be appended to the original filename </li>
+ */
+ public void uploadFile (File p_oFile, String p_sRemoteName)
+ throws RemoteFileSystemException
+ {
+ try
+ {
+ changeRemoteDirectory() ;
+ final String sRemoteTmp = p_sRemoteName + TMP_SUFFIX ;
+
+ final OutputStream os = m_oConn.storeFileStream(sRemoteTmp) ;
+ try
+ {
+ final FileInputStream fis = new FileInputStream(p_oFile) ;
+ try
+ {
+ copyStream(fis, os) ;
+ }
+ finally
+ {
+ fis.close() ;
+ }
+ }
+ finally
+ {
+ os.flush() ;
+ os.close() ;
+ }
+ if (!m_oConn.completePendingCommand())
+ {
+ throw new RemoteFileSystemException("Failed to upload contents: " + m_oConn.getReplyString()) ;
+ }
+
+ boolean retryProblem = true; // https://jira.jboss.org/jira/browse/JBESB-1995
- /**
- * Downloads specified file from remote directory (remoteDirURI) to local
- * directory (localDirURI)
- *
- * @param p_sFile
- * String : filename to download
- * @throws RemoteFileSystemException :
- * if ftp connection cannot be established, or file cannot be
- * downloaded
- * <li> local file is assigned a temporary name during transfer
- * </li>
- * <li> upon successful completion, local temporary file will be
- * renamed to name specified in argument, and suffix '.xferDone'
- * will be appended to the original filename in the remote
- * directory </li>
- */
- public void downloadFile (String p_sFile, String p_sFinalName)
- throws RemoteFileSystemException
- {
- try
- {
- final File to = new File(p_sFinalName) ;
- final File oLocalDir = new File(m_sLocalDir);
- final File oNew = (to.isAbsolute() ? to : new File(oLocalDir, p_sFinalName)) ;
- if (oNew.exists())
- oNew.delete();
-
- final File toTmp = new File(p_sFinalName + TMP_SUFFIX) ;
- final File oNewTmp = (toTmp.isAbsolute() ? toTmp : new File(oLocalDir, p_sFinalName + TMP_SUFFIX)) ;
- if (oNewTmp.exists())
- oNewTmp.delete();
-
- changeRemoteDirectory() ;
- final InputStream is = m_oConn.retrieveFileStream(p_sFile) ;
- if (is == null)
- {
- throw new RemoteFileSystemException("Could not download file: " + m_oConn.getReplyString());
- }
-
- try
- {
- final FileOutputStream fos = new FileOutputStream(oNewTmp) ;
- try
- {
- copyStream(is, fos) ;
- }
- finally
- {
- fos.close() ;
- }
- }
- finally
- {
- is.close() ;
- }
- if (!m_oConn.completePendingCommand())
- {
- oNewTmp.delete() ;
- throw new RemoteFileSystemException("Failed to download contents: " + m_oConn.getReplyString()) ;
- }
- FileUtil.renameTo(oNewTmp, oNew);
- }
- catch (IOException ex)
- {
- throw new RemoteFileSystemException(ex);
- }
- } // _________________________________
+ for (int i = 0; i < renameRetry; i++)
+ {
+ if (m_oConn.rename(sRemoteTmp, p_sRemoteName))
+ {
+ retryProblem = false;
- private void checkParms () throws ConfigurationException
- {
- m_sFtpServer = m_oParms.getAttribute(PARMS_FTP_SERVER);
- if (null == m_sFtpServer)
- throw new ConfigurationException("No FTP server specified");
+ break;
+ }
+ else
+ {
+ if (i+1 < renameRetry)
+ {
+ try
+ {
+ Thread.sleep(RemoteFileSystem.DEFAULT_RENAME_RETRY_TIMEOUT);
+ }
+ catch (final Exception ex)
+ {
+ }
+ }
+ }
+ }
- m_sUser = m_oParms.getAttribute(PARMS_USER);
- if (null == m_sUser)
- throw new ConfigurationException("No username specified for FTP");
+ if (retryProblem)
+ throw new RemoteFileSystemException("Failed to rename file: " + m_oConn.getReplyString());
+ }
+ catch (IOException ex)
+ {
+ throw new RemoteFileSystemException(ex);
+ }
+ } // _________________________________
- m_sPasswd = m_oParms.getAttribute(PARMS_PASSWD);
- if (null == m_sPasswd)
- throw new ConfigurationException("No password specified for FTP");
+ /**
+ * Downloads specified file from remote directory (remoteDirURI) to local
+ * directory (localDirURI)
+ *
+ * @param p_sFile
+ * String : filename to download
+ * @throws RemoteFileSystemException :
+ * if ftp connection cannot be established, or file cannot be
+ * downloaded
+ * <li> local file is assigned a temporary name during transfer
+ * </li>
+ * <li> upon successful completion, local temporary file will be
+ * renamed to name specified in argument, and suffix '.xferDone'
+ * will be appended to the original filename in the remote
+ * directory </li>
+ */
+ public void downloadFile (String p_sFile, String p_sFinalName)
+ throws RemoteFileSystemException
+ {
+ try
+ {
+ final File to = new File(p_sFinalName) ;
+ final File oLocalDir = new File(m_sLocalDir);
+ final File oNew = (to.isAbsolute() ? to : new File(oLocalDir, p_sFinalName)) ;
+ if (oNew.exists())
+ oNew.delete();
+
+ final File toTmp = new File(p_sFinalName + TMP_SUFFIX) ;
+ final File oNewTmp = (toTmp.isAbsolute() ? toTmp : new File(oLocalDir, p_sFinalName + TMP_SUFFIX)) ;
+ if (oNewTmp.exists())
+ oNewTmp.delete();
+
+ changeRemoteDirectory() ;
+ final InputStream is = m_oConn.retrieveFileStream(p_sFile) ;
+ if (is == null)
+ {
+ throw new RemoteFileSystemException("Could not download file: " + m_oConn.getReplyString());
+ }
+
+ try
+ {
+ final FileOutputStream fos = new FileOutputStream(oNewTmp) ;
+ try
+ {
+ copyStream(is, fos) ;
+ }
+ finally
+ {
+ fos.close() ;
+ }
+ }
+ finally
+ {
+ is.close() ;
+ }
+ if (!m_oConn.completePendingCommand())
+ {
+ oNewTmp.delete() ;
+ throw new RemoteFileSystemException("Failed to download contents: " + m_oConn.getReplyString()) ;
+ }
+ FileUtil.renameTo(oNewTmp, oNew);
+ }
+ catch (IOException ex)
+ {
+ throw new RemoteFileSystemException(ex);
+ }
+ } // _________________________________
- m_sRemoteDir = m_oParms.getAttribute(PARMS_REMOTE_DIR);
- if (null == m_sRemoteDir)
- m_sRemoteDir = "";
+ private void checkParms () throws ConfigurationException
+ {
+ m_sFtpServer = m_oParms.getAttribute(PARMS_FTP_SERVER);
+ if (null == m_sFtpServer)
+ throw new ConfigurationException("No FTP server specified");
- m_sLocalDir = m_oParms.getAttribute(PARMS_LOCAL_DIR);
- if (null == m_sLocalDir)
- m_sLocalDir = ".";
+ m_sUser = m_oParms.getAttribute(PARMS_USER);
+ if (null == m_sUser)
+ throw new ConfigurationException("No username specified for FTP");
- String sAux = m_oParms.getAttribute(PARMS_PORT);
- m_iPort = (null == sAux) ? 21 : Integer.parseInt(sAux);
+ m_sPasswd = m_oParms.getAttribute(PARMS_PASSWD);
+ if (null == m_sPasswd)
+ throw new ConfigurationException("No password specified for FTP");
- boolean bAscii = false;
- sAux = m_oParms.getAttribute(PARMS_ASCII);
-
- if (null != sAux)
- bAscii = Boolean.parseBoolean(sAux);
-
- m_bAsciiTransferType = bAscii;
+ m_sRemoteDir = m_oParms.getAttribute(PARMS_REMOTE_DIR);
+ if (null == m_sRemoteDir)
+ m_sRemoteDir = "";
- m_bPassive = false;
- sAux = m_oParms.getAttribute(PARMS_PASSIVE);
- m_bPassive = (null != sAux) && Boolean.parseBoolean(sAux);
- } // __________________________________
+ m_sLocalDir = m_oParms.getAttribute(PARMS_LOCAL_DIR);
+ if (null == m_sLocalDir)
+ m_sLocalDir = ".";
- public static String fileToFtpString (File p_oF)
- {
- return (null == p_oF) ? null : p_oF.toString().replace("\\", "/");
- } // ________________________________
+ String sAux = m_oParms.getAttribute(PARMS_PORT);
+ m_iPort = (null == sAux) ? 21 : Integer.parseInt(sAux);
+
+ boolean bAscii = false;
+ sAux = m_oParms.getAttribute(PARMS_ASCII);
+
+ if (null != sAux)
+ bAscii = Boolean.parseBoolean(sAux);
+
+ m_bAsciiTransferType = bAscii;
+
+ m_bPassive = false;
+ sAux = m_oParms.getAttribute(PARMS_PASSIVE);
+ m_bPassive = (null != sAux) && Boolean.parseBoolean(sAux);
+
+ String renameRetryString = ModulePropertyManager.getPropertyManager(
+ ModulePropertyManager.TRANSPORTS_MODULE).getProperty(
+ Environment.FTP_RENAME_RETRY, null);
+
+ if (renameRetryString != null)
+ {
+ try
+ {
+ renameRetry = Integer.parseInt(renameRetryString);
+ }
+ catch (Exception ex)
+ {
+ throw new ConfigurationException("Invalid rename retry limit: "+renameRetryString);
+ }
+ }
+ else
+ renameRetry = RemoteFileSystem.DEFAULT_RENAME_RETRY_NUMBER;
+
+ if (renameRetry < 1)
+ renameRetry = 1;
+ } // __________________________________
+
+ public static String fileToFtpString (File p_oF)
+ {
+ return (null == p_oF) ? null : p_oF.toString().replace("\\", "/");
+ } // ________________________________
private void changeRemoteDirectory()
throws IOException, RemoteFileSystemException
Modified: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/util/RemoteFileSystem.java
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/util/RemoteFileSystem.java 2009-01-21 14:47:17 UTC (rev 24849)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/util/RemoteFileSystem.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -28,143 +28,147 @@
public interface RemoteFileSystem
{
- public static final String FTP_PROTOCOL = "ftp";
+ public static final String FTP_PROTOCOL = "ftp";
- public static final String SFTP_PROTOCOL = "sftp";
+ public static final String SFTP_PROTOCOL = "sftp";
- public static final String FTPS_PROTOCOL = "ftps";
+ public static final String FTPS_PROTOCOL = "ftps";
- public static final String PARMS_PROTOCOL = "protocol";
+ public static final String PARMS_PROTOCOL = "protocol";
- public static final String PARMS_FTP_SERVER = "ftpServer";
+ public static final String PARMS_FTP_SERVER = "ftpServer";
- public static final String PARMS_USER = "ftpUser";
+ public static final String PARMS_USER = "ftpUser";
- public static final String PARMS_PASSWD = "ftpPassword";
+ public static final String PARMS_PASSWD = "ftpPassword";
- public static final String PARMS_PORT = "ftpPort";
+ public static final String PARMS_PORT = "ftpPort";
- public static final String PARMS_REMOTE_DIR = "ftpRemoteDir";
+ public static final String PARMS_REMOTE_DIR = "ftpRemoteDir";
- public static final String PARMS_LOCAL_DIR = "ftpLocalDir";
+ public static final String PARMS_LOCAL_DIR = "ftpLocalDir";
- public static final String PARMS_ASCII = "ftpAscii";
+ public static final String PARMS_ASCII = "ftpAscii";
- public static final String PARMS_PASSIVE = "ftpPassive";
+ public static final String PARMS_PASSIVE = "ftpPassive";
- public static final String PARMS_CERTIFICATE = "certificate";
+ public static final String PARMS_CERTIFICATE = "certificate";
- public static final String PARMS_CERTIFICATE_NAME = "certificateName";
+ public static final String PARMS_CERTIFICATE_NAME = "certificateName";
- public static final String PARMS_PASSPHRASE = "passphrase";
-
- public String getRemoteDir ();
+ public static final String PARMS_PASSPHRASE = "passphrase";
+
+ public static final int DEFAULT_RENAME_RETRY_NUMBER = 10; // default retries
+
+ public static final int DEFAULT_RENAME_RETRY_TIMEOUT = 1000; // 1 second
+
+ public String getRemoteDir ();
- /**
- * Terminates ftp session and frees resources
- * <li>Well behaved programs should make sure to call this method </li>
- */
- public void quit (); // _________________________________
+ /**
+ * Terminates ftp session and frees resources
+ * <li>Well behaved programs should make sure to call this method </li>
+ */
+ public void quit (); // _________________________________
- /**
- * Deletes specified file in remote directory
- *
- * @param p_sFile
- * String : filename to delete. Method will attempt to delete
- * file with rightmost node of argument within remote directory
- * specified in 'remoteDirURI'
- * @throws RemoteFileSystemException :
- * if ftp connection cannot be established, or file cannot be
- * deleted in remote directory
- */
- public void deleteRemoteFile (String p_sFile) throws RemoteFileSystemException; // _________________________________
+ /**
+ * Deletes specified file in remote directory
+ *
+ * @param p_sFile
+ * String : filename to delete. Method will attempt to delete
+ * file with rightmost node of argument within remote directory
+ * specified in 'remoteDirURI'
+ * @throws RemoteFileSystemException :
+ * if ftp connection cannot be established, or file cannot be
+ * deleted in remote directory
+ */
+ public void deleteRemoteFile (String p_sFile) throws RemoteFileSystemException; // _________________________________
- public void remoteDelete (File p_oFile) throws RemoteFileSystemException; // _________________________________
+ public void remoteDelete (File p_oFile) throws RemoteFileSystemException; // _________________________________
- /**
- * Gets the list of files in the remote directory that end with arg0
- *
- * @param p_sSuffix
- * String : retrieve only files that end with that suffix - all
- * files if null
- * @throws RemoteFileSystemException :
- * if ftp connection cannot be established, or problems
- * encountered
- */
- public String[] getFileListFromRemoteDir (String p_sSuffix)
- throws IOException, RemoteFileSystemException; // _________________________________
+ /**
+ * Gets the list of files in the remote directory that end with arg0
+ *
+ * @param p_sSuffix
+ * String : retrieve only files that end with that suffix - all
+ * files if null
+ * @throws RemoteFileSystemException :
+ * if ftp connection cannot be established, or problems
+ * encountered
+ */
+ public String[] getFileListFromRemoteDir (String p_sSuffix)
+ throws IOException, RemoteFileSystemException; // _________________________________
- /**
- * Change remote directory
- *
- * @param p_sDir
- * String : directory to set
- * @throws RemoteFileSystemException :
- * if ftp connection cannot be established, or problems
- * encountered
- */
- public void setRemoteDir (String p_sDir) throws RemoteFileSystemException; // _________________________________
+ /**
+ * Change remote directory
+ *
+ * @param p_sDir
+ * String : directory to set
+ * @throws RemoteFileSystemException :
+ * if ftp connection cannot be established, or problems
+ * encountered
+ */
+ public void setRemoteDir (String p_sDir) throws RemoteFileSystemException; // _________________________________
- /**
- * Renames specified file in remote directory to specified new name
- *
- * @param p_sFrom
- * String : filename to rename
- * @param p_sTo
- * String : new filename
- * @throws RemoteFileSystemException :
- * if ftp connection cannot be established, or file cannot be
- * renamed to new name in remote directory
- * <li>Method will attempt to rename file with rightmost node
- * of argument within remote directory specified in
- * 'remoteDirURI', to new name inside the SAME remote directory
- */
- public void renameInRemoteDir (String p_sFrom, String p_sTo)
- throws RemoteFileSystemException; // _________________________________
+ /**
+ * Renames specified file in remote directory to specified new name
+ *
+ * @param p_sFrom
+ * String : filename to rename
+ * @param p_sTo
+ * String : new filename
+ * @throws RemoteFileSystemException :
+ * if ftp connection cannot be established, or file cannot be
+ * renamed to new name in remote directory
+ * <li>Method will attempt to rename file with rightmost node
+ * of argument within remote directory specified in
+ * 'remoteDirURI', to new name inside the SAME remote directory
+ */
+ public void renameInRemoteDir (String p_sFrom, String p_sTo)
+ throws RemoteFileSystemException; // _________________________________
- /**
- *
- * @param p_oFrom
- * @param p_oTo
- * @throws IOException if file not found.
- * @throws RemoteFileSystemException
- */
- public void remoteRename (File p_oFrom, File p_oTo) throws IOException, RemoteFileSystemException; // _________________________________
+ /**
+ *
+ * @param p_oFrom
+ * @param p_oTo
+ * @throws IOException if file not found.
+ * @throws RemoteFileSystemException
+ */
+ public void remoteRename (File p_oFrom, File p_oTo) throws IOException, RemoteFileSystemException; // _________________________________
- /**
- * Uploads specified file from local directory (localDirURI) to remote
- * directory (remoteDirURI)
- *
- * @param p_oFile
- * String : filename to upload
- * @throws RemoteFileSystemException :
- * if ftp connection cannot be established, or file cannot be
- * uploaded
- * <li> local file will be renamed during transfer
- * ('.xferNotReady' appended to name)</li>
- * <li> upon successful completion. the suffix '.xferDone' will
- * be appended to the original filename </li>
- */
- public void uploadFile (File p_oFile, String p_sRemoteName)
- throws RemoteFileSystemException; // _________________________________
+ /**
+ * Uploads specified file from local directory (localDirURI) to remote
+ * directory (remoteDirURI)
+ *
+ * @param p_oFile
+ * String : filename to upload
+ * @throws RemoteFileSystemException :
+ * if ftp connection cannot be established, or file cannot be
+ * uploaded
+ * <li> local file will be renamed during transfer
+ * ('.xferNotReady' appended to name)</li>
+ * <li> upon successful completion. the suffix '.xferDone' will
+ * be appended to the original filename </li>
+ */
+ public void uploadFile (File p_oFile, String p_sRemoteName)
+ throws RemoteFileSystemException; // _________________________________
- /**
- * Downloads specified file from remote directory (remoteDirURI) to local
- * directory (localDirURI)
- *
- * @param p_sFile
- * String : filename to download
- * @throws RemoteFileSystemException :
- * if ftp connection cannot be established, or file cannot be
- * downloaded
- * <li> local file is assigned a temporary name during transfer
- * </li>
- * <li> upon successful completion, local temporary file will be
- * renamed to name specified in argument, and suffix '.xferDone'
- * will be appended to the original filename in the remote
- * directory </li>
- */
- public void downloadFile (String p_sFile, String p_sFinalName)
- throws IOException, RemoteFileSystemException; // _________________________________
+ /**
+ * Downloads specified file from remote directory (remoteDirURI) to local
+ * directory (localDirURI)
+ *
+ * @param p_sFile
+ * String : filename to download
+ * @throws RemoteFileSystemException :
+ * if ftp connection cannot be established, or file cannot be
+ * downloaded
+ * <li> local file is assigned a temporary name during transfer
+ * </li>
+ * <li> upon successful completion, local temporary file will be
+ * renamed to name specified in argument, and suffix '.xferDone'
+ * will be appended to the original filename in the remote
+ * directory </li>
+ */
+ public void downloadFile (String p_sFile, String p_sFinalName)
+ throws IOException, RemoteFileSystemException; // _________________________________
}
\ No newline at end of file
Modified: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/build.xml
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/build.xml 2009-01-21 14:47:17 UTC (rev 24849)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/build.xml 2009-01-21 15:38:08 UTC (rev 24850)
@@ -18,7 +18,8 @@
<!-- Load deployment properties File -->
<property file="${org.jboss.esb.deployment.properties}"/>
<property name="gendir" location="${org.jboss.esb.internal.dest}/schema-model" />
-
+ <property name="model101.classes" location="${gendir}/classes" />
+ <property name="model110.classes" location="${gendir}/classes110" />
<property name="org.jboss.esb.test.persistdb.dir" location="${org.jboss.esb.internal.dest}/testdb"/>
@@ -30,7 +31,8 @@
<fileset dir="${org.jboss.esb.root.dir}/../testlib" includes="*.jar"/>
<fileset dir="${org.jboss.esb.ftp.lib.dir}" includes="*.jar"/>
<pathelement location="${org.jboss.esb.module.classes.root.dir}/rosetta"/>
- <pathelement location="${gendir}/classes"/>
+ <pathelement location="${model101.classes}"/>
+ <pathelement location="${model110.classes}"/>
<pathelement location="${org.jboss.esb.module.classes.dir}"/>
<pathelement location="${org.jboss.esb.root.dir}/rosetta/tests/resources/etc"/>
<pathelement location="${org.jboss.esb.module.tests.conf.dir}"/>
@@ -90,11 +92,19 @@
</report>
</emma>
</target>
+
+ <target name="create.endorsed.property">
+ <condition property="endorsed" else="${java.endorsed.dirs}" value="${java.endorsed.dirs}${path.separator}${org.jboss.esb.ext.lib.dir}/endorsed">
+ <equals arg1="${java.specification.version}" arg2="1.6"/>
+ </condition>
+ <echo message="Setting java.endorsed.dir=${endorsed}"/>
+ <property name="java.endorsed.dirs" value="${endorsed}"/>
+ </target>
<!-- ====================================================================== -->
<!-- U N I T A N D F U N C T I O N A L T E S T S -->
<!-- ====================================================================== -->
- <target name="org.jboss.esb.services.internal.test.exec">
+ <target name="org.jboss.esb.services.internal.test.exec" depends="create.endorsed.property">
<echo message="Running tests '${tests.to.run}' for Rosetta module, excluding integration"/>
<delete dir="${org.jboss.esb.test.persistdb.dir}" failonerror="false"/>
@@ -102,7 +112,11 @@
<copy todir="${org.jboss.esb.test.persistdb.dir}">
<fileset dir="resources/etc/" includes="persistUnitTestDB*"/>
</copy>
+ <copy todir="${org.jboss.esb.tests.classes.dir}" >
+ <fileset dir="${org.jboss.esb.module.tests.src.dir}" includes="**/*.xml" />
+ </copy>
<copy file="${org.jboss.esb.root.dir}/etc/schemas/xml/jbossesb-1.0.1.xsd" todir="${org.jboss.esb.tests.classes.dir}"/>
+
<junit printsummary="yes" haltonerror="${org.jboss.esb.build.haltonerror}" haltonfailure="${org.jboss.esb.build.haltonfailure}" showoutput="no" fork="true">
@@ -123,6 +137,7 @@
<pathelement location="${basedir}/resources/etc"/>
<!-- using instrumented code for code coverage -->
<pathelement location="${org.jboss.esb.module.classes.instr.dir}"/>
+ <pathelement location="${org.jboss.esb.module.src.dir}"/>
<pathelement location="${org.jboss.esb.tests.classes.dir}"/>
<!-- Need the tests src folder because there may be non-compiled test resources -->
<pathelement location="${org.jboss.esb.module.tests.src.dir}"/>
@@ -143,6 +158,11 @@
<sysproperty key="org.jboss.esb.test.persistdb.dir" value="${org.jboss.esb.test.persistdb.dir}"/>
<sysproperty key="log4j.configuration" value="log4j.xml"/>
<sysproperty key="jboss.esb.invm.scope.default" value="NONE"/>
+ <!--
+ Setting the endored lib to lib/ext/endorsed
+ This was needed for Java6 as it distributes it's one version of saaj
+ -->
+ <sysproperty key="java.endorsed.dirs" value="${endorsed}"/>
</junit>
<junitreport>
<fileset dir="${org.jboss.esb.tests.report.dir}">
@@ -183,7 +203,7 @@
<!-- ====================================================================== -->
<!-- INTEGRATION T E S T S -->
<!-- ====================================================================== -->
- <target name="org.jboss.esb.services.internal.integration.test.exec">
+ <target name="org.jboss.esb.services.internal.integration.test.exec" depends="create.endorsed.property">
<echo message="Running all tests for module"/>
<delete dir="${org.jboss.esb.test.persistdb.dir}" failonerror="false"/>
<mkdir dir="${org.jboss.esb.test.persistdb.dir}"/>
@@ -204,6 +224,7 @@
<classpath>
<!-- using instrumented code for code coverage -->
<pathelement location="${org.jboss.esb.module.classes.instr.dir}"/>
+ <pathelement location="${org.jboss.esb.module.src.dir}"/>
<pathelement location="${org.jboss.esb.tests.classes.dir}"/>
<!-- Need the tests src folder because there may be non-compiled test resources -->
<pathelement location="${org.jboss.esb.module.tests.src.dir}"/>
@@ -214,6 +235,11 @@
</classpath>
<!-- emma jvm args -->
<jvmarg value="-Demma.coverage.out.file=${org.jboss.esb.module.tests.coverage.dir}/coverage.emma" />
+ <!--
+ Setting the endored lib to lib/ext/endorsed
+ This was needed for Java6 as it distributes it's one version of saaj
+ -->
+ <sysproperty key="java.endorsed.dirs" value="${endorsed}"/>
<!--
<sysproperty key="org.jboss.esb.test.db.driver" value="${org.jboss.esb.test.db.driver}"/>
Copied: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/internal/soa/esb/services/security (from rev 24846, labs/jbossesb/trunk/product/rosetta/tests/src/org/jboss/internal/soa/esb/services/security)
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/internal/soa/esb/services/security/JaasSecurityServiceUnitTest.java
===================================================================
--- labs/jbossesb/trunk/product/rosetta/tests/src/org/jboss/internal/soa/esb/services/security/JaasSecurityServiceUnitTest.java 2009-01-21 09:35:03 UTC (rev 24846)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/internal/soa/esb/services/security/JaasSecurityServiceUnitTest.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -1,208 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source Copyright 2008, Red Hat Middleware
- * LLC, and individual contributors by the @authors tag. See the copyright.txt
- * in the distribution for a full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it under the
- * terms of the GNU Lesser General Public License as published by the Free
- * Software Foundation; either version 2.1 of the License, or (at your option)
- * any later version.
- *
- * This software is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
- * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
- * details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this software; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA, or see the FSF
- * site: http://www.fsf.org.
- */
-package org.jboss.internal.soa.esb.services.security;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertTrue;
-import static org.junit.Assert.fail;
-
-import java.net.URL;
-import java.security.Principal;
-import java.util.HashSet;
-import java.util.Set;
-
-import javax.security.auth.Subject;
-
-import junit.framework.JUnit4TestAdapter;
-
-import org.jboss.soa.esb.ConfigurationException;
-import org.jboss.soa.esb.common.Environment;
-import org.jboss.soa.esb.services.security.SecurityConfig;
-import org.jboss.soa.esb.services.security.SecurityContext;
-import org.jboss.soa.esb.services.security.SecurityService;
-import org.jboss.soa.esb.services.security.SecurityServiceException;
-import org.jboss.soa.esb.services.security.TestPrincipal;
-import org.jboss.soa.esb.services.security.SecurityConfig.Builder;
-import org.jboss.soa.esb.services.security.auth.AuthenticationRequest;
-import org.jboss.soa.esb.services.security.auth.AuthenticationRequestImpl;
-import org.jboss.soa.esb.services.security.principals.Group;
-import org.jboss.soa.esb.services.security.principals.Role;
-import org.jboss.soa.esb.util.ClassUtil;
-import org.junit.After;
-import org.junit.Before;
-import org.junit.Test;
-
-/**
- * Unit test for {@link SecurityServiceImpl}
- * <p/>
- *
- * @author <a href="mailto:dbevenius at redhat.com">Daniel Bevenius</a>
- * @since 4.4
- */
-public class JaasSecurityServiceUnitTest
-{
- private final SecurityService service = new JaasSecurityService();
- private final Subject subject = new Subject();
- private String jbossEsbProperties;
-
- @Test
- public void authenticateUserpassword() throws ConfigurationException, SecurityServiceException
- {
- final String userName = "testUser";
- final String password = "testPassword";
- Builder builder = new SecurityConfig.Builder("UserPassLogin");
- builder.callBackhandler("org.jboss.internal.soa.esb.services.security.UserPassCallbackHandler");
- SecurityConfig configInfo = builder.build();
- TestPrincipal principal = new TestPrincipal(userName);
- Set<Object> credentials = new HashSet<Object>();
- credentials.add(password);
-
- AuthenticationRequest authRequest = new AuthenticationRequestImpl.Builder(principal, credentials).build();
- SecurityContext context = new SecurityContext(subject);
- service.configure();
- service.authenticate(configInfo, context, authRequest);
-
- Set<TestPrincipal> principals = subject.getPrincipals( TestPrincipal.class );
- assertEquals( 1, principals.size() );
- assertEquals( userName, principals.iterator().next().getName() );
- }
-
- @Test
- public void authenticateWithRole() throws ConfigurationException, SecurityServiceException
- {
- Builder builder = new SecurityConfig.Builder("SuccessfulLogin");
- builder.runAs("adminRole");
- SecurityConfig configInfo = builder.build();
- SecurityContext context = new SecurityContext(subject);
- service.authenticate(configInfo, context, null);
- Set<Principal> principals = subject.getPrincipals( Principal.class );
- assertEquals( 2, principals.size() );
- }
-
- @Test
- public void authenticateWithExistingRole() throws ConfigurationException, SecurityServiceException
- {
- Builder builder = new SecurityConfig.Builder("SuccessfulLogin");
- builder.runAs("adminRole");
- SecurityConfig configInfo = builder.build();
- Group group = new Group("Roles");
- group.addMember(new Role("adminRole1"));
-
- subject.getPrincipals().add(group);
-
- SecurityContext context = new SecurityContext(subject);
- service.authenticate(configInfo, context, null);
-
- Set<Principal> principals = subject.getPrincipals( Principal.class );
- assertEquals( 2, principals.size() );
- }
-
- @Test
- public void isCallerInRole() throws SecurityServiceException
- {
- final String roleName = "adminRole";
- Builder builder = new SecurityConfig.Builder("SuccessfulLogin");
- builder.runAs(roleName);
- SecurityConfig configInfo = builder.build();
- SecurityContext context = new SecurityContext(subject);
- service.authenticate(configInfo, context, null);
- assertTrue( service.isCallerInRole(subject, new Role(roleName)));
- }
-
- @Test ( expected = SecurityServiceException.class )
- public void loginFailure() throws ConfigurationException, SecurityServiceException
- {
- Builder builder = new SecurityConfig.Builder("FailureLogin");
- SecurityConfig configInfo = builder.build();
- SecurityContext context = new SecurityContext(subject);
- service.authenticate( configInfo, context, null );
- }
-
- @Test
- public void rolesAllowed() throws ConfigurationException, SecurityServiceException
- {
- Builder builder = new SecurityConfig.Builder("SuccessfulLogin");
- builder.runAs("esbRole");
- builder.rolesAllowed("esbRole");
- SecurityConfig configInfo = builder.build();
- SecurityContext context = new SecurityContext(subject);
- service.authenticate( configInfo, context, null );
- boolean checkRolesAllowed = service.checkRolesAllowed(configInfo.getRolesAllowed(), context);
- assertTrue(checkRolesAllowed);
- }
-
- @Test
- public void refresh() throws SecurityServiceException
- {
- Runnable runnable = new Runnable()
- {
- public void run()
- {
- threadLogin();
- }
- };
- for (int i = 0; i < 1000; i++)
- {
- Thread t1 = new Thread(runnable);
- Thread t2 = new Thread(runnable);
- t1.start();
- t2.start();
- }
- }
-
- private void threadLogin()
- {
- Builder builder = new SecurityConfig.Builder("SuccessfulLogin");
- SecurityConfig configInfo = builder.build();
- SecurityContext context = new SecurityContext(new Subject());
- service.refreshSecurityConfig();
- try
- {
- service.authenticate( configInfo, context, null );
- }
- catch (SecurityServiceException e)
- {
- fail(e.getMessage());
- }
- }
-
- @Before
- public void setup() throws ConfigurationException
- {
- jbossEsbProperties = System.getProperty(Environment.PROPERTIES_FILE);
- URL resource = ClassUtil.getResource("security-properties.xml", getClass());
- System.setProperty(Environment.PROPERTIES_FILE, "abs://" + resource.getFile());
- service.configure();
- }
-
- @After
- public void tearDown()
- {
- if ( jbossEsbProperties != null )
- System.setProperty(Environment.PROPERTIES_FILE, jbossEsbProperties);
- }
-
- public static junit.framework.Test suite()
- {
- return new JUnit4TestAdapter( JaasSecurityServiceUnitTest.class );
- }
-
-}
Copied: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/internal/soa/esb/services/security/JaasSecurityServiceUnitTest.java (from rev 24846, labs/jbossesb/trunk/product/rosetta/tests/src/org/jboss/internal/soa/esb/services/security/JaasSecurityServiceUnitTest.java)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/internal/soa/esb/services/security/JaasSecurityServiceUnitTest.java (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/internal/soa/esb/services/security/JaasSecurityServiceUnitTest.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -0,0 +1,208 @@
+/*
+ * JBoss, Home of Professional Open Source Copyright 2008, Red Hat Middleware
+ * LLC, and individual contributors by the @authors tag. See the copyright.txt
+ * in the distribution for a full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it under the
+ * terms of the GNU Lesser General Public License as published by the Free
+ * Software Foundation; either version 2.1 of the License, or (at your option)
+ * any later version.
+ *
+ * This software is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+ * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
+ * details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this software; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA, or see the FSF
+ * site: http://www.fsf.org.
+ */
+package org.jboss.internal.soa.esb.services.security;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.fail;
+
+import java.net.URL;
+import java.security.Principal;
+import java.util.HashSet;
+import java.util.Set;
+
+import javax.security.auth.Subject;
+
+import junit.framework.JUnit4TestAdapter;
+
+import org.jboss.soa.esb.ConfigurationException;
+import org.jboss.soa.esb.common.Environment;
+import org.jboss.soa.esb.services.security.SecurityConfig;
+import org.jboss.soa.esb.services.security.SecurityContext;
+import org.jboss.soa.esb.services.security.SecurityService;
+import org.jboss.soa.esb.services.security.SecurityServiceException;
+import org.jboss.soa.esb.services.security.TestPrincipal;
+import org.jboss.soa.esb.services.security.SecurityConfig.Builder;
+import org.jboss.soa.esb.services.security.auth.AuthenticationRequest;
+import org.jboss.soa.esb.services.security.auth.AuthenticationRequestImpl;
+import org.jboss.soa.esb.services.security.principals.Group;
+import org.jboss.soa.esb.services.security.principals.Role;
+import org.jboss.soa.esb.util.ClassUtil;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+
+/**
+ * Unit test for {@link SecurityServiceImpl}
+ * <p/>
+ *
+ * @author <a href="mailto:dbevenius at redhat.com">Daniel Bevenius</a>
+ * @since 4.4
+ */
+public class JaasSecurityServiceUnitTest
+{
+ private final SecurityService service = new JaasSecurityService();
+ private final Subject subject = new Subject();
+ private String jbossEsbProperties;
+
+ @Test
+ public void authenticateUserpassword() throws ConfigurationException, SecurityServiceException
+ {
+ final String userName = "testUser";
+ final String password = "testPassword";
+ Builder builder = new SecurityConfig.Builder("UserPassLogin");
+ builder.callBackhandler("org.jboss.internal.soa.esb.services.security.UserPassCallbackHandler");
+ SecurityConfig configInfo = builder.build();
+ TestPrincipal principal = new TestPrincipal(userName);
+ Set<Object> credentials = new HashSet<Object>();
+ credentials.add(password);
+
+ AuthenticationRequest authRequest = new AuthenticationRequestImpl.Builder(principal, credentials).build();
+ SecurityContext context = new SecurityContext(subject);
+ service.configure();
+ service.authenticate(configInfo, context, authRequest);
+
+ Set<TestPrincipal> principals = subject.getPrincipals( TestPrincipal.class );
+ assertEquals( 1, principals.size() );
+ assertEquals( userName, principals.iterator().next().getName() );
+ }
+
+ @Test
+ public void authenticateWithRole() throws ConfigurationException, SecurityServiceException
+ {
+ Builder builder = new SecurityConfig.Builder("SuccessfulLogin");
+ builder.runAs("adminRole");
+ SecurityConfig configInfo = builder.build();
+ SecurityContext context = new SecurityContext(subject);
+ service.authenticate(configInfo, context, null);
+ Set<Principal> principals = subject.getPrincipals( Principal.class );
+ assertEquals( 2, principals.size() );
+ }
+
+ @Test
+ public void authenticateWithExistingRole() throws ConfigurationException, SecurityServiceException
+ {
+ Builder builder = new SecurityConfig.Builder("SuccessfulLogin");
+ builder.runAs("adminRole");
+ SecurityConfig configInfo = builder.build();
+ Group group = new Group("Roles");
+ group.addMember(new Role("adminRole1"));
+
+ subject.getPrincipals().add(group);
+
+ SecurityContext context = new SecurityContext(subject);
+ service.authenticate(configInfo, context, null);
+
+ Set<Principal> principals = subject.getPrincipals( Principal.class );
+ assertEquals( 2, principals.size() );
+ }
+
+ @Test
+ public void isCallerInRole() throws SecurityServiceException
+ {
+ final String roleName = "adminRole";
+ Builder builder = new SecurityConfig.Builder("SuccessfulLogin");
+ builder.runAs(roleName);
+ SecurityConfig configInfo = builder.build();
+ SecurityContext context = new SecurityContext(subject);
+ service.authenticate(configInfo, context, null);
+ assertTrue( service.isCallerInRole(subject, new Role(roleName)));
+ }
+
+ @Test ( expected = SecurityServiceException.class )
+ public void loginFailure() throws ConfigurationException, SecurityServiceException
+ {
+ Builder builder = new SecurityConfig.Builder("FailureLogin");
+ SecurityConfig configInfo = builder.build();
+ SecurityContext context = new SecurityContext(subject);
+ service.authenticate( configInfo, context, null );
+ }
+
+ @Test
+ public void rolesAllowed() throws ConfigurationException, SecurityServiceException
+ {
+ Builder builder = new SecurityConfig.Builder("SuccessfulLogin");
+ builder.runAs("esbRole");
+ builder.rolesAllowed("esbRole");
+ SecurityConfig configInfo = builder.build();
+ SecurityContext context = new SecurityContext(subject);
+ service.authenticate( configInfo, context, null );
+ boolean checkRolesAllowed = service.checkRolesAllowed(configInfo.getRolesAllowed(), context);
+ assertTrue(checkRolesAllowed);
+ }
+
+ @Test
+ public void refresh() throws SecurityServiceException
+ {
+ Runnable runnable = new Runnable()
+ {
+ public void run()
+ {
+ threadLogin();
+ }
+ };
+ for (int i = 0; i < 1000; i++)
+ {
+ Thread t1 = new Thread(runnable);
+ Thread t2 = new Thread(runnable);
+ t1.start();
+ t2.start();
+ }
+ }
+
+ private void threadLogin()
+ {
+ Builder builder = new SecurityConfig.Builder("SuccessfulLogin");
+ SecurityConfig configInfo = builder.build();
+ SecurityContext context = new SecurityContext(new Subject());
+ service.refreshSecurityConfig();
+ try
+ {
+ service.authenticate( configInfo, context, null );
+ }
+ catch (SecurityServiceException e)
+ {
+ fail(e.getMessage());
+ }
+ }
+
+ @Before
+ public void setup() throws ConfigurationException
+ {
+ jbossEsbProperties = System.getProperty(Environment.PROPERTIES_FILE);
+ URL resource = ClassUtil.getResource("security-properties.xml", getClass());
+ System.setProperty(Environment.PROPERTIES_FILE, "abs://" + resource.getFile());
+ service.configure();
+ }
+
+ @After
+ public void tearDown()
+ {
+ if ( jbossEsbProperties != null )
+ System.setProperty(Environment.PROPERTIES_FILE, jbossEsbProperties);
+ }
+
+ public static junit.framework.Test suite()
+ {
+ return new JUnit4TestAdapter( JaasSecurityServiceUnitTest.class );
+ }
+
+}
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/internal/soa/esb/services/security/PrivateCryptoUtilUnitTest.java
===================================================================
--- labs/jbossesb/trunk/product/rosetta/tests/src/org/jboss/internal/soa/esb/services/security/PrivateCryptoUtilUnitTest.java 2009-01-21 09:35:03 UTC (rev 24846)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/internal/soa/esb/services/security/PrivateCryptoUtilUnitTest.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -1,89 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source Copyright 2008, Red Hat Middleware
- * LLC, and individual contributors by the @authors tag. See the copyright.txt
- * in the distribution for a full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it under the
- * terms of the GNU Lesser General Public License as published by the Free
- * Software Foundation; either version 2.1 of the License, or (at your option)
- * any later version.
- *
- * This software is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
- * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
- * details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this software; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA, or see the FSF
- * site: http://www.fsf.org.
- */
-package org.jboss.internal.soa.esb.services.security;
-
-import static org.junit.Assert.*;
-import static org.junit.Assert.assertEquals;
-
-import java.io.IOException;
-import java.io.Serializable;
-import java.net.URL;
-import java.security.InvalidKeyException;
-import java.security.NoSuchAlgorithmException;
-import java.security.Provider;
-import java.security.Security;
-
-import javax.crypto.SealedObject;
-
-import junit.framework.JUnit4TestAdapter;
-
-import org.jboss.soa.esb.ConfigurationException;
-import org.jboss.soa.esb.common.Environment;
-import org.jboss.soa.esb.services.security.SecurityServiceException;
-import org.jboss.soa.esb.util.ClassUtil;
-import org.junit.After;
-import org.junit.Before;
-import org.junit.Test;
-
-/**
- * Unit test for PrivateCryptoUtil.
- *
- * @author <a href="mailto:dbevenius at redhat.com">Daniel Bevenius</a>
- *
- */
-public class PrivateCryptoUtilUnitTest
-{
- private String jbossEsbProperties;
-
- @Test
- public void encryptAndDecrypt() throws SecurityServiceException
- {
- String object = "some texti: dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd";
- byte[] encrypted = PrivateCryptoUtil.INSTANCE.encrypt(object);
- assertFalse(object.equals(new String(encrypted)));
-
- Serializable plainObject = PrivateCryptoUtil.INSTANCE.decrypt(encrypted);
- assertEquals(object, plainObject);
- }
-
- @Before
- public void setup() throws ConfigurationException
- {
- jbossEsbProperties = System.getProperty(Environment.PROPERTIES_FILE);
- URL resource = ClassUtil.getResource("security-properties.xml", getClass());
- System.setProperty(Environment.PROPERTIES_FILE, "abs://" + resource.getFile());
- }
-
- @After
- public void tearDown()
- {
- if ( jbossEsbProperties != null )
- {
- System.setProperty(Environment.PROPERTIES_FILE, jbossEsbProperties);
- }
- }
-
- public static junit.framework.Test suite()
- {
- return new JUnit4TestAdapter(PrivateCryptoUtilUnitTest.class);
- }
-
-}
Copied: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/internal/soa/esb/services/security/PrivateCryptoUtilUnitTest.java (from rev 24846, labs/jbossesb/trunk/product/rosetta/tests/src/org/jboss/internal/soa/esb/services/security/PrivateCryptoUtilUnitTest.java)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/internal/soa/esb/services/security/PrivateCryptoUtilUnitTest.java (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/internal/soa/esb/services/security/PrivateCryptoUtilUnitTest.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -0,0 +1,89 @@
+/*
+ * JBoss, Home of Professional Open Source Copyright 2008, Red Hat Middleware
+ * LLC, and individual contributors by the @authors tag. See the copyright.txt
+ * in the distribution for a full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it under the
+ * terms of the GNU Lesser General Public License as published by the Free
+ * Software Foundation; either version 2.1 of the License, or (at your option)
+ * any later version.
+ *
+ * This software is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+ * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
+ * details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this software; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA, or see the FSF
+ * site: http://www.fsf.org.
+ */
+package org.jboss.internal.soa.esb.services.security;
+
+import static org.junit.Assert.*;
+import static org.junit.Assert.assertEquals;
+
+import java.io.IOException;
+import java.io.Serializable;
+import java.net.URL;
+import java.security.InvalidKeyException;
+import java.security.NoSuchAlgorithmException;
+import java.security.Provider;
+import java.security.Security;
+
+import javax.crypto.SealedObject;
+
+import junit.framework.JUnit4TestAdapter;
+
+import org.jboss.soa.esb.ConfigurationException;
+import org.jboss.soa.esb.common.Environment;
+import org.jboss.soa.esb.services.security.SecurityServiceException;
+import org.jboss.soa.esb.util.ClassUtil;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+
+/**
+ * Unit test for PrivateCryptoUtil.
+ *
+ * @author <a href="mailto:dbevenius at redhat.com">Daniel Bevenius</a>
+ *
+ */
+public class PrivateCryptoUtilUnitTest
+{
+ private String jbossEsbProperties;
+
+ @Test
+ public void encryptAndDecrypt() throws SecurityServiceException
+ {
+ String object = "some texti: dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd";
+ byte[] encrypted = PrivateCryptoUtil.INSTANCE.encrypt(object);
+ assertFalse(object.equals(new String(encrypted)));
+
+ Serializable plainObject = PrivateCryptoUtil.INSTANCE.decrypt(encrypted);
+ assertEquals(object, plainObject);
+ }
+
+ @Before
+ public void setup() throws ConfigurationException
+ {
+ jbossEsbProperties = System.getProperty(Environment.PROPERTIES_FILE);
+ URL resource = ClassUtil.getResource("security-properties.xml", getClass());
+ System.setProperty(Environment.PROPERTIES_FILE, "abs://" + resource.getFile());
+ }
+
+ @After
+ public void tearDown()
+ {
+ if ( jbossEsbProperties != null )
+ {
+ System.setProperty(Environment.PROPERTIES_FILE, jbossEsbProperties);
+ }
+ }
+
+ public static junit.framework.Test suite()
+ {
+ return new JUnit4TestAdapter(PrivateCryptoUtilUnitTest.class);
+ }
+
+}
Copied: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/internal/soa/esb/services/security/jaas (from rev 24846, labs/jbossesb/trunk/product/rosetta/tests/src/org/jboss/internal/soa/esb/services/security/jaas)
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/internal/soa/esb/services/security/jaas/AMConfig.properties
===================================================================
--- labs/jbossesb/trunk/product/rosetta/tests/src/org/jboss/internal/soa/esb/services/security/jaas/AMConfig.properties 2009-01-21 09:35:03 UTC (rev 24846)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/internal/soa/esb/services/security/jaas/AMConfig.properties 2009-01-21 15:38:08 UTC (rev 24850)
@@ -1,429 +0,0 @@
-#
-# The contents of this file are subject to the terms
-# of the Common Development and Distribution License
-# (the License). You may not use this file except in
-# compliance with the License.
-#
-# You can obtain a copy of the License at
-# https://opensso.dev.java.net/public/CDDLv1.0.html or
-# opensso/legal/CDDLv1.0.txt
-# See the License for the specific language governing
-# permission and limitations under the License.
-#
-# When distributing Covered Code, include this CDDL
-# Header Notice in each file and include the License file
-# at opensso/legal/CDDLv1.0.txt.
-# If applicable, add the following below the CDDL Header,
-# with the fields enclosed by brackets [] replaced by
-# your own identifying information:
-# "Portions Copyrighted [year] [name of copyright owner]"
-#
-# $Id: AMClient.properties,v 1.12 2008/03/04 00:25:12 beomsuk Exp $
-#
-# Copyright 2006 Sun Microsystems Inc. All Rights Reserved
-#
-
-/* The following keys are used to configure the Debug service.
- * Possible values for the key 'level' are: off | error | warning | message.
- * The key 'directory' specifies the output directory where the debug files
- * will be created.
- * Trailing spaces are significant.
- * Windows: Use forward slashes "/" separate directories, not backslash "\".
- * Windows: Spaces in the file name are allowed for Windows.
- */
-com.iplanet.services.debug.level=message
-com.iplanet.services.debug.directory=/tmp
-
-/*
- * Server mode should be 'false'
- */
-com.iplanet.am.serverMode=false
-
-/*
- * Cache enable / disable properties
- */
-com.iplanet.am.sdk.caching.enabled=false
-com.sun.identity.idm.cache.enabled=false
-com.sun.identity.sm.cache.enabled=true
-
-/*
- * Configure remote plugin classes for configuration (SMS)
- */
-com.sun.identity.sm.sms_object_class_name=com.sun.identity.sm.jaxrpc.SMSJAXRPCObject
-
-/*
- * Naming URL
- */
-com.iplanet.am.naming.url=http://localhost:8080/opensso/namingservice
-
-/*
- * Notification URL
- */
-com.iplanet.am.notification.url=
-
-/*
- * Security Credentails to read the configuration data
- */
-com.sun.identity.agents.app.username=UrlAccessAgent
-com.iplanet.am.service.password=
-com.iplanet.am.service.secret=AQIC24u86rq9RRbx13mx0nb0uAGpxLdxGBY9
-
-/*
- * Encryption key that will be used to encrypt and decypt
- * data to communicate with the server.
- * This key is needed to decrypt passwords stored
- * in the SMS configuration.
- */
-am.encryption.pwd=SAMPLE_RAND
-
-/*
- * Encryption key that will be used to encrypt and decypt
- * data used locally within the client.
- */
-com.sun.identity.client.encryptionKey=SAMPLE_RAND
-
-/*
- * Encryption: The key "com.iplanet.security.encryptor" specifies
- * the encrypting class implementation.
- * Available classes are:
- * com.iplanet.services.util.JCEEncryption
- * com.iplanet.services.util.JSSEncryption
- */
-com.iplanet.security.encryptor=com.iplanet.services.util.JCEEncryption
-
-/*
- * Property to enable/disable the notifications for am.sdk and IdRepo Caches.
- * If set to "true" notifications are enabled and disabled if set to "false".
- */
-com.sun.identity.idm.remote.notification.enabled=true
-
-/*
- * Cache update time (in minutes) for am.sdk & IdRepo Caches
- * if notification URL is not provided or if notifications are disabled.
- * Note:
- * 1. This property is applicable only if 'com.iplanet.am.notification.url'
- * is not provided or if 'com.sun.identity.idm.remote.notification.enabled'
- * is set to 'false'.
- * 2. If the polling time is set as 0, then polling is disabled.
- */
-com.iplanet.am.sdk.remote.pollingTime=1
-
-/*
- * Property to enable/disable the notifications for service management caches.
- * If set to "true" notifications are enabled and disabled if set to "false".
- */
-com.sun.identity.sm.notification.enabled=true
-
-/*
- * Cache update time (in minutes) for service configutation data,
- * if notification URL is not provided or if notifications are disabled.
- * Note:
- * 1. This property is applicable only if 'com.iplanet.am.notification.url'
- * is not provided or if 'com.sun.identity.sm.notification.enabled' is
- * set to 'false'.
- * 2. If the cache time is set as 0, then no cache updates will occur.
- */
-com.sun.identity.sm.cacheTime=1
-
-/*
- * Server protocol, host and port to be used by Client Services
- */
-com.iplanet.am.server.protocol=http
-com.iplanet.am.server.host=localhost
-com.iplanet.am.server.port=8080
-com.iplanet.am.services.deploymentDescriptor=opensso
-com.iplanet.am.console.protocol=@CONSOLE_PROTOCOL@
-com.iplanet.am.console.host=@CONSOLE_HOST@
-com.iplanet.am.console.port=@CONSOLE_PORT@
-com.iplanet.am.console.deploymentDescriptor=@CONSOLE_DEPLOY_URI@
-com.iplanet.am.console.remote=@CONSOLE_REMOTE@
-
-com.iplanet.am.cookie.name=iPlanetDirectoryPro
-
-/*
- * Session related properties.
- */
-com.iplanet.am.session.client.polling.enable=true
-com.iplanet.am.session.client.polling.period=180
-
-/*
- * Identify cert db directory path, prefix and password file
- * to initialize JSS Socket Factory when Web Container is configured SSL
- */
-com.iplanet.am.admin.cli.certdb.dir=
-com.iplanet.am.admin.cli.certdb.prefix=
-com.iplanet.am.admin.cli.certdb.passfile=//config/.wtpass
-
-/*
- * Identify property value for SSL ApprovalCallback / HostnameVerifier
- * If com.iplanet.services.comm is configured as protocol handler
- * and the checkSubjectAltName or resolveIPAddress feature is enabled,
- * cert8.db and key3.db with the prefix value of
- * com.iplanet.am.admin.cli.certdb.prefix will have to be created under
- * the directory of com.iplanet.am.admin.cli.certdb.dir before server is
- * restarted.
- */
-com.iplanet.am.jssproxy.trustAllServerCerts=false
-com.iplanet.am.jssproxy.checkSubjectAltName=false
-com.iplanet.am.jssproxy.resolveIPAddress=false
-com.iplanet.am.jssproxy.SSLTrustHostList=false
-
-/**************************************************************
- * Policy Client parameters
- **************************************************************/
-/* Policy decision log parameters. Possible values for logging.level
- * are NONE, ALLOW, DENY, BOTH, and DECISION */
-com.sun.identity.agents.server.log.file.name=amRemotePolicyLog
-com.sun.identity.agents.logging.level=NONE
-
-/* Notification URL for updating cache */
-com.sun.identity.agents.notification.enabled=false
-com.sun.identity.agents.notification.url=
-
-/* Cache time in minutes */
-com.sun.identity.agents.polling.interval=3
-
-/* Information to cache. Possible value are "subtree" or "self" */
-com.sun.identity.policy.client.cacheMode=subtree
-
-/* Policy client clock skew value in seconds */
-com.sun.identity.policy.client.clockSkew=10
-
-/*
-* Explicitly disable monitoring services in the client applications.
-*/
-com.sun.identity.monitoring=off
-
-/*
-* Specify if allow to use cached data for HttpURLConnection
-*/
-com.sun.identity.urlconnection.useCache=false
-
-#
-# Specify implementation class for
-# com.sun.identity.plugin.configuration.ConfigurationInstance interface.
-com.sun.identity.plugin.configuration.class=com.sun.identity.plugin.configuration.impl.ConfigurationInstanceImpl
-
-#
-# Specify implementation class for
-# com.sun.identity.plugin.datastore.DataStoreProvider interface.
-# This property defines the default datastore provider.
-com.sun.identity.plugin.datastore.class.default=com.sun.identity.plugin.datastore.impl.IdRepoDataStoreProvider
-
-#
-# Specify implementation class for
-# com.sun.identity.plugin.session.SessionProvider interface.
-com.sun.identity.plugin.session.class=com.sun.identity.plugin.session.impl.FMSessionProvider
-
-#
-# Specify XML signature provider class
-com.sun.identity.saml.xmlsig.signatureprovider.class=com.sun.identity.saml.xmlsig.AMSignatureProvider
-
-#
-# Specify XML key provider implementation class
-com.sun.identity.saml.xmlsig.keyprovider.class=com.sun.identity.saml.xmlsig.JKSKeyProvider
-
-#
-# Identify SAML XML signature keystore file, keystore password file
-# and key password file
-com.sun.identity.saml.xmlsig.keystore=@BASE_DIR@/keystore.jks
-com.sun.identity.saml.xmlsig.storepass=@BASE_DIR@/.storepass
-com.sun.identity.saml.xmlsig.keypass=@BASE_DIR@/.keypass
-com.sun.identity.saml.xmlsig.certalias=test
-
-#
-# Specify type of KeyStore used for saml xml signature. Default is JKS.
-# com.sun.identity.saml.xmlsig.storetype=JKS
-
-#
-# Flag for checking the Certificate which is embedded in the
-# KeyInfo against the certificates in the keystore (specified
-# by the "com.sun.identity.saml.xmlsig.keystore" property).
-# Possible values for the key are: on|off. If the flag is "on",
-# the certification must be presented in the keystore for
-# XML signature validation. If the flag is "off", skip
-# the presence checking.
-com.sun.identity.saml.checkcert=on
-
-#
-# XML cannonicalization algorithm. Used for SAML XML signature generation
-# and verification. When not specified, or value is empty, default value
-# will be used. The following is the list of supported algorithms:
-# http://www.w3.org/2001/10/xml-exc-c14n# (default)
-# http://www.w3.org/2001/10/xml-exc-c14n#WithComments
-# http://www.w3.org/TR/2001/REC-xml-c14n-20010315
-# http://www.w3.org/TR/2001/REC-xml-c14n-20010315#WithComments
-com.sun.identity.saml.xmlsig.c14nMethod=http://www.w3.org/2001/10/xml-exc-c14n#
-
-#
-# XML signature algorithm. Used for SAML XML Signature generation and
-# verification. When not specified, or value is empty, default value will be
-# used. The following is the list of supported algorithms:
-# http://www.w3.org/2000/09/xmldsig#rsa-sha1 (default)
-# http://www.w3.org/2000/09/xmldsig#hmac-sha1
-# http://www.w3.org/2000/09/xmldsig#dsa-sha1
-# http://www.w3.org/2001/04/xmldsig-more#rsa-md5
-# http://www.w3.org/2001/04/xmldsig-more#rsa-ripemd160
-# http://www.w3.org/2001/04/xmldsig-more#rsa-sha256
-# http://www.w3.org/2001/04/xmldsig-more#rsa-sha384
-# http://www.w3.org/2001/04/xmldsig-more#rsa-sha512
-# http://www.w3.org/2001/04/xmldsig-more#hmac-md5
-# http://www.w3.org/2001/04/xmldsig-more#hmac-ripemd160
-# http://www.w3.org/2001/04/xmldsig-more#hmac-sha256
-# http://www.w3.org/2001/04/xmldsig-more#hmac-sha384
-# http://www.w3.org/2001/04/xmldsig-more#hmac-sha512
-com.sun.identity.saml.xmlsig.xmlSigAlgorithm=
-
-#
-# XML transformation algorithm. Used for SAML XML signature generation
-# and verification. When not specified, or value is empty, default value
-# will be used. The following is the list of supported algorithms:
-# http://www.w3.org/2001/10/xml-exc-c14n# (default)
-# http://www.w3.org/2001/10/xml-exc-c14n#WithComments
-# http://www.w3.org/TR/2001/REC-xml-c14n-20010315
-# http://www.w3.org/TR/2001/REC-xml-c14n-20010315#WithComments
-# http://www.w3.org/TR/1999/REC-xslt-19991116
-# http://www.w3.org/2000/09/xmldsig#base64
-# http://www.w3.org/TR/1999/REC-xpath-19991116
-# http://www.w3.org/2000/09/xmldsig#enveloped-signature
-# http://www.w3.org/TR/2001/WD-xptr-20010108
-# http://www.w3.org/2002/04/xmldsig-filter2
-# http://www.w3.org/2002/06/xmldsig-filter2
-# http://www.nue.et-inf.uni-siegen.de/~geuer-pollmann/#xpathFilter
-com.sun.identity.saml.xmlsig.transformAlg=http://www.w3.org/2001/10/xml-exc-c14n#
-
-
-#
-# SAML2 XML Encryption Provider Implementation class
-com.sun.identity.saml2.xmlenc.EncryptionProvider=com.sun.identity.saml2.xmlenc.FMEncProvider
-
-
-#
-# SAML2 XML Signing Provider Implementation class.
-com.sun.identity.saml2.xmlsig.SignatureProvider=com.sun.identity.saml2.xmlsig.FMSigProvider
-
-#
-# SAML2 XML Signing Certificate Validation.
-com.sun.identity.saml2.crl.check=false
-
-#
-# SAML2 XML Signing Certificate Validation.
-com.sun.identity.saml2.crl.check.ca=false
-
-#
-# Client ceritificate alias that will be used in SSL connection for Liberty
-# SOAP Binding
-com.sun.identity.liberty.ws.soap.certalias=
-
-#
-# If the message timestamp is before current timestamp by this amount
-# (millisec), it is considered a stale message.
-com.sun.identity.liberty.ws.soap.staleTimeLimit=300000
-
-#
-# All the messageID of a valid message will be stored in a cache with the it
-# is received to avoid duplicate messages. If the current time minus the
-# received time is greater than the above staleTimeLimit, it should be removed
-# from the cache. The is property specify the interval(millisec) that a
-# cleanup thread should check the cache and remove those messageID.
-com.sun.identity.liberty.ws.soap.messageIDCacheCleanupInterval=60000
-
-#
-# Supported SOAP actors. Each actor must be seperated by '|'
-com.sun.identity.liberty.ws.soap.supportedActors=http://schemas.xmlsoap.org/soap/actor/next
-
-#
-# Namespace prefix mapping used when marshalling a JAXB content tree to a
-# DOM tree. The syntax is
-# <prefix>=<namespace>|<prefix>=<namespace>|..........
-com.sun.identity.liberty.ws.jaxb.namespacePrefixMappingList=S=http://schemas.xmlsoap.org/soap/envelope/|sb=urn:liberty:sb:2003-08|pp=urn:liberty:id-sis-pp:2003-08|ispp=http://www.sun.com/identity/liberty/pp|is=urn:liberty:is:2003-08
-
-#
-# JAXB package list used when constructing JAXBContext. Each package must be
-# seperated by ':'.
-com.sun.identity.liberty.ws.jaxb.packageList=
-
-#
-# Liberty ID-WSF security profile,
-# com.sun.identity.liberty.ws.wsc.certalias specifies default certificate
-# alias for issuing web service security token for this web service client
-# com.sun.identity.liberty.ws.ta.certalias specifies certificate
-# alias for trusted authority that will be used to sign SAML or SAML
-# BEARER token of response message.
-# com.sun.identity.liberty.ws.trustedca.certaliases specifies certificate
-# aliases for trusted CA. SAML or SAML BEARER token of incoming request
-# message needs to be signed by a trusted CA in this list. The syntax is
-# <cert alias 1>[:<issuer 1>]|<cert alias 2>[:<issuer 2>]|.....
-# For example, 'myalias1:myissuer1|myalias2|myalias3:myissuer3
-# 'issuer' is used when the token doesn't have a KeyInfo inside the
-# signature. The 'issuer' of the token needs to be in this list and the
-# corresponding cert alias will be used to verify signature. If KeyInfo
-# exists, the keystore needs to contain a cert alias that matches the
-# KeyInfo and the cert alias needs to be in this list.
-# com.sun.identity.liberty.ws.security.TokenProviderImpl specifies
-# implementation for security token provider
-com.sun.identity.liberty.ws.wsc.certalias=
-com.sun.identity.liberty.ws.ta.certalias=
-com.sun.identity.liberty.ws.trustedca.certaliases=
-com.sun.identity.liberty.ws.security.TokenProviderImpl=com.sun.identity.liberty.ws.security.LibSecurityTokenProvider
-
-
-#
-# URL for WSPRedirectHandlerServlet to handle Liberty WSF WSP-resource owner
-# interactions based on user agent redirects. This should be running in
-# the same JVM where Liberty SP is running
-com.sun.identity.liberty.interaction.wspRedirectHandler=http://localhost:8080/opensso/WSPRedirectHandler
-
-
-#
-# indicates whether WSC would participate in interaction
-# valid values are interactIfNeeded | doNotInteract | doNotInteractForData
-# default value:interactIfNeeded
-# value used if an invalid value is specified:interactIfNeeded
-com.sun.identity.liberty.interaction.wscSpecifiedInteractionChoice=interactIfNeeded
-
-
-#
-# indicates whether WSC would include userInteractionHeader
-# valid values are yes|no (case ignored)
-# default value:yes
-# value used if no value is specified:yes
-com.sun.identity.liberty.interaction.wscWillInlcudeUserInteractionHeader=yes
-
-
-#
-# indicates whether WSC would redirect user for interaction
-# valid values are yes|no
-# default value:yes
-# value used if no value is specified:yes
-com.sun.identity.liberty.interaction.wscWillRedirect=yes
-
-
-#
-# WSC's preference on the acceptable duration for interaction(in seconds)
-# default value if the value is not specified or a non integer value is
-# specified : 60
-com.sun.identity.liberty.interaction.wscSpecifiedMaxInteractionTime=80
-
-
-#
-# indicates whether WSC would enforce that redirected to URL is https
-# valid values are yes|no (case ignored)
-# liberty specification require the value to be yes
-# default value:yes
-# value used if no value is specified:yes
-com.sun.identity.liberty.interaction.wscWillEnforceHttpsCheck=no
-
-
-#
-# This property is used to determine the Liberty identity web services framework
-# to be used when the framework can not determine from the in-bound message or
-# from the resource offering when AM is acting as the WSC.
-# The default version is 1.1, but the possible values are 1.0 or 1.1
-# com.sun.identity.liberty.wsf.version=1.1
-
-#
-# Login URL and Authentication web service URL for Liberty use cases
-com.sun.identity.loginurl=http://localhost:8080/opensso/UI/Login
-com.sun.identity.liberty.authnsvc.url=http://localhost:8080/opensso/Liberty/authnsvc
-
Copied: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/internal/soa/esb/services/security/jaas/AMConfig.properties (from rev 24846, labs/jbossesb/trunk/product/rosetta/tests/src/org/jboss/internal/soa/esb/services/security/jaas/AMConfig.properties)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/internal/soa/esb/services/security/jaas/AMConfig.properties (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/internal/soa/esb/services/security/jaas/AMConfig.properties 2009-01-21 15:38:08 UTC (rev 24850)
@@ -0,0 +1,429 @@
+#
+# The contents of this file are subject to the terms
+# of the Common Development and Distribution License
+# (the License). You may not use this file except in
+# compliance with the License.
+#
+# You can obtain a copy of the License at
+# https://opensso.dev.java.net/public/CDDLv1.0.html or
+# opensso/legal/CDDLv1.0.txt
+# See the License for the specific language governing
+# permission and limitations under the License.
+#
+# When distributing Covered Code, include this CDDL
+# Header Notice in each file and include the License file
+# at opensso/legal/CDDLv1.0.txt.
+# If applicable, add the following below the CDDL Header,
+# with the fields enclosed by brackets [] replaced by
+# your own identifying information:
+# "Portions Copyrighted [year] [name of copyright owner]"
+#
+# $Id: AMClient.properties,v 1.12 2008/03/04 00:25:12 beomsuk Exp $
+#
+# Copyright 2006 Sun Microsystems Inc. All Rights Reserved
+#
+
+/* The following keys are used to configure the Debug service.
+ * Possible values for the key 'level' are: off | error | warning | message.
+ * The key 'directory' specifies the output directory where the debug files
+ * will be created.
+ * Trailing spaces are significant.
+ * Windows: Use forward slashes "/" separate directories, not backslash "\".
+ * Windows: Spaces in the file name are allowed for Windows.
+ */
+com.iplanet.services.debug.level=message
+com.iplanet.services.debug.directory=/tmp
+
+/*
+ * Server mode should be 'false'
+ */
+com.iplanet.am.serverMode=false
+
+/*
+ * Cache enable / disable properties
+ */
+com.iplanet.am.sdk.caching.enabled=false
+com.sun.identity.idm.cache.enabled=false
+com.sun.identity.sm.cache.enabled=true
+
+/*
+ * Configure remote plugin classes for configuration (SMS)
+ */
+com.sun.identity.sm.sms_object_class_name=com.sun.identity.sm.jaxrpc.SMSJAXRPCObject
+
+/*
+ * Naming URL
+ */
+com.iplanet.am.naming.url=http://localhost:8080/opensso/namingservice
+
+/*
+ * Notification URL
+ */
+com.iplanet.am.notification.url=
+
+/*
+ * Security Credentails to read the configuration data
+ */
+com.sun.identity.agents.app.username=UrlAccessAgent
+com.iplanet.am.service.password=
+com.iplanet.am.service.secret=AQIC24u86rq9RRbx13mx0nb0uAGpxLdxGBY9
+
+/*
+ * Encryption key that will be used to encrypt and decypt
+ * data to communicate with the server.
+ * This key is needed to decrypt passwords stored
+ * in the SMS configuration.
+ */
+am.encryption.pwd=SAMPLE_RAND
+
+/*
+ * Encryption key that will be used to encrypt and decypt
+ * data used locally within the client.
+ */
+com.sun.identity.client.encryptionKey=SAMPLE_RAND
+
+/*
+ * Encryption: The key "com.iplanet.security.encryptor" specifies
+ * the encrypting class implementation.
+ * Available classes are:
+ * com.iplanet.services.util.JCEEncryption
+ * com.iplanet.services.util.JSSEncryption
+ */
+com.iplanet.security.encryptor=com.iplanet.services.util.JCEEncryption
+
+/*
+ * Property to enable/disable the notifications for am.sdk and IdRepo Caches.
+ * If set to "true" notifications are enabled and disabled if set to "false".
+ */
+com.sun.identity.idm.remote.notification.enabled=true
+
+/*
+ * Cache update time (in minutes) for am.sdk & IdRepo Caches
+ * if notification URL is not provided or if notifications are disabled.
+ * Note:
+ * 1. This property is applicable only if 'com.iplanet.am.notification.url'
+ * is not provided or if 'com.sun.identity.idm.remote.notification.enabled'
+ * is set to 'false'.
+ * 2. If the polling time is set as 0, then polling is disabled.
+ */
+com.iplanet.am.sdk.remote.pollingTime=1
+
+/*
+ * Property to enable/disable the notifications for service management caches.
+ * If set to "true" notifications are enabled and disabled if set to "false".
+ */
+com.sun.identity.sm.notification.enabled=true
+
+/*
+ * Cache update time (in minutes) for service configutation data,
+ * if notification URL is not provided or if notifications are disabled.
+ * Note:
+ * 1. This property is applicable only if 'com.iplanet.am.notification.url'
+ * is not provided or if 'com.sun.identity.sm.notification.enabled' is
+ * set to 'false'.
+ * 2. If the cache time is set as 0, then no cache updates will occur.
+ */
+com.sun.identity.sm.cacheTime=1
+
+/*
+ * Server protocol, host and port to be used by Client Services
+ */
+com.iplanet.am.server.protocol=http
+com.iplanet.am.server.host=localhost
+com.iplanet.am.server.port=8080
+com.iplanet.am.services.deploymentDescriptor=opensso
+com.iplanet.am.console.protocol=@CONSOLE_PROTOCOL@
+com.iplanet.am.console.host=@CONSOLE_HOST@
+com.iplanet.am.console.port=@CONSOLE_PORT@
+com.iplanet.am.console.deploymentDescriptor=@CONSOLE_DEPLOY_URI@
+com.iplanet.am.console.remote=@CONSOLE_REMOTE@
+
+com.iplanet.am.cookie.name=iPlanetDirectoryPro
+
+/*
+ * Session related properties.
+ */
+com.iplanet.am.session.client.polling.enable=true
+com.iplanet.am.session.client.polling.period=180
+
+/*
+ * Identify cert db directory path, prefix and password file
+ * to initialize JSS Socket Factory when Web Container is configured SSL
+ */
+com.iplanet.am.admin.cli.certdb.dir=
+com.iplanet.am.admin.cli.certdb.prefix=
+com.iplanet.am.admin.cli.certdb.passfile=//config/.wtpass
+
+/*
+ * Identify property value for SSL ApprovalCallback / HostnameVerifier
+ * If com.iplanet.services.comm is configured as protocol handler
+ * and the checkSubjectAltName or resolveIPAddress feature is enabled,
+ * cert8.db and key3.db with the prefix value of
+ * com.iplanet.am.admin.cli.certdb.prefix will have to be created under
+ * the directory of com.iplanet.am.admin.cli.certdb.dir before server is
+ * restarted.
+ */
+com.iplanet.am.jssproxy.trustAllServerCerts=false
+com.iplanet.am.jssproxy.checkSubjectAltName=false
+com.iplanet.am.jssproxy.resolveIPAddress=false
+com.iplanet.am.jssproxy.SSLTrustHostList=false
+
+/**************************************************************
+ * Policy Client parameters
+ **************************************************************/
+/* Policy decision log parameters. Possible values for logging.level
+ * are NONE, ALLOW, DENY, BOTH, and DECISION */
+com.sun.identity.agents.server.log.file.name=amRemotePolicyLog
+com.sun.identity.agents.logging.level=NONE
+
+/* Notification URL for updating cache */
+com.sun.identity.agents.notification.enabled=false
+com.sun.identity.agents.notification.url=
+
+/* Cache time in minutes */
+com.sun.identity.agents.polling.interval=3
+
+/* Information to cache. Possible value are "subtree" or "self" */
+com.sun.identity.policy.client.cacheMode=subtree
+
+/* Policy client clock skew value in seconds */
+com.sun.identity.policy.client.clockSkew=10
+
+/*
+* Explicitly disable monitoring services in the client applications.
+*/
+com.sun.identity.monitoring=off
+
+/*
+* Specify if allow to use cached data for HttpURLConnection
+*/
+com.sun.identity.urlconnection.useCache=false
+
+#
+# Specify implementation class for
+# com.sun.identity.plugin.configuration.ConfigurationInstance interface.
+com.sun.identity.plugin.configuration.class=com.sun.identity.plugin.configuration.impl.ConfigurationInstanceImpl
+
+#
+# Specify implementation class for
+# com.sun.identity.plugin.datastore.DataStoreProvider interface.
+# This property defines the default datastore provider.
+com.sun.identity.plugin.datastore.class.default=com.sun.identity.plugin.datastore.impl.IdRepoDataStoreProvider
+
+#
+# Specify implementation class for
+# com.sun.identity.plugin.session.SessionProvider interface.
+com.sun.identity.plugin.session.class=com.sun.identity.plugin.session.impl.FMSessionProvider
+
+#
+# Specify XML signature provider class
+com.sun.identity.saml.xmlsig.signatureprovider.class=com.sun.identity.saml.xmlsig.AMSignatureProvider
+
+#
+# Specify XML key provider implementation class
+com.sun.identity.saml.xmlsig.keyprovider.class=com.sun.identity.saml.xmlsig.JKSKeyProvider
+
+#
+# Identify SAML XML signature keystore file, keystore password file
+# and key password file
+com.sun.identity.saml.xmlsig.keystore=@BASE_DIR@/keystore.jks
+com.sun.identity.saml.xmlsig.storepass=@BASE_DIR@/.storepass
+com.sun.identity.saml.xmlsig.keypass=@BASE_DIR@/.keypass
+com.sun.identity.saml.xmlsig.certalias=test
+
+#
+# Specify type of KeyStore used for saml xml signature. Default is JKS.
+# com.sun.identity.saml.xmlsig.storetype=JKS
+
+#
+# Flag for checking the Certificate which is embedded in the
+# KeyInfo against the certificates in the keystore (specified
+# by the "com.sun.identity.saml.xmlsig.keystore" property).
+# Possible values for the key are: on|off. If the flag is "on",
+# the certification must be presented in the keystore for
+# XML signature validation. If the flag is "off", skip
+# the presence checking.
+com.sun.identity.saml.checkcert=on
+
+#
+# XML cannonicalization algorithm. Used for SAML XML signature generation
+# and verification. When not specified, or value is empty, default value
+# will be used. The following is the list of supported algorithms:
+# http://www.w3.org/2001/10/xml-exc-c14n# (default)
+# http://www.w3.org/2001/10/xml-exc-c14n#WithComments
+# http://www.w3.org/TR/2001/REC-xml-c14n-20010315
+# http://www.w3.org/TR/2001/REC-xml-c14n-20010315#WithComments
+com.sun.identity.saml.xmlsig.c14nMethod=http://www.w3.org/2001/10/xml-exc-c14n#
+
+#
+# XML signature algorithm. Used for SAML XML Signature generation and
+# verification. When not specified, or value is empty, default value will be
+# used. The following is the list of supported algorithms:
+# http://www.w3.org/2000/09/xmldsig#rsa-sha1 (default)
+# http://www.w3.org/2000/09/xmldsig#hmac-sha1
+# http://www.w3.org/2000/09/xmldsig#dsa-sha1
+# http://www.w3.org/2001/04/xmldsig-more#rsa-md5
+# http://www.w3.org/2001/04/xmldsig-more#rsa-ripemd160
+# http://www.w3.org/2001/04/xmldsig-more#rsa-sha256
+# http://www.w3.org/2001/04/xmldsig-more#rsa-sha384
+# http://www.w3.org/2001/04/xmldsig-more#rsa-sha512
+# http://www.w3.org/2001/04/xmldsig-more#hmac-md5
+# http://www.w3.org/2001/04/xmldsig-more#hmac-ripemd160
+# http://www.w3.org/2001/04/xmldsig-more#hmac-sha256
+# http://www.w3.org/2001/04/xmldsig-more#hmac-sha384
+# http://www.w3.org/2001/04/xmldsig-more#hmac-sha512
+com.sun.identity.saml.xmlsig.xmlSigAlgorithm=
+
+#
+# XML transformation algorithm. Used for SAML XML signature generation
+# and verification. When not specified, or value is empty, default value
+# will be used. The following is the list of supported algorithms:
+# http://www.w3.org/2001/10/xml-exc-c14n# (default)
+# http://www.w3.org/2001/10/xml-exc-c14n#WithComments
+# http://www.w3.org/TR/2001/REC-xml-c14n-20010315
+# http://www.w3.org/TR/2001/REC-xml-c14n-20010315#WithComments
+# http://www.w3.org/TR/1999/REC-xslt-19991116
+# http://www.w3.org/2000/09/xmldsig#base64
+# http://www.w3.org/TR/1999/REC-xpath-19991116
+# http://www.w3.org/2000/09/xmldsig#enveloped-signature
+# http://www.w3.org/TR/2001/WD-xptr-20010108
+# http://www.w3.org/2002/04/xmldsig-filter2
+# http://www.w3.org/2002/06/xmldsig-filter2
+# http://www.nue.et-inf.uni-siegen.de/~geuer-pollmann/#xpathFilter
+com.sun.identity.saml.xmlsig.transformAlg=http://www.w3.org/2001/10/xml-exc-c14n#
+
+
+#
+# SAML2 XML Encryption Provider Implementation class
+com.sun.identity.saml2.xmlenc.EncryptionProvider=com.sun.identity.saml2.xmlenc.FMEncProvider
+
+
+#
+# SAML2 XML Signing Provider Implementation class.
+com.sun.identity.saml2.xmlsig.SignatureProvider=com.sun.identity.saml2.xmlsig.FMSigProvider
+
+#
+# SAML2 XML Signing Certificate Validation.
+com.sun.identity.saml2.crl.check=false
+
+#
+# SAML2 XML Signing Certificate Validation.
+com.sun.identity.saml2.crl.check.ca=false
+
+#
+# Client ceritificate alias that will be used in SSL connection for Liberty
+# SOAP Binding
+com.sun.identity.liberty.ws.soap.certalias=
+
+#
+# If the message timestamp is before current timestamp by this amount
+# (millisec), it is considered a stale message.
+com.sun.identity.liberty.ws.soap.staleTimeLimit=300000
+
+#
+# All the messageID of a valid message will be stored in a cache with the it
+# is received to avoid duplicate messages. If the current time minus the
+# received time is greater than the above staleTimeLimit, it should be removed
+# from the cache. The is property specify the interval(millisec) that a
+# cleanup thread should check the cache and remove those messageID.
+com.sun.identity.liberty.ws.soap.messageIDCacheCleanupInterval=60000
+
+#
+# Supported SOAP actors. Each actor must be seperated by '|'
+com.sun.identity.liberty.ws.soap.supportedActors=http://schemas.xmlsoap.org/soap/actor/next
+
+#
+# Namespace prefix mapping used when marshalling a JAXB content tree to a
+# DOM tree. The syntax is
+# <prefix>=<namespace>|<prefix>=<namespace>|..........
+com.sun.identity.liberty.ws.jaxb.namespacePrefixMappingList=S=http://schemas.xmlsoap.org/soap/envelope/|sb=urn:liberty:sb:2003-08|pp=urn:liberty:id-sis-pp:2003-08|ispp=http://www.sun.com/identity/liberty/pp|is=urn:liberty:is:2003-08
+
+#
+# JAXB package list used when constructing JAXBContext. Each package must be
+# seperated by ':'.
+com.sun.identity.liberty.ws.jaxb.packageList=
+
+#
+# Liberty ID-WSF security profile,
+# com.sun.identity.liberty.ws.wsc.certalias specifies default certificate
+# alias for issuing web service security token for this web service client
+# com.sun.identity.liberty.ws.ta.certalias specifies certificate
+# alias for trusted authority that will be used to sign SAML or SAML
+# BEARER token of response message.
+# com.sun.identity.liberty.ws.trustedca.certaliases specifies certificate
+# aliases for trusted CA. SAML or SAML BEARER token of incoming request
+# message needs to be signed by a trusted CA in this list. The syntax is
+# <cert alias 1>[:<issuer 1>]|<cert alias 2>[:<issuer 2>]|.....
+# For example, 'myalias1:myissuer1|myalias2|myalias3:myissuer3
+# 'issuer' is used when the token doesn't have a KeyInfo inside the
+# signature. The 'issuer' of the token needs to be in this list and the
+# corresponding cert alias will be used to verify signature. If KeyInfo
+# exists, the keystore needs to contain a cert alias that matches the
+# KeyInfo and the cert alias needs to be in this list.
+# com.sun.identity.liberty.ws.security.TokenProviderImpl specifies
+# implementation for security token provider
+com.sun.identity.liberty.ws.wsc.certalias=
+com.sun.identity.liberty.ws.ta.certalias=
+com.sun.identity.liberty.ws.trustedca.certaliases=
+com.sun.identity.liberty.ws.security.TokenProviderImpl=com.sun.identity.liberty.ws.security.LibSecurityTokenProvider
+
+
+#
+# URL for WSPRedirectHandlerServlet to handle Liberty WSF WSP-resource owner
+# interactions based on user agent redirects. This should be running in
+# the same JVM where Liberty SP is running
+com.sun.identity.liberty.interaction.wspRedirectHandler=http://localhost:8080/opensso/WSPRedirectHandler
+
+
+#
+# indicates whether WSC would participate in interaction
+# valid values are interactIfNeeded | doNotInteract | doNotInteractForData
+# default value:interactIfNeeded
+# value used if an invalid value is specified:interactIfNeeded
+com.sun.identity.liberty.interaction.wscSpecifiedInteractionChoice=interactIfNeeded
+
+
+#
+# indicates whether WSC would include userInteractionHeader
+# valid values are yes|no (case ignored)
+# default value:yes
+# value used if no value is specified:yes
+com.sun.identity.liberty.interaction.wscWillInlcudeUserInteractionHeader=yes
+
+
+#
+# indicates whether WSC would redirect user for interaction
+# valid values are yes|no
+# default value:yes
+# value used if no value is specified:yes
+com.sun.identity.liberty.interaction.wscWillRedirect=yes
+
+
+#
+# WSC's preference on the acceptable duration for interaction(in seconds)
+# default value if the value is not specified or a non integer value is
+# specified : 60
+com.sun.identity.liberty.interaction.wscSpecifiedMaxInteractionTime=80
+
+
+#
+# indicates whether WSC would enforce that redirected to URL is https
+# valid values are yes|no (case ignored)
+# liberty specification require the value to be yes
+# default value:yes
+# value used if no value is specified:yes
+com.sun.identity.liberty.interaction.wscWillEnforceHttpsCheck=no
+
+
+#
+# This property is used to determine the Liberty identity web services framework
+# to be used when the framework can not determine from the in-bound message or
+# from the resource offering when AM is acting as the WSC.
+# The default version is 1.1, but the possible values are 1.0 or 1.1
+# com.sun.identity.liberty.wsf.version=1.1
+
+#
+# Login URL and Authentication web service URL for Liberty use cases
+com.sun.identity.loginurl=http://localhost:8080/opensso/UI/Login
+com.sun.identity.liberty.authnsvc.url=http://localhost:8080/opensso/Liberty/authnsvc
+
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/internal/soa/esb/services/security/jaas.login
===================================================================
--- labs/jbossesb/trunk/product/rosetta/tests/src/org/jboss/internal/soa/esb/services/security/jaas.login 2009-01-21 09:35:03 UTC (rev 24846)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/internal/soa/esb/services/security/jaas.login 2009-01-21 15:38:08 UTC (rev 24850)
@@ -1,9 +0,0 @@
-SuccessfulLogin {
- org.jboss.soa.esb.services.security.TestLoginModule required forceLogin=true;
-};
-FailureLogin {
- org.jboss.soa.esb.services.security.TestLoginModule required forceLogin=false;
-};
-UserPassLogin {
- org.jboss.soa.esb.services.security.UserPassLoginModule required;
-};
\ No newline at end of file
Copied: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/internal/soa/esb/services/security/jaas.login (from rev 24846, labs/jbossesb/trunk/product/rosetta/tests/src/org/jboss/internal/soa/esb/services/security/jaas.login)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/internal/soa/esb/services/security/jaas.login (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/internal/soa/esb/services/security/jaas.login 2009-01-21 15:38:08 UTC (rev 24850)
@@ -0,0 +1,9 @@
+SuccessfulLogin {
+ org.jboss.soa.esb.services.security.TestLoginModule required forceLogin=true;
+};
+FailureLogin {
+ org.jboss.soa.esb.services.security.TestLoginModule required forceLogin=false;
+};
+UserPassLogin {
+ org.jboss.soa.esb.services.security.UserPassLoginModule required;
+};
\ No newline at end of file
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/internal/soa/esb/services/security/privateKeyStore
===================================================================
(Binary files differ)
Copied: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/internal/soa/esb/services/security/privateKeyStore (from rev 24846, labs/jbossesb/trunk/product/rosetta/tests/src/org/jboss/internal/soa/esb/services/security/privateKeyStore)
===================================================================
(Binary files differ)
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/internal/soa/esb/services/security/security-properties.xml
===================================================================
--- labs/jbossesb/trunk/product/rosetta/tests/src/org/jboss/internal/soa/esb/services/security/security-properties.xml 2009-01-21 09:35:03 UTC (rev 24846)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/internal/soa/esb/services/security/security-properties.xml 2009-01-21 15:38:08 UTC (rev 24850)
@@ -1,105 +0,0 @@
-<?xml version="1.0" encoding="ISO-8859-1"?>
-<!--
- JBoss, Home of Professional Open Source
- Copyright 2006, JBoss Inc., and others contributors as indicated
- by the @authors tag. All rights reserved.
- See the copyright.txt in the distribution for a
- full listing of individual contributors.
- This copyrighted material is made available to anyone wishing to use,
- modify, copy, or redistribute it subject to the terms and conditions
- of the GNU Lesser General Public License, v. 2.1.
- This program is distributed in the hope that it will be useful, but WITHOUT A
- WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
- PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
- You should have received a copy of the GNU Lesser General Public License,
- v.2.1 along with this distribution; if not, write to the Free Software
- Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
- MA 02110-1301, USA.
-
- (C) 2005-2006,
- @author JBoss Inc.
--->
-<!-- $Id: jbossesb-unittest-properties.xml $ -->
-<!--
- These options are described in the JBossESB manual.
- Defaults are provided here for convenience only.
-
- Please read through this file prior to using the system, and consider
- updating the specified entries.
--->
-<esb
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:noNamespaceSchemaLocation="jbossesb-1_0.xsd">
- <properties name="core">
- <property name="org.jboss.soa.esb.jndi.server.context.factory" value="org.jnp.interfaces.NamingContextFactory"/>
- <property name="org.jboss.soa.esb.jndi.server.url" value="${jboss.esb.bind.address}:1099"/>
- <property name="org.jboss.soa.esb.persistence.connection.factory" value="org.jboss.internal.soa.esb.persistence.format.MessageStoreFactoryImpl"/>
- <property name="org.jboss.soa.esb.loadbalancer.policy" value="org.jboss.soa.esb.listeners.ha.RoundRobin"/>
- <property name="jboss.esb.invm.scope.default" value="NONE"/>
- </properties>
- <properties name="security">
- <property name="org.jboss.soa.esb.services.security.implementationClass" value="org.jboss.internal.soa.esb.services.security.JaasSecurityService"/>
- <property name="org.jboss.soa.esb.services.security.callbackHandler" value="org.jboss.internal.soa.esb.services.security.UserPassCallbackHandler"/>
- <property name="org.jboss.soa.esb.services.security.configUrl" value="jaas.login"/>
-
- <property name="org.jboss.soa.esb.services.security.privateKeystore" value="privateKeyStore"/>
- <property name="org.jboss.soa.esb.services.security.privateKeystorePassword" value="testKeystorePassword"/>
- <property name="org.jboss.soa.esb.services.security.privateKeyAlias" value="testAlias"/>
- <property name="org.jboss.soa.esb.services.security.privateKeyPassword" value="testPassword"/>
-
- </properties>
- <properties name="registry">
- <property name="org.jboss.soa.esb.registry.queryManagerURI" value="org.apache.juddi.registry.local.InquiryService#inquire"/>
- <property name="org.jboss.soa.esb.registry.lifeCycleManagerURI" value="org.apache.juddi.registry.local.PublishService#publish"/>
- <property name="org.jboss.soa.esb.registry.implementationClass" value="org.jboss.internal.soa.esb.services.registry.JAXRRegistryImpl"/>
- <property name="org.jboss.soa.esb.registry.factoryClass" value="org.apache.ws.scout.registry.ConnectionFactoryImpl"/>
- <property name="org.jboss.soa.esb.registry.user" value="jbossesb"/>
- <property name="org.jboss.soa.esb.registry.password" value="password"/>
- <!-- the following parameter is scout specific to set the type of communication between scout and the UDDI (embedded, rmi, soap) -->
- <property name="org.jboss.soa.esb.scout.proxy.transportClass" value="org.apache.ws.scout.transport.LocalTransport"/>
- </properties>
- <properties name="transports" depends="core">
- <property name="org.jboss.soa.esb.mail.smtp.host" value="localhost"/>
- <property name="org.jboss.soa.esb.mail.smtp.user" value="jbossesb"/>
- <property name="org.jboss.soa.esb.mail.smtp.password" value=""/>
- <property name="org.jboss.soa.esb.mail.smtp.port" value="25"/>
- <property name="org.jboss.soa.esb.mail.smtp.auth" value="true"/>
- <property name="org.jboss.soa.esb.ftp.localdir" value="/tmp"/>
- <property name="org.jboss.soa.esb.ftp.remotedir" value="/tmp"/>
- <property name="org.jboss.soa.esb.jms.connectionPool" value="20"/>
- <property name="org.jboss.soa.esb.jms.sessionSleep" value="30"/>
- </properties>
- <properties name="connection">
- <property name="min-pool-size" value="5"/>
- <property name="max-pool=size" value="10"/>
- <property name="blocking-timeout-millis" value="5000"/>
- <property name="abandoned-connection-timeout" value="10000"/>
- <property name="abandoned-connection-time-interval" value="30000"/>
- </properties>
- <properties name="dbstore">
-
- <!-- connection manager type -->
- <!-- <property name="org.jboss.soa.esb.persistence.db.conn.manager" value="org.jboss.internal.soa.esb.persistence.manager.StandaloneConnectionManager"/> -->
- <property name="org.jboss.soa.esb.persistence.db.conn.manager" value="org.jboss.internal.soa.esb.persistence.manager.J2eeConnectionManager"/>
-
- <!-- this property is only used if using the j2ee connection manager -->
- <property name="org.jboss.soa.esb.persistence.db.datasource.name" value="java:/JBossESBDS"/>
-
- <!-- standalone connection pooling settings -->
- <property name="org.jboss.soa.esb.persistence.db.connection.url" value="jdbc:hsqldb:hsql://localhost:9001/"/>
- <property name="org.jboss.soa.esb.persistence.db.jdbc.driver" value="org.hsqldb.jdbcDriver"/>
- <property name="org.jboss.soa.esb.persistence.db.user" value="sa"/>
- <property name="org.jboss.soa.esb.persistence.db.pwd" value=""/>
- <property name="org.jboss.soa.esb.persistence.db.pool.initial.size" value="2"/>
- <property name="org.jboss.soa.esb.persistence.db.pool.min.size" value="2"/>
- <property name="org.jboss.soa.esb.persistence.db.pool.max.size" value="5"/>
- <!--table managed by pool to test for valid connections - created by pool automatically -->
- <property name="org.jboss.soa.esb.persistence.db.pool.test.table" value="pooltest"/>
- <property name="org.jboss.soa.esb.persistence.db.pool.timeout.millis" value="5000"/>
-
- </properties>
- <properties name="filters">
- <property name="org.jboss.soa.esb.filter.1" value="org.jboss.internal.soa.esb.message.filter.MetaDataFilter"/>
- <property name="org.jboss.soa.esb.filter.2" value="org.jboss.internal.soa.esb.message.filter.GatewayFilter"/>
- </properties>
-</esb>
Copied: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/internal/soa/esb/services/security/security-properties.xml (from rev 24846, labs/jbossesb/trunk/product/rosetta/tests/src/org/jboss/internal/soa/esb/services/security/security-properties.xml)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/internal/soa/esb/services/security/security-properties.xml (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/internal/soa/esb/services/security/security-properties.xml 2009-01-21 15:38:08 UTC (rev 24850)
@@ -0,0 +1,105 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!--
+ JBoss, Home of Professional Open Source
+ Copyright 2006, JBoss Inc., and others contributors as indicated
+ by the @authors tag. All rights reserved.
+ See the copyright.txt in the distribution for a
+ full listing of individual contributors.
+ This copyrighted material is made available to anyone wishing to use,
+ modify, copy, or redistribute it subject to the terms and conditions
+ of the GNU Lesser General Public License, v. 2.1.
+ This program is distributed in the hope that it will be useful, but WITHOUT A
+ WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+ PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
+ You should have received a copy of the GNU Lesser General Public License,
+ v.2.1 along with this distribution; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ MA 02110-1301, USA.
+
+ (C) 2005-2006,
+ @author JBoss Inc.
+-->
+<!-- $Id: jbossesb-unittest-properties.xml $ -->
+<!--
+ These options are described in the JBossESB manual.
+ Defaults are provided here for convenience only.
+
+ Please read through this file prior to using the system, and consider
+ updating the specified entries.
+-->
+<esb
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:noNamespaceSchemaLocation="jbossesb-1_0.xsd">
+ <properties name="core">
+ <property name="org.jboss.soa.esb.jndi.server.context.factory" value="org.jnp.interfaces.NamingContextFactory"/>
+ <property name="org.jboss.soa.esb.jndi.server.url" value="${jboss.esb.bind.address}:1099"/>
+ <property name="org.jboss.soa.esb.persistence.connection.factory" value="org.jboss.internal.soa.esb.persistence.format.MessageStoreFactoryImpl"/>
+ <property name="org.jboss.soa.esb.loadbalancer.policy" value="org.jboss.soa.esb.listeners.ha.RoundRobin"/>
+ <property name="jboss.esb.invm.scope.default" value="NONE"/>
+ </properties>
+ <properties name="security">
+ <property name="org.jboss.soa.esb.services.security.implementationClass" value="org.jboss.internal.soa.esb.services.security.JaasSecurityService"/>
+ <property name="org.jboss.soa.esb.services.security.callbackHandler" value="org.jboss.internal.soa.esb.services.security.UserPassCallbackHandler"/>
+ <property name="org.jboss.soa.esb.services.security.configUrl" value="jaas.login"/>
+
+ <property name="org.jboss.soa.esb.services.security.privateKeystore" value="privateKeyStore"/>
+ <property name="org.jboss.soa.esb.services.security.privateKeystorePassword" value="testKeystorePassword"/>
+ <property name="org.jboss.soa.esb.services.security.privateKeyAlias" value="testAlias"/>
+ <property name="org.jboss.soa.esb.services.security.privateKeyPassword" value="testPassword"/>
+
+ </properties>
+ <properties name="registry">
+ <property name="org.jboss.soa.esb.registry.queryManagerURI" value="org.apache.juddi.registry.local.InquiryService#inquire"/>
+ <property name="org.jboss.soa.esb.registry.lifeCycleManagerURI" value="org.apache.juddi.registry.local.PublishService#publish"/>
+ <property name="org.jboss.soa.esb.registry.implementationClass" value="org.jboss.internal.soa.esb.services.registry.JAXRRegistryImpl"/>
+ <property name="org.jboss.soa.esb.registry.factoryClass" value="org.apache.ws.scout.registry.ConnectionFactoryImpl"/>
+ <property name="org.jboss.soa.esb.registry.user" value="jbossesb"/>
+ <property name="org.jboss.soa.esb.registry.password" value="password"/>
+ <!-- the following parameter is scout specific to set the type of communication between scout and the UDDI (embedded, rmi, soap) -->
+ <property name="org.jboss.soa.esb.scout.proxy.transportClass" value="org.apache.ws.scout.transport.LocalTransport"/>
+ </properties>
+ <properties name="transports" depends="core">
+ <property name="org.jboss.soa.esb.mail.smtp.host" value="localhost"/>
+ <property name="org.jboss.soa.esb.mail.smtp.user" value="jbossesb"/>
+ <property name="org.jboss.soa.esb.mail.smtp.password" value=""/>
+ <property name="org.jboss.soa.esb.mail.smtp.port" value="25"/>
+ <property name="org.jboss.soa.esb.mail.smtp.auth" value="true"/>
+ <property name="org.jboss.soa.esb.ftp.localdir" value="/tmp"/>
+ <property name="org.jboss.soa.esb.ftp.remotedir" value="/tmp"/>
+ <property name="org.jboss.soa.esb.jms.connectionPool" value="20"/>
+ <property name="org.jboss.soa.esb.jms.sessionSleep" value="30"/>
+ </properties>
+ <properties name="connection">
+ <property name="min-pool-size" value="5"/>
+ <property name="max-pool=size" value="10"/>
+ <property name="blocking-timeout-millis" value="5000"/>
+ <property name="abandoned-connection-timeout" value="10000"/>
+ <property name="abandoned-connection-time-interval" value="30000"/>
+ </properties>
+ <properties name="dbstore">
+
+ <!-- connection manager type -->
+ <!-- <property name="org.jboss.soa.esb.persistence.db.conn.manager" value="org.jboss.internal.soa.esb.persistence.manager.StandaloneConnectionManager"/> -->
+ <property name="org.jboss.soa.esb.persistence.db.conn.manager" value="org.jboss.internal.soa.esb.persistence.manager.J2eeConnectionManager"/>
+
+ <!-- this property is only used if using the j2ee connection manager -->
+ <property name="org.jboss.soa.esb.persistence.db.datasource.name" value="java:/JBossESBDS"/>
+
+ <!-- standalone connection pooling settings -->
+ <property name="org.jboss.soa.esb.persistence.db.connection.url" value="jdbc:hsqldb:hsql://localhost:9001/"/>
+ <property name="org.jboss.soa.esb.persistence.db.jdbc.driver" value="org.hsqldb.jdbcDriver"/>
+ <property name="org.jboss.soa.esb.persistence.db.user" value="sa"/>
+ <property name="org.jboss.soa.esb.persistence.db.pwd" value=""/>
+ <property name="org.jboss.soa.esb.persistence.db.pool.initial.size" value="2"/>
+ <property name="org.jboss.soa.esb.persistence.db.pool.min.size" value="2"/>
+ <property name="org.jboss.soa.esb.persistence.db.pool.max.size" value="5"/>
+ <!--table managed by pool to test for valid connections - created by pool automatically -->
+ <property name="org.jboss.soa.esb.persistence.db.pool.test.table" value="pooltest"/>
+ <property name="org.jboss.soa.esb.persistence.db.pool.timeout.millis" value="5000"/>
+
+ </properties>
+ <properties name="filters">
+ <property name="org.jboss.soa.esb.filter.1" value="org.jboss.internal.soa.esb.message.filter.MetaDataFilter"/>
+ <property name="org.jboss.soa.esb.filter.2" value="org.jboss.internal.soa.esb.message.filter.GatewayFilter"/>
+ </properties>
+</esb>
Copied: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/internal/soa/esb/webservice (from rev 24846, labs/jbossesb/trunk/product/rosetta/tests/src/org/jboss/internal/soa/esb/webservice)
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/internal/soa/esb/webservice/ESBContractGeneratorUnitTest.java
===================================================================
--- labs/jbossesb/trunk/product/rosetta/tests/src/org/jboss/internal/soa/esb/webservice/ESBContractGeneratorUnitTest.java 2009-01-21 09:35:03 UTC (rev 24846)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/internal/soa/esb/webservice/ESBContractGeneratorUnitTest.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -1,81 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2006, JBoss Inc., and others contributors as indicated
- * by the @authors tag. All rights reserved.
- * See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- * This copyrighted material is made available to anyone wishing to use,
- * modify, copy, or redistribute it subject to the terms and conditions
- * of the GNU Lesser General Public License, v. 2.1.
- * This program is distributed in the hope that it will be useful, but WITHOUT A
- * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
- * PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
- * You should have received a copy of the GNU Lesser General Public License,
- * v.2.1 along with this distribution; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
- * MA 02110-1301, USA.
- *
- * (C) 2005-2006, JBoss Inc.
- */
-package org.jboss.internal.soa.esb.webservice;
-
-
-import java.io.ByteArrayInputStream;
-import java.io.ByteArrayOutputStream;
-import java.io.InputStream;
-import java.util.List;
-
-import javax.wsdl.Definition;
-import javax.wsdl.factory.WSDLFactory;
-
-import junit.framework.TestCase;
-
-import org.jboss.internal.soa.esb.util.StreamUtils;
-import org.jboss.soa.esb.listeners.config.Generator;
-import org.jboss.soa.esb.listeners.config.WebserviceInfo;
-import org.jboss.soa.esb.util.ClassUtil;
-import org.xml.sax.InputSource;
-
-public class ESBContractGeneratorUnitTest extends TestCase {
- public void testRequestResponseFault() throws Exception {
- executeTest("jbossesb_config_06.xml") ;
- }
-
- public void testRequestResponseFault110() throws Exception {
- executeTest("jbossesb_config_06.110.xml") ;
- }
-
- public void testRequestResponse() throws Exception {
- executeTest("jbossesb_config_07.xml") ;
- }
-
- public void testRequestResponse110() throws Exception {
- executeTest("jbossesb_config_07.110.xml") ;
- }
-
- public void testRequest() throws Exception {
- executeTest("jbossesb_config_08.xml") ;
- }
-
- public void testRequest110() throws Exception {
- executeTest("jbossesb_config_08.110.xml") ;
- }
-
- private void executeTest(final String resourceName) throws Exception {
- final InputStream is = ClassUtil.getResourceAsStream(resourceName, getClass()) ;
- final byte[] configBytes = StreamUtils.readStream(is) ;
- ByteArrayOutputStream listenerXml = new ByteArrayOutputStream();
- ByteArrayOutputStream gatewayXml = new ByteArrayOutputStream();
- Generator generator = new Generator(new ByteArrayInputStream(configBytes), listenerXml, gatewayXml);
- generator.generate();
- List<WebserviceInfo> services = generator.getModel().getWebserviceServices();
- final WebserviceInfo service = services.get(0) ;
- final ESBServiceEndpointInfo endpointInfo = new ESBServiceEndpointInfo(service) ;
- String wsdl = ESBContractGenerator.generateWSDL(service, endpointInfo);
- java.io.StringReader strReader = new java.io.StringReader(wsdl);
- InputSource inputSource = new InputSource(strReader);
- Definition def = WSDLFactory.newInstance().newWSDLReader().readWSDL("file://tmp.wsdl", inputSource);
- assertNotNull("Failed to generate wsdl file" , def);
- }
-
-}
Copied: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/internal/soa/esb/webservice/ESBContractGeneratorUnitTest.java (from rev 24846, labs/jbossesb/trunk/product/rosetta/tests/src/org/jboss/internal/soa/esb/webservice/ESBContractGeneratorUnitTest.java)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/internal/soa/esb/webservice/ESBContractGeneratorUnitTest.java (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/internal/soa/esb/webservice/ESBContractGeneratorUnitTest.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -0,0 +1,81 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and others contributors as indicated
+ * by the @authors tag. All rights reserved.
+ * See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License, v. 2.1.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+ * PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
+ * You should have received a copy of the GNU Lesser General Public License,
+ * v.2.1 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301, USA.
+ *
+ * (C) 2005-2006, JBoss Inc.
+ */
+package org.jboss.internal.soa.esb.webservice;
+
+
+import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
+import java.io.InputStream;
+import java.util.List;
+
+import javax.wsdl.Definition;
+import javax.wsdl.factory.WSDLFactory;
+
+import junit.framework.TestCase;
+
+import org.jboss.internal.soa.esb.util.StreamUtils;
+import org.jboss.soa.esb.listeners.config.Generator;
+import org.jboss.soa.esb.listeners.config.WebserviceInfo;
+import org.jboss.soa.esb.util.ClassUtil;
+import org.xml.sax.InputSource;
+
+public class ESBContractGeneratorUnitTest extends TestCase {
+ public void testRequestResponseFault() throws Exception {
+ executeTest("jbossesb_config_06.xml") ;
+ }
+
+ public void testRequestResponseFault110() throws Exception {
+ executeTest("jbossesb_config_06.110.xml") ;
+ }
+
+ public void testRequestResponse() throws Exception {
+ executeTest("jbossesb_config_07.xml") ;
+ }
+
+ public void testRequestResponse110() throws Exception {
+ executeTest("jbossesb_config_07.110.xml") ;
+ }
+
+ public void testRequest() throws Exception {
+ executeTest("jbossesb_config_08.xml") ;
+ }
+
+ public void testRequest110() throws Exception {
+ executeTest("jbossesb_config_08.110.xml") ;
+ }
+
+ private void executeTest(final String resourceName) throws Exception {
+ final InputStream is = ClassUtil.getResourceAsStream(resourceName, getClass()) ;
+ final byte[] configBytes = StreamUtils.readStream(is) ;
+ ByteArrayOutputStream listenerXml = new ByteArrayOutputStream();
+ ByteArrayOutputStream gatewayXml = new ByteArrayOutputStream();
+ Generator generator = new Generator(new ByteArrayInputStream(configBytes), listenerXml, gatewayXml);
+ generator.generate();
+ List<WebserviceInfo> services = generator.getModel().getWebserviceServices();
+ final WebserviceInfo service = services.get(0) ;
+ final ESBServiceEndpointInfo endpointInfo = new ESBServiceEndpointInfo(service) ;
+ String wsdl = ESBContractGenerator.generateWSDL(service, endpointInfo);
+ java.io.StringReader strReader = new java.io.StringReader(wsdl);
+ InputSource inputSource = new InputSource(strReader);
+ Definition def = WSDLFactory.newInstance().newWSDLReader().readWSDL("file://tmp.wsdl", inputSource);
+ assertNotNull("Failed to generate wsdl file" , def);
+ }
+
+}
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/internal/soa/esb/webservice/fault.xsd
===================================================================
--- labs/jbossesb/trunk/product/rosetta/tests/src/org/jboss/internal/soa/esb/webservice/fault.xsd 2009-01-21 09:35:03 UTC (rev 24846)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/internal/soa/esb/webservice/fault.xsd 2009-01-21 15:38:08 UTC (rev 24850)
@@ -1,17 +0,0 @@
-<xs:schema version="1.0" targetNamespace="http://www.jboss.org/sayHi" xmlns:x1="http://www.jboss.org/sayHi" xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
- <xs:element name="sayFault" type="x1:fault"/>
- <xs:complexType name="fault">
- <xs:sequence>
- <xs:element name="code" type="xs:string"/>
- <xs:element name="faultString" type="xs:string"/>
- </xs:sequence>
- </xs:complexType>
- <xs:element name="sayFault2" type="x1:fault2"/>
- <xs:complexType name="fault2">
- <xs:sequence>
- <xs:element name="code" type="xs:int"/>
- <xs:element name="descrption" type="xs:string"/>
- </xs:sequence>
- </xs:complexType>
-
-</xs:schema>
\ No newline at end of file
Copied: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/internal/soa/esb/webservice/fault.xsd (from rev 24846, labs/jbossesb/trunk/product/rosetta/tests/src/org/jboss/internal/soa/esb/webservice/fault.xsd)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/internal/soa/esb/webservice/fault.xsd (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/internal/soa/esb/webservice/fault.xsd 2009-01-21 15:38:08 UTC (rev 24850)
@@ -0,0 +1,17 @@
+<xs:schema version="1.0" targetNamespace="http://www.jboss.org/sayHi" xmlns:x1="http://www.jboss.org/sayHi" xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
+ <xs:element name="sayFault" type="x1:fault"/>
+ <xs:complexType name="fault">
+ <xs:sequence>
+ <xs:element name="code" type="xs:string"/>
+ <xs:element name="faultString" type="xs:string"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:element name="sayFault2" type="x1:fault2"/>
+ <xs:complexType name="fault2">
+ <xs:sequence>
+ <xs:element name="code" type="xs:int"/>
+ <xs:element name="descrption" type="xs:string"/>
+ </xs:sequence>
+ </xs:complexType>
+
+</xs:schema>
\ No newline at end of file
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/internal/soa/esb/webservice/jbossesb_config_06.110.xml
===================================================================
--- labs/jbossesb/trunk/product/rosetta/tests/src/org/jboss/internal/soa/esb/webservice/jbossesb_config_06.110.xml 2009-01-21 09:35:03 UTC (rev 24846)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/internal/soa/esb/webservice/jbossesb_config_06.110.xml 2009-01-21 15:38:08 UTC (rev 24850)
@@ -1,18 +0,0 @@
-<?xml version = "1.0" encoding = "UTF-8"?>
-<jbossesb
- xmlns="http://anonsvn.labs.jboss.com/labs/jbossesb/trunk/product/etc/schemas/xml/jbossesb-1.1.0.xsd">
- <services>
- <service category="FirstServiceESB" name="SimpleListener"
- description="Hello World" invmScope="GLOBAL">>
- <actions
- inXsd="/org/jboss/internal/soa/esb/webservice/request.xsd"
- outXsd="/org/jboss/internal/soa/esb/webservice/response.xsd"
- faultXsd="/org/jboss/internal/soa/esb/webservice/fault.xsd">
- <action name="action2"
- class="org.jboss.soa.esb.actions.SystemPrintln">
- <property name="printfull" value="true" />
- </action>
- </actions>
- </service>
- </services>
-</jbossesb>
Copied: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/internal/soa/esb/webservice/jbossesb_config_06.110.xml (from rev 24846, labs/jbossesb/trunk/product/rosetta/tests/src/org/jboss/internal/soa/esb/webservice/jbossesb_config_06.110.xml)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/internal/soa/esb/webservice/jbossesb_config_06.110.xml (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/internal/soa/esb/webservice/jbossesb_config_06.110.xml 2009-01-21 15:38:08 UTC (rev 24850)
@@ -0,0 +1,18 @@
+<?xml version = "1.0" encoding = "UTF-8"?>
+<jbossesb
+ xmlns="http://anonsvn.labs.jboss.com/labs/jbossesb/trunk/product/etc/schemas/xml/jbossesb-1.1.0.xsd">
+ <services>
+ <service category="FirstServiceESB" name="SimpleListener"
+ description="Hello World" invmScope="GLOBAL">>
+ <actions
+ inXsd="/org/jboss/internal/soa/esb/webservice/request.xsd"
+ outXsd="/org/jboss/internal/soa/esb/webservice/response.xsd"
+ faultXsd="/org/jboss/internal/soa/esb/webservice/fault.xsd">
+ <action name="action2"
+ class="org.jboss.soa.esb.actions.SystemPrintln">
+ <property name="printfull" value="true" />
+ </action>
+ </actions>
+ </service>
+ </services>
+</jbossesb>
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/internal/soa/esb/webservice/jbossesb_config_06.xml
===================================================================
--- labs/jbossesb/trunk/product/rosetta/tests/src/org/jboss/internal/soa/esb/webservice/jbossesb_config_06.xml 2009-01-21 09:35:03 UTC (rev 24846)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/internal/soa/esb/webservice/jbossesb_config_06.xml 2009-01-21 15:38:08 UTC (rev 24850)
@@ -1,18 +0,0 @@
-<?xml version = "1.0" encoding = "UTF-8"?>
-<jbossesb
- xmlns="http://anonsvn.labs.jboss.com/labs/jbossesb/trunk/product/etc/schemas/xml/jbossesb-1.0.1.xsd">
- <services>
- <service category="FirstServiceESB" name="SimpleListener"
- description="Hello World" invmScope="GLOBAL">>
- <actions
- inXsd="/org/jboss/internal/soa/esb/webservice/request.xsd"
- outXsd="/org/jboss/internal/soa/esb/webservice/response.xsd"
- faultXsd="/org/jboss/internal/soa/esb/webservice/fault.xsd">
- <action name="action2"
- class="org.jboss.soa.esb.actions.SystemPrintln">
- <property name="printfull" value="true" />
- </action>
- </actions>
- </service>
- </services>
-</jbossesb>
Copied: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/internal/soa/esb/webservice/jbossesb_config_06.xml (from rev 24846, labs/jbossesb/trunk/product/rosetta/tests/src/org/jboss/internal/soa/esb/webservice/jbossesb_config_06.xml)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/internal/soa/esb/webservice/jbossesb_config_06.xml (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/internal/soa/esb/webservice/jbossesb_config_06.xml 2009-01-21 15:38:08 UTC (rev 24850)
@@ -0,0 +1,18 @@
+<?xml version = "1.0" encoding = "UTF-8"?>
+<jbossesb
+ xmlns="http://anonsvn.labs.jboss.com/labs/jbossesb/trunk/product/etc/schemas/xml/jbossesb-1.0.1.xsd">
+ <services>
+ <service category="FirstServiceESB" name="SimpleListener"
+ description="Hello World" invmScope="GLOBAL">>
+ <actions
+ inXsd="/org/jboss/internal/soa/esb/webservice/request.xsd"
+ outXsd="/org/jboss/internal/soa/esb/webservice/response.xsd"
+ faultXsd="/org/jboss/internal/soa/esb/webservice/fault.xsd">
+ <action name="action2"
+ class="org.jboss.soa.esb.actions.SystemPrintln">
+ <property name="printfull" value="true" />
+ </action>
+ </actions>
+ </service>
+ </services>
+</jbossesb>
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/internal/soa/esb/webservice/jbossesb_config_07.110.xml
===================================================================
--- labs/jbossesb/trunk/product/rosetta/tests/src/org/jboss/internal/soa/esb/webservice/jbossesb_config_07.110.xml 2009-01-21 09:35:03 UTC (rev 24846)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/internal/soa/esb/webservice/jbossesb_config_07.110.xml 2009-01-21 15:38:08 UTC (rev 24850)
@@ -1,17 +0,0 @@
-<?xml version = "1.0" encoding = "UTF-8"?>
-<jbossesb
- xmlns="http://anonsvn.labs.jboss.com/labs/jbossesb/trunk/product/etc/schemas/xml/jbossesb-1.1.0.xsd">
- <services>
- <service category="FirstServiceESB" name="SimpleListener"
- description="Hello World" invmScope="GLOBAL">>
- <actions
- inXsd="/org/jboss/internal/soa/esb/webservice/request.xsd"
- outXsd="/org/jboss/internal/soa/esb/webservice/response.xsd">
- <action name="action2"
- class="org.jboss.soa.esb.actions.SystemPrintln">
- <property name="printfull" value="true" />
- </action>
- </actions>
- </service>
- </services>
-</jbossesb>
Copied: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/internal/soa/esb/webservice/jbossesb_config_07.110.xml (from rev 24846, labs/jbossesb/trunk/product/rosetta/tests/src/org/jboss/internal/soa/esb/webservice/jbossesb_config_07.110.xml)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/internal/soa/esb/webservice/jbossesb_config_07.110.xml (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/internal/soa/esb/webservice/jbossesb_config_07.110.xml 2009-01-21 15:38:08 UTC (rev 24850)
@@ -0,0 +1,17 @@
+<?xml version = "1.0" encoding = "UTF-8"?>
+<jbossesb
+ xmlns="http://anonsvn.labs.jboss.com/labs/jbossesb/trunk/product/etc/schemas/xml/jbossesb-1.1.0.xsd">
+ <services>
+ <service category="FirstServiceESB" name="SimpleListener"
+ description="Hello World" invmScope="GLOBAL">>
+ <actions
+ inXsd="/org/jboss/internal/soa/esb/webservice/request.xsd"
+ outXsd="/org/jboss/internal/soa/esb/webservice/response.xsd">
+ <action name="action2"
+ class="org.jboss.soa.esb.actions.SystemPrintln">
+ <property name="printfull" value="true" />
+ </action>
+ </actions>
+ </service>
+ </services>
+</jbossesb>
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/internal/soa/esb/webservice/jbossesb_config_07.xml
===================================================================
--- labs/jbossesb/trunk/product/rosetta/tests/src/org/jboss/internal/soa/esb/webservice/jbossesb_config_07.xml 2009-01-21 09:35:03 UTC (rev 24846)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/internal/soa/esb/webservice/jbossesb_config_07.xml 2009-01-21 15:38:08 UTC (rev 24850)
@@ -1,17 +0,0 @@
-<?xml version = "1.0" encoding = "UTF-8"?>
-<jbossesb
- xmlns="http://anonsvn.labs.jboss.com/labs/jbossesb/trunk/product/etc/schemas/xml/jbossesb-1.0.1.xsd">
- <services>
- <service category="FirstServiceESB" name="SimpleListener"
- description="Hello World" invmScope="GLOBAL">>
- <actions
- inXsd="/org/jboss/internal/soa/esb/webservice/request.xsd"
- outXsd="/org/jboss/internal/soa/esb/webservice/response.xsd">
- <action name="action2"
- class="org.jboss.soa.esb.actions.SystemPrintln">
- <property name="printfull" value="true" />
- </action>
- </actions>
- </service>
- </services>
-</jbossesb>
Copied: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/internal/soa/esb/webservice/jbossesb_config_07.xml (from rev 24846, labs/jbossesb/trunk/product/rosetta/tests/src/org/jboss/internal/soa/esb/webservice/jbossesb_config_07.xml)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/internal/soa/esb/webservice/jbossesb_config_07.xml (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/internal/soa/esb/webservice/jbossesb_config_07.xml 2009-01-21 15:38:08 UTC (rev 24850)
@@ -0,0 +1,17 @@
+<?xml version = "1.0" encoding = "UTF-8"?>
+<jbossesb
+ xmlns="http://anonsvn.labs.jboss.com/labs/jbossesb/trunk/product/etc/schemas/xml/jbossesb-1.0.1.xsd">
+ <services>
+ <service category="FirstServiceESB" name="SimpleListener"
+ description="Hello World" invmScope="GLOBAL">>
+ <actions
+ inXsd="/org/jboss/internal/soa/esb/webservice/request.xsd"
+ outXsd="/org/jboss/internal/soa/esb/webservice/response.xsd">
+ <action name="action2"
+ class="org.jboss.soa.esb.actions.SystemPrintln">
+ <property name="printfull" value="true" />
+ </action>
+ </actions>
+ </service>
+ </services>
+</jbossesb>
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/internal/soa/esb/webservice/jbossesb_config_08.110.xml
===================================================================
--- labs/jbossesb/trunk/product/rosetta/tests/src/org/jboss/internal/soa/esb/webservice/jbossesb_config_08.110.xml 2009-01-21 09:35:03 UTC (rev 24846)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/internal/soa/esb/webservice/jbossesb_config_08.110.xml 2009-01-21 15:38:08 UTC (rev 24850)
@@ -1,16 +0,0 @@
-<?xml version = "1.0" encoding = "UTF-8"?>
-<jbossesb
- xmlns="http://anonsvn.labs.jboss.com/labs/jbossesb/trunk/product/etc/schemas/xml/jbossesb-1.1.0.xsd">
- <services>
- <service category="FirstServiceESB" name="SimpleListener"
- description="Hello World" invmScope="GLOBAL">>
- <actions
- inXsd="/org/jboss/internal/soa/esb/webservice/request.xsd">
- <action name="action2"
- class="org.jboss.soa.esb.actions.SystemPrintln">
- <property name="printfull" value="true" />
- </action>
- </actions>
- </service>
- </services>
-</jbossesb>
Copied: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/internal/soa/esb/webservice/jbossesb_config_08.110.xml (from rev 24846, labs/jbossesb/trunk/product/rosetta/tests/src/org/jboss/internal/soa/esb/webservice/jbossesb_config_08.110.xml)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/internal/soa/esb/webservice/jbossesb_config_08.110.xml (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/internal/soa/esb/webservice/jbossesb_config_08.110.xml 2009-01-21 15:38:08 UTC (rev 24850)
@@ -0,0 +1,16 @@
+<?xml version = "1.0" encoding = "UTF-8"?>
+<jbossesb
+ xmlns="http://anonsvn.labs.jboss.com/labs/jbossesb/trunk/product/etc/schemas/xml/jbossesb-1.1.0.xsd">
+ <services>
+ <service category="FirstServiceESB" name="SimpleListener"
+ description="Hello World" invmScope="GLOBAL">>
+ <actions
+ inXsd="/org/jboss/internal/soa/esb/webservice/request.xsd">
+ <action name="action2"
+ class="org.jboss.soa.esb.actions.SystemPrintln">
+ <property name="printfull" value="true" />
+ </action>
+ </actions>
+ </service>
+ </services>
+</jbossesb>
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/internal/soa/esb/webservice/jbossesb_config_08.xml
===================================================================
--- labs/jbossesb/trunk/product/rosetta/tests/src/org/jboss/internal/soa/esb/webservice/jbossesb_config_08.xml 2009-01-21 09:35:03 UTC (rev 24846)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/internal/soa/esb/webservice/jbossesb_config_08.xml 2009-01-21 15:38:08 UTC (rev 24850)
@@ -1,16 +0,0 @@
-<?xml version = "1.0" encoding = "UTF-8"?>
-<jbossesb
- xmlns="http://anonsvn.labs.jboss.com/labs/jbossesb/trunk/product/etc/schemas/xml/jbossesb-1.0.1.xsd">
- <services>
- <service category="FirstServiceESB" name="SimpleListener"
- description="Hello World" invmScope="GLOBAL">>
- <actions
- inXsd="/org/jboss/internal/soa/esb/webservice/request.xsd">
- <action name="action2"
- class="org.jboss.soa.esb.actions.SystemPrintln">
- <property name="printfull" value="true" />
- </action>
- </actions>
- </service>
- </services>
-</jbossesb>
Copied: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/internal/soa/esb/webservice/jbossesb_config_08.xml (from rev 24846, labs/jbossesb/trunk/product/rosetta/tests/src/org/jboss/internal/soa/esb/webservice/jbossesb_config_08.xml)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/internal/soa/esb/webservice/jbossesb_config_08.xml (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/internal/soa/esb/webservice/jbossesb_config_08.xml 2009-01-21 15:38:08 UTC (rev 24850)
@@ -0,0 +1,16 @@
+<?xml version = "1.0" encoding = "UTF-8"?>
+<jbossesb
+ xmlns="http://anonsvn.labs.jboss.com/labs/jbossesb/trunk/product/etc/schemas/xml/jbossesb-1.0.1.xsd">
+ <services>
+ <service category="FirstServiceESB" name="SimpleListener"
+ description="Hello World" invmScope="GLOBAL">>
+ <actions
+ inXsd="/org/jboss/internal/soa/esb/webservice/request.xsd">
+ <action name="action2"
+ class="org.jboss.soa.esb.actions.SystemPrintln">
+ <property name="printfull" value="true" />
+ </action>
+ </actions>
+ </service>
+ </services>
+</jbossesb>
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/internal/soa/esb/webservice/request.xsd
===================================================================
--- labs/jbossesb/trunk/product/rosetta/tests/src/org/jboss/internal/soa/esb/webservice/request.xsd 2009-01-21 09:35:03 UTC (rev 24846)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/internal/soa/esb/webservice/request.xsd 2009-01-21 15:38:08 UTC (rev 24850)
@@ -1,8 +0,0 @@
-<xs:schema version="1.0" targetNamespace="http://www.jboss.org/sayHi" xmlns:x1="http://www.jboss.org/sayHi" xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
- <xs:element name="sayHi" type="x1:sayHi"/>
- <xs:complexType name="sayHi">
- <xs:sequence>
- <xs:element name="arg0" type="xs:string" minOccurs="0"/>
- </xs:sequence>
- </xs:complexType>
-</xs:schema>
Copied: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/internal/soa/esb/webservice/request.xsd (from rev 24846, labs/jbossesb/trunk/product/rosetta/tests/src/org/jboss/internal/soa/esb/webservice/request.xsd)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/internal/soa/esb/webservice/request.xsd (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/internal/soa/esb/webservice/request.xsd 2009-01-21 15:38:08 UTC (rev 24850)
@@ -0,0 +1,8 @@
+<xs:schema version="1.0" targetNamespace="http://www.jboss.org/sayHi" xmlns:x1="http://www.jboss.org/sayHi" xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
+ <xs:element name="sayHi" type="x1:sayHi"/>
+ <xs:complexType name="sayHi">
+ <xs:sequence>
+ <xs:element name="arg0" type="xs:string" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+</xs:schema>
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/internal/soa/esb/webservice/response.xsd
===================================================================
--- labs/jbossesb/trunk/product/rosetta/tests/src/org/jboss/internal/soa/esb/webservice/response.xsd 2009-01-21 09:35:03 UTC (rev 24846)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/internal/soa/esb/webservice/response.xsd 2009-01-21 15:38:08 UTC (rev 24850)
@@ -1,8 +0,0 @@
-<xs:schema version="1.0" targetNamespace="http://www.jboss.org/sayHi" xmlns:x1="http://www.jboss.org/sayHi" xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
- <xs:element name="sayHiReponse" type="x1:sayHiReponse"/>
- <xs:complexType name="sayHiReponse">
- <xs:sequence>
- <xs:element name="arg0" type="xs:string" minOccurs="0"/>
- </xs:sequence>
- </xs:complexType>
-</xs:schema>
Copied: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/internal/soa/esb/webservice/response.xsd (from rev 24846, labs/jbossesb/trunk/product/rosetta/tests/src/org/jboss/internal/soa/esb/webservice/response.xsd)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/internal/soa/esb/webservice/response.xsd (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/internal/soa/esb/webservice/response.xsd 2009-01-21 15:38:08 UTC (rev 24850)
@@ -0,0 +1,8 @@
+<xs:schema version="1.0" targetNamespace="http://www.jboss.org/sayHi" xmlns:x1="http://www.jboss.org/sayHi" xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
+ <xs:element name="sayHiReponse" type="x1:sayHiReponse"/>
+ <xs:complexType name="sayHiReponse">
+ <xs:sequence>
+ <xs:element name="arg0" type="xs:string" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+</xs:schema>
Modified: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/actions/routing/JmsRouterIntegrationTest.java
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/actions/routing/JmsRouterIntegrationTest.java 2009-01-21 14:47:17 UTC (rev 24849)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/actions/routing/JmsRouterIntegrationTest.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -51,6 +51,7 @@
import org.jboss.soa.esb.listeners.gateway.DefaultESBPropertiesSetter;
import org.jboss.soa.esb.message.Message;
import org.jboss.soa.esb.message.format.MessageFactory;
+import org.jboss.soa.esb.notification.jms.JMSPropertiesSetter;
import org.jboss.soa.esb.testutils.SerializableMockQueue;
import org.junit.Before;
import org.junit.Test;
@@ -75,6 +76,7 @@
private final String bodyContent = "hello";
private Message msg;
private ConfigTree tree;
+ private static final String PROPERTY_SETTER_TEST_NAME = "MockJMSPropertiesSetter" ;
@Test
@@ -250,6 +252,16 @@
assertEquals( jndiPkgPrefix, router.getJndiPkgPrefix() );
assertEquals( connectionFactory, router.getConnectionFactory() );
}
+
+ @Test
+ public void usePropertyStrategy() throws ConfigurationException, NamingException, JMSException, ActionProcessingException
+ {
+ final ConfigTree tree = createConfigTree() ;
+ tree.setAttribute(JMSRouter.PROPERTY_STRATEGY, MockJMSPropertiesSetter.class.getName()) ;
+ final MockJMSRouter router = new MockJMSRouter(tree) ;
+ router.route(msg) ;
+ assertEquals("Property setter value", PROPERTY_SETTER_TEST_NAME, router.getJmsMessage().getStringProperty(PROPERTY_SETTER_TEST_NAME)) ;
+ }
@Before
public void setup() throws URISyntaxException
@@ -351,6 +363,15 @@
return securityCredential;
}
}
+
+ static class MockJMSPropertiesSetter implements JMSPropertiesSetter
+ {
+ public void setJMSProperties(final Message esbMsg, final javax.jms.Message jmsMessage)
+ throws JMSException
+ {
+ jmsMessage.setStringProperty(PROPERTY_SETTER_TEST_NAME, PROPERTY_SETTER_TEST_NAME) ;
+ }
+ }
/*
* Just here to help Ant to find annotated test.
Copied: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/actions/validation (from rev 24846, labs/jbossesb/trunk/product/rosetta/tests/src/org/jboss/soa/esb/actions/validation)
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/actions/validation/SchemaValidationActionUnitTest.java
===================================================================
--- labs/jbossesb/trunk/product/rosetta/tests/src/org/jboss/soa/esb/actions/validation/SchemaValidationActionUnitTest.java 2009-01-21 09:35:03 UTC (rev 24846)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/actions/validation/SchemaValidationActionUnitTest.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -1,92 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source Copyright 2008, Red Hat Middleware
- * LLC, and individual contributors by the @authors tag. See the copyright.txt
- * in the distribution for a full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it under the
- * terms of the GNU Lesser General Public License as published by the Free
- * Software Foundation; either version 2.1 of the License, or (at your option)
- * any later version.
- *
- * This software is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
- * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
- * details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this software; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA, or see the FSF
- * site: http://www.fsf.org.
- */
-package org.jboss.soa.esb.actions.validation;
-
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertTrue;
-
-import java.io.UnsupportedEncodingException;
-import javax.xml.transform.dom.DOMResult;
-import junit.framework.JUnit4TestAdapter;
-import org.jboss.internal.soa.esb.util.StreamUtils;
-import org.jboss.soa.esb.ConfigurationException;
-import org.jboss.soa.esb.actions.ActionProcessingException;
-import org.jboss.soa.esb.helpers.ConfigTree;
-import org.jboss.soa.esb.message.Message;
-import org.jboss.soa.esb.message.format.MessageFactory;
-import org.junit.Test;
-
-
-/**
- * Unit test for {@link SchemaValidationAction}.
- *
- * @author <a href="mailto:dbevenius at jboss.com">Daniel Bevenius</a>
- *
- */
-public class SchemaValidationActionUnitTest
-{
- private String xsdFileName = "test.xsd";
-
- @Test
- public void process() throws ActionProcessingException, ConfigurationException, UnsupportedEncodingException
- {
- process("test.xml");
- }
-
- @Test
- public void processInvalidXml() throws ActionProcessingException, ConfigurationException, UnsupportedEncodingException
- {
- try
- {
- process("test-invalid.xml");
- }
- catch (final Exception e)
- {
- assertTrue(e instanceof ValidationException);
- ValidationException validationException = (ValidationException) e;
- DOMResult domResult = validationException.getDomResult();
- assertNotNull(domResult);
- }
- }
-
- private void process(final String xmlFileName) throws ConfigurationException, ActionProcessingException
- {
- final ConfigTree config = createConfiguration(xsdFileName);
- final SchemaValidationAction action = new SchemaValidationAction(config);
- final Message message = MessageFactory.getInstance().getMessage();
- final byte[] xml = StreamUtils.readStream(getClass().getResourceAsStream(xmlFileName));
- message.getBody().add(xml);
-
- action.process(message);
- }
-
- private ConfigTree createConfiguration(final String xsdPath)
- {
- final ConfigTree config = new ConfigTree("junittest");
- config.setAttribute("schema", xsdPath);
- return config;
- }
-
- public static junit.framework.Test suite()
- {
- return new JUnit4TestAdapter(SchemaValidationActionUnitTest.class);
- }
-}
Copied: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/actions/validation/SchemaValidationActionUnitTest.java (from rev 24846, labs/jbossesb/trunk/product/rosetta/tests/src/org/jboss/soa/esb/actions/validation/SchemaValidationActionUnitTest.java)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/actions/validation/SchemaValidationActionUnitTest.java (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/actions/validation/SchemaValidationActionUnitTest.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -0,0 +1,92 @@
+/*
+ * JBoss, Home of Professional Open Source Copyright 2008, Red Hat Middleware
+ * LLC, and individual contributors by the @authors tag. See the copyright.txt
+ * in the distribution for a full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it under the
+ * terms of the GNU Lesser General Public License as published by the Free
+ * Software Foundation; either version 2.1 of the License, or (at your option)
+ * any later version.
+ *
+ * This software is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+ * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
+ * details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this software; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA, or see the FSF
+ * site: http://www.fsf.org.
+ */
+package org.jboss.soa.esb.actions.validation;
+
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertTrue;
+
+import java.io.UnsupportedEncodingException;
+import javax.xml.transform.dom.DOMResult;
+import junit.framework.JUnit4TestAdapter;
+import org.jboss.internal.soa.esb.util.StreamUtils;
+import org.jboss.soa.esb.ConfigurationException;
+import org.jboss.soa.esb.actions.ActionProcessingException;
+import org.jboss.soa.esb.helpers.ConfigTree;
+import org.jboss.soa.esb.message.Message;
+import org.jboss.soa.esb.message.format.MessageFactory;
+import org.junit.Test;
+
+
+/**
+ * Unit test for {@link SchemaValidationAction}.
+ *
+ * @author <a href="mailto:dbevenius at jboss.com">Daniel Bevenius</a>
+ *
+ */
+public class SchemaValidationActionUnitTest
+{
+ private String xsdFileName = "test.xsd";
+
+ @Test
+ public void process() throws ActionProcessingException, ConfigurationException, UnsupportedEncodingException
+ {
+ process("test.xml");
+ }
+
+ @Test
+ public void processInvalidXml() throws ActionProcessingException, ConfigurationException, UnsupportedEncodingException
+ {
+ try
+ {
+ process("test-invalid.xml");
+ }
+ catch (final Exception e)
+ {
+ assertTrue(e instanceof ValidationException);
+ ValidationException validationException = (ValidationException) e;
+ DOMResult domResult = validationException.getDomResult();
+ assertNotNull(domResult);
+ }
+ }
+
+ private void process(final String xmlFileName) throws ConfigurationException, ActionProcessingException
+ {
+ final ConfigTree config = createConfiguration(xsdFileName);
+ final SchemaValidationAction action = new SchemaValidationAction(config);
+ final Message message = MessageFactory.getInstance().getMessage();
+ final byte[] xml = StreamUtils.readStream(getClass().getResourceAsStream(xmlFileName));
+ message.getBody().add(xml);
+
+ action.process(message);
+ }
+
+ private ConfigTree createConfiguration(final String xsdPath)
+ {
+ final ConfigTree config = new ConfigTree("junittest");
+ config.setAttribute("schema", xsdPath);
+ return config;
+ }
+
+ public static junit.framework.Test suite()
+ {
+ return new JUnit4TestAdapter(SchemaValidationActionUnitTest.class);
+ }
+}
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/actions/validation/test-invalid.xml
===================================================================
--- labs/jbossesb/trunk/product/rosetta/tests/src/org/jboss/soa/esb/actions/validation/test-invalid.xml 2009-01-21 09:35:03 UTC (rev 24846)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/actions/validation/test-invalid.xml 2009-01-21 15:38:08 UTC (rev 24850)
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="ISO-8859-1"?>
-
-<shiporder orderid="889923" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="shiporder.xsd">
- <orderperson>John Smith</orderperson>
- <shipto>
- <name>Ola Nordmann</name>
- <address>Langgt 23</address>
- <city>4000 Stavanger</city>
- <country>Norway</country>
- </shipto>
- <item>
- <title>Empire Burlesque</title>
- <note>Special Edition</note>
- <quantity>-1</quantity>
- <price>10.90</price>
- </item>
- <item>
- <title>Hide your heart</title>
- <quantity>1</quantity>
- <price>9.90</price>
- </item>
-</shiporder>
\ No newline at end of file
Copied: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/actions/validation/test-invalid.xml (from rev 24846, labs/jbossesb/trunk/product/rosetta/tests/src/org/jboss/soa/esb/actions/validation/test-invalid.xml)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/actions/validation/test-invalid.xml (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/actions/validation/test-invalid.xml 2009-01-21 15:38:08 UTC (rev 24850)
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+
+<shiporder orderid="889923" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="shiporder.xsd">
+ <orderperson>John Smith</orderperson>
+ <shipto>
+ <name>Ola Nordmann</name>
+ <address>Langgt 23</address>
+ <city>4000 Stavanger</city>
+ <country>Norway</country>
+ </shipto>
+ <item>
+ <title>Empire Burlesque</title>
+ <note>Special Edition</note>
+ <quantity>-1</quantity>
+ <price>10.90</price>
+ </item>
+ <item>
+ <title>Hide your heart</title>
+ <quantity>1</quantity>
+ <price>9.90</price>
+ </item>
+</shiporder>
\ No newline at end of file
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/actions/validation/test.xml
===================================================================
--- labs/jbossesb/trunk/product/rosetta/tests/src/org/jboss/soa/esb/actions/validation/test.xml 2009-01-21 09:35:03 UTC (rev 24846)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/actions/validation/test.xml 2009-01-21 15:38:08 UTC (rev 24850)
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="ISO-8859-1"?>
-
-<shiporder orderid="889923" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="shiporder.xsd">
- <orderperson>John Smith</orderperson>
- <shipto>
- <name>Ola Nordmann</name>
- <address>Langgt 23</address>
- <city>4000 Stavanger</city>
- <country>Norway</country>
- </shipto>
- <item>
- <title>Empire Burlesque</title>
- <note>Special Edition</note>
- <quantity>1</quantity>
- <price>10.90</price>
- </item>
- <item>
- <title>Hide your heart</title>
- <quantity>1</quantity>
- <price>9.90</price>
- </item>
-</shiporder>
\ No newline at end of file
Copied: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/actions/validation/test.xml (from rev 24846, labs/jbossesb/trunk/product/rosetta/tests/src/org/jboss/soa/esb/actions/validation/test.xml)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/actions/validation/test.xml (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/actions/validation/test.xml 2009-01-21 15:38:08 UTC (rev 24850)
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+
+<shiporder orderid="889923" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="shiporder.xsd">
+ <orderperson>John Smith</orderperson>
+ <shipto>
+ <name>Ola Nordmann</name>
+ <address>Langgt 23</address>
+ <city>4000 Stavanger</city>
+ <country>Norway</country>
+ </shipto>
+ <item>
+ <title>Empire Burlesque</title>
+ <note>Special Edition</note>
+ <quantity>1</quantity>
+ <price>10.90</price>
+ </item>
+ <item>
+ <title>Hide your heart</title>
+ <quantity>1</quantity>
+ <price>9.90</price>
+ </item>
+</shiporder>
\ No newline at end of file
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/actions/validation/test.xsd
===================================================================
--- labs/jbossesb/trunk/product/rosetta/tests/src/org/jboss/soa/esb/actions/validation/test.xsd 2009-01-21 09:35:03 UTC (rev 24846)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/actions/validation/test.xsd 2009-01-21 15:38:08 UTC (rev 24850)
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="ISO-8859-1" ?>
-<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
- <xs:element name="shiporder">
- <xs:complexType>
- <xs:sequence>
- <xs:element name="orderperson" type="xs:string" />
- <xs:element name="shipto">
- <xs:complexType>
- <xs:sequence>
- <xs:element name="name" type="xs:string" />
- <xs:element name="address" type="xs:string" />
- <xs:element name="city" type="xs:string" />
- <xs:element name="country" type="xs:string" />
- </xs:sequence>
- </xs:complexType>
- </xs:element>
- <xs:element name="item" maxOccurs="unbounded">
- <xs:complexType>
- <xs:sequence>
- <xs:element name="title" type="xs:string" />
- <xs:element name="note" type="xs:string" minOccurs="0" />
- <xs:element name="quantity" type="xs:positiveInteger" />
- <xs:element name="price" type="xs:decimal" />
- </xs:sequence>
- </xs:complexType>
- </xs:element>
- </xs:sequence>
- <xs:attribute name="orderid" type="xs:string" use="required" />
- </xs:complexType>
- </xs:element>
-</xs:schema>
\ No newline at end of file
Copied: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/actions/validation/test.xsd (from rev 24846, labs/jbossesb/trunk/product/rosetta/tests/src/org/jboss/soa/esb/actions/validation/test.xsd)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/actions/validation/test.xsd (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/actions/validation/test.xsd 2009-01-21 15:38:08 UTC (rev 24850)
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="ISO-8859-1" ?>
+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
+ <xs:element name="shiporder">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element name="orderperson" type="xs:string" />
+ <xs:element name="shipto">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element name="name" type="xs:string" />
+ <xs:element name="address" type="xs:string" />
+ <xs:element name="city" type="xs:string" />
+ <xs:element name="country" type="xs:string" />
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="item" maxOccurs="unbounded">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element name="title" type="xs:string" />
+ <xs:element name="note" type="xs:string" minOccurs="0" />
+ <xs:element name="quantity" type="xs:positiveInteger" />
+ <xs:element name="price" type="xs:decimal" />
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ </xs:sequence>
+ <xs:attribute name="orderid" type="xs:string" use="required" />
+ </xs:complexType>
+ </xs:element>
+</xs:schema>
\ No newline at end of file
Copied: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/addressing/eprs/EmailUnitTest.java (from rev 24846, labs/jbossesb/trunk/product/rosetta/tests/src/org/jboss/soa/esb/addressing/eprs/EmailUnitTest.java)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/addressing/eprs/EmailUnitTest.java (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/addressing/eprs/EmailUnitTest.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -0,0 +1,68 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+
+package org.jboss.soa.esb.addressing.eprs;
+
+import junit.framework.TestCase;
+
+import org.jboss.soa.esb.addressing.eprs.EmailEpr;
+
+/**
+ * Unit tests for the EPR class.
+ *
+ * @author Mark Little
+ */
+
+public class EmailUnitTest extends TestCase
+{
+
+ public void testConstructor ()
+ {
+ try
+ {
+ new EmailEpr(EmailEpr.SMTP_PROTOCOL, "myhost", "25", "foo", "bar");
+ }
+ catch (Exception ex)
+ {
+ fail(ex.toString());
+ }
+ }
+
+ public void testSetGet ()
+ {
+ try
+ {
+ EmailEpr em = new EmailEpr(EmailEpr.SMTP_PROTOCOL, "myhost", "25", "foo", "bar");
+
+ assertEquals(em.getHost(), "myhost");
+ assertEquals(em.getProtocol(), EmailEpr.SMTP_PROTOCOL);
+ assertEquals(em.getPort(), 25);
+ assertEquals(em.getUserName(), "foo");
+ assertEquals(em.getPassword(), "bar");
+ }
+ catch (Exception ex)
+ {
+ fail(ex.toString());
+ }
+ }
+
+}
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/addressing/helpers/tests/EmailUnitTest.java
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/addressing/helpers/tests/EmailUnitTest.java 2009-01-21 14:47:17 UTC (rev 24849)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/addressing/helpers/tests/EmailUnitTest.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -1,68 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2006, JBoss Inc., and individual contributors as indicated
- * by the @authors tag. See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
-
-package org.jboss.soa.esb.addressing.helpers.tests;
-
-import junit.framework.TestCase;
-
-import org.jboss.soa.esb.addressing.eprs.EmailEpr;
-
-/**
- * Unit tests for the EPR class.
- *
- * @author Mark Little
- */
-
-public class EmailUnitTest extends TestCase
-{
-
- public void testConstructor ()
- {
- try
- {
- new EmailEpr(EmailEpr.SMTP_PROTOCOL, "myhost", "25", "foo", "bar");
- }
- catch (Exception ex)
- {
- fail(ex.toString());
- }
- }
-
- public void testSetGet ()
- {
- try
- {
- EmailEpr em = new EmailEpr(EmailEpr.SMTP_PROTOCOL, "myhost", "25", "foo", "bar");
-
- assertEquals(em.getHost(), "myhost");
- assertEquals(em.getProtocol(), EmailEpr.SMTP_PROTOCOL);
- assertEquals(em.getPort(), 25);
- assertEquals(em.getUserName(), "foo");
- assertEquals(em.getPassword(), "bar");
- }
- catch (Exception ex)
- {
- fail(ex.toString());
- }
- }
-
-}
Modified: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/helpers/EmailUnitTest.java
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/helpers/EmailUnitTest.java 2009-01-21 14:47:17 UTC (rev 24849)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/helpers/EmailUnitTest.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -90,5 +90,17 @@
assertEquals("attachment2.txt", ((String)part.getFileName()).trim());
}
+ public void test_authConstructorNullHost() throws AddressException, MessagingException
+ {
+ try
+ {
+ new Email("localhost", 21, null, null, true);
+ }
+ catch (final Exception e)
+ {
+ assertTrue(e instanceof IllegalArgumentException);
+ }
+ }
+
// TODO: Add some negative tests!!!
}
Modified: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/listeners/InVMListenerUnitTest.java
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/listeners/InVMListenerUnitTest.java 2009-01-21 14:47:17 UTC (rev 24849)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/listeners/InVMListenerUnitTest.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -65,7 +65,7 @@
invoker.deliverAsync(message);
waitForMockSet(message);
- assertTrue(message == MockAction.message);
+ assertTrue("Message equality", checkMessageEquality(message, MockAction.message));
}
}.setServiceConfig("in-listener-config-01.xml");
@@ -104,8 +104,8 @@
message.getBody().add("Hi there!");
Message response = invoker.deliverSync(message, 2000);
- assertTrue(message == MockAction.message);
- assertTrue(message == response);
+ assertTrue("Message equality", checkMessageEquality(message, MockAction.message));
+ assertTrue("Message equality", checkMessageEquality(message, response));
}
}.setServiceConfig("in-listener-config-01.xml");
@@ -229,7 +229,7 @@
} catch (Exception e) {
fail("Error delivering message: " + e.getMessage());
}
- assertTrue(message == response);
+ assertTrue("Message equality", checkMessageEquality(message, response));
assertEquals("Tom Fennelly", response.getBody().get());
InVMListenerUnitTest.sleep(10);
@@ -252,14 +252,14 @@
invoker.deliverAsync(message);
waitForMockSet(message);
- assertTrue(message == MockAction.message);
+ assertTrue("Message equality", checkMessageEquality(message, MockAction.message));
}
private void waitForMockSet(Message message) {
long start = System.currentTimeMillis();
while(System.currentTimeMillis() - start < 5000) {
- if(message == MockAction.message) {
+ if(checkMessageEquality(message, MockAction.message)) {
return;
}
sleep(50);
@@ -273,4 +273,12 @@
fail("Unexpected InterruptedException exception.");
}
}
+
+ private static boolean checkMessageEquality(final Message expected, final Message actual) {
+ return (actual != null) && (expected.getAttachment().equals(actual.getAttachment())) &&
+ (expected.getBody().equals(actual.getBody())) &&
+ (expected.getFault().equals(actual.getFault())) &&
+ (expected.getProperties().equals(actual.getProperties())) &&
+ (expected.getType().equals(actual.getType())) ;
+ }
}
\ No newline at end of file
Modified: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/listeners/ListenerConfigUtil.java
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/listeners/ListenerConfigUtil.java 2009-01-21 14:47:17 UTC (rev 24849)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/listeners/ListenerConfigUtil.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -24,9 +24,8 @@
import org.jboss.soa.esb.ConfigurationException;
import org.jboss.soa.esb.helpers.ConfigTree;
-import org.jboss.soa.esb.listeners.config.ESBAwareGenerator;
-import org.jboss.soa.esb.listeners.config.GatewayGenerator;
import org.jboss.soa.esb.listeners.config.Generator;
+import org.jboss.soa.esb.listeners.config.model.ModelAdapter;
import org.w3c.dom.Document;
/**
@@ -47,10 +46,9 @@
* @throws IOException Unable to read the ESB listener configuration.
*/
public static ConfigTree getESBAwareListenerConfig(InputStream config, String listenerName) throws ConfigurationException, IOException {
- Generator.XMLBeansModel model = Generator.parseConfig(config);
+ final ModelAdapter model = Generator.parseConfig(config);
- ESBAwareGenerator awareGenerator = new ESBAwareGenerator(model);
- Document awareConfig = awareGenerator.generate();
+ Document awareConfig = model.generateESBAwareConfig();
return getConfigTree(awareConfig, listenerName);
}
@@ -66,10 +64,9 @@
* @throws IOException Unable to read the ESB listener configuration.
*/
public static ConfigTree getGatewayListenerConfig(InputStream config, String listenerName) throws ConfigurationException, IOException {
- Generator.XMLBeansModel model = Generator.parseConfig(config);
+ final ModelAdapter model = Generator.parseConfig(config);
- GatewayGenerator gatewayGenerator = new GatewayGenerator(model);
- Document gatewayConfig = gatewayGenerator.generate();
+ Document gatewayConfig = model.generateGatewayConfig();
return getConfigTree(gatewayConfig, listenerName);
}
Modified: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/listeners/ScheduledListenerUnitTest.java
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/listeners/ScheduledListenerUnitTest.java 2009-01-21 14:47:17 UTC (rev 24849)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/listeners/ScheduledListenerUnitTest.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -20,10 +20,12 @@
package org.jboss.soa.esb.listeners;
import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
-import java.io.UnsupportedEncodingException;
import java.io.IOException;
+import javax.xml.parsers.ParserConfigurationException;
+
import junit.framework.JUnit4TestAdapter;
import org.jboss.internal.soa.esb.util.StreamUtils;
@@ -33,6 +35,7 @@
import org.jboss.soa.esb.schedule.MockScheduledEventMessageComposer;
import org.jboss.soa.esb.schedule.SchedulingException;
import org.jboss.soa.esb.testutils.ESBConfigUtil;
+import org.jboss.soa.esb.testutils.StringUtils;
import org.junit.Test;
import org.xml.sax.SAXException;
@@ -43,12 +46,12 @@
public class ScheduledListenerUnitTest {
@Test
- public void test() throws IOException, SAXException, ConfigurationException {
+ public void test() throws IOException, SAXException, ConfigurationException, ParserConfigurationException {
ESBConfigUtil configUtil = new ESBConfigUtil(ScheduledListenerUnitTest.class.getResourceAsStream("scheduled-listener-config.xml"));
String actualListenerConfig = configUtil.getListenerConfig("simple-schedule-listener").toXml();
String expectedListenerConfig = StreamUtils.readStreamString(getClass().getResourceAsStream("scheduled-listener-config-configtree.xml"), "UTF-8");
- assertEquals(expectedListenerConfig, actualListenerConfig);
+ assertTrue("Service configuration", StringUtils.compareXMLContent(expectedListenerConfig, actualListenerConfig));
}
@Test
@@ -72,6 +75,7 @@
tree.setAttribute("listenerClass", listenerClass );
tree.setAttribute("my-prop", "1");
tree.setAttribute("scheduleidref", "1-sec-trigger");
+ tree.setAttribute("scheduleSimpleFrequency", "1000") ;
final ConfigTree action = new ConfigTree("action", tree);
action.setAttribute("action", "action");
Modified: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/listeners/config/ConfigurationControlerUnitTest.java
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/listeners/config/ConfigurationControlerUnitTest.java 2009-01-21 14:47:17 UTC (rev 24849)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/listeners/config/ConfigurationControlerUnitTest.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -79,6 +79,45 @@
gatewayFile.delete();
}
+
+ @Test
+ public void readAndGenerateConfig110() throws Exception
+ {
+ String configFileName = TestEnvironmentUtil.getUserDir("product")
+ + "rosetta/tests/src/org/jboss/soa/esb/listeners/config/jbossesb_config_01.110.xml";
+ //Make sure this file exists
+ File configFile = new File(configFileName);
+ assertTrue("File '" + configFile + "' doesn't exist.", configFile.exists());
+ //Remove the listener and gateway configuration files if they exist
+ File currentDir = configFile.getParentFile();
+ if (null==currentDir)
+ currentDir=new File("");
+ File listenerFile = new File(currentDir + File.separator + "jbossesb-listener.xml");
+ if (listenerFile.exists()) {
+ listenerFile.delete();
+ }
+ File gatewayFile = new File(currentDir + File.separator + "jbossesb-gateway.xml");
+ if (gatewayFile.exists()) {
+ gatewayFile.delete();
+ }
+ String validationFileName = TestEnvironmentUtil.getUserDir("product")
+ + "etc/schemas/xml/jbossesb-1.1.0.xsd";
+// Make sure this file exists
+ File validationFile = new File(validationFileName);
+ assertTrue("File '" + validationFile + "' doesn't exist.", validationFile.exists());
+
+ ConfigurationController controller = new ConfigurationController(configFileName, validationFileName);
+ for (int i=0; i<currentDir.listFiles().length;i++){
+ logger.info(currentDir.listFiles()[i].getName());
+ }
+
+ assertTrue("file=" + listenerFile.getAbsolutePath() + " does not exist, while it should have. Actually exists in " + controller.getListenerConfigFile(), listenerFile.exists());
+ listenerFile.delete();
+
+ assertTrue("file=" + gatewayFile.getAbsolutePath() + " does not exist, while it should have. Actually exists in " + controller.getGatewayConfigFile(), gatewayFile.exists());
+ gatewayFile.delete();
+ }
+
public static junit.framework.Test suite() {
return new JUnit4TestAdapter(ConfigurationControlerUnitTest.class);
}
Copied: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/listeners/config/Generator101ModelUnitTest.java (from rev 24846, labs/jbossesb/trunk/product/rosetta/tests/src/org/jboss/soa/esb/listeners/config/Generator101ModelUnitTest.java)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/listeners/config/Generator101ModelUnitTest.java (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/listeners/config/Generator101ModelUnitTest.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -0,0 +1,95 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and others contributors as indicated
+ * by the @authors tag. All rights reserved.
+ * See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License, v. 2.1.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+ * PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
+ * You should have received a copy of the GNU Lesser General Public License,
+ * v.2.1 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301, USA.
+ *
+ * (C) 2005-2006,
+ * @author JBoss Inc.
+ */
+
+package org.jboss.soa.esb.listeners.config;
+
+import junit.framework.TestCase;
+import org.jboss.soa.esb.listeners.config.mappers.XMLBeansModel;
+import org.jboss.soa.esb.listeners.config.xbeanmodel101.JmsProviderType;
+import org.jboss.soa.esb.listeners.config.xbeanmodel101.Listener;
+import org.jboss.soa.esb.listeners.config.xbeanmodel101.JbossesbDocument.Factory;
+import org.jboss.soa.esb.listeners.config.xbeanmodel101.JmsBusDocument.JmsBus;
+import org.jboss.soa.esb.listeners.config.xbeanmodel101.JmsListenerDocument.JmsListener;
+import org.jboss.soa.esb.listeners.config.xbeanmodel101.JmsMessageFilterDocument.JmsMessageFilter;
+import org.jboss.soa.esb.listeners.config.xbeanmodel101.ServiceDocument.Service;
+
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.io.Reader;
+import java.util.List;
+
+/**
+ * Model specific unit tests extracted from GeneratorUnitTest.
+ *
+ * @author <a href="mailto:tom.fennelly at jboss.com">tom.fennelly at jboss.com</a>
+ */
+public class Generator101ModelUnitTest extends TestCase {
+
+ public void test_model() throws Exception {
+ final InputStream is = getClass().getResourceAsStream("jbossesb_config_01.xml");
+ final Reader reader = new InputStreamReader(is) ;
+ XMLBeansModel model = new XMLBeansModel(Factory.parse(reader).getJbossesb());
+
+ JmsBus bus = (JmsBus)model.getBus("server1-jms");
+ JmsProviderType provider = (JmsProviderType) model.getProvider(bus);
+ assertEquals("server1-jms", bus.getBusid());
+ assertEquals("com.xyz.provider.XYZConnectionFactory", provider.getConnectionFactory());
+ assertEquals("com.xyz.provider.NamingContextFactory", provider.getJndiContextFactory());
+ assertEquals("xyz://server1:9876", provider.getJndiURL());
+ assertEquals("com.xyz", provider.getJndiPkgPrefix());
+ JmsMessageFilter busDestination = bus.getJmsMessageFilter();
+ assertEquals("queue/A", busDestination.getDestName());
+ assertEquals(JmsMessageFilter.DestType.QUEUE, busDestination.getDestType());
+ assertEquals("service='Reconciliation'", busDestination.getSelector());
+
+ List<Listener> gateways = model.getGatewayListeners();
+ assertEquals(2, gateways.size());
+ JmsListener gatewayListener = (JmsListener)gateways.get(0);
+ assertEquals("Bank-JMS-Gateway", gatewayListener.getName());
+ assertEquals("server1-jms", gatewayListener.getBusidref());
+ assertTrue(gatewayListener.getIsGateway());
+ assertEquals(1, gatewayListener.getMaxThreads());
+
+ List<Listener> awareListeners = model.getESBAwareListeners();
+ assertEquals(4, awareListeners.size());
+ JmsListener awareListener = (JmsListener)awareListeners.get(0);
+ assertEquals("Bank-Listener", awareListener.getName());
+ assertEquals("local-jms", awareListener.getBusidref());
+ assertTrue(!awareListener.getIsGateway());
+ assertEquals(2, awareListener.getMaxThreads());
+ JmsMessageFilter listenerDestination = awareListener.getJmsMessageFilter();
+ assertEquals("queue/B", listenerDestination.getDestName());
+ assertEquals(JmsMessageFilter.DestType.TOPIC, listenerDestination.getDestType());
+ assertEquals("service='Reconciliation'", listenerDestination.getSelector());
+
+ Listener untypedAwareListener = awareListeners.get(1);
+ assertEquals("Bank-Listener-Generic", untypedAwareListener.getName());
+ assertEquals("my-generic-bus", untypedAwareListener.getBusidref());
+ assertTrue(!untypedAwareListener.getIsGateway());
+
+ Service gatewayService = model.getService(gatewayListener);
+ Service awareService = model.getService(awareListener);
+ assertSame(gatewayService, awareService);
+ assertEquals("Bank", awareService.getCategory());
+ assertEquals("Reconciliation", awareService.getName());
+ assertEquals("Bank Reconciliation Service", awareService.getDescription());
+ }
+}
Copied: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/listeners/config/Generator110ModelUnitTest.java (from rev 24846, labs/jbossesb/trunk/product/rosetta/tests/src/org/jboss/soa/esb/listeners/config/Generator110ModelUnitTest.java)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/listeners/config/Generator110ModelUnitTest.java (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/listeners/config/Generator110ModelUnitTest.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -0,0 +1,95 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and others contributors as indicated
+ * by the @authors tag. All rights reserved.
+ * See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License, v. 2.1.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+ * PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
+ * You should have received a copy of the GNU Lesser General Public License,
+ * v.2.1 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301, USA.
+ *
+ * (C) 2005-2006,
+ * @author JBoss Inc.
+ */
+
+package org.jboss.soa.esb.listeners.config;
+
+import junit.framework.TestCase;
+import org.jboss.soa.esb.listeners.config.mappers110.XMLBeansModel;
+import org.jboss.soa.esb.listeners.config.xbeanmodel110.JmsProviderType;
+import org.jboss.soa.esb.listeners.config.xbeanmodel110.Listener;
+import org.jboss.soa.esb.listeners.config.xbeanmodel110.JbossesbDocument.Factory;
+import org.jboss.soa.esb.listeners.config.xbeanmodel110.JmsBusDocument.JmsBus;
+import org.jboss.soa.esb.listeners.config.xbeanmodel110.JmsListenerDocument.JmsListener;
+import org.jboss.soa.esb.listeners.config.xbeanmodel110.JmsMessageFilterDocument.JmsMessageFilter;
+import org.jboss.soa.esb.listeners.config.xbeanmodel110.ServiceDocument.Service;
+
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.io.Reader;
+import java.util.List;
+
+/**
+ * Model specific unit tests extracted from GeneratorUnitTest.
+ *
+ * @author <a href="mailto:tom.fennelly at jboss.com">tom.fennelly at jboss.com</a>
+ */
+public class Generator110ModelUnitTest extends TestCase {
+
+ public void test_model() throws Exception {
+ final InputStream is = getClass().getResourceAsStream("jbossesb_config_01.110.xml");
+ final Reader reader = new InputStreamReader(is) ;
+ XMLBeansModel model = new XMLBeansModel(Factory.parse(reader).getJbossesb());
+
+ JmsBus bus = (JmsBus)model.getBus("server1-jms");
+ JmsProviderType provider = (JmsProviderType) model.getProvider(bus);
+ assertEquals("server1-jms", bus.getBusid());
+ assertEquals("com.xyz.provider.XYZConnectionFactory", provider.getConnectionFactory());
+ assertEquals("com.xyz.provider.NamingContextFactory", provider.getJndiContextFactory());
+ assertEquals("xyz://server1:9876", provider.getJndiURL());
+ assertEquals("com.xyz", provider.getJndiPkgPrefix());
+ JmsMessageFilter busDestination = bus.getJmsMessageFilter();
+ assertEquals("queue/A", busDestination.getDestName());
+ assertEquals(JmsMessageFilter.DestType.QUEUE, busDestination.getDestType());
+ assertEquals("service='Reconciliation'", busDestination.getSelector());
+
+ List<Listener> gateways = model.getGatewayListeners();
+ assertEquals(2, gateways.size());
+ JmsListener gatewayListener = (JmsListener)gateways.get(0);
+ assertEquals("Bank-JMS-Gateway", gatewayListener.getName());
+ assertEquals("server1-jms", gatewayListener.getBusidref());
+ assertTrue(gatewayListener.getIsGateway());
+ assertEquals(1, gatewayListener.getMaxThreads());
+
+ List<Listener> awareListeners = model.getESBAwareListeners();
+ assertEquals(4, awareListeners.size());
+ JmsListener awareListener = (JmsListener)awareListeners.get(0);
+ assertEquals("Bank-Listener", awareListener.getName());
+ assertEquals("local-jms", awareListener.getBusidref());
+ assertTrue(!awareListener.getIsGateway());
+ assertEquals(2, awareListener.getMaxThreads());
+ JmsMessageFilter listenerDestination = awareListener.getJmsMessageFilter();
+ assertEquals("queue/B", listenerDestination.getDestName());
+ assertEquals(JmsMessageFilter.DestType.TOPIC, listenerDestination.getDestType());
+ assertEquals("service='Reconciliation'", listenerDestination.getSelector());
+
+ Listener untypedAwareListener = awareListeners.get(1);
+ assertEquals("Bank-Listener-Generic", untypedAwareListener.getName());
+ assertEquals("my-generic-bus", untypedAwareListener.getBusidref());
+ assertTrue(!untypedAwareListener.getIsGateway());
+
+ Service gatewayService = model.getService(gatewayListener);
+ Service awareService = model.getService(awareListener);
+ assertSame(gatewayService, awareService);
+ assertEquals("Bank", awareService.getCategory());
+ assertEquals("Reconciliation", awareService.getName());
+ assertEquals("Bank Reconciliation Service", awareService.getDescription());
+ }
+}
Modified: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/listeners/config/GeneratorUnitTest.java
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/listeners/config/GeneratorUnitTest.java 2009-01-21 14:47:17 UTC (rev 24849)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/listeners/config/GeneratorUnitTest.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -23,20 +23,14 @@
import junit.framework.TestCase;
import org.apache.log4j.Logger;
+import org.apache.xalan.xsltc.compiler.util.TestGenerator;
import org.jboss.internal.soa.esb.util.StreamUtils;
import org.jboss.soa.esb.ConfigurationException;
-import org.jboss.soa.esb.listeners.config.Generator.XMLBeansModel;
-import org.jboss.soa.esb.listeners.config.xbeanmodel.JmsBusDocument.JmsBus;
-import org.jboss.soa.esb.listeners.config.xbeanmodel.JmsListenerDocument.JmsListener;
-import org.jboss.soa.esb.listeners.config.xbeanmodel.JmsMessageFilterDocument.JmsMessageFilter;
-import org.jboss.soa.esb.listeners.config.xbeanmodel.JmsProviderType;
-import org.jboss.soa.esb.listeners.config.xbeanmodel.Listener;
-import org.jboss.soa.esb.listeners.config.xbeanmodel.ServiceDocument.Service;
+import org.jboss.soa.esb.common.Environment;
import org.jboss.soa.esb.testutils.FileUtil;
import java.io.File;
import java.io.IOException;
-import java.util.List;
/**
* Generator unit tests.
@@ -59,20 +53,40 @@
}
}
- public void test_generate_badagrs() throws ConfigurationException, IOException {
- test_generate_badargs(null, "null 'outdir' arg in method call");
- test_generate_badargs(new File("build.xml"), "'outdir' exists, but is not a directory");
+ public void test_generate_badargs() throws ConfigurationException, IOException {
+ test_generate_badargs(null, "null 'outdir' arg in method call", "jbossesb_config_01.xml");
+ test_generate_badargs(new File("build.xml"), "'outdir' exists, but is not a directory", "jbossesb_config_01.xml");
}
+ public void test_generate_badargs_110() throws ConfigurationException, IOException {
+ test_generate_badargs(null, "null 'outdir' arg in method call", "jbossesb_config_01.110.xml");
+ test_generate_badargs(new File("build.xml"), "'outdir' exists, but is not a directory", "jbossesb_config_01.110.xml");
+ }
+
public void test_generate_files() throws ConfigurationException, IOException {
+ System.setProperty("jboss.esb.invm.scope.default", "NONE");
test_generate_files("jbossesb_config_01.xml");
test_generate_files("jbossesb_config_02.xml");
}
+ public void test_generate_files110() throws ConfigurationException, IOException {
+ System.setProperty("jboss.esb.invm.scope.default", "NONE");
+ test_generate_files110("jbossesb_config_01.110.xml");
+ test_generate_files110("jbossesb_config_02.110.xml");
+ }
+
public void test_generate_files(String filename) throws ConfigurationException, IOException {
+ test_generate_files(filename, "jbossesb_config_01_gateways.xml", "jbossesb_config_01_esbaware.xml");
+ }
+
+ public void test_generate_files110(String filename) throws ConfigurationException, IOException {
+ test_generate_files(filename, "jbossesb_config_110_gateways.xml", "jbossesb_config_110_esbaware.xml");
+ }
+
+ public void test_generate_files(String filename, String esbGatewayConfig, String esbAwareConfig) throws ConfigurationException, IOException {
Generator generator = new Generator(getClass().getResourceAsStream(filename));
- String expectedGatewayConfig = new String(StreamUtils.readStream(getClass().getResourceAsStream("jbossesb_config_01_gateways.xml"))).trim();
- String expectedESBAwareConfig = new String(StreamUtils.readStream(getClass().getResourceAsStream("jbossesb_config_01_esbaware.xml"))).trim();
+ String expectedGatewayConfig = new String(StreamUtils.readStream(getClass().getResourceAsStream(esbGatewayConfig))).trim();
+ String expectedESBAwareConfig = new String(StreamUtils.readStream(getClass().getResourceAsStream(esbAwareConfig))).trim();
String actualGatewayConfig;
String actualESBAwareConfig;
@@ -97,6 +111,7 @@
log.debug("Strings identical=" + isIndentical);
assertEquals(expectedESBAwareConfig, actualESBAwareConfig);
}
+
public void test_bad_base_listener_busref() throws ConfigurationException, IOException {
Generator generator = new Generator(getClass().getResourceAsStream("jbossesb_config_03.xml"));
@@ -111,6 +126,19 @@
}
}
+ public void test_bad_base_listener_busref_110() throws ConfigurationException, IOException {
+ Generator generator = new Generator(getClass().getResourceAsStream("jbossesb_config_03.110.xml"));
+
+ try {
+ generator.generate(outdir);
+ fail("Expected ConfigurationException");
+ } catch(ConfigurationException e) {
+ if(!e.getMessage().equals("The base Listener config [JMS-ESBListener] must reference a base Bus config type (<bus>).")) {
+ fail("Wrong exception");
+ }
+ }
+ }
+
public static String removeEOL(String string) {
StringBuffer stringBuf = new StringBuffer(string.length());
@@ -125,58 +153,9 @@
return stringBuf.toString();
}
- public void test_model() throws ConfigurationException, IOException {
- Generator generator = new Generator(getClass().getResourceAsStream("jbossesb_config_01.xml"));
- XMLBeansModel model = generator.getModel();
+ private void test_generate_badargs(File outdir, String expectedMessage, final String config) throws ConfigurationException, IOException {
+ Generator generator = new Generator(getClass().getResourceAsStream(config));
- JmsBus bus = (JmsBus)model.getBus("server1-jms");
- JmsProviderType provider = (JmsProviderType) model.getProvider(bus);
- assertEquals("server1-jms", bus.getBusid());
- assertEquals("com.xyz.provider.XYZConnectionFactory", provider.getConnectionFactory());
- assertEquals("com.xyz.provider.NamingContextFactory", provider.getJndiContextFactory());
- assertEquals("xyz://server1:9876", provider.getJndiURL());
- assertEquals("com.xyz", provider.getJndiPkgPrefix());
- JmsMessageFilter busDestination = bus.getJmsMessageFilter();
- assertEquals("queue/A", busDestination.getDestName());
- assertEquals(JmsMessageFilter.DestType.QUEUE, busDestination.getDestType());
- assertEquals("service='Reconciliation'", busDestination.getSelector());
-
- List<Listener> gateways = model.getGatewayListeners();
- assertEquals(2, gateways.size());
- JmsListener gatewayListener = (JmsListener)gateways.get(0);
- assertEquals("Bank-JMS-Gateway", gatewayListener.getName());
- assertEquals("server1-jms", gatewayListener.getBusidref());
- assertTrue(gatewayListener.getIsGateway());
- assertEquals(1, gatewayListener.getMaxThreads());
-
- List<Listener> awareListeners = model.getESBAwareListeners();
- assertEquals(4, awareListeners.size());
- JmsListener awareListener = (JmsListener)awareListeners.get(0);
- assertEquals("Bank-Listener", awareListener.getName());
- assertEquals("local-jms", awareListener.getBusidref());
- assertTrue(!awareListener.getIsGateway());
- assertEquals(2, awareListener.getMaxThreads());
- JmsMessageFilter listenerDestination = awareListener.getJmsMessageFilter();
- assertEquals("queue/B", listenerDestination.getDestName());
- assertEquals(JmsMessageFilter.DestType.TOPIC, listenerDestination.getDestType());
- assertEquals("service='Reconciliation'", listenerDestination.getSelector());
-
- Listener untypedAwareListener = awareListeners.get(1);
- assertEquals("Bank-Listener-Generic", untypedAwareListener.getName());
- assertEquals("my-generic-bus", untypedAwareListener.getBusidref());
- assertTrue(!untypedAwareListener.getIsGateway());
-
- Service gatewayService = model.getService(gatewayListener);
- Service awareService = model.getService(awareListener);
- assertSame(gatewayService, awareService);
- assertEquals("Bank", awareService.getCategory());
- assertEquals("Reconciliation", awareService.getName());
- assertEquals("Bank Reconciliation Service", awareService.getDescription());
- }
-
- private void test_generate_badargs(File outdir, String expectedMessage) throws ConfigurationException, IOException {
- Generator generator = new Generator(getClass().getResourceAsStream("jbossesb_config_01.xml"));
-
try {
generator.generate(outdir);
fail("Expected IllegalArgumentException.");
@@ -187,7 +166,7 @@
}
}
}
-
+
/* (non-Javadoc)
* @see junit.framework.TestCase#tearDown()
*/
Copied: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/listeners/config/JBESB_1993_UnitTest.java (from rev 24846, labs/jbossesb/trunk/product/rosetta/tests/src/org/jboss/soa/esb/listeners/config/JBESB_1993_UnitTest.java)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/listeners/config/JBESB_1993_UnitTest.java (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/listeners/config/JBESB_1993_UnitTest.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -0,0 +1,67 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and others contributors as indicated
+ * by the @authors tag. All rights reserved.
+ * See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License, v. 2.1.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+ * PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
+ * You should have received a copy of the GNU Lesser General Public License,
+ * v.2.1 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301, USA.
+ *
+ * (C) 2005-2006, JBoss Inc.
+ */
+package org.jboss.soa.esb.listeners.config;
+
+import java.io.ByteArrayOutputStream;
+import java.io.InputStream;
+
+import org.jboss.soa.esb.ConfigurationException;
+
+import junit.framework.TestCase;
+
+/**
+ * Test for bug http://jira.jboss.com/jira/browse/JBESB-1993.
+ *
+ * @author <a href="mailto:Kevin.Conner at jboss.com">Kevin Conner</a>
+ */
+public class JBESB_1993_UnitTest extends TestCase
+{
+ public void testActionNames()
+ throws Exception
+ {
+ runTest("JBESB_1993_action.xml", "Tried to register a duplicate action name.") ;
+ }
+
+ public void testServiceNames()
+ throws Exception
+ {
+ runTest("JBESB_1993_service.xml", "Service names must be unique within a category.") ;
+ }
+
+ private void runTest(final String resource, final String expected)
+ throws Exception
+ {
+ final InputStream resourceIs = getClass().getResourceAsStream(resource) ;
+ final ByteArrayOutputStream listenerBAOS = new ByteArrayOutputStream() ;
+ final ByteArrayOutputStream gatewayBAOS = new ByteArrayOutputStream() ;
+ final Generator generator = new Generator(resourceIs, listenerBAOS, gatewayBAOS) ;
+ try
+ {
+ generator.generate();
+ }
+ catch (final ConfigurationException ce)
+ {
+ if (!ce.getMessage().startsWith(expected))
+ {
+ throw ce ;
+ }
+ }
+ }
+}
Copied: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/listeners/config/JBESB_1993_action.xml (from rev 24846, labs/jbossesb/trunk/product/rosetta/tests/src/org/jboss/soa/esb/listeners/config/JBESB_1993_action.xml)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/listeners/config/JBESB_1993_action.xml (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/listeners/config/JBESB_1993_action.xml 2009-01-21 15:38:08 UTC (rev 24850)
@@ -0,0 +1,22 @@
+<?xml version = "1.0" encoding = "UTF-8"?>
+<jbossesb xmlns="http://anonsvn.labs.jboss.com/labs/jbossesb/trunk/product/etc/schemas/xml/jbossesb-1.0.1.xsd">
+ <providers>
+ <jms-provider name="jms" connection-factory="ConnectionFactory">
+ <jms-bus busid="testBus">
+ <jms-message-filter dest-type="QUEUE" dest-name="XXX"/>
+ </jms-bus>
+ </jms-provider>
+ </providers>
+
+ <services>
+ <service category="TestESB" name="TestService" description="Test Service">
+ <listeners>
+ <jms-listener name="testListener" busidref="testBus"/>
+ </listeners>
+ <actions>
+ <action name="testAction" class="org.jboss.soa.esb.actions.SystemPrintln"/>
+ <action name="testAction" class="org.jboss.soa.esb.actions.SystemPrintln"/>
+ </actions>
+ </service>
+ </services>
+</jbossesb>
Copied: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/listeners/config/JBESB_1993_service.xml (from rev 24846, labs/jbossesb/trunk/product/rosetta/tests/src/org/jboss/soa/esb/listeners/config/JBESB_1993_service.xml)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/listeners/config/JBESB_1993_service.xml (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/listeners/config/JBESB_1993_service.xml 2009-01-21 15:38:08 UTC (rev 24850)
@@ -0,0 +1,29 @@
+<?xml version = "1.0" encoding = "UTF-8"?>
+<jbossesb xmlns="http://anonsvn.labs.jboss.com/labs/jbossesb/trunk/product/etc/schemas/xml/jbossesb-1.0.1.xsd">
+ <providers>
+ <jms-provider name="jms" connection-factory="ConnectionFactory">
+ <jms-bus busid="testBus">
+ <jms-message-filter dest-type="QUEUE" dest-name="XXX"/>
+ </jms-bus>
+ </jms-provider>
+ </providers>
+
+ <services>
+ <service category="TestESB" name="TestService" description="Test Service">
+ <listeners>
+ <jms-listener name="testListener" busidref="testBus"/>
+ </listeners>
+ <actions>
+ <action name="testAction" class="org.jboss.soa.esb.actions.SystemPrintln"/>
+ </actions>
+ </service>
+ <service category="TestESB" name="TestService" description="Test Service">
+ <listeners>
+ <jms-listener name="testListener" busidref="testBus"/>
+ </listeners>
+ <actions>
+ <action name="testAction" class="org.jboss.soa.esb.actions.SystemPrintln"/>
+ </actions>
+ </service>
+ </services>
+</jbossesb>
Modified: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/listeners/config/MockContractPublisher.java
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/listeners/config/MockContractPublisher.java 2009-01-21 14:47:17 UTC (rev 24849)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/listeners/config/MockContractPublisher.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -3,7 +3,6 @@
import org.jboss.internal.soa.esb.publish.ActionContractPublisher;
import org.jboss.internal.soa.esb.publish.ContractInfo;
import org.jboss.soa.esb.ConfigurationException;
-import org.jboss.soa.esb.listeners.config.xbeanmodel.ActionDocument;
import org.jboss.soa.esb.addressing.EPR;
/**
@@ -12,7 +11,7 @@
public class MockContractPublisher implements ActionContractPublisher {
public static ContractInfo contractInfo;
- public void setActionConfig(ActionDocument.Action actionConfig) throws ConfigurationException {
+ public void setActionConfig(Action actionConfig) throws ConfigurationException {
}
public ContractInfo getContractInfo(EPR epr) {
Modified: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/listeners/config/ServicePublisherUnitTest.java
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/listeners/config/ServicePublisherUnitTest.java 2009-01-21 14:47:17 UTC (rev 24849)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/listeners/config/ServicePublisherUnitTest.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -1,11 +1,15 @@
package org.jboss.soa.esb.listeners.config;
import java.io.IOException;
+import java.util.Arrays;
import java.util.List;
import junit.framework.TestCase;
+import org.jboss.internal.soa.esb.publish.ContractReferencePublisher;
+import org.jboss.internal.soa.esb.webservice.ESBServiceContractPublisher;
import org.jboss.soa.esb.ConfigurationException;
+import org.jboss.soa.esb.Service;
import org.jboss.soa.esb.listeners.lifecycle.ManagedLifecycleController;
/**
@@ -13,13 +17,15 @@
*/
public class ServicePublisherUnitTest extends TestCase {
- public void test() throws ConfigurationException, IOException {
+ public void test_101() throws ConfigurationException, IOException {
Generator generator;
- ManagedLifecycleController controller1 = new ManagedLifecycleController(null); // TODO: Introduce an interface and Mock for ManagedLifecycleController
- ManagedLifecycleController controller2 = new ManagedLifecycleController(null); // TODO: Introduce an interface and Mock for ManagedLifecycleController
+ ManagedLifecycleController controller1 = new ManagedLifecycleController(null);
+ ManagedLifecycleController controller2 = new ManagedLifecycleController(null);
+ assertEquals("Service count", 0, ServicePublisher.getServices().size());
+
generator = new Generator(getClass().getResourceAsStream("jbossesb_config_04.xml"));
- ServicePublisher.addServicePublishers(controller1, generator.getModel());
+ ServicePublisher.addServicePublishers(controller1, generator.getModel().getServicePublishers());
List<ServicePublisher> publishers = ServicePublisher.getServicePublishers();
assertEquals(2, publishers.size());
assertEquals("A1", publishers.get(0).getCategory() + publishers.get(0).getServiceName());
@@ -27,8 +33,10 @@
assertEquals("B2", publishers.get(1).getCategory() + publishers.get(1).getServiceName());
assertEquals(null, publishers.get(1).getContractPublisher());
+ assertEquals("Service count", 2, ServicePublisher.getServices().size());
+
generator = new Generator(getClass().getResourceAsStream("jbossesb_config_05.xml"));
- ServicePublisher.addServicePublishers(controller2, generator.getModel());
+ ServicePublisher.addServicePublishers(controller2, generator.getModel().getServicePublishers());
publishers = ServicePublisher.getServicePublishers();
assertEquals(4, publishers.size());
assertEquals("A1", publishers.get(0).getCategory() + publishers.get(0).getServiceName());
@@ -39,13 +47,101 @@
assertEquals(null, publishers.get(2).getContractPublisher());
assertEquals("D4", publishers.get(3).getCategory() + publishers.get(3).getServiceName());
assertTrue(publishers.get(3).getContractPublisher() instanceof MockContractPublisher);
+
+ assertEquals("A1", 1, ServicePublisher.getServicePublishers(new Service("A", "1")).size()) ;
+ assertEquals("B2", 1, ServicePublisher.getServicePublishers(new Service("B", "2")).size()) ;
+ assertEquals("C3", 1, ServicePublisher.getServicePublishers(new Service("C", "3")).size()) ;
+ assertEquals("D4", 1, ServicePublisher.getServicePublishers(new Service("D", "4")).size()) ;
+
+ assertEquals("Service count", 4, ServicePublisher.getServices().size());
+ final ESBServiceContractPublisher publisher = new ESBServiceContractPublisher(new Service("C", "3"), "test", "endpoint") ;
+ ServicePublisher.addContractReferencePublishers(controller2, Arrays.asList(publisher)) ;
+ assertEquals("C3", 2, ServicePublisher.getServicePublishers(new Service("C", "3")).size()) ;
+
+ assertEquals("Service count", 4, ServicePublisher.getServices().size());
+
ServicePublisher.removeServicePublishers(controller1);
publishers = ServicePublisher.getServicePublishers();
+ assertEquals(3, publishers.size());
+ assertEquals("C3", publishers.get(0).getCategory() + publishers.get(0).getServiceName());
+ assertEquals(null, publishers.get(0).getContractPublisher());
+ assertEquals("C3", publishers.get(1).getCategory() + publishers.get(1).getServiceName());
+ assertTrue("ContractReferencePublisher", publishers.get(1).getPublisher() instanceof ContractReferencePublisher);
+ assertEquals("D4", publishers.get(2).getCategory() + publishers.get(2).getServiceName());
+ assertTrue(publishers.get(2).getContractPublisher() instanceof MockContractPublisher);
+
+ assertEquals("Service count", 2, ServicePublisher.getServices().size());
+
+ assertEquals("A1", 0, ServicePublisher.getServicePublishers(new Service("A", "1")).size()) ;
+ assertEquals("B2", 0, ServicePublisher.getServicePublishers(new Service("B", "2")).size()) ;
+ assertEquals("C3", 2, ServicePublisher.getServicePublishers(new Service("C", "3")).size()) ;
+ assertEquals("D4", 1, ServicePublisher.getServicePublishers(new Service("D", "4")).size()) ;
+
+ ServicePublisher.removeServicePublishers(controller2) ;
+ }
+
+ public void test_110() throws ConfigurationException, IOException {
+ Generator generator;
+ ManagedLifecycleController controller1 = new ManagedLifecycleController(null);
+ ManagedLifecycleController controller2 = new ManagedLifecycleController(null);
+
+ assertEquals("Service count", 0, ServicePublisher.getServices().size());
+
+ generator = new Generator(getClass().getResourceAsStream("jbossesb_config_04.110.xml"));
+ ServicePublisher.addServicePublishers(controller1, generator.getModel().getServicePublishers());
+ List<ServicePublisher> publishers = ServicePublisher.getServicePublishers();
assertEquals(2, publishers.size());
+ assertEquals("A1", publishers.get(0).getCategory() + publishers.get(0).getServiceName());
+ assertEquals(null, publishers.get(0).getContractPublisher());
+ assertEquals("B2", publishers.get(1).getCategory() + publishers.get(1).getServiceName());
+ assertEquals(null, publishers.get(1).getContractPublisher());
+
+ assertEquals("Service count", 2, ServicePublisher.getServices().size());
+
+ generator = new Generator(getClass().getResourceAsStream("jbossesb_config_05.110.xml"));
+ ServicePublisher.addServicePublishers(controller2, generator.getModel().getServicePublishers());
+ publishers = ServicePublisher.getServicePublishers();
+ assertEquals(4, publishers.size());
+ assertEquals("A1", publishers.get(0).getCategory() + publishers.get(0).getServiceName());
+ assertEquals(null, publishers.get(0).getContractPublisher());
+ assertEquals("B2", publishers.get(1).getCategory() + publishers.get(1).getServiceName());
+ assertEquals(null, publishers.get(1).getContractPublisher());
+ assertEquals("C3", publishers.get(2).getCategory() + publishers.get(2).getServiceName());
+ assertEquals(null, publishers.get(2).getContractPublisher());
+ assertEquals("D4", publishers.get(3).getCategory() + publishers.get(3).getServiceName());
+ assertTrue(publishers.get(3).getContractPublisher() instanceof MockContractPublisher);
+
+ assertEquals("A1", 1, ServicePublisher.getServicePublishers(new Service("A", "1")).size()) ;
+ assertEquals("B2", 1, ServicePublisher.getServicePublishers(new Service("B", "2")).size()) ;
+ assertEquals("C3", 1, ServicePublisher.getServicePublishers(new Service("C", "3")).size()) ;
+ assertEquals("D4", 1, ServicePublisher.getServicePublishers(new Service("D", "4")).size()) ;
+
+ assertEquals("Service count", 4, ServicePublisher.getServices().size());
+
+ final ESBServiceContractPublisher publisher = new ESBServiceContractPublisher(new Service("C", "3"), "test", "endpoint") ;
+ ServicePublisher.addContractReferencePublishers(controller2, Arrays.asList(publisher)) ;
+ assertEquals("C3", 2, ServicePublisher.getServicePublishers(new Service("C", "3")).size()) ;
+
+ assertEquals("Service count", 4, ServicePublisher.getServices().size());
+
+ ServicePublisher.removeServicePublishers(controller1);
+ publishers = ServicePublisher.getServicePublishers();
+ assertEquals(3, publishers.size());
assertEquals("C3", publishers.get(0).getCategory() + publishers.get(0).getServiceName());
assertEquals(null, publishers.get(0).getContractPublisher());
- assertEquals("D4", publishers.get(1).getCategory() + publishers.get(1).getServiceName());
- assertTrue(publishers.get(1).getContractPublisher() instanceof MockContractPublisher);
+ assertEquals("C3", publishers.get(1).getCategory() + publishers.get(1).getServiceName());
+ assertTrue("ContractReferencePublisher", publishers.get(1).getPublisher() instanceof ContractReferencePublisher);
+ assertEquals("D4", publishers.get(2).getCategory() + publishers.get(2).getServiceName());
+ assertTrue(publishers.get(2).getContractPublisher() instanceof MockContractPublisher);
+
+ assertEquals("Service count", 2, ServicePublisher.getServices().size());
+
+ assertEquals("A1", 0, ServicePublisher.getServicePublishers(new Service("A", "1")).size()) ;
+ assertEquals("B2", 0, ServicePublisher.getServicePublishers(new Service("B", "2")).size()) ;
+ assertEquals("C3", 2, ServicePublisher.getServicePublishers(new Service("C", "3")).size()) ;
+ assertEquals("D4", 1, ServicePublisher.getServicePublishers(new Service("D", "4")).size()) ;
+
+ ServicePublisher.removeServicePublishers(controller2) ;
}
}
Copied: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/listeners/config/jbossesb_config_01.110.xml (from rev 24846, labs/jbossesb/trunk/product/rosetta/tests/src/org/jboss/soa/esb/listeners/config/jbossesb_config_01.110.xml)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/listeners/config/jbossesb_config_01.110.xml (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/listeners/config/jbossesb_config_01.110.xml 2009-01-21 15:38:08 UTC (rev 24850)
@@ -0,0 +1,113 @@
+<?xml version = "1.0" encoding = "UTF-8"?>
+<jbossesb xmlns="http://anonsvn.labs.jboss.com/labs/jbossesb/trunk/product/etc/schemas/xml/jbossesb-1.1.0.xsd">
+
+ <providers>
+ <jms-provider name="JBossMQ" connection-factory="ConnectionFactory" jndi-URL="jnp://localhost:1099">
+ <jms-bus busid="local-jms" />
+ </jms-provider>
+
+ <jms-provider name="JBossMessaging" connection-factory="com.xyz.provider.XYZConnectionFactory"
+ jndi-context-factory="com.xyz.provider.NamingContextFactory"
+ jndi-URL="xyz://server1:9876"
+ jndi-pkg-prefix="com.xyz">
+ <jms-bus busid="server1-jms">
+ <jms-message-filter dest-type="QUEUE" dest-name="queue/A" selector="service='Reconciliation'" />
+ </jms-bus>
+ </jms-provider>
+
+ <ftp-provider name="FTP" hostname="localhost:21">
+ <ftp-bus busid="Ftp-ServerTest">
+ <ftp-message-filter directory="/Temp" input-suffix=".txt" username="joe" password="secret" post-rename="true"/>
+ </ftp-bus>
+ </ftp-provider>
+
+ <sql-provider name="HSQLDB" url="jdbc:postgresql://myhost:5432/testDB" driver="org.postgresql.Driver" username="joe" password="secret">
+ <sql-bus busid="SQL-Test">
+ <sql-message-filter tablename="testtable" message-id-column="message_id" message-column="message" status-column="status" insert-timestamp-column="insert_timestamp"/>
+ </sql-bus>
+ </sql-provider>
+
+ <jbr-provider name="JBR" host="192.168.1.111" protocol="http">
+ <jbr-bus busid="HTTP-1" port="8765" />
+ <jbr-bus busid="HTTP-2" port="8766" />
+ </jbr-provider>
+
+ <bus-provider name="JBossAS">
+ <property name="my-generic-provider" value="my-generic-provider#someattribvalue" />
+
+ <bus busid="my-generic-bus">
+ <property name="my-generic-bus" value="my-generic-bus#someattribvalue" />
+ </bus>
+ </bus-provider>
+
+
+
+ </providers>
+ <services>
+ <service category="Bank" name="Reconciliation" description="Bank Reconciliation Service">
+
+ <listeners>
+ <jms-listener name="Bank-JMS-Gateway"
+ busidref="server1-jms"
+ maxThreads="1"
+ is-gateway="true"/>
+ <jbr-listener name="Bank-HTTP-Gateway"
+ busidref="HTTP-1"
+ maxThreads="1"
+ is-gateway="true"/>
+ <jms-listener name="Bank-Listener"
+ busidref="local-jms"
+ maxThreads="2">
+ <jms-message-filter dest-type="TOPIC" dest-name="queue/B" selector="service='Reconciliation'" />
+ </jms-listener>
+ <listener name="Bank-Listener-Generic"
+ busidref="my-generic-bus"
+ maxThreads="2">
+ <property name="my-generic-listener" value="my-generic-listener#someattribvalue" />
+ </listener>
+ </listeners>
+
+ <actions>
+ <action name="TestDefaultRouteAction" class="org.jboss.soa.esb.actions.ContentBasedRouter">
+ <property name="propName" value="propValue" />
+ <property name="propName">
+ This is some complex..
+ <!-- property -->
+ value.
+ <xxxx>
+ boooo
+ <yyyy/>
+ </xxxx>
+ <![CDATA[ Some CDATA data...]]>
+ </property>
+ </action>
+ </actions>
+
+ </service>
+ <service category="Test2" name="FTPTest" description="FTP server Test">
+
+ <listeners>
+ <ftp-listener name="test-ftp-listener"
+ busidref="Ftp-ServerTest"
+ maxThreads="1"/>
+ </listeners>
+ <actions mep="OneWay">
+ <action name="TestFtpRouteAction" class="org.jboss.soa.esb.actions.ContentBasedRouter"/>
+ </actions>
+
+ </service>
+ <service category="Test3" name="SQLTest" description="SQL server Test">
+
+ <listeners>
+ <sql-listener name="test-sql-listener"
+ busidref="SQL-Test"
+ maxThreads="1"/>
+ </listeners>
+ <actions mep="RequestResponse">
+ <action name="TestSqlRouteAction" class="org.jboss.soa.esb.actions.ContentBasedRouter"/>
+ </actions>
+
+ </service>
+ </services>
+
+</jbossesb>
Copied: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/listeners/config/jbossesb_config_02.110.xml (from rev 24846, labs/jbossesb/trunk/product/rosetta/tests/src/org/jboss/soa/esb/listeners/config/jbossesb_config_02.110.xml)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/listeners/config/jbossesb_config_02.110.xml (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/listeners/config/jbossesb_config_02.110.xml 2009-01-21 15:38:08 UTC (rev 24850)
@@ -0,0 +1,164 @@
+<?xml version = "1.0" encoding = "UTF-8"?>
+<jbossesb xmlns="http://anonsvn.labs.jboss.com/labs/jbossesb/trunk/product/etc/schemas/xml/jbossesb-1.1.0.xsd">
+
+ <providers>
+ <bus-provider name="JBossMQ">
+ <property name="connection-factory" value="ConnectionFactory" />
+ <property name="jndi-URL" value="jnp://localhost:1099" />
+ <property name="protocol" value="jms" />
+
+ <bus busid="local-jms">
+ <property name="destination-type" value="topic" />
+ <property name="destination-name" value="queue/B" />
+ <property name="message-selector" value="service='Reconciliation'"/>
+ <property name="persistent" value="true" />
+ <property name="acknowledge-mode" value="AUTO_ACKNOWLEDGE" />
+ <property name="transacted" value="false" />
+ </bus>
+ </bus-provider>
+
+ <bus-provider name="JBossMessaging">
+ <property name="connection-factory" value="com.xyz.provider.XYZConnectionFactory" />
+ <property name="jndi-context-factory" value="com.xyz.provider.NamingContextFactory" />
+ <property name="jndi-URL" value="xyz://server1:9876" />
+ <property name="jndi-pkg-prefix" value="com.xyz" />
+ <property name="protocol" value="jms" />
+
+ <bus busid="server1-jms">
+ <property name="destination-type" value="queue" />
+ <property name="destination-name" value="queue/A" />
+ <property name="message-selector" value="service='Reconciliation'" />
+ <property name="persistent" value="true" />
+ <property name="acknowledge-mode" value="AUTO_ACKNOWLEDGE" />
+ <property name="transacted" value="false" />
+ </bus>
+ </bus-provider>
+
+ <bus-provider name="FTP">
+ <property name="URL" value="ftp://joe:secret@localhost:21/Temp" />
+
+ <bus busid="Ftp-ServerTest">
+ <property name="inputSuffix" value=".txt" />
+ <property name="errorDelete" value="true" />
+ <property name="postDelete" value="true" />
+ <property name="postRename" value="true" />
+ <property name="passive" value="false" />
+ <property name="workSuffix" value=".esbInProcess" />
+ </bus>
+ </bus-provider>
+
+ <bus-provider name="HSQLDB">
+ <property name="URL" value="jdbc:postgresql://myhost:5432/testDB" />
+ <property name="driver" value="org.postgresql.Driver" />
+ <property name="username" value="joe" />
+ <property name="password" value="secret" />
+
+ <bus busid="SQL-Test">
+ <property name="tablename" value="testtable" />
+
+ <property name="tablename" value="testtable" />
+ <property name="message_column" value="message" />
+ <property name="message_id_column" value="message_id" />
+ <property name="status_column" value="status" />
+ <property name="errorDelete" value="true" />
+ <property name="insert_timestamp_column" value="insert_timestamp" />
+ <property name="postDelete" value="true" />
+ </bus>
+ </bus-provider>
+
+ <bus-provider name="JBR">
+ <property name="jbr-serverBindAddress" value="192.168.1.111" />
+ <property name="jbr-serverProtocol" value="http" />
+
+ <bus busid="HTTP-1">
+ <property name="jbr-serverBindPort" value="8765" />
+ </bus>
+ <bus busid="HTTP-2">
+ <property name="jbr-serverBindPort" value="8766" />
+ </bus>
+ </bus-provider>
+
+ <bus-provider name="JBossAS">
+ <property name="my-generic-provider" value="my-generic-provider#someattribvalue" />
+
+ <bus busid="my-generic-bus">
+ <property name="my-generic-bus" value="my-generic-bus#someattribvalue" />
+ </bus>
+ </bus-provider>
+
+ </providers>
+ <services>
+ <service category="Bank" name="Reconciliation" description="Bank Reconciliation Service">
+
+ <listeners>
+ <listener name="Bank-JMS-Gateway"
+ busidref="server1-jms"
+ maxThreads="1"
+ is-gateway="true">
+ <property name="gatewayClass" value="org.jboss.soa.esb.listeners.gateway.JmsGatewayListener" />
+ </listener>
+ <listener name="Bank-HTTP-Gateway"
+ busidref="HTTP-1"
+ maxThreads="1"
+ is-gateway="true">
+ <property name="gatewayClass" value="org.jboss.soa.esb.listeners.gateway.JBossRemotingGatewayListener" />
+ </listener>
+ <listener name="Bank-Listener"
+ busidref="local-jms"
+ maxThreads="2">
+ </listener>
+ <listener name="Bank-Listener-Generic"
+ busidref="my-generic-bus"
+ maxThreads="2">
+ <property name="my-generic-listener" value="my-generic-listener#someattribvalue" />
+ </listener>
+ </listeners>
+
+ <actions>
+ <action name="TestDefaultRouteAction" class="org.jboss.soa.esb.actions.ContentBasedRouter">
+ <property name="propName" value="propValue" />
+ <property name="propName">
+ This is some complex..
+ <!-- property -->
+ value.
+ <xxxx>
+ boooo
+ <yyyy/>
+ </xxxx>
+ <![CDATA[ Some CDATA data...]]>
+ </property>
+ </action>
+ </actions>
+
+ </service>
+ <service category="Test2" name="FTPTest" description="FTP server Test">
+
+ <listeners>
+ <listener name="test-ftp-listener"
+ busidref="Ftp-ServerTest"
+ maxThreads="1">
+ <property name="schedule-frequency" value="10" />
+ </listener>
+ </listeners>
+ <actions mep="OneWay">
+ <action name="TestFtpRouteAction" class="org.jboss.soa.esb.actions.ContentBasedRouter"/>
+ </actions>
+
+ </service>
+ <service category="Test3" name="SQLTest" description="SQL server Test">
+
+ <listeners>
+ <listener name="test-sql-listener"
+ busidref="SQL-Test"
+ maxThreads="1">
+ <property name="pollLatencySeconds" value="10" />
+ </listener>
+ </listeners>
+ <actions mep="RequestResponse">
+ <action name="TestSqlRouteAction" class="org.jboss.soa.esb.actions.ContentBasedRouter"/>
+ </actions>
+
+ </service>
+ </services>
+
+</jbossesb>
Copied: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/listeners/config/jbossesb_config_03.110.xml (from rev 24846, labs/jbossesb/trunk/product/rosetta/tests/src/org/jboss/soa/esb/listeners/config/jbossesb_config_03.110.xml)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/listeners/config/jbossesb_config_03.110.xml (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/listeners/config/jbossesb_config_03.110.xml 2009-01-21 15:38:08 UTC (rev 24850)
@@ -0,0 +1,43 @@
+<?xml version = "1.0" encoding = "UTF-8"?>
+<jbossesb xmlns="http://anonsvn.labs.jboss.com/labs/jbossesb/trunk/product/etc/schemas/xml/jbossesb-1.1.0.xsd" >
+
+ <!--
+ This is a bad configuration. The listener below is of the base listener type, yet it references a non-base type bus (jms-bus).
+ Should generate an error.
+ -->
+
+ <providers>
+ <jms-provider name="JBossMQ" connection-factory="ConnectionFactory"
+ jndi-context-factory="org.jnp.interfaces.NamingContextFactory "
+ jndi-URL="localhost" >
+
+ <jms-bus busid="quickstartEsbChannel">
+ <jms-message-filter
+ dest-type="QUEUE"
+ dest-name="queue/B"
+ />
+ </jms-bus>
+
+ </jms-provider>
+ </providers>
+
+ <services>
+
+ <service category="HelloWorld_ActionESB" name="SimpleListener" description="Hello World">
+ <listeners>
+ <listener name="JMS-ESBListener"
+ busidref="quickstartEsbChannel"
+ maxThreads="1"
+ />
+ </listeners>
+ <actions>
+ <action name="displayAction"
+ class="org.jboss.soa.esb.samples.quickstart.helloworldaction.MyJMSListenerAction"
+ process="displayMessage">
+ <property name="exceptionMethod" value="exceptionHandler"/>
+ </action>
+ </actions>
+ </service>
+ </services>
+
+</jbossesb>
Copied: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/listeners/config/jbossesb_config_04.110.xml (from rev 24846, labs/jbossesb/trunk/product/rosetta/tests/src/org/jboss/soa/esb/listeners/config/jbossesb_config_04.110.xml)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/listeners/config/jbossesb_config_04.110.xml (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/listeners/config/jbossesb_config_04.110.xml 2009-01-21 15:38:08 UTC (rev 24850)
@@ -0,0 +1,47 @@
+<?xml version = "1.0" encoding = "UTF-8"?>
+<jbossesb xmlns="http://anonsvn.labs.jboss.com/labs/jbossesb/trunk/product/etc/schemas/xml/jbossesb-1.1.0.xsd">
+
+ <providers>
+
+ <jbr-provider name="JBR" host="192.168.1.111" protocol="http">
+ <jbr-bus busid="HTTP-1" port="8765" />
+ <jbr-bus busid="HTTP-2" port="8766" />
+ </jbr-provider>
+
+ </providers>
+ <services>
+
+ <service category="A" name="1" description="A1">
+ <listeners>
+ <jbr-listener name="A1-HTTP"
+ busidref="HTTP-1"
+ maxThreads="1"
+ is-gateway="true"/>
+ <jbr-listener name="A2-HTTP"
+ busidref="HTTP-2"
+ maxThreads="1" />
+ </listeners>
+
+ <actions>
+ <action name="a1" class="org.jboss.soa.esb.actions.converters.ByteArrayToString" />
+ </actions>
+ </service>
+ <service category="B" name="2" description="A1">
+ <listeners>
+ <jbr-listener name="A1-HTTP"
+ busidref="HTTP-1"
+ maxThreads="1"
+ is-gateway="true"/>
+ <jbr-listener name="A2-HTTP"
+ busidref="HTTP-2"
+ maxThreads="1" />
+ </listeners>
+
+ <actions>
+ <action name="a1" class="org.jboss.soa.esb.actions.converters.ByteArrayToString" />
+ </actions>
+ </service>
+
+ </services>
+
+</jbossesb>
Copied: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/listeners/config/jbossesb_config_05.110.xml (from rev 24846, labs/jbossesb/trunk/product/rosetta/tests/src/org/jboss/soa/esb/listeners/config/jbossesb_config_05.110.xml)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/listeners/config/jbossesb_config_05.110.xml (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/listeners/config/jbossesb_config_05.110.xml 2009-01-21 15:38:08 UTC (rev 24850)
@@ -0,0 +1,47 @@
+<?xml version = "1.0" encoding = "UTF-8"?>
+<jbossesb xmlns="http://anonsvn.labs.jboss.com/labs/jbossesb/trunk/product/etc/schemas/xml/jbossesb-1.1.0.xsd">
+
+ <providers>
+
+ <jbr-provider name="JBR" host="192.168.1.111" protocol="http">
+ <jbr-bus busid="HTTP-1" port="8765" />
+ <jbr-bus busid="HTTP-2" port="8766" />
+ </jbr-provider>
+
+ </providers>
+ <services>
+
+ <service category="C" name="3" description="A1">
+ <listeners>
+ <jbr-listener name="A1-HTTP"
+ busidref="HTTP-1"
+ maxThreads="1"
+ is-gateway="true"/>
+ <jbr-listener name="A2-HTTP"
+ busidref="HTTP-2"
+ maxThreads="1" />
+ </listeners>
+
+ <actions>
+ <action name="a1" class="org.jboss.soa.esb.actions.converters.ByteArrayToString" />
+ </actions>
+ </service>
+ <service category="D" name="4" description="A1">
+ <listeners>
+ <jbr-listener name="A1-HTTP"
+ busidref="HTTP-1"
+ maxThreads="1"
+ is-gateway="true"/>
+ <jbr-listener name="A2-HTTP"
+ busidref="HTTP-2"
+ maxThreads="1" />
+ </listeners>
+
+ <actions>
+ <action name="a1" class="org.jboss.soa.esb.listeners.config.MyPublishedAction" />
+ </actions>
+ </service>
+
+ </services>
+
+</jbossesb>
Copied: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/listeners/config/jbossesb_config_110_esbaware.xml (from rev 24846, labs/jbossesb/trunk/product/rosetta/tests/src/org/jboss/soa/esb/listeners/config/jbossesb_config_110_esbaware.xml)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/listeners/config/jbossesb_config_110_esbaware.xml (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/listeners/config/jbossesb_config_110_esbaware.xml 2009-01-21 15:38:08 UTC (rev 24850)
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="UTF-8"?><!-- NOTE: DO NOT MODIFY This file was auto-generated.--><jbossesb-listeners parameterReloadSecs="180"><listener listenerClass="org.jboss.soa.esb.listeners.message.MessageAwareListener" maxThreads="2" name="Bank-Listener" service-category="Bank" service-description="Bank Reconciliation Service" service-name="Reconciliation"><EPR acknowledge-mode="AUTO_ACKNOWLEDGE" connection-factory="ConnectionFactory" destination-name="queue/B" destination-type="topic" jndi-URL="jnp://localhost:1099" message-selector="service='Reconciliation'" persistent="true" protocol="jms" transacted="false"/><action action="TestDefaultRouteAction" class="org.jboss.soa.esb.actions.ContentBasedRouter" propName="propValue"> This is some complex.. <!-- property --> value. <xxxx> boooo <yyyy/> </xxxx> Some CDATA data... </action></listener><listener listenerClass="org.jboss.soa.esb.listeners.message.MessageAwareListener" ma!
xThreads="2" my-generic-listener="my-generic-listener#someattribvalue" name="Bank-Listener-Generic" service-category="Bank" service-description="Bank Reconciliation Service" service-name="Reconciliation"><EPR my-generic-bus="my-generic-bus#someattribvalue" my-generic-provider="my-generic-provider#someattribvalue"/><action action="TestDefaultRouteAction" class="org.jboss.soa.esb.actions.ContentBasedRouter" propName="propValue"> This is some complex.. <!-- property --> value. <xxxx> boooo <yyyy/> </xxxx> Some CDATA data... </action></listener><listener listenerClass="org.jboss.soa.esb.listeners.message.MessageAwareListener" maxThreads="1" mep="OneWay" name="test-ftp-listener" schedule-frequency="10" service-category="Test2" service-description="FTP server Test" service-name="FTPTest"><EPR URL="ftp://joe:secret@localhost:21/Temp" errorDelete="true" inputSuffix=".txt" passive="false" postDelete="true" postRename="true" workSuffix="!
.esbInProcess"/><action action="TestFtpRouteAction" class="org.jboss.s
oa.esb.actions.ContentBasedRouter"/></listener><listener listenerClass="org.jboss.soa.esb.listeners.message.MessageAwareListener" maxThreads="1" mep="RequestResponse" name="test-sql-listener" pollLatencySeconds="10" service-category="Test3" service-description="SQL server Test" service-name="SQLTest"><EPR URL="jdbc:postgresql://myhost:5432/testDB" driver="org.postgresql.Driver" errorDelete="true" insert_timestamp_column="insert_timestamp" message_column="message" message_id_column="message_id" password="secret" postDelete="true" status_column="status" tablename="testtable" username="joe"/><action action="TestSqlRouteAction" class="org.jboss.soa.esb.actions.ContentBasedRouter"/></listener></jbossesb-listeners>
\ No newline at end of file
Copied: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/listeners/config/jbossesb_config_110_gateways.xml (from rev 24846, labs/jbossesb/trunk/product/rosetta/tests/src/org/jboss/soa/esb/listeners/config/jbossesb_config_110_gateways.xml)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/listeners/config/jbossesb_config_110_gateways.xml (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/listeners/config/jbossesb_config_110_gateways.xml 2009-01-21 15:38:08 UTC (rev 24850)
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="UTF-8"?><!-- NOTE: DO NOT MODIFY This file was auto-generated.--><jbossesb-gateways parameterReloadSecs="180"><listener acknowledge-mode="AUTO_ACKNOWLEDGE" connection-factory="com.xyz.provider.XYZConnectionFactory" destination-name="queue/A" destination-type="queue" gatewayClass="org.jboss.soa.esb.listeners.gateway.JmsGatewayListener" is-gateway="true" jndi-URL="xyz://server1:9876" jndi-context-factory="com.xyz.provider.NamingContextFactory" jndi-pkg-prefix="com.xyz" maxThreads="1" message-selector="service='Reconciliation'" name="Bank-JMS-Gateway" persistent="true" protocol="jms" service-description="Bank Reconciliation Service" target-service-category="Bank" target-service-name="Reconciliation" transacted="false"/><listener gatewayClass="org.jboss.soa.esb.listeners.gateway.JBossRemotingGatewayListener" is-gateway="true" jbr-serverBindAddress="192.168.1.111" jbr-serverBindPort="8765" jbr-serverProtocol="http" maxThreads="1" name="Bank-HTTP-Gat!
eway" service-description="Bank Reconciliation Service" target-service-category="Bank" target-service-name="Reconciliation"/></jbossesb-gateways>
Modified: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/listeners/config/mappers/FtpListenerMapperUnitTest.java
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/listeners/config/mappers/FtpListenerMapperUnitTest.java 2009-01-21 14:47:17 UTC (rev 24849)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/listeners/config/mappers/FtpListenerMapperUnitTest.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -21,23 +21,22 @@
*/
package org.jboss.soa.esb.listeners.config.mappers;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
-
import junit.framework.TestCase;
import java.io.IOException;
import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.io.Reader;
import java.util.List;
import org.apache.log4j.Logger;
+import org.apache.xmlbeans.XmlException;
import org.jboss.soa.esb.ConfigurationException;
import org.jboss.soa.esb.dom.YADOMUtil;
-import org.jboss.soa.esb.listeners.config.Generator;
-import org.jboss.soa.esb.listeners.config.xbeanmodel.FtpListenerDocument;
-import org.jboss.soa.esb.listeners.config.xbeanmodel.Listener;
-import org.jboss.soa.esb.listeners.config.xbeanmodel.FtpBusDocument;
-import org.jboss.soa.esb.listeners.config.Generator.XMLBeansModel;
+import org.jboss.soa.esb.listeners.config.xbeanmodel101.FtpListenerDocument;
+import org.jboss.soa.esb.listeners.config.xbeanmodel101.Listener;
+import org.jboss.soa.esb.listeners.config.xbeanmodel101.FtpBusDocument;
+import org.jboss.soa.esb.listeners.config.xbeanmodel101.JbossesbDocument.Factory;
import org.jboss.soa.esb.listeners.gateway.ReadOnlyRemoteGatewayListener;
import org.junit.Test;
import org.w3c.dom.Document;
@@ -85,11 +84,11 @@
assertEquals( ReadOnlyRemoteGatewayListener.class.getName(), gatewayClass.getNodeValue() );
}
- private XMLBeansModel getXmlBeanModel( String fileName ) throws ConfigurationException, IOException
+ private XMLBeansModel getXmlBeanModel( String fileName ) throws ConfigurationException, IOException, XmlException
{
InputStream inputStream = getClass().getResourceAsStream( ESB_CONFIG_READ_ONLY );
- GeneratorMock mock = new GeneratorMock( inputStream );
- XMLBeansModel model = mock.getModel();
+ final Reader reader = new InputStreamReader(inputStream);
+ XMLBeansModel model = new XMLBeansModel(Factory.parse(reader).getJbossesb());
return model;
}
@@ -100,27 +99,4 @@
root.setAttribute("parameterReloadSecs", "1000" );
return root;
}
-
-
- /**
- * Just here to get proved access to the XMLBeansModel
- *
- */
- private class GeneratorMock extends Generator
- {
-
- public GeneratorMock(InputStream config) throws ConfigurationException, IOException
- {
- super( config );
- }
-
- @Override
- public XMLBeansModel getModel()
- {
- return super.getModel();
- }
-
-
- }
-
}
Modified: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/listeners/config/mappers/JmsListenerMapperUnitTest.java
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/listeners/config/mappers/JmsListenerMapperUnitTest.java 2009-01-21 14:47:17 UTC (rev 24849)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/listeners/config/mappers/JmsListenerMapperUnitTest.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -27,22 +27,24 @@
import java.io.IOException;
import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.io.Reader;
import java.util.List;
import junit.framework.JUnit4TestAdapter;
+import org.apache.xmlbeans.XmlException;
import org.jboss.soa.esb.ConfigurationException;
import org.jboss.soa.esb.dom.YADOMUtil;
-import org.jboss.soa.esb.listeners.config.Generator;
-import org.jboss.soa.esb.listeners.config.Generator.XMLBeansModel;
-import org.jboss.soa.esb.listeners.config.xbeanmodel.JmsBusDocument;
-import org.jboss.soa.esb.listeners.config.xbeanmodel.JmsListenerDocument;
-import org.jboss.soa.esb.listeners.config.xbeanmodel.Listener;
-import org.jboss.soa.esb.listeners.config.xbeanmodel.Provider;
-import org.jboss.soa.esb.listeners.config.xbeanmodel.ActivationConfigDocument.ActivationConfig;
-import org.jboss.soa.esb.listeners.config.xbeanmodel.JmsJcaProviderDocument.JmsJcaProvider;
-import org.jboss.soa.esb.listeners.config.xbeanmodel.JmsListenerDocument.JmsListener;
-import org.jboss.soa.esb.listeners.config.xbeanmodel.PropertyDocument.Property;
+import org.jboss.soa.esb.listeners.config.xbeanmodel101.JmsBusDocument;
+import org.jboss.soa.esb.listeners.config.xbeanmodel101.JmsListenerDocument;
+import org.jboss.soa.esb.listeners.config.xbeanmodel101.Listener;
+import org.jboss.soa.esb.listeners.config.xbeanmodel101.Provider;
+import org.jboss.soa.esb.listeners.config.xbeanmodel101.ActivationConfigDocument.ActivationConfig;
+import org.jboss.soa.esb.listeners.config.xbeanmodel101.JbossesbDocument.Factory;
+import org.jboss.soa.esb.listeners.config.xbeanmodel101.JmsJcaProviderDocument.JmsJcaProvider;
+import org.jboss.soa.esb.listeners.config.xbeanmodel101.JmsListenerDocument.JmsListener;
+import org.jboss.soa.esb.listeners.config.xbeanmodel101.PropertyDocument.Property;
import org.junit.Before;
import org.junit.Test;
import org.w3c.dom.Document;
@@ -90,7 +92,7 @@
// setup methods
@Before
- public void setup() throws ConfigurationException, IOException
+ public void setup() throws ConfigurationException, IOException, XmlException
{
root = createRootElement();
model = getXmlBeanModel( ESB_CONFIG );
@@ -141,11 +143,11 @@
return (JmsJcaProvider) provider;
}
- private XMLBeansModel getXmlBeanModel( String fileName ) throws ConfigurationException, IOException
+ private XMLBeansModel getXmlBeanModel( String fileName ) throws ConfigurationException, IOException, XmlException
{
InputStream inputStream = getClass().getResourceAsStream( ESB_CONFIG );
- GeneratorMock mock = new GeneratorMock( inputStream );
- XMLBeansModel model = mock.getModel();
+ final Reader reader = new InputStreamReader(inputStream);
+ XMLBeansModel model = new XMLBeansModel(Factory.parse(reader).getJbossesb());
return model;
}
@@ -157,26 +159,6 @@
return root;
}
-
- /**
- * Just here to get proved access to the XMLBeansModel
- *
- */
- private class GeneratorMock extends Generator
- {
-
- public GeneratorMock(InputStream config) throws ConfigurationException, IOException
- {
- super( config );
- }
-
- @Override
- public XMLBeansModel getModel()
- {
- return super.getModel();
- }
- }
-
public static junit.framework.Test suite()
{
return new JUnit4TestAdapter( JmsListenerMapperUnitTest.class );
Copied: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/listeners/config/mappers/SecurityMapperUnitTest.java (from rev 24846, labs/jbossesb/trunk/product/rosetta/tests/src/org/jboss/soa/esb/listeners/config/mappers/SecurityMapperUnitTest.java)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/listeners/config/mappers/SecurityMapperUnitTest.java (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/listeners/config/mappers/SecurityMapperUnitTest.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -0,0 +1,121 @@
+/*
+ * JBoss, Home of Professional Open Source Copyright 2006, JBoss Inc., and
+ * individual contributors as indicated by the @authors tag. See the
+ * copyright.txt in the distribution for a full listing of individual
+ * contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it under the
+ * terms of the GNU Lesser General Public License as published by the Free
+ * Software Foundation; either version 2.1 of the License, or (at your option)
+ * any later version.
+ *
+ * This software is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+ * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
+ * details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this software; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA, or see the FSF
+ * site: http://www.fsf.org.
+ */
+package org.jboss.soa.esb.listeners.config.mappers;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.io.Reader;
+
+import junit.framework.JUnit4TestAdapter;
+
+import org.apache.xmlbeans.XmlException;
+import org.jboss.soa.esb.ConfigurationException;
+import org.jboss.soa.esb.dom.YADOMUtil;
+import org.jboss.soa.esb.listeners.ListenerTagNames;
+import org.jboss.soa.esb.listeners.config.xbeanmodel101.JbossesbDocument.Factory;
+import org.jboss.soa.esb.listeners.config.xbeanmodel101.ServiceDocument.Service;
+import org.junit.Before;
+import org.junit.Test;
+import org.w3c.dom.Document;
+import org.w3c.dom.Element;
+import org.w3c.dom.Node;
+
+/**
+ * Unit test for {@link SecurityMapper}
+ * <p/>
+ *
+ * @author Daniel Bevenius
+ *
+ */
+public class SecurityMapperUnitTest
+{
+ private static final String ESB_CONFIG = "jbossesb_config_security.xml";
+
+ private Element root;
+ private XMLBeansModel model;
+
+ private Service service;
+
+ private Node securityNode;
+
+ @Test
+ public void mapRunAs() throws ConfigurationException
+ {
+ Node runAsNode = securityNode.getAttributes().getNamedItem( ListenerTagNames.RUN_AS_TAG );
+ assertNotNull( runAsNode.getNodeName() );
+ assertEquals( "MrPoon", runAsNode.getNodeValue() );
+ }
+
+ @Test
+ public void mapModuleName() throws ConfigurationException
+ {
+ Node moduleNameNode = securityNode.getAttributes().getNamedItem( ListenerTagNames.MODULE_NAME_TAG );
+ assertNotNull( moduleNameNode.getNodeName() );
+ assertEquals( "mod1", moduleNameNode.getNodeValue());
+ }
+
+ @Test
+ public void mapUseCallersIdentity() throws ConfigurationException
+ {
+ Node userIdentityNode = securityNode.getAttributes().getNamedItem( ListenerTagNames.USE_CALLERS_IDENTIDY_TAG );
+ assertNotNull( userIdentityNode.getNodeName() );
+ assertEquals( "user1", userIdentityNode.getNodeValue());
+ }
+
+ // setup methods
+
+ @Before
+ public void setup() throws ConfigurationException, IOException, XmlException
+ {
+ root = createRootElement();
+ model = getXmlBeanModel( ESB_CONFIG );
+ service = model.getServices().get( 0 );
+
+ SecurityMapper.map( root, service );
+ securityNode = root.getFirstChild();
+ }
+
+ private XMLBeansModel getXmlBeanModel( String fileName ) throws ConfigurationException, IOException, XmlException
+ {
+ InputStream inputStream = getClass().getResourceAsStream( ESB_CONFIG );
+ final Reader reader = new InputStreamReader(inputStream);
+ XMLBeansModel model = new XMLBeansModel(Factory.parse(reader).getJbossesb());
+ return model;
+ }
+
+ private Element createRootElement() throws ConfigurationException
+ {
+ Document doc = YADOMUtil.createDocument();
+ Element root = YADOMUtil.addElement(doc, "jbossesb-gateways");
+ root.setAttribute("parameterReloadSecs", "1000" );
+ return root;
+ }
+
+ public static junit.framework.Test suite()
+ {
+ return new JUnit4TestAdapter( SecurityMapperUnitTest.class );
+ }
+}
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/listeners/config/mappers/jbossesb_config_01.xml
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/listeners/config/mappers/jbossesb_config_01.xml 2009-01-21 14:47:17 UTC (rev 24849)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/listeners/config/mappers/jbossesb_config_01.xml 2009-01-21 15:38:08 UTC (rev 24850)
@@ -1,32 +0,0 @@
-<?xml version = "1.0" encoding = "UTF-8"?>
-<jbossesb xmlns="http://anonsvn.labs.jboss.com/labs/jbossesb/trunk/product/etc/schemas/xml/jbossesb-1.0.1.xsd">
-
- <providers>
-
- <ftp-provider name="FTP" hostname="localhost:21">
- <ftp-bus busid="FtpMapperTest">
- <ftp-message-filter directory="/Temp" read-only="true" input-suffix=".txt" username="joe" password="secret"/>
- </ftp-bus>
- </ftp-provider>
-
- <jbr-provider name="JBR" host="192.168.1.111" protocol="http">
- <jbr-bus busid="HTTP-2" port="8766" />
- </jbr-provider>
-
- </providers>
- <services>
- <service category="Test2" name="FTPTest" description="FTP server Test">
-
- <listeners>
- <ftp-listener name="FtpMapperListener"
- busidref="FtpMapperTest"
- is-gateway="true"
- maxThreads="1"/>
- <jbr-listener name="A2-HTTP"
- busidref="HTTP-2"
- maxThreads="1" />
- </listeners>
- </service>
- </services>
-
-</jbossesb>
Copied: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/listeners/config/mappers/jbossesb_config_security.xml (from rev 24846, labs/jbossesb/trunk/product/rosetta/tests/src/org/jboss/soa/esb/listeners/config/mappers/jbossesb_config_security.xml)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/listeners/config/mappers/jbossesb_config_security.xml (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/listeners/config/mappers/jbossesb_config_security.xml 2009-01-21 15:38:08 UTC (rev 24850)
@@ -0,0 +1,34 @@
+<?xml version = "1.0" encoding = "UTF-8"?>
+<jbossesb xmlns="http://anonsvn.labs.jboss.com/labs/jbossesb/trunk/product/etc/schemas/xml/jbossesb-1.0.1.xsd">
+
+ <providers>
+
+ <jms-provider
+ name="JBossMessaging"
+ connection-factory="XAConnectionFactory"
+ jndi-URL="jnp://127.0.0.1:1099"
+ jndi-context-factory="org.jnp.interfaces.NamingContextFactory"
+ jndi-pkg-prefix="org.jboss.naming:org.jnp.interfaces">
+
+ <jms-bus busid="quickstartEsbChannel">
+ <jms-message-filter
+ dest-type="QUEUE"
+ dest-name="queue/quickstart_jms_transacted_Request_esb"
+ selector="CorrelationID = '13'"/>
+ </jms-bus>
+ </jms-provider>
+
+ </providers>
+ <services>
+ <service category="Test2" name="JMSJCATest" description="JMS JCA Test">
+ <security runAs="MrPoon" moduleName="mod1" useCallersIdentity="user1"/>
+ <listeners>
+ <jms-listener name="JMSListener" busidref="quickstartEsbChannel" maxThreads="1"/>
+ </listeners>
+ <actions>
+ <action name="TestDefaultRouteAction" class="org.jboss.soa.esb.actions.ContentBasedRouter"/>
+ </actions>
+ </service>
+ </services>
+
+</jbossesb>
Copied: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/listeners/config/mappers110 (from rev 24846, labs/jbossesb/trunk/product/rosetta/tests/src/org/jboss/soa/esb/listeners/config/mappers110)
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/listeners/config/mappers110/FtpListenerMapperUnitTest.java
===================================================================
--- labs/jbossesb/trunk/product/rosetta/tests/src/org/jboss/soa/esb/listeners/config/mappers110/FtpListenerMapperUnitTest.java 2009-01-21 09:35:03 UTC (rev 24846)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/listeners/config/mappers110/FtpListenerMapperUnitTest.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -1,102 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source Copyright 2006, JBoss Inc., and
- * individual contributors as indicated by the @authors tag. See the
- * copyright.txt in the distribution for a full listing of individual
- * contributors.
- *
- * This is free software; you can redistribute it and/or modify it under the
- * terms of the GNU Lesser General Public License as published by the Free
- * Software Foundation; either version 2.1 of the License, or (at your option)
- * any later version.
- *
- * This software is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
- * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
- * details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this software; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA, or see the FSF
- * site: http://www.fsf.org.
- */
-package org.jboss.soa.esb.listeners.config.mappers110;
-
-import junit.framework.TestCase;
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.InputStreamReader;
-import java.io.Reader;
-import java.util.List;
-
-import org.apache.log4j.Logger;
-import org.apache.xmlbeans.XmlException;
-import org.jboss.soa.esb.ConfigurationException;
-import org.jboss.soa.esb.dom.YADOMUtil;
-import org.jboss.soa.esb.listeners.config.xbeanmodel110.FtpListenerDocument;
-import org.jboss.soa.esb.listeners.config.xbeanmodel110.Listener;
-import org.jboss.soa.esb.listeners.config.xbeanmodel110.FtpBusDocument;
-import org.jboss.soa.esb.listeners.config.xbeanmodel110.JbossesbDocument.Factory;
-import org.jboss.soa.esb.listeners.gateway.ReadOnlyRemoteGatewayListener;
-import org.junit.Test;
-import org.w3c.dom.Document;
-import org.w3c.dom.Element;
-import org.w3c.dom.NamedNodeMap;
-import org.w3c.dom.Node;
-
-/**
- * Tests the class FtpListenerMapper
- *
- * @author Daniel Bevenius
- *
- */
-public class FtpListenerMapperUnitTest extends TestCase
-{
- @SuppressWarnings("unused")
- private Logger log = Logger.getLogger(FtpListenerMapperUnitTest.class);
-
- private static final String ESB_CONFIG_READ_ONLY = "jbossesb_config_readonly.xml";
-
- private static final String GATEWAY_CLASS_ATTRIBUTE = "gatewayClass";
-
- @Test
- public void testReadOnlyConfiguration() throws Exception
- {
- Element root = createRootElement();
- XMLBeansModel model = getXmlBeanModel( ESB_CONFIG_READ_ONLY );
-
- List<Listener> gateways = model.getGatewayListeners();
- FtpListenerDocument.FtpListener ftpListener = (FtpListenerDocument.FtpListener) gateways.get(0);
- assertEquals ( true, ftpListener.getIsGateway() );
-
- FtpBusDocument.FtpBus ftpBus = (FtpBusDocument.FtpBus) model.getBus( ftpListener.getBusidref() );
- assertNotNull( "FtpBus element should exist", ftpBus );
- assertEquals ( "read-only attribute should be true", true, ftpBus.getFtpMessageFilter().getReadOnly() );
-
- FtpListenerMapper.map( root , ftpListener, model );
-
- Node ftpMapperListener = root.getFirstChild();
- assertNotNull ("ftpMapperListener should not be null", ftpMapperListener );
-
- NamedNodeMap attributes = ftpMapperListener.getAttributes();
- Node gatewayClass = attributes.getNamedItem( GATEWAY_CLASS_ATTRIBUTE );
- assertNotNull( "gatewayClass should have been set", gatewayClass );
- assertEquals( ReadOnlyRemoteGatewayListener.class.getName(), gatewayClass.getNodeValue() );
- }
-
- private XMLBeansModel getXmlBeanModel( String fileName ) throws ConfigurationException, IOException, XmlException
- {
- InputStream inputStream = getClass().getResourceAsStream( ESB_CONFIG_READ_ONLY );
- final Reader reader = new InputStreamReader(inputStream);
- XMLBeansModel model = new XMLBeansModel(Factory.parse(reader).getJbossesb());
- return model;
- }
-
- private Element createRootElement() throws ConfigurationException
- {
- Document doc = YADOMUtil.createDocument();
- Element root = YADOMUtil.addElement(doc, "jbossesb-gateways");
- root.setAttribute("parameterReloadSecs", "1000" );
- return root;
- }
-}
Copied: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/listeners/config/mappers110/FtpListenerMapperUnitTest.java (from rev 24846, labs/jbossesb/trunk/product/rosetta/tests/src/org/jboss/soa/esb/listeners/config/mappers110/FtpListenerMapperUnitTest.java)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/listeners/config/mappers110/FtpListenerMapperUnitTest.java (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/listeners/config/mappers110/FtpListenerMapperUnitTest.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -0,0 +1,102 @@
+/*
+ * JBoss, Home of Professional Open Source Copyright 2006, JBoss Inc., and
+ * individual contributors as indicated by the @authors tag. See the
+ * copyright.txt in the distribution for a full listing of individual
+ * contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it under the
+ * terms of the GNU Lesser General Public License as published by the Free
+ * Software Foundation; either version 2.1 of the License, or (at your option)
+ * any later version.
+ *
+ * This software is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+ * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
+ * details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this software; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA, or see the FSF
+ * site: http://www.fsf.org.
+ */
+package org.jboss.soa.esb.listeners.config.mappers110;
+
+import junit.framework.TestCase;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.io.Reader;
+import java.util.List;
+
+import org.apache.log4j.Logger;
+import org.apache.xmlbeans.XmlException;
+import org.jboss.soa.esb.ConfigurationException;
+import org.jboss.soa.esb.dom.YADOMUtil;
+import org.jboss.soa.esb.listeners.config.xbeanmodel110.FtpListenerDocument;
+import org.jboss.soa.esb.listeners.config.xbeanmodel110.Listener;
+import org.jboss.soa.esb.listeners.config.xbeanmodel110.FtpBusDocument;
+import org.jboss.soa.esb.listeners.config.xbeanmodel110.JbossesbDocument.Factory;
+import org.jboss.soa.esb.listeners.gateway.ReadOnlyRemoteGatewayListener;
+import org.junit.Test;
+import org.w3c.dom.Document;
+import org.w3c.dom.Element;
+import org.w3c.dom.NamedNodeMap;
+import org.w3c.dom.Node;
+
+/**
+ * Tests the class FtpListenerMapper
+ *
+ * @author Daniel Bevenius
+ *
+ */
+public class FtpListenerMapperUnitTest extends TestCase
+{
+ @SuppressWarnings("unused")
+ private Logger log = Logger.getLogger(FtpListenerMapperUnitTest.class);
+
+ private static final String ESB_CONFIG_READ_ONLY = "jbossesb_config_readonly.xml";
+
+ private static final String GATEWAY_CLASS_ATTRIBUTE = "gatewayClass";
+
+ @Test
+ public void testReadOnlyConfiguration() throws Exception
+ {
+ Element root = createRootElement();
+ XMLBeansModel model = getXmlBeanModel( ESB_CONFIG_READ_ONLY );
+
+ List<Listener> gateways = model.getGatewayListeners();
+ FtpListenerDocument.FtpListener ftpListener = (FtpListenerDocument.FtpListener) gateways.get(0);
+ assertEquals ( true, ftpListener.getIsGateway() );
+
+ FtpBusDocument.FtpBus ftpBus = (FtpBusDocument.FtpBus) model.getBus( ftpListener.getBusidref() );
+ assertNotNull( "FtpBus element should exist", ftpBus );
+ assertEquals ( "read-only attribute should be true", true, ftpBus.getFtpMessageFilter().getReadOnly() );
+
+ FtpListenerMapper.map( root , ftpListener, model );
+
+ Node ftpMapperListener = root.getFirstChild();
+ assertNotNull ("ftpMapperListener should not be null", ftpMapperListener );
+
+ NamedNodeMap attributes = ftpMapperListener.getAttributes();
+ Node gatewayClass = attributes.getNamedItem( GATEWAY_CLASS_ATTRIBUTE );
+ assertNotNull( "gatewayClass should have been set", gatewayClass );
+ assertEquals( ReadOnlyRemoteGatewayListener.class.getName(), gatewayClass.getNodeValue() );
+ }
+
+ private XMLBeansModel getXmlBeanModel( String fileName ) throws ConfigurationException, IOException, XmlException
+ {
+ InputStream inputStream = getClass().getResourceAsStream( ESB_CONFIG_READ_ONLY );
+ final Reader reader = new InputStreamReader(inputStream);
+ XMLBeansModel model = new XMLBeansModel(Factory.parse(reader).getJbossesb());
+ return model;
+ }
+
+ private Element createRootElement() throws ConfigurationException
+ {
+ Document doc = YADOMUtil.createDocument();
+ Element root = YADOMUtil.addElement(doc, "jbossesb-gateways");
+ root.setAttribute("parameterReloadSecs", "1000" );
+ return root;
+ }
+}
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/listeners/config/mappers110/JmsListenerMapperUnitTest.java
===================================================================
--- labs/jbossesb/trunk/product/rosetta/tests/src/org/jboss/soa/esb/listeners/config/mappers110/JmsListenerMapperUnitTest.java 2009-01-21 09:35:03 UTC (rev 24846)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/listeners/config/mappers110/JmsListenerMapperUnitTest.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -1,166 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source Copyright 2006, JBoss Inc., and
- * individual contributors as indicated by the @authors tag. See the
- * copyright.txt in the distribution for a full listing of individual
- * contributors.
- *
- * This is free software; you can redistribute it and/or modify it under the
- * terms of the GNU Lesser General Public License as published by the Free
- * Software Foundation; either version 2.1 of the License, or (at your option)
- * any later version.
- *
- * This software is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
- * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
- * details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this software; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA, or see the FSF
- * site: http://www.fsf.org.
- */
-package org.jboss.soa.esb.listeners.config.mappers110;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertTrue;
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.InputStreamReader;
-import java.io.Reader;
-import java.util.List;
-
-import junit.framework.JUnit4TestAdapter;
-
-import org.apache.xmlbeans.XmlException;
-import org.jboss.soa.esb.ConfigurationException;
-import org.jboss.soa.esb.dom.YADOMUtil;
-import org.jboss.soa.esb.listeners.config.xbeanmodel110.JmsBusDocument;
-import org.jboss.soa.esb.listeners.config.xbeanmodel110.JmsListenerDocument;
-import org.jboss.soa.esb.listeners.config.xbeanmodel110.Listener;
-import org.jboss.soa.esb.listeners.config.xbeanmodel110.Provider;
-import org.jboss.soa.esb.listeners.config.xbeanmodel110.ActivationConfigDocument.ActivationConfig;
-import org.jboss.soa.esb.listeners.config.xbeanmodel110.JbossesbDocument.Factory;
-import org.jboss.soa.esb.listeners.config.xbeanmodel110.JmsJcaProviderDocument.JmsJcaProvider;
-import org.jboss.soa.esb.listeners.config.xbeanmodel110.JmsListenerDocument.JmsListener;
-import org.jboss.soa.esb.listeners.config.xbeanmodel110.PropertyDocument.Property;
-import org.junit.Before;
-import org.junit.Test;
-import org.w3c.dom.Document;
-import org.w3c.dom.Element;
-
-/**
- * Unit test for JmsListenerMapper
- *
- * @author Daniel Bevenius
- *
- */
-public class JmsListenerMapperUnitTest
-{
- private static final String ESB_CONFIG = "jbossesb_config_jms_jca.xml";
-
- private Element root;
- private XMLBeansModel model;
- private JmsListenerDocument.JmsListener jmsListener;
- private JmsJcaProvider jmsJcaProvider;
-
- @Test ( expected = ConfigurationException.class )
- public void tryToOverrideDestinationActivationConfigProperty() throws ConfigurationException, IOException
- {
- callJmsListenerMap( "destination", "/queue/dummyQueue" );
- }
-
- @Test ( expected = ConfigurationException.class )
- public void tryToOverride_DestinationType_ActivationConfigProperty() throws ConfigurationException, IOException
- {
- callJmsListenerMap( "destinationType", "Topic" );
- }
-
- @Test ( expected = ConfigurationException.class )
- public void tryToOverrideMessageSelectorActivationConfigProperty() throws ConfigurationException, IOException
- {
- callJmsListenerMap( "messageSelector", "dummyselector" );
- }
-
- @Test ( expected = ConfigurationException.class )
- public void tryToOverrideMaxMessagesActivationConfigProperty() throws ConfigurationException, IOException
- {
- callJmsListenerMap( "maxMessages", "300" );
- }
-
- // setup methods
-
- @Before
- public void setup() throws ConfigurationException, IOException, XmlException
- {
- root = createRootElement();
- model = getXmlBeanModel( ESB_CONFIG );
- jmsListener = getListener( model );
- jmsJcaProvider = getJmsJcaProvider( model );
- }
-
- // helper methods
-
- private void callJmsListenerMap(
- String activationConfigPropertyName,
- String activationConfigPropertyValue
- ) throws ConfigurationException
- {
- ActivationConfig activationConfig = jmsJcaProvider.getActivationConfig();
- createActivationProperty( activationConfig, activationConfigPropertyName, activationConfigPropertyValue );
-
- JmsListenerMapper.map( root , jmsListener, model );
- }
-
- private Property createActivationProperty(
- final ActivationConfig activationConfig,
- final String name,
- final String value )
- {
- Property property = activationConfig.addNewProperty();
- property.setName( name );
- property.setValue( value );
- return property;
- }
-
- private JmsListener getListener( final XMLBeansModel model ) throws ConfigurationException
- {
- List<Listener> listeners = model.getESBAwareListeners();
- return (JmsListener) listeners.get(0);
- }
-
- private JmsJcaProvider getJmsJcaProvider( final XMLBeansModel model ) throws ConfigurationException, IOException
- {
- List<Listener> listeners = model.getESBAwareListeners();
- JmsListenerDocument.JmsListener jmsListener = (JmsListener) listeners.get(0);
- assertEquals ( false, jmsListener.getIsGateway() );
-
- JmsBusDocument.JmsBus jmsBus = (JmsBusDocument.JmsBus) model.getBus( jmsListener.getBusidref() );
- assertNotNull( "JmsBus element should exist", jmsBus );
- Provider provider = model.getProvider( jmsBus );
- assertTrue( provider instanceof JmsJcaProvider );
- return (JmsJcaProvider) provider;
- }
-
- private XMLBeansModel getXmlBeanModel( String fileName ) throws ConfigurationException, IOException, XmlException
- {
- InputStream inputStream = getClass().getResourceAsStream( ESB_CONFIG );
- final Reader reader = new InputStreamReader(inputStream);
- XMLBeansModel model = new XMLBeansModel(Factory.parse(reader).getJbossesb());
- return model;
- }
-
- private Element createRootElement() throws ConfigurationException
- {
- Document doc = YADOMUtil.createDocument();
- Element root = YADOMUtil.addElement(doc, "jbossesb-gateways");
- root.setAttribute("parameterReloadSecs", "1000" );
- return root;
- }
-
- public static junit.framework.Test suite()
- {
- return new JUnit4TestAdapter( JmsListenerMapperUnitTest.class );
- }
-}
Copied: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/listeners/config/mappers110/JmsListenerMapperUnitTest.java (from rev 24846, labs/jbossesb/trunk/product/rosetta/tests/src/org/jboss/soa/esb/listeners/config/mappers110/JmsListenerMapperUnitTest.java)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/listeners/config/mappers110/JmsListenerMapperUnitTest.java (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/listeners/config/mappers110/JmsListenerMapperUnitTest.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -0,0 +1,166 @@
+/*
+ * JBoss, Home of Professional Open Source Copyright 2006, JBoss Inc., and
+ * individual contributors as indicated by the @authors tag. See the
+ * copyright.txt in the distribution for a full listing of individual
+ * contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it under the
+ * terms of the GNU Lesser General Public License as published by the Free
+ * Software Foundation; either version 2.1 of the License, or (at your option)
+ * any later version.
+ *
+ * This software is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+ * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
+ * details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this software; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA, or see the FSF
+ * site: http://www.fsf.org.
+ */
+package org.jboss.soa.esb.listeners.config.mappers110;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertTrue;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.io.Reader;
+import java.util.List;
+
+import junit.framework.JUnit4TestAdapter;
+
+import org.apache.xmlbeans.XmlException;
+import org.jboss.soa.esb.ConfigurationException;
+import org.jboss.soa.esb.dom.YADOMUtil;
+import org.jboss.soa.esb.listeners.config.xbeanmodel110.JmsBusDocument;
+import org.jboss.soa.esb.listeners.config.xbeanmodel110.JmsListenerDocument;
+import org.jboss.soa.esb.listeners.config.xbeanmodel110.Listener;
+import org.jboss.soa.esb.listeners.config.xbeanmodel110.Provider;
+import org.jboss.soa.esb.listeners.config.xbeanmodel110.ActivationConfigDocument.ActivationConfig;
+import org.jboss.soa.esb.listeners.config.xbeanmodel110.JbossesbDocument.Factory;
+import org.jboss.soa.esb.listeners.config.xbeanmodel110.JmsJcaProviderDocument.JmsJcaProvider;
+import org.jboss.soa.esb.listeners.config.xbeanmodel110.JmsListenerDocument.JmsListener;
+import org.jboss.soa.esb.listeners.config.xbeanmodel110.PropertyDocument.Property;
+import org.junit.Before;
+import org.junit.Test;
+import org.w3c.dom.Document;
+import org.w3c.dom.Element;
+
+/**
+ * Unit test for JmsListenerMapper
+ *
+ * @author Daniel Bevenius
+ *
+ */
+public class JmsListenerMapperUnitTest
+{
+ private static final String ESB_CONFIG = "jbossesb_config_jms_jca.xml";
+
+ private Element root;
+ private XMLBeansModel model;
+ private JmsListenerDocument.JmsListener jmsListener;
+ private JmsJcaProvider jmsJcaProvider;
+
+ @Test ( expected = ConfigurationException.class )
+ public void tryToOverrideDestinationActivationConfigProperty() throws ConfigurationException, IOException
+ {
+ callJmsListenerMap( "destination", "/queue/dummyQueue" );
+ }
+
+ @Test ( expected = ConfigurationException.class )
+ public void tryToOverride_DestinationType_ActivationConfigProperty() throws ConfigurationException, IOException
+ {
+ callJmsListenerMap( "destinationType", "Topic" );
+ }
+
+ @Test ( expected = ConfigurationException.class )
+ public void tryToOverrideMessageSelectorActivationConfigProperty() throws ConfigurationException, IOException
+ {
+ callJmsListenerMap( "messageSelector", "dummyselector" );
+ }
+
+ @Test ( expected = ConfigurationException.class )
+ public void tryToOverrideMaxMessagesActivationConfigProperty() throws ConfigurationException, IOException
+ {
+ callJmsListenerMap( "maxMessages", "300" );
+ }
+
+ // setup methods
+
+ @Before
+ public void setup() throws ConfigurationException, IOException, XmlException
+ {
+ root = createRootElement();
+ model = getXmlBeanModel( ESB_CONFIG );
+ jmsListener = getListener( model );
+ jmsJcaProvider = getJmsJcaProvider( model );
+ }
+
+ // helper methods
+
+ private void callJmsListenerMap(
+ String activationConfigPropertyName,
+ String activationConfigPropertyValue
+ ) throws ConfigurationException
+ {
+ ActivationConfig activationConfig = jmsJcaProvider.getActivationConfig();
+ createActivationProperty( activationConfig, activationConfigPropertyName, activationConfigPropertyValue );
+
+ JmsListenerMapper.map( root , jmsListener, model );
+ }
+
+ private Property createActivationProperty(
+ final ActivationConfig activationConfig,
+ final String name,
+ final String value )
+ {
+ Property property = activationConfig.addNewProperty();
+ property.setName( name );
+ property.setValue( value );
+ return property;
+ }
+
+ private JmsListener getListener( final XMLBeansModel model ) throws ConfigurationException
+ {
+ List<Listener> listeners = model.getESBAwareListeners();
+ return (JmsListener) listeners.get(0);
+ }
+
+ private JmsJcaProvider getJmsJcaProvider( final XMLBeansModel model ) throws ConfigurationException, IOException
+ {
+ List<Listener> listeners = model.getESBAwareListeners();
+ JmsListenerDocument.JmsListener jmsListener = (JmsListener) listeners.get(0);
+ assertEquals ( false, jmsListener.getIsGateway() );
+
+ JmsBusDocument.JmsBus jmsBus = (JmsBusDocument.JmsBus) model.getBus( jmsListener.getBusidref() );
+ assertNotNull( "JmsBus element should exist", jmsBus );
+ Provider provider = model.getProvider( jmsBus );
+ assertTrue( provider instanceof JmsJcaProvider );
+ return (JmsJcaProvider) provider;
+ }
+
+ private XMLBeansModel getXmlBeanModel( String fileName ) throws ConfigurationException, IOException, XmlException
+ {
+ InputStream inputStream = getClass().getResourceAsStream( ESB_CONFIG );
+ final Reader reader = new InputStreamReader(inputStream);
+ XMLBeansModel model = new XMLBeansModel(Factory.parse(reader).getJbossesb());
+ return model;
+ }
+
+ private Element createRootElement() throws ConfigurationException
+ {
+ Document doc = YADOMUtil.createDocument();
+ Element root = YADOMUtil.addElement(doc, "jbossesb-gateways");
+ root.setAttribute("parameterReloadSecs", "1000" );
+ return root;
+ }
+
+ public static junit.framework.Test suite()
+ {
+ return new JUnit4TestAdapter( JmsListenerMapperUnitTest.class );
+ }
+}
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/listeners/config/mappers110/SecurityMapperUnitTest.java
===================================================================
--- labs/jbossesb/trunk/product/rosetta/tests/src/org/jboss/soa/esb/listeners/config/mappers110/SecurityMapperUnitTest.java 2009-01-21 09:35:03 UTC (rev 24846)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/listeners/config/mappers110/SecurityMapperUnitTest.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -1,121 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source Copyright 2006, JBoss Inc., and
- * individual contributors as indicated by the @authors tag. See the
- * copyright.txt in the distribution for a full listing of individual
- * contributors.
- *
- * This is free software; you can redistribute it and/or modify it under the
- * terms of the GNU Lesser General Public License as published by the Free
- * Software Foundation; either version 2.1 of the License, or (at your option)
- * any later version.
- *
- * This software is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
- * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
- * details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this software; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA, or see the FSF
- * site: http://www.fsf.org.
- */
-package org.jboss.soa.esb.listeners.config.mappers110;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.InputStreamReader;
-import java.io.Reader;
-
-import junit.framework.JUnit4TestAdapter;
-
-import org.apache.xmlbeans.XmlException;
-import org.jboss.soa.esb.ConfigurationException;
-import org.jboss.soa.esb.dom.YADOMUtil;
-import org.jboss.soa.esb.listeners.ListenerTagNames;
-import org.jboss.soa.esb.listeners.config.xbeanmodel110.JbossesbDocument.Factory;
-import org.jboss.soa.esb.listeners.config.xbeanmodel110.ServiceDocument.Service;
-import org.junit.Before;
-import org.junit.Test;
-import org.w3c.dom.Document;
-import org.w3c.dom.Element;
-import org.w3c.dom.Node;
-
-/**
- * Unit test for {@link SecurityMapper}
- * <p/>
- *
- * @author Daniel Bevenius
- *
- */
-public class SecurityMapperUnitTest
-{
- private static final String ESB_CONFIG = "jbossesb_config_security.xml";
-
- private Element root;
- private XMLBeansModel model;
-
- private Service service;
-
- private Node securityNode;
-
- @Test
- public void mapRunAs() throws ConfigurationException
- {
- Node runAsNode = securityNode.getAttributes().getNamedItem( ListenerTagNames.RUN_AS_TAG );
- assertNotNull( runAsNode.getNodeName() );
- assertEquals( "MrPoon", runAsNode.getNodeValue() );
- }
-
- @Test
- public void mapModuleName() throws ConfigurationException
- {
- Node moduleNameNode = securityNode.getAttributes().getNamedItem( ListenerTagNames.MODULE_NAME_TAG );
- assertNotNull( moduleNameNode.getNodeName() );
- assertEquals( "mod1", moduleNameNode.getNodeValue());
- }
-
- @Test
- public void mapUseCallersIdentity() throws ConfigurationException
- {
- Node userIdentityNode = securityNode.getAttributes().getNamedItem( ListenerTagNames.USE_CALLERS_IDENTIDY_TAG );
- assertNotNull( userIdentityNode.getNodeName() );
- assertEquals( "user1", userIdentityNode.getNodeValue());
- }
-
- // setup methods
-
- @Before
- public void setup() throws ConfigurationException, IOException, XmlException
- {
- root = createRootElement();
- model = getXmlBeanModel( ESB_CONFIG );
- service = model.getServices().get( 0 );
-
- SecurityMapper.map( root, service );
- securityNode = root.getFirstChild();
- }
-
- private XMLBeansModel getXmlBeanModel( String fileName ) throws ConfigurationException, IOException, XmlException
- {
- InputStream inputStream = getClass().getResourceAsStream( ESB_CONFIG );
- final Reader reader = new InputStreamReader(inputStream);
- XMLBeansModel model = new XMLBeansModel(Factory.parse(reader).getJbossesb());
- return model;
- }
-
- private Element createRootElement() throws ConfigurationException
- {
- Document doc = YADOMUtil.createDocument();
- Element root = YADOMUtil.addElement(doc, "jbossesb-gateways");
- root.setAttribute("parameterReloadSecs", "1000" );
- return root;
- }
-
- public static junit.framework.Test suite()
- {
- return new JUnit4TestAdapter( SecurityMapperUnitTest.class );
- }
-}
Copied: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/listeners/config/mappers110/SecurityMapperUnitTest.java (from rev 24846, labs/jbossesb/trunk/product/rosetta/tests/src/org/jboss/soa/esb/listeners/config/mappers110/SecurityMapperUnitTest.java)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/listeners/config/mappers110/SecurityMapperUnitTest.java (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/listeners/config/mappers110/SecurityMapperUnitTest.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -0,0 +1,121 @@
+/*
+ * JBoss, Home of Professional Open Source Copyright 2006, JBoss Inc., and
+ * individual contributors as indicated by the @authors tag. See the
+ * copyright.txt in the distribution for a full listing of individual
+ * contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it under the
+ * terms of the GNU Lesser General Public License as published by the Free
+ * Software Foundation; either version 2.1 of the License, or (at your option)
+ * any later version.
+ *
+ * This software is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+ * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
+ * details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this software; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA, or see the FSF
+ * site: http://www.fsf.org.
+ */
+package org.jboss.soa.esb.listeners.config.mappers110;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.io.Reader;
+
+import junit.framework.JUnit4TestAdapter;
+
+import org.apache.xmlbeans.XmlException;
+import org.jboss.soa.esb.ConfigurationException;
+import org.jboss.soa.esb.dom.YADOMUtil;
+import org.jboss.soa.esb.listeners.ListenerTagNames;
+import org.jboss.soa.esb.listeners.config.xbeanmodel110.JbossesbDocument.Factory;
+import org.jboss.soa.esb.listeners.config.xbeanmodel110.ServiceDocument.Service;
+import org.junit.Before;
+import org.junit.Test;
+import org.w3c.dom.Document;
+import org.w3c.dom.Element;
+import org.w3c.dom.Node;
+
+/**
+ * Unit test for {@link SecurityMapper}
+ * <p/>
+ *
+ * @author Daniel Bevenius
+ *
+ */
+public class SecurityMapperUnitTest
+{
+ private static final String ESB_CONFIG = "jbossesb_config_security.xml";
+
+ private Element root;
+ private XMLBeansModel model;
+
+ private Service service;
+
+ private Node securityNode;
+
+ @Test
+ public void mapRunAs() throws ConfigurationException
+ {
+ Node runAsNode = securityNode.getAttributes().getNamedItem( ListenerTagNames.RUN_AS_TAG );
+ assertNotNull( runAsNode.getNodeName() );
+ assertEquals( "MrPoon", runAsNode.getNodeValue() );
+ }
+
+ @Test
+ public void mapModuleName() throws ConfigurationException
+ {
+ Node moduleNameNode = securityNode.getAttributes().getNamedItem( ListenerTagNames.MODULE_NAME_TAG );
+ assertNotNull( moduleNameNode.getNodeName() );
+ assertEquals( "mod1", moduleNameNode.getNodeValue());
+ }
+
+ @Test
+ public void mapUseCallersIdentity() throws ConfigurationException
+ {
+ Node userIdentityNode = securityNode.getAttributes().getNamedItem( ListenerTagNames.USE_CALLERS_IDENTIDY_TAG );
+ assertNotNull( userIdentityNode.getNodeName() );
+ assertEquals( "user1", userIdentityNode.getNodeValue());
+ }
+
+ // setup methods
+
+ @Before
+ public void setup() throws ConfigurationException, IOException, XmlException
+ {
+ root = createRootElement();
+ model = getXmlBeanModel( ESB_CONFIG );
+ service = model.getServices().get( 0 );
+
+ SecurityMapper.map( root, service );
+ securityNode = root.getFirstChild();
+ }
+
+ private XMLBeansModel getXmlBeanModel( String fileName ) throws ConfigurationException, IOException, XmlException
+ {
+ InputStream inputStream = getClass().getResourceAsStream( ESB_CONFIG );
+ final Reader reader = new InputStreamReader(inputStream);
+ XMLBeansModel model = new XMLBeansModel(Factory.parse(reader).getJbossesb());
+ return model;
+ }
+
+ private Element createRootElement() throws ConfigurationException
+ {
+ Document doc = YADOMUtil.createDocument();
+ Element root = YADOMUtil.addElement(doc, "jbossesb-gateways");
+ root.setAttribute("parameterReloadSecs", "1000" );
+ return root;
+ }
+
+ public static junit.framework.Test suite()
+ {
+ return new JUnit4TestAdapter( SecurityMapperUnitTest.class );
+ }
+}
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/listeners/config/mappers110/jbossesb_config_jms_jca.xml
===================================================================
--- labs/jbossesb/trunk/product/rosetta/tests/src/org/jboss/soa/esb/listeners/config/mappers110/jbossesb_config_jms_jca.xml 2009-01-21 09:35:03 UTC (rev 24846)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/listeners/config/mappers110/jbossesb_config_jms_jca.xml 2009-01-21 15:38:08 UTC (rev 24850)
@@ -1,38 +0,0 @@
-<?xml version = "1.0" encoding = "UTF-8"?>
-<jbossesb xmlns="http://anonsvn.labs.jboss.com/labs/jbossesb/trunk/product/etc/schemas/xml/jbossesb-1.1.0.xsd">
-
- <providers>
-
- <jms-jca-provider
- name="JBossMessaging"
- connection-factory="XAConnectionFactory"
- jndi-URL="jnp://127.0.0.1:1099"
- transacted="true"
- jndi-context-factory="org.jnp.interfaces.NamingContextFactory"
- jndi-pkg-prefix="org.jboss.naming:org.jnp.interfaces">
-
- <jms-bus busid="quickstartEsbChannel">
- <jms-message-filter
- dest-type="QUEUE"
- dest-name="queue/quickstart_jms_transacted_Request_esb"
- selector="CorrelationID = '13'"
- transacted="true" />
- </jms-bus>
- <activation-config>
- <property name="dLQMaxResent" value="12"/>
- <property name="dLQJNDIName" value="/queue/quickstart_jms_transacted_error"/>
- <property name="reconnectInterval" value="1000"/>
- </activation-config>
- </jms-jca-provider>
-
- </providers>
- <services>
- <service category="Test2" name="JMSJCATest" description="JMS JCA Test">
-
- <listeners>
- <jms-listener name="JMSListener" busidref="quickstartEsbChannel" maxThreads="1"/>
- </listeners>
- </service>
- </services>
-
-</jbossesb>
Copied: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/listeners/config/mappers110/jbossesb_config_jms_jca.xml (from rev 24846, labs/jbossesb/trunk/product/rosetta/tests/src/org/jboss/soa/esb/listeners/config/mappers110/jbossesb_config_jms_jca.xml)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/listeners/config/mappers110/jbossesb_config_jms_jca.xml (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/listeners/config/mappers110/jbossesb_config_jms_jca.xml 2009-01-21 15:38:08 UTC (rev 24850)
@@ -0,0 +1,38 @@
+<?xml version = "1.0" encoding = "UTF-8"?>
+<jbossesb xmlns="http://anonsvn.labs.jboss.com/labs/jbossesb/trunk/product/etc/schemas/xml/jbossesb-1.1.0.xsd">
+
+ <providers>
+
+ <jms-jca-provider
+ name="JBossMessaging"
+ connection-factory="XAConnectionFactory"
+ jndi-URL="jnp://127.0.0.1:1099"
+ transacted="true"
+ jndi-context-factory="org.jnp.interfaces.NamingContextFactory"
+ jndi-pkg-prefix="org.jboss.naming:org.jnp.interfaces">
+
+ <jms-bus busid="quickstartEsbChannel">
+ <jms-message-filter
+ dest-type="QUEUE"
+ dest-name="queue/quickstart_jms_transacted_Request_esb"
+ selector="CorrelationID = '13'"
+ transacted="true" />
+ </jms-bus>
+ <activation-config>
+ <property name="dLQMaxResent" value="12"/>
+ <property name="dLQJNDIName" value="/queue/quickstart_jms_transacted_error"/>
+ <property name="reconnectInterval" value="1000"/>
+ </activation-config>
+ </jms-jca-provider>
+
+ </providers>
+ <services>
+ <service category="Test2" name="JMSJCATest" description="JMS JCA Test">
+
+ <listeners>
+ <jms-listener name="JMSListener" busidref="quickstartEsbChannel" maxThreads="1"/>
+ </listeners>
+ </service>
+ </services>
+
+</jbossesb>
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/listeners/config/mappers110/jbossesb_config_readonly.xml
===================================================================
--- labs/jbossesb/trunk/product/rosetta/tests/src/org/jboss/soa/esb/listeners/config/mappers110/jbossesb_config_readonly.xml 2009-01-21 09:35:03 UTC (rev 24846)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/listeners/config/mappers110/jbossesb_config_readonly.xml 2009-01-21 15:38:08 UTC (rev 24850)
@@ -1,32 +0,0 @@
-<?xml version = "1.0" encoding = "UTF-8"?>
-<jbossesb xmlns="http://anonsvn.labs.jboss.com/labs/jbossesb/trunk/product/etc/schemas/xml/jbossesb-1.1.0.xsd">
-
- <providers>
-
- <ftp-provider name="FTP" hostname="localhost:21">
- <ftp-bus busid="FtpMapperTest">
- <ftp-message-filter directory="/Temp" read-only="true" input-suffix=".txt" username="joe" password="secret"/>
- </ftp-bus>
- </ftp-provider>
-
- <jbr-provider name="JBR" host="192.168.1.111" protocol="http">
- <jbr-bus busid="HTTP-2" port="8766" />
- </jbr-provider>
-
- </providers>
- <services>
- <service category="Test2" name="FTPTest" description="FTP server Test">
-
- <listeners>
- <ftp-listener name="FtpMapperListener"
- busidref="FtpMapperTest"
- is-gateway="true"
- maxThreads="1"/>
- <jbr-listener name="A2-HTTP"
- busidref="HTTP-2"
- maxThreads="1" />
- </listeners>
- </service>
- </services>
-
-</jbossesb>
Copied: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/listeners/config/mappers110/jbossesb_config_readonly.xml (from rev 24846, labs/jbossesb/trunk/product/rosetta/tests/src/org/jboss/soa/esb/listeners/config/mappers110/jbossesb_config_readonly.xml)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/listeners/config/mappers110/jbossesb_config_readonly.xml (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/listeners/config/mappers110/jbossesb_config_readonly.xml 2009-01-21 15:38:08 UTC (rev 24850)
@@ -0,0 +1,32 @@
+<?xml version = "1.0" encoding = "UTF-8"?>
+<jbossesb xmlns="http://anonsvn.labs.jboss.com/labs/jbossesb/trunk/product/etc/schemas/xml/jbossesb-1.1.0.xsd">
+
+ <providers>
+
+ <ftp-provider name="FTP" hostname="localhost:21">
+ <ftp-bus busid="FtpMapperTest">
+ <ftp-message-filter directory="/Temp" read-only="true" input-suffix=".txt" username="joe" password="secret"/>
+ </ftp-bus>
+ </ftp-provider>
+
+ <jbr-provider name="JBR" host="192.168.1.111" protocol="http">
+ <jbr-bus busid="HTTP-2" port="8766" />
+ </jbr-provider>
+
+ </providers>
+ <services>
+ <service category="Test2" name="FTPTest" description="FTP server Test">
+
+ <listeners>
+ <ftp-listener name="FtpMapperListener"
+ busidref="FtpMapperTest"
+ is-gateway="true"
+ maxThreads="1"/>
+ <jbr-listener name="A2-HTTP"
+ busidref="HTTP-2"
+ maxThreads="1" />
+ </listeners>
+ </service>
+ </services>
+
+</jbossesb>
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/listeners/config/mappers110/jbossesb_config_security.xml
===================================================================
--- labs/jbossesb/trunk/product/rosetta/tests/src/org/jboss/soa/esb/listeners/config/mappers110/jbossesb_config_security.xml 2009-01-21 09:35:03 UTC (rev 24846)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/listeners/config/mappers110/jbossesb_config_security.xml 2009-01-21 15:38:08 UTC (rev 24850)
@@ -1,34 +0,0 @@
-<?xml version = "1.0" encoding = "UTF-8"?>
-<jbossesb xmlns="http://anonsvn.labs.jboss.com/labs/jbossesb/trunk/product/etc/schemas/xml/jbossesb-1.1.0.xsd">
-
- <providers>
-
- <jms-provider
- name="JBossMessaging"
- connection-factory="XAConnectionFactory"
- jndi-URL="jnp://127.0.0.1:1099"
- jndi-context-factory="org.jnp.interfaces.NamingContextFactory"
- jndi-pkg-prefix="org.jboss.naming:org.jnp.interfaces">
-
- <jms-bus busid="quickstartEsbChannel">
- <jms-message-filter
- dest-type="QUEUE"
- dest-name="queue/quickstart_jms_transacted_Request_esb"
- selector="CorrelationID = '13'"/>
- </jms-bus>
- </jms-provider>
-
- </providers>
- <services>
- <service category="Test2" name="JMSJCATest" description="JMS JCA Test">
- <security runAs="MrPoon" moduleName="mod1" useCallersIdentity="user1"/>
- <listeners>
- <jms-listener name="JMSListener" busidref="quickstartEsbChannel" maxThreads="1"/>
- </listeners>
- <actions>
- <action name="TestDefaultRouteAction" class="org.jboss.soa.esb.actions.ContentBasedRouter"/>
- </actions>
- </service>
- </services>
-
-</jbossesb>
Copied: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/listeners/config/mappers110/jbossesb_config_security.xml (from rev 24846, labs/jbossesb/trunk/product/rosetta/tests/src/org/jboss/soa/esb/listeners/config/mappers110/jbossesb_config_security.xml)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/listeners/config/mappers110/jbossesb_config_security.xml (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/listeners/config/mappers110/jbossesb_config_security.xml 2009-01-21 15:38:08 UTC (rev 24850)
@@ -0,0 +1,34 @@
+<?xml version = "1.0" encoding = "UTF-8"?>
+<jbossesb xmlns="http://anonsvn.labs.jboss.com/labs/jbossesb/trunk/product/etc/schemas/xml/jbossesb-1.1.0.xsd">
+
+ <providers>
+
+ <jms-provider
+ name="JBossMessaging"
+ connection-factory="XAConnectionFactory"
+ jndi-URL="jnp://127.0.0.1:1099"
+ jndi-context-factory="org.jnp.interfaces.NamingContextFactory"
+ jndi-pkg-prefix="org.jboss.naming:org.jnp.interfaces">
+
+ <jms-bus busid="quickstartEsbChannel">
+ <jms-message-filter
+ dest-type="QUEUE"
+ dest-name="queue/quickstart_jms_transacted_Request_esb"
+ selector="CorrelationID = '13'"/>
+ </jms-bus>
+ </jms-provider>
+
+ </providers>
+ <services>
+ <service category="Test2" name="JMSJCATest" description="JMS JCA Test">
+ <security runAs="MrPoon" moduleName="mod1" useCallersIdentity="user1"/>
+ <listeners>
+ <jms-listener name="JMSListener" busidref="quickstartEsbChannel" maxThreads="1"/>
+ </listeners>
+ <actions>
+ <action name="TestDefaultRouteAction" class="org.jboss.soa.esb.actions.ContentBasedRouter"/>
+ </actions>
+ </service>
+ </services>
+
+</jbossesb>
Copied: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/listeners/config/request.xsd (from rev 24846, labs/jbossesb/trunk/product/rosetta/tests/src/org/jboss/soa/esb/listeners/config/request.xsd)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/listeners/config/request.xsd (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/listeners/config/request.xsd 2009-01-21 15:38:08 UTC (rev 24850)
@@ -0,0 +1,8 @@
+<xs:schema version="1.0" targetNamespace="http://www.jboss.org/sayHi" xmlns:x1="http://www.jboss.org/sayHi" xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
+ <xs:element name="sayHi" type="x1:sayHi"/>
+ <xs:complexType name="sayHi">
+ <xs:sequence>
+ <xs:element name="arg0" type="xs:string" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+</xs:schema>
Copied: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/listeners/config/response.xsd (from rev 24846, labs/jbossesb/trunk/product/rosetta/tests/src/org/jboss/soa/esb/listeners/config/response.xsd)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/listeners/config/response.xsd (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/listeners/config/response.xsd 2009-01-21 15:38:08 UTC (rev 24850)
@@ -0,0 +1,8 @@
+<xs:schema version="1.0" targetNamespace="http://www.jboss.org/sayHi" xmlns:x1="http://www.jboss.org/sayHi" xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
+ <xs:element name="sayHiReponse" type="x1:sayHiReponse"/>
+ <xs:complexType name="sayHiReponse">
+ <xs:sequence>
+ <xs:element name="arg0" type="xs:string" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+</xs:schema>
Modified: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/listeners/gateway/DefaultESBPropertiesSetterUnitTest.java
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/listeners/gateway/DefaultESBPropertiesSetterUnitTest.java 2009-01-21 14:47:17 UTC (rev 24849)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/listeners/gateway/DefaultESBPropertiesSetterUnitTest.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -34,6 +34,7 @@
import org.apache.log4j.Logger;
import org.jboss.soa.esb.message.Message;
+import org.jboss.soa.esb.message.Properties;
import org.jboss.soa.esb.message.format.MessageFactory;
import org.jboss.soa.esb.notification.jms.JMSPropertiesSetter;
import org.jboss.soa.esb.testutils.SerializableMockQueue;
@@ -129,6 +130,38 @@
assertEquals( redelivered, toESBMessage.getProperties().getProperty( JMSPropertiesSetter.JMS_REDELIVERED )) ;
}
+ @Test
+ public void setPropertiesFilterAllVendorSpecificProperties() throws JMSException
+ {
+ final String filter = "[JMS_].*";
+ DefaultESBPropertiesSetter setter = new DefaultESBPropertiesSetter(filter);
+
+ final String propertyKey = "JMS_SomeVendor_Property";
+ final String propertyValue = "myPropertyValue";
+ fromJMSTextMessage.setStringProperty( propertyKey, propertyValue );
+
+ setter.setPropertiesFromJMSMessage( fromJMSTextMessage , toESBMessage );
+
+ Properties properties = toESBMessage.getProperties();
+ assertNull(properties.getProperty(propertyKey));
+ }
+
+ @Test
+ public void setPropertiesFilterIBMQVendorSpecificProperties() throws JMSException
+ {
+ final String filter = "[JMS_IBMQ].*";
+ DefaultESBPropertiesSetter setter = new DefaultESBPropertiesSetter(filter);
+
+ final String propertyKey = "JMS_IBMQ_Property";
+ final String propertyValue = "myPropertyValue";
+ fromJMSTextMessage.setStringProperty( propertyKey, propertyValue );
+
+ setter.setPropertiesFromJMSMessage( fromJMSTextMessage , toESBMessage );
+
+ Properties properties = toESBMessage.getProperties();
+ assertNull(properties.getProperty(propertyKey));
+ }
+
@Before
public void setup()
{
Modified: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/listeners/gateway/FileGatewayListenerUnitTest.java
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/listeners/gateway/FileGatewayListenerUnitTest.java 2009-01-21 14:47:17 UTC (rev 24849)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/listeners/gateway/FileGatewayListenerUnitTest.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -23,17 +23,21 @@
package org.jboss.soa.esb.listeners.gateway;
import java.io.File;
+import java.io.FileFilter;
import java.io.FileOutputStream;
import java.io.IOException;
import java.net.MalformedURLException;
import org.apache.log4j.Logger;
+import org.jboss.internal.soa.esb.listeners.gateway.filefilter.FileEndsWith;
import org.jboss.internal.soa.esb.services.registry.MockRegistry;
import org.jboss.soa.esb.ConfigurationException;
import org.jboss.soa.esb.services.registry.RegistryException;
+import org.jboss.soa.esb.util.Util;
import org.jboss.soa.esb.common.tests.BaseTest;
import org.jboss.soa.esb.helpers.ConfigTree;
import org.jboss.soa.esb.listeners.ListenerTagNames;
+import org.jboss.soa.esb.listeners.gateway.FileGatewayListener.FileFilterInit;
import org.jboss.soa.esb.listeners.lifecycle.ManagedLifecycleException;
import org.jboss.soa.esb.listeners.message.MessageDeliverException;
import org.jboss.soa.esb.message.Message;
@@ -269,6 +273,7 @@
tree.setAttribute("target-service-category", "Example");
tree.setAttribute("target-service-name", "Test");
tree.setAttribute("gatewayClass", "org.jboss.soa.esb.listeners.gateway.FileGatewayListener");
+ tree.setAttribute("file-filter-class", OverrideFileEndsWith.class.getName());
tree.setAttribute("inputSuffix", "dummy");
tree.setAttribute("workSuffix", "work");
tree.setAttribute("postDelete", "true");
@@ -276,4 +281,4 @@
return tree;
}
-}
+}
\ No newline at end of file
Modified: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/listeners/gateway/GroovyGatewayUnitTest.java
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/listeners/gateway/GroovyGatewayUnitTest.java 2009-01-21 14:47:17 UTC (rev 24849)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/listeners/gateway/GroovyGatewayUnitTest.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -63,20 +63,27 @@
config.setAttribute("script", "/org/jboss/soa/esb/listeners/gateway/testgateway.groovy");
groovyGateway = new MockGroovyGateway(config);
- groovyGateway.doInitialise();
- Thread thread = new Thread(new Runnable() {
- public void run() {
- groovyGateway.doRun();
- }
- });
- thread.start();
-
- Thread.sleep(2000);
- assertTrue("Is already stopped", (courier1.message == null));
- groovyGateway.stopped = true;
- Thread.sleep(2000);
- assertTrue("Is not stopped", (courier1.message != null));
- assertEquals("Hi there!", (String) courier1.message.getBody().get());
+ groovyGateway.initialise();
+ try
+ {
+ Thread thread = new Thread(new Runnable() {
+ public void run() {
+ groovyGateway.doRun();
+ }
+ });
+ thread.start();
+
+ Thread.sleep(2000);
+ assertTrue("Is already stopped", (courier1.message == null));
+ groovyGateway.stopped = true;
+ Thread.sleep(2000);
+ assertTrue("Is not stopped", (courier1.message != null));
+ assertEquals("Hi there!", (String) courier1.message.getBody().get());
+ }
+ finally
+ {
+ groovyGateway.destroy() ;
+ }
}
// TODO: Fix build such that it can pick up the scripts from the src folder.
Modified: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/listeners/gateway/JBossRemotingGatewayListenerUnitTest.java
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/listeners/gateway/JBossRemotingGatewayListenerUnitTest.java 2009-01-21 14:47:17 UTC (rev 24849)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/listeners/gateway/JBossRemotingGatewayListenerUnitTest.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -100,13 +100,10 @@
} catch(ManagedLifecycleException e) {}
// Initialise...
- listener.doInitialise();
+ listener.initialise();
// try initialising again...
- try {
- listener.doInitialise();
- fail("Expected ManagedLifecycleException");
- } catch(ManagedLifecycleException e) {}
+ listener.initialise();
// try stopping without starting...
try {
@@ -115,22 +112,16 @@
} catch(ManagedLifecycleException e) {}
// Start...
- listener.doStart();
+ listener.start();
// try starting again...
- try {
- listener.start();
- fail("Expected ManagedLifecycleException");
- } catch(ManagedLifecycleException e) {}
+ listener.start();
// Stop...
- listener.doStop();
+ listener.stop();
// try stopping again...
- try {
- listener.doStop();
- fail("Expected ManagedLifecycleException");
- } catch(ManagedLifecycleException e) {}
+ listener.stop();
}
@Test
public void test_http_async() throws Throwable {
@@ -188,8 +179,8 @@
listener = new JBossRemotingGatewayListener(config);
}
- listener.doInitialise();
- listener.doStart();
+ listener.initialise();
+ listener.start();
}
private void sendMessageToServer(String protocol, Object messagePayload, final String port) throws Throwable {
@@ -223,9 +214,9 @@
private void stopServer() throws ManagedLifecycleException {
if(listener != null && listener.isStarted()) {
try {
- listener.doStop();
+ listener.stop();
} finally {
- listener.doDestroy();
+ listener.destroy();
}
}
}
@@ -246,7 +237,7 @@
try {
listener = new JBossRemotingGatewayListener(config);
- listener.doInitialise();
+ listener.initialise();
fail("Expected a ManagedLifecycleException.");
} catch (ConfigurationException e) {
log.error(e);
Copied: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/listeners/gateway/OverrideFileEndsWith.java (from rev 24846, labs/jbossesb/trunk/product/rosetta/tests/src/org/jboss/soa/esb/listeners/gateway/OverrideFileEndsWith.java)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/listeners/gateway/OverrideFileEndsWith.java (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/listeners/gateway/OverrideFileEndsWith.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -0,0 +1,54 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+
+package org.jboss.soa.esb.listeners.gateway;
+
+import java.io.File;
+import java.io.FileFilter;
+
+import org.jboss.soa.esb.ConfigurationException;
+import org.jboss.soa.esb.util.Util;
+import org.jboss.soa.esb.helpers.ConfigTree;
+import org.jboss.soa.esb.listeners.ListenerTagNames;
+import org.jboss.soa.esb.listeners.gateway.FileGatewayListener.FileFilterInit;
+
+public class OverrideFileEndsWith implements FileFilter, FileFilterInit
+{
+ public OverrideFileEndsWith ()
+ {
+ }
+
+ public void init (ConfigTree config) throws ConfigurationException
+ {
+ m_sSuffix = config.getRequiredAttribute(ListenerTagNames.FILE_INPUT_SFX_TAG).trim();;
+
+ if (Util.isNullString(m_sSuffix))
+ throw new ConfigurationException("Must specify file extension");
+ }
+
+ public boolean accept (File p_f)
+ {
+ return (p_f.isFile()) ? p_f.toString().endsWith(m_sSuffix) : false;
+ }
+
+ private String m_sSuffix;
+}
Modified: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/listeners/gateway/PackageJmsMessageContentsUnitTest.java
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/listeners/gateway/PackageJmsMessageContentsUnitTest.java 2009-01-21 14:47:17 UTC (rev 24849)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/listeners/gateway/PackageJmsMessageContentsUnitTest.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -21,6 +21,7 @@
*/
package org.jboss.soa.esb.listeners.gateway;
+import static org.junit.Assert.*;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertTrue;
@@ -80,6 +81,22 @@
packer = new PackageJmsMessageContents(proxy);
objectMsg = new ObjectMessageImpl();
}
+
+ @Test
+ public void usePropertiesFilter() throws JMSException, IOException, URISyntaxException, MessageDeliverException {
+ final String propertyKey = "JMS_IBMQ_Property";
+ final ConfigTree config = new ConfigTree("config");
+ config.setAttribute("excludeProperties", "[JMS_].*");
+
+ PackageJmsMessageContents packer = new PackageJmsMessageContents(config);
+
+ objectMsg.setObject( messageContent );
+ objectMsg.setStringProperty(propertyKey, "somevalue");
+
+ Message message = packer.process( objectMsg );
+
+ assertNull(message.getProperties().getProperty(propertyKey));
+ }
@Test
public void process_ObjectMessage() throws JMSException, IOException, URISyntaxException, MessageDeliverException {
Modified: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/listeners/gateway/ReadOnlyRemoteGatewayListenerIntegrationTest.java
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/listeners/gateway/ReadOnlyRemoteGatewayListenerIntegrationTest.java 2009-01-21 14:47:17 UTC (rev 24849)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/listeners/gateway/ReadOnlyRemoteGatewayListenerIntegrationTest.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -115,26 +115,30 @@
RemoteGatewayListenerMock mock = createAndStartListener ( configTree, getCourierReturnValue );
- File inputDir = ftpServer.getLocalInputDir();
- String doneFileName = testFile.getName();
-
- //waitForFile( inputDir, doneFileName );
- //stopdoRun( mock );
- try {
- mock.onSchedule();
- } catch (SchedulingException e) {
- fail(e.getMessage());
- }
-
- File processedFile = new File ( inputDir, doneFileName );
- try
- {
- assertTrue ( processedFile.exists() );
+ try {
+ File inputDir = ftpServer.getLocalInputDir();
+ String doneFileName = testFile.getName();
+
+ //waitForFile( inputDir, doneFileName );
+ //stopdoRun( mock );
+ try {
+ mock.onSchedule();
+ } catch (SchedulingException e) {
+ fail(e.getMessage());
+ }
+
+ File processedFile = new File ( inputDir, doneFileName );
+ try
+ {
+ assertTrue ( processedFile.exists() );
+ }
+ finally
+ {
+ FtpTestUtil.deleteFile( processedFile );
+ }
+ } finally {
+ mock.destroy();
}
- finally
- {
- FtpTestUtil.deleteFile( processedFile );
- }
}
/**
@@ -238,7 +242,7 @@
{
final RemoteGatewayListenerMock mock = new RemoteGatewayListenerMock( configTree );
try {
- mock.doInitialise();
+ mock.initialise();
} catch (ManagedLifecycleException e) {
fail(e.getMessage());
}
Modified: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/listeners/gateway/RemoteGatewayListenerIntegrationTest.java
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/listeners/gateway/RemoteGatewayListenerIntegrationTest.java 2009-01-21 14:47:17 UTC (rev 24849)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/listeners/gateway/RemoteGatewayListenerIntegrationTest.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -79,7 +79,6 @@
boolean exception = false;
gateway.initialise();
- gateway.start();
try {
try
@@ -142,7 +141,6 @@
{
}
} finally {
- gateway.stop();
gateway.destroy();
}
}
Modified: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/listeners/gateway/RemoteGatewayListenerUnitTest.java
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/listeners/gateway/RemoteGatewayListenerUnitTest.java 2009-01-21 14:47:17 UTC (rev 24849)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/listeners/gateway/RemoteGatewayListenerUnitTest.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -182,7 +182,7 @@
* postDir="/upload"
*/
@Test //( timeout=3000 )
- public void doRun_PostDir_Different_From_InputDir() throws ManagedLifecycleException, ConfigurationException, GatewayException, RegistryException, InterruptedException
+ public void doRun_PostDir_Different_From_InputDir() throws ManagedLifecycleException, ConfigurationException, GatewayException, RegistryException, InterruptedException, SchedulingException
{
setAbsoluteInputDir();
setAbsolutePostDirToUploadDir();
@@ -195,11 +195,7 @@
try {
mock.onSchedule();
- } catch (SchedulingException e) {
- fail(e.getMessage());
- }
- try {
File processedFile = new File ( done, doneFileName );
try
{
@@ -221,7 +217,7 @@
* postDir="/input"
*/
@Test ( timeout=3000 )
- public void doRun_PostDir_Same_As_InputDir() throws ManagedLifecycleException, ConfigurationException, GatewayException, RegistryException, InterruptedException
+ public void doRun_PostDir_Same_As_InputDir() throws ManagedLifecycleException, ConfigurationException, GatewayException, RegistryException, InterruptedException, SchedulingException
{
setAbsoluteInputDir();
setAbsolutePostDirToInputDir();
@@ -234,11 +230,7 @@
try {
mock.onSchedule();
- } catch (SchedulingException e) {
- fail(e.getMessage());
- }
- try {
File processedFile = new File ( inputDir, doneFileName );
try
{
@@ -263,7 +255,7 @@
* Note. when this test runs a stacktrace will be displayed. This is expected.
*/
@Test ( timeout = 2000 )
- public void doRun_Negative() throws ManagedLifecycleException, ConfigurationException, GatewayException, RegistryException, InterruptedException
+ public void doRun_Negative() throws ManagedLifecycleException, ConfigurationException, GatewayException, RegistryException, InterruptedException, SchedulingException
{
setAbsoluteInputDir();
setAbsoluteErrorDir();
@@ -271,30 +263,26 @@
log.error( "The following exceptions are expected: " );
RemoteGatewayListenerMock mock = createAndStartListener ( configTree, getCourierReturnValue );
- File errorDir = ftpServer.getLocalErrorDir();
- String errorFileName = testFile.getName() + POST_ERROR_SUFFIX;
+ try {
+ File errorDir = ftpServer.getLocalErrorDir();
+ String errorFileName = testFile.getName() + POST_ERROR_SUFFIX;
- try {
- mock.onSchedule();
- } catch (SchedulingException e) {
- fail(e.getMessage());
- }
+ mock.onSchedule();
- try {
- File errorFile = new File ( errorDir, errorFileName );
- try
- {
- assertTrue ( errorFile.exists() );
- }
- finally
- {
- FtpTestUtil.deleteFile( errorFile );
- }
- } finally {
- mock.stop();
- mock.destroy();
- }
- }
+ File errorFile = new File ( errorDir, errorFileName );
+ try
+ {
+ assertTrue ( errorFile.exists() );
+ }
+ finally
+ {
+ FtpTestUtil.deleteFile( errorFile );
+ }
+ } finally {
+ mock.stop();
+ mock.destroy();
+ }
+ }
@Test
public void renameFile_In_Same_Directory() throws GatewayException
@@ -400,7 +388,11 @@
/* post error attributes */
configTree.setAttribute( ListenerTagNames.FILE_ERROR_DIR_TAG, remoteErrorDirName );
configTree.setAttribute( ListenerTagNames.FILE_ERROR_SFX_TAG, POST_ERROR_SUFFIX);
-
+ // Do not allow the background scheduler to fire before we run the tests.
+ // We should really be allowing it to fire so that we can test the normal operation.
+ configTree.setAttribute( ListenerTagNames.SCHEDULE_ID_REF, "idref") ;
+ configTree.setAttribute( ListenerTagNames.SCHEDULE_SIMPLE_FREQUENCY, "1000000000") ;
+ configTree.setAttribute( ListenerTagNames.SCHEDULE_SIMPLE_EXEC, "0") ;
return configTree;
}
@@ -431,15 +423,11 @@
* @param returnValueForCourier the return value for the getCourier method of the RemoteGatewayListenerMock object
* @return RemoteGatewayListenerMock Mock impl of a RemoteGatewayListener.
*/
- private RemoteGatewayListenerMock createAndStartListener ( ConfigTree configTree, boolean returnValueForCourier ) throws ConfigurationException, GatewayException, RegistryException
+ private RemoteGatewayListenerMock createAndStartListener ( ConfigTree configTree, boolean returnValueForCourier ) throws ConfigurationException, GatewayException, RegistryException, ManagedLifecycleException
{
final RemoteGatewayListenerMock mock = new RemoteGatewayListenerMock( configTree );
- try {
- mock.initialise();
- mock.start();
- } catch (ManagedLifecycleException e) {
- fail(e.getMessage());
- }
+ mock.initialise();
+ mock.start();
if(returnValueForCourier) {
MockCourierFactory.courierException = null;
Copied: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/listeners/gateway/SqlTableGatewayListenerOptionalUnitTest.java (from rev 24846, labs/jbossesb/trunk/product/rosetta/tests/src/org/jboss/soa/esb/listeners/gateway/SqlTableGatewayListenerOptionalUnitTest.java)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/listeners/gateway/SqlTableGatewayListenerOptionalUnitTest.java (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/listeners/gateway/SqlTableGatewayListenerOptionalUnitTest.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -0,0 +1,187 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+
+package org.jboss.soa.esb.listeners.gateway;
+
+import java.sql.SQLException;
+import java.sql.Statement;
+
+import org.apache.log4j.Logger;
+import org.jboss.internal.soa.esb.services.registry.MockRegistry;
+import org.jboss.soa.esb.ConfigurationException;
+import org.jboss.soa.esb.addressing.eprs.JDBCEpr;
+import org.jboss.soa.esb.common.tests.BaseTest;
+import org.jboss.soa.esb.helpers.ConfigTree;
+import org.jboss.soa.esb.helpers.persist.JdbcCleanConn;
+import org.jboss.soa.esb.listeners.ListenerTagNames;
+import org.jboss.soa.esb.listeners.lifecycle.ManagedLifecycleException;
+
+public class SqlTableGatewayListenerOptionalUnitTest extends BaseTest
+{
+ private Logger log = Logger
+ .getLogger( SqlTableGatewayListenerOptionalUnitTest.class );
+
+ public SqlTableGatewayListenerOptionalUnitTest ()
+ {
+ }
+
+ public void setUp()
+ {
+ try
+ {
+ MockRegistry.install();
+ Statement stmt = getDbConnection().createStatement();
+
+ try
+ {
+ stmt.executeUpdate("DROP TABLE esb_messages");
+ }
+ catch (Exception e)
+ {
+ // Ignore
+ }
+
+ stmt.executeUpdate("CREATE TABLE esb_messages (message_id varchar NOT NULL, message varchar, status varchar, CONSTRAINT pkey_esb_messages PRIMARY KEY (message_id))");
+ }
+ catch (SQLException ex)
+ {
+ log.error(ex);
+
+ fail();
+ }
+ }
+ public void tearDown()
+ {
+ MockRegistry.uninstall();
+ }
+
+ public void testGateway () throws Exception
+ {
+ ConfigTree tree = new ConfigTree("test");
+
+ tree.setAttribute(JDBCEpr.URL_TAG, "jdbc:postgresql://myhost:5432/testDB");
+ tree.setAttribute(JDBCEpr.POST_DEL_TAG, "true");
+ tree.setAttribute(JDBCEpr.ERROR_DEL_TAG, "true");
+ tree.setAttribute(JDBCEpr.DRIVER_TAG, "org.postgresql.Driver");
+ tree.setAttribute(JDBCEpr.MESSAGE_ID_COLUMN_TAG, "message_id");
+ tree.setAttribute(JDBCEpr.PASSWORD_TAG, "secret");
+ tree.setAttribute(JDBCEpr.STATUS_COLUMN_TAG, "status");
+ tree.setAttribute(JDBCEpr.TABLE_NAME_TAG, "testtable");
+ tree.setAttribute(JDBCEpr.USERNAME_TAG, "joe");
+ tree.setAttribute(ListenerTagNames.POLL_LATENCY_SECS_TAG, "abcde");
+ tree.setAttribute("target-service-category", "Example");
+ tree.setAttribute("target-service-name", "Test");
+ tree.setAttribute("gatewayClass", "org.jboss.soa.esb.listeners.gateway.JdbcTableGatewayListener");
+
+ SqlTableGatewayListener gateway = new SqlTableGatewayListener(tree);
+
+ try
+ {
+ gateway.resolveComposerClass();
+ }
+ catch (ConfigurationException ex)
+ {
+ fail();
+ }
+
+ boolean exception = false;
+
+ tree = new ConfigTree("test");
+
+ tree.setAttribute(JDBCEpr.URL_TAG, getDbUrl());
+ tree.setAttribute(JDBCEpr.POST_DEL_TAG, "true");
+ tree.setAttribute(JDBCEpr.ERROR_DEL_TAG, "true");
+ tree.setAttribute(JDBCEpr.DRIVER_TAG, getDbDriver());
+ tree.setAttribute(JDBCEpr.MESSAGE_ID_COLUMN_TAG, "message_id");
+ tree.setAttribute(JDBCEpr.PASSWORD_TAG, getDbPassword());
+ tree.setAttribute(JDBCEpr.STATUS_COLUMN_TAG, "status");
+ tree.setAttribute(JDBCEpr.TABLE_NAME_TAG, "esb_messages");
+ tree.setAttribute(JDBCEpr.USERNAME_TAG, getDbUser());
+ tree.setAttribute(ListenerTagNames.POLL_LATENCY_SECS_TAG, "1000");
+ tree.setAttribute("target-service-category", "Example");
+ tree.setAttribute("target-service-name", "Test");
+ tree.setAttribute("gatewayClass", "org.jboss.soa.esb.listeners.gateway.JdbcTableGatewayListener");
+ tree.setAttribute(ListenerTagNames.SQL_SELECT_FIELDS_TAG, "esb_messages");
+
+ exception = false;
+
+ try
+ {
+ gateway = new SqlTableGatewayListener(tree);
+ }
+ catch (ConfigurationException ex)
+ {
+ exception = true;
+ }
+
+ if (!exception)
+ fail();
+
+ tree.setAttribute(ListenerTagNames.SQL_SELECT_FIELDS_TAG, "*");
+
+ gateway = new SqlTableGatewayListener(tree);
+
+ try
+ {
+ JdbcCleanConn conn = gateway.getDbConn();
+ gateway.prepareStatements();
+ }
+ catch (RuntimeException ex)
+ {
+ log.error(ex);
+
+ fail();
+ }
+
+ gateway.resolveComposerClass();
+
+ exception = false;
+
+ try
+ {
+ gateway.doInitialise();
+ }
+ catch (ManagedLifecycleException ex)
+ {
+ exception = true;
+ }
+
+ if (!exception)
+ fail();
+
+ gateway.pollForCandidates();
+
+ gateway.doThreadedDestroy();
+
+ gateway.changeStatusToDone();
+
+ try
+ {
+ gateway.deleteCurrentRow();
+ }
+ catch (IllegalStateException ex)
+ {
+ fail();
+ }
+ }
+
+}
Modified: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/listeners/message/ActionProcessingPipelineUnitTest.java
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/listeners/message/ActionProcessingPipelineUnitTest.java 2009-01-21 14:47:17 UTC (rev 24849)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/listeners/message/ActionProcessingPipelineUnitTest.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -22,20 +22,45 @@
package org.jboss.soa.esb.listeners.message;
+import java.io.Serializable;
+import java.net.URL;
+import java.security.AccessControlContext;
+import java.security.AccessController;
+
+import javax.security.auth.Subject;
+
+import junit.framework.JUnit4TestAdapter;
import junit.framework.TestCase;
import org.jboss.soa.esb.ConfigurationException;
+import org.jboss.soa.esb.common.Environment;
import org.jboss.soa.esb.common.ModulePropertyManager;
import org.jboss.soa.esb.helpers.ConfigTree;
+import org.jboss.soa.esb.lifecycle.LifecycleResourceManager;
import org.jboss.soa.esb.listeners.ListenerTagNames;
+import org.jboss.soa.esb.message.Message;
import org.jboss.soa.esb.message.format.MessageFactory;
+import org.jboss.soa.esb.services.security.PublicCryptoUtil;
+import org.jboss.soa.esb.services.security.SecurityContext;
+import org.jboss.soa.esb.services.security.SecurityContextUnitTest;
+import org.jboss.soa.esb.services.security.SecurityService;
+import org.jboss.soa.esb.services.security.SecurityServiceException;
+import org.jboss.soa.esb.services.security.TestPrincipal;
+import org.jboss.soa.esb.services.security.auth.AuthenticationRequest;
+import org.jboss.soa.esb.services.security.auth.AuthenticationRequestImpl;
+import org.jboss.soa.esb.services.security.principals.User;
+import org.jboss.soa.esb.util.ClassUtil;
+import org.junit.After;
+import org.junit.Before;
public class ActionProcessingPipelineUnitTest extends TestCase
{
- public void testProperty() {
-
+ private String jbossEsbProperties;
+
+ public void testProperty() {
+
}
-
+
@Override
protected void setUp() throws Exception
{
@@ -45,13 +70,27 @@
com.arjuna.common.util.propertyservice.PropertyManager pm = ModulePropertyManager.getPropertyManager(ModulePropertyManager.DBSTORE_MODULE);
pm.setProperty("javax.xml.registry.ConnectionFactoryClass", "org.apache.ws.scout.registry.ConnectionFactoryImpl");
+ LifecycleResourceManager.getSingleton().associateDeployment(getClass().getCanonicalName()) ;
+
+ jbossEsbProperties = System.getProperty(Environment.PROPERTIES_FILE);
+ URL resource = ClassUtil.getResource("security-properties.xml", getClass());
+ System.setProperty(Environment.PROPERTIES_FILE, "abs://" + resource.getFile());
}
-
+
+ @Override
+ protected void tearDown() throws Exception
+ {
+ LifecycleResourceManager.getSingleton().disassociateDeployment(getClass().getCanonicalName()) ;
+ if ( jbossEsbProperties != null )
+ System.setProperty(Environment.PROPERTIES_FILE, jbossEsbProperties);
+ super.tearDown();
+ }
+
/*
* Tests to run
* - create a pipeline with a failure, make sure failure is called in correct order and subsequent actions are not called.
* Check initialise and destroy called.
- *
+ *
* Do the above for each type of action.
*/
public void testActionPipelineProcessor()
@@ -70,30 +109,30 @@
final ActionProcessingPipeline pipeline = new ActionProcessingPipeline(configTree) ;
pipeline.initialise() ;
checkOrder(MockActionInfo.getInitialiseList(), 0, 2, 4) ;
-
+
final boolean result = pipeline.process(MessageFactory.getInstance().getMessage()) ;
assertTrue("Pipeline process failure", result) ;
checkOrder(MockActionInfo.getProcessList(), 0, 2, 4) ;
checkOrder(MockActionInfo.getSuccessList(), 4, 2, 0) ;
checkOrder(MockActionInfo.getExceptionList()) ;
-
+
final boolean secondResult = pipeline.process(MessageFactory.getInstance().getMessage()) ;
assertTrue("Pipeline process failure", secondResult) ;
checkOrder(MockActionInfo.getProcessList(), 0, 2, 4, 0, 2, 4) ;
checkOrder(MockActionInfo.getSuccessList(), 4, 2, 0, 4, 2, 0) ;
checkOrder(MockActionInfo.getExceptionList()) ;
-
+
pipeline.destroy() ;
checkOrder(MockActionInfo.getDestroyList(), 4, 2, 0) ;
}
-
+
public void testActionPipelineProcessorFailure()
throws Exception
{
final ConfigTree configTree = new ConfigTree("parent") ;
configTree.setAttribute(ListenerTagNames.MEP_ATTRIBUTE_TAG,
ListenerTagNames.MEP_ONE_WAY) ;
-
+
addAction(configTree, MockActionPipelineProcessor.class.getName(),
null, null, null) ;
addAction(configTree, MockActionPipelineProcessorFailure.class.getName(),
@@ -104,7 +143,7 @@
final ActionProcessingPipeline pipeline = new ActionProcessingPipeline(configTree) ;
pipeline.initialise() ;
checkOrder(MockActionInfo.getInitialiseList(), 0, 2, 4) ;
-
+
final boolean result = pipeline.process(MessageFactory.getInstance().getMessage()) ;
assertFalse("Pipeline process succeeded", result) ;
checkOrder(MockActionInfo.getProcessList(), 0, 2) ;
@@ -120,14 +159,14 @@
pipeline.destroy() ;
checkOrder(MockActionInfo.getDestroyList(), 4, 2, 0) ;
}
-
+
public void testOverriddenActionPipelineProcessor()
throws Exception
{
final ConfigTree configTree = new ConfigTree("parent") ;
configTree.setAttribute(ListenerTagNames.MEP_ATTRIBUTE_TAG,
ListenerTagNames.MEP_ONE_WAY) ;
-
+
addAction(configTree, MockActionPipelineProcessor.class.getName(),
"process", null, null) ;
addAction(configTree, MockActionPipelineProcessor.class.getName(),
@@ -140,30 +179,30 @@
final ActionProcessingPipeline pipeline = new ActionProcessingPipeline(configTree) ;
pipeline.initialise() ;
checkOrder(MockActionInfo.getInitialiseList(), 0, 2, 4, 6) ;
-
+
final boolean result = pipeline.process(MessageFactory.getInstance().getMessage()) ;
assertTrue("Pipeline process failure", result) ;
checkOrder(MockActionInfo.getProcessList(), 0, 2, 4, 6, 7) ;
checkOrder(MockActionInfo.getSuccessList(), 7, 4, 3, 0) ;
checkOrder(MockActionInfo.getExceptionList()) ;
-
+
final boolean secondResult = pipeline.process(MessageFactory.getInstance().getMessage()) ;
assertTrue("Pipeline process failure", secondResult) ;
checkOrder(MockActionInfo.getProcessList(), 0, 2, 4, 6, 7, 0, 2, 4, 6, 7) ;
checkOrder(MockActionInfo.getSuccessList(), 7, 4, 3, 0, 7, 4, 3, 0) ;
checkOrder(MockActionInfo.getExceptionList()) ;
-
+
pipeline.destroy() ;
checkOrder(MockActionInfo.getDestroyList(), 6, 4, 2, 0) ;
}
-
+
public void testOverriddenActionPipelineProcessorFailure()
throws Exception
{
final ConfigTree configTree = new ConfigTree("parent") ;
configTree.setAttribute(ListenerTagNames.MEP_ATTRIBUTE_TAG,
ListenerTagNames.MEP_ONE_WAY) ;
-
+
addAction(configTree, MockActionPipelineProcessor.class.getName(),
"process", null, null) ;
addAction(configTree, MockActionPipelineProcessor.class.getName(),
@@ -176,30 +215,30 @@
final ActionProcessingPipeline pipeline = new ActionProcessingPipeline(configTree) ;
pipeline.initialise() ;
checkOrder(MockActionInfo.getInitialiseList(), 0, 2, 4, 6) ;
-
+
final boolean result = pipeline.process(MessageFactory.getInstance().getMessage()) ;
assertFalse("Pipeline process succeeded", result) ;
checkOrder(MockActionInfo.getProcessList(), 0, 2, 4) ;
checkOrder(MockActionInfo.getSuccessList()) ;
checkOrder(MockActionInfo.getExceptionList(), 5, 2, 0) ;
-
+
final boolean secondResult = pipeline.process(MessageFactory.getInstance().getMessage()) ;
assertFalse("Pipeline process succeeded", secondResult) ;
checkOrder(MockActionInfo.getProcessList(), 0, 2, 4, 0, 2, 4) ;
checkOrder(MockActionInfo.getSuccessList()) ;
checkOrder(MockActionInfo.getExceptionList(), 5, 2, 0, 5, 2, 0) ;
-
+
pipeline.destroy() ;
checkOrder(MockActionInfo.getDestroyList(), 6, 4, 2, 0) ;
}
-
+
public void testOverriddenActionLifecycleProcessor()
throws Exception
{
final ConfigTree configTree = new ConfigTree("parent") ;
configTree.setAttribute(ListenerTagNames.MEP_ATTRIBUTE_TAG,
ListenerTagNames.MEP_ONE_WAY) ;
-
+
addAction(configTree, MockActionLifecycleProcessor.class.getName(),
"process", null, null) ;
addAction(configTree, MockActionLifecycleProcessor.class.getName(),
@@ -212,30 +251,30 @@
final ActionProcessingPipeline pipeline = new ActionProcessingPipeline(configTree) ;
pipeline.initialise() ;
checkOrder(MockActionInfo.getInitialiseList(), 0, 2, 4, 6) ;
-
+
final boolean result = pipeline.process(MessageFactory.getInstance().getMessage()) ;
assertTrue("Pipeline process failure", result) ;
checkOrder(MockActionInfo.getProcessList(), 0, 2, 4, 6, 7) ;
checkOrder(MockActionInfo.getSuccessList(), 7, 2) ;
checkOrder(MockActionInfo.getExceptionList()) ;
-
+
final boolean secondResult = pipeline.process(MessageFactory.getInstance().getMessage()) ;
assertTrue("Pipeline process failure", secondResult) ;
checkOrder(MockActionInfo.getProcessList(), 0, 2, 4, 6, 7, 0, 2, 4, 6, 7) ;
checkOrder(MockActionInfo.getSuccessList(), 7, 2, 7, 2) ;
checkOrder(MockActionInfo.getExceptionList()) ;
-
+
pipeline.destroy() ;
checkOrder(MockActionInfo.getDestroyList(), 6, 4, 2, 0) ;
}
-
+
public void testOverriddenActionLifecycleProcessorFailure()
throws Exception
{
final ConfigTree configTree = new ConfigTree("parent") ;
configTree.setAttribute(ListenerTagNames.MEP_ATTRIBUTE_TAG,
ListenerTagNames.MEP_ONE_WAY) ;
-
+
addAction(configTree, MockActionLifecycleProcessor.class.getName(),
"process", null, null) ;
addAction(configTree, MockActionLifecycleProcessor.class.getName(),
@@ -248,30 +287,30 @@
final ActionProcessingPipeline pipeline = new ActionProcessingPipeline(configTree) ;
pipeline.initialise() ;
checkOrder(MockActionInfo.getInitialiseList(), 0, 2, 4, 6) ;
-
+
final boolean result = pipeline.process(MessageFactory.getInstance().getMessage()) ;
assertFalse("Pipeline process succeeded", result) ;
checkOrder(MockActionInfo.getProcessList(), 0, 2, 4) ;
checkOrder(MockActionInfo.getSuccessList()) ;
checkOrder(MockActionInfo.getExceptionList(), 5) ;
-
+
final boolean secondResult = pipeline.process(MessageFactory.getInstance().getMessage()) ;
assertFalse("Pipeline process succeeded", secondResult) ;
checkOrder(MockActionInfo.getProcessList(), 0, 2, 4, 0, 2, 4) ;
checkOrder(MockActionInfo.getSuccessList()) ;
checkOrder(MockActionInfo.getExceptionList(), 5, 5) ;
-
+
pipeline.destroy() ;
checkOrder(MockActionInfo.getDestroyList(), 6, 4, 2, 0) ;
}
-
+
public void testOverriddenActionProcessor()
throws Exception
{
final ConfigTree configTree = new ConfigTree("parent") ;
configTree.setAttribute(ListenerTagNames.MEP_ATTRIBUTE_TAG,
ListenerTagNames.MEP_ONE_WAY) ;
-
+
addAction(configTree, MockActionProcessor.class.getName(),
"process", null, null) ;
addAction(configTree, MockActionProcessor.class.getName(),
@@ -284,30 +323,30 @@
final ActionProcessingPipeline pipeline = new ActionProcessingPipeline(configTree) ;
pipeline.initialise() ;
checkOrder(MockActionInfo.getInitialiseList()) ;
-
+
final boolean result = pipeline.process(MessageFactory.getInstance().getMessage()) ;
assertTrue("Pipeline process failure", result) ;
checkOrder(MockActionInfo.getProcessList(), 0, 2, 4, 6, 7) ;
checkOrder(MockActionInfo.getSuccessList(), 7, 2) ;
checkOrder(MockActionInfo.getExceptionList()) ;
-
+
final boolean secondResult = pipeline.process(MessageFactory.getInstance().getMessage()) ;
assertTrue("Pipeline process failure", secondResult) ;
checkOrder(MockActionInfo.getProcessList(), 0, 2, 4, 6, 7, 8, 10, 12, 14, 15) ;
checkOrder(MockActionInfo.getSuccessList(), 7, 2, 15, 10) ;
checkOrder(MockActionInfo.getExceptionList()) ;
-
+
pipeline.destroy() ;
checkOrder(MockActionInfo.getDestroyList()) ;
}
-
+
public void testOverriddenActionProcessorFailure()
throws Exception
{
final ConfigTree configTree = new ConfigTree("parent") ;
configTree.setAttribute(ListenerTagNames.MEP_ATTRIBUTE_TAG,
ListenerTagNames.MEP_ONE_WAY) ;
-
+
addAction(configTree, MockActionProcessor.class.getName(),
"process", null, null) ;
addAction(configTree, MockActionProcessor.class.getName(),
@@ -320,23 +359,23 @@
final ActionProcessingPipeline pipeline = new ActionProcessingPipeline(configTree) ;
pipeline.initialise() ;
checkOrder(MockActionInfo.getInitialiseList()) ;
-
+
final boolean result = pipeline.process(MessageFactory.getInstance().getMessage()) ;
assertFalse("Pipeline process succeeded", result) ;
checkOrder(MockActionInfo.getProcessList(), 0, 2, 4) ;
checkOrder(MockActionInfo.getSuccessList()) ;
checkOrder(MockActionInfo.getExceptionList(), 5) ;
-
+
final boolean secondResult = pipeline.process(MessageFactory.getInstance().getMessage()) ;
assertFalse("Pipeline process succeeded", secondResult) ;
checkOrder(MockActionInfo.getProcessList(), 0, 2, 4, 6, 8, 10) ;
checkOrder(MockActionInfo.getSuccessList()) ;
checkOrder(MockActionInfo.getExceptionList(), 5, 11) ;
-
+
pipeline.destroy() ;
checkOrder(MockActionInfo.getDestroyList()) ;
}
-
+
public void testErrorActionProcessorException() throws Exception
{
final ConfigTree configTree = new ConfigTree("parent");
@@ -356,13 +395,13 @@
final ActionProcessingPipeline pipeline = new ActionProcessingPipeline(
configTree);
pipeline.initialise();
-
+
final boolean result = pipeline.process(MessageFactory.getInstance()
.getMessage());
-
+
assertFalse(result);
}
-
+
public void testNPEActionProcessorException() throws Exception
{
final ConfigTree configTree = new ConfigTree("parent");
@@ -382,20 +421,20 @@
final ActionProcessingPipeline pipeline = new ActionProcessingPipeline(
configTree);
pipeline.initialise();
-
+
final boolean result = pipeline.process(MessageFactory.getInstance()
.getMessage());
-
+
assertFalse(result);
}
-
+
public void testInvalidConstructor()
throws Exception
{
final ConfigTree configTree = new ConfigTree("parent") ;
configTree.setAttribute(ListenerTagNames.MEP_ATTRIBUTE_TAG,
ListenerTagNames.MEP_ONE_WAY) ;
-
+
addAction(configTree, MockActionPipelineProcessorConstructorFailure.class.getName(),
null, null, null) ;
try
@@ -405,10 +444,149 @@
}
catch (final ConfigurationException ce)
{
-
+
}
}
+ public void testSecuredServiceWithoutExistingSecurityContext() throws Exception
+ {
+ final ConfigTree configTree = new ConfigTree("parent") ;
+ // added the security configuration
+ addSecurityConfig(configTree, "adminRole", null, "SuccessfulLogin", null);
+ configTree.setAttribute(ListenerTagNames.MEP_ATTRIBUTE_TAG, ListenerTagNames.MEP_ONE_WAY) ;
+
+ addAction(configTree, MockSecuredActionProcessor.class.getName(), "process", null, null) ;
+
+ final ActionProcessingPipeline pipeline = new ActionProcessingPipeline(configTree) ;
+ pipeline.initialise() ;
+ checkOrder(MockActionInfo.getInitialiseList()) ;
+
+ Message message = MessageFactory.getInstance().getMessage();
+
+ // create an AuthenticationRequest which is needed to authenticate if the security
+ AuthenticationRequest build = new AuthenticationRequestImpl.Builder().build();
+ message.getContext().setContext(SecurityService.AUTH_REQUEST, PublicCryptoUtil.INSTANCE.encrypt((Serializable) build));
+
+ final boolean result = pipeline.process(message);
+ assertTrue(result);
+ assertEquals(new TestPrincipal("test").getName(), MockSecuredActionProcessor.getSubject().getPrincipals().iterator().next().getName());
+
+ pipeline.destroy() ;
+ checkOrder(MockActionInfo.getDestroyList()) ;
+ }
+
+ public void testSecuredServiceWithoutAutenticationRequest() throws Exception
+ {
+ final ConfigTree configTree = new ConfigTree("parent") ;
+
+ // added the security configuration
+ addSecurityConfig(configTree, "adminRole", null, "SuccessfulLogin", null);
+ configTree.setAttribute(ListenerTagNames.MEP_ATTRIBUTE_TAG, ListenerTagNames.MEP_ONE_WAY) ;
+
+ addAction(configTree, MockSecuredActionProcessor.class.getName(), "process", null, null) ;
+
+ final ActionProcessingPipeline pipeline = new ActionProcessingPipeline(configTree) ;
+ pipeline.initialise() ;
+ checkOrder(MockActionInfo.getInitialiseList()) ;
+
+ Message message = MessageFactory.getInstance().getMessage();
+
+ try
+ {
+ pipeline.process(message);
+ }
+ catch(final Exception e)
+ {
+ assertTrue(e instanceof SecurityServiceException);
+ }
+
+ pipeline.destroy() ;
+ checkOrder(MockActionInfo.getDestroyList()) ;
+ }
+
+ public void testSecuredServiceWithPreExistingSecurityContext() throws Exception
+ {
+ final ConfigTree configTree = new ConfigTree("parent") ;
+ addSecurityConfig(configTree, "adminRole", null, "SuccessfulLogin", null);
+ configTree.setAttribute(ListenerTagNames.MEP_ATTRIBUTE_TAG, ListenerTagNames.MEP_ONE_WAY) ;
+
+ addAction(configTree, MockSecuredActionProcessor.class.getName(), "process", null, null) ;
+
+ final ActionProcessingPipeline pipeline = new ActionProcessingPipeline(configTree) ;
+ pipeline.initialise() ;
+ checkOrder(MockActionInfo.getInitialiseList()) ;
+
+ Message message = MessageFactory.getInstance().getMessage();
+
+ Subject subject = new Subject();
+ // add principal
+ User user = new User("AustinPowerwich");
+ subject.getPrincipals().add(user);
+ // add public credentials
+ byte[] publicCred = "publicsecret".getBytes();
+ subject.getPublicCredentials().add(publicCred);
+ // add private credentials
+ byte[] privateCred = "privatesecret".getBytes();
+ subject.getPrivateCredentials().add(privateCred);
+
+ // create and encrypt the security context. This simulates a call for a service
+ // that has already been authentcated..
+ SecurityContext securityContext = new SecurityContext(subject);
+ byte[] encrypt = SecurityContext.encryptContext(securityContext);
+
+ message.getContext().setContext(SecurityService.CONTEXT, encrypt);
+
+ final boolean result = pipeline.process(message);
+
+ assertTrue(result);
+ assertEquals(user, MockSecuredActionProcessor.getSubject().getPrincipals().iterator().next());
+
+ assertNull(message.getContext().getContext(SecurityService.CONTEXT));
+
+ pipeline.destroy() ;
+ checkOrder(MockActionInfo.getDestroyList()) ;
+ }
+
+ public void testSecuredWithSecurityContextRolesAllowedNegativeCheck() throws Exception
+ {
+ final ConfigTree configTree = new ConfigTree("parent") ;
+ configTree.setAttribute(ListenerTagNames.MEP_ATTRIBUTE_TAG, ListenerTagNames.MEP_ONE_WAY) ;
+ addSecurityConfig(configTree, "adminRole", null, "SuccessfulLogin", "noRole");
+
+ addAction(configTree, MockSecuredActionProcessor.class.getName(), "process", null, null) ;
+
+ final ActionProcessingPipeline pipeline = new ActionProcessingPipeline(configTree) ;
+ pipeline.initialise() ;
+ checkOrder(MockActionInfo.getInitialiseList()) ;
+
+ Message message = MessageFactory.getInstance().getMessage();
+
+ Subject subject = new Subject();
+ User user = new User("AustinPowerwich");
+ subject.getPrincipals().add(user);
+ byte[] publicCred = "publicsecret".getBytes();
+ subject.getPublicCredentials().add(publicCred);
+ byte[] privateCred = "privatesecret".getBytes();
+ subject.getPrivateCredentials().add(privateCred);
+ SecurityContext securityContext = new SecurityContext(subject);
+ byte[] encrypt = SecurityContext.encryptContext(securityContext);
+
+ message.getContext().setContext(SecurityService.CONTEXT, encrypt);
+
+ try
+ {
+ pipeline.process(message);
+ }
+ catch(final Exception e)
+ {
+ e.printStackTrace();
+ assertTrue (e instanceof SecurityServiceException);
+ }
+
+ pipeline.destroy() ;
+ checkOrder(MockActionInfo.getDestroyList()) ;
+ }
+
public static void addAction(final ConfigTree configTree, final String actionName) {
addAction(configTree, actionName, null, null, null);
}
@@ -431,17 +609,36 @@
actionChild.setAttribute(ListenerTagNames.EXCEPTION_METHOD_TAG, exceptionOverride) ;
}
}
-
+
private void checkOrder(final Integer[] list, int ... values)
{
final int numValues = (values == null ? 0 : values.length) ;
final int listLength = (list == null ? 0 : list.length) ;
-
+
assertEquals("Unexpected list/values count", numValues, listLength) ;
-
+
for(int count = 0 ; count < numValues ; count++)
{
assertEquals("Unexpected call order at count " + count, values[count], list[count].intValue()) ;
}
}
+
+ private ConfigTree addSecurityConfig(
+ final ConfigTree parent,
+ final String runAs,
+ final String callerIdentity,
+ final String moduleName,
+ final String rolesAllowed)
+ {
+ final ConfigTree securityElement = new ConfigTree(ListenerTagNames.SECURITY_TAG, parent);
+ securityElement.setAttribute(ListenerTagNames.RUN_AS_TAG, runAs);
+ securityElement.setAttribute(ListenerTagNames.USE_CALLERS_IDENTIDY_TAG, callerIdentity);
+ securityElement.setAttribute(ListenerTagNames.MODULE_NAME_TAG, moduleName);
+ if ( rolesAllowed != null )
+ {
+ securityElement.setAttribute(ListenerTagNames.ROLES_ALLOWED, rolesAllowed);
+ }
+ return securityElement;
+ }
+
}
Copied: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/listeners/message/BeanConfigActionProcessorUnitTest.java (from rev 24846, labs/jbossesb/trunk/product/rosetta/tests/src/org/jboss/soa/esb/listeners/message/BeanConfigActionProcessorUnitTest.java)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/listeners/message/BeanConfigActionProcessorUnitTest.java (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/listeners/message/BeanConfigActionProcessorUnitTest.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -0,0 +1,116 @@
+/*
+ * JBoss, Home of Professional Open Source Copyright 2009, Red Hat Middleware
+ * LLC, and individual contributors by the @authors tag. See the copyright.txt
+ * in the distribution for a full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it under the
+ * terms of the GNU Lesser General Public License as published by the Free
+ * Software Foundation; either version 2.1 of the License, or (at your option)
+ * any later version.
+ *
+ * This software is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+ * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
+ * details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this software; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA, or see the FSF
+ * site: http://www.fsf.org.
+ */
+package org.jboss.soa.esb.listeners.message;
+
+import static org.junit.Assert.*;
+import junit.framework.JUnit4TestAdapter;
+
+import org.jboss.soa.esb.ConfigurationException;
+import org.jboss.soa.esb.actions.ActionProcessingException;
+import org.jboss.soa.esb.helpers.ConfigTree;
+import org.jboss.soa.esb.message.Message;
+import org.jboss.soa.esb.message.format.MessageFactory;
+import org.junit.Test;
+
+/**
+ * Test for {@link BeanConfigActionProcessor}.
+ *
+ * @author <a href="mailto:dbevenius at jboss.com">Daniel Bevenius</a>
+ *
+ */
+public class BeanConfigActionProcessorUnitTest
+{
+ @Test (expected = IllegalArgumentException.class)
+ public void constructorNullConfig() throws ConfigurationException
+ {
+ new BeanConfigActionProcessor(null, getClass());
+ }
+
+ @Test (expected = IllegalArgumentException.class)
+ public void constructorNullActionClass() throws ConfigurationException
+ {
+ new BeanConfigActionProcessor(new ConfigTree("test"), null);
+ }
+
+ @Test
+ public void processActionClass() throws ActionProcessingException, ConfigurationException
+ {
+ Class<?> actionClass = TestAction2.class;
+ ConfigTree actionConfig = createActionConfig(actionClass.getName());
+ Message processedMsg = process(actionConfig, actionClass);
+
+ TestAction2 testAction = (TestAction2) processedMsg.getBody().get();
+ assertEquals("Daniel", testAction.getFirstName());
+ }
+
+ @Test
+ public void processActionClassWithServiceInformation() throws ActionProcessingException, ConfigurationException
+ {
+ Class<?> actionClass = TestAction.class;
+ ConfigTree actionConfig = createConfig(actionClass.getName());
+ Message processedMsg = process(actionConfig, actionClass);
+
+ TestAction testAction = (TestAction) processedMsg.getBody().get();
+ assertEquals("Daniel", testAction.getFirstName());
+ assertEquals("TestCategory", testAction.getServiceCategory());
+ assertEquals("TestService", testAction.getServiceName());
+ }
+
+ private Message process(final ConfigTree config, final Class<?> actionClass) throws ConfigurationException, ActionProcessingException
+ {
+ BeanConfigActionProcessor processor = new BeanConfigActionProcessor(config, actionClass);
+ Message message = MessageFactory.getInstance().getMessage();
+ return processor.process(message);
+ }
+
+ private ConfigTree createConfig(final String actionClass)
+ {
+ ConfigTree serviceConfig = new ConfigTree("listener");
+ serviceConfig.setAttribute("listener-class", "org.jboss.soa.esb.listeners.message.MessageAwareListener");
+ serviceConfig.setAttribute("max-threads", "1");
+ serviceConfig.setAttribute("mep", "OneWay");
+ serviceConfig.setAttribute("name", "JMS-ESBListener");
+ serviceConfig.setAttribute("service-category", "TestCategory");
+ serviceConfig.setAttribute("service-name", "TestService");
+ serviceConfig.setAttribute("service-description", "Some description of the service");
+ return createActionConfig(actionClass, serviceConfig);
+ }
+
+ private ConfigTree createActionConfig(final String actionClass)
+ {
+ return createActionConfig(actionClass, null);
+ }
+
+ private ConfigTree createActionConfig(final String actionClass, final ConfigTree parent)
+ {
+ ConfigTree actionConfig = parent == null ? new ConfigTree("action") : new ConfigTree("action", parent);
+ actionConfig.setAttribute("action", "testAction");
+ actionConfig.setAttribute("class", actionClass);
+ actionConfig.setAttribute("firstName", "Daniel");
+ return actionConfig;
+ }
+
+ public static junit.framework.Test suite()
+ {
+ return new JUnit4TestAdapter(BeanConfigActionProcessorUnitTest.class);
+ }
+
+}
Copied: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/listeners/message/MockSecuredActionProcessor.java (from rev 24846, labs/jbossesb/trunk/product/rosetta/tests/src/org/jboss/soa/esb/listeners/message/MockSecuredActionProcessor.java)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/listeners/message/MockSecuredActionProcessor.java (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/listeners/message/MockSecuredActionProcessor.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -0,0 +1,52 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+
+package org.jboss.soa.esb.listeners.message;
+
+import java.security.AccessController;
+
+import javax.security.auth.Subject;
+
+import org.jboss.soa.esb.actions.ActionProcessingException;
+import org.jboss.soa.esb.helpers.ConfigTree;
+import org.jboss.soa.esb.message.Message;
+
+public class MockSecuredActionProcessor
+{
+ private static Subject subject ;
+
+ public MockSecuredActionProcessor(final ConfigTree tree)
+ {
+ }
+
+ public Message process(Message message) throws ActionProcessingException
+ {
+ subject = Subject.getSubject(AccessController.getContext());
+ return message ;
+ }
+
+ public static Subject getSubject()
+ {
+ return subject;
+ }
+
+}
Copied: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/listeners/message/ServiceInvokerCallUnitTest.java (from rev 24846, labs/jbossesb/trunk/product/rosetta/tests/src/org/jboss/soa/esb/listeners/message/ServiceInvokerCallUnitTest.java)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/listeners/message/ServiceInvokerCallUnitTest.java (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/listeners/message/ServiceInvokerCallUnitTest.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -0,0 +1,297 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and others contributors as indicated
+ * by the @authors tag. All rights reserved.
+ * See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License, v. 2.1.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+ * PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
+ * You should have received a copy of the GNU Lesser General Public License,
+ * v.2.1 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301, USA.
+ *
+ * (C) 2005-2006, JBoss Inc.
+ */
+package org.jboss.soa.esb.listeners.message;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNull;
+import static org.junit.Assert.fail;
+
+import java.net.URI;
+
+import junit.framework.JUnit4TestAdapter;
+
+import org.jboss.internal.soa.esb.couriers.MockCourier;
+import org.jboss.internal.soa.esb.couriers.MockCourierFactory;
+import org.jboss.internal.soa.esb.services.registry.MockRegistry;
+import org.jboss.soa.esb.addressing.EPR;
+import org.jboss.soa.esb.addressing.eprs.JMSEpr;
+import org.jboss.soa.esb.client.ServiceInvoker;
+import org.jboss.soa.esb.message.Message;
+import org.jboss.soa.esb.message.format.MessageFactory;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+/**
+ * Tests for Call modifications while invoking through ServiceInvoker.
+ *
+ * @author <a href="mailto:kevin.conner at jboss.com">Kevin Conner</a>
+ */
+public class ServiceInvokerCallUnitTest
+{
+ private EPR deliverEPR ;
+ private EPR failEPR ;
+ private EPR pickupEPR ;
+ private JMSEpr jmsDeliverEPR ;
+ private MockCourier deliverCourier ;
+ private MockCourier failCourier ;
+ private Message responseMessage ;
+
+ @Before
+ public void setUp()
+ throws Exception
+ {
+ MockCourierFactory.install() ;
+ MockRegistry.install() ;
+
+ deliverEPR = new EPR(new URI("test:deliver")) ;
+ failEPR = new EPR(new URI("test:fail")) ;
+ pickupEPR = new EPR(new URI("test:pickup")) ;
+ jmsDeliverEPR = new JMSEpr(JMSEpr.QUEUE_TYPE, "deliver", "ConnectionFactory") ;
+
+ deliverCourier = new MockCourier(true);
+ failCourier = new MockCourier(false);
+ responseMessage = MessageFactory.getInstance().getMessage() ;
+ deliverCourier.pickupMessage = responseMessage ;
+
+ MockRegistry.register("test", "deliver", deliverEPR, deliverCourier);
+ MockRegistry.register("test", "fail", failEPR, failCourier);
+ MockRegistry.register("test", "jmsdeliver", jmsDeliverEPR, deliverCourier);
+
+ final EPR deadLetterEPR = new EPR(new URI("internal:DLQ")) ;
+ MockRegistry.register(ServiceInvoker.INTERNAL_SERVICE_CATEGORY, ServiceInvoker.DEAD_LETTER_SERVICE_NAME, deadLetterEPR, deliverCourier);
+ }
+
+ @After
+ public void tearDown()
+ throws Exception
+ {
+ MockRegistry.uninstall() ;
+ MockCourierFactory.uninstall() ;
+ }
+
+ @Test
+ public void testNullSyncEPRs()
+ throws Exception
+ {
+ final Message message = MessageFactory.getInstance().getMessage() ;
+
+ final ServiceInvoker si = new ServiceInvoker("test", "jmsdeliver") ;
+ final Message resp = si.deliverSync(message, 10) ;
+
+ assertEquals("Response message", resp, responseMessage) ;
+
+ assertNull("Call To EPR", message.getHeader().getCall().getTo()) ;
+ assertNull("Call ReplyTo EPR", message.getHeader().getCall().getReplyTo()) ;
+ }
+
+ @Test
+ public void testNonNullToSyncEPRs()
+ throws Exception
+ {
+ final Message message = MessageFactory.getInstance().getMessage() ;
+ message.getHeader().getCall().setTo(deliverEPR) ;
+
+ final ServiceInvoker si = new ServiceInvoker("test", "jmsdeliver") ;
+ final Message resp = si.deliverSync(message, 10) ;
+
+ assertEquals("Response message", resp, responseMessage) ;
+
+ assertEquals("Call To EPR", deliverEPR, message.getHeader().getCall().getTo()) ;
+ assertNull("Call ReplyTo EPR", message.getHeader().getCall().getReplyTo()) ;
+ }
+
+ @Test
+ public void testNonNullSyncEPRs()
+ throws Exception
+ {
+ final Message message = MessageFactory.getInstance().getMessage() ;
+ message.getHeader().getCall().setTo(deliverEPR) ;
+ message.getHeader().getCall().setReplyTo(pickupEPR) ;
+
+ final ServiceInvoker si = new ServiceInvoker("test", "jmsdeliver") ;
+ final Message resp = si.deliverSync(message, 10) ;
+
+ assertEquals("Response message", resp, responseMessage) ;
+
+ assertEquals("Call To EPR", deliverEPR, message.getHeader().getCall().getTo()) ;
+ assertEquals("Call ReplyTo EPR", pickupEPR, message.getHeader().getCall().getReplyTo()) ;
+ }
+
+ @Test
+ public void testNullAsyncEPRs()
+ throws Exception
+ {
+ final Message message = MessageFactory.getInstance().getMessage() ;
+
+ final ServiceInvoker si = new ServiceInvoker("test", "jmsdeliver") ;
+ si.deliverAsync(message) ;
+
+ assertNull("Call To EPR", message.getHeader().getCall().getTo()) ;
+ assertNull("Call ReplyTo EPR", message.getHeader().getCall().getReplyTo()) ;
+ }
+
+ @Test
+ public void testNonNullToAsyncEPRs()
+ throws Exception
+ {
+ final Message message = MessageFactory.getInstance().getMessage() ;
+ message.getHeader().getCall().setTo(deliverEPR) ;
+
+ final ServiceInvoker si = new ServiceInvoker("test", "jmsdeliver") ;
+ si.deliverAsync(message) ;
+
+ assertEquals("Call To EPR", deliverEPR, message.getHeader().getCall().getTo()) ;
+ assertNull("Call ReplyTo EPR", message.getHeader().getCall().getReplyTo()) ;
+ }
+
+ @Test
+ public void testNonNullAsyncEPRs()
+ throws Exception
+ {
+ final Message message = MessageFactory.getInstance().getMessage() ;
+ message.getHeader().getCall().setTo(deliverEPR) ;
+ message.getHeader().getCall().setReplyTo(pickupEPR) ;
+
+ final ServiceInvoker si = new ServiceInvoker("test", "jmsdeliver") ;
+ si.deliverAsync(message) ;
+
+ assertEquals("Call To EPR", deliverEPR, message.getHeader().getCall().getTo()) ;
+ assertEquals("Call ReplyTo EPR", pickupEPR, message.getHeader().getCall().getReplyTo()) ;
+ }
+
+ @Test
+ public void testFailNullSyncEPRs()
+ throws Exception
+ {
+ final Message message = MessageFactory.getInstance().getMessage() ;
+
+ final ServiceInvoker si = new ServiceInvoker("test", "fail") ;
+ try
+ {
+ si.deliverSync(message, 10) ;
+ fail("Expected MessageDeliveryException") ;
+ }
+ catch (final MessageDeliverException mde) {} // expected
+
+ assertNull("Call To EPR", message.getHeader().getCall().getTo()) ;
+ assertNull("Call ReplyTo EPR", message.getHeader().getCall().getReplyTo()) ;
+ }
+
+ @Test
+ public void testFailNonNullToSyncEPRs()
+ throws Exception
+ {
+ final Message message = MessageFactory.getInstance().getMessage() ;
+ message.getHeader().getCall().setTo(deliverEPR) ;
+
+ final ServiceInvoker si = new ServiceInvoker("test", "fail") ;
+ try
+ {
+ si.deliverSync(message, 10) ;
+ fail("Expected MessageDeliveryException") ;
+ }
+ catch (final MessageDeliverException mde) {} // expected
+
+ assertEquals("Call To EPR", deliverEPR, message.getHeader().getCall().getTo()) ;
+ assertNull("Call ReplyTo EPR", message.getHeader().getCall().getReplyTo()) ;
+ }
+
+ @Test
+ public void testFailNonNullSyncEPRs()
+ throws Exception
+ {
+ final Message message = MessageFactory.getInstance().getMessage() ;
+ message.getHeader().getCall().setTo(deliverEPR) ;
+ message.getHeader().getCall().setReplyTo(pickupEPR) ;
+
+ final ServiceInvoker si = new ServiceInvoker("test", "fail") ;
+ try
+ {
+ si.deliverSync(message, 10) ;
+ fail("Expected MessageDeliveryException") ;
+ }
+ catch (final MessageDeliverException mde) {} // expected
+
+ assertEquals("Call To EPR", deliverEPR, message.getHeader().getCall().getTo()) ;
+ assertEquals("Call ReplyTo EPR", pickupEPR, message.getHeader().getCall().getReplyTo()) ;
+ }
+
+ @Test
+ public void testFailNullAsyncEPRs()
+ throws Exception
+ {
+ final Message message = MessageFactory.getInstance().getMessage() ;
+
+ final ServiceInvoker si = new ServiceInvoker("test", "fail") ;
+ try
+ {
+ si.deliverAsync(message) ;
+ fail("Expected MessageDeliveryException") ;
+ }
+ catch (final MessageDeliverException mde) {} // expected
+
+ assertNull("Call To EPR", message.getHeader().getCall().getTo()) ;
+ assertNull("Call ReplyTo EPR", message.getHeader().getCall().getReplyTo()) ;
+ }
+
+ @Test
+ public void testFailNonNullToAsyncEPRs()
+ throws Exception
+ {
+ final Message message = MessageFactory.getInstance().getMessage() ;
+ message.getHeader().getCall().setTo(deliverEPR) ;
+
+ final ServiceInvoker si = new ServiceInvoker("test", "fail") ;
+ try
+ {
+ si.deliverAsync(message) ;
+ fail("Expected MessageDeliveryException") ;
+ }
+ catch (final MessageDeliverException mde) {} // expected
+
+ assertEquals("Call To EPR", deliverEPR, message.getHeader().getCall().getTo()) ;
+ assertNull("Call ReplyTo EPR", message.getHeader().getCall().getReplyTo()) ;
+ }
+
+ @Test
+ public void testFailNonNullAsyncEPRs()
+ throws Exception
+ {
+ final Message message = MessageFactory.getInstance().getMessage() ;
+ message.getHeader().getCall().setTo(deliverEPR) ;
+ message.getHeader().getCall().setReplyTo(pickupEPR) ;
+
+ final ServiceInvoker si = new ServiceInvoker("test", "fail") ;
+ try
+ {
+ si.deliverAsync(message) ;
+ fail("Expected MessageDeliveryException") ;
+ }
+ catch (final MessageDeliverException mde) {} // expected
+
+ assertEquals("Call To EPR", deliverEPR, message.getHeader().getCall().getTo()) ;
+ assertEquals("Call ReplyTo EPR", pickupEPR, message.getHeader().getCall().getReplyTo()) ;
+ }
+
+ public static junit.framework.Test suite()
+ {
+ return new JUnit4TestAdapter(ServiceInvokerCallUnitTest.class) ;
+ }
+}
Modified: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/listeners/message/ServiceMessageCounterUnitTest.java
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/listeners/message/ServiceMessageCounterUnitTest.java 2009-01-21 14:47:17 UTC (rev 24849)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/listeners/message/ServiceMessageCounterUnitTest.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -27,6 +27,7 @@
import org.apache.log4j.Logger;
import org.jboss.soa.esb.helpers.ConfigTree;
+import org.jboss.soa.esb.lifecycle.LifecycleResourceException;
import org.junit.Test;
/**
@@ -41,11 +42,12 @@
@Test
public void getObjectName()
+ throws LifecycleResourceException
{
ConfigTree config = createConfigTreeForScheduler();
log.debug( config );
- ServiceMessageCounter counter = new ServiceMessageCounter( config );
+ ServiceMessageCounter counter = ServiceMessageCounterLifecycleResource.getServiceMessageCounter(config);
ObjectName objectName = counter.getObjectName();
log.debug( objectName );
}
Copied: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/listeners/message/TestAction.java (from rev 24846, labs/jbossesb/trunk/product/rosetta/tests/src/org/jboss/soa/esb/listeners/message/TestAction.java)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/listeners/message/TestAction.java (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/listeners/message/TestAction.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -0,0 +1,60 @@
+package org.jboss.soa.esb.listeners.message;
+
+import org.jboss.soa.esb.actions.BeanConfiguredAction;
+import org.jboss.soa.esb.message.Message;
+
+public class TestAction implements BeanConfiguredAction
+{
+ private String firstName;
+
+ private String serviceCategory;
+
+ private String serviceName;
+
+ public TestAction()
+ {
+ }
+
+ public Message process(final Message message)
+ {
+ message.getBody().add(this);
+ return message;
+ }
+
+ public String getServiceName()
+ {
+ return serviceName;
+ }
+
+ public void setServiceName(String serviceName)
+ {
+ this.serviceName = serviceName;
+ }
+
+ public String getServiceCategory()
+ {
+ return serviceCategory;
+ }
+
+ public void setServiceCategory(String serviceCategory)
+ {
+ this.serviceCategory = serviceCategory;
+ }
+
+ public String getFirstName()
+ {
+ return firstName;
+ }
+
+ public void setFirstName(String name)
+ {
+ this.firstName = name;
+ }
+
+ @Override
+ public String toString()
+ {
+ return "TestAction [firstName=" + firstName + ", serviceCategory=" + serviceCategory + ", serviceName=" + serviceName + "]";
+ }
+
+}
Copied: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/listeners/message/TestAction2.java (from rev 24846, labs/jbossesb/trunk/product/rosetta/tests/src/org/jboss/soa/esb/listeners/message/TestAction2.java)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/listeners/message/TestAction2.java (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/listeners/message/TestAction2.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -0,0 +1,30 @@
+package org.jboss.soa.esb.listeners.message;
+
+import org.jboss.soa.esb.actions.BeanConfiguredAction;
+import org.jboss.soa.esb.message.Message;
+
+public class TestAction2 implements BeanConfiguredAction
+{
+ private String firstName;
+
+ public TestAction2()
+ {
+ }
+
+ public Message process(final Message message)
+ {
+ message.getBody().add(this);
+ return message;
+ }
+
+ public String getFirstName()
+ {
+ return firstName;
+ }
+
+ public void setFirstName(String name)
+ {
+ this.firstName = name;
+ }
+
+}
Copied: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/listeners/message/privateKeyStore (from rev 24846, labs/jbossesb/trunk/product/rosetta/tests/src/org/jboss/soa/esb/listeners/message/privateKeyStore)
===================================================================
(Binary files differ)
Copied: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/listeners/message/security-properties.xml (from rev 24846, labs/jbossesb/trunk/product/rosetta/tests/src/org/jboss/soa/esb/listeners/message/security-properties.xml)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/listeners/message/security-properties.xml (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/listeners/message/security-properties.xml 2009-01-21 15:38:08 UTC (rev 24850)
@@ -0,0 +1,110 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!--
+ JBoss, Home of Professional Open Source
+ Copyright 2006, JBoss Inc., and others contributors as indicated
+ by the @authors tag. All rights reserved.
+ See the copyright.txt in the distribution for a
+ full listing of individual contributors.
+ This copyrighted material is made available to anyone wishing to use,
+ modify, copy, or redistribute it subject to the terms and conditions
+ of the GNU Lesser General Public License, v. 2.1.
+ This program is distributed in the hope that it will be useful, but WITHOUT A
+ WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+ PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
+ You should have received a copy of the GNU Lesser General Public License,
+ v.2.1 along with this distribution; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ MA 02110-1301, USA.
+
+ (C) 2005-2006,
+ @author JBoss Inc.
+-->
+<!-- $Id: jbossesb-unittest-properties.xml $ -->
+<!--
+ These options are described in the JBossESB manual.
+ Defaults are provided here for convenience only.
+
+ Please read through this file prior to using the system, and consider
+ updating the specified entries.
+-->
+<esb
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:noNamespaceSchemaLocation="jbossesb-1_0.xsd">
+ <properties name="core">
+ <property name="org.jboss.soa.esb.jndi.server.context.factory" value="org.jnp.interfaces.NamingContextFactory"/>
+ <property name="org.jboss.soa.esb.jndi.server.url" value="${jboss.esb.bind.address}:1099"/>
+ <property name="org.jboss.soa.esb.persistence.connection.factory" value="org.jboss.internal.soa.esb.persistence.format.MessageStoreFactoryImpl"/>
+ <property name="org.jboss.soa.esb.loadbalancer.policy" value="org.jboss.soa.esb.listeners.ha.RoundRobin"/>
+ <property name="jboss.esb.invm.scope.default" value="NONE"/>
+ </properties>
+ <properties name="security">
+ <property name="org.jboss.soa.esb.services.security.implementationClass" value="org.jboss.internal.soa.esb.services.security.JaasSecurityService"/>
+ <property name="org.jboss.soa.esb.services.security.callbackHandler" value="org.jboss.internal.soa.esb.services.security.UserPassCallbackHandler"/>
+ <property name="org.jboss.soa.esb.services.security.configUrl" value="jaas.login"/>
+
+ <property name="org.jboss.soa.esb.services.security.privateKeystore" value="privateKeyStore"/>
+ <property name="org.jboss.soa.esb.services.security.privateKeystorePassword" value="testKeystorePassword"/>
+ <property name="org.jboss.soa.esb.services.security.privateKeyAlias" value="testAlias"/>
+ <property name="org.jboss.soa.esb.services.security.privateKeyPassword" value="testPassword"/>
+
+ <property name="org.jboss.soa.esb.services.security.publicKeystore" value="publicKeyStore"/>
+ <property name="org.jboss.soa.esb.services.security.publicKeystorePassword" value="testKeystorePassword"/>
+ <property name="org.jboss.soa.esb.services.security.publicKeyAlias" value="testAlias"/>
+ <property name="org.jboss.soa.esb.services.security.publicKeyPassword" value="testPassword"/>
+ <property name="org.jboss.soa.esb.services.security.publicKeyTransformation" value="RSA/ECB/PKCS1Padding"/>
+ </properties>
+ <properties name="registry">
+ <property name="org.jboss.soa.esb.registry.queryManagerURI" value="org.apache.juddi.registry.local.InquiryService#inquire"/>
+ <property name="org.jboss.soa.esb.registry.lifeCycleManagerURI" value="org.apache.juddi.registry.local.PublishService#publish"/>
+ <property name="org.jboss.soa.esb.registry.implementationClass" value="org.jboss.internal.soa.esb.services.registry.JAXRRegistryImpl"/>
+ <property name="org.jboss.soa.esb.registry.factoryClass" value="org.apache.ws.scout.registry.ConnectionFactoryImpl"/>
+ <property name="org.jboss.soa.esb.registry.user" value="jbossesb"/>
+ <property name="org.jboss.soa.esb.registry.password" value="password"/>
+ <!-- the following parameter is scout specific to set the type of communication between scout and the UDDI (embedded, rmi, soap) -->
+ <property name="org.jboss.soa.esb.scout.proxy.transportClass" value="org.apache.ws.scout.transport.LocalTransport"/>
+ </properties>
+ <properties name="transports" depends="core">
+ <property name="org.jboss.soa.esb.mail.smtp.host" value="localhost"/>
+ <property name="org.jboss.soa.esb.mail.smtp.user" value="jbossesb"/>
+ <property name="org.jboss.soa.esb.mail.smtp.password" value=""/>
+ <property name="org.jboss.soa.esb.mail.smtp.port" value="25"/>
+ <property name="org.jboss.soa.esb.mail.smtp.auth" value="true"/>
+ <property name="org.jboss.soa.esb.ftp.localdir" value="/tmp"/>
+ <property name="org.jboss.soa.esb.ftp.remotedir" value="/tmp"/>
+ <property name="org.jboss.soa.esb.jms.connectionPool" value="20"/>
+ <property name="org.jboss.soa.esb.jms.sessionSleep" value="30"/>
+ </properties>
+ <properties name="connection">
+ <property name="min-pool-size" value="5"/>
+ <property name="max-pool=size" value="10"/>
+ <property name="blocking-timeout-millis" value="5000"/>
+ <property name="abandoned-connection-timeout" value="10000"/>
+ <property name="abandoned-connection-time-interval" value="30000"/>
+ </properties>
+ <properties name="dbstore">
+
+ <!-- connection manager type -->
+ <!-- <property name="org.jboss.soa.esb.persistence.db.conn.manager" value="org.jboss.internal.soa.esb.persistence.manager.StandaloneConnectionManager"/> -->
+ <property name="org.jboss.soa.esb.persistence.db.conn.manager" value="org.jboss.internal.soa.esb.persistence.manager.J2eeConnectionManager"/>
+
+ <!-- this property is only used if using the j2ee connection manager -->
+ <property name="org.jboss.soa.esb.persistence.db.datasource.name" value="java:/JBossESBDS"/>
+
+ <!-- standalone connection pooling settings -->
+ <property name="org.jboss.soa.esb.persistence.db.connection.url" value="jdbc:hsqldb:hsql://localhost:9001/"/>
+ <property name="org.jboss.soa.esb.persistence.db.jdbc.driver" value="org.hsqldb.jdbcDriver"/>
+ <property name="org.jboss.soa.esb.persistence.db.user" value="sa"/>
+ <property name="org.jboss.soa.esb.persistence.db.pwd" value=""/>
+ <property name="org.jboss.soa.esb.persistence.db.pool.initial.size" value="2"/>
+ <property name="org.jboss.soa.esb.persistence.db.pool.min.size" value="2"/>
+ <property name="org.jboss.soa.esb.persistence.db.pool.max.size" value="5"/>
+ <!--table managed by pool to test for valid connections - created by pool automatically -->
+ <property name="org.jboss.soa.esb.persistence.db.pool.test.table" value="pooltest"/>
+ <property name="org.jboss.soa.esb.persistence.db.pool.timeout.millis" value="5000"/>
+
+ </properties>
+ <properties name="filters">
+ <property name="org.jboss.soa.esb.filter.1" value="org.jboss.internal.soa.esb.message.filter.MetaDataFilter"/>
+ <property name="org.jboss.soa.esb.filter.2" value="org.jboss.internal.soa.esb.message.filter.GatewayFilter"/>
+ </properties>
+</esb>
Modified: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/listeners/scheduled-listener-config-configtree.xml
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/listeners/scheduled-listener-config-configtree.xml 2009-01-21 14:47:17 UTC (rev 24849)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/listeners/scheduled-listener-config-configtree.xml 2009-01-21 15:38:08 UTC (rev 24850)
@@ -1,3 +1,6 @@
-<listener event-processor="org.jboss.soa.esb.schedule.MockScheduledEventMessageComposer" listenerClass="org.jboss.soa.esb.listeners.ScheduleListener" my-prop="1" name="simple-schedule-listener" scheduleidref="1-sec-trigger">
+<listener event-processor="org.jboss.soa.esb.schedule.MockScheduledEventMessageComposer" listenerClass="org.jboss.soa.esb.listeners.ScheduleListener" my-prop="1"
+ name="simple-schedule-listener" scheduleSimpleFrequency="1000" scheduleidref="1-sec-trigger" service-category="ServiceCat" service-description="Test Service"
+ service-name="ServiceName">
+<ScheduleProperties org.quartz.threadPool.threadCount="1"/>
<action action="action" class="org.jboss.soa.esb.mock.MockAction"/>
-</listener>
\ No newline at end of file
+</listener>
Copied: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/message/fault (from rev 24846, labs/jbossesb/trunk/product/rosetta/tests/src/org/jboss/soa/esb/message/fault)
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/message/fault/JBESB-2227-config-01.xml
===================================================================
--- labs/jbossesb/trunk/product/rosetta/tests/src/org/jboss/soa/esb/message/fault/JBESB-2227-config-01.xml 2009-01-21 09:35:03 UTC (rev 24846)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/message/fault/JBESB-2227-config-01.xml 2009-01-21 15:38:08 UTC (rev 24850)
@@ -1,12 +0,0 @@
-<?xml version = "1.0" encoding = "UTF-8"?>
-<jbossesb xmlns="http://anonsvn.labs.jboss.com/labs/jbossesb/trunk/product/etc/schemas/xml/jbossesb-1.0.1.xsd">
-
- <services>
- <service category="ServiceCat" name="CallService" description="The Service">
- <actions mep="OneWay">
- <action name="action" class="org.jboss.soa.esb.mock.MockAction" />
- </actions>
- </service>
- </services>
-
-</jbossesb>
\ No newline at end of file
Copied: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/message/fault/JBESB-2227-config-01.xml (from rev 24846, labs/jbossesb/trunk/product/rosetta/tests/src/org/jboss/soa/esb/message/fault/JBESB-2227-config-01.xml)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/message/fault/JBESB-2227-config-01.xml (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/message/fault/JBESB-2227-config-01.xml 2009-01-21 15:38:08 UTC (rev 24850)
@@ -0,0 +1,12 @@
+<?xml version = "1.0" encoding = "UTF-8"?>
+<jbossesb xmlns="http://anonsvn.labs.jboss.com/labs/jbossesb/trunk/product/etc/schemas/xml/jbossesb-1.0.1.xsd">
+
+ <services>
+ <service category="ServiceCat" name="CallService" description="The Service">
+ <actions mep="OneWay">
+ <action name="action" class="org.jboss.soa.esb.mock.MockAction" />
+ </actions>
+ </service>
+ </services>
+
+</jbossesb>
\ No newline at end of file
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/message/fault/JBESB_2227_UnitTest.java
===================================================================
--- labs/jbossesb/trunk/product/rosetta/tests/src/org/jboss/soa/esb/message/fault/JBESB_2227_UnitTest.java 2009-01-21 09:35:03 UTC (rev 24846)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/message/fault/JBESB_2227_UnitTest.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -1,99 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2008, Red Hat Middleware LLC, and others contributors as indicated
- * by the @authors tag. All rights reserved.
- * See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- * This copyrighted material is made available to anyone wishing to use,
- * modify, copy, or redistribute it subject to the terms and conditions
- * of the GNU Lesser General Public License, v. 2.1.
- * This program is distributed in the hope that it will be useful, but WITHOUT A
- * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
- * PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
- * You should have received a copy of the GNU Lesser General Public License,
- * v.2.1 along with this distribution; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
- * MA 02110-1301, USA.
- *
- * (C) 2005-2008, JBoss Inc.
- */
-package org.jboss.soa.esb.message.fault;
-
-import junit.framework.TestCase;
-import org.jboss.soa.esb.common.Environment;
-import org.jboss.soa.esb.mock.MockAction;
-import org.jboss.soa.esb.testutils.AbstractTestRunner;
-import org.jboss.soa.esb.client.ServiceInvoker;
-import org.jboss.soa.esb.message.Message;
-import org.jboss.soa.esb.message.util.Type;
-import org.jboss.soa.esb.message.format.MessageFactory;
-import org.jboss.soa.esb.addressing.eprs.LogicalEPR;
-import org.jboss.soa.esb.actions.ActionProcessingException;
-import org.jboss.soa.esb.listeners.message.errors.Factory;
-
-/**
- * @author <a href="mailto:tom.fennelly at jboss.com">tom.fennelly at jboss.com</a>
- */
-public class JBESB_2227_UnitTest extends TestCase {
-
-
- protected void setUp() throws Exception {
- System.setProperty(Environment.DEFAULT_INVM_SCOPE, "GLOBAL");
- MockAction.exception = null;
- }
-
- protected void tearDown() throws Exception {
- System.setProperty(Environment.DEFAULT_INVM_SCOPE, "NONE");
- MockAction.exception = null;
- }
-
- public void test_async() throws Exception {
- AbstractTestRunner testRunner = new AbstractTestRunner() {
- public void test() throws Exception {
- ServiceInvoker invoker = new ServiceInvoker("ServiceCat", "CallService");
- Message message = MessageFactory.getInstance().getMessage();
- ActionProcessingException exception = new ActionProcessingException("Exception!!!");
-
- message.getHeader().getCall().setFrom(new LogicalEPR("A", "B"));
- Message faultMessage = Factory.createErrorMessage(Factory.UNEXPECTED_ERROR, message, exception);
-
- // Should not get a MessageDeliverException...
- invoker.deliverAsync(faultMessage);
-
- // Mock action should have received faultMessage...
- waitForMockSet(faultMessage);
- assertTrue("Message equality", checkMessageEquality(faultMessage, MockAction.message));
- }
- }.setServiceConfig("JBESB-2227-config-01.xml");
-
- testRunner.run();
- }
-
-
- private void waitForMockSet(Message message) {
- long start = System.currentTimeMillis();
-
- while(System.currentTimeMillis() - start < 5000) {
- if(checkMessageEquality(message, MockAction.message)) {
- return;
- }
- sleep(50);
- }
- }
-
- private static void sleep(long millis) {
- try {
- Thread.sleep(millis);
- } catch (InterruptedException e) {
- fail("Unexpected InterruptedException exception.");
- }
- }
-
- private static boolean checkMessageEquality(final Message expected, final Message actual) {
- return (actual != null) && (expected.getAttachment().equals(actual.getAttachment())) &&
- (expected.getBody().equals(actual.getBody())) &&
- (expected.getFault().equals(actual.getFault())) &&
- (expected.getProperties().equals(actual.getProperties())) &&
- (expected.getType().equals(actual.getType())) ;
- }
-}
Copied: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/message/fault/JBESB_2227_UnitTest.java (from rev 24846, labs/jbossesb/trunk/product/rosetta/tests/src/org/jboss/soa/esb/message/fault/JBESB_2227_UnitTest.java)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/message/fault/JBESB_2227_UnitTest.java (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/message/fault/JBESB_2227_UnitTest.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -0,0 +1,99 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2008, Red Hat Middleware LLC, and others contributors as indicated
+ * by the @authors tag. All rights reserved.
+ * See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License, v. 2.1.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+ * PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
+ * You should have received a copy of the GNU Lesser General Public License,
+ * v.2.1 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301, USA.
+ *
+ * (C) 2005-2008, JBoss Inc.
+ */
+package org.jboss.soa.esb.message.fault;
+
+import junit.framework.TestCase;
+import org.jboss.soa.esb.common.Environment;
+import org.jboss.soa.esb.mock.MockAction;
+import org.jboss.soa.esb.testutils.AbstractTestRunner;
+import org.jboss.soa.esb.client.ServiceInvoker;
+import org.jboss.soa.esb.message.Message;
+import org.jboss.soa.esb.message.util.Type;
+import org.jboss.soa.esb.message.format.MessageFactory;
+import org.jboss.soa.esb.addressing.eprs.LogicalEPR;
+import org.jboss.soa.esb.actions.ActionProcessingException;
+import org.jboss.soa.esb.listeners.message.errors.Factory;
+
+/**
+ * @author <a href="mailto:tom.fennelly at jboss.com">tom.fennelly at jboss.com</a>
+ */
+public class JBESB_2227_UnitTest extends TestCase {
+
+
+ protected void setUp() throws Exception {
+ System.setProperty(Environment.DEFAULT_INVM_SCOPE, "GLOBAL");
+ MockAction.exception = null;
+ }
+
+ protected void tearDown() throws Exception {
+ System.setProperty(Environment.DEFAULT_INVM_SCOPE, "NONE");
+ MockAction.exception = null;
+ }
+
+ public void test_async() throws Exception {
+ AbstractTestRunner testRunner = new AbstractTestRunner() {
+ public void test() throws Exception {
+ ServiceInvoker invoker = new ServiceInvoker("ServiceCat", "CallService");
+ Message message = MessageFactory.getInstance().getMessage();
+ ActionProcessingException exception = new ActionProcessingException("Exception!!!");
+
+ message.getHeader().getCall().setFrom(new LogicalEPR("A", "B"));
+ Message faultMessage = Factory.createErrorMessage(Factory.UNEXPECTED_ERROR, message, exception);
+
+ // Should not get a MessageDeliverException...
+ invoker.deliverAsync(faultMessage);
+
+ // Mock action should have received faultMessage...
+ waitForMockSet(faultMessage);
+ assertTrue("Message equality", checkMessageEquality(faultMessage, MockAction.message));
+ }
+ }.setServiceConfig("JBESB-2227-config-01.xml");
+
+ testRunner.run();
+ }
+
+
+ private void waitForMockSet(Message message) {
+ long start = System.currentTimeMillis();
+
+ while(System.currentTimeMillis() - start < 5000) {
+ if(checkMessageEquality(message, MockAction.message)) {
+ return;
+ }
+ sleep(50);
+ }
+ }
+
+ private static void sleep(long millis) {
+ try {
+ Thread.sleep(millis);
+ } catch (InterruptedException e) {
+ fail("Unexpected InterruptedException exception.");
+ }
+ }
+
+ private static boolean checkMessageEquality(final Message expected, final Message actual) {
+ return (actual != null) && (expected.getAttachment().equals(actual.getAttachment())) &&
+ (expected.getBody().equals(actual.getBody())) &&
+ (expected.getFault().equals(actual.getFault())) &&
+ (expected.getProperties().equals(actual.getProperties())) &&
+ (expected.getType().equals(actual.getType())) ;
+ }
+}
Copied: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/message/tests/ContextUnitTest.java (from rev 24846, labs/jbossesb/trunk/product/rosetta/tests/src/org/jboss/soa/esb/message/tests/ContextUnitTest.java)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/message/tests/ContextUnitTest.java (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/message/tests/ContextUnitTest.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -0,0 +1,141 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+
+package org.jboss.soa.esb.message.tests;
+
+import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
+import java.io.ObjectInputStream;
+import java.io.ObjectOutputStream;
+import java.io.Serializable;
+import java.net.URI;
+import java.util.Set;
+
+import junit.framework.TestCase;
+
+import org.jboss.soa.esb.addressing.EPR;
+import org.jboss.soa.esb.message.ByReferenceMessage;
+import org.jboss.soa.esb.message.Context;
+import org.jboss.soa.esb.message.Message;
+import org.jboss.soa.esb.message.format.MessageFactory;
+import org.jboss.soa.esb.message.format.MessageType;
+import org.jboss.soa.esb.util.Util;
+
+/**
+ * Unit tests for the Context class.
+ *
+ * @author <a href='mailto:kevin.conner at jboss.com'>Kevin Conner</a>
+ */
+
+public class ContextUnitTest extends TestCase
+{
+ public void testSerializeMessage()
+ throws Exception
+ {
+ execute(MessageFactory.getInstance().getMessage(MessageType.JAVA_SERIALIZED)) ;
+ }
+
+ public void testXMLMessage()
+ throws Exception
+ {
+ execute(MessageFactory.getInstance().getMessage(MessageType.JBOSS_XML)) ;
+ }
+
+ private void execute(final Message message)
+ throws Exception
+ {
+ assertNotNull("Created message", message) ;
+ message.getHeader().getCall().setTo(new EPR(new URI("test:to_uri"))) ;
+
+ final Context context = message.getContext() ;
+ assertNotNull("Context", context) ;
+
+ final Object result1 = context.setContext("foo", "bar") ;
+ assertNull("First setter result", result1) ;
+
+ assertEquals("Getting context", "bar", context.getContext("foo")) ;
+
+ final Set<String> keys = context.getContextKeys() ;
+ assertNotNull("Context keys", keys) ;
+ assertEquals("Context key count", 1, keys.size()) ;
+ assertTrue("Contains key", keys.contains("foo")) ;
+
+ final Object result2 = context.setContext("foo", "bar2") ;
+ assertEquals("Second setter result", "bar", result2) ;
+
+ assertEquals("Getting context", "bar2", context.getContext("foo")) ;
+
+ final Set<String> keys2 = context.getContextKeys() ;
+ assertNotNull("Context keys2", keys2) ;
+ assertEquals("Context key count", 1, keys2.size()) ;
+ assertTrue("Contains key", keys2.contains("foo")) ;
+
+ context.clearContext() ;
+
+ final Set<String> keys3 = context.getContextKeys() ;
+ assertNotNull("Context keys3", keys3) ;
+ assertEquals("Context key count", 0, keys3.size()) ;
+
+ try
+ {
+ context.setContext("non-serializable", new Object()) ;
+ fail("Non serializable object set on context");
+ }
+ catch (IllegalArgumentException ex) {} // expected
+
+ context.setContext("skey", "svalue") ;
+ final Serializable serializable = Util.serialize(message) ;
+ final ByteArrayOutputStream baos = new ByteArrayOutputStream() ;
+ final ObjectOutputStream oos = new ObjectOutputStream(baos) ;
+
+ oos.writeObject(serializable);
+ oos.close();
+
+ final ByteArrayInputStream bais = new ByteArrayInputStream(baos.toByteArray()) ;
+ final ObjectInputStream ois = new ObjectInputStream(bais) ;
+
+ final Serializable newSerializable = (Serializable)ois.readObject() ;
+ final Message newMessage = Util.deserialize(newSerializable) ;
+ assertEquals("Serialized context", "svalue", newMessage.getContext().getContext("skey")) ;
+
+ assertTrue("Implements ByReferenceMessage", (message instanceof ByReferenceMessage)) ;
+
+ final Message referencedMessage = ((ByReferenceMessage)message).reference() ;
+ assertSame("Attachment is same", message.getAttachment(), referencedMessage.getAttachment()) ;
+ assertSame("Body is same", message.getBody(), referencedMessage.getBody()) ;
+ assertSame("Fault is same", message.getFault(), referencedMessage.getFault()) ;
+ assertSame("Properties are same", message.getProperties(), referencedMessage.getProperties()) ;
+ assertSame("type is same", message.getType(), referencedMessage.getType()) ;
+
+ assertNotSame("header is not same", message.getHeader(), referencedMessage.getHeader()) ;
+ assertNotSame("Context is not same", context, referencedMessage.getContext()) ;
+
+ assertEquals("Header equals", message.getHeader().getCall().getTo(), referencedMessage.getHeader().getCall().getTo()) ;
+ message.getHeader().getCall().setTo(new EPR(new URI("test:to_uri2"))) ;
+ assertFalse("Header not equals", message.getHeader().getCall().getTo().equals(referencedMessage.getHeader().getCall().getTo())) ;
+
+ assertEquals("Context equals", context.getContext("skey"), referencedMessage.getContext().getContext("skey")) ;
+ context.setContext("skey", "other value") ;
+ assertFalse("Context not equals", context.getContext("skey").equals(referencedMessage.getContext().getContext("skey"))) ;
+ assertEquals("Referenced Context unchanged", "svalue", referencedMessage.getContext().getContext("skey")) ;
+ }
+}
Modified: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/notification/NotifyEmailUnitTest.java
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/notification/NotifyEmailUnitTest.java 2009-01-21 14:47:17 UTC (rev 24849)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/notification/NotifyEmailUnitTest.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -21,24 +21,27 @@
*/
package org.jboss.soa.esb.notification;
+import static org.junit.Assert.assertEquals;
+
import javax.mail.MessagingException;
import javax.mail.internet.AddressException;
-import junit.framework.TestCase;
+import junit.framework.JUnit4TestAdapter;
import org.jboss.soa.esb.helpers.ConfigTree;
import org.jboss.soa.esb.helpers.Email;
import org.jboss.soa.esb.message.Message;
-import org.jboss.soa.esb.message.body.content.BytesBody;
import org.jboss.soa.esb.message.format.MessageFactory;
import org.jboss.soa.esb.message.format.MessageType;
+import org.junit.Test;
/**
* NotifyEmail unit tests.
* @author <a href="mailto:tom.fennelly at jboss.com">tom.fennelly at jboss.com</a>
*/
-public class NotifyEmailUnitTest extends TestCase {
-
+public class NotifyEmailUnitTest
+{
+ @Test
public void test_NotifyEmail() throws Exception {
ConfigTree emailMessageEl = new ConfigTree("email");
@@ -53,21 +56,92 @@
ne.sendNotification(message);
}
- public void test_NotifyEmailNoMessage() throws Exception {
- ConfigTree emailMessageEl = new ConfigTree("email");
+ @Test
+ public void test_NotifyEmailNoMessage() throws Exception {
+ ConfigTree emailMessageEl = new ConfigTree("email");
- emailMessageEl.setAttribute(Email.FROM, "a.b at c.com");
- emailMessageEl.setAttribute(Email.SENDTO, "d.e at f.com");
- emailMessageEl.setAttribute(Email.COPYTO, "g.h at i.com");
+ emailMessageEl.setAttribute(Email.FROM, "a.b at c.com");
+ emailMessageEl.setAttribute(Email.SENDTO, "d.e at f.com");
+ emailMessageEl.setAttribute(Email.COPYTO, "g.h at i.com");
- NotifyEmail ne = new TestNotifyEmail(emailMessageEl, "Hello");
+ NotifyEmail ne = new TestNotifyEmail(emailMessageEl, "Hello");
Message message = MessageFactory.getInstance().getMessage(MessageType.JBOSS_XML);
message.getBody().add("Hello".getBytes());
- ne.sendNotification(message);
- }
+ ne.sendNotification(message);
+ }
+ @Test
+ public void overrideHost() throws Exception {
+ assertOverride(Email.HOST, "b2.host2");
+ }
+
+ @Test
+ public void overridePort() throws Exception {
+ assertOverride(Email.PORT, "8021");
+ }
+
+ @Test
+ public void overrideUsername() throws Exception {
+ assertOverride(Email.USERNAME, "daniel");
+ }
+
+ @Test
+ public void overridePassword() throws Exception {
+ assertOverride(Email.PASSWORD, "letmein");
+ }
+
+ @Test
+ public void overrideAuth() throws Exception {
+ assertOverride(Email.AUTH, "true");
+ }
+
+ @Test
+ public void overrideFrom() throws Exception {
+ assertOverride(Email.FROM, "dbevenius at jboss.com");
+ }
+
+ @Test
+ public void overrideSendTo() throws Exception {
+ assertOverride(Email.SENDTO, "dbevenius at jboss.com");
+ }
+
+ @Test
+ public void overrideCopyTo() throws Exception {
+ assertOverride(Email.COPYTO, "dbevenius at jboss.com");
+ }
+
+ @Test
+ public void overrideSubject() throws Exception {
+ assertOverride(Email.SUBJECT, "Overridden Subject");
+ }
+
+ public void overrideAttachmentName() throws Exception {
+ assertOverride("msgAttachmentName", "newFile.txt");
+ }
+
+ private void assertOverride(final String overrideName, final String overrideValue) throws Exception
+ {
+ ConfigTree emailMessageEl = new ConfigTree("email");
+ emailMessageEl.setAttribute(Email.SENDTO, "d.e at f.com");
+ emailMessageEl.setAttribute(Email.SUBJECT, "Original Subject");
+ emailMessageEl.setAttribute(Email.MESSAGE, "Hi there!!!");
+
+ TestNotifyEmail ne = new TestNotifyEmail(emailMessageEl, "Hi there!!!\nHello");
+ Message message = MessageFactory.getInstance().getMessage(MessageType.JBOSS_XML);
+
+ message.getProperties().setProperty(overrideName, overrideValue);
+ message.getBody().add("Hello".getBytes());
+ ne.sendNotification(message);
+
+ assertEquals(overrideValue, ne.getConfigTree().getAttribute(overrideName));
+
+ }
+
private class TestNotifyEmail extends NotifyEmail {
- private final String message ;
+ private final String message ;
+
+ private ConfigTree configTree;
+
public TestNotifyEmail(ConfigTree p_oP, final String message) throws Exception {
super(p_oP);
this.message = message ;
@@ -75,7 +149,19 @@
@Override
protected void sendEmailNotification(ConfigTree messageParams, byte[] notusedintest) throws AddressException, MessagingException {
+ this.configTree = messageParams;
assertEquals(message, messageParams.getAttribute(Email.MESSAGE));
- }
+ }
+
+ public ConfigTree getConfigTree()
+ {
+ return configTree;
+ }
}
+
+ public static junit.framework.Test suite()
+ {
+ return new JUnit4TestAdapter(NotifyEmailUnitTest.class);
+ }
+
}
Modified: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/schedule/SchedulingUnitTest.java
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/schedule/SchedulingUnitTest.java 2009-01-21 14:47:17 UTC (rev 24849)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/schedule/SchedulingUnitTest.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -21,22 +21,19 @@
import junit.framework.TestCase;
import org.jboss.soa.esb.testutils.ESBConfigUtil;
+import org.jboss.soa.esb.testutils.StringUtils;
import org.jboss.soa.esb.parameters.ParamRepositoryException;
import org.jboss.soa.esb.ConfigurationException;
-import org.jboss.soa.esb.util.ClassUtil;
import org.jboss.soa.esb.mock.MockAction;
import org.jboss.soa.esb.listeners.lifecycle.ManagedLifecycleException;
import org.jboss.internal.soa.esb.util.StreamUtils;
import org.xml.sax.SAXException;
-import org.quartz.impl.StdSchedulerFactory;
-import org.quartz.Scheduler;
-import org.quartz.SchedulerException;
import java.io.UnsupportedEncodingException;
-import java.io.InputStream;
import java.io.IOException;
-import java.util.Properties;
+import javax.xml.parsers.ParserConfigurationException;
+
/**
* Scheduling unit tests.
*
@@ -51,11 +48,11 @@
MockAction.message = null;
}
- public void test_listener_config() throws IOException, SAXException, ConfigurationException {
+ public void test_listener_config() throws IOException, SAXException, ConfigurationException, ParserConfigurationException {
ESBConfigUtil configUtil = new ESBConfigUtil(getClass().getResourceAsStream("config-01.xml"));
String expected = StreamUtils.readStreamString(getClass().getResourceAsStream("expected-config-01-listener.xml"), "UTF-8");
- assertEquals(expected, configUtil.getListenerConfig("simple-schedule-listener").toString());
+ assertTrue("Service Config", StringUtils.compareXMLContent(expected, configUtil.getListenerConfig("simple-schedule-listener").toString()));
}
public void test_simple_schedule_01() throws UnsupportedEncodingException, ParamRepositoryException, ConfigurationException, ManagedLifecycleException, SAXException, InterruptedException {
Modified: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/schedule/expected-config-01-listener.xml
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/schedule/expected-config-01-listener.xml 2009-01-21 14:47:17 UTC (rev 24849)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/schedule/expected-config-01-listener.xml 2009-01-21 15:38:08 UTC (rev 24850)
@@ -1,3 +1,4 @@
-<listener event-processor="org.jboss.soa.esb.schedule.MockScheduledEventMessageComposer" listenerClass="org.jboss.soa.esb.listeners.ScheduleListener" name="simple-schedule-listener" scheduleidref="1-sec-trigger">
+<listener event-processor="org.jboss.soa.esb.schedule.MockScheduledEventMessageComposer" listenerClass="org.jboss.soa.esb.listeners.ScheduleListener" name="simple-schedule-listener" scheduleSimpleExec="2" scheduleSimpleFrequency="1000" scheduleidref="1-sec-trigger" service-category="ServiceCat" service-description="Test Service" service-name="ServiceName-01">
+<ScheduleProperties org.quartz.threadPool.threadCount="2"/>
<action action="action" class="org.jboss.soa.esb.mock.MockAction"/>
-</listener>
\ No newline at end of file
+</listener>
Copied: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/services/security (from rev 24846, labs/jbossesb/trunk/product/rosetta/tests/src/org/jboss/soa/esb/services/security)
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/services/security/PublicCryptoUtilUnitTest.java
===================================================================
--- labs/jbossesb/trunk/product/rosetta/tests/src/org/jboss/soa/esb/services/security/PublicCryptoUtilUnitTest.java 2009-01-21 09:35:03 UTC (rev 24846)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/services/security/PublicCryptoUtilUnitTest.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -1,94 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source Copyright 2008, Red Hat Middleware
- * LLC, and individual contributors by the @authors tag. See the copyright.txt
- * in the distribution for a full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it under the
- * terms of the GNU Lesser General Public License as published by the Free
- * Software Foundation; either version 2.1 of the License, or (at your option)
- * any later version.
- *
- * This software is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
- * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
- * details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this software; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA, or see the FSF
- * site: http://www.fsf.org.
- */
-package org.jboss.soa.esb.services.security;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertFalse;
-
-import java.io.IOException;
-import java.io.Serializable;
-import java.net.URL;
-import java.security.InvalidKeyException;
-import java.security.NoSuchAlgorithmException;
-import java.security.Provider;
-import java.security.Security;
-
-import junit.framework.JUnit4TestAdapter;
-
-import org.jboss.soa.esb.ConfigurationException;
-import org.jboss.soa.esb.common.Environment;
-import org.jboss.soa.esb.util.ClassUtil;
-import org.junit.After;
-import org.junit.Before;
-import org.junit.Test;
-
-/**
- * Unit test for PublicCryptoUtil.
- *
- * @author <a href="mailto:dbevenius at redhat.com">Daniel Bevenius</a>
- *
- */
-public class PublicCryptoUtilUnitTest
-{
- private String jbossEsbProperties;
-
- @Test
- public void encryptAndDecrypt() throws SecurityServiceException, InvalidKeyException, NoSuchAlgorithmException, IOException, ClassNotFoundException
- {
- String object = "some textaalddddddddddddddaldkfjlakjfafadlalkfdalfjkfladsjfalkfjfljsafkjalkfjjafjlkafjfjjfaadlasajfkafkjalalfkjakljdljfajfjajfljalkfjlafljalsjfjj";
- byte[] encrypted = PublicCryptoUtil.INSTANCE.encrypt(object);
- assertFalse(object.equals(new String(encrypted)));
-
- Serializable unsealedObject = PublicCryptoUtil.INSTANCE.decrypt(encrypted);
- assertEquals(object, unsealedObject);
- }
-
- @SuppressWarnings("unused")
- private void dumpSecurityProviders()
- {
- Provider[] providers = Security.getProviders();
- for (Provider provider : providers)
- {
- System.out.println(provider.getServices());
- }
- }
-
- @Before
- public void setup() throws ConfigurationException
- {
- jbossEsbProperties = System.getProperty(Environment.PROPERTIES_FILE);
- URL resource = ClassUtil.getResource("security-properties.xml", getClass());
- System.setProperty(Environment.PROPERTIES_FILE, "abs://" + resource.getFile());
- }
-
- @After
- public void tearDown()
- {
- if ( jbossEsbProperties != null )
- System.setProperty(Environment.PROPERTIES_FILE, jbossEsbProperties);
- }
-
- public static junit.framework.Test suite()
- {
- return new JUnit4TestAdapter(PublicCryptoUtilUnitTest.class);
- }
-
-}
Copied: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/services/security/PublicCryptoUtilUnitTest.java (from rev 24846, labs/jbossesb/trunk/product/rosetta/tests/src/org/jboss/soa/esb/services/security/PublicCryptoUtilUnitTest.java)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/services/security/PublicCryptoUtilUnitTest.java (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/services/security/PublicCryptoUtilUnitTest.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -0,0 +1,94 @@
+/*
+ * JBoss, Home of Professional Open Source Copyright 2008, Red Hat Middleware
+ * LLC, and individual contributors by the @authors tag. See the copyright.txt
+ * in the distribution for a full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it under the
+ * terms of the GNU Lesser General Public License as published by the Free
+ * Software Foundation; either version 2.1 of the License, or (at your option)
+ * any later version.
+ *
+ * This software is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+ * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
+ * details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this software; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA, or see the FSF
+ * site: http://www.fsf.org.
+ */
+package org.jboss.soa.esb.services.security;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+
+import java.io.IOException;
+import java.io.Serializable;
+import java.net.URL;
+import java.security.InvalidKeyException;
+import java.security.NoSuchAlgorithmException;
+import java.security.Provider;
+import java.security.Security;
+
+import junit.framework.JUnit4TestAdapter;
+
+import org.jboss.soa.esb.ConfigurationException;
+import org.jboss.soa.esb.common.Environment;
+import org.jboss.soa.esb.util.ClassUtil;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+
+/**
+ * Unit test for PublicCryptoUtil.
+ *
+ * @author <a href="mailto:dbevenius at redhat.com">Daniel Bevenius</a>
+ *
+ */
+public class PublicCryptoUtilUnitTest
+{
+ private String jbossEsbProperties;
+
+ @Test
+ public void encryptAndDecrypt() throws SecurityServiceException, InvalidKeyException, NoSuchAlgorithmException, IOException, ClassNotFoundException
+ {
+ String object = "some textaalddddddddddddddaldkfjlakjfafadlalkfdalfjkfladsjfalkfjfljsafkjalkfjjafjlkafjfjjfaadlasajfkafkjalalfkjakljdljfajfjajfljalkfjlafljalsjfjj";
+ byte[] encrypted = PublicCryptoUtil.INSTANCE.encrypt(object);
+ assertFalse(object.equals(new String(encrypted)));
+
+ Serializable unsealedObject = PublicCryptoUtil.INSTANCE.decrypt(encrypted);
+ assertEquals(object, unsealedObject);
+ }
+
+ @SuppressWarnings("unused")
+ private void dumpSecurityProviders()
+ {
+ Provider[] providers = Security.getProviders();
+ for (Provider provider : providers)
+ {
+ System.out.println(provider.getServices());
+ }
+ }
+
+ @Before
+ public void setup() throws ConfigurationException
+ {
+ jbossEsbProperties = System.getProperty(Environment.PROPERTIES_FILE);
+ URL resource = ClassUtil.getResource("security-properties.xml", getClass());
+ System.setProperty(Environment.PROPERTIES_FILE, "abs://" + resource.getFile());
+ }
+
+ @After
+ public void tearDown()
+ {
+ if ( jbossEsbProperties != null )
+ System.setProperty(Environment.PROPERTIES_FILE, jbossEsbProperties);
+ }
+
+ public static junit.framework.Test suite()
+ {
+ return new JUnit4TestAdapter(PublicCryptoUtilUnitTest.class);
+ }
+
+}
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/services/security/SecurityConfigUtilUnitTest.java
===================================================================
--- labs/jbossesb/trunk/product/rosetta/tests/src/org/jboss/soa/esb/services/security/SecurityConfigUtilUnitTest.java 2009-01-21 09:35:03 UTC (rev 24846)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/services/security/SecurityConfigUtilUnitTest.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -1,155 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source Copyright 2008, Red Hat Middleware
- * LLC, and individual contributors by the @authors tag. See the copyright.txt
- * in the distribution for a full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it under the
- * terms of the GNU Lesser General Public License as published by the Free
- * Software Foundation; either version 2.1 of the License, or (at your option)
- * any later version.
- *
- * This software is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
- * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
- * details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this software; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA, or see the FSF
- * site: http://www.fsf.org.
- */
-package org.jboss.soa.esb.services.security;
-
-import static org.junit.Assert.*;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNull;
-import static org.junit.Assert.assertTrue;
-
-import java.util.Map;
-
-import junit.framework.JUnit4TestAdapter;
-
-import org.jboss.soa.esb.helpers.ConfigTree;
-import org.jboss.soa.esb.listeners.ListenerTagNames;
-import org.junit.Test;
-
-/**
- * Unit test for {@link SecurityConfigUtil}
- *
- * @author <a href="mailto:dbevenius at redhat.com">Daniel Bevenius</a>
- *
- */
-public class SecurityConfigUtilUnitTest
-{
- private final String runAs = "kalle";
-
- @Test
- public void createSecurityConfigInfoWithAuth()
- {
- final ConfigTree securityFragment = createSecurityFragment(runAs, null, null);
-
- SecurityConfig securityInfo = SecurityConfigUtil.createSecurityConfig(securityFragment);
- assertEquals(runAs, securityInfo.getRunAs());
- assertNull(securityInfo.getUseCallerIdentity());
- }
-
- @Test
- public void createSecurityConfigInfoWithoutAuth()
- {
- final ConfigTree securityFragment = createSecurityFragment(runAs, null, null);
- SecurityConfig securityInfo = SecurityConfigUtil.createSecurityConfig(securityFragment);
- assertEquals(runAs, securityInfo.getRunAs());
- assertNull(securityInfo.getUseCallerIdentity());
- }
-
- @Test
- public void createSecurityConfigInfoWithUseCallersIdentity()
- {
- final String callersIdentity = "DrCox";
- final ConfigTree securityFragment = createSecurityFragment(runAs, callersIdentity, null);
- SecurityConfig securityInfo = SecurityConfigUtil.createSecurityConfig(securityFragment);
- assertEquals(callersIdentity, securityInfo.getUseCallerIdentity());
- }
-
- @Test
- public void createSecurityConfigInfoWithModuleName()
- {
- final String moduleName = "testModule";
- final ConfigTree securityFragment = createSecurityFragment(runAs, null, moduleName);
- SecurityConfig securityInfo = SecurityConfigUtil.createSecurityConfig(securityFragment);
- assertEquals(moduleName, securityInfo.getModuleName());
- }
-
- @Test
- public void hasRunAs()
- {
- final ConfigTree securityFragment = createSecurityFragment(runAs, null, null);
- SecurityConfig securityInfo = SecurityConfigUtil.createSecurityConfig(securityFragment);
- assertTrue(securityInfo.hasRunAs());
- }
-
- @Test
- public void properties()
- {
- final ConfigTree securityFragment = createSecurityFragment(runAs, null, null, "kalle");
- SecurityConfig securityInfo = SecurityConfigUtil.createSecurityConfig(securityFragment);
- Map<String, String> properties = securityInfo.getProperties();
- assertNotNull( properties );
- assertEquals("kalle", properties.get("alias"));
- }
-
- @Test
- public void rolesAllowed()
- {
- final ConfigTree securityFragment = createSecurityFragment(runAs, "role1, role2, ", null, null, null );
- SecurityConfig securityInfo = SecurityConfigUtil.createSecurityConfig(securityFragment);
- assertTrue(securityInfo.getRolesAllowed().contains("role1"));
- assertTrue(securityInfo.getRolesAllowed().contains("role2"));
- }
-
- public static junit.framework.Test suite()
- {
- return new JUnit4TestAdapter(SecurityConfigUtilUnitTest.class);
- }
-
- private ConfigTree createSecurityFragment(
- final String runAs,
- final String callerIdentity,
- final String moduleName)
- {
- final ConfigTree securityElement = new ConfigTree(ListenerTagNames.SECURITY_TAG);
- securityElement.setAttribute(ListenerTagNames.RUN_AS_TAG, runAs);
- securityElement.setAttribute(ListenerTagNames.USE_CALLERS_IDENTIDY_TAG, callerIdentity);
- securityElement.setAttribute(ListenerTagNames.MODULE_NAME_TAG, moduleName);
- return securityElement;
- }
-
- private ConfigTree createSecurityFragment(
- final String runAs,
- final String callerIdentity,
- final String moduleName,
- final String alias)
- {
- final ConfigTree securityElement = createSecurityFragment(runAs, callerIdentity, moduleName);
- if ( alias != null )
- {
- ConfigTree property = new ConfigTree("property", securityElement);
- property.setAttribute("name", "alias");
- property.setAttribute("value", alias);
- }
- return securityElement;
- }
-
- private ConfigTree createSecurityFragment(
- final String runAs,
- final String rolesAllowed,
- final String callerIdentity,
- final String moduleName,
- final String alias)
- {
- final ConfigTree securityElement = createSecurityFragment(runAs, callerIdentity, moduleName, alias);
- securityElement.setAttribute("rolesAllowed", rolesAllowed);
- return securityElement;
- }
-
-}
Copied: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/services/security/SecurityConfigUtilUnitTest.java (from rev 24846, labs/jbossesb/trunk/product/rosetta/tests/src/org/jboss/soa/esb/services/security/SecurityConfigUtilUnitTest.java)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/services/security/SecurityConfigUtilUnitTest.java (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/services/security/SecurityConfigUtilUnitTest.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -0,0 +1,155 @@
+/*
+ * JBoss, Home of Professional Open Source Copyright 2008, Red Hat Middleware
+ * LLC, and individual contributors by the @authors tag. See the copyright.txt
+ * in the distribution for a full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it under the
+ * terms of the GNU Lesser General Public License as published by the Free
+ * Software Foundation; either version 2.1 of the License, or (at your option)
+ * any later version.
+ *
+ * This software is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+ * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
+ * details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this software; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA, or see the FSF
+ * site: http://www.fsf.org.
+ */
+package org.jboss.soa.esb.services.security;
+
+import static org.junit.Assert.*;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNull;
+import static org.junit.Assert.assertTrue;
+
+import java.util.Map;
+
+import junit.framework.JUnit4TestAdapter;
+
+import org.jboss.soa.esb.helpers.ConfigTree;
+import org.jboss.soa.esb.listeners.ListenerTagNames;
+import org.junit.Test;
+
+/**
+ * Unit test for {@link SecurityConfigUtil}
+ *
+ * @author <a href="mailto:dbevenius at redhat.com">Daniel Bevenius</a>
+ *
+ */
+public class SecurityConfigUtilUnitTest
+{
+ private final String runAs = "kalle";
+
+ @Test
+ public void createSecurityConfigInfoWithAuth()
+ {
+ final ConfigTree securityFragment = createSecurityFragment(runAs, null, null);
+
+ SecurityConfig securityInfo = SecurityConfigUtil.createSecurityConfig(securityFragment);
+ assertEquals(runAs, securityInfo.getRunAs());
+ assertNull(securityInfo.getUseCallerIdentity());
+ }
+
+ @Test
+ public void createSecurityConfigInfoWithoutAuth()
+ {
+ final ConfigTree securityFragment = createSecurityFragment(runAs, null, null);
+ SecurityConfig securityInfo = SecurityConfigUtil.createSecurityConfig(securityFragment);
+ assertEquals(runAs, securityInfo.getRunAs());
+ assertNull(securityInfo.getUseCallerIdentity());
+ }
+
+ @Test
+ public void createSecurityConfigInfoWithUseCallersIdentity()
+ {
+ final String callersIdentity = "DrCox";
+ final ConfigTree securityFragment = createSecurityFragment(runAs, callersIdentity, null);
+ SecurityConfig securityInfo = SecurityConfigUtil.createSecurityConfig(securityFragment);
+ assertEquals(callersIdentity, securityInfo.getUseCallerIdentity());
+ }
+
+ @Test
+ public void createSecurityConfigInfoWithModuleName()
+ {
+ final String moduleName = "testModule";
+ final ConfigTree securityFragment = createSecurityFragment(runAs, null, moduleName);
+ SecurityConfig securityInfo = SecurityConfigUtil.createSecurityConfig(securityFragment);
+ assertEquals(moduleName, securityInfo.getModuleName());
+ }
+
+ @Test
+ public void hasRunAs()
+ {
+ final ConfigTree securityFragment = createSecurityFragment(runAs, null, null);
+ SecurityConfig securityInfo = SecurityConfigUtil.createSecurityConfig(securityFragment);
+ assertTrue(securityInfo.hasRunAs());
+ }
+
+ @Test
+ public void properties()
+ {
+ final ConfigTree securityFragment = createSecurityFragment(runAs, null, null, "kalle");
+ SecurityConfig securityInfo = SecurityConfigUtil.createSecurityConfig(securityFragment);
+ Map<String, String> properties = securityInfo.getProperties();
+ assertNotNull( properties );
+ assertEquals("kalle", properties.get("alias"));
+ }
+
+ @Test
+ public void rolesAllowed()
+ {
+ final ConfigTree securityFragment = createSecurityFragment(runAs, "role1, role2, ", null, null, null );
+ SecurityConfig securityInfo = SecurityConfigUtil.createSecurityConfig(securityFragment);
+ assertTrue(securityInfo.getRolesAllowed().contains("role1"));
+ assertTrue(securityInfo.getRolesAllowed().contains("role2"));
+ }
+
+ public static junit.framework.Test suite()
+ {
+ return new JUnit4TestAdapter(SecurityConfigUtilUnitTest.class);
+ }
+
+ private ConfigTree createSecurityFragment(
+ final String runAs,
+ final String callerIdentity,
+ final String moduleName)
+ {
+ final ConfigTree securityElement = new ConfigTree(ListenerTagNames.SECURITY_TAG);
+ securityElement.setAttribute(ListenerTagNames.RUN_AS_TAG, runAs);
+ securityElement.setAttribute(ListenerTagNames.USE_CALLERS_IDENTIDY_TAG, callerIdentity);
+ securityElement.setAttribute(ListenerTagNames.MODULE_NAME_TAG, moduleName);
+ return securityElement;
+ }
+
+ private ConfigTree createSecurityFragment(
+ final String runAs,
+ final String callerIdentity,
+ final String moduleName,
+ final String alias)
+ {
+ final ConfigTree securityElement = createSecurityFragment(runAs, callerIdentity, moduleName);
+ if ( alias != null )
+ {
+ ConfigTree property = new ConfigTree("property", securityElement);
+ property.setAttribute("name", "alias");
+ property.setAttribute("value", alias);
+ }
+ return securityElement;
+ }
+
+ private ConfigTree createSecurityFragment(
+ final String runAs,
+ final String rolesAllowed,
+ final String callerIdentity,
+ final String moduleName,
+ final String alias)
+ {
+ final ConfigTree securityElement = createSecurityFragment(runAs, callerIdentity, moduleName, alias);
+ securityElement.setAttribute("rolesAllowed", rolesAllowed);
+ return securityElement;
+ }
+
+}
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/services/security/SecurityContextUnitTest.java
===================================================================
--- labs/jbossesb/trunk/product/rosetta/tests/src/org/jboss/soa/esb/services/security/SecurityContextUnitTest.java 2009-01-21 09:35:03 UTC (rev 24846)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/services/security/SecurityContextUnitTest.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -1,208 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source Copyright 2008, Red Hat Middleware
- * LLC, and individual contributors by the @authors tag. See the copyright.txt
- * in the distribution for a full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it under the
- * terms of the GNU Lesser General Public License as published by the Free
- * Software Foundation; either version 2.1 of the License, or (at your option)
- * any later version.
- *
- * This software is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
- * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
- * details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this software; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA, or see the FSF
- * site: http://www.fsf.org.
- */
-package org.jboss.soa.esb.services.security;
-
-import static org.junit.Assert.*;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertTrue;
-
-import java.io.ByteArrayInputStream;
-import java.io.ByteArrayOutputStream;
-import java.io.IOException;
-import java.io.ObjectInputStream;
-import java.io.ObjectOutputStream;
-import java.net.URL;
-import java.util.HashSet;
-
-import javax.security.auth.Subject;
-
-import junit.framework.JUnit4TestAdapter;
-
-import org.jboss.soa.esb.ConfigurationException;
-import org.jboss.soa.esb.common.Environment;
-import org.jboss.soa.esb.message.Message;
-import org.jboss.soa.esb.message.format.MessageFactory;
-import org.jboss.soa.esb.message.format.MessageType;
-import org.jboss.soa.esb.services.security.auth.AuthenticationRequest;
-import org.jboss.soa.esb.services.security.auth.AuthenticationRequestImpl;
-import org.jboss.soa.esb.services.security.principals.Group;
-import org.jboss.soa.esb.services.security.principals.Role;
-import org.jboss.soa.esb.services.security.principals.User;
-import org.jboss.soa.esb.util.ClassUtil;
-import org.junit.After;
-import org.junit.Before;
-import org.junit.Test;
-
-/**
- *
- * @author <a href="mailto:dbevenius at redhat.com">Daniel Bevenius</a>
- *
- */
-public class SecurityContextUnitTest
-{
- private String jbossEsbProperties;
-
- @Test
- public void isCallerInRole()
- {
- Subject subject = new Subject();
- subject.getPrincipals().add( new User("AustinPowerwich") );
- Group roles = new Group("Roles");
- roles.addMember( new Role("Admin"));
- subject.getPrincipals().add(roles);
-
- SecurityContext securityContext = new SecurityContext(subject);
- boolean callerInRole = securityContext.isCallerInRole("Admin");
- assertTrue( callerInRole );
- }
-
- @Test
- public void serializeAndDeserialize() throws IOException, ClassNotFoundException
- {
- Subject subject = new Subject();
- User user = new User("AustinPowerwich");
- subject.getPrincipals().add(user);
- byte[] publicCred = "secret".getBytes();
- subject.getPublicCredentials().add(publicCred);
-
- SecurityContext securityContext = new SecurityContext(subject);
- assertEquals( user, securityContext.getSubject().getPrincipals().iterator().next() );
- assertEquals( publicCred, securityContext.getSubject().getPublicCredentials().iterator().next());
-
- // serialize object
- ByteArrayOutputStream bout = new ByteArrayOutputStream();
- ObjectOutputStream out = new ObjectOutputStream(bout);
- out.writeObject(securityContext);
-
- // deserialize object
- ByteArrayInputStream bin = new ByteArrayInputStream(bout.toByteArray());
- ObjectInputStream oin = new ObjectInputStream(bin);
- Object readObject = oin.readObject();
-
- // assert that the content is still matches.
- assertTrue (readObject instanceof SecurityContext);
- SecurityContext deserialized = (SecurityContext)readObject;
- assertEquals( user, deserialized.getSubject().getPrincipals().iterator().next() );
- assertEquals( new String(publicCred), new String((byte[])deserialized.getPubCredentials().iterator().next()));
- }
-
- @Test
- public void encryptThenSerializeAndDeserialize() throws IOException, ClassNotFoundException, SecurityServiceException
- {
- Subject subject = new Subject();
- User user = new User("AustinPowerwich");
- subject.getPrincipals().add(user);
- byte[] publicCred = "secret".getBytes();
- subject.getPublicCredentials().add(publicCred);
-
- SecurityContext securityContext = new SecurityContext(subject);
- Message message = MessageFactory.getInstance().getMessage(MessageType.JAVA_SERIALIZED);
- byte[] encryptContext = SecurityContext.encryptContext(securityContext);
- message.getContext().setContext(SecurityService.CONTEXT, encryptContext);
-
-
- // serialize object
- ByteArrayOutputStream bout = new ByteArrayOutputStream();
- ObjectOutputStream out = new ObjectOutputStream(bout);
- out.writeObject(message);
-
- // deserialize object
- ByteArrayInputStream bin = new ByteArrayInputStream(bout.toByteArray());
- ObjectInputStream oin = new ObjectInputStream(bin);
- Object readObject = oin.readObject();
-
- // assert that the content is still matches.
- assertTrue (readObject instanceof Message);
- Message deserializedMsg = (Message) readObject;
- SecurityContext deserialized = SecurityContext.decryptContext((byte[]) deserializedMsg.getContext().getContext(SecurityService.CONTEXT));
- assertEquals( user, deserialized.getSubject().getPrincipals().iterator().next() );
- //assertEquals( new String(publicCred), new String((byte[])deserialized.getPubCredentials().iterator().next()));
- assertEquals( new String(publicCred), new String((byte[])deserialized.getSubject().getPublicCredentials().iterator().next()));
- }
-
- @Test
- public void decryptionConstructor() throws SecurityServiceException
- {
- Subject subject = new Subject();
- User user = new User("AustinPowerwich");
- subject.getPrincipals().add(user);
- byte[] publicCred = "publicsecret".getBytes();
- subject.getPublicCredentials().add(publicCred);
- byte[] privateCred = "privatesecret".getBytes();
- subject.getPrivateCredentials().add(privateCred);
-
- SecurityContext securityContext = new SecurityContext(subject);
- byte[] encrypt = SecurityContext.encryptContext(securityContext);
- assertNotNull(encrypt);
-
- SecurityContext decryptContext = SecurityContext.decryptContext(encrypt);
- assertEquals( new String(publicCred), new String((byte[])decryptContext.getPubCredentials().iterator().next()));
- assertEquals( new String(privateCred), new String((byte[])decryptContext.getPrivCredentials().iterator().next()));
- }
-
- @Test
- public void compareTo() throws SecurityServiceException
- {
- Subject subject = new Subject();
- User user = new User("AustinPowerwich");
- subject.getPrincipals().add(user);
- byte[] publicCred = "publicsecret".getBytes();
- subject.getPublicCredentials().add(publicCred);
- byte[] privateCred = "privatesecret".getBytes();
- subject.getPrivateCredentials().add(privateCred);
-
- SecurityContext securityContext = new SecurityContext(subject);
-
- HashSet<Object> credentials = new HashSet<Object>();
- credentials.add(publicCred);
- credentials.add(privateCred);
-
- AuthenticationRequest authRequest = new AuthenticationRequestImpl.Builder(user, credentials).build();
- assertTrue(securityContext.compareTo(authRequest));
-
- credentials = new HashSet<Object>();
- credentials.add("public-modified-secret".getBytes());
- authRequest = new AuthenticationRequestImpl.Builder(user, credentials).build();
- assertFalse(securityContext.compareTo(authRequest));
- assertFalse(securityContext.compareTo(null));
- }
-
- @Before
- public void setup() throws ConfigurationException
- {
- jbossEsbProperties = System.getProperty(Environment.PROPERTIES_FILE);
- URL resource = ClassUtil.getResource("security-properties.xml", getClass());
- System.setProperty(Environment.PROPERTIES_FILE, "abs://" + resource.getFile());
- }
-
- @After
- public void tearDown()
- {
- if ( jbossEsbProperties != null )
- System.setProperty(Environment.PROPERTIES_FILE, jbossEsbProperties);
- }
-
- public static junit.framework.Test suite()
- {
- return new JUnit4TestAdapter(SecurityContextUnitTest.class);
- }
-}
Copied: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/services/security/SecurityContextUnitTest.java (from rev 24846, labs/jbossesb/trunk/product/rosetta/tests/src/org/jboss/soa/esb/services/security/SecurityContextUnitTest.java)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/services/security/SecurityContextUnitTest.java (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/services/security/SecurityContextUnitTest.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -0,0 +1,208 @@
+/*
+ * JBoss, Home of Professional Open Source Copyright 2008, Red Hat Middleware
+ * LLC, and individual contributors by the @authors tag. See the copyright.txt
+ * in the distribution for a full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it under the
+ * terms of the GNU Lesser General Public License as published by the Free
+ * Software Foundation; either version 2.1 of the License, or (at your option)
+ * any later version.
+ *
+ * This software is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+ * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
+ * details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this software; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA, or see the FSF
+ * site: http://www.fsf.org.
+ */
+package org.jboss.soa.esb.services.security;
+
+import static org.junit.Assert.*;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertTrue;
+
+import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
+import java.io.IOException;
+import java.io.ObjectInputStream;
+import java.io.ObjectOutputStream;
+import java.net.URL;
+import java.util.HashSet;
+
+import javax.security.auth.Subject;
+
+import junit.framework.JUnit4TestAdapter;
+
+import org.jboss.soa.esb.ConfigurationException;
+import org.jboss.soa.esb.common.Environment;
+import org.jboss.soa.esb.message.Message;
+import org.jboss.soa.esb.message.format.MessageFactory;
+import org.jboss.soa.esb.message.format.MessageType;
+import org.jboss.soa.esb.services.security.auth.AuthenticationRequest;
+import org.jboss.soa.esb.services.security.auth.AuthenticationRequestImpl;
+import org.jboss.soa.esb.services.security.principals.Group;
+import org.jboss.soa.esb.services.security.principals.Role;
+import org.jboss.soa.esb.services.security.principals.User;
+import org.jboss.soa.esb.util.ClassUtil;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+
+/**
+ *
+ * @author <a href="mailto:dbevenius at redhat.com">Daniel Bevenius</a>
+ *
+ */
+public class SecurityContextUnitTest
+{
+ private String jbossEsbProperties;
+
+ @Test
+ public void isCallerInRole()
+ {
+ Subject subject = new Subject();
+ subject.getPrincipals().add( new User("AustinPowerwich") );
+ Group roles = new Group("Roles");
+ roles.addMember( new Role("Admin"));
+ subject.getPrincipals().add(roles);
+
+ SecurityContext securityContext = new SecurityContext(subject);
+ boolean callerInRole = securityContext.isCallerInRole("Admin");
+ assertTrue( callerInRole );
+ }
+
+ @Test
+ public void serializeAndDeserialize() throws IOException, ClassNotFoundException
+ {
+ Subject subject = new Subject();
+ User user = new User("AustinPowerwich");
+ subject.getPrincipals().add(user);
+ byte[] publicCred = "secret".getBytes();
+ subject.getPublicCredentials().add(publicCred);
+
+ SecurityContext securityContext = new SecurityContext(subject);
+ assertEquals( user, securityContext.getSubject().getPrincipals().iterator().next() );
+ assertEquals( publicCred, securityContext.getSubject().getPublicCredentials().iterator().next());
+
+ // serialize object
+ ByteArrayOutputStream bout = new ByteArrayOutputStream();
+ ObjectOutputStream out = new ObjectOutputStream(bout);
+ out.writeObject(securityContext);
+
+ // deserialize object
+ ByteArrayInputStream bin = new ByteArrayInputStream(bout.toByteArray());
+ ObjectInputStream oin = new ObjectInputStream(bin);
+ Object readObject = oin.readObject();
+
+ // assert that the content is still matches.
+ assertTrue (readObject instanceof SecurityContext);
+ SecurityContext deserialized = (SecurityContext)readObject;
+ assertEquals( user, deserialized.getSubject().getPrincipals().iterator().next() );
+ assertEquals( new String(publicCred), new String((byte[])deserialized.getPubCredentials().iterator().next()));
+ }
+
+ @Test
+ public void encryptThenSerializeAndDeserialize() throws IOException, ClassNotFoundException, SecurityServiceException
+ {
+ Subject subject = new Subject();
+ User user = new User("AustinPowerwich");
+ subject.getPrincipals().add(user);
+ byte[] publicCred = "secret".getBytes();
+ subject.getPublicCredentials().add(publicCred);
+
+ SecurityContext securityContext = new SecurityContext(subject);
+ Message message = MessageFactory.getInstance().getMessage(MessageType.JAVA_SERIALIZED);
+ byte[] encryptContext = SecurityContext.encryptContext(securityContext);
+ message.getContext().setContext(SecurityService.CONTEXT, encryptContext);
+
+
+ // serialize object
+ ByteArrayOutputStream bout = new ByteArrayOutputStream();
+ ObjectOutputStream out = new ObjectOutputStream(bout);
+ out.writeObject(message);
+
+ // deserialize object
+ ByteArrayInputStream bin = new ByteArrayInputStream(bout.toByteArray());
+ ObjectInputStream oin = new ObjectInputStream(bin);
+ Object readObject = oin.readObject();
+
+ // assert that the content is still matches.
+ assertTrue (readObject instanceof Message);
+ Message deserializedMsg = (Message) readObject;
+ SecurityContext deserialized = SecurityContext.decryptContext((byte[]) deserializedMsg.getContext().getContext(SecurityService.CONTEXT));
+ assertEquals( user, deserialized.getSubject().getPrincipals().iterator().next() );
+ //assertEquals( new String(publicCred), new String((byte[])deserialized.getPubCredentials().iterator().next()));
+ assertEquals( new String(publicCred), new String((byte[])deserialized.getSubject().getPublicCredentials().iterator().next()));
+ }
+
+ @Test
+ public void decryptionConstructor() throws SecurityServiceException
+ {
+ Subject subject = new Subject();
+ User user = new User("AustinPowerwich");
+ subject.getPrincipals().add(user);
+ byte[] publicCred = "publicsecret".getBytes();
+ subject.getPublicCredentials().add(publicCred);
+ byte[] privateCred = "privatesecret".getBytes();
+ subject.getPrivateCredentials().add(privateCred);
+
+ SecurityContext securityContext = new SecurityContext(subject);
+ byte[] encrypt = SecurityContext.encryptContext(securityContext);
+ assertNotNull(encrypt);
+
+ SecurityContext decryptContext = SecurityContext.decryptContext(encrypt);
+ assertEquals( new String(publicCred), new String((byte[])decryptContext.getPubCredentials().iterator().next()));
+ assertEquals( new String(privateCred), new String((byte[])decryptContext.getPrivCredentials().iterator().next()));
+ }
+
+ @Test
+ public void compareTo() throws SecurityServiceException
+ {
+ Subject subject = new Subject();
+ User user = new User("AustinPowerwich");
+ subject.getPrincipals().add(user);
+ byte[] publicCred = "publicsecret".getBytes();
+ subject.getPublicCredentials().add(publicCred);
+ byte[] privateCred = "privatesecret".getBytes();
+ subject.getPrivateCredentials().add(privateCred);
+
+ SecurityContext securityContext = new SecurityContext(subject);
+
+ HashSet<Object> credentials = new HashSet<Object>();
+ credentials.add(publicCred);
+ credentials.add(privateCred);
+
+ AuthenticationRequest authRequest = new AuthenticationRequestImpl.Builder(user, credentials).build();
+ assertTrue(securityContext.compareTo(authRequest));
+
+ credentials = new HashSet<Object>();
+ credentials.add("public-modified-secret".getBytes());
+ authRequest = new AuthenticationRequestImpl.Builder(user, credentials).build();
+ assertFalse(securityContext.compareTo(authRequest));
+ assertFalse(securityContext.compareTo(null));
+ }
+
+ @Before
+ public void setup() throws ConfigurationException
+ {
+ jbossEsbProperties = System.getProperty(Environment.PROPERTIES_FILE);
+ URL resource = ClassUtil.getResource("security-properties.xml", getClass());
+ System.setProperty(Environment.PROPERTIES_FILE, "abs://" + resource.getFile());
+ }
+
+ @After
+ public void tearDown()
+ {
+ if ( jbossEsbProperties != null )
+ System.setProperty(Environment.PROPERTIES_FILE, jbossEsbProperties);
+ }
+
+ public static junit.framework.Test suite()
+ {
+ return new JUnit4TestAdapter(SecurityContextUnitTest.class);
+ }
+}
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/services/security/SecurityServiceFactoryUnitTest.java
===================================================================
--- labs/jbossesb/trunk/product/rosetta/tests/src/org/jboss/soa/esb/services/security/SecurityServiceFactoryUnitTest.java 2009-01-21 09:35:03 UTC (rev 24846)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/services/security/SecurityServiceFactoryUnitTest.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -1,72 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source Copyright 2008, Red Hat Middleware
- * LLC, and individual contributors by the @authors tag. See the copyright.txt
- * in the distribution for a full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it under the
- * terms of the GNU Lesser General Public License as published by the Free
- * Software Foundation; either version 2.1 of the License, or (at your option)
- * any later version.
- *
- * This software is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
- * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
- * details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this software; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA, or see the FSF
- * site: http://www.fsf.org.
- */
-package org.jboss.soa.esb.services.security;
-
-import static org.junit.Assert.assertNotNull;
-
-import java.net.URL;
-
-import junit.framework.JUnit4TestAdapter;
-
-import org.jboss.soa.esb.common.Environment;
-import org.jboss.soa.esb.util.ClassUtil;
-import org.junit.After;
-import org.junit.Before;
-import org.junit.Test;
-
-/**
- *
- * @author <a href="mailto:dbevenius at redhat.com">Daniel Bevenius</a>
- *
- */
-public class SecurityServiceFactoryUnitTest
-{
- private String jbossEsbProperties;
-
-
- @Test
- public void getSecurityService() throws Exception
- {
- SecurityService securityService = SecurityServiceFactory.getSecurityService();
- assertNotNull( securityService );
- }
-
- @Before
- public void setup()
- {
- jbossEsbProperties = System.getProperty(Environment.PROPERTIES_FILE);
- URL resource = ClassUtil.getResource("security-properties.xml", getClass());
- System.setProperty(Environment.PROPERTIES_FILE, "abs://" + resource.getFile());
- }
-
- @After
- public void tearDown()
- {
- if ( jbossEsbProperties != null )
- System.setProperty(Environment.PROPERTIES_FILE, jbossEsbProperties);
- }
-
- public static junit.framework.Test suite()
- {
- return new JUnit4TestAdapter(SecurityServiceFactoryUnitTest.class);
- }
-
-}
Copied: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/services/security/SecurityServiceFactoryUnitTest.java (from rev 24846, labs/jbossesb/trunk/product/rosetta/tests/src/org/jboss/soa/esb/services/security/SecurityServiceFactoryUnitTest.java)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/services/security/SecurityServiceFactoryUnitTest.java (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/services/security/SecurityServiceFactoryUnitTest.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -0,0 +1,72 @@
+/*
+ * JBoss, Home of Professional Open Source Copyright 2008, Red Hat Middleware
+ * LLC, and individual contributors by the @authors tag. See the copyright.txt
+ * in the distribution for a full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it under the
+ * terms of the GNU Lesser General Public License as published by the Free
+ * Software Foundation; either version 2.1 of the License, or (at your option)
+ * any later version.
+ *
+ * This software is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+ * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
+ * details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this software; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA, or see the FSF
+ * site: http://www.fsf.org.
+ */
+package org.jboss.soa.esb.services.security;
+
+import static org.junit.Assert.assertNotNull;
+
+import java.net.URL;
+
+import junit.framework.JUnit4TestAdapter;
+
+import org.jboss.soa.esb.common.Environment;
+import org.jboss.soa.esb.util.ClassUtil;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+
+/**
+ *
+ * @author <a href="mailto:dbevenius at redhat.com">Daniel Bevenius</a>
+ *
+ */
+public class SecurityServiceFactoryUnitTest
+{
+ private String jbossEsbProperties;
+
+
+ @Test
+ public void getSecurityService() throws Exception
+ {
+ SecurityService securityService = SecurityServiceFactory.getSecurityService();
+ assertNotNull( securityService );
+ }
+
+ @Before
+ public void setup()
+ {
+ jbossEsbProperties = System.getProperty(Environment.PROPERTIES_FILE);
+ URL resource = ClassUtil.getResource("security-properties.xml", getClass());
+ System.setProperty(Environment.PROPERTIES_FILE, "abs://" + resource.getFile());
+ }
+
+ @After
+ public void tearDown()
+ {
+ if ( jbossEsbProperties != null )
+ System.setProperty(Environment.PROPERTIES_FILE, jbossEsbProperties);
+ }
+
+ public static junit.framework.Test suite()
+ {
+ return new JUnit4TestAdapter(SecurityServiceFactoryUnitTest.class);
+ }
+
+}
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/services/security/TestLoginModule.java
===================================================================
--- labs/jbossesb/trunk/product/rosetta/tests/src/org/jboss/soa/esb/services/security/TestLoginModule.java 2009-01-21 09:35:03 UTC (rev 24846)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/services/security/TestLoginModule.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -1,126 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source Copyright 2008, Red Hat Middleware
- * LLC, and individual contributors by the @authors tag. See the copyright.txt
- * in the distribution for a full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it under the
- * terms of the GNU Lesser General Public License as published by the Free
- * Software Foundation; either version 2.1 of the License, or (at your option)
- * any later version.
- *
- * This software is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
- * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
- * details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this software; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA, or see the FSF
- * site: http://www.fsf.org.
- */
-package org.jboss.soa.esb.services.security;
-
-import java.util.Map;
-
-import javax.security.auth.Subject;
-import javax.security.auth.callback.CallbackHandler;
-import javax.security.auth.login.FailedLoginException;
-import javax.security.auth.login.LoginException;
-import javax.security.auth.spi.LoginModule;
-
-/**
- * LoginModule intended for testing perposes. <p/>
- *
- * @author <a href="mailto:dbevenius at redhat.com">Daniel Bevenius</a>
- */
-public class TestLoginModule implements LoginModule
-{
- private Subject subject;
-
- // the authentication status
- private boolean succeeded = false;
-
- private boolean commitSucceeded = false;
-
- private String username = "test";
-
- private TestPrincipal principal;
-
- private static boolean forceLogin;
-
- private CallbackHandler callbackHandler;
-
- public void initialize( final Subject subject, final CallbackHandler callbackHandler, final Map<String,?> sharedState, final Map<String,?> options )
- {
- this.subject = subject;
- this.callbackHandler = callbackHandler;
- forceLogin = "true".equalsIgnoreCase( (String) options.get( "forceLogin" ) );
- }
-
- public boolean login() throws LoginException
- {
- if ( forceLogin )
- {
- succeeded = true;
- return true;
- }
- else
- {
- succeeded = false;
- throw new FailedLoginException( "Login failed" );
- }
- }
-
- public boolean commit() throws LoginException
- {
- if (succeeded == false)
- {
- return false;
- }
- else
- {
- principal = new TestPrincipal( username );
- if ( !subject.getPrincipals().contains( principal ) )
- {
- subject.getPrincipals().add( principal );
- }
-
- // in any case, clean out state
- username = null;
-
- commitSucceeded = true;
- return true;
- }
- }
-
- public boolean abort() throws LoginException
- {
- if (succeeded == false)
- {
- return false;
- }
- else if ( succeeded == true && commitSucceeded == false)
- {
- // login succeeded but overall authentication failed
- succeeded = false;
- username = null;
- principal = null;
- }
- else
- {
- logout();
- }
- return true;
- }
-
- public boolean logout() throws LoginException
- {
-
- subject.getPrincipals().remove( principal );
- succeeded = false;
- succeeded = commitSucceeded;
- username = null;
- principal = null;
- return true;
- }
-}
Copied: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/services/security/TestLoginModule.java (from rev 24846, labs/jbossesb/trunk/product/rosetta/tests/src/org/jboss/soa/esb/services/security/TestLoginModule.java)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/services/security/TestLoginModule.java (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/services/security/TestLoginModule.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -0,0 +1,126 @@
+/*
+ * JBoss, Home of Professional Open Source Copyright 2008, Red Hat Middleware
+ * LLC, and individual contributors by the @authors tag. See the copyright.txt
+ * in the distribution for a full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it under the
+ * terms of the GNU Lesser General Public License as published by the Free
+ * Software Foundation; either version 2.1 of the License, or (at your option)
+ * any later version.
+ *
+ * This software is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+ * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
+ * details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this software; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA, or see the FSF
+ * site: http://www.fsf.org.
+ */
+package org.jboss.soa.esb.services.security;
+
+import java.util.Map;
+
+import javax.security.auth.Subject;
+import javax.security.auth.callback.CallbackHandler;
+import javax.security.auth.login.FailedLoginException;
+import javax.security.auth.login.LoginException;
+import javax.security.auth.spi.LoginModule;
+
+/**
+ * LoginModule intended for testing perposes. <p/>
+ *
+ * @author <a href="mailto:dbevenius at redhat.com">Daniel Bevenius</a>
+ */
+public class TestLoginModule implements LoginModule
+{
+ private Subject subject;
+
+ // the authentication status
+ private boolean succeeded = false;
+
+ private boolean commitSucceeded = false;
+
+ private String username = "test";
+
+ private TestPrincipal principal;
+
+ private static boolean forceLogin;
+
+ private CallbackHandler callbackHandler;
+
+ public void initialize( final Subject subject, final CallbackHandler callbackHandler, final Map<String,?> sharedState, final Map<String,?> options )
+ {
+ this.subject = subject;
+ this.callbackHandler = callbackHandler;
+ forceLogin = "true".equalsIgnoreCase( (String) options.get( "forceLogin" ) );
+ }
+
+ public boolean login() throws LoginException
+ {
+ if ( forceLogin )
+ {
+ succeeded = true;
+ return true;
+ }
+ else
+ {
+ succeeded = false;
+ throw new FailedLoginException( "Login failed" );
+ }
+ }
+
+ public boolean commit() throws LoginException
+ {
+ if (succeeded == false)
+ {
+ return false;
+ }
+ else
+ {
+ principal = new TestPrincipal( username );
+ if ( !subject.getPrincipals().contains( principal ) )
+ {
+ subject.getPrincipals().add( principal );
+ }
+
+ // in any case, clean out state
+ username = null;
+
+ commitSucceeded = true;
+ return true;
+ }
+ }
+
+ public boolean abort() throws LoginException
+ {
+ if (succeeded == false)
+ {
+ return false;
+ }
+ else if ( succeeded == true && commitSucceeded == false)
+ {
+ // login succeeded but overall authentication failed
+ succeeded = false;
+ username = null;
+ principal = null;
+ }
+ else
+ {
+ logout();
+ }
+ return true;
+ }
+
+ public boolean logout() throws LoginException
+ {
+
+ subject.getPrincipals().remove( principal );
+ succeeded = false;
+ succeeded = commitSucceeded;
+ username = null;
+ principal = null;
+ return true;
+ }
+}
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/services/security/TestPrincipal.java
===================================================================
--- labs/jbossesb/trunk/product/rosetta/tests/src/org/jboss/soa/esb/services/security/TestPrincipal.java 2009-01-21 09:35:03 UTC (rev 24846)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/services/security/TestPrincipal.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -1,58 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source Copyright 2008, Red Hat Middleware
- * LLC, and individual contributors by the @authors tag. See the copyright.txt
- * in the distribution for a full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it under the
- * terms of the GNU Lesser General Public License as published by the Free
- * Software Foundation; either version 2.1 of the License, or (at your option)
- * any later version.
- *
- * This software is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
- * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
- * details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this software; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA, or see the FSF
- * site: http://www.fsf.org.
- */
-package org.jboss.soa.esb.services.security;
-
-import java.security.Principal;
-
-import org.jboss.internal.soa.esb.assertion.AssertArgument;
-
-/**
- * Principal intented for use in test. </p>
- *
- * @author <a href="mailto:dbevenius at redhat.com">Daniel Bevenius</a>
- */
-public class TestPrincipal implements Principal, java.io.Serializable
-{
- private static final long serialVersionUID = 1L;
-
- /**
- * @serial
- */
- private String name;
-
- public TestPrincipal(String name)
- {
- AssertArgument.isNotNull( name, "name" );
- this.name = name;
- }
-
- public String getName()
- {
- return name;
- }
-
- @Override
- public String toString()
- {
- return "TestPrincipal [ name=" + name + "]";
- }
-
-}
Copied: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/services/security/TestPrincipal.java (from rev 24846, labs/jbossesb/trunk/product/rosetta/tests/src/org/jboss/soa/esb/services/security/TestPrincipal.java)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/services/security/TestPrincipal.java (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/services/security/TestPrincipal.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -0,0 +1,58 @@
+/*
+ * JBoss, Home of Professional Open Source Copyright 2008, Red Hat Middleware
+ * LLC, and individual contributors by the @authors tag. See the copyright.txt
+ * in the distribution for a full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it under the
+ * terms of the GNU Lesser General Public License as published by the Free
+ * Software Foundation; either version 2.1 of the License, or (at your option)
+ * any later version.
+ *
+ * This software is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+ * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
+ * details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this software; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA, or see the FSF
+ * site: http://www.fsf.org.
+ */
+package org.jboss.soa.esb.services.security;
+
+import java.security.Principal;
+
+import org.jboss.internal.soa.esb.assertion.AssertArgument;
+
+/**
+ * Principal intented for use in test. </p>
+ *
+ * @author <a href="mailto:dbevenius at redhat.com">Daniel Bevenius</a>
+ */
+public class TestPrincipal implements Principal, java.io.Serializable
+{
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * @serial
+ */
+ private String name;
+
+ public TestPrincipal(String name)
+ {
+ AssertArgument.isNotNull( name, "name" );
+ this.name = name;
+ }
+
+ public String getName()
+ {
+ return name;
+ }
+
+ @Override
+ public String toString()
+ {
+ return "TestPrincipal [ name=" + name + "]";
+ }
+
+}
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/services/security/UserPassLoginModule.java
===================================================================
--- labs/jbossesb/trunk/product/rosetta/tests/src/org/jboss/soa/esb/services/security/UserPassLoginModule.java 2009-01-21 09:35:03 UTC (rev 24846)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/services/security/UserPassLoginModule.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -1,111 +0,0 @@
-package org.jboss.soa.esb.services.security;
-
-import java.io.IOException;
-import java.util.Map;
-
-import javax.security.auth.Subject;
-import javax.security.auth.callback.Callback;
-import javax.security.auth.callback.CallbackHandler;
-import javax.security.auth.callback.NameCallback;
-import javax.security.auth.callback.PasswordCallback;
-import javax.security.auth.callback.UnsupportedCallbackException;
-import javax.security.auth.login.LoginException;
-import javax.security.auth.spi.LoginModule;
-
-public class UserPassLoginModule implements LoginModule
-{
- private Subject subject;
- private CallbackHandler callbackHandler;
- private TestPrincipal principal;
-
- private String userName = null;
- private boolean succeeded = false;
- private boolean commitSucceeded = false;
-
- public void initialize(
- final Subject subject,
- final CallbackHandler callbackHandler ,
- final Map<String,?> sharedMap,
- final Map<String,?> options)
- {
- this.subject = subject;
- this.callbackHandler = callbackHandler;
- }
-
- public boolean login() throws LoginException
- {
- NameCallback nameCallback = new NameCallback("user:");
- PasswordCallback passwordCallback = new PasswordCallback("password:", true);
- try
- {
- callbackHandler.handle(new Callback[] { nameCallback, passwordCallback });
- }
- catch (IOException e)
- {
- throw new LoginException(e.getMessage());
- }
- catch (UnsupportedCallbackException e)
- {
- throw new LoginException(e.getMessage());
- }
-
- // dummy login
- final String name = nameCallback.getName();
- final String passwd = new String(passwordCallback.getPassword());
- if (name.equals("testUser") && passwd.equals("testPassword"))
- {
- userName = name;
- succeeded = true;
- return true;
- } else
- {
- succeeded = false;
- return false;
- }
- }
-
- public boolean commit() throws LoginException
- {
- if (!succeeded)
- {
- userName = null;
- return false;
- }
-
- principal = new TestPrincipal(userName);
- if (!subject.getPrincipals().contains(principal))
- {
- subject.getPrincipals().add(principal);
- }
-
- userName = null;
- commitSucceeded = true;
- return true;
- }
-
- public boolean abort() throws LoginException
- {
- if (succeeded == false)
- {
- return false;
- }
- else if (succeeded == true && commitSucceeded == true)
- {
- logout();
- }
- else
- {
- succeeded = false;
- }
- return true;
- }
-
- public boolean logout() throws LoginException
- {
- subject.getPrincipals().remove(principal);
- principal = null;
- userName = null;
- succeeded = commitSucceeded = false;
- return true;
- }
-}
Copied: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/services/security/UserPassLoginModule.java (from rev 24846, labs/jbossesb/trunk/product/rosetta/tests/src/org/jboss/soa/esb/services/security/UserPassLoginModule.java)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/services/security/UserPassLoginModule.java (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/services/security/UserPassLoginModule.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -0,0 +1,111 @@
+package org.jboss.soa.esb.services.security;
+
+import java.io.IOException;
+import java.util.Map;
+
+import javax.security.auth.Subject;
+import javax.security.auth.callback.Callback;
+import javax.security.auth.callback.CallbackHandler;
+import javax.security.auth.callback.NameCallback;
+import javax.security.auth.callback.PasswordCallback;
+import javax.security.auth.callback.UnsupportedCallbackException;
+import javax.security.auth.login.LoginException;
+import javax.security.auth.spi.LoginModule;
+
+public class UserPassLoginModule implements LoginModule
+{
+ private Subject subject;
+ private CallbackHandler callbackHandler;
+ private TestPrincipal principal;
+
+ private String userName = null;
+ private boolean succeeded = false;
+ private boolean commitSucceeded = false;
+
+ public void initialize(
+ final Subject subject,
+ final CallbackHandler callbackHandler ,
+ final Map<String,?> sharedMap,
+ final Map<String,?> options)
+ {
+ this.subject = subject;
+ this.callbackHandler = callbackHandler;
+ }
+
+ public boolean login() throws LoginException
+ {
+ NameCallback nameCallback = new NameCallback("user:");
+ PasswordCallback passwordCallback = new PasswordCallback("password:", true);
+ try
+ {
+ callbackHandler.handle(new Callback[] { nameCallback, passwordCallback });
+ }
+ catch (IOException e)
+ {
+ throw new LoginException(e.getMessage());
+ }
+ catch (UnsupportedCallbackException e)
+ {
+ throw new LoginException(e.getMessage());
+ }
+
+ // dummy login
+ final String name = nameCallback.getName();
+ final String passwd = new String(passwordCallback.getPassword());
+ if (name.equals("testUser") && passwd.equals("testPassword"))
+ {
+ userName = name;
+ succeeded = true;
+ return true;
+ } else
+ {
+ succeeded = false;
+ return false;
+ }
+ }
+
+ public boolean commit() throws LoginException
+ {
+ if (!succeeded)
+ {
+ userName = null;
+ return false;
+ }
+
+ principal = new TestPrincipal(userName);
+ if (!subject.getPrincipals().contains(principal))
+ {
+ subject.getPrincipals().add(principal);
+ }
+
+ userName = null;
+ commitSucceeded = true;
+ return true;
+ }
+
+ public boolean abort() throws LoginException
+ {
+ if (succeeded == false)
+ {
+ return false;
+ }
+ else if (succeeded == true && commitSucceeded == true)
+ {
+ logout();
+ }
+ else
+ {
+ succeeded = false;
+ }
+ return true;
+ }
+
+ public boolean logout() throws LoginException
+ {
+ subject.getPrincipals().remove(principal);
+ principal = null;
+ userName = null;
+ succeeded = commitSucceeded = false;
+ return true;
+ }
+}
Copied: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/services/security/auth (from rev 24846, labs/jbossesb/trunk/product/rosetta/tests/src/org/jboss/soa/esb/services/security/auth)
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/services/security/auth/AuthenticationRequestUnitTest.java
===================================================================
--- labs/jbossesb/trunk/product/rosetta/tests/src/org/jboss/soa/esb/services/security/auth/AuthenticationRequestUnitTest.java 2009-01-21 09:35:03 UTC (rev 24846)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/services/security/auth/AuthenticationRequestUnitTest.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -1,62 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source Copyright 2008, Red Hat Middleware
- * LLC, and individual contributors by the @authors tag. See the copyright.txt
- * in the distribution for a full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it under the
- * terms of the GNU Lesser General Public License as published by the Free
- * Software Foundation; either version 2.1 of the License, or (at your option)
- * any later version.
- *
- * This software is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
- * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
- * details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this software; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA, or see the FSF
- * site: http://www.fsf.org.
- */
-package org.jboss.soa.esb.services.security.auth;
-
-import static org.junit.Assert.*;
-
-import java.security.Principal;
-
-import org.jboss.soa.esb.services.security.TestPrincipal;
-import org.junit.Test;
-
-import junit.framework.JUnit4TestAdapter;
-
-/**
- *
- * @author <a href="mailto:dbevenius at redhat.com">Daniel Bevenius</a>
- *
- */
-public class AuthenticationRequestUnitTest
-{
- @Test
- public void contruct()
- {
- final Principal principal = new TestPrincipal("testUser");
- AuthenticationRequest request = new AuthenticationRequestImpl.Builder(principal, null ).build();
- assertEquals( principal, request.getPrincipal());
- }
-
- @Test
- public void build()
- {
- final String username = "Donald";
- final String password = "Duck123";
- AuthenticationRequest request = new AuthenticationRequestImpl.Builder().username(username).password(password.toCharArray()).build();
- assertEquals( username, request.getPrincipal().getName() );
- assertTrue( request.getCredentials().size() == 1 );
- }
-
- public static junit.framework.Test suite()
- {
- return new JUnit4TestAdapter(AuthenticationRequestUnitTest.class);
- }
-
-}
Copied: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/services/security/auth/AuthenticationRequestUnitTest.java (from rev 24846, labs/jbossesb/trunk/product/rosetta/tests/src/org/jboss/soa/esb/services/security/auth/AuthenticationRequestUnitTest.java)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/services/security/auth/AuthenticationRequestUnitTest.java (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/services/security/auth/AuthenticationRequestUnitTest.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -0,0 +1,62 @@
+/*
+ * JBoss, Home of Professional Open Source Copyright 2008, Red Hat Middleware
+ * LLC, and individual contributors by the @authors tag. See the copyright.txt
+ * in the distribution for a full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it under the
+ * terms of the GNU Lesser General Public License as published by the Free
+ * Software Foundation; either version 2.1 of the License, or (at your option)
+ * any later version.
+ *
+ * This software is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+ * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
+ * details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this software; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA, or see the FSF
+ * site: http://www.fsf.org.
+ */
+package org.jboss.soa.esb.services.security.auth;
+
+import static org.junit.Assert.*;
+
+import java.security.Principal;
+
+import org.jboss.soa.esb.services.security.TestPrincipal;
+import org.junit.Test;
+
+import junit.framework.JUnit4TestAdapter;
+
+/**
+ *
+ * @author <a href="mailto:dbevenius at redhat.com">Daniel Bevenius</a>
+ *
+ */
+public class AuthenticationRequestUnitTest
+{
+ @Test
+ public void contruct()
+ {
+ final Principal principal = new TestPrincipal("testUser");
+ AuthenticationRequest request = new AuthenticationRequestImpl.Builder(principal, null ).build();
+ assertEquals( principal, request.getPrincipal());
+ }
+
+ @Test
+ public void build()
+ {
+ final String username = "Donald";
+ final String password = "Duck123";
+ AuthenticationRequest request = new AuthenticationRequestImpl.Builder().username(username).password(password.toCharArray()).build();
+ assertEquals( username, request.getPrincipal().getName() );
+ assertTrue( request.getCredentials().size() == 1 );
+ }
+
+ public static junit.framework.Test suite()
+ {
+ return new JUnit4TestAdapter(AuthenticationRequestUnitTest.class);
+ }
+
+}
Copied: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/services/security/auth/http (from rev 24846, labs/jbossesb/trunk/product/rosetta/tests/src/org/jboss/soa/esb/services/security/auth/http)
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/services/security/auth/http/JbrHttpSecurityInfoExtractorUnitTest.java
===================================================================
--- labs/jbossesb/trunk/product/rosetta/tests/src/org/jboss/soa/esb/services/security/auth/http/JbrHttpSecurityInfoExtractorUnitTest.java 2009-01-21 09:35:03 UTC (rev 24846)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/services/security/auth/http/JbrHttpSecurityInfoExtractorUnitTest.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -1,73 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source Copyright 2008, Red Hat Middleware
- * LLC, and individual contributors by the @authors tag. See the copyright.txt
- * in the distribution for a full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it under the
- * terms of the GNU Lesser General Public License as published by the Free
- * Software Foundation; either version 2.1 of the License, or (at your option)
- * any later version.
- *
- * This software is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
- * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
- * details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this software; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA, or see the FSF
- * site: http://www.fsf.org.
- */
-package org.jboss.soa.esb.services.security.auth.http;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
-
-import java.util.HashMap;
-import java.util.Map;
-
-import junit.framework.JUnit4TestAdapter;
-
-import org.jboss.soa.esb.services.security.auth.AuthenticationRequest;
-import org.junit.Test;
-
-/**
- * Unit test for {@link JbrHttpSecurityInfoExtractor}
- * <p>
- *
- * @author <a href="mailto:dbevenius at redhat.com">Daniel Bevenius</a>
- * @since 4.4
- */
-public class JbrHttpSecurityInfoExtractorUnitTest
-{
- private String username = "Alf";
- private String password = "Melmac";
-
- @Test
- public void extractSecurityInfo()
- {
- Map<String,Object> metadata = createRequestMap(username, password);
-
- JbrHttpSecurityInfoExtractor extractor = new JbrHttpSecurityInfoExtractor();
- AuthenticationRequest authRequest = extractor.extractSecurityInfo(metadata);
-
- assertNotNull(authRequest);
- assertEquals(username, authRequest.getPrincipal().getName());
- char[] passwd = (char[]) authRequest.getCredentials().iterator().next();
- assertEquals(password, new String(passwd));
- }
-
- private Map<String,Object> createRequestMap(final String username, final String password)
- {
- Map<String,Object> metadata = new HashMap<String,Object>();
- metadata.put("http.basic.username", username);
- metadata.put("http.basic.password", password);
- return metadata;
- }
-
- public static junit.framework.Test suite()
- {
- return new JUnit4TestAdapter(JbrHttpSecurityInfoExtractorUnitTest.class);
- }
-
-}
Copied: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/services/security/auth/http/JbrHttpSecurityInfoExtractorUnitTest.java (from rev 24846, labs/jbossesb/trunk/product/rosetta/tests/src/org/jboss/soa/esb/services/security/auth/http/JbrHttpSecurityInfoExtractorUnitTest.java)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/services/security/auth/http/JbrHttpSecurityInfoExtractorUnitTest.java (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/services/security/auth/http/JbrHttpSecurityInfoExtractorUnitTest.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -0,0 +1,73 @@
+/*
+ * JBoss, Home of Professional Open Source Copyright 2008, Red Hat Middleware
+ * LLC, and individual contributors by the @authors tag. See the copyright.txt
+ * in the distribution for a full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it under the
+ * terms of the GNU Lesser General Public License as published by the Free
+ * Software Foundation; either version 2.1 of the License, or (at your option)
+ * any later version.
+ *
+ * This software is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+ * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
+ * details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this software; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA, or see the FSF
+ * site: http://www.fsf.org.
+ */
+package org.jboss.soa.esb.services.security.auth.http;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import junit.framework.JUnit4TestAdapter;
+
+import org.jboss.soa.esb.services.security.auth.AuthenticationRequest;
+import org.junit.Test;
+
+/**
+ * Unit test for {@link JbrHttpSecurityInfoExtractor}
+ * <p>
+ *
+ * @author <a href="mailto:dbevenius at redhat.com">Daniel Bevenius</a>
+ * @since 4.4
+ */
+public class JbrHttpSecurityInfoExtractorUnitTest
+{
+ private String username = "Alf";
+ private String password = "Melmac";
+
+ @Test
+ public void extractSecurityInfo()
+ {
+ Map<String,Object> metadata = createRequestMap(username, password);
+
+ JbrHttpSecurityInfoExtractor extractor = new JbrHttpSecurityInfoExtractor();
+ AuthenticationRequest authRequest = extractor.extractSecurityInfo(metadata);
+
+ assertNotNull(authRequest);
+ assertEquals(username, authRequest.getPrincipal().getName());
+ char[] passwd = (char[]) authRequest.getCredentials().iterator().next();
+ assertEquals(password, new String(passwd));
+ }
+
+ private Map<String,Object> createRequestMap(final String username, final String password)
+ {
+ Map<String,Object> metadata = new HashMap<String,Object>();
+ metadata.put("http.basic.username", username);
+ metadata.put("http.basic.password", password);
+ return metadata;
+ }
+
+ public static junit.framework.Test suite()
+ {
+ return new JUnit4TestAdapter(JbrHttpSecurityInfoExtractorUnitTest.class);
+ }
+
+}
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/services/security/auth/keystore
===================================================================
(Binary files differ)
Copied: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/services/security/auth/keystore (from rev 24846, labs/jbossesb/trunk/product/rosetta/tests/src/org/jboss/soa/esb/services/security/auth/keystore)
===================================================================
(Binary files differ)
Copied: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/services/security/auth/ws (from rev 24846, labs/jbossesb/trunk/product/rosetta/tests/src/org/jboss/soa/esb/services/security/auth/ws)
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/services/security/auth/ws/BinarySecurityTokenTest.java
===================================================================
--- labs/jbossesb/trunk/product/rosetta/tests/src/org/jboss/soa/esb/services/security/auth/ws/BinarySecurityTokenTest.java 2009-01-21 09:35:03 UTC (rev 24846)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/services/security/auth/ws/BinarySecurityTokenTest.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -1,123 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source Copyright 2008, Red Hat Middleware
- * LLC, and individual contributors by the @authors tag. See the copyright.txt
- * in the distribution for a full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it under the
- * terms of the GNU Lesser General Public License as published by the Free
- * Software Foundation; either version 2.1 of the License, or (at your option)
- * any later version.
- *
- * This software is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
- * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
- * details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this software; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA, or see the FSF
- * site: http://www.fsf.org.
- */
-package org.jboss.soa.esb.services.security.auth.ws;
-
-import static org.junit.Assert.*;
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.security.cert.Certificate;
-
-import javax.xml.parsers.ParserConfigurationException;
-
-import org.jboss.internal.soa.esb.util.StreamUtils;
-import org.jboss.soa.esb.ConfigurationException;
-import org.jboss.soa.esb.util.ClassUtil;
-import org.junit.Test;
-import org.xml.sax.SAXException;
-
-import junit.framework.JUnit4TestAdapter;
-
-/**
- * Unittest for {@link BinarySecurityToken}
- *
- * @author <a href="mailto:dbevenius at redhat.com">Daniel Bevenius</a>
- *
- */
-public class BinarySecurityTokenTest
-{
- private String expectedEncoding = "Base64Binary";
- private String expectedValueType = "X509v3";
- private BinarySecurityToken token = new BinarySecurityToken();
-
- @Test
- public void setEncodingTypeWithNSPrefix()
- {
- token.setEncodingType("wsse:" + expectedEncoding);
- assertEquals( expectedEncoding, token.getEncodingType() );
- }
-
- @Test
- public void setEncodingTypeWithNSPrefix2()
- {
- token.setEncodingType("d:" + expectedEncoding);
- assertEquals( expectedEncoding, token.getEncodingType() );
- }
-
- @Test
- public void setEncodingTypeWithoutNSPrefix()
- {
- token.setEncodingType(expectedEncoding);
- assertEquals( expectedEncoding, token.getEncodingType() );
- }
-
- @Test
- public void setEncodingTypeFullPath()
- {
- String url = "http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0#Base64Binary";
- token.setEncodingType(url);
- assertEquals( expectedEncoding, token.getEncodingType() );
- }
-
- @Test
- public void setValueType()
- {
- String url = "http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-x509-token-profile-1.0#X509v3";
- token.setValueType(url);
- assertEquals( expectedValueType, token.getValueType() );
- }
-
- @Test
- public void setEncodingType()
- {
- token.setEncodingType(expectedEncoding);
- assertEquals( expectedEncoding, token.getEncodingType() );
- }
-
- @Test
- public void setEncodingTypeNull()
- {
- token.setEncodingType(null);
- assertNull(token.getEncodingType());
- }
-
- @Test
- public void setKey() throws ConfigurationException, SAXException, IOException, ParserConfigurationException
- {
- token.setEncodingType(expectedEncoding);
- token.setValueType(expectedValueType);
- token.setKey(getExampleCert());
- Certificate key = token.getKey();
- assertNotNull(key);
- }
-
- private String getExampleCert() throws SAXException, IOException, ParserConfigurationException, ConfigurationException
- {
- InputStream inputStream = ClassUtil.getResourceAsStream("cert-example.xml", getClass() );
- return new String(StreamUtils.readStream(inputStream));
- }
-
- public static junit.framework.Test suite()
- {
- return new JUnit4TestAdapter(BinarySecurityTokenTest.class);
- }
-
-}
Copied: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/services/security/auth/ws/BinarySecurityTokenTest.java (from rev 24846, labs/jbossesb/trunk/product/rosetta/tests/src/org/jboss/soa/esb/services/security/auth/ws/BinarySecurityTokenTest.java)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/services/security/auth/ws/BinarySecurityTokenTest.java (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/services/security/auth/ws/BinarySecurityTokenTest.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -0,0 +1,123 @@
+/*
+ * JBoss, Home of Professional Open Source Copyright 2008, Red Hat Middleware
+ * LLC, and individual contributors by the @authors tag. See the copyright.txt
+ * in the distribution for a full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it under the
+ * terms of the GNU Lesser General Public License as published by the Free
+ * Software Foundation; either version 2.1 of the License, or (at your option)
+ * any later version.
+ *
+ * This software is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+ * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
+ * details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this software; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA, or see the FSF
+ * site: http://www.fsf.org.
+ */
+package org.jboss.soa.esb.services.security.auth.ws;
+
+import static org.junit.Assert.*;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.security.cert.Certificate;
+
+import javax.xml.parsers.ParserConfigurationException;
+
+import org.jboss.internal.soa.esb.util.StreamUtils;
+import org.jboss.soa.esb.ConfigurationException;
+import org.jboss.soa.esb.util.ClassUtil;
+import org.junit.Test;
+import org.xml.sax.SAXException;
+
+import junit.framework.JUnit4TestAdapter;
+
+/**
+ * Unittest for {@link BinarySecurityToken}
+ *
+ * @author <a href="mailto:dbevenius at redhat.com">Daniel Bevenius</a>
+ *
+ */
+public class BinarySecurityTokenTest
+{
+ private String expectedEncoding = "Base64Binary";
+ private String expectedValueType = "X509v3";
+ private BinarySecurityToken token = new BinarySecurityToken();
+
+ @Test
+ public void setEncodingTypeWithNSPrefix()
+ {
+ token.setEncodingType("wsse:" + expectedEncoding);
+ assertEquals( expectedEncoding, token.getEncodingType() );
+ }
+
+ @Test
+ public void setEncodingTypeWithNSPrefix2()
+ {
+ token.setEncodingType("d:" + expectedEncoding);
+ assertEquals( expectedEncoding, token.getEncodingType() );
+ }
+
+ @Test
+ public void setEncodingTypeWithoutNSPrefix()
+ {
+ token.setEncodingType(expectedEncoding);
+ assertEquals( expectedEncoding, token.getEncodingType() );
+ }
+
+ @Test
+ public void setEncodingTypeFullPath()
+ {
+ String url = "http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0#Base64Binary";
+ token.setEncodingType(url);
+ assertEquals( expectedEncoding, token.getEncodingType() );
+ }
+
+ @Test
+ public void setValueType()
+ {
+ String url = "http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-x509-token-profile-1.0#X509v3";
+ token.setValueType(url);
+ assertEquals( expectedValueType, token.getValueType() );
+ }
+
+ @Test
+ public void setEncodingType()
+ {
+ token.setEncodingType(expectedEncoding);
+ assertEquals( expectedEncoding, token.getEncodingType() );
+ }
+
+ @Test
+ public void setEncodingTypeNull()
+ {
+ token.setEncodingType(null);
+ assertNull(token.getEncodingType());
+ }
+
+ @Test
+ public void setKey() throws ConfigurationException, SAXException, IOException, ParserConfigurationException
+ {
+ token.setEncodingType(expectedEncoding);
+ token.setValueType(expectedValueType);
+ token.setKey(getExampleCert());
+ Certificate key = token.getKey();
+ assertNotNull(key);
+ }
+
+ private String getExampleCert() throws SAXException, IOException, ParserConfigurationException, ConfigurationException
+ {
+ InputStream inputStream = ClassUtil.getResourceAsStream("cert-example.xml", getClass() );
+ return new String(StreamUtils.readStream(inputStream));
+ }
+
+ public static junit.framework.Test suite()
+ {
+ return new JUnit4TestAdapter(BinarySecurityTokenTest.class);
+ }
+
+}
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/services/security/auth/ws/WSSecurityInfoExtractorUnitTest.java
===================================================================
--- labs/jbossesb/trunk/product/rosetta/tests/src/org/jboss/soa/esb/services/security/auth/ws/WSSecurityInfoExtractorUnitTest.java 2009-01-21 09:35:03 UTC (rev 24846)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/services/security/auth/ws/WSSecurityInfoExtractorUnitTest.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -1,129 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source Copyright 2008, Red Hat Middleware
- * LLC, and individual contributors by the @authors tag. See the copyright.txt
- * in the distribution for a full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it under the
- * terms of the GNU Lesser General Public License as published by the Free
- * Software Foundation; either version 2.1 of the License, or (at your option)
- * any later version.
- *
- * This software is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
- * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
- * details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this software; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA, or see the FSF
- * site: http://www.fsf.org.
- */
-package org.jboss.soa.esb.services.security.auth.ws;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertNull;
-import static org.junit.Assert.assertTrue;
-
-import java.io.IOException;
-import java.io.InputStream;
-
-import javax.xml.parsers.ParserConfigurationException;
-
-import junit.framework.JUnit4TestAdapter;
-
-import org.jboss.internal.soa.esb.util.StreamUtils;
-import org.jboss.soa.esb.ConfigurationException;
-import org.jboss.soa.esb.services.security.auth.AuthenticationRequest;
-import org.jboss.soa.esb.util.ClassUtil;
-import org.junit.Before;
-import org.junit.Test;
-import org.xml.sax.SAXException;
-
-
-/**
- * Unit test for {@link WSSecurityInfoExtractor}
- * <p/>
- *
- * @author <a href="mailto:dbevenius at redhat.com">Daniel Bevenius</a>
- *
- */
-public class WSSecurityInfoExtractorUnitTest
-{
- private WSSecurityInfoExtractor extractor;
-
- @Test
- public void extractUserPassSecurityInfo() throws SAXException, IOException, ParserConfigurationException, ConfigurationException
- {
- String soap = createUserPassSoapString();
- AuthenticationRequest authRequest = extractor.extractSecurityInfo(soap);
- assertNotNull(authRequest);
- assertEquals( "Clark", authRequest.getPrincipal().getName());
- }
-
- @Test
- public void extractKeySecurityInfo() throws SAXException, IOException, ParserConfigurationException, ConfigurationException
- {
- String soap = createKeySoapString("soap-keys-example.xml");
- AuthenticationRequest authRequest = extractor.extractSecurityInfo(soap);
- assertNotNull(authRequest);
- assertTrue( authRequest.getCredentials().size() > 0 );
- Object cert = authRequest.getCredentials().iterator().next();
- assertTrue( cert instanceof java.security.cert.X509Certificate);
- }
-
- @Test
- public void extractKeySecurityInfo2() throws SAXException, IOException, ParserConfigurationException, ConfigurationException
- {
- String soap = createKeySoapString("soap-keys-example2.xml");
- AuthenticationRequest authRequest = extractor.extractSecurityInfo(soap);
- assertNotNull(authRequest);
- assertTrue( authRequest.getCredentials().size() > 0 );
- Object cert = authRequest.getCredentials().iterator().next();
- assertTrue( cert instanceof java.security.cert.X509Certificate);
- }
-
- @Test
- public void extractKeySecurityInfoUsingStringInput() throws SAXException, IOException, ParserConfigurationException, ConfigurationException
- {
- String soap = "some payload";
- AuthenticationRequest authRequest = extractor.extractSecurityInfo(soap);
- assertNull(authRequest);
- }
-
- @Test
- public void extractKeySecurityInfoUsingNullInput() throws SAXException, IOException, ParserConfigurationException, ConfigurationException
- {
- String soap = null;
- AuthenticationRequest authRequest = extractor.extractSecurityInfo(soap);
- assertNull(authRequest);
- }
-
- private String createUserPassSoapString() throws SAXException, IOException, ParserConfigurationException, ConfigurationException
- {
- return getStringFromFile("soap-userpass-example.xml");
- }
-
- private String createKeySoapString(final String filename) throws SAXException, IOException, ParserConfigurationException, ConfigurationException
- {
- return getStringFromFile(filename);
- }
-
- private String getStringFromFile(final String fileName ) throws SAXException, IOException, ParserConfigurationException, ConfigurationException
- {
- InputStream inputStream = ClassUtil.getResourceAsStream(fileName, getClass() );
- return new String(StreamUtils.readStream(inputStream));
- }
-
- @Before
- public void createInstance()
- {
- extractor = new WSSecurityInfoExtractor("smooks-config.xml");
- }
-
- public static junit.framework.Test suite()
- {
- return new JUnit4TestAdapter(WSSecurityInfoExtractorUnitTest.class);
- }
-
-}
Copied: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/services/security/auth/ws/WSSecurityInfoExtractorUnitTest.java (from rev 24846, labs/jbossesb/trunk/product/rosetta/tests/src/org/jboss/soa/esb/services/security/auth/ws/WSSecurityInfoExtractorUnitTest.java)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/services/security/auth/ws/WSSecurityInfoExtractorUnitTest.java (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/services/security/auth/ws/WSSecurityInfoExtractorUnitTest.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -0,0 +1,129 @@
+/*
+ * JBoss, Home of Professional Open Source Copyright 2008, Red Hat Middleware
+ * LLC, and individual contributors by the @authors tag. See the copyright.txt
+ * in the distribution for a full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it under the
+ * terms of the GNU Lesser General Public License as published by the Free
+ * Software Foundation; either version 2.1 of the License, or (at your option)
+ * any later version.
+ *
+ * This software is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+ * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
+ * details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this software; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA, or see the FSF
+ * site: http://www.fsf.org.
+ */
+package org.jboss.soa.esb.services.security.auth.ws;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertNull;
+import static org.junit.Assert.assertTrue;
+
+import java.io.IOException;
+import java.io.InputStream;
+
+import javax.xml.parsers.ParserConfigurationException;
+
+import junit.framework.JUnit4TestAdapter;
+
+import org.jboss.internal.soa.esb.util.StreamUtils;
+import org.jboss.soa.esb.ConfigurationException;
+import org.jboss.soa.esb.services.security.auth.AuthenticationRequest;
+import org.jboss.soa.esb.util.ClassUtil;
+import org.junit.Before;
+import org.junit.Test;
+import org.xml.sax.SAXException;
+
+
+/**
+ * Unit test for {@link WSSecurityInfoExtractor}
+ * <p/>
+ *
+ * @author <a href="mailto:dbevenius at redhat.com">Daniel Bevenius</a>
+ *
+ */
+public class WSSecurityInfoExtractorUnitTest
+{
+ private WSSecurityInfoExtractor extractor;
+
+ @Test
+ public void extractUserPassSecurityInfo() throws SAXException, IOException, ParserConfigurationException, ConfigurationException
+ {
+ String soap = createUserPassSoapString();
+ AuthenticationRequest authRequest = extractor.extractSecurityInfo(soap);
+ assertNotNull(authRequest);
+ assertEquals( "Clark", authRequest.getPrincipal().getName());
+ }
+
+ @Test
+ public void extractKeySecurityInfo() throws SAXException, IOException, ParserConfigurationException, ConfigurationException
+ {
+ String soap = createKeySoapString("soap-keys-example.xml");
+ AuthenticationRequest authRequest = extractor.extractSecurityInfo(soap);
+ assertNotNull(authRequest);
+ assertTrue( authRequest.getCredentials().size() > 0 );
+ Object cert = authRequest.getCredentials().iterator().next();
+ assertTrue( cert instanceof java.security.cert.X509Certificate);
+ }
+
+ @Test
+ public void extractKeySecurityInfo2() throws SAXException, IOException, ParserConfigurationException, ConfigurationException
+ {
+ String soap = createKeySoapString("soap-keys-example2.xml");
+ AuthenticationRequest authRequest = extractor.extractSecurityInfo(soap);
+ assertNotNull(authRequest);
+ assertTrue( authRequest.getCredentials().size() > 0 );
+ Object cert = authRequest.getCredentials().iterator().next();
+ assertTrue( cert instanceof java.security.cert.X509Certificate);
+ }
+
+ @Test
+ public void extractKeySecurityInfoUsingStringInput() throws SAXException, IOException, ParserConfigurationException, ConfigurationException
+ {
+ String soap = "some payload";
+ AuthenticationRequest authRequest = extractor.extractSecurityInfo(soap);
+ assertNull(authRequest);
+ }
+
+ @Test
+ public void extractKeySecurityInfoUsingNullInput() throws SAXException, IOException, ParserConfigurationException, ConfigurationException
+ {
+ String soap = null;
+ AuthenticationRequest authRequest = extractor.extractSecurityInfo(soap);
+ assertNull(authRequest);
+ }
+
+ private String createUserPassSoapString() throws SAXException, IOException, ParserConfigurationException, ConfigurationException
+ {
+ return getStringFromFile("soap-userpass-example.xml");
+ }
+
+ private String createKeySoapString(final String filename) throws SAXException, IOException, ParserConfigurationException, ConfigurationException
+ {
+ return getStringFromFile(filename);
+ }
+
+ private String getStringFromFile(final String fileName ) throws SAXException, IOException, ParserConfigurationException, ConfigurationException
+ {
+ InputStream inputStream = ClassUtil.getResourceAsStream(fileName, getClass() );
+ return new String(StreamUtils.readStream(inputStream));
+ }
+
+ @Before
+ public void createInstance()
+ {
+ extractor = new WSSecurityInfoExtractor("smooks-config.xml");
+ }
+
+ public static junit.framework.Test suite()
+ {
+ return new JUnit4TestAdapter(WSSecurityInfoExtractorUnitTest.class);
+ }
+
+}
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/services/security/auth/ws/WSSecuritySoapExtractorUnitTest.java
===================================================================
--- labs/jbossesb/trunk/product/rosetta/tests/src/org/jboss/soa/esb/services/security/auth/ws/WSSecuritySoapExtractorUnitTest.java 2009-01-21 09:35:03 UTC (rev 24846)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/services/security/auth/ws/WSSecuritySoapExtractorUnitTest.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -1,135 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source Copyright 2008, Red Hat Middleware
- * LLC, and individual contributors by the @authors tag. See the copyright.txt
- * in the distribution for a full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it under the
- * terms of the GNU Lesser General Public License as published by the Free
- * Software Foundation; either version 2.1 of the License, or (at your option)
- * any later version.
- *
- * This software is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
- * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
- * details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this software; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA, or see the FSF
- * site: http://www.fsf.org.
- */
-package org.jboss.soa.esb.services.security.auth.ws;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertTrue;
-
-import java.io.IOException;
-import java.security.cert.X509Certificate;
-
-import javax.xml.parsers.ParserConfigurationException;
-import javax.xml.soap.SOAPException;
-import javax.xml.soap.SOAPMessage;
-
-import junit.framework.JUnit4TestAdapter;
-
-import org.jboss.soa.esb.ConfigurationException;
-import org.jboss.soa.esb.services.security.auth.AuthenticationRequest;
-import org.junit.Test;
-import org.xml.sax.SAXException;
-
-
-/**
- * Unit test for {@link WSSecuritySoapExtractor}
- * <p/>
- *
- * @author <a href="mailto:dbevenius at redhat.com">Daniel Bevenius</a>
- *
- */
-public class WSSecuritySoapExtractorUnitTest
-{
- @Test
- public void extractSecurityInfoBinarySecurityToken() throws SAXException, IOException, ParserConfigurationException, ConfigurationException, SOAPException
- {
- WSSecuritySoapExtractor extractor = new WSSecuritySoapExtractor();
- SOAPMessage soap = WSTestUtil.createWithBinarySecurityToken("wsse:Base64Binary", "wsse:X509v3", WSTestUtil.getStringFromFile("cert-example.xml", getClass()));
- AuthenticationRequest authRequest = extractor.extractSecurityInfo(soap);
-
- assertNotNull(authRequest);
- assertTrue(authRequest.getCredentials().size() == 1 );
- assertTrue(authRequest.getCredentials().iterator().next() instanceof X509Certificate );
- }
-
- @Test
- public void extractSecurityInfoBinarySecurityTokenNoNSPrifix() throws SAXException, IOException, ParserConfigurationException, ConfigurationException, SOAPException
- {
- WSSecuritySoapExtractor extractor = new WSSecuritySoapExtractor();
- // create the SAOPMessage with out namespace prefixes for ValueType and EncodingType
- SOAPMessage soap = WSTestUtil.createWithBinarySecurityToken("Base64Binary", "X509v3", WSTestUtil.getStringFromFile("cert-example.xml", getClass()));
- AuthenticationRequest authRequest = extractor.extractSecurityInfo(soap);
-
- assertNotNull(authRequest);
- assertTrue(authRequest.getCredentials().size() == 1 );
- assertTrue(authRequest.getCredentials().iterator().next() instanceof X509Certificate );
- }
-
- @Test
- public void extractSecurityInfoBinarySecurityTokenFromFile() throws SAXException, IOException, ParserConfigurationException, ConfigurationException, SOAPException
- {
- WSSecuritySoapExtractor extractor = new WSSecuritySoapExtractor();
- SOAPMessage soap = WSTestUtil.createMessage("soap-keys-example.xml", getClass());
- AuthenticationRequest authRequest = extractor.extractSecurityInfo(soap);
-
- assertNotNull(authRequest);
- assertTrue(authRequest.getCredentials().size() == 1 );
- assertTrue(authRequest.getCredentials().iterator().next() instanceof X509Certificate );
- }
-
- @Test
- public void extractSecurityInfoUsernameToken() throws SAXException, IOException, ParserConfigurationException, ConfigurationException, SOAPException
- {
- final String username = "Bubbles";
- final String password = "228833dkd0";
- WSSecuritySoapExtractor extractor = new WSSecuritySoapExtractor();
- SOAPMessage soap = WSTestUtil.createWithUsernameToken(username, password);
- AuthenticationRequest authRequest = extractor.extractSecurityInfo(soap);
-
- assertNotNull(authRequest);
- assertEquals(username, authRequest.getPrincipal().getName());
- assertTrue(authRequest.getCredentials().size() == 1 );
- assertTrue(authRequest.getCredentials().iterator().next() instanceof char[] );
- }
-
- @Test
- public void extractSecurityInfoUsernameTokenNoUsername() throws SAXException, IOException, ParserConfigurationException, ConfigurationException, SOAPException
- {
- final String password = "228833dkd0";
- WSSecuritySoapExtractor extractor = new WSSecuritySoapExtractor();
- SOAPMessage soap = WSTestUtil.createWithUsernameToken(null, password);
- AuthenticationRequest authRequest = extractor.extractSecurityInfo(soap);
-
- assertNotNull(authRequest);
- assertEquals(null, authRequest.getPrincipal() );
- assertTrue(authRequest.getCredentials().size() == 1 );
- assertTrue(authRequest.getCredentials().iterator().next() instanceof char[] );
- }
-
- @Test
- public void extractSecurityInfoUsernameTokenNoPassword() throws SAXException, IOException, ParserConfigurationException, ConfigurationException, SOAPException
- {
- final String username = "Bubbles";
- WSSecuritySoapExtractor extractor = new WSSecuritySoapExtractor();
- SOAPMessage soap = WSTestUtil.createWithUsernameToken(username, null);
- AuthenticationRequest authRequest = extractor.extractSecurityInfo(soap);
-
- assertNotNull(authRequest);
- assertEquals(username, authRequest.getPrincipal().getName());
- assertTrue(authRequest.getCredentials().size() == 0 );
- }
-
- public static junit.framework.Test suite()
- {
- return new JUnit4TestAdapter(WSSecuritySoapExtractorUnitTest.class);
- }
-
-}
Copied: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/services/security/auth/ws/WSSecuritySoapExtractorUnitTest.java (from rev 24846, labs/jbossesb/trunk/product/rosetta/tests/src/org/jboss/soa/esb/services/security/auth/ws/WSSecuritySoapExtractorUnitTest.java)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/services/security/auth/ws/WSSecuritySoapExtractorUnitTest.java (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/services/security/auth/ws/WSSecuritySoapExtractorUnitTest.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -0,0 +1,135 @@
+/*
+ * JBoss, Home of Professional Open Source Copyright 2008, Red Hat Middleware
+ * LLC, and individual contributors by the @authors tag. See the copyright.txt
+ * in the distribution for a full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it under the
+ * terms of the GNU Lesser General Public License as published by the Free
+ * Software Foundation; either version 2.1 of the License, or (at your option)
+ * any later version.
+ *
+ * This software is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+ * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
+ * details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this software; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA, or see the FSF
+ * site: http://www.fsf.org.
+ */
+package org.jboss.soa.esb.services.security.auth.ws;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertTrue;
+
+import java.io.IOException;
+import java.security.cert.X509Certificate;
+
+import javax.xml.parsers.ParserConfigurationException;
+import javax.xml.soap.SOAPException;
+import javax.xml.soap.SOAPMessage;
+
+import junit.framework.JUnit4TestAdapter;
+
+import org.jboss.soa.esb.ConfigurationException;
+import org.jboss.soa.esb.services.security.auth.AuthenticationRequest;
+import org.junit.Test;
+import org.xml.sax.SAXException;
+
+
+/**
+ * Unit test for {@link WSSecuritySoapExtractor}
+ * <p/>
+ *
+ * @author <a href="mailto:dbevenius at redhat.com">Daniel Bevenius</a>
+ *
+ */
+public class WSSecuritySoapExtractorUnitTest
+{
+ @Test
+ public void extractSecurityInfoBinarySecurityToken() throws SAXException, IOException, ParserConfigurationException, ConfigurationException, SOAPException
+ {
+ WSSecuritySoapExtractor extractor = new WSSecuritySoapExtractor();
+ SOAPMessage soap = WSTestUtil.createWithBinarySecurityToken("wsse:Base64Binary", "wsse:X509v3", WSTestUtil.getStringFromFile("cert-example.xml", getClass()));
+ AuthenticationRequest authRequest = extractor.extractSecurityInfo(soap);
+
+ assertNotNull(authRequest);
+ assertTrue(authRequest.getCredentials().size() == 1 );
+ assertTrue(authRequest.getCredentials().iterator().next() instanceof X509Certificate );
+ }
+
+ @Test
+ public void extractSecurityInfoBinarySecurityTokenNoNSPrifix() throws SAXException, IOException, ParserConfigurationException, ConfigurationException, SOAPException
+ {
+ WSSecuritySoapExtractor extractor = new WSSecuritySoapExtractor();
+ // create the SAOPMessage with out namespace prefixes for ValueType and EncodingType
+ SOAPMessage soap = WSTestUtil.createWithBinarySecurityToken("Base64Binary", "X509v3", WSTestUtil.getStringFromFile("cert-example.xml", getClass()));
+ AuthenticationRequest authRequest = extractor.extractSecurityInfo(soap);
+
+ assertNotNull(authRequest);
+ assertTrue(authRequest.getCredentials().size() == 1 );
+ assertTrue(authRequest.getCredentials().iterator().next() instanceof X509Certificate );
+ }
+
+ @Test
+ public void extractSecurityInfoBinarySecurityTokenFromFile() throws SAXException, IOException, ParserConfigurationException, ConfigurationException, SOAPException
+ {
+ WSSecuritySoapExtractor extractor = new WSSecuritySoapExtractor();
+ SOAPMessage soap = WSTestUtil.createMessage("soap-keys-example.xml", getClass());
+ AuthenticationRequest authRequest = extractor.extractSecurityInfo(soap);
+
+ assertNotNull(authRequest);
+ assertTrue(authRequest.getCredentials().size() == 1 );
+ assertTrue(authRequest.getCredentials().iterator().next() instanceof X509Certificate );
+ }
+
+ @Test
+ public void extractSecurityInfoUsernameToken() throws SAXException, IOException, ParserConfigurationException, ConfigurationException, SOAPException
+ {
+ final String username = "Bubbles";
+ final String password = "228833dkd0";
+ WSSecuritySoapExtractor extractor = new WSSecuritySoapExtractor();
+ SOAPMessage soap = WSTestUtil.createWithUsernameToken(username, password);
+ AuthenticationRequest authRequest = extractor.extractSecurityInfo(soap);
+
+ assertNotNull(authRequest);
+ assertEquals(username, authRequest.getPrincipal().getName());
+ assertTrue(authRequest.getCredentials().size() == 1 );
+ assertTrue(authRequest.getCredentials().iterator().next() instanceof char[] );
+ }
+
+ @Test
+ public void extractSecurityInfoUsernameTokenNoUsername() throws SAXException, IOException, ParserConfigurationException, ConfigurationException, SOAPException
+ {
+ final String password = "228833dkd0";
+ WSSecuritySoapExtractor extractor = new WSSecuritySoapExtractor();
+ SOAPMessage soap = WSTestUtil.createWithUsernameToken(null, password);
+ AuthenticationRequest authRequest = extractor.extractSecurityInfo(soap);
+
+ assertNotNull(authRequest);
+ assertEquals(null, authRequest.getPrincipal() );
+ assertTrue(authRequest.getCredentials().size() == 1 );
+ assertTrue(authRequest.getCredentials().iterator().next() instanceof char[] );
+ }
+
+ @Test
+ public void extractSecurityInfoUsernameTokenNoPassword() throws SAXException, IOException, ParserConfigurationException, ConfigurationException, SOAPException
+ {
+ final String username = "Bubbles";
+ WSSecuritySoapExtractor extractor = new WSSecuritySoapExtractor();
+ SOAPMessage soap = WSTestUtil.createWithUsernameToken(username, null);
+ AuthenticationRequest authRequest = extractor.extractSecurityInfo(soap);
+
+ assertNotNull(authRequest);
+ assertEquals(username, authRequest.getPrincipal().getName());
+ assertTrue(authRequest.getCredentials().size() == 0 );
+ }
+
+ public static junit.framework.Test suite()
+ {
+ return new JUnit4TestAdapter(WSSecuritySoapExtractorUnitTest.class);
+ }
+
+}
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/services/security/auth/ws/WSTestUtil.java
===================================================================
--- labs/jbossesb/trunk/product/rosetta/tests/src/org/jboss/soa/esb/services/security/auth/ws/WSTestUtil.java 2009-01-21 09:35:03 UTC (rev 24846)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/services/security/auth/ws/WSTestUtil.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -1,245 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source Copyright 2008, Red Hat Middleware
- * LLC, and individual contributors by the @authors tag. See the copyright.txt
- * in the distribution for a full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it under the
- * terms of the GNU Lesser General Public License as published by the Free
- * Software Foundation; either version 2.1 of the License, or (at your option)
- * any later version.
- *
- * This software is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
- * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
- * details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this software; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA, or see the FSF
- * site: http://www.fsf.org.
- */
-package org.jboss.soa.esb.services.security.auth.ws;
-
-import java.io.ByteArrayOutputStream;
-import java.io.IOException;
-import java.io.InputStream;
-
-import javax.xml.parsers.DocumentBuilder;
-import javax.xml.parsers.DocumentBuilderFactory;
-import javax.xml.parsers.ParserConfigurationException;
-import javax.xml.soap.MessageFactory;
-import javax.xml.soap.Name;
-import javax.xml.soap.SOAPElement;
-import javax.xml.soap.SOAPEnvelope;
-import javax.xml.soap.SOAPException;
-import javax.xml.soap.SOAPHeader;
-import javax.xml.soap.SOAPHeaderElement;
-import javax.xml.soap.SOAPMessage;
-import javax.xml.soap.SOAPPart;
-import javax.xml.transform.dom.DOMSource;
-
-import org.jboss.internal.soa.esb.util.StreamUtils;
-import org.jboss.soa.esb.util.ClassUtil;
-import org.w3c.dom.Document;
-import org.xml.sax.SAXException;
-
-/**
- * This class contains methods for creating SOAPMessages with
- * different headers, for example Security headers.
- *
- * @author <a href="mailto:dbevenius at redhat.com">Daniel Bevenius</a>
- *
- */
-public class WSTestUtil
-{
- private WSTestUtil() { }
-
- /**
- * Creates a SOAPMessage with a BinarySecurityToken header.
- * </p>
- * <pre>{@code
- * <soap:Header>
- * <wsse:Security xmlns:wsse="http://schemas.xmlsoap.org/ws/2002/04/secext">
- * <wsse:BinarySecurityToken EncodingType="encodingType" ValueType="valueTyep">cert
- * </wsse:Security>
- * }</pre>
- * <br><br>
- * Example usage:
- * <pre>{@code
- * SOAPMessage soap = WSTestUtil.createWithBinarySecurityToken("Base64Binary", "X509v3", WSTestUtil.getStringFromFile("cert-example.xml", getClass()));
- * }</pre>
- *
- * @param encodingType - The encoding type( Base64Binary, HexBinary)
- * @param valueType - the type of key ( they key is the value of the BinarySecurityToken element )
- * @param cert - the cert represented as a string
- * @return SOAPMessage - populated with the BinarySecurityToken security header
- * @throws SOAPException - if something goes wrong.
- */
- public static SOAPMessage createWithBinarySecurityToken(final String encodingType, final String valueType, final String cert) throws SOAPException
- {
- SOAPMessage soapMessage = createMessage();
- SOAPPart soapPart = soapMessage.getSOAPPart();
- SOAPEnvelope soapEnvelope = soapPart.getEnvelope();
- SOAPHeader soapHeader = soapEnvelope.getHeader();
-
- Name security = soapEnvelope.createName(WSSecuritySoapExtractor.WSSE_LN, "wsse", WSSecuritySoapExtractor.WSSE_NS);
- SOAPHeaderElement headerElement = soapHeader.addHeaderElement( security );
-
- createBinaryHeaderElement(soapEnvelope, headerElement, encodingType, valueType, cert );
-
- return soapMessage;
- }
-
- /**
- * Creates a SOAPMessage with a UsernameToken header.
- * <p/>
- * <br>
- * <pre>{@code
- * <soap:Header>
- * <wsse:Security xmlns:wsse="http://schemas.xmlsoap.org/ws/2002/04/secext">
- * <wsse:UsernameToken>
- * <wsse:Username>Clark</wsse:Username>
- * <wsse:Password>griswald</wsse:Password>
- * </wsse:UsernameToken>
- * </wsse:Security>
- * </soap:Header>
- *
- * }</pre>
- * <br><br>
- * Example usage:
- * <pre>{@code
- * SOAPMessage soap = WSTestUtil.createWithUsernameToken(username, password);
- * }</pre>
- *
- * @param username
- * @param password
- * @return SOAPMessage - populated with the UsernameToken security header
- * @throws SOAPException - if something goes wrong.
- */
- public static SOAPMessage createWithUsernameToken(final String username, final String password) throws SOAPException
- {
- SOAPMessage soapMessage = createMessage();
- SOAPPart soapPart = soapMessage.getSOAPPart();
- SOAPEnvelope soapEnvelope = soapPart.getEnvelope();
- SOAPHeader soapHeader = soapEnvelope.getHeader();
-
- Name security = soapEnvelope.createName(WSSecuritySoapExtractor.WSSE_LN, "wsse", WSSecuritySoapExtractor.WSSE_NS);
- SOAPHeaderElement headerElement = soapHeader.addHeaderElement( security );
-
- createUsernameTokenHeaderElement(soapEnvelope, headerElement, username, password );
-
- return soapMessage;
- }
-
- public static SOAPMessage createMessage() throws SOAPException
- {
- SOAPMessage soapMessage = MessageFactory.newInstance().createMessage();
- return soapMessage;
- }
-
- public static String getStringFromFile(final String fileName, final Class<?> clazz )
- {
- InputStream inputStream = ClassUtil.getResourceAsStream(fileName, clazz );
- return new String(StreamUtils.readStream(inputStream));
- }
-
- public static void dumpSoap(final SOAPMessage soap )
- {
- final ByteArrayOutputStream bout = new ByteArrayOutputStream();
- try
- {
- soap.writeTo(bout);
- System.out.println(new String(bout.toByteArray()));
- }
- catch (final SOAPException e1)
- {
- e1.printStackTrace();
- }
- catch (final IOException e1)
- {
- e1.printStackTrace();
- }
- }
-
- /**
- * Creates a SOAPMessage from the contents of the passed in filename.
- *
- * @param fileName - the file containing the soap envelope.
- * @param clazz - the class used to search from ( think getClass().getResource...).
- * @return SOAPMessage - a SOAPMessage populated from the contents of the file.
- *
- * @throws ParserConfigurationException
- * @throws SAXException
- * @throws IOException
- * @throws SOAPException
- */
- public static SOAPMessage createMessage( final String fileName, final Class<?> clazz ) throws ParserConfigurationException, SAXException, IOException, SOAPException
- {
- DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
- dbFactory.setNamespaceAware(true);
- DocumentBuilder builder = dbFactory.newDocumentBuilder();
- Document document = builder.parse( ClassUtil.getResource(fileName, clazz).getFile());
- DOMSource domSource = new DOMSource(document);
-
- SOAPMessage message = createMessage();
- SOAPPart soapPart = message.getSOAPPart();
- soapPart.setContent(domSource);
- return message;
- }
-
- public static SOAPMessage createMessage( final String fileName ) throws ParserConfigurationException, SAXException, IOException, SOAPException
- {
- return createMessage(fileName, WSTestUtil.class );
- }
-
- private static SOAPElement createBinaryHeaderElement(
- final SOAPEnvelope soapEnvelope,
- final SOAPHeaderElement headerElement,
- final String encodingType,
- final String valueType,
- final String cert) throws SOAPException
- {
- // create the BinarySecurityToken element
- Name binarySecurityTokenName = soapEnvelope.createName("BinarySecurityToken", "wsse", WSSecuritySoapExtractor.WSSE_NS);
- SOAPElement binarySecurityTokenElement = headerElement.addChildElement(binarySecurityTokenName);
-
- // add the EncodingType attribute
- binarySecurityTokenElement.addAttribute(soapEnvelope.createName("EncodingType"), encodingType);
- // add the ValueType attribute
- binarySecurityTokenElement.addAttribute(soapEnvelope.createName("ValueType"), valueType);
- // add the certificate as a text node
- binarySecurityTokenElement.addTextNode(cert);
- return binarySecurityTokenElement;
- }
-
- private static SOAPElement createUsernameTokenHeaderElement(
- final SOAPEnvelope soapEnvelope,
- final SOAPHeaderElement headerElement,
- final String username,
- final String password) throws SOAPException
- {
- // create the UsernameToken element
- Name usernameTokenName = soapEnvelope.createName("UsernameToken", "wsse", WSSecuritySoapExtractor.WSSE_NS);
- SOAPElement usernameTokenElement = headerElement.addChildElement(usernameTokenName);
-
- // create and add the Username sub element
- if ( username != null )
- {
- Name usernameName = soapEnvelope.createName("Username", "wsse", WSSecuritySoapExtractor.WSSE_NS);
- SOAPElement usernameNode = usernameTokenElement.addChildElement(usernameName);
- usernameNode.addTextNode(username);
- }
-
- // create and add the password sub element
- if ( password != null )
- {
- Name passwordName = soapEnvelope.createName("password", "wsse", WSSecuritySoapExtractor.WSSE_NS);
- SOAPElement passwordNode = usernameTokenElement.addChildElement(passwordName);
- passwordNode.addTextNode(password);
- }
-
- return usernameTokenElement;
- }
-
-
-}
Copied: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/services/security/auth/ws/WSTestUtil.java (from rev 24846, labs/jbossesb/trunk/product/rosetta/tests/src/org/jboss/soa/esb/services/security/auth/ws/WSTestUtil.java)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/services/security/auth/ws/WSTestUtil.java (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/services/security/auth/ws/WSTestUtil.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -0,0 +1,245 @@
+/*
+ * JBoss, Home of Professional Open Source Copyright 2008, Red Hat Middleware
+ * LLC, and individual contributors by the @authors tag. See the copyright.txt
+ * in the distribution for a full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it under the
+ * terms of the GNU Lesser General Public License as published by the Free
+ * Software Foundation; either version 2.1 of the License, or (at your option)
+ * any later version.
+ *
+ * This software is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+ * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
+ * details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this software; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA, or see the FSF
+ * site: http://www.fsf.org.
+ */
+package org.jboss.soa.esb.services.security.auth.ws;
+
+import java.io.ByteArrayOutputStream;
+import java.io.IOException;
+import java.io.InputStream;
+
+import javax.xml.parsers.DocumentBuilder;
+import javax.xml.parsers.DocumentBuilderFactory;
+import javax.xml.parsers.ParserConfigurationException;
+import javax.xml.soap.MessageFactory;
+import javax.xml.soap.Name;
+import javax.xml.soap.SOAPElement;
+import javax.xml.soap.SOAPEnvelope;
+import javax.xml.soap.SOAPException;
+import javax.xml.soap.SOAPHeader;
+import javax.xml.soap.SOAPHeaderElement;
+import javax.xml.soap.SOAPMessage;
+import javax.xml.soap.SOAPPart;
+import javax.xml.transform.dom.DOMSource;
+
+import org.jboss.internal.soa.esb.util.StreamUtils;
+import org.jboss.soa.esb.util.ClassUtil;
+import org.w3c.dom.Document;
+import org.xml.sax.SAXException;
+
+/**
+ * This class contains methods for creating SOAPMessages with
+ * different headers, for example Security headers.
+ *
+ * @author <a href="mailto:dbevenius at redhat.com">Daniel Bevenius</a>
+ *
+ */
+public class WSTestUtil
+{
+ private WSTestUtil() { }
+
+ /**
+ * Creates a SOAPMessage with a BinarySecurityToken header.
+ * </p>
+ * <pre>{@code
+ * <soap:Header>
+ * <wsse:Security xmlns:wsse="http://schemas.xmlsoap.org/ws/2002/04/secext">
+ * <wsse:BinarySecurityToken EncodingType="encodingType" ValueType="valueTyep">cert
+ * </wsse:Security>
+ * }</pre>
+ * <br><br>
+ * Example usage:
+ * <pre>{@code
+ * SOAPMessage soap = WSTestUtil.createWithBinarySecurityToken("Base64Binary", "X509v3", WSTestUtil.getStringFromFile("cert-example.xml", getClass()));
+ * }</pre>
+ *
+ * @param encodingType - The encoding type( Base64Binary, HexBinary)
+ * @param valueType - the type of key ( they key is the value of the BinarySecurityToken element )
+ * @param cert - the cert represented as a string
+ * @return SOAPMessage - populated with the BinarySecurityToken security header
+ * @throws SOAPException - if something goes wrong.
+ */
+ public static SOAPMessage createWithBinarySecurityToken(final String encodingType, final String valueType, final String cert) throws SOAPException
+ {
+ SOAPMessage soapMessage = createMessage();
+ SOAPPart soapPart = soapMessage.getSOAPPart();
+ SOAPEnvelope soapEnvelope = soapPart.getEnvelope();
+ SOAPHeader soapHeader = soapEnvelope.getHeader();
+
+ Name security = soapEnvelope.createName(WSSecuritySoapExtractor.WSSE_LN, "wsse", WSSecuritySoapExtractor.WSSE_NS);
+ SOAPHeaderElement headerElement = soapHeader.addHeaderElement( security );
+
+ createBinaryHeaderElement(soapEnvelope, headerElement, encodingType, valueType, cert );
+
+ return soapMessage;
+ }
+
+ /**
+ * Creates a SOAPMessage with a UsernameToken header.
+ * <p/>
+ * <br>
+ * <pre>{@code
+ * <soap:Header>
+ * <wsse:Security xmlns:wsse="http://schemas.xmlsoap.org/ws/2002/04/secext">
+ * <wsse:UsernameToken>
+ * <wsse:Username>Clark</wsse:Username>
+ * <wsse:Password>griswald</wsse:Password>
+ * </wsse:UsernameToken>
+ * </wsse:Security>
+ * </soap:Header>
+ *
+ * }</pre>
+ * <br><br>
+ * Example usage:
+ * <pre>{@code
+ * SOAPMessage soap = WSTestUtil.createWithUsernameToken(username, password);
+ * }</pre>
+ *
+ * @param username
+ * @param password
+ * @return SOAPMessage - populated with the UsernameToken security header
+ * @throws SOAPException - if something goes wrong.
+ */
+ public static SOAPMessage createWithUsernameToken(final String username, final String password) throws SOAPException
+ {
+ SOAPMessage soapMessage = createMessage();
+ SOAPPart soapPart = soapMessage.getSOAPPart();
+ SOAPEnvelope soapEnvelope = soapPart.getEnvelope();
+ SOAPHeader soapHeader = soapEnvelope.getHeader();
+
+ Name security = soapEnvelope.createName(WSSecuritySoapExtractor.WSSE_LN, "wsse", WSSecuritySoapExtractor.WSSE_NS);
+ SOAPHeaderElement headerElement = soapHeader.addHeaderElement( security );
+
+ createUsernameTokenHeaderElement(soapEnvelope, headerElement, username, password );
+
+ return soapMessage;
+ }
+
+ public static SOAPMessage createMessage() throws SOAPException
+ {
+ SOAPMessage soapMessage = MessageFactory.newInstance().createMessage();
+ return soapMessage;
+ }
+
+ public static String getStringFromFile(final String fileName, final Class<?> clazz )
+ {
+ InputStream inputStream = ClassUtil.getResourceAsStream(fileName, clazz );
+ return new String(StreamUtils.readStream(inputStream));
+ }
+
+ public static void dumpSoap(final SOAPMessage soap )
+ {
+ final ByteArrayOutputStream bout = new ByteArrayOutputStream();
+ try
+ {
+ soap.writeTo(bout);
+ System.out.println(new String(bout.toByteArray()));
+ }
+ catch (final SOAPException e1)
+ {
+ e1.printStackTrace();
+ }
+ catch (final IOException e1)
+ {
+ e1.printStackTrace();
+ }
+ }
+
+ /**
+ * Creates a SOAPMessage from the contents of the passed in filename.
+ *
+ * @param fileName - the file containing the soap envelope.
+ * @param clazz - the class used to search from ( think getClass().getResource...).
+ * @return SOAPMessage - a SOAPMessage populated from the contents of the file.
+ *
+ * @throws ParserConfigurationException
+ * @throws SAXException
+ * @throws IOException
+ * @throws SOAPException
+ */
+ public static SOAPMessage createMessage( final String fileName, final Class<?> clazz ) throws ParserConfigurationException, SAXException, IOException, SOAPException
+ {
+ DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
+ dbFactory.setNamespaceAware(true);
+ DocumentBuilder builder = dbFactory.newDocumentBuilder();
+ Document document = builder.parse( ClassUtil.getResource(fileName, clazz).getFile());
+ DOMSource domSource = new DOMSource(document);
+
+ SOAPMessage message = createMessage();
+ SOAPPart soapPart = message.getSOAPPart();
+ soapPart.setContent(domSource);
+ return message;
+ }
+
+ public static SOAPMessage createMessage( final String fileName ) throws ParserConfigurationException, SAXException, IOException, SOAPException
+ {
+ return createMessage(fileName, WSTestUtil.class );
+ }
+
+ private static SOAPElement createBinaryHeaderElement(
+ final SOAPEnvelope soapEnvelope,
+ final SOAPHeaderElement headerElement,
+ final String encodingType,
+ final String valueType,
+ final String cert) throws SOAPException
+ {
+ // create the BinarySecurityToken element
+ Name binarySecurityTokenName = soapEnvelope.createName("BinarySecurityToken", "wsse", WSSecuritySoapExtractor.WSSE_NS);
+ SOAPElement binarySecurityTokenElement = headerElement.addChildElement(binarySecurityTokenName);
+
+ // add the EncodingType attribute
+ binarySecurityTokenElement.addAttribute(soapEnvelope.createName("EncodingType"), encodingType);
+ // add the ValueType attribute
+ binarySecurityTokenElement.addAttribute(soapEnvelope.createName("ValueType"), valueType);
+ // add the certificate as a text node
+ binarySecurityTokenElement.addTextNode(cert);
+ return binarySecurityTokenElement;
+ }
+
+ private static SOAPElement createUsernameTokenHeaderElement(
+ final SOAPEnvelope soapEnvelope,
+ final SOAPHeaderElement headerElement,
+ final String username,
+ final String password) throws SOAPException
+ {
+ // create the UsernameToken element
+ Name usernameTokenName = soapEnvelope.createName("UsernameToken", "wsse", WSSecuritySoapExtractor.WSSE_NS);
+ SOAPElement usernameTokenElement = headerElement.addChildElement(usernameTokenName);
+
+ // create and add the Username sub element
+ if ( username != null )
+ {
+ Name usernameName = soapEnvelope.createName("Username", "wsse", WSSecuritySoapExtractor.WSSE_NS);
+ SOAPElement usernameNode = usernameTokenElement.addChildElement(usernameName);
+ usernameNode.addTextNode(username);
+ }
+
+ // create and add the password sub element
+ if ( password != null )
+ {
+ Name passwordName = soapEnvelope.createName("password", "wsse", WSSecuritySoapExtractor.WSSE_NS);
+ SOAPElement passwordNode = usernameTokenElement.addChildElement(passwordName);
+ passwordNode.addTextNode(password);
+ }
+
+ return usernameTokenElement;
+ }
+
+
+}
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/services/security/auth/ws/cert-example.xml
===================================================================
--- labs/jbossesb/trunk/product/rosetta/tests/src/org/jboss/soa/esb/services/security/auth/ws/cert-example.xml 2009-01-21 09:35:03 UTC (rev 24846)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/services/security/auth/ws/cert-example.xml 2009-01-21 15:38:08 UTC (rev 24850)
@@ -1,11 +0,0 @@
-MIICQjCCAasCBEif0tUwDQYJKoZIhvcNAQEEBQAwaDELMAkGA1UEBhMCU0UxEjAQBgNVBAgTCVN0
-b2NraG9sbTESMBAGA1UEBxMJU3RvY2tob2xtMRAwDgYDVQQKEwdSZWQgSGF0MQ4wDAYDVQQLEwVK
-Qm9zczEPMA0GA1UEAxMGRGFuaWVsMB4XDTA4MDgxMTA1NDkwOVoXDTA4MTEwOTA1NDkwOVowaDEL
-MAkGA1UEBhMCU0UxEjAQBgNVBAgTCVN0b2NraG9sbTESMBAGA1UEBxMJU3RvY2tob2xtMRAwDgYD
-VQQKEwdSZWQgSGF0MQ4wDAYDVQQLEwVKQm9zczEPMA0GA1UEAxMGRGFuaWVsMIGfMA0GCSqGSIb3
-DQEBAQUAA4GNADCBiQKBgQCdSh96Xyt4LeZbXz9pk4eaHrj2sGFmI9lkLQiW/DbF9ETXFvWYCS4N
-lsONmPx63KSbzJZQZRlJSAW2y6hQO18G9NMFQpn2W/jtPSw61kH3dXDQ+kZ2UMk9K93nt4XLvGm6
-dMQAGZAjzpz4lzhcYrDJI4NMw5LpeljDawkradtuiwIDAQABMA0GCSqGSIb3DQEBBAUAA4GBAHi2
-S1zC8jIqncSeMRwOvPOEQIcsZJELYFUCiTwPrAg5hNkp/oewm6uCkgqmry09+3+ZXg2KLQ+RgeuV
-8yfeBvk7TFjtOWeHWnBOaxKiAyLibxGchVfMPl847MZ2w4d6vu776cqb1NKghAE53dn9AzUHIWwx
-OizXyDaDiBMj5xgs
Copied: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/services/security/auth/ws/cert-example.xml (from rev 24846, labs/jbossesb/trunk/product/rosetta/tests/src/org/jboss/soa/esb/services/security/auth/ws/cert-example.xml)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/services/security/auth/ws/cert-example.xml (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/services/security/auth/ws/cert-example.xml 2009-01-21 15:38:08 UTC (rev 24850)
@@ -0,0 +1,11 @@
+MIICQjCCAasCBEif0tUwDQYJKoZIhvcNAQEEBQAwaDELMAkGA1UEBhMCU0UxEjAQBgNVBAgTCVN0
+b2NraG9sbTESMBAGA1UEBxMJU3RvY2tob2xtMRAwDgYDVQQKEwdSZWQgSGF0MQ4wDAYDVQQLEwVK
+Qm9zczEPMA0GA1UEAxMGRGFuaWVsMB4XDTA4MDgxMTA1NDkwOVoXDTA4MTEwOTA1NDkwOVowaDEL
+MAkGA1UEBhMCU0UxEjAQBgNVBAgTCVN0b2NraG9sbTESMBAGA1UEBxMJU3RvY2tob2xtMRAwDgYD
+VQQKEwdSZWQgSGF0MQ4wDAYDVQQLEwVKQm9zczEPMA0GA1UEAxMGRGFuaWVsMIGfMA0GCSqGSIb3
+DQEBAQUAA4GNADCBiQKBgQCdSh96Xyt4LeZbXz9pk4eaHrj2sGFmI9lkLQiW/DbF9ETXFvWYCS4N
+lsONmPx63KSbzJZQZRlJSAW2y6hQO18G9NMFQpn2W/jtPSw61kH3dXDQ+kZ2UMk9K93nt4XLvGm6
+dMQAGZAjzpz4lzhcYrDJI4NMw5LpeljDawkradtuiwIDAQABMA0GCSqGSIb3DQEBBAUAA4GBAHi2
+S1zC8jIqncSeMRwOvPOEQIcsZJELYFUCiTwPrAg5hNkp/oewm6uCkgqmry09+3+ZXg2KLQ+RgeuV
+8yfeBvk7TFjtOWeHWnBOaxKiAyLibxGchVfMPl847MZ2w4d6vu776cqb1NKghAE53dn9AzUHIWwx
+OizXyDaDiBMj5xgs
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/services/security/auth/ws/smooks-config.xml
===================================================================
--- labs/jbossesb/trunk/product/rosetta/tests/src/org/jboss/soa/esb/services/security/auth/ws/smooks-config.xml 2009-01-21 09:35:03 UTC (rev 24846)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/services/security/auth/ws/smooks-config.xml 2009-01-21 15:38:08 UTC (rev 24850)
@@ -1,25 +0,0 @@
-<?xml version="1.0"?>
-<smooks-resource-list xmlns="http://www.milyn.org/xsd/smooks-1.0.xsd">
-
- <resource-config selector="Envelope/Header/Security/UsernameToken">
- <resource>org.milyn.javabean.BeanPopulator</resource>
- <param name="beanId">userNameToken</param>
- <param name="beanClass">org.jboss.soa.esb.services.security.auth.ws.UsernameToken</param>
- <param name="bindings">
- <binding property="userName" selector="Username" default="" />
- <binding property="password" selector="Password" />
- </param>
- </resource-config>
-
- <resource-config selector="Envelope/Header/Security/BinarySecurityToken">
- <resource>org.milyn.javabean.BeanPopulator</resource>
- <param name="beanId">binarySecurityToken</param>
- <param name="beanClass">org.jboss.soa.esb.services.security.auth.ws.BinarySecurityToken</param>
- <param name="bindings">
- <binding property="encodingType" selector="BinarySecurityToken @EncodingType" />
- <binding property="valueType" selector="BinarySecurityToken @ValueType" />
- <binding property="key" selector="BinarySecurityToken" />
- </param>
- </resource-config>
-
-</smooks-resource-list>
Copied: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/services/security/auth/ws/smooks-config.xml (from rev 24846, labs/jbossesb/trunk/product/rosetta/tests/src/org/jboss/soa/esb/services/security/auth/ws/smooks-config.xml)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/services/security/auth/ws/smooks-config.xml (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/services/security/auth/ws/smooks-config.xml 2009-01-21 15:38:08 UTC (rev 24850)
@@ -0,0 +1,25 @@
+<?xml version="1.0"?>
+<smooks-resource-list xmlns="http://www.milyn.org/xsd/smooks-1.0.xsd">
+
+ <resource-config selector="Envelope/Header/Security/UsernameToken">
+ <resource>org.milyn.javabean.BeanPopulator</resource>
+ <param name="beanId">userNameToken</param>
+ <param name="beanClass">org.jboss.soa.esb.services.security.auth.ws.UsernameToken</param>
+ <param name="bindings">
+ <binding property="userName" selector="Username" default="" />
+ <binding property="password" selector="Password" />
+ </param>
+ </resource-config>
+
+ <resource-config selector="Envelope/Header/Security/BinarySecurityToken">
+ <resource>org.milyn.javabean.BeanPopulator</resource>
+ <param name="beanId">binarySecurityToken</param>
+ <param name="beanClass">org.jboss.soa.esb.services.security.auth.ws.BinarySecurityToken</param>
+ <param name="bindings">
+ <binding property="encodingType" selector="BinarySecurityToken @EncodingType" />
+ <binding property="valueType" selector="BinarySecurityToken @ValueType" />
+ <binding property="key" selector="BinarySecurityToken" />
+ </param>
+ </resource-config>
+
+</smooks-resource-list>
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/services/security/auth/ws/soap-keys-example.xml
===================================================================
--- labs/jbossesb/trunk/product/rosetta/tests/src/org/jboss/soa/esb/services/security/auth/ws/soap-keys-example.xml 2009-01-21 09:35:03 UTC (rev 24846)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/services/security/auth/ws/soap-keys-example.xml 2009-01-21 15:38:08 UTC (rev 24850)
@@ -1,19 +0,0 @@
-<env:Envelope xmlns:env='http://schemas.xmlsoap.org/soap/envelope/'>
- <env:Header>
- <wsse:Security xmlns:wsse='http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd'>
- <wsse:BinarySecurityToken EncodingType='wsse:Base64Binary' ValueType='wsse:X509v3'>MIICQjCCAasCBEif0tUwDQYJKoZIhvcNAQEEBQAwaDELMAkGA1UEBhMCU0UxEjAQBgNVBAgTCVN0
-b2NraG9sbTESMBAGA1UEBxMJU3RvY2tob2xtMRAwDgYDVQQKEwdSZWQgSGF0MQ4wDAYDVQQLEwVK
-Qm9zczEPMA0GA1UEAxMGRGFuaWVsMB4XDTA4MDgxMTA1NDkwOVoXDTA4MTEwOTA1NDkwOVowaDEL
-MAkGA1UEBhMCU0UxEjAQBgNVBAgTCVN0b2NraG9sbTESMBAGA1UEBxMJU3RvY2tob2xtMRAwDgYD
-VQQKEwdSZWQgSGF0MQ4wDAYDVQQLEwVKQm9zczEPMA0GA1UEAxMGRGFuaWVsMIGfMA0GCSqGSIb3
-DQEBAQUAA4GNADCBiQKBgQCdSh96Xyt4LeZbXz9pk4eaHrj2sGFmI9lkLQiW/DbF9ETXFvWYCS4N
-lsONmPx63KSbzJZQZRlJSAW2y6hQO18G9NMFQpn2W/jtPSw61kH3dXDQ+kZ2UMk9K93nt4XLvGm6
-dMQAGZAjzpz4lzhcYrDJI4NMw5LpeljDawkradtuiwIDAQABMA0GCSqGSIb3DQEBBAUAA4GBAHi2
-S1zC8jIqncSeMRwOvPOEQIcsZJELYFUCiTwPrAg5hNkp/oewm6uCkgqmry09+3+ZXg2KLQ+RgeuV
-8yfeBvk7TFjtOWeHWnBOaxKiAyLibxGchVfMPl847MZ2w4d6vu776cqb1NKghAE53dn9AzUHIWwx
-OizXyDaDiBMj5xgs
-</wsse:BinarySecurityToken>
- </wsse:Security>
- </env:Header>
- <env:Body></env:Body>
-</env:Envelope>
\ No newline at end of file
Copied: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/services/security/auth/ws/soap-keys-example.xml (from rev 24846, labs/jbossesb/trunk/product/rosetta/tests/src/org/jboss/soa/esb/services/security/auth/ws/soap-keys-example.xml)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/services/security/auth/ws/soap-keys-example.xml (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/services/security/auth/ws/soap-keys-example.xml 2009-01-21 15:38:08 UTC (rev 24850)
@@ -0,0 +1,19 @@
+<env:Envelope xmlns:env='http://schemas.xmlsoap.org/soap/envelope/'>
+ <env:Header>
+ <wsse:Security xmlns:wsse='http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd'>
+ <wsse:BinarySecurityToken EncodingType='wsse:Base64Binary' ValueType='wsse:X509v3'>MIICQjCCAasCBEif0tUwDQYJKoZIhvcNAQEEBQAwaDELMAkGA1UEBhMCU0UxEjAQBgNVBAgTCVN0
+b2NraG9sbTESMBAGA1UEBxMJU3RvY2tob2xtMRAwDgYDVQQKEwdSZWQgSGF0MQ4wDAYDVQQLEwVK
+Qm9zczEPMA0GA1UEAxMGRGFuaWVsMB4XDTA4MDgxMTA1NDkwOVoXDTA4MTEwOTA1NDkwOVowaDEL
+MAkGA1UEBhMCU0UxEjAQBgNVBAgTCVN0b2NraG9sbTESMBAGA1UEBxMJU3RvY2tob2xtMRAwDgYD
+VQQKEwdSZWQgSGF0MQ4wDAYDVQQLEwVKQm9zczEPMA0GA1UEAxMGRGFuaWVsMIGfMA0GCSqGSIb3
+DQEBAQUAA4GNADCBiQKBgQCdSh96Xyt4LeZbXz9pk4eaHrj2sGFmI9lkLQiW/DbF9ETXFvWYCS4N
+lsONmPx63KSbzJZQZRlJSAW2y6hQO18G9NMFQpn2W/jtPSw61kH3dXDQ+kZ2UMk9K93nt4XLvGm6
+dMQAGZAjzpz4lzhcYrDJI4NMw5LpeljDawkradtuiwIDAQABMA0GCSqGSIb3DQEBBAUAA4GBAHi2
+S1zC8jIqncSeMRwOvPOEQIcsZJELYFUCiTwPrAg5hNkp/oewm6uCkgqmry09+3+ZXg2KLQ+RgeuV
+8yfeBvk7TFjtOWeHWnBOaxKiAyLibxGchVfMPl847MZ2w4d6vu776cqb1NKghAE53dn9AzUHIWwx
+OizXyDaDiBMj5xgs
+</wsse:BinarySecurityToken>
+ </wsse:Security>
+ </env:Header>
+ <env:Body></env:Body>
+</env:Envelope>
\ No newline at end of file
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/services/security/auth/ws/soap-keys-example2.xml
===================================================================
--- labs/jbossesb/trunk/product/rosetta/tests/src/org/jboss/soa/esb/services/security/auth/ws/soap-keys-example2.xml 2009-01-21 09:35:03 UTC (rev 24846)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/services/security/auth/ws/soap-keys-example2.xml 2009-01-21 15:38:08 UTC (rev 24850)
@@ -1,19 +0,0 @@
-<env:Envelope xmlns:env='http://schemas.xmlsoap.org/soap/envelope/'>
- <env:Header>
- <wsse:Security xmlns:wsse='http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd'>
- <wsse:BinarySecurityToken EncodingType='http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0#Base64Binary' ValueType='http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-x509-token-profile-1.0#X509v3'>MIICQjCCAasCBEif0tUwDQYJKoZIhvcNAQEEBQAwaDELMAkGA1UEBhMCU0UxEjAQBgNVBAgTCVN0
-b2NraG9sbTESMBAGA1UEBxMJU3RvY2tob2xtMRAwDgYDVQQKEwdSZWQgSGF0MQ4wDAYDVQQLEwVK
-Qm9zczEPMA0GA1UEAxMGRGFuaWVsMB4XDTA4MDgxMTA1NDkwOVoXDTA4MTEwOTA1NDkwOVowaDEL
-MAkGA1UEBhMCU0UxEjAQBgNVBAgTCVN0b2NraG9sbTESMBAGA1UEBxMJU3RvY2tob2xtMRAwDgYD
-VQQKEwdSZWQgSGF0MQ4wDAYDVQQLEwVKQm9zczEPMA0GA1UEAxMGRGFuaWVsMIGfMA0GCSqGSIb3
-DQEBAQUAA4GNADCBiQKBgQCdSh96Xyt4LeZbXz9pk4eaHrj2sGFmI9lkLQiW/DbF9ETXFvWYCS4N
-lsONmPx63KSbzJZQZRlJSAW2y6hQO18G9NMFQpn2W/jtPSw61kH3dXDQ+kZ2UMk9K93nt4XLvGm6
-dMQAGZAjzpz4lzhcYrDJI4NMw5LpeljDawkradtuiwIDAQABMA0GCSqGSIb3DQEBBAUAA4GBAHi2
-S1zC8jIqncSeMRwOvPOEQIcsZJELYFUCiTwPrAg5hNkp/oewm6uCkgqmry09+3+ZXg2KLQ+RgeuV
-8yfeBvk7TFjtOWeHWnBOaxKiAyLibxGchVfMPl847MZ2w4d6vu776cqb1NKghAE53dn9AzUHIWwx
-OizXyDaDiBMj5xgs
-</wsse:BinarySecurityToken>
- </wsse:Security>
- </env:Header>
- <env:Body></env:Body>
-</env:Envelope>
\ No newline at end of file
Copied: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/services/security/auth/ws/soap-keys-example2.xml (from rev 24846, labs/jbossesb/trunk/product/rosetta/tests/src/org/jboss/soa/esb/services/security/auth/ws/soap-keys-example2.xml)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/services/security/auth/ws/soap-keys-example2.xml (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/services/security/auth/ws/soap-keys-example2.xml 2009-01-21 15:38:08 UTC (rev 24850)
@@ -0,0 +1,19 @@
+<env:Envelope xmlns:env='http://schemas.xmlsoap.org/soap/envelope/'>
+ <env:Header>
+ <wsse:Security xmlns:wsse='http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd'>
+ <wsse:BinarySecurityToken EncodingType='http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0#Base64Binary' ValueType='http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-x509-token-profile-1.0#X509v3'>MIICQjCCAasCBEif0tUwDQYJKoZIhvcNAQEEBQAwaDELMAkGA1UEBhMCU0UxEjAQBgNVBAgTCVN0
+b2NraG9sbTESMBAGA1UEBxMJU3RvY2tob2xtMRAwDgYDVQQKEwdSZWQgSGF0MQ4wDAYDVQQLEwVK
+Qm9zczEPMA0GA1UEAxMGRGFuaWVsMB4XDTA4MDgxMTA1NDkwOVoXDTA4MTEwOTA1NDkwOVowaDEL
+MAkGA1UEBhMCU0UxEjAQBgNVBAgTCVN0b2NraG9sbTESMBAGA1UEBxMJU3RvY2tob2xtMRAwDgYD
+VQQKEwdSZWQgSGF0MQ4wDAYDVQQLEwVKQm9zczEPMA0GA1UEAxMGRGFuaWVsMIGfMA0GCSqGSIb3
+DQEBAQUAA4GNADCBiQKBgQCdSh96Xyt4LeZbXz9pk4eaHrj2sGFmI9lkLQiW/DbF9ETXFvWYCS4N
+lsONmPx63KSbzJZQZRlJSAW2y6hQO18G9NMFQpn2W/jtPSw61kH3dXDQ+kZ2UMk9K93nt4XLvGm6
+dMQAGZAjzpz4lzhcYrDJI4NMw5LpeljDawkradtuiwIDAQABMA0GCSqGSIb3DQEBBAUAA4GBAHi2
+S1zC8jIqncSeMRwOvPOEQIcsZJELYFUCiTwPrAg5hNkp/oewm6uCkgqmry09+3+ZXg2KLQ+RgeuV
+8yfeBvk7TFjtOWeHWnBOaxKiAyLibxGchVfMPl847MZ2w4d6vu776cqb1NKghAE53dn9AzUHIWwx
+OizXyDaDiBMj5xgs
+</wsse:BinarySecurityToken>
+ </wsse:Security>
+ </env:Header>
+ <env:Body></env:Body>
+</env:Envelope>
\ No newline at end of file
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/services/security/auth/ws/soap-userpass-example.xml
===================================================================
--- labs/jbossesb/trunk/product/rosetta/tests/src/org/jboss/soa/esb/services/security/auth/ws/soap-userpass-example.xml 2009-01-21 09:35:03 UTC (rev 24846)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/services/security/auth/ws/soap-userpass-example.xml 2009-01-21 15:38:08 UTC (rev 24850)
@@ -1,18 +0,0 @@
-<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xmlns:xsd="http://www.w3.org/2001/XMLSchema">
-
- <soap:Header>
- <wsse:Security xmlns:wsse="http://schemas.xmlsoap.org/ws/2002/04/secext">
- <wsse:UsernameToken>
- <wsse:Username>Clark</wsse:Username>
- <wsse:Password>griswald</wsse:Password>
- </wsse:UsernameToken>
- </wsse:Security>
- </soap:Header>
-
- <soap:Body>
- </soap:Body>
-
-</soap:Envelope>
-
Copied: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/services/security/auth/ws/soap-userpass-example.xml (from rev 24846, labs/jbossesb/trunk/product/rosetta/tests/src/org/jboss/soa/esb/services/security/auth/ws/soap-userpass-example.xml)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/services/security/auth/ws/soap-userpass-example.xml (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/services/security/auth/ws/soap-userpass-example.xml 2009-01-21 15:38:08 UTC (rev 24850)
@@ -0,0 +1,18 @@
+<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+
+ <soap:Header>
+ <wsse:Security xmlns:wsse="http://schemas.xmlsoap.org/ws/2002/04/secext">
+ <wsse:UsernameToken>
+ <wsse:Username>Clark</wsse:Username>
+ <wsse:Password>griswald</wsse:Password>
+ </wsse:UsernameToken>
+ </wsse:Security>
+ </soap:Header>
+
+ <soap:Body>
+ </soap:Body>
+
+</soap:Envelope>
+
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/services/security/jaas.login
===================================================================
--- labs/jbossesb/trunk/product/rosetta/tests/src/org/jboss/soa/esb/services/security/jaas.login 2009-01-21 09:35:03 UTC (rev 24846)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/services/security/jaas.login 2009-01-21 15:38:08 UTC (rev 24850)
@@ -1,9 +0,0 @@
-SuccessfulLogin {
- org.jboss.soa.esb.services.security.TestLoginModule required forceLogin=true;
-};
-FailureLogin {
- org.jboss.soa.esb.services.security.TestLoginModule required forceLogin=false;
-};
-UserPassLogin {
- org.jboss.soa.esb.services.security.SimpleLoginModule required ;
-};
\ No newline at end of file
Copied: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/services/security/jaas.login (from rev 24846, labs/jbossesb/trunk/product/rosetta/tests/src/org/jboss/soa/esb/services/security/jaas.login)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/services/security/jaas.login (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/services/security/jaas.login 2009-01-21 15:38:08 UTC (rev 24850)
@@ -0,0 +1,9 @@
+SuccessfulLogin {
+ org.jboss.soa.esb.services.security.TestLoginModule required forceLogin=true;
+};
+FailureLogin {
+ org.jboss.soa.esb.services.security.TestLoginModule required forceLogin=false;
+};
+UserPassLogin {
+ org.jboss.soa.esb.services.security.SimpleLoginModule required ;
+};
\ No newline at end of file
Copied: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/services/security/principals (from rev 24846, labs/jbossesb/trunk/product/rosetta/tests/src/org/jboss/soa/esb/services/security/principals)
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/services/security/principals/GroupUnitTest.java
===================================================================
--- labs/jbossesb/trunk/product/rosetta/tests/src/org/jboss/soa/esb/services/security/principals/GroupUnitTest.java 2009-01-21 09:35:03 UTC (rev 24846)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/services/security/principals/GroupUnitTest.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -1,69 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source Copyright 2008, Red Hat Middleware
- * LLC, and individual contributors by the @authors tag. See the copyright.txt
- * in the distribution for a full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it under the
- * terms of the GNU Lesser General Public License as published by the Free
- * Software Foundation; either version 2.1 of the License, or (at your option)
- * any later version.
- *
- * This software is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
- * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
- * details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this software; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA, or see the FSF
- * site: http://www.fsf.org.
- */
-package org.jboss.soa.esb.services.security.principals;
-
-import static org.junit.Assert.*;
-import org.junit.Test;
-import junit.framework.JUnit4TestAdapter;
-
-/**
- * Unit test for {@link Role}
- * <p/>
- *
- * @author <a href="mailto:dbevenius at redhat.com">Daniel Bevenius</a>
- *
- */
-public class GroupUnitTest
-{
- private Group groupOne = new Group("groupOne");
- private Group group1 = new Group("groupOne");
- private Group groupTwo = new Group("groupTwo");
- private Group group2 = new Group("groupTwo");
-
- @Test (expected = NullPointerException.class)
- public void constuctWithNullGroupName()
- {
- new Group(null);
- }
-
- @Test
- public void equals()
- {
- groupOne.addMember(new Role("role1"));
- assertFalse(group1.equals(groupOne));
- assertFalse(groupOne.equals(group1));
- assertFalse(groupOne.equals(group2));
- group1.addMember(new Role("role1"));
- assertEquals(groupOne, group1);
- }
-
- @Test
- public void hashcode()
- {
- assertEquals(groupOne.hashCode(), group1.hashCode());
- assertFalse(groupOne.hashCode() == groupTwo.hashCode());
- }
-
- public static junit.framework.Test suite()
- {
- return new JUnit4TestAdapter(GroupUnitTest.class);
- }
-}
Copied: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/services/security/principals/GroupUnitTest.java (from rev 24846, labs/jbossesb/trunk/product/rosetta/tests/src/org/jboss/soa/esb/services/security/principals/GroupUnitTest.java)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/services/security/principals/GroupUnitTest.java (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/services/security/principals/GroupUnitTest.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -0,0 +1,69 @@
+/*
+ * JBoss, Home of Professional Open Source Copyright 2008, Red Hat Middleware
+ * LLC, and individual contributors by the @authors tag. See the copyright.txt
+ * in the distribution for a full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it under the
+ * terms of the GNU Lesser General Public License as published by the Free
+ * Software Foundation; either version 2.1 of the License, or (at your option)
+ * any later version.
+ *
+ * This software is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+ * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
+ * details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this software; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA, or see the FSF
+ * site: http://www.fsf.org.
+ */
+package org.jboss.soa.esb.services.security.principals;
+
+import static org.junit.Assert.*;
+import org.junit.Test;
+import junit.framework.JUnit4TestAdapter;
+
+/**
+ * Unit test for {@link Role}
+ * <p/>
+ *
+ * @author <a href="mailto:dbevenius at redhat.com">Daniel Bevenius</a>
+ *
+ */
+public class GroupUnitTest
+{
+ private Group groupOne = new Group("groupOne");
+ private Group group1 = new Group("groupOne");
+ private Group groupTwo = new Group("groupTwo");
+ private Group group2 = new Group("groupTwo");
+
+ @Test (expected = NullPointerException.class)
+ public void constuctWithNullGroupName()
+ {
+ new Group(null);
+ }
+
+ @Test
+ public void equals()
+ {
+ groupOne.addMember(new Role("role1"));
+ assertFalse(group1.equals(groupOne));
+ assertFalse(groupOne.equals(group1));
+ assertFalse(groupOne.equals(group2));
+ group1.addMember(new Role("role1"));
+ assertEquals(groupOne, group1);
+ }
+
+ @Test
+ public void hashcode()
+ {
+ assertEquals(groupOne.hashCode(), group1.hashCode());
+ assertFalse(groupOne.hashCode() == groupTwo.hashCode());
+ }
+
+ public static junit.framework.Test suite()
+ {
+ return new JUnit4TestAdapter(GroupUnitTest.class);
+ }
+}
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/services/security/principals/RoleUnitTest.java
===================================================================
--- labs/jbossesb/trunk/product/rosetta/tests/src/org/jboss/soa/esb/services/security/principals/RoleUnitTest.java 2009-01-21 09:35:03 UTC (rev 24846)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/services/security/principals/RoleUnitTest.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -1,65 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source Copyright 2008, Red Hat Middleware
- * LLC, and individual contributors by the @authors tag. See the copyright.txt
- * in the distribution for a full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it under the
- * terms of the GNU Lesser General Public License as published by the Free
- * Software Foundation; either version 2.1 of the License, or (at your option)
- * any later version.
- *
- * This software is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
- * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
- * details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this software; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA, or see the FSF
- * site: http://www.fsf.org.
- */
-package org.jboss.soa.esb.services.security.principals;
-
-import static org.junit.Assert.*;
-import org.junit.Test;
-import junit.framework.JUnit4TestAdapter;
-
-/**
- * Unit test for {@link Role}
- * <p/>
- *
- * @author <a href="mailto:dbevenius at redhat.com">Daniel Bevenius</a>
- *
- */
-public class RoleUnitTest
-{
- private Role roleOne = new Role("roleOne");
- private Role role1 = new Role("roleOne");
- private Role roleTwo = new Role("roleTwo");
- private Role role2 = new Role("roleTwo");
-
- @Test (expected = NullPointerException.class)
- public void constuctWithNullRoleName()
- {
- new Role(null);
- }
-
- @Test
- public void equals()
- {
- assertEquals(roleOne, role1);
- assertFalse(roleOne.equals(role2));
- }
-
- @Test
- public void hashcode()
- {
- assertEquals(roleOne.hashCode(), role1.hashCode());
- assertFalse(roleOne.hashCode() == roleTwo.hashCode());
- }
-
- public static junit.framework.Test suite()
- {
- return new JUnit4TestAdapter(RoleUnitTest.class);
- }
-}
Copied: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/services/security/principals/RoleUnitTest.java (from rev 24846, labs/jbossesb/trunk/product/rosetta/tests/src/org/jboss/soa/esb/services/security/principals/RoleUnitTest.java)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/services/security/principals/RoleUnitTest.java (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/services/security/principals/RoleUnitTest.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -0,0 +1,65 @@
+/*
+ * JBoss, Home of Professional Open Source Copyright 2008, Red Hat Middleware
+ * LLC, and individual contributors by the @authors tag. See the copyright.txt
+ * in the distribution for a full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it under the
+ * terms of the GNU Lesser General Public License as published by the Free
+ * Software Foundation; either version 2.1 of the License, or (at your option)
+ * any later version.
+ *
+ * This software is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+ * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
+ * details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this software; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA, or see the FSF
+ * site: http://www.fsf.org.
+ */
+package org.jboss.soa.esb.services.security.principals;
+
+import static org.junit.Assert.*;
+import org.junit.Test;
+import junit.framework.JUnit4TestAdapter;
+
+/**
+ * Unit test for {@link Role}
+ * <p/>
+ *
+ * @author <a href="mailto:dbevenius at redhat.com">Daniel Bevenius</a>
+ *
+ */
+public class RoleUnitTest
+{
+ private Role roleOne = new Role("roleOne");
+ private Role role1 = new Role("roleOne");
+ private Role roleTwo = new Role("roleTwo");
+ private Role role2 = new Role("roleTwo");
+
+ @Test (expected = NullPointerException.class)
+ public void constuctWithNullRoleName()
+ {
+ new Role(null);
+ }
+
+ @Test
+ public void equals()
+ {
+ assertEquals(roleOne, role1);
+ assertFalse(roleOne.equals(role2));
+ }
+
+ @Test
+ public void hashcode()
+ {
+ assertEquals(roleOne.hashCode(), role1.hashCode());
+ assertFalse(roleOne.hashCode() == roleTwo.hashCode());
+ }
+
+ public static junit.framework.Test suite()
+ {
+ return new JUnit4TestAdapter(RoleUnitTest.class);
+ }
+}
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/services/security/privateKeyStore
===================================================================
(Binary files differ)
Copied: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/services/security/privateKeyStore (from rev 24846, labs/jbossesb/trunk/product/rosetta/tests/src/org/jboss/soa/esb/services/security/privateKeyStore)
===================================================================
(Binary files differ)
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/services/security/publicKeyStore
===================================================================
(Binary files differ)
Copied: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/services/security/publicKeyStore (from rev 24846, labs/jbossesb/trunk/product/rosetta/tests/src/org/jboss/soa/esb/services/security/publicKeyStore)
===================================================================
(Binary files differ)
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/services/security/security-properties.xml
===================================================================
--- labs/jbossesb/trunk/product/rosetta/tests/src/org/jboss/soa/esb/services/security/security-properties.xml 2009-01-21 09:35:03 UTC (rev 24846)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/services/security/security-properties.xml 2009-01-21 15:38:08 UTC (rev 24850)
@@ -1,110 +0,0 @@
-<?xml version="1.0" encoding="ISO-8859-1"?>
-<!--
- JBoss, Home of Professional Open Source
- Copyright 2006, JBoss Inc., and others contributors as indicated
- by the @authors tag. All rights reserved.
- See the copyright.txt in the distribution for a
- full listing of individual contributors.
- This copyrighted material is made available to anyone wishing to use,
- modify, copy, or redistribute it subject to the terms and conditions
- of the GNU Lesser General Public License, v. 2.1.
- This program is distributed in the hope that it will be useful, but WITHOUT A
- WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
- PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
- You should have received a copy of the GNU Lesser General Public License,
- v.2.1 along with this distribution; if not, write to the Free Software
- Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
- MA 02110-1301, USA.
-
- (C) 2005-2006,
- @author JBoss Inc.
--->
-<!-- $Id: jbossesb-unittest-properties.xml $ -->
-<!--
- These options are described in the JBossESB manual.
- Defaults are provided here for convenience only.
-
- Please read through this file prior to using the system, and consider
- updating the specified entries.
--->
-<esb
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:noNamespaceSchemaLocation="jbossesb-1_0.xsd">
- <properties name="core">
- <property name="org.jboss.soa.esb.jndi.server.context.factory" value="org.jnp.interfaces.NamingContextFactory"/>
- <property name="org.jboss.soa.esb.jndi.server.url" value="${jboss.esb.bind.address}:1099"/>
- <property name="org.jboss.soa.esb.persistence.connection.factory" value="org.jboss.internal.soa.esb.persistence.format.MessageStoreFactoryImpl"/>
- <property name="org.jboss.soa.esb.loadbalancer.policy" value="org.jboss.soa.esb.listeners.ha.RoundRobin"/>
- <property name="jboss.esb.invm.scope.default" value="NONE"/>
- </properties>
- <properties name="security">
- <property name="org.jboss.soa.esb.services.security.implementationClass" value="org.jboss.internal.soa.esb.services.security.JaasSecurityService"/>
- <property name="org.jboss.soa.esb.services.security.callbackHandler" value="org.jboss.internal.soa.esb.services.security.UserPassCallbackHandler"/>
- <property name="org.jboss.soa.esb.services.security.configUrl" value="jaas.login"/>
-
- <property name="org.jboss.soa.esb.services.security.privateKeystore" value="privateKeyStore"/>
- <property name="org.jboss.soa.esb.services.security.privateKeystorePassword" value="testKeystorePassword"/>
- <property name="org.jboss.soa.esb.services.security.privateKeyAlias" value="testAlias"/>
- <property name="org.jboss.soa.esb.services.security.privateKeyPassword" value="testPassword"/>
-
- <property name="org.jboss.soa.esb.services.security.publicKeystore" value="publicKeyStore"/>
- <property name="org.jboss.soa.esb.services.security.publicKeystorePassword" value="testKeystorePassword"/>
- <property name="org.jboss.soa.esb.services.security.publicKeyAlias" value="testAlias"/>
- <property name="org.jboss.soa.esb.services.security.publicKeyPassword" value="testPassword"/>
- <property name="org.jboss.soa.esb.services.security.publicKeyTransformation" value="RSA/ECB/PKCS1Padding"/>
- </properties>
- <properties name="registry">
- <property name="org.jboss.soa.esb.registry.queryManagerURI" value="org.apache.juddi.registry.local.InquiryService#inquire"/>
- <property name="org.jboss.soa.esb.registry.lifeCycleManagerURI" value="org.apache.juddi.registry.local.PublishService#publish"/>
- <property name="org.jboss.soa.esb.registry.implementationClass" value="org.jboss.internal.soa.esb.services.registry.JAXRRegistryImpl"/>
- <property name="org.jboss.soa.esb.registry.factoryClass" value="org.apache.ws.scout.registry.ConnectionFactoryImpl"/>
- <property name="org.jboss.soa.esb.registry.user" value="jbossesb"/>
- <property name="org.jboss.soa.esb.registry.password" value="password"/>
- <!-- the following parameter is scout specific to set the type of communication between scout and the UDDI (embedded, rmi, soap) -->
- <property name="org.jboss.soa.esb.scout.proxy.transportClass" value="org.apache.ws.scout.transport.LocalTransport"/>
- </properties>
- <properties name="transports" depends="core">
- <property name="org.jboss.soa.esb.mail.smtp.host" value="localhost"/>
- <property name="org.jboss.soa.esb.mail.smtp.user" value="jbossesb"/>
- <property name="org.jboss.soa.esb.mail.smtp.password" value=""/>
- <property name="org.jboss.soa.esb.mail.smtp.port" value="25"/>
- <property name="org.jboss.soa.esb.mail.smtp.auth" value="true"/>
- <property name="org.jboss.soa.esb.ftp.localdir" value="/tmp"/>
- <property name="org.jboss.soa.esb.ftp.remotedir" value="/tmp"/>
- <property name="org.jboss.soa.esb.jms.connectionPool" value="20"/>
- <property name="org.jboss.soa.esb.jms.sessionSleep" value="30"/>
- </properties>
- <properties name="connection">
- <property name="min-pool-size" value="5"/>
- <property name="max-pool=size" value="10"/>
- <property name="blocking-timeout-millis" value="5000"/>
- <property name="abandoned-connection-timeout" value="10000"/>
- <property name="abandoned-connection-time-interval" value="30000"/>
- </properties>
- <properties name="dbstore">
-
- <!-- connection manager type -->
- <!-- <property name="org.jboss.soa.esb.persistence.db.conn.manager" value="org.jboss.internal.soa.esb.persistence.manager.StandaloneConnectionManager"/> -->
- <property name="org.jboss.soa.esb.persistence.db.conn.manager" value="org.jboss.internal.soa.esb.persistence.manager.J2eeConnectionManager"/>
-
- <!-- this property is only used if using the j2ee connection manager -->
- <property name="org.jboss.soa.esb.persistence.db.datasource.name" value="java:/JBossESBDS"/>
-
- <!-- standalone connection pooling settings -->
- <property name="org.jboss.soa.esb.persistence.db.connection.url" value="jdbc:hsqldb:hsql://localhost:9001/"/>
- <property name="org.jboss.soa.esb.persistence.db.jdbc.driver" value="org.hsqldb.jdbcDriver"/>
- <property name="org.jboss.soa.esb.persistence.db.user" value="sa"/>
- <property name="org.jboss.soa.esb.persistence.db.pwd" value=""/>
- <property name="org.jboss.soa.esb.persistence.db.pool.initial.size" value="2"/>
- <property name="org.jboss.soa.esb.persistence.db.pool.min.size" value="2"/>
- <property name="org.jboss.soa.esb.persistence.db.pool.max.size" value="5"/>
- <!--table managed by pool to test for valid connections - created by pool automatically -->
- <property name="org.jboss.soa.esb.persistence.db.pool.test.table" value="pooltest"/>
- <property name="org.jboss.soa.esb.persistence.db.pool.timeout.millis" value="5000"/>
-
- </properties>
- <properties name="filters">
- <property name="org.jboss.soa.esb.filter.1" value="org.jboss.internal.soa.esb.message.filter.MetaDataFilter"/>
- <property name="org.jboss.soa.esb.filter.2" value="org.jboss.internal.soa.esb.message.filter.GatewayFilter"/>
- </properties>
-</esb>
Copied: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/services/security/security-properties.xml (from rev 24846, labs/jbossesb/trunk/product/rosetta/tests/src/org/jboss/soa/esb/services/security/security-properties.xml)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/services/security/security-properties.xml (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/services/security/security-properties.xml 2009-01-21 15:38:08 UTC (rev 24850)
@@ -0,0 +1,110 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!--
+ JBoss, Home of Professional Open Source
+ Copyright 2006, JBoss Inc., and others contributors as indicated
+ by the @authors tag. All rights reserved.
+ See the copyright.txt in the distribution for a
+ full listing of individual contributors.
+ This copyrighted material is made available to anyone wishing to use,
+ modify, copy, or redistribute it subject to the terms and conditions
+ of the GNU Lesser General Public License, v. 2.1.
+ This program is distributed in the hope that it will be useful, but WITHOUT A
+ WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+ PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
+ You should have received a copy of the GNU Lesser General Public License,
+ v.2.1 along with this distribution; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ MA 02110-1301, USA.
+
+ (C) 2005-2006,
+ @author JBoss Inc.
+-->
+<!-- $Id: jbossesb-unittest-properties.xml $ -->
+<!--
+ These options are described in the JBossESB manual.
+ Defaults are provided here for convenience only.
+
+ Please read through this file prior to using the system, and consider
+ updating the specified entries.
+-->
+<esb
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:noNamespaceSchemaLocation="jbossesb-1_0.xsd">
+ <properties name="core">
+ <property name="org.jboss.soa.esb.jndi.server.context.factory" value="org.jnp.interfaces.NamingContextFactory"/>
+ <property name="org.jboss.soa.esb.jndi.server.url" value="${jboss.esb.bind.address}:1099"/>
+ <property name="org.jboss.soa.esb.persistence.connection.factory" value="org.jboss.internal.soa.esb.persistence.format.MessageStoreFactoryImpl"/>
+ <property name="org.jboss.soa.esb.loadbalancer.policy" value="org.jboss.soa.esb.listeners.ha.RoundRobin"/>
+ <property name="jboss.esb.invm.scope.default" value="NONE"/>
+ </properties>
+ <properties name="security">
+ <property name="org.jboss.soa.esb.services.security.implementationClass" value="org.jboss.internal.soa.esb.services.security.JaasSecurityService"/>
+ <property name="org.jboss.soa.esb.services.security.callbackHandler" value="org.jboss.internal.soa.esb.services.security.UserPassCallbackHandler"/>
+ <property name="org.jboss.soa.esb.services.security.configUrl" value="jaas.login"/>
+
+ <property name="org.jboss.soa.esb.services.security.privateKeystore" value="privateKeyStore"/>
+ <property name="org.jboss.soa.esb.services.security.privateKeystorePassword" value="testKeystorePassword"/>
+ <property name="org.jboss.soa.esb.services.security.privateKeyAlias" value="testAlias"/>
+ <property name="org.jboss.soa.esb.services.security.privateKeyPassword" value="testPassword"/>
+
+ <property name="org.jboss.soa.esb.services.security.publicKeystore" value="publicKeyStore"/>
+ <property name="org.jboss.soa.esb.services.security.publicKeystorePassword" value="testKeystorePassword"/>
+ <property name="org.jboss.soa.esb.services.security.publicKeyAlias" value="testAlias"/>
+ <property name="org.jboss.soa.esb.services.security.publicKeyPassword" value="testPassword"/>
+ <property name="org.jboss.soa.esb.services.security.publicKeyTransformation" value="RSA/ECB/PKCS1Padding"/>
+ </properties>
+ <properties name="registry">
+ <property name="org.jboss.soa.esb.registry.queryManagerURI" value="org.apache.juddi.registry.local.InquiryService#inquire"/>
+ <property name="org.jboss.soa.esb.registry.lifeCycleManagerURI" value="org.apache.juddi.registry.local.PublishService#publish"/>
+ <property name="org.jboss.soa.esb.registry.implementationClass" value="org.jboss.internal.soa.esb.services.registry.JAXRRegistryImpl"/>
+ <property name="org.jboss.soa.esb.registry.factoryClass" value="org.apache.ws.scout.registry.ConnectionFactoryImpl"/>
+ <property name="org.jboss.soa.esb.registry.user" value="jbossesb"/>
+ <property name="org.jboss.soa.esb.registry.password" value="password"/>
+ <!-- the following parameter is scout specific to set the type of communication between scout and the UDDI (embedded, rmi, soap) -->
+ <property name="org.jboss.soa.esb.scout.proxy.transportClass" value="org.apache.ws.scout.transport.LocalTransport"/>
+ </properties>
+ <properties name="transports" depends="core">
+ <property name="org.jboss.soa.esb.mail.smtp.host" value="localhost"/>
+ <property name="org.jboss.soa.esb.mail.smtp.user" value="jbossesb"/>
+ <property name="org.jboss.soa.esb.mail.smtp.password" value=""/>
+ <property name="org.jboss.soa.esb.mail.smtp.port" value="25"/>
+ <property name="org.jboss.soa.esb.mail.smtp.auth" value="true"/>
+ <property name="org.jboss.soa.esb.ftp.localdir" value="/tmp"/>
+ <property name="org.jboss.soa.esb.ftp.remotedir" value="/tmp"/>
+ <property name="org.jboss.soa.esb.jms.connectionPool" value="20"/>
+ <property name="org.jboss.soa.esb.jms.sessionSleep" value="30"/>
+ </properties>
+ <properties name="connection">
+ <property name="min-pool-size" value="5"/>
+ <property name="max-pool=size" value="10"/>
+ <property name="blocking-timeout-millis" value="5000"/>
+ <property name="abandoned-connection-timeout" value="10000"/>
+ <property name="abandoned-connection-time-interval" value="30000"/>
+ </properties>
+ <properties name="dbstore">
+
+ <!-- connection manager type -->
+ <!-- <property name="org.jboss.soa.esb.persistence.db.conn.manager" value="org.jboss.internal.soa.esb.persistence.manager.StandaloneConnectionManager"/> -->
+ <property name="org.jboss.soa.esb.persistence.db.conn.manager" value="org.jboss.internal.soa.esb.persistence.manager.J2eeConnectionManager"/>
+
+ <!-- this property is only used if using the j2ee connection manager -->
+ <property name="org.jboss.soa.esb.persistence.db.datasource.name" value="java:/JBossESBDS"/>
+
+ <!-- standalone connection pooling settings -->
+ <property name="org.jboss.soa.esb.persistence.db.connection.url" value="jdbc:hsqldb:hsql://localhost:9001/"/>
+ <property name="org.jboss.soa.esb.persistence.db.jdbc.driver" value="org.hsqldb.jdbcDriver"/>
+ <property name="org.jboss.soa.esb.persistence.db.user" value="sa"/>
+ <property name="org.jboss.soa.esb.persistence.db.pwd" value=""/>
+ <property name="org.jboss.soa.esb.persistence.db.pool.initial.size" value="2"/>
+ <property name="org.jboss.soa.esb.persistence.db.pool.min.size" value="2"/>
+ <property name="org.jboss.soa.esb.persistence.db.pool.max.size" value="5"/>
+ <!--table managed by pool to test for valid connections - created by pool automatically -->
+ <property name="org.jboss.soa.esb.persistence.db.pool.test.table" value="pooltest"/>
+ <property name="org.jboss.soa.esb.persistence.db.pool.timeout.millis" value="5000"/>
+
+ </properties>
+ <properties name="filters">
+ <property name="org.jboss.soa.esb.filter.1" value="org.jboss.internal.soa.esb.message.filter.MetaDataFilter"/>
+ <property name="org.jboss.soa.esb.filter.2" value="org.jboss.internal.soa.esb.message.filter.GatewayFilter"/>
+ </properties>
+</esb>
Modified: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/testutils/test/ESBConfigUtilUnitTest.java
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/testutils/test/ESBConfigUtilUnitTest.java 2009-01-21 14:47:17 UTC (rev 24849)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/testutils/test/ESBConfigUtilUnitTest.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -22,4 +22,12 @@
}
+ public void test110() throws ConfigurationException, IOException, SAXException {
+ ESBConfigUtil configUtil = new ESBConfigUtil(getClass().getResourceAsStream("jboss-esb.110.xml"));
+
+ assertTrue(configUtil.getListenerConfig("JMS-ESBListener").toString().startsWith("<listener listenerClass=\"org.jboss.soa.esb.listeners.message.MessageAwareListener\" maxThreads=\"1\" name=\"JMS-ESBListener\" service-category=\"ABI_OrderManager\" service-description=\"ABI OrderManager Service\" service-name=\"ABI_OrderManager\">"));
+ assertTrue(configUtil.getGatewayConfig("FileGateway").toString().startsWith("<listener"));
+ assertTrue(configUtil.getActionConfig("OrderNotificationService", "print-after-transform").toString().startsWith("<action action=\"print-after-transform\""));
+ }
+
}
Copied: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/testutils/test/jboss-esb.110.xml (from rev 24846, labs/jbossesb/trunk/product/rosetta/tests/src/org/jboss/soa/esb/testutils/test/jboss-esb.110.xml)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/testutils/test/jboss-esb.110.xml (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/testutils/test/jboss-esb.110.xml 2009-01-21 15:38:08 UTC (rev 24850)
@@ -0,0 +1,142 @@
+<?xml version = "1.0" encoding = "UTF-8"?>
+<jbossesb
+ xmlns="http://anonsvn.labs.jboss.com/labs/jbossesb/trunk/product/etc/schemas/xml/jbossesb-1.1.0.xsd"
+ parameterReloadSecs="5">
+
+ <providers>
+ <jms-provider name="JBossMQ" connection-factory="ConnectionFactory"
+ jndi-context-factory="org.jnp.interfaces.NamingContextFactory"
+ jndi-URL="localhost">
+
+ <jms-bus busid="OrderManagerGateway">
+ <jms-message-filter dest-type="QUEUE" dest-name="queue/quickstart_webservice_bpel_gw"/>
+ </jms-bus>
+ <jms-bus busid="OrderManagerService">
+ <jms-message-filter dest-type="QUEUE" dest-name="queue/quickstart_webservice_bpel_esb"
+ selector="service='ordermanager'"/>
+ </jms-bus>
+ <jms-bus busid="ShipperService">
+ <jms-message-filter dest-type="QUEUE" dest-name="queue/quickstart_webservice_bpel_esb"
+ selector="service='shipper'"/>
+ </jms-bus>
+ <jms-bus busid="OrderNotificationService">
+ <jms-message-filter dest-type="QUEUE" dest-name="queue/quickstart_webservice_bpel_esb"
+ selector="service='orderNotifier'"/>
+ </jms-bus>
+ </jms-provider>
+
+ <jbr-provider name="JBR-Http-1" protocol="http" host="localhost">
+ <jbr-bus busid="Http-1" port="8865"/>
+ </jbr-provider>
+
+ <jbr-provider name="JBR-Http-2" protocol="http" host="localhost">
+ <jbr-bus busid="Http-2" port="8866"/>
+ </jbr-provider>
+
+ <jbr-provider name="JBR-Socket" protocol="socket" host="localhost">
+ <jbr-bus busid="Socket-1" port="8988"/>
+ </jbr-provider>
+
+ <fs-provider name="File Sys Provider">
+ <fs-bus busid="notificationChannel">
+ <fs-message-filter
+ directory="/ae-demo/orders"
+ input-suffix=".in.csv"
+ work-suffix=".esbWorking"
+ post-delete="false"
+ post-directory="/ae-demo/orders"
+ post-suffix=".done.csv"
+ error-delete="false"
+ error-directory="/ae-demo/orders"
+ error-suffix=".IN_ERROR.csv"
+ />
+ </fs-bus>
+ </fs-provider>
+
+ </providers>
+
+ <services>
+
+ <service category="ABI_OrderManager" name="ABI_OrderManager" description="ABI OrderManager Service">
+
+ <listeners>
+ <jms-listener name="JMS-Gateway" busidref="OrderManagerGateway" is-gateway="true" maxThreads="1"/>
+ <jbr-listener name="Http-Gateway" busidref="Http-1" is-gateway="true" maxThreads="1"/>
+ <jbr-listener name="Socket-Gateway" busidref="Socket-1" is-gateway="true" maxThreads="1"/>
+
+ <jms-listener name="JMS-ESBListener" busidref="OrderManagerService" maxThreads="1"/>
+ </listeners>
+ <actions>
+ <action name="print-before" class="org.jboss.soa.esb.actions.SystemPrintln">
+ <property name="message"
+ value="[Quickstart_webservice_bpel] Message before invoking 'ABI_OrderManager' endpoint"/>
+ </action>
+ <action name="JBossWSAdapter" class="org.jboss.soa.esb.actions.soap.SOAPProcessor">
+ <property name="jbossws-endpoint" value="ABI_OrderManager"/>
+ </action>
+ <action name="print-after" class="org.jboss.soa.esb.actions.SystemPrintln">
+ <property name="message"
+ value="[Quickstart_webservice_bpel] Message after invoking 'ABI_OrderManager' endpoint"/>
+ </action>
+ </actions>
+ </service>
+
+ <service category="ABI_Shipper" name="ABI_Shipper" description="ABI Shipper Service">
+
+ <listeners>
+ <jbr-listener name="Http-Gateway" busidref="Http-2" is-gateway="true" maxThreads="1"/>
+
+ <jms-listener name="JMS-ESBListener" busidref="ShipperService" maxThreads="1"/>
+ </listeners>
+ <actions>
+ <action name="print-before" class="org.jboss.soa.esb.actions.SystemPrintln">
+ <property name="message"
+ value="[Quickstart_webservice_bpel] Message before invoking 'ABI_Shipping' endpoint"/>
+ </action>
+ <action name="JBossWSAdapter" class="org.jboss.soa.esb.actions.soap.SOAPProcessor">
+ <property name="jbossws-endpoint" value="ABI_Shipping"/>
+ </action>
+ <action name="print-after" class="org.jboss.soa.esb.actions.SystemPrintln">
+ <property name="message"
+ value="[Quickstart_webservice_bpel] Message after invoking 'ABI_Shipping' endpoint"/>
+ </action>
+ </actions>
+ </service>
+
+ <service category="OrderNotificationService" name="OrderNotificationService"
+ description="Order Notification Service">
+ <listeners>
+ <fs-listener name="FileGateway" busidref="notificationChannel" is-gateway="true"
+ poll-frequency-seconds="10"/>
+ <jms-listener name="OrderNotificationService" busidref="OrderNotificationService"/>
+ </listeners>
+ <actions>
+ <!-- Transform the incoming CSV order approval record into a populated
+ com.activebpel.ordermanagement.SalesOrderNotification instance. -->
+ <action name="message-populator" class="org.jboss.soa.esb.actions.converters.SmooksTransformer">
+ <property name="from" value="OrderManager"/>
+ <property name="from-type" value="text/csv:orderApproval"/>
+ <property name="to" value="RetailerCallback"/>
+ <property name="to-type" value="text/xml:SendSalesOrderNotification"/>
+ </action>
+ <action name="print-after-transform" class="org.jboss.soa.esb.actions.SystemPrintln">
+ <property name="message" value="[Quickstart_webservice_bpel] Message after transform and before SOAPClient"/>
+ </action>
+ <!-- Inject the com.activebpel.ordermanagement.SalesOrderNotification instance
+ into the SOAPClient. SOAPClient will use SOAPUI to construct a soap request
+ template and will then use OGNL to populate the values (from the Smooks
+ EXTRACTED_BEANS_HASH) into the soap message. -->
+ <action name="soapui-client" class="org.jboss.soa.esb.actions.soap.SOAPClient">
+ <property name="wsdl" value="http://localhost:18080/active-bpel/services/RetailerCallback?wsdl"/>
+ <property name="operation" value="SendSalesOrderNotification"/>
+ <property name="paramsLocation" value="EXTRACTED_BEANS_HASH"/>
+ <property name="responseXStreamConfig">
+ <alias name="customerOrderAck" class="java.lang.Boolean" />
+ </property>
+ </action>
+ </actions>
+ </service>
+
+ </services>
+
+</jbossesb>
Modified: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/bpm_orchestration1/jbmq-queue-service.xml
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/bpm_orchestration1/jbmq-queue-service.xml 2009-01-21 14:47:17 UTC (rev 24849)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/bpm_orchestration1/jbmq-queue-service.xml 2009-01-21 15:38:08 UTC (rev 24850)
@@ -41,6 +41,7 @@
<depends optional-attribute-name="DestinationManager">
jboss.mq:service=DestinationManager
</depends>
+ </mbean>
<mbean code="org.jboss.mq.server.jmx.Queue"
name="jboss.esb.quickstart.destination:service=Queue,name=quickstart_bpm_orchestration1_results_Request_esb_reply">
<depends optional-attribute-name="DestinationManager">
Modified: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/business_ruleservice_ruleAgent/build.xml
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/business_ruleservice_ruleAgent/build.xml 2009-01-21 14:47:17 UTC (rev 24849)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/business_ruleservice_ruleAgent/build.xml 2009-01-21 15:38:08 UTC (rev 24850)
@@ -18,6 +18,8 @@
</filterset>
</copy>
</target>
+
+ <target name="config" depends="dependencies,quickstart-specific-assemblies"/>
<!-- Import the base Ant build script... -->
Modified: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/conf/base-build.xml
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/conf/base-build.xml 2009-01-21 14:47:17 UTC (rev 24849)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/conf/base-build.xml 2009-01-21 15:38:08 UTC (rev 24850)
@@ -24,7 +24,9 @@
<!-- Are we embedded in a jbossesb distribution hierarchy? -->
<condition property="hierarchy.jbossesb">
<and>
- <available file="${product.dir}/JBossORG-EULA.txt"/>
+ <or>
+ <available file="${product.dir}/JBossEULA.txt"/>
+ </or>
<not>
<or>
<available file="${product.dir}/server/default"/>
@@ -36,8 +38,10 @@
<!-- Are we embedded in a jbossesb-server distribution hierarchy? -->
<condition property="hierarchy.jbossesb-server">
<and>
- <available file="${product.dir}/JBossORG-EULA.txt"/>
<or>
+ <available file="${product.dir}/JBossEULA.txt"/>
+ </or>
+ <or>
<available file="${product.dir}/server/default"/>
<available file="${product.dir}/server/production"/>
</or>
@@ -73,9 +77,6 @@
<!-- ==================================================================== -->
<target name="messaging-config" depends="jbossesb-dependencies">
- <property name="org.jboss.esb.server.deploy.dir"
- value="${org.jboss.esb.server.server}/deploy"/>
-
<condition property="messaging.present">
<available file="${org.jboss.esb.server.deploy.dir}/jboss-messaging"/>
</condition>
@@ -128,29 +129,31 @@
<!-- Configure dependencies for jbossesb and source distributions -->
<target name="jbossesb-dependencies" depends="check-jbossesb-dist, qslib-dependencies, non-qslib-dependencies, jbossesb-source-dependencies, jbossesb-server-dependencies">
<property name="org.jboss.esb.server.server" location="${org.jboss.esb.server.home}/server/${org.jboss.esb.server.config}"/>
+ <property name="org.jboss.esb.server.deploy.dir" location="${org.jboss.esb.server.server}/deploy"/>
<path id="deployment-classpath">
- <fileset dir="${org.jboss.esb.server.server}/deploy/jbossesb.sar/lib" includes="*.jar"/>
+ <fileset dir="${org.jboss.esb.server.deploy.dir}/jbossesb.sar/lib" includes="*.jar"/>
<!-- jbossesb config -->
- <fileset dir="${org.jboss.esb.server.server}/deploy/jbossesb.esb" includes="*.jar"/>
- <pathelement location="${org.jboss.esb.server.server}/deploy/jbossesb.esb"/>
+ <fileset dir="${org.jboss.esb.server.deploy.dir}/jbossesb.esb" includes="*.jar"/>
+ <pathelement location="${org.jboss.esb.server.deploy.dir}/jbossesb.esb"/>
<!-- jbpm config -->
- <fileset dir="${org.jboss.esb.server.server}/deploy/jbpm.esb" includes="*.jar"/>
- <pathelement location="${org.jboss.esb.server.server}/deploy/jbpm.esb"/>
+ <fileset dir="${org.jboss.esb.server.deploy.dir}/jbpm.esb" includes="*.jar"/>
+ <pathelement location="${org.jboss.esb.server.deploy.dir}/jbpm.esb"/>
<pathelement location="${org.jboss.esb.server.server}/lib/cglib.jar"/>
<pathelement location="${org.jboss.esb.server.server}/lib/dom4j.jar"/>
+ <pathelement location="${org.jboss.esb.server.server}/lib/antlr.jar"/>
<!-- smooks config -->
- <fileset dir="${org.jboss.esb.server.server}/deploy/smooks.esb" includes="*.jar"/>
- <pathelement location="${org.jboss.esb.server.server}/deploy/smooks.esb"/>
+ <fileset dir="${org.jboss.esb.server.deploy.dir}/smooks.esb" includes="*.jar"/>
+ <pathelement location="${org.jboss.esb.server.deploy.dir}/smooks.esb"/>
<!-- jbrules config -->
- <fileset dir="${org.jboss.esb.server.server}/deploy/jbrules.esb" includes="*.jar"/>
- <pathelement location="${org.jboss.esb.server.server}/deploy/jbrules.esb"/>
+ <fileset dir="${org.jboss.esb.server.deploy.dir}/jbrules.esb" includes="*.jar"/>
+ <pathelement location="${org.jboss.esb.server.deploy.dir}/jbrules.esb"/>
<!-- spring config -->
- <fileset dir="${org.jboss.esb.server.server}/deploy/spring.esb" includes="*.jar"/>
- <pathelement location="${org.jboss.esb.server.server}/deploy/spring.esb"/>
+ <fileset dir="${org.jboss.esb.server.deploy.dir}/spring.esb" includes="*.jar"/>
+ <pathelement location="${org.jboss.esb.server.deploy.dir}/spring.esb"/>
<!-- soap config -->
- <fileset dir="${org.jboss.esb.server.server}/deploy/soap.esb" includes="*.jar"/>
- <pathelement location="${org.jboss.esb.server.server}/deploy/soap.esb"/>
+ <fileset dir="${org.jboss.esb.server.deploy.dir}/soap.esb" includes="*.jar"/>
+ <pathelement location="${org.jboss.esb.server.deploy.dir}/soap.esb"/>
<fileset dir="${org.jboss.esb.server.server}/lib" includes="activation.jar, mail.jar, jboss-ejb3x.jar"/>
<!-- general libs -->
<pathelement location="${org.jboss.esb.server.home}/lib/commons-logging.jar"/>
@@ -158,6 +161,19 @@
<pathelement location="${org.jboss.esb.server.home}/lib/jboss-system.jar"/>
<pathelement location="${org.jboss.esb.server.home}/lib/jboss-xml-binding.jar"/>
<pathelement location="${org.jboss.esb.server.server}/lib/jbossts-common.jar"/>
+ <pathelement location="${org.jboss.esb.server.server}/lib/quartz.jar"/>
+ <!-- includes for read only cache -->
+ <fileset dir="${org.jboss.esb.server.server}/lib" includes="jboss-cache*.jar"/>
+ <pathelement location="${org.jboss.esb.server.server}/lib/jgroups.jar"/>
+ <!-- includes for h2 -->
+ <fileset dir="${org.jboss.esb.server.server}/lib" includes="h2*.jar"/>
+ <!-- common client jars -->
+ <fileset dir="${org.jboss.esb.server.home}/client" includes="jaxb-api.jar jaxb-impl.jar jaxb-xjc.jar"/>
+ <fileset dir="${org.jboss.esb.server.home}/client" includes="jaxws-rt.jar jaxws-tools.jar jboss-jaxws.jar jboss-saaj.jar jbossws-common.jar jbossws-spi.jar"/>
+ <fileset dir="${org.jboss.esb.server.home}/client" includes="jbossall-client.jar"/>
+ <!-- common lib jars -->
+ <fileset dir="${org.jboss.esb.server.home}/lib" includes="commons-httpclient.jar"/>
+ <fileset dir="${org.jboss.esb.server.home}/lib/endorsed" includes="xalan.jar"/>
</path>
</target>
@@ -234,13 +250,13 @@
<fail unless="jbossesb-server-recognised" message="Could not detect embedded ESB configuration"/>
<condition property="org.jboss.esb.server.config"
+ value="production">
+ <isset property="jbossesb-server-production"/>
+ </condition>
+ <condition property="org.jboss.esb.server.config"
value="default">
<isset property="jbossesb-server-default"/>
</condition>
- <condition property="org.jboss.esb.server.config"
- value="production">
- <isset property="jbossesb-server-production"/>
- </condition>
<echo message="Defaulting to profile: ${org.jboss.esb.server.config}"/>
</target>
@@ -305,7 +321,7 @@
<fileset dir="${org.jboss.esb.server.server}/lib" includes="hibernate3.jar commons-collections.jar hsqldb.jar" /> <!-- Required for jbpm Client Code. -->
<fileset dir="${org.jboss.esb.server.server}/lib" includes="bsh.jar" /> <!-- Required for scripting Client Code. -->
<fileset dir="${org.jboss.esb.server.home}/lib/endorsed" includes="*.jar" /> <!-- Required for JMS Client Code. -->
- <fileset dir="${org.jboss.esb.server.server}/deploy/jboss-aop-jdk50.deployer" includes="jboss-aop-jdk50.jar" /> <!-- Required for JMS Client Code. -->
+ <fileset dir="${org.jboss.esb.server.deploy.dir}/jboss-aop-jdk50.deployer" includes="jboss-aop-jdk50.jar" /> <!-- Required for JMS Client Code. -->
<path refid="compile-classpath" />
<pathelement location="${pwd}/anttasks/classes" />
</path>
@@ -548,6 +564,11 @@
<fail unless="is-valid-jbr-version" message="Invalid version of JBossRemoting installed on target server. Please install version 2.2.2.SP2 or higher: http://repository.jboss.org/jboss/remoting/" />
</target>
+ <target name="assert-jgroups" depends="jbossesb-dependencies">
+ <available property="jgroups-available" file="${org.jboss.esb.server.server}/lib/jgroups.jar"/>
+ <fail unless="jgroups-available" message="Unfortunately this aspect requires jgroups in order to function correctly. Please target a server instance which contains jgroups.jar"/>
+ </target>
+
<!-- ==================================================================== -->
<!-- This section defines properties/targets to be overridden by the -->
<!-- quickstart specific build.xml file. -->
Modified: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/conf/quickstarts.properties-example
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/conf/quickstarts.properties-example 2009-01-21 14:47:17 UTC (rev 24849)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/conf/quickstarts.properties-example 2009-01-21 15:38:08 UTC (rev 24850)
@@ -5,7 +5,7 @@
##############################################################################################
# Location of your JBoss Application Server installation.
# Will override the same property name from install/deployment.properties
-#org.jboss.esb.server.home=${product.dir}/build/jbossesb-server-4.4.GA
+#org.jboss.esb.server.home=${product.dir}/build/jbossesb-server-4.5.GA
# JBossAS server name. If not set defaults to 'default'
# Will override the same property name from install/deployment.properties
Modified: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/custom_action/src/org/jboss/soa/esb/samples/quickstart/customaction/CustomBeanConfigAction.java
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/custom_action/src/org/jboss/soa/esb/samples/quickstart/customaction/CustomBeanConfigAction.java 2009-01-21 14:47:17 UTC (rev 24849)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/custom_action/src/org/jboss/soa/esb/samples/quickstart/customaction/CustomBeanConfigAction.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -33,6 +33,10 @@
private String information;
private Integer repeatCount;
+
+ private String serviceCategory;
+
+ private String serviceName;
public void setInformation(String information) {
this.information = information;
@@ -43,10 +47,21 @@
}
public Message process(Message message) throws ActionProcessingException {
- System.out.println("Repeat message: " + information + " " + repeatCount + " times:");
+ System.out.println("[" + serviceCategory + ":" + serviceName + "] Repeat message: " + information + " " + repeatCount + " times:");
for (int i=0; i < repeatCount; i++) {
System.out.println(information);
}
return message;
}
-}
\ No newline at end of file
+
+ public void setServiceCategory(final String serviceCategory)
+ {
+ this.serviceCategory = serviceCategory;
+ }
+
+ public void setServiceName(final String serviceName)
+ {
+ this.serviceName = serviceName;
+ }
+
+}
Copied: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/ejbprocessor (from rev 24846, labs/jbossesb/trunk/product/samples/quickstarts/ejbprocessor)
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/ejbprocessor/build.xml
===================================================================
--- labs/jbossesb/trunk/product/samples/quickstarts/ejbprocessor/build.xml 2009-01-21 09:35:03 UTC (rev 24846)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/ejbprocessor/build.xml 2009-01-21 15:38:08 UTC (rev 24850)
@@ -1,48 +0,0 @@
-<project name="Quickstart_EjbProcessor" default="run" basedir=".">
-
- <description>
- ${ant.project.name}
- ${line.separator}
- </description>
-
- <property name="ejb.jar" value="SimpleSLSB.jar"/>
-
- <!-- Import the base Ant build script... -->
- <import file="../conf/base-build.xml"/>
-
- <target name="runtest" depends="compile" description="sends a JMS message to queue/quickstart_ejbprocessor_Request_gw">
- <echo>Runs Test JMS Sender</echo>
- <java fork="yes" classname="org.jboss.soa.esb.samples.quickstart.ejbprocessor.test.SendJMSMessage" failonerror="true">
- <arg value="Hello EJBProcessor Service"/>
- <classpath refid="exec-classpath"/>
- </java>
- </target>
-
- <target name="sendesb" depends="compile"
- description="Will send an esb Message">
- <echo>Runs Test ESB Message Sender</echo>
- <java fork="yes" classname="org.jboss.soa.esb.samples.quickstart.ejbprocessor.test.SendEsbMessage" failonerror="true">
- <arg value="EJBProcessor"/> <!-- service category -->
- <arg value="SimpleService"/> <!-- service name -->
- <arg value="EJBProcessor quickstart - no Gateway"/> <!-- Message text -->
- <classpath refid="exec-classpath"/>
- </java>
- </target>
-
- <target name="quickstart-specific-checks">
- <antcall target="assert-ejb3-available"/>
- </target>
-
- <target name="quickstart-specific-assemblies">
- <property name="ejb.classes" location="${build.dir}/ejbclasses"/>
- <delete dir="${ejb.classes}" quiet="true"/>
- <mkdir dir="${ejb.classes}"/>
- <javac srcdir="${basedir}/ejb/src" destdir="${ejb.classes}" debug="true" deprecation="true">
- <classpath refid="compile-classpath" />
- </javac>
-
- <jar destfile="${build.dir}/${ejb.jar}">
- <fileset dir="${ejb.classes}"/>
- </jar>
- </target>
-</project>
Copied: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/ejbprocessor/build.xml (from rev 24846, labs/jbossesb/trunk/product/samples/quickstarts/ejbprocessor/build.xml)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/ejbprocessor/build.xml (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/ejbprocessor/build.xml 2009-01-21 15:38:08 UTC (rev 24850)
@@ -0,0 +1,48 @@
+<project name="Quickstart_EjbProcessor" default="run" basedir=".">
+
+ <description>
+ ${ant.project.name}
+ ${line.separator}
+ </description>
+
+ <property name="ejb.jar" value="SimpleSLSB.jar"/>
+
+ <!-- Import the base Ant build script... -->
+ <import file="../conf/base-build.xml"/>
+
+ <target name="runtest" depends="compile" description="sends a JMS message to queue/quickstart_ejbprocessor_Request_gw">
+ <echo>Runs Test JMS Sender</echo>
+ <java fork="yes" classname="org.jboss.soa.esb.samples.quickstart.ejbprocessor.test.SendJMSMessage" failonerror="true">
+ <arg value="Hello EJBProcessor Service"/>
+ <classpath refid="exec-classpath"/>
+ </java>
+ </target>
+
+ <target name="sendesb" depends="compile"
+ description="Will send an esb Message">
+ <echo>Runs Test ESB Message Sender</echo>
+ <java fork="yes" classname="org.jboss.soa.esb.samples.quickstart.ejbprocessor.test.SendEsbMessage" failonerror="true">
+ <arg value="EJBProcessor"/> <!-- service category -->
+ <arg value="SimpleService"/> <!-- service name -->
+ <arg value="EJBProcessor quickstart - no Gateway"/> <!-- Message text -->
+ <classpath refid="exec-classpath"/>
+ </java>
+ </target>
+
+ <target name="quickstart-specific-checks">
+ <antcall target="assert-ejb3-available"/>
+ </target>
+
+ <target name="quickstart-specific-assemblies">
+ <property name="ejb.classes" location="${build.dir}/ejbclasses"/>
+ <delete dir="${ejb.classes}" quiet="true"/>
+ <mkdir dir="${ejb.classes}"/>
+ <javac srcdir="${basedir}/ejb/src" destdir="${ejb.classes}" debug="true" deprecation="true">
+ <classpath refid="compile-classpath" />
+ </javac>
+
+ <jar destfile="${build.dir}/${ejb.jar}">
+ <fileset dir="${ejb.classes}"/>
+ </jar>
+ </target>
+</project>
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/ejbprocessor/deployment.xml
===================================================================
--- labs/jbossesb/trunk/product/samples/quickstarts/ejbprocessor/deployment.xml 2009-01-21 09:35:03 UTC (rev 24846)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/ejbprocessor/deployment.xml 2009-01-21 15:38:08 UTC (rev 24850)
@@ -1,6 +0,0 @@
-<jbossesb-deployment>
- <depends>jboss.esb:deployment=slsb.esb</depends>
- <depends>jboss.esb.quickstart.destination:service=Queue,name=quickstart_ejbprocessor_Request_esb</depends>
- <depends>jboss.esb.quickstart.destination:service=Queue,name=quickstart_ejbprocessor_Request_gw</depends>
- <depends>jboss.j2ee:jar=SimpleSLSB.jar,name=SimpleSLSB,service=EJB3</depends>
-</jbossesb-deployment>
Copied: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/ejbprocessor/deployment.xml (from rev 24846, labs/jbossesb/trunk/product/samples/quickstarts/ejbprocessor/deployment.xml)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/ejbprocessor/deployment.xml (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/ejbprocessor/deployment.xml 2009-01-21 15:38:08 UTC (rev 24850)
@@ -0,0 +1,6 @@
+<jbossesb-deployment>
+ <depends>jboss.esb:deployment=slsb.esb</depends>
+ <depends>jboss.esb.quickstart.destination:service=Queue,name=quickstart_ejbprocessor_Request_esb</depends>
+ <depends>jboss.esb.quickstart.destination:service=Queue,name=quickstart_ejbprocessor_Request_gw</depends>
+ <depends>jboss.j2ee:jar=SimpleSLSB.jar,name=SimpleSLSB,service=EJB3</depends>
+</jbossesb-deployment>
Copied: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/ejbprocessor/ejb (from rev 24846, labs/jbossesb/trunk/product/samples/quickstarts/ejbprocessor/ejb)
Copied: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/ejbprocessor/ejb/src (from rev 24846, labs/jbossesb/trunk/product/samples/quickstarts/ejbprocessor/ejb/src)
Copied: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/ejbprocessor/ejb/src/org (from rev 24846, labs/jbossesb/trunk/product/samples/quickstarts/ejbprocessor/ejb/src/org)
Copied: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/ejbprocessor/ejb/src/org/jboss (from rev 24846, labs/jbossesb/trunk/product/samples/quickstarts/ejbprocessor/ejb/src/org/jboss)
Copied: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/ejbprocessor/ejb/src/org/jboss/soa (from rev 24846, labs/jbossesb/trunk/product/samples/quickstarts/ejbprocessor/ejb/src/org/jboss/soa)
Copied: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/ejbprocessor/ejb/src/org/jboss/soa/esb (from rev 24846, labs/jbossesb/trunk/product/samples/quickstarts/ejbprocessor/ejb/src/org/jboss/soa/esb)
Copied: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/ejbprocessor/ejb/src/org/jboss/soa/esb/samples (from rev 24846, labs/jbossesb/trunk/product/samples/quickstarts/ejbprocessor/ejb/src/org/jboss/soa/esb/samples)
Copied: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/ejbprocessor/ejb/src/org/jboss/soa/esb/samples/quickstart (from rev 24846, labs/jbossesb/trunk/product/samples/quickstarts/ejbprocessor/ejb/src/org/jboss/soa/esb/samples/quickstart)
Copied: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/ejbprocessor/ejb/src/org/jboss/soa/esb/samples/quickstart/ejbprocessor (from rev 24846, labs/jbossesb/trunk/product/samples/quickstarts/ejbprocessor/ejb/src/org/jboss/soa/esb/samples/quickstart/ejbprocessor)
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/ejbprocessor/ejb/src/org/jboss/soa/esb/samples/quickstart/ejbprocessor/Simple.java
===================================================================
--- labs/jbossesb/trunk/product/samples/quickstarts/ejbprocessor/ejb/src/org/jboss/soa/esb/samples/quickstart/ejbprocessor/Simple.java 2009-01-21 09:35:03 UTC (rev 24846)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/ejbprocessor/ejb/src/org/jboss/soa/esb/samples/quickstart/ejbprocessor/Simple.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -1,33 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source Copyright 2008, Red Hat Middleware
- * LLC, and individual contributors by the @authors tag. See the copyright.txt
- * in the distribution for a full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it under the
- * terms of the GNU Lesser General Public License as published by the Free
- * Software Foundation; either version 2.1 of the License, or (at your option)
- * any later version.
- *
- * This software is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
- * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
- * details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this software; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA, or see the FSF
- * site: http://www.fsf.org.
- */
-package org.jboss.soa.esb.samples.quickstart.ejbprocessor;
-
-import javax.ejb.Local;
-
- at Local
-public interface Simple
-{
- void printMessage(final String message);
-
- String getMessage();
-
-}
-
Copied: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/ejbprocessor/ejb/src/org/jboss/soa/esb/samples/quickstart/ejbprocessor/Simple.java (from rev 24846, labs/jbossesb/trunk/product/samples/quickstarts/ejbprocessor/ejb/src/org/jboss/soa/esb/samples/quickstart/ejbprocessor/Simple.java)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/ejbprocessor/ejb/src/org/jboss/soa/esb/samples/quickstart/ejbprocessor/Simple.java (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/ejbprocessor/ejb/src/org/jboss/soa/esb/samples/quickstart/ejbprocessor/Simple.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -0,0 +1,33 @@
+/*
+ * JBoss, Home of Professional Open Source Copyright 2008, Red Hat Middleware
+ * LLC, and individual contributors by the @authors tag. See the copyright.txt
+ * in the distribution for a full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it under the
+ * terms of the GNU Lesser General Public License as published by the Free
+ * Software Foundation; either version 2.1 of the License, or (at your option)
+ * any later version.
+ *
+ * This software is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+ * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
+ * details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this software; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA, or see the FSF
+ * site: http://www.fsf.org.
+ */
+package org.jboss.soa.esb.samples.quickstart.ejbprocessor;
+
+import javax.ejb.Local;
+
+ at Local
+public interface Simple
+{
+ void printMessage(final String message);
+
+ String getMessage();
+
+}
+
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/ejbprocessor/ejb/src/org/jboss/soa/esb/samples/quickstart/ejbprocessor/SimpleRemote.java
===================================================================
--- labs/jbossesb/trunk/product/samples/quickstarts/ejbprocessor/ejb/src/org/jboss/soa/esb/samples/quickstart/ejbprocessor/SimpleRemote.java 2009-01-21 09:35:03 UTC (rev 24846)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/ejbprocessor/ejb/src/org/jboss/soa/esb/samples/quickstart/ejbprocessor/SimpleRemote.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -1,33 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source Copyright 2008, Red Hat Middleware
- * LLC, and individual contributors by the @authors tag. See the copyright.txt
- * in the distribution for a full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it under the
- * terms of the GNU Lesser General Public License as published by the Free
- * Software Foundation; either version 2.1 of the License, or (at your option)
- * any later version.
- *
- * This software is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
- * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
- * details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this software; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA, or see the FSF
- * site: http://www.fsf.org.
- */
-package org.jboss.soa.esb.samples.quickstart.ejbprocessor;
-
-import javax.ejb.Remote;
-
- at Remote
-public interface SimpleRemote
-{
- void printMessage(final String message);
-
- String getMessage();
-
-}
-
Copied: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/ejbprocessor/ejb/src/org/jboss/soa/esb/samples/quickstart/ejbprocessor/SimpleRemote.java (from rev 24846, labs/jbossesb/trunk/product/samples/quickstarts/ejbprocessor/ejb/src/org/jboss/soa/esb/samples/quickstart/ejbprocessor/SimpleRemote.java)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/ejbprocessor/ejb/src/org/jboss/soa/esb/samples/quickstart/ejbprocessor/SimpleRemote.java (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/ejbprocessor/ejb/src/org/jboss/soa/esb/samples/quickstart/ejbprocessor/SimpleRemote.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -0,0 +1,33 @@
+/*
+ * JBoss, Home of Professional Open Source Copyright 2008, Red Hat Middleware
+ * LLC, and individual contributors by the @authors tag. See the copyright.txt
+ * in the distribution for a full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it under the
+ * terms of the GNU Lesser General Public License as published by the Free
+ * Software Foundation; either version 2.1 of the License, or (at your option)
+ * any later version.
+ *
+ * This software is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+ * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
+ * details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this software; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA, or see the FSF
+ * site: http://www.fsf.org.
+ */
+package org.jboss.soa.esb.samples.quickstart.ejbprocessor;
+
+import javax.ejb.Remote;
+
+ at Remote
+public interface SimpleRemote
+{
+ void printMessage(final String message);
+
+ String getMessage();
+
+}
+
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/ejbprocessor/ejb/src/org/jboss/soa/esb/samples/quickstart/ejbprocessor/SimpleSLSB.java
===================================================================
--- labs/jbossesb/trunk/product/samples/quickstarts/ejbprocessor/ejb/src/org/jboss/soa/esb/samples/quickstart/ejbprocessor/SimpleSLSB.java 2009-01-21 09:35:03 UTC (rev 24846)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/ejbprocessor/ejb/src/org/jboss/soa/esb/samples/quickstart/ejbprocessor/SimpleSLSB.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -1,43 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source Copyright 2008, Red Hat Middleware
- * LLC, and individual contributors by the @authors tag. See the copyright.txt
- * in the distribution for a full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it under the
- * terms of the GNU Lesser General Public License as published by the Free
- * Software Foundation; either version 2.1 of the License, or (at your option)
- * any later version.
- *
- * This software is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
- * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
- * details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this software; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA, or see the FSF
- * site: http://www.fsf.org.
- */
-package org.jboss.soa.esb.samples.quickstart.ejbprocessor;
-
-import java.security.Principal;
-
-import javax.ejb.*;
-import javax.annotation.*;
-
- at Stateless
-public class SimpleSLSB implements SimpleRemote
-{
- public static final String RemoteJNDIName = SimpleSLSB.class.getSimpleName() + "/remote";
-
- public void printMessage(final String message)
- {
- System.out.println("SimpleSLSB printMessage : " + message);
- }
-
- public String getMessage()
- {
- return "Some text from SimpleSLSB";
- }
-}
-
Copied: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/ejbprocessor/ejb/src/org/jboss/soa/esb/samples/quickstart/ejbprocessor/SimpleSLSB.java (from rev 24846, labs/jbossesb/trunk/product/samples/quickstarts/ejbprocessor/ejb/src/org/jboss/soa/esb/samples/quickstart/ejbprocessor/SimpleSLSB.java)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/ejbprocessor/ejb/src/org/jboss/soa/esb/samples/quickstart/ejbprocessor/SimpleSLSB.java (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/ejbprocessor/ejb/src/org/jboss/soa/esb/samples/quickstart/ejbprocessor/SimpleSLSB.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -0,0 +1,43 @@
+/*
+ * JBoss, Home of Professional Open Source Copyright 2008, Red Hat Middleware
+ * LLC, and individual contributors by the @authors tag. See the copyright.txt
+ * in the distribution for a full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it under the
+ * terms of the GNU Lesser General Public License as published by the Free
+ * Software Foundation; either version 2.1 of the License, or (at your option)
+ * any later version.
+ *
+ * This software is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+ * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
+ * details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this software; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA, or see the FSF
+ * site: http://www.fsf.org.
+ */
+package org.jboss.soa.esb.samples.quickstart.ejbprocessor;
+
+import java.security.Principal;
+
+import javax.ejb.*;
+import javax.annotation.*;
+
+ at Stateless
+public class SimpleSLSB implements SimpleRemote
+{
+ public static final String RemoteJNDIName = SimpleSLSB.class.getSimpleName() + "/remote";
+
+ public void printMessage(final String message)
+ {
+ System.out.println("SimpleSLSB printMessage : " + message);
+ }
+
+ public String getMessage()
+ {
+ return "Some text from SimpleSLSB";
+ }
+}
+
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/ejbprocessor/jbm-queue-service.xml
===================================================================
--- labs/jbossesb/trunk/product/samples/quickstarts/ejbprocessor/jbm-queue-service.xml 2009-01-21 09:35:03 UTC (rev 24846)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/ejbprocessor/jbm-queue-service.xml 2009-01-21 15:38:08 UTC (rev 24850)
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<server>
- <mbean code="org.jboss.jms.server.destination.QueueService"
- name="jboss.esb.quickstart.destination:service=Queue,name=quickstart_ejbprocessor_Request_esb"
- xmbean-dd="xmdesc/Queue-xmbean.xml">
- <depends optional-attribute-name="ServerPeer">jboss.messaging:service=ServerPeer</depends>
- <depends>jboss.messaging:service=PostOffice</depends>
- </mbean>
- <mbean code="org.jboss.jms.server.destination.QueueService"
- name="jboss.esb.quickstart.destination:service=Queue,name=quickstart_ejbprocessor_Request_gw"
- xmbean-dd="xmdesc/Queue-xmbean.xml">
- <depends optional-attribute-name="ServerPeer">jboss.messaging:service=ServerPeer</depends>
- <depends>jboss.messaging:service=PostOffice</depends>
- </mbean>
- <mbean code="org.jboss.jms.server.destination.QueueService"
- name="jboss.esb.quickstart.destination:service=Queue,name=quickstart_ejbprocessor_Request_esb_reply"
- xmbean-dd="xmdesc/Queue-xmbean.xml">
- <depends optional-attribute-name="ServerPeer">jboss.messaging:service=ServerPeer</depends>
- <depends>jboss.messaging:service=PostOffice</depends>
- </mbean>
-
-</server>
Copied: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/ejbprocessor/jbm-queue-service.xml (from rev 24846, labs/jbossesb/trunk/product/samples/quickstarts/ejbprocessor/jbm-queue-service.xml)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/ejbprocessor/jbm-queue-service.xml (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/ejbprocessor/jbm-queue-service.xml 2009-01-21 15:38:08 UTC (rev 24850)
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<server>
+ <mbean code="org.jboss.jms.server.destination.QueueService"
+ name="jboss.esb.quickstart.destination:service=Queue,name=quickstart_ejbprocessor_Request_esb"
+ xmbean-dd="xmdesc/Queue-xmbean.xml">
+ <depends optional-attribute-name="ServerPeer">jboss.messaging:service=ServerPeer</depends>
+ <depends>jboss.messaging:service=PostOffice</depends>
+ </mbean>
+ <mbean code="org.jboss.jms.server.destination.QueueService"
+ name="jboss.esb.quickstart.destination:service=Queue,name=quickstart_ejbprocessor_Request_gw"
+ xmbean-dd="xmdesc/Queue-xmbean.xml">
+ <depends optional-attribute-name="ServerPeer">jboss.messaging:service=ServerPeer</depends>
+ <depends>jboss.messaging:service=PostOffice</depends>
+ </mbean>
+ <mbean code="org.jboss.jms.server.destination.QueueService"
+ name="jboss.esb.quickstart.destination:service=Queue,name=quickstart_ejbprocessor_Request_esb_reply"
+ xmbean-dd="xmdesc/Queue-xmbean.xml">
+ <depends optional-attribute-name="ServerPeer">jboss.messaging:service=ServerPeer</depends>
+ <depends>jboss.messaging:service=PostOffice</depends>
+ </mbean>
+
+</server>
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/ejbprocessor/jbmq-queue-service.xml
===================================================================
--- labs/jbossesb/trunk/product/samples/quickstarts/ejbprocessor/jbmq-queue-service.xml 2009-01-21 09:35:03 UTC (rev 24846)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/ejbprocessor/jbmq-queue-service.xml 2009-01-21 15:38:08 UTC (rev 24850)
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<server>
- <mbean code="org.jboss.mq.server.jmx.Queue"
- name="jboss.esb.quickstart.destination:service=Queue,name=quickstart_ejbprocessor_Request_esb">
- <depends optional-attribute-name="DestinationManager">
- jboss.mq:service=DestinationManager
- </depends>
- </mbean>
- <mbean code="org.jboss.mq.server.jmx.Queue"
- name="jboss.esb.quickstart.destination:service=Queue,name=quickstart_ejbprocessor_Request_gw">
- <depends optional-attribute-name="DestinationManager">
- jboss.mq:service=DestinationManager
- </depends>
- </mbean>
- <mbean code="org.jboss.mq.server.jmx.Queue"
- name="jboss.esb.quickstart.destination:service=Queue,name=quickstart_ejbprocessor_Request_esb_reply">
- <depends optional-attribute-name="DestinationManager">
- jboss.mq:service=DestinationManager
- </depends>
- </mbean>
-</server>
Copied: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/ejbprocessor/jbmq-queue-service.xml (from rev 24846, labs/jbossesb/trunk/product/samples/quickstarts/ejbprocessor/jbmq-queue-service.xml)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/ejbprocessor/jbmq-queue-service.xml (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/ejbprocessor/jbmq-queue-service.xml 2009-01-21 15:38:08 UTC (rev 24850)
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<server>
+ <mbean code="org.jboss.mq.server.jmx.Queue"
+ name="jboss.esb.quickstart.destination:service=Queue,name=quickstart_ejbprocessor_Request_esb">
+ <depends optional-attribute-name="DestinationManager">
+ jboss.mq:service=DestinationManager
+ </depends>
+ </mbean>
+ <mbean code="org.jboss.mq.server.jmx.Queue"
+ name="jboss.esb.quickstart.destination:service=Queue,name=quickstart_ejbprocessor_Request_gw">
+ <depends optional-attribute-name="DestinationManager">
+ jboss.mq:service=DestinationManager
+ </depends>
+ </mbean>
+ <mbean code="org.jboss.mq.server.jmx.Queue"
+ name="jboss.esb.quickstart.destination:service=Queue,name=quickstart_ejbprocessor_Request_esb_reply">
+ <depends optional-attribute-name="DestinationManager">
+ jboss.mq:service=DestinationManager
+ </depends>
+ </mbean>
+</server>
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/ejbprocessor/jboss-esb.xml
===================================================================
--- labs/jbossesb/trunk/product/samples/quickstarts/ejbprocessor/jboss-esb.xml 2009-01-21 09:35:03 UTC (rev 24846)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/ejbprocessor/jboss-esb.xml 2009-01-21 15:38:08 UTC (rev 24850)
@@ -1,59 +0,0 @@
-<?xml version = "1.0" encoding = "UTF-8"?>
-<jbossesb xmlns="http://anonsvn.labs.jboss.com/labs/jbossesb/trunk/product/etc/schemas/xml/jbossesb-1.0.1.xsd" parameterReloadSecs="5">
-
- <providers>
- <jms-provider name="JBM" connection-factory="ConnectionFactory">
- <jms-bus busid="quickstartGwChannel">
- <jms-message-filter dest-type="QUEUE" dest-name="queue/quickstart_ejbprocessor_Request_gw" />
- </jms-bus>
- <jms-bus busid="quickstartEsbChannel">
- <jms-message-filter dest-type="QUEUE" dest-name="queue/quickstart_ejbprocessor_Request_esb" />
- </jms-bus>
-
- </jms-provider>
- </providers>
-
- <services>
- <service category="EJBProcessor" name="SimpleService" description="Service that demonstrates calling EJBs">
-
- <listeners>
- <jms-listener name="JMS-Gateway" busidref="quickstartGwChannel" maxThreads="1" is-gateway="true" />
- <jms-listener name="helloWorld" busidref="quickstartEsbChannel" maxThreads="1" />
- </listeners>
-
- <actions mep="OneWay">
-
- <action name="EJBTestVoid" class="org.jboss.soa.esb.actions.EJBProcessor">
- <property name="ejb3" value="true" />
- <property name="method" value="printMessage" />
- <property name="jndi-name" value="SimpleSLSB/remote" />
- <property name="initial-context-factory" value="org.jnp.interfaces.NamingContextFactory" />
- <property name="provider-url" value="localhost:1099" />
- <property name="ejb-params">
- <arg0 type="java.lang.String">org.jboss.soa.esb.message.defaultEntry</arg0>
- </property>
- </action>
-
- <action name="EJBTestWithReturnValue" class="org.jboss.soa.esb.actions.EJBProcessor">
- <property name="ejb3" value="true" />
- <property name="method" value="getMessage" />
- <property name="jndi-name" value="SimpleSLSB/remote" />
- <property name="initial-context-factory" value="org.jnp.interfaces.NamingContextFactory" />
- <property name="provider-url" value="localhost:1099" />
- <property name="esb-out-var" value="org.jboss.soa.esb.message.defaultEntry"/>
- </action>
-
- <action name="debug" class="org.jboss.soa.esb.actions.SystemPrintln">
- <property name="printfull" value="false"/>
- <property name="message" value="Value from getMessage"/>
- </action>
-
- <!-- The next action is for Continuous Integration testing -->
- <action name="testStore" class="org.jboss.soa.esb.actions.TestMessageStore"/>
-
- </actions>
- </service>
-
- </services>
-
-</jbossesb>
Copied: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/ejbprocessor/jboss-esb.xml (from rev 24846, labs/jbossesb/trunk/product/samples/quickstarts/ejbprocessor/jboss-esb.xml)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/ejbprocessor/jboss-esb.xml (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/ejbprocessor/jboss-esb.xml 2009-01-21 15:38:08 UTC (rev 24850)
@@ -0,0 +1,59 @@
+<?xml version = "1.0" encoding = "UTF-8"?>
+<jbossesb xmlns="http://anonsvn.labs.jboss.com/labs/jbossesb/trunk/product/etc/schemas/xml/jbossesb-1.0.1.xsd" parameterReloadSecs="5">
+
+ <providers>
+ <jms-provider name="JBM" connection-factory="ConnectionFactory">
+ <jms-bus busid="quickstartGwChannel">
+ <jms-message-filter dest-type="QUEUE" dest-name="queue/quickstart_ejbprocessor_Request_gw" />
+ </jms-bus>
+ <jms-bus busid="quickstartEsbChannel">
+ <jms-message-filter dest-type="QUEUE" dest-name="queue/quickstart_ejbprocessor_Request_esb" />
+ </jms-bus>
+
+ </jms-provider>
+ </providers>
+
+ <services>
+ <service category="EJBProcessor" name="SimpleService" description="Service that demonstrates calling EJBs">
+
+ <listeners>
+ <jms-listener name="JMS-Gateway" busidref="quickstartGwChannel" maxThreads="1" is-gateway="true" />
+ <jms-listener name="helloWorld" busidref="quickstartEsbChannel" maxThreads="1" />
+ </listeners>
+
+ <actions mep="OneWay">
+
+ <action name="EJBTestVoid" class="org.jboss.soa.esb.actions.EJBProcessor">
+ <property name="ejb3" value="true" />
+ <property name="method" value="printMessage" />
+ <property name="jndi-name" value="SimpleSLSB/remote" />
+ <property name="initial-context-factory" value="org.jnp.interfaces.NamingContextFactory" />
+ <property name="provider-url" value="localhost:1099" />
+ <property name="ejb-params">
+ <arg0 type="java.lang.String">org.jboss.soa.esb.message.defaultEntry</arg0>
+ </property>
+ </action>
+
+ <action name="EJBTestWithReturnValue" class="org.jboss.soa.esb.actions.EJBProcessor">
+ <property name="ejb3" value="true" />
+ <property name="method" value="getMessage" />
+ <property name="jndi-name" value="SimpleSLSB/remote" />
+ <property name="initial-context-factory" value="org.jnp.interfaces.NamingContextFactory" />
+ <property name="provider-url" value="localhost:1099" />
+ <property name="esb-out-var" value="org.jboss.soa.esb.message.defaultEntry"/>
+ </action>
+
+ <action name="debug" class="org.jboss.soa.esb.actions.SystemPrintln">
+ <property name="printfull" value="false"/>
+ <property name="message" value="Value from getMessage"/>
+ </action>
+
+ <!-- The next action is for Continuous Integration testing -->
+ <action name="testStore" class="org.jboss.soa.esb.actions.TestMessageStore"/>
+
+ </actions>
+ </service>
+
+ </services>
+
+</jbossesb>
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/ejbprocessor/jbossesb-properties.xml
===================================================================
--- labs/jbossesb/trunk/product/samples/quickstarts/ejbprocessor/jbossesb-properties.xml 2009-01-21 09:35:03 UTC (rev 24846)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/ejbprocessor/jbossesb-properties.xml 2009-01-21 15:38:08 UTC (rev 24850)
@@ -1,91 +0,0 @@
-<?xml version="1.0" encoding="ISO-8859-1"?>
-<!--
- JBoss, Home of Professional Open Source
- Copyright 2006, JBoss Inc., and others contributors as indicated
- by the @authors tag. All rights reserved.
- See the copyright.txt in the distribution for a
- full listing of individual contributors.
- This copyrighted material is made available to anyone wishing to use,
- modify, copy, or redistribute it subject to the terms and conditions
- of the GNU Lesser General Public License, v. 2.1.
- This program is distributed in the hope that it will be useful, but WITHOUT A
- WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
- PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
- You should have received a copy of the GNU Lesser General Public License,
- v.2.1 along with this distribution; if not, write to the Free Software
- Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
- MA 02110-1301, USA.
-
- (C) 2005-2006,
- @author JBoss Inc.
--->
-<!-- $Id: jbossesb-unittest-properties.xml $ -->
-<!--
- These options are described in the JBossESB manual.
- Defaults are provided here for convenience only.
-
- Please read through this file prior to using the system, and consider
- updating the specified entries.
--->
-<esb
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:noNamespaceSchemaLocation="jbossesb-1_0.xsd">
- <properties name="core">
- <property name="org.jboss.soa.esb.jndi.server.type" value="jboss"/>
- <property name="org.jboss.soa.esb.jndi.server.url" value="localhost"/>
- <property name="org.jboss.soa.esb.persistence.connection.factory" value="org.jboss.internal.soa.esb.persistence.format.MessageStoreFactoryImpl"/>
- <property name="jboss.esb.invm.scope.default" value="NONE"/>
- </properties>
- <properties name="security">
- <property name="org.jboss.soa.esb.services.security.implementationClass" value="org.jboss.internal.soa.esb.services.security.OpenSSOSecuritySerivce"/>
- <property name="org.jboss.soa.esb.services.security.configUrl" value="/AMConfig.properties"/>
- </properties>
-
- <properties name="registry">
- <property name="org.jboss.soa.esb.registry.queryManagerURI"
- value="jnp://localhost:1099/InquiryService?org.apache.juddi.registry.rmi.Inquiry#inquire"/>
- <property name="org.jboss.soa.esb.registry.lifeCycleManagerURI"
- value="jnp://localhost:1099/PublishService?org.apache.juddi.registry.rmi.Publish#publish" />
- <property name="org.jboss.soa.esb.registry.implementationClass"
- value="org.jboss.internal.soa.esb.services.registry.JAXRRegistryImpl"/>
- <property name="org.jboss.soa.esb.registry.factoryClass"
- value="org.apache.ws.scout.registry.ConnectionFactoryImpl"/>
- <property name="org.jboss.soa.esb.registry.user"
- value="jbossesb"/>
- <property name="org.jboss.soa.esb.registry.password"
- value="password"/>
- <!-- the following parameter is scout specific to set the type of communication between scout and the UDDI (embedded, rmi, soap) -->
- <property name="org.jboss.soa.esb.scout.proxy.transportClass"
- value="org.apache.ws.scout.transport.RMITransport"/>
- </properties>
- <properties name="transports" depends="core">
- <property name="org.jboss.soa.esb.mail.smtp.host" value="localhost"/>
- <property name="org.jboss.soa.esb.mail.smtp.user" value="jbossesb"/>
- <property name="org.jboss.soa.esb.mail.smtp.password" value=""/>
- <property name="org.jboss.soa.esb.mail.smtp.port" value="25"/>
- </properties>
- <properties name="connection">
- <property name="min-pool-size" value="5"/>
- <property name="max-pool=size" value="10"/>
- <property name="blocking-timeout-millis" value="5000"/>
- <property name="abandoned-connection-timeout" value="10000"/>
- <property name="abandoned-connection-time-interval" value="30000"/>
- </properties>
- <properties name="dbstore">
- <property name="org.jboss.soa.esb.persistence.db.connection.url" value="jdbc:hsqldb:hsql://localhost:9001/"/>
- <property name="org.jboss.soa.esb.persistence.db.jdbc.driver" value="org.hsqldb.jdbcDriver"/>
- <property name="org.jboss.soa.esb.persistence.db.user" value="sa"/>
- <property name="org.jboss.soa.esb.persistence.db.pwd" value=""/>
- <property name="org.jboss.soa.esb.persistence.db.pool.initial.size" value="2"/>
- <property name="org.jboss.soa.esb.persistence.db.pool.min.size" value="2"/>
- <property name="org.jboss.soa.esb.persistence.db.pool.max.size" value="5"/>
- <!--table managed by pool to test for valid connections - created by pool automatically -->
- <property name="org.jboss.soa.esb.persistence.db.pool.test.table" value="pooltest"/>
- <!-- # of milliseconds to timeout waiting for a connection from pool -->
- <property name="org.jboss.soa.esb.persistence.db.pool.timeout.millis" value="5000"/>
- <property name="org.jboss.soa.esb.persistence.db.conn.manager" value="org.jboss.internal.soa.esb.persistence.manager.StandaloneConnectionManager"/>
- </properties>
- <properties name="messagerouting">
- <property name="org.jboss.soa.esb.routing.cbrClass" value="org.jboss.internal.soa.esb.services.routing.cbr.JBossRulesRouter"/>
- </properties>
-</esb>
Copied: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/ejbprocessor/jbossesb-properties.xml (from rev 24846, labs/jbossesb/trunk/product/samples/quickstarts/ejbprocessor/jbossesb-properties.xml)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/ejbprocessor/jbossesb-properties.xml (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/ejbprocessor/jbossesb-properties.xml 2009-01-21 15:38:08 UTC (rev 24850)
@@ -0,0 +1,91 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!--
+ JBoss, Home of Professional Open Source
+ Copyright 2006, JBoss Inc., and others contributors as indicated
+ by the @authors tag. All rights reserved.
+ See the copyright.txt in the distribution for a
+ full listing of individual contributors.
+ This copyrighted material is made available to anyone wishing to use,
+ modify, copy, or redistribute it subject to the terms and conditions
+ of the GNU Lesser General Public License, v. 2.1.
+ This program is distributed in the hope that it will be useful, but WITHOUT A
+ WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+ PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
+ You should have received a copy of the GNU Lesser General Public License,
+ v.2.1 along with this distribution; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ MA 02110-1301, USA.
+
+ (C) 2005-2006,
+ @author JBoss Inc.
+-->
+<!-- $Id: jbossesb-unittest-properties.xml $ -->
+<!--
+ These options are described in the JBossESB manual.
+ Defaults are provided here for convenience only.
+
+ Please read through this file prior to using the system, and consider
+ updating the specified entries.
+-->
+<esb
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:noNamespaceSchemaLocation="jbossesb-1_0.xsd">
+ <properties name="core">
+ <property name="org.jboss.soa.esb.jndi.server.type" value="jboss"/>
+ <property name="org.jboss.soa.esb.jndi.server.url" value="localhost"/>
+ <property name="org.jboss.soa.esb.persistence.connection.factory" value="org.jboss.internal.soa.esb.persistence.format.MessageStoreFactoryImpl"/>
+ <property name="jboss.esb.invm.scope.default" value="NONE"/>
+ </properties>
+ <properties name="security">
+ <property name="org.jboss.soa.esb.services.security.implementationClass" value="org.jboss.internal.soa.esb.services.security.OpenSSOSecuritySerivce"/>
+ <property name="org.jboss.soa.esb.services.security.configUrl" value="/AMConfig.properties"/>
+ </properties>
+
+ <properties name="registry">
+ <property name="org.jboss.soa.esb.registry.queryManagerURI"
+ value="jnp://localhost:1099/InquiryService?org.apache.juddi.registry.rmi.Inquiry#inquire"/>
+ <property name="org.jboss.soa.esb.registry.lifeCycleManagerURI"
+ value="jnp://localhost:1099/PublishService?org.apache.juddi.registry.rmi.Publish#publish" />
+ <property name="org.jboss.soa.esb.registry.implementationClass"
+ value="org.jboss.internal.soa.esb.services.registry.JAXRRegistryImpl"/>
+ <property name="org.jboss.soa.esb.registry.factoryClass"
+ value="org.apache.ws.scout.registry.ConnectionFactoryImpl"/>
+ <property name="org.jboss.soa.esb.registry.user"
+ value="jbossesb"/>
+ <property name="org.jboss.soa.esb.registry.password"
+ value="password"/>
+ <!-- the following parameter is scout specific to set the type of communication between scout and the UDDI (embedded, rmi, soap) -->
+ <property name="org.jboss.soa.esb.scout.proxy.transportClass"
+ value="org.apache.ws.scout.transport.RMITransport"/>
+ </properties>
+ <properties name="transports" depends="core">
+ <property name="org.jboss.soa.esb.mail.smtp.host" value="localhost"/>
+ <property name="org.jboss.soa.esb.mail.smtp.user" value="jbossesb"/>
+ <property name="org.jboss.soa.esb.mail.smtp.password" value=""/>
+ <property name="org.jboss.soa.esb.mail.smtp.port" value="25"/>
+ </properties>
+ <properties name="connection">
+ <property name="min-pool-size" value="5"/>
+ <property name="max-pool=size" value="10"/>
+ <property name="blocking-timeout-millis" value="5000"/>
+ <property name="abandoned-connection-timeout" value="10000"/>
+ <property name="abandoned-connection-time-interval" value="30000"/>
+ </properties>
+ <properties name="dbstore">
+ <property name="org.jboss.soa.esb.persistence.db.connection.url" value="jdbc:hsqldb:hsql://localhost:9001/"/>
+ <property name="org.jboss.soa.esb.persistence.db.jdbc.driver" value="org.hsqldb.jdbcDriver"/>
+ <property name="org.jboss.soa.esb.persistence.db.user" value="sa"/>
+ <property name="org.jboss.soa.esb.persistence.db.pwd" value=""/>
+ <property name="org.jboss.soa.esb.persistence.db.pool.initial.size" value="2"/>
+ <property name="org.jboss.soa.esb.persistence.db.pool.min.size" value="2"/>
+ <property name="org.jboss.soa.esb.persistence.db.pool.max.size" value="5"/>
+ <!--table managed by pool to test for valid connections - created by pool automatically -->
+ <property name="org.jboss.soa.esb.persistence.db.pool.test.table" value="pooltest"/>
+ <!-- # of milliseconds to timeout waiting for a connection from pool -->
+ <property name="org.jboss.soa.esb.persistence.db.pool.timeout.millis" value="5000"/>
+ <property name="org.jboss.soa.esb.persistence.db.conn.manager" value="org.jboss.internal.soa.esb.persistence.manager.StandaloneConnectionManager"/>
+ </properties>
+ <properties name="messagerouting">
+ <property name="org.jboss.soa.esb.routing.cbrClass" value="org.jboss.internal.soa.esb.services.routing.cbr.JBossRulesRouter"/>
+ </properties>
+</esb>
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/ejbprocessor/jndi.properties
===================================================================
--- labs/jbossesb/trunk/product/samples/quickstarts/ejbprocessor/jndi.properties 2009-01-21 09:35:03 UTC (rev 24846)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/ejbprocessor/jndi.properties 2009-01-21 15:38:08 UTC (rev 24850)
@@ -1,5 +0,0 @@
-java.naming.factory.initial=org.jnp.interfaces.NamingContextFactory
-java.naming.provider.url=jnp://localhost:1099
-java.naming.factory.url.pkgs=org.jboss.naming
-java.naming.factory.url.pkgs=org.jnp.interfaces
-
Copied: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/ejbprocessor/jndi.properties (from rev 24846, labs/jbossesb/trunk/product/samples/quickstarts/ejbprocessor/jndi.properties)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/ejbprocessor/jndi.properties (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/ejbprocessor/jndi.properties 2009-01-21 15:38:08 UTC (rev 24850)
@@ -0,0 +1,5 @@
+java.naming.factory.initial=org.jnp.interfaces.NamingContextFactory
+java.naming.provider.url=jnp://localhost:1099
+java.naming.factory.url.pkgs=org.jboss.naming
+java.naming.factory.url.pkgs=org.jnp.interfaces
+
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/ejbprocessor/juddi.properties
===================================================================
--- labs/jbossesb/trunk/product/samples/quickstarts/ejbprocessor/juddi.properties 2009-01-21 09:35:03 UTC (rev 24846)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/ejbprocessor/juddi.properties 2009-01-21 15:38:08 UTC (rev 24850)
@@ -1,69 +0,0 @@
-# jUDDI Registry Properties (used by RegistryServer)
-# see http://www.juddi.org for more information
-
-# The UDDI Operator Name
-juddi.operatorName = jUDDI.org
-
-# The i18n locale default codes
-juddi.i18n.languageCode = en
-juddi.i18n.countryCode = US
-
-# The UDDI DiscoveryURL Prefix
-juddi.discoveryURL = http://localhost:8080/juddi/uddiget.jsp?
-
-# The UDDI Operator Contact Email Address
-juddi.operatorEmailAddress = admin at juddi.org
-
-# The maximum name size and maximum number
-# of name elements allows in several of the
-# FindXxxx and SaveXxxx UDDI functions.
-juddi.maxNameLength=255
-juddi.maxNameElementsAllowed=5
-
-# The maximum number of UDDI artifacts allowed
-# per publisher. A value of '-1' indicates any
-# number of artifacts is valid (These values can be
-# overridden at the individual publisher level).
-juddi.maxBusinessesPerPublisher=25
-juddi.maxServicesPerBusiness=20
-juddi.maxBindingsPerService=10
-juddi.maxTModelsPerPublisher=100
-
-# jUDDI Authentication module to use
-juddi.auth = org.apache.juddi.auth.DefaultAuthenticator
-
-# jUDDI DataStore module currently to use
-juddi.dataStore = org.apache.juddi.datastore.jdbc.JDBCDataStore
-
-# use a dataSource (if set to false a direct
-# jdbc connection will be used.
-juddi.isUseDataSource=false
-juddi.jdbcDriver=com.mysql.jdbc.Driver
-juddi.jdbcUrl=jdbc:mysql://localhost:3306/juddi
-juddi.jdbcUsername=root
-juddi.jdbcPassword=admin
-# jUDDI DataSource to use
-# juddi.dataSource=java:comp/env/jdbc/MySqlDS
-
-# jUDDI UUIDGen implementation to use
-juddi.uuidgen = org.apache.juddi.uuidgen.DefaultUUIDGen
-
-# jUDDI Cryptor implementation to use
-juddi.cryptor = org.apache.juddi.cryptor.DefaultCryptor
-
-# jUDDI Validator to use
-juddi.validator=org.apache.juddi.validator.DefaultValidator
-
-# jUDDI Proxy Properties (used by RegistryProxy)
-juddi.proxy.adminURL = http://localhost:8080/juddi/admin
-juddi.proxy.inquiryURL = http://localhost:8080/juddi/inquiry
-juddi.proxy.publishURL = http://localhost:8080/juddi/publish
-juddi.proxy.transportClass = org.apache.juddi.proxy.AxisTransport
-juddi.proxy.securityProvider = com.sun.net.ssl.internal.ssl.Provider
-juddi.proxy.protocolHandler = com.sun.net.ssl.internal.www.protocol
-
-# JNDI settings (used by RMITransport)
-java.naming.factory.initial=org.jnp.interfaces.NamingContextFactory
-java.naming.provider.url=jnp://localhost:1099
-java.naming.factory.url.pkgs=org.jboss.naming
-
Copied: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/ejbprocessor/juddi.properties (from rev 24846, labs/jbossesb/trunk/product/samples/quickstarts/ejbprocessor/juddi.properties)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/ejbprocessor/juddi.properties (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/ejbprocessor/juddi.properties 2009-01-21 15:38:08 UTC (rev 24850)
@@ -0,0 +1,69 @@
+# jUDDI Registry Properties (used by RegistryServer)
+# see http://www.juddi.org for more information
+
+# The UDDI Operator Name
+juddi.operatorName = jUDDI.org
+
+# The i18n locale default codes
+juddi.i18n.languageCode = en
+juddi.i18n.countryCode = US
+
+# The UDDI DiscoveryURL Prefix
+juddi.discoveryURL = http://localhost:8080/juddi/uddiget.jsp?
+
+# The UDDI Operator Contact Email Address
+juddi.operatorEmailAddress = admin at juddi.org
+
+# The maximum name size and maximum number
+# of name elements allows in several of the
+# FindXxxx and SaveXxxx UDDI functions.
+juddi.maxNameLength=255
+juddi.maxNameElementsAllowed=5
+
+# The maximum number of UDDI artifacts allowed
+# per publisher. A value of '-1' indicates any
+# number of artifacts is valid (These values can be
+# overridden at the individual publisher level).
+juddi.maxBusinessesPerPublisher=25
+juddi.maxServicesPerBusiness=20
+juddi.maxBindingsPerService=10
+juddi.maxTModelsPerPublisher=100
+
+# jUDDI Authentication module to use
+juddi.auth = org.apache.juddi.auth.DefaultAuthenticator
+
+# jUDDI DataStore module currently to use
+juddi.dataStore = org.apache.juddi.datastore.jdbc.JDBCDataStore
+
+# use a dataSource (if set to false a direct
+# jdbc connection will be used.
+juddi.isUseDataSource=false
+juddi.jdbcDriver=com.mysql.jdbc.Driver
+juddi.jdbcUrl=jdbc:mysql://localhost:3306/juddi
+juddi.jdbcUsername=root
+juddi.jdbcPassword=admin
+# jUDDI DataSource to use
+# juddi.dataSource=java:comp/env/jdbc/MySqlDS
+
+# jUDDI UUIDGen implementation to use
+juddi.uuidgen = org.apache.juddi.uuidgen.DefaultUUIDGen
+
+# jUDDI Cryptor implementation to use
+juddi.cryptor = org.apache.juddi.cryptor.DefaultCryptor
+
+# jUDDI Validator to use
+juddi.validator=org.apache.juddi.validator.DefaultValidator
+
+# jUDDI Proxy Properties (used by RegistryProxy)
+juddi.proxy.adminURL = http://localhost:8080/juddi/admin
+juddi.proxy.inquiryURL = http://localhost:8080/juddi/inquiry
+juddi.proxy.publishURL = http://localhost:8080/juddi/publish
+juddi.proxy.transportClass = org.apache.juddi.proxy.AxisTransport
+juddi.proxy.securityProvider = com.sun.net.ssl.internal.ssl.Provider
+juddi.proxy.protocolHandler = com.sun.net.ssl.internal.www.protocol
+
+# JNDI settings (used by RMITransport)
+java.naming.factory.initial=org.jnp.interfaces.NamingContextFactory
+java.naming.provider.url=jnp://localhost:1099
+java.naming.factory.url.pkgs=org.jboss.naming
+
Copied: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/ejbprocessor/lib (from rev 24846, labs/jbossesb/trunk/product/samples/quickstarts/ejbprocessor/lib)
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/ejbprocessor/log4j.xml
===================================================================
--- labs/jbossesb/trunk/product/samples/quickstarts/ejbprocessor/log4j.xml 2009-01-21 09:35:03 UTC (rev 24846)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/ejbprocessor/log4j.xml 2009-01-21 15:38:08 UTC (rev 24850)
@@ -1,79 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
-
-<!-- ===================================================================== -->
-<!-- -->
-<!-- Log4j Configuration -->
-<!-- -->
-<!-- ===================================================================== -->
-
-<!-- $Id: log4j.xml,v 1.26.2.5 2005/09/15 09:31:02 dimitris Exp $ -->
-
-<!--
- | For more configuration infromation and examples see the Jakarta Log4j
- | owebsite: http://jakarta.apache.org/log4j
- -->
-
-<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/" debug="false">
-
- <!-- ============================== -->
- <!-- Append messages to the console -->
- <!-- ============================== -->
-
- <appender name="CONSOLE" class="org.apache.log4j.ConsoleAppender">
- <errorHandler class="org.jboss.logging.util.OnlyOnceErrorHandler"/>
- <param name="Target" value="System.out"/>
- <param name="Threshold" value="INFO"/>
-
- <layout class="org.apache.log4j.PatternLayout">
- <!-- The default pattern: Date Priority [Category] Message\n -->
- <param name="ConversionPattern" value="%d{ABSOLUTE} %-5p [%t][%c{1}] %m%n"/>
- </layout>
- </appender>
-
- <!-- ================================= -->
- <!-- Preserve messages in a local file -->
- <!-- ================================= -->
-
- <!-- A size based file rolling appender -->
- <appender name="FILE" class="org.jboss.logging.appender.RollingFileAppender">
- <errorHandler class="org.jboss.logging.util.OnlyOnceErrorHandler"/>
- <param name="File" value="./listener.log"/>
- <param name="Append" value="false"/>
- <param name="MaxFileSize" value="500KB"/>
- <param name="MaxBackupIndex" value="1"/>
-
- <layout class="org.apache.log4j.PatternLayout">
- <param name="ConversionPattern" value="%d %-5p [%t][%c] %m%n"/>
- </layout>
- </appender>
-
- <!-- ================ -->
- <!-- Limit categories -->
- <!-- ================ -->
-
- <category name="org.jboss">
- <priority value="WARN"/>
- </category>
- <category name="org.jboss.soa.esb">
- <priority value="ERROR"/>
- </category>
- <category name="org.jboss.internal.soa.esb">
- <priority value="ERROR"/>
- </category>
- <category name="org.apache">
- <priority value="ERROR"/>
- </category>
- <category name="quickstart">
- <priority value="DEBUG"/>
- </category>
- <!-- ======================= -->
- <!-- Setup the Root category -->
- <!-- ======================= -->
-
- <root>
- <appender-ref ref="CONSOLE"/>
- <appender-ref ref="FILE"/>
- </root>
-
-</log4j:configuration>
Copied: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/ejbprocessor/log4j.xml (from rev 24846, labs/jbossesb/trunk/product/samples/quickstarts/ejbprocessor/log4j.xml)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/ejbprocessor/log4j.xml (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/ejbprocessor/log4j.xml 2009-01-21 15:38:08 UTC (rev 24850)
@@ -0,0 +1,79 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
+
+<!-- ===================================================================== -->
+<!-- -->
+<!-- Log4j Configuration -->
+<!-- -->
+<!-- ===================================================================== -->
+
+<!-- $Id: log4j.xml,v 1.26.2.5 2005/09/15 09:31:02 dimitris Exp $ -->
+
+<!--
+ | For more configuration infromation and examples see the Jakarta Log4j
+ | owebsite: http://jakarta.apache.org/log4j
+ -->
+
+<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/" debug="false">
+
+ <!-- ============================== -->
+ <!-- Append messages to the console -->
+ <!-- ============================== -->
+
+ <appender name="CONSOLE" class="org.apache.log4j.ConsoleAppender">
+ <errorHandler class="org.jboss.logging.util.OnlyOnceErrorHandler"/>
+ <param name="Target" value="System.out"/>
+ <param name="Threshold" value="INFO"/>
+
+ <layout class="org.apache.log4j.PatternLayout">
+ <!-- The default pattern: Date Priority [Category] Message\n -->
+ <param name="ConversionPattern" value="%d{ABSOLUTE} %-5p [%t][%c{1}] %m%n"/>
+ </layout>
+ </appender>
+
+ <!-- ================================= -->
+ <!-- Preserve messages in a local file -->
+ <!-- ================================= -->
+
+ <!-- A size based file rolling appender -->
+ <appender name="FILE" class="org.jboss.logging.appender.RollingFileAppender">
+ <errorHandler class="org.jboss.logging.util.OnlyOnceErrorHandler"/>
+ <param name="File" value="./listener.log"/>
+ <param name="Append" value="false"/>
+ <param name="MaxFileSize" value="500KB"/>
+ <param name="MaxBackupIndex" value="1"/>
+
+ <layout class="org.apache.log4j.PatternLayout">
+ <param name="ConversionPattern" value="%d %-5p [%t][%c] %m%n"/>
+ </layout>
+ </appender>
+
+ <!-- ================ -->
+ <!-- Limit categories -->
+ <!-- ================ -->
+
+ <category name="org.jboss">
+ <priority value="WARN"/>
+ </category>
+ <category name="org.jboss.soa.esb">
+ <priority value="ERROR"/>
+ </category>
+ <category name="org.jboss.internal.soa.esb">
+ <priority value="ERROR"/>
+ </category>
+ <category name="org.apache">
+ <priority value="ERROR"/>
+ </category>
+ <category name="quickstart">
+ <priority value="DEBUG"/>
+ </category>
+ <!-- ======================= -->
+ <!-- Setup the Root category -->
+ <!-- ======================= -->
+
+ <root>
+ <appender-ref ref="CONSOLE"/>
+ <appender-ref ref="FILE"/>
+ </root>
+
+</log4j:configuration>
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/ejbprocessor/readme.txt
===================================================================
--- labs/jbossesb/trunk/product/samples/quickstarts/ejbprocessor/readme.txt 2009-01-21 09:35:03 UTC (rev 24846)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/ejbprocessor/readme.txt 2009-01-21 15:38:08 UTC (rev 24850)
@@ -1,31 +0,0 @@
-Overview:
-=========
- The purpose of the ejbprocesser quickstart is to demonstrate the EJBProcessor action.
- The quickstart will use the EJBProcessor to call two methods on a Stateless Session Bean(SLSB).
- The first call will invoke a method that takes arguments and the second call will
- invoke a method that returns a value.
-
- Note, that this quickstart requires an EJB container/deployer to run.
-
-Running this quickstart:
-========================
- Please refer to 'ant help-quickstarts' for prerequisites about the quickstarts
- and a more detailed descripton of the different ways to run the quickstarts.
-
-To Run '.esb' archive mode with jbossesb-server:
-===========================
- 1. Type 'ant deploy'.
- 2. Type 'ant runtest' -- invoke service by sending a JMS Message to gateway
- 3. Type 'ant sendesb' -- invoke service directly
- 4. Type 'ant undeploy'
-
-What to look for in this quickstart
-===================================
- ejb:
- This directory contains the Statless Session Bean used in this example.
-
- Expected output:
- 10:54:13,111 INFO [STDOUT] SimpleSLSB printMessage : Hello EJBProcessor Service
- 10:54:13,113 INFO [STDOUT] Value from getMessage:
- 10:54:13,113 INFO [STDOUT] [Some text from SimpleSLSB].
-
Copied: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/ejbprocessor/readme.txt (from rev 24846, labs/jbossesb/trunk/product/samples/quickstarts/ejbprocessor/readme.txt)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/ejbprocessor/readme.txt (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/ejbprocessor/readme.txt 2009-01-21 15:38:08 UTC (rev 24850)
@@ -0,0 +1,31 @@
+Overview:
+=========
+ The purpose of the ejbprocesser quickstart is to demonstrate the EJBProcessor action.
+ The quickstart will use the EJBProcessor to call two methods on a Stateless Session Bean(SLSB).
+ The first call will invoke a method that takes arguments and the second call will
+ invoke a method that returns a value.
+
+ Note, that this quickstart requires an EJB container/deployer to run.
+
+Running this quickstart:
+========================
+ Please refer to 'ant help-quickstarts' for prerequisites about the quickstarts
+ and a more detailed descripton of the different ways to run the quickstarts.
+
+To Run '.esb' archive mode with jbossesb-server:
+===========================
+ 1. Type 'ant deploy'.
+ 2. Type 'ant runtest' -- invoke service by sending a JMS Message to gateway
+ 3. Type 'ant sendesb' -- invoke service directly
+ 4. Type 'ant undeploy'
+
+What to look for in this quickstart
+===================================
+ ejb:
+ This directory contains the Statless Session Bean used in this example.
+
+ Expected output:
+ 10:54:13,111 INFO [STDOUT] SimpleSLSB printMessage : Hello EJBProcessor Service
+ 10:54:13,113 INFO [STDOUT] Value from getMessage:
+ 10:54:13,113 INFO [STDOUT] [Some text from SimpleSLSB].
+
Copied: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/ejbprocessor/src (from rev 24846, labs/jbossesb/trunk/product/samples/quickstarts/ejbprocessor/src)
Copied: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/ejbprocessor/src/org (from rev 24846, labs/jbossesb/trunk/product/samples/quickstarts/ejbprocessor/src/org)
Copied: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/ejbprocessor/src/org/jboss (from rev 24846, labs/jbossesb/trunk/product/samples/quickstarts/ejbprocessor/src/org/jboss)
Copied: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/ejbprocessor/src/org/jboss/soa (from rev 24846, labs/jbossesb/trunk/product/samples/quickstarts/ejbprocessor/src/org/jboss/soa)
Copied: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/ejbprocessor/src/org/jboss/soa/esb (from rev 24846, labs/jbossesb/trunk/product/samples/quickstarts/ejbprocessor/src/org/jboss/soa/esb)
Copied: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/ejbprocessor/src/org/jboss/soa/esb/samples (from rev 24846, labs/jbossesb/trunk/product/samples/quickstarts/ejbprocessor/src/org/jboss/soa/esb/samples)
Copied: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/ejbprocessor/src/org/jboss/soa/esb/samples/quickstart (from rev 24846, labs/jbossesb/trunk/product/samples/quickstarts/ejbprocessor/src/org/jboss/soa/esb/samples/quickstart)
Copied: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/ejbprocessor/src/org/jboss/soa/esb/samples/quickstart/ejbprocessor (from rev 24846, labs/jbossesb/trunk/product/samples/quickstarts/ejbprocessor/src/org/jboss/soa/esb/samples/quickstart/ejbprocessor)
Copied: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/ejbprocessor/src/org/jboss/soa/esb/samples/quickstart/ejbprocessor/test (from rev 24846, labs/jbossesb/trunk/product/samples/quickstarts/ejbprocessor/src/org/jboss/soa/esb/samples/quickstart/ejbprocessor/test)
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/ejbprocessor/src/org/jboss/soa/esb/samples/quickstart/ejbprocessor/test/SendEsbMessage.java
===================================================================
--- labs/jbossesb/trunk/product/samples/quickstarts/ejbprocessor/src/org/jboss/soa/esb/samples/quickstart/ejbprocessor/test/SendEsbMessage.java 2009-01-21 09:35:03 UTC (rev 24846)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/ejbprocessor/src/org/jboss/soa/esb/samples/quickstart/ejbprocessor/test/SendEsbMessage.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -1,59 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2006, JBoss Inc., and individual contributors as indicated
- * by the @authors tag. See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
-
-package org.jboss.soa.esb.samples.quickstart.ejbprocessor.test;
-
-import org.jboss.soa.esb.message.Message;
-import org.jboss.soa.esb.message.format.MessageFactory;
-import org.jboss.soa.esb.client.ServiceInvoker;
-
-/**
- * Standalone class with to send ESB messages to a 'known' [category,name].
- * <p/> arg0 - service category
- * <br/>arg1 - service name
- * <br/>arg2 - Text of message to send
- *
- * @author <a href="mailto:schifest at heuristica.com.ar">schifest at heuristica.com.ar</a>
- * @since Version 4.0
- *
- */
-public class SendEsbMessage
-{
- public static void main(String args[]) throws Exception
- {
-// Setting the ConnectionFactory such that it will use scout
- System.setProperty("javax.xml.registry.ConnectionFactoryClass","org.apache.ws.scout.registry.ConnectionFactoryImpl");
-
- if (args.length < 3)
- {
- System.out.println("Usage SendEsbMessage <category> <name> <text to send>");
- }
-
- Message esbMessage = MessageFactory.getInstance().getMessage();
-
- esbMessage.getBody().add(args[2]);
-
- new ServiceInvoker(args[0], args[1]).deliverAsync(esbMessage);
-
- }
-
-}
Copied: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/ejbprocessor/src/org/jboss/soa/esb/samples/quickstart/ejbprocessor/test/SendEsbMessage.java (from rev 24846, labs/jbossesb/trunk/product/samples/quickstarts/ejbprocessor/src/org/jboss/soa/esb/samples/quickstart/ejbprocessor/test/SendEsbMessage.java)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/ejbprocessor/src/org/jboss/soa/esb/samples/quickstart/ejbprocessor/test/SendEsbMessage.java (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/ejbprocessor/src/org/jboss/soa/esb/samples/quickstart/ejbprocessor/test/SendEsbMessage.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -0,0 +1,59 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+
+package org.jboss.soa.esb.samples.quickstart.ejbprocessor.test;
+
+import org.jboss.soa.esb.message.Message;
+import org.jboss.soa.esb.message.format.MessageFactory;
+import org.jboss.soa.esb.client.ServiceInvoker;
+
+/**
+ * Standalone class with to send ESB messages to a 'known' [category,name].
+ * <p/> arg0 - service category
+ * <br/>arg1 - service name
+ * <br/>arg2 - Text of message to send
+ *
+ * @author <a href="mailto:schifest at heuristica.com.ar">schifest at heuristica.com.ar</a>
+ * @since Version 4.0
+ *
+ */
+public class SendEsbMessage
+{
+ public static void main(String args[]) throws Exception
+ {
+// Setting the ConnectionFactory such that it will use scout
+ System.setProperty("javax.xml.registry.ConnectionFactoryClass","org.apache.ws.scout.registry.ConnectionFactoryImpl");
+
+ if (args.length < 3)
+ {
+ System.out.println("Usage SendEsbMessage <category> <name> <text to send>");
+ }
+
+ Message esbMessage = MessageFactory.getInstance().getMessage();
+
+ esbMessage.getBody().add(args[2]);
+
+ new ServiceInvoker(args[0], args[1]).deliverAsync(esbMessage);
+
+ }
+
+}
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/ejbprocessor/src/org/jboss/soa/esb/samples/quickstart/ejbprocessor/test/SendJMSMessage.java
===================================================================
--- labs/jbossesb/trunk/product/samples/quickstarts/ejbprocessor/src/org/jboss/soa/esb/samples/quickstart/ejbprocessor/test/SendJMSMessage.java 2009-01-21 09:35:03 UTC (rev 24846)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/ejbprocessor/src/org/jboss/soa/esb/samples/quickstart/ejbprocessor/test/SendJMSMessage.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -1,81 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2006, JBoss Inc., and others contributors as indicated
- * by the @authors tag. All rights reserved.
- * See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- * This copyrighted material is made available to anyone wishing to use,
- * modify, copy, or redistribute it subject to the terms and conditions
- * of the GNU Lesser General Public License, v. 2.1.
- * This program is distributed in the hope that it will be useful, but WITHOUT A
- * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
- * PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
- * You should have received a copy of the GNU Lesser General Public License,
- * v.2.1 along with this distribution; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
- * MA 02110-1301, USA.
- *
- * (C) 2005-2006,
- * @author JBoss Inc.
- */
-package org.jboss.soa.esb.samples.quickstart.ejbprocessor.test;
-
-import java.util.Properties;
-
-import javax.jms.JMSException;
-import javax.jms.ObjectMessage;
-import javax.jms.Queue;
-import javax.jms.QueueConnection;
-import javax.jms.QueueConnectionFactory;
-import javax.jms.QueueSender;
-import javax.jms.QueueSession;
-import javax.naming.Context;
-import javax.naming.InitialContext;
-import javax.naming.NamingException;
-
-public class SendJMSMessage {
- QueueConnection conn;
- QueueSession session;
- Queue que;
-
-
- public void setupConnection() throws JMSException, NamingException
- {
- InitialContext iniCtx = new InitialContext();
-
- Object tmp = iniCtx.lookup("ConnectionFactory");
- QueueConnectionFactory qcf = (QueueConnectionFactory) tmp;
- conn = qcf.createQueueConnection();
- que = (Queue) iniCtx.lookup("queue/quickstart_ejbprocessor_Request_gw");
- session = conn.createQueueSession(false, QueueSession.AUTO_ACKNOWLEDGE);
- conn.start();
- System.out.println("Connection Started");
- }
-
- public void stop() throws JMSException
- {
- conn.stop();
- session.close();
- conn.close();
- }
-
- public void sendAMessage(String msg) throws JMSException {
-
- QueueSender send = session.createSender(que);
- ObjectMessage tm = session.createObjectMessage(msg);
-
- send.send(tm);
- send.close();
- }
-
-
- public static void main(String args[]) throws Exception
- {
- SendJMSMessage sm = new SendJMSMessage();
- sm.setupConnection();
- sm.sendAMessage(args[0]);
- sm.stop();
-
- }
-
-}
Copied: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/ejbprocessor/src/org/jboss/soa/esb/samples/quickstart/ejbprocessor/test/SendJMSMessage.java (from rev 24846, labs/jbossesb/trunk/product/samples/quickstarts/ejbprocessor/src/org/jboss/soa/esb/samples/quickstart/ejbprocessor/test/SendJMSMessage.java)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/ejbprocessor/src/org/jboss/soa/esb/samples/quickstart/ejbprocessor/test/SendJMSMessage.java (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/ejbprocessor/src/org/jboss/soa/esb/samples/quickstart/ejbprocessor/test/SendJMSMessage.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -0,0 +1,81 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and others contributors as indicated
+ * by the @authors tag. All rights reserved.
+ * See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License, v. 2.1.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+ * PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
+ * You should have received a copy of the GNU Lesser General Public License,
+ * v.2.1 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301, USA.
+ *
+ * (C) 2005-2006,
+ * @author JBoss Inc.
+ */
+package org.jboss.soa.esb.samples.quickstart.ejbprocessor.test;
+
+import java.util.Properties;
+
+import javax.jms.JMSException;
+import javax.jms.ObjectMessage;
+import javax.jms.Queue;
+import javax.jms.QueueConnection;
+import javax.jms.QueueConnectionFactory;
+import javax.jms.QueueSender;
+import javax.jms.QueueSession;
+import javax.naming.Context;
+import javax.naming.InitialContext;
+import javax.naming.NamingException;
+
+public class SendJMSMessage {
+ QueueConnection conn;
+ QueueSession session;
+ Queue que;
+
+
+ public void setupConnection() throws JMSException, NamingException
+ {
+ InitialContext iniCtx = new InitialContext();
+
+ Object tmp = iniCtx.lookup("ConnectionFactory");
+ QueueConnectionFactory qcf = (QueueConnectionFactory) tmp;
+ conn = qcf.createQueueConnection();
+ que = (Queue) iniCtx.lookup("queue/quickstart_ejbprocessor_Request_gw");
+ session = conn.createQueueSession(false, QueueSession.AUTO_ACKNOWLEDGE);
+ conn.start();
+ System.out.println("Connection Started");
+ }
+
+ public void stop() throws JMSException
+ {
+ conn.stop();
+ session.close();
+ conn.close();
+ }
+
+ public void sendAMessage(String msg) throws JMSException {
+
+ QueueSender send = session.createSender(que);
+ ObjectMessage tm = session.createObjectMessage(msg);
+
+ send.send(tm);
+ send.close();
+ }
+
+
+ public static void main(String args[]) throws Exception
+ {
+ SendJMSMessage sm = new SendJMSMessage();
+ sm.setupConnection();
+ sm.sendAMessage(args[0]);
+ sm.stop();
+
+ }
+
+}
Modified: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/helloworld_action/oracle-aq/readme.txt
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/helloworld_action/oracle-aq/readme.txt 2009-01-21 14:47:17 UTC (rev 24849)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/helloworld_action/oracle-aq/readme.txt 2009-01-21 15:38:08 UTC (rev 24850)
@@ -4,22 +4,22 @@
ACTION_REQUEST, B and HELLO_WORLD_ACTION, make sure to set
the payload type to Object: SYS, AQ$_JMS_MESSAGE.
-2. Edit the jndi.properties file to reflect your database connection settings
+2. Edit the jboss-esb.xml file to reflect your database connection settings
3. Copy the jndi.properties and the jboss-esb.xml in the helloworld_action directory.
-4. From the lib/ext/jms/oracleaq directory copy the following jars in to the
+4. Follow the instructions in the readme.txt within lib/ext/jms/oracleaq and place the following jars in the
helloworld_action/lib directory
- 26747 Mar 18 18:16 asm.jar
- 286330 Mar 18 18:16 cglib-2.1_2jboss.jar
- 120342 Aug 4 2006 mockejb.jar
- 8757 Apr 4 14:13 org.jboss.soa.esb.oracle.aq-4.2.MR2.jar
+ asm.jar
+ cglib-2.1_2jboss.jar
+ mockejb.jar
+ org.jboss.soa.esb.oracle.aq.<version>.jar
and obtain the following jars from your Oracle DB install:
- 772466 Mar 27 11:14 aqapi13.jar (from oracle)
-1397543 Mar 27 11:13 ojdbc14.jar (from oracle)
+ aqapi13.jar (from oracle)
+ ojdbc14.jar (from oracle)
Note that
@@ -28,7 +28,16 @@
2. Oracle AQ does not have a JNDI provider and it is common to register
Queues in an LDAP. Here we chose to register the Queues to MockContext
which is why you need the mockejb.jar, as well as the asm and cglib jars
- that it depends on. The org.jboss.soa.esb.oracle.aq-4.2.MR2.jar plugin
+ that it depends on. The org.jboss.soa.esb.oracle.aq.<version>.MR2.jar plugin
does the actual work of registering. Registering to JNP proved not
possible because of code in the Oracle API to support option 1, the LDAP
- registration.
\ No newline at end of file
+ registration.
+
+
+The following can be used to create the queue table, create the queue, and enable the queue:
+
+exec dbms_aqadm.CREATE_queue_table(queue_table => 'myqueue_table_name', multiple_consumers => FALSE, queue_payload_type => 'SYS.AQ$_JMS_MESSAGE');
+
+exec dbms_aqadm.CREATE_queue(queue_name => 'myqueue_name', queue_table => 'myqueue_table_name');
+
+exec dbms_aqadm.start_queue( queue_name =>'myqueue_name' ,enqueue => true ,dequeue => true );
\ No newline at end of file
Modified: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/helloworld_ftp_action/build.xml
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/helloworld_ftp_action/build.xml 2009-01-21 14:47:17 UTC (rev 24849)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/helloworld_ftp_action/build.xml 2009-01-21 15:38:08 UTC (rev 24850)
@@ -5,7 +5,7 @@
${line.separator}
</description>
- <property name="additional.deploys" value="ftpfile-cache-config.xml,lib/cache.jar,lib/jgroups.jar"/>
+ <property name="additional.deploys" value="ftpfile-cache-config.xml db-service.xml"/>
<import file="../conf/base-build.xml"/>
@@ -33,7 +33,7 @@
</java>
</target>
- <target name="run-readonly" description="run the readonly version">
+ <target name="run-readonly" description="run the readonly version" depends="assert-jgroups">
<copy file="ftpfile-cache-config.xml" todir="${basedir}/build/classes"/>
<property name="readonly.mode" value="true"/>
@@ -53,7 +53,7 @@
</antcall>
</target>
- <target name="deploy-readonly" description="deploy the readonly version">
+ <target name="deploy-readonly" description="deploy the readonly version" depends="assert-jgroups">
<copy file="ftpfile-cache-config.xml" todir="${basedir}/classes"/>
<property name="readonly.mode" value="true"/>
@@ -80,6 +80,16 @@
</copy>
</target>
+ <target name="deploy-database" depends="jbossesb-dependencies">
+ <copy tofile="${org.jboss.esb.server.deploy.dir}/${ant.project.name}-service.xml"
+ file="db-service.xml"/>
+ </target>
+
+ <target name="undeploy-database" depends="jbossesb-dependencies">
+ <delete file="${org.jboss.esb.server.deploy.dir}/${ant.project.name}-service.xml"
+ quiet="true"/>
+ </target>
+
<target name="quickstart-specific-clean">
<delete >
<fileset dir="${basedir}">
Copied: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/helloworld_ftp_action/db-service.xml (from rev 24846, labs/jbossesb/trunk/product/samples/quickstarts/helloworld_ftp_action/db-service.xml)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/helloworld_ftp_action/db-service.xml (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/helloworld_ftp_action/db-service.xml 2009-01-21 15:38:08 UTC (rev 24850)
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<server>
+ <mbean code="org.jboss.internal.soa.esb.dependencies.H2Database"
+ name="jboss:service=HelloworldFTPDB">
+ <attribute name="Port">1707</attribute>
+ <attribute name="BindAddress">localhost</attribute>
+ <attribute name="Database">HelloworldFTPDB</attribute>
+ <attribute name="ServerMode">true</attribute>
+ </mbean>
+</server>
Modified: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/helloworld_ftp_action/deployment.xml
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/helloworld_ftp_action/deployment.xml 2009-01-21 14:47:17 UTC (rev 24849)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/helloworld_ftp_action/deployment.xml 2009-01-21 15:38:08 UTC (rev 24850)
@@ -1,3 +1,4 @@
<jbossesb-deployment>
<depends>jboss.esb.quickstart.destination:service=Queue,name=quickstart_helloworld_ftp_esb</depends>
+ <depends>jboss:service=HelloworldFTPDB</depends>
</jbossesb-deployment>
Modified: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/helloworld_ftp_action/ftpfile-cache-config.xml
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/helloworld_ftp_action/ftpfile-cache-config.xml 2009-01-21 14:47:17 UTC (rev 24849)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/helloworld_ftp_action/ftpfile-cache-config.xml 2009-01-21 15:38:08 UTC (rev 24850)
@@ -103,8 +103,8 @@
<cacheloader>
<class>org.jboss.cache.loader.JDBCCacheLoader</class>
<properties>
- cache.jdbc.driver=org.hsqldb.jdbcDriver
- cache.jdbc.url=jdbc:hsqldb:hsql://localhost:9001/ftpcache
+ cache.jdbc.driver=org.h2.Driver
+ cache.jdbc.url=jdbc:h2:tcp://localhost:1707/HelloworldFTPDB
cache.jdbc.user=sa
cache.jdbc.password=
</properties>
Modified: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/helloworld_ftp_action/jboss-esb-unfiltered.xml
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/helloworld_ftp_action/jboss-esb-unfiltered.xml 2009-01-21 14:47:17 UTC (rev 24849)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/helloworld_ftp_action/jboss-esb-unfiltered.xml 2009-01-21 15:38:08 UTC (rev 24850)
@@ -1,5 +1,5 @@
<?xml version = "1.0" encoding = "UTF-8"?>
-<jbossesb xmlns="http://anonsvn.labs.jboss.com/labs/jbossesb/trunk/product/etc/schemas/xml/jbossesb-1.0.1.xsd" parameterReloadSecs="5">
+<jbossesb xmlns="http://anonsvn.labs.jboss.com/labs/jbossesb/trunk/product/etc/schemas/xml/jbossesb-1.1.0.xsd" parameterReloadSecs="5">
<providers>
<ftp-provider name="FTPprovider" hostname="@FTP_HOSTNAME@" >
@@ -12,6 +12,7 @@
input-suffix=".dat"
work-suffix=".esbWorking"
post-delete="false"
+ post-rename="true"
post-suffix=".COMPLETE"
error-delete="false"
error-suffix=".HAS_ERROR"
@@ -51,7 +52,7 @@
busidref="quickstartEsbChannel"
/>
</listeners>
- <actions>
+ <actions mep="OneWay">
<action name="action1"
class="org.jboss.soa.esb.samples.quickstart.helloworldftpaction.MyAction"
process="displayMessage,playWithMessage"
Modified: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/helloworld_ftp_action/log4j.xml
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/helloworld_ftp_action/log4j.xml 2009-01-21 14:47:17 UTC (rev 24849)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/helloworld_ftp_action/log4j.xml 2009-01-21 15:38:08 UTC (rev 24850)
@@ -23,6 +23,7 @@
<appender name="CONSOLE" class="org.apache.log4j.ConsoleAppender">
<errorHandler class="org.jboss.logging.util.OnlyOnceErrorHandler"/>
<param name="Target" value="System.out"/>
+ <param name="Threshold" value="INFO"/>
<layout class="org.apache.log4j.PatternLayout">
<!-- The default pattern: Date Priority [Category] Message\n -->
Modified: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/helloworld_ftp_action/readme.txt
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/helloworld_ftp_action/readme.txt 2009-01-21 14:47:17 UTC (rev 24849)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/helloworld_ftp_action/readme.txt 2009-01-21 15:38:08 UTC (rev 24850)
@@ -4,6 +4,17 @@
gateway so that it picks up messages from an ftp server, routes them through
a JMS queue and finally to your action class for processing.
+Pre-requisites
+==============
+ This quickstart includes a demonstration of a setup for processing remote
+ files on an ftp server without renaming. This ability relies on a distributed
+ cache provided by jgroups and, as a consequence, can only run when targetting
+ a server containing jgroups.jar within the lib directory.
+
+ The 'readonly' targets reference an assertion test which checks for the
+ existence of this jar file. If the jar is not present then please adjust
+ your configuration to target an instance which contains the jar.
+
Running this quickstart:
========================
Please refer to 'ant help-quickstarts' for prerequisites about the quickstarts
@@ -29,15 +40,16 @@
==============================================
1. In a command terminal window in this folder ("Window1"), type
'ant deploy-jms-dests'.
- 1. In a command terminal window in this folder ("Window2"), type
+ 2. In "Window1", type 'ant deploy-database'
+ 3. In a command terminal window in this folder ("Window2"), type
'ant run-readonly'.
- 2. In another command terminal window in this folder ("Window3"), type
+ 4. In another command terminal window in this folder ("Window3"), type
'ant run-readonly'.
- 3. In "Window1", type 'ant runtest'.
- 4. You should see the file contents displayed in the one of the listener
+ 5. In "Window1", type 'ant runtest'.
+ 6. You should see the file contents displayed in the one of the listener
windows.
Log onto the ftpserver and see that the file has not been renamed.
- 5. Examine the jboss-esb-readonly-unfiltered.xml file and specifically this
+ 7. Examine the jboss-esb-readonly-unfiltered.xml file and specifically this
ftp-listener section:
<property name="remoteFileSystemStrategy-configFile"
@@ -58,6 +70,8 @@
This will cause the filename to be deleted every 20 seconds. Such as short
period is only for testing and a more realistic interval could perhaps be
every day or so.
+ 8. When finished, interrupt the ESB using Ctrl-C and, in this folder
+ ("Window1"), type 'ant undeploy-database undeploy-jms-dests'.
To Run '.esb' archive mode:
===========================
Modified: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/huge-split-enrich-transform-route/build.xml
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/huge-split-enrich-transform-route/build.xml 2009-01-21 14:47:17 UTC (rev 24849)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/huge-split-enrich-transform-route/build.xml 2009-01-21 15:38:08 UTC (rev 24850)
@@ -8,6 +8,14 @@
<!-- Import the base Ant build script... -->
<import file="../conf/base-build.xml"/>
+ <target name="run" >
+ <echo message="This target is not used by this Quickstart. Please read the 'README.html' file." />
+ </target>
+
+ <target name="runtest" >
+ <echo message="This target is not used by this Quickstart. Please read the 'README.html' file." />
+ </target>
+
<target name="01_split_enrich_transform_route" depends="compile,compile_high_price_model" description="run split_transform_route Service">
<echo>Split Enrich Transform Route Service:</echo>
<java fork="yes" classname="org.jboss.soa.esb.listeners.StandAloneBootStrapper" failonerror="true">
Modified: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/jms_router/jboss-esb.xml
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/jms_router/jboss-esb.xml 2009-01-21 14:47:17 UTC (rev 24849)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/jms_router/jboss-esb.xml 2009-01-21 15:38:08 UTC (rev 24850)
@@ -26,10 +26,10 @@
name="SimpleListener"
description="JMS Secured quickstart sample">
<listeners>
- <jms-listener name="JMS-Gateway"
- busidref="quickstartGwChannel"
- is-gateway="true"
- />
+ <jms-listener name="JMS-Gateway" busidref="quickstartGwChannel" is-gateway="true" >
+ <!-- Comment out to exclude properties that are vendor specific. -->
+ <!--property name="excludeProperties" value="[JMS_].*"/-->
+ </jms-listener>
<jms-listener name="jmssecured"
busidref="quickstartEsbChannel"/>
</listeners>
Modified: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/jms_router/readme.txt
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/jms_router/readme.txt 2009-01-21 14:47:17 UTC (rev 24849)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/jms_router/readme.txt 2009-01-21 15:38:08 UTC (rev 24850)
@@ -1,40 +1,56 @@
-Overview:
-=========
- The purpose of the jms_router quickstart is to show how the JMSRouter
- action can be configured.
- This quickstart also shows how a JMSCorrelationID can be used with the ESB.
-
-Running this quickstart:
-========================
- Please refer to 'ant help-quickstarts' for prerequisites about the quickstarts
- and a more detailed descripton of the different ways to run the quickstarts.
-
-To Run standalone mode:
-=======================
- 1. In a command terminal window in the quickstart folder type
- 'ant deploy-jms-dests'.
- 2. In a command terminal window in this folder ("Window1"), type 'ant run'.
- 3. Open another command terminal window in this folder ("Window2"), type
- 'ant runtest'.
- 4. Switch back to "Window1" to see the output from the ESB
- 5. When finished, interrupt the ESB using Ctrl-C and, in this folder
- ("Window1"), type 'ant undeploy-jms-dests'.
-
-To Run '.esb' archive mode:
-===========================
- 1. In a command terminal window in this folder ("Window1"), type 'ant deploy'.
- 2. Open another command terminal window in this folder ("Window2"), type
- 'ant runtest'.
- 3. Switch back to Application Server console to see the output from the ESB
- 4. In this folder ("Window1"), type 'ant undeploy'.
-
-What to look at in this Quickstart:
-===================================
- 1. src/org/jboss/soa/esb/samples/quickstart/jmsrouter/test/SendJMSMessage
- Notice how the JMS Message is set with a correlationID.
- Notice how the receive from the response destination uses the
- correlation id.
- 2. jboss-esb.xml
- Take a look at how the JMSRouter can be configured.
-
-
+Overview:
+=========
+ The purpose of the jms_router quickstart is to show how the JMSRouter
+ action can be configured.
+ This quickstart also shows how a JMSCorrelationID can be used with the ESB, and
+ how JMS properties can be excluded at the JMS gateway by setting the 'excludeProperties'.
+
+Running this quickstart:
+========================
+ Please refer to 'ant help-quickstarts' for prerequisites about the quickstarts
+ and a more detailed descripton of the different ways to run the quickstarts.
+
+To Run standalone mode:
+=======================
+ 1. In a command terminal window in the quickstart folder type
+ 'ant deploy-jms-dests'.
+ 2. In a command terminal window in this folder ("Window1"), type 'ant run'.
+ 3. Open another command terminal window in this folder ("Window2"), type
+ 'ant runtest'.
+ 4. Switch back to "Window1" to see the output from the ESB
+ 5. When finished, interrupt the ESB using Ctrl-C and, in this folder
+ ("Window1"), type 'ant undeploy-jms-dests'.
+
+To Run '.esb' archive mode:
+===========================
+ 1. In a command terminal window in this folder ("Window1"), type 'ant deploy'.
+ 2. Open another command terminal window in this folder ("Window2"), type
+ 'ant runtest'.
+ 3. Switch back to Application Server console to see the output from the ESB
+ 4. In this folder ("Window1"), type 'ant undeploy'.
+
+What to look at in this Quickstart:
+===================================
+ 1. src/org/jboss/soa/esb/samples/quickstart/jmsrouter/test/SendJMSMessage
+ Notice how the JMS Message is set with a correlationID.
+ Notice how the receive from the response destination uses the
+ correlation id.
+
+ 2. jboss-esb.xml
+ Take a look at how the JMSRouter can be configured.
+
+ 3. 'excludeProperties' property.
+ This propery can be used to filter out unwanted properties that exist in
+ the JMS message arriving at the gateway.
+
+ Usually there is no problem simply letting properties flow through but some
+ JMS Provider do not excepts JMS vendor specific properties that are not there
+ own and will throw an exception. This property was added to avoid this.
+
+ As you can see in the configuration that we specifying a regular expression to filter
+ out all properties that start with 'JMS_' but this regular expression could be
+ used to filter out other properties too.
+
+ Try uncommenting the 'excludeProperties' property in jboss-esb.xml and you will see
+ that this property is no longer passed through and will be null in "Window2"
+
Modified: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/jms_router/src/org/jboss/soa/esb/samples/quickstart/jmsrouter/test/SendJMSMessage.java
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/jms_router/src/org/jboss/soa/esb/samples/quickstart/jmsrouter/test/SendJMSMessage.java 2009-01-21 14:47:17 UTC (rev 24849)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/jms_router/src/org/jboss/soa/esb/samples/quickstart/jmsrouter/test/SendJMSMessage.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -50,6 +50,8 @@
private Destination replyToDestination;
private String correlationId;
+ private String vendorSpecificPropertyName = "JMS_IBMQ_Property";
+
public void setupConnection(String destination) throws JMSException, NamingException
{
InitialContext iniCtx = new InitialContext();
@@ -79,6 +81,7 @@
ObjectMessage objectMsg = session.createObjectMessage(msg);
objectMsg.setJMSCorrelationID( correlationId );
objectMsg.setJMSReplyTo( replyToDestination );
+ objectMsg.setStringProperty(vendorSpecificPropertyName, "Vendor specific property value");
producer.send(objectMsg);
System.out.println("Sent message with CorrelationID : " + correlationId );
@@ -104,6 +107,7 @@
System.out.println("\t[MessageType : TextMessage]");
System.out.println( "\t[Text : " + ((TextMessage)jmsMsg).getText() + "]" );
}
+ System.out.println("\t[Property: "+ vendorSpecificPropertyName + " : " + jmsMsg.getStringProperty(vendorSpecificPropertyName) + "]" );
consumer.close();
}
Modified: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/jms_transacted/readme.txt
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/jms_transacted/readme.txt 2009-01-21 14:47:17 UTC (rev 24849)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/jms_transacted/readme.txt 2009-01-21 15:38:08 UTC (rev 24850)
@@ -115,3 +115,7 @@
<attribute name="MaxDeliveryAttempts">15</attribute>
MaxDeliveryAttempts must be greater then dLQMaxReset or it will take priority over dLQMaxReset.
+ The redelivery attempt delay is specified by the property
+ <attribute name="RedeliveryDelay">10000</attribute>
+
+
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/jms_transacted/src/org/jboss/soa/esb/samples/quickstart/jmstransacted/test/RollbackTransactionAction.java
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/jms_transacted/src/org/jboss/soa/esb/samples/quickstart/jmstransacted/test/RollbackTransactionAction.java 2009-01-21 14:47:17 UTC (rev 24849)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/jms_transacted/src/org/jboss/soa/esb/samples/quickstart/jmstransacted/test/RollbackTransactionAction.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -1,101 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2006, JBoss Inc., and others contributors as indicated
- * by the @authors tag. All rights reserved.
- * See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- * This copyrighted material is made available to anyone wishing to use,
- * modify, copy, or redistribute it subject to the terms and conditions
- * of the GNU Lesser General Public License, v. 2.1.
- * This program is distributed in the hope that it will be useful, but WITHOUT A
- * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
- * PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
- * You should have received a copy of the GNU Lesser General Public License,
- * v.2.1 along with this distribution; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
- * MA 02110-1301, USA.
- *
- * (C) 2005-2006,
- * @author JBoss Inc.
- */
-package org.jboss.soa.esb.samples.quickstart.jmstransacted.test;
-
-import org.apache.log4j.Logger;
-import org.jboss.soa.esb.actions.ActionLifecycle;
-import org.jboss.soa.esb.actions.ActionLifecycleException;
-import org.jboss.soa.esb.helpers.ConfigTree;
-import org.jboss.soa.esb.message.Message;
-import org.jboss.soa.esb.common.TransactionStrategy;
-import org.jboss.soa.esb.common.TransactionStrategyException;
-
-/**
- * RollbackTransactionAction is a simple action that rolls back the <br>
- * the current transaction if the rollback field is true.
- * </p>
- * Note that this class in only intended to be used with the
- * jms_transacted quickstart.
- * </p>
- * @author <a href="mailto:daniel.bevenius at gmail.com">Daniel Bevenius</a>
- *
- */
-public class RollbackTransactionAction implements ActionLifecycle
-{
- private Logger log = Logger .getLogger( RollbackTransactionAction.class );
-
- /**
- * Flag indicating if the current transaction should be rolledback
- */
- private boolean rollback;
-
- /**
- * Number of times we should rollback. This is just used so that we
- * can specify when the action should proceed without rollingback the transaction
- */
- private int nrOfTimesToRollback;
-
- /**
- * Simple counter
- */
- private static int rollbackCounter;
-
- public RollbackTransactionAction( final ConfigTree config )
- {
- rollback = Boolean.parseBoolean( config.getAttribute( "rollback", "true") );
- nrOfTimesToRollback = Integer.parseInt( config.getAttribute( "nr-of-rollbacks", "3") );
- }
-
- /**
- * Will rollback the the current transaction if the rollback
- * configuration paramater is true. Else this is a NOOP and
- * simple passes the message through.
- *
- * @param message - ESB Message object
- * @return Message - ESB Message Object
- * @throws TransactionStrategyException
- */
- public Message process( Message message ) throws TransactionStrategyException
- {
- log.debug( "rollback [ " + rollback + "], rollbackCounter [" + rollbackCounter + "], nr-of-rollbacks [" + nrOfTimesToRollback + "]");
- if ( rollback )
- {
- rollbackCounter++;
- if ( rollbackCounter < nrOfTimesToRollback )
- {
- TransactionStrategy strategy = TransactionStrategy.getTransactionStrategy(true);
- log.info( "Setting transaction to rollback only" );
- strategy.rollbackOnly();
- message = null;
- }
- else
- {
- rollbackCounter = 0;
- }
- }
- return message;
- }
-
- public void processException(final Message message, final Throwable th) { }
- public void destroy() throws ActionLifecycleException {}
- public void initialise() throws ActionLifecycleException {}
-
-}
Modified: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/load_generator/build.xml
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/load_generator/build.xml 2009-01-21 14:47:17 UTC (rev 24849)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/load_generator/build.xml 2009-01-21 15:38:08 UTC (rev 24850)
@@ -35,6 +35,9 @@
<include name="*.xml" />
<include name="*.properties" />
</fileset>
+ <fileset dir="${basedir}">
+ <include name="log4j.xml" />
+ </fileset>
</copy>
<groovyc destdir="load_generator_classes" srcdir="${basedir}/scripts" includes="*.groovy" classpathref="groovy.classpath" />
</target>
Modified: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/load_generator/readme.txt
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/load_generator/readme.txt 2009-01-21 14:47:17 UTC (rev 24849)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/load_generator/readme.txt 2009-01-21 15:38:08 UTC (rev 24850)
@@ -11,8 +11,9 @@
Protected JMX
=======================
- If access to JMX is secured on your server, run the "ant runtest-secure" target,
- which takes a username and a password.
+ If access to JMX is secured on your server, after deploying this quickstart
+ you will need to run the "ant runtest-secure" target, which takes a username
+ and a password, instead of the "ant runtest" target.
To Run standalone mode:
=======================
Modified: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/load_generator/scripts/LoadReport.groovy
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/load_generator/scripts/LoadReport.groovy 2009-01-21 14:47:17 UTC (rev 24849)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/load_generator/scripts/LoadReport.groovy 2009-01-21 15:38:08 UTC (rev 24850)
@@ -37,6 +37,7 @@
class ServiceReporterBean extends ReporterBean
{
+ def serviceCategory
def serviceName
def esbArchiveName
}
@@ -103,6 +104,7 @@
serviceReporter ->
ServiceMetricsBean svcMetricsBean = new ServiceMetricsBean()
ServiceReporterBean svcReportBean = new ServiceReporterBean()
+ svcReportBean.serviceCategory = serviceReporter.'@service-category'
svcReportBean.serviceName = serviceReporter.'@service-name'
svcReportBean.esbArchiveName = serviceReporter.'@esb-archive-name'
@@ -184,4 +186,4 @@
-
\ No newline at end of file
+
Modified: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/load_generator/scripts/LoadUtil.groovy
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/load_generator/scripts/LoadUtil.groovy 2009-01-21 14:47:17 UTC (rev 24849)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/load_generator/scripts/LoadUtil.groovy 2009-01-21 15:38:08 UTC (rev 24850)
@@ -46,7 +46,7 @@
public float getEsbServiceTps(serviceReportBean)
{
def serviceMessageCount = {
- getLongAttribute(new ObjectName("jboss.esb:service-name=$serviceReportBean.serviceName,deployment=$serviceReportBean.esbArchiveName,category=MessageCounter"), "overall service message count")
+ getLongAttribute(new ObjectName("jboss.esb:service-category=$serviceReportBean.serviceCategory,service-name=$serviceReportBean.serviceName,deployment=$serviceReportBean.esbArchiveName,category=MessageCounter"), "overall service message count")
}
def processedMsgsBefore = serviceMessageCount()
Modified: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/load_generator/scripts/load.xml
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/load_generator/scripts/load.xml 2009-01-21 14:47:17 UTC (rev 24849)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/load_generator/scripts/load.xml 2009-01-21 15:38:08 UTC (rev 24850)
@@ -22,11 +22,13 @@
</jms-reporters>
<service-reporters>
<service-reporter
+ service-category="LoadServiceCategory"
service-name="DummyJMSLoad"
esb-archive-name="Quickstart_load_generator.esb" />
<service-reporter
+ service-category="LoadServiceCategory"
service-name="DummyJMSLoad2"
esb-archive-name="Quickstart_load_generator.esb" />
</service-reporters>
</reporters>
-</load-script>
\ No newline at end of file
+</load-script>
Copied: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/monitoring_action (from rev 24846, labs/jbossesb/trunk/product/samples/quickstarts/monitoring_action)
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/monitoring_action/build.xml
===================================================================
--- labs/jbossesb/trunk/product/samples/quickstarts/monitoring_action/build.xml 2009-01-21 09:35:03 UTC (rev 24846)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/monitoring_action/build.xml 2009-01-21 15:38:08 UTC (rev 24850)
@@ -1,29 +0,0 @@
-<project name="Quickstart_monitoring_action" default="run" basedir=".">
-
- <description>
- ${ant.project.name}
- ${line.separator}
- </description>
-
- <!-- Import the base Ant build script... -->
- <import file="../conf/base-build.xml"/>
-
- <target name="runtest" depends="compile"
- description="sends a JMS message to queue/quickstart_monitoringaction_Request_gw">
- <echo>Runs Test JMS Sender</echo>
- <java fork="yes" classname="org.jboss.soa.esb.samples.quickstart.monitoringaction.test.SendJMSMessage" failonerror="true">
- <arg value="3"/>
- <classpath refid="exec-classpath"/>
- </java>
- <java fork="yes" classname="org.jboss.soa.esb.samples.quickstart.monitoringaction.test.SendJMSMessage" failonerror="true">
- <arg value="14"/>
- <classpath refid="exec-classpath"/>
- </java>
- <java fork="yes" classname="org.jboss.soa.esb.samples.quickstart.monitoringaction.test.SendJMSMessage" failonerror="true">
- <arg value="23"/>
- <classpath refid="exec-classpath"/>
- </java>
- </target>
-
-
-</project>
Copied: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/monitoring_action/build.xml (from rev 24846, labs/jbossesb/trunk/product/samples/quickstarts/monitoring_action/build.xml)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/monitoring_action/build.xml (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/monitoring_action/build.xml 2009-01-21 15:38:08 UTC (rev 24850)
@@ -0,0 +1,29 @@
+<project name="Quickstart_monitoring_action" default="run" basedir=".">
+
+ <description>
+ ${ant.project.name}
+ ${line.separator}
+ </description>
+
+ <!-- Import the base Ant build script... -->
+ <import file="../conf/base-build.xml"/>
+
+ <target name="runtest" depends="compile"
+ description="sends a JMS message to queue/quickstart_monitoringaction_Request_gw">
+ <echo>Runs Test JMS Sender</echo>
+ <java fork="yes" classname="org.jboss.soa.esb.samples.quickstart.monitoringaction.test.SendJMSMessage" failonerror="true">
+ <arg value="3"/>
+ <classpath refid="exec-classpath"/>
+ </java>
+ <java fork="yes" classname="org.jboss.soa.esb.samples.quickstart.monitoringaction.test.SendJMSMessage" failonerror="true">
+ <arg value="14"/>
+ <classpath refid="exec-classpath"/>
+ </java>
+ <java fork="yes" classname="org.jboss.soa.esb.samples.quickstart.monitoringaction.test.SendJMSMessage" failonerror="true">
+ <arg value="23"/>
+ <classpath refid="exec-classpath"/>
+ </java>
+ </target>
+
+
+</project>
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/monitoring_action/deployment.xml
===================================================================
--- labs/jbossesb/trunk/product/samples/quickstarts/monitoring_action/deployment.xml 2009-01-21 09:35:03 UTC (rev 24846)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/monitoring_action/deployment.xml 2009-01-21 15:38:08 UTC (rev 24850)
@@ -1,4 +0,0 @@
-<jbossesb-deployment>
- <depends>jboss.esb.quickstart.destination:service=Queue,name=quickstart_monitoringaction_Request_esb</depends>
- <depends>jboss.esb.quickstart.destination:service=Queue,name=quickstart_monitoringaction_Request_gw</depends>
-</jbossesb-deployment>
Copied: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/monitoring_action/deployment.xml (from rev 24846, labs/jbossesb/trunk/product/samples/quickstarts/monitoring_action/deployment.xml)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/monitoring_action/deployment.xml (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/monitoring_action/deployment.xml 2009-01-21 15:38:08 UTC (rev 24850)
@@ -0,0 +1,4 @@
+<jbossesb-deployment>
+ <depends>jboss.esb.quickstart.destination:service=Queue,name=quickstart_monitoringaction_Request_esb</depends>
+ <depends>jboss.esb.quickstart.destination:service=Queue,name=quickstart_monitoringaction_Request_gw</depends>
+</jbossesb-deployment>
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/monitoring_action/jbm-queue-service.xml
===================================================================
--- labs/jbossesb/trunk/product/samples/quickstarts/monitoring_action/jbm-queue-service.xml 2009-01-21 09:35:03 UTC (rev 24846)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/monitoring_action/jbm-queue-service.xml 2009-01-21 15:38:08 UTC (rev 24850)
@@ -1,15 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<server>
- <mbean code="org.jboss.jms.server.destination.QueueService"
- name="jboss.esb.quickstart.destination:service=Queue,name=quickstart_monitoringaction_Request_esb"
- xmbean-dd="xmdesc/Queue-xmbean.xml">
- <depends optional-attribute-name="ServerPeer">jboss.messaging:service=ServerPeer</depends>
- <depends>jboss.messaging:service=PostOffice</depends>
- </mbean>
- <mbean code="org.jboss.jms.server.destination.QueueService"
- name="jboss.esb.quickstart.destination:service=Queue,name=quickstart_monitoringaction_Request_gw"
- xmbean-dd="xmdesc/Queue-xmbean.xml">
- <depends optional-attribute-name="ServerPeer">jboss.messaging:service=ServerPeer</depends>
- <depends>jboss.messaging:service=PostOffice</depends>
- </mbean>
-</server>
Copied: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/monitoring_action/jbm-queue-service.xml (from rev 24846, labs/jbossesb/trunk/product/samples/quickstarts/monitoring_action/jbm-queue-service.xml)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/monitoring_action/jbm-queue-service.xml (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/monitoring_action/jbm-queue-service.xml 2009-01-21 15:38:08 UTC (rev 24850)
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<server>
+ <mbean code="org.jboss.jms.server.destination.QueueService"
+ name="jboss.esb.quickstart.destination:service=Queue,name=quickstart_monitoringaction_Request_esb"
+ xmbean-dd="xmdesc/Queue-xmbean.xml">
+ <depends optional-attribute-name="ServerPeer">jboss.messaging:service=ServerPeer</depends>
+ <depends>jboss.messaging:service=PostOffice</depends>
+ </mbean>
+ <mbean code="org.jboss.jms.server.destination.QueueService"
+ name="jboss.esb.quickstart.destination:service=Queue,name=quickstart_monitoringaction_Request_gw"
+ xmbean-dd="xmdesc/Queue-xmbean.xml">
+ <depends optional-attribute-name="ServerPeer">jboss.messaging:service=ServerPeer</depends>
+ <depends>jboss.messaging:service=PostOffice</depends>
+ </mbean>
+</server>
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/monitoring_action/jbmq-queue-service.xml
===================================================================
--- labs/jbossesb/trunk/product/samples/quickstarts/monitoring_action/jbmq-queue-service.xml 2009-01-21 09:35:03 UTC (rev 24846)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/monitoring_action/jbmq-queue-service.xml 2009-01-21 15:38:08 UTC (rev 24850)
@@ -1,15 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<server>
- <mbean code="org.jboss.mq.server.jmx.Queue"
- name="jboss.esb.quickstart.destination:service=Queue,name=quickstart_monitoringaction_Request_esb">
- <depends optional-attribute-name="DestinationManager">
- jboss.mq:service=DestinationManager
- </depends>
- </mbean>
- <mbean code="org.jboss.mq.server.jmx.Queue"
- name="jboss.esb.quickstart.destination:service=Queue,name=quickstart_monitoringaction_Request_gw">
- <depends optional-attribute-name="DestinationManager">
- jboss.mq:service=DestinationManager
- </depends>
- </mbean>
-</server>
Copied: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/monitoring_action/jbmq-queue-service.xml (from rev 24846, labs/jbossesb/trunk/product/samples/quickstarts/monitoring_action/jbmq-queue-service.xml)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/monitoring_action/jbmq-queue-service.xml (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/monitoring_action/jbmq-queue-service.xml 2009-01-21 15:38:08 UTC (rev 24850)
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<server>
+ <mbean code="org.jboss.mq.server.jmx.Queue"
+ name="jboss.esb.quickstart.destination:service=Queue,name=quickstart_monitoringaction_Request_esb">
+ <depends optional-attribute-name="DestinationManager">
+ jboss.mq:service=DestinationManager
+ </depends>
+ </mbean>
+ <mbean code="org.jboss.mq.server.jmx.Queue"
+ name="jboss.esb.quickstart.destination:service=Queue,name=quickstart_monitoringaction_Request_gw">
+ <depends optional-attribute-name="DestinationManager">
+ jboss.mq:service=DestinationManager
+ </depends>
+ </mbean>
+</server>
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/monitoring_action/jboss-esb.xml
===================================================================
--- labs/jbossesb/trunk/product/samples/quickstarts/monitoring_action/jboss-esb.xml 2009-01-21 09:35:03 UTC (rev 24846)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/monitoring_action/jboss-esb.xml 2009-01-21 15:38:08 UTC (rev 24850)
@@ -1,47 +0,0 @@
-<?xml version = "1.0" encoding = "UTF-8"?>
-<jbossesb xmlns="http://anonsvn.labs.jboss.com/labs/jbossesb/trunk/product/etc/schemas/xml/jbossesb-1.0.1.xsd" parameterReloadSecs="5">
-
- <providers>
- <jms-provider name="JBossMQ" connection-factory="ConnectionFactory">
- <jms-bus busid="quickstartGwChannel">
- <jms-message-filter
- dest-type="QUEUE"
- dest-name="queue/quickstart_monitoringaction_Request_gw"
- />
- </jms-bus>
- <jms-bus busid="quickstartEsbChannel">
- <jms-message-filter
- dest-type="QUEUE"
- dest-name="queue/quickstart_monitoringaction_Request_esb"
- />
- </jms-bus>
-
- </jms-provider>
- </providers>
-
- <services>
- <service
- category="FirstServiceESB"
- name="SimpleListener"
- description="Hello World">
- <listeners>
- <jms-listener name="JMS-Gateway"
- busidref="quickstartGwChannel"
- is-gateway="true"
- />
- <jms-listener name="helloWorld"
- busidref="quickstartEsbChannel"
- />
- </listeners>
- <actions mep="OneWay">
- <action name="mvelmonitor"
- class="org.jboss.soa.esb.actions.monitoring.MVELMonitoringAction">
- <property name="expressions">
- <monitor-value mvel-pattern="message.body.org.jboss.soa.esb.message.defaultEntry" pattern-name="body.BODY_CONTENT" pattern-conditional=">5"/>
- </property>
- </action>
- </actions>
- </service>
- </services>
-
-</jbossesb>
Copied: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/monitoring_action/jboss-esb.xml (from rev 24846, labs/jbossesb/trunk/product/samples/quickstarts/monitoring_action/jboss-esb.xml)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/monitoring_action/jboss-esb.xml (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/monitoring_action/jboss-esb.xml 2009-01-21 15:38:08 UTC (rev 24850)
@@ -0,0 +1,47 @@
+<?xml version = "1.0" encoding = "UTF-8"?>
+<jbossesb xmlns="http://anonsvn.labs.jboss.com/labs/jbossesb/trunk/product/etc/schemas/xml/jbossesb-1.0.1.xsd" parameterReloadSecs="5">
+
+ <providers>
+ <jms-provider name="JBossMQ" connection-factory="ConnectionFactory">
+ <jms-bus busid="quickstartGwChannel">
+ <jms-message-filter
+ dest-type="QUEUE"
+ dest-name="queue/quickstart_monitoringaction_Request_gw"
+ />
+ </jms-bus>
+ <jms-bus busid="quickstartEsbChannel">
+ <jms-message-filter
+ dest-type="QUEUE"
+ dest-name="queue/quickstart_monitoringaction_Request_esb"
+ />
+ </jms-bus>
+
+ </jms-provider>
+ </providers>
+
+ <services>
+ <service
+ category="FirstServiceESB"
+ name="SimpleListener"
+ description="Hello World">
+ <listeners>
+ <jms-listener name="JMS-Gateway"
+ busidref="quickstartGwChannel"
+ is-gateway="true"
+ />
+ <jms-listener name="helloWorld"
+ busidref="quickstartEsbChannel"
+ />
+ </listeners>
+ <actions mep="OneWay">
+ <action name="mvelmonitor"
+ class="org.jboss.soa.esb.actions.monitoring.MVELMonitoringAction">
+ <property name="expressions">
+ <monitor-value mvel-pattern="message.body.org.jboss.soa.esb.message.defaultEntry" pattern-name="body.BODY_CONTENT" pattern-conditional=">5"/>
+ </property>
+ </action>
+ </actions>
+ </service>
+ </services>
+
+</jbossesb>
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/monitoring_action/jbossesb-properties.xml
===================================================================
--- labs/jbossesb/trunk/product/samples/quickstarts/monitoring_action/jbossesb-properties.xml 2009-01-21 09:35:03 UTC (rev 24846)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/monitoring_action/jbossesb-properties.xml 2009-01-21 15:38:08 UTC (rev 24850)
@@ -1,86 +0,0 @@
-<?xml version="1.0" encoding="ISO-8859-1"?>
-<!--
- JBoss, Home of Professional Open Source
- Copyright 2006, JBoss Inc., and others contributors as indicated
- by the @authors tag. All rights reserved.
- See the copyright.txt in the distribution for a
- full listing of individual contributors.
- This copyrighted material is made available to anyone wishing to use,
- modify, copy, or redistribute it subject to the terms and conditions
- of the GNU Lesser General Public License, v. 2.1.
- This program is distributed in the hope that it will be useful, but WITHOUT A
- WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
- PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
- You should have received a copy of the GNU Lesser General Public License,
- v.2.1 along with this distribution; if not, write to the Free Software
- Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
- MA 02110-1301, USA.
-
- (C) 2005-2006,
- @author JBoss Inc.
--->
-<!-- $Id: jbossesb-unittest-properties.xml $ -->
-<!--
- These options are described in the JBossESB manual.
- Defaults are provided here for convenience only.
-
- Please read through this file prior to using the system, and consider
- updating the specified entries.
--->
-<esb
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:noNamespaceSchemaLocation="jbossesb-1_0.xsd">
- <properties name="core">
- <property name="org.jboss.soa.esb.jndi.server.type" value="jboss"/>
- <property name="org.jboss.soa.esb.jndi.server.url" value="localhost"/>
- <property name="org.jboss.soa.esb.persistence.connection.factory" value="org.jboss.internal.soa.esb.persistence.format.MessageStoreFactoryImpl"/>
- <property name="jboss.esb.invm.scope.default" value="NONE"/>
- </properties>
- <properties name="registry">
- <property name="org.jboss.soa.esb.registry.queryManagerURI"
- value="jnp://localhost:1099/InquiryService?org.apache.juddi.registry.rmi.Inquiry#inquire"/>
- <property name="org.jboss.soa.esb.registry.lifeCycleManagerURI"
- value="jnp://localhost:1099/PublishService?org.apache.juddi.registry.rmi.Publish#publish" />
- <property name="org.jboss.soa.esb.registry.implementationClass"
- value="org.jboss.internal.soa.esb.services.registry.JAXRRegistryImpl"/>
- <property name="org.jboss.soa.esb.registry.factoryClass"
- value="org.apache.ws.scout.registry.ConnectionFactoryImpl"/>
- <property name="org.jboss.soa.esb.registry.user"
- value="jbossesb"/>
- <property name="org.jboss.soa.esb.registry.password"
- value="password"/>
- <!-- the following parameter is scout specific to set the type of communication between scout and the UDDI (embedded, rmi, soap) -->
- <property name="org.jboss.soa.esb.scout.proxy.transportClass"
- value="org.apache.ws.scout.transport.RMITransport"/>
- </properties>
- <properties name="transports" depends="core">
- <property name="org.jboss.soa.esb.mail.smtp.host" value="localhost"/>
- <property name="org.jboss.soa.esb.mail.smtp.user" value="jbossesb"/>
- <property name="org.jboss.soa.esb.mail.smtp.password" value=""/>
- <property name="org.jboss.soa.esb.mail.smtp.port" value="25"/>
- </properties>
- <properties name="connection">
- <property name="min-pool-size" value="5"/>
- <property name="max-pool=size" value="10"/>
- <property name="blocking-timeout-millis" value="5000"/>
- <property name="abandoned-connection-timeout" value="10000"/>
- <property name="abandoned-connection-time-interval" value="30000"/>
- </properties>
- <properties name="dbstore">
- <property name="org.jboss.soa.esb.persistence.db.connection.url" value="jdbc:hsqldb:hsql://localhost:9001/"/>
- <property name="org.jboss.soa.esb.persistence.db.jdbc.driver" value="org.hsqldb.jdbcDriver"/>
- <property name="org.jboss.soa.esb.persistence.db.user" value="sa"/>
- <property name="org.jboss.soa.esb.persistence.db.pwd" value=""/>
- <property name="org.jboss.soa.esb.persistence.db.pool.initial.size" value="2"/>
- <property name="org.jboss.soa.esb.persistence.db.pool.min.size" value="2"/>
- <property name="org.jboss.soa.esb.persistence.db.pool.max.size" value="5"/>
- <!--table managed by pool to test for valid connections - created by pool automatically -->
- <property name="org.jboss.soa.esb.persistence.db.pool.test.table" value="pooltest"/>
- <!-- # of milliseconds to timeout waiting for a connection from pool -->
- <property name="org.jboss.soa.esb.persistence.db.pool.timeout.millis" value="5000"/>
- <property name="org.jboss.soa.esb.persistence.db.conn.manager" value="org.jboss.internal.soa.esb.persistence.manager.StandaloneConnectionManager"/>
- </properties>
- <properties name="messagerouting">
- <property name="org.jboss.soa.esb.routing.cbrClass" value="org.jboss.internal.soa.esb.services.routing.cbr.JBossRulesRouter"/>
- </properties>
-</esb>
Copied: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/monitoring_action/jbossesb-properties.xml (from rev 24846, labs/jbossesb/trunk/product/samples/quickstarts/monitoring_action/jbossesb-properties.xml)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/monitoring_action/jbossesb-properties.xml (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/monitoring_action/jbossesb-properties.xml 2009-01-21 15:38:08 UTC (rev 24850)
@@ -0,0 +1,86 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!--
+ JBoss, Home of Professional Open Source
+ Copyright 2006, JBoss Inc., and others contributors as indicated
+ by the @authors tag. All rights reserved.
+ See the copyright.txt in the distribution for a
+ full listing of individual contributors.
+ This copyrighted material is made available to anyone wishing to use,
+ modify, copy, or redistribute it subject to the terms and conditions
+ of the GNU Lesser General Public License, v. 2.1.
+ This program is distributed in the hope that it will be useful, but WITHOUT A
+ WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+ PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
+ You should have received a copy of the GNU Lesser General Public License,
+ v.2.1 along with this distribution; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ MA 02110-1301, USA.
+
+ (C) 2005-2006,
+ @author JBoss Inc.
+-->
+<!-- $Id: jbossesb-unittest-properties.xml $ -->
+<!--
+ These options are described in the JBossESB manual.
+ Defaults are provided here for convenience only.
+
+ Please read through this file prior to using the system, and consider
+ updating the specified entries.
+-->
+<esb
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:noNamespaceSchemaLocation="jbossesb-1_0.xsd">
+ <properties name="core">
+ <property name="org.jboss.soa.esb.jndi.server.type" value="jboss"/>
+ <property name="org.jboss.soa.esb.jndi.server.url" value="localhost"/>
+ <property name="org.jboss.soa.esb.persistence.connection.factory" value="org.jboss.internal.soa.esb.persistence.format.MessageStoreFactoryImpl"/>
+ <property name="jboss.esb.invm.scope.default" value="NONE"/>
+ </properties>
+ <properties name="registry">
+ <property name="org.jboss.soa.esb.registry.queryManagerURI"
+ value="jnp://localhost:1099/InquiryService?org.apache.juddi.registry.rmi.Inquiry#inquire"/>
+ <property name="org.jboss.soa.esb.registry.lifeCycleManagerURI"
+ value="jnp://localhost:1099/PublishService?org.apache.juddi.registry.rmi.Publish#publish" />
+ <property name="org.jboss.soa.esb.registry.implementationClass"
+ value="org.jboss.internal.soa.esb.services.registry.JAXRRegistryImpl"/>
+ <property name="org.jboss.soa.esb.registry.factoryClass"
+ value="org.apache.ws.scout.registry.ConnectionFactoryImpl"/>
+ <property name="org.jboss.soa.esb.registry.user"
+ value="jbossesb"/>
+ <property name="org.jboss.soa.esb.registry.password"
+ value="password"/>
+ <!-- the following parameter is scout specific to set the type of communication between scout and the UDDI (embedded, rmi, soap) -->
+ <property name="org.jboss.soa.esb.scout.proxy.transportClass"
+ value="org.apache.ws.scout.transport.RMITransport"/>
+ </properties>
+ <properties name="transports" depends="core">
+ <property name="org.jboss.soa.esb.mail.smtp.host" value="localhost"/>
+ <property name="org.jboss.soa.esb.mail.smtp.user" value="jbossesb"/>
+ <property name="org.jboss.soa.esb.mail.smtp.password" value=""/>
+ <property name="org.jboss.soa.esb.mail.smtp.port" value="25"/>
+ </properties>
+ <properties name="connection">
+ <property name="min-pool-size" value="5"/>
+ <property name="max-pool=size" value="10"/>
+ <property name="blocking-timeout-millis" value="5000"/>
+ <property name="abandoned-connection-timeout" value="10000"/>
+ <property name="abandoned-connection-time-interval" value="30000"/>
+ </properties>
+ <properties name="dbstore">
+ <property name="org.jboss.soa.esb.persistence.db.connection.url" value="jdbc:hsqldb:hsql://localhost:9001/"/>
+ <property name="org.jboss.soa.esb.persistence.db.jdbc.driver" value="org.hsqldb.jdbcDriver"/>
+ <property name="org.jboss.soa.esb.persistence.db.user" value="sa"/>
+ <property name="org.jboss.soa.esb.persistence.db.pwd" value=""/>
+ <property name="org.jboss.soa.esb.persistence.db.pool.initial.size" value="2"/>
+ <property name="org.jboss.soa.esb.persistence.db.pool.min.size" value="2"/>
+ <property name="org.jboss.soa.esb.persistence.db.pool.max.size" value="5"/>
+ <!--table managed by pool to test for valid connections - created by pool automatically -->
+ <property name="org.jboss.soa.esb.persistence.db.pool.test.table" value="pooltest"/>
+ <!-- # of milliseconds to timeout waiting for a connection from pool -->
+ <property name="org.jboss.soa.esb.persistence.db.pool.timeout.millis" value="5000"/>
+ <property name="org.jboss.soa.esb.persistence.db.conn.manager" value="org.jboss.internal.soa.esb.persistence.manager.StandaloneConnectionManager"/>
+ </properties>
+ <properties name="messagerouting">
+ <property name="org.jboss.soa.esb.routing.cbrClass" value="org.jboss.internal.soa.esb.services.routing.cbr.JBossRulesRouter"/>
+ </properties>
+</esb>
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/monitoring_action/jndi.properties
===================================================================
--- labs/jbossesb/trunk/product/samples/quickstarts/monitoring_action/jndi.properties 2009-01-21 09:35:03 UTC (rev 24846)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/monitoring_action/jndi.properties 2009-01-21 15:38:08 UTC (rev 24850)
@@ -1,5 +0,0 @@
-java.naming.factory.initial=org.jnp.interfaces.NamingContextFactory
-java.naming.provider.url=jnp://localhost:1099
-java.naming.factory.url.pkgs=org.jboss.naming
-java.naming.factory.url.pkgs=org.jnp.interfaces
-
Copied: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/monitoring_action/jndi.properties (from rev 24846, labs/jbossesb/trunk/product/samples/quickstarts/monitoring_action/jndi.properties)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/monitoring_action/jndi.properties (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/monitoring_action/jndi.properties 2009-01-21 15:38:08 UTC (rev 24850)
@@ -0,0 +1,5 @@
+java.naming.factory.initial=org.jnp.interfaces.NamingContextFactory
+java.naming.provider.url=jnp://localhost:1099
+java.naming.factory.url.pkgs=org.jboss.naming
+java.naming.factory.url.pkgs=org.jnp.interfaces
+
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/monitoring_action/juddi.properties
===================================================================
--- labs/jbossesb/trunk/product/samples/quickstarts/monitoring_action/juddi.properties 2009-01-21 09:35:03 UTC (rev 24846)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/monitoring_action/juddi.properties 2009-01-21 15:38:08 UTC (rev 24850)
@@ -1,69 +0,0 @@
-# jUDDI Registry Properties (used by RegistryServer)
-# see http://www.juddi.org for more information
-
-# The UDDI Operator Name
-juddi.operatorName = jUDDI.org
-
-# The i18n locale default codes
-juddi.i18n.languageCode = en
-juddi.i18n.countryCode = US
-
-# The UDDI DiscoveryURL Prefix
-juddi.discoveryURL = http://localhost:8080/juddi/uddiget.jsp?
-
-# The UDDI Operator Contact Email Address
-juddi.operatorEmailAddress = admin at juddi.org
-
-# The maximum name size and maximum number
-# of name elements allows in several of the
-# FindXxxx and SaveXxxx UDDI functions.
-juddi.maxNameLength=255
-juddi.maxNameElementsAllowed=5
-
-# The maximum number of UDDI artifacts allowed
-# per publisher. A value of '-1' indicates any
-# number of artifacts is valid (These values can be
-# overridden at the individual publisher level).
-juddi.maxBusinessesPerPublisher=25
-juddi.maxServicesPerBusiness=20
-juddi.maxBindingsPerService=10
-juddi.maxTModelsPerPublisher=100
-
-# jUDDI Authentication module to use
-juddi.auth = org.apache.juddi.auth.DefaultAuthenticator
-
-# jUDDI DataStore module currently to use
-juddi.dataStore = org.apache.juddi.datastore.jdbc.JDBCDataStore
-
-# use a dataSource (if set to false a direct
-# jdbc connection will be used.
-juddi.isUseDataSource=false
-juddi.jdbcDriver=com.mysql.jdbc.Driver
-juddi.jdbcUrl=jdbc:mysql://localhost:3306/juddi
-juddi.jdbcUsername=root
-juddi.jdbcPassword=admin
-# jUDDI DataSource to use
-# juddi.dataSource=java:comp/env/jdbc/MySqlDS
-
-# jUDDI UUIDGen implementation to use
-juddi.uuidgen = org.apache.juddi.uuidgen.DefaultUUIDGen
-
-# jUDDI Cryptor implementation to use
-juddi.cryptor = org.apache.juddi.cryptor.DefaultCryptor
-
-# jUDDI Validator to use
-juddi.validator=org.apache.juddi.validator.DefaultValidator
-
-# jUDDI Proxy Properties (used by RegistryProxy)
-juddi.proxy.adminURL = http://localhost:8080/juddi/admin
-juddi.proxy.inquiryURL = http://localhost:8080/juddi/inquiry
-juddi.proxy.publishURL = http://localhost:8080/juddi/publish
-juddi.proxy.transportClass = org.apache.juddi.proxy.AxisTransport
-juddi.proxy.securityProvider = com.sun.net.ssl.internal.ssl.Provider
-juddi.proxy.protocolHandler = com.sun.net.ssl.internal.www.protocol
-
-# JNDI settings (used by RMITransport)
-java.naming.factory.initial=org.jnp.interfaces.NamingContextFactory
-java.naming.provider.url=jnp://localhost:1099
-java.naming.factory.url.pkgs=org.jboss.naming
-
Copied: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/monitoring_action/juddi.properties (from rev 24846, labs/jbossesb/trunk/product/samples/quickstarts/monitoring_action/juddi.properties)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/monitoring_action/juddi.properties (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/monitoring_action/juddi.properties 2009-01-21 15:38:08 UTC (rev 24850)
@@ -0,0 +1,69 @@
+# jUDDI Registry Properties (used by RegistryServer)
+# see http://www.juddi.org for more information
+
+# The UDDI Operator Name
+juddi.operatorName = jUDDI.org
+
+# The i18n locale default codes
+juddi.i18n.languageCode = en
+juddi.i18n.countryCode = US
+
+# The UDDI DiscoveryURL Prefix
+juddi.discoveryURL = http://localhost:8080/juddi/uddiget.jsp?
+
+# The UDDI Operator Contact Email Address
+juddi.operatorEmailAddress = admin at juddi.org
+
+# The maximum name size and maximum number
+# of name elements allows in several of the
+# FindXxxx and SaveXxxx UDDI functions.
+juddi.maxNameLength=255
+juddi.maxNameElementsAllowed=5
+
+# The maximum number of UDDI artifacts allowed
+# per publisher. A value of '-1' indicates any
+# number of artifacts is valid (These values can be
+# overridden at the individual publisher level).
+juddi.maxBusinessesPerPublisher=25
+juddi.maxServicesPerBusiness=20
+juddi.maxBindingsPerService=10
+juddi.maxTModelsPerPublisher=100
+
+# jUDDI Authentication module to use
+juddi.auth = org.apache.juddi.auth.DefaultAuthenticator
+
+# jUDDI DataStore module currently to use
+juddi.dataStore = org.apache.juddi.datastore.jdbc.JDBCDataStore
+
+# use a dataSource (if set to false a direct
+# jdbc connection will be used.
+juddi.isUseDataSource=false
+juddi.jdbcDriver=com.mysql.jdbc.Driver
+juddi.jdbcUrl=jdbc:mysql://localhost:3306/juddi
+juddi.jdbcUsername=root
+juddi.jdbcPassword=admin
+# jUDDI DataSource to use
+# juddi.dataSource=java:comp/env/jdbc/MySqlDS
+
+# jUDDI UUIDGen implementation to use
+juddi.uuidgen = org.apache.juddi.uuidgen.DefaultUUIDGen
+
+# jUDDI Cryptor implementation to use
+juddi.cryptor = org.apache.juddi.cryptor.DefaultCryptor
+
+# jUDDI Validator to use
+juddi.validator=org.apache.juddi.validator.DefaultValidator
+
+# jUDDI Proxy Properties (used by RegistryProxy)
+juddi.proxy.adminURL = http://localhost:8080/juddi/admin
+juddi.proxy.inquiryURL = http://localhost:8080/juddi/inquiry
+juddi.proxy.publishURL = http://localhost:8080/juddi/publish
+juddi.proxy.transportClass = org.apache.juddi.proxy.AxisTransport
+juddi.proxy.securityProvider = com.sun.net.ssl.internal.ssl.Provider
+juddi.proxy.protocolHandler = com.sun.net.ssl.internal.www.protocol
+
+# JNDI settings (used by RMITransport)
+java.naming.factory.initial=org.jnp.interfaces.NamingContextFactory
+java.naming.provider.url=jnp://localhost:1099
+java.naming.factory.url.pkgs=org.jboss.naming
+
Copied: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/monitoring_action/lib (from rev 24846, labs/jbossesb/trunk/product/samples/quickstarts/monitoring_action/lib)
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/monitoring_action/listener.log
===================================================================
Copied: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/monitoring_action/listener.log (from rev 24846, labs/jbossesb/trunk/product/samples/quickstarts/monitoring_action/listener.log)
===================================================================
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/monitoring_action/log4j.xml
===================================================================
--- labs/jbossesb/trunk/product/samples/quickstarts/monitoring_action/log4j.xml 2009-01-21 09:35:03 UTC (rev 24846)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/monitoring_action/log4j.xml 2009-01-21 15:38:08 UTC (rev 24850)
@@ -1,79 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
-
-<!-- ===================================================================== -->
-<!-- -->
-<!-- Log4j Configuration -->
-<!-- -->
-<!-- ===================================================================== -->
-
-<!-- $Id: log4j.xml,v 1.26.2.5 2005/09/15 09:31:02 dimitris Exp $ -->
-
-<!--
- | For more configuration infromation and examples see the Jakarta Log4j
- | owebsite: http://jakarta.apache.org/log4j
- -->
-
-<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/" debug="false">
-
- <!-- ============================== -->
- <!-- Append messages to the console -->
- <!-- ============================== -->
-
- <appender name="CONSOLE" class="org.apache.log4j.ConsoleAppender">
- <errorHandler class="org.jboss.logging.util.OnlyOnceErrorHandler"/>
- <param name="Target" value="System.out"/>
- <param name="Threshold" value="INFO"/>
-
- <layout class="org.apache.log4j.PatternLayout">
- <!-- The default pattern: Date Priority [Category] Message\n -->
- <param name="ConversionPattern" value="%d{ABSOLUTE} %-5p [%t][%c{1}] %m%n"/>
- </layout>
- </appender>
-
- <!-- ================================= -->
- <!-- Preserve messages in a local file -->
- <!-- ================================= -->
-
- <!-- A size based file rolling appender -->
- <appender name="FILE" class="org.jboss.logging.appender.RollingFileAppender">
- <errorHandler class="org.jboss.logging.util.OnlyOnceErrorHandler"/>
- <param name="File" value="./listener.log"/>
- <param name="Append" value="false"/>
- <param name="MaxFileSize" value="500KB"/>
- <param name="MaxBackupIndex" value="1"/>
-
- <layout class="org.apache.log4j.PatternLayout">
- <param name="ConversionPattern" value="%d %-5p [%t][%c] %m%n"/>
- </layout>
- </appender>
-
- <!-- ================ -->
- <!-- Limit categories -->
- <!-- ================ -->
-
- <category name="org.jboss">
- <priority value="WARN"/>
- </category>
- <category name="org.jboss.soa.esb">
- <priority value="ERROR"/>
- </category>
- <category name="org.jboss.internal.soa.esb">
- <priority value="ERROR"/>
- </category>
- <category name="org.apache">
- <priority value="ERROR"/>
- </category>
- <category name="quickstart">
- <priority value="DEBUG"/>
- </category>
- <!-- ======================= -->
- <!-- Setup the Root category -->
- <!-- ======================= -->
-
- <root>
- <appender-ref ref="CONSOLE"/>
- <appender-ref ref="FILE"/>
- </root>
-
-</log4j:configuration>
Copied: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/monitoring_action/log4j.xml (from rev 24846, labs/jbossesb/trunk/product/samples/quickstarts/monitoring_action/log4j.xml)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/monitoring_action/log4j.xml (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/monitoring_action/log4j.xml 2009-01-21 15:38:08 UTC (rev 24850)
@@ -0,0 +1,79 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
+
+<!-- ===================================================================== -->
+<!-- -->
+<!-- Log4j Configuration -->
+<!-- -->
+<!-- ===================================================================== -->
+
+<!-- $Id: log4j.xml,v 1.26.2.5 2005/09/15 09:31:02 dimitris Exp $ -->
+
+<!--
+ | For more configuration infromation and examples see the Jakarta Log4j
+ | owebsite: http://jakarta.apache.org/log4j
+ -->
+
+<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/" debug="false">
+
+ <!-- ============================== -->
+ <!-- Append messages to the console -->
+ <!-- ============================== -->
+
+ <appender name="CONSOLE" class="org.apache.log4j.ConsoleAppender">
+ <errorHandler class="org.jboss.logging.util.OnlyOnceErrorHandler"/>
+ <param name="Target" value="System.out"/>
+ <param name="Threshold" value="INFO"/>
+
+ <layout class="org.apache.log4j.PatternLayout">
+ <!-- The default pattern: Date Priority [Category] Message\n -->
+ <param name="ConversionPattern" value="%d{ABSOLUTE} %-5p [%t][%c{1}] %m%n"/>
+ </layout>
+ </appender>
+
+ <!-- ================================= -->
+ <!-- Preserve messages in a local file -->
+ <!-- ================================= -->
+
+ <!-- A size based file rolling appender -->
+ <appender name="FILE" class="org.jboss.logging.appender.RollingFileAppender">
+ <errorHandler class="org.jboss.logging.util.OnlyOnceErrorHandler"/>
+ <param name="File" value="./listener.log"/>
+ <param name="Append" value="false"/>
+ <param name="MaxFileSize" value="500KB"/>
+ <param name="MaxBackupIndex" value="1"/>
+
+ <layout class="org.apache.log4j.PatternLayout">
+ <param name="ConversionPattern" value="%d %-5p [%t][%c] %m%n"/>
+ </layout>
+ </appender>
+
+ <!-- ================ -->
+ <!-- Limit categories -->
+ <!-- ================ -->
+
+ <category name="org.jboss">
+ <priority value="WARN"/>
+ </category>
+ <category name="org.jboss.soa.esb">
+ <priority value="ERROR"/>
+ </category>
+ <category name="org.jboss.internal.soa.esb">
+ <priority value="ERROR"/>
+ </category>
+ <category name="org.apache">
+ <priority value="ERROR"/>
+ </category>
+ <category name="quickstart">
+ <priority value="DEBUG"/>
+ </category>
+ <!-- ======================= -->
+ <!-- Setup the Root category -->
+ <!-- ======================= -->
+
+ <root>
+ <appender-ref ref="CONSOLE"/>
+ <appender-ref ref="FILE"/>
+ </root>
+
+</log4j:configuration>
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/monitoring_action/readme.txt
===================================================================
--- labs/jbossesb/trunk/product/samples/quickstarts/monitoring_action/readme.txt 2009-01-21 09:35:03 UTC (rev 24846)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/monitoring_action/readme.txt 2009-01-21 15:38:08 UTC (rev 24850)
@@ -1,38 +0,0 @@
-Overview:
-=========
- The purpose of the monitoring_action quickstart sample is to show
- the use of the MVELMonitoringAction. This action will allow you to use
- MVEL patterns and expressions parsed through beanshell in order to store
- information from your messages.
-
-Running this quickstart:
-========================
- Please refer to 'ant help-quickstarts' for prerequisites about the quickstarts
- and a more detailed descripton of the different ways to run the quickstarts.
-
- NOTE:
- After running the quickstart, (ant runtest), go to jmx-console. You
- should be able to find the object :
-
- jboss.esb:category=MVELMonitor,deployment=Quickstart_monitoring_action.esb,service-name=SimpleListener
-
- Two of the messages should meet the expression and will be stored in the bean.
-
-To Run standalone mode:
-=======================
- 1. In a command terminal window in the quickstart folder type
- 'ant deploy-jms-dests'.
- 2. In a command terminal window in this folder ("Window1"), type 'ant run'.
- 3. Open another command terminal window in this folder ("Window2"), type
- 'ant runtest'.
- 4. Switch back to "Window1" to see the output from the ESB
- 5. When finished, interrupt the ESB using Ctrl-C and, in this folder
- ("Window1"), type 'ant undeploy-jms-dests'.
-
-To Run '.esb' archive mode:
-===========================
- 1. In a command terminal window in this folder ("Window1"), type 'ant deploy'.
- 2. Open another command terminal window in this folder ("Window2"), type
- 'ant runtest'.
- 3. Switch back to Application Server console to see the output from the ESB
- 4. In this folder ("Window1"), type 'ant undeploy'.
Copied: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/monitoring_action/readme.txt (from rev 24846, labs/jbossesb/trunk/product/samples/quickstarts/monitoring_action/readme.txt)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/monitoring_action/readme.txt (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/monitoring_action/readme.txt 2009-01-21 15:38:08 UTC (rev 24850)
@@ -0,0 +1,38 @@
+Overview:
+=========
+ The purpose of the monitoring_action quickstart sample is to show
+ the use of the MVELMonitoringAction. This action will allow you to use
+ MVEL patterns and expressions parsed through beanshell in order to store
+ information from your messages.
+
+Running this quickstart:
+========================
+ Please refer to 'ant help-quickstarts' for prerequisites about the quickstarts
+ and a more detailed descripton of the different ways to run the quickstarts.
+
+ NOTE:
+ After running the quickstart, (ant runtest), go to jmx-console. You
+ should be able to find the object :
+
+ jboss.esb:category=MVELMonitor,deployment=Quickstart_monitoring_action.esb,service-name=SimpleListener
+
+ Two of the messages should meet the expression and will be stored in the bean.
+
+To Run standalone mode:
+=======================
+ 1. In a command terminal window in the quickstart folder type
+ 'ant deploy-jms-dests'.
+ 2. In a command terminal window in this folder ("Window1"), type 'ant run'.
+ 3. Open another command terminal window in this folder ("Window2"), type
+ 'ant runtest'.
+ 4. Switch back to "Window1" to see the output from the ESB
+ 5. When finished, interrupt the ESB using Ctrl-C and, in this folder
+ ("Window1"), type 'ant undeploy-jms-dests'.
+
+To Run '.esb' archive mode:
+===========================
+ 1. In a command terminal window in this folder ("Window1"), type 'ant deploy'.
+ 2. Open another command terminal window in this folder ("Window2"), type
+ 'ant runtest'.
+ 3. Switch back to Application Server console to see the output from the ESB
+ 4. In this folder ("Window1"), type 'ant undeploy'.
Copied: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/monitoring_action/src (from rev 24846, labs/jbossesb/trunk/product/samples/quickstarts/monitoring_action/src)
Copied: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/monitoring_action/src/org (from rev 24846, labs/jbossesb/trunk/product/samples/quickstarts/monitoring_action/src/org)
Copied: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/monitoring_action/src/org/jboss (from rev 24846, labs/jbossesb/trunk/product/samples/quickstarts/monitoring_action/src/org/jboss)
Copied: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/monitoring_action/src/org/jboss/soa (from rev 24846, labs/jbossesb/trunk/product/samples/quickstarts/monitoring_action/src/org/jboss/soa)
Copied: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/monitoring_action/src/org/jboss/soa/esb (from rev 24846, labs/jbossesb/trunk/product/samples/quickstarts/monitoring_action/src/org/jboss/soa/esb)
Copied: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/monitoring_action/src/org/jboss/soa/esb/samples (from rev 24846, labs/jbossesb/trunk/product/samples/quickstarts/monitoring_action/src/org/jboss/soa/esb/samples)
Copied: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/monitoring_action/src/org/jboss/soa/esb/samples/quickstart (from rev 24846, labs/jbossesb/trunk/product/samples/quickstarts/monitoring_action/src/org/jboss/soa/esb/samples/quickstart)
Copied: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/monitoring_action/src/org/jboss/soa/esb/samples/quickstart/monitoringaction (from rev 24846, labs/jbossesb/trunk/product/samples/quickstarts/monitoring_action/src/org/jboss/soa/esb/samples/quickstart/monitoringaction)
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/monitoring_action/src/org/jboss/soa/esb/samples/quickstart/monitoringaction/MyJMSListenerAction.java
===================================================================
--- labs/jbossesb/trunk/product/samples/quickstarts/monitoring_action/src/org/jboss/soa/esb/samples/quickstart/monitoringaction/MyJMSListenerAction.java 2009-01-21 09:35:03 UTC (rev 24846)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/monitoring_action/src/org/jboss/soa/esb/samples/quickstart/monitoringaction/MyJMSListenerAction.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -1,45 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2006, JBoss Inc., and others contributors as indicated
- * by the @authors tag. All rights reserved.
- * See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- * This copyrighted material is made available to anyone wishing to use,
- * modify, copy, or redistribute it subject to the terms and conditions
- * of the GNU Lesser General Public License, v. 2.1.
- * This program is distributed in the hope that it will be useful, but WITHOUT A
- * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
- * PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
- * You should have received a copy of the GNU Lesser General Public License,
- * v.2.1 along with this distribution; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
- * MA 02110-1301, USA.
- *
- * (C) 2005-2006,
- * @author JBoss Inc.
- */
-package org.jboss.soa.esb.samples.quickstart.monitoringaction;
-
-import org.jboss.soa.esb.actions.AbstractActionLifecycle;
-import org.jboss.soa.esb.helpers.ConfigTree;
-import org.jboss.soa.esb.message.Message;
-
-public class MyJMSListenerAction extends AbstractActionLifecycle
-{
-
- protected ConfigTree _config;
-
- public MyJMSListenerAction(ConfigTree config) { _config = config; }
-
-
- public Message displayMessage(Message message) throws Exception{
-
- System.out.println("&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&");
- System.out.println("Body: " + message.getBody().get()) ;
- System.out.println("&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&");
- return message;
-
- }
-
-
-}
Copied: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/monitoring_action/src/org/jboss/soa/esb/samples/quickstart/monitoringaction/MyJMSListenerAction.java (from rev 24846, labs/jbossesb/trunk/product/samples/quickstarts/monitoring_action/src/org/jboss/soa/esb/samples/quickstart/monitoringaction/MyJMSListenerAction.java)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/monitoring_action/src/org/jboss/soa/esb/samples/quickstart/monitoringaction/MyJMSListenerAction.java (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/monitoring_action/src/org/jboss/soa/esb/samples/quickstart/monitoringaction/MyJMSListenerAction.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -0,0 +1,45 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and others contributors as indicated
+ * by the @authors tag. All rights reserved.
+ * See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License, v. 2.1.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+ * PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
+ * You should have received a copy of the GNU Lesser General Public License,
+ * v.2.1 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301, USA.
+ *
+ * (C) 2005-2006,
+ * @author JBoss Inc.
+ */
+package org.jboss.soa.esb.samples.quickstart.monitoringaction;
+
+import org.jboss.soa.esb.actions.AbstractActionLifecycle;
+import org.jboss.soa.esb.helpers.ConfigTree;
+import org.jboss.soa.esb.message.Message;
+
+public class MyJMSListenerAction extends AbstractActionLifecycle
+{
+
+ protected ConfigTree _config;
+
+ public MyJMSListenerAction(ConfigTree config) { _config = config; }
+
+
+ public Message displayMessage(Message message) throws Exception{
+
+ System.out.println("&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&");
+ System.out.println("Body: " + message.getBody().get()) ;
+ System.out.println("&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&");
+ return message;
+
+ }
+
+
+}
Copied: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/monitoring_action/src/org/jboss/soa/esb/samples/quickstart/monitoringaction/test (from rev 24846, labs/jbossesb/trunk/product/samples/quickstarts/monitoring_action/src/org/jboss/soa/esb/samples/quickstart/monitoringaction/test)
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/monitoring_action/src/org/jboss/soa/esb/samples/quickstart/monitoringaction/test/SendEsbMessage.java
===================================================================
--- labs/jbossesb/trunk/product/samples/quickstarts/monitoring_action/src/org/jboss/soa/esb/samples/quickstart/monitoringaction/test/SendEsbMessage.java 2009-01-21 09:35:03 UTC (rev 24846)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/monitoring_action/src/org/jboss/soa/esb/samples/quickstart/monitoringaction/test/SendEsbMessage.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -1,59 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2006, JBoss Inc., and individual contributors as indicated
- * by the @authors tag. See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
-
-package org.jboss.soa.esb.samples.quickstart.monitoringaction.test;
-
-import org.jboss.soa.esb.message.Message;
-import org.jboss.soa.esb.message.format.MessageFactory;
-import org.jboss.soa.esb.client.ServiceInvoker;
-
-/**
- * Standalone class with to send ESB messages to a 'known' [category,name].
- * <p/> arg0 - service category
- * <br/>arg1 - service name
- * <br/>arg2 - Text of message to send
- *
- * @author <a href="mailto:schifest at heuristica.com.ar">schifest at heuristica.com.ar</a>
- * @since Version 4.0
- *
- */
-public class SendEsbMessage
-{
- public static void main(String args[]) throws Exception
- {
-// Setting the ConnectionFactory such that it will use scout
- System.setProperty("javax.xml.registry.ConnectionFactoryClass","org.apache.ws.scout.registry.ConnectionFactoryImpl");
-
- if (args.length < 3)
- {
- System.out.println("Usage SendEsbMessage <category> <name> <text to send>");
- }
-
- Message esbMessage = MessageFactory.getInstance().getMessage();
-
- esbMessage.getBody().add(args[2]);
-
- new ServiceInvoker(args[0], args[1]).deliverAsync(esbMessage);
-
- }
-
-}
Copied: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/monitoring_action/src/org/jboss/soa/esb/samples/quickstart/monitoringaction/test/SendEsbMessage.java (from rev 24846, labs/jbossesb/trunk/product/samples/quickstarts/monitoring_action/src/org/jboss/soa/esb/samples/quickstart/monitoringaction/test/SendEsbMessage.java)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/monitoring_action/src/org/jboss/soa/esb/samples/quickstart/monitoringaction/test/SendEsbMessage.java (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/monitoring_action/src/org/jboss/soa/esb/samples/quickstart/monitoringaction/test/SendEsbMessage.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -0,0 +1,59 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+
+package org.jboss.soa.esb.samples.quickstart.monitoringaction.test;
+
+import org.jboss.soa.esb.message.Message;
+import org.jboss.soa.esb.message.format.MessageFactory;
+import org.jboss.soa.esb.client.ServiceInvoker;
+
+/**
+ * Standalone class with to send ESB messages to a 'known' [category,name].
+ * <p/> arg0 - service category
+ * <br/>arg1 - service name
+ * <br/>arg2 - Text of message to send
+ *
+ * @author <a href="mailto:schifest at heuristica.com.ar">schifest at heuristica.com.ar</a>
+ * @since Version 4.0
+ *
+ */
+public class SendEsbMessage
+{
+ public static void main(String args[]) throws Exception
+ {
+// Setting the ConnectionFactory such that it will use scout
+ System.setProperty("javax.xml.registry.ConnectionFactoryClass","org.apache.ws.scout.registry.ConnectionFactoryImpl");
+
+ if (args.length < 3)
+ {
+ System.out.println("Usage SendEsbMessage <category> <name> <text to send>");
+ }
+
+ Message esbMessage = MessageFactory.getInstance().getMessage();
+
+ esbMessage.getBody().add(args[2]);
+
+ new ServiceInvoker(args[0], args[1]).deliverAsync(esbMessage);
+
+ }
+
+}
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/monitoring_action/src/org/jboss/soa/esb/samples/quickstart/monitoringaction/test/SendJMSMessage.java
===================================================================
--- labs/jbossesb/trunk/product/samples/quickstarts/monitoring_action/src/org/jboss/soa/esb/samples/quickstart/monitoringaction/test/SendJMSMessage.java 2009-01-21 09:35:03 UTC (rev 24846)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/monitoring_action/src/org/jboss/soa/esb/samples/quickstart/monitoringaction/test/SendJMSMessage.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -1,87 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2006, JBoss Inc., and others contributors as indicated
- * by the @authors tag. All rights reserved.
- * See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- * This copyrighted material is made available to anyone wishing to use,
- * modify, copy, or redistribute it subject to the terms and conditions
- * of the GNU Lesser General Public License, v. 2.1.
- * This program is distributed in the hope that it will be useful, but WITHOUT A
- * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
- * PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
- * You should have received a copy of the GNU Lesser General Public License,
- * v.2.1 along with this distribution; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
- * MA 02110-1301, USA.
- *
- * (C) 2005-2006,
- * @author JBoss Inc.
- */
-package org.jboss.soa.esb.samples.quickstart.monitoringaction.test;
-
-import java.util.Properties;
-
-import javax.jms.JMSException;
-import javax.jms.ObjectMessage;
-import javax.jms.Queue;
-import javax.jms.QueueConnection;
-import javax.jms.QueueConnectionFactory;
-import javax.jms.QueueSender;
-import javax.jms.QueueSession;
-import javax.naming.Context;
-import javax.naming.InitialContext;
-import javax.naming.NamingException;
-
-public class SendJMSMessage {
- QueueConnection conn;
- QueueSession session;
- Queue que;
-
-
- public void setupConnection() throws JMSException, NamingException
- {
- Properties properties1 = new Properties();
- properties1.put(Context.INITIAL_CONTEXT_FACTORY,
- "org.jnp.interfaces.NamingContextFactory");
- properties1.put(Context.URL_PKG_PREFIXES,
- "org.jboss.naming:org.jnp.interfaces");
- properties1.put(Context.PROVIDER_URL, "jnp://127.0.0.1:1099");
- InitialContext iniCtx = new InitialContext(properties1);
-
- Object tmp = iniCtx.lookup("ConnectionFactory");
- QueueConnectionFactory qcf = (QueueConnectionFactory) tmp;
- conn = qcf.createQueueConnection();
- que = (Queue) iniCtx.lookup("queue/quickstart_monitoringaction_Request_gw");
- session = conn.createQueueSession(false, QueueSession.AUTO_ACKNOWLEDGE);
- conn.start();
- System.out.println("Connection Started");
- }
-
- public void stop() throws JMSException
- {
- conn.stop();
- session.close();
- conn.close();
- }
-
- public void sendAMessage(String msg) throws JMSException {
-
- QueueSender send = session.createSender(que);
- ObjectMessage tm = session.createObjectMessage(msg);
-
- send.send(tm);
- send.close();
- }
-
-
- public static void main(String args[]) throws Exception
- {
- SendJMSMessage sm = new SendJMSMessage();
- sm.setupConnection();
- sm.sendAMessage(args[0]);
- sm.stop();
-
- }
-
-}
Copied: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/monitoring_action/src/org/jboss/soa/esb/samples/quickstart/monitoringaction/test/SendJMSMessage.java (from rev 24846, labs/jbossesb/trunk/product/samples/quickstarts/monitoring_action/src/org/jboss/soa/esb/samples/quickstart/monitoringaction/test/SendJMSMessage.java)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/monitoring_action/src/org/jboss/soa/esb/samples/quickstart/monitoringaction/test/SendJMSMessage.java (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/monitoring_action/src/org/jboss/soa/esb/samples/quickstart/monitoringaction/test/SendJMSMessage.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -0,0 +1,87 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and others contributors as indicated
+ * by the @authors tag. All rights reserved.
+ * See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License, v. 2.1.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+ * PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
+ * You should have received a copy of the GNU Lesser General Public License,
+ * v.2.1 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301, USA.
+ *
+ * (C) 2005-2006,
+ * @author JBoss Inc.
+ */
+package org.jboss.soa.esb.samples.quickstart.monitoringaction.test;
+
+import java.util.Properties;
+
+import javax.jms.JMSException;
+import javax.jms.ObjectMessage;
+import javax.jms.Queue;
+import javax.jms.QueueConnection;
+import javax.jms.QueueConnectionFactory;
+import javax.jms.QueueSender;
+import javax.jms.QueueSession;
+import javax.naming.Context;
+import javax.naming.InitialContext;
+import javax.naming.NamingException;
+
+public class SendJMSMessage {
+ QueueConnection conn;
+ QueueSession session;
+ Queue que;
+
+
+ public void setupConnection() throws JMSException, NamingException
+ {
+ Properties properties1 = new Properties();
+ properties1.put(Context.INITIAL_CONTEXT_FACTORY,
+ "org.jnp.interfaces.NamingContextFactory");
+ properties1.put(Context.URL_PKG_PREFIXES,
+ "org.jboss.naming:org.jnp.interfaces");
+ properties1.put(Context.PROVIDER_URL, "jnp://127.0.0.1:1099");
+ InitialContext iniCtx = new InitialContext(properties1);
+
+ Object tmp = iniCtx.lookup("ConnectionFactory");
+ QueueConnectionFactory qcf = (QueueConnectionFactory) tmp;
+ conn = qcf.createQueueConnection();
+ que = (Queue) iniCtx.lookup("queue/quickstart_monitoringaction_Request_gw");
+ session = conn.createQueueSession(false, QueueSession.AUTO_ACKNOWLEDGE);
+ conn.start();
+ System.out.println("Connection Started");
+ }
+
+ public void stop() throws JMSException
+ {
+ conn.stop();
+ session.close();
+ conn.close();
+ }
+
+ public void sendAMessage(String msg) throws JMSException {
+
+ QueueSender send = session.createSender(que);
+ ObjectMessage tm = session.createObjectMessage(msg);
+
+ send.send(tm);
+ send.close();
+ }
+
+
+ public static void main(String args[]) throws Exception
+ {
+ SendJMSMessage sm = new SendJMSMessage();
+ sm.setupConnection();
+ sm.sendAMessage(args[0]);
+ sm.stop();
+
+ }
+
+}
Copied: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice (from rev 24846, labs/jbossesb/trunk/product/samples/quickstarts/publish_as_webservice)
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice/build.xml
===================================================================
--- labs/jbossesb/trunk/product/samples/quickstarts/publish_as_webservice/build.xml 2009-01-21 09:35:03 UTC (rev 24846)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice/build.xml 2009-01-21 15:38:08 UTC (rev 24850)
@@ -1,45 +0,0 @@
-<project name="Quickstart_publish_as_webservice" default="run" basedir=".">
-
- <description>
- ${ant.project.name}
- ${line.separator}
- </description>
-
- <!-- additional deploys -->
- <property name="additional.deploys" value="*.xsd"/>
-
- <!-- Import the base Ant build script... -->
- <import file="../conf/base-build.xml"/>
- <target name="runtest" depends="compile" description="sends soap message to published web service">
- <echo>Send soap message to published web service and receive reponse</echo>
- <java fork="yes" classname="org.jboss.soa.esb.samples.quickstart.publishAsWebservice.test.SOAPTest" failonerror="true">
- <arg value="soap-userpass-message.xml"/>
- <classpath refid="exec-classpath"/>
- </java>
- <echo/>
- <echo/>
- <echo>Send soap message to published web service and receive soap fault message</echo>
- <java fork="yes" classname="org.jboss.soa.esb.samples.quickstart.publishAsWebservice.test.SOAPTest" failonerror="true">
- <arg value="error-soap-message.xml"/>
- <classpath refid="exec-classpath"/>
- </java>
- </target>
-
- <target name="sendesb" depends="compile" description="send esb Message to esb service">
- <echo>Send esb message to esb service and get response</echo>
- <java fork="yes" classname="org.jboss.soa.esb.samples.quickstart.publishAsWebservice.test.SendEsbMessage" failonerror="true">
- <arg value="ESBServiceSample"/> <!-- service category -->
- <arg value="HelloWorldPubService"/> <!-- service name -->
- <arg value="HelloWorld"/> <!-- Message text -->
- <classpath refid="exec-classpath"/>
- </java>
- <echo>Send esb message to esb service and get error</echo>
- <java fork="yes" classname="org.jboss.soa.esb.samples.quickstart.publishAsWebservice.test.SendEsbMessage" failonerror="true">
- <arg value="ESBServiceSample"/> <!-- service category -->
- <arg value="HelloWorldPubService"/> <!-- service name -->
- <arg value="Error"/> <!-- Message text -->
- <classpath refid="exec-classpath"/>
- </java>
-
- </target>
-</project>
Copied: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice/build.xml (from rev 24846, labs/jbossesb/trunk/product/samples/quickstarts/publish_as_webservice/build.xml)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice/build.xml (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice/build.xml 2009-01-21 15:38:08 UTC (rev 24850)
@@ -0,0 +1,45 @@
+<project name="Quickstart_publish_as_webservice" default="run" basedir=".">
+
+ <description>
+ ${ant.project.name}
+ ${line.separator}
+ </description>
+
+ <!-- additional deploys -->
+ <property name="additional.deploys" value="*.xsd"/>
+
+ <!-- Import the base Ant build script... -->
+ <import file="../conf/base-build.xml"/>
+ <target name="runtest" depends="compile" description="sends soap message to published web service">
+ <echo>Send soap message to published web service and receive reponse</echo>
+ <java fork="yes" classname="org.jboss.soa.esb.samples.quickstart.publishAsWebservice.test.SOAPTest" failonerror="true">
+ <arg value="soap-userpass-message.xml"/>
+ <classpath refid="exec-classpath"/>
+ </java>
+ <echo/>
+ <echo/>
+ <echo>Send soap message to published web service and receive soap fault message</echo>
+ <java fork="yes" classname="org.jboss.soa.esb.samples.quickstart.publishAsWebservice.test.SOAPTest" failonerror="true">
+ <arg value="error-soap-message.xml"/>
+ <classpath refid="exec-classpath"/>
+ </java>
+ </target>
+
+ <target name="sendesb" depends="compile" description="send esb Message to esb service">
+ <echo>Send esb message to esb service and get response</echo>
+ <java fork="yes" classname="org.jboss.soa.esb.samples.quickstart.publishAsWebservice.test.SendEsbMessage" failonerror="true">
+ <arg value="ESBServiceSample"/> <!-- service category -->
+ <arg value="HelloWorldPubService"/> <!-- service name -->
+ <arg value="HelloWorld"/> <!-- Message text -->
+ <classpath refid="exec-classpath"/>
+ </java>
+ <echo>Send esb message to esb service and get error</echo>
+ <java fork="yes" classname="org.jboss.soa.esb.samples.quickstart.publishAsWebservice.test.SendEsbMessage" failonerror="true">
+ <arg value="ESBServiceSample"/> <!-- service category -->
+ <arg value="HelloWorldPubService"/> <!-- service name -->
+ <arg value="Error"/> <!-- Message text -->
+ <classpath refid="exec-classpath"/>
+ </java>
+
+ </target>
+</project>
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice/deployment.xml
===================================================================
--- labs/jbossesb/trunk/product/samples/quickstarts/publish_as_webservice/deployment.xml 2009-01-21 09:35:03 UTC (rev 24846)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice/deployment.xml 2009-01-21 15:38:08 UTC (rev 24850)
@@ -1,5 +0,0 @@
-<jbossesb-deployment>
- <depends>jboss.esb:deployment=soap.esb</depends>
- <depends>jboss.esb.quickstart.destination:service=Queue,name=quickstart_publish_as_webservice_Request_esb</depends>
- <depends>jboss.esb.quickstart.destination:service=Queue,name=quickstart_publish_as_webservice_Request_esb_reply</depends>
-</jbossesb-deployment>
Copied: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice/deployment.xml (from rev 24846, labs/jbossesb/trunk/product/samples/quickstarts/publish_as_webservice/deployment.xml)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice/deployment.xml (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice/deployment.xml 2009-01-21 15:38:08 UTC (rev 24850)
@@ -0,0 +1,5 @@
+<jbossesb-deployment>
+ <depends>jboss.esb:deployment=soap.esb</depends>
+ <depends>jboss.esb.quickstart.destination:service=Queue,name=quickstart_publish_as_webservice_Request_esb</depends>
+ <depends>jboss.esb.quickstart.destination:service=Queue,name=quickstart_publish_as_webservice_Request_esb_reply</depends>
+</jbossesb-deployment>
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice/error-soap-message.xml
===================================================================
--- labs/jbossesb/trunk/product/samples/quickstarts/publish_as_webservice/error-soap-message.xml 2009-01-21 09:35:03 UTC (rev 24846)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice/error-soap-message.xml 2009-01-21 15:38:08 UTC (rev 24850)
@@ -1,9 +0,0 @@
-<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xmlns:xsd="http://www.w3.org/2001/XMLSchema"
- xmlns:say="http://www.jboss.org/sayHi">
- <soap:Body>
- <say:sayHi><say:arg0>Error</say:arg0></say:sayHi>
- </soap:Body>
-
-</soap:Envelope>
Copied: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice/error-soap-message.xml (from rev 24846, labs/jbossesb/trunk/product/samples/quickstarts/publish_as_webservice/error-soap-message.xml)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice/error-soap-message.xml (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice/error-soap-message.xml 2009-01-21 15:38:08 UTC (rev 24850)
@@ -0,0 +1,9 @@
+<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+ xmlns:say="http://www.jboss.org/sayHi">
+ <soap:Body>
+ <say:sayHi><say:arg0>Error</say:arg0></say:sayHi>
+ </soap:Body>
+
+</soap:Envelope>
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice/fault.xsd
===================================================================
--- labs/jbossesb/trunk/product/samples/quickstarts/publish_as_webservice/fault.xsd 2009-01-21 09:35:03 UTC (rev 24846)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice/fault.xsd 2009-01-21 15:38:08 UTC (rev 24850)
@@ -1,9 +0,0 @@
-<xs:schema version="1.0" targetNamespace="http://www.jboss.org/sayHi" xmlns:x1="http://www.jboss.org/sayHi" xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
- <xs:element name="sayFault" type="x1:fault"/>
- <xs:complexType name="fault">
- <xs:sequence>
- <xs:element name="code" type="xs:string"/>
- <xs:element name="faultString" type="xs:string"/>
- </xs:sequence>
- </xs:complexType>
-</xs:schema>
\ No newline at end of file
Copied: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice/fault.xsd (from rev 24846, labs/jbossesb/trunk/product/samples/quickstarts/publish_as_webservice/fault.xsd)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice/fault.xsd (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice/fault.xsd 2009-01-21 15:38:08 UTC (rev 24850)
@@ -0,0 +1,9 @@
+<xs:schema version="1.0" targetNamespace="http://www.jboss.org/sayHi" xmlns:x1="http://www.jboss.org/sayHi" xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
+ <xs:element name="sayFault" type="x1:fault"/>
+ <xs:complexType name="fault">
+ <xs:sequence>
+ <xs:element name="code" type="xs:string"/>
+ <xs:element name="faultString" type="xs:string"/>
+ </xs:sequence>
+ </xs:complexType>
+</xs:schema>
\ No newline at end of file
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice/jbm-queue-service.xml
===================================================================
--- labs/jbossesb/trunk/product/samples/quickstarts/publish_as_webservice/jbm-queue-service.xml 2009-01-21 09:35:03 UTC (rev 24846)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice/jbm-queue-service.xml 2009-01-21 15:38:08 UTC (rev 24850)
@@ -1,15 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<server>
- <mbean code="org.jboss.jms.server.destination.QueueService"
- name="jboss.esb.quickstart.destination:service=Queue,name=quickstart_publish_as_webservice_Request_esb"
- xmbean-dd="xmdesc/Queue-xmbean.xml">
- <depends optional-attribute-name="ServerPeer">jboss.messaging:service=ServerPeer</depends>
- <depends>jboss.messaging:service=PostOffice</depends>
- </mbean>
- <mbean code="org.jboss.jms.server.destination.QueueService"
- name="jboss.esb.quickstart.destination:service=Queue,name=quickstart_publish_as_webservice_Request_esb_reply"
- xmbean-dd="xmdesc/Queue-xmbean.xml">
- <depends optional-attribute-name="ServerPeer">jboss.messaging:service=ServerPeer</depends>
- <depends>jboss.messaging:service=PostOffice</depends>
- </mbean>
-</server>
Copied: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice/jbm-queue-service.xml (from rev 24846, labs/jbossesb/trunk/product/samples/quickstarts/publish_as_webservice/jbm-queue-service.xml)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice/jbm-queue-service.xml (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice/jbm-queue-service.xml 2009-01-21 15:38:08 UTC (rev 24850)
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<server>
+ <mbean code="org.jboss.jms.server.destination.QueueService"
+ name="jboss.esb.quickstart.destination:service=Queue,name=quickstart_publish_as_webservice_Request_esb"
+ xmbean-dd="xmdesc/Queue-xmbean.xml">
+ <depends optional-attribute-name="ServerPeer">jboss.messaging:service=ServerPeer</depends>
+ <depends>jboss.messaging:service=PostOffice</depends>
+ </mbean>
+ <mbean code="org.jboss.jms.server.destination.QueueService"
+ name="jboss.esb.quickstart.destination:service=Queue,name=quickstart_publish_as_webservice_Request_esb_reply"
+ xmbean-dd="xmdesc/Queue-xmbean.xml">
+ <depends optional-attribute-name="ServerPeer">jboss.messaging:service=ServerPeer</depends>
+ <depends>jboss.messaging:service=PostOffice</depends>
+ </mbean>
+</server>
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice/jbmq-queue-service.xml
===================================================================
--- labs/jbossesb/trunk/product/samples/quickstarts/publish_as_webservice/jbmq-queue-service.xml 2009-01-21 09:35:03 UTC (rev 24846)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice/jbmq-queue-service.xml 2009-01-21 15:38:08 UTC (rev 24850)
@@ -1,15 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<server>
- <mbean code="org.jboss.mq.server.jmx.Queue"
- name="jboss.esb.quickstart.destination:service=Queue,name=quickstart_publish_as_webservice_Request_esb">
- <depends optional-attribute-name="DestinationManager">
- jboss.mq:service=DestinationManager
- </depends>
- </mbean>
- <mbean code="org.jboss.mq.server.jmx.Queue"
- name="jboss.esb.quickstart.destination:service=Queue,name=quickstart_publish_as_webservice_Request_esb_reply">
- <depends optional-attribute-name="DestinationManager">
- jboss.mq:service=DestinationManager
- </depends>
- </mbean>
-</server>
Copied: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice/jbmq-queue-service.xml (from rev 24846, labs/jbossesb/trunk/product/samples/quickstarts/publish_as_webservice/jbmq-queue-service.xml)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice/jbmq-queue-service.xml (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice/jbmq-queue-service.xml 2009-01-21 15:38:08 UTC (rev 24850)
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<server>
+ <mbean code="org.jboss.mq.server.jmx.Queue"
+ name="jboss.esb.quickstart.destination:service=Queue,name=quickstart_publish_as_webservice_Request_esb">
+ <depends optional-attribute-name="DestinationManager">
+ jboss.mq:service=DestinationManager
+ </depends>
+ </mbean>
+ <mbean code="org.jboss.mq.server.jmx.Queue"
+ name="jboss.esb.quickstart.destination:service=Queue,name=quickstart_publish_as_webservice_Request_esb_reply">
+ <depends optional-attribute-name="DestinationManager">
+ jboss.mq:service=DestinationManager
+ </depends>
+ </mbean>
+</server>
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice/jboss-esb.xml
===================================================================
--- labs/jbossesb/trunk/product/samples/quickstarts/publish_as_webservice/jboss-esb.xml 2009-01-21 09:35:03 UTC (rev 24846)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice/jboss-esb.xml 2009-01-21 15:38:08 UTC (rev 24850)
@@ -1,34 +0,0 @@
-<?xml version = "1.0" encoding = "UTF-8"?>
-<jbossesb xmlns="http://anonsvn.labs.jboss.com/labs/jbossesb/trunk/product/etc/schemas/xml/jbossesb-1.0.1.xsd" parameterReloadSecs="5">
-
- <providers>
- <jms-provider name="JBossMQ" connection-factory="ConnectionFactory">
- <jms-bus busid="quickstartEsbChannel">
- <jms-message-filter
- dest-type="QUEUE"
- dest-name="queue/quickstart_publish_as_webservice_Request_esb"
- selector="serviceName='HelloWorldPubService'"
- />
- </jms-bus>
-
- </jms-provider>
- </providers>
-
- <services>
- <service
- category="ESBServiceSample"
- name="HelloWorldPubService"
- description="Hello world ESB Service">
- <listeners>
- <jms-listener name="helloWorld"
- busidref="quickstartEsbChannel"
- maxThreads="1"
- />
- </listeners>
- <actions inXsd="/request.xsd" outXsd="/response.xsd" faultXsd="/fault.xsd">
- <action name="action" class="org.jboss.soa.esb.samples.quickstart.publishAsWebservice.ESBWSListenerAction" process="displayMessage"/>
- </actions>
- </service>
- </services>
-
-</jbossesb>
Copied: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice/jboss-esb.xml (from rev 24846, labs/jbossesb/trunk/product/samples/quickstarts/publish_as_webservice/jboss-esb.xml)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice/jboss-esb.xml (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice/jboss-esb.xml 2009-01-21 15:38:08 UTC (rev 24850)
@@ -0,0 +1,34 @@
+<?xml version = "1.0" encoding = "UTF-8"?>
+<jbossesb xmlns="http://anonsvn.labs.jboss.com/labs/jbossesb/trunk/product/etc/schemas/xml/jbossesb-1.0.1.xsd" parameterReloadSecs="5">
+
+ <providers>
+ <jms-provider name="JBossMQ" connection-factory="ConnectionFactory">
+ <jms-bus busid="quickstartEsbChannel">
+ <jms-message-filter
+ dest-type="QUEUE"
+ dest-name="queue/quickstart_publish_as_webservice_Request_esb"
+ selector="serviceName='HelloWorldPubService'"
+ />
+ </jms-bus>
+
+ </jms-provider>
+ </providers>
+
+ <services>
+ <service
+ category="ESBServiceSample"
+ name="HelloWorldPubService"
+ description="Hello world ESB Service">
+ <listeners>
+ <jms-listener name="helloWorld"
+ busidref="quickstartEsbChannel"
+ maxThreads="1"
+ />
+ </listeners>
+ <actions inXsd="/request.xsd" outXsd="/response.xsd" faultXsd="/fault.xsd">
+ <action name="action" class="org.jboss.soa.esb.samples.quickstart.publishAsWebservice.ESBWSListenerAction" process="displayMessage"/>
+ </actions>
+ </service>
+ </services>
+
+</jbossesb>
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice/jbossesb-properties.xml
===================================================================
--- labs/jbossesb/trunk/product/samples/quickstarts/publish_as_webservice/jbossesb-properties.xml 2009-01-21 09:35:03 UTC (rev 24846)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice/jbossesb-properties.xml 2009-01-21 15:38:08 UTC (rev 24850)
@@ -1,86 +0,0 @@
-<?xml version="1.0" encoding="ISO-8859-1"?>
-<!--
- JBoss, Home of Professional Open Source
- Copyright 2006, JBoss Inc., and others contributors as indicated
- by the @authors tag. All rights reserved.
- See the copyright.txt in the distribution for a
- full listing of individual contributors.
- This copyrighted material is made available to anyone wishing to use,
- modify, copy, or redistribute it subject to the terms and conditions
- of the GNU Lesser General Public License, v. 2.1.
- This program is distributed in the hope that it will be useful, but WITHOUT A
- WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
- PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
- You should have received a copy of the GNU Lesser General Public License,
- v.2.1 along with this distribution; if not, write to the Free Software
- Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
- MA 02110-1301, USA.
-
- (C) 2005-2006,
- @author JBoss Inc.
--->
-<!-- $Id: jbossesb-unittest-properties.xml $ -->
-<!--
- These options are described in the JBossESB manual.
- Defaults are provided here for convenience only.
-
- Please read through this file prior to using the system, and consider
- updating the specified entries.
--->
-<esb
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:noNamespaceSchemaLocation="jbossesb-1_0.xsd">
- <properties name="core">
- <property name="org.jboss.soa.esb.jndi.server.type" value="jboss"/>
- <property name="org.jboss.soa.esb.jndi.server.url" value="localhost"/>
- <property name="org.jboss.soa.esb.persistence.connection.factory" value="org.jboss.internal.soa.esb.persistence.format.MessageStoreFactoryImpl"/>
- <property name="jboss.esb.invm.scope.default" value="NONE"/>
- </properties>
- <properties name="registry">
- <property name="org.jboss.soa.esb.registry.queryManagerURI"
- value="jnp://localhost:1099/InquiryService?org.apache.juddi.registry.rmi.Inquiry#inquire"/>
- <property name="org.jboss.soa.esb.registry.lifeCycleManagerURI"
- value="jnp://localhost:1099/PublishService?org.apache.juddi.registry.rmi.Publish#publish" />
- <property name="org.jboss.soa.esb.registry.implementationClass"
- value="org.jboss.internal.soa.esb.services.registry.JAXRRegistryImpl"/>
- <property name="org.jboss.soa.esb.registry.factoryClass"
- value="org.apache.ws.scout.registry.ConnectionFactoryImpl"/>
- <property name="org.jboss.soa.esb.registry.user"
- value="jbossesb"/>
- <property name="org.jboss.soa.esb.registry.password"
- value="password"/>
- <!-- the following parameter is scout specific to set the type of communication between scout and the UDDI (embedded, rmi, soap) -->
- <property name="org.jboss.soa.esb.scout.proxy.transportClass"
- value="org.apache.ws.scout.transport.RMITransport"/>
- </properties>
- <properties name="transports" depends="core">
- <property name="org.jboss.soa.esb.mail.smtp.host" value="localhost"/>
- <property name="org.jboss.soa.esb.mail.smtp.user" value="jbossesb"/>
- <property name="org.jboss.soa.esb.mail.smtp.password" value=""/>
- <property name="org.jboss.soa.esb.mail.smtp.port" value="25"/>
- </properties>
- <properties name="connection">
- <property name="min-pool-size" value="5"/>
- <property name="max-pool=size" value="10"/>
- <property name="blocking-timeout-millis" value="5000"/>
- <property name="abandoned-connection-timeout" value="10000"/>
- <property name="abandoned-connection-time-interval" value="30000"/>
- </properties>
- <properties name="dbstore">
- <property name="org.jboss.soa.esb.persistence.db.connection.url" value="jdbc:hsqldb:hsql://localhost:9001/"/>
- <property name="org.jboss.soa.esb.persistence.db.jdbc.driver" value="org.hsqldb.jdbcDriver"/>
- <property name="org.jboss.soa.esb.persistence.db.user" value="sa"/>
- <property name="org.jboss.soa.esb.persistence.db.pwd" value=""/>
- <property name="org.jboss.soa.esb.persistence.db.pool.initial.size" value="2"/>
- <property name="org.jboss.soa.esb.persistence.db.pool.min.size" value="2"/>
- <property name="org.jboss.soa.esb.persistence.db.pool.max.size" value="5"/>
- <!--table managed by pool to test for valid connections - created by pool automatically -->
- <property name="org.jboss.soa.esb.persistence.db.pool.test.table" value="pooltest"/>
- <!-- # of milliseconds to timeout waiting for a connection from pool -->
- <property name="org.jboss.soa.esb.persistence.db.pool.timeout.millis" value="5000"/>
- <property name="org.jboss.soa.esb.persistence.db.conn.manager" value="org.jboss.internal.soa.esb.persistence.manager.StandaloneConnectionManager"/>
- </properties>
- <properties name="messagerouting">
- <property name="org.jboss.soa.esb.routing.cbrClass" value="org.jboss.internal.soa.esb.services.routing.cbr.JBossRulesRouter"/>
- </properties>
-</esb>
Copied: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice/jbossesb-properties.xml (from rev 24846, labs/jbossesb/trunk/product/samples/quickstarts/publish_as_webservice/jbossesb-properties.xml)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice/jbossesb-properties.xml (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice/jbossesb-properties.xml 2009-01-21 15:38:08 UTC (rev 24850)
@@ -0,0 +1,86 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!--
+ JBoss, Home of Professional Open Source
+ Copyright 2006, JBoss Inc., and others contributors as indicated
+ by the @authors tag. All rights reserved.
+ See the copyright.txt in the distribution for a
+ full listing of individual contributors.
+ This copyrighted material is made available to anyone wishing to use,
+ modify, copy, or redistribute it subject to the terms and conditions
+ of the GNU Lesser General Public License, v. 2.1.
+ This program is distributed in the hope that it will be useful, but WITHOUT A
+ WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+ PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
+ You should have received a copy of the GNU Lesser General Public License,
+ v.2.1 along with this distribution; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ MA 02110-1301, USA.
+
+ (C) 2005-2006,
+ @author JBoss Inc.
+-->
+<!-- $Id: jbossesb-unittest-properties.xml $ -->
+<!--
+ These options are described in the JBossESB manual.
+ Defaults are provided here for convenience only.
+
+ Please read through this file prior to using the system, and consider
+ updating the specified entries.
+-->
+<esb
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:noNamespaceSchemaLocation="jbossesb-1_0.xsd">
+ <properties name="core">
+ <property name="org.jboss.soa.esb.jndi.server.type" value="jboss"/>
+ <property name="org.jboss.soa.esb.jndi.server.url" value="localhost"/>
+ <property name="org.jboss.soa.esb.persistence.connection.factory" value="org.jboss.internal.soa.esb.persistence.format.MessageStoreFactoryImpl"/>
+ <property name="jboss.esb.invm.scope.default" value="NONE"/>
+ </properties>
+ <properties name="registry">
+ <property name="org.jboss.soa.esb.registry.queryManagerURI"
+ value="jnp://localhost:1099/InquiryService?org.apache.juddi.registry.rmi.Inquiry#inquire"/>
+ <property name="org.jboss.soa.esb.registry.lifeCycleManagerURI"
+ value="jnp://localhost:1099/PublishService?org.apache.juddi.registry.rmi.Publish#publish" />
+ <property name="org.jboss.soa.esb.registry.implementationClass"
+ value="org.jboss.internal.soa.esb.services.registry.JAXRRegistryImpl"/>
+ <property name="org.jboss.soa.esb.registry.factoryClass"
+ value="org.apache.ws.scout.registry.ConnectionFactoryImpl"/>
+ <property name="org.jboss.soa.esb.registry.user"
+ value="jbossesb"/>
+ <property name="org.jboss.soa.esb.registry.password"
+ value="password"/>
+ <!-- the following parameter is scout specific to set the type of communication between scout and the UDDI (embedded, rmi, soap) -->
+ <property name="org.jboss.soa.esb.scout.proxy.transportClass"
+ value="org.apache.ws.scout.transport.RMITransport"/>
+ </properties>
+ <properties name="transports" depends="core">
+ <property name="org.jboss.soa.esb.mail.smtp.host" value="localhost"/>
+ <property name="org.jboss.soa.esb.mail.smtp.user" value="jbossesb"/>
+ <property name="org.jboss.soa.esb.mail.smtp.password" value=""/>
+ <property name="org.jboss.soa.esb.mail.smtp.port" value="25"/>
+ </properties>
+ <properties name="connection">
+ <property name="min-pool-size" value="5"/>
+ <property name="max-pool=size" value="10"/>
+ <property name="blocking-timeout-millis" value="5000"/>
+ <property name="abandoned-connection-timeout" value="10000"/>
+ <property name="abandoned-connection-time-interval" value="30000"/>
+ </properties>
+ <properties name="dbstore">
+ <property name="org.jboss.soa.esb.persistence.db.connection.url" value="jdbc:hsqldb:hsql://localhost:9001/"/>
+ <property name="org.jboss.soa.esb.persistence.db.jdbc.driver" value="org.hsqldb.jdbcDriver"/>
+ <property name="org.jboss.soa.esb.persistence.db.user" value="sa"/>
+ <property name="org.jboss.soa.esb.persistence.db.pwd" value=""/>
+ <property name="org.jboss.soa.esb.persistence.db.pool.initial.size" value="2"/>
+ <property name="org.jboss.soa.esb.persistence.db.pool.min.size" value="2"/>
+ <property name="org.jboss.soa.esb.persistence.db.pool.max.size" value="5"/>
+ <!--table managed by pool to test for valid connections - created by pool automatically -->
+ <property name="org.jboss.soa.esb.persistence.db.pool.test.table" value="pooltest"/>
+ <!-- # of milliseconds to timeout waiting for a connection from pool -->
+ <property name="org.jboss.soa.esb.persistence.db.pool.timeout.millis" value="5000"/>
+ <property name="org.jboss.soa.esb.persistence.db.conn.manager" value="org.jboss.internal.soa.esb.persistence.manager.StandaloneConnectionManager"/>
+ </properties>
+ <properties name="messagerouting">
+ <property name="org.jboss.soa.esb.routing.cbrClass" value="org.jboss.internal.soa.esb.services.routing.cbr.JBossRulesRouter"/>
+ </properties>
+</esb>
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice/jndi.properties
===================================================================
--- labs/jbossesb/trunk/product/samples/quickstarts/publish_as_webservice/jndi.properties 2009-01-21 09:35:03 UTC (rev 24846)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice/jndi.properties 2009-01-21 15:38:08 UTC (rev 24850)
@@ -1,5 +0,0 @@
-java.naming.factory.initial=org.jnp.interfaces.NamingContextFactory
-java.naming.provider.url=jnp://localhost:1099
-java.naming.factory.url.pkgs=org.jboss.naming
-java.naming.factory.url.pkgs=org.jnp.interfaces
-
Copied: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice/jndi.properties (from rev 24846, labs/jbossesb/trunk/product/samples/quickstarts/publish_as_webservice/jndi.properties)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice/jndi.properties (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice/jndi.properties 2009-01-21 15:38:08 UTC (rev 24850)
@@ -0,0 +1,5 @@
+java.naming.factory.initial=org.jnp.interfaces.NamingContextFactory
+java.naming.provider.url=jnp://localhost:1099
+java.naming.factory.url.pkgs=org.jboss.naming
+java.naming.factory.url.pkgs=org.jnp.interfaces
+
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice/juddi.properties
===================================================================
--- labs/jbossesb/trunk/product/samples/quickstarts/publish_as_webservice/juddi.properties 2009-01-21 09:35:03 UTC (rev 24846)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice/juddi.properties 2009-01-21 15:38:08 UTC (rev 24850)
@@ -1,69 +0,0 @@
-# jUDDI Registry Properties (used by RegistryServer)
-# see http://www.juddi.org for more information
-
-# The UDDI Operator Name
-juddi.operatorName = jUDDI.org
-
-# The i18n locale default codes
-juddi.i18n.languageCode = en
-juddi.i18n.countryCode = US
-
-# The UDDI DiscoveryURL Prefix
-juddi.discoveryURL = http://localhost:8080/juddi/uddiget.jsp?
-
-# The UDDI Operator Contact Email Address
-juddi.operatorEmailAddress = admin at juddi.org
-
-# The maximum name size and maximum number
-# of name elements allows in several of the
-# FindXxxx and SaveXxxx UDDI functions.
-juddi.maxNameLength=255
-juddi.maxNameElementsAllowed=5
-
-# The maximum number of UDDI artifacts allowed
-# per publisher. A value of '-1' indicates any
-# number of artifacts is valid (These values can be
-# overridden at the individual publisher level).
-juddi.maxBusinessesPerPublisher=25
-juddi.maxServicesPerBusiness=20
-juddi.maxBindingsPerService=10
-juddi.maxTModelsPerPublisher=100
-
-# jUDDI Authentication module to use
-juddi.auth = org.apache.juddi.auth.DefaultAuthenticator
-
-# jUDDI DataStore module currently to use
-juddi.dataStore = org.apache.juddi.datastore.jdbc.JDBCDataStore
-
-# use a dataSource (if set to false a direct
-# jdbc connection will be used.
-juddi.isUseDataSource=false
-juddi.jdbcDriver=com.mysql.jdbc.Driver
-juddi.jdbcUrl=jdbc:mysql://localhost:3306/juddi
-juddi.jdbcUsername=root
-juddi.jdbcPassword=admin
-# jUDDI DataSource to use
-# juddi.dataSource=java:comp/env/jdbc/MySqlDS
-
-# jUDDI UUIDGen implementation to use
-juddi.uuidgen = org.apache.juddi.uuidgen.DefaultUUIDGen
-
-# jUDDI Cryptor implementation to use
-juddi.cryptor = org.apache.juddi.cryptor.DefaultCryptor
-
-# jUDDI Validator to use
-juddi.validator=org.apache.juddi.validator.DefaultValidator
-
-# jUDDI Proxy Properties (used by RegistryProxy)
-juddi.proxy.adminURL = http://localhost:8080/juddi/admin
-juddi.proxy.inquiryURL = http://localhost:8080/juddi/inquiry
-juddi.proxy.publishURL = http://localhost:8080/juddi/publish
-juddi.proxy.transportClass = org.apache.juddi.proxy.AxisTransport
-juddi.proxy.securityProvider = com.sun.net.ssl.internal.ssl.Provider
-juddi.proxy.protocolHandler = com.sun.net.ssl.internal.www.protocol
-
-# JNDI settings (used by RMITransport)
-java.naming.factory.initial=org.jnp.interfaces.NamingContextFactory
-java.naming.provider.url=jnp://localhost:1099
-java.naming.factory.url.pkgs=org.jboss.naming
-
Copied: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice/juddi.properties (from rev 24846, labs/jbossesb/trunk/product/samples/quickstarts/publish_as_webservice/juddi.properties)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice/juddi.properties (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice/juddi.properties 2009-01-21 15:38:08 UTC (rev 24850)
@@ -0,0 +1,69 @@
+# jUDDI Registry Properties (used by RegistryServer)
+# see http://www.juddi.org for more information
+
+# The UDDI Operator Name
+juddi.operatorName = jUDDI.org
+
+# The i18n locale default codes
+juddi.i18n.languageCode = en
+juddi.i18n.countryCode = US
+
+# The UDDI DiscoveryURL Prefix
+juddi.discoveryURL = http://localhost:8080/juddi/uddiget.jsp?
+
+# The UDDI Operator Contact Email Address
+juddi.operatorEmailAddress = admin at juddi.org
+
+# The maximum name size and maximum number
+# of name elements allows in several of the
+# FindXxxx and SaveXxxx UDDI functions.
+juddi.maxNameLength=255
+juddi.maxNameElementsAllowed=5
+
+# The maximum number of UDDI artifacts allowed
+# per publisher. A value of '-1' indicates any
+# number of artifacts is valid (These values can be
+# overridden at the individual publisher level).
+juddi.maxBusinessesPerPublisher=25
+juddi.maxServicesPerBusiness=20
+juddi.maxBindingsPerService=10
+juddi.maxTModelsPerPublisher=100
+
+# jUDDI Authentication module to use
+juddi.auth = org.apache.juddi.auth.DefaultAuthenticator
+
+# jUDDI DataStore module currently to use
+juddi.dataStore = org.apache.juddi.datastore.jdbc.JDBCDataStore
+
+# use a dataSource (if set to false a direct
+# jdbc connection will be used.
+juddi.isUseDataSource=false
+juddi.jdbcDriver=com.mysql.jdbc.Driver
+juddi.jdbcUrl=jdbc:mysql://localhost:3306/juddi
+juddi.jdbcUsername=root
+juddi.jdbcPassword=admin
+# jUDDI DataSource to use
+# juddi.dataSource=java:comp/env/jdbc/MySqlDS
+
+# jUDDI UUIDGen implementation to use
+juddi.uuidgen = org.apache.juddi.uuidgen.DefaultUUIDGen
+
+# jUDDI Cryptor implementation to use
+juddi.cryptor = org.apache.juddi.cryptor.DefaultCryptor
+
+# jUDDI Validator to use
+juddi.validator=org.apache.juddi.validator.DefaultValidator
+
+# jUDDI Proxy Properties (used by RegistryProxy)
+juddi.proxy.adminURL = http://localhost:8080/juddi/admin
+juddi.proxy.inquiryURL = http://localhost:8080/juddi/inquiry
+juddi.proxy.publishURL = http://localhost:8080/juddi/publish
+juddi.proxy.transportClass = org.apache.juddi.proxy.AxisTransport
+juddi.proxy.securityProvider = com.sun.net.ssl.internal.ssl.Provider
+juddi.proxy.protocolHandler = com.sun.net.ssl.internal.www.protocol
+
+# JNDI settings (used by RMITransport)
+java.naming.factory.initial=org.jnp.interfaces.NamingContextFactory
+java.naming.provider.url=jnp://localhost:1099
+java.naming.factory.url.pkgs=org.jboss.naming
+
Copied: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice/lib (from rev 24846, labs/jbossesb/trunk/product/samples/quickstarts/publish_as_webservice/lib)
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice/log4j.xml
===================================================================
--- labs/jbossesb/trunk/product/samples/quickstarts/publish_as_webservice/log4j.xml 2009-01-21 09:35:03 UTC (rev 24846)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice/log4j.xml 2009-01-21 15:38:08 UTC (rev 24850)
@@ -1,79 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
-
-<!-- ===================================================================== -->
-<!-- -->
-<!-- Log4j Configuration -->
-<!-- -->
-<!-- ===================================================================== -->
-
-<!-- $Id: log4j.xml,v 1.26.2.5 2005/09/15 09:31:02 dimitris Exp $ -->
-
-<!--
- | For more configuration infromation and examples see the Jakarta Log4j
- | owebsite: http://jakarta.apache.org/log4j
- -->
-
-<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/" debug="false">
-
- <!-- ============================== -->
- <!-- Append messages to the console -->
- <!-- ============================== -->
-
- <appender name="CONSOLE" class="org.apache.log4j.ConsoleAppender">
- <errorHandler class="org.jboss.logging.util.OnlyOnceErrorHandler"/>
- <param name="Target" value="System.out"/>
- <param name="Threshold" value="INFO"/>
-
- <layout class="org.apache.log4j.PatternLayout">
- <!-- The default pattern: Date Priority [Category] Message\n -->
- <param name="ConversionPattern" value="%d{ABSOLUTE} %-5p [%t][%c{1}] %m%n"/>
- </layout>
- </appender>
-
- <!-- ================================= -->
- <!-- Preserve messages in a local file -->
- <!-- ================================= -->
-
- <!-- A size based file rolling appender -->
- <appender name="FILE" class="org.jboss.logging.appender.RollingFileAppender">
- <errorHandler class="org.jboss.logging.util.OnlyOnceErrorHandler"/>
- <param name="File" value="./listener.log"/>
- <param name="Append" value="false"/>
- <param name="MaxFileSize" value="500KB"/>
- <param name="MaxBackupIndex" value="1"/>
-
- <layout class="org.apache.log4j.PatternLayout">
- <param name="ConversionPattern" value="%d %-5p [%t][%c] %m%n"/>
- </layout>
- </appender>
-
- <!-- ================ -->
- <!-- Limit categories -->
- <!-- ================ -->
-
- <category name="org.jboss">
- <priority value="WARN"/>
- </category>
- <category name="org.jboss.soa.esb">
- <priority value="ERROR"/>
- </category>
- <category name="org.jboss.internal.soa.esb">
- <priority value="ERROR"/>
- </category>
- <category name="org.apache">
- <priority value="ERROR"/>
- </category>
- <category name="quickstart">
- <priority value="DEBUG"/>
- </category>
- <!-- ======================= -->
- <!-- Setup the Root category -->
- <!-- ======================= -->
-
- <root>
- <appender-ref ref="CONSOLE"/>
- <appender-ref ref="FILE"/>
- </root>
-
-</log4j:configuration>
Copied: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice/log4j.xml (from rev 24846, labs/jbossesb/trunk/product/samples/quickstarts/publish_as_webservice/log4j.xml)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice/log4j.xml (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice/log4j.xml 2009-01-21 15:38:08 UTC (rev 24850)
@@ -0,0 +1,79 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
+
+<!-- ===================================================================== -->
+<!-- -->
+<!-- Log4j Configuration -->
+<!-- -->
+<!-- ===================================================================== -->
+
+<!-- $Id: log4j.xml,v 1.26.2.5 2005/09/15 09:31:02 dimitris Exp $ -->
+
+<!--
+ | For more configuration infromation and examples see the Jakarta Log4j
+ | owebsite: http://jakarta.apache.org/log4j
+ -->
+
+<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/" debug="false">
+
+ <!-- ============================== -->
+ <!-- Append messages to the console -->
+ <!-- ============================== -->
+
+ <appender name="CONSOLE" class="org.apache.log4j.ConsoleAppender">
+ <errorHandler class="org.jboss.logging.util.OnlyOnceErrorHandler"/>
+ <param name="Target" value="System.out"/>
+ <param name="Threshold" value="INFO"/>
+
+ <layout class="org.apache.log4j.PatternLayout">
+ <!-- The default pattern: Date Priority [Category] Message\n -->
+ <param name="ConversionPattern" value="%d{ABSOLUTE} %-5p [%t][%c{1}] %m%n"/>
+ </layout>
+ </appender>
+
+ <!-- ================================= -->
+ <!-- Preserve messages in a local file -->
+ <!-- ================================= -->
+
+ <!-- A size based file rolling appender -->
+ <appender name="FILE" class="org.jboss.logging.appender.RollingFileAppender">
+ <errorHandler class="org.jboss.logging.util.OnlyOnceErrorHandler"/>
+ <param name="File" value="./listener.log"/>
+ <param name="Append" value="false"/>
+ <param name="MaxFileSize" value="500KB"/>
+ <param name="MaxBackupIndex" value="1"/>
+
+ <layout class="org.apache.log4j.PatternLayout">
+ <param name="ConversionPattern" value="%d %-5p [%t][%c] %m%n"/>
+ </layout>
+ </appender>
+
+ <!-- ================ -->
+ <!-- Limit categories -->
+ <!-- ================ -->
+
+ <category name="org.jboss">
+ <priority value="WARN"/>
+ </category>
+ <category name="org.jboss.soa.esb">
+ <priority value="ERROR"/>
+ </category>
+ <category name="org.jboss.internal.soa.esb">
+ <priority value="ERROR"/>
+ </category>
+ <category name="org.apache">
+ <priority value="ERROR"/>
+ </category>
+ <category name="quickstart">
+ <priority value="DEBUG"/>
+ </category>
+ <!-- ======================= -->
+ <!-- Setup the Root category -->
+ <!-- ======================= -->
+
+ <root>
+ <appender-ref ref="CONSOLE"/>
+ <appender-ref ref="FILE"/>
+ </root>
+
+</log4j:configuration>
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice/readme.txt
===================================================================
--- labs/jbossesb/trunk/product/samples/quickstarts/publish_as_webservice/readme.txt 2009-01-21 09:35:03 UTC (rev 24846)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice/readme.txt 2009-01-21 15:38:08 UTC (rev 24850)
@@ -1,33 +0,0 @@
-Overview:
-=========
- The purpose of the publish_as_webservice quickstart sample is to demonstrate how to
- publish a esb service as a web service.
-
-Running this quickstart:
-========================
- Please refer to 'ant help-quickstarts' for prerequisites about the quickstarts
- and a more detailed descripton of the different ways to run the quickstarts.
-
-To Run '.esb' archive mode:
-===========================
- 1. In a command terminal window in this folder ("Window1"), type 'ant deploy'.
- 2. Open another command terminal window in this folder ("Window2"), type
- 'ant runtest'.
- 3. Open another command terminal window in this folder ("Window2"), type
- 'ant sendesb'.
- 4. In this folder ("Window1"), type 'ant undeploy'.
-
-To Run from Soapui:
-===========================
- 1. Use the following URL: 'http://127.0.0.1:8080/Quickstart_publish_as_webservice/ESBServiceSample/HelloWorldPubService?wsdl'.
- 2. Copy the contents of soap-userpass-message.xml.
- 3. Exceute the web service call from soapui.
-
-======================================
- 1. runtest ant target
- This target will call the SOAPTest client twice, first call will be with a valid SOAP message
- and the second call will generate a SOAPFault to be retured.
-
- 2. sendesb ant target
- This target will call the SendEsbMessage twice. The first call will be with a valid message body content
- and the second will generate a FaultMessageException.
Copied: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice/readme.txt (from rev 24846, labs/jbossesb/trunk/product/samples/quickstarts/publish_as_webservice/readme.txt)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice/readme.txt (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice/readme.txt 2009-01-21 15:38:08 UTC (rev 24850)
@@ -0,0 +1,33 @@
+Overview:
+=========
+ The purpose of the publish_as_webservice quickstart sample is to demonstrate how to
+ publish a esb service as a web service.
+
+Running this quickstart:
+========================
+ Please refer to 'ant help-quickstarts' for prerequisites about the quickstarts
+ and a more detailed descripton of the different ways to run the quickstarts.
+
+To Run '.esb' archive mode:
+===========================
+ 1. In a command terminal window in this folder ("Window1"), type 'ant deploy'.
+ 2. Open another command terminal window in this folder ("Window2"), type
+ 'ant runtest'.
+ 3. Open another command terminal window in this folder ("Window2"), type
+ 'ant sendesb'.
+ 4. In this folder ("Window1"), type 'ant undeploy'.
+
+To Run from Soapui:
+===========================
+ 1. Use the following URL: 'http://127.0.0.1:8080/Quickstart_publish_as_webservice/ESBServiceSample/HelloWorldPubService?wsdl'.
+ 2. Copy the contents of soap-userpass-message.xml.
+ 3. Exceute the web service call from soapui.
+
+======================================
+ 1. runtest ant target
+ This target will call the SOAPTest client twice, first call will be with a valid SOAP message
+ and the second call will generate a SOAPFault to be retured.
+
+ 2. sendesb ant target
+ This target will call the SendEsbMessage twice. The first call will be with a valid message body content
+ and the second will generate a FaultMessageException.
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice/request.xsd
===================================================================
--- labs/jbossesb/trunk/product/samples/quickstarts/publish_as_webservice/request.xsd 2009-01-21 09:35:03 UTC (rev 24846)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice/request.xsd 2009-01-21 15:38:08 UTC (rev 24850)
@@ -1,8 +0,0 @@
-<xs:schema version="1.0" targetNamespace="http://www.jboss.org/sayHi" xmlns:x1="http://www.jboss.org/sayHi" xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
- <xs:element name="sayHi" type="x1:sayHi"/>
- <xs:complexType name="sayHi">
- <xs:sequence>
- <xs:element name="arg0" type="xs:string" minOccurs="1"/>
- </xs:sequence>
- </xs:complexType>
-</xs:schema>
Copied: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice/request.xsd (from rev 24846, labs/jbossesb/trunk/product/samples/quickstarts/publish_as_webservice/request.xsd)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice/request.xsd (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice/request.xsd 2009-01-21 15:38:08 UTC (rev 24850)
@@ -0,0 +1,8 @@
+<xs:schema version="1.0" targetNamespace="http://www.jboss.org/sayHi" xmlns:x1="http://www.jboss.org/sayHi" xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
+ <xs:element name="sayHi" type="x1:sayHi"/>
+ <xs:complexType name="sayHi">
+ <xs:sequence>
+ <xs:element name="arg0" type="xs:string" minOccurs="1"/>
+ </xs:sequence>
+ </xs:complexType>
+</xs:schema>
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice/response.xsd
===================================================================
--- labs/jbossesb/trunk/product/samples/quickstarts/publish_as_webservice/response.xsd 2009-01-21 09:35:03 UTC (rev 24846)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice/response.xsd 2009-01-21 15:38:08 UTC (rev 24850)
@@ -1,8 +0,0 @@
-<xs:schema version="1.0" targetNamespace="http://www.jboss.org/sayHi" xmlns:x1="http://www.jboss.org/sayHi" xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
- <xs:element name="sayHiResponse" type="x1:sayHiResponse"/>
- <xs:complexType name="sayHiResponse">
- <xs:sequence>
- <xs:element name="arg0" type="xs:string" minOccurs="0"/>
- </xs:sequence>
- </xs:complexType>
-</xs:schema>
Copied: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice/response.xsd (from rev 24846, labs/jbossesb/trunk/product/samples/quickstarts/publish_as_webservice/response.xsd)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice/response.xsd (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice/response.xsd 2009-01-21 15:38:08 UTC (rev 24850)
@@ -0,0 +1,8 @@
+<xs:schema version="1.0" targetNamespace="http://www.jboss.org/sayHi" xmlns:x1="http://www.jboss.org/sayHi" xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
+ <xs:element name="sayHiResponse" type="x1:sayHiResponse"/>
+ <xs:complexType name="sayHiResponse">
+ <xs:sequence>
+ <xs:element name="arg0" type="xs:string" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+</xs:schema>
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice/soap-userpass-message.xml
===================================================================
--- labs/jbossesb/trunk/product/samples/quickstarts/publish_as_webservice/soap-userpass-message.xml 2009-01-21 09:35:03 UTC (rev 24846)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice/soap-userpass-message.xml 2009-01-21 15:38:08 UTC (rev 24850)
@@ -1,11 +0,0 @@
-<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xmlns:xsd="http://www.w3.org/2001/XMLSchema"
- xmlns:say="http://www.jboss.org/sayHi">
- <soap:Body>
- <say:sayHi>
- <say:arg0>HelloWorld</say:arg0>
- </say:sayHi>"
- </soap:Body>
-
-</soap:Envelope>
Copied: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice/soap-userpass-message.xml (from rev 24846, labs/jbossesb/trunk/product/samples/quickstarts/publish_as_webservice/soap-userpass-message.xml)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice/soap-userpass-message.xml (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice/soap-userpass-message.xml 2009-01-21 15:38:08 UTC (rev 24850)
@@ -0,0 +1,11 @@
+<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+ xmlns:say="http://www.jboss.org/sayHi">
+ <soap:Body>
+ <say:sayHi>
+ <say:arg0>HelloWorld</say:arg0>
+ </say:sayHi>"
+ </soap:Body>
+
+</soap:Envelope>
Copied: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice/src (from rev 24846, labs/jbossesb/trunk/product/samples/quickstarts/publish_as_webservice/src)
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice/src/.classpath
===================================================================
--- labs/jbossesb/trunk/product/samples/quickstarts/publish_as_webservice/src/.classpath 2009-01-21 09:35:03 UTC (rev 24846)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice/src/.classpath 2009-01-21 15:38:08 UTC (rev 24850)
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
- <classpathentry kind="src" path=""/>
- <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
- <classpathentry kind="output" path=""/>
-</classpath>
Copied: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice/src/.classpath (from rev 24846, labs/jbossesb/trunk/product/samples/quickstarts/publish_as_webservice/src/.classpath)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice/src/.classpath (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice/src/.classpath 2009-01-21 15:38:08 UTC (rev 24850)
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="src" path=""/>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
+ <classpathentry kind="output" path=""/>
+</classpath>
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice/src/.project
===================================================================
--- labs/jbossesb/trunk/product/samples/quickstarts/publish_as_webservice/src/.project 2009-01-21 09:35:03 UTC (rev 24846)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice/src/.project 2009-01-21 15:38:08 UTC (rev 24850)
@@ -1,17 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
- <name>pubservice-sample</name>
- <comment></comment>
- <projects>
- </projects>
- <buildSpec>
- <buildCommand>
- <name>org.eclipse.jdt.core.javabuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- </buildSpec>
- <natures>
- <nature>org.eclipse.jdt.core.javanature</nature>
- </natures>
-</projectDescription>
Copied: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice/src/.project (from rev 24846, labs/jbossesb/trunk/product/samples/quickstarts/publish_as_webservice/src/.project)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice/src/.project (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice/src/.project 2009-01-21 15:38:08 UTC (rev 24850)
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>pubservice-sample</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ </natures>
+</projectDescription>
Copied: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice/src/org (from rev 24846, labs/jbossesb/trunk/product/samples/quickstarts/publish_as_webservice/src/org)
Copied: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice/src/org/jboss (from rev 24846, labs/jbossesb/trunk/product/samples/quickstarts/publish_as_webservice/src/org/jboss)
Copied: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice/src/org/jboss/soa (from rev 24846, labs/jbossesb/trunk/product/samples/quickstarts/publish_as_webservice/src/org/jboss/soa)
Copied: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice/src/org/jboss/soa/esb (from rev 24846, labs/jbossesb/trunk/product/samples/quickstarts/publish_as_webservice/src/org/jboss/soa/esb)
Copied: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice/src/org/jboss/soa/esb/samples (from rev 24846, labs/jbossesb/trunk/product/samples/quickstarts/publish_as_webservice/src/org/jboss/soa/esb/samples)
Copied: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice/src/org/jboss/soa/esb/samples/quickstart (from rev 24846, labs/jbossesb/trunk/product/samples/quickstarts/publish_as_webservice/src/org/jboss/soa/esb/samples/quickstart)
Copied: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice/src/org/jboss/soa/esb/samples/quickstart/publishAsWebservice (from rev 24846, labs/jbossesb/trunk/product/samples/quickstarts/publish_as_webservice/src/org/jboss/soa/esb/samples/quickstart/publishAsWebservice)
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice/src/org/jboss/soa/esb/samples/quickstart/publishAsWebservice/ESBWSListenerAction.java
===================================================================
--- labs/jbossesb/trunk/product/samples/quickstarts/publish_as_webservice/src/org/jboss/soa/esb/samples/quickstart/publishAsWebservice/ESBWSListenerAction.java 2009-01-21 09:35:03 UTC (rev 24846)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice/src/org/jboss/soa/esb/samples/quickstart/publishAsWebservice/ESBWSListenerAction.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -1,55 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2006, JBoss Inc., and others contributors as indicated
- * by the @authors tag. All rights reserved.
- * See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- * This copyrighted material is made available to anyone wishing to use,
- * modify, copy, or redistribute it subject to the terms and conditions
- * of the GNU Lesser General Public License, v. 2.1.
- * This program is distributed in the hope that it will be useful, but WITHOUT A
- * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
- * PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
- * You should have received a copy of the GNU Lesser General Public License,
- * v.2.1 along with this distribution; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
- * MA 02110-1301, USA.
- *
- * (C) 2005-2006,
- * @author JBoss Inc.
- */
-package org.jboss.soa.esb.samples.quickstart.publishAsWebservice;
-
-import javax.xml.namespace.QName;
-
-import org.jboss.soa.esb.actions.AbstractActionLifecycle;
-import org.jboss.soa.esb.actions.ActionProcessingDetailFaultException;
-import org.jboss.soa.esb.helpers.ConfigTree;
-import org.jboss.soa.esb.message.Message;
-
-public class ESBWSListenerAction extends AbstractActionLifecycle
-{
- protected ConfigTree _config;
-
- public ESBWSListenerAction(ConfigTree config)
- {
- _config = config;
- }
-
- public Message displayMessage(Message message) throws Exception
- {
- final String request = (String)message.getBody().get() ;
- if (request.contains("Error")) {
- final String detail = "<say:sayFault xmlns:say=\"http://www.jboss.org/sayHi\"><say:code>" +
- "myErrorCode" + "</say:code><say:faultString>" + "myDescription" +
- "</say:faultString></say:sayFault>" ;
- throw new ActionProcessingDetailFaultException(new QName("http://www.jboss.org/sayHi", "myErrorCode"), "myDescription", detail) ;
- }
-
- System.out.println("Received request: " + request) ;
- final String responseMsg = "<say:sayHiResponse xmlns:say=\"http://www.jboss.org/sayHi\"><say:arg0>" +
- "Response from ESB Service" + "</say:arg0></say:sayHiResponse>" ;
- message.getBody().add(responseMsg);
- return message;
- }
-}
Copied: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice/src/org/jboss/soa/esb/samples/quickstart/publishAsWebservice/ESBWSListenerAction.java (from rev 24846, labs/jbossesb/trunk/product/samples/quickstarts/publish_as_webservice/src/org/jboss/soa/esb/samples/quickstart/publishAsWebservice/ESBWSListenerAction.java)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice/src/org/jboss/soa/esb/samples/quickstart/publishAsWebservice/ESBWSListenerAction.java (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice/src/org/jboss/soa/esb/samples/quickstart/publishAsWebservice/ESBWSListenerAction.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -0,0 +1,55 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and others contributors as indicated
+ * by the @authors tag. All rights reserved.
+ * See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License, v. 2.1.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+ * PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
+ * You should have received a copy of the GNU Lesser General Public License,
+ * v.2.1 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301, USA.
+ *
+ * (C) 2005-2006,
+ * @author JBoss Inc.
+ */
+package org.jboss.soa.esb.samples.quickstart.publishAsWebservice;
+
+import javax.xml.namespace.QName;
+
+import org.jboss.soa.esb.actions.AbstractActionLifecycle;
+import org.jboss.soa.esb.actions.ActionProcessingDetailFaultException;
+import org.jboss.soa.esb.helpers.ConfigTree;
+import org.jboss.soa.esb.message.Message;
+
+public class ESBWSListenerAction extends AbstractActionLifecycle
+{
+ protected ConfigTree _config;
+
+ public ESBWSListenerAction(ConfigTree config)
+ {
+ _config = config;
+ }
+
+ public Message displayMessage(Message message) throws Exception
+ {
+ final String request = (String)message.getBody().get() ;
+ if (request.contains("Error")) {
+ final String detail = "<say:sayFault xmlns:say=\"http://www.jboss.org/sayHi\"><say:code>" +
+ "myErrorCode" + "</say:code><say:faultString>" + "myDescription" +
+ "</say:faultString></say:sayFault>" ;
+ throw new ActionProcessingDetailFaultException(new QName("http://www.jboss.org/sayHi", "myErrorCode"), "myDescription", detail) ;
+ }
+
+ System.out.println("Received request: " + request) ;
+ final String responseMsg = "<say:sayHiResponse xmlns:say=\"http://www.jboss.org/sayHi\"><say:arg0>" +
+ "Response from ESB Service" + "</say:arg0></say:sayHiResponse>" ;
+ message.getBody().add(responseMsg);
+ return message;
+ }
+}
Copied: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice/src/org/jboss/soa/esb/samples/quickstart/publishAsWebservice/test (from rev 24846, labs/jbossesb/trunk/product/samples/quickstarts/publish_as_webservice/src/org/jboss/soa/esb/samples/quickstart/publishAsWebservice/test)
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice/src/org/jboss/soa/esb/samples/quickstart/publishAsWebservice/test/SOAPTest.java
===================================================================
--- labs/jbossesb/trunk/product/samples/quickstarts/publish_as_webservice/src/org/jboss/soa/esb/samples/quickstart/publishAsWebservice/test/SOAPTest.java 2009-01-21 09:35:03 UTC (rev 24846)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice/src/org/jboss/soa/esb/samples/quickstart/publishAsWebservice/test/SOAPTest.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -1,58 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2006, JBoss Inc., and others contributors as indicated
- * by the @authors tag. All rights reserved.
- * See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- * This copyrighted material is made available to anyone wishing to use,
- * modify, copy, or redistribute it subject to the terms and conditions
- * of the GNU Lesser General Public License, v. 2.1.
- * This program is distributed in the hope that it will be useful, but WITHOUT A
- * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
- * PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
- * You should have received a copy of the GNU Lesser General Public License,
- * v.2.1 along with this distribution; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
- * MA 02110-1301, USA.
- *
- * (C) 2005-2006,
- * @author JBoss Inc.
- */
-package org.jboss.soa.esb.samples.quickstart.publishAsWebservice.test;
-import java.io.IOException;
-import java.io.UnsupportedEncodingException;
-
-import org.apache.commons.httpclient.HttpClient;
-import org.apache.commons.httpclient.HttpException;
-import org.apache.commons.httpclient.methods.PostMethod;
-import org.apache.commons.httpclient.methods.StringRequestEntity;
-import org.jboss.internal.soa.esb.util.StreamUtils;
-import org.jboss.soa.esb.ConfigurationException;
-
-public class SOAPTest {
-
- public static void main(String args[]) throws ConfigurationException, UnsupportedEncodingException {
-
- final String soap = StreamUtils.getResourceAsString(args[0], "UTF-8");
- HttpClient client = new HttpClient();
- PostMethod postMethod = new PostMethod(
- "http://127.0.0.1:8080/Quickstart_publish_as_webservice/ESBServiceSample/HelloWorldPubService?wsdl");
-
- StringRequestEntity requestEntity = new StringRequestEntity(soap);
- postMethod.setRequestEntity(requestEntity);
- try {
- client.executeMethod(postMethod);
- System.out.println("Response from web service");
- System.out.println(postMethod.getResponseBodyAsString());
- } catch (HttpException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- } catch (IOException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- System.exit(0);
-
- }
-
-}
Copied: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice/src/org/jboss/soa/esb/samples/quickstart/publishAsWebservice/test/SOAPTest.java (from rev 24846, labs/jbossesb/trunk/product/samples/quickstarts/publish_as_webservice/src/org/jboss/soa/esb/samples/quickstart/publishAsWebservice/test/SOAPTest.java)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice/src/org/jboss/soa/esb/samples/quickstart/publishAsWebservice/test/SOAPTest.java (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice/src/org/jboss/soa/esb/samples/quickstart/publishAsWebservice/test/SOAPTest.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -0,0 +1,58 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and others contributors as indicated
+ * by the @authors tag. All rights reserved.
+ * See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License, v. 2.1.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+ * PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
+ * You should have received a copy of the GNU Lesser General Public License,
+ * v.2.1 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301, USA.
+ *
+ * (C) 2005-2006,
+ * @author JBoss Inc.
+ */
+package org.jboss.soa.esb.samples.quickstart.publishAsWebservice.test;
+import java.io.IOException;
+import java.io.UnsupportedEncodingException;
+
+import org.apache.commons.httpclient.HttpClient;
+import org.apache.commons.httpclient.HttpException;
+import org.apache.commons.httpclient.methods.PostMethod;
+import org.apache.commons.httpclient.methods.StringRequestEntity;
+import org.jboss.internal.soa.esb.util.StreamUtils;
+import org.jboss.soa.esb.ConfigurationException;
+
+public class SOAPTest {
+
+ public static void main(String args[]) throws ConfigurationException, UnsupportedEncodingException {
+
+ final String soap = StreamUtils.getResourceAsString(args[0], "UTF-8");
+ HttpClient client = new HttpClient();
+ PostMethod postMethod = new PostMethod(
+ "http://127.0.0.1:8080/Quickstart_publish_as_webservice/ESBServiceSample/HelloWorldPubService?wsdl");
+
+ StringRequestEntity requestEntity = new StringRequestEntity(soap);
+ postMethod.setRequestEntity(requestEntity);
+ try {
+ client.executeMethod(postMethod);
+ System.out.println("Response from web service");
+ System.out.println(postMethod.getResponseBodyAsString());
+ } catch (HttpException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ } catch (IOException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+ System.exit(0);
+
+ }
+
+}
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice/src/org/jboss/soa/esb/samples/quickstart/publishAsWebservice/test/SendEsbMessage.java
===================================================================
--- labs/jbossesb/trunk/product/samples/quickstarts/publish_as_webservice/src/org/jboss/soa/esb/samples/quickstart/publishAsWebservice/test/SendEsbMessage.java 2009-01-21 09:35:03 UTC (rev 24846)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice/src/org/jboss/soa/esb/samples/quickstart/publishAsWebservice/test/SendEsbMessage.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -1,82 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2006, JBoss Inc., and individual contributors as indicated
- * by the @authors tag. See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
-
-package org.jboss.soa.esb.samples.quickstart.publishAsWebservice.test;
-
-import java.util.Set;
-import java.io.Serializable;
-import java.util.HashSet;
-import org.jboss.soa.esb.services.security.auth.AuthenticationRequestImpl;
-import org.jboss.soa.esb.message.Message;
-import org.jboss.soa.esb.message.format.MessageFactory;
-import org.jboss.soa.esb.services.security.SecurityService;
-import org.jboss.soa.esb.services.security.auth.AuthenticationRequest;
-import org.jboss.soa.esb.services.security.principals.User;
-import org.jboss.soa.esb.client.ServiceInvoker;
-import org.jboss.soa.esb.couriers.FaultMessageException;
-import org.jboss.soa.esb.services.security.PublicCryptoUtil;
-
-/**
- * Standalone class with to send ESB messages to a 'known' [category,name].
- * <p/> arg0 - service category
- * <br/>arg1 - service name
- * <br/>arg2 - Text of message to send
- *
- * @author <a href="mailto:schifest at heuristica.com.ar">schifest at heuristica.com.ar</a>
- * @since Version 4.0
- *
- */
-public class SendEsbMessage
-{
- public static void main(String args[]) throws Exception
- {
-// Setting the ConnectionFactory such that it will use scout
- System.setProperty("javax.xml.registry.ConnectionFactoryClass","org.apache.ws.scout.registry.ConnectionFactoryImpl");
-
- if (args.length < 3)
- {
- System.out.println("Usage SendEsbMessage <category> <name> <text to send>");
- }
- Message esbMessage = MessageFactory.getInstance().getMessage();
-
- final String message = "<say:sayHi xmlns:say=\"http://www.jboss.org/sayHi\"><say:arg0>" + args[2] + "</say:arg0></say:sayHi>" ;
- esbMessage.getBody().add(message);
-
- ServiceInvoker invoker = new ServiceInvoker(args[0], args[1]);
-
- Message response = null;
- try {
- response= invoker.deliverSync(esbMessage, 3000);
- System.out.println(response.getBody().get());
- } catch (final FaultMessageException fme) {
- final Message returnedMessage = fme.getReturnedMessage() ;
- System.out.println("Received a fault message exception") ;
- System.out.println("\tMessage: " + fme.getMessage()) ;
- System.out.println("\tCode: " + fme.getCode()) ;
- System.out.println("\tCause: " + fme.getCause()) ;
- System.out.println("\tReturned message: " + returnedMessage) ;
- }catch(Exception ex) {
- ex.printStackTrace();
- }
- System.exit(0);
- }
-}
Copied: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice/src/org/jboss/soa/esb/samples/quickstart/publishAsWebservice/test/SendEsbMessage.java (from rev 24846, labs/jbossesb/trunk/product/samples/quickstarts/publish_as_webservice/src/org/jboss/soa/esb/samples/quickstart/publishAsWebservice/test/SendEsbMessage.java)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice/src/org/jboss/soa/esb/samples/quickstart/publishAsWebservice/test/SendEsbMessage.java (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice/src/org/jboss/soa/esb/samples/quickstart/publishAsWebservice/test/SendEsbMessage.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -0,0 +1,82 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+
+package org.jboss.soa.esb.samples.quickstart.publishAsWebservice.test;
+
+import java.util.Set;
+import java.io.Serializable;
+import java.util.HashSet;
+import org.jboss.soa.esb.services.security.auth.AuthenticationRequestImpl;
+import org.jboss.soa.esb.message.Message;
+import org.jboss.soa.esb.message.format.MessageFactory;
+import org.jboss.soa.esb.services.security.SecurityService;
+import org.jboss.soa.esb.services.security.auth.AuthenticationRequest;
+import org.jboss.soa.esb.services.security.principals.User;
+import org.jboss.soa.esb.client.ServiceInvoker;
+import org.jboss.soa.esb.couriers.FaultMessageException;
+import org.jboss.soa.esb.services.security.PublicCryptoUtil;
+
+/**
+ * Standalone class with to send ESB messages to a 'known' [category,name].
+ * <p/> arg0 - service category
+ * <br/>arg1 - service name
+ * <br/>arg2 - Text of message to send
+ *
+ * @author <a href="mailto:schifest at heuristica.com.ar">schifest at heuristica.com.ar</a>
+ * @since Version 4.0
+ *
+ */
+public class SendEsbMessage
+{
+ public static void main(String args[]) throws Exception
+ {
+// Setting the ConnectionFactory such that it will use scout
+ System.setProperty("javax.xml.registry.ConnectionFactoryClass","org.apache.ws.scout.registry.ConnectionFactoryImpl");
+
+ if (args.length < 3)
+ {
+ System.out.println("Usage SendEsbMessage <category> <name> <text to send>");
+ }
+ Message esbMessage = MessageFactory.getInstance().getMessage();
+
+ final String message = "<say:sayHi xmlns:say=\"http://www.jboss.org/sayHi\"><say:arg0>" + args[2] + "</say:arg0></say:sayHi>" ;
+ esbMessage.getBody().add(message);
+
+ ServiceInvoker invoker = new ServiceInvoker(args[0], args[1]);
+
+ Message response = null;
+ try {
+ response= invoker.deliverSync(esbMessage, 3000);
+ System.out.println(response.getBody().get());
+ } catch (final FaultMessageException fme) {
+ final Message returnedMessage = fme.getReturnedMessage() ;
+ System.out.println("Received a fault message exception") ;
+ System.out.println("\tMessage: " + fme.getMessage()) ;
+ System.out.println("\tCode: " + fme.getCode()) ;
+ System.out.println("\tCause: " + fme.getCause()) ;
+ System.out.println("\tReturned message: " + returnedMessage) ;
+ }catch(Exception ex) {
+ ex.printStackTrace();
+ }
+ System.exit(0);
+ }
+}
Copied: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_basic (from rev 24846, labs/jbossesb/trunk/product/samples/quickstarts/security_basic)
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_basic/build.xml
===================================================================
--- labs/jbossesb/trunk/product/samples/quickstarts/security_basic/build.xml 2009-01-21 09:35:03 UTC (rev 24846)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_basic/build.xml 2009-01-21 15:38:08 UTC (rev 24850)
@@ -1,40 +0,0 @@
-<project name="Quickstart_SecurityBasic" default="run" basedir=".">
-
- <description>
- ${ant.project.name}
- ${line.separator}
- </description>
-
- <property name="username" value="esbuser" />
- <property name="password" value="esbpassword" />
-
- <!-- Import the base Ant build script... -->
- <import file="../conf/base-build.xml"/>
-
- <target name="runtest" depends="compile"
- description="sends a HTTP request to the JBossRemoting gateway">
- <echo>Http Client</echo>
- <java fork="yes" classname="org.jboss.soa.esb.samples.quickstart.securitybasic.test.HttpClient" failonerror="true">
- <arg value="http"/>
- <arg value="localhost"/>
- <arg value="9888"/>
- <arg value="${username}"/>
- <arg value="${password}"/>
- <classpath refid="exec-classpath"/>
- </java>
- </target>
-
- <target name="sendesb" depends="compile" description="send esb Message to esb service">
- <echo>Send esb message to esb service and get response</echo>
- <java fork="yes" classname="org.jboss.soa.esb.samples.quickstart.securitybasic.test.SendEsbMessage" failonerror="true">
- <arg value="Security"/> <!-- service category -->
- <arg value="SimpleListenerSecured"/> <!-- service name -->
- <arg value="Hello Secured World"/> <!-- Message text -->
- <arg value="${username}"/> <!-- username text -->
- <arg value="${password}"/> <!-- password text -->
- <classpath refid="exec-classpath"/>
- </java>
- </target>
-
-
-</project>
Copied: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_basic/build.xml (from rev 24846, labs/jbossesb/trunk/product/samples/quickstarts/security_basic/build.xml)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_basic/build.xml (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_basic/build.xml 2009-01-21 15:38:08 UTC (rev 24850)
@@ -0,0 +1,40 @@
+<project name="Quickstart_SecurityBasic" default="run" basedir=".">
+
+ <description>
+ ${ant.project.name}
+ ${line.separator}
+ </description>
+
+ <property name="username" value="esbuser" />
+ <property name="password" value="esbpassword" />
+
+ <!-- Import the base Ant build script... -->
+ <import file="../conf/base-build.xml"/>
+
+ <target name="runtest" depends="compile"
+ description="sends a HTTP request to the JBossRemoting gateway">
+ <echo>Http Client</echo>
+ <java fork="yes" classname="org.jboss.soa.esb.samples.quickstart.securitybasic.test.HttpClient" failonerror="true">
+ <arg value="http"/>
+ <arg value="localhost"/>
+ <arg value="9888"/>
+ <arg value="${username}"/>
+ <arg value="${password}"/>
+ <classpath refid="exec-classpath"/>
+ </java>
+ </target>
+
+ <target name="sendesb" depends="compile" description="send esb Message to esb service">
+ <echo>Send esb message to esb service and get response</echo>
+ <java fork="yes" classname="org.jboss.soa.esb.samples.quickstart.securitybasic.test.SendEsbMessage" failonerror="true">
+ <arg value="Security"/> <!-- service category -->
+ <arg value="SimpleListenerSecured"/> <!-- service name -->
+ <arg value="Hello Secured World"/> <!-- Message text -->
+ <arg value="${username}"/> <!-- username text -->
+ <arg value="${password}"/> <!-- password text -->
+ <classpath refid="exec-classpath"/>
+ </java>
+ </target>
+
+
+</project>
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_basic/deployment.xml
===================================================================
--- labs/jbossesb/trunk/product/samples/quickstarts/security_basic/deployment.xml 2009-01-21 09:35:03 UTC (rev 24846)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_basic/deployment.xml 2009-01-21 15:38:08 UTC (rev 24850)
@@ -1,5 +0,0 @@
-<jbossesb-deployment>
- <depends>jboss.esb.quickstart.destination:service=Queue,name=quickstart_securitybasic_Request_esb</depends>
- <depends>jboss.esb.quickstart.destination:service=Queue,name=quickstart_securitybasic_Request2_esb</depends>
- <depends>jboss.esb.quickstart.destination:service=Queue,name=quickstart_securitybasic_Request_gw</depends>
-</jbossesb-deployment>
Copied: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_basic/deployment.xml (from rev 24846, labs/jbossesb/trunk/product/samples/quickstarts/security_basic/deployment.xml)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_basic/deployment.xml (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_basic/deployment.xml 2009-01-21 15:38:08 UTC (rev 24850)
@@ -0,0 +1,5 @@
+<jbossesb-deployment>
+ <depends>jboss.esb.quickstart.destination:service=Queue,name=quickstart_securitybasic_Request_esb</depends>
+ <depends>jboss.esb.quickstart.destination:service=Queue,name=quickstart_securitybasic_Request2_esb</depends>
+ <depends>jboss.esb.quickstart.destination:service=Queue,name=quickstart_securitybasic_Request_gw</depends>
+</jbossesb-deployment>
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_basic/jbm-queue-service.xml
===================================================================
--- labs/jbossesb/trunk/product/samples/quickstarts/security_basic/jbm-queue-service.xml 2009-01-21 09:35:03 UTC (rev 24846)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_basic/jbm-queue-service.xml 2009-01-21 15:38:08 UTC (rev 24850)
@@ -1,30 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<server>
- <mbean code="org.jboss.jms.server.destination.QueueService"
- name="jboss.esb.quickstart.destination:service=Queue,name=quickstart_securitybasic_Request_esb"
- xmbean-dd="xmdesc/Queue-xmbean.xml">
- <depends optional-attribute-name="ServerPeer">jboss.messaging:service=ServerPeer</depends>
- <depends>jboss.messaging:service=PostOffice</depends>
- </mbean>
- <mbean code="org.jboss.jms.server.destination.QueueService"
- name="jboss.esb.quickstart.destination:service=Queue,name=quickstart_securitybasic_Request_gw"
- xmbean-dd="xmdesc/Queue-xmbean.xml">
- <depends optional-attribute-name="ServerPeer">jboss.messaging:service=ServerPeer</depends>
- <depends>jboss.messaging:service=PostOffice</depends>
- </mbean>
- <mbean code="org.jboss.jms.server.destination.QueueService"
- name="jboss.esb.quickstart.destination:service=Queue,name=quickstart_securitybasic_Request_esb_reply"
- xmbean-dd="xmdesc/Queue-xmbean.xml">
- <depends optional-attribute-name="ServerPeer">jboss.messaging:service=ServerPeer</depends>
- <depends>jboss.messaging:service=PostOffice</depends>
- </mbean>
-
- <mbean code="org.jboss.jms.server.destination.QueueService"
- name="jboss.esb.quickstart.destination:service=Queue,name=quickstart_securitybasic_Request2_esb"
- xmbean-dd="xmdesc/Queue-xmbean.xml">
- <depends optional-attribute-name="ServerPeer">jboss.messaging:service=ServerPeer</depends>
- <depends>jboss.messaging:service=PostOffice</depends>
- </mbean>
-
-
-</server>
Copied: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_basic/jbm-queue-service.xml (from rev 24846, labs/jbossesb/trunk/product/samples/quickstarts/security_basic/jbm-queue-service.xml)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_basic/jbm-queue-service.xml (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_basic/jbm-queue-service.xml 2009-01-21 15:38:08 UTC (rev 24850)
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<server>
+ <mbean code="org.jboss.jms.server.destination.QueueService"
+ name="jboss.esb.quickstart.destination:service=Queue,name=quickstart_securitybasic_Request_esb"
+ xmbean-dd="xmdesc/Queue-xmbean.xml">
+ <depends optional-attribute-name="ServerPeer">jboss.messaging:service=ServerPeer</depends>
+ <depends>jboss.messaging:service=PostOffice</depends>
+ </mbean>
+ <mbean code="org.jboss.jms.server.destination.QueueService"
+ name="jboss.esb.quickstart.destination:service=Queue,name=quickstart_securitybasic_Request_gw"
+ xmbean-dd="xmdesc/Queue-xmbean.xml">
+ <depends optional-attribute-name="ServerPeer">jboss.messaging:service=ServerPeer</depends>
+ <depends>jboss.messaging:service=PostOffice</depends>
+ </mbean>
+ <mbean code="org.jboss.jms.server.destination.QueueService"
+ name="jboss.esb.quickstart.destination:service=Queue,name=quickstart_securitybasic_Request_esb_reply"
+ xmbean-dd="xmdesc/Queue-xmbean.xml">
+ <depends optional-attribute-name="ServerPeer">jboss.messaging:service=ServerPeer</depends>
+ <depends>jboss.messaging:service=PostOffice</depends>
+ </mbean>
+
+ <mbean code="org.jboss.jms.server.destination.QueueService"
+ name="jboss.esb.quickstart.destination:service=Queue,name=quickstart_securitybasic_Request2_esb"
+ xmbean-dd="xmdesc/Queue-xmbean.xml">
+ <depends optional-attribute-name="ServerPeer">jboss.messaging:service=ServerPeer</depends>
+ <depends>jboss.messaging:service=PostOffice</depends>
+ </mbean>
+
+
+</server>
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_basic/jbmq-queue-service.xml
===================================================================
--- labs/jbossesb/trunk/product/samples/quickstarts/security_basic/jbmq-queue-service.xml 2009-01-21 09:35:03 UTC (rev 24846)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_basic/jbmq-queue-service.xml 2009-01-21 15:38:08 UTC (rev 24850)
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<server>
- <mbean code="org.jboss.mq.server.jmx.Queue"
- name="jboss.esb.quickstart.destination:service=Queue,name=quickstart_securitybasic_Request_esb">
- <depends optional-attribute-name="DestinationManager">
- jboss.mq:service=DestinationManager
- </depends>
- </mbean>
- <mbean code="org.jboss.mq.server.jmx.Queue"
- name="jboss.esb.quickstart.destination:service=Queue,name=quickstart_securitybasic_Request_gw">
- <depends optional-attribute-name="DestinationManager">
- jboss.mq:service=DestinationManager
- </depends>
- </mbean>
- <mbean code="org.jboss.mq.server.jmx.Queue"
- name="jboss.esb.quickstart.destination:service=Queue,name=quickstart_securitybasic_Request_esb_reply">
- <depends optional-attribute-name="DestinationManager">
- jboss.mq:service=DestinationManager
- </depends>
- </mbean>
- <mbean code="org.jboss.mq.server.jmx.Queue"
- name="jboss.esb.quickstart.destination:service=Queue,name=quickstart_securitybasic_Request2_esb">
- <depends optional-attribute-name="DestinationManager">
- jboss.mq:service=DestinationManager
- </depends>
- </mbean>
-
-</server>
Copied: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_basic/jbmq-queue-service.xml (from rev 24846, labs/jbossesb/trunk/product/samples/quickstarts/security_basic/jbmq-queue-service.xml)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_basic/jbmq-queue-service.xml (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_basic/jbmq-queue-service.xml 2009-01-21 15:38:08 UTC (rev 24850)
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<server>
+ <mbean code="org.jboss.mq.server.jmx.Queue"
+ name="jboss.esb.quickstart.destination:service=Queue,name=quickstart_securitybasic_Request_esb">
+ <depends optional-attribute-name="DestinationManager">
+ jboss.mq:service=DestinationManager
+ </depends>
+ </mbean>
+ <mbean code="org.jboss.mq.server.jmx.Queue"
+ name="jboss.esb.quickstart.destination:service=Queue,name=quickstart_securitybasic_Request_gw">
+ <depends optional-attribute-name="DestinationManager">
+ jboss.mq:service=DestinationManager
+ </depends>
+ </mbean>
+ <mbean code="org.jboss.mq.server.jmx.Queue"
+ name="jboss.esb.quickstart.destination:service=Queue,name=quickstart_securitybasic_Request_esb_reply">
+ <depends optional-attribute-name="DestinationManager">
+ jboss.mq:service=DestinationManager
+ </depends>
+ </mbean>
+ <mbean code="org.jboss.mq.server.jmx.Queue"
+ name="jboss.esb.quickstart.destination:service=Queue,name=quickstart_securitybasic_Request2_esb">
+ <depends optional-attribute-name="DestinationManager">
+ jboss.mq:service=DestinationManager
+ </depends>
+ </mbean>
+
+</server>
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_basic/jboss-esb.xml
===================================================================
--- labs/jbossesb/trunk/product/samples/quickstarts/security_basic/jboss-esb.xml 2009-01-21 09:35:03 UTC (rev 24846)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_basic/jboss-esb.xml 2009-01-21 15:38:08 UTC (rev 24850)
@@ -1,74 +0,0 @@
-<?xml version = "1.0" encoding = "UTF-8"?>
-<jbossesb xmlns="http://anonsvn.labs.jboss.com/labs/jbossesb/trunk/product/etc/schemas/xml/jbossesb-1.0.1.xsd" parameterReloadSecs="5">
-
- <providers>
- <jms-provider name="JMSProvider" connection-factory="ConnectionFactory">
- <jms-bus busid="quickstartGwChannel">
- <jms-message-filter dest-type="QUEUE" dest-name="queue/quickstart_securitybasic_Request_gw" />
- </jms-bus>
- <jms-bus busid="quickstartEsbChannel">
- <jms-message-filter dest-type="QUEUE" dest-name="queue/quickstart_securitybasic_Request_esb" />
- </jms-bus>
- <jms-bus busid="quickstartEsbChannel2">
- <jms-message-filter dest-type="QUEUE" dest-name="queue/quickstart_securitybasic_Request2_esb" />
- </jms-bus>
-
- </jms-provider>
- <jbr-provider name="JBR-Http" protocol="http" host="localhost">
- <jbr-bus busid="Http-1" port="9888" />
- </jbr-provider>
- </providers>
-
- <services>
- <service category="Security" name="SimpleListenerSecured" description="Hello World">
- <security moduleName="messaging"/>
-
- <listeners>
- <jms-listener name="JMS-Gateway" busidref="quickstartGwChannel" maxThreads="1" is-gateway="true" />
- <jms-listener name="helloWorld" busidref="quickstartEsbChannel" maxThreads="1" />
-
- <jbr-listener name="Http-Gateway" busidref="Http-1" is-gateway="true">
- <property name="synchronous" value="false"/>
- </jbr-listener>
-
- </listeners>
-
- <actions mep="OneWay">
- <action name="debug" class="org.jboss.soa.esb.actions.SystemPrintln">
- <property name="printfull" value="false"/>
- <property name="message" value="In Service1"/>
- </action>
- <action name="action1" class="org.jboss.soa.esb.samples.quickstart.securitybasic.MyListenerAction" process="displayMessage"/>
-
- <!-- The next action is for Continuous Integration testing -->
- <action name="testStore" class="org.jboss.soa.esb.actions.TestMessageStore"/>
-
- <!-- Route to the "Service 2" -->
- <action name="routeAction" class="org.jboss.soa.esb.actions.StaticRouter">
- <property name="destinations">
- <route-to service-category="Security" service-name="Service2"/>
- </property>
- </action>
-
- </actions>
- </service>
-
- <service category="Security" name="Service2" description="Service 2">
- <security moduleName="messaging" />
- <listeners>
- <jms-listener name="helloWorld" busidref="quickstartEsbChannel2" maxThreads="1" />
- </listeners>
- <actions mep="OneWay">
- <action name="action1" class="org.jboss.soa.esb.actions.SystemPrintln">
- <property name="printfull" value="false"/>
- <property name="message" value="In Service2"/>
- </action>
-
- <action name="action2" class="org.jboss.soa.esb.samples.quickstart.securitybasic.MyListenerAction" process="displayMessage"/>
-
- </actions>
- </service>
-
- </services>
-
-</jbossesb>
Copied: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_basic/jboss-esb.xml (from rev 24846, labs/jbossesb/trunk/product/samples/quickstarts/security_basic/jboss-esb.xml)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_basic/jboss-esb.xml (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_basic/jboss-esb.xml 2009-01-21 15:38:08 UTC (rev 24850)
@@ -0,0 +1,74 @@
+<?xml version = "1.0" encoding = "UTF-8"?>
+<jbossesb xmlns="http://anonsvn.labs.jboss.com/labs/jbossesb/trunk/product/etc/schemas/xml/jbossesb-1.0.1.xsd" parameterReloadSecs="5">
+
+ <providers>
+ <jms-provider name="JMSProvider" connection-factory="ConnectionFactory">
+ <jms-bus busid="quickstartGwChannel">
+ <jms-message-filter dest-type="QUEUE" dest-name="queue/quickstart_securitybasic_Request_gw" />
+ </jms-bus>
+ <jms-bus busid="quickstartEsbChannel">
+ <jms-message-filter dest-type="QUEUE" dest-name="queue/quickstart_securitybasic_Request_esb" />
+ </jms-bus>
+ <jms-bus busid="quickstartEsbChannel2">
+ <jms-message-filter dest-type="QUEUE" dest-name="queue/quickstart_securitybasic_Request2_esb" />
+ </jms-bus>
+
+ </jms-provider>
+ <jbr-provider name="JBR-Http" protocol="http" host="localhost">
+ <jbr-bus busid="Http-1" port="9888" />
+ </jbr-provider>
+ </providers>
+
+ <services>
+ <service category="Security" name="SimpleListenerSecured" description="Hello World">
+ <security moduleName="messaging"/>
+
+ <listeners>
+ <jms-listener name="JMS-Gateway" busidref="quickstartGwChannel" maxThreads="1" is-gateway="true" />
+ <jms-listener name="helloWorld" busidref="quickstartEsbChannel" maxThreads="1" />
+
+ <jbr-listener name="Http-Gateway" busidref="Http-1" is-gateway="true">
+ <property name="synchronous" value="false"/>
+ </jbr-listener>
+
+ </listeners>
+
+ <actions mep="OneWay">
+ <action name="debug" class="org.jboss.soa.esb.actions.SystemPrintln">
+ <property name="printfull" value="false"/>
+ <property name="message" value="In Service1"/>
+ </action>
+ <action name="action1" class="org.jboss.soa.esb.samples.quickstart.securitybasic.MyListenerAction" process="displayMessage"/>
+
+ <!-- The next action is for Continuous Integration testing -->
+ <action name="testStore" class="org.jboss.soa.esb.actions.TestMessageStore"/>
+
+ <!-- Route to the "Service 2" -->
+ <action name="routeAction" class="org.jboss.soa.esb.actions.StaticRouter">
+ <property name="destinations">
+ <route-to service-category="Security" service-name="Service2"/>
+ </property>
+ </action>
+
+ </actions>
+ </service>
+
+ <service category="Security" name="Service2" description="Service 2">
+ <security moduleName="messaging" />
+ <listeners>
+ <jms-listener name="helloWorld" busidref="quickstartEsbChannel2" maxThreads="1" />
+ </listeners>
+ <actions mep="OneWay">
+ <action name="action1" class="org.jboss.soa.esb.actions.SystemPrintln">
+ <property name="printfull" value="false"/>
+ <property name="message" value="In Service2"/>
+ </action>
+
+ <action name="action2" class="org.jboss.soa.esb.samples.quickstart.securitybasic.MyListenerAction" process="displayMessage"/>
+
+ </actions>
+ </service>
+
+ </services>
+
+</jbossesb>
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_basic/jbossesb-properties.xml
===================================================================
--- labs/jbossesb/trunk/product/samples/quickstarts/security_basic/jbossesb-properties.xml 2009-01-21 09:35:03 UTC (rev 24846)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_basic/jbossesb-properties.xml 2009-01-21 15:38:08 UTC (rev 24850)
@@ -1,97 +0,0 @@
-<?xml version="1.0" encoding="ISO-8859-1"?>
-<!--
- JBoss, Home of Professional Open Source
- Copyright 2006, JBoss Inc., and others contributors as indicated
- by the @authors tag. All rights reserved.
- See the copyright.txt in the distribution for a
- full listing of individual contributors.
- This copyrighted material is made available to anyone wishing to use,
- modify, copy, or redistribute it subject to the terms and conditions
- of the GNU Lesser General Public License, v. 2.1.
- This program is distributed in the hope that it will be useful, but WITHOUT A
- WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
- PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
- You should have received a copy of the GNU Lesser General Public License,
- v.2.1 along with this distribution; if not, write to the Free Software
- Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
- MA 02110-1301, USA.
-
- (C) 2005-2006,
- @author JBoss Inc.
--->
-<!-- $Id: jbossesb-unittest-properties.xml $ -->
-<!--
- These options are described in the JBossESB manual.
- Defaults are provided here for convenience only.
-
- Please read through this file prior to using the system, and consider
- updating the specified entries.
--->
-<esb
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:noNamespaceSchemaLocation="jbossesb-1_0.xsd">
- <properties name="core">
- <property name="org.jboss.soa.esb.jndi.server.type" value="jboss"/>
- <property name="org.jboss.soa.esb.jndi.server.url" value="localhost"/>
- <property name="org.jboss.soa.esb.persistence.connection.factory" value="org.jboss.internal.soa.esb.persistence.format.MessageStoreFactoryImpl"/>
- <property name="jboss.esb.invm.scope.default" value="NONE"/>
- </properties>
- <properties name="security">
- <property name="org.jboss.soa.esb.services.security.implementationClass" value="org.jboss.internal.soa.esb.services.security.OpenSSOSecuritySerivce"/>
- <property name="org.jboss.soa.esb.services.security.configUrl" value="/AMConfig.properties"/>
-
- <property name="org.jboss.soa.esb.services.security.publicKeystore" value="/publicKeyStore"/>
- <property name="org.jboss.soa.esb.services.security.publicKeystorePassword" value="testKeystorePassword"/>
- <property name="org.jboss.soa.esb.services.security.publicKeyAlias" value="testAlias"/>
- <property name="org.jboss.soa.esb.services.security.publicKeyPassword" value="testPassword"/>
- <property name="org.jboss.soa.esb.services.security.publicKeyTransformation" value="RSA/ECB/PKCS1Padding"/>
-
- </properties>
- <properties name="registry">
- <property name="org.jboss.soa.esb.registry.queryManagerURI"
- value="jnp://localhost:1099/InquiryService?org.apache.juddi.registry.rmi.Inquiry#inquire"/>
- <property name="org.jboss.soa.esb.registry.lifeCycleManagerURI"
- value="jnp://localhost:1099/PublishService?org.apache.juddi.registry.rmi.Publish#publish" />
- <property name="org.jboss.soa.esb.registry.implementationClass"
- value="org.jboss.internal.soa.esb.services.registry.JAXRRegistryImpl"/>
- <property name="org.jboss.soa.esb.registry.factoryClass"
- value="org.apache.ws.scout.registry.ConnectionFactoryImpl"/>
- <property name="org.jboss.soa.esb.registry.user"
- value="jbossesb"/>
- <property name="org.jboss.soa.esb.registry.password"
- value="password"/>
- <!-- the following parameter is scout specific to set the type of communication between scout and the UDDI (embedded, rmi, soap) -->
- <property name="org.jboss.soa.esb.scout.proxy.transportClass"
- value="org.apache.ws.scout.transport.RMITransport"/>
- </properties>
- <properties name="transports" depends="core">
- <property name="org.jboss.soa.esb.mail.smtp.host" value="localhost"/>
- <property name="org.jboss.soa.esb.mail.smtp.user" value="jbossesb"/>
- <property name="org.jboss.soa.esb.mail.smtp.password" value=""/>
- <property name="org.jboss.soa.esb.mail.smtp.port" value="25"/>
- </properties>
- <properties name="connection">
- <property name="min-pool-size" value="5"/>
- <property name="max-pool=size" value="10"/>
- <property name="blocking-timeout-millis" value="5000"/>
- <property name="abandoned-connection-timeout" value="10000"/>
- <property name="abandoned-connection-time-interval" value="30000"/>
- </properties>
- <properties name="dbstore">
- <property name="org.jboss.soa.esb.persistence.db.connection.url" value="jdbc:hsqldb:hsql://localhost:9001/"/>
- <property name="org.jboss.soa.esb.persistence.db.jdbc.driver" value="org.hsqldb.jdbcDriver"/>
- <property name="org.jboss.soa.esb.persistence.db.user" value="sa"/>
- <property name="org.jboss.soa.esb.persistence.db.pwd" value=""/>
- <property name="org.jboss.soa.esb.persistence.db.pool.initial.size" value="2"/>
- <property name="org.jboss.soa.esb.persistence.db.pool.min.size" value="2"/>
- <property name="org.jboss.soa.esb.persistence.db.pool.max.size" value="5"/>
- <!--table managed by pool to test for valid connections - created by pool automatically -->
- <property name="org.jboss.soa.esb.persistence.db.pool.test.table" value="pooltest"/>
- <!-- # of milliseconds to timeout waiting for a connection from pool -->
- <property name="org.jboss.soa.esb.persistence.db.pool.timeout.millis" value="5000"/>
- <property name="org.jboss.soa.esb.persistence.db.conn.manager" value="org.jboss.internal.soa.esb.persistence.manager.StandaloneConnectionManager"/>
- </properties>
- <properties name="messagerouting">
- <property name="org.jboss.soa.esb.routing.cbrClass" value="org.jboss.internal.soa.esb.services.routing.cbr.JBossRulesRouter"/>
- </properties>
-</esb>
Copied: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_basic/jbossesb-properties.xml (from rev 24846, labs/jbossesb/trunk/product/samples/quickstarts/security_basic/jbossesb-properties.xml)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_basic/jbossesb-properties.xml (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_basic/jbossesb-properties.xml 2009-01-21 15:38:08 UTC (rev 24850)
@@ -0,0 +1,97 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!--
+ JBoss, Home of Professional Open Source
+ Copyright 2006, JBoss Inc., and others contributors as indicated
+ by the @authors tag. All rights reserved.
+ See the copyright.txt in the distribution for a
+ full listing of individual contributors.
+ This copyrighted material is made available to anyone wishing to use,
+ modify, copy, or redistribute it subject to the terms and conditions
+ of the GNU Lesser General Public License, v. 2.1.
+ This program is distributed in the hope that it will be useful, but WITHOUT A
+ WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+ PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
+ You should have received a copy of the GNU Lesser General Public License,
+ v.2.1 along with this distribution; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ MA 02110-1301, USA.
+
+ (C) 2005-2006,
+ @author JBoss Inc.
+-->
+<!-- $Id: jbossesb-unittest-properties.xml $ -->
+<!--
+ These options are described in the JBossESB manual.
+ Defaults are provided here for convenience only.
+
+ Please read through this file prior to using the system, and consider
+ updating the specified entries.
+-->
+<esb
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:noNamespaceSchemaLocation="jbossesb-1_0.xsd">
+ <properties name="core">
+ <property name="org.jboss.soa.esb.jndi.server.type" value="jboss"/>
+ <property name="org.jboss.soa.esb.jndi.server.url" value="localhost"/>
+ <property name="org.jboss.soa.esb.persistence.connection.factory" value="org.jboss.internal.soa.esb.persistence.format.MessageStoreFactoryImpl"/>
+ <property name="jboss.esb.invm.scope.default" value="NONE"/>
+ </properties>
+ <properties name="security">
+ <property name="org.jboss.soa.esb.services.security.implementationClass" value="org.jboss.internal.soa.esb.services.security.OpenSSOSecuritySerivce"/>
+ <property name="org.jboss.soa.esb.services.security.configUrl" value="/AMConfig.properties"/>
+
+ <property name="org.jboss.soa.esb.services.security.publicKeystore" value="/publicKeyStore"/>
+ <property name="org.jboss.soa.esb.services.security.publicKeystorePassword" value="testKeystorePassword"/>
+ <property name="org.jboss.soa.esb.services.security.publicKeyAlias" value="testAlias"/>
+ <property name="org.jboss.soa.esb.services.security.publicKeyPassword" value="testPassword"/>
+ <property name="org.jboss.soa.esb.services.security.publicKeyTransformation" value="RSA/ECB/PKCS1Padding"/>
+
+ </properties>
+ <properties name="registry">
+ <property name="org.jboss.soa.esb.registry.queryManagerURI"
+ value="jnp://localhost:1099/InquiryService?org.apache.juddi.registry.rmi.Inquiry#inquire"/>
+ <property name="org.jboss.soa.esb.registry.lifeCycleManagerURI"
+ value="jnp://localhost:1099/PublishService?org.apache.juddi.registry.rmi.Publish#publish" />
+ <property name="org.jboss.soa.esb.registry.implementationClass"
+ value="org.jboss.internal.soa.esb.services.registry.JAXRRegistryImpl"/>
+ <property name="org.jboss.soa.esb.registry.factoryClass"
+ value="org.apache.ws.scout.registry.ConnectionFactoryImpl"/>
+ <property name="org.jboss.soa.esb.registry.user"
+ value="jbossesb"/>
+ <property name="org.jboss.soa.esb.registry.password"
+ value="password"/>
+ <!-- the following parameter is scout specific to set the type of communication between scout and the UDDI (embedded, rmi, soap) -->
+ <property name="org.jboss.soa.esb.scout.proxy.transportClass"
+ value="org.apache.ws.scout.transport.RMITransport"/>
+ </properties>
+ <properties name="transports" depends="core">
+ <property name="org.jboss.soa.esb.mail.smtp.host" value="localhost"/>
+ <property name="org.jboss.soa.esb.mail.smtp.user" value="jbossesb"/>
+ <property name="org.jboss.soa.esb.mail.smtp.password" value=""/>
+ <property name="org.jboss.soa.esb.mail.smtp.port" value="25"/>
+ </properties>
+ <properties name="connection">
+ <property name="min-pool-size" value="5"/>
+ <property name="max-pool=size" value="10"/>
+ <property name="blocking-timeout-millis" value="5000"/>
+ <property name="abandoned-connection-timeout" value="10000"/>
+ <property name="abandoned-connection-time-interval" value="30000"/>
+ </properties>
+ <properties name="dbstore">
+ <property name="org.jboss.soa.esb.persistence.db.connection.url" value="jdbc:hsqldb:hsql://localhost:9001/"/>
+ <property name="org.jboss.soa.esb.persistence.db.jdbc.driver" value="org.hsqldb.jdbcDriver"/>
+ <property name="org.jboss.soa.esb.persistence.db.user" value="sa"/>
+ <property name="org.jboss.soa.esb.persistence.db.pwd" value=""/>
+ <property name="org.jboss.soa.esb.persistence.db.pool.initial.size" value="2"/>
+ <property name="org.jboss.soa.esb.persistence.db.pool.min.size" value="2"/>
+ <property name="org.jboss.soa.esb.persistence.db.pool.max.size" value="5"/>
+ <!--table managed by pool to test for valid connections - created by pool automatically -->
+ <property name="org.jboss.soa.esb.persistence.db.pool.test.table" value="pooltest"/>
+ <!-- # of milliseconds to timeout waiting for a connection from pool -->
+ <property name="org.jboss.soa.esb.persistence.db.pool.timeout.millis" value="5000"/>
+ <property name="org.jboss.soa.esb.persistence.db.conn.manager" value="org.jboss.internal.soa.esb.persistence.manager.StandaloneConnectionManager"/>
+ </properties>
+ <properties name="messagerouting">
+ <property name="org.jboss.soa.esb.routing.cbrClass" value="org.jboss.internal.soa.esb.services.routing.cbr.JBossRulesRouter"/>
+ </properties>
+</esb>
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_basic/jndi.properties
===================================================================
--- labs/jbossesb/trunk/product/samples/quickstarts/security_basic/jndi.properties 2009-01-21 09:35:03 UTC (rev 24846)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_basic/jndi.properties 2009-01-21 15:38:08 UTC (rev 24850)
@@ -1,5 +0,0 @@
-java.naming.factory.initial=org.jnp.interfaces.NamingContextFactory
-java.naming.provider.url=jnp://localhost:1099
-java.naming.factory.url.pkgs=org.jboss.naming
-java.naming.factory.url.pkgs=org.jnp.interfaces
-
Copied: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_basic/jndi.properties (from rev 24846, labs/jbossesb/trunk/product/samples/quickstarts/security_basic/jndi.properties)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_basic/jndi.properties (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_basic/jndi.properties 2009-01-21 15:38:08 UTC (rev 24850)
@@ -0,0 +1,5 @@
+java.naming.factory.initial=org.jnp.interfaces.NamingContextFactory
+java.naming.provider.url=jnp://localhost:1099
+java.naming.factory.url.pkgs=org.jboss.naming
+java.naming.factory.url.pkgs=org.jnp.interfaces
+
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_basic/juddi.properties
===================================================================
--- labs/jbossesb/trunk/product/samples/quickstarts/security_basic/juddi.properties 2009-01-21 09:35:03 UTC (rev 24846)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_basic/juddi.properties 2009-01-21 15:38:08 UTC (rev 24850)
@@ -1,69 +0,0 @@
-# jUDDI Registry Properties (used by RegistryServer)
-# see http://www.juddi.org for more information
-
-# The UDDI Operator Name
-juddi.operatorName = jUDDI.org
-
-# The i18n locale default codes
-juddi.i18n.languageCode = en
-juddi.i18n.countryCode = US
-
-# The UDDI DiscoveryURL Prefix
-juddi.discoveryURL = http://localhost:8080/juddi/uddiget.jsp?
-
-# The UDDI Operator Contact Email Address
-juddi.operatorEmailAddress = admin at juddi.org
-
-# The maximum name size and maximum number
-# of name elements allows in several of the
-# FindXxxx and SaveXxxx UDDI functions.
-juddi.maxNameLength=255
-juddi.maxNameElementsAllowed=5
-
-# The maximum number of UDDI artifacts allowed
-# per publisher. A value of '-1' indicates any
-# number of artifacts is valid (These values can be
-# overridden at the individual publisher level).
-juddi.maxBusinessesPerPublisher=25
-juddi.maxServicesPerBusiness=20
-juddi.maxBindingsPerService=10
-juddi.maxTModelsPerPublisher=100
-
-# jUDDI Authentication module to use
-juddi.auth = org.apache.juddi.auth.DefaultAuthenticator
-
-# jUDDI DataStore module currently to use
-juddi.dataStore = org.apache.juddi.datastore.jdbc.JDBCDataStore
-
-# use a dataSource (if set to false a direct
-# jdbc connection will be used.
-juddi.isUseDataSource=false
-juddi.jdbcDriver=com.mysql.jdbc.Driver
-juddi.jdbcUrl=jdbc:mysql://localhost:3306/juddi
-juddi.jdbcUsername=root
-juddi.jdbcPassword=admin
-# jUDDI DataSource to use
-# juddi.dataSource=java:comp/env/jdbc/MySqlDS
-
-# jUDDI UUIDGen implementation to use
-juddi.uuidgen = org.apache.juddi.uuidgen.DefaultUUIDGen
-
-# jUDDI Cryptor implementation to use
-juddi.cryptor = org.apache.juddi.cryptor.DefaultCryptor
-
-# jUDDI Validator to use
-juddi.validator=org.apache.juddi.validator.DefaultValidator
-
-# jUDDI Proxy Properties (used by RegistryProxy)
-juddi.proxy.adminURL = http://localhost:8080/juddi/admin
-juddi.proxy.inquiryURL = http://localhost:8080/juddi/inquiry
-juddi.proxy.publishURL = http://localhost:8080/juddi/publish
-juddi.proxy.transportClass = org.apache.juddi.proxy.AxisTransport
-juddi.proxy.securityProvider = com.sun.net.ssl.internal.ssl.Provider
-juddi.proxy.protocolHandler = com.sun.net.ssl.internal.www.protocol
-
-# JNDI settings (used by RMITransport)
-java.naming.factory.initial=org.jnp.interfaces.NamingContextFactory
-java.naming.provider.url=jnp://localhost:1099
-java.naming.factory.url.pkgs=org.jboss.naming
-
Copied: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_basic/juddi.properties (from rev 24846, labs/jbossesb/trunk/product/samples/quickstarts/security_basic/juddi.properties)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_basic/juddi.properties (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_basic/juddi.properties 2009-01-21 15:38:08 UTC (rev 24850)
@@ -0,0 +1,69 @@
+# jUDDI Registry Properties (used by RegistryServer)
+# see http://www.juddi.org for more information
+
+# The UDDI Operator Name
+juddi.operatorName = jUDDI.org
+
+# The i18n locale default codes
+juddi.i18n.languageCode = en
+juddi.i18n.countryCode = US
+
+# The UDDI DiscoveryURL Prefix
+juddi.discoveryURL = http://localhost:8080/juddi/uddiget.jsp?
+
+# The UDDI Operator Contact Email Address
+juddi.operatorEmailAddress = admin at juddi.org
+
+# The maximum name size and maximum number
+# of name elements allows in several of the
+# FindXxxx and SaveXxxx UDDI functions.
+juddi.maxNameLength=255
+juddi.maxNameElementsAllowed=5
+
+# The maximum number of UDDI artifacts allowed
+# per publisher. A value of '-1' indicates any
+# number of artifacts is valid (These values can be
+# overridden at the individual publisher level).
+juddi.maxBusinessesPerPublisher=25
+juddi.maxServicesPerBusiness=20
+juddi.maxBindingsPerService=10
+juddi.maxTModelsPerPublisher=100
+
+# jUDDI Authentication module to use
+juddi.auth = org.apache.juddi.auth.DefaultAuthenticator
+
+# jUDDI DataStore module currently to use
+juddi.dataStore = org.apache.juddi.datastore.jdbc.JDBCDataStore
+
+# use a dataSource (if set to false a direct
+# jdbc connection will be used.
+juddi.isUseDataSource=false
+juddi.jdbcDriver=com.mysql.jdbc.Driver
+juddi.jdbcUrl=jdbc:mysql://localhost:3306/juddi
+juddi.jdbcUsername=root
+juddi.jdbcPassword=admin
+# jUDDI DataSource to use
+# juddi.dataSource=java:comp/env/jdbc/MySqlDS
+
+# jUDDI UUIDGen implementation to use
+juddi.uuidgen = org.apache.juddi.uuidgen.DefaultUUIDGen
+
+# jUDDI Cryptor implementation to use
+juddi.cryptor = org.apache.juddi.cryptor.DefaultCryptor
+
+# jUDDI Validator to use
+juddi.validator=org.apache.juddi.validator.DefaultValidator
+
+# jUDDI Proxy Properties (used by RegistryProxy)
+juddi.proxy.adminURL = http://localhost:8080/juddi/admin
+juddi.proxy.inquiryURL = http://localhost:8080/juddi/inquiry
+juddi.proxy.publishURL = http://localhost:8080/juddi/publish
+juddi.proxy.transportClass = org.apache.juddi.proxy.AxisTransport
+juddi.proxy.securityProvider = com.sun.net.ssl.internal.ssl.Provider
+juddi.proxy.protocolHandler = com.sun.net.ssl.internal.www.protocol
+
+# JNDI settings (used by RMITransport)
+java.naming.factory.initial=org.jnp.interfaces.NamingContextFactory
+java.naming.provider.url=jnp://localhost:1099
+java.naming.factory.url.pkgs=org.jboss.naming
+
Copied: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_basic/lib (from rev 24846, labs/jbossesb/trunk/product/samples/quickstarts/security_basic/lib)
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_basic/log4j.xml
===================================================================
--- labs/jbossesb/trunk/product/samples/quickstarts/security_basic/log4j.xml 2009-01-21 09:35:03 UTC (rev 24846)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_basic/log4j.xml 2009-01-21 15:38:08 UTC (rev 24850)
@@ -1,79 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
-
-<!-- ===================================================================== -->
-<!-- -->
-<!-- Log4j Configuration -->
-<!-- -->
-<!-- ===================================================================== -->
-
-<!-- $Id: log4j.xml,v 1.26.2.5 2005/09/15 09:31:02 dimitris Exp $ -->
-
-<!--
- | For more configuration infromation and examples see the Jakarta Log4j
- | owebsite: http://jakarta.apache.org/log4j
- -->
-
-<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/" debug="false">
-
- <!-- ============================== -->
- <!-- Append messages to the console -->
- <!-- ============================== -->
-
- <appender name="CONSOLE" class="org.apache.log4j.ConsoleAppender">
- <errorHandler class="org.jboss.logging.util.OnlyOnceErrorHandler"/>
- <param name="Target" value="System.out"/>
- <param name="Threshold" value="INFO"/>
-
- <layout class="org.apache.log4j.PatternLayout">
- <!-- The default pattern: Date Priority [Category] Message\n -->
- <param name="ConversionPattern" value="%d{ABSOLUTE} %-5p [%t][%c{1}] %m%n"/>
- </layout>
- </appender>
-
- <!-- ================================= -->
- <!-- Preserve messages in a local file -->
- <!-- ================================= -->
-
- <!-- A size based file rolling appender -->
- <appender name="FILE" class="org.jboss.logging.appender.RollingFileAppender">
- <errorHandler class="org.jboss.logging.util.OnlyOnceErrorHandler"/>
- <param name="File" value="./listener.log"/>
- <param name="Append" value="false"/>
- <param name="MaxFileSize" value="500KB"/>
- <param name="MaxBackupIndex" value="1"/>
-
- <layout class="org.apache.log4j.PatternLayout">
- <param name="ConversionPattern" value="%d %-5p [%t][%c] %m%n"/>
- </layout>
- </appender>
-
- <!-- ================ -->
- <!-- Limit categories -->
- <!-- ================ -->
-
- <category name="org.jboss">
- <priority value="WARN"/>
- </category>
- <category name="org.jboss.soa.esb">
- <priority value="ERROR"/>
- </category>
- <category name="org.jboss.internal.soa.esb">
- <priority value="ERROR"/>
- </category>
- <category name="org.apache">
- <priority value="ERROR"/>
- </category>
- <category name="quickstart">
- <priority value="DEBUG"/>
- </category>
- <!-- ======================= -->
- <!-- Setup the Root category -->
- <!-- ======================= -->
-
- <root>
- <appender-ref ref="CONSOLE"/>
- <appender-ref ref="FILE"/>
- </root>
-
-</log4j:configuration>
Copied: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_basic/log4j.xml (from rev 24846, labs/jbossesb/trunk/product/samples/quickstarts/security_basic/log4j.xml)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_basic/log4j.xml (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_basic/log4j.xml 2009-01-21 15:38:08 UTC (rev 24850)
@@ -0,0 +1,79 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
+
+<!-- ===================================================================== -->
+<!-- -->
+<!-- Log4j Configuration -->
+<!-- -->
+<!-- ===================================================================== -->
+
+<!-- $Id: log4j.xml,v 1.26.2.5 2005/09/15 09:31:02 dimitris Exp $ -->
+
+<!--
+ | For more configuration infromation and examples see the Jakarta Log4j
+ | owebsite: http://jakarta.apache.org/log4j
+ -->
+
+<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/" debug="false">
+
+ <!-- ============================== -->
+ <!-- Append messages to the console -->
+ <!-- ============================== -->
+
+ <appender name="CONSOLE" class="org.apache.log4j.ConsoleAppender">
+ <errorHandler class="org.jboss.logging.util.OnlyOnceErrorHandler"/>
+ <param name="Target" value="System.out"/>
+ <param name="Threshold" value="INFO"/>
+
+ <layout class="org.apache.log4j.PatternLayout">
+ <!-- The default pattern: Date Priority [Category] Message\n -->
+ <param name="ConversionPattern" value="%d{ABSOLUTE} %-5p [%t][%c{1}] %m%n"/>
+ </layout>
+ </appender>
+
+ <!-- ================================= -->
+ <!-- Preserve messages in a local file -->
+ <!-- ================================= -->
+
+ <!-- A size based file rolling appender -->
+ <appender name="FILE" class="org.jboss.logging.appender.RollingFileAppender">
+ <errorHandler class="org.jboss.logging.util.OnlyOnceErrorHandler"/>
+ <param name="File" value="./listener.log"/>
+ <param name="Append" value="false"/>
+ <param name="MaxFileSize" value="500KB"/>
+ <param name="MaxBackupIndex" value="1"/>
+
+ <layout class="org.apache.log4j.PatternLayout">
+ <param name="ConversionPattern" value="%d %-5p [%t][%c] %m%n"/>
+ </layout>
+ </appender>
+
+ <!-- ================ -->
+ <!-- Limit categories -->
+ <!-- ================ -->
+
+ <category name="org.jboss">
+ <priority value="WARN"/>
+ </category>
+ <category name="org.jboss.soa.esb">
+ <priority value="ERROR"/>
+ </category>
+ <category name="org.jboss.internal.soa.esb">
+ <priority value="ERROR"/>
+ </category>
+ <category name="org.apache">
+ <priority value="ERROR"/>
+ </category>
+ <category name="quickstart">
+ <priority value="DEBUG"/>
+ </category>
+ <!-- ======================= -->
+ <!-- Setup the Root category -->
+ <!-- ======================= -->
+
+ <root>
+ <appender-ref ref="CONSOLE"/>
+ <appender-ref ref="FILE"/>
+ </root>
+
+</log4j:configuration>
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_basic/publicKeyStore
===================================================================
(Binary files differ)
Copied: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_basic/publicKeyStore (from rev 24846, labs/jbossesb/trunk/product/samples/quickstarts/security_basic/publicKeyStore)
===================================================================
(Binary files differ)
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_basic/readme.txt
===================================================================
--- labs/jbossesb/trunk/product/samples/quickstarts/security_basic/readme.txt 2009-01-21 09:35:03 UTC (rev 24846)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_basic/readme.txt 2009-01-21 15:38:08 UTC (rev 24850)
@@ -1,43 +0,0 @@
-Overview:
-=========
- This quickstart demonstrates basic security in JBossESB. The following will be demonstrated by this quickstart:
- * Per service authentication configuration
- * Configuring the roles allowed to execute the service
- * Invoking a service via a gateway
- * Invoking a service directly (using the ServiceInvoker)
-
-Running this quickstart:
-========================
- Please refer to 'ant help-quickstarts' for prerequisites about the quickstarts
- and a more detailed descripton of the different ways to run the quickstarts.
-
-To Run '.esb' archive mode with JBossAS-server:
-===========================
- 1. Type 'ant deploy'.
- 2. 'ant runtest' will send a HTTP request to a JBossRemoting Gatway
- 2. 'ant sendesb' will invoke the Service directly using the ServiceInvoker
-
-What to look for in this quickstart
-===================================
- # Security configuration
- <service category="Security" name="SimpleListenerSecured" description="Hello World">
- <security moduleName="messaging" rolesAllowed="esbrole"/>
- The security element declares that this service requires authentication to be executed and that the
- authenticated users be a member in the role 'esbrole'. The role is determined by the JAAS login
- module being used, in this case by the 'messaging' module specified in login-config.xml.
-
- # src/org/jboss/soa/esb/samples/quickstart/securitybasic/test/HttpClient.java
- This is a JBossRemoting client that uses http to invoke the JBossRemoting gateway.
-
- # src/org/jboss/soa/esb/samples/quickstart/securitybasic/test/SendEsbMessage.java
- This class uses the ServiceInvoker to invoke the ESB service directly, by-passing the gateway.
- You can see how an AuthenticationRequest is created then encrypted, and passed to the ESB
- by attaching the authentication request to the ESB Message object.
-
- # src/org/jboss/soa/esb/samples/quickstart/securitybasic/MyListenerAction.java
- This ESB Action show how the currently autenticated JAAS Subject can be accessed:
- System.out.println("Subject in MyListenerAction : " + Subject.getSubject(AccessController.getContext()));
-
- # Please refer to the "Security" section of the ServiceGuide.pdf for more details on the security features of JBossESB.
-
-
Copied: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_basic/readme.txt (from rev 24846, labs/jbossesb/trunk/product/samples/quickstarts/security_basic/readme.txt)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_basic/readme.txt (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_basic/readme.txt 2009-01-21 15:38:08 UTC (rev 24850)
@@ -0,0 +1,43 @@
+Overview:
+=========
+ This quickstart demonstrates basic security in JBossESB. The following will be demonstrated by this quickstart:
+ * Per service authentication configuration
+ * Configuring the roles allowed to execute the service
+ * Invoking a service via a gateway
+ * Invoking a service directly (using the ServiceInvoker)
+
+Running this quickstart:
+========================
+ Please refer to 'ant help-quickstarts' for prerequisites about the quickstarts
+ and a more detailed descripton of the different ways to run the quickstarts.
+
+To Run '.esb' archive mode with JBossAS-server:
+===========================
+ 1. Type 'ant deploy'.
+ 2. 'ant runtest' will send a HTTP request to a JBossRemoting Gatway
+ 2. 'ant sendesb' will invoke the Service directly using the ServiceInvoker
+
+What to look for in this quickstart
+===================================
+ # Security configuration
+ <service category="Security" name="SimpleListenerSecured" description="Hello World">
+ <security moduleName="messaging" rolesAllowed="esbrole"/>
+ The security element declares that this service requires authentication to be executed and that the
+ authenticated users be a member in the role 'esbrole'. The role is determined by the JAAS login
+ module being used, in this case by the 'messaging' module specified in login-config.xml.
+
+ # src/org/jboss/soa/esb/samples/quickstart/securitybasic/test/HttpClient.java
+ This is a JBossRemoting client that uses http to invoke the JBossRemoting gateway.
+
+ # src/org/jboss/soa/esb/samples/quickstart/securitybasic/test/SendEsbMessage.java
+ This class uses the ServiceInvoker to invoke the ESB service directly, by-passing the gateway.
+ You can see how an AuthenticationRequest is created then encrypted, and passed to the ESB
+ by attaching the authentication request to the ESB Message object.
+
+ # src/org/jboss/soa/esb/samples/quickstart/securitybasic/MyListenerAction.java
+ This ESB Action show how the currently autenticated JAAS Subject can be accessed:
+ System.out.println("Subject in MyListenerAction : " + Subject.getSubject(AccessController.getContext()));
+
+ # Please refer to the "Security" section of the ServiceGuide.pdf for more details on the security features of JBossESB.
+
+
Copied: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_basic/src (from rev 24846, labs/jbossesb/trunk/product/samples/quickstarts/security_basic/src)
Copied: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_basic/src/org (from rev 24846, labs/jbossesb/trunk/product/samples/quickstarts/security_basic/src/org)
Copied: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_basic/src/org/jboss (from rev 24846, labs/jbossesb/trunk/product/samples/quickstarts/security_basic/src/org/jboss)
Copied: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_basic/src/org/jboss/soa (from rev 24846, labs/jbossesb/trunk/product/samples/quickstarts/security_basic/src/org/jboss/soa)
Copied: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_basic/src/org/jboss/soa/esb (from rev 24846, labs/jbossesb/trunk/product/samples/quickstarts/security_basic/src/org/jboss/soa/esb)
Copied: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_basic/src/org/jboss/soa/esb/samples (from rev 24846, labs/jbossesb/trunk/product/samples/quickstarts/security_basic/src/org/jboss/soa/esb/samples)
Copied: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_basic/src/org/jboss/soa/esb/samples/quickstart (from rev 24846, labs/jbossesb/trunk/product/samples/quickstarts/security_basic/src/org/jboss/soa/esb/samples/quickstart)
Copied: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_basic/src/org/jboss/soa/esb/samples/quickstart/securitybasic (from rev 24846, labs/jbossesb/trunk/product/samples/quickstarts/security_basic/src/org/jboss/soa/esb/samples/quickstart/securitybasic)
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_basic/src/org/jboss/soa/esb/samples/quickstart/securitybasic/MyListenerAction.java
===================================================================
--- labs/jbossesb/trunk/product/samples/quickstarts/security_basic/src/org/jboss/soa/esb/samples/quickstart/securitybasic/MyListenerAction.java 2009-01-21 09:35:03 UTC (rev 24846)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_basic/src/org/jboss/soa/esb/samples/quickstart/securitybasic/MyListenerAction.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -1,56 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2006, JBoss Inc., and others contributors as indicated
- * by the @authors tag. All rights reserved.
- * See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- * This copyrighted material is made available to anyone wishing to use,
- * modify, copy, or redistribute it subject to the terms and conditions
- * of the GNU Lesser General Public License, v. 2.1.
- * This program is distributed in the hope that it will be useful, but WITHOUT A
- * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
- * PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
- * You should have received a copy of the GNU Lesser General Public License,
- * v.2.1 along with this distribution; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
- * MA 02110-1301, USA.
- *
- * (C) 2005-2006,
- * @author JBoss Inc.
- */
-package org.jboss.soa.esb.samples.quickstart.securitybasic;
-
-import java.net.URL;
-import java.io.File;
-import java.io.FilePermission;
-import java.security.AccessControlContext;
-import java.security.AccessController;
-import java.security.CodeSource;
-import java.security.Permissions;
-import java.security.PermissionCollection;
-import java.security.Policy;
-
-import javax.security.auth.Subject;
-
-import org.jboss.soa.esb.ConfigurationException;
-import org.jboss.soa.esb.actions.AbstractActionLifecycle;
-import org.jboss.soa.esb.helpers.ConfigTree;
-import org.jboss.soa.esb.message.Message;
-
-public class MyListenerAction extends AbstractActionLifecycle
-{
-
- protected ConfigTree config;
-
- public MyListenerAction(ConfigTree config) throws ConfigurationException
- {
- this.config = config;
- }
-
- public Message displayMessage(Message message) throws Exception
- {
- System.out.println("Subject in MyListenerAction : " + Subject.getSubject(AccessController.getContext()));
- return message;
- }
-
-}
Copied: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_basic/src/org/jboss/soa/esb/samples/quickstart/securitybasic/MyListenerAction.java (from rev 24846, labs/jbossesb/trunk/product/samples/quickstarts/security_basic/src/org/jboss/soa/esb/samples/quickstart/securitybasic/MyListenerAction.java)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_basic/src/org/jboss/soa/esb/samples/quickstart/securitybasic/MyListenerAction.java (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_basic/src/org/jboss/soa/esb/samples/quickstart/securitybasic/MyListenerAction.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -0,0 +1,56 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and others contributors as indicated
+ * by the @authors tag. All rights reserved.
+ * See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License, v. 2.1.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+ * PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
+ * You should have received a copy of the GNU Lesser General Public License,
+ * v.2.1 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301, USA.
+ *
+ * (C) 2005-2006,
+ * @author JBoss Inc.
+ */
+package org.jboss.soa.esb.samples.quickstart.securitybasic;
+
+import java.net.URL;
+import java.io.File;
+import java.io.FilePermission;
+import java.security.AccessControlContext;
+import java.security.AccessController;
+import java.security.CodeSource;
+import java.security.Permissions;
+import java.security.PermissionCollection;
+import java.security.Policy;
+
+import javax.security.auth.Subject;
+
+import org.jboss.soa.esb.ConfigurationException;
+import org.jboss.soa.esb.actions.AbstractActionLifecycle;
+import org.jboss.soa.esb.helpers.ConfigTree;
+import org.jboss.soa.esb.message.Message;
+
+public class MyListenerAction extends AbstractActionLifecycle
+{
+
+ protected ConfigTree config;
+
+ public MyListenerAction(ConfigTree config) throws ConfigurationException
+ {
+ this.config = config;
+ }
+
+ public Message displayMessage(Message message) throws Exception
+ {
+ System.out.println("Subject in MyListenerAction : " + Subject.getSubject(AccessController.getContext()));
+ return message;
+ }
+
+}
Copied: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_basic/src/org/jboss/soa/esb/samples/quickstart/securitybasic/test (from rev 24846, labs/jbossesb/trunk/product/samples/quickstarts/security_basic/src/org/jboss/soa/esb/samples/quickstart/securitybasic/test)
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_basic/src/org/jboss/soa/esb/samples/quickstart/securitybasic/test/HttpClient.java
===================================================================
--- labs/jbossesb/trunk/product/samples/quickstarts/security_basic/src/org/jboss/soa/esb/samples/quickstart/securitybasic/test/HttpClient.java 2009-01-21 09:35:03 UTC (rev 24846)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_basic/src/org/jboss/soa/esb/samples/quickstart/securitybasic/test/HttpClient.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -1,84 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source Copyright 2008, Red Hat Middleware
- * LLC, and individual contributors by the @authors tag. See the copyright.txt
- * in the distribution for a full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it under the
- * terms of the GNU Lesser General Public License as published by the Free
- * Software Foundation; either version 2.1 of the License, or (at your option)
- * any later version.
- *
- * This software is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
- * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
- * details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this software; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA, or see the FSF
- * site: http://www.fsf.org.
- */
-package org.jboss.soa.esb.samples.quickstart.securitybasic.test;
-
-import org.jboss.remoting.Client;
-import org.jboss.remoting.InvokerLocator;
-import org.jboss.remoting.transport.http.HTTPMetadataConstants;
-
-import java.util.HashMap;
-import java.util.Map;
-
-public class HttpClient
-{
- // Default locator values
- private static String transport = "http";
- private static String host = "localhost";
- private static int port = 5400;
- private static String username;
- private static String password;
-
- public void makeInvocation(String locatorURI) throws Throwable
- {
- InvokerLocator locator = new InvokerLocator(locatorURI);
- System.out.println("Calling remoting server with locator uri of: " + locatorURI);
-
- Client remotingClient = new Client(locator);
- remotingClient.connect();
-
- Map metadata = new HashMap();
- metadata.put("TYPE", "POST");
- metadata.put("http.basic.username", username);
- metadata.put("http.basic.password", password);
- remotingClient.invokeOneway( "Message payload example(just a String) ", metadata );
-
- System.out.println("Sent http post to server.");
- Integer responseCode = (Integer) metadata.get(HTTPMetadataConstants.RESPONSE_CODE);
- String responseMessage = (String) metadata.get(HTTPMetadataConstants.RESPONSE_CODE_MESSAGE);
- System.out.println("Response code from server: " + responseCode);
- System.out.println("Response message from server: " + responseMessage);
- remotingClient.disconnect();
-
- }
-
- public static void main(String[] args)
- {
- if(args != null && args.length == 5)
- {
- transport = args[0];
- host = args[1];
- port = Integer.parseInt(args[2]);
- username = args[3];
- password = args[4];
- }
- String locatorURI = transport + "://" + host + ":" + port;
- HttpClient client = new HttpClient();
- try
- {
- client.makeInvocation(locatorURI);
- }
- catch(Throwable e)
- {
- e.printStackTrace();
- }
- }
-}
-
Copied: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_basic/src/org/jboss/soa/esb/samples/quickstart/securitybasic/test/HttpClient.java (from rev 24846, labs/jbossesb/trunk/product/samples/quickstarts/security_basic/src/org/jboss/soa/esb/samples/quickstart/securitybasic/test/HttpClient.java)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_basic/src/org/jboss/soa/esb/samples/quickstart/securitybasic/test/HttpClient.java (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_basic/src/org/jboss/soa/esb/samples/quickstart/securitybasic/test/HttpClient.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -0,0 +1,84 @@
+/*
+ * JBoss, Home of Professional Open Source Copyright 2008, Red Hat Middleware
+ * LLC, and individual contributors by the @authors tag. See the copyright.txt
+ * in the distribution for a full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it under the
+ * terms of the GNU Lesser General Public License as published by the Free
+ * Software Foundation; either version 2.1 of the License, or (at your option)
+ * any later version.
+ *
+ * This software is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+ * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
+ * details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this software; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA, or see the FSF
+ * site: http://www.fsf.org.
+ */
+package org.jboss.soa.esb.samples.quickstart.securitybasic.test;
+
+import org.jboss.remoting.Client;
+import org.jboss.remoting.InvokerLocator;
+import org.jboss.remoting.transport.http.HTTPMetadataConstants;
+
+import java.util.HashMap;
+import java.util.Map;
+
+public class HttpClient
+{
+ // Default locator values
+ private static String transport = "http";
+ private static String host = "localhost";
+ private static int port = 5400;
+ private static String username;
+ private static String password;
+
+ public void makeInvocation(String locatorURI) throws Throwable
+ {
+ InvokerLocator locator = new InvokerLocator(locatorURI);
+ System.out.println("Calling remoting server with locator uri of: " + locatorURI);
+
+ Client remotingClient = new Client(locator);
+ remotingClient.connect();
+
+ Map metadata = new HashMap();
+ metadata.put("TYPE", "POST");
+ metadata.put("http.basic.username", username);
+ metadata.put("http.basic.password", password);
+ remotingClient.invokeOneway( "Message payload example(just a String) ", metadata );
+
+ System.out.println("Sent http post to server.");
+ Integer responseCode = (Integer) metadata.get(HTTPMetadataConstants.RESPONSE_CODE);
+ String responseMessage = (String) metadata.get(HTTPMetadataConstants.RESPONSE_CODE_MESSAGE);
+ System.out.println("Response code from server: " + responseCode);
+ System.out.println("Response message from server: " + responseMessage);
+ remotingClient.disconnect();
+
+ }
+
+ public static void main(String[] args)
+ {
+ if(args != null && args.length == 5)
+ {
+ transport = args[0];
+ host = args[1];
+ port = Integer.parseInt(args[2]);
+ username = args[3];
+ password = args[4];
+ }
+ String locatorURI = transport + "://" + host + ":" + port;
+ HttpClient client = new HttpClient();
+ try
+ {
+ client.makeInvocation(locatorURI);
+ }
+ catch(Throwable e)
+ {
+ e.printStackTrace();
+ }
+ }
+}
+
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_basic/src/org/jboss/soa/esb/samples/quickstart/securitybasic/test/SendEsbMessage.java
===================================================================
--- labs/jbossesb/trunk/product/samples/quickstarts/security_basic/src/org/jboss/soa/esb/samples/quickstart/securitybasic/test/SendEsbMessage.java 2009-01-21 09:35:03 UTC (rev 24846)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_basic/src/org/jboss/soa/esb/samples/quickstart/securitybasic/test/SendEsbMessage.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -1,80 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2006, JBoss Inc., and individual contributors as indicated
- * by the @authors tag. See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
-
-package org.jboss.soa.esb.samples.quickstart.securitybasic.test;
-
-import java.util.Set;
-import java.io.Serializable;
-import java.util.HashSet;
-import org.jboss.soa.esb.services.security.auth.AuthenticationRequestImpl;
-import org.jboss.soa.esb.message.Message;
-import org.jboss.soa.esb.message.format.MessageFactory;
-import org.jboss.soa.esb.services.security.SecurityService;
-import org.jboss.soa.esb.services.security.auth.AuthenticationRequest;
-import org.jboss.soa.esb.services.security.principals.User;
-import org.jboss.soa.esb.client.ServiceInvoker;
-import org.jboss.soa.esb.couriers.FaultMessageException;
-import org.jboss.soa.esb.services.security.PublicCryptoUtil;
-
-/**
- * Standalone class with to send ESB messages to a 'known' [category,name].
- * <p/> arg0 - service category
- * <br/>arg1 - service name
- * <br/>arg2 - Text of message to send
- * <br/>arg3 - username
- * <br/>arg4 - password
- *
- * @since Version 4.0
- *
- */
-public class SendEsbMessage
-{
- public static void main(String args[]) throws Exception
- {
-// Setting the ConnectionFactory such that it will use scout
- System.setProperty("javax.xml.registry.ConnectionFactoryClass","org.apache.ws.scout.registry.ConnectionFactoryImpl");
-
- if (args.length < 5)
- {
- System.out.println("Usage SendEsbMessage <category> <name> <text to send> <username> <password>");
- }
- Message esbMessage = MessageFactory.getInstance().getMessage();
-
- // create an AuthenticationRequest
- AuthenticationRequest authRequest = new AuthenticationRequestImpl.Builder().username(args[3]).password(args[4].toCharArray()).build();
-
- // set the authentication request on the message
- esbMessage.getContext().setContext(SecurityService.AUTH_REQUEST, PublicCryptoUtil.INSTANCE.encrypt((Serializable) authRequest));
-
- final String message = args[2];
- esbMessage.getBody().add(message);
-
- ServiceInvoker invoker = new ServiceInvoker(args[0], args[1]);
-
- try {
- invoker.deliverAsync(esbMessage);
- }catch(Exception ex) {
- ex.printStackTrace();
- }
- System.exit(0);
- }
-}
Copied: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_basic/src/org/jboss/soa/esb/samples/quickstart/securitybasic/test/SendEsbMessage.java (from rev 24846, labs/jbossesb/trunk/product/samples/quickstarts/security_basic/src/org/jboss/soa/esb/samples/quickstart/securitybasic/test/SendEsbMessage.java)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_basic/src/org/jboss/soa/esb/samples/quickstart/securitybasic/test/SendEsbMessage.java (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_basic/src/org/jboss/soa/esb/samples/quickstart/securitybasic/test/SendEsbMessage.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -0,0 +1,80 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+
+package org.jboss.soa.esb.samples.quickstart.securitybasic.test;
+
+import java.util.Set;
+import java.io.Serializable;
+import java.util.HashSet;
+import org.jboss.soa.esb.services.security.auth.AuthenticationRequestImpl;
+import org.jboss.soa.esb.message.Message;
+import org.jboss.soa.esb.message.format.MessageFactory;
+import org.jboss.soa.esb.services.security.SecurityService;
+import org.jboss.soa.esb.services.security.auth.AuthenticationRequest;
+import org.jboss.soa.esb.services.security.principals.User;
+import org.jboss.soa.esb.client.ServiceInvoker;
+import org.jboss.soa.esb.couriers.FaultMessageException;
+import org.jboss.soa.esb.services.security.PublicCryptoUtil;
+
+/**
+ * Standalone class with to send ESB messages to a 'known' [category,name].
+ * <p/> arg0 - service category
+ * <br/>arg1 - service name
+ * <br/>arg2 - Text of message to send
+ * <br/>arg3 - username
+ * <br/>arg4 - password
+ *
+ * @since Version 4.0
+ *
+ */
+public class SendEsbMessage
+{
+ public static void main(String args[]) throws Exception
+ {
+// Setting the ConnectionFactory such that it will use scout
+ System.setProperty("javax.xml.registry.ConnectionFactoryClass","org.apache.ws.scout.registry.ConnectionFactoryImpl");
+
+ if (args.length < 5)
+ {
+ System.out.println("Usage SendEsbMessage <category> <name> <text to send> <username> <password>");
+ }
+ Message esbMessage = MessageFactory.getInstance().getMessage();
+
+ // create an AuthenticationRequest
+ AuthenticationRequest authRequest = new AuthenticationRequestImpl.Builder().username(args[3]).password(args[4].toCharArray()).build();
+
+ // set the authentication request on the message
+ esbMessage.getContext().setContext(SecurityService.AUTH_REQUEST, PublicCryptoUtil.INSTANCE.encrypt((Serializable) authRequest));
+
+ final String message = args[2];
+ esbMessage.getBody().add(message);
+
+ ServiceInvoker invoker = new ServiceInvoker(args[0], args[1]);
+
+ try {
+ invoker.deliverAsync(esbMessage);
+ }catch(Exception ex) {
+ ex.printStackTrace();
+ }
+ System.exit(0);
+ }
+}
Modified: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/transform_CSV2XML/readme.txt
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/transform_CSV2XML/readme.txt 2009-01-21 14:47:17 UTC (rev 24849)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/transform_CSV2XML/readme.txt 2009-01-21 15:38:08 UTC (rev 24850)
@@ -7,7 +7,6 @@
This Quickstart does not use the JBoss ESB Administration Console to manage the
message Transformation configurations to the ESB.
- to manage this Quickstart's transformations via the Console.
Running this quickstart:
========================
@@ -15,7 +14,7 @@
and a more detailed descripton of the different ways to run the quickstarts.
A comprehensive description of message transformation can be found in
- MessageTransformation.pdf, located in the docs/services folder.
+ the Programmers Guide, located in the docs folder.
To Run standalone mode:
=======================
Modified: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise/build.xml
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise/build.xml 2009-01-21 14:47:17 UTC (rev 24849)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise/build.xml 2009-01-21 15:38:08 UTC (rev 24850)
@@ -5,8 +5,6 @@
${line.separator}
</description>
- <property name="additional.deploys" value="wise-core.properties" />
-
<!-- Import the base Ant build script... -->
<import file="../conf/base-build.xml"/>
@@ -44,7 +42,7 @@
</war>
</target>
- <target name="deploy-war" depends="prepare-deployment">
+ <target name="deploy-war" depends="prepare-deployment, makewar">
<copy todir="${org.jboss.esb.server.deploy.dir}"
file="${build.dir}/${ant.project.name}.war"/>
</target>
@@ -55,7 +53,7 @@
</target>
<target name="sendjms" depends="compile">
- <echo>Send ESB message that triggers webservice call</echo>
+ <echo>Send JMS message that triggers webservice call</echo>
<java fork="yes" classname="org.jboss.soa.esb.samples.quickstart.webservice_consumer_wise.test.SendJMSMessage" failonerror="true">
<arg value="Jimbo"/>
<classpath refid="exec-classpath"/>
Modified: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise/jboss-esb.xml
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise/jboss-esb.xml 2009-01-21 14:47:17 UTC (rev 24849)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise/jboss-esb.xml 2009-01-21 15:38:08 UTC (rev 24850)
@@ -46,9 +46,9 @@
<property name="SOAPAction" value="sayHello"/>
<property name="EndPointName" value="HelloWorldPort"/>
- <property name="serviceName" value="HelloWorldWS"/>
- <property name="userName" value=""/>
- <property name="password" value=""/>
+ <property name="serviceName" value="HelloWorldWSService"/>
+ <property name="username" value="kermit"/>
+ <property name="password" value="thefrog"/>
</action>
<action name="response-mapper"
class="org.jboss.soa.esb.samples.quickstart.webservice_consumer_wise.MyResponseAction">
Modified: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise/readme.txt
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise/readme.txt 2009-01-21 14:47:17 UTC (rev 24849)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise/readme.txt 2009-01-21 15:38:08 UTC (rev 24850)
@@ -1,92 +1,94 @@
-Overview:
-=========
- This example demonstrates how to consume a 181 Web Service in an ESB action.
- This ESB will make a webservice request that requires a single "toWhom" string parameter.
- The webservice will return a greeting response. The ESB simply dislays the response on the
- console.
-
-Running this quickstart:
-========================
- Please refer to 'ant help-quickstarts' for prerequisites about the quickstarts and a
- more detailed descripton of the different ways to run the quickstarts.
-
-To Run standalone mode:
-=======================
- This quickstart will not currently run in standalone mode.
-
-To Run '.esb' archive mode:
-===========================
- 1. In a command terminal window in this folder ("Window1"), type 'ant undeploy-jms-dests'.
- 1. In a command terminal window in this folder ("Window1"), type 'ant deploy'.
- 2. Open another command terminal window in this folder ("Window2"), type 'ant runtest'.
- 3. Switch back to Application Server console to see the output from the ESB
-
- 'runtest' target description:
- In a separate command prompt window, run "ant runtest" to shoot a JMS message
- into the listener which will then invoke the MyJMSListenerAction and display
- it to the console. You can modify the build.xml to change the phrase
- "Hello World" to something else and re-run "ant runtest".
-
- You should output that looks like this, after running "ant runtest":
- &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
- 12:35:47,975 INFO [STDOUT] Request map is: {sayHello.toWhom=Jimbo}
- 12:35:47,975 INFO [STDOUT] &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
- 12:35:47,990 WARN [HttpMethodBase] Going to buffer response body of large or unknown size. Using
- getResponseBodyAsStream instead is recommended.
- 12:35:47,991 INFO [STDOUT]
- &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
- 12:35:47,991 INFO [STDOUT] Response Map is:
- <env:Envelope xmlns:env='http://schemas.xmlsoap.org/soap/envelope/'>
- <env:Header></env:Header>
- <env:Body>
- <hel:sayHelloResponse xmlns:hel='http://webservice_consumer1/helloworld'>
- <return>Hello World Greeting for 'Jimbo' on Sat Jul 14 12:35:47 EDT 2007</return>
- </hel:sayHelloResponse></env:Body></env:Envelope>
- 12:35:47,991 INFO [STDOUT] &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
-
-Project file descriptions:
-==========================
-
- jboss-esb.xml:
- There is no JMS gateway in this quickstart. A java client talks directly to the ESB
- listener queue called "queue/quickstart_webservice_consumer1_esb". The actions in
- jboss-esb.xml convert the ESB message into to a webservice parameter Map, make a call
- to the HelloWorldWS webservice, then print the response on the console. Both juddi.properties
- and jbossesb-properties.xml are used when the service first boots up for self-registration
- based upon the service-category and service-name found in the esb-config.xml file.
-
- jndi.properties:
- Needed primarily for org.jboss.soa.esb.samples.quickstart.webservice_consumer1.test.SendESBMessage that is fired by ant runtest.
-
- log4j.xml:
- Needed to configure log4J used by both the quickstart and the ESB itself. A listener needs a place to log.
-
- src/../SendEsbMessage.java:
- Send a message directly the the ESB internal JMS listener. Demonstrates how one can bypass the
- gateway and speak directly to an ESB service.
-
- src/../MyRequestAction.java
- Convert the message body into a webservice request parameter Map that only has one paramater called
- "sayHello.toWhom" for the web service call. The request parameter map is named
- "helloworld-request-parameters".
-
- org.jboss.soa.esb.actions.soap.SOAPClient
- This class is used to make the call to the webservice. It will take the
- parameters that MyRequestAction set in "paramsLocation", call the webservice, then place
- the response in "responseLocation". This is zero Java code ESB wiring in jboss-esb.xml.
-
- src/../MyResponseAction.java
- Retrieve the webservice response and display it on the console. The response location name
- is "helloworld-response".
-
- build.xml:
- Targets and structure description:
- * the classpath property pulls the jbossesb-properties.xml file and the juddi.properties file to the
- front of the list
- * the echoCP task is useful for making sure what you think is in your classpath is actually in your classpath
- Usage is: ant echoCP > myclasspath.txt
- This generates a file called myclasspath.txt which can be reviewed in a text editor
- * the run task calls the Launcher passing in 3 arguments the most important are the esb-config.xml and
- esb-config-gateway.xml files
- * the runtest task calls the org.jboss.soa.esb.samples.quickstart.helloworld.test.SendEsbMessage class and passes in an argument representing
- the string-based message to be pused into the queue the gateway is listening on.
\ No newline at end of file
+Overview:
+=========
+ This example demonstrates how to use Wise SOAPClient action to consume a 181 Web Service in an ESB action.
+ This ESB will make a webservice request that requires a single "toWhom" string parameter.
+ The webservice will return a greeting response. WebService require HTTP BASIC Authentication.
+ The ESB simply displays the request and response on the console.
+
+Running this quickstart:
+========================
+ Please refer to 'ant help-quickstarts' for prerequisites about the quickstarts and a
+ more detailed descripton of the different ways to run the quickstarts.
+
+To Run standalone mode:
+=======================
+ This quickstart will not currently run in standalone mode.
+
+To Run '.esb' archive mode:
+===========================
+ 1. Open wise-core.properties and modify the propertie 'wise.tmpDir' there to suit your environment.
+ 2. In a command terminal window in this folder ("Window1"), type 'ant deploy'.
+ 3. Open another command terminal window in this folder ("Window2"), type 'ant runtest'.
+ 4. Switch back to Application Server console to see the output from the ESB
+
+ 'runtest' target description:
+ In a separate command prompt window, run "ant runtest" to shoot a ESB message
+ into the listener which will then invoke the MyRequestAction, SOAPClient and MyResponse
+ and display it to the console.
+
+ You should output that looks like this, after running "ant runtest":
+ 13:20:27,431 INFO [STDOUT] &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
+ 13:20:27,432 INFO [STDOUT] Request map is: {toWhom=Jimbo}
+ 13:20:27,433 INFO [STDOUT] &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
+ 13:20:27,830 INFO [STDOUT] parsing WSDL...
+ 13:20:28,962 INFO [STDOUT] generating code...
+ 13:20:29,000 INFO [STDOUT] it/javalinux/wise/HelloWorld.java
+ 13:20:29,049 INFO [STDOUT] it/javalinux/wise/HelloWorldWSService.java
+ 13:20:29,053 INFO [STDOUT] it/javalinux/wise/ObjectFactory.java
+ 13:20:29,057 INFO [STDOUT] it/javalinux/wise/SayHello.java
+ 13:20:29,058 INFO [STDOUT] it/javalinux/wise/SayHelloResponse.java
+ 13:20:29,066 INFO [STDOUT] it/javalinux/wise/package-info.java
+ 13:20:30,010 INFO [STDOUT] &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
+ 13:20:30,010 INFO [STDOUT] Response Map is: {result=Hello World Greeting for 'Jimbo' on Tue Sep 09 13:20:29 CST 2008}
+ 13:20:30,010 INFO [STDOUT] &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
+
+ 5. When finished, undeploy the application by typing 'ant undeploy'.
+
+Project file descriptions:
+==========================
+
+ jboss-esb.xml:
+ The actions in jboss-esb.xml convert the ESB message into to a webservice parameter Map, make a call
+ to the HelloWorldWS webservice, then print the response on the console. Both juddi.properties
+ and jbossesb-properties.xml are used when the service first boots up for self-registration
+ based upon the service-category and service-name found in the esb-config.xml file.
+
+ jndi.properties:
+ Needed primarily for org.jboss.soa.esb.samples.quickstart.webservice_consumer_wise.SendESBMessage that is fired by ant runtest.
+
+ wise-core.properties
+ Needed to configure SOAPClient based on Wise project.
+
+ log4j.xml:
+ Needed to configure log4J used by both the quickstart and the ESB itself. A listener needs a place to log.
+
+ src/../SendEsbMessage.java:
+ Send a message directly the the ESB internal JMS listener. Demonstrates how one can bypass the
+ gateway and speak directly to an ESB service.
+
+ src/../SendJMSMessage.java:
+ Send a message to JMS gateway listener and speak to an ESB service.
+
+ src/../MyRequestAction.java
+ Convert the message body into a webservice request parameter Map that only has one paramater called
+ "toWhom" for the web service call.
+
+ src/../SOAPClient
+ This class is used to make the call to the webservice. It will take the
+ parameters map that MyRequestAction set in message body, call the webservice, then place
+ the response in message.
+
+ src/../MyResponseAction.java
+ Retrieve the webservice response and display it on the console.
+
+ build.xml:
+ Targets and structure description:
+ * the classpath property pulls the jbossesb-properties.xml file and the juddi.properties file to the
+ front of the list
+ * the echoCP task is useful for making sure what you think is in your classpath is actually in your classpath
+ Usage is: ant echoCP > myclasspath.txt
+ This generates a file called myclasspath.txt which can be reviewed in a text editor
+ * the runtest task calls the org.jboss.soa.esb.samples.quickstart.webservice_consumer_wise.SendEsbMessage class and passes in an argument representing
+ the string-based message to be pused into esb message aware listener queue.
+ * the sendjms task calls the org.jboss.soa.esb.samples.quickstart.webservice_consumer_wise.SendJMSMessage class and passes in an argument representing
+ the string-based message to be pused into the queue the gateway is listening on.
Modified: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise/src/org/jboss/soa/esb/samples/quickstart/webservice_consumer_wise/MyRequestAction.java
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise/src/org/jboss/soa/esb/samples/quickstart/webservice_consumer_wise/MyRequestAction.java 2009-01-21 14:47:17 UTC (rev 24849)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise/src/org/jboss/soa/esb/samples/quickstart/webservice_consumer_wise/MyRequestAction.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -51,10 +51,8 @@
HashMap requestMap = new HashMap();
// add paramaters to the web service request map
- requestMap.put("toWhom", msgBody);
+ requestMap.put("toWhom", msgBody);
- // The "paramsLocation" property was set in jboss-esb.xml to
- // "helloworld-request-parameters"
message.getBody().add(requestMap);
System.out.println("Request map is: " + requestMap.toString());
@@ -83,4 +81,4 @@
System.out.println("&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&\n");
}
-}
\ No newline at end of file
+}
Modified: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise/src/org/jboss/soa/esb/samples/quickstart/webservice_consumer_wise/MyResponseAction.java
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise/src/org/jboss/soa/esb/samples/quickstart/webservice_consumer_wise/MyResponseAction.java 2009-01-21 14:47:17 UTC (rev 24849)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise/src/org/jboss/soa/esb/samples/quickstart/webservice_consumer_wise/MyResponseAction.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -49,9 +49,7 @@
logHeader();
- // The "responseLocation" property was set in jboss-esb.xml to
- // "helloworld-response"
- Map responseMsg = (Map) message.getBody().get(Body.DEFAULT_LOCATION);
+ Map responseMsg = (Map) message.getBody().get();
System.out.println("Response Map is: " + responseMsg);
logFooter();
@@ -79,4 +77,4 @@
System.out.println("&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&\n");
}
-}
\ No newline at end of file
+}
Modified: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise/src/org/jboss/soa/esb/samples/quickstart/webservice_consumer_wise/test/SendJMSMessage.java
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise/src/org/jboss/soa/esb/samples/quickstart/webservice_consumer_wise/test/SendJMSMessage.java 2009-01-21 14:47:17 UTC (rev 24849)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise/src/org/jboss/soa/esb/samples/quickstart/webservice_consumer_wise/test/SendJMSMessage.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -52,7 +52,7 @@
Object tmp = iniCtx.lookup("ConnectionFactory");
QueueConnectionFactory qcf = (QueueConnectionFactory) tmp;
conn = qcf.createQueueConnection();
- que = (Queue) iniCtx.lookup("queue/quickstart_webservice_consumer1_Request_gw");
+ que = (Queue) iniCtx.lookup("queue/quickstart_webservice_consumer_wise_Request_gw");
session = conn.createQueueSession(false, QueueSession.AUTO_ACKNOWLEDGE);
conn.start();
System.out.println("Connection Started");
Copied: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise/war/resources/WEB-INF/jboss-web.xml (from rev 24846, labs/jbossesb/trunk/product/samples/quickstarts/webservice_consumer_wise/war/resources/WEB-INF/jboss-web.xml)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise/war/resources/WEB-INF/jboss-web.xml (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise/war/resources/WEB-INF/jboss-web.xml 2009-01-21 15:38:08 UTC (rev 24850)
@@ -0,0 +1,3 @@
+<jboss-web>
+ <security-domain>java:/jaas/JBossWS</security-domain>
+</jboss-web>
Modified: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise/war/resources/WEB-INF/web.xml
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise/war/resources/WEB-INF/web.xml 2009-01-21 14:47:17 UTC (rev 24849)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise/war/resources/WEB-INF/web.xml 2009-01-21 15:38:08 UTC (rev 24850)
@@ -4,7 +4,7 @@
<web-app xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd" version="2.4">
<servlet>
<servlet-name>HelloWorldWS</servlet-name>
- <servlet-class>org.jboss.soa.esb.samples.quickstart.webservice_consumer1.HelloWorldWS</servlet-class>
+ <servlet-class>org.jboss.soa.esb.samples.quickstart.webservice_consumer1.HelloWorldWS</servlet-class>
</servlet>
<servlet-mapping>
@@ -12,4 +12,26 @@
<url-pattern>/HelloWorldWS</url-pattern>
</servlet-mapping>
+ <security-constraint>
+ <web-resource-collection>
+ <web-resource-name>All resources</web-resource-name>
+ <url-pattern>/*</url-pattern>
+ </web-resource-collection>
+ <auth-constraint>
+ <role-name>friend</role-name>
+ </auth-constraint>
+ </security-constraint>
+
+ <security-role>
+ <role-name>friend</role-name>
+ </security-role>
+
+
+
+ <login-config>
+ <auth-method>BASIC</auth-method>
+ <realm-name>Test Realm</realm-name>
+ </login-config>
+
+
</web-app>
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise/wise-core.properties
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise/wise-core.properties 2009-01-21 14:47:17 UTC (rev 24849)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise/wise-core.properties 2009-01-21 15:38:08 UTC (rev 24850)
@@ -1,4 +0,0 @@
-wise.tmpDir=/home/oracle/wise
-wise.forceImportObject=true
-wise.keepGeneratedSources=true
-wise.wsImporter.verbose=true
Modified: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise2/build.xml
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise2/build.xml 2009-01-21 14:47:17 UTC (rev 24849)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise2/build.xml 2009-01-21 15:38:08 UTC (rev 24850)
@@ -5,7 +5,7 @@
${line.separator}
</description>
- <property name="additional.deploys" value="wise-core.properties,smooks-config-XMLGregorianCalendar.xml,smooks-response-config.xml" />
+ <property name="additional.deploys" value="smooks-config-XMLGregorianCalendar.xml,smooks-response-config.xml" />
<!-- Import the base Ant build script... -->
<import file="../conf/base-build.xml"/>
@@ -44,7 +44,7 @@
</war>
</target>
- <target name="deploy-war" depends="prepare-deployment">
+ <target name="deploy-war" depends="prepare-deployment, makewar">
<copy todir="${org.jboss.esb.server.deploy.dir}"
file="${build.dir}/${ant.project.name}.war"/>
</target>
@@ -55,7 +55,7 @@
</target>
<target name="sendjms" depends="compile">
- <echo>Send ESB message that triggers webservice call</echo>
+ <echo>Send JMS message that triggers webservice call</echo>
<java fork="yes" classname="org.jboss.soa.esb.samples.quickstart.webservice_consumer_wise2.test.SendJMSMessage" failonerror="true">
<arg value="Jimbo"/>
<classpath refid="exec-classpath"/>
Modified: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise2/jboss-esb.xml
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise2/jboss-esb.xml 2009-01-21 14:47:17 UTC (rev 24849)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise2/jboss-esb.xml 2009-01-21 15:38:08 UTC (rev 24850)
@@ -47,8 +47,9 @@
<property name="EndPointName" value="PingWSPort"/>
<property name="SmooksRequestMapper" value="smooks-config-XMLGregorianCalendar.xml"/>
<property name="SmooksResponseMapper" value="smooks-response-config.xml"/>
+ <!-- <property name="smooksResponseReport" value="/home/oracle/smooks-response.html"/>-->
<property name="LoggingMessages" value="false" />
- <property name="serviceName" value="PingWS"/>
+ <property name="serviceName" value="PingWSService"/>
<property name="userName" value=""/>
<property name="password" value=""/>
</action>
Modified: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise2/readme.txt
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise2/readme.txt 2009-01-21 14:47:17 UTC (rev 24849)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise2/readme.txt 2009-01-21 15:38:08 UTC (rev 24850)
@@ -1,92 +1,103 @@
-Overview:
-=========
- This example demonstrates how to consume a 181 Web Service in an ESB action.
- This ESB will make a webservice request that requires a single "toWhom" string parameter.
- The webservice will return a greeting response. The ESB simply dislays the response on the
- console.
-
-Running this quickstart:
-========================
- Please refer to 'ant help-quickstarts' for prerequisites about the quickstarts and a
- more detailed descripton of the different ways to run the quickstarts.
-
-To Run standalone mode:
-=======================
- This quickstart will not currently run in standalone mode.
-
-To Run '.esb' archive mode:
-===========================
- 1. In a command terminal window in this folder ("Window1"), type 'ant undeploy-jms-dests'.
- 1. In a command terminal window in this folder ("Window1"), type 'ant deploy'.
- 2. Open another command terminal window in this folder ("Window2"), type 'ant runtest'.
- 3. Switch back to Application Server console to see the output from the ESB
-
- 'runtest' target description:
- In a separate command prompt window, run "ant runtest" to shoot a JMS message
- into the listener which will then invoke the MyJMSListenerAction and display
- it to the console. You can modify the build.xml to change the phrase
- "Hello World" to something else and re-run "ant runtest".
-
- You should output that looks like this, after running "ant runtest":
- &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
- 12:35:47,975 INFO [STDOUT] Request map is: {sayHello.toWhom=Jimbo}
- 12:35:47,975 INFO [STDOUT] &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
- 12:35:47,990 WARN [HttpMethodBase] Going to buffer response body of large or unknown size. Using
- getResponseBodyAsStream instead is recommended.
- 12:35:47,991 INFO [STDOUT]
- &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
- 12:35:47,991 INFO [STDOUT] Response Map is:
- <env:Envelope xmlns:env='http://schemas.xmlsoap.org/soap/envelope/'>
- <env:Header></env:Header>
- <env:Body>
- <hel:sayHelloResponse xmlns:hel='http://webservice_consumer1/helloworld'>
- <return>Hello World Greeting for 'Jimbo' on Sat Jul 14 12:35:47 EDT 2007</return>
- </hel:sayHelloResponse></env:Body></env:Envelope>
- 12:35:47,991 INFO [STDOUT] &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
-
-Project file descriptions:
-==========================
-
- jboss-esb.xml:
- There is no JMS gateway in this quickstart. A java client talks directly to the ESB
- listener queue called "queue/quickstart_webservice_consumer1_esb". The actions in
- jboss-esb.xml convert the ESB message into to a webservice parameter Map, make a call
- to the HelloWorldWS webservice, then print the response on the console. Both juddi.properties
- and jbossesb-properties.xml are used when the service first boots up for self-registration
- based upon the service-category and service-name found in the esb-config.xml file.
-
- jndi.properties:
- Needed primarily for org.jboss.soa.esb.samples.quickstart.webservice_consumer1.test.SendESBMessage that is fired by ant runtest.
-
- log4j.xml:
- Needed to configure log4J used by both the quickstart and the ESB itself. A listener needs a place to log.
-
- src/../SendEsbMessage.java:
- Send a message directly the the ESB internal JMS listener. Demonstrates how one can bypass the
- gateway and speak directly to an ESB service.
-
- src/../MyRequestAction.java
- Convert the message body into a webservice request parameter Map that only has one paramater called
- "sayHello.toWhom" for the web service call. The request parameter map is named
- "helloworld-request-parameters".
-
- org.jboss.soa.esb.actions.soap.SOAPClient
- This class is used to make the call to the webservice. It will take the
- parameters that MyRequestAction set in "paramsLocation", call the webservice, then place
- the response in "responseLocation". This is zero Java code ESB wiring in jboss-esb.xml.
-
- src/../MyResponseAction.java
- Retrieve the webservice response and display it on the console. The response location name
- is "helloworld-response".
-
- build.xml:
- Targets and structure description:
- * the classpath property pulls the jbossesb-properties.xml file and the juddi.properties file to the
- front of the list
- * the echoCP task is useful for making sure what you think is in your classpath is actually in your classpath
- Usage is: ant echoCP > myclasspath.txt
- This generates a file called myclasspath.txt which can be reviewed in a text editor
- * the run task calls the Launcher passing in 3 arguments the most important are the esb-config.xml and
- esb-config-gateway.xml files
- * the runtest task calls the org.jboss.soa.esb.samples.quickstart.helloworld.test.SendEsbMessage class and passes in an argument representing
- the string-based message to be pused into the queue the gateway is listening on.
\ No newline at end of file
+Overview:
+=========
+ This example demonstrates how to use Wise SOAPClient and SmooksMapper to consume a jaxws Web Service in an ESB action.
+ In this quickstart, we use SmooksRequestMapper to transform the ExternalObject(see ExternalObject.java)
+ to JAXWS annotated web service request object (see ComplexObject.java under the wise.tmpDir configured in wise-core.properties)
+ and call a Web Service. We also configure a SmooksResponseMapper to transform the web service result to an ExternalObject.
+
+Running this quickstart:
+========================
+ Please refer to 'ant help-quickstarts' for prerequisites about the quickstarts and a
+ more detailed descripton of the different ways to run the quickstarts.
+
+To Run standalone mode:
+=======================
+ This quickstart will not currently run in standalone mode.
+
+To Run '.esb' archive mode:
+===========================
+ 1. Open wise-core.properties and modify the propertie 'wise.tmpDir' there to suit your environment.
+ 2. In a command terminal window in this folder ("Window1"), type 'ant deploy'.
+ 3. Open another command terminal window in this folder ("Window2"), type 'ant runtest'.
+ 4. Switch back to Application Server console to see the output from the ESB
+
+ 'runtest' target description:
+ In a separate command prompt window, run "ant runtest" to shoot a ESB message
+ into the listener which will then invoke the MyRequestAction, SOAPClient and MyResponse
+ and display it to the console.
+
+ 15:20:46,077 INFO [STDOUT] &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
+ 15:20:46,079 INFO [STDOUT] Request map is: {external=org.jboss.soa.esb.samples.quickstart.webservice_consumer_wise2.ExternalObject at 30a4a7
+ [internal=org.jboss.soa.esb.samples.quickstart.webservice_consumer_wise2.InternalObject at 189ff39[text=Jimbo,number=1],date=Wed Mar 07 04:27:00 GMT 2007]}
+ 15:20:46,079 INFO [STDOUT] &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
+ 15:20:46,099 INFO [STDOUT] parsing WSDL...
+ 15:20:46,136 INFO [STDOUT] generating code...
+ 15:20:46,138 INFO [STDOUT] it/javalinux/wise/ComplexObject.java
+ 15:20:46,157 INFO [STDOUT] it/javalinux/wise/ObjectFactory.java
+ 15:20:46,159 INFO [STDOUT] it/javalinux/wise/PingComplexObject.java
+ 15:20:46,160 INFO [STDOUT] it/javalinux/wise/PingComplexObjectResponse.java
+ 15:20:46,161 INFO [STDOUT] it/javalinux/wise/PingWS.java
+ 15:20:46,162 INFO [STDOUT] it/javalinux/wise/PingWSService.java
+ 15:20:46,164 INFO [STDOUT] it/javalinux/wise/package-info.java
+ 15:20:46,564 INFO [ClassUtil] Loaded 4 classes from 2 URLs through class list file META-INF/content-handlers.inf. Process took 2ms. Turn on debug logging for more info.
+ 15:20:46,982 INFO [ClassUtil] Loaded 4 classes from 2 URLs through class list file META-INF/content-handlers.inf. Process took 2ms. Turn on debug logging for more info.
+ 15:20:47,480 INFO [STDOUT] &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
+ 15:20:47,481 INFO [STDOUT] Response Map is: {InternalObject=org.jboss.soa.esb.samples.quickstart.webservice_consumer_wise2.InternalObject at 956740[text=Jimbo,number=1], ExternalObject=org.jboss.soa.esb.samples.quickstart.webservice_consumer_wise2.ExternalObject at 43f916[internal=org.jboss.soa.esb.samples.quickstart.webservice_consumer_wise2.InternalObject at 956740[text=Jimbo,number=1],date=Wed Mar 07 00:00:00 GMT 2007]}
+ 15:20:47,481 INFO [STDOUT] &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
+
+
+ 5. When finished, undeploy the application by typing 'ant undeploy'.
+
+Project file descriptions:
+==========================
+
+ jboss-esb.xml:
+ The actions in jboss-esb.xml convert the ESB message into to a webservice parameter Map, make a call
+ to the HelloWorldWS webservice, then print the response on the console. Both juddi.properties
+ and jbossesb-properties.xml are used when the service first boots up for self-registration
+ based upon the service-category and service-name found in the esb-config.xml file.
+
+ jndi.properties:
+ Needed primarily for org.jboss.soa.esb.samples.quickstart.webservice_consumer_wise.SendESBMessage that is fired by ant runtest.
+
+ wise-core.properties
+ Needed to configure SOAPClient based on Wise project.
+
+ smooks-config-XMLGregorianCalendar.xml
+ Smooks style configuration xml. Needed to configure the SmooksRequestMapper.
+
+ smooks-response-config
+ Smooks style configuration xml. Needed to configure the SmooksReMapper.
+
+ log4j.xml:
+ Needed to configure log4J used by both the quickstart and the ESB itself. A listener needs a place to log.
+
+ src/../SendEsbMessage.java:
+ Send a message directly the the ESB internal JMS listener. Demonstrates how one can bypass the
+ gateway and speak directly to an ESB service.
+
+ src/../SendJMSMessage.java:
+ Send a message to JMS gateway listener and speak to an ESB service.
+
+ src/../MyRequestAction.java
+ Convert the message body into a webservice request parameter Map.
+
+ src/../SOAPClient
+ This class is used to make the call to the webservice. It will take the
+ parameters map that MyRequestAction set in message body, call the webservice, then place
+ the response in message.
+
+ src/../MyResponseAction.java
+ Retrieve the webservice response and display it on the console.
+
+ build.xml:
+ Targets and structure description:
+ * the classpath property pulls the jbossesb-properties.xml file and the juddi.properties file to the
+ front of the list
+ * the echoCP task is useful for making sure what you think is in your classpath is actually in your classpath
+ Usage is: ant echoCP > myclasspath.txt
+ This generates a file called myclasspath.txt which can be reviewed in a text editor
+ * the runtest task calls the org.jboss.soa.esb.samples.quickstart.webservice_consumer_wise.SendEsbMessage class and passes in an argument representing
+ the string-based message to be pused into esb message aware listener queue.
+ * the sendjms task calls the org.jboss.soa.esb.samples.quickstart.webservice_consumer_wise.SendJMSMessage class and passes in an argument representing
+ the string-based message to be pused into the queue the gateway is listening on.
Modified: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise2/smooks-config-XMLGregorianCalendar.xml
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise2/smooks-config-XMLGregorianCalendar.xml 2009-01-21 14:47:17 UTC (rev 24849)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise2/smooks-config-XMLGregorianCalendar.xml 2009-01-21 15:38:08 UTC (rev 24850)
@@ -8,7 +8,7 @@
<resource-config selector="org.jboss.soa.esb.samples.quickstart.webservice__consumer__wise2.ExternalObject">
<resource>org.milyn.javabean.BeanPopulator</resource>
<param name="beanId">complexObject</param>
- <param name="beanClass">it.javalinux.wise.ComplexObject</param>
+ <param name="beanClass">wise2.pingws.ComplexObject</param>
<param name="bindings">
<binding property="integerField" type="Integer" selector="internal number" />
<binding property="stringField" selector="internal text" />
@@ -16,7 +16,7 @@
</param>
</resource-config>
<resource-config selector="decoder:XMLGregorianCalendar">
- <resource>it.javalinux.wise.smooks.decoders.XMLGregorianCalendarDecoder</resource>
+ <resource>org.jboss.wise.smooks.decoders.XMLGregorianCalendarDecoder</resource>
<param name="format">yyyy-MM-dd HH:mm:ss.S z</param>
</resource-config>
Modified: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise2/smooks-response-config.xml
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise2/smooks-response-config.xml 2009-01-21 14:47:17 UTC (rev 24849)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise2/smooks-response-config.xml 2009-01-21 15:38:08 UTC (rev 24850)
@@ -5,16 +5,17 @@
<param name="stream.filter.type">SAX</param>
</resource-config>
- <resource-config selector="it.javalinux.wise.ComplexObject">
+ <resource-config selector="wise2.pingws.ComplexObject">
<resource>org.milyn.javabean.BeanPopulator</resource>
<param name="beanId">ExternalObject</param>
<param name="beanClass">org.jboss.soa.esb.samples.quickstart.webservice_consumer_wise2.ExternalObject</param>
<param name="bindings">
+ <binding property="date" type="MessageDate">messageDate.year + "-" + messageDate.month + "-" + messageDate.day</binding>
<binding property="internal" selector="${InternalObject}" />
</param>
</resource-config>
- <resource-config selector="it.javalinux.wise.ComplexObject">
+ <resource-config selector="wise2.pingws.ComplexObject">
<resource>org.milyn.javabean.BeanPopulator</resource>
<param name="beanId">InternalObject</param>
<param name="beanClass">org.jboss.soa.esb.samples.quickstart.webservice_consumer_wise2.InternalObject</param>
@@ -24,5 +25,20 @@
</param>
</resource-config>
+ <resource-config selector="wise2.pingws.ComplexObject">
+ <resource>org.milyn.javabean.BeanPopulator</resource>
+ <param name="beanId">messageDate</param>
+ <param name="beanClass">java.util.HashMap</param>
+ <param name="bindings">
+ <binding property="day" selector="calendarField/day" default ="0"/>
+ <binding property="month" selector="calendarField/month" default ="0" />
+ <binding property="year" selector="calendarField/year" default ="0"/>
+ </param>
+ </resource-config>
+
+ <resource-config selector="decoder:MessageDate">
+ <resource>org.milyn.javabean.decoders.DateDecoder</resource>
+ <param name="format">yyyy-MM-dd</param>
+ </resource-config>
-</smooks-resource-list>
\ No newline at end of file
+</smooks-resource-list>
Modified: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise2/src/org/jboss/soa/esb/samples/quickstart/webservice_consumer_wise2/MyRequestAction.java
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise2/src/org/jboss/soa/esb/samples/quickstart/webservice_consumer_wise2/MyRequestAction.java 2009-01-21 14:47:17 UTC (rev 24849)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise2/src/org/jboss/soa/esb/samples/quickstart/webservice_consumer_wise2/MyRequestAction.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -51,10 +51,7 @@
logHeader();
Object msgBody = (Object) message.getBody().get();
HashMap requestMap = new HashMap();
- // add paramaters to the web service request map
requestMap.put("external", msgBody);
- // The "paramsLocation" property was set in jboss-esb.xml to
- // "helloworld-request-parameters"
message.getBody().add(requestMap);
System.out.println("Request map is: " + requestMap.toString());
@@ -83,4 +80,4 @@
System.out.println("&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&\n");
}
-}
\ No newline at end of file
+}
Modified: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise2/src/org/jboss/soa/esb/samples/quickstart/webservice_consumer_wise2/test/SendJMSMessage.java
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise2/src/org/jboss/soa/esb/samples/quickstart/webservice_consumer_wise2/test/SendJMSMessage.java 2009-01-21 14:47:17 UTC (rev 24849)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise2/src/org/jboss/soa/esb/samples/quickstart/webservice_consumer_wise2/test/SendJMSMessage.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -22,6 +22,10 @@
import java.util.Properties;
+import java.text.SimpleDateFormat;
+import java.text.ParseException;
+import java.util.Date;
+
import javax.jms.JMSException;
import javax.jms.ObjectMessage;
import javax.jms.Queue;
@@ -33,7 +37,11 @@
import javax.naming.InitialContext;
import javax.naming.NamingException;
+import org.jboss.soa.esb.samples.quickstart.webservice_consumer_wise2.ExternalObject;
+import org.jboss.soa.esb.samples.quickstart.webservice_consumer_wise2.InternalObject;
+
public class SendJMSMessage {
+ public static final String DEFAULT_DATE_FORMAT = "yyyy-MM-dd'T'HH:mm:ss";
QueueConnection conn;
QueueSession session;
Queue que;
@@ -52,7 +60,7 @@
Object tmp = iniCtx.lookup("ConnectionFactory");
QueueConnectionFactory qcf = (QueueConnectionFactory) tmp;
conn = qcf.createQueueConnection();
- que = (Queue) iniCtx.lookup("queue/quickstart_webservice_consumer1_Request_gw");
+ que = (Queue) iniCtx.lookup("queue/quickstart_webservice_consumer_wise2_Request_gw");
session = conn.createQueueSession(false, QueueSession.AUTO_ACKNOWLEDGE);
conn.start();
System.out.println("Connection Started");
@@ -65,10 +73,18 @@
conn.close();
}
- public void sendAMessage(String msg) throws JMSException {
+ public void sendAMessage(String msg) throws JMSException, ParseException {
- QueueSender send = session.createSender(que);
- ObjectMessage tm = session.createObjectMessage(msg);
+ QueueSender send = session.createSender(que);
+ ExternalObject external = new ExternalObject();
+ InternalObject internal = new InternalObject();
+ internal.setNumber(new Integer(1));
+ internal.setText(msg);
+ external.setInternal(internal);
+ String dateString = "2007-03-07T04:27:00";
+ Date date = (new SimpleDateFormat(DEFAULT_DATE_FORMAT)).parse(dateString);
+ external.setDate(date);
+ ObjectMessage tm = session.createObjectMessage(external);
send.send(tm);
send.close();
}
Modified: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise2/war/src/org/jboss/soa/esb/samples/quickstart/webservice_consumer_wise2/PingWS.java
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise2/war/src/org/jboss/soa/esb/samples/quickstart/webservice_consumer_wise2/PingWS.java 2009-01-21 14:47:17 UTC (rev 24849)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise2/war/src/org/jboss/soa/esb/samples/quickstart/webservice_consumer_wise2/PingWS.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -28,13 +28,14 @@
import org.jboss.logging.Logger;
- at WebService(name = "PingWS", targetNamespace = "http://webservice_consumer_wise2/pingws")
+ at WebService(name = "PingWS", targetNamespace = "http://wise2/pingws")
public class PingWS {
@WebMethod(operationName = "pingComplexObject", action = "urn:pingComplexObject")
@WebResult(name = "ComplexObject")
public ComplexObject pingComplexObject(@WebParam(name = "complexObject")
ComplexObject arg0) {
String greeting = "Ping with " + arg0.toString();
+ System.out.println(greeting);
return arg0;
}
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise2/wise-core.properties
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise2/wise-core.properties 2009-01-21 14:47:17 UTC (rev 24849)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise2/wise-core.properties 2009-01-21 15:38:08 UTC (rev 24850)
@@ -1,4 +0,0 @@
-wise.tmpDir=/home/oracle/wise
-wise.forceImportObject=true
-wise.keepGeneratedSources=true
-wise.wsImporter.verbose=true
Modified: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise3/build.xml
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise3/build.xml 2009-01-21 14:47:17 UTC (rev 24849)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise3/build.xml 2009-01-21 15:38:08 UTC (rev 24850)
@@ -5,7 +5,7 @@
${line.separator}
</description>
- <property name="additional.deploys" value="wise-core.properties,smooks-handler.xml" />
+ <property name="additional.deploys" value="smooks-handler.xml" />
<!-- Import the base Ant build script... -->
<import file="../conf/base-build.xml"/>
@@ -44,7 +44,7 @@
</war>
</target>
- <target name="deploy-war" depends="prepare-deployment">
+ <target name="deploy-war" depends="prepare-deployment, makewar">
<copy todir="${org.jboss.esb.server.deploy.dir}"
file="${build.dir}/${ant.project.name}.war"/>
</target>
@@ -55,7 +55,7 @@
</target>
<target name="sendjms" depends="compile">
- <echo>Send ESB message that triggers webservice call</echo>
+ <echo>Send JMS message that triggers webservice call</echo>
<java fork="yes" classname="org.jboss.soa.esb.samples.quickstart.webservice_consumer_wise3.test.SendJMSMessage" failonerror="true">
<arg value="Jimbo"/>
<classpath refid="exec-classpath"/>
Modified: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise3/jboss-esb.xml
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise3/jboss-esb.xml 2009-01-21 14:47:17 UTC (rev 24849)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise3/jboss-esb.xml 2009-01-21 15:38:08 UTC (rev 24850)
@@ -48,7 +48,7 @@
<property name="LoggingMessages" value="true" />
<property name="smooks-handler-config" value="smooks-handler.xml"></property>
- <property name="serviceName" value="HelloWorldWS"/>
+ <property name="serviceName" value="HelloWorldWSService"/>
<property name="userName" value=""/>
<property name="password" value=""/>
Modified: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise3/readme.txt
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise3/readme.txt 2009-01-21 14:47:17 UTC (rev 24849)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise3/readme.txt 2009-01-21 15:38:08 UTC (rev 24850)
@@ -1,92 +1,112 @@
-Overview:
-=========
- This example demonstrates how to consume a 181 Web Service in an ESB action.
- This ESB will make a webservice request that requires a single "toWhom" string parameter.
- The webservice will return a greeting response. The ESB simply dislays the response on the
- console.
-
-Running this quickstart:
-========================
- Please refer to 'ant help-quickstarts' for prerequisites about the quickstarts and a
- more detailed descripton of the different ways to run the quickstarts.
-
-To Run standalone mode:
-=======================
- This quickstart will not currently run in standalone mode.
-
-To Run '.esb' archive mode:
-===========================
- 1. In a command terminal window in this folder ("Window1"), type 'ant undeploy-jms-dests'.
- 1. In a command terminal window in this folder ("Window1"), type 'ant deploy'.
- 2. Open another command terminal window in this folder ("Window2"), type 'ant runtest'.
- 3. Switch back to Application Server console to see the output from the ESB
-
- 'runtest' target description:
- In a separate command prompt window, run "ant runtest" to shoot a JMS message
- into the listener which will then invoke the MyJMSListenerAction and display
- it to the console. You can modify the build.xml to change the phrase
- "Hello World" to something else and re-run "ant runtest".
-
- You should output that looks like this, after running "ant runtest":
- &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
- 12:35:47,975 INFO [STDOUT] Request map is: {sayHello.toWhom=Jimbo}
- 12:35:47,975 INFO [STDOUT] &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
- 12:35:47,990 WARN [HttpMethodBase] Going to buffer response body of large or unknown size. Using
- getResponseBodyAsStream instead is recommended.
- 12:35:47,991 INFO [STDOUT]
- &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
- 12:35:47,991 INFO [STDOUT] Response Map is:
- <env:Envelope xmlns:env='http://schemas.xmlsoap.org/soap/envelope/'>
- <env:Header></env:Header>
- <env:Body>
- <hel:sayHelloResponse xmlns:hel='http://webservice_consumer1/helloworld'>
- <return>Hello World Greeting for 'Jimbo' on Sat Jul 14 12:35:47 EDT 2007</return>
- </hel:sayHelloResponse></env:Body></env:Envelope>
- 12:35:47,991 INFO [STDOUT] &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
-
-Project file descriptions:
-==========================
-
- jboss-esb.xml:
- There is no JMS gateway in this quickstart. A java client talks directly to the ESB
- listener queue called "queue/quickstart_webservice_consumer1_esb". The actions in
- jboss-esb.xml convert the ESB message into to a webservice parameter Map, make a call
- to the HelloWorldWS webservice, then print the response on the console. Both juddi.properties
- and jbossesb-properties.xml are used when the service first boots up for self-registration
- based upon the service-category and service-name found in the esb-config.xml file.
-
- jndi.properties:
- Needed primarily for org.jboss.soa.esb.samples.quickstart.webservice_consumer1.test.SendESBMessage that is fired by ant runtest.
-
- log4j.xml:
- Needed to configure log4J used by both the quickstart and the ESB itself. A listener needs a place to log.
-
- src/../SendEsbMessage.java:
- Send a message directly the the ESB internal JMS listener. Demonstrates how one can bypass the
- gateway and speak directly to an ESB service.
-
- src/../MyRequestAction.java
- Convert the message body into a webservice request parameter Map that only has one paramater called
- "sayHello.toWhom" for the web service call. The request parameter map is named
- "helloworld-request-parameters".
-
- org.jboss.soa.esb.actions.soap.SOAPClient
- This class is used to make the call to the webservice. It will take the
- parameters that MyRequestAction set in "paramsLocation", call the webservice, then place
- the response in "responseLocation". This is zero Java code ESB wiring in jboss-esb.xml.
-
- src/../MyResponseAction.java
- Retrieve the webservice response and display it on the console. The response location name
- is "helloworld-response".
-
- build.xml:
- Targets and structure description:
- * the classpath property pulls the jbossesb-properties.xml file and the juddi.properties file to the
- front of the list
- * the echoCP task is useful for making sure what you think is in your classpath is actually in your classpath
- Usage is: ant echoCP > myclasspath.txt
- This generates a file called myclasspath.txt which can be reviewed in a text editor
- * the run task calls the Launcher passing in 3 arguments the most important are the esb-config.xml and
- esb-config-gateway.xml files
- * the runtest task calls the org.jboss.soa.esb.samples.quickstart.helloworld.test.SendEsbMessage class and passes in an argument representing
- the string-based message to be pused into the queue the gateway is listening on.
\ No newline at end of file
+Overview:
+=========
+ This is another example of how to use SmookHandler in Wise SOAPClient to do soap message transformation.
+ The tranformation is done by confguring 'smooks-handler-config' for
+SOAPClient. This sample simply adds the soap header to the soap message.
+
+Running this quickstart:
+========================
+ Please refer to 'ant help-quickstarts' for prerequisites about the quickstarts and a
+ more detailed descripton of the different ways to run the quickstarts.
+
+To Run standalone mode:
+=======================
+ This quickstart will not currently run in standalone mode.
+
+To Run '.esb' archive mode:
+===========================
+ 1. Open wise-core.properties and modify the propertie 'wise.tmpDir' there to suit your environment.
+ 2. In a command terminal window in this folder ("Window1"), type 'ant deploy'.
+ 3. Open another command terminal window in this folder ("Window2"), type 'ant runtest'.
+ 4. Switch back to Application Server console to see the output from the ESB
+
+ 'runtest' target description:
+ In a separate command prompt window, run "ant runtest" to shoot a ESB message
+ into the listener which will then invoke the MyRequestAction, SOAPClient and MyResponse
+ and display it to the console.
+
+ 17:06:05,571 INFO [STDOUT] &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
+ 17:06:05,571 INFO [STDOUT] Request map is: {toWhom=Jimbo}
+ 17:06:05,571 INFO [STDOUT] &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
+ 17:06:05,576 INFO [STDOUT] parsing WSDL...
+ 17:06:05,603 INFO [STDOUT] generating code...
+ 17:06:05,605 INFO [STDOUT] it/javalinux/wise/HelloWorld.java
+ 17:06:05,836 INFO [STDOUT] it/javalinux/wise/HelloWorldWSService.java
+ 17:06:05,839 INFO [STDOUT] it/javalinux/wise/ObjectFactory.java
+ 17:06:05,844 INFO [STDOUT] it/javalinux/wise/SayHello.java
+ 17:06:05,846 INFO [STDOUT] it/javalinux/wise/SayHelloResponse.java
+ 17:06:05,849 INFO [STDOUT] it/javalinux/wise/package-info.java
+ 17:06:06,216 INFO [SOAPClient] adding smooks handler:smooks-handler.xml
+ 17:06:06,216 INFO [SOAPClient] adding logging handler
+ 17:06:06,225 INFO [STDOUT]
+ Outbound message:
+ 17:06:06,230 INFO [STDOUT] <env:Envelope xmlns:env='http://schemas.xmlsoap.org/soap/envelope/'><env:Header><sign:sign xmlns:sign='uri://
+ org.example.webservices.signature.Sign'/></env:Header><env:Body><ns1:sayHello xmlns:ns1='http://webservice_consumer_wise3/helloworld'><toWhom>Jimbo
+ 17:06:06,230 INFO [STDOUT] </toWhom>
+ 17:06:06,230 INFO [STDOUT] </ns1:sayHello>
+ 17:06:06,230 INFO [STDOUT] </env:Body></env:Envelope>
+ 17:06:06,246 INFO [STDOUT]
+ Inbound message:
+ 17:06:06,246 INFO [STDOUT] <env:Envelope xmlns:env='http://schemas.xmlsoap.org/soap/envelope/'><env:Header></env:Header><env:Body><ns2:sayHelloResponse
+ xmlns:ns2='http://webservice_consumer_wise3/helloworld'><return>Hello World Greeting for 'Jimbo' on Tue Sep 09 17:06:06 CST 2008
+ 17:06:06,246 INFO [STDOUT] </return>
+ 17:06:06,246 INFO [STDOUT] </ns2:sayHelloResponse>
+ 17:06:06,246 INFO [STDOUT] </env:Body></env:Envelope>
+ 17:06:06,255 INFO [STDOUT] &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
+ 17:06:06,255 INFO [STDOUT] Response Map is: {result=Hello World Greeting for 'Jimbo' on Tue Sep 09 17:06:06 CST 2008}
+ 17:06:06,255 INFO [STDOUT] &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
+
+
+
+ 5. When finished, undeploy the application by typing 'ant undeploy'.
+
+Project file descriptions:
+==========================
+
+ jboss-esb.xml:
+ The actions in jboss-esb.xml convert the ESB message into to a webservice parameter Map, make a call
+ to the HelloWorldWS webservice, then print the response on the console. Both juddi.properties
+ and jbossesb-properties.xml are used when the service first boots up for self-registration
+ based upon the service-category and service-name found in the esb-config.xml file.
+
+ jndi.properties:
+ Needed primarily for org.jboss.soa.esb.samples.quickstart.webservice_consumer_wise.SendESBMessage that is fired by ant runtest.
+
+ wise-core.properties
+ Needed to configure SOAPClient based on Wise project.
+
+ smooks-handler.xml
+ Smooks style configuration xml. Needed to configure the SmooksHander.
+
+ log4j.xml:
+ Needed to configure log4J used by both the quickstart and the ESB itself. A listener needs a place to log.
+
+ src/../SendEsbMessage.java:
+ Send a message directly the the ESB internal JMS listener. Demonstrates how one can bypass the
+ gateway and speak directly to an ESB service.
+
+ src/../SendJMSMessage.java:
+ Send a message to JMS gateway listener and speak to an ESB service.
+
+ src/../MyRequestAction.java
+ Convert the message body into a webservice request parameter Map.
+
+ src/../SOAPClient
+ This class is used to make the call to the webservice. It will take the
+ parameters map that MyRequestAction set in message body, call the webservice, then place
+ the response in message.
+
+ src/../MyResponseAction.java
+ Retrieve the webservice response and display it on the console.
+
+ build.xml:
+ Targets and structure description:
+ * the classpath property pulls the jbossesb-properties.xml file and the juddi.properties file to the
+ front of the list
+ * the echoCP task is useful for making sure what you think is in your classpath is actually in your classpath
+ Usage is: ant echoCP > myclasspath.txt
+ This generates a file called myclasspath.txt which can be reviewed in a text editor
+ * the runtest task calls the org.jboss.soa.esb.samples.quickstart.webservice_consumer_wise.SendEsbMessage class and passes in an argument representing
+ the string-based message to be pused into esb message aware listener queue.
+ * the sendjms task calls the org.jboss.soa.esb.samples.quickstart.webservice_consumer_wise.SendJMSMessage class and passes in an argument representing
+ the string-based message to be pused into the queue the gateway is listening on.
Modified: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise3/src/org/jboss/soa/esb/samples/quickstart/webservice_consumer_wise3/test/SendJMSMessage.java
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise3/src/org/jboss/soa/esb/samples/quickstart/webservice_consumer_wise3/test/SendJMSMessage.java 2009-01-21 14:47:17 UTC (rev 24849)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise3/src/org/jboss/soa/esb/samples/quickstart/webservice_consumer_wise3/test/SendJMSMessage.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -52,7 +52,7 @@
Object tmp = iniCtx.lookup("ConnectionFactory");
QueueConnectionFactory qcf = (QueueConnectionFactory) tmp;
conn = qcf.createQueueConnection();
- que = (Queue) iniCtx.lookup("queue/quickstart_webservice_consumer1_Request_gw");
+ que = (Queue) iniCtx.lookup("queue/quickstart_webservice_consumer_wise3_Request_gw");
session = conn.createQueueSession(false, QueueSession.AUTO_ACKNOWLEDGE);
conn.start();
System.out.println("Connection Started");
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise3/wise-core.properties
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise3/wise-core.properties 2009-01-21 14:47:17 UTC (rev 24849)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise3/wise-core.properties 2009-01-21 15:38:08 UTC (rev 24850)
@@ -1,4 +0,0 @@
-wise.tmpDir=/home/oracle/wise
-wise.forceImportObject=true
-wise.keepGeneratedSources=true
-wise.wsImporter.verbose=true
Modified: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise4/build.xml
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise4/build.xml 2009-01-21 14:47:17 UTC (rev 24849)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise4/build.xml 2009-01-21 15:38:08 UTC (rev 24850)
@@ -5,7 +5,7 @@
${line.separator}
</description>
- <property name="additional.deploys" value="wise-core.properties,smooks-handler.xml" />
+ <property name="additional.deploys" value="smooks-handler.xml" />
<!-- Import the base Ant build script... -->
<import file="../conf/base-build.xml"/>
@@ -44,7 +44,7 @@
</war>
</target>
- <target name="deploy-war" depends="prepare-deployment">
+ <target name="deploy-war" depends="prepare-deployment, makewar">
<copy todir="${org.jboss.esb.server.deploy.dir}"
file="${build.dir}/${ant.project.name}.war"/>
</target>
@@ -55,7 +55,7 @@
</target>
<target name="sendjms" depends="compile">
- <echo>Send ESB message that triggers webservice call</echo>
+ <echo>Send JMS message that triggers webservice call</echo>
<java fork="yes" classname="org.jboss.soa.esb.samples.quickstart.webservice_consumer_wise4.test.SendJMSMessage" failonerror="true">
<arg value="Jimbo"/>
<classpath refid="exec-classpath"/>
Modified: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise4/jboss-esb.xml
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise4/jboss-esb.xml 2009-01-21 14:47:17 UTC (rev 24849)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise4/jboss-esb.xml 2009-01-21 15:38:08 UTC (rev 24850)
@@ -48,7 +48,7 @@
<property name="LoggingMessages" value="true" />
<property name="smooks-handler-config" value="smooks-handler.xml"></property>
<property name="custom-handlers" value="org.jboss.soa.esb.samples.quickstart.webservice_consumer_wise4.handler.MyCustomLoggingHandler;org.jboss.soa.esb.samples.quickstart.webservice_consumer_wise4.handler.MyCustomLoggingHandler2" />
- <property name="serviceName" value="HelloWorldWS"/>
+ <property name="serviceName" value="HelloWorldWSService"/>
<property name="userName" value=""/>
<property name="password" value=""/>
Modified: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise4/readme.txt
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise4/readme.txt 2009-01-21 14:47:17 UTC (rev 24849)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise4/readme.txt 2009-01-21 15:38:08 UTC (rev 24850)
@@ -1,92 +1,78 @@
-Overview:
-=========
- This example demonstrates how to consume a 181 Web Service in an ESB action.
- This ESB will make a webservice request that requires a single "toWhom" string parameter.
- The webservice will return a greeting response. The ESB simply dislays the response on the
- console.
-
-Running this quickstart:
-========================
- Please refer to 'ant help-quickstarts' for prerequisites about the quickstarts and a
- more detailed descripton of the different ways to run the quickstarts.
-
-To Run standalone mode:
-=======================
- This quickstart will not currently run in standalone mode.
-
-To Run '.esb' archive mode:
-===========================
- 1. In a command terminal window in this folder ("Window1"), type 'ant undeploy-jms-dests'.
- 1. In a command terminal window in this folder ("Window1"), type 'ant deploy'.
- 2. Open another command terminal window in this folder ("Window2"), type 'ant runtest'.
- 3. Switch back to Application Server console to see the output from the ESB
-
- 'runtest' target description:
- In a separate command prompt window, run "ant runtest" to shoot a JMS message
- into the listener which will then invoke the MyJMSListenerAction and display
- it to the console. You can modify the build.xml to change the phrase
- "Hello World" to something else and re-run "ant runtest".
-
- You should output that looks like this, after running "ant runtest":
- &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
- 12:35:47,975 INFO [STDOUT] Request map is: {sayHello.toWhom=Jimbo}
- 12:35:47,975 INFO [STDOUT] &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
- 12:35:47,990 WARN [HttpMethodBase] Going to buffer response body of large or unknown size. Using
- getResponseBodyAsStream instead is recommended.
- 12:35:47,991 INFO [STDOUT]
- &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
- 12:35:47,991 INFO [STDOUT] Response Map is:
- <env:Envelope xmlns:env='http://schemas.xmlsoap.org/soap/envelope/'>
- <env:Header></env:Header>
- <env:Body>
- <hel:sayHelloResponse xmlns:hel='http://webservice_consumer1/helloworld'>
- <return>Hello World Greeting for 'Jimbo' on Sat Jul 14 12:35:47 EDT 2007</return>
- </hel:sayHelloResponse></env:Body></env:Envelope>
- 12:35:47,991 INFO [STDOUT] &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
-
-Project file descriptions:
-==========================
-
- jboss-esb.xml:
- There is no JMS gateway in this quickstart. A java client talks directly to the ESB
- listener queue called "queue/quickstart_webservice_consumer1_esb". The actions in
- jboss-esb.xml convert the ESB message into to a webservice parameter Map, make a call
- to the HelloWorldWS webservice, then print the response on the console. Both juddi.properties
- and jbossesb-properties.xml are used when the service first boots up for self-registration
- based upon the service-category and service-name found in the esb-config.xml file.
-
- jndi.properties:
- Needed primarily for org.jboss.soa.esb.samples.quickstart.webservice_consumer1.test.SendESBMessage that is fired by ant runtest.
-
- log4j.xml:
- Needed to configure log4J used by both the quickstart and the ESB itself. A listener needs a place to log.
-
- src/../SendEsbMessage.java:
- Send a message directly the the ESB internal JMS listener. Demonstrates how one can bypass the
- gateway and speak directly to an ESB service.
-
- src/../MyRequestAction.java
- Convert the message body into a webservice request parameter Map that only has one paramater called
- "sayHello.toWhom" for the web service call. The request parameter map is named
- "helloworld-request-parameters".
-
- org.jboss.soa.esb.actions.soap.SOAPClient
- This class is used to make the call to the webservice. It will take the
- parameters that MyRequestAction set in "paramsLocation", call the webservice, then place
- the response in "responseLocation". This is zero Java code ESB wiring in jboss-esb.xml.
-
- src/../MyResponseAction.java
- Retrieve the webservice response and display it on the console. The response location name
- is "helloworld-response".
-
- build.xml:
- Targets and structure description:
- * the classpath property pulls the jbossesb-properties.xml file and the juddi.properties file to the
- front of the list
- * the echoCP task is useful for making sure what you think is in your classpath is actually in your classpath
- Usage is: ant echoCP > myclasspath.txt
- This generates a file called myclasspath.txt which can be reviewed in a text editor
- * the run task calls the Launcher passing in 3 arguments the most important are the esb-config.xml and
- esb-config-gateway.xml files
- * the runtest task calls the org.jboss.soa.esb.samples.quickstart.helloworld.test.SendEsbMessage class and passes in an argument representing
- the string-based message to be pused into the queue the gateway is listening on.
\ No newline at end of file
+Overview:
+=========
+ This quickstart demonstrates how to use SmookHandler and JAX-WS hander in Wise SOAPClient to transform and manipulate
+ soap message.
+
+Running this quickstart:
+========================
+ Please refer to 'ant help-quickstarts' for prerequisites about the quickstarts and a
+ more detailed descripton of the different ways to run the quickstarts.
+
+To Run standalone mode:
+=======================
+ This quickstart will not currently run in standalone mode.
+
+To Run '.esb' archive mode:
+===========================
+ 1. Open wise-core.properties and modify the propertie 'wise.tmpDir' there to suit your environment.
+ 2. In a command terminal window in this folder ("Window1"), type 'ant deploy'.
+ 3. Open another command terminal window in this folder ("Window2"), type 'ant runtest'.
+ 4. Switch back to Application Server console to see the output from the ESB
+ 5. When finished, undeploy the application by typing 'ant undeploy'.
+
+Project file descriptions:
+==========================
+
+ jboss-esb.xml:
+ The actions in jboss-esb.xml convert the ESB message into to a webservice parameter Map, make a call
+ to the HelloWorldWS webservice, then print the response on the console. Both juddi.properties
+ and jbossesb-properties.xml are used when the service first boots up for self-registration
+ based upon the service-category and service-name found in the esb-config.xml file.
+
+ jndi.properties:
+ Needed primarily for org.jboss.soa.esb.samples.quickstart.webservice_consumer_wise.SendESBMessage that is fired by ant runtest.
+
+ wise-core.properties
+ Needed to configure SOAPClient based on Wise project.
+
+ smooks-handler.xml
+ Smooks style configuration xml. Needed to configure the SmooksHander.
+
+ log4j.xml:
+ Needed to configure log4J used by both the quickstart and the ESB itself. A listener needs a place to log.
+
+ src/../SendEsbMessage.java:
+ Send a message directly the the ESB internal JMS listener. Demonstrates how one can bypass the
+ gateway and speak directly to an ESB service.
+
+ src/../SendJMSMessage.java:
+ Send a message to JMS gateway listener and speak to an ESB service.
+
+ src/../MyRequestAction.java
+ Convert the message body into a webservice request parameter Map.
+
+ src/../SOAPClient
+ This class is used to make the call to the webservice. It will take the
+ parameters map that MyRequestAction set in message body, call the webservice, then place
+ the response in message.
+
+ src/../MyResponseAction.java
+ Retrieve the webservice response and display it on the console.
+
+ src/../MyCustomLoggingHandler.java
+ JAX-WS hanlder file. It is used to display the soap message to the console.
+
+ src/../MyCustomLoggingHandler2.java
+ Another JAX-WS handler file.
+
+ build.xml:
+ Targets and structure description:
+ * the classpath property pulls the jbossesb-properties.xml file and the juddi.properties file to the
+ front of the list
+ * the echoCP task is useful for making sure what you think is in your classpath is actually in your classpath
+ Usage is: ant echoCP > myclasspath.txt
+ This generates a file called myclasspath.txt which can be reviewed in a text editor
+ * the runtest task calls the org.jboss.soa.esb.samples.quickstart.webservice_consumer_wise.SendEsbMessage class and passes in an argument representing
+ the string-based message to be pused into esb message aware listener queue.
+ * the sendjms task calls the org.jboss.soa.esb.samples.quickstart.webservice_consumer_wise.SendJMSMessage class and passes in an argument representing
+ the string-based message to be pused into the queue the gateway is listening on.
Modified: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise4/src/org/jboss/soa/esb/samples/quickstart/webservice_consumer_wise4/test/SendJMSMessage.java
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise4/src/org/jboss/soa/esb/samples/quickstart/webservice_consumer_wise4/test/SendJMSMessage.java 2009-01-21 14:47:17 UTC (rev 24849)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise4/src/org/jboss/soa/esb/samples/quickstart/webservice_consumer_wise4/test/SendJMSMessage.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -52,7 +52,7 @@
Object tmp = iniCtx.lookup("ConnectionFactory");
QueueConnectionFactory qcf = (QueueConnectionFactory) tmp;
conn = qcf.createQueueConnection();
- que = (Queue) iniCtx.lookup("queue/quickstart_webservice_consumer1_Request_gw");
+ que = (Queue) iniCtx.lookup("queue/quickstart_webservice_consumer_wise4_Request_gw");
session = conn.createQueueSession(false, QueueSession.AUTO_ACKNOWLEDGE);
conn.start();
System.out.println("Connection Started");
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise4/wise-core.properties
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise4/wise-core.properties 2009-01-21 14:47:17 UTC (rev 24849)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise4/wise-core.properties 2009-01-21 15:38:08 UTC (rev 24850)
@@ -1,4 +0,0 @@
-wise.tmpDir=/home/oracle/wise
-wise.forceImportObject=true
-wise.keepGeneratedSources=true
-wise.wsImporter.verbose=true
Copied: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa (from rev 24846, labs/jbossesb/trunk/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa)
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/.ant-targets-build.xml
===================================================================
--- labs/jbossesb/trunk/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/.ant-targets-build.xml 2009-01-21 09:35:03 UTC (rev 24846)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/.ant-targets-build.xml 2009-01-21 15:38:08 UTC (rev 24850)
@@ -1,10 +0,0 @@
-Quickstart_webservice_consumer_wise
-clean
-deploy
-deploy-jms-dests
-help
-help-quickstarts
-makewar
-run
-undeploy
-undeploy-jms-dests
Copied: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/.ant-targets-build.xml (from rev 24846, labs/jbossesb/trunk/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/.ant-targets-build.xml)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/.ant-targets-build.xml (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/.ant-targets-build.xml 2009-01-21 15:38:08 UTC (rev 24850)
@@ -0,0 +1,10 @@
+Quickstart_webservice_consumer_wise
+clean
+deploy
+deploy-jms-dests
+help
+help-quickstarts
+makewar
+run
+undeploy
+undeploy-jms-dests
Copied: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/META-INF (from rev 24846, labs/jbossesb/trunk/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/META-INF)
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/META-INF/jboss-wsse-client.xml
===================================================================
--- labs/jbossesb/trunk/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/META-INF/jboss-wsse-client.xml 2009-01-21 09:35:03 UTC (rev 24846)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/META-INF/jboss-wsse-client.xml 2009-01-21 15:38:08 UTC (rev 24850)
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<jboss-ws-security xmlns="http://www.jboss.com/ws-security/config" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.jboss.com/ws-security/config http://www.jboss.com/ws-security/schema/jboss-ws-security_1_0.xsd">
- <key-store-file>META-INF/wsse.keystore</key-store-file>
- <key-store-type>jks</key-store-type>
- <key-store-password>jbossws</key-store-password>
- <trust-store-file>META-INF/wsse.truststore</trust-store-file>
- <trust-store-type>jks</trust-store-type>
- <trust-store-password>jbossws</trust-store-password>
-
- <config>
- <sign type="x509v3" alias="wsse"/>
- <requires>
- <signature/>
- </requires>
- </config>
-</jboss-ws-security>
\ No newline at end of file
Copied: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/META-INF/jboss-wsse-client.xml (from rev 24846, labs/jbossesb/trunk/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/META-INF/jboss-wsse-client.xml)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/META-INF/jboss-wsse-client.xml (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/META-INF/jboss-wsse-client.xml 2009-01-21 15:38:08 UTC (rev 24850)
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<jboss-ws-security xmlns="http://www.jboss.com/ws-security/config" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://www.jboss.com/ws-security/config http://www.jboss.com/ws-security/schema/jboss-ws-security_1_0.xsd">
+ <key-store-file>META-INF/wsse.keystore</key-store-file>
+ <key-store-type>jks</key-store-type>
+ <key-store-password>jbossws</key-store-password>
+ <trust-store-file>META-INF/wsse.truststore</trust-store-file>
+ <trust-store-type>jks</trust-store-type>
+ <trust-store-password>jbossws</trust-store-password>
+
+ <config>
+ <sign type="x509v3" alias="wsse"/>
+ <requires>
+ <signature/>
+ </requires>
+ </config>
+</jboss-ws-security>
\ No newline at end of file
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/META-INF/wsse.keystore
===================================================================
(Binary files differ)
Copied: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/META-INF/wsse.keystore (from rev 24846, labs/jbossesb/trunk/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/META-INF/wsse.keystore)
===================================================================
(Binary files differ)
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/META-INF/wsse.truststore
===================================================================
(Binary files differ)
Copied: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/META-INF/wsse.truststore (from rev 24846, labs/jbossesb/trunk/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/META-INF/wsse.truststore)
===================================================================
(Binary files differ)
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/build.xml
===================================================================
--- labs/jbossesb/trunk/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/build.xml 2009-01-21 09:35:03 UTC (rev 24846)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/build.xml 2009-01-21 15:38:08 UTC (rev 24850)
@@ -1,74 +0,0 @@
-<project name="Quickstart_webservice_consumer_wise_wsse_wsa" default="deploy" basedir=".">
-
- <description>
- ${ant.project.name}
- ${line.separator}
- </description>
-
- <property name="additional.deploys" value="META-INF/**" />
-
- <!-- Import the base Ant build script... -->
- <import file="../conf/base-build.xml"/>
-
-
- <property name="war.build.dir" location="${build.dir}/war/classes"/>
-
-
- <target name="quickstart-specific-checks" depends="assert-ws-available"/>
-
- <target name="quickstart-specific-assemblies" depends="makewar"/>
-
- <target name="makewar" description="make war">
- <!-- Compile... -->
- <mkdir dir="${war.build.dir}" />
- <javac srcdir="war/src" destdir="${war.build.dir}" debug="true">
- <classpath>
- <path refid="compile-classpath" />
- <fileset dir="war/lib/ext" includes="*.jar" />
- </classpath>
- </javac>
-
- <!-- War... -->
- <war warfile="build/${ant.project.name}.war"
- webxml="${basedir}/war/resources/WEB-INF/web.xml">
- <webinf dir="${basedir}/war/resources/WEB-INF">
- <include name="*.*"/>
- </webinf>
- <classes dir="${war.build.dir}" includes="**/*.class"/>
- <fileset dir="${basedir}/war/view">
- <include name="**/*"/>
- </fileset>
- <classes dir="${basedir}">
- <include name="juddi.properties"/>
- </classes>
- </war>
- </target>
-
- <target name="deploy-war" depends="prepare-deployment, makewar">
- <copy todir="${org.jboss.esb.server.deploy.dir}"
- file="${build.dir}/${ant.project.name}.war"/>
- </target>
-
- <target name="undeploy-war" depends="dependencies">
- <delete verbose="true" quiet="true"
- file="${org.jboss.esb.server.deploy.dir}/${ant.project.name}.war"/>
- </target>
-
- <target name="sendjms" depends="compile">
- <echo>Send JMS message that triggers webservice call</echo>
- <java fork="yes" classname="org.jboss.soa.esb.samples.quickstart.webservice_consumer_wise4.test.SendJMSMessage" failonerror="true">
- <arg value="Jimbo"/>
- <classpath refid="exec-classpath"/>
- </java>
-
- </target>
-
- <target name="runtest" depends="compile">
- <echo>Send ESB message that triggers webservice call</echo>
- <java fork="yes" classname="org.jboss.soa.esb.samples.quickstart.webservice_consumer_wise4.test.SendEsbMessage" failonerror="true">
- <arg value="Jimbo"/>
- <classpath refid="exec-classpath"/>
- </java>
- </target>
-
-</project>
Copied: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/build.xml (from rev 24846, labs/jbossesb/trunk/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/build.xml)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/build.xml (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/build.xml 2009-01-21 15:38:08 UTC (rev 24850)
@@ -0,0 +1,74 @@
+<project name="Quickstart_webservice_consumer_wise_wsse_wsa" default="deploy" basedir=".">
+
+ <description>
+ ${ant.project.name}
+ ${line.separator}
+ </description>
+
+ <property name="additional.deploys" value="META-INF/**" />
+
+ <!-- Import the base Ant build script... -->
+ <import file="../conf/base-build.xml"/>
+
+
+ <property name="war.build.dir" location="${build.dir}/war/classes"/>
+
+
+ <target name="quickstart-specific-checks" depends="assert-ws-available"/>
+
+ <target name="quickstart-specific-assemblies" depends="makewar"/>
+
+ <target name="makewar" description="make war">
+ <!-- Compile... -->
+ <mkdir dir="${war.build.dir}" />
+ <javac srcdir="war/src" destdir="${war.build.dir}" debug="true">
+ <classpath>
+ <path refid="compile-classpath" />
+ <fileset dir="war/lib/ext" includes="*.jar" />
+ </classpath>
+ </javac>
+
+ <!-- War... -->
+ <war warfile="build/${ant.project.name}.war"
+ webxml="${basedir}/war/resources/WEB-INF/web.xml">
+ <webinf dir="${basedir}/war/resources/WEB-INF">
+ <include name="*.*"/>
+ </webinf>
+ <classes dir="${war.build.dir}" includes="**/*.class"/>
+ <fileset dir="${basedir}/war/view">
+ <include name="**/*"/>
+ </fileset>
+ <classes dir="${basedir}">
+ <include name="juddi.properties"/>
+ </classes>
+ </war>
+ </target>
+
+ <target name="deploy-war" depends="prepare-deployment, makewar">
+ <copy todir="${org.jboss.esb.server.deploy.dir}"
+ file="${build.dir}/${ant.project.name}.war"/>
+ </target>
+
+ <target name="undeploy-war" depends="dependencies">
+ <delete verbose="true" quiet="true"
+ file="${org.jboss.esb.server.deploy.dir}/${ant.project.name}.war"/>
+ </target>
+
+ <target name="sendjms" depends="compile">
+ <echo>Send JMS message that triggers webservice call</echo>
+ <java fork="yes" classname="org.jboss.soa.esb.samples.quickstart.webservice_consumer_wise4.test.SendJMSMessage" failonerror="true">
+ <arg value="Jimbo"/>
+ <classpath refid="exec-classpath"/>
+ </java>
+
+ </target>
+
+ <target name="runtest" depends="compile">
+ <echo>Send ESB message that triggers webservice call</echo>
+ <java fork="yes" classname="org.jboss.soa.esb.samples.quickstart.webservice_consumer_wise4.test.SendEsbMessage" failonerror="true">
+ <arg value="Jimbo"/>
+ <classpath refid="exec-classpath"/>
+ </java>
+ </target>
+
+</project>
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/deployment.xml
===================================================================
--- labs/jbossesb/trunk/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/deployment.xml 2009-01-21 09:35:03 UTC (rev 24846)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/deployment.xml 2009-01-21 15:38:08 UTC (rev 24850)
@@ -1,6 +0,0 @@
-<jbossesb-deployment>
- <depends>jboss.esb:deployment=soap.esb</depends>
- <depends>jboss.esb.quickstart.destination:service=Queue,name=quickstart_webservice_consumer_wise4_esb</depends>
- <depends>jboss.esb.quickstart.destination:service=Queue,name=quickstart_webservice_consumer_wise4_esb_reply</depends>
- <depends>jboss.esb.quickstart.destination:service=Queue,name=quickstart_webservice_consumer_wise4_Request_gw</depends>
-</jbossesb-deployment>
Copied: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/deployment.xml (from rev 24846, labs/jbossesb/trunk/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/deployment.xml)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/deployment.xml (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/deployment.xml 2009-01-21 15:38:08 UTC (rev 24850)
@@ -0,0 +1,6 @@
+<jbossesb-deployment>
+ <depends>jboss.esb:deployment=soap.esb</depends>
+ <depends>jboss.esb.quickstart.destination:service=Queue,name=quickstart_webservice_consumer_wise4_esb</depends>
+ <depends>jboss.esb.quickstart.destination:service=Queue,name=quickstart_webservice_consumer_wise4_esb_reply</depends>
+ <depends>jboss.esb.quickstart.destination:service=Queue,name=quickstart_webservice_consumer_wise4_Request_gw</depends>
+</jbossesb-deployment>
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/jbm-queue-service.xml
===================================================================
--- labs/jbossesb/trunk/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/jbm-queue-service.xml 2009-01-21 09:35:03 UTC (rev 24846)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/jbm-queue-service.xml 2009-01-21 15:38:08 UTC (rev 24850)
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<server>
- <mbean code="org.jboss.jms.server.destination.QueueService"
- name="jboss.esb.quickstart.destination:service=Queue,name=quickstart_webservice_consumer_wise4_esb"
- xmbean-dd="xmdesc/Queue-xmbean.xml">
- <depends optional-attribute-name="ServerPeer">jboss.messaging:service=ServerPeer</depends>
- <depends>jboss.messaging:service=PostOffice</depends>
- </mbean>
- <mbean code="org.jboss.jms.server.destination.QueueService"
- name="jboss.esb.quickstart.destination:service=Queue,name=quickstart_webservice_consumer_wise4_esb_reply"
- xmbean-dd="xmdesc/Queue-xmbean.xml">
- <depends optional-attribute-name="ServerPeer">jboss.messaging:service=ServerPeer</depends>
- <depends>jboss.messaging:service=PostOffice</depends>
- </mbean>
- <mbean code="org.jboss.jms.server.destination.QueueService"
- name="jboss.esb.quickstart.destination:service=Queue,name=quickstart_webservice_consumer_wise4_Request_gw"
- xmbean-dd="xmdesc/Queue-xmbean.xml">
- <depends optional-attribute-name="ServerPeer">jboss.messaging:service=ServerPeer</depends>
- <depends>jboss.messaging:service=PostOffice</depends>
- </mbean>
-</server>
Copied: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/jbm-queue-service.xml (from rev 24846, labs/jbossesb/trunk/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/jbm-queue-service.xml)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/jbm-queue-service.xml (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/jbm-queue-service.xml 2009-01-21 15:38:08 UTC (rev 24850)
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<server>
+ <mbean code="org.jboss.jms.server.destination.QueueService"
+ name="jboss.esb.quickstart.destination:service=Queue,name=quickstart_webservice_consumer_wise4_esb"
+ xmbean-dd="xmdesc/Queue-xmbean.xml">
+ <depends optional-attribute-name="ServerPeer">jboss.messaging:service=ServerPeer</depends>
+ <depends>jboss.messaging:service=PostOffice</depends>
+ </mbean>
+ <mbean code="org.jboss.jms.server.destination.QueueService"
+ name="jboss.esb.quickstart.destination:service=Queue,name=quickstart_webservice_consumer_wise4_esb_reply"
+ xmbean-dd="xmdesc/Queue-xmbean.xml">
+ <depends optional-attribute-name="ServerPeer">jboss.messaging:service=ServerPeer</depends>
+ <depends>jboss.messaging:service=PostOffice</depends>
+ </mbean>
+ <mbean code="org.jboss.jms.server.destination.QueueService"
+ name="jboss.esb.quickstart.destination:service=Queue,name=quickstart_webservice_consumer_wise4_Request_gw"
+ xmbean-dd="xmdesc/Queue-xmbean.xml">
+ <depends optional-attribute-name="ServerPeer">jboss.messaging:service=ServerPeer</depends>
+ <depends>jboss.messaging:service=PostOffice</depends>
+ </mbean>
+</server>
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/jbmq-queue-service.xml
===================================================================
--- labs/jbossesb/trunk/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/jbmq-queue-service.xml 2009-01-21 09:35:03 UTC (rev 24846)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/jbmq-queue-service.xml 2009-01-21 15:38:08 UTC (rev 24850)
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<server>
- <mbean code="org.jboss.mq.server.jmx.Queue"
- name="jboss.esb.quickstart.destination:service=Queue,name=quickstart_webservice_consumer_wise4_esb">
- <depends optional-attribute-name="DestinationManager">
- jboss.mq:service=DestinationManager
- </depends>
- </mbean>
- <mbean code="org.jboss.mq.server.jmx.Queue"
- name="jboss.esb.quickstart.destination:service=Queue,name=quickstart_webservice_consumer_wise4_esb_reply">
- <depends optional-attribute-name="DestinationManager">
- jboss.mq:service=DestinationManager
- </depends>
- </mbean>
- <mbean code="org.jboss.mq.server.jmx.Queue"
- name="jboss.esb.quickstart.destination:service=Queue,name=quickstart_webservice_consumer_wise4_Request_gw">
- <depends optional-attribute-name="DestinationManager">
- jboss.mq:service=DestinationManager
- </depends>
- </mbean>
-</server>
Copied: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/jbmq-queue-service.xml (from rev 24846, labs/jbossesb/trunk/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/jbmq-queue-service.xml)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/jbmq-queue-service.xml (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/jbmq-queue-service.xml 2009-01-21 15:38:08 UTC (rev 24850)
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<server>
+ <mbean code="org.jboss.mq.server.jmx.Queue"
+ name="jboss.esb.quickstart.destination:service=Queue,name=quickstart_webservice_consumer_wise4_esb">
+ <depends optional-attribute-name="DestinationManager">
+ jboss.mq:service=DestinationManager
+ </depends>
+ </mbean>
+ <mbean code="org.jboss.mq.server.jmx.Queue"
+ name="jboss.esb.quickstart.destination:service=Queue,name=quickstart_webservice_consumer_wise4_esb_reply">
+ <depends optional-attribute-name="DestinationManager">
+ jboss.mq:service=DestinationManager
+ </depends>
+ </mbean>
+ <mbean code="org.jboss.mq.server.jmx.Queue"
+ name="jboss.esb.quickstart.destination:service=Queue,name=quickstart_webservice_consumer_wise4_Request_gw">
+ <depends optional-attribute-name="DestinationManager">
+ jboss.mq:service=DestinationManager
+ </depends>
+ </mbean>
+</server>
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/jboss-esb.xml
===================================================================
--- labs/jbossesb/trunk/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/jboss-esb.xml 2009-01-21 09:35:03 UTC (rev 24846)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/jboss-esb.xml 2009-01-21 15:38:08 UTC (rev 24850)
@@ -1,66 +0,0 @@
-<?xml version = "1.0" encoding = "UTF-8"?>
-<jbossesb
- xmlns="http://anonsvn.labs.jboss.com/labs/jbossesb/trunk/product/etc/schemas/xml/jbossesb-1.0.1.xsd"
- parameterReloadSecs="5">
-
- <providers>
- <jms-provider name="JBossMQ"
- connection-factory="ConnectionFactory"
- jndi-context-factory="org.jnp.interfaces.NamingContextFactory"
- jndi-URL="localhost">
- <jms-bus busid="quickstartGwChannel">
- <jms-message-filter
- dest-type="QUEUE"
- dest-name="queue/quickstart_webservice_consumer_wise4_Request_gw"
- />
- </jms-bus>
-
- <jms-bus busid="quickstartEsbChannel">
- <jms-message-filter dest-type="QUEUE"
- dest-name="queue/quickstart_webservice_consumer_wise4_esb" />
- </jms-bus>
-
- </jms-provider>
- </providers>
-
- <services>
- <service category="MyServiceCategory" name="Webserviceconsumer_wise4"
- description="Helloworld Webservice Consumer">
- <listeners>
- <jms-listener name="JMS-ESBListener"
- busidref="quickstartEsbChannel"/>
- <jms-listener name="JMS-Gateway"
- busidref="quickstartGwChannel"
- is-gateway="true"
- />
-
- </listeners>
- <actions mep="OneWay">
- <action name="request-mapper"
- class="org.jboss.soa.esb.samples.quickstart.webservice_consumer_wise4.MyRequestAction">
- </action>
- <action name="soapui-client-action"
- class="org.jboss.soa.esb.actions.soap.wise.SOAPClient">
- <property name="wsdl"
- value="http://127.0.0.1:8080/Quickstart_webservice_consumer_wise_wsse_wsa/HelloWorldWS?wsdl" />
- <property name="SOAPAction" value="sayHello"/>
- <property name="EndPointName" value="HelloWorldPort"/>
- <property name="LoggingMessages" value="true" />
- <property name="enableWSA" value="true"></property>
- <property name="enableWSSE" value="true" />
- <property name="serviceName" value="HelloWorldWSService"/>
- <property name="userName" value=""/>
- <property name="password" value=""/>
-
- </action>
- <action name="response-mapper"
- class="org.jboss.soa.esb.samples.quickstart.webservice_consumer_wise4.MyResponseAction">
- </action>
- <action name="testStore" class="org.jboss.soa.esb.actions.TestMessageStore">
-
- </action>
- </actions>
- </service>
- </services>
-
-</jbossesb>
Copied: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/jboss-esb.xml (from rev 24846, labs/jbossesb/trunk/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/jboss-esb.xml)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/jboss-esb.xml (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/jboss-esb.xml 2009-01-21 15:38:08 UTC (rev 24850)
@@ -0,0 +1,66 @@
+<?xml version = "1.0" encoding = "UTF-8"?>
+<jbossesb
+ xmlns="http://anonsvn.labs.jboss.com/labs/jbossesb/trunk/product/etc/schemas/xml/jbossesb-1.0.1.xsd"
+ parameterReloadSecs="5">
+
+ <providers>
+ <jms-provider name="JBossMQ"
+ connection-factory="ConnectionFactory"
+ jndi-context-factory="org.jnp.interfaces.NamingContextFactory"
+ jndi-URL="localhost">
+ <jms-bus busid="quickstartGwChannel">
+ <jms-message-filter
+ dest-type="QUEUE"
+ dest-name="queue/quickstart_webservice_consumer_wise4_Request_gw"
+ />
+ </jms-bus>
+
+ <jms-bus busid="quickstartEsbChannel">
+ <jms-message-filter dest-type="QUEUE"
+ dest-name="queue/quickstart_webservice_consumer_wise4_esb" />
+ </jms-bus>
+
+ </jms-provider>
+ </providers>
+
+ <services>
+ <service category="MyServiceCategory" name="Webserviceconsumer_wise4"
+ description="Helloworld Webservice Consumer">
+ <listeners>
+ <jms-listener name="JMS-ESBListener"
+ busidref="quickstartEsbChannel"/>
+ <jms-listener name="JMS-Gateway"
+ busidref="quickstartGwChannel"
+ is-gateway="true"
+ />
+
+ </listeners>
+ <actions mep="OneWay">
+ <action name="request-mapper"
+ class="org.jboss.soa.esb.samples.quickstart.webservice_consumer_wise4.MyRequestAction">
+ </action>
+ <action name="soapui-client-action"
+ class="org.jboss.soa.esb.actions.soap.wise.SOAPClient">
+ <property name="wsdl"
+ value="http://127.0.0.1:8080/Quickstart_webservice_consumer_wise_wsse_wsa/HelloWorldWS?wsdl" />
+ <property name="SOAPAction" value="sayHello"/>
+ <property name="EndPointName" value="HelloWorldPort"/>
+ <property name="LoggingMessages" value="true" />
+ <property name="enableWSA" value="true"></property>
+ <property name="enableWSSE" value="true" />
+ <property name="serviceName" value="HelloWorldWSService"/>
+ <property name="userName" value=""/>
+ <property name="password" value=""/>
+
+ </action>
+ <action name="response-mapper"
+ class="org.jboss.soa.esb.samples.quickstart.webservice_consumer_wise4.MyResponseAction">
+ </action>
+ <action name="testStore" class="org.jboss.soa.esb.actions.TestMessageStore">
+
+ </action>
+ </actions>
+ </service>
+ </services>
+
+</jbossesb>
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/jbossesb-properties.xml
===================================================================
--- labs/jbossesb/trunk/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/jbossesb-properties.xml 2009-01-21 09:35:03 UTC (rev 24846)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/jbossesb-properties.xml 2009-01-21 15:38:08 UTC (rev 24850)
@@ -1,84 +0,0 @@
-<?xml version="1.0" encoding="ISO-8859-1"?>
-<!--
- JBoss, Home of Professional Open Source
- Copyright 2006, JBoss Inc., and others contributors as indicated
- by the @authors tag. All rights reserved.
- See the copyright.txt in the distribution for a
- full listing of individual contributors.
- This copyrighted material is made available to anyone wishing to use,
- modify, copy, or redistribute it subject to the terms and conditions
- of the GNU Lesser General Public License, v. 2.1.
- This program is distributed in the hope that it will be useful, but WITHOUT A
- WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
- PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
- You should have received a copy of the GNU Lesser General Public License,
- v.2.1 along with this distribution; if not, write to the Free Software
- Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
- MA 02110-1301, USA.
-
- (C) 2005-2006,
- @author JBoss Inc.
--->
-<!-- $Id: jbossesb-unittest-properties.xml $ -->
-<!--
- These options are described in the JBossESB manual.
- Defaults are provided here for convenience only.
-
- Please read through this file prior to using the system, and consider
- updating the specified entries.
--->
-<esb
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:noNamespaceSchemaLocation="jbossesb-1_0.xsd">
- <properties name="core">
- <property name="org.jboss.soa.esb.jndi.server.type" value="jboss"/>
- <property name="org.jboss.soa.esb.jndi.server.url" value="localhost"/>
- <property name="org.jboss.soa.esb.persistence.connection.factory" value="org.jboss.internal.soa.esb.persistence.format.MessageStoreFactoryImpl"/>
- </properties>
- <properties name="registry">
- <property name="org.jboss.soa.esb.registry.queryManagerURI"
- value="jnp://localhost:1099/InquiryService?org.apache.juddi.registry.rmi.Inquiry#inquire"/>
- <property name="org.jboss.soa.esb.registry.lifeCycleManagerURI"
- value="jnp://localhost:1099/PublishService?org.apache.juddi.registry.rmi.Publish#publish" />
- <property name="org.jboss.soa.esb.registry.implementationClass"
- value="org.jboss.internal.soa.esb.services.registry.JAXRRegistryImpl"/>
- <property name="org.jboss.soa.esb.registry.factoryClass"
- value="org.apache.ws.scout.registry.ConnectionFactoryImpl"/>
- <property name="org.jboss.soa.esb.registry.user"
- value="jbossesb"/>
- <property name="org.jboss.soa.esb.registry.password"
- value="password"/>
- <!-- the following parameter is scout specific to set the type of communication between scout and the UDDI (embedded, rmi, soap) -->
- <property name="org.jboss.soa.esb.scout.proxy.transportClass"
- value="org.apache.ws.scout.transport.RMITransport"/>
- </properties>
- <properties name="transports" depends="core">
- <property name="org.jboss.soa.esb.mail.smtp.host" value="localhost"/>
- <property name="org.jboss.soa.esb.mail.smtp.user" value="jbossesb"/>
- <property name="org.jboss.soa.esb.mail.smtp.password" value=""/>
- <property name="org.jboss.soa.esb.mail.smtp.port" value="25"/>
- </properties>
- <properties name="connection">
- <property name="min-pool-size" value="5"/>
- <property name="max-pool=size" value="10"/>
- <property name="blocking-timeout-millis" value="5000"/>
- <property name="abandoned-connection-timeout" value="10000"/>
- <property name="abandoned-connection-time-interval" value="30000"/>
- </properties>
- <properties name="dbstore">
- <property name="org.jboss.soa.esb.persistence.db.connection.url" value="jdbc:hsqldb:hsql://localhost:9001/jbossesb"/>
- <property name="org.jboss.soa.esb.persistence.db.jdbc.driver" value="org.hsqldb.jdbcDriver"/>
- <property name="org.jboss.soa.esb.persistence.db.user" value="sa"/>
- <property name="org.jboss.soa.esb.persistence.db.pwd" value=""/>
- <property name="org.jboss.soa.esb.persistence.db.pool.initial.size" value="2"/>
- <property name="org.jboss.soa.esb.persistence.db.pool.min.size" value="2"/>
- <property name="org.jboss.soa.esb.persistence.db.pool.max.size" value="5"/>
- <!--table managed by pool to test for valid connections - created by pool automatically -->
- <property name="org.jboss.soa.esb.persistence.db.pool.test.table" value="pooltest"/>
- <!-- # of milliseconds to timeout waiting for a connection from pool -->
- <property name="org.jboss.soa.esb.persistence.db.pool.timeout.millis" value="5000"/>
- </properties>
- <properties name="messagerouting">
- <property name="org.jboss.soa.esb.routing.cbrClass" value="org.jboss.internal.soa.esb.services.routing.cbr.JBossRulesRouter"/>
- </properties>
-</esb>
Copied: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/jbossesb-properties.xml (from rev 24846, labs/jbossesb/trunk/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/jbossesb-properties.xml)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/jbossesb-properties.xml (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/jbossesb-properties.xml 2009-01-21 15:38:08 UTC (rev 24850)
@@ -0,0 +1,84 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!--
+ JBoss, Home of Professional Open Source
+ Copyright 2006, JBoss Inc., and others contributors as indicated
+ by the @authors tag. All rights reserved.
+ See the copyright.txt in the distribution for a
+ full listing of individual contributors.
+ This copyrighted material is made available to anyone wishing to use,
+ modify, copy, or redistribute it subject to the terms and conditions
+ of the GNU Lesser General Public License, v. 2.1.
+ This program is distributed in the hope that it will be useful, but WITHOUT A
+ WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+ PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
+ You should have received a copy of the GNU Lesser General Public License,
+ v.2.1 along with this distribution; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ MA 02110-1301, USA.
+
+ (C) 2005-2006,
+ @author JBoss Inc.
+-->
+<!-- $Id: jbossesb-unittest-properties.xml $ -->
+<!--
+ These options are described in the JBossESB manual.
+ Defaults are provided here for convenience only.
+
+ Please read through this file prior to using the system, and consider
+ updating the specified entries.
+-->
+<esb
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:noNamespaceSchemaLocation="jbossesb-1_0.xsd">
+ <properties name="core">
+ <property name="org.jboss.soa.esb.jndi.server.type" value="jboss"/>
+ <property name="org.jboss.soa.esb.jndi.server.url" value="localhost"/>
+ <property name="org.jboss.soa.esb.persistence.connection.factory" value="org.jboss.internal.soa.esb.persistence.format.MessageStoreFactoryImpl"/>
+ </properties>
+ <properties name="registry">
+ <property name="org.jboss.soa.esb.registry.queryManagerURI"
+ value="jnp://localhost:1099/InquiryService?org.apache.juddi.registry.rmi.Inquiry#inquire"/>
+ <property name="org.jboss.soa.esb.registry.lifeCycleManagerURI"
+ value="jnp://localhost:1099/PublishService?org.apache.juddi.registry.rmi.Publish#publish" />
+ <property name="org.jboss.soa.esb.registry.implementationClass"
+ value="org.jboss.internal.soa.esb.services.registry.JAXRRegistryImpl"/>
+ <property name="org.jboss.soa.esb.registry.factoryClass"
+ value="org.apache.ws.scout.registry.ConnectionFactoryImpl"/>
+ <property name="org.jboss.soa.esb.registry.user"
+ value="jbossesb"/>
+ <property name="org.jboss.soa.esb.registry.password"
+ value="password"/>
+ <!-- the following parameter is scout specific to set the type of communication between scout and the UDDI (embedded, rmi, soap) -->
+ <property name="org.jboss.soa.esb.scout.proxy.transportClass"
+ value="org.apache.ws.scout.transport.RMITransport"/>
+ </properties>
+ <properties name="transports" depends="core">
+ <property name="org.jboss.soa.esb.mail.smtp.host" value="localhost"/>
+ <property name="org.jboss.soa.esb.mail.smtp.user" value="jbossesb"/>
+ <property name="org.jboss.soa.esb.mail.smtp.password" value=""/>
+ <property name="org.jboss.soa.esb.mail.smtp.port" value="25"/>
+ </properties>
+ <properties name="connection">
+ <property name="min-pool-size" value="5"/>
+ <property name="max-pool=size" value="10"/>
+ <property name="blocking-timeout-millis" value="5000"/>
+ <property name="abandoned-connection-timeout" value="10000"/>
+ <property name="abandoned-connection-time-interval" value="30000"/>
+ </properties>
+ <properties name="dbstore">
+ <property name="org.jboss.soa.esb.persistence.db.connection.url" value="jdbc:hsqldb:hsql://localhost:9001/jbossesb"/>
+ <property name="org.jboss.soa.esb.persistence.db.jdbc.driver" value="org.hsqldb.jdbcDriver"/>
+ <property name="org.jboss.soa.esb.persistence.db.user" value="sa"/>
+ <property name="org.jboss.soa.esb.persistence.db.pwd" value=""/>
+ <property name="org.jboss.soa.esb.persistence.db.pool.initial.size" value="2"/>
+ <property name="org.jboss.soa.esb.persistence.db.pool.min.size" value="2"/>
+ <property name="org.jboss.soa.esb.persistence.db.pool.max.size" value="5"/>
+ <!--table managed by pool to test for valid connections - created by pool automatically -->
+ <property name="org.jboss.soa.esb.persistence.db.pool.test.table" value="pooltest"/>
+ <!-- # of milliseconds to timeout waiting for a connection from pool -->
+ <property name="org.jboss.soa.esb.persistence.db.pool.timeout.millis" value="5000"/>
+ </properties>
+ <properties name="messagerouting">
+ <property name="org.jboss.soa.esb.routing.cbrClass" value="org.jboss.internal.soa.esb.services.routing.cbr.JBossRulesRouter"/>
+ </properties>
+</esb>
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/jndi.properties
===================================================================
--- labs/jbossesb/trunk/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/jndi.properties 2009-01-21 09:35:03 UTC (rev 24846)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/jndi.properties 2009-01-21 15:38:08 UTC (rev 24850)
@@ -1,5 +0,0 @@
-java.naming.factory.initial=org.jnp.interfaces.NamingContextFactory
-java.naming.provider.url=jnp://localhost:1099
-java.naming.factory.url.pkgs=org.jboss.naming
-java.naming.factory.url.pkgs=org.jnp.interfaces
-
Copied: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/jndi.properties (from rev 24846, labs/jbossesb/trunk/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/jndi.properties)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/jndi.properties (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/jndi.properties 2009-01-21 15:38:08 UTC (rev 24850)
@@ -0,0 +1,5 @@
+java.naming.factory.initial=org.jnp.interfaces.NamingContextFactory
+java.naming.provider.url=jnp://localhost:1099
+java.naming.factory.url.pkgs=org.jboss.naming
+java.naming.factory.url.pkgs=org.jnp.interfaces
+
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/juddi.properties
===================================================================
--- labs/jbossesb/trunk/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/juddi.properties 2009-01-21 09:35:03 UTC (rev 24846)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/juddi.properties 2009-01-21 15:38:08 UTC (rev 24850)
@@ -1,69 +0,0 @@
-# jUDDI Registry Properties (used by RegistryServer)
-# see http://www.juddi.org for more information
-
-# The UDDI Operator Name
-juddi.operatorName = jUDDI.org
-
-# The i18n locale default codes
-juddi.i18n.languageCode = en
-juddi.i18n.countryCode = US
-
-# The UDDI DiscoveryURL Prefix
-juddi.discoveryURL = http://localhost:8080/juddi/uddiget.jsp?
-
-# The UDDI Operator Contact Email Address
-juddi.operatorEmailAddress = admin at juddi.org
-
-# The maximum name size and maximum number
-# of name elements allows in several of the
-# FindXxxx and SaveXxxx UDDI functions.
-juddi.maxNameLength=255
-juddi.maxNameElementsAllowed=5
-
-# The maximum number of UDDI artifacts allowed
-# per publisher. A value of '-1' indicates any
-# number of artifacts is valid (These values can be
-# overridden at the individual publisher level).
-juddi.maxBusinessesPerPublisher=25
-juddi.maxServicesPerBusiness=20
-juddi.maxBindingsPerService=10
-juddi.maxTModelsPerPublisher=100
-
-# jUDDI Authentication module to use
-juddi.auth = org.apache.juddi.auth.DefaultAuthenticator
-
-# jUDDI DataStore module currently to use
-juddi.dataStore = org.apache.juddi.datastore.jdbc.JDBCDataStore
-
-# use a dataSource (if set to false a direct
-# jdbc connection will be used.
-juddi.isUseDataSource=false
-juddi.jdbcDriver=com.mysql.jdbc.Driver
-juddi.jdbcUrl=jdbc:mysql://localhost:3306/juddi
-juddi.jdbcUsername=root
-juddi.jdbcPassword=admin
-# jUDDI DataSource to use
-# juddi.dataSource=java:comp/env/jdbc/MySqlDS
-
-# jUDDI UUIDGen implementation to use
-juddi.uuidgen = org.apache.juddi.uuidgen.DefaultUUIDGen
-
-# jUDDI Cryptor implementation to use
-juddi.cryptor = org.apache.juddi.cryptor.DefaultCryptor
-
-# jUDDI Validator to use
-juddi.validator=org.apache.juddi.validator.DefaultValidator
-
-# jUDDI Proxy Properties (used by RegistryProxy)
-juddi.proxy.adminURL = http://localhost:8080/juddi/admin
-juddi.proxy.inquiryURL = http://localhost:8080/juddi/inquiry
-juddi.proxy.publishURL = http://localhost:8080/juddi/publish
-juddi.proxy.transportClass = org.apache.juddi.proxy.AxisTransport
-juddi.proxy.securityProvider = com.sun.net.ssl.internal.ssl.Provider
-juddi.proxy.protocolHandler = com.sun.net.ssl.internal.www.protocol
-
-# JNDI settings (used by RMITransport)
-java.naming.factory.initial=org.jnp.interfaces.NamingContextFactory
-java.naming.provider.url=jnp://localhost:1099
-java.naming.factory.url.pkgs=org.jboss.naming
-
Copied: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/juddi.properties (from rev 24846, labs/jbossesb/trunk/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/juddi.properties)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/juddi.properties (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/juddi.properties 2009-01-21 15:38:08 UTC (rev 24850)
@@ -0,0 +1,69 @@
+# jUDDI Registry Properties (used by RegistryServer)
+# see http://www.juddi.org for more information
+
+# The UDDI Operator Name
+juddi.operatorName = jUDDI.org
+
+# The i18n locale default codes
+juddi.i18n.languageCode = en
+juddi.i18n.countryCode = US
+
+# The UDDI DiscoveryURL Prefix
+juddi.discoveryURL = http://localhost:8080/juddi/uddiget.jsp?
+
+# The UDDI Operator Contact Email Address
+juddi.operatorEmailAddress = admin at juddi.org
+
+# The maximum name size and maximum number
+# of name elements allows in several of the
+# FindXxxx and SaveXxxx UDDI functions.
+juddi.maxNameLength=255
+juddi.maxNameElementsAllowed=5
+
+# The maximum number of UDDI artifacts allowed
+# per publisher. A value of '-1' indicates any
+# number of artifacts is valid (These values can be
+# overridden at the individual publisher level).
+juddi.maxBusinessesPerPublisher=25
+juddi.maxServicesPerBusiness=20
+juddi.maxBindingsPerService=10
+juddi.maxTModelsPerPublisher=100
+
+# jUDDI Authentication module to use
+juddi.auth = org.apache.juddi.auth.DefaultAuthenticator
+
+# jUDDI DataStore module currently to use
+juddi.dataStore = org.apache.juddi.datastore.jdbc.JDBCDataStore
+
+# use a dataSource (if set to false a direct
+# jdbc connection will be used.
+juddi.isUseDataSource=false
+juddi.jdbcDriver=com.mysql.jdbc.Driver
+juddi.jdbcUrl=jdbc:mysql://localhost:3306/juddi
+juddi.jdbcUsername=root
+juddi.jdbcPassword=admin
+# jUDDI DataSource to use
+# juddi.dataSource=java:comp/env/jdbc/MySqlDS
+
+# jUDDI UUIDGen implementation to use
+juddi.uuidgen = org.apache.juddi.uuidgen.DefaultUUIDGen
+
+# jUDDI Cryptor implementation to use
+juddi.cryptor = org.apache.juddi.cryptor.DefaultCryptor
+
+# jUDDI Validator to use
+juddi.validator=org.apache.juddi.validator.DefaultValidator
+
+# jUDDI Proxy Properties (used by RegistryProxy)
+juddi.proxy.adminURL = http://localhost:8080/juddi/admin
+juddi.proxy.inquiryURL = http://localhost:8080/juddi/inquiry
+juddi.proxy.publishURL = http://localhost:8080/juddi/publish
+juddi.proxy.transportClass = org.apache.juddi.proxy.AxisTransport
+juddi.proxy.securityProvider = com.sun.net.ssl.internal.ssl.Provider
+juddi.proxy.protocolHandler = com.sun.net.ssl.internal.www.protocol
+
+# JNDI settings (used by RMITransport)
+java.naming.factory.initial=org.jnp.interfaces.NamingContextFactory
+java.naming.provider.url=jnp://localhost:1099
+java.naming.factory.url.pkgs=org.jboss.naming
+
Copied: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/lib (from rev 24846, labs/jbossesb/trunk/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/lib)
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/log4j.xml
===================================================================
--- labs/jbossesb/trunk/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/log4j.xml 2009-01-21 09:35:03 UTC (rev 24846)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/log4j.xml 2009-01-21 15:38:08 UTC (rev 24850)
@@ -1,78 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
-
-<!-- ===================================================================== -->
-<!-- -->
-<!-- Log4j Configuration -->
-<!-- -->
-<!-- ===================================================================== -->
-
-<!-- $Id: log4j.xml,v 1.26.2.5 2005/09/15 09:31:02 dimitris Exp $ -->
-
-<!--
- | For more configuration infromation and examples see the Jakarta Log4j
- | owebsite: http://jakarta.apache.org/log4j
- -->
-
-<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/" debug="false">
-
- <!-- ============================== -->
- <!-- Append messages to the console -->
- <!-- ============================== -->
-
- <appender name="CONSOLE" class="org.apache.log4j.ConsoleAppender">
- <errorHandler class="org.jboss.logging.util.OnlyOnceErrorHandler"/>
- <param name="Target" value="System.out"/>
-
- <layout class="org.apache.log4j.PatternLayout">
- <!-- The default pattern: Date Priority [Category] Message\n -->
- <param name="ConversionPattern" value="%d{ABSOLUTE} %-5p [%t][%c{1}] %m%n"/>
- </layout>
- </appender>
-
- <!-- ================================= -->
- <!-- Preserve messages in a local file -->
- <!-- ================================= -->
-
- <!-- A size based file rolling appender -->
- <appender name="FILE" class="org.jboss.logging.appender.RollingFileAppender">
- <errorHandler class="org.jboss.logging.util.OnlyOnceErrorHandler"/>
- <param name="File" value="./listener.log"/>
- <param name="Append" value="false"/>
- <param name="MaxFileSize" value="500KB"/>
- <param name="MaxBackupIndex" value="1"/>
-
- <layout class="org.apache.log4j.PatternLayout">
- <param name="ConversionPattern" value="%d %-5p [%t][%c] %m%n"/>
- </layout>
- </appender>
-
- <!-- ================ -->
- <!-- Limit categories -->
- <!-- ================ -->
-
- <category name="org.jboss">
- <priority value="WARN"/>
- </category>
- <category name="org.jboss.soa.esb">
- <priority value="ERROR"/>
- </category>
- <category name="org.jboss.internal.soa.esb">
- <priority value="ERROR"/>
- </category>
- <category name="org.apache">
- <priority value="ERROR"/>
- </category>
- <category name="quickstart">
- <priority value="INFO"/>
- </category>
- <!-- ======================= -->
- <!-- Setup the Root category -->
- <!-- ======================= -->
-
- <root>
- <appender-ref ref="CONSOLE"/>
- <appender-ref ref="FILE"/>
- </root>
-
-</log4j:configuration>
Copied: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/log4j.xml (from rev 24846, labs/jbossesb/trunk/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/log4j.xml)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/log4j.xml (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/log4j.xml 2009-01-21 15:38:08 UTC (rev 24850)
@@ -0,0 +1,78 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
+
+<!-- ===================================================================== -->
+<!-- -->
+<!-- Log4j Configuration -->
+<!-- -->
+<!-- ===================================================================== -->
+
+<!-- $Id: log4j.xml,v 1.26.2.5 2005/09/15 09:31:02 dimitris Exp $ -->
+
+<!--
+ | For more configuration infromation and examples see the Jakarta Log4j
+ | owebsite: http://jakarta.apache.org/log4j
+ -->
+
+<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/" debug="false">
+
+ <!-- ============================== -->
+ <!-- Append messages to the console -->
+ <!-- ============================== -->
+
+ <appender name="CONSOLE" class="org.apache.log4j.ConsoleAppender">
+ <errorHandler class="org.jboss.logging.util.OnlyOnceErrorHandler"/>
+ <param name="Target" value="System.out"/>
+
+ <layout class="org.apache.log4j.PatternLayout">
+ <!-- The default pattern: Date Priority [Category] Message\n -->
+ <param name="ConversionPattern" value="%d{ABSOLUTE} %-5p [%t][%c{1}] %m%n"/>
+ </layout>
+ </appender>
+
+ <!-- ================================= -->
+ <!-- Preserve messages in a local file -->
+ <!-- ================================= -->
+
+ <!-- A size based file rolling appender -->
+ <appender name="FILE" class="org.jboss.logging.appender.RollingFileAppender">
+ <errorHandler class="org.jboss.logging.util.OnlyOnceErrorHandler"/>
+ <param name="File" value="./listener.log"/>
+ <param name="Append" value="false"/>
+ <param name="MaxFileSize" value="500KB"/>
+ <param name="MaxBackupIndex" value="1"/>
+
+ <layout class="org.apache.log4j.PatternLayout">
+ <param name="ConversionPattern" value="%d %-5p [%t][%c] %m%n"/>
+ </layout>
+ </appender>
+
+ <!-- ================ -->
+ <!-- Limit categories -->
+ <!-- ================ -->
+
+ <category name="org.jboss">
+ <priority value="WARN"/>
+ </category>
+ <category name="org.jboss.soa.esb">
+ <priority value="ERROR"/>
+ </category>
+ <category name="org.jboss.internal.soa.esb">
+ <priority value="ERROR"/>
+ </category>
+ <category name="org.apache">
+ <priority value="ERROR"/>
+ </category>
+ <category name="quickstart">
+ <priority value="INFO"/>
+ </category>
+ <!-- ======================= -->
+ <!-- Setup the Root category -->
+ <!-- ======================= -->
+
+ <root>
+ <appender-ref ref="CONSOLE"/>
+ <appender-ref ref="FILE"/>
+ </root>
+
+</log4j:configuration>
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/readme.txt
===================================================================
--- labs/jbossesb/trunk/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/readme.txt 2009-01-21 09:35:03 UTC (rev 24846)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/readme.txt 2009-01-21 15:38:08 UTC (rev 24850)
@@ -1,69 +0,0 @@
-Overview:
-=========
- This quickstart demonstrates how to configure SOAPClient to enable WS-Security and WS-Addressing to call
- a webservice.
-
-Running this quickstart:
-========================
- Please refer to 'ant help-quickstarts' for prerequisites about the quickstarts and a
- more detailed descripton of the different ways to run the quickstarts.
-
-To Run standalone mode:
-=======================
- This quickstart will not currently run in standalone mode.
-
-To Run '.esb' archive mode:
-===========================
- 1. Open wise-core.properties and modify the propertie 'wise.tmpDir' there to suit your environment.
- 2. In a command terminal window in this folder ("Window1"), type 'ant deploy'.
- 3. Open another command terminal window in this folder ("Window2"), type 'ant runtest'.
- 4. Switch back to Application Server console to see the output from the ESB
- 5. When finished, undeploy the application by typing 'ant undeploy'.
-
-Project file descriptions:
-==========================
-
- jboss-esb.xml:
- The actions in jboss-esb.xml convert the ESB message into to a webservice parameter Map, make a call
- to the HelloWorldWS webservice, then print the response on the console. Both juddi.properties
- and jbossesb-properties.xml are used when the service first boots up for self-registration
- based upon the service-category and service-name found in the esb-config.xml file.
-
- jndi.properties:
- Needed primarily for org.jboss.soa.esb.samples.quickstart.webservice_consumer_wise.SendESBMessage that is fired by ant runtest.
-
- wise-core.properties
- Needed to configure SOAPClient based on Wise project.
-
- log4j.xml:
- Needed to configure log4J used by both the quickstart and the ESB itself. A listener needs a place to log.
-
- src/../SendEsbMessage.java:
- Send a message directly the the ESB internal JMS listener. Demonstrates how one can bypass the
- gateway and speak directly to an ESB service.
-
- src/../SendJMSMessage.java:
- Send a message to JMS gateway listener and speak to an ESB service.
-
- src/../MyRequestAction.java
- Convert the message body into a webservice request parameter Map.
-
- src/../SOAPClient
- This class is used to make the call to the webservice. It will take the
- parameters map that MyRequestAction set in message body, call the webservice, then place
- the response in message.
-
- src/../MyResponseAction.java
- Retrieve the webservice response and display it on the console.
-
- build.xml:
- Targets and structure description:
- * the classpath property pulls the jbossesb-properties.xml file and the juddi.properties file to the
- front of the list
- * the echoCP task is useful for making sure what you think is in your classpath is actually in your classpath
- Usage is: ant echoCP > myclasspath.txt
- This generates a file called myclasspath.txt which can be reviewed in a text editor
- * the runtest task calls the org.jboss.soa.esb.samples.quickstart.webservice_consumer_wise.SendEsbMessage class and passes in an argument representing
- the string-based message to be pused into esb message aware listener queue.
- * the sendjms task calls the org.jboss.soa.esb.samples.quickstart.webservice_consumer_wise.SendJMSMessage class and passes in an argument representing
- the string-based message to be pused into the queue the gateway is listening on.
Copied: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/readme.txt (from rev 24846, labs/jbossesb/trunk/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/readme.txt)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/readme.txt (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/readme.txt 2009-01-21 15:38:08 UTC (rev 24850)
@@ -0,0 +1,69 @@
+Overview:
+=========
+ This quickstart demonstrates how to configure SOAPClient to enable WS-Security and WS-Addressing to call
+ a webservice.
+
+Running this quickstart:
+========================
+ Please refer to 'ant help-quickstarts' for prerequisites about the quickstarts and a
+ more detailed descripton of the different ways to run the quickstarts.
+
+To Run standalone mode:
+=======================
+ This quickstart will not currently run in standalone mode.
+
+To Run '.esb' archive mode:
+===========================
+ 1. Open wise-core.properties and modify the propertie 'wise.tmpDir' there to suit your environment.
+ 2. In a command terminal window in this folder ("Window1"), type 'ant deploy'.
+ 3. Open another command terminal window in this folder ("Window2"), type 'ant runtest'.
+ 4. Switch back to Application Server console to see the output from the ESB
+ 5. When finished, undeploy the application by typing 'ant undeploy'.
+
+Project file descriptions:
+==========================
+
+ jboss-esb.xml:
+ The actions in jboss-esb.xml convert the ESB message into to a webservice parameter Map, make a call
+ to the HelloWorldWS webservice, then print the response on the console. Both juddi.properties
+ and jbossesb-properties.xml are used when the service first boots up for self-registration
+ based upon the service-category and service-name found in the esb-config.xml file.
+
+ jndi.properties:
+ Needed primarily for org.jboss.soa.esb.samples.quickstart.webservice_consumer_wise.SendESBMessage that is fired by ant runtest.
+
+ wise-core.properties
+ Needed to configure SOAPClient based on Wise project.
+
+ log4j.xml:
+ Needed to configure log4J used by both the quickstart and the ESB itself. A listener needs a place to log.
+
+ src/../SendEsbMessage.java:
+ Send a message directly the the ESB internal JMS listener. Demonstrates how one can bypass the
+ gateway and speak directly to an ESB service.
+
+ src/../SendJMSMessage.java:
+ Send a message to JMS gateway listener and speak to an ESB service.
+
+ src/../MyRequestAction.java
+ Convert the message body into a webservice request parameter Map.
+
+ src/../SOAPClient
+ This class is used to make the call to the webservice. It will take the
+ parameters map that MyRequestAction set in message body, call the webservice, then place
+ the response in message.
+
+ src/../MyResponseAction.java
+ Retrieve the webservice response and display it on the console.
+
+ build.xml:
+ Targets and structure description:
+ * the classpath property pulls the jbossesb-properties.xml file and the juddi.properties file to the
+ front of the list
+ * the echoCP task is useful for making sure what you think is in your classpath is actually in your classpath
+ Usage is: ant echoCP > myclasspath.txt
+ This generates a file called myclasspath.txt which can be reviewed in a text editor
+ * the runtest task calls the org.jboss.soa.esb.samples.quickstart.webservice_consumer_wise.SendEsbMessage class and passes in an argument representing
+ the string-based message to be pused into esb message aware listener queue.
+ * the sendjms task calls the org.jboss.soa.esb.samples.quickstart.webservice_consumer_wise.SendJMSMessage class and passes in an argument representing
+ the string-based message to be pused into the queue the gateway is listening on.
Copied: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/src (from rev 24846, labs/jbossesb/trunk/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/src)
Copied: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/src/org (from rev 24846, labs/jbossesb/trunk/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/src/org)
Copied: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/src/org/jboss (from rev 24846, labs/jbossesb/trunk/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/src/org/jboss)
Copied: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/src/org/jboss/soa (from rev 24846, labs/jbossesb/trunk/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/src/org/jboss/soa)
Copied: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/src/org/jboss/soa/esb (from rev 24846, labs/jbossesb/trunk/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/src/org/jboss/soa/esb)
Copied: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/src/org/jboss/soa/esb/samples (from rev 24846, labs/jbossesb/trunk/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/src/org/jboss/soa/esb/samples)
Copied: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/src/org/jboss/soa/esb/samples/quickstart (from rev 24846, labs/jbossesb/trunk/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/src/org/jboss/soa/esb/samples/quickstart)
Copied: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/src/org/jboss/soa/esb/samples/quickstart/webservice_consumer_wise4 (from rev 24846, labs/jbossesb/trunk/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/src/org/jboss/soa/esb/samples/quickstart/webservice_consumer_wise4)
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/src/org/jboss/soa/esb/samples/quickstart/webservice_consumer_wise4/MyRequestAction.java
===================================================================
--- labs/jbossesb/trunk/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/src/org/jboss/soa/esb/samples/quickstart/webservice_consumer_wise4/MyRequestAction.java 2009-01-21 09:35:03 UTC (rev 24846)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/src/org/jboss/soa/esb/samples/quickstart/webservice_consumer_wise4/MyRequestAction.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -1,86 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2006, JBoss Inc., and others contributors as indicated
- * by the @authors tag. All rights reserved.
- * See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- * This copyrighted material is made available to anyone wishing to use,
- * modify, copy, or redistribute it subject to the terms and conditions
- * of the GNU Lesser General Public License, v. 2.1.
- * This program is distributed in the hope that it will be useful, but WITHOUT A
- * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
- * PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
- * You should have received a copy of the GNU Lesser General Public License,
- * v.2.1 along with this distribution; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
- * MA 02110-1301, USA.
- *
- * (C) 2005-2006,
- * @author JBoss Inc.
- */
-package org.jboss.soa.esb.samples.quickstart.webservice_consumer_wise4;
-
-import org.jboss.soa.esb.actions.AbstractActionLifecycle;
-import org.jboss.soa.esb.actions.ActionUtils;
-import org.jboss.soa.esb.helpers.ConfigTree;
-import org.jboss.soa.esb.message.Body;
-import org.jboss.soa.esb.message.Message;
-import java.util.HashMap;
-
-public class MyRequestAction extends AbstractActionLifecycle
-{
- protected ConfigTree _config;
-
- public MyRequestAction(ConfigTree config)
- {
- _config = config;
- }
-
- public Message noOperation(Message message)
- {
- return message;
- }
-
- /*
- * Convert the message into a webservice request map.
- */
- public Message process(Message message) throws Exception
- {
- logHeader();
- String msgBody = (String) message.getBody().get();
- HashMap requestMap = new HashMap();
-
- // add paramaters to the web service request map
- requestMap.put("toWhom", msgBody);
-
- // The "paramsLocation" property was set in jboss-esb.xml to
- // "helloworld-request-parameters"
- message.getBody().add(requestMap);
- System.out.println("Request map is: " + requestMap.toString());
-
- logFooter();
- return message;
- }
-
- public void exceptionHandler(Message message, Throwable exception)
- {
- logHeader();
- System.out.println("!ERROR!");
- System.out.println(exception.getMessage());
- System.out.println("For Message: ");
- System.out.println(message.getBody().get());
- logFooter();
- }
-
- // This makes it easier to read on the console
- private void logHeader()
- {
- System.out.println("&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&\n");
- }
-
- private void logFooter()
- {
- System.out.println("&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&\n");
- }
-
-}
\ No newline at end of file
Copied: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/src/org/jboss/soa/esb/samples/quickstart/webservice_consumer_wise4/MyRequestAction.java (from rev 24846, labs/jbossesb/trunk/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/src/org/jboss/soa/esb/samples/quickstart/webservice_consumer_wise4/MyRequestAction.java)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/src/org/jboss/soa/esb/samples/quickstart/webservice_consumer_wise4/MyRequestAction.java (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/src/org/jboss/soa/esb/samples/quickstart/webservice_consumer_wise4/MyRequestAction.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -0,0 +1,86 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and others contributors as indicated
+ * by the @authors tag. All rights reserved.
+ * See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License, v. 2.1.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+ * PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
+ * You should have received a copy of the GNU Lesser General Public License,
+ * v.2.1 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301, USA.
+ *
+ * (C) 2005-2006,
+ * @author JBoss Inc.
+ */
+package org.jboss.soa.esb.samples.quickstart.webservice_consumer_wise4;
+
+import org.jboss.soa.esb.actions.AbstractActionLifecycle;
+import org.jboss.soa.esb.actions.ActionUtils;
+import org.jboss.soa.esb.helpers.ConfigTree;
+import org.jboss.soa.esb.message.Body;
+import org.jboss.soa.esb.message.Message;
+import java.util.HashMap;
+
+public class MyRequestAction extends AbstractActionLifecycle
+{
+ protected ConfigTree _config;
+
+ public MyRequestAction(ConfigTree config)
+ {
+ _config = config;
+ }
+
+ public Message noOperation(Message message)
+ {
+ return message;
+ }
+
+ /*
+ * Convert the message into a webservice request map.
+ */
+ public Message process(Message message) throws Exception
+ {
+ logHeader();
+ String msgBody = (String) message.getBody().get();
+ HashMap requestMap = new HashMap();
+
+ // add paramaters to the web service request map
+ requestMap.put("toWhom", msgBody);
+
+ // The "paramsLocation" property was set in jboss-esb.xml to
+ // "helloworld-request-parameters"
+ message.getBody().add(requestMap);
+ System.out.println("Request map is: " + requestMap.toString());
+
+ logFooter();
+ return message;
+ }
+
+ public void exceptionHandler(Message message, Throwable exception)
+ {
+ logHeader();
+ System.out.println("!ERROR!");
+ System.out.println(exception.getMessage());
+ System.out.println("For Message: ");
+ System.out.println(message.getBody().get());
+ logFooter();
+ }
+
+ // This makes it easier to read on the console
+ private void logHeader()
+ {
+ System.out.println("&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&\n");
+ }
+
+ private void logFooter()
+ {
+ System.out.println("&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&\n");
+ }
+
+}
\ No newline at end of file
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/src/org/jboss/soa/esb/samples/quickstart/webservice_consumer_wise4/MyResponseAction.java
===================================================================
--- labs/jbossesb/trunk/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/src/org/jboss/soa/esb/samples/quickstart/webservice_consumer_wise4/MyResponseAction.java 2009-01-21 09:35:03 UTC (rev 24846)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/src/org/jboss/soa/esb/samples/quickstart/webservice_consumer_wise4/MyResponseAction.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -1,82 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2006, JBoss Inc., and others contributors as indicated
- * by the @authors tag. All rights reserved.
- * See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- * This copyrighted material is made available to anyone wishing to use,
- * modify, copy, or redistribute it subject to the terms and conditions
- * of the GNU Lesser General Public License, v. 2.1.
- * This program is distributed in the hope that it will be useful, but WITHOUT A
- * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
- * PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
- * You should have received a copy of the GNU Lesser General Public License,
- * v.2.1 along with this distribution; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
- * MA 02110-1301, USA.
- *
- * (C) 2005-2006,
- * @author JBoss Inc.
- */
-package org.jboss.soa.esb.samples.quickstart.webservice_consumer_wise4;
-
-import org.jboss.soa.esb.actions.AbstractActionLifecycle;
-import org.jboss.soa.esb.actions.ActionUtils;
-import org.jboss.soa.esb.helpers.ConfigTree;
-import org.jboss.soa.esb.message.Body;
-import org.jboss.soa.esb.message.Message;
-import java.util.Map;
-
-public class MyResponseAction extends AbstractActionLifecycle
-{
- protected ConfigTree _config;
-
- public MyResponseAction(ConfigTree config)
- {
- _config = config;
- }
-
- public Message noOperation(Message message)
- {
- return message;
- }
-
- /*
- * Retrieve and output the webservice response.
- */
- public Message process(Message message) throws Exception
- {
-
- logHeader();
-
- // The "responseLocation" property was set in jboss-esb.xml to
- // "helloworld-response"
- Map responseMsg = (Map) message.getBody().get(Body.DEFAULT_LOCATION);
- System.out.println("Response Map is: " + responseMsg);
-
- logFooter();
- return message;
- }
-
- public void exceptionHandler(Message message, Throwable exception)
- {
- logHeader();
- System.out.println("!ERROR!");
- System.out.println(exception.getMessage());
- System.out.println("For Message: ");
- System.out.println(message.getBody().get());
- logFooter();
- }
-
- // This makes it easier to read on the console
- private void logHeader()
- {
- System.out.println("&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&\n");
- }
-
- private void logFooter()
- {
- System.out.println("&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&\n");
- }
-
-}
\ No newline at end of file
Copied: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/src/org/jboss/soa/esb/samples/quickstart/webservice_consumer_wise4/MyResponseAction.java (from rev 24846, labs/jbossesb/trunk/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/src/org/jboss/soa/esb/samples/quickstart/webservice_consumer_wise4/MyResponseAction.java)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/src/org/jboss/soa/esb/samples/quickstart/webservice_consumer_wise4/MyResponseAction.java (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/src/org/jboss/soa/esb/samples/quickstart/webservice_consumer_wise4/MyResponseAction.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -0,0 +1,82 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and others contributors as indicated
+ * by the @authors tag. All rights reserved.
+ * See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License, v. 2.1.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+ * PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
+ * You should have received a copy of the GNU Lesser General Public License,
+ * v.2.1 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301, USA.
+ *
+ * (C) 2005-2006,
+ * @author JBoss Inc.
+ */
+package org.jboss.soa.esb.samples.quickstart.webservice_consumer_wise4;
+
+import org.jboss.soa.esb.actions.AbstractActionLifecycle;
+import org.jboss.soa.esb.actions.ActionUtils;
+import org.jboss.soa.esb.helpers.ConfigTree;
+import org.jboss.soa.esb.message.Body;
+import org.jboss.soa.esb.message.Message;
+import java.util.Map;
+
+public class MyResponseAction extends AbstractActionLifecycle
+{
+ protected ConfigTree _config;
+
+ public MyResponseAction(ConfigTree config)
+ {
+ _config = config;
+ }
+
+ public Message noOperation(Message message)
+ {
+ return message;
+ }
+
+ /*
+ * Retrieve and output the webservice response.
+ */
+ public Message process(Message message) throws Exception
+ {
+
+ logHeader();
+
+ // The "responseLocation" property was set in jboss-esb.xml to
+ // "helloworld-response"
+ Map responseMsg = (Map) message.getBody().get(Body.DEFAULT_LOCATION);
+ System.out.println("Response Map is: " + responseMsg);
+
+ logFooter();
+ return message;
+ }
+
+ public void exceptionHandler(Message message, Throwable exception)
+ {
+ logHeader();
+ System.out.println("!ERROR!");
+ System.out.println(exception.getMessage());
+ System.out.println("For Message: ");
+ System.out.println(message.getBody().get());
+ logFooter();
+ }
+
+ // This makes it easier to read on the console
+ private void logHeader()
+ {
+ System.out.println("&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&\n");
+ }
+
+ private void logFooter()
+ {
+ System.out.println("&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&\n");
+ }
+
+}
\ No newline at end of file
Copied: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/src/org/jboss/soa/esb/samples/quickstart/webservice_consumer_wise4/test (from rev 24846, labs/jbossesb/trunk/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/src/org/jboss/soa/esb/samples/quickstart/webservice_consumer_wise4/test)
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/src/org/jboss/soa/esb/samples/quickstart/webservice_consumer_wise4/test/SendEsbMessage.java
===================================================================
--- labs/jbossesb/trunk/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/src/org/jboss/soa/esb/samples/quickstart/webservice_consumer_wise4/test/SendEsbMessage.java 2009-01-21 09:35:03 UTC (rev 24846)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/src/org/jboss/soa/esb/samples/quickstart/webservice_consumer_wise4/test/SendEsbMessage.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -1,65 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2006, JBoss Inc., and others contributors as indicated
- * by the @authors tag. All rights reserved.
- * See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- * This copyrighted material is made available to anyone wishing to use,
- * modify, copy, or redistribute it subject to the terms and conditions
- * of the GNU Lesser General Public License, v. 2.1.
- * This program is distributed in the hope that it will be useful, but WITHOUT A
- * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
- * PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
- * You should have received a copy of the GNU Lesser General Public License,
- * v.2.1 along with this distribution; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
- * MA 02110-1301, USA.
- *
- * (C) 2005-2006,
- * @author JBoss Inc.
- */
-package org.jboss.soa.esb.samples.quickstart.webservice_consumer_wise4.test;
-
-import org.jboss.internal.soa.esb.rosetta.pooling.JmsConnectionPoolContainer;
-import org.jboss.soa.esb.client.ServiceInvoker;
-import org.jboss.soa.esb.message.Message;
-import org.jboss.soa.esb.message.format.MessageFactory;
-import org.jboss.soa.esb.message.format.MessageType;
-
-import org.jboss.soa.esb.actions.StoreMessageToFile;
-
-public class SendEsbMessage
-{
- /*
- * Send a message directly the the ESB internal JMS listener. Demonstrates
- * how one can bypass the gateway and speak directly to an ESB service.
- */
- public void sendMessage(String message) throws Exception
- {
- // Create the delivery adapter for the target service (cache it)
- System.setProperty("javax.xml.registry.ConnectionFactoryClass",
- "org.apache.ws.scout.registry.ConnectionFactoryImpl");
-
- // Create the delivery adapter for the target service (cache it)
- ServiceInvoker deliveryAdapter = new ServiceInvoker("MyServiceCategory",
- "Webserviceconsumer_wise4");
-
-
- // Create and populate the request message...
- Message requestMessage = MessageFactory.getInstance().getMessage(
- MessageType.JBOSS_XML);
-
- requestMessage.getBody().add(message);
-
- // Deliver the request message synchronously - timeout after 20
- // seconds...
- deliveryAdapter.deliverAsync(requestMessage);
- }
-
- public static void main(String args[]) throws Exception
- {
- SendEsbMessage sm = new SendEsbMessage();
- sm.sendMessage(args[0]);
- }
-
-}
Copied: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/src/org/jboss/soa/esb/samples/quickstart/webservice_consumer_wise4/test/SendEsbMessage.java (from rev 24846, labs/jbossesb/trunk/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/src/org/jboss/soa/esb/samples/quickstart/webservice_consumer_wise4/test/SendEsbMessage.java)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/src/org/jboss/soa/esb/samples/quickstart/webservice_consumer_wise4/test/SendEsbMessage.java (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/src/org/jboss/soa/esb/samples/quickstart/webservice_consumer_wise4/test/SendEsbMessage.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -0,0 +1,65 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and others contributors as indicated
+ * by the @authors tag. All rights reserved.
+ * See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License, v. 2.1.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+ * PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
+ * You should have received a copy of the GNU Lesser General Public License,
+ * v.2.1 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301, USA.
+ *
+ * (C) 2005-2006,
+ * @author JBoss Inc.
+ */
+package org.jboss.soa.esb.samples.quickstart.webservice_consumer_wise4.test;
+
+import org.jboss.internal.soa.esb.rosetta.pooling.JmsConnectionPoolContainer;
+import org.jboss.soa.esb.client.ServiceInvoker;
+import org.jboss.soa.esb.message.Message;
+import org.jboss.soa.esb.message.format.MessageFactory;
+import org.jboss.soa.esb.message.format.MessageType;
+
+import org.jboss.soa.esb.actions.StoreMessageToFile;
+
+public class SendEsbMessage
+{
+ /*
+ * Send a message directly the the ESB internal JMS listener. Demonstrates
+ * how one can bypass the gateway and speak directly to an ESB service.
+ */
+ public void sendMessage(String message) throws Exception
+ {
+ // Create the delivery adapter for the target service (cache it)
+ System.setProperty("javax.xml.registry.ConnectionFactoryClass",
+ "org.apache.ws.scout.registry.ConnectionFactoryImpl");
+
+ // Create the delivery adapter for the target service (cache it)
+ ServiceInvoker deliveryAdapter = new ServiceInvoker("MyServiceCategory",
+ "Webserviceconsumer_wise4");
+
+
+ // Create and populate the request message...
+ Message requestMessage = MessageFactory.getInstance().getMessage(
+ MessageType.JBOSS_XML);
+
+ requestMessage.getBody().add(message);
+
+ // Deliver the request message synchronously - timeout after 20
+ // seconds...
+ deliveryAdapter.deliverAsync(requestMessage);
+ }
+
+ public static void main(String args[]) throws Exception
+ {
+ SendEsbMessage sm = new SendEsbMessage();
+ sm.sendMessage(args[0]);
+ }
+
+}
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/src/org/jboss/soa/esb/samples/quickstart/webservice_consumer_wise4/test/SendJMSMessage.java
===================================================================
--- labs/jbossesb/trunk/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/src/org/jboss/soa/esb/samples/quickstart/webservice_consumer_wise4/test/SendJMSMessage.java 2009-01-21 09:35:03 UTC (rev 24846)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/src/org/jboss/soa/esb/samples/quickstart/webservice_consumer_wise4/test/SendJMSMessage.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -1,86 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2006, JBoss Inc., and others contributors as indicated
- * by the @authors tag. All rights reserved.
- * See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- * This copyrighted material is made available to anyone wishing to use,
- * modify, copy, or redistribute it subject to the terms and conditions
- * of the GNU Lesser General Public License, v. 2.1.
- * This program is distributed in the hope that it will be useful, but WITHOUT A
- * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
- * PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
- * You should have received a copy of the GNU Lesser General Public License,
- * v.2.1 along with this distribution; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
- * MA 02110-1301, USA.
- *
- * (C) 2005-2006,
- * @author JBoss Inc.
- */
-package org.jboss.soa.esb.samples.quickstart.webservice_consumer_wise4.test;
-
-import java.util.Properties;
-
-import javax.jms.JMSException;
-import javax.jms.ObjectMessage;
-import javax.jms.Queue;
-import javax.jms.QueueConnection;
-import javax.jms.QueueConnectionFactory;
-import javax.jms.QueueSender;
-import javax.jms.QueueSession;
-import javax.naming.Context;
-import javax.naming.InitialContext;
-import javax.naming.NamingException;
-
-public class SendJMSMessage {
- QueueConnection conn;
- QueueSession session;
- Queue que;
-
-
- public void setupConnection() throws JMSException, NamingException
- {
- Properties properties1 = new Properties();
- properties1.put(Context.INITIAL_CONTEXT_FACTORY,
- "org.jnp.interfaces.NamingContextFactory");
- properties1.put(Context.URL_PKG_PREFIXES,
- "org.jboss.naming:org.jnp.interfaces");
- properties1.put(Context.PROVIDER_URL, "jnp://127.0.0.1:1099");
- InitialContext iniCtx = new InitialContext(properties1);
-
- Object tmp = iniCtx.lookup("ConnectionFactory");
- QueueConnectionFactory qcf = (QueueConnectionFactory) tmp;
- conn = qcf.createQueueConnection();
- que = (Queue) iniCtx.lookup("queue/quickstart_webservice_consumer_wise4_Request_gw");
- session = conn.createQueueSession(false, QueueSession.AUTO_ACKNOWLEDGE);
- conn.start();
- System.out.println("Connection Started");
- }
-
- public void stop() throws JMSException
- {
- conn.stop();
- session.close();
- conn.close();
- }
-
- public void sendAMessage(String msg) throws JMSException {
-
- QueueSender send = session.createSender(que);
- ObjectMessage tm = session.createObjectMessage(msg);
- send.send(tm);
- send.close();
- }
-
-
- public static void main(String args[]) throws Exception
- {
- SendJMSMessage sm = new SendJMSMessage();
- sm.setupConnection();
- sm.sendAMessage(args[0]);
- sm.stop();
-
- }
-
-}
Copied: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/src/org/jboss/soa/esb/samples/quickstart/webservice_consumer_wise4/test/SendJMSMessage.java (from rev 24846, labs/jbossesb/trunk/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/src/org/jboss/soa/esb/samples/quickstart/webservice_consumer_wise4/test/SendJMSMessage.java)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/src/org/jboss/soa/esb/samples/quickstart/webservice_consumer_wise4/test/SendJMSMessage.java (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/src/org/jboss/soa/esb/samples/quickstart/webservice_consumer_wise4/test/SendJMSMessage.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -0,0 +1,86 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and others contributors as indicated
+ * by the @authors tag. All rights reserved.
+ * See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License, v. 2.1.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+ * PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
+ * You should have received a copy of the GNU Lesser General Public License,
+ * v.2.1 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301, USA.
+ *
+ * (C) 2005-2006,
+ * @author JBoss Inc.
+ */
+package org.jboss.soa.esb.samples.quickstart.webservice_consumer_wise4.test;
+
+import java.util.Properties;
+
+import javax.jms.JMSException;
+import javax.jms.ObjectMessage;
+import javax.jms.Queue;
+import javax.jms.QueueConnection;
+import javax.jms.QueueConnectionFactory;
+import javax.jms.QueueSender;
+import javax.jms.QueueSession;
+import javax.naming.Context;
+import javax.naming.InitialContext;
+import javax.naming.NamingException;
+
+public class SendJMSMessage {
+ QueueConnection conn;
+ QueueSession session;
+ Queue que;
+
+
+ public void setupConnection() throws JMSException, NamingException
+ {
+ Properties properties1 = new Properties();
+ properties1.put(Context.INITIAL_CONTEXT_FACTORY,
+ "org.jnp.interfaces.NamingContextFactory");
+ properties1.put(Context.URL_PKG_PREFIXES,
+ "org.jboss.naming:org.jnp.interfaces");
+ properties1.put(Context.PROVIDER_URL, "jnp://127.0.0.1:1099");
+ InitialContext iniCtx = new InitialContext(properties1);
+
+ Object tmp = iniCtx.lookup("ConnectionFactory");
+ QueueConnectionFactory qcf = (QueueConnectionFactory) tmp;
+ conn = qcf.createQueueConnection();
+ que = (Queue) iniCtx.lookup("queue/quickstart_webservice_consumer_wise4_Request_gw");
+ session = conn.createQueueSession(false, QueueSession.AUTO_ACKNOWLEDGE);
+ conn.start();
+ System.out.println("Connection Started");
+ }
+
+ public void stop() throws JMSException
+ {
+ conn.stop();
+ session.close();
+ conn.close();
+ }
+
+ public void sendAMessage(String msg) throws JMSException {
+
+ QueueSender send = session.createSender(que);
+ ObjectMessage tm = session.createObjectMessage(msg);
+ send.send(tm);
+ send.close();
+ }
+
+
+ public static void main(String args[]) throws Exception
+ {
+ SendJMSMessage sm = new SendJMSMessage();
+ sm.setupConnection();
+ sm.sendAMessage(args[0]);
+ sm.stop();
+
+ }
+
+}
Copied: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/war (from rev 24846, labs/jbossesb/trunk/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/war)
Copied: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/war/lib (from rev 24846, labs/jbossesb/trunk/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/war/lib)
Copied: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/war/lib/ext (from rev 24846, labs/jbossesb/trunk/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/war/lib/ext)
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/war/lib/ext/jbossws-client.jar
===================================================================
(Binary files differ)
Copied: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/war/lib/ext/jbossws-client.jar (from rev 24846, labs/jbossesb/trunk/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/war/lib/ext/jbossws-client.jar)
===================================================================
(Binary files differ)
Copied: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/war/resources (from rev 24846, labs/jbossesb/trunk/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/war/resources)
Copied: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/war/resources/WEB-INF (from rev 24846, labs/jbossesb/trunk/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/war/resources/WEB-INF)
Copied: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/war/resources/WEB-INF/classes (from rev 24846, labs/jbossesb/trunk/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/war/resources/WEB-INF/classes)
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/war/resources/WEB-INF/handlers.xml
===================================================================
--- labs/jbossesb/trunk/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/war/resources/WEB-INF/handlers.xml 2009-01-21 09:35:03 UTC (rev 24846)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/war/resources/WEB-INF/handlers.xml 2009-01-21 15:38:08 UTC (rev 24850)
@@ -1,16 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<handler-chains xmlns="http://java.sun.com/xml/ns/javaee"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xmlns:ns1="http://org.jboss.ws/jaxws/samples/logicalhandler"
- xsi:schemaLocation="http://java.sun.com/xml/ns/javaee javaee_web_services_1_2.xsd">
-
- <handler-chain>
- <protocol-bindings>##SOAP11_HTTP</protocol-bindings>
- <handler>
- <handler-name>WSAddressing Handler</handler-name>
- <handler-class>org.jboss.ws.extensions.addressing.jaxws.WSAddressingServerHandler</handler-class>
- </handler>
- </handler-chain>
-
-</handler-chains>
\ No newline at end of file
Copied: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/war/resources/WEB-INF/handlers.xml (from rev 24846, labs/jbossesb/trunk/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/war/resources/WEB-INF/handlers.xml)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/war/resources/WEB-INF/handlers.xml (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/war/resources/WEB-INF/handlers.xml 2009-01-21 15:38:08 UTC (rev 24850)
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<handler-chains xmlns="http://java.sun.com/xml/ns/javaee"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xmlns:ns1="http://org.jboss.ws/jaxws/samples/logicalhandler"
+ xsi:schemaLocation="http://java.sun.com/xml/ns/javaee javaee_web_services_1_2.xsd">
+
+ <handler-chain>
+ <protocol-bindings>##SOAP11_HTTP</protocol-bindings>
+ <handler>
+ <handler-name>WSAddressing Handler</handler-name>
+ <handler-class>org.jboss.ws.extensions.addressing.jaxws.WSAddressingServerHandler</handler-class>
+ </handler>
+ </handler-chain>
+
+</handler-chains>
\ No newline at end of file
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/war/resources/WEB-INF/jboss-wsse-server.xml
===================================================================
--- labs/jbossesb/trunk/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/war/resources/WEB-INF/jboss-wsse-server.xml 2009-01-21 09:35:03 UTC (rev 24846)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/war/resources/WEB-INF/jboss-wsse-server.xml 2009-01-21 15:38:08 UTC (rev 24850)
@@ -1,16 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<jboss-ws-security xmlns="http://www.jboss.com/ws-security/config" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.jboss.com/ws-security/config http://www.jboss.com/ws-security/schema/jboss-ws-security_1_0.xsd">
- <key-store-file>WEB-INF/wsse.keystore</key-store-file>
- <key-store-password>jbossws</key-store-password>
- <trust-store-file>WEB-INF/wsse.truststore</trust-store-file>
- <trust-store-password>jbossws</trust-store-password>
-
- <config>
- <sign type="x509v3" alias="wsse"/>
- <requires>
- <signature/>
- </requires>
- </config>
-</jboss-ws-security>
\ No newline at end of file
Copied: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/war/resources/WEB-INF/jboss-wsse-server.xml (from rev 24846, labs/jbossesb/trunk/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/war/resources/WEB-INF/jboss-wsse-server.xml)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/war/resources/WEB-INF/jboss-wsse-server.xml (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/war/resources/WEB-INF/jboss-wsse-server.xml 2009-01-21 15:38:08 UTC (rev 24850)
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<jboss-ws-security xmlns="http://www.jboss.com/ws-security/config" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://www.jboss.com/ws-security/config http://www.jboss.com/ws-security/schema/jboss-ws-security_1_0.xsd">
+ <key-store-file>WEB-INF/wsse.keystore</key-store-file>
+ <key-store-password>jbossws</key-store-password>
+ <trust-store-file>WEB-INF/wsse.truststore</trust-store-file>
+ <trust-store-password>jbossws</trust-store-password>
+
+ <config>
+ <sign type="x509v3" alias="wsse"/>
+ <requires>
+ <signature/>
+ </requires>
+ </config>
+</jboss-ws-security>
\ No newline at end of file
Copied: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/war/resources/WEB-INF/lib (from rev 24846, labs/jbossesb/trunk/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/war/resources/WEB-INF/lib)
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/war/resources/WEB-INF/web.xml
===================================================================
--- labs/jbossesb/trunk/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/war/resources/WEB-INF/web.xml 2009-01-21 09:35:03 UTC (rev 24846)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/war/resources/WEB-INF/web.xml 2009-01-21 15:38:08 UTC (rev 24850)
@@ -1,15 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-
-<web-app xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd" version="2.4">
- <servlet>
- <servlet-name>HelloWorldWS</servlet-name>
- <servlet-class>org.jboss.soa.esb.samples.quickstart.webservice_consumer_wsse_wsa.HelloWorldWS</servlet-class>
- </servlet>
-
- <servlet-mapping>
- <servlet-name>HelloWorldWS</servlet-name>
- <url-pattern>/HelloWorldWS</url-pattern>
- </servlet-mapping>
-
-</web-app>
Copied: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/war/resources/WEB-INF/web.xml (from rev 24846, labs/jbossesb/trunk/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/war/resources/WEB-INF/web.xml)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/war/resources/WEB-INF/web.xml (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/war/resources/WEB-INF/web.xml 2009-01-21 15:38:08 UTC (rev 24850)
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+
+<web-app xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd" version="2.4">
+ <servlet>
+ <servlet-name>HelloWorldWS</servlet-name>
+ <servlet-class>org.jboss.soa.esb.samples.quickstart.webservice_consumer_wsse_wsa.HelloWorldWS</servlet-class>
+ </servlet>
+
+ <servlet-mapping>
+ <servlet-name>HelloWorldWS</servlet-name>
+ <url-pattern>/HelloWorldWS</url-pattern>
+ </servlet-mapping>
+
+</web-app>
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/war/resources/WEB-INF/wsse.keystore
===================================================================
(Binary files differ)
Copied: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/war/resources/WEB-INF/wsse.keystore (from rev 24846, labs/jbossesb/trunk/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/war/resources/WEB-INF/wsse.keystore)
===================================================================
(Binary files differ)
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/war/resources/WEB-INF/wsse.truststore
===================================================================
(Binary files differ)
Copied: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/war/resources/WEB-INF/wsse.truststore (from rev 24846, labs/jbossesb/trunk/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/war/resources/WEB-INF/wsse.truststore)
===================================================================
(Binary files differ)
Copied: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/war/src (from rev 24846, labs/jbossesb/trunk/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/war/src)
Copied: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/war/src/org (from rev 24846, labs/jbossesb/trunk/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/war/src/org)
Copied: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/war/src/org/jboss (from rev 24846, labs/jbossesb/trunk/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/war/src/org/jboss)
Copied: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/war/src/org/jboss/soa (from rev 24846, labs/jbossesb/trunk/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/war/src/org/jboss/soa)
Copied: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/war/src/org/jboss/soa/esb (from rev 24846, labs/jbossesb/trunk/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/war/src/org/jboss/soa/esb)
Copied: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/war/src/org/jboss/soa/esb/samples (from rev 24846, labs/jbossesb/trunk/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/war/src/org/jboss/soa/esb/samples)
Copied: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/war/src/org/jboss/soa/esb/samples/quickstart (from rev 24846, labs/jbossesb/trunk/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/war/src/org/jboss/soa/esb/samples/quickstart)
Copied: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/war/src/org/jboss/soa/esb/samples/quickstart/webservice_consumer_wsse_wsa (from rev 24846, labs/jbossesb/trunk/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/war/src/org/jboss/soa/esb/samples/quickstart/webservice_consumer_wsse_wsa)
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/war/src/org/jboss/soa/esb/samples/quickstart/webservice_consumer_wsse_wsa/HelloWorldWS.java
===================================================================
--- labs/jbossesb/trunk/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/war/src/org/jboss/soa/esb/samples/quickstart/webservice_consumer_wsse_wsa/HelloWorldWS.java 2009-01-21 09:35:03 UTC (rev 24846)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/war/src/org/jboss/soa/esb/samples/quickstart/webservice_consumer_wsse_wsa/HelloWorldWS.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -1,52 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2006, JBoss Inc., and others contributors as indicated
- * by the @authors tag. All rights reserved.
- * See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- * This copyrighted material is made available to anyone wishing to use,
- * modify, copy, or redistribute it subject to the terms and conditions
- * of the GNU Lesser General Public License, v. 2.1.
- * This program is distributed in the hope that it will be useful, but WITHOUT A
- * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
- * PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
- * You should have received a copy of the GNU Lesser General Public License,
- * v.2.1 along with this distribution; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
- * MA 02110-1301, USA.
- *
- * (C) 2005-2006,
- * @author JBoss Inc.
- */
-package org.jboss.soa.esb.samples.quickstart.webservice_consumer_wsse_wsa;
-
-import javax.jws.HandlerChain;
-import javax.jws.WebMethod;
-import javax.jws.WebResult;
-import javax.jws.WebService;
-import javax.jws.soap.SOAPBinding;
-import javax.jws.WebParam;
-import org.jboss.ws.annotation.EndpointConfig;
-
-/**
- * The endpoint implementation. This is currently based on the jbossws
- * native stack implementation, thus uses the pre-defined WS-Security
- * endpoint configuration through the @EndpointConfig.
- * The WS-Addressing support is triggered manually adding its handler
- * through the provided WEB-INF/handlers.xml file.
- *
- * @author stefano.maestri at javalinux.it
- *
- */
- at WebService(name = "HelloWorld", targetNamespace = "http://wise/wssewsa/helloworld")
- at SOAPBinding( style = SOAPBinding.Style.DOCUMENT, parameterStyle = SOAPBinding.ParameterStyle.BARE )
- at EndpointConfig(configName = "Standard WSSecurity Endpoint")
- at HandlerChain(file = "WEB-INF/handlers.xml")
-public class HelloWorldWS {
- @WebMethod
- @WebResult( name = "result" )
- public String sayHello( @WebParam( name = "toWhom" ) String toWhom ) {
- return "Hello World Greeting for '" + toWhom + "' on " + new java.util.Date();
- }
-}
-
Copied: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/war/src/org/jboss/soa/esb/samples/quickstart/webservice_consumer_wsse_wsa/HelloWorldWS.java (from rev 24846, labs/jbossesb/trunk/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/war/src/org/jboss/soa/esb/samples/quickstart/webservice_consumer_wsse_wsa/HelloWorldWS.java)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/war/src/org/jboss/soa/esb/samples/quickstart/webservice_consumer_wsse_wsa/HelloWorldWS.java (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/war/src/org/jboss/soa/esb/samples/quickstart/webservice_consumer_wsse_wsa/HelloWorldWS.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -0,0 +1,52 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and others contributors as indicated
+ * by the @authors tag. All rights reserved.
+ * See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License, v. 2.1.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+ * PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
+ * You should have received a copy of the GNU Lesser General Public License,
+ * v.2.1 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301, USA.
+ *
+ * (C) 2005-2006,
+ * @author JBoss Inc.
+ */
+package org.jboss.soa.esb.samples.quickstart.webservice_consumer_wsse_wsa;
+
+import javax.jws.HandlerChain;
+import javax.jws.WebMethod;
+import javax.jws.WebResult;
+import javax.jws.WebService;
+import javax.jws.soap.SOAPBinding;
+import javax.jws.WebParam;
+import org.jboss.ws.annotation.EndpointConfig;
+
+/**
+ * The endpoint implementation. This is currently based on the jbossws
+ * native stack implementation, thus uses the pre-defined WS-Security
+ * endpoint configuration through the @EndpointConfig.
+ * The WS-Addressing support is triggered manually adding its handler
+ * through the provided WEB-INF/handlers.xml file.
+ *
+ * @author stefano.maestri at javalinux.it
+ *
+ */
+ at WebService(name = "HelloWorld", targetNamespace = "http://wise/wssewsa/helloworld")
+ at SOAPBinding( style = SOAPBinding.Style.DOCUMENT, parameterStyle = SOAPBinding.ParameterStyle.BARE )
+ at EndpointConfig(configName = "Standard WSSecurity Endpoint")
+ at HandlerChain(file = "WEB-INF/handlers.xml")
+public class HelloWorldWS {
+ @WebMethod
+ @WebResult( name = "result" )
+ public String sayHello( @WebParam( name = "toWhom" ) String toWhom ) {
+ return "Hello World Greeting for '" + toWhom + "' on " + new java.util.Date();
+ }
+}
+
Copied: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/war/view (from rev 24846, labs/jbossesb/trunk/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/war/view)
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/war/view/index.jsp
===================================================================
--- labs/jbossesb/trunk/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/war/view/index.jsp 2009-01-21 09:35:03 UTC (rev 24846)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/war/view/index.jsp 2009-01-21 15:38:08 UTC (rev 24850)
@@ -1,9 +0,0 @@
-<html>
- <body>
- This is just a place holder.<br>
- Verify the that the WS has been deployed by hitting
- <a href="http://localhost:8080/jbossws">
- http://localhost:8080/jbossws
- </a>
- </body>
-</html>
\ No newline at end of file
Copied: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/war/view/index.jsp (from rev 24846, labs/jbossesb/trunk/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/war/view/index.jsp)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/war/view/index.jsp (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_consumer_wise_wsse_wsa/war/view/index.jsp 2009-01-21 15:38:08 UTC (rev 24850)
@@ -0,0 +1,9 @@
+<html>
+ <body>
+ This is just a place holder.<br>
+ Verify the that the WS has been deployed by hitting
+ <a href="http://localhost:8080/jbossws">
+ http://localhost:8080/jbossws
+ </a>
+ </body>
+</html>
\ No newline at end of file
Modified: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_mtom/src/org/jboss/soa/esb/samples/quickstart/webservicemtom/webservice/client/MTOMClient.java
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_mtom/src/org/jboss/soa/esb/samples/quickstart/webservicemtom/webservice/client/MTOMClient.java 2009-01-21 14:47:17 UTC (rev 24849)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_mtom/src/org/jboss/soa/esb/samples/quickstart/webservicemtom/webservice/client/MTOMClient.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -71,7 +71,7 @@
URL wsdlURL = new URL("http://localhost:8080/contract/contract.jsp?serviceCat=MyServiceCategory&serviceName=MyMTOMService&protocol=http");
//URL wsdlURL = new URL("http://127.0.0.1:8080/Quickstart_webservice_mtom/MTOMService?wsdl");
- Service service = Service.create(wsdlURL, serviceName);
+ WeberviceInfo service = WeberviceInfo.create(wsdlURL, serviceName);
mtomEndpoint = service.getPort(MTOMEndpoint.class);
// enable MTOM
Modified: labs/jbossesb/workspace/mlittle/legstar/product/services/jbpm/build.xml
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/services/jbpm/build.xml 2009-01-21 14:47:17 UTC (rev 24849)
+++ labs/jbossesb/workspace/mlittle/legstar/product/services/jbpm/build.xml 2009-01-21 15:38:08 UTC (rev 24850)
@@ -8,6 +8,9 @@
<ant dir="ant-task">
<property name="jbpm.jar.file" location="build/jbpm-ant.jar"/>
</ant>
+ <copy tofile="build/asm.jar">
+ <fileset dir="${esb.main.lib}" includes="asm*.jar"/>
+ </copy>
</target>
<target name="test" depends="base.test"/>
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/services/jbpm/lib/ext/asm.jar
===================================================================
(Binary files differ)
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/services/jbpm/lib/ext/asm.jar.license.txt
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/services/jbpm/lib/ext/asm.jar.license.txt 2009-01-21 14:47:17 UTC (rev 24849)
+++ labs/jbossesb/workspace/mlittle/legstar/product/services/jbpm/lib/ext/asm.jar.license.txt 2009-01-21 15:38:08 UTC (rev 24850)
@@ -1,27 +0,0 @@
-The BSD License
-
- The following is a BSD license template. To generate your own license, change the values of OWNER, ORGANIZATION and YEAR from their original values as given here, and substitute your own.
-
- Note: The advertising clause in the license appearing on BSD Unix files was officially rescinded by the Director of the Office of Technology Licensing of the University of California on July 22 1999. He states that clause 3 is "hereby deleted in its entirety."
-
- Note the new BSD license is thus equivalent to the MIT License, except for the no-endorsement final clause.
-
-<OWNER> = Regents of the University of California
-<ORGANIZATION> = University of California, Berkeley
-<YEAR> = 1998
-
-In the original BSD license, both occurrences of the phrase "COPYRIGHT HOLDERS AND CONTRIBUTORS" in the disclaimer read "REGENTS AND CONTRIBUTORS".
-
-Here is the license template:
-
-Copyright (c) <YEAR>, <OWNER>
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
-
- * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
- * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
- * Neither the name of the <ORGANIZATION> nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/services/jbpm/lib/ext/build-time/activation.jar
===================================================================
(Binary files differ)
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/services/jbpm/lib/ext/build-time/activation.jar.license.txt
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/services/jbpm/lib/ext/build-time/activation.jar.license.txt 2009-01-21 14:47:17 UTC (rev 24849)
+++ labs/jbossesb/workspace/mlittle/legstar/product/services/jbpm/lib/ext/build-time/activation.jar.license.txt 2009-01-21 15:38:08 UTC (rev 24850)
@@ -1,384 +0,0 @@
-COMMON DEVELOPMENT AND DISTRIBUTION LICENSE (CDDL) Version 1.0
-
-
- 1. Definitions.
-
- 1.1. "Contributor" means each individual or entity that
- creates or contributes to the creation of Modifications.
-
- 1.2. "Contributor Version" means the combination of the
- Original Software, prior Modifications used by a
- Contributor (if any), and the Modifications made by that
- particular Contributor.
-
- 1.3. "Covered Software" means (a) the Original Software, or
- (b) Modifications, or (c) the combination of files
- containing Original Software with files containing
- Modifications, in each case including portions thereof.
-
- 1.4. "Executable" means the Covered Software in any form
- other than Source Code.
-
- 1.5. "Initial Developer" means the individual or entity
- that first makes Original Software available under this
- License.
-
- 1.6. "Larger Work" means a work which combines Covered
- Software or portions thereof with code not governed by the
- terms of this License.
-
- 1.7. "License" means this document.
-
- 1.8. "Licensable" means having the right to grant, to the
- maximum extent possible, whether at the time of the initial
- grant or subsequently acquired, any and all of the rights
- conveyed herein.
-
- 1.9. "Modifications" means the Source Code and Executable
- form of any of the following:
-
- A. Any file that results from an addition to,
- deletion from or modification of the contents of a
- file containing Original Software or previous
- Modifications;
-
- B. Any new file that contains any part of the
- Original Software or previous Modification; or
-
- C. Any new file that is contributed or otherwise made
- available under the terms of this License.
-
- 1.10. "Original Software" means the Source Code and
- Executable form of computer software code that is
- originally released under this License.
-
- 1.11. "Patent Claims" means any patent claim(s), now owned
- or hereafter acquired, including without limitation,
- method, process, and apparatus claims, in any patent
- Licensable by grantor.
-
- 1.12. "Source Code" means (a) the common form of computer
- software code in which modifications are made and (b)
- associated documentation included in or with such code.
-
- 1.13. "You" (or "Your") means an individual or a legal
- entity exercising rights under, and complying with all of
- the terms of, this License. For legal entities, "You"
- includes any entity which controls, is controlled by, or is
- under common control with You. For purposes of this
- definition, "control" means (a) the power, direct or
- indirect, to cause the direction or management of such
- entity, whether by contract or otherwise, or (b) ownership
- of more than fifty percent (50%) of the outstanding shares
- or beneficial ownership of such entity.
-
- 2. License Grants.
-
- 2.1. The Initial Developer Grant.
-
- Conditioned upon Your compliance with Section 3.1 below and
- subject to third party intellectual property claims, the
- Initial Developer hereby grants You a world-wide,
- royalty-free, non-exclusive license:
-
- (a) under intellectual property rights (other than
- patent or trademark) Licensable by Initial Developer,
- to use, reproduce, modify, display, perform,
- sublicense and distribute the Original Software (or
- portions thereof), with or without Modifications,
- and/or as part of a Larger Work; and
-
- (b) under Patent Claims infringed by the making,
- using or selling of Original Software, to make, have
- made, use, practice, sell, and offer for sale, and/or
- otherwise dispose of the Original Software (or
- portions thereof).
-
- (c) The licenses granted in Sections 2.1(a) and (b)
- are effective on the date Initial Developer first
- distributes or otherwise makes the Original Software
- available to a third party under the terms of this
- License.
-
- (d) Notwithstanding Section 2.1(b) above, no patent
- license is granted: (1) for code that You delete from
- the Original Software, or (2) for infringements
- caused by: (i) the modification of the Original
- Software, or (ii) the combination of the Original
- Software with other software or devices.
-
- 2.2. Contributor Grant.
-
- Conditioned upon Your compliance with Section 3.1 below and
- subject to third party intellectual property claims, each
- Contributor hereby grants You a world-wide, royalty-free,
- non-exclusive license:
-
- (a) under intellectual property rights (other than
- patent or trademark) Licensable by Contributor to
- use, reproduce, modify, display, perform, sublicense
- and distribute the Modifications created by such
- Contributor (or portions thereof), either on an
- unmodified basis, with other Modifications, as
- Covered Software and/or as part of a Larger Work; and
-
-
- (b) under Patent Claims infringed by the making,
- using, or selling of Modifications made by that
- Contributor either alone and/or in combination with
- its Contributor Version (or portions of such
- combination), to make, use, sell, offer for sale,
- have made, and/or otherwise dispose of: (1)
- Modifications made by that Contributor (or portions
- thereof); and (2) the combination of Modifications
- made by that Contributor with its Contributor Version
- (or portions of such combination).
-
- (c) The licenses granted in Sections 2.2(a) and
- 2.2(b) are effective on the date Contributor first
- distributes or otherwise makes the Modifications
- available to a third party.
-
- (d) Notwithstanding Section 2.2(b) above, no patent
- license is granted: (1) for any code that Contributor
- has deleted from the Contributor Version; (2) for
- infringements caused by: (i) third party
- modifications of Contributor Version, or (ii) the
- combination of Modifications made by that Contributor
- with other software (except as part of the
- Contributor Version) or other devices; or (3) under
- Patent Claims infringed by Covered Software in the
- absence of Modifications made by that Contributor.
-
- 3. Distribution Obligations.
-
- 3.1. Availability of Source Code.
-
- Any Covered Software that You distribute or otherwise make
- available in Executable form must also be made available in
- Source Code form and that Source Code form must be
- distributed only under the terms of this License. You must
- include a copy of this License with every copy of the
- Source Code form of the Covered Software You distribute or
- otherwise make available. You must inform recipients of any
- such Covered Software in Executable form as to how they can
- obtain such Covered Software in Source Code form in a
- reasonable manner on or through a medium customarily used
- for software exchange.
-
- 3.2. Modifications.
-
- The Modifications that You create or to which You
- contribute are governed by the terms of this License. You
- represent that You believe Your Modifications are Your
- original creation(s) and/or You have sufficient rights to
- grant the rights conveyed by this License.
-
- 3.3. Required Notices.
-
- You must include a notice in each of Your Modifications
- that identifies You as the Contributor of the Modification.
- You may not remove or alter any copyright, patent or
- trademark notices contained within the Covered Software, or
- any notices of licensing or any descriptive text giving
- attribution to any Contributor or the Initial Developer.
-
- 3.4. Application of Additional Terms.
-
- You may not offer or impose any terms on any Covered
- Software in Source Code form that alters or restricts the
- applicable version of this License or the recipients"
- rights hereunder. You may choose to offer, and to charge a
- fee for, warranty, support, indemnity or liability
- obligations to one or more recipients of Covered Software.
- However, you may do so only on Your own behalf, and not on
- behalf of the Initial Developer or any Contributor. You
- must make it absolutely clear that any such warranty,
- support, indemnity or liability obligation is offered by
- You alone, and You hereby agree to indemnify the Initial
- Developer and every Contributor for any liability incurred
- by the Initial Developer or such Contributor as a result of
- warranty, support, indemnity or liability terms You offer.
-
-
- 3.5. Distribution of Executable Versions.
-
- You may distribute the Executable form of the Covered
- Software under the terms of this License or under the terms
- of a license of Your choice, which may contain terms
- different from this License, provided that You are in
- compliance with the terms of this License and that the
- license for the Executable form does not attempt to limit
- or alter the recipient"s rights in the Source Code form
- from the rights set forth in this License. If You
- distribute the Covered Software in Executable form under a
- different license, You must make it absolutely clear that
- any terms which differ from this License are offered by You
- alone, not by the Initial Developer or Contributor. You
- hereby agree to indemnify the Initial Developer and every
- Contributor for any liability incurred by the Initial
- Developer or such Contributor as a result of any such terms
- You offer.
-
- 3.6. Larger Works.
-
- You may create a Larger Work by combining Covered Software
- with other code not governed by the terms of this License
- and distribute the Larger Work as a single product. In such
- a case, You must make sure the requirements of this License
- are fulfilled for the Covered Software.
-
- 4. Versions of the License.
-
- 4.1. New Versions.
-
- Sun Microsystems, Inc. is the initial license steward and
- may publish revised and/or new versions of this License
- from time to time. Each version will be given a
- distinguishing version number. Except as provided in
- Section 4.3, no one other than the license steward has the
- right to modify this License.
-
- 4.2. Effect of New Versions.
-
- You may always continue to use, distribute or otherwise
- make the Covered Software available under the terms of the
- version of the License under which You originally received
- the Covered Software. If the Initial Developer includes a
- notice in the Original Software prohibiting it from being
- distributed or otherwise made available under any
- subsequent version of the License, You must distribute and
- make the Covered Software available under the terms of the
- version of the License under which You originally received
- the Covered Software. Otherwise, You may also choose to
- use, distribute or otherwise make the Covered Software
- available under the terms of any subsequent version of the
- License published by the license steward.
-
- 4.3. Modified Versions.
-
- When You are an Initial Developer and You want to create a
- new license for Your Original Software, You may create and
- use a modified version of this License if You: (a) rename
- the license and remove any references to the name of the
- license steward (except to note that the license differs
- from this License); and (b) otherwise make it clear that
- the license contains terms which differ from this License.
-
-
- 5. DISCLAIMER OF WARRANTY.
-
- COVERED SOFTWARE IS PROVIDED UNDER THIS LICENSE ON AN "AS IS"
- BASIS, WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED,
- INCLUDING, WITHOUT LIMITATION, WARRANTIES THAT THE COVERED
- SOFTWARE IS FREE OF DEFECTS, MERCHANTABLE, FIT FOR A PARTICULAR
- PURPOSE OR NON-INFRINGING. THE ENTIRE RISK AS TO THE QUALITY AND
- PERFORMANCE OF THE COVERED SOFTWARE IS WITH YOU. SHOULD ANY
- COVERED SOFTWARE PROVE DEFECTIVE IN ANY RESPECT, YOU (NOT THE
- INITIAL DEVELOPER OR ANY OTHER CONTRIBUTOR) ASSUME THE COST OF
- ANY NECESSARY SERVICING, REPAIR OR CORRECTION. THIS DISCLAIMER OF
- WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS LICENSE. NO USE OF
- ANY COVERED SOFTWARE IS AUTHORIZED HEREUNDER EXCEPT UNDER THIS
- DISCLAIMER.
-
- 6. TERMINATION.
-
- 6.1. This License and the rights granted hereunder will
- terminate automatically if You fail to comply with terms
- herein and fail to cure such breach within 30 days of
- becoming aware of the breach. Provisions which, by their
- nature, must remain in effect beyond the termination of
- this License shall survive.
-
- 6.2. If You assert a patent infringement claim (excluding
- declaratory judgment actions) against Initial Developer or
- a Contributor (the Initial Developer or Contributor against
- whom You assert such claim is referred to as "Participant")
- alleging that the Participant Software (meaning the
- Contributor Version where the Participant is a Contributor
- or the Original Software where the Participant is the
- Initial Developer) directly or indirectly infringes any
- patent, then any and all rights granted directly or
- indirectly to You by such Participant, the Initial
- Developer (if the Initial Developer is not the Participant)
- and all Contributors under Sections 2.1 and/or 2.2 of this
- License shall, upon 60 days notice from Participant
- terminate prospectively and automatically at the expiration
- of such 60 day notice period, unless if within such 60 day
- period You withdraw Your claim with respect to the
- Participant Software against such Participant either
- unilaterally or pursuant to a written agreement with
- Participant.
-
- 6.3. In the event of termination under Sections 6.1 or 6.2
- above, all end user licenses that have been validly granted
- by You or any distributor hereunder prior to termination
- (excluding licenses granted to You by any distributor)
- shall survive termination.
-
- 7. LIMITATION OF LIABILITY.
-
- UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, WHETHER TORT
- (INCLUDING NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL YOU, THE
- INITIAL DEVELOPER, ANY OTHER CONTRIBUTOR, OR ANY DISTRIBUTOR OF
- COVERED SOFTWARE, OR ANY SUPPLIER OF ANY OF SUCH PARTIES, BE
- LIABLE TO ANY PERSON FOR ANY INDIRECT, SPECIAL, INCIDENTAL, OR
- CONSEQUENTIAL DAMAGES OF ANY CHARACTER INCLUDING, WITHOUT
- LIMITATION, DAMAGES FOR LOST PROFITS, LOSS OF GOODWILL, WORK
- STOPPAGE, COMPUTER FAILURE OR MALFUNCTION, OR ANY AND ALL OTHER
- COMMERCIAL DAMAGES OR LOSSES, EVEN IF SUCH PARTY SHALL HAVE BEEN
- INFORMED OF THE POSSIBILITY OF SUCH DAMAGES. THIS LIMITATION OF
- LIABILITY SHALL NOT APPLY TO LIABILITY FOR DEATH OR PERSONAL
- INJURY RESULTING FROM SUCH PARTY"S NEGLIGENCE TO THE EXTENT
- APPLICABLE LAW PROHIBITS SUCH LIMITATION. SOME JURISDICTIONS DO
- NOT ALLOW THE EXCLUSION OR LIMITATION OF INCIDENTAL OR
- CONSEQUENTIAL DAMAGES, SO THIS EXCLUSION AND LIMITATION MAY NOT
- APPLY TO YOU.
-
- 8. U.S. GOVERNMENT END USERS.
-
- The Covered Software is a "commercial item," as that term is
- defined in 48 C.F.R. 2.101 (Oct. 1995), consisting of "commercial
- computer software" (as that term is defined at 48 C.F.R. "
- 252.227-7014(a)(1)) and "commercial computer software
- documentation" as such terms are used in 48 C.F.R. 12.212 (Sept.
- 1995). Consistent with 48 C.F.R. 12.212 and 48 C.F.R. 227.7202-1
- through 227.7202-4 (June 1995), all U.S. Government End Users
- acquire Covered Software with only those rights set forth herein.
- This U.S. Government Rights clause is in lieu of, and supersedes,
- any other FAR, DFAR, or other clause or provision that addresses
- Government rights in computer software under this License.
-
- 9. MISCELLANEOUS.
-
- This License represents the complete agreement concerning subject
- matter hereof. If any provision of this License is held to be
- unenforceable, such provision shall be reformed only to the
- extent necessary to make it enforceable. This License shall be
- governed by the law of the jurisdiction specified in a notice
- contained within the Original Software (except to the extent
- applicable law, if any, provides otherwise), excluding such
- jurisdiction"s conflict-of-law provisions. Any litigation
- relating to this License shall be subject to the jurisdiction of
- the courts located in the jurisdiction and venue specified in a
- notice contained within the Original Software, with the losing
- party responsible for costs, including, without limitation, court
- costs and reasonable attorneys" fees and expenses. The
- application of the United Nations Convention on Contracts for the
- International Sale of Goods is expressly excluded. Any law or
- regulation which provides that the language of a contract shall
- be construed against the drafter shall not apply to this License.
- You agree that You alone are responsible for compliance with the
- United States export administration regulations (and the export
- control laws and regulation of any other countries) when You use,
- distribute or otherwise make available any Covered Software.
-
- 10. RESPONSIBILITY FOR CLAIMS.
-
- As between Initial Developer and the Contributors, each party is
- responsible for claims and damages arising, directly or
- indirectly, out of its utilization of rights under this License
- and You agree to work with Initial Developer and Contributors to
- distribute such responsibility on an equitable basis. Nothing
- herein is intended or shall be deemed to constitute any admission
- of liability.
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/services/jbpm/lib/ext/build-time/antlr-2.7.6.jar
===================================================================
(Binary files differ)
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/services/jbpm/lib/ext/build-time/antlr-2.7.6.jar.license.txt
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/services/jbpm/lib/ext/build-time/antlr-2.7.6.jar.license.txt 2009-01-21 14:47:17 UTC (rev 24849)
+++ labs/jbossesb/workspace/mlittle/legstar/product/services/jbpm/lib/ext/build-time/antlr-2.7.6.jar.license.txt 2009-01-21 15:38:08 UTC (rev 24850)
@@ -1,19 +0,0 @@
-http://www.antlr.org/license.html
-
-Software License
-
-We reserve no legal rights to the ANTLR--it is fully in the public domain. An
-individual or company may do whatever they wish with source code distributed
-with ANTLR or the code generated by ANTLR, including the incorporation of ANTLR,
-or its output, into commerical software.
-
-We encourage users to develop software with ANTLR. However, we do ask that
-credit is given to us for developing ANTLR. By "credit", we mean that if you
-use ANTLR or incorporate any source code into one of your programs (commercial
-product, research project, or otherwise) that you acknowledge this fact
-somewhere in the documentation, research report, etc... If you like ANTLR and
-have developed a nice tool with the output, please mention that you developed
-it using ANTLR. In addition, we ask that the headers remain intact in our
-source code. As long as these guidelines are kept, we expect to continue
-enhancing this system and expect to make other tools available as they are
-completed.
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/services/jbpm/lib/ext/build-time/bsh.jar
===================================================================
(Binary files differ)
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/services/jbpm/lib/ext/build-time/bsh.jar.license.txt
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/services/jbpm/lib/ext/build-time/bsh.jar.license.txt 2009-01-21 14:47:17 UTC (rev 24849)
+++ labs/jbossesb/workspace/mlittle/legstar/product/services/jbpm/lib/ext/build-time/bsh.jar.license.txt 2009-01-21 15:38:08 UTC (rev 24850)
@@ -1,504 +0,0 @@
- GNU LESSER GENERAL PUBLIC LICENSE
- Version 2.1, February 1999
-
- Copyright (C) 1991, 1999 Free Software Foundation, Inc.
- 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
-
-[This is the first released version of the Lesser GPL. It also counts
- as the successor of the GNU Library Public License, version 2, hence
- the version number 2.1.]
-
- Preamble
-
- The licenses for most software are designed to take away your
-freedom to share and change it. By contrast, the GNU General Public
-Licenses are intended to guarantee your freedom to share and change
-free software--to make sure the software is free for all its users.
-
- This license, the Lesser General Public License, applies to some
-specially designated software packages--typically libraries--of the
-Free Software Foundation and other authors who decide to use it. You
-can use it too, but we suggest you first think carefully about whether
-this license or the ordinary General Public License is the better
-strategy to use in any particular case, based on the explanations below.
-
- When we speak of free software, we are referring to freedom of use,
-not price. Our General Public Licenses are designed to make sure that
-you have the freedom to distribute copies of free software (and charge
-for this service if you wish); that you receive source code or can get
-it if you want it; that you can change the software and use pieces of
-it in new free programs; and that you are informed that you can do
-these things.
-
- To protect your rights, we need to make restrictions that forbid
-distributors to deny you these rights or to ask you to surrender these
-rights. These restrictions translate to certain responsibilities for
-you if you distribute copies of the library or if you modify it.
-
- For example, if you distribute copies of the library, whether gratis
-or for a fee, you must give the recipients all the rights that we gave
-you. You must make sure that they, too, receive or can get the source
-code. If you link other code with the library, you must provide
-complete object files to the recipients, so that they can relink them
-with the library after making changes to the library and recompiling
-it. And you must show them these terms so they know their rights.
-
- We protect your rights with a two-step method: (1) we copyright the
-library, and (2) we offer you this license, which gives you legal
-permission to copy, distribute and/or modify the library.
-
- To protect each distributor, we want to make it very clear that
-there is no warranty for the free library. Also, if the library is
-modified by someone else and passed on, the recipients should know
-that what they have is not the original version, so that the original
-author's reputation will not be affected by problems that might be
-introduced by others.
-
- Finally, software patents pose a constant threat to the existence of
-any free program. We wish to make sure that a company cannot
-effectively restrict the users of a free program by obtaining a
-restrictive license from a patent holder. Therefore, we insist that
-any patent license obtained for a version of the library must be
-consistent with the full freedom of use specified in this license.
-
- Most GNU software, including some libraries, is covered by the
-ordinary GNU General Public License. This license, the GNU Lesser
-General Public License, applies to certain designated libraries, and
-is quite different from the ordinary General Public License. We use
-this license for certain libraries in order to permit linking those
-libraries into non-free programs.
-
- When a program is linked with a library, whether statically or using
-a shared library, the combination of the two is legally speaking a
-combined work, a derivative of the original library. The ordinary
-General Public License therefore permits such linking only if the
-entire combination fits its criteria of freedom. The Lesser General
-Public License permits more lax criteria for linking other code with
-the library.
-
- We call this license the "Lesser" General Public License because it
-does Less to protect the user's freedom than the ordinary General
-Public License. It also provides other free software developers Less
-of an advantage over competing non-free programs. These disadvantages
-are the reason we use the ordinary General Public License for many
-libraries. However, the Lesser license provides advantages in certain
-special circumstances.
-
- For example, on rare occasions, there may be a special need to
-encourage the widest possible use of a certain library, so that it becomes
-a de-facto standard. To achieve this, non-free programs must be
-allowed to use the library. A more frequent case is that a free
-library does the same job as widely used non-free libraries. In this
-case, there is little to gain by limiting the free library to free
-software only, so we use the Lesser General Public License.
-
- In other cases, permission to use a particular library in non-free
-programs enables a greater number of people to use a large body of
-free software. For example, permission to use the GNU C Library in
-non-free programs enables many more people to use the whole GNU
-operating system, as well as its variant, the GNU/Linux operating
-system.
-
- Although the Lesser General Public License is Less protective of the
-users' freedom, it does ensure that the user of a program that is
-linked with the Library has the freedom and the wherewithal to run
-that program using a modified version of the Library.
-
- The precise terms and conditions for copying, distribution and
-modification follow. Pay close attention to the difference between a
-"work based on the library" and a "work that uses the library". The
-former contains code derived from the library, whereas the latter must
-be combined with the library in order to run.
-
- GNU LESSER GENERAL PUBLIC LICENSE
- TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
-
- 0. This License Agreement applies to any software library or other
-program which contains a notice placed by the copyright holder or
-other authorized party saying it may be distributed under the terms of
-this Lesser General Public License (also called "this License").
-Each licensee is addressed as "you".
-
- A "library" means a collection of software functions and/or data
-prepared so as to be conveniently linked with application programs
-(which use some of those functions and data) to form executables.
-
- The "Library", below, refers to any such software library or work
-which has been distributed under these terms. A "work based on the
-Library" means either the Library or any derivative work under
-copyright law: that is to say, a work containing the Library or a
-portion of it, either verbatim or with modifications and/or translated
-straightforwardly into another language. (Hereinafter, translation is
-included without limitation in the term "modification".)
-
- "Source code" for a work means the preferred form of the work for
-making modifications to it. For a library, complete source code means
-all the source code for all modules it contains, plus any associated
-interface definition files, plus the scripts used to control compilation
-and installation of the library.
-
- Activities other than copying, distribution and modification are not
-covered by this License; they are outside its scope. The act of
-running a program using the Library is not restricted, and output from
-such a program is covered only if its contents constitute a work based
-on the Library (independent of the use of the Library in a tool for
-writing it). Whether that is true depends on what the Library does
-and what the program that uses the Library does.
-
- 1. You may copy and distribute verbatim copies of the Library's
-complete source code as you receive it, in any medium, provided that
-you conspicuously and appropriately publish on each copy an
-appropriate copyright notice and disclaimer of warranty; keep intact
-all the notices that refer to this License and to the absence of any
-warranty; and distribute a copy of this License along with the
-Library.
-
- You may charge a fee for the physical act of transferring a copy,
-and you may at your option offer warranty protection in exchange for a
-fee.
-
- 2. You may modify your copy or copies of the Library or any portion
-of it, thus forming a work based on the Library, and copy and
-distribute such modifications or work under the terms of Section 1
-above, provided that you also meet all of these conditions:
-
- a) The modified work must itself be a software library.
-
- b) You must cause the files modified to carry prominent notices
- stating that you changed the files and the date of any change.
-
- c) You must cause the whole of the work to be licensed at no
- charge to all third parties under the terms of this License.
-
- d) If a facility in the modified Library refers to a function or a
- table of data to be supplied by an application program that uses
- the facility, other than as an argument passed when the facility
- is invoked, then you must make a good faith effort to ensure that,
- in the event an application does not supply such function or
- table, the facility still operates, and performs whatever part of
- its purpose remains meaningful.
-
- (For example, a function in a library to compute square roots has
- a purpose that is entirely well-defined independent of the
- application. Therefore, Subsection 2d requires that any
- application-supplied function or table used by this function must
- be optional: if the application does not supply it, the square
- root function must still compute square roots.)
-
-These requirements apply to the modified work as a whole. If
-identifiable sections of that work are not derived from the Library,
-and can be reasonably considered independent and separate works in
-themselves, then this License, and its terms, do not apply to those
-sections when you distribute them as separate works. But when you
-distribute the same sections as part of a whole which is a work based
-on the Library, the distribution of the whole must be on the terms of
-this License, whose permissions for other licensees extend to the
-entire whole, and thus to each and every part regardless of who wrote
-it.
-
-Thus, it is not the intent of this section to claim rights or contest
-your rights to work written entirely by you; rather, the intent is to
-exercise the right to control the distribution of derivative or
-collective works based on the Library.
-
-In addition, mere aggregation of another work not based on the Library
-with the Library (or with a work based on the Library) on a volume of
-a storage or distribution medium does not bring the other work under
-the scope of this License.
-
- 3. You may opt to apply the terms of the ordinary GNU General Public
-License instead of this License to a given copy of the Library. To do
-this, you must alter all the notices that refer to this License, so
-that they refer to the ordinary GNU General Public License, version 2,
-instead of to this License. (If a newer version than version 2 of the
-ordinary GNU General Public License has appeared, then you can specify
-that version instead if you wish.) Do not make any other change in
-these notices.
-
- Once this change is made in a given copy, it is irreversible for
-that copy, so the ordinary GNU General Public License applies to all
-subsequent copies and derivative works made from that copy.
-
- This option is useful when you wish to copy part of the code of
-the Library into a program that is not a library.
-
- 4. You may copy and distribute the Library (or a portion or
-derivative of it, under Section 2) in object code or executable form
-under the terms of Sections 1 and 2 above provided that you accompany
-it with the complete corresponding machine-readable source code, which
-must be distributed under the terms of Sections 1 and 2 above on a
-medium customarily used for software interchange.
-
- If distribution of object code is made by offering access to copy
-from a designated place, then offering equivalent access to copy the
-source code from the same place satisfies the requirement to
-distribute the source code, even though third parties are not
-compelled to copy the source along with the object code.
-
- 5. A program that contains no derivative of any portion of the
-Library, but is designed to work with the Library by being compiled or
-linked with it, is called a "work that uses the Library". Such a
-work, in isolation, is not a derivative work of the Library, and
-therefore falls outside the scope of this License.
-
- However, linking a "work that uses the Library" with the Library
-creates an executable that is a derivative of the Library (because it
-contains portions of the Library), rather than a "work that uses the
-library". The executable is therefore covered by this License.
-Section 6 states terms for distribution of such executables.
-
- When a "work that uses the Library" uses material from a header file
-that is part of the Library, the object code for the work may be a
-derivative work of the Library even though the source code is not.
-Whether this is true is especially significant if the work can be
-linked without the Library, or if the work is itself a library. The
-threshold for this to be true is not precisely defined by law.
-
- If such an object file uses only numerical parameters, data
-structure layouts and accessors, and small macros and small inline
-functions (ten lines or less in length), then the use of the object
-file is unrestricted, regardless of whether it is legally a derivative
-work. (Executables containing this object code plus portions of the
-Library will still fall under Section 6.)
-
- Otherwise, if the work is a derivative of the Library, you may
-distribute the object code for the work under the terms of Section 6.
-Any executables containing that work also fall under Section 6,
-whether or not they are linked directly with the Library itself.
-
- 6. As an exception to the Sections above, you may also combine or
-link a "work that uses the Library" with the Library to produce a
-work containing portions of the Library, and distribute that work
-under terms of your choice, provided that the terms permit
-modification of the work for the customer's own use and reverse
-engineering for debugging such modifications.
-
- You must give prominent notice with each copy of the work that the
-Library is used in it and that the Library and its use are covered by
-this License. You must supply a copy of this License. If the work
-during execution displays copyright notices, you must include the
-copyright notice for the Library among them, as well as a reference
-directing the user to the copy of this License. Also, you must do one
-of these things:
-
- a) Accompany the work with the complete corresponding
- machine-readable source code for the Library including whatever
- changes were used in the work (which must be distributed under
- Sections 1 and 2 above); and, if the work is an executable linked
- with the Library, with the complete machine-readable "work that
- uses the Library", as object code and/or source code, so that the
- user can modify the Library and then relink to produce a modified
- executable containing the modified Library. (It is understood
- that the user who changes the contents of definitions files in the
- Library will not necessarily be able to recompile the application
- to use the modified definitions.)
-
- b) Use a suitable shared library mechanism for linking with the
- Library. A suitable mechanism is one that (1) uses at run time a
- copy of the library already present on the user's computer system,
- rather than copying library functions into the executable, and (2)
- will operate properly with a modified version of the library, if
- the user installs one, as long as the modified version is
- interface-compatible with the version that the work was made with.
-
- c) Accompany the work with a written offer, valid for at
- least three years, to give the same user the materials
- specified in Subsection 6a, above, for a charge no more
- than the cost of performing this distribution.
-
- d) If distribution of the work is made by offering access to copy
- from a designated place, offer equivalent access to copy the above
- specified materials from the same place.
-
- e) Verify that the user has already received a copy of these
- materials or that you have already sent this user a copy.
-
- For an executable, the required form of the "work that uses the
-Library" must include any data and utility programs needed for
-reproducing the executable from it. However, as a special exception,
-the materials to be distributed need not include anything that is
-normally distributed (in either source or binary form) with the major
-components (compiler, kernel, and so on) of the operating system on
-which the executable runs, unless that component itself accompanies
-the executable.
-
- It may happen that this requirement contradicts the license
-restrictions of other proprietary libraries that do not normally
-accompany the operating system. Such a contradiction means you cannot
-use both them and the Library together in an executable that you
-distribute.
-
- 7. You may place library facilities that are a work based on the
-Library side-by-side in a single library together with other library
-facilities not covered by this License, and distribute such a combined
-library, provided that the separate distribution of the work based on
-the Library and of the other library facilities is otherwise
-permitted, and provided that you do these two things:
-
- a) Accompany the combined library with a copy of the same work
- based on the Library, uncombined with any other library
- facilities. This must be distributed under the terms of the
- Sections above.
-
- b) Give prominent notice with the combined library of the fact
- that part of it is a work based on the Library, and explaining
- where to find the accompanying uncombined form of the same work.
-
- 8. You may not copy, modify, sublicense, link with, or distribute
-the Library except as expressly provided under this License. Any
-attempt otherwise to copy, modify, sublicense, link with, or
-distribute the Library is void, and will automatically terminate your
-rights under this License. However, parties who have received copies,
-or rights, from you under this License will not have their licenses
-terminated so long as such parties remain in full compliance.
-
- 9. You are not required to accept this License, since you have not
-signed it. However, nothing else grants you permission to modify or
-distribute the Library or its derivative works. These actions are
-prohibited by law if you do not accept this License. Therefore, by
-modifying or distributing the Library (or any work based on the
-Library), you indicate your acceptance of this License to do so, and
-all its terms and conditions for copying, distributing or modifying
-the Library or works based on it.
-
- 10. Each time you redistribute the Library (or any work based on the
-Library), the recipient automatically receives a license from the
-original licensor to copy, distribute, link with or modify the Library
-subject to these terms and conditions. You may not impose any further
-restrictions on the recipients' exercise of the rights granted herein.
-You are not responsible for enforcing compliance by third parties with
-this License.
-
- 11. If, as a consequence of a court judgment or allegation of patent
-infringement or for any other reason (not limited to patent issues),
-conditions are imposed on you (whether by court order, agreement or
-otherwise) that contradict the conditions of this License, they do not
-excuse you from the conditions of this License. If you cannot
-distribute so as to satisfy simultaneously your obligations under this
-License and any other pertinent obligations, then as a consequence you
-may not distribute the Library at all. For example, if a patent
-license would not permit royalty-free redistribution of the Library by
-all those who receive copies directly or indirectly through you, then
-the only way you could satisfy both it and this License would be to
-refrain entirely from distribution of the Library.
-
-If any portion of this section is held invalid or unenforceable under any
-particular circumstance, the balance of the section is intended to apply,
-and the section as a whole is intended to apply in other circumstances.
-
-It is not the purpose of this section to induce you to infringe any
-patents or other property right claims or to contest validity of any
-such claims; this section has the sole purpose of protecting the
-integrity of the free software distribution system which is
-implemented by public license practices. Many people have made
-generous contributions to the wide range of software distributed
-through that system in reliance on consistent application of that
-system; it is up to the author/donor to decide if he or she is willing
-to distribute software through any other system and a licensee cannot
-impose that choice.
-
-This section is intended to make thoroughly clear what is believed to
-be a consequence of the rest of this License.
-
- 12. If the distribution and/or use of the Library is restricted in
-certain countries either by patents or by copyrighted interfaces, the
-original copyright holder who places the Library under this License may add
-an explicit geographical distribution limitation excluding those countries,
-so that distribution is permitted only in or among countries not thus
-excluded. In such case, this License incorporates the limitation as if
-written in the body of this License.
-
- 13. The Free Software Foundation may publish revised and/or new
-versions of the Lesser General Public License from time to time.
-Such new versions will be similar in spirit to the present version,
-but may differ in detail to address new problems or concerns.
-
-Each version is given a distinguishing version number. If the Library
-specifies a version number of this License which applies to it and
-"any later version", you have the option of following the terms and
-conditions either of that version or of any later version published by
-the Free Software Foundation. If the Library does not specify a
-license version number, you may choose any version ever published by
-the Free Software Foundation.
-
- 14. If you wish to incorporate parts of the Library into other free
-programs whose distribution conditions are incompatible with these,
-write to the author to ask for permission. For software which is
-copyrighted by the Free Software Foundation, write to the Free
-Software Foundation; we sometimes make exceptions for this. Our
-decision will be guided by the two goals of preserving the free status
-of all derivatives of our free software and of promoting the sharing
-and reuse of software generally.
-
- NO WARRANTY
-
- 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
-WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
-EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
-OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY
-KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
-IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
-PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
-LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
-THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
-
- 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
-WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
-AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU
-FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
-CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
-LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
-RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
-FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
-SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
-DAMAGES.
-
- END OF TERMS AND CONDITIONS
-
- How to Apply These Terms to Your New Libraries
-
- If you develop a new library, and you want it to be of the greatest
-possible use to the public, we recommend making it free software that
-everyone can redistribute and change. You can do so by permitting
-redistribution under these terms (or, alternatively, under the terms of the
-ordinary General Public License).
-
- To apply these terms, attach the following notices to the library. It is
-safest to attach them to the start of each source file to most effectively
-convey the exclusion of warranty; and each file should have at least the
-"copyright" line and a pointer to where the full notice is found.
-
- <one line to give the library's name and a brief idea of what it does.>
- Copyright (C) <year> <name of author>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with this library; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-
-Also add information on how to contact you by electronic and paper mail.
-
-You should also get your employer (if you work as a programmer) or your
-school, if any, to sign a "copyright disclaimer" for the library, if
-necessary. Here is a sample; alter the names:
-
- Yoyodyne, Inc., hereby disclaims all copyright interest in the
- library `Frob' (a library for tweaking knobs) written by James Random Hacker.
-
- <signature of Ty Coon>, 1 April 1990
- Ty Coon, President of Vice
-
-That's all there is to it!
-
-
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/services/jbpm/lib/ext/build-time/cglib.jar
===================================================================
(Binary files differ)
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/services/jbpm/lib/ext/build-time/cglib.jar.license.txt
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/services/jbpm/lib/ext/build-time/cglib.jar.license.txt 2009-01-21 14:47:17 UTC (rev 24849)
+++ labs/jbossesb/workspace/mlittle/legstar/product/services/jbpm/lib/ext/build-time/cglib.jar.license.txt 2009-01-21 15:38:08 UTC (rev 24850)
@@ -1,202 +0,0 @@
-
- Apache License
- Version 2.0, January 2004
- http://www.apache.org/licenses/
-
- TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
- 1. Definitions.
-
- "License" shall mean the terms and conditions for use, reproduction,
- and distribution as defined by Sections 1 through 9 of this document.
-
- "Licensor" shall mean the copyright owner or entity authorized by
- the copyright owner that is granting the License.
-
- "Legal Entity" shall mean the union of the acting entity and all
- other entities that control, are controlled by, or are under common
- control with that entity. For the purposes of this definition,
- "control" means (i) the power, direct or indirect, to cause the
- direction or management of such entity, whether by contract or
- otherwise, or (ii) ownership of fifty percent (50%) or more of the
- outstanding shares, or (iii) beneficial ownership of such entity.
-
- "You" (or "Your") shall mean an individual or Legal Entity
- exercising permissions granted by this License.
-
- "Source" form shall mean the preferred form for making modifications,
- including but not limited to software source code, documentation
- source, and configuration files.
-
- "Object" form shall mean any form resulting from mechanical
- transformation or translation of a Source form, including but
- not limited to compiled object code, generated documentation,
- and conversions to other media types.
-
- "Work" shall mean the work of authorship, whether in Source or
- Object form, made available under the License, as indicated by a
- copyright notice that is included in or attached to the work
- (an example is provided in the Appendix below).
-
- "Derivative Works" shall mean any work, whether in Source or Object
- form, that is based on (or derived from) the Work and for which the
- editorial revisions, annotations, elaborations, or other modifications
- represent, as a whole, an original work of authorship. For the purposes
- of this License, Derivative Works shall not include works that remain
- separable from, or merely link (or bind by name) to the interfaces of,
- the Work and Derivative Works thereof.
-
- "Contribution" shall mean any work of authorship, including
- the original version of the Work and any modifications or additions
- to that Work or Derivative Works thereof, that is intentionally
- submitted to Licensor for inclusion in the Work by the copyright owner
- or by an individual or Legal Entity authorized to submit on behalf of
- the copyright owner. For the purposes of this definition, "submitted"
- means any form of electronic, verbal, or written communication sent
- to the Licensor or its representatives, including but not limited to
- communication on electronic mailing lists, source code control systems,
- and issue tracking systems that are managed by, or on behalf of, the
- Licensor for the purpose of discussing and improving the Work, but
- excluding communication that is conspicuously marked or otherwise
- designated in writing by the copyright owner as "Not a Contribution."
-
- "Contributor" shall mean Licensor and any individual or Legal Entity
- on behalf of whom a Contribution has been received by Licensor and
- subsequently incorporated within the Work.
-
- 2. Grant of Copyright License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- copyright license to reproduce, prepare Derivative Works of,
- publicly display, publicly perform, sublicense, and distribute the
- Work and such Derivative Works in Source or Object form.
-
- 3. Grant of Patent License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- (except as stated in this section) patent license to make, have made,
- use, offer to sell, sell, import, and otherwise transfer the Work,
- where such license applies only to those patent claims licensable
- by such Contributor that are necessarily infringed by their
- Contribution(s) alone or by combination of their Contribution(s)
- with the Work to which such Contribution(s) was submitted. If You
- institute patent litigation against any entity (including a
- cross-claim or counterclaim in a lawsuit) alleging that the Work
- or a Contribution incorporated within the Work constitutes direct
- or contributory patent infringement, then any patent licenses
- granted to You under this License for that Work shall terminate
- as of the date such litigation is filed.
-
- 4. Redistribution. You may reproduce and distribute copies of the
- Work or Derivative Works thereof in any medium, with or without
- modifications, and in Source or Object form, provided that You
- meet the following conditions:
-
- (a) You must give any other recipients of the Work or
- Derivative Works a copy of this License; and
-
- (b) You must cause any modified files to carry prominent notices
- stating that You changed the files; and
-
- (c) You must retain, in the Source form of any Derivative Works
- that You distribute, all copyright, patent, trademark, and
- attribution notices from the Source form of the Work,
- excluding those notices that do not pertain to any part of
- the Derivative Works; and
-
- (d) If the Work includes a "NOTICE" text file as part of its
- distribution, then any Derivative Works that You distribute must
- include a readable copy of the attribution notices contained
- within such NOTICE file, excluding those notices that do not
- pertain to any part of the Derivative Works, in at least one
- of the following places: within a NOTICE text file distributed
- as part of the Derivative Works; within the Source form or
- documentation, if provided along with the Derivative Works; or,
- within a display generated by the Derivative Works, if and
- wherever such third-party notices normally appear. The contents
- of the NOTICE file are for informational purposes only and
- do not modify the License. You may add Your own attribution
- notices within Derivative Works that You distribute, alongside
- or as an addendum to the NOTICE text from the Work, provided
- that such additional attribution notices cannot be construed
- as modifying the License.
-
- You may add Your own copyright statement to Your modifications and
- may provide additional or different license terms and conditions
- for use, reproduction, or distribution of Your modifications, or
- for any such Derivative Works as a whole, provided Your use,
- reproduction, and distribution of the Work otherwise complies with
- the conditions stated in this License.
-
- 5. Submission of Contributions. Unless You explicitly state otherwise,
- any Contribution intentionally submitted for inclusion in the Work
- by You to the Licensor shall be under the terms and conditions of
- this License, without any additional terms or conditions.
- Notwithstanding the above, nothing herein shall supersede or modify
- the terms of any separate license agreement you may have executed
- with Licensor regarding such Contributions.
-
- 6. Trademarks. This License does not grant permission to use the trade
- names, trademarks, service marks, or product names of the Licensor,
- except as required for reasonable and customary use in describing the
- origin of the Work and reproducing the content of the NOTICE file.
-
- 7. Disclaimer of Warranty. Unless required by applicable law or
- agreed to in writing, Licensor provides the Work (and each
- Contributor provides its Contributions) on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
- implied, including, without limitation, any warranties or conditions
- of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
- PARTICULAR PURPOSE. You are solely responsible for determining the
- appropriateness of using or redistributing the Work and assume any
- risks associated with Your exercise of permissions under this License.
-
- 8. Limitation of Liability. In no event and under no legal theory,
- whether in tort (including negligence), contract, or otherwise,
- unless required by applicable law (such as deliberate and grossly
- negligent acts) or agreed to in writing, shall any Contributor be
- liable to You for damages, including any direct, indirect, special,
- incidental, or consequential damages of any character arising as a
- result of this License or out of the use or inability to use the
- Work (including but not limited to damages for loss of goodwill,
- work stoppage, computer failure or malfunction, or any and all
- other commercial damages or losses), even if such Contributor
- has been advised of the possibility of such damages.
-
- 9. Accepting Warranty or Additional Liability. While redistributing
- the Work or Derivative Works thereof, You may choose to offer,
- and charge a fee for, acceptance of support, warranty, indemnity,
- or other liability obligations and/or rights consistent with this
- License. However, in accepting such obligations, You may act only
- on Your own behalf and on Your sole responsibility, not on behalf
- of any other Contributor, and only if You agree to indemnify,
- defend, and hold each Contributor harmless for any liability
- incurred by, or claims asserted against, such Contributor by reason
- of your accepting any such warranty or additional liability.
-
- END OF TERMS AND CONDITIONS
-
- APPENDIX: How to apply the Apache License to your work.
-
- To apply the Apache License to your work, attach the following
- boilerplate notice, with the fields enclosed by brackets "[]"
- replaced with your own identifying information. (Don't include
- the brackets!) The text should be enclosed in the appropriate
- comment syntax for the file format. We also recommend that a
- file or class name and description of purpose be included on the
- same "printed page" as the copyright notice for easier
- identification within third-party archives.
-
- Copyright [yyyy] [name of copyright owner]
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/services/jbpm/lib/ext/build-time/jboss-backport-concurrent.jar
===================================================================
(Binary files differ)
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/services/jbpm/lib/ext/build-time/jboss-backport-concurrent.jar.license.txt
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/services/jbpm/lib/ext/build-time/jboss-backport-concurrent.jar.license.txt 2009-01-21 14:47:17 UTC (rev 24849)
+++ labs/jbossesb/workspace/mlittle/legstar/product/services/jbpm/lib/ext/build-time/jboss-backport-concurrent.jar.license.txt 2009-01-21 15:38:08 UTC (rev 24850)
@@ -1,30 +0,0 @@
-Copyright-Only Dedication (based on United States law) or
-Public Domain Certification
-
-The person or persons who have associated work with this document (the
-"Dedicator" or "Certifier") hereby either (a) certifies that, to the best
-of his knowledge, the work of authorship identified is in the public
-domain of the country from which the work is published, or (b) hereby
-dedicates whatever copyright the dedicators holds in the work of authorship
-identified below (the "Work") to the public domain. A certifier, moreover,
-dedicates any copyright interest he may have in the associated work, and
-for these purposes, is described as a "dedicator" below.
-
-A certifier has taken reasonable steps to verify the copyright status of
-this work. Certifier recognizes that his good faith efforts may not shield
-him from liability if in fact the work certified is not in the public domain.
-
-Dedicator makes this dedication for the benefit of the public at large and
-to the detriment of the Dedicator's heirs and successors. Dedicator intends
-this dedication to be an overt act of relinquishment in perpetuity of all
-present and future rights under copyright law, whether vested or contingent,
-in the Work. Dedicator understands that such relinquishment of all rights
-includes the relinquishment of all rights to enforce (by lawsuit or otherwise)
-those copyrights in the Work.
-
-Dedicator recognizes that, once placed in the public domain, the Work may be
-freely reproduced, distributed, transmitted, used, modified, built upon,
-or otherwise exploited by anyone for any purpose, commercial or non-commercial,
-and in any way, including by methods that have not yet been invented or conceived.
-
-(See http://creativecommons.org/licenses/publicdomain)
\ No newline at end of file
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/services/jbpm/lib/ext/build-time/jboss-j2ee.jar
===================================================================
(Binary files differ)
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/services/jbpm/lib/ext/build-time/jboss-j2ee.jar.license.txt
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/services/jbpm/lib/ext/build-time/jboss-j2ee.jar.license.txt 2009-01-21 14:47:17 UTC (rev 24849)
+++ labs/jbossesb/workspace/mlittle/legstar/product/services/jbpm/lib/ext/build-time/jboss-j2ee.jar.license.txt 2009-01-21 15:38:08 UTC (rev 24850)
@@ -1,504 +0,0 @@
- GNU LESSER GENERAL PUBLIC LICENSE
- Version 2.1, February 1999
-
- Copyright (C) 1991, 1999 Free Software Foundation, Inc.
- 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
-
-[This is the first released version of the Lesser GPL. It also counts
- as the successor of the GNU Library Public License, version 2, hence
- the version number 2.1.]
-
- Preamble
-
- The licenses for most software are designed to take away your
-freedom to share and change it. By contrast, the GNU General Public
-Licenses are intended to guarantee your freedom to share and change
-free software--to make sure the software is free for all its users.
-
- This license, the Lesser General Public License, applies to some
-specially designated software packages--typically libraries--of the
-Free Software Foundation and other authors who decide to use it. You
-can use it too, but we suggest you first think carefully about whether
-this license or the ordinary General Public License is the better
-strategy to use in any particular case, based on the explanations below.
-
- When we speak of free software, we are referring to freedom of use,
-not price. Our General Public Licenses are designed to make sure that
-you have the freedom to distribute copies of free software (and charge
-for this service if you wish); that you receive source code or can get
-it if you want it; that you can change the software and use pieces of
-it in new free programs; and that you are informed that you can do
-these things.
-
- To protect your rights, we need to make restrictions that forbid
-distributors to deny you these rights or to ask you to surrender these
-rights. These restrictions translate to certain responsibilities for
-you if you distribute copies of the library or if you modify it.
-
- For example, if you distribute copies of the library, whether gratis
-or for a fee, you must give the recipients all the rights that we gave
-you. You must make sure that they, too, receive or can get the source
-code. If you link other code with the library, you must provide
-complete object files to the recipients, so that they can relink them
-with the library after making changes to the library and recompiling
-it. And you must show them these terms so they know their rights.
-
- We protect your rights with a two-step method: (1) we copyright the
-library, and (2) we offer you this license, which gives you legal
-permission to copy, distribute and/or modify the library.
-
- To protect each distributor, we want to make it very clear that
-there is no warranty for the free library. Also, if the library is
-modified by someone else and passed on, the recipients should know
-that what they have is not the original version, so that the original
-author's reputation will not be affected by problems that might be
-introduced by others.
-
- Finally, software patents pose a constant threat to the existence of
-any free program. We wish to make sure that a company cannot
-effectively restrict the users of a free program by obtaining a
-restrictive license from a patent holder. Therefore, we insist that
-any patent license obtained for a version of the library must be
-consistent with the full freedom of use specified in this license.
-
- Most GNU software, including some libraries, is covered by the
-ordinary GNU General Public License. This license, the GNU Lesser
-General Public License, applies to certain designated libraries, and
-is quite different from the ordinary General Public License. We use
-this license for certain libraries in order to permit linking those
-libraries into non-free programs.
-
- When a program is linked with a library, whether statically or using
-a shared library, the combination of the two is legally speaking a
-combined work, a derivative of the original library. The ordinary
-General Public License therefore permits such linking only if the
-entire combination fits its criteria of freedom. The Lesser General
-Public License permits more lax criteria for linking other code with
-the library.
-
- We call this license the "Lesser" General Public License because it
-does Less to protect the user's freedom than the ordinary General
-Public License. It also provides other free software developers Less
-of an advantage over competing non-free programs. These disadvantages
-are the reason we use the ordinary General Public License for many
-libraries. However, the Lesser license provides advantages in certain
-special circumstances.
-
- For example, on rare occasions, there may be a special need to
-encourage the widest possible use of a certain library, so that it becomes
-a de-facto standard. To achieve this, non-free programs must be
-allowed to use the library. A more frequent case is that a free
-library does the same job as widely used non-free libraries. In this
-case, there is little to gain by limiting the free library to free
-software only, so we use the Lesser General Public License.
-
- In other cases, permission to use a particular library in non-free
-programs enables a greater number of people to use a large body of
-free software. For example, permission to use the GNU C Library in
-non-free programs enables many more people to use the whole GNU
-operating system, as well as its variant, the GNU/Linux operating
-system.
-
- Although the Lesser General Public License is Less protective of the
-users' freedom, it does ensure that the user of a program that is
-linked with the Library has the freedom and the wherewithal to run
-that program using a modified version of the Library.
-
- The precise terms and conditions for copying, distribution and
-modification follow. Pay close attention to the difference between a
-"work based on the library" and a "work that uses the library". The
-former contains code derived from the library, whereas the latter must
-be combined with the library in order to run.
-
- GNU LESSER GENERAL PUBLIC LICENSE
- TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
-
- 0. This License Agreement applies to any software library or other
-program which contains a notice placed by the copyright holder or
-other authorized party saying it may be distributed under the terms of
-this Lesser General Public License (also called "this License").
-Each licensee is addressed as "you".
-
- A "library" means a collection of software functions and/or data
-prepared so as to be conveniently linked with application programs
-(which use some of those functions and data) to form executables.
-
- The "Library", below, refers to any such software library or work
-which has been distributed under these terms. A "work based on the
-Library" means either the Library or any derivative work under
-copyright law: that is to say, a work containing the Library or a
-portion of it, either verbatim or with modifications and/or translated
-straightforwardly into another language. (Hereinafter, translation is
-included without limitation in the term "modification".)
-
- "Source code" for a work means the preferred form of the work for
-making modifications to it. For a library, complete source code means
-all the source code for all modules it contains, plus any associated
-interface definition files, plus the scripts used to control compilation
-and installation of the library.
-
- Activities other than copying, distribution and modification are not
-covered by this License; they are outside its scope. The act of
-running a program using the Library is not restricted, and output from
-such a program is covered only if its contents constitute a work based
-on the Library (independent of the use of the Library in a tool for
-writing it). Whether that is true depends on what the Library does
-and what the program that uses the Library does.
-
- 1. You may copy and distribute verbatim copies of the Library's
-complete source code as you receive it, in any medium, provided that
-you conspicuously and appropriately publish on each copy an
-appropriate copyright notice and disclaimer of warranty; keep intact
-all the notices that refer to this License and to the absence of any
-warranty; and distribute a copy of this License along with the
-Library.
-
- You may charge a fee for the physical act of transferring a copy,
-and you may at your option offer warranty protection in exchange for a
-fee.
-
- 2. You may modify your copy or copies of the Library or any portion
-of it, thus forming a work based on the Library, and copy and
-distribute such modifications or work under the terms of Section 1
-above, provided that you also meet all of these conditions:
-
- a) The modified work must itself be a software library.
-
- b) You must cause the files modified to carry prominent notices
- stating that you changed the files and the date of any change.
-
- c) You must cause the whole of the work to be licensed at no
- charge to all third parties under the terms of this License.
-
- d) If a facility in the modified Library refers to a function or a
- table of data to be supplied by an application program that uses
- the facility, other than as an argument passed when the facility
- is invoked, then you must make a good faith effort to ensure that,
- in the event an application does not supply such function or
- table, the facility still operates, and performs whatever part of
- its purpose remains meaningful.
-
- (For example, a function in a library to compute square roots has
- a purpose that is entirely well-defined independent of the
- application. Therefore, Subsection 2d requires that any
- application-supplied function or table used by this function must
- be optional: if the application does not supply it, the square
- root function must still compute square roots.)
-
-These requirements apply to the modified work as a whole. If
-identifiable sections of that work are not derived from the Library,
-and can be reasonably considered independent and separate works in
-themselves, then this License, and its terms, do not apply to those
-sections when you distribute them as separate works. But when you
-distribute the same sections as part of a whole which is a work based
-on the Library, the distribution of the whole must be on the terms of
-this License, whose permissions for other licensees extend to the
-entire whole, and thus to each and every part regardless of who wrote
-it.
-
-Thus, it is not the intent of this section to claim rights or contest
-your rights to work written entirely by you; rather, the intent is to
-exercise the right to control the distribution of derivative or
-collective works based on the Library.
-
-In addition, mere aggregation of another work not based on the Library
-with the Library (or with a work based on the Library) on a volume of
-a storage or distribution medium does not bring the other work under
-the scope of this License.
-
- 3. You may opt to apply the terms of the ordinary GNU General Public
-License instead of this License to a given copy of the Library. To do
-this, you must alter all the notices that refer to this License, so
-that they refer to the ordinary GNU General Public License, version 2,
-instead of to this License. (If a newer version than version 2 of the
-ordinary GNU General Public License has appeared, then you can specify
-that version instead if you wish.) Do not make any other change in
-these notices.
-
- Once this change is made in a given copy, it is irreversible for
-that copy, so the ordinary GNU General Public License applies to all
-subsequent copies and derivative works made from that copy.
-
- This option is useful when you wish to copy part of the code of
-the Library into a program that is not a library.
-
- 4. You may copy and distribute the Library (or a portion or
-derivative of it, under Section 2) in object code or executable form
-under the terms of Sections 1 and 2 above provided that you accompany
-it with the complete corresponding machine-readable source code, which
-must be distributed under the terms of Sections 1 and 2 above on a
-medium customarily used for software interchange.
-
- If distribution of object code is made by offering access to copy
-from a designated place, then offering equivalent access to copy the
-source code from the same place satisfies the requirement to
-distribute the source code, even though third parties are not
-compelled to copy the source along with the object code.
-
- 5. A program that contains no derivative of any portion of the
-Library, but is designed to work with the Library by being compiled or
-linked with it, is called a "work that uses the Library". Such a
-work, in isolation, is not a derivative work of the Library, and
-therefore falls outside the scope of this License.
-
- However, linking a "work that uses the Library" with the Library
-creates an executable that is a derivative of the Library (because it
-contains portions of the Library), rather than a "work that uses the
-library". The executable is therefore covered by this License.
-Section 6 states terms for distribution of such executables.
-
- When a "work that uses the Library" uses material from a header file
-that is part of the Library, the object code for the work may be a
-derivative work of the Library even though the source code is not.
-Whether this is true is especially significant if the work can be
-linked without the Library, or if the work is itself a library. The
-threshold for this to be true is not precisely defined by law.
-
- If such an object file uses only numerical parameters, data
-structure layouts and accessors, and small macros and small inline
-functions (ten lines or less in length), then the use of the object
-file is unrestricted, regardless of whether it is legally a derivative
-work. (Executables containing this object code plus portions of the
-Library will still fall under Section 6.)
-
- Otherwise, if the work is a derivative of the Library, you may
-distribute the object code for the work under the terms of Section 6.
-Any executables containing that work also fall under Section 6,
-whether or not they are linked directly with the Library itself.
-
- 6. As an exception to the Sections above, you may also combine or
-link a "work that uses the Library" with the Library to produce a
-work containing portions of the Library, and distribute that work
-under terms of your choice, provided that the terms permit
-modification of the work for the customer's own use and reverse
-engineering for debugging such modifications.
-
- You must give prominent notice with each copy of the work that the
-Library is used in it and that the Library and its use are covered by
-this License. You must supply a copy of this License. If the work
-during execution displays copyright notices, you must include the
-copyright notice for the Library among them, as well as a reference
-directing the user to the copy of this License. Also, you must do one
-of these things:
-
- a) Accompany the work with the complete corresponding
- machine-readable source code for the Library including whatever
- changes were used in the work (which must be distributed under
- Sections 1 and 2 above); and, if the work is an executable linked
- with the Library, with the complete machine-readable "work that
- uses the Library", as object code and/or source code, so that the
- user can modify the Library and then relink to produce a modified
- executable containing the modified Library. (It is understood
- that the user who changes the contents of definitions files in the
- Library will not necessarily be able to recompile the application
- to use the modified definitions.)
-
- b) Use a suitable shared library mechanism for linking with the
- Library. A suitable mechanism is one that (1) uses at run time a
- copy of the library already present on the user's computer system,
- rather than copying library functions into the executable, and (2)
- will operate properly with a modified version of the library, if
- the user installs one, as long as the modified version is
- interface-compatible with the version that the work was made with.
-
- c) Accompany the work with a written offer, valid for at
- least three years, to give the same user the materials
- specified in Subsection 6a, above, for a charge no more
- than the cost of performing this distribution.
-
- d) If distribution of the work is made by offering access to copy
- from a designated place, offer equivalent access to copy the above
- specified materials from the same place.
-
- e) Verify that the user has already received a copy of these
- materials or that you have already sent this user a copy.
-
- For an executable, the required form of the "work that uses the
-Library" must include any data and utility programs needed for
-reproducing the executable from it. However, as a special exception,
-the materials to be distributed need not include anything that is
-normally distributed (in either source or binary form) with the major
-components (compiler, kernel, and so on) of the operating system on
-which the executable runs, unless that component itself accompanies
-the executable.
-
- It may happen that this requirement contradicts the license
-restrictions of other proprietary libraries that do not normally
-accompany the operating system. Such a contradiction means you cannot
-use both them and the Library together in an executable that you
-distribute.
-
- 7. You may place library facilities that are a work based on the
-Library side-by-side in a single library together with other library
-facilities not covered by this License, and distribute such a combined
-library, provided that the separate distribution of the work based on
-the Library and of the other library facilities is otherwise
-permitted, and provided that you do these two things:
-
- a) Accompany the combined library with a copy of the same work
- based on the Library, uncombined with any other library
- facilities. This must be distributed under the terms of the
- Sections above.
-
- b) Give prominent notice with the combined library of the fact
- that part of it is a work based on the Library, and explaining
- where to find the accompanying uncombined form of the same work.
-
- 8. You may not copy, modify, sublicense, link with, or distribute
-the Library except as expressly provided under this License. Any
-attempt otherwise to copy, modify, sublicense, link with, or
-distribute the Library is void, and will automatically terminate your
-rights under this License. However, parties who have received copies,
-or rights, from you under this License will not have their licenses
-terminated so long as such parties remain in full compliance.
-
- 9. You are not required to accept this License, since you have not
-signed it. However, nothing else grants you permission to modify or
-distribute the Library or its derivative works. These actions are
-prohibited by law if you do not accept this License. Therefore, by
-modifying or distributing the Library (or any work based on the
-Library), you indicate your acceptance of this License to do so, and
-all its terms and conditions for copying, distributing or modifying
-the Library or works based on it.
-
- 10. Each time you redistribute the Library (or any work based on the
-Library), the recipient automatically receives a license from the
-original licensor to copy, distribute, link with or modify the Library
-subject to these terms and conditions. You may not impose any further
-restrictions on the recipients' exercise of the rights granted herein.
-You are not responsible for enforcing compliance by third parties with
-this License.
-
- 11. If, as a consequence of a court judgment or allegation of patent
-infringement or for any other reason (not limited to patent issues),
-conditions are imposed on you (whether by court order, agreement or
-otherwise) that contradict the conditions of this License, they do not
-excuse you from the conditions of this License. If you cannot
-distribute so as to satisfy simultaneously your obligations under this
-License and any other pertinent obligations, then as a consequence you
-may not distribute the Library at all. For example, if a patent
-license would not permit royalty-free redistribution of the Library by
-all those who receive copies directly or indirectly through you, then
-the only way you could satisfy both it and this License would be to
-refrain entirely from distribution of the Library.
-
-If any portion of this section is held invalid or unenforceable under any
-particular circumstance, the balance of the section is intended to apply,
-and the section as a whole is intended to apply in other circumstances.
-
-It is not the purpose of this section to induce you to infringe any
-patents or other property right claims or to contest validity of any
-such claims; this section has the sole purpose of protecting the
-integrity of the free software distribution system which is
-implemented by public license practices. Many people have made
-generous contributions to the wide range of software distributed
-through that system in reliance on consistent application of that
-system; it is up to the author/donor to decide if he or she is willing
-to distribute software through any other system and a licensee cannot
-impose that choice.
-
-This section is intended to make thoroughly clear what is believed to
-be a consequence of the rest of this License.
-
- 12. If the distribution and/or use of the Library is restricted in
-certain countries either by patents or by copyrighted interfaces, the
-original copyright holder who places the Library under this License may add
-an explicit geographical distribution limitation excluding those countries,
-so that distribution is permitted only in or among countries not thus
-excluded. In such case, this License incorporates the limitation as if
-written in the body of this License.
-
- 13. The Free Software Foundation may publish revised and/or new
-versions of the Lesser General Public License from time to time.
-Such new versions will be similar in spirit to the present version,
-but may differ in detail to address new problems or concerns.
-
-Each version is given a distinguishing version number. If the Library
-specifies a version number of this License which applies to it and
-"any later version", you have the option of following the terms and
-conditions either of that version or of any later version published by
-the Free Software Foundation. If the Library does not specify a
-license version number, you may choose any version ever published by
-the Free Software Foundation.
-
- 14. If you wish to incorporate parts of the Library into other free
-programs whose distribution conditions are incompatible with these,
-write to the author to ask for permission. For software which is
-copyrighted by the Free Software Foundation, write to the Free
-Software Foundation; we sometimes make exceptions for this. Our
-decision will be guided by the two goals of preserving the free status
-of all derivatives of our free software and of promoting the sharing
-and reuse of software generally.
-
- NO WARRANTY
-
- 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
-WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
-EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
-OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY
-KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
-IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
-PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
-LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
-THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
-
- 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
-WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
-AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU
-FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
-CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
-LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
-RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
-FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
-SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
-DAMAGES.
-
- END OF TERMS AND CONDITIONS
-
- How to Apply These Terms to Your New Libraries
-
- If you develop a new library, and you want it to be of the greatest
-possible use to the public, we recommend making it free software that
-everyone can redistribute and change. You can do so by permitting
-redistribution under these terms (or, alternatively, under the terms of the
-ordinary General Public License).
-
- To apply these terms, attach the following notices to the library. It is
-safest to attach them to the start of each source file to most effectively
-convey the exclusion of warranty; and each file should have at least the
-"copyright" line and a pointer to where the full notice is found.
-
- <one line to give the library's name and a brief idea of what it does.>
- Copyright (C) <year> <name of author>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with this library; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-
-Also add information on how to contact you by electronic and paper mail.
-
-You should also get your employer (if you work as a programmer) or your
-school, if any, to sign a "copyright disclaimer" for the library, if
-necessary. Here is a sample; alter the names:
-
- Yoyodyne, Inc., hereby disclaims all copyright interest in the
- library `Frob' (a library for tweaking knobs) written by James Random Hacker.
-
- <signature of Ty Coon>, 1 April 1990
- Ty Coon, President of Vice
-
-That's all there is to it!
-
-
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/services/jbpm/lib/ext/build-time/jbossretro-rt.jar
===================================================================
(Binary files differ)
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/services/jbpm/lib/ext/build-time/jbossretro-rt.jar.license.txt
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/services/jbpm/lib/ext/build-time/jbossretro-rt.jar.license.txt 2009-01-21 14:47:17 UTC (rev 24849)
+++ labs/jbossesb/workspace/mlittle/legstar/product/services/jbpm/lib/ext/build-time/jbossretro-rt.jar.license.txt 2009-01-21 15:38:08 UTC (rev 24850)
@@ -1,504 +0,0 @@
- GNU LESSER GENERAL PUBLIC LICENSE
- Version 2.1, February 1999
-
- Copyright (C) 1991, 1999 Free Software Foundation, Inc.
- 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
-
-[This is the first released version of the Lesser GPL. It also counts
- as the successor of the GNU Library Public License, version 2, hence
- the version number 2.1.]
-
- Preamble
-
- The licenses for most software are designed to take away your
-freedom to share and change it. By contrast, the GNU General Public
-Licenses are intended to guarantee your freedom to share and change
-free software--to make sure the software is free for all its users.
-
- This license, the Lesser General Public License, applies to some
-specially designated software packages--typically libraries--of the
-Free Software Foundation and other authors who decide to use it. You
-can use it too, but we suggest you first think carefully about whether
-this license or the ordinary General Public License is the better
-strategy to use in any particular case, based on the explanations below.
-
- When we speak of free software, we are referring to freedom of use,
-not price. Our General Public Licenses are designed to make sure that
-you have the freedom to distribute copies of free software (and charge
-for this service if you wish); that you receive source code or can get
-it if you want it; that you can change the software and use pieces of
-it in new free programs; and that you are informed that you can do
-these things.
-
- To protect your rights, we need to make restrictions that forbid
-distributors to deny you these rights or to ask you to surrender these
-rights. These restrictions translate to certain responsibilities for
-you if you distribute copies of the library or if you modify it.
-
- For example, if you distribute copies of the library, whether gratis
-or for a fee, you must give the recipients all the rights that we gave
-you. You must make sure that they, too, receive or can get the source
-code. If you link other code with the library, you must provide
-complete object files to the recipients, so that they can relink them
-with the library after making changes to the library and recompiling
-it. And you must show them these terms so they know their rights.
-
- We protect your rights with a two-step method: (1) we copyright the
-library, and (2) we offer you this license, which gives you legal
-permission to copy, distribute and/or modify the library.
-
- To protect each distributor, we want to make it very clear that
-there is no warranty for the free library. Also, if the library is
-modified by someone else and passed on, the recipients should know
-that what they have is not the original version, so that the original
-author's reputation will not be affected by problems that might be
-introduced by others.
-
- Finally, software patents pose a constant threat to the existence of
-any free program. We wish to make sure that a company cannot
-effectively restrict the users of a free program by obtaining a
-restrictive license from a patent holder. Therefore, we insist that
-any patent license obtained for a version of the library must be
-consistent with the full freedom of use specified in this license.
-
- Most GNU software, including some libraries, is covered by the
-ordinary GNU General Public License. This license, the GNU Lesser
-General Public License, applies to certain designated libraries, and
-is quite different from the ordinary General Public License. We use
-this license for certain libraries in order to permit linking those
-libraries into non-free programs.
-
- When a program is linked with a library, whether statically or using
-a shared library, the combination of the two is legally speaking a
-combined work, a derivative of the original library. The ordinary
-General Public License therefore permits such linking only if the
-entire combination fits its criteria of freedom. The Lesser General
-Public License permits more lax criteria for linking other code with
-the library.
-
- We call this license the "Lesser" General Public License because it
-does Less to protect the user's freedom than the ordinary General
-Public License. It also provides other free software developers Less
-of an advantage over competing non-free programs. These disadvantages
-are the reason we use the ordinary General Public License for many
-libraries. However, the Lesser license provides advantages in certain
-special circumstances.
-
- For example, on rare occasions, there may be a special need to
-encourage the widest possible use of a certain library, so that it becomes
-a de-facto standard. To achieve this, non-free programs must be
-allowed to use the library. A more frequent case is that a free
-library does the same job as widely used non-free libraries. In this
-case, there is little to gain by limiting the free library to free
-software only, so we use the Lesser General Public License.
-
- In other cases, permission to use a particular library in non-free
-programs enables a greater number of people to use a large body of
-free software. For example, permission to use the GNU C Library in
-non-free programs enables many more people to use the whole GNU
-operating system, as well as its variant, the GNU/Linux operating
-system.
-
- Although the Lesser General Public License is Less protective of the
-users' freedom, it does ensure that the user of a program that is
-linked with the Library has the freedom and the wherewithal to run
-that program using a modified version of the Library.
-
- The precise terms and conditions for copying, distribution and
-modification follow. Pay close attention to the difference between a
-"work based on the library" and a "work that uses the library". The
-former contains code derived from the library, whereas the latter must
-be combined with the library in order to run.
-
- GNU LESSER GENERAL PUBLIC LICENSE
- TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
-
- 0. This License Agreement applies to any software library or other
-program which contains a notice placed by the copyright holder or
-other authorized party saying it may be distributed under the terms of
-this Lesser General Public License (also called "this License").
-Each licensee is addressed as "you".
-
- A "library" means a collection of software functions and/or data
-prepared so as to be conveniently linked with application programs
-(which use some of those functions and data) to form executables.
-
- The "Library", below, refers to any such software library or work
-which has been distributed under these terms. A "work based on the
-Library" means either the Library or any derivative work under
-copyright law: that is to say, a work containing the Library or a
-portion of it, either verbatim or with modifications and/or translated
-straightforwardly into another language. (Hereinafter, translation is
-included without limitation in the term "modification".)
-
- "Source code" for a work means the preferred form of the work for
-making modifications to it. For a library, complete source code means
-all the source code for all modules it contains, plus any associated
-interface definition files, plus the scripts used to control compilation
-and installation of the library.
-
- Activities other than copying, distribution and modification are not
-covered by this License; they are outside its scope. The act of
-running a program using the Library is not restricted, and output from
-such a program is covered only if its contents constitute a work based
-on the Library (independent of the use of the Library in a tool for
-writing it). Whether that is true depends on what the Library does
-and what the program that uses the Library does.
-
- 1. You may copy and distribute verbatim copies of the Library's
-complete source code as you receive it, in any medium, provided that
-you conspicuously and appropriately publish on each copy an
-appropriate copyright notice and disclaimer of warranty; keep intact
-all the notices that refer to this License and to the absence of any
-warranty; and distribute a copy of this License along with the
-Library.
-
- You may charge a fee for the physical act of transferring a copy,
-and you may at your option offer warranty protection in exchange for a
-fee.
-
- 2. You may modify your copy or copies of the Library or any portion
-of it, thus forming a work based on the Library, and copy and
-distribute such modifications or work under the terms of Section 1
-above, provided that you also meet all of these conditions:
-
- a) The modified work must itself be a software library.
-
- b) You must cause the files modified to carry prominent notices
- stating that you changed the files and the date of any change.
-
- c) You must cause the whole of the work to be licensed at no
- charge to all third parties under the terms of this License.
-
- d) If a facility in the modified Library refers to a function or a
- table of data to be supplied by an application program that uses
- the facility, other than as an argument passed when the facility
- is invoked, then you must make a good faith effort to ensure that,
- in the event an application does not supply such function or
- table, the facility still operates, and performs whatever part of
- its purpose remains meaningful.
-
- (For example, a function in a library to compute square roots has
- a purpose that is entirely well-defined independent of the
- application. Therefore, Subsection 2d requires that any
- application-supplied function or table used by this function must
- be optional: if the application does not supply it, the square
- root function must still compute square roots.)
-
-These requirements apply to the modified work as a whole. If
-identifiable sections of that work are not derived from the Library,
-and can be reasonably considered independent and separate works in
-themselves, then this License, and its terms, do not apply to those
-sections when you distribute them as separate works. But when you
-distribute the same sections as part of a whole which is a work based
-on the Library, the distribution of the whole must be on the terms of
-this License, whose permissions for other licensees extend to the
-entire whole, and thus to each and every part regardless of who wrote
-it.
-
-Thus, it is not the intent of this section to claim rights or contest
-your rights to work written entirely by you; rather, the intent is to
-exercise the right to control the distribution of derivative or
-collective works based on the Library.
-
-In addition, mere aggregation of another work not based on the Library
-with the Library (or with a work based on the Library) on a volume of
-a storage or distribution medium does not bring the other work under
-the scope of this License.
-
- 3. You may opt to apply the terms of the ordinary GNU General Public
-License instead of this License to a given copy of the Library. To do
-this, you must alter all the notices that refer to this License, so
-that they refer to the ordinary GNU General Public License, version 2,
-instead of to this License. (If a newer version than version 2 of the
-ordinary GNU General Public License has appeared, then you can specify
-that version instead if you wish.) Do not make any other change in
-these notices.
-
- Once this change is made in a given copy, it is irreversible for
-that copy, so the ordinary GNU General Public License applies to all
-subsequent copies and derivative works made from that copy.
-
- This option is useful when you wish to copy part of the code of
-the Library into a program that is not a library.
-
- 4. You may copy and distribute the Library (or a portion or
-derivative of it, under Section 2) in object code or executable form
-under the terms of Sections 1 and 2 above provided that you accompany
-it with the complete corresponding machine-readable source code, which
-must be distributed under the terms of Sections 1 and 2 above on a
-medium customarily used for software interchange.
-
- If distribution of object code is made by offering access to copy
-from a designated place, then offering equivalent access to copy the
-source code from the same place satisfies the requirement to
-distribute the source code, even though third parties are not
-compelled to copy the source along with the object code.
-
- 5. A program that contains no derivative of any portion of the
-Library, but is designed to work with the Library by being compiled or
-linked with it, is called a "work that uses the Library". Such a
-work, in isolation, is not a derivative work of the Library, and
-therefore falls outside the scope of this License.
-
- However, linking a "work that uses the Library" with the Library
-creates an executable that is a derivative of the Library (because it
-contains portions of the Library), rather than a "work that uses the
-library". The executable is therefore covered by this License.
-Section 6 states terms for distribution of such executables.
-
- When a "work that uses the Library" uses material from a header file
-that is part of the Library, the object code for the work may be a
-derivative work of the Library even though the source code is not.
-Whether this is true is especially significant if the work can be
-linked without the Library, or if the work is itself a library. The
-threshold for this to be true is not precisely defined by law.
-
- If such an object file uses only numerical parameters, data
-structure layouts and accessors, and small macros and small inline
-functions (ten lines or less in length), then the use of the object
-file is unrestricted, regardless of whether it is legally a derivative
-work. (Executables containing this object code plus portions of the
-Library will still fall under Section 6.)
-
- Otherwise, if the work is a derivative of the Library, you may
-distribute the object code for the work under the terms of Section 6.
-Any executables containing that work also fall under Section 6,
-whether or not they are linked directly with the Library itself.
-
- 6. As an exception to the Sections above, you may also combine or
-link a "work that uses the Library" with the Library to produce a
-work containing portions of the Library, and distribute that work
-under terms of your choice, provided that the terms permit
-modification of the work for the customer's own use and reverse
-engineering for debugging such modifications.
-
- You must give prominent notice with each copy of the work that the
-Library is used in it and that the Library and its use are covered by
-this License. You must supply a copy of this License. If the work
-during execution displays copyright notices, you must include the
-copyright notice for the Library among them, as well as a reference
-directing the user to the copy of this License. Also, you must do one
-of these things:
-
- a) Accompany the work with the complete corresponding
- machine-readable source code for the Library including whatever
- changes were used in the work (which must be distributed under
- Sections 1 and 2 above); and, if the work is an executable linked
- with the Library, with the complete machine-readable "work that
- uses the Library", as object code and/or source code, so that the
- user can modify the Library and then relink to produce a modified
- executable containing the modified Library. (It is understood
- that the user who changes the contents of definitions files in the
- Library will not necessarily be able to recompile the application
- to use the modified definitions.)
-
- b) Use a suitable shared library mechanism for linking with the
- Library. A suitable mechanism is one that (1) uses at run time a
- copy of the library already present on the user's computer system,
- rather than copying library functions into the executable, and (2)
- will operate properly with a modified version of the library, if
- the user installs one, as long as the modified version is
- interface-compatible with the version that the work was made with.
-
- c) Accompany the work with a written offer, valid for at
- least three years, to give the same user the materials
- specified in Subsection 6a, above, for a charge no more
- than the cost of performing this distribution.
-
- d) If distribution of the work is made by offering access to copy
- from a designated place, offer equivalent access to copy the above
- specified materials from the same place.
-
- e) Verify that the user has already received a copy of these
- materials or that you have already sent this user a copy.
-
- For an executable, the required form of the "work that uses the
-Library" must include any data and utility programs needed for
-reproducing the executable from it. However, as a special exception,
-the materials to be distributed need not include anything that is
-normally distributed (in either source or binary form) with the major
-components (compiler, kernel, and so on) of the operating system on
-which the executable runs, unless that component itself accompanies
-the executable.
-
- It may happen that this requirement contradicts the license
-restrictions of other proprietary libraries that do not normally
-accompany the operating system. Such a contradiction means you cannot
-use both them and the Library together in an executable that you
-distribute.
-
- 7. You may place library facilities that are a work based on the
-Library side-by-side in a single library together with other library
-facilities not covered by this License, and distribute such a combined
-library, provided that the separate distribution of the work based on
-the Library and of the other library facilities is otherwise
-permitted, and provided that you do these two things:
-
- a) Accompany the combined library with a copy of the same work
- based on the Library, uncombined with any other library
- facilities. This must be distributed under the terms of the
- Sections above.
-
- b) Give prominent notice with the combined library of the fact
- that part of it is a work based on the Library, and explaining
- where to find the accompanying uncombined form of the same work.
-
- 8. You may not copy, modify, sublicense, link with, or distribute
-the Library except as expressly provided under this License. Any
-attempt otherwise to copy, modify, sublicense, link with, or
-distribute the Library is void, and will automatically terminate your
-rights under this License. However, parties who have received copies,
-or rights, from you under this License will not have their licenses
-terminated so long as such parties remain in full compliance.
-
- 9. You are not required to accept this License, since you have not
-signed it. However, nothing else grants you permission to modify or
-distribute the Library or its derivative works. These actions are
-prohibited by law if you do not accept this License. Therefore, by
-modifying or distributing the Library (or any work based on the
-Library), you indicate your acceptance of this License to do so, and
-all its terms and conditions for copying, distributing or modifying
-the Library or works based on it.
-
- 10. Each time you redistribute the Library (or any work based on the
-Library), the recipient automatically receives a license from the
-original licensor to copy, distribute, link with or modify the Library
-subject to these terms and conditions. You may not impose any further
-restrictions on the recipients' exercise of the rights granted herein.
-You are not responsible for enforcing compliance by third parties with
-this License.
-
- 11. If, as a consequence of a court judgment or allegation of patent
-infringement or for any other reason (not limited to patent issues),
-conditions are imposed on you (whether by court order, agreement or
-otherwise) that contradict the conditions of this License, they do not
-excuse you from the conditions of this License. If you cannot
-distribute so as to satisfy simultaneously your obligations under this
-License and any other pertinent obligations, then as a consequence you
-may not distribute the Library at all. For example, if a patent
-license would not permit royalty-free redistribution of the Library by
-all those who receive copies directly or indirectly through you, then
-the only way you could satisfy both it and this License would be to
-refrain entirely from distribution of the Library.
-
-If any portion of this section is held invalid or unenforceable under any
-particular circumstance, the balance of the section is intended to apply,
-and the section as a whole is intended to apply in other circumstances.
-
-It is not the purpose of this section to induce you to infringe any
-patents or other property right claims or to contest validity of any
-such claims; this section has the sole purpose of protecting the
-integrity of the free software distribution system which is
-implemented by public license practices. Many people have made
-generous contributions to the wide range of software distributed
-through that system in reliance on consistent application of that
-system; it is up to the author/donor to decide if he or she is willing
-to distribute software through any other system and a licensee cannot
-impose that choice.
-
-This section is intended to make thoroughly clear what is believed to
-be a consequence of the rest of this License.
-
- 12. If the distribution and/or use of the Library is restricted in
-certain countries either by patents or by copyrighted interfaces, the
-original copyright holder who places the Library under this License may add
-an explicit geographical distribution limitation excluding those countries,
-so that distribution is permitted only in or among countries not thus
-excluded. In such case, this License incorporates the limitation as if
-written in the body of this License.
-
- 13. The Free Software Foundation may publish revised and/or new
-versions of the Lesser General Public License from time to time.
-Such new versions will be similar in spirit to the present version,
-but may differ in detail to address new problems or concerns.
-
-Each version is given a distinguishing version number. If the Library
-specifies a version number of this License which applies to it and
-"any later version", you have the option of following the terms and
-conditions either of that version or of any later version published by
-the Free Software Foundation. If the Library does not specify a
-license version number, you may choose any version ever published by
-the Free Software Foundation.
-
- 14. If you wish to incorporate parts of the Library into other free
-programs whose distribution conditions are incompatible with these,
-write to the author to ask for permission. For software which is
-copyrighted by the Free Software Foundation, write to the Free
-Software Foundation; we sometimes make exceptions for this. Our
-decision will be guided by the two goals of preserving the free status
-of all derivatives of our free software and of promoting the sharing
-and reuse of software generally.
-
- NO WARRANTY
-
- 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
-WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
-EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
-OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY
-KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
-IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
-PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
-LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
-THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
-
- 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
-WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
-AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU
-FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
-CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
-LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
-RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
-FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
-SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
-DAMAGES.
-
- END OF TERMS AND CONDITIONS
-
- How to Apply These Terms to Your New Libraries
-
- If you develop a new library, and you want it to be of the greatest
-possible use to the public, we recommend making it free software that
-everyone can redistribute and change. You can do so by permitting
-redistribution under these terms (or, alternatively, under the terms of the
-ordinary General Public License).
-
- To apply these terms, attach the following notices to the library. It is
-safest to attach them to the start of each source file to most effectively
-convey the exclusion of warranty; and each file should have at least the
-"copyright" line and a pointer to where the full notice is found.
-
- <one line to give the library's name and a brief idea of what it does.>
- Copyright (C) <year> <name of author>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with this library; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-
-Also add information on how to contact you by electronic and paper mail.
-
-You should also get your employer (if you work as a programmer) or your
-school, if any, to sign a "copyright disclaimer" for the library, if
-necessary. Here is a sample; alter the names:
-
- Yoyodyne, Inc., hereby disclaims all copyright interest in the
- library `Frob' (a library for tweaking knobs) written by James Random Hacker.
-
- <signature of Ty Coon>, 1 April 1990
- Ty Coon, President of Vice
-
-That's all there is to it!
-
-
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/services/jbpm/lib/ext/build-time/jcr-1.0.jar
===================================================================
(Binary files differ)
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/services/jbpm/lib/ext/build-time/jcr-1.0.jar.license.txt
===================================================================
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/services/jbpm/lib/ext/build-time/servlet-api.jar
===================================================================
(Binary files differ)
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/services/jbpm/lib/ext/build-time/servlet-api.jar.license.txt
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/services/jbpm/lib/ext/build-time/servlet-api.jar.license.txt 2009-01-21 14:47:17 UTC (rev 24849)
+++ labs/jbossesb/workspace/mlittle/legstar/product/services/jbpm/lib/ext/build-time/servlet-api.jar.license.txt 2009-01-21 15:38:08 UTC (rev 24850)
@@ -1,202 +0,0 @@
-
- Apache License
- Version 2.0, January 2004
- http://www.apache.org/licenses/
-
- TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
- 1. Definitions.
-
- "License" shall mean the terms and conditions for use, reproduction,
- and distribution as defined by Sections 1 through 9 of this document.
-
- "Licensor" shall mean the copyright owner or entity authorized by
- the copyright owner that is granting the License.
-
- "Legal Entity" shall mean the union of the acting entity and all
- other entities that control, are controlled by, or are under common
- control with that entity. For the purposes of this definition,
- "control" means (i) the power, direct or indirect, to cause the
- direction or management of such entity, whether by contract or
- otherwise, or (ii) ownership of fifty percent (50%) or more of the
- outstanding shares, or (iii) beneficial ownership of such entity.
-
- "You" (or "Your") shall mean an individual or Legal Entity
- exercising permissions granted by this License.
-
- "Source" form shall mean the preferred form for making modifications,
- including but not limited to software source code, documentation
- source, and configuration files.
-
- "Object" form shall mean any form resulting from mechanical
- transformation or translation of a Source form, including but
- not limited to compiled object code, generated documentation,
- and conversions to other media types.
-
- "Work" shall mean the work of authorship, whether in Source or
- Object form, made available under the License, as indicated by a
- copyright notice that is included in or attached to the work
- (an example is provided in the Appendix below).
-
- "Derivative Works" shall mean any work, whether in Source or Object
- form, that is based on (or derived from) the Work and for which the
- editorial revisions, annotations, elaborations, or other modifications
- represent, as a whole, an original work of authorship. For the purposes
- of this License, Derivative Works shall not include works that remain
- separable from, or merely link (or bind by name) to the interfaces of,
- the Work and Derivative Works thereof.
-
- "Contribution" shall mean any work of authorship, including
- the original version of the Work and any modifications or additions
- to that Work or Derivative Works thereof, that is intentionally
- submitted to Licensor for inclusion in the Work by the copyright owner
- or by an individual or Legal Entity authorized to submit on behalf of
- the copyright owner. For the purposes of this definition, "submitted"
- means any form of electronic, verbal, or written communication sent
- to the Licensor or its representatives, including but not limited to
- communication on electronic mailing lists, source code control systems,
- and issue tracking systems that are managed by, or on behalf of, the
- Licensor for the purpose of discussing and improving the Work, but
- excluding communication that is conspicuously marked or otherwise
- designated in writing by the copyright owner as "Not a Contribution."
-
- "Contributor" shall mean Licensor and any individual or Legal Entity
- on behalf of whom a Contribution has been received by Licensor and
- subsequently incorporated within the Work.
-
- 2. Grant of Copyright License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- copyright license to reproduce, prepare Derivative Works of,
- publicly display, publicly perform, sublicense, and distribute the
- Work and such Derivative Works in Source or Object form.
-
- 3. Grant of Patent License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- (except as stated in this section) patent license to make, have made,
- use, offer to sell, sell, import, and otherwise transfer the Work,
- where such license applies only to those patent claims licensable
- by such Contributor that are necessarily infringed by their
- Contribution(s) alone or by combination of their Contribution(s)
- with the Work to which such Contribution(s) was submitted. If You
- institute patent litigation against any entity (including a
- cross-claim or counterclaim in a lawsuit) alleging that the Work
- or a Contribution incorporated within the Work constitutes direct
- or contributory patent infringement, then any patent licenses
- granted to You under this License for that Work shall terminate
- as of the date such litigation is filed.
-
- 4. Redistribution. You may reproduce and distribute copies of the
- Work or Derivative Works thereof in any medium, with or without
- modifications, and in Source or Object form, provided that You
- meet the following conditions:
-
- (a) You must give any other recipients of the Work or
- Derivative Works a copy of this License; and
-
- (b) You must cause any modified files to carry prominent notices
- stating that You changed the files; and
-
- (c) You must retain, in the Source form of any Derivative Works
- that You distribute, all copyright, patent, trademark, and
- attribution notices from the Source form of the Work,
- excluding those notices that do not pertain to any part of
- the Derivative Works; and
-
- (d) If the Work includes a "NOTICE" text file as part of its
- distribution, then any Derivative Works that You distribute must
- include a readable copy of the attribution notices contained
- within such NOTICE file, excluding those notices that do not
- pertain to any part of the Derivative Works, in at least one
- of the following places: within a NOTICE text file distributed
- as part of the Derivative Works; within the Source form or
- documentation, if provided along with the Derivative Works; or,
- within a display generated by the Derivative Works, if and
- wherever such third-party notices normally appear. The contents
- of the NOTICE file are for informational purposes only and
- do not modify the License. You may add Your own attribution
- notices within Derivative Works that You distribute, alongside
- or as an addendum to the NOTICE text from the Work, provided
- that such additional attribution notices cannot be construed
- as modifying the License.
-
- You may add Your own copyright statement to Your modifications and
- may provide additional or different license terms and conditions
- for use, reproduction, or distribution of Your modifications, or
- for any such Derivative Works as a whole, provided Your use,
- reproduction, and distribution of the Work otherwise complies with
- the conditions stated in this License.
-
- 5. Submission of Contributions. Unless You explicitly state otherwise,
- any Contribution intentionally submitted for inclusion in the Work
- by You to the Licensor shall be under the terms and conditions of
- this License, without any additional terms or conditions.
- Notwithstanding the above, nothing herein shall supersede or modify
- the terms of any separate license agreement you may have executed
- with Licensor regarding such Contributions.
-
- 6. Trademarks. This License does not grant permission to use the trade
- names, trademarks, service marks, or product names of the Licensor,
- except as required for reasonable and customary use in describing the
- origin of the Work and reproducing the content of the NOTICE file.
-
- 7. Disclaimer of Warranty. Unless required by applicable law or
- agreed to in writing, Licensor provides the Work (and each
- Contributor provides its Contributions) on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
- implied, including, without limitation, any warranties or conditions
- of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
- PARTICULAR PURPOSE. You are solely responsible for determining the
- appropriateness of using or redistributing the Work and assume any
- risks associated with Your exercise of permissions under this License.
-
- 8. Limitation of Liability. In no event and under no legal theory,
- whether in tort (including negligence), contract, or otherwise,
- unless required by applicable law (such as deliberate and grossly
- negligent acts) or agreed to in writing, shall any Contributor be
- liable to You for damages, including any direct, indirect, special,
- incidental, or consequential damages of any character arising as a
- result of this License or out of the use or inability to use the
- Work (including but not limited to damages for loss of goodwill,
- work stoppage, computer failure or malfunction, or any and all
- other commercial damages or losses), even if such Contributor
- has been advised of the possibility of such damages.
-
- 9. Accepting Warranty or Additional Liability. While redistributing
- the Work or Derivative Works thereof, You may choose to offer,
- and charge a fee for, acceptance of support, warranty, indemnity,
- or other liability obligations and/or rights consistent with this
- License. However, in accepting such obligations, You may act only
- on Your own behalf and on Your sole responsibility, not on behalf
- of any other Contributor, and only if You agree to indemnify,
- defend, and hold each Contributor harmless for any liability
- incurred by, or claims asserted against, such Contributor by reason
- of your accepting any such warranty or additional liability.
-
- END OF TERMS AND CONDITIONS
-
- APPENDIX: How to apply the Apache License to your work.
-
- To apply the Apache License to your work, attach the following
- boilerplate notice, with the fields enclosed by brackets "[]"
- replaced with your own identifying information. (Don't include
- the brackets!) The text should be enclosed in the appropriate
- comment syntax for the file format. We also recommend that a
- file or class name and description of purpose be included on the
- same "printed page" as the copyright notice for easier
- identification within third-party archives.
-
- Copyright [yyyy] [name of copyright owner]
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/services/jbpm/lib/ext/dom4j.jar
===================================================================
(Binary files differ)
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/services/jbpm/lib/ext/dom4j.jar.license.txt
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/services/jbpm/lib/ext/dom4j.jar.license.txt 2009-01-21 14:47:17 UTC (rev 24849)
+++ labs/jbossesb/workspace/mlittle/legstar/product/services/jbpm/lib/ext/dom4j.jar.license.txt 2009-01-21 15:38:08 UTC (rev 24850)
@@ -1,12 +0,0 @@
-Redistribution and use of this software and associated documentation ("Software"), with or without modification, are permitted provided that the following conditions are met:
-
- 1. Redistributions of source code must retain copyright statements and notices. Redistributions must also contain a copy of this document.
- 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
- 3. The name "DOM4J" must not be used to endorse or promote products derived from this Software without prior written permission of MetaStuff, Ltd. For written permission, please contact dom4j-info at metastuff.com.
- 4. Products derived from this Software may not be called "DOM4J" nor may "DOM4J" appear in their names without prior written permission of MetaStuff, Ltd. DOM4J is a registered trademark of MetaStuff, Ltd.
- 5. Due credit should be given to the DOM4J Project - http://www.dom4j.org
-
-THIS SOFTWARE IS PROVIDED BY METASTUFF, LTD. AND CONTRIBUTORS ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL METASTUFF, LTD. OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-Copyright 2001-2004 (C) MetaStuff, Ltd. All Rights Reserved.
-
Copied: labs/jbossesb/workspace/mlittle/legstar/product/services/jbpm/lib/ext/jbpm-identity-config.jar (from rev 24846, labs/jbossesb/trunk/product/services/jbpm/lib/ext/jbpm-identity-config.jar)
===================================================================
(Binary files differ)
Modified: labs/jbossesb/workspace/mlittle/legstar/product/services/jbpm/lib/ext/jbpm-identity.jar
===================================================================
(Binary files differ)
Modified: labs/jbossesb/workspace/mlittle/legstar/product/services/jbpm/lib/ext/jbpm-jpdl.jar
===================================================================
(Binary files differ)
Modified: labs/jbossesb/workspace/mlittle/legstar/product/services/jbpm/src/main/java/org/jboss/soa/esb/services/jbpm/Constants.java
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/services/jbpm/src/main/java/org/jboss/soa/esb/services/jbpm/Constants.java 2009-01-21 14:47:17 UTC (rev 24849)
+++ labs/jbossesb/workspace/mlittle/legstar/product/services/jbpm/src/main/java/org/jboss/soa/esb/services/jbpm/Constants.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -66,6 +66,7 @@
public static final String JBPM_LOG_MAP ="jbpmLogMap";
public static final String REPLY_TO ="jbpmReplyTo";
public static final String FAULT_TO ="jbpmFaultTo";
+ public static final String ESB_MESSAGE_ID ="jbpmEsbMessageId";
// Possible values of return codes after execution of an action
public static final String RETCODE_OK ="jbpmReturnOK";
Copied: labs/jbossesb/workspace/mlittle/legstar/product/services/jbpm/src/main/java/org/jboss/soa/esb/services/jbpm/actionhandlers/ActionUtil.java (from rev 24846, labs/jbossesb/trunk/product/services/jbpm/src/main/java/org/jboss/soa/esb/services/jbpm/actionhandlers/ActionUtil.java)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/services/jbpm/src/main/java/org/jboss/soa/esb/services/jbpm/actionhandlers/ActionUtil.java (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/services/jbpm/src/main/java/org/jboss/soa/esb/services/jbpm/actionhandlers/ActionUtil.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -0,0 +1,56 @@
+/*
+ * JBoss, Home of Professional Open Source Copyright 2009, Red Hat Middleware
+ * LLC, and individual contributors by the @authors tag. See the copyright.txt
+ * in the distribution for a full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it under the
+ * terms of the GNU Lesser General Public License as published by the Free
+ * Software Foundation; either version 2.1 of the License, or (at your option)
+ * any later version.
+ *
+ * This software is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+ * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
+ * details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this software; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA, or see the FSF
+ * site: http://www.fsf.org.
+ */
+package org.jboss.soa.esb.services.jbpm.actionhandlers;
+
+import static org.jboss.soa.esb.services.jbpm.Constants.REPLY_TO;
+import static org.jboss.soa.esb.services.jbpm.Constants.FAULT_TO;
+import static org.jboss.soa.esb.services.jbpm.Constants.ESB_MESSAGE_ID;
+
+import java.net.URI;
+
+import org.jboss.soa.esb.message.Message;
+import org.jbpm.context.exe.ContextInstance;
+
+/**
+ * Utils class for methods that are common to different EsbAction handlers
+ * and notifiers.
+ *
+ * @author <a href="mailto:dbevenius at jboss.com">Daniel Bevenius</a>
+ *
+ */
+public final class ActionUtil
+{
+ private ActionUtil()
+ {
+ }
+
+ public static boolean isReplyToOrFaultToSet(final ContextInstance ci)
+ {
+ return ci.getVariable(REPLY_TO) != null || ci.getVariable(FAULT_TO) != null;
+ }
+
+ public static void setRelatesToMessageId(final ContextInstance ci, final Message message)
+ {
+ final URI esbMessageId = (URI) ci.getVariable(ESB_MESSAGE_ID);
+ message.getHeader().getCall().setRelatesTo(esbMessageId);
+ }
+
+}
Modified: labs/jbossesb/workspace/mlittle/legstar/product/services/jbpm/src/main/java/org/jboss/soa/esb/services/jbpm/actionhandlers/EsbActionHandler.java
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/services/jbpm/src/main/java/org/jboss/soa/esb/services/jbpm/actionhandlers/EsbActionHandler.java 2009-01-21 14:47:17 UTC (rev 24849)
+++ labs/jbossesb/workspace/mlittle/legstar/product/services/jbpm/src/main/java/org/jboss/soa/esb/services/jbpm/actionhandlers/EsbActionHandler.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -21,6 +21,7 @@
*/
package org.jboss.soa.esb.services.jbpm.actionhandlers;
+import static org.jboss.soa.esb.services.jbpm.actionhandlers.ActionUtil.*;
import org.apache.log4j.Logger;
import org.dom4j.tree.DefaultElement;
import org.jboss.internal.soa.esb.addressing.helpers.EPRHelper;
@@ -112,12 +113,19 @@
EPR faultTo = createFaultTo(esbToBpmVarsXml, globalProcessScope, executionContext);
message.getHeader().getCall().setFaultTo(faultTo);
}
+
+ final ContextInstance contextInstance = executionContext.getContextInstance() ;
+
+ if (isReplyToOrFaultToSet(contextInstance))
+ {
+ setRelatesToMessageId(contextInstance, message);
+ }
+
//Sending the message on its way
if (logger.isDebugEnabled()) logger.debug("Created ESB message=" + message);
if (replyToOriginator != null) {
final EPR epr ;
- final ContextInstance contextInstance = executionContext.getContextInstance() ;
final Object replyToEPR = contextInstance.getVariable(Constants.REPLY_TO);
final Object faultToEPR = contextInstance.getVariable(Constants.FAULT_TO);
@@ -128,6 +136,8 @@
} else {
throw new ConfigurationException("No EPR present in process instance") ;
}
+
+
if(epr instanceof LogicalEPR) {
final ServiceInvoker invoker = ((LogicalEPR)epr).getServiceInvoker();
invoker.deliverAsync(message);
@@ -144,6 +154,7 @@
}
logger.debug("Message send successfully");
}
+
/**
* Caches the most recently used ServiceInvokers.
*
Modified: labs/jbossesb/workspace/mlittle/legstar/product/services/jbpm/src/main/java/org/jboss/soa/esb/services/jbpm/actionhandlers/EsbNotifier.java
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/services/jbpm/src/main/java/org/jboss/soa/esb/services/jbpm/actionhandlers/EsbNotifier.java 2009-01-21 14:47:17 UTC (rev 24849)
+++ labs/jbossesb/workspace/mlittle/legstar/product/services/jbpm/src/main/java/org/jboss/soa/esb/services/jbpm/actionhandlers/EsbNotifier.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -21,6 +21,8 @@
*/
package org.jboss.soa.esb.services.jbpm.actionhandlers;
+import static org.jboss.soa.esb.services.jbpm.actionhandlers.ActionUtil.*;
+
import org.apache.log4j.Logger;
import org.dom4j.tree.DefaultElement;
import org.jboss.internal.soa.esb.addressing.helpers.EPRHelper;
@@ -99,10 +101,17 @@
}
JBpmObjectMapper mapper = new JBpmObjectMapper();
Message message = mapper.mapFromJBpmToEsbMessage(bpmToEsbVars, globalProcessScope, executionContext);
+
+ final ContextInstance contextInstance = executionContext.getContextInstance();
+
+ if (isReplyToOrFaultToSet(contextInstance))
+ {
+ setRelatesToMessageId(contextInstance, message);
+ }
+
if (logger.isDebugEnabled()) logger.debug("Created ESB message=" + message);
if (replyToOriginator != null) {
final EPR epr ;
- final ContextInstance contextInstance = executionContext.getContextInstance() ;
final Object replyToEPR = contextInstance.getVariable(Constants.REPLY_TO);
final Object faultToEPR = contextInstance.getVariable(Constants.FAULT_TO);
Modified: labs/jbossesb/workspace/mlittle/legstar/product/services/jbpm/src/main/java/org/jboss/soa/esb/services/jbpm/cmd/CommandExecutor.java
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/services/jbpm/src/main/java/org/jboss/soa/esb/services/jbpm/cmd/CommandExecutor.java 2009-01-21 14:47:17 UTC (rev 24849)
+++ labs/jbossesb/workspace/mlittle/legstar/product/services/jbpm/src/main/java/org/jboss/soa/esb/services/jbpm/cmd/CommandExecutor.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -172,21 +172,21 @@
perform(request,_start);
}
- private void perform(Message request, boolean start)
+ private void perform(Message esbMessage, boolean start)
{
ObjectMapper objectMapper = new ObjectMapper();
final NewProcessInstanceCommand command ;
if (start) {
- final String transition = MessageHelper.getStringValue(request, Constants.TRANSITION_NAME);
+ final String transition = MessageHelper.getStringValue(esbMessage, Constants.TRANSITION_NAME);
command = new AsyncStartProcessInstanceCommand(transition);
} else {
command = new NewProcessInstanceCommand();
}
- Long processDefId = MessageHelper.getLongValue(request,Constants.PROCESS_DEFINITION_ID);
+ Long processDefId = MessageHelper.getLongValue(esbMessage,Constants.PROCESS_DEFINITION_ID);
if (null!=processDefId) {
command.setProcessId(processDefId);
} else {
- String processName = MessageHelper.getStringValue(request,Constants.PROCESS_DEFINITION_NAME);
+ String processName = MessageHelper.getStringValue(esbMessage,Constants.PROCESS_DEFINITION_NAME);
if (null!=processName) {
command.setProcessName(processName);
} else {
@@ -194,24 +194,24 @@
+" or "+Constants.PROCESS_DEFINITION_ID+" must have a valid value");
}
}
- String keyPath = MessageHelper.getStringValue(request, Constants.KEYPATH);
+ String keyPath = MessageHelper.getStringValue(esbMessage, Constants.KEYPATH);
if (keyPath!=null) {
try {
- String key = String.valueOf(objectMapper.getObjectFromMessage(request, keyPath));
+ String key = String.valueOf(objectMapper.getObjectFromMessage(esbMessage, keyPath));
command.setKey(key);
} catch (ObjectMappingException e) {
logger.error("Could not locate key " + e.getMessage(), e);
}
}
- String actorId=MessageHelper.getStringValue(request, Constants.ACTOR_ID);
+ String actorId=MessageHelper.getStringValue(esbMessage, Constants.ACTOR_ID);
if (null!=actorId) command.setActorId(actorId);
- Boolean createStartTask = MessageHelper.getBooleanValue(request, Constants.CREATE_START_TASK);
+ Boolean createStartTask = MessageHelper.getBooleanValue(esbMessage, Constants.CREATE_START_TASK);
if (null!=createStartTask) command.setCreateStartTask(createStartTask);
- Map<String, Object> variables = MessageHelper.getVariablesMap(request, Constants.VARIABLE_VALUES);
+ Map<String, Object> variables = MessageHelper.getVariablesMap(esbMessage, Constants.VARIABLE_VALUES);
- final String replyTo = MessageHelper.getStringValue(request, Constants.REPLY_TO) ;
- final String faultTo = MessageHelper.getStringValue(request, Constants.FAULT_TO) ;
+ final String replyTo = MessageHelper.getStringValue(esbMessage, Constants.REPLY_TO) ;
+ final String faultTo = MessageHelper.getStringValue(esbMessage, Constants.FAULT_TO) ;
if ((replyTo != null) || (faultTo != null)) {
final Map<String, Object> newVariables = (variables == null ? new HashMap<String, Object>() : new HashMap<String, Object>(variables)) ;
@@ -221,6 +221,8 @@
if (faultTo != null) {
newVariables.put(Constants.FAULT_TO, faultTo) ;
}
+ newVariables.put(Constants.ESB_MESSAGE_ID, esbMessage.getHeader().getCall().getMessageID());
+
variables = newVariables ;
}
if (null!=variables) command.setVariables(variables);
Modified: labs/jbossesb/workspace/mlittle/legstar/product/services/jbpm/src/main/resources/hibernate.cfg.xml
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/services/jbpm/src/main/resources/hibernate.cfg.xml 2009-01-21 14:47:17 UTC (rev 24849)
+++ labs/jbossesb/workspace/mlittle/legstar/product/services/jbpm/src/main/resources/hibernate.cfg.xml 2009-01-21 15:38:08 UTC (rev 24850)
@@ -1,196 +1,270 @@
<?xml version='1.0' encoding='utf-8'?>
-<!DOCTYPE hibernate-configuration PUBLIC
- "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
- "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
+<!DOCTYPE hibernate-configuration PUBLIC
+"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
+"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
- <session-factory>
+<session-factory>
<!-- hibernate dialect -->
<property name="hibernate.dialect">org.hibernate.dialect.HSQLDialect</property>
- <!-- JDBC connection properties (begin)
+ <!-- JDBC connection properties (begin)-->
+ <!--
<property name="hibernate.connection.driver_class">org.hsqldb.jdbcDriver</property>
<property name="hibernate.connection.url">jdbc:hsqldb:mem:jbpm</property>
<property name="hibernate.connection.username">sa</property>
<property name="hibernate.connection.password"></property>
- JDBC connection properties (end) -->
-
-
+ -->
<!-- JDBC connection properties (end) -->
-
- <property name="hibernate.cache.provider_class">org.hibernate.cache.HashtableCacheProvider</property>
-
- <!-- DataSource properties (begin) === -->
- <property name="hibernate.connection.datasource">java:/JbpmDS</property>
- <!-- ==== DataSource properties (end) -->
-
+
+ <property name="jta.UserTransaction">UserTransaction</property>
+
+ <property name="hibernate.current_session_context_class">jta</property>
+
+ <!-- DataSource properties (begin) ===
+ ==== DataSource properties (end) -->
+ <property name="hibernate.connection.datasource">java:/JbpmDS</property>
+
<!-- JTA transaction properties (begin) ===
==== JTA transaction properties (end) -->
<property name="hibernate.transaction.factory_class">org.hibernate.transaction.JTATransactionFactory</property>
<property name="hibernate.transaction.manager_lookup_class">org.hibernate.transaction.JBossTransactionManagerLookup</property>
-
+
<!-- CMT transaction properties (begin) ===
<property name="hibernate.transaction.factory_class">org.hibernate.transaction.CMTTransactionFactory</property>
<property name="hibernate.transaction.manager_lookup_class">org.hibernate.transaction.JBossTransactionManagerLookup</property>
- ==== CMT transaction properties (end) -->
-
- <!-- logging properties (begin) ===
- <property name="hibernate.show_sql">true</property>
+ ==== CMT transaction properties (end) -->
+
+ <!-- ################################### -->
+ <!-- # common settings # -->
+ <!-- ################################### -->
+
+ <!-- Automatic schema creation (begin) -->
+ <!--
+ <property name="hibernate.hbm2ddl.auto">create</property>
+ -->
+ <!-- Automatic schema creation (end) -->
+
+ <!-- Simple memory-only cache -->
+ <property name="hibernate.cache.provider_class">org.hibernate.cache.HashtableCacheProvider</property>
+
+ <!-- logging properties -->
<property name="hibernate.format_sql">true</property>
<property name="hibernate.use_sql_comments">true</property>
- ==== logging properties (end) -->
-
+
<!-- ############################################ -->
<!-- # mapping files with external dependencies # -->
<!-- ############################################ -->
- <!-- following mapping file has a dependendy on -->
- <!-- 'bsh-{version}.jar'. -->
- <!-- uncomment this if you don't have bsh on your -->
- <!-- classpath. you won't be able to use the -->
- <!-- script element in process definition files -->
- <mapping resource="org/jbpm/graph/action/Script.hbm.xml"/>
-
- <!-- following mapping files have a dependendy on -->
- <!-- 'jbpm-identity.jar', mapping files -->
- <!-- of the pluggable jbpm identity component. -->
- <!-- Uncomment the following 3 lines if you -->
- <!-- want to use the jBPM identity mgmgt -->
- <!-- component. -->
- <!-- identity mappings (begin) -->
- <mapping resource="org/jbpm/identity/User.hbm.xml"/>
- <mapping resource="org/jbpm/identity/Group.hbm.xml"/>
- <mapping resource="org/jbpm/identity/Membership.hbm.xml"/>
- <!-- identity mappings (end) -->
+ <!-- Additional mappings defined per module go here -->
+ <mapping resource="hibernate.extra.hbm.xml" />
+ <mapping resource="hibernate.identity.hbm.xml" />
- <!-- following mapping files have a dependendy on -->
- <!-- the JCR API -->
- <!-- jcr mappings (begin) ===
- <mapping resource="org/jbpm/context/exe/variableinstance/JcrNodeInstance.hbm.xml"/>
- ==== jcr mappings (end) -->
+ <!-- ###################### -->
+ <!-- # jbpm mapping files # -->
+ <!-- ###################### -->
- <!-- ###################### -->
- <!-- # jbpm mapping files # -->
- <!-- ###################### -->
+ <!-- hql queries and type defs -->
+ <mapping resource="org/jbpm/db/hibernate.queries.hbm.xml" />
+ <!-- hql queries used in simulation for querying historical data
+ uncomment if you want to use the GetSimulationInputCommand
+ or maybe you also want to use the queries yourself
+ be patient: the queries need the stddev function to be enabled in your dialect
+ more information on this can be found here: http://www.camunda.com/business_process_simulation_news/mysql_and_stddev.html -->
+ <!--
+ <mapping resource="org/jbpm/sim/bam/hibernate.queries.hbm.xml" />
+ -->
- <!-- hql queries and type defs -->
- <mapping resource="org/jbpm/db/hibernate.queries.hbm.xml" />
+ <!-- graph.action mapping files -->
+ <mapping resource="org/jbpm/graph/action/MailAction.hbm.xml"/>
- <!-- graph.action mapping files -->
- <mapping resource="org/jbpm/graph/action/MailAction.hbm.xml"/>
-
- <!-- graph.def mapping files -->
- <mapping resource="org/jbpm/graph/def/ProcessDefinition.hbm.xml"/>
- <mapping resource="org/jbpm/graph/def/Node.hbm.xml"/>
- <mapping resource="org/jbpm/graph/def/Transition.hbm.xml"/>
- <mapping resource="org/jbpm/graph/def/Event.hbm.xml"/>
- <mapping resource="org/jbpm/graph/def/Action.hbm.xml"/>
- <mapping resource="org/jbpm/graph/def/SuperState.hbm.xml"/>
- <mapping resource="org/jbpm/graph/def/ExceptionHandler.hbm.xml"/>
- <mapping resource="org/jbpm/instantiation/Delegation.hbm.xml"/>
+ <!-- graph.def mapping files -->
+ <mapping resource="org/jbpm/graph/def/ProcessDefinition.hbm.xml"/>
+ <mapping resource="org/jbpm/graph/def/Node.hbm.xml"/>
+ <mapping resource="org/jbpm/graph/def/Transition.hbm.xml"/>
+ <mapping resource="org/jbpm/graph/def/Event.hbm.xml"/>
+ <mapping resource="org/jbpm/graph/def/Action.hbm.xml"/>
+ <mapping resource="org/jbpm/graph/def/SuperState.hbm.xml"/>
+ <mapping resource="org/jbpm/graph/def/ExceptionHandler.hbm.xml"/>
+ <mapping resource="org/jbpm/instantiation/Delegation.hbm.xml"/>
- <!-- graph.node mapping files -->
- <mapping resource="org/jbpm/graph/node/StartState.hbm.xml"/>
- <mapping resource="org/jbpm/graph/node/EndState.hbm.xml"/>
- <mapping resource="org/jbpm/graph/node/ProcessState.hbm.xml"/>
- <mapping resource="org/jbpm/graph/node/Decision.hbm.xml"/>
- <mapping resource="org/jbpm/graph/node/Fork.hbm.xml"/>
- <mapping resource="org/jbpm/graph/node/Join.hbm.xml"/>
- <mapping resource="org/jbpm/graph/node/MailNode.hbm.xml"/>
- <mapping resource="org/jbpm/graph/node/State.hbm.xml"/>
- <mapping resource="org/jbpm/graph/node/TaskNode.hbm.xml"/>
+ <!-- ############################################ -->
+ <!-- # another mapping file with external dependencies # -->
+ <!-- ############################################ -->
+ <!-- following mapping file has a dependency on -->
+ <!-- 'bsh-{version}.jar'. -->
+ <!-- uncomment this if you don't have bsh on your -->
+ <!-- classpath. you won't be able to use the -->
+ <!-- script element in process definition files -->
+ <!-- has to be defined below org/jbpm/graph/def/Action.hbm.xml -->
+ <!-- due to the inline collection-cache elements below -->
+ <mapping resource="org/jbpm/graph/action/Script.hbm.xml"/>
- <!-- context.def mapping files -->
- <mapping resource="org/jbpm/context/def/ContextDefinition.hbm.xml"/>
- <mapping resource="org/jbpm/context/def/VariableAccess.hbm.xml"/>
+ <!-- graph.node mapping files -->
+ <mapping resource="org/jbpm/graph/node/StartState.hbm.xml"/>
+ <mapping resource="org/jbpm/graph/node/EndState.hbm.xml"/>
+ <mapping resource="org/jbpm/graph/node/ProcessState.hbm.xml"/>
+ <mapping resource="org/jbpm/graph/node/Decision.hbm.xml"/>
+ <mapping resource="org/jbpm/graph/node/Fork.hbm.xml"/>
+ <mapping resource="org/jbpm/graph/node/Join.hbm.xml"/>
+ <mapping resource="org/jbpm/graph/node/MailNode.hbm.xml"/>
+ <mapping resource="org/jbpm/graph/node/State.hbm.xml"/>
+ <mapping resource="org/jbpm/graph/node/TaskNode.hbm.xml"/>
- <!-- taskmgmt.def mapping files -->
- <mapping resource="org/jbpm/taskmgmt/def/TaskMgmtDefinition.hbm.xml"/>
- <mapping resource="org/jbpm/taskmgmt/def/Swimlane.hbm.xml"/>
- <mapping resource="org/jbpm/taskmgmt/def/Task.hbm.xml"/>
- <mapping resource="org/jbpm/taskmgmt/def/TaskController.hbm.xml"/>
+ <!-- context.def mapping files -->
+ <mapping resource="org/jbpm/context/def/ContextDefinition.hbm.xml"/>
+ <mapping resource="org/jbpm/context/def/VariableAccess.hbm.xml"/>
- <!-- module.def mapping files -->
- <mapping resource="org/jbpm/module/def/ModuleDefinition.hbm.xml"/>
+ <!-- bytes mapping files -->
+ <mapping resource="org/jbpm/bytes/ByteArray.hbm.xml"/>
- <!-- bytes mapping files -->
- <mapping resource="org/jbpm/bytes/ByteArray.hbm.xml"/>
+ <!-- module.def mapping files -->
+ <mapping resource="org/jbpm/module/def/ModuleDefinition.hbm.xml"/>
- <!-- file.def mapping files -->
- <mapping resource="org/jbpm/file/def/FileDefinition.hbm.xml"/>
+ <!-- file.def mapping files -->
+ <mapping resource="org/jbpm/file/def/FileDefinition.hbm.xml"/>
- <!-- scheduler.def mapping files -->
- <mapping resource="org/jbpm/scheduler/def/CreateTimerAction.hbm.xml"/>
- <mapping resource="org/jbpm/scheduler/def/CancelTimerAction.hbm.xml"/>
+ <!-- taskmgmt.def mapping files -->
+ <mapping resource="org/jbpm/taskmgmt/def/TaskMgmtDefinition.hbm.xml"/>
+ <mapping resource="org/jbpm/taskmgmt/def/Swimlane.hbm.xml"/>
+ <mapping resource="org/jbpm/taskmgmt/def/Task.hbm.xml"/>
+ <mapping resource="org/jbpm/taskmgmt/def/TaskController.hbm.xml"/>
- <!-- graph.exe mapping files -->
- <mapping resource="org/jbpm/graph/exe/Comment.hbm.xml"/>
- <mapping resource="org/jbpm/graph/exe/ProcessInstance.hbm.xml"/>
- <mapping resource="org/jbpm/graph/exe/Token.hbm.xml"/>
- <mapping resource="org/jbpm/graph/exe/RuntimeAction.hbm.xml"/>
+ <!-- scheduler.def mapping files -->
+ <mapping resource="org/jbpm/scheduler/def/CreateTimerAction.hbm.xml"/>
+ <mapping resource="org/jbpm/scheduler/def/CancelTimerAction.hbm.xml"/>
- <!-- module.exe mapping files -->
- <mapping resource="org/jbpm/module/exe/ModuleInstance.hbm.xml"/>
-
- <!-- context.exe mapping files -->
- <mapping resource="org/jbpm/context/exe/ContextInstance.hbm.xml"/>
- <mapping resource="org/jbpm/context/exe/TokenVariableMap.hbm.xml"/>
- <mapping resource="org/jbpm/context/exe/VariableInstance.hbm.xml"/>
- <mapping resource="org/jbpm/context/exe/variableinstance/ByteArrayInstance.hbm.xml"/>
- <mapping resource="org/jbpm/context/exe/variableinstance/DateInstance.hbm.xml"/>
- <mapping resource="org/jbpm/context/exe/variableinstance/DoubleInstance.hbm.xml"/>
- <mapping resource="org/jbpm/context/exe/variableinstance/HibernateLongInstance.hbm.xml"/>
- <mapping resource="org/jbpm/context/exe/variableinstance/HibernateStringInstance.hbm.xml"/>
- <mapping resource="org/jbpm/context/exe/variableinstance/LongInstance.hbm.xml"/>
- <mapping resource="org/jbpm/context/exe/variableinstance/NullInstance.hbm.xml"/>
- <mapping resource="org/jbpm/context/exe/variableinstance/StringInstance.hbm.xml"/>
+ <!-- graph.exe mapping files -->
+ <mapping resource="org/jbpm/graph/exe/Comment.hbm.xml"/>
+ <mapping resource="org/jbpm/graph/exe/ProcessInstance.hbm.xml"/>
+ <mapping resource="org/jbpm/graph/exe/Token.hbm.xml"/>
+ <mapping resource="org/jbpm/graph/exe/RuntimeAction.hbm.xml"/>
- <!-- job mapping files -->
- <mapping resource="org/jbpm/job/Job.hbm.xml"/>
- <mapping resource="org/jbpm/job/Timer.hbm.xml"/>
- <mapping resource="org/jbpm/job/ExecuteNodeJob.hbm.xml"/>
- <mapping resource="org/jbpm/job/ExecuteActionJob.hbm.xml"/>
+ <!-- module.exe mapping files -->
+ <mapping resource="org/jbpm/module/exe/ModuleInstance.hbm.xml"/>
- <!-- taskmgmt.exe mapping files -->
- <mapping resource="org/jbpm/taskmgmt/exe/TaskMgmtInstance.hbm.xml"/>
- <mapping resource="org/jbpm/taskmgmt/exe/TaskInstance.hbm.xml"/>
- <mapping resource="org/jbpm/taskmgmt/exe/PooledActor.hbm.xml"/>
- <mapping resource="org/jbpm/taskmgmt/exe/SwimlaneInstance.hbm.xml"/>
+ <!-- context.exe mapping files -->
+ <mapping resource="org/jbpm/context/exe/ContextInstance.hbm.xml"/>
+ <mapping resource="org/jbpm/context/exe/TokenVariableMap.hbm.xml"/>
+ <mapping resource="org/jbpm/context/exe/VariableInstance.hbm.xml"/>
+ <mapping resource="org/jbpm/context/exe/variableinstance/ByteArrayInstance.hbm.xml"/>
+ <mapping resource="org/jbpm/context/exe/variableinstance/DateInstance.hbm.xml"/>
+ <mapping resource="org/jbpm/context/exe/variableinstance/DoubleInstance.hbm.xml"/>
+ <mapping resource="org/jbpm/context/exe/variableinstance/HibernateLongInstance.hbm.xml"/>
+ <mapping resource="org/jbpm/context/exe/variableinstance/HibernateStringInstance.hbm.xml"/>
+ <mapping resource="org/jbpm/context/exe/variableinstance/LongInstance.hbm.xml"/>
+ <mapping resource="org/jbpm/context/exe/variableinstance/NullInstance.hbm.xml"/>
+ <mapping resource="org/jbpm/context/exe/variableinstance/StringInstance.hbm.xml"/>
- <!-- logging mapping files -->
- <mapping resource="org/jbpm/logging/log/ProcessLog.hbm.xml"/>
- <mapping resource="org/jbpm/logging/log/MessageLog.hbm.xml"/>
- <mapping resource="org/jbpm/logging/log/CompositeLog.hbm.xml"/>
- <mapping resource="org/jbpm/graph/log/ActionLog.hbm.xml"/>
- <mapping resource="org/jbpm/graph/log/NodeLog.hbm.xml"/>
- <mapping resource="org/jbpm/graph/log/ProcessInstanceCreateLog.hbm.xml"/>
- <mapping resource="org/jbpm/graph/log/ProcessInstanceEndLog.hbm.xml"/>
- <mapping resource="org/jbpm/graph/log/ProcessStateLog.hbm.xml"/>
- <mapping resource="org/jbpm/graph/log/SignalLog.hbm.xml"/>
- <mapping resource="org/jbpm/graph/log/TokenCreateLog.hbm.xml"/>
- <mapping resource="org/jbpm/graph/log/TokenEndLog.hbm.xml"/>
- <mapping resource="org/jbpm/graph/log/TransitionLog.hbm.xml"/>
- <mapping resource="org/jbpm/context/log/VariableLog.hbm.xml"/>
- <mapping resource="org/jbpm/context/log/VariableCreateLog.hbm.xml"/>
- <mapping resource="org/jbpm/context/log/VariableDeleteLog.hbm.xml"/>
- <mapping resource="org/jbpm/context/log/VariableUpdateLog.hbm.xml"/>
- <mapping resource="org/jbpm/context/log/variableinstance/ByteArrayUpdateLog.hbm.xml"/>
- <mapping resource="org/jbpm/context/log/variableinstance/DateUpdateLog.hbm.xml"/>
- <mapping resource="org/jbpm/context/log/variableinstance/DoubleUpdateLog.hbm.xml"/>
- <mapping resource="org/jbpm/context/log/variableinstance/HibernateLongUpdateLog.hbm.xml"/>
- <mapping resource="org/jbpm/context/log/variableinstance/HibernateStringUpdateLog.hbm.xml"/>
- <mapping resource="org/jbpm/context/log/variableinstance/LongUpdateLog.hbm.xml"/>
- <mapping resource="org/jbpm/context/log/variableinstance/StringUpdateLog.hbm.xml"/>
- <mapping resource="org/jbpm/taskmgmt/log/TaskLog.hbm.xml"/>
- <mapping resource="org/jbpm/taskmgmt/log/TaskCreateLog.hbm.xml"/>
- <mapping resource="org/jbpm/taskmgmt/log/TaskAssignLog.hbm.xml"/>
- <mapping resource="org/jbpm/taskmgmt/log/TaskEndLog.hbm.xml"/>
- <mapping resource="org/jbpm/taskmgmt/log/SwimlaneLog.hbm.xml"/>
- <mapping resource="org/jbpm/taskmgmt/log/SwimlaneCreateLog.hbm.xml"/>
- <mapping resource="org/jbpm/taskmgmt/log/SwimlaneAssignLog.hbm.xml"/>
-
- </session-factory>
+ <!-- job mapping files -->
+ <mapping resource="org/jbpm/job/Job.hbm.xml"/>
+ <mapping resource="org/jbpm/job/Timer.hbm.xml"/>
+ <mapping resource="org/jbpm/job/ExecuteNodeJob.hbm.xml"/>
+ <mapping resource="org/jbpm/job/ExecuteActionJob.hbm.xml"/>
+ <mapping resource="org/jbpm/job/CleanUpProcessJob.hbm.xml"/>
+
+ <!-- taskmgmt.exe mapping files -->
+ <mapping resource="org/jbpm/taskmgmt/exe/TaskMgmtInstance.hbm.xml"/>
+ <mapping resource="org/jbpm/taskmgmt/exe/TaskInstance.hbm.xml"/>
+ <mapping resource="org/jbpm/taskmgmt/exe/PooledActor.hbm.xml"/>
+ <mapping resource="org/jbpm/taskmgmt/exe/SwimlaneInstance.hbm.xml"/>
+
+ <!-- logging mapping files -->
+ <mapping resource="org/jbpm/logging/log/ProcessLog.hbm.xml"/>
+ <mapping resource="org/jbpm/logging/log/MessageLog.hbm.xml"/>
+ <mapping resource="org/jbpm/logging/log/CompositeLog.hbm.xml"/>
+ <mapping resource="org/jbpm/graph/log/ActionLog.hbm.xml"/>
+ <mapping resource="org/jbpm/graph/log/NodeLog.hbm.xml"/>
+ <mapping resource="org/jbpm/graph/log/ProcessInstanceCreateLog.hbm.xml"/>
+ <mapping resource="org/jbpm/graph/log/ProcessInstanceEndLog.hbm.xml"/>
+ <mapping resource="org/jbpm/graph/log/ProcessStateLog.hbm.xml"/>
+ <mapping resource="org/jbpm/graph/log/SignalLog.hbm.xml"/>
+ <mapping resource="org/jbpm/graph/log/TokenCreateLog.hbm.xml"/>
+ <mapping resource="org/jbpm/graph/log/TokenEndLog.hbm.xml"/>
+ <mapping resource="org/jbpm/graph/log/TransitionLog.hbm.xml"/>
+ <mapping resource="org/jbpm/context/log/VariableLog.hbm.xml"/>
+ <mapping resource="org/jbpm/context/log/VariableCreateLog.hbm.xml"/>
+ <mapping resource="org/jbpm/context/log/VariableDeleteLog.hbm.xml"/>
+ <mapping resource="org/jbpm/context/log/VariableUpdateLog.hbm.xml"/>
+ <mapping resource="org/jbpm/context/log/variableinstance/ByteArrayUpdateLog.hbm.xml"/>
+ <mapping resource="org/jbpm/context/log/variableinstance/DateUpdateLog.hbm.xml"/>
+ <mapping resource="org/jbpm/context/log/variableinstance/DoubleUpdateLog.hbm.xml"/>
+ <mapping resource="org/jbpm/context/log/variableinstance/HibernateLongUpdateLog.hbm.xml"/>
+ <mapping resource="org/jbpm/context/log/variableinstance/HibernateStringUpdateLog.hbm.xml"/>
+ <mapping resource="org/jbpm/context/log/variableinstance/LongUpdateLog.hbm.xml"/>
+ <mapping resource="org/jbpm/context/log/variableinstance/StringUpdateLog.hbm.xml"/>
+ <mapping resource="org/jbpm/taskmgmt/log/TaskLog.hbm.xml"/>
+ <mapping resource="org/jbpm/taskmgmt/log/TaskCreateLog.hbm.xml"/>
+ <mapping resource="org/jbpm/taskmgmt/log/TaskAssignLog.hbm.xml"/>
+ <mapping resource="org/jbpm/taskmgmt/log/TaskEndLog.hbm.xml"/>
+ <mapping resource="org/jbpm/taskmgmt/log/SwimlaneLog.hbm.xml"/>
+ <mapping resource="org/jbpm/taskmgmt/log/SwimlaneCreateLog.hbm.xml"/>
+ <mapping resource="org/jbpm/taskmgmt/log/SwimlaneAssignLog.hbm.xml"/>
+
+ <!-- ################################### -->
+ <!-- # cache settings # -->
+ <!-- # strategy="nonstrict-read-write" # -->
+ <!-- # can be used with hibernate.cache.provider_class=org.hibernate.cache.HashtableCacheProvider # -->
+ <!-- ################################### -->
+
+ <class-cache class="org.jbpm.context.def.VariableAccess" usage="nonstrict-read-write" />
+
+ <collection-cache collection="org.jbpm.file.def.FileDefinition.processFiles" usage="nonstrict-read-write" />
+
+ <collection-cache collection="org.jbpm.graph.action.Script.variableAccesses" usage="nonstrict-read-write" />
+
+ <class-cache class="org.jbpm.graph.def.Action" usage="nonstrict-read-write" />
+
+ <class-cache class="org.jbpm.graph.def.Event" usage="nonstrict-read-write" />
+ <collection-cache collection="org.jbpm.graph.def.Event.actions" usage="nonstrict-read-write" />
+
+ <class-cache class="org.jbpm.graph.def.ExceptionHandler" usage="nonstrict-read-write" />
+ <collection-cache collection="org.jbpm.graph.def.ExceptionHandler.actions" usage="nonstrict-read-write" />
+
+ <class-cache class="org.jbpm.graph.def.Node" usage="nonstrict-read-write" />
+ <collection-cache collection="org.jbpm.graph.def.Node.events" usage="nonstrict-read-write" />
+ <collection-cache collection="org.jbpm.graph.def.Node.exceptionHandlers" usage="nonstrict-read-write" />
+ <collection-cache collection="org.jbpm.graph.def.Node.leavingTransitions" usage="nonstrict-read-write" />
+ <collection-cache collection="org.jbpm.graph.def.Node.arrivingTransitions" usage="nonstrict-read-write" />
+
+ <class-cache class="org.jbpm.graph.def.ProcessDefinition" usage="nonstrict-read-write" />
+ <collection-cache collection="org.jbpm.graph.def.ProcessDefinition.events" usage="nonstrict-read-write" />
+ <collection-cache collection="org.jbpm.graph.def.ProcessDefinition.exceptionHandlers" usage="nonstrict-read-write" />
+ <collection-cache collection="org.jbpm.graph.def.ProcessDefinition.nodes" usage="nonstrict-read-write" />
+ <collection-cache collection="org.jbpm.graph.def.ProcessDefinition.actions" usage="nonstrict-read-write" />
+ <collection-cache collection="org.jbpm.graph.def.ProcessDefinition.definitions" usage="nonstrict-read-write" />
+
+ <collection-cache collection="org.jbpm.graph.def.SuperState.nodes" usage="nonstrict-read-write" />
+
+ <class-cache class="org.jbpm.graph.def.Transition" usage="nonstrict-read-write" />
+ <collection-cache collection="org.jbpm.graph.def.Transition.events" usage="nonstrict-read-write" />
+ <collection-cache collection="org.jbpm.graph.def.Transition.exceptionHandlers" usage="nonstrict-read-write" />
+
+ <collection-cache collection="org.jbpm.graph.node.Decision.decisionConditions" usage="nonstrict-read-write" />
+
+ <collection-cache collection="org.jbpm.graph.node.ProcessState.variableAccesses" usage="nonstrict-read-write" />
+
+ <collection-cache collection="org.jbpm.graph.node.TaskNode.tasks" usage="nonstrict-read-write" />
+
+ <class-cache class="org.jbpm.instantiation.Delegation" usage="nonstrict-read-write" />
+
+ <class-cache class="org.jbpm.module.def.ModuleDefinition" usage="nonstrict-read-write" />
+
+ <collection-cache collection="org.jbpm.taskmgmt.def.Swimlane.tasks" usage="nonstrict-read-write" />
+
+ <class-cache class="org.jbpm.taskmgmt.def.TaskController" usage="nonstrict-read-write" />
+ <collection-cache collection="org.jbpm.taskmgmt.def.TaskController.variableAccesses" usage="nonstrict-read-write" />
+
+ <class-cache class="org.jbpm.taskmgmt.def.Task" usage="nonstrict-read-write" />
+ <collection-cache collection="org.jbpm.taskmgmt.def.Task.events" usage="nonstrict-read-write" />
+ <collection-cache collection="org.jbpm.taskmgmt.def.Task.exceptionHandlers" usage="nonstrict-read-write" />
+
+ <collection-cache collection="org.jbpm.taskmgmt.def.TaskMgmtDefinition.swimlanes" usage="nonstrict-read-write" />
+ <collection-cache collection="org.jbpm.taskmgmt.def.TaskMgmtDefinition.tasks" usage="nonstrict-read-write" />
+
+
+</session-factory>
</hibernate-configuration>
Copied: labs/jbossesb/workspace/mlittle/legstar/product/services/jbpm/src/main/resources/jboss-service.xml (from rev 24846, labs/jbossesb/trunk/product/services/jbpm/src/main/resources/jboss-service.xml)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/services/jbpm/src/main/resources/jboss-service.xml (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/services/jbpm/src/main/resources/jboss-service.xml 2009-01-21 15:38:08 UTC (rev 24850)
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<server>
+ <!-- The custom JAAS login configuration that installs
+ a Configuration capable of dynamically updating the
+ config settings
+ -->
+ <mbean code="org.jboss.security.auth.login.DynamicLoginConfig" name="org.jboss.jbpm:service=LoginConfig">
+ <attribute name="PolicyConfig" serialDataType="jbxb">
+ <jaas:policy xsi:schemaLocation="urn:jboss:security-config:4.1 resource:security-config_4_1.xsd" xmlns:jaas="urn:jboss:security-config:4.1"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+ <jaas:application-policy name="jbpm-console">
+ <jaas:authentication>
+ <jaas:login-module code="org.jboss.security.auth.spi.DatabaseServerLoginModule" flag="required">
+ <jaas:module-option name="dsJndiName">java:/JbpmDS</jaas:module-option>
+ <jaas:module-option name="principalsQuery"> SELECT PASSWORD_ FROM JBPM_ID_USER WHERE NAME_=? </jaas:module-option>
+ <jaas:module-option name="rolesQuery">
+ SELECT g.NAME_ ,'Roles' FROM JBPM_ID_USER u, JBPM_ID_MEMBERSHIP m, JBPM_ID_GROUP g
+ WHERE g.TYPE_='security-role' AND m.GROUP_ = g.ID_ AND m.USER_ = u.ID_ AND u.NAME_=? </jaas:module-option>
+ </jaas:login-module>
+ </jaas:authentication>
+ </jaas:application-policy>
+ </jaas:policy>
+ </attribute>
+ <depends optional-attribute-name="LoginConfigService"> jboss.security:service=XMLLoginConfig</depends>
+ <depends optional-attribute-name="SecurityManagerService"> jboss.security:service=JaasSecurityManager</depends>
+ </mbean>
+</server>
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/services/jbpm/src/main/resources/jbpm-console.war
===================================================================
(Binary files differ)
Modified: labs/jbossesb/workspace/mlittle/legstar/product/services/jbpm/src/main/resources/jbpm-service.xml
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/services/jbpm/src/main/resources/jbpm-service.xml 2009-01-21 14:47:17 UTC (rev 24849)
+++ labs/jbossesb/workspace/mlittle/legstar/product/services/jbpm/src/main/resources/jbpm-service.xml 2009-01-21 15:38:08 UTC (rev 24850)
@@ -6,7 +6,7 @@
<mbean code="org.jboss.internal.soa.esb.dependencies.DatabaseInitializer"
name="jboss.esb:service=JBPMDatabaseInitializer">
<attribute name="Datasource">java:/JbpmDS</attribute>
- <attribute name="ExistsSql">select * from JBPM_ID_USER</attribute>
+ <attribute name="ExistsSql">select * from JBPM_ACTION</attribute>
<attribute name="SqlFiles">
jbpm-sql/jbpm.jpdl.hsqldb.sql,
jbpm-sql/import.sql
Modified: labs/jbossesb/workspace/mlittle/legstar/product/services/jbpm/src/main/resources/jbpm-sql/jbpm.jpdl.db2.sql
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/services/jbpm/src/main/resources/jbpm-sql/jbpm.jpdl.db2.sql 2009-01-21 14:47:17 UTC (rev 24849)
+++ labs/jbossesb/workspace/mlittle/legstar/product/services/jbpm/src/main/resources/jbpm-sql/jbpm.jpdl.db2.sql 2009-01-21 15:38:08 UTC (rev 24850)
@@ -1,167 +1,167 @@
-create table JBPM_ACTION (ID_ bigint generated by default as identity, class char(1) not null, NAME_ varchar(255), ISPROPAGATIONALLOWED_ smallint, ACTIONEXPRESSION_ varchar(255), ISASYNC_ smallint, REFERENCEDACTION_ bigint, ACTIONDELEGATION_ bigint, EVENT_ bigint, PROCESSDEFINITION_ bigint, EXPRESSION_ varchar(4000), TIMERNAME_ varchar(255), DUEDATE_ varchar(255), REPEAT_ varchar(255), TRANSITIONNAME_ varchar(255), TIMERACTION_ bigint, EVENTINDEX_ integer, EXCEPTIONHANDLER_ bigint, EXCEPTIONHANDLERINDEX_ integer, primary key (ID_));
-create table JBPM_BYTEARRAY (ID_ bigint generated by default as identity, NAME_ varchar(255), FILEDEFINITION_ bigint, primary key (ID_));
-create table JBPM_BYTEBLOCK (PROCESSFILE_ bigint not null, BYTES_ varchar(1024) for bit data, INDEX_ integer not null, primary key (PROCESSFILE_, INDEX_));
-create table JBPM_COMMENT (ID_ bigint generated by default as identity, VERSION_ integer not null, ACTORID_ varchar(255), TIME_ timestamp, MESSAGE_ varchar(4000), TOKEN_ bigint, TASKINSTANCE_ bigint, TOKENINDEX_ integer, TASKINSTANCEINDEX_ integer, primary key (ID_));
-create table JBPM_DECISIONCONDITIONS (DECISION_ bigint not null, TRANSITIONNAME_ varchar(255), EXPRESSION_ varchar(255), INDEX_ integer not null, primary key (DECISION_, INDEX_));
-create table JBPM_DELEGATION (ID_ bigint generated by default as identity, CLASSNAME_ varchar(4000), CONFIGURATION_ varchar(4000), CONFIGTYPE_ varchar(255), PROCESSDEFINITION_ bigint, primary key (ID_));
-create table JBPM_EVENT (ID_ bigint generated by default as identity, EVENTTYPE_ varchar(255), TYPE_ char(1), GRAPHELEMENT_ bigint, PROCESSDEFINITION_ bigint, NODE_ bigint, TRANSITION_ bigint, TASK_ bigint, primary key (ID_));
-create table JBPM_EXCEPTIONHANDLER (ID_ bigint generated by default as identity, EXCEPTIONCLASSNAME_ varchar(4000), TYPE_ char(1), GRAPHELEMENT_ bigint, PROCESSDEFINITION_ bigint, GRAPHELEMENTINDEX_ integer, NODE_ bigint, TRANSITION_ bigint, TASK_ bigint, primary key (ID_));
-create table JBPM_ID_GROUP (ID_ bigint generated by default as identity, CLASS_ char(1) not null, NAME_ varchar(255), TYPE_ varchar(255), PARENT_ bigint, primary key (ID_));
-create table JBPM_ID_MEMBERSHIP (ID_ bigint generated by default as identity, CLASS_ char(1) not null, NAME_ varchar(255), ROLE_ varchar(255), USER_ bigint, GROUP_ bigint, primary key (ID_));
-create table JBPM_ID_PERMISSIONS (ENTITY_ bigint not null, CLASS_ varchar(255), NAME_ varchar(255), ACTION_ varchar(255));
-create table JBPM_ID_USER (ID_ bigint generated by default as identity, CLASS_ char(1) not null, NAME_ varchar(255), EMAIL_ varchar(255), PASSWORD_ varchar(255), primary key (ID_));
-create table JBPM_JOB (ID_ bigint generated by default as identity, CLASS_ char(1) not null, VERSION_ integer not null, DUEDATE_ timestamp, PROCESSINSTANCE_ bigint, TOKEN_ bigint, TASKINSTANCE_ bigint, ISSUSPENDED_ smallint, ISEXCLUSIVE_ smallint, LOCKOWNER_ varchar(255), LOCKTIME_ timestamp, EXCEPTION_ varchar(4000), RETRIES_ integer, NAME_ varchar(255), REPEAT_ varchar(255), TRANSITIONNAME_ varchar(255), ACTION_ bigint, GRAPHELEMENTTYPE_ varchar(255), GRAPHELEMENT_ bigint, NODE_ bigint, primary key (ID_));
-create table JBPM_LOG (ID_ bigint generated by default as identity, CLASS_ char(1) not null, INDEX_ integer, DATE_ timestamp, TOKEN_ bigint, PARENT_ bigint, MESSAGE_ varchar(4000), EXCEPTION_ varchar(4000), ACTION_ bigint, NODE_ bigint, ENTER_ timestamp, LEAVE_ timestamp, DURATION_ bigint, NEWLONGVALUE_ bigint, TRANSITION_ bigint, CHILD_ bigint, SOURCENODE_ bigint, DESTINATIONNODE_ bigint, VARIABLEINSTANCE_ bigint, OLDBYTEARRAY_ bigint, NEWBYTEARRAY_ bigint, OLDDATEVALUE_ timestamp, NEWDATEVALUE_ timestamp, OLDDOUBLEVALUE_ double, NEWDOUBLEVALUE_ double, OLDLONGIDCLASS_ varchar(255), OLDLONGIDVALUE_ bigint, NEWLONGIDCLASS_ varchar(255), NEWLONGIDVALUE_ bigint, OLDSTRINGIDCLASS_ varchar(255), OLDSTRINGIDVALUE_ varchar(255), NEWSTRINGIDCLASS_ varchar(255), NEWSTRINGIDVALUE_ varchar(255), OLDLONGVALUE_ bigint, OLDSTRINGVALUE_ varchar(4000), NEWSTRINGVALUE_ varchar(4000), TASKINSTANCE_ bigint, TASKACTORID_ varchar(255), TASKOLDACTORID_ varchar(255), SWIMLANEINSTANCE_ bigint, pr!
imary key (ID_));
-create table JBPM_MODULEDEFINITION (ID_ bigint generated by default as identity, CLASS_ char(1) not null, NAME_ varchar(4000), PROCESSDEFINITION_ bigint, STARTTASK_ bigint, primary key (ID_));
-create table JBPM_MODULEINSTANCE (ID_ bigint generated by default as identity, CLASS_ char(1) not null, VERSION_ integer not null, PROCESSINSTANCE_ bigint, TASKMGMTDEFINITION_ bigint, NAME_ varchar(255), primary key (ID_));
-create table JBPM_NODE (ID_ bigint generated by default as identity, CLASS_ char(1) not null, NAME_ varchar(255), DESCRIPTION_ varchar(4000), PROCESSDEFINITION_ bigint, ISASYNC_ smallint, ISASYNCEXCL_ smallint, ACTION_ bigint, SUPERSTATE_ bigint, SUBPROCNAME_ varchar(255), SUBPROCESSDEFINITION_ bigint, DECISIONEXPRESSION_ varchar(255), DECISIONDELEGATION bigint, SCRIPT_ bigint, SIGNAL_ integer, CREATETASKS_ smallint, ENDTASKS_ smallint, NODECOLLECTIONINDEX_ integer, primary key (ID_));
-create table JBPM_POOLEDACTOR (ID_ bigint generated by default as identity, VERSION_ integer not null, ACTORID_ varchar(255), SWIMLANEINSTANCE_ bigint, primary key (ID_));
-create table JBPM_PROCESSDEFINITION (ID_ bigint generated by default as identity, CLASS_ char(1) not null, NAME_ varchar(255), DESCRIPTION_ varchar(4000), VERSION_ integer, ISTERMINATIONIMPLICIT_ smallint, STARTSTATE_ bigint, primary key (ID_));
-create table JBPM_PROCESSINSTANCE (ID_ bigint generated by default as identity, VERSION_ integer not null, KEY_ varchar(255), START_ timestamp, END_ timestamp, ISSUSPENDED_ smallint, PROCESSDEFINITION_ bigint, ROOTTOKEN_ bigint, SUPERPROCESSTOKEN_ bigint, primary key (ID_));
-create table JBPM_RUNTIMEACTION (ID_ bigint generated by default as identity, VERSION_ integer not null, EVENTTYPE_ varchar(255), TYPE_ char(1), GRAPHELEMENT_ bigint, PROCESSINSTANCE_ bigint, ACTION_ bigint, PROCESSINSTANCEINDEX_ integer, primary key (ID_));
-create table JBPM_SWIMLANE (ID_ bigint generated by default as identity, NAME_ varchar(255), ACTORIDEXPRESSION_ varchar(255), POOLEDACTORSEXPRESSION_ varchar(255), ASSIGNMENTDELEGATION_ bigint, TASKMGMTDEFINITION_ bigint, primary key (ID_));
-create table JBPM_SWIMLANEINSTANCE (ID_ bigint generated by default as identity, VERSION_ integer not null, NAME_ varchar(255), ACTORID_ varchar(255), SWIMLANE_ bigint, TASKMGMTINSTANCE_ bigint, primary key (ID_));
-create table JBPM_TASK (ID_ bigint generated by default as identity, NAME_ varchar(255), DESCRIPTION_ varchar(4000), PROCESSDEFINITION_ bigint, ISBLOCKING_ smallint, ISSIGNALLING_ smallint, CONDITION_ varchar(255), DUEDATE_ varchar(255), PRIORITY_ integer, ACTORIDEXPRESSION_ varchar(255), POOLEDACTORSEXPRESSION_ varchar(255), TASKMGMTDEFINITION_ bigint, TASKNODE_ bigint, STARTSTATE_ bigint, ASSIGNMENTDELEGATION_ bigint, SWIMLANE_ bigint, TASKCONTROLLER_ bigint, primary key (ID_));
-create table JBPM_TASKACTORPOOL (TASKINSTANCE_ bigint not null, POOLEDACTOR_ bigint not null, primary key (TASKINSTANCE_, POOLEDACTOR_));
-create table JBPM_TASKCONTROLLER (ID_ bigint generated by default as identity, TASKCONTROLLERDELEGATION_ bigint, primary key (ID_));
-create table JBPM_TASKINSTANCE (ID_ bigint generated by default as identity, CLASS_ char(1) not null, VERSION_ integer not null, NAME_ varchar(255), DESCRIPTION_ varchar(4000), ACTORID_ varchar(255), CREATE_ timestamp, START_ timestamp, END_ timestamp, DUEDATE_ timestamp, PRIORITY_ integer, ISCANCELLED_ smallint, ISSUSPENDED_ smallint, ISOPEN_ smallint, ISSIGNALLING_ smallint, ISBLOCKING_ smallint, TASK_ bigint, TOKEN_ bigint, PROCINST_ bigint, SWIMLANINSTANCE_ bigint, TASKMGMTINSTANCE_ bigint, primary key (ID_));
-create table JBPM_TOKEN (ID_ bigint generated by default as identity, VERSION_ integer not null, NAME_ varchar(255), START_ timestamp, END_ timestamp, NODEENTER_ timestamp, NEXTLOGINDEX_ integer, ISABLETOREACTIVATEPARENT_ smallint, ISTERMINATIONIMPLICIT_ smallint, ISSUSPENDED_ smallint, LOCK_ varchar(255), NODE_ bigint, PROCESSINSTANCE_ bigint, PARENT_ bigint, SUBPROCESSINSTANCE_ bigint, primary key (ID_));
-create table JBPM_TOKENVARIABLEMAP (ID_ bigint generated by default as identity, VERSION_ integer not null, TOKEN_ bigint, CONTEXTINSTANCE_ bigint, primary key (ID_));
-create table JBPM_TRANSITION (ID_ bigint generated by default as identity, NAME_ varchar(255), DESCRIPTION_ varchar(4000), PROCESSDEFINITION_ bigint, FROM_ bigint, TO_ bigint, CONDITION_ varchar(255), FROMINDEX_ integer, primary key (ID_));
-create table JBPM_VARIABLEACCESS (ID_ bigint generated by default as identity, VARIABLENAME_ varchar(255), ACCESS_ varchar(255), MAPPEDNAME_ varchar(255), SCRIPT_ bigint, PROCESSSTATE_ bigint, TASKCONTROLLER_ bigint, INDEX_ integer, primary key (ID_));
-create table JBPM_VARIABLEINSTANCE (ID_ bigint generated by default as identity, CLASS_ char(1) not null, VERSION_ integer not null, NAME_ varchar(255), CONVERTER_ char(1), TOKEN_ bigint, TOKENVARIABLEMAP_ bigint, PROCESSINSTANCE_ bigint, BYTEARRAYVALUE_ bigint, DATEVALUE_ timestamp, DOUBLEVALUE_ double, LONGIDCLASS_ varchar(255), LONGVALUE_ bigint, STRINGIDCLASS_ varchar(255), STRINGVALUE_ varchar(4000), TASKINSTANCE_ bigint, primary key (ID_));
-create index IDX_ACTION_EVENT on JBPM_ACTION (EVENT_);
-create index IDX_ACTION_ACTNDL on JBPM_ACTION (ACTIONDELEGATION_);
-create index IDX_ACTION_PROCDF on JBPM_ACTION (PROCESSDEFINITION_);
-alter table JBPM_ACTION add constraint FK_ACTION_EVENT foreign key (EVENT_) references JBPM_EVENT;
-alter table JBPM_ACTION add constraint FK_ACTION_EXPTHDL foreign key (EXCEPTIONHANDLER_) references JBPM_EXCEPTIONHANDLER;
-alter table JBPM_ACTION add constraint FK_ACTION_PROCDEF foreign key (PROCESSDEFINITION_) references JBPM_PROCESSDEFINITION;
-alter table JBPM_ACTION add constraint FK_CRTETIMERACT_TA foreign key (TIMERACTION_) references JBPM_ACTION;
-alter table JBPM_ACTION add constraint FK_ACTION_ACTNDEL foreign key (ACTIONDELEGATION_) references JBPM_DELEGATION;
-alter table JBPM_ACTION add constraint FK_ACTION_REFACT foreign key (REFERENCEDACTION_) references JBPM_ACTION;
-alter table JBPM_BYTEARRAY add constraint FK_BYTEARR_FILDEF foreign key (FILEDEFINITION_) references JBPM_MODULEDEFINITION;
-alter table JBPM_BYTEBLOCK add constraint FK_BYTEBLOCK_FILE foreign key (PROCESSFILE_) references JBPM_BYTEARRAY;
-create index IDX_COMMENT_TOKEN on JBPM_COMMENT (TOKEN_);
-create index IDX_COMMENT_TSK on JBPM_COMMENT (TASKINSTANCE_);
-alter table JBPM_COMMENT add constraint FK_COMMENT_TOKEN foreign key (TOKEN_) references JBPM_TOKEN;
-alter table JBPM_COMMENT add constraint FK_COMMENT_TSK foreign key (TASKINSTANCE_) references JBPM_TASKINSTANCE;
-alter table JBPM_DECISIONCONDITIONS add constraint FK_DECCOND_DEC foreign key (DECISION_) references JBPM_NODE;
-create index IDX_DELEG_PRCD on JBPM_DELEGATION (PROCESSDEFINITION_);
-alter table JBPM_DELEGATION add constraint FK_DELEGATION_PRCD foreign key (PROCESSDEFINITION_) references JBPM_PROCESSDEFINITION;
-alter table JBPM_EVENT add constraint FK_EVENT_PROCDEF foreign key (PROCESSDEFINITION_) references JBPM_PROCESSDEFINITION;
-alter table JBPM_EVENT add constraint FK_EVENT_NODE foreign key (NODE_) references JBPM_NODE;
-alter table JBPM_EVENT add constraint FK_EVENT_TRANS foreign key (TRANSITION_) references JBPM_TRANSITION;
-alter table JBPM_EVENT add constraint FK_EVENT_TASK foreign key (TASK_) references JBPM_TASK;
-alter table JBPM_ID_GROUP add constraint FK_ID_GRP_PARENT foreign key (PARENT_) references JBPM_ID_GROUP;
-alter table JBPM_ID_MEMBERSHIP add constraint FK_ID_MEMSHIP_GRP foreign key (GROUP_) references JBPM_ID_GROUP;
-alter table JBPM_ID_MEMBERSHIP add constraint FK_ID_MEMSHIP_USR foreign key (USER_) references JBPM_ID_USER;
-create index IDX_JOB_TSKINST on JBPM_JOB (TASKINSTANCE_);
-create index IDX_JOB_PRINST on JBPM_JOB (PROCESSINSTANCE_);
-create index IDX_JOB_TOKEN on JBPM_JOB (TOKEN_);
-alter table JBPM_JOB add constraint FK_JOB_TOKEN foreign key (TOKEN_) references JBPM_TOKEN;
-alter table JBPM_JOB add constraint FK_JOB_NODE foreign key (NODE_) references JBPM_NODE;
-alter table JBPM_JOB add constraint FK_JOB_PRINST foreign key (PROCESSINSTANCE_) references JBPM_PROCESSINSTANCE;
-alter table JBPM_JOB add constraint FK_JOB_ACTION foreign key (ACTION_) references JBPM_ACTION;
-alter table JBPM_JOB add constraint FK_JOB_TSKINST foreign key (TASKINSTANCE_) references JBPM_TASKINSTANCE;
-alter table JBPM_LOG add constraint FK_LOG_SOURCENODE foreign key (SOURCENODE_) references JBPM_NODE;
-alter table JBPM_LOG add constraint FK_LOG_TOKEN foreign key (TOKEN_) references JBPM_TOKEN;
-alter table JBPM_LOG add constraint FK_LOG_OLDBYTES foreign key (OLDBYTEARRAY_) references JBPM_BYTEARRAY;
-alter table JBPM_LOG add constraint FK_LOG_NEWBYTES foreign key (NEWBYTEARRAY_) references JBPM_BYTEARRAY;
-alter table JBPM_LOG add constraint FK_LOG_CHILDTOKEN foreign key (CHILD_) references JBPM_TOKEN;
-alter table JBPM_LOG add constraint FK_LOG_DESTNODE foreign key (DESTINATIONNODE_) references JBPM_NODE;
-alter table JBPM_LOG add constraint FK_LOG_TASKINST foreign key (TASKINSTANCE_) references JBPM_TASKINSTANCE;
-alter table JBPM_LOG add constraint FK_LOG_SWIMINST foreign key (SWIMLANEINSTANCE_) references JBPM_SWIMLANEINSTANCE;
-alter table JBPM_LOG add constraint FK_LOG_PARENT foreign key (PARENT_) references JBPM_LOG;
-alter table JBPM_LOG add constraint FK_LOG_NODE foreign key (NODE_) references JBPM_NODE;
-alter table JBPM_LOG add constraint FK_LOG_ACTION foreign key (ACTION_) references JBPM_ACTION;
-alter table JBPM_LOG add constraint FK_LOG_VARINST foreign key (VARIABLEINSTANCE_) references JBPM_VARIABLEINSTANCE;
-alter table JBPM_LOG add constraint FK_LOG_TRANSITION foreign key (TRANSITION_) references JBPM_TRANSITION;
-create index IDX_MODDEF_PROCDF on JBPM_MODULEDEFINITION (PROCESSDEFINITION_);
-alter table JBPM_MODULEDEFINITION add constraint FK_TSKDEF_START foreign key (STARTTASK_) references JBPM_TASK;
-alter table JBPM_MODULEDEFINITION add constraint FK_MODDEF_PROCDEF foreign key (PROCESSDEFINITION_) references JBPM_PROCESSDEFINITION;
-create index IDX_MODINST_PRINST on JBPM_MODULEINSTANCE (PROCESSINSTANCE_);
-alter table JBPM_MODULEINSTANCE add constraint FK_TASKMGTINST_TMD foreign key (TASKMGMTDEFINITION_) references JBPM_MODULEDEFINITION;
-alter table JBPM_MODULEINSTANCE add constraint FK_MODINST_PRCINST foreign key (PROCESSINSTANCE_) references JBPM_PROCESSINSTANCE;
-create index IDX_PSTATE_SBPRCDEF on JBPM_NODE (SUBPROCESSDEFINITION_);
-create index IDX_NODE_SUPRSTATE on JBPM_NODE (SUPERSTATE_);
-create index IDX_NODE_PROCDEF on JBPM_NODE (PROCESSDEFINITION_);
-create index IDX_NODE_ACTION on JBPM_NODE (ACTION_);
-alter table JBPM_NODE add constraint FK_PROCST_SBPRCDEF foreign key (SUBPROCESSDEFINITION_) references JBPM_PROCESSDEFINITION;
-alter table JBPM_NODE add constraint FK_NODE_PROCDEF foreign key (PROCESSDEFINITION_) references JBPM_PROCESSDEFINITION;
-alter table JBPM_NODE add constraint FK_NODE_SCRIPT foreign key (SCRIPT_) references JBPM_ACTION;
-alter table JBPM_NODE add constraint FK_NODE_ACTION foreign key (ACTION_) references JBPM_ACTION;
-alter table JBPM_NODE add constraint FK_DECISION_DELEG foreign key (DECISIONDELEGATION) references JBPM_DELEGATION;
-alter table JBPM_NODE add constraint FK_NODE_SUPERSTATE foreign key (SUPERSTATE_) references JBPM_NODE;
-create index IDX_PLDACTR_ACTID on JBPM_POOLEDACTOR (ACTORID_);
-create index IDX_TSKINST_SWLANE on JBPM_POOLEDACTOR (SWIMLANEINSTANCE_);
-alter table JBPM_POOLEDACTOR add constraint FK_POOLEDACTOR_SLI foreign key (SWIMLANEINSTANCE_) references JBPM_SWIMLANEINSTANCE;
-create index IDX_PROCDEF_STRTST on JBPM_PROCESSDEFINITION (STARTSTATE_);
-alter table JBPM_PROCESSDEFINITION add constraint FK_PROCDEF_STRTSTA foreign key (STARTSTATE_) references JBPM_NODE;
-create index IDX_PROCIN_ROOTTK on JBPM_PROCESSINSTANCE (ROOTTOKEN_);
-create index IDX_PROCIN_SPROCTK on JBPM_PROCESSINSTANCE (SUPERPROCESSTOKEN_);
-create index IDX_PROCIN_KEY on JBPM_PROCESSINSTANCE (KEY_);
-create index IDX_PROCIN_PROCDEF on JBPM_PROCESSINSTANCE (PROCESSDEFINITION_);
-alter table JBPM_PROCESSINSTANCE add constraint FK_PROCIN_PROCDEF foreign key (PROCESSDEFINITION_) references JBPM_PROCESSDEFINITION;
-alter table JBPM_PROCESSINSTANCE add constraint FK_PROCIN_ROOTTKN foreign key (ROOTTOKEN_) references JBPM_TOKEN;
-alter table JBPM_PROCESSINSTANCE add constraint FK_PROCIN_SPROCTKN foreign key (SUPERPROCESSTOKEN_) references JBPM_TOKEN;
-create index IDX_RTACTN_PRCINST on JBPM_RUNTIMEACTION (PROCESSINSTANCE_);
-create index IDX_RTACTN_ACTION on JBPM_RUNTIMEACTION (ACTION_);
-alter table JBPM_RUNTIMEACTION add constraint FK_RTACTN_PROCINST foreign key (PROCESSINSTANCE_) references JBPM_PROCESSINSTANCE;
-alter table JBPM_RUNTIMEACTION add constraint FK_RTACTN_ACTION foreign key (ACTION_) references JBPM_ACTION;
-alter table JBPM_SWIMLANE add constraint FK_SWL_ASSDEL foreign key (ASSIGNMENTDELEGATION_) references JBPM_DELEGATION;
-alter table JBPM_SWIMLANE add constraint FK_SWL_TSKMGMTDEF foreign key (TASKMGMTDEFINITION_) references JBPM_MODULEDEFINITION;
-create index IDX_SWIMLINST_SL on JBPM_SWIMLANEINSTANCE (SWIMLANE_);
-alter table JBPM_SWIMLANEINSTANCE add constraint FK_SWIMLANEINST_TM foreign key (TASKMGMTINSTANCE_) references JBPM_MODULEINSTANCE;
-alter table JBPM_SWIMLANEINSTANCE add constraint FK_SWIMLANEINST_SL foreign key (SWIMLANE_) references JBPM_SWIMLANE;
-create index IDX_TASK_TSKNODE on JBPM_TASK (TASKNODE_);
-create index IDX_TASK_PROCDEF on JBPM_TASK (PROCESSDEFINITION_);
-create index IDX_TASK_TASKMGTDF on JBPM_TASK (TASKMGMTDEFINITION_);
-alter table JBPM_TASK add constraint FK_TSK_TSKCTRL foreign key (TASKCONTROLLER_) references JBPM_TASKCONTROLLER;
-alter table JBPM_TASK add constraint FK_TASK_ASSDEL foreign key (ASSIGNMENTDELEGATION_) references JBPM_DELEGATION;
-alter table JBPM_TASK add constraint FK_TASK_TASKNODE foreign key (TASKNODE_) references JBPM_NODE;
-alter table JBPM_TASK add constraint FK_TASK_PROCDEF foreign key (PROCESSDEFINITION_) references JBPM_PROCESSDEFINITION;
-alter table JBPM_TASK add constraint FK_TASK_STARTST foreign key (STARTSTATE_) references JBPM_NODE;
-alter table JBPM_TASK add constraint FK_TASK_TASKMGTDEF foreign key (TASKMGMTDEFINITION_) references JBPM_MODULEDEFINITION;
-alter table JBPM_TASK add constraint FK_TASK_SWIMLANE foreign key (SWIMLANE_) references JBPM_SWIMLANE;
-alter table JBPM_TASKACTORPOOL add constraint FK_TSKACTPOL_PLACT foreign key (POOLEDACTOR_) references JBPM_POOLEDACTOR;
-alter table JBPM_TASKACTORPOOL add constraint FK_TASKACTPL_TSKI foreign key (TASKINSTANCE_) references JBPM_TASKINSTANCE;
-alter table JBPM_TASKCONTROLLER add constraint FK_TSKCTRL_DELEG foreign key (TASKCONTROLLERDELEGATION_) references JBPM_DELEGATION;
-create index IDX_TASKINST_TOKN on JBPM_TASKINSTANCE (TOKEN_);
-create index IDX_TASKINST_TSK on JBPM_TASKINSTANCE (TASK_, PROCINST_);
-create index IDX_TSKINST_TMINST on JBPM_TASKINSTANCE (TASKMGMTINSTANCE_);
-create index IDX_TSKINST_SLINST on JBPM_TASKINSTANCE (SWIMLANINSTANCE_);
-create index IDX_TASK_ACTORID on JBPM_TASKINSTANCE (ACTORID_);
-alter table JBPM_TASKINSTANCE add constraint FK_TSKINS_PRCINS foreign key (PROCINST_) references JBPM_PROCESSINSTANCE;
-alter table JBPM_TASKINSTANCE add constraint FK_TASKINST_TMINST foreign key (TASKMGMTINSTANCE_) references JBPM_MODULEINSTANCE;
-alter table JBPM_TASKINSTANCE add constraint FK_TASKINST_TOKEN foreign key (TOKEN_) references JBPM_TOKEN;
-alter table JBPM_TASKINSTANCE add constraint FK_TASKINST_SLINST foreign key (SWIMLANINSTANCE_) references JBPM_SWIMLANEINSTANCE;
-alter table JBPM_TASKINSTANCE add constraint FK_TASKINST_TASK foreign key (TASK_) references JBPM_TASK;
-create index IDX_TOKEN_PROCIN on JBPM_TOKEN (PROCESSINSTANCE_);
-create index IDX_TOKEN_SUBPI on JBPM_TOKEN (SUBPROCESSINSTANCE_);
-create index IDX_TOKEN_NODE on JBPM_TOKEN (NODE_);
-create index IDX_TOKEN_PARENT on JBPM_TOKEN (PARENT_);
-alter table JBPM_TOKEN add constraint FK_TOKEN_PARENT foreign key (PARENT_) references JBPM_TOKEN;
-alter table JBPM_TOKEN add constraint FK_TOKEN_NODE foreign key (NODE_) references JBPM_NODE;
-alter table JBPM_TOKEN add constraint FK_TOKEN_PROCINST foreign key (PROCESSINSTANCE_) references JBPM_PROCESSINSTANCE;
-alter table JBPM_TOKEN add constraint FK_TOKEN_SUBPI foreign key (SUBPROCESSINSTANCE_) references JBPM_PROCESSINSTANCE;
-create index IDX_TKVARMAP_CTXT on JBPM_TOKENVARIABLEMAP (CONTEXTINSTANCE_);
-create index IDX_TKVVARMP_TOKEN on JBPM_TOKENVARIABLEMAP (TOKEN_);
-alter table JBPM_TOKENVARIABLEMAP add constraint FK_TKVARMAP_CTXT foreign key (CONTEXTINSTANCE_) references JBPM_MODULEINSTANCE;
-alter table JBPM_TOKENVARIABLEMAP add constraint FK_TKVARMAP_TOKEN foreign key (TOKEN_) references JBPM_TOKEN;
-create index IDX_TRANSIT_TO on JBPM_TRANSITION (TO_);
-create index IDX_TRANSIT_FROM on JBPM_TRANSITION (FROM_);
-create index IDX_TRANS_PROCDEF on JBPM_TRANSITION (PROCESSDEFINITION_);
-alter table JBPM_TRANSITION add constraint FK_TRANSITION_TO foreign key (TO_) references JBPM_NODE;
-alter table JBPM_TRANSITION add constraint FK_TRANS_PROCDEF foreign key (PROCESSDEFINITION_) references JBPM_PROCESSDEFINITION;
-alter table JBPM_TRANSITION add constraint FK_TRANSITION_FROM foreign key (FROM_) references JBPM_NODE;
-alter table JBPM_VARIABLEACCESS add constraint FK_VARACC_TSKCTRL foreign key (TASKCONTROLLER_) references JBPM_TASKCONTROLLER;
-alter table JBPM_VARIABLEACCESS add constraint FK_VARACC_SCRIPT foreign key (SCRIPT_) references JBPM_ACTION;
-alter table JBPM_VARIABLEACCESS add constraint FK_VARACC_PROCST foreign key (PROCESSSTATE_) references JBPM_NODE;
-create index IDX_VARINST_TKVARMP on JBPM_VARIABLEINSTANCE (TOKENVARIABLEMAP_);
-create index IDX_VARINST_PRCINS on JBPM_VARIABLEINSTANCE (PROCESSINSTANCE_);
-create index IDX_VARINST_TK on JBPM_VARIABLEINSTANCE (TOKEN_);
-alter table JBPM_VARIABLEINSTANCE add constraint FK_VARINST_TK foreign key (TOKEN_) references JBPM_TOKEN;
-alter table JBPM_VARIABLEINSTANCE add constraint FK_VARINST_TKVARMP foreign key (TOKENVARIABLEMAP_) references JBPM_TOKENVARIABLEMAP;
-alter table JBPM_VARIABLEINSTANCE add constraint FK_VARINST_PRCINST foreign key (PROCESSINSTANCE_) references JBPM_PROCESSINSTANCE;
-alter table JBPM_VARIABLEINSTANCE add constraint FK_VAR_TSKINST foreign key (TASKINSTANCE_) references JBPM_TASKINSTANCE;
-alter table JBPM_VARIABLEINSTANCE add constraint FK_BYTEINST_ARRAY foreign key (BYTEARRAYVALUE_) references JBPM_BYTEARRAY;
+create table JBPM_ACTION (ID_ bigint generated by default as identity, class char(1) not null, NAME_ varchar(255), ISPROPAGATIONALLOWED_ smallint, ACTIONEXPRESSION_ varchar(255), ISASYNC_ smallint, REFERENCEDACTION_ bigint, ACTIONDELEGATION_ bigint, EVENT_ bigint, PROCESSDEFINITION_ bigint, EXPRESSION_ clob(4000), TIMERNAME_ varchar(255), DUEDATE_ varchar(255), REPEAT_ varchar(255), TRANSITIONNAME_ varchar(255), TIMERACTION_ bigint, EVENTINDEX_ integer, EXCEPTIONHANDLER_ bigint, EXCEPTIONHANDLERINDEX_ integer, primary key (ID_))
+create table JBPM_BYTEARRAY (ID_ bigint generated by default as identity, NAME_ varchar(255), FILEDEFINITION_ bigint, primary key (ID_))
+create table JBPM_BYTEBLOCK (PROCESSFILE_ bigint not null, BYTES_ varchar(1024) for bit data, INDEX_ integer not null, primary key (PROCESSFILE_, INDEX_))
+create table JBPM_COMMENT (ID_ bigint generated by default as identity, VERSION_ integer not null, ACTORID_ varchar(255), TIME_ timestamp, MESSAGE_ clob(4000), TOKEN_ bigint, TASKINSTANCE_ bigint, TOKENINDEX_ integer, TASKINSTANCEINDEX_ integer, primary key (ID_))
+create table JBPM_DECISIONCONDITIONS (DECISION_ bigint not null, TRANSITIONNAME_ varchar(255), EXPRESSION_ varchar(255), INDEX_ integer not null, primary key (DECISION_, INDEX_))
+create table JBPM_DELEGATION (ID_ bigint generated by default as identity, CLASSNAME_ clob(4000), CONFIGURATION_ clob(4000), CONFIGTYPE_ varchar(255), PROCESSDEFINITION_ bigint, primary key (ID_))
+create table JBPM_EVENT (ID_ bigint generated by default as identity, EVENTTYPE_ varchar(255), TYPE_ char(1), GRAPHELEMENT_ bigint, PROCESSDEFINITION_ bigint, NODE_ bigint, TRANSITION_ bigint, TASK_ bigint, primary key (ID_))
+create table JBPM_EXCEPTIONHANDLER (ID_ bigint generated by default as identity, EXCEPTIONCLASSNAME_ clob(4000), TYPE_ char(1), GRAPHELEMENT_ bigint, PROCESSDEFINITION_ bigint, GRAPHELEMENTINDEX_ integer, NODE_ bigint, TRANSITION_ bigint, TASK_ bigint, primary key (ID_))
+create table JBPM_ID_GROUP (ID_ bigint generated by default as identity, CLASS_ char(1) not null, NAME_ varchar(255), TYPE_ varchar(255), PARENT_ bigint, primary key (ID_))
+create table JBPM_ID_MEMBERSHIP (ID_ bigint generated by default as identity, CLASS_ char(1) not null, NAME_ varchar(255), ROLE_ varchar(255), USER_ bigint, GROUP_ bigint, primary key (ID_))
+create table JBPM_ID_PERMISSIONS (ENTITY_ bigint not null, CLASS_ varchar(255), NAME_ varchar(255), ACTION_ varchar(255))
+create table JBPM_ID_USER (ID_ bigint generated by default as identity, CLASS_ char(1) not null, NAME_ varchar(255), EMAIL_ varchar(255), PASSWORD_ varchar(255), primary key (ID_))
+create table JBPM_JOB (ID_ bigint generated by default as identity, CLASS_ char(1) not null, VERSION_ integer not null, DUEDATE_ timestamp, PROCESSINSTANCE_ bigint, TOKEN_ bigint, TASKINSTANCE_ bigint, ISSUSPENDED_ smallint, ISEXCLUSIVE_ smallint, LOCKOWNER_ varchar(255), LOCKTIME_ timestamp, EXCEPTION_ clob(4000), RETRIES_ integer, NAME_ varchar(255), REPEAT_ varchar(255), TRANSITIONNAME_ varchar(255), ACTION_ bigint, GRAPHELEMENTTYPE_ varchar(255), GRAPHELEMENT_ bigint, NODE_ bigint, primary key (ID_))
+create table JBPM_LOG (ID_ bigint generated by default as identity, CLASS_ char(1) not null, INDEX_ integer, DATE_ timestamp, TOKEN_ bigint, PARENT_ bigint, MESSAGE_ clob(4000), EXCEPTION_ clob(4000), ACTION_ bigint, NODE_ bigint, ENTER_ timestamp, LEAVE_ timestamp, DURATION_ bigint, NEWLONGVALUE_ bigint, TRANSITION_ bigint, CHILD_ bigint, SOURCENODE_ bigint, DESTINATIONNODE_ bigint, VARIABLEINSTANCE_ bigint, OLDBYTEARRAY_ bigint, NEWBYTEARRAY_ bigint, OLDDATEVALUE_ timestamp, NEWDATEVALUE_ timestamp, OLDDOUBLEVALUE_ double, NEWDOUBLEVALUE_ double, OLDLONGIDCLASS_ varchar(255), OLDLONGIDVALUE_ bigint, NEWLONGIDCLASS_ varchar(255), NEWLONGIDVALUE_ bigint, OLDSTRINGIDCLASS_ varchar(255), OLDSTRINGIDVALUE_ varchar(255), NEWSTRINGIDCLASS_ varchar(255), NEWSTRINGIDVALUE_ varchar(255), OLDLONGVALUE_ bigint, OLDSTRINGVALUE_ clob(4000), NEWSTRINGVALUE_ clob(4000), TASKINSTANCE_ bigint, TASKACTORID_ varchar(255), TASKOLDACTORID_ varchar(255), SWIMLANEINSTANCE_ bigint, primary key (I!
D_))
+create table JBPM_MODULEDEFINITION (ID_ bigint generated by default as identity, CLASS_ char(1) not null, NAME_ varchar(4000), PROCESSDEFINITION_ bigint, STARTTASK_ bigint, primary key (ID_))
+create table JBPM_MODULEINSTANCE (ID_ bigint generated by default as identity, CLASS_ char(1) not null, VERSION_ integer not null, PROCESSINSTANCE_ bigint, TASKMGMTDEFINITION_ bigint, NAME_ varchar(255), primary key (ID_))
+create table JBPM_NODE (ID_ bigint generated by default as identity, CLASS_ char(1) not null, NAME_ varchar(255), DESCRIPTION_ clob(4000), PROCESSDEFINITION_ bigint, ISASYNC_ smallint, ISASYNCEXCL_ smallint, ACTION_ bigint, SUPERSTATE_ bigint, SUBPROCNAME_ varchar(255), SUBPROCESSDEFINITION_ bigint, DECISIONEXPRESSION_ varchar(255), DECISIONDELEGATION bigint, SCRIPT_ bigint, PARENTLOCKMODE_ varchar(255), SIGNAL_ integer, CREATETASKS_ smallint, ENDTASKS_ smallint, NODECOLLECTIONINDEX_ integer, primary key (ID_))
+create table JBPM_POOLEDACTOR (ID_ bigint generated by default as identity, VERSION_ integer not null, ACTORID_ varchar(255), SWIMLANEINSTANCE_ bigint, primary key (ID_))
+create table JBPM_PROCESSDEFINITION (ID_ bigint generated by default as identity, CLASS_ char(1) not null, NAME_ varchar(255), DESCRIPTION_ clob(4000), VERSION_ integer, ISTERMINATIONIMPLICIT_ smallint, STARTSTATE_ bigint, primary key (ID_))
+create table JBPM_PROCESSINSTANCE (ID_ bigint generated by default as identity, VERSION_ integer not null, KEY_ varchar(255), START_ timestamp, END_ timestamp, ISSUSPENDED_ smallint, PROCESSDEFINITION_ bigint, ROOTTOKEN_ bigint, SUPERPROCESSTOKEN_ bigint, primary key (ID_))
+create table JBPM_RUNTIMEACTION (ID_ bigint generated by default as identity, VERSION_ integer not null, EVENTTYPE_ varchar(255), TYPE_ char(1), GRAPHELEMENT_ bigint, PROCESSINSTANCE_ bigint, ACTION_ bigint, PROCESSINSTANCEINDEX_ integer, primary key (ID_))
+create table JBPM_SWIMLANE (ID_ bigint generated by default as identity, NAME_ varchar(255), ACTORIDEXPRESSION_ varchar(255), POOLEDACTORSEXPRESSION_ varchar(255), ASSIGNMENTDELEGATION_ bigint, TASKMGMTDEFINITION_ bigint, primary key (ID_))
+create table JBPM_SWIMLANEINSTANCE (ID_ bigint generated by default as identity, VERSION_ integer not null, NAME_ varchar(255), ACTORID_ varchar(255), SWIMLANE_ bigint, TASKMGMTINSTANCE_ bigint, primary key (ID_))
+create table JBPM_TASK (ID_ bigint generated by default as identity, NAME_ varchar(255), DESCRIPTION_ clob(4000), PROCESSDEFINITION_ bigint, ISBLOCKING_ smallint, ISSIGNALLING_ smallint, CONDITION_ varchar(255), DUEDATE_ varchar(255), PRIORITY_ integer, ACTORIDEXPRESSION_ varchar(255), POOLEDACTORSEXPRESSION_ varchar(255), TASKMGMTDEFINITION_ bigint, TASKNODE_ bigint, STARTSTATE_ bigint, ASSIGNMENTDELEGATION_ bigint, SWIMLANE_ bigint, TASKCONTROLLER_ bigint, primary key (ID_))
+create table JBPM_TASKACTORPOOL (TASKINSTANCE_ bigint not null, POOLEDACTOR_ bigint not null, primary key (TASKINSTANCE_, POOLEDACTOR_))
+create table JBPM_TASKCONTROLLER (ID_ bigint generated by default as identity, TASKCONTROLLERDELEGATION_ bigint, primary key (ID_))
+create table JBPM_TASKINSTANCE (ID_ bigint generated by default as identity, CLASS_ char(1) not null, VERSION_ integer not null, NAME_ varchar(255), DESCRIPTION_ clob(4000), ACTORID_ varchar(255), CREATE_ timestamp, START_ timestamp, END_ timestamp, DUEDATE_ timestamp, PRIORITY_ integer, ISCANCELLED_ smallint, ISSUSPENDED_ smallint, ISOPEN_ smallint, ISSIGNALLING_ smallint, ISBLOCKING_ smallint, TASK_ bigint, TOKEN_ bigint, PROCINST_ bigint, SWIMLANINSTANCE_ bigint, TASKMGMTINSTANCE_ bigint, primary key (ID_))
+create table JBPM_TOKEN (ID_ bigint generated by default as identity, VERSION_ integer not null, NAME_ varchar(255), START_ timestamp, END_ timestamp, NODEENTER_ timestamp, NEXTLOGINDEX_ integer, ISABLETOREACTIVATEPARENT_ smallint, ISTERMINATIONIMPLICIT_ smallint, ISSUSPENDED_ smallint, LOCK_ varchar(255), NODE_ bigint, PROCESSINSTANCE_ bigint, PARENT_ bigint, SUBPROCESSINSTANCE_ bigint, primary key (ID_))
+create table JBPM_TOKENVARIABLEMAP (ID_ bigint generated by default as identity, VERSION_ integer not null, TOKEN_ bigint, CONTEXTINSTANCE_ bigint, primary key (ID_))
+create table JBPM_TRANSITION (ID_ bigint generated by default as identity, NAME_ varchar(255), DESCRIPTION_ clob(4000), PROCESSDEFINITION_ bigint, FROM_ bigint, TO_ bigint, CONDITION_ varchar(255), FROMINDEX_ integer, primary key (ID_))
+create table JBPM_VARIABLEACCESS (ID_ bigint generated by default as identity, VARIABLENAME_ varchar(255), ACCESS_ varchar(255), MAPPEDNAME_ varchar(255), SCRIPT_ bigint, PROCESSSTATE_ bigint, TASKCONTROLLER_ bigint, INDEX_ integer, primary key (ID_))
+create table JBPM_VARIABLEINSTANCE (ID_ bigint generated by default as identity, CLASS_ char(1) not null, VERSION_ integer not null, NAME_ varchar(255), CONVERTER_ char(1), TOKEN_ bigint, TOKENVARIABLEMAP_ bigint, PROCESSINSTANCE_ bigint, BYTEARRAYVALUE_ bigint, DATEVALUE_ timestamp, DOUBLEVALUE_ double, LONGIDCLASS_ varchar(255), LONGVALUE_ bigint, STRINGIDCLASS_ varchar(255), STRINGVALUE_ varchar(4000), TASKINSTANCE_ bigint, primary key (ID_))
+create index IDX_ACTION_EVENT on JBPM_ACTION (EVENT_)
+create index IDX_ACTION_ACTNDL on JBPM_ACTION (ACTIONDELEGATION_)
+create index IDX_ACTION_PROCDF on JBPM_ACTION (PROCESSDEFINITION_)
+alter table JBPM_ACTION add constraint FK_ACTION_EVENT foreign key (EVENT_) references JBPM_EVENT
+alter table JBPM_ACTION add constraint FK_ACTION_EXPTHDL foreign key (EXCEPTIONHANDLER_) references JBPM_EXCEPTIONHANDLER
+alter table JBPM_ACTION add constraint FK_ACTION_PROCDEF foreign key (PROCESSDEFINITION_) references JBPM_PROCESSDEFINITION
+alter table JBPM_ACTION add constraint FK_CRTETIMERACT_TA foreign key (TIMERACTION_) references JBPM_ACTION
+alter table JBPM_ACTION add constraint FK_ACTION_ACTNDEL foreign key (ACTIONDELEGATION_) references JBPM_DELEGATION
+alter table JBPM_ACTION add constraint FK_ACTION_REFACT foreign key (REFERENCEDACTION_) references JBPM_ACTION
+alter table JBPM_BYTEARRAY add constraint FK_BYTEARR_FILDEF foreign key (FILEDEFINITION_) references JBPM_MODULEDEFINITION
+alter table JBPM_BYTEBLOCK add constraint FK_BYTEBLOCK_FILE foreign key (PROCESSFILE_) references JBPM_BYTEARRAY
+create index IDX_COMMENT_TOKEN on JBPM_COMMENT (TOKEN_)
+create index IDX_COMMENT_TSK on JBPM_COMMENT (TASKINSTANCE_)
+alter table JBPM_COMMENT add constraint FK_COMMENT_TOKEN foreign key (TOKEN_) references JBPM_TOKEN
+alter table JBPM_COMMENT add constraint FK_COMMENT_TSK foreign key (TASKINSTANCE_) references JBPM_TASKINSTANCE
+alter table JBPM_DECISIONCONDITIONS add constraint FK_DECCOND_DEC foreign key (DECISION_) references JBPM_NODE
+create index IDX_DELEG_PRCD on JBPM_DELEGATION (PROCESSDEFINITION_)
+alter table JBPM_DELEGATION add constraint FK_DELEGATION_PRCD foreign key (PROCESSDEFINITION_) references JBPM_PROCESSDEFINITION
+alter table JBPM_EVENT add constraint FK_EVENT_PROCDEF foreign key (PROCESSDEFINITION_) references JBPM_PROCESSDEFINITION
+alter table JBPM_EVENT add constraint FK_EVENT_NODE foreign key (NODE_) references JBPM_NODE
+alter table JBPM_EVENT add constraint FK_EVENT_TRANS foreign key (TRANSITION_) references JBPM_TRANSITION
+alter table JBPM_EVENT add constraint FK_EVENT_TASK foreign key (TASK_) references JBPM_TASK
+alter table JBPM_ID_GROUP add constraint FK_ID_GRP_PARENT foreign key (PARENT_) references JBPM_ID_GROUP
+alter table JBPM_ID_MEMBERSHIP add constraint FK_ID_MEMSHIP_GRP foreign key (GROUP_) references JBPM_ID_GROUP
+alter table JBPM_ID_MEMBERSHIP add constraint FK_ID_MEMSHIP_USR foreign key (USER_) references JBPM_ID_USER
+create index IDX_JOB_TSKINST on JBPM_JOB (TASKINSTANCE_)
+create index IDX_JOB_PRINST on JBPM_JOB (PROCESSINSTANCE_)
+create index IDX_JOB_TOKEN on JBPM_JOB (TOKEN_)
+alter table JBPM_JOB add constraint FK_JOB_TOKEN foreign key (TOKEN_) references JBPM_TOKEN
+alter table JBPM_JOB add constraint FK_JOB_NODE foreign key (NODE_) references JBPM_NODE
+alter table JBPM_JOB add constraint FK_JOB_PRINST foreign key (PROCESSINSTANCE_) references JBPM_PROCESSINSTANCE
+alter table JBPM_JOB add constraint FK_JOB_ACTION foreign key (ACTION_) references JBPM_ACTION
+alter table JBPM_JOB add constraint FK_JOB_TSKINST foreign key (TASKINSTANCE_) references JBPM_TASKINSTANCE
+alter table JBPM_LOG add constraint FK_LOG_SOURCENODE foreign key (SOURCENODE_) references JBPM_NODE
+alter table JBPM_LOG add constraint FK_LOG_TOKEN foreign key (TOKEN_) references JBPM_TOKEN
+alter table JBPM_LOG add constraint FK_LOG_OLDBYTES foreign key (OLDBYTEARRAY_) references JBPM_BYTEARRAY
+alter table JBPM_LOG add constraint FK_LOG_NEWBYTES foreign key (NEWBYTEARRAY_) references JBPM_BYTEARRAY
+alter table JBPM_LOG add constraint FK_LOG_CHILDTOKEN foreign key (CHILD_) references JBPM_TOKEN
+alter table JBPM_LOG add constraint FK_LOG_DESTNODE foreign key (DESTINATIONNODE_) references JBPM_NODE
+alter table JBPM_LOG add constraint FK_LOG_TASKINST foreign key (TASKINSTANCE_) references JBPM_TASKINSTANCE
+alter table JBPM_LOG add constraint FK_LOG_SWIMINST foreign key (SWIMLANEINSTANCE_) references JBPM_SWIMLANEINSTANCE
+alter table JBPM_LOG add constraint FK_LOG_PARENT foreign key (PARENT_) references JBPM_LOG
+alter table JBPM_LOG add constraint FK_LOG_NODE foreign key (NODE_) references JBPM_NODE
+alter table JBPM_LOG add constraint FK_LOG_ACTION foreign key (ACTION_) references JBPM_ACTION
+alter table JBPM_LOG add constraint FK_LOG_VARINST foreign key (VARIABLEINSTANCE_) references JBPM_VARIABLEINSTANCE
+alter table JBPM_LOG add constraint FK_LOG_TRANSITION foreign key (TRANSITION_) references JBPM_TRANSITION
+create index IDX_MODDEF_PROCDF on JBPM_MODULEDEFINITION (PROCESSDEFINITION_)
+alter table JBPM_MODULEDEFINITION add constraint FK_TSKDEF_START foreign key (STARTTASK_) references JBPM_TASK
+alter table JBPM_MODULEDEFINITION add constraint FK_MODDEF_PROCDEF foreign key (PROCESSDEFINITION_) references JBPM_PROCESSDEFINITION
+create index IDX_MODINST_PRINST on JBPM_MODULEINSTANCE (PROCESSINSTANCE_)
+alter table JBPM_MODULEINSTANCE add constraint FK_TASKMGTINST_TMD foreign key (TASKMGMTDEFINITION_) references JBPM_MODULEDEFINITION
+alter table JBPM_MODULEINSTANCE add constraint FK_MODINST_PRCINST foreign key (PROCESSINSTANCE_) references JBPM_PROCESSINSTANCE
+create index IDX_PSTATE_SBPRCDEF on JBPM_NODE (SUBPROCESSDEFINITION_)
+create index IDX_NODE_SUPRSTATE on JBPM_NODE (SUPERSTATE_)
+create index IDX_NODE_PROCDEF on JBPM_NODE (PROCESSDEFINITION_)
+create index IDX_NODE_ACTION on JBPM_NODE (ACTION_)
+alter table JBPM_NODE add constraint FK_PROCST_SBPRCDEF foreign key (SUBPROCESSDEFINITION_) references JBPM_PROCESSDEFINITION
+alter table JBPM_NODE add constraint FK_NODE_PROCDEF foreign key (PROCESSDEFINITION_) references JBPM_PROCESSDEFINITION
+alter table JBPM_NODE add constraint FK_NODE_SCRIPT foreign key (SCRIPT_) references JBPM_ACTION
+alter table JBPM_NODE add constraint FK_NODE_ACTION foreign key (ACTION_) references JBPM_ACTION
+alter table JBPM_NODE add constraint FK_DECISION_DELEG foreign key (DECISIONDELEGATION) references JBPM_DELEGATION
+alter table JBPM_NODE add constraint FK_NODE_SUPERSTATE foreign key (SUPERSTATE_) references JBPM_NODE
+create index IDX_PLDACTR_ACTID on JBPM_POOLEDACTOR (ACTORID_)
+create index IDX_TSKINST_SWLANE on JBPM_POOLEDACTOR (SWIMLANEINSTANCE_)
+alter table JBPM_POOLEDACTOR add constraint FK_POOLEDACTOR_SLI foreign key (SWIMLANEINSTANCE_) references JBPM_SWIMLANEINSTANCE
+create index IDX_PROCDEF_STRTST on JBPM_PROCESSDEFINITION (STARTSTATE_)
+alter table JBPM_PROCESSDEFINITION add constraint FK_PROCDEF_STRTSTA foreign key (STARTSTATE_) references JBPM_NODE
+create index IDX_PROCIN_ROOTTK on JBPM_PROCESSINSTANCE (ROOTTOKEN_)
+create index IDX_PROCIN_SPROCTK on JBPM_PROCESSINSTANCE (SUPERPROCESSTOKEN_)
+create index IDX_PROCIN_KEY on JBPM_PROCESSINSTANCE (KEY_)
+create index IDX_PROCIN_PROCDEF on JBPM_PROCESSINSTANCE (PROCESSDEFINITION_)
+alter table JBPM_PROCESSINSTANCE add constraint FK_PROCIN_PROCDEF foreign key (PROCESSDEFINITION_) references JBPM_PROCESSDEFINITION
+alter table JBPM_PROCESSINSTANCE add constraint FK_PROCIN_ROOTTKN foreign key (ROOTTOKEN_) references JBPM_TOKEN
+alter table JBPM_PROCESSINSTANCE add constraint FK_PROCIN_SPROCTKN foreign key (SUPERPROCESSTOKEN_) references JBPM_TOKEN
+create index IDX_RTACTN_PRCINST on JBPM_RUNTIMEACTION (PROCESSINSTANCE_)
+create index IDX_RTACTN_ACTION on JBPM_RUNTIMEACTION (ACTION_)
+alter table JBPM_RUNTIMEACTION add constraint FK_RTACTN_PROCINST foreign key (PROCESSINSTANCE_) references JBPM_PROCESSINSTANCE
+alter table JBPM_RUNTIMEACTION add constraint FK_RTACTN_ACTION foreign key (ACTION_) references JBPM_ACTION
+alter table JBPM_SWIMLANE add constraint FK_SWL_ASSDEL foreign key (ASSIGNMENTDELEGATION_) references JBPM_DELEGATION
+alter table JBPM_SWIMLANE add constraint FK_SWL_TSKMGMTDEF foreign key (TASKMGMTDEFINITION_) references JBPM_MODULEDEFINITION
+create index IDX_SWIMLINST_SL on JBPM_SWIMLANEINSTANCE (SWIMLANE_)
+alter table JBPM_SWIMLANEINSTANCE add constraint FK_SWIMLANEINST_TM foreign key (TASKMGMTINSTANCE_) references JBPM_MODULEINSTANCE
+alter table JBPM_SWIMLANEINSTANCE add constraint FK_SWIMLANEINST_SL foreign key (SWIMLANE_) references JBPM_SWIMLANE
+create index IDX_TASK_TSKNODE on JBPM_TASK (TASKNODE_)
+create index IDX_TASK_PROCDEF on JBPM_TASK (PROCESSDEFINITION_)
+create index IDX_TASK_TASKMGTDF on JBPM_TASK (TASKMGMTDEFINITION_)
+alter table JBPM_TASK add constraint FK_TSK_TSKCTRL foreign key (TASKCONTROLLER_) references JBPM_TASKCONTROLLER
+alter table JBPM_TASK add constraint FK_TASK_ASSDEL foreign key (ASSIGNMENTDELEGATION_) references JBPM_DELEGATION
+alter table JBPM_TASK add constraint FK_TASK_TASKNODE foreign key (TASKNODE_) references JBPM_NODE
+alter table JBPM_TASK add constraint FK_TASK_PROCDEF foreign key (PROCESSDEFINITION_) references JBPM_PROCESSDEFINITION
+alter table JBPM_TASK add constraint FK_TASK_STARTST foreign key (STARTSTATE_) references JBPM_NODE
+alter table JBPM_TASK add constraint FK_TASK_TASKMGTDEF foreign key (TASKMGMTDEFINITION_) references JBPM_MODULEDEFINITION
+alter table JBPM_TASK add constraint FK_TASK_SWIMLANE foreign key (SWIMLANE_) references JBPM_SWIMLANE
+alter table JBPM_TASKACTORPOOL add constraint FK_TSKACTPOL_PLACT foreign key (POOLEDACTOR_) references JBPM_POOLEDACTOR
+alter table JBPM_TASKACTORPOOL add constraint FK_TASKACTPL_TSKI foreign key (TASKINSTANCE_) references JBPM_TASKINSTANCE
+alter table JBPM_TASKCONTROLLER add constraint FK_TSKCTRL_DELEG foreign key (TASKCONTROLLERDELEGATION_) references JBPM_DELEGATION
+create index IDX_TASKINST_TOKN on JBPM_TASKINSTANCE (TOKEN_)
+create index IDX_TASKINST_TSK on JBPM_TASKINSTANCE (TASK_, PROCINST_)
+create index IDX_TSKINST_TMINST on JBPM_TASKINSTANCE (TASKMGMTINSTANCE_)
+create index IDX_TSKINST_SLINST on JBPM_TASKINSTANCE (SWIMLANINSTANCE_)
+create index IDX_TASK_ACTORID on JBPM_TASKINSTANCE (ACTORID_)
+alter table JBPM_TASKINSTANCE add constraint FK_TSKINS_PRCINS foreign key (PROCINST_) references JBPM_PROCESSINSTANCE
+alter table JBPM_TASKINSTANCE add constraint FK_TASKINST_TMINST foreign key (TASKMGMTINSTANCE_) references JBPM_MODULEINSTANCE
+alter table JBPM_TASKINSTANCE add constraint FK_TASKINST_TOKEN foreign key (TOKEN_) references JBPM_TOKEN
+alter table JBPM_TASKINSTANCE add constraint FK_TASKINST_SLINST foreign key (SWIMLANINSTANCE_) references JBPM_SWIMLANEINSTANCE
+alter table JBPM_TASKINSTANCE add constraint FK_TASKINST_TASK foreign key (TASK_) references JBPM_TASK
+create index IDX_TOKEN_PROCIN on JBPM_TOKEN (PROCESSINSTANCE_)
+create index IDX_TOKEN_SUBPI on JBPM_TOKEN (SUBPROCESSINSTANCE_)
+create index IDX_TOKEN_NODE on JBPM_TOKEN (NODE_)
+create index IDX_TOKEN_PARENT on JBPM_TOKEN (PARENT_)
+alter table JBPM_TOKEN add constraint FK_TOKEN_PARENT foreign key (PARENT_) references JBPM_TOKEN
+alter table JBPM_TOKEN add constraint FK_TOKEN_NODE foreign key (NODE_) references JBPM_NODE
+alter table JBPM_TOKEN add constraint FK_TOKEN_PROCINST foreign key (PROCESSINSTANCE_) references JBPM_PROCESSINSTANCE
+alter table JBPM_TOKEN add constraint FK_TOKEN_SUBPI foreign key (SUBPROCESSINSTANCE_) references JBPM_PROCESSINSTANCE
+create index IDX_TKVARMAP_CTXT on JBPM_TOKENVARIABLEMAP (CONTEXTINSTANCE_)
+create index IDX_TKVVARMP_TOKEN on JBPM_TOKENVARIABLEMAP (TOKEN_)
+alter table JBPM_TOKENVARIABLEMAP add constraint FK_TKVARMAP_CTXT foreign key (CONTEXTINSTANCE_) references JBPM_MODULEINSTANCE
+alter table JBPM_TOKENVARIABLEMAP add constraint FK_TKVARMAP_TOKEN foreign key (TOKEN_) references JBPM_TOKEN
+create index IDX_TRANSIT_TO on JBPM_TRANSITION (TO_)
+create index IDX_TRANSIT_FROM on JBPM_TRANSITION (FROM_)
+create index IDX_TRANS_PROCDEF on JBPM_TRANSITION (PROCESSDEFINITION_)
+alter table JBPM_TRANSITION add constraint FK_TRANSITION_TO foreign key (TO_) references JBPM_NODE
+alter table JBPM_TRANSITION add constraint FK_TRANS_PROCDEF foreign key (PROCESSDEFINITION_) references JBPM_PROCESSDEFINITION
+alter table JBPM_TRANSITION add constraint FK_TRANSITION_FROM foreign key (FROM_) references JBPM_NODE
+alter table JBPM_VARIABLEACCESS add constraint FK_VARACC_TSKCTRL foreign key (TASKCONTROLLER_) references JBPM_TASKCONTROLLER
+alter table JBPM_VARIABLEACCESS add constraint FK_VARACC_SCRIPT foreign key (SCRIPT_) references JBPM_ACTION
+alter table JBPM_VARIABLEACCESS add constraint FK_VARACC_PROCST foreign key (PROCESSSTATE_) references JBPM_NODE
+create index IDX_VARINST_TKVARMP on JBPM_VARIABLEINSTANCE (TOKENVARIABLEMAP_)
+create index IDX_VARINST_PRCINS on JBPM_VARIABLEINSTANCE (PROCESSINSTANCE_)
+create index IDX_VARINST_TK on JBPM_VARIABLEINSTANCE (TOKEN_)
+alter table JBPM_VARIABLEINSTANCE add constraint FK_VARINST_TK foreign key (TOKEN_) references JBPM_TOKEN
+alter table JBPM_VARIABLEINSTANCE add constraint FK_VARINST_TKVARMP foreign key (TOKENVARIABLEMAP_) references JBPM_TOKENVARIABLEMAP
+alter table JBPM_VARIABLEINSTANCE add constraint FK_VARINST_PRCINST foreign key (PROCESSINSTANCE_) references JBPM_PROCESSINSTANCE
+alter table JBPM_VARIABLEINSTANCE add constraint FK_VAR_TSKINST foreign key (TASKINSTANCE_) references JBPM_TASKINSTANCE
+alter table JBPM_VARIABLEINSTANCE add constraint FK_BYTEINST_ARRAY foreign key (BYTEARRAYVALUE_) references JBPM_BYTEARRAY
Modified: labs/jbossesb/workspace/mlittle/legstar/product/services/jbpm/src/main/resources/jbpm-sql/jbpm.jpdl.derby.sql
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/services/jbpm/src/main/resources/jbpm-sql/jbpm.jpdl.derby.sql 2009-01-21 14:47:17 UTC (rev 24849)
+++ labs/jbossesb/workspace/mlittle/legstar/product/services/jbpm/src/main/resources/jbpm-sql/jbpm.jpdl.derby.sql 2009-01-21 15:38:08 UTC (rev 24850)
@@ -1,169 +1,169 @@
-create table JBPM_ACTION (ID_ bigint not null, class char(1) not null, NAME_ varchar(255), ISPROPAGATIONALLOWED_ smallint, ACTIONEXPRESSION_ varchar(255), ISASYNC_ smallint, REFERENCEDACTION_ bigint, ACTIONDELEGATION_ bigint, EVENT_ bigint, PROCESSDEFINITION_ bigint, EXPRESSION_ varchar(4000), TIMERNAME_ varchar(255), DUEDATE_ varchar(255), REPEAT_ varchar(255), TRANSITIONNAME_ varchar(255), TIMERACTION_ bigint, EVENTINDEX_ integer, EXCEPTIONHANDLER_ bigint, EXCEPTIONHANDLERINDEX_ integer, primary key (ID_));
-create table JBPM_BYTEARRAY (ID_ bigint not null, NAME_ varchar(255), FILEDEFINITION_ bigint, primary key (ID_));
-create table JBPM_BYTEBLOCK (PROCESSFILE_ bigint not null, BYTES_ varchar(1024) for bit data, INDEX_ integer not null, primary key (PROCESSFILE_, INDEX_));
-create table JBPM_COMMENT (ID_ bigint not null, VERSION_ integer not null, ACTORID_ varchar(255), TIME_ timestamp, MESSAGE_ varchar(4000), TOKEN_ bigint, TASKINSTANCE_ bigint, TOKENINDEX_ integer, TASKINSTANCEINDEX_ integer, primary key (ID_));
-create table JBPM_DECISIONCONDITIONS (DECISION_ bigint not null, TRANSITIONNAME_ varchar(255), EXPRESSION_ varchar(255), INDEX_ integer not null, primary key (DECISION_, INDEX_));
-create table JBPM_DELEGATION (ID_ bigint not null, CLASSNAME_ varchar(4000), CONFIGURATION_ varchar(4000), CONFIGTYPE_ varchar(255), PROCESSDEFINITION_ bigint, primary key (ID_));
-create table JBPM_EVENT (ID_ bigint not null, EVENTTYPE_ varchar(255), TYPE_ char(1), GRAPHELEMENT_ bigint, PROCESSDEFINITION_ bigint, NODE_ bigint, TRANSITION_ bigint, TASK_ bigint, primary key (ID_));
-create table JBPM_EXCEPTIONHANDLER (ID_ bigint not null, EXCEPTIONCLASSNAME_ varchar(4000), TYPE_ char(1), GRAPHELEMENT_ bigint, PROCESSDEFINITION_ bigint, GRAPHELEMENTINDEX_ integer, NODE_ bigint, TRANSITION_ bigint, TASK_ bigint, primary key (ID_));
-create table JBPM_ID_GROUP (ID_ bigint not null, CLASS_ char(1) not null, NAME_ varchar(255), TYPE_ varchar(255), PARENT_ bigint, primary key (ID_));
-create table JBPM_ID_MEMBERSHIP (ID_ bigint not null, CLASS_ char(1) not null, NAME_ varchar(255), ROLE_ varchar(255), USER_ bigint, GROUP_ bigint, primary key (ID_));
-create table JBPM_ID_PERMISSIONS (ENTITY_ bigint not null, CLASS_ varchar(255), NAME_ varchar(255), ACTION_ varchar(255));
-create table JBPM_ID_USER (ID_ bigint not null, CLASS_ char(1) not null, NAME_ varchar(255), EMAIL_ varchar(255), PASSWORD_ varchar(255), primary key (ID_));
-create table JBPM_JOB (ID_ bigint not null, CLASS_ char(1) not null, VERSION_ integer not null, DUEDATE_ timestamp, PROCESSINSTANCE_ bigint, TOKEN_ bigint, TASKINSTANCE_ bigint, ISSUSPENDED_ smallint, ISEXCLUSIVE_ smallint, LOCKOWNER_ varchar(255), LOCKTIME_ timestamp, EXCEPTION_ varchar(4000), RETRIES_ integer, NAME_ varchar(255), REPEAT_ varchar(255), TRANSITIONNAME_ varchar(255), ACTION_ bigint, GRAPHELEMENTTYPE_ varchar(255), GRAPHELEMENT_ bigint, NODE_ bigint, primary key (ID_));
-create table JBPM_LOG (ID_ bigint not null, CLASS_ char(1) not null, INDEX_ integer, DATE_ timestamp, TOKEN_ bigint, PARENT_ bigint, MESSAGE_ varchar(4000), EXCEPTION_ varchar(4000), ACTION_ bigint, NODE_ bigint, ENTER_ timestamp, LEAVE_ timestamp, DURATION_ bigint, NEWLONGVALUE_ bigint, TRANSITION_ bigint, CHILD_ bigint, SOURCENODE_ bigint, DESTINATIONNODE_ bigint, VARIABLEINSTANCE_ bigint, OLDBYTEARRAY_ bigint, NEWBYTEARRAY_ bigint, OLDDATEVALUE_ timestamp, NEWDATEVALUE_ timestamp, OLDDOUBLEVALUE_ double, NEWDOUBLEVALUE_ double, OLDLONGIDCLASS_ varchar(255), OLDLONGIDVALUE_ bigint, NEWLONGIDCLASS_ varchar(255), NEWLONGIDVALUE_ bigint, OLDSTRINGIDCLASS_ varchar(255), OLDSTRINGIDVALUE_ varchar(255), NEWSTRINGIDCLASS_ varchar(255), NEWSTRINGIDVALUE_ varchar(255), OLDLONGVALUE_ bigint, OLDSTRINGVALUE_ varchar(4000), NEWSTRINGVALUE_ varchar(4000), TASKINSTANCE_ bigint, TASKACTORID_ varchar(255), TASKOLDACTORID_ varchar(255), SWIMLANEINSTANCE_ bigint, primary key (ID_));
-create table JBPM_MODULEDEFINITION (ID_ bigint not null, CLASS_ char(1) not null, NAME_ varchar(4000), PROCESSDEFINITION_ bigint, STARTTASK_ bigint, primary key (ID_));
-create table JBPM_MODULEINSTANCE (ID_ bigint not null, CLASS_ char(1) not null, VERSION_ integer not null, PROCESSINSTANCE_ bigint, TASKMGMTDEFINITION_ bigint, NAME_ varchar(255), primary key (ID_));
-create table JBPM_NODE (ID_ bigint not null, CLASS_ char(1) not null, NAME_ varchar(255), DESCRIPTION_ varchar(4000), PROCESSDEFINITION_ bigint, ISASYNC_ smallint, ISASYNCEXCL_ smallint, ACTION_ bigint, SUPERSTATE_ bigint, SUBPROCNAME_ varchar(255), SUBPROCESSDEFINITION_ bigint, DECISIONEXPRESSION_ varchar(255), DECISIONDELEGATION bigint, SCRIPT_ bigint, SIGNAL_ integer, CREATETASKS_ smallint, ENDTASKS_ smallint, NODECOLLECTIONINDEX_ integer, primary key (ID_));
-create table JBPM_POOLEDACTOR (ID_ bigint not null, VERSION_ integer not null, ACTORID_ varchar(255), SWIMLANEINSTANCE_ bigint, primary key (ID_));
-create table JBPM_PROCESSDEFINITION (ID_ bigint not null, CLASS_ char(1) not null, NAME_ varchar(255), DESCRIPTION_ varchar(4000), VERSION_ integer, ISTERMINATIONIMPLICIT_ smallint, STARTSTATE_ bigint, primary key (ID_));
-create table JBPM_PROCESSINSTANCE (ID_ bigint not null, VERSION_ integer not null, KEY_ varchar(255), START_ timestamp, END_ timestamp, ISSUSPENDED_ smallint, PROCESSDEFINITION_ bigint, ROOTTOKEN_ bigint, SUPERPROCESSTOKEN_ bigint, primary key (ID_));
-create table JBPM_RUNTIMEACTION (ID_ bigint not null, VERSION_ integer not null, EVENTTYPE_ varchar(255), TYPE_ char(1), GRAPHELEMENT_ bigint, PROCESSINSTANCE_ bigint, ACTION_ bigint, PROCESSINSTANCEINDEX_ integer, primary key (ID_));
-create table JBPM_SWIMLANE (ID_ bigint not null, NAME_ varchar(255), ACTORIDEXPRESSION_ varchar(255), POOLEDACTORSEXPRESSION_ varchar(255), ASSIGNMENTDELEGATION_ bigint, TASKMGMTDEFINITION_ bigint, primary key (ID_));
-create table JBPM_SWIMLANEINSTANCE (ID_ bigint not null, VERSION_ integer not null, NAME_ varchar(255), ACTORID_ varchar(255), SWIMLANE_ bigint, TASKMGMTINSTANCE_ bigint, primary key (ID_));
-create table JBPM_TASK (ID_ bigint not null, NAME_ varchar(255), DESCRIPTION_ varchar(4000), PROCESSDEFINITION_ bigint, ISBLOCKING_ smallint, ISSIGNALLING_ smallint, CONDITION_ varchar(255), DUEDATE_ varchar(255), PRIORITY_ integer, ACTORIDEXPRESSION_ varchar(255), POOLEDACTORSEXPRESSION_ varchar(255), TASKMGMTDEFINITION_ bigint, TASKNODE_ bigint, STARTSTATE_ bigint, ASSIGNMENTDELEGATION_ bigint, SWIMLANE_ bigint, TASKCONTROLLER_ bigint, primary key (ID_));
-create table JBPM_TASKACTORPOOL (TASKINSTANCE_ bigint not null, POOLEDACTOR_ bigint not null, primary key (TASKINSTANCE_, POOLEDACTOR_));
-create table JBPM_TASKCONTROLLER (ID_ bigint not null, TASKCONTROLLERDELEGATION_ bigint, primary key (ID_));
-create table JBPM_TASKINSTANCE (ID_ bigint not null, CLASS_ char(1) not null, VERSION_ integer not null, NAME_ varchar(255), DESCRIPTION_ varchar(4000), ACTORID_ varchar(255), CREATE_ timestamp, START_ timestamp, END_ timestamp, DUEDATE_ timestamp, PRIORITY_ integer, ISCANCELLED_ smallint, ISSUSPENDED_ smallint, ISOPEN_ smallint, ISSIGNALLING_ smallint, ISBLOCKING_ smallint, TASK_ bigint, TOKEN_ bigint, PROCINST_ bigint, SWIMLANINSTANCE_ bigint, TASKMGMTINSTANCE_ bigint, primary key (ID_));
-create table JBPM_TOKEN (ID_ bigint not null, VERSION_ integer not null, NAME_ varchar(255), START_ timestamp, END_ timestamp, NODEENTER_ timestamp, NEXTLOGINDEX_ integer, ISABLETOREACTIVATEPARENT_ smallint, ISTERMINATIONIMPLICIT_ smallint, ISSUSPENDED_ smallint, LOCK_ varchar(255), NODE_ bigint, PROCESSINSTANCE_ bigint, PARENT_ bigint, SUBPROCESSINSTANCE_ bigint, primary key (ID_));
-create table JBPM_TOKENVARIABLEMAP (ID_ bigint not null, VERSION_ integer not null, TOKEN_ bigint, CONTEXTINSTANCE_ bigint, primary key (ID_));
-create table JBPM_TRANSITION (ID_ bigint not null, NAME_ varchar(255), DESCRIPTION_ varchar(4000), PROCESSDEFINITION_ bigint, FROM_ bigint, TO_ bigint, CONDITION_ varchar(255), FROMINDEX_ integer, primary key (ID_));
-create table JBPM_VARIABLEACCESS (ID_ bigint not null, VARIABLENAME_ varchar(255), ACCESS_ varchar(255), MAPPEDNAME_ varchar(255), SCRIPT_ bigint, PROCESSSTATE_ bigint, TASKCONTROLLER_ bigint, INDEX_ integer, primary key (ID_));
-create table JBPM_VARIABLEINSTANCE (ID_ bigint not null, CLASS_ char(1) not null, VERSION_ integer not null, NAME_ varchar(255), CONVERTER_ char(1), TOKEN_ bigint, TOKENVARIABLEMAP_ bigint, PROCESSINSTANCE_ bigint, BYTEARRAYVALUE_ bigint, DATEVALUE_ timestamp, DOUBLEVALUE_ double, LONGIDCLASS_ varchar(255), LONGVALUE_ bigint, STRINGIDCLASS_ varchar(255), STRINGVALUE_ varchar(4000), TASKINSTANCE_ bigint, primary key (ID_));
-create index IDX_ACTION_EVENT on JBPM_ACTION (EVENT_);
-create index IDX_ACTION_ACTNDL on JBPM_ACTION (ACTIONDELEGATION_);
-create index IDX_ACTION_PROCDF on JBPM_ACTION (PROCESSDEFINITION_);
-alter table JBPM_ACTION add constraint FK_ACTION_EVENT foreign key (EVENT_) references JBPM_EVENT;
-alter table JBPM_ACTION add constraint FK_ACTION_EXPTHDL foreign key (EXCEPTIONHANDLER_) references JBPM_EXCEPTIONHANDLER;
-alter table JBPM_ACTION add constraint FK_ACTION_PROCDEF foreign key (PROCESSDEFINITION_) references JBPM_PROCESSDEFINITION;
-alter table JBPM_ACTION add constraint FK_CRTETIMERACT_TA foreign key (TIMERACTION_) references JBPM_ACTION;
-alter table JBPM_ACTION add constraint FK_ACTION_ACTNDEL foreign key (ACTIONDELEGATION_) references JBPM_DELEGATION;
-alter table JBPM_ACTION add constraint FK_ACTION_REFACT foreign key (REFERENCEDACTION_) references JBPM_ACTION;
-alter table JBPM_BYTEARRAY add constraint FK_BYTEARR_FILDEF foreign key (FILEDEFINITION_) references JBPM_MODULEDEFINITION;
-alter table JBPM_BYTEBLOCK add constraint FK_BYTEBLOCK_FILE foreign key (PROCESSFILE_) references JBPM_BYTEARRAY;
-create index IDX_COMMENT_TOKEN on JBPM_COMMENT (TOKEN_);
-create index IDX_COMMENT_TSK on JBPM_COMMENT (TASKINSTANCE_);
-alter table JBPM_COMMENT add constraint FK_COMMENT_TOKEN foreign key (TOKEN_) references JBPM_TOKEN;
-alter table JBPM_COMMENT add constraint FK_COMMENT_TSK foreign key (TASKINSTANCE_) references JBPM_TASKINSTANCE;
-alter table JBPM_DECISIONCONDITIONS add constraint FK_DECCOND_DEC foreign key (DECISION_) references JBPM_NODE;
-create index IDX_DELEG_PRCD on JBPM_DELEGATION (PROCESSDEFINITION_);
-alter table JBPM_DELEGATION add constraint FK_DELEGATION_PRCD foreign key (PROCESSDEFINITION_) references JBPM_PROCESSDEFINITION;
-alter table JBPM_EVENT add constraint FK_EVENT_PROCDEF foreign key (PROCESSDEFINITION_) references JBPM_PROCESSDEFINITION;
-alter table JBPM_EVENT add constraint FK_EVENT_NODE foreign key (NODE_) references JBPM_NODE;
-alter table JBPM_EVENT add constraint FK_EVENT_TRANS foreign key (TRANSITION_) references JBPM_TRANSITION;
-alter table JBPM_EVENT add constraint FK_EVENT_TASK foreign key (TASK_) references JBPM_TASK;
-alter table JBPM_ID_GROUP add constraint FK_ID_GRP_PARENT foreign key (PARENT_) references JBPM_ID_GROUP;
-alter table JBPM_ID_MEMBERSHIP add constraint FK_ID_MEMSHIP_GRP foreign key (GROUP_) references JBPM_ID_GROUP;
-alter table JBPM_ID_MEMBERSHIP add constraint FK_ID_MEMSHIP_USR foreign key (USER_) references JBPM_ID_USER;
-create index IDX_JOB_TSKINST on JBPM_JOB (TASKINSTANCE_);
-create index IDX_JOB_PRINST on JBPM_JOB (PROCESSINSTANCE_);
-create index IDX_JOB_TOKEN on JBPM_JOB (TOKEN_);
-alter table JBPM_JOB add constraint FK_JOB_TOKEN foreign key (TOKEN_) references JBPM_TOKEN;
-alter table JBPM_JOB add constraint FK_JOB_NODE foreign key (NODE_) references JBPM_NODE;
-alter table JBPM_JOB add constraint FK_JOB_PRINST foreign key (PROCESSINSTANCE_) references JBPM_PROCESSINSTANCE;
-alter table JBPM_JOB add constraint FK_JOB_ACTION foreign key (ACTION_) references JBPM_ACTION;
-alter table JBPM_JOB add constraint FK_JOB_TSKINST foreign key (TASKINSTANCE_) references JBPM_TASKINSTANCE;
-alter table JBPM_LOG add constraint FK_LOG_SOURCENODE foreign key (SOURCENODE_) references JBPM_NODE;
-alter table JBPM_LOG add constraint FK_LOG_TOKEN foreign key (TOKEN_) references JBPM_TOKEN;
-alter table JBPM_LOG add constraint FK_LOG_OLDBYTES foreign key (OLDBYTEARRAY_) references JBPM_BYTEARRAY;
-alter table JBPM_LOG add constraint FK_LOG_NEWBYTES foreign key (NEWBYTEARRAY_) references JBPM_BYTEARRAY;
-alter table JBPM_LOG add constraint FK_LOG_CHILDTOKEN foreign key (CHILD_) references JBPM_TOKEN;
-alter table JBPM_LOG add constraint FK_LOG_DESTNODE foreign key (DESTINATIONNODE_) references JBPM_NODE;
-alter table JBPM_LOG add constraint FK_LOG_TASKINST foreign key (TASKINSTANCE_) references JBPM_TASKINSTANCE;
-alter table JBPM_LOG add constraint FK_LOG_SWIMINST foreign key (SWIMLANEINSTANCE_) references JBPM_SWIMLANEINSTANCE;
-alter table JBPM_LOG add constraint FK_LOG_PARENT foreign key (PARENT_) references JBPM_LOG;
-alter table JBPM_LOG add constraint FK_LOG_NODE foreign key (NODE_) references JBPM_NODE;
-alter table JBPM_LOG add constraint FK_LOG_ACTION foreign key (ACTION_) references JBPM_ACTION;
-alter table JBPM_LOG add constraint FK_LOG_VARINST foreign key (VARIABLEINSTANCE_) references JBPM_VARIABLEINSTANCE;
-alter table JBPM_LOG add constraint FK_LOG_TRANSITION foreign key (TRANSITION_) references JBPM_TRANSITION;
-create index IDX_MODDEF_PROCDF on JBPM_MODULEDEFINITION (PROCESSDEFINITION_);
-alter table JBPM_MODULEDEFINITION add constraint FK_TSKDEF_START foreign key (STARTTASK_) references JBPM_TASK;
-alter table JBPM_MODULEDEFINITION add constraint FK_MODDEF_PROCDEF foreign key (PROCESSDEFINITION_) references JBPM_PROCESSDEFINITION;
-create index IDX_MODINST_PRINST on JBPM_MODULEINSTANCE (PROCESSINSTANCE_);
-alter table JBPM_MODULEINSTANCE add constraint FK_TASKMGTINST_TMD foreign key (TASKMGMTDEFINITION_) references JBPM_MODULEDEFINITION;
-alter table JBPM_MODULEINSTANCE add constraint FK_MODINST_PRCINST foreign key (PROCESSINSTANCE_) references JBPM_PROCESSINSTANCE;
-create index IDX_PSTATE_SBPRCDEF on JBPM_NODE (SUBPROCESSDEFINITION_);
-create index IDX_NODE_SUPRSTATE on JBPM_NODE (SUPERSTATE_);
-create index IDX_NODE_PROCDEF on JBPM_NODE (PROCESSDEFINITION_);
-create index IDX_NODE_ACTION on JBPM_NODE (ACTION_);
-alter table JBPM_NODE add constraint FK_PROCST_SBPRCDEF foreign key (SUBPROCESSDEFINITION_) references JBPM_PROCESSDEFINITION;
-alter table JBPM_NODE add constraint FK_NODE_PROCDEF foreign key (PROCESSDEFINITION_) references JBPM_PROCESSDEFINITION;
-alter table JBPM_NODE add constraint FK_NODE_SCRIPT foreign key (SCRIPT_) references JBPM_ACTION;
-alter table JBPM_NODE add constraint FK_NODE_ACTION foreign key (ACTION_) references JBPM_ACTION;
-alter table JBPM_NODE add constraint FK_DECISION_DELEG foreign key (DECISIONDELEGATION) references JBPM_DELEGATION;
-alter table JBPM_NODE add constraint FK_NODE_SUPERSTATE foreign key (SUPERSTATE_) references JBPM_NODE;
-create index IDX_PLDACTR_ACTID on JBPM_POOLEDACTOR (ACTORID_);
-create index IDX_TSKINST_SWLANE on JBPM_POOLEDACTOR (SWIMLANEINSTANCE_);
-alter table JBPM_POOLEDACTOR add constraint FK_POOLEDACTOR_SLI foreign key (SWIMLANEINSTANCE_) references JBPM_SWIMLANEINSTANCE;
-create index IDX_PROCDEF_STRTST on JBPM_PROCESSDEFINITION (STARTSTATE_);
-alter table JBPM_PROCESSDEFINITION add constraint FK_PROCDEF_STRTSTA foreign key (STARTSTATE_) references JBPM_NODE;
-create index IDX_PROCIN_ROOTTK on JBPM_PROCESSINSTANCE (ROOTTOKEN_);
-create index IDX_PROCIN_SPROCTK on JBPM_PROCESSINSTANCE (SUPERPROCESSTOKEN_);
-create index IDX_PROCIN_KEY on JBPM_PROCESSINSTANCE (KEY_);
-create index IDX_PROCIN_PROCDEF on JBPM_PROCESSINSTANCE (PROCESSDEFINITION_);
-alter table JBPM_PROCESSINSTANCE add constraint FK_PROCIN_PROCDEF foreign key (PROCESSDEFINITION_) references JBPM_PROCESSDEFINITION;
-alter table JBPM_PROCESSINSTANCE add constraint FK_PROCIN_ROOTTKN foreign key (ROOTTOKEN_) references JBPM_TOKEN;
-alter table JBPM_PROCESSINSTANCE add constraint FK_PROCIN_SPROCTKN foreign key (SUPERPROCESSTOKEN_) references JBPM_TOKEN;
-create index IDX_RTACTN_PRCINST on JBPM_RUNTIMEACTION (PROCESSINSTANCE_);
-create index IDX_RTACTN_ACTION on JBPM_RUNTIMEACTION (ACTION_);
-alter table JBPM_RUNTIMEACTION add constraint FK_RTACTN_PROCINST foreign key (PROCESSINSTANCE_) references JBPM_PROCESSINSTANCE;
-alter table JBPM_RUNTIMEACTION add constraint FK_RTACTN_ACTION foreign key (ACTION_) references JBPM_ACTION;
-alter table JBPM_SWIMLANE add constraint FK_SWL_ASSDEL foreign key (ASSIGNMENTDELEGATION_) references JBPM_DELEGATION;
-alter table JBPM_SWIMLANE add constraint FK_SWL_TSKMGMTDEF foreign key (TASKMGMTDEFINITION_) references JBPM_MODULEDEFINITION;
-create index IDX_SWIMLINST_SL on JBPM_SWIMLANEINSTANCE (SWIMLANE_);
-alter table JBPM_SWIMLANEINSTANCE add constraint FK_SWIMLANEINST_TM foreign key (TASKMGMTINSTANCE_) references JBPM_MODULEINSTANCE;
-alter table JBPM_SWIMLANEINSTANCE add constraint FK_SWIMLANEINST_SL foreign key (SWIMLANE_) references JBPM_SWIMLANE;
-create index IDX_TASK_TSKNODE on JBPM_TASK (TASKNODE_);
-create index IDX_TASK_PROCDEF on JBPM_TASK (PROCESSDEFINITION_);
-create index IDX_TASK_TASKMGTDF on JBPM_TASK (TASKMGMTDEFINITION_);
-alter table JBPM_TASK add constraint FK_TSK_TSKCTRL foreign key (TASKCONTROLLER_) references JBPM_TASKCONTROLLER;
-alter table JBPM_TASK add constraint FK_TASK_ASSDEL foreign key (ASSIGNMENTDELEGATION_) references JBPM_DELEGATION;
-alter table JBPM_TASK add constraint FK_TASK_TASKNODE foreign key (TASKNODE_) references JBPM_NODE;
-alter table JBPM_TASK add constraint FK_TASK_PROCDEF foreign key (PROCESSDEFINITION_) references JBPM_PROCESSDEFINITION;
-alter table JBPM_TASK add constraint FK_TASK_STARTST foreign key (STARTSTATE_) references JBPM_NODE;
-alter table JBPM_TASK add constraint FK_TASK_TASKMGTDEF foreign key (TASKMGMTDEFINITION_) references JBPM_MODULEDEFINITION;
-alter table JBPM_TASK add constraint FK_TASK_SWIMLANE foreign key (SWIMLANE_) references JBPM_SWIMLANE;
-alter table JBPM_TASKACTORPOOL add constraint FK_TSKACTPOL_PLACT foreign key (POOLEDACTOR_) references JBPM_POOLEDACTOR;
-alter table JBPM_TASKACTORPOOL add constraint FK_TASKACTPL_TSKI foreign key (TASKINSTANCE_) references JBPM_TASKINSTANCE;
-alter table JBPM_TASKCONTROLLER add constraint FK_TSKCTRL_DELEG foreign key (TASKCONTROLLERDELEGATION_) references JBPM_DELEGATION;
-create index IDX_TASKINST_TOKN on JBPM_TASKINSTANCE (TOKEN_);
-create index IDX_TASKINST_TSK on JBPM_TASKINSTANCE (TASK_, PROCINST_);
-create index IDX_TSKINST_TMINST on JBPM_TASKINSTANCE (TASKMGMTINSTANCE_);
-create index IDX_TSKINST_SLINST on JBPM_TASKINSTANCE (SWIMLANINSTANCE_);
-create index IDX_TASK_ACTORID on JBPM_TASKINSTANCE (ACTORID_);
-alter table JBPM_TASKINSTANCE add constraint FK_TSKINS_PRCINS foreign key (PROCINST_) references JBPM_PROCESSINSTANCE;
-alter table JBPM_TASKINSTANCE add constraint FK_TASKINST_TMINST foreign key (TASKMGMTINSTANCE_) references JBPM_MODULEINSTANCE;
-alter table JBPM_TASKINSTANCE add constraint FK_TASKINST_TOKEN foreign key (TOKEN_) references JBPM_TOKEN;
-alter table JBPM_TASKINSTANCE add constraint FK_TASKINST_SLINST foreign key (SWIMLANINSTANCE_) references JBPM_SWIMLANEINSTANCE;
-alter table JBPM_TASKINSTANCE add constraint FK_TASKINST_TASK foreign key (TASK_) references JBPM_TASK;
-create index IDX_TOKEN_PROCIN on JBPM_TOKEN (PROCESSINSTANCE_);
-create index IDX_TOKEN_SUBPI on JBPM_TOKEN (SUBPROCESSINSTANCE_);
-create index IDX_TOKEN_NODE on JBPM_TOKEN (NODE_);
-create index IDX_TOKEN_PARENT on JBPM_TOKEN (PARENT_);
-alter table JBPM_TOKEN add constraint FK_TOKEN_PARENT foreign key (PARENT_) references JBPM_TOKEN;
-alter table JBPM_TOKEN add constraint FK_TOKEN_NODE foreign key (NODE_) references JBPM_NODE;
-alter table JBPM_TOKEN add constraint FK_TOKEN_PROCINST foreign key (PROCESSINSTANCE_) references JBPM_PROCESSINSTANCE;
-alter table JBPM_TOKEN add constraint FK_TOKEN_SUBPI foreign key (SUBPROCESSINSTANCE_) references JBPM_PROCESSINSTANCE;
-create index IDX_TKVARMAP_CTXT on JBPM_TOKENVARIABLEMAP (CONTEXTINSTANCE_);
-create index IDX_TKVVARMP_TOKEN on JBPM_TOKENVARIABLEMAP (TOKEN_);
-alter table JBPM_TOKENVARIABLEMAP add constraint FK_TKVARMAP_CTXT foreign key (CONTEXTINSTANCE_) references JBPM_MODULEINSTANCE;
-alter table JBPM_TOKENVARIABLEMAP add constraint FK_TKVARMAP_TOKEN foreign key (TOKEN_) references JBPM_TOKEN;
-create index IDX_TRANSIT_TO on JBPM_TRANSITION (TO_);
-create index IDX_TRANSIT_FROM on JBPM_TRANSITION (FROM_);
-create index IDX_TRANS_PROCDEF on JBPM_TRANSITION (PROCESSDEFINITION_);
-alter table JBPM_TRANSITION add constraint FK_TRANSITION_TO foreign key (TO_) references JBPM_NODE;
-alter table JBPM_TRANSITION add constraint FK_TRANS_PROCDEF foreign key (PROCESSDEFINITION_) references JBPM_PROCESSDEFINITION;
-alter table JBPM_TRANSITION add constraint FK_TRANSITION_FROM foreign key (FROM_) references JBPM_NODE;
-alter table JBPM_VARIABLEACCESS add constraint FK_VARACC_TSKCTRL foreign key (TASKCONTROLLER_) references JBPM_TASKCONTROLLER;
-alter table JBPM_VARIABLEACCESS add constraint FK_VARACC_SCRIPT foreign key (SCRIPT_) references JBPM_ACTION;
-alter table JBPM_VARIABLEACCESS add constraint FK_VARACC_PROCST foreign key (PROCESSSTATE_) references JBPM_NODE;
-create index IDX_VARINST_TKVARMP on JBPM_VARIABLEINSTANCE (TOKENVARIABLEMAP_);
-create index IDX_VARINST_PRCINS on JBPM_VARIABLEINSTANCE (PROCESSINSTANCE_);
-create index IDX_VARINST_TK on JBPM_VARIABLEINSTANCE (TOKEN_);
-alter table JBPM_VARIABLEINSTANCE add constraint FK_VARINST_TK foreign key (TOKEN_) references JBPM_TOKEN;
-alter table JBPM_VARIABLEINSTANCE add constraint FK_VARINST_TKVARMP foreign key (TOKENVARIABLEMAP_) references JBPM_TOKENVARIABLEMAP;
-alter table JBPM_VARIABLEINSTANCE add constraint FK_VARINST_PRCINST foreign key (PROCESSINSTANCE_) references JBPM_PROCESSINSTANCE;
-alter table JBPM_VARIABLEINSTANCE add constraint FK_VAR_TSKINST foreign key (TASKINSTANCE_) references JBPM_TASKINSTANCE;
-alter table JBPM_VARIABLEINSTANCE add constraint FK_BYTEINST_ARRAY foreign key (BYTEARRAYVALUE_) references JBPM_BYTEARRAY;
-create table hibernate_unique_key ( next_hi integer );
-insert into hibernate_unique_key values ( 0 );
+create table JBPM_ACTION (ID_ bigint not null, class char(1) not null, NAME_ varchar(255), ISPROPAGATIONALLOWED_ smallint, ACTIONEXPRESSION_ varchar(255), ISASYNC_ smallint, REFERENCEDACTION_ bigint, ACTIONDELEGATION_ bigint, EVENT_ bigint, PROCESSDEFINITION_ bigint, EXPRESSION_ clob(4000), TIMERNAME_ varchar(255), DUEDATE_ varchar(255), REPEAT_ varchar(255), TRANSITIONNAME_ varchar(255), TIMERACTION_ bigint, EVENTINDEX_ integer, EXCEPTIONHANDLER_ bigint, EXCEPTIONHANDLERINDEX_ integer, primary key (ID_))
+create table JBPM_BYTEARRAY (ID_ bigint not null, NAME_ varchar(255), FILEDEFINITION_ bigint, primary key (ID_))
+create table JBPM_BYTEBLOCK (PROCESSFILE_ bigint not null, BYTES_ varchar(1024) for bit data, INDEX_ integer not null, primary key (PROCESSFILE_, INDEX_))
+create table JBPM_COMMENT (ID_ bigint not null, VERSION_ integer not null, ACTORID_ varchar(255), TIME_ timestamp, MESSAGE_ clob(4000), TOKEN_ bigint, TASKINSTANCE_ bigint, TOKENINDEX_ integer, TASKINSTANCEINDEX_ integer, primary key (ID_))
+create table JBPM_DECISIONCONDITIONS (DECISION_ bigint not null, TRANSITIONNAME_ varchar(255), EXPRESSION_ varchar(255), INDEX_ integer not null, primary key (DECISION_, INDEX_))
+create table JBPM_DELEGATION (ID_ bigint not null, CLASSNAME_ clob(4000), CONFIGURATION_ clob(4000), CONFIGTYPE_ varchar(255), PROCESSDEFINITION_ bigint, primary key (ID_))
+create table JBPM_EVENT (ID_ bigint not null, EVENTTYPE_ varchar(255), TYPE_ char(1), GRAPHELEMENT_ bigint, PROCESSDEFINITION_ bigint, NODE_ bigint, TRANSITION_ bigint, TASK_ bigint, primary key (ID_))
+create table JBPM_EXCEPTIONHANDLER (ID_ bigint not null, EXCEPTIONCLASSNAME_ clob(4000), TYPE_ char(1), GRAPHELEMENT_ bigint, PROCESSDEFINITION_ bigint, GRAPHELEMENTINDEX_ integer, NODE_ bigint, TRANSITION_ bigint, TASK_ bigint, primary key (ID_))
+create table JBPM_ID_GROUP (ID_ bigint not null, CLASS_ char(1) not null, NAME_ varchar(255), TYPE_ varchar(255), PARENT_ bigint, primary key (ID_))
+create table JBPM_ID_MEMBERSHIP (ID_ bigint not null, CLASS_ char(1) not null, NAME_ varchar(255), ROLE_ varchar(255), USER_ bigint, GROUP_ bigint, primary key (ID_))
+create table JBPM_ID_PERMISSIONS (ENTITY_ bigint not null, CLASS_ varchar(255), NAME_ varchar(255), ACTION_ varchar(255))
+create table JBPM_ID_USER (ID_ bigint not null, CLASS_ char(1) not null, NAME_ varchar(255), EMAIL_ varchar(255), PASSWORD_ varchar(255), primary key (ID_))
+create table JBPM_JOB (ID_ bigint not null, CLASS_ char(1) not null, VERSION_ integer not null, DUEDATE_ timestamp, PROCESSINSTANCE_ bigint, TOKEN_ bigint, TASKINSTANCE_ bigint, ISSUSPENDED_ smallint, ISEXCLUSIVE_ smallint, LOCKOWNER_ varchar(255), LOCKTIME_ timestamp, EXCEPTION_ clob(4000), RETRIES_ integer, NAME_ varchar(255), REPEAT_ varchar(255), TRANSITIONNAME_ varchar(255), ACTION_ bigint, GRAPHELEMENTTYPE_ varchar(255), GRAPHELEMENT_ bigint, NODE_ bigint, primary key (ID_))
+create table JBPM_LOG (ID_ bigint not null, CLASS_ char(1) not null, INDEX_ integer, DATE_ timestamp, TOKEN_ bigint, PARENT_ bigint, MESSAGE_ clob(4000), EXCEPTION_ clob(4000), ACTION_ bigint, NODE_ bigint, ENTER_ timestamp, LEAVE_ timestamp, DURATION_ bigint, NEWLONGVALUE_ bigint, TRANSITION_ bigint, CHILD_ bigint, SOURCENODE_ bigint, DESTINATIONNODE_ bigint, VARIABLEINSTANCE_ bigint, OLDBYTEARRAY_ bigint, NEWBYTEARRAY_ bigint, OLDDATEVALUE_ timestamp, NEWDATEVALUE_ timestamp, OLDDOUBLEVALUE_ double, NEWDOUBLEVALUE_ double, OLDLONGIDCLASS_ varchar(255), OLDLONGIDVALUE_ bigint, NEWLONGIDCLASS_ varchar(255), NEWLONGIDVALUE_ bigint, OLDSTRINGIDCLASS_ varchar(255), OLDSTRINGIDVALUE_ varchar(255), NEWSTRINGIDCLASS_ varchar(255), NEWSTRINGIDVALUE_ varchar(255), OLDLONGVALUE_ bigint, OLDSTRINGVALUE_ clob(4000), NEWSTRINGVALUE_ clob(4000), TASKINSTANCE_ bigint, TASKACTORID_ varchar(255), TASKOLDACTORID_ varchar(255), SWIMLANEINSTANCE_ bigint, primary key (ID_))
+create table JBPM_MODULEDEFINITION (ID_ bigint not null, CLASS_ char(1) not null, NAME_ varchar(4000), PROCESSDEFINITION_ bigint, STARTTASK_ bigint, primary key (ID_))
+create table JBPM_MODULEINSTANCE (ID_ bigint not null, CLASS_ char(1) not null, VERSION_ integer not null, PROCESSINSTANCE_ bigint, TASKMGMTDEFINITION_ bigint, NAME_ varchar(255), primary key (ID_))
+create table JBPM_NODE (ID_ bigint not null, CLASS_ char(1) not null, NAME_ varchar(255), DESCRIPTION_ clob(4000), PROCESSDEFINITION_ bigint, ISASYNC_ smallint, ISASYNCEXCL_ smallint, ACTION_ bigint, SUPERSTATE_ bigint, SUBPROCNAME_ varchar(255), SUBPROCESSDEFINITION_ bigint, DECISIONEXPRESSION_ varchar(255), DECISIONDELEGATION bigint, SCRIPT_ bigint, PARENTLOCKMODE_ varchar(255), SIGNAL_ integer, CREATETASKS_ smallint, ENDTASKS_ smallint, NODECOLLECTIONINDEX_ integer, primary key (ID_))
+create table JBPM_POOLEDACTOR (ID_ bigint not null, VERSION_ integer not null, ACTORID_ varchar(255), SWIMLANEINSTANCE_ bigint, primary key (ID_))
+create table JBPM_PROCESSDEFINITION (ID_ bigint not null, CLASS_ char(1) not null, NAME_ varchar(255), DESCRIPTION_ clob(4000), VERSION_ integer, ISTERMINATIONIMPLICIT_ smallint, STARTSTATE_ bigint, primary key (ID_))
+create table JBPM_PROCESSINSTANCE (ID_ bigint not null, VERSION_ integer not null, KEY_ varchar(255), START_ timestamp, END_ timestamp, ISSUSPENDED_ smallint, PROCESSDEFINITION_ bigint, ROOTTOKEN_ bigint, SUPERPROCESSTOKEN_ bigint, primary key (ID_))
+create table JBPM_RUNTIMEACTION (ID_ bigint not null, VERSION_ integer not null, EVENTTYPE_ varchar(255), TYPE_ char(1), GRAPHELEMENT_ bigint, PROCESSINSTANCE_ bigint, ACTION_ bigint, PROCESSINSTANCEINDEX_ integer, primary key (ID_))
+create table JBPM_SWIMLANE (ID_ bigint not null, NAME_ varchar(255), ACTORIDEXPRESSION_ varchar(255), POOLEDACTORSEXPRESSION_ varchar(255), ASSIGNMENTDELEGATION_ bigint, TASKMGMTDEFINITION_ bigint, primary key (ID_))
+create table JBPM_SWIMLANEINSTANCE (ID_ bigint not null, VERSION_ integer not null, NAME_ varchar(255), ACTORID_ varchar(255), SWIMLANE_ bigint, TASKMGMTINSTANCE_ bigint, primary key (ID_))
+create table JBPM_TASK (ID_ bigint not null, NAME_ varchar(255), DESCRIPTION_ clob(4000), PROCESSDEFINITION_ bigint, ISBLOCKING_ smallint, ISSIGNALLING_ smallint, CONDITION_ varchar(255), DUEDATE_ varchar(255), PRIORITY_ integer, ACTORIDEXPRESSION_ varchar(255), POOLEDACTORSEXPRESSION_ varchar(255), TASKMGMTDEFINITION_ bigint, TASKNODE_ bigint, STARTSTATE_ bigint, ASSIGNMENTDELEGATION_ bigint, SWIMLANE_ bigint, TASKCONTROLLER_ bigint, primary key (ID_))
+create table JBPM_TASKACTORPOOL (TASKINSTANCE_ bigint not null, POOLEDACTOR_ bigint not null, primary key (TASKINSTANCE_, POOLEDACTOR_))
+create table JBPM_TASKCONTROLLER (ID_ bigint not null, TASKCONTROLLERDELEGATION_ bigint, primary key (ID_))
+create table JBPM_TASKINSTANCE (ID_ bigint not null, CLASS_ char(1) not null, VERSION_ integer not null, NAME_ varchar(255), DESCRIPTION_ clob(4000), ACTORID_ varchar(255), CREATE_ timestamp, START_ timestamp, END_ timestamp, DUEDATE_ timestamp, PRIORITY_ integer, ISCANCELLED_ smallint, ISSUSPENDED_ smallint, ISOPEN_ smallint, ISSIGNALLING_ smallint, ISBLOCKING_ smallint, TASK_ bigint, TOKEN_ bigint, PROCINST_ bigint, SWIMLANINSTANCE_ bigint, TASKMGMTINSTANCE_ bigint, primary key (ID_))
+create table JBPM_TOKEN (ID_ bigint not null, VERSION_ integer not null, NAME_ varchar(255), START_ timestamp, END_ timestamp, NODEENTER_ timestamp, NEXTLOGINDEX_ integer, ISABLETOREACTIVATEPARENT_ smallint, ISTERMINATIONIMPLICIT_ smallint, ISSUSPENDED_ smallint, LOCK_ varchar(255), NODE_ bigint, PROCESSINSTANCE_ bigint, PARENT_ bigint, SUBPROCESSINSTANCE_ bigint, primary key (ID_))
+create table JBPM_TOKENVARIABLEMAP (ID_ bigint not null, VERSION_ integer not null, TOKEN_ bigint, CONTEXTINSTANCE_ bigint, primary key (ID_))
+create table JBPM_TRANSITION (ID_ bigint not null, NAME_ varchar(255), DESCRIPTION_ clob(4000), PROCESSDEFINITION_ bigint, FROM_ bigint, TO_ bigint, CONDITION_ varchar(255), FROMINDEX_ integer, primary key (ID_))
+create table JBPM_VARIABLEACCESS (ID_ bigint not null, VARIABLENAME_ varchar(255), ACCESS_ varchar(255), MAPPEDNAME_ varchar(255), SCRIPT_ bigint, PROCESSSTATE_ bigint, TASKCONTROLLER_ bigint, INDEX_ integer, primary key (ID_))
+create table JBPM_VARIABLEINSTANCE (ID_ bigint not null, CLASS_ char(1) not null, VERSION_ integer not null, NAME_ varchar(255), CONVERTER_ char(1), TOKEN_ bigint, TOKENVARIABLEMAP_ bigint, PROCESSINSTANCE_ bigint, BYTEARRAYVALUE_ bigint, DATEVALUE_ timestamp, DOUBLEVALUE_ double, LONGIDCLASS_ varchar(255), LONGVALUE_ bigint, STRINGIDCLASS_ varchar(255), STRINGVALUE_ varchar(4000), TASKINSTANCE_ bigint, primary key (ID_))
+create index IDX_ACTION_EVENT on JBPM_ACTION (EVENT_)
+create index IDX_ACTION_ACTNDL on JBPM_ACTION (ACTIONDELEGATION_)
+create index IDX_ACTION_PROCDF on JBPM_ACTION (PROCESSDEFINITION_)
+alter table JBPM_ACTION add constraint FK_ACTION_EVENT foreign key (EVENT_) references JBPM_EVENT
+alter table JBPM_ACTION add constraint FK_ACTION_EXPTHDL foreign key (EXCEPTIONHANDLER_) references JBPM_EXCEPTIONHANDLER
+alter table JBPM_ACTION add constraint FK_ACTION_PROCDEF foreign key (PROCESSDEFINITION_) references JBPM_PROCESSDEFINITION
+alter table JBPM_ACTION add constraint FK_CRTETIMERACT_TA foreign key (TIMERACTION_) references JBPM_ACTION
+alter table JBPM_ACTION add constraint FK_ACTION_ACTNDEL foreign key (ACTIONDELEGATION_) references JBPM_DELEGATION
+alter table JBPM_ACTION add constraint FK_ACTION_REFACT foreign key (REFERENCEDACTION_) references JBPM_ACTION
+alter table JBPM_BYTEARRAY add constraint FK_BYTEARR_FILDEF foreign key (FILEDEFINITION_) references JBPM_MODULEDEFINITION
+alter table JBPM_BYTEBLOCK add constraint FK_BYTEBLOCK_FILE foreign key (PROCESSFILE_) references JBPM_BYTEARRAY
+create index IDX_COMMENT_TOKEN on JBPM_COMMENT (TOKEN_)
+create index IDX_COMMENT_TSK on JBPM_COMMENT (TASKINSTANCE_)
+alter table JBPM_COMMENT add constraint FK_COMMENT_TOKEN foreign key (TOKEN_) references JBPM_TOKEN
+alter table JBPM_COMMENT add constraint FK_COMMENT_TSK foreign key (TASKINSTANCE_) references JBPM_TASKINSTANCE
+alter table JBPM_DECISIONCONDITIONS add constraint FK_DECCOND_DEC foreign key (DECISION_) references JBPM_NODE
+create index IDX_DELEG_PRCD on JBPM_DELEGATION (PROCESSDEFINITION_)
+alter table JBPM_DELEGATION add constraint FK_DELEGATION_PRCD foreign key (PROCESSDEFINITION_) references JBPM_PROCESSDEFINITION
+alter table JBPM_EVENT add constraint FK_EVENT_PROCDEF foreign key (PROCESSDEFINITION_) references JBPM_PROCESSDEFINITION
+alter table JBPM_EVENT add constraint FK_EVENT_NODE foreign key (NODE_) references JBPM_NODE
+alter table JBPM_EVENT add constraint FK_EVENT_TRANS foreign key (TRANSITION_) references JBPM_TRANSITION
+alter table JBPM_EVENT add constraint FK_EVENT_TASK foreign key (TASK_) references JBPM_TASK
+alter table JBPM_ID_GROUP add constraint FK_ID_GRP_PARENT foreign key (PARENT_) references JBPM_ID_GROUP
+alter table JBPM_ID_MEMBERSHIP add constraint FK_ID_MEMSHIP_GRP foreign key (GROUP_) references JBPM_ID_GROUP
+alter table JBPM_ID_MEMBERSHIP add constraint FK_ID_MEMSHIP_USR foreign key (USER_) references JBPM_ID_USER
+create index IDX_JOB_TSKINST on JBPM_JOB (TASKINSTANCE_)
+create index IDX_JOB_PRINST on JBPM_JOB (PROCESSINSTANCE_)
+create index IDX_JOB_TOKEN on JBPM_JOB (TOKEN_)
+alter table JBPM_JOB add constraint FK_JOB_TOKEN foreign key (TOKEN_) references JBPM_TOKEN
+alter table JBPM_JOB add constraint FK_JOB_NODE foreign key (NODE_) references JBPM_NODE
+alter table JBPM_JOB add constraint FK_JOB_PRINST foreign key (PROCESSINSTANCE_) references JBPM_PROCESSINSTANCE
+alter table JBPM_JOB add constraint FK_JOB_ACTION foreign key (ACTION_) references JBPM_ACTION
+alter table JBPM_JOB add constraint FK_JOB_TSKINST foreign key (TASKINSTANCE_) references JBPM_TASKINSTANCE
+alter table JBPM_LOG add constraint FK_LOG_SOURCENODE foreign key (SOURCENODE_) references JBPM_NODE
+alter table JBPM_LOG add constraint FK_LOG_TOKEN foreign key (TOKEN_) references JBPM_TOKEN
+alter table JBPM_LOG add constraint FK_LOG_OLDBYTES foreign key (OLDBYTEARRAY_) references JBPM_BYTEARRAY
+alter table JBPM_LOG add constraint FK_LOG_NEWBYTES foreign key (NEWBYTEARRAY_) references JBPM_BYTEARRAY
+alter table JBPM_LOG add constraint FK_LOG_CHILDTOKEN foreign key (CHILD_) references JBPM_TOKEN
+alter table JBPM_LOG add constraint FK_LOG_DESTNODE foreign key (DESTINATIONNODE_) references JBPM_NODE
+alter table JBPM_LOG add constraint FK_LOG_TASKINST foreign key (TASKINSTANCE_) references JBPM_TASKINSTANCE
+alter table JBPM_LOG add constraint FK_LOG_SWIMINST foreign key (SWIMLANEINSTANCE_) references JBPM_SWIMLANEINSTANCE
+alter table JBPM_LOG add constraint FK_LOG_PARENT foreign key (PARENT_) references JBPM_LOG
+alter table JBPM_LOG add constraint FK_LOG_NODE foreign key (NODE_) references JBPM_NODE
+alter table JBPM_LOG add constraint FK_LOG_ACTION foreign key (ACTION_) references JBPM_ACTION
+alter table JBPM_LOG add constraint FK_LOG_VARINST foreign key (VARIABLEINSTANCE_) references JBPM_VARIABLEINSTANCE
+alter table JBPM_LOG add constraint FK_LOG_TRANSITION foreign key (TRANSITION_) references JBPM_TRANSITION
+create index IDX_MODDEF_PROCDF on JBPM_MODULEDEFINITION (PROCESSDEFINITION_)
+alter table JBPM_MODULEDEFINITION add constraint FK_TSKDEF_START foreign key (STARTTASK_) references JBPM_TASK
+alter table JBPM_MODULEDEFINITION add constraint FK_MODDEF_PROCDEF foreign key (PROCESSDEFINITION_) references JBPM_PROCESSDEFINITION
+create index IDX_MODINST_PRINST on JBPM_MODULEINSTANCE (PROCESSINSTANCE_)
+alter table JBPM_MODULEINSTANCE add constraint FK_TASKMGTINST_TMD foreign key (TASKMGMTDEFINITION_) references JBPM_MODULEDEFINITION
+alter table JBPM_MODULEINSTANCE add constraint FK_MODINST_PRCINST foreign key (PROCESSINSTANCE_) references JBPM_PROCESSINSTANCE
+create index IDX_PSTATE_SBPRCDEF on JBPM_NODE (SUBPROCESSDEFINITION_)
+create index IDX_NODE_SUPRSTATE on JBPM_NODE (SUPERSTATE_)
+create index IDX_NODE_PROCDEF on JBPM_NODE (PROCESSDEFINITION_)
+create index IDX_NODE_ACTION on JBPM_NODE (ACTION_)
+alter table JBPM_NODE add constraint FK_PROCST_SBPRCDEF foreign key (SUBPROCESSDEFINITION_) references JBPM_PROCESSDEFINITION
+alter table JBPM_NODE add constraint FK_NODE_PROCDEF foreign key (PROCESSDEFINITION_) references JBPM_PROCESSDEFINITION
+alter table JBPM_NODE add constraint FK_NODE_SCRIPT foreign key (SCRIPT_) references JBPM_ACTION
+alter table JBPM_NODE add constraint FK_NODE_ACTION foreign key (ACTION_) references JBPM_ACTION
+alter table JBPM_NODE add constraint FK_DECISION_DELEG foreign key (DECISIONDELEGATION) references JBPM_DELEGATION
+alter table JBPM_NODE add constraint FK_NODE_SUPERSTATE foreign key (SUPERSTATE_) references JBPM_NODE
+create index IDX_PLDACTR_ACTID on JBPM_POOLEDACTOR (ACTORID_)
+create index IDX_TSKINST_SWLANE on JBPM_POOLEDACTOR (SWIMLANEINSTANCE_)
+alter table JBPM_POOLEDACTOR add constraint FK_POOLEDACTOR_SLI foreign key (SWIMLANEINSTANCE_) references JBPM_SWIMLANEINSTANCE
+create index IDX_PROCDEF_STRTST on JBPM_PROCESSDEFINITION (STARTSTATE_)
+alter table JBPM_PROCESSDEFINITION add constraint FK_PROCDEF_STRTSTA foreign key (STARTSTATE_) references JBPM_NODE
+create index IDX_PROCIN_ROOTTK on JBPM_PROCESSINSTANCE (ROOTTOKEN_)
+create index IDX_PROCIN_SPROCTK on JBPM_PROCESSINSTANCE (SUPERPROCESSTOKEN_)
+create index IDX_PROCIN_KEY on JBPM_PROCESSINSTANCE (KEY_)
+create index IDX_PROCIN_PROCDEF on JBPM_PROCESSINSTANCE (PROCESSDEFINITION_)
+alter table JBPM_PROCESSINSTANCE add constraint FK_PROCIN_PROCDEF foreign key (PROCESSDEFINITION_) references JBPM_PROCESSDEFINITION
+alter table JBPM_PROCESSINSTANCE add constraint FK_PROCIN_ROOTTKN foreign key (ROOTTOKEN_) references JBPM_TOKEN
+alter table JBPM_PROCESSINSTANCE add constraint FK_PROCIN_SPROCTKN foreign key (SUPERPROCESSTOKEN_) references JBPM_TOKEN
+create index IDX_RTACTN_PRCINST on JBPM_RUNTIMEACTION (PROCESSINSTANCE_)
+create index IDX_RTACTN_ACTION on JBPM_RUNTIMEACTION (ACTION_)
+alter table JBPM_RUNTIMEACTION add constraint FK_RTACTN_PROCINST foreign key (PROCESSINSTANCE_) references JBPM_PROCESSINSTANCE
+alter table JBPM_RUNTIMEACTION add constraint FK_RTACTN_ACTION foreign key (ACTION_) references JBPM_ACTION
+alter table JBPM_SWIMLANE add constraint FK_SWL_ASSDEL foreign key (ASSIGNMENTDELEGATION_) references JBPM_DELEGATION
+alter table JBPM_SWIMLANE add constraint FK_SWL_TSKMGMTDEF foreign key (TASKMGMTDEFINITION_) references JBPM_MODULEDEFINITION
+create index IDX_SWIMLINST_SL on JBPM_SWIMLANEINSTANCE (SWIMLANE_)
+alter table JBPM_SWIMLANEINSTANCE add constraint FK_SWIMLANEINST_TM foreign key (TASKMGMTINSTANCE_) references JBPM_MODULEINSTANCE
+alter table JBPM_SWIMLANEINSTANCE add constraint FK_SWIMLANEINST_SL foreign key (SWIMLANE_) references JBPM_SWIMLANE
+create index IDX_TASK_TSKNODE on JBPM_TASK (TASKNODE_)
+create index IDX_TASK_PROCDEF on JBPM_TASK (PROCESSDEFINITION_)
+create index IDX_TASK_TASKMGTDF on JBPM_TASK (TASKMGMTDEFINITION_)
+alter table JBPM_TASK add constraint FK_TSK_TSKCTRL foreign key (TASKCONTROLLER_) references JBPM_TASKCONTROLLER
+alter table JBPM_TASK add constraint FK_TASK_ASSDEL foreign key (ASSIGNMENTDELEGATION_) references JBPM_DELEGATION
+alter table JBPM_TASK add constraint FK_TASK_TASKNODE foreign key (TASKNODE_) references JBPM_NODE
+alter table JBPM_TASK add constraint FK_TASK_PROCDEF foreign key (PROCESSDEFINITION_) references JBPM_PROCESSDEFINITION
+alter table JBPM_TASK add constraint FK_TASK_STARTST foreign key (STARTSTATE_) references JBPM_NODE
+alter table JBPM_TASK add constraint FK_TASK_TASKMGTDEF foreign key (TASKMGMTDEFINITION_) references JBPM_MODULEDEFINITION
+alter table JBPM_TASK add constraint FK_TASK_SWIMLANE foreign key (SWIMLANE_) references JBPM_SWIMLANE
+alter table JBPM_TASKACTORPOOL add constraint FK_TSKACTPOL_PLACT foreign key (POOLEDACTOR_) references JBPM_POOLEDACTOR
+alter table JBPM_TASKACTORPOOL add constraint FK_TASKACTPL_TSKI foreign key (TASKINSTANCE_) references JBPM_TASKINSTANCE
+alter table JBPM_TASKCONTROLLER add constraint FK_TSKCTRL_DELEG foreign key (TASKCONTROLLERDELEGATION_) references JBPM_DELEGATION
+create index IDX_TASKINST_TOKN on JBPM_TASKINSTANCE (TOKEN_)
+create index IDX_TASKINST_TSK on JBPM_TASKINSTANCE (TASK_, PROCINST_)
+create index IDX_TSKINST_TMINST on JBPM_TASKINSTANCE (TASKMGMTINSTANCE_)
+create index IDX_TSKINST_SLINST on JBPM_TASKINSTANCE (SWIMLANINSTANCE_)
+create index IDX_TASK_ACTORID on JBPM_TASKINSTANCE (ACTORID_)
+alter table JBPM_TASKINSTANCE add constraint FK_TSKINS_PRCINS foreign key (PROCINST_) references JBPM_PROCESSINSTANCE
+alter table JBPM_TASKINSTANCE add constraint FK_TASKINST_TMINST foreign key (TASKMGMTINSTANCE_) references JBPM_MODULEINSTANCE
+alter table JBPM_TASKINSTANCE add constraint FK_TASKINST_TOKEN foreign key (TOKEN_) references JBPM_TOKEN
+alter table JBPM_TASKINSTANCE add constraint FK_TASKINST_SLINST foreign key (SWIMLANINSTANCE_) references JBPM_SWIMLANEINSTANCE
+alter table JBPM_TASKINSTANCE add constraint FK_TASKINST_TASK foreign key (TASK_) references JBPM_TASK
+create index IDX_TOKEN_PROCIN on JBPM_TOKEN (PROCESSINSTANCE_)
+create index IDX_TOKEN_SUBPI on JBPM_TOKEN (SUBPROCESSINSTANCE_)
+create index IDX_TOKEN_NODE on JBPM_TOKEN (NODE_)
+create index IDX_TOKEN_PARENT on JBPM_TOKEN (PARENT_)
+alter table JBPM_TOKEN add constraint FK_TOKEN_PARENT foreign key (PARENT_) references JBPM_TOKEN
+alter table JBPM_TOKEN add constraint FK_TOKEN_NODE foreign key (NODE_) references JBPM_NODE
+alter table JBPM_TOKEN add constraint FK_TOKEN_PROCINST foreign key (PROCESSINSTANCE_) references JBPM_PROCESSINSTANCE
+alter table JBPM_TOKEN add constraint FK_TOKEN_SUBPI foreign key (SUBPROCESSINSTANCE_) references JBPM_PROCESSINSTANCE
+create index IDX_TKVARMAP_CTXT on JBPM_TOKENVARIABLEMAP (CONTEXTINSTANCE_)
+create index IDX_TKVVARMP_TOKEN on JBPM_TOKENVARIABLEMAP (TOKEN_)
+alter table JBPM_TOKENVARIABLEMAP add constraint FK_TKVARMAP_CTXT foreign key (CONTEXTINSTANCE_) references JBPM_MODULEINSTANCE
+alter table JBPM_TOKENVARIABLEMAP add constraint FK_TKVARMAP_TOKEN foreign key (TOKEN_) references JBPM_TOKEN
+create index IDX_TRANSIT_TO on JBPM_TRANSITION (TO_)
+create index IDX_TRANSIT_FROM on JBPM_TRANSITION (FROM_)
+create index IDX_TRANS_PROCDEF on JBPM_TRANSITION (PROCESSDEFINITION_)
+alter table JBPM_TRANSITION add constraint FK_TRANSITION_TO foreign key (TO_) references JBPM_NODE
+alter table JBPM_TRANSITION add constraint FK_TRANS_PROCDEF foreign key (PROCESSDEFINITION_) references JBPM_PROCESSDEFINITION
+alter table JBPM_TRANSITION add constraint FK_TRANSITION_FROM foreign key (FROM_) references JBPM_NODE
+alter table JBPM_VARIABLEACCESS add constraint FK_VARACC_TSKCTRL foreign key (TASKCONTROLLER_) references JBPM_TASKCONTROLLER
+alter table JBPM_VARIABLEACCESS add constraint FK_VARACC_SCRIPT foreign key (SCRIPT_) references JBPM_ACTION
+alter table JBPM_VARIABLEACCESS add constraint FK_VARACC_PROCST foreign key (PROCESSSTATE_) references JBPM_NODE
+create index IDX_VARINST_TKVARMP on JBPM_VARIABLEINSTANCE (TOKENVARIABLEMAP_)
+create index IDX_VARINST_PRCINS on JBPM_VARIABLEINSTANCE (PROCESSINSTANCE_)
+create index IDX_VARINST_TK on JBPM_VARIABLEINSTANCE (TOKEN_)
+alter table JBPM_VARIABLEINSTANCE add constraint FK_VARINST_TK foreign key (TOKEN_) references JBPM_TOKEN
+alter table JBPM_VARIABLEINSTANCE add constraint FK_VARINST_TKVARMP foreign key (TOKENVARIABLEMAP_) references JBPM_TOKENVARIABLEMAP
+alter table JBPM_VARIABLEINSTANCE add constraint FK_VARINST_PRCINST foreign key (PROCESSINSTANCE_) references JBPM_PROCESSINSTANCE
+alter table JBPM_VARIABLEINSTANCE add constraint FK_VAR_TSKINST foreign key (TASKINSTANCE_) references JBPM_TASKINSTANCE
+alter table JBPM_VARIABLEINSTANCE add constraint FK_BYTEINST_ARRAY foreign key (BYTEARRAYVALUE_) references JBPM_BYTEARRAY
+create table hibernate_unique_key ( next_hi integer )
+insert into hibernate_unique_key values ( 0 )
Modified: labs/jbossesb/workspace/mlittle/legstar/product/services/jbpm/src/main/resources/jbpm-sql/jbpm.jpdl.hsqldb.sql
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/services/jbpm/src/main/resources/jbpm-sql/jbpm.jpdl.hsqldb.sql 2009-01-21 14:47:17 UTC (rev 24849)
+++ labs/jbossesb/workspace/mlittle/legstar/product/services/jbpm/src/main/resources/jbpm-sql/jbpm.jpdl.hsqldb.sql 2009-01-21 15:38:08 UTC (rev 24850)
@@ -1,167 +1,167 @@
-create table JBPM_ACTION (ID_ bigint generated by default as identity (start with 1), class char(1) not null, NAME_ varchar(255), ISPROPAGATIONALLOWED_ bit, ACTIONEXPRESSION_ varchar(255), ISASYNC_ bit, REFERENCEDACTION_ bigint, ACTIONDELEGATION_ bigint, EVENT_ bigint, PROCESSDEFINITION_ bigint, EXPRESSION_ varchar(4000), TIMERNAME_ varchar(255), DUEDATE_ varchar(255), REPEAT_ varchar(255), TRANSITIONNAME_ varchar(255), TIMERACTION_ bigint, EVENTINDEX_ integer, EXCEPTIONHANDLER_ bigint, EXCEPTIONHANDLERINDEX_ integer, primary key (ID_));
-create table JBPM_BYTEARRAY (ID_ bigint generated by default as identity (start with 1), NAME_ varchar(255), FILEDEFINITION_ bigint, primary key (ID_));
-create table JBPM_BYTEBLOCK (PROCESSFILE_ bigint not null, BYTES_ varbinary(1024), INDEX_ integer not null, primary key (PROCESSFILE_, INDEX_));
-create table JBPM_COMMENT (ID_ bigint generated by default as identity (start with 1), VERSION_ integer not null, ACTORID_ varchar(255), TIME_ timestamp, MESSAGE_ varchar(4000), TOKEN_ bigint, TASKINSTANCE_ bigint, TOKENINDEX_ integer, TASKINSTANCEINDEX_ integer, primary key (ID_));
-create table JBPM_DECISIONCONDITIONS (DECISION_ bigint not null, TRANSITIONNAME_ varchar(255), EXPRESSION_ varchar(255), INDEX_ integer not null, primary key (DECISION_, INDEX_));
-create table JBPM_DELEGATION (ID_ bigint generated by default as identity (start with 1), CLASSNAME_ varchar(4000), CONFIGURATION_ varchar(4000), CONFIGTYPE_ varchar(255), PROCESSDEFINITION_ bigint, primary key (ID_));
-create table JBPM_EVENT (ID_ bigint generated by default as identity (start with 1), EVENTTYPE_ varchar(255), TYPE_ char(1), GRAPHELEMENT_ bigint, PROCESSDEFINITION_ bigint, NODE_ bigint, TRANSITION_ bigint, TASK_ bigint, primary key (ID_));
-create table JBPM_EXCEPTIONHANDLER (ID_ bigint generated by default as identity (start with 1), EXCEPTIONCLASSNAME_ varchar(4000), TYPE_ char(1), GRAPHELEMENT_ bigint, PROCESSDEFINITION_ bigint, GRAPHELEMENTINDEX_ integer, NODE_ bigint, TRANSITION_ bigint, TASK_ bigint, primary key (ID_));
-create table JBPM_ID_GROUP (ID_ bigint generated by default as identity (start with 1), CLASS_ char(1) not null, NAME_ varchar(255), TYPE_ varchar(255), PARENT_ bigint, primary key (ID_));
-create table JBPM_ID_MEMBERSHIP (ID_ bigint generated by default as identity (start with 1), CLASS_ char(1) not null, NAME_ varchar(255), ROLE_ varchar(255), USER_ bigint, GROUP_ bigint, primary key (ID_));
-create table JBPM_ID_PERMISSIONS (ENTITY_ bigint not null, CLASS_ varchar(255), NAME_ varchar(255), ACTION_ varchar(255));
-create table JBPM_ID_USER (ID_ bigint generated by default as identity (start with 1), CLASS_ char(1) not null, NAME_ varchar(255), EMAIL_ varchar(255), PASSWORD_ varchar(255), primary key (ID_));
-create table JBPM_JOB (ID_ bigint generated by default as identity (start with 1), CLASS_ char(1) not null, VERSION_ integer not null, DUEDATE_ timestamp, PROCESSINSTANCE_ bigint, TOKEN_ bigint, TASKINSTANCE_ bigint, ISSUSPENDED_ bit, ISEXCLUSIVE_ bit, LOCKOWNER_ varchar(255), LOCKTIME_ timestamp, EXCEPTION_ varchar(4000), RETRIES_ integer, NAME_ varchar(255), REPEAT_ varchar(255), TRANSITIONNAME_ varchar(255), ACTION_ bigint, GRAPHELEMENTTYPE_ varchar(255), GRAPHELEMENT_ bigint, NODE_ bigint, primary key (ID_));
-create table JBPM_LOG (ID_ bigint generated by default as identity (start with 1), CLASS_ char(1) not null, INDEX_ integer, DATE_ timestamp, TOKEN_ bigint, PARENT_ bigint, MESSAGE_ varchar(4000), EXCEPTION_ varchar(4000), ACTION_ bigint, NODE_ bigint, ENTER_ timestamp, LEAVE_ timestamp, DURATION_ bigint, NEWLONGVALUE_ bigint, TRANSITION_ bigint, CHILD_ bigint, SOURCENODE_ bigint, DESTINATIONNODE_ bigint, VARIABLEINSTANCE_ bigint, OLDBYTEARRAY_ bigint, NEWBYTEARRAY_ bigint, OLDDATEVALUE_ timestamp, NEWDATEVALUE_ timestamp, OLDDOUBLEVALUE_ double, NEWDOUBLEVALUE_ double, OLDLONGIDCLASS_ varchar(255), OLDLONGIDVALUE_ bigint, NEWLONGIDCLASS_ varchar(255), NEWLONGIDVALUE_ bigint, OLDSTRINGIDCLASS_ varchar(255), OLDSTRINGIDVALUE_ varchar(255), NEWSTRINGIDCLASS_ varchar(255), NEWSTRINGIDVALUE_ varchar(255), OLDLONGVALUE_ bigint, OLDSTRINGVALUE_ varchar(4000), NEWSTRINGVALUE_ varchar(4000), TASKINSTANCE_ bigint, TASKACTORID_ varchar(255), TASKOLDACTORID_ varchar(255), SWIMLANEINSTA!
NCE_ bigint, primary key (ID_));
-create table JBPM_MODULEDEFINITION (ID_ bigint generated by default as identity (start with 1), CLASS_ char(1) not null, NAME_ varchar(4000), PROCESSDEFINITION_ bigint, STARTTASK_ bigint, primary key (ID_));
-create table JBPM_MODULEINSTANCE (ID_ bigint generated by default as identity (start with 1), CLASS_ char(1) not null, VERSION_ integer not null, PROCESSINSTANCE_ bigint, TASKMGMTDEFINITION_ bigint, NAME_ varchar(255), primary key (ID_));
-create table JBPM_NODE (ID_ bigint generated by default as identity (start with 1), CLASS_ char(1) not null, NAME_ varchar(255), DESCRIPTION_ varchar(4000), PROCESSDEFINITION_ bigint, ISASYNC_ bit, ISASYNCEXCL_ bit, ACTION_ bigint, SUPERSTATE_ bigint, SUBPROCNAME_ varchar(255), SUBPROCESSDEFINITION_ bigint, DECISIONEXPRESSION_ varchar(255), DECISIONDELEGATION bigint, SCRIPT_ bigint, SIGNAL_ integer, CREATETASKS_ bit, ENDTASKS_ bit, NODECOLLECTIONINDEX_ integer, primary key (ID_));
-create table JBPM_POOLEDACTOR (ID_ bigint generated by default as identity (start with 1), VERSION_ integer not null, ACTORID_ varchar(255), SWIMLANEINSTANCE_ bigint, primary key (ID_));
-create table JBPM_PROCESSDEFINITION (ID_ bigint generated by default as identity (start with 1), CLASS_ char(1) not null, NAME_ varchar(255), DESCRIPTION_ varchar(4000), VERSION_ integer, ISTERMINATIONIMPLICIT_ bit, STARTSTATE_ bigint, primary key (ID_));
-create table JBPM_PROCESSINSTANCE (ID_ bigint generated by default as identity (start with 1), VERSION_ integer not null, KEY_ varchar(255), START_ timestamp, END_ timestamp, ISSUSPENDED_ bit, PROCESSDEFINITION_ bigint, ROOTTOKEN_ bigint, SUPERPROCESSTOKEN_ bigint, primary key (ID_));
-create table JBPM_RUNTIMEACTION (ID_ bigint generated by default as identity (start with 1), VERSION_ integer not null, EVENTTYPE_ varchar(255), TYPE_ char(1), GRAPHELEMENT_ bigint, PROCESSINSTANCE_ bigint, ACTION_ bigint, PROCESSINSTANCEINDEX_ integer, primary key (ID_));
-create table JBPM_SWIMLANE (ID_ bigint generated by default as identity (start with 1), NAME_ varchar(255), ACTORIDEXPRESSION_ varchar(255), POOLEDACTORSEXPRESSION_ varchar(255), ASSIGNMENTDELEGATION_ bigint, TASKMGMTDEFINITION_ bigint, primary key (ID_));
-create table JBPM_SWIMLANEINSTANCE (ID_ bigint generated by default as identity (start with 1), VERSION_ integer not null, NAME_ varchar(255), ACTORID_ varchar(255), SWIMLANE_ bigint, TASKMGMTINSTANCE_ bigint, primary key (ID_));
-create table JBPM_TASK (ID_ bigint generated by default as identity (start with 1), NAME_ varchar(255), DESCRIPTION_ varchar(4000), PROCESSDEFINITION_ bigint, ISBLOCKING_ bit, ISSIGNALLING_ bit, CONDITION_ varchar(255), DUEDATE_ varchar(255), PRIORITY_ integer, ACTORIDEXPRESSION_ varchar(255), POOLEDACTORSEXPRESSION_ varchar(255), TASKMGMTDEFINITION_ bigint, TASKNODE_ bigint, STARTSTATE_ bigint, ASSIGNMENTDELEGATION_ bigint, SWIMLANE_ bigint, TASKCONTROLLER_ bigint, primary key (ID_));
-create table JBPM_TASKACTORPOOL (TASKINSTANCE_ bigint not null, POOLEDACTOR_ bigint not null, primary key (TASKINSTANCE_, POOLEDACTOR_));
-create table JBPM_TASKCONTROLLER (ID_ bigint generated by default as identity (start with 1), TASKCONTROLLERDELEGATION_ bigint, primary key (ID_));
-create table JBPM_TASKINSTANCE (ID_ bigint generated by default as identity (start with 1), CLASS_ char(1) not null, VERSION_ integer not null, NAME_ varchar(255), DESCRIPTION_ varchar(4000), ACTORID_ varchar(255), CREATE_ timestamp, START_ timestamp, END_ timestamp, DUEDATE_ timestamp, PRIORITY_ integer, ISCANCELLED_ bit, ISSUSPENDED_ bit, ISOPEN_ bit, ISSIGNALLING_ bit, ISBLOCKING_ bit, TASK_ bigint, TOKEN_ bigint, PROCINST_ bigint, SWIMLANINSTANCE_ bigint, TASKMGMTINSTANCE_ bigint, primary key (ID_));
-create table JBPM_TOKEN (ID_ bigint generated by default as identity (start with 1), VERSION_ integer not null, NAME_ varchar(255), START_ timestamp, END_ timestamp, NODEENTER_ timestamp, NEXTLOGINDEX_ integer, ISABLETOREACTIVATEPARENT_ bit, ISTERMINATIONIMPLICIT_ bit, ISSUSPENDED_ bit, LOCK_ varchar(255), NODE_ bigint, PROCESSINSTANCE_ bigint, PARENT_ bigint, SUBPROCESSINSTANCE_ bigint, primary key (ID_));
-create table JBPM_TOKENVARIABLEMAP (ID_ bigint generated by default as identity (start with 1), VERSION_ integer not null, TOKEN_ bigint, CONTEXTINSTANCE_ bigint, primary key (ID_));
-create table JBPM_TRANSITION (ID_ bigint generated by default as identity (start with 1), NAME_ varchar(255), DESCRIPTION_ varchar(4000), PROCESSDEFINITION_ bigint, FROM_ bigint, TO_ bigint, CONDITION_ varchar(255), FROMINDEX_ integer, primary key (ID_));
-create table JBPM_VARIABLEACCESS (ID_ bigint generated by default as identity (start with 1), VARIABLENAME_ varchar(255), ACCESS_ varchar(255), MAPPEDNAME_ varchar(255), SCRIPT_ bigint, PROCESSSTATE_ bigint, TASKCONTROLLER_ bigint, INDEX_ integer, primary key (ID_));
-create table JBPM_VARIABLEINSTANCE (ID_ bigint generated by default as identity (start with 1), CLASS_ char(1) not null, VERSION_ integer not null, NAME_ varchar(255), CONVERTER_ char(1), TOKEN_ bigint, TOKENVARIABLEMAP_ bigint, PROCESSINSTANCE_ bigint, BYTEARRAYVALUE_ bigint, DATEVALUE_ timestamp, DOUBLEVALUE_ double, LONGIDCLASS_ varchar(255), LONGVALUE_ bigint, STRINGIDCLASS_ varchar(255), STRINGVALUE_ varchar(4000), TASKINSTANCE_ bigint, primary key (ID_));
-create index IDX_ACTION_EVENT on JBPM_ACTION (EVENT_);
-create index IDX_ACTION_ACTNDL on JBPM_ACTION (ACTIONDELEGATION_);
-create index IDX_ACTION_PROCDF on JBPM_ACTION (PROCESSDEFINITION_);
-alter table JBPM_ACTION add constraint FK_ACTION_EVENT foreign key (EVENT_) references JBPM_EVENT;
-alter table JBPM_ACTION add constraint FK_ACTION_EXPTHDL foreign key (EXCEPTIONHANDLER_) references JBPM_EXCEPTIONHANDLER;
-alter table JBPM_ACTION add constraint FK_ACTION_PROCDEF foreign key (PROCESSDEFINITION_) references JBPM_PROCESSDEFINITION;
-alter table JBPM_ACTION add constraint FK_CRTETIMERACT_TA foreign key (TIMERACTION_) references JBPM_ACTION;
-alter table JBPM_ACTION add constraint FK_ACTION_ACTNDEL foreign key (ACTIONDELEGATION_) references JBPM_DELEGATION;
-alter table JBPM_ACTION add constraint FK_ACTION_REFACT foreign key (REFERENCEDACTION_) references JBPM_ACTION;
-alter table JBPM_BYTEARRAY add constraint FK_BYTEARR_FILDEF foreign key (FILEDEFINITION_) references JBPM_MODULEDEFINITION;
-alter table JBPM_BYTEBLOCK add constraint FK_BYTEBLOCK_FILE foreign key (PROCESSFILE_) references JBPM_BYTEARRAY;
-create index IDX_COMMENT_TOKEN on JBPM_COMMENT (TOKEN_);
-create index IDX_COMMENT_TSK on JBPM_COMMENT (TASKINSTANCE_);
-alter table JBPM_COMMENT add constraint FK_COMMENT_TOKEN foreign key (TOKEN_) references JBPM_TOKEN;
-alter table JBPM_COMMENT add constraint FK_COMMENT_TSK foreign key (TASKINSTANCE_) references JBPM_TASKINSTANCE;
-alter table JBPM_DECISIONCONDITIONS add constraint FK_DECCOND_DEC foreign key (DECISION_) references JBPM_NODE;
-create index IDX_DELEG_PRCD on JBPM_DELEGATION (PROCESSDEFINITION_);
-alter table JBPM_DELEGATION add constraint FK_DELEGATION_PRCD foreign key (PROCESSDEFINITION_) references JBPM_PROCESSDEFINITION;
-alter table JBPM_EVENT add constraint FK_EVENT_PROCDEF foreign key (PROCESSDEFINITION_) references JBPM_PROCESSDEFINITION;
-alter table JBPM_EVENT add constraint FK_EVENT_NODE foreign key (NODE_) references JBPM_NODE;
-alter table JBPM_EVENT add constraint FK_EVENT_TRANS foreign key (TRANSITION_) references JBPM_TRANSITION;
-alter table JBPM_EVENT add constraint FK_EVENT_TASK foreign key (TASK_) references JBPM_TASK;
-alter table JBPM_ID_GROUP add constraint FK_ID_GRP_PARENT foreign key (PARENT_) references JBPM_ID_GROUP;
-alter table JBPM_ID_MEMBERSHIP add constraint FK_ID_MEMSHIP_GRP foreign key (GROUP_) references JBPM_ID_GROUP;
-alter table JBPM_ID_MEMBERSHIP add constraint FK_ID_MEMSHIP_USR foreign key (USER_) references JBPM_ID_USER;
-create index IDX_JOB_TSKINST on JBPM_JOB (TASKINSTANCE_);
-create index IDX_JOB_PRINST on JBPM_JOB (PROCESSINSTANCE_);
-create index IDX_JOB_TOKEN on JBPM_JOB (TOKEN_);
-alter table JBPM_JOB add constraint FK_JOB_TOKEN foreign key (TOKEN_) references JBPM_TOKEN;
-alter table JBPM_JOB add constraint FK_JOB_NODE foreign key (NODE_) references JBPM_NODE;
-alter table JBPM_JOB add constraint FK_JOB_PRINST foreign key (PROCESSINSTANCE_) references JBPM_PROCESSINSTANCE;
-alter table JBPM_JOB add constraint FK_JOB_ACTION foreign key (ACTION_) references JBPM_ACTION;
-alter table JBPM_JOB add constraint FK_JOB_TSKINST foreign key (TASKINSTANCE_) references JBPM_TASKINSTANCE;
-alter table JBPM_LOG add constraint FK_LOG_SOURCENODE foreign key (SOURCENODE_) references JBPM_NODE;
-alter table JBPM_LOG add constraint FK_LOG_TOKEN foreign key (TOKEN_) references JBPM_TOKEN;
-alter table JBPM_LOG add constraint FK_LOG_OLDBYTES foreign key (OLDBYTEARRAY_) references JBPM_BYTEARRAY;
-alter table JBPM_LOG add constraint FK_LOG_NEWBYTES foreign key (NEWBYTEARRAY_) references JBPM_BYTEARRAY;
-alter table JBPM_LOG add constraint FK_LOG_CHILDTOKEN foreign key (CHILD_) references JBPM_TOKEN;
-alter table JBPM_LOG add constraint FK_LOG_DESTNODE foreign key (DESTINATIONNODE_) references JBPM_NODE;
-alter table JBPM_LOG add constraint FK_LOG_TASKINST foreign key (TASKINSTANCE_) references JBPM_TASKINSTANCE;
-alter table JBPM_LOG add constraint FK_LOG_SWIMINST foreign key (SWIMLANEINSTANCE_) references JBPM_SWIMLANEINSTANCE;
-alter table JBPM_LOG add constraint FK_LOG_PARENT foreign key (PARENT_) references JBPM_LOG;
-alter table JBPM_LOG add constraint FK_LOG_NODE foreign key (NODE_) references JBPM_NODE;
-alter table JBPM_LOG add constraint FK_LOG_ACTION foreign key (ACTION_) references JBPM_ACTION;
-alter table JBPM_LOG add constraint FK_LOG_VARINST foreign key (VARIABLEINSTANCE_) references JBPM_VARIABLEINSTANCE;
-alter table JBPM_LOG add constraint FK_LOG_TRANSITION foreign key (TRANSITION_) references JBPM_TRANSITION;
-create index IDX_MODDEF_PROCDF on JBPM_MODULEDEFINITION (PROCESSDEFINITION_);
-alter table JBPM_MODULEDEFINITION add constraint FK_TSKDEF_START foreign key (STARTTASK_) references JBPM_TASK;
-alter table JBPM_MODULEDEFINITION add constraint FK_MODDEF_PROCDEF foreign key (PROCESSDEFINITION_) references JBPM_PROCESSDEFINITION;
-create index IDX_MODINST_PRINST on JBPM_MODULEINSTANCE (PROCESSINSTANCE_);
-alter table JBPM_MODULEINSTANCE add constraint FK_TASKMGTINST_TMD foreign key (TASKMGMTDEFINITION_) references JBPM_MODULEDEFINITION;
-alter table JBPM_MODULEINSTANCE add constraint FK_MODINST_PRCINST foreign key (PROCESSINSTANCE_) references JBPM_PROCESSINSTANCE;
-create index IDX_PSTATE_SBPRCDEF on JBPM_NODE (SUBPROCESSDEFINITION_);
-create index IDX_NODE_SUPRSTATE on JBPM_NODE (SUPERSTATE_);
-create index IDX_NODE_PROCDEF on JBPM_NODE (PROCESSDEFINITION_);
-create index IDX_NODE_ACTION on JBPM_NODE (ACTION_);
-alter table JBPM_NODE add constraint FK_PROCST_SBPRCDEF foreign key (SUBPROCESSDEFINITION_) references JBPM_PROCESSDEFINITION;
-alter table JBPM_NODE add constraint FK_NODE_PROCDEF foreign key (PROCESSDEFINITION_) references JBPM_PROCESSDEFINITION;
-alter table JBPM_NODE add constraint FK_NODE_SCRIPT foreign key (SCRIPT_) references JBPM_ACTION;
-alter table JBPM_NODE add constraint FK_NODE_ACTION foreign key (ACTION_) references JBPM_ACTION;
-alter table JBPM_NODE add constraint FK_DECISION_DELEG foreign key (DECISIONDELEGATION) references JBPM_DELEGATION;
-alter table JBPM_NODE add constraint FK_NODE_SUPERSTATE foreign key (SUPERSTATE_) references JBPM_NODE;
-create index IDX_PLDACTR_ACTID on JBPM_POOLEDACTOR (ACTORID_);
-create index IDX_TSKINST_SWLANE on JBPM_POOLEDACTOR (SWIMLANEINSTANCE_);
-alter table JBPM_POOLEDACTOR add constraint FK_POOLEDACTOR_SLI foreign key (SWIMLANEINSTANCE_) references JBPM_SWIMLANEINSTANCE;
-create index IDX_PROCDEF_STRTST on JBPM_PROCESSDEFINITION (STARTSTATE_);
-alter table JBPM_PROCESSDEFINITION add constraint FK_PROCDEF_STRTSTA foreign key (STARTSTATE_) references JBPM_NODE;
-create index IDX_PROCIN_ROOTTK on JBPM_PROCESSINSTANCE (ROOTTOKEN_);
-create index IDX_PROCIN_SPROCTK on JBPM_PROCESSINSTANCE (SUPERPROCESSTOKEN_);
-create index IDX_PROCIN_KEY on JBPM_PROCESSINSTANCE (KEY_);
-create index IDX_PROCIN_PROCDEF on JBPM_PROCESSINSTANCE (PROCESSDEFINITION_);
-alter table JBPM_PROCESSINSTANCE add constraint FK_PROCIN_PROCDEF foreign key (PROCESSDEFINITION_) references JBPM_PROCESSDEFINITION;
-alter table JBPM_PROCESSINSTANCE add constraint FK_PROCIN_ROOTTKN foreign key (ROOTTOKEN_) references JBPM_TOKEN;
-alter table JBPM_PROCESSINSTANCE add constraint FK_PROCIN_SPROCTKN foreign key (SUPERPROCESSTOKEN_) references JBPM_TOKEN;
-create index IDX_RTACTN_PRCINST on JBPM_RUNTIMEACTION (PROCESSINSTANCE_);
-create index IDX_RTACTN_ACTION on JBPM_RUNTIMEACTION (ACTION_);
-alter table JBPM_RUNTIMEACTION add constraint FK_RTACTN_PROCINST foreign key (PROCESSINSTANCE_) references JBPM_PROCESSINSTANCE;
-alter table JBPM_RUNTIMEACTION add constraint FK_RTACTN_ACTION foreign key (ACTION_) references JBPM_ACTION;
-alter table JBPM_SWIMLANE add constraint FK_SWL_ASSDEL foreign key (ASSIGNMENTDELEGATION_) references JBPM_DELEGATION;
-alter table JBPM_SWIMLANE add constraint FK_SWL_TSKMGMTDEF foreign key (TASKMGMTDEFINITION_) references JBPM_MODULEDEFINITION;
-create index IDX_SWIMLINST_SL on JBPM_SWIMLANEINSTANCE (SWIMLANE_);
-alter table JBPM_SWIMLANEINSTANCE add constraint FK_SWIMLANEINST_TM foreign key (TASKMGMTINSTANCE_) references JBPM_MODULEINSTANCE;
-alter table JBPM_SWIMLANEINSTANCE add constraint FK_SWIMLANEINST_SL foreign key (SWIMLANE_) references JBPM_SWIMLANE;
-create index IDX_TASK_TSKNODE on JBPM_TASK (TASKNODE_);
-create index IDX_TASK_PROCDEF on JBPM_TASK (PROCESSDEFINITION_);
-create index IDX_TASK_TASKMGTDF on JBPM_TASK (TASKMGMTDEFINITION_);
-alter table JBPM_TASK add constraint FK_TSK_TSKCTRL foreign key (TASKCONTROLLER_) references JBPM_TASKCONTROLLER;
-alter table JBPM_TASK add constraint FK_TASK_ASSDEL foreign key (ASSIGNMENTDELEGATION_) references JBPM_DELEGATION;
-alter table JBPM_TASK add constraint FK_TASK_TASKNODE foreign key (TASKNODE_) references JBPM_NODE;
-alter table JBPM_TASK add constraint FK_TASK_PROCDEF foreign key (PROCESSDEFINITION_) references JBPM_PROCESSDEFINITION;
-alter table JBPM_TASK add constraint FK_TASK_STARTST foreign key (STARTSTATE_) references JBPM_NODE;
-alter table JBPM_TASK add constraint FK_TASK_TASKMGTDEF foreign key (TASKMGMTDEFINITION_) references JBPM_MODULEDEFINITION;
-alter table JBPM_TASK add constraint FK_TASK_SWIMLANE foreign key (SWIMLANE_) references JBPM_SWIMLANE;
-alter table JBPM_TASKACTORPOOL add constraint FK_TSKACTPOL_PLACT foreign key (POOLEDACTOR_) references JBPM_POOLEDACTOR;
-alter table JBPM_TASKACTORPOOL add constraint FK_TASKACTPL_TSKI foreign key (TASKINSTANCE_) references JBPM_TASKINSTANCE;
-alter table JBPM_TASKCONTROLLER add constraint FK_TSKCTRL_DELEG foreign key (TASKCONTROLLERDELEGATION_) references JBPM_DELEGATION;
-create index IDX_TASKINST_TOKN on JBPM_TASKINSTANCE (TOKEN_);
-create index IDX_TASKINST_TSK on JBPM_TASKINSTANCE (TASK_, PROCINST_);
-create index IDX_TSKINST_TMINST on JBPM_TASKINSTANCE (TASKMGMTINSTANCE_);
-create index IDX_TSKINST_SLINST on JBPM_TASKINSTANCE (SWIMLANINSTANCE_);
-create index IDX_TASK_ACTORID on JBPM_TASKINSTANCE (ACTORID_);
-alter table JBPM_TASKINSTANCE add constraint FK_TSKINS_PRCINS foreign key (PROCINST_) references JBPM_PROCESSINSTANCE;
-alter table JBPM_TASKINSTANCE add constraint FK_TASKINST_TMINST foreign key (TASKMGMTINSTANCE_) references JBPM_MODULEINSTANCE;
-alter table JBPM_TASKINSTANCE add constraint FK_TASKINST_TOKEN foreign key (TOKEN_) references JBPM_TOKEN;
-alter table JBPM_TASKINSTANCE add constraint FK_TASKINST_SLINST foreign key (SWIMLANINSTANCE_) references JBPM_SWIMLANEINSTANCE;
-alter table JBPM_TASKINSTANCE add constraint FK_TASKINST_TASK foreign key (TASK_) references JBPM_TASK;
-create index IDX_TOKEN_PROCIN on JBPM_TOKEN (PROCESSINSTANCE_);
-create index IDX_TOKEN_SUBPI on JBPM_TOKEN (SUBPROCESSINSTANCE_);
-create index IDX_TOKEN_NODE on JBPM_TOKEN (NODE_);
-create index IDX_TOKEN_PARENT on JBPM_TOKEN (PARENT_);
-alter table JBPM_TOKEN add constraint FK_TOKEN_PARENT foreign key (PARENT_) references JBPM_TOKEN;
-alter table JBPM_TOKEN add constraint FK_TOKEN_NODE foreign key (NODE_) references JBPM_NODE;
-alter table JBPM_TOKEN add constraint FK_TOKEN_PROCINST foreign key (PROCESSINSTANCE_) references JBPM_PROCESSINSTANCE;
-alter table JBPM_TOKEN add constraint FK_TOKEN_SUBPI foreign key (SUBPROCESSINSTANCE_) references JBPM_PROCESSINSTANCE;
-create index IDX_TKVARMAP_CTXT on JBPM_TOKENVARIABLEMAP (CONTEXTINSTANCE_);
-create index IDX_TKVVARMP_TOKEN on JBPM_TOKENVARIABLEMAP (TOKEN_);
-alter table JBPM_TOKENVARIABLEMAP add constraint FK_TKVARMAP_CTXT foreign key (CONTEXTINSTANCE_) references JBPM_MODULEINSTANCE;
-alter table JBPM_TOKENVARIABLEMAP add constraint FK_TKVARMAP_TOKEN foreign key (TOKEN_) references JBPM_TOKEN;
-create index IDX_TRANSIT_TO on JBPM_TRANSITION (TO_);
-create index IDX_TRANSIT_FROM on JBPM_TRANSITION (FROM_);
-create index IDX_TRANS_PROCDEF on JBPM_TRANSITION (PROCESSDEFINITION_);
-alter table JBPM_TRANSITION add constraint FK_TRANSITION_TO foreign key (TO_) references JBPM_NODE;
-alter table JBPM_TRANSITION add constraint FK_TRANS_PROCDEF foreign key (PROCESSDEFINITION_) references JBPM_PROCESSDEFINITION;
-alter table JBPM_TRANSITION add constraint FK_TRANSITION_FROM foreign key (FROM_) references JBPM_NODE;
-alter table JBPM_VARIABLEACCESS add constraint FK_VARACC_TSKCTRL foreign key (TASKCONTROLLER_) references JBPM_TASKCONTROLLER;
-alter table JBPM_VARIABLEACCESS add constraint FK_VARACC_SCRIPT foreign key (SCRIPT_) references JBPM_ACTION;
-alter table JBPM_VARIABLEACCESS add constraint FK_VARACC_PROCST foreign key (PROCESSSTATE_) references JBPM_NODE;
-create index IDX_VARINST_TKVARMP on JBPM_VARIABLEINSTANCE (TOKENVARIABLEMAP_);
-create index IDX_VARINST_PRCINS on JBPM_VARIABLEINSTANCE (PROCESSINSTANCE_);
-create index IDX_VARINST_TK on JBPM_VARIABLEINSTANCE (TOKEN_);
-alter table JBPM_VARIABLEINSTANCE add constraint FK_VARINST_TK foreign key (TOKEN_) references JBPM_TOKEN;
-alter table JBPM_VARIABLEINSTANCE add constraint FK_VARINST_TKVARMP foreign key (TOKENVARIABLEMAP_) references JBPM_TOKENVARIABLEMAP;
-alter table JBPM_VARIABLEINSTANCE add constraint FK_VARINST_PRCINST foreign key (PROCESSINSTANCE_) references JBPM_PROCESSINSTANCE;
-alter table JBPM_VARIABLEINSTANCE add constraint FK_VAR_TSKINST foreign key (TASKINSTANCE_) references JBPM_TASKINSTANCE;
-alter table JBPM_VARIABLEINSTANCE add constraint FK_BYTEINST_ARRAY foreign key (BYTEARRAYVALUE_) references JBPM_BYTEARRAY;
+create table JBPM_ACTION (ID_ bigint generated by default as identity (start with 1), class char(1) not null, NAME_ varchar(255), ISPROPAGATIONALLOWED_ bit, ACTIONEXPRESSION_ varchar(255), ISASYNC_ bit, REFERENCEDACTION_ bigint, ACTIONDELEGATION_ bigint, EVENT_ bigint, PROCESSDEFINITION_ bigint, EXPRESSION_ longvarchar(4000), TIMERNAME_ varchar(255), DUEDATE_ varchar(255), REPEAT_ varchar(255), TRANSITIONNAME_ varchar(255), TIMERACTION_ bigint, EVENTINDEX_ integer, EXCEPTIONHANDLER_ bigint, EXCEPTIONHANDLERINDEX_ integer, primary key (ID_))
+create table JBPM_BYTEARRAY (ID_ bigint generated by default as identity (start with 1), NAME_ varchar(255), FILEDEFINITION_ bigint, primary key (ID_))
+create table JBPM_BYTEBLOCK (PROCESSFILE_ bigint not null, BYTES_ varbinary(1024), INDEX_ integer not null, primary key (PROCESSFILE_, INDEX_))
+create table JBPM_COMMENT (ID_ bigint generated by default as identity (start with 1), VERSION_ integer not null, ACTORID_ varchar(255), TIME_ timestamp, MESSAGE_ longvarchar(4000), TOKEN_ bigint, TASKINSTANCE_ bigint, TOKENINDEX_ integer, TASKINSTANCEINDEX_ integer, primary key (ID_))
+create table JBPM_DECISIONCONDITIONS (DECISION_ bigint not null, TRANSITIONNAME_ varchar(255), EXPRESSION_ varchar(255), INDEX_ integer not null, primary key (DECISION_, INDEX_))
+create table JBPM_DELEGATION (ID_ bigint generated by default as identity (start with 1), CLASSNAME_ longvarchar(4000), CONFIGURATION_ longvarchar(4000), CONFIGTYPE_ varchar(255), PROCESSDEFINITION_ bigint, primary key (ID_))
+create table JBPM_EVENT (ID_ bigint generated by default as identity (start with 1), EVENTTYPE_ varchar(255), TYPE_ char(1), GRAPHELEMENT_ bigint, PROCESSDEFINITION_ bigint, NODE_ bigint, TRANSITION_ bigint, TASK_ bigint, primary key (ID_))
+create table JBPM_EXCEPTIONHANDLER (ID_ bigint generated by default as identity (start with 1), EXCEPTIONCLASSNAME_ longvarchar(4000), TYPE_ char(1), GRAPHELEMENT_ bigint, PROCESSDEFINITION_ bigint, GRAPHELEMENTINDEX_ integer, NODE_ bigint, TRANSITION_ bigint, TASK_ bigint, primary key (ID_))
+create table JBPM_ID_GROUP (ID_ bigint generated by default as identity (start with 1), CLASS_ char(1) not null, NAME_ varchar(255), TYPE_ varchar(255), PARENT_ bigint, primary key (ID_))
+create table JBPM_ID_MEMBERSHIP (ID_ bigint generated by default as identity (start with 1), CLASS_ char(1) not null, NAME_ varchar(255), ROLE_ varchar(255), USER_ bigint, GROUP_ bigint, primary key (ID_))
+create table JBPM_ID_PERMISSIONS (ENTITY_ bigint not null, CLASS_ varchar(255), NAME_ varchar(255), ACTION_ varchar(255))
+create table JBPM_ID_USER (ID_ bigint generated by default as identity (start with 1), CLASS_ char(1) not null, NAME_ varchar(255), EMAIL_ varchar(255), PASSWORD_ varchar(255), primary key (ID_))
+create table JBPM_JOB (ID_ bigint generated by default as identity (start with 1), CLASS_ char(1) not null, VERSION_ integer not null, DUEDATE_ timestamp, PROCESSINSTANCE_ bigint, TOKEN_ bigint, TASKINSTANCE_ bigint, ISSUSPENDED_ bit, ISEXCLUSIVE_ bit, LOCKOWNER_ varchar(255), LOCKTIME_ timestamp, EXCEPTION_ longvarchar(4000), RETRIES_ integer, NAME_ varchar(255), REPEAT_ varchar(255), TRANSITIONNAME_ varchar(255), ACTION_ bigint, GRAPHELEMENTTYPE_ varchar(255), GRAPHELEMENT_ bigint, NODE_ bigint, primary key (ID_))
+create table JBPM_LOG (ID_ bigint generated by default as identity (start with 1), CLASS_ char(1) not null, INDEX_ integer, DATE_ timestamp, TOKEN_ bigint, PARENT_ bigint, MESSAGE_ longvarchar(4000), EXCEPTION_ longvarchar(4000), ACTION_ bigint, NODE_ bigint, ENTER_ timestamp, LEAVE_ timestamp, DURATION_ bigint, NEWLONGVALUE_ bigint, TRANSITION_ bigint, CHILD_ bigint, SOURCENODE_ bigint, DESTINATIONNODE_ bigint, VARIABLEINSTANCE_ bigint, OLDBYTEARRAY_ bigint, NEWBYTEARRAY_ bigint, OLDDATEVALUE_ timestamp, NEWDATEVALUE_ timestamp, OLDDOUBLEVALUE_ double, NEWDOUBLEVALUE_ double, OLDLONGIDCLASS_ varchar(255), OLDLONGIDVALUE_ bigint, NEWLONGIDCLASS_ varchar(255), NEWLONGIDVALUE_ bigint, OLDSTRINGIDCLASS_ varchar(255), OLDSTRINGIDVALUE_ varchar(255), NEWSTRINGIDCLASS_ varchar(255), NEWSTRINGIDVALUE_ varchar(255), OLDLONGVALUE_ bigint, OLDSTRINGVALUE_ longvarchar(4000), NEWSTRINGVALUE_ longvarchar(4000), TASKINSTANCE_ bigint, TASKACTORID_ varchar(255), TASKOLDACTORID_ varchar(255!
), SWIMLANEINSTANCE_ bigint, primary key (ID_))
+create table JBPM_MODULEDEFINITION (ID_ bigint generated by default as identity (start with 1), CLASS_ char(1) not null, NAME_ varchar(4000), PROCESSDEFINITION_ bigint, STARTTASK_ bigint, primary key (ID_))
+create table JBPM_MODULEINSTANCE (ID_ bigint generated by default as identity (start with 1), CLASS_ char(1) not null, VERSION_ integer not null, PROCESSINSTANCE_ bigint, TASKMGMTDEFINITION_ bigint, NAME_ varchar(255), primary key (ID_))
+create table JBPM_NODE (ID_ bigint generated by default as identity (start with 1), CLASS_ char(1) not null, NAME_ varchar(255), DESCRIPTION_ longvarchar(4000), PROCESSDEFINITION_ bigint, ISASYNC_ bit, ISASYNCEXCL_ bit, ACTION_ bigint, SUPERSTATE_ bigint, SUBPROCNAME_ varchar(255), SUBPROCESSDEFINITION_ bigint, DECISIONEXPRESSION_ varchar(255), DECISIONDELEGATION bigint, SCRIPT_ bigint, PARENTLOCKMODE_ varchar(255), SIGNAL_ integer, CREATETASKS_ bit, ENDTASKS_ bit, NODECOLLECTIONINDEX_ integer, primary key (ID_))
+create table JBPM_POOLEDACTOR (ID_ bigint generated by default as identity (start with 1), VERSION_ integer not null, ACTORID_ varchar(255), SWIMLANEINSTANCE_ bigint, primary key (ID_))
+create table JBPM_PROCESSDEFINITION (ID_ bigint generated by default as identity (start with 1), CLASS_ char(1) not null, NAME_ varchar(255), DESCRIPTION_ longvarchar(4000), VERSION_ integer, ISTERMINATIONIMPLICIT_ bit, STARTSTATE_ bigint, primary key (ID_))
+create table JBPM_PROCESSINSTANCE (ID_ bigint generated by default as identity (start with 1), VERSION_ integer not null, KEY_ varchar(255), START_ timestamp, END_ timestamp, ISSUSPENDED_ bit, PROCESSDEFINITION_ bigint, ROOTTOKEN_ bigint, SUPERPROCESSTOKEN_ bigint, primary key (ID_))
+create table JBPM_RUNTIMEACTION (ID_ bigint generated by default as identity (start with 1), VERSION_ integer not null, EVENTTYPE_ varchar(255), TYPE_ char(1), GRAPHELEMENT_ bigint, PROCESSINSTANCE_ bigint, ACTION_ bigint, PROCESSINSTANCEINDEX_ integer, primary key (ID_))
+create table JBPM_SWIMLANE (ID_ bigint generated by default as identity (start with 1), NAME_ varchar(255), ACTORIDEXPRESSION_ varchar(255), POOLEDACTORSEXPRESSION_ varchar(255), ASSIGNMENTDELEGATION_ bigint, TASKMGMTDEFINITION_ bigint, primary key (ID_))
+create table JBPM_SWIMLANEINSTANCE (ID_ bigint generated by default as identity (start with 1), VERSION_ integer not null, NAME_ varchar(255), ACTORID_ varchar(255), SWIMLANE_ bigint, TASKMGMTINSTANCE_ bigint, primary key (ID_))
+create table JBPM_TASK (ID_ bigint generated by default as identity (start with 1), NAME_ varchar(255), DESCRIPTION_ longvarchar(4000), PROCESSDEFINITION_ bigint, ISBLOCKING_ bit, ISSIGNALLING_ bit, CONDITION_ varchar(255), DUEDATE_ varchar(255), PRIORITY_ integer, ACTORIDEXPRESSION_ varchar(255), POOLEDACTORSEXPRESSION_ varchar(255), TASKMGMTDEFINITION_ bigint, TASKNODE_ bigint, STARTSTATE_ bigint, ASSIGNMENTDELEGATION_ bigint, SWIMLANE_ bigint, TASKCONTROLLER_ bigint, primary key (ID_))
+create table JBPM_TASKACTORPOOL (TASKINSTANCE_ bigint not null, POOLEDACTOR_ bigint not null, primary key (TASKINSTANCE_, POOLEDACTOR_))
+create table JBPM_TASKCONTROLLER (ID_ bigint generated by default as identity (start with 1), TASKCONTROLLERDELEGATION_ bigint, primary key (ID_))
+create table JBPM_TASKINSTANCE (ID_ bigint generated by default as identity (start with 1), CLASS_ char(1) not null, VERSION_ integer not null, NAME_ varchar(255), DESCRIPTION_ longvarchar(4000), ACTORID_ varchar(255), CREATE_ timestamp, START_ timestamp, END_ timestamp, DUEDATE_ timestamp, PRIORITY_ integer, ISCANCELLED_ bit, ISSUSPENDED_ bit, ISOPEN_ bit, ISSIGNALLING_ bit, ISBLOCKING_ bit, TASK_ bigint, TOKEN_ bigint, PROCINST_ bigint, SWIMLANINSTANCE_ bigint, TASKMGMTINSTANCE_ bigint, primary key (ID_))
+create table JBPM_TOKEN (ID_ bigint generated by default as identity (start with 1), VERSION_ integer not null, NAME_ varchar(255), START_ timestamp, END_ timestamp, NODEENTER_ timestamp, NEXTLOGINDEX_ integer, ISABLETOREACTIVATEPARENT_ bit, ISTERMINATIONIMPLICIT_ bit, ISSUSPENDED_ bit, LOCK_ varchar(255), NODE_ bigint, PROCESSINSTANCE_ bigint, PARENT_ bigint, SUBPROCESSINSTANCE_ bigint, primary key (ID_))
+create table JBPM_TOKENVARIABLEMAP (ID_ bigint generated by default as identity (start with 1), VERSION_ integer not null, TOKEN_ bigint, CONTEXTINSTANCE_ bigint, primary key (ID_))
+create table JBPM_TRANSITION (ID_ bigint generated by default as identity (start with 1), NAME_ varchar(255), DESCRIPTION_ longvarchar(4000), PROCESSDEFINITION_ bigint, FROM_ bigint, TO_ bigint, CONDITION_ varchar(255), FROMINDEX_ integer, primary key (ID_))
+create table JBPM_VARIABLEACCESS (ID_ bigint generated by default as identity (start with 1), VARIABLENAME_ varchar(255), ACCESS_ varchar(255), MAPPEDNAME_ varchar(255), SCRIPT_ bigint, PROCESSSTATE_ bigint, TASKCONTROLLER_ bigint, INDEX_ integer, primary key (ID_))
+create table JBPM_VARIABLEINSTANCE (ID_ bigint generated by default as identity (start with 1), CLASS_ char(1) not null, VERSION_ integer not null, NAME_ varchar(255), CONVERTER_ char(1), TOKEN_ bigint, TOKENVARIABLEMAP_ bigint, PROCESSINSTANCE_ bigint, BYTEARRAYVALUE_ bigint, DATEVALUE_ timestamp, DOUBLEVALUE_ double, LONGIDCLASS_ varchar(255), LONGVALUE_ bigint, STRINGIDCLASS_ varchar(255), STRINGVALUE_ varchar(4000), TASKINSTANCE_ bigint, primary key (ID_))
+create index IDX_ACTION_EVENT on JBPM_ACTION (EVENT_)
+create index IDX_ACTION_ACTNDL on JBPM_ACTION (ACTIONDELEGATION_)
+create index IDX_ACTION_PROCDF on JBPM_ACTION (PROCESSDEFINITION_)
+alter table JBPM_ACTION add constraint FK_ACTION_EVENT foreign key (EVENT_) references JBPM_EVENT
+alter table JBPM_ACTION add constraint FK_ACTION_EXPTHDL foreign key (EXCEPTIONHANDLER_) references JBPM_EXCEPTIONHANDLER
+alter table JBPM_ACTION add constraint FK_ACTION_PROCDEF foreign key (PROCESSDEFINITION_) references JBPM_PROCESSDEFINITION
+alter table JBPM_ACTION add constraint FK_CRTETIMERACT_TA foreign key (TIMERACTION_) references JBPM_ACTION
+alter table JBPM_ACTION add constraint FK_ACTION_ACTNDEL foreign key (ACTIONDELEGATION_) references JBPM_DELEGATION
+alter table JBPM_ACTION add constraint FK_ACTION_REFACT foreign key (REFERENCEDACTION_) references JBPM_ACTION
+alter table JBPM_BYTEARRAY add constraint FK_BYTEARR_FILDEF foreign key (FILEDEFINITION_) references JBPM_MODULEDEFINITION
+alter table JBPM_BYTEBLOCK add constraint FK_BYTEBLOCK_FILE foreign key (PROCESSFILE_) references JBPM_BYTEARRAY
+create index IDX_COMMENT_TOKEN on JBPM_COMMENT (TOKEN_)
+create index IDX_COMMENT_TSK on JBPM_COMMENT (TASKINSTANCE_)
+alter table JBPM_COMMENT add constraint FK_COMMENT_TOKEN foreign key (TOKEN_) references JBPM_TOKEN
+alter table JBPM_COMMENT add constraint FK_COMMENT_TSK foreign key (TASKINSTANCE_) references JBPM_TASKINSTANCE
+alter table JBPM_DECISIONCONDITIONS add constraint FK_DECCOND_DEC foreign key (DECISION_) references JBPM_NODE
+create index IDX_DELEG_PRCD on JBPM_DELEGATION (PROCESSDEFINITION_)
+alter table JBPM_DELEGATION add constraint FK_DELEGATION_PRCD foreign key (PROCESSDEFINITION_) references JBPM_PROCESSDEFINITION
+alter table JBPM_EVENT add constraint FK_EVENT_PROCDEF foreign key (PROCESSDEFINITION_) references JBPM_PROCESSDEFINITION
+alter table JBPM_EVENT add constraint FK_EVENT_NODE foreign key (NODE_) references JBPM_NODE
+alter table JBPM_EVENT add constraint FK_EVENT_TRANS foreign key (TRANSITION_) references JBPM_TRANSITION
+alter table JBPM_EVENT add constraint FK_EVENT_TASK foreign key (TASK_) references JBPM_TASK
+alter table JBPM_ID_GROUP add constraint FK_ID_GRP_PARENT foreign key (PARENT_) references JBPM_ID_GROUP
+alter table JBPM_ID_MEMBERSHIP add constraint FK_ID_MEMSHIP_GRP foreign key (GROUP_) references JBPM_ID_GROUP
+alter table JBPM_ID_MEMBERSHIP add constraint FK_ID_MEMSHIP_USR foreign key (USER_) references JBPM_ID_USER
+create index IDX_JOB_TSKINST on JBPM_JOB (TASKINSTANCE_)
+create index IDX_JOB_PRINST on JBPM_JOB (PROCESSINSTANCE_)
+create index IDX_JOB_TOKEN on JBPM_JOB (TOKEN_)
+alter table JBPM_JOB add constraint FK_JOB_TOKEN foreign key (TOKEN_) references JBPM_TOKEN
+alter table JBPM_JOB add constraint FK_JOB_NODE foreign key (NODE_) references JBPM_NODE
+alter table JBPM_JOB add constraint FK_JOB_PRINST foreign key (PROCESSINSTANCE_) references JBPM_PROCESSINSTANCE
+alter table JBPM_JOB add constraint FK_JOB_ACTION foreign key (ACTION_) references JBPM_ACTION
+alter table JBPM_JOB add constraint FK_JOB_TSKINST foreign key (TASKINSTANCE_) references JBPM_TASKINSTANCE
+alter table JBPM_LOG add constraint FK_LOG_SOURCENODE foreign key (SOURCENODE_) references JBPM_NODE
+alter table JBPM_LOG add constraint FK_LOG_TOKEN foreign key (TOKEN_) references JBPM_TOKEN
+alter table JBPM_LOG add constraint FK_LOG_OLDBYTES foreign key (OLDBYTEARRAY_) references JBPM_BYTEARRAY
+alter table JBPM_LOG add constraint FK_LOG_NEWBYTES foreign key (NEWBYTEARRAY_) references JBPM_BYTEARRAY
+alter table JBPM_LOG add constraint FK_LOG_CHILDTOKEN foreign key (CHILD_) references JBPM_TOKEN
+alter table JBPM_LOG add constraint FK_LOG_DESTNODE foreign key (DESTINATIONNODE_) references JBPM_NODE
+alter table JBPM_LOG add constraint FK_LOG_TASKINST foreign key (TASKINSTANCE_) references JBPM_TASKINSTANCE
+alter table JBPM_LOG add constraint FK_LOG_SWIMINST foreign key (SWIMLANEINSTANCE_) references JBPM_SWIMLANEINSTANCE
+alter table JBPM_LOG add constraint FK_LOG_PARENT foreign key (PARENT_) references JBPM_LOG
+alter table JBPM_LOG add constraint FK_LOG_NODE foreign key (NODE_) references JBPM_NODE
+alter table JBPM_LOG add constraint FK_LOG_ACTION foreign key (ACTION_) references JBPM_ACTION
+alter table JBPM_LOG add constraint FK_LOG_VARINST foreign key (VARIABLEINSTANCE_) references JBPM_VARIABLEINSTANCE
+alter table JBPM_LOG add constraint FK_LOG_TRANSITION foreign key (TRANSITION_) references JBPM_TRANSITION
+create index IDX_MODDEF_PROCDF on JBPM_MODULEDEFINITION (PROCESSDEFINITION_)
+alter table JBPM_MODULEDEFINITION add constraint FK_TSKDEF_START foreign key (STARTTASK_) references JBPM_TASK
+alter table JBPM_MODULEDEFINITION add constraint FK_MODDEF_PROCDEF foreign key (PROCESSDEFINITION_) references JBPM_PROCESSDEFINITION
+create index IDX_MODINST_PRINST on JBPM_MODULEINSTANCE (PROCESSINSTANCE_)
+alter table JBPM_MODULEINSTANCE add constraint FK_TASKMGTINST_TMD foreign key (TASKMGMTDEFINITION_) references JBPM_MODULEDEFINITION
+alter table JBPM_MODULEINSTANCE add constraint FK_MODINST_PRCINST foreign key (PROCESSINSTANCE_) references JBPM_PROCESSINSTANCE
+create index IDX_PSTATE_SBPRCDEF on JBPM_NODE (SUBPROCESSDEFINITION_)
+create index IDX_NODE_SUPRSTATE on JBPM_NODE (SUPERSTATE_)
+create index IDX_NODE_PROCDEF on JBPM_NODE (PROCESSDEFINITION_)
+create index IDX_NODE_ACTION on JBPM_NODE (ACTION_)
+alter table JBPM_NODE add constraint FK_PROCST_SBPRCDEF foreign key (SUBPROCESSDEFINITION_) references JBPM_PROCESSDEFINITION
+alter table JBPM_NODE add constraint FK_NODE_PROCDEF foreign key (PROCESSDEFINITION_) references JBPM_PROCESSDEFINITION
+alter table JBPM_NODE add constraint FK_NODE_SCRIPT foreign key (SCRIPT_) references JBPM_ACTION
+alter table JBPM_NODE add constraint FK_NODE_ACTION foreign key (ACTION_) references JBPM_ACTION
+alter table JBPM_NODE add constraint FK_DECISION_DELEG foreign key (DECISIONDELEGATION) references JBPM_DELEGATION
+alter table JBPM_NODE add constraint FK_NODE_SUPERSTATE foreign key (SUPERSTATE_) references JBPM_NODE
+create index IDX_PLDACTR_ACTID on JBPM_POOLEDACTOR (ACTORID_)
+create index IDX_TSKINST_SWLANE on JBPM_POOLEDACTOR (SWIMLANEINSTANCE_)
+alter table JBPM_POOLEDACTOR add constraint FK_POOLEDACTOR_SLI foreign key (SWIMLANEINSTANCE_) references JBPM_SWIMLANEINSTANCE
+create index IDX_PROCDEF_STRTST on JBPM_PROCESSDEFINITION (STARTSTATE_)
+alter table JBPM_PROCESSDEFINITION add constraint FK_PROCDEF_STRTSTA foreign key (STARTSTATE_) references JBPM_NODE
+create index IDX_PROCIN_ROOTTK on JBPM_PROCESSINSTANCE (ROOTTOKEN_)
+create index IDX_PROCIN_SPROCTK on JBPM_PROCESSINSTANCE (SUPERPROCESSTOKEN_)
+create index IDX_PROCIN_KEY on JBPM_PROCESSINSTANCE (KEY_)
+create index IDX_PROCIN_PROCDEF on JBPM_PROCESSINSTANCE (PROCESSDEFINITION_)
+alter table JBPM_PROCESSINSTANCE add constraint FK_PROCIN_PROCDEF foreign key (PROCESSDEFINITION_) references JBPM_PROCESSDEFINITION
+alter table JBPM_PROCESSINSTANCE add constraint FK_PROCIN_ROOTTKN foreign key (ROOTTOKEN_) references JBPM_TOKEN
+alter table JBPM_PROCESSINSTANCE add constraint FK_PROCIN_SPROCTKN foreign key (SUPERPROCESSTOKEN_) references JBPM_TOKEN
+create index IDX_RTACTN_PRCINST on JBPM_RUNTIMEACTION (PROCESSINSTANCE_)
+create index IDX_RTACTN_ACTION on JBPM_RUNTIMEACTION (ACTION_)
+alter table JBPM_RUNTIMEACTION add constraint FK_RTACTN_PROCINST foreign key (PROCESSINSTANCE_) references JBPM_PROCESSINSTANCE
+alter table JBPM_RUNTIMEACTION add constraint FK_RTACTN_ACTION foreign key (ACTION_) references JBPM_ACTION
+alter table JBPM_SWIMLANE add constraint FK_SWL_ASSDEL foreign key (ASSIGNMENTDELEGATION_) references JBPM_DELEGATION
+alter table JBPM_SWIMLANE add constraint FK_SWL_TSKMGMTDEF foreign key (TASKMGMTDEFINITION_) references JBPM_MODULEDEFINITION
+create index IDX_SWIMLINST_SL on JBPM_SWIMLANEINSTANCE (SWIMLANE_)
+alter table JBPM_SWIMLANEINSTANCE add constraint FK_SWIMLANEINST_TM foreign key (TASKMGMTINSTANCE_) references JBPM_MODULEINSTANCE
+alter table JBPM_SWIMLANEINSTANCE add constraint FK_SWIMLANEINST_SL foreign key (SWIMLANE_) references JBPM_SWIMLANE
+create index IDX_TASK_TSKNODE on JBPM_TASK (TASKNODE_)
+create index IDX_TASK_PROCDEF on JBPM_TASK (PROCESSDEFINITION_)
+create index IDX_TASK_TASKMGTDF on JBPM_TASK (TASKMGMTDEFINITION_)
+alter table JBPM_TASK add constraint FK_TSK_TSKCTRL foreign key (TASKCONTROLLER_) references JBPM_TASKCONTROLLER
+alter table JBPM_TASK add constraint FK_TASK_ASSDEL foreign key (ASSIGNMENTDELEGATION_) references JBPM_DELEGATION
+alter table JBPM_TASK add constraint FK_TASK_TASKNODE foreign key (TASKNODE_) references JBPM_NODE
+alter table JBPM_TASK add constraint FK_TASK_PROCDEF foreign key (PROCESSDEFINITION_) references JBPM_PROCESSDEFINITION
+alter table JBPM_TASK add constraint FK_TASK_STARTST foreign key (STARTSTATE_) references JBPM_NODE
+alter table JBPM_TASK add constraint FK_TASK_TASKMGTDEF foreign key (TASKMGMTDEFINITION_) references JBPM_MODULEDEFINITION
+alter table JBPM_TASK add constraint FK_TASK_SWIMLANE foreign key (SWIMLANE_) references JBPM_SWIMLANE
+alter table JBPM_TASKACTORPOOL add constraint FK_TSKACTPOL_PLACT foreign key (POOLEDACTOR_) references JBPM_POOLEDACTOR
+alter table JBPM_TASKACTORPOOL add constraint FK_TASKACTPL_TSKI foreign key (TASKINSTANCE_) references JBPM_TASKINSTANCE
+alter table JBPM_TASKCONTROLLER add constraint FK_TSKCTRL_DELEG foreign key (TASKCONTROLLERDELEGATION_) references JBPM_DELEGATION
+create index IDX_TASKINST_TOKN on JBPM_TASKINSTANCE (TOKEN_)
+create index IDX_TASKINST_TSK on JBPM_TASKINSTANCE (TASK_, PROCINST_)
+create index IDX_TSKINST_TMINST on JBPM_TASKINSTANCE (TASKMGMTINSTANCE_)
+create index IDX_TSKINST_SLINST on JBPM_TASKINSTANCE (SWIMLANINSTANCE_)
+create index IDX_TASK_ACTORID on JBPM_TASKINSTANCE (ACTORID_)
+alter table JBPM_TASKINSTANCE add constraint FK_TSKINS_PRCINS foreign key (PROCINST_) references JBPM_PROCESSINSTANCE
+alter table JBPM_TASKINSTANCE add constraint FK_TASKINST_TMINST foreign key (TASKMGMTINSTANCE_) references JBPM_MODULEINSTANCE
+alter table JBPM_TASKINSTANCE add constraint FK_TASKINST_TOKEN foreign key (TOKEN_) references JBPM_TOKEN
+alter table JBPM_TASKINSTANCE add constraint FK_TASKINST_SLINST foreign key (SWIMLANINSTANCE_) references JBPM_SWIMLANEINSTANCE
+alter table JBPM_TASKINSTANCE add constraint FK_TASKINST_TASK foreign key (TASK_) references JBPM_TASK
+create index IDX_TOKEN_PROCIN on JBPM_TOKEN (PROCESSINSTANCE_)
+create index IDX_TOKEN_SUBPI on JBPM_TOKEN (SUBPROCESSINSTANCE_)
+create index IDX_TOKEN_NODE on JBPM_TOKEN (NODE_)
+create index IDX_TOKEN_PARENT on JBPM_TOKEN (PARENT_)
+alter table JBPM_TOKEN add constraint FK_TOKEN_PARENT foreign key (PARENT_) references JBPM_TOKEN
+alter table JBPM_TOKEN add constraint FK_TOKEN_NODE foreign key (NODE_) references JBPM_NODE
+alter table JBPM_TOKEN add constraint FK_TOKEN_PROCINST foreign key (PROCESSINSTANCE_) references JBPM_PROCESSINSTANCE
+alter table JBPM_TOKEN add constraint FK_TOKEN_SUBPI foreign key (SUBPROCESSINSTANCE_) references JBPM_PROCESSINSTANCE
+create index IDX_TKVARMAP_CTXT on JBPM_TOKENVARIABLEMAP (CONTEXTINSTANCE_)
+create index IDX_TKVVARMP_TOKEN on JBPM_TOKENVARIABLEMAP (TOKEN_)
+alter table JBPM_TOKENVARIABLEMAP add constraint FK_TKVARMAP_CTXT foreign key (CONTEXTINSTANCE_) references JBPM_MODULEINSTANCE
+alter table JBPM_TOKENVARIABLEMAP add constraint FK_TKVARMAP_TOKEN foreign key (TOKEN_) references JBPM_TOKEN
+create index IDX_TRANSIT_TO on JBPM_TRANSITION (TO_)
+create index IDX_TRANSIT_FROM on JBPM_TRANSITION (FROM_)
+create index IDX_TRANS_PROCDEF on JBPM_TRANSITION (PROCESSDEFINITION_)
+alter table JBPM_TRANSITION add constraint FK_TRANSITION_TO foreign key (TO_) references JBPM_NODE
+alter table JBPM_TRANSITION add constraint FK_TRANS_PROCDEF foreign key (PROCESSDEFINITION_) references JBPM_PROCESSDEFINITION
+alter table JBPM_TRANSITION add constraint FK_TRANSITION_FROM foreign key (FROM_) references JBPM_NODE
+alter table JBPM_VARIABLEACCESS add constraint FK_VARACC_TSKCTRL foreign key (TASKCONTROLLER_) references JBPM_TASKCONTROLLER
+alter table JBPM_VARIABLEACCESS add constraint FK_VARACC_SCRIPT foreign key (SCRIPT_) references JBPM_ACTION
+alter table JBPM_VARIABLEACCESS add constraint FK_VARACC_PROCST foreign key (PROCESSSTATE_) references JBPM_NODE
+create index IDX_VARINST_TKVARMP on JBPM_VARIABLEINSTANCE (TOKENVARIABLEMAP_)
+create index IDX_VARINST_PRCINS on JBPM_VARIABLEINSTANCE (PROCESSINSTANCE_)
+create index IDX_VARINST_TK on JBPM_VARIABLEINSTANCE (TOKEN_)
+alter table JBPM_VARIABLEINSTANCE add constraint FK_VARINST_TK foreign key (TOKEN_) references JBPM_TOKEN
+alter table JBPM_VARIABLEINSTANCE add constraint FK_VARINST_TKVARMP foreign key (TOKENVARIABLEMAP_) references JBPM_TOKENVARIABLEMAP
+alter table JBPM_VARIABLEINSTANCE add constraint FK_VARINST_PRCINST foreign key (PROCESSINSTANCE_) references JBPM_PROCESSINSTANCE
+alter table JBPM_VARIABLEINSTANCE add constraint FK_VAR_TSKINST foreign key (TASKINSTANCE_) references JBPM_TASKINSTANCE
+alter table JBPM_VARIABLEINSTANCE add constraint FK_BYTEINST_ARRAY foreign key (BYTEARRAYVALUE_) references JBPM_BYTEARRAY
Modified: labs/jbossesb/workspace/mlittle/legstar/product/services/jbpm/src/main/resources/jbpm-sql/jbpm.jpdl.ingres.sql
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/services/jbpm/src/main/resources/jbpm-sql/jbpm.jpdl.ingres.sql 2009-01-21 14:47:17 UTC (rev 24849)
+++ labs/jbossesb/workspace/mlittle/legstar/product/services/jbpm/src/main/resources/jbpm-sql/jbpm.jpdl.ingres.sql 2009-01-21 15:38:08 UTC (rev 24850)
@@ -1,168 +1,168 @@
-create table JBPM_ACTION (ID_ bigint not null, class char(1) not null, NAME_ varchar(255) with null, ISPROPAGATIONALLOWED_ tinyint with null, ACTIONEXPRESSION_ varchar(255) with null, ISASYNC_ tinyint with null, REFERENCEDACTION_ bigint with null, ACTIONDELEGATION_ bigint with null, EVENT_ bigint with null, PROCESSDEFINITION_ bigint with null, EXPRESSION_ varchar(4000) with null, TIMERNAME_ varchar(255) with null, DUEDATE_ varchar(255) with null, REPEAT_ varchar(255) with null, TRANSITIONNAME_ varchar(255) with null, TIMERACTION_ bigint with null, EVENTINDEX_ integer with null, EXCEPTIONHANDLER_ bigint with null, EXCEPTIONHANDLERINDEX_ integer with null, primary key (ID_));
-create table JBPM_BYTEARRAY (ID_ bigint not null, NAME_ varchar(255) with null, FILEDEFINITION_ bigint with null, primary key (ID_));
-create table JBPM_BYTEBLOCK (PROCESSFILE_ bigint not null, BYTES_ varbyte(1024) with null, INDEX_ integer not null, primary key (PROCESSFILE_, INDEX_));
-create table JBPM_COMMENT (ID_ bigint not null, VERSION_ integer not null, ACTORID_ varchar(255) with null, TIME_ date with null, MESSAGE_ varchar(4000) with null, TOKEN_ bigint with null, TASKINSTANCE_ bigint with null, TOKENINDEX_ integer with null, TASKINSTANCEINDEX_ integer with null, primary key (ID_));
-create table JBPM_DECISIONCONDITIONS (DECISION_ bigint not null, TRANSITIONNAME_ varchar(255) with null, EXPRESSION_ varchar(255) with null, INDEX_ integer not null, primary key (DECISION_, INDEX_));
-create table JBPM_DELEGATION (ID_ bigint not null, CLASSNAME_ varchar(4000) with null, CONFIGURATION_ varchar(4000) with null, CONFIGTYPE_ varchar(255) with null, PROCESSDEFINITION_ bigint with null, primary key (ID_));
-create table JBPM_EVENT (ID_ bigint not null, EVENTTYPE_ varchar(255) with null, TYPE_ char(1) with null, GRAPHELEMENT_ bigint with null, PROCESSDEFINITION_ bigint with null, NODE_ bigint with null, TRANSITION_ bigint with null, TASK_ bigint with null, primary key (ID_));
-create table JBPM_EXCEPTIONHANDLER (ID_ bigint not null, EXCEPTIONCLASSNAME_ varchar(4000) with null, TYPE_ char(1) with null, GRAPHELEMENT_ bigint with null, PROCESSDEFINITION_ bigint with null, GRAPHELEMENTINDEX_ integer with null, NODE_ bigint with null, TRANSITION_ bigint with null, TASK_ bigint with null, primary key (ID_));
-create table JBPM_ID_GROUP (ID_ bigint not null, CLASS_ char(1) not null, NAME_ varchar(255) with null, TYPE_ varchar(255) with null, PARENT_ bigint with null, primary key (ID_));
-create table JBPM_ID_MEMBERSHIP (ID_ bigint not null, CLASS_ char(1) not null, NAME_ varchar(255) with null, ROLE_ varchar(255) with null, USER_ bigint with null, GROUP_ bigint with null, primary key (ID_));
-create table JBPM_ID_PERMISSIONS (ENTITY_ bigint not null, CLASS_ varchar(255) with null, NAME_ varchar(255) with null, ACTION_ varchar(255) with null);
-create table JBPM_ID_USER (ID_ bigint not null, CLASS_ char(1) not null, NAME_ varchar(255) with null, EMAIL_ varchar(255) with null, PASSWORD_ varchar(255) with null, primary key (ID_));
-create table JBPM_JOB (ID_ bigint not null, CLASS_ char(1) not null, VERSION_ integer not null, DUEDATE_ date with null, PROCESSINSTANCE_ bigint with null, TOKEN_ bigint with null, TASKINSTANCE_ bigint with null, ISSUSPENDED_ tinyint with null, ISEXCLUSIVE_ tinyint with null, LOCKOWNER_ varchar(255) with null, LOCKTIME_ date with null, EXCEPTION_ varchar(4000) with null, RETRIES_ integer with null, NAME_ varchar(255) with null, REPEAT_ varchar(255) with null, TRANSITIONNAME_ varchar(255) with null, ACTION_ bigint with null, GRAPHELEMENTTYPE_ varchar(255) with null, GRAPHELEMENT_ bigint with null, NODE_ bigint with null, primary key (ID_));
-create table JBPM_LOG (ID_ bigint not null, CLASS_ char(1) not null, INDEX_ integer with null, DATE_ date with null, TOKEN_ bigint with null, PARENT_ bigint with null, MESSAGE_ varchar(4000) with null, EXCEPTION_ varchar(4000) with null, ACTION_ bigint with null, NODE_ bigint with null, ENTER_ date with null, LEAVE_ date with null, DURATION_ bigint with null, NEWLONGVALUE_ bigint with null, TRANSITION_ bigint with null, CHILD_ bigint with null, SOURCENODE_ bigint with null, DESTINATIONNODE_ bigint with null, VARIABLEINSTANCE_ bigint with null, OLDBYTEARRAY_ bigint with null, NEWBYTEARRAY_ bigint with null, OLDDATEVALUE_ date with null, NEWDATEVALUE_ date with null, OLDDOUBLEVALUE_ float with null, NEWDOUBLEVALUE_ float with null, OLDLONGIDCLASS_ varchar(255) with null, OLDLONGIDVALUE_ bigint with null, NEWLONGIDCLASS_ varchar(255) with null, NEWLONGIDVALUE_ bigint with null, OLDSTRINGIDCLASS_ varchar(255) with null, OLDSTRINGIDVALUE_ varchar(255) with null, NEWSTRINGIDCLASS!
_ varchar(255) with null, NEWSTRINGIDVALUE_ varchar(255) with null, OLDLONGVALUE_ bigint with null, OLDSTRINGVALUE_ varchar(4000) with null, NEWSTRINGVALUE_ varchar(4000) with null, TASKINSTANCE_ bigint with null, TASKACTORID_ varchar(255) with null, TASKOLDACTORID_ varchar(255) with null, SWIMLANEINSTANCE_ bigint with null, primary key (ID_));
-create table JBPM_MODULEDEFINITION (ID_ bigint not null, CLASS_ char(1) not null, NAME_ varchar(4000) with null, PROCESSDEFINITION_ bigint with null, STARTTASK_ bigint with null, primary key (ID_));
-create table JBPM_MODULEINSTANCE (ID_ bigint not null, CLASS_ char(1) not null, VERSION_ integer not null, PROCESSINSTANCE_ bigint with null, TASKMGMTDEFINITION_ bigint with null, NAME_ varchar(255) with null, primary key (ID_));
-create table JBPM_NODE (ID_ bigint not null, CLASS_ char(1) not null, NAME_ varchar(255) with null, DESCRIPTION_ varchar(4000) with null, PROCESSDEFINITION_ bigint with null, ISASYNC_ tinyint with null, ISASYNCEXCL_ tinyint with null, ACTION_ bigint with null, SUPERSTATE_ bigint with null, SUBPROCNAME_ varchar(255) with null, SUBPROCESSDEFINITION_ bigint with null, DECISIONEXPRESSION_ varchar(255) with null, DECISIONDELEGATION bigint with null, SCRIPT_ bigint with null, SIGNAL_ integer with null, CREATETASKS_ tinyint with null, ENDTASKS_ tinyint with null, NODECOLLECTIONINDEX_ integer with null, primary key (ID_));
-create table JBPM_POOLEDACTOR (ID_ bigint not null, VERSION_ integer not null, ACTORID_ varchar(255) with null, SWIMLANEINSTANCE_ bigint with null, primary key (ID_));
-create table JBPM_PROCESSDEFINITION (ID_ bigint not null, CLASS_ char(1) not null, NAME_ varchar(255) with null, DESCRIPTION_ varchar(4000) with null, VERSION_ integer with null, ISTERMINATIONIMPLICIT_ tinyint with null, STARTSTATE_ bigint with null, primary key (ID_));
-create table JBPM_PROCESSINSTANCE (ID_ bigint not null, VERSION_ integer not null, KEY_ varchar(255) with null, START_ date with null, END_ date with null, ISSUSPENDED_ tinyint with null, PROCESSDEFINITION_ bigint with null, ROOTTOKEN_ bigint with null, SUPERPROCESSTOKEN_ bigint with null, primary key (ID_));
-create table JBPM_RUNTIMEACTION (ID_ bigint not null, VERSION_ integer not null, EVENTTYPE_ varchar(255) with null, TYPE_ char(1) with null, GRAPHELEMENT_ bigint with null, PROCESSINSTANCE_ bigint with null, ACTION_ bigint with null, PROCESSINSTANCEINDEX_ integer with null, primary key (ID_));
-create table JBPM_SWIMLANE (ID_ bigint not null, NAME_ varchar(255) with null, ACTORIDEXPRESSION_ varchar(255) with null, POOLEDACTORSEXPRESSION_ varchar(255) with null, ASSIGNMENTDELEGATION_ bigint with null, TASKMGMTDEFINITION_ bigint with null, primary key (ID_));
-create table JBPM_SWIMLANEINSTANCE (ID_ bigint not null, VERSION_ integer not null, NAME_ varchar(255) with null, ACTORID_ varchar(255) with null, SWIMLANE_ bigint with null, TASKMGMTINSTANCE_ bigint with null, primary key (ID_));
-create table JBPM_TASK (ID_ bigint not null, NAME_ varchar(255) with null, DESCRIPTION_ varchar(4000) with null, PROCESSDEFINITION_ bigint with null, ISBLOCKING_ tinyint with null, ISSIGNALLING_ tinyint with null, CONDITION_ varchar(255) with null, DUEDATE_ varchar(255) with null, PRIORITY_ integer with null, ACTORIDEXPRESSION_ varchar(255) with null, POOLEDACTORSEXPRESSION_ varchar(255) with null, TASKMGMTDEFINITION_ bigint with null, TASKNODE_ bigint with null, STARTSTATE_ bigint with null, ASSIGNMENTDELEGATION_ bigint with null, SWIMLANE_ bigint with null, TASKCONTROLLER_ bigint with null, primary key (ID_));
-create table JBPM_TASKACTORPOOL (TASKINSTANCE_ bigint not null, POOLEDACTOR_ bigint not null, primary key (TASKINSTANCE_, POOLEDACTOR_));
-create table JBPM_TASKCONTROLLER (ID_ bigint not null, TASKCONTROLLERDELEGATION_ bigint with null, primary key (ID_));
-create table JBPM_TASKINSTANCE (ID_ bigint not null, CLASS_ char(1) not null, VERSION_ integer not null, NAME_ varchar(255) with null, DESCRIPTION_ varchar(4000) with null, ACTORID_ varchar(255) with null, CREATE_ date with null, START_ date with null, END_ date with null, DUEDATE_ date with null, PRIORITY_ integer with null, ISCANCELLED_ tinyint with null, ISSUSPENDED_ tinyint with null, ISOPEN_ tinyint with null, ISSIGNALLING_ tinyint with null, ISBLOCKING_ tinyint with null, TASK_ bigint with null, TOKEN_ bigint with null, PROCINST_ bigint with null, SWIMLANINSTANCE_ bigint with null, TASKMGMTINSTANCE_ bigint with null, primary key (ID_));
-create table JBPM_TOKEN (ID_ bigint not null, VERSION_ integer not null, NAME_ varchar(255) with null, START_ date with null, END_ date with null, NODEENTER_ date with null, NEXTLOGINDEX_ integer with null, ISABLETOREACTIVATEPARENT_ tinyint with null, ISTERMINATIONIMPLICIT_ tinyint with null, ISSUSPENDED_ tinyint with null, LOCK_ varchar(255) with null, NODE_ bigint with null, PROCESSINSTANCE_ bigint with null, PARENT_ bigint with null, SUBPROCESSINSTANCE_ bigint with null, primary key (ID_));
-create table JBPM_TOKENVARIABLEMAP (ID_ bigint not null, VERSION_ integer not null, TOKEN_ bigint with null, CONTEXTINSTANCE_ bigint with null, primary key (ID_));
-create table JBPM_TRANSITION (ID_ bigint not null, NAME_ varchar(255) with null, DESCRIPTION_ varchar(4000) with null, PROCESSDEFINITION_ bigint with null, FROM_ bigint with null, TO_ bigint with null, CONDITION_ varchar(255) with null, FROMINDEX_ integer with null, primary key (ID_));
-create table JBPM_VARIABLEACCESS (ID_ bigint not null, VARIABLENAME_ varchar(255) with null, ACCESS_ varchar(255) with null, MAPPEDNAME_ varchar(255) with null, SCRIPT_ bigint with null, PROCESSSTATE_ bigint with null, TASKCONTROLLER_ bigint with null, INDEX_ integer with null, primary key (ID_));
-create table JBPM_VARIABLEINSTANCE (ID_ bigint not null, CLASS_ char(1) not null, VERSION_ integer not null, NAME_ varchar(255) with null, CONVERTER_ char(1) with null, TOKEN_ bigint with null, TOKENVARIABLEMAP_ bigint with null, PROCESSINSTANCE_ bigint with null, BYTEARRAYVALUE_ bigint with null, DATEVALUE_ date with null, DOUBLEVALUE_ float with null, LONGIDCLASS_ varchar(255) with null, LONGVALUE_ bigint with null, STRINGIDCLASS_ varchar(255) with null, STRINGVALUE_ varchar(4000) with null, TASKINSTANCE_ bigint with null, primary key (ID_));
-create index IDX_ACTION_EVENT on JBPM_ACTION (EVENT_);
-create index IDX_ACTION_ACTNDL on JBPM_ACTION (ACTIONDELEGATION_);
-create index IDX_ACTION_PROCDF on JBPM_ACTION (PROCESSDEFINITION_);
-alter table JBPM_ACTION add constraint FK_ACTION_EVENT foreign key (EVENT_) references JBPM_EVENT;
-alter table JBPM_ACTION add constraint FK_ACTION_EXPTHDL foreign key (EXCEPTIONHANDLER_) references JBPM_EXCEPTIONHANDLER;
-alter table JBPM_ACTION add constraint FK_ACTION_PROCDEF foreign key (PROCESSDEFINITION_) references JBPM_PROCESSDEFINITION;
-alter table JBPM_ACTION add constraint FK_CRTETIMERACT_TA foreign key (TIMERACTION_) references JBPM_ACTION;
-alter table JBPM_ACTION add constraint FK_ACTION_ACTNDEL foreign key (ACTIONDELEGATION_) references JBPM_DELEGATION;
-alter table JBPM_ACTION add constraint FK_ACTION_REFACT foreign key (REFERENCEDACTION_) references JBPM_ACTION;
-alter table JBPM_BYTEARRAY add constraint FK_BYTEARR_FILDEF foreign key (FILEDEFINITION_) references JBPM_MODULEDEFINITION;
-alter table JBPM_BYTEBLOCK add constraint FK_BYTEBLOCK_FILE foreign key (PROCESSFILE_) references JBPM_BYTEARRAY;
-create index IDX_COMMENT_TOKEN on JBPM_COMMENT (TOKEN_);
-create index IDX_COMMENT_TSK on JBPM_COMMENT (TASKINSTANCE_);
-alter table JBPM_COMMENT add constraint FK_COMMENT_TOKEN foreign key (TOKEN_) references JBPM_TOKEN;
-alter table JBPM_COMMENT add constraint FK_COMMENT_TSK foreign key (TASKINSTANCE_) references JBPM_TASKINSTANCE;
-alter table JBPM_DECISIONCONDITIONS add constraint FK_DECCOND_DEC foreign key (DECISION_) references JBPM_NODE;
-create index IDX_DELEG_PRCD on JBPM_DELEGATION (PROCESSDEFINITION_);
-alter table JBPM_DELEGATION add constraint FK_DELEGATION_PRCD foreign key (PROCESSDEFINITION_) references JBPM_PROCESSDEFINITION;
-alter table JBPM_EVENT add constraint FK_EVENT_PROCDEF foreign key (PROCESSDEFINITION_) references JBPM_PROCESSDEFINITION;
-alter table JBPM_EVENT add constraint FK_EVENT_NODE foreign key (NODE_) references JBPM_NODE;
-alter table JBPM_EVENT add constraint FK_EVENT_TRANS foreign key (TRANSITION_) references JBPM_TRANSITION;
-alter table JBPM_EVENT add constraint FK_EVENT_TASK foreign key (TASK_) references JBPM_TASK;
-alter table JBPM_ID_GROUP add constraint FK_ID_GRP_PARENT foreign key (PARENT_) references JBPM_ID_GROUP;
-alter table JBPM_ID_MEMBERSHIP add constraint FK_ID_MEMSHIP_GRP foreign key (GROUP_) references JBPM_ID_GROUP;
-alter table JBPM_ID_MEMBERSHIP add constraint FK_ID_MEMSHIP_USR foreign key (USER_) references JBPM_ID_USER;
-create index IDX_JOB_TSKINST on JBPM_JOB (TASKINSTANCE_);
-create index IDX_JOB_PRINST on JBPM_JOB (PROCESSINSTANCE_);
-create index IDX_JOB_TOKEN on JBPM_JOB (TOKEN_);
-alter table JBPM_JOB add constraint FK_JOB_TOKEN foreign key (TOKEN_) references JBPM_TOKEN;
-alter table JBPM_JOB add constraint FK_JOB_NODE foreign key (NODE_) references JBPM_NODE;
-alter table JBPM_JOB add constraint FK_JOB_PRINST foreign key (PROCESSINSTANCE_) references JBPM_PROCESSINSTANCE;
-alter table JBPM_JOB add constraint FK_JOB_ACTION foreign key (ACTION_) references JBPM_ACTION;
-alter table JBPM_JOB add constraint FK_JOB_TSKINST foreign key (TASKINSTANCE_) references JBPM_TASKINSTANCE;
-alter table JBPM_LOG add constraint FK_LOG_SOURCENODE foreign key (SOURCENODE_) references JBPM_NODE;
-alter table JBPM_LOG add constraint FK_LOG_TOKEN foreign key (TOKEN_) references JBPM_TOKEN;
-alter table JBPM_LOG add constraint FK_LOG_OLDBYTES foreign key (OLDBYTEARRAY_) references JBPM_BYTEARRAY;
-alter table JBPM_LOG add constraint FK_LOG_NEWBYTES foreign key (NEWBYTEARRAY_) references JBPM_BYTEARRAY;
-alter table JBPM_LOG add constraint FK_LOG_CHILDTOKEN foreign key (CHILD_) references JBPM_TOKEN;
-alter table JBPM_LOG add constraint FK_LOG_DESTNODE foreign key (DESTINATIONNODE_) references JBPM_NODE;
-alter table JBPM_LOG add constraint FK_LOG_TASKINST foreign key (TASKINSTANCE_) references JBPM_TASKINSTANCE;
-alter table JBPM_LOG add constraint FK_LOG_SWIMINST foreign key (SWIMLANEINSTANCE_) references JBPM_SWIMLANEINSTANCE;
-alter table JBPM_LOG add constraint FK_LOG_PARENT foreign key (PARENT_) references JBPM_LOG;
-alter table JBPM_LOG add constraint FK_LOG_NODE foreign key (NODE_) references JBPM_NODE;
-alter table JBPM_LOG add constraint FK_LOG_ACTION foreign key (ACTION_) references JBPM_ACTION;
-alter table JBPM_LOG add constraint FK_LOG_VARINST foreign key (VARIABLEINSTANCE_) references JBPM_VARIABLEINSTANCE;
-alter table JBPM_LOG add constraint FK_LOG_TRANSITION foreign key (TRANSITION_) references JBPM_TRANSITION;
-create index IDX_MODDEF_PROCDF on JBPM_MODULEDEFINITION (PROCESSDEFINITION_);
-alter table JBPM_MODULEDEFINITION add constraint FK_TSKDEF_START foreign key (STARTTASK_) references JBPM_TASK;
-alter table JBPM_MODULEDEFINITION add constraint FK_MODDEF_PROCDEF foreign key (PROCESSDEFINITION_) references JBPM_PROCESSDEFINITION;
-create index IDX_MODINST_PRINST on JBPM_MODULEINSTANCE (PROCESSINSTANCE_);
-alter table JBPM_MODULEINSTANCE add constraint FK_TASKMGTINST_TMD foreign key (TASKMGMTDEFINITION_) references JBPM_MODULEDEFINITION;
-alter table JBPM_MODULEINSTANCE add constraint FK_MODINST_PRCINST foreign key (PROCESSINSTANCE_) references JBPM_PROCESSINSTANCE;
-create index IDX_PSTATE_SBPRCDEF on JBPM_NODE (SUBPROCESSDEFINITION_);
-create index IDX_NODE_SUPRSTATE on JBPM_NODE (SUPERSTATE_);
-create index IDX_NODE_PROCDEF on JBPM_NODE (PROCESSDEFINITION_);
-create index IDX_NODE_ACTION on JBPM_NODE (ACTION_);
-alter table JBPM_NODE add constraint FK_PROCST_SBPRCDEF foreign key (SUBPROCESSDEFINITION_) references JBPM_PROCESSDEFINITION;
-alter table JBPM_NODE add constraint FK_NODE_PROCDEF foreign key (PROCESSDEFINITION_) references JBPM_PROCESSDEFINITION;
-alter table JBPM_NODE add constraint FK_NODE_SCRIPT foreign key (SCRIPT_) references JBPM_ACTION;
-alter table JBPM_NODE add constraint FK_NODE_ACTION foreign key (ACTION_) references JBPM_ACTION;
-alter table JBPM_NODE add constraint FK_DECISION_DELEG foreign key (DECISIONDELEGATION) references JBPM_DELEGATION;
-alter table JBPM_NODE add constraint FK_NODE_SUPERSTATE foreign key (SUPERSTATE_) references JBPM_NODE;
-create index IDX_PLDACTR_ACTID on JBPM_POOLEDACTOR (ACTORID_);
-create index IDX_TSKINST_SWLANE on JBPM_POOLEDACTOR (SWIMLANEINSTANCE_);
-alter table JBPM_POOLEDACTOR add constraint FK_POOLEDACTOR_SLI foreign key (SWIMLANEINSTANCE_) references JBPM_SWIMLANEINSTANCE;
-create index IDX_PROCDEF_STRTST on JBPM_PROCESSDEFINITION (STARTSTATE_);
-alter table JBPM_PROCESSDEFINITION add constraint FK_PROCDEF_STRTSTA foreign key (STARTSTATE_) references JBPM_NODE;
-create index IDX_PROCIN_ROOTTK on JBPM_PROCESSINSTANCE (ROOTTOKEN_);
-create index IDX_PROCIN_SPROCTK on JBPM_PROCESSINSTANCE (SUPERPROCESSTOKEN_);
-create index IDX_PROCIN_KEY on JBPM_PROCESSINSTANCE (KEY_);
-create index IDX_PROCIN_PROCDEF on JBPM_PROCESSINSTANCE (PROCESSDEFINITION_);
-alter table JBPM_PROCESSINSTANCE add constraint FK_PROCIN_PROCDEF foreign key (PROCESSDEFINITION_) references JBPM_PROCESSDEFINITION;
-alter table JBPM_PROCESSINSTANCE add constraint FK_PROCIN_ROOTTKN foreign key (ROOTTOKEN_) references JBPM_TOKEN;
-alter table JBPM_PROCESSINSTANCE add constraint FK_PROCIN_SPROCTKN foreign key (SUPERPROCESSTOKEN_) references JBPM_TOKEN;
-create index IDX_RTACTN_PRCINST on JBPM_RUNTIMEACTION (PROCESSINSTANCE_);
-create index IDX_RTACTN_ACTION on JBPM_RUNTIMEACTION (ACTION_);
-alter table JBPM_RUNTIMEACTION add constraint FK_RTACTN_PROCINST foreign key (PROCESSINSTANCE_) references JBPM_PROCESSINSTANCE;
-alter table JBPM_RUNTIMEACTION add constraint FK_RTACTN_ACTION foreign key (ACTION_) references JBPM_ACTION;
-alter table JBPM_SWIMLANE add constraint FK_SWL_ASSDEL foreign key (ASSIGNMENTDELEGATION_) references JBPM_DELEGATION;
-alter table JBPM_SWIMLANE add constraint FK_SWL_TSKMGMTDEF foreign key (TASKMGMTDEFINITION_) references JBPM_MODULEDEFINITION;
-create index IDX_SWIMLINST_SL on JBPM_SWIMLANEINSTANCE (SWIMLANE_);
-alter table JBPM_SWIMLANEINSTANCE add constraint FK_SWIMLANEINST_TM foreign key (TASKMGMTINSTANCE_) references JBPM_MODULEINSTANCE;
-alter table JBPM_SWIMLANEINSTANCE add constraint FK_SWIMLANEINST_SL foreign key (SWIMLANE_) references JBPM_SWIMLANE;
-create index IDX_TASK_TSKNODE on JBPM_TASK (TASKNODE_);
-create index IDX_TASK_PROCDEF on JBPM_TASK (PROCESSDEFINITION_);
-create index IDX_TASK_TASKMGTDF on JBPM_TASK (TASKMGMTDEFINITION_);
-alter table JBPM_TASK add constraint FK_TSK_TSKCTRL foreign key (TASKCONTROLLER_) references JBPM_TASKCONTROLLER;
-alter table JBPM_TASK add constraint FK_TASK_ASSDEL foreign key (ASSIGNMENTDELEGATION_) references JBPM_DELEGATION;
-alter table JBPM_TASK add constraint FK_TASK_TASKNODE foreign key (TASKNODE_) references JBPM_NODE;
-alter table JBPM_TASK add constraint FK_TASK_PROCDEF foreign key (PROCESSDEFINITION_) references JBPM_PROCESSDEFINITION;
-alter table JBPM_TASK add constraint FK_TASK_STARTST foreign key (STARTSTATE_) references JBPM_NODE;
-alter table JBPM_TASK add constraint FK_TASK_TASKMGTDEF foreign key (TASKMGMTDEFINITION_) references JBPM_MODULEDEFINITION;
-alter table JBPM_TASK add constraint FK_TASK_SWIMLANE foreign key (SWIMLANE_) references JBPM_SWIMLANE;
-alter table JBPM_TASKACTORPOOL add constraint FK_TSKACTPOL_PLACT foreign key (POOLEDACTOR_) references JBPM_POOLEDACTOR;
-alter table JBPM_TASKACTORPOOL add constraint FK_TASKACTPL_TSKI foreign key (TASKINSTANCE_) references JBPM_TASKINSTANCE;
-alter table JBPM_TASKCONTROLLER add constraint FK_TSKCTRL_DELEG foreign key (TASKCONTROLLERDELEGATION_) references JBPM_DELEGATION;
-create index IDX_TASKINST_TOKN on JBPM_TASKINSTANCE (TOKEN_);
-create index IDX_TASKINST_TSK on JBPM_TASKINSTANCE (TASK_, PROCINST_);
-create index IDX_TSKINST_TMINST on JBPM_TASKINSTANCE (TASKMGMTINSTANCE_);
-create index IDX_TSKINST_SLINST on JBPM_TASKINSTANCE (SWIMLANINSTANCE_);
-create index IDX_TASK_ACTORID on JBPM_TASKINSTANCE (ACTORID_);
-alter table JBPM_TASKINSTANCE add constraint FK_TSKINS_PRCINS foreign key (PROCINST_) references JBPM_PROCESSINSTANCE;
-alter table JBPM_TASKINSTANCE add constraint FK_TASKINST_TMINST foreign key (TASKMGMTINSTANCE_) references JBPM_MODULEINSTANCE;
-alter table JBPM_TASKINSTANCE add constraint FK_TASKINST_TOKEN foreign key (TOKEN_) references JBPM_TOKEN;
-alter table JBPM_TASKINSTANCE add constraint FK_TASKINST_SLINST foreign key (SWIMLANINSTANCE_) references JBPM_SWIMLANEINSTANCE;
-alter table JBPM_TASKINSTANCE add constraint FK_TASKINST_TASK foreign key (TASK_) references JBPM_TASK;
-create index IDX_TOKEN_PROCIN on JBPM_TOKEN (PROCESSINSTANCE_);
-create index IDX_TOKEN_SUBPI on JBPM_TOKEN (SUBPROCESSINSTANCE_);
-create index IDX_TOKEN_NODE on JBPM_TOKEN (NODE_);
-create index IDX_TOKEN_PARENT on JBPM_TOKEN (PARENT_);
-alter table JBPM_TOKEN add constraint FK_TOKEN_PARENT foreign key (PARENT_) references JBPM_TOKEN;
-alter table JBPM_TOKEN add constraint FK_TOKEN_NODE foreign key (NODE_) references JBPM_NODE;
-alter table JBPM_TOKEN add constraint FK_TOKEN_PROCINST foreign key (PROCESSINSTANCE_) references JBPM_PROCESSINSTANCE;
-alter table JBPM_TOKEN add constraint FK_TOKEN_SUBPI foreign key (SUBPROCESSINSTANCE_) references JBPM_PROCESSINSTANCE;
-create index IDX_TKVARMAP_CTXT on JBPM_TOKENVARIABLEMAP (CONTEXTINSTANCE_);
-create index IDX_TKVVARMP_TOKEN on JBPM_TOKENVARIABLEMAP (TOKEN_);
-alter table JBPM_TOKENVARIABLEMAP add constraint FK_TKVARMAP_CTXT foreign key (CONTEXTINSTANCE_) references JBPM_MODULEINSTANCE;
-alter table JBPM_TOKENVARIABLEMAP add constraint FK_TKVARMAP_TOKEN foreign key (TOKEN_) references JBPM_TOKEN;
-create index IDX_TRANSIT_TO on JBPM_TRANSITION (TO_);
-create index IDX_TRANSIT_FROM on JBPM_TRANSITION (FROM_);
-create index IDX_TRANS_PROCDEF on JBPM_TRANSITION (PROCESSDEFINITION_);
-alter table JBPM_TRANSITION add constraint FK_TRANSITION_TO foreign key (TO_) references JBPM_NODE;
-alter table JBPM_TRANSITION add constraint FK_TRANS_PROCDEF foreign key (PROCESSDEFINITION_) references JBPM_PROCESSDEFINITION;
-alter table JBPM_TRANSITION add constraint FK_TRANSITION_FROM foreign key (FROM_) references JBPM_NODE;
-alter table JBPM_VARIABLEACCESS add constraint FK_VARACC_TSKCTRL foreign key (TASKCONTROLLER_) references JBPM_TASKCONTROLLER;
-alter table JBPM_VARIABLEACCESS add constraint FK_VARACC_SCRIPT foreign key (SCRIPT_) references JBPM_ACTION;
-alter table JBPM_VARIABLEACCESS add constraint FK_VARACC_PROCST foreign key (PROCESSSTATE_) references JBPM_NODE;
-create index IDX_VARINST_TKVARMP on JBPM_VARIABLEINSTANCE (TOKENVARIABLEMAP_);
-create index IDX_VARINST_PRCINS on JBPM_VARIABLEINSTANCE (PROCESSINSTANCE_);
-create index IDX_VARINST_TK on JBPM_VARIABLEINSTANCE (TOKEN_);
-alter table JBPM_VARIABLEINSTANCE add constraint FK_VARINST_TK foreign key (TOKEN_) references JBPM_TOKEN;
-alter table JBPM_VARIABLEINSTANCE add constraint FK_VARINST_TKVARMP foreign key (TOKENVARIABLEMAP_) references JBPM_TOKENVARIABLEMAP;
-alter table JBPM_VARIABLEINSTANCE add constraint FK_VARINST_PRCINST foreign key (PROCESSINSTANCE_) references JBPM_PROCESSINSTANCE;
-alter table JBPM_VARIABLEINSTANCE add constraint FK_VAR_TSKINST foreign key (TASKINSTANCE_) references JBPM_TASKINSTANCE;
-alter table JBPM_VARIABLEINSTANCE add constraint FK_BYTEINST_ARRAY foreign key (BYTEARRAYVALUE_) references JBPM_BYTEARRAY;
-create sequence hibernate_sequence;
+create table JBPM_ACTION (ID_ bigint not null, class char(1) not null, NAME_ varchar(255) with null, ISPROPAGATIONALLOWED_ tinyint with null, ACTIONEXPRESSION_ varchar(255) with null, ISASYNC_ tinyint with null, REFERENCEDACTION_ bigint with null, ACTIONDELEGATION_ bigint with null, EVENT_ bigint with null, PROCESSDEFINITION_ bigint with null, EXPRESSION_ clob(4000) with null, TIMERNAME_ varchar(255) with null, DUEDATE_ varchar(255) with null, REPEAT_ varchar(255) with null, TRANSITIONNAME_ varchar(255) with null, TIMERACTION_ bigint with null, EVENTINDEX_ integer with null, EXCEPTIONHANDLER_ bigint with null, EXCEPTIONHANDLERINDEX_ integer with null, primary key (ID_))
+create table JBPM_BYTEARRAY (ID_ bigint not null, NAME_ varchar(255) with null, FILEDEFINITION_ bigint with null, primary key (ID_))
+create table JBPM_BYTEBLOCK (PROCESSFILE_ bigint not null, BYTES_ varbyte(1024) with null, INDEX_ integer not null, primary key (PROCESSFILE_, INDEX_))
+create table JBPM_COMMENT (ID_ bigint not null, VERSION_ integer not null, ACTORID_ varchar(255) with null, TIME_ timestamp with time zone with null, MESSAGE_ clob(4000) with null, TOKEN_ bigint with null, TASKINSTANCE_ bigint with null, TOKENINDEX_ integer with null, TASKINSTANCEINDEX_ integer with null, primary key (ID_))
+create table JBPM_DECISIONCONDITIONS (DECISION_ bigint not null, TRANSITIONNAME_ varchar(255) with null, EXPRESSION_ varchar(255) with null, INDEX_ integer not null, primary key (DECISION_, INDEX_))
+create table JBPM_DELEGATION (ID_ bigint not null, CLASSNAME_ clob(4000) with null, CONFIGURATION_ clob(4000) with null, CONFIGTYPE_ varchar(255) with null, PROCESSDEFINITION_ bigint with null, primary key (ID_))
+create table JBPM_EVENT (ID_ bigint not null, EVENTTYPE_ varchar(255) with null, TYPE_ char(1) with null, GRAPHELEMENT_ bigint with null, PROCESSDEFINITION_ bigint with null, NODE_ bigint with null, TRANSITION_ bigint with null, TASK_ bigint with null, primary key (ID_))
+create table JBPM_EXCEPTIONHANDLER (ID_ bigint not null, EXCEPTIONCLASSNAME_ clob(4000) with null, TYPE_ char(1) with null, GRAPHELEMENT_ bigint with null, PROCESSDEFINITION_ bigint with null, GRAPHELEMENTINDEX_ integer with null, NODE_ bigint with null, TRANSITION_ bigint with null, TASK_ bigint with null, primary key (ID_))
+create table JBPM_ID_GROUP (ID_ bigint not null, CLASS_ char(1) not null, NAME_ varchar(255) with null, TYPE_ varchar(255) with null, PARENT_ bigint with null, primary key (ID_))
+create table JBPM_ID_MEMBERSHIP (ID_ bigint not null, CLASS_ char(1) not null, NAME_ varchar(255) with null, ROLE_ varchar(255) with null, USER_ bigint with null, GROUP_ bigint with null, primary key (ID_))
+create table JBPM_ID_PERMISSIONS (ENTITY_ bigint not null, CLASS_ varchar(255) with null, NAME_ varchar(255) with null, ACTION_ varchar(255) with null)
+create table JBPM_ID_USER (ID_ bigint not null, CLASS_ char(1) not null, NAME_ varchar(255) with null, EMAIL_ varchar(255) with null, PASSWORD_ varchar(255) with null, primary key (ID_))
+create table JBPM_JOB (ID_ bigint not null, CLASS_ char(1) not null, VERSION_ integer not null, DUEDATE_ timestamp with time zone with null, PROCESSINSTANCE_ bigint with null, TOKEN_ bigint with null, TASKINSTANCE_ bigint with null, ISSUSPENDED_ tinyint with null, ISEXCLUSIVE_ tinyint with null, LOCKOWNER_ varchar(255) with null, LOCKTIME_ timestamp with time zone with null, EXCEPTION_ clob(4000) with null, RETRIES_ integer with null, NAME_ varchar(255) with null, REPEAT_ varchar(255) with null, TRANSITIONNAME_ varchar(255) with null, ACTION_ bigint with null, GRAPHELEMENTTYPE_ varchar(255) with null, GRAPHELEMENT_ bigint with null, NODE_ bigint with null, primary key (ID_))
+create table JBPM_LOG (ID_ bigint not null, CLASS_ char(1) not null, INDEX_ integer with null, DATE_ timestamp with time zone with null, TOKEN_ bigint with null, PARENT_ bigint with null, MESSAGE_ clob(4000) with null, EXCEPTION_ clob(4000) with null, ACTION_ bigint with null, NODE_ bigint with null, ENTER_ timestamp with time zone with null, LEAVE_ timestamp with time zone with null, DURATION_ bigint with null, NEWLONGVALUE_ bigint with null, TRANSITION_ bigint with null, CHILD_ bigint with null, SOURCENODE_ bigint with null, DESTINATIONNODE_ bigint with null, VARIABLEINSTANCE_ bigint with null, OLDBYTEARRAY_ bigint with null, NEWBYTEARRAY_ bigint with null, OLDDATEVALUE_ timestamp with time zone with null, NEWDATEVALUE_ timestamp with time zone with null, OLDDOUBLEVALUE_ float with null, NEWDOUBLEVALUE_ float with null, OLDLONGIDCLASS_ varchar(255) with null, OLDLONGIDVALUE_ bigint with null, NEWLONGIDCLASS_ varchar(255) with null, NEWLONGIDVALUE_ bigint with null, OLDSTR!
INGIDCLASS_ varchar(255) with null, OLDSTRINGIDVALUE_ varchar(255) with null, NEWSTRINGIDCLASS_ varchar(255) with null, NEWSTRINGIDVALUE_ varchar(255) with null, OLDLONGVALUE_ bigint with null, OLDSTRINGVALUE_ clob(4000) with null, NEWSTRINGVALUE_ clob(4000) with null, TASKINSTANCE_ bigint with null, TASKACTORID_ varchar(255) with null, TASKOLDACTORID_ varchar(255) with null, SWIMLANEINSTANCE_ bigint with null, primary key (ID_))
+create table JBPM_MODULEDEFINITION (ID_ bigint not null, CLASS_ char(1) not null, NAME_ varchar(4000) with null, PROCESSDEFINITION_ bigint with null, STARTTASK_ bigint with null, primary key (ID_))
+create table JBPM_MODULEINSTANCE (ID_ bigint not null, CLASS_ char(1) not null, VERSION_ integer not null, PROCESSINSTANCE_ bigint with null, TASKMGMTDEFINITION_ bigint with null, NAME_ varchar(255) with null, primary key (ID_))
+create table JBPM_NODE (ID_ bigint not null, CLASS_ char(1) not null, NAME_ varchar(255) with null, DESCRIPTION_ clob(4000) with null, PROCESSDEFINITION_ bigint with null, ISASYNC_ tinyint with null, ISASYNCEXCL_ tinyint with null, ACTION_ bigint with null, SUPERSTATE_ bigint with null, SUBPROCNAME_ varchar(255) with null, SUBPROCESSDEFINITION_ bigint with null, DECISIONEXPRESSION_ varchar(255) with null, DECISIONDELEGATION bigint with null, SCRIPT_ bigint with null, PARENTLOCKMODE_ varchar(255) with null, SIGNAL_ integer with null, CREATETASKS_ tinyint with null, ENDTASKS_ tinyint with null, NODECOLLECTIONINDEX_ integer with null, primary key (ID_))
+create table JBPM_POOLEDACTOR (ID_ bigint not null, VERSION_ integer not null, ACTORID_ varchar(255) with null, SWIMLANEINSTANCE_ bigint with null, primary key (ID_))
+create table JBPM_PROCESSDEFINITION (ID_ bigint not null, CLASS_ char(1) not null, NAME_ varchar(255) with null, DESCRIPTION_ clob(4000) with null, VERSION_ integer with null, ISTERMINATIONIMPLICIT_ tinyint with null, STARTSTATE_ bigint with null, primary key (ID_))
+create table JBPM_PROCESSINSTANCE (ID_ bigint not null, VERSION_ integer not null, KEY_ varchar(255) with null, START_ timestamp with time zone with null, END_ timestamp with time zone with null, ISSUSPENDED_ tinyint with null, PROCESSDEFINITION_ bigint with null, ROOTTOKEN_ bigint with null, SUPERPROCESSTOKEN_ bigint with null, primary key (ID_))
+create table JBPM_RUNTIMEACTION (ID_ bigint not null, VERSION_ integer not null, EVENTTYPE_ varchar(255) with null, TYPE_ char(1) with null, GRAPHELEMENT_ bigint with null, PROCESSINSTANCE_ bigint with null, ACTION_ bigint with null, PROCESSINSTANCEINDEX_ integer with null, primary key (ID_))
+create table JBPM_SWIMLANE (ID_ bigint not null, NAME_ varchar(255) with null, ACTORIDEXPRESSION_ varchar(255) with null, POOLEDACTORSEXPRESSION_ varchar(255) with null, ASSIGNMENTDELEGATION_ bigint with null, TASKMGMTDEFINITION_ bigint with null, primary key (ID_))
+create table JBPM_SWIMLANEINSTANCE (ID_ bigint not null, VERSION_ integer not null, NAME_ varchar(255) with null, ACTORID_ varchar(255) with null, SWIMLANE_ bigint with null, TASKMGMTINSTANCE_ bigint with null, primary key (ID_))
+create table JBPM_TASK (ID_ bigint not null, NAME_ varchar(255) with null, DESCRIPTION_ clob(4000) with null, PROCESSDEFINITION_ bigint with null, ISBLOCKING_ tinyint with null, ISSIGNALLING_ tinyint with null, CONDITION_ varchar(255) with null, DUEDATE_ varchar(255) with null, PRIORITY_ integer with null, ACTORIDEXPRESSION_ varchar(255) with null, POOLEDACTORSEXPRESSION_ varchar(255) with null, TASKMGMTDEFINITION_ bigint with null, TASKNODE_ bigint with null, STARTSTATE_ bigint with null, ASSIGNMENTDELEGATION_ bigint with null, SWIMLANE_ bigint with null, TASKCONTROLLER_ bigint with null, primary key (ID_))
+create table JBPM_TASKACTORPOOL (TASKINSTANCE_ bigint not null, POOLEDACTOR_ bigint not null, primary key (TASKINSTANCE_, POOLEDACTOR_))
+create table JBPM_TASKCONTROLLER (ID_ bigint not null, TASKCONTROLLERDELEGATION_ bigint with null, primary key (ID_))
+create table JBPM_TASKINSTANCE (ID_ bigint not null, CLASS_ char(1) not null, VERSION_ integer not null, NAME_ varchar(255) with null, DESCRIPTION_ clob(4000) with null, ACTORID_ varchar(255) with null, CREATE_ timestamp with time zone with null, START_ timestamp with time zone with null, END_ timestamp with time zone with null, DUEDATE_ timestamp with time zone with null, PRIORITY_ integer with null, ISCANCELLED_ tinyint with null, ISSUSPENDED_ tinyint with null, ISOPEN_ tinyint with null, ISSIGNALLING_ tinyint with null, ISBLOCKING_ tinyint with null, TASK_ bigint with null, TOKEN_ bigint with null, PROCINST_ bigint with null, SWIMLANINSTANCE_ bigint with null, TASKMGMTINSTANCE_ bigint with null, primary key (ID_))
+create table JBPM_TOKEN (ID_ bigint not null, VERSION_ integer not null, NAME_ varchar(255) with null, START_ timestamp with time zone with null, END_ timestamp with time zone with null, NODEENTER_ timestamp with time zone with null, NEXTLOGINDEX_ integer with null, ISABLETOREACTIVATEPARENT_ tinyint with null, ISTERMINATIONIMPLICIT_ tinyint with null, ISSUSPENDED_ tinyint with null, LOCK_ varchar(255) with null, NODE_ bigint with null, PROCESSINSTANCE_ bigint with null, PARENT_ bigint with null, SUBPROCESSINSTANCE_ bigint with null, primary key (ID_))
+create table JBPM_TOKENVARIABLEMAP (ID_ bigint not null, VERSION_ integer not null, TOKEN_ bigint with null, CONTEXTINSTANCE_ bigint with null, primary key (ID_))
+create table JBPM_TRANSITION (ID_ bigint not null, NAME_ varchar(255) with null, DESCRIPTION_ clob(4000) with null, PROCESSDEFINITION_ bigint with null, FROM_ bigint with null, TO_ bigint with null, CONDITION_ varchar(255) with null, FROMINDEX_ integer with null, primary key (ID_))
+create table JBPM_VARIABLEACCESS (ID_ bigint not null, VARIABLENAME_ varchar(255) with null, ACCESS_ varchar(255) with null, MAPPEDNAME_ varchar(255) with null, SCRIPT_ bigint with null, PROCESSSTATE_ bigint with null, TASKCONTROLLER_ bigint with null, INDEX_ integer with null, primary key (ID_))
+create table JBPM_VARIABLEINSTANCE (ID_ bigint not null, CLASS_ char(1) not null, VERSION_ integer not null, NAME_ varchar(255) with null, CONVERTER_ char(1) with null, TOKEN_ bigint with null, TOKENVARIABLEMAP_ bigint with null, PROCESSINSTANCE_ bigint with null, BYTEARRAYVALUE_ bigint with null, DATEVALUE_ timestamp with time zone with null, DOUBLEVALUE_ float with null, LONGIDCLASS_ varchar(255) with null, LONGVALUE_ bigint with null, STRINGIDCLASS_ varchar(255) with null, STRINGVALUE_ varchar(4000) with null, TASKINSTANCE_ bigint with null, primary key (ID_))
+create index IDX_ACTION_EVENT on JBPM_ACTION (EVENT_)
+create index IDX_ACTION_ACTNDL on JBPM_ACTION (ACTIONDELEGATION_)
+create index IDX_ACTION_PROCDF on JBPM_ACTION (PROCESSDEFINITION_)
+alter table JBPM_ACTION add constraint FK_ACTION_EVENT foreign key (EVENT_) references JBPM_EVENT
+alter table JBPM_ACTION add constraint FK_ACTION_EXPTHDL foreign key (EXCEPTIONHANDLER_) references JBPM_EXCEPTIONHANDLER
+alter table JBPM_ACTION add constraint FK_ACTION_PROCDEF foreign key (PROCESSDEFINITION_) references JBPM_PROCESSDEFINITION
+alter table JBPM_ACTION add constraint FK_CRTETIMERACT_TA foreign key (TIMERACTION_) references JBPM_ACTION
+alter table JBPM_ACTION add constraint FK_ACTION_ACTNDEL foreign key (ACTIONDELEGATION_) references JBPM_DELEGATION
+alter table JBPM_ACTION add constraint FK_ACTION_REFACT foreign key (REFERENCEDACTION_) references JBPM_ACTION
+alter table JBPM_BYTEARRAY add constraint FK_BYTEARR_FILDEF foreign key (FILEDEFINITION_) references JBPM_MODULEDEFINITION
+alter table JBPM_BYTEBLOCK add constraint FK_BYTEBLOCK_FILE foreign key (PROCESSFILE_) references JBPM_BYTEARRAY
+create index IDX_COMMENT_TOKEN on JBPM_COMMENT (TOKEN_)
+create index IDX_COMMENT_TSK on JBPM_COMMENT (TASKINSTANCE_)
+alter table JBPM_COMMENT add constraint FK_COMMENT_TOKEN foreign key (TOKEN_) references JBPM_TOKEN
+alter table JBPM_COMMENT add constraint FK_COMMENT_TSK foreign key (TASKINSTANCE_) references JBPM_TASKINSTANCE
+alter table JBPM_DECISIONCONDITIONS add constraint FK_DECCOND_DEC foreign key (DECISION_) references JBPM_NODE
+create index IDX_DELEG_PRCD on JBPM_DELEGATION (PROCESSDEFINITION_)
+alter table JBPM_DELEGATION add constraint FK_DELEGATION_PRCD foreign key (PROCESSDEFINITION_) references JBPM_PROCESSDEFINITION
+alter table JBPM_EVENT add constraint FK_EVENT_PROCDEF foreign key (PROCESSDEFINITION_) references JBPM_PROCESSDEFINITION
+alter table JBPM_EVENT add constraint FK_EVENT_NODE foreign key (NODE_) references JBPM_NODE
+alter table JBPM_EVENT add constraint FK_EVENT_TRANS foreign key (TRANSITION_) references JBPM_TRANSITION
+alter table JBPM_EVENT add constraint FK_EVENT_TASK foreign key (TASK_) references JBPM_TASK
+alter table JBPM_ID_GROUP add constraint FK_ID_GRP_PARENT foreign key (PARENT_) references JBPM_ID_GROUP
+alter table JBPM_ID_MEMBERSHIP add constraint FK_ID_MEMSHIP_GRP foreign key (GROUP_) references JBPM_ID_GROUP
+alter table JBPM_ID_MEMBERSHIP add constraint FK_ID_MEMSHIP_USR foreign key (USER_) references JBPM_ID_USER
+create index IDX_JOB_TSKINST on JBPM_JOB (TASKINSTANCE_)
+create index IDX_JOB_PRINST on JBPM_JOB (PROCESSINSTANCE_)
+create index IDX_JOB_TOKEN on JBPM_JOB (TOKEN_)
+alter table JBPM_JOB add constraint FK_JOB_TOKEN foreign key (TOKEN_) references JBPM_TOKEN
+alter table JBPM_JOB add constraint FK_JOB_NODE foreign key (NODE_) references JBPM_NODE
+alter table JBPM_JOB add constraint FK_JOB_PRINST foreign key (PROCESSINSTANCE_) references JBPM_PROCESSINSTANCE
+alter table JBPM_JOB add constraint FK_JOB_ACTION foreign key (ACTION_) references JBPM_ACTION
+alter table JBPM_JOB add constraint FK_JOB_TSKINST foreign key (TASKINSTANCE_) references JBPM_TASKINSTANCE
+alter table JBPM_LOG add constraint FK_LOG_SOURCENODE foreign key (SOURCENODE_) references JBPM_NODE
+alter table JBPM_LOG add constraint FK_LOG_TOKEN foreign key (TOKEN_) references JBPM_TOKEN
+alter table JBPM_LOG add constraint FK_LOG_OLDBYTES foreign key (OLDBYTEARRAY_) references JBPM_BYTEARRAY
+alter table JBPM_LOG add constraint FK_LOG_NEWBYTES foreign key (NEWBYTEARRAY_) references JBPM_BYTEARRAY
+alter table JBPM_LOG add constraint FK_LOG_CHILDTOKEN foreign key (CHILD_) references JBPM_TOKEN
+alter table JBPM_LOG add constraint FK_LOG_DESTNODE foreign key (DESTINATIONNODE_) references JBPM_NODE
+alter table JBPM_LOG add constraint FK_LOG_TASKINST foreign key (TASKINSTANCE_) references JBPM_TASKINSTANCE
+alter table JBPM_LOG add constraint FK_LOG_SWIMINST foreign key (SWIMLANEINSTANCE_) references JBPM_SWIMLANEINSTANCE
+alter table JBPM_LOG add constraint FK_LOG_PARENT foreign key (PARENT_) references JBPM_LOG
+alter table JBPM_LOG add constraint FK_LOG_NODE foreign key (NODE_) references JBPM_NODE
+alter table JBPM_LOG add constraint FK_LOG_ACTION foreign key (ACTION_) references JBPM_ACTION
+alter table JBPM_LOG add constraint FK_LOG_VARINST foreign key (VARIABLEINSTANCE_) references JBPM_VARIABLEINSTANCE
+alter table JBPM_LOG add constraint FK_LOG_TRANSITION foreign key (TRANSITION_) references JBPM_TRANSITION
+create index IDX_MODDEF_PROCDF on JBPM_MODULEDEFINITION (PROCESSDEFINITION_)
+alter table JBPM_MODULEDEFINITION add constraint FK_TSKDEF_START foreign key (STARTTASK_) references JBPM_TASK
+alter table JBPM_MODULEDEFINITION add constraint FK_MODDEF_PROCDEF foreign key (PROCESSDEFINITION_) references JBPM_PROCESSDEFINITION
+create index IDX_MODINST_PRINST on JBPM_MODULEINSTANCE (PROCESSINSTANCE_)
+alter table JBPM_MODULEINSTANCE add constraint FK_TASKMGTINST_TMD foreign key (TASKMGMTDEFINITION_) references JBPM_MODULEDEFINITION
+alter table JBPM_MODULEINSTANCE add constraint FK_MODINST_PRCINST foreign key (PROCESSINSTANCE_) references JBPM_PROCESSINSTANCE
+create index IDX_PSTATE_SBPRCDEF on JBPM_NODE (SUBPROCESSDEFINITION_)
+create index IDX_NODE_SUPRSTATE on JBPM_NODE (SUPERSTATE_)
+create index IDX_NODE_PROCDEF on JBPM_NODE (PROCESSDEFINITION_)
+create index IDX_NODE_ACTION on JBPM_NODE (ACTION_)
+alter table JBPM_NODE add constraint FK_PROCST_SBPRCDEF foreign key (SUBPROCESSDEFINITION_) references JBPM_PROCESSDEFINITION
+alter table JBPM_NODE add constraint FK_NODE_PROCDEF foreign key (PROCESSDEFINITION_) references JBPM_PROCESSDEFINITION
+alter table JBPM_NODE add constraint FK_NODE_SCRIPT foreign key (SCRIPT_) references JBPM_ACTION
+alter table JBPM_NODE add constraint FK_NODE_ACTION foreign key (ACTION_) references JBPM_ACTION
+alter table JBPM_NODE add constraint FK_DECISION_DELEG foreign key (DECISIONDELEGATION) references JBPM_DELEGATION
+alter table JBPM_NODE add constraint FK_NODE_SUPERSTATE foreign key (SUPERSTATE_) references JBPM_NODE
+create index IDX_PLDACTR_ACTID on JBPM_POOLEDACTOR (ACTORID_)
+create index IDX_TSKINST_SWLANE on JBPM_POOLEDACTOR (SWIMLANEINSTANCE_)
+alter table JBPM_POOLEDACTOR add constraint FK_POOLEDACTOR_SLI foreign key (SWIMLANEINSTANCE_) references JBPM_SWIMLANEINSTANCE
+create index IDX_PROCDEF_STRTST on JBPM_PROCESSDEFINITION (STARTSTATE_)
+alter table JBPM_PROCESSDEFINITION add constraint FK_PROCDEF_STRTSTA foreign key (STARTSTATE_) references JBPM_NODE
+create index IDX_PROCIN_ROOTTK on JBPM_PROCESSINSTANCE (ROOTTOKEN_)
+create index IDX_PROCIN_SPROCTK on JBPM_PROCESSINSTANCE (SUPERPROCESSTOKEN_)
+create index IDX_PROCIN_KEY on JBPM_PROCESSINSTANCE (KEY_)
+create index IDX_PROCIN_PROCDEF on JBPM_PROCESSINSTANCE (PROCESSDEFINITION_)
+alter table JBPM_PROCESSINSTANCE add constraint FK_PROCIN_PROCDEF foreign key (PROCESSDEFINITION_) references JBPM_PROCESSDEFINITION
+alter table JBPM_PROCESSINSTANCE add constraint FK_PROCIN_ROOTTKN foreign key (ROOTTOKEN_) references JBPM_TOKEN
+alter table JBPM_PROCESSINSTANCE add constraint FK_PROCIN_SPROCTKN foreign key (SUPERPROCESSTOKEN_) references JBPM_TOKEN
+create index IDX_RTACTN_PRCINST on JBPM_RUNTIMEACTION (PROCESSINSTANCE_)
+create index IDX_RTACTN_ACTION on JBPM_RUNTIMEACTION (ACTION_)
+alter table JBPM_RUNTIMEACTION add constraint FK_RTACTN_PROCINST foreign key (PROCESSINSTANCE_) references JBPM_PROCESSINSTANCE
+alter table JBPM_RUNTIMEACTION add constraint FK_RTACTN_ACTION foreign key (ACTION_) references JBPM_ACTION
+alter table JBPM_SWIMLANE add constraint FK_SWL_ASSDEL foreign key (ASSIGNMENTDELEGATION_) references JBPM_DELEGATION
+alter table JBPM_SWIMLANE add constraint FK_SWL_TSKMGMTDEF foreign key (TASKMGMTDEFINITION_) references JBPM_MODULEDEFINITION
+create index IDX_SWIMLINST_SL on JBPM_SWIMLANEINSTANCE (SWIMLANE_)
+alter table JBPM_SWIMLANEINSTANCE add constraint FK_SWIMLANEINST_TM foreign key (TASKMGMTINSTANCE_) references JBPM_MODULEINSTANCE
+alter table JBPM_SWIMLANEINSTANCE add constraint FK_SWIMLANEINST_SL foreign key (SWIMLANE_) references JBPM_SWIMLANE
+create index IDX_TASK_TSKNODE on JBPM_TASK (TASKNODE_)
+create index IDX_TASK_PROCDEF on JBPM_TASK (PROCESSDEFINITION_)
+create index IDX_TASK_TASKMGTDF on JBPM_TASK (TASKMGMTDEFINITION_)
+alter table JBPM_TASK add constraint FK_TSK_TSKCTRL foreign key (TASKCONTROLLER_) references JBPM_TASKCONTROLLER
+alter table JBPM_TASK add constraint FK_TASK_ASSDEL foreign key (ASSIGNMENTDELEGATION_) references JBPM_DELEGATION
+alter table JBPM_TASK add constraint FK_TASK_TASKNODE foreign key (TASKNODE_) references JBPM_NODE
+alter table JBPM_TASK add constraint FK_TASK_PROCDEF foreign key (PROCESSDEFINITION_) references JBPM_PROCESSDEFINITION
+alter table JBPM_TASK add constraint FK_TASK_STARTST foreign key (STARTSTATE_) references JBPM_NODE
+alter table JBPM_TASK add constraint FK_TASK_TASKMGTDEF foreign key (TASKMGMTDEFINITION_) references JBPM_MODULEDEFINITION
+alter table JBPM_TASK add constraint FK_TASK_SWIMLANE foreign key (SWIMLANE_) references JBPM_SWIMLANE
+alter table JBPM_TASKACTORPOOL add constraint FK_TSKACTPOL_PLACT foreign key (POOLEDACTOR_) references JBPM_POOLEDACTOR
+alter table JBPM_TASKACTORPOOL add constraint FK_TASKACTPL_TSKI foreign key (TASKINSTANCE_) references JBPM_TASKINSTANCE
+alter table JBPM_TASKCONTROLLER add constraint FK_TSKCTRL_DELEG foreign key (TASKCONTROLLERDELEGATION_) references JBPM_DELEGATION
+create index IDX_TASKINST_TOKN on JBPM_TASKINSTANCE (TOKEN_)
+create index IDX_TASKINST_TSK on JBPM_TASKINSTANCE (TASK_, PROCINST_)
+create index IDX_TSKINST_TMINST on JBPM_TASKINSTANCE (TASKMGMTINSTANCE_)
+create index IDX_TSKINST_SLINST on JBPM_TASKINSTANCE (SWIMLANINSTANCE_)
+create index IDX_TASK_ACTORID on JBPM_TASKINSTANCE (ACTORID_)
+alter table JBPM_TASKINSTANCE add constraint FK_TSKINS_PRCINS foreign key (PROCINST_) references JBPM_PROCESSINSTANCE
+alter table JBPM_TASKINSTANCE add constraint FK_TASKINST_TMINST foreign key (TASKMGMTINSTANCE_) references JBPM_MODULEINSTANCE
+alter table JBPM_TASKINSTANCE add constraint FK_TASKINST_TOKEN foreign key (TOKEN_) references JBPM_TOKEN
+alter table JBPM_TASKINSTANCE add constraint FK_TASKINST_SLINST foreign key (SWIMLANINSTANCE_) references JBPM_SWIMLANEINSTANCE
+alter table JBPM_TASKINSTANCE add constraint FK_TASKINST_TASK foreign key (TASK_) references JBPM_TASK
+create index IDX_TOKEN_PROCIN on JBPM_TOKEN (PROCESSINSTANCE_)
+create index IDX_TOKEN_SUBPI on JBPM_TOKEN (SUBPROCESSINSTANCE_)
+create index IDX_TOKEN_NODE on JBPM_TOKEN (NODE_)
+create index IDX_TOKEN_PARENT on JBPM_TOKEN (PARENT_)
+alter table JBPM_TOKEN add constraint FK_TOKEN_PARENT foreign key (PARENT_) references JBPM_TOKEN
+alter table JBPM_TOKEN add constraint FK_TOKEN_NODE foreign key (NODE_) references JBPM_NODE
+alter table JBPM_TOKEN add constraint FK_TOKEN_PROCINST foreign key (PROCESSINSTANCE_) references JBPM_PROCESSINSTANCE
+alter table JBPM_TOKEN add constraint FK_TOKEN_SUBPI foreign key (SUBPROCESSINSTANCE_) references JBPM_PROCESSINSTANCE
+create index IDX_TKVARMAP_CTXT on JBPM_TOKENVARIABLEMAP (CONTEXTINSTANCE_)
+create index IDX_TKVVARMP_TOKEN on JBPM_TOKENVARIABLEMAP (TOKEN_)
+alter table JBPM_TOKENVARIABLEMAP add constraint FK_TKVARMAP_CTXT foreign key (CONTEXTINSTANCE_) references JBPM_MODULEINSTANCE
+alter table JBPM_TOKENVARIABLEMAP add constraint FK_TKVARMAP_TOKEN foreign key (TOKEN_) references JBPM_TOKEN
+create index IDX_TRANSIT_TO on JBPM_TRANSITION (TO_)
+create index IDX_TRANSIT_FROM on JBPM_TRANSITION (FROM_)
+create index IDX_TRANS_PROCDEF on JBPM_TRANSITION (PROCESSDEFINITION_)
+alter table JBPM_TRANSITION add constraint FK_TRANSITION_TO foreign key (TO_) references JBPM_NODE
+alter table JBPM_TRANSITION add constraint FK_TRANS_PROCDEF foreign key (PROCESSDEFINITION_) references JBPM_PROCESSDEFINITION
+alter table JBPM_TRANSITION add constraint FK_TRANSITION_FROM foreign key (FROM_) references JBPM_NODE
+alter table JBPM_VARIABLEACCESS add constraint FK_VARACC_TSKCTRL foreign key (TASKCONTROLLER_) references JBPM_TASKCONTROLLER
+alter table JBPM_VARIABLEACCESS add constraint FK_VARACC_SCRIPT foreign key (SCRIPT_) references JBPM_ACTION
+alter table JBPM_VARIABLEACCESS add constraint FK_VARACC_PROCST foreign key (PROCESSSTATE_) references JBPM_NODE
+create index IDX_VARINST_TKVARMP on JBPM_VARIABLEINSTANCE (TOKENVARIABLEMAP_)
+create index IDX_VARINST_PRCINS on JBPM_VARIABLEINSTANCE (PROCESSINSTANCE_)
+create index IDX_VARINST_TK on JBPM_VARIABLEINSTANCE (TOKEN_)
+alter table JBPM_VARIABLEINSTANCE add constraint FK_VARINST_TK foreign key (TOKEN_) references JBPM_TOKEN
+alter table JBPM_VARIABLEINSTANCE add constraint FK_VARINST_TKVARMP foreign key (TOKENVARIABLEMAP_) references JBPM_TOKENVARIABLEMAP
+alter table JBPM_VARIABLEINSTANCE add constraint FK_VARINST_PRCINST foreign key (PROCESSINSTANCE_) references JBPM_PROCESSINSTANCE
+alter table JBPM_VARIABLEINSTANCE add constraint FK_VAR_TSKINST foreign key (TASKINSTANCE_) references JBPM_TASKINSTANCE
+alter table JBPM_VARIABLEINSTANCE add constraint FK_BYTEINST_ARRAY foreign key (BYTEARRAYVALUE_) references JBPM_BYTEARRAY
+create sequence hibernate_sequence
Modified: labs/jbossesb/workspace/mlittle/legstar/product/services/jbpm/src/main/resources/jbpm-sql/jbpm.jpdl.interbase.sql
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/services/jbpm/src/main/resources/jbpm-sql/jbpm.jpdl.interbase.sql 2009-01-21 14:47:17 UTC (rev 24849)
+++ labs/jbossesb/workspace/mlittle/legstar/product/services/jbpm/src/main/resources/jbpm-sql/jbpm.jpdl.interbase.sql 2009-01-21 15:38:08 UTC (rev 24850)
@@ -1,169 +1,168 @@
-delete from RDB$GENERATORS where RDB$GENERATOR_NAME = 'HIBERNATE_SEQUENCE';
-create table JBPM_ACTION (ID_ numeric(18,0) not null, class char(1) not null, NAME_ varchar(255), ISPROPAGATIONALLOWED_ smallint, ACTIONEXPRESSION_ varchar(255), ISASYNC_ smallint, REFERENCEDACTION_ numeric(18,0), ACTIONDELEGATION_ numeric(18,0), EVENT_ numeric(18,0), PROCESSDEFINITION_ numeric(18,0), EXPRESSION_ varchar(4000), TIMERNAME_ varchar(255), DUEDATE_ varchar(255), REPEAT_ varchar(255), TRANSITIONNAME_ varchar(255), TIMERACTION_ numeric(18,0), EVENTINDEX_ integer, EXCEPTIONHANDLER_ numeric(18,0), EXCEPTIONHANDLERINDEX_ integer, primary key (ID_));
-create table JBPM_BYTEARRAY (ID_ numeric(18,0) not null, NAME_ varchar(255), FILEDEFINITION_ numeric(18,0), primary key (ID_));
-create table JBPM_BYTEBLOCK (PROCESSFILE_ numeric(18,0) not null, BYTES_ blob, INDEX_ integer not null, primary key (PROCESSFILE_, INDEX_));
-create table JBPM_COMMENT (ID_ numeric(18,0) not null, VERSION_ integer not null, ACTORID_ varchar(255), TIME_ timestamp, MESSAGE_ varchar(4000), TOKEN_ numeric(18,0), TASKINSTANCE_ numeric(18,0), TOKENINDEX_ integer, TASKINSTANCEINDEX_ integer, primary key (ID_));
-create table JBPM_DECISIONCONDITIONS (DECISION_ numeric(18,0) not null, TRANSITIONNAME_ varchar(255), EXPRESSION_ varchar(255), INDEX_ integer not null, primary key (DECISION_, INDEX_));
-create table JBPM_DELEGATION (ID_ numeric(18,0) not null, CLASSNAME_ varchar(4000), CONFIGURATION_ varchar(4000), CONFIGTYPE_ varchar(255), PROCESSDEFINITION_ numeric(18,0), primary key (ID_));
-create table JBPM_EVENT (ID_ numeric(18,0) not null, EVENTTYPE_ varchar(255), TYPE_ char(1), GRAPHELEMENT_ numeric(18,0), PROCESSDEFINITION_ numeric(18,0), NODE_ numeric(18,0), TRANSITION_ numeric(18,0), TASK_ numeric(18,0), primary key (ID_));
-create table JBPM_EXCEPTIONHANDLER (ID_ numeric(18,0) not null, EXCEPTIONCLASSNAME_ varchar(4000), TYPE_ char(1), GRAPHELEMENT_ numeric(18,0), PROCESSDEFINITION_ numeric(18,0), GRAPHELEMENTINDEX_ integer, NODE_ numeric(18,0), TRANSITION_ numeric(18,0), TASK_ numeric(18,0), primary key (ID_));
-create table JBPM_ID_GROUP (ID_ numeric(18,0) not null, CLASS_ char(1) not null, NAME_ varchar(255), TYPE_ varchar(255), PARENT_ numeric(18,0), primary key (ID_));
-create table JBPM_ID_MEMBERSHIP (ID_ numeric(18,0) not null, CLASS_ char(1) not null, NAME_ varchar(255), ROLE_ varchar(255), USER_ numeric(18,0), GROUP_ numeric(18,0), primary key (ID_));
-create table JBPM_ID_PERMISSIONS (ENTITY_ numeric(18,0) not null, CLASS_ varchar(255), NAME_ varchar(255), ACTION_ varchar(255));
-create table JBPM_ID_USER (ID_ numeric(18,0) not null, CLASS_ char(1) not null, NAME_ varchar(255), EMAIL_ varchar(255), PASSWORD_ varchar(255), primary key (ID_));
-create table JBPM_JOB (ID_ numeric(18,0) not null, CLASS_ char(1) not null, VERSION_ integer not null, DUEDATE_ timestamp, PROCESSINSTANCE_ numeric(18,0), TOKEN_ numeric(18,0), TASKINSTANCE_ numeric(18,0), ISSUSPENDED_ smallint, ISEXCLUSIVE_ smallint, LOCKOWNER_ varchar(255), LOCKTIME_ timestamp, EXCEPTION_ varchar(4000), RETRIES_ integer, NAME_ varchar(255), REPEAT_ varchar(255), TRANSITIONNAME_ varchar(255), ACTION_ numeric(18,0), GRAPHELEMENTTYPE_ varchar(255), GRAPHELEMENT_ numeric(18,0), NODE_ numeric(18,0), primary key (ID_));
-create table JBPM_LOG (ID_ numeric(18,0) not null, CLASS_ char(1) not null, INDEX_ integer, DATE_ timestamp, TOKEN_ numeric(18,0), PARENT_ numeric(18,0), MESSAGE_ varchar(4000), EXCEPTION_ varchar(4000), ACTION_ numeric(18,0), NODE_ numeric(18,0), ENTER_ timestamp, LEAVE_ timestamp, DURATION_ numeric(18,0), NEWLONGVALUE_ numeric(18,0), TRANSITION_ numeric(18,0), CHILD_ numeric(18,0), SOURCENODE_ numeric(18,0), DESTINATIONNODE_ numeric(18,0), VARIABLEINSTANCE_ numeric(18,0), OLDBYTEARRAY_ numeric(18,0), NEWBYTEARRAY_ numeric(18,0), OLDDATEVALUE_ timestamp, NEWDATEVALUE_ timestamp, OLDDOUBLEVALUE_ double precision, NEWDOUBLEVALUE_ double precision, OLDLONGIDCLASS_ varchar(255), OLDLONGIDVALUE_ numeric(18,0), NEWLONGIDCLASS_ varchar(255), NEWLONGIDVALUE_ numeric(18,0), OLDSTRINGIDCLASS_ varchar(255), OLDSTRINGIDVALUE_ varchar(255), NEWSTRINGIDCLASS_ varchar(255), NEWSTRINGIDVALUE_ varchar(255), OLDLONGVALUE_ numeric(18,0), OLDSTRINGVALUE_ varchar(4000), NEWSTRINGVALUE_ varchar!
(4000), TASKINSTANCE_ numeric(18,0), TASKACTORID_ varchar(255), TASKOLDACTORID_ varchar(255), SWIMLANEINSTANCE_ numeric(18,0), primary key (ID_));
-create table JBPM_MODULEDEFINITION (ID_ numeric(18,0) not null, CLASS_ char(1) not null, NAME_ varchar(4000), PROCESSDEFINITION_ numeric(18,0), STARTTASK_ numeric(18,0), primary key (ID_));
-create table JBPM_MODULEINSTANCE (ID_ numeric(18,0) not null, CLASS_ char(1) not null, VERSION_ integer not null, PROCESSINSTANCE_ numeric(18,0), TASKMGMTDEFINITION_ numeric(18,0), NAME_ varchar(255), primary key (ID_));
-create table JBPM_NODE (ID_ numeric(18,0) not null, CLASS_ char(1) not null, NAME_ varchar(255), DESCRIPTION_ varchar(4000), PROCESSDEFINITION_ numeric(18,0), ISASYNC_ smallint, ISASYNCEXCL_ smallint, ACTION_ numeric(18,0), SUPERSTATE_ numeric(18,0), SUBPROCNAME_ varchar(255), SUBPROCESSDEFINITION_ numeric(18,0), DECISIONEXPRESSION_ varchar(255), DECISIONDELEGATION numeric(18,0), SCRIPT_ numeric(18,0), SIGNAL_ integer, CREATETASKS_ smallint, ENDTASKS_ smallint, NODECOLLECTIONINDEX_ integer, primary key (ID_));
-create table JBPM_POOLEDACTOR (ID_ numeric(18,0) not null, VERSION_ integer not null, ACTORID_ varchar(255), SWIMLANEINSTANCE_ numeric(18,0), primary key (ID_));
-create table JBPM_PROCESSDEFINITION (ID_ numeric(18,0) not null, CLASS_ char(1) not null, NAME_ varchar(255), DESCRIPTION_ varchar(4000), VERSION_ integer, ISTERMINATIONIMPLICIT_ smallint, STARTSTATE_ numeric(18,0), primary key (ID_));
-create table JBPM_PROCESSINSTANCE (ID_ numeric(18,0) not null, VERSION_ integer not null, KEY_ varchar(255), START_ timestamp, END_ timestamp, ISSUSPENDED_ smallint, PROCESSDEFINITION_ numeric(18,0), ROOTTOKEN_ numeric(18,0), SUPERPROCESSTOKEN_ numeric(18,0), primary key (ID_));
-create table JBPM_RUNTIMEACTION (ID_ numeric(18,0) not null, VERSION_ integer not null, EVENTTYPE_ varchar(255), TYPE_ char(1), GRAPHELEMENT_ numeric(18,0), PROCESSINSTANCE_ numeric(18,0), ACTION_ numeric(18,0), PROCESSINSTANCEINDEX_ integer, primary key (ID_));
-create table JBPM_SWIMLANE (ID_ numeric(18,0) not null, NAME_ varchar(255), ACTORIDEXPRESSION_ varchar(255), POOLEDACTORSEXPRESSION_ varchar(255), ASSIGNMENTDELEGATION_ numeric(18,0), TASKMGMTDEFINITION_ numeric(18,0), primary key (ID_));
-create table JBPM_SWIMLANEINSTANCE (ID_ numeric(18,0) not null, VERSION_ integer not null, NAME_ varchar(255), ACTORID_ varchar(255), SWIMLANE_ numeric(18,0), TASKMGMTINSTANCE_ numeric(18,0), primary key (ID_));
-create table JBPM_TASK (ID_ numeric(18,0) not null, NAME_ varchar(255), DESCRIPTION_ varchar(4000), PROCESSDEFINITION_ numeric(18,0), ISBLOCKING_ smallint, ISSIGNALLING_ smallint, CONDITION_ varchar(255), DUEDATE_ varchar(255), PRIORITY_ integer, ACTORIDEXPRESSION_ varchar(255), POOLEDACTORSEXPRESSION_ varchar(255), TASKMGMTDEFINITION_ numeric(18,0), TASKNODE_ numeric(18,0), STARTSTATE_ numeric(18,0), ASSIGNMENTDELEGATION_ numeric(18,0), SWIMLANE_ numeric(18,0), TASKCONTROLLER_ numeric(18,0), primary key (ID_));
-create table JBPM_TASKACTORPOOL (TASKINSTANCE_ numeric(18,0) not null, POOLEDACTOR_ numeric(18,0) not null, primary key (TASKINSTANCE_, POOLEDACTOR_));
-create table JBPM_TASKCONTROLLER (ID_ numeric(18,0) not null, TASKCONTROLLERDELEGATION_ numeric(18,0), primary key (ID_));
-create table JBPM_TASKINSTANCE (ID_ numeric(18,0) not null, CLASS_ char(1) not null, VERSION_ integer not null, NAME_ varchar(255), DESCRIPTION_ varchar(4000), ACTORID_ varchar(255), CREATE_ timestamp, START_ timestamp, END_ timestamp, DUEDATE_ timestamp, PRIORITY_ integer, ISCANCELLED_ smallint, ISSUSPENDED_ smallint, ISOPEN_ smallint, ISSIGNALLING_ smallint, ISBLOCKING_ smallint, TASK_ numeric(18,0), TOKEN_ numeric(18,0), PROCINST_ numeric(18,0), SWIMLANINSTANCE_ numeric(18,0), TASKMGMTINSTANCE_ numeric(18,0), primary key (ID_));
-create table JBPM_TOKEN (ID_ numeric(18,0) not null, VERSION_ integer not null, NAME_ varchar(255), START_ timestamp, END_ timestamp, NODEENTER_ timestamp, NEXTLOGINDEX_ integer, ISABLETOREACTIVATEPARENT_ smallint, ISTERMINATIONIMPLICIT_ smallint, ISSUSPENDED_ smallint, LOCK_ varchar(255), NODE_ numeric(18,0), PROCESSINSTANCE_ numeric(18,0), PARENT_ numeric(18,0), SUBPROCESSINSTANCE_ numeric(18,0), primary key (ID_));
-create table JBPM_TOKENVARIABLEMAP (ID_ numeric(18,0) not null, VERSION_ integer not null, TOKEN_ numeric(18,0), CONTEXTINSTANCE_ numeric(18,0), primary key (ID_));
-create table JBPM_TRANSITION (ID_ numeric(18,0) not null, NAME_ varchar(255), DESCRIPTION_ varchar(4000), PROCESSDEFINITION_ numeric(18,0), FROM_ numeric(18,0), TO_ numeric(18,0), CONDITION_ varchar(255), FROMINDEX_ integer, primary key (ID_));
-create table JBPM_VARIABLEACCESS (ID_ numeric(18,0) not null, VARIABLENAME_ varchar(255), ACCESS_ varchar(255), MAPPEDNAME_ varchar(255), SCRIPT_ numeric(18,0), PROCESSSTATE_ numeric(18,0), TASKCONTROLLER_ numeric(18,0), INDEX_ integer, primary key (ID_));
-create table JBPM_VARIABLEINSTANCE (ID_ numeric(18,0) not null, CLASS_ char(1) not null, VERSION_ integer not null, NAME_ varchar(255), CONVERTER_ char(1), TOKEN_ numeric(18,0), TOKENVARIABLEMAP_ numeric(18,0), PROCESSINSTANCE_ numeric(18,0), BYTEARRAYVALUE_ numeric(18,0), DATEVALUE_ timestamp, DOUBLEVALUE_ double precision, LONGIDCLASS_ varchar(255), LONGVALUE_ numeric(18,0), STRINGIDCLASS_ varchar(255), STRINGVALUE_ varchar(4000), TASKINSTANCE_ numeric(18,0), primary key (ID_));
-create index IDX_ACTION_EVENT on JBPM_ACTION (EVENT_);
-create index IDX_ACTION_ACTNDL on JBPM_ACTION (ACTIONDELEGATION_);
-create index IDX_ACTION_PROCDF on JBPM_ACTION (PROCESSDEFINITION_);
-alter table JBPM_ACTION add constraint FK_ACTION_EVENT foreign key (EVENT_) references JBPM_EVENT;
-alter table JBPM_ACTION add constraint FK_ACTION_EXPTHDL foreign key (EXCEPTIONHANDLER_) references JBPM_EXCEPTIONHANDLER;
-alter table JBPM_ACTION add constraint FK_ACTION_PROCDEF foreign key (PROCESSDEFINITION_) references JBPM_PROCESSDEFINITION;
-alter table JBPM_ACTION add constraint FK_CRTETIMERACT_TA foreign key (TIMERACTION_) references JBPM_ACTION;
-alter table JBPM_ACTION add constraint FK_ACTION_ACTNDEL foreign key (ACTIONDELEGATION_) references JBPM_DELEGATION;
-alter table JBPM_ACTION add constraint FK_ACTION_REFACT foreign key (REFERENCEDACTION_) references JBPM_ACTION;
-alter table JBPM_BYTEARRAY add constraint FK_BYTEARR_FILDEF foreign key (FILEDEFINITION_) references JBPM_MODULEDEFINITION;
-alter table JBPM_BYTEBLOCK add constraint FK_BYTEBLOCK_FILE foreign key (PROCESSFILE_) references JBPM_BYTEARRAY;
-create index IDX_COMMENT_TOKEN on JBPM_COMMENT (TOKEN_);
-create index IDX_COMMENT_TSK on JBPM_COMMENT (TASKINSTANCE_);
-alter table JBPM_COMMENT add constraint FK_COMMENT_TOKEN foreign key (TOKEN_) references JBPM_TOKEN;
-alter table JBPM_COMMENT add constraint FK_COMMENT_TSK foreign key (TASKINSTANCE_) references JBPM_TASKINSTANCE;
-alter table JBPM_DECISIONCONDITIONS add constraint FK_DECCOND_DEC foreign key (DECISION_) references JBPM_NODE;
-create index IDX_DELEG_PRCD on JBPM_DELEGATION (PROCESSDEFINITION_);
-alter table JBPM_DELEGATION add constraint FK_DELEGATION_PRCD foreign key (PROCESSDEFINITION_) references JBPM_PROCESSDEFINITION;
-alter table JBPM_EVENT add constraint FK_EVENT_PROCDEF foreign key (PROCESSDEFINITION_) references JBPM_PROCESSDEFINITION;
-alter table JBPM_EVENT add constraint FK_EVENT_NODE foreign key (NODE_) references JBPM_NODE;
-alter table JBPM_EVENT add constraint FK_EVENT_TRANS foreign key (TRANSITION_) references JBPM_TRANSITION;
-alter table JBPM_EVENT add constraint FK_EVENT_TASK foreign key (TASK_) references JBPM_TASK;
-alter table JBPM_ID_GROUP add constraint FK_ID_GRP_PARENT foreign key (PARENT_) references JBPM_ID_GROUP;
-alter table JBPM_ID_MEMBERSHIP add constraint FK_ID_MEMSHIP_GRP foreign key (GROUP_) references JBPM_ID_GROUP;
-alter table JBPM_ID_MEMBERSHIP add constraint FK_ID_MEMSHIP_USR foreign key (USER_) references JBPM_ID_USER;
-create index IDX_JOB_TSKINST on JBPM_JOB (TASKINSTANCE_);
-create index IDX_JOB_PRINST on JBPM_JOB (PROCESSINSTANCE_);
-create index IDX_JOB_TOKEN on JBPM_JOB (TOKEN_);
-alter table JBPM_JOB add constraint FK_JOB_TOKEN foreign key (TOKEN_) references JBPM_TOKEN;
-alter table JBPM_JOB add constraint FK_JOB_NODE foreign key (NODE_) references JBPM_NODE;
-alter table JBPM_JOB add constraint FK_JOB_PRINST foreign key (PROCESSINSTANCE_) references JBPM_PROCESSINSTANCE;
-alter table JBPM_JOB add constraint FK_JOB_ACTION foreign key (ACTION_) references JBPM_ACTION;
-alter table JBPM_JOB add constraint FK_JOB_TSKINST foreign key (TASKINSTANCE_) references JBPM_TASKINSTANCE;
-alter table JBPM_LOG add constraint FK_LOG_SOURCENODE foreign key (SOURCENODE_) references JBPM_NODE;
-alter table JBPM_LOG add constraint FK_LOG_TOKEN foreign key (TOKEN_) references JBPM_TOKEN;
-alter table JBPM_LOG add constraint FK_LOG_OLDBYTES foreign key (OLDBYTEARRAY_) references JBPM_BYTEARRAY;
-alter table JBPM_LOG add constraint FK_LOG_NEWBYTES foreign key (NEWBYTEARRAY_) references JBPM_BYTEARRAY;
-alter table JBPM_LOG add constraint FK_LOG_CHILDTOKEN foreign key (CHILD_) references JBPM_TOKEN;
-alter table JBPM_LOG add constraint FK_LOG_DESTNODE foreign key (DESTINATIONNODE_) references JBPM_NODE;
-alter table JBPM_LOG add constraint FK_LOG_TASKINST foreign key (TASKINSTANCE_) references JBPM_TASKINSTANCE;
-alter table JBPM_LOG add constraint FK_LOG_SWIMINST foreign key (SWIMLANEINSTANCE_) references JBPM_SWIMLANEINSTANCE;
-alter table JBPM_LOG add constraint FK_LOG_PARENT foreign key (PARENT_) references JBPM_LOG;
-alter table JBPM_LOG add constraint FK_LOG_NODE foreign key (NODE_) references JBPM_NODE;
-alter table JBPM_LOG add constraint FK_LOG_ACTION foreign key (ACTION_) references JBPM_ACTION;
-alter table JBPM_LOG add constraint FK_LOG_VARINST foreign key (VARIABLEINSTANCE_) references JBPM_VARIABLEINSTANCE;
-alter table JBPM_LOG add constraint FK_LOG_TRANSITION foreign key (TRANSITION_) references JBPM_TRANSITION;
-create index IDX_MODDEF_PROCDF on JBPM_MODULEDEFINITION (PROCESSDEFINITION_);
-alter table JBPM_MODULEDEFINITION add constraint FK_TSKDEF_START foreign key (STARTTASK_) references JBPM_TASK;
-alter table JBPM_MODULEDEFINITION add constraint FK_MODDEF_PROCDEF foreign key (PROCESSDEFINITION_) references JBPM_PROCESSDEFINITION;
-create index IDX_MODINST_PRINST on JBPM_MODULEINSTANCE (PROCESSINSTANCE_);
-alter table JBPM_MODULEINSTANCE add constraint FK_TASKMGTINST_TMD foreign key (TASKMGMTDEFINITION_) references JBPM_MODULEDEFINITION;
-alter table JBPM_MODULEINSTANCE add constraint FK_MODINST_PRCINST foreign key (PROCESSINSTANCE_) references JBPM_PROCESSINSTANCE;
-create index IDX_PSTATE_SBPRCDEF on JBPM_NODE (SUBPROCESSDEFINITION_);
-create index IDX_NODE_SUPRSTATE on JBPM_NODE (SUPERSTATE_);
-create index IDX_NODE_PROCDEF on JBPM_NODE (PROCESSDEFINITION_);
-create index IDX_NODE_ACTION on JBPM_NODE (ACTION_);
-alter table JBPM_NODE add constraint FK_PROCST_SBPRCDEF foreign key (SUBPROCESSDEFINITION_) references JBPM_PROCESSDEFINITION;
-alter table JBPM_NODE add constraint FK_NODE_PROCDEF foreign key (PROCESSDEFINITION_) references JBPM_PROCESSDEFINITION;
-alter table JBPM_NODE add constraint FK_NODE_SCRIPT foreign key (SCRIPT_) references JBPM_ACTION;
-alter table JBPM_NODE add constraint FK_NODE_ACTION foreign key (ACTION_) references JBPM_ACTION;
-alter table JBPM_NODE add constraint FK_DECISION_DELEG foreign key (DECISIONDELEGATION) references JBPM_DELEGATION;
-alter table JBPM_NODE add constraint FK_NODE_SUPERSTATE foreign key (SUPERSTATE_) references JBPM_NODE;
-create index IDX_PLDACTR_ACTID on JBPM_POOLEDACTOR (ACTORID_);
-create index IDX_TSKINST_SWLANE on JBPM_POOLEDACTOR (SWIMLANEINSTANCE_);
-alter table JBPM_POOLEDACTOR add constraint FK_POOLEDACTOR_SLI foreign key (SWIMLANEINSTANCE_) references JBPM_SWIMLANEINSTANCE;
-create index IDX_PROCDEF_STRTST on JBPM_PROCESSDEFINITION (STARTSTATE_);
-alter table JBPM_PROCESSDEFINITION add constraint FK_PROCDEF_STRTSTA foreign key (STARTSTATE_) references JBPM_NODE;
-create index IDX_PROCIN_ROOTTK on JBPM_PROCESSINSTANCE (ROOTTOKEN_);
-create index IDX_PROCIN_SPROCTK on JBPM_PROCESSINSTANCE (SUPERPROCESSTOKEN_);
-create index IDX_PROCIN_KEY on JBPM_PROCESSINSTANCE (KEY_);
-create index IDX_PROCIN_PROCDEF on JBPM_PROCESSINSTANCE (PROCESSDEFINITION_);
-alter table JBPM_PROCESSINSTANCE add constraint FK_PROCIN_PROCDEF foreign key (PROCESSDEFINITION_) references JBPM_PROCESSDEFINITION;
-alter table JBPM_PROCESSINSTANCE add constraint FK_PROCIN_ROOTTKN foreign key (ROOTTOKEN_) references JBPM_TOKEN;
-alter table JBPM_PROCESSINSTANCE add constraint FK_PROCIN_SPROCTKN foreign key (SUPERPROCESSTOKEN_) references JBPM_TOKEN;
-create index IDX_RTACTN_PRCINST on JBPM_RUNTIMEACTION (PROCESSINSTANCE_);
-create index IDX_RTACTN_ACTION on JBPM_RUNTIMEACTION (ACTION_);
-alter table JBPM_RUNTIMEACTION add constraint FK_RTACTN_PROCINST foreign key (PROCESSINSTANCE_) references JBPM_PROCESSINSTANCE;
-alter table JBPM_RUNTIMEACTION add constraint FK_RTACTN_ACTION foreign key (ACTION_) references JBPM_ACTION;
-alter table JBPM_SWIMLANE add constraint FK_SWL_ASSDEL foreign key (ASSIGNMENTDELEGATION_) references JBPM_DELEGATION;
-alter table JBPM_SWIMLANE add constraint FK_SWL_TSKMGMTDEF foreign key (TASKMGMTDEFINITION_) references JBPM_MODULEDEFINITION;
-create index IDX_SWIMLINST_SL on JBPM_SWIMLANEINSTANCE (SWIMLANE_);
-alter table JBPM_SWIMLANEINSTANCE add constraint FK_SWIMLANEINST_TM foreign key (TASKMGMTINSTANCE_) references JBPM_MODULEINSTANCE;
-alter table JBPM_SWIMLANEINSTANCE add constraint FK_SWIMLANEINST_SL foreign key (SWIMLANE_) references JBPM_SWIMLANE;
-create index IDX_TASK_TSKNODE on JBPM_TASK (TASKNODE_);
-create index IDX_TASK_PROCDEF on JBPM_TASK (PROCESSDEFINITION_);
-create index IDX_TASK_TASKMGTDF on JBPM_TASK (TASKMGMTDEFINITION_);
-alter table JBPM_TASK add constraint FK_TSK_TSKCTRL foreign key (TASKCONTROLLER_) references JBPM_TASKCONTROLLER;
-alter table JBPM_TASK add constraint FK_TASK_ASSDEL foreign key (ASSIGNMENTDELEGATION_) references JBPM_DELEGATION;
-alter table JBPM_TASK add constraint FK_TASK_TASKNODE foreign key (TASKNODE_) references JBPM_NODE;
-alter table JBPM_TASK add constraint FK_TASK_PROCDEF foreign key (PROCESSDEFINITION_) references JBPM_PROCESSDEFINITION;
-alter table JBPM_TASK add constraint FK_TASK_STARTST foreign key (STARTSTATE_) references JBPM_NODE;
-alter table JBPM_TASK add constraint FK_TASK_TASKMGTDEF foreign key (TASKMGMTDEFINITION_) references JBPM_MODULEDEFINITION;
-alter table JBPM_TASK add constraint FK_TASK_SWIMLANE foreign key (SWIMLANE_) references JBPM_SWIMLANE;
-alter table JBPM_TASKACTORPOOL add constraint FK_TSKACTPOL_PLACT foreign key (POOLEDACTOR_) references JBPM_POOLEDACTOR;
-alter table JBPM_TASKACTORPOOL add constraint FK_TASKACTPL_TSKI foreign key (TASKINSTANCE_) references JBPM_TASKINSTANCE;
-alter table JBPM_TASKCONTROLLER add constraint FK_TSKCTRL_DELEG foreign key (TASKCONTROLLERDELEGATION_) references JBPM_DELEGATION;
-create index IDX_TASKINST_TOKN on JBPM_TASKINSTANCE (TOKEN_);
-create index IDX_TASKINST_TSK on JBPM_TASKINSTANCE (TASK_, PROCINST_);
-create index IDX_TSKINST_TMINST on JBPM_TASKINSTANCE (TASKMGMTINSTANCE_);
-create index IDX_TSKINST_SLINST on JBPM_TASKINSTANCE (SWIMLANINSTANCE_);
-create index IDX_TASK_ACTORID on JBPM_TASKINSTANCE (ACTORID_);
-alter table JBPM_TASKINSTANCE add constraint FK_TSKINS_PRCINS foreign key (PROCINST_) references JBPM_PROCESSINSTANCE;
-alter table JBPM_TASKINSTANCE add constraint FK_TASKINST_TMINST foreign key (TASKMGMTINSTANCE_) references JBPM_MODULEINSTANCE;
-alter table JBPM_TASKINSTANCE add constraint FK_TASKINST_TOKEN foreign key (TOKEN_) references JBPM_TOKEN;
-alter table JBPM_TASKINSTANCE add constraint FK_TASKINST_SLINST foreign key (SWIMLANINSTANCE_) references JBPM_SWIMLANEINSTANCE;
-alter table JBPM_TASKINSTANCE add constraint FK_TASKINST_TASK foreign key (TASK_) references JBPM_TASK;
-create index IDX_TOKEN_PROCIN on JBPM_TOKEN (PROCESSINSTANCE_);
-create index IDX_TOKEN_SUBPI on JBPM_TOKEN (SUBPROCESSINSTANCE_);
-create index IDX_TOKEN_NODE on JBPM_TOKEN (NODE_);
-create index IDX_TOKEN_PARENT on JBPM_TOKEN (PARENT_);
-alter table JBPM_TOKEN add constraint FK_TOKEN_PARENT foreign key (PARENT_) references JBPM_TOKEN;
-alter table JBPM_TOKEN add constraint FK_TOKEN_NODE foreign key (NODE_) references JBPM_NODE;
-alter table JBPM_TOKEN add constraint FK_TOKEN_PROCINST foreign key (PROCESSINSTANCE_) references JBPM_PROCESSINSTANCE;
-alter table JBPM_TOKEN add constraint FK_TOKEN_SUBPI foreign key (SUBPROCESSINSTANCE_) references JBPM_PROCESSINSTANCE;
-create index IDX_TKVARMAP_CTXT on JBPM_TOKENVARIABLEMAP (CONTEXTINSTANCE_);
-create index IDX_TKVVARMP_TOKEN on JBPM_TOKENVARIABLEMAP (TOKEN_);
-alter table JBPM_TOKENVARIABLEMAP add constraint FK_TKVARMAP_CTXT foreign key (CONTEXTINSTANCE_) references JBPM_MODULEINSTANCE;
-alter table JBPM_TOKENVARIABLEMAP add constraint FK_TKVARMAP_TOKEN foreign key (TOKEN_) references JBPM_TOKEN;
-create index IDX_TRANSIT_TO on JBPM_TRANSITION (TO_);
-create index IDX_TRANSIT_FROM on JBPM_TRANSITION (FROM_);
-create index IDX_TRANS_PROCDEF on JBPM_TRANSITION (PROCESSDEFINITION_);
-alter table JBPM_TRANSITION add constraint FK_TRANSITION_TO foreign key (TO_) references JBPM_NODE;
-alter table JBPM_TRANSITION add constraint FK_TRANS_PROCDEF foreign key (PROCESSDEFINITION_) references JBPM_PROCESSDEFINITION;
-alter table JBPM_TRANSITION add constraint FK_TRANSITION_FROM foreign key (FROM_) references JBPM_NODE;
-alter table JBPM_VARIABLEACCESS add constraint FK_VARACC_TSKCTRL foreign key (TASKCONTROLLER_) references JBPM_TASKCONTROLLER;
-alter table JBPM_VARIABLEACCESS add constraint FK_VARACC_SCRIPT foreign key (SCRIPT_) references JBPM_ACTION;
-alter table JBPM_VARIABLEACCESS add constraint FK_VARACC_PROCST foreign key (PROCESSSTATE_) references JBPM_NODE;
-create index IDX_VARINST_TKVARMP on JBPM_VARIABLEINSTANCE (TOKENVARIABLEMAP_);
-create index IDX_VARINST_PRCINS on JBPM_VARIABLEINSTANCE (PROCESSINSTANCE_);
-create index IDX_VARINST_TK on JBPM_VARIABLEINSTANCE (TOKEN_);
-alter table JBPM_VARIABLEINSTANCE add constraint FK_VARINST_TK foreign key (TOKEN_) references JBPM_TOKEN;
-alter table JBPM_VARIABLEINSTANCE add constraint FK_VARINST_TKVARMP foreign key (TOKENVARIABLEMAP_) references JBPM_TOKENVARIABLEMAP;
-alter table JBPM_VARIABLEINSTANCE add constraint FK_VARINST_PRCINST foreign key (PROCESSINSTANCE_) references JBPM_PROCESSINSTANCE;
-alter table JBPM_VARIABLEINSTANCE add constraint FK_VAR_TSKINST foreign key (TASKINSTANCE_) references JBPM_TASKINSTANCE;
-alter table JBPM_VARIABLEINSTANCE add constraint FK_BYTEINST_ARRAY foreign key (BYTEARRAYVALUE_) references JBPM_BYTEARRAY;
-create generator hibernate_sequence;
+create table JBPM_ACTION (ID_ numeric(18,0) not null, class char(1) not null, NAME_ varchar(255), ISPROPAGATIONALLOWED_ smallint, ACTIONEXPRESSION_ varchar(255), ISASYNC_ smallint, REFERENCEDACTION_ numeric(18,0), ACTIONDELEGATION_ numeric(18,0), EVENT_ numeric(18,0), PROCESSDEFINITION_ numeric(18,0), EXPRESSION_ blob(4000) sub_type 1, TIMERNAME_ varchar(255), DUEDATE_ varchar(255), REPEAT_ varchar(255), TRANSITIONNAME_ varchar(255), TIMERACTION_ numeric(18,0), EVENTINDEX_ integer, EXCEPTIONHANDLER_ numeric(18,0), EXCEPTIONHANDLERINDEX_ integer, primary key (ID_))
+create table JBPM_BYTEARRAY (ID_ numeric(18,0) not null, NAME_ varchar(255), FILEDEFINITION_ numeric(18,0), primary key (ID_))
+create table JBPM_BYTEBLOCK (PROCESSFILE_ numeric(18,0) not null, BYTES_ blob, INDEX_ integer not null, primary key (PROCESSFILE_, INDEX_))
+create table JBPM_COMMENT (ID_ numeric(18,0) not null, VERSION_ integer not null, ACTORID_ varchar(255), TIME_ timestamp, MESSAGE_ blob(4000) sub_type 1, TOKEN_ numeric(18,0), TASKINSTANCE_ numeric(18,0), TOKENINDEX_ integer, TASKINSTANCEINDEX_ integer, primary key (ID_))
+create table JBPM_DECISIONCONDITIONS (DECISION_ numeric(18,0) not null, TRANSITIONNAME_ varchar(255), EXPRESSION_ varchar(255), INDEX_ integer not null, primary key (DECISION_, INDEX_))
+create table JBPM_DELEGATION (ID_ numeric(18,0) not null, CLASSNAME_ blob(4000) sub_type 1, CONFIGURATION_ blob(4000) sub_type 1, CONFIGTYPE_ varchar(255), PROCESSDEFINITION_ numeric(18,0), primary key (ID_))
+create table JBPM_EVENT (ID_ numeric(18,0) not null, EVENTTYPE_ varchar(255), TYPE_ char(1), GRAPHELEMENT_ numeric(18,0), PROCESSDEFINITION_ numeric(18,0), NODE_ numeric(18,0), TRANSITION_ numeric(18,0), TASK_ numeric(18,0), primary key (ID_))
+create table JBPM_EXCEPTIONHANDLER (ID_ numeric(18,0) not null, EXCEPTIONCLASSNAME_ blob(4000) sub_type 1, TYPE_ char(1), GRAPHELEMENT_ numeric(18,0), PROCESSDEFINITION_ numeric(18,0), GRAPHELEMENTINDEX_ integer, NODE_ numeric(18,0), TRANSITION_ numeric(18,0), TASK_ numeric(18,0), primary key (ID_))
+create table JBPM_ID_GROUP (ID_ numeric(18,0) not null, CLASS_ char(1) not null, NAME_ varchar(255), TYPE_ varchar(255), PARENT_ numeric(18,0), primary key (ID_))
+create table JBPM_ID_MEMBERSHIP (ID_ numeric(18,0) not null, CLASS_ char(1) not null, NAME_ varchar(255), ROLE_ varchar(255), USER_ numeric(18,0), GROUP_ numeric(18,0), primary key (ID_))
+create table JBPM_ID_PERMISSIONS (ENTITY_ numeric(18,0) not null, CLASS_ varchar(255), NAME_ varchar(255), ACTION_ varchar(255))
+create table JBPM_ID_USER (ID_ numeric(18,0) not null, CLASS_ char(1) not null, NAME_ varchar(255), EMAIL_ varchar(255), PASSWORD_ varchar(255), primary key (ID_))
+create table JBPM_JOB (ID_ numeric(18,0) not null, CLASS_ char(1) not null, VERSION_ integer not null, DUEDATE_ timestamp, PROCESSINSTANCE_ numeric(18,0), TOKEN_ numeric(18,0), TASKINSTANCE_ numeric(18,0), ISSUSPENDED_ smallint, ISEXCLUSIVE_ smallint, LOCKOWNER_ varchar(255), LOCKTIME_ timestamp, EXCEPTION_ blob(4000) sub_type 1, RETRIES_ integer, NAME_ varchar(255), REPEAT_ varchar(255), TRANSITIONNAME_ varchar(255), ACTION_ numeric(18,0), GRAPHELEMENTTYPE_ varchar(255), GRAPHELEMENT_ numeric(18,0), NODE_ numeric(18,0), primary key (ID_))
+create table JBPM_LOG (ID_ numeric(18,0) not null, CLASS_ char(1) not null, INDEX_ integer, DATE_ timestamp, TOKEN_ numeric(18,0), PARENT_ numeric(18,0), MESSAGE_ blob(4000) sub_type 1, EXCEPTION_ blob(4000) sub_type 1, ACTION_ numeric(18,0), NODE_ numeric(18,0), ENTER_ timestamp, LEAVE_ timestamp, DURATION_ numeric(18,0), NEWLONGVALUE_ numeric(18,0), TRANSITION_ numeric(18,0), CHILD_ numeric(18,0), SOURCENODE_ numeric(18,0), DESTINATIONNODE_ numeric(18,0), VARIABLEINSTANCE_ numeric(18,0), OLDBYTEARRAY_ numeric(18,0), NEWBYTEARRAY_ numeric(18,0), OLDDATEVALUE_ timestamp, NEWDATEVALUE_ timestamp, OLDDOUBLEVALUE_ double precision, NEWDOUBLEVALUE_ double precision, OLDLONGIDCLASS_ varchar(255), OLDLONGIDVALUE_ numeric(18,0), NEWLONGIDCLASS_ varchar(255), NEWLONGIDVALUE_ numeric(18,0), OLDSTRINGIDCLASS_ varchar(255), OLDSTRINGIDVALUE_ varchar(255), NEWSTRINGIDCLASS_ varchar(255), NEWSTRINGIDVALUE_ varchar(255), OLDLONGVALUE_ numeric(18,0), OLDSTRINGVALUE_ blob(4000) sub_type 1,!
NEWSTRINGVALUE_ blob(4000) sub_type 1, TASKINSTANCE_ numeric(18,0), TASKACTORID_ varchar(255), TASKOLDACTORID_ varchar(255), SWIMLANEINSTANCE_ numeric(18,0), primary key (ID_))
+create table JBPM_MODULEDEFINITION (ID_ numeric(18,0) not null, CLASS_ char(1) not null, NAME_ varchar(4000), PROCESSDEFINITION_ numeric(18,0), STARTTASK_ numeric(18,0), primary key (ID_))
+create table JBPM_MODULEINSTANCE (ID_ numeric(18,0) not null, CLASS_ char(1) not null, VERSION_ integer not null, PROCESSINSTANCE_ numeric(18,0), TASKMGMTDEFINITION_ numeric(18,0), NAME_ varchar(255), primary key (ID_))
+create table JBPM_NODE (ID_ numeric(18,0) not null, CLASS_ char(1) not null, NAME_ varchar(255), DESCRIPTION_ blob(4000) sub_type 1, PROCESSDEFINITION_ numeric(18,0), ISASYNC_ smallint, ISASYNCEXCL_ smallint, ACTION_ numeric(18,0), SUPERSTATE_ numeric(18,0), SUBPROCNAME_ varchar(255), SUBPROCESSDEFINITION_ numeric(18,0), DECISIONEXPRESSION_ varchar(255), DECISIONDELEGATION numeric(18,0), SCRIPT_ numeric(18,0), PARENTLOCKMODE_ varchar(255), SIGNAL_ integer, CREATETASKS_ smallint, ENDTASKS_ smallint, NODECOLLECTIONINDEX_ integer, primary key (ID_))
+create table JBPM_POOLEDACTOR (ID_ numeric(18,0) not null, VERSION_ integer not null, ACTORID_ varchar(255), SWIMLANEINSTANCE_ numeric(18,0), primary key (ID_))
+create table JBPM_PROCESSDEFINITION (ID_ numeric(18,0) not null, CLASS_ char(1) not null, NAME_ varchar(255), DESCRIPTION_ blob(4000) sub_type 1, VERSION_ integer, ISTERMINATIONIMPLICIT_ smallint, STARTSTATE_ numeric(18,0), primary key (ID_))
+create table JBPM_PROCESSINSTANCE (ID_ numeric(18,0) not null, VERSION_ integer not null, KEY_ varchar(255), START_ timestamp, END_ timestamp, ISSUSPENDED_ smallint, PROCESSDEFINITION_ numeric(18,0), ROOTTOKEN_ numeric(18,0), SUPERPROCESSTOKEN_ numeric(18,0), primary key (ID_))
+create table JBPM_RUNTIMEACTION (ID_ numeric(18,0) not null, VERSION_ integer not null, EVENTTYPE_ varchar(255), TYPE_ char(1), GRAPHELEMENT_ numeric(18,0), PROCESSINSTANCE_ numeric(18,0), ACTION_ numeric(18,0), PROCESSINSTANCEINDEX_ integer, primary key (ID_))
+create table JBPM_SWIMLANE (ID_ numeric(18,0) not null, NAME_ varchar(255), ACTORIDEXPRESSION_ varchar(255), POOLEDACTORSEXPRESSION_ varchar(255), ASSIGNMENTDELEGATION_ numeric(18,0), TASKMGMTDEFINITION_ numeric(18,0), primary key (ID_))
+create table JBPM_SWIMLANEINSTANCE (ID_ numeric(18,0) not null, VERSION_ integer not null, NAME_ varchar(255), ACTORID_ varchar(255), SWIMLANE_ numeric(18,0), TASKMGMTINSTANCE_ numeric(18,0), primary key (ID_))
+create table JBPM_TASK (ID_ numeric(18,0) not null, NAME_ varchar(255), DESCRIPTION_ blob(4000) sub_type 1, PROCESSDEFINITION_ numeric(18,0), ISBLOCKING_ smallint, ISSIGNALLING_ smallint, CONDITION_ varchar(255), DUEDATE_ varchar(255), PRIORITY_ integer, ACTORIDEXPRESSION_ varchar(255), POOLEDACTORSEXPRESSION_ varchar(255), TASKMGMTDEFINITION_ numeric(18,0), TASKNODE_ numeric(18,0), STARTSTATE_ numeric(18,0), ASSIGNMENTDELEGATION_ numeric(18,0), SWIMLANE_ numeric(18,0), TASKCONTROLLER_ numeric(18,0), primary key (ID_))
+create table JBPM_TASKACTORPOOL (TASKINSTANCE_ numeric(18,0) not null, POOLEDACTOR_ numeric(18,0) not null, primary key (TASKINSTANCE_, POOLEDACTOR_))
+create table JBPM_TASKCONTROLLER (ID_ numeric(18,0) not null, TASKCONTROLLERDELEGATION_ numeric(18,0), primary key (ID_))
+create table JBPM_TASKINSTANCE (ID_ numeric(18,0) not null, CLASS_ char(1) not null, VERSION_ integer not null, NAME_ varchar(255), DESCRIPTION_ blob(4000) sub_type 1, ACTORID_ varchar(255), CREATE_ timestamp, START_ timestamp, END_ timestamp, DUEDATE_ timestamp, PRIORITY_ integer, ISCANCELLED_ smallint, ISSUSPENDED_ smallint, ISOPEN_ smallint, ISSIGNALLING_ smallint, ISBLOCKING_ smallint, TASK_ numeric(18,0), TOKEN_ numeric(18,0), PROCINST_ numeric(18,0), SWIMLANINSTANCE_ numeric(18,0), TASKMGMTINSTANCE_ numeric(18,0), primary key (ID_))
+create table JBPM_TOKEN (ID_ numeric(18,0) not null, VERSION_ integer not null, NAME_ varchar(255), START_ timestamp, END_ timestamp, NODEENTER_ timestamp, NEXTLOGINDEX_ integer, ISABLETOREACTIVATEPARENT_ smallint, ISTERMINATIONIMPLICIT_ smallint, ISSUSPENDED_ smallint, LOCK_ varchar(255), NODE_ numeric(18,0), PROCESSINSTANCE_ numeric(18,0), PARENT_ numeric(18,0), SUBPROCESSINSTANCE_ numeric(18,0), primary key (ID_))
+create table JBPM_TOKENVARIABLEMAP (ID_ numeric(18,0) not null, VERSION_ integer not null, TOKEN_ numeric(18,0), CONTEXTINSTANCE_ numeric(18,0), primary key (ID_))
+create table JBPM_TRANSITION (ID_ numeric(18,0) not null, NAME_ varchar(255), DESCRIPTION_ blob(4000) sub_type 1, PROCESSDEFINITION_ numeric(18,0), FROM_ numeric(18,0), TO_ numeric(18,0), CONDITION_ varchar(255), FROMINDEX_ integer, primary key (ID_))
+create table JBPM_VARIABLEACCESS (ID_ numeric(18,0) not null, VARIABLENAME_ varchar(255), ACCESS_ varchar(255), MAPPEDNAME_ varchar(255), SCRIPT_ numeric(18,0), PROCESSSTATE_ numeric(18,0), TASKCONTROLLER_ numeric(18,0), INDEX_ integer, primary key (ID_))
+create table JBPM_VARIABLEINSTANCE (ID_ numeric(18,0) not null, CLASS_ char(1) not null, VERSION_ integer not null, NAME_ varchar(255), CONVERTER_ char(1), TOKEN_ numeric(18,0), TOKENVARIABLEMAP_ numeric(18,0), PROCESSINSTANCE_ numeric(18,0), BYTEARRAYVALUE_ numeric(18,0), DATEVALUE_ timestamp, DOUBLEVALUE_ double precision, LONGIDCLASS_ varchar(255), LONGVALUE_ numeric(18,0), STRINGIDCLASS_ varchar(255), STRINGVALUE_ varchar(4000), TASKINSTANCE_ numeric(18,0), primary key (ID_))
+create index IDX_ACTION_EVENT on JBPM_ACTION (EVENT_)
+create index IDX_ACTION_ACTNDL on JBPM_ACTION (ACTIONDELEGATION_)
+create index IDX_ACTION_PROCDF on JBPM_ACTION (PROCESSDEFINITION_)
+alter table JBPM_ACTION add constraint FK_ACTION_EVENT foreign key (EVENT_) references JBPM_EVENT
+alter table JBPM_ACTION add constraint FK_ACTION_EXPTHDL foreign key (EXCEPTIONHANDLER_) references JBPM_EXCEPTIONHANDLER
+alter table JBPM_ACTION add constraint FK_ACTION_PROCDEF foreign key (PROCESSDEFINITION_) references JBPM_PROCESSDEFINITION
+alter table JBPM_ACTION add constraint FK_CRTETIMERACT_TA foreign key (TIMERACTION_) references JBPM_ACTION
+alter table JBPM_ACTION add constraint FK_ACTION_ACTNDEL foreign key (ACTIONDELEGATION_) references JBPM_DELEGATION
+alter table JBPM_ACTION add constraint FK_ACTION_REFACT foreign key (REFERENCEDACTION_) references JBPM_ACTION
+alter table JBPM_BYTEARRAY add constraint FK_BYTEARR_FILDEF foreign key (FILEDEFINITION_) references JBPM_MODULEDEFINITION
+alter table JBPM_BYTEBLOCK add constraint FK_BYTEBLOCK_FILE foreign key (PROCESSFILE_) references JBPM_BYTEARRAY
+create index IDX_COMMENT_TOKEN on JBPM_COMMENT (TOKEN_)
+create index IDX_COMMENT_TSK on JBPM_COMMENT (TASKINSTANCE_)
+alter table JBPM_COMMENT add constraint FK_COMMENT_TOKEN foreign key (TOKEN_) references JBPM_TOKEN
+alter table JBPM_COMMENT add constraint FK_COMMENT_TSK foreign key (TASKINSTANCE_) references JBPM_TASKINSTANCE
+alter table JBPM_DECISIONCONDITIONS add constraint FK_DECCOND_DEC foreign key (DECISION_) references JBPM_NODE
+create index IDX_DELEG_PRCD on JBPM_DELEGATION (PROCESSDEFINITION_)
+alter table JBPM_DELEGATION add constraint FK_DELEGATION_PRCD foreign key (PROCESSDEFINITION_) references JBPM_PROCESSDEFINITION
+alter table JBPM_EVENT add constraint FK_EVENT_PROCDEF foreign key (PROCESSDEFINITION_) references JBPM_PROCESSDEFINITION
+alter table JBPM_EVENT add constraint FK_EVENT_NODE foreign key (NODE_) references JBPM_NODE
+alter table JBPM_EVENT add constraint FK_EVENT_TRANS foreign key (TRANSITION_) references JBPM_TRANSITION
+alter table JBPM_EVENT add constraint FK_EVENT_TASK foreign key (TASK_) references JBPM_TASK
+alter table JBPM_ID_GROUP add constraint FK_ID_GRP_PARENT foreign key (PARENT_) references JBPM_ID_GROUP
+alter table JBPM_ID_MEMBERSHIP add constraint FK_ID_MEMSHIP_GRP foreign key (GROUP_) references JBPM_ID_GROUP
+alter table JBPM_ID_MEMBERSHIP add constraint FK_ID_MEMSHIP_USR foreign key (USER_) references JBPM_ID_USER
+create index IDX_JOB_TSKINST on JBPM_JOB (TASKINSTANCE_)
+create index IDX_JOB_PRINST on JBPM_JOB (PROCESSINSTANCE_)
+create index IDX_JOB_TOKEN on JBPM_JOB (TOKEN_)
+alter table JBPM_JOB add constraint FK_JOB_TOKEN foreign key (TOKEN_) references JBPM_TOKEN
+alter table JBPM_JOB add constraint FK_JOB_NODE foreign key (NODE_) references JBPM_NODE
+alter table JBPM_JOB add constraint FK_JOB_PRINST foreign key (PROCESSINSTANCE_) references JBPM_PROCESSINSTANCE
+alter table JBPM_JOB add constraint FK_JOB_ACTION foreign key (ACTION_) references JBPM_ACTION
+alter table JBPM_JOB add constraint FK_JOB_TSKINST foreign key (TASKINSTANCE_) references JBPM_TASKINSTANCE
+alter table JBPM_LOG add constraint FK_LOG_SOURCENODE foreign key (SOURCENODE_) references JBPM_NODE
+alter table JBPM_LOG add constraint FK_LOG_TOKEN foreign key (TOKEN_) references JBPM_TOKEN
+alter table JBPM_LOG add constraint FK_LOG_OLDBYTES foreign key (OLDBYTEARRAY_) references JBPM_BYTEARRAY
+alter table JBPM_LOG add constraint FK_LOG_NEWBYTES foreign key (NEWBYTEARRAY_) references JBPM_BYTEARRAY
+alter table JBPM_LOG add constraint FK_LOG_CHILDTOKEN foreign key (CHILD_) references JBPM_TOKEN
+alter table JBPM_LOG add constraint FK_LOG_DESTNODE foreign key (DESTINATIONNODE_) references JBPM_NODE
+alter table JBPM_LOG add constraint FK_LOG_TASKINST foreign key (TASKINSTANCE_) references JBPM_TASKINSTANCE
+alter table JBPM_LOG add constraint FK_LOG_SWIMINST foreign key (SWIMLANEINSTANCE_) references JBPM_SWIMLANEINSTANCE
+alter table JBPM_LOG add constraint FK_LOG_PARENT foreign key (PARENT_) references JBPM_LOG
+alter table JBPM_LOG add constraint FK_LOG_NODE foreign key (NODE_) references JBPM_NODE
+alter table JBPM_LOG add constraint FK_LOG_ACTION foreign key (ACTION_) references JBPM_ACTION
+alter table JBPM_LOG add constraint FK_LOG_VARINST foreign key (VARIABLEINSTANCE_) references JBPM_VARIABLEINSTANCE
+alter table JBPM_LOG add constraint FK_LOG_TRANSITION foreign key (TRANSITION_) references JBPM_TRANSITION
+create index IDX_MODDEF_PROCDF on JBPM_MODULEDEFINITION (PROCESSDEFINITION_)
+alter table JBPM_MODULEDEFINITION add constraint FK_TSKDEF_START foreign key (STARTTASK_) references JBPM_TASK
+alter table JBPM_MODULEDEFINITION add constraint FK_MODDEF_PROCDEF foreign key (PROCESSDEFINITION_) references JBPM_PROCESSDEFINITION
+create index IDX_MODINST_PRINST on JBPM_MODULEINSTANCE (PROCESSINSTANCE_)
+alter table JBPM_MODULEINSTANCE add constraint FK_TASKMGTINST_TMD foreign key (TASKMGMTDEFINITION_) references JBPM_MODULEDEFINITION
+alter table JBPM_MODULEINSTANCE add constraint FK_MODINST_PRCINST foreign key (PROCESSINSTANCE_) references JBPM_PROCESSINSTANCE
+create index IDX_PSTATE_SBPRCDEF on JBPM_NODE (SUBPROCESSDEFINITION_)
+create index IDX_NODE_SUPRSTATE on JBPM_NODE (SUPERSTATE_)
+create index IDX_NODE_PROCDEF on JBPM_NODE (PROCESSDEFINITION_)
+create index IDX_NODE_ACTION on JBPM_NODE (ACTION_)
+alter table JBPM_NODE add constraint FK_PROCST_SBPRCDEF foreign key (SUBPROCESSDEFINITION_) references JBPM_PROCESSDEFINITION
+alter table JBPM_NODE add constraint FK_NODE_PROCDEF foreign key (PROCESSDEFINITION_) references JBPM_PROCESSDEFINITION
+alter table JBPM_NODE add constraint FK_NODE_SCRIPT foreign key (SCRIPT_) references JBPM_ACTION
+alter table JBPM_NODE add constraint FK_NODE_ACTION foreign key (ACTION_) references JBPM_ACTION
+alter table JBPM_NODE add constraint FK_DECISION_DELEG foreign key (DECISIONDELEGATION) references JBPM_DELEGATION
+alter table JBPM_NODE add constraint FK_NODE_SUPERSTATE foreign key (SUPERSTATE_) references JBPM_NODE
+create index IDX_PLDACTR_ACTID on JBPM_POOLEDACTOR (ACTORID_)
+create index IDX_TSKINST_SWLANE on JBPM_POOLEDACTOR (SWIMLANEINSTANCE_)
+alter table JBPM_POOLEDACTOR add constraint FK_POOLEDACTOR_SLI foreign key (SWIMLANEINSTANCE_) references JBPM_SWIMLANEINSTANCE
+create index IDX_PROCDEF_STRTST on JBPM_PROCESSDEFINITION (STARTSTATE_)
+alter table JBPM_PROCESSDEFINITION add constraint FK_PROCDEF_STRTSTA foreign key (STARTSTATE_) references JBPM_NODE
+create index IDX_PROCIN_ROOTTK on JBPM_PROCESSINSTANCE (ROOTTOKEN_)
+create index IDX_PROCIN_SPROCTK on JBPM_PROCESSINSTANCE (SUPERPROCESSTOKEN_)
+create index IDX_PROCIN_KEY on JBPM_PROCESSINSTANCE (KEY_)
+create index IDX_PROCIN_PROCDEF on JBPM_PROCESSINSTANCE (PROCESSDEFINITION_)
+alter table JBPM_PROCESSINSTANCE add constraint FK_PROCIN_PROCDEF foreign key (PROCESSDEFINITION_) references JBPM_PROCESSDEFINITION
+alter table JBPM_PROCESSINSTANCE add constraint FK_PROCIN_ROOTTKN foreign key (ROOTTOKEN_) references JBPM_TOKEN
+alter table JBPM_PROCESSINSTANCE add constraint FK_PROCIN_SPROCTKN foreign key (SUPERPROCESSTOKEN_) references JBPM_TOKEN
+create index IDX_RTACTN_PRCINST on JBPM_RUNTIMEACTION (PROCESSINSTANCE_)
+create index IDX_RTACTN_ACTION on JBPM_RUNTIMEACTION (ACTION_)
+alter table JBPM_RUNTIMEACTION add constraint FK_RTACTN_PROCINST foreign key (PROCESSINSTANCE_) references JBPM_PROCESSINSTANCE
+alter table JBPM_RUNTIMEACTION add constraint FK_RTACTN_ACTION foreign key (ACTION_) references JBPM_ACTION
+alter table JBPM_SWIMLANE add constraint FK_SWL_ASSDEL foreign key (ASSIGNMENTDELEGATION_) references JBPM_DELEGATION
+alter table JBPM_SWIMLANE add constraint FK_SWL_TSKMGMTDEF foreign key (TASKMGMTDEFINITION_) references JBPM_MODULEDEFINITION
+create index IDX_SWIMLINST_SL on JBPM_SWIMLANEINSTANCE (SWIMLANE_)
+alter table JBPM_SWIMLANEINSTANCE add constraint FK_SWIMLANEINST_TM foreign key (TASKMGMTINSTANCE_) references JBPM_MODULEINSTANCE
+alter table JBPM_SWIMLANEINSTANCE add constraint FK_SWIMLANEINST_SL foreign key (SWIMLANE_) references JBPM_SWIMLANE
+create index IDX_TASK_TSKNODE on JBPM_TASK (TASKNODE_)
+create index IDX_TASK_PROCDEF on JBPM_TASK (PROCESSDEFINITION_)
+create index IDX_TASK_TASKMGTDF on JBPM_TASK (TASKMGMTDEFINITION_)
+alter table JBPM_TASK add constraint FK_TSK_TSKCTRL foreign key (TASKCONTROLLER_) references JBPM_TASKCONTROLLER
+alter table JBPM_TASK add constraint FK_TASK_ASSDEL foreign key (ASSIGNMENTDELEGATION_) references JBPM_DELEGATION
+alter table JBPM_TASK add constraint FK_TASK_TASKNODE foreign key (TASKNODE_) references JBPM_NODE
+alter table JBPM_TASK add constraint FK_TASK_PROCDEF foreign key (PROCESSDEFINITION_) references JBPM_PROCESSDEFINITION
+alter table JBPM_TASK add constraint FK_TASK_STARTST foreign key (STARTSTATE_) references JBPM_NODE
+alter table JBPM_TASK add constraint FK_TASK_TASKMGTDEF foreign key (TASKMGMTDEFINITION_) references JBPM_MODULEDEFINITION
+alter table JBPM_TASK add constraint FK_TASK_SWIMLANE foreign key (SWIMLANE_) references JBPM_SWIMLANE
+alter table JBPM_TASKACTORPOOL add constraint FK_TSKACTPOL_PLACT foreign key (POOLEDACTOR_) references JBPM_POOLEDACTOR
+alter table JBPM_TASKACTORPOOL add constraint FK_TASKACTPL_TSKI foreign key (TASKINSTANCE_) references JBPM_TASKINSTANCE
+alter table JBPM_TASKCONTROLLER add constraint FK_TSKCTRL_DELEG foreign key (TASKCONTROLLERDELEGATION_) references JBPM_DELEGATION
+create index IDX_TASKINST_TOKN on JBPM_TASKINSTANCE (TOKEN_)
+create index IDX_TASKINST_TSK on JBPM_TASKINSTANCE (TASK_, PROCINST_)
+create index IDX_TSKINST_TMINST on JBPM_TASKINSTANCE (TASKMGMTINSTANCE_)
+create index IDX_TSKINST_SLINST on JBPM_TASKINSTANCE (SWIMLANINSTANCE_)
+create index IDX_TASK_ACTORID on JBPM_TASKINSTANCE (ACTORID_)
+alter table JBPM_TASKINSTANCE add constraint FK_TSKINS_PRCINS foreign key (PROCINST_) references JBPM_PROCESSINSTANCE
+alter table JBPM_TASKINSTANCE add constraint FK_TASKINST_TMINST foreign key (TASKMGMTINSTANCE_) references JBPM_MODULEINSTANCE
+alter table JBPM_TASKINSTANCE add constraint FK_TASKINST_TOKEN foreign key (TOKEN_) references JBPM_TOKEN
+alter table JBPM_TASKINSTANCE add constraint FK_TASKINST_SLINST foreign key (SWIMLANINSTANCE_) references JBPM_SWIMLANEINSTANCE
+alter table JBPM_TASKINSTANCE add constraint FK_TASKINST_TASK foreign key (TASK_) references JBPM_TASK
+create index IDX_TOKEN_PROCIN on JBPM_TOKEN (PROCESSINSTANCE_)
+create index IDX_TOKEN_SUBPI on JBPM_TOKEN (SUBPROCESSINSTANCE_)
+create index IDX_TOKEN_NODE on JBPM_TOKEN (NODE_)
+create index IDX_TOKEN_PARENT on JBPM_TOKEN (PARENT_)
+alter table JBPM_TOKEN add constraint FK_TOKEN_PARENT foreign key (PARENT_) references JBPM_TOKEN
+alter table JBPM_TOKEN add constraint FK_TOKEN_NODE foreign key (NODE_) references JBPM_NODE
+alter table JBPM_TOKEN add constraint FK_TOKEN_PROCINST foreign key (PROCESSINSTANCE_) references JBPM_PROCESSINSTANCE
+alter table JBPM_TOKEN add constraint FK_TOKEN_SUBPI foreign key (SUBPROCESSINSTANCE_) references JBPM_PROCESSINSTANCE
+create index IDX_TKVARMAP_CTXT on JBPM_TOKENVARIABLEMAP (CONTEXTINSTANCE_)
+create index IDX_TKVVARMP_TOKEN on JBPM_TOKENVARIABLEMAP (TOKEN_)
+alter table JBPM_TOKENVARIABLEMAP add constraint FK_TKVARMAP_CTXT foreign key (CONTEXTINSTANCE_) references JBPM_MODULEINSTANCE
+alter table JBPM_TOKENVARIABLEMAP add constraint FK_TKVARMAP_TOKEN foreign key (TOKEN_) references JBPM_TOKEN
+create index IDX_TRANSIT_TO on JBPM_TRANSITION (TO_)
+create index IDX_TRANSIT_FROM on JBPM_TRANSITION (FROM_)
+create index IDX_TRANS_PROCDEF on JBPM_TRANSITION (PROCESSDEFINITION_)
+alter table JBPM_TRANSITION add constraint FK_TRANSITION_TO foreign key (TO_) references JBPM_NODE
+alter table JBPM_TRANSITION add constraint FK_TRANS_PROCDEF foreign key (PROCESSDEFINITION_) references JBPM_PROCESSDEFINITION
+alter table JBPM_TRANSITION add constraint FK_TRANSITION_FROM foreign key (FROM_) references JBPM_NODE
+alter table JBPM_VARIABLEACCESS add constraint FK_VARACC_TSKCTRL foreign key (TASKCONTROLLER_) references JBPM_TASKCONTROLLER
+alter table JBPM_VARIABLEACCESS add constraint FK_VARACC_SCRIPT foreign key (SCRIPT_) references JBPM_ACTION
+alter table JBPM_VARIABLEACCESS add constraint FK_VARACC_PROCST foreign key (PROCESSSTATE_) references JBPM_NODE
+create index IDX_VARINST_TKVARMP on JBPM_VARIABLEINSTANCE (TOKENVARIABLEMAP_)
+create index IDX_VARINST_PRCINS on JBPM_VARIABLEINSTANCE (PROCESSINSTANCE_)
+create index IDX_VARINST_TK on JBPM_VARIABLEINSTANCE (TOKEN_)
+alter table JBPM_VARIABLEINSTANCE add constraint FK_VARINST_TK foreign key (TOKEN_) references JBPM_TOKEN
+alter table JBPM_VARIABLEINSTANCE add constraint FK_VARINST_TKVARMP foreign key (TOKENVARIABLEMAP_) references JBPM_TOKENVARIABLEMAP
+alter table JBPM_VARIABLEINSTANCE add constraint FK_VARINST_PRCINST foreign key (PROCESSINSTANCE_) references JBPM_PROCESSINSTANCE
+alter table JBPM_VARIABLEINSTANCE add constraint FK_VAR_TSKINST foreign key (TASKINSTANCE_) references JBPM_TASKINSTANCE
+alter table JBPM_VARIABLEINSTANCE add constraint FK_BYTEINST_ARRAY foreign key (BYTEARRAYVALUE_) references JBPM_BYTEARRAY
+create generator hibernate_sequence
Modified: labs/jbossesb/workspace/mlittle/legstar/product/services/jbpm/src/main/resources/jbpm-sql/jbpm.jpdl.mckoi.sql
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/services/jbpm/src/main/resources/jbpm-sql/jbpm.jpdl.mckoi.sql 2009-01-21 14:47:17 UTC (rev 24849)
+++ labs/jbossesb/workspace/mlittle/legstar/product/services/jbpm/src/main/resources/jbpm-sql/jbpm.jpdl.mckoi.sql 2009-01-21 15:38:08 UTC (rev 24850)
@@ -1,168 +1,168 @@
-create table JBPM_ACTION (ID_ bigint not null, class char(1) not null, NAME_ varchar(255), ISPROPAGATIONALLOWED_ bit, ACTIONEXPRESSION_ varchar(255), ISASYNC_ bit, REFERENCEDACTION_ bigint, ACTIONDELEGATION_ bigint, EVENT_ bigint, PROCESSDEFINITION_ bigint, EXPRESSION_ varchar(4000), TIMERNAME_ varchar(255), DUEDATE_ varchar(255), REPEAT_ varchar(255), TRANSITIONNAME_ varchar(255), TIMERACTION_ bigint, EVENTINDEX_ integer, EXCEPTIONHANDLER_ bigint, EXCEPTIONHANDLERINDEX_ integer, primary key (ID_));
-create table JBPM_BYTEARRAY (ID_ bigint not null, NAME_ varchar(255), FILEDEFINITION_ bigint, primary key (ID_));
-create table JBPM_BYTEBLOCK (PROCESSFILE_ bigint not null, BYTES_ varbinary, INDEX_ integer not null, primary key (PROCESSFILE_, INDEX_));
-create table JBPM_COMMENT (ID_ bigint not null, VERSION_ integer not null, ACTORID_ varchar(255), TIME_ timestamp, MESSAGE_ varchar(4000), TOKEN_ bigint, TASKINSTANCE_ bigint, TOKENINDEX_ integer, TASKINSTANCEINDEX_ integer, primary key (ID_));
-create table JBPM_DECISIONCONDITIONS (DECISION_ bigint not null, TRANSITIONNAME_ varchar(255), EXPRESSION_ varchar(255), INDEX_ integer not null, primary key (DECISION_, INDEX_));
-create table JBPM_DELEGATION (ID_ bigint not null, CLASSNAME_ varchar(4000), CONFIGURATION_ varchar(4000), CONFIGTYPE_ varchar(255), PROCESSDEFINITION_ bigint, primary key (ID_));
-create table JBPM_EVENT (ID_ bigint not null, EVENTTYPE_ varchar(255), TYPE_ char(1), GRAPHELEMENT_ bigint, PROCESSDEFINITION_ bigint, NODE_ bigint, TRANSITION_ bigint, TASK_ bigint, primary key (ID_));
-create table JBPM_EXCEPTIONHANDLER (ID_ bigint not null, EXCEPTIONCLASSNAME_ varchar(4000), TYPE_ char(1), GRAPHELEMENT_ bigint, PROCESSDEFINITION_ bigint, GRAPHELEMENTINDEX_ integer, NODE_ bigint, TRANSITION_ bigint, TASK_ bigint, primary key (ID_));
-create table JBPM_ID_GROUP (ID_ bigint not null, CLASS_ char(1) not null, NAME_ varchar(255), TYPE_ varchar(255), PARENT_ bigint, primary key (ID_));
-create table JBPM_ID_MEMBERSHIP (ID_ bigint not null, CLASS_ char(1) not null, NAME_ varchar(255), ROLE_ varchar(255), USER_ bigint, GROUP_ bigint, primary key (ID_));
-create table JBPM_ID_PERMISSIONS (ENTITY_ bigint not null, CLASS_ varchar(255), NAME_ varchar(255), ACTION_ varchar(255));
-create table JBPM_ID_USER (ID_ bigint not null, CLASS_ char(1) not null, NAME_ varchar(255), EMAIL_ varchar(255), PASSWORD_ varchar(255), primary key (ID_));
-create table JBPM_JOB (ID_ bigint not null, CLASS_ char(1) not null, VERSION_ integer not null, DUEDATE_ timestamp, PROCESSINSTANCE_ bigint, TOKEN_ bigint, TASKINSTANCE_ bigint, ISSUSPENDED_ bit, ISEXCLUSIVE_ bit, LOCKOWNER_ varchar(255), LOCKTIME_ timestamp, EXCEPTION_ varchar(4000), RETRIES_ integer, NAME_ varchar(255), REPEAT_ varchar(255), TRANSITIONNAME_ varchar(255), ACTION_ bigint, GRAPHELEMENTTYPE_ varchar(255), GRAPHELEMENT_ bigint, NODE_ bigint, primary key (ID_));
-create table JBPM_LOG (ID_ bigint not null, CLASS_ char(1) not null, INDEX_ integer, DATE_ timestamp, TOKEN_ bigint, PARENT_ bigint, MESSAGE_ varchar(4000), EXCEPTION_ varchar(4000), ACTION_ bigint, NODE_ bigint, ENTER_ timestamp, LEAVE_ timestamp, DURATION_ bigint, NEWLONGVALUE_ bigint, TRANSITION_ bigint, CHILD_ bigint, SOURCENODE_ bigint, DESTINATIONNODE_ bigint, VARIABLEINSTANCE_ bigint, OLDBYTEARRAY_ bigint, NEWBYTEARRAY_ bigint, OLDDATEVALUE_ timestamp, NEWDATEVALUE_ timestamp, OLDDOUBLEVALUE_ double, NEWDOUBLEVALUE_ double, OLDLONGIDCLASS_ varchar(255), OLDLONGIDVALUE_ bigint, NEWLONGIDCLASS_ varchar(255), NEWLONGIDVALUE_ bigint, OLDSTRINGIDCLASS_ varchar(255), OLDSTRINGIDVALUE_ varchar(255), NEWSTRINGIDCLASS_ varchar(255), NEWSTRINGIDVALUE_ varchar(255), OLDLONGVALUE_ bigint, OLDSTRINGVALUE_ varchar(4000), NEWSTRINGVALUE_ varchar(4000), TASKINSTANCE_ bigint, TASKACTORID_ varchar(255), TASKOLDACTORID_ varchar(255), SWIMLANEINSTANCE_ bigint, primary key (ID_));
-create table JBPM_MODULEDEFINITION (ID_ bigint not null, CLASS_ char(1) not null, NAME_ varchar(4000), PROCESSDEFINITION_ bigint, STARTTASK_ bigint, primary key (ID_));
-create table JBPM_MODULEINSTANCE (ID_ bigint not null, CLASS_ char(1) not null, VERSION_ integer not null, PROCESSINSTANCE_ bigint, TASKMGMTDEFINITION_ bigint, NAME_ varchar(255), primary key (ID_));
-create table JBPM_NODE (ID_ bigint not null, CLASS_ char(1) not null, NAME_ varchar(255), DESCRIPTION_ varchar(4000), PROCESSDEFINITION_ bigint, ISASYNC_ bit, ISASYNCEXCL_ bit, ACTION_ bigint, SUPERSTATE_ bigint, SUBPROCNAME_ varchar(255), SUBPROCESSDEFINITION_ bigint, DECISIONEXPRESSION_ varchar(255), DECISIONDELEGATION bigint, SCRIPT_ bigint, SIGNAL_ integer, CREATETASKS_ bit, ENDTASKS_ bit, NODECOLLECTIONINDEX_ integer, primary key (ID_));
-create table JBPM_POOLEDACTOR (ID_ bigint not null, VERSION_ integer not null, ACTORID_ varchar(255), SWIMLANEINSTANCE_ bigint, primary key (ID_));
-create table JBPM_PROCESSDEFINITION (ID_ bigint not null, CLASS_ char(1) not null, NAME_ varchar(255), DESCRIPTION_ varchar(4000), VERSION_ integer, ISTERMINATIONIMPLICIT_ bit, STARTSTATE_ bigint, primary key (ID_));
-create table JBPM_PROCESSINSTANCE (ID_ bigint not null, VERSION_ integer not null, KEY_ varchar(255), START_ timestamp, END_ timestamp, ISSUSPENDED_ bit, PROCESSDEFINITION_ bigint, ROOTTOKEN_ bigint, SUPERPROCESSTOKEN_ bigint, primary key (ID_));
-create table JBPM_RUNTIMEACTION (ID_ bigint not null, VERSION_ integer not null, EVENTTYPE_ varchar(255), TYPE_ char(1), GRAPHELEMENT_ bigint, PROCESSINSTANCE_ bigint, ACTION_ bigint, PROCESSINSTANCEINDEX_ integer, primary key (ID_));
-create table JBPM_SWIMLANE (ID_ bigint not null, NAME_ varchar(255), ACTORIDEXPRESSION_ varchar(255), POOLEDACTORSEXPRESSION_ varchar(255), ASSIGNMENTDELEGATION_ bigint, TASKMGMTDEFINITION_ bigint, primary key (ID_));
-create table JBPM_SWIMLANEINSTANCE (ID_ bigint not null, VERSION_ integer not null, NAME_ varchar(255), ACTORID_ varchar(255), SWIMLANE_ bigint, TASKMGMTINSTANCE_ bigint, primary key (ID_));
-create table JBPM_TASK (ID_ bigint not null, NAME_ varchar(255), DESCRIPTION_ varchar(4000), PROCESSDEFINITION_ bigint, ISBLOCKING_ bit, ISSIGNALLING_ bit, CONDITION_ varchar(255), DUEDATE_ varchar(255), PRIORITY_ integer, ACTORIDEXPRESSION_ varchar(255), POOLEDACTORSEXPRESSION_ varchar(255), TASKMGMTDEFINITION_ bigint, TASKNODE_ bigint, STARTSTATE_ bigint, ASSIGNMENTDELEGATION_ bigint, SWIMLANE_ bigint, TASKCONTROLLER_ bigint, primary key (ID_));
-create table JBPM_TASKACTORPOOL (TASKINSTANCE_ bigint not null, POOLEDACTOR_ bigint not null, primary key (TASKINSTANCE_, POOLEDACTOR_));
-create table JBPM_TASKCONTROLLER (ID_ bigint not null, TASKCONTROLLERDELEGATION_ bigint, primary key (ID_));
-create table JBPM_TASKINSTANCE (ID_ bigint not null, CLASS_ char(1) not null, VERSION_ integer not null, NAME_ varchar(255), DESCRIPTION_ varchar(4000), ACTORID_ varchar(255), CREATE_ timestamp, START_ timestamp, END_ timestamp, DUEDATE_ timestamp, PRIORITY_ integer, ISCANCELLED_ bit, ISSUSPENDED_ bit, ISOPEN_ bit, ISSIGNALLING_ bit, ISBLOCKING_ bit, TASK_ bigint, TOKEN_ bigint, PROCINST_ bigint, SWIMLANINSTANCE_ bigint, TASKMGMTINSTANCE_ bigint, primary key (ID_));
-create table JBPM_TOKEN (ID_ bigint not null, VERSION_ integer not null, NAME_ varchar(255), START_ timestamp, END_ timestamp, NODEENTER_ timestamp, NEXTLOGINDEX_ integer, ISABLETOREACTIVATEPARENT_ bit, ISTERMINATIONIMPLICIT_ bit, ISSUSPENDED_ bit, LOCK_ varchar(255), NODE_ bigint, PROCESSINSTANCE_ bigint, PARENT_ bigint, SUBPROCESSINSTANCE_ bigint, primary key (ID_));
-create table JBPM_TOKENVARIABLEMAP (ID_ bigint not null, VERSION_ integer not null, TOKEN_ bigint, CONTEXTINSTANCE_ bigint, primary key (ID_));
-create table JBPM_TRANSITION (ID_ bigint not null, NAME_ varchar(255), DESCRIPTION_ varchar(4000), PROCESSDEFINITION_ bigint, FROM_ bigint, TO_ bigint, CONDITION_ varchar(255), FROMINDEX_ integer, primary key (ID_));
-create table JBPM_VARIABLEACCESS (ID_ bigint not null, VARIABLENAME_ varchar(255), ACCESS_ varchar(255), MAPPEDNAME_ varchar(255), SCRIPT_ bigint, PROCESSSTATE_ bigint, TASKCONTROLLER_ bigint, INDEX_ integer, primary key (ID_));
-create table JBPM_VARIABLEINSTANCE (ID_ bigint not null, CLASS_ char(1) not null, VERSION_ integer not null, NAME_ varchar(255), CONVERTER_ char(1), TOKEN_ bigint, TOKENVARIABLEMAP_ bigint, PROCESSINSTANCE_ bigint, BYTEARRAYVALUE_ bigint, DATEVALUE_ timestamp, DOUBLEVALUE_ double, LONGIDCLASS_ varchar(255), LONGVALUE_ bigint, STRINGIDCLASS_ varchar(255), STRINGVALUE_ varchar(4000), TASKINSTANCE_ bigint, primary key (ID_));
-create index IDX_ACTION_EVENT on JBPM_ACTION (EVENT_);
-create index IDX_ACTION_ACTNDL on JBPM_ACTION (ACTIONDELEGATION_);
-create index IDX_ACTION_PROCDF on JBPM_ACTION (PROCESSDEFINITION_);
-alter table JBPM_ACTION add constraint FK_ACTION_EVENT foreign key (EVENT_) references JBPM_EVENT;
-alter table JBPM_ACTION add constraint FK_ACTION_EXPTHDL foreign key (EXCEPTIONHANDLER_) references JBPM_EXCEPTIONHANDLER;
-alter table JBPM_ACTION add constraint FK_ACTION_PROCDEF foreign key (PROCESSDEFINITION_) references JBPM_PROCESSDEFINITION;
-alter table JBPM_ACTION add constraint FK_CRTETIMERACT_TA foreign key (TIMERACTION_) references JBPM_ACTION;
-alter table JBPM_ACTION add constraint FK_ACTION_ACTNDEL foreign key (ACTIONDELEGATION_) references JBPM_DELEGATION;
-alter table JBPM_ACTION add constraint FK_ACTION_REFACT foreign key (REFERENCEDACTION_) references JBPM_ACTION;
-alter table JBPM_BYTEARRAY add constraint FK_BYTEARR_FILDEF foreign key (FILEDEFINITION_) references JBPM_MODULEDEFINITION;
-alter table JBPM_BYTEBLOCK add constraint FK_BYTEBLOCK_FILE foreign key (PROCESSFILE_) references JBPM_BYTEARRAY;
-create index IDX_COMMENT_TOKEN on JBPM_COMMENT (TOKEN_);
-create index IDX_COMMENT_TSK on JBPM_COMMENT (TASKINSTANCE_);
-alter table JBPM_COMMENT add constraint FK_COMMENT_TOKEN foreign key (TOKEN_) references JBPM_TOKEN;
-alter table JBPM_COMMENT add constraint FK_COMMENT_TSK foreign key (TASKINSTANCE_) references JBPM_TASKINSTANCE;
-alter table JBPM_DECISIONCONDITIONS add constraint FK_DECCOND_DEC foreign key (DECISION_) references JBPM_NODE;
-create index IDX_DELEG_PRCD on JBPM_DELEGATION (PROCESSDEFINITION_);
-alter table JBPM_DELEGATION add constraint FK_DELEGATION_PRCD foreign key (PROCESSDEFINITION_) references JBPM_PROCESSDEFINITION;
-alter table JBPM_EVENT add constraint FK_EVENT_PROCDEF foreign key (PROCESSDEFINITION_) references JBPM_PROCESSDEFINITION;
-alter table JBPM_EVENT add constraint FK_EVENT_NODE foreign key (NODE_) references JBPM_NODE;
-alter table JBPM_EVENT add constraint FK_EVENT_TRANS foreign key (TRANSITION_) references JBPM_TRANSITION;
-alter table JBPM_EVENT add constraint FK_EVENT_TASK foreign key (TASK_) references JBPM_TASK;
-alter table JBPM_ID_GROUP add constraint FK_ID_GRP_PARENT foreign key (PARENT_) references JBPM_ID_GROUP;
-alter table JBPM_ID_MEMBERSHIP add constraint FK_ID_MEMSHIP_GRP foreign key (GROUP_) references JBPM_ID_GROUP;
-alter table JBPM_ID_MEMBERSHIP add constraint FK_ID_MEMSHIP_USR foreign key (USER_) references JBPM_ID_USER;
-create index IDX_JOB_TSKINST on JBPM_JOB (TASKINSTANCE_);
-create index IDX_JOB_PRINST on JBPM_JOB (PROCESSINSTANCE_);
-create index IDX_JOB_TOKEN on JBPM_JOB (TOKEN_);
-alter table JBPM_JOB add constraint FK_JOB_TOKEN foreign key (TOKEN_) references JBPM_TOKEN;
-alter table JBPM_JOB add constraint FK_JOB_NODE foreign key (NODE_) references JBPM_NODE;
-alter table JBPM_JOB add constraint FK_JOB_PRINST foreign key (PROCESSINSTANCE_) references JBPM_PROCESSINSTANCE;
-alter table JBPM_JOB add constraint FK_JOB_ACTION foreign key (ACTION_) references JBPM_ACTION;
-alter table JBPM_JOB add constraint FK_JOB_TSKINST foreign key (TASKINSTANCE_) references JBPM_TASKINSTANCE;
-alter table JBPM_LOG add constraint FK_LOG_SOURCENODE foreign key (SOURCENODE_) references JBPM_NODE;
-alter table JBPM_LOG add constraint FK_LOG_TOKEN foreign key (TOKEN_) references JBPM_TOKEN;
-alter table JBPM_LOG add constraint FK_LOG_OLDBYTES foreign key (OLDBYTEARRAY_) references JBPM_BYTEARRAY;
-alter table JBPM_LOG add constraint FK_LOG_NEWBYTES foreign key (NEWBYTEARRAY_) references JBPM_BYTEARRAY;
-alter table JBPM_LOG add constraint FK_LOG_CHILDTOKEN foreign key (CHILD_) references JBPM_TOKEN;
-alter table JBPM_LOG add constraint FK_LOG_DESTNODE foreign key (DESTINATIONNODE_) references JBPM_NODE;
-alter table JBPM_LOG add constraint FK_LOG_TASKINST foreign key (TASKINSTANCE_) references JBPM_TASKINSTANCE;
-alter table JBPM_LOG add constraint FK_LOG_SWIMINST foreign key (SWIMLANEINSTANCE_) references JBPM_SWIMLANEINSTANCE;
-alter table JBPM_LOG add constraint FK_LOG_PARENT foreign key (PARENT_) references JBPM_LOG;
-alter table JBPM_LOG add constraint FK_LOG_NODE foreign key (NODE_) references JBPM_NODE;
-alter table JBPM_LOG add constraint FK_LOG_ACTION foreign key (ACTION_) references JBPM_ACTION;
-alter table JBPM_LOG add constraint FK_LOG_VARINST foreign key (VARIABLEINSTANCE_) references JBPM_VARIABLEINSTANCE;
-alter table JBPM_LOG add constraint FK_LOG_TRANSITION foreign key (TRANSITION_) references JBPM_TRANSITION;
-create index IDX_MODDEF_PROCDF on JBPM_MODULEDEFINITION (PROCESSDEFINITION_);
-alter table JBPM_MODULEDEFINITION add constraint FK_TSKDEF_START foreign key (STARTTASK_) references JBPM_TASK;
-alter table JBPM_MODULEDEFINITION add constraint FK_MODDEF_PROCDEF foreign key (PROCESSDEFINITION_) references JBPM_PROCESSDEFINITION;
-create index IDX_MODINST_PRINST on JBPM_MODULEINSTANCE (PROCESSINSTANCE_);
-alter table JBPM_MODULEINSTANCE add constraint FK_TASKMGTINST_TMD foreign key (TASKMGMTDEFINITION_) references JBPM_MODULEDEFINITION;
-alter table JBPM_MODULEINSTANCE add constraint FK_MODINST_PRCINST foreign key (PROCESSINSTANCE_) references JBPM_PROCESSINSTANCE;
-create index IDX_PSTATE_SBPRCDEF on JBPM_NODE (SUBPROCESSDEFINITION_);
-create index IDX_NODE_SUPRSTATE on JBPM_NODE (SUPERSTATE_);
-create index IDX_NODE_PROCDEF on JBPM_NODE (PROCESSDEFINITION_);
-create index IDX_NODE_ACTION on JBPM_NODE (ACTION_);
-alter table JBPM_NODE add constraint FK_PROCST_SBPRCDEF foreign key (SUBPROCESSDEFINITION_) references JBPM_PROCESSDEFINITION;
-alter table JBPM_NODE add constraint FK_NODE_PROCDEF foreign key (PROCESSDEFINITION_) references JBPM_PROCESSDEFINITION;
-alter table JBPM_NODE add constraint FK_NODE_SCRIPT foreign key (SCRIPT_) references JBPM_ACTION;
-alter table JBPM_NODE add constraint FK_NODE_ACTION foreign key (ACTION_) references JBPM_ACTION;
-alter table JBPM_NODE add constraint FK_DECISION_DELEG foreign key (DECISIONDELEGATION) references JBPM_DELEGATION;
-alter table JBPM_NODE add constraint FK_NODE_SUPERSTATE foreign key (SUPERSTATE_) references JBPM_NODE;
-create index IDX_PLDACTR_ACTID on JBPM_POOLEDACTOR (ACTORID_);
-create index IDX_TSKINST_SWLANE on JBPM_POOLEDACTOR (SWIMLANEINSTANCE_);
-alter table JBPM_POOLEDACTOR add constraint FK_POOLEDACTOR_SLI foreign key (SWIMLANEINSTANCE_) references JBPM_SWIMLANEINSTANCE;
-create index IDX_PROCDEF_STRTST on JBPM_PROCESSDEFINITION (STARTSTATE_);
-alter table JBPM_PROCESSDEFINITION add constraint FK_PROCDEF_STRTSTA foreign key (STARTSTATE_) references JBPM_NODE;
-create index IDX_PROCIN_ROOTTK on JBPM_PROCESSINSTANCE (ROOTTOKEN_);
-create index IDX_PROCIN_SPROCTK on JBPM_PROCESSINSTANCE (SUPERPROCESSTOKEN_);
-create index IDX_PROCIN_KEY on JBPM_PROCESSINSTANCE (KEY_);
-create index IDX_PROCIN_PROCDEF on JBPM_PROCESSINSTANCE (PROCESSDEFINITION_);
-alter table JBPM_PROCESSINSTANCE add constraint FK_PROCIN_PROCDEF foreign key (PROCESSDEFINITION_) references JBPM_PROCESSDEFINITION;
-alter table JBPM_PROCESSINSTANCE add constraint FK_PROCIN_ROOTTKN foreign key (ROOTTOKEN_) references JBPM_TOKEN;
-alter table JBPM_PROCESSINSTANCE add constraint FK_PROCIN_SPROCTKN foreign key (SUPERPROCESSTOKEN_) references JBPM_TOKEN;
-create index IDX_RTACTN_PRCINST on JBPM_RUNTIMEACTION (PROCESSINSTANCE_);
-create index IDX_RTACTN_ACTION on JBPM_RUNTIMEACTION (ACTION_);
-alter table JBPM_RUNTIMEACTION add constraint FK_RTACTN_PROCINST foreign key (PROCESSINSTANCE_) references JBPM_PROCESSINSTANCE;
-alter table JBPM_RUNTIMEACTION add constraint FK_RTACTN_ACTION foreign key (ACTION_) references JBPM_ACTION;
-alter table JBPM_SWIMLANE add constraint FK_SWL_ASSDEL foreign key (ASSIGNMENTDELEGATION_) references JBPM_DELEGATION;
-alter table JBPM_SWIMLANE add constraint FK_SWL_TSKMGMTDEF foreign key (TASKMGMTDEFINITION_) references JBPM_MODULEDEFINITION;
-create index IDX_SWIMLINST_SL on JBPM_SWIMLANEINSTANCE (SWIMLANE_);
-alter table JBPM_SWIMLANEINSTANCE add constraint FK_SWIMLANEINST_TM foreign key (TASKMGMTINSTANCE_) references JBPM_MODULEINSTANCE;
-alter table JBPM_SWIMLANEINSTANCE add constraint FK_SWIMLANEINST_SL foreign key (SWIMLANE_) references JBPM_SWIMLANE;
-create index IDX_TASK_TSKNODE on JBPM_TASK (TASKNODE_);
-create index IDX_TASK_PROCDEF on JBPM_TASK (PROCESSDEFINITION_);
-create index IDX_TASK_TASKMGTDF on JBPM_TASK (TASKMGMTDEFINITION_);
-alter table JBPM_TASK add constraint FK_TSK_TSKCTRL foreign key (TASKCONTROLLER_) references JBPM_TASKCONTROLLER;
-alter table JBPM_TASK add constraint FK_TASK_ASSDEL foreign key (ASSIGNMENTDELEGATION_) references JBPM_DELEGATION;
-alter table JBPM_TASK add constraint FK_TASK_TASKNODE foreign key (TASKNODE_) references JBPM_NODE;
-alter table JBPM_TASK add constraint FK_TASK_PROCDEF foreign key (PROCESSDEFINITION_) references JBPM_PROCESSDEFINITION;
-alter table JBPM_TASK add constraint FK_TASK_STARTST foreign key (STARTSTATE_) references JBPM_NODE;
-alter table JBPM_TASK add constraint FK_TASK_TASKMGTDEF foreign key (TASKMGMTDEFINITION_) references JBPM_MODULEDEFINITION;
-alter table JBPM_TASK add constraint FK_TASK_SWIMLANE foreign key (SWIMLANE_) references JBPM_SWIMLANE;
-alter table JBPM_TASKACTORPOOL add constraint FK_TSKACTPOL_PLACT foreign key (POOLEDACTOR_) references JBPM_POOLEDACTOR;
-alter table JBPM_TASKACTORPOOL add constraint FK_TASKACTPL_TSKI foreign key (TASKINSTANCE_) references JBPM_TASKINSTANCE;
-alter table JBPM_TASKCONTROLLER add constraint FK_TSKCTRL_DELEG foreign key (TASKCONTROLLERDELEGATION_) references JBPM_DELEGATION;
-create index IDX_TASKINST_TOKN on JBPM_TASKINSTANCE (TOKEN_);
-create index IDX_TASKINST_TSK on JBPM_TASKINSTANCE (TASK_, PROCINST_);
-create index IDX_TSKINST_TMINST on JBPM_TASKINSTANCE (TASKMGMTINSTANCE_);
-create index IDX_TSKINST_SLINST on JBPM_TASKINSTANCE (SWIMLANINSTANCE_);
-create index IDX_TASK_ACTORID on JBPM_TASKINSTANCE (ACTORID_);
-alter table JBPM_TASKINSTANCE add constraint FK_TSKINS_PRCINS foreign key (PROCINST_) references JBPM_PROCESSINSTANCE;
-alter table JBPM_TASKINSTANCE add constraint FK_TASKINST_TMINST foreign key (TASKMGMTINSTANCE_) references JBPM_MODULEINSTANCE;
-alter table JBPM_TASKINSTANCE add constraint FK_TASKINST_TOKEN foreign key (TOKEN_) references JBPM_TOKEN;
-alter table JBPM_TASKINSTANCE add constraint FK_TASKINST_SLINST foreign key (SWIMLANINSTANCE_) references JBPM_SWIMLANEINSTANCE;
-alter table JBPM_TASKINSTANCE add constraint FK_TASKINST_TASK foreign key (TASK_) references JBPM_TASK;
-create index IDX_TOKEN_PROCIN on JBPM_TOKEN (PROCESSINSTANCE_);
-create index IDX_TOKEN_SUBPI on JBPM_TOKEN (SUBPROCESSINSTANCE_);
-create index IDX_TOKEN_NODE on JBPM_TOKEN (NODE_);
-create index IDX_TOKEN_PARENT on JBPM_TOKEN (PARENT_);
-alter table JBPM_TOKEN add constraint FK_TOKEN_PARENT foreign key (PARENT_) references JBPM_TOKEN;
-alter table JBPM_TOKEN add constraint FK_TOKEN_NODE foreign key (NODE_) references JBPM_NODE;
-alter table JBPM_TOKEN add constraint FK_TOKEN_PROCINST foreign key (PROCESSINSTANCE_) references JBPM_PROCESSINSTANCE;
-alter table JBPM_TOKEN add constraint FK_TOKEN_SUBPI foreign key (SUBPROCESSINSTANCE_) references JBPM_PROCESSINSTANCE;
-create index IDX_TKVARMAP_CTXT on JBPM_TOKENVARIABLEMAP (CONTEXTINSTANCE_);
-create index IDX_TKVVARMP_TOKEN on JBPM_TOKENVARIABLEMAP (TOKEN_);
-alter table JBPM_TOKENVARIABLEMAP add constraint FK_TKVARMAP_CTXT foreign key (CONTEXTINSTANCE_) references JBPM_MODULEINSTANCE;
-alter table JBPM_TOKENVARIABLEMAP add constraint FK_TKVARMAP_TOKEN foreign key (TOKEN_) references JBPM_TOKEN;
-create index IDX_TRANSIT_TO on JBPM_TRANSITION (TO_);
-create index IDX_TRANSIT_FROM on JBPM_TRANSITION (FROM_);
-create index IDX_TRANS_PROCDEF on JBPM_TRANSITION (PROCESSDEFINITION_);
-alter table JBPM_TRANSITION add constraint FK_TRANSITION_TO foreign key (TO_) references JBPM_NODE;
-alter table JBPM_TRANSITION add constraint FK_TRANS_PROCDEF foreign key (PROCESSDEFINITION_) references JBPM_PROCESSDEFINITION;
-alter table JBPM_TRANSITION add constraint FK_TRANSITION_FROM foreign key (FROM_) references JBPM_NODE;
-alter table JBPM_VARIABLEACCESS add constraint FK_VARACC_TSKCTRL foreign key (TASKCONTROLLER_) references JBPM_TASKCONTROLLER;
-alter table JBPM_VARIABLEACCESS add constraint FK_VARACC_SCRIPT foreign key (SCRIPT_) references JBPM_ACTION;
-alter table JBPM_VARIABLEACCESS add constraint FK_VARACC_PROCST foreign key (PROCESSSTATE_) references JBPM_NODE;
-create index IDX_VARINST_TKVARMP on JBPM_VARIABLEINSTANCE (TOKENVARIABLEMAP_);
-create index IDX_VARINST_PRCINS on JBPM_VARIABLEINSTANCE (PROCESSINSTANCE_);
-create index IDX_VARINST_TK on JBPM_VARIABLEINSTANCE (TOKEN_);
-alter table JBPM_VARIABLEINSTANCE add constraint FK_VARINST_TK foreign key (TOKEN_) references JBPM_TOKEN;
-alter table JBPM_VARIABLEINSTANCE add constraint FK_VARINST_TKVARMP foreign key (TOKENVARIABLEMAP_) references JBPM_TOKENVARIABLEMAP;
-alter table JBPM_VARIABLEINSTANCE add constraint FK_VARINST_PRCINST foreign key (PROCESSINSTANCE_) references JBPM_PROCESSINSTANCE;
-alter table JBPM_VARIABLEINSTANCE add constraint FK_VAR_TSKINST foreign key (TASKINSTANCE_) references JBPM_TASKINSTANCE;
-alter table JBPM_VARIABLEINSTANCE add constraint FK_BYTEINST_ARRAY foreign key (BYTEARRAYVALUE_) references JBPM_BYTEARRAY;
-create sequence hibernate_sequence;
+create table JBPM_ACTION (ID_ bigint not null, class char(1) not null, NAME_ varchar(255), ISPROPAGATIONALLOWED_ bit, ACTIONEXPRESSION_ varchar(255), ISASYNC_ bit, REFERENCEDACTION_ bigint, ACTIONDELEGATION_ bigint, EVENT_ bigint, PROCESSDEFINITION_ bigint, EXPRESSION_ clob(4000), TIMERNAME_ varchar(255), DUEDATE_ varchar(255), REPEAT_ varchar(255), TRANSITIONNAME_ varchar(255), TIMERACTION_ bigint, EVENTINDEX_ integer, EXCEPTIONHANDLER_ bigint, EXCEPTIONHANDLERINDEX_ integer, primary key (ID_))
+create table JBPM_BYTEARRAY (ID_ bigint not null, NAME_ varchar(255), FILEDEFINITION_ bigint, primary key (ID_))
+create table JBPM_BYTEBLOCK (PROCESSFILE_ bigint not null, BYTES_ varbinary, INDEX_ integer not null, primary key (PROCESSFILE_, INDEX_))
+create table JBPM_COMMENT (ID_ bigint not null, VERSION_ integer not null, ACTORID_ varchar(255), TIME_ timestamp, MESSAGE_ clob(4000), TOKEN_ bigint, TASKINSTANCE_ bigint, TOKENINDEX_ integer, TASKINSTANCEINDEX_ integer, primary key (ID_))
+create table JBPM_DECISIONCONDITIONS (DECISION_ bigint not null, TRANSITIONNAME_ varchar(255), EXPRESSION_ varchar(255), INDEX_ integer not null, primary key (DECISION_, INDEX_))
+create table JBPM_DELEGATION (ID_ bigint not null, CLASSNAME_ clob(4000), CONFIGURATION_ clob(4000), CONFIGTYPE_ varchar(255), PROCESSDEFINITION_ bigint, primary key (ID_))
+create table JBPM_EVENT (ID_ bigint not null, EVENTTYPE_ varchar(255), TYPE_ char(1), GRAPHELEMENT_ bigint, PROCESSDEFINITION_ bigint, NODE_ bigint, TRANSITION_ bigint, TASK_ bigint, primary key (ID_))
+create table JBPM_EXCEPTIONHANDLER (ID_ bigint not null, EXCEPTIONCLASSNAME_ clob(4000), TYPE_ char(1), GRAPHELEMENT_ bigint, PROCESSDEFINITION_ bigint, GRAPHELEMENTINDEX_ integer, NODE_ bigint, TRANSITION_ bigint, TASK_ bigint, primary key (ID_))
+create table JBPM_ID_GROUP (ID_ bigint not null, CLASS_ char(1) not null, NAME_ varchar(255), TYPE_ varchar(255), PARENT_ bigint, primary key (ID_))
+create table JBPM_ID_MEMBERSHIP (ID_ bigint not null, CLASS_ char(1) not null, NAME_ varchar(255), ROLE_ varchar(255), USER_ bigint, GROUP_ bigint, primary key (ID_))
+create table JBPM_ID_PERMISSIONS (ENTITY_ bigint not null, CLASS_ varchar(255), NAME_ varchar(255), ACTION_ varchar(255))
+create table JBPM_ID_USER (ID_ bigint not null, CLASS_ char(1) not null, NAME_ varchar(255), EMAIL_ varchar(255), PASSWORD_ varchar(255), primary key (ID_))
+create table JBPM_JOB (ID_ bigint not null, CLASS_ char(1) not null, VERSION_ integer not null, DUEDATE_ timestamp, PROCESSINSTANCE_ bigint, TOKEN_ bigint, TASKINSTANCE_ bigint, ISSUSPENDED_ bit, ISEXCLUSIVE_ bit, LOCKOWNER_ varchar(255), LOCKTIME_ timestamp, EXCEPTION_ clob(4000), RETRIES_ integer, NAME_ varchar(255), REPEAT_ varchar(255), TRANSITIONNAME_ varchar(255), ACTION_ bigint, GRAPHELEMENTTYPE_ varchar(255), GRAPHELEMENT_ bigint, NODE_ bigint, primary key (ID_))
+create table JBPM_LOG (ID_ bigint not null, CLASS_ char(1) not null, INDEX_ integer, DATE_ timestamp, TOKEN_ bigint, PARENT_ bigint, MESSAGE_ clob(4000), EXCEPTION_ clob(4000), ACTION_ bigint, NODE_ bigint, ENTER_ timestamp, LEAVE_ timestamp, DURATION_ bigint, NEWLONGVALUE_ bigint, TRANSITION_ bigint, CHILD_ bigint, SOURCENODE_ bigint, DESTINATIONNODE_ bigint, VARIABLEINSTANCE_ bigint, OLDBYTEARRAY_ bigint, NEWBYTEARRAY_ bigint, OLDDATEVALUE_ timestamp, NEWDATEVALUE_ timestamp, OLDDOUBLEVALUE_ double, NEWDOUBLEVALUE_ double, OLDLONGIDCLASS_ varchar(255), OLDLONGIDVALUE_ bigint, NEWLONGIDCLASS_ varchar(255), NEWLONGIDVALUE_ bigint, OLDSTRINGIDCLASS_ varchar(255), OLDSTRINGIDVALUE_ varchar(255), NEWSTRINGIDCLASS_ varchar(255), NEWSTRINGIDVALUE_ varchar(255), OLDLONGVALUE_ bigint, OLDSTRINGVALUE_ clob(4000), NEWSTRINGVALUE_ clob(4000), TASKINSTANCE_ bigint, TASKACTORID_ varchar(255), TASKOLDACTORID_ varchar(255), SWIMLANEINSTANCE_ bigint, primary key (ID_))
+create table JBPM_MODULEDEFINITION (ID_ bigint not null, CLASS_ char(1) not null, NAME_ varchar(4000), PROCESSDEFINITION_ bigint, STARTTASK_ bigint, primary key (ID_))
+create table JBPM_MODULEINSTANCE (ID_ bigint not null, CLASS_ char(1) not null, VERSION_ integer not null, PROCESSINSTANCE_ bigint, TASKMGMTDEFINITION_ bigint, NAME_ varchar(255), primary key (ID_))
+create table JBPM_NODE (ID_ bigint not null, CLASS_ char(1) not null, NAME_ varchar(255), DESCRIPTION_ clob(4000), PROCESSDEFINITION_ bigint, ISASYNC_ bit, ISASYNCEXCL_ bit, ACTION_ bigint, SUPERSTATE_ bigint, SUBPROCNAME_ varchar(255), SUBPROCESSDEFINITION_ bigint, DECISIONEXPRESSION_ varchar(255), DECISIONDELEGATION bigint, SCRIPT_ bigint, PARENTLOCKMODE_ varchar(255), SIGNAL_ integer, CREATETASKS_ bit, ENDTASKS_ bit, NODECOLLECTIONINDEX_ integer, primary key (ID_))
+create table JBPM_POOLEDACTOR (ID_ bigint not null, VERSION_ integer not null, ACTORID_ varchar(255), SWIMLANEINSTANCE_ bigint, primary key (ID_))
+create table JBPM_PROCESSDEFINITION (ID_ bigint not null, CLASS_ char(1) not null, NAME_ varchar(255), DESCRIPTION_ clob(4000), VERSION_ integer, ISTERMINATIONIMPLICIT_ bit, STARTSTATE_ bigint, primary key (ID_))
+create table JBPM_PROCESSINSTANCE (ID_ bigint not null, VERSION_ integer not null, KEY_ varchar(255), START_ timestamp, END_ timestamp, ISSUSPENDED_ bit, PROCESSDEFINITION_ bigint, ROOTTOKEN_ bigint, SUPERPROCESSTOKEN_ bigint, primary key (ID_))
+create table JBPM_RUNTIMEACTION (ID_ bigint not null, VERSION_ integer not null, EVENTTYPE_ varchar(255), TYPE_ char(1), GRAPHELEMENT_ bigint, PROCESSINSTANCE_ bigint, ACTION_ bigint, PROCESSINSTANCEINDEX_ integer, primary key (ID_))
+create table JBPM_SWIMLANE (ID_ bigint not null, NAME_ varchar(255), ACTORIDEXPRESSION_ varchar(255), POOLEDACTORSEXPRESSION_ varchar(255), ASSIGNMENTDELEGATION_ bigint, TASKMGMTDEFINITION_ bigint, primary key (ID_))
+create table JBPM_SWIMLANEINSTANCE (ID_ bigint not null, VERSION_ integer not null, NAME_ varchar(255), ACTORID_ varchar(255), SWIMLANE_ bigint, TASKMGMTINSTANCE_ bigint, primary key (ID_))
+create table JBPM_TASK (ID_ bigint not null, NAME_ varchar(255), DESCRIPTION_ clob(4000), PROCESSDEFINITION_ bigint, ISBLOCKING_ bit, ISSIGNALLING_ bit, CONDITION_ varchar(255), DUEDATE_ varchar(255), PRIORITY_ integer, ACTORIDEXPRESSION_ varchar(255), POOLEDACTORSEXPRESSION_ varchar(255), TASKMGMTDEFINITION_ bigint, TASKNODE_ bigint, STARTSTATE_ bigint, ASSIGNMENTDELEGATION_ bigint, SWIMLANE_ bigint, TASKCONTROLLER_ bigint, primary key (ID_))
+create table JBPM_TASKACTORPOOL (TASKINSTANCE_ bigint not null, POOLEDACTOR_ bigint not null, primary key (TASKINSTANCE_, POOLEDACTOR_))
+create table JBPM_TASKCONTROLLER (ID_ bigint not null, TASKCONTROLLERDELEGATION_ bigint, primary key (ID_))
+create table JBPM_TASKINSTANCE (ID_ bigint not null, CLASS_ char(1) not null, VERSION_ integer not null, NAME_ varchar(255), DESCRIPTION_ clob(4000), ACTORID_ varchar(255), CREATE_ timestamp, START_ timestamp, END_ timestamp, DUEDATE_ timestamp, PRIORITY_ integer, ISCANCELLED_ bit, ISSUSPENDED_ bit, ISOPEN_ bit, ISSIGNALLING_ bit, ISBLOCKING_ bit, TASK_ bigint, TOKEN_ bigint, PROCINST_ bigint, SWIMLANINSTANCE_ bigint, TASKMGMTINSTANCE_ bigint, primary key (ID_))
+create table JBPM_TOKEN (ID_ bigint not null, VERSION_ integer not null, NAME_ varchar(255), START_ timestamp, END_ timestamp, NODEENTER_ timestamp, NEXTLOGINDEX_ integer, ISABLETOREACTIVATEPARENT_ bit, ISTERMINATIONIMPLICIT_ bit, ISSUSPENDED_ bit, LOCK_ varchar(255), NODE_ bigint, PROCESSINSTANCE_ bigint, PARENT_ bigint, SUBPROCESSINSTANCE_ bigint, primary key (ID_))
+create table JBPM_TOKENVARIABLEMAP (ID_ bigint not null, VERSION_ integer not null, TOKEN_ bigint, CONTEXTINSTANCE_ bigint, primary key (ID_))
+create table JBPM_TRANSITION (ID_ bigint not null, NAME_ varchar(255), DESCRIPTION_ clob(4000), PROCESSDEFINITION_ bigint, FROM_ bigint, TO_ bigint, CONDITION_ varchar(255), FROMINDEX_ integer, primary key (ID_))
+create table JBPM_VARIABLEACCESS (ID_ bigint not null, VARIABLENAME_ varchar(255), ACCESS_ varchar(255), MAPPEDNAME_ varchar(255), SCRIPT_ bigint, PROCESSSTATE_ bigint, TASKCONTROLLER_ bigint, INDEX_ integer, primary key (ID_))
+create table JBPM_VARIABLEINSTANCE (ID_ bigint not null, CLASS_ char(1) not null, VERSION_ integer not null, NAME_ varchar(255), CONVERTER_ char(1), TOKEN_ bigint, TOKENVARIABLEMAP_ bigint, PROCESSINSTANCE_ bigint, BYTEARRAYVALUE_ bigint, DATEVALUE_ timestamp, DOUBLEVALUE_ double, LONGIDCLASS_ varchar(255), LONGVALUE_ bigint, STRINGIDCLASS_ varchar(255), STRINGVALUE_ varchar(4000), TASKINSTANCE_ bigint, primary key (ID_))
+create index IDX_ACTION_EVENT on JBPM_ACTION (EVENT_)
+create index IDX_ACTION_ACTNDL on JBPM_ACTION (ACTIONDELEGATION_)
+create index IDX_ACTION_PROCDF on JBPM_ACTION (PROCESSDEFINITION_)
+alter table JBPM_ACTION add constraint FK_ACTION_EVENT foreign key (EVENT_) references JBPM_EVENT
+alter table JBPM_ACTION add constraint FK_ACTION_EXPTHDL foreign key (EXCEPTIONHANDLER_) references JBPM_EXCEPTIONHANDLER
+alter table JBPM_ACTION add constraint FK_ACTION_PROCDEF foreign key (PROCESSDEFINITION_) references JBPM_PROCESSDEFINITION
+alter table JBPM_ACTION add constraint FK_CRTETIMERACT_TA foreign key (TIMERACTION_) references JBPM_ACTION
+alter table JBPM_ACTION add constraint FK_ACTION_ACTNDEL foreign key (ACTIONDELEGATION_) references JBPM_DELEGATION
+alter table JBPM_ACTION add constraint FK_ACTION_REFACT foreign key (REFERENCEDACTION_) references JBPM_ACTION
+alter table JBPM_BYTEARRAY add constraint FK_BYTEARR_FILDEF foreign key (FILEDEFINITION_) references JBPM_MODULEDEFINITION
+alter table JBPM_BYTEBLOCK add constraint FK_BYTEBLOCK_FILE foreign key (PROCESSFILE_) references JBPM_BYTEARRAY
+create index IDX_COMMENT_TOKEN on JBPM_COMMENT (TOKEN_)
+create index IDX_COMMENT_TSK on JBPM_COMMENT (TASKINSTANCE_)
+alter table JBPM_COMMENT add constraint FK_COMMENT_TOKEN foreign key (TOKEN_) references JBPM_TOKEN
+alter table JBPM_COMMENT add constraint FK_COMMENT_TSK foreign key (TASKINSTANCE_) references JBPM_TASKINSTANCE
+alter table JBPM_DECISIONCONDITIONS add constraint FK_DECCOND_DEC foreign key (DECISION_) references JBPM_NODE
+create index IDX_DELEG_PRCD on JBPM_DELEGATION (PROCESSDEFINITION_)
+alter table JBPM_DELEGATION add constraint FK_DELEGATION_PRCD foreign key (PROCESSDEFINITION_) references JBPM_PROCESSDEFINITION
+alter table JBPM_EVENT add constraint FK_EVENT_PROCDEF foreign key (PROCESSDEFINITION_) references JBPM_PROCESSDEFINITION
+alter table JBPM_EVENT add constraint FK_EVENT_NODE foreign key (NODE_) references JBPM_NODE
+alter table JBPM_EVENT add constraint FK_EVENT_TRANS foreign key (TRANSITION_) references JBPM_TRANSITION
+alter table JBPM_EVENT add constraint FK_EVENT_TASK foreign key (TASK_) references JBPM_TASK
+alter table JBPM_ID_GROUP add constraint FK_ID_GRP_PARENT foreign key (PARENT_) references JBPM_ID_GROUP
+alter table JBPM_ID_MEMBERSHIP add constraint FK_ID_MEMSHIP_GRP foreign key (GROUP_) references JBPM_ID_GROUP
+alter table JBPM_ID_MEMBERSHIP add constraint FK_ID_MEMSHIP_USR foreign key (USER_) references JBPM_ID_USER
+create index IDX_JOB_TSKINST on JBPM_JOB (TASKINSTANCE_)
+create index IDX_JOB_PRINST on JBPM_JOB (PROCESSINSTANCE_)
+create index IDX_JOB_TOKEN on JBPM_JOB (TOKEN_)
+alter table JBPM_JOB add constraint FK_JOB_TOKEN foreign key (TOKEN_) references JBPM_TOKEN
+alter table JBPM_JOB add constraint FK_JOB_NODE foreign key (NODE_) references JBPM_NODE
+alter table JBPM_JOB add constraint FK_JOB_PRINST foreign key (PROCESSINSTANCE_) references JBPM_PROCESSINSTANCE
+alter table JBPM_JOB add constraint FK_JOB_ACTION foreign key (ACTION_) references JBPM_ACTION
+alter table JBPM_JOB add constraint FK_JOB_TSKINST foreign key (TASKINSTANCE_) references JBPM_TASKINSTANCE
+alter table JBPM_LOG add constraint FK_LOG_SOURCENODE foreign key (SOURCENODE_) references JBPM_NODE
+alter table JBPM_LOG add constraint FK_LOG_TOKEN foreign key (TOKEN_) references JBPM_TOKEN
+alter table JBPM_LOG add constraint FK_LOG_OLDBYTES foreign key (OLDBYTEARRAY_) references JBPM_BYTEARRAY
+alter table JBPM_LOG add constraint FK_LOG_NEWBYTES foreign key (NEWBYTEARRAY_) references JBPM_BYTEARRAY
+alter table JBPM_LOG add constraint FK_LOG_CHILDTOKEN foreign key (CHILD_) references JBPM_TOKEN
+alter table JBPM_LOG add constraint FK_LOG_DESTNODE foreign key (DESTINATIONNODE_) references JBPM_NODE
+alter table JBPM_LOG add constraint FK_LOG_TASKINST foreign key (TASKINSTANCE_) references JBPM_TASKINSTANCE
+alter table JBPM_LOG add constraint FK_LOG_SWIMINST foreign key (SWIMLANEINSTANCE_) references JBPM_SWIMLANEINSTANCE
+alter table JBPM_LOG add constraint FK_LOG_PARENT foreign key (PARENT_) references JBPM_LOG
+alter table JBPM_LOG add constraint FK_LOG_NODE foreign key (NODE_) references JBPM_NODE
+alter table JBPM_LOG add constraint FK_LOG_ACTION foreign key (ACTION_) references JBPM_ACTION
+alter table JBPM_LOG add constraint FK_LOG_VARINST foreign key (VARIABLEINSTANCE_) references JBPM_VARIABLEINSTANCE
+alter table JBPM_LOG add constraint FK_LOG_TRANSITION foreign key (TRANSITION_) references JBPM_TRANSITION
+create index IDX_MODDEF_PROCDF on JBPM_MODULEDEFINITION (PROCESSDEFINITION_)
+alter table JBPM_MODULEDEFINITION add constraint FK_TSKDEF_START foreign key (STARTTASK_) references JBPM_TASK
+alter table JBPM_MODULEDEFINITION add constraint FK_MODDEF_PROCDEF foreign key (PROCESSDEFINITION_) references JBPM_PROCESSDEFINITION
+create index IDX_MODINST_PRINST on JBPM_MODULEINSTANCE (PROCESSINSTANCE_)
+alter table JBPM_MODULEINSTANCE add constraint FK_TASKMGTINST_TMD foreign key (TASKMGMTDEFINITION_) references JBPM_MODULEDEFINITION
+alter table JBPM_MODULEINSTANCE add constraint FK_MODINST_PRCINST foreign key (PROCESSINSTANCE_) references JBPM_PROCESSINSTANCE
+create index IDX_PSTATE_SBPRCDEF on JBPM_NODE (SUBPROCESSDEFINITION_)
+create index IDX_NODE_SUPRSTATE on JBPM_NODE (SUPERSTATE_)
+create index IDX_NODE_PROCDEF on JBPM_NODE (PROCESSDEFINITION_)
+create index IDX_NODE_ACTION on JBPM_NODE (ACTION_)
+alter table JBPM_NODE add constraint FK_PROCST_SBPRCDEF foreign key (SUBPROCESSDEFINITION_) references JBPM_PROCESSDEFINITION
+alter table JBPM_NODE add constraint FK_NODE_PROCDEF foreign key (PROCESSDEFINITION_) references JBPM_PROCESSDEFINITION
+alter table JBPM_NODE add constraint FK_NODE_SCRIPT foreign key (SCRIPT_) references JBPM_ACTION
+alter table JBPM_NODE add constraint FK_NODE_ACTION foreign key (ACTION_) references JBPM_ACTION
+alter table JBPM_NODE add constraint FK_DECISION_DELEG foreign key (DECISIONDELEGATION) references JBPM_DELEGATION
+alter table JBPM_NODE add constraint FK_NODE_SUPERSTATE foreign key (SUPERSTATE_) references JBPM_NODE
+create index IDX_PLDACTR_ACTID on JBPM_POOLEDACTOR (ACTORID_)
+create index IDX_TSKINST_SWLANE on JBPM_POOLEDACTOR (SWIMLANEINSTANCE_)
+alter table JBPM_POOLEDACTOR add constraint FK_POOLEDACTOR_SLI foreign key (SWIMLANEINSTANCE_) references JBPM_SWIMLANEINSTANCE
+create index IDX_PROCDEF_STRTST on JBPM_PROCESSDEFINITION (STARTSTATE_)
+alter table JBPM_PROCESSDEFINITION add constraint FK_PROCDEF_STRTSTA foreign key (STARTSTATE_) references JBPM_NODE
+create index IDX_PROCIN_ROOTTK on JBPM_PROCESSINSTANCE (ROOTTOKEN_)
+create index IDX_PROCIN_SPROCTK on JBPM_PROCESSINSTANCE (SUPERPROCESSTOKEN_)
+create index IDX_PROCIN_KEY on JBPM_PROCESSINSTANCE (KEY_)
+create index IDX_PROCIN_PROCDEF on JBPM_PROCESSINSTANCE (PROCESSDEFINITION_)
+alter table JBPM_PROCESSINSTANCE add constraint FK_PROCIN_PROCDEF foreign key (PROCESSDEFINITION_) references JBPM_PROCESSDEFINITION
+alter table JBPM_PROCESSINSTANCE add constraint FK_PROCIN_ROOTTKN foreign key (ROOTTOKEN_) references JBPM_TOKEN
+alter table JBPM_PROCESSINSTANCE add constraint FK_PROCIN_SPROCTKN foreign key (SUPERPROCESSTOKEN_) references JBPM_TOKEN
+create index IDX_RTACTN_PRCINST on JBPM_RUNTIMEACTION (PROCESSINSTANCE_)
+create index IDX_RTACTN_ACTION on JBPM_RUNTIMEACTION (ACTION_)
+alter table JBPM_RUNTIMEACTION add constraint FK_RTACTN_PROCINST foreign key (PROCESSINSTANCE_) references JBPM_PROCESSINSTANCE
+alter table JBPM_RUNTIMEACTION add constraint FK_RTACTN_ACTION foreign key (ACTION_) references JBPM_ACTION
+alter table JBPM_SWIMLANE add constraint FK_SWL_ASSDEL foreign key (ASSIGNMENTDELEGATION_) references JBPM_DELEGATION
+alter table JBPM_SWIMLANE add constraint FK_SWL_TSKMGMTDEF foreign key (TASKMGMTDEFINITION_) references JBPM_MODULEDEFINITION
+create index IDX_SWIMLINST_SL on JBPM_SWIMLANEINSTANCE (SWIMLANE_)
+alter table JBPM_SWIMLANEINSTANCE add constraint FK_SWIMLANEINST_TM foreign key (TASKMGMTINSTANCE_) references JBPM_MODULEINSTANCE
+alter table JBPM_SWIMLANEINSTANCE add constraint FK_SWIMLANEINST_SL foreign key (SWIMLANE_) references JBPM_SWIMLANE
+create index IDX_TASK_TSKNODE on JBPM_TASK (TASKNODE_)
+create index IDX_TASK_PROCDEF on JBPM_TASK (PROCESSDEFINITION_)
+create index IDX_TASK_TASKMGTDF on JBPM_TASK (TASKMGMTDEFINITION_)
+alter table JBPM_TASK add constraint FK_TSK_TSKCTRL foreign key (TASKCONTROLLER_) references JBPM_TASKCONTROLLER
+alter table JBPM_TASK add constraint FK_TASK_ASSDEL foreign key (ASSIGNMENTDELEGATION_) references JBPM_DELEGATION
+alter table JBPM_TASK add constraint FK_TASK_TASKNODE foreign key (TASKNODE_) references JBPM_NODE
+alter table JBPM_TASK add constraint FK_TASK_PROCDEF foreign key (PROCESSDEFINITION_) references JBPM_PROCESSDEFINITION
+alter table JBPM_TASK add constraint FK_TASK_STARTST foreign key (STARTSTATE_) references JBPM_NODE
+alter table JBPM_TASK add constraint FK_TASK_TASKMGTDEF foreign key (TASKMGMTDEFINITION_) references JBPM_MODULEDEFINITION
+alter table JBPM_TASK add constraint FK_TASK_SWIMLANE foreign key (SWIMLANE_) references JBPM_SWIMLANE
+alter table JBPM_TASKACTORPOOL add constraint FK_TSKACTPOL_PLACT foreign key (POOLEDACTOR_) references JBPM_POOLEDACTOR
+alter table JBPM_TASKACTORPOOL add constraint FK_TASKACTPL_TSKI foreign key (TASKINSTANCE_) references JBPM_TASKINSTANCE
+alter table JBPM_TASKCONTROLLER add constraint FK_TSKCTRL_DELEG foreign key (TASKCONTROLLERDELEGATION_) references JBPM_DELEGATION
+create index IDX_TASKINST_TOKN on JBPM_TASKINSTANCE (TOKEN_)
+create index IDX_TASKINST_TSK on JBPM_TASKINSTANCE (TASK_, PROCINST_)
+create index IDX_TSKINST_TMINST on JBPM_TASKINSTANCE (TASKMGMTINSTANCE_)
+create index IDX_TSKINST_SLINST on JBPM_TASKINSTANCE (SWIMLANINSTANCE_)
+create index IDX_TASK_ACTORID on JBPM_TASKINSTANCE (ACTORID_)
+alter table JBPM_TASKINSTANCE add constraint FK_TSKINS_PRCINS foreign key (PROCINST_) references JBPM_PROCESSINSTANCE
+alter table JBPM_TASKINSTANCE add constraint FK_TASKINST_TMINST foreign key (TASKMGMTINSTANCE_) references JBPM_MODULEINSTANCE
+alter table JBPM_TASKINSTANCE add constraint FK_TASKINST_TOKEN foreign key (TOKEN_) references JBPM_TOKEN
+alter table JBPM_TASKINSTANCE add constraint FK_TASKINST_SLINST foreign key (SWIMLANINSTANCE_) references JBPM_SWIMLANEINSTANCE
+alter table JBPM_TASKINSTANCE add constraint FK_TASKINST_TASK foreign key (TASK_) references JBPM_TASK
+create index IDX_TOKEN_PROCIN on JBPM_TOKEN (PROCESSINSTANCE_)
+create index IDX_TOKEN_SUBPI on JBPM_TOKEN (SUBPROCESSINSTANCE_)
+create index IDX_TOKEN_NODE on JBPM_TOKEN (NODE_)
+create index IDX_TOKEN_PARENT on JBPM_TOKEN (PARENT_)
+alter table JBPM_TOKEN add constraint FK_TOKEN_PARENT foreign key (PARENT_) references JBPM_TOKEN
+alter table JBPM_TOKEN add constraint FK_TOKEN_NODE foreign key (NODE_) references JBPM_NODE
+alter table JBPM_TOKEN add constraint FK_TOKEN_PROCINST foreign key (PROCESSINSTANCE_) references JBPM_PROCESSINSTANCE
+alter table JBPM_TOKEN add constraint FK_TOKEN_SUBPI foreign key (SUBPROCESSINSTANCE_) references JBPM_PROCESSINSTANCE
+create index IDX_TKVARMAP_CTXT on JBPM_TOKENVARIABLEMAP (CONTEXTINSTANCE_)
+create index IDX_TKVVARMP_TOKEN on JBPM_TOKENVARIABLEMAP (TOKEN_)
+alter table JBPM_TOKENVARIABLEMAP add constraint FK_TKVARMAP_CTXT foreign key (CONTEXTINSTANCE_) references JBPM_MODULEINSTANCE
+alter table JBPM_TOKENVARIABLEMAP add constraint FK_TKVARMAP_TOKEN foreign key (TOKEN_) references JBPM_TOKEN
+create index IDX_TRANSIT_TO on JBPM_TRANSITION (TO_)
+create index IDX_TRANSIT_FROM on JBPM_TRANSITION (FROM_)
+create index IDX_TRANS_PROCDEF on JBPM_TRANSITION (PROCESSDEFINITION_)
+alter table JBPM_TRANSITION add constraint FK_TRANSITION_TO foreign key (TO_) references JBPM_NODE
+alter table JBPM_TRANSITION add constraint FK_TRANS_PROCDEF foreign key (PROCESSDEFINITION_) references JBPM_PROCESSDEFINITION
+alter table JBPM_TRANSITION add constraint FK_TRANSITION_FROM foreign key (FROM_) references JBPM_NODE
+alter table JBPM_VARIABLEACCESS add constraint FK_VARACC_TSKCTRL foreign key (TASKCONTROLLER_) references JBPM_TASKCONTROLLER
+alter table JBPM_VARIABLEACCESS add constraint FK_VARACC_SCRIPT foreign key (SCRIPT_) references JBPM_ACTION
+alter table JBPM_VARIABLEACCESS add constraint FK_VARACC_PROCST foreign key (PROCESSSTATE_) references JBPM_NODE
+create index IDX_VARINST_TKVARMP on JBPM_VARIABLEINSTANCE (TOKENVARIABLEMAP_)
+create index IDX_VARINST_PRCINS on JBPM_VARIABLEINSTANCE (PROCESSINSTANCE_)
+create index IDX_VARINST_TK on JBPM_VARIABLEINSTANCE (TOKEN_)
+alter table JBPM_VARIABLEINSTANCE add constraint FK_VARINST_TK foreign key (TOKEN_) references JBPM_TOKEN
+alter table JBPM_VARIABLEINSTANCE add constraint FK_VARINST_TKVARMP foreign key (TOKENVARIABLEMAP_) references JBPM_TOKENVARIABLEMAP
+alter table JBPM_VARIABLEINSTANCE add constraint FK_VARINST_PRCINST foreign key (PROCESSINSTANCE_) references JBPM_PROCESSINSTANCE
+alter table JBPM_VARIABLEINSTANCE add constraint FK_VAR_TSKINST foreign key (TASKINSTANCE_) references JBPM_TASKINSTANCE
+alter table JBPM_VARIABLEINSTANCE add constraint FK_BYTEINST_ARRAY foreign key (BYTEARRAYVALUE_) references JBPM_BYTEARRAY
+create sequence hibernate_sequence
Modified: labs/jbossesb/workspace/mlittle/legstar/product/services/jbpm/src/main/resources/jbpm-sql/jbpm.jpdl.mssql.sql
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/services/jbpm/src/main/resources/jbpm-sql/jbpm.jpdl.mssql.sql 2009-01-21 14:47:17 UTC (rev 24849)
+++ labs/jbossesb/workspace/mlittle/legstar/product/services/jbpm/src/main/resources/jbpm-sql/jbpm.jpdl.mssql.sql 2009-01-21 15:38:08 UTC (rev 24850)
@@ -1,167 +1,167 @@
-create table JBPM_ACTION (ID_ numeric(19,0) identity not null, class char(1) not null, NAME_ varchar(255) null, ISPROPAGATIONALLOWED_ tinyint null, ACTIONEXPRESSION_ varchar(255) null, ISASYNC_ tinyint null, REFERENCEDACTION_ numeric(19,0) null, ACTIONDELEGATION_ numeric(19,0) null, EVENT_ numeric(19,0) null, PROCESSDEFINITION_ numeric(19,0) null, EXPRESSION_ varchar(4000) null, TIMERNAME_ varchar(255) null, DUEDATE_ varchar(255) null, REPEAT_ varchar(255) null, TRANSITIONNAME_ varchar(255) null, TIMERACTION_ numeric(19,0) null, EVENTINDEX_ int null, EXCEPTIONHANDLER_ numeric(19,0) null, EXCEPTIONHANDLERINDEX_ int null, primary key (ID_));
-create table JBPM_BYTEARRAY (ID_ numeric(19,0) identity not null, NAME_ varchar(255) null, FILEDEFINITION_ numeric(19,0) null, primary key (ID_));
-create table JBPM_BYTEBLOCK (PROCESSFILE_ numeric(19,0) not null, BYTES_ varbinary(1024) null, INDEX_ int not null, primary key (PROCESSFILE_, INDEX_));
-create table JBPM_COMMENT (ID_ numeric(19,0) identity not null, VERSION_ int not null, ACTORID_ varchar(255) null, TIME_ datetime null, MESSAGE_ varchar(4000) null, TOKEN_ numeric(19,0) null, TASKINSTANCE_ numeric(19,0) null, TOKENINDEX_ int null, TASKINSTANCEINDEX_ int null, primary key (ID_));
-create table JBPM_DECISIONCONDITIONS (DECISION_ numeric(19,0) not null, TRANSITIONNAME_ varchar(255) null, EXPRESSION_ varchar(255) null, INDEX_ int not null, primary key (DECISION_, INDEX_));
-create table JBPM_DELEGATION (ID_ numeric(19,0) identity not null, CLASSNAME_ varchar(4000) null, CONFIGURATION_ varchar(4000) null, CONFIGTYPE_ varchar(255) null, PROCESSDEFINITION_ numeric(19,0) null, primary key (ID_));
-create table JBPM_EVENT (ID_ numeric(19,0) identity not null, EVENTTYPE_ varchar(255) null, TYPE_ char(1) null, GRAPHELEMENT_ numeric(19,0) null, PROCESSDEFINITION_ numeric(19,0) null, NODE_ numeric(19,0) null, TRANSITION_ numeric(19,0) null, TASK_ numeric(19,0) null, primary key (ID_));
-create table JBPM_EXCEPTIONHANDLER (ID_ numeric(19,0) identity not null, EXCEPTIONCLASSNAME_ varchar(4000) null, TYPE_ char(1) null, GRAPHELEMENT_ numeric(19,0) null, PROCESSDEFINITION_ numeric(19,0) null, GRAPHELEMENTINDEX_ int null, NODE_ numeric(19,0) null, TRANSITION_ numeric(19,0) null, TASK_ numeric(19,0) null, primary key (ID_));
-create table JBPM_ID_GROUP (ID_ numeric(19,0) identity not null, CLASS_ char(1) not null, NAME_ varchar(255) null, TYPE_ varchar(255) null, PARENT_ numeric(19,0) null, primary key (ID_));
-create table JBPM_ID_MEMBERSHIP (ID_ numeric(19,0) identity not null, CLASS_ char(1) not null, NAME_ varchar(255) null, ROLE_ varchar(255) null, USER_ numeric(19,0) null, GROUP_ numeric(19,0) null, primary key (ID_));
-create table JBPM_ID_PERMISSIONS (ENTITY_ numeric(19,0) not null, CLASS_ varchar(255) null, NAME_ varchar(255) null, ACTION_ varchar(255) null);
-create table JBPM_ID_USER (ID_ numeric(19,0) identity not null, CLASS_ char(1) not null, NAME_ varchar(255) null, EMAIL_ varchar(255) null, PASSWORD_ varchar(255) null, primary key (ID_));
-create table JBPM_JOB (ID_ numeric(19,0) identity not null, CLASS_ char(1) not null, VERSION_ int not null, DUEDATE_ datetime null, PROCESSINSTANCE_ numeric(19,0) null, TOKEN_ numeric(19,0) null, TASKINSTANCE_ numeric(19,0) null, ISSUSPENDED_ tinyint null, ISEXCLUSIVE_ tinyint null, LOCKOWNER_ varchar(255) null, LOCKTIME_ datetime null, EXCEPTION_ varchar(4000) null, RETRIES_ int null, NAME_ varchar(255) null, REPEAT_ varchar(255) null, TRANSITIONNAME_ varchar(255) null, ACTION_ numeric(19,0) null, GRAPHELEMENTTYPE_ varchar(255) null, GRAPHELEMENT_ numeric(19,0) null, NODE_ numeric(19,0) null, primary key (ID_));
-create table JBPM_LOG (ID_ numeric(19,0) identity not null, CLASS_ char(1) not null, INDEX_ int null, DATE_ datetime null, TOKEN_ numeric(19,0) null, PARENT_ numeric(19,0) null, MESSAGE_ varchar(4000) null, EXCEPTION_ varchar(4000) null, ACTION_ numeric(19,0) null, NODE_ numeric(19,0) null, ENTER_ datetime null, LEAVE_ datetime null, DURATION_ numeric(19,0) null, NEWLONGVALUE_ numeric(19,0) null, TRANSITION_ numeric(19,0) null, CHILD_ numeric(19,0) null, SOURCENODE_ numeric(19,0) null, DESTINATIONNODE_ numeric(19,0) null, VARIABLEINSTANCE_ numeric(19,0) null, OLDBYTEARRAY_ numeric(19,0) null, NEWBYTEARRAY_ numeric(19,0) null, OLDDATEVALUE_ datetime null, NEWDATEVALUE_ datetime null, OLDDOUBLEVALUE_ double precision null, NEWDOUBLEVALUE_ double precision null, OLDLONGIDCLASS_ varchar(255) null, OLDLONGIDVALUE_ numeric(19,0) null, NEWLONGIDCLASS_ varchar(255) null, NEWLONGIDVALUE_ numeric(19,0) null, OLDSTRINGIDCLASS_ varchar(255) null, OLDSTRINGIDVALUE_ varchar(255) null, NE!
WSTRINGIDCLASS_ varchar(255) null, NEWSTRINGIDVALUE_ varchar(255) null, OLDLONGVALUE_ numeric(19,0) null, OLDSTRINGVALUE_ varchar(4000) null, NEWSTRINGVALUE_ varchar(4000) null, TASKINSTANCE_ numeric(19,0) null, TASKACTORID_ varchar(255) null, TASKOLDACTORID_ varchar(255) null, SWIMLANEINSTANCE_ numeric(19,0) null, primary key (ID_));
-create table JBPM_MODULEDEFINITION (ID_ numeric(19,0) identity not null, CLASS_ char(1) not null, NAME_ varchar(4000) null, PROCESSDEFINITION_ numeric(19,0) null, STARTTASK_ numeric(19,0) null, primary key (ID_));
-create table JBPM_MODULEINSTANCE (ID_ numeric(19,0) identity not null, CLASS_ char(1) not null, VERSION_ int not null, PROCESSINSTANCE_ numeric(19,0) null, TASKMGMTDEFINITION_ numeric(19,0) null, NAME_ varchar(255) null, primary key (ID_));
-create table JBPM_NODE (ID_ numeric(19,0) identity not null, CLASS_ char(1) not null, NAME_ varchar(255) null, DESCRIPTION_ varchar(4000) null, PROCESSDEFINITION_ numeric(19,0) null, ISASYNC_ tinyint null, ISASYNCEXCL_ tinyint null, ACTION_ numeric(19,0) null, SUPERSTATE_ numeric(19,0) null, SUBPROCNAME_ varchar(255) null, SUBPROCESSDEFINITION_ numeric(19,0) null, DECISIONEXPRESSION_ varchar(255) null, DECISIONDELEGATION numeric(19,0) null, SCRIPT_ numeric(19,0) null, SIGNAL_ int null, CREATETASKS_ tinyint null, ENDTASKS_ tinyint null, NODECOLLECTIONINDEX_ int null, primary key (ID_));
-create table JBPM_POOLEDACTOR (ID_ numeric(19,0) identity not null, VERSION_ int not null, ACTORID_ varchar(255) null, SWIMLANEINSTANCE_ numeric(19,0) null, primary key (ID_));
-create table JBPM_PROCESSDEFINITION (ID_ numeric(19,0) identity not null, CLASS_ char(1) not null, NAME_ varchar(255) null, DESCRIPTION_ varchar(4000) null, VERSION_ int null, ISTERMINATIONIMPLICIT_ tinyint null, STARTSTATE_ numeric(19,0) null, primary key (ID_));
-create table JBPM_PROCESSINSTANCE (ID_ numeric(19,0) identity not null, VERSION_ int not null, KEY_ varchar(255) null, START_ datetime null, END_ datetime null, ISSUSPENDED_ tinyint null, PROCESSDEFINITION_ numeric(19,0) null, ROOTTOKEN_ numeric(19,0) null, SUPERPROCESSTOKEN_ numeric(19,0) null, primary key (ID_));
-create table JBPM_RUNTIMEACTION (ID_ numeric(19,0) identity not null, VERSION_ int not null, EVENTTYPE_ varchar(255) null, TYPE_ char(1) null, GRAPHELEMENT_ numeric(19,0) null, PROCESSINSTANCE_ numeric(19,0) null, ACTION_ numeric(19,0) null, PROCESSINSTANCEINDEX_ int null, primary key (ID_));
-create table JBPM_SWIMLANE (ID_ numeric(19,0) identity not null, NAME_ varchar(255) null, ACTORIDEXPRESSION_ varchar(255) null, POOLEDACTORSEXPRESSION_ varchar(255) null, ASSIGNMENTDELEGATION_ numeric(19,0) null, TASKMGMTDEFINITION_ numeric(19,0) null, primary key (ID_));
-create table JBPM_SWIMLANEINSTANCE (ID_ numeric(19,0) identity not null, VERSION_ int not null, NAME_ varchar(255) null, ACTORID_ varchar(255) null, SWIMLANE_ numeric(19,0) null, TASKMGMTINSTANCE_ numeric(19,0) null, primary key (ID_));
-create table JBPM_TASK (ID_ numeric(19,0) identity not null, NAME_ varchar(255) null, DESCRIPTION_ varchar(4000) null, PROCESSDEFINITION_ numeric(19,0) null, ISBLOCKING_ tinyint null, ISSIGNALLING_ tinyint null, CONDITION_ varchar(255) null, DUEDATE_ varchar(255) null, PRIORITY_ int null, ACTORIDEXPRESSION_ varchar(255) null, POOLEDACTORSEXPRESSION_ varchar(255) null, TASKMGMTDEFINITION_ numeric(19,0) null, TASKNODE_ numeric(19,0) null, STARTSTATE_ numeric(19,0) null, ASSIGNMENTDELEGATION_ numeric(19,0) null, SWIMLANE_ numeric(19,0) null, TASKCONTROLLER_ numeric(19,0) null, primary key (ID_));
-create table JBPM_TASKACTORPOOL (TASKINSTANCE_ numeric(19,0) not null, POOLEDACTOR_ numeric(19,0) not null, primary key (TASKINSTANCE_, POOLEDACTOR_));
-create table JBPM_TASKCONTROLLER (ID_ numeric(19,0) identity not null, TASKCONTROLLERDELEGATION_ numeric(19,0) null, primary key (ID_));
-create table JBPM_TASKINSTANCE (ID_ numeric(19,0) identity not null, CLASS_ char(1) not null, VERSION_ int not null, NAME_ varchar(255) null, DESCRIPTION_ varchar(4000) null, ACTORID_ varchar(255) null, CREATE_ datetime null, START_ datetime null, END_ datetime null, DUEDATE_ datetime null, PRIORITY_ int null, ISCANCELLED_ tinyint null, ISSUSPENDED_ tinyint null, ISOPEN_ tinyint null, ISSIGNALLING_ tinyint null, ISBLOCKING_ tinyint null, TASK_ numeric(19,0) null, TOKEN_ numeric(19,0) null, PROCINST_ numeric(19,0) null, SWIMLANINSTANCE_ numeric(19,0) null, TASKMGMTINSTANCE_ numeric(19,0) null, primary key (ID_));
-create table JBPM_TOKEN (ID_ numeric(19,0) identity not null, VERSION_ int not null, NAME_ varchar(255) null, START_ datetime null, END_ datetime null, NODEENTER_ datetime null, NEXTLOGINDEX_ int null, ISABLETOREACTIVATEPARENT_ tinyint null, ISTERMINATIONIMPLICIT_ tinyint null, ISSUSPENDED_ tinyint null, LOCK_ varchar(255) null, NODE_ numeric(19,0) null, PROCESSINSTANCE_ numeric(19,0) null, PARENT_ numeric(19,0) null, SUBPROCESSINSTANCE_ numeric(19,0) null, primary key (ID_));
-create table JBPM_TOKENVARIABLEMAP (ID_ numeric(19,0) identity not null, VERSION_ int not null, TOKEN_ numeric(19,0) null, CONTEXTINSTANCE_ numeric(19,0) null, primary key (ID_));
-create table JBPM_TRANSITION (ID_ numeric(19,0) identity not null, NAME_ varchar(255) null, DESCRIPTION_ varchar(4000) null, PROCESSDEFINITION_ numeric(19,0) null, FROM_ numeric(19,0) null, TO_ numeric(19,0) null, CONDITION_ varchar(255) null, FROMINDEX_ int null, primary key (ID_));
-create table JBPM_VARIABLEACCESS (ID_ numeric(19,0) identity not null, VARIABLENAME_ varchar(255) null, ACCESS_ varchar(255) null, MAPPEDNAME_ varchar(255) null, SCRIPT_ numeric(19,0) null, PROCESSSTATE_ numeric(19,0) null, TASKCONTROLLER_ numeric(19,0) null, INDEX_ int null, primary key (ID_));
-create table JBPM_VARIABLEINSTANCE (ID_ numeric(19,0) identity not null, CLASS_ char(1) not null, VERSION_ int not null, NAME_ varchar(255) null, CONVERTER_ char(1) null, TOKEN_ numeric(19,0) null, TOKENVARIABLEMAP_ numeric(19,0) null, PROCESSINSTANCE_ numeric(19,0) null, BYTEARRAYVALUE_ numeric(19,0) null, DATEVALUE_ datetime null, DOUBLEVALUE_ double precision null, LONGIDCLASS_ varchar(255) null, LONGVALUE_ numeric(19,0) null, STRINGIDCLASS_ varchar(255) null, STRINGVALUE_ varchar(4000) null, TASKINSTANCE_ numeric(19,0) null, primary key (ID_));
-create index IDX_ACTION_EVENT on JBPM_ACTION (EVENT_);
-create index IDX_ACTION_ACTNDL on JBPM_ACTION (ACTIONDELEGATION_);
-create index IDX_ACTION_PROCDF on JBPM_ACTION (PROCESSDEFINITION_);
-alter table JBPM_ACTION add constraint FK_ACTION_EVENT foreign key (EVENT_) references JBPM_EVENT;
-alter table JBPM_ACTION add constraint FK_ACTION_EXPTHDL foreign key (EXCEPTIONHANDLER_) references JBPM_EXCEPTIONHANDLER;
-alter table JBPM_ACTION add constraint FK_ACTION_PROCDEF foreign key (PROCESSDEFINITION_) references JBPM_PROCESSDEFINITION;
-alter table JBPM_ACTION add constraint FK_CRTETIMERACT_TA foreign key (TIMERACTION_) references JBPM_ACTION;
-alter table JBPM_ACTION add constraint FK_ACTION_ACTNDEL foreign key (ACTIONDELEGATION_) references JBPM_DELEGATION;
-alter table JBPM_ACTION add constraint FK_ACTION_REFACT foreign key (REFERENCEDACTION_) references JBPM_ACTION;
-alter table JBPM_BYTEARRAY add constraint FK_BYTEARR_FILDEF foreign key (FILEDEFINITION_) references JBPM_MODULEDEFINITION;
-alter table JBPM_BYTEBLOCK add constraint FK_BYTEBLOCK_FILE foreign key (PROCESSFILE_) references JBPM_BYTEARRAY;
-create index IDX_COMMENT_TOKEN on JBPM_COMMENT (TOKEN_);
-create index IDX_COMMENT_TSK on JBPM_COMMENT (TASKINSTANCE_);
-alter table JBPM_COMMENT add constraint FK_COMMENT_TOKEN foreign key (TOKEN_) references JBPM_TOKEN;
-alter table JBPM_COMMENT add constraint FK_COMMENT_TSK foreign key (TASKINSTANCE_) references JBPM_TASKINSTANCE;
-alter table JBPM_DECISIONCONDITIONS add constraint FK_DECCOND_DEC foreign key (DECISION_) references JBPM_NODE;
-create index IDX_DELEG_PRCD on JBPM_DELEGATION (PROCESSDEFINITION_);
-alter table JBPM_DELEGATION add constraint FK_DELEGATION_PRCD foreign key (PROCESSDEFINITION_) references JBPM_PROCESSDEFINITION;
-alter table JBPM_EVENT add constraint FK_EVENT_PROCDEF foreign key (PROCESSDEFINITION_) references JBPM_PROCESSDEFINITION;
-alter table JBPM_EVENT add constraint FK_EVENT_NODE foreign key (NODE_) references JBPM_NODE;
-alter table JBPM_EVENT add constraint FK_EVENT_TRANS foreign key (TRANSITION_) references JBPM_TRANSITION;
-alter table JBPM_EVENT add constraint FK_EVENT_TASK foreign key (TASK_) references JBPM_TASK;
-alter table JBPM_ID_GROUP add constraint FK_ID_GRP_PARENT foreign key (PARENT_) references JBPM_ID_GROUP;
-alter table JBPM_ID_MEMBERSHIP add constraint FK_ID_MEMSHIP_GRP foreign key (GROUP_) references JBPM_ID_GROUP;
-alter table JBPM_ID_MEMBERSHIP add constraint FK_ID_MEMSHIP_USR foreign key (USER_) references JBPM_ID_USER;
-create index IDX_JOB_TSKINST on JBPM_JOB (TASKINSTANCE_);
-create index IDX_JOB_PRINST on JBPM_JOB (PROCESSINSTANCE_);
-create index IDX_JOB_TOKEN on JBPM_JOB (TOKEN_);
-alter table JBPM_JOB add constraint FK_JOB_TOKEN foreign key (TOKEN_) references JBPM_TOKEN;
-alter table JBPM_JOB add constraint FK_JOB_NODE foreign key (NODE_) references JBPM_NODE;
-alter table JBPM_JOB add constraint FK_JOB_PRINST foreign key (PROCESSINSTANCE_) references JBPM_PROCESSINSTANCE;
-alter table JBPM_JOB add constraint FK_JOB_ACTION foreign key (ACTION_) references JBPM_ACTION;
-alter table JBPM_JOB add constraint FK_JOB_TSKINST foreign key (TASKINSTANCE_) references JBPM_TASKINSTANCE;
-alter table JBPM_LOG add constraint FK_LOG_SOURCENODE foreign key (SOURCENODE_) references JBPM_NODE;
-alter table JBPM_LOG add constraint FK_LOG_TOKEN foreign key (TOKEN_) references JBPM_TOKEN;
-alter table JBPM_LOG add constraint FK_LOG_OLDBYTES foreign key (OLDBYTEARRAY_) references JBPM_BYTEARRAY;
-alter table JBPM_LOG add constraint FK_LOG_NEWBYTES foreign key (NEWBYTEARRAY_) references JBPM_BYTEARRAY;
-alter table JBPM_LOG add constraint FK_LOG_CHILDTOKEN foreign key (CHILD_) references JBPM_TOKEN;
-alter table JBPM_LOG add constraint FK_LOG_DESTNODE foreign key (DESTINATIONNODE_) references JBPM_NODE;
-alter table JBPM_LOG add constraint FK_LOG_TASKINST foreign key (TASKINSTANCE_) references JBPM_TASKINSTANCE;
-alter table JBPM_LOG add constraint FK_LOG_SWIMINST foreign key (SWIMLANEINSTANCE_) references JBPM_SWIMLANEINSTANCE;
-alter table JBPM_LOG add constraint FK_LOG_PARENT foreign key (PARENT_) references JBPM_LOG;
-alter table JBPM_LOG add constraint FK_LOG_NODE foreign key (NODE_) references JBPM_NODE;
-alter table JBPM_LOG add constraint FK_LOG_ACTION foreign key (ACTION_) references JBPM_ACTION;
-alter table JBPM_LOG add constraint FK_LOG_VARINST foreign key (VARIABLEINSTANCE_) references JBPM_VARIABLEINSTANCE;
-alter table JBPM_LOG add constraint FK_LOG_TRANSITION foreign key (TRANSITION_) references JBPM_TRANSITION;
-create index IDX_MODDEF_PROCDF on JBPM_MODULEDEFINITION (PROCESSDEFINITION_);
-alter table JBPM_MODULEDEFINITION add constraint FK_TSKDEF_START foreign key (STARTTASK_) references JBPM_TASK;
-alter table JBPM_MODULEDEFINITION add constraint FK_MODDEF_PROCDEF foreign key (PROCESSDEFINITION_) references JBPM_PROCESSDEFINITION;
-create index IDX_MODINST_PRINST on JBPM_MODULEINSTANCE (PROCESSINSTANCE_);
-alter table JBPM_MODULEINSTANCE add constraint FK_TASKMGTINST_TMD foreign key (TASKMGMTDEFINITION_) references JBPM_MODULEDEFINITION;
-alter table JBPM_MODULEINSTANCE add constraint FK_MODINST_PRCINST foreign key (PROCESSINSTANCE_) references JBPM_PROCESSINSTANCE;
-create index IDX_PSTATE_SBPRCDEF on JBPM_NODE (SUBPROCESSDEFINITION_);
-create index IDX_NODE_SUPRSTATE on JBPM_NODE (SUPERSTATE_);
-create index IDX_NODE_PROCDEF on JBPM_NODE (PROCESSDEFINITION_);
-create index IDX_NODE_ACTION on JBPM_NODE (ACTION_);
-alter table JBPM_NODE add constraint FK_PROCST_SBPRCDEF foreign key (SUBPROCESSDEFINITION_) references JBPM_PROCESSDEFINITION;
-alter table JBPM_NODE add constraint FK_NODE_PROCDEF foreign key (PROCESSDEFINITION_) references JBPM_PROCESSDEFINITION;
-alter table JBPM_NODE add constraint FK_NODE_SCRIPT foreign key (SCRIPT_) references JBPM_ACTION;
-alter table JBPM_NODE add constraint FK_NODE_ACTION foreign key (ACTION_) references JBPM_ACTION;
-alter table JBPM_NODE add constraint FK_DECISION_DELEG foreign key (DECISIONDELEGATION) references JBPM_DELEGATION;
-alter table JBPM_NODE add constraint FK_NODE_SUPERSTATE foreign key (SUPERSTATE_) references JBPM_NODE;
-create index IDX_PLDACTR_ACTID on JBPM_POOLEDACTOR (ACTORID_);
-create index IDX_TSKINST_SWLANE on JBPM_POOLEDACTOR (SWIMLANEINSTANCE_);
-alter table JBPM_POOLEDACTOR add constraint FK_POOLEDACTOR_SLI foreign key (SWIMLANEINSTANCE_) references JBPM_SWIMLANEINSTANCE;
-create index IDX_PROCDEF_STRTST on JBPM_PROCESSDEFINITION (STARTSTATE_);
-alter table JBPM_PROCESSDEFINITION add constraint FK_PROCDEF_STRTSTA foreign key (STARTSTATE_) references JBPM_NODE;
-create index IDX_PROCIN_ROOTTK on JBPM_PROCESSINSTANCE (ROOTTOKEN_);
-create index IDX_PROCIN_SPROCTK on JBPM_PROCESSINSTANCE (SUPERPROCESSTOKEN_);
-create index IDX_PROCIN_KEY on JBPM_PROCESSINSTANCE (KEY_);
-create index IDX_PROCIN_PROCDEF on JBPM_PROCESSINSTANCE (PROCESSDEFINITION_);
-alter table JBPM_PROCESSINSTANCE add constraint FK_PROCIN_PROCDEF foreign key (PROCESSDEFINITION_) references JBPM_PROCESSDEFINITION;
-alter table JBPM_PROCESSINSTANCE add constraint FK_PROCIN_ROOTTKN foreign key (ROOTTOKEN_) references JBPM_TOKEN;
-alter table JBPM_PROCESSINSTANCE add constraint FK_PROCIN_SPROCTKN foreign key (SUPERPROCESSTOKEN_) references JBPM_TOKEN;
-create index IDX_RTACTN_PRCINST on JBPM_RUNTIMEACTION (PROCESSINSTANCE_);
-create index IDX_RTACTN_ACTION on JBPM_RUNTIMEACTION (ACTION_);
-alter table JBPM_RUNTIMEACTION add constraint FK_RTACTN_PROCINST foreign key (PROCESSINSTANCE_) references JBPM_PROCESSINSTANCE;
-alter table JBPM_RUNTIMEACTION add constraint FK_RTACTN_ACTION foreign key (ACTION_) references JBPM_ACTION;
-alter table JBPM_SWIMLANE add constraint FK_SWL_ASSDEL foreign key (ASSIGNMENTDELEGATION_) references JBPM_DELEGATION;
-alter table JBPM_SWIMLANE add constraint FK_SWL_TSKMGMTDEF foreign key (TASKMGMTDEFINITION_) references JBPM_MODULEDEFINITION;
-create index IDX_SWIMLINST_SL on JBPM_SWIMLANEINSTANCE (SWIMLANE_);
-alter table JBPM_SWIMLANEINSTANCE add constraint FK_SWIMLANEINST_TM foreign key (TASKMGMTINSTANCE_) references JBPM_MODULEINSTANCE;
-alter table JBPM_SWIMLANEINSTANCE add constraint FK_SWIMLANEINST_SL foreign key (SWIMLANE_) references JBPM_SWIMLANE;
-create index IDX_TASK_TSKNODE on JBPM_TASK (TASKNODE_);
-create index IDX_TASK_PROCDEF on JBPM_TASK (PROCESSDEFINITION_);
-create index IDX_TASK_TASKMGTDF on JBPM_TASK (TASKMGMTDEFINITION_);
-alter table JBPM_TASK add constraint FK_TSK_TSKCTRL foreign key (TASKCONTROLLER_) references JBPM_TASKCONTROLLER;
-alter table JBPM_TASK add constraint FK_TASK_ASSDEL foreign key (ASSIGNMENTDELEGATION_) references JBPM_DELEGATION;
-alter table JBPM_TASK add constraint FK_TASK_TASKNODE foreign key (TASKNODE_) references JBPM_NODE;
-alter table JBPM_TASK add constraint FK_TASK_PROCDEF foreign key (PROCESSDEFINITION_) references JBPM_PROCESSDEFINITION;
-alter table JBPM_TASK add constraint FK_TASK_STARTST foreign key (STARTSTATE_) references JBPM_NODE;
-alter table JBPM_TASK add constraint FK_TASK_TASKMGTDEF foreign key (TASKMGMTDEFINITION_) references JBPM_MODULEDEFINITION;
-alter table JBPM_TASK add constraint FK_TASK_SWIMLANE foreign key (SWIMLANE_) references JBPM_SWIMLANE;
-alter table JBPM_TASKACTORPOOL add constraint FK_TSKACTPOL_PLACT foreign key (POOLEDACTOR_) references JBPM_POOLEDACTOR;
-alter table JBPM_TASKACTORPOOL add constraint FK_TASKACTPL_TSKI foreign key (TASKINSTANCE_) references JBPM_TASKINSTANCE;
-alter table JBPM_TASKCONTROLLER add constraint FK_TSKCTRL_DELEG foreign key (TASKCONTROLLERDELEGATION_) references JBPM_DELEGATION;
-create index IDX_TASKINST_TOKN on JBPM_TASKINSTANCE (TOKEN_);
-create index IDX_TASKINST_TSK on JBPM_TASKINSTANCE (TASK_, PROCINST_);
-create index IDX_TSKINST_TMINST on JBPM_TASKINSTANCE (TASKMGMTINSTANCE_);
-create index IDX_TSKINST_SLINST on JBPM_TASKINSTANCE (SWIMLANINSTANCE_);
-create index IDX_TASK_ACTORID on JBPM_TASKINSTANCE (ACTORID_);
-alter table JBPM_TASKINSTANCE add constraint FK_TSKINS_PRCINS foreign key (PROCINST_) references JBPM_PROCESSINSTANCE;
-alter table JBPM_TASKINSTANCE add constraint FK_TASKINST_TMINST foreign key (TASKMGMTINSTANCE_) references JBPM_MODULEINSTANCE;
-alter table JBPM_TASKINSTANCE add constraint FK_TASKINST_TOKEN foreign key (TOKEN_) references JBPM_TOKEN;
-alter table JBPM_TASKINSTANCE add constraint FK_TASKINST_SLINST foreign key (SWIMLANINSTANCE_) references JBPM_SWIMLANEINSTANCE;
-alter table JBPM_TASKINSTANCE add constraint FK_TASKINST_TASK foreign key (TASK_) references JBPM_TASK;
-create index IDX_TOKEN_PROCIN on JBPM_TOKEN (PROCESSINSTANCE_);
-create index IDX_TOKEN_SUBPI on JBPM_TOKEN (SUBPROCESSINSTANCE_);
-create index IDX_TOKEN_NODE on JBPM_TOKEN (NODE_);
-create index IDX_TOKEN_PARENT on JBPM_TOKEN (PARENT_);
-alter table JBPM_TOKEN add constraint FK_TOKEN_PARENT foreign key (PARENT_) references JBPM_TOKEN;
-alter table JBPM_TOKEN add constraint FK_TOKEN_NODE foreign key (NODE_) references JBPM_NODE;
-alter table JBPM_TOKEN add constraint FK_TOKEN_PROCINST foreign key (PROCESSINSTANCE_) references JBPM_PROCESSINSTANCE;
-alter table JBPM_TOKEN add constraint FK_TOKEN_SUBPI foreign key (SUBPROCESSINSTANCE_) references JBPM_PROCESSINSTANCE;
-create index IDX_TKVARMAP_CTXT on JBPM_TOKENVARIABLEMAP (CONTEXTINSTANCE_);
-create index IDX_TKVVARMP_TOKEN on JBPM_TOKENVARIABLEMAP (TOKEN_);
-alter table JBPM_TOKENVARIABLEMAP add constraint FK_TKVARMAP_CTXT foreign key (CONTEXTINSTANCE_) references JBPM_MODULEINSTANCE;
-alter table JBPM_TOKENVARIABLEMAP add constraint FK_TKVARMAP_TOKEN foreign key (TOKEN_) references JBPM_TOKEN;
-create index IDX_TRANSIT_TO on JBPM_TRANSITION (TO_);
-create index IDX_TRANSIT_FROM on JBPM_TRANSITION (FROM_);
-create index IDX_TRANS_PROCDEF on JBPM_TRANSITION (PROCESSDEFINITION_);
-alter table JBPM_TRANSITION add constraint FK_TRANSITION_TO foreign key (TO_) references JBPM_NODE;
-alter table JBPM_TRANSITION add constraint FK_TRANS_PROCDEF foreign key (PROCESSDEFINITION_) references JBPM_PROCESSDEFINITION;
-alter table JBPM_TRANSITION add constraint FK_TRANSITION_FROM foreign key (FROM_) references JBPM_NODE;
-alter table JBPM_VARIABLEACCESS add constraint FK_VARACC_TSKCTRL foreign key (TASKCONTROLLER_) references JBPM_TASKCONTROLLER;
-alter table JBPM_VARIABLEACCESS add constraint FK_VARACC_SCRIPT foreign key (SCRIPT_) references JBPM_ACTION;
-alter table JBPM_VARIABLEACCESS add constraint FK_VARACC_PROCST foreign key (PROCESSSTATE_) references JBPM_NODE;
-create index IDX_VARINST_TKVARMP on JBPM_VARIABLEINSTANCE (TOKENVARIABLEMAP_);
-create index IDX_VARINST_PRCINS on JBPM_VARIABLEINSTANCE (PROCESSINSTANCE_);
-create index IDX_VARINST_TK on JBPM_VARIABLEINSTANCE (TOKEN_);
-alter table JBPM_VARIABLEINSTANCE add constraint FK_VARINST_TK foreign key (TOKEN_) references JBPM_TOKEN;
-alter table JBPM_VARIABLEINSTANCE add constraint FK_VARINST_TKVARMP foreign key (TOKENVARIABLEMAP_) references JBPM_TOKENVARIABLEMAP;
-alter table JBPM_VARIABLEINSTANCE add constraint FK_VARINST_PRCINST foreign key (PROCESSINSTANCE_) references JBPM_PROCESSINSTANCE;
-alter table JBPM_VARIABLEINSTANCE add constraint FK_VAR_TSKINST foreign key (TASKINSTANCE_) references JBPM_TASKINSTANCE;
-alter table JBPM_VARIABLEINSTANCE add constraint FK_BYTEINST_ARRAY foreign key (BYTEARRAYVALUE_) references JBPM_BYTEARRAY;
+create table JBPM_ACTION (ID_ numeric(19,0) identity not null, class char(1) not null, NAME_ varchar(255) null, ISPROPAGATIONALLOWED_ tinyint null, ACTIONEXPRESSION_ varchar(255) null, ISASYNC_ tinyint null, REFERENCEDACTION_ numeric(19,0) null, ACTIONDELEGATION_ numeric(19,0) null, EVENT_ numeric(19,0) null, PROCESSDEFINITION_ numeric(19,0) null, EXPRESSION_ varchar(4000) null, TIMERNAME_ varchar(255) null, DUEDATE_ varchar(255) null, REPEAT_ varchar(255) null, TRANSITIONNAME_ varchar(255) null, TIMERACTION_ numeric(19,0) null, EVENTINDEX_ int null, EXCEPTIONHANDLER_ numeric(19,0) null, EXCEPTIONHANDLERINDEX_ int null, primary key (ID_))
+create table JBPM_BYTEARRAY (ID_ numeric(19,0) identity not null, NAME_ varchar(255) null, FILEDEFINITION_ numeric(19,0) null, primary key (ID_))
+create table JBPM_BYTEBLOCK (PROCESSFILE_ numeric(19,0) not null, BYTES_ varbinary(1024) null, INDEX_ int not null, primary key (PROCESSFILE_, INDEX_))
+create table JBPM_COMMENT (ID_ numeric(19,0) identity not null, VERSION_ int not null, ACTORID_ varchar(255) null, TIME_ datetime null, MESSAGE_ varchar(4000) null, TOKEN_ numeric(19,0) null, TASKINSTANCE_ numeric(19,0) null, TOKENINDEX_ int null, TASKINSTANCEINDEX_ int null, primary key (ID_))
+create table JBPM_DECISIONCONDITIONS (DECISION_ numeric(19,0) not null, TRANSITIONNAME_ varchar(255) null, EXPRESSION_ varchar(255) null, INDEX_ int not null, primary key (DECISION_, INDEX_))
+create table JBPM_DELEGATION (ID_ numeric(19,0) identity not null, CLASSNAME_ varchar(4000) null, CONFIGURATION_ varchar(4000) null, CONFIGTYPE_ varchar(255) null, PROCESSDEFINITION_ numeric(19,0) null, primary key (ID_))
+create table JBPM_EVENT (ID_ numeric(19,0) identity not null, EVENTTYPE_ varchar(255) null, TYPE_ char(1) null, GRAPHELEMENT_ numeric(19,0) null, PROCESSDEFINITION_ numeric(19,0) null, NODE_ numeric(19,0) null, TRANSITION_ numeric(19,0) null, TASK_ numeric(19,0) null, primary key (ID_))
+create table JBPM_EXCEPTIONHANDLER (ID_ numeric(19,0) identity not null, EXCEPTIONCLASSNAME_ varchar(4000) null, TYPE_ char(1) null, GRAPHELEMENT_ numeric(19,0) null, PROCESSDEFINITION_ numeric(19,0) null, GRAPHELEMENTINDEX_ int null, NODE_ numeric(19,0) null, TRANSITION_ numeric(19,0) null, TASK_ numeric(19,0) null, primary key (ID_))
+create table JBPM_ID_GROUP (ID_ numeric(19,0) identity not null, CLASS_ char(1) not null, NAME_ varchar(255) null, TYPE_ varchar(255) null, PARENT_ numeric(19,0) null, primary key (ID_))
+create table JBPM_ID_MEMBERSHIP (ID_ numeric(19,0) identity not null, CLASS_ char(1) not null, NAME_ varchar(255) null, ROLE_ varchar(255) null, USER_ numeric(19,0) null, GROUP_ numeric(19,0) null, primary key (ID_))
+create table JBPM_ID_PERMISSIONS (ENTITY_ numeric(19,0) not null, CLASS_ varchar(255) null, NAME_ varchar(255) null, ACTION_ varchar(255) null)
+create table JBPM_ID_USER (ID_ numeric(19,0) identity not null, CLASS_ char(1) not null, NAME_ varchar(255) null, EMAIL_ varchar(255) null, PASSWORD_ varchar(255) null, primary key (ID_))
+create table JBPM_JOB (ID_ numeric(19,0) identity not null, CLASS_ char(1) not null, VERSION_ int not null, DUEDATE_ datetime null, PROCESSINSTANCE_ numeric(19,0) null, TOKEN_ numeric(19,0) null, TASKINSTANCE_ numeric(19,0) null, ISSUSPENDED_ tinyint null, ISEXCLUSIVE_ tinyint null, LOCKOWNER_ varchar(255) null, LOCKTIME_ datetime null, EXCEPTION_ varchar(4000) null, RETRIES_ int null, NAME_ varchar(255) null, REPEAT_ varchar(255) null, TRANSITIONNAME_ varchar(255) null, ACTION_ numeric(19,0) null, GRAPHELEMENTTYPE_ varchar(255) null, GRAPHELEMENT_ numeric(19,0) null, NODE_ numeric(19,0) null, primary key (ID_))
+create table JBPM_LOG (ID_ numeric(19,0) identity not null, CLASS_ char(1) not null, INDEX_ int null, DATE_ datetime null, TOKEN_ numeric(19,0) null, PARENT_ numeric(19,0) null, MESSAGE_ varchar(4000) null, EXCEPTION_ varchar(4000) null, ACTION_ numeric(19,0) null, NODE_ numeric(19,0) null, ENTER_ datetime null, LEAVE_ datetime null, DURATION_ numeric(19,0) null, NEWLONGVALUE_ numeric(19,0) null, TRANSITION_ numeric(19,0) null, CHILD_ numeric(19,0) null, SOURCENODE_ numeric(19,0) null, DESTINATIONNODE_ numeric(19,0) null, VARIABLEINSTANCE_ numeric(19,0) null, OLDBYTEARRAY_ numeric(19,0) null, NEWBYTEARRAY_ numeric(19,0) null, OLDDATEVALUE_ datetime null, NEWDATEVALUE_ datetime null, OLDDOUBLEVALUE_ double precision null, NEWDOUBLEVALUE_ double precision null, OLDLONGIDCLASS_ varchar(255) null, OLDLONGIDVALUE_ numeric(19,0) null, NEWLONGIDCLASS_ varchar(255) null, NEWLONGIDVALUE_ numeric(19,0) null, OLDSTRINGIDCLASS_ varchar(255) null, OLDSTRINGIDVALUE_ varchar(255) null, NE!
WSTRINGIDCLASS_ varchar(255) null, NEWSTRINGIDVALUE_ varchar(255) null, OLDLONGVALUE_ numeric(19,0) null, OLDSTRINGVALUE_ varchar(4000) null, NEWSTRINGVALUE_ varchar(4000) null, TASKINSTANCE_ numeric(19,0) null, TASKACTORID_ varchar(255) null, TASKOLDACTORID_ varchar(255) null, SWIMLANEINSTANCE_ numeric(19,0) null, primary key (ID_))
+create table JBPM_MODULEDEFINITION (ID_ numeric(19,0) identity not null, CLASS_ char(1) not null, NAME_ varchar(4000) null, PROCESSDEFINITION_ numeric(19,0) null, STARTTASK_ numeric(19,0) null, primary key (ID_))
+create table JBPM_MODULEINSTANCE (ID_ numeric(19,0) identity not null, CLASS_ char(1) not null, VERSION_ int not null, PROCESSINSTANCE_ numeric(19,0) null, TASKMGMTDEFINITION_ numeric(19,0) null, NAME_ varchar(255) null, primary key (ID_))
+create table JBPM_NODE (ID_ numeric(19,0) identity not null, CLASS_ char(1) not null, NAME_ varchar(255) null, DESCRIPTION_ varchar(4000) null, PROCESSDEFINITION_ numeric(19,0) null, ISASYNC_ tinyint null, ISASYNCEXCL_ tinyint null, ACTION_ numeric(19,0) null, SUPERSTATE_ numeric(19,0) null, SUBPROCNAME_ varchar(255) null, SUBPROCESSDEFINITION_ numeric(19,0) null, DECISIONEXPRESSION_ varchar(255) null, DECISIONDELEGATION numeric(19,0) null, SCRIPT_ numeric(19,0) null, PARENTLOCKMODE_ varchar(255) null, SIGNAL_ int null, CREATETASKS_ tinyint null, ENDTASKS_ tinyint null, NODECOLLECTIONINDEX_ int null, primary key (ID_))
+create table JBPM_POOLEDACTOR (ID_ numeric(19,0) identity not null, VERSION_ int not null, ACTORID_ varchar(255) null, SWIMLANEINSTANCE_ numeric(19,0) null, primary key (ID_))
+create table JBPM_PROCESSDEFINITION (ID_ numeric(19,0) identity not null, CLASS_ char(1) not null, NAME_ varchar(255) null, DESCRIPTION_ varchar(4000) null, VERSION_ int null, ISTERMINATIONIMPLICIT_ tinyint null, STARTSTATE_ numeric(19,0) null, primary key (ID_))
+create table JBPM_PROCESSINSTANCE (ID_ numeric(19,0) identity not null, VERSION_ int not null, KEY_ varchar(255) null, START_ datetime null, END_ datetime null, ISSUSPENDED_ tinyint null, PROCESSDEFINITION_ numeric(19,0) null, ROOTTOKEN_ numeric(19,0) null, SUPERPROCESSTOKEN_ numeric(19,0) null, primary key (ID_))
+create table JBPM_RUNTIMEACTION (ID_ numeric(19,0) identity not null, VERSION_ int not null, EVENTTYPE_ varchar(255) null, TYPE_ char(1) null, GRAPHELEMENT_ numeric(19,0) null, PROCESSINSTANCE_ numeric(19,0) null, ACTION_ numeric(19,0) null, PROCESSINSTANCEINDEX_ int null, primary key (ID_))
+create table JBPM_SWIMLANE (ID_ numeric(19,0) identity not null, NAME_ varchar(255) null, ACTORIDEXPRESSION_ varchar(255) null, POOLEDACTORSEXPRESSION_ varchar(255) null, ASSIGNMENTDELEGATION_ numeric(19,0) null, TASKMGMTDEFINITION_ numeric(19,0) null, primary key (ID_))
+create table JBPM_SWIMLANEINSTANCE (ID_ numeric(19,0) identity not null, VERSION_ int not null, NAME_ varchar(255) null, ACTORID_ varchar(255) null, SWIMLANE_ numeric(19,0) null, TASKMGMTINSTANCE_ numeric(19,0) null, primary key (ID_))
+create table JBPM_TASK (ID_ numeric(19,0) identity not null, NAME_ varchar(255) null, DESCRIPTION_ varchar(4000) null, PROCESSDEFINITION_ numeric(19,0) null, ISBLOCKING_ tinyint null, ISSIGNALLING_ tinyint null, CONDITION_ varchar(255) null, DUEDATE_ varchar(255) null, PRIORITY_ int null, ACTORIDEXPRESSION_ varchar(255) null, POOLEDACTORSEXPRESSION_ varchar(255) null, TASKMGMTDEFINITION_ numeric(19,0) null, TASKNODE_ numeric(19,0) null, STARTSTATE_ numeric(19,0) null, ASSIGNMENTDELEGATION_ numeric(19,0) null, SWIMLANE_ numeric(19,0) null, TASKCONTROLLER_ numeric(19,0) null, primary key (ID_))
+create table JBPM_TASKACTORPOOL (TASKINSTANCE_ numeric(19,0) not null, POOLEDACTOR_ numeric(19,0) not null, primary key (TASKINSTANCE_, POOLEDACTOR_))
+create table JBPM_TASKCONTROLLER (ID_ numeric(19,0) identity not null, TASKCONTROLLERDELEGATION_ numeric(19,0) null, primary key (ID_))
+create table JBPM_TASKINSTANCE (ID_ numeric(19,0) identity not null, CLASS_ char(1) not null, VERSION_ int not null, NAME_ varchar(255) null, DESCRIPTION_ varchar(4000) null, ACTORID_ varchar(255) null, CREATE_ datetime null, START_ datetime null, END_ datetime null, DUEDATE_ datetime null, PRIORITY_ int null, ISCANCELLED_ tinyint null, ISSUSPENDED_ tinyint null, ISOPEN_ tinyint null, ISSIGNALLING_ tinyint null, ISBLOCKING_ tinyint null, TASK_ numeric(19,0) null, TOKEN_ numeric(19,0) null, PROCINST_ numeric(19,0) null, SWIMLANINSTANCE_ numeric(19,0) null, TASKMGMTINSTANCE_ numeric(19,0) null, primary key (ID_))
+create table JBPM_TOKEN (ID_ numeric(19,0) identity not null, VERSION_ int not null, NAME_ varchar(255) null, START_ datetime null, END_ datetime null, NODEENTER_ datetime null, NEXTLOGINDEX_ int null, ISABLETOREACTIVATEPARENT_ tinyint null, ISTERMINATIONIMPLICIT_ tinyint null, ISSUSPENDED_ tinyint null, LOCK_ varchar(255) null, NODE_ numeric(19,0) null, PROCESSINSTANCE_ numeric(19,0) null, PARENT_ numeric(19,0) null, SUBPROCESSINSTANCE_ numeric(19,0) null, primary key (ID_))
+create table JBPM_TOKENVARIABLEMAP (ID_ numeric(19,0) identity not null, VERSION_ int not null, TOKEN_ numeric(19,0) null, CONTEXTINSTANCE_ numeric(19,0) null, primary key (ID_))
+create table JBPM_TRANSITION (ID_ numeric(19,0) identity not null, NAME_ varchar(255) null, DESCRIPTION_ varchar(4000) null, PROCESSDEFINITION_ numeric(19,0) null, FROM_ numeric(19,0) null, TO_ numeric(19,0) null, CONDITION_ varchar(255) null, FROMINDEX_ int null, primary key (ID_))
+create table JBPM_VARIABLEACCESS (ID_ numeric(19,0) identity not null, VARIABLENAME_ varchar(255) null, ACCESS_ varchar(255) null, MAPPEDNAME_ varchar(255) null, SCRIPT_ numeric(19,0) null, PROCESSSTATE_ numeric(19,0) null, TASKCONTROLLER_ numeric(19,0) null, INDEX_ int null, primary key (ID_))
+create table JBPM_VARIABLEINSTANCE (ID_ numeric(19,0) identity not null, CLASS_ char(1) not null, VERSION_ int not null, NAME_ varchar(255) null, CONVERTER_ char(1) null, TOKEN_ numeric(19,0) null, TOKENVARIABLEMAP_ numeric(19,0) null, PROCESSINSTANCE_ numeric(19,0) null, BYTEARRAYVALUE_ numeric(19,0) null, DATEVALUE_ datetime null, DOUBLEVALUE_ double precision null, LONGIDCLASS_ varchar(255) null, LONGVALUE_ numeric(19,0) null, STRINGIDCLASS_ varchar(255) null, STRINGVALUE_ varchar(4000) null, TASKINSTANCE_ numeric(19,0) null, primary key (ID_))
+create index IDX_ACTION_EVENT on JBPM_ACTION (EVENT_)
+create index IDX_ACTION_ACTNDL on JBPM_ACTION (ACTIONDELEGATION_)
+create index IDX_ACTION_PROCDF on JBPM_ACTION (PROCESSDEFINITION_)
+alter table JBPM_ACTION add constraint FK_ACTION_EVENT foreign key (EVENT_) references JBPM_EVENT
+alter table JBPM_ACTION add constraint FK_ACTION_EXPTHDL foreign key (EXCEPTIONHANDLER_) references JBPM_EXCEPTIONHANDLER
+alter table JBPM_ACTION add constraint FK_ACTION_PROCDEF foreign key (PROCESSDEFINITION_) references JBPM_PROCESSDEFINITION
+alter table JBPM_ACTION add constraint FK_CRTETIMERACT_TA foreign key (TIMERACTION_) references JBPM_ACTION
+alter table JBPM_ACTION add constraint FK_ACTION_ACTNDEL foreign key (ACTIONDELEGATION_) references JBPM_DELEGATION
+alter table JBPM_ACTION add constraint FK_ACTION_REFACT foreign key (REFERENCEDACTION_) references JBPM_ACTION
+alter table JBPM_BYTEARRAY add constraint FK_BYTEARR_FILDEF foreign key (FILEDEFINITION_) references JBPM_MODULEDEFINITION
+alter table JBPM_BYTEBLOCK add constraint FK_BYTEBLOCK_FILE foreign key (PROCESSFILE_) references JBPM_BYTEARRAY
+create index IDX_COMMENT_TOKEN on JBPM_COMMENT (TOKEN_)
+create index IDX_COMMENT_TSK on JBPM_COMMENT (TASKINSTANCE_)
+alter table JBPM_COMMENT add constraint FK_COMMENT_TOKEN foreign key (TOKEN_) references JBPM_TOKEN
+alter table JBPM_COMMENT add constraint FK_COMMENT_TSK foreign key (TASKINSTANCE_) references JBPM_TASKINSTANCE
+alter table JBPM_DECISIONCONDITIONS add constraint FK_DECCOND_DEC foreign key (DECISION_) references JBPM_NODE
+create index IDX_DELEG_PRCD on JBPM_DELEGATION (PROCESSDEFINITION_)
+alter table JBPM_DELEGATION add constraint FK_DELEGATION_PRCD foreign key (PROCESSDEFINITION_) references JBPM_PROCESSDEFINITION
+alter table JBPM_EVENT add constraint FK_EVENT_PROCDEF foreign key (PROCESSDEFINITION_) references JBPM_PROCESSDEFINITION
+alter table JBPM_EVENT add constraint FK_EVENT_NODE foreign key (NODE_) references JBPM_NODE
+alter table JBPM_EVENT add constraint FK_EVENT_TRANS foreign key (TRANSITION_) references JBPM_TRANSITION
+alter table JBPM_EVENT add constraint FK_EVENT_TASK foreign key (TASK_) references JBPM_TASK
+alter table JBPM_ID_GROUP add constraint FK_ID_GRP_PARENT foreign key (PARENT_) references JBPM_ID_GROUP
+alter table JBPM_ID_MEMBERSHIP add constraint FK_ID_MEMSHIP_GRP foreign key (GROUP_) references JBPM_ID_GROUP
+alter table JBPM_ID_MEMBERSHIP add constraint FK_ID_MEMSHIP_USR foreign key (USER_) references JBPM_ID_USER
+create index IDX_JOB_TSKINST on JBPM_JOB (TASKINSTANCE_)
+create index IDX_JOB_PRINST on JBPM_JOB (PROCESSINSTANCE_)
+create index IDX_JOB_TOKEN on JBPM_JOB (TOKEN_)
+alter table JBPM_JOB add constraint FK_JOB_TOKEN foreign key (TOKEN_) references JBPM_TOKEN
+alter table JBPM_JOB add constraint FK_JOB_NODE foreign key (NODE_) references JBPM_NODE
+alter table JBPM_JOB add constraint FK_JOB_PRINST foreign key (PROCESSINSTANCE_) references JBPM_PROCESSINSTANCE
+alter table JBPM_JOB add constraint FK_JOB_ACTION foreign key (ACTION_) references JBPM_ACTION
+alter table JBPM_JOB add constraint FK_JOB_TSKINST foreign key (TASKINSTANCE_) references JBPM_TASKINSTANCE
+alter table JBPM_LOG add constraint FK_LOG_SOURCENODE foreign key (SOURCENODE_) references JBPM_NODE
+alter table JBPM_LOG add constraint FK_LOG_TOKEN foreign key (TOKEN_) references JBPM_TOKEN
+alter table JBPM_LOG add constraint FK_LOG_OLDBYTES foreign key (OLDBYTEARRAY_) references JBPM_BYTEARRAY
+alter table JBPM_LOG add constraint FK_LOG_NEWBYTES foreign key (NEWBYTEARRAY_) references JBPM_BYTEARRAY
+alter table JBPM_LOG add constraint FK_LOG_CHILDTOKEN foreign key (CHILD_) references JBPM_TOKEN
+alter table JBPM_LOG add constraint FK_LOG_DESTNODE foreign key (DESTINATIONNODE_) references JBPM_NODE
+alter table JBPM_LOG add constraint FK_LOG_TASKINST foreign key (TASKINSTANCE_) references JBPM_TASKINSTANCE
+alter table JBPM_LOG add constraint FK_LOG_SWIMINST foreign key (SWIMLANEINSTANCE_) references JBPM_SWIMLANEINSTANCE
+alter table JBPM_LOG add constraint FK_LOG_PARENT foreign key (PARENT_) references JBPM_LOG
+alter table JBPM_LOG add constraint FK_LOG_NODE foreign key (NODE_) references JBPM_NODE
+alter table JBPM_LOG add constraint FK_LOG_ACTION foreign key (ACTION_) references JBPM_ACTION
+alter table JBPM_LOG add constraint FK_LOG_VARINST foreign key (VARIABLEINSTANCE_) references JBPM_VARIABLEINSTANCE
+alter table JBPM_LOG add constraint FK_LOG_TRANSITION foreign key (TRANSITION_) references JBPM_TRANSITION
+create index IDX_MODDEF_PROCDF on JBPM_MODULEDEFINITION (PROCESSDEFINITION_)
+alter table JBPM_MODULEDEFINITION add constraint FK_TSKDEF_START foreign key (STARTTASK_) references JBPM_TASK
+alter table JBPM_MODULEDEFINITION add constraint FK_MODDEF_PROCDEF foreign key (PROCESSDEFINITION_) references JBPM_PROCESSDEFINITION
+create index IDX_MODINST_PRINST on JBPM_MODULEINSTANCE (PROCESSINSTANCE_)
+alter table JBPM_MODULEINSTANCE add constraint FK_TASKMGTINST_TMD foreign key (TASKMGMTDEFINITION_) references JBPM_MODULEDEFINITION
+alter table JBPM_MODULEINSTANCE add constraint FK_MODINST_PRCINST foreign key (PROCESSINSTANCE_) references JBPM_PROCESSINSTANCE
+create index IDX_PSTATE_SBPRCDEF on JBPM_NODE (SUBPROCESSDEFINITION_)
+create index IDX_NODE_SUPRSTATE on JBPM_NODE (SUPERSTATE_)
+create index IDX_NODE_PROCDEF on JBPM_NODE (PROCESSDEFINITION_)
+create index IDX_NODE_ACTION on JBPM_NODE (ACTION_)
+alter table JBPM_NODE add constraint FK_PROCST_SBPRCDEF foreign key (SUBPROCESSDEFINITION_) references JBPM_PROCESSDEFINITION
+alter table JBPM_NODE add constraint FK_NODE_PROCDEF foreign key (PROCESSDEFINITION_) references JBPM_PROCESSDEFINITION
+alter table JBPM_NODE add constraint FK_NODE_SCRIPT foreign key (SCRIPT_) references JBPM_ACTION
+alter table JBPM_NODE add constraint FK_NODE_ACTION foreign key (ACTION_) references JBPM_ACTION
+alter table JBPM_NODE add constraint FK_DECISION_DELEG foreign key (DECISIONDELEGATION) references JBPM_DELEGATION
+alter table JBPM_NODE add constraint FK_NODE_SUPERSTATE foreign key (SUPERSTATE_) references JBPM_NODE
+create index IDX_PLDACTR_ACTID on JBPM_POOLEDACTOR (ACTORID_)
+create index IDX_TSKINST_SWLANE on JBPM_POOLEDACTOR (SWIMLANEINSTANCE_)
+alter table JBPM_POOLEDACTOR add constraint FK_POOLEDACTOR_SLI foreign key (SWIMLANEINSTANCE_) references JBPM_SWIMLANEINSTANCE
+create index IDX_PROCDEF_STRTST on JBPM_PROCESSDEFINITION (STARTSTATE_)
+alter table JBPM_PROCESSDEFINITION add constraint FK_PROCDEF_STRTSTA foreign key (STARTSTATE_) references JBPM_NODE
+create index IDX_PROCIN_ROOTTK on JBPM_PROCESSINSTANCE (ROOTTOKEN_)
+create index IDX_PROCIN_SPROCTK on JBPM_PROCESSINSTANCE (SUPERPROCESSTOKEN_)
+create index IDX_PROCIN_KEY on JBPM_PROCESSINSTANCE (KEY_)
+create index IDX_PROCIN_PROCDEF on JBPM_PROCESSINSTANCE (PROCESSDEFINITION_)
+alter table JBPM_PROCESSINSTANCE add constraint FK_PROCIN_PROCDEF foreign key (PROCESSDEFINITION_) references JBPM_PROCESSDEFINITION
+alter table JBPM_PROCESSINSTANCE add constraint FK_PROCIN_ROOTTKN foreign key (ROOTTOKEN_) references JBPM_TOKEN
+alter table JBPM_PROCESSINSTANCE add constraint FK_PROCIN_SPROCTKN foreign key (SUPERPROCESSTOKEN_) references JBPM_TOKEN
+create index IDX_RTACTN_PRCINST on JBPM_RUNTIMEACTION (PROCESSINSTANCE_)
+create index IDX_RTACTN_ACTION on JBPM_RUNTIMEACTION (ACTION_)
+alter table JBPM_RUNTIMEACTION add constraint FK_RTACTN_PROCINST foreign key (PROCESSINSTANCE_) references JBPM_PROCESSINSTANCE
+alter table JBPM_RUNTIMEACTION add constraint FK_RTACTN_ACTION foreign key (ACTION_) references JBPM_ACTION
+alter table JBPM_SWIMLANE add constraint FK_SWL_ASSDEL foreign key (ASSIGNMENTDELEGATION_) references JBPM_DELEGATION
+alter table JBPM_SWIMLANE add constraint FK_SWL_TSKMGMTDEF foreign key (TASKMGMTDEFINITION_) references JBPM_MODULEDEFINITION
+create index IDX_SWIMLINST_SL on JBPM_SWIMLANEINSTANCE (SWIMLANE_)
+alter table JBPM_SWIMLANEINSTANCE add constraint FK_SWIMLANEINST_TM foreign key (TASKMGMTINSTANCE_) references JBPM_MODULEINSTANCE
+alter table JBPM_SWIMLANEINSTANCE add constraint FK_SWIMLANEINST_SL foreign key (SWIMLANE_) references JBPM_SWIMLANE
+create index IDX_TASK_TSKNODE on JBPM_TASK (TASKNODE_)
+create index IDX_TASK_PROCDEF on JBPM_TASK (PROCESSDEFINITION_)
+create index IDX_TASK_TASKMGTDF on JBPM_TASK (TASKMGMTDEFINITION_)
+alter table JBPM_TASK add constraint FK_TSK_TSKCTRL foreign key (TASKCONTROLLER_) references JBPM_TASKCONTROLLER
+alter table JBPM_TASK add constraint FK_TASK_ASSDEL foreign key (ASSIGNMENTDELEGATION_) references JBPM_DELEGATION
+alter table JBPM_TASK add constraint FK_TASK_TASKNODE foreign key (TASKNODE_) references JBPM_NODE
+alter table JBPM_TASK add constraint FK_TASK_PROCDEF foreign key (PROCESSDEFINITION_) references JBPM_PROCESSDEFINITION
+alter table JBPM_TASK add constraint FK_TASK_STARTST foreign key (STARTSTATE_) references JBPM_NODE
+alter table JBPM_TASK add constraint FK_TASK_TASKMGTDEF foreign key (TASKMGMTDEFINITION_) references JBPM_MODULEDEFINITION
+alter table JBPM_TASK add constraint FK_TASK_SWIMLANE foreign key (SWIMLANE_) references JBPM_SWIMLANE
+alter table JBPM_TASKACTORPOOL add constraint FK_TSKACTPOL_PLACT foreign key (POOLEDACTOR_) references JBPM_POOLEDACTOR
+alter table JBPM_TASKACTORPOOL add constraint FK_TASKACTPL_TSKI foreign key (TASKINSTANCE_) references JBPM_TASKINSTANCE
+alter table JBPM_TASKCONTROLLER add constraint FK_TSKCTRL_DELEG foreign key (TASKCONTROLLERDELEGATION_) references JBPM_DELEGATION
+create index IDX_TASKINST_TOKN on JBPM_TASKINSTANCE (TOKEN_)
+create index IDX_TASKINST_TSK on JBPM_TASKINSTANCE (TASK_, PROCINST_)
+create index IDX_TSKINST_TMINST on JBPM_TASKINSTANCE (TASKMGMTINSTANCE_)
+create index IDX_TSKINST_SLINST on JBPM_TASKINSTANCE (SWIMLANINSTANCE_)
+create index IDX_TASK_ACTORID on JBPM_TASKINSTANCE (ACTORID_)
+alter table JBPM_TASKINSTANCE add constraint FK_TSKINS_PRCINS foreign key (PROCINST_) references JBPM_PROCESSINSTANCE
+alter table JBPM_TASKINSTANCE add constraint FK_TASKINST_TMINST foreign key (TASKMGMTINSTANCE_) references JBPM_MODULEINSTANCE
+alter table JBPM_TASKINSTANCE add constraint FK_TASKINST_TOKEN foreign key (TOKEN_) references JBPM_TOKEN
+alter table JBPM_TASKINSTANCE add constraint FK_TASKINST_SLINST foreign key (SWIMLANINSTANCE_) references JBPM_SWIMLANEINSTANCE
+alter table JBPM_TASKINSTANCE add constraint FK_TASKINST_TASK foreign key (TASK_) references JBPM_TASK
+create index IDX_TOKEN_PROCIN on JBPM_TOKEN (PROCESSINSTANCE_)
+create index IDX_TOKEN_SUBPI on JBPM_TOKEN (SUBPROCESSINSTANCE_)
+create index IDX_TOKEN_NODE on JBPM_TOKEN (NODE_)
+create index IDX_TOKEN_PARENT on JBPM_TOKEN (PARENT_)
+alter table JBPM_TOKEN add constraint FK_TOKEN_PARENT foreign key (PARENT_) references JBPM_TOKEN
+alter table JBPM_TOKEN add constraint FK_TOKEN_NODE foreign key (NODE_) references JBPM_NODE
+alter table JBPM_TOKEN add constraint FK_TOKEN_PROCINST foreign key (PROCESSINSTANCE_) references JBPM_PROCESSINSTANCE
+alter table JBPM_TOKEN add constraint FK_TOKEN_SUBPI foreign key (SUBPROCESSINSTANCE_) references JBPM_PROCESSINSTANCE
+create index IDX_TKVARMAP_CTXT on JBPM_TOKENVARIABLEMAP (CONTEXTINSTANCE_)
+create index IDX_TKVVARMP_TOKEN on JBPM_TOKENVARIABLEMAP (TOKEN_)
+alter table JBPM_TOKENVARIABLEMAP add constraint FK_TKVARMAP_CTXT foreign key (CONTEXTINSTANCE_) references JBPM_MODULEINSTANCE
+alter table JBPM_TOKENVARIABLEMAP add constraint FK_TKVARMAP_TOKEN foreign key (TOKEN_) references JBPM_TOKEN
+create index IDX_TRANSIT_TO on JBPM_TRANSITION (TO_)
+create index IDX_TRANSIT_FROM on JBPM_TRANSITION (FROM_)
+create index IDX_TRANS_PROCDEF on JBPM_TRANSITION (PROCESSDEFINITION_)
+alter table JBPM_TRANSITION add constraint FK_TRANSITION_TO foreign key (TO_) references JBPM_NODE
+alter table JBPM_TRANSITION add constraint FK_TRANS_PROCDEF foreign key (PROCESSDEFINITION_) references JBPM_PROCESSDEFINITION
+alter table JBPM_TRANSITION add constraint FK_TRANSITION_FROM foreign key (FROM_) references JBPM_NODE
+alter table JBPM_VARIABLEACCESS add constraint FK_VARACC_TSKCTRL foreign key (TASKCONTROLLER_) references JBPM_TASKCONTROLLER
+alter table JBPM_VARIABLEACCESS add constraint FK_VARACC_SCRIPT foreign key (SCRIPT_) references JBPM_ACTION
+alter table JBPM_VARIABLEACCESS add constraint FK_VARACC_PROCST foreign key (PROCESSSTATE_) references JBPM_NODE
+create index IDX_VARINST_TKVARMP on JBPM_VARIABLEINSTANCE (TOKENVARIABLEMAP_)
+create index IDX_VARINST_PRCINS on JBPM_VARIABLEINSTANCE (PROCESSINSTANCE_)
+create index IDX_VARINST_TK on JBPM_VARIABLEINSTANCE (TOKEN_)
+alter table JBPM_VARIABLEINSTANCE add constraint FK_VARINST_TK foreign key (TOKEN_) references JBPM_TOKEN
+alter table JBPM_VARIABLEINSTANCE add constraint FK_VARINST_TKVARMP foreign key (TOKENVARIABLEMAP_) references JBPM_TOKENVARIABLEMAP
+alter table JBPM_VARIABLEINSTANCE add constraint FK_VARINST_PRCINST foreign key (PROCESSINSTANCE_) references JBPM_PROCESSINSTANCE
+alter table JBPM_VARIABLEINSTANCE add constraint FK_VAR_TSKINST foreign key (TASKINSTANCE_) references JBPM_TASKINSTANCE
+alter table JBPM_VARIABLEINSTANCE add constraint FK_BYTEINST_ARRAY foreign key (BYTEARRAYVALUE_) references JBPM_BYTEARRAY
Modified: labs/jbossesb/workspace/mlittle/legstar/product/services/jbpm/src/main/resources/jbpm-sql/jbpm.jpdl.mysql.sql
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/services/jbpm/src/main/resources/jbpm-sql/jbpm.jpdl.mysql.sql 2009-01-21 14:47:17 UTC (rev 24849)
+++ labs/jbossesb/workspace/mlittle/legstar/product/services/jbpm/src/main/resources/jbpm-sql/jbpm.jpdl.mysql.sql 2009-01-21 15:38:08 UTC (rev 24850)
@@ -12,9 +12,9 @@
create table JBPM_ID_USER (ID_ bigint not null auto_increment, CLASS_ char(1) not null, NAME_ varchar(255), EMAIL_ varchar(255), PASSWORD_ varchar(255), primary key (ID_)) type=InnoDB;
create table JBPM_JOB (ID_ bigint not null auto_increment, CLASS_ char(1) not null, VERSION_ integer not null, DUEDATE_ datetime, PROCESSINSTANCE_ bigint, TOKEN_ bigint, TASKINSTANCE_ bigint, ISSUSPENDED_ bit, ISEXCLUSIVE_ bit, LOCKOWNER_ varchar(255), LOCKTIME_ datetime, EXCEPTION_ text, RETRIES_ integer, NAME_ varchar(255), REPEAT_ varchar(255), TRANSITIONNAME_ varchar(255), ACTION_ bigint, GRAPHELEMENTTYPE_ varchar(255), GRAPHELEMENT_ bigint, NODE_ bigint, primary key (ID_)) type=InnoDB;
create table JBPM_LOG (ID_ bigint not null auto_increment, CLASS_ char(1) not null, INDEX_ integer, DATE_ datetime, TOKEN_ bigint, PARENT_ bigint, MESSAGE_ text, EXCEPTION_ text, ACTION_ bigint, NODE_ bigint, ENTER_ datetime, LEAVE_ datetime, DURATION_ bigint, NEWLONGVALUE_ bigint, TRANSITION_ bigint, CHILD_ bigint, SOURCENODE_ bigint, DESTINATIONNODE_ bigint, VARIABLEINSTANCE_ bigint, OLDBYTEARRAY_ bigint, NEWBYTEARRAY_ bigint, OLDDATEVALUE_ datetime, NEWDATEVALUE_ datetime, OLDDOUBLEVALUE_ double precision, NEWDOUBLEVALUE_ double precision, OLDLONGIDCLASS_ varchar(255), OLDLONGIDVALUE_ bigint, NEWLONGIDCLASS_ varchar(255), NEWLONGIDVALUE_ bigint, OLDSTRINGIDCLASS_ varchar(255), OLDSTRINGIDVALUE_ varchar(255), NEWSTRINGIDCLASS_ varchar(255), NEWSTRINGIDVALUE_ varchar(255), OLDLONGVALUE_ bigint, OLDSTRINGVALUE_ text, NEWSTRINGVALUE_ text, TASKINSTANCE_ bigint, TASKACTORID_ varchar(255), TASKOLDACTORID_ varchar(255), SWIMLANEINSTANCE_ bigint, primary key (ID_)) type=InnoDB;
-create table JBPM_MODULEDEFINITION (ID_ bigint not null auto_increment, CLASS_ char(1) not null, NAME_ text, PROCESSDEFINITION_ bigint, STARTTASK_ bigint, primary key (ID_)) type=InnoDB;
-create table JBPM_MODULEINSTANCE (ID_ bigint not null auto_increment, CLASS_ char(1) not null, VERSION_ integer not null, PROCESSINSTANCE_ bigint, TASKMGMTDEFINITION_ bigint, NAME_ varchar(255), primary key (ID_)) type=InnoDB;
-create table JBPM_NODE (ID_ bigint not null auto_increment, CLASS_ char(1) not null, NAME_ varchar(255), DESCRIPTION_ text, PROCESSDEFINITION_ bigint, ISASYNC_ bit, ISASYNCEXCL_ bit, ACTION_ bigint, SUPERSTATE_ bigint, SUBPROCNAME_ varchar(255), SUBPROCESSDEFINITION_ bigint, DECISIONEXPRESSION_ varchar(255), DECISIONDELEGATION bigint, SCRIPT_ bigint, SIGNAL_ integer, CREATETASKS_ bit, ENDTASKS_ bit, NODECOLLECTIONINDEX_ integer, primary key (ID_)) type=InnoDB;
+create table JBPM_MODULEDEFINITION (ID_ bigint not null auto_increment, CLASS_ char(1) not null, NAME_ varchar(255), PROCESSDEFINITION_ bigint, STARTTASK_ bigint, primary key (ID_)) type=InnoDB;
+create table JBPM_MODULEINSTANCE (ID_ bigint not null auto_increment, CLASS_ char(1) not null, VERSION_ integer not null, PROCESSINSTANCE_ bigint, TASKMGMTDEFINITION_ bigint, NAME_ varchar(4000), primary key (ID_)) type=InnoDB;
+create table JBPM_NODE (ID_ bigint not null auto_increment, CLASS_ char(1) not null, NAME_ varchar(255), DESCRIPTION_ text, PROCESSDEFINITION_ bigint, ISASYNC_ bit, ISASYNCEXCL_ bit, ACTION_ bigint, SUPERSTATE_ bigint, SUBPROCNAME_ varchar(255), SUBPROCESSDEFINITION_ bigint, DECISIONEXPRESSION_ varchar(255), DECISIONDELEGATION bigint, SCRIPT_ bigint, PARENTLOCKMODE_ varchar(255), SIGNAL_ integer, CREATETASKS_ bit, ENDTASKS_ bit, NODECOLLECTIONINDEX_ integer, primary key (ID_)) type=InnoDB;
create table JBPM_POOLEDACTOR (ID_ bigint not null auto_increment, VERSION_ integer not null, ACTORID_ varchar(255), SWIMLANEINSTANCE_ bigint, primary key (ID_)) type=InnoDB;
create table JBPM_PROCESSDEFINITION (ID_ bigint not null auto_increment, CLASS_ char(1) not null, NAME_ varchar(255), DESCRIPTION_ text, VERSION_ integer, ISTERMINATIONIMPLICIT_ bit, STARTSTATE_ bigint, primary key (ID_)) type=InnoDB;
create table JBPM_PROCESSINSTANCE (ID_ bigint not null auto_increment, VERSION_ integer not null, KEY_ varchar(255), START_ datetime, END_ datetime, ISSUSPENDED_ bit, PROCESSDEFINITION_ bigint, ROOTTOKEN_ bigint, SUPERPROCESSTOKEN_ bigint, primary key (ID_)) type=InnoDB;
@@ -29,7 +29,7 @@
create table JBPM_TOKENVARIABLEMAP (ID_ bigint not null auto_increment, VERSION_ integer not null, TOKEN_ bigint, CONTEXTINSTANCE_ bigint, primary key (ID_)) type=InnoDB;
create table JBPM_TRANSITION (ID_ bigint not null auto_increment, NAME_ varchar(255), DESCRIPTION_ text, PROCESSDEFINITION_ bigint, FROM_ bigint, TO_ bigint, CONDITION_ varchar(255), FROMINDEX_ integer, primary key (ID_)) type=InnoDB;
create table JBPM_VARIABLEACCESS (ID_ bigint not null auto_increment, VARIABLENAME_ varchar(255), ACCESS_ varchar(255), MAPPEDNAME_ varchar(255), SCRIPT_ bigint, PROCESSSTATE_ bigint, TASKCONTROLLER_ bigint, INDEX_ integer, primary key (ID_)) type=InnoDB;
-create table JBPM_VARIABLEINSTANCE (ID_ bigint not null auto_increment, CLASS_ char(1) not null, VERSION_ integer not null, NAME_ varchar(255), CONVERTER_ char(1), TOKEN_ bigint, TOKENVARIABLEMAP_ bigint, PROCESSINSTANCE_ bigint, BYTEARRAYVALUE_ bigint, DATEVALUE_ datetime, DOUBLEVALUE_ double precision, LONGIDCLASS_ varchar(255), LONGVALUE_ bigint, STRINGIDCLASS_ varchar(255), STRINGVALUE_ text, TASKINSTANCE_ bigint, primary key (ID_)) type=InnoDB;
+create table JBPM_VARIABLEINSTANCE (ID_ bigint not null auto_increment, CLASS_ char(1) not null, VERSION_ integer not null, NAME_ varchar(255), CONVERTER_ char(1), TOKEN_ bigint, TOKENVARIABLEMAP_ bigint, PROCESSINSTANCE_ bigint, BYTEARRAYVALUE_ bigint, DATEVALUE_ datetime, DOUBLEVALUE_ double precision, LONGIDCLASS_ varchar(255), LONGVALUE_ bigint, STRINGIDCLASS_ varchar(255), STRINGVALUE_ varchar(4000), TASKINSTANCE_ bigint, primary key (ID_)) type=InnoDB;
create index IDX_ACTION_EVENT on JBPM_ACTION (EVENT_);
create index IDX_ACTION_ACTNDL on JBPM_ACTION (ACTIONDELEGATION_);
create index IDX_ACTION_PROCDF on JBPM_ACTION (PROCESSDEFINITION_);
Modified: labs/jbossesb/workspace/mlittle/legstar/product/services/jbpm/src/main/resources/jbpm-sql/jbpm.jpdl.oracle.sql
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/services/jbpm/src/main/resources/jbpm-sql/jbpm.jpdl.oracle.sql 2009-01-21 14:47:17 UTC (rev 24849)
+++ labs/jbossesb/workspace/mlittle/legstar/product/services/jbpm/src/main/resources/jbpm-sql/jbpm.jpdl.oracle.sql 2009-01-21 15:38:08 UTC (rev 24850)
@@ -1,33 +1,33 @@
-create table JBPM_ACTION (ID_ number(19,0) not null, class char(1 char) not null, NAME_ varchar2(255 char), ISPROPAGATIONALLOWED_ number(1,0), ACTIONEXPRESSION_ varchar2(255 char), ISASYNC_ number(1,0), REFERENCEDACTION_ number(19,0), ACTIONDELEGATION_ number(19,0), EVENT_ number(19,0), PROCESSDEFINITION_ number(19,0), EXPRESSION_ varchar2(4000 char), TIMERNAME_ varchar2(255 char), DUEDATE_ varchar2(255 char), REPEAT_ varchar2(255 char), TRANSITIONNAME_ varchar2(255 char), TIMERACTION_ number(19,0), EVENTINDEX_ number(10,0), EXCEPTIONHANDLER_ number(19,0), EXCEPTIONHANDLERINDEX_ number(10,0), primary key (ID_));
+create table JBPM_ACTION (ID_ number(19,0) not null, class char(1 char) not null, NAME_ varchar2(255 char), ISPROPAGATIONALLOWED_ number(1,0), ACTIONEXPRESSION_ varchar2(255 char), ISASYNC_ number(1,0), REFERENCEDACTION_ number(19,0), ACTIONDELEGATION_ number(19,0), EVENT_ number(19,0), PROCESSDEFINITION_ number(19,0), EXPRESSION_ clob, TIMERNAME_ varchar2(255 char), DUEDATE_ varchar2(255 char), REPEAT_ varchar2(255 char), TRANSITIONNAME_ varchar2(255 char), TIMERACTION_ number(19,0), EVENTINDEX_ number(10,0), EXCEPTIONHANDLER_ number(19,0), EXCEPTIONHANDLERINDEX_ number(10,0), primary key (ID_));
create table JBPM_BYTEARRAY (ID_ number(19,0) not null, NAME_ varchar2(255 char), FILEDEFINITION_ number(19,0), primary key (ID_));
create table JBPM_BYTEBLOCK (PROCESSFILE_ number(19,0) not null, BYTES_ raw(1024), INDEX_ number(10,0) not null, primary key (PROCESSFILE_, INDEX_));
-create table JBPM_COMMENT (ID_ number(19,0) not null, VERSION_ number(10,0) not null, ACTORID_ varchar2(255 char), TIME_ timestamp, MESSAGE_ varchar2(4000 char), TOKEN_ number(19,0), TASKINSTANCE_ number(19,0), TOKENINDEX_ number(10,0), TASKINSTANCEINDEX_ number(10,0), primary key (ID_));
+create table JBPM_COMMENT (ID_ number(19,0) not null, VERSION_ number(10,0) not null, ACTORID_ varchar2(255 char), TIME_ timestamp, MESSAGE_ clob, TOKEN_ number(19,0), TASKINSTANCE_ number(19,0), TOKENINDEX_ number(10,0), TASKINSTANCEINDEX_ number(10,0), primary key (ID_));
create table JBPM_DECISIONCONDITIONS (DECISION_ number(19,0) not null, TRANSITIONNAME_ varchar2(255 char), EXPRESSION_ varchar2(255 char), INDEX_ number(10,0) not null, primary key (DECISION_, INDEX_));
-create table JBPM_DELEGATION (ID_ number(19,0) not null, CLASSNAME_ varchar2(4000 char), CONFIGURATION_ varchar2(4000 char), CONFIGTYPE_ varchar2(255 char), PROCESSDEFINITION_ number(19,0), primary key (ID_));
+create table JBPM_DELEGATION (ID_ number(19,0) not null, CLASSNAME_ clob, CONFIGURATION_ clob, CONFIGTYPE_ varchar2(255 char), PROCESSDEFINITION_ number(19,0), primary key (ID_));
create table JBPM_EVENT (ID_ number(19,0) not null, EVENTTYPE_ varchar2(255 char), TYPE_ char(1 char), GRAPHELEMENT_ number(19,0), PROCESSDEFINITION_ number(19,0), NODE_ number(19,0), TRANSITION_ number(19,0), TASK_ number(19,0), primary key (ID_));
-create table JBPM_EXCEPTIONHANDLER (ID_ number(19,0) not null, EXCEPTIONCLASSNAME_ varchar2(4000 char), TYPE_ char(1 char), GRAPHELEMENT_ number(19,0), PROCESSDEFINITION_ number(19,0), GRAPHELEMENTINDEX_ number(10,0), NODE_ number(19,0), TRANSITION_ number(19,0), TASK_ number(19,0), primary key (ID_));
+create table JBPM_EXCEPTIONHANDLER (ID_ number(19,0) not null, EXCEPTIONCLASSNAME_ clob, TYPE_ char(1 char), GRAPHELEMENT_ number(19,0), PROCESSDEFINITION_ number(19,0), GRAPHELEMENTINDEX_ number(10,0), NODE_ number(19,0), TRANSITION_ number(19,0), TASK_ number(19,0), primary key (ID_));
create table JBPM_ID_GROUP (ID_ number(19,0) not null, CLASS_ char(1 char) not null, NAME_ varchar2(255 char), TYPE_ varchar2(255 char), PARENT_ number(19,0), primary key (ID_));
create table JBPM_ID_MEMBERSHIP (ID_ number(19,0) not null, CLASS_ char(1 char) not null, NAME_ varchar2(255 char), ROLE_ varchar2(255 char), USER_ number(19,0), GROUP_ number(19,0), primary key (ID_));
create table JBPM_ID_PERMISSIONS (ENTITY_ number(19,0) not null, CLASS_ varchar2(255 char), NAME_ varchar2(255 char), ACTION_ varchar2(255 char));
create table JBPM_ID_USER (ID_ number(19,0) not null, CLASS_ char(1 char) not null, NAME_ varchar2(255 char), EMAIL_ varchar2(255 char), PASSWORD_ varchar2(255 char), primary key (ID_));
-create table JBPM_JOB (ID_ number(19,0) not null, CLASS_ char(1 char) not null, VERSION_ number(10,0) not null, DUEDATE_ timestamp, PROCESSINSTANCE_ number(19,0), TOKEN_ number(19,0), TASKINSTANCE_ number(19,0), ISSUSPENDED_ number(1,0), ISEXCLUSIVE_ number(1,0), LOCKOWNER_ varchar2(255 char), LOCKTIME_ timestamp, EXCEPTION_ varchar2(4000 char), RETRIES_ number(10,0), NAME_ varchar2(255 char), REPEAT_ varchar2(255 char), TRANSITIONNAME_ varchar2(255 char), ACTION_ number(19,0), GRAPHELEMENTTYPE_ varchar2(255 char), GRAPHELEMENT_ number(19,0), NODE_ number(19,0), primary key (ID_));
-create table JBPM_LOG (ID_ number(19,0) not null, CLASS_ char(1 char) not null, INDEX_ number(10,0), DATE_ timestamp, TOKEN_ number(19,0), PARENT_ number(19,0), MESSAGE_ varchar2(4000 char), EXCEPTION_ varchar2(4000 char), ACTION_ number(19,0), NODE_ number(19,0), ENTER_ timestamp, LEAVE_ timestamp, DURATION_ number(19,0), NEWLONGVALUE_ number(19,0), TRANSITION_ number(19,0), CHILD_ number(19,0), SOURCENODE_ number(19,0), DESTINATIONNODE_ number(19,0), VARIABLEINSTANCE_ number(19,0), OLDBYTEARRAY_ number(19,0), NEWBYTEARRAY_ number(19,0), OLDDATEVALUE_ timestamp, NEWDATEVALUE_ timestamp, OLDDOUBLEVALUE_ double precision, NEWDOUBLEVALUE_ double precision, OLDLONGIDCLASS_ varchar2(255 char), OLDLONGIDVALUE_ number(19,0), NEWLONGIDCLASS_ varchar2(255 char), NEWLONGIDVALUE_ number(19,0), OLDSTRINGIDCLASS_ varchar2(255 char), OLDSTRINGIDVALUE_ varchar2(255 char), NEWSTRINGIDCLASS_ varchar2(255 char), NEWSTRINGIDVALUE_ varchar2(255 char), OLDLONGVALUE_ number(19,0), OLDSTRINGVALU!
E_ varchar2(4000 char), NEWSTRINGVALUE_ varchar2(4000 char), TASKINSTANCE_ number(19,0), TASKACTORID_ varchar2(255 char), TASKOLDACTORID_ varchar2(255 char), SWIMLANEINSTANCE_ number(19,0), primary key (ID_));
+create table JBPM_JOB (ID_ number(19,0) not null, CLASS_ char(1 char) not null, VERSION_ number(10,0) not null, DUEDATE_ timestamp, PROCESSINSTANCE_ number(19,0), TOKEN_ number(19,0), TASKINSTANCE_ number(19,0), ISSUSPENDED_ number(1,0), ISEXCLUSIVE_ number(1,0), LOCKOWNER_ varchar2(255 char), LOCKTIME_ timestamp, EXCEPTION_ clob, RETRIES_ number(10,0), NAME_ varchar2(255 char), REPEAT_ varchar2(255 char), TRANSITIONNAME_ varchar2(255 char), ACTION_ number(19,0), GRAPHELEMENTTYPE_ varchar2(255 char), GRAPHELEMENT_ number(19,0), NODE_ number(19,0), primary key (ID_));
+create table JBPM_LOG (ID_ number(19,0) not null, CLASS_ char(1 char) not null, INDEX_ number(10,0), DATE_ timestamp, TOKEN_ number(19,0), PARENT_ number(19,0), MESSAGE_ clob, EXCEPTION_ clob, ACTION_ number(19,0), NODE_ number(19,0), ENTER_ timestamp, LEAVE_ timestamp, DURATION_ number(19,0), NEWLONGVALUE_ number(19,0), TRANSITION_ number(19,0), CHILD_ number(19,0), SOURCENODE_ number(19,0), DESTINATIONNODE_ number(19,0), VARIABLEINSTANCE_ number(19,0), OLDBYTEARRAY_ number(19,0), NEWBYTEARRAY_ number(19,0), OLDDATEVALUE_ timestamp, NEWDATEVALUE_ timestamp, OLDDOUBLEVALUE_ double precision, NEWDOUBLEVALUE_ double precision, OLDLONGIDCLASS_ varchar2(255 char), OLDLONGIDVALUE_ number(19,0), NEWLONGIDCLASS_ varchar2(255 char), NEWLONGIDVALUE_ number(19,0), OLDSTRINGIDCLASS_ varchar2(255 char), OLDSTRINGIDVALUE_ varchar2(4000 char), NEWSTRINGIDCLASS_ varchar2(4000 char), NEWSTRINGIDVALUE_ varchar2(255 char), OLDLONGVALUE_ number(19,0), OLDSTRINGVALUE_ clob, NEWSTRINGVALUE_ clo!
b, TASKINSTANCE_ number(19,0), TASKACTORID_ varchar2(255 char), TASKOLDACTORID_ varchar2(255 char), SWIMLANEINSTANCE_ number(19,0), primary key (ID_));
create table JBPM_MODULEDEFINITION (ID_ number(19,0) not null, CLASS_ char(1 char) not null, NAME_ varchar2(4000 char), PROCESSDEFINITION_ number(19,0), STARTTASK_ number(19,0), primary key (ID_));
create table JBPM_MODULEINSTANCE (ID_ number(19,0) not null, CLASS_ char(1 char) not null, VERSION_ number(10,0) not null, PROCESSINSTANCE_ number(19,0), TASKMGMTDEFINITION_ number(19,0), NAME_ varchar2(255 char), primary key (ID_));
-create table JBPM_NODE (ID_ number(19,0) not null, CLASS_ char(1 char) not null, NAME_ varchar2(255 char), DESCRIPTION_ varchar2(4000 char), PROCESSDEFINITION_ number(19,0), ISASYNC_ number(1,0), ISASYNCEXCL_ number(1,0), ACTION_ number(19,0), SUPERSTATE_ number(19,0), SUBPROCNAME_ varchar2(255 char), SUBPROCESSDEFINITION_ number(19,0), DECISIONEXPRESSION_ varchar2(255 char), DECISIONDELEGATION number(19,0), SCRIPT_ number(19,0), SIGNAL_ number(10,0), CREATETASKS_ number(1,0), ENDTASKS_ number(1,0), NODECOLLECTIONINDEX_ number(10,0), primary key (ID_));
+create table JBPM_NODE (ID_ number(19,0) not null, CLASS_ char(1 char) not null, NAME_ varchar2(255 char), DESCRIPTION_ clob, PROCESSDEFINITION_ number(19,0), ISASYNC_ number(1,0), ISASYNCEXCL_ number(1,0), ACTION_ number(19,0), SUPERSTATE_ number(19,0), SUBPROCNAME_ varchar2(255 char), SUBPROCESSDEFINITION_ number(19,0), DECISIONEXPRESSION_ varchar2(255 char), DECISIONDELEGATION number(19,0), SCRIPT_ number(19,0), PARENTLOCKMODE_ varchar2(255 char), SIGNAL_ number(10,0), CREATETASKS_ number(1,0), ENDTASKS_ number(1,0), NODECOLLECTIONINDEX_ number(10,0), primary key (ID_));
create table JBPM_POOLEDACTOR (ID_ number(19,0) not null, VERSION_ number(10,0) not null, ACTORID_ varchar2(255 char), SWIMLANEINSTANCE_ number(19,0), primary key (ID_));
-create table JBPM_PROCESSDEFINITION (ID_ number(19,0) not null, CLASS_ char(1 char) not null, NAME_ varchar2(255 char), DESCRIPTION_ varchar2(4000 char), VERSION_ number(10,0), ISTERMINATIONIMPLICIT_ number(1,0), STARTSTATE_ number(19,0), primary key (ID_));
+create table JBPM_PROCESSDEFINITION (ID_ number(19,0) not null, CLASS_ char(1 char) not null, NAME_ varchar2(255 char), DESCRIPTION_ clob, VERSION_ number(10,0), ISTERMINATIONIMPLICIT_ number(1,0), STARTSTATE_ number(19,0), primary key (ID_));
create table JBPM_PROCESSINSTANCE (ID_ number(19,0) not null, VERSION_ number(10,0) not null, KEY_ varchar2(255 char), START_ timestamp, END_ timestamp, ISSUSPENDED_ number(1,0), PROCESSDEFINITION_ number(19,0), ROOTTOKEN_ number(19,0), SUPERPROCESSTOKEN_ number(19,0), primary key (ID_));
create table JBPM_RUNTIMEACTION (ID_ number(19,0) not null, VERSION_ number(10,0) not null, EVENTTYPE_ varchar2(255 char), TYPE_ char(1 char), GRAPHELEMENT_ number(19,0), PROCESSINSTANCE_ number(19,0), ACTION_ number(19,0), PROCESSINSTANCEINDEX_ number(10,0), primary key (ID_));
create table JBPM_SWIMLANE (ID_ number(19,0) not null, NAME_ varchar2(255 char), ACTORIDEXPRESSION_ varchar2(255 char), POOLEDACTORSEXPRESSION_ varchar2(255 char), ASSIGNMENTDELEGATION_ number(19,0), TASKMGMTDEFINITION_ number(19,0), primary key (ID_));
create table JBPM_SWIMLANEINSTANCE (ID_ number(19,0) not null, VERSION_ number(10,0) not null, NAME_ varchar2(255 char), ACTORID_ varchar2(255 char), SWIMLANE_ number(19,0), TASKMGMTINSTANCE_ number(19,0), primary key (ID_));
-create table JBPM_TASK (ID_ number(19,0) not null, NAME_ varchar2(255 char), DESCRIPTION_ varchar2(4000 char), PROCESSDEFINITION_ number(19,0), ISBLOCKING_ number(1,0), ISSIGNALLING_ number(1,0), CONDITION_ varchar2(255 char), DUEDATE_ varchar2(255 char), PRIORITY_ number(10,0), ACTORIDEXPRESSION_ varchar2(255 char), POOLEDACTORSEXPRESSION_ varchar2(255 char), TASKMGMTDEFINITION_ number(19,0), TASKNODE_ number(19,0), STARTSTATE_ number(19,0), ASSIGNMENTDELEGATION_ number(19,0), SWIMLANE_ number(19,0), TASKCONTROLLER_ number(19,0), primary key (ID_));
+create table JBPM_TASK (ID_ number(19,0) not null, NAME_ varchar2(255 char), DESCRIPTION_ clob, PROCESSDEFINITION_ number(19,0), ISBLOCKING_ number(1,0), ISSIGNALLING_ number(1,0), CONDITION_ varchar2(255 char), DUEDATE_ varchar2(255 char), PRIORITY_ number(10,0), ACTORIDEXPRESSION_ varchar2(255 char), POOLEDACTORSEXPRESSION_ varchar2(255 char), TASKMGMTDEFINITION_ number(19,0), TASKNODE_ number(19,0), STARTSTATE_ number(19,0), ASSIGNMENTDELEGATION_ number(19,0), SWIMLANE_ number(19,0), TASKCONTROLLER_ number(19,0), primary key (ID_));
create table JBPM_TASKACTORPOOL (TASKINSTANCE_ number(19,0) not null, POOLEDACTOR_ number(19,0) not null, primary key (TASKINSTANCE_, POOLEDACTOR_));
create table JBPM_TASKCONTROLLER (ID_ number(19,0) not null, TASKCONTROLLERDELEGATION_ number(19,0), primary key (ID_));
-create table JBPM_TASKINSTANCE (ID_ number(19,0) not null, CLASS_ char(1 char) not null, VERSION_ number(10,0) not null, NAME_ varchar2(255 char), DESCRIPTION_ varchar2(4000 char), ACTORID_ varchar2(255 char), CREATE_ timestamp, START_ timestamp, END_ timestamp, DUEDATE_ timestamp, PRIORITY_ number(10,0), ISCANCELLED_ number(1,0), ISSUSPENDED_ number(1,0), ISOPEN_ number(1,0), ISSIGNALLING_ number(1,0), ISBLOCKING_ number(1,0), TASK_ number(19,0), TOKEN_ number(19,0), PROCINST_ number(19,0), SWIMLANINSTANCE_ number(19,0), TASKMGMTINSTANCE_ number(19,0), primary key (ID_));
+create table JBPM_TASKINSTANCE (ID_ number(19,0) not null, CLASS_ char(1 char) not null, VERSION_ number(10,0) not null, NAME_ varchar2(255 char), DESCRIPTION_ clob, ACTORID_ varchar2(255 char), CREATE_ timestamp, START_ timestamp, END_ timestamp, DUEDATE_ timestamp, PRIORITY_ number(10,0), ISCANCELLED_ number(1,0), ISSUSPENDED_ number(1,0), ISOPEN_ number(1,0), ISSIGNALLING_ number(1,0), ISBLOCKING_ number(1,0), TASK_ number(19,0), TOKEN_ number(19,0), PROCINST_ number(19,0), SWIMLANINSTANCE_ number(19,0), TASKMGMTINSTANCE_ number(19,0), primary key (ID_));
create table JBPM_TOKEN (ID_ number(19,0) not null, VERSION_ number(10,0) not null, NAME_ varchar2(255 char), START_ timestamp, END_ timestamp, NODEENTER_ timestamp, NEXTLOGINDEX_ number(10,0), ISABLETOREACTIVATEPARENT_ number(1,0), ISTERMINATIONIMPLICIT_ number(1,0), ISSUSPENDED_ number(1,0), LOCK_ varchar2(255 char), NODE_ number(19,0), PROCESSINSTANCE_ number(19,0), PARENT_ number(19,0), SUBPROCESSINSTANCE_ number(19,0), primary key (ID_));
create table JBPM_TOKENVARIABLEMAP (ID_ number(19,0) not null, VERSION_ number(10,0) not null, TOKEN_ number(19,0), CONTEXTINSTANCE_ number(19,0), primary key (ID_));
-create table JBPM_TRANSITION (ID_ number(19,0) not null, NAME_ varchar2(255 char), DESCRIPTION_ varchar2(4000 char), PROCESSDEFINITION_ number(19,0), FROM_ number(19,0), TO_ number(19,0), CONDITION_ varchar2(255 char), FROMINDEX_ number(10,0), primary key (ID_));
+create table JBPM_TRANSITION (ID_ number(19,0) not null, NAME_ varchar2(255 char), DESCRIPTION_ clob, PROCESSDEFINITION_ number(19,0), FROM_ number(19,0), TO_ number(19,0), CONDITION_ varchar2(255 char), FROMINDEX_ number(10,0), primary key (ID_));
create table JBPM_VARIABLEACCESS (ID_ number(19,0) not null, VARIABLENAME_ varchar2(255 char), ACCESS_ varchar2(255 char), MAPPEDNAME_ varchar2(255 char), SCRIPT_ number(19,0), PROCESSSTATE_ number(19,0), TASKCONTROLLER_ number(19,0), INDEX_ number(10,0), primary key (ID_));
create table JBPM_VARIABLEINSTANCE (ID_ number(19,0) not null, CLASS_ char(1 char) not null, VERSION_ number(10,0) not null, NAME_ varchar2(255 char), CONVERTER_ char(1 char), TOKEN_ number(19,0), TOKENVARIABLEMAP_ number(19,0), PROCESSINSTANCE_ number(19,0), BYTEARRAYVALUE_ number(19,0), DATEVALUE_ timestamp, DOUBLEVALUE_ double precision, LONGIDCLASS_ varchar2(255 char), LONGVALUE_ number(19,0), STRINGIDCLASS_ varchar2(255 char), STRINGVALUE_ varchar2(4000 char), TASKINSTANCE_ number(19,0), primary key (ID_));
create index IDX_ACTION_EVENT on JBPM_ACTION (EVENT_);
Modified: labs/jbossesb/workspace/mlittle/legstar/product/services/jbpm/src/main/resources/jbpm-sql/jbpm.jpdl.postgresql.sql
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/services/jbpm/src/main/resources/jbpm-sql/jbpm.jpdl.postgresql.sql 2009-01-21 14:47:17 UTC (rev 24849)
+++ labs/jbossesb/workspace/mlittle/legstar/product/services/jbpm/src/main/resources/jbpm-sql/jbpm.jpdl.postgresql.sql 2009-01-21 15:38:08 UTC (rev 24850)
@@ -1,168 +1,168 @@
-create table JBPM_ACTION (ID_ int8 not null, class char(1) not null, NAME_ varchar(255), ISPROPAGATIONALLOWED_ bool, ACTIONEXPRESSION_ varchar(255), ISASYNC_ bool, REFERENCEDACTION_ int8, ACTIONDELEGATION_ int8, EVENT_ int8, PROCESSDEFINITION_ int8, EXPRESSION_ varchar(4000), TIMERNAME_ varchar(255), DUEDATE_ varchar(255), REPEAT_ varchar(255), TRANSITIONNAME_ varchar(255), TIMERACTION_ int8, EVENTINDEX_ int4, EXCEPTIONHANDLER_ int8, EXCEPTIONHANDLERINDEX_ int4, primary key (ID_));
-create table JBPM_BYTEARRAY (ID_ int8 not null, NAME_ varchar(255), FILEDEFINITION_ int8, primary key (ID_));
-create table JBPM_BYTEBLOCK (PROCESSFILE_ int8 not null, BYTES_ bytea, INDEX_ int4 not null, primary key (PROCESSFILE_, INDEX_));
-create table JBPM_COMMENT (ID_ int8 not null, VERSION_ int4 not null, ACTORID_ varchar(255), TIME_ timestamp, MESSAGE_ varchar(4000), TOKEN_ int8, TASKINSTANCE_ int8, TOKENINDEX_ int4, TASKINSTANCEINDEX_ int4, primary key (ID_));
-create table JBPM_DECISIONCONDITIONS (DECISION_ int8 not null, TRANSITIONNAME_ varchar(255), EXPRESSION_ varchar(255), INDEX_ int4 not null, primary key (DECISION_, INDEX_));
-create table JBPM_DELEGATION (ID_ int8 not null, CLASSNAME_ varchar(4000), CONFIGURATION_ varchar(4000), CONFIGTYPE_ varchar(255), PROCESSDEFINITION_ int8, primary key (ID_));
-create table JBPM_EVENT (ID_ int8 not null, EVENTTYPE_ varchar(255), TYPE_ char(1), GRAPHELEMENT_ int8, PROCESSDEFINITION_ int8, NODE_ int8, TRANSITION_ int8, TASK_ int8, primary key (ID_));
-create table JBPM_EXCEPTIONHANDLER (ID_ int8 not null, EXCEPTIONCLASSNAME_ varchar(4000), TYPE_ char(1), GRAPHELEMENT_ int8, PROCESSDEFINITION_ int8, GRAPHELEMENTINDEX_ int4, NODE_ int8, TRANSITION_ int8, TASK_ int8, primary key (ID_));
-create table JBPM_ID_GROUP (ID_ int8 not null, CLASS_ char(1) not null, NAME_ varchar(255), TYPE_ varchar(255), PARENT_ int8, primary key (ID_));
-create table JBPM_ID_MEMBERSHIP (ID_ int8 not null, CLASS_ char(1) not null, NAME_ varchar(255), ROLE_ varchar(255), USER_ int8, GROUP_ int8, primary key (ID_));
-create table JBPM_ID_PERMISSIONS (ENTITY_ int8 not null, CLASS_ varchar(255), NAME_ varchar(255), ACTION_ varchar(255));
-create table JBPM_ID_USER (ID_ int8 not null, CLASS_ char(1) not null, NAME_ varchar(255), EMAIL_ varchar(255), PASSWORD_ varchar(255), primary key (ID_));
-create table JBPM_JOB (ID_ int8 not null, CLASS_ char(1) not null, VERSION_ int4 not null, DUEDATE_ timestamp, PROCESSINSTANCE_ int8, TOKEN_ int8, TASKINSTANCE_ int8, ISSUSPENDED_ bool, ISEXCLUSIVE_ bool, LOCKOWNER_ varchar(255), LOCKTIME_ timestamp, EXCEPTION_ varchar(4000), RETRIES_ int4, NAME_ varchar(255), REPEAT_ varchar(255), TRANSITIONNAME_ varchar(255), ACTION_ int8, GRAPHELEMENTTYPE_ varchar(255), GRAPHELEMENT_ int8, NODE_ int8, primary key (ID_));
-create table JBPM_LOG (ID_ int8 not null, CLASS_ char(1) not null, INDEX_ int4, DATE_ timestamp, TOKEN_ int8, PARENT_ int8, MESSAGE_ varchar(4000), EXCEPTION_ varchar(4000), ACTION_ int8, NODE_ int8, ENTER_ timestamp, LEAVE_ timestamp, DURATION_ int8, NEWLONGVALUE_ int8, TRANSITION_ int8, CHILD_ int8, SOURCENODE_ int8, DESTINATIONNODE_ int8, VARIABLEINSTANCE_ int8, OLDBYTEARRAY_ int8, NEWBYTEARRAY_ int8, OLDDATEVALUE_ timestamp, NEWDATEVALUE_ timestamp, OLDDOUBLEVALUE_ float8, NEWDOUBLEVALUE_ float8, OLDLONGIDCLASS_ varchar(255), OLDLONGIDVALUE_ int8, NEWLONGIDCLASS_ varchar(255), NEWLONGIDVALUE_ int8, OLDSTRINGIDCLASS_ varchar(255), OLDSTRINGIDVALUE_ varchar(255), NEWSTRINGIDCLASS_ varchar(255), NEWSTRINGIDVALUE_ varchar(255), OLDLONGVALUE_ int8, OLDSTRINGVALUE_ varchar(4000), NEWSTRINGVALUE_ varchar(4000), TASKINSTANCE_ int8, TASKACTORID_ varchar(255), TASKOLDACTORID_ varchar(255), SWIMLANEINSTANCE_ int8, primary key (ID_));
-create table JBPM_MODULEDEFINITION (ID_ int8 not null, CLASS_ char(1) not null, NAME_ varchar(4000), PROCESSDEFINITION_ int8, STARTTASK_ int8, primary key (ID_));
-create table JBPM_MODULEINSTANCE (ID_ int8 not null, CLASS_ char(1) not null, VERSION_ int4 not null, PROCESSINSTANCE_ int8, TASKMGMTDEFINITION_ int8, NAME_ varchar(255), primary key (ID_));
-create table JBPM_NODE (ID_ int8 not null, CLASS_ char(1) not null, NAME_ varchar(255), DESCRIPTION_ varchar(4000), PROCESSDEFINITION_ int8, ISASYNC_ bool, ISASYNCEXCL_ bool, ACTION_ int8, SUPERSTATE_ int8, SUBPROCNAME_ varchar(255), SUBPROCESSDEFINITION_ int8, DECISIONEXPRESSION_ varchar(255), DECISIONDELEGATION int8, SCRIPT_ int8, SIGNAL_ int4, CREATETASKS_ bool, ENDTASKS_ bool, NODECOLLECTIONINDEX_ int4, primary key (ID_));
-create table JBPM_POOLEDACTOR (ID_ int8 not null, VERSION_ int4 not null, ACTORID_ varchar(255), SWIMLANEINSTANCE_ int8, primary key (ID_));
-create table JBPM_PROCESSDEFINITION (ID_ int8 not null, CLASS_ char(1) not null, NAME_ varchar(255), DESCRIPTION_ varchar(4000), VERSION_ int4, ISTERMINATIONIMPLICIT_ bool, STARTSTATE_ int8, primary key (ID_));
-create table JBPM_PROCESSINSTANCE (ID_ int8 not null, VERSION_ int4 not null, KEY_ varchar(255), START_ timestamp, END_ timestamp, ISSUSPENDED_ bool, PROCESSDEFINITION_ int8, ROOTTOKEN_ int8, SUPERPROCESSTOKEN_ int8, primary key (ID_));
-create table JBPM_RUNTIMEACTION (ID_ int8 not null, VERSION_ int4 not null, EVENTTYPE_ varchar(255), TYPE_ char(1), GRAPHELEMENT_ int8, PROCESSINSTANCE_ int8, ACTION_ int8, PROCESSINSTANCEINDEX_ int4, primary key (ID_));
-create table JBPM_SWIMLANE (ID_ int8 not null, NAME_ varchar(255), ACTORIDEXPRESSION_ varchar(255), POOLEDACTORSEXPRESSION_ varchar(255), ASSIGNMENTDELEGATION_ int8, TASKMGMTDEFINITION_ int8, primary key (ID_));
-create table JBPM_SWIMLANEINSTANCE (ID_ int8 not null, VERSION_ int4 not null, NAME_ varchar(255), ACTORID_ varchar(255), SWIMLANE_ int8, TASKMGMTINSTANCE_ int8, primary key (ID_));
-create table JBPM_TASK (ID_ int8 not null, NAME_ varchar(255), DESCRIPTION_ varchar(4000), PROCESSDEFINITION_ int8, ISBLOCKING_ bool, ISSIGNALLING_ bool, CONDITION_ varchar(255), DUEDATE_ varchar(255), PRIORITY_ int4, ACTORIDEXPRESSION_ varchar(255), POOLEDACTORSEXPRESSION_ varchar(255), TASKMGMTDEFINITION_ int8, TASKNODE_ int8, STARTSTATE_ int8, ASSIGNMENTDELEGATION_ int8, SWIMLANE_ int8, TASKCONTROLLER_ int8, primary key (ID_));
-create table JBPM_TASKACTORPOOL (TASKINSTANCE_ int8 not null, POOLEDACTOR_ int8 not null, primary key (TASKINSTANCE_, POOLEDACTOR_));
-create table JBPM_TASKCONTROLLER (ID_ int8 not null, TASKCONTROLLERDELEGATION_ int8, primary key (ID_));
-create table JBPM_TASKINSTANCE (ID_ int8 not null, CLASS_ char(1) not null, VERSION_ int4 not null, NAME_ varchar(255), DESCRIPTION_ varchar(4000), ACTORID_ varchar(255), CREATE_ timestamp, START_ timestamp, END_ timestamp, DUEDATE_ timestamp, PRIORITY_ int4, ISCANCELLED_ bool, ISSUSPENDED_ bool, ISOPEN_ bool, ISSIGNALLING_ bool, ISBLOCKING_ bool, TASK_ int8, TOKEN_ int8, PROCINST_ int8, SWIMLANINSTANCE_ int8, TASKMGMTINSTANCE_ int8, primary key (ID_));
-create table JBPM_TOKEN (ID_ int8 not null, VERSION_ int4 not null, NAME_ varchar(255), START_ timestamp, END_ timestamp, NODEENTER_ timestamp, NEXTLOGINDEX_ int4, ISABLETOREACTIVATEPARENT_ bool, ISTERMINATIONIMPLICIT_ bool, ISSUSPENDED_ bool, LOCK_ varchar(255), NODE_ int8, PROCESSINSTANCE_ int8, PARENT_ int8, SUBPROCESSINSTANCE_ int8, primary key (ID_));
-create table JBPM_TOKENVARIABLEMAP (ID_ int8 not null, VERSION_ int4 not null, TOKEN_ int8, CONTEXTINSTANCE_ int8, primary key (ID_));
-create table JBPM_TRANSITION (ID_ int8 not null, NAME_ varchar(255), DESCRIPTION_ varchar(4000), PROCESSDEFINITION_ int8, FROM_ int8, TO_ int8, CONDITION_ varchar(255), FROMINDEX_ int4, primary key (ID_));
-create table JBPM_VARIABLEACCESS (ID_ int8 not null, VARIABLENAME_ varchar(255), ACCESS_ varchar(255), MAPPEDNAME_ varchar(255), SCRIPT_ int8, PROCESSSTATE_ int8, TASKCONTROLLER_ int8, INDEX_ int4, primary key (ID_));
-create table JBPM_VARIABLEINSTANCE (ID_ int8 not null, CLASS_ char(1) not null, VERSION_ int4 not null, NAME_ varchar(255), CONVERTER_ char(1), TOKEN_ int8, TOKENVARIABLEMAP_ int8, PROCESSINSTANCE_ int8, BYTEARRAYVALUE_ int8, DATEVALUE_ timestamp, DOUBLEVALUE_ float8, LONGIDCLASS_ varchar(255), LONGVALUE_ int8, STRINGIDCLASS_ varchar(255), STRINGVALUE_ varchar(4000), TASKINSTANCE_ int8, primary key (ID_));
-create index IDX_ACTION_EVENT on JBPM_ACTION (EVENT_);
-create index IDX_ACTION_ACTNDL on JBPM_ACTION (ACTIONDELEGATION_);
-create index IDX_ACTION_PROCDF on JBPM_ACTION (PROCESSDEFINITION_);
-alter table JBPM_ACTION add constraint FK_ACTION_EVENT foreign key (EVENT_) references JBPM_EVENT;
-alter table JBPM_ACTION add constraint FK_ACTION_EXPTHDL foreign key (EXCEPTIONHANDLER_) references JBPM_EXCEPTIONHANDLER;
-alter table JBPM_ACTION add constraint FK_ACTION_PROCDEF foreign key (PROCESSDEFINITION_) references JBPM_PROCESSDEFINITION;
-alter table JBPM_ACTION add constraint FK_CRTETIMERACT_TA foreign key (TIMERACTION_) references JBPM_ACTION;
-alter table JBPM_ACTION add constraint FK_ACTION_ACTNDEL foreign key (ACTIONDELEGATION_) references JBPM_DELEGATION;
-alter table JBPM_ACTION add constraint FK_ACTION_REFACT foreign key (REFERENCEDACTION_) references JBPM_ACTION;
-alter table JBPM_BYTEARRAY add constraint FK_BYTEARR_FILDEF foreign key (FILEDEFINITION_) references JBPM_MODULEDEFINITION;
-alter table JBPM_BYTEBLOCK add constraint FK_BYTEBLOCK_FILE foreign key (PROCESSFILE_) references JBPM_BYTEARRAY;
-create index IDX_COMMENT_TOKEN on JBPM_COMMENT (TOKEN_);
-create index IDX_COMMENT_TSK on JBPM_COMMENT (TASKINSTANCE_);
-alter table JBPM_COMMENT add constraint FK_COMMENT_TOKEN foreign key (TOKEN_) references JBPM_TOKEN;
-alter table JBPM_COMMENT add constraint FK_COMMENT_TSK foreign key (TASKINSTANCE_) references JBPM_TASKINSTANCE;
-alter table JBPM_DECISIONCONDITIONS add constraint FK_DECCOND_DEC foreign key (DECISION_) references JBPM_NODE;
-create index IDX_DELEG_PRCD on JBPM_DELEGATION (PROCESSDEFINITION_);
-alter table JBPM_DELEGATION add constraint FK_DELEGATION_PRCD foreign key (PROCESSDEFINITION_) references JBPM_PROCESSDEFINITION;
-alter table JBPM_EVENT add constraint FK_EVENT_PROCDEF foreign key (PROCESSDEFINITION_) references JBPM_PROCESSDEFINITION;
-alter table JBPM_EVENT add constraint FK_EVENT_NODE foreign key (NODE_) references JBPM_NODE;
-alter table JBPM_EVENT add constraint FK_EVENT_TRANS foreign key (TRANSITION_) references JBPM_TRANSITION;
-alter table JBPM_EVENT add constraint FK_EVENT_TASK foreign key (TASK_) references JBPM_TASK;
-alter table JBPM_ID_GROUP add constraint FK_ID_GRP_PARENT foreign key (PARENT_) references JBPM_ID_GROUP;
-alter table JBPM_ID_MEMBERSHIP add constraint FK_ID_MEMSHIP_GRP foreign key (GROUP_) references JBPM_ID_GROUP;
-alter table JBPM_ID_MEMBERSHIP add constraint FK_ID_MEMSHIP_USR foreign key (USER_) references JBPM_ID_USER;
-create index IDX_JOB_TSKINST on JBPM_JOB (TASKINSTANCE_);
-create index IDX_JOB_PRINST on JBPM_JOB (PROCESSINSTANCE_);
-create index IDX_JOB_TOKEN on JBPM_JOB (TOKEN_);
-alter table JBPM_JOB add constraint FK_JOB_TOKEN foreign key (TOKEN_) references JBPM_TOKEN;
-alter table JBPM_JOB add constraint FK_JOB_NODE foreign key (NODE_) references JBPM_NODE;
-alter table JBPM_JOB add constraint FK_JOB_PRINST foreign key (PROCESSINSTANCE_) references JBPM_PROCESSINSTANCE;
-alter table JBPM_JOB add constraint FK_JOB_ACTION foreign key (ACTION_) references JBPM_ACTION;
-alter table JBPM_JOB add constraint FK_JOB_TSKINST foreign key (TASKINSTANCE_) references JBPM_TASKINSTANCE;
-alter table JBPM_LOG add constraint FK_LOG_SOURCENODE foreign key (SOURCENODE_) references JBPM_NODE;
-alter table JBPM_LOG add constraint FK_LOG_TOKEN foreign key (TOKEN_) references JBPM_TOKEN;
-alter table JBPM_LOG add constraint FK_LOG_OLDBYTES foreign key (OLDBYTEARRAY_) references JBPM_BYTEARRAY;
-alter table JBPM_LOG add constraint FK_LOG_NEWBYTES foreign key (NEWBYTEARRAY_) references JBPM_BYTEARRAY;
-alter table JBPM_LOG add constraint FK_LOG_CHILDTOKEN foreign key (CHILD_) references JBPM_TOKEN;
-alter table JBPM_LOG add constraint FK_LOG_DESTNODE foreign key (DESTINATIONNODE_) references JBPM_NODE;
-alter table JBPM_LOG add constraint FK_LOG_TASKINST foreign key (TASKINSTANCE_) references JBPM_TASKINSTANCE;
-alter table JBPM_LOG add constraint FK_LOG_SWIMINST foreign key (SWIMLANEINSTANCE_) references JBPM_SWIMLANEINSTANCE;
-alter table JBPM_LOG add constraint FK_LOG_PARENT foreign key (PARENT_) references JBPM_LOG;
-alter table JBPM_LOG add constraint FK_LOG_NODE foreign key (NODE_) references JBPM_NODE;
-alter table JBPM_LOG add constraint FK_LOG_ACTION foreign key (ACTION_) references JBPM_ACTION;
-alter table JBPM_LOG add constraint FK_LOG_VARINST foreign key (VARIABLEINSTANCE_) references JBPM_VARIABLEINSTANCE;
-alter table JBPM_LOG add constraint FK_LOG_TRANSITION foreign key (TRANSITION_) references JBPM_TRANSITION;
-create index IDX_MODDEF_PROCDF on JBPM_MODULEDEFINITION (PROCESSDEFINITION_);
-alter table JBPM_MODULEDEFINITION add constraint FK_TSKDEF_START foreign key (STARTTASK_) references JBPM_TASK;
-alter table JBPM_MODULEDEFINITION add constraint FK_MODDEF_PROCDEF foreign key (PROCESSDEFINITION_) references JBPM_PROCESSDEFINITION;
-create index IDX_MODINST_PRINST on JBPM_MODULEINSTANCE (PROCESSINSTANCE_);
-alter table JBPM_MODULEINSTANCE add constraint FK_TASKMGTINST_TMD foreign key (TASKMGMTDEFINITION_) references JBPM_MODULEDEFINITION;
-alter table JBPM_MODULEINSTANCE add constraint FK_MODINST_PRCINST foreign key (PROCESSINSTANCE_) references JBPM_PROCESSINSTANCE;
-create index IDX_PSTATE_SBPRCDEF on JBPM_NODE (SUBPROCESSDEFINITION_);
-create index IDX_NODE_SUPRSTATE on JBPM_NODE (SUPERSTATE_);
-create index IDX_NODE_PROCDEF on JBPM_NODE (PROCESSDEFINITION_);
-create index IDX_NODE_ACTION on JBPM_NODE (ACTION_);
-alter table JBPM_NODE add constraint FK_PROCST_SBPRCDEF foreign key (SUBPROCESSDEFINITION_) references JBPM_PROCESSDEFINITION;
-alter table JBPM_NODE add constraint FK_NODE_PROCDEF foreign key (PROCESSDEFINITION_) references JBPM_PROCESSDEFINITION;
-alter table JBPM_NODE add constraint FK_NODE_SCRIPT foreign key (SCRIPT_) references JBPM_ACTION;
-alter table JBPM_NODE add constraint FK_NODE_ACTION foreign key (ACTION_) references JBPM_ACTION;
-alter table JBPM_NODE add constraint FK_DECISION_DELEG foreign key (DECISIONDELEGATION) references JBPM_DELEGATION;
-alter table JBPM_NODE add constraint FK_NODE_SUPERSTATE foreign key (SUPERSTATE_) references JBPM_NODE;
-create index IDX_PLDACTR_ACTID on JBPM_POOLEDACTOR (ACTORID_);
-create index IDX_TSKINST_SWLANE on JBPM_POOLEDACTOR (SWIMLANEINSTANCE_);
-alter table JBPM_POOLEDACTOR add constraint FK_POOLEDACTOR_SLI foreign key (SWIMLANEINSTANCE_) references JBPM_SWIMLANEINSTANCE;
-create index IDX_PROCDEF_STRTST on JBPM_PROCESSDEFINITION (STARTSTATE_);
-alter table JBPM_PROCESSDEFINITION add constraint FK_PROCDEF_STRTSTA foreign key (STARTSTATE_) references JBPM_NODE;
-create index IDX_PROCIN_ROOTTK on JBPM_PROCESSINSTANCE (ROOTTOKEN_);
-create index IDX_PROCIN_SPROCTK on JBPM_PROCESSINSTANCE (SUPERPROCESSTOKEN_);
-create index IDX_PROCIN_KEY on JBPM_PROCESSINSTANCE (KEY_);
-create index IDX_PROCIN_PROCDEF on JBPM_PROCESSINSTANCE (PROCESSDEFINITION_);
-alter table JBPM_PROCESSINSTANCE add constraint FK_PROCIN_PROCDEF foreign key (PROCESSDEFINITION_) references JBPM_PROCESSDEFINITION;
-alter table JBPM_PROCESSINSTANCE add constraint FK_PROCIN_ROOTTKN foreign key (ROOTTOKEN_) references JBPM_TOKEN;
-alter table JBPM_PROCESSINSTANCE add constraint FK_PROCIN_SPROCTKN foreign key (SUPERPROCESSTOKEN_) references JBPM_TOKEN;
-create index IDX_RTACTN_PRCINST on JBPM_RUNTIMEACTION (PROCESSINSTANCE_);
-create index IDX_RTACTN_ACTION on JBPM_RUNTIMEACTION (ACTION_);
-alter table JBPM_RUNTIMEACTION add constraint FK_RTACTN_PROCINST foreign key (PROCESSINSTANCE_) references JBPM_PROCESSINSTANCE;
-alter table JBPM_RUNTIMEACTION add constraint FK_RTACTN_ACTION foreign key (ACTION_) references JBPM_ACTION;
-alter table JBPM_SWIMLANE add constraint FK_SWL_ASSDEL foreign key (ASSIGNMENTDELEGATION_) references JBPM_DELEGATION;
-alter table JBPM_SWIMLANE add constraint FK_SWL_TSKMGMTDEF foreign key (TASKMGMTDEFINITION_) references JBPM_MODULEDEFINITION;
-create index IDX_SWIMLINST_SL on JBPM_SWIMLANEINSTANCE (SWIMLANE_);
-alter table JBPM_SWIMLANEINSTANCE add constraint FK_SWIMLANEINST_TM foreign key (TASKMGMTINSTANCE_) references JBPM_MODULEINSTANCE;
-alter table JBPM_SWIMLANEINSTANCE add constraint FK_SWIMLANEINST_SL foreign key (SWIMLANE_) references JBPM_SWIMLANE;
-create index IDX_TASK_TSKNODE on JBPM_TASK (TASKNODE_);
-create index IDX_TASK_PROCDEF on JBPM_TASK (PROCESSDEFINITION_);
-create index IDX_TASK_TASKMGTDF on JBPM_TASK (TASKMGMTDEFINITION_);
-alter table JBPM_TASK add constraint FK_TSK_TSKCTRL foreign key (TASKCONTROLLER_) references JBPM_TASKCONTROLLER;
-alter table JBPM_TASK add constraint FK_TASK_ASSDEL foreign key (ASSIGNMENTDELEGATION_) references JBPM_DELEGATION;
-alter table JBPM_TASK add constraint FK_TASK_TASKNODE foreign key (TASKNODE_) references JBPM_NODE;
-alter table JBPM_TASK add constraint FK_TASK_PROCDEF foreign key (PROCESSDEFINITION_) references JBPM_PROCESSDEFINITION;
-alter table JBPM_TASK add constraint FK_TASK_STARTST foreign key (STARTSTATE_) references JBPM_NODE;
-alter table JBPM_TASK add constraint FK_TASK_TASKMGTDEF foreign key (TASKMGMTDEFINITION_) references JBPM_MODULEDEFINITION;
-alter table JBPM_TASK add constraint FK_TASK_SWIMLANE foreign key (SWIMLANE_) references JBPM_SWIMLANE;
-alter table JBPM_TASKACTORPOOL add constraint FK_TSKACTPOL_PLACT foreign key (POOLEDACTOR_) references JBPM_POOLEDACTOR;
-alter table JBPM_TASKACTORPOOL add constraint FK_TASKACTPL_TSKI foreign key (TASKINSTANCE_) references JBPM_TASKINSTANCE;
-alter table JBPM_TASKCONTROLLER add constraint FK_TSKCTRL_DELEG foreign key (TASKCONTROLLERDELEGATION_) references JBPM_DELEGATION;
-create index IDX_TASKINST_TOKN on JBPM_TASKINSTANCE (TOKEN_);
-create index IDX_TASKINST_TSK on JBPM_TASKINSTANCE (TASK_, PROCINST_);
-create index IDX_TSKINST_TMINST on JBPM_TASKINSTANCE (TASKMGMTINSTANCE_);
-create index IDX_TSKINST_SLINST on JBPM_TASKINSTANCE (SWIMLANINSTANCE_);
-create index IDX_TASK_ACTORID on JBPM_TASKINSTANCE (ACTORID_);
-alter table JBPM_TASKINSTANCE add constraint FK_TSKINS_PRCINS foreign key (PROCINST_) references JBPM_PROCESSINSTANCE;
-alter table JBPM_TASKINSTANCE add constraint FK_TASKINST_TMINST foreign key (TASKMGMTINSTANCE_) references JBPM_MODULEINSTANCE;
-alter table JBPM_TASKINSTANCE add constraint FK_TASKINST_TOKEN foreign key (TOKEN_) references JBPM_TOKEN;
-alter table JBPM_TASKINSTANCE add constraint FK_TASKINST_SLINST foreign key (SWIMLANINSTANCE_) references JBPM_SWIMLANEINSTANCE;
-alter table JBPM_TASKINSTANCE add constraint FK_TASKINST_TASK foreign key (TASK_) references JBPM_TASK;
-create index IDX_TOKEN_PROCIN on JBPM_TOKEN (PROCESSINSTANCE_);
-create index IDX_TOKEN_SUBPI on JBPM_TOKEN (SUBPROCESSINSTANCE_);
-create index IDX_TOKEN_NODE on JBPM_TOKEN (NODE_);
-create index IDX_TOKEN_PARENT on JBPM_TOKEN (PARENT_);
-alter table JBPM_TOKEN add constraint FK_TOKEN_PARENT foreign key (PARENT_) references JBPM_TOKEN;
-alter table JBPM_TOKEN add constraint FK_TOKEN_NODE foreign key (NODE_) references JBPM_NODE;
-alter table JBPM_TOKEN add constraint FK_TOKEN_PROCINST foreign key (PROCESSINSTANCE_) references JBPM_PROCESSINSTANCE;
-alter table JBPM_TOKEN add constraint FK_TOKEN_SUBPI foreign key (SUBPROCESSINSTANCE_) references JBPM_PROCESSINSTANCE;
-create index IDX_TKVARMAP_CTXT on JBPM_TOKENVARIABLEMAP (CONTEXTINSTANCE_);
-create index IDX_TKVVARMP_TOKEN on JBPM_TOKENVARIABLEMAP (TOKEN_);
-alter table JBPM_TOKENVARIABLEMAP add constraint FK_TKVARMAP_CTXT foreign key (CONTEXTINSTANCE_) references JBPM_MODULEINSTANCE;
-alter table JBPM_TOKENVARIABLEMAP add constraint FK_TKVARMAP_TOKEN foreign key (TOKEN_) references JBPM_TOKEN;
-create index IDX_TRANSIT_TO on JBPM_TRANSITION (TO_);
-create index IDX_TRANSIT_FROM on JBPM_TRANSITION (FROM_);
-create index IDX_TRANS_PROCDEF on JBPM_TRANSITION (PROCESSDEFINITION_);
-alter table JBPM_TRANSITION add constraint FK_TRANSITION_TO foreign key (TO_) references JBPM_NODE;
-alter table JBPM_TRANSITION add constraint FK_TRANS_PROCDEF foreign key (PROCESSDEFINITION_) references JBPM_PROCESSDEFINITION;
-alter table JBPM_TRANSITION add constraint FK_TRANSITION_FROM foreign key (FROM_) references JBPM_NODE;
-alter table JBPM_VARIABLEACCESS add constraint FK_VARACC_TSKCTRL foreign key (TASKCONTROLLER_) references JBPM_TASKCONTROLLER;
-alter table JBPM_VARIABLEACCESS add constraint FK_VARACC_SCRIPT foreign key (SCRIPT_) references JBPM_ACTION;
-alter table JBPM_VARIABLEACCESS add constraint FK_VARACC_PROCST foreign key (PROCESSSTATE_) references JBPM_NODE;
-create index IDX_VARINST_TKVARMP on JBPM_VARIABLEINSTANCE (TOKENVARIABLEMAP_);
-create index IDX_VARINST_PRCINS on JBPM_VARIABLEINSTANCE (PROCESSINSTANCE_);
-create index IDX_VARINST_TK on JBPM_VARIABLEINSTANCE (TOKEN_);
-alter table JBPM_VARIABLEINSTANCE add constraint FK_VARINST_TK foreign key (TOKEN_) references JBPM_TOKEN;
-alter table JBPM_VARIABLEINSTANCE add constraint FK_VARINST_TKVARMP foreign key (TOKENVARIABLEMAP_) references JBPM_TOKENVARIABLEMAP;
-alter table JBPM_VARIABLEINSTANCE add constraint FK_VARINST_PRCINST foreign key (PROCESSINSTANCE_) references JBPM_PROCESSINSTANCE;
-alter table JBPM_VARIABLEINSTANCE add constraint FK_VAR_TSKINST foreign key (TASKINSTANCE_) references JBPM_TASKINSTANCE;
-alter table JBPM_VARIABLEINSTANCE add constraint FK_BYTEINST_ARRAY foreign key (BYTEARRAYVALUE_) references JBPM_BYTEARRAY;
-create sequence hibernate_sequence;
+create table JBPM_ACTION (ID_ int8 not null, class char(1) not null, NAME_ varchar(255), ISPROPAGATIONALLOWED_ bool, ACTIONEXPRESSION_ varchar(255), ISASYNC_ bool, REFERENCEDACTION_ int8, ACTIONDELEGATION_ int8, EVENT_ int8, PROCESSDEFINITION_ int8, EXPRESSION_ text, TIMERNAME_ varchar(255), DUEDATE_ varchar(255), REPEAT_ varchar(255), TRANSITIONNAME_ varchar(255), TIMERACTION_ int8, EVENTINDEX_ int4, EXCEPTIONHANDLER_ int8, EXCEPTIONHANDLERINDEX_ int4, primary key (ID_))
+create table JBPM_BYTEARRAY (ID_ int8 not null, NAME_ varchar(255), FILEDEFINITION_ int8, primary key (ID_))
+create table JBPM_BYTEBLOCK (PROCESSFILE_ int8 not null, BYTES_ bytea, INDEX_ int4 not null, primary key (PROCESSFILE_, INDEX_))
+create table JBPM_COMMENT (ID_ int8 not null, VERSION_ int4 not null, ACTORID_ varchar(255), TIME_ timestamp, MESSAGE_ text, TOKEN_ int8, TASKINSTANCE_ int8, TOKENINDEX_ int4, TASKINSTANCEINDEX_ int4, primary key (ID_))
+create table JBPM_DECISIONCONDITIONS (DECISION_ int8 not null, TRANSITIONNAME_ varchar(255), EXPRESSION_ varchar(255), INDEX_ int4 not null, primary key (DECISION_, INDEX_))
+create table JBPM_DELEGATION (ID_ int8 not null, CLASSNAME_ text, CONFIGURATION_ text, CONFIGTYPE_ varchar(255), PROCESSDEFINITION_ int8, primary key (ID_))
+create table JBPM_EVENT (ID_ int8 not null, EVENTTYPE_ varchar(255), TYPE_ char(1), GRAPHELEMENT_ int8, PROCESSDEFINITION_ int8, NODE_ int8, TRANSITION_ int8, TASK_ int8, primary key (ID_))
+create table JBPM_EXCEPTIONHANDLER (ID_ int8 not null, EXCEPTIONCLASSNAME_ text, TYPE_ char(1), GRAPHELEMENT_ int8, PROCESSDEFINITION_ int8, GRAPHELEMENTINDEX_ int4, NODE_ int8, TRANSITION_ int8, TASK_ int8, primary key (ID_))
+create table JBPM_ID_GROUP (ID_ int8 not null, CLASS_ char(1) not null, NAME_ varchar(255), TYPE_ varchar(255), PARENT_ int8, primary key (ID_))
+create table JBPM_ID_MEMBERSHIP (ID_ int8 not null, CLASS_ char(1) not null, NAME_ varchar(255), ROLE_ varchar(255), USER_ int8, GROUP_ int8, primary key (ID_))
+create table JBPM_ID_PERMISSIONS (ENTITY_ int8 not null, CLASS_ varchar(255), NAME_ varchar(255), ACTION_ varchar(255))
+create table JBPM_ID_USER (ID_ int8 not null, CLASS_ char(1) not null, NAME_ varchar(255), EMAIL_ varchar(255), PASSWORD_ varchar(255), primary key (ID_))
+create table JBPM_JOB (ID_ int8 not null, CLASS_ char(1) not null, VERSION_ int4 not null, DUEDATE_ timestamp, PROCESSINSTANCE_ int8, TOKEN_ int8, TASKINSTANCE_ int8, ISSUSPENDED_ bool, ISEXCLUSIVE_ bool, LOCKOWNER_ varchar(255), LOCKTIME_ timestamp, EXCEPTION_ text, RETRIES_ int4, NAME_ varchar(255), REPEAT_ varchar(255), TRANSITIONNAME_ varchar(255), ACTION_ int8, GRAPHELEMENTTYPE_ varchar(255), GRAPHELEMENT_ int8, NODE_ int8, primary key (ID_))
+create table JBPM_LOG (ID_ int8 not null, CLASS_ char(1) not null, INDEX_ int4, DATE_ timestamp, TOKEN_ int8, PARENT_ int8, MESSAGE_ text, EXCEPTION_ text, ACTION_ int8, NODE_ int8, ENTER_ timestamp, LEAVE_ timestamp, DURATION_ int8, NEWLONGVALUE_ int8, TRANSITION_ int8, CHILD_ int8, SOURCENODE_ int8, DESTINATIONNODE_ int8, VARIABLEINSTANCE_ int8, OLDBYTEARRAY_ int8, NEWBYTEARRAY_ int8, OLDDATEVALUE_ timestamp, NEWDATEVALUE_ timestamp, OLDDOUBLEVALUE_ float8, NEWDOUBLEVALUE_ float8, OLDLONGIDCLASS_ varchar(255), OLDLONGIDVALUE_ int8, NEWLONGIDCLASS_ varchar(255), NEWLONGIDVALUE_ int8, OLDSTRINGIDCLASS_ varchar(255), OLDSTRINGIDVALUE_ varchar(255), NEWSTRINGIDCLASS_ varchar(255), NEWSTRINGIDVALUE_ varchar(255), OLDLONGVALUE_ int8, OLDSTRINGVALUE_ text, NEWSTRINGVALUE_ text, TASKINSTANCE_ int8, TASKACTORID_ varchar(255), TASKOLDACTORID_ varchar(255), SWIMLANEINSTANCE_ int8, primary key (ID_))
+create table JBPM_MODULEDEFINITION (ID_ int8 not null, CLASS_ char(1) not null, NAME_ varchar(4000), PROCESSDEFINITION_ int8, STARTTASK_ int8, primary key (ID_))
+create table JBPM_MODULEINSTANCE (ID_ int8 not null, CLASS_ char(1) not null, VERSION_ int4 not null, PROCESSINSTANCE_ int8, TASKMGMTDEFINITION_ int8, NAME_ varchar(255), primary key (ID_))
+create table JBPM_NODE (ID_ int8 not null, CLASS_ char(1) not null, NAME_ varchar(255), DESCRIPTION_ text, PROCESSDEFINITION_ int8, ISASYNC_ bool, ISASYNCEXCL_ bool, ACTION_ int8, SUPERSTATE_ int8, SUBPROCNAME_ varchar(255), SUBPROCESSDEFINITION_ int8, DECISIONEXPRESSION_ varchar(255), DECISIONDELEGATION int8, SCRIPT_ int8, PARENTLOCKMODE_ varchar(255), SIGNAL_ int4, CREATETASKS_ bool, ENDTASKS_ bool, NODECOLLECTIONINDEX_ int4, primary key (ID_))
+create table JBPM_POOLEDACTOR (ID_ int8 not null, VERSION_ int4 not null, ACTORID_ varchar(255), SWIMLANEINSTANCE_ int8, primary key (ID_))
+create table JBPM_PROCESSDEFINITION (ID_ int8 not null, CLASS_ char(1) not null, NAME_ varchar(255), DESCRIPTION_ text, VERSION_ int4, ISTERMINATIONIMPLICIT_ bool, STARTSTATE_ int8, primary key (ID_))
+create table JBPM_PROCESSINSTANCE (ID_ int8 not null, VERSION_ int4 not null, KEY_ varchar(255), START_ timestamp, END_ timestamp, ISSUSPENDED_ bool, PROCESSDEFINITION_ int8, ROOTTOKEN_ int8, SUPERPROCESSTOKEN_ int8, primary key (ID_))
+create table JBPM_RUNTIMEACTION (ID_ int8 not null, VERSION_ int4 not null, EVENTTYPE_ varchar(255), TYPE_ char(1), GRAPHELEMENT_ int8, PROCESSINSTANCE_ int8, ACTION_ int8, PROCESSINSTANCEINDEX_ int4, primary key (ID_))
+create table JBPM_SWIMLANE (ID_ int8 not null, NAME_ varchar(255), ACTORIDEXPRESSION_ varchar(255), POOLEDACTORSEXPRESSION_ varchar(255), ASSIGNMENTDELEGATION_ int8, TASKMGMTDEFINITION_ int8, primary key (ID_))
+create table JBPM_SWIMLANEINSTANCE (ID_ int8 not null, VERSION_ int4 not null, NAME_ varchar(255), ACTORID_ varchar(255), SWIMLANE_ int8, TASKMGMTINSTANCE_ int8, primary key (ID_))
+create table JBPM_TASK (ID_ int8 not null, NAME_ varchar(255), DESCRIPTION_ text, PROCESSDEFINITION_ int8, ISBLOCKING_ bool, ISSIGNALLING_ bool, CONDITION_ varchar(255), DUEDATE_ varchar(255), PRIORITY_ int4, ACTORIDEXPRESSION_ varchar(255), POOLEDACTORSEXPRESSION_ varchar(255), TASKMGMTDEFINITION_ int8, TASKNODE_ int8, STARTSTATE_ int8, ASSIGNMENTDELEGATION_ int8, SWIMLANE_ int8, TASKCONTROLLER_ int8, primary key (ID_))
+create table JBPM_TASKACTORPOOL (TASKINSTANCE_ int8 not null, POOLEDACTOR_ int8 not null, primary key (TASKINSTANCE_, POOLEDACTOR_))
+create table JBPM_TASKCONTROLLER (ID_ int8 not null, TASKCONTROLLERDELEGATION_ int8, primary key (ID_))
+create table JBPM_TASKINSTANCE (ID_ int8 not null, CLASS_ char(1) not null, VERSION_ int4 not null, NAME_ varchar(255), DESCRIPTION_ text, ACTORID_ varchar(255), CREATE_ timestamp, START_ timestamp, END_ timestamp, DUEDATE_ timestamp, PRIORITY_ int4, ISCANCELLED_ bool, ISSUSPENDED_ bool, ISOPEN_ bool, ISSIGNALLING_ bool, ISBLOCKING_ bool, TASK_ int8, TOKEN_ int8, PROCINST_ int8, SWIMLANINSTANCE_ int8, TASKMGMTINSTANCE_ int8, primary key (ID_))
+create table JBPM_TOKEN (ID_ int8 not null, VERSION_ int4 not null, NAME_ varchar(255), START_ timestamp, END_ timestamp, NODEENTER_ timestamp, NEXTLOGINDEX_ int4, ISABLETOREACTIVATEPARENT_ bool, ISTERMINATIONIMPLICIT_ bool, ISSUSPENDED_ bool, LOCK_ varchar(255), NODE_ int8, PROCESSINSTANCE_ int8, PARENT_ int8, SUBPROCESSINSTANCE_ int8, primary key (ID_))
+create table JBPM_TOKENVARIABLEMAP (ID_ int8 not null, VERSION_ int4 not null, TOKEN_ int8, CONTEXTINSTANCE_ int8, primary key (ID_))
+create table JBPM_TRANSITION (ID_ int8 not null, NAME_ varchar(255), DESCRIPTION_ text, PROCESSDEFINITION_ int8, FROM_ int8, TO_ int8, CONDITION_ varchar(255), FROMINDEX_ int4, primary key (ID_))
+create table JBPM_VARIABLEACCESS (ID_ int8 not null, VARIABLENAME_ varchar(255), ACCESS_ varchar(255), MAPPEDNAME_ varchar(255), SCRIPT_ int8, PROCESSSTATE_ int8, TASKCONTROLLER_ int8, INDEX_ int4, primary key (ID_))
+create table JBPM_VARIABLEINSTANCE (ID_ int8 not null, CLASS_ char(1) not null, VERSION_ int4 not null, NAME_ varchar(255), CONVERTER_ char(1), TOKEN_ int8, TOKENVARIABLEMAP_ int8, PROCESSINSTANCE_ int8, BYTEARRAYVALUE_ int8, DATEVALUE_ timestamp, DOUBLEVALUE_ float8, LONGIDCLASS_ varchar(255), LONGVALUE_ int8, STRINGIDCLASS_ varchar(255), STRINGVALUE_ varchar(4000), TASKINSTANCE_ int8, primary key (ID_))
+create index IDX_ACTION_EVENT on JBPM_ACTION (EVENT_)
+create index IDX_ACTION_ACTNDL on JBPM_ACTION (ACTIONDELEGATION_)
+create index IDX_ACTION_PROCDF on JBPM_ACTION (PROCESSDEFINITION_)
+alter table JBPM_ACTION add constraint FK_ACTION_EVENT foreign key (EVENT_) references JBPM_EVENT
+alter table JBPM_ACTION add constraint FK_ACTION_EXPTHDL foreign key (EXCEPTIONHANDLER_) references JBPM_EXCEPTIONHANDLER
+alter table JBPM_ACTION add constraint FK_ACTION_PROCDEF foreign key (PROCESSDEFINITION_) references JBPM_PROCESSDEFINITION
+alter table JBPM_ACTION add constraint FK_CRTETIMERACT_TA foreign key (TIMERACTION_) references JBPM_ACTION
+alter table JBPM_ACTION add constraint FK_ACTION_ACTNDEL foreign key (ACTIONDELEGATION_) references JBPM_DELEGATION
+alter table JBPM_ACTION add constraint FK_ACTION_REFACT foreign key (REFERENCEDACTION_) references JBPM_ACTION
+alter table JBPM_BYTEARRAY add constraint FK_BYTEARR_FILDEF foreign key (FILEDEFINITION_) references JBPM_MODULEDEFINITION
+alter table JBPM_BYTEBLOCK add constraint FK_BYTEBLOCK_FILE foreign key (PROCESSFILE_) references JBPM_BYTEARRAY
+create index IDX_COMMENT_TOKEN on JBPM_COMMENT (TOKEN_)
+create index IDX_COMMENT_TSK on JBPM_COMMENT (TASKINSTANCE_)
+alter table JBPM_COMMENT add constraint FK_COMMENT_TOKEN foreign key (TOKEN_) references JBPM_TOKEN
+alter table JBPM_COMMENT add constraint FK_COMMENT_TSK foreign key (TASKINSTANCE_) references JBPM_TASKINSTANCE
+alter table JBPM_DECISIONCONDITIONS add constraint FK_DECCOND_DEC foreign key (DECISION_) references JBPM_NODE
+create index IDX_DELEG_PRCD on JBPM_DELEGATION (PROCESSDEFINITION_)
+alter table JBPM_DELEGATION add constraint FK_DELEGATION_PRCD foreign key (PROCESSDEFINITION_) references JBPM_PROCESSDEFINITION
+alter table JBPM_EVENT add constraint FK_EVENT_PROCDEF foreign key (PROCESSDEFINITION_) references JBPM_PROCESSDEFINITION
+alter table JBPM_EVENT add constraint FK_EVENT_NODE foreign key (NODE_) references JBPM_NODE
+alter table JBPM_EVENT add constraint FK_EVENT_TRANS foreign key (TRANSITION_) references JBPM_TRANSITION
+alter table JBPM_EVENT add constraint FK_EVENT_TASK foreign key (TASK_) references JBPM_TASK
+alter table JBPM_ID_GROUP add constraint FK_ID_GRP_PARENT foreign key (PARENT_) references JBPM_ID_GROUP
+alter table JBPM_ID_MEMBERSHIP add constraint FK_ID_MEMSHIP_GRP foreign key (GROUP_) references JBPM_ID_GROUP
+alter table JBPM_ID_MEMBERSHIP add constraint FK_ID_MEMSHIP_USR foreign key (USER_) references JBPM_ID_USER
+create index IDX_JOB_TSKINST on JBPM_JOB (TASKINSTANCE_)
+create index IDX_JOB_PRINST on JBPM_JOB (PROCESSINSTANCE_)
+create index IDX_JOB_TOKEN on JBPM_JOB (TOKEN_)
+alter table JBPM_JOB add constraint FK_JOB_TOKEN foreign key (TOKEN_) references JBPM_TOKEN
+alter table JBPM_JOB add constraint FK_JOB_NODE foreign key (NODE_) references JBPM_NODE
+alter table JBPM_JOB add constraint FK_JOB_PRINST foreign key (PROCESSINSTANCE_) references JBPM_PROCESSINSTANCE
+alter table JBPM_JOB add constraint FK_JOB_ACTION foreign key (ACTION_) references JBPM_ACTION
+alter table JBPM_JOB add constraint FK_JOB_TSKINST foreign key (TASKINSTANCE_) references JBPM_TASKINSTANCE
+alter table JBPM_LOG add constraint FK_LOG_SOURCENODE foreign key (SOURCENODE_) references JBPM_NODE
+alter table JBPM_LOG add constraint FK_LOG_TOKEN foreign key (TOKEN_) references JBPM_TOKEN
+alter table JBPM_LOG add constraint FK_LOG_OLDBYTES foreign key (OLDBYTEARRAY_) references JBPM_BYTEARRAY
+alter table JBPM_LOG add constraint FK_LOG_NEWBYTES foreign key (NEWBYTEARRAY_) references JBPM_BYTEARRAY
+alter table JBPM_LOG add constraint FK_LOG_CHILDTOKEN foreign key (CHILD_) references JBPM_TOKEN
+alter table JBPM_LOG add constraint FK_LOG_DESTNODE foreign key (DESTINATIONNODE_) references JBPM_NODE
+alter table JBPM_LOG add constraint FK_LOG_TASKINST foreign key (TASKINSTANCE_) references JBPM_TASKINSTANCE
+alter table JBPM_LOG add constraint FK_LOG_SWIMINST foreign key (SWIMLANEINSTANCE_) references JBPM_SWIMLANEINSTANCE
+alter table JBPM_LOG add constraint FK_LOG_PARENT foreign key (PARENT_) references JBPM_LOG
+alter table JBPM_LOG add constraint FK_LOG_NODE foreign key (NODE_) references JBPM_NODE
+alter table JBPM_LOG add constraint FK_LOG_ACTION foreign key (ACTION_) references JBPM_ACTION
+alter table JBPM_LOG add constraint FK_LOG_VARINST foreign key (VARIABLEINSTANCE_) references JBPM_VARIABLEINSTANCE
+alter table JBPM_LOG add constraint FK_LOG_TRANSITION foreign key (TRANSITION_) references JBPM_TRANSITION
+create index IDX_MODDEF_PROCDF on JBPM_MODULEDEFINITION (PROCESSDEFINITION_)
+alter table JBPM_MODULEDEFINITION add constraint FK_TSKDEF_START foreign key (STARTTASK_) references JBPM_TASK
+alter table JBPM_MODULEDEFINITION add constraint FK_MODDEF_PROCDEF foreign key (PROCESSDEFINITION_) references JBPM_PROCESSDEFINITION
+create index IDX_MODINST_PRINST on JBPM_MODULEINSTANCE (PROCESSINSTANCE_)
+alter table JBPM_MODULEINSTANCE add constraint FK_TASKMGTINST_TMD foreign key (TASKMGMTDEFINITION_) references JBPM_MODULEDEFINITION
+alter table JBPM_MODULEINSTANCE add constraint FK_MODINST_PRCINST foreign key (PROCESSINSTANCE_) references JBPM_PROCESSINSTANCE
+create index IDX_PSTATE_SBPRCDEF on JBPM_NODE (SUBPROCESSDEFINITION_)
+create index IDX_NODE_SUPRSTATE on JBPM_NODE (SUPERSTATE_)
+create index IDX_NODE_PROCDEF on JBPM_NODE (PROCESSDEFINITION_)
+create index IDX_NODE_ACTION on JBPM_NODE (ACTION_)
+alter table JBPM_NODE add constraint FK_PROCST_SBPRCDEF foreign key (SUBPROCESSDEFINITION_) references JBPM_PROCESSDEFINITION
+alter table JBPM_NODE add constraint FK_NODE_PROCDEF foreign key (PROCESSDEFINITION_) references JBPM_PROCESSDEFINITION
+alter table JBPM_NODE add constraint FK_NODE_SCRIPT foreign key (SCRIPT_) references JBPM_ACTION
+alter table JBPM_NODE add constraint FK_NODE_ACTION foreign key (ACTION_) references JBPM_ACTION
+alter table JBPM_NODE add constraint FK_DECISION_DELEG foreign key (DECISIONDELEGATION) references JBPM_DELEGATION
+alter table JBPM_NODE add constraint FK_NODE_SUPERSTATE foreign key (SUPERSTATE_) references JBPM_NODE
+create index IDX_PLDACTR_ACTID on JBPM_POOLEDACTOR (ACTORID_)
+create index IDX_TSKINST_SWLANE on JBPM_POOLEDACTOR (SWIMLANEINSTANCE_)
+alter table JBPM_POOLEDACTOR add constraint FK_POOLEDACTOR_SLI foreign key (SWIMLANEINSTANCE_) references JBPM_SWIMLANEINSTANCE
+create index IDX_PROCDEF_STRTST on JBPM_PROCESSDEFINITION (STARTSTATE_)
+alter table JBPM_PROCESSDEFINITION add constraint FK_PROCDEF_STRTSTA foreign key (STARTSTATE_) references JBPM_NODE
+create index IDX_PROCIN_ROOTTK on JBPM_PROCESSINSTANCE (ROOTTOKEN_)
+create index IDX_PROCIN_SPROCTK on JBPM_PROCESSINSTANCE (SUPERPROCESSTOKEN_)
+create index IDX_PROCIN_KEY on JBPM_PROCESSINSTANCE (KEY_)
+create index IDX_PROCIN_PROCDEF on JBPM_PROCESSINSTANCE (PROCESSDEFINITION_)
+alter table JBPM_PROCESSINSTANCE add constraint FK_PROCIN_PROCDEF foreign key (PROCESSDEFINITION_) references JBPM_PROCESSDEFINITION
+alter table JBPM_PROCESSINSTANCE add constraint FK_PROCIN_ROOTTKN foreign key (ROOTTOKEN_) references JBPM_TOKEN
+alter table JBPM_PROCESSINSTANCE add constraint FK_PROCIN_SPROCTKN foreign key (SUPERPROCESSTOKEN_) references JBPM_TOKEN
+create index IDX_RTACTN_PRCINST on JBPM_RUNTIMEACTION (PROCESSINSTANCE_)
+create index IDX_RTACTN_ACTION on JBPM_RUNTIMEACTION (ACTION_)
+alter table JBPM_RUNTIMEACTION add constraint FK_RTACTN_PROCINST foreign key (PROCESSINSTANCE_) references JBPM_PROCESSINSTANCE
+alter table JBPM_RUNTIMEACTION add constraint FK_RTACTN_ACTION foreign key (ACTION_) references JBPM_ACTION
+alter table JBPM_SWIMLANE add constraint FK_SWL_ASSDEL foreign key (ASSIGNMENTDELEGATION_) references JBPM_DELEGATION
+alter table JBPM_SWIMLANE add constraint FK_SWL_TSKMGMTDEF foreign key (TASKMGMTDEFINITION_) references JBPM_MODULEDEFINITION
+create index IDX_SWIMLINST_SL on JBPM_SWIMLANEINSTANCE (SWIMLANE_)
+alter table JBPM_SWIMLANEINSTANCE add constraint FK_SWIMLANEINST_TM foreign key (TASKMGMTINSTANCE_) references JBPM_MODULEINSTANCE
+alter table JBPM_SWIMLANEINSTANCE add constraint FK_SWIMLANEINST_SL foreign key (SWIMLANE_) references JBPM_SWIMLANE
+create index IDX_TASK_TSKNODE on JBPM_TASK (TASKNODE_)
+create index IDX_TASK_PROCDEF on JBPM_TASK (PROCESSDEFINITION_)
+create index IDX_TASK_TASKMGTDF on JBPM_TASK (TASKMGMTDEFINITION_)
+alter table JBPM_TASK add constraint FK_TSK_TSKCTRL foreign key (TASKCONTROLLER_) references JBPM_TASKCONTROLLER
+alter table JBPM_TASK add constraint FK_TASK_ASSDEL foreign key (ASSIGNMENTDELEGATION_) references JBPM_DELEGATION
+alter table JBPM_TASK add constraint FK_TASK_TASKNODE foreign key (TASKNODE_) references JBPM_NODE
+alter table JBPM_TASK add constraint FK_TASK_PROCDEF foreign key (PROCESSDEFINITION_) references JBPM_PROCESSDEFINITION
+alter table JBPM_TASK add constraint FK_TASK_STARTST foreign key (STARTSTATE_) references JBPM_NODE
+alter table JBPM_TASK add constraint FK_TASK_TASKMGTDEF foreign key (TASKMGMTDEFINITION_) references JBPM_MODULEDEFINITION
+alter table JBPM_TASK add constraint FK_TASK_SWIMLANE foreign key (SWIMLANE_) references JBPM_SWIMLANE
+alter table JBPM_TASKACTORPOOL add constraint FK_TSKACTPOL_PLACT foreign key (POOLEDACTOR_) references JBPM_POOLEDACTOR
+alter table JBPM_TASKACTORPOOL add constraint FK_TASKACTPL_TSKI foreign key (TASKINSTANCE_) references JBPM_TASKINSTANCE
+alter table JBPM_TASKCONTROLLER add constraint FK_TSKCTRL_DELEG foreign key (TASKCONTROLLERDELEGATION_) references JBPM_DELEGATION
+create index IDX_TASKINST_TOKN on JBPM_TASKINSTANCE (TOKEN_)
+create index IDX_TASKINST_TSK on JBPM_TASKINSTANCE (TASK_, PROCINST_)
+create index IDX_TSKINST_TMINST on JBPM_TASKINSTANCE (TASKMGMTINSTANCE_)
+create index IDX_TSKINST_SLINST on JBPM_TASKINSTANCE (SWIMLANINSTANCE_)
+create index IDX_TASK_ACTORID on JBPM_TASKINSTANCE (ACTORID_)
+alter table JBPM_TASKINSTANCE add constraint FK_TSKINS_PRCINS foreign key (PROCINST_) references JBPM_PROCESSINSTANCE
+alter table JBPM_TASKINSTANCE add constraint FK_TASKINST_TMINST foreign key (TASKMGMTINSTANCE_) references JBPM_MODULEINSTANCE
+alter table JBPM_TASKINSTANCE add constraint FK_TASKINST_TOKEN foreign key (TOKEN_) references JBPM_TOKEN
+alter table JBPM_TASKINSTANCE add constraint FK_TASKINST_SLINST foreign key (SWIMLANINSTANCE_) references JBPM_SWIMLANEINSTANCE
+alter table JBPM_TASKINSTANCE add constraint FK_TASKINST_TASK foreign key (TASK_) references JBPM_TASK
+create index IDX_TOKEN_PROCIN on JBPM_TOKEN (PROCESSINSTANCE_)
+create index IDX_TOKEN_SUBPI on JBPM_TOKEN (SUBPROCESSINSTANCE_)
+create index IDX_TOKEN_NODE on JBPM_TOKEN (NODE_)
+create index IDX_TOKEN_PARENT on JBPM_TOKEN (PARENT_)
+alter table JBPM_TOKEN add constraint FK_TOKEN_PARENT foreign key (PARENT_) references JBPM_TOKEN
+alter table JBPM_TOKEN add constraint FK_TOKEN_NODE foreign key (NODE_) references JBPM_NODE
+alter table JBPM_TOKEN add constraint FK_TOKEN_PROCINST foreign key (PROCESSINSTANCE_) references JBPM_PROCESSINSTANCE
+alter table JBPM_TOKEN add constraint FK_TOKEN_SUBPI foreign key (SUBPROCESSINSTANCE_) references JBPM_PROCESSINSTANCE
+create index IDX_TKVARMAP_CTXT on JBPM_TOKENVARIABLEMAP (CONTEXTINSTANCE_)
+create index IDX_TKVVARMP_TOKEN on JBPM_TOKENVARIABLEMAP (TOKEN_)
+alter table JBPM_TOKENVARIABLEMAP add constraint FK_TKVARMAP_CTXT foreign key (CONTEXTINSTANCE_) references JBPM_MODULEINSTANCE
+alter table JBPM_TOKENVARIABLEMAP add constraint FK_TKVARMAP_TOKEN foreign key (TOKEN_) references JBPM_TOKEN
+create index IDX_TRANSIT_TO on JBPM_TRANSITION (TO_)
+create index IDX_TRANSIT_FROM on JBPM_TRANSITION (FROM_)
+create index IDX_TRANS_PROCDEF on JBPM_TRANSITION (PROCESSDEFINITION_)
+alter table JBPM_TRANSITION add constraint FK_TRANSITION_TO foreign key (TO_) references JBPM_NODE
+alter table JBPM_TRANSITION add constraint FK_TRANS_PROCDEF foreign key (PROCESSDEFINITION_) references JBPM_PROCESSDEFINITION
+alter table JBPM_TRANSITION add constraint FK_TRANSITION_FROM foreign key (FROM_) references JBPM_NODE
+alter table JBPM_VARIABLEACCESS add constraint FK_VARACC_TSKCTRL foreign key (TASKCONTROLLER_) references JBPM_TASKCONTROLLER
+alter table JBPM_VARIABLEACCESS add constraint FK_VARACC_SCRIPT foreign key (SCRIPT_) references JBPM_ACTION
+alter table JBPM_VARIABLEACCESS add constraint FK_VARACC_PROCST foreign key (PROCESSSTATE_) references JBPM_NODE
+create index IDX_VARINST_TKVARMP on JBPM_VARIABLEINSTANCE (TOKENVARIABLEMAP_)
+create index IDX_VARINST_PRCINS on JBPM_VARIABLEINSTANCE (PROCESSINSTANCE_)
+create index IDX_VARINST_TK on JBPM_VARIABLEINSTANCE (TOKEN_)
+alter table JBPM_VARIABLEINSTANCE add constraint FK_VARINST_TK foreign key (TOKEN_) references JBPM_TOKEN
+alter table JBPM_VARIABLEINSTANCE add constraint FK_VARINST_TKVARMP foreign key (TOKENVARIABLEMAP_) references JBPM_TOKENVARIABLEMAP
+alter table JBPM_VARIABLEINSTANCE add constraint FK_VARINST_PRCINST foreign key (PROCESSINSTANCE_) references JBPM_PROCESSINSTANCE
+alter table JBPM_VARIABLEINSTANCE add constraint FK_VAR_TSKINST foreign key (TASKINSTANCE_) references JBPM_TASKINSTANCE
+alter table JBPM_VARIABLEINSTANCE add constraint FK_BYTEINST_ARRAY foreign key (BYTEARRAYVALUE_) references JBPM_BYTEARRAY
+create sequence hibernate_sequence
Modified: labs/jbossesb/workspace/mlittle/legstar/product/services/jbpm/src/main/resources/jbpm-sql/jbpm.jpdl.sapdb.sql
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/services/jbpm/src/main/resources/jbpm-sql/jbpm.jpdl.sapdb.sql 2009-01-21 14:47:17 UTC (rev 24849)
+++ labs/jbossesb/workspace/mlittle/legstar/product/services/jbpm/src/main/resources/jbpm-sql/jbpm.jpdl.sapdb.sql 2009-01-21 15:38:08 UTC (rev 24850)
@@ -1,168 +1,168 @@
-create table JBPM_ACTION (ID_ fixed(19,0) not null, class char(1) not null, NAME_ varchar(255) null, ISPROPAGATIONALLOWED_ boolean null, ACTIONEXPRESSION_ varchar(255) null, ISASYNC_ boolean null, REFERENCEDACTION_ fixed(19,0) null, ACTIONDELEGATION_ fixed(19,0) null, EVENT_ fixed(19,0) null, PROCESSDEFINITION_ fixed(19,0) null, EXPRESSION_ varchar(4000) null, TIMERNAME_ varchar(255) null, DUEDATE_ varchar(255) null, REPEAT_ varchar(255) null, TRANSITIONNAME_ varchar(255) null, TIMERACTION_ fixed(19,0) null, EVENTINDEX_ int null, EXCEPTIONHANDLER_ fixed(19,0) null, EXCEPTIONHANDLERINDEX_ int null, primary key (ID_));
-create table JBPM_BYTEARRAY (ID_ fixed(19,0) not null, NAME_ varchar(255) null, FILEDEFINITION_ fixed(19,0) null, primary key (ID_));
-create table JBPM_BYTEBLOCK (PROCESSFILE_ fixed(19,0) not null, BYTES_ long byte null, INDEX_ int not null, primary key (PROCESSFILE_, INDEX_));
-create table JBPM_COMMENT (ID_ fixed(19,0) not null, VERSION_ int not null, ACTORID_ varchar(255) null, TIME_ timestamp null, MESSAGE_ varchar(4000) null, TOKEN_ fixed(19,0) null, TASKINSTANCE_ fixed(19,0) null, TOKENINDEX_ int null, TASKINSTANCEINDEX_ int null, primary key (ID_));
-create table JBPM_DECISIONCONDITIONS (DECISION_ fixed(19,0) not null, TRANSITIONNAME_ varchar(255) null, EXPRESSION_ varchar(255) null, INDEX_ int not null, primary key (DECISION_, INDEX_));
-create table JBPM_DELEGATION (ID_ fixed(19,0) not null, CLASSNAME_ varchar(4000) null, CONFIGURATION_ varchar(4000) null, CONFIGTYPE_ varchar(255) null, PROCESSDEFINITION_ fixed(19,0) null, primary key (ID_));
-create table JBPM_EVENT (ID_ fixed(19,0) not null, EVENTTYPE_ varchar(255) null, TYPE_ char(1) null, GRAPHELEMENT_ fixed(19,0) null, PROCESSDEFINITION_ fixed(19,0) null, NODE_ fixed(19,0) null, TRANSITION_ fixed(19,0) null, TASK_ fixed(19,0) null, primary key (ID_));
-create table JBPM_EXCEPTIONHANDLER (ID_ fixed(19,0) not null, EXCEPTIONCLASSNAME_ varchar(4000) null, TYPE_ char(1) null, GRAPHELEMENT_ fixed(19,0) null, PROCESSDEFINITION_ fixed(19,0) null, GRAPHELEMENTINDEX_ int null, NODE_ fixed(19,0) null, TRANSITION_ fixed(19,0) null, TASK_ fixed(19,0) null, primary key (ID_));
-create table JBPM_ID_GROUP (ID_ fixed(19,0) not null, CLASS_ char(1) not null, NAME_ varchar(255) null, TYPE_ varchar(255) null, PARENT_ fixed(19,0) null, primary key (ID_));
-create table JBPM_ID_MEMBERSHIP (ID_ fixed(19,0) not null, CLASS_ char(1) not null, NAME_ varchar(255) null, ROLE_ varchar(255) null, USER_ fixed(19,0) null, GROUP_ fixed(19,0) null, primary key (ID_));
-create table JBPM_ID_PERMISSIONS (ENTITY_ fixed(19,0) not null, CLASS_ varchar(255) null, NAME_ varchar(255) null, ACTION_ varchar(255) null);
-create table JBPM_ID_USER (ID_ fixed(19,0) not null, CLASS_ char(1) not null, NAME_ varchar(255) null, EMAIL_ varchar(255) null, PASSWORD_ varchar(255) null, primary key (ID_));
-create table JBPM_JOB (ID_ fixed(19,0) not null, CLASS_ char(1) not null, VERSION_ int not null, DUEDATE_ timestamp null, PROCESSINSTANCE_ fixed(19,0) null, TOKEN_ fixed(19,0) null, TASKINSTANCE_ fixed(19,0) null, ISSUSPENDED_ boolean null, ISEXCLUSIVE_ boolean null, LOCKOWNER_ varchar(255) null, LOCKTIME_ timestamp null, EXCEPTION_ varchar(4000) null, RETRIES_ int null, NAME_ varchar(255) null, REPEAT_ varchar(255) null, TRANSITIONNAME_ varchar(255) null, ACTION_ fixed(19,0) null, GRAPHELEMENTTYPE_ varchar(255) null, GRAPHELEMENT_ fixed(19,0) null, NODE_ fixed(19,0) null, primary key (ID_));
-create table JBPM_LOG (ID_ fixed(19,0) not null, CLASS_ char(1) not null, INDEX_ int null, DATE_ timestamp null, TOKEN_ fixed(19,0) null, PARENT_ fixed(19,0) null, MESSAGE_ varchar(4000) null, EXCEPTION_ varchar(4000) null, ACTION_ fixed(19,0) null, NODE_ fixed(19,0) null, ENTER_ timestamp null, LEAVE_ timestamp null, DURATION_ fixed(19,0) null, NEWLONGVALUE_ fixed(19,0) null, TRANSITION_ fixed(19,0) null, CHILD_ fixed(19,0) null, SOURCENODE_ fixed(19,0) null, DESTINATIONNODE_ fixed(19,0) null, VARIABLEINSTANCE_ fixed(19,0) null, OLDBYTEARRAY_ fixed(19,0) null, NEWBYTEARRAY_ fixed(19,0) null, OLDDATEVALUE_ timestamp null, NEWDATEVALUE_ timestamp null, OLDDOUBLEVALUE_ double precision null, NEWDOUBLEVALUE_ double precision null, OLDLONGIDCLASS_ varchar(255) null, OLDLONGIDVALUE_ fixed(19,0) null, NEWLONGIDCLASS_ varchar(255) null, NEWLONGIDVALUE_ fixed(19,0) null, OLDSTRINGIDCLASS_ varchar(255) null, OLDSTRINGIDVALUE_ varchar(255) null, NEWSTRINGIDCLASS_ varchar(255) null, N!
EWSTRINGIDVALUE_ varchar(255) null, OLDLONGVALUE_ fixed(19,0) null, OLDSTRINGVALUE_ varchar(4000) null, NEWSTRINGVALUE_ varchar(4000) null, TASKINSTANCE_ fixed(19,0) null, TASKACTORID_ varchar(255) null, TASKOLDACTORID_ varchar(255) null, SWIMLANEINSTANCE_ fixed(19,0) null, primary key (ID_));
-create table JBPM_MODULEDEFINITION (ID_ fixed(19,0) not null, CLASS_ char(1) not null, NAME_ varchar(4000) null, PROCESSDEFINITION_ fixed(19,0) null, STARTTASK_ fixed(19,0) null, primary key (ID_));
-create table JBPM_MODULEINSTANCE (ID_ fixed(19,0) not null, CLASS_ char(1) not null, VERSION_ int not null, PROCESSINSTANCE_ fixed(19,0) null, TASKMGMTDEFINITION_ fixed(19,0) null, NAME_ varchar(255) null, primary key (ID_));
-create table JBPM_NODE (ID_ fixed(19,0) not null, CLASS_ char(1) not null, NAME_ varchar(255) null, DESCRIPTION_ varchar(4000) null, PROCESSDEFINITION_ fixed(19,0) null, ISASYNC_ boolean null, ISASYNCEXCL_ boolean null, ACTION_ fixed(19,0) null, SUPERSTATE_ fixed(19,0) null, SUBPROCNAME_ varchar(255) null, SUBPROCESSDEFINITION_ fixed(19,0) null, DECISIONEXPRESSION_ varchar(255) null, DECISIONDELEGATION fixed(19,0) null, SCRIPT_ fixed(19,0) null, SIGNAL_ int null, CREATETASKS_ boolean null, ENDTASKS_ boolean null, NODECOLLECTIONINDEX_ int null, primary key (ID_));
-create table JBPM_POOLEDACTOR (ID_ fixed(19,0) not null, VERSION_ int not null, ACTORID_ varchar(255) null, SWIMLANEINSTANCE_ fixed(19,0) null, primary key (ID_));
-create table JBPM_PROCESSDEFINITION (ID_ fixed(19,0) not null, CLASS_ char(1) not null, NAME_ varchar(255) null, DESCRIPTION_ varchar(4000) null, VERSION_ int null, ISTERMINATIONIMPLICIT_ boolean null, STARTSTATE_ fixed(19,0) null, primary key (ID_));
-create table JBPM_PROCESSINSTANCE (ID_ fixed(19,0) not null, VERSION_ int not null, KEY_ varchar(255) null, START_ timestamp null, END_ timestamp null, ISSUSPENDED_ boolean null, PROCESSDEFINITION_ fixed(19,0) null, ROOTTOKEN_ fixed(19,0) null, SUPERPROCESSTOKEN_ fixed(19,0) null, primary key (ID_));
-create table JBPM_RUNTIMEACTION (ID_ fixed(19,0) not null, VERSION_ int not null, EVENTTYPE_ varchar(255) null, TYPE_ char(1) null, GRAPHELEMENT_ fixed(19,0) null, PROCESSINSTANCE_ fixed(19,0) null, ACTION_ fixed(19,0) null, PROCESSINSTANCEINDEX_ int null, primary key (ID_));
-create table JBPM_SWIMLANE (ID_ fixed(19,0) not null, NAME_ varchar(255) null, ACTORIDEXPRESSION_ varchar(255) null, POOLEDACTORSEXPRESSION_ varchar(255) null, ASSIGNMENTDELEGATION_ fixed(19,0) null, TASKMGMTDEFINITION_ fixed(19,0) null, primary key (ID_));
-create table JBPM_SWIMLANEINSTANCE (ID_ fixed(19,0) not null, VERSION_ int not null, NAME_ varchar(255) null, ACTORID_ varchar(255) null, SWIMLANE_ fixed(19,0) null, TASKMGMTINSTANCE_ fixed(19,0) null, primary key (ID_));
-create table JBPM_TASK (ID_ fixed(19,0) not null, NAME_ varchar(255) null, DESCRIPTION_ varchar(4000) null, PROCESSDEFINITION_ fixed(19,0) null, ISBLOCKING_ boolean null, ISSIGNALLING_ boolean null, CONDITION_ varchar(255) null, DUEDATE_ varchar(255) null, PRIORITY_ int null, ACTORIDEXPRESSION_ varchar(255) null, POOLEDACTORSEXPRESSION_ varchar(255) null, TASKMGMTDEFINITION_ fixed(19,0) null, TASKNODE_ fixed(19,0) null, STARTSTATE_ fixed(19,0) null, ASSIGNMENTDELEGATION_ fixed(19,0) null, SWIMLANE_ fixed(19,0) null, TASKCONTROLLER_ fixed(19,0) null, primary key (ID_));
-create table JBPM_TASKACTORPOOL (TASKINSTANCE_ fixed(19,0) not null, POOLEDACTOR_ fixed(19,0) not null, primary key (TASKINSTANCE_, POOLEDACTOR_));
-create table JBPM_TASKCONTROLLER (ID_ fixed(19,0) not null, TASKCONTROLLERDELEGATION_ fixed(19,0) null, primary key (ID_));
-create table JBPM_TASKINSTANCE (ID_ fixed(19,0) not null, CLASS_ char(1) not null, VERSION_ int not null, NAME_ varchar(255) null, DESCRIPTION_ varchar(4000) null, ACTORID_ varchar(255) null, CREATE_ timestamp null, START_ timestamp null, END_ timestamp null, DUEDATE_ timestamp null, PRIORITY_ int null, ISCANCELLED_ boolean null, ISSUSPENDED_ boolean null, ISOPEN_ boolean null, ISSIGNALLING_ boolean null, ISBLOCKING_ boolean null, TASK_ fixed(19,0) null, TOKEN_ fixed(19,0) null, PROCINST_ fixed(19,0) null, SWIMLANINSTANCE_ fixed(19,0) null, TASKMGMTINSTANCE_ fixed(19,0) null, primary key (ID_));
-create table JBPM_TOKEN (ID_ fixed(19,0) not null, VERSION_ int not null, NAME_ varchar(255) null, START_ timestamp null, END_ timestamp null, NODEENTER_ timestamp null, NEXTLOGINDEX_ int null, ISABLETOREACTIVATEPARENT_ boolean null, ISTERMINATIONIMPLICIT_ boolean null, ISSUSPENDED_ boolean null, LOCK_ varchar(255) null, NODE_ fixed(19,0) null, PROCESSINSTANCE_ fixed(19,0) null, PARENT_ fixed(19,0) null, SUBPROCESSINSTANCE_ fixed(19,0) null, primary key (ID_));
-create table JBPM_TOKENVARIABLEMAP (ID_ fixed(19,0) not null, VERSION_ int not null, TOKEN_ fixed(19,0) null, CONTEXTINSTANCE_ fixed(19,0) null, primary key (ID_));
-create table JBPM_TRANSITION (ID_ fixed(19,0) not null, NAME_ varchar(255) null, DESCRIPTION_ varchar(4000) null, PROCESSDEFINITION_ fixed(19,0) null, FROM_ fixed(19,0) null, TO_ fixed(19,0) null, CONDITION_ varchar(255) null, FROMINDEX_ int null, primary key (ID_));
-create table JBPM_VARIABLEACCESS (ID_ fixed(19,0) not null, VARIABLENAME_ varchar(255) null, ACCESS_ varchar(255) null, MAPPEDNAME_ varchar(255) null, SCRIPT_ fixed(19,0) null, PROCESSSTATE_ fixed(19,0) null, TASKCONTROLLER_ fixed(19,0) null, INDEX_ int null, primary key (ID_));
-create table JBPM_VARIABLEINSTANCE (ID_ fixed(19,0) not null, CLASS_ char(1) not null, VERSION_ int not null, NAME_ varchar(255) null, CONVERTER_ char(1) null, TOKEN_ fixed(19,0) null, TOKENVARIABLEMAP_ fixed(19,0) null, PROCESSINSTANCE_ fixed(19,0) null, BYTEARRAYVALUE_ fixed(19,0) null, DATEVALUE_ timestamp null, DOUBLEVALUE_ double precision null, LONGIDCLASS_ varchar(255) null, LONGVALUE_ fixed(19,0) null, STRINGIDCLASS_ varchar(255) null, STRINGVALUE_ varchar(4000) null, TASKINSTANCE_ fixed(19,0) null, primary key (ID_));
-create index IDX_ACTION_EVENT on JBPM_ACTION (EVENT_);
-create index IDX_ACTION_ACTNDL on JBPM_ACTION (ACTIONDELEGATION_);
-create index IDX_ACTION_PROCDF on JBPM_ACTION (PROCESSDEFINITION_);
-alter table JBPM_ACTION foreign key FK_ACTION_EVENT (EVENT_) references JBPM_EVENT;
-alter table JBPM_ACTION foreign key FK_ACTION_EXPTHDL (EXCEPTIONHANDLER_) references JBPM_EXCEPTIONHANDLER;
-alter table JBPM_ACTION foreign key FK_ACTION_PROCDEF (PROCESSDEFINITION_) references JBPM_PROCESSDEFINITION;
-alter table JBPM_ACTION foreign key FK_CRTETIMERACT_TA (TIMERACTION_) references JBPM_ACTION;
-alter table JBPM_ACTION foreign key FK_ACTION_ACTNDEL (ACTIONDELEGATION_) references JBPM_DELEGATION;
-alter table JBPM_ACTION foreign key FK_ACTION_REFACT (REFERENCEDACTION_) references JBPM_ACTION;
-alter table JBPM_BYTEARRAY foreign key FK_BYTEARR_FILDEF (FILEDEFINITION_) references JBPM_MODULEDEFINITION;
-alter table JBPM_BYTEBLOCK foreign key FK_BYTEBLOCK_FILE (PROCESSFILE_) references JBPM_BYTEARRAY;
-create index IDX_COMMENT_TOKEN on JBPM_COMMENT (TOKEN_);
-create index IDX_COMMENT_TSK on JBPM_COMMENT (TASKINSTANCE_);
-alter table JBPM_COMMENT foreign key FK_COMMENT_TOKEN (TOKEN_) references JBPM_TOKEN;
-alter table JBPM_COMMENT foreign key FK_COMMENT_TSK (TASKINSTANCE_) references JBPM_TASKINSTANCE;
-alter table JBPM_DECISIONCONDITIONS foreign key FK_DECCOND_DEC (DECISION_) references JBPM_NODE;
-create index IDX_DELEG_PRCD on JBPM_DELEGATION (PROCESSDEFINITION_);
-alter table JBPM_DELEGATION foreign key FK_DELEGATION_PRCD (PROCESSDEFINITION_) references JBPM_PROCESSDEFINITION;
-alter table JBPM_EVENT foreign key FK_EVENT_PROCDEF (PROCESSDEFINITION_) references JBPM_PROCESSDEFINITION;
-alter table JBPM_EVENT foreign key FK_EVENT_NODE (NODE_) references JBPM_NODE;
-alter table JBPM_EVENT foreign key FK_EVENT_TRANS (TRANSITION_) references JBPM_TRANSITION;
-alter table JBPM_EVENT foreign key FK_EVENT_TASK (TASK_) references JBPM_TASK;
-alter table JBPM_ID_GROUP foreign key FK_ID_GRP_PARENT (PARENT_) references JBPM_ID_GROUP;
-alter table JBPM_ID_MEMBERSHIP foreign key FK_ID_MEMSHIP_GRP (GROUP_) references JBPM_ID_GROUP;
-alter table JBPM_ID_MEMBERSHIP foreign key FK_ID_MEMSHIP_USR (USER_) references JBPM_ID_USER;
-create index IDX_JOB_TSKINST on JBPM_JOB (TASKINSTANCE_);
-create index IDX_JOB_PRINST on JBPM_JOB (PROCESSINSTANCE_);
-create index IDX_JOB_TOKEN on JBPM_JOB (TOKEN_);
-alter table JBPM_JOB foreign key FK_JOB_TOKEN (TOKEN_) references JBPM_TOKEN;
-alter table JBPM_JOB foreign key FK_JOB_NODE (NODE_) references JBPM_NODE;
-alter table JBPM_JOB foreign key FK_JOB_PRINST (PROCESSINSTANCE_) references JBPM_PROCESSINSTANCE;
-alter table JBPM_JOB foreign key FK_JOB_ACTION (ACTION_) references JBPM_ACTION;
-alter table JBPM_JOB foreign key FK_JOB_TSKINST (TASKINSTANCE_) references JBPM_TASKINSTANCE;
-alter table JBPM_LOG foreign key FK_LOG_SOURCENODE (SOURCENODE_) references JBPM_NODE;
-alter table JBPM_LOG foreign key FK_LOG_TOKEN (TOKEN_) references JBPM_TOKEN;
-alter table JBPM_LOG foreign key FK_LOG_OLDBYTES (OLDBYTEARRAY_) references JBPM_BYTEARRAY;
-alter table JBPM_LOG foreign key FK_LOG_NEWBYTES (NEWBYTEARRAY_) references JBPM_BYTEARRAY;
-alter table JBPM_LOG foreign key FK_LOG_CHILDTOKEN (CHILD_) references JBPM_TOKEN;
-alter table JBPM_LOG foreign key FK_LOG_DESTNODE (DESTINATIONNODE_) references JBPM_NODE;
-alter table JBPM_LOG foreign key FK_LOG_TASKINST (TASKINSTANCE_) references JBPM_TASKINSTANCE;
-alter table JBPM_LOG foreign key FK_LOG_SWIMINST (SWIMLANEINSTANCE_) references JBPM_SWIMLANEINSTANCE;
-alter table JBPM_LOG foreign key FK_LOG_PARENT (PARENT_) references JBPM_LOG;
-alter table JBPM_LOG foreign key FK_LOG_NODE (NODE_) references JBPM_NODE;
-alter table JBPM_LOG foreign key FK_LOG_ACTION (ACTION_) references JBPM_ACTION;
-alter table JBPM_LOG foreign key FK_LOG_VARINST (VARIABLEINSTANCE_) references JBPM_VARIABLEINSTANCE;
-alter table JBPM_LOG foreign key FK_LOG_TRANSITION (TRANSITION_) references JBPM_TRANSITION;
-create index IDX_MODDEF_PROCDF on JBPM_MODULEDEFINITION (PROCESSDEFINITION_);
-alter table JBPM_MODULEDEFINITION foreign key FK_TSKDEF_START (STARTTASK_) references JBPM_TASK;
-alter table JBPM_MODULEDEFINITION foreign key FK_MODDEF_PROCDEF (PROCESSDEFINITION_) references JBPM_PROCESSDEFINITION;
-create index IDX_MODINST_PRINST on JBPM_MODULEINSTANCE (PROCESSINSTANCE_);
-alter table JBPM_MODULEINSTANCE foreign key FK_TASKMGTINST_TMD (TASKMGMTDEFINITION_) references JBPM_MODULEDEFINITION;
-alter table JBPM_MODULEINSTANCE foreign key FK_MODINST_PRCINST (PROCESSINSTANCE_) references JBPM_PROCESSINSTANCE;
-create index IDX_PSTATE_SBPRCDEF on JBPM_NODE (SUBPROCESSDEFINITION_);
-create index IDX_NODE_SUPRSTATE on JBPM_NODE (SUPERSTATE_);
-create index IDX_NODE_PROCDEF on JBPM_NODE (PROCESSDEFINITION_);
-create index IDX_NODE_ACTION on JBPM_NODE (ACTION_);
-alter table JBPM_NODE foreign key FK_PROCST_SBPRCDEF (SUBPROCESSDEFINITION_) references JBPM_PROCESSDEFINITION;
-alter table JBPM_NODE foreign key FK_NODE_PROCDEF (PROCESSDEFINITION_) references JBPM_PROCESSDEFINITION;
-alter table JBPM_NODE foreign key FK_NODE_SCRIPT (SCRIPT_) references JBPM_ACTION;
-alter table JBPM_NODE foreign key FK_NODE_ACTION (ACTION_) references JBPM_ACTION;
-alter table JBPM_NODE foreign key FK_DECISION_DELEG (DECISIONDELEGATION) references JBPM_DELEGATION;
-alter table JBPM_NODE foreign key FK_NODE_SUPERSTATE (SUPERSTATE_) references JBPM_NODE;
-create index IDX_PLDACTR_ACTID on JBPM_POOLEDACTOR (ACTORID_);
-create index IDX_TSKINST_SWLANE on JBPM_POOLEDACTOR (SWIMLANEINSTANCE_);
-alter table JBPM_POOLEDACTOR foreign key FK_POOLEDACTOR_SLI (SWIMLANEINSTANCE_) references JBPM_SWIMLANEINSTANCE;
-create index IDX_PROCDEF_STRTST on JBPM_PROCESSDEFINITION (STARTSTATE_);
-alter table JBPM_PROCESSDEFINITION foreign key FK_PROCDEF_STRTSTA (STARTSTATE_) references JBPM_NODE;
-create index IDX_PROCIN_ROOTTK on JBPM_PROCESSINSTANCE (ROOTTOKEN_);
-create index IDX_PROCIN_SPROCTK on JBPM_PROCESSINSTANCE (SUPERPROCESSTOKEN_);
-create index IDX_PROCIN_KEY on JBPM_PROCESSINSTANCE (KEY_);
-create index IDX_PROCIN_PROCDEF on JBPM_PROCESSINSTANCE (PROCESSDEFINITION_);
-alter table JBPM_PROCESSINSTANCE foreign key FK_PROCIN_PROCDEF (PROCESSDEFINITION_) references JBPM_PROCESSDEFINITION;
-alter table JBPM_PROCESSINSTANCE foreign key FK_PROCIN_ROOTTKN (ROOTTOKEN_) references JBPM_TOKEN;
-alter table JBPM_PROCESSINSTANCE foreign key FK_PROCIN_SPROCTKN (SUPERPROCESSTOKEN_) references JBPM_TOKEN;
-create index IDX_RTACTN_PRCINST on JBPM_RUNTIMEACTION (PROCESSINSTANCE_);
-create index IDX_RTACTN_ACTION on JBPM_RUNTIMEACTION (ACTION_);
-alter table JBPM_RUNTIMEACTION foreign key FK_RTACTN_PROCINST (PROCESSINSTANCE_) references JBPM_PROCESSINSTANCE;
-alter table JBPM_RUNTIMEACTION foreign key FK_RTACTN_ACTION (ACTION_) references JBPM_ACTION;
-alter table JBPM_SWIMLANE foreign key FK_SWL_ASSDEL (ASSIGNMENTDELEGATION_) references JBPM_DELEGATION;
-alter table JBPM_SWIMLANE foreign key FK_SWL_TSKMGMTDEF (TASKMGMTDEFINITION_) references JBPM_MODULEDEFINITION;
-create index IDX_SWIMLINST_SL on JBPM_SWIMLANEINSTANCE (SWIMLANE_);
-alter table JBPM_SWIMLANEINSTANCE foreign key FK_SWIMLANEINST_TM (TASKMGMTINSTANCE_) references JBPM_MODULEINSTANCE;
-alter table JBPM_SWIMLANEINSTANCE foreign key FK_SWIMLANEINST_SL (SWIMLANE_) references JBPM_SWIMLANE;
-create index IDX_TASK_TSKNODE on JBPM_TASK (TASKNODE_);
-create index IDX_TASK_PROCDEF on JBPM_TASK (PROCESSDEFINITION_);
-create index IDX_TASK_TASKMGTDF on JBPM_TASK (TASKMGMTDEFINITION_);
-alter table JBPM_TASK foreign key FK_TSK_TSKCTRL (TASKCONTROLLER_) references JBPM_TASKCONTROLLER;
-alter table JBPM_TASK foreign key FK_TASK_ASSDEL (ASSIGNMENTDELEGATION_) references JBPM_DELEGATION;
-alter table JBPM_TASK foreign key FK_TASK_TASKNODE (TASKNODE_) references JBPM_NODE;
-alter table JBPM_TASK foreign key FK_TASK_PROCDEF (PROCESSDEFINITION_) references JBPM_PROCESSDEFINITION;
-alter table JBPM_TASK foreign key FK_TASK_STARTST (STARTSTATE_) references JBPM_NODE;
-alter table JBPM_TASK foreign key FK_TASK_TASKMGTDEF (TASKMGMTDEFINITION_) references JBPM_MODULEDEFINITION;
-alter table JBPM_TASK foreign key FK_TASK_SWIMLANE (SWIMLANE_) references JBPM_SWIMLANE;
-alter table JBPM_TASKACTORPOOL foreign key FK_TSKACTPOL_PLACT (POOLEDACTOR_) references JBPM_POOLEDACTOR;
-alter table JBPM_TASKACTORPOOL foreign key FK_TASKACTPL_TSKI (TASKINSTANCE_) references JBPM_TASKINSTANCE;
-alter table JBPM_TASKCONTROLLER foreign key FK_TSKCTRL_DELEG (TASKCONTROLLERDELEGATION_) references JBPM_DELEGATION;
-create index IDX_TASKINST_TOKN on JBPM_TASKINSTANCE (TOKEN_);
-create index IDX_TASKINST_TSK on JBPM_TASKINSTANCE (TASK_, PROCINST_);
-create index IDX_TSKINST_TMINST on JBPM_TASKINSTANCE (TASKMGMTINSTANCE_);
-create index IDX_TSKINST_SLINST on JBPM_TASKINSTANCE (SWIMLANINSTANCE_);
-create index IDX_TASK_ACTORID on JBPM_TASKINSTANCE (ACTORID_);
-alter table JBPM_TASKINSTANCE foreign key FK_TSKINS_PRCINS (PROCINST_) references JBPM_PROCESSINSTANCE;
-alter table JBPM_TASKINSTANCE foreign key FK_TASKINST_TMINST (TASKMGMTINSTANCE_) references JBPM_MODULEINSTANCE;
-alter table JBPM_TASKINSTANCE foreign key FK_TASKINST_TOKEN (TOKEN_) references JBPM_TOKEN;
-alter table JBPM_TASKINSTANCE foreign key FK_TASKINST_SLINST (SWIMLANINSTANCE_) references JBPM_SWIMLANEINSTANCE;
-alter table JBPM_TASKINSTANCE foreign key FK_TASKINST_TASK (TASK_) references JBPM_TASK;
-create index IDX_TOKEN_PROCIN on JBPM_TOKEN (PROCESSINSTANCE_);
-create index IDX_TOKEN_SUBPI on JBPM_TOKEN (SUBPROCESSINSTANCE_);
-create index IDX_TOKEN_NODE on JBPM_TOKEN (NODE_);
-create index IDX_TOKEN_PARENT on JBPM_TOKEN (PARENT_);
-alter table JBPM_TOKEN foreign key FK_TOKEN_PARENT (PARENT_) references JBPM_TOKEN;
-alter table JBPM_TOKEN foreign key FK_TOKEN_NODE (NODE_) references JBPM_NODE;
-alter table JBPM_TOKEN foreign key FK_TOKEN_PROCINST (PROCESSINSTANCE_) references JBPM_PROCESSINSTANCE;
-alter table JBPM_TOKEN foreign key FK_TOKEN_SUBPI (SUBPROCESSINSTANCE_) references JBPM_PROCESSINSTANCE;
-create index IDX_TKVARMAP_CTXT on JBPM_TOKENVARIABLEMAP (CONTEXTINSTANCE_);
-create index IDX_TKVVARMP_TOKEN on JBPM_TOKENVARIABLEMAP (TOKEN_);
-alter table JBPM_TOKENVARIABLEMAP foreign key FK_TKVARMAP_CTXT (CONTEXTINSTANCE_) references JBPM_MODULEINSTANCE;
-alter table JBPM_TOKENVARIABLEMAP foreign key FK_TKVARMAP_TOKEN (TOKEN_) references JBPM_TOKEN;
-create index IDX_TRANSIT_TO on JBPM_TRANSITION (TO_);
-create index IDX_TRANSIT_FROM on JBPM_TRANSITION (FROM_);
-create index IDX_TRANS_PROCDEF on JBPM_TRANSITION (PROCESSDEFINITION_);
-alter table JBPM_TRANSITION foreign key FK_TRANSITION_TO (TO_) references JBPM_NODE;
-alter table JBPM_TRANSITION foreign key FK_TRANS_PROCDEF (PROCESSDEFINITION_) references JBPM_PROCESSDEFINITION;
-alter table JBPM_TRANSITION foreign key FK_TRANSITION_FROM (FROM_) references JBPM_NODE;
-alter table JBPM_VARIABLEACCESS foreign key FK_VARACC_TSKCTRL (TASKCONTROLLER_) references JBPM_TASKCONTROLLER;
-alter table JBPM_VARIABLEACCESS foreign key FK_VARACC_SCRIPT (SCRIPT_) references JBPM_ACTION;
-alter table JBPM_VARIABLEACCESS foreign key FK_VARACC_PROCST (PROCESSSTATE_) references JBPM_NODE;
-create index IDX_VARINST_TKVARMP on JBPM_VARIABLEINSTANCE (TOKENVARIABLEMAP_);
-create index IDX_VARINST_PRCINS on JBPM_VARIABLEINSTANCE (PROCESSINSTANCE_);
-create index IDX_VARINST_TK on JBPM_VARIABLEINSTANCE (TOKEN_);
-alter table JBPM_VARIABLEINSTANCE foreign key FK_VARINST_TK (TOKEN_) references JBPM_TOKEN;
-alter table JBPM_VARIABLEINSTANCE foreign key FK_VARINST_TKVARMP (TOKENVARIABLEMAP_) references JBPM_TOKENVARIABLEMAP;
-alter table JBPM_VARIABLEINSTANCE foreign key FK_VARINST_PRCINST (PROCESSINSTANCE_) references JBPM_PROCESSINSTANCE;
-alter table JBPM_VARIABLEINSTANCE foreign key FK_VAR_TSKINST (TASKINSTANCE_) references JBPM_TASKINSTANCE;
-alter table JBPM_VARIABLEINSTANCE foreign key FK_BYTEINST_ARRAY (BYTEARRAYVALUE_) references JBPM_BYTEARRAY;
-create sequence hibernate_sequence;
+create table JBPM_ACTION (ID_ fixed(19,0) not null, class char(1) not null, NAME_ varchar(255) null, ISPROPAGATIONALLOWED_ boolean null, ACTIONEXPRESSION_ varchar(255) null, ISASYNC_ boolean null, REFERENCEDACTION_ fixed(19,0) null, ACTIONDELEGATION_ fixed(19,0) null, EVENT_ fixed(19,0) null, PROCESSDEFINITION_ fixed(19,0) null, EXPRESSION_ long varchar null, TIMERNAME_ varchar(255) null, DUEDATE_ varchar(255) null, REPEAT_ varchar(255) null, TRANSITIONNAME_ varchar(255) null, TIMERACTION_ fixed(19,0) null, EVENTINDEX_ int null, EXCEPTIONHANDLER_ fixed(19,0) null, EXCEPTIONHANDLERINDEX_ int null, primary key (ID_))
+create table JBPM_BYTEARRAY (ID_ fixed(19,0) not null, NAME_ varchar(255) null, FILEDEFINITION_ fixed(19,0) null, primary key (ID_))
+create table JBPM_BYTEBLOCK (PROCESSFILE_ fixed(19,0) not null, BYTES_ long byte null, INDEX_ int not null, primary key (PROCESSFILE_, INDEX_))
+create table JBPM_COMMENT (ID_ fixed(19,0) not null, VERSION_ int not null, ACTORID_ varchar(255) null, TIME_ timestamp null, MESSAGE_ long varchar null, TOKEN_ fixed(19,0) null, TASKINSTANCE_ fixed(19,0) null, TOKENINDEX_ int null, TASKINSTANCEINDEX_ int null, primary key (ID_))
+create table JBPM_DECISIONCONDITIONS (DECISION_ fixed(19,0) not null, TRANSITIONNAME_ varchar(255) null, EXPRESSION_ varchar(255) null, INDEX_ int not null, primary key (DECISION_, INDEX_))
+create table JBPM_DELEGATION (ID_ fixed(19,0) not null, CLASSNAME_ long varchar null, CONFIGURATION_ long varchar null, CONFIGTYPE_ varchar(255) null, PROCESSDEFINITION_ fixed(19,0) null, primary key (ID_))
+create table JBPM_EVENT (ID_ fixed(19,0) not null, EVENTTYPE_ varchar(255) null, TYPE_ char(1) null, GRAPHELEMENT_ fixed(19,0) null, PROCESSDEFINITION_ fixed(19,0) null, NODE_ fixed(19,0) null, TRANSITION_ fixed(19,0) null, TASK_ fixed(19,0) null, primary key (ID_))
+create table JBPM_EXCEPTIONHANDLER (ID_ fixed(19,0) not null, EXCEPTIONCLASSNAME_ long varchar null, TYPE_ char(1) null, GRAPHELEMENT_ fixed(19,0) null, PROCESSDEFINITION_ fixed(19,0) null, GRAPHELEMENTINDEX_ int null, NODE_ fixed(19,0) null, TRANSITION_ fixed(19,0) null, TASK_ fixed(19,0) null, primary key (ID_))
+create table JBPM_ID_GROUP (ID_ fixed(19,0) not null, CLASS_ char(1) not null, NAME_ varchar(255) null, TYPE_ varchar(255) null, PARENT_ fixed(19,0) null, primary key (ID_))
+create table JBPM_ID_MEMBERSHIP (ID_ fixed(19,0) not null, CLASS_ char(1) not null, NAME_ varchar(255) null, ROLE_ varchar(255) null, USER_ fixed(19,0) null, GROUP_ fixed(19,0) null, primary key (ID_))
+create table JBPM_ID_PERMISSIONS (ENTITY_ fixed(19,0) not null, CLASS_ varchar(255) null, NAME_ varchar(255) null, ACTION_ varchar(255) null)
+create table JBPM_ID_USER (ID_ fixed(19,0) not null, CLASS_ char(1) not null, NAME_ varchar(255) null, EMAIL_ varchar(255) null, PASSWORD_ varchar(255) null, primary key (ID_))
+create table JBPM_JOB (ID_ fixed(19,0) not null, CLASS_ char(1) not null, VERSION_ int not null, DUEDATE_ timestamp null, PROCESSINSTANCE_ fixed(19,0) null, TOKEN_ fixed(19,0) null, TASKINSTANCE_ fixed(19,0) null, ISSUSPENDED_ boolean null, ISEXCLUSIVE_ boolean null, LOCKOWNER_ varchar(255) null, LOCKTIME_ timestamp null, EXCEPTION_ long varchar null, RETRIES_ int null, NAME_ varchar(255) null, REPEAT_ varchar(255) null, TRANSITIONNAME_ varchar(255) null, ACTION_ fixed(19,0) null, GRAPHELEMENTTYPE_ varchar(255) null, GRAPHELEMENT_ fixed(19,0) null, NODE_ fixed(19,0) null, primary key (ID_))
+create table JBPM_LOG (ID_ fixed(19,0) not null, CLASS_ char(1) not null, INDEX_ int null, DATE_ timestamp null, TOKEN_ fixed(19,0) null, PARENT_ fixed(19,0) null, MESSAGE_ long varchar null, EXCEPTION_ long varchar null, ACTION_ fixed(19,0) null, NODE_ fixed(19,0) null, ENTER_ timestamp null, LEAVE_ timestamp null, DURATION_ fixed(19,0) null, NEWLONGVALUE_ fixed(19,0) null, TRANSITION_ fixed(19,0) null, CHILD_ fixed(19,0) null, SOURCENODE_ fixed(19,0) null, DESTINATIONNODE_ fixed(19,0) null, VARIABLEINSTANCE_ fixed(19,0) null, OLDBYTEARRAY_ fixed(19,0) null, NEWBYTEARRAY_ fixed(19,0) null, OLDDATEVALUE_ timestamp null, NEWDATEVALUE_ timestamp null, OLDDOUBLEVALUE_ double precision null, NEWDOUBLEVALUE_ double precision null, OLDLONGIDCLASS_ varchar(255) null, OLDLONGIDVALUE_ fixed(19,0) null, NEWLONGIDCLASS_ varchar(255) null, NEWLONGIDVALUE_ fixed(19,0) null, OLDSTRINGIDCLASS_ varchar(255) null, OLDSTRINGIDVALUE_ varchar(255) null, NEWSTRINGIDCLASS_ varchar(255) null, NEW!
STRINGIDVALUE_ varchar(255) null, OLDLONGVALUE_ fixed(19,0) null, OLDSTRINGVALUE_ long varchar null, NEWSTRINGVALUE_ long varchar null, TASKINSTANCE_ fixed(19,0) null, TASKACTORID_ varchar(255) null, TASKOLDACTORID_ varchar(255) null, SWIMLANEINSTANCE_ fixed(19,0) null, primary key (ID_))
+create table JBPM_MODULEDEFINITION (ID_ fixed(19,0) not null, CLASS_ char(1) not null, NAME_ varchar(255) null, PROCESSDEFINITION_ fixed(19,0) null, STARTTASK_ fixed(19,0) null, primary key (ID_))
+create table JBPM_MODULEINSTANCE (ID_ fixed(19,0) not null, CLASS_ char(1) not null, VERSION_ int not null, PROCESSINSTANCE_ fixed(19,0) null, TASKMGMTDEFINITION_ fixed(19,0) null, NAME_ varchar(255) null, primary key (ID_))
+create table JBPM_NODE (ID_ fixed(19,0) not null, CLASS_ char(1) not null, NAME_ varchar(255) null, DESCRIPTION_ long varchar null, PROCESSDEFINITION_ fixed(19,0) null, ISASYNC_ boolean null, ISASYNCEXCL_ boolean null, ACTION_ fixed(19,0) null, SUPERSTATE_ fixed(19,0) null, SUBPROCNAME_ varchar(255) null, SUBPROCESSDEFINITION_ fixed(19,0) null, DECISIONEXPRESSION_ varchar(255) null, DECISIONDELEGATION fixed(19,0) null, SCRIPT_ fixed(19,0) null, PARENTLOCKMODE_ varchar(255) null, SIGNAL_ int null, CREATETASKS_ boolean null, ENDTASKS_ boolean null, NODECOLLECTIONINDEX_ int null, primary key (ID_))
+create table JBPM_POOLEDACTOR (ID_ fixed(19,0) not null, VERSION_ int not null, ACTORID_ varchar(255) null, SWIMLANEINSTANCE_ fixed(19,0) null, primary key (ID_))
+create table JBPM_PROCESSDEFINITION (ID_ fixed(19,0) not null, CLASS_ char(1) not null, NAME_ varchar(255) null, DESCRIPTION_ long varchar null, VERSION_ int null, ISTERMINATIONIMPLICIT_ boolean null, STARTSTATE_ fixed(19,0) null, primary key (ID_))
+create table JBPM_PROCESSINSTANCE (ID_ fixed(19,0) not null, VERSION_ int not null, KEY_ varchar(255) null, START_ timestamp null, END_ timestamp null, ISSUSPENDED_ boolean null, PROCESSDEFINITION_ fixed(19,0) null, ROOTTOKEN_ fixed(19,0) null, SUPERPROCESSTOKEN_ fixed(19,0) null, primary key (ID_))
+create table JBPM_RUNTIMEACTION (ID_ fixed(19,0) not null, VERSION_ int not null, EVENTTYPE_ varchar(255) null, TYPE_ char(1) null, GRAPHELEMENT_ fixed(19,0) null, PROCESSINSTANCE_ fixed(19,0) null, ACTION_ fixed(19,0) null, PROCESSINSTANCEINDEX_ int null, primary key (ID_))
+create table JBPM_SWIMLANE (ID_ fixed(19,0) not null, NAME_ varchar(255) null, ACTORIDEXPRESSION_ varchar(255) null, POOLEDACTORSEXPRESSION_ varchar(255) null, ASSIGNMENTDELEGATION_ fixed(19,0) null, TASKMGMTDEFINITION_ fixed(19,0) null, primary key (ID_))
+create table JBPM_SWIMLANEINSTANCE (ID_ fixed(19,0) not null, VERSION_ int not null, NAME_ varchar(255) null, ACTORID_ varchar(255) null, SWIMLANE_ fixed(19,0) null, TASKMGMTINSTANCE_ fixed(19,0) null, primary key (ID_))
+create table JBPM_TASK (ID_ fixed(19,0) not null, NAME_ varchar(255) null, DESCRIPTION_ long varchar null, PROCESSDEFINITION_ fixed(19,0) null, ISBLOCKING_ boolean null, ISSIGNALLING_ boolean null, CONDITION_ varchar(255) null, DUEDATE_ varchar(255) null, PRIORITY_ int null, ACTORIDEXPRESSION_ varchar(255) null, POOLEDACTORSEXPRESSION_ varchar(255) null, TASKMGMTDEFINITION_ fixed(19,0) null, TASKNODE_ fixed(19,0) null, STARTSTATE_ fixed(19,0) null, ASSIGNMENTDELEGATION_ fixed(19,0) null, SWIMLANE_ fixed(19,0) null, TASKCONTROLLER_ fixed(19,0) null, primary key (ID_))
+create table JBPM_TASKACTORPOOL (TASKINSTANCE_ fixed(19,0) not null, POOLEDACTOR_ fixed(19,0) not null, primary key (TASKINSTANCE_, POOLEDACTOR_))
+create table JBPM_TASKCONTROLLER (ID_ fixed(19,0) not null, TASKCONTROLLERDELEGATION_ fixed(19,0) null, primary key (ID_))
+create table JBPM_TASKINSTANCE (ID_ fixed(19,0) not null, CLASS_ char(1) not null, VERSION_ int not null, NAME_ varchar(255) null, DESCRIPTION_ long varchar null, ACTORID_ varchar(255) null, CREATE_ timestamp null, START_ timestamp null, END_ timestamp null, DUEDATE_ timestamp null, PRIORITY_ int null, ISCANCELLED_ boolean null, ISSUSPENDED_ boolean null, ISOPEN_ boolean null, ISSIGNALLING_ boolean null, ISBLOCKING_ boolean null, TASK_ fixed(19,0) null, TOKEN_ fixed(19,0) null, PROCINST_ fixed(19,0) null, SWIMLANINSTANCE_ fixed(19,0) null, TASKMGMTINSTANCE_ fixed(19,0) null, primary key (ID_))
+create table JBPM_TOKEN (ID_ fixed(19,0) not null, VERSION_ int not null, NAME_ varchar(255) null, START_ timestamp null, END_ timestamp null, NODEENTER_ timestamp null, NEXTLOGINDEX_ int null, ISABLETOREACTIVATEPARENT_ boolean null, ISTERMINATIONIMPLICIT_ boolean null, ISSUSPENDED_ boolean null, LOCK_ varchar(255) null, NODE_ fixed(19,0) null, PROCESSINSTANCE_ fixed(19,0) null, PARENT_ fixed(19,0) null, SUBPROCESSINSTANCE_ fixed(19,0) null, primary key (ID_))
+create table JBPM_TOKENVARIABLEMAP (ID_ fixed(19,0) not null, VERSION_ int not null, TOKEN_ fixed(19,0) null, CONTEXTINSTANCE_ fixed(19,0) null, primary key (ID_))
+create table JBPM_TRANSITION (ID_ fixed(19,0) not null, NAME_ varchar(255) null, DESCRIPTION_ long varchar null, PROCESSDEFINITION_ fixed(19,0) null, FROM_ fixed(19,0) null, TO_ fixed(19,0) null, CONDITION_ varchar(255) null, FROMINDEX_ int null, primary key (ID_))
+create table JBPM_VARIABLEACCESS (ID_ fixed(19,0) not null, VARIABLENAME_ varchar(255) null, ACCESS_ varchar(255) null, MAPPEDNAME_ varchar(255) null, SCRIPT_ fixed(19,0) null, PROCESSSTATE_ fixed(19,0) null, TASKCONTROLLER_ fixed(19,0) null, INDEX_ int null, primary key (ID_))
+create table JBPM_VARIABLEINSTANCE (ID_ fixed(19,0) not null, CLASS_ char(1) not null, VERSION_ int not null, NAME_ varchar(255) null, CONVERTER_ char(1) null, TOKEN_ fixed(19,0) null, TOKENVARIABLEMAP_ fixed(19,0) null, PROCESSINSTANCE_ fixed(19,0) null, BYTEARRAYVALUE_ fixed(19,0) null, DATEVALUE_ timestamp null, DOUBLEVALUE_ double precision null, LONGIDCLASS_ varchar(255) null, LONGVALUE_ fixed(19,0) null, STRINGIDCLASS_ varchar(255) null, STRINGVALUE_ varchar(255) null, TASKINSTANCE_ fixed(19,0) null, primary key (ID_))
+create index IDX_ACTION_EVENT on JBPM_ACTION (EVENT_)
+create index IDX_ACTION_ACTNDL on JBPM_ACTION (ACTIONDELEGATION_)
+create index IDX_ACTION_PROCDF on JBPM_ACTION (PROCESSDEFINITION_)
+alter table JBPM_ACTION foreign key FK_ACTION_EVENT (EVENT_) references JBPM_EVENT
+alter table JBPM_ACTION foreign key FK_ACTION_EXPTHDL (EXCEPTIONHANDLER_) references JBPM_EXCEPTIONHANDLER
+alter table JBPM_ACTION foreign key FK_ACTION_PROCDEF (PROCESSDEFINITION_) references JBPM_PROCESSDEFINITION
+alter table JBPM_ACTION foreign key FK_CRTETIMERACT_TA (TIMERACTION_) references JBPM_ACTION
+alter table JBPM_ACTION foreign key FK_ACTION_ACTNDEL (ACTIONDELEGATION_) references JBPM_DELEGATION
+alter table JBPM_ACTION foreign key FK_ACTION_REFACT (REFERENCEDACTION_) references JBPM_ACTION
+alter table JBPM_BYTEARRAY foreign key FK_BYTEARR_FILDEF (FILEDEFINITION_) references JBPM_MODULEDEFINITION
+alter table JBPM_BYTEBLOCK foreign key FK_BYTEBLOCK_FILE (PROCESSFILE_) references JBPM_BYTEARRAY
+create index IDX_COMMENT_TOKEN on JBPM_COMMENT (TOKEN_)
+create index IDX_COMMENT_TSK on JBPM_COMMENT (TASKINSTANCE_)
+alter table JBPM_COMMENT foreign key FK_COMMENT_TOKEN (TOKEN_) references JBPM_TOKEN
+alter table JBPM_COMMENT foreign key FK_COMMENT_TSK (TASKINSTANCE_) references JBPM_TASKINSTANCE
+alter table JBPM_DECISIONCONDITIONS foreign key FK_DECCOND_DEC (DECISION_) references JBPM_NODE
+create index IDX_DELEG_PRCD on JBPM_DELEGATION (PROCESSDEFINITION_)
+alter table JBPM_DELEGATION foreign key FK_DELEGATION_PRCD (PROCESSDEFINITION_) references JBPM_PROCESSDEFINITION
+alter table JBPM_EVENT foreign key FK_EVENT_PROCDEF (PROCESSDEFINITION_) references JBPM_PROCESSDEFINITION
+alter table JBPM_EVENT foreign key FK_EVENT_NODE (NODE_) references JBPM_NODE
+alter table JBPM_EVENT foreign key FK_EVENT_TRANS (TRANSITION_) references JBPM_TRANSITION
+alter table JBPM_EVENT foreign key FK_EVENT_TASK (TASK_) references JBPM_TASK
+alter table JBPM_ID_GROUP foreign key FK_ID_GRP_PARENT (PARENT_) references JBPM_ID_GROUP
+alter table JBPM_ID_MEMBERSHIP foreign key FK_ID_MEMSHIP_GRP (GROUP_) references JBPM_ID_GROUP
+alter table JBPM_ID_MEMBERSHIP foreign key FK_ID_MEMSHIP_USR (USER_) references JBPM_ID_USER
+create index IDX_JOB_TSKINST on JBPM_JOB (TASKINSTANCE_)
+create index IDX_JOB_PRINST on JBPM_JOB (PROCESSINSTANCE_)
+create index IDX_JOB_TOKEN on JBPM_JOB (TOKEN_)
+alter table JBPM_JOB foreign key FK_JOB_TOKEN (TOKEN_) references JBPM_TOKEN
+alter table JBPM_JOB foreign key FK_JOB_NODE (NODE_) references JBPM_NODE
+alter table JBPM_JOB foreign key FK_JOB_PRINST (PROCESSINSTANCE_) references JBPM_PROCESSINSTANCE
+alter table JBPM_JOB foreign key FK_JOB_ACTION (ACTION_) references JBPM_ACTION
+alter table JBPM_JOB foreign key FK_JOB_TSKINST (TASKINSTANCE_) references JBPM_TASKINSTANCE
+alter table JBPM_LOG foreign key FK_LOG_SOURCENODE (SOURCENODE_) references JBPM_NODE
+alter table JBPM_LOG foreign key FK_LOG_TOKEN (TOKEN_) references JBPM_TOKEN
+alter table JBPM_LOG foreign key FK_LOG_OLDBYTES (OLDBYTEARRAY_) references JBPM_BYTEARRAY
+alter table JBPM_LOG foreign key FK_LOG_NEWBYTES (NEWBYTEARRAY_) references JBPM_BYTEARRAY
+alter table JBPM_LOG foreign key FK_LOG_CHILDTOKEN (CHILD_) references JBPM_TOKEN
+alter table JBPM_LOG foreign key FK_LOG_DESTNODE (DESTINATIONNODE_) references JBPM_NODE
+alter table JBPM_LOG foreign key FK_LOG_TASKINST (TASKINSTANCE_) references JBPM_TASKINSTANCE
+alter table JBPM_LOG foreign key FK_LOG_SWIMINST (SWIMLANEINSTANCE_) references JBPM_SWIMLANEINSTANCE
+alter table JBPM_LOG foreign key FK_LOG_PARENT (PARENT_) references JBPM_LOG
+alter table JBPM_LOG foreign key FK_LOG_NODE (NODE_) references JBPM_NODE
+alter table JBPM_LOG foreign key FK_LOG_ACTION (ACTION_) references JBPM_ACTION
+alter table JBPM_LOG foreign key FK_LOG_VARINST (VARIABLEINSTANCE_) references JBPM_VARIABLEINSTANCE
+alter table JBPM_LOG foreign key FK_LOG_TRANSITION (TRANSITION_) references JBPM_TRANSITION
+create index IDX_MODDEF_PROCDF on JBPM_MODULEDEFINITION (PROCESSDEFINITION_)
+alter table JBPM_MODULEDEFINITION foreign key FK_TSKDEF_START (STARTTASK_) references JBPM_TASK
+alter table JBPM_MODULEDEFINITION foreign key FK_MODDEF_PROCDEF (PROCESSDEFINITION_) references JBPM_PROCESSDEFINITION
+create index IDX_MODINST_PRINST on JBPM_MODULEINSTANCE (PROCESSINSTANCE_)
+alter table JBPM_MODULEINSTANCE foreign key FK_TASKMGTINST_TMD (TASKMGMTDEFINITION_) references JBPM_MODULEDEFINITION
+alter table JBPM_MODULEINSTANCE foreign key FK_MODINST_PRCINST (PROCESSINSTANCE_) references JBPM_PROCESSINSTANCE
+create index IDX_PSTATE_SBPRCDEF on JBPM_NODE (SUBPROCESSDEFINITION_)
+create index IDX_NODE_SUPRSTATE on JBPM_NODE (SUPERSTATE_)
+create index IDX_NODE_PROCDEF on JBPM_NODE (PROCESSDEFINITION_)
+create index IDX_NODE_ACTION on JBPM_NODE (ACTION_)
+alter table JBPM_NODE foreign key FK_PROCST_SBPRCDEF (SUBPROCESSDEFINITION_) references JBPM_PROCESSDEFINITION
+alter table JBPM_NODE foreign key FK_NODE_PROCDEF (PROCESSDEFINITION_) references JBPM_PROCESSDEFINITION
+alter table JBPM_NODE foreign key FK_NODE_SCRIPT (SCRIPT_) references JBPM_ACTION
+alter table JBPM_NODE foreign key FK_NODE_ACTION (ACTION_) references JBPM_ACTION
+alter table JBPM_NODE foreign key FK_DECISION_DELEG (DECISIONDELEGATION) references JBPM_DELEGATION
+alter table JBPM_NODE foreign key FK_NODE_SUPERSTATE (SUPERSTATE_) references JBPM_NODE
+create index IDX_PLDACTR_ACTID on JBPM_POOLEDACTOR (ACTORID_)
+create index IDX_TSKINST_SWLANE on JBPM_POOLEDACTOR (SWIMLANEINSTANCE_)
+alter table JBPM_POOLEDACTOR foreign key FK_POOLEDACTOR_SLI (SWIMLANEINSTANCE_) references JBPM_SWIMLANEINSTANCE
+create index IDX_PROCDEF_STRTST on JBPM_PROCESSDEFINITION (STARTSTATE_)
+alter table JBPM_PROCESSDEFINITION foreign key FK_PROCDEF_STRTSTA (STARTSTATE_) references JBPM_NODE
+create index IDX_PROCIN_ROOTTK on JBPM_PROCESSINSTANCE (ROOTTOKEN_)
+create index IDX_PROCIN_SPROCTK on JBPM_PROCESSINSTANCE (SUPERPROCESSTOKEN_)
+create index IDX_PROCIN_KEY on JBPM_PROCESSINSTANCE (KEY_)
+create index IDX_PROCIN_PROCDEF on JBPM_PROCESSINSTANCE (PROCESSDEFINITION_)
+alter table JBPM_PROCESSINSTANCE foreign key FK_PROCIN_PROCDEF (PROCESSDEFINITION_) references JBPM_PROCESSDEFINITION
+alter table JBPM_PROCESSINSTANCE foreign key FK_PROCIN_ROOTTKN (ROOTTOKEN_) references JBPM_TOKEN
+alter table JBPM_PROCESSINSTANCE foreign key FK_PROCIN_SPROCTKN (SUPERPROCESSTOKEN_) references JBPM_TOKEN
+create index IDX_RTACTN_PRCINST on JBPM_RUNTIMEACTION (PROCESSINSTANCE_)
+create index IDX_RTACTN_ACTION on JBPM_RUNTIMEACTION (ACTION_)
+alter table JBPM_RUNTIMEACTION foreign key FK_RTACTN_PROCINST (PROCESSINSTANCE_) references JBPM_PROCESSINSTANCE
+alter table JBPM_RUNTIMEACTION foreign key FK_RTACTN_ACTION (ACTION_) references JBPM_ACTION
+alter table JBPM_SWIMLANE foreign key FK_SWL_ASSDEL (ASSIGNMENTDELEGATION_) references JBPM_DELEGATION
+alter table JBPM_SWIMLANE foreign key FK_SWL_TSKMGMTDEF (TASKMGMTDEFINITION_) references JBPM_MODULEDEFINITION
+create index IDX_SWIMLINST_SL on JBPM_SWIMLANEINSTANCE (SWIMLANE_)
+alter table JBPM_SWIMLANEINSTANCE foreign key FK_SWIMLANEINST_TM (TASKMGMTINSTANCE_) references JBPM_MODULEINSTANCE
+alter table JBPM_SWIMLANEINSTANCE foreign key FK_SWIMLANEINST_SL (SWIMLANE_) references JBPM_SWIMLANE
+create index IDX_TASK_TSKNODE on JBPM_TASK (TASKNODE_)
+create index IDX_TASK_PROCDEF on JBPM_TASK (PROCESSDEFINITION_)
+create index IDX_TASK_TASKMGTDF on JBPM_TASK (TASKMGMTDEFINITION_)
+alter table JBPM_TASK foreign key FK_TSK_TSKCTRL (TASKCONTROLLER_) references JBPM_TASKCONTROLLER
+alter table JBPM_TASK foreign key FK_TASK_ASSDEL (ASSIGNMENTDELEGATION_) references JBPM_DELEGATION
+alter table JBPM_TASK foreign key FK_TASK_TASKNODE (TASKNODE_) references JBPM_NODE
+alter table JBPM_TASK foreign key FK_TASK_PROCDEF (PROCESSDEFINITION_) references JBPM_PROCESSDEFINITION
+alter table JBPM_TASK foreign key FK_TASK_STARTST (STARTSTATE_) references JBPM_NODE
+alter table JBPM_TASK foreign key FK_TASK_TASKMGTDEF (TASKMGMTDEFINITION_) references JBPM_MODULEDEFINITION
+alter table JBPM_TASK foreign key FK_TASK_SWIMLANE (SWIMLANE_) references JBPM_SWIMLANE
+alter table JBPM_TASKACTORPOOL foreign key FK_TSKACTPOL_PLACT (POOLEDACTOR_) references JBPM_POOLEDACTOR
+alter table JBPM_TASKACTORPOOL foreign key FK_TASKACTPL_TSKI (TASKINSTANCE_) references JBPM_TASKINSTANCE
+alter table JBPM_TASKCONTROLLER foreign key FK_TSKCTRL_DELEG (TASKCONTROLLERDELEGATION_) references JBPM_DELEGATION
+create index IDX_TASKINST_TOKN on JBPM_TASKINSTANCE (TOKEN_)
+create index IDX_TASKINST_TSK on JBPM_TASKINSTANCE (TASK_, PROCINST_)
+create index IDX_TSKINST_TMINST on JBPM_TASKINSTANCE (TASKMGMTINSTANCE_)
+create index IDX_TSKINST_SLINST on JBPM_TASKINSTANCE (SWIMLANINSTANCE_)
+create index IDX_TASK_ACTORID on JBPM_TASKINSTANCE (ACTORID_)
+alter table JBPM_TASKINSTANCE foreign key FK_TSKINS_PRCINS (PROCINST_) references JBPM_PROCESSINSTANCE
+alter table JBPM_TASKINSTANCE foreign key FK_TASKINST_TMINST (TASKMGMTINSTANCE_) references JBPM_MODULEINSTANCE
+alter table JBPM_TASKINSTANCE foreign key FK_TASKINST_TOKEN (TOKEN_) references JBPM_TOKEN
+alter table JBPM_TASKINSTANCE foreign key FK_TASKINST_SLINST (SWIMLANINSTANCE_) references JBPM_SWIMLANEINSTANCE
+alter table JBPM_TASKINSTANCE foreign key FK_TASKINST_TASK (TASK_) references JBPM_TASK
+create index IDX_TOKEN_PROCIN on JBPM_TOKEN (PROCESSINSTANCE_)
+create index IDX_TOKEN_SUBPI on JBPM_TOKEN (SUBPROCESSINSTANCE_)
+create index IDX_TOKEN_NODE on JBPM_TOKEN (NODE_)
+create index IDX_TOKEN_PARENT on JBPM_TOKEN (PARENT_)
+alter table JBPM_TOKEN foreign key FK_TOKEN_PARENT (PARENT_) references JBPM_TOKEN
+alter table JBPM_TOKEN foreign key FK_TOKEN_NODE (NODE_) references JBPM_NODE
+alter table JBPM_TOKEN foreign key FK_TOKEN_PROCINST (PROCESSINSTANCE_) references JBPM_PROCESSINSTANCE
+alter table JBPM_TOKEN foreign key FK_TOKEN_SUBPI (SUBPROCESSINSTANCE_) references JBPM_PROCESSINSTANCE
+create index IDX_TKVARMAP_CTXT on JBPM_TOKENVARIABLEMAP (CONTEXTINSTANCE_)
+create index IDX_TKVVARMP_TOKEN on JBPM_TOKENVARIABLEMAP (TOKEN_)
+alter table JBPM_TOKENVARIABLEMAP foreign key FK_TKVARMAP_CTXT (CONTEXTINSTANCE_) references JBPM_MODULEINSTANCE
+alter table JBPM_TOKENVARIABLEMAP foreign key FK_TKVARMAP_TOKEN (TOKEN_) references JBPM_TOKEN
+create index IDX_TRANSIT_TO on JBPM_TRANSITION (TO_)
+create index IDX_TRANSIT_FROM on JBPM_TRANSITION (FROM_)
+create index IDX_TRANS_PROCDEF on JBPM_TRANSITION (PROCESSDEFINITION_)
+alter table JBPM_TRANSITION foreign key FK_TRANSITION_TO (TO_) references JBPM_NODE
+alter table JBPM_TRANSITION foreign key FK_TRANS_PROCDEF (PROCESSDEFINITION_) references JBPM_PROCESSDEFINITION
+alter table JBPM_TRANSITION foreign key FK_TRANSITION_FROM (FROM_) references JBPM_NODE
+alter table JBPM_VARIABLEACCESS foreign key FK_VARACC_TSKCTRL (TASKCONTROLLER_) references JBPM_TASKCONTROLLER
+alter table JBPM_VARIABLEACCESS foreign key FK_VARACC_SCRIPT (SCRIPT_) references JBPM_ACTION
+alter table JBPM_VARIABLEACCESS foreign key FK_VARACC_PROCST (PROCESSSTATE_) references JBPM_NODE
+create index IDX_VARINST_TKVARMP on JBPM_VARIABLEINSTANCE (TOKENVARIABLEMAP_)
+create index IDX_VARINST_PRCINS on JBPM_VARIABLEINSTANCE (PROCESSINSTANCE_)
+create index IDX_VARINST_TK on JBPM_VARIABLEINSTANCE (TOKEN_)
+alter table JBPM_VARIABLEINSTANCE foreign key FK_VARINST_TK (TOKEN_) references JBPM_TOKEN
+alter table JBPM_VARIABLEINSTANCE foreign key FK_VARINST_TKVARMP (TOKENVARIABLEMAP_) references JBPM_TOKENVARIABLEMAP
+alter table JBPM_VARIABLEINSTANCE foreign key FK_VARINST_PRCINST (PROCESSINSTANCE_) references JBPM_PROCESSINSTANCE
+alter table JBPM_VARIABLEINSTANCE foreign key FK_VAR_TSKINST (TASKINSTANCE_) references JBPM_TASKINSTANCE
+alter table JBPM_VARIABLEINSTANCE foreign key FK_BYTEINST_ARRAY (BYTEARRAYVALUE_) references JBPM_BYTEARRAY
+create sequence hibernate_sequence
Modified: labs/jbossesb/workspace/mlittle/legstar/product/services/jbpm/src/main/resources/jbpm-sql/jbpm.jpdl.sybase.sql
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/services/jbpm/src/main/resources/jbpm-sql/jbpm.jpdl.sybase.sql 2009-01-21 14:47:17 UTC (rev 24849)
+++ labs/jbossesb/workspace/mlittle/legstar/product/services/jbpm/src/main/resources/jbpm-sql/jbpm.jpdl.sybase.sql 2009-01-21 15:38:08 UTC (rev 24850)
@@ -1,167 +1,167 @@
-create table JBPM_ACTION (ID_ numeric(19,0) identity not null, class char(1) not null, NAME_ varchar(255) null, ISPROPAGATIONALLOWED_ tinyint null, ACTIONEXPRESSION_ varchar(255) null, ISASYNC_ tinyint null, REFERENCEDACTION_ numeric(19,0) null, ACTIONDELEGATION_ numeric(19,0) null, EVENT_ numeric(19,0) null, PROCESSDEFINITION_ numeric(19,0) null, EXPRESSION_ varchar(4000) null, TIMERNAME_ varchar(255) null, DUEDATE_ varchar(255) null, REPEAT_ varchar(255) null, TRANSITIONNAME_ varchar(255) null, TIMERACTION_ numeric(19,0) null, EVENTINDEX_ int null, EXCEPTIONHANDLER_ numeric(19,0) null, EXCEPTIONHANDLERINDEX_ int null, primary key (ID_));
-create table JBPM_BYTEARRAY (ID_ numeric(19,0) identity not null, NAME_ varchar(255) null, FILEDEFINITION_ numeric(19,0) null, primary key (ID_));
-create table JBPM_BYTEBLOCK (PROCESSFILE_ numeric(19,0) not null, BYTES_ varbinary(1024) null, INDEX_ int not null, primary key (PROCESSFILE_, INDEX_));
-create table JBPM_COMMENT (ID_ numeric(19,0) identity not null, VERSION_ int not null, ACTORID_ varchar(255) null, TIME_ datetime null, MESSAGE_ varchar(4000) null, TOKEN_ numeric(19,0) null, TASKINSTANCE_ numeric(19,0) null, TOKENINDEX_ int null, TASKINSTANCEINDEX_ int null, primary key (ID_));
-create table JBPM_DECISIONCONDITIONS (DECISION_ numeric(19,0) not null, TRANSITIONNAME_ varchar(255) null, EXPRESSION_ varchar(255) null, INDEX_ int not null, primary key (DECISION_, INDEX_));
-create table JBPM_DELEGATION (ID_ numeric(19,0) identity not null, CLASSNAME_ varchar(4000) null, CONFIGURATION_ varchar(4000) null, CONFIGTYPE_ varchar(255) null, PROCESSDEFINITION_ numeric(19,0) null, primary key (ID_));
-create table JBPM_EVENT (ID_ numeric(19,0) identity not null, EVENTTYPE_ varchar(255) null, TYPE_ char(1) null, GRAPHELEMENT_ numeric(19,0) null, PROCESSDEFINITION_ numeric(19,0) null, NODE_ numeric(19,0) null, TRANSITION_ numeric(19,0) null, TASK_ numeric(19,0) null, primary key (ID_));
-create table JBPM_EXCEPTIONHANDLER (ID_ numeric(19,0) identity not null, EXCEPTIONCLASSNAME_ varchar(4000) null, TYPE_ char(1) null, GRAPHELEMENT_ numeric(19,0) null, PROCESSDEFINITION_ numeric(19,0) null, GRAPHELEMENTINDEX_ int null, NODE_ numeric(19,0) null, TRANSITION_ numeric(19,0) null, TASK_ numeric(19,0) null, primary key (ID_));
-create table JBPM_ID_GROUP (ID_ numeric(19,0) identity not null, CLASS_ char(1) not null, NAME_ varchar(255) null, TYPE_ varchar(255) null, PARENT_ numeric(19,0) null, primary key (ID_));
-create table JBPM_ID_MEMBERSHIP (ID_ numeric(19,0) identity not null, CLASS_ char(1) not null, NAME_ varchar(255) null, ROLE_ varchar(255) null, USER_ numeric(19,0) null, GROUP_ numeric(19,0) null, primary key (ID_));
-create table JBPM_ID_PERMISSIONS (ENTITY_ numeric(19,0) not null, CLASS_ varchar(255) null, NAME_ varchar(255) null, ACTION_ varchar(255) null);
-create table JBPM_ID_USER (ID_ numeric(19,0) identity not null, CLASS_ char(1) not null, NAME_ varchar(255) null, EMAIL_ varchar(255) null, PASSWORD_ varchar(255) null, primary key (ID_));
-create table JBPM_JOB (ID_ numeric(19,0) identity not null, CLASS_ char(1) not null, VERSION_ int not null, DUEDATE_ datetime null, PROCESSINSTANCE_ numeric(19,0) null, TOKEN_ numeric(19,0) null, TASKINSTANCE_ numeric(19,0) null, ISSUSPENDED_ tinyint null, ISEXCLUSIVE_ tinyint null, LOCKOWNER_ varchar(255) null, LOCKTIME_ datetime null, EXCEPTION_ varchar(4000) null, RETRIES_ int null, NAME_ varchar(255) null, REPEAT_ varchar(255) null, TRANSITIONNAME_ varchar(255) null, ACTION_ numeric(19,0) null, GRAPHELEMENTTYPE_ varchar(255) null, GRAPHELEMENT_ numeric(19,0) null, NODE_ numeric(19,0) null, primary key (ID_));
-create table JBPM_LOG (ID_ numeric(19,0) identity not null, CLASS_ char(1) not null, INDEX_ int null, DATE_ datetime null, TOKEN_ numeric(19,0) null, PARENT_ numeric(19,0) null, MESSAGE_ varchar(4000) null, EXCEPTION_ varchar(4000) null, ACTION_ numeric(19,0) null, NODE_ numeric(19,0) null, ENTER_ datetime null, LEAVE_ datetime null, DURATION_ numeric(19,0) null, NEWLONGVALUE_ numeric(19,0) null, TRANSITION_ numeric(19,0) null, CHILD_ numeric(19,0) null, SOURCENODE_ numeric(19,0) null, DESTINATIONNODE_ numeric(19,0) null, VARIABLEINSTANCE_ numeric(19,0) null, OLDBYTEARRAY_ numeric(19,0) null, NEWBYTEARRAY_ numeric(19,0) null, OLDDATEVALUE_ datetime null, NEWDATEVALUE_ datetime null, OLDDOUBLEVALUE_ double precision null, NEWDOUBLEVALUE_ double precision null, OLDLONGIDCLASS_ varchar(255) null, OLDLONGIDVALUE_ numeric(19,0) null, NEWLONGIDCLASS_ varchar(255) null, NEWLONGIDVALUE_ numeric(19,0) null, OLDSTRINGIDCLASS_ varchar(255) null, OLDSTRINGIDVALUE_ varchar(255) null, NE!
WSTRINGIDCLASS_ varchar(255) null, NEWSTRINGIDVALUE_ varchar(255) null, OLDLONGVALUE_ numeric(19,0) null, OLDSTRINGVALUE_ varchar(4000) null, NEWSTRINGVALUE_ varchar(4000) null, TASKINSTANCE_ numeric(19,0) null, TASKACTORID_ varchar(255) null, TASKOLDACTORID_ varchar(255) null, SWIMLANEINSTANCE_ numeric(19,0) null, primary key (ID_));
-create table JBPM_MODULEDEFINITION (ID_ numeric(19,0) identity not null, CLASS_ char(1) not null, NAME_ varchar(4000) null, PROCESSDEFINITION_ numeric(19,0) null, STARTTASK_ numeric(19,0) null, primary key (ID_));
-create table JBPM_MODULEINSTANCE (ID_ numeric(19,0) identity not null, CLASS_ char(1) not null, VERSION_ int not null, PROCESSINSTANCE_ numeric(19,0) null, TASKMGMTDEFINITION_ numeric(19,0) null, NAME_ varchar(255) null, primary key (ID_));
-create table JBPM_NODE (ID_ numeric(19,0) identity not null, CLASS_ char(1) not null, NAME_ varchar(255) null, DESCRIPTION_ varchar(4000) null, PROCESSDEFINITION_ numeric(19,0) null, ISASYNC_ tinyint null, ISASYNCEXCL_ tinyint null, ACTION_ numeric(19,0) null, SUPERSTATE_ numeric(19,0) null, SUBPROCNAME_ varchar(255) null, SUBPROCESSDEFINITION_ numeric(19,0) null, DECISIONEXPRESSION_ varchar(255) null, DECISIONDELEGATION numeric(19,0) null, SCRIPT_ numeric(19,0) null, SIGNAL_ int null, CREATETASKS_ tinyint null, ENDTASKS_ tinyint null, NODECOLLECTIONINDEX_ int null, primary key (ID_));
-create table JBPM_POOLEDACTOR (ID_ numeric(19,0) identity not null, VERSION_ int not null, ACTORID_ varchar(255) null, SWIMLANEINSTANCE_ numeric(19,0) null, primary key (ID_));
-create table JBPM_PROCESSDEFINITION (ID_ numeric(19,0) identity not null, CLASS_ char(1) not null, NAME_ varchar(255) null, DESCRIPTION_ varchar(4000) null, VERSION_ int null, ISTERMINATIONIMPLICIT_ tinyint null, STARTSTATE_ numeric(19,0) null, primary key (ID_));
-create table JBPM_PROCESSINSTANCE (ID_ numeric(19,0) identity not null, VERSION_ int not null, KEY_ varchar(255) null, START_ datetime null, END_ datetime null, ISSUSPENDED_ tinyint null, PROCESSDEFINITION_ numeric(19,0) null, ROOTTOKEN_ numeric(19,0) null, SUPERPROCESSTOKEN_ numeric(19,0) null, primary key (ID_));
-create table JBPM_RUNTIMEACTION (ID_ numeric(19,0) identity not null, VERSION_ int not null, EVENTTYPE_ varchar(255) null, TYPE_ char(1) null, GRAPHELEMENT_ numeric(19,0) null, PROCESSINSTANCE_ numeric(19,0) null, ACTION_ numeric(19,0) null, PROCESSINSTANCEINDEX_ int null, primary key (ID_));
-create table JBPM_SWIMLANE (ID_ numeric(19,0) identity not null, NAME_ varchar(255) null, ACTORIDEXPRESSION_ varchar(255) null, POOLEDACTORSEXPRESSION_ varchar(255) null, ASSIGNMENTDELEGATION_ numeric(19,0) null, TASKMGMTDEFINITION_ numeric(19,0) null, primary key (ID_));
-create table JBPM_SWIMLANEINSTANCE (ID_ numeric(19,0) identity not null, VERSION_ int not null, NAME_ varchar(255) null, ACTORID_ varchar(255) null, SWIMLANE_ numeric(19,0) null, TASKMGMTINSTANCE_ numeric(19,0) null, primary key (ID_));
-create table JBPM_TASK (ID_ numeric(19,0) identity not null, NAME_ varchar(255) null, DESCRIPTION_ varchar(4000) null, PROCESSDEFINITION_ numeric(19,0) null, ISBLOCKING_ tinyint null, ISSIGNALLING_ tinyint null, CONDITION_ varchar(255) null, DUEDATE_ varchar(255) null, PRIORITY_ int null, ACTORIDEXPRESSION_ varchar(255) null, POOLEDACTORSEXPRESSION_ varchar(255) null, TASKMGMTDEFINITION_ numeric(19,0) null, TASKNODE_ numeric(19,0) null, STARTSTATE_ numeric(19,0) null, ASSIGNMENTDELEGATION_ numeric(19,0) null, SWIMLANE_ numeric(19,0) null, TASKCONTROLLER_ numeric(19,0) null, primary key (ID_));
-create table JBPM_TASKACTORPOOL (TASKINSTANCE_ numeric(19,0) not null, POOLEDACTOR_ numeric(19,0) not null, primary key (TASKINSTANCE_, POOLEDACTOR_));
-create table JBPM_TASKCONTROLLER (ID_ numeric(19,0) identity not null, TASKCONTROLLERDELEGATION_ numeric(19,0) null, primary key (ID_));
-create table JBPM_TASKINSTANCE (ID_ numeric(19,0) identity not null, CLASS_ char(1) not null, VERSION_ int not null, NAME_ varchar(255) null, DESCRIPTION_ varchar(4000) null, ACTORID_ varchar(255) null, CREATE_ datetime null, START_ datetime null, END_ datetime null, DUEDATE_ datetime null, PRIORITY_ int null, ISCANCELLED_ tinyint null, ISSUSPENDED_ tinyint null, ISOPEN_ tinyint null, ISSIGNALLING_ tinyint null, ISBLOCKING_ tinyint null, TASK_ numeric(19,0) null, TOKEN_ numeric(19,0) null, PROCINST_ numeric(19,0) null, SWIMLANINSTANCE_ numeric(19,0) null, TASKMGMTINSTANCE_ numeric(19,0) null, primary key (ID_));
-create table JBPM_TOKEN (ID_ numeric(19,0) identity not null, VERSION_ int not null, NAME_ varchar(255) null, START_ datetime null, END_ datetime null, NODEENTER_ datetime null, NEXTLOGINDEX_ int null, ISABLETOREACTIVATEPARENT_ tinyint null, ISTERMINATIONIMPLICIT_ tinyint null, ISSUSPENDED_ tinyint null, LOCK_ varchar(255) null, NODE_ numeric(19,0) null, PROCESSINSTANCE_ numeric(19,0) null, PARENT_ numeric(19,0) null, SUBPROCESSINSTANCE_ numeric(19,0) null, primary key (ID_));
-create table JBPM_TOKENVARIABLEMAP (ID_ numeric(19,0) identity not null, VERSION_ int not null, TOKEN_ numeric(19,0) null, CONTEXTINSTANCE_ numeric(19,0) null, primary key (ID_));
-create table JBPM_TRANSITION (ID_ numeric(19,0) identity not null, NAME_ varchar(255) null, DESCRIPTION_ varchar(4000) null, PROCESSDEFINITION_ numeric(19,0) null, FROM_ numeric(19,0) null, TO_ numeric(19,0) null, CONDITION_ varchar(255) null, FROMINDEX_ int null, primary key (ID_));
-create table JBPM_VARIABLEACCESS (ID_ numeric(19,0) identity not null, VARIABLENAME_ varchar(255) null, ACCESS_ varchar(255) null, MAPPEDNAME_ varchar(255) null, SCRIPT_ numeric(19,0) null, PROCESSSTATE_ numeric(19,0) null, TASKCONTROLLER_ numeric(19,0) null, INDEX_ int null, primary key (ID_));
-create table JBPM_VARIABLEINSTANCE (ID_ numeric(19,0) identity not null, CLASS_ char(1) not null, VERSION_ int not null, NAME_ varchar(255) null, CONVERTER_ char(1) null, TOKEN_ numeric(19,0) null, TOKENVARIABLEMAP_ numeric(19,0) null, PROCESSINSTANCE_ numeric(19,0) null, BYTEARRAYVALUE_ numeric(19,0) null, DATEVALUE_ datetime null, DOUBLEVALUE_ double precision null, LONGIDCLASS_ varchar(255) null, LONGVALUE_ numeric(19,0) null, STRINGIDCLASS_ varchar(255) null, STRINGVALUE_ varchar(4000) null, TASKINSTANCE_ numeric(19,0) null, primary key (ID_));
-create index IDX_ACTION_EVENT on JBPM_ACTION (EVENT_);
-create index IDX_ACTION_ACTNDL on JBPM_ACTION (ACTIONDELEGATION_);
-create index IDX_ACTION_PROCDF on JBPM_ACTION (PROCESSDEFINITION_);
-alter table JBPM_ACTION add constraint FK_ACTION_EVENT foreign key (EVENT_) references JBPM_EVENT;
-alter table JBPM_ACTION add constraint FK_ACTION_EXPTHDL foreign key (EXCEPTIONHANDLER_) references JBPM_EXCEPTIONHANDLER;
-alter table JBPM_ACTION add constraint FK_ACTION_PROCDEF foreign key (PROCESSDEFINITION_) references JBPM_PROCESSDEFINITION;
-alter table JBPM_ACTION add constraint FK_CRTETIMERACT_TA foreign key (TIMERACTION_) references JBPM_ACTION;
-alter table JBPM_ACTION add constraint FK_ACTION_ACTNDEL foreign key (ACTIONDELEGATION_) references JBPM_DELEGATION;
-alter table JBPM_ACTION add constraint FK_ACTION_REFACT foreign key (REFERENCEDACTION_) references JBPM_ACTION;
-alter table JBPM_BYTEARRAY add constraint FK_BYTEARR_FILDEF foreign key (FILEDEFINITION_) references JBPM_MODULEDEFINITION;
-alter table JBPM_BYTEBLOCK add constraint FK_BYTEBLOCK_FILE foreign key (PROCESSFILE_) references JBPM_BYTEARRAY;
-create index IDX_COMMENT_TOKEN on JBPM_COMMENT (TOKEN_);
-create index IDX_COMMENT_TSK on JBPM_COMMENT (TASKINSTANCE_);
-alter table JBPM_COMMENT add constraint FK_COMMENT_TOKEN foreign key (TOKEN_) references JBPM_TOKEN;
-alter table JBPM_COMMENT add constraint FK_COMMENT_TSK foreign key (TASKINSTANCE_) references JBPM_TASKINSTANCE;
-alter table JBPM_DECISIONCONDITIONS add constraint FK_DECCOND_DEC foreign key (DECISION_) references JBPM_NODE;
-create index IDX_DELEG_PRCD on JBPM_DELEGATION (PROCESSDEFINITION_);
-alter table JBPM_DELEGATION add constraint FK_DELEGATION_PRCD foreign key (PROCESSDEFINITION_) references JBPM_PROCESSDEFINITION;
-alter table JBPM_EVENT add constraint FK_EVENT_PROCDEF foreign key (PROCESSDEFINITION_) references JBPM_PROCESSDEFINITION;
-alter table JBPM_EVENT add constraint FK_EVENT_NODE foreign key (NODE_) references JBPM_NODE;
-alter table JBPM_EVENT add constraint FK_EVENT_TRANS foreign key (TRANSITION_) references JBPM_TRANSITION;
-alter table JBPM_EVENT add constraint FK_EVENT_TASK foreign key (TASK_) references JBPM_TASK;
-alter table JBPM_ID_GROUP add constraint FK_ID_GRP_PARENT foreign key (PARENT_) references JBPM_ID_GROUP;
-alter table JBPM_ID_MEMBERSHIP add constraint FK_ID_MEMSHIP_GRP foreign key (GROUP_) references JBPM_ID_GROUP;
-alter table JBPM_ID_MEMBERSHIP add constraint FK_ID_MEMSHIP_USR foreign key (USER_) references JBPM_ID_USER;
-create index IDX_JOB_TSKINST on JBPM_JOB (TASKINSTANCE_);
-create index IDX_JOB_PRINST on JBPM_JOB (PROCESSINSTANCE_);
-create index IDX_JOB_TOKEN on JBPM_JOB (TOKEN_);
-alter table JBPM_JOB add constraint FK_JOB_TOKEN foreign key (TOKEN_) references JBPM_TOKEN;
-alter table JBPM_JOB add constraint FK_JOB_NODE foreign key (NODE_) references JBPM_NODE;
-alter table JBPM_JOB add constraint FK_JOB_PRINST foreign key (PROCESSINSTANCE_) references JBPM_PROCESSINSTANCE;
-alter table JBPM_JOB add constraint FK_JOB_ACTION foreign key (ACTION_) references JBPM_ACTION;
-alter table JBPM_JOB add constraint FK_JOB_TSKINST foreign key (TASKINSTANCE_) references JBPM_TASKINSTANCE;
-alter table JBPM_LOG add constraint FK_LOG_SOURCENODE foreign key (SOURCENODE_) references JBPM_NODE;
-alter table JBPM_LOG add constraint FK_LOG_TOKEN foreign key (TOKEN_) references JBPM_TOKEN;
-alter table JBPM_LOG add constraint FK_LOG_OLDBYTES foreign key (OLDBYTEARRAY_) references JBPM_BYTEARRAY;
-alter table JBPM_LOG add constraint FK_LOG_NEWBYTES foreign key (NEWBYTEARRAY_) references JBPM_BYTEARRAY;
-alter table JBPM_LOG add constraint FK_LOG_CHILDTOKEN foreign key (CHILD_) references JBPM_TOKEN;
-alter table JBPM_LOG add constraint FK_LOG_DESTNODE foreign key (DESTINATIONNODE_) references JBPM_NODE;
-alter table JBPM_LOG add constraint FK_LOG_TASKINST foreign key (TASKINSTANCE_) references JBPM_TASKINSTANCE;
-alter table JBPM_LOG add constraint FK_LOG_SWIMINST foreign key (SWIMLANEINSTANCE_) references JBPM_SWIMLANEINSTANCE;
-alter table JBPM_LOG add constraint FK_LOG_PARENT foreign key (PARENT_) references JBPM_LOG;
-alter table JBPM_LOG add constraint FK_LOG_NODE foreign key (NODE_) references JBPM_NODE;
-alter table JBPM_LOG add constraint FK_LOG_ACTION foreign key (ACTION_) references JBPM_ACTION;
-alter table JBPM_LOG add constraint FK_LOG_VARINST foreign key (VARIABLEINSTANCE_) references JBPM_VARIABLEINSTANCE;
-alter table JBPM_LOG add constraint FK_LOG_TRANSITION foreign key (TRANSITION_) references JBPM_TRANSITION;
-create index IDX_MODDEF_PROCDF on JBPM_MODULEDEFINITION (PROCESSDEFINITION_);
-alter table JBPM_MODULEDEFINITION add constraint FK_TSKDEF_START foreign key (STARTTASK_) references JBPM_TASK;
-alter table JBPM_MODULEDEFINITION add constraint FK_MODDEF_PROCDEF foreign key (PROCESSDEFINITION_) references JBPM_PROCESSDEFINITION;
-create index IDX_MODINST_PRINST on JBPM_MODULEINSTANCE (PROCESSINSTANCE_);
-alter table JBPM_MODULEINSTANCE add constraint FK_TASKMGTINST_TMD foreign key (TASKMGMTDEFINITION_) references JBPM_MODULEDEFINITION;
-alter table JBPM_MODULEINSTANCE add constraint FK_MODINST_PRCINST foreign key (PROCESSINSTANCE_) references JBPM_PROCESSINSTANCE;
-create index IDX_PSTATE_SBPRCDEF on JBPM_NODE (SUBPROCESSDEFINITION_);
-create index IDX_NODE_SUPRSTATE on JBPM_NODE (SUPERSTATE_);
-create index IDX_NODE_PROCDEF on JBPM_NODE (PROCESSDEFINITION_);
-create index IDX_NODE_ACTION on JBPM_NODE (ACTION_);
-alter table JBPM_NODE add constraint FK_PROCST_SBPRCDEF foreign key (SUBPROCESSDEFINITION_) references JBPM_PROCESSDEFINITION;
-alter table JBPM_NODE add constraint FK_NODE_PROCDEF foreign key (PROCESSDEFINITION_) references JBPM_PROCESSDEFINITION;
-alter table JBPM_NODE add constraint FK_NODE_SCRIPT foreign key (SCRIPT_) references JBPM_ACTION;
-alter table JBPM_NODE add constraint FK_NODE_ACTION foreign key (ACTION_) references JBPM_ACTION;
-alter table JBPM_NODE add constraint FK_DECISION_DELEG foreign key (DECISIONDELEGATION) references JBPM_DELEGATION;
-alter table JBPM_NODE add constraint FK_NODE_SUPERSTATE foreign key (SUPERSTATE_) references JBPM_NODE;
-create index IDX_PLDACTR_ACTID on JBPM_POOLEDACTOR (ACTORID_);
-create index IDX_TSKINST_SWLANE on JBPM_POOLEDACTOR (SWIMLANEINSTANCE_);
-alter table JBPM_POOLEDACTOR add constraint FK_POOLEDACTOR_SLI foreign key (SWIMLANEINSTANCE_) references JBPM_SWIMLANEINSTANCE;
-create index IDX_PROCDEF_STRTST on JBPM_PROCESSDEFINITION (STARTSTATE_);
-alter table JBPM_PROCESSDEFINITION add constraint FK_PROCDEF_STRTSTA foreign key (STARTSTATE_) references JBPM_NODE;
-create index IDX_PROCIN_ROOTTK on JBPM_PROCESSINSTANCE (ROOTTOKEN_);
-create index IDX_PROCIN_SPROCTK on JBPM_PROCESSINSTANCE (SUPERPROCESSTOKEN_);
-create index IDX_PROCIN_KEY on JBPM_PROCESSINSTANCE (KEY_);
-create index IDX_PROCIN_PROCDEF on JBPM_PROCESSINSTANCE (PROCESSDEFINITION_);
-alter table JBPM_PROCESSINSTANCE add constraint FK_PROCIN_PROCDEF foreign key (PROCESSDEFINITION_) references JBPM_PROCESSDEFINITION;
-alter table JBPM_PROCESSINSTANCE add constraint FK_PROCIN_ROOTTKN foreign key (ROOTTOKEN_) references JBPM_TOKEN;
-alter table JBPM_PROCESSINSTANCE add constraint FK_PROCIN_SPROCTKN foreign key (SUPERPROCESSTOKEN_) references JBPM_TOKEN;
-create index IDX_RTACTN_PRCINST on JBPM_RUNTIMEACTION (PROCESSINSTANCE_);
-create index IDX_RTACTN_ACTION on JBPM_RUNTIMEACTION (ACTION_);
-alter table JBPM_RUNTIMEACTION add constraint FK_RTACTN_PROCINST foreign key (PROCESSINSTANCE_) references JBPM_PROCESSINSTANCE;
-alter table JBPM_RUNTIMEACTION add constraint FK_RTACTN_ACTION foreign key (ACTION_) references JBPM_ACTION;
-alter table JBPM_SWIMLANE add constraint FK_SWL_ASSDEL foreign key (ASSIGNMENTDELEGATION_) references JBPM_DELEGATION;
-alter table JBPM_SWIMLANE add constraint FK_SWL_TSKMGMTDEF foreign key (TASKMGMTDEFINITION_) references JBPM_MODULEDEFINITION;
-create index IDX_SWIMLINST_SL on JBPM_SWIMLANEINSTANCE (SWIMLANE_);
-alter table JBPM_SWIMLANEINSTANCE add constraint FK_SWIMLANEINST_TM foreign key (TASKMGMTINSTANCE_) references JBPM_MODULEINSTANCE;
-alter table JBPM_SWIMLANEINSTANCE add constraint FK_SWIMLANEINST_SL foreign key (SWIMLANE_) references JBPM_SWIMLANE;
-create index IDX_TASK_TSKNODE on JBPM_TASK (TASKNODE_);
-create index IDX_TASK_PROCDEF on JBPM_TASK (PROCESSDEFINITION_);
-create index IDX_TASK_TASKMGTDF on JBPM_TASK (TASKMGMTDEFINITION_);
-alter table JBPM_TASK add constraint FK_TSK_TSKCTRL foreign key (TASKCONTROLLER_) references JBPM_TASKCONTROLLER;
-alter table JBPM_TASK add constraint FK_TASK_ASSDEL foreign key (ASSIGNMENTDELEGATION_) references JBPM_DELEGATION;
-alter table JBPM_TASK add constraint FK_TASK_TASKNODE foreign key (TASKNODE_) references JBPM_NODE;
-alter table JBPM_TASK add constraint FK_TASK_PROCDEF foreign key (PROCESSDEFINITION_) references JBPM_PROCESSDEFINITION;
-alter table JBPM_TASK add constraint FK_TASK_STARTST foreign key (STARTSTATE_) references JBPM_NODE;
-alter table JBPM_TASK add constraint FK_TASK_TASKMGTDEF foreign key (TASKMGMTDEFINITION_) references JBPM_MODULEDEFINITION;
-alter table JBPM_TASK add constraint FK_TASK_SWIMLANE foreign key (SWIMLANE_) references JBPM_SWIMLANE;
-alter table JBPM_TASKACTORPOOL add constraint FK_TSKACTPOL_PLACT foreign key (POOLEDACTOR_) references JBPM_POOLEDACTOR;
-alter table JBPM_TASKACTORPOOL add constraint FK_TASKACTPL_TSKI foreign key (TASKINSTANCE_) references JBPM_TASKINSTANCE;
-alter table JBPM_TASKCONTROLLER add constraint FK_TSKCTRL_DELEG foreign key (TASKCONTROLLERDELEGATION_) references JBPM_DELEGATION;
-create index IDX_TASKINST_TOKN on JBPM_TASKINSTANCE (TOKEN_);
-create index IDX_TASKINST_TSK on JBPM_TASKINSTANCE (TASK_, PROCINST_);
-create index IDX_TSKINST_TMINST on JBPM_TASKINSTANCE (TASKMGMTINSTANCE_);
-create index IDX_TSKINST_SLINST on JBPM_TASKINSTANCE (SWIMLANINSTANCE_);
-create index IDX_TASK_ACTORID on JBPM_TASKINSTANCE (ACTORID_);
-alter table JBPM_TASKINSTANCE add constraint FK_TSKINS_PRCINS foreign key (PROCINST_) references JBPM_PROCESSINSTANCE;
-alter table JBPM_TASKINSTANCE add constraint FK_TASKINST_TMINST foreign key (TASKMGMTINSTANCE_) references JBPM_MODULEINSTANCE;
-alter table JBPM_TASKINSTANCE add constraint FK_TASKINST_TOKEN foreign key (TOKEN_) references JBPM_TOKEN;
-alter table JBPM_TASKINSTANCE add constraint FK_TASKINST_SLINST foreign key (SWIMLANINSTANCE_) references JBPM_SWIMLANEINSTANCE;
-alter table JBPM_TASKINSTANCE add constraint FK_TASKINST_TASK foreign key (TASK_) references JBPM_TASK;
-create index IDX_TOKEN_PROCIN on JBPM_TOKEN (PROCESSINSTANCE_);
-create index IDX_TOKEN_SUBPI on JBPM_TOKEN (SUBPROCESSINSTANCE_);
-create index IDX_TOKEN_NODE on JBPM_TOKEN (NODE_);
-create index IDX_TOKEN_PARENT on JBPM_TOKEN (PARENT_);
-alter table JBPM_TOKEN add constraint FK_TOKEN_PARENT foreign key (PARENT_) references JBPM_TOKEN;
-alter table JBPM_TOKEN add constraint FK_TOKEN_NODE foreign key (NODE_) references JBPM_NODE;
-alter table JBPM_TOKEN add constraint FK_TOKEN_PROCINST foreign key (PROCESSINSTANCE_) references JBPM_PROCESSINSTANCE;
-alter table JBPM_TOKEN add constraint FK_TOKEN_SUBPI foreign key (SUBPROCESSINSTANCE_) references JBPM_PROCESSINSTANCE;
-create index IDX_TKVARMAP_CTXT on JBPM_TOKENVARIABLEMAP (CONTEXTINSTANCE_);
-create index IDX_TKVVARMP_TOKEN on JBPM_TOKENVARIABLEMAP (TOKEN_);
-alter table JBPM_TOKENVARIABLEMAP add constraint FK_TKVARMAP_CTXT foreign key (CONTEXTINSTANCE_) references JBPM_MODULEINSTANCE;
-alter table JBPM_TOKENVARIABLEMAP add constraint FK_TKVARMAP_TOKEN foreign key (TOKEN_) references JBPM_TOKEN;
-create index IDX_TRANSIT_TO on JBPM_TRANSITION (TO_);
-create index IDX_TRANSIT_FROM on JBPM_TRANSITION (FROM_);
-create index IDX_TRANS_PROCDEF on JBPM_TRANSITION (PROCESSDEFINITION_);
-alter table JBPM_TRANSITION add constraint FK_TRANSITION_TO foreign key (TO_) references JBPM_NODE;
-alter table JBPM_TRANSITION add constraint FK_TRANS_PROCDEF foreign key (PROCESSDEFINITION_) references JBPM_PROCESSDEFINITION;
-alter table JBPM_TRANSITION add constraint FK_TRANSITION_FROM foreign key (FROM_) references JBPM_NODE;
-alter table JBPM_VARIABLEACCESS add constraint FK_VARACC_TSKCTRL foreign key (TASKCONTROLLER_) references JBPM_TASKCONTROLLER;
-alter table JBPM_VARIABLEACCESS add constraint FK_VARACC_SCRIPT foreign key (SCRIPT_) references JBPM_ACTION;
-alter table JBPM_VARIABLEACCESS add constraint FK_VARACC_PROCST foreign key (PROCESSSTATE_) references JBPM_NODE;
-create index IDX_VARINST_TKVARMP on JBPM_VARIABLEINSTANCE (TOKENVARIABLEMAP_);
-create index IDX_VARINST_PRCINS on JBPM_VARIABLEINSTANCE (PROCESSINSTANCE_);
-create index IDX_VARINST_TK on JBPM_VARIABLEINSTANCE (TOKEN_);
-alter table JBPM_VARIABLEINSTANCE add constraint FK_VARINST_TK foreign key (TOKEN_) references JBPM_TOKEN;
-alter table JBPM_VARIABLEINSTANCE add constraint FK_VARINST_TKVARMP foreign key (TOKENVARIABLEMAP_) references JBPM_TOKENVARIABLEMAP;
-alter table JBPM_VARIABLEINSTANCE add constraint FK_VARINST_PRCINST foreign key (PROCESSINSTANCE_) references JBPM_PROCESSINSTANCE;
-alter table JBPM_VARIABLEINSTANCE add constraint FK_VAR_TSKINST foreign key (TASKINSTANCE_) references JBPM_TASKINSTANCE;
-alter table JBPM_VARIABLEINSTANCE add constraint FK_BYTEINST_ARRAY foreign key (BYTEARRAYVALUE_) references JBPM_BYTEARRAY;
+create table JBPM_ACTION (ID_ numeric(19,0) identity not null, class char(1) not null, NAME_ varchar(255) null, ISPROPAGATIONALLOWED_ tinyint null, ACTIONEXPRESSION_ varchar(255) null, ISASYNC_ tinyint null, REFERENCEDACTION_ numeric(19,0) null, ACTIONDELEGATION_ numeric(19,0) null, EVENT_ numeric(19,0) null, PROCESSDEFINITION_ numeric(19,0) null, EXPRESSION_ text null, TIMERNAME_ varchar(255) null, DUEDATE_ varchar(255) null, REPEAT_ varchar(255) null, TRANSITIONNAME_ varchar(255) null, TIMERACTION_ numeric(19,0) null, EVENTINDEX_ int null, EXCEPTIONHANDLER_ numeric(19,0) null, EXCEPTIONHANDLERINDEX_ int null, primary key (ID_))
+create table JBPM_BYTEARRAY (ID_ numeric(19,0) identity not null, NAME_ varchar(255) null, FILEDEFINITION_ numeric(19,0) null, primary key (ID_))
+create table JBPM_BYTEBLOCK (PROCESSFILE_ numeric(19,0) not null, BYTES_ varbinary(1024) null, INDEX_ int not null, primary key (PROCESSFILE_, INDEX_))
+create table JBPM_COMMENT (ID_ numeric(19,0) identity not null, VERSION_ int not null, ACTORID_ varchar(255) null, TIME_ datetime null, MESSAGE_ text null, TOKEN_ numeric(19,0) null, TASKINSTANCE_ numeric(19,0) null, TOKENINDEX_ int null, TASKINSTANCEINDEX_ int null, primary key (ID_))
+create table JBPM_DECISIONCONDITIONS (DECISION_ numeric(19,0) not null, TRANSITIONNAME_ varchar(255) null, EXPRESSION_ varchar(255) null, INDEX_ int not null, primary key (DECISION_, INDEX_))
+create table JBPM_DELEGATION (ID_ numeric(19,0) identity not null, CLASSNAME_ text null, CONFIGURATION_ text null, CONFIGTYPE_ varchar(255) null, PROCESSDEFINITION_ numeric(19,0) null, primary key (ID_))
+create table JBPM_EVENT (ID_ numeric(19,0) identity not null, EVENTTYPE_ varchar(255) null, TYPE_ char(1) null, GRAPHELEMENT_ numeric(19,0) null, PROCESSDEFINITION_ numeric(19,0) null, NODE_ numeric(19,0) null, TRANSITION_ numeric(19,0) null, TASK_ numeric(19,0) null, primary key (ID_))
+create table JBPM_EXCEPTIONHANDLER (ID_ numeric(19,0) identity not null, EXCEPTIONCLASSNAME_ text null, TYPE_ char(1) null, GRAPHELEMENT_ numeric(19,0) null, PROCESSDEFINITION_ numeric(19,0) null, GRAPHELEMENTINDEX_ int null, NODE_ numeric(19,0) null, TRANSITION_ numeric(19,0) null, TASK_ numeric(19,0) null, primary key (ID_))
+create table JBPM_ID_GROUP (ID_ numeric(19,0) identity not null, CLASS_ char(1) not null, NAME_ varchar(255) null, TYPE_ varchar(255) null, PARENT_ numeric(19,0) null, primary key (ID_))
+create table JBPM_ID_MEMBERSHIP (ID_ numeric(19,0) identity not null, CLASS_ char(1) not null, NAME_ varchar(255) null, ROLE_ varchar(255) null, USER_ numeric(19,0) null, GROUP_ numeric(19,0) null, primary key (ID_))
+create table JBPM_ID_PERMISSIONS (ENTITY_ numeric(19,0) not null, CLASS_ varchar(255) null, NAME_ varchar(255) null, ACTION_ varchar(255) null)
+create table JBPM_ID_USER (ID_ numeric(19,0) identity not null, CLASS_ char(1) not null, NAME_ varchar(255) null, EMAIL_ varchar(255) null, PASSWORD_ varchar(255) null, primary key (ID_))
+create table JBPM_JOB (ID_ numeric(19,0) identity not null, CLASS_ char(1) not null, VERSION_ int not null, DUEDATE_ datetime null, PROCESSINSTANCE_ numeric(19,0) null, TOKEN_ numeric(19,0) null, TASKINSTANCE_ numeric(19,0) null, ISSUSPENDED_ tinyint null, ISEXCLUSIVE_ tinyint null, LOCKOWNER_ varchar(255) null, LOCKTIME_ datetime null, EXCEPTION_ text null, RETRIES_ int null, NAME_ varchar(255) null, REPEAT_ varchar(255) null, TRANSITIONNAME_ varchar(255) null, ACTION_ numeric(19,0) null, GRAPHELEMENTTYPE_ varchar(255) null, GRAPHELEMENT_ numeric(19,0) null, NODE_ numeric(19,0) null, primary key (ID_))
+create table JBPM_LOG (ID_ numeric(19,0) identity not null, CLASS_ char(1) not null, INDEX_ int null, DATE_ datetime null, TOKEN_ numeric(19,0) null, PARENT_ numeric(19,0) null, MESSAGE_ text null, EXCEPTION_ text null, ACTION_ numeric(19,0) null, NODE_ numeric(19,0) null, ENTER_ datetime null, LEAVE_ datetime null, DURATION_ numeric(19,0) null, NEWLONGVALUE_ numeric(19,0) null, TRANSITION_ numeric(19,0) null, CHILD_ numeric(19,0) null, SOURCENODE_ numeric(19,0) null, DESTINATIONNODE_ numeric(19,0) null, VARIABLEINSTANCE_ numeric(19,0) null, OLDBYTEARRAY_ numeric(19,0) null, NEWBYTEARRAY_ numeric(19,0) null, OLDDATEVALUE_ datetime null, NEWDATEVALUE_ datetime null, OLDDOUBLEVALUE_ double precision null, NEWDOUBLEVALUE_ double precision null, OLDLONGIDCLASS_ varchar(255) null, OLDLONGIDVALUE_ numeric(19,0) null, NEWLONGIDCLASS_ varchar(255) null, NEWLONGIDVALUE_ numeric(19,0) null, OLDSTRINGIDCLASS_ varchar(255) null, OLDSTRINGIDVALUE_ varchar(4000) null, NEWSTRINGIDCLASS_ v!
archar(4000) null, NEWSTRINGIDVALUE_ varchar(255) null, OLDLONGVALUE_ numeric(19,0) null, OLDSTRINGVALUE_ text null, NEWSTRINGVALUE_ text null, TASKINSTANCE_ numeric(19,0) null, TASKACTORID_ varchar(255) null, TASKOLDACTORID_ varchar(255) null, SWIMLANEINSTANCE_ numeric(19,0) null, primary key (ID_))
+create table JBPM_MODULEDEFINITION (ID_ numeric(19,0) identity not null, CLASS_ char(1) not null, NAME_ varchar(4000) null, PROCESSDEFINITION_ numeric(19,0) null, STARTTASK_ numeric(19,0) null, primary key (ID_))
+create table JBPM_MODULEINSTANCE (ID_ numeric(19,0) identity not null, CLASS_ char(1) not null, VERSION_ int not null, PROCESSINSTANCE_ numeric(19,0) null, TASKMGMTDEFINITION_ numeric(19,0) null, NAME_ varchar(255) null, primary key (ID_))
+create table JBPM_NODE (ID_ numeric(19,0) identity not null, CLASS_ char(1) not null, NAME_ varchar(255) null, DESCRIPTION_ text null, PROCESSDEFINITION_ numeric(19,0) null, ISASYNC_ tinyint null, ISASYNCEXCL_ tinyint null, ACTION_ numeric(19,0) null, SUPERSTATE_ numeric(19,0) null, SUBPROCNAME_ varchar(255) null, SUBPROCESSDEFINITION_ numeric(19,0) null, DECISIONEXPRESSION_ varchar(255) null, DECISIONDELEGATION numeric(19,0) null, SCRIPT_ numeric(19,0) null, PARENTLOCKMODE_ varchar(255) null, SIGNAL_ int null, CREATETASKS_ tinyint null, ENDTASKS_ tinyint null, NODECOLLECTIONINDEX_ int null, primary key (ID_))
+create table JBPM_POOLEDACTOR (ID_ numeric(19,0) identity not null, VERSION_ int not null, ACTORID_ varchar(255) null, SWIMLANEINSTANCE_ numeric(19,0) null, primary key (ID_))
+create table JBPM_PROCESSDEFINITION (ID_ numeric(19,0) identity not null, CLASS_ char(1) not null, NAME_ varchar(255) null, DESCRIPTION_ text null, VERSION_ int null, ISTERMINATIONIMPLICIT_ tinyint null, STARTSTATE_ numeric(19,0) null, primary key (ID_))
+create table JBPM_PROCESSINSTANCE (ID_ numeric(19,0) identity not null, VERSION_ int not null, KEY_ varchar(255) null, START_ datetime null, END_ datetime null, ISSUSPENDED_ tinyint null, PROCESSDEFINITION_ numeric(19,0) null, ROOTTOKEN_ numeric(19,0) null, SUPERPROCESSTOKEN_ numeric(19,0) null, primary key (ID_))
+create table JBPM_RUNTIMEACTION (ID_ numeric(19,0) identity not null, VERSION_ int not null, EVENTTYPE_ varchar(255) null, TYPE_ char(1) null, GRAPHELEMENT_ numeric(19,0) null, PROCESSINSTANCE_ numeric(19,0) null, ACTION_ numeric(19,0) null, PROCESSINSTANCEINDEX_ int null, primary key (ID_))
+create table JBPM_SWIMLANE (ID_ numeric(19,0) identity not null, NAME_ varchar(255) null, ACTORIDEXPRESSION_ varchar(255) null, POOLEDACTORSEXPRESSION_ varchar(255) null, ASSIGNMENTDELEGATION_ numeric(19,0) null, TASKMGMTDEFINITION_ numeric(19,0) null, primary key (ID_))
+create table JBPM_SWIMLANEINSTANCE (ID_ numeric(19,0) identity not null, VERSION_ int not null, NAME_ varchar(255) null, ACTORID_ varchar(255) null, SWIMLANE_ numeric(19,0) null, TASKMGMTINSTANCE_ numeric(19,0) null, primary key (ID_))
+create table JBPM_TASK (ID_ numeric(19,0) identity not null, NAME_ varchar(255) null, DESCRIPTION_ text null, PROCESSDEFINITION_ numeric(19,0) null, ISBLOCKING_ tinyint null, ISSIGNALLING_ tinyint null, CONDITION_ varchar(255) null, DUEDATE_ varchar(255) null, PRIORITY_ int null, ACTORIDEXPRESSION_ varchar(255) null, POOLEDACTORSEXPRESSION_ varchar(255) null, TASKMGMTDEFINITION_ numeric(19,0) null, TASKNODE_ numeric(19,0) null, STARTSTATE_ numeric(19,0) null, ASSIGNMENTDELEGATION_ numeric(19,0) null, SWIMLANE_ numeric(19,0) null, TASKCONTROLLER_ numeric(19,0) null, primary key (ID_))
+create table JBPM_TASKACTORPOOL (TASKINSTANCE_ numeric(19,0) not null, POOLEDACTOR_ numeric(19,0) not null, primary key (TASKINSTANCE_, POOLEDACTOR_))
+create table JBPM_TASKCONTROLLER (ID_ numeric(19,0) identity not null, TASKCONTROLLERDELEGATION_ numeric(19,0) null, primary key (ID_))
+create table JBPM_TASKINSTANCE (ID_ numeric(19,0) identity not null, CLASS_ char(1) not null, VERSION_ int not null, NAME_ varchar(255) null, DESCRIPTION_ text null, ACTORID_ varchar(255) null, CREATE_ datetime null, START_ datetime null, END_ datetime null, DUEDATE_ datetime null, PRIORITY_ int null, ISCANCELLED_ tinyint null, ISSUSPENDED_ tinyint null, ISOPEN_ tinyint null, ISSIGNALLING_ tinyint null, ISBLOCKING_ tinyint null, TASK_ numeric(19,0) null, TOKEN_ numeric(19,0) null, PROCINST_ numeric(19,0) null, SWIMLANINSTANCE_ numeric(19,0) null, TASKMGMTINSTANCE_ numeric(19,0) null, primary key (ID_))
+create table JBPM_TOKEN (ID_ numeric(19,0) identity not null, VERSION_ int not null, NAME_ varchar(255) null, START_ datetime null, END_ datetime null, NODEENTER_ datetime null, NEXTLOGINDEX_ int null, ISABLETOREACTIVATEPARENT_ tinyint null, ISTERMINATIONIMPLICIT_ tinyint null, ISSUSPENDED_ tinyint null, LOCK_ varchar(255) null, NODE_ numeric(19,0) null, PROCESSINSTANCE_ numeric(19,0) null, PARENT_ numeric(19,0) null, SUBPROCESSINSTANCE_ numeric(19,0) null, primary key (ID_))
+create table JBPM_TOKENVARIABLEMAP (ID_ numeric(19,0) identity not null, VERSION_ int not null, TOKEN_ numeric(19,0) null, CONTEXTINSTANCE_ numeric(19,0) null, primary key (ID_))
+create table JBPM_TRANSITION (ID_ numeric(19,0) identity not null, NAME_ varchar(255) null, DESCRIPTION_ text null, PROCESSDEFINITION_ numeric(19,0) null, FROM_ numeric(19,0) null, TO_ numeric(19,0) null, CONDITION_ varchar(255) null, FROMINDEX_ int null, primary key (ID_))
+create table JBPM_VARIABLEACCESS (ID_ numeric(19,0) identity not null, VARIABLENAME_ varchar(255) null, ACCESS_ varchar(255) null, MAPPEDNAME_ varchar(255) null, SCRIPT_ numeric(19,0) null, PROCESSSTATE_ numeric(19,0) null, TASKCONTROLLER_ numeric(19,0) null, INDEX_ int null, primary key (ID_))
+create table JBPM_VARIABLEINSTANCE (ID_ numeric(19,0) identity not null, CLASS_ char(1) not null, VERSION_ int not null, NAME_ varchar(255) null, CONVERTER_ char(1) null, TOKEN_ numeric(19,0) null, TOKENVARIABLEMAP_ numeric(19,0) null, PROCESSINSTANCE_ numeric(19,0) null, BYTEARRAYVALUE_ numeric(19,0) null, DATEVALUE_ datetime null, DOUBLEVALUE_ double precision null, LONGIDCLASS_ varchar(255) null, LONGVALUE_ numeric(19,0) null, STRINGIDCLASS_ varchar(255) null, STRINGVALUE_ varchar(4000) null, TASKINSTANCE_ numeric(19,0) null, primary key (ID_))
+create index IDX_ACTION_EVENT on JBPM_ACTION (EVENT_)
+create index IDX_ACTION_ACTNDL on JBPM_ACTION (ACTIONDELEGATION_)
+create index IDX_ACTION_PROCDF on JBPM_ACTION (PROCESSDEFINITION_)
+alter table JBPM_ACTION add constraint FK_ACTION_EVENT foreign key (EVENT_) references JBPM_EVENT
+alter table JBPM_ACTION add constraint FK_ACTION_EXPTHDL foreign key (EXCEPTIONHANDLER_) references JBPM_EXCEPTIONHANDLER
+alter table JBPM_ACTION add constraint FK_ACTION_PROCDEF foreign key (PROCESSDEFINITION_) references JBPM_PROCESSDEFINITION
+alter table JBPM_ACTION add constraint FK_CRTETIMERACT_TA foreign key (TIMERACTION_) references JBPM_ACTION
+alter table JBPM_ACTION add constraint FK_ACTION_ACTNDEL foreign key (ACTIONDELEGATION_) references JBPM_DELEGATION
+alter table JBPM_ACTION add constraint FK_ACTION_REFACT foreign key (REFERENCEDACTION_) references JBPM_ACTION
+alter table JBPM_BYTEARRAY add constraint FK_BYTEARR_FILDEF foreign key (FILEDEFINITION_) references JBPM_MODULEDEFINITION
+alter table JBPM_BYTEBLOCK add constraint FK_BYTEBLOCK_FILE foreign key (PROCESSFILE_) references JBPM_BYTEARRAY
+create index IDX_COMMENT_TOKEN on JBPM_COMMENT (TOKEN_)
+create index IDX_COMMENT_TSK on JBPM_COMMENT (TASKINSTANCE_)
+alter table JBPM_COMMENT add constraint FK_COMMENT_TOKEN foreign key (TOKEN_) references JBPM_TOKEN
+alter table JBPM_COMMENT add constraint FK_COMMENT_TSK foreign key (TASKINSTANCE_) references JBPM_TASKINSTANCE
+alter table JBPM_DECISIONCONDITIONS add constraint FK_DECCOND_DEC foreign key (DECISION_) references JBPM_NODE
+create index IDX_DELEG_PRCD on JBPM_DELEGATION (PROCESSDEFINITION_)
+alter table JBPM_DELEGATION add constraint FK_DELEGATION_PRCD foreign key (PROCESSDEFINITION_) references JBPM_PROCESSDEFINITION
+alter table JBPM_EVENT add constraint FK_EVENT_PROCDEF foreign key (PROCESSDEFINITION_) references JBPM_PROCESSDEFINITION
+alter table JBPM_EVENT add constraint FK_EVENT_NODE foreign key (NODE_) references JBPM_NODE
+alter table JBPM_EVENT add constraint FK_EVENT_TRANS foreign key (TRANSITION_) references JBPM_TRANSITION
+alter table JBPM_EVENT add constraint FK_EVENT_TASK foreign key (TASK_) references JBPM_TASK
+alter table JBPM_ID_GROUP add constraint FK_ID_GRP_PARENT foreign key (PARENT_) references JBPM_ID_GROUP
+alter table JBPM_ID_MEMBERSHIP add constraint FK_ID_MEMSHIP_GRP foreign key (GROUP_) references JBPM_ID_GROUP
+alter table JBPM_ID_MEMBERSHIP add constraint FK_ID_MEMSHIP_USR foreign key (USER_) references JBPM_ID_USER
+create index IDX_JOB_TSKINST on JBPM_JOB (TASKINSTANCE_)
+create index IDX_JOB_PRINST on JBPM_JOB (PROCESSINSTANCE_)
+create index IDX_JOB_TOKEN on JBPM_JOB (TOKEN_)
+alter table JBPM_JOB add constraint FK_JOB_TOKEN foreign key (TOKEN_) references JBPM_TOKEN
+alter table JBPM_JOB add constraint FK_JOB_NODE foreign key (NODE_) references JBPM_NODE
+alter table JBPM_JOB add constraint FK_JOB_PRINST foreign key (PROCESSINSTANCE_) references JBPM_PROCESSINSTANCE
+alter table JBPM_JOB add constraint FK_JOB_ACTION foreign key (ACTION_) references JBPM_ACTION
+alter table JBPM_JOB add constraint FK_JOB_TSKINST foreign key (TASKINSTANCE_) references JBPM_TASKINSTANCE
+alter table JBPM_LOG add constraint FK_LOG_SOURCENODE foreign key (SOURCENODE_) references JBPM_NODE
+alter table JBPM_LOG add constraint FK_LOG_TOKEN foreign key (TOKEN_) references JBPM_TOKEN
+alter table JBPM_LOG add constraint FK_LOG_OLDBYTES foreign key (OLDBYTEARRAY_) references JBPM_BYTEARRAY
+alter table JBPM_LOG add constraint FK_LOG_NEWBYTES foreign key (NEWBYTEARRAY_) references JBPM_BYTEARRAY
+alter table JBPM_LOG add constraint FK_LOG_CHILDTOKEN foreign key (CHILD_) references JBPM_TOKEN
+alter table JBPM_LOG add constraint FK_LOG_DESTNODE foreign key (DESTINATIONNODE_) references JBPM_NODE
+alter table JBPM_LOG add constraint FK_LOG_TASKINST foreign key (TASKINSTANCE_) references JBPM_TASKINSTANCE
+alter table JBPM_LOG add constraint FK_LOG_SWIMINST foreign key (SWIMLANEINSTANCE_) references JBPM_SWIMLANEINSTANCE
+alter table JBPM_LOG add constraint FK_LOG_PARENT foreign key (PARENT_) references JBPM_LOG
+alter table JBPM_LOG add constraint FK_LOG_NODE foreign key (NODE_) references JBPM_NODE
+alter table JBPM_LOG add constraint FK_LOG_ACTION foreign key (ACTION_) references JBPM_ACTION
+alter table JBPM_LOG add constraint FK_LOG_VARINST foreign key (VARIABLEINSTANCE_) references JBPM_VARIABLEINSTANCE
+alter table JBPM_LOG add constraint FK_LOG_TRANSITION foreign key (TRANSITION_) references JBPM_TRANSITION
+create index IDX_MODDEF_PROCDF on JBPM_MODULEDEFINITION (PROCESSDEFINITION_)
+alter table JBPM_MODULEDEFINITION add constraint FK_TSKDEF_START foreign key (STARTTASK_) references JBPM_TASK
+alter table JBPM_MODULEDEFINITION add constraint FK_MODDEF_PROCDEF foreign key (PROCESSDEFINITION_) references JBPM_PROCESSDEFINITION
+create index IDX_MODINST_PRINST on JBPM_MODULEINSTANCE (PROCESSINSTANCE_)
+alter table JBPM_MODULEINSTANCE add constraint FK_TASKMGTINST_TMD foreign key (TASKMGMTDEFINITION_) references JBPM_MODULEDEFINITION
+alter table JBPM_MODULEINSTANCE add constraint FK_MODINST_PRCINST foreign key (PROCESSINSTANCE_) references JBPM_PROCESSINSTANCE
+create index IDX_PSTATE_SBPRCDEF on JBPM_NODE (SUBPROCESSDEFINITION_)
+create index IDX_NODE_SUPRSTATE on JBPM_NODE (SUPERSTATE_)
+create index IDX_NODE_PROCDEF on JBPM_NODE (PROCESSDEFINITION_)
+create index IDX_NODE_ACTION on JBPM_NODE (ACTION_)
+alter table JBPM_NODE add constraint FK_PROCST_SBPRCDEF foreign key (SUBPROCESSDEFINITION_) references JBPM_PROCESSDEFINITION
+alter table JBPM_NODE add constraint FK_NODE_PROCDEF foreign key (PROCESSDEFINITION_) references JBPM_PROCESSDEFINITION
+alter table JBPM_NODE add constraint FK_NODE_SCRIPT foreign key (SCRIPT_) references JBPM_ACTION
+alter table JBPM_NODE add constraint FK_NODE_ACTION foreign key (ACTION_) references JBPM_ACTION
+alter table JBPM_NODE add constraint FK_DECISION_DELEG foreign key (DECISIONDELEGATION) references JBPM_DELEGATION
+alter table JBPM_NODE add constraint FK_NODE_SUPERSTATE foreign key (SUPERSTATE_) references JBPM_NODE
+create index IDX_PLDACTR_ACTID on JBPM_POOLEDACTOR (ACTORID_)
+create index IDX_TSKINST_SWLANE on JBPM_POOLEDACTOR (SWIMLANEINSTANCE_)
+alter table JBPM_POOLEDACTOR add constraint FK_POOLEDACTOR_SLI foreign key (SWIMLANEINSTANCE_) references JBPM_SWIMLANEINSTANCE
+create index IDX_PROCDEF_STRTST on JBPM_PROCESSDEFINITION (STARTSTATE_)
+alter table JBPM_PROCESSDEFINITION add constraint FK_PROCDEF_STRTSTA foreign key (STARTSTATE_) references JBPM_NODE
+create index IDX_PROCIN_ROOTTK on JBPM_PROCESSINSTANCE (ROOTTOKEN_)
+create index IDX_PROCIN_SPROCTK on JBPM_PROCESSINSTANCE (SUPERPROCESSTOKEN_)
+create index IDX_PROCIN_KEY on JBPM_PROCESSINSTANCE (KEY_)
+create index IDX_PROCIN_PROCDEF on JBPM_PROCESSINSTANCE (PROCESSDEFINITION_)
+alter table JBPM_PROCESSINSTANCE add constraint FK_PROCIN_PROCDEF foreign key (PROCESSDEFINITION_) references JBPM_PROCESSDEFINITION
+alter table JBPM_PROCESSINSTANCE add constraint FK_PROCIN_ROOTTKN foreign key (ROOTTOKEN_) references JBPM_TOKEN
+alter table JBPM_PROCESSINSTANCE add constraint FK_PROCIN_SPROCTKN foreign key (SUPERPROCESSTOKEN_) references JBPM_TOKEN
+create index IDX_RTACTN_PRCINST on JBPM_RUNTIMEACTION (PROCESSINSTANCE_)
+create index IDX_RTACTN_ACTION on JBPM_RUNTIMEACTION (ACTION_)
+alter table JBPM_RUNTIMEACTION add constraint FK_RTACTN_PROCINST foreign key (PROCESSINSTANCE_) references JBPM_PROCESSINSTANCE
+alter table JBPM_RUNTIMEACTION add constraint FK_RTACTN_ACTION foreign key (ACTION_) references JBPM_ACTION
+alter table JBPM_SWIMLANE add constraint FK_SWL_ASSDEL foreign key (ASSIGNMENTDELEGATION_) references JBPM_DELEGATION
+alter table JBPM_SWIMLANE add constraint FK_SWL_TSKMGMTDEF foreign key (TASKMGMTDEFINITION_) references JBPM_MODULEDEFINITION
+create index IDX_SWIMLINST_SL on JBPM_SWIMLANEINSTANCE (SWIMLANE_)
+alter table JBPM_SWIMLANEINSTANCE add constraint FK_SWIMLANEINST_TM foreign key (TASKMGMTINSTANCE_) references JBPM_MODULEINSTANCE
+alter table JBPM_SWIMLANEINSTANCE add constraint FK_SWIMLANEINST_SL foreign key (SWIMLANE_) references JBPM_SWIMLANE
+create index IDX_TASK_TSKNODE on JBPM_TASK (TASKNODE_)
+create index IDX_TASK_PROCDEF on JBPM_TASK (PROCESSDEFINITION_)
+create index IDX_TASK_TASKMGTDF on JBPM_TASK (TASKMGMTDEFINITION_)
+alter table JBPM_TASK add constraint FK_TSK_TSKCTRL foreign key (TASKCONTROLLER_) references JBPM_TASKCONTROLLER
+alter table JBPM_TASK add constraint FK_TASK_ASSDEL foreign key (ASSIGNMENTDELEGATION_) references JBPM_DELEGATION
+alter table JBPM_TASK add constraint FK_TASK_TASKNODE foreign key (TASKNODE_) references JBPM_NODE
+alter table JBPM_TASK add constraint FK_TASK_PROCDEF foreign key (PROCESSDEFINITION_) references JBPM_PROCESSDEFINITION
+alter table JBPM_TASK add constraint FK_TASK_STARTST foreign key (STARTSTATE_) references JBPM_NODE
+alter table JBPM_TASK add constraint FK_TASK_TASKMGTDEF foreign key (TASKMGMTDEFINITION_) references JBPM_MODULEDEFINITION
+alter table JBPM_TASK add constraint FK_TASK_SWIMLANE foreign key (SWIMLANE_) references JBPM_SWIMLANE
+alter table JBPM_TASKACTORPOOL add constraint FK_TSKACTPOL_PLACT foreign key (POOLEDACTOR_) references JBPM_POOLEDACTOR
+alter table JBPM_TASKACTORPOOL add constraint FK_TASKACTPL_TSKI foreign key (TASKINSTANCE_) references JBPM_TASKINSTANCE
+alter table JBPM_TASKCONTROLLER add constraint FK_TSKCTRL_DELEG foreign key (TASKCONTROLLERDELEGATION_) references JBPM_DELEGATION
+create index IDX_TASKINST_TOKN on JBPM_TASKINSTANCE (TOKEN_)
+create index IDX_TASKINST_TSK on JBPM_TASKINSTANCE (TASK_, PROCINST_)
+create index IDX_TSKINST_TMINST on JBPM_TASKINSTANCE (TASKMGMTINSTANCE_)
+create index IDX_TSKINST_SLINST on JBPM_TASKINSTANCE (SWIMLANINSTANCE_)
+create index IDX_TASK_ACTORID on JBPM_TASKINSTANCE (ACTORID_)
+alter table JBPM_TASKINSTANCE add constraint FK_TSKINS_PRCINS foreign key (PROCINST_) references JBPM_PROCESSINSTANCE
+alter table JBPM_TASKINSTANCE add constraint FK_TASKINST_TMINST foreign key (TASKMGMTINSTANCE_) references JBPM_MODULEINSTANCE
+alter table JBPM_TASKINSTANCE add constraint FK_TASKINST_TOKEN foreign key (TOKEN_) references JBPM_TOKEN
+alter table JBPM_TASKINSTANCE add constraint FK_TASKINST_SLINST foreign key (SWIMLANINSTANCE_) references JBPM_SWIMLANEINSTANCE
+alter table JBPM_TASKINSTANCE add constraint FK_TASKINST_TASK foreign key (TASK_) references JBPM_TASK
+create index IDX_TOKEN_PROCIN on JBPM_TOKEN (PROCESSINSTANCE_)
+create index IDX_TOKEN_SUBPI on JBPM_TOKEN (SUBPROCESSINSTANCE_)
+create index IDX_TOKEN_NODE on JBPM_TOKEN (NODE_)
+create index IDX_TOKEN_PARENT on JBPM_TOKEN (PARENT_)
+alter table JBPM_TOKEN add constraint FK_TOKEN_PARENT foreign key (PARENT_) references JBPM_TOKEN
+alter table JBPM_TOKEN add constraint FK_TOKEN_NODE foreign key (NODE_) references JBPM_NODE
+alter table JBPM_TOKEN add constraint FK_TOKEN_PROCINST foreign key (PROCESSINSTANCE_) references JBPM_PROCESSINSTANCE
+alter table JBPM_TOKEN add constraint FK_TOKEN_SUBPI foreign key (SUBPROCESSINSTANCE_) references JBPM_PROCESSINSTANCE
+create index IDX_TKVARMAP_CTXT on JBPM_TOKENVARIABLEMAP (CONTEXTINSTANCE_)
+create index IDX_TKVVARMP_TOKEN on JBPM_TOKENVARIABLEMAP (TOKEN_)
+alter table JBPM_TOKENVARIABLEMAP add constraint FK_TKVARMAP_CTXT foreign key (CONTEXTINSTANCE_) references JBPM_MODULEINSTANCE
+alter table JBPM_TOKENVARIABLEMAP add constraint FK_TKVARMAP_TOKEN foreign key (TOKEN_) references JBPM_TOKEN
+create index IDX_TRANSIT_TO on JBPM_TRANSITION (TO_)
+create index IDX_TRANSIT_FROM on JBPM_TRANSITION (FROM_)
+create index IDX_TRANS_PROCDEF on JBPM_TRANSITION (PROCESSDEFINITION_)
+alter table JBPM_TRANSITION add constraint FK_TRANSITION_TO foreign key (TO_) references JBPM_NODE
+alter table JBPM_TRANSITION add constraint FK_TRANS_PROCDEF foreign key (PROCESSDEFINITION_) references JBPM_PROCESSDEFINITION
+alter table JBPM_TRANSITION add constraint FK_TRANSITION_FROM foreign key (FROM_) references JBPM_NODE
+alter table JBPM_VARIABLEACCESS add constraint FK_VARACC_TSKCTRL foreign key (TASKCONTROLLER_) references JBPM_TASKCONTROLLER
+alter table JBPM_VARIABLEACCESS add constraint FK_VARACC_SCRIPT foreign key (SCRIPT_) references JBPM_ACTION
+alter table JBPM_VARIABLEACCESS add constraint FK_VARACC_PROCST foreign key (PROCESSSTATE_) references JBPM_NODE
+create index IDX_VARINST_TKVARMP on JBPM_VARIABLEINSTANCE (TOKENVARIABLEMAP_)
+create index IDX_VARINST_PRCINS on JBPM_VARIABLEINSTANCE (PROCESSINSTANCE_)
+create index IDX_VARINST_TK on JBPM_VARIABLEINSTANCE (TOKEN_)
+alter table JBPM_VARIABLEINSTANCE add constraint FK_VARINST_TK foreign key (TOKEN_) references JBPM_TOKEN
+alter table JBPM_VARIABLEINSTANCE add constraint FK_VARINST_TKVARMP foreign key (TOKENVARIABLEMAP_) references JBPM_TOKENVARIABLEMAP
+alter table JBPM_VARIABLEINSTANCE add constraint FK_VARINST_PRCINST foreign key (PROCESSINSTANCE_) references JBPM_PROCESSINSTANCE
+alter table JBPM_VARIABLEINSTANCE add constraint FK_VAR_TSKINST foreign key (TASKINSTANCE_) references JBPM_TASKINSTANCE
+alter table JBPM_VARIABLEINSTANCE add constraint FK_BYTEINST_ARRAY foreign key (BYTEARRAYVALUE_) references JBPM_BYTEARRAY
Copied: labs/jbossesb/workspace/mlittle/legstar/product/services/jbpm/src/main/resources/jsf-console.war (from rev 24846, labs/jbossesb/trunk/product/services/jbpm/src/main/resources/jsf-console.war)
===================================================================
(Binary files differ)
Modified: labs/jbossesb/workspace/mlittle/legstar/product/services/jbpm/src/test/java/org/jboss/soa/esb/services/jbpm/actionhandlers/EsbActionHandlerUnitTest.java
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/services/jbpm/src/test/java/org/jboss/soa/esb/services/jbpm/actionhandlers/EsbActionHandlerUnitTest.java 2009-01-21 14:47:17 UTC (rev 24849)
+++ labs/jbossesb/workspace/mlittle/legstar/product/services/jbpm/src/test/java/org/jboss/soa/esb/services/jbpm/actionhandlers/EsbActionHandlerUnitTest.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -22,29 +22,28 @@
package org.jboss.soa.esb.services.jbpm.actionhandlers;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertTrue;
import java.net.URI;
import junit.framework.JUnit4TestAdapter;
-import org.apache.log4j.Logger;
import org.jboss.internal.soa.esb.couriers.MockCourier;
import org.jboss.internal.soa.esb.couriers.MockCourierFactory;
import org.jboss.internal.soa.esb.services.registry.MockRegistry;
import org.jboss.soa.esb.addressing.EPR;
+import org.jboss.soa.esb.services.jbpm.Constants;
import org.jbpm.graph.def.ProcessDefinition;
import org.jbpm.graph.exe.ProcessInstance;
import org.jbpm.graph.exe.Token;
import org.junit.BeforeClass;
+import org.junit.Ignore;
import org.junit.Test;
public class EsbActionHandlerUnitTest
{
-
- private static Class thisClass = EsbActionHandlerUnitTest.class;
- static Logger _logger = Logger.getLogger(thisClass);
-
private static EPR epr1;
private static MockCourier courier1;
private static String MOCK_CATEGORY="MockCategory";
@@ -61,18 +60,17 @@
}
@Test
+ @Ignore
public void testSimpleProcess() throws Exception
{
// Extract a process definition from the processdefinition.xml file.
- ProcessDefinition processDefinition
- = ProcessDefinition.parseXmlResource("testMappingDefinition.xml");
- assertTrue("Definition should not be null", null!=processDefinition);
+ ProcessDefinition processDefinition = ProcessDefinition.parseXmlResource("testMappingDefinition.xml");
+
+ assertNotNull(processDefinition);
// Create an instance of the process definition.
ProcessInstance instance = new ProcessInstance(processDefinition);
- assertTrue(
- "Instance is in start state",
- instance.getRootToken().getNode().getName().equals("start"));
+ assertEquals("start", instance.getRootToken().getNode().getName());
String varVal = "HELLO world";
String second = "Second Hello";
@@ -87,20 +85,44 @@
instance.signal();
//the node is now in a wait state in the "first" state
- assertTrue(
- "Instance is in first state",
- instance.getRootToken().getNode().getName().equals("first"));
+ assertEquals("first", instance.getRootToken().getNode().getName());
instance.signal();
- assertTrue(
- "Instance is in end state",
- instance.getRootToken().getNode().getName().equals("end"));
- assertTrue("Instance has ended", instance.hasEnded());
+ assertEquals("end", instance.getRootToken().getNode().getName());
+ assertTrue(instance.hasEnded());
}
+ /**
+ * Test for Jira:
+ * https://jira.jboss.org/jira/browse/JBESB-2228 "Replies/faults generated from within jBPM should initialise the relatesTo"
+ */
+ @Test
+ public void wasRelatesToSetAfterJbpmFault() throws Exception
+ {
+ ProcessDefinition processDefinition = ProcessDefinition.parseXmlResource("relatesToFaultDefinition.xml");
+ ProcessInstance instance = new ProcessInstance(processDefinition);
+
+ /*
+ * Simulate the setting of ESB MessageId that is performed by NewProcessInstancePerformer
+ * This is only set if either faultTo or ReplyTo has also been stored.
+ */
+ URI orgEsbMessageId = new URI("someuri");
+ instance.getContextInstance().setVariable(Constants.ESB_MESSAGE_ID, orgEsbMessageId);
+ instance.getContextInstance().setVariable(Constants.REPLY_TO, new URI("faultto"));
+
+ instance.signal();
+ instance.signal();
+ assertEquals("exception", instance.getRootToken().getNode().getName());
+ instance.signal();
+ assertEquals("end", instance.getRootToken().getNode().getName());
+
+ final URI relatesTo = courier1.message.getHeader().getCall().getRelatesTo();
+ assertEquals(orgEsbMessageId, relatesTo);
+ }
+
public static junit.framework.Test suite()
{
- return new JUnit4TestAdapter(thisClass);
+ return new JUnit4TestAdapter(EsbActionHandlerUnitTest.class);
}
}
Modified: labs/jbossesb/workspace/mlittle/legstar/product/services/jbpm/src/test/resources/hibernate.cfg.xml
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/services/jbpm/src/test/resources/hibernate.cfg.xml 2009-01-21 14:47:17 UTC (rev 24849)
+++ labs/jbossesb/workspace/mlittle/legstar/product/services/jbpm/src/test/resources/hibernate.cfg.xml 2009-01-21 15:38:08 UTC (rev 24850)
@@ -1,11 +1,11 @@
<?xml version='1.0' encoding='utf-8'?>
-<!DOCTYPE hibernate-configuration PUBLIC
- "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
- "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
+<!DOCTYPE hibernate-configuration PUBLIC
+"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
+"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
- <session-factory>
+<session-factory>
<!-- hibernate dialect -->
<property name="hibernate.dialect">org.hibernate.dialect.HSQLDialect</property>
@@ -15,15 +15,13 @@
<property name="hibernate.connection.url">jdbc:hsqldb:mem:jbpm</property>
<property name="hibernate.connection.username">sa</property>
<property name="hibernate.connection.password"></property>
- <property name="hibernate.hbm2ddl.auto">create</property>
<!-- JDBC connection properties (end) -->
-
- <property name="hibernate.cache.provider_class">org.hibernate.cache.HashtableCacheProvider</property>
-
+
+
<!-- DataSource properties (begin) ===
- <property name="hibernate.connection.datasource">java:/JbpmDS</property>
+ <property name="hibernate.connection.datasource">java:comp/env/jdbc/JbpmDataSource</property>
==== DataSource properties (end) -->
-
+
<!-- JTA transaction properties (begin) ===
<property name="hibernate.transaction.factory_class">org.hibernate.transaction.JTATransactionFactory</property>
<property name="hibernate.transaction.manager_lookup_class">org.hibernate.transaction.JBossTransactionManagerLookup</property>
@@ -34,157 +32,232 @@
<property name="hibernate.transaction.manager_lookup_class">org.hibernate.transaction.JBossTransactionManagerLookup</property>
==== CMT transaction properties (end) -->
- <!-- logging properties (begin) ===
- <property name="hibernate.show_sql">true</property>
+ <!-- ################################### -->
+ <!-- # common settings # -->
+ <!-- ################################### -->
+
+ <!-- Automatic schema creation (begin) -->
+ <property name="hibernate.hbm2ddl.auto">create</property>
+ <!-- Automatic schema creation (end) -->
+
+ <!-- Simple memory-only cache -->
+ <property name="hibernate.cache.provider_class">org.hibernate.cache.HashtableCacheProvider</property>
+
+ <!-- logging properties -->
<property name="hibernate.format_sql">true</property>
<property name="hibernate.use_sql_comments">true</property>
- ==== logging properties (end) -->
-
+
<!-- ############################################ -->
<!-- # mapping files with external dependencies # -->
<!-- ############################################ -->
- <!-- following mapping file has a dependendy on -->
- <!-- 'bsh-{version}.jar'. -->
- <!-- uncomment this if you don't have bsh on your -->
- <!-- classpath. you won't be able to use the -->
- <!-- script element in process definition files -->
- <mapping resource="org/jbpm/graph/action/Script.hbm.xml"/>
-
- <!-- following mapping files have a dependendy on -->
- <!-- 'jbpm-identity.jar', mapping files -->
- <!-- of the pluggable jbpm identity component. -->
- <!-- Uncomment the following 3 lines if you -->
- <!-- want to use the jBPM identity mgmgt -->
- <!-- component. -->
- <!-- identity mappings (begin) -->
- <mapping resource="org/jbpm/identity/User.hbm.xml"/>
- <mapping resource="org/jbpm/identity/Group.hbm.xml"/>
- <mapping resource="org/jbpm/identity/Membership.hbm.xml"/>
- <!-- identity mappings (end) -->
+ <!-- Additional mappings defined per module go here -->
+ <mapping resource="hibernate.extra.hbm.xml" />
+ <mapping resource="hibernate.identity.hbm.xml" />
- <!-- following mapping files have a dependendy on -->
- <!-- the JCR API -->
- <!-- jcr mappings (begin) ===
- <mapping resource="org/jbpm/context/exe/variableinstance/JcrNodeInstance.hbm.xml"/>
- ==== jcr mappings (end) -->
+ <!-- ###################### -->
+ <!-- # jbpm mapping files # -->
+ <!-- ###################### -->
- <!-- ###################### -->
- <!-- # jbpm mapping files # -->
- <!-- ###################### -->
+ <!-- hql queries and type defs -->
+ <mapping resource="org/jbpm/db/hibernate.queries.hbm.xml" />
+ <!-- hql queries used in simulation for querying historical data
+ uncomment if you want to use the GetSimulationInputCommand
+ or maybe you also want to use the queries yourself
+ be patient: the queries need the stddev function to be enabled in your dialect
+ more information on this can be found here: http://www.camunda.com/business_process_simulation_news/mysql_and_stddev.html -->
+ <!--
+ <mapping resource="org/jbpm/sim/bam/hibernate.queries.hbm.xml" />
+ -->
- <!-- hql queries and type defs -->
- <mapping resource="org/jbpm/db/hibernate.queries.hbm.xml" />
-
- <!-- graph.def mapping files -->
- <mapping resource="org/jbpm/graph/def/ProcessDefinition.hbm.xml"/>
- <mapping resource="org/jbpm/graph/def/Node.hbm.xml"/>
- <mapping resource="org/jbpm/graph/def/Transition.hbm.xml"/>
- <mapping resource="org/jbpm/graph/def/Event.hbm.xml"/>
- <mapping resource="org/jbpm/graph/def/Action.hbm.xml"/>
- <mapping resource="org/jbpm/graph/def/SuperState.hbm.xml"/>
- <mapping resource="org/jbpm/graph/def/ExceptionHandler.hbm.xml"/>
- <mapping resource="org/jbpm/instantiation/Delegation.hbm.xml"/>
+ <!-- graph.action mapping files -->
+ <mapping resource="org/jbpm/graph/action/MailAction.hbm.xml"/>
- <!-- graph.node mapping files -->
- <mapping resource="org/jbpm/graph/node/StartState.hbm.xml"/>
- <mapping resource="org/jbpm/graph/node/EndState.hbm.xml"/>
- <mapping resource="org/jbpm/graph/node/ProcessState.hbm.xml"/>
- <mapping resource="org/jbpm/graph/node/Decision.hbm.xml"/>
- <mapping resource="org/jbpm/graph/node/Fork.hbm.xml"/>
- <mapping resource="org/jbpm/graph/node/Join.hbm.xml"/>
- <mapping resource="org/jbpm/graph/node/State.hbm.xml"/>
- <mapping resource="org/jbpm/graph/node/TaskNode.hbm.xml"/>
+ <!-- graph.def mapping files -->
+ <mapping resource="org/jbpm/graph/def/ProcessDefinition.hbm.xml"/>
+ <mapping resource="org/jbpm/graph/def/Node.hbm.xml"/>
+ <mapping resource="org/jbpm/graph/def/Transition.hbm.xml"/>
+ <mapping resource="org/jbpm/graph/def/Event.hbm.xml"/>
+ <mapping resource="org/jbpm/graph/def/Action.hbm.xml"/>
+ <mapping resource="org/jbpm/graph/def/SuperState.hbm.xml"/>
+ <mapping resource="org/jbpm/graph/def/ExceptionHandler.hbm.xml"/>
+ <mapping resource="org/jbpm/instantiation/Delegation.hbm.xml"/>
- <!-- context.def mapping files -->
- <mapping resource="org/jbpm/context/def/ContextDefinition.hbm.xml"/>
- <mapping resource="org/jbpm/context/def/VariableAccess.hbm.xml"/>
+ <!-- ############################################ -->
+ <!-- # another mapping file with external dependencies # -->
+ <!-- ############################################ -->
+ <!-- following mapping file has a dependency on -->
+ <!-- 'bsh-{version}.jar'. -->
+ <!-- uncomment this if you don't have bsh on your -->
+ <!-- classpath. you won't be able to use the -->
+ <!-- script element in process definition files -->
+ <!-- has to be defined below org/jbpm/graph/def/Action.hbm.xml -->
+ <!-- due to the inline collection-cache elements below -->
+ <mapping resource="org/jbpm/graph/action/Script.hbm.xml"/>
- <!-- taskmgmt.def mapping files -->
- <mapping resource="org/jbpm/taskmgmt/def/TaskMgmtDefinition.hbm.xml"/>
- <mapping resource="org/jbpm/taskmgmt/def/Swimlane.hbm.xml"/>
- <mapping resource="org/jbpm/taskmgmt/def/Task.hbm.xml"/>
- <mapping resource="org/jbpm/taskmgmt/def/TaskController.hbm.xml"/>
+ <!-- graph.node mapping files -->
+ <mapping resource="org/jbpm/graph/node/StartState.hbm.xml"/>
+ <mapping resource="org/jbpm/graph/node/EndState.hbm.xml"/>
+ <mapping resource="org/jbpm/graph/node/ProcessState.hbm.xml"/>
+ <mapping resource="org/jbpm/graph/node/Decision.hbm.xml"/>
+ <mapping resource="org/jbpm/graph/node/Fork.hbm.xml"/>
+ <mapping resource="org/jbpm/graph/node/Join.hbm.xml"/>
+ <mapping resource="org/jbpm/graph/node/MailNode.hbm.xml"/>
+ <mapping resource="org/jbpm/graph/node/State.hbm.xml"/>
+ <mapping resource="org/jbpm/graph/node/TaskNode.hbm.xml"/>
- <!-- module.def mapping files -->
- <mapping resource="org/jbpm/module/def/ModuleDefinition.hbm.xml"/>
+ <!-- context.def mapping files -->
+ <mapping resource="org/jbpm/context/def/ContextDefinition.hbm.xml"/>
+ <mapping resource="org/jbpm/context/def/VariableAccess.hbm.xml"/>
- <!-- bytes mapping files -->
- <mapping resource="org/jbpm/bytes/ByteArray.hbm.xml"/>
+ <!-- bytes mapping files -->
+ <mapping resource="org/jbpm/bytes/ByteArray.hbm.xml"/>
- <!-- file.def mapping files -->
- <mapping resource="org/jbpm/file/def/FileDefinition.hbm.xml"/>
+ <!-- module.def mapping files -->
+ <mapping resource="org/jbpm/module/def/ModuleDefinition.hbm.xml"/>
- <!-- scheduler.def mapping files -->
- <mapping resource="org/jbpm/scheduler/def/CreateTimerAction.hbm.xml"/>
- <mapping resource="org/jbpm/scheduler/def/CancelTimerAction.hbm.xml"/>
+ <!-- file.def mapping files -->
+ <mapping resource="org/jbpm/file/def/FileDefinition.hbm.xml"/>
- <!-- graph.exe mapping files -->
- <mapping resource="org/jbpm/graph/exe/Comment.hbm.xml"/>
- <mapping resource="org/jbpm/graph/exe/ProcessInstance.hbm.xml"/>
- <mapping resource="org/jbpm/graph/exe/Token.hbm.xml"/>
- <mapping resource="org/jbpm/graph/exe/RuntimeAction.hbm.xml"/>
+ <!-- taskmgmt.def mapping files -->
+ <mapping resource="org/jbpm/taskmgmt/def/TaskMgmtDefinition.hbm.xml"/>
+ <mapping resource="org/jbpm/taskmgmt/def/Swimlane.hbm.xml"/>
+ <mapping resource="org/jbpm/taskmgmt/def/Task.hbm.xml"/>
+ <mapping resource="org/jbpm/taskmgmt/def/TaskController.hbm.xml"/>
- <!-- module.exe mapping files -->
- <mapping resource="org/jbpm/module/exe/ModuleInstance.hbm.xml"/>
-
- <!-- context.exe mapping files -->
- <mapping resource="org/jbpm/context/exe/ContextInstance.hbm.xml"/>
- <mapping resource="org/jbpm/context/exe/TokenVariableMap.hbm.xml"/>
- <mapping resource="org/jbpm/context/exe/VariableInstance.hbm.xml"/>
- <mapping resource="org/jbpm/context/exe/variableinstance/ByteArrayInstance.hbm.xml"/>
- <mapping resource="org/jbpm/context/exe/variableinstance/DateInstance.hbm.xml"/>
- <mapping resource="org/jbpm/context/exe/variableinstance/DoubleInstance.hbm.xml"/>
- <mapping resource="org/jbpm/context/exe/variableinstance/HibernateLongInstance.hbm.xml"/>
- <mapping resource="org/jbpm/context/exe/variableinstance/HibernateStringInstance.hbm.xml"/>
- <mapping resource="org/jbpm/context/exe/variableinstance/LongInstance.hbm.xml"/>
- <mapping resource="org/jbpm/context/exe/variableinstance/NullInstance.hbm.xml"/>
- <mapping resource="org/jbpm/context/exe/variableinstance/StringInstance.hbm.xml"/>
+ <!-- scheduler.def mapping files -->
+ <mapping resource="org/jbpm/scheduler/def/CreateTimerAction.hbm.xml"/>
+ <mapping resource="org/jbpm/scheduler/def/CancelTimerAction.hbm.xml"/>
- <!-- job mapping files -->
- <mapping resource="org/jbpm/job/Job.hbm.xml"/>
- <mapping resource="org/jbpm/job/Timer.hbm.xml"/>
- <mapping resource="org/jbpm/job/ExecuteNodeJob.hbm.xml"/>
- <mapping resource="org/jbpm/job/ExecuteActionJob.hbm.xml"/>
+ <!-- graph.exe mapping files -->
+ <mapping resource="org/jbpm/graph/exe/Comment.hbm.xml"/>
+ <mapping resource="org/jbpm/graph/exe/ProcessInstance.hbm.xml"/>
+ <mapping resource="org/jbpm/graph/exe/Token.hbm.xml"/>
+ <mapping resource="org/jbpm/graph/exe/RuntimeAction.hbm.xml"/>
- <!-- taskmgmt.exe mapping files -->
- <mapping resource="org/jbpm/taskmgmt/exe/TaskMgmtInstance.hbm.xml"/>
- <mapping resource="org/jbpm/taskmgmt/exe/TaskInstance.hbm.xml"/>
- <mapping resource="org/jbpm/taskmgmt/exe/PooledActor.hbm.xml"/>
- <mapping resource="org/jbpm/taskmgmt/exe/SwimlaneInstance.hbm.xml"/>
+ <!-- module.exe mapping files -->
+ <mapping resource="org/jbpm/module/exe/ModuleInstance.hbm.xml"/>
- <!-- logging mapping files -->
- <mapping resource="org/jbpm/logging/log/ProcessLog.hbm.xml"/>
- <mapping resource="org/jbpm/logging/log/MessageLog.hbm.xml"/>
- <mapping resource="org/jbpm/logging/log/CompositeLog.hbm.xml"/>
- <mapping resource="org/jbpm/graph/log/ActionLog.hbm.xml"/>
- <mapping resource="org/jbpm/graph/log/NodeLog.hbm.xml"/>
- <mapping resource="org/jbpm/graph/log/ProcessInstanceCreateLog.hbm.xml"/>
- <mapping resource="org/jbpm/graph/log/ProcessInstanceEndLog.hbm.xml"/>
- <mapping resource="org/jbpm/graph/log/ProcessStateLog.hbm.xml"/>
- <mapping resource="org/jbpm/graph/log/SignalLog.hbm.xml"/>
- <mapping resource="org/jbpm/graph/log/TokenCreateLog.hbm.xml"/>
- <mapping resource="org/jbpm/graph/log/TokenEndLog.hbm.xml"/>
- <mapping resource="org/jbpm/graph/log/TransitionLog.hbm.xml"/>
- <mapping resource="org/jbpm/context/log/VariableLog.hbm.xml"/>
- <mapping resource="org/jbpm/context/log/VariableCreateLog.hbm.xml"/>
- <mapping resource="org/jbpm/context/log/VariableDeleteLog.hbm.xml"/>
- <mapping resource="org/jbpm/context/log/VariableUpdateLog.hbm.xml"/>
- <mapping resource="org/jbpm/context/log/variableinstance/ByteArrayUpdateLog.hbm.xml"/>
- <mapping resource="org/jbpm/context/log/variableinstance/DateUpdateLog.hbm.xml"/>
- <mapping resource="org/jbpm/context/log/variableinstance/DoubleUpdateLog.hbm.xml"/>
- <mapping resource="org/jbpm/context/log/variableinstance/HibernateLongUpdateLog.hbm.xml"/>
- <mapping resource="org/jbpm/context/log/variableinstance/HibernateStringUpdateLog.hbm.xml"/>
- <mapping resource="org/jbpm/context/log/variableinstance/LongUpdateLog.hbm.xml"/>
- <mapping resource="org/jbpm/context/log/variableinstance/StringUpdateLog.hbm.xml"/>
- <mapping resource="org/jbpm/taskmgmt/log/TaskLog.hbm.xml"/>
- <mapping resource="org/jbpm/taskmgmt/log/TaskCreateLog.hbm.xml"/>
- <mapping resource="org/jbpm/taskmgmt/log/TaskAssignLog.hbm.xml"/>
- <mapping resource="org/jbpm/taskmgmt/log/TaskEndLog.hbm.xml"/>
- <mapping resource="org/jbpm/taskmgmt/log/SwimlaneLog.hbm.xml"/>
- <mapping resource="org/jbpm/taskmgmt/log/SwimlaneCreateLog.hbm.xml"/>
- <mapping resource="org/jbpm/taskmgmt/log/SwimlaneAssignLog.hbm.xml"/>
-
- </session-factory>
+ <!-- context.exe mapping files -->
+ <mapping resource="org/jbpm/context/exe/ContextInstance.hbm.xml"/>
+ <mapping resource="org/jbpm/context/exe/TokenVariableMap.hbm.xml"/>
+ <mapping resource="org/jbpm/context/exe/VariableInstance.hbm.xml"/>
+ <mapping resource="org/jbpm/context/exe/variableinstance/ByteArrayInstance.hbm.xml"/>
+ <mapping resource="org/jbpm/context/exe/variableinstance/DateInstance.hbm.xml"/>
+ <mapping resource="org/jbpm/context/exe/variableinstance/DoubleInstance.hbm.xml"/>
+ <mapping resource="org/jbpm/context/exe/variableinstance/HibernateLongInstance.hbm.xml"/>
+ <mapping resource="org/jbpm/context/exe/variableinstance/HibernateStringInstance.hbm.xml"/>
+ <mapping resource="org/jbpm/context/exe/variableinstance/LongInstance.hbm.xml"/>
+ <mapping resource="org/jbpm/context/exe/variableinstance/NullInstance.hbm.xml"/>
+ <mapping resource="org/jbpm/context/exe/variableinstance/StringInstance.hbm.xml"/>
+
+ <!-- job mapping files -->
+ <mapping resource="org/jbpm/job/Job.hbm.xml"/>
+ <mapping resource="org/jbpm/job/Timer.hbm.xml"/>
+ <mapping resource="org/jbpm/job/ExecuteNodeJob.hbm.xml"/>
+ <mapping resource="org/jbpm/job/ExecuteActionJob.hbm.xml"/>
+ <mapping resource="org/jbpm/job/CleanUpProcessJob.hbm.xml"/>
+
+ <!-- taskmgmt.exe mapping files -->
+ <mapping resource="org/jbpm/taskmgmt/exe/TaskMgmtInstance.hbm.xml"/>
+ <mapping resource="org/jbpm/taskmgmt/exe/TaskInstance.hbm.xml"/>
+ <mapping resource="org/jbpm/taskmgmt/exe/PooledActor.hbm.xml"/>
+ <mapping resource="org/jbpm/taskmgmt/exe/SwimlaneInstance.hbm.xml"/>
+
+ <!-- logging mapping files -->
+ <mapping resource="org/jbpm/logging/log/ProcessLog.hbm.xml"/>
+ <mapping resource="org/jbpm/logging/log/MessageLog.hbm.xml"/>
+ <mapping resource="org/jbpm/logging/log/CompositeLog.hbm.xml"/>
+ <mapping resource="org/jbpm/graph/log/ActionLog.hbm.xml"/>
+ <mapping resource="org/jbpm/graph/log/NodeLog.hbm.xml"/>
+ <mapping resource="org/jbpm/graph/log/ProcessInstanceCreateLog.hbm.xml"/>
+ <mapping resource="org/jbpm/graph/log/ProcessInstanceEndLog.hbm.xml"/>
+ <mapping resource="org/jbpm/graph/log/ProcessStateLog.hbm.xml"/>
+ <mapping resource="org/jbpm/graph/log/SignalLog.hbm.xml"/>
+ <mapping resource="org/jbpm/graph/log/TokenCreateLog.hbm.xml"/>
+ <mapping resource="org/jbpm/graph/log/TokenEndLog.hbm.xml"/>
+ <mapping resource="org/jbpm/graph/log/TransitionLog.hbm.xml"/>
+ <mapping resource="org/jbpm/context/log/VariableLog.hbm.xml"/>
+ <mapping resource="org/jbpm/context/log/VariableCreateLog.hbm.xml"/>
+ <mapping resource="org/jbpm/context/log/VariableDeleteLog.hbm.xml"/>
+ <mapping resource="org/jbpm/context/log/VariableUpdateLog.hbm.xml"/>
+ <mapping resource="org/jbpm/context/log/variableinstance/ByteArrayUpdateLog.hbm.xml"/>
+ <mapping resource="org/jbpm/context/log/variableinstance/DateUpdateLog.hbm.xml"/>
+ <mapping resource="org/jbpm/context/log/variableinstance/DoubleUpdateLog.hbm.xml"/>
+ <mapping resource="org/jbpm/context/log/variableinstance/HibernateLongUpdateLog.hbm.xml"/>
+ <mapping resource="org/jbpm/context/log/variableinstance/HibernateStringUpdateLog.hbm.xml"/>
+ <mapping resource="org/jbpm/context/log/variableinstance/LongUpdateLog.hbm.xml"/>
+ <mapping resource="org/jbpm/context/log/variableinstance/StringUpdateLog.hbm.xml"/>
+ <mapping resource="org/jbpm/taskmgmt/log/TaskLog.hbm.xml"/>
+ <mapping resource="org/jbpm/taskmgmt/log/TaskCreateLog.hbm.xml"/>
+ <mapping resource="org/jbpm/taskmgmt/log/TaskAssignLog.hbm.xml"/>
+ <mapping resource="org/jbpm/taskmgmt/log/TaskEndLog.hbm.xml"/>
+ <mapping resource="org/jbpm/taskmgmt/log/SwimlaneLog.hbm.xml"/>
+ <mapping resource="org/jbpm/taskmgmt/log/SwimlaneCreateLog.hbm.xml"/>
+ <mapping resource="org/jbpm/taskmgmt/log/SwimlaneAssignLog.hbm.xml"/>
+
+ <!-- ################################### -->
+ <!-- # cache settings # -->
+ <!-- # strategy="nonstrict-read-write" # -->
+ <!-- # can be used with hibernate.cache.provider_class=org.hibernate.cache.HashtableCacheProvider # -->
+ <!-- ################################### -->
+
+ <class-cache class="org.jbpm.context.def.VariableAccess" usage="nonstrict-read-write" />
+
+ <collection-cache collection="org.jbpm.file.def.FileDefinition.processFiles" usage="nonstrict-read-write" />
+
+ <collection-cache collection="org.jbpm.graph.action.Script.variableAccesses" usage="nonstrict-read-write" />
+
+ <class-cache class="org.jbpm.graph.def.Action" usage="nonstrict-read-write" />
+
+ <class-cache class="org.jbpm.graph.def.Event" usage="nonstrict-read-write" />
+ <collection-cache collection="org.jbpm.graph.def.Event.actions" usage="nonstrict-read-write" />
+
+ <class-cache class="org.jbpm.graph.def.ExceptionHandler" usage="nonstrict-read-write" />
+ <collection-cache collection="org.jbpm.graph.def.ExceptionHandler.actions" usage="nonstrict-read-write" />
+
+ <class-cache class="org.jbpm.graph.def.Node" usage="nonstrict-read-write" />
+ <collection-cache collection="org.jbpm.graph.def.Node.events" usage="nonstrict-read-write" />
+ <collection-cache collection="org.jbpm.graph.def.Node.exceptionHandlers" usage="nonstrict-read-write" />
+ <collection-cache collection="org.jbpm.graph.def.Node.leavingTransitions" usage="nonstrict-read-write" />
+ <collection-cache collection="org.jbpm.graph.def.Node.arrivingTransitions" usage="nonstrict-read-write" />
+
+ <class-cache class="org.jbpm.graph.def.ProcessDefinition" usage="nonstrict-read-write" />
+ <collection-cache collection="org.jbpm.graph.def.ProcessDefinition.events" usage="nonstrict-read-write" />
+ <collection-cache collection="org.jbpm.graph.def.ProcessDefinition.exceptionHandlers" usage="nonstrict-read-write" />
+ <collection-cache collection="org.jbpm.graph.def.ProcessDefinition.nodes" usage="nonstrict-read-write" />
+ <collection-cache collection="org.jbpm.graph.def.ProcessDefinition.actions" usage="nonstrict-read-write" />
+ <collection-cache collection="org.jbpm.graph.def.ProcessDefinition.definitions" usage="nonstrict-read-write" />
+
+ <collection-cache collection="org.jbpm.graph.def.SuperState.nodes" usage="nonstrict-read-write" />
+
+ <class-cache class="org.jbpm.graph.def.Transition" usage="nonstrict-read-write" />
+ <collection-cache collection="org.jbpm.graph.def.Transition.events" usage="nonstrict-read-write" />
+ <collection-cache collection="org.jbpm.graph.def.Transition.exceptionHandlers" usage="nonstrict-read-write" />
+
+ <collection-cache collection="org.jbpm.graph.node.Decision.decisionConditions" usage="nonstrict-read-write" />
+
+ <collection-cache collection="org.jbpm.graph.node.ProcessState.variableAccesses" usage="nonstrict-read-write" />
+
+ <collection-cache collection="org.jbpm.graph.node.TaskNode.tasks" usage="nonstrict-read-write" />
+
+ <class-cache class="org.jbpm.instantiation.Delegation" usage="nonstrict-read-write" />
+
+ <class-cache class="org.jbpm.module.def.ModuleDefinition" usage="nonstrict-read-write" />
+
+ <collection-cache collection="org.jbpm.taskmgmt.def.Swimlane.tasks" usage="nonstrict-read-write" />
+
+ <class-cache class="org.jbpm.taskmgmt.def.TaskController" usage="nonstrict-read-write" />
+ <collection-cache collection="org.jbpm.taskmgmt.def.TaskController.variableAccesses" usage="nonstrict-read-write" />
+
+ <class-cache class="org.jbpm.taskmgmt.def.Task" usage="nonstrict-read-write" />
+ <collection-cache collection="org.jbpm.taskmgmt.def.Task.events" usage="nonstrict-read-write" />
+ <collection-cache collection="org.jbpm.taskmgmt.def.Task.exceptionHandlers" usage="nonstrict-read-write" />
+
+ <collection-cache collection="org.jbpm.taskmgmt.def.TaskMgmtDefinition.swimlanes" usage="nonstrict-read-write" />
+ <collection-cache collection="org.jbpm.taskmgmt.def.TaskMgmtDefinition.tasks" usage="nonstrict-read-write" />
+
+
+</session-factory>
</hibernate-configuration>
Modified: labs/jbossesb/workspace/mlittle/legstar/product/services/jbpm/src/test/resources/log4j.xml
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/services/jbpm/src/test/resources/log4j.xml 2009-01-21 14:47:17 UTC (rev 24849)
+++ labs/jbossesb/workspace/mlittle/legstar/product/services/jbpm/src/test/resources/log4j.xml 2009-01-21 15:38:08 UTC (rev 24850)
@@ -35,13 +35,13 @@
<!-- ================ -->
<category name="org.jbpm">
- <priority value="DEBUG"/>
+ <priority value="ERROR"/>
</category>
<category name="org.hibernate">
- <priority value="INFO"/>
+ <priority value="ERROR"/>
</category>
<category name="org.jboss">
- <priority value="WARN"/>
+ <priority value="ERROR"/>
</category>
<category name="org.jboss.soa.esb">
<priority value="ERROR"/>
@@ -53,7 +53,7 @@
<priority value="ERROR"/>
</category>
<category name="org.jboss.soa.esb.services.jbpm">
- <priority value="DEBUG"/>
+ <priority value="ERROR"/>
</category>
<!-- ======================= -->
<!-- Setup the Root category -->
Copied: labs/jbossesb/workspace/mlittle/legstar/product/services/jbpm/src/test/resources/relatesToFaultDefinition.xml (from rev 24846, labs/jbossesb/trunk/product/services/jbpm/src/test/resources/relatesToFaultDefinition.xml)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/services/jbpm/src/test/resources/relatesToFaultDefinition.xml (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/services/jbpm/src/test/resources/relatesToFaultDefinition.xml 2009-01-21 15:38:08 UTC (rev 24850)
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<process-definition xmlns="urn:jbpm.org:jpdl-3.2" name="testExceptionHandling">
+
+ <start-state name="start">
+ <transition name="ok" to="node1"></transition>
+ </start-state>
+
+ <node name="node1">
+ <action class="org.jboss.soa.esb.services.jbpm.actionhandlers.EsbActionHandler">
+ <esbCategoryName>MockCategory</esbCategoryName>
+ <esbServiceName>MockService</esbServiceName>
+ <exceptionTransition>exception</exceptionTransition>
+ </action>
+ <transition name="ok" to="exception"></transition>
+ <transition name="exception" to="exception"></transition>
+ </node>
+
+ <node name="exception">
+ <action class="org.jboss.soa.esb.services.jbpm.actionhandlers.EsbActionHandler">
+ <esbCategoryName>MockCategory</esbCategoryName>
+ <esbServiceName>MockService</esbServiceName>
+ <esbToBpmVars>
+ <mapping esb="SomeExceptionCode" bpm="exceptionCode"/>
+ </esbToBpmVars>
+ </action>
+ <transition name="ok" to="end"></transition>
+ </node>
+
+ <end-state name="ExceptionHandling"></end-state>
+
+ <end-state name="end"></end-state>
+
+</process-definition>
\ No newline at end of file
Copied: labs/jbossesb/workspace/mlittle/legstar/product/services/jbpm/upgrade-jbpm.txt (from rev 24846, labs/jbossesb/trunk/product/services/jbpm/upgrade-jbpm.txt)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/services/jbpm/upgrade-jbpm.txt (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/services/jbpm/upgrade-jbpm.txt 2009-01-21 15:38:08 UTC (rev 24850)
@@ -0,0 +1,135 @@
+######################################################################################
+This document describes the step that need to be performed to upgrade jbpm in JBossESB
+######################################################################################
+
+1. Download the target version of jbpm.
+
+2. Copy jars from the above installation directory
+Copy lib/jbpm-jpdl.jar, lib/jbpm-identity.jar, lib/jbpm-identity-config.jar to product/services/jbpm/lib/ext
+
+ a) update org/jbpm/context/exe/variableinstance/StringInstance.hbm.xml in jbpm-jpdl.jar:
+ <subclass name="org.jbpm.context.exe.variableinstance.StringInstance"
+ extends="org.jbpm.context.exe.VariableInstance"
+ discriminator-value="S">
+ <property name="value" type="text" column="STRINGVALUE_" length="4000"/>
+ </subclass>
+ Add the the length attribute as shown above.
+
+ b) Update org/jbpm/context/exe/variableinstance/HibernateStringInstance.hbm.xml in jbpm-jpdl.jar:
+ <subclass name="org.jbpm.context.exe.variableinstance.HibernateStringInstance"
+ extends="org.jbpm.context.exe.VariableInstance"
+ discriminator-value="I">
+ <any name="value" id-type="string" cascade="save-update">
+ <column name="STRINGIDCLASS_" />
+ <column name="STRINGVALUE_" length="4000"/>
+ </any>
+ </subclass>
+ Add the the length attribute as shown above.
+
+ c) If the upgrade requires changes to the database scripts in src/main/resouces/jbpm-sql then make
+ sure that you diff the files and apply the changes manually.
+
+ The following tables need to be updated:
+ Table Column
+ JBPM_ACTION EXPRESSION_ Should support varchar(4000) or equivelent to the database in question
+ JBPM_COMMENT MESSAGE_ Should support varchar(4000) or equivelent to the database in question
+ JBPM_DELEGATION CLASSNAME_ Should support varchar(4000) or equivelent to the database in question
+ JBPM_DELEGATION CONFIGURATION_ Should support varchar(4000) or equivelent to the database in question
+ JBPM_EXCEPTIONHANDLER EXCEPTIONCLASSNAME_ Should support varchar(4000) or equivelent to the database in question
+ JBPM_JOB EXCEPTION_ Should support varchar(4000) or equivelent to the database in question
+ JBPM_LOG MESSAGE_ Should support varchar(4000) or equivelent to the database in question
+ JBPM_LOG EXCEPTION__ Should support varchar(4000) or equivelent to the database in question
+ JBPM_LOG OLDSTRINGVALUE_ Should support varchar(4000) or equivelent to the database in question
+ JBPM_LOG NEWSTRINGVALUE_ Should support varchar(4000) or equivelent to the database in question
+ JBPM_MODULEDEFINITION NAME_ Should support varchar(4000) or equivelent to the database in question
+ JBPM_NODE DESCRIPTION_ Should support varchar(4000) or equivelent to the database in question
+ JBPM_PROCESSDEFINITION DESCRIPTION_ Should support varchar(4000) or equivelent to the database in question
+ JBPM_TASK DESCRIPTION_ Should support varchar(4000) or equivelent to the database in question
+ JBPM_TASK_INSTANCE DESCRIPTION_ Should support varchar(4000) or equivelent to the database in question
+ JBPM_TRANSITION DESCRIPTION_ Should support varchar(4000) or equivelent to the database in question
+ JBPM_VARIABLEINSTANCE STRINGVALUE_ Should support varchar(4000) or equivelent to the database in question
+ JBPM_VARIABLEINSTANCE STRINGVALUE_ Should support varchar(4000) or equivelent to the database in question
+
+
+3. Copy hibernate config
+Copy config/hibernate.cfg.hsqldb.xml to product/services/jbpm/src/main/resource/hibernate.cfg.xml
+
+ a) Comment out the JDBC connection properties.
+
+ b) Uncommnet the DataSource property and change the Datasource name to:
+ <property name="hibernate.connection.datasource">java:/JbpmDS</property>
+
+ c) Uncomment the JTA transaction properties section:
+ <!-- JTA transaction properties (begin) ===
+ ==== JTA transaction properties (end) -->
+ <property name="hibernate.transaction.factory_class">org.hibernate.transaction.JTATransactionFactory</property>
+ <property name="hibernate.transaction.manager_lookup_class">org.hibernate.transaction.JBossTransactionManagerLookup</property>
+
+ d) Add the following properties:
+ <property name="jta.UserTransaction">UserTransaction</property>
+ <property name="hibernate.current_session_context_class">jta</property>
+
+ e) Comment out hibernate.hbmd2ddl.auto:
+ <!--
+ <property name="hibernate.hbm2ddl.auto">create</property>
+ -->
+
+4. Remove jbpm-console.war
+Delete product/service/jbpm/src/main/resouces/jbpm-console.war.
+
+5. Copy jsf-console.war
+Copy lib/jsf-console.war to product/services/jbpm/src/main/resources
+
+ a) Comment out the following from WEB-INF/web.xml:
+ <!--
+ <ejb-local-ref>
+ <description>
+ Link to the local entity bean that implements the scheduler service. Required for
+ processes that contain timers.
+ </description>
+ <ejb-ref-name>ejb/TimerEntityBean</ejb-ref-name>
+ <ejb-ref-type>Entity</ejb-ref-type>
+ <local-home>org.jbpm.ejb.LocalTimerEntityHome</local-home>
+ <local>org.jbpm.ejb.LocalTimerEntity</local>
+ <ejb-link>TimerEntityBean</ejb-link>
+ </ejb-local-ref>
+ -->
+
+ b) Comment out the following from WEB-INF/jboss-web.xml:
+ <!--
+ <ejb-ref>
+ <ejb-ref-name>ejb/TimerEntityBean</ejb-ref-name>
+ <jndi-name>java:ejb/TimerEntityBean</jndi-name>
+ </ejb-ref>
+ -->
+
+6. Update src/test/resources/hibernate.cfg.xml
+Copy config/hibernate.cfg.hsqldb.xml to product/services/jbpm/src/test/resource/hibernate.cfg.xml.
+
+
+7. Run through the integration tests
+From the root directory in the jbossesb project:
+ant -f integration-build.xml integration
+
+
+8. Going through and runing the bpm_orchestration quickstart is also recommened.
+ant deploy
+ant deployProcess
+ant startProcess
+
+9. Vefify that you can login to the jbpm-console
+Point you browser to http://localhost:8080/jbpm-console
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/services/jbrules/lib/ext/antlr-runtime-3.0.jar
===================================================================
(Binary files differ)
Copied: labs/jbossesb/workspace/mlittle/legstar/product/services/jbrules/lib/ext/antlr-runtime-3.1.1.jar (from rev 24846, labs/jbossesb/trunk/product/services/jbrules/lib/ext/antlr-runtime-3.1.1.jar)
===================================================================
(Binary files differ)
Copied: labs/jbossesb/workspace/mlittle/legstar/product/services/jbrules/lib/ext/drools-ant-5.0.0.M4.jar (from rev 24846, labs/jbossesb/trunk/product/services/jbrules/lib/ext/drools-ant-5.0.0.M4.jar)
===================================================================
(Binary files differ)
Copied: labs/jbossesb/workspace/mlittle/legstar/product/services/jbrules/lib/ext/drools-api-5.0.0.M4.jar (from rev 24846, labs/jbossesb/trunk/product/services/jbrules/lib/ext/drools-api-5.0.0.M4.jar)
===================================================================
(Binary files differ)
Copied: labs/jbossesb/workspace/mlittle/legstar/product/services/jbrules/lib/ext/drools-clips-5.0.0.M4.jar (from rev 24846, labs/jbossesb/trunk/product/services/jbrules/lib/ext/drools-clips-5.0.0.M4.jar)
===================================================================
(Binary files differ)
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/services/jbrules/lib/ext/drools-compiler-4.0.7.jar
===================================================================
(Binary files differ)
Copied: labs/jbossesb/workspace/mlittle/legstar/product/services/jbrules/lib/ext/drools-compiler-5.0.0.M4.jar (from rev 24846, labs/jbossesb/trunk/product/services/jbrules/lib/ext/drools-compiler-5.0.0.M4.jar)
===================================================================
(Binary files differ)
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/services/jbrules/lib/ext/drools-core-4.0.7.jar
===================================================================
(Binary files differ)
Copied: labs/jbossesb/workspace/mlittle/legstar/product/services/jbrules/lib/ext/drools-core-5.0.0.M4.jar (from rev 24846, labs/jbossesb/trunk/product/services/jbrules/lib/ext/drools-core-5.0.0.M4.jar)
===================================================================
(Binary files differ)
Copied: labs/jbossesb/workspace/mlittle/legstar/product/services/jbrules/lib/ext/drools-dataloaders-jaxb-5.0.0.M4.jar (from rev 24846, labs/jbossesb/trunk/product/services/jbrules/lib/ext/drools-dataloaders-jaxb-5.0.0.M4.jar)
===================================================================
(Binary files differ)
Copied: labs/jbossesb/workspace/mlittle/legstar/product/services/jbrules/lib/ext/drools-dataloaders-smooks-5.0.0.M4.jar (from rev 24846, labs/jbossesb/trunk/product/services/jbrules/lib/ext/drools-dataloaders-smooks-5.0.0.M4.jar)
===================================================================
(Binary files differ)
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/services/jbrules/lib/ext/drools-decisiontables-4.0.7.jar
===================================================================
(Binary files differ)
Copied: labs/jbossesb/workspace/mlittle/legstar/product/services/jbrules/lib/ext/drools-decisiontables-5.0.0.M4.jar (from rev 24846, labs/jbossesb/trunk/product/services/jbrules/lib/ext/drools-decisiontables-5.0.0.M4.jar)
===================================================================
(Binary files differ)
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/services/jbrules/lib/ext/drools-jsr94-4.0.7.jar
===================================================================
(Binary files differ)
Copied: labs/jbossesb/workspace/mlittle/legstar/product/services/jbrules/lib/ext/drools-jsr94-5.0.0.M4.jar (from rev 24846, labs/jbossesb/trunk/product/services/jbrules/lib/ext/drools-jsr94-5.0.0.M4.jar)
===================================================================
(Binary files differ)
Copied: labs/jbossesb/workspace/mlittle/legstar/product/services/jbrules/lib/ext/drools-process-enterprise-5.0.0.M4.jar (from rev 24846, labs/jbossesb/trunk/product/services/jbrules/lib/ext/drools-process-enterprise-5.0.0.M4.jar)
===================================================================
(Binary files differ)
Copied: labs/jbossesb/workspace/mlittle/legstar/product/services/jbrules/lib/ext/drools-process-task-5.0.0.M4.jar (from rev 24846, labs/jbossesb/trunk/product/services/jbrules/lib/ext/drools-process-task-5.0.0.M4.jar)
===================================================================
(Binary files differ)
Copied: labs/jbossesb/workspace/mlittle/legstar/product/services/jbrules/lib/ext/drools-templates-5.0.0.M4.jar (from rev 24846, labs/jbossesb/trunk/product/services/jbrules/lib/ext/drools-templates-5.0.0.M4.jar)
===================================================================
(Binary files differ)
Copied: labs/jbossesb/workspace/mlittle/legstar/product/services/jbrules/lib/ext/drools-verifier-5.0.0.M4.jar (from rev 24846, labs/jbossesb/trunk/product/services/jbrules/lib/ext/drools-verifier-5.0.0.M4.jar)
===================================================================
(Binary files differ)
Copied: labs/jbossesb/workspace/mlittle/legstar/product/services/jbrules/lib/ext/drools-workitems-5.0.0.M4.jar (from rev 24846, labs/jbossesb/trunk/product/services/jbrules/lib/ext/drools-workitems-5.0.0.M4.jar)
===================================================================
(Binary files differ)
Copied: labs/jbossesb/workspace/mlittle/legstar/product/services/jbrules/lib/ext/mvel2-2.0.4.jar (from rev 24846, labs/jbossesb/trunk/product/services/jbrules/lib/ext/mvel2-2.0.4.jar)
===================================================================
(Binary files differ)
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/services/jbrules/lib/ext/stax-api-1.0.1.jar
===================================================================
(Binary files differ)
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/services/jbrules/lib/ext/xstream-1.2.2.jar
===================================================================
(Binary files differ)
Modified: labs/jbossesb/workspace/mlittle/legstar/product/services/jbrules/src/main/java/org/jboss/internal/soa/esb/services/routing/cbr/DslHelper.java
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/services/jbrules/src/main/java/org/jboss/internal/soa/esb/services/routing/cbr/DslHelper.java 2009-01-21 14:47:17 UTC (rev 24849)
+++ labs/jbossesb/workspace/mlittle/legstar/product/services/jbrules/src/main/java/org/jboss/internal/soa/esb/services/routing/cbr/DslHelper.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -23,10 +23,8 @@
import java.io.ByteArrayInputStream;
import java.io.StringReader;
-import java.util.Collections;
import java.util.HashMap;
import java.util.Map;
-import java.util.WeakHashMap;
import java.util.Map.Entry;
import javax.xml.xpath.XPath;
@@ -36,6 +34,7 @@
import org.apache.log4j.Logger;
import org.jboss.internal.soa.esb.assertion.AssertArgument;
+import org.jboss.internal.soa.esb.services.rules.util.RulesContext;
import org.jboss.soa.esb.helpers.ConfigTree;
import org.jboss.soa.esb.listeners.message.MessageDeliverException;
import org.jboss.soa.esb.message.Message;
@@ -59,20 +58,34 @@
{
private static Logger log = Logger.getLogger(DslHelper.class);
+ /**
+ * The name of the boolean map context.
+ */
+ private static final String BOOLEAN_MAP = "DslHelper.BooleanMap" ;
+
+ /**
+ * The name of the number map.
+ */
+ private static final String NUMBER_MAP = "DslHelper.NumberMap" ;
+
+ /**
+ * The name of the string map.
+ */
+ private static final String STRING_MAP = "DslHelper.StringMap" ;
+
+ /**
+ * The name of the node map.
+ */
+ private static final String NODE_MAP = "DslHelper.NodeMap" ;
+
+ /**
+ * The name of the node list map.
+ */
+ private static final String NODE_LIST_MAP = "DslHelper.NodeListMap" ;
+
/** XPath instance */
private static XPathFactory xpf = XPathFactory.newInstance();
private static MessagePayloadProxy payloadProxy;
-
- /*
- * Maps that contain cached XPath results.
- * K = XPath expression String
- * V = {@link XPathCacheObject}
- */
- private static Map<String,XPathCacheObject<Boolean>> xpathBooleanResults = Collections.synchronizedMap( new WeakHashMap<String,XPathCacheObject<Boolean>>() );
- private static Map<String,XPathCacheObject<Number>> xpathNumberResults = Collections.synchronizedMap( new WeakHashMap<String,XPathCacheObject<Number>>() );
- private static Map<String,XPathCacheObject<String>> xpathStringResults = Collections.synchronizedMap( new WeakHashMap<String,XPathCacheObject<String>>() );
- private static Map<String,XPathCacheObject<Node>> xpathNodeResults = Collections.synchronizedMap( new WeakHashMap<String,XPathCacheObject<Node>>() );
- private static Map<String,XPathCacheObject<NodeList>> xpathNodeListResults = Collections.synchronizedMap( new WeakHashMap<String,XPathCacheObject<NodeList>>() );
static {
payloadProxy = new MessagePayloadProxy(new ConfigTree("config"), new String[] {BytesBody.BYTES_LOCATION}, new String[] {BytesBody.BYTES_LOCATION});
@@ -112,16 +125,27 @@
*/
public static Boolean selectAsBoolean(final Message message, final String xpathExp, final Map<String,String> namespaces ) throws XPathExpressionException
{
- XPathCacheObject<Boolean> cachedObject = xpathBooleanResults.get( xpathExp );
- if ( cacheHit( cachedObject, message ) )
- return cachedObject.getResult();
+ Map<String, Boolean> booleanMap = (Map<String, Boolean>)RulesContext.getContext(BOOLEAN_MAP) ;
+ if (booleanMap != null)
+ {
+ final Boolean result = booleanMap.get(xpathExp) ;
+ if (result != null)
+ {
+ return result ;
+ }
+ }
+ else
+ {
+ booleanMap = new HashMap<String, Boolean>() ;
+ RulesContext.setContext(BOOLEAN_MAP, booleanMap) ;
+ }
XPath xpath = getXPath( namespaces );
Boolean value = (Boolean) xpath.evaluate( xpathExp, getInputSource(message), XPathConstants.BOOLEAN);
- xpathBooleanResults.put( xpathExp, new XPathCacheObject<Boolean>( message.hashCode(), value ) );
+ booleanMap.put(xpathExp, value) ;
return value;
}
-
+
/**
* Uses XPath to select the Number matched by the XPath expression.
* <p/>
@@ -157,13 +181,24 @@
*/
public static Number selectAsNumber(final Message message, final String xpathExp, final Map<String,String> namespaces ) throws XPathExpressionException
{
- final XPathCacheObject<Number> cachedObject = xpathNumberResults.get( xpathExp );
- if ( cacheHit( cachedObject, message ) )
- return cachedObject.getResult();
+ Map<String, Number> numberMap = (Map<String, Number>)RulesContext.getContext(NUMBER_MAP) ;
+ if (numberMap != null)
+ {
+ final Number result = numberMap.get(xpathExp) ;
+ if (result != null)
+ {
+ return result ;
+ }
+ }
+ else
+ {
+ numberMap = new HashMap<String, Number>() ;
+ RulesContext.setContext(NUMBER_MAP, numberMap) ;
+ }
final XPath xpath = getXPath( namespaces );
final Number number = (Number) xpath.evaluate( xpathExp, getInputSource(message), XPathConstants.NUMBER);
- xpathNumberResults.put( xpathExp, new XPathCacheObject<Number>( message.hashCode(), number ) );
+ numberMap.put(xpathExp, number) ;
return number;
}
@@ -202,13 +237,23 @@
*/
public static String selectAsString(final Message message, final String xpathExp, final Map<String,String> namespaces ) throws XPathExpressionException
{
- final XPathCacheObject<String> cachedObject = xpathStringResults.get( xpathExp );
- if ( cacheHit( cachedObject, message ) )
- return cachedObject.getResult();
-
+ Map<String, String> stringMap = (Map<String, String>)RulesContext.getContext(STRING_MAP) ;
+ if (stringMap != null)
+ {
+ final String result = stringMap.get(xpathExp) ;
+ if (result != null)
+ {
+ return result ;
+ }
+ }
+ else
+ {
+ stringMap = new HashMap<String, String>() ;
+ RulesContext.setContext(STRING_MAP, stringMap) ;
+ }
final XPath xpath = getXPath( namespaces );
final String string = (String) xpath.evaluate( xpathExp, getInputSource(message), XPathConstants.STRING);
- xpathStringResults.put( xpathExp, new XPathCacheObject<String>( message.hashCode(), string ) );
+ stringMap.put(xpathExp, string) ;
return string;
}
@@ -249,13 +294,23 @@
*/
public static Node selectAsNode(final Message message, final String xpathExp, final Map<String,String> namespaces ) throws XPathExpressionException
{
- final XPathCacheObject<Node> cachedObject = xpathNodeResults.get( xpathExp );
- if ( cacheHit( cachedObject, message ) )
- return cachedObject.getResult();
-
+ Map<String, Node> nodeMap = (Map<String, Node>)RulesContext.getContext(NODE_MAP) ;
+ if (nodeMap != null)
+ {
+ final Node result = nodeMap.get(xpathExp) ;
+ if (result != null)
+ {
+ return result ;
+ }
+ }
+ else
+ {
+ nodeMap = new HashMap<String, Node>() ;
+ RulesContext.setContext(NODE_MAP, nodeMap) ;
+ }
final XPath xpath = getXPath( namespaces );
final Node node = (Node) xpath.evaluate( xpathExp, getInputSource(message), XPathConstants.NODE);
- xpathNodeResults.put( xpathExp, new XPathCacheObject<Node>( message.hashCode(), node ) );
+ nodeMap.put(xpathExp, node) ;
return node;
}
@@ -295,14 +350,24 @@
*/
public static NodeList selectAsNodeList( final Message message, final String xpathExp, Map<String,String> namespaces ) throws XPathExpressionException
{
- final XPathCacheObject<NodeList> cachedObject = xpathNodeListResults.get( xpathExp );
- if ( cacheHit( cachedObject, message ) )
- return cachedObject.getResult();
-
+ Map<String, NodeList> nodeListMap = (Map<String, NodeList>)RulesContext.getContext(NODE_LIST_MAP) ;
+ if (nodeListMap != null)
+ {
+ final NodeList result = nodeListMap.get(xpathExp) ;
+ if (result != null)
+ {
+ return result ;
+ }
+ }
+ else
+ {
+ nodeListMap = new HashMap<String, NodeList>() ;
+ RulesContext.setContext(NODE_LIST_MAP, nodeListMap) ;
+ }
final XPath xpath = getXPath( namespaces );
final NodeList nodeList = (NodeList) xpath.evaluate(xpathExp, getInputSource(message), XPathConstants.NODESET);
log.info("XPath [" + xpathExp + "], nr of matches : " + nodeList.getLength());
- xpathNodeListResults.put( xpathExp, new XPathCacheObject<NodeList>( message.hashCode(), nodeList ) );
+ nodeListMap.put(xpathExp, nodeList) ;
return nodeList;
}
@@ -551,15 +616,6 @@
}
return namespacesMap;
}
-
- /*
- * Checks if the cachedObject was non-null, and if so, checks the message hashCode against
- * the cachedObjects messageHashCode.
- */
- private static <T> boolean cacheHit ( final XPathCacheObject<T> cachedObject, final Message message )
- {
- return cachedObject != null && cachedObject.getMessageHashCode() == message.hashCode();
- }
private static double parseDouble( final String string ) throws XPathExpressionException
{
@@ -619,54 +675,4 @@
setNamespaces( xpath, namespaces );
return xpath;
}
-
- /**
- * XPathCacheObject holds results from XPath evaluations and message object instance hashcodes.
- * </p>
- * The intent of this class is for it to be used as the value in a Map:
- * <pre>
- * {@code
- * Map<String,XPathCacheObject> xpathResults = new WeakHashMap<String,XPathCacheObject>() );
- * }</pre><br><br>
- * The key would be a String representing the XPath expression which was used to evaluate the result from
- * the Message Object instance represented by the messageHashCode.
- *
- */
- private static class XPathCacheObject<T>
- {
- /*
- * The hashCode of the Message object used in the XPath evaluation
- */
- private final int messageHashCode;
- /*
- * The result from the XPath evalutaion
- */
- private final T result;
-
- /**
- * Sole constructor.
- *
- * @param messageHashCode -
- * The hashCode of the Message object used in the XPath evaluation
- * @param result -
- * The result from the XPath evalutaion
- */
- public XPathCacheObject( final int messageHashCode, final T result )
- {
- this.messageHashCode = messageHashCode;
- this.result = result;
- }
-
- public int getMessageHashCode()
- {
- return messageHashCode;
- }
-
- public T getResult()
- {
- return result;
- }
- }
-
}
-
Modified: labs/jbossesb/workspace/mlittle/legstar/product/services/jbrules/src/main/java/org/jboss/internal/soa/esb/services/rules/DroolsRuleService.java
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/services/jbrules/src/main/java/org/jboss/internal/soa/esb/services/rules/DroolsRuleService.java 2009-01-21 14:47:17 UTC (rev 24849)
+++ labs/jbossesb/workspace/mlittle/legstar/product/services/jbrules/src/main/java/org/jboss/internal/soa/esb/services/rules/DroolsRuleService.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -36,7 +36,7 @@
import org.drools.agent.RuleAgent;
import org.drools.compiler.DroolsParserException;
import org.jboss.internal.soa.esb.assertion.AssertArgument;
-import org.jboss.internal.soa.esb.services.routing.cbr.JBRulesCounter;
+import org.jboss.internal.soa.esb.services.rules.util.RulesContext;
import org.jboss.soa.esb.helpers.ConfigTree;
import org.jboss.soa.esb.lifecycle.LifecyclePriorities;
import org.jboss.soa.esb.lifecycle.LifecycleResource;
@@ -82,11 +82,6 @@
lifecycleRuleSetFactory, LifecyclePriorities.RULE_BASE_PRIORITY);
/**
- * See {@link JBRulesCounter}
- */
- private JBRulesCounter rulesCounter = null;
-
- /**
* Execute rules using a certain ruleSet and domain specific language using
* the Stateless rule engine API
*
@@ -118,21 +113,8 @@
{
AssertArgument.isNotNullAndNotEmpty( ruleSet, "ruleSet" );
- final long startTime = System.nanoTime();
-
- try
- {
- RuleBase ruleBase = getRuleBaseForFileBasedRules(ruleSet, dsl, ruleReload);
- message = executeStatelessRules(ruleBase, message, globals, objectList);
-
- updateJBRulesCounter( startTime, ruleSet, JBRulesCounter.RULES_SUCCEED );
- }
- catch (RuleServiceException e)
- {
- updateJBRulesCounter( startTime, ruleSet, JBRulesCounter.RULES_FAILED );
- throw e;
- }
- return message;
+ RuleBase ruleBase = getRuleBaseForFileBasedRules(ruleSet, dsl, ruleReload);
+ return executeStatelessRules(ruleBase, message, globals, objectList);
}
/**
@@ -161,21 +143,8 @@
{
AssertArgument.isNotNullAndNotEmpty( decisionTable, "decisionTable" );
- final long startTime = System.nanoTime();
-
- try
- {
- RuleBase ruleBase = getRuleBaseForDecisionTable( decisionTable, ruleReload );
- message = executeStatelessRules( ruleBase, message, globals, objectList );
-
- updateJBRulesCounter( startTime, decisionTable, JBRulesCounter.RULES_SUCCEED );
- }
- catch (RuleServiceException e)
- {
- updateJBRulesCounter( startTime, decisionTable, JBRulesCounter.RULES_FAILED );
- throw e;
- }
- return message;
+ RuleBase ruleBase = getRuleBaseForDecisionTable( decisionTable, ruleReload );
+ return executeStatelessRules( ruleBase, message, globals, objectList );
}
/**
@@ -201,29 +170,23 @@
{
AssertArgument.isNotNullAndNotEmpty( ruleAgentProperties, "ruleAgentProperties" );
- final long startTime = System.nanoTime();
try
{
final RuleBase ruleBase = getRuleBaseForRuleAgent( ruleAgentProperties ) ;
- message = executeStatelessRules(ruleBase, message, globals, objectList);
- updateJBRulesCounter( startTime, ruleAgentProperties, JBRulesCounter.RULES_SUCCEED );
+ return executeStatelessRules(ruleBase, message, globals, objectList);
}
catch ( final IOException e)
{
- updateJBRulesCounter( startTime, ruleAgentProperties, JBRulesCounter.RULES_FAILED );
throw new RuleServiceException( "Could not read the ruleAgentProperties file [" + ruleAgentProperties + "]", e);
}
catch ( final RuleServiceException e)
{
- updateJBRulesCounter( startTime, ruleAgentProperties, JBRulesCounter.RULES_FAILED );
throw e;
}
catch ( final Exception e)
{
- updateJBRulesCounter( startTime, ruleAgentProperties, JBRulesCounter.RULES_FAILED );
throw new RuleServiceException( "RuleAgent could not get the RuleBase. " + e.getMessage(), e);
}
- return message;
}
/**
@@ -256,21 +219,8 @@
{
AssertArgument.isNotNullAndNotEmpty( ruleSet, "ruleSet" );
- final long startTime = System.nanoTime();
-
- try
- {
- RuleBase ruleBase = getRuleBaseForFileBasedRules( ruleSet, dsl, ruleReload );
- message = executeStatefulRules( ruleBase, false, message, globals, objectList );
-
- updateJBRulesCounter( startTime, ruleSet, JBRulesCounter.RULES_SUCCEED);
- }
- catch (final RuleServiceException e)
- {
- updateJBRulesCounter( startTime, ruleSet, JBRulesCounter.RULES_FAILED );
- throw e;
- }
- return message;
+ RuleBase ruleBase = getRuleBaseForFileBasedRules( ruleSet, dsl, ruleReload );
+ return executeStatefulRules( ruleBase, false, message, globals, objectList );
}
/**
@@ -299,22 +249,9 @@
{
AssertArgument.isNotNullAndNotEmpty( decisionTable, "decisionTable" );
- final long startTime = System.nanoTime();
-
- try
- {
- final RuleBase ruleBase = getRuleBaseForDecisionTable(decisionTable, ruleReload);
-
- message = executeStatefulRules(ruleBase, false, message, globals, objectList);
-
- updateJBRulesCounter( startTime, decisionTable, JBRulesCounter.RULES_SUCCEED );
- }
- catch (RuleServiceException e)
- {
- updateJBRulesCounter( startTime, decisionTable, JBRulesCounter.RULES_FAILED );
- throw e;
- }
- return message;
+ final RuleBase ruleBase = getRuleBaseForDecisionTable(decisionTable, ruleReload);
+
+ return executeStatefulRules(ruleBase, false, message, globals, objectList);
}
/**
@@ -340,31 +277,24 @@
{
AssertArgument.isNotNullAndNotEmpty( ruleAgentProperties, "ruleAgentProperties" );
- final long startTime = System.nanoTime();
try
{
final RuleBase ruleBase = getRuleBaseForRuleAgent( ruleAgentProperties ) ;
- message = executeStatefulRules(ruleBase, false, message, globals, objectList);
-
- updateJBRulesCounter( startTime, ruleAgentProperties, JBRulesCounter.RULES_SUCCEED );
+ return executeStatefulRules(ruleBase, false, message, globals, objectList);
}
catch (IOException e)
{
- updateJBRulesCounter( startTime, ruleAgentProperties, JBRulesCounter.RULES_FAILED );
throw new RuleServiceException( "Could not read the ruleAgentProperties. " + e.getMessage(), e);
}
catch (RuleServiceException e)
{
- updateJBRulesCounter( startTime, ruleAgentProperties, JBRulesCounter.RULES_FAILED );
throw e;
}
catch (Exception e)
{
- updateJBRulesCounter( startTime, ruleAgentProperties, JBRulesCounter.RULES_FAILED );
throw new RuleServiceException( "RuleAgent could not get the RuleBase. " + e.getMessage(), e);
}
- return message;
}
/**
@@ -393,42 +323,23 @@
{
AssertArgument.isNotNullAndNotEmpty( rules, "rules" );
- final long startTime = System.nanoTime();
-
try
{
final Map<String, RuleBase> ruleBases = lifecycleRuleBases.getLifecycleResource();
final RuleBase ruleBase = ruleBases.get( rules );
- message = executeStatefulRules( ruleBase, dispose, message, globals, objectList );
-
- updateJBRulesCounter( startTime, rules, JBRulesCounter.RULES_SUCCEED );
+ return executeStatefulRules( ruleBase, dispose, message, globals, objectList );
}
catch (Exception e)
{
- updateJBRulesCounter( startTime, rules, JBRulesCounter.RULES_FAILED );
throw new RuleServiceException( "Could not continue rule execution. " + e.getMessage(), e);
}
- return message;
}
public void setConfigTree( final ConfigTree configTree )
{
- rulesCounter = new JBRulesCounter( configTree );
- rulesCounter.registerMBean();
}
- // private methods
-
- private void updateJBRulesCounter( final long startTime , final String rules, final String result )
- {
- if (rulesCounter != null)
- {
- long procTime = System.nanoTime() - startTime;
- rulesCounter.update(procTime, rules, result );
- }
- }
-
// package protected methods
/**
@@ -450,8 +361,6 @@
final String dsl,
final boolean ruleReload) throws RuleServiceException
{
- final long startTime = System.nanoTime();
-
try
{
final DroolsRuleBaseHelper rbHelper = DroolsRuleBaseHelper.getInstance();
@@ -489,24 +398,16 @@
}
catch (final LifecycleResourceException e)
{
- updateJBRulesCounter( startTime, ruleSet, JBRulesCounter.RULES_FAILED );
throw new RuleServiceException("Could not load lifecycle data. " + e.getMessage(), e);
}
catch (final IOException e)
{
- updateJBRulesCounter( startTime, ruleSet, JBRulesCounter.RULES_FAILED );
throw new RuleServiceException("Could not read the rules. " + e.getMessage(), e);
}
catch (final DroolsParserException e)
{
- updateJBRulesCounter( startTime, ruleSet, JBRulesCounter.RULES_FAILED );
throw new RuleServiceException("Could not parse the rules. " + e.getMessage(), e);
}
- catch (final RuleServiceException e)
- {
- updateJBRulesCounter( startTime, ruleSet, JBRulesCounter.RULES_FAILED );
- throw e;
- }
}
/**
@@ -541,22 +442,14 @@
}
catch (final IOException e)
{
- updateJBRulesCounter( startTime, decisionTable, JBRulesCounter.RULES_FAILED );
throw new RuleServiceException("Could not read the rules from [" + decisionTable + "]", e);
}
catch (final DroolsParserException e)
{
- updateJBRulesCounter( startTime, decisionTable, JBRulesCounter.RULES_FAILED );
throw new RuleServiceException("Could not parse the rules in [" + decisionTable + "]", e);
}
- catch (final RuleServiceException e)
- {
- updateJBRulesCounter( startTime, decisionTable, JBRulesCounter.RULES_FAILED );
- throw e;
- }
catch (final LifecycleResourceException e)
{
- updateJBRulesCounter( startTime, decisionTable, JBRulesCounter.RULES_FAILED );
throw new RuleServiceException("Caught a LifecycleResourceException :", e);
}
}
@@ -585,9 +478,17 @@
{
final StatelessSession statelessSession = ruleBase.newStatelessSession();
- final List<Object> facts = getFacts( message, objectList );
- addGlobalsVariables( statelessSession, globals );
- statelessSession.execute(facts);
+ RulesContext.clearContext() ;
+ try
+ {
+ final List<Object> facts = getFacts( message, objectList );
+ addGlobalsVariables( statelessSession, globals );
+ statelessSession.execute(facts);
+ }
+ finally
+ {
+ RulesContext.clearContext() ;
+ }
return message;
}
@@ -617,6 +518,7 @@
final List<Object> objectList)
{
synchronized (ruleBase) {
+ RulesContext.clearContext() ;
final StatefulSession statefulSession = getStatefulSession( ruleBase );
try
{
@@ -627,6 +529,7 @@
}
finally
{
+ RulesContext.clearContext() ;
if ( dispose )
{
statefulSession.dispose();
Copied: labs/jbossesb/workspace/mlittle/legstar/product/services/jbrules/src/main/java/org/jboss/internal/soa/esb/services/rules/util (from rev 24846, labs/jbossesb/trunk/product/services/jbrules/src/main/java/org/jboss/internal/soa/esb/services/rules/util)
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/services/jbrules/src/main/java/org/jboss/internal/soa/esb/services/rules/util/RulesContext.java
===================================================================
--- labs/jbossesb/trunk/product/services/jbrules/src/main/java/org/jboss/internal/soa/esb/services/rules/util/RulesContext.java 2009-01-21 09:35:03 UTC (rev 24846)
+++ labs/jbossesb/workspace/mlittle/legstar/product/services/jbrules/src/main/java/org/jboss/internal/soa/esb/services/rules/util/RulesContext.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -1,94 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2006, JBoss Inc., and individual contributors as indicated
- * by the @authors tag. See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
-package org.jboss.internal.soa.esb.services.rules.util;
-
-import java.util.HashMap;
-import java.util.Map;
-
-
-/**
- * Class providing access to a rules context for an execution.
- */
-public class RulesContext
-{
- /**
- * The rules context passed via
- */
- private static final ThreadLocal<Map<String, Object>> CONTEXT = new ThreadLocal<Map<String,Object>>() ;
-
- /**
- * Clear the context associated with the current thread.
- */
- public static void clearContext()
- {
- CONTEXT.set(null) ;
- }
-
- /**
- * Get the rules context value with the specified name.
- * @param name The name of the context value.
- * @return The context value or null if not set.
- */
- public static Object getContext(final String name)
- {
- final Map<String, Object> context = CONTEXT.get() ;
- return (context != null) ? context.get(name) : null ;
- }
-
- /**
- * Set the context value.
- * @param name The name of the context value.
- * @param value The associated value or null to remove.
- */
- public static void setContext(final String name, final Object value)
- {
- final Map<String, Object> context = CONTEXT.get() ;
- if (context != null)
- {
- initialiseContext(context, name, value) ;
- }
- else
- {
- final Map<String, Object> newContext = new HashMap<String, Object>() ;
- CONTEXT.set(newContext) ;
- initialiseContext(newContext, name, value) ;
- }
- }
-
- /**
- * Initialise the context value.
- * @param context The current context.
- * @param name The name of the context value.
- * @param value The value of the context or null if it is to be removed.
- */
- private static void initialiseContext(final Map<String, Object> context, final String name, final Object value)
- {
- if (value == null)
- {
- context.remove(name) ;
- }
- else
- {
- context.put(name, value) ;
- }
- }
-}
Copied: labs/jbossesb/workspace/mlittle/legstar/product/services/jbrules/src/main/java/org/jboss/internal/soa/esb/services/rules/util/RulesContext.java (from rev 24846, labs/jbossesb/trunk/product/services/jbrules/src/main/java/org/jboss/internal/soa/esb/services/rules/util/RulesContext.java)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/services/jbrules/src/main/java/org/jboss/internal/soa/esb/services/rules/util/RulesContext.java (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/services/jbrules/src/main/java/org/jboss/internal/soa/esb/services/rules/util/RulesContext.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -0,0 +1,94 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.internal.soa.esb.services.rules.util;
+
+import java.util.HashMap;
+import java.util.Map;
+
+
+/**
+ * Class providing access to a rules context for an execution.
+ */
+public class RulesContext
+{
+ /**
+ * The rules context passed via
+ */
+ private static final ThreadLocal<Map<String, Object>> CONTEXT = new ThreadLocal<Map<String,Object>>() ;
+
+ /**
+ * Clear the context associated with the current thread.
+ */
+ public static void clearContext()
+ {
+ CONTEXT.set(null) ;
+ }
+
+ /**
+ * Get the rules context value with the specified name.
+ * @param name The name of the context value.
+ * @return The context value or null if not set.
+ */
+ public static Object getContext(final String name)
+ {
+ final Map<String, Object> context = CONTEXT.get() ;
+ return (context != null) ? context.get(name) : null ;
+ }
+
+ /**
+ * Set the context value.
+ * @param name The name of the context value.
+ * @param value The associated value or null to remove.
+ */
+ public static void setContext(final String name, final Object value)
+ {
+ final Map<String, Object> context = CONTEXT.get() ;
+ if (context != null)
+ {
+ initialiseContext(context, name, value) ;
+ }
+ else
+ {
+ final Map<String, Object> newContext = new HashMap<String, Object>() ;
+ CONTEXT.set(newContext) ;
+ initialiseContext(newContext, name, value) ;
+ }
+ }
+
+ /**
+ * Initialise the context value.
+ * @param context The current context.
+ * @param name The name of the context value.
+ * @param value The value of the context or null if it is to be removed.
+ */
+ private static void initialiseContext(final Map<String, Object> context, final String name, final Object value)
+ {
+ if (value == null)
+ {
+ context.remove(name) ;
+ }
+ else
+ {
+ context.put(name, value) ;
+ }
+ }
+}
Modified: labs/jbossesb/workspace/mlittle/legstar/product/services/jbrules/src/test/java/org/jboss/internal/soa/esb/services/routing/cbr/DslHelperUnitTest.java
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/services/jbrules/src/test/java/org/jboss/internal/soa/esb/services/routing/cbr/DslHelperUnitTest.java 2009-01-21 14:47:17 UTC (rev 24849)
+++ labs/jbossesb/workspace/mlittle/legstar/product/services/jbrules/src/test/java/org/jboss/internal/soa/esb/services/routing/cbr/DslHelperUnitTest.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -37,10 +37,13 @@
import junit.framework.JUnit4TestAdapter;
import org.apache.log4j.Logger;
+import org.jboss.internal.soa.esb.services.rules.util.RulesContext;
import org.jboss.internal.soa.esb.util.StreamUtils;
import org.jboss.soa.esb.message.Message;
import org.jboss.soa.esb.message.format.MessageFactory;
import org.jboss.soa.esb.util.ClassUtil;
+import org.junit.After;
+import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Test;
@@ -218,7 +221,7 @@
}
long endTime = TimeUnit.NANOSECONDS.toMillis( System.nanoTime() - startTime );
log.info( "Timed " + nrOfCalls + " runs : " + endTime + "ms" );
- assertTrue( nrOfCalls + " of calls should have taken less then 150ms", endTime < 150 );
+ assertTrue( nrOfCalls + " of calls should have taken less then 150ms, took " + endTime, endTime < 150 );
}
@Test
@@ -237,6 +240,13 @@
DslHelper.parseNamespaces( null );
}
+ @Before
+ @After
+ public void clearContext()
+ {
+ RulesContext.clearContext() ;
+ }
+
@BeforeClass
public static void createMessage() throws UnsupportedEncodingException
{
Modified: labs/jbossesb/workspace/mlittle/legstar/product/services/slsb/build.xml
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/services/slsb/build.xml 2009-01-21 14:47:17 UTC (rev 24849)
+++ labs/jbossesb/workspace/mlittle/legstar/product/services/slsb/build.xml 2009-01-21 15:38:08 UTC (rev 24850)
@@ -4,6 +4,7 @@
<!-- Import the base Ant build script... -->
<import file="${services.base.build}"/>
- <target name="test"/>
+ <target name="test" depends="base.test"/>
-</project>
\ No newline at end of file
+
+</project>
Modified: labs/jbossesb/workspace/mlittle/legstar/product/services/slsb/src/main/java/org/jboss/soa/esb/actions/EJBProcessor.java
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/services/slsb/src/main/java/org/jboss/soa/esb/actions/EJBProcessor.java 2009-01-21 14:47:17 UTC (rev 24849)
+++ labs/jbossesb/workspace/mlittle/legstar/product/services/slsb/src/main/java/org/jboss/soa/esb/actions/EJBProcessor.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -26,31 +26,77 @@
package org.jboss.soa.esb.actions;
+import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Properties;
+import java.util.Set;
+import java.util.Map.Entry;
import javax.ejb.EJBHome;
import javax.ejb.EJBMetaData;
import javax.ejb.EJBObject;
import javax.naming.Context;
import javax.naming.InitialContext;
+import javax.naming.NamingException;
import javax.rmi.PortableRemoteObject;
import org.apache.log4j.Logger;
import org.jboss.soa.esb.ConfigurationException;
-import org.jboss.soa.esb.actions.AbstractActionLifecycle;
-import org.jboss.soa.esb.actions.ActionLifecycleException;
-import org.jboss.soa.esb.actions.ActionProcessingException;
import org.jboss.soa.esb.helpers.ConfigTree;
import org.jboss.soa.esb.message.Message;
+import org.jboss.soa.esb.util.ClassUtil;
+/**
+ * EJBProcessor is an action that can call stateless session beans
+ * deployed in an application server.
+ * <p/>
+ * This implementation currently supports EJB2.x and EJB3.x session beans.
+ *
+ * Example EJB 2.x configuration:
+ * <pre>{@code
+ * <action name="EJBTest" class="org.jboss.soa.esb.actions.EJBProcessor">
+ * <property name="ejb-name" value="MyBean" />
+ * <property name="jndi-name" value="ejb/MyBean" />
+ * <property name="initial-context-factory" value="org.jnp.interfaces.NamingContextFactory" />
+ * <property name="provider-url" value="localhost:1099" />
+ * <property name="method" value="login" />
+ *
+ * <!-- Optional output location, defaults to "DEFAULT_EJB_OUT"
+ * <property name="esb-out-var" value="MY_OUT_LOCATION"/> -->
+ * <property name="ejb-params">
+ * <!-- arguments of the operation and where to find them in the message -->
+ * <arg0 type="java.lang.String">username</arg0>
+ * <arg1 type="java.lang.String">password</arg1>
+ * </property>
+ * </action>
+ * }</pre>
+ *
+ * Example EJB 3.x configuration:
+ * <pre>{@code
+ * <action name="EJBTest" class="org.jboss.soa.esb.actions.EJBProcessor">
+ * <property name="ejb3" value="true" />
+ * <property name="jndi-name" value="ejb/MyBean" />
+ * <property name="initial-context-factory" value="org.jnp.interfaces.NamingContextFactory" />
+ * <property name="provider-url" value="localhost:1099" />
+ * <property name="method" value="login" />
+ *
+ * <!-- Optional output location, defaults to "DEFAULT_EJB_OUT"
+ * <property name="esb-out-var" value="MY_OUT_LOCATION"/> -->
+ * <property name="ejb-params">
+ * <!-- arguments of the operation and where to find them in the message -->
+ * <arg0 type="java.lang.String">username</arg0>
+ * <arg1 type="java.lang.String">password</arg1>
+ * </property>
+ * </action>
+ * }</pre>
+ *
+ */
public class EJBProcessor extends AbstractActionLifecycle
{
-
private static final Logger log = Logger.getLogger(EJBProcessor.class);
public static final String EJB_NAME = "ejb-name";
@@ -68,6 +114,8 @@
public static final String OUT_VAR = "esb-out-var";
public static final String DEFAULT_OUT = "DEFAULT_EJB_OUT";
+
+ public static final String EJB3_ATTRIBUTE = "ejb3";
public static final int ARG_PREFIX_LENGTH = 3;
@@ -81,14 +129,18 @@
private EJBHome ejbHome;
private EJBObject ejbObject;
+
+ private Object ejb3Interface;
+
+ private boolean ejb3;
+
public EJBProcessor(ConfigTree config)
{
configTree = config;
}
- public Message process (Message msg) throws ActionProcessingException,
- ConfigurationException
+ public Message process (Message msg) throws ActionProcessingException, ConfigurationException
{
try
{
@@ -98,14 +150,27 @@
{
// get the parameter from the esb message and
// cast it to the in the jboss-esb.xml specified type
- param[i] = Class.forName(ejbParams.get(i).getType()).cast(
+ param[i] = ClassUtil.forName(ejbParams.get(i).getType(), getClass()).cast(
msg.getBody().get(ejbParams.get(i).getLoc()));
}
+ Object ret;
+ if ( ejb3 )
+ {
+ // invoke EJB3.x
+ ret = invoke(ejb3Interface.getClass(), ejb3Interface, ejbRef.get(EJB_METHOD), param);
+ }
+ else
+ {
+ // invoke EJB2.x
+ ret = invoke( ejbHome.getEJBMetaData().getRemoteInterfaceClass(), ejbObject, ejbRef.get(EJB_METHOD), param);
+ }
+
+ // add return object to messages output location
+ if ( ret != null )
+ {
+ msg.getBody().add( ejbRef.get(OUT_VAR), ret);
+ }
- msg.getBody().add(
- ejbRef.get(OUT_VAR),
- this.invoke(ejbHome.getEJBMetaData().getRemoteInterfaceClass(), ejbObject, ejbRef.get(EJB_METHOD),
- param));
log.debug("###########################################");
log.debug(msg);
log.debug("###########################################");
@@ -113,9 +178,7 @@
}
catch (Exception e)
{
- throw new ActionProcessingException(
- "Got an error while processing EJB " + ejbRef.get(EJB_NAME),
- new Throwable(e.getCause()));
+ throw new ActionProcessingException( "Got an error while processing EJB method [" + ejbRef.get(EJB_METHOD) + "]", e);
}
return msg;
@@ -132,14 +195,18 @@
ejbRef = new HashMap<String, String>();
ejbParams = new HashMap<Integer, Argument>();
ejbParamTypeNames = new ArrayList<String>();
+
+ ejb3 = Boolean.parseBoolean(configTree.getAttribute(EJB3_ATTRIBUTE, "false"));
- // Get the configuration from jboss-esb.xml
- ejbRef.put(EJB_NAME, configTree.getAttribute(EJB_NAME));
+ // get properties common to both EJB2.x and EJB3.x
ejbRef.put(JNDI_NAME, configTree.getAttribute(JNDI_NAME));
ejbRef.put(EJB_METHOD, configTree.getAttribute(EJB_METHOD));
ejbRef.put(INICTXFACTORY, configTree.getAttribute(INICTXFACTORY));
ejbRef.put(PROVIDERURL, configTree.getAttribute(PROVIDERURL));
+ if ( !ejb3 )
+ ejbRef.put(EJB_NAME, configTree.getAttribute(EJB_NAME));
+
if (configTree.getAttribute(OUT_VAR) != null)
{
ejbRef.put(OUT_VAR, configTree.getAttribute(OUT_VAR));
@@ -158,8 +225,7 @@
String jType;
String esbLocation;
- argNum = Integer.parseInt(child.getName().substring(
- ARG_PREFIX_LENGTH));
+ argNum = Integer.parseInt(child.getName().substring(ARG_PREFIX_LENGTH));
jType = child.getAttribute(JAVA_TYPE);
esbLocation = child.getWholeText();
ejbParams.put(argNum, new Argument(jType, esbLocation));
@@ -167,54 +233,81 @@
}
// Check for missing configuration values
- for (String conf : ejbRef.values())
- {
- if (conf == null)
- {
- throw new ActionLifecycleException(
- "Error configuring EJBProcessor");
- }
- }
-
+ Set<Entry<String, String>> entrySet = ejbRef.entrySet();
+ for (Entry<String, String> entry : entrySet)
+ {
+ if ( entry.getValue() == null )
+ {
+ throw new ActionLifecycleException( "Error configuring EJBProcessor.[" + entry.getKey() + "] must not be null");
+ }
+ }
+
// Build Properties for InitialContext lookup
Properties props = new Properties();
props.put(Context.INITIAL_CONTEXT_FACTORY, ejbRef.get(INICTXFACTORY));
props.put(Context.PROVIDER_URL, ejbRef.get(PROVIDERURL));
-
- try
+
+ InitialContext initCtx = getInitialContext(props);
+
+ if ( ejb3 )
{
- // Get the InitialContext
- InitialContext iniCtx = new InitialContext(props);
+ ejb3Interface = getEjb3FromJndi(initCtx);
+ }
+ else
+ {
+ try
+ {
+ // Lookup and narrow
+ ejbHome = (EJBHome) PortableRemoteObject.narrow( (EJBHome) initCtx.lookup(ejbRef.get(JNDI_NAME)), EJBHome.class);
- // Lookup and narrow
- ejbHome = (EJBHome) PortableRemoteObject.narrow(
- (EJBHome) iniCtx.lookup(ejbRef.get(JNDI_NAME)),
- EJBHome.class);
+ // Get the EJB metadata
+ EJBMetaData metaData = ejbHome.getEJBMetaData();
+ Class homeClass = metaData.getHomeInterfaceClass();
- // Get the EJB metadata
- EJBMetaData metaData = ejbHome.getEJBMetaData();
- Class homeClass = metaData.getHomeInterfaceClass();
+ // convert handle to real home type
+ ejbHome = (EJBHome) javax.rmi.PortableRemoteObject.narrow(ejbHome, homeClass);
- // convert handle to real home type
- ejbHome = (EJBHome) javax.rmi.PortableRemoteObject.narrow(ejbHome,
- homeClass);
+ if (!(metaData.isSession() && metaData.isStatelessSession()))
+ {
+ throw new ActionLifecycleException("Only SLSBs are supported!");
+ }
- if (!(metaData.isSession() && metaData.isStatelessSession()))
+ ejbObject = (EJBObject) this.create(homeClass, ejbHome);
+ }
+ catch (Exception e)
{
- throw new ActionLifecycleException("Only SLSBs are supported!");
+ throw new ActionLifecycleException( "Got an error while processing EJB " + ejbRef.get(EJB_METHOD), e);
}
-
- ejbObject = (EJBObject) this.create(homeClass, ejbHome);
- }
- catch (Exception e)
- {
- throw new ActionLifecycleException(
- "Got an error while processing EJB " + ejbRef.get(EJB_NAME),
- new Throwable(e.getCause()));
- }
+ }
}
+ InitialContext getInitialContext(final Properties props) throws ActionLifecycleException
+ {
+ InitialContext context;
+ try
+ {
+ context = new InitialContext(props);
+ } catch (final NamingException e)
+ {
+ throw new ActionLifecycleException("Could not create a new InitialContext with properties : " + props, e);
+ }
+ return context;
+ }
+
+ Object getEjb3FromJndi(final Context context) throws ActionLifecycleException
+ {
+ Object ejb3Interface;
+ try
+ {
+ ejb3Interface = context.lookup(ejbRef.get(JNDI_NAME));
+ } catch (final NamingException e)
+ {
+ throw new ActionLifecycleException("Could not lookup " + ejbRef.get(JNDI_NAME), e);
+ }
+ return ejb3Interface;
+ }
+
private static Object create (Class c, Object obj) throws Exception
{
Object ret = null;
@@ -225,8 +318,7 @@
return ret;
}
- private Object invoke (Class c, Object obj, String mname, Object[] params)
- throws Exception
+ private Object invoke (Class c, Object obj, String mname, Object[] params) throws ClassNotFoundException, SecurityException, NoSuchMethodException, IllegalArgumentException, IllegalAccessException, InvocationTargetException
{
// The return Object
@@ -236,7 +328,7 @@
Class[] sigArray = new Class[ejbParams.size()];
for (int i = 0; i < ejbParams.size(); i++)
{
- sigArray[i] = Class.forName(ejbParams.get(i).getType());
+ sigArray[i] = ClassUtil.forName(ejbParams.get(i).getType(), getClass());
}
// Get the specified method
Copied: labs/jbossesb/workspace/mlittle/legstar/product/services/slsb/src/test (from rev 24846, labs/jbossesb/trunk/product/services/slsb/src/test)
Copied: labs/jbossesb/workspace/mlittle/legstar/product/services/slsb/src/test/java (from rev 24846, labs/jbossesb/trunk/product/services/slsb/src/test/java)
Copied: labs/jbossesb/workspace/mlittle/legstar/product/services/slsb/src/test/java/org (from rev 24846, labs/jbossesb/trunk/product/services/slsb/src/test/java/org)
Copied: labs/jbossesb/workspace/mlittle/legstar/product/services/slsb/src/test/java/org/jboss (from rev 24846, labs/jbossesb/trunk/product/services/slsb/src/test/java/org/jboss)
Copied: labs/jbossesb/workspace/mlittle/legstar/product/services/slsb/src/test/java/org/jboss/soa (from rev 24846, labs/jbossesb/trunk/product/services/slsb/src/test/java/org/jboss/soa)
Copied: labs/jbossesb/workspace/mlittle/legstar/product/services/slsb/src/test/java/org/jboss/soa/esb (from rev 24846, labs/jbossesb/trunk/product/services/slsb/src/test/java/org/jboss/soa/esb)
Copied: labs/jbossesb/workspace/mlittle/legstar/product/services/slsb/src/test/java/org/jboss/soa/esb/actions (from rev 24846, labs/jbossesb/trunk/product/services/slsb/src/test/java/org/jboss/soa/esb/actions)
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/services/slsb/src/test/java/org/jboss/soa/esb/actions/EJBProcessorUnitTest.java
===================================================================
--- labs/jbossesb/trunk/product/services/slsb/src/test/java/org/jboss/soa/esb/actions/EJBProcessorUnitTest.java 2009-01-21 09:35:03 UTC (rev 24846)
+++ labs/jbossesb/workspace/mlittle/legstar/product/services/slsb/src/test/java/org/jboss/soa/esb/actions/EJBProcessorUnitTest.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -1,105 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source Copyright 2008, Red Hat Middleware
- * LLC, and individual contributors by the @authors tag. See the copyright.txt
- * in the distribution for a full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it under the
- * terms of the GNU Lesser General Public License as published by the Free
- * Software Foundation; either version 2.1 of the License, or (at your option)
- * any later version.
- *
- * This software is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
- * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
- * details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this software; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA, or see the FSF
- * site: http://www.fsf.org.
- */
-package org.jboss.soa.esb.actions;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNull;
-import static org.junit.Assert.assertTrue;
-import junit.framework.JUnit4TestAdapter;
-
-import org.jboss.soa.esb.ConfigurationException;
-import org.jboss.soa.esb.helpers.ConfigTree;
-import org.jboss.soa.esb.message.Message;
-import org.jboss.soa.esb.message.format.MessageFactory;
-import org.junit.Test;
-
-/**
- * Unittest for {@link EJBProcessor}
- *
- * @author <a href="mailto:dbevenius at redhat.com">Daniel Bevenius</a>
- */
-public class EJBProcessorUnitTest
-{
- final String payloadLocation = "location";
- final String payload = "Hello, hello Clarice";
- final String outputLocation = "output";
-
- @Test
- public void processEjb3() throws ActionLifecycleException, ActionProcessingException, ConfigurationException
- {
- Message message = MessageFactory.getInstance().getMessage();
- message.getBody().add(payloadLocation, payload);
-
- EJBProcessor processor = new MockEjbProcessor(createConfigTree(payloadLocation, "printMessage", outputLocation));
- processor.initialise();
-
- Message process = processor.process(message);
- assertNull( process.getBody().get(outputLocation));
- }
-
- @Test
- public void processEjb3WithReturnValue() throws ActionLifecycleException, ActionProcessingException, ConfigurationException
- {
- Message message = MessageFactory.getInstance().getMessage();
- message.getBody().add(payloadLocation, payload);
-
- EJBProcessor processor = new MockEjbProcessor(createConfigTree(payloadLocation, "printMessageAndReturn", outputLocation));
- processor.initialise();
-
- Message process = processor.process(message);
- Object object = process.getBody().get(outputLocation);
- assertTrue( object instanceof String);
- assertEquals( payload, object );
- }
-
- @Test (expected = ActionLifecycleException.class )
- public void initWithNullValue() throws ActionLifecycleException, ActionProcessingException, ConfigurationException
- {
- Message message = MessageFactory.getInstance().getMessage();
- message.getBody().add(payloadLocation, payload);
-
- EJBProcessor processor = new MockEjbProcessor(createConfigTree(payloadLocation, null, outputLocation));
- processor.initialise();
- }
-
- private ConfigTree createConfigTree(final String payloadLocation, final String methodName, String outputLocation)
- {
- ConfigTree configTree = new ConfigTree("ejb-processor");
- configTree.setAttribute(EJBProcessor.EJB3_ATTRIBUTE, "true");
-
- configTree.setAttribute(EJBProcessor.JNDI_NAME, "Simple");
- configTree.setAttribute(EJBProcessor.EJB_METHOD, methodName);
- configTree.setAttribute(EJBProcessor.INICTXFACTORY, "org.jnp.interfaces.NamingContextFactory");
- configTree.setAttribute(EJBProcessor.PROVIDERURL, "jnp://localhost:1099");
- configTree.setAttribute(EJBProcessor.OUT_VAR, outputLocation);
- ConfigTree arg0 = new ConfigTree("arg0", configTree);
- arg0.setAttribute("type", "java.lang.String");
- arg0.addTextChild(payloadLocation);
-
- return configTree;
- }
-
- public static junit.framework.Test suite()
- {
- return new JUnit4TestAdapter(EJBProcessorUnitTest.class);
- }
-
-}
Copied: labs/jbossesb/workspace/mlittle/legstar/product/services/slsb/src/test/java/org/jboss/soa/esb/actions/EJBProcessorUnitTest.java (from rev 24846, labs/jbossesb/trunk/product/services/slsb/src/test/java/org/jboss/soa/esb/actions/EJBProcessorUnitTest.java)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/services/slsb/src/test/java/org/jboss/soa/esb/actions/EJBProcessorUnitTest.java (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/services/slsb/src/test/java/org/jboss/soa/esb/actions/EJBProcessorUnitTest.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -0,0 +1,105 @@
+/*
+ * JBoss, Home of Professional Open Source Copyright 2008, Red Hat Middleware
+ * LLC, and individual contributors by the @authors tag. See the copyright.txt
+ * in the distribution for a full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it under the
+ * terms of the GNU Lesser General Public License as published by the Free
+ * Software Foundation; either version 2.1 of the License, or (at your option)
+ * any later version.
+ *
+ * This software is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+ * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
+ * details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this software; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA, or see the FSF
+ * site: http://www.fsf.org.
+ */
+package org.jboss.soa.esb.actions;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNull;
+import static org.junit.Assert.assertTrue;
+import junit.framework.JUnit4TestAdapter;
+
+import org.jboss.soa.esb.ConfigurationException;
+import org.jboss.soa.esb.helpers.ConfigTree;
+import org.jboss.soa.esb.message.Message;
+import org.jboss.soa.esb.message.format.MessageFactory;
+import org.junit.Test;
+
+/**
+ * Unittest for {@link EJBProcessor}
+ *
+ * @author <a href="mailto:dbevenius at redhat.com">Daniel Bevenius</a>
+ */
+public class EJBProcessorUnitTest
+{
+ final String payloadLocation = "location";
+ final String payload = "Hello, hello Clarice";
+ final String outputLocation = "output";
+
+ @Test
+ public void processEjb3() throws ActionLifecycleException, ActionProcessingException, ConfigurationException
+ {
+ Message message = MessageFactory.getInstance().getMessage();
+ message.getBody().add(payloadLocation, payload);
+
+ EJBProcessor processor = new MockEjbProcessor(createConfigTree(payloadLocation, "printMessage", outputLocation));
+ processor.initialise();
+
+ Message process = processor.process(message);
+ assertNull( process.getBody().get(outputLocation));
+ }
+
+ @Test
+ public void processEjb3WithReturnValue() throws ActionLifecycleException, ActionProcessingException, ConfigurationException
+ {
+ Message message = MessageFactory.getInstance().getMessage();
+ message.getBody().add(payloadLocation, payload);
+
+ EJBProcessor processor = new MockEjbProcessor(createConfigTree(payloadLocation, "printMessageAndReturn", outputLocation));
+ processor.initialise();
+
+ Message process = processor.process(message);
+ Object object = process.getBody().get(outputLocation);
+ assertTrue( object instanceof String);
+ assertEquals( payload, object );
+ }
+
+ @Test (expected = ActionLifecycleException.class )
+ public void initWithNullValue() throws ActionLifecycleException, ActionProcessingException, ConfigurationException
+ {
+ Message message = MessageFactory.getInstance().getMessage();
+ message.getBody().add(payloadLocation, payload);
+
+ EJBProcessor processor = new MockEjbProcessor(createConfigTree(payloadLocation, null, outputLocation));
+ processor.initialise();
+ }
+
+ private ConfigTree createConfigTree(final String payloadLocation, final String methodName, String outputLocation)
+ {
+ ConfigTree configTree = new ConfigTree("ejb-processor");
+ configTree.setAttribute(EJBProcessor.EJB3_ATTRIBUTE, "true");
+
+ configTree.setAttribute(EJBProcessor.JNDI_NAME, "Simple");
+ configTree.setAttribute(EJBProcessor.EJB_METHOD, methodName);
+ configTree.setAttribute(EJBProcessor.INICTXFACTORY, "org.jnp.interfaces.NamingContextFactory");
+ configTree.setAttribute(EJBProcessor.PROVIDERURL, "jnp://localhost:1099");
+ configTree.setAttribute(EJBProcessor.OUT_VAR, outputLocation);
+ ConfigTree arg0 = new ConfigTree("arg0", configTree);
+ arg0.setAttribute("type", "java.lang.String");
+ arg0.addTextChild(payloadLocation);
+
+ return configTree;
+ }
+
+ public static junit.framework.Test suite()
+ {
+ return new JUnit4TestAdapter(EJBProcessorUnitTest.class);
+ }
+
+}
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/services/slsb/src/test/java/org/jboss/soa/esb/actions/MockEjbProcessor.java
===================================================================
--- labs/jbossesb/trunk/product/services/slsb/src/test/java/org/jboss/soa/esb/actions/MockEjbProcessor.java 2009-01-21 09:35:03 UTC (rev 24846)
+++ labs/jbossesb/workspace/mlittle/legstar/product/services/slsb/src/test/java/org/jboss/soa/esb/actions/MockEjbProcessor.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -1,54 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source Copyright 2008, Red Hat Middleware
- * LLC, and individual contributors by the @authors tag. See the copyright.txt
- * in the distribution for a full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it under the
- * terms of the GNU Lesser General Public License as published by the Free
- * Software Foundation; either version 2.1 of the License, or (at your option)
- * any later version.
- *
- * This software is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
- * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
- * details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this software; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA, or see the FSF
- * site: http://www.fsf.org.
- */
-package org.jboss.soa.esb.actions;
-
-import java.util.Properties;
-
-import javax.naming.Context;
-import javax.naming.InitialContext;
-
-import org.jboss.soa.esb.helpers.ConfigTree;
-
-/**
- *
- * @author <a href="mailto:dbevenius at redhat.com">Daniel Bevenius</a>
- *
- */
-public class MockEjbProcessor extends EJBProcessor
-{
- public MockEjbProcessor(ConfigTree config)
- {
- super(config);
- }
-
- @Override
- Object getEjb3FromJndi(final Context context) throws ActionLifecycleException
- {
- return new SimpleSLSB();
- }
-
- @Override
- InitialContext getInitialContext(Properties props) throws ActionLifecycleException
- {
- return null;
- }
-
-}
Copied: labs/jbossesb/workspace/mlittle/legstar/product/services/slsb/src/test/java/org/jboss/soa/esb/actions/MockEjbProcessor.java (from rev 24846, labs/jbossesb/trunk/product/services/slsb/src/test/java/org/jboss/soa/esb/actions/MockEjbProcessor.java)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/services/slsb/src/test/java/org/jboss/soa/esb/actions/MockEjbProcessor.java (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/services/slsb/src/test/java/org/jboss/soa/esb/actions/MockEjbProcessor.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -0,0 +1,54 @@
+/*
+ * JBoss, Home of Professional Open Source Copyright 2008, Red Hat Middleware
+ * LLC, and individual contributors by the @authors tag. See the copyright.txt
+ * in the distribution for a full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it under the
+ * terms of the GNU Lesser General Public License as published by the Free
+ * Software Foundation; either version 2.1 of the License, or (at your option)
+ * any later version.
+ *
+ * This software is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+ * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
+ * details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this software; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA, or see the FSF
+ * site: http://www.fsf.org.
+ */
+package org.jboss.soa.esb.actions;
+
+import java.util.Properties;
+
+import javax.naming.Context;
+import javax.naming.InitialContext;
+
+import org.jboss.soa.esb.helpers.ConfigTree;
+
+/**
+ *
+ * @author <a href="mailto:dbevenius at redhat.com">Daniel Bevenius</a>
+ *
+ */
+public class MockEjbProcessor extends EJBProcessor
+{
+ public MockEjbProcessor(ConfigTree config)
+ {
+ super(config);
+ }
+
+ @Override
+ Object getEjb3FromJndi(final Context context) throws ActionLifecycleException
+ {
+ return new SimpleSLSB();
+ }
+
+ @Override
+ InitialContext getInitialContext(Properties props) throws ActionLifecycleException
+ {
+ return null;
+ }
+
+}
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/services/slsb/src/test/java/org/jboss/soa/esb/actions/Simple.java
===================================================================
--- labs/jbossesb/trunk/product/services/slsb/src/test/java/org/jboss/soa/esb/actions/Simple.java 2009-01-21 09:35:03 UTC (rev 24846)
+++ labs/jbossesb/workspace/mlittle/legstar/product/services/slsb/src/test/java/org/jboss/soa/esb/actions/Simple.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -1,32 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source Copyright 2008, Red Hat Middleware
- * LLC, and individual contributors by the @authors tag. See the copyright.txt
- * in the distribution for a full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it under the
- * terms of the GNU Lesser General Public License as published by the Free
- * Software Foundation; either version 2.1 of the License, or (at your option)
- * any later version.
- *
- * This software is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
- * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
- * details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this software; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA, or see the FSF
- * site: http://www.fsf.org.
- */
-package org.jboss.soa.esb.actions;
-
-import javax.ejb.Local;
-
- at Local
-public interface Simple
-{
- void printMessage(final String message);
-
- String printMessageAndReturn(final String message);
-}
-
Copied: labs/jbossesb/workspace/mlittle/legstar/product/services/slsb/src/test/java/org/jboss/soa/esb/actions/Simple.java (from rev 24846, labs/jbossesb/trunk/product/services/slsb/src/test/java/org/jboss/soa/esb/actions/Simple.java)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/services/slsb/src/test/java/org/jboss/soa/esb/actions/Simple.java (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/services/slsb/src/test/java/org/jboss/soa/esb/actions/Simple.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -0,0 +1,32 @@
+/*
+ * JBoss, Home of Professional Open Source Copyright 2008, Red Hat Middleware
+ * LLC, and individual contributors by the @authors tag. See the copyright.txt
+ * in the distribution for a full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it under the
+ * terms of the GNU Lesser General Public License as published by the Free
+ * Software Foundation; either version 2.1 of the License, or (at your option)
+ * any later version.
+ *
+ * This software is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+ * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
+ * details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this software; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA, or see the FSF
+ * site: http://www.fsf.org.
+ */
+package org.jboss.soa.esb.actions;
+
+import javax.ejb.Local;
+
+ at Local
+public interface Simple
+{
+ void printMessage(final String message);
+
+ String printMessageAndReturn(final String message);
+}
+
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/services/slsb/src/test/java/org/jboss/soa/esb/actions/SimpleRemote.java
===================================================================
--- labs/jbossesb/trunk/product/services/slsb/src/test/java/org/jboss/soa/esb/actions/SimpleRemote.java 2009-01-21 09:35:03 UTC (rev 24846)
+++ labs/jbossesb/workspace/mlittle/legstar/product/services/slsb/src/test/java/org/jboss/soa/esb/actions/SimpleRemote.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -1,32 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source Copyright 2008, Red Hat Middleware
- * LLC, and individual contributors by the @authors tag. See the copyright.txt
- * in the distribution for a full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it under the
- * terms of the GNU Lesser General Public License as published by the Free
- * Software Foundation; either version 2.1 of the License, or (at your option)
- * any later version.
- *
- * This software is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
- * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
- * details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this software; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA, or see the FSF
- * site: http://www.fsf.org.
- */
-package org.jboss.soa.esb.actions;
-
-import javax.ejb.Remote;
-
- at Remote
-public interface SimpleRemote
-{
- void printMessage(final String message);
-
- String printMessageAndReturn(final String message);
-}
-
Copied: labs/jbossesb/workspace/mlittle/legstar/product/services/slsb/src/test/java/org/jboss/soa/esb/actions/SimpleRemote.java (from rev 24846, labs/jbossesb/trunk/product/services/slsb/src/test/java/org/jboss/soa/esb/actions/SimpleRemote.java)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/services/slsb/src/test/java/org/jboss/soa/esb/actions/SimpleRemote.java (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/services/slsb/src/test/java/org/jboss/soa/esb/actions/SimpleRemote.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -0,0 +1,32 @@
+/*
+ * JBoss, Home of Professional Open Source Copyright 2008, Red Hat Middleware
+ * LLC, and individual contributors by the @authors tag. See the copyright.txt
+ * in the distribution for a full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it under the
+ * terms of the GNU Lesser General Public License as published by the Free
+ * Software Foundation; either version 2.1 of the License, or (at your option)
+ * any later version.
+ *
+ * This software is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+ * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
+ * details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this software; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA, or see the FSF
+ * site: http://www.fsf.org.
+ */
+package org.jboss.soa.esb.actions;
+
+import javax.ejb.Remote;
+
+ at Remote
+public interface SimpleRemote
+{
+ void printMessage(final String message);
+
+ String printMessageAndReturn(final String message);
+}
+
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/services/slsb/src/test/java/org/jboss/soa/esb/actions/SimpleSLSB.java
===================================================================
--- labs/jbossesb/trunk/product/services/slsb/src/test/java/org/jboss/soa/esb/actions/SimpleSLSB.java 2009-01-21 09:35:03 UTC (rev 24846)
+++ labs/jbossesb/workspace/mlittle/legstar/product/services/slsb/src/test/java/org/jboss/soa/esb/actions/SimpleSLSB.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -1,40 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source Copyright 2008, Red Hat Middleware
- * LLC, and individual contributors by the @authors tag. See the copyright.txt
- * in the distribution for a full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it under the
- * terms of the GNU Lesser General Public License as published by the Free
- * Software Foundation; either version 2.1 of the License, or (at your option)
- * any later version.
- *
- * This software is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
- * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
- * details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this software; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA, or see the FSF
- * site: http://www.fsf.org.
- */
-package org.jboss.soa.esb.actions;
-
-import javax.ejb.Stateless;
-
-
- at Stateless
-public class SimpleSLSB implements SimpleRemote
-{
- public void printMessage(final String message)
- {
- System.out.println("SimpleSLSB printMessage : " + message);
- }
-
- public String printMessageAndReturn(String message)
- {
- System.out.println("SimpleSLSB printMessageAndReturn : " + message);
- return message;
- }
-}
-
Copied: labs/jbossesb/workspace/mlittle/legstar/product/services/slsb/src/test/java/org/jboss/soa/esb/actions/SimpleSLSB.java (from rev 24846, labs/jbossesb/trunk/product/services/slsb/src/test/java/org/jboss/soa/esb/actions/SimpleSLSB.java)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/services/slsb/src/test/java/org/jboss/soa/esb/actions/SimpleSLSB.java (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/services/slsb/src/test/java/org/jboss/soa/esb/actions/SimpleSLSB.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -0,0 +1,40 @@
+/*
+ * JBoss, Home of Professional Open Source Copyright 2008, Red Hat Middleware
+ * LLC, and individual contributors by the @authors tag. See the copyright.txt
+ * in the distribution for a full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it under the
+ * terms of the GNU Lesser General Public License as published by the Free
+ * Software Foundation; either version 2.1 of the License, or (at your option)
+ * any later version.
+ *
+ * This software is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+ * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
+ * details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this software; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA, or see the FSF
+ * site: http://www.fsf.org.
+ */
+package org.jboss.soa.esb.actions;
+
+import javax.ejb.Stateless;
+
+
+ at Stateless
+public class SimpleSLSB implements SimpleRemote
+{
+ public void printMessage(final String message)
+ {
+ System.out.println("SimpleSLSB printMessage : " + message);
+ }
+
+ public String printMessageAndReturn(String message)
+ {
+ System.out.println("SimpleSLSB printMessageAndReturn : " + message);
+ return message;
+ }
+}
+
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/services/smooks/lib/ext/antlr-2.7.2.jar
===================================================================
(Binary files differ)
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/services/smooks/lib/ext/xalan-2.7.0.jar
===================================================================
(Binary files differ)
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/services/smooks/lib/ext/xbean-2.2.0.jar
===================================================================
(Binary files differ)
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/services/smooks/lib/ext/xml-apis-1.0.b2.jar
===================================================================
(Binary files differ)
Modified: labs/jbossesb/workspace/mlittle/legstar/product/services/smooks/src/main/java/org/jboss/soa/esb/actions/converters/SmooksTransformer.java
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/services/smooks/src/main/java/org/jboss/soa/esb/actions/converters/SmooksTransformer.java 2009-01-21 14:47:17 UTC (rev 24849)
+++ labs/jbossesb/workspace/mlittle/legstar/product/services/smooks/src/main/java/org/jboss/soa/esb/actions/converters/SmooksTransformer.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -168,8 +168,6 @@
private String defaultMessageToType;
private String defaultMessageTo;
- private SmooksMessageCounter smooksMessageCounter;
-
/**
* Public constructor.
* @param propertiesTree Action Properties.
@@ -201,8 +199,6 @@
if(defaultMessageTo != null && defaultMessageTo.trim().equals("")) {
throw new ConfigurationException("Empty '" + TO + "' config attribute supplied.");
}
- smooksMessageCounter = new SmooksMessageCounter(propertiesTree);
- smooksMessageCounter.registerMBean();
actionConfig = propertiesTree;
}
@@ -344,17 +340,8 @@
logger.warn("Only java.lang.String payload types supported. Input message was of type [" + payload.getClass().getName() + "]. Returning message untransformed.");
}
- long procTime = System.nanoTime() - startTime;
- smooksMessageCounter.update(procTime, messageProfile, SmooksMessageCounter.TRANSFORM_SUCCEED);
-
} catch(Throwable thrown) {
- long procTime = System.nanoTime() - startTime;
- smooksMessageCounter.update(procTime, messageProfile, SmooksMessageCounter.TRANSFORM_FAILED);
-
- thrown.printStackTrace();
throw new ActionProcessingException("Message transformation failed.", thrown);
- } finally {
- smooksMessageCounter.incrementTotalCount();
}
// TODO: Cater for more message input types e.g. InputStream, DOM Document...
Modified: labs/jbossesb/workspace/mlittle/legstar/product/services/soap/base-project-build.xml
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/services/soap/base-project-build.xml 2009-01-21 14:47:17 UTC (rev 24849)
+++ labs/jbossesb/workspace/mlittle/legstar/product/services/soap/base-project-build.xml 2009-01-21 15:38:08 UTC (rev 24850)
@@ -81,6 +81,8 @@
<fileset dir="lib/ext" includes="*.jar"/>
<fileset dir="src/main/resources/"/>
<fileset dir="build" includes="*.jar"/>
+ <fileset dir="${esb.root.dir}/build/lib"
+ includes="jaxws-tools*.jar jaxws-rt*.jar jaxb-xjc*.jar"/>
</copy>
</target>
@@ -121,4 +123,4 @@
</target>
-</project>
\ No newline at end of file
+</project>
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/services/soap/lib/ext/Wise-core.jar
===================================================================
(Binary files differ)
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/services/soap/lib/ext/build-time/activation.jar
===================================================================
(Binary files differ)
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/services/soap/lib/ext/build-time/commons-logging-1.0.4.jar
===================================================================
(Binary files differ)
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/services/soap/lib/ext/build-time/jboss-jaxws.jar
===================================================================
(Binary files differ)
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/services/soap/lib/ext/build-time/jboss-saaj.jar
===================================================================
(Binary files differ)
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/services/soap/lib/ext/build-time/jbossall-client.jar
===================================================================
(Binary files differ)
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/services/soap/lib/ext/build-time/jbossts-common.jar
===================================================================
(Binary files differ)
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/services/soap/lib/ext/build-time/jbossws-core.jar
===================================================================
(Binary files differ)
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/services/soap/lib/ext/build-time/jbossws-jboss421.jar
===================================================================
(Binary files differ)
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/services/soap/lib/ext/build-time/jbossws-spi.jar
===================================================================
(Binary files differ)
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/services/soap/lib/ext/build-time/junit-4.1.jar
===================================================================
(Binary files differ)
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/services/soap/lib/ext/build-time/log4j.jar
===================================================================
(Binary files differ)
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/services/soap/lib/ext/build-time/servlet-api-2.3.jar
===================================================================
(Binary files differ)
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/services/soap/lib/ext/commons-httpclient-3.0.1.jar
===================================================================
(Binary files differ)
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/services/soap/lib/ext/commons-ssl-0.3.4.jar
===================================================================
(Binary files differ)
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/services/soap/lib/ext/jaxb-api.jar
===================================================================
(Binary files differ)
Copied: labs/jbossesb/workspace/mlittle/legstar/product/services/soap/lib/ext/jaxb-api.jar (from rev 24846, labs/jbossesb/trunk/product/services/soap/lib/ext/jaxb-api.jar)
===================================================================
(Binary files differ)
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/services/soap/lib/ext/jaxb-impl.jar
===================================================================
(Binary files differ)
Copied: labs/jbossesb/workspace/mlittle/legstar/product/services/soap/lib/ext/jaxb-impl.jar (from rev 24846, labs/jbossesb/trunk/product/services/soap/lib/ext/jaxb-impl.jar)
===================================================================
(Binary files differ)
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/services/soap/lib/ext/jaxb-xjc.jar
===================================================================
(Binary files differ)
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/services/soap/lib/ext/jaxws-rt.jar
===================================================================
(Binary files differ)
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/services/soap/lib/ext/jaxws-tools.jar
===================================================================
(Binary files differ)
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/services/soap/lib/ext/jboss-jaxws.jar
===================================================================
(Binary files differ)
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/services/soap/lib/ext/jboss-saaj.jar
===================================================================
(Binary files differ)
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/services/soap/lib/ext/jboss-system.jar
===================================================================
(Binary files differ)
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/services/soap/lib/ext/jbossall-client.jar
===================================================================
(Binary files differ)
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/services/soap/lib/ext/jbossws-common.jar
===================================================================
(Binary files differ)
Copied: labs/jbossesb/workspace/mlittle/legstar/product/services/soap/lib/ext/jbossws-native-jaxws-ext.jar (from rev 24846, labs/jbossesb/trunk/product/services/soap/lib/ext/jbossws-native-jaxws-ext.jar)
===================================================================
(Binary files differ)
Copied: labs/jbossesb/workspace/mlittle/legstar/product/services/soap/lib/ext/jbossws-native-jaxws.jar (from rev 24846, labs/jbossesb/trunk/product/services/soap/lib/ext/jbossws-native-jaxws.jar)
===================================================================
(Binary files differ)
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/services/soap/lib/ext/jbossws-spi.jar
===================================================================
(Binary files differ)
Copied: labs/jbossesb/workspace/mlittle/legstar/product/services/soap/lib/ext/wise-core.jar (from rev 24846, labs/jbossesb/trunk/product/services/soap/lib/ext/wise-core.jar)
===================================================================
(Binary files differ)
Modified: labs/jbossesb/workspace/mlittle/legstar/product/services/soap/src/main/java/org/jboss/soa/esb/actions/soap/MBeanSoapUIInvoker.java
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/services/soap/src/main/java/org/jboss/soa/esb/actions/soap/MBeanSoapUIInvoker.java 2009-01-21 14:47:17 UTC (rev 24849)
+++ labs/jbossesb/workspace/mlittle/legstar/product/services/soap/src/main/java/org/jboss/soa/esb/actions/soap/MBeanSoapUIInvoker.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -35,6 +35,7 @@
public class MBeanSoapUIInvoker implements SoapUIInvoker {
private static final String[] buildRequestSig = new String[] {String.class.getName(), String.class.getName(), Map.class.getName(), Properties.class.getName(), String.class.getName(), String.class.getName()};
+ private static final String[] buildFaultSig = new String[] {String.class.getName(), String.class.getName(), String.class.getName(), Map.class.getName(), Properties.class.getName(), String.class.getName(), String.class.getName()};
private static final String[] getEndpointSig = new String[] {String.class.getName(), Properties.class.getName()};
private MBeanServer mbeanServer;
private ObjectName serviceName;
@@ -82,6 +83,53 @@
}
/**
+ * Build a SOAP response for the specified operation on the specified WSDL.
+ *
+ * @param wsdl WSDL URL.
+ * @param operation Operation name.
+ * @param params Message parameter map.
+ * @param httpClientProps {@link org.apache.commons.httpclient.HttpClient} creation properties.
+ * @param smooksResource {@link org.milyn.Smooks} transformation configuration resource file.
+ * Null if no transformations are to be performed on the SOAP message before serializing it
+ * for return.
+ * @param soapNs the SOAP namespace. If null one of the defaults will be used:
+ * http://schemas.xmlsoap.org/soap/envelope/
+ * http://www.w3.org/2003/05/soap-envelope
+ * @return The SOAP Message.
+ * @throws java.io.IOException Failed to load WSDL.
+ * @throws UnsupportedOperationException Operation not supported on specified WSDL.
+ * @throws org.xml.sax.SAXException Failed to parse the SOAP UI generated request message.
+ */
+ public String buildResponse(String wsdl, String operation, Map params, Properties httpClientProps, String smooksResource, String soapNs) throws IOException, UnsupportedOperationException, SAXException {
+ try {
+ return (String) mbeanServer.invoke(serviceName, "buildResponse", new Object[] {wsdl, operation, params, httpClientProps, smooksResource, soapNs}, buildRequestSig);
+ } catch (InstanceNotFoundException e) {
+ throw new UnsupportedOperationException("SOAP UI Client Service not found under name '" + serviceName.getCanonicalName() + "'. This service must be deployed before this action can be used.", e);
+ } catch (MBeanException e) {
+ rethrowException(e);
+ } catch (ReflectionException e) {
+ rethrowException(e);
+ }
+
+ throw new RuntimeException("Unexpected code exit point reached!");
+ }
+
+
+
+ public String buildFault(String wsdl, String operation, String faultName, Map params, Properties httpClientProps, String smooksResource, String soapNs) throws IOException, UnsupportedOperationException, SAXException {
+ try {
+ return (String) mbeanServer.invoke(serviceName, "buildFault", new Object[] {wsdl, operation, faultName, params, httpClientProps, smooksResource, soapNs}, buildFaultSig);
+ } catch (InstanceNotFoundException e) {
+ throw new UnsupportedOperationException("SOAP UI Client Service not found under name '" + serviceName.getCanonicalName() + "'. This service must be deployed before this action can be used.", e);
+ } catch (MBeanException e) {
+ rethrowException(e);
+ } catch (ReflectionException e) {
+ rethrowException(e);
+ }
+ throw new RuntimeException("Unexpected code exit point reached!");
+ }
+
+ /**
* Get the 1st endpoint from the specified WSDL.
*
* @param wsdl WSDL URL.
Modified: labs/jbossesb/workspace/mlittle/legstar/product/services/soap/src/main/java/org/jboss/soa/esb/actions/soap/SoapUIInvoker.java
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/services/soap/src/main/java/org/jboss/soa/esb/actions/soap/SoapUIInvoker.java 2009-01-21 14:47:17 UTC (rev 24849)
+++ labs/jbossesb/workspace/mlittle/legstar/product/services/soap/src/main/java/org/jboss/soa/esb/actions/soap/SoapUIInvoker.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -11,6 +11,10 @@
*/
public interface SoapUIInvoker {
String buildRequest(String wsdl, String operation, Map params, Properties httpClientProps, String smooksResource, String soapNs) throws IOException, UnsupportedOperationException, SAXException;
+
+ String buildResponse(String wsdl, String operation, Map params, Properties httpClientProps, String smooksResource, String soapNs) throws IOException, UnsupportedOperationException, SAXException;
+
+ String buildFault(String wsdl, String operation, String faultName, Map params, Properties httpClientProps, String smooksResource, String soapNs) throws IOException, UnsupportedOperationException, SAXException;
String getEndpoint(String wsdl, Properties httpClientProps) throws IOException;
}
Modified: labs/jbossesb/workspace/mlittle/legstar/product/services/soap/src/main/java/org/jboss/soa/esb/actions/soap/WebserviceContractPublisher.java
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/services/soap/src/main/java/org/jboss/soa/esb/actions/soap/WebserviceContractPublisher.java 2009-01-21 14:47:17 UTC (rev 24849)
+++ labs/jbossesb/workspace/mlittle/legstar/product/services/soap/src/main/java/org/jboss/soa/esb/actions/soap/WebserviceContractPublisher.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -22,11 +22,11 @@
import org.apache.log4j.Logger;
import org.jboss.internal.soa.esb.publish.ActionContractPublisher;
import org.jboss.internal.soa.esb.publish.ContractInfo;
+import org.jboss.internal.soa.esb.publish.ServletContractPublisher;
import org.jboss.internal.soa.esb.util.StreamUtils;
import org.jboss.soa.esb.ConfigurationException;
import org.jboss.soa.esb.addressing.EPR;
-import org.jboss.soa.esb.listeners.config.xbeanmodel.ActionDocument;
-import org.jboss.soa.esb.listeners.config.xbeanmodel.PropertyDocument;
+import org.jboss.soa.esb.listeners.config.Action;
import org.jboss.wsf.spi.deployment.Endpoint;
import org.milyn.Smooks;
import org.milyn.container.ExecutionContext;
@@ -44,13 +44,13 @@
import java.lang.reflect.Proxy;
import java.net.URI;
import java.net.URL;
-import java.util.List;
+import java.util.Properties;
/**
* Contract publisher for a Webservice endpoint.
* @author <a href="mailto:tom.fennelly at jboss.com">tom.fennelly at jboss.com</a>
*/
-public class WebserviceContractPublisher implements ActionContractPublisher {
+public class WebserviceContractPublisher implements ActionContractPublisher, ServletContractPublisher {
private static Logger logger = Logger.getLogger(WebserviceContractPublisher.class);
private String endpointName;
@@ -62,16 +62,13 @@
* @param actionConfig action config.
* @throws ConfigurationException Bad config.
*/
- public void setActionConfig(ActionDocument.Action actionConfig) throws ConfigurationException {
- List<PropertyDocument.Property> properties = actionConfig.getPropertyList();
+ public void setActionConfig(Action actionConfig) throws ConfigurationException {
+ final Properties properties = actionConfig.getProperties();
- for(PropertyDocument.Property property : properties) {
- if(property.getName().equals(SOAPProcessor.JBOSSWS_ENDPOINT)) {
- endpointName = property.getValue();
- }
- if(property.getName().equals(SOAPProcessor.REWRITE_ENDPOINT_URL)) {
- rewriteEndpointUrl = !property.getValue().equals("false");
- }
+ endpointName = properties.getProperty(SOAPProcessor.JBOSSWS_ENDPOINT);
+ final String rewriteEndpointUrlVal = properties.getProperty(SOAPProcessor.REWRITE_ENDPOINT_URL);
+ if (rewriteEndpointUrlVal != null) {
+ rewriteEndpointUrl = !rewriteEndpointUrlVal.equals("false");
}
if(endpointName == null) {
Modified: labs/jbossesb/workspace/mlittle/legstar/product/services/soap/src/main/java/org/jboss/soa/esb/actions/soap/adapter/SOAPProcessorHttpServletRequest.java
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/services/soap/src/main/java/org/jboss/soa/esb/actions/soap/adapter/SOAPProcessorHttpServletRequest.java 2009-01-21 14:47:17 UTC (rev 24849)
+++ labs/jbossesb/workspace/mlittle/legstar/product/services/soap/src/main/java/org/jboss/soa/esb/actions/soap/adapter/SOAPProcessorHttpServletRequest.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -321,4 +321,24 @@
{
throw new UnsupportedOperationException("Not yet supported") ;
}
+
+ public String getLocalAddr()
+ {
+ throw new UnsupportedOperationException("Not yet supported") ;
+ }
+
+ public String getLocalName()
+ {
+ throw new UnsupportedOperationException("Not yet supported") ;
+ }
+
+ public int getLocalPort()
+ {
+ throw new UnsupportedOperationException("Not yet supported") ;
+ }
+
+ public int getRemotePort()
+ {
+ throw new UnsupportedOperationException("Not yet supported") ;
+ }
}
Modified: labs/jbossesb/workspace/mlittle/legstar/product/services/soap/src/main/java/org/jboss/soa/esb/actions/soap/adapter/SOAPProcessorHttpServletResponse.java
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/services/soap/src/main/java/org/jboss/soa/esb/actions/soap/adapter/SOAPProcessorHttpServletResponse.java 2009-01-21 14:47:17 UTC (rev 24849)
+++ labs/jbossesb/workspace/mlittle/legstar/product/services/soap/src/main/java/org/jboss/soa/esb/actions/soap/adapter/SOAPProcessorHttpServletResponse.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -165,6 +165,32 @@
return null ;
}
+ public void setCharacterEncoding(final String charset)
+ {
+ final String contentType = getContentType() ;
+ if (contentType != null)
+ {
+ final int charsetIndex = contentType.indexOf(CHARSET) ;
+ if (charsetIndex == -1)
+ {
+ setContentType(contentType + ';' + CHARSET + charset) ;
+ }
+ else
+ {
+ final StringBuilder sb = new StringBuilder() ;
+ sb.append(contentType, 0, charsetIndex) ;
+ sb.append(CHARSET) ;
+ sb.append(charset) ;
+ final int endIndex = contentType.indexOf(';', charsetIndex) ;
+ if (endIndex != -1)
+ {
+ sb.append(contentType, endIndex, contentType.length()) ;
+ }
+ setContentType(sb.toString()) ;
+ }
+ }
+ }
+
/*
* The following methods are not supported by this adapter.
*/
Modified: labs/jbossesb/workspace/mlittle/legstar/product/services/soap/src/main/java/org/jboss/soa/esb/actions/soap/wise/SOAPClient.java
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/services/soap/src/main/java/org/jboss/soa/esb/actions/soap/wise/SOAPClient.java 2009-01-21 14:47:17 UTC (rev 24849)
+++ labs/jbossesb/workspace/mlittle/legstar/product/services/soap/src/main/java/org/jboss/soa/esb/actions/soap/wise/SOAPClient.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -22,21 +22,11 @@
package org.jboss.soa.esb.actions.soap.wise;
-import it.javalinux.wise.core.client.InvocationResult;
-import it.javalinux.wise.core.client.WSDynamicClient;
-import it.javalinux.wise.core.client.WSDynamicClientFactory;
-import it.javalinux.wise.core.client.WSEndpoint;
-import it.javalinux.wise.core.client.WSMethod;
-import it.javalinux.wise.core.client.handler.LoggingHandler;
-import it.javalinux.wise.core.client.handler.SmooksHandler;
-import it.javalinux.wise.core.exceptions.WiseException;
-import it.javalinux.wise.core.mapper.SmooksMapper;
-import it.javalinux.wise.core.mapper.WiseMapper;
+import java.io.File;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import javax.xml.ws.handler.Handler;
-import org.apache.log4j.Logger;
import org.jboss.soa.esb.ConfigurationException;
import org.jboss.soa.esb.actions.AbstractActionPipelineProcessor;
import org.jboss.soa.esb.actions.ActionLifecycleException;
@@ -45,13 +35,27 @@
import org.jboss.soa.esb.listeners.message.MessageDeliverException;
import org.jboss.soa.esb.message.Message;
import org.jboss.soa.esb.message.MessagePayloadProxy;
+import org.jboss.wise.core.client.InvocationResult;
+import org.jboss.wise.core.client.WSDynamicClient;
+import org.jboss.wise.core.client.WSEndpoint;
+import org.jboss.wise.core.client.WSMethod;
+import org.jboss.wise.core.client.factories.WSDynamicClientFactory;
+import org.jboss.wise.core.handlers.LoggingHandler;
+import org.jboss.wise.core.handlers.SmooksHandler;
+import org.jboss.wise.core.mapper.SmooksMapper;
+import org.jboss.wise.core.mapper.WiseMapper;
+import org.jboss.wise.core.wsextensions.impl.MTOMEnabler;
+import org.jboss.wise.core.wsextensions.impl.WSAddressingEnabler;
+import org.jboss.wise.core.wsextensions.impl.WSSecurityEnabler;
+import org.apache.log4j.Logger;
/**
- * SOAP Client action processor. <p/> Uses the Wise Client Service to generate JAXWS client class and call the target service.
- * This action then routes that message to that service.
- * <h2>Endpoint Operation Specification</h2>
- * Specifying the endpoint operation is a straightforward task. Simply specify the "wsdl" and "SOAPAction" properties on the
- * SOAPClient action as follows:
+ * SOAP Client action processor.
+ * <p/>
+ * Uses the Wise Client Service to generate JAXWS client class and call the target service. This action then routes that message
+ * to that service.
+ * <h2>Endpoint Operation Specification</h2> Specifying the endpoint operation is a straightforward task. Simply specify the
+ * "wsdl" and "SOAPAction" properties on the SOAPClient action as follows:
*
* <pre>
* <action name="soap-wise-client-action" class="org.jboss.soa.esb.actions.soap.wise.SOAPClient">
@@ -89,48 +93,47 @@
*
* <pre>
* <property name="userName" value=""/>
- * <property name="password" value=""/>
+ * <property name="password" value=""/>
* </pre>
*
- * User and password used if webservice is protected by BAsic Authentication HTTP user and password
- * <h2 id="request-construction">SOAP Request Message Construction</h2>
- * The SOAP operation parameters are supplied in one of 2 ways:
+ * User and password used if webservice is protected by BAsic Authentication HTTP user and password <h2
+ * id="request-construction">SOAP Request Message Construction</h2> The SOAP operation parameters are supplied in one of 2 ways:
* <ol>
* <li>As a {@link Map} instance set on the <i>default body location</i> (Message.getBody().add(Map))</li>
* <li>As a {@link Map} instance set on in a <i>named body location</i> (Message.getBody().add(String, Map)), where the name of
- * that body location is specified as the value of the "paramsLocation" action property. </li>
+ * that body location is specified as the value of the "paramsLocation" action property.</li>
* </ol>
* The parameter {@link Map} itself can also be populated in one of 2 ways:
* <ol>
* <li><b>Option 1</b>: With a set of Objects of any type. In this case a smooks config have to be specified in action attribute
* SmooksRequestMapper and smooks is used to make the java-to-java conversion
- * <li><b>Option 2</b>: With a set of String based key-value pairs(<String, Object>), where the key is the name of the
- * SOAP parameter as specified in wsdls (or in generated class) to be populated with the key's value. </li>
+ * <li><b>Option 2</b>: With a set of String based key-value pairs(<String, Object>), where the key is the name of the SOAP
+ * parameter as specified in wsdls (or in generated class) to be populated with the key's value.</li>
* </ol>
- * <h2>SOAP Response Message Consumption</h2>
- * The SOAP response object instance can be is attached to the ESB {@link Message} instance in one of the following ways:
+ * <h2>SOAP Response Message Consumption</h2> The SOAP response object instance can be is attached to the ESB {@link Message}
+ * instance in one of the following ways:
* <ol>
* <li>On the <i>default body location</i> (Message.getBody().add(Map))</li>
- * <li>On in a <i>named body location</i> (Message.getBody().add(String, Map)), where the name of that body location is
- * specified as the value of the "responseLocation" action property. </li>
+ * <li>On in a <i>named body location</i> (Message.getBody().add(String, Map)), where the name of that body location is specified
+ * as the value of the "responseLocation" action property.</li>
* </ol>
* The response object instance can also be populated (from the SOAP response) in one of 3 ways:
* <ol>
* <li><b>Option 1</b>: With a set of Objects of any type. In this case a smooks config have to be specified in action attribute
* SmooksResponseMapper and smooks is used to make the java-to-java conversion
- * <li><b>Option 2</b>: With a set of String based key-value pairs(<String, Object>), where the key is the name of the
- * SOAP answer as specified in wsdls (or in generated class) to be populated with the key's value. </li>
+ * <li><b>Option 2</b>: With a set of String based key-value pairs(<String, Object>), where the key is the name of the SOAP
+ * answer as specified in wsdls (or in generated class) to be populated with the key's value.</li>
* </ol>
- * <h2>JAX-WS Handler for the SOAP Request/Response Message</h2>
- * It's often necessary to be able to transform the SOAP request or response, especially in header. This may be to simply add some
- * standard SOAP handlers. Wise support JAXWS Soap Handler, both custom or a predefined one based on smooks. <p/> Transformation
- * of the SOAP request (before sending) is supported by configuring the SOAPClient action with a Smooks transformation
- * configuration property as follows:
+ * <h2>JAX-WS Handler for the SOAP Request/Response Message</h2> It's often necessary to be able to transform the SOAP request or
+ * response, especially in header. This may be to simply add some standard SOAP handlers. Wise support JAXWS Soap Handler, both
+ * custom or a predefined one based on smooks.
+ * <p/>
+ * Transformation of the SOAP request (before sending) is supported by configuring the SOAPClient action with a Smooks
+ * transformation configuration property as follows:
*
* <pre>
* <property name="smooksTransform" value="/transforms/order-transform.xml" />
* </pre>
- *
* <p>
* The value of the "smooksTransform" property is resolved by first checking it as a filesystem based resource. Failing that, it's
* checked as a classpath resource and failing that, as a URI based resource.
@@ -144,9 +147,8 @@
* <property name="custom-handlers" value="package.Class1;package.Class2" />
* </pre>
*
- * <h2>Logging the SOAP Request/Response Message</h2>
- * It's useful for debug purpose to view soap Message sent and response received. Wise achieve this goal using a JAX-WS handler
- * printing all messages exchanged on System.out You can enable as follow:
+ * <h2>Logging the SOAP Request/Response Message</h2> It's useful for debug purpose to view soap Message sent and response
+ * received. Wise achieve this goal using a JAX-WS handler printing all messages exchanged on System.out You can enable as follow:
*
* <pre>
* <property name="LoggingMessages" value="true" />
@@ -165,12 +167,21 @@
private String serviceName;
private final String username;
private final String password;
- // private WSDynamicClient client;
+ private final String catalogFileName;
private final List<String> smooksHandler = new ArrayList<String>();
private final List<String> customHandlers = new ArrayList<String>();
+ private final List<String> bindingFileNames = new ArrayList<String>();
private final MessagePayloadProxy payloadProxy;
private boolean loggingEnabled = false;
+ private boolean wsseEnabled = false;
+ private boolean wsaEnabled = false;
+ private boolean mtomEnabled = false;
+ private String smooksRequestReport = null;
+ private String smooksResponseReport = null;
+ private WSMethod method = null;
+ private WSEndpoint endpoint;
+
public SOAPClient( ConfigTree config ) throws ConfigurationException {
wsdl = config.getRequiredAttribute("wsdl");
soapAction = config.getRequiredAttribute("SOAPAction");
@@ -181,9 +192,18 @@
serviceName = serviceName != null ? serviceName : wsdl.substring(wsdl.lastIndexOf("/"), wsdl.lastIndexOf("?"));
username = config.getAttribute("username");
password = config.getAttribute("password");
+ smooksRequestReport = config.getAttribute("smooksRequestReport");
+ smooksResponseReport = config.getAttribute("smooksResponseReport");
logger.info(config.getAttribute("LoggingMessages"));
loggingEnabled = Boolean.parseBoolean(config.getAttribute("LoggingMessages"));
logger.info("loggingEnabled:" + loggingEnabled);
+ wsseEnabled = Boolean.parseBoolean(config.getAttribute("enableWSSE"));
+ logger.info("wsseEnabled:" + wsseEnabled);
+ wsaEnabled = Boolean.parseBoolean(config.getAttribute("enableWSA"));
+ logger.info("wsaEnabled:" + wsaEnabled);
+ mtomEnabled = Boolean.parseBoolean(config.getAttribute("enableMTOM"));
+ logger.info("mtomEnabled:" + mtomEnabled);
+
ConfigTree[] handlersConfig;
if (config.getAttribute("smooks-handler-config") != null) {
smooksHandler.add(config.getAttribute("smooks-handler-config"));
@@ -194,6 +214,15 @@
}
}
+ if (config.getAttribute("binding-files") != null) {
+ for (String fileName : config.getAttribute("binding-files").split(";")) {
+ bindingFileNames.add(fileName);
+ }
+
+ }
+
+ catalogFileName = config.getAttribute("catalog-file");
+
handlersConfig = config.getChildren("custom-handlers");
payloadProxy = new MessagePayloadProxy(config);
@@ -202,14 +231,62 @@
@Override
public void initialise() throws ActionLifecycleException {
- super.initialise();
+ WSDynamicClientFactory.initialise();
+ }
+
+ private void beforeFirstCall() throws ActionProcessingException {
+ WSDynamicClient client = null;
+ logger.info("DEPLOY #1");
+ // get client from cache
try {
- WSDynamicClientFactory.getInstace().clearCache();
+ List<File> bindings = new java.util.ArrayList<File>();
+ for (String fileName : bindingFileNames) {
+ File bindFile = new File(fileName);
+ bindings.add(bindFile);
+ }
+ File catalog = new File(catalogFileName);
+ client = WSDynamicClientFactory.getInstance().getJAXWSClient(wsdl, username, password, null, bindings, catalog);
} catch (Exception e) {
- throw new ActionLifecycleException("Error durinfg wise client cache cleaning", e);
+ e.printStackTrace();
+ throw new ActionProcessingException("Error durinfg wise client creation", e);
}
+ logger.info("DEPLOY #2");
+ this.setMethod(client.getWSMethod(this.serviceName, this.endPointName, this.soapAction));
+ logger.info("DEPLOY #3");
+ this.setEndpoint(this.getMethod().getEndpoint());
+ logger.info("DEPLOY #4");
+ for (String config : customHandlers) {
+ logger.info("adding custom handler:" + config);
+ try {
+ Class<?> clazz = Thread.currentThread().getContextClassLoader().loadClass(config);
+ this.getEndpoint().addHandler((Handler)clazz.newInstance());
+ } catch (Exception e) {
+ logger.info("Failed during custom handler addition:" + e.getLocalizedMessage());
+ }
+ }
+ if (loggingEnabled) {
+ logger.info("adding logging handler");
+ this.getEndpoint().addHandler(new LoggingHandler());
+ }
+ try {
+ if (wsseEnabled) {
+ logger.info("enabling wsse");
+ this.getEndpoint().addWSExtension(new WSSecurityEnabler());
+ }
+ if (wsaEnabled) {
+ logger.info("enabling wsa");
+ this.getEndpoint().addWSExtension(new WSAddressingEnabler());
+ }
+ if (mtomEnabled) {
+ logger.info("enabling mtom");
+ this.getEndpoint().addWSExtension(new MTOMEnabler());
+ }
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+
}
@Override
@@ -218,78 +295,48 @@
}
public Message process( final Message message ) throws ActionProcessingException {
+
+ if (this.getMethod() == null) {
+ this.beforeFirstCall();
+ }
Object params;
- WSDynamicClient client = null;
- // get client from cache
- try {
- client = WSDynamicClientFactory.getInstace().getClient(wsdl, serviceName, username, password);
- } catch (Exception e) {
- e.printStackTrace();
- throw new ActionProcessingException("Error durinfg wise client creation", e);
+ WiseMapper responseMapper = null;
+ WiseMapper requestMapper = null;
+
+ if (this.smooksRequestMapperURL != null) {
+ requestMapper = new SmooksMapper(this.smooksRequestMapperURL, this.smooksRequestReport);
}
+ if (this.smooksResponseMapperURL != null) {
+ responseMapper = new SmooksMapper(this.smooksResponseMapperURL, this.smooksResponseReport);
+ }
+
try {
params = payloadProxy.getPayload(message);
} catch (MessageDeliverException e) {
throw new ActionProcessingException("Could not locate SOAP message parameters from payload", e);
}
- // if (params.isEmpty()) {
- // logger.warn("Params Map found in message, but the map is empty.");
- // }
- Map<String, WSEndpoint> endpointsMap = client.processEndpoints();
- WSEndpoint endpoint;
- if (endPointName != null) {
- endpoint = endpointsMap.get(endPointName);
- } else {
- endpoint = endpointsMap.values().iterator().next();
- }
-
for (String config : smooksHandler) {
logger.info("adding smooks handler:" + config);
if (params instanceof Map) {
- endpoint.addHandler(new SmooksHandler(config, (Map)params));
+ this.getEndpoint().addHandler(new SmooksHandler(config, (Map)params));
} else {
- endpoint.addHandler(new SmooksHandler(config, null));
+ this.getEndpoint().addHandler(new SmooksHandler(config, null));
}
}
- for (String config : customHandlers) {
- logger.info("adding custom handler:" + config);
- try {
- Class<?> clazz = Thread.currentThread().getContextClassLoader().loadClass(config);
- endpoint.addHandler((Handler)clazz.newInstance());
- } catch (Exception e) {
- logger.info("Failed during custom handler addition:" + e.getLocalizedMessage());
- }
- }
-
- if (loggingEnabled) {
- logger.info("adding logging handler");
- endpoint.addHandler(new LoggingHandler());
- }
-
- Map<String, WSMethod> wsmethodsMap = endpoint.getWSMethods();
-
- InvocationResult result;
+ InvocationResult result = null;
try {
- WiseMapper mapper = null;
- if (this.smooksRequestMapperURL != null) {
- mapper = new SmooksMapper(this.smooksRequestMapperURL, "smook/report/report.html");
- }
- result = wsmethodsMap.get(this.soapAction).invoke(params, mapper);
- } catch (WiseException e) {
+ result = this.getMethod().invoke(params, requestMapper);
+ } catch (Exception e) {
+ e.printStackTrace();
throw new ActionProcessingException("Could not call method" + this.soapAction, e);
}
- WiseMapper mapper = null;
- if (this.smooksResponseMapperURL != null) {
- mapper = new SmooksMapper(this.smooksResponseMapperURL, "smook/report/report.html");
- }
- // And process the response into the message...
-
try {
- payloadProxy.setPayload(message, result.getMappedResult(mapper));
+ Map map = result.getMapRequestAndResult(responseMapper, (Map)params);
+ payloadProxy.setPayload(message, map);
} catch (Exception e) {
throw new ActionProcessingException("Could not set payload to SOAP message", e);
}
@@ -297,4 +344,32 @@
return message;
}
+ /**
+ * @return the method
+ */
+ public synchronized WSMethod getMethod() {
+ return method;
+ }
+
+ /**
+ * @param method the method to set
+ */
+ public synchronized void setMethod( WSMethod method ) {
+ this.method = method;
+ }
+
+ /**
+ * @return the endpoint
+ */
+ public synchronized WSEndpoint getEndpoint() {
+ return endpoint;
+ }
+
+ /**
+ * @param endpoint the endpoint to set
+ */
+ public synchronized void setEndpoint( WSEndpoint endpoint ) {
+ this.endpoint = endpoint;
+ }
+
}
Copied: labs/jbossesb/workspace/mlittle/legstar/product/services/soap/src/main/resources/wise-config.beans (from rev 24846, labs/jbossesb/trunk/product/services/soap/src/main/resources/wise-config.beans)
Copied: labs/jbossesb/workspace/mlittle/legstar/product/services/soap/src/main/resources/wise-config.beans/META-INF (from rev 24846, labs/jbossesb/trunk/product/services/soap/src/main/resources/wise-config.beans/META-INF)
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/services/soap/src/main/resources/wise-config.beans/META-INF/jboss-beans.xml
===================================================================
--- labs/jbossesb/trunk/product/services/soap/src/main/resources/wise-config.beans/META-INF/jboss-beans.xml 2009-01-21 09:35:03 UTC (rev 24846)
+++ labs/jbossesb/workspace/mlittle/legstar/product/services/soap/src/main/resources/wise-config.beans/META-INF/jboss-beans.xml 2009-01-21 15:38:08 UTC (rev 24850)
@@ -1,39 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<deployment xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="urn:jboss:bean-deployer bean-deployer_1_0.xsd"
- xmlns="urn:jboss:bean-deployer">
-
- <bean name="WiseKernelLocator"
- class="org.jboss.wise.core.jbossmc.KernelUtil">
- <property name="kernel">
- <inject bean="jboss.kernel:service=Kernel"/>
- </property>
- </bean>
-
- <bean name="WiseClientConfiguration" class="org.jboss.wise.core.jbossmc.beans.WiseClientConfiguration" >
- <property name="defaultUserName">foo</property>
- <property name="defaultPassword">pwd</property>
- <property name="defaultTmpDeployDir">/home/oracle/temp</property>
- <property name="logConfig">resources/META-INF/wise-log4j.xml</property>
- </bean>
-
- <bean name="WSDynamicClientFactory" class="org.jboss.wise.core.jbossmc.beans.ReflectionWSDynamicClientFactory">
- <property name="config"><inject bean="WiseClientConfiguration"></inject> </property>
- </bean>
-
- <bean name="WSConsumer" class="org.jboss.wise.core.consumer.impl.jbosswsnative.WSImportImpl">
- <property name="keepSource">true</property>
- <property name="verbose">true</property>
- </bean>
- <bean name="EnablerDelegate" class="org.jboss.wise.core.wsextensions.impl.jbosswsnative.ReflectionEnablerDelegate">
- <property name="defaultSecurityConfig"><inject bean="WSSEDefault" /></property>
- </bean>
-
- <bean name="WSSEDefault" class="org.jboss.wise.core.wsextensions.impl.jbosswsnative.NativeSecurityConfig">
- <!-- We use a relative path to the jboss-wsse-client.xml file that is in the META-INF of esb file -->
- <property name="configFileURL">META-INF/jboss-wsse-client.xml</property>
- <property name="configName">Standard WSSecurity Client</property>
- </bean>
-
-</deployment>
Copied: labs/jbossesb/workspace/mlittle/legstar/product/services/soap/src/main/resources/wise-config.beans/META-INF/jboss-beans.xml (from rev 24846, labs/jbossesb/trunk/product/services/soap/src/main/resources/wise-config.beans/META-INF/jboss-beans.xml)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/services/soap/src/main/resources/wise-config.beans/META-INF/jboss-beans.xml (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/services/soap/src/main/resources/wise-config.beans/META-INF/jboss-beans.xml 2009-01-21 15:38:08 UTC (rev 24850)
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<deployment xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="urn:jboss:bean-deployer bean-deployer_1_0.xsd"
+ xmlns="urn:jboss:bean-deployer">
+
+ <bean name="WiseKernelLocator"
+ class="org.jboss.wise.core.jbossmc.KernelUtil">
+ <property name="kernel">
+ <inject bean="jboss.kernel:service=Kernel"/>
+ </property>
+ </bean>
+
+ <bean name="WiseClientConfiguration" class="org.jboss.wise.core.jbossmc.beans.WiseClientConfiguration" >
+ <property name="defaultUserName">foo</property>
+ <property name="defaultPassword">pwd</property>
+ <property name="defaultTmpDeployDir">/home/oracle/temp</property>
+ <property name="logConfig">resources/META-INF/wise-log4j.xml</property>
+ </bean>
+
+ <bean name="WSDynamicClientFactory" class="org.jboss.wise.core.jbossmc.beans.ReflectionWSDynamicClientFactory">
+ <property name="config"><inject bean="WiseClientConfiguration"></inject> </property>
+ </bean>
+
+ <bean name="WSConsumer" class="org.jboss.wise.core.consumer.impl.jbosswsnative.WSImportImpl">
+ <property name="keepSource">true</property>
+ <property name="verbose">true</property>
+ </bean>
+ <bean name="EnablerDelegate" class="org.jboss.wise.core.wsextensions.impl.jbosswsnative.ReflectionEnablerDelegate">
+ <property name="defaultSecurityConfig"><inject bean="WSSEDefault" /></property>
+ </bean>
+
+ <bean name="WSSEDefault" class="org.jboss.wise.core.wsextensions.impl.jbosswsnative.NativeSecurityConfig">
+ <!-- We use a relative path to the jboss-wsse-client.xml file that is in the META-INF of esb file -->
+ <property name="configFileURL">META-INF/jboss-wsse-client.xml</property>
+ <property name="configName">Standard WSSecurity Client</property>
+ </bean>
+
+</deployment>
Modified: labs/jbossesb/workspace/mlittle/legstar/product/services/soap/src/test/java/org/jboss/soa/esb/actions/soap/JBossWSAdapterContractPublisherUnitTest.java
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/services/soap/src/test/java/org/jboss/soa/esb/actions/soap/JBossWSAdapterContractPublisherUnitTest.java 2009-01-21 14:47:17 UTC (rev 24849)
+++ labs/jbossesb/workspace/mlittle/legstar/product/services/soap/src/test/java/org/jboss/soa/esb/actions/soap/JBossWSAdapterContractPublisherUnitTest.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -24,13 +24,13 @@
import org.jboss.internal.soa.esb.util.StreamUtils;
import org.jboss.soa.esb.ConfigurationException;
import org.jboss.soa.esb.addressing.EPR;
-import org.jboss.soa.esb.listeners.config.xbeanmodel.ActionDocument;
-import org.jboss.soa.esb.listeners.config.xbeanmodel.PropertyDocument;
+import org.jboss.soa.esb.listeners.config.Action;
import org.jboss.soa.esb.testutils.StringUtils;
import org.xml.sax.SAXException;
import java.io.IOException;
import java.net.URI;
+import java.util.Properties;
/**
* @author <a href="mailto:tom.fennelly at jboss.com">tom.fennelly at jboss.com</a>
@@ -78,21 +78,12 @@
assertTrue("WSDL Update failed. \n\n*** Expected:\n\n" + wsdlOutExpected + "\n\n*** Got:\n\n" + wsdlOut, StringUtils.equalsIgnoreLinebreaks(wsdlOutExpected, wsdlOut, false));
}
- private ActionDocument.Action buildActionConfig(boolean rewriteUrls) {
- ActionDocument.Action action = ActionDocument.Action.Factory.newInstance();
- PropertyDocument.Property[] properties = new PropertyDocument.Property[2];
+ private Action buildActionConfig(boolean rewriteUrls) {
+ final Properties properties = new Properties() ;
- properties[0] = newConfigProperty(SOAPProcessor.JBOSSWS_ENDPOINT, "BlahEndpoint");
- properties[1] = newConfigProperty(SOAPProcessor.REWRITE_ENDPOINT_URL, Boolean.toString(rewriteUrls));
- action.setPropertyArray(properties);
-
- return action;
+ properties.put(SOAPProcessor.JBOSSWS_ENDPOINT, "BlahEndpoint");
+ properties.put(SOAPProcessor.REWRITE_ENDPOINT_URL, Boolean.toString(rewriteUrls));
+
+ return new Action("name", "class", "process", properties) ;
}
-
- private PropertyDocument.Property newConfigProperty(String name, String value) {
- PropertyDocument.Property property = PropertyDocument.Property.Factory.newInstance();
- property.setName(name);
- property.setValue(value);
- return property;
- }
}
Modified: labs/jbossesb/workspace/mlittle/legstar/product/services/soap/src/test/java/org/jboss/soa/esb/actions/soap/request/MockSOAPClient.java
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/services/soap/src/test/java/org/jboss/soa/esb/actions/soap/request/MockSOAPClient.java 2009-01-21 14:47:17 UTC (rev 24849)
+++ labs/jbossesb/workspace/mlittle/legstar/product/services/soap/src/test/java/org/jboss/soa/esb/actions/soap/request/MockSOAPClient.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -50,6 +50,15 @@
public String buildRequest(String wsdl, String operation, Map params, Properties httpClientProps, String smooksResource, String soapNs) throws IOException, UnsupportedOperationException, SAXException {
return service.buildRequest(wsdl, operation, params, httpClientProps, smooksResource, soapNs);
}
+
+ public String buildResponse(String wsdl, String operation, Map params, Properties httpClientProps, String smooksResource, String soapNs) throws IOException, UnsupportedOperationException, SAXException {
+ return service.buildResponse(wsdl, operation, params, httpClientProps, smooksResource, soapNs) ;
+ }
+
+ public String buildFault(String wsdl, String operation, String faultName, Map params, Properties httpClientProps, String smooksResource, String soapNs) throws IOException, UnsupportedOperationException, SAXException {
+ return service.buildFault(wsdl, operation, faultName, params, httpClientProps, smooksResource, soapNs) ;
+ }
+
public String getEndpoint(String wsdl, Properties httpClientProps) throws IOException {
return service.getEndpoint(wsdl, httpClientProps);
}
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/services/soapui-client/src/lib/commons-codec-1.2.jar
===================================================================
(Binary files differ)
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/services/soapui-client/src/lib/commons-httpclient-3.0.1.jar
===================================================================
(Binary files differ)
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/services/soapui-client/src/lib/commons-logging-1.0.4.jar
===================================================================
(Binary files differ)
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/services/soapui-client/src/lib/commons-ssl-0.3.4.jar
===================================================================
(Binary files differ)
Copied: labs/jbossesb/workspace/mlittle/legstar/product/services/soapui-client/src/lib/soap-xmlbeans-1.2.jar (from rev 24846, labs/jbossesb/trunk/product/services/soapui-client/src/lib/soap-xmlbeans-1.2.jar)
===================================================================
(Binary files differ)
Modified: labs/jbossesb/workspace/mlittle/legstar/product/services/soapui-client/src/main/java/org/jboss/soa/esb/services/soapui/SoapUIClientService.java
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/services/soapui-client/src/main/java/org/jboss/soa/esb/services/soapui/SoapUIClientService.java 2009-01-21 14:47:17 UTC (rev 24849)
+++ labs/jbossesb/workspace/mlittle/legstar/product/services/soapui-client/src/main/java/org/jboss/soa/esb/services/soapui/SoapUIClientService.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -27,40 +27,59 @@
import java.io.InputStream;
import java.io.StringReader;
import java.net.URL;
-import java.util.*;
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Properties;
+import java.util.Set;
+import javax.wsdl.Part;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
+import javax.xml.transform.dom.DOMResult;
import javax.xml.transform.dom.DOMSource;
-import javax.xml.transform.dom.DOMResult;
import javax.xml.transform.stream.StreamResult;
+import org.apache.commons.httpclient.HttpClient;
import org.apache.log4j.Logger;
-import org.apache.commons.httpclient.HttpClient;
+import org.apache.xmlbeans.XmlCursor;
+import org.apache.xmlbeans.XmlObject;
+import org.apache.xmlbeans.XmlOptions;
import org.jboss.internal.soa.esb.soap.OGNLUtils;
+import org.jboss.internal.soa.esb.util.ESBProperties;
import org.jboss.internal.soa.esb.util.LRUCache;
-import org.jboss.internal.soa.esb.util.ESBProperties;
+import org.jboss.soa.esb.ConfigurationException;
import org.jboss.internal.soa.esb.util.XMLHelper;
import org.jboss.soa.esb.dom.YADOMUtil;
import org.jboss.soa.esb.http.HttpClientFactory;
-import org.jboss.soa.esb.ConfigurationException;
import org.jboss.system.ServiceMBeanSupport;
import org.jboss.system.server.ServerConfig;
import org.jboss.system.server.ServerConfigLocator;
-import org.milyn.xml.XmlUtil;
import org.milyn.Smooks;
import org.milyn.resource.URIResourceLocator;
-import org.w3c.dom.*;
+import org.milyn.xml.XmlUtil;
+import org.w3c.dom.Comment;
+import org.w3c.dom.Document;
+import org.w3c.dom.Element;
+import org.w3c.dom.Node;
+import org.w3c.dom.NodeList;
+import org.xml.sax.InputSource;
import org.xml.sax.SAXException;
-import org.xml.sax.InputSource;
import com.eviware.soapui.SoapUI;
import com.eviware.soapui.impl.wsdl.WsdlInterface;
+import com.eviware.soapui.impl.wsdl.WsdlOperation;
import com.eviware.soapui.impl.wsdl.WsdlProject;
+import com.eviware.soapui.impl.wsdl.support.soap.SoapMessageBuilder;
import com.eviware.soapui.impl.wsdl.support.wsdl.WsdlLoader;
+import com.eviware.soapui.impl.wsdl.support.xsd.SampleXmlUtil;
+import com.eviware.soapui.model.iface.MessagePart;
import com.eviware.soapui.model.iface.Operation;
+import com.eviware.soapui.settings.WsdlSettings;
+
/**
* Soap UI Soap Client Service MBean.
*
@@ -288,8 +307,67 @@
Operation operationInst = getOperation(wsdl, operation, httpClientProps);
String requestTemplate = operationInst.getRequestAt(0).getRequestContent();
- return buildRequest(requestTemplate, params, smooksResource, soapNs);
+ return buildSOAPMessage(requestTemplate, params, smooksResource, soapNs);
}
+
+ /**
+ * Use soapUI to build a SOAP response for the specified operation on the specified WSDL.
+ *
+ * @param wsdl WSDL URL
+ * @param operation Operation name.
+ * @param params Message parameter map.
+ * @param httpClientProps {@link org.apache.commons.httpclient.HttpClient} creation properties.
+ * @param smooksResource {@link org.milyn.Smooks} transformation configuration resource file.
+ * Null if no transformations are to be performed on the SOAP message before serializing it
+ * for return.
+ * @param soapNs optional SOAP namespace
+ * @return The SOAP Message.
+ * @throws IOException Failed to load WSDL.
+ * @throws UnsupportedOperationException Operation not supported on specified WSDL.
+ * @throws SAXException Failed to parse the SOAP UI generated request message.
+ */
+ public String buildResponse(String wsdl, String operation, Map params, Properties httpClientProps, String smooksResource, String soapNs) throws IOException, UnsupportedOperationException, SAXException {
+ Operation operationInst = getOperation(wsdl, operation, httpClientProps);
+ WsdlOperation wsdlOperation = (WsdlOperation)operationInst;
+ String responseTemplate = wsdlOperation.createResponse(true);
+ return buildSOAPMessage(responseTemplate, params, smooksResource, soapNs);
+ }
+
+
+ public String buildFault(String wsdl, String operation, String faultName, Map params, Properties httpClientProps, String smooksResource, String soapNs) throws IOException, UnsupportedOperationException, SAXException {
+ String faultDetail = null;
+ Operation operationInst = getOperation(wsdl, operation, httpClientProps);
+ WsdlOperation wsdlOperation = (WsdlOperation)operationInst;
+ MessagePart[] faultParts = wsdlOperation.getFaultParts();
+ params.put("Fault.faultcode","soapenv:server");
+ SoapMessageBuilder soapMessageBuilder = wsdlOperation.getInterface().getMessageBuilder();
+ String faultTemplate = "<soapenv:Envelope xmlns:soapenv=\"http://schemas.xmlsoap.org/soap/envelope/\">"
+ + "<soapenv:Body><soapenv:Fault><faultcode>?</faultcode><faultstring>?</faultstring><detail>";
+ XmlObject detail = XmlObject.Factory.newInstance();
+ for (int i = 0 ; i < faultParts.length; i++) {
+ MessagePart.FaultPart faultPart = (MessagePart.FaultPart)faultParts[i];
+ if (faultPart.getName().equalsIgnoreCase(faultName)) {
+ SampleXmlUtil generator = new SampleXmlUtil( false );
+ generator.setExampleContent( false );
+ generator.setTypeComment( false );
+ XmlCursor cursor = detail.newCursor();
+ cursor.toFirstContentToken();
+ generator.setTypeComment( true );
+ generator.setIgnoreOptional(wsdlOperation.getInterface().getSettings().getBoolean( WsdlSettings.XML_GENERATION_ALWAYS_INCLUDE_OPTIONAL_ELEMENTS ) );
+ for( Part part : faultPart.getWsdlParts() ) {
+ try {
+ soapMessageBuilder.createElementForPart(part, cursor, generator);
+ } catch (Exception e) {
+ logger.error("Unable to create soap fualt template", e);
+ }
+ }
+ }
+ }
+ faultTemplate = faultTemplate + detail.xmlText( new XmlOptions().setSaveAggressiveNamespaces().setSavePrettyPrint())
+ + "</detail></soapenv:Fault></soapenv:Body></soapenv:Envelope>";
+ faultDetail = buildSOAPMessage(faultTemplate, params, smooksResource, soapNs);
+ return faultDetail;
+ }
/**
* Get the 1st endpoint from the specified WSDL.
@@ -353,7 +431,7 @@
return new EsbWsdlLoader(wsdl, httpClient);
}
- private String buildRequest(String soapMessageTemplate, Map params, String smooksResource, String soapNs) throws IOException, SAXException {
+ private String buildSOAPMessage(String soapMessageTemplate, Map params, String smooksResource, String soapNs) throws IOException, SAXException {
Document messageDoc = getDocBuilder().parse(new InputSource(new StringReader(soapMessageTemplate)));
Element docRoot = messageDoc.getDocumentElement();
Modified: labs/jbossesb/workspace/mlittle/legstar/product/services/soapui-client/src/main/java/org/jboss/soa/esb/services/soapui/SoapUIClientServiceMBean.java
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/services/soapui-client/src/main/java/org/jboss/soa/esb/services/soapui/SoapUIClientServiceMBean.java 2009-01-21 14:47:17 UTC (rev 24849)
+++ labs/jbossesb/workspace/mlittle/legstar/product/services/soapui-client/src/main/java/org/jboss/soa/esb/services/soapui/SoapUIClientServiceMBean.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -55,6 +55,26 @@
public abstract String buildRequest(String wsdl, String operation, Map params, Properties httpClientProps, String smooksResource, String soapNs) throws IOException, UnsupportedOperationException, SAXException;
/**
+ * Use soapUI mockService to Build a SOAP response for the specified operation on the specified WSDL.
+ *
+ * @param wsdl WSDL URL.
+ * @param operation Operation name.
+ * @param params Message parameter map..
+ * @param smooksResource {@link org.milyn.Smooks} transformation configuration resource file.
+ * Null if no transformations are to be performed on the SOAP message before serializing it
+ * for return.
+ * @param soapNs optional SOAP namespace
+ * @return The SOAP Message.
+ * @throws IOException Failed to load WSDL.
+ * @throws UnsupportedOperationException Operation not supported on specified WSDL.
+ * @throws SAXException Failed to parse the SOAP UI generated request message.
+ */
+ public abstract String buildResponse(String wsdl, String operation, Map params, Properties httpClientProps, String smooksResource, String soapNs) throws IOException, UnsupportedOperationException, SAXException;
+
+
+ public abstract String buildFault(String wsdl, String operation, String faultName, Map params, Properties httpClientProps, String smooksResource, String soapNs) throws IOException, UnsupportedOperationException, SAXException;
+
+ /**
* Get the 1st endpoint from the specified WSDL.
*
* @param wsdl WSDL URL.
Modified: labs/jbossesb/workspace/mlittle/legstar/product/services/soapui-client/src/test/java/org/jboss/soa/esb/services/soapui/SoapUIClientServiceMBeanUnitTest.java
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/services/soapui-client/src/test/java/org/jboss/soa/esb/services/soapui/SoapUIClientServiceMBeanUnitTest.java 2009-01-21 14:47:17 UTC (rev 24849)
+++ labs/jbossesb/workspace/mlittle/legstar/product/services/soapui-client/src/test/java/org/jboss/soa/esb/services/soapui/SoapUIClientServiceMBeanUnitTest.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -312,6 +312,26 @@
assertEquals("http://localhost:18080/active-bpel/services/RetailerCallback", mbean.getEndpoint(wsdlFile.toURI().toString(), properties));
}
+ public void test_BuildResponse() throws Exception {
+ File wsdlFile = new File(WSDL_LOCATAION + "/helloworld.wsdl");
+ properties.setProperty(HttpClientFactory.TARGET_HOST_URL, wsdlFile.toURI().toString());
+ SoapUIClientService mbean = new SoapUIClientService();
+ Map<Object, Object> paras = new HashMap<Object, Object>();
+ paras.put("sayHiReponse.arg0", "response");
+ String str = mbean.buildResponse(wsdlFile.toURL().toString(), "HelloWorldPubServiceOp", paras, properties, null, null);
+ assertTrue("Failed to generate correct soap response", str.indexOf("<say:arg0>response</say:arg0>") > -1);
+ }
+
+ public void test_BuildFault() throws Exception {
+ File wsdlFile = new File(WSDL_LOCATAION + "/helloworld.wsdl");
+ properties.setProperty(HttpClientFactory.TARGET_HOST_URL, wsdlFile.toURI().toString());
+ SoapUIClientService mbean = new SoapUIClientService();
+ Map<Object, Object> paras = new HashMap<Object, Object>();
+ paras.put("Fault.detail.sayFault.code", "test");
+ String str = mbean.buildFault(wsdlFile.toURL().toString(), "HelloWorldPubServiceOp", "HelloWorldPubServiceFault1", paras, properties, null, null);
+ assertTrue("Failed to generate correct soap fault message", str.indexOf("<say:code>test</say:code>") > -1);
+ }
+
private void addOrderItems(List<OrderItem> items) {
items.add(new OrderItem(1, "item1", 1, new BigDecimal(1.00), 1));
items.add(new OrderItem(2, "item2", 2, new BigDecimal(2.00), 2));
@@ -389,5 +409,5 @@
final InputStream outputIS = SoapUIClientServiceMBeanUnitTest.class.getResourceAsStream("output.xml") ;
System.out.println("compare returns: " + compareCharStreams(expectedIS, outputIS));
- }
+ }
}
Copied: labs/jbossesb/workspace/mlittle/legstar/product/services/soapui-client/src/test/java/org/jboss/soa/esb/services/soapui/helloworld.wsdl (from rev 24846, labs/jbossesb/trunk/product/services/soapui-client/src/test/java/org/jboss/soa/esb/services/soapui/helloworld.wsdl)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/services/soapui-client/src/test/java/org/jboss/soa/esb/services/soapui/helloworld.wsdl (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/services/soapui-client/src/test/java/org/jboss/soa/esb/services/soapui/helloworld.wsdl 2009-01-21 15:38:08 UTC (rev 24850)
@@ -0,0 +1,71 @@
+<wsdl:definitions targetNamespace='http://soa.jboss.org/ESBServiceSample' xmlns:ns1='http://www.jboss.org/sayHi' xmlns:ns2='http://www.jboss.org/sayHi' xmlns:ns3='http://www.jboss.org/sayHi' xmlns:soap='http://schemas.xmlsoap.org/wsdl/soap/' xmlns:tns='http://soa.jboss.org/ESBServiceSample' xmlns:wsdl='http://schemas.xmlsoap.org/wsdl/'>
+ <wsdl:types>
+ <xs:schema elementFormDefault='qualified' targetNamespace='http://www.jboss.org/sayHi' version='1.0' xmlns:x1='http://www.jboss.org/sayHi' xmlns:xs='http://www.w3.org/2001/XMLSchema'>
+ <xs:element name='sayHi' type='x1:sayHi'/>
+ <xs:complexType name='sayHi'>
+ <xs:sequence>
+ <xs:element minOccurs='0' name='arg0' type='xs:string'/>
+ </xs:sequence>
+ </xs:complexType>
+
+ </xs:schema>
+ <xs:schema elementFormDefault='qualified' targetNamespace='http://www.jboss.org/sayHi' version='1.0' xmlns:x1='http://www.jboss.org/sayHi' xmlns:xs='http://www.w3.org/2001/XMLSchema'>
+ <xs:element name='sayHiReponse' type='x1:sayHiReponse'/>
+ <xs:complexType name='sayHiReponse'>
+ <xs:sequence>
+ <xs:element minOccurs='0' name='arg0' type='xs:string'/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:schema>
+
+ <xs:schema elementFormDefault='qualified' targetNamespace='http://www.jboss.org/sayHi' version='1.0' xmlns:x1='http://www.jboss.org/sayHi' xmlns:xs='http://www.w3.org/2001/XMLSchema'>
+ <xs:element name='sayFault' type='x1:fault'/>
+ <xs:complexType name='fault'>
+ <xs:sequence>
+ <xs:element name='code' type='xs:string'/>
+ <xs:element name='faultString' type='xs:string'/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:schema>
+
+ </wsdl:types>
+ <wsdl:message name='HelloWorldPubServiceReq'>
+ <wsdl:part element='ns1:sayHi' name='in'></wsdl:part>
+ </wsdl:message>
+ <wsdl:message name='HelloWorldPubServiceRes'>
+ <wsdl:part element='ns1:sayHiReponse' name='out'></wsdl:part>
+ </wsdl:message>
+ <wsdl:message name='HelloWorldPubServiceFault1'>
+ <wsdl:part element='ns1:sayFault' name='fault1'></wsdl:part>
+
+ </wsdl:message>
+ <wsdl:portType name='HelloWorldPubServicePortType'>
+ <wsdl:operation name='HelloWorldPubServiceOp'>
+ <wsdl:input message='tns:HelloWorldPubServiceReq' name='HelloWorldPubServiceReq'></wsdl:input>
+ <wsdl:output message='tns:HelloWorldPubServiceRes' name='HelloWorldPubServiceRes'></wsdl:output>
+ <wsdl:fault message='tns:HelloWorldPubServiceFault1' name='HelloWorldPubServiceFault1'></wsdl:fault>
+ </wsdl:operation>
+ </wsdl:portType>
+ <wsdl:binding name='HelloWorldPubServiceBinding' type='tns:HelloWorldPubServicePortType'>
+
+ <soap:binding style='document' transport='http://schemas.xmlsoap.org/soap/http'/>
+ <wsdl:operation name='HelloWorldPubServiceOp'>
+ <wsdl:input>
+ <soap:body use='literal'/>
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body use='literal'/>
+ </wsdl:output>
+ <wsdl:fault name='HelloWorldPubServiceFault1'>
+
+ <soap:fault name='HelloWorldPubServiceFault1' use='literal'/>
+ </wsdl:fault>
+ </wsdl:operation>
+ </wsdl:binding>
+ <wsdl:service name='HelloWorldPubServiceService'>
+ <wsdl:port binding='tns:HelloWorldPubServiceBinding' name='HelloWorldPubServicePortType'>
+ <soap:address location='http://127.0.0.1:8080/Quickstart_helloworld_pub_service/ESBServiceSample/HelloWorldPubService'/>
+ </wsdl:port>
+ </wsdl:service>
+
+</wsdl:definitions>
\ No newline at end of file
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/services/spring/lib/ext/build-time/asm.jar
===================================================================
(Binary files differ)
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/services/spring/lib/ext/build-time/cglib-2.1_3.jar
===================================================================
(Binary files differ)
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/services/spring/lib/ext/build-time/commons-logging-1.0.4.jar
===================================================================
(Binary files differ)
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/services/spring/lib/ext/build-time/junit-4.1.jar
===================================================================
(Binary files differ)
Deleted: labs/jbossesb/workspace/mlittle/legstar/product/services/spring/lib/ext/build-time/log4j.jar
===================================================================
(Binary files differ)
Modified: labs/jbossesb/workspace/mlittle/legstar/product/services/spring/src/main/java/org/jboss/soa/esb/actions/AbstractSpringAction.java
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/services/spring/src/main/java/org/jboss/soa/esb/actions/AbstractSpringAction.java 2009-01-21 14:47:17 UTC (rev 24849)
+++ labs/jbossesb/workspace/mlittle/legstar/product/services/spring/src/main/java/org/jboss/soa/esb/actions/AbstractSpringAction.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -26,7 +26,7 @@
import org.jboss.soa.esb.message.Message;
import org.springframework.beans.BeansException;
import org.springframework.beans.factory.BeanFactory;
-import org.springframework.context.ApplicationContext;
+import org.springframework.context.support.AbstractApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
/**
@@ -62,9 +62,9 @@
/** configuration object */
protected ConfigTree configTree;
- /** Spring bean factory */
- private BeanFactory factory;
-
+ /** Spring Application Context */
+ private AbstractApplicationContext appContext;
+
/**
* Constructs and instance with storing the passed in ConfigTree instance.
* <p/>
@@ -101,7 +101,7 @@
}
springContextXml = configTree.getAttribute( SPRING_CONTEXT_XML_ATTR );
- if (springContextXml == null)
+ if (springContextXml == null || springContextXml.equals(""))
{
throw new ActionLifecycleException( "No Spring context specified on action config: " + SPRING_CONTEXT_XML_ATTR + "." );
}
@@ -117,7 +117,7 @@
*/
public boolean isBeanFactoryNull()
{
- return factory == null;
+ return appContext == null;
}
/**
@@ -151,6 +151,11 @@
*/
public void destroy() throws ActionLifecycleException
{
+ if (appContext != null)
+ {
+ appContext.close();
+ appContext = null;
+ }
}
/**
@@ -175,7 +180,7 @@
*/
protected BeanFactory getBeanFactory() throws ActionLifecycleException
{
- return factory;
+ return appContext;
}
/**
@@ -200,19 +205,7 @@
{
try
{
- ApplicationContext springContext;
-
- if (springContextXml.contains( "," ))
- {
- String[] springContextXmls = springContextXml.split( "," );
- springContext = new ClassPathXmlApplicationContext( springContextXmls );
- }
- else
- {
- springContext = new ClassPathXmlApplicationContext( springContextXml );
- }
-
- factory = (BeanFactory) springContext;
+ appContext = new ClassPathXmlApplicationContext(springContextXml.split(","));
}
catch (final BeansException e)
{
Modified: labs/jbossesb/workspace/mlittle/legstar/product/services/spring/src/test/java/org/jboss/soa/esb/actions/spring/AbstractSpringActionUnitTest.java
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/services/spring/src/test/java/org/jboss/soa/esb/actions/spring/AbstractSpringActionUnitTest.java 2009-01-21 14:47:17 UTC (rev 24849)
+++ labs/jbossesb/workspace/mlittle/legstar/product/services/spring/src/test/java/org/jboss/soa/esb/actions/spring/AbstractSpringActionUnitTest.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -20,6 +20,8 @@
package org.jboss.soa.esb.actions.spring;
import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
import junit.framework.JUnit4TestAdapter;
import org.jboss.soa.esb.actions.ActionLifecycleException;
@@ -67,6 +69,22 @@
assertEquals("Greeting Changed", mockAction.sayHelloAopStyle());
assertEquals(false, mockAction.isBeanFactoryNull());
}
+
+ @Test
+ public void destroy() throws Exception
+ {
+ MockSpringAction mockAction = createMockAction( new String[] { springContext1, springContext2 } );
+ mockAction.sayHelloSpring();
+ assertFalse(mockAction.isBeanFactoryNull());
+ mockAction.destroy();
+ assertTrue(mockAction.isBeanFactoryNull());
+ }
+
+ @Test (expected = ActionLifecycleException.class)
+ public void exptySpringContextFile() throws Exception
+ {
+ createMockAction( new String[] { "" } );
+ }
public static junit.framework.Test suite()
{
@@ -81,13 +99,19 @@
private MockSpringAction createMockAction( String[] files) throws Exception
{
final ConfigTree config = createConfig();
- final StringBuilder sb = new StringBuilder();
- for (String configFile : files)
- {
- sb.append( configFile ).append( ',' );
- }
- config.setAttribute( "springContextXml" , sb.toString() );
-
+ if (files.length == 1)
+ {
+ config.setAttribute( "springContextXml" , files[0]);
+ }
+ else
+ {
+ final StringBuilder sb = new StringBuilder();
+ for (String configFile : files)
+ {
+ sb.append(configFile).append(",");
+ }
+ config.setAttribute( "springContextXml" , sb.toString() );
+ }
return new MockSpringAction( config );
}
}
Modified: labs/jbossesb/workspace/mlittle/legstar/product/services/spring/src/test/java/org/jboss/soa/esb/actions/spring/SaySomething.java
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/services/spring/src/test/java/org/jboss/soa/esb/actions/spring/SaySomething.java 2009-01-21 14:47:17 UTC (rev 24849)
+++ labs/jbossesb/workspace/mlittle/legstar/product/services/spring/src/test/java/org/jboss/soa/esb/actions/spring/SaySomething.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -8,15 +8,21 @@
*/
public class SaySomething
{
- private String greeting;
+ private String greeting;
- public String getGreeting()
- {
- return greeting;
- }
+ public String getGreeting()
+ {
+ return greeting;
+ }
- public void setGreeting(String greeting)
- {
- this.greeting = greeting;
- }
+ public void setGreeting(String greeting)
+ {
+ this.greeting = greeting;
+ }
+
+ public void destroy()
+ {
+ System.out.println("destroy called");
+ }
+
}
Modified: labs/jbossesb/workspace/mlittle/legstar/product/services/spring/src/test/resources/spring-context-2.xml
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/services/spring/src/test/resources/spring-context-2.xml 2009-01-21 14:47:17 UTC (rev 24849)
+++ labs/jbossesb/workspace/mlittle/legstar/product/services/spring/src/test/resources/spring-context-2.xml 2009-01-21 15:38:08 UTC (rev 24850)
@@ -8,7 +8,7 @@
<!-- ========================= BUSINESS OBJECT DEFINITIONS ======================== -->
- <bean id="goodbyeObject" class="org.jboss.soa.esb.actions.spring.SaySomething">
+ <bean id="goodbyeObject" class="org.jboss.soa.esb.actions.spring.SaySomething" destroy-method="destroy">
<property name="greeting" value="goodbye from Spring"/>
</bean>
Modified: labs/jbossesb/workspace/mlittle/legstar/product/tools/console/contract-web/src/main/webapp/contract.jsp
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/tools/console/contract-web/src/main/webapp/contract.jsp 2009-01-21 14:47:17 UTC (rev 24849)
+++ labs/jbossesb/workspace/mlittle/legstar/product/tools/console/contract-web/src/main/webapp/contract.jsp 2009-01-21 15:38:08 UTC (rev 24850)
@@ -1,86 +1,92 @@
-<%@ page import="java.util.List" %>
-<%@ page import="org.jboss.soa.esb.listeners.config.ServicePublisher" %>
-<%@ page import="org.jboss.soa.esb.services.registry.RegistryFactory" %>
-<%@ page import="org.jboss.soa.esb.services.registry.Registry" %>
-<%@ page import="org.jboss.soa.esb.services.registry.RegistryException" %>
-<%@ page import="org.jboss.soa.esb.services.registry.ServiceNotFoundException" %>
-<%@ page import="java.util.ArrayList" %>
-<%@ page import="org.jboss.soa.esb.addressing.EPR" %>
-<%@ page import="java.net.URI" %>
-<%@ page import="org.jboss.internal.soa.esb.publish.ContractInfo" %>
-<%@ page import="org.jboss.soa.esb.actions.soap.WebserviceContractPublisher" %>
-<%@ page import="org.jboss.internal.soa.esb.publish.ContractPublisher" %>
-<%
- List publishers = ServicePublisher.getServicePublishers();
- Registry registry = RegistryFactory.getRegistry();
- String targetServiceCat = request.getParameter("serviceCat");
- String targetServiceName = request.getParameter("serviceName");
- String targetProtocol = request.getParameter("protocol");
- ContractInfo contractInfo = null;
- String contractData = null;
- List eprs;
-
- try {
- List allEprs = (List) registry.findEPRs(targetServiceCat, targetServiceName);
- eprs = new ArrayList(allEprs.size());
-
- for (int i = 0; i < allEprs.size(); i++) {
- EPR epr = (EPR) allEprs.get(i);
- URI eprURI = URI.create(epr.getAddr().getAddress());
- String protocol = eprURI.getScheme();
-
- if (protocol.equalsIgnoreCase(targetProtocol)) {
- eprs.add(epr);
- }
-
- }
+<%@ page import="java.util.List" %>
+<%@ page import="org.jboss.soa.esb.listeners.config.ServicePublisher" %>
+<%@ page import="org.jboss.soa.esb.services.registry.RegistryFactory" %>
+<%@ page import="org.jboss.soa.esb.services.registry.Registry" %>
+<%@ page import="org.jboss.soa.esb.services.registry.RegistryException" %>
+<%@ page import="org.jboss.soa.esb.services.registry.ServiceNotFoundException" %>
+<%@ page import="java.util.ArrayList" %>
+<%@ page import="org.jboss.soa.esb.addressing.EPR" %>
+<%@ page import="java.net.URI" %>
+<%@ page import="org.jboss.internal.soa.esb.publish.ContractInfo" %>
+<%@ page import="org.jboss.internal.soa.esb.publish.ContractPublisher" %>
+<%@ page import="org.jboss.internal.soa.esb.publish.ContractReferencePublisher" %>
+<%@ page import="org.jboss.internal.soa.esb.publish.Publisher" %>
+<%@ page import="org.jboss.internal.soa.esb.publish.ServletContractPublisher" %>
+<%@ page import="org.jboss.soa.esb.Service" %>
+<%
+ Registry registry = RegistryFactory.getRegistry();
+ String targetServiceCat = request.getParameter("serviceCat");
+ String targetServiceName = request.getParameter("serviceName");
+ String targetProtocol = request.getParameter("protocol");
+ final Service service = new Service(targetServiceCat, targetServiceName) ;
+
+ final List<ServicePublisher> servicePublishers = ServicePublisher.getServicePublishers(service) ;
+ ContractInfo contractInfo = null;
+ String contractData = "";
+
+ List eprs;
+ try {
+ eprs = (List) registry.findEPRs(targetServiceCat, targetServiceName);
} catch (ServiceNotFoundException e) {
// ignore for now - just return an empty list
eprs = new ArrayList();
- } catch (RegistryException e) {
- // ignore for now - just return an empty list
- eprs = new ArrayList();
- }
-
- // JBESB-1547 - Contract console should generate HTTP 404 when asking for non-deployed service WSDL
- if (eprs == null || eprs.isEmpty()) {
+ } catch (RegistryException e) {
+ // ignore for now - just return an empty list
+ eprs = new ArrayList();
+ }
+
+ EPR contractPublisherEPR = null ;
+ for (int ii = 0; ii < eprs.size(); ii++) {
+ EPR epr = (EPR) eprs.get(ii);
+ URI eprURI = URI.create(epr.getAddr().getAddress());
+ String protocol = eprURI.getScheme();
+
+ if (protocol.equalsIgnoreCase(targetProtocol)) {
+ contractPublisherEPR = epr ;
+ break;
+ }
+ }
+
+ for (ServicePublisher servicePublisher: servicePublishers) {
+
+ if (contractPublisherEPR != null) {
+ final ContractPublisher contractPublisher = servicePublisher.getContractPublisher() ;
+ if (contractPublisher == null) {
+ continue;
+ }
+
+ if(contractPublisher instanceof ServletContractPublisher) {
+ contractInfo = ((ServletContractPublisher)contractPublisher).getContractInfo(contractPublisherEPR, request);
+ } else {
+ contractInfo = contractPublisher.getContractInfo(contractPublisherEPR);
+ }
+
+ if (contractInfo != null) {
+ contractData = contractInfo.getData();
+ if (contractData != null) {
+ response.setContentType(contractInfo.getMimeType());
+ }
+ }
+ if (contractData == null) {
+ contractData = "<Unavailable/>";
+ response.setContentType("text/xml");
+ }
+ break ;
+ } else {
+ final Publisher publisher = servicePublisher.getPublisher() ;
+ if (publisher instanceof ContractReferencePublisher) {
+ final ContractReferencePublisher contractReferencePublisher = (ContractReferencePublisher)publisher ;
+ final URI serviceURI = contractReferencePublisher.getServiceURI() ;
+ if (serviceURI.getScheme().equalsIgnoreCase(targetProtocol)) {
+ response.sendRedirect(contractReferencePublisher.getServiceContractURI().toString()) ;
+ return ;
+ }
+ }
+ }
+ }
+ // JBESB-1547 - Contract console should generate HTTP 404 when asking for non-deployed service WSDL
+ if (contractPublisherEPR == null) {
response.sendError(HttpServletResponse.SC_NOT_FOUND);
- return;
+ return;
}
-
- for (int i = 0; i < publishers.size() && contractInfo == null; i++) {
- ServicePublisher publisher = (ServicePublisher) publishers.get(i);
- String serviceCategory = publisher.getCategory();
- String serviceName = publisher.getServiceName();
-
- if (publisher.getContractPublisher() == null) {
- continue;
- } else if (!serviceCategory.equalsIgnoreCase(targetServiceCat) ||
- !serviceName.equalsIgnoreCase(targetServiceName)) {
- continue;
- }
-
- for (int ii = 0; ii < eprs.size(); ii++) {
- EPR epr = (EPR) eprs.get(ii);
-
- ContractPublisher contractPublisher = publisher.getContractPublisher();
-
- if(contractPublisher instanceof WebserviceContractPublisher) {
- contractInfo = ((WebserviceContractPublisher)contractPublisher).getContractInfo(epr, request);
- } else {
- contractInfo = contractPublisher.getContractInfo(epr);
- }
- break;
- }
-
- if (contractInfo != null && contractInfo.getData() != null) {
- contractData = contractInfo.getData();
- response.setContentType(contractInfo.getMimeType());
- }
- }
-
- if (contractData == null) {
- contractData = "<Unavailable/>";
- response.setContentType("text/xml");
- }
-%><%= contractData %>
\ No newline at end of file
+%><%=contractData%>
Modified: labs/jbossesb/workspace/mlittle/legstar/product/tools/console/contract-web/src/main/webapp/index.jsp
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/tools/console/contract-web/src/main/webapp/index.jsp 2009-01-21 14:47:17 UTC (rev 24849)
+++ labs/jbossesb/workspace/mlittle/legstar/product/tools/console/contract-web/src/main/webapp/index.jsp 2009-01-21 15:38:08 UTC (rev 24850)
@@ -5,7 +5,11 @@
<%@ page import="org.jboss.soa.esb.addressing.EPR" %>
<%@ page import="java.net.URI" %>
<%@ page import="org.jboss.soa.esb.services.registry.RegistryException" %>
-<%@ page import="java.util.ArrayList" %>
+<%@ page import="java.util.ArrayList" %>
+<%@ page import="org.jboss.internal.soa.esb.publish.ContractPublisher" %>
+<%@ page import="org.jboss.internal.soa.esb.publish.ContractReferencePublisher" %>
+<%@ page import="org.jboss.internal.soa.esb.publish.Publisher" %>
+<%@ page import="org.jboss.soa.esb.Service" %>
<html>
<head>
<title>JBoss ESB - Service List</title>
@@ -19,57 +23,79 @@
<div class="pageSection">
<%
- List publishers = ServicePublisher.getServicePublishers();
+ List<Service> services = ServicePublisher.getServices();
Registry registry = RegistryFactory.getRegistry();
- for (int i = 0; i < publishers.size(); i++) {
- ServicePublisher publisher = (ServicePublisher) publishers.get(i);
- String serviceCategory = publisher.getCategory();
- String serviceName = publisher.getServiceName();
- List eprs;
+ for (Service service: services) {
+ String serviceCategory = service.getCategory();
+ String serviceName = service.getName();
+
+ final List<ServicePublisher> servicePublishers = ServicePublisher.getServicePublishers(service) ;
+ if ((servicePublishers != null) && (servicePublishers.size() > 0)) {
+ %>
+ <fieldset>
+ <legend><b><%=service%></b></legend>
+ <%=servicePublishers.get(0).getDescription()%>
+ <%
+ for(ServicePublisher servicePublisher: servicePublishers) {
+ final Publisher publisher = servicePublisher.getPublisher() ;
+ if (!(publisher instanceof ContractReferencePublisher)) {
+ List eprs;
- try {
- eprs = (List) registry.findEPRs(serviceCategory, serviceName);
- } catch (Exception e) {
- // ignore for now - just return an empty list
- eprs = new ArrayList();
- }
+ try {
+ eprs = (List) registry.findEPRs(serviceCategory, serviceName);
+ } catch (Exception e) {
+ // ignore for now - just return an empty list
+ eprs = new ArrayList();
+ }
+ for (int ii = 0; ii < eprs.size(); ii++) {
+ EPR epr = (EPR) eprs.get(ii);
+ URI eprURI = URI.create(epr.getAddr().getAddress());
+ String protocol = eprURI.getScheme();
+ String relContractURI = "contract.jsp?serviceCat=" + serviceCategory + "&serviceName=" + serviceName + "&protocol=" + protocol;
%>
- <fieldset>
- <legend><b><%=serviceCategory%>:<%=serviceName%></b></legend>
- <%=publisher.getDescription()%>
- <%
- for (int ii = 0; ii < eprs.size(); ii++) {
- EPR epr = (EPR) eprs.get(ii);
- URI eprURI = URI.create(epr.getAddr().getAddress());
- String protocol = eprURI.getScheme();
- String relContractURI = "contract.jsp?serviceCat=" + serviceCategory + "&serviceName=" + serviceName + "&protocol=" + protocol;
- URI thisPage = URI.create(request.getRequestURL().toString());
- URI contractURI = thisPage.resolve(relContractURI);
- %>
<fieldset>
<legend><b><%=protocol.toUpperCase()%></b></legend>
<ul>
<li><b>Endpoint</b>: <%=eprURI%></li>
- <%
- if(publisher.getContractPublisher() != null) {
- %>
+ <%
+ if(publisher != null) {
+ URI thisPage = URI.create(request.getRequestURL().toString());
+ URI contractURI = thisPage.resolve(relContractURI);
+ %>
<li><b>Contract</b>: <a href="<%=relContractURI%>"><%=contractURI%></a></li>
- <%
- } else {
- %>
+ <%
+ } else {
+ %>
<li><b>Contract</b>: Unavailable</li>
- <%
- }
- %>
+ <%
+ }
+ %>
</ul>
- </fieldset>
+ </fieldset>
+ <%
+ }
+ } else {
+ final ContractReferencePublisher contractReferencePublisher = (ContractReferencePublisher)publisher ;
+ final URI serviceURI = contractReferencePublisher.getServiceURI() ;
+ final URI serviceContractURI = contractReferencePublisher.getServiceContractURI() ;
+ %>
+ <fieldset>
+ <legend><b><%=serviceURI.getScheme()%></b></legend>
+
+ <ul>
+ <li><b>Endpoint</b>: <%=serviceURI%></li>
+ <li><b>Contract</b>: <a href="<%=serviceContractURI%>"><%=serviceContractURI%></a></li>
+ </ul>
+ </fieldset>
<%
- }
- %>
+ }
+ }
+ %>
</fieldset>
<%
+ }
}
%>
</div>
Modified: labs/jbossesb/workspace/mlittle/legstar/product/tools/console/management/build.xml
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/tools/console/management/build.xml 2009-01-21 14:47:17 UTC (rev 24849)
+++ labs/jbossesb/workspace/mlittle/legstar/product/tools/console/management/build.xml 2009-01-21 15:38:08 UTC (rev 24850)
@@ -18,21 +18,25 @@
<!-- Are we embedded in a jbossesb distribution hierarchy? -->
<condition property="hierarchy.jbossesb">
<or>
- <available file="${esb.root.dir}/JBossORG-EULA.txt"/>
- <available file="${esb.root.dir}/JEMS-EULA.txt"/>
+ <available file="${esb.root.dir}/JBossEULA.txt"/>
</or>
</condition>
<target name="dependencies" depends="dependencies.source, dependencies.jbossesb"/>
<target name="dependencies.jbossesb" if="hierarchy.jbossesb">
- <property name="lib.dir" location="${mgmt.dir}/../../../lib"/>
+ <path id="lib.jars">
+ <fileset dir="${mgmt.dir}/../../../lib" includes="*.jar"/>
+ </path>
</target>
<target name="dependencies.source" if="hierarchy.source">
<available file="${esb.root.dir}/build/jbossesb" property="dist.exists"/>
<fail unless="dist.exists"
message="JBossESB must be built. Please run 'ant dist' in ${esb.root.dir}"/>
- <property name="lib.dir" location="${mgmt.dir}/../../../build/lib"/>
+ <path id="lib.jars">
+ <fileset dir="${mgmt.dir}/../../../build/lib" includes="*.jar"/>
+ <fileset dir="${mgmt.dir}/../../../build/jbossesb/lib" includes="*.jar"/>
+ </path>
</target>
<target name="define-lib">
@@ -61,7 +65,7 @@
<fileset dir="${mgmt.dir}/lib">
<include name="*.jar"/>
</fileset>
- <fileset refid="lib"/>
+ <path refid="lib.jars"/>
</path>
<condition property="lib.dir.path"
@@ -73,16 +77,6 @@
<available type="dir" file="${mgmt.dir}/./lib"/>
</condition>
- <fileset id="lib" dir="${lib.dir}">
- <include name="*.jar"/>
- </fileset>
-
- <condition property="rosetta.src" value="${esb.root.dir}/rosetta/src">
- <available type="dir" file="${esb.root.dir}/rosetta/src"/>
- </condition>
- <condition property="rosetta.src" value="${src.java.dir}">
- <available type="dir" file="${src.java.dir}"/>
- </condition>
<property name="lib.dir" location="lib.dir.path"/>
</target>
@@ -94,16 +88,15 @@
<target name="compile" depends="init"
description="Build the management war">
<echo>${esb.root.dir}</echo>
+
<mkdir dir="${mgmt.build.dir}/classes"/>
<javac classpathref="build.classpath"
destdir="${mgmt.build.dir}/classes"
debug="on"
- includes="org/jboss/soa/esb/monitoring/**"
source="1.5"
target="1.5"
deprecation="${javac.deprecation}"
nowarn="on">
- <src path="${rosetta.src}"/>
<src path="${src.java.dir}"/>
</javac>
<copy file="${mgmt.dir}/src/main/resources/${db}/monitoring-mappings.hbm.xml"
Modified: labs/jbossesb/workspace/mlittle/legstar/product/tools/console/management/src/main/java/org/jboss/soa/esb/monitoring/pojo/JMXData.java
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/tools/console/management/src/main/java/org/jboss/soa/esb/monitoring/pojo/JMXData.java 2009-01-21 14:47:17 UTC (rev 24849)
+++ labs/jbossesb/workspace/mlittle/legstar/product/tools/console/management/src/main/java/org/jboss/soa/esb/monitoring/pojo/JMXData.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -41,6 +41,7 @@
private String server;
private Date statdate;
private Float timevalue;
+ private Long bytevalue;
private Integer countvalue;
private String textvalue;
@@ -59,10 +60,11 @@
* @param countvalue count value
* @param textvalue test value
*/
- public JMXData(JMXAttribute attribute, String server, Date statdate, Float timevalue, Integer countvalue, String textvalue) {
+ public JMXData(JMXAttribute attribute, String server, Date statdate, Long bytevalue, Float timevalue, Integer countvalue, String textvalue) {
this.attribute = attribute;
this.server = server;
this.statdate = statdate;
+ this.bytevalue = bytevalue;
this.timevalue = timevalue;
this.countvalue = countvalue;
this.textvalue = textvalue;
@@ -136,6 +138,23 @@
* Time value getter.
* @return time value
*/
+ public Long getBytevalue() {
+ return this.bytevalue;
+ }
+
+ /**
+ * Time value mutator.
+ * @param timevalue time value
+ */
+ public void setBytevalue(Long bytevalue) {
+ this.bytevalue = bytevalue;
+ }
+
+
+ /**
+ * Time value getter.
+ * @return time value
+ */
public Float getTimevalue() {
return this.timevalue;
}
Modified: labs/jbossesb/workspace/mlittle/legstar/product/tools/console/management/src/main/java/org/jboss/soa/esb/monitoring/server/DataFiler.java
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/tools/console/management/src/main/java/org/jboss/soa/esb/monitoring/server/DataFiler.java 2009-01-21 14:47:17 UTC (rev 24849)
+++ labs/jbossesb/workspace/mlittle/legstar/product/tools/console/management/src/main/java/org/jboss/soa/esb/monitoring/server/DataFiler.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -102,13 +102,16 @@
data = (Integer) f_sb.getData();
} catch (Exception e) {
}
- jmxd = new JMXData(null, f_sb.getServer(), f_sb.getCollectionTime(), null, data, null);
+ jmxd = new JMXData(null, f_sb.getServer(), f_sb.getCollectionTime(), null, null, data, null);
} else if (f_sb.getType().equals("long")) {
Long data = (Long) f_sb.getData();
- jmxd = new JMXData(null, f_sb.getServer(), f_sb.getCollectionTime(), null, new Integer(data.intValue()), null);
+ jmxd = new JMXData(null, f_sb.getServer(), f_sb.getCollectionTime(), data, null, null, null);
+ } else if (f_sb.getType().equals("java.lang.Long")) {
+ Long data = (Long) f_sb.getData();
+ jmxd = new JMXData(null, f_sb.getServer(), f_sb.getCollectionTime(), data, null, null, null);
} else if (f_sb.getType().equals("int")) {
Integer data = (Integer) f_sb.getData();
- jmxd = new JMXData(null, f_sb.getServer(), f_sb.getCollectionTime(), null, data, null);
+ jmxd = new JMXData(null, f_sb.getServer(), f_sb.getCollectionTime(), null, null, data, null);
} else {
logger.error ("ERROR - found type of " + f_sb.getType() + " for " + f_sb.getAttribute());
return;
@@ -117,18 +120,18 @@
if (f_sb.getType().equals("java.lang.Double")) {
Double tmp = (Double) f_sb.getData();
Float data = new Float(tmp.floatValue());
- jmxd = new JMXData(null, f_sb.getServer(), f_sb.getCollectionTime(), data, null, null);
+ jmxd = new JMXData(null, f_sb.getServer(), f_sb.getCollectionTime(), null, data, null, null);
} else if (f_sb.getType().equals("java.lang.Float")) {
Float data = (Float) f_sb.getData();
- jmxd = new JMXData(null, f_sb.getServer(), f_sb.getCollectionTime(), data, null, null);
+ jmxd = new JMXData(null, f_sb.getServer(), f_sb.getCollectionTime(), null, data, null, null);
} else if (f_sb.getType().equals("java.lang.Long")) {
Long temp = (Long) f_sb.getData();
Float data = new Float(temp.floatValue());
- jmxd = new JMXData(null, f_sb.getServer(), f_sb.getCollectionTime(), data, null, null);
+ jmxd = new JMXData(null, f_sb.getServer(), f_sb.getCollectionTime(), null, data, null, null);
} else if (f_sb.getType().equals("java.lang.Integer")) {
Integer temp = (Integer) f_sb.getData();
Float data = new Float(temp.floatValue());
- jmxd = new JMXData(null, f_sb.getServer(), f_sb.getCollectionTime(), data, null, null);
+ jmxd = new JMXData(null, f_sb.getServer(), f_sb.getCollectionTime(), null, data, null, null);
} else {
logger.error ("ERROR - found type of " + f_sb.getType() + " for " + f_sb.getAttribute());
return;
@@ -136,19 +139,23 @@
} else if (attr.getAttribute().matches("State")) {
if (f_sb.getType().equals("int")) {
Integer tmp = (Integer) f_sb.getData();
- jmxd = new JMXData(null, f_sb.getServer(), f_sb.getCollectionTime(), null, null, tmp.toString());
+ jmxd = new JMXData(null, f_sb.getServer(), f_sb.getCollectionTime(), null, null, null, tmp.toString());
}
} else {
if (f_sb.getType().equals("java.lang.String")) {
String data = (String) f_sb.getData();
- jmxd = new JMXData(null, f_sb.getServer(), f_sb.getCollectionTime(), null, null, data);
+ jmxd = new JMXData(null, f_sb.getServer(), f_sb.getCollectionTime(), null, null, null, data);
} else {
logger.error ("ERROR - found type of " + f_sb.getType() + " for " + f_sb.getAttribute());
return;
}
}
-
+ // If the text value is greater than 2000 characters, do not insert
+ if ((jmxd != null) && (jmxd.getTextvalue() != null) && (jmxd.getTextvalue().length() > 2000)) {
+ return;
+ }
+
jmxd.setAttribute(attr);
try {
sess.save(jmxd);
Modified: labs/jbossesb/workspace/mlittle/legstar/product/tools/console/management/src/main/java/org/jboss/soa/esb/monitoring/server/DataFilerScheduler.java
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/tools/console/management/src/main/java/org/jboss/soa/esb/monitoring/server/DataFilerScheduler.java 2009-01-21 14:47:17 UTC (rev 24849)
+++ labs/jbossesb/workspace/mlittle/legstar/product/tools/console/management/src/main/java/org/jboss/soa/esb/monitoring/server/DataFilerScheduler.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -53,21 +53,21 @@
return pollMinuteFrequency;
}
- public void start() throws Exception {
- super.start();
+ @Override
+ protected void startService() throws Exception {
SchedulerFactory schedulerFactory = new StdSchedulerFactory();
+ // This is relying on the default scheduler which is controlled externally
scheduler = schedulerFactory.getScheduler();
schedule() ;
}
- public void stop() {
+ @Override
+ protected void stopService() {
try {
- scheduler.shutdown();
scheduler.deleteJob(DataFilerJob.JOB_GROUP, DataFilerJob.JOB_NAME);
} catch (SchedulerException e) {
logger.error("", e);
}
- super.stop();
}
public void setPollMinuteFrequency(int f_pollMinuteFrequency) {
@@ -96,7 +96,6 @@
simpleTrigger.setRepeatCount(-1);
scheduler.scheduleJob(jobDetail, simpleTrigger);
- scheduler.start();
} catch (SchedulerException se) {
logger.error("", se);
} catch (Exception e) {
Modified: labs/jbossesb/workspace/mlittle/legstar/product/tools/console/management-esb/build.xml
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/tools/console/management-esb/build.xml 2009-01-21 14:47:17 UTC (rev 24849)
+++ labs/jbossesb/workspace/mlittle/legstar/product/tools/console/management-esb/build.xml 2009-01-21 15:38:08 UTC (rev 24850)
@@ -14,7 +14,6 @@
<!-- Default deploy property settings for the jbossesb-server -->
<property name="org.jboss.esb.server.home" value="${product.dir}"/>
- <property name="org.jboss.esb.server.config" value="default"/>
<target name="clean">
<delete dir="${mgmt.esb.dir}/build"/>
@@ -22,9 +21,36 @@
<ant dir="${console.dir}/management" target="clean"/>
</target>
- <target name="messaging-config">
- <property name="org.jboss.esb.server.deploy.dir"
- value="${org.jboss.esb.server.home}/server/${org.jboss.esb.server.config}/deploy"/>
+ <target name="initialise-config" unless="org.jboss.esb.server.config">
+ <condition property="jbossesb-server-production">
+ <available file="${org.jboss.esb.server.home}/server/production/deploy/jbossesb.sar"/>
+ </condition>
+ <condition property="jbossesb-server-default">
+ <available file="${org.jboss.esb.server.home}/server/default/deploy/jbossesb.sar"/>
+ </condition>
+
+ <condition property="jbossesb-server-recognised">
+ <or>
+ <isset property="jbossesb-server-production"/>
+ <isset property="jbossesb-server-default"/>
+ </or>
+ </condition>
+
+ <fail unless="jbossesb-server-recognised" message="Could not detect default ESB server instance"/>
+
+ <condition property="org.jboss.esb.server.config"
+ value="production">
+ <isset property="jbossesb-server-production"/>
+ </condition>
+ <condition property="org.jboss.esb.server.config"
+ value="default">
+ <isset property="jbossesb-server-default"/>
+ </condition>
+ </target>
+
+ <target name="initialise-messaging" depends="initialise-config">
+ <property name="org.jboss.esb.server.deploy.dir"
+ value="${org.jboss.esb.server.home}/server/${org.jboss.esb.server.config}/deploy"/>
<condition property="messaging.present">
<available file="${org.jboss.esb.server.deploy.dir}/jboss-messaging"/>
@@ -69,7 +95,7 @@
</copy>
</target>
- <target name="esb" depends="messaging-config,messaging-dependencies,jbossmq-dependencies,build-war,copy-metainf"
+ <target name="esb" depends="initialise-messaging,messaging-dependencies,jbossmq-dependencies,build-war,copy-metainf"
description="Build the management ESB">
<mkdir dir="${mgmt.esb.dir}/build"/>
<mkdir dir="${mgmt.esb.dir}/build/META-INF"/>
@@ -107,7 +133,7 @@
</jar>
</target>
- <target name="copy-datasource" if="management.ds.available">
+ <target name="copy-datasource" if="management.ds.available" depends="initialise-config">
<filter token="db.username" value="${db.username}"/>
<filter token="db.password" value="${db.password}"/>
<copy file="${mgmt.esb.dir}/src/main/resources/${db}/management-ds.xml" todir="${org.jboss.esb.server.home}/server/${org.jboss.esb.server.config}/deploy" filtering="true" overwrite="true"/>
Modified: labs/jbossesb/workspace/mlittle/legstar/product/tools/jonplugin/install.sh
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/tools/jonplugin/install.sh 2009-01-21 14:47:17 UTC (rev 24849)
+++ labs/jbossesb/workspace/mlittle/legstar/product/tools/jonplugin/install.sh 2009-01-21 15:38:08 UTC (rev 24850)
@@ -1,4 +1,6 @@
#!/bin/sh
+rm -rf ~/.m2/repository/org/jboss/on/rhq-jbossesb-plugin
mvn -Dmaven.test.skip=true clean install
cp target/rhq-jbossesb-plugin-2.1.0-SNAPSHOT.jar ~/src/rhq/dev-container/jbossas/server/default/deploy/rhq.ear/rhq-downloads/rhq-plugins
cp target/rhq-jbossesb-plugin-2.1.0-SNAPSHOT.jar ~/src/jon/jon/dist/agent/target/jon-agent-2.1.0-SNAPSHOT/plugins/rhq-jbossesb-plugin-2.1.0-SNAPSHOT.jar
+
Modified: labs/jbossesb/workspace/mlittle/legstar/product/tools/jonplugin/pom.xml
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/tools/jonplugin/pom.xml 2009-01-21 14:47:17 UTC (rev 24849)
+++ labs/jbossesb/workspace/mlittle/legstar/product/tools/jonplugin/pom.xml 2009-01-21 15:38:08 UTC (rev 24850)
@@ -25,6 +25,15 @@
<scm.module.path>jon/plugins/jbossesb/</scm.module.path>
</properties>
+ <dependencies>
+ <dependency>
+ <groupId>org.jboss.on</groupId>
+ <artifactId>rhq-jbossas-plugin</artifactId>
+ <version>2.1.0-SNAPSHOT</version>
+ <scope>provided</scope>
+ </dependency>
+ </dependencies>
+
<build>
<plugins>
@@ -66,7 +75,6 @@
<build>
<plugins>
-
<!-- Integration testing voodoo to load and test this plugin with its plugin dependencies -->
<plugin>
<artifactId>maven-antrun-plugin</artifactId>
Modified: labs/jbossesb/workspace/mlittle/legstar/product/tools/jonplugin/src/main/java/org/jbosson/plugins/jbossesb/ActionComponent.java
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/tools/jonplugin/src/main/java/org/jbosson/plugins/jbossesb/ActionComponent.java 2009-01-21 14:47:17 UTC (rev 24849)
+++ labs/jbossesb/workspace/mlittle/legstar/product/tools/jonplugin/src/main/java/org/jbosson/plugins/jbossesb/ActionComponent.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -21,7 +21,7 @@
import java.util.Set;
import org.mc4j.ems.connection.bean.attribute.EmsAttribute;
-import org.mc4j.ems.connection.bean.operation.EmsOperation;
+import org.rhq.core.domain.measurement.AvailabilityType;
import org.rhq.core.domain.measurement.MeasurementDataNumeric;
import org.rhq.core.domain.measurement.MeasurementReport;
import org.rhq.core.domain.measurement.MeasurementScheduleRequest;
@@ -33,7 +33,9 @@
import org.mc4j.ems.connection.bean.EmsBean;
/**
- * @author Greg Hinkle
+ * The ActionComponent finds ESB action data (messages, bytes, time).
+ *
+ * @author Tom Cunningham
*/
public class ActionComponent extends MBeanResourceComponent<MBeanResourceComponent> {
private ResourceContext<MBeanResourceComponent> context;
@@ -44,16 +46,53 @@
private static final String OVERALL_BYTES_PROCESSED = "processed bytes";
private static final String OVERALL_BYTES_FAILED = "failed bytes";
+ private static final String OVERALL_METRIC_NAME = "overallMessagesCount";
private static final String SUCCESS_METRIC_NAME = "successProcessedCount";
private static final String FAILED_METRIC_NAME = "failedProcessedCount";
+
private static final String PROCESSINGTIME_METRIC_NAME = "processingTime";
- private static final String BYTESPROCESSED_METRIC_NAME = "overallBytesProcessed";
+ private static final String OVERALL_BYTES_METRIC_NAME = "overallBytesProcessed";
+ private static final String BYTESPROCESSED_METRIC_NAME = "bytesSuccessful";
private static final String BYTESFAILED_METRIC_NAME = "overallBytesFailed";
+ private static final String OVERALL_MINUTE_METRIC_NAME = "overallMessagesCountMinute";
+ private static final String SUCCESS_MINUTE_METRIC_NAME = "successProcessedCountMinute";
+ private static final String FAILED_MINUTE_METRIC_NAME = "failedProcessedCountMinute";
+
+ /**
+ * Is this service alive?
+ *
+ * @return true if the service is running
+ */
@Override
+ public AvailabilityType getAvailability() {
+ try {
+ EmsBean emsbean = getEmsBean();
+ if (emsbean.isRegistered()) {
+ String actionName = this.context.getResourceKey();
+ actionName = actionName.trim();
+ EmsAttribute attribute = this.bean.getAttribute(actionName + " " + SUCCESS_PROCESSED);
+ if (attribute != null) {
+ return AvailabilityType.UP;
+ }
+ return AvailabilityType.DOWN;
+ } else {
+ return AvailabilityType.DOWN;
+ }
+ } catch (NullPointerException npe) {
+ if (resourceContext != null) {
+ log.warn("Could not determine availability of unknown ems bean for ["
+ + resourceContext.getResourceType() + ":" + resourceContext.getResourceKey() + "]");
+ }
+
+ return AvailabilityType.DOWN;
+ }
+ }
+
+ @Override
public void start(ResourceContext<MBeanResourceComponent> context) {
super.start(context);
- this.context = context;
+ this.context = context;
this.bean = context.getParentResourceComponent().getEmsBean();
}
@@ -67,7 +106,13 @@
actionName = actionName.trim();
//Object entityStatistics = operation.invoke(context.getResourceKey());
- for (MeasurementScheduleRequest request : requests) {
+ int counter = 0;
+ int success = 0;
+ int failed = 0;
+
+ long counterBytesFailed = 0;
+ long counterBytesProcessed = 0;
+ for (MeasurementScheduleRequest request : requests) {
String metricName = request.getName();
if (metricName.equals (SUCCESS_METRIC_NAME)) {
EmsAttribute attribute = this.bean.getAttribute(actionName + " " + SUCCESS_PROCESSED);
@@ -75,6 +120,8 @@
if (attribute != null) {
processed = (Integer) attribute.refresh();
}
+ success = processed.intValue();
+ counter += processed.intValue();
report.addData(new MeasurementDataNumeric(request, new Double(processed.doubleValue())));
} else if (metricName.equals(FAILED_METRIC_NAME)) {
EmsAttribute attribute = this.bean.getAttribute(actionName + " " + FAILED_PROCESSED);
@@ -82,6 +129,8 @@
if (attribute != null) {
processed = (Integer) attribute.refresh();
}
+ failed = processed.intValue();
+ counter += processed.intValue();
report.addData(new MeasurementDataNumeric(request, new Double(processed.doubleValue())));
} else if (metricName.equals(PROCESSINGTIME_METRIC_NAME)) {
EmsAttribute attribute = this.bean.getAttribute(actionName + " " + PROCESSING_TIME);
@@ -94,19 +143,35 @@
}
} else if (metricName.equals(BYTESPROCESSED_METRIC_NAME)) {
EmsAttribute attribute = this.bean.getAttribute(actionName + " " + OVERALL_BYTES_PROCESSED);
- Integer bytesProcessed = new Integer(0);
+ Long bytesProcessed = new Long(0);
if (attribute != null) {
- bytesProcessed = (Integer) attribute.refresh();
+ bytesProcessed = (Long) attribute.refresh();
+ counterBytesProcessed = bytesProcessed.intValue();
}
report.addData(new MeasurementDataNumeric(request, new Double(bytesProcessed.doubleValue())));
} else if (metricName.equals(BYTESFAILED_METRIC_NAME)) {
EmsAttribute attribute = this.bean.getAttribute(actionName + " " + OVERALL_BYTES_FAILED);
- Integer bytesProcessed = new Integer(0);
+ Long bytesFailed = new Long(0);
if (attribute != null) {
- bytesProcessed = (Integer) attribute.refresh();
+ bytesFailed = (Long) attribute.refresh();
+ counterBytesFailed += bytesFailed.intValue();
}
- report.addData(new MeasurementDataNumeric(request, new Double(bytesProcessed.doubleValue())));
+ report.addData(new MeasurementDataNumeric(request, new Double(bytesFailed.doubleValue())));
}
}
+ for (MeasurementScheduleRequest request : requests) {
+ String metricName = request.getName();
+ if (metricName.equals (OVERALL_METRIC_NAME)) {
+ report.addData(new MeasurementDataNumeric(request, new Double(counter)));
+ } else if (metricName.equals(OVERALL_MINUTE_METRIC_NAME)) {
+ report.addData(new MeasurementDataNumeric(request, new Double(counter)));
+ } else if (metricName.equals(SUCCESS_MINUTE_METRIC_NAME)) {
+ report.addData(new MeasurementDataNumeric(request, new Double(success)));
+ } else if (metricName.equals(FAILED_MINUTE_METRIC_NAME)) {
+ report.addData(new MeasurementDataNumeric(request, new Double(failed)));
+ } else if (metricName.equals(OVERALL_BYTES_METRIC_NAME)) {
+ report.addData(new MeasurementDataNumeric(request, new Double(counterBytesProcessed + counterBytesFailed)));
+ }
+ }
}
}
Modified: labs/jbossesb/workspace/mlittle/legstar/product/tools/jonplugin/src/main/java/org/jbosson/plugins/jbossesb/ActionDiscoveryComponent.java
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/tools/jonplugin/src/main/java/org/jbosson/plugins/jbossesb/ActionDiscoveryComponent.java 2009-01-21 14:47:17 UTC (rev 24849)
+++ labs/jbossesb/workspace/mlittle/legstar/product/tools/jonplugin/src/main/java/org/jbosson/plugins/jbossesb/ActionDiscoveryComponent.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -20,8 +20,8 @@
import java.util.ArrayList;
import java.util.HashSet;
+import java.util.Hashtable;
import java.util.Iterator;
-import java.util.List;
import java.util.Set;
import org.apache.commons.logging.Log;
@@ -30,22 +30,20 @@
import org.mc4j.ems.connection.bean.attribute.EmsAttribute;
import org.rhq.core.domain.configuration.Configuration;
import org.rhq.core.domain.configuration.Property;
-import org.rhq.core.domain.configuration.PropertySimple;
import org.rhq.core.domain.measurement.AvailabilityType;
import org.rhq.core.pluginapi.inventory.DiscoveredResourceDetails;
import org.rhq.core.pluginapi.inventory.ResourceContext;
-import org.rhq.core.pluginapi.inventory.ResourceDiscoveryComponent;
import org.rhq.core.pluginapi.inventory.ResourceDiscoveryContext;
import org.rhq.plugins.jmx.JMXComponent;
import org.rhq.plugins.jmx.MBeanResourceComponent;
/**
- * Discovers hibernate entities from a hibernate stats mbean
+ * Discovers ESB actions from a JMX bean
*
- * @author Greg Hinkle
+ * @author Tom Cunningham
* @param <T>
*/
-public class ActionDiscoveryComponent<T extends JMXComponent> implements ResourceDiscoveryComponent<MBeanResourceComponent> {
+public class ActionDiscoveryComponent<T extends JMXComponent> extends SOADiscoveryComponent {
private static final String SERVICE_NAME = "service-name";
private static final String MESSAGES_SUCCESSFULLY_PROCESSED = "messages successfully processed count";
@@ -75,8 +73,16 @@
Set<DiscoveredResourceDetails> entities = new HashSet<DiscoveredResourceDetails>();
EmsBean actionBean = context.getParentResourceComponent().getEmsBean();
- String serviceName = actionBean.getBeanName().getKeyProperty(SERVICE_NAME);
-
+ String serviceName = actionBean.getBeanName().getKeyProperty(SERVICE_NAME);
+
+ String versionNumber;
+ try {
+ Hashtable ht = getVersionAttribute(context);
+ versionNumber = (String) ht.get(VERSION_NUMBER);
+ } catch (Exception e) {
+ versionNumber = "";
+ }
+
// Do two passes - one to grab the entity names (ex. "data fileraction"
// and then a second to build up the metrics for the entity
Set<EmsAttribute> attributeSet = actionBean.getAttributes();
@@ -89,11 +95,7 @@
Configuration pc = detail.getPluginConfiguration();
ArrayList<Property> props = new ArrayList<Property>();
- //PropertySimple ps = new PropertySimple("", "");
- //props.add(ps);
- //pc.setProperties(props);
- //List<EmsAttribute> refreshedAttribute = actionBean.refreshAttributes();
-
+ detail.setResourceVersion(versionNumber);
entities.add(detail);
}
}
Copied: labs/jbossesb/workspace/mlittle/legstar/product/tools/jonplugin/src/main/java/org/jbosson/plugins/jbossesb/DeploymentComponent.java (from rev 24846, labs/jbossesb/trunk/product/tools/jonplugin/src/main/java/org/jbosson/plugins/jbossesb/DeploymentComponent.java)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/tools/jonplugin/src/main/java/org/jbosson/plugins/jbossesb/DeploymentComponent.java (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/tools/jonplugin/src/main/java/org/jbosson/plugins/jbossesb/DeploymentComponent.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -0,0 +1,307 @@
+package org.jbosson.plugins.jbossesb;
+
+import java.io.BufferedInputStream;
+import java.io.BufferedOutputStream;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.OutputStream;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Set;
+import java.util.jar.JarEntry;
+import java.util.jar.JarFile;
+
+import org.mc4j.ems.connection.bean.EmsBean;
+import org.rhq.core.domain.configuration.Configuration;
+import org.rhq.core.domain.configuration.PropertySimple;
+import org.rhq.core.domain.content.PackageDetailsKey;
+import org.rhq.core.domain.content.PackageType;
+import org.rhq.core.domain.content.transfer.ContentResponseResult;
+import org.rhq.core.domain.content.transfer.DeployIndividualPackageResponse;
+import org.rhq.core.domain.content.transfer.DeployPackageStep;
+import org.rhq.core.domain.content.transfer.DeployPackagesResponse;
+import org.rhq.core.domain.content.transfer.RemovePackagesResponse;
+import org.rhq.core.domain.content.transfer.ResourcePackageDetails;
+import org.rhq.core.domain.measurement.AvailabilityType;
+import org.rhq.core.domain.resource.CreateResourceStatus;
+import org.rhq.core.pluginapi.content.ContentContext;
+import org.rhq.core.pluginapi.content.ContentFacet;
+import org.rhq.core.pluginapi.content.ContentServices;
+import org.rhq.core.pluginapi.event.EventContext;
+import org.rhq.core.pluginapi.inventory.CreateResourceReport;
+import org.rhq.core.pluginapi.inventory.DeleteResourceFacet;
+import org.rhq.core.pluginapi.inventory.ResourceContext;
+import org.rhq.core.pluginapi.operation.OperationContext;
+import org.rhq.core.pluginapi.operation.OperationFacet;
+import org.rhq.plugins.jbossas.JBossASServerComponent;
+import org.rhq.plugins.jbossas.util.FileContentDelegate;
+import org.rhq.plugins.jmx.JMXComponent;
+import org.rhq.plugins.jmx.MBeanResourceComponent;
+import org.rhq.plugins.utils.FileUtils;
+
+/**
+ * Component for ESB package deployment.
+ *
+ * @author Tom Cunningham
+ * @param <T>
+ */
+public class DeploymentComponent extends MBeanResourceComponent<JMXComponent> implements
+ OperationFacet, DeleteResourceFacet, ContentFacet {
+ public static final String JBOSS_WEB_NAME = "jbossWebName";
+ private EmsBean jbossWebMBean;
+ private File configPath;
+
+ private ResourceContext resourceContext;
+ private ContentContext contentContext;
+ private OperationContext operationContext;
+ private EventContext eventContext;
+
+ // The following constants reference the exact name of the package types as defined in the plugin descriptor
+ private static final String PACKAGE_TYPE_PATCH = "cumulativePatch";
+ private static final String PACKAGE_TYPE_LIBRARY = "library";
+
+
+ private static final String RESOURCE_TYPE_ESB = "JBoss ESB Deployments";
+
+ public File getConfigurationPath() {
+ return this.configPath;
+ }
+
+ public CreateResourceReport createResource(CreateResourceReport report) {
+ String resourceTypeName = report.getResourceType().getName();
+
+ if (resourceTypeName.equals(RESOURCE_TYPE_ESB)) {
+ esbCreate(report, resourceTypeName);
+ } else {
+ throw new UnsupportedOperationException("Unknown Resource type: " + resourceTypeName);
+ }
+
+ return report;
+ }
+
+ private void esbCreate(CreateResourceReport report, String resourceTypeName) {
+ ResourcePackageDetails details = report.getPackageDetails();
+ PackageDetailsKey key = details.getKey();
+ String archiveName = key.getName();
+
+ try {
+ // First check to see if the file name has the correct extension. Reject if the user attempts to
+ // deploy a WAR file with a bad extension.
+ String expectedExtension;
+ if (resourceTypeName.equals(RESOURCE_TYPE_ESB)) {
+ expectedExtension = "esb";
+ } else {
+ expectedExtension = "";
+ }
+
+ int lastPeriod = archiveName.lastIndexOf(".");
+ String extension = archiveName.substring(lastPeriod + 1);
+ if (lastPeriod == -1 || !expectedExtension.equals(extension)) {
+ report.setStatus(CreateResourceStatus.FAILURE);
+ report.setErrorMessage("Incorrect extension specified on filename [" + archiveName + "]. Expected ["
+ + expectedExtension + "]");
+ return;
+ }
+
+ Configuration deployTimeConfiguration = details.getDeploymentTimeConfiguration();
+ String deployDirectory = deployTimeConfiguration.getSimple("deployDirectory").getStringValue();
+
+ // Verify the user did not enter a path that represents a security issue:
+ // - No absolute directories; must be relative to the configuration path
+ // - Cannot contain parent directory references
+ File testPath = new File(deployDirectory);
+
+ if (testPath.isAbsolute()) {
+ throw new RuntimeException("Path to deploy (deployDirectory) must be a relative path. Path specified: "
+ + deployDirectory);
+ }
+
+ if (deployDirectory.contains("..")) {
+ throw new RuntimeException(
+ "Path to deploy (deployDirectory) may not reference the parent directory. Path specified: "
+ + deployDirectory);
+ }
+
+ // Perform the deployment
+ FileContentDelegate deployer = new FileContentDelegate(new File(getConfigurationPath() + File.separator
+ + deployDirectory), "", details.getPackageTypeName());
+
+ PropertySimple zipProperty = deployTimeConfiguration.getSimple("deployZipped");
+
+ if (zipProperty != null && zipProperty.getBooleanValue() != null) {
+ boolean zip = zipProperty.getBooleanValue();
+
+ File tempDir = resourceContext.getTemporaryDirectory();
+ File tempFile = new File(tempDir.getAbsolutePath(), "esb.bin");
+ OutputStream osForTempDir = new BufferedOutputStream(new FileOutputStream(tempFile));
+
+ ContentServices contentServices = contentContext.getContentServices();
+ contentServices
+ .downloadPackageBitsForChildResource(contentContext, resourceTypeName, key, osForTempDir);
+
+ osForTempDir.close();
+
+ // check for content
+ boolean valid = isOfType(tempFile, resourceTypeName);
+ if (!valid) {
+ report.setStatus(CreateResourceStatus.FAILURE);
+ report.setErrorMessage("Expected a " + resourceTypeName
+ + " file, but its format/content did not match");
+ return;
+ }
+
+ InputStream isForTempDir = new BufferedInputStream(new FileInputStream(tempFile));
+ deployer.createContent(details, isForTempDir, !zip);
+
+ // Resource key should match the following:
+ // EAR: jboss.management.local:J2EEServer=Local,j2eeType=J2EEApplication,name=rhq.ear
+ // WAR: jboss.management.local:J2EEApplication=null,J2EEServer=Local,j2eeType=WebModule,name=embedded-console.war
+
+ String resourceKey;
+ if (resourceTypeName.equals(RESOURCE_TYPE_ESB)) {
+ resourceKey = "jboss.esb:deployment="
+ + archiveName;
+ }
+
+ report.setResourceName(archiveName);
+ //report.setResourceKey(resourceKey);
+ report.setStatus(CreateResourceStatus.SUCCESS);
+ sleepAfterConfigXmlUpdate();
+ } else {
+ report.setStatus(CreateResourceStatus.FAILURE);
+ report.setErrorMessage("Zipped property is required");
+ }
+ } catch (Throwable t) {
+ log.error("Error deploying application for report: " + report, t);
+ report.setException(t);
+ report.setStatus(CreateResourceStatus.FAILURE);
+ }
+ }
+
+ /**
+ * Check to see if the passed file is actually in jar format and contains a
+ * <ul>
+ * <li>WEB-INF/web.xml for .war </li>
+ * <li>META-INF/application.xml for .ear</li>
+ * <li>META-INF/jboss.service.xml for .sar</li>
+ * </ul>
+ * @param file File to check
+ * @param type Type to match - see RESOURCE_TYPE_SAR, RESOURCE_TYPE_WAR and RESOURCE_TYPE_EAR
+ * @return true is the file is in jar format and matches the type
+ */
+ private boolean isOfType(File file, String type) {
+ JarFile jfile = null;
+ try {
+ jfile = new JarFile(file);
+ JarEntry entry;
+ if (RESOURCE_TYPE_ESB.equals(type))
+ entry = jfile.getJarEntry("META-INF/jboss-esb.xml");
+ else {
+ entry = null; // unknown type
+ log.warn("isOfType: " + type + " is unknown - not a valid file");
+ }
+
+ if (entry != null)
+ return true;
+
+ return false;
+ } catch (Exception e) {
+ log.info(e.getMessage());
+ return false;
+ } finally {
+ if (jfile != null)
+ try {
+ jfile.close();
+ } catch (IOException e) {
+ log.info("Exception when trying to close the war file: " + e.getMessage());
+ }
+ }
+ }
+
+ private void sleepAfterConfigXmlUpdate() {
+ // JBNADM-1984 - The contract with this method is that the newly created managed resource should be discoverable.
+ // Wait here so JBoss can recognize that the new managed resource has been created.
+ try {
+ Thread.sleep(5000L);
+ } catch (InterruptedException e) {
+ log.info("Sleep after Resource create interrupted", e);
+ }
+ }
+
+ @Override
+ public AvailabilityType getAvailability() {
+ // JBossASTomcatServerComponent parentTomcatComponent = (JBossASTomcatServerComponent) super.resourceContext
+ // .getParentResourceComponent();
+ // EmsConnection connection = parentTomcatComponent.getEmsConnection();
+ boolean isreg = bean.isRegistered();
+ return isreg ? AvailabilityType.UP : AvailabilityType.DOWN;
+ }
+
+ public void deleteResource() throws Exception {
+ Configuration pluginConfiguration = super.resourceContext.getPluginConfiguration();
+ String fullFileName = pluginConfiguration.getSimple("deployment").getStringValue();
+
+ ESBComponent jbossASComponent = (ESBComponent) super.resourceContext.getParentResourceComponent();
+ //File deploymentFile = jbossASComponent.getDeploymentFilePath(super.resourceContext.getResourceKey());
+
+ File file = new File(jbossASComponent.getConfigurationPath() + "/deploy/" + fullFileName);
+
+ if (!file.exists()) {
+ throw new Exception("Cannot find application file to delete: " + fullFileName);
+ }
+
+ if (file.isDirectory()) {
+ FileUtils.deleteDirectoryContents(file.listFiles());
+ }
+
+ boolean result = file.delete();
+
+ if (!result) {
+ throw new Exception("File delete call returned unsuccessful with no further detail");
+ }
+ }
+
+ public DeployPackagesResponse deployPackages(
+ Set<ResourcePackageDetails> packages,
+ ContentServices contentServices) {
+ ContentResponseResult overallResult = ContentResponseResult.SUCCESS;
+ List<DeployIndividualPackageResponse> individualResponses = new ArrayList<DeployIndividualPackageResponse>(
+ packages.size());
+
+ for (ResourcePackageDetails pkg : packages) {
+ log.info("Attempting to deploy package: " + pkg);
+
+ String packageTypeName = pkg.getPackageTypeName();
+ if (packageTypeName.equals(PACKAGE_TYPE_LIBRARY)) {
+ throw new UnsupportedOperationException("Deployment of new libraries is not supported by the plugin.");
+ }
+ }
+
+ DeployPackagesResponse response = new DeployPackagesResponse(overallResult);
+ response.getPackageResponses().addAll(individualResponses);
+
+ return response;
+ }
+
+ public Set<ResourcePackageDetails> discoverDeployedPackages(PackageType type) {
+ return null;
+ }
+
+ public List<DeployPackageStep> generateInstallationSteps(
+ ResourcePackageDetails packageDetails) {
+ return null;
+ }
+
+ public RemovePackagesResponse removePackages(
+ Set<ResourcePackageDetails> packages) {
+ return null;
+ }
+
+ public InputStream retrievePackageBits(ResourcePackageDetails packageDetails) {
+ return null;
+ }
+
+}
Copied: labs/jbossesb/workspace/mlittle/legstar/product/tools/jonplugin/src/main/java/org/jbosson/plugins/jbossesb/ESBComponent.java (from rev 24846, labs/jbossesb/trunk/product/tools/jonplugin/src/main/java/org/jbosson/plugins/jbossesb/ESBComponent.java)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/tools/jonplugin/src/main/java/org/jbosson/plugins/jbossesb/ESBComponent.java (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/tools/jonplugin/src/main/java/org/jbosson/plugins/jbossesb/ESBComponent.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -0,0 +1,228 @@
+package org.jbosson.plugins.jbossesb;
+
+import java.io.BufferedInputStream;
+import java.io.BufferedOutputStream;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileOutputStream;
+import java.io.InputStream;
+import java.io.OutputStream;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Set;
+
+import org.rhq.core.domain.configuration.Configuration;
+import org.rhq.core.domain.configuration.PropertySimple;
+import org.rhq.core.domain.content.PackageDetailsKey;
+import org.rhq.core.domain.content.PackageType;
+import org.rhq.core.domain.content.transfer.ContentResponseResult;
+import org.rhq.core.domain.content.transfer.DeployIndividualPackageResponse;
+import org.rhq.core.domain.content.transfer.DeployPackageStep;
+import org.rhq.core.domain.content.transfer.DeployPackagesResponse;
+import org.rhq.core.domain.content.transfer.RemovePackagesResponse;
+import org.rhq.core.domain.content.transfer.ResourcePackageDetails;
+import org.rhq.core.domain.measurement.AvailabilityType;
+import org.rhq.core.domain.resource.CreateResourceStatus;
+import org.rhq.core.pluginapi.content.ContentContext;
+import org.rhq.core.pluginapi.content.ContentFacet;
+import org.rhq.core.pluginapi.content.ContentServices;
+import org.rhq.core.pluginapi.inventory.CreateChildResourceFacet;
+import org.rhq.core.pluginapi.inventory.CreateResourceReport;
+import org.rhq.core.pluginapi.inventory.InvalidPluginConfigurationException;
+import org.rhq.core.pluginapi.inventory.ResourceContext;
+import org.rhq.core.pluginapi.operation.OperationContext;
+import org.rhq.core.pluginapi.util.ResponseTimeLogParser;
+import org.rhq.plugins.jbossas.JBossASServerComponent;
+import org.rhq.plugins.jbossas.util.FileContentDelegate;
+import org.rhq.plugins.jmx.MBeanResourceComponent;
+
+public class ESBComponent extends MBeanResourceComponent implements CreateChildResourceFacet, ContentFacet {
+ private static final String RESOURCE_TYPE_ESB = "JBoss ESB Deployment";
+
+ private String configSet;
+ private ResponseTimeLogParser logParser;
+ private File configPath;
+
+ private ContentContext contentContext;
+ private OperationContext operationContext;
+ public static final String CONTEXT_ROOT_CONFIG_PROP = "contextRoot";
+ // The following constants reference the exact name of the package types as defined in the plugin descriptor
+ private static final String PACKAGE_TYPE_PATCH = "cumulativePatch";
+ private static final String PACKAGE_TYPE_LIBRARY = "library";
+
+ public static final String CONFIGURATION_PATH_CONFIG_PROP = "configurationPath";
+ public static final String SCRIPT_PREFIX_CONFIG_PROP = "scriptPrefix";
+ public static final String CONFIGURATION_SET_CONFIG_PROP = "configurationSet";
+
+ public static final String JBOSS_HOME_DIR_CONFIG_PROP = "jbossHomeDir";
+
+
+ @Override
+ public void start(ResourceContext context) {
+ super.start(context);
+ Configuration pluginConfig = context.getPluginConfiguration();
+
+ this.configPath = getConfigurationPath();
+ if (!this.configPath.exists()) {
+ throw new InvalidPluginConfigurationException("Configuration path '" + configPath + "' does not exist.");
+ }
+ this.configSet = pluginConfig.getSimpleValue(CONFIGURATION_SET_CONFIG_PROP, this.configPath.getName());
+ }
+
+ public File getConfigurationPath() {
+ JBossASServerComponent jass = (JBossASServerComponent) resourceContext.getParentResourceComponent();
+ return jass.getConfigurationPath();
+ }
+
+ @Override
+ public AvailabilityType getAvailability() {
+ AvailabilityType av = super.getAvailability();
+ return av;
+ }
+
+ private void esbCreate(CreateResourceReport report, String resourceTypeName) {
+ ResourcePackageDetails details = report.getPackageDetails();
+ PackageDetailsKey key = details.getKey();
+ String archiveName = key.getName();
+
+ try {
+ // First check to see if the file name has the correct extension. Reject if the user attempts to
+ // deploy a WAR file with a bad extension.
+ String expectedExtension;
+ if (resourceTypeName.equals(RESOURCE_TYPE_ESB)) {
+ expectedExtension = "esb";
+ } else {
+ expectedExtension = "";
+ }
+
+ int lastPeriod = archiveName.lastIndexOf(".");
+ String extension = archiveName.substring(lastPeriod + 1);
+ if (lastPeriod == -1 || !expectedExtension.equals(extension)) {
+ report.setStatus(CreateResourceStatus.FAILURE);
+ report.setErrorMessage("Incorrect extension specified on filename [" + archiveName + "]. Expected ["
+ + expectedExtension + "]");
+ return;
+ }
+
+ Configuration deployTimeConfiguration = details.getDeploymentTimeConfiguration();
+ String deployDirectory = deployTimeConfiguration.getSimple("deployDirectory").getStringValue();
+
+ // Verify the user did not enter a path that represents a security issue:
+ // - No absolute directories; must be relative to the configuration path
+ // - Cannot contain parent directory references
+ File testPath = new File(deployDirectory);
+
+ if (testPath.isAbsolute()) {
+ throw new RuntimeException("Path to deploy (deployDirectory) must be a relative path. Path specified: "
+ + deployDirectory);
+ }
+
+ if (deployDirectory.contains("..")) {
+ throw new RuntimeException(
+ "Path to deploy (deployDirectory) may not reference the parent directory. Path specified: "
+ + deployDirectory);
+ }
+
+ // Perform the deployment
+ FileContentDelegate deployer = new FileContentDelegate(new File(getConfigurationPath() + File.separator
+ + deployDirectory), "", details.getPackageTypeName());
+
+ PropertySimple zipProperty = deployTimeConfiguration.getSimple("deployZipped");
+
+ if (zipProperty != null && zipProperty.getBooleanValue() != null) {
+ boolean zip = zipProperty.getBooleanValue();
+
+ File tempDir = resourceContext.getTemporaryDirectory();
+ File tempFile = new File(tempDir.getAbsolutePath(), "esb.bin");
+ OutputStream osForTempDir = new BufferedOutputStream(new FileOutputStream(tempFile));
+
+ contentContext = resourceContext.getContentContext();
+ ContentServices contentServices = contentContext.getContentServices();
+ contentServices
+ .downloadPackageBitsForChildResource(contentContext, resourceTypeName, key, osForTempDir);
+
+ osForTempDir.close();
+
+ InputStream isForTempDir = new BufferedInputStream(new FileInputStream(tempFile));
+ deployer.createContent(details, isForTempDir, !zip);
+
+ // Resource key should match the following:
+ // ESB: jboss.esb:deployment=jbossesb.esb
+
+ String resourceKey;
+ resourceKey = "jboss.esb:deployment=" + archiveName;
+
+ report.setResourceName(archiveName);
+ report.setResourceKey(resourceKey);
+ report.setStatus(CreateResourceStatus.SUCCESS);
+ } else {
+ report.setStatus(CreateResourceStatus.FAILURE);
+ report.setErrorMessage("Zipped property is required");
+ }
+ } catch (Throwable t) {
+ log.error("Error deploying application for report: " + report, t);
+ report.setException(t);
+ report.setStatus(CreateResourceStatus.FAILURE);
+ }
+ }
+
+ public CreateResourceReport createResource(CreateResourceReport report) {
+ String resourceTypeName = report.getResourceType().getName();
+
+ if (resourceTypeName.equals(RESOURCE_TYPE_ESB)) {
+ esbCreate(report, resourceTypeName);
+ } else {
+ throw new UnsupportedOperationException("Unknown Resource type: " + resourceTypeName);
+ }
+
+ // JBNADM-1984 - The contract with this method is that the newly created managed resource should be discoverable.
+ // Wait here so JBoss can recognize that the new managed resource has been created.
+ try {
+ Thread.sleep(5000L);
+ } catch (InterruptedException e) {
+ log.info("Sleep after datasource create interrupted", e);
+ }
+
+ return report;
+ }
+
+ public DeployPackagesResponse deployPackages(
+ Set<ResourcePackageDetails> packages,
+ ContentServices contentServices) {
+ ContentResponseResult overallResult = ContentResponseResult.SUCCESS;
+ List<DeployIndividualPackageResponse> individualResponses = new ArrayList<DeployIndividualPackageResponse>(
+ packages.size());
+
+ for (ResourcePackageDetails pkg : packages) {
+ log.info("Attempting to deploy package: " + pkg);
+
+ String packageTypeName = pkg.getPackageTypeName();
+ if (packageTypeName.equals(PACKAGE_TYPE_LIBRARY)) {
+ throw new UnsupportedOperationException("Deployment of new libraries is not supported by the plugin.");
+ }
+ }
+
+ DeployPackagesResponse response = new DeployPackagesResponse(overallResult);
+ response.getPackageResponses().addAll(individualResponses);
+
+ return response;
+ }
+
+ public Set<ResourcePackageDetails> discoverDeployedPackages(PackageType type) {
+ return null;
+ }
+
+ public List<DeployPackageStep> generateInstallationSteps(
+ ResourcePackageDetails packageDetails) {
+ return null;
+ }
+
+ public RemovePackagesResponse removePackages(
+ Set<ResourcePackageDetails> packages) {
+ throw new UnsupportedOperationException();
+ }
+
+ public InputStream retrievePackageBits(ResourcePackageDetails packageDetails) {
+ throw new UnsupportedOperationException();
+ }
+}
Copied: labs/jbossesb/workspace/mlittle/legstar/product/tools/jonplugin/src/main/java/org/jbosson/plugins/jbossesb/ESBDiscoveryComponent.java (from rev 24846, labs/jbossesb/trunk/product/tools/jonplugin/src/main/java/org/jbosson/plugins/jbossesb/ESBDiscoveryComponent.java)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/tools/jonplugin/src/main/java/org/jbosson/plugins/jbossesb/ESBDiscoveryComponent.java (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/tools/jonplugin/src/main/java/org/jbosson/plugins/jbossesb/ESBDiscoveryComponent.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -0,0 +1,37 @@
+package org.jbosson.plugins.jbossesb;
+import java.util.Set;
+
+import org.mc4j.ems.connection.bean.EmsBean;
+import org.mc4j.ems.connection.bean.attribute.EmsAttribute;
+import org.rhq.core.pluginapi.inventory.DiscoveredResourceDetails;
+import org.rhq.core.pluginapi.inventory.ResourceDiscoveryContext;
+import org.rhq.plugins.jmx.JMXComponent;
+import org.rhq.plugins.jmx.MBeanResourceDiscoveryComponent;
+
+/**
+ * This DiscoveryComponent extends the MBeanResouceDiscoveryComponent, but also
+ * adds in the version number from the application server.
+ *
+ * @author Tom Cunningham
+ */
+public class ESBDiscoveryComponent extends MBeanResourceDiscoveryComponent {
+ @Override
+ public Set<DiscoveredResourceDetails> discoverResources(ResourceDiscoveryContext<JMXComponent> context) {
+ Set<DiscoveredResourceDetails> jmxResources = super.discoverResources(context);
+
+ String versionNumber;
+ try {
+ EmsBean bean = context.getParentResourceComponent().getEmsConnection().getBean(SOADiscoveryComponent.SYSTEM_BEAN);
+ EmsAttribute versionAttribute = bean.getAttribute(SOADiscoveryComponent.VERSION_NUMBER);
+ versionNumber = (String) versionAttribute.refresh();
+ } catch (Exception e) {
+ versionNumber = "";
+ }
+
+ for (DiscoveredResourceDetails jmxResource : jmxResources) {
+ jmxResource.setResourceVersion(versionNumber);
+ }
+
+ return jmxResources;
+ }
+}
\ No newline at end of file
Modified: labs/jbossesb/workspace/mlittle/legstar/product/tools/jonplugin/src/main/java/org/jbosson/plugins/jbossesb/ListenerComponent.java
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/tools/jonplugin/src/main/java/org/jbosson/plugins/jbossesb/ListenerComponent.java 2009-01-21 14:47:17 UTC (rev 24849)
+++ labs/jbossesb/workspace/mlittle/legstar/product/tools/jonplugin/src/main/java/org/jbosson/plugins/jbossesb/ListenerComponent.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -21,8 +21,6 @@
import java.util.Set;
import org.mc4j.ems.connection.bean.attribute.EmsAttribute;
-import org.mc4j.ems.connection.bean.operation.EmsOperation;
-import org.rhq.core.domain.measurement.MeasurementDataNumeric;
import org.rhq.core.domain.measurement.MeasurementDataTrait;
import org.rhq.core.domain.measurement.MeasurementReport;
import org.rhq.core.domain.measurement.MeasurementScheduleRequest;
@@ -31,11 +29,12 @@
import org.rhq.core.domain.configuration.Configuration;
import org.rhq.core.domain.configuration.PropertySimple;
-import org.mc4j.ems.connection.bean.EmsBean;
/**
- * @author Greg Hinkle
+ * The ListenerComponent finds ESB configuration data stored in jboss-esb.xml.
+ *
+ * @author Tom Cunningham
*/
public class ListenerComponent extends MBeanResourceComponent<MBeanResourceComponent> {
private ResourceContext<MBeanResourceComponent> context;
Copied: labs/jbossesb/workspace/mlittle/legstar/product/tools/jonplugin/src/main/java/org/jbosson/plugins/jbossesb/SOADiscoveryComponent.java (from rev 24846, labs/jbossesb/trunk/product/tools/jonplugin/src/main/java/org/jbosson/plugins/jbossesb/SOADiscoveryComponent.java)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/tools/jonplugin/src/main/java/org/jbosson/plugins/jbossesb/SOADiscoveryComponent.java (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/tools/jonplugin/src/main/java/org/jbosson/plugins/jbossesb/SOADiscoveryComponent.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -0,0 +1,45 @@
+package org.jbosson.plugins.jbossesb;
+
+import java.util.Hashtable;
+
+import org.mc4j.ems.connection.bean.EmsBean;
+import org.mc4j.ems.connection.bean.attribute.EmsAttribute;
+import org.rhq.core.pluginapi.inventory.ResourceDiscoveryComponent;
+import org.rhq.core.pluginapi.inventory.ResourceDiscoveryContext;
+import org.rhq.plugins.jmx.MBeanResourceComponent;
+
+/**
+ * Abstract class which gets version attributes.
+ *
+ * @author Tom Cunningham
+ * @param <T>
+ */
+public abstract class SOADiscoveryComponent implements ResourceDiscoveryComponent<MBeanResourceComponent> {
+ public static final String SYSTEM_BEAN = "jboss.system:type=Server";
+ public static final String VERSION_NUMBER = "VersionNumber";
+ public static final String BUILD_DATE = "BuildDate";
+ public static final String BUILD_ID = "BuildID";
+
+ public Hashtable getVersionAttribute(ResourceDiscoveryContext<MBeanResourceComponent> context) {
+ Hashtable ht = new Hashtable();
+
+ try {
+ EmsBean bean = context.getParentResourceComponent().getEmsConnection().getBean(SYSTEM_BEAN);
+ EmsAttribute versionAttribute = bean.getAttribute(VERSION_NUMBER);
+ String version = (String) versionAttribute.refresh();
+
+ EmsAttribute buildDateAttribute = bean.getAttribute(BUILD_DATE);
+ String buildDate = (String) buildDateAttribute.refresh();
+
+ EmsAttribute buildIDAttribute = bean.getAttribute(BUILD_ID);
+ String buildID = (String) buildIDAttribute.refresh();
+
+ ht.put(VERSION_NUMBER, version);
+ ht.put(BUILD_DATE, buildDate);
+ ht.put(BUILD_ID, buildID);
+ } catch (Exception e) {
+ // Do nothing in the case that we cannot recover these attributes
+ }
+ return ht;
+ }
+}
Modified: labs/jbossesb/workspace/mlittle/legstar/product/tools/jonplugin/src/main/java/org/jbosson/plugins/jbossesb/ServiceComponent.java
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/tools/jonplugin/src/main/java/org/jbosson/plugins/jbossesb/ServiceComponent.java 2009-01-21 14:47:17 UTC (rev 24849)
+++ labs/jbossesb/workspace/mlittle/legstar/product/tools/jonplugin/src/main/java/org/jbosson/plugins/jbossesb/ServiceComponent.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -21,7 +21,6 @@
import java.util.Set;
import org.mc4j.ems.connection.bean.attribute.EmsAttribute;
-import org.mc4j.ems.connection.bean.operation.EmsOperation;
import org.rhq.core.domain.measurement.MeasurementDataNumeric;
import org.rhq.core.domain.measurement.MeasurementReport;
import org.rhq.core.domain.measurement.MeasurementScheduleRequest;
@@ -30,11 +29,12 @@
import org.rhq.core.domain.configuration.Configuration;
import org.rhq.core.domain.configuration.PropertySimple;
-import org.mc4j.ems.connection.bean.EmsBean;
/**
- * @author Greg Hinkle
+ * The ServiceComponent finds ESB service data (messages, bytes, time).
+ *
+ * @author Tom Cunningham
*/
public class ServiceComponent extends MBeanResourceComponent<MBeanResourceComponent> {
private ResourceContext<MBeanResourceComponent> context;
@@ -42,44 +42,68 @@
private static final String OVERALL_MESSAGE_COUNT = "overall service message count";
private static final String OVERALL_MESSAGE_METRIC = "overallMessageCount";
- private static final String OVERALL_BYTES_PROCESSED_METRIC = "overallBytesProcessed";
- private static final String OVERALL_BYTES_FAILED_METRIC = "overallBytesFailed";
+ private static final String OVERALL_BYTES_METRIC = "overallBytes";
+ private static final String OVERALL_BYTES_COUNT = "overall service count bytes";
- private static final String OVERALL_BYTES_PROCESSED = "overall bytes processed";
+ private static final String OVERALL_BYTES_PROCESSED_METRIC = "bytesProcessed";
+ private static final String OVERALL_BYTES_FAILED_METRIC = "bytesFailed";
+
+ private static final String OVERALL_BYTES_PROCESSED = "overall processedbytes";
private static final String OVERALL_BYTES_FAILED = "overall bytes failed";
+ private static final String OVERALL_MINUTE_METRIC_NAME = "overallMessageCountByMinute";
+
@Override
public void start(ResourceContext<MBeanResourceComponent> context) {
super.start(context);
this.context = context;
}
-
@Override
public void getValues(MeasurementReport report, Set<MeasurementScheduleRequest> requests) {
Configuration pluginConfig = this.context.getPluginConfiguration();
pluginConfig.put(new PropertySimple("type", "service"));
+ Integer overallMessages = new Integer(0);
+
+ long bytesProcessed = 0;
+ long bytesFailed = 0;
for (MeasurementScheduleRequest request : requests) {
String metricName = request.getName();
if (metricName.equals(OVERALL_MESSAGE_METRIC)) {
EmsAttribute attribute = getEmsBean().getAttribute(OVERALL_MESSAGE_COUNT);
- Integer processed = (Integer) attribute.refresh();
- report.addData(new MeasurementDataNumeric(request, new Double(processed.doubleValue())));
+ overallMessages = (Integer) attribute.refresh();
+ report.addData(new MeasurementDataNumeric(request, new Double(overallMessages.doubleValue())));
} else if (metricName.equals(OVERALL_BYTES_PROCESSED_METRIC)) {
EmsAttribute attribute = getEmsBean().getAttribute(OVERALL_BYTES_PROCESSED);
- Integer processed = new Integer(0);
+ Long processed = new Long(0);
if (attribute != null) {
- processed = (Integer) attribute.refresh();
+ processed = (Long) attribute.refresh();
+ bytesProcessed = processed.longValue();
}
report.addData(new MeasurementDataNumeric(request, new Double(processed.doubleValue())));
} else if (metricName.equals(OVERALL_BYTES_FAILED_METRIC)) {
EmsAttribute attribute = getEmsBean().getAttribute(OVERALL_BYTES_FAILED);
- Integer processed = new Integer(0);
+ Long processed = new Long(0);
if (attribute != null) {
- processed = (Integer) attribute.refresh();
+ processed = (Long) attribute.refresh();
+ bytesFailed = processed.longValue();
}
report.addData(new MeasurementDataNumeric(request, new Double(processed.doubleValue())));
+ } else if (metricName.equals(OVERALL_BYTES_METRIC)) {
+ EmsAttribute attribute = getEmsBean().getAttribute(OVERALL_BYTES_COUNT);
+ Long processed = new Long(0);
+ if (attribute != null) {
+ processed = (Long) attribute.refresh();
+ }
+ report.addData(new MeasurementDataNumeric(request, new Double(processed.doubleValue())));
}
}
+
+ for (MeasurementScheduleRequest request : requests) {
+ String metricName = request.getName();
+ if (metricName.equals(OVERALL_MINUTE_METRIC_NAME)) {
+ report.addData(new MeasurementDataNumeric(request, new Double(overallMessages.doubleValue())));
+ }
+ }
}
}
Copied: labs/jbossesb/workspace/mlittle/legstar/product/tools/jonplugin/src/main/java/org/jbosson/plugins/jbossesb/ServiceDiscoveryComponent.java (from rev 24846, labs/jbossesb/trunk/product/tools/jonplugin/src/main/java/org/jbosson/plugins/jbossesb/ServiceDiscoveryComponent.java)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/tools/jonplugin/src/main/java/org/jbosson/plugins/jbossesb/ServiceDiscoveryComponent.java (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/tools/jonplugin/src/main/java/org/jbosson/plugins/jbossesb/ServiceDiscoveryComponent.java 2009-01-21 15:38:08 UTC (rev 24850)
@@ -0,0 +1,72 @@
+/*
+ * RHQ Management Platform
+ * Copyright (C) 2005-2008 Red Hat, Inc.
+ * All rights reserved.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation version 2 of the License.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+package org.jbosson.plugins.jbossesb;
+
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.Set;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.mc4j.ems.connection.bean.EmsBean;
+import org.mc4j.ems.connection.bean.attribute.EmsAttribute;
+import org.rhq.core.pluginapi.inventory.DiscoveredResourceDetails;
+import org.rhq.core.pluginapi.inventory.ResourceContext;
+import org.rhq.core.pluginapi.inventory.ResourceDiscoveryComponent;
+import org.rhq.core.pluginapi.inventory.ResourceDiscoveryContext;
+import org.rhq.plugins.jmx.JMXComponent;
+import org.rhq.plugins.jmx.MBeanResourceComponent;
+
+/**
+ * Discovers ESB Service entities from a ESB stats mbean
+ *
+ * @author Greg Hinkle
+ * @param <T>
+ */
+public class ServiceDiscoveryComponent<T extends JMXComponent> extends SOADiscoveryComponent {
+
+ private static Log log = LogFactory.getLog(ServiceDiscoveryComponent.class);
+
+ protected ResourceContext<T> resourceContext;
+
+ public Set<DiscoveredResourceDetails> discoverResources(ResourceDiscoveryContext<MBeanResourceComponent> context) {
+ Set<DiscoveredResourceDetails> entities = new HashSet<DiscoveredResourceDetails>();
+
+ EmsBean serviceBean = context.getParentResourceComponent().getEmsBean();
+ Set<EmsAttribute> attributeSet = serviceBean.getAttributes();
+ for (Iterator i = attributeSet.iterator(); i.hasNext();) {
+ EmsAttribute attr = (EmsAttribute) i.next();
+ System.out.println(attr.getName());
+ //entities.add(detail);
+ }
+
+ /*
+ String serviceName = serviceBean.getBeanName().getKeyProperty(SERVICE_NAME);
+
+ // Do two passes - one to grab the entity names (ex. "data fileraction"
+ // and then a second to build up the metrics for the entity
+ Set<EmsAttribute> attributeSet = actionBean.getAttributes();
+ for (Iterator i = attributeSet.iterator(); i.hasNext();) {
+ EmsAttribute attr = (EmsAttribute) i.next();
+ entities.add(detail);
+ }
+ */
+ return entities;
+ }
+}
\ No newline at end of file
Modified: labs/jbossesb/workspace/mlittle/legstar/product/tools/jonplugin/src/main/resources/META-INF/rhq-plugin.xml
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/tools/jonplugin/src/main/resources/META-INF/rhq-plugin.xml 2009-01-21 14:47:17 UTC (rev 24849)
+++ labs/jbossesb/workspace/mlittle/legstar/product/tools/jonplugin/src/main/resources/META-INF/rhq-plugin.xml 2009-01-21 15:38:08 UTC (rev 24850)
@@ -14,8 +14,8 @@
<depends plugin="JBossAS" useClasses="true"/>
<service name="ESB"
- discovery="org.rhq.plugins.jmx.MBeanResourceDiscoveryComponent"
- class="org.rhq.plugins.jmx.MBeanResourceComponent"
+ discovery="org.jbosson.plugins.jbossesb.ESBDiscoveryComponent"
+ class="org.jbosson.plugins.jbossesb.ESBComponent"
description="Overall statistics for JBoss ESB"
singleton="true">
<runs-inside>
@@ -26,76 +26,123 @@
<c:simple-property name="objectName" readOnly="true" default="jboss.esb:service=MessageCounter"/>
<c:simple-property name="nameTemplate" default="JBoss ESB Statistics"/>
<c:simple-property name="descriptionTemplate" default="JBoss ESB statistics."/>
+ <c:group name="connection" displayName="Connection Info">
+ <c:simple-property name="namingURL" displayName="Naming Provider URL"
+ description="The JNP URL with which to connect to the JBoss Application Server instance (e.g. jnp://127.0.0.1:1099)."
+ default="jnp://127.0.0.1:1099"/>
+ <c:simple-property name="principal" required="false" description="The name of the principal (i.e. user) to authenticate."/>
+ <c:simple-property name="credentials" type="password" required="false"
+ description="The credentials (i.e. password) that should be used to authenticate the principal."/>
+ <c:simple-property name="jbossHomeDir" displayName="JBoss Home Directory" type="directory" readOnly="true"
+ description="The absolute path to the directory where JBossAS is installed (e.g. /opt/jboss-4.2.2.GA)."/>
+ <c:simple-property name="configurationPath" displayName="Configuration Path" type="directory" readOnly="true"
+ description="The path to the configuration directory under which this instance
+ operates (e.g. /opt/jboss-4.2.2.GA/server/default); if the path is not absolute,
+ then it will be resolved relative to {jbossHomeDir}."/>
+ <c:simple-property name="configurationSet" displayName="Configuration Set" required="false"
+ description="The name of the server configuration (e.g. minimal, default, or all);
+ if not specified, it will default to the last path component of {configurationPath}."
+ default="default"/>
+ </c:group>
</plugin-configuration>
-
- <metric displayName="Successful Message Count" property="SuccessfulMessageCount" category="utilization" displayType="summary" measurementType="dynamic" description="Overall Successful Message Count"/>
- <metric displayName="Total Message Count" property="TotalMessageCount" category="utilization" displayType="summary" defaultOn="true" measurementType="dynamic" description="Total Message Count"/>
- <metric displayName="Failed Message Count" property="FailedMessageCount" category="utilization" displayType="summary" defaultOn="true" measurementType="dynamic" description="Failed Message Count"/>
+ <operation name="start" displayName="Start deployment" description="Start the JBoss ESB deployment"/>
+ <operation name="stop" displayName="Stop deployment" description="Stop the JBoss ESB deployment"/>
+ <operation name="create" displayName="Move .esb deployment into the create state" description="Move the .esb deployment into the create state"/>
+ <operation name="destroy" displayName="Move .esb deployment into the destroy state" description="Move the .esb deployment into the destroy state"/>
+ <operation name="resetCounts" displayName="Reset Counts" description="Reset the overall counter"/>
+ <metric displayName="Message Count (Successful)" property="SuccessfulMessageCount" category="utilization" displayType="summary" measurementType="dynamic" description="Overall Successful Message Count"/>
+ <metric displayName="Message Count (Total)" property="TotalMessageCount" category="utilization" displayType="summary" defaultOn="true" measurementType="dynamic" description="Total Message Count"/>
+ <metric displayName="Message Counts (Failed)" property="FailedMessageCount" category="utilization" displayType="summary" defaultOn="true" measurementType="dynamic" description="Failed Message Count"/>
+ <metric displayName="Processed Bytes" property="ProcessedBytes" units="bytes" category="utilization" displayType="summary" defaultOn="true" measurementType="dynamic" description="Overall Bytes Processed"/>
<metric property="LastSuccessfulMessageDate" displayName="Last Successful Message Date" dataType="trait" displayType="summary" defaultOn="true" description="Last Successful Message Date"/>
<metric property="LastFailedMessageDate" displayName="Last Failed Message Date" dataType="trait" displayType="summary" defaultOn="true" description="Last Failed Message Date"/>
- <metric property="StateString" dataType="trait" displayName="State" displayType="summary" defaultOn="true" description="State of the ESB"/>
- <metric displayName="Bytes Processed" property="ProcessedBytes" units="bytes" category="utilization" displayType="summary" defaultOn="true" measurementType="dynamic" description="Overall Bytes Processed"/>
-
+ <metric property="StateString" dataType="trait" displayName="State" displayType="summary" defaultOn="true" description="State of the ESB"/>
+ <content name="library" displayName="Jar Library" category="deployable"
+ description="Library Jar files deployed in JBoss AS">
+ <configuration>
+ <c:simple-property name="version" readOnly="true" description="The version declared by the JAR's manifest."/>
+ <c:simple-property name="title" readOnly="true" description="The title declared by the JAR's manifest."/>
+ <c:simple-property name="url" readOnly="true" description="The url declared by the JAR's manifest."/>
+ <c:simple-property name="vendor" readOnly="true" description="The vendor declared by the JAR's manifest."/>
+ <c:simple-property name="classpath" readOnly="true"
+ description="The classpath declared by the JAR's manifest."/>
+ <c:simple-property name="sealed" readOnly="true" type="boolean" description="True if the JAR is sealed."/>
+ </configuration>
+ </content>
<service name="JBoss ESB Deployment"
- discovery="org.rhq.plugins.jmx.MBeanResourceDiscoveryComponent"
- class="org.rhq.plugins.jmx.MBeanResourceComponent"
- description="Statistics for JBoss ESB Deployments">
+ discovery="org.jbosson.plugins.jbossesb.ESBDiscoveryComponent"
+ class="org.jbosson.plugins.jbossesb.DeploymentComponent"
+ description="Statistics for JBoss ESB Deployments"
+ creationDataType="content"
+ createDeletePolicy="both">
<plugin-configuration>
<c:simple-property name="objectName" readOnly="true" default="jboss.esb:deployment=%deployment%"/>
<c:simple-property name="nameTemplate" default="{deployment} JBoss ESB Statistics"/>
<c:simple-property name="descriptionTemplate" default="JBoss ESB statistics for the {deployment} deployment."/>
<c:simple-property name="deployment" type="string" description="the JBoss ESB deployment name"/>
+ <c:group name="advanced" displayName="Advanced" hiddenByDefault="true">
+ <c:simple-property name="extension" default="esb" readOnly="true"/>
+ <c:simple-property name="descriptionTemplate" default="ESB package" readOnly="true"/>
+ </c:group>
</plugin-configuration>
-
-
<operation name="start" displayName="Start deployment" description="Start the JBoss ESB deployment"/>
<operation name="stop" displayName="Stop deployment" description="Stop the JBoss ESB deployment"/>
- <operation name="create" displayName="Move .esb deployment into the create state" description="Move the .esb deployment into the create state"/>
- <operation name="destroy" displayName="Move .esb deployment into the destroy state" description="Move the .esb deployment into the destroy state"/>
-
<metric property="Name" displayName="Deployment Type" dataType="trait" displayType="summary" defaultOn="true" description="Type of deployment"/>
<metric property="StateString" displayName=".esb State String" dataType="trait" displayType="summary" defaultOn="true" description="Current state of the ESB"/>
<metric property="State" displayName=".esb State" dataType="trait" displayType="summary" defaultOn="true" description="Numeric value of the state of the ESB deployment"/>
- <help>
+ <!--help>
<![CDATA[
JBoss ESB deployments are .esb packages deployed within a server.
]]>
- </help>
+ </help-->
+ <content name="file" displayName="ESB Package" category="deployable" isCreationType="true">
+ <configuration>
+ <c:group name="deployment" displayName="Deployment Options">
+ <c:simple-property name="deployZipped" displayName="Deploy Zipped" type="boolean" default="false" required="true"
+ description="Indicates if the ESB is deployed either zipped or exploded."/>
+ <c:simple-property name="deployDirectory" displayName="Deploy Directory" type="string" default="deploy" required="true"
+ description="Path to deploy the file. This must be a path relative to the AS configuration set in use."/>
+ </c:group>
+ </configuration>
+ </content>
<service name="JBoss ESB Services"
- discovery="org.rhq.plugins.jmx.MBeanResourceDiscoveryComponent"
- class="ServiceComponent"
+ discovery="org.jbosson.plugins.jbossesb.ESBDiscoveryComponent"
+ class="org.jbosson.plugins.jbossesb.ServiceComponent"
description="JBoss ESB Services">
<plugin-configuration>
- <c:simple-property name="objectName" readOnly="true" default="jboss.esb:category=MessageCounter,deployment={deployment},service-name=%serviceName%"/>
+ <c:simple-property name="objectName" readOnly="true" default="jboss.esb:category=MessageCounter,deployment={deployment},service-category=%categoryName%,service-name=%serviceName%"/>
<c:simple-property name="nameTemplate" default="{serviceName} Service"/>
<c:simple-property name="DescriptionTemplate" default="JBoss ESB statistics for the {serviceName} service."/>
<c:simple-property name="serviceName" type="string" description="the JBoss ESB service name"/>
+ <c:simple-property name="categoryName" type="string" description="the JBoss ESB service category name"/>
</plugin-configuration>
- <operation name="resetCounts" displayName="Reset the message counter" description="Reset the message counter"/>
- <metric displayName="Overall Service Message Count" property="overallMessageCount" category="utilization" displayType="summary" measurementType="dynamic" description="Overall Service Message Count"/>
- <metric displayName="Overall Service Bytes Processed" property="overallBytesProcessed" units="bytes" category="utilization" displayType="summary" defaultOn="true" measurementType="dynamic" description="Overall Service Bytes Processed"/>
- <metric displayName="Overall Service Bytes Failed" property="overallBytesFailed" units="bytes" category="utilization" displayType="summary" defaultOn="true" measurementType="dynamic" description="Overall Service Bytes Failed"/>
+ <operation name="resetCounter" displayName="Reset the message counter" description="Reset the message counter"/>
+ <metric displayName="Message Count" property="overallMessageCount" category="utilization" displayType="summary" measurementType="dynamic" description="Message Count"/>
+ <metric displayName="Message Count (avg)" property="overallMessageCountByMinute" category="utilization" displayType="summary" measurementType="dynamic" description="Message Count (avg)"/>
+ <metric displayName="Overall Bytes" property="overallBytes" units="bytes" category="utilization" displayType="summary"
+defaultOn="true" measurementType="dynamic" description="Overall Bytes"/>
+ <metric displayName="Overall Bytes Processed" property="bytesProcessed" units="bytes" category="utilization" displayType="summary" defaultOn="true" measurementType="dynamic" description="Overall Bytes Processed"/>
+ <metric displayName="Overall Bytes Failed" property="bytesFailed" units="bytes" category="utilization" displayType="summary" defaultOn="true" measurementType="dynamic" description="Overall Bytes Failed"/>
<help>
<![CDATA[
JBoss ESB Services are the services available within a deployment.
]]>
</help>
<service name="JBoss ESB Listeners"
- discovery="org.rhq.plugins.jmx.MBeanResourceDiscoveryComponent"
+ discovery="org.jbosson.plugins.jbossesb.ESBDiscoveryComponent"
class="ListenerComponent"
description="JBoss ESB Listeners">
<plugin-configuration>
- <c:simple-property name="objectName" readOnly="true" default="jboss.esb:listener-name=listener,service-category=%service-category%,service-name={serviceName}"/>
- <c:simple-property name="nameTemplate" default="{service-category} Listener Configuration"/>
+ <c:simple-property name="objectName" readOnly="true" default="jboss.esb:deployment=%deploymentName%,listener-name=%listenerName%,service-category=%serviceCategory%,service-name={serviceName}"/>
+ <c:simple-property name="nameTemplate" default="{listenerName} - {serviceCategory} Listener Configuration"/>
<c:simple-property name="descriptionTemplate" default="JBoss Listener statistics"/>
<c:simple-property name="serviceCategory" type="string" description="the service category of the listener"/>
+ <c:simple-property name="listenerName" type="string" description="the name of the Listener"/>
+ <c:simple-property name="deploymentName" type="string" description="name of deployment"/>
</plugin-configuration>
- <operation name="initialise" displayName="Initialize listener" description="Initialize the listener."/>
<operation name="start" displayName="Start listener" description="Start the listener."/>
<operation name="stop" displayName="Stop listener" description="Stop the listener."/>
- <operation name="destroy" displayName="Destroy listener" description="Destroy the listener."/>
-
<metric property="mep" displayName="MEP" dataType="trait" displayType="summary" defaultOn="true" description="Type of deployment"/>
<metric property="LifeCycleState" displayName="Lifecycle State" dataType="trait" displayType="summary" defaultOn="true" description="Lifecycle State"/>
<metric property="maxThreads" displayName="Maximum Number of Threads" dataType="trait" displayType="summary" defaultOn="true" description="Maximum number of threads"/>
@@ -120,11 +167,18 @@
<c:simple-property name="descriptionTemplate" default="JBoss ESB statistics for the {actionName} action."/>
<c:simple-property name="actionName" type="string" description="the JBoss ESB action name"/>
</plugin-configuration>
- <metric displayName="Messages Successfully Processed" property="successProcessedCount" category="throughput" defaultOn="true"/>
- <metric displayName="Messages Failed" property="failedProcessedCount" category="performance" defaultOn="true"/>
+ <metric displayName="Message Count" property="overallMessagesCount" category="utilization" displayType="summary" defaultOn="true" measurementType="dynamic"/>
+ <metric displayName="Message Count (avg)" property="overallMessagesCountMinute" category="utilization"
+displayType="summary" defaultOn="true" measurementType="dynamic"/>
+ <metric displayName="Messages Failed" property="failedProcessedCount" category="utilization" displayType="summary" defaultOn="true" measurementType="dynamic"/>
+ <metric displayName="Messages Failed (avg)" property="failedProcessedCountMinute" category="utilization" displayType="summary" defaultOn="true" measurementType="dynamic"/>
+ <metric displayName="Messages Successfully Processed" property="successProcessedCount" category="utilization" displayType="summary" defaultOn="true" measurementType="dynamic"/>
+ <metric displayName="Messages Successfully Processed (avg)" property="successProcessedCountMinute" category="utilization" displayType="summary" defaultOn="true" measurementType="dynamic"/>
+ <metric displayName="Overall Bytes" property="overallBytesProcessed" units="bytes" category="utilization"
+displayType="summary" defaultOn="true" measurementType="dynamic"/>
+ <metric displayName="Overall Bytes Processed" property="bytesSuccessful" units="bytes" category="utilization" displayType="summary" defaultOn="true" measurementType="dynamic"/>
+ <metric displayName="Overall Bytes Failed" property="overallBytesFailed" units="bytes" category="utilization" displayType="summary" defaultOn="true" measurementType="dynamic"/>
<metric displayName="Processing Time" property="processingTime" units="milliseconds" defaultOn="true" category="performance"/>
- <metric displayName="Bytes Processed" property="overallBytesProcessed" units="bytes" category="performance" defaultOn="true"/>
- <metric displayName="Bytes Failed" property="overallBytesFailed" units="bytes" category="performance" defaultOn="true"/>
<help>
<![CDATA[
JBoss ESB Actions are the actions executed within a service.
More information about the jboss-svn-commits
mailing list