PK ZEoa,mimetypeapplication/epub+zipPKZEiTunesMetadata.plisty artistName Oracle Corporation book-info cover-image-hash 181696152 cover-image-path OEBPS/dcommon/oracle-logo.jpg package-file-hash 432488392 publisher-unique-id E16179-04 unique-id 504965079 genre Oracle Documentation itemName Oracle® Fusion Middleware Administrator's Guide for Oracle Application Development Framework, 11g Release 2 (11.1.2.3.0) releaseDate 2012-08-30T15:30:46Z year 2012 PK\BPKZEMETA-INF/container.xml PKYuPKZEOEBPS/monitor.htm Monitoring and Configuring ADF Applications

3 Monitoring and Configuring ADF Applications

This chapter describes how to monitor ADF application performance. It also describes how to configure an ADF application's properties after it has been deployed to Oracle WebLogic Server using Fusion Middleware Control. It also describes configuration tasks required for applications deployed to IBM WebSphere Application Server.

This chapter includes the following sections:

3.1 Introduction to ADF Application Monitoring and Configuration

After you have deployed an ADF application to Oracle WebLogic Server, you can monitor the application performance and configure application properties on the server. You can use Enterprise Manager Fusion Middleware Control to perform these tasks.

Enterprise Manager Fusion Middleware Control offers a user interface for the performance tasks. Some configuration tasks can be performed either from a user interface or by configuring an MBean, as listed in Table 3-1.

By default, the post-deployment changes made using MBeans are stored in MDS with a layer name of adfshare and a layer value of adfshare. You can provide a specific layer name by specifying the adfAppUId property in the application's adf-config.xml.

Example 3-1 shows the adf-properties-child code in adf-config.xml.

Example 3-1 MDS Layers in the adf-config.xml File

<adf:adf-properties-child xmlns="http://xmlns.oracle.com/adf/config/properties">
     <adf-property name="adfAppUID" value="DeptApp.myApp"/>
</adf:adf-properties-child> 

If you are moving data between MDS repositories (for example, from a test to a production system), use the MDS exportMetadata and importMetadata commands as described in the chapter on managing the Oracle metadata repository in the Oracle Fusion Middleware Administrator's Guide and in the chapter on Metadata Services custom WLST commands in the Oracle Fusion Middleware WebLogic Scripting Tool Command Reference.

3.2 Monitoring Performance Using Fusion Middleware Control

You can monitor the performance of Oracle ADF applications using the Enterprise Manager Fusion Middleware Control.

You can:

3.2.1 How to View Application Module Performance

You can view performance information about application modules. Application module components can be used to support a unit of work which spans multiple browser pages.

Before you begin:

You must already have deployed an Oracle ADF application and have Enterprise Manager Fusion Middleware Control available to access the application.

To view ADF application module performance:

  1. Log in to an Oracle Fusion Middleware farm using Fusion Middleware Control.

  2. Click the Farm tab.

  3. Expand the Farm_domain node.

  4. Expand the Application Deployments node and click a J2EE application deployment, for example, StoreFrontModule (AdminServer).

    After you select an application, the Application Deployment page displays.

  5. Click Application Deployment and select ADF > ADF Performance from the dropdown menu.

    The ADF Performance page displays. It contains subtabs for viewing performance information about active application module pools and task flows.

3.2.2 How to view Application Module Pool Performance

An application module pool is a collection of instances of a single application module type which are shared by multiple application clients. One application module pool is created for each root application module used by an ADF web application (ADF Business Components, ADF Controller, or ADF Faces) in each Java virtual machine where a root application module of that type is used by the ADF Controller layer.

Before you begin:

You must already have deployed an Oracle ADF application and have Enterprise Manager Fusion Middleware Control available to access the application.

To view application module pooling performance:

  1. Log in to an Oracle Fusion Middleware farm using Fusion Middleware Control.

  2. Click the Farm tab.

  3. Expand the Farm_domain node.

  4. Expand the Application Deployments node and click a J2EE application deployment, for example, StoreFrontModule (AdminServer).

    After you select an application, the Application Deployment page displays.

  5. Click Application Deployment and select ADF > ADF Performance from the dropdown menu.

    The ADF Performance page displays. It contains subtabs for viewing performance information about active Application Module Pools and Task Flows.

  6. Click the Application Module Pools tab.

  7. In the Module column, select an application module to display its details in the Application Module Pools table.

    No Data Available displays in the Module column if an application has never run.

  8. Click a module to display additional informations about the module, for example, Lifetime, State Management, Pool Use, and Application Module Pools Page.

    Use the Application Module Pools page to display active application module pools, a collection of application module instances of the same type. The Application Module Pools page:

    • Displays size and performance information about pool connections

    • Specifies settings that affect how application module pools behave

    • Specifies credential information for the application module pools

    ElementDescription

    Module

    Displays the active application module pool name, for example, model.BugTest5PM.

    Click a module to display additional information about it, for example, Lifetime, State Management, Pool Use, Application Module Pools page.

    Requests

    Displays the number of requests that were made for the application during the selected time interval.

    Average Creation Time (ms)

    Displays the average time (in milliseconds) required to complete a request for the application module pool.

    Maximum Creation Time (ms)

    Displays the longest time (in milliseconds) required to complete any of the requests for the application module pool.

    Free Instances

    Displays the number of available instances of the application module pool.


3.2.3 How to View ADF Task Flow Performance

You can view performance information about task flows. Task flows provide a modular and transactional approach to navigation and application control. Task flows mostly contain pages that will be viewed, but they also can contain activities that call methods on managed beans, evaluate an EL expression, or call another task flow, all without invoking a particular page.

Before you begin:

You must already have deployed an Oracle ADF application and have Enterprise Manager Fusion Middleware Control available to access the application.

To view task flow performance:

  1. Log in to an Oracle Fusion Middleware farm using Fusion Middleware Control.

  2. Click the Farm tab.

  3. Expand the Farm_domain node.

  4. Expand the Application Deployments node and click a J2EE application deployment, for example, StoreFrontModule (AdminServer).

    After you select an application, the Application Deployment page displays.

  5. Click Application Deployment and select ADF > ADF Performance from the dropdown menu.

    The ADF Performance page displays. It contains subtabs for viewing performance information about active application module pools and task flows.

  6. Click the Task Flows tab.

    By default, Task Flow Performance charts on the tab display data for the preceding 15 minutes. To set a different interval, click the time at the top of the page or move the slider to another interval, for example, from 08:00 AM to 08:30 AM.

  7. Click TF Charts.

    • Request Processing Time displays the average request processing time for all ADF task flows that execute during the selected interval.

    • Active Task Flows displays the number of active instances of each ADF task flow during the selected interval.

3.3 Configuring Application Properties Using Fusion Middleware Control

You can use Enterprise Manager Fusion Middleware Control to configure ADF application configuration parameters. These configuration parameters are stored in ADF MBeans. Fusion Middleware Control provides a user interface to configure the ADF Business Components and ADF Connections MBeans. You can also use the System MBean Browser to directly access the underlying MBeans and configure their values. For more information about accessing the underlying MBeans, see Section 3.4, "Configuring Application Properties Using the MBean Browser."

Fusion Middleware Control provides a user interface for you to:

3.3.1 How to Modify ADF Business Components Parameters

You control the runtime behavior of an application module pool by setting appropriate configuration parameters. Fusion Middleware Control provides a UI to configure ADF Business Components, as described in this section. You can also configure the ADF Business Components MBeans directly using the generic MBean Browser, as described in Section 3.4.3, "How to Modify ADF Business Components Configuration Using MBeans."

Before you begin:

You must already have deployed an Oracle ADF application and have Enterprise Manager Fusion Middleware Control available to access the application.

To modify business components parameters:

  1. Log in to an Oracle Fusion Middleware farm using Fusion Middleware Control.

  2. Click the Farm tab.

  3. Expand the Farm_domain node.

  4. Expand the Application Deployments node and click a J2EE application deployment, for example, StoreFrontModule (AdminServer).

    After you select an application, the Application Deployment page displays.

  5. Click Application Deployment and select ADF > Configure ADF Business Components from the dropdown menu.

  6. Click an Application Module.

  7. Click the Pooling and Scalability, Core, Database, or Security tabs to update configuration parameters.

    If the application module uses data sources, you can configure the data sources by clicking Edit Datasource from the Core tab.

The ADF Business Components configurations page is arranged with the following sections or tabs:

  • Application Modules section

  • Pooling and Scalability tab - Application Pool Properties

  • Pooling and Scalability tab - Connection Pool Properties

  • Core tab

  • Database Properties tab

  • Security Properties tab

Application Modules Section

In the Application Modules section, select the application module you want to configure.

ElementDescription

Application Modules

Displays the active application module name. Click the module name to display the applications in the module.


Pooling and Scalability Tab - Application Pool Properties

In the Pooling and Scalability tab, select the application pool properties you want to configure.

ElementDescription

AmpoolDoampooling

Select to enable application module pooling by default. Whenever you deploy your application in a production environment the default setting of jbo.ampool.doampooling is true and is the way you will run your application. But, as long as you run your application in a test environment, setting the property to false can play an important role in your testing. When this property is false, there is effectively no application pool.

AmpoolWritecookietoclient

Select to write the SessionCookie value to the client browser.

AmpoolMaxavailablesize

Enter the maximum number of available application modules that should be referenced by an application pool. This is the ideal maximum number of available application module instances in the pool when not under abnormal load.When the pool monitor wakes up to do resource cleanup, it will try to remove available application module instances to bring the total number of available instances down to this ideal maximum. Instances that have been not been used for a period longer than the idle instance timeout will always get cleaned up at this time, and then additional available instances will be removed, if necessary to bring the number of available instances down to this size.The default maximum available size is 25 instances. Configure this value to leave the maximum number of available instances desired after a resource cleanup. A lower value generally results in more application module instances being removed from the pool on a cleanup.

AmpoolSessioncookiefactoryclass

Enter a custom session cookie factory implementation. This class creates the session cookies that allow clients to retrieve application modules in stateful mode

AmpoolMaxinactiveage

Enter the maximum amount of time (in milliseconds) that an application module may remain inactive before it is removed from the pool.

The default is 600000 milliseconds of idle time (which is 600 seconds, or ten minutes). A lower value results in more application module instances being marked as candidates for removal at the next resource cleanup. A higher value results in fewer application module instances being marked as candidates for removal at the next resource cleanup.

AmpoolMinavailablesize

Enter the minimum number of available application modules that should be referenced by an application pool. This is the minimum number of available application module instances that the pool monitor should leave in the pool during a resource cleanup operation.Set to 0 (zero) if you want the pool to shrink to contain no instances when all instances have been idle for longer than the idle timeout after a resource cleanup.The default is 5 instances.

Doconnectionpooling

Select if the application pool should release the application module connection upon checkin. This forces the application module pool to release the JDBC connection used each time the application module is released to the pool.

Recyclethreshold

Enter the maximum number of application module instances in the pool that attempt to preserve session affinity for the next request made by the session. This session used them last before releasing them to the pool in managed-state mode.

AmpoolConnectionstrategyclass

Enter a custom connection strategy implementation, for example oracle.jbo.common.ampool.DefaultConnectionStrategy. This is the class that implements the connection strategy.

Maxpoolcookieage

Enter the maximum browser cookie age for pooled application module sessions. This is the maximum age of the browser cookies used to help clients retrieve stateful application modules. If these cookies do not time out, the value is -1. It is recommended that the maximum cookie age be always set less than or equal to the session cookie age. It is set that way by default (both are -1). If you change the maximum cookie age, then you must also change the session cookie age to the same value.

AmpoolInitpoolsize

Enter an initial number of application module instances to be created in a pool. This is the number of application module instances to created when the pool is initialized.The default is 0 (zero) instances. A general guideline is to configure this value to 10% more than the anticipated number of concurrent application module instances required to service all users.Creating application module instances during initialization takes the CPU processing costs of creating application module instances during the initialization instead of on-demand when additional application module instances are required.

AmpoolDynamicjdbccredentials

Select if an application pool may support multiple JDBC users. This property enables additional pooling lifecycle events to allow developer-written code to change the database credentials (username/password) each time a new user session begins to use the application module.This feature is enabled by default (true); however this setting is a necessary but not sufficient condition to implement the feature. The complete implementation requires additional developer-written code.

AmpoolIsuseexclusive

Select if application module use is exclusive.

AmpoolResetnontransactionalstate

Select if the nontransactional application module state should be reset upon an unmanaged checkin. This forces the application module to reset any nontransactional state like view object runtime settings, JDBC prepared statements, bind variable values, and so on. when the application module is released to the pool in unmanaged, or "stateless" mode.This feature is enabled by default (true). Disabling this feature can improve performance; however, since it does not clear bind variable values, your application needs to ensure that it systemically sets bind variable values correctly. If your application does not do so, and this feature is disabled, then it is possible for one user to see data with another user's bind variable values.

AmpoolMaxpoolsize

Enter the maximum number of application module instances that the pool can allocate. The pool will never create more application module instances than this limit imposes.The default is 5000 instances. A general guideline is to configure this value to 20% more than the initial pool size to allow for some additional growth. If the value is set too low, then some users may see an error when they tries to access the application if no application module instances are available.

AmpoolTimetolive

Enter the connection pool time to live for connection instances. This is the number of milliseconds after which an application module instance in the pool is considered as a candidate for removal during the next resource cleanup, regardless of whether it would bring the number of instances in the pool below minavailablesize.The default is 3600000 milliseconds of total time to live (which is 3600 seconds, or one hour). The default value is sufficient for most applications.

AmpoolMonitorsleepinterval

Enter the length of time (in milliseconds) between pool resource cleanups.

Dofailover

Select if failover should occur upon checkin to the application module pool. This feature enables eager passivation of pending transaction state each time an application module is released to the pool in managed state mode. Web applications should set enable failover (true) to allow any other application module to activate the state at any time. This feature is disabled by default (false).

Best Practice: When enabling application module state passivation, a failure can occur when Oracle WebLogic Server is configured to forcibly release connection back into the pool. A failure of this type produces a SQLException (Connection has already been closed) that is saved to the server log. The exception is not reported through the user interface. To ensure that state passivation occurs and users' changes are saved, set an appropriate value for the weblogic-application.xml deployment descriptor parameter inactive-connection-timeout-seconds on the <connection-check-params> pool-params element. Setting the deployment descriptor parameter to several minutes, in most cases, should avoid forcing the inactive connection timeout and the resulting passivation failure. Adjust the setting as needed for your environment.

poolClassName

Enter the custom application pool implementation class.

Show Connection Pool Properties

Expand to display fields containing current advanced connection pool properties, or enter new values in the fields.

Hide Connection Pool Properties

Click to hide all Connection Pool Properties fields.


Pooling and Scalability Tab - Connection Pool Properties

In the Pooling and Scalability tab, select the connection pool properties you want to configure.

ElementDescription

Initpoolsize

Enter the initial size of a JDBC connection pool. This is the number of JDBC connection instances created when the pool is initialized.

The default is an initial size of 0 instances.

Maxpoolsize

Enter the maximum size of a JDBC connection pool. This is the maximum number of JDBC connection instances that the pool can allocate. The pool will never create more JDBC connections than this allows.

The default is 5000 instances.

Poolmaxinactiveage

Enter the maximum amount of time (in milliseconds) that a connection may remain inactive before it is removed from the pool. This is the number of milliseconds after which to consider an inactive application module instance in the pool as a candidate for removal during the next resource cleanup.

The default is 600000 milliseconds of idle time (which is 600 seconds, or ten minutes). A lower value results in more application module instances being marked as candidates for removal at the next resource cleanup. A higher value results in fewer application module instances being marked as candidates for removal at the next resource cleanup.

Poolmaxavailablesize

Enter the maximum number of available connections that should be referenced by a connection pool. This is the ideal maximum number of JDBC connection instances in the pool when not under abnormal load.

When the pool monitor wakes up to do resource cleanup, it will try to remove available JDBC connection instances to bring the total number of available instances down to this ideal maximum. Instances that have been not been used for a period longer than the idle instance timeout will always get cleaned up at this time, and then additional available instances will be removed, if necessary, to bring the number of available instances down to this size.

The default is an ideal maximum of 25 instances (when not under load).

Poolrequesttimeout

Enter the time (in milliseconds) that a request should wait for a JDBC connection to be released to the connection pool.

Poolminavailablesize

Enter the minimum number of available connections that should be referenced by a connection pool. This is the minimum number of available JDBC connection instances that the pool monitor should leave in the pool during a resource cleanup operation.

Set to zero (0) if you want the pool to shrink to contain no instances when instances have been idle for longer than the idle time-out.

The default is to not let the minimum available size drop below 5 instances.

Poolmonitorsleepinterval

Enter the time (in milliseconds) that the connection pool monitor should sleep between pool checks. This is the length of time in milliseconds between pool resource cleanup.

While the number of application module instances in the pool will never exceed the maximum pool size, available instances which are candidates for getting removed from the pool do not get "cleaned up" until the next time the application module pool monitor wakes up to do its job.

ConnectionPoolManager

Enter the implementation of the connection pool manager which will be used.

Pooltimetolive

Enter the application pool time to live (in milliseconds) for application module instances.


Core Tab

Use the core tab to view or edit core properties for the application module.

ElementDescription

DefaultLanguage

Enter the default business components session language, which is part of the locale.

Passivationstore

Enter the type of store, file, or database file that should be used for application module passivation.

database is the default choice. While it may be a little slower than passivating to file, it is by far the most reliable choice.

file may offer faster performance because access to the file is faster then access to the database.

Default Country

Enter the default business components session country, which is part of the Locale.

AssocConsistent

Select if entity row set associations have been kept consistent.

XmlValidation

Select to determine the validation mode for the XML parser. If selected, the XML parser uses strict XML validation.

DatabaseConfig

Database Configuration.

Name

Enter the name of the application module.

OracleSchema

Enter the name of the schema in which the business components runtime libraries are deployed.

Show Advanced Properties

Expand to display fields containing current advanced core properties, or enter new values in the fields.

PersMaxRowsPerNode

Enter the maximum size of a node for view row spillover.

PassivationTrackInsert

If selected when an application module is activated, it will be updated to include rows inserted into the database while it was passive.

ApplicationPath

For EJB deployment, enter the JNDI path to the business components.

ViewlinkConsistent

If selected, the view object row sets retrieved through view link accessors will include rows that have been added, even if these changes have not been posted to the database.

ConnectionMode

Deprecated property, formerly used for deployment to VisiBroker. VisiBroker deployment is no longer supported.

Maxpassivationstacksize

Enter the maximum size of the passivation stack (default is 10)

TxnHandleafterpostexc

Select to cause ADF Business Components to take a transaction snapshot before beginning a commit operation. If an exception is thrown after changes have been posted to the database, ADF Business Components will use this snapshot to roll back the in-memory state of your application module to the point before commit operation began.

SnapshotstoreUndo

Enter the target for undo snapshots {transient|persistent}

Project

Enter the name of the project containing extended business components to be substituted for base ones, if Factory-Substitution-List is not empty.

Tmpdir

Enter the directory for temporary Oracle ADF Business Components files.

DeployPlatform

The deployment platform: select LOCAL, EJB_IAS (for an EJB deployed to Oracle Application Server), or WLS (for an EJB deployed to Oracle WebLogic Server).

PersMaxActiveNodes

Enter the maximum number of nodes that will be cached in memory for view row spillover.

Saveforlater

Select Save snapshots for the lifetime of the transaction.

ViewCriteriaAdapter

Enter a custom class that will be used by view objects to convert between view criteria and view object SQL.

Connectfailover

Select business components transparent JDBC connection failover

Hide Advanced Properties

Click to hide all Connection Pool Properties fields.


Database Properties Tab

If you are using a JDBC URL for your connection information so that the ADF database connection pool is used, then the configuration parameters listed here can be used to tune the behavior of the database connection pool.

ElementDescription

MaxCursors

Enter the maximum number of cursors to be used by the session. This is the maximum number of cursors the business components may have open. The framework will clean up free JDBC statements as the number of cursors approaches this number.

Sql92DbTimeQuery

Enter the database system time SQL query string.

SQLBuilder

Enter the SQLBuilder implementation (Oracle, OLite, DB2, or SQL92 for other SQL92-compliant databases).

Sql92LockTrailer

Enter the SQL statement trailer clause for locking.

JdbcTrace

Select to trace all JDBC activity with lines flagged by + PropertyConstants.JDBC_MARKER +

oracleDefineColumnLength

Enter the column length for all JDBC CHAR or VARCHAR2 columns. Use as_bytes to make column precision specifications in bytes. Use as_chars to make column precision specifications in characters. This is important for larger character sets, such as Unicode.

Sql92JdbcDriverClass

Enter the name of the class implementing JDBC Driver, for example, sun.jdbc.odbc.JdbcOdbcDriver.

TypeMapEntries

Enter the type map implementation. This specifies a custom type map between Java types and SQL types.

ControlTableName

Enter the persistent collection control table name.

FetchMode

Enter the control fetch behavior of View Objects (+ PropertyConstants.ENV_FETCH_AS_NEEDED + "|" + PropertyConstants.ENV_FETCH_ALL + ).

AS.NEEDED causes view objects to fetch rows only when they are requested. ALL causes them to fetch the entire results of their queries.

LockingMode

Enter the default locking mode for an application module. This prevents the application module pool from creating a pending transaction state on the database with row-level locks each time the application module is released to the pool.Fusion web applications should set the locking mode to optimistic to avoid creating the row-level locks.

JdbcBytesConversion

Indicate whether to use JDBC default bytes conversion or to perform such conversion in the framework.

Show Advanced Properties

Expand to display fields containing current advanced database properties, or enter new values in the fields.

TxnSeqInc

Select persistent transaction sequence increment.

UsePersColl

Select enable view row spillover to help manage large rowsets.

TxnSeqName

Enter persistent transaction sequence name.

Hide Advanced Properties

Click to hide all advanced property fields.


Security Properties Tab

Use the Security Properties tab to configure application module security information.

ElementDescription

SecurityContext

Enter the JAAS context. This element specifies a particular JAAS implementation.

The default is JAZN.

Show Advanced Properties

Expand to display fields containing current advanced security properties, or enter new values in the fields.

UserPrincipal

Enter the authenticated user principal name.

SecurityConfig

Enter the complete path and file name of JAZN configuration, for example, k:\j2ee\home\config\jazn.xml.

If this property value is null or length 0, runtime will assume that jazn.xml is in the same path as jazn.jar and append /config/jazn.xml before it accesses login module or gets the JAZN context for getting permission manager.

javaNamingSecurityCredentials

For EJB deployment, enter the password for the application server connection.

AppModuleJndiName

For EJB deployment, enter the JNDI name used to look up the application module factory.

SecurityLoginmodule

Enter a custom login module for authentication, for example, oracle.security.jazn.realm.RealmLoginModule.

The default is the JAZN login module.

ServerUseNullDbTransaction

Use 9.0.2 compatible oracle.jbo.server.NullDbtransactionImpl when not connected to the database.

SecurityEnforce

Enter one of the following values:

None - No authentication.

Test - Requires authentication. If using the tester or ADF Swing, a dialog will prompt for login. If authentication fails, the application module is still instantiated.

Must - Like Test, but if authentication fails, the application module will not be instantiated. Instead, you will get an exception.

Auth - Like Must, but in addition, if you have used the Entity Wizard Authorization editor to define entity or attribute permissions, the permissions will be checked. For example if the permission on Dept.Deptno was granted update_while_new to role users, then the users role can set the Deptno value only when the row is new. Otherwise, it is not editable.

Note that even if there are permissions granted via the wizard, they will not be enforced unless jbo.security.enforce is set to Auth.

javaNamingSecurityPrincipal

For EJB deployment, enter the password for the application server connection.

Hide Advanced Properties

Click to hide all advanced property fields.


3.3.2 How to Modify Connection Configurations

A connection configuration contains information that a client application uses to identify the ADF application module's deployment scenario. You use Oracle Enterprise Manager Fusion Middleware Control to:

  • Register and manage back-end services such as mail, discussion forums servers, and so on

  • Register and manage external applications that users need access to while working with applications

  • Register and manage any portlet producers that the application uses or that users may need access to

Fusion Middleware Control provides a UI to configure ADF connections, as described in this section. You can also configure the ADF connections MBean directly using the generic MBean Browser, as described in Section 3.4.2, "How to Modify ADF Connections Using MBean."

Before you begin:

You must already have deployed an Oracle ADF application and have Enterprise Manager Fusion Middleware Control available to access the application.

You must have MDS configured in your application before you can modify the ADF application and connection configurations. ADF connection attributes are persisted to MDS.

If you deployed an application to several nodes within a cluster, any ADF connection changes to a single node will be propagated to all the other nodes. MDS will store a single set of connection information for all versions of an application.

To modify connection configurations:

  1. Log in to an Oracle Fusion Middleware farm using Fusion Middleware Control.

  2. Click the Farm tab.

  3. Expand the Farm_domain node.

  4. Expand the Application Deployments node and click a J2EE application deployment, for example, StoreFrontModule (AdminServer).

    After you select an application, the Application Deployment page displays.

  5. Click Application Deployment and select ADF > Configure ADF Connections from the dropdown menu.

  6. In the Connection Type drop-down list, choose the type of connection you want to configure:

    • ADF BC Service

    • Discussions and Announcements

    • File System

    • Mail Server

    • Secure Enterprise Search

    • URL

    • Web Service

    You cannot create an Essbase connection, however, you can edit an existing Essbase connection that was deployed with the application.

  7. In the Connection Name field, enter a unique name for the connection configuration.

  8. Click Create Connection.

    The Connection Configuration page updates with a section where you can specify options for the connection type you chose.

The following connection types are supported:

  • ADF Business Components Service connection

  • Essbase connection

  • Discussions and Announcements connection

  • File system connection

  • Mail server connection

  • Secure enterprise search connection

  • URL connection

  • Web Service connection

ADF Business Components Service Connection

Use the ADF Business Components Service connection page to create a new ADF Business Components Service connection or to modify existing connection details.

ElementDescription

serviceEndpointProvider

Enter the provider of the service endpoint. Valid types are ADFBC, Fabric, SOAP.

serviceConnectionName

Enter the service connection name.

jndiName

Enter the JNDI name of the EJB that implements the service interface. Applicable when the endpoint is ADF BC.

jndiFactoryInitial

Enter the class name of initial context factory for JNDI lookup. Applicable when the endpoint is ADF BC.

jndiProviderURL

Enter configuration information for the JNDI lookup. Applicable when endpoint is ADF BC.

jndiSecurityPrincipal

Enter the identity of the principal (e.g. user) for the JNDI lookup. Applicable when the endpoint is ADF BC.

jndiSecurityCredentials

Enter the principal's credentials for JNDI lookup. Applicable when the endpoint is ADF BC.

fabricAddress

Enter the service name of the SOA composite. Applicable when the endpoint is Fabric.

serviceInterfaceName

Enter the class name of the service endpoint interface.

serviceSchemaName

Enter the name of the service schema file.

serviceSchemaLocation

Enter the relative path of the service schema file.


Essbase Connection

You cannot create an Essbase connection; however, you can edit an existing Essbase connection that was deployed with the application.

ElementDescription

Host

Enter the host that this connection represents.

Port

Displays the default port that this connection uses to connect to Essbase. Clear the Default option to enter a port other than the default.

Username

Enter the user name authorized to connect to Essbase during design time. This user name is replaced at runtime with the user name specified by the application.

Password

Enter the password of the user. An asterisk (*) is displayed for each character you enter in this field.


Discussions and Announcements Connection

Use the Discussion Forum Connection pages to connect to a new discussions server connection or to modify existing connection details. Forum Connections configuration includes configurations for name, connection details, and advanced.

Discussions and Announcements Connection - Name

ElementDescription

Name

Enter a unique name for the connection.


Discussions and Announcements Connection - Connection Details

ElementDescription

Server URL

Enter the URL of the discussion server hosting the discussion forums.

For example: http://discuss-server.com:8888/owc_discussions

Administrator User Name

Enter the user name of the discussion server administrator.

Administrative privileges are required for this connection so that operations can be performed on behalf of WebCenter users.

Connection Timeout (in Seconds)

.Enter the connection timeout in seconds. The default is -1.

Connection Secured

Indicate whether or not the discussion server connection is secure.


Discussions and Announcements Connection - Advanced Configuration

ElementDescription

Cache Size (in MB)

Specify the amount of space reserved for the cache (in MB).

The default is 0.

ache Expiration Time (in Minutes)

Specify a suitable expiration period for the cache.

This is the maximum length of time (in minutes) that cached content is valid.

The default is 0.

Connection Timeout (in Seconds)

Specify a suitable timeout for the connection.

This is the length of time (in seconds) that the WebCenter application waits for a response from the discussion server before issuing a connection timeout message.

The default is 60 seconds.


File System Connection

Use the Add/New Content Repository Connection pages to connect to a new content repository or to modify existing connection details.


Note:

All configuration changes are stored in the MDS repository.


File System Connection Details - File System

ElementDescription

Root Path

Enter the full path to a folder on a local file system in which your content is placed. For example: C:/MyContent

Caution: File system content must not be used in production or enterprise application deployments. This feature is provided for development purposes only.


Mail Server Connection

Use the Mail Server connection pages to configure LDAP and advanced mail server configurations

ElementDescription

IMAP Host

Enter the host name of the machine where the IMAP service (Internet Message Access Protocol) is running.

IMAP Port

Enter the port on which the IMAP service listens.

IMAP Secured

Indicate whether a secured connection (SSL) is required for incoming mail over IMAP.

SMTP Host

Enter the host name of the machine on which the SMTP service (Simple Mail Transfer Protocol) is running.

SMTP Port

Enter the port on which the SMTP service listens.

SMTP Secured

Indicate whether a secured connection (SSL) is required for outgoing mail over SMTP.

Associated External Application

Associate the mail server with an external application. External application credential information is used to authenticate users against the IMAP server.


Mail Server Connection - LDAP Configuration

ElementDescription

LDAP Domain

Enter the LDAP domain.

LDAP Host

Enter the host name of the LDAP (Lightweight Directory Access Protocol) server.

LDAP Port

Enter the port on which the LDAP service listens.

LDAP Secured

Indicate whether a secured connection (SSL) is required for the LDAP connection.

LDAP Administrator User Name

Enter the user name of the LDAP server administrator.

LDAP Administrator Password

Enter the password for the LDAP server administrator.

LDAP Base DN

Enter the base-distinguished name for the LDAP schema.

LDAP Default User

Enter the LDAP default user.


Mail Server Connection - Advanced Configuration

ElementDescription

Connection Timeout (in Seconds)

Specify a suitable timeout for the connection.

This is the length of time (in seconds) that the WebCenter application waits for a response from the mail server before issuing a connection timeout message. The default is 60 seconds.

Cache Expiration Time (in Minutes)

Specify a suitable expiration period for the cache.

This is the maximum length of time (in minutes) that cached content is valid. The default value (-1) means that the cache never expires.


Secure Enterprise Search Connection

Use the Secure Enterprise Search Connection pages to connect the WebCenter application to a new Oracle Secure Enterprise Search server or to modify existing connection details.

Secure Enterprise Search Connection Provider configuration includes configurations for name, connection details, and advanced configurations.

Secure Enterprise Search Connection - Name

ElementDescription

Connection Name

Enter a unique name for the connection.

Active Connection

Select to use this connection for search-related services in the WebCenter application.

You can register multiple search connections through Oracle Enterprise Manager Fusion Middleware Control, but only one connection is active at a time.


Secure Enterprise Search Connection - Connection Details

ElementDescription

SOAP URL

Enter the Web Service URL that Oracle Secure Enterprise Search exposes to enable search requests.

Use the format: http://<host>:<port>/search/query/OracleSearch

For example: http://myHost:7777/search/query/OracleSearch

Application User Name

Enter the name of a valid user.

You can specify the name of any user in the identity store. The user must be present in both the Oracle Identity Management server configured for your WebCenter application and the Oracle Identity Management server configured for Oracle SES.

The WebCenter application must authenticate itself as a trusted application to Oracle Secure Enterprise Search so that it may perform searches on behalf of WebCenter users.

Application Password

Enter the appropriate user password.


Secure Enterprise Search Connection - Advanced Configuration

ElementDescription

Oracle Secure Enterprise Search Data Group

Enter the Secure Enterprise Search data group in which to search.

Execution Timeout

Enter the search execution timeout in milliseconds.

Executor Preparation Timeout

Enter the search executor preparation timeout in milliseconds.

Number of Saved Searches

Enter the number of saved searches displayed.

Simple Search Result Rows

Enter the number of results displayed from a simple search, for each service.

Search Result Rows

Enter the number of search results displayed for each service.

Global Search Result Rows

Enter the number of search resultslv displayed (on the toolbar) for each service.


URL Connection

Use the URL Connection pages to configure URL connections.

ElementDescription

URL

Enter the URL of the desired data stream, but omit any URL parameters.

Username

Enter the username require to enter the web site.

Password

Enter the password required to enter the web site.

AuthenticationRealm

Defines the Realm as in HTTP authentication. Defined by the server hosting the protected resources.

Proxy

Defines the proxy to be used for connecting to HTTP/HTTPS resources. Specifies the host/port and any authentication details needed to authenticate against the proxy itself.

ProxyUseDefault

Uses the default proxy at the system level instead of the connection level at both DT or RT, or wherever the connection instance is active. At design time, the default proxy will be the JDeveloper IDE proxy settings, at runtime, it will be the one configured for WLS.

ConnectionClassName

Indicates the type of challenge authentication. The two supported modes are Basic and Digest authentication (HTTP basic & digest).

ChallengeAuthenticationType

The class name of the connection that gets loaded into the reference to be used by the factory to construct the connection instance.


Web Service Connection

Use the Web Service Connection page to configure a connection using the WebService MDDS model based on the service WSDL to call and invoke the WebService.

Use the Configure Web Service dropdown list to configure the Web Service Client, including attaching and detaching policy. After you have finished the configuration in the web services page, you can use the breadcrumbs to navigate back to the ADF Connections page.

ElementDescription

Model

Enter the WebService MDDS model elements generated based on the service WSDL.

WsdlUrl

Enter the WebService service WSDL URL.

DefaultServiceName

Enter the default service Name of the service WSDL.


3.4 Configuring Application Properties Using the MBean Browser

You can use the Enterprise Manager Fusion Middleware Control MBean Browser to access and modify the values in ADF MBeans deployed with the ADF application into Oracle WebLogic Server.

You can view and modify:

3.4.1 How to Modify ADF Application Configuration Using MBean

You can modify ADF application configurations MBeans using the MBean Browser.

Before you begin:

You must have MDS configured in your application before you can modify the ADF application and connection configurations. ADF application attributes are persisted to MDS.

If you deployed an application to several nodes within a cluster, any ADF application configuration changes to a single node via an MBean will be propagated to all the other nodes. MDS will store a single set of ADF application configuration information for all versions of an application.

To modify ADF application configuration using MBean Browser:

  1. Log in to an Oracle Fusion Middleware farm using Fusion Middleware Control.

  2. Click the Farm tab.

  3. Expand the Farm_domain node.

  4. Expand the Application Deployments node and click a J2EE application deployment, for example, StoreFrontModule (AdminServer).

    After you select an application, the Application Deployment page displays.

  5. Click Application Deployment and select ADF > Configure ADF (adf-config) from the dropdown menu.

  6. In the left pane of the System MBean Browser, expand the parent ADF MBean ADFConfig and then the ADFConfig folder to expose the child ADF MBeans.

    You may see the child ADF MBeans ADFcConfiguration and MDSAppConfig.

  7. In the left pane, select the ADFcConfiguration MBean, and in the right pane, select the attribute you want to view or modify.

    Figure 3-1 shows an ADF Configuration MBean in the Fusion Middleware Control MBean Browser.

    Figure 3-1 ADF Configuration MBean

    ADF Configuraton Mbean
  8. Change the attribute value and click Apply.

  9. In the left pane, select the parent ADF MBean ADFConfig.

  10. In the right pane, click the Operations tab and click save.

    The new values you have edited are written to MDS after you click save from the parent MBean.

3.4.2 How to Modify ADF Connections Using MBean

You can modify ADF connection configurations MBean using the MBean Browser.

You can also modify ADF connections using the Fusion Middleware UI described in Section 3.3.2, "How to Modify Connection Configurations."

Before you begin:

You must have MDS configured in your application before you can modify the ADF application and connection configurations. ADF application attributes are persisted to MDS.

If you deployed an application to several nodes within a cluster, any ADF connection changes to a single node via an MBean will be propagated to all the other nodes. MDS will store a single set of ADF application configuration information for all versions of an application.

To modify ADF application configuration using MBean Browser:

  1. Log in to an Oracle Fusion Middleware farm using Fusion Middleware Control.

  2. Click the Farm tab.

  3. Expand the Farm_domain node.

  4. Expand the Application Deployments node and click a J2EE application deployment, for example, StoreFrontModule (AdminServer).

    After you select an application, the Application Deployment page displays.

  5. Click Application Deployment and select System MBean Browser from the dropdown menu.

  6. In the left pane of the System MBean Browser, navigate to the ADFConnections MBean. The MBean should be in oracle.adf.share.connections > server name > application name.

  7. In the left pane, select the ADF Connections MBean, and in the right pane, select the attribute you want to view or modify.

    Figure 3-2 shows an ADF Connections MBean displayed in the Fusion Middleware Control MBean Browser.

    Figure 3-2 ADF Connections MBean

    ADF Connections Mbean
  8. Change the attribute value and click Apply.

  9. In the right pane, click the Operations tab and click save.

    The new values you have edited are written to MDS after you click save.

3.4.3 How to Modify ADF Business Components Configuration Using MBeans

You can modify ADF Business Components configurations MBeans using the MBean Browser. ADF Business Component configuration information are stored in MBeans that are specific for each application. Unlike ADF connections and ADF application configuration information which you can configure once for all versions of the same application, you will need to configure ADF Business Components for each version of the application.

You can also modify ADF Business Components configuration information using the Fusion Middleware UI described in Section 3.3.1, "How to Modify ADF Business Components Parameters."

Before you begin:

You must have MDS configured in your application before you can modify the ADF application and connection configurations. ADF application attributes are persisted to MDS.

If you deployed an application to several nodes within a cluster, any ADF Business Components changes to a single node via MBeans will be propagated to all the other nodes. MDS will store a single set of ADF application configuration information for all versions of an application.

To modify ADF application configuration using MBean Browser:

  1. Log in to an Oracle Fusion Middleware farm using Fusion Middleware Control.

  2. Click the Farm tab.

  3. Expand the Farm_domain node.

  4. Expand the Application Deployments node and click a J2EE application deployment, for example, StoreFrontModule (AdminServer).

    After you select an application, the Application Deployment page displays.

  5. Click Application Deployment and select System MBean Browser from the dropdown menu.

  6. In the left pane of the System MBean Browser, navigate to the BC4J MBeans. These MBeans should be in oracle.bc4j.mbean.share > server name > application name.

  7. In the left pane, select the ADF Connections MBean, and in the right pane, select the attribute you want to view or modify.

  8. Change the attribute value and click Apply.

3.4.4 How to Modify MDS Configuration Using MBean

You can use the MBean Browser to perform advanced configuration of MDS parameters. For more information about configuring MDS using MBeans, see the Oracle Fusion Middleware Administrator's Guide.

Before you begin:

You must already have deployed an Oracle ADF application and have Enterprise Manager Fusion Middleware Control available to access the application.

To modify MDS configuration using MBean Browser:

  1. Log in to an Oracle Fusion Middleware farm using Fusion Middleware Control.

  2. Click the Farm tab.

  3. Expand the Farm_domain node.

  4. Expand the Application Deployments node and click a J2EE application deployment, for example, StoreFrontModule (AdminServer).

    After you select an application, the Application Deployment page displays.

  5. Click Application Deployment and select MDS Configuration from the dropdown menu.

  6. Click Configuration MBean Browser or Runtime MBean Browser.

  7. Select the MBean and the attribute you want to view or modify.

    Figure 3-3 show an MDS MBean in the Fusion Middleware Control MBean Browser.

    Figure 3-3 MDS MBean

    ADF MDS Mbean
  8. Change the value and click Apply.

3.4.5 How to Modify Active Data Service Configuration Using MBean

You can use Active Data Service (ADS) framework to control the runtime behavior of an Oracle ADF application and qualifying ADF Faces components so that whenever data changes on the server, the ADF Model layer notifies the component and the component rerenders the changed data.

Before you begin:

You must already have deployed an Oracle ADF application and have Enterprise Manager Fusion Middleware Control available to access the application.

Note that the ADF Faces components of your application must be configured to use ADS. Additionally, if your application services do not support ADS, then your application must define a service proxy so that the components can display the data as it updates in the source. For details about ADS, see Chapter 45, "Using the Active Data Service" in the Oracle Fusion Middleware Fusion Developer's Guide for Oracle Application Development Framework.

To modify ADF application configuration using MBean Browser:

  1. Log in to an Oracle Fusion Middleware farm using Fusion Middleware Control.

  2. Click the Farm tab.

  3. Expand the Farm_domain node.

  4. Expand the Application Deployments node and click a J2EE application deployment, for example, application1 (AdminServer).

    After you select an application, the Application Deployment page displays.

  5. Click Application Deployment and select ADF > Configure ADF (adf-config) from the dropdown menu.

  6. In the left pane of the System MBean Browser, expand the parent ADF MBean ADFConfig and then the ADFConfig folder to expose the child ADF MBeans.

    You may see the child ADF MBeans ActiveDataConfiguration and MDSAppConfig.

  7. In the left pane, select the ActiveDataConfiguration MBean, and in the right pane, select the attribute you want to view or modify.

    AttributeDescription

    Transport

    The method by which data will be delivered to the client. Value values are:

    • streaming (default)

    • polling

    • long-polling

    For more information, see the "What You May Need to Know About Transport Modes" section of the Oracle Fusion Middleware Fusion Developer's Guide for Oracle Application Development Framework.

    LatencyThreshold

    Latency threshold in milliseconds. Active data messages with network delays greater than this threshold will be treated as being "late".

    KeepAliveInterval

    Frequency in milliseconds for sending keep-alive messages when no events are generated.

    PollingInterval

    Frequency in milliseconds of the poll request; only used when clients are set to use polling

    MaxReconnectAttemptTime

    Maximum period of time in milliseconds a client will keep attempting to reconnect to server upon getting disconnected

    ReconnectWaitTime

    Time interval in milliseconds to wait between reconnect attempts.


    Figure 3-4 shows an ActiveDataConfiguration MBean in the Fusion Middleware Control MBean Browser.

    Figure 3-4 ADF Active Data Configuration MBean

    Active Data Service configuration
  8. Change the attribute value and click Apply.

  9. In the left pane, select the parent ADF MBean ADFConfig.

  10. In the right pane, click the Operations tab and click save.

    The new values you have edited are written to MDS after you click save from the parent MBean.

3.5 How to Edit Credentials Deployed with the Application

You can use Enterprise Manager Fusion Middleware Control to edit credentials that were deployed with an ADF application to the credential store. You can also create new credentials and delete existing credentials.

For ADF applications, the following considerations apply:

For more information, see the "Managing Credentials with Fusion Middleware Control" section of the Oracle Fusion Middleware Security Guide.

3.6 Diagnosing Problems using the Diagnostic Framework

Oracle Fusion Middleware provides a Diagnostic Framework to help you detect, diagnose, and resolve problems with your application

When a critical error occurs, the Diagnostic Framework immediately captures diagnostic data and associates the data and error with an incident number. Using this number, you can retrieve the data for analysis from the Automatic Diagnostic Repository (ADR).

Oracle ADF provides an ADFConfig dump which will execute when an INCIDENT_ERROR message is logged. You can also add code to invoke the dump in the application exception handlers. Example 3-2 show a sample code you can add to your exception handler to invoke the ADFConfig dump.

Example 3-2 Sample Code for Invoking ADFConfig Diagnostic Dump in Exception Handler

IllegalArgumentException e = new IllegalArgumentException("test exception");
LoggerFactory.getFrameworkLogger().log(ODLLevel.INCIDENT_ERROR,
 "Test error message", e);

For more information about the Diagnostic Framework, see the chapter on diagnosing problems in the Oracle Fusion Middleware Administrator's Guide.

If you are using the Diagnostic Framework on an IBM WebSphere application server, you need to perform additional tasks. For more information, see the Oracle Fusion Middleware Third-Party Application Server Guide.

3.7 Viewing Application Metric Information with DMS SPY

You can use the DMS Spy servlet to view application metric information in a web browser.

For more information, see the "Monitoring Oracle Fusion Middleware" section in the Oracle® Fusion Middleware Performance and Tuning Guide

3.8 Configuring WebSphere Application Server

You use the WebSphere Application Server administrative console to configure WebSphere Application Server. For more information, go to the WebSphere Application Server Information Center at: http://publib.boulder.ibm.com/infocenter/wasinfo/v7r0/index.jsp?topic=/com.ibm.websphere.home.doc/welcome.html.

3.8.1 How to Configure WebSphere to Allow Reuse of Query Result Sets

WebSphere Application Server closes shared database connections between application generated requests. You need to set two properties in WebSphere to allow reuse of result sets.

Use the WebSphere Application Server administrative console to set the non-transactional datasource and DisableMultiThreadedServletConnectionMgmt properties.

To set properties in WebSphere to reuse results sets:

  1. Start WebSphere Application Server administrative console.

  2. Navigate to Data sources > DB2 Universal JDBC Driver XA DataSource > WebSphere Application Server data source properties and set Non-transactional data source to enabled.

  3. Save the configuration.

  4. Navigate to Application servers > server_name > Web Container > Custom Properties and set DisableMultiThreadedServletConnectionMgmt to true.

  5. Save the configuration.

  6. Restart WebSphere Application Server.

Setting these two properties will enable your deployed application to reuse result sets across requests.

PK;lPKZEOEBPS/dcommon/oracle.gifJGIF87aiyDT2F'G;Q_oKTC[ 3-Bq{ttsoGc4I)GvmLZ).1)!ꑈ53=Z]'yuLG*)g^!8C?-6(29K"Ĩ0Яl;U+K9^u2,@@ (\Ȱ Ë $P`lj 8x I$4H *(@͉0dа8tA  DсSP v"TUH PhP"Y1bxDǕ̧_=$I /& .)+ 60D)bB~=0#'& *D+l1MG CL1&+D`.1qVG ( "D2QL,p.;u. |r$p+5qBNl<TzB"\9e0u )@D,¹ 2@C~KU 'L6a9 /;<`P!D#Tal6XTYhn[p]݅ 7}B a&AƮe{EɲƮiEp#G}D#xTIzGFǂEc^q}) Y# (tۮNeGL*@/%UB:&k0{ &SdDnBQ^("@q #` @1B4i@ aNȅ@[\B >e007V[N(vpyFe Gb/&|aHZj@""~ӎ)t ? $ EQ.սJ$C,l]A `8A o B C?8cyA @Nz|`:`~7-G|yQ AqA6OzPbZ`>~#8=./edGA2nrBYR@ W h'j4p'!k 00 MT RNF6̙ m` (7%ꑀ;PKl-OJPKZEOEBPS/dcommon/oracle-logo.jpgmPJFIFC    $.' ",#(7),01444'9=82<.342C  2!!22222222222222222222222222222222222222222222222222'7" }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( (QEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQE!KEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEzE7V%ȣOΏ9??:a"\fSrğjAsKJ:nOzO=}E1-I)3(QEQEQEQEQEQEQE֝Hza<["2"pO#f8M[RL(,?g93QSZ uy"lx4h`O!LŏʨXZvq& c՚]+: ǵ@+J]tQ]~[[eϸ (]6A&>ܫ~+כzmZ^(<57KsHf妬Ϧmnẁ&F!:-`b\/(tF*Bֳ ~V{WxxfCnMvF=;5_,6%S>}cQQjsOO5=)Ot [W9 /{^tyNg#ЄGsֿ1-4ooTZ?K Gc+oyڙoNuh^iSo5{\ܹ3Yos}$.nQ-~n,-zr~-|K4R"8a{]^;I<ȤL5"EԤP7_j>OoK;*U.at*K[fym3ii^#wcC'IIkIp$󿉵|CtĈpW¹l{9>⪦׺*ͯj.LfGߍԁw] |WW18>w.ӯ! VӃ :#1~ +މ=;5c__b@W@ +^]ևՃ7 n&g2I8Lw7uҭ$"&"b eZ":8)D'%{}5{; w]iu;_dLʳ4R-,2H6>½HLKܹR ~foZKZ࿷1[oZ7׫Z7R¢?«'y?A}C_iG5s_~^ J5?œ tp]X/c'r%eܺA|4ծ-Ե+ْe1M38Ǯ `|Kյ OVڅu;"d56, X5kYR<̭CiطXԮ];Oy)OcWj֩}=܅s۸QZ*<~%뺃ȶp f~Bðzb\ݳzW*y{=[ C/Ak oXCkt_s}{'y?AmCjޓ{ WRV7r. g~Q"7&͹+c<=,dJ1V߁=T)TR՜*N4 ^Bڥ%B+=@fE5ka}ędܤFH^i1k\Sgdk> ֤aOM\_\T)8靠㡮3ģR: jj,pk/K!t,=ϯZ6(((((((49 xn_kLk&f9sK`zx{{y8H 8b4>ÇНE|7v(z/]k7IxM}8!ycZRQ pKVr(RPEr?^}'ðh{x+ՀLW154cK@Ng C)rr9+c:׹b Жf*s^ fKS7^} *{zq_@8# pF~ [VPe(nw0MW=3#kȵz晨cy PpG#W:%drMh]3HH<\]ԁ|_W HHҡb}P>k {ZErxMX@8C&qskLۙOnO^sCk7ql2XCw5VG.S~H8=(s1~cV5z %v|U2QF=NoW]ո?<`~׮}=ӬfԵ,=;"~Iy7K#g{ñJ?5$y` zz@-~m7mG宝Gٱ>G&K#]؃y1$$t>wqjstX.b̐{Wej)Dxfc:8)=$y|L`xV8ߙ~E)HkwW$J0uʟk>6Sgp~;4֌W+חc"=|ř9bc5> *rg {~cj1rnI#G|8v4wĿhFb><^ pJLm[Dl1;Vx5IZ:1*p)إ1ZbAK(1ׅ|S&5{^ KG^5r>;X׻K^? s fk^8O/"J)3K]N)iL?5!ƾq:G_=X- i,vi2N3 |03Qas ! 7}kZU781M,->e;@Qz T(GK(ah(((((((Y[×j2F}o־oYYq $+]%$ v^rϭ`nax,ZEuWSܽ,g%~"MrsrY~Ҿ"Fت;8{ѰxYEfP^;WPwqbB:c?zp<7;SBfZ)dϛ; 7s^>}⍱x?Bix^#hf,*P9S{w[]GF?1Z_nG~]kk)9Sc5Ո<<6J-ϛ}xUi>ux#ţc'{ᛲq?Oo?x&mѱ'#^t)ϲbb0 F«kIVmVsv@}kҡ!ˍUTtxO̧]ORb|2yԵk܊{sPIc_?ħ:Ig)=Z~' "\M2VSSMyLsl⺿U~"C7\hz_ Rs$~? TAi<lO*>U}+'f>7_K N s8g1^CeКÿE ;{+Y\ O5|Y{/o+ LVcO;7Zx-Ek&dpzbӱ+TaB0gNy׭ 3^c T\$⫫?F33?t._Q~Nln:U/Ceb1-im WʸQM+VpafR3d׫é|Aү-q*I P7:y&]hX^Fbtpܩ?|Wu󭏤ʫxJ3ߴm"(uqA}j.+?S wV ~ [B&<^U?rϜ_OH\'.;|.%pw/ZZG'1j(#0UT` Wzw}>_*9m>󑓀F?EL3"zpubzΕ$+0܉&3zڶ+jyr1QE ( ( ( ( ( ( ( (UIdC0EZm+]Y6^![ ԯsmܶ捆?+me+ZE29)B[;я*wGxsK7;5w)}gH~.Ɣx?X\ߚ}A@tQ(:ͧ|Iq(CT?v[sKG+*רqҍck <#Ljα5݈`8cXP6T5i.K!xX*p&ќZǓϘ7 *oƽ:wlຈ:Q5yIEA/2*2jAҐe}k%K$N9R2?7ýKMV!{W9\PA+c4w` Wx=Ze\X{}yXI Ү!aOÎ{]Qx)#D@9E:*NJ}b|Z>_k7:d$z >&Vv󃏽WlR:RqJfGإd9Tm(ҝEtO}1O[xxEYt8,3v bFF )ǙrPNE8=O#V*Cc𹾾&l&cmCh<.P{ʦ&ۣY+Gxs~k5$> ӥPquŽўZt~Tl>Q.g> %k#ú:Kn'&{[yWQGqF}AЅ׮/}<;VYZa$wQg!$;_ $NKS}“_{MY|w7G!"\JtRy+贾d|o/;5jz_6fHwk<ѰJ#]kAȎ J =YNu%dxRwwbEQEQEQEQEQEQEQEQEQE'fLQZ(1F)hQ@X1KEQE-Q@ 1KE3h=iPb(((1GjZ(-ʹRPbR@ 1KE7`bڒyS0(-&)P+ ڎԴP11F)h&:LRmQ@Q@Š(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((_ğ<+F; sU%ԑ >,BH(uSU xþ1Wϲs${wgoQn_swB/'L\ܓFgԏZ ^dj^L^NmH Ҁ6(?nƓjh%ةlΣ /F6}pj2E3HgHЌ(UQR8oX,G8OB]>o9@$xWy'ڹOM=ҼWb"٠9-*r⬻zWokeh͝(F@n~X=q+⟇1b>ƑeIX.~C,o5የ-m;D Nʬ` `+CcE??Ki!R!cxw[ jvc}&Eٱ7T)8&þ/?os$wSn^bo:-4^js4JKm!#rv89>' O59t , \8r,Vk|IgxEv((RmĜ+bkz6,u/}-|.'<VÚ~tk,^cH61¢ !;M;Ėz[#CuAƶ+j_&*/;Q8d ǹHyAsM↷7l-6rò,%Fs;A*',}'f[]tݷs~UWhk?:4JE]WpcY=" ƚw/|_xSw(kycH#r28,X7D5Kh76 mɍ~0H;6194WpGӧգ%8Z&GdPƧo6kcO5Kv`{}fyq \`@?Kv=26OޝyAe Qɼ芍H8͟2敮j#;iѻm؏6+wTx;KYY\-%'Aӣ?|=\-ٴk+٬$ɷ[$ISPE*vyPTaĜT`J|IgxEv((RmĜ+~~h ާ2}0F9|g=m5+x1h $)\  sdx^JfbKXYPCaݎ6-mS] mgC&>d, !Ƥ(p窀 V?IgZk:kHꧽsxg7__hÍB97 +9nn_o9Wc/m8ր=Y#t9? /q'#  Y}icמ o-{cŵ%'s s G^mqRwا s@W>w* O2Frk]k1֛4mݬRIp8F`F@kMvN&R +7đTT!z.W~k7KWX ߰E$HS`ʞK QL.dk 9y) F0v^k;{k9wyyv<'+.+^h~Fg"yRM?:3m' 2v{_kٲM[oǙ ~mUp~܎Mz~#ּQ/Cz5(u9KxTFAF$~VxIz~"uR-c6)#$=2H>?}wݻ~}S3Şҵ42+W죝ݑb˝$lmۑ]E-em[WwQ艥>#\H$i8\qQ^'):Ѵ zAT,H e @z`QEQEQEQEQEQEQEQEQEQEQEQEbj??G_h߷nw}s{aE~4?֖0֦bّL cs:FխeZ|i4m$ldnxuzE~ιqnO yQGA9bVqlX?|'}X,Xno-FIZ7 rrעCgqysg ]ZD) /ܣgX'_~ Dž/{/n"I! `θ9M ]i6[<&SnH%~UXvqX]wk&vMDlppAX?Z&}z7kz/̄*pNNHvV~'ypo3g=Eq\~5h^%2e@j;j6?i\ԾIw"rS?'G?~gݷsۭ{R58մ&>\[7m'GMF?kk}:o۾._Tz.|]oʰCH̑.z@gmͤ m|[V9Bbn #qS* %Z4z֩NH+Tg>R; ʝ ^Ey|Uö́$M"0p+5= ;yQ rH ]r+?i|]1M7Ef&7aH)P3g@'ǚ^|O_:LztٛfF0f~GH(;izlleC:,'9d?+0lkx +$`Qg)xBo@]t]x$zs@|&0wvsj'4?icpwg81\ċ3W󶍦Ku)|k3(nsIL_ſk4MAKY"Ra*U XOp9u="?x gK'$%g_%IVcMcŋ{nڕ߄բ*Kv9N ٵ]56N2} WM°xjGԿ-mh@IpѠJ*7@a|9>N[UsK`A'}'u;94@,I$0#1m2c8:i|T~j}3{{I7)rGT}F8d!!ar S,69GKIoQ%ye^ROηJfӏ$fD<* |e4ɓHɉ^L*ܬ88'~0}Kݎr&B8ݜb=K/x:Huƍj5ם"lpr܎=2py`~qcgj%Y!b7n8YbV#=+fxm~+|J8`4I*v$xsQLu?Q<}v)YI"}~b1ٵ]56N2} qT/<3['?kU~P𔈃@ 1Ye>[Tz`3V?/xkw׶ SmJAwBv){ ۃGû=.moL_4=mD2xRW']_t hڄvhO\dP0 V`\ ;>OQ⿴$;8;R d?*p7nxCxwƶ@/lfAyK:`F02v&?wϊ!Mccf@W#]# ]WiD6Jfv#<xkͩxG@בKp-Dgtr oSSukF|wjUKV*Çf pj'zLJMép&ԥ ,R2J˻?<%^O- $> : Enj|e3e7|Kk(V r]֟>ho/bem<]jI$״l!zCm" `A'Qi5' +@g||g y5y5W DwI!)9\9P4k3ڤ焯˫dJa`2l㓾֗sXG-:AX%"\Ao3uf0)>}syma.ho$e&EޛN0]|H^xZ3JOp;sO$_kouy+ dh)рdaAE~j7|| Ld|mf$pphB9C'm7Ezpw`T~'+8nC$`Rp<K B }wVyмqF2B) g 㡭|G\h E\A,pr0r gԢ8- >%/vW* Ϩr t [\k7qp ;|HQ'qԢ=;o]RN@;܉>\0OG\}K๿]U}{cHf:+ľ0<oN"8Uq QRx{Zև{$s gP0Y]?1n)ӃOmgȩ>"|#6״m.'KᤊrwT#,;8 cڿ5}g#ۻ;~ktZޣχ}'˗b"x$r({ xQ/ckH#PY7|qj/aY]-0a HN0͐p,q%>:Ƶz}Zat ۿr=Ft<5 ϠQ$P`884\#w( 'ggwsګSNyog4>\Es ۞3o.Q@l#>ZeX@(_~$?lu|'lrm a9#޷4V\=2;;ч ^^T:rxN{Y\1vEvVޝ ?gONcoϵg^6Nxgb *?yOg0v;sWoPu94_6u/""C8MʣpH<QX$tprIBMqwIDA iSjΧk뚗֛X-ǐH$ր;+ľ0<oN"8Uq QQ8׈u5x/n^l1 |VCPAE~Ok rd + =((o>%5ۋxGG%w#3q3f9C'm7Ezpw`PiEp'+8nC$`Rp^K wwsWşZaFw/$x%3v@y8(K OjQ٤R QPN8c@-u-;B7*UP=z@WůϪ9a-$!I!]KmAۜdg7 ÿf;j[>^o/A?|os6q8` }Z)&;-$ {@6Wi߅~/_ :}d yq;OCj&F w;.ɓ;[3Gp,,? U-͌6c}ӟmgIVZ ftE$FV,XUIJ5]No};dɝO#ڍWDӵhae2gkpFq?5??Am/߻Y}Vux~ &IU3r&&tqWٻ'w>мWf-u2 I$2<b@ A@[ 9>iIiwF2P͡p4M;Ú<No{7yqog۹Xy$j> i']l99nWmCۿG]<}Oڶy߾Ms77OZM;zoKۏ|ύ8ڍ+DӴOg[?nf3srN3 ~ObcR!BGnsjX7è%>n PySn,7xTcM5xݥYž׸`an{W!k%4o|B5}EKR̭5SdSF"T摬}KdD4dġPl :U=W>=ej:XgΑvlB pI'tȴytg-.uV]TZ++$g#_#[̓ϰݹ?yó>\ﶽRx!(T)$r(eu#x 1\SXT(JPw㌎pHMaXіO-<4f#c2x}}qYcWGQkfp"B* 9Gbio&d߷nvswiƝ\|߲K.Aj7I=\V'"V$gvӀ͐}w^\wV~ H Ÿew(r9Yh𒥟WO11:}~tb=PėZp%f@2ƪ8=X _?}ON̵7#OJI|<{'n?zyk+|oZex<f(0` HǰAM3QмYRh_s8/Z?g^kqi+L\̮[,^5žs50Gn<.NOLOdz ŗtHҎ VI2XrvAp*zs'L?eƗcq4~w7=Ö֣:\= <̓z OjwxGoYbMqR h?p OxN^KtF& eb2:px*iyKpw.Ƞt0 h> ۙ%,IVy%~2Ω 7FկcG@m|u#[9$~$u %|SS #XA0oV~~#~ ;g1]ݟ&_y??'91Inlt"!X GW0}bS=/WW_iڝD:78B)+dlxS_"縺u{vdI9w2qrzOAEqN|J Oracle Legal Notices

Oracle Legal Notices

Copyright Notice

Copyright © 1994-2014, Oracle and/or its affiliates. All rights reserved.

Trademark Notice

Oracle and Java are registered trademarks of Oracle and/or its affiliates. Other names may be trademarks of their respective owners.

Intel and Intel Xeon are trademarks or registered trademarks of Intel Corporation. All SPARC trademarks are used under license and are trademarks or registered trademarks of SPARC International, Inc. AMD, Opteron, the AMD logo, and the AMD Opteron logo are trademarks or registered trademarks of Advanced Micro Devices. UNIX is a registered trademark of The Open Group.

License Restrictions Warranty/Consequential Damages Disclaimer

This software and related documentation are provided under a license agreement containing restrictions on use and disclosure and are protected by intellectual property laws. Except as expressly permitted in your license agreement or allowed by law, you may not use, copy, reproduce, translate, broadcast, modify, license, transmit, distribute, exhibit, perform, publish, or display any part, in any form, or by any means. Reverse engineering, disassembly, or decompilation of this software, unless required by law for interoperability, is prohibited.

Warranty Disclaimer

The information contained herein is subject to change without notice and is not warranted to be error-free. If you find any errors, please report them to us in writing.

Restricted Rights Notice

If this is software or related documentation that is delivered to the U.S. Government or anyone licensing it on behalf of the U.S. Government, the following notice is applicable:

U.S. GOVERNMENT END USERS: Oracle programs, including any operating system, integrated software, any programs installed on the hardware, and/or documentation, delivered to U.S. Government end users are "commercial computer software" pursuant to the applicable Federal Acquisition Regulation and agency-specific supplemental regulations. As such, use, duplication, disclosure, modification, and adaptation of the programs, including any operating system, integrated software, any programs installed on the hardware, and/or documentation, shall be subject to license terms and license restrictions applicable to the programs. No other rights are granted to the U.S. Government.

Hazardous Applications Notice

This software or hardware is developed for general use in a variety of information management applications. It is not developed or intended for use in any inherently dangerous applications, including applications that may create a risk of personal injury. If you use this software or hardware in dangerous applications, then you shall be responsible to take all appropriate fail-safe, backup, redundancy, and other measures to ensure its safe use. Oracle Corporation and its affiliates disclaim any liability for any damages caused by use of this software or hardware in dangerous applications.

Third-Party Content, Products, and Services Disclaimer

This software or hardware and documentation may provide access to or information on content, products, and services from third parties. Oracle Corporation and its affiliates are not responsible for and expressly disclaim all warranties of any kind with respect to third-party content, products, and services. Oracle Corporation and its affiliates will not be responsible for any loss, costs, or damages incurred due to your access to or use of third-party content, products, or services.

Alpha and Beta Draft Documentation Notice

If this document is in preproduction status:

This documentation is in preproduction status and is intended for demonstration and preliminary use only. It may not be specific to the hardware on which you are using the software. Oracle Corporation and its affiliates are not responsible for and expressly disclaim all warranties of any kind with respect to this documentation and will not be responsible for any loss, costs, or damages incurred due to the use of this documentation.

Oracle Logo

PK0hPKZEOEBPS/dcommon/blafdoc.cssc@charset "utf-8"; /* Copyright 2002, 2011, Oracle and/or its affiliates. All rights reserved. Author: Robert Crews Version: 2011.8.12 */ body { font-family: Tahoma, sans-serif; /* line-height: 125%; */ color: black; background-color: white; font-size: small; } * html body { /* http://www.info.com.ph/~etan/w3pantheon/style/modifiedsbmh.html */ font-size: x-small; /* for IE5.x/win */ f\ont-size: small; /* for other IE versions */ } h1 { font-size: 165%; font-weight: bold; border-bottom: 1px solid #ddd; width: 100%; text-align: left; } h2 { font-size: 152%; font-weight: bold; text-align: left; } h3 { font-size: 139%; font-weight: bold; text-align: left; } h4 { font-size: 126%; font-weight: bold; text-align: left; } h5 { font-size: 113%; font-weight: bold; display: inline; text-align: left; } h6 { font-size: 100%; font-weight: bold; font-style: italic; display: inline; text-align: left; } a:link { color: #039; background: inherit; } a:visited { color: #72007C; background: inherit; } a:hover { text-decoration: underline; } a img, img[usemap] { border-style: none; } code, pre, samp, tt { font-family: monospace; font-size: 110%; } caption { text-align: center; font-weight: bold; width: auto; } dt { font-weight: bold; } table { font-size: small; /* for ICEBrowser */ } td { vertical-align: top; } th { font-weight: bold; text-align: left; vertical-align: bottom; } li { text-align: left; } dd { text-align: left; } ol ol { list-style-type: lower-alpha; } ol ol ol { list-style-type: lower-roman; } td p:first-child, td pre:first-child { margin-top: 0px; margin-bottom: 0px; } table.table-border { border-collapse: collapse; border-top: 1px solid #ccc; border-left: 1px solid #ccc; } table.table-border th { padding: 0.5ex 0.25em; color: black; background-color: #f7f7ea; border-right: 1px solid #ccc; border-bottom: 1px solid #ccc; } table.table-border td { padding: 0.5ex 0.25em; border-right: 1px solid #ccc; border-bottom: 1px solid #ccc; } span.gui-object, span.gui-object-action { font-weight: bold; } span.gui-object-title { } p.horizontal-rule { width: 100%; border: solid #cc9; border-width: 0px 0px 1px 0px; margin-bottom: 4ex; } div.zz-skip-header { display: none; } td.zz-nav-header-cell { text-align: left; font-size: 95%; width: 99%; color: black; background: inherit; font-weight: normal; vertical-align: top; margin-top: 0ex; padding-top: 0ex; } a.zz-nav-header-link { font-size: 95%; } td.zz-nav-button-cell { white-space: nowrap; text-align: center; width: 1%; vertical-align: top; padding-left: 4px; padding-right: 4px; margin-top: 0ex; padding-top: 0ex; } a.zz-nav-button-link { font-size: 90%; } div.zz-nav-footer-menu { width: 100%; text-align: center; margin-top: 2ex; margin-bottom: 4ex; } p.zz-legal-notice, a.zz-legal-notice-link { font-size: 85%; /* display: none; */ /* Uncomment to hide legal notice */ } /*************************************/ /* Begin DARB Formats */ /*************************************/ .bold, .codeinlinebold, .syntaxinlinebold, .term, .glossterm, .seghead, .glossaryterm, .keyword, .msg, .msgexplankw, .msgactionkw, .notep1, .xreftitlebold { font-weight: bold; } .italic, .codeinlineitalic, .syntaxinlineitalic, .variable, .xreftitleitalic { font-style: italic; } .bolditalic, .codeinlineboldital, .syntaxinlineboldital, .titleinfigure, .titleinexample, .titleintable, .titleinequation, .xreftitleboldital { font-weight: bold; font-style: italic; } .itemizedlisttitle, .orderedlisttitle, .segmentedlisttitle, .variablelisttitle { font-weight: bold; } .bridgehead, .titleinrefsubsect3 { font-weight: bold; } .titleinrefsubsect { font-size: 126%; font-weight: bold; } .titleinrefsubsect2 { font-size: 113%; font-weight: bold; } .subhead1 { display: block; font-size: 139%; font-weight: bold; } .subhead2 { display: block; font-weight: bold; } .subhead3 { font-weight: bold; } .underline { text-decoration: underline; } .superscript { vertical-align: super; } .subscript { vertical-align: sub; } .listofeft { border: none; } .betadraft, .alphabetanotice, .revenuerecognitionnotice { color: #f00; background: inherit; } .betadraftsubtitle { text-align: center; font-weight: bold; color: #f00; background: inherit; } .comment { color: #080; background: inherit; font-weight: bold; } .copyrightlogo { text-align: center; font-size: 85%; } .tocsubheader { list-style-type: none; } table.icons td { padding-left: 6px; padding-right: 6px; } .l1ix dd, dd dl.l2ix, dd dl.l3ix { margin-top: 0ex; margin-bottom: 0ex; } div.infoboxnote, div.infoboxnotewarn, div.infoboxnotealso { margin-top: 4ex; margin-right: 10%; margin-left: 10%; margin-bottom: 4ex; padding: 0.25em; border-top: 1pt solid gray; border-bottom: 1pt solid gray; } p.notep1 { margin-top: 0px; margin-bottom: 0px; } .tahiti-highlight-example { background: #ff9; text-decoration: inherit; } .tahiti-highlight-search { background: #9cf; text-decoration: inherit; } .tahiti-sidebar-heading { font-size: 110%; margin-bottom: 0px; padding-bottom: 0px; } /*************************************/ /* End DARB Formats */ /*************************************/ @media all { /* * * { line-height: 120%; } */ dd { margin-bottom: 2ex; } dl:first-child { margin-top: 2ex; } } @media print { body { font-size: 11pt; padding: 0px !important; } a:link, a:visited { color: black; background: inherit; } code, pre, samp, tt { font-size: 10pt; } #nav, #search_this_book, #comment_form, #comment_announcement, #flipNav, .noprint { display: none !important; } body#left-nav-present { overflow: visible !important; } } PKr.hcPKZEOEBPS/dcommon/doccd_epub.jsM /* Copyright 2006, 2012, Oracle and/or its affiliates. All rights reserved. Author: Robert Crews Version: 2012.3.17 */ function addLoadEvent(func) { var oldOnload = window.onload; if (typeof(window.onload) != "function") window.onload = func; else window.onload = function() { oldOnload(); func(); } } function compactLists() { var lists = []; var ul = document.getElementsByTagName("ul"); for (var i = 0; i < ul.length; i++) lists.push(ul[i]); var ol = document.getElementsByTagName("ol"); for (var i = 0; i < ol.length; i++) lists.push(ol[i]); for (var i = 0; i < lists.length; i++) { var collapsible = true, c = []; var li = lists[i].getElementsByTagName("li"); for (var j = 0; j < li.length; j++) { var p = li[j].getElementsByTagName("p"); if (p.length > 1) collapsible = false; for (var k = 0; k < p.length; k++) { if ( getTextContent(p[k]).split(" ").length > 12 ) collapsible = false; c.push(p[k]); } } if (collapsible) { for (var j = 0; j < c.length; j++) { c[j].style.margin = "0"; } } } function getTextContent(e) { if (e.textContent) return e.textContent; if (e.innerText) return e.innerText; } } addLoadEvent(compactLists); function processIndex() { try { if (!/\/index.htm(?:|#.*)$/.test(window.location.href)) return false; } catch(e) {} var shortcut = []; lastPrefix = ""; var dd = document.getElementsByTagName("dd"); for (var i = 0; i < dd.length; i++) { if (dd[i].className != 'l1ix') continue; var prefix = getTextContent(dd[i]).substring(0, 2).toUpperCase(); if (!prefix.match(/^([A-Z0-9]{2})/)) continue; if (prefix == lastPrefix) continue; dd[i].id = prefix; var s = document.createElement("a"); s.href = "#" + prefix; s.appendChild(document.createTextNode(prefix)); shortcut.push(s); lastPrefix = prefix; } var h2 = document.getElementsByTagName("h2"); for (var i = 0; i < h2.length; i++) { var nav = document.createElement("div"); nav.style.position = "relative"; nav.style.top = "-1.5ex"; nav.style.left = "1.5em"; nav.style.width = "90%"; while (shortcut[0] && shortcut[0].toString().charAt(shortcut[0].toString().length - 2) == getTextContent(h2[i])) { nav.appendChild(shortcut.shift()); nav.appendChild(document.createTextNode("\u00A0 ")); } h2[i].parentNode.insertBefore(nav, h2[i].nextSibling); } function getTextContent(e) { if (e.textContent) return e.textContent; if (e.innerText) return e.innerText; } } addLoadEvent(processIndex); PKo"nR M PKZEOEBPS/whatsnew_adfag.htm+ What's New in This Guide in Release 11.1.2.3.0

What's New in This Guide in Release 11.1.2.3.0

For Release 11.1.2.3.0, this guide has been updated in several ways. The following table lists the sections that have been added or changed.

For changes made to Oracle JDeveloper and Oracle Application Development Framework (Oracle ADF) for this release, see the What's New page on the Oracle Technology Network at http://www.oracle.com/technetwork/developer-tools/jdev/documentation/index.html.

SectionsChange Description

Chapter 4, "WLST Command Reference for ADF Applications"


Section 4.2.6, "exportJarVersions"


Added new command.for exporting JARs versions information to a CSV file.

Section 4.2.7, "exportApplicationJarVersions"


Added new command.for exporting runtime JARs versions information for an application to a CSV file.

Section 4.2.8, "exportApplicationSelectedJarVersions"


Added new command.for exporting selected JARs versions information (using the versions.xml file) to a CSV file.

Appendix C, "Configuring GlassFish Server"


Appendix C, "Configuring GlassFish Server"


Added new appendix with instructions to configure GlassFish Server to run ADF applications.


PK%0+PKZEOEBPS/ap_glassfish.htm6p Configuring GlassFish Server

C Configuring GlassFish Server

This appendix describes how to configure GlassFish Server for Oracle ADF Essentials. It describes how to obtain the Oracle ADF Runtime and how to install these files into the GlassFish Server.

This appendix contains the following sections:

C.1 About Configuring GlassFish

GlassFish Server is an application server that can be configured to run Oracle ADF applications. If you do not have a GlassFish Server installation, you can download GlassFish Server from the GlassFish website. Before you can run ADF applications in a GlassFish Server, you need to configure GlassFish with the Oracle ADF Runtime libraries.

For a list of the supported Oracle ADF features for GlassFish, go to the OTN site at http://content.oracle.com/technetwork/developer-tools/adf/overview/adf-essentials-1719844.html

For instructions on obtaining and installing GlassFish, see http://glassfish.java.net/downloads/3.1.2-final.html

For information about developing ADF applications for GlassFish, see the "Deploying ADF Applications to GlassFish" appendix in the Oracle Fusion Middleware Fusion Developer's Guide for Oracle Application Development Framework.

C.2 Obtaining GlassFish Server and Oracle ADF Runtime

Oracle ADF Essentials supports the Open Source and commercial versions of GlassFish Server. With either version, you will need the Full Platform distribution. The Web Profile distribution is not supported. After you have installed the GlassFish Server, you need to obtain the ADF Essentials adf-essentials.zip file from OTN and follow the instructions in this appendix to install the ADF Runtime libraries.

For information on how to start and stop the server and other application server tasks, see GlassFish documentation at the GlassFish website.

C.2.1 How to Obtain GlassFish Server

You can download the open source version of the GlassFish Server from the GlassFish website:

http://glassfish.java.net/downloads/3.1.2-final.html

Follow the instructions and documentation at the site to install and configure a GlassFish Server.

C.2.2 How to Obtain Oracle ADF Runtime

In order for a GlassFish Server to run Oracle ADF applications, you must install the ADF Runtime library files into the GlassFish installation directory.

You can download the Oracle ADF Essentials adf-essentials.zip file from the Oracle Technology Network at http://www.oracle.com/go/?&Src=7578263&Act=4&pcode=WWMK12022244MPP044.

After you have downloaded the adf-essentials.zip file, you can extract the files to a temporary directory which you can use to copy the required files into the GlassFish installation directories.

C.3 Configuring GlassFish with ADF Runtime Libraries

The ADF Runtime libraries consists of the following:

  • ADF Share libraries

  • ADF Model libraries

  • ADF Controller libraries

  • ADF View libraries

The ADF Share libraries must be manually installed into the GlassFish installation. You use your operating system command or tools to copy the files. For instructions, see Section C.3.1, "How to Install ADF Share Libraries Manually."

The ADF Model, ADF Controller, and ADF View libraries are loaded into GlassFish with the deployed application and will be included automatically by JDeveloper.

The steps for installing the ADF Runtime libraries are:

  1. Configure ADF Share libraries.

    • Copy the ADF Share libraries from adf-essentials.zip into the GlassFish installation.

  2. Deploy the application as an EAR file.

C.3.1 How to Install ADF Share Libraries Manually

Before you begin:

It may be helpful to have an understanding of the options that are available to you when you are mapping ADF Share for GlassFish. For more information, see Section C.3, "Configuring GlassFish with ADF Runtime Libraries."

You will need to complete these tasks:

  • Install the GlassFish Server

  • Obtain the adf-community.zip file and unzip it to a temporary directory

To install the ADF Share Runtime libraries:

  1. Copy or move the ADF Share library files from the temporary directory to the <glassfish>/domains/domain1/lib folder:

    The ADF Share files should be in the temporary directory where you had unzip the adf-essentials.zip file as described in Section C.2.2, "How to Obtain Oracle ADF Runtime." Typically, this directory is <temp>/oracle_common/modules.

    oracle.adf.share.ca_11.1.1/adf-share-base.jar
    oracle.adf.share.ca_11.1.1/adf-share-ca.jar
    oracle.adf.share_11.1.1/commons-el.jar
    oracle.adf.share_11.1.1/adf-share-support.jar
    oracle.adf.share_11.1.1/adfsharembean.jar
    oracle.adf.share_11.1.1/jsp-el-api.jar
    oracle.adf.share_11.1.1/adflogginghandler.jar
    oracle.adf.share_11.1.1/oracle-el.jar
    oracle.mds_11.1.1/mdsrt.jar
    oracle.bali.share_11.1.1/share.jar
    oracle.xmlef_11.1.1/xmlef.jar
    oracle.javatools_11.1.1/resourcebundle.jar
    oracle.javatools_11.1.1/javamodel-rt.jar
    oracle.javatools_11.1.1/javatools-nodeps.jar
    oracle.adf.security_11.1.1/adf-share-security.jar
    oracle.adf.security_11.1.1/adf-controller-security.jar
    oracle.xdk_11.1.0/xmlparserv2_sans_jaxp_services.jar
    oracle.xdb_11.1.0.jar
    oracle.jrf_11.1.1/jrf-api.jar
    oracle.jdbc_11.1.1/ojdbc6dms.jar
    oracle.dms_11.1.1/dms.jar
    oracle.odl_11.1.1/ojdl.jar
    oracle.odl_11.1.1/ojdl2.jar
    oracle.jmx_11.1.1/jmxframework.jar
    oracle.jmx_11.1.1/jmxspi.jar
    oracle.classloader_11.1.1.jar
    oracle.logging-utils_11.1.1.jar
    oracle.web-common_11.1.1.jar
    oracle.webservices_11.1.1/oc4j-ws-support.jar
    org.apache.bcel_5.1.jar
    oracle.nlsrtl_11.2.0/orai18n-mapping.jar
    
  2. Verify all the libraries have been copied.

C.4 Additional Configuration Tasks

After you have installed the ADF Runtime into the GlassFish Server, you need to perform additional configuration tasks on GlassFish.

The configuration tasks are:

C.4.1 GlassFish Administration Console

You can use the GlassFish Administration Console to configure the GlassFish Server including managing applications, JDBC pools, and other resources.

The GlassFish Administration Console is at:

http://<machine_name>:4848/

C.4.2 How to Create a Datasource for GlassFish

Before you begin:

It may be helpful to have an understanding of the options that are available to you when you are creating a datasource for GlassFish. For more information, see Section C.2, "Obtaining GlassFish Server and Oracle ADF Runtime."

You can use the GlassFish Administration Console or asadmin commands to create the datasource. For more information, see GlassFish documentation.

To create a datasource for GlassFish using asadmin command:

  1. Open a command line window.

  2. Invoke the asadmin command to create a datasource for GlassFish.

    For instance, the following command creates a datasource for an application:

    asadmin> create-jdbc-connection-pool --datasourceclassname
      oracle.jdbc.pool.SampleDataSource
      --restype javax.sql.XADataSource
      --property user=xyz
      :password=xyz:url=jdbc:oracle:thin:@machine.com:1521:machine
      --target=server SampleDSPool
     
    asadmin> ping-connection-pool SampleDSPool
     
    asadmin> create-jdbc-resource --connectionpoolid SampleDSPool jdbc/OracleDS
    

C.4.3 How to Configure the JVM Cache

You need to configure the JVM settings to simple and increase the memory size from 192 Mb to 512 Mb.

Before you begin:

It may be helpful to have an understanding of the options that are available to you when you are configuring JVM for GlassFish. For more information, see Section C.4, "Additional Configuration Tasks."

To configure JVM Cache for MDS:

  1. Start the GlassFish Administration Console.

  2. Choose Configurations > server-config > JVM Settings.

  3. Select JVM Options and specify -Doracle.mds.cache=simple and XX:MaxPermSize=512m.

  4. Click Save.

  5. Or, open the <glassfish>/domains/domain1/config/domain.xml file and edit the following entries:

    <jvm-options>-XX:MaxPermSize=512m</jvm-options>
    <jvm-options>-Doracle.mds.cache=simple</jvm-options>
    

C.5 Deploying an ADF Application to GlassFish

After you have referenced the libraries in the application, you can proceed to deploy the application to GlassFish Server. For more information, see the "Deploying ADF Applications to GlassFish" appendix in the Oracle Fusion Middleware Fusion Developer's Guide for Oracle Application Development Framework.

PKP8J66PKZEOEBPS/ap_wsadmin.htmfc wsadmin Command Reference for ADF Applications

B wsadmin Command Reference for ADF Applications

This chapter describes the wsadmin commands you can use to deploy, manage, and configure Oracle ADF applications. wsadmin commands are intended to be used with the IBM WebSphere Application Server.

This chapter includes the following sections:

B.1 Overview of Custom wsadmin Commands for Oracle ADF

Use the ADF-based URL Connections wsadmin commands to navigate the hierarchy of configuration or runtime beans and control the prompt display. Use the getADFMArchiveConfig commands to manage the ADFMArchiveConfig object.

Each command must be qualified by the module name. For example, if the module is URLConnection.py, then the command can be invoked like this: URLConnection.createFileUrlConnection. An example for the module ADFAdmin.py would be ADFAdmin.getADFArchiveConfig.

B.2 ADF-Specific WebSphere Commands

Use the commands in Table B-1 to manage ADF applications.

Table B-1 Browse Commands for wsadmin Configuration

Use this command...To...Use with wsadmin...

createFileUrlConnection

Create a new ADF file connection.

Online or Offline

createHttpUrlConnection

Create a new ADF URL connection.

Online or Offline

setURLConnectionAttributes

Set or edit the attributes of a newly created or existing ADF connection.

Online or Offline

listUrlConnection

List a new URL connection.

Online or Offline

getADFMArchiveConfig

Returns a handle to the ADFMArchiveConfig object for the specified archive.

Online or Offline


B.2.1 createFileUrlConnection

Use with wsadmin: Online or Offline.

B.2.1.1 Description

Use this command to creates a new connection based on the oracle.adf.model.connection.url.FileURLConnection connection class.

B.2.1.2 Syntax

URLConnection.createFileURLConnection(appName, name, URL)
ArgumentDefinition
appName

Application name for which the connection will be created.

name

The name of the new connection.

URL

The URL associated with this connection.


B.2.1.3 Example

URLConnection.createFileURLConnection('myapp','tempDir','/scratch/tmp')

B.2.2 createHttpUrlConnection

Use with wsadmin: Online or Offline.

B.2.2.1 Description

Use this command to create a new connection based on the oracle.adf.model.connection.url.HttpURLConnection connection type class.

B.2.2.2 Syntax

URLConnection.createHttpURLConnection (appName, name, [URL], [authenticationType], [realm], [user], [password])
ArgumentDefinition
appName

Application name for which the connection will be created.

name

The name of the new connection.

url

(Optional) The URL associated with this connection.

authenticationType

(Optional) The default is basic.

realm

(Optional) If this connection deals with authentication, then this should be set. The default is basic.

user

(Optional)

password

(Optional)


B.2.2.3 Example

URLConnection.createHttpURLConnection('myapp','cnn','http://www.cnn.com') 

B.2.3 setURLConnectionAttributes

Use with wsadmin: Online or Offline.

B.2.3.1 Description

Use this command to set or edit the attributes of a newly created or existing ADF connection.

B.2.3.2 Syntax

URLConnection.setURLConnectionAttributes(appname, connectionname, attributes)
ArgumentDefinition
appname

Application name.

connectionname

The name of the connection.

attributes

The array containing attributes to set in key/value pairs.


B.2.3.3 Example

URLConnection.setURLConnectionAttributes ('myapp','cnn','ChallengeAuthenticationType:digest',
'AuthenticationRealm:XMLRealm'

B.2.4 listUrlConnection

Use with wsadmin: Online or Offline.

B.2.4.1 Description

Use this command to list the connections of the application.

B.2.4.2 Syntax

URLConnection.listURLConnection(appname)
ArgumentDefinition
appname

Application name.


B.2.4.3 Example

URLConnection.listURLConnection ('myapp')

B.2.5 getADFMArchiveConfig

Use with wsadmin: Online or Offline.

B.2.5.1 Description

Returns a handle to the ADFMArchiveConfig object for the specified archive. The returned ADFMArchiveConfig object's methods can be used to change application configuration in an archive.

The ADFMArchiveConfig object provides the following methods:

  • setDatabaseJboSQLBuilder([value]) - Sets the Database jbo.SQLBuilder attribute.

  • getDatabaseJboSQLBuilder() - Returns the current value of the jbo.SQLBuilder attribute.

  • setDatabaseJboSQLBuilderClass([value]) - Sets the Database jbo.SQLBuilderClass attribute.

  • getDatabaseJboSQLBuilderClass() - Returns the current value of the jbo.SQLBuilderClass attribute.

  • setDefaultRowLimit([value])- Sets the defaults rowLimit attribute. Value is a long specifying the row limit (Default -1).

  • getDefaultRowLimit() - Returns the current value of the rowLimit attribute.

  • save([toLocation]) - If you specify the toLocation, then the changes will be stored in the target archive file and the original file will remain unchanged. Otherwise, the changes will be saved in the original file itself.

B.2.5.2 Syntax

archiveConfigObject = ADFMAdmin.getADFMArchiveConfig(fromLocation)
ArgumentDefinition
fromLocation 

The name of the ear file, including its complete path.


The syntax for setDatabaseJboSQLBuilder([value]) is:

archiveConfigObject.setDatabaseJboSQLBuilder([value])
ArgumentDefinition
value 

The value of the jbo.SQLBuilder attribute. Valid values are: 'Oracle' (Default), 'OLite', 'DB2', 'SQL92', 'SQLServer', or 'Custom. If 'Custom' is specified, then the jbo.SQLBuilderClass attribute should also be set.


The syntax for getDatabaseJboSQLBuilder() is:

archiveConfigObject.getDatabaseJboSQLBuilder()

The syntax for setDatabaseJboSQLBuilderClass([value]) is:

archiveConfigObject.setDatabaseJboSQLBuilderClass([value])
ArgumentDefinition
value 

The value of the jbo.SQLBuilderClass attribute.


The syntax for getDatabaseJboSQLBuilderClass() is:

archiveConfigObject.getDatabaseJboSQLBuilderClass()

The syntax for save([toLocation]) is:

archiveConfigObject.save([toLocation])
ArgumentDefinition
toLocation 

The file name along with the absolute path to store the changes.


B.2.5.3 Example

In the following example, if the adf-config.xml file in the archive does not have the application and shared metadata repositories defined, then you should provide the complete connection information.

# Open something.ear and return an object which can be used
# manipulate it
archive = ADFMAdmin.getADFMArchiveConfig('/path/to/something.ear')
 
# Return current JBO SQL Builder value
archive.getDatabaseJboSQLBuilder()
 
# Change JBO SQL Builder value to Oracle
archive.setDatabaseJboSQLBuilder('Oracle')
 
# Save the changes back to the original file
archive.save() 

archive = ADFMAdmin.getADFMArchiveConfig('/path/to/something.ear')
archive.getDatabaseJboSQLBuilder() 

In the following example. the jbo.SQLBuilder attribute is set to 'DB2'.

wsadmin> archive =
               ADFMAdmin.getADFMArchiveConfig(fromLocation='/tmp/testArchive.ear')
wsadmin> archive.setDatabaseJboSQLBuilder(value='DB2') 
wsadmin> archive.save() 

In the following example, the jbo.SQLBuilder attribute is removed so that application default is used.

wsadmin> archive =
              ADFMAdmin.getADFMArchiveConfig(fromLocation='/tmp/testArchive.ear')
wsadmin> archive.setDatabaseJboSQLBuilder()
wsadmin> archive.save(toLocation='/tmp/targetArchive.ear')

In the following example, the jbo.SQLBuilder attribute is set to 'Custom', and the jbo.SQLBuilderClass attribute is set to the class 'com.example.CustomBuilder'.

wsadmin> archive =
              ADFMAdmin.getADFMArchiveConfig(fromLocation='/tmp/testArchive.ear')
wsadmin> archive.setDatabaseJboSQLBuilder('Custom') 
wsadmin> archive.setDatabaseJboSQLBuilderClass('com.example.CustomBuilder') 
wsadmin> archive.save(toLocation='/tmp/targetArchive.ear')

In the following example, the rowLimit attribute is set to 100.

wsadmin:/offline> archive = getADFMArchiveConfig(fromLocation='/tmp/testArchive.ear')
wsadmin:/offline> archive.setDefaultRowLimit(100)
wsadmin:/offline> archive.save(toLocation='/tmp/targetArchive.ear')
PKffPKZE OEBPS/toc.ncx [ Oracle® Fusion Middleware Administrator's Guide for Oracle Application Development Framework, 11g Release 2 (11.1.2.3.0) Cover Title and Copyright Information Contents Preface What's New in This Guide in Release 11.1.2.3.0 Part I Understanding Oracle ADF 1 Introduction to Oracle ADF Administration Part II Administering ADF Applications 2 Deploying ADF Applications 3 Monitoring and Configuring ADF Applications 4 WLST Command Reference for ADF Applications Part III Appendices A ADF Runtime Libraries B wsadmin Command Reference for ADF Applications C Configuring GlassFish Server Copyright PK PKZEOEBPS/content.opfH Oracle® Fusion Middleware Administrator's Guide for Oracle Application Development Framework, 11g Release 2 (11.1.2.3.0) en-US E16179-04 Oracle Corporation Oracle Corporation Oracle® Fusion Middleware Administrator's Guide for Oracle Application Development Framework, 11g Release 2 (11.1.2.3.0) 2012-08-30T15:30:46Z Describes how to administer Oracle Application Development Framework (Oracle ADF) applications using commands, scripts, and Fusion Middleware Control and how to prepare the application server for deployment. PKFbPKZEOEBPS/partpage1.htm Understanding Oracle ADF

Part I

Understanding Oracle ADF

Part I contains the following chapters:

PK"$PKZEOEBPS/deploy.htm Deploying ADF Applications

2 Deploying ADF Applications

This chapter describes how to deploy Oracle ADF applications packaged as an EAR file to a target application server. It also describes how to use scripts and Ant to automate the deployment process. This chapter focuses on deploying ADF applications for production and later stage testing. For information about deploying ADF applications for development, see the Oracle Fusion Middleware Fusion Developer's Guide for Oracle Application Development Framework.

For deploying to third-party application servers, such as IBM WebSphere Application Server, see the Oracle Fusion Middleware Third-Party Application Server Guide.

This chapter includes the following sections:

2.1 Introduction to Deploying ADF Applications

Deployment is the process of packaging application files and artifacts and transferring them to a target application server to be run. During application development using JDeveloper, developers can test the application using the Integrated WebLogic Server that is built into the JDeveloper installation, or they can use JDeveloper to directly deploy to a standalone application server.

After the application has been developed, administrators can deploy the application to production application servers. The tools that the administrators use for production-level deployment are:

  • Oracle Enterprise Manager Fusion Middleware Control

  • WebLogic Scripting Tool (WLST) commands or WebSphere Application Server (wsadmin) commands

  • Command scripts and Ant scripts

  • Oracle WebLogic Administration Console or WebSphere Administrative Console

This chapter describes the tools and methods that administrators use to deploy ADF applications. For information about deploying ADF applications for development and testing purposes using JDeveloper, see the Oracle Fusion Middleware Fusion Developer's Guide for Oracle Application Development Framework.

If your application uses customization, you may need to set up the MDS repository in the application server. For more information about MDS, see the Oracle Fusion Middleware Administrator's Guide.


Note:

Developers, Test, and QA personnel may also use these tools and the methods in this chapter to deploy ADF applications to staging application servers.


2.2 Preparing the Standalone Application Server for Deployment

To run ADF applications, you must install the standalone application server with the ADF runtime. You can include the ADF runtime during a new application server installation or you can install the ADF runtime into an existing application server installation.

Figure 2-1 shows the flow diagram for preparing a standalone application server for deployment. Note the following definitions used in the diagram:

  • OWSM: Oracle Web Services Manager

  • JRF: Java Required Files

  • RCU: Repository Creation Utility

  • MDS: Metadata Store

The following diagram contains clickable links.

Figure 2-1 Preparing the Application Server Flow Diagram

Preparing the Application Server Flow Diagram Install ADF runtime for WebLogic ServerInstall ADF runtime for WebSphere Application ServerInstall patches and software updates for WebSphere Application ServerCreate a global JDBC SourceCreate WebLogic Server domainCreate WebLogic Server domain

For WebLogic Server, the following points apply:

  • After WebLogic Server has the ADF runtime installed, you can create a new WebLogic Server domain or you can extend an existing WebLogic Server domain for Oracle ADF.

  • If the Managed Servers are on a different host than the Administration Server, you must perform additional configuration tasks for the Managed Servers to enable them to host ADF applications.

  • An ADF application will use either a JDBC data source or a JDBC URL to access its data. You can configure WebLogic Server with the data source using the Oracle WebLogic Server Administration Console.

For WebSphere Application Server, the following points apply:

  • After WebSphere Application Server has the ADF runtime installed, you can create a new WebSphere cell or you can extend an existing WebSphere cell for ADF.

  • If the servers are on a different node than the Deployment Manager, you must perform additional configuration tasks for the servers to enable them to host ADF applications.

  • An ADF application will use either a JDBC data source or a JDBC URL to access its data. You can configure WebSphere Application Server with the data source using the WebSphere Administrative Console.

2.2.1 How to Install the ADF Runtime to the Application Server Installation

The application server requires the ADF runtime to run ADF applications.

Installing the ADF runtime is not required if you are using JDeveloper to run applications in Integrated WebLogic Server.

For WebLogic Server, you can install the ADF runtime using the following installers:

  • Oracle Fusion Middleware 11g Application Developer Installer: Installs the ADF runtime and Oracle Enterprise Manager. You should use the Oracle Fusion Middleware 11g Application Developer Installer if you want to use Oracle Enterprise Manager to manage standalone ADF applications (without Oracle SOA Suite or Oracle WebCenter components). You must have already installed Oracle WebLogic Server before you can use this installer.


    Note:

    The Oracle 11g Installer for JDeveloper can also be used to install the ADF runtime to the application server installation. However, it does not include all the components that are typically needed for production and full test environments. Therefore, this installer should not be used for anything other than for development purposes.


For WebSphere Application Server, you can install the ADF runtime using the following installer:

  • Oracle Fusion Middleware 11g Application Developer Installer: Installs the ADF runtime and Oracle Enterprise Manager. You must have already installed WebSphere Application Server before you can use this installer. For more information, see the Oracle Fusion Middleware Third-Party Application Server Guide.

2.2.1.1 Installing the ADF Runtime into an Existing WebLogic Server Installation Using the Oracle Fusion Middleware Application Developer Installer

You can use the Oracle Fusion Middleware 11g Application Developer Installer to install the ADF runtime and Enterprise Manager.

Install Oracle WebLogic Server. You must also have obtained the Oracle Fusion Middleware 11g Application Developer Installer.

Use the instructions in the Oracle Fusion Middleware Installation Planning Guide to obtain the software, start the installer, and to complete the installation.

In the installer you will perform several tasks including:

  • Adding any software updates

  • Selecting the WebLogic Server directory for installation

  • Verifying installation information

After you have installed the ADF runtime, follow the instructions in Section 2.2.2, "How to Create and Extend Oracle WebLogic Server Domains," to use the Oracle Fusion Middleware Configuration Wizard to create or extend the Oracle WebLogic Server domain.

2.2.1.2 Installing the ADF Runtime into an Existing WebSphere Application Server Installation Using the Oracle Fusion Middleware Application Developer Installer

You can use the Oracle Fusion Middleware 11g Application Developer Installer to install the ADF runtime and Enterprise Manager.

Before you begin, you must already have a WebSphere Application Server installation.

Use the instructions in the Oracle Fusion Middleware Installation Planning Guide to obtain the software and to start the installer.

In the installer you will perform several tasks including:

  • Adding any software updates

  • Selecting the WebSphere directory for installation

  • Verifying installation information

After you have installed the ADF runtime, configure the cells and perform other tasks as described in the Oracle Fusion Middleware Third-Party Application Server Guide and the Oracle Fusion Middleware Configuration Guide for WebSphere.

2.2.2 How to Create and Extend Oracle WebLogic Server Domains

You need to create and configure the Oracle WebLogic Server domain to accept ADF applications. If you do not already have a domain, you need to create one. If you already have a domain, you must extend the domain before it can run ADF applications.

If you are using Managed Servers to run your applications, you may need to configure your Managed Server. For more information about configuring a Managed Server on Oracle WebLogic Server, see Oracle Fusion Middleware Creating Domains Using the Configuration Wizard.

If you are setting up Managed Servers for ADF where the Managed Servers are on the same host as the Administration Server, follow the instructions described in this section.

If you are setting up to deploy to Managed Servers that are on a different host than the Administration Server, perform the additional steps described in Section 2.2.2.3, "Setting Up Remote WebLogic Managed Servers for Oracle ADF."

2.2.2.1 Creating an Oracle WebLogic Server Domain for Oracle ADF

You must create an Oracle WebLogic Server domain if it does not already exist.

To create a new Oracle WebLogic Server domain:

  1. Start the Oracle Fusion Middleware Configuration wizard as described in the "Configuring Application Developer" chapter of the Oracle Fusion Installation Guide for Application Developer.

    Follow the directions as described in that guide but consider the following steps.

  2. In the Welcome page, select Create a New WebLogic Domain and click Next.

  3. In the Select Domain Source page, select Generate a domain configured automatically to support the following products.

    The option Basic WebLogic Server Domain (Required) is already selected.

    Select Oracle JRF. If you are using Oracle Web Services, select Oracle WSM Policy Manager and click Next.

2.2.2.2 Extending the Oracle WebLogic Server Domain for Oracle ADF

Before you begin:

You must already have an existing Oracle WebLogic Server domain with the ADF runtime installed.

To extend an Oracle WebLogic Server domain for ADF:

  1. Start the Oracle Fusion Middleware Configuration wizard as described in the "Configuring Application Developer" chapter of the Oracle Fusion Installation Guide for Application Developer.

    Follow the directions as described in that guide but consider the following steps.

  2. In the Welcome page, select Extend an existing WebLogic domain and click Next.

  3. In the Select a WebLogic Domain Directory page, select the location of the domain you want to configure for Oracle ADF, and click Next.

  4. In the Select Extension Source page, select Extend my domain automatically to support the following added products.

    The option Basic WebLogic Server Domain (Required) is already selected.

    Select Oracle JRF. If you are using Oracle Web Services, select Oracle WSM Policy Manager and click Next.

This configures the rest of the runtime .jar files using the manifest file.


Note:

Your application's EAR file must have a weblogic-application.xml file containing a reference to the adf.oracle.domain shared library.


You can now start Oracle WebLogic Server by running the command-line script ORACLE_HOME\user_projects\domains\domain_name\bin\startWebLogic.cmd, and you can stop the server using the stopWebLogic.cmd script in the same directory. For Linux platforms, use \bin\startWebLogic.sh and stopWebLogic.sh respectively.

Access the Oracle WebLogic Server Administration Console using the URL http://localhost:7001/console.

2.2.2.3 Setting Up Remote WebLogic Managed Servers for Oracle ADF

If the WebLogic Managed Servers are on a different host than the Administration Server, you need to perform additional steps.

You will need to set up Managed Servers for Oracle ADF on the host with the Administration Server, pack the JRF template, copy it to the remote host, and unpack the template.

To set up remote Managed Servers for Oracle ADF:

  1. Use the Oracle Installer for JDeveloper to install Oracle WebLogic Server installations on both the local and remote hosts, if not already installed. If you are not installing JDeveloper Studio, you need to select the Application Development Framework Runtime option in the installer. The local host is the host with the Administration Server.

    Or, if there are existing Weblogic Server installations, use the Oracle Installer for JDeveloper to install the ADF runtime into the WebLogic Server installations on both hosts by selecting the Application Development Framework Runtime option. For more information on installation, see Section 2.2.1, "How to Install the ADF Runtime to the Application Server Installation."

  2. Run the Oracle Fusion Middleware Configuration Wizard to create a new Oracle WebLogic Server domain. In the wizard, select the Oracle JRF option, as described in Section 2.2.2.1, "Creating an Oracle WebLogic Server Domain for Oracle ADF."

  3. On the local host, run the Oracle Fusion Middleware Configuration Wizard to create Managed Servers.

  4. On the local host, start the Administration Server and the Managed Server.

    For example,

    cd ORACLE_HOME/user_projects/domain/base_domain/bin
    ./startWeblogic.sh
    ./startManagedWebLogic.sh ManagedServer_1 http://localhost:7001
    
    
  5. On the local host, pack the Managed Server configuration information into a JAR and then copy the JAR to the remote host. This JAR contains the JRF template information.

    For example,

    cd ORACLE_HOME/oracle_home/common/bin
    
    ./pack.sh -managed=true -domain=../../../user_projects/domains/base_domain
         -template=../../../base_domain_managed.jar -template_name=
         "Base Managed Server Domain"
    
    cp ../../../base_domain_managed.jar remote_machine_ORACLE_HOME/
    
  6. On the remote host, unpack the Managed Server configuration JAR.

    For example,

    cd ORACLE_HOME/oracle_common/common/bin
    ./unpack.sh -domain=../../../user_projects/domains/base_domain
             -template=../../../base_domain_managed.jar
    

    If the Managed Server was created after the domain was, you must delete the entire domain configuration directory of the Managed Server before running unpack.

  7. On the remote host, start the Node Manager.

    For example,

    cd ORACLE_HOME/wlserver_10.3/server/bin
    ./startNodeManager.sh
    
  8. On the remote host, if the Managed Server was not created with the JRF template applied, run the applyJRF WLST command to extend the Managed Server with the JRF template.

    Also, if the Managed Server was created after the domain was, you must delete the entire domain configuration directory of the Managed Server before running applyJRF.

  9. On the both hosts, start the Managed Servers.

    For example,

    cd ORACLE_HOME/user_projects/domains/base_domain/bin./startManagedWebLogic.sh ManagedServer_2 http://<adminServerHost>:7001
    

2.2.3 How to Create a JDBC Data Source for Oracle WebLogic Server

Use the Oracle WebLogic Server Administration Console to set up a JDBC data source in the WebLogic Server instance for your applications.

To configure Oracle WebLogic Server for a JDBC data source:

  1. Start Oracle WebLogic Server (if not already started) by choosing Oracle Fusion Middleware > User Projects > Domain > Start Admin Server for WebLogic Server Domain from the Windows Start menu.

    For Linux, log in as the root user and navigate to:

    <ORACLE_HOME>/user_projects/domains/MYSOADomain/bin
    

    Run the following command:

    ./startWebLogic.sh
    

    Or, from the Application Server Navigator, right-click an Oracle WebLogic Server instance and choose Launch Admin Console.

  2. Start the Oracle WebLogic Server Administration Console by choosing Oracle Fusion Middleware > User Projects > Domain > Admin Server Console from the Windows Start menu.

  3. Log in to the Oracle WebLogic Server Administration Console.

  4. In the WebLogic Server Administration Console page, select JDBC > Data Sources.

  5. Click New.

  6. In the JDBC Data Source Properties page:

    • In the Name field, enter the name of the JDBC data source.

    • In the JNDI field, enter the name of the connection in the form jdbc/connection DS.

    • For the Database Type, select Oracle.

    • For the Database Driver, select Oracle Driver (thin), and click Next.

  7. In the Transactions Options page, accept the default options and click Next.

  8. In the Connection Properties page:

    • For Database Name, enter the Oracle SID. For example, orcl.

    • For Host Name, enter the machine name of the database.

    • Enter the port number used to access the database.

    • Enter the user name and password for the database and click Next.

  9. In the Test Database Connection page, click Test Configuration to test the connection.

  10. In the Select Targets page, select the server for which the JDBC data source is to be deployed.

  11. Click Finish.

Once the data source has been created in Oracle WebLogic Server, it can be used by an application module.

2.2.4 How to Create a JDBC Data Source for IBM WebSphere Application Server

To configure a JDBC data source for WebSphere Application Server, see the Oracle Fusion Middleware Third-Party Application Server Guide.

2.3 Deploying Using Oracle Enterprise Manager Fusion Middleware Control

You can use Oracle Enterprise Manager Fusion Middleware Control to deploy the EAR file created in JDeveloper. Fusion Middleware Control is a Web browser-based, graphical user interface that you can use to monitor and administer a farm. For more information about deploying using Fusion Middleware Control, see the Oracle Fusion Middleware Administrator's Guide.

2.4 Deploying Using Scripting Commands

Applications or modules can be deployed from JDeveloper without starting the JDeveloper IDE. You can run WLST commands (for WebLogic) or wsadmin commands (for WebSphere Application Server) from the command line or sequence them in scripts to run as a batch.

Before deploying from the command line, there must be deployment profiles for the application (EAR) or project (JAR or WAR). JDeveloper creates these deployment profiles automatically for certain types of applications, but before using commands for deployment, it is important to verify that the deployment profile(s) exist. To verify that the profiles exist, choose the Deployment node from either the Application Properties or Project Properties dialogs in JDeveloper. For more information about deployment profiles, see the Oracle Fusion Middleware Fusion Developer's Guide for Oracle Application Development Framework.

JDeveloper can also be used to deploy an application's EAR, WAR, or JAR files. The same scripts that are used for deployment via a command line are also used to deploy via JDeveloper, but JDeveloper creates the syntax and provides a user interface for the deployment.

There are specific WLST commands (WebLogic) for working with ADF applications. For a list of these commands, see Chapter 4, "WLST Command Reference for ADF Applications."

For more information about using WLST scripts, see the Oracle Fusion Middleware WebLogic Scripting Tool Command Reference.

There are specific wsadmin commands (WebSphere Application Server) for working with ADF applications. For a list of these commands, see Appendix B, "wsadmin Command Reference for ADF Applications."

2.5 Deploying Using Scripts and Ant

You can deploy the application using commands and scripts. You create a script to deploy the application using the ojdeploy command and use the ojaudit command to audit projects, workspaces, or source files of the application. You can also set up the script to run automatically, for instance, whenever a developer checks in new changes.

ojdeploy scripts and Ant scripts can be used together or separately:

  1. Create an ojdeploy script to compile, package, and deploy the application.

  2. Create an ojdeploy script to compile and package the application. Then use an Ant script (such as WLDeploy) to deploy the application.

  3. Create an Ant script to compile, package, and deploy the application. The Ant does not need to use ojdeploy.

For more information about the ojdeploy and ojaudit commands, see the JDeveloper online help.

You can deploy to most application servers from JDeveloper, or use tools provided by the application server vendor. You may also use Ant to package and deploy applications. The build.xml file, which contains the deployment commands for Ant, may vary depending on the target application server.

For deployment to other application servers, see the application server's documentation. If your application server does not provide specific Ant tasks, you may be ?able to use generic Ant tasks. For example, the generic ear task creates an EAR file for you.

For information about Ant, see http://ant.apache.org.

2.6 Deploying Using the Application Server Administration Tool

For WebLogic, you can use the Oracle WebLogic Server Administration Console to deploy the EAR file created in JDeveloper. For more information, see Oracle Fusion Middleware Deploying Applications to Oracle WebLogic Server.

For WebSphere Application Server, you can use the IBM WebSphere Administrative Console to deploy the EAR file created in JDeveloper. For more information, go to the WebSphere Application Server Information Center at: http://publib.boulder.ibm.com/infocenter/wasinfo/v7r0/index.jsp?topic=/com.ibm.websphere.home.doc/welcome.html.

PK!%I?PKZEOEBPS/intro.htm"4 Introduction to Oracle ADF Administration

1 Introduction to Oracle ADF Administration

This chapter describes the administrative tasks you can perform and the tools you can use to deploy, manage, monitor, and configure applications developed for the Oracle Application Development Framework (Oracle ADF).

This chapter includes the following sections:

1.1 Introducing Oracle ADF

The Oracle Application Development Framework (Oracle ADF) builds on Java Platform, Enterprise Edition (Java EE) standards and open-source technologies to provide a complete framework for implementing service-oriented applications. You can use this framework to provide enterprise solutions across different platforms. You can build applications that search, display, create, modify, and validate data for web, web services, desktop, or mobile interfaces.

You use Oracle JDeveloper 11g with Oracle ADF to develop applications with an environment that supports the full development lifecycle of design, test, and deployment. For more information about ADF development, see Oracle Fusion Middleware Fusion Developer's Guide for Oracle Application Development Framework.

After you have developed and tested your ADF application in test environments, you can deploy your application to production environments using the tools described in this book. You can monitor the performance of applications as they are running. You can also manage and configure properties and attributes.

1.2 Oracle ADF Architecture

Oracle ADF supports the industry-standard model-view-controller architecture to achieve separation of business logic, navigation, and user interface. The MVC architecture provides:

  • A model layer that represents the data values

  • A view layer that contains the UI components

  • A controller layer that handles input and navigation

  • A business service layer that encapsulates business logic

The Fusion web application technology stack components are:

  • ADF Model, for accessing declarative data binding metadata

  • ADF Business Components, for building business services

  • ADF Faces rich client, for AJAX-enabled UI components for web applications built with JavaServer Faces (JSF)

  • ADF Controller, for input processing, navigation, and reusable task flows

1.2.1 ADF Business Components

ADF Business Components are application objects you can use to implement service-oriented Java EE applications. You implement ADF Business Components for clients to query, insert, update, and delete business data. You can apply business rules to the Business Components to enforce proper usage. The key components of ADF Business Components are the entity object, the view object, and the application module.

An entity object represents a row in a database table. It uses data manipulation language (DML) operations to modify data. Entity objects are used with others to reflect relationships in the database schema.

A view object represents a SQL query. You use the SQL Language to query the database to obtain the results. You can also link a view object with other entity objects to create master-detail hierarchies.

An application module is the transactional component that allows UI components to access data. It presents a data model and methods to perform certain tasks.

1.2.2 ADF Model

ADF Model implements a service abstraction called data control. Data control uses metadata interfaces to abstract business services. This metadata is used to describe data collections, properties, methods, and types. In JDeveloper, data controls appear in the Data Controls panel. When you drag and drop attributes, collections, and methods onto a page, JDeveloper automatically creates the bindings from the page to the associated services.

1.2.3 ADF Controller

ADF Controller provides a navigation and state management model that works with JSF. You can create navigational flows called task flows that encapsulate a specific task sequence.

1.2.4 ADF Faces Rich Client

ADF Faces provides over 100 rich components that can be used out of the box to create web applications. ADF Faces components provide built-in AJAX functionality to allow requests to be sent to the server without fully rendering the page. JSF provides server-side control to reduce the dependency on JavaScript. The components support skinning, internationalization, and accessibility options.

ADF Faces has a large set of components, including tables, trees, dialogs, accordions, and a variety of layout components. It also includes ADF Data Visualization components, which are Flash- and SVG-enabled, for displaying graphs, charts, and gauges.

1.3 Administering Oracle ADF Applications

You can perform a variety of administration tasks on ADF applications. You can deploy ADF applications using Enterprise Manager Fusion Middleware Control, WLST commands, the ojdeploy command, scripts, or the WebLogic Administration Console.

After the ADF application has been deployed, you can configure application properties using Enterprise Manager Fusion Middleware Control. You can also configure some properties using the MBean Browser to change values in the ADF MBeans. For example, you can use Enterprise Manager Fusion Middleware Control to change the URL connection or WebService connection endpoints or seed the production credentials.

When you run the application, you can monitor performance data on the application modules, application module pooling, and task flows.

PKP""PKZEOEBPS/img/mon_configmbean.gif^GIF89a%!!9))199)RZc{!k!!{)BssB!B{9sBk1)ZZ1kJkR!{J)sc{k1JJJRJRRZZJR{ccZ{cJcckskk{{{919BZRZcc{k!R9Z)Z)Z!c9sZc!Z)c)s9sZsZ{J{)19999JJRRRJZccckk)1RcZZZksk{skkRkk){){{k){R{)9RZ{kBJsc{ƌ֜Μ1ք1k{{Zsބ諒έƽスνֵ֭!,% Dȏ*\ȰÇ#JHŋ3jȱǏ CIɓ(S\ɒ!Aa͛8sɳϟ@0@!я.*]$˃e6Rԣҫ>*IXÊKdӑg vkцIZH8b]i#6Wa^?>c"DU!]$c% 2BF߲eCMb`YnF" a/Lپ6io QavXmU+7rqW /Zhq.ͽy/P^LN6z 5μt?5]\՗z&Wyj- {&yMX^{Qxio!Ȉ9 Z|$]F-DIGhۡxd-2@}|'Dvm 뭇$C7ߔXeYI7`l eG>P:fJ6)gQ (|& 9"dZ%f7#QyٕVרs8U]V&G |3Q䩨ڦgށsZ&yfcޚY*a8䓯qfx9`vTT "|2Zu)w::ٕ.Jiқ鹈ވ/:@R2* Ajߥ ͲZ&O[+ޫka(f/|<6W{ 4S#&b}˩|.ڕndD0 K,\pî2&!lRC \F`mG\-N>-yp{fϒJ?(6Bn#6nR˯ <|LB׬TnH=竱kd5&W;WvUH2.}.SD:$> IGレt_o~@$^|P Xu%ojy[95?YrY|2WnR>)-cF&@0NW+" "/ H4C$4ʏR2M/mFoFbT*Pa7H2p I"!/]7d(.*LT\m<܋"y r_}AE$`f$'IРq!PD7JehP&p,0'WV$T Px+Q"PKhXpHL2q2MKr̦6'mz 8{qL:!Ru1سC vz!R)ς =){A @nP$?8lЎz %#E$b=`z0l48ͩNw@t@ DH;H/@!`#`K3X`m3LH":00"!`%4 0АNw5igdٌEt xG:9b傧(س!]D>@%HA F;ZUΊ"UDRUf0P䚅mnk[&ػl\tf;\dV!x"$$40v1p,AB['PSSxvQϮ$gk(5K*Go:-m#W"ͱUaA v̞Dvo ML-Bq|gl0.x4pGW7pk]pC >nB|Rt@$-*#s#,Xp.Sx7 z}c43hRo}h#;ZT0"(PSu >P1!-xc_⯱+,1zεdL7XK//)(38E.p`JGZm(E>=ݳJvĘTXlj<4Lmf1tMo)w5~ 4}S~bxQ[fi"Vc͛fސ;l;r4/WSZO\`-pЛ)q;w<.ބ?ۧ񐏼'O[ϼ7{GOқOWֻgϽwOO;ЏO[Ͼ{sOO+OϿ~8Xx ؀} 8x~؁ "8$X&*,؂.H| 73X6H5{:|9x}|||q{Eʇ/L؄N}(|7f=={WxWg7WavFgjl؆gTȃ;x6H78uȇsyS 'eȈddxC8؈JH膤Xp{rXtY芬8H\x\Xg{bHH(8؉HHψXx7{Yx}HXy?{^xXȌ؎xhhAH9㧍ላ؍(v8(*gH0(H x{$  G9(YLɒNP9|.H2ȍHX^i{،B)Ȍʈǘh(QYvYS9Iwٗ~'Hy٘{Yyٙق9yٚ9GGGC}ٛ)||{9|9ip؜afqY։{y{) ։驝y乞鹝7Y  ::ٝ: j ڞ١~)ʠʠ٠Ź‰Y*-J * -9]7mΫyzXVW< V7a]qI}Y}}f T }x1H+,[os-e,щ2ݨuj׹m-mו[}z0mjي0ٗ{Op|@j )'+f c戉@3=} ׊a[}=l ¹sZLPz݅RJ ڽ\~jن|@@#O N{$j1f#)mYJm|dm`ηʜ&C:˼2ʡB׼حj)ޘܵS-ŽEcqڤz Cw=~MߔO|@;0z] {GAnD)?9q:{`v"ܾؓKހQ.劾\|pL1z^u慙x۫6C~(nŇ ׿ٽB.,!z">^]|**N鸷mG]-Щ~p>r[{5aM빮 ^3~^|s'(`_]|dk`=x(hiK|n`u ޭK&=ڎ,%a橎t|g">"?ZOtHJLOV}ʇROU|2}{NdϿ}~7c_lg7'~*y{r LƊ?&-.aaV/Ɖ͋* @/*x,mK+˺oUzO?7IjƉ*A>=o,Q'8]8Mį/o1@#G @p A 6|qBń~RH%MDRJ-]SL5A.‰?% d7E}s&L16ci2SU[2R"?;{Hl#F52LmEn-ޭ7oGkU`… FxV<}< AFX-Wf&CH*N%9IGf ڴΥG+ kȑ"G[:[VxdBt8E6 =㍝]vݽfqH''4(ѡD:j)_gx5Lբ?6h@ ߾)jk/K9jC0: H4,DD1EWd܏r 14-ȏT2֊/J&O"sr5"[$I+ tAL3D3M5\,'2ct9tFGl$GJO*5BRQ*4QB/ks1aSO?5TQ{A0CNS>|RQ[g  tCaWH,T?4- 05UQ6ZiMT+FFV][eerY-F%tw4^E0wp4A6`&`%),lʑ`ٕPc}^su׉4ŷe_N fe_J27h#guW]4rH:hl華L:]DZ\a=jߒ~7';l&ldž9mמVf2;n6I^akeq2R'p7ng\E6 p[e?i$TzA~? |x׷x߯4yqjt{`;ד=s_H-p}Z9F`1/>a(F +!#t?X a c(ġFXm8*Ñ5~&J{C#\(^8G*W< DrC"qt; QL'D3+`+WG<"2 HE"$t$e҈BђwCS&!^2YҮ腴p<S?R#,_ye{9d#8]fO3_/W>$d2aIFQ$#,uLNAIT/Qu#8qSĉ7xrS^ #YGCg#I|SHĈk`̬IlH]U$$A,6eNvTL9Cotp4g$ Iyt*M$LUR$5hN榕FiC)1Ji1%o|+QӕPәԫ4?m:֯BN:*ęғP_h)5nYHG UytV}vեu##KVֳ$i]kf=֙a[\3Fw%H:r%iae %e$ K)RⒷ$)Ɛ`VUgerovG퓡L1k5%fTKPݮ:gYłD\<+OpZ]!GBI֗<apW*햘vצ-- vi`7};W1sp(Dq Ohw'rQ˦qe`+ƱbTzpq\^QݘGn"_$G㫐7]U:j^3(cWrW^ձuw}O QVfl]\,:%RRW].{wwa<˭ Ŭtsj5y$b? s!&ڳ8R9_ܔ|yI@o⬿<L4H)Wڣvk+ïWү#{ɽ^n߷}Kd8hb'}/ꗼ=%٥ӥ>\;?LT"pb ?ۿ HK?$4@:|[@A̶#51A:AdA+ A%A l@+\,A(B#"dB'BA4TAA85CA1,#4d@:tA7;8TD-?CDx S21 =?q8 l D|@RL@QD@,X(Hjr:vȎȏɐɑ$ɒ4^;H{l<)Û.zǫ\9™^z G yHIɞdID‹&3;;ʐQƋ.yʘJ\˪$TIpJ4JKI֋#səh, +H̕X́/Qˠ=sp(*=cL)XL LHM8M$L\kJzJl zT-djG(L/BȬĞ" 0C8dGj35ӚyUh nYMrSՃUaGm TVcWdeEM.TY.T6mm-qSlUr t=W>،VtWD>{W)M+MGW* O EfЍ|QK<~RўtY-k5X խVuNO بX!e>OhWh4]|4TY@DR2LHkghU_ݸY [ۚx[;4ڏ rDpے8^۱]:y&s(#=“݅";Y(3R+D9ϼȳuCu\\3]B҃$޷J]߅ddJم9UK]i^ʲj[<m %=S\Q$կ=+;*30K^WNM TPZuX04OŰV`ukuUmFL ͼ+VJԵ(Q ؝tݰ^X  _a:XZ]] PGue͕mTIRS01U1bZeѝҨe5WuSmZn$V*5Y;}-V|e@u0U؄؂6eXFY5GVdhud7a^cBW&]`dBYcbIM[=dT6VՖԅ'Qu2UNE[}`o/bb-[N<e)U^VWfeeWfټa eumREUk-fdl .r}g2iqg> RY*|Af_@N,&h(>I+Ԃ6hgEc V3КF\UZihYMI} hB`63[Zj?EG"4Ơ)V6^N(-Z+ %.#>h!8UǪ^T2EVfv^K r@k;켆v ʎH]#Q9+[^mL%ZlݍleI-7#%^4Kn܎Uߦޚs:~V9nX2[v S Ϳo _ KX)_n6&]XO_-N f fN;]݇n;I.$>ͫ>n_~ap]FƄۗ(h']qhʬC;{mb.O>޲3i1O6&0QV+e.]r0b-so} #Ha;>shdpTt@OhV]u2rpsYH=^gbd?cW]VGtMv>fpXuk93e  >д]`3QU*/xZwRe4M)deY7s8s3wheN~7ep˜wz_ E}wVPvQa&α zfM`}Й]ОoPby'zFm;^#j걵kT4dyWwEUeURl.VyyGkh %F:GGW`=֙Y { {&dOn7{3A{!;N C'CЀz@hmny'dwjgn|h=K !Gt?7~G}WOa}|$q͋'<]҆] g]t]\Jn] H\aqi;6|~j>zSVٟ7GzI5OzqGt &,ذˆ'Rh"ƌ7r(QF"B'GrUhJm 9Μg23Чt$ԨD-iЧR:Ez)֔Z:bE~LQ,ڴjעU-ܸrrt;Az}ݼ'{ƒ FWqcRlrG"I}+Ќbf;255GFt6mRev]jWc"ؑcOeܹҧS}Aog; #{׳oQŰ%OzVd"0:4Pj:U֛B)pT l tEɉEVsyؖ!uf"yq]_)Qy6ފ*ш9X|Wrw~`8f qRT VXT6)TOZՎaX˕!\%inTb'"9$yfy*ڈ}yQH_rzm8K҆eOՆeTQZzS[Ub*}IQᙩ'z'r #d:R4(Je,6KAD2Bmgƨb%'a|5؝"&lx -9; ozHX8VXbvZ޻e 30ĩ+Q[|,¯:ʹ0[c|rF&2 '+(g<;R#4 E ƜM8!oܐYk5]{5a=6e}6i6m6q-6/4ij(HUVDm>UwȀkUb9']2FqhunoNseʛ~+t ?g$V-0W~9\ `$=$2RH4RRͤ<o0X@t!hDx\E#If]q2iI=ft!SH(9Tfr1WcEHuG%cM$)6F5TЃ>U%9⎎a"ME6Ȕ423+9s".>MY V U>gy:S#%$ 1ԍf-L!YTQΙt4"kBD Yn$7IN$J$sNu~k\d -Dv4,Z% Pҧ囂*I#E:^FHYS_Qji*TDxd"УvԟϞCҒfS|)7[ST)gM݉z2SiXWR5<.R6̕QY}"6e4.! 'Z&Yje8<^Cs-6R궮y_JS*=?U*vĵՋ Ђ2MeKNaV0Pb;Lӵo4+ZmrsHtۄVDi SRq5*'T[0iU cOF | ғOͮ$TS!^nO=Ehhw3zS޺Ðvq1߃'yXDNx"3y c\vG̑,'ղL1I9-TsuΌ5g[1Ìc8s3=~3-hYp 猿:tvN-Z@tqCFqQ?-j/z[sD 1Ѫ֫cmJyV+]NPY{Iћm7+ wrGEyT^ʄx6ViahRzU6/bn[T9烁˼o%I+d_W%H۫][5*PTI#E &i:i>ۀc?^nYvK{K'ߴwo&/4Rk̋ oFz<)Cg5 0`[^8Go}ݏ&STX*pr+XJ8i]ͼ4d0SMToؘ _ kNAV`r Sv' Uun;c9!;#Ww.9sI%T!́$Tq$$߂1՟E} E Jx&kٯuC; Rn?/=vQyՑʨՂ=cRHvq ],Tj,euP 2kI}ahґߎ oJ^V_unm`-V>9IwQO=WeiM-aAV?uU{~ Iད~x%L  J J F\E N ڡ uMx:Su`]Pt9w=dCiV>`T{V r1]~}aeҀ," ԝT҅zS '! 24FMWzE e {|5^㕣VpJ9:#ِ@a+,#@RZEЉ>>z?c@"YDN@LėB&C>dQdD&IށHBPCrȠ$LƤL$M֤MdTJNѬdp$ORG偑dA$R PZPfp5%]%URU:Fb m%\XXVOVS̩E>%aMeY2\bY DZ̭eKJef%]ݥ#%pX`fT`Kfb*&~c#\fE_PW fbMę\Yy\yK' +.ƹގ^d`涐Ԝ f1d\&\_5 QQiZqN4nr'egGVsB t0\]vYTlve>Vwb! тԂbݡ,6Mh^"byrڽ]pݹ,# 2J؊Mweh1^RF} //'|E%l^(C+"m !U)ynƔZݕ5q= .bvi{6brd)"tv)@udPhX`0e2}(–'`pgw>`(LAjoi)Z!nzI!'ޝj!^+!V֜S3f9 |fsT}`X VTBvb( :I !KQiam ҠT)V#ggYPwɩIhVe٬&ez'hn~y.2vdn6Z.Ѯ&R/&./&f nBe*^/IB 8.Xf[ʔE#`\ ˆ|&/mbb%6J@' i@|Tpи8 Zf]0ȂY -6 t2B!DAhTA!پ(P]ZR 'q+XuIB GAT\)!%YeY #"1ѽ)ɥ;D1K 1@gqdD@ 1s5_q{ٺnX-ځiۺ&%7}(3Yv6ޒ0*C5B2Я0rti˦q`j@Xe%b^ʩk;*!*i)t kM 9B h@;O@"#C1vpS:3xsS)5v=`)ժe5Ny2n|9Lh< p2p333R n1k]4칶3ʂ-J˦2Q0Aa"MwoIe/٪& Ur:ڑ2ܧihfҗ8򤘏xYާbi#?ksy \uuJKvn{:OE4w@;K.秠f8k)1-vR:p,4=QW3>MtQ/z")azkV'1+5z*uh%獟U z;3zBt1*ƛ'brڦKOn G+JXapᑮ;^LՔ:k0UL;Ӝi;^ #*{o|V9\xc,#װ|pA܁w$<}6=؇؏YF;pS5ڹ[)ۗ{܃t}SrJ>fp}Cd1f|y W>_g>ow>>s9}br0Cϒ\FbOւVF 5=[j1{&> DN~I$/?7??G?;rOxVĢ W_G9ql7>?Y%Ʈ, 8+$/N?W_?@88" :B(p! Bl0"B 12dQF A9dI'Qh `@` I3M9m ОD3iӗ3ՉjMRJJӭ_}&zjBU"T%IE~R.mջo^Fn`p̠&VqcǏ„<2cFfּ\Gp$QiӧsV]@ ]g8#ڷ-06o}~KfG:&ȫa}:nzs9b.ȯG^=|zQCmܹu׿D‹*"RLrJ <2# 2 26ӬE>s$4F[4N4Ѵh?~ uhJ>T%qp"4D"EAR 'HG 07^8n65MRROT ZGXKR :љ~UCuڻ7“'@i)ZQU'2OUaTeO^ugVyU;ek[VX*sVؔU_BjWNx=dy3AhD+{S^nck*e%eaZv[mNgԭYr29$ZkZ.@/K}/||" 7deAU{܄5+Rv`_ZvCm}V+"WT=twIW^l }RJ x/.:@9ƹ#=Uėq}nr?uzޝntZ)W k=! ;^ p8 ~~H0xT[O>S⯾w? ~޸AߖJnџ 8%n}k>~q$?NbOh/o?2!0#Tmp0ߩ5?*!:pʼnINmm]0L*lCd0Krcj#2);Q(2*()sQ*R%2 2+'p( , B,G0 ,1-r+ ,2$' pJB 1Q1').+vMİ4H1h/02%S-$&q߶qۺMNR/c0#4s,M3+')!11^ӍJPr93:Gnwg7!7r2QQQVQn"1=3H s2y!?o3 4@2"S4>S.R(,ES425I0q$KNP9@wtGޏ=;o@OT;U;2H.O'yh7 KLKSLmL1IMu:3M&+ tOOOu(?0( 5PW4*UOP唔 2#W.RPE"R s e2UStR% 0s030B1?n5T7R/yF3 %0Tm#q536V;f) 58+s88TuZrJԠ*3OQ8cҷ<ܸA|(]|t,+oO }&Qd<͋أ%|߬߰׻-.; XY] a;qqoßz 77seն؍q}5;Xu{ek}wWۭ·Q 3*ydOS٫mq|QX> !|]隹}n}o-ۀʓܛ!>QIa>E>]w;qMު ^^~{0\/5^뒸9kҿ垞Q*Qmzok)jn{9˾8!?%)-1?59=A_[ۛ~#U}][Q9S܋ۭ>>%z z_~1o??_ ц~=w|ubY1%Mb <0… :|1ĉ+qǑƍ;z2ȑ$K<2ʎ1tH!3sG9zVHN6 d(RCg2p*Ԩb:QjUOFW_bՉ6ڵ9j@?7(b+ q+ 8 F Ō;~RA2i E+pV$cFZiװfv=ۑ,k׳[;7Jpg.[t̛;8ԫ;kݜ%k9|DFTaٻ _챮m_7v{itK ` $]~NHad7@Ufw%G"8pb)GU|-gbV[VUȣN-@"­uava>\#|HI%P^\=nu$YfQAj&] ~ ǝ[]G5 &XjXU"ʨ`Z iacNZwRxri杕2i~&:N6JDNieFJj`#yh.K'ž:hF^^4*t~P̎KabpmdInJ7-[b f n-Ẩ_ػWawizpo,-K;"Lr&r*| -Ls6\#RLsc^/ɆlFMRymkA"u~eE\Kbt+EMԗ:1[ftpZ}yY ZJw TmAyg⚫ݍKtZܛ:ȍ%ֈFI:ŮTz~챇OLG#=)RN~O~柏~~cNߏyϋw1"v"Z:(I+48e-#Fzқ=)/<,l _p4 op< qD,g848#l(JqT"',jq\0qd,ϨuA,-aG1*ύt8%z%]\6|k d bȇLL"A(>%/)v͑ 'JF]$#| ""95brlh eteL+ `&lLDr#*U5IaJsd1Y-+ YЂ)ejKA3Stst85V VqH^M:* Ѐ 1̋H|BĞ gH)0ɟE/L#SPn W!}C?b5haĮK_т&UiIЛvװR ug!DUiT0jK2WdŚDNlU W<ʔq5IYVu{Z_Q66R]+Uľrvn]#?=l`,{YFBa nΝC^EK?$Ek}ʶgwn{ho>ٶ&L>;*w\]s bmnuݸ67wweexˋuth{ w}w x.+x n K/ kx? x$.Ox,n_ x4oÉ豏 yD.$+*yLn (KyT,ky\ 0/9E2;PK^^PKZEOEBPS/img/deploy_preptarget.gifGIF89a(@@@߻ݻ}{{Ƶճppp羽# /+,酅ꔓbbbURR=9:mkkҊйHEFڵy[biYVWLJJjrzWTUVST燅Čblu59<\\\0,-yyedds|MSXomnƵ˽393daakwkڼRPQƥ̄27;'*-FHKJGG;89`^^quz׺˺vtt]f]`ejUZ^QV[V_ga``>CIAFK7:=;78ީqooFJFS[SMTM:<>}}rr/5:///zxy}dpdɿ顰&*&$(,7;7ϫIPXҥdgk̯蘠ܿ׿ɷӷ?G?!,(H*\ȰÇ#JHŋ3jȱǏ CIɓ(S\ɲ˗0cʜI͛8sɳDf9NzFH*]ʴSePx B(jA fOÊKي4<|ѐQYpi=xwf/XW.9۷ǐ#+$'UV6|qP4$M4ӴUvYg9!۸sF)J˘-,׳lbe~a:'6l\vrr'GO|i|TS.\׈''K[mf]䐓 M9_jW`l&D($jYXz쵶]q"79e|qW8樣E(~Q+^מ{uf`rA;6#Z?v#2"9@)%FAUxYj |2"'di'~DAe!ryq6i%CŞiZ nĜf:5(XF*"恦zNAb8\9ilO鰨>Z;J3+B h#U܍6L #p. @Kkqۯ"@K `2d &B[,tҟ!ḅ5ʩHAi9CgP}D[*HB^̄&ajnTjH h%(8dlHD;!` a7 T*9<v`HF'~ZL EV| H'HvP5@H'} J\T/p-dqkd#}IzD0F 2@0BVV[%1Ia+mjK *-ĕAtRR0 u|a $G-:UbЁr>L7©P! 9 tnA&ܹE*D! &= 60A ІCJQ9 x1%T% @JR`%MNҖ懥.)y`*Ӛ:6)npӞ> c*ԢFMYԦ: D8 fԪUU"/Xa`h.U'[z쁮xͫ^׾R_+` %b7G0b'k!.pn z"xf5MmBqdڶ p-i}P޲ m{ƶfho!Ԗm< md̒Vԭ.]*ixlt!;ƪeo{ ^,xf{#_֫"x np 36oU7,Wm0΂ح(J_b8^1o``X $ AZcWI/_I&AL81hl\9p!_6?Ԑ!8(pO!1UVg%8tP |zx6fG! =kzGT.35$ϞD=ꖲy"yѯv>i9õNdk]ȊV3aM0AaH  Nj>zž6n7C-n*9ͮn4- ! LvwEÌy٘^}&AN9_F8& Lx2 }qӻ޽?X@(9&P^'h-C[ ï qg92!+=E r f5G`xbk~XmVm.@vq  Op  |03x X - ^'~j'ogo@%%@o r tH dy聝fHwi`q {0F @1wF`iGH? Y Eo o@R@@ fgsHvrE {`|8(8)y {P 5 p ZI ^pIv? }Z} W] A А$ }F}&lJgܰm X8P3 `O@[3vZ A3L 3 HhD9F@O70`؈Y9oYqparhwgRbO|O`Q&9K3`wEC0C0AɎ{ќ O'OIAIY!&VɈb8~hhFxG֛i $ ^ Q {p hZZEُJ阄@* Z@ɡ3pW7َ,ڊO |y)J; '1i9 X_Up9m fYOiC8xP iJ % ?y<) Zʎ* X Xً)jD)HpSکafe!h C@Z):Cv6ʘ| Cs*Ijz3|[jإ{[v=*Ȫ&ڊ{Iʠj0*iIDzDžhyƛj+V @i 0C8_ڒʰQOpxp: k :۹ 5ʲ* 9TIa n@ zpd@U`\ZxZTG=)1F&yF8УX(jzFAgzEZyuA7^\> f R@ 0ZV{%_.]~@ioʣx?xJ%h@;{9Pn@}= \`臸 U@ P]  1@ k 𽗫c,Qڹah{5 @Y3yb~Xݚh& :[=+Gj b V' yu.p.Ju@ @ @ )\C1 @ R P1pd`Pa|(+y )yW{`NlڥXB٥ĕq&p]z |`P vbw 6P"|| s~R + 9RPp,aC,^wN J2J<ً:Ћ<`F seK{[ b np u0ybvn*&€Lӕ\ : P&9Uо 6J ˜0+|a e|\ !j vϳ[HP mW@ L ?L q\pog A e #=%-^'[*)K򉨮%ڞAJL6+0؄]؃`؅j4Q 京蒊*v^`陎.[c  -mIⲺi)/NCJϩwb^n (ʮH8Z"O쇞>m zvVNZՎ_YFʺq>ŭB,=iC@Y̒ =Q R(n .B? Q  ߌi *B7Z oȕ`foocYx~XL\(pi O0 A P i #ʦ)m0^#Z! @W?{}P  U]SVck>c]~3-.`/ ,=J\U_ ov} _q.c޵vK0z=J1N!) إ $jԤIӢōI$ȓ#~XP!n+n\SG̥Fy ,V"FL>dC&OA ZtE.eSQN ʊYnWaŎ%[U[`Hvs =L )А'4Y ,x0B#Nb1F?(IJAidFXdƥY`ɆKsfWBu,G;qɕ/g>Fh9JiSZ%tx)!Jk `qZl4FC+Z̫9 bD?,Ȣ@(`2P?Xx|+B 3d$2Bk.F4DSTWD-3jH22Π8KĹKJs#&7Q! .~87.BB22B& c-EZDsM6t8F nQ>@-DFjĊ<&Ȃzؤ.A 2ܒ.;b)>*qSM9SUuUQeU868S8@7sC(AZ 7"J긤< 6)AB:v[n;ʼX ^>"Cv?e5D{0\XvZ!5H;؃3-(l @w;x`U5! W1,Џi;f2vmfke>!#UVˆj#_'JgUOu˂lϾ"mefm{x;9<|fn:S S}cw}9C.ġD#۞#X 8\&iyKrchCQ~#;vVtH$oK\F`T5_ z!+^L2A%MjJS$-1V:B\%9YLq$ҩBIO % x\aD8 !-hG'wP Dz&0#n ޤ(?]O4N hMODSVLCsDn#1$@Ŵ8iS珀uVZԸ6^ە:/VBA=,&X>Vˉ v0Z^OV`5-hm{JkZl`"ObյH fKVe٘,V)"[g"w}jr =@ p1@ (ks;Z.O5Ih6ױV^ ]kկz ` XT4+5 ./҅0 &SfXEB_2mK|cŝTY 41/=F0 bt %ULn[.Xr4ɬroo{2K\_<_As3%l9Yv:hg<Zr m*#zϑ&TG;6;">+zr); ؄Ҡ rWoNvRTۂVE$"i⽓maG&Bkqp`e&&yuHAi h/K @m$8w  g8G|M,~qg\<?+?ߛS3>{ ?{>г?>?,@<: $Cs==˽4\@$>|@k?A @@ Bd!t<<~{?TB &ܿ(AB,B#\ $:2:& ,;kC*;8;,$?  8071@[B<ñ{[C@AAFƃRCs4C@tBATCcC 7+,BTL!D[AK2ӳE)*LE<:C\EVT Wd e D PHBHhkw}Hi8\yF.BbTAKBZp>?,YD{B`m؆Źw`O~,F`TBnolKtOrć\"Hv(h;M[;&{I8[-`ɖd CcDb(k`@ X5H;H)x,D7d0`APR4?F|IVI2IrOpsj耰C˲c'xIJYh;@@1`{cJhJ|JDZHe=ypmĭCJ[Ocjx6(;D VHm(!лIpFdzM'X pnF;FSOPh ؃xuY ()P['LwH{dP;1Ph جF_u;!i mބ<DyDJ!& [LP&%L˴P@Є10!Q|;~lP0HQ0f(dS;p XՂP;pm PI,P 0! x5\P [ [P0!Ȥ5Y1`OQFd`d` Jg`ӂ^R+bC'OP(p"!5cN_\W\m11ФK;(MPaXѡ_0X;6u\[^Pi\=fzNed#Gcغz8[( Om Ёv\C?XO`R8IHIdhAZhAhiZ(z][#57$MBe =开c`=Ё`` EW{GQЄۇmH&x*I&hŭ;=LgĻdzvTD=4Ddh4{>^#VCGbn:H4llF(B4s[mT@lڙlֿ&޾FkTɕ|mƋm> mgmnjlmNn>oNnB>m,D>86G p]|GM^l@\Ķnpnooonp>Nq p$Nf&~EATvC? oqqdsQXQPYppdR7-Jmqo'ζJ!?;!6 ?qu<5wo @كFXFx q-Q;(q2''K5QQn)A0k!"`^۾?r ~oD;F`;H|V tmO" @"~kX[.%YfFLROR;H&@%K !z*WX<#k#(k nD ]gY RRv @Hv0VhMHJ@؇a=_ptOfxڤdQ\fpv=!UP[,ցj(Y8')8/HDSQHKZwI`tFwPx?/< es#X@jJ-O@ ؃t~>gX})Hy@OhUDڗ_t8O_pFnP`;yP(ifXpЫ `ds"0%XPkkMоmPʴaS( *[!p`Ȋf$p4_ r ذbǒ-k,ڴjײmKЭk޼ VBU5a5k$,P( f7k2aR` L34`&%0pKPm;A $7‡ujRcA! +GĊ/fcBM U5 qi@%{6q-V:;L1l$C _mLW9 J(Wr^Udw*kl0"(-XTKǙgWi ETl-u &!M:IqUH.{|r |"BS8PdF@GHz  7_MhtNPE=@KH3 ђ`T1WOZz)Q8e]rB}հGDNLQM05Ý1@ ,/B(3֘MtYh`jm&!,WKf:-NFi5(ք0C!D8E`GfF51 ,aޛVIC$(` K1 j|[zqr텠z(@D 2%QG `H0 ´MhR1} v@mljAo {u[N$sK 1ǔ;ˣsa͈PGl}9Zk75q;M[fX.{﾿ -oN;}Y}mg?aiwE|ҷ>aX^}'?ѯ( ׿ Nk{Ëre|>-}_&X]~sM)  x@F-  6O3!ARQB`^豌C$,!w)p}s`8'V6 (GL% FߥP+<^ `tc0928W^l7 )# 3#H ~LdQB#_n'>0NĤ]Av\F]呐W 4,HKD(y)MedBe*'Tw,6|vdx@XKO~2|Y|yJ i9Zx2%SC I< A' ωŔf6h=Q$c@-sP6(EO 3p2 }ncDOc.:Z|A)TWMkŇF't,Q*]B !\v R^1O@w{Q}[F.C(Oxh߫FQ f |` K\M"H9 9iаop|NwiOCu6Um D4aT[QL6rD MZ._PB09]1ԃ`D*LH-_fm>D"0\y9 =UVV+SU,,: u]X'PQ7yS 2 fO HG7@A'_j]52P -aazJ^U +1EN! a!bra!%ac M.$n%Ta)!'?!(a)Xb*N&"&`G9b(Qa.b/~ra"c1>!-(*23~L&J b# 6b7ڇ3#D#9"6,-(;v7׌&cc,~,#;j-b)ƣ@ґ%TFTN%U2hAUfVn%T$8A$p%YTjZ%-[[ΥǬ%^fO\%_>]%`^&a_&bZ`&&ca6&d:bF&ecV&fdf&f^&g~&Zl&hBgih&bjfjf`&lrk&_ʦmVfm&]&oBn[p@\'^ إsF,-؂,t%X'vv6 yց[@%z&4'x'XVugbv~& vg`@`&%A(a;0DC @RDfn(vj(+( @x (V% ( h+BY>a,qMf= (ꨏi)c(ƒD&=(65~*SBݕH WL@䩞f@!D)nl֩) h虆h~њ` ]mtţ)Jj)Φb*ꓡ)&jI:ީjf襲4)::!-:d53ũj*l*+n* (ͩ.bѯj*1)+&RBj2&¡+?1i^k=Xj橷*Jj,],)\TtM7f|2;~-Q4+֬,lrDBt̀ʎceB"lnOm,њ-ڞ@D$euwH |,Zނ2UlF,B@%B$ Ÿ= I=]8J H բԱ1l.R-A%DB -]1Ѓ<4題XCl@n̓hBK`Ǹ n/.k2EVB(p|B=P/TPn@}eWJy.V/ζ﷜'YIX-o@TC pX A).NBIpnlh](Nу@nDD= 5(~0YJ>ǂi.]4E/pBtw\Bweoht2U#.W hׅ@ʄBq_ s1 s pٝԄ ˊ#F2Jn&AU5o ( }[YqSrBrr.1O<l/h]Y:sK3Rs[c3n$0Ԁ\*$L&$3Dz,,Ӭ='>7 r 8(TC( wl:C(@B}\CQDtNOE3'%c%ot(lrN4((rJ1CU-7t㑒au'uݱ8*wwI7ګ.M'`-wʆ7|7r˳HhF7Cn#y,Hn)l&8O[x76膴j7+i8Ry&_:Ry,jǸbF7|oڑ#ynj]_ɂw"xpoZkr5(yw3s',Cʞ,˶t}99wq$x ēOx"ExAt*pĈ(y`ij9PݐItW ![=xW9?~9f??TC=\G|7}9i>W5쁽ٓTGW(z\lG(m0Mr5$8oyFo,CȖ (bWyoqU-]P@%TB1B su86(;He2{;h:.D|%;E\ۉe )_mLy8 G)̀_|gVl'PeYMZ!}?¼|ďB 0;v\u$^a[yb瘘bacN!|]~E %>e^]n1Xc9gR 蠅袍>SA馝z#'xx묋n.>^V垛o6B _qV%.-ܣ1ߜ*5?/uGOuOovuW_wMgϝ}o,wM/yOy-ozԖϞԮ||_5WK@ "r–H@ P@1@{@>#(`$ HEP@m|+(`@ڢ SY8#,b@'3rCAWZ,ITD'>qQ+^YKE/~0BVC OTD*Q[F;zQ0?v=0U 9KMTv"G& `$'P #&9Be!&1)Ogґ"CCG>%3N~|5+QY9Zu WFRe-mIPe *GkYWgcFRd3=Y\#̖/-fk7cK24I; Bd"c3 =1IMQg?A^I|eЃ2 8yh259/?m#(2e)RF&X^-!7#b,+IvҤ\[ҋ>*iGJtNuNw*Q%S]qHɨ0b'!ZS^\G:ֲEt1Oä B]!!1aRKeMzW.Y,c }fdn~TMIêE3 2NVE h0IM@3hVR'-!hc2'.0xeWkqڙҢmXmi4.eI`b%!zh Zg(b'Ǹ$IL#rѕdݕ"0` EJ=D xؕ"a1t5p P:toY ` )]Db f_#dm5̢kX0)`mP sA)@0( &zI uI%pwWE/BbBn[^SEy @x3[ Mx ̠Ch\E3Kicd#E/QT9x 1YC(S_<&!v#͐0Aоp&\a#۔|g#mVb+)k hy)zQ 2,3Bx @ 0t0 ADf1IeG0y2KfSL >Q kx;RfbU,! @@< L# lL.@ L&ek͕o%*ee Ÿ6)kFn q P$D`d>c<E7>3/JۋST.4O@cf5{ C/omC;wnH>wx0wWEŵ ρ^ (K}jG- <$RˋB nƀ &!~ ROx^Ob%foˌN LO>Nn92Da ` d !dN.%В8n%/DA1B2` Dn o2C ``b gUo|(,%0P n/V`'*NԌ d``',AEat` @ o|z~06h^Pˊ *azk"! d)$` @**+  b  a|#vM) +*aJl6lL >B` t2@2,b+4  8 6; NCh!*./A K0d8(mh2^:bJ!<t&Abk gqN|몰*j &kҞBN*TʵK pRtr'+i%̋(rj$5H)d$+ ,2, ʟ) ,i*,e -o/N'20j",R r1۲+*0s.)221p11Y124 0E3r[^r<r4e44S+r5*iR4r0k`%xV6̥2(B^29`Ҳ%D%x:YV0 r+R9z9:sR:C^":00@ 9?S!zs,!9S1ɏ&DCkFha@B )?w3!J2۠ s@@CLL,-`"`#`l¾t`Rm7A/BahAnA`0d5B  | |!\TS=!*aHGV```VIWPfCqHK>ր@A!:PPR޺(! W FH*a @`pҀ4Y90z.-vX`8` $JI֠ ~a j` fD @jP &aށT4CMS蠵8 Qbu N.hb?a ` } O~SIl  t TMkP@dBW!W6XhXl%!TZqc `R0c\/B)&>\^U__gBߡ? V4beuk%rH-rTR=v +N!@fAB~f1nc Z2C|hQMV!;׆ V4uGuk".0p%4z˪a mQ)˄coEoipQ|'aqSXnoro>Ժ"A|f`6(LP4fb Ơrv6hx"BFx}y+vAW&6Vz"Yb8/jt{#T^f>| W "| N ӑ7) .k&kv<#!QK9`haj=-dfv2”VLqh ! t՛){hXu(6:yZvzIV!T0{`eel >^SPJ~ypϴsfڒr9"XGP,BwBNxFX*^g f `}NmNjshXGa XČtKMwal+fI8f p#0sF>naOp2a `LZaƎ?bfadpb6q &䓭JE3#r0bkm35/-DE7$%Ӱ1FnRTC6$(;U.;FC/)}C{)UED2;Չ!W[+7 ۴1Y UPWRdZn@Oӳqs"TVɵx@r8įۉ%WP_{P㓵[SԊ{OJ%?ue\44;RQ:8C{\R;{{{$|a{E[=|@<=75|?;%M;=cS(~ȃ<߈X"@Ѣ#;`S^q `6UfA lA4^ML^ h(E0^D  i~K\^K hd@0 $ޡ R d><ǞEb4 D " bҀ\ `͢>5?$ |n*$.?]`;A,F} ~ N5BY_?g$ v@o @t#xI_$ ̠ ___#z~ ͟_;?@<=<0… :|1ĉ+Z1cCI\xᣊH3M $1ʕ,[| e] YI<")3СD}8͑%My4ԩTZGLw ďd˚={5V:F+ܹt"RM| 6H)v >ޭL~ <ɔ/Im/_H rpѤ^μ`?. ;a-y5R>{";pmUso;^T7 lsr)$h=ҩ4{ݿ"~XTϝwoP_W}ȱ^ `}瑔v g`A(!c9zf*>Ǒ}ș~G.b"nZ6c􃋩gaq(F^iJO Y#VbIf]RG/QWUfDfֱoNvjU`уVhbRDad(3>gVziB]6dP*~fj{2߫R)JlFCc kJDVl k:سZKC.Z`lrFK*k {//GAкꤟ;qw /p fV|qۈX406 p -`r)l˻qK8L+7`s̊Db~B4L$d*tW_~EgtӪݎ W &xvk5\"}u{sR nc0,w筷x]O.xH|^nx+WHb?#7瘸@.;jlu9;W^fA0t/?rs>3Hnoy;ȰVG?ʔp;~>L`a\ w?/y[lйmc`0>}s@Vs /p;@ԟ+(p"3:(^ph?%Sd<5dŴ,3MBMGSҽs1(K+T-E qcjp|R@~)zݥURq@J^5ܪ2OՏU!Y}UǵLm}+\B3! XU'R?A)dxEWC,[(]lcؒ.keyB˩ Uhk8کco\6=+`!.8)BٴbF$ArK&&Iy8֤Mr5Fӭup6.x4`M͛T~#AWCPaRP@ 16 1pF7%0c &j.h#< _8C92+d&Z!.L7Xre)ye>sLGo6Lș)d648'Ȁ7pY 3)H%CY͊RF_ёiS)kZϜ4ERKԩVtKllձK,Hɾ4e\Fplԡ 2huH J ܳΎ#=mW;ƪAo{>Ŭn 7ͷzdj|K7x J@x  jsw5_N".qPM8;5,{"'Q;-yp(ռ77w-2S$T\ړ3Fb@i h. [R뾝AYWHַo}a{^㴯mۃ?{.վK]PCy F!%6짺^y;Xpi=~)MH_V ޢo~?s!<?ٖ֟t  &֑yX_\k}_noϟ~7uQ&`}Z}.{B9uzonrϧ~= xv4сu 8Ww`Pt&#aV1X{FQ-`]׃ܗ7fPʁMd&׀sFW'E̲~~FaA4(M{g{N6xe>%[&suxyh|7iȀ&iewp YP=\ !d o  2bwKifeh(hҶgmHz芰(H ~bHvȨ7wm; *nP o*` %U@\@ p aHyh"1VbЎ؆Dȏu,i iIh;YlNCIEI$uVg8Pu}.  00nd uذ ȅ"Q>ps`uI/`CBiF(U؉Sy UyY]a9eyiؖq9{YxO 9̨}O.~]wUJMNOQSٺEN۸dٸ)ܝn/FO=bvxCQ l>3Lc.;g ̉>َpr^Ǖ.ߗo6 NOYپy3=.51 p QBIM1la.>kz uDѷ^$9t̀b`▲>ΉNn/`SqǾkWkA~p+!ƞH բ+̾fN}UZ0"_4 >{` P?> Go =^(1_E8:C#Ҁ0 Z3PG>NOP81^붎7[b>a?eB)0  .p p-~N.vHZ=:`9CpOokܜboB  )` )/NE>sf~o 0n9c!01}ԵOn_aA4qDPB 8`$ 8x+RC=~RH1LP:B-%;bD.h Q4ME[@DRnM0έ`VVZO\e̙5ĩOBEzc)SPVUUwKY-_GH4іqڹ_GnZaĉ*Fu0ōIc>j5C[$67Q^q޾Nzmߎ UjӃ ;bλj* 33+O&ڣƒޓ&PPhCDA O -1DŽk(J=nL?B?|-E 4;5z`4:$RG/-!8#nIt(ʄԲ/G"TyĄT56NEҠ2OEeԫ=sġJIB uF7ӒDJQNBj O_uQP!5IZW_9 ?TSOD5UU[8C_ָ`X%=UKu6ZoaE GڽlS]/W[hõprE=:E]^yfzbXbI55\OLn^ p܄w}^߈oXG-F +IWݐohA <epdY'eZlq;sY^+I_7f9Oti ~hh+[)Ժ'Us(q&Fn/]mc.QnEWook:4Lm³3=!_c=jj{)8 Kgm`}p_5vfcu}Q>xb3'^ DZ'毀9q@|1}T%Q1X @)0G%,N^<ج:ЅndHAІ7$_"6ʡ@>5Q/DDCK\=E-rK^БW5O)hƅ3gZ8F8ʑZ azTB14R De9BS GFBC(CYO5e4i O:);eJS+[ٞ82jƽuW?eHz_*O#)d&-/p=5A?EUu6l6Rfzsbn4MhAad ٫yWq!w9߯^eAmP_-]|V=tp8hHE:RԤ'EiJ?'ԥ/iLe:SԦ7)N% ԧ?jP SXfCEjR*uOjT[4#tjVUtի]@X լg=ԺVJou:WUw]W`p'[EVձM+[ Wղt+^ Җִ@mjU;ֵֶ-lX,lY%K5 ,.#ZEn+\9VWm 춲]o9 XR 8v;k׼@z՛׽%@|K׾M@~_׿ @#@`gp!k"4=y׻w}w>bGcx}]zafx[ eLN7ow,޿ }GLduU0z7 1~GNq`?Xm0;f5xs|,-w3>231Y(Uf d -`Ɏx)Ke*^+Df*:kfshԾt'Mi-.Ece/{vSmi#Ŗ^rm k8l-R7čF|dV_+uYK9޶Fyk{Yƞ8;;3\ns'2ؾqm荿y#-r;w1v٭_1^ޅu,q~[{-9}cxU+OC[^Ӌcqc>49syLvOnl'빮 :<&9_|@<8np_|y3vwc]pO;vÝŗ.xN޳.8^p<˱sioIC8_]ſ 㱬fW1s8^|^v:j?:'oW}w/&~[Ͼ6 ;c;?F>|s;6s+[ 0Qkp? б&0/`zwhhTw`f뫀d-H X^Ȁ^{?> Akl<3\L7AA "<K 4csz;I:ѳ@ l?@9*TK!xIhx;Hb(Oh/_Pxph;A0Xe`! ;--8$>DPERtST\V,WEZE]_`b<KelF5?B3?k/EIxA@H6X6HZee @t$#8l/$6`E6h_t|KPriplJ=]}PP  PPUPQ%Qex,yl=0@|@dHFHFPC /FrHČl/&`Dk0 /-_ȯId. PN6 pt-\Y %(z!PTTmjPR9`_h/0H`l0Fh >p,\%TITKTMTOUQ%US,TUU&`UWUZUU]U_uH ֈ#VceduR+čR*})/0F0ՅSPSeU~i`#7-8y*/`Lwh0AiX~eHXDQj-+!x!PX kPVO!H!PY&}p^կ_51ՂNpWdU0eU NE+YٜٚYٟڢ=ڤ]hڧZZ;ZTZZ-8ֿ'4 |EFHpp!ZCZazXNtS|N8RP@\ 6/;\ͥEz d]2Kz,@ 0-0Ma`[aȹ3N X6F[8c c;c=(U?dBCn/D&E/udHd"%N>9HXXeɵ\Wb,Ϗeg؃;S]$f]Tf{ͨm]@iFHתf`f;/C *:P}UY%Y_UD!*wzE` F,ݯ;$!o&<3fd&h!0hV+^ۆ~hk艶Yhhi6tNiGNZfi@7D@zk3<-[Хteb6$%N&6sջp p]I_42$>S2`3czش޷z'x yPB 胀}،;&"jól S>n6l{"vlWy}akH|83-NCDK=l\B+EYO#Dc8 +^޾͋oz#kp؇zԸ& gN7^j)Dnp/p qo4}o:='"q.n G6rMgf  gcr(rl Lq::V>T#r+s>cqSS6@ 0+_ro qOo n/CnHp;p#3q% hq3>yns7_ tdt;Fثu.grr^p(gOtt2o{H؆õ9u`nh\Uq߬3&GoVw0#n5cnpZ}hpJ/1BtL/;H=V`t/;*RXivM4cV?j UXJ!?z=jچ؇RιXؿ`Vy_Q8=Qؔ1 {ر{|/}'t+ME[6C- [/Hxp~o9;s7ߺO ϳ_ks69!V!7P(M90䨅;hz2 9_vtwwxyzz=':%UIJqEq Wv\y@UƇ'{^\{#N/ZĶ !Ib  LÆ I&F Hj 03"0 C hK< 3;3azZf7a(ѡ#"MB*u*U08`uUkk*9vc6LaɔY3BZ wP  yӪƼ(@`|qIN`}ӎd3N`h)_K֭_o_ȝ{o~oeMB nА!D15cL+qdLPys˖3T^=kSu# ^o( FLD(0/` Q^J$(+$0O̰295 qAQE-bR0Sg} WD| x/8$3)T$@c- 40 Ohq"*ؔ6[mP'pAT#:L34 ̵u-0- #0zK'2(;vH@3+qS7% TYgyno-QO/ᗥ46v2L2ɦ *!,^JQG_HuͱC  $=&e$C3 Jzx&bER,@ u5B$CCRJ2x$v0$`F86yඑ|H5 D>86 'Luֲ&]p.Et@b 4n1$!&_1 ׆BPdVLx`.Q4K@i?|C@PR&iJ(P#@,SyA 5$n1@\2n aOb) '7d%B2zFYqt.30UE)H#`*efW e#`TqD4<ɤ H^x0M##xkO}A15|F=ǞkΫ% nfEɄd6 +%\|yp0Rߣ݊>QyNXEnFa`WK o@a A ;җ3qK.;KY*P p5t'=?zsq<{Ծ2ele3ieDy"TjǺ6k`0- :0lJD_I RcuY''l ;lO}iy~M%qڙf6=W`:C%7+d^81% %7梆oS\}__6o]+G>Vk'Χ,z ?me>@/&ORսn\B8OF v]6٫n Z-uV/=.[>bo;t]qGy\w{^z!G.&z|;}鏟6cozL,Y}"|S9vE_l اOֻDur{J$޺؜@+|AQHJԙ34{ umZ5T(to\L!&_H{p`❚Y1yCھlhP` ,x\ ;$G_2=A28 48ԃB=$4\ࢍ!l($BC0fQʼc |G=0ee3O9-X# XTH8j,C=LC2עI JFH &%!B4 bĆ'xx`d_PI*6urƖ % ؈^s86@'Lj%wHbȹF+BX z#T#|F%(x H;E#`H3 &#Ė4C3EN9I;jBu$D+Х]JJ^V'@`9}@x\(AN!@8LfۨlO'#hAe$%y_Q$F8QI_, h~,KZ OHx edڠ %pd6gF0XC v (A $0 $D %p[{f{J+6 IHl#"(hC iI(%_Fl h@8 "#0X@&Tff&ăM2ć0&#pФc !$l":SfCepvyϹ$-!]Usրi(II@@ͅ]A|4b>h02̣v<\Fԥd| QʩGV}n~,,L ,l6܂( (h06~}%z`-B_pA"lCh)pp:aZ^;0BOтHGp.j 'ihB&Aڌ7qR|CPi)TDpRku)L EO0g`;e$FG2g2MA5< IV\Ȗ΃L @#FVdX H\@"Q&*}A H)( $ܩ+*$w(FVXGsl%Dwz @&>\ky^ $ʙ'#Vnf! LPk#Gkh*$Xަ2Ď\c` T5I<(D3PƮ="Fӆ*,WlH<l˲p<̂x5^,CܭvIў^{*S,giohm ɞ!LB³m+8n✥{`}c!ģ;hҌxJDO֐h!# < zL@g̫j%9]Ax&hB D"“YBƑnuJʃ]`kb=uO*'6||EL1~\]\Π $B:-C dQAC( M˧Jѯ,"*؄B-I=O Z- LH)te2s9W %B@$ aSrM\$ =ݓz+|4󻴂y&Bl#*bb! ^5-0UdLa0/&V8R!G"ŋb7&#Ova0Nʙ6a YIepm t'PGetSWkXDbjD}vݻy &@DIcA+O E 1 9$Tcm[xa t-1nm`D?d!`rh:@9iA$<=b= D>e -sKAЮf0$;=%ې?@ +Ak^co 74"@)`!qK!4Q#_%fr9)-2D,+.[`4EM +9O+4A[n-PDg[f :`@ mRb1,-@&O| _@qN$^ 0U ǎ6| uK_P Q2de;i&k3YhzqUimD jm7RZ~`EҫGҦ6 x) xnn/תKcpjȊ>N?[. D`[ig-,Gt X= `״v819ʄҗI)UHf*L#p0X@-]N&` 0B@45yE8Hӎ EaanC!)@mcX` 0#\\3LiIF&"l+\ K0CE"@#L%v(@-=_ tx j&|*N?i+vp- )HTc(GnJ0DKԡK!ڸ8?fkM)i_3W R35,e0* !l㬥( EdE.(ȶEk"l"FLV V %zEZA2iSDʲ1`f2І 8x++W fu8^XrXzL6UD,VL@Vbٛ& "ҐhZ(3EPؕ ( 7Sbi=ׅ&{2fXhDvc@!@5XqWIސ  Q FIJ\Izb1!Hu!9X\i`/ඛm6q ͏X Ϻ,]vtf3aY@i0AM6nv'2eӳY @_ 榁fFfbRtE+iV$˂pH3˸` pl3%]3?9Έf B` f ,=XAoÑ 9hۜ2:pc%zidZӤ-i6!\;L} ڀ0'w؄]l3\! u2Yg~<{zkFQ. Q-xI^zY1TݜEy^@+91OnozyJ}z^=e7Ct ]яnwj&ķc4n >l`x_x0W|лw'=2/ͻergOߞ?WSoԷ䵄uW_CKү}o|_#?BpwV/ 0B@Nʯ4t 0%p)-+9=p/ >pI!J0G 4P20 Nm3`0byhpi.Ѓ[|O )P0P0 P * 2  p p0 p3̰Ѱ ' ێy002p";[ )qP˯!)(.%-3q6 G3>CqJQV3NSZg2^qcq: sq01q1q1q1qQak1űqȱ11Q q;r  2!A !t!%r""-"'"1r#93^ #;r$IC J%]40@ dR#_&;dR &y'%Ġ|r()@ (_@ Dr)%W ***2+hA+2,R,,,-ok-ٲ---j..oFr/O`0+`0 07 1ԧ䢨s"(22/s4S3G3;3@34EH/QB200+0S1ևf $(*2163=sD834M353\X5_6es6/KCkGi7y738'`88G4Os939]6/`:3{6mo%)z3~8S<ɳ<3=2֓= S:e3>i>y>';??4C9@:T1vT7w'B+s??-441TCatB85 0:D=O>1Kt;O;StB)3[4_4Ft4f<Ba @G1;MTA'D$J"?/s0sE=S HtIٔ3CC ` sG4Ŷ4;S%DJ@L43t`ԴMu35a s`6`tN;j`ia:-@("#JDBUIo#;"F?g`43;f6Pa*,I|a>`&AJ]d !|! .`s9w8?tUtYIsFaQrtv@f vfZ厈b.`"/¡Vq Bh*f@|wgvti@J6W1!Mf#?SES87|;xIɗ`sJ63d\SHHgo_stkC{LxOv``VUL?gx39C:wa6g넃X4H78g؆XCE7y:؍GKӋ؎7x@S]}hvٰb Cu4v lN^L9=Y>_haגkZCpn<x}}m@` P瘎SَYXxgY5Z+ǧM`*/&|nmڀ9X3ٙSsC%=Fz:x%P/`2\à!@q9#y6UhKDhOgH8/N(!/`8"Zc!ُ8=ξK `Ri B7@$+p*l-U|Z]*z}} '¥ҭYgj +~4\!* <?x~*z }ֽ |]u}ݓA :t `FLXd7rg ^͠ }Ņy]6a|fWv}}v^nA,lɖ<:>>]뽾 >x [*$DfI޵:JDT" | vs^/ ߸ م< >[?\U\]y=ʡa@?_{?i׸QOvZͯ D)=zXȰÇ#JHŋ3jȱǏ CI$R K0cV9͛r炟@(JѣF (]ӧPHJXB.[&xP0~Kݻx˷/+WlS&͚7mٓgPD##=ʔ)Njּ"~X룬Yj|+~c˞M۸!r0#ƹ8gcǏF:9i奘1oybnÒ.{6@իDJӫ_Ϟ/ˏϿ?9(`h ,ۂ r܃.AQIvܡ][77ވ$h≹EÊ,0(#438"-Rh@ix 7PF)9aXf\vɥ:Fx)dbIDRAUqJ*IB @P|\PP?j` ]GYJ矔Vj|J5m膍PFʍ"꫰֦i{@CB&*jF5gBFMj&ͺ2&B+x냱̆+:"X駹Va"-v+UEKuuJʉvƽr\Wly6@ g`A0@&+.]0mz.%;GޫH'̵QdpxҋCˑJ-LvHW@Mԡ ;,*c I9|\vlRR6fwr wߠwߔW>}i\8"m'M7v+!嬷+{qjGvk ?|:#(ao|G@k] <&A{?]ʨq~;ԫF֦g_7vqU)D(]^g;OC=٭ {zGX(D|V g@̡C 8$A XXdWoe񏂒M#Zp?r"3Gwl2Uv"'Ә-J&TJyJRl+_ Y1e)0D_nfQOa=I6^aړi$'Il>a7Wq14'ө$%POz0!3tSb09U"zʉ,GQY G=".pc% (>" 6 L:;MD84( CIIT2UR:>5^!; lc!. 2P[zk{^@(O{.b^H481:=T7G4ֱY9PF* ̾aT0 r8X5qö,8,ú)?oTk!֕) $Ԧ L+*\ v=lr܌,c}YB ! w;xP@uG2a dP@$@ԫ^%ǶGQi4y Lu-N / $ 0`" `0%0+G豂VbQjT6^/5`8 V}@+bq\a}p+(W %  A 07?[(-1T)AISk~ ׿`C( "H`Ejp ` skH a C`BP[Lp7Lb`/!{mp7( P;X0NzN] <" 7:_#*(K`M*xÊ. pH8Bbh ouJ@<0uJȈX+g/&l@B%b@(v#nav@4o|  P 34C`c0F ||9#.qQ|"]AC 2qR:u)Ї !*0 &T 8\ &zIa T ]Oe' D@%}0z oPjopjd u@VzGk ?ukh{v2~`IIVZt9BkVg }Pff00PS}`&~~m~ ΐ 7! K7qEi qFRT*@ bY5z>jf @   c u@ 7 `B$u!$ 4_lUS=u:C! [ J vPvR}Ccww~~ +0 F Fw}]oqupp 6}@ !% `f Yp 1 `p!@ ޠ$iHo!)΄l5Q 5 $) S|E OPk`  /P` F0P 0Ř`m `@Y،[+v0 |7 C @\؍޸7%0Xq Gi6&9= 2$+%O(vI0)9UU Ok`m<kp 7:[ GP 050F`gz  'hZ9X\ٕd#!&jPdIhyR*1R.RPMWltEMvuW̑Wz|[` XITכ4_ h)(]4O]Sy ڝmiZ!6SжPxP ~W%\INd4_\&9Xya&U(%-ҙAriymTT dJ j`M `yT9,ڢ1c1ʟI5*tO:9.E!@ZBxG@eڤ58W;_YVʞXN`^ Ga*~hfzk=!? /G @b@{qs48UP虨f_Q$ZEQ%\Õjxʩ3i @\pY"&Z$bPGZbb u` A@ pRp5 MEuSSccnN 032κ\JFZZ1ܰfh7V@ p  6;`$D\ s,  PO!x lAA  pkށkU P@]ְjc fL ` [3PT F()/D .˭:y@np*uu* bp&Gb'\G d 0*b 0 `+AppPr[Pu  1 u*`pPB]B0 |uG1V F{J`g m 0 ` ӈ;/ //+Y- Vp v VpD b&5k mY.`Y bUV9Yb08&@ mp+[c"0 P4_ lOPְB0W793P vLF Co3 +!J/-|1 C&X=Û Ĺ@ ub DK{rb)n\@b@ dM x^dܶ@m Чn!ciБ! { P Pu=A3I ` c`` vG9 [mfGgvp[^9bj w^qmb=*TH o^Nʀ{0 1 조l uekZm=>L!Es Vqq\mؘ^Q 3 ` Ҁ}*.YRK ?1!̚ZF͝ų.qi7* ^D-l`/X`qSZ4ְS {!*#ڬht >MoՑosئ$ ģRء>d?/ ;[zNɪ:E=ǟ1{*XQǏ,*tС%Rĉ5HG!E$YdKp`˗dʼP9%ܹOA ZQ.ԩQ PժUYn 'Ŏ%[Yiծe[eq1Q׮.] Q&Mo$† w\Ų&lƇEcE5RM`eK0cά`fND)O>H8c8I.XM?sCٮIFUŵ$HIYH re)cÆ:0<>a%T2~Ehk:W{tW)&7E :en=gEfQ^晢b.C =e3/ ALLs\@itu)]_Ty:`vC#+uPAѰt [z d<.d|X$c* !fEP 7k@ k'Ӂ Q a8fPL`2tSQ{GHjLx :PǨ;/( 8WB,p4,-.+H#MOic@CTk=-(愊y-1P~kE1P\5c!<`*v xNt,~Ԑ `0bx q u' w`q<;D3C- CDKrkH.$d {9'dU|2'} Mi"e8( p zԧ\CF 2 TP Lz;j,9GGS!t7 E =q|3%N·>4^W@w=&lI'܄ kX;%1H|qhx>}#kID|w![tk???l@?9{>@Hs@`@#5@ .H@|Ac'[\? 1/tA֓A@b><7,S3AB'l A3$P'B؋?B\A+B$B.B5t(B1<",C;'l5CokC7俆C2<-B;CB44 7|C?B DA,DIDz؂DT0ܼSzI EoK0LDDOEQ|EC#EE?UT4hEWE^|2Y ;E[.]Ed_`D+FSALFjedf#5FiFoܭk 3#iFttpǺ(GsLGxDuFw|xG=YG{G| }~, H`A4HTȅlH }ȈHuȋHkȎH_\Bd<ǒ\Id4|EdI\jɚɶX(I JIJF ˰K=1yEK(\@ĀUytLp[QL̿[I>LM4ٔLi[ڴ͟LQ= N$8(K NN/LNN϶ODǯIld\£0 ^'41' PX$'e ePQ\[ PPP QQ-Q=QP[Pe@ ф+N1PQo4P RywP!=RpR$]RQR&}ҍqR(ROR*R,RR.RR0S2=S0S4]Sp ŀdS:RS="`YS@TC(5==5"eTH9TJTKTLTM2 /U`Y(MMUr@ `Z`P=rHUKP-UVYZcVe]CeVRe`VY-cl@f`V@V}UViVk5VlVb@/@UoS q%WZct%/w]gWzr5W}~%2(b(Ձ%gW{WZ׆u؇%W/EhXׄsWuׇ-rY+E*=YVXؘ̀2)Er5كXؖXnE%E;hզ؝רYڪ%@]n/`ڜYمE׎}Ye][IhU[MYbY-[N Rvp۷ \V-ܺe٩uYWm\vܷڧWEܠ ڴ5*Y˕~U]Z׵P=]%ݧ\5ZuM^pޝOܦuz5|EHtMWjP]ɝWTXE_w5qW^O*Ex(nD`_[V1VVX}OkEVG`qwAaF]V>g`EGY@:[}>OT0ݜ]pHEhaSU18@Z1E]Yv`Xia]bGpbb*b,_b/fbTUD0|cZb6Ncp%8S`:F%F `Tc>W7~c8>_#V8`]  TjZ=?L; bb{aaWN"^Y]Z{e_]UXedGAcڵecVde8ZfMdhe[e=X=JXdMfb.fr` Yuxofxggc6{-(h~gZg WnvL&(LbifVngLIh@pXzԏN"bԋ[qiۖL>}Wڬ( i&F难/`nص苞^귭ƦA&}ٷZNn.k^w`vkaiw.k>k`/Sk@fjI@&O"=0n UItQGknMP~Oh>0g`jI`j0zhmu'`Tᦆ m^nnn~;PK.PKZE"OEBPS/img/mon_connectionsmbean.gifllGIF89a_!9)9!!119999)R1kRZcs{s9!c!){11k1Bs1J{BB)!R!)s{k9!cBkZ{RcR)kZ9BJJRRRZZZBcs{ZRskBcccs{s)91)1JRZc{c{k!B1Z9c)c)sBBRsc)c!s9k9sBkRsckc{B{!!)111)sBBRRRRBkRRZckkckks11RZBZZck{ckcs{!)9!RRR)J!k{Zs{k1cRkckJ{J9JRR!scs){!!9JJR{ckƌƔ΄1ބ9ޔ!Υ1ޭ)199sc{R֔ޔΥތέޭƽdνέֵz!,_o H*\ȰÇ#JHŋ3jȱǏ CI,N0ɲ˗0cʜI͛8sDRϟ@ JѣH\ӧPJJĥjʵׯ`ÊKٳhӪ]˶۷pʝKݻxW\ LÈ+^̸ǐ#KL˘3k̹ϠC/ӨS^ͺװc˞MX,R k#|jo'νK*s-Ͼ}rwȿpROZ<7 BpO gF.&q|`r_``BȠaj!az"n[w!2؀+*6_.Xhz@ؙX؁rj݅"yPX"ORan!zXʆ"eIY.ȞA/9ݹuܟ! :(Qvwch`)igIixv)ƕZ!@H,8eQʠ\vW:舸Yca~hwɺ<+mƦ j=f;+&WkFh~b+nҫyoom>" V導!`jqZxv뺱jఀV%wY.#+rl*hpatq-2Tڵr/;z$ŇfL".‹הgӡtKt"}66/bDu +5R1;Z&oąL;Xܱ1CnsW߃+b+砊ѭ!OMq)n5Wh\od+]b^''}~ 5au碄I$ 3.\kȝO,&O+Ckr7sdؖN0s0]k8oyz4|a$Uȭ .3@M38&8,?_L.S̉#¾-&+o@IR*ںc%^e"_WHm۲_&Yc.jIy>wd,! \x:oR^% B\yH4ԬzM\fӎ̛4=/n]@0݄s1\WIlO]`O>kGWqٹ nuv9Uz^~2cz{ ^n;-ɤ{jd)^`|x[E]~A~BP1W5B0Ѐj<Xf8$d(**XY%0;D[62:A<@BXFx~HL؄OoNRD8VxXX\hmK `b8dXfxhjl؆npr8tXvxxz|؇~8i}q؈8X؉8x؊x8Xx؋ˆ8xȘʸX8xؘڸh8uY is]uH8XȎeo\ȏqPyYy I9YɎ%Y")9 29ّ'i-8=AB:IAȔ;;*9$IVyXEyJٕ,a9ɔHɕ(0IaٔKِC)K 7vyxiؗ*ɒ'<J p9)-铁yY9{yrɗO9`9+9k9ٗ Cɓ ] jI)6I?YlɏII TY̙ɖPI99չ9d)ٜY˸$ꙔFYَ^ Yn \ɗiƘ`1Zz(^Aڠ Zzڡ ":&z(%x p `Ȣ4 +Z0*>71:BzH Dʣvz!kiԈ帐KMj!P:IY9؈pꦽpjgJr ʥ]j_ڣ)d޹v*ٝbzjJڧjڛmIUi)i:Y qɞsʦ zygiəɘ٘hQaJꛛJ U ٚۺٺK &Y~F9Zٮ*E9YJj:ِjZ犔˫G)koG ^[A[ +ٞIzZڰrYz鬨ګ0%; : . zD+1x|``zpg0h;tAɴ/Es˳+[=y={*iJK {{n ;8۟)˙˷ +*]b`! `[TpRkgc ^0lK[۶r{t[Fɷʐgʝk+UI k˻əy'PP`_P `!pU$0ca+$כPJP;z {+ ۟Cpq P[[T {2AwqeZʺj:IK-  ?Il=,I9ĿņZQ|mq! ps@@6dk!02 mv{ :Aw |7:<6 "=>Pn ,Ү& }ә@>.P ;?j I46P݌l7`sPpբG.Ǿ,N]Q}֏P P ^mk)]xKыVyzu]fz\\׌m9ؔv ɏ͞V{}6:ը - ǧM٪9̟~Kɫ]]iڲܝ=vk-ͳ{yBܳ]ȝzYٝ-j3߽Z-da $$데-yķ[}a!^z ^: -᫘.zM{F\*ߣΟ`9ܣhJLNPR>T^V~X+FYد p洀 k%%%3=]緖f{^t~u}+\+^n`έ[QhN ln3痾p{~z.ӡ鞞~+ x N؉>:hޞM滀 g>.NÎqN.^ꤞ+ x꽰ԲNڮ~  ^@ m>z~nNN מۮ` p^ . Nx:= `_`Nxp ` 01Ⱦv~6ok8"eu %~} `QXZ(®@"0 Oؿ ToVN`ocOnJO✊2?_h=PoIЊ[/MmY/O_FsoS~ y??xOՔ/ G?՟w׿/`::wK@ JիT/^>QD-^t†=~F%MDRJ-+`qˏ,TN=}ӕW^=:thSnڕV^J]V B@iBqVuJ\V\u”Yf-A`…/ UX1٧Q&Y$olyr\7Y4X&[2K[ԘZ"[#nnز (ޙ,3G7‡]̵AK): '0"Zd]2Ȓ^e]zѥD])BW<Tѩ  3* rqGzQG3"t^ptjsV[*mCP!$k[+|r)/čڒE7lB0!d\h[p/$T]xQSLQG0^bjQ6%FM35H =mHՔ-U,L5VkL3|VfŵKV=jP_=IΕ僇u(O>4Ziք^j6n[kv[o (u J̻^?'?(ԍBOr;qvG) .PD#+9JLT !3yHN=$(ɈJZJ2&ũe.asug&HQ)ibS/9M}ՑeOMnvӛg89NrӜDg:չNvS%l^B>Pєc4O~ӟh@:PԠEhBP6ԡ@x^ĄA!t#ў-RQԤ'EiJURԥ(J*jGvHdţWGB*ըGEjRTJY%hPuK_kX:V65qb,.d˺*VClq\z;]]x׻k0! uFeElbX6*ge^1Udqi|ٔ- h px*XֵֶB![Vjħe֯/,DY 7w ě~&/Tmt;]6v"-E ؕȭfFδqk^-^ ׾JKS+wpg\&д]n ݈n0 o#bp_dw"UDsv-|\կvn1̕Yr%*VslIo3K7Ns?,;+:yV,hJyF!={Z6'?4k%3KԋjNCuP/39ΙsitcYȧs=JQ>]VLOzfvm)YmD_5˝X<ͭ6}m:{{ވ=w);fZ"'fnU7vmK/A=wEG&[ l(fۊ5dno S׋[7yINtUC7N⓼\"j(˱9z!5in6fYD7u\+վv S]"Vg[[A&qza|׍ys  X7ָ+RgG;v ul,,l;XͲz^_z%<`{&ϩΣzqznDܳf}~wAގ׸{WO^0 dQ C0w wF!p>]);?c#R2 kBпB?{ t @^jYᚕ@Aҙ ~) lڰ>U= ‰^,A A|A٠4Xs*\k>B@0 AD?\F$H$AGC dDD5y 4 R+1ETAI[D/QE2i9A% Z <Þ>ħӐ3DH AeD3gDf CH\FuD9æqAёIVNlE9FYFoA=>EF'c<t~\dttE$CKLFkE5,GWETFp\AAqGސȅTY)o%Ez {$|(/Gfɀ Gf̵kI$DŽQHo EqIĕ;R.)?+*E/S.P.t?TLF,rCiT1È :N\KSO[ӝhS:,[@z@0+$<|Q)RInc6#&?kګ[[0cd>d=n }%ff Mվ#sC@@Q9ecr1kߗ-SEZ\\4viTaf8)2ዖh]iLEjY9jy\dlahչR vOa jFZϬݚfiʝ۞ivKWIqk^NԤNi=&'> ]GŖ馾j^ni2ܑՍFl=k~ڷDe ƅ$u UM3aMW^~E(|SWQm϶ݏn# Ue&Bjt׻i]>K$oFoBVY5uCNVO}B]ܛ-\ApJnv<'=>le]Y%ۙVR*pdwvN"M%u~ZODp -vf\qťpYu'>q@>P*f 3q dn-4֐me. X6)k+,W: e>Rnh.smQnM+Gn_/.&=6@C&`1ltnϾtS=OBg֯NdFO(>#=̈́m>DgSi&i]79LJY?vQTU^Ru#uv Ac^n> ibM`jOrcdy5M]Zw&i*2P`b{|dȌ[+}^ʡ]mzME礵g|~%}Fx:`6/˺e]~&_vk]|jlX, BCz ׅB l0zhvjÈ!XD1rǏG,i$ʔvd-nJ&Μ:'РB-*čI7hQF$zLJuŎN^TSKJ,٭]~!ױj3R} q)v8qB/I5B`9j*Z^!W R#)͝wj.m4j͜;m-i_Y)nWE$.Yl75 aȐ 2j.!\r}bYs4~捪C)[yEvY]fem! ) rZR_h.$hB ox18C |}v_~Y pd@%iMY\S]\fWlUY%]]z)eya9nYYfR Efauj֕E$? QKgg^/yg_hU4`IjגzzTt}:*>Iԝf*C6ޣ>iqTt7b1vZM.ˣ\8{3؋~I޽eTwcfn&Ae-.^ $S+*]|qcW}CPjxZc2L+مt ]P( $OLC;a/pHNVAAEsbt F[b–J,@KHK-p=09ǑQ#sgD&{X]-4> I|!C,6c/>H6f4X6ڱ!'w < "MD,eDVz8HEbNwy~aUMKx' D? Mi%5Fv$%+gioƲ$,NP1%K]*q}k~iOD5S%̓wFX06IsSण(:JZ次9Ob '>2ruZ\#I~݅-hanC)чN4'9yР]GAb-Lc?SO<.-a/HӚv^}N*Ԍ 8'NƮS*\*׹ҵv+^׽'YJGU/;,b9IT<}cSYʠ<%*%VrqmET9u*JjumjZ1liV> 0ۄyn}n;R'Q-sM['EX릤PѬs#ovEE"1N`̟D!}t}'>%Rn&mW-^d*\U&W3Fi ^kFch(s5 ,c +d+q IN]7B>.~9&K{0<('W,D%⒐[[q󦘏ɘ@f5GlncsJ, `|"_!<3@;.Xg{rԷetYZϋ*YgTCd mfcE eAEu ޤ?FKicywԢGh ~<>ωmTn3}!mcbwg6y\^M<$օ|78y݁^I`,I [˾@ʳ΢̱ F"NUzmB˶L691<皐s?Exωuc)`kd Y21x(ؓI cãMݏFR_\22tD jCĔ#Y/s~LN`,s|79ҲfC^z3j蕍,d jv+3;̮҆,X JT$l5y!NPn ~wa܊KŘ#K@طu%] =YAٚ:9r:4r4NTcEA@f\AMZZM!MCO-|%4:"ĥǜ"uAL9# ͆+\-r,^>2G̣ՂP[dKLK"A ŗ1XAѽ-\pcdhWE~#%51!鏲"ST J_v^\{qXREmդ3 [֜[9   E]]L^jMX7 c7r"sfǮb] ܥەIt ΅TeBAޞV^fQP&?f l1'! ab^Yidq.R)IxyLMQޥ{ `" `?~ F(U]`ef%Uv-- wz((ꕅɔ!(" 6h>(Ri'͐U n ҔhYs9ab`^+^⑖?!$b鐲 VMs᨜&vi(ńxryyj|Z院dh{g7c.x꺉1jddz5#py a)iR}Ip0D8.a!`2aX2ꪇ"z "⥫2A$pBi媛ąL&#)YJ܁d#ׅz 0UoJk}bZ fͬna Rӄ\v=}!EbD⢼P^l&U5k@j6&Xg,+!W erF21DKcfj&ؐ0je_6)crԢX*즎eYY.(,( U-A_FaF|qRX21Cz]mVl .B!"hrmwn[&^.UR+Ygpf֑&b=o^M|B!!ā!·LX+ܝ6*(d~vnjh,t!@#AA!, /Yb*jJ.l^,.v BAJgn*//m/|!0PiB!AB(Db }]u|5*};uY)"Cҧ L. -i7N혴EP;tɩsY [iGĦOW4I}$}jz Kh=zCȥk6Q>E4OSn٘d~Q2gK+]~b3oo& up^Ёq - %gu_.2!BmZ@k}jyvtry˺v.[j8{~m'6b[cgP&mN@Pk`/ <`‚谠A1fԸcGAfdI'QTeˍN 75f΋vJ W-Fh ^&:*iSV^ͺiՋ]-FmZ+ӭX.*)[-G5W><0agTXqĊ N(ac/Wsg#= @#iMg{2u"cYuL>ν˧ECi=Tڰ^&hxYT^}6mre9uͻFOX#e5_t?}fï%W\"]+4l/& G_X1AM gD%WLR7TK^urD/޿Vx/ W! DL<50~l b#v-u˟ Mh UKidiEKM%;lãM? [}W }"d<_%EqczR9lUiyXuˁ5l <{19wv> ZbBÀ^z3ndАٌ[=&LPK.nmn; _ZÕj--&Y]n?AÑX\ruJ zR54G:ny 8,5iUy{Zӿ|1 %3N_mwo$~̠qˇ%c5Rqŷy7ꎃ!uw >?x} |0ψqG)L\;ooY }`rŸ9}p⎶:ڜFd~:k0R/Bx4ـ`vw̨~w;HxK_6JGJ޽Qy) +^k*=XGUjڞ[d&aMnzPbMI7P쿪7OEzx5pss}ɏo%?+t]UBPdlO*њ oϵ* fr/:\l B:p,iHp_jBFW5 0nU f}`kL6ʫ4p( KnG,lR,">m¸ K_𼈰{t~KXȯ{s=JȬG j, âC$9Q^$9 F K . LaO]0#\Q0Fe0QESv'կ&"/ $F~B֥ ¦PpG0h0K1Qkpt1xQMǖ$:gȊ&j 1ʰ1Ƴij Libg$!i9L"j!ï R#@{1FRFM#-%]%a2&er&i&"9"Orjq' (A 'M'R82XϴCD)()(Ē殌)6r+L*c*ôr,C14ֲحJF,ВTR''p~&L:Bd0q[Jo1=е(.".3j.M'ؚ#D0 #loxЈ--1!6ٮ4p?A43M1Q@/ti@2+11O"c1$:WN3RVLPz | ׂqX*or|-=7k&!,0NJX->lhR$tCo2a'~C+&uvMƀ؆M  rN_Hs nFW-tt531I?Bˌ}t G dЬ@hDnj Z ED 7C1 YQg : @yF2Nw@4GOOUD4 ɌP!H}RwU(?~EOq#ƻlMSBL%T .AW"1B0pMS̈́~2^$ PM^ѳl+Xu?K5iJ TMTt%T8_6R(*`kc`%%OQW*Z4U*b52VcٱK}3^hgCUzTH@ofi ,N,=#LiZ'&j6kvk֑VVjӉjRlVVlspesl6n/momv4von-n+pop wVtq7͆.Rjq1w8v{834/7sEw(mVpsZhMBwteׅ6aS󓛦?V Q7xeTM*ecwv"Wq;vJVDZt6l#RuaG0w|_4yw}/zMҖ2pY7pLOQP[_Y+EjB}7}岚J7pE~+xIe{ ;K+^XM+Krn755{C _S"9ٖGQ7u{闼9uV83$yQGEE\xqa;u72;rT(8Sц yhCp =Zry؟wX_qCrM:#ڀyY u8-XksQZsxY Ѝ' FZ`1d7-eLa1PYUt-tvgY3i:LCZa?zYǒ-':9ڰz!;z+{i1599E;I6ҒOێSo$h`q;u{y};u׵_%{tF`W{{E¸[c;Hh!;seFp HU¿'+D{;;38l:  ڠ a۶  z!,S>sW6RTa$<% "8SwurxXxLA NӉ٩uw?O{eQoxp49zewSbzE&JosM_1?4S¥wX'j 5ޭ _KP~XWϺjl:e#X[w؍EeqZٺf?kWOcY]_7u*{qU7͘Cx? \ǿ?Pȹ}@L$X 6taB%V‡/2ȑ$K<^}k᱋G={>e)"CO?iۻ̽wkٷh0.~ H`_|e` T%NH%2_TiHWRzHb&dyY~d2%.K(RIW}a[Af^ph݉N> ea)"d-K0d.B .b}e&l&? J`[u\qKH(5 .n` ](ApLV @ J աU& Nnۦ6e)O}[h74Ɉ=yG==2V2׭TE^KrY '5eMM%(~([b9&,a1>i)\"4rZCF4$Yd1pc#V'y-͔/C!/xB& oKqzdJz΁₂&KȨhe0}2yf6Kbr'2WZ R`Ikg,Qj{=U,(vٚUr h3tafwٞE(2) R 4h IRXT>M)cLҘf2] LkSⅎ9*)Ӡt j)ig0BmM'F~Tju/4;RB'hJnuq*\A0h@ʞmmЊ-ɑl-[JJjIWV(NHj덆,[K1Ly4yݳTG͈M.m_\8x0 Mfb1OZw=p] ֵm$dmiO3^sT5uo5 ve e)q6 Cg۸'Gy˿ql 2N\2h˜JlhFۜ2ùosY\lN;ˑtsl*ur&nZ3AMaH 1[Z֮r5]oD˪|ri]jÞZ.8T5q,ڮ-vYk}Q4מu\8(]걐<+[0ӵE-d{fn Zq*n~k!r!.z*]v7rI`(KKN sL '0u3W# c7Z9‰1"` ٩Y )) B Y-*B{IpU~t-}Ws(זI䉠 ʠmȊi'5~a|}E Kw^RgdEuFaZ* *3J5ʆgoxGDnU5]"O)oE^f:w`"'qi-9/Vx TZ\2Wb*Oo}sprm#gsՕQj),X ` jj @p ꨏ *Jjʩ6a*JjqGsKcbPc~Kz<;~6%E٧3JjNJFT(Dڀ7Or3vڤ/ի  j犮骮ʮ *?:FESX74!b ]"*},P׀ǫnj3exџ/Q5e{::ޚi 2&nvqǴ, .11ֲ'( ֳWB;51 Q[.GAôM]-ۥOR{Ta{X[>hx6ʶm{x8k#aKcK3(xی؊q|[* v{*3(۸; .[X|iK  Mkk3):5 ̉+ۻSiV븹{ ;뺫9 +)渼:T>zVz+Kh!kߛ#+BEI+ۓv[rɗI7ҼUپ;Y훽l S{ R#DAO . ;@o!/#O%o')+-/1/3O5o7,R=?A/COEoGIKMOQ/SOUoWY[]_GRAeogikmoq/sOuowy{}/Oo/Ooh;PKt2llPKZE"OEBPS/img/mon_configactivedata.pngPNG  IHDR? pHYs+ IDATx\TU_mq!_+Lokj kۧ ƁlwۊR*L_0#SYJqܹ3sg1{ϹG=˰,  :]u  ik  =M?~wD! 1䧫Z ;L|q(.ܜ8g;[WyD;³3֟{ya|nr;ů9\`8jb/D NpqAbu✉ T޴l-;uׇ5cO7oz^t8U՜g\HnL(~+h<1Ė}+JբB;Yw|Aw I ~mE rpXV J/7^w80)jkrvn3R%b5_RZ霅Tq/|ylIބOf׉_oZ3q*7'Ι8'qS} 䈿~LTjDqbsWX "F8$w%S69W!;*T/L f+rl]eE]2]e '&cio:rp%#8.(&Ι>gߋmb˳/J}5J}nؾ|w_ 7#56Ў tތP{| }[H`X(=K^ tjC %^ ,Yi=vwsVmdUI΃xԧ$9{ ;B~`7MY&IG)3乌-{ZQ{埩n Ow{ڭuk>0mDnA3;§/h( E}abJ`Oϰ#*ܐ$?LXXlj S4^*·G\S~饗"+3O\, Y7'V2ï @ٕ:_?z CT9?Z4Uiۋ/ vD(P~3#m{Eݬ*7Qdvaĕ3v;+`+̳נrs*(S-_k3&Ek_||w՟Mݽ_5;e1u"I#qP'5 ';o8|C(U5`?bu>yy%0仾N Ѳ8FmO@jqS#9 &3:0IhklE9Ek%!/[Btsizs_y\XfF}=Væqnlp&FHJg}?M ]=X=zTc`G .\ O0\=`|0pBs[ '1p̂}Q\`Gw!?],W?;?L =Y9 MW}ht X~V3JEeW`5.0eh~C㐗d LU D_,!ګa/N]5O ĚslN~?# QdzB* `TufGtoj-8UQ;/NJ3YS_eL}8yoϖFʖ[fl(nci콚e}r0C,#hG\`8jE䷸N3S#,zKd-sYw̜cQƖo%F0Җ٧Iqz`ʋ e? oDWpu- xgχcIA MMXO{Ki(m+B!?= A3.7^s.YDS׏E9ء/OVd};p|dw;(xș{yb_d֮`а%M\J:]>0#`}@G}7zsƓ`?MZ2ɅO>5)UgdEیp2v ePt%i*xZy+XD  {|0 bG=eݸ2x{ y4W m?߀GN]TAD?)PMcQmOsSS = 5(f\~V{&lP Nex_#aD?~9}Nw\|կWKuq|ݜptgPkJwg0aXGn'fj؅3yjPbU􆭭 f?r+(Bpc/22KL[9'98#.94lLFtPi[Uof$&CĸQ@Ў2HTYH,[w/nZ>K 0@z+y _GN͏XK&!ަ Lcd@}ab{6maoNJP'AXh] Ds,UoKR|smf hjd8jf1.Jhk"n.Ƌ"r  ަzڮy~$fᎄZ3Ey9ͳSsGR7Iˮ.9\[eQ/yp)UhEG[i,ȳFs {!!ܹ`MBiDv`3|_Ԕ3:KǂoșP6KBA휪\+'a᜕Kܓv'7\(nAwAbkʑ#!FAQv5c^ncdL6vdQE1g&9uk>CS/78E7kM|O˻ h 혊\+ ,ZHHߢ#m+~hPOB.]cX+W&+I)18hEFYĽj@K.!731vDsK{sN̰-X5SR65p5zo`i#\xT卾!=zTΝt=:G#& ]”^n|+?=2 ¦J>K䛳G=rc^G?}c}~" {*c!χзãi M a36/*ȗ2ԥkA-  _@AA!>MW!  !  k:JўP偎OG ~jb]V  }" ޖ#'vFWzt~rs\嗵SFT6M$ hW8h /m |w۟w⦅ݚ)pO(IAфDS>`PG7Ϥ>ݣ>wa\k\sх(}7ֆ6Pf!?o[-fBN~'cT'I^Q!V,Q"`8G S6q cmaz~'u`, ~ޕb $PҹكQE=\ ~~A0 \HA4 's2<X^nA?fK ;XqtGGvݎEon&/119֬[45.;xa؀'bg"iO@w<< r02*!v]?#nʣ'G//+я=]aQMQ]VWgYu3Pwd5K{sNg z!q@H qhdT"yD@mhB==apA=P mFeF,s՟tӆ6mO?G<k ៎/mH<7-&!Q%HYFʠa鏞]ܟRD.3Ty$`B]8s*/SH"f~E[%\7[-x&ljgj)mQj >+Ǜ5)Қ#i4fm-0̢Fr{*!;"+|bz|x.x[A?݄'so-xaF(O)=> WD >*F XI`ŶLjQ&Ί؊" kF$%5PG}pQ_Ku^* a7_cε-ڢ:eDec񡣼nC5`+?cK]/+aJRSdzKOXdytH  ( k"Yg,?t EX{fk}{iٟ";b>v=7pBn/W$v'XK{om3n3V#tg~PLr!?=>9ڹ⭒Yۃ|PAD@A{/)ayXe77N8†;:'ճ 7 _;[ ƪq酚օ]顷qp)P;LHxӔy  ~B㏏/:p6YGuř,YV@7ejLj 5rr1"yLaj`0Ъ.jGABjĉ6u+#j^C/+(R̋W!(ޡ)j w(hUYJ,HQ\ܔ)OYڑ`rQ> j{d\nuLw;4 h>&|<SanOQG(*(ҕd@DP7^Bdh d%w35$ 0Թ}y@fNOG PT<*Re[eּ!Qm a2ݥ&;\ʛ/#@9 Y{/*vK EԐəw?])AAjx@dC"B/LHy?-tuFGǃ^( nR5) HL*c xqPT 'oQ`YV3^_Ѳ@ b曜gw  ZyB%wU,Q*Pj4!Sʴņ셑X_8WҞpܮHiQ 2(sW3`HT$gPFIVjI~FˆSG#+[[PREʐ!PP ~3Z8AA8`krb]bT˳X_L.H#pyoŕ2 "!PYWSXEQ SUY@Hπ!Q h 4}x yq  {y˟=^(Z-³i|`J`5xOAV\WQ?oj =xIOU> e8 V qRGs\G݂",F[ *9;5AAa P.].OQ%;C(g%,/EY#=4s^Pow J G;70&{ºMh,rIesW,/RPTS! IDATh^ E(S {n\dU.0$*EBT&5m2AkaYzMTup  _)^#Oԝц  ʺWd( U]  8lC=uh _W Mv8$ HinŽRptsWAA   ~hƩ^mBAAx yΠU,dPDh S zMJVBtʅYч+ڳ3 Zoyk'lܭC%G77j E6t#e/i/I_prYۄwdP,LPw֤ M;\,*CsAT[oi;7?&Tvn_8.M9q9wL5vʾZ;W2H+9dvjֳa%@:rLj \^\튺"pqmA-BngZMV~b۵XToUSF^\-P6A揷nkKw› H)`mSlX,,kx^ߊ׺LԹy*6E$,h/Tcc֯_T*5… ?}׼ZKSʕ˹chMtGfGtro~%0/>!+;+0V VYsԞ{EV05F  b(B!Y,o'E]*ǙҔTmok;=#SҔu_$kqd&ꔐ婜>YTXUjJe)X_]yMyKzyN.W8S~[ ^#~ڡw C]$Fn>!YJ_ʻ]KwY?u l7$?*^J) M34M]c2]֟{O-Fł&䶆nfˋ;~<Aݾ{uBsP՛6m>x^{->>^R <M,2g*^`}oNu{)lwm;t% Wf&FsAd.N=$!Wɇ8IWޡ)j w(hUL[Xv_zMJlҎ02ŮL j w(d.nʻ dn9=UENԘ\RωnM.EiFdtTڈ}$0 H3BP/}Ĵ;3ԍ!m:ƃEeCt 2$kkX(JӺ Cw~6sze("jH@֒k o&gR. &d6rmڢm:-Yb6L_>|d2Nyy]td6$y| {&әg^\{hwU>m:&y/\[lI6~ɶ j///kRA[y555rꩧ_>bĈz槟~ZtU~f`ټl?njoUpϛ-匪}Yv>f f?.}YA!"aEܪ$ps 5;7k*V^ӣ5 @f(Us sxqwkUַpZfv8H\-{W @aLy$ @DԐ%ﲗww[F7ѪĮƮo?d\$ЮF0`X:{-PE8`XzDɩg:jnfvsKb25޸RtOVzg;_9``۞ccmc%'05!xw&G}T*srr] '|"T'WӧNYfŊ4|(?wܷ~p6(7,߿\gU߼xϵw^Pß.vvuS,D"&!D(;}Nfߩ#qgxp{+Nxfo}֜GM ܹٳgV7G 4O?q hj<>$k7z\P5S8=[&Dن;$Z@3@2[\w+u#H糼[Tvh.1$o܁ٍHI-{[+(<.k o &)##32Rh2ԝzU˫>M0ul}m~JM̪8bcT?>#iL1ebж3&Sc~;PsGd/]@gޙPgΜQӡy:[>''c?ӕ+WFOo~)В7o޼bg?汛7oɁ( F/ dr.N:Vq:yq]ܽd7o(/XiXZSg͒čz bP`X6| >Wo4?~|mva^&!c%=?e5SW##ř1<cutxzT-r!C׬˕0<(>_#o>`41iw-v5c]-pM%u$FzMZua7y܏4@j,o<".bDEVxK0aTi!oeiN]7[6؀'-{wtTlZሸ#B^#9g쿢?n[эʯ?.@ύt@Œݯ |Ғ_ ’O +[_:(_߆j;'Z3ޕ(ib('[%ŸNf o?3\ɀa/[7o={vm|2`8{yc=7Dc5yA)1Scܼ1ˋT3*6BX|y *唩=7F.4w#BAڎzr Ec?VW>-2v#Βm)ApRrBrq \L(u#9w@k- =jrJenyCNz-ˎk\v1ʗE*nKQGE[QIfF;] ]&:VgEd&{ɄQIB_˨$h8]E'N@ Y?c{]y=xs?|q ɹSLPWDgFO0y{>]W _/xo܋AWBTr`ſEWWR •-*@8<*%q<Ռ̙ӏ_rTP^x,:w|WTxDnкŋKn./;]vM}I/!1?7%"v:1dFG4tӦMknmw#Ṷ=,*CB_g.tǟxwq};wrED ܷ3,X"Gn.J.,}Q"+ዬ%.T)n+8 VvrX,Y?T*U۩F'h?zB;M=w6]go o}uegLZv\|-W1>aav!ZB3yt<{Z#%Z ;ympj{煊}n8cz5|pP|@=AǏ2ABȑZ ;FC do_n4e2Y=z衎;*oESr/TB^( رc߾}ay \O<  ^{_'?3BAGKmį{x" ;wBAA    EA5dBAAx PAA^c{"GAwzA"_0/AѺP  kȄ" 2  L(  w;v4_jw-uřl¹W$HLKSR>A|Ȅ"&HK ,=J\L,2%/g*$?*(4e]l:/լEMJMնn*f"a&Vn5b#@AxHbu8i5} hl^)\HWjj&p ]YHkBzM[&@v禚 IȄ"&׷N:v$>$WnMVF*)ng*&Y>=פDF*sutv&"BT{u $*J?JPqrxizM_-2%AUi$*rQLHeFu5bhu…h$u>6^Q/+( ř3&fy}{p+KV2[lD ;gK= UѢto?>-0Ə?oy0|޷~GCf2)^ֽ!`0ZIej\Eku})غ e)D6{XO 3z~o 'Íe,ډQ].U~`L}lnE8ֽӭ[#y.)q(]\.GVJ l "CkPԽ:-UwI+TV٬y%+=]x{ VӅFdpSÅkx4;Lփ6Pf$kj[+O/]1%Y;K-4~G'' ._smڟ#S};ſ?龂WlA %~ZSN+ۿn1V@3a*2ȜKq~:0c sE@ߧ0RfTdӧe^m`5&v2rq|HN6J9zY@K&Ta4.hH%xh59VZM0XIp@==T<ʄ" a8l%}@AK3_fMAAq/L/A[ h]\?mGAAL(  !  kN<GB'  1-2Vڡo T0ܘ9ZQ-A,^UWpNvCzA 0 0,X 6}{8Ӆ]w\Ͻbf=c%Y;KmnA/V ޾} ry{ Ǐ'Ο?  IDAT8*z{Ħym AAi ɷS'75m^ɿKVX=w}rd\*؇s/8_y0iNBjAӸ7U9^bk4rO8pϭbvc]1Yj*Dz4MɿtXFRm˲6 iϧƗ+d;?[|:- =-5n74LۛJO[~cWlc]u/G.U9ٙ] 0drBj%!fQN&UwW%y{zũ^\ؿm]ܫҔ(NƂծڝMO^Nc!ؔjCAcXXhL(,=c>,cf}~gM k" h ӭv8gӭʽeK1Ltvʜ^h4>:aX){٨i'W¸ & nR{i:ILKe^qq0le=S @q 9]/89~$S^2IW৒Ε:Vpjt)Įp7.ƒ&.be$f˽dBud:XL>0fkȠ~jAA#8Zyr_Mr#Gj4Eq`Na (IGq1.UZ6D޹']2: ƌ{E5s&:4|pGȻw'?\Ǐ' ]ʙ]Cqa#8կ~r° Y tZa,ÚXx/+ɑ{6 {dBoM7ٺ!OG _QG'kdc1e-ǧZX0U+ػb} OĽcp e{P%$0\/|=$[&> cb-`aLbu>qX,n7d74|jc8l!cVϠ/玩Ye4Vبrl EB[á7^ZXl"B&1XX˹KonͯX9H}"WT\5'c €eX˲>7Xv uiE-^z`%gX qE҃Rac,; )|X[XVc8H+@aW.|]0^] 7hZ_ ۸ڿ+mPc˦&!nŊo7waYܜ=1(0=h4V[+_ٹx*6U|jb0hF0+Os&玀kZ^Qc0hVUCkwA[,Vڡo 4ܘ9?!I7d9_hO, CG>&>ff x|]XќxA5- pځe|80J_g7ca0`ρr._O cv`̀g9f˱js rfbW D{ {jƕ+Պ;_ I]tV4 ߱SGOaΧ8!݂ 126ƆJ' ڄ"pflqH]jJw\q8Uw?4o][G?/lqc`X~utov# r1vܾK s]» H,cv0:m^?S @!_}ŏ+_ƞI-#`м1*AFk4Ƣ\ |,kf10jYKXӥ_{n|ϲ$ v~1{`+ :,91@&Շ\M9wllG5uHRI2BбRv(JN9R?-v\_Y-i.VvsNՖ{g?g޽@Xg4R{? ݻ_Y\*jkH/1n1e o,N F~rM{e_hB]Tk04°q/nLdKuHFA7)wu?7,*>/Z* +^ۼ,~SN[Z* jKWK#+Pe!E=H&>tIia zOiǏg 1/_LacP]֮O?=\“SIq7V~/ZqLiUw@u=r~y T:u,=GeZ-7"p \[˲hkBk1 宽p6}Bp"p.FPvao„q an~/Ĵ?|R BlZah!ՠV uq?\!AX%[uM͍bܲ,zbx2%mfs9RC o .[geevڬ]NmE~OGoۯZGD6mP&|-׎R?k~ .{-^m\YMKxDd3r o[v$%  I?$ѴG aPg~CRnkV8foQEox헂B?MhL㬙5?ͫ2kyYkҩo|,_xPe"~@  ғTxG@rx wxN>AgIh/N $ŋvr0l G5 svTP30 E|Kŭ "L ڷ@~Ԅ"C hncq~@ Ą" <@X2so=xCnA<*Bn''v!ׄ@ c*CǘB9~w^~"x',̷@>`(0!@6|T޹s'|!?ŋ̹[>0s(&`ftiK (!M(rs$0Ҡ%РhySCŋKqMY.TP|wđsaъ6510vAhhfnuTg ..33\UZo-˖_ٟ+(^[whD0 vJ\J}:`+b#rи-%ᰜ/g`e5IshgUE#&0p˅55C1W{ Vm*Hk9_us*buov_U㴝ء|Po=}oWNPqA t7Ȝ$GPi/pSE|˷W/Feɲp-; Áʂ *DR8.T|ج%ʂK[ W9Kc{ËbGoCgv+ wU:%킯;OQxnnءT[o"@pOeӃ~b}zSI_[n^Ep&'wJVhۉʃ̜˹F2 eZ̿N6w |{qe‚; W5]i8<:R}j9) [uMf]gfV]r\qΗ^D,Xc(08??x@6#I&>NlPF8"f-@ׁ7.h `2-;KE?J\9l$b?7';WXXo- h>dKT,r^$I_n(sz|cIo/<|(jSyN@[WWݖ'n/ve-":8XԜ5ByoW"6o83C0a  ;?X6  ^j=.,H}C`QI=z9=hn!S&m9HР%РhySCŋN)7)˅=~|CsY5X m.,pćܪ/.49~˲t?(|YVvKr^źii4Z m|gx|֡Oѽer O''1 '%~%3n! ?2I|z:S514_$E Oϱ f"gӸ/[wE~O%O*1#"͇-|}U6Xn^m[:=`kϵ?zl3[0o 1^+YuCk){ axo\pRtbw~V]ZM}7 %.I&&^cazLxH4fi4:00҄b}h(rh~B<74$ĤK\lP rde>njTڇFc eӃp.A˧'ܼp&&rCǣ󥵵FqՠV z:78F7oƿ[:⦚C[~I=feA!B-*&Oyv 0˯)r]*9^\"c5>S zHGNT[x?*יIWN岟j#;R:.NHV4GLOdṡڇFc yeou[bUĺ><ƫ~(K[T㝪Vm?cL3oet>ϙjӓ*HKI3o\ѝSZ 8&n)G fPuI7kΐxHgS!V"aї)ȊH$NI+YMVH$2F+H$ezXb]lfXNU18$+92=~]!n-)u @2^jE]NEU p2UeؤUFWO?]Ν:UT23U.38*H?ƚ eZ̿N67+o6dV v n{(ѝI G+#"6q\X@YcJ%)K9xf%Nwi#eGzfg[j-t\RP$.U]ћV_dO՝R0oڪ )Kiϸ>h;z O@_B_B)" Q#*X[mi^&6IA_hʠiicj.+DB[ MחfLЗ1չ|&&L:Mg O*b+]k13v٥+9Ps-r0QIz^cSU}.PO؟WCD[\8XMŗV͙cPaX[O>#?.(Xn^g-YK@w 1I\7K^C黅o\ysn(FT06&*̻ OAf*x)*iu~=נn&Vg6+f rJ2[_Ƨ-r.% TRK+3vAnkRNi>;@*oGK IDATr׻[1Pʒdߗfa+Z1|a*tM jzj%%3U.GxRs-  J]@i=-!>穷Mᡥ1?2a'&xwa40L('=w5,-X-=yIVANnqnAǵ"6 + (&uBݬ{]wD]bwTϭvu`ܓPtU f&f-E2z``L:*HL$x?PezT@:7IyR[k̏7j QÃ(yR[^66i#GƩ0(`-{֎nh8jl|NH~7SN:'Jݩ0]>=-n $2U'Ņf*85:Iz4Af-h҂y07uD G)~{]lzB*\kMM 13t&@IstP  (76+7F! L T뫑pn(җ9ʘꪴjȨԥuIUۢƔwf*Yfg;_z)cn-٪c5)$V_ sfgAjjO_u_*9T );(u=ֽFQ*d喖1jB"[Z 0[$8\>&mnj!ֻJY(u J 6'zQHf#XUAɎ[k"s+^wh9PZO'awjyӥ;QZOCr&*Z|9=R,C Ms["!Q#pRrn.iH##O_&U >1f  E R3T~6<>+zz1Yz;lڴ>;`htB&N i] "A/a43b^("&!d޽ikooo// cGh4lr߿?eʔ֓=z(J#ml!L5MX|z'?*}hJ{k{wgΌxHӦ}`iS ¾BbFL`P??@?l! ?ڄ-7G @m1/aw?vj=k ?]1czG{p9&F αc&kHc 1#0b0sîSeSOf?ΜqgϛIC}a3Uc6#'`8M:)GGeZ((LJb?0$wJ* JP0҄~˃=Z@u[M'hjww4U!uZ)vT>@>e̘wv7򶓛ꪐ w{ܫ b6Jp A5XM$`Yk{D-FHW+kژ-̵0署X'S5?ּ{of~=YYs}m㕬+C$Cb6١Ҽ#%<3weP\ lq@bD`c#.nNC6PWcVQ͋n$J0keWMfr<?l7a^(CT֔6IS16+#e{x7l]Vkiv:٤ryq$҅w }3ҽ-dҖ:7 P2E2Ctƌ$H{~xβ6v:żcRgZSvvLZyԜk^n;n+, eXizDzϵe>(jڣ_K\kFNN_zSYcRE%Ul(Yʜ;ݶG8ym].ɮ1PH&QrmYpK$,L5.Y'Z_GƓbٽVyf]R6EUMK\}`kS(%?QaVTvFnlwh+(cx$Myޮ/v2~%Mʵ5u f̣'DAƤ\V1@d ej|K~ɴj-M W{;c}%1B67<<ꮩHUjBusCT[^ ǘ[m䀘}31# "\oп 7W`Џm?\QsijQ<#qy8/( cJ67~s7J$[a˭(qnjqU2`r )y2@x퉉ʩ\PD0RͶ.ٴc]Vʒg g7\ϳ=_YiCq{s\fƭ(y!#gKVڀV,oa!Z q¶lKɉf/P9yqn-JYlQ ~[Qx#(l!h{fv &?˩4?v &Lk-?c)v3˫o'BRok@"H5=bU_\hseWP("徽u[65i_jSA\CX{5 Ovˌjc>/0L:"YYexX$1T_&Ps?qAr*8+hZ^gS캭;bMPn/bܭQ6̃=I 9.z[3[1L-$Y{EQMR?3R1N\*TsTZ} Yjo{y\n1VLnn {@Drt*~ڋ"&j1A%pgjrY ɵ&85ʽ7)K<MVhD:bC`CUR0jcQ jz샣R3a &(:"sI:(zt.*2-(o1MJz(Z(eT&ZD rq?jTps!1@x~(wI)0oM<K yiO^UD[[q-M+,H*b o,`kA.Έ̺^;(ePyL?L΄L"wl76i^Acp7ww7>*̾K<EU.[WTL4-t"*Auf9O%&a(bPk7Q13Rz5$Ż@C/p7 (8M9Ȩ(P^g]͆ Q.!Rak,'YrRܣ(#Rjy:\zJ+^J(9!"2sʣ* ;ěLN(hXȪ124zzmfi=B$$a1z;H]x*U%+}WEԅSYlf.E!v#j I/Lj>M:)#GV+їIjՃj;ilnAPrDEj;O޸+N wR3.n)cv8KyеB '%9 tH}!URw։Lj OCCֿϥE*r-;-pR~.Us=wʖU:-E$n/ '%_ܡHO}mVYt ''c(!Ą diC i!81)8&aByaKK?GO y:H~God,s*k)ޥC2I&0&WR\h1Ch -]{][IQ-WƟ7['aS*i8b&@DəºqxvPL]Tezx*ʓ!f0& dN $LB$۽{§^_2ǎPi0 &޿ʔ)#8gw]4 MGUFRAo I\Y/"t+v) ʽE9UtE^{t&,?=įKIzlK}@ 6yA{DCS[ӦO4:NJiSM xu\,.1̕6T^Oiwhߴ3/e@䉿d3Sp14d%= W3~H}'|PBR[*iܫXwڍ>u pLWnzeXBup؍^^U7['wMƌ3"Vo˜%3DEw\,>%3Rګz>7G66pŎ*uS~~eE/T婯s3۾ ՠ{j.aݩOԗ+k\@㑵XFȗE/f,7F橃h8X={4ǚ֟1>%+^2"r抩:d"S]U-J*SHc>ėQCL2&$z K =Ą 6ɤ)O?l흆zz_OĄ-|,'OXRZ|l0W37:<ٶ=Fghhk|I ڸm|ǎKm8bg< ͜%n*#dzBpC!+\6TzxSUyY2=t=ȉ~51oBc>KlRg_q ΈeL~*Vi*0j#*iZ]YRl:rblY8E%y 0r*(AcB+]kH޵24>8W_JNGPǍONq3櫡9; ]xL#F`"ւy)\OW:6]Heg>ޮiø&"eJ Ă4,qS,[_V<0M[x`a ݇i[ڛjw(Jblnxx]SÑvZ;7l\y#}ɲOl?s{^ھ WXwA>^*2gcW}K۷`ƒuO] g H~3ۗソvӬzB\gEEG}PQ/}ƒtd2DU%FbĔ *O(Kr^IJև}=U& rAP`y09dE'a$3d2]?JCg&L&C  |)'P˜f85J|Y$(%$Ac9Q^inH%SiГC0y Y~ 6~po3Q]@B^`̉tgRH}`I{0%40 (;r+9猴/K , _@ ^>G ,L(QV'F#-BPA=,6mZ@}z04 :!}}}'xFӦJj (@ ?Ą &!d޽ikooo// cGh4lr߿?e@ 00њA{DCS[ӦO4:NJiSMҗi1M!&o[/e& ih F4i#$ &O}o]o*vA'~g&їbZ*0TAv-!?!}Ys6n:wU#H3+\9N_/WOK O gWHZ19)dvOxBUTlsёAlQjjWZl]|R׭Psl(>ttTyQ 7]$,qT;tZp{ý۷*3۸۵r䷏ö q 7_X+`&}ܤyn-Ą ~=O;3ko a䊤 eaIWNUO-RjPKn*&]bj|ƹT_ꪴḱL{ZMj{r Lcu.!c#;Kfz@FB}Gx,.+ӎYʜ;ݶ݉ƊG7cTqZJ&IvEmq'K\}%8>r7\{Rml6ax$MyfZL}_;CJ.rqZrޢlK؍ BY| )dq+Kv@$,&"]v#F/-pc$A¡a]erLYfDO 6W92VTl9'335yORnBbBndҔZ}N{==yz'sb>',wMUK /bLiZ]ܽZPqҡRj10PU OHͪ@#nqJ4H60q|~"qBb  rXPDSV0{Ù쒕pS"^Za26ljJSdRr7'Z9o,bLY'ewW!e [Q}( n%kPljg< 绢 :FžU!_+JV3MGSg 0RH%bYWI5pJaf>ʉVxh@/cVX]E TB(:k06+=WXiN%Ϩ*(AcB+]kH޵24>8W_JNGXayR82AeiKxQeҖ:"}mVnjB"WF¹"/+ˣvߖֽE @lrHc"vFvO=_I=Ṟ⋿DX mSC Ep+voHǎ#:nVh¸SQ+| eRU\b_].)bCAGRgRʣ/Cee8zCƫ]&'lQ *Sd-J3e<~|]EWnqP$8PAA?ۇi[|u%?kX_8maz|]̲?)k|p$IyTT-QT'MuU,1֌S6̏)&u8I<*2Ide;*^JW$G*`^(B`] RihAIɾݤdM%ًCy5WROHE:%nwaE)9k^Vf*EbliT:Xj^H gk2闕i6YHb20F['o͎U@Їb%[BeþLEZC?{8@_Y$r (Vsh;v,̂(dȦ]3[jn*u7\Eg\R2 3$X{L<{mI< k׏t nbiv!{܀0eЗIjni])S##3TH+kf7my P!="  {a BB4{35d}zJ䙘@bZ4<3> ME  gK6BWI-OPGGG@p/TPcߝЉaN``b&M{0%藠zVvT % T6k7B|dPA P$pP0}";5}j lx5?=L@d!0H7#mT敏0 +% 5BI 8HNmbB7t`TԎo?j \^y& ,0XN^kae` d!0yGB?Qy"Js}c"Y=#aZai= P"͛35~"x%RWִs;7{Ձ?SsQyj>bI-jGʏ532E5JJcWx:8Ժ\ʑOgx X+VBX< L%(E;X%, A}, {a%";?.$0P^ ހF-v;Cia ᅘPڿy9o|fʞINNULl'<N̏Y6զN۾w] \tt[c)3~錐 'n|,\ \k~"1BV{J:-Jۨ1tKY"[*;HNثq>_k$ ]9EBMX<17"t!NMKD^70mwDۢw=7 )D4_-{ۏ7Pgk{)>*2*J}~_M E:47pu vWٽ85#9=aaLII0QVu=Ą"y"|Op95#f'.m9YG1~ O/amT͵/T& O1_]L}M:zX+z%(cω8hǼ"IsZpeh^#zh%S!wQ|Qï8|ACL(a97{}urcdE(7eX@雿XNm>לySe)O~QJ#f?*]u@("Yd̼(gz̴u# 쮛iBmXaY.hvZD\]s !nESW{U)w2D5oG}< _mi</q/!vGσޑ qVz0s!/7d cMcf@(H'!IY`ħ1Bc EU0BBP@ C1! z2[ဘPLxIgsYP E Ar%e/K PDlGg׸;e@  1!H;/@F E } 0BL(@J!/@Ą"`%P} @L(@Jܗ@ $ a\@ @BH@ !P@ ~U a47]9Wl!9kbB5aSeq?Z#@6`0!?  &a? aTB5}NљfӗI$DR 'W_& U*zĄ"o@q5xFs1` j#MtJ |ptʤɻ'ʯyd@i290BG6rKKr(ItTnIEECp)`jTˇdTUWPs=cĚtC znx゚FZ)Au*L􇓕LI0_9)N#%2 *ӋytC3tev'k!g"Yk.?LEV~3v%k DSVEy\Y r-]OW~y TKMrQ^3Q;8})Б3pL"a(# nS{ʫNtkߛܨ15]bB k/?<ʯW:[Iz^&ʓhzea=4V#&ݮTcQ#.ɧҬ]`.c7YEIW3LXmw=Z\޺`1$z5wATS rRQ[2IEL"U{VƱ́h{z2׾]uJ]yjxu!& omiimii}3/,v5k ?&6^B_B{*dO 猪,ͺJڵZ,'E,ڥ`16'e(D"դ}$*2 o:U?вJQ_$*h"U'"YYh{4+^"nG >b"%SS]Jl8}ќ+}y` y>ht Ab'rt^ +r:s9D~ Y M\E_z{z>S~2ٗs=9_/AJ|}Fr(!}sVS:RbhE ImH^ iT4#!xHeCl$MXJZˎe~(l d/RPӺ_$X}ز qve!G8%if8? %RA0s =yfl>SE{?oѳp\wKn=W-RGӋ]v={%79M;6OYWZ+~wyG>> 3.5j\}_!=Vh`;J:9rr'i RHt>.?q)AzaxRQrXWg/ /D+Ǻ',V%L=#*{|nMT< 谥Sx94XzB!E$v{KUq׳CpcS ie@<0ؼ}[|qwB ٪sw$6F 6gWuJ )󦱮>J\uvLzNm\q%&Ed8͒ `r"9"N?dsw`eIAv2I$3.ϓ;_%wCY-t'g@vD >y/5I+V z::ەZf`)e2͓^H^<ԍC(X2~?:?T}UA˞˺Knpv|X֠Rwja1}=yohMfR 쁲V9Ҋ` |03 u@p=;|5|-{F>a'aVH efvD9KK-S#) ;(ѿL3yYw=y2C\yj҆B0uO' Y[Xoڊ&#-ODtn6%ou>R{o[[`PH7oDN*H-Z0شTiUU5.+S@t?NSj748G3ԑk+@ nba/J0B)T֩&:zT5>4ND!:&1&]%ٔ%0^; HB!$"UKM+VwI[UUҖlb'Tv %5;G[;Om\2Iu&)` RhK*FML^-[UZUxӗεlb;]te.d~Edі%YB,M[jmt 떈FHq2æ )l:rx}Vi Y t'2k! 5]\x0B?h~9T1??Ґ<[IŔaWkI?Xs=WҐǛ/óA LB!E N dPH| lJ<$r FEYcB֒@3j-ʹHY1\ưf[3 l.0BD$J!N(Ho3}m)73Wn~׌(&y|+eMA]Vsc9\sӓ75ic2o2BڅF Wۃvl2P7G'pV7zh?jMU7.uhPi-ZKcM̨* 2۹ծS_Mr;VKvv+fbTw-SA @b-xz6nj_[vHڅwhJ|l(/?x!d.lWb&Zh<}dlc]jq5TA| 8ZySAZu9w`BukƻwsbY?s :0EZ]q]I#S?oܙ=Ζ^O۞Q!Y : B_ Y{Vߙ;w|J^i 눎c s7/'0ri=}+7QbGsymmtY B!HZN]^ rݥ̃Ȕ@*uzj;?kiJ=l[PEF^C&5UfjmZiPerB>~ޠ7Z<{s_͕,ls޻@p* ALSZjץ/WL7Dyj־*[YwWٰ*>Q5Y`sZzt2^ En'Gc^}Vf/ n: ʶБw?}Ur r"_Ŕuxڳ2yv80\uY u"HfljH!}5R(w8ܗ^e+B-vƺ[Gf{J=c=8Zۥ)C V߽g4Z ~;<)v>{ƺLR',# bRhKك yHQ;LbpG^3a^H.w䥅xܘ77 Mwa A6 d L箐MFr^Q[MGrXeZ-nvhS3kP8+gebd-` ב^xD'>K+n͟&I_ XV~0fȮ)u2KMSAP k QQ$i ĦכIYߌeWW[V- A ݺk*9 6w"P D2g-jTW5mXb:J8h\6zD (̇ C(AkʸUM_ VY6Q:h׭\M=Z9 +p+E|5@&'?5 ЄEPA1I> Ldy Ⱥjvoύ( B!Ew~Ci_5"g  iH1BĀx HB! d P  !lhh|#KtbX,h-!7Lˉ $B!HVp;R݃==xxcQڞk=ybcD"NLk^z\K/b{!e XzqŒ M6cC(IC'˧["b77cϏ6~7⑏Ei7Ӂ0z苍wwDŽ)K`Q- w &>vwDž6KX ALrwGOחK@m\TN%SS4]X$Gdc |?E{GTǥ ùȁ!HtU%O67-ឞpxb G ybITQ,s I75JpTߒ4HEc^Ҙ4ZIگ&@I\ ʒԡrЌTQ<ؠA IJ#Hojm Pb0[ k[jXn\iLMl&҇e v%nt%Fu>S^)BWb:Wەѕ8KwvA==BwN-Ǜ*z3RD*9az*}]4zL6"jI$f:O7гb.;.x"O|3K7|Uj͋O&s1m!Kk"cN7|Ovy?(&8B)ina*xowǾ~+(~SJɃ~.Q(*v$uw6RcwNEk^<<;nM66-*hl+L:htN9Ѽ0#ʌ z3׉$܇*qMd̺yL+` iY5p]qsvc_O>x4Nw}'u8;>,kh1aW4Jgt͐ .zֿ<ؼCUm㬰 rrRR[ucs [M%Kc2󶋭dRZjlG+6,}d%nJ@=R;{`kh1zfeTt7гisM:gX$|ۀ >MQc>KB ȋ[&7~Myl[NWg1beb AsS"neA2t+^&.f"6o_Gm@'bC(s(m~~!7x H)_ )jr>^A|-RhdĽP  !  H`  1B! d P  ! -\$p,y?9ffH2 YKZy!eʉr(?qe%3ֽg{XG"˹6/S,'!Nٶ \EN+8;d* ey6sLEz[kKjojDvIerfLy Ƭ\W'Js^.Tve6p`|޵fL:2{(O_eYփt;Ozi` aȚWy"w!gM.<ʨ`.\93upm9ys,Z-zS ݑ7`@D*(TҔs'|+K?/eĿ.(gR)%zBe6DƷC ~ysPZb 1\D|l ]i1b 6;KjbH$G2EV: fo [HTJurxQ(4(rK%IH[*Ŧ?L9jeġF)atOtWrj΄JdU>J&J#Y!oƤ;H8՜!C(1_Qp/2OAɹ3l,|:_k/<7.P Ҷc1t`Ze"@djŸ Z Zz_y %jQIG8f]$P4 Pibr #TŸko&V|zAxpͷ*?hӮv@yE_P7GU#t۷(OoR2:O o H7(.һ-z>T9zFLU~"[#߃E73F$yD.V6U~"4Ktc{Rm/+95\X AOGҊ%GLy3Wxb| 1r33$/` iWKu wr lM=d^pT0Ulya jHvY~zķԏ1<~HZJ?l *mK{paf2Vh^F2!cK/[bW# .'E:uv5,KʼE) 1ڝ¯[b*F2FP7.q^`3-t9@X(2?]ɏf 5qdh%IgK:d>W݀J( B!!+W~w_~tw(.\kApPĖmWtj,-?vm}x,ϋy# b_rbupddksYj\m[ݩМ!H$A6?O|r\i~%#/{.pεf/&`BPl"r\1,A eb A%'0ؑ71~B |& [({<+a6~5WM&y)fAA2C(AA AA$cp/R|9_iۈYlA$5PHQۇȿZb}<[ y  !  H` .s<_{d]{zLUM  $-wϕ;GY=h3h3hq|0aԒ|` Gʹ6ekpA]⨂RH` Ƭ\+ť?+ ؍č󣍟4f×2Ԑ/6=KtʹyA'#:` O~^}jpaM?F-٩dj*XLVj3:И?,*oyaБ ]FG%A֏x'Vfa1Meoy$lhZY,Ɇ>Ys e@\XL\*oh3% @y@1|L(~04IM Si RH` iz9Y[jXn\iLMƹ@썮č+1x{t_Ontyy~X&ãչڮ͗J\/TW.]]}ݺTmua>H$CqD"HeSTpؼDžVϵ ƚFOɤYz.TħG!@l*dÔ2Uh/T4:í|6̔(EK:=/j*ʹA Ę~}[ Uuxpӥ_ 9npY`$3:jgQwKE)s;wȥ}`{6 JxD%Ld?$ n/9QPU.*w,Y%6b6 U(C8CD, SL;m{"`D:2UL;:R3mC(IG'uu9!^ 7_rfW9\L?Oftm)@hSL?{=KHtݑH$({%ŢlݶzA-3fڧH#@}fFgf7B!IV0xHBPA3_}E#_8;n./ {N >9yK<8gu|>Til06?:-MMmg(v4̈́dA+8#Vzl;ii l;`bBX#^gKi4^ q iG$V&l}/|D9fڀ|_0Bt=']̞x9 Rwja1}}0,{-{>(w/ت==3ϴO/#nZ^orv|H/TG>,kh0==va;32rrM{|JhyVf6oPgwR-=bshq A8ld+wӰnLOLb# Čv$cwr(/z*ʹA K"ȷ Lp`<$/`<)@121  1B! dLV1d3ݷPJColA$S҇!Rv/?"ޭ jk )42bB  H`  1B!0LZbXCLyE )dul3!s/H˅byf$c ԟ=c{&p.o//h9(`Ξr2ֽgBw2l4j-B&&y|T0$M+ּh^Bs@z:2cN8A0)c6' PʕW&+ťo3Bh_kyBlw; (xvZ ?_& Xz# m.X˩Gyz5|u$1"~YXU0†fF&mϯ-ZN6B!./X~%{/VuIe GR6h1T?Y(zQ)H#e!A5z[H)=--m؟32E{S*}  2RZY]&95-"6kt(p,9myFAX LLU@+ZdyI\#0!Y Z4+#^Ҙ4ZIگcT5 ̧tSڍ J8BrЌTj]\$ 5 .8 ,"Lj) Ia!dN ʌݫ+_b{E;s>.o޺_k@dv_^$sKWvo2j802£fV&J3/dB#BB>ČϧM`klWS|2жV18q>@&V_(L3 T;.r| (OM7(qU_o1m!KkL 1iggB(yEךGn y~_Jn70}/ Œ7VS ǍI!dʗFډyIt&,Nl~r~BƖk-D%֟j(BAR26lD!FHULzEEJ)P0BћwVf/ ntπl}jeT` ]~hʒ\uʶБmE*{";s>V;QE0mH  K%9ǖLUN=0I]FPjfy\$\m #~M66-*hlP^+D =Q\$ -qKBOvW {KO\g|E#frv@w~Ci_uC <ق H/fE3k `͕oĀx HC(lA$;0BAdSw!E |A5,rn 0'b7ҟ94;C0BD$g=@Zdqو{,)-c'thk6PHq!HONؼ}}ތ5vD"UQbLvlҡmB!Qh:TObp*olo[,=F* S&_6o_l=+SE@6&<,]䧩xgxG@"9 9Y#Jj.4yzCH<BA;57s(7f Z<6;ls` RPħGi]?*G{|{ȴxmOS7'7A $?M$f:OzVl2~xApvEl p+-LY$: ǓQzu<3CgLg jӭ\JM$bp8LBc#jQkOJƻ+4-0fC(ABB*>= Fb `!Bg?9oN`{O%evjH+校SXHtwti-9`lmgS04+h2LΤ5äR`Ō݌{ Tjz'n8%`i0B) ӣR &C8;H솞EGb:э?%5ݑH$c!:w*2f_!s/9˞A_OZh.sYe|2'ulb;]\%rwR]71eXNWčKx-:Zw>M)&C}.3 f6( 6"N9XW@/+͈V*ПRpw%MhoHy~iM8 1{XX)i>?H+'~ _\jp{J\?%_7͗쑏oz!:Ⴘ'bG?ioHг7_r+TT/yនp|3Hoe~=ҳqi嬫12 չ#]i0Y.,$$?|f9=tNfo Bxr+qg7hJؕdBnd HN:mZ[:C 7١ǥ $xr%_K $IiS{i7P[hZfon} (xI!Ȕ}](U@˷ 댻/ (ȥ{2^yj*DkB!H^=7uȍ77=h>JA AM2ɑGpv<<]VN:|&)~WLݸ C(e rǹ#krj3h3x~9 EmG==z_b0{mg>A˞A{lI */S@6WWݤUfd; ;L掼"ٜb A֙L, H!aTXԪ'ׯ-:KbKZd3!l6(w_ &Q׵իK(:KbkXwCʵ"fC(ATa]m][9R{bYB[*iYA6#B!l:L׵U]{)׊  A S%TUumU7m]b٬ئ k{#9y A0UBUU֦SW[t|\]֥\+lFHQX=<&eX4A| D8Tn A,3 dzkEPHQݷPJColA$S҇!ROȞ+i͗ق F_L o@AC({ @A6%xGR P&d-ZO3JcBBNNi`N[%P^<PHqPժӉ HZb d60Dޮ]@d c C\жE?/.<"<*K0glٌ` I`?R%0aFSd.Gj- oiQ YKBj-4!Ĩ3R3jh$IMOpX cWQ8(ӤU&&NOZd AdXo rHƗLY2FwWy~ua\nj[K9ֻt,I`sJvDntTd0Cv/0-^Tr$vdB]>#0B8c"P `9-I%`&t"R@͌Yw5C3[oZۈzq/s/*KK`&ATVxjZԤ whi8IXۚY*B=ﴖz^v%lv n\GD6_|\ laFқ1'0Rc42C=6n$;Y63q$Qdk.b`τ%K{@ʕ^.Ue ^Rm6 7l}C^]x A\h،X MԻRm޾7Wo0pmKҕa5OH@tC8f%?(C, 2{ ^o2V魉fsv"|: BVj]<StE$925 o؃l9%Do HN A29W'AAjDH=,={⧉olȔ@*Mzj;?kiJ=l[P ByzW|[lB!HF=W;gk 635օQ.-#*[k hb+'3kO_oG,:2uTO_}n_Q9 ӎl>H`Luʶ cv*6d ,l0B]Vp*w +a;]xng久#(o޺ut"[ѽrgԦtrh_Vpg:o*tTsqRDyzuK1q-H` AsV]!GH%'+*2\`)%H6wZKXS u#%U8N]yFujǐ҈Eo\۰s[ߦō{6謤WuyV\Onz]`};w+^|ǃW=Vďw>|{뇋=mGVr8GU7o kjuGee| %Z^U}^mW ( V5]wT;#:h?"h&a})$UXGcXfY1c9v&ԍi]fꨕWQX@ dx_hw&牀t:U8 -< FZp^VJ֨^bU䨡ZWEY^rt6>i~J+VlV)uI?\%L '!g+*y];}J~XVbJ&RЈֻr덟nگp^:y'-vj^p\rz18URݛ)k% Hmj+.R+3&b.̭{hh$L`B&Th +Ԁչbo6X|B+0EYh#X1ڵȸZUTAJ6|m?3؊s1\h /Ÿ: ;.#H#L4Aeu֬S,1," UV1$"EPтulqҀ-U'OCft/FbT*D ̦6!\D4bLB0DAoMOYLٸ~;m% +"ve2Aw]smv\77!Rtچ &~wh |ٻO1v;93υcŴ06*|E+UD ֺ^B R ᕠSG,ėK̵ma j1\,p ;>$=,1>!K/4<1+JQTXVxQ@F8F_<х?17:*O(or8tH:X^ȅE bH~\[ȇj؆qx# ȆȆoȄ88XhXȉu؊w4|B8z(=H~DH,ȨhxXȉ8h؍H~8H0H]1a(m8ը(xqؘͨO YX䘋؇؋9Ɉ8xI("hٸ02y )/aX@) h+y$i!M/R9TYUY9I樎8酅蓉0HԈ))SrىȘV|Xiل}9Y Aq٘򇘐9Y)߈8虢Yy$Hٚ9 H(=HᛴɊ YYg999fh(*qɜٜۙ̉Y9)i99չ~ש yhZ9ٟWIi (j Z) <ڣMQ4AZy z﹞ʝ5*JKڛHVzZ  Pj910K*%8Z/ɥtZBSz6i+J٧䩣Rm*VڞvڨxJIQgJHe:O*{J;"ڡ9I NZ*0:ڪa:*GJȚ rȬY Z7h֚zڭڊ:! ,w P!:Z @a%뺯'? J zJ=a +  ۮ# !۱ʲJ.j3%+6q4y>Bɧ=1C+0ۧ ʴLZzK[Q;^: 75>0`*hkh>ˑ@;-Ks:|۠u*z{6r{OJ+^K00;o +{- znz*O봬:z 3\ۢ Z˵Jۼ+:{Eb>q @Pmn0S +I[Yʦoں/zhJ*z ̦ ˧; LJQ;D;L);z 5+p =14<Ap=9,!H!J ۦ;U %:HBKLZ[_Z,|LNRźPI%)',y 0V0V, ;1j 0 :l% K<QMe'̠:PŞlVWZVH}AϏp#8M{cJݸJej oL}Fn-N+ߛݳSXо|*^\~_~,fnY19np^0?QGfv.K1&V6! <;cNa.~ g-+㢾.:PDNNiH>}-"^~׎ )@X)ryv)ڛݏOnɏXF3F_ p / E!JSCw(*Cptȩ9Eq(%mLR!LYܴR6ZiTRTX{uB[y2RaDa%Wr46dقZ}_ᔮ:L?F8"˕JK-BAu9cEx/MdL5u̼Vfe_9fg_o9gI=uUg㝷-z3If85:kg&ߑkd:RP†;nzno:JcS| LߨE}EGz}}T>{q~{̉#>SLG?}~?~8J~Ps)0O8@/-{?~ SS"B5AF":8ja2BШ% ` }@ 7aP H-Rq"g0"2"&Llb(8K - 18A{ƻ&DAJR⸔ɊXzMji08H%r,d 9,n!\D k'՝qy$nDl%h;5ZXFtw~0D%siZPĥ ID$c<Ye*S4c3LhN%.+Q$HR*\9a"jBǕQTd"0 Ixҗ̥ 9&ӋfbP05(@zFOnӡa&Mpa,(E{gOsDiq($ThA*S2i@xI=ԧYLJ*qQ:ׯeu~4t>'/Ēg"UИ)A:ƜeISJ+2(Q]95KHjRB:`Қ7jVԅ'Yk[5K5V]7F]kJb HŒ$=_^ֶjUVg:֜&5 ͅr1%ilrY,a8Qu>쨐"mS_.һoxU*׼bK^ I-J;D׾ cCK/&^,y` ]W!<5IkaßUO+&qgKt=hBЇ&4Fc6z#Jj;2t5iNwӟuE=jRԧFuUjVկv.FK_R)HS{nKaFv:a/φv=mjIORJVS;`!^U߫ ʝxĩpWǸ]mk?shKJ{C&pA{ye>sŜ7yΫ}oZftcsyح( \zNy uWWϳs6ƥImGo_>w\@KԯJXuvMБ;_wƫo|}w./`н{i _ ؍1z|͕7JJK-MIQ})0ѰwQ'e;}+ʇ>w/CK߮HNG>YGo>ɿ~?/{?7Go> >T ?D\< 7# +aC?{?#% 9s@? @@@۸79t@A3Add@4DT‰Aޫb?"<\Š3A+T.d/0,$ClB'{š@t|?@+T2K\?:$Bc@;D3ķx ' 5" [)K=Gg`FáGA)JdHI$T4KtL쏢#]>jCQ|CU;S^l7Vl WmS Y닟[E^ysghFF}IFn#(sDtTudvtwxL;˷T83;jvft E+zl\~$9DYQƴ3ǂDHHJSHLV}̫~4-74PȄxɘlɏlż#It鼱CI(VZĉ2| Lj\ at.;]ۼ ={u,JG⭗r J(Ϙ\˧,(ݪˤ/ A)_cDH!2GK L̕@(KKk  MRλM),*OʊK.)Z<<ϲ: @䥷 7aOmUb"~ߋ͚%海>S%8,-F[461>$.4PQ=c6"uF_ČcAn„7bdC=vdr"H 5ݝUCeyPQ&R6SF/V%KcLBM$WO &XK^1`dؤ$手e#JY^ab n3F~fEDv,ZKȤX Z6f\͋o ˏ#Ә_fY&Uܭ ,O4Y_ǜ 'Fm=gIvVv`-:~1h˛hpEhn`m^KZ㕠J+ԩ\&T-Q66`*.UDj.N:M8VP}>j,Q9XզPp|:6haiNb@fOݼ O Q#U8mNV,&U)M4m.ϴ-Izp9IޒJɺ0f^O|UPv&O U6h.LZm T3v윒M۾BRmXTFM\2j`f h`H g7a*Ldnd!!8bk X݉)T-HR|F !5hcD~=ePE QF!hfّ5d )b_&aLq衇Zb9&9yeȢmRcQ3(uYenٞ)L }zhK*(XIJJa*T@\jXS}z):*z***:+jj`2Z+#bڒlzaź8*CE,ў4^f)-!-ݾ׬Pz;n+ҥL$TR-[/nP+r.L0ɔn&.;F#̫n1'/PyJt<<+er0ˤp`6[q)I,3=k˱Ewϭ@1^Jkl1uűIVtZ55 $$ت/s%H9,i"`;-LoxDqhU8֕k)xyh9QЮͶ뾽)q{멼];ϱ{\_Wx)8V˥|U+^WU,}/P~4?b@zTNʤ w!I!rݮ%8JJvWm[&ŃlFB qc \6IMI_J (@P'OV*ӑ(Xѱ mfL:wJ,`u`X!;f$z^gَFFozQcBn~!Jt ćbXDiJȂ$)&6_M@a j1h+w \%*U:O+jS 9r4/oYB ڒ~q)BS;T0 %Arx6Y<*A NZ-sbS< ް}R\' ;*3K.8_>'eZzL|Z]C. <߾,yʑ@7I "IO2I:UI%9ORfi+]I|EP'Hi][(8 4J[UG<Մ5h cUrcPR#j$A-="`Cs6e<A7\(R.j#iH)+$ul;IW:u.dmNVVDU]mUF$tn9$8gz6 RizضTfNn[2iwfէ;NRNVWz/|+ҷ/~O7d'UXm^Nفޖ tZBQ}p. çcw#Z=qf4cqmE<(,f7<ƭd#91ee^%XcmOrc(H[_qDQpWl5ȉTٌb$kԝpN <'2&ݲT?[oLEi{ܘ3K)nLjkwv0]dyBPUGVQ;huMC|U[eoUJRV1f%Ziq6Gmb=t=1$VQpqus;uE^2)ocJ{޳(Y=. <++nՋuZq:z,&E=L\MZ)hN3Eð#95EH+1*5'KdCaȼaJXdAۧGZ'x쩩T QTuZOX^*(r(C¤]c͸ӑtgh1.w/|_ޙ95>ӍRqH`~"Fn?($IFW)9O}8/7}XVb?\g١YO8e+q8z͔hE;Gt[ηTi|EIxGBRQs܏J7'jLJ_GI 4w}n}P^@5סimBAC=ę&e ]E)q\]obd6q7}h9h_ &5LsmS`9yFٽu-AOխ9\uQZQqM-`a q[ -5UE^W XQ "VRO|)D]%Igi)Ȁ! jD#$ B"Քݟ2uaׇ K$ cʜo0ډ4zANJ@ "bcxgI%%1%:H2#a(P) Z*"%ڤw"l``Iq~q&0 ;2"2ce"=`tb(}"}I4DW@PТ@b[ Wq _S]9MdTt%/6F6h R#O>m~J$KK$Ld%Kyyd$#AKP,1"YO>c?^ Q*>d* TFR.]P^my%XVQ&^XMVOYf`+BnMaUZZYW k\5^A4%fV{LלY%V̾Q`babVO|&ęɀe^Y-š}Vҥ4mZuOTTݸ EH KȦ%Pf?O5V>_obi {J_D!gʵs- U²($[mλH x曇N@-m1PUcf{EsN8`QFU`Ɲqۅ!jNJHa\P-t-``jMdyY(^y̆ !_e/9fi( 5h}JK*#I^/V%)4=A( zVhTh}^M}6b)|"b@(7uii0rj4:,eJQPlX,gi£:iᖙ$?VL,,{M*$C6q=JEIg_: b%VVS,p`-A)d )lZfv%I*ZRm-ެ3jOm^PxE': mllv%1&.E*Y"Ql2ڐMڷ4JmيQbn,nQڮ $)+anZQoF!Q/sfp!fճ!絁j&oI",eJQ]螤NgB寋)Ny`.XtuB"$B'@?*FǙ!~02*h^ ]6 W.zsnU I T"%^oީ(J0g**˭p'1ZP;S  A|>qb`:qM˚FD(@pAA"T]C3e"Mj* w1}`]*Tj!`k?0qxtAxpƭx&`QTY*D@bpFRYyrfW!zJo>k)s2ۡNr%&oqx2R 93Z1,J_`,ײshtQdk6mJh|AAl@"\0 '!p!ZnjZRa.)Hòqo4 H|B`,D3 ]tg.*WpNl+fm IrzfuV]pҫ]ZND'tY]1r*SM)@~)_`3Paknu# Bpp+ZFS<^2_j\`g f nϱ86텄pt>!CAfֵu^4t_kvWjuWδ.n+n.™XCX7Rg/sO!ؽi,W]׽ڬ]cjzʶ] xxnFnxhzk@@s;+7l27v{hYg[]s2 +/oB'V~0g[xXo48co%ÖFIW#]\ڕ陮G}yCɅp2nx#؎g9SEyߊ/MvpΧ݁0?{9o74qlf1gKFq1~w|2[9M/؝go9g8Ȑc47$ҕ~z!~z66J揧g<0y?g)YawYE/oZ3aOMwmq*sby'.K;($hDWqKQxש6B((1dza{3ֻ?eo*{)Ii%6n dxwVnE#8'e׮j,}{P~SŒ_F$yXW7-}D8ȁCOr/,#Ŭӊ 0/Fߑ½,+ GRO-;Tm%Nҵx;ZT }#$a c ?@gZԽn1eYEipu7ls %J9,pDn$ 8Mڟ A%ӷ9*'Ii- ĒBHt"Ȅ sJ$Hr%0YfLib3(lޜtY\#;>&o$7720!&ܹ;zM ܂j$:*.tԗ@0b͔(t'|&C}Mjl1O l+mK&} )LaS(UP<4MiS6s9UJxSTCu0{jԤ&TjQk U.u:)U+Bai"'O{%~.$F1aLcgv!^mGK<֎;hEkѓQ,mԻRZƢ">}/{r_י| îkgx_2!}MW= \/{T)Ni_m;ɟpߣ@ȉκ7ח ؏1`E֘Ԝ YمWȃgCb#h*0O-2ANlB/}Fi /Qz/% NB!65n /.UO ۨ&pLnP.MQ"&L0 %-4:ʰoxCv 'k5lɖ ڰͲN> IO 1pD+Ikj/吱fsSQUNKӦP"i%CBC-;+ AU2qW!=Pg aa'͛tKY sb)0ǤXj/fߚ1zqDŽiqN +pmх؏nqf1(SJa+'1YB i-p7$NpL!V"Qd(4R&Dr$0!!2!oo[RM$',2 !n 02@BaBAR:#{MR%CD1 q&{vܯwH-ʏ*M#+n2' b'S#'(#Q" Q) -B.2 WB..2%r/r/// 0/31r1K/U%%p !ő+b-'3s,,Ւ(r.Q12$S55Cr05S-is5i30c5W K6uS7 2a393mj'A@E3|J47ws.r6R538a-78s6s8;7612GQ2ks횳'iiDF:s-s;;a">{AAǓ/4By6%TԥTLLQL/C 5R%5R۔Qo"*K.Q-5E65~:UN55TTQQ5RS%6VTcTuV3Sb䢬TbiE&a$>lLYnWGʘJ(k,&ttD{BXh\5'&aj,4 L\s)Y nYW W*XʜZ3|U.Td`tΈ\oX˕`ߣVs&YP,_-켚ĜØ >vlL(F͜6wDfvP l6bV$6v1VX^}4CT^rc,머֮>l*ʷ@Vv@I^rRɒrֿ掍9حloboLM)7CKb-j *U} LʹU_e`"ܖ7‡%mբQGn;&r,S#=C#iN($^+4ʂ sM ͬ{OLˢJaDh~tm6uoHf}mfwnVw9oR; 2-R-'7)) /b/vqlc+sr+kQzWl9Zww&mAɀh*j7n~co#Wm?jqR'7(K 50.)S5' [>r"k>r HV̔xL_By(~N}yIfլhv֎.~MG3A3: 2K.Jy U1Z3;wB@@BӑSX6T8S5O /ي3yb71O!@Oa@ HOQ+;Idhy*7s}xRHIyM3tPT%=O8sM~&WQtMO4N=[IӉٟFuYѠY3&!RvAG)-1:5z9=GVPAGKy7)qxuYUڥKm=0Uaus}Z7KUeptsZ17δEǮ$:cZqjdUG}f`!Śh,'bmJpizdگKOklont(2Di{zyDZw!JˈlNp~|HאfgwViMgeg|mwzkh{6Px,ppBq:'+`:) r%AR׼CIsY>)tJyI5CJPy"w_9R5l-\7sx{.l$BvZViղ҅mYGԝ:GٿKY[yHi=B}'tJٮ?Cu3:?Z?]@@ ޓٟUAQy=6YחЍ% 2azTݝM9ޟTÙ!| Onp"Mi0]\PߥtOYuy2'>~پ>D]QzR!=v=>S{9㾁*y:L嵦o򭺒S1\!vM&1ޤgVOk\g\yEOR?#5_u%Ebz_a:hYSfEF=gWMhV+_VGE4!O:0… :|1ĉ+Z(`BGGY$C,U\2dJ&Tٲ̝/kvt TK7i<:(ѥG{n4P+BMuƄ.$6lX~=R^6mڽL)pTZI2u$H:~ YƼ+[YdTt1ɚNC&}ziNESuSY$i짰N5RzC Yѓ:*BBVJkFTR^(mkIj?kTC뀵Dl*J,jJ[T6+m[ٖtn*z'1҈]Mh;icbE>@ czQ64iC4&2k!=ݻ 9<7ZニrA ; 5} ]1ǫVjKjq*ou^[}F096~'}ݻŔp/܊7wip= qOMؚo9ؘy`{.:T/cڨzmٽ] 8=pzH  YCV\[*蟛ybf_OW$EbO ֋ΐ.BC3}<(MHDcW9etm/#-//˜"黌Ng!l!^pi 3,`֫&HA0tBta]2X٥KCŭp"%׸L ;` E6d`u*Ǯ$*mue<:d1>N+$ LN-pA62$$hi\ds"OcjxH#%2%D&}&BhO(X|w ̔2yBe*`Αf sĕɵǎֵ(ӊ/ N ʓ1N#23Niʍ2M7uZe: J:C2Yq<uVrV%a71Z-_7?+6pyN3AjQLfr[ճ^P$$VKaZ!(D'%-kD S)e`bIM*/mxUsEOyu̯-H]HY&"TVQ5tOӇD^t3Ju}ZGb-] Jݕ!yu^ZTE+z?%!?㟽YVlG_ vmovo w-q\fue[-L$lBm;i!k(ԆTdRنoF]Qt]ֻ+`xˋx9B;v{tY]i pe1<0xğ|Va\,)ZoEarLfU9HBrU}ݨggm7`;uJ5eHgnlcżKG*x,C|&TuMni`G|>! IL+-4IZsB&cIe^4DwsN3X:yF}EAKNt<;WFáH6֚d`i44}ipU!o:V5SK4[Ӫ;}O:6d1t3ݶ'ޒLI=K_J~[c&FdDNhBV- ۤګ3 W[|KM[VAJyрtyLORo\K>r-qL15 FW-tA91BzV< xv*c t2#}6Pw:D<0a Jpj .5ů Si񦥃Ĥ%/ 4#r8zeX0:/+sWsq;kx̓VMMv: y_ɚKkl.z#ZSJ`gS8Q2T.͏uě7loLǫap<Z2TR c?"]}Ӌ~i>/mJ\Hh Ȁ 耯x$\1'X2cwZ|ŁEZRƁ!X^G~ӂ]v\B%]b//3c4<8'skEsma,~MS1. f;^v_=SZe(b_bDY;{Y W :}ߓM۶J=X}㸝eyXL>y`ڍ>H@.j̧R'ϻ9,X5ⳳ}\46mpr>to6 {Bd2wYW!ؚR]fr$˒.L^7n{Yz!Ble8!9b {o̗_x/dfȬJ^}${N-}"\eZ;؃JωNs\qn>;^ vnmCn4'(nDȱȩ/J\J!cd). P+ĵR7F;=?A?En9e1jD8ઋOoWNoiK_2r9b8[q6t$VYFO =/RAS|«-2aϟO>z:ޛv?֕ǫv 8=AA>Q;&Y3߰@Wܵ[k3t{ny}ȁMNJKbd}yt?mM0S! h~karCcm-ݝcKv. > HEPA*LxC &lpC^ŏlĐM~ҥS^l ͍\tGSJNDn*EiSQNZf*SnT*L:E SԮU `Ĉlu9B]F{p߾%߼/ct8rF/WVٙ@3{Tiyb"/bNq3fQd:vk/v]eٱy|ӱM >Az_׏ŷ~۬W˯I_w~kg‹?,?ҿL?޳1[@ zҊ:[@+3 2㿃  lA̓ Ԋ314C1YC+P$<{A# 8{9y:B,DC4+@ D/,>DIDKD DMDNTJDP EQQ,ES`MNN ϑ3NJN<4M P$8A\NOOO!OTΣK6MT00 @O P PS5PO<}]KP]QmQ 215>P>4PR"-R#E< ͛$͛DT+(@4@'u# S1S2} n͛Pp-pN<5-S=S>3 5Pǜ+8N=xP4PA5E>TITS4P2,hC=0xHmyT0TTMUUKK@N ,ZHR Appendices PKmPKZEOEBPS/ap_jdevlibs.htm ADF Runtime Libraries

A ADF Runtime Libraries

This appendix provides a reference of the contents of ADF runtime libraries that are deployed into Oracle WebLogic Server to support ADF applications.

The following ADF runtime libraries are described:

A.1 Using JDeveloper to Find the ADF Runtime Library

In addition to the listings in this appendix, you can also use JDeveloper to find a JAR's corresponding ADF runtime library.

To find the ADF runtime library for a JAR:

  1. In JDeveloper, select Tools > Manage Libraries.

  2. In the Manage Libraries dialog Libraries tab, click the Search icon and select Jar name from the dropdown list.

  3. In the search field, enter the name of the JAR and click the search icon.

A.2 adf.oracle.domain.webapp.war Library

Table A-1 lists the JAR files that are packaged into the adf.oracle.domain.webapp.war file and their corresponding ADF runtime library.

Table A-1 adf.oracle.domain.webapp.war Library

JARADF Library

oracle.adf.controller_11.1.1/adf-controller-api.jar

ADF Controller Runtime

oracle.adf.controller_11.1.1/adf-controller-rt-common.jar

ADF Controller Runtime

oracle.adf.controller_11.1.1/adf-controller.jar

ADF Controller Runtime

oracle.adf.pageflow_11.1.1/adf-pageflow-dtrt.jar

ADF Page Flow Runtime

ADF Designtime API

oracle.adf.pageflow_11.1.1/adf-pageflow-fwk.jar

ADF Page Flow Runtime

oracle.adf.pageflow_11.1.1/adf-pageflow-impl.jar

ADF Page Flow Runtime

oracle.adf.pageflow_11.1.1/adf-pageflow-rc.jar

ADF Page Flow Runtime

oracle.adf.view_11.1.1/adf-dt-at-rt.jar

ADF Model Runtime

ADF Designtime API

oracle.adf.view_11.1.1/adf-dynamic-faces.jar

ADF Faces Dynamic Components

oracle.adf.view_11.1.1/adf-faces-changemanager-rt.jar

ADF Faces Change Manager Runtime 11

oracle.adf.view_11.1.1/adf-faces-databinding-dt-core.jar

ADF Designtime API

oracle.adf.view_11.1.1/adf-faces-databinding-rt.jar

Trinidad Databinding Runtime

ADF Faces Databinding Runtime

oracle.adf.view_11.1.1/adf-faces-templating-dt-core.jar

ADF Designtime API

oracle.adf.view_11.1.1/adf-faces-templating-dtrt.jar

ADF Designtime API

oracle.adf.view_11.1.1/adf-richclient-api-11.jar

Trinidad Databinding Runtime

ADF Faces Runtime 11

oracle.adf.view_11.1.1/adf-richclient-automation-11.jar

Oracle Extended Selenium (deprecated)

Oracle Extended Selenium (Server excluded)

oracle.adf.view_11.1.1/adf-richclient-impl-11.jar

ADF Faces Runtime 11

oracle.adf.view_11.1.1/adf-share-web.jar

NA

oracle.adf.view_11.1.1/adf-view-databinding-dt-core.jar

ADF Designtime API

oracle.adf.view_11.1.1/adf.constants.jar

NA

oracle.adf.view_11.1.1/batik-anim.jar

ADF DVT Faces Runtime

oracle.adf.view_11.1.1/batik-awt-util.jar

ADF DVT Faces Runtime

oracle.adf.view_11.1.1/batik-bridge.jar

ADF DVT Faces Runtime

oracle.adf.view_11.1.1/batik-codec.jar

ADF DVT Faces Runtime

oracle.adf.view_11.1.1/batik-css.jar

ADF DVT Faces Runtime

oracle.adf.view_11.1.1/batik-dom.jar

ADF DVT Faces Runtime

oracle.adf.view_11.1.1/batik-ext.jar

ADF DVT Faces Runtime

oracle.adf.view_11.1.1/batik-extension.jar

ADF DVT Faces Runtime

oracle.adf.view_11.1.1/batik-gui-util.jar

ADF DVT Faces Runtime

oracle.adf.view_11.1.1/batik-gvt.jar

ADF DVT Faces Runtime

oracle.adf.view_11.1.1/batik-parser.jar

ADF DVT Faces Runtime

oracle.adf.view_11.1.1/batik-script.jar

ADF DVT Faces Runtime

oracle.adf.view_11.1.1/batik-svg-dom.jar

ADF DVT Faces Runtime

oracle.adf.view_11.1.1/batik-svggen.jar

ADF DVT Faces Runtime

oracle.adf.view_11.1.1/batik-swing.jar

ADF DVT Faces Runtime

oracle.adf.view_11.1.1/batik-transcoder.jar

ADF DVT Faces Runtime

oracle.adf.view_11.1.1/batik-util.jar

ADF DVT Faces Runtime

oracle.adf.view_11.1.1/batik-xml.jar

ADF DVT Faces Runtime

oracle.adf.view_11.1.1/bundleresolver.jar

Resource Bundle Variable Resolver

oracle.adf.view_11.1.1/dvt-basemaps.jar

ADF DVT Faces Runtime

oracle.adf.view_11.1.1/dvt-databinding-dt-core.jar

ADF Designtime API

oracle.adf.view_11.1.1/dvt-databindings.jar

BI Data Control Runtime

ADF DVT Faces Databinding Runtime

oracle.adf.view_11.1.1/dvt-faces.jar

ADF DVT Faces Runtime

oracle.adf.view_11.1.1/dvt-facesbindings.jar

BI Data Control Runtime

ADF DVT Faces Databinding Runtime

oracle.adf.view_11.1.1/dvt-jclient.jar

Oracle BI Graph

ADF DVT Core Runtime

ADF Swing Runtime

ADF DVT Faces Runtime

oracle.adf.view_11.1.1/dvt-trinidad.jar

ADF DVT Core Runtime

ADF DVT Faces Runtime

oracle.adf.view_11.1.1/dvt-utils.jar

BI Data Control Runtime

Oracle BI Graph

ADF DVT Core Runtime

ADF Swing Runtime

ADF DVT Faces Runtime

oracle.adf.view_11.1.1/inspect4.jar

Obsolete JDeveloper Extension SDK

Oracle JEWT

oracle.adf.view_11.1.1/jewt4.jar

BC4J Tester

Obsolete JDeveloper Extension SDK

Oracle Help for Java

Oracle JEWT

oracle.adf.view_11.1.1/prefuse.jar

ADF DVT Faces Runtime

oracle.adf.view_11.1.1/trinidad-api.jar

ADF Faces Runtime 11

Trinidad Runtime 11

oracle.adf.view_11.1.1/trinidad-impl.jar

ADF Faces Runtime 11

Trinidad Runtime 11

oracle.adf.view_11.1.1/xml-apis-ext.jar

ADF DVT Faces Runtime

oracle.facesconfigdt_11.1.1/facesconfigmodel.jar

ADF Faces Change Manager Runtime 11

oracle.facesconfigdt_11.1.1/taglib.jar

ADF Faces Change Manager Runtime 11

oracle.xdk_11.1.0/xml.jar

MDS Runtime Dependencies

Oracle XML Parser v2

XSQL Runtime

velocity-dep-1.4.jar

ADF Designtime API


A.3 adf.oracle.domain.ear Library

Table A-2 lists the JAR files that are packaged into the adf.oracle.domain.ear file and their corresponding ADF runtime library.

Table A-2 adf.oracle.domain.ear Library

JARADF Library

groovy-all-1.6.3.jar

ADF Model Runtime

ADF Model Generic Runtime

BC4J Runtime

oracle.adf.model_11.1.1/adf-controller-schema.jar

ADF Controller Schema

oracle.adf.model_11.1.1/adf-faces-registration.jar

NA

oracle.adf.model_11.1.1/adf-runtime-mbean.jar

NA

oracle.adf.model_11.1.1/adf-sec-idm-dc.jar

User and Role Data Control

oracle.adf.model_11.1.1/adfbcsvc-client.jar

BC4J Service Client

oracle.adf.model_11.1.1/adfbcsvc-registration.jar

Kava SDO

oracle.adf.model_11.1.1/adfbcsvc-share.jar

BC4J Service Runtime

BC4J Service Client

BC4J System Catalog

oracle.adf.model_11.1.1/adfbcsvc.jar

BC4J Service Runtime

oracle.adf.model_11.1.1/adfdt_common.jar

ADF Model Runtime

ADFm Designtime API

oracle.adf.model_11.1.1/adflibfilter.jar

ADF Common Web Runtime

oracle.adf.model_11.1.1/adflibrary.jar

ADF Model Runtime

ADFm Designtime API

oracle.adf.model_11.1.1/adfm-debugger.jar

BC4J Tester

oracle.adf.model_11.1.1/adfm-sqldc.jar

ADF SQL Data Control Runtime

oracle.adf.model_11.1.1/adfm.jar

BC4J EJB Client

ADF Model Runtime

BC4J Oracle Domains

ADF Model Generic Runtime

BC4J Runtime

ADF Swing Runtime

ADF Model API

BC4J EJB Runtime

BC4J Client

BC4J IAS Client

oracle.adf.model_11.1.1/adfmportlet.jar

NA

oracle.adf.model_11.1.1/adfmweb.jar

ADF Web Runtime

oracle.adf.model_11.1.1/adftags.jar

Oracle ADF DataTag

oracle.adf.model_11.1.1/adftransactionsdt.jar

ADF Model Runtime

ADFm Designtime API

ADF Designtime API

oracle.adf.model_11.1.1/bc4j-mbeans.jar

BC4J Runtime

oracle.adf.model_11.1.1/bc4jhtml.jar

BC4J Struts Runtime

oracle.adf.model_11.1.1/bc4jimdomains.jar

Oracle Intermedia ADF Swing

Oracle Intermedia

oracle.adf.model_11.1.1/bc4jsyscat.jar

BC4J System Catalog

oracle.adf.model_11.1.1/datatags.jar

NA

oracle.adf.model_11.1.1/db-ca.jar

BC4J EJB Client

ADF Model Runtime

BC4J Tester

BC4J Runtime

BC4J Client

BC4J IAS Client

DB Runtime (db-tests)

oracle.adf.model_11.1.1/dvt-databindings-mds.jar

ADF DVT Faces Databinding MDS Runtime

oracle.adf.model_11.1.1/jdev-cm.jar

BC4J EJB Client

ADF Model Runtime

BC4J Tester

BC4J Runtime

Obsolete JDeveloper Extension SDK

BC4J Client

BC4J IAS Client

Connection Manager

oracle.adf.model_11.1.1/jmxdc.jar

JMX Data Control

oracle.adf.model_11.1.1/jr_dav.jar

Resource Catalog Service

oracle.adf.model_11.1.1/mds-dc.jar

NA

oracle.adf.model_11.1.1/oicons.jar

ADFm Designtime API

oracle.adf.model_11.1.1/ordhttp.jar

Oracle Intermedia ADF Swing

Oracle Intermedia

oracle.adf.model_11.1.1/ordim.jar

Oracle Intermedia ADF Swing

Oracle Intermedia

oracle.adf.model_11.1.1/rcs-adflib-rt.jar

NA

oracle.adf.model_11.1.1/rcsrt.jar

Resource Catalog Service

oracle.adf.model_11.1.1/regexp.jar

BC4J Tester

oracle.xdk_11.1.0/oraclexsql.jar

NA

oracle.xdk_11.1.0/xsqlserializers.jar

XSQL Runtime


A.4 System Classpath

Table A-3 lists the JAR files that are loaded into the system classpath and their corresponding ADF runtime library.

Table A-3 System Classpath

JARADF Library

features/adf.security_11.1.1.jar

NA

features/adf.share_11.1.1.jar

NA

features/adf.share.ca_11.1.1.jar

NA

oracle.adf.security_11.1.1/adf-controller-security.jar

ADF Model Runtime

ADF Common Runtime

oracle.adf.security_11.1.1/adf-share-security.jar

ADF Model Runtime

BC4J Security

ADF Common Runtime

oracle.adf.share_11.1.1/adf-share-support.jar

MDS Runtime Dependencies

ADF Model Generic Runtime

BC4J Runtime

BC4J Security

ADF Common Runtime

oracle.adf.share_11.1.1/adf-share-wls.jar

NA

oracle.adf.share_11.1.1/adflogginghandler.jar

MDS Runtime Dependencies

BC4J Tester

ADF Model Generic Runtime

BC4J Runtime

ADF Common Runtime

oracle.adf.share_11.1.1/adfsharembean.jar

BC4J Runtime

ADF Common Runtime

oracle.adf.share_11.1.1/commons-el.jar

ADF Model Runtime

MDS Runtime Dependencies

ADF Model Generic Runtime

BC4J Runtime

oracle.adf.share_11.1.1/jsp-el-api.jar

ADF Model Runtime

MDS Runtime Dependencies

ADF Model Generic Runtime

BC4J Runtime

oracle.adf.share_11.1.1/oracle-el.jar

ADF Model Runtime

MDS Runtime Dependencies

ADF Model Generic Runtime

BC4J Runtime

oracle.adf.share.ca_11.1.1/adf-share-base.jar

ADF Common Web Runtime

MDS Runtime Dependencies

ADF Model Generic Runtime

BC4J Runtime

ADF Swing Runtime

BC4J Security

ADF Common Runtime

oracle.adf.share.ca_11.1.1/adf-share-ca.jar

MDS Runtime Dependencies

ADF Model Generic Runtime

BC4J Runtime

BC4J Security

ADF Common Runtime

oracle.javatools_11.1.1/javamodel-rt.jar

Java EE 1.5

J2EE 1.4

JAX-RPC Client

oracle.javatools_11.1.1/javatools-jndi-local.jar

NA

oracle.javatools_11.1.1/javatools-nodeps.jar

ADF Common Web Runtime

MDS Runtime Dependencies

Java EE 1.5

ADFm Designtime API

J2EE 1.4

JAX-RPC Client

DB Runtime (db-tests)

oracle.javatools_11.1.1/resourcebundle.jar

ADF Desktop Integration Runtime

Resource Bundle Support

BC4J Runtime

oracle.mds_11.1.1/mdslcm-client.jar

NA

oracle.mds_11.1.1/mdslcm.jar

NA

oracle.mds_11.1.1/mdsrt.jar

MDS Runtime

oracle.mds_11.1.1/oramds.jar

MDS Runtime Dependencies

oracle.xmlef_11.1.1/xmlef.jar

MDS Runtime Dependencies

ADF Faces Change Manager Runtime 11

ADF Model Generic Runtime

Obsolete JDeveloper Extension SDK

oracle.bali.share_11.1.1/share.jar

MDS Runtime Dependencies

BC4J Tester

ADF Model Generic Runtime

Oracle Help for Java

Oracle JEWT


A.5 adf.desktopintegration.war Library

Table A-4 lists the JAR files that are packaged into the adf.desktopintegration.war file and their corresponding ADF runtime library.

Table A-4 adf.desktopintegration.war Library

JARADF Library

oracle.adf.desktopintegration_11.1.1/adf-desktop-integration.jar

ADF Desktop Integration Runtime


PK^IJ>4PKZEOEBPS/partpage2.htm Administering ADF Applications PKPKZEOEBPS/wlst.htm WLST Command Reference for ADF Applications

4 WLST Command Reference for ADF Applications

This chapter describes the WLST commands you can use to deploy, manage, and configure Oracle ADF applications to Oracle WebLogic Server.

For wsadmin commands reference for the IBM WebSphere Application Server, see Appendix B, "wsadmin Command Reference for ADF Applications."

This chapter includes the following sections:

4.1 Overview of Custom WSLT Commands for Oracle ADF

Use the ADF-based URL Connections WLST commands to navigate the hierarchy of configuration or runtime beans and control the prompt display. Use the getADFMArchiveConfig commands to manage the ADFMArchiveConfig object.

To use the custom WLST commands for Oracle ADF, you must invoke the WLST script from the Oracle Common home. For more information about other WLST commands, such as custom Metadata Services (MDS) commands, see the Oracle Fusion Middleware WebLogic Scripting Tool Command Reference.

4.2 ADF-Specific WLST Commands

Use the commands in Table 4-1 for ADF applications.

Table 4-1 Browse Commands for WLST Configuration

Use this command...To...Use with WLST...

adf_createFileUrlConnection


Create a new ADF file connection.

Online or Offline

adf_createHttpUrlConnection


Create a new ADF URL connection.

Online or Offline

adf_setURLConnectionAttributes


Set or edit the attributes of a newly created or existing ADF connection.

Online or Offline

adf_listUrlConnection


List a new URL connection.

Online or Offline

getADFMArchiveConfig


Returns a handle to the ADFMArchiveConfig object for the specified archive.

Online or Offline

exportJarVersions


Export CSV format of JARs versions from current ORACLE_HOME at a specified location..

Offline

exportApplicationJarVersions


Export CSV format of JARs versions of a specified application at a specified location.

Online

exportApplicationSelectedJarVersions


Export CSV format of JARs versions from current ORACLE_HOME at a specified location in coordination with the Versions.xml file.

Online


4.2.1 adf_createFileUrlConnection

Use with WLST: Online or Offline.

4.2.1.1 Description

Use this command to creates a new connection based on the oracle.adf.model.connection.url.FileURLConnection connection class.

4.2.1.2 Syntax

adf_createFileURLConnection(appName, name, URL)
ArgumentDefinition
appName

Application name for which the connection will be created.

name

The name of the new connection.

URL

The URL associated with this connection.


4.2.1.3 Example

adf_createFileURLConnection('myapp','tempDir','/scratch/tmp')

4.2.2 adf_createHttpUrlConnection

Use with WLST: Online or Offline.

4.2.2.1 Description

Use this command to create a new connection based on the oracle.adf.model.connection.url.HttpURLConnection connection type class.

4.2.2.2 Syntax

adf_createHttpURLConnection (appName, name, [URL], [authenticationType], [realm], [user], [password])
ArgumentDefinition
appName

Application name for which the connection will be created.

name

The name of the new connection.

url

(Optional) The URL associated with this connection.

authenticationType

(Optional) The default is basic.

realm

(Optional) If this connection deals with authentication, then this should be set. The default is basic.

user

(Optional)

password

(Optional)


4.2.2.3 Example

adf_createHttpURLConnection('myapp','cnn','http://www.cnn.com') 

4.2.3 adf_setURLConnectionAttributes

Use with WLST: Online or Offline.

4.2.3.1 Description

Use this command to set or edit the attributes of a newly created or existing ADF connection.

4.2.3.2 Syntax

adf_setURLConnectionAttributes(appname, connectionname, attributes)
ArgumentDefinition
appname

Application name.

connectionname

The name of the connection.

attributes

The array containing attributes to set in key/value pairs.


4.2.3.3 Example

adf_setURLConnectionAttributes ('myapp','cnn','ChallengeAuthenticationType:digest',
'AuthenticationRealm:XMLRealm'

4.2.4 adf_listUrlConnection

Use with WLST: Online or Offline.

4.2.4.1 Description

Use this command to list the connections of the application.

4.2.4.2 Syntax

adf_listURLConnection(appname)
ArgumentDefinition
appname

Application name.


4.2.4.3 Example

adf_listURLConnection ('myapp')

4.2.5 getADFMArchiveConfig

Use with WLST: Online or Offline.

4.2.5.1 Description

Returns a handle to the ADFMArchiveConfig object for the specified archive. The returned ADFMArchiveConfig object's methods can be used to change application configuration in an archive.

The ADFMArchiveConfig object provides the following methods:

  • setDatabaseJboSQLBuilder([value]) - Sets the Database jbo.SQLBuilder attribute.

  • getDatabaseJboSQLBuilder() - Returns the current value of the jbo.SQLBuilder attribute.

  • setDatabaseJboSQLBuilderClass([value]) - Sets the Database jbo.SQLBuilderClass attribute. Value is the full name of the custom builder class.

  • getDatabaseJboSQLBuilderClass() - Returns the current value of the jbo.SQLBuilderClass attribute.

  • setDefaultRowLimit([value]) - Sets the defaults rowLimit attribute. Value is a long specifying the row limit (Default -1).

  • getDefaultRowLimit() - Returns the current value of the rowLimit attribute.

  • save([toLocation]) - If you specify the toLocation, then the changes will be stored in the target archive file and the original file will remain unchanged. Otherwise, the changes will be saved in the original file itself.

4.2.5.2 Syntax

archiveConfigObject = ADFMAdmin.getADFMArchiveConfig(fromLocation)
ArgumentDefinition
fromLocation 

The name of the ear file, including its complete path.


The syntax for setDatabaseJboSQLBuilder([value]) is:

archiveConfigObject.setDatabaseJboSQLBuilder([value])
ArgumentDefinition
value 

The value of the jbo.SQLBuilder attribute. Valid values are: 'Oracle' (Default), 'OLite', 'DB2', 'SQL92', 'SQLServer', or 'Custom. If 'Custom' is specified, then the jbo.SQLBuilderClass attribute should also be set.


The syntax for getDatabaseJboSQLBuilder() is:

archiveConfigObject.getDatabaseJboSQLBuilder()

The syntax for setDatabaseJboSQLBuilderClass([value]) is:

archiveConfigObject.setDatabaseJboSQLBuilderClass([value])
ArgumentDefinition
value 

The value of the jbo.SQLBuilderClass attribute.


The syntax for getDatabaseJboSQLBuilderClass) is:

archiveConfigObject.getDatabaseJboSQLBuilderClass()

The syntax for setDefaultRowLimit([value]) is:

archiveConfigObject.setDefaultRowLimit([value])
ArgumentDefinition
value 

The value of the rowLimit attribute.


The syntax for getDefaultRowLimit() is:

archiveConfigObject.getDefaultRowLimit([value])

The syntax for save([toLocation]) is:

archiveConfigObject.save([toLocation])
ArgumentDefinition
toLocation 

The file name along with the absolute path to store the changes.


4.2.5.3 Example

In the following example. the jbo.SQLBuilder attribute is set to 'DB2'.

wls:/offline> archive =
               ADFMAdmin.getADFMArchiveConfig(fromLocation='/tmp/testArchive.ear')
wls:/offline> archive.setDatabaseJboSQLBuilder(value='DB2') 
wls:/offline> archive.save() 

In the following example, the jbo.SQLBuilder attribute is removed so that application default is used.

wls:/offline> archive =
              ADFMAdmin.getADFMArchiveConfig(fromLocation='/tmp/testArchive.ear')
wls:/offline> archive.setDatabaseJboSQLBuilder()
wls:/offline> archive.save(toLocation='/tmp/targetArchive.ear')

In the following example, the jbo.SQLBuilder attribute is set to 'Custom', and the jbo.SQLBuilderClass attribute is set to the class 'com.example.CustomBuilder'.

wls:/offline> archive =
              ADFMAdmin.getADFMArchiveConfig(fromLocation='/tmp/testArchive.ear')
wls:/offline> archive.setDatabaseJboSQLBuilder('Custom') 
wls:/offline> archive.setDatabaseJboSQLBuilderClass('com.example.CustomBuilder') 
wls:/offline> archive.save(toLocation='/tmp/targetArchive.ear')

In the following example, the rowLimit attribute is set to 100.

wls:/offline> archive = getADFMArchiveConfig(fromLocation='/tmp/testArchive.ear')
wls:/offline> archive.setDefaultRowLimit(100)
wls:/offline> archive.save(toLocation='/tmp/targetArchive.ear')

4.2.6 exportJarVersions

Use with WLST: Offline.

4.2.6.1 Description

Use to export CSV format of JARs versions from current ORACLE_HOME at a specified location. Exported JARs versions information can be opened in Oracle OpenOffice or MicroSoft Excel.

4.2.6.2 Syntax

exportJarVersions(path)
ArgumentDefinition
path

Location to extract JARs versions.


4.2.6.3 Example

This example shows how JARs versions are exported to /tmp/export-MyApp-Versions.csv. R/W privileges for the CSV file need to be verified.

wls:/offline>exportJarVersions('/tmp/export-MyApp-Versions.csv')

4.2.7 exportApplicationJarVersions

Use with WLST: Online.

4.2.7.1 Description

Used to export CSV format of runtime JARs versions of a specified application at a specified location.

4.2.7.2 Syntax

exportApplicationJarVersions(applicationName, path)
ArgumentDefinition
applicationName

Application name to export JARs versions

path

Location to export JARs versions.


4.2.7.3 Example

This example shows how MyApp runtime JARs versions are exported to /tmp/export-MyApp-Versions.csv. R/W privileges for the CSV file need to be verified.

wls:/DefaultDomain/serverConfig>exportApplicationJarVersions('MyApp',
'/tmp/export-MyApp-Versions.csv')

4.2.8 exportApplicationSelectedJarVersions

Use with WLST: Online.

4.2.8.1 Description

Used to export CSV format of JARs versions of selected JARs at a specified location.

4.2.8.2 Syntax

exportApplicationSelectedJarVersions(applicationName, path, jarsLocation)
ArgumentDefinition
applicationName

Application name to export JARs versions.

path

Location to extract JARs versions.

jarsLocation

Optional list of selected JARs. If not specified, default JARs runtime version list from %WLSDOMAIN%/config/fmwconfig/Versions.xml will be exported.

If the selectedJars property in Versions.xml is empty, version information of adfm.jar, adf-richclient-impl-11.jar, adf-controller.jar, adf-pageflow-impl.jar, adf-share-support.jar and mdsrt.jar will be exported.


4.2.8.3 Example

This example shows how JARs versions are exported to /tmp/export-MyApp-Versions.csv using the selectedJars property of the Versions.xml file. In this case, since the jarsLocation parameter is not specified, the libraries listed in the selectedJars property of the Versions.xml file will be exported. R/W privileges for the CSV file need to be verified.

wls:/offline>exportApplicationSelectedJarVersions('MyApp',
'/tmp/export-MyApp-Versions.csv') 

Versions.xml
<Diagnostics xmlns="xmlns.oracle.com/adf/diagnostics">
  <Versions xmlns="xmlns.oracle.com/adf/diagnostics/versions"
    exportVersionsOnApplicationStartup="true" 
    selectedJars="$ORACLE_HOME$/modules/oracle.adf.model_11.1.1/adfm.jar;
      $ORACLE_HOME$/modules/oracle.adf.view_11.1.1/adf-richclient-impl-11.jar;
      $ORACLE_HOME$/modules/oracle.adf.controller_11.1.1/adf-controller.jar;
      $ORACLE_HOME$/modules/oracle.adf.pageflow_11.1.1/adf-pageflow-impl.jar;
      $ORACLE_HOME$/modules/oracle.adf.share_11.1.1/adf-share-support.jar;
      $ORACLE_HOME$/modules/oracle.mds_11.1.1/mdsrt.jar" />
</Diagnostics>

This example shows how JARs versions are exported to /tmp/export-MyApp-Versions.csv using the jarsLocation parameter. In this case, the libraries passed explicitly in the jarsLocation parameter will be exported. R/W privileges for the CSV file need to be verified.

wls:/offline>exportApplicationSelectedJarVersions('MyApp',
'/tmp/export-MyApp-Versions.csv',
'$ORACLE_HOME$/modules/oracle.adf.model_11.1.1/adfm.jar;$ORACLE_HOME$/modules/oracle.adf.view_11.1.1/adf-richclient-impl-11.jar') 
PK@hOEPKZEOEBPS/title.htmR Oracle Fusion Middleware Administrator's Guide for Oracle Application Development Framework 11g Release 2 (11.1.2.3.0)

Oracle® Fusion Middleware

Administrator's Guide for Oracle Application Development Framework

11g Release 2 (11.1.2.3.0)

E16179-04

August 2012

Documentation for Oracle Application Development Framework (Oracle ADF) administrators that describes how to deploy, monitor, and configure ADF applications.


Oracle Fusion Middleware Administrator's Guide for Oracle Application Development Framework 11g Release 2 (11.1.2.3.0)

E16179-04

Copyright © 2009, 2012 Oracle and/or its affiliates. All rights reserved.

Primary Authors: Peter Jew (Lead), Liza Rekadze

Contributing Author: Odile Sullivan-Tarazi, Himanshu Marathe, Cammy Moore

Contributors: Lynn Munsinger, Duncan Mills, Dipankar Bajpai, Harry Hsu, Ray Maslinski

This software and related documentation are provided under a license agreement containing restrictions on use and disclosure and are protected by intellectual property laws. Except as expressly permitted in your license agreement or allowed by law, you may not use, copy, reproduce, translate, broadcast, modify, license, transmit, distribute, exhibit, perform, publish, or display any part, in any form, or by any means. Reverse engineering, disassembly, or decompilation of this software, unless required by law for interoperability, is prohibited.

The information contained herein is subject to change without notice and is not warranted to be error-free. If you find any errors, please report them to us in writing.

If this is software or related documentation that is delivered to the U.S. Government or anyone licensing it on behalf of the U.S. Government, the following notice is applicable:

U.S. GOVERNMENT RIGHTS Programs, software, databases, and related documentation and technical data delivered to U.S. Government customers are "commercial computer software" or "commercial technical data" pursuant to the applicable Federal Acquisition Regulation and agency-specific supplemental regulations. As such, the use, duplication, disclosure, modification, and adaptation shall be subject to the restrictions and license terms set forth in the applicable Government contract, and, to the extent applicable by the terms of the Government contract, the additional rights set forth in FAR 52.227-19, Commercial Computer Software License (December 2007). Oracle America, Inc., 500 Oracle Parkway, Redwood City, CA 94065.

This software or hardware is developed for general use in a variety of information management applications. It is not developed or intended for use in any inherently dangerous applications, including applications that may create a risk of personal injury. If you use this software or hardware in dangerous applications, then you shall be responsible to take all appropriate fail-safe, backup, redundancy, and other measures to ensure its safe use. Oracle Corporation and its affiliates disclaim any liability for any damages caused by use of this software or hardware in dangerous applications.

Oracle and Java are registered trademarks of Oracle and/or its affiliates. Other names may be trademarks of their respective owners.

Intel and Intel Xeon are trademarks or registered trademarks of Intel Corporation. All SPARC trademarks are used under license and are trademarks or registered trademarks of SPARC International, Inc. AMD, Opteron, the AMD logo, and the AMD Opteron logo are trademarks or registered trademarks of Advanced Micro Devices. UNIX is a registered trademark of The Open Group.

This software or hardware and documentation may provide access to or information on content, products, and services from third parties. Oracle Corporation and its affiliates are not responsible for and expressly disclaim all warranties of any kind with respect to third-party content, products, and services. Oracle Corporation and its affiliates will not be responsible for any loss, costs, or damages incurred due to your access to or use of third-party content, products, or services.

PKUWRPKZEOEBPS/preface.htmA Preface

Preface

Welcome to Administrator's Guide for Oracle Application Development Framework.

Audience

This document is intended for system administrators who need to deploy, manage, monitor, and configure Oracle ADF applications using the Oracle Application Development Framework (Oracle ADF).

Documentation Accessibility

For information about Oracle's commitment to accessibility, visit the Oracle Accessibility Program website at http://www.oracle.com/pls/topic/lookup?ctx=acc&id=docacc.

Access to Oracle Support

Oracle customers have access to electronic support through My Oracle Support. For information, visit http://www.oracle.com/pls/topic/lookup?ctx=acc&id=info or visit http://www.oracle.com/pls/topic/lookup?ctx=acc&id=trs if you are hearing impaired.

Related Documents

For more information, see the following documents:

Oracle Fusion Middleware Fusion Developer's Guide for Oracle Application Development Framework

Oracle Fusion Middleware Administrator's Guide

Oracle Fusion Middleware Web User Interface Developer's Guide for Oracle Application Development Framework

Oracle Fusion Middleware Desktop Integration Developer's Guide for Oracle Application Development Framework

Oracle Fusion Middleware Security Guide

Oracle Fusion Middleware WebLogic Scripting Tool Command Reference

Oracle Fusion Middleware High Availability Guide

Oracle Fusion Middleware Third-Party Application Server Guide

Oracle JDeveloper 11g Online Help

Oracle JDeveloper 11g Release Notes, included with your JDeveloper 11g installation, and on Oracle Technology Network

Oracle Fusion Middleware Java API Reference for Oracle ADF Model

Oracle Fusion Middleware Java API Reference for Oracle ADF Controller

Oracle Fusion Middleware Java API Reference for Oracle ADF Lifecycle

Oracle Fusion Middleware Java API Reference for Oracle ADF Faces

Oracle Fusion Middleware JavaScript API Reference for Oracle ADF Faces

Oracle Fusion Middleware Java API Reference for Oracle ADF Data Visualization Components

Oracle Fusion Middleware Java API Reference for Oracle ADF Share

Oracle Fusion Middleware Java API Reference for Oracle ADF Business Components Browser

Oracle Fusion Middleware Java API Reference for Oracle Generic Domains

Oracle Fusion Middleware interMedia Domains Java API Reference for Oracle ADF Business Components

Oracle Fusion Middleware Java API Reference for Oracle Metadata Service (MDS)

Conventions

The following text conventions are used in this document:

ConventionMeaning

boldface

Boldface type indicates graphical user interface elements associated with an action, or terms defined in text or the glossary.

italic

Italic type indicates book titles, emphasis, or placeholder variables for which you supply particular values.

monospace

Monospace type indicates commands within a paragraph, URLs, code in examples, text that appears on the screen, or text that you enter.


PKtM@RPKZEOEBPS/cover.htm  Cover

Oracle Corporation

PK@t` PKZE OEBPS/toc.htm6@ɿ Table of Contents

Contents

Preface

What's New in This Guide in Release 11.1.2.3.0

Part I Understanding Oracle ADF

1 Introduction to Oracle ADF Administration

Part II Administering ADF Applications

2 Deploying ADF Applications

3 Monitoring and Configuring ADF Applications

4 WLST Command Reference for ADF Applications

Part III Appendices

A ADF Runtime Libraries

B wsadmin Command Reference for ADF Applications

C Configuring GlassFish Server

PKptk;@6@PK ZEoa,mimetypePKZE\B:iTunesMetadata.plistPKZEYuMETA-INF/container.xmlPKZE;l2OEBPS/monitor.htmPKZEl-OJOEBPS/dcommon/oracle.gifPKZEmmOEBPS/dcommon/oracle-logo.jpgPKZE0hsOEBPS/dcommon/cpyr.htmPKZEr.hcOEBPS/dcommon/blafdoc.cssPKZEo"nR M 8OEBPS/dcommon/doccd_epub.jsPKZE%0+ӧOEBPS/whatsnew_adfag.htmPKZEP8J66IOEBPS/ap_glassfish.htmPKZEff!OEBPS/ap_wsadmin.htmPKZE WOEBPS/toc.ncxPKZEFbcOEBPS/content.opfPKZE"$uOEBPS/partpage1.htmPKZE!%I?B{OEBPS/deploy.htmPKZEP""OEBPS/intro.htmPKZE^^#OEBPS/img/mon_configmbean.gifPKZE.OEBPS/img/deploy_preptarget.gifPKZEt2ll"7WOEBPS/img/mon_connectionsmbean.gifPKZELe"OEBPS/img/mon_configactivedata.pngPKZE=)2|-|]OEBPS/img/mon_mdsmbean.gifPKZEm$OEBPS/partpage3.htmPKZE^IJ>4*OEBPS/ap_jdevlibs.htmPKZEYOEBPS/partpage2.htmPKZE@hOEOEBPS/wlst.htmPKZEUWRmOEBPS/title.htmPKZEtM@ROEBPS/preface.htmPKZE@t` OEBPS/cover.htmPKZEptk;@6@ OEBPS/toc.htmPKr