Jeka - Reference Guide

Author : Jérôme Angibaud
Version : 0.9.13.RELEASE

Introduction
Tool Part
Jeka Runtime
Jeka from Command line
Jeka Main Class
Parse the Command Line
Populate System Properties from Configuration Files and Command line
Construct DEF CLASSPATH
Repositories
Compile Def Classes
Select Jeka class to run
Instantiate JkClass
Invoke Methods Specified in Jeka Command Line arguments
Error Handling
Jeka from IDE
IDE Classpath Setting
Launch from IDE
Wrapper mode
Wrapper Mode in Multi-Project
Embedded Mode
Default Path Settings
Specify Jeka User Home
Specify the Local Repository Cache
See Effective Paths
Inject Parameters
Environment Variables
System Properties
Jeka Options
Composite options
Option Documentation
Built-in Options
Implicit Parameters
Plugins
Invoking Plugin Methods and Options
Augmenting Plugins from Another Plugin.
Self Documentation
Binding Plugins Programmatically
Binding Plugins Dynamically
Plugin Lifecycle
Plugin Version Compatibility
Import External Runs
Principle
Declare Run Import
Option Propagation
Method propagation
Access Imported Runs Programmatically
Self Documentation
Library
Files
Classes from Jeka File API
Examples
System
Dependency Management
Concepts
Dependency
Dependency Set
Transitivity
Define a
Dependencies on Module
Dependencies on local files
Dependencies on files produced by computation
Resolve Dependencies
Publication
Publish to a Maven repository
Publish to a Ivy repository
Java Project Building
Base API
Testing API
Project API
Third Party Tool Integration
Eclipse
Intellij
Git
Maven

Introduction

What is Jeka ?

Jeka is both a build library, and a thin automation tool.

The build library helps for dealing with file sets, compilation, dependency management, testing, publishing, launching external processes, crypto signatures... in a glance, all regular things you need to build/publish projects and especially Java projects. The library can be used in any Java program and does not have any dependency.

The tool aims at executing Java source code from the command line. Its design eases reuse of build elements (logic, settings, doc, ...) across projects.

Combined, it provides a full feature build tool with endless possibilities of extension.

Although library and tool are bundled in the same jar, the library does not depend on the tool at all.

What is this document for ?

This document stands for reference guide. It provides:

If you are looking for how exactly Jeka behaves, or you want to get a pretty exhaustive list of Jeka features, you are in the right place.

If you are looking for further details about API, please consult Javadoc or source code. Jeka source code has been written with intelligibility in mind in order to navigate easily from the user code to the Jeka engine room. For Java developers, reading source code and putting break points troubleshoots faster than documentation/support most of the time.

Jeka philosophy is to be transparent and easy to master. We hope that no user will ever feel the need to buy some trainings or books to master it.

Tool Part

Lexical

The following concepts are used all over the tool section :

[PROJECT DIR] : Refers to the root folder of the project to build (or to run Jeka methods on). This is where you would put pom.xml or build.xml files.

[JEKA HOME] : Refers to the folder where Jeka is installed. You should find jeka.bat and jeka shell scripts at the root of this folder.

[JEKA USER HOME] : Refers to the folder where Jeka stores caches, binary repository and global user configuration. By default it is located at [USER DIR]/.jeka.

Def Classes : Java source files located under [PROJECT DIR]/jeka/def. They are compiled on the flight by Jeka when invoked from the command line.

Def Classpath : Classpath on which depends def classes to get compiled and Jeka classes to be executed. By default, it consists in Jeka core classes. it can be augmented with any third party lib or def Classpath coming from another project. Once def classes sources have been compiled, def Classpath is augmented with their .class counterpart.

Jeka Classes : Classes extending JkClass. Their commands can be invoked from the command line and their pubic fields set from the command line as well. Generally def classes contains one Jeka class though there can be many or none. CommandSet class can be a def class but can also be imported from a library or external project.

Jeka Methods : Java methods from Jeka classes which are invokable from Jeka command line. They must be instance method (not static), public, zero-args and returning void. Every method verifying these constraints is a command.

Options : This is a set of key-value used to inject parameters. Options can be mentioned as command line arguments, stored in specific files or hard coded in Jeka classes.

In a Glance, the Jeka tool consists in an engine able to run Java/Kotlin source code or compiled code from the command line.

Generally this code is intended to build Java projects but it can be used for any purpose.

In practice, your project has a structure respecting the following layout :

[Project Dir]
   |
   + jeka
      + boot             <-------- Put extra jars here to augment def Classpath.
      + def
         + MyCommands.java   <----- Class extending JkClass
         + MyUtility.java    <---- Utility class consumed by MyCommands
         + OtherUtility.kt   <---- Kotlin code is also accepted
      + output              <---- Build artifacts are generated here
   + src
      + main
          + java
          + resources
   + ...

A command class may look like :

import dev.jeka.core.tool.JkClass;import dev.jeka.core.tool.JkDefClasspath;import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.methods.GetMethod;
import dev.jeka.core.tool.JkDoc;
import com.google.common.base.MoreObjects;

@JkDefClasspath("commons-httpclient:commons-httpclient:3.1")  // Imports 3rd party library to be used by def classes
@JkDefClasspath("com.google.guava:guava:21.0")
public class MyCommands extends JkClass {    // The command class
    
    public String myParam1 = "myDefault";    // Overridable by injecting options in command line

    @JkDoc("Performs some tasks using http client")    // Only for self documentation purpose
    public void myMethod1() {                   // Run method (callable from command line)
        HttpClient client = new HttpClient();
        GetMethod getMethod = new GetMethod("http://my.url/" + myParam1);
        ....
    }
    
    public void myMethod2() {   // An other run method 
        MyUtility.soSomething();
        ...
    }

}

From [Project Dir], you can invoke any command method defined on MyCommands class from the command line.

For example, executing jeka myMethod1 myMethod2 -myParam1=foo does the following :

  1. compile sources located in jeka/def directory,
  2. instantiate a MyCommands instance,
  3. inject "foo" in the myParam1 field,
  4. invoke myMethod1(),
  5. invoke myMethod2().

If no command class are present in def classes, Jeka picks JkClass. In despite this class does not provide any particular methods, you can still perform full Java builds by invoking built-in 'java' plugin. For such, execute jeka clean java#pack (See Plugins).

Executing jeka or jeka help on command line displays all run methods and options for the current command class.

The following chapters detail about how the mechanism works and what you can do with.

Jeka Runtime

This chapter describes how to use Jeka with command line and mostly what happens behind the cover when Jeka is run.

Jeka is a pure Java application requiring JDK version 8 or higher. JDK is required and JRE is not sufficient as Jeka uses the JDK tools to compile def classes.

Jeka classes can be launched both from command line and from your IDE as regular Java main method.

Jeka from Command line

To ease launching Java processes from command line, Jeka provides shell script jeka.bat (for Windows) and jeka (for Unix like). They are located at root of JEKA HOME which is supposed to be in your PATH environment variable.

This script does the following :

Jeka Main Class

Jeka entry point is dev.jeka.core.tool.Main#main method.

 1. Parse the command line.
 2. Populate system properties from configuration files and command line.
 3. Construct DEF CLASSPATH by parsing DEF CLASSES source code.
 4. Compile DEF CLASSES using DEF CLASSPATH.
 5. Select the Jeka class to be run.
 6. Instantiate selected Jeka class, inject options and bind plugins on it.
 7. Invoke methods specified in command line arguments : methods are executed in the order they appear on the command line.

The following sub-sections detail about these steps.

Parse the Command Line

Jeka parses the command line and processes each arguments according the following pattern :

Populate System Properties from Configuration Files and Command line

Jeka loads system properties in order from :

The last loaded properties override the previous ones if there is some conflicts.

Jeka follows a similar process to load options. It loads in order :

The last loaded options override the previous ones if there is some conflicts.

Construct DEF CLASSPATH

In order to compile DEF CLASSES, Jeka has to compute DEF CLASSPATH first. With Jeka you can specify dependencies directly inside the source code using @JkDefClasspath or @JkDefImport annotations as shown below.

@JkDefClasspath("commons-httpclient:commons-httpclient:3.1")
@JkDefClasspath("com.google.guava:guava:18.0")
@JkDefClasspath("../local/library/bin")
public class HttpClientTasks extends JkClass {

    @JkDefImport("../another/project/using/jeka")
    private FooCommands fooCommands;  // FooCommands is a JkClass coming from another project
    
    ...

To achieve this, Jeka parses source code of all classes under jeka/def and add the detected imports to the def Classpath. Note that classes having a name starting by a '_' are skipped.

Repositories

When a dependency is expressed as a maven/ivy module, Jeka tries to resolve it against a binary repository.

Jeka defines this url by looking at following options, in order :

If a repository needs credentials, you need to supply it through Jeka options repo.[repo name].username and repo.[repo name].password.

Note that you can define several urls for a repo.[repo name].url by separating then with coma (as repo.def.url=http://my.repo1, http://my.repo2.snapshot).

As with other repo, if the download repository is an Ivy repo, you must prefix url with ivy: so for example you'll get repo.def.url=ivy:file://my.ivy/repo.

Compile Def Classes

Jeka compiles def class source files prior to execute it. Def class source files are expected to be in [PROJECT DIR]/jeka/def. Classes having a name starting by a '_' are skipped. If this directory does not exist or does not contains java sources, the compilation is skipped. Compilation occurs upon the following classpath :

It outputs class files in [PROJECT DIR]/jeka/.work/def-classes directory.

Jeka uses the compiler provided by the running JDK.

Select Jeka class to run

Once compiled, Jeka augments the def Classpath with classes compiled in previous step. Then it selects one Jeka class from def classpath and instantiate it.

The selection logic is :

Instantiate JkClass

The Jeka class instantiation process is defined in ork.jeka.tool.JkClass#of factory method. It consists in :

  1. Creating a new Jeka class instance (Invoking default constructor).
  2. Injecting defined options in public instance fields of the Jeka class and in the imported ones.
  3. Injecting fields options in the public instance fields of the bound plugins
  4. Initialising bound plugins (invoking JkPlugin#beforeSetup method)
  5. Invoking JkClass#setup method on COMMAND CLASS. This method is supposed to be override to set specific settings.
  6. Invoking JkPlugin#afterSetup method on each bound plugins.
  7. Invoking Jklass#postSetup on Jeka class. This method might be override.
  8. The Jeka class instance is ready.

Invoke Methods Specified in Jeka Command Line arguments

Once Jeka class instance is ready, Jeka invokes instance methods mentioned in command line as jeka myFistMethod mySecondMethod .... Jeka invokes methods, in same order they appear in command line regardless if method is defined on the Jeka class itself or in a plugin.

In order a method to be considered as a Jeka method (invokable from Jeka command line), it must :

If Jeka command line specifies no method, then Jeka invokes help.

Error Handling

If an exception is thrown during the execution, Jeka displays full stack trace on the console except if this is a JkException. In this case, Jeka displays only the message.

Jeka from IDE

IDE Classpath Setting

In order your IDE compiles and launches your def classes, you must ensure that project/module classpath contains :

Plugin methods eclipse#files and intellij#iml achieve this for you.

Launch from IDE

If launched from the IDE, def classes are already compiled and the classpath already set by the IDE. This leads in a simpler and faster process.

To launch Jeka from your IDE, you can go two ways :

One is to create a main method in one of your def classes as below and invoke it.

public static void main(String[] args) {
    JkInit.instanceOf(MyCommands.class, args).doSomething();
} 

The JkInit#instanceOf method loads options from args and instantiates Jeka classes. Then user can configure it using hard coding prior launching any method programmatically.

The other way is to launch Main method from your IDE with same arguments as you would do with command line.

Wrapper mode

Jeka offers a wrapper mechanism (similar to Maven and Gradle) to let execution independent of the Jeka version installed in host machine. This is the recommended way of using Jeka.

The wrapper consists in :

When executed in place of jeka, jekaw invoke the wrapper jar. This jar downloads the specified version of Jeka and pass the arguments to Jeka main class.

To start a project with a Jeka wrapper, just execute jeka scaffold#wrap at the root of the project. It will add the mentioned files above to your project. Then just invoke jekaw or ./jekaw in place of jeka.

Wrapper Mode in Multi-Project

If you are using multi-project structure, you don't have to scaffold wrapper on each. Just scaffold Jeka at a single place in your multi-project structure (for example in the root dir or in the 'master' project) and invoke it always from the sub project you want to build.

For example execute ../jekaw clean java#pack if the sub-project you want to build is located in a sub-directory of the root dir.

Embedded Mode

Embedded mode is the most aggressive strategy to not depend on the host machine. It consists in embedding Jeka tool itself within the project.

When launched from command line, [JEKA_HOME]/dev.jeka.jeka-core.jar comes after [WORKING_DIR]/jeka/boot/* in def classpath. This means that if a version of Jeka (dev.jeka.jeka-core.jar) is in this directory, the run will be processed with this instance of Jeka instead of the one located in in [JEKA HOME].

This is called the Embedded mode. The Jeka tool is embded within your project so the run does not depend of the presence and version of Jeka installed in the host machine.

__Enable embedded mode : __

To enable embedded mode :

  1. Copy [JEKA_HOME]/dev.jeka.jeka-core.jar into [PROJECT_DIR]/jeka/boot/* directory.
  2. Copy [JEKA_HOME]/jeka.bat and [JEKA_HOME]/jeka at the root of [PROJECT_DIR] (optional).

Jeka is provided with a scaffold plugin that do it for you : just execute jeka scaffold#run -scaffold#embed.

Run in embedded mode :

You can go two ways :

Default Path Settings

Specify Jeka User Home

Jeka uses user directory to store user-specific configuration and cache files, in this document we refer to this directory using [Jeka User Home]. By default this directory is located at [User Home]/.jeka ([User Home] being the path given by System.getProperty("user.home");. You can override this setting by defining the JEKA_USER_HOME environment variable.

Specify the Local Repository Cache

Jeka uses Apache Ivy under the hood to handle module dependencies. Ivy downloads and stores locally artifacts consumed by projects. By default the location is [JEKA USER HOME]/cache/repo but you can redefine it by defining the JEKA_REPO environment variable. You can get this location programmatically using JkLocator.getJekaRepositoryCache() method.

See Effective Paths

The Jeka displays the effective path at the very start of the process if launched with -LogHeaders=true option :

For example, jeka help -LogHeaders will output :


 _______     _
(_______)   | |
     _ _____| |  _ _____
 _  | | ___ | |_/ |____ |
| |_| | ____|  _ (/ ___ |
 \___/|_____)_| \_)_____|

                           The 100% Java build tool.

Working Directory : C:\Users\me\IdeaProjects\playground\jeka-sample
Java Home : C:\Program Files (x86)\Java\jdk1.8.0_121\jre
Java Version : 1.8.0_121, Oracle Corporation
Jeka Version : Xxxxx
Jeka Home : C:\Users\me\IdeaProjects\jeka\dev.jeka.core\jeka\output\distrib
Jeka User Home : C:\Users\me\.jeka
Jeka Repository Cache : C:\Users\me\.jeka\cache\repo

...

Inject Parameters

When using command line, Jeka accepts many ways of injecting parameters :

Environment Variables

In Jeka code, environment variable can be captured in two ways :

Note : JkOption mechanism takes precedence on environment variable injection.

System Properties

In Jeka code, System properties needs to be read using the JDK System#getProperty method.

System properties can be mentioned through (first overrides last):

Note : In every case, defined system properties are injected after the creation of the java process (via System#setProperty method).

Jeka Options

Jeka -options_ are similar to system properties as it stands for a set of key/value but they reside in a static map declared in JkOptions class.

Options can be mentioned through (first overrides last):

Note : for boolean options, when no value is specified, true will be used as default.

In Jeka code, options can be captured in two ways :

For example, if a field is declared as :

class MyRun extends JkCommandSet {
   public int size = 10;
   ...
}

Then you can override the value by mentioning in command line jeka doSomething -size=5.

Handled types are :

If the value is not parsable to the target type, commands fails.

To get a precise idea on how types are converted see this code.

Composite options

Composite options are a way to structure your options in a tree-like structure. The example below group all server related option into a single one.

class MyRun extends JkClass {
    
    public Server deployServer = new Server();

    public static class Server {
      public String url;
      public String userName;
      public String password;
    }
  
}

Then the option name need to contain the full object path.

deployServer.url=http:/myServer:8090/to
deployServer.username=myUsername
deployServer.password=myPassword

Option Documentation

Option field can be annotated with @JkDoc in order to provide a description when jeka help is executed.

@JkDoc("Make the test run in a forked process")
public boolean forkTests = false;

Built-in Options

Jeka defines some built-in options that are used by the engine itself. jeka help lists these standard options

Implicit Parameters

In each Jeka project, you can add a property file at [PROJECT DIR]/jeka/cmd.properties to define command line arguments to append automatically to the command line. For such, you must define a _append property in. This is especially useful when you want to rely on convention instead of writing a JkClass for your build.

This example shows how to activate Java plugin by default.

_append = java# 

Plugins

Jeka provides a pluggable architecture. In Jeka, a plugin is a class extending JkPlugin and named as JkPlugin[PluginName] (i.e. JkPluginJavafor java plugin). The plugin name is inferred from Plugin class name.

Jeka is bundled with a bunch of plugins (java, scaffold, eclipse, intellij, ...), but one can add extra plugins just by adding a plugin class to the def classpath in def sources or as an external dependency.

To see all available plugins in the def classpath, just execute jeka help.

Each instantiated plugin is bound to a JkClass object with 1..1 relationship. There could not be 2 plugin instances of the same type bound to the same JkClass instance.

image

Plugins have 3 capabilities :

For example, Jacoco Plugin does not provide Jeka method but configures 'java' plugin in such unit tests are forked on a JVM with Jacoco agent on. It also provides a utility class JKocoJunitEnhancer that supplies lower level features to launch Jacoco programmatically.

Some other plugins does not modify their owning Jeka class instance. For instance, Scaffold Plugin just exposes methods to scaffold new Jeka projects.

Invoking Plugin Methods and Options

To invoke foo plugin from command line, execute jeka -foo#option1=false foo#doSomething.

Augmenting Plugins from Another Plugin.

Plugins can access to other plugins of the same JkClass instance in order to extend them.

For example, java plugin augment scaffold pluging such it produces a Jeka class declaring 'java' plugin when 'scaffold#run' is executed. It also creates Java project folders and files.

This is achieved using JkPlugin lifecycle methods. Find documentation inside JkPlugin.

Self Documentation

Plugins uses same mechanism as JkClass to provide self-documentation. See example here

Binding Plugins Programmatically

Plugins can be explicitly declared in a JkClass in order to be configured or invoked inside it.

import dev.jeka.core.tool.builtins.java.JkPluginJava;

public class MyBuild extends JkClass {

     JkPluginJava java = getPlugin(JkPluginJava.class); // This bind the 'java' plugin to MyBuild instances.

}

Binding Plugins Dynamically

This is not necessary to declare a plugin in JkClass in order to invoke it. It can be done dynamically from the command line.

For example, jeka scaffold#run java# will :

Plugin Lifecycle

There are 3 places where you can configure plugins :

Plugin authors can leverage plugin lifecycle plugin to perform configuration before or after the setup is invoked. See JkPlugin for further details

public class MyBuild extends JkClass {
    
    private JkPluginSonar sonarPlugin = getPlugin(JkPluginSonar.class);  // Bind sonar plugin 

    @Override
    public setup() {
        sonarPlugin.prop(JkSonar.BRANCH, "myBranch");  // define a default for sonar.branch property
    }

Jeka own build class makes a good example.

Plugin Version Compatibility

As Jeka API is likely to evolve (less and less), plugin authors can mention the Jeka lower version in MANIFEST entry Jeka-Lowest-Compatible-Version of the plugin jar.

It is also possible to mention the highest version on Jeka, a plugin version is compatible with. As this information is unknown at the time of publishing the plugin, a mechanism based on a central registry keeps track this information.

It consists of publishing a specific format flat file on a url. The url may be mentionned in MANIFEST entry Jeka-Breaking-Change-Url of the plugin jar. The file contains the versions that start breaking compatibility. Project repository might host this registry.

A working example is available for spring-boot plugin. The breaking_versions.txt is accessible at https://raw.githubusercontent.com/jerkar/springboot-plugin/master/breaking_versions.txt declared in JkPluginSpringboot as :

Import External Runs

There is many way to perform multi-project build. One of is to import runs from external projects.

Principle

A Jeka class instance can import Jeka class instances from other projects.

The current def classpath is augmented with the def classpath of imported projects.

Imported runs are not aware they are imported. In fact any run can be imported. The relation is uni-directional.

Declare Run Import

To import a Jeka class from an external project, use the @JkDefImport annotation as shown below :

public class MyCommands extends JkCommandSet {
    
    @JkDefImport("../otherProject")   
    private BarCommands importedCommands;  

    public void doSomesthing() {
       importedCommands.doBar();   // use the command class defined in ../otherProject
       ...

CommandSet classes are imported transitively, this means that, in above example, if BarCommands imports an other project, this last will be also imported.

Option Propagation

Options mentioned in command line are propagated to the imported Jekas.

So for example you execute jeka java#pack -java#tests.fork, test will be forked for the main run and all imported ones.

Method propagation

Methods mentioned in the command line are not automatically propagated to imported runs. Executing jeka clean will only clean the current run project.

To propagate method call to every imported Jeka classes, method name should be prefixed with a '*'. Executing jeka clean* will invoke 'clean' method on the current Jeka class along along all imported Jeka classes.

Access Imported Runs Programmatically

You can access to the list of imported Jeka classes within using JkCommandSet#getImportedCommandSets methods as show below :

public class MyRun extends JkCommandSet {

    ...

    public void doForAll() {
        this.clean();
        this.getImportedCommandSets().getAll().forEach(JkRun::clean);
        this.getImportedCommandSets().getAllOf(JkJavaProjectBuild.class).forEach(build -> build.java().pack());
    }

Self Documentation

CommandSet classes and plugins can provide self documentation.

When properly auto-documented, users can display documentation by executing jeka help.

The displayed documentation consist in :

If Jeka class or plugin declares a public instance field without @JkDoc annotation, then it will be displayed in help screen but mentioning that there is no description available.

If Jeka class or plugin declares a command without @JkDoc, it will be also displayed in help screen but mentioning that there is no description available.

This is the display screen for the Jeka project Jeka class :

Usage: jeka [methodA...] [pluginName#methodB...] [-optionName=value...] [-pluginName#optionName=value...] [-DsystemPropName=value...]
Execute the specified methods defined in Jeka class or plugins using the specified options and system properties.
When no method specified, 'doDefault' method is invoked.
Ex: jeka clean java#pack -java#pack.sources=true -LogVerbose -other=xxx -DmyProp=Xxxx

Built-in options (these options are not specific to a plugin or a build class) :
  -LogVerbose (shorthand -LV) : if true, logs will display 'trace' level logs.
  -LogHeaders (shorthand -LH) : if true, meta-information about the build creation itself and method execution will be logged.
  -LogMaxLength (shorthand -LML) : Console will do a carriage return automatically after N characters are outputted in a single line (ex : -LML=120).
  -CommandClass (shorthand -CC) : Force to use the specified class as the Jeka class to be invoked. It can be the short name of the class (without package prefix).

Available methods and options :

From class CoreBuild :
  Methods :
    doDefault : Conventional method standing for the default operations to perform.
  Options :
    -testSamples (boolean, default : false) : If true, executes black-box tests on sample projects prior ending the distrib.

From class JkCommandSet :
  Methods :
    clean : Cleans the output directory.
    help : Displays all available methods defined in this build.

Available plugins in classpath : eclipse, eclipsePath, intellij, jacoco, java, pgp, pom, repo, scaffold, sonar.

Type 'jeka [pluginName]#help' to get help on a perticular plugin (ex : 'jeka java#help').
Type 'jeka help -Plugins' to get help on all available plugins in the classpath.

Library

Jeka contains a library for all regular things you need to build/publish projects and especially Java projects. It can be embedded in a tool or used in a simple main method though the most commonn usage is to be used from Jeka tool.

The Jeka-core jar embeds third party jars as Ivy or BouncyCastle. Those are not visible/accessible to client code due to a specific classloading mechanism, preventing version clashing with client dependencies.

API Style

Jeka tries to stick with a consistent API design style.

Class and Interface Naming Convention

All Jeka public classes/interfaces start with Jk. The reason is for easing distinction, in IDE, between classes supposed be used in production or test and the ones used for building. It also helps to explore Jeka API.

Mutable Vs Immutable

As a rule of thumb Jeka favors immutable objects for shallow structures and parent-chaining trees for deeper ones. Both provide a fluent interface when possible.

Instantiation

All objects are instantiated using static factory methods. Every factory method names start with of.

Read Accessors

All accessor method names (methods returning a result without requiring IO, only computation) starts with get.

Withers/Anders for Immutable Objects

To create a subtly different object from another immutable one, Jeka provides :

Setters/Adders for Mutable Objects

To modify a mutable object, Jeka provides :

Translators

To translate an object to another representation (for example a JkDependencySet to a list of JkScopedDependency) Jeka provides methods starting with to.

Domains Covered by the API

The previous example demonstrates how the Java/project API can be used to build and publish Java projects. This API relies on other lower level ones provided by Jeka. In a glance these are the domains covered by the Jeka APIs :

Files

File manipulation is a central part for building software. Jeka embraces JDK7 java.nio.file API by adding some concepts around, to provide a powerful fluent style API performing recurrent tasks with minimal effort.

Classes from Jeka File API

The following classes lie in dev.jeka.core.api.file package:

Examples

// creates a file and writes the content of the specified url.
JkPathFile.of("config/my-config.xml").createIfNotExist().replaceContentBy("http://myserver/conf/central.xml");

// copies all non java source files to another directory preserving structure
JkPathTree.of("src").andMatching(false, "**/*.java").copyTo("build/classes");

// One liner to zip an entire directory
JkPathTree.of("build/classes").zipTo(Paths.get("mylib.jar"));

System

The dev.jeka.core.api.system package provides system level functions :

Dependency Management

Dependency management API let define, fetch and publish dependencies. Api classes belong to dev.jeka.core.api.depmanagement package

Concepts

Dependency

For Jeka, a dependency is something that can be resolved to a set of files by a JkDependencyResolver. Generally a dependency resolves to 1 file (or folder) but it can be 0 or many.

A dependency is always an instance of JkDependency.

Jeka distinguishes mainly 3 types of dependency :

For the last, Jeka is using Ivy 2.5.0 under the hood. Jeka jar embeds Ivy and executes it in a dedicated classloader to be hidden for client code.

image

Dependency Set

A dependencySet (JkDependencySet) is an ordered bunch of dependencies used for a given purpose (compilation, war packaging, testing, ...). It can contain any kind of JkDependency. See here

dependencySet also defines :

It is designed as an immutable object where we can apply set theory operations for adding, removing, merging with other dependencies and dependencySet.

Transitivity

Mainstream build tools use a single concept ('scope' or 'configuration') to determine both :

  1. which part of the build needs the dependency
  2. which transitive dependencies to fetch along the dependency.
  3. if the dependency must be published as transitive dependency, and with which transitivity level.

This confusion leads in dependency management systems that are bloated, difficult to reason about and not quite flexible. Gradle comes with a proliferation of 'configurations' to cover most use case combinations, while Maven narrows 'scopes' to a fewer less but with limitations and not-so-clear transitivity/publish rules.

In the opposite, Jeka distinguishes clearly the three purposes :

  1. Jeka uses distinct dependencySet instances for each part of the build (compile, runtime, test,...). Each can be defined relatively to another using set theory operations.
  2. For each dependency, we can decide its transitivity, that is, the transitive dependencies fetched along the dependency.
  3. For publishing, we can optionally re-define a specific dependencySet, exposing exactly what we want.

Jeka defines by default, 3 levels of transitivity :

Reminder : on Maven repositories, published poms can declare only two scopes for transitive dependencies : 'compile' and 'runtime'.

For Ivy repositories, it is possible to declare a specific transitivity that maps to a slave 'configuration'.

The below example shows a JkJavaProject declaration using explicit transitivity.

JkJavaProject.of().simpleFacade()
    .setCompileDependencies(deps -> deps
            .and("com.google.guava:guava:23.0", JkTransitivity.NONE)
            .and("javax.servlet:javax.servlet-api:4.0.1"))
    .setRuntimeDependencies(deps -> deps
            .and("org.postgresql:postgresql:42.2.19")
            .withTransitivity("com.google.guava:guava", JkTransitivity.RUNTIME)
            .minus("javax.servlet:javax.servlet-api"))
    .setTestDependencies(deps -> deps
            .and(Hint.first(), "org.mockito:mockito-core:2.10.0")
    )

It results in :

Declared Compile Dependencies : 2 elements.
  com.google.guava:guava:23.0 transitivity:NONE
  javax.servlet:javax.servlet-api:4.0.1
Declared Runtime Dependencies : 2 elements.
  com.google.guava:guava:23.0 transitivity:RUNTIME
  org.postgresql:postgresql:42.2.19
Declared Test Dependencies : 4 elements.
  org.mockito:mockito-core:2.10.0
  com.google.guava:guava:23.0 transitivity:RUNTIME
  org.postgresql:postgresql:42.2.19
  javax.servlet:javax.servlet-api:4.0.1

The dependencies without any transitivity specified on, will take default transitivity for their purpose, namely COMPILE for compile dependencies, and RUNTIME for runtime and test dependencies.

The API allows to redefine the transitivity declared in a upper dependency set.

Note that transitivity can only apply to JkModuleDependency (like com.google.guava:guava:23.0) and JkLocalProjectDependency.

Define a dependencySet

Here is an example of JkDependencySet instantiation.

import static dev.jeka.core.api.depmanagement.JkScopes.*;
...
JkDependencySet deps = JkDependencySet.of()
    .and("com.google.guava") 
    .and("org.slf4j:slf4j-simple")
    .and("com.orientechnologies:orientdb-client:2.0.8")
    .andFile("../libs.myjar")
    .withVersionProvider(myVersionProvider);

Note that :

- COMPILE+RUNTIME
org.springframework.boot:spring-boot-starter-thymeleaf
org.springframework.boot:spring-boot-starter-data-jpa

- RUNTIME
com.h2database:h2
org.liquibase:liquibase-core
com.oracle:ojdbc6:12.1.0

- TEST
org.springframework.boot:spring-boot-starter-test
org.seleniumhq.selenium:selenium-chrome-driver:3.4.0
org.fluentlenium:fluentlenium-assertj:3.2.0
org.fluentlenium:fluentlenium-junit:3.2.0

- COMPILE
org.projectlombok:lombok:1.16.16

Dependencies on Module

This is for declaring a dependency on module hosted in Maven or Ivy repository. Basically you instantiate a JkModuleDepency from it's group, name and version.

    JkDependencySet.of()
        .and(JkPopularModule.GUAVA, "18.0")
        .and("com.orientechnologies:orientdb-client:[2.0.8, 2.1.0[")
        .and("mygroup:mymodule:myclassifier:0.2-SNAPSHOT");

There is many way to indicate a module dependency, see Javadoc for browsing possibilities.

Note that :

Dependencies on local files

You just have to mention the path of one or several files. If one of the files does not exist at resolution time (when the dependency is actually retrieved), build fails.

    JkDependencySet of()
        .andFile("libs/my.jar")
        .andFile("libs/my.testingtool.jar", TEST);
    }
		

Dependencies on files produced by computation

It is typically used for multi-modules or multi-techno projects.

The principle is that if the specified files are not found, then the computation is run in order to generate the missing files. If some files still missing after the computation has run, the build fails.

This mechanism is quite simple yet powerful as it addresses following use cases :

The generic way is to construct this kind of dependency using a java.lang.Runnable.

The following snippet constructs a set of dependencies on two external projects : one is built with Maven, the other with Jeka.

Path mavenProject = Paths.get("../a-maven-project");
JkProcess mavenBuild = JkProcess.of("mvn", "clean", "install").withWorkingDir(mavenProject);
Path mavenProjectJar = mavenProject.resolve("target/maven-project.jar");
JkJavaProject externalProject = JkJavaProject.ofSimple(Paths.get("../a-jeka-project")); 
JkDependencySet deps = JkDependencySet.of()
    .and(JkComputedDependency.of(mavenBuild, mavenProjectJar))
    .and(externalProject);

Resolve Dependencies

The JkDependencyResolver class is responsible JkDependencyResolver.of(JkRepo.ofMavenCentral());to resolve dependencies by returning JkResolveResult from a JkdependencySet.

JkDependencySet deps =  JkDependencySet
                            .of("org.apache.httpcomponents:httpclient:4.5.3")
                            .andFile("libs/my.jar");

// Module dependencies are fetched from Maven central repo
JkDependencyResolver resolver = JkDependencyResolver.of(JkRepo.ofMavenCentral());  
JkResolveResult result = resolver().resolve(deps);

From the result you can :

JkDependencyNode slfjApiNodeDep = result.getDependencyTree().getFirst(JkModuleId.of("org.slf4j:slf4j-api"));
System.out.println(slfjApiNode.getModuleInfo().getResolvedVersion());
JkPathSequence sequence = result.getFiles();  
sequence.forEach(System.out::println); // print each files part of the dependency resolution

The following snippets captures the resolved dependency files for COMPILE scope. Junit is excluded from this result.

JkDependencySet deps = JkDependencySet.of()
    .and("org.slf4j:slf4j-simple", COMPILE_AND_RUNTIME)
    .and("junit:junit:4.11", TEST);
    
Iterable<Path> files = JkDependencyResolver.of(JkRepo.ofMavenCentral()).resolve(COMPILE).getFiles();

Publication

Jeka is able to publish on both Maven and Ivy repository. This includes repositories as Sonatype Nexus.

Maven and Ivy have different publication model, so Jeka proposes specific APIs according you want to publish on a Maven or Ivy repository.

Publish to a Maven repository

Jeka proposes a complete API to pubish on Maven repository. POM files will be generated by Jeka according provided elements.

The following snippet demonstrate a pretty sophisticated publishing on Maven :

    JkVersionedModule versionedModule = JkVersionedModule.of("org.myorg:mylib:1.2.6");
    JkDependencySet deps = JkDependencySet.of()
            .and("org.slf4j:slf4j-simple", COMPILE_AND_RUNTIME)
            .and("junit:junit:4.11", TEST);
    JkMavenPublication mavenPublication = JkMavenPublication.of(Paths.get("org.myorg.mylib.jar"))

            // the following are optional but required to publish on public repositories.
            .and(Paths.get("org.myorg.mylib-sources.jar"), "sources")
            .and(Paths.get("org.myorg.mylib-javadoc.jar"), "javadoc")
            .withChecksums("sha-2", "md5")
            .withSigner(JkPgp.of(Paths.get("myPubring"), Paths.get("mySecretRing"), "mypassword"))
            .with(JkMavenPublicationInfo.of("My sample project",
                    "A project to demonstrate publishing on Jeka",
                    "http://project.jeka.org")
                    .andApache2License()
                    .andDeveloper("djeang", "myemail@gmail.com", "jeka.org", "http://project.jeka.org/"));

    // A complex case for repo (credential + signature + filtering) 
    JkRepo repo = JkRepo.of("http://myserver/myrepo")
            .withOptionalCredentials("myUserName", "myPassword")
            .with(JkRepo.JkPublishConfig.of()
                        .withUniqueSnapshot(false)
                        .withNeedSignature(true)
                        .withFilter(mod -> // only accept SNAPSHOT and MILESTONE
                            mod.getVersion().isSnapshot() || mod.getVersion().getValue().endsWith("MILESTONE")
                        ));
    
    // Actually publish the artifacts
    JkPublisher publisher = JkPublisher.of(repo);
    publisher.publishMaven(versionedModule, mavenPublication, deps);

Notice that Jeka allows to :

To sign with PGP, no need to have PGP installed on Jeka machine. Jeka uses Bouncy Castle internally to sign artifacts.

Publish to a Ivy repository

Publishing on Ivy repo is pretty similar than on Maven though there is specific options to Ivy.

    JkVersionedModule versionedModule = JkVersionedModule.of("org.myorg:mylib:1.2.6-SNAPSHOT");
    JkDependencySet deps = JkDependencySet.of()
            .and("org.slf4j:slf4j-simple", COMPILE_AND_RUNTIME)
            .and("junit:junit:4.11", TEST);

    JkIvyPublication publication = JkIvyPublication.of(Paths.get("org.myorg.mylib.jar"), "master")
            .and(Paths.get("org.myorg.mylib-sources.jar"));

    JkRepo repo = JkRepo.ofIvy(Paths.get("ivyrepo"));

    JkPublisher publisher = JkPublisher.of(repo);
    publisher.publishIvy(versionedModule, publication, deps, JkJavaDepScopes.DEFAULT_SCOPE_MAPPING,
            Instant.now(), JkVersionProvider.of());

Java Project Building

Jeka features high-level and low-level classes to deal with Java builds and JVM concepts.

Base API

Base classes are used as foundation for implementing Jeka high-level build API but they can be used directly in a low level build description. These classes belong to dev.jeka.core.api.java package.

Testing API

Jeka features a simple yet powerful API to launch tests. It relies entirely on JUnit5.,nThis means that any test framework supported by Junit5 platform, is also supported by Jeka. Jeka also supports Junit4 out-of-the-box through the embedded vintage engine.

Jeka testing API mostly hides Junit Platform. For most of the cases, you won't need to code against Junit-Platform API to launch tests with Jeka. Nevertheless, Jeka allows users to code against Junit-Platform for fine-tuning.

The API classes all belongs to dev.jeka.core.api.java.testing package.

Project API

This is the Jeka high-level API to build Java/JVM project. API classes belong to dev.jeka.core.api.java.project package.

It introduces the concept of JkJavaProject from where is performed compilation, testing, resources processing, packaging, publication and more. JkJavaProject is the root of a deep structure embracing the parent-chaining pattern for readability.

The API contains a lot of extension points to add specific behaviors.

For simplicity sake, JkJavaProject provides a facade in order setup most of projects friendly, without navigating too deep in the structure. From facade, you can still setup dependencies, java version, project layout, test behavior and publication.

JkJavaProject.of().simpleFacade()
   .setCompileDependencies(deps -> deps
           .and("com.google.guava:guava:21.0")
           .and("com.sun.jersey:jersey-server:1.19.4")
           .and("org.junit.jupiter:junit-jupiter-engine:5.6.0"))
   .setRuntimeDependencies(deps -> deps
           .minus("org.junit.jupiter:junit-jupiter-engine")
           .and("com.github.djeang:vincer-dom:1.2.0"))
   .setTestDependencies(deps -> deps
           .and("org.junit.vintage:junit-vintage-engine:5.6.0"))
   .addTestExcludeFilterSuffixedBy("IT", false)
   .setJavaVersion(JkJavaVersion.V8)
   .setPublishedMavenModuleId("dev.jeka:sample-javaplugin")
   .setPublishedMavenVersion("1.0-SNAPSHOT");

If facade is not suffisant for setting up project build, it's still possible to complete through the main API. JkJavaProject instances are highly configurable and can tuned without limits.

Here is a pretty complete example inspired from the Jeka build itself.

project
    .getConstruction()
        .getManifest()
            .addMainClass("dev.jeka.core.tool.Main").__
        .getCompiler()
            .setForkParams().__
        .setJavaVersion(JkJavaVersion.V8)
        .getCompilation()
            .setDependencies(deps -> deps
                   .and("com.google.guava:guava:21.0")
                   .and("com.sun.jersey:jersey-server:1.19.4")
                   .and("org.junit.jupiter:junit-jupiter-engine:5.6.0"))
            .getPreGenerateActions()
                .append(this::tagIfReleaseMentionedInCurrentCommit).__
            .getLayout()
                .mixResourcesAndSources().__
            .addOptions("-Xlint:none","-g").__
        .getTesting()
            .getCompilation()
                .setDependencies(deps -> deps
                   .and("org.junit.vintage:junit-vintage-engine:5.6.0"))
                .getLayout()
                    .mixResourcesAndSources().__.__
            .getTestProcessor()
                .getEngineBehavior()
                    .setProgressDisplayer(JkTestProcessor.JkProgressOutputStyle.ONE_LINE).__.__
            .getTestSelection()
                .addIncludePatterns(JkTestSelection.STANDARD_INCLUDE_PATTERN)
                .addIncludePatternsIf(runIT, JkTestSelection.IT_INCLUDE_PATTERN).__.__.__
    .getDocumentation()
        .getJavadocProcessor()
            .setDisplayOutput(false)
            .addOptions("-notimestamp").__.__
    .getPublication()
        .getPreActions()
            .append(this::pushTagIfReleaseMentionedInCurrentCommit).__
        .getArtifactProducer()
            .putMainArtifact(this::doPackWithEmbedded)
            .putArtifact(DISTRIB_FILE_ID, this::doDistrib)
            .putArtifact(WRAPPER_ARTIFACT_ID, this::doWrapper).__
        .getMaven()
            .setModuleId("dev.jeka:jeka-core")
            .setVersion(git::getVersionFromTag)
            .setRepos(JkRepoSet.ofOssrhSnapshotAndRelease(ossrhUser, ossrhPwd, gpg.get().getSigner("")))
            .getPomMetadata()
                .getProjectInfo()
                    .setName("jeka")
                    .setUrl("https://jeka.dev")
                    .setDescription("Automate with plain Java code and nothing else.").__
                .getScm()
                    .setUrl("https://github.com/jerkar/jeka.git").__
                .addApache2License()
                .addGithubDeveloper("djeang", "djeangdev@yahoo.fr");

Third Party Tool Integration

The dev.jeka.core.api.tooling package provides integration with tools developers generally deal with.

Eclipse

JkEclipseClasspathGenerator and JkEclipseProjectGenerator provides method to generate a proper .classpath and .project file respectively.

JkEclipseClasspathApplier reads information from a .classpath file.

Intellij

JkIntellijImlGenerator generates proper .iml files.

Git

JkGitWrapper wraps common Git commands in a lean API.

Maven

JkMvn wraps Maven command line in a lean API

JkPom reads POM/BOM to extract information like : declared dependencies, dependency management, repos, properties, version and artifactId.

�PNG  ��� IHDR��(��l���������IDATx^���Tա>�P�S�8Kp���F q���FqFM��s�h�'�'���LN1hbr�QD�������{���.X�,��UT5uq��sy��U�ˮ�v?���?����h������������� �x����!O����4�� �����P<�����'����B����@C(�����h����� �x����!O����4�� �����P<�����'����B����@C(�����h����� �x����!O����4�� �����P<�����'����B����@C(�����h����� �x����!O����4�� �����P<�����'����B����@C(�����h����� �x����!O����4�� �����P<�����'����B��-�h�����\�'�h��7�@�d�����R<@��o�{�����1�'�h�'�h1œH#�x�v�x�S<�4"�'�h�'�h1œH#�x�v�x�S<�4"�'�h�'�h1œH#�x�v�x�S<�4"�'�h�'�h1œH#�x�v�x�S<�4"�'�h�'�h1œH#�x�v�x�S<�4"�'�h�'�h1œH#�x�v�x�S<�4"�'�h�'�h1œH#�x�v�x���xZ�jʼ��M[���/�{��������p0ܔ���x�v�x���xZ�b��E�����2 °��"�TO��O��bO߬�>u�Ci�Tap�K:O�e���߮���};7�x��Y=�x���1�B�[���-|�[;5�'�h�'�h�J��/WNz����]�p�p�t������U��>z�x�����'ۧ��f�}��L���;�p��O����5�P��������uEzk�F���@��-����˕�^�=�I�c�wOUO���ϻ�)��t���1t聋���ޥ#�x�ZE��-V�x�f���uN�{;��݌食y��LN?��X�ԥx8p�8퓏�|Օgo���q�3~���.����'�h���SU��Ta�t�L����W��|j��O-����;����0��]R����C��lR�J��o=�ޫ�x�ZE��-V�xZ�bB�"Ֆ��������ɇK�MG6'5O��x��N 3������)䕗���{ϕ�TݟM��� � ;r��~�{�y'�sK��r�a�#�~��5�g���W>|��{}�!�]{��o��k��ʷ_�os��~6��c��K�����ys�##.8��� �䞻���� 勧F?�0��]{�9' ���}��<����w������g�����6��x��O���F���@��-V�x��辴B����$SH���� ��3�_���n�;!�����tdsRm��ق�w�a�p���{g�}Y��i�����wb榧�޶�6?��;���>�g����5���o�(3~�wȭHj���k�ό�u��o:x$�m�Y�����,mi�����w@fp׺��h���7�xa�)<��<�I��~<o��D�(���(����JOKWMI�������<1VN���� ӏ��›���z���k�� ���tdsRU���o�u��q��_]|S��)$����������ׯo�iȐ}s�ig ?n���VZA�(�?���w@߾} p��κ��S�Ë���W溡���w�=���s�A��t�W_u��;������2�g�o ~q�a�y�ؿ���f��F?�U+f�����v�ɹ����G��g�e_M+ ^��ô]�~������_�w�}*KE���@��-V�x�����<J��k� �%�׎�?��H�i�tdsRU���/��O<qhnQ��VĻd��SN>"���� �\4�����~uT���{E�y�1��[��!C���_y�����9'�Y=�0���3����t��罸�[���яg����'����˾��0��#��À��zT<�ڟ�{W��e�>rC���Q<@;P<@��*��-~8-��T^<� ӏ3��O3g��W��ˎ_.������)^�3hЀL�5��'���O����X��F���o>�;���3�k���9�����O�����#s�Нw\�g��F?����n|���6���>}��<��GR||��ކ ;�p0<�=�\{��[l�t�����x�v�x�+U<���B*/�ʼ�Ә�?O���M:C}Sa�t��=��9��g�)�K穪xZ�մx��s�o��b����I�}|��8����e�������C���ϙ�t���Z�|f�$Ӧ�a��S�O����Z;�����.S�<��������5s���������iS����y�1�<e�x�v�x�+U<��}GZ���x �%�����fJ��Pߔ/���r� �?9䐃���n��t��*��%_N�w�}�c�94�x�N��)3�[l޸�?��b����)����3�s�]�O��e�Ѓ#�T���x�� ��#�Mx0_&�'�h�'�h�v(����Li�{�7勧����\�ͬt����G�on1TF�ELO�⩌ ��-zj.��ؘ�Sf|�,�j�V[���s�]�����g�_���N��U��(���(����JO��Q��5S��^�M��_��C���'���$=e��x��b����p���<��*��L����=5O z<eƗ�%�==�6i��Ϗ�3�����MG��� �ځ� �Z�T���7/NZ3�I�U��p��X7|򷗋�g��i��׷�n�uo_=sƘt�R���o��/8�����O�/���t����8���5�焇Ե���<��s���K���7��_x���я'd��v�����O�& ������?������Q<@;P<@����}=.-��T^<� ӏ�&��Ҥ��!C���^���CV�|;s�)'ѵ�ʦoW�.>��V��1?���e�3�JƿpO����]U8�ݚ�񇼎8bHf|������G�� ����/bF^��u:5ϟ>�REO���#�8(3��g��OMx<�wx8>J��gjȐ}ó?|����b�k#�q��v�u����t��x�v�x�+U<-]5%-��s�s���X<�?���c�&L?J��fJ�ޫ�\8��V�y�e����~:^.4x���]��)䜳���\x���ܢd������ 2�I�����Vާ�f�1���sB^o:0f�-��/������ߴ��W^�|Р8�;s~�mq߭�{�a����⩧�g�5���>rC��o�(/�t�>1zpT-/9������X��gCo�+��c �� �z�X<͙�t�~}�����b�3�<����k�1w�q��[��l'���3w�-��.yk��w�wy����o�E�O�:f�-!��u�e��Q��쳎����#7ě��v�G� �p�ćo�������'��h:׺_�w�ݿ��� ��~��N��ڪ�g�6~�ʋ����a�mG?q�G��Ϙ>��~^<�)��x���uշo��=���z���\o�y��uW���޸�T1߮���N��9ð/MN�l0�'�h�'�h�2���� ������s��Li�{Ֆ'�9� ��N=�[<��5�>}6 7��v���(/C���:��S3�|�f�1���W^yvf|����r�a�gGwu�u��u���g�ʷ��g��&]��Q#�2�S�O�}�^�ޤEy�����\�qذaG��V������X��)d����ڄIҙK%��Ҥ��9ӧ�>���m��6� ��鱷e�5)�c��+�B�y^�{�uL{�^ ӧ�f�6�#�=wG:C̚�sF=p͎;nW|ǃ�{�XĄ����_>�ġ�-���x��r�描?-z��ɫ�w�_$��{��3�8�oߵ����p���g�bn��Wg�7��L~����?�����x�� �?9~��J/��D���@��-V�x�f��W��J����&Ign�,_6��9�Ν���K����$_t�9sƘw�>[��2W�}�j��YO��Wґi����fV�dV�Hb�xB��z���{��.y+�5��gğ��a�m3o0_yO��O��b勧�/WNz����Q�$����R����3��~ ��Oo�0�'�h�'�h� O=뺧�{ w�:54��%�Le���~=�Q<@;P<@�UR<��������) n�����Q<5"�/�طo��������V������X�����K��0q�}i�T�0���a'���뮇�x���Io���E���2}����ʣx�v�x���x�Y�jʼ��M[���/�{��������p0ܔ���x�v�x���x� F���@��-�xiDO��O��b�'�FD���@��-�xiDO��O��b�'�FD���@��-�xiDO��O��b�'�FD���@��-�xiDO��O��b�'�FD���@��-�xiDO��O��b�'�FD���@��-�xiDO��O��b���ˀ�R<@;P<@�)��O��O��b��c��_o�@s)���Ų�(���z��K���߲�]���~�=J��|� �x����Yg���9٣�+��� �'��Ζ��͞�,�E4��� �h��Pgg�:�뉮�� �/��qO�@=��gb��"�����J���S���� �/���O�@�>�"�����M���M��Ѵ9���h�'��>��gb\DӞ<�@(����Ƚ|&�E4m���4�� ���R��ĸ���x����P<�uP��Ѵ����'�c��|&�E4����4�� ��X�|&�E4m���4�� ��(�\>�"�v����I��l� /��qM�y���fR<�����Ѵ�� �h2��P��.��qM y���&S<�5���Ѵ�� �h>��P�.��qMKx����S<������4�� �h ��P��/��qM�y����P<�Uۘ�gb\D�L�/��UO�@�6���4�� �h��P�������?er�'wt=����TH�$;/����ZE����c�=��DW�o�ڒ� �h��P������4�� ��?EF����D��ԟ"�w�|� �x��O�ѻx���Q<�����]<_�@�(����Sd�.�/��AO�@�)2z��� �'������ �h��P������4�� ��?EF����D��ԟ"�w�|� �x��O�ѻx���Q<�����]<_�@�(����Sd�.�/��AO�@�)2z��� �'������ �h��P������4�� ��?EF����D��ԟ"�w�|� �x��O�ѻx���Q<�����]<_�@�(����Sd�.�/��AO�@�)2z��� �' ߂/߁��Ԗ������E[W<�g-}*E��p�}�Л)��|���&DDdc�⩗��K�ĺ�aO@��M�����+z W�J;ĕ��I��{��}��M���#)��|N���fr�БO@>'�@39���H�' ��?����{�t$������L�=�:�� ����h&��I��s��4�s���x�9���ɹ@GR<��������#)��|N���fr�БO@>'�@39���H�' ��?����{�t$������L�=�:�� ����h&��I��s��4�s���x�9���ɹ@GR<��������#)��|N���fr�БO@>'�@39���H�' ��?����{�t$������L�=�:�� ����h&��I��s��4�s���x�9���ɹ@GR<��������#)��|N���fr�БO@>'�@39���H�' ��?����{�t$������L�=�:�� ����h&��I��s��4�s���x�9���ɹ@GR<��������#)��|N���fr�БO@>'�@39���H�' ��?����{�t$������L�=�:�� ����h&��I��s��4�s���x�9���ɹ@GR<��������#)��|N���fr�БO@>'�@39���H�' ��?����{�t$������L�=�:�� ����h&��I��s��4�s���x�9���i������� ��f�' �� �&XPBv��z'��O�@d�����z�N�' �� �&��^����BO�IO@>��M�x�4�'�$�' �� �&P<�H�t��O�@(�D$�� :�� ȧx� O"�F��D��S<��'I�x�N�x�)��hœ��Q<A'Q<�O�4��ID�(���(��|�'��@�$"iO�IO@>��M�x�4�'�$�' �� �&P<�H�t��O�@(�D$�� :�� ȧx� O"�F��D��S<��'I�x�N�x�)��h��������zܴ�O�⾗��  �M�x�uQ<A'Q<�O�4AU���&.�o�緕I����j���3�}�ª�қD�t��O�@TX<}�z����5S����.�<�5�g��d2������㥲�Y˗M/��+�N�3��G�ڪWW�v�m�������ݚ���x����dɗ���l��9ş��J�l ���/���N�� :�� ȧx� *)��\9����v�|�]����*��Wi������wx8���l�Γ�SO=*;��~q��b~s�i�a7�tQ���_+����x4�������w�}��?����~�f����������Ho��(���(��|�'����ӗ+'��}{�+U�p�6*�~���wյx2d��^1^շo�0��-f����9��������1t聋���ޥ#�xz;��O�@�/��Y=��k�����?s7c��g��=��O;: u)���v�?=wnޜ�Hz�B�|9e֌�˗�|�֬�[!w�qY|��(��-~Z�|�櫮<{���_�*�KGF��v�' �� �&(_<U��N�&Ig���_|��Χ^�Ԃk_��˞k�s�~�%�h�K�T���3f�-�7�x:�����?�T�j�[O���(���N��S<�e���+&�-Rm)�{�>Y>~����|���tdsRC�4��G/��Ԑ1�o)��xZ�zv�$���6��UOa��n�pذ#��劉:���N;�ܷ��-�B^y��������^�������O���_}�+.��ཎ>���=���7��5Ͽz��/�����9�g?x�1��xÈ2����GF\p���=w]1���O�~<a����sN2d����3�y�ק�pۭ�������N�ڄ�sf?�ޚ�t��O�@�)�&.�/�� 9��#3I��J�/d¢�����e�[�NH�C��>�5ٜT[<�o�w�a�p���{g�}Y��Ӫ���͘����ũ�xzz�m�l���_됃�����r�T�����^�w������n�����w�!�"�m��=?3~�]w|��q���l��f�#��߲P���S�O88h���]�~��y�G�t����M� Ob���y뽤�D��D��S<���������Qq~�̈�G�+�����tLq„�G�yn�Mc�\�����5k愿�]pm:�9��x�׷s�:��8����.����i�ʷ��暈�d��i�U<��޸~�־ay׺�5��ŧ�5���_[���"�㍥���x�_����<�6��}���wРW�/:5|����n�����gϾ}�tо7�x��W����;��??d����3�ě�����0���N���v�3�S�Ϫ���x�n����sO ������>���i�� >�s��k�o�|����K�.�Oe�(���(��|�'���T�4��qiy�f��:&L?J�S �3d���v��椪���_�x��LqPm�Ia�zO��|Dvם�~�h�� ��������O���y�1��[��!C���_y�����9'�Y=�0���3���:���^�vۭ��L����3�k��N�E�=���#�8(��~��k^�]� �=�� ���G��D��S<����i�Nˣ4�Oa���Č����c�(��㗋&g�E@�>����f���ܥ8u/���5� �d��z2�=�SZ�O��>����(>>��Gs��<����q��'||�]���+� �40S<5��5��u��d޶��wDžU���)>��8ϰaG�Ƕ�k���b�͗.�Z<�|O�IO@>��MP�x�O�T^<�y��1�(�2o1��t�����)|��;w����L~,��pJ)������Ӳ���1瞛}c��g�76:��㋏WU<�<����e�������C���ϙ�t���Z�|f�$Ӧ�a��S�O����Z;�����.S�<����ހ��5s���������iS����y�1�<e�x�N�x�)��h�R��+�w��Q�ʋ�0a�Qb��xJk�4� �M��i�-7����C9x�8��.J'��O�ԯ_߻�<7K���ޫ��OK�����N�sh&� �L�RU�T����b������T�EOa�+.���[��xʌ/��� /�x�� ��#�Mx0_&�'�$�' �� �&h��8i͔&�W}S�x���˕��J'��O��7U�OeTX���-�ʨ|�2�SΟ[��<��1����2Y�մ����瞻��۹+�ό�to���/��T�Q<A'Q<�O�4A�⩙?jW��fJ�ޫ�)<���w��C�[�7�0"���]���t��#r�ܳ(�K��#N�[ �e�2���ϟ[��<5��>����8ۤ�??����k�>7Y>�'�$�' �� �&(U<5��ŋ��Li�{�77?"~����^.>�y����_�n���ֽ���c�yڪx�j��8��NMo�M����7�T�r���p�ޙ�kV� �Ү�ߖ����ǟ[�,]����������{0O�~<!{�{W��| 5Yxv�?6����OG��� :�� ȧx� JO���Gi*/�„�GI��Li�{Ր�C ����CV�|;s�)'ѵ�ʦoW�.>��V��%?�k��Ҵ�i� ��Jo��n���CXG1$�57����/�?���]U8X���l��o���G�1#���:���O��'�TڑG��ܳ�㋋�&<��;< %�[��+mȐ}ëw��c3Sń�v��n���;�?��� F��D��S<���������Qqny��ם������tLq„�GI��Li�{Ր G��ۿ�ˊ�ϙ�t��f�������S�9g���a��M+�ޘ�p���d��)��Y�n�}�l�����^}�9!/����xnQ��k�w���j�?3����^��x���o���+/z>hP���9?������=��q|q�����3�s��G�����7]����B=8��/�t��O�@��z6�6O�rN:�� �੧��Ӝ�O���7|[����y����]3g���˶�z�e/��'��Kn�t�[��S���/�_|S��ӟ_5�k 9�ġq��Q8���:�Bu���������_ߓN���W�����n����F������~�%��o�O~s��ԋE�O�:f�-!��u�e��Q���}��Q��]�~Q�=w�nއ/�~��/:5�j��ݟM���+/z��x|������?c��N�Exx�x�xj��  ��UxZ������F�����k5>�����{�2S�|�j�N;m� þ\49��(���(��|�'���L�pń�B�-a�t�ܤ5S��^����o�ߜ�N;��t|n��֔'���,ܴ��-�~�p���)�/�{�L��S����[3��c͎��+�<;3g�J}�!-��_�������?;���;/����=�W���>{�7�:���)��xB�ӷޤEy�����\�qذaG��V�t��O�@�)�B�.~(m��M�$��TҚ)Mz��3}�����fkk�h��]�{[�]�b�;�����)�ڑ�Ż_����UM�t�߿t=X���qwz��m�]�~�ƯY=g����v�c>hи��H'�{��Z�>}68p�a��;���c>�����N�2)��I/7�a���Ӣ矟��x��ERϺ�?�c��]{)\� ׏X�|f,G�uf|�O��7<x�K���4qo���'��/�X�ņ�(���(��|�'���|�����vߕvI�'�=L���VY�l�;s��;癯�NKo��|����cޝ�lm?���T2� �oW͞=�|�J:2M%�ל��� /� ILCO�7_�x��q����%o��f�b����;�m� �+�� :�� ȧx� �O!_���R��i�TI����9Ez��I�¯�����F��D��S<�,�z�uO5\��u�2Q<5(�gB�ܷ��0�'�$�' �� �&��x�Y�3wU��S��?a'����|�ľ}��O��~60���(���(��|�'��������EWL��辴f*NP�ﰓM9���]���/ܓ�$5��7�g5d���魕G��D��S<�UO1KWM����i����}/w�������"��x�N�x�)��h��'��(���(��|�'��@�$"iO�IO@>��M�x�4�'�$�' �� �&P<�H�t��O�@(�D$�� :�� ȧx� O"�F��D��S<��'I�x�N�x�)��hœ��Q<A'Q<�O�4��ID�(���(��|�'��@�$"iO�IO@>��M�x�4�'�$�' �� �&P<�H�t��O�@�o//(�x�N�x�)��h��R<A'Q<�O�4A�� �]/��I��S<��o4�#�^���� ȧx��X��˾�߯�G�Ty=�F��S<@s�=��s�>'{�M���aO@>��4���]�����ȅ��z�:�� ȧx�&8{��a� q� ����t"��O���/o�E��\�z�:�� ȧx�F+\��"����P�' �� ��������t*��O�� ����E.�8��S)��|�'�h����l����x�)���qr/o�q��&����' �� ����-1.r��x=��M��S<@����%�E.����)��|�'�h��ĸ�e����t<��O������[b\䲉�z�:�� ȧx������l ��M�� ȧx������t<�S�x�)����*��%�E.����D(��|�'����.o�q�K�z�6�' �� ����[b\�ҩ��M�� ȧx�:����t$�ӡx�)���^j��%�E.���ؤ(��|�'����/o�q�K��z�6)�' �� ��bc.o�q�K'�z�65�' �� ��b#/o�q�K��z�65�' �� �����߿�����F&L��������(��|�'���6�� ȧx��#)��|�'�h��^6���� l����x�)���9��z�:�� ����ÞK1���(��|Nz��9��z�:�� ����ÞK1���(��|Nz��9��z�:�� ����ÞK1���(��|Nz��9��z�:�� ����ÞK1���(��|Nz��9��z�:�� ����ÞK1���(��|Nz��9��z�:�� ����c��� 7�7{�$���(��|�'���6�� ȧx��#)��|�'���6�� ȧx���>�z�:�� ȧx���R���0�' ���h{.ż��x�9����R���0�' ���h{.ż��x�9����R���0�' ����%�&��)�=YƧi�����dϥ�u��U��WN�_>���� (�1�@����)^ՍO���ŷ�)+��HoMc|�4s<��'�����8z�j���4�_|+�����4ƗO3���xJyL�����Q<�O���l$��O����FR<�O��K|��-�*�aȥx�)��z�6@kY�!�� �g��]����e�\�' ���w�n��ur)��|6N��ź �Z�aȥx��8z�6@kY�!�� �g��]����e�\�' ���w�n��ur)��|6N��ź �Z�aȥx��8z�6@kY�!�� �g��]����e�\�' ���w�n��ur)��|6N��e���E;�7{�Ma�\�' �� �����x�)�����H�' �� �����x�)��z�-�Z�aȥx�)��z�6@kY�!�� �g��]����e�\�' ���w�n��ur)��|6N��ź �Z�aȥx��8z�6@kY�!�� �g��]����e�\�' ���w�n��ur)��|6N��ź �Z�aȥx��8z�6@kY�!�� �g��]����e�\�' ���w�n��ur)��|6N��e���E;�7{�Ma�\�' �� �����x�)�����H�' �� �����x�)��z�-�Z�aȥx�)��z�6@kY�!�� �g��]����e�\�' ���w�n��ur)��|6N��ź �Z�aȥx��8z�6@kY�!�� �g��]����e�\�' ���w�n��ur)��|6N��ź �Z�aȥx��8z�6@kY�!�� �g��]����e�\�' ���w�n��ur)��| �� ����hK�m�ֲC.�S�-�-e��f�>�N�]�%�8��Lv=m�S�e�X��Cv�n��������Y����d��fQ<�Y|:{������IZ���D��b]�]i�x�3��H����}AD:/�U�ޕ֮ۊ�:����[Z���D��b]�]i�x�3��H����}AD:/�U�ޕ֮ۊ�:����[Z���D��b]�]i�x�3��H����}AD:/�U�ޕ֮ۊ�:����[Z���D��b]�]i�x�3��H����}AD:/�U�ޕ֮ۊ�:����[Z���D��b]�]i�x�3��H����}AD:/�U�ޕ֮ۊ�:����[Z���D��b]�]i�x�3��H����}AD:/�U�ޕ֮ۊ�:����[Z���D������wk�Y�����}�o���ի�DD6��v�V<�Y��PDD���n��鼴���7�N��g��O?{7&"��������l���tՔy_�����_��r�!����)/""U��m ���>���?^�����^������""MN{��������Z������c]�M>�]�OuVj#���&.�o�緕I����M-�|=cއ/�Z1+��.���Ik7ڪ������E_���ee�a�}ED��6\W����7��i�>^��u�iq�'Ҷi�x��܍0�7��O]�PZ3�J���nY�z���J&3�_���=��5��� ���v@&���V[�����n�������L�g�5sӛrS��զ���}��$� ��ț��Y������کi�F[ᾰl���~;Tap�K:O��q�B&-�:sƘ�g�]��&q�p�D�w�,�R�u5��秳�n��wk����]̄��=]?Kź��Y˗M/��+�N�S�|/|�L~���{(��-�ݟM�>m��YO-]25����ODs��R�n�X��O�Tg�F��˕�^�+m��'�%�1���r�a�w����^,|�q���?����<i���G���\v��}; ��������7]�(Γ��G�~�����T5 �j�%�g�= �!�}��N8������3�&'����{�"��S�ڍ��}a�ʿ>ٽ$�.�|�]������ y����t��i��W��'�1i�:Y�� �jL��Og�������Ns���¯�ųL����zTv������{Ŕ?�[0���i~0��:/���v��ߴ�N�������C�থ��v�X�c��ͧx��t#��˕�^�=�I�c�wOUm����ϻ���훝.O�O^?��o1sƘt@q52~6�̮tc�j�R��5<�J�����С.�brz������6�/�or�^�~�SI���{��� 17�0";����t|g�A�d��Z7��1�>?��v[Wg��v�y��<���.#���v_W7X< �oz����{M+�.qJ�c�Ǩ�I�7'M^�Kźc�n>�S��aq�Y=��k�����?s7c��g��=��O;:~ao�F8��{���݅w�aqλﺢ�x�CtR�|9e֌�˗m�ٯmc�|��R���=� &n��_�O>~�UW���v[ǏuƯ�ޥ#c�m���²��p�Sq����gC�/�̝�L߾}�]��b��o�$,���]��zT�~�;�-���+�: Z'K�Ժa]�)����ۺ:���N�uzl��>�$]9�gS^Wc��[���I���*���ޚճ�c+��;.����������񏷹��3^����)'7��7��Ѽ�齚�&�ۥbݎ�n7���ҍ�8U��S��Iҙ3���_���?��ڗ�����Zx�d�f ~ao�FX�k�>7����_Jo���&[�i���.>��٤¿�L���^�m���z_�R ��3gґ�B��:����/���x��;/O��i�:Y*�� �jL��Og���շ���O���տ�=���c��:�����.JW���d��X<U>��}K|��-���|x�v�Nj��|�E����]�ޫ i�]*���v�)��,�x�WLH[��R���}�|���#3�p���椆�0�@_tjHؓ�[{*+�>��8ɼ_X����'n>�׿4h��S����+K�3����_}�!������9'<5����,��� ��a�0Ջ����oN���{̡7�0�̻$N����|�C��k�A�8�������#׬�&aoH?��vd�3WW5�m��6�t�oO���MxuT�o�VZ���>��xB>[�z:�k��?�܍6䕗�.�ҩ£ Otx$����p���;i�[r߆��z�㯾�@8���^G}�uמ�E����������GF\p��I�Y��B���я' ��C׆/�!C�=����<�G�x}���5<���ڍ�̾�����Ԗ򿏩S�����Sv����s��),��T�%^c��vtxц���3Oߞ~�8��{‡��˦L~,|Q z�r�ߘ�p�k������Wo����w]����2�?������)OV�NR��uL��u���'�яǺ���w>]����ҏ�����^����F�����es��4��j������SU�T��ёG� [@��y}�o�>!ዥp�毋 ���nװOY������YOu�n��L\t_Z!r��Gf��)$L��_ȄEw�����}�f�����緦#��j7����v����9��w%������c�JV����E�Y�֬�S������g�O��-���}����J���;��޸���Z����Q��[L|����V�ʎ['l���!�����D�g���+ώ��-$�5�s�����[���>���ǃ�Օ�v�x���~xɕ�h19>�37==���w�?���ʼ ��V���;�n ��_��g�?�m��f�#��߲pb�n��~<�89� �Zw�w�����i�F[f_(��\��W'�s��\r���8�wל׽7Nz�ԛ����� ��}!� ��!��=뾴}>)}���_�������_�9��v�k�����: k��[��eN���R�:v�pSء2�gL�����V�N�T�u�S�a]���i�㱮�ɬ��������/z���ԺZm�T��^q/���:6��xk�&Sij����|���v���uۺ�|��:+�.]5%폊��gF�?��X9�?���c�&L?J�s o ;��5�_��f͜�ױ �MG6'Um�a5?�ȃ���:�-���i��{��y�A��b���<���S���v�o�������)��yXkr���}��۷�A�����:',�q���/��磟�9�־�.�� G���^�ǃa��|ϳz��ốB~����܍<|� # ��#|n�g���vU���s�ֳ�:>sS�g���Y��x�>5�_��_�������N�/�x�̞Zj� ��}�z���+^*��7�6���~_�����Ix� 4��ߝ^��u/���m��_o�|+�Ե�Є��L"l��f6�F?�pb�[w��'�{bX __��Dz������Ok7�R���>L�ω��� Ͼ���}Q� ���� �%�S��X!s̡������~�e��g?x�E��<���� '��xp<��Z������k'���~9������v�jׁ���j�ɞ꿮�]7���??�~<���Q�ZWG�s����ݺZH�u��⩪��TX<U�uT�;�����7p�U _U��7zݮy���b�SY��x6�u[�Tg�6�y_�Kˣ4�֩�0a�Qb�Zpm����īӑ�IU�n�4>�ġ�/��TU<�<u[���9�l�����>�-]�V<v���Ƕ�n���� ��Z<����I2%}\h�s�9��xK��R8��̱����Q<��#7?�����aϤ���F^�ϐop��MZ׺Vn������E��f~��R��/�֕���޻�N82��j7�SN>"/~��/M.�������=|[�(��!lZ��+/�_���}�����+<�l��~<��&���s4����w%�h���|Z�і�f������Q �u����Bg^w㍓޺��O��{?��ĩ�LK�&L?JL�� �O��6�������o�oL|�0�pB�匯�qī���t�k8#,�#=կUOũp�����uú�S�����c]M�u�k���j��L*?߫�x���(,�[l��<�k�Y����x�NS��E���X�kާ�����S<�Y��p����(M��S�0�(1c{�F8sƘ���ˎ�+<�������?<sS�} K�t�=d钩��/��7~�����%<��C-�K��'_||�/��3",R_/��fu�'{�S�F^�Ɩ���r���.>~�чt���>_81�W!��� 8M�Æ ;�p0<�{��_0�9G��\�F��bР����*s�k���� ��o~�83�k�����n��$�{�=2�BR�%2���я'^��~2W����x�\�x�}~˧�m�}����79!#_zm�wG7�~�����?���rK%L�~��N��-�\����]3���=O�f<��ׯo�k|M�K�k��]>���?�_�:���گ�j� �jL��O��u5}T�ծ�^W�7��%��9s��T~�Wa�T��Qȋ��׉D�֢ٳ�J'������F��5�S�m�v�)���FX� � ��x*�6Oc����-�|�� 7��e��;w���L~,��8UO������M�%7�7.�=���dƇ�$��^p������]P���J��-� οp��qA<�ԣ �"���l�w)��/�����x�jX� �״�O���y�1��Um�˾��{�+�ψ?(~�����a��C8�S��|��}��X>3N�9{�)���_ύ~<!�'^ý2��]�Ny�ݹ?��DO��o��v�-�/�z���� ���vzS��y;�N��*�V~3+.bÇ����%P�uO�7߼_�k��)��˜Ч_��@O���j���]7z���I��я�Ǻj]]?�ZW WX����Mq*?߫�x���(�9�r�~���vt����.j>�oĺ]�>eݶn7���Jm��tߑ�Gi*/�„�G�)��t�K��Pߔ���r󰂇���o�(�$�����]�J��u��"�R�Su!�>�V�c�94,��SL�G�+<��xދq|f��4��x�k���>��0f��љN=7�o�lli*���~���ǿ��{k:�8��S�����G��� /��6����R�WO�F�$�����L����=�����͟�z+����3�s�G�O��eR��[>��hK� �w��3�)_�AJ�Y~� �%�S�����2_=y_��=�O��ip�T��u��O��S��7�ϝ���S~���Y��sױj??�~<eƗ�u5��|6�u5O�������sS�'�*?߫�x���83g����_ޠ�k�{�d�|������F���ݧ����=���ˤ��g��v�V<�Y�����Sq�m/Mz����F�ѿ��+���N��FO�����ڪ�%Q� w��&䞻W���b��_�Q�F^�Ɩ����y��+� �u�q�w�{'ů���Nx��d�������ŧl�=w �+�όoԵ�N�~ʺ�R�WOٍ�� 7���mΟ�z�y�-ccO��eR��[>��hK� ���E�M�S��⤻@��^�M���S�u�گ�2���u����o��˨p����|�q��u���O�O��eb]Mo*�Mp]��S��TI*?߫�x*#�u�&��^�����*����CU�uQ��|#����S���>���[�ˌ/�j_�e��u[�Tg�6�f��]q�m/Mz����Fد_ߡC �?��xÈt�L�^<-�br��o�>'����cn w� ��Tx�]j��������g�q���6�82�~�m��~3_H�y%[�J�_�lz��P�m��.��Ùgfn%M%��T�� ��v�ć�wg�sxy�#K=_=e7ڃt��#r�ܳ�p�2��ϟ�z�y�m��)3�|*~˧�m�}�����<eVzS�����⤻@��^�M���S�u�گ�2���u����oߠu�'��Y��sױj??�~<eƗ�u��l��j{O����6Nuܱ���V�uQ��|#����Sqp����v���S��TZ�n+���FX���|�|H�%���x*����I��4���%�<>���^O�3� 翾�v[w��~��sAL݋��_�/>��27}��ś*<�.�ФY���?=��A��6�R�#�򍼒�-M��{�]�N_1��VY�����p��*a۸����?6����OG�z���Aa����O�/���t����÷���kVωo�U�c�5ϟ>�����%�����Oˌ/��y��я'$�����S>�?���ڍ�ԾP�Mp�yaB�錑׏�gv������|��%�̛�'�Ҥ��o�/����/��7u6i��׊���%o���� _�ſֺ���u�����x�������1�S�_�ծ=���jO�O�uպ�~굮�U�T��ѿ��V���� +$| ���k��H�1_��7bݮy�J��vO�OϦ�n+���F8��q�0z��_��AHn�Ty�&L?J�t�K�ޫ� z�B g�a���-e�~} �S3&��ܰ%�Fq�^<�s�����/ܓ��?�o�����BS^�_v�魅T��W����p�7���O<~ӰS�>�;�m��M���T���k/ �m��v�u���!C�M���~��3?���]U8�ݚ���#����67q�m��Q�'������������5ϟ>�R��x�G��ܳ��_�Mx<�2�Gɼ�B�JOYX=��{����-��n����R����ϖ�y���{��~w�u~�ޏ?}h�Ww}���_xuإW�}ӭ�����~�_�]�tH�ޫ�4a_8�����]m�9���x5�Φ��^���w�H_���#�+�����u ��c����{�8����+sSL%�d _�U�=���jOS�u5}T�Ս_W�V<~��̿_V�uT8���wg���wU�Mo��诋 ��7bݮy�J��vOSϦ�n+���F�tՔ�E�S�=��܅#�;)O��i�T�0a�QҤ�^��^5���į�;︬�xX[c�=x���]ҍ0䜳���\x����Խxz���ం_�ͬ�o���;w�������}ܱ��?���5q�嗝���8�o�����#7���J��U2�w'�8t��.�^��tX� ����Ο����czJ<_ ��B�̿������٧�f���׫�:'�����cF�R|��K~������_��-�����ߙ�l��PK���x�yF<�yZo��x���>���ڍ�Ծ�Ū�orb�7Eg����=R�K}��/��%M� �I�UC��/��7�ś�}f�K� _ww��:��]y����t>=��7��و���ׁ�]1<s�#��O?��x���S��B*\'����v��]���4��XW�Ge]��u�i�S��2�J��ZHU_G���y�y�u�Q<~��'��< ;�̇��ۻ0)����K���F4�Q$�5��o��>�-�O<�@@E���r�}D��FXvYw��X��Q����U�7xp���l�fz�g{v�g�����,=�=�==�]���Q ���|&���S�۴����S�R�%C^{�[u2jO���]l� x��D=��ݨn���v۞s��}��$͖�UmB��q��H�ay�Ƚ��C-2�����D^x�2�i5�.������ߜ5��y��"����X S؆�������}��n{mF9=�|����6��e}~P9��|rK5�,�'߸�2qBo5箻�|�խ�̣G��d��o�@f��h;��=O]�p�u�.��yPBy��y[^�}�6��D^ͫ�<[�m�5��W��F�v��]��C��t��S����_P��1��s�W����e���&���s��}���79����vk$�:r�����(����s��G6@}��aÆ7��P^Ϳ��G� 5�]^��S��R ���'�'Z��B�ۑ<T���v���p۩�]qʥ��ٶ�e]�}�d{N��7"I��yA�n5�I�[;^&������r��(��1�;�uj=�8�ңzԺi�KG�Ӿ�/� �M=�{�]�}*����� ��~{UW%O�� ���nЮ��Lo�U ��:��a Oi_��+~I�r��rr�:�M:����g�IM�g�_�x����O�����'�]�ꋘ�/�^��d��N�<E�M�]�(<E,Չp��)�����q/Loמ��p��)��>�ٱ�J/Ҹ�7��ӏ��Oz"����g5_Wٸ�.�+t"/<I.���-���  z��@$����HwB��L��c3:�������3�]�d�z?BR������|ן����t�Ej�V���U�'B��|ooSey���j>��u׵I��#����쏡��WG����[U�����j�5�2��8�3�=y��Z�G�٨y}���m����3�Nz�U��O�,�^*���y�/�^n�z c��\ޙ�ՐK@����}�v@r�EIN=5�_5��=�N�v2��:l�A����?�ޞ�U �Uk���j��S]����rCt�w�����6:Iمo��/�^�{y���y*)��D�'���6���%=U���vN�kO#J�ڇQ�ا=;�Rig����~� #�6�Փ�n_���|UN8���d'�Ė15�O��o�����T�h�/��o�g��{v�(��t���;���on����Y����G<$S'��ӳ:�k��t�_.�?c��w����K���+[�h�����\��� qE��ڏ�}�A��]4L�W�Ė�K�W�Y�=[�v����:�U�<�N}m�v�!-�.�N<r������[ꋒ]w����c�O�x+/q��ǩ�5"��Y��u�s"��#�ң���Dȱ4tH-_����OvO�I� :�KK��N��J�5��}�c/�v�����.4���r��)�^I��Rv��aE�-[l��Q]��{Y�W]����\Їj�-�(�����"��g��=F����׉�����Id~{���B��M�v��37� ^x���^��Dr��Ű����G����~۟�$e������ƍu�|_����&�v;���6�ٞ� O�O�ުӰIS�yPՏҫ= *ʯEs!��N���� ����u<�U�g� =i.�ݱg�{/3��~Çu{e�ㅳ_�?�Z#�SU��<���,/��O��k5��![2~�o�zΞ�N�����Ec��pKT2�=��+B�h�2�����F"y}�{��� �TTM�Q\f�y�G���kv*�p^��P�U��({{�lҫ��JO�~4�ԥ�W4T�w�=r5l?Z��z_��n�M���� ���������$hW��j�&��h^�K2��)}�좰�z����f:A��v;x�ݦ�1�D�-< �4��|س�w�Wx�߮��c�����\��~�ޒj�-�c"y}�{��� ��UN������,(���$Y �@�af(����]��D� ��J$�gv�m OKz"�kO��t [uT܉�!v�r19٭+�-�h3�H^��h���-������ezGN�v ڰ?3�U�Ю�m"y_�� %��3��6����:��ᓦ��:�(���'���Qߛ{�����s8�f"Q���=Ѧ:/����$2���ɷ�D�g&B���ռMT� B���Du|f�ݦ�1�����Sf��L� �w��#$�RR����(1�������N����k?D�NT�ovO�>�;o,���]�*2C��Z"�ځh���DhW��v5�����ng"Q��m�)<E��DhԞf͙"˗ ���Ϩ҇���?��.�� ����B!�����y!iJ��:~��K�{��v+.���_�(��BH=�v�B����"V�PמTՉBH���m��B�]hW !$^�n�M�)bAN��fO��D!���h��!$^�]%��x%��6���q"$�ג�-�BH�v�B����"Ɖ�B\KvO��!��UB�W��nSx�'BBq-�=�r^ ��^hW !$^�n�M�)b� !ĵd�D�y��{�]%��x%��6���q"$�ג�-�BH�v�B����"Ɖ�B\KvO��!��UB�W��nSx�'BBq-�=�r^ ��^hW !$^�n�M�)b� !ĵd�D�y��{�]%��x%��6���q"$�ג�-�BH�v�B����"Ɖ�B\KvO��!��UB�W��nSx��z9��8#�'Z� �r�*��Kv�m O�D������C� ���v��S��� �p��^�s;� W��]}1���ٞ� O3_X�����������l�ꋹ������PxB�T|R!1��$�O�S ��gNJO̩���YE� ��fl�9�'9��w�9���|vl3֜ ���U�3�T4��@ '��}<3� @UT|��5iНAO���)�3mƶ)�^ a�r�>����ڴ��5)�Π'��� O�5<Du��3�g=H�� O z��N���8��C�� z�6=܉AO���5���!z���SI�g=H�w�� �����;(<!6��!* zBL%=�� �p'=��GPxB<��CT�8�9�� {�� �����#(<!�Qa�b��xf��P�wRa���p�'�@��!* zB��z<3� @@��;�0� �����b�gx� ��#�� z��p'=�������Qa��"��̠'���� '���u��Z���0� ��xf��Z�:�I�AO�� �(<�iA���0� � u<3� �� ÝT�������px� ���P�3����8�I�AO�� �(<�]����0� .K�xf����wRa����" OpW��!* z���8�� �PÝT������vx� ��঴�g=0�� '���-��4���0� J�xf��CÝT������\���=�5u<��@Ko�� ����@VPx���� '8���3���hiwRa�������� Qa����̠'���6�I�AO����Qx�s�8<D�AOpD$�3���l��p'=��zF� �Y�jŇ_蓻f�%�������\/� ����b�*�u�:w�5�����k?�#+1� ���I�?��v����k>���3��t�6�����k>����=�?tԑK8�D����p�'�u��g�Q����D� �CG���@T(<��QxB��QG.�x O���A�?tԑK8�D����p�'�u��g�Q����D� �CG���@T(<��QxB��QG.�x O���A�?tԑK8�D����p�'�Ϝs��.���1�� *�����(<��� O���A����r�'��� O��������p�'���A.�x O���A�?| r �3��Px���������\�� *�����(<!~�#�p<� �'��� O�:��%���B� ��8��⇎:r �3��Px���������\�� *�����(<!~�#�p<� �'��� O�:��%���B� ��8��⇎:r �3��Px���������\b�sV̑��G�a~��e~ ��Qx�������fuԁ���g5�?����'��� O�5~� � ��v��۩��@|u�����C� �� Px������� (<��Qx��������(<!~�[�' ���=A.����D� ����0�H� r �'��� O�:���B{�\B� ��8��⇎"��О �Px�������� *�'�%�����(<!~�(� � r �'��� O�:���B{�\B� ��8��⇎"��О �Px�������� *�'�%�����(<!~�(� � r �'��� O�:���B{�\B� ��8��⇎"��О �Px��������b���_���������p�'���\@� ��8����@.����D� �� Px�������,��B{�\B� ��8���o��� O���A�?tD�������p�'�E�Q�=A.����D� �CG@ThO�K(<��QxB��Q�� O���A�?tD�������p�'�E�Q�=A.����D� �CG@ThO�K(<��QxB��Q�� O���A�?tD�������p�'�E�Q�=A.����D� �3g��%ʿ��� r �'��� O��������p�'���\@� ��8����@.����D� ��=Y�D�������p�'��B *�'�%�����(<!~�(� � r �'��� O�:���B{�\B� ��8��⇎"��О �Px�������� *�'�%�����(<!~�(� � r �'��� O�:���B{�\B� ��8��⇎"��О �Px�������� *�'�%�����(<!~�(� � r �'��� O�:���B{�\B� ��8���gΊ9�K��� $��9sVt�6W�5���Ȟ��  K���U�v������ 5 O������n����������Sb�$B��ī�@;I!�%^���@��G�W��v�B\K��#�����!$���$!���x�G��p�'BH%^�IBq-�:���� O��<J�: ����Z�u���!y�xuh' !ĵ��<�� (<B�(��0�NB�k��y��Px"��Q��a��$������.��Dɣī�@;I!�%^���@��G�W��v�B\K��#�����!$���$!���x�G��p�'BH%^�IBq-�:����G O˫'�)��ʴ�/��6�oS���3BH�W����$�R���y���XxZ�h��)�^�Sޚ;ٞ�B�&^�v�BHV����.p��TZ>�� [U�$����C%K^��́�ŽKJ��K���L���UB��xuR��>��$���&^���\�V�iѢ�/YU�!c��,�������������!��īÐ��Li�i'I�����~ўN�S��y��8TxZ^=��������ݧT�_ZRQ5;Jp-�U�.Ic�eK'&��4˫�ٞ_�G��^���O-Od?$��a/=�� ]���=ܞ9�TWM��� � �S��+��W��n'�F=i���0Uh'����~���N��Rǚ>��~��

4hpC����3A �#�G��@��OIRu�0����v��'=�� +�� N��S���_���������� {=v&MxJ�g�ħ�]y�Yj��~w����}����t��h�̙���x/�e�3�����6ֿ�^{�t�O��Ϳ��c����ī���v���F�n ������nT��J/�Q��^;yء�6((�c�_{�a=������V�����-�7�f�������#�� � Ocj��Λ����?j��?���8���r��T�:T��� w����vm���e jz�����[�lypi�0{��L�_�8&^��4������m��s;�ȿ��o�����4}���������M��\|ѩ� ���ܠ6c�x����#�� � OCǙc�Tթ���~�fٽ&��(.s��$cF����F�<�XuW����ԤIc=�}����tg O�U��w׹���� �;Ta�: ͚�v{��:^]�]v�I=��g��^$'S��+��W��n'��&.��N��m;��s�)�vR�䤠���=���� 5�Q-~�U��K�g�l5e�ӯ�|�~�>���y����¡�Ӹ��8�iȸi����>a�mv頉�eb�7�ٽ&��/-�/���p��⻟(��9��5���,����+�\]:T��o�&��Ꮹ�W]y������8\x2"�"�B�Uب��p�wb�ܡ�/أG���ʽD�z�"��0��7���*��N&�\x2��T��_�z_c�[oV� H3h/�o Ux�<�y���P�iiդ� '�5w����T��ᢊ~�f�jԀ)��L�����f-������Z��}��3it���q٥�K���ӕWn��ӥ��J��%y�=~��۟s�q) Oeo���?�yƱ�������S{?y�O��塏�<���c�+���KuzO�kd ��*c �^�6~������;T*r���KZ�:ZzV����Sz=����;M�a�<7��z����^*��e6��zv�X]5~�s\su������_XR��=�믪7��}�� yɎ?���|��݅��^*��������?�$9�K,G�#�d�Z�Iu�̝�仮^��zԿ��M�: v;�#���⥗<l'��¶��s����H�}�1�5o����F|��m�U�9u��� O���r�ZÐ��zs��i�V�+~I��g���-��:�(i!���ד���Q��� {���J���T�;���xʳx����p�<b���� 5� O:�7��|sހ)W��,,�q���n��+�:�‹O��݅��e��T7��U���<��AM�購z�w���߿�f�Y? ۡ�K��vk$m��6�&��ԅ'���~�mw�e'�25��L��@���$+< |�s�ƻ��Z��I/�:v��A��9w�a{}�m\������S����7�O�ܡ�<����w�����C-�'c�T�Ғaj� .8���?�� ������ݒ^ڦ�~��7i�x�>��C�^��=2Q��ūY�=_���;��F�C���#/�zt挭�2>�W�!x;� �7I��DZ����d��<Q�-i�_v�9k������w:��T��3���>x��8zd5Q YJ������G��3cz?s�-��Zcf�P�R"�����g�3Y��&��#�� 0� O%K^��EՔ����z��I?��%�u�Q��Ϣ�ta�AUU������ ��^s��s�OBu��-�x�ч����VOׅ�a/?�괣����\{Mk�Az眓���7���۫�<�٥��:������I'��;��1������m��ϓ+l��m��Wjb=���s�m�9�W�Λ\������B�����T�Z�3��=Gz� � �h���kϽ������s�~��{�[���i��g�r�\R�K ]5����1��+�۳d�X��O�g���?�d9�e_�)�Ǯ�?J�<��e�5�e��g>�I�R�J�: a�I����N�j'� Oa��P�y�fP�zh�w8��#ڵ=��#�痾�=�C%;���t��z���v�u�I�,�����șg�iּ+ �ޘ��l�7�CjI OaۥP�_�{��c[-ǒw��6q�<b���� 5� O��iw�$] K��p���ι�[���o�[2񾙳o2�f�({Y��,O�i/=(��){��I�՝w\�f>��� 2o�������rI'���IZxjs�j���/��dsf�����Ґ����3���ZO�9c��Im=�N;us}���y{ްCi��??��w�����/�ߥ��eo�ݮ�{{wuY��睤?�#��Ӎ�t��+����vj��EV���K�VM7>�r��Ǩ�/<��;]x��������H��D��S�v2�q^U9N�h�]9ur=}~���K:�%��L��yA���Pt�I�~�v=}���o��L����������;Ӧ>��LZx �.������O*jq�#��nO��7��#������ӳ��v�Hró/l�M�|k����t��܆<Ud�����m��1������W��J�;���|�����Ep��S�f�/��mڤ�j�����BW�*d�&��������ˡ�r�z.<�?��h���Xꎓ1�>l�!��� 4��%�tyE�Ο�����g��j��=n�N�zez{�m}B��?3>}#�m���C�s�w���j=�Z�'ʶ�����v�m[^6�;���a���I;�_x �N�:��x.����>����Z�c�n1R �N�vx�=��6���z�~�v]:�c�����I'a�ꚫ7�-غ4v���/<�m�B�o2Tx ���GTRmO��7��#������S�����:b���|n_���:T�+�{ �&�J.�����5p>���o�)��+�_�ޓHVx�\4V]��n}������Բ�{U,^���˃qU��\�g�Io���7�X�p����ڜ��Ð���f̿�<���p��MR��^Ї}�2�=��Yʘ_-2b�c�'nu�j���TH���p���n[VP3�^�O��a���I;�Yx �N&��2uJ�~�:A��Ėv8�WF�#U� Qs���:�$��?v| Oi�Ki��L����T�����o>�G��p�s��NJ��Y��ˮ���g�Z#+��E���|��d�^C���Pm���]x��C�f���R{%F��!�~�1g�q�\�%����������ڶ�n�G�ך>��v���������#�/d+��0D�~��Y��Ϝ1@��{������������+ՔK.i���0�A{~�ī�@;i'�v2����>J${'�:�� m��By�I�[ހ��C<��x��k�h���7����Qs�Ռ��ڵ=�?�����Sx��]�5�(<E�����p�I�m�ח���"n������ǧC��}�c/m�;T�vؾr�X{%F��H�|��M�v|_����p�I/�þ^����}R1Ԏ;� K�ϯ�-��x�+�8�'���y;��0�Nډ��L�Wx��C� O%��ӾM��9Be�ħ�O ���줱�)<������h��G���g��O�n����G��@���?B�q�X�!��|����d�^��w��٦a˖K�- �-7_l�$o O����.N����ӻ���ZU��7����Ϻ�?�z��+���3�����p�>w��۵=ߞ�?��0�Nډ��L8Vx-ָ�.5��9�?�z�/�G�P���SGRx���Tq��T�v��d������3��'m�}^�#�� � O�n�ۮ��P�}�M]�4g�o�?:Ϛk/��s�\o��{�h#�b�2h��z��.)���.��TP�Eye���J����F����ƖTWMP�@����j��/;Ø_ߋ!i��M��uǦ.����?n�����ꂵ��e���.<UOL{��[�����N"���۟�=������^���t�F^�֭7���i}�9���H��D��S�v2�88�~����;�x�r�Å�4����S�R���M O�G�ߞD��o~�G��p�s��T_��ܲsn�(}�3�m{��/�7󭮅�;M{�m�A����M�ۺ�N>��k½��Ov��H˖�ӑG���r�����m�i��;Y���&���}�6�_$���$Q_{w�Q�3f�|�o��;]�N?��C���~�N5��A:��?�DYʘ���w���>��xHE����߻����j�������{��u��z=1����k|���_�q�����~{�S]��z��a{N<��(�b|;��rdʻþ?���w j���I���a0��0�Nf��L�,<%·����{�V�DZ!c���z�z(U�)H;��p�)~���)<��.����Ա��y$Q/ۓ�뛇���\�\�dɫv�HE:Q��|����\�h�T_.+��Ŏ�}�c/�F.��4uu�]Wy��5��3�A53�;T��ڜ��s�%����(<ɥaA�w?�����O���;��CZ����D��<�����F��k~��헇>�~�Ǫ����W�t���<�f����_Y���a��"lo������I���wz� �9�_P߁%���_<��/��W^q�����u_� ���W��G�Kj�����ޱåjz�>�:�"�C{�Z��d���D��S�v2�q.m��ؾ��ޙ+�M�>� �Nf��v���)<%·K���7=�wL�������LoOگo�G��p�s��D�ۗ<T���v���p۩�]qʥ��ٶ�e]�}�d{N��7.I�c�J���٦�\�l�ݶ�s|�g:��t�v�i�E���$�P����k�=�"���Qx�k���ި�Nr&[8�G�(�=�������;��zh���5�k3���������o<Q]��MM߽�2��IO��K�F��o�ꪭF.��+~i�m�)����SNn�@�]h����d��T���?t��r���۩�ƮP��6m"��ګ�<[��6�n��i���� ��5��~��=y٥���;�C�ܡu_� ���W��G6@ݣD^��_8zTO9��T���;�N�c�Je����d6��"�$^�� �� O�����ňw�U�v2�q.��Z�.��$o�7g ��{�.��W#M ���N�v2Ӆ���ǎ�)l�j�{3qBo��]w����[�)k���y���^���,<��x��5J/�*{�Icw���K�����U��cϟ�C%9���Z�ƍw�����F�IO��%��[�Hg�y��Yk�r�~�;H_t�����aß��ݘٛ;��H�p�}��y�WO<���|II��X����{�av�(��y��8�7����:���@�zez{$��m�R�T7�R��Ƌ�l�Zm?$��0�N&U�v2�)<�(/�]U�v2�8���$�d� =�����N�v2Ӆ�D��cd�����l���R"���F0s룂�G�#��  O���%v�(ld%��S��>ٱ�J;�G�<����S����6�Փ�n7��r��$�PI�RX-�������$�۳{Gu�E�j-[��o��e#�9�8�N�����.^�����ҹ�1����BP}m�"����ON�~o���[.F5�|���[��U�<�λ��������]� ����g��f��lu�QIgNc��Z^�Y�<���+�w�ug{�F�W�o_��9k�Z��������H����A5��c<t����������ۏI�: ��j'�O��0 Oa��D��r��[;^�Ǐ�=��.O'�q4��ԛZ��z(<����wIn�*U�vI%���f��w�qe�MU�O�p�%�y8�p1�k���������i=���>R���{�Nea��I��8����Q��YI���e�^��W���G�HOI6��Y���ʼ����y\�/W���uOI�˲���Jo�|� �~�/�K��?���{)���N�WF�G�h�����L�����O�� Ǩ�n�52n,<��0�N&��N&���U�g�0zd�Y��~�=C,v�$jj=4�G����=�7aۥ���~d�9�O��7�#���������z��G���R�Ȃ���NB�!�>2@���I�\��~4��a��$����q����~��|ps��>=��(�0�G2�<<����w O�O����{�,Bo�d1t2�Y�er�ī�@;Ir5�z;{�򗻕�lϜ��<����y��8]xJ�|�$�}Ldf�?9Br;t2���! �Lv�6� �xuh'I��Q�=��.���Ғ�|+��<����y���^xRyc�L��W��7!�K�g:=�Ѝ���k?D�NI�˲W%Ɨ��M�: ��$W�D���;��cF��^��p{�|�L$?�#��� �'��%��_������%�݊�%��W&�C���b$^�IBq-�:�����8�!���W��v�B\K��#�����!$��H�d{�� �IDAT�$!���x�G��p�'BH%^�IBq-�:���� O��<J�: ����Z�u���!y�xuh' !ĵ��<�� (<B�(��0�NB�k��y��Px"��Q��a��$������.��Dɣī�@;I!�%^���@��G�W��v�B\K��#�����!$���$!���x�G��p�'BH%^�IBq-�:���� O��<J�: ����Z�u��Y.<]��(^�I�pM��#������<��$��&^���\A��_���;��ފ+>���u�֙�z��6��?�=r�����7��5��H-����o�m��k������[�s@}1�#W�� �p��^���"+<����X�����O$������駟� �e˖��>o�<�d�ŋ�d�zMe�W$�q�F�g�…EEEUUUz)�~ ������]��,X�����S�++���Dn�����|��[��������T��~P�����te�ƍ�~���_�f��(ȳ�Z������S� 6$ݘ��9e �K��ֱ�$O'O�z��Z�7C"/<ܓ�ׯ��z�ʕ�|��l> �����b%S�'QTTd�֭[�l�2��2o޼?�P�#�ڪ���K�]�Vͼp�B�tYJ��}�������/^�X�|�ܹ|��wE�H++e{�.]��������!�z�w�}�h�"=�l���v��~�e�/UXs�,�9��2]��N�T��j)���!%��A OzS��S�=�~��w�yG�s���_�|����� >2Ux���oU�ɒ%z��ի���KJJd]�Z�p���,_�\�[\\���'����Ν���W_���������j kj+�r�\���^DQ%�E�yk"��|=zNQZZZVV��V��$�SUU�]���;��9e#�D�'�l�����ls�� �l�“��dO �'����C��˜�����Ә ������H� OK�,Qu��52h�ܹ���7n|���s~��g�_��^p�ҥj���/��w�}��3�f�…���������jV�f�g����R���HY��_~�f�]� �����A��a Oʲe˾��+ٞ�?�\�_��ի՜k׮UÂ䩽k��T%��˗{�{_6��S�=){^����պ����{������Kd�����~���o������ �:Byy��T�LW�a,j���"U�Q������� 6x?���{��\�>��/?�5�_�^-k|�Kz���m ���+W�9��j���F���q�M��^�!B� �o)�ɳ٫V��m��C���VVV����LƔ�{r���j�+V������ �"+<���˿��=���;o�C����Cjܐ&SQQ���/ k>Ȧ�̟?_M����Rk׮��Y����7z���5È�<�f�DRVVf��(�z��� ��Fi��ɘ.���(yR;�p�Weeeamc�6^6�k*��<�6S��I!�oaM�룏>ڰa��!�����S��俋/���O7n��e��E��M��C}�����?T�U�w�y��f��A�>��>���I.��&Z����Ra��(��Ӧ-�WOٸe���j����Z���~Z2��˪״������WD��٘|O yv��l�+� �������� O���k֬���������OZ�o1����?�_u+(U(Y�r�����tuol���\�?���?�9i�'�z�'��F�d�n=�h�g��#&������^A���O�����W_y���{�������b'�“qsq[�O����M˖-SE�y�橥�ͼ�t�f����Z���"{�6�h�_��W��@��'�+��Az��l� � }o+�d�H O����~���>�H���w�,�����pM���Ț�dwD2��$�/_^XS�QK鲈�^II���p�B��>�@����ڊ]4т�Gmdᖏ�yEUx҃�좒.{��պ�Z��FRx �' �[����ꫯ̇����@L�_�IߡI}��K,����-�>��s5���mժU���P�Cv��fM������2���O>Qw[x�}h �������}��w����O�C���P벑���I�^������ ���i�@���"]Fٸq���:���9׭[�&� ����������C�P�D"��/[�LװdU_~�����.�x\Ϛ5k�w)��?�X��r�Ju+t%lᩰf ��*�U�V���͟?��ę�ﮨ���^�.I�iS�=)��̩FmذA/��_�������@��k�i�����=�CEE�*��\�o1SU*QUU坮?�e?�u�d=��šzMYY��9���m ��i2/Yv�ҥ�� Oj�Ta���ɓ��e�\��\��.r�<�ׯ7��lT���{��/�Te��˪� Y�]q�����qAᩴ��0Y(�u��UWW�ʂ�5�X�®/�D5��읮o����;]��|�����ܹse�d�w6U"����N� ����G��߫��j�ڵ�U�̩��y��>��s���իW�so�?�f��V�˪״���9/{�S6ۓ�|��7�W��<��n�/������Ί�𔆍7~��7�V���I9��7y��J���_gÆ �c�ȳ|��wz�����_�Zvѷj {��Mu[6=A��ڵke{V�^m �����q���"�F� .��, ��������Z�r��d��VuY����� OqUUUU���൪˲������Qx���7���;�D"�!KuY����� 8 O������� O������� O������� O������� O������� O������� O������� O������� O������� O������� O������� O������� O������� O������� O������� O������� O������� O������� O������Ȉ�P�s�% ������IEND�B��PNG  ��� IHDR�����U����Wm���tEXtmxfile�%3Cmxfile%20host%3D%22app.diagrams.net%22%20modified%3D%222021-07-26T14%3A42%3A32.778Z%22%20agent%3D%225.0%20(Macintosh%3B%20Intel%20Mac%20OS%20X%2010_15_7)%20AppleWebKit%2F537.36%20(KHTML%2C%20like%20Gecko)%20Chrome%2F91.0.4472.164%20Safari%2F537.36%22%20etag%3D%22-U1ltIXT_qMN_Hn3ElUv%22%20version%3D%2214.9.2%22%3E%3Cdiagram%20id%3D%22y3rSV5-m2jxOvDuPhkYN%22%20name%3D%22Page-1%22%3E7Vptb%2BI4EP41SHcfWuWd9GMD3b1WrYSOk%2Fbu08okTuKtEyPHFNhff%2BPEIeQFCCy0u1okVGUmMyae5%2FHkscvAHCWrzxzN4xcWYDowtGA1MMcDwxg6BvyVjnXhsIdW4Yg4CQqXXjmm5DtWTk15FyTAWS1QMEYFmdedPktT7IuaD3HOlvWwkNH6t85RhFuOqY9o2%2FuFBCIuvK6tVf6%2FMIni8pt1Td1JUBmsHFmMArbccpkPA3PEGRPFVbIaYSprV9alyPu04%2B7mwThORZ%2BEN919ZPOnsXeDkq9fH53pW2jdqFHeEF2oCb%2Bsn15HFGXZwHAoDOzNOFxF8uoxzQRKfazmI9ZlkZYxEXg6R760l8ADCI5FQsHS4RJl8wKakKwwPI0XEkpHjDKep5thiB3fB38mOHvFW3eC4d0MCmp66jExF3i1c%2F76pqrARswSLPgaQlSCUSKjmGg4yl5u4apc8RakpQ8pJkWbkatiw4Wq9xG1N1t1xAFwT5mMi5hFLEX0ofJ6nC3SQNZwLKtSxTwzNlfV%2FoaFWKuFhBaC1bHAKyL%2Blem3trL%2B27ozXqmRc2OtjOI55cMdW3qOKRLkrZ7XVUiVOmEERtxAZtsNyKwGFhlbcB%2BrrG3uHzuQQDzCojVQjutmPqdD7bSWWRv7NLiX%2FQosXy4%2FUiwIxEXb3YGnvoWmdmvYewEF2PhaZt1ot1oRKz1F7p1hlo4qO7dq6RPMCZQF8yNJApPOQTvclApM9sQZVjfrtha03bGgS98PktMcNjh1dyo59cZA2vuSc%2FjO5OzJTa1OS%2FsAKT%2BAf6Y2%2BEj%2BWXXamM6p%2FDMOEPnC%2FHPfmX%2FDX4OAH8Urq%2FGutMwz8coy3pdXhtki1tPrhC4ikn5irMWxbEkSilKpskKWilKH5QKWkiiVJAMk5QvPk0KUwCbhXt0QUn15fkxo8IzWbCERAXr6r6XlxYyT7zAsKrmZs1fJNMOpRUxlpmIVxxnETEoS6Q3XC1rVAp9RJpTDZ5SieUZmm2kkUG%2BSekwIlqighhIPEHbDTiXu%2BC6ehedR4k1i6EZbietOB8P15pvxbFrcsDqaEMxVY3NBgKBQvnuwZrD1xChtcQdqIfZWbVedS2ZRHIqdvMpgZ0XS6DmPGVuV529VGulikBvSvBfGJAhwmu8WBBKoIIBEey6XWl4624MPFHMk%2B5oNjzQCW69s%2BMhwLkYMNn0ckRxZDOxaYsmwfjTYsyzb5Nhsy%2FpxoYw7PxXsw%2B8jSvI%2BUeBdngvop%2BOcAGL5%2Fk4B%2B0%2B%2Bm7vRW%2BCbbfDNDqApmmE6YRkB8srxeRHbIMAhjH%2BwCZyCvm30Q9%2B9FPhdOzXZBwI2lV8RQ%2BH%2F%2BHMgw0y9eOs37j7QDMuIa4e4FEc6zm06OdLc45%2BPJHc7hYWH%2BFVYdAkLG7uB1bUAXGNmOs5lhEVvqriXepmU2rnVT3y2kHOSoqKUv33axaZau%2Br7O7aLu59bUJjtQ%2FaroDifoNiP%2FkcLCtPYKSi%2BxEhgmPIRauG6%2FI8mQN9XwOWWf%2Ft8a3MMQVEWX%2FVCh14IXR93%2F0tw5tryhOoiesHSepKledR6PrK0pWXRLkLGE6QEA04XSe%2BWsanXrgr%2Fhi2jWJI%2Fr2KwulTjiYqhL86%2FiGI4bvmfgv7lFAOY1c89ilPu6jcz5sP%2F%3C%2Fdiagram%3E%3C%2Fmxfile%3Eo}�� �IDATx^�tT?�/���V�)��P���w�Cqwww-.������L��o[�Ry۵�s8���d򛔻�L�! ;%���ȹ/�~d����f&>\��!�l�' ��0~�g�z���>�o��Eؾ��{OvM�"l��7{�)�fw 0'��9�m�0�� ��]�۵���y���]@H��I�"lN�l�"�1@$�(�v�~�w�"lv�� s���>ۦs �� �5�������3B� �p��k[���F�QDz[$@�#�"���[�J)R��ΣW0e�PLq� �O�!���G�p��[(��:�|�Zhآ=�F��t � [μX�������ԯ�?�!qxdΖ kw����n�D޴>>�~�bljh;��E��5y���� hN�D8I���{��G�njI#�~�)d̜� +�;�k���B���^��k�GN�D����Q�z"~�Dhֶ�����J�K�H���|e'/��<��D��זX!E��B�H������p�X�ѿg[�q��h\��� ��x�(Q����%T,� ����3^Dx��iؼ~�rC:��ذz1V,���]�ly���j����G�l��,A�rUѸUgԯV �R����n�B�_�%�VƎ-k����m����^���/��������Ocp�N��B��P��z��"�gW/���3&��5����(l�F��(�Z�d=$@VI�Ex��}9�;.8�) Pũ�3a�oݰ]��G�<��|�A/",��y3&����[@ͮe�=g�d̒��*KH[DPJ��m�2t��p��q�0�u�_Ϟ�� J��p��ѲC��ɘ9��̋JŲ����7�_����^�1FM���[סc�Z�\� ���#��]�W�<e��a�r�%К�-����%�ܱ�@t��!Ӌ���|��A�=~�T�Z��"���;%�}��C�V�1s�h���O��s:twQ���笄C�lJ���Vz�X� �[� Âջ���W%�b���/ѱ������DZ0�N��C�Ѻ�3����1i}a��e�$@�N��DX°Ϟ<F�N�����J��&�g�K�6LذpȔEK�G�B%��qb�����#0a��5޷k �-����ܑ5G�?s��S����Bűd���팱n�TX[DX��C]��I�x�q��!���z���_��������ة��_�� aÆ3�P�RML���҇��(�V�.K$�5k�][b����}�Z-�-)2fɎ��N��:5���K��o!a�d���9zzzza}�׼�Q�h) tn�� g~��.9w��ԅ�R��Z��׭��"����$�>� ڷ-�UD��u1n�bej������C9m�T�����%�L��,E��ѠY{ 1I�!b��(�&���I�,������q�b�*ThسM �d8gGٿ�F������", U�;7W��,�r)��""�2u:ϓFe5�W� �~� T�%�]8Gr~nپ'^<���o�҇�eV_�|U,�?C ��C���9c�(���-�J$�9k�Ϟ��SCB�$6-\�)R��"�)S�Ub)a[���ܩ�ʎ>{��_��τ%�Q�Ҹ~��-����.^��\1m���,�Q;��C���w�X/�Yn�cҘ�X�a?r�+ɺܧ�Z�Β=� G��-Y���4�]�^��֫~ʁ .�[c�����|���B�� �j �'m",De?��g�!�cH�9D�\ ��� %ز�/ׯ\��S�Ȑ)��4���[���n�RS�K�$�6\8�E��޽��O�8ir��%M ��(����M�� X.kas�|��J9�W3�X�㪙���7�>�d)R��4�l�"l�n��$@Z���l� ��7�#Q�d(Z�<&J���(�$@vM�"l��7{�)�fw 0'��9�m�0�� ��]�۵���y���]@H��I�"lN�l�"�1@$�(�v�~�w�"lv�� s6g�l�L�˛\I�H� p&lN�a9�a�k$@�&@�7#>a:aӱe�$@V@�"lN�a)�6�\v�H��(��f�'LG�"l:���H� P���I6l"E؆�ˮ�� ���E�ߌ���P�Mǖ5�� X��8ɆM�۰s�5 ��������o� ������(š�de$@�F�\"���=�w��U� �C{ѽ]C���W|_�|F�Q���5��+��:wn�)sV�����Vb�<7��tH��9q�;��M��J(�6�Dv�H ��%��vm���ݰ��޽{�;7=�-g^_;"��3'�"S֜~�������a�b=�g<^!J�h~�Z�O�8���+���7�w���I�G��$@>��tn��= v�x>Vr��U r�K�"e�t�7d<r�ɏc��a���1D�R�̀!��&LX4v*��n�L��h���'��ۼ5���fN��f�Ǐ�\�����!C�I�2?} �?}�y��#u��X�dbʼn��#�*��1F 讄ݻ߹u�;cԤ��#��/b����Ȕ5vo߈t�1d�t�M��W{‡�����b�K�N�Xqкc/�j��Ex�ʅ�?s>��*5�}�~*����+��=�7"Y�ԨQ�1��7Džs�|ퟭ�c���y��!��p������*��L�W�߿Cɼ��!�v��va����s�:�ُ�m�+a�����\������fOƂY�1g�V�{���Q9�'z���2�{ۆ�^�1ZwrV�h�����J�K����M�b�����e��z �e�2��q.=Zc���J4�EDX�T�.�W���|��%����+�hO����K��A�����'tk���VlG� 3�C�v�E���?|"R�ɀޝ�+��h�.�|�,z����g��8r�>���/@N���)���F$zA�C�w�E� *�)rep��10�u:B������O6�<~�"9R�;��,Y�6^�Q6 +9)���Ŕ�C����_"|��[D�bC�u��}a�h�E��׈%*�_��Jųc����Ѿ���l;t9��T�[�h)U����#�]}8�M���;.�����Y�|>fOu�ΣWԇ����?7�_E�R��h�n�(&"�W�L?2���p�pf+$@J�7^0k� K�$')�KW4��[�Ƌ�L����ԩ\e+�@���1c�hl�wV�H�%}°X��(^�z������%�VV�X7v*���x&l��u��1ԩTOl���]����OdH^��i�>ڳ��T(�'�>3��'�ƕ��Т}��)��;�<�x_>�ȇ��1̥+�_��� �铇�W�,t8�,�p��� ["��߿{ ��U]�Y�ȉs� a%8���:~�T���/*T(xzz��������}�{�ܟzn߼��3�d�ׯ�(� ��@�J5P�i;�β�3�w�&L��ƋKXW_�"<~de��{wn��cz%���W�Ӟ��Ω5d)2Ϙ5r��o�Z �c��y�� ^�x� ��X�T(Y� :;BԨ��� ֩+�꟭�A���x�� ����������y�h8�k�����s��8}�vlY���s�mAn��;�/�m\��=e�O��k��g~2#ݴv&�\�� �Yp���P�a� ���gO�u�*Ԫ�\���E���b�B�1vx_ܽ}�W�P��>�ӤUg�kR1b�F�A�����ʌ�������8z �oZ��K7�p}�m.|��/c��0e*TW��"� V�TfQ�5�� �� X���_�s�Ο��}:)������u���h�m ��Җ��)�1��\�d.D�GN1����OѴNy���9[.�Z�I��~����)R�.�bѬЯ�J]�u\��#���x ya� K���)���l����� ϟ=����>K�!C\�����hQ�� 9KuG�3|d��?S�B�DI1s�(�-����!CB�K�8Eغ~�h- �� ��D�?��<}�I��0���7c�Z[}��.'M����E�^�~�bH�2|��/<�a†U!pI� �"aiW2t�0���{�}���wo#N�x^�=�+!z9�D2ɓ�L�?�޾Ə?��/yN>��,8w G7q�G$Q�a�:��;�[T�i���[�/h ���R�e��s'Q�vc3�MZ��5x�6�� ���)E�dF�b�!@�W�#$@�!@ 5����V$Y ��U�[��l�h��͸�!�0Dv��x ������t$͸�1)�0Ǎ9 P��I�m�� hM�����P���x@����Y_ P�K��� Xٕ:� md�m9��g�"l��]�A xv��K��H��j����^����w�:���{j�b�?A����{!���Ä�(���p��l�@+����8�����6����}��m ��Eآ�C�H��M �Nx�8�ݺ���X��"��UE�7d>a"a�e�$@�&�����7�f�'�5� \҅�}��ø��OS��I��t28��� �@� Hҕ���e�+ag�7����������W�j&ܵh����H �dM�'ׄ̍/�� 3I��-�^��Z��p�YG�0(l|�H ��Ӆ��f�r��f�"�JVP���$@�D��n�+�Wr�k�v��,��5���dT5� .��� ���d�W��/t3ߵ���B[ij¬�/<1��H��"m3:�߽�eE8�H��P�9.H��E ��6�5����p��p��fc�P�9$H���@F�̷�Q��\��B6 v6�#@�P .t�[�H|��A���Y��}�a�@&'PAvNk��H����B�7حa�u=;N&'PO7�}e��|���(��W4#@� %+"�h��'���zK&c ���'B�6���oO?@��q6l8�����B� c���}���_�����)2„��e,B�"�q@$���Fی���w���S�p��1�|�A�Ϙ�O�Ο���g�ǟ�K���.#�2uz�v���oشv*T���ɚ"*�����ISxi���^to��.=�=�;7G�R����Gx\��ރ\�T�-�L�%o�/$����W�X� ;� ~3ߢ�D�̉��[��ٍ�� ���K�8z�^�|��;�s��ʻ���;}\9Q�E�U�߽{�;7=�-g�@#��߳-�8�߿Q��&�^�LYr�N[z�"lK�d_H �d։o�L���׼v-�G�:�G�;N<��v�]���Gjv9u�Pl�{V̈́��܌q��ABΎ�a��Ɉ� 1֭\�!���Ѣ�P�޾y �6�A��.���fN��f�Ǐ�\����!B�^����k�/@�ȑѡ[�]��Ǐ�G���0r��/�?�0��8��gV��e2gC��%���9d���P4gJt�9�7�����w����g0}�H��[��x��1޿�#v#c�3y>bƊ��.]q�; W��[� /���j�~7h&7O�'��M��7m�vN��(�V�<�Nf PH'��t!g����ЬI��p������*��L�c�%�E�Q�^3,�=gO�+�u��3�I��J������oU��ޝ�(�?R�J�J��!�c!dϕϰ.�j���=� G� �ѽmCT���;9��k���s��͟��V�(V�<�6���3��\e'�,爨Ѣ�e��8vxfN���_�¹ShV���|�"g��ʎ�}����X2� �����G ��ɮ�Շ�N=!u� ܻ#�7m�>0�� ��B�n.رy 6�^���f©~sΞ�&�E��%�][�ùs3eG�P�A�"�ٯ2+"�&PQ'�)�����U��޾���ĕ��36�\<���r)޺qNݏU[�f�e f3��0QRܸ~k��Ƕ�����CD�GNFU���Q6 +�.΃ջ���Ŕ�C����ᅫw�Y���Kгc���F�ߦQUdɞ�K�E��y���M$J����ȟ9���|���^�j����!g�X�q��>~�E��ݏe({ƍp���ԌV>���gΖ ���$���UjA��w��d)R���]���%r�й�*"�"l�#��'� 4ЉoH]�y���M�̚���Rd�V���/]���2X�l渍�Σ��$��!Q8%�3&�D���g�X�3�Β< ��:���Ҫ �p�«�� ���m�V�D����a�ԅ(Q�����d;��w�+� ���k0�u�����ܲR�ψ�i3�������P���_"�����ׯ^x���Y��YS�࿳'�{�%��a��5K�b�:��@���q��[�-������_D�4lm8�?��#� $$�J�<��|7�j�}��wo������Mj�Q� &A��Ժ���:l���p��W%�2;,�+��}������2g�z\2�+˦B����R[uFL�m��у�(�;��уz�l��+e��ػc��[�%��7Ξ3� 9�|�f�Rny\E��IUط�,�D�ٓG� z0| eO����!��� �e 8�E��Ȟ;� ��=�$�$�ܹue d�"̶:���/��(��э���|��m�5-ISy2�C���P�nS���f�"¿~�B�j�1g���[@%hݸ~3m�̠E�%;:O�"���fMq�d�A��f�|��H¼�&V���嫡vÖ��M۪���hԲ#�܃V c�� �?!r����N�4���“g�D�\�T��g��ꃂ$�I8��SdJ �P� #I��۵� G�p�0�� ����h������0�a�uM�lϝ�����o�ȓׯ\ĊM��6C&tk��[7�T�Q�X��x#�dϭ���\�����2fɮ�����2���)��W���e�u֒M*�k��ק�p���T�Զ��Х�\����֝z���T.�����B��}�z��������%1��L����j�/Y���{�A����'���G�mKh�l���۸�jWf�G��´��e���O΄9 H�~ dՉ���ʱ���lw�������uJR��]e�qy��1>}����R�u��l�yt�%Mfت�WQ�� V�½����|����"^���/m�G��.ߞٽm���%j4���c��%Ț#�� ����4�m��d�*Ai�fޥی+��7�"�  m3z��m�A�D�ư�;����Ջj��!3� {N#B�����7�T*�cԇ�1�z�-Z��@ ���a���8�f��$�V���m3�Ԡ^���"t�I��͸p���/-[����R��~���&;n<�v���l�5P��߇� ��@#���օ�yT�1��nJaS�e�$>��W���n��|�Xn˦aޢ��~��Z����:0Ś Eؚ�E[I��b��{E�e{�$\��k���)D��(�O��I|]r�Cܸ С�S�ni�}ǒ��|�!8�/��K7Y�I\a����=�-r�~�@'�����I�\"l�(}��Ym��6�_�:ʚ���в~%�/:�E�@�k�e*T��5K�s�Z���D��� X��:�� �ی�[�i�a�D��(��܎���Ռ���{9}�A�e���){�%�,�*��R�Ʃ�3'����Ԭ��]���^r�\y�� �o�*s��Vu$&E�:����$����b$w��7�f���N�?"�[���8z�R��u��$�5�/�=In�2������^t�3 �����Q��r,h�z��Duִ��%7F�a$2�]�h�:E_���F-:�� ���7(��˛��@P T��|�f�2�e ���0oQ��%��&Q�E3x)d�Pjvl,ƒ�t��3�1z��I�N�rȒ][�S۝��f�q����� 3Ə�N�=y��n��X�}��*��P���K���&:���ߥ�� ޢ�˭LZޢ�a����*G9bS�WD�i��hЬ�� ��-/Ζ#@e�c�ZH�*��j��ȁ= ��rŢ5��5x�6�+��F�V7ta�� �T��-JD����r��� z�R@D���e$I�o޼R�@�Y�r�a�.-�DZ�ww�8|�� �IDATQC���7x��2eɁ�m�S��o��ձ &Nf���T�F�z)�Z�d=$���(뽒�G7�[�XL@ ��hޢ��-Jzv����x�^�� p��5CbV�&Ց�!�J��s��� �Oc׶�ؾi5f/ݬ.��ߣ …�� 3�b��ؿ{��5�Z �Q���>ck(ak�m���f�rs�\�p�^:o�~�W�y�R�oQ�ۓ�$�s���2p�d�wȊ�+����ШFI����+;�u���ޢ��%>�_U!Y�S�B�DI k�go�VgQ�9�9���������l���v)����gH��r�ķ��6���m��� �G��C��(�|�������==����S"B�H�W��������oH�2���Y�._83����EK���^����FȐrh��������.���s� >�nw-�gZ��e�.x���%S[ph�N�u��kv�i�hա 7u���O� %+"�������|�������Z���nQ z ~װe� )Q��}�(¦���O��N|?��w9ᘟ�E��>�g (���}�=8�� �d;_Ӆ��G�l�(���ħLC�"l���$Ԭ�f�C7�u'�#@�<�ؓEa{�6��m3����^ ���F�P�ǍoiC�"� G�B�u�+g;�o3zL,�O�"l�>�e )¶�]�-8�҅�sm3� � m�kSk!����� �59XC������J�� xzZǩ�Ȗ6���E�_�� (-t�+�jȱ�+ɅH��B�"z|��7�f$g9�����$@�'@6=c���m3ڢ ;�ή�j K%@�T��.sHg��H��,m��� ���(š#e�VJ �N|+�B�v~j�}��$@VB�"l%���&#PFv�[�Exe���d��b 0"@�p�W�t3ߨ:�m� �o ����=[6�V:�}����6�l�H���0G�=�h���N|w�C��G �&@�l�к�Hh��h�.�|2hU�m Ў�EX;���rd��|�]��a9�� �C�"̑Ku3��Fی��R� �"@�-�ko�����h��7{��~�� X�������M��.�,�W��w.!�� ��5�[��h������U�/t3ߵDC$@�H�"l�^�O�#m3:�߽����&�a[���#��6�5����0 �� X=��ջ�f;�Q7�ma������#�Ka�t�Ew��n�[�h��K���Ƒ� �@ P� ��iN��N|�m3��y+��H�,��E؂�a���Ӆ��������M$�(�v�t �r;����n��B�$@$l(���� ��{��f��u⻟dH�H�^ P�������F�Bv>�&�5 �<a��-Y�Y7�mb���-u�}! �������@!�̷��6���E$@$���E�#BK�t��h��/-]$@$K(¶�M����.�Rv^h>S�2 �� X�����-���$���n����M$@$�(–�˵+�Q�����\si �� X.������,Kn$�Ku�{�Ҍ�=$@$M(���-�ؚU��+�n:�kS�* �� ���m�S����| m3z�e��H���E��G�����_9�j�n��IL$@$@��k��Zkl� ;����.�֎�n �ak�i�}��mF��+��4M�V  �(��9&be:Љ�a�D�^�� ���P����-�q����T+��^0�!l�H�H�qu6�tđ��%,��Lv]ع�Q��� v�������ם����xv��E��D8}���޸�4xmk.X���|���{[a�~�@P ��ʳF�NA���@��=5��L�"(~�% ᪺�oB��N |�& �.�����zF��K&�Mt��C'�r�$ ��/(��$@ր��ph�mF7u�U��� �ya�w�Ew�"��{�(±�2������]b$7(�v�j��(EX��A�S��\��^Ҡ+����E��\nQ�k��᜺���Q��C ��*H�n P�����q��n.����1ߏ��*H�� P��_�|E��!.\8�+��)�8Ԅ"\]7����*H��X�x���9"y���zt ���7�iX�{52d���� T��[�� <U�T(W�,귨�(Q� S��Ț3+�m ���_?!K�Ȕ-V�X��X{��9�g/��H�#��p>��q��}�](���"�L'�_t�\3Y ��lE�'K��'v��I�5i6V�^��>�p�z�2T(;t �=D�&��2�E���7\�"^�xh�VvL�^�=y���K f�([�,~�����.�ʅ+�٠&�d�c�"���5�Fی���w��  ?زnj�zV�AkV��� �8�(Q#��� T+V i�b�޵^Dx���غ~��~�i�&�Z�=�P���[��Y��O�Ѽ}3lZ�%˕@�V ѸZ�L�C�����q�F+[���·��P�Q-%�z.R�0�-�s�Н[wQ�@EdϓK6-Ɨ�_0a�D�s�C�F�ByѺKkD�-j�D�y���<� ��M���N��eAa���/Tء�c��H��A�VEx��3p��U��2��A�֋�� �ѣMO%x�7.�"�c�bጅ��9��P�k�e�X6�dD�L�] i�򸥾�۴� ��%=}�tLuu��٣W�(A���̚+T+���~�����f���P�i],�����Ǫ𶄪O9�����߈�ȝJ�d����rb���ƺ EX�"�����/M���|�.ߙ:񽢁9��H �lU�%<-���=ۡ]�v��^�E̤|��I��:} �U-�o����o�!�hԪ!�L��f�~�p���Ѷ{[��z~�x5����v��5b���w�լ�3�ϢO�>�Cì�3 "<v�+JW,�P�C���(EX?�"�2���hޚȭ�jF�Ώ50�U�� ��5���e����3���R�k%1�����O",��0a� C� (R�0 9"d��~��̉�0y�d5>���V,X��ۖ!K�,����W���"<w��+���-��# "�;n%���8b�܉���ą3вN+5�=v�]�v�+���C�޵���W(�������R�(� ;�0��4�H��@�E��X�|�ۆ�£X��Ћ�>1K�ϛVoVdv�ޅ����6�&h���g��Y�_4?�8�ʅ+�?z�C��b��Qj� t�Kx<�c.E�xM���7(���2��uw4��P��'ϟ��iS֋�3��b�9��: EX�y��d+��{n�諛�� #zf!��(�떯G���Q�X� �R(����G����P�z��6:@", U�:������2)��""�"uJ��SF�VK�+n{���~��dG;v���߸r�J�o�҇�Eh�C��e<�[�/�9�0a9��$��:{~8����4��l�H�g�(�/��@s���(Il��f.R�J�E�S�J��y�����j�o�N�����q��D���L���7�ZΓ?7N��R"\�x!�u���f"\�p)j��ݨ߼>���5c� L3 7,@�|� Y��� W��9���q����{qF��I��ʇ)�������.�����앳�vxs&���t",3_I�JfT�'x@-��5h�U�� hL�EX�~\�?�Ps�!4&�: G� a�J��"�|��y�ϔNe-/��ㆌ� ׁpj(��j[d��㇏�/��[@ma ��a��++ȵ���w��� ՠ9VA$�!ka ��W/^��cy�]-�d�iKhZN�J�"i���(�x'“��)�9,U��Q�M)� GԠ9VA$�!�p����S�N�΍;H�4$�*A���̎ߢk�� ֡���H �(%��� @ր"EX����D�"l&�lV�k0(�@d$&a3�g�a���EX+������E8������LX��@��"� 3�� <��LX�1@֊$�!��' "���E�?�Wg�3}��dH�@��k$8��'ر V����+�=|�8�b v���6��Ÿ���@� P���/hH �"|��8qB��Yqd�כ+��눝�´ˑ%�\��wy��=b9W�?z��GL�{���қw���y$Vm�m�Y����7a�Ƌ����ꍻX<eȿ�4��)�&��JI XP��3�@�E���md,*G!�nC��q��/_�E�L%����{���ӗ>��*^�z+uN��C�2Y"\�uͻ ��߿ql�| �4b�R792� E8���EЊ�EX+��'0-��rfF��Ѯɟú�܌�K�����J�E�uD�:� ?�{䔗٪~&�]�߾��F�"�,p̙Ek�µ�k�.���F�|�6f.^��};���>{�>q��9��}cʛ]�0�m!�-� k�nX�:7S����}�����#�#@�<�ؓE����΃8���RuA����c�D%«7����� !���Z�D���]��S|a�M�P�nD� �����1p�L<���W�τ�����s�e��X�q��sǥ�+q��eTn� ��݇OЪ�0�Y92����y�g��8��$�#@�8�ؕA�a���/T��mG���3Cqx]���+���7r������ܰ/K����E�C��H�,1d&|�,D�#��W���G�(�S1a��� ��Ɲа��|��ͻ�V��ػj: �ˁ+7n#N�8r��O/��E�ߨ� X��ŹĮ ���v��[�SŒ�)��ƾ�31e�ئr���]Z dȐ>i���>)�&4^�y��K@�.ߠ��7vL�8�^͆ET��WW�!f���H=���C��U0}�C8zڂ�<~6��|�֏o�{�D8L��h�}�ڂ(�#�i���.lX�/��[(��%��H��P�-�'�dQ�Dx���X�i�D���r�uVc<n�]��D8G��p��.�ߵ�(��w M�jj}��C4�2HeG�.����������l%�a�\WT+W���E��b��YJ�GNY�DxH�6H��N�Z�K���=d-QW������ {�D�~c0̹-J����[֯��q@�7*>H� ����S��$�{��E:��H�<���~���)ra��m~�����c<we�1�Oئ�@�D�ӗ/H�����ֱ����_�zYJ�Q?�rp52�I��u�#V�h�9�&�Z�A�f����}�!;Z֚�6�n�QK�̅�X>m�8����Q�ag ���[�5dG��y+4V!ri�c?W�^��nQ������-Jd��N�J��k��߱Ym��p� ��w�|�H@+�|� �p��|5�ܚD�Z��hӵ���)���=y��fBx?"zv��������X��@��� ��~P�� Vi�/����%�oc{d�-jd�ܶH����I�o���R�ꆮ��)!4�',b-Y̲�ً�h�s�Z�՗N��T��*���'�h�Tj�[�Q�uiY���@�ByT;��6��'�U8Z�1oZ8?~����ơ�q�E�c�'f�� ����I�LB�'���~�j����o����hߣbʼn壁Wo��x\�P��wt�f��o��P硸|� R�N��C��=Ov�?u��́ۢ���s'�a�E�8gV-Z�gO�����8z��fĈ�#�t�̘0����I��X���uF�֍�3oN�]߿G�Z-�:} �?}��"u�TX�d���ed?Ċ͝��὇(U��j��<,�53g��д�a���/��<n�G�q9RDW)k�O��B�� UҖo���gj�8R����;�~���Q�����j�8F������L�}߿�ya9�Kķ�t��K�M�o�|�H@;!e3�h�*?!�E��ln��F�?�(����3a��V$K��m��g�}���9K�h���Z� ��G��1�2�e�CZ��hթ%�8�ų����|�2v�}���j�9��F�Y�TW7L7z�G�t�0��0�kZe��C�zmP�V�iZ1b�@���Ѷ[%���G��rA.Y��4��������3�x�b,��3�πCf�h���0��~�9�6��}�sb��� �-�a�K֘�oW��au�� ���K���������=-�Ӳ.�%�g���]R��O�z����6�eW8������ ��!�[� ��wm�ř;�U����GX�x5r�υ�u�����9�j:O��:Q�E�S�O=�E�w&����t̴��O8�'>u�$"F��#���[���&��-CLL&�������P�ZY5��a�CU @o}��w݌Xf���3e��쿵�O�z��Ъ>�G�����O�ie�ԭe]Zק�mZ��W?��� )���� ��!�[��I�e�8{�s^�|���e� (V�(�����>^8s����W_��d�Rl:������t��H�:�޷cFc� ?y�D���̝:�^��y�%½�9��?Ky�_�.?�D�Q2�[H��� �����{��կ� ���.-X��FH�/mu��2�?J|�羚k��>���Ue�6q(�'���1�#C� �Fd�ڴF3\x�B���awoݍtӡ]��8v��B�R�M�O��?|������q�ܥ*4�G?�� �A�~�] ao����vP�5���5a�;IH��Nx%6��X �b$@' k�t�;�+�*����ך��?P CAt��M�׎� 7�3@��Q�^ �rG�V=p�;ny�R�څ U�Th\� dm�_"�T���D�F����_��R�Jn��p�o",��.]\p��~���<4�V=��$(�h!0e���*k9U�āy�l���-��"ƲN,#\2���T��ʆI� Hv�����W����v͒5�c��;S�L1y����cX��jM���O:a(�׭�_?�M�6p?xL�,o�����_<Ie0���������)ɇ��3Ǣ\��������#�&�2c�Q�&�F��W(�Ljٺ����>߾����YKօK��j��5�����6�&YS�h+ � ���X� ����O�����>�铧H�,�_�v_>�h1�!L�$�����;D�Y���Z���ׯ_ �cA������Dx��ux��9���]�#g���$�8�b@f���PpT-[S�;�u�" �8W%q͟8H��s���ݎ�?�Bɂp��?~�D�j-��\�g.U3�>��E����k��E�Qnx��#jW.�1�;#|����\B�A,S4& ��Т��,-(�0�D�<ֳUk'2��������=Z�!mJ��;�8�����U3G!F���>x;UT"+gG���̓g/Q�v;�r�Ѣ��Uo��e�:"R��H�2)� �U�vc���hʛw s�ژ<�'ҤH���Ǫ#2K·�YKCN��Y��L[�ΰ���T'R��J��P��Ǟ-&a��P/t}G����'�҄d�+*mR����PNڒ�����r2כw�7{&<|� N��Q�DA�l�H��\Q�@.|��Q���Ck�� GO�ghSN���)���q3�����v%� � PO���rhGE8��� ���E��>�g L*�"��' T|G�-ĉ���E "��"3� ��!M��^DXN�����5��1�R��n���Zw�y����ML#&�G�X1��������U��⾕Ȕ>U��O2BV@f#@6z6 τ=y�9��{��c]���{$I�.@����R�a^D����8~�"VL�d��;3�Mi���7��+��Ex㎃���6�����5����<pL�Q,E΋�t�rgs@��$D�6b(��]"�%@�^�ق�&� �$�r�a��p~�ru߯��$hmY4r�t��ѺauTl�)�$T�ZQyG.d�ݡ� G�$�"�ŝ���)H�:���IցƏ�2u;��Yȝ-#\�-R�?:��5�G��_��^ P�����oMEX� ����)C��za��p��1jV�z�čѣFV��]�g�� �IDAT�se��KF�$m��K5[� +KFu��TH�����W��"����Ȕ.�w�+7���.���hI��lj)���i�Q�nM�@�#+!���;��T�BU������ւ��$j�}��B�T�=~�ɓ$P U/^�A������*rے<#7'y_�EL�"�f� EX+�������p��I��B\� ��N�I P� ���������f����� �G��!�ni��"D�R������ P���Λ�k4�(��d5$a3@g���EX��@�$�!3����י��2�$ R̋8:�#�"D�|��H�3a3·�9�h�P�5�jH� (�f��&��r �C�e�TL���l�u�� ��E8� YC�p&8n��a7������|A��,�P�&Y ��F�OX#��&��&ht^ԉ�I�Y��V�'��� ���'И�O��(� ��� +-�a�p�a�r�^������w�摀��ۭ�-��a �$��> ��ڟ��8�M4�H�4$@�&� 0�p������Ĭ��N�օ ���$g�˟W4�H��H�"D�|=H(�A���e���� ���Fk�ub��H��50�U�� ��E8����&(��e�R��Ӆ��[���N�_�Y�e!f����k0 ��'���4QE'���f��50�U�� ���E�����P�5@��:�ӊ�%�׎���b|�4 ���B���u������_�5�S3�*����}���)"„ c�fl�N����H����"�Na$�O��<��b��EH�1��V���ْdǰ�CQ�N5�̦՛Чc_,ܰ����Rߛ���k6c��@���}����W۳m/�9�E��I�^��*�ϟ>��� ��3�U��{a \��[�D. ��*H�/�a��e�H�(�����ݡ76�قv=ڡ}�v�{M�7E�T�Q�R�@�p���Ѧkk��T���쉳�s06X�ߞ(_�����YL޶57@��{&a�u�a�U3�K�� ���q��1V9���r�� �t�gO��\�r�>n:��]�f��w�DŽ����S�-�.#�!^�x�;u.V-^��'v�ׯ_pL�UjU����r� �g�cg�"z�����5��P3f�Cf��fT�̞<[ ��S�da����NÌ 3U[�' �caGlX� g.R3�J5+�m�6�5i޿�����T]7��T�?g�lHxY�u��$�gL�n.ݐ!s\�x3'�B�Y�L}��u�ܬ��_�f�T=3'��-�[3m4�(� �ac+�ȥ��X D�3�τm�[�,��w)����Y�zձx��;yN�p�0�Q�p4j�P���3��I�ZĶ^��8|�0�=~���������QG����Q�t-�;��o�B�Z-Q�| T�[] ���ߘ�n� �6wj��c!j���ڢ��T�R�M�6�Z� �4��K�/�M���;�R�I��֩AM�ɐV �;�>Bxe���cX�~ꔫ��Ѣ�Y�f8~��L���׏��Ui�䩒�i���Y��g/a{!�{����Ǯ�#T(���mm�R�5�h0���b&ri�;VA�� �%��n�C��p��aĈC�EPE��o܁�GOb�֥ ���wP�%�9����V��3�M��k�p��9L�7 Bn׽-^�x�����Cǔ��} "F��}�ѽU��y�o�����9Gf5�u�v�۩������: V옆������l|�5ș"���P�B�CC�6��>Sz�!ש�H�$�J�����c�~l��H�O?A������^�|�K�P��2g��EX��a&�[�D. |�엀o"�h�b����k%<R��.j2���e�0�m�ݢ~.!�,���5i6�&�k�~�� 9��Ī]��Zi��m�)[&�w�<J�/�:�kc�� ����-z4��W����_:�ڐ�׆U���K�=i�$lZ��"GR?oҶ�_"\�@Eܽu׋��yr�� �[7R(ܯ����ѭe��ƀ��:}���N�+�㊇�S�N��h)o^�AA�B�|x��y�P�M6�,���b"�ɼ̊m��o"���<��Pu[f���?a|D�]���ˉ#'Ьfs\x���B���c��UZ���]p��5L�3�X]��jŪ����6���n]� W.\��#��"u �p�K��jMXf���R"l�m,£��g.�LW$L�P ��������s9�R�l)�޾��/Շ�#�����&m��™�Ԍ\�hY�]<hwY�M�8!�ܼ�E���2��Y{�d�U�wn�E��������3��ӽkA"�� �4�+��A G�X�P]�vV���MWa^�_��I����t:r�͡�$��m�TW�ik���f��Y�$M�N�G�\P����v �!Q��j�|���^�V ѱW8����}k5��)��Ǧ����1�Ç�� W����3Pa�s'(���d{ �-����1H[n���(���ߑ=i�Y5[%�I����u��%EX�[����\��U�.����z�wK�.ň~#շ��ɮ³K6-F� iЫm/l۰] ��|�-vC��ճr�G��YUB�~��|�Q��x��-6ڨ��K�E캴語�+ �(�e�֤%�>~�8�/���w��ܥH\W�II�w�zO��%ߓ5��{�+4Zvj���Jׇ����V�ڍk��W,\����bʂɶ;x4�EX�.��2�K_� �#��O�e����G� BR5�_�?}�O�>#i�$&9�Jf�ϟ�@�$ Uۯ_�A��QUV��Z#G�����* ����S&��N�������䪨��V����Y� Ih 7DӶMP�\ ���g(���JDX�S&ri�sVa;�a�!����� 5T{����a��V,�HW��ea��b��,CKx��<��&r� ߷za�\x��}�z�J͸e �l_b�aB�{L��!��(���{K�9E��Y60�˲�AkLL�"lb���Oa�0��c�.P�����I��ź�b c"�Ÿ�����E�TY� P��K�� &rq���͹Ԫ:D�wY��L�WА�j|��B���A��w���1�<=Ҫ;@㭞�E��]h"�E��F�� X���y̲�e"�e��֑� X���9Ć�a"� 9�]!0 ��i����"G �� �B�"̡������ ����[��l�@&r٤[�) �����ג����ɺH����E��\f�3��f]ˎ�� �F�"̱ai��ei�=$@&#@6ZV�&ri��U�� X.����������8H�l��E�&�j��b"�ͺ�#�$@�O��B���e ^dH�� P��|��@���eNdH�^ P�����o&r٦_�+�Ya�u�]w��\v�~v����E�z|EKN��\g�7H����E8a�)�"�Y�q �P�9.�������/ X0��;������L�� �� �E�"��A��8 H��B�"l�l�B 0��BC�H�V P�mճ�WP 0�+��> ��? P�����9&r����I��(¦�˺m���lͣ� ���E���VI��\V�6M�G�"ly>�E�C��\��+ZJI�"l�n�QVH��\V�4�L�&@6�ؾ�"��y��!��.��{L��!@�$�7�0G ����LϘ-��U�[��h��"��:�f���P�ME��������B$��0 �����˟���Y P�͊����L�� ;#@�3���VA��\V�&IA'@:C�@�"�D.S�e�$!(���A� �D.�Aat*�d��'r�0Ϧ{�Α� �۰s�5�'�D.�w1;h�(¶�a��0����>�$��M����SL�Sdz��K�"l����$�&rq|���[��h" ���������� P�MM�����"�������"@�@ �#�D.��9{l�(���E�@��\���M��_(�$@B��\$a3@g�$���e�Ρi�G�"l{>e�H@+L�Ҋ$�!_P�94H��E��\�"ğ�@ P� ����"�:�]6-��i��v�U6��u�U�;_^�In�Nb�,�@��1�R�-�G��,��U'r�Yճh_KgL�l����xX�����"s��D.��9� ���s,�� ����$rQ�M�~��_a���s$@�!�\�����hE�"�I�C$�/��E����sS���.�&���E%rQ�9H�I�"lN�l�H��\aBs���>�&�0["E8����_���… �P!C�";~�"l��g�I� {"�5��c�8w���܎���|�v�ػ�Ԫ�ŕ���E�^�^�W�t)4�R%�a삅p�<[ܦ����;�ܦa��(S ��դW��=�뙕�\q��� ����ODɓ���mJ�c��(�f��FI��A X��U�/߼���;l���P���kw�A}��Ȝ& �Ȏ�Ϟa���[6a��]�?ej�Ex��;v;��U��!UJ?]��di�x���TF��?#�e��w�d���xԼ�(�+'v͚鏡e9�P�-���H�g&M�n�T퇏����ѵaC���Q�p�&�1�SGEU�-�f�x\�}� z#�G��SвF ԫPo�@���P�\9H��l�Ѯ�|���rR?:4���[�bκuݵ † �^�ǣx޼8s�2.ݼ��%J@�6*\��'�������{J�ˋ�Vc޺�x�� �ȡf���f�����|Vlێ�߿����6L%¹2: c���v���M�~��<QB����[�{h ��7�'rY�������0{�Z4�Z���@���"���'�i�Z���M��3W�DO��f�nܾ��7����(ެ�A��׬��8Cʔ�o))'��Ma��.J�jm��������'MD�B "<�[W�ǎ�ʔ��G�5F�xq�5+��ڍ81c���]X�u��� �������]ЮNm%�R�ٰaB��w��E�z�8��%�[�{h ��/�ȕ�e0*�.�"�"xEs�V�2�ԇ���$a)Q"E���-��v��D�M�ZH]��A̎�wE�6�S�e&�n�8uU:vB�ڵ0���A���gO�ǖ-�"�Q#G��'�,���_�Ю=>|��7ǎ�㈑X�y���zɒ����Ɗ�byrD���|�� �WέYeѿDa�v�#��&r�@�K�E���<�c��C�re�I'f�ׄ�})�=;�̙��[�",���I�@f��8U�P!$M����y� =w%��T3�,�ҡQ��٥3�6j�_�#R�<~��K�V�?�]G�z�Ѭz5Ls�ga�Q��R"��֭�g™ӦA�����1/�>}�2�w�DY�|����l�<�3�����g�s�2�iɿEaK�m#�����\�߿����-y&���4 +WB��UԬ�١8u�J̒uP)�/_��1�Q�d �� �4=���#�h IKҖ��[�|9�UG��g ��{���Z ?EXր��l��kMX��&/]����SMo�BeO�_�s�?~ģ��T(Zl!>�f5����%1�"�_>K$@��-��7�n�{ �$ K��,�z�K�,� 7˺�~=vϱ���(֬�ZG��a=�:�Wb�o",�e�RM���U��IK� D��v���+��պ���Й��k�ք��[����0�__|��=ǎW�H����aX�}�Z�P���%�}p�����)���B�& ,�D����i�7����ђE���Se.�_����n�X�0�EX�(9u뮶!I�8Y„j�pϦM��z/�����̓��')�D%�L���NǑ#� \���9�Ppq�:��;u��#��R-[a���Ӣ9.xx O�zh^�:�\���ml�$kU��Qmg��-���K�Y�ג�-!z)"Įݻ�H�\j���%�pe� �� hO��������"�,�z /߼��w�2q⿶�h�J�5�zr�H� U�z�VeZlj����˗Q�qS��,[�LU�$�GϞ��k�=���޼��߾!A�8�2!���p��fC$@f �V�y���־��5��-��� �Y~���F�-��S���Y�+ƎA���-�V!E� �DI�M�����/���=��^���f�a���y�ϜV�ɱ�GG��9 ��� _4�s0�� �2��F��c?�!m����Q��}��$�(�v>���}�����I��{T�U��B�����l2�Y���I  ��R���+Pg�Q��\D�R�����DG�a�R�&5-�Ēt�1D�Y{7���p�����?.����ϻ]��{GH@Y�����>;%����I@�(a�/��ӧ�.��'P��%�,��N k}0�8!a�#� ���++�' c�N���9_k� s=�� h��%���+�<%�x � ���(a%�snJ�k�H@�(aM�_��)a�K��H��$@ +I�sS�\$@�&@ k���'O +^@$�$JXI���� �4CI�FS~�}�۳���(a}I� ��I0��������??�q��]���)�Q7�D��ayr4 �NF�v ���QX��L�f/~���cp��O��gԹ9�aP†��QH�:)}$<om�����W}��2!�mDoz��[!.�5x��@����������عsЭkW8�|��Hپ;���)��ض��{��Ґl/��c����Ԙ���#�<{ �(�< {;[)���?!�����sO=��-o����*>�ZrO��O�Ƣ� �gUƎ|I ���9���q��j.���Þ�����ѽ;ƅ�!g}�|���� G���e�%ĥgȾ������üi�X��M��� s�qpP']� �6.o�F$�2�H��0{��ǐ���|u5�/�W�O @��ʱ(%���ųC���e��퍥a������ꉨ����A�x����B���#�*^�ttD������x��N���烜�(��|��%��ʜ��JN��)8��-+��o�j��1p�;"�L���nH޶���CiX�%kti��Pkk���'��@X:����" ��5�~�wv���O������uwwD�K����R�-LJ����ei��j�/JX}5aD$@F$���� ��S�{�q� �9+"f�,�.(�j����WJ8-f�O����F��(w��#F�{��<ߖ��>={bb�|�?k�%���]r���ѥK�[V��/��Պ#���F����ص v���}��1�n���Qu���\�;.�,���W�56.Yܦ�돔˻�ؕr�Ù�-N���t� 3b%;�T�p��&0�IX�+!s��E������(z��K�����[K��KN�\� �.β��?�gx�} %|2/Cn���=�0�yK�:U���l��i����Z�S�s�Z�&���.ִK�Q��9�q[��Y�/-E�7���%m݆c���.v���zVc^n� ��W��{��fffH\0_�]0��.���C �nm� ��$�/.^�w����W]L4�[>.�Q7��JX�ӊ#��I�d���[�W��AJ���<=hP����{$���^���#�i'��Ź�*8Ll��c�ڌ�G��@�N�t��-�9�9���b]F&jjk[>X�-�� '�~��Nk�pHL�<rn�pW33$P�z��;�P��F�7�� �CGo��vcG|�,,�.����'O��$<n�h8Θ)�'>�D%$"3���(���MyO�QN6lm�q��)Wq�ݺ���w��x��R�m���9f\Z�}%�;)N��cP��K^���U��;aJ�0� (a�p�($@����n��/Mq=k�/��p���D��'��ɮ�i悍𘹹��? ��'��k'lgc�%!��%�m޴���n/���5����'?�r��_"������IDAT���h�=a.Z���;�,G�;����b���;��O���եa�T�q�-���p���pv�狼�xaS��c͙H�TH@ �7l�?g}YS#�����R> ������x��GѫG465��� ��O9�k����j��r���a3p��w��Vw��74�?�{�֫?;���%�>^�M$b:B�&���t J��rh ����#S��6��27 �6 P�m"b�$@ w \M$�~���kd�R¦]�F$�&J�MD�Ё(��ˡI��O�V�L9BJؔ���H��$@ ���:��%܁p94 ���  �?JFh��[�L���� �4���>�=r a�I29U��R���%���0( c���A�s܏�%�uA$�y��旀b�(a��sb �(����ǁj����$p�i��̘H���RP��w�J��$@�!@ ��� ��\ə0 ���(a� �P�J��$@�!����0���@�F�����T,������IEND�B