pax_global_header00006660000000000000000000000064146114277240014522gustar00rootroot0000000000000052 comment=f371875985fd741b6c799ae675a5de40af7cf57c unicoq-1.6-8.19/000077500000000000000000000000001461142772400132635ustar00rootroot00000000000000unicoq-1.6-8.19/.github/000077500000000000000000000000001461142772400146235ustar00rootroot00000000000000unicoq-1.6-8.19/.github/workflows/000077500000000000000000000000001461142772400166605ustar00rootroot00000000000000unicoq-1.6-8.19/.github/workflows/main.yml000066400000000000000000000016671461142772400203410ustar00rootroot00000000000000name: CI # Controls when the action will run. on: # Triggers the workflow on push or pull request events but only for the master branch push: branches: [ master, master-*, staging, trying ] pull_request: branches: [ master, master-*, staging, trying ] # Allows you to run this workflow manually from the Actions tab workflow_dispatch: # A workflow run is made up of one or more jobs that can run sequentially or in parallel jobs: build: # The type of runner that the job will run on runs-on: ubuntu-latest steps: # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it - name: checkout uses: actions/checkout@v2 - uses: coq-community/docker-coq-action@v1 # See https://github.com/coq-community/docker-coq-action#readme # for details on docker-coq-action's syntax and provided features. with: opam_file: 'opam' coq_version: '8.19' unicoq-1.6-8.19/.gitignore000066400000000000000000000006541461142772400152600ustar00rootroot00000000000000Makefile META.coq-unicoq *.bak *.cm* *.d *.a *.aux *.vo *.glob .coq-native *.o *.vio *.log *.aux *.dvi *.blg *.bbl *.idx *.ilg *.toc *.atoc *.comidx *.comind *.erridx *.errind *.haux *.hcomind *.herrind *.hind *.htacind *.htoc *.ind *.lof *.tacidx *.tacind *.v.tex *.v.pdf *.v.ps *.v.html *.stamp coqdoc.sty doc/*.html doc/*.css *.conf *.vok *.vos src/unitactics.ml # emacs save files *~ \#*\# # Dune _build .merlin *.install unicoq-1.6-8.19/CHANGES.md000066400000000000000000000007611461142772400146610ustar00rootroot000000000000001.6: ====== - Fixed bug #41 that caused recursion on certain cases. - Improved performance by avoiding creating and clearing the cache at each run. 1.5: ==== - Removed dependency to `num` library. - Added support for primitive projections. - Added new options for controling if to unify types or not during instantiation (experimental, use with care!). - Added new primitive `instantiate` for performing instantiation without checking the types (use only if you know types agree!). unicoq-1.6-8.19/LICENSE000066400000000000000000000021241461142772400142670ustar00rootroot00000000000000The MIT License (MIT) Copyright (c) 2010-2015 Matthieu Sozeau . Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. unicoq-1.6-8.19/README.md000066400000000000000000000063461461142772400145530ustar00rootroot00000000000000# UniCoq ![Unicoq logo](/doc/unicoq-small.png?raw=true) An enhanced unification algorithm for Coq Copyright (c) 2015--2021 Beta Ziliani , Matthieu Sozeau Distributed under the terms of the MIT License, see LICENSE for details. This archive contains a new unification algorithm for Coq, as a plugin that replaces the existing unification algorithm. This algorithm is described in detail in [A Unification Algorithm for Coq Featuring Universe Polymorphism and Overloading](http://www.mpi-sws.org/~beta/#publications). The archive has 3 subdirectories: * `src` contains the code of the plugin in `munify.ml`. * `theories` contains support Coq files for the plugin. `Unicoq.v` declares the plugin on the Coq side. * `test-suite` just tests and demonstrates the use of the plugin Installation ============ The plugin works currently with Coq master, although there are releases for previous versions as well. Through OPAM, this plugin is available in the [Coq's repository](http://coq.io/opam/): ``` opam repo add coq-released https://coq.inria.fr/opam/released opam install coq-unicoq ``` Otherwise, you should have coqc, ocamlc and make in your path. Then simply do: ``` coq_makefile -f _CoqProject -o Makefile ``` To generate a makefile from the description in Make, then `make`. This will consecutively build the plugin, the supporting theories and the test-suite file. You can then either `make install` the plugin or leave it in its current directory. To be able to import it from anywhere in Coq, simply add the following to `~/.coqrc`: ``` Add LoadPath "path_to_unicoq/theories" as Unicoq. Add ML Path "path_to_unicoq/src". ``` # Usage Once installed, you can `Require Import Unicoq.Unicoq` to load the plugin, which will install unicoq's unification algorithm as the unifier called when typechecking terms (Definitions...) and when using the `refine` tactic. Note that Coq's standard `apply`, `rewrite` etc... still use a different unification algorithm. On the other hand, if you use Ssreflect all tactics will call unicoq's unifier. The plugin also defines a tactic `munify t u` taking two terms and unifying them. ### Options, debugging To trace what the algorithm is doing, one can use `Set Unicoq Debug` which will produce a trace on stdout. Additionally, if a file is set using `Set Unicoq LaTex File "file.tex"` the algorithm, upon success, will write a derivation tree in LaTex. In the directory `doc` there is a file named `treelog.tex` with an example on how to build such document. The option `Set Unicoq Aggressive` activates the strong `Meta-DelDeps` rule to remove dependencies of meta-variables (see the paper for details). It is _on_ by default. The option `Set Unicoq Super Aggressive` activates specialization of a meta-variable to its instance arguments (in case it is of function type). Implies Aggressive. Such arguments can be pruned afterwards to fall back into HOPU. It is _off_ by default. The option `Set Unicoq Use Hash` enables the use of a hash table to record unification failures, improving time performance but consuming more memory. It is _off_ by default. The command `Print Unicoq Stats` will print the number of times the unifier was called and the number of meta-variable instantiations performed. unicoq-1.6-8.19/_CoqProject000066400000000000000000000006621461142772400154220ustar00rootroot00000000000000-generate-meta-for-package coq-unicoq -I src -R theories Unicoq COQDOC = "$(COQBIN)coqdoc -interpolate -utf8" CAMLP4OPTIONS = "-loc loc" CAMLDEBUG = "-g" -arg -bt src/logger.mli src/logger.ml src/munify.mli src/munify.ml src/unitactics.mlg src/unicoq.mlpack theories/Unicoq.v test-suite/munifytest.v test-suite/microtests.v test-suite/primitive.v test-suite/instantiate.v test-suite/timings.v test-suite/bug_41.v test-suite/bug_44.v unicoq-1.6-8.19/doc/000077500000000000000000000000001461142772400140305ustar00rootroot00000000000000unicoq-1.6-8.19/doc/mathpartir.sty000066400000000000000000000356231461142772400167550ustar00rootroot00000000000000% Mathpartir --- Math Paragraph for Typesetting Inference Rules % % Copyright (C) 2001, 2002, 2003, 2004, 2005 Didier Rmy % % Author : Didier Remy % Version : 1.2.0 % Bug Reports : to author % Web Site : http://pauillac.inria.fr/~remy/latex/ % % Mathpartir is free software; you can redistribute it and/or modify % it under the terms of the GNU General Public License as published by % the Free Software Foundation; either version 2, or (at your option) % any later version. % % Mathpartir is distributed in the hope that it will be useful, % but WITHOUT ANY WARRANTY; without even the implied warranty of % MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the % GNU General Public License for more details % (http://pauillac.inria.fr/~remy/license/GPL). % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % File mathpartir.sty (LaTeX macros) %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \NeedsTeXFormat{LaTeX2e} \ProvidesPackage{mathpartir} [2005/12/20 version 1.2.0 Math Paragraph for Typesetting Inference Rules] %% %% Identification %% Preliminary declarations \RequirePackage {keyval} %% Options %% More declarations %% PART I: Typesetting maths in paragraphe mode %% \newdimen \mpr@tmpdim %% Dimens are a precious ressource. Uses seems to be local. \let \mpr@tmpdim \@tempdima % To ensure hevea \hva compatibility, \hva should expands to nothing % in mathpar or in inferrule \let \mpr@hva \empty %% normal paragraph parametters, should rather be taken dynamically \def \mpr@savepar {% \edef \MathparNormalpar {\noexpand \lineskiplimit \the\lineskiplimit \noexpand \lineskip \the\lineskip}% } \def \mpr@rulelineskip {\lineskiplimit=0.3em\lineskip=0.2em plus 0.1em} \def \mpr@lesslineskip {\lineskiplimit=0.6em\lineskip=0.5em plus 0.2em} \def \mpr@lineskip {\lineskiplimit=1.2em\lineskip=1.2em plus 0.2em} \let \MathparLineskip \mpr@lineskip \def \mpr@paroptions {\MathparLineskip} \let \mpr@prebindings \relax \newskip \mpr@andskip \mpr@andskip 2em plus 0.5fil minus 0.5em \def \mpr@goodbreakand {\hskip -\mpr@andskip \penalty -1000\hskip \mpr@andskip} \def \mpr@and {\hskip \mpr@andskip} \def \mpr@andcr {\penalty 50\mpr@and} \def \mpr@cr {\penalty -10000\mpr@and} \def \mpr@eqno #1{\mpr@andcr #1\hskip 0em plus -1fil \penalty 10} \def \mpr@bindings {% \let \and \mpr@andcr \let \par \mpr@andcr \let \\\mpr@cr \let \eqno \mpr@eqno \let \hva \mpr@hva } \let \MathparBindings \mpr@bindings % \@ifundefined {ignorespacesafterend} % {\def \ignorespacesafterend {\aftergroup \ignorespaces} \newenvironment{mathpar}[1][] {$$\mpr@savepar \parskip 0em \hsize \linewidth \centering \vbox \bgroup \mpr@prebindings \mpr@paroptions #1\ifmmode $\else \noindent $\displaystyle\fi \MathparBindings} {\unskip \ifmmode $\fi\egroup $$\ignorespacesafterend} \newenvironment{mathparpagebreakable}[1][] {\begingroup \par \mpr@savepar \parskip 0em \hsize \linewidth \centering \mpr@prebindings \mpr@paroptions #1% \vskip \abovedisplayskip \vskip -\lineskip% \ifmmode \else $\displaystyle\fi \MathparBindings } {\unskip \ifmmode $\fi \par\endgroup \vskip \belowdisplayskip \noindent \ignorespacesafterend} % \def \math@mathpar #1{\setbox0 \hbox {$\displaystyle #1$}\ifnum % \wd0 < \hsize $$\box0$$\else \bmathpar #1\emathpar \fi} %%% HOV BOXES \def \mathvbox@ #1{\hbox \bgroup \mpr@normallineskip \vbox \bgroup \tabskip 0em \let \\ \cr \halign \bgroup \hfil $##$\hfil\cr #1\crcr \egroup \egroup \egroup} \def \mathhvbox@ #1{\setbox0 \hbox {\let \\\qquad $#1$}\ifnum \wd0 < \hsize \box0\else \mathvbox {#1}\fi} %% Part II -- operations on lists \newtoks \mpr@lista \newtoks \mpr@listb \long \def\mpr@cons #1\mpr@to#2{\mpr@lista {\\{#1}}\mpr@listb \expandafter {#2}\edef #2{\the \mpr@lista \the \mpr@listb}} \long \def\mpr@snoc #1\mpr@to#2{\mpr@lista {\\{#1}}\mpr@listb \expandafter {#2}\edef #2{\the \mpr@listb\the\mpr@lista}} \long \def \mpr@concat#1=#2\mpr@to#3{\mpr@lista \expandafter {#2}\mpr@listb \expandafter {#3}\edef #1{\the \mpr@listb\the\mpr@lista}} \def \mpr@head #1\mpr@to #2{\expandafter \mpr@head@ #1\mpr@head@ #1#2} \long \def \mpr@head@ #1#2\mpr@head@ #3#4{\def #4{#1}\def#3{#2}} \def \mpr@flatten #1\mpr@to #2{\expandafter \mpr@flatten@ #1\mpr@flatten@ #1#2} \long \def \mpr@flatten@ \\#1\\#2\mpr@flatten@ #3#4{\def #4{#1}\def #3{\\#2}} \def \mpr@makelist #1\mpr@to #2{\def \mpr@all {#1}% \mpr@lista {\\}\mpr@listb \expandafter {\mpr@all}\edef \mpr@all {\the \mpr@lista \the \mpr@listb \the \mpr@lista}\let #2\empty \def \mpr@stripof ##1##2\mpr@stripend{\def \mpr@stripped{##2}}\loop \mpr@flatten \mpr@all \mpr@to \mpr@one \expandafter \mpr@snoc \mpr@one \mpr@to #2\expandafter \mpr@stripof \mpr@all \mpr@stripend \ifx \mpr@stripped \empty \let \mpr@isempty 0\else \let \mpr@isempty 1\fi \ifx 1\mpr@isempty \repeat } \def \mpr@rev #1\mpr@to #2{\let \mpr@tmp \empty \def \\##1{\mpr@cons ##1\mpr@to \mpr@tmp}#1\let #2\mpr@tmp} %% Part III -- Type inference rules \newif \if@premisse \newbox \mpr@hlist \newbox \mpr@vlist \newif \ifmpr@center \mpr@centertrue \def \mpr@htovlist {% \setbox \mpr@hlist \hbox {\strut \ifmpr@center \hskip -0.5\wd\mpr@hlist\fi \unhbox \mpr@hlist}% \setbox \mpr@vlist \vbox {\if@premisse \box \mpr@hlist \unvbox \mpr@vlist \else \unvbox \mpr@vlist \box \mpr@hlist \fi}% } % OLD version % \def \mpr@htovlist {% % \setbox \mpr@hlist % \hbox {\strut \hskip -0.5\wd\mpr@hlist \unhbox \mpr@hlist}% % \setbox \mpr@vlist % \vbox {\if@premisse \box \mpr@hlist \unvbox \mpr@vlist % \else \unvbox \mpr@vlist \box \mpr@hlist % \fi}% % } \def \mpr@item #1{$\displaystyle #1$} \def \mpr@sep{2em} \def \mpr@blank { } \def \mpr@hovbox #1#2{\hbox \bgroup \ifx #1T\@premissetrue \else \ifx #1B\@premissefalse \else \PackageError{mathpartir} {Premisse orientation should either be T or B} {Fatal error in Package}% \fi \fi \def \@test {#2}\ifx \@test \mpr@blank\else \setbox \mpr@hlist \hbox {}% \setbox \mpr@vlist \vbox {}% \if@premisse \let \snoc \mpr@cons \else \let \snoc \mpr@snoc \fi \let \@hvlist \empty \let \@rev \empty \mpr@tmpdim 0em \expandafter \mpr@makelist #2\mpr@to \mpr@flat \if@premisse \mpr@rev \mpr@flat \mpr@to \@rev \else \let \@rev \mpr@flat \fi \def \\##1{% \def \@test {##1}\ifx \@test \empty \mpr@htovlist \mpr@tmpdim 0em %%% last bug fix not extensively checked \else \setbox0 \hbox{\mpr@item {##1}}\relax \advance \mpr@tmpdim by \wd0 %\mpr@tmpdim 1.02\mpr@tmpdim \ifnum \mpr@tmpdim < \hsize \ifnum \wd\mpr@hlist > 0 \if@premisse \setbox \mpr@hlist \hbox {\unhbox0 \hskip \mpr@sep \unhbox \mpr@hlist}% \else \setbox \mpr@hlist \hbox {\unhbox \mpr@hlist \hskip \mpr@sep \unhbox0}% \fi \else \setbox \mpr@hlist \hbox {\unhbox0}% \fi \else \ifnum \wd \mpr@hlist > 0 \mpr@htovlist \mpr@tmpdim \wd0 \fi \setbox \mpr@hlist \hbox {\unhbox0}% \fi \advance \mpr@tmpdim by \mpr@sep \fi }% \@rev \mpr@htovlist \ifmpr@center \hskip \wd\mpr@vlist\fi \box \mpr@vlist \fi \egroup } %%% INFERENCE RULES \@ifundefined{@@over}{% \let\@@over\over % fallback if amsmath is not loaded \let\@@overwithdelims\overwithdelims \let\@@atop\atop \let\@@atopwithdelims\atopwithdelims \let\@@above\above \let\@@abovewithdelims\abovewithdelims }{} %% The default \def \mpr@@fraction #1#2{\hbox {\advance \hsize by -0.5em $\displaystyle {#1\mpr@over #2}$}} \def \mpr@@nofraction #1#2{\hbox {\advance \hsize by -0.5em $\displaystyle {#1\@@atop #2}$}} \let \mpr@fraction \mpr@@fraction %% A generic solution to arrow \def \mpr@make@fraction #1#2#3#4#5{\hbox {% \def \mpr@tail{#1}% \def \mpr@body{#2}% \def \mpr@head{#3}% \setbox1=\hbox{$#4$}\setbox2=\hbox{$#5$}% \setbox3=\hbox{$\mkern -3mu\mpr@body\mkern -3mu$}% \setbox3=\hbox{$\mkern -3mu \mpr@body\mkern -3mu$}% \dimen0=\dp1\advance\dimen0 by \ht3\relax\dp1\dimen0\relax \dimen0=\ht2\advance\dimen0 by \dp3\relax\ht2\dimen0\relax \setbox0=\hbox {$\box1 \@@atop \box2$}% \dimen0=\wd0\box0 \box0 \hskip -\dimen0\relax \hbox to \dimen0 {$% \mathrel{\mpr@tail}\joinrel \xleaders\hbox{\copy3}\hfil\joinrel\mathrel{\mpr@head}% $}}} %% Old stuff should be removed in next version \def \mpr@@nothing #1#2 {$\lower 0.01pt \mpr@@nofraction {#1}{#2}$} \def \mpr@@reduce #1#2{\hbox {$\lower 0.01pt \mpr@@fraction {#1}{#2}\mkern -15mu\rightarrow$}} \def \mpr@@rewrite #1#2#3{\hbox {$\lower 0.01pt \mpr@@fraction {#2}{#3}\mkern -8mu#1$}} \def \mpr@infercenter #1{\vcenter {\mpr@hovbox{T}{#1}}} \def \mpr@empty {} \def \mpr@inferrule {\bgroup \ifnum \linewidth<\hsize \hsize \linewidth\fi \mpr@rulelineskip \let \and \qquad \let \hva \mpr@hva \let \@rulename \mpr@empty \let \@rule@options \mpr@empty \let \mpr@over \@@over \mpr@inferrule@} \newcommand {\mpr@inferrule@}[3][] {\everymath={\displaystyle}% \def \@test {#2}\ifx \empty \@test \setbox0 \hbox {$\vcenter {\mpr@hovbox{B}{#3}}$}% \else \def \@test {#3}\ifx \empty \@test \setbox0 \hbox {$\vcenter {\mpr@hovbox{T}{#2}}$}% \else \setbox0 \mpr@fraction {\mpr@hovbox{T}{#2}}{\mpr@hovbox{B}{#3}}% \fi \fi \def \@test {#1}\ifx \@test\empty \box0 \else \vbox %%% Suggestion de Francois pour les etiquettes longues %%% {\hbox to \wd0 {\RefTirName {#1}\hfil}\box0}\fi {\hbox {\RefTirName {#1}}\box0}\fi \egroup} \def \mpr@vdotfil #1{\vbox to #1{\leaders \hbox{$\cdot$} \vfil}} % They are two forms % \inferrule [label]{[premisses}{conclusions} % or % \inferrule* [options]{[premisses}{conclusions} % % Premisses and conclusions are lists of elements separated by \\ % Each \\ produces a break, attempting horizontal breaks if possible, % and vertical breaks if needed. % % An empty element obtained by \\\\ produces a vertical break in all cases. % % The former rule is aligned on the fraction bar. % The optional label appears on top of the rule % The second form to be used in a derivation tree is aligned on the last % line of its conclusion % % The second form can be parameterized, using the key=val interface. The % folloiwng keys are recognized: % % width set the width of the rule to val % narrower set the width of the rule to val\hsize % before execute val at the beginning/left % lab put a label [Val] on top of the rule % lskip add negative skip on the right % left put a left label [Val] % Left put a left label [Val], ignoring its width % right put a right label [Val] % Right put a right label [Val], ignoring its width % leftskip skip negative space on the left-hand side % rightskip skip negative space on the right-hand side % vdots lift the rule by val and fill vertical space with dots % after execute val at the end/right % % Note that most options must come in this order to avoid strange % typesetting (in particular leftskip must preceed left and Left and % rightskip must follow Right or right; vdots must come last % or be only followed by rightskip. % %% Keys that make sence in all kinds of rules \def \mprset #1{\setkeys{mprset}{#1}} \define@key {mprset}{andskip}[]{\mpr@andskip=#1} \define@key {mprset}{lineskip}[]{\lineskip=#1} \define@key {mprset}{flushleft}[]{\mpr@centerfalse} \define@key {mprset}{center}[]{\mpr@centertrue} \define@key {mprset}{rewrite}[]{\let \mpr@fraction \mpr@@rewrite} \define@key {mprset}{atop}[]{\let \mpr@fraction \mpr@@nofraction} \define@key {mprset}{myfraction}[]{\let \mpr@fraction #1} \define@key {mprset}{fraction}[]{\def \mpr@fraction {\mpr@make@fraction #1}} \define@key {mprset}{sep}{\def\mpr@sep{#1}} \newbox \mpr@right \define@key {mpr}{flushleft}[]{\mpr@centerfalse} \define@key {mpr}{center}[]{\mpr@centertrue} \define@key {mpr}{rewrite}[]{\let \mpr@fraction \mpr@@rewrite} \define@key {mpr}{myfraction}[]{\let \mpr@fraction #1} \define@key {mpr}{fraction}[]{\def \mpr@fraction {\mpr@make@fraction #1}} \define@key {mpr}{left}{\setbox0 \hbox {$\TirName {#1}\;$}\relax \advance \hsize by -\wd0\box0} \define@key {mpr}{width}{\hsize #1} \define@key {mpr}{sep}{\def\mpr@sep{#1}} \define@key {mpr}{before}{#1} \define@key {mpr}{lab}{\let \RefTirName \TirName \def \mpr@rulename {#1}} \define@key {mpr}{Lab}{\let \RefTirName \TirName \def \mpr@rulename {#1}} \define@key {mpr}{narrower}{\hsize #1\hsize} \define@key {mpr}{leftskip}{\hskip -#1} \define@key {mpr}{reduce}[]{\let \mpr@fraction \mpr@@reduce} \define@key {mpr}{rightskip} {\setbox \mpr@right \hbox {\unhbox \mpr@right \hskip -#1}} \define@key {mpr}{LEFT}{\setbox0 \hbox {$#1$}\relax \advance \hsize by -\wd0\box0} \define@key {mpr}{left}{\setbox0 \hbox {$\TirName {#1}\;$}\relax \advance \hsize by -\wd0\box0} \define@key {mpr}{Left}{\llap{$\TirName {#1}\;$}} \define@key {mpr}{right} {\setbox0 \hbox {$\;\TirName {#1}$}\relax \advance \hsize by -\wd0 \setbox \mpr@right \hbox {\unhbox \mpr@right \unhbox0}} \define@key {mpr}{RIGHT} {\setbox0 \hbox {$#1$}\relax \advance \hsize by -\wd0 \setbox \mpr@right \hbox {\unhbox \mpr@right \unhbox0}} \define@key {mpr}{Right} {\setbox \mpr@right \hbox {\unhbox \mpr@right \rlap {$\;\TirName {#1}$}}} \define@key {mpr}{vdots}{\def \mpr@vdots {\@@atop \mpr@vdotfil{#1}}} \define@key {mpr}{after}{\edef \mpr@after {\mpr@after #1}} \newcommand \mpr@inferstar@ [3][]{\setbox0 \hbox {\let \mpr@rulename \mpr@empty \let \mpr@vdots \relax \setbox \mpr@right \hbox{}% $\setkeys{mpr}{#1}% \ifx \mpr@rulename \mpr@empty \mpr@inferrule {#2}{#3}\else \mpr@inferrule [{\mpr@rulename}]{#2}{#3}\fi \box \mpr@right \mpr@vdots$} \setbox1 \hbox {\strut} \@tempdima \dp0 \advance \@tempdima by -\dp1 \raise \@tempdima \box0} \def \mpr@infer {\@ifnextchar *{\mpr@inferstar}{\mpr@inferrule}} \newcommand \mpr@err@skipargs[3][]{} \def \mpr@inferstar*{\ifmmode \let \@do \mpr@inferstar@ \else \let \@do \mpr@err@skipargs \PackageError {mathpartir} {\string\inferrule* can only be used in math mode}{}% \fi \@do} %%% Exports % Envirnonment mathpar \let \inferrule \mpr@infer % make a short name \infer is not already defined \@ifundefined {infer}{\let \infer \mpr@infer}{} \def \TirNameStyle #1{\small \textsc{#1}} \def \tir@name #1{\hbox {\small \TirNameStyle{#1}}} \let \TirName \tir@name \let \DefTirName \TirName \let \RefTirName \TirName %%% Other Exports % \let \listcons \mpr@cons % \let \listsnoc \mpr@snoc % \let \listhead \mpr@head % \let \listmake \mpr@makelist \endinput unicoq-1.6-8.19/doc/treelog.tex000066400000000000000000000003651461142772400162170ustar00rootroot00000000000000\documentclass{article} \usepackage[landscape]{geometry} \usepackage{amssymb} \usepackage{amsmath} \usepackage{amsthm} \usepackage{wasysym} \usepackage{mathpartir} \usepackage{listings} \begin{document} \small \input{/tmp/unif} \end{document}unicoq-1.6-8.19/doc/unicoq-small.png000066400000000000000000003612501461142772400171510ustar00rootroot00000000000000PNG  IHDR^}gAMA asRGB cHRMz&u0`:pQ<bKGD pHYs.#.#x?vIDATxlYv݉9>r3+kQ( &@e2E?@&}I'Mn65[48I6GD&TUVΙ/_9ދy眭zDd"P L_i#‡k* , ` ,QÂxX`~X , ]`cA ,?b,wXG. #'^U7~ , ܏.jG֔U"~X`~7Z'k}cx , k]pWI> ,?okEoą+Oж-K~&x, }xOv|cK7ms? ai,"{ ,+mo}͍[#?<ԧX^.\|@Yˏu耣Cߢn|.=|X`,~*9لo7_pګ0xѧ \`#ǖxj̭k/s{ܸ ۬3_3<ɯ0-,g , ?vRi3a{防7@Ƶ7 [>ٟa XkX^=S2nq;lmɝ;78::boOX;wea9[`>Nc:/ynrU&G#OryO&r C`60pN1"C.^y g.<1p=YEWa9 tN Gkؾ:ܸ*Ʉ7p7,|KE}{1<O1BY`>@ěr_~nsBEg69p퍷yS?K`iom#иs Eb x3<̧8ػOS79fu&17~+f~G)XO8❣7\ONxmf:>`#b *_?_Š?`t7}Zt; ,>d2pܹu_6o {@d߻ ԗy/0?[ohyDѻ oF{FυtXCڌS7 ws9wTjz<.g\yy?'VFQwv&,}i{> ,#> `]ƕeyi{*!FG{l~A#lso?0},Ȋ ;{!~ٿ>4sOa} ,Lj16M[FdXr w{ 9ôN}._} p^dG ؘO;pCA*}_:[8ۡ({pPͦloݦ2=x/q#zw?5ʇ/Wp?m0[[[[M [}+4/|{T8z꫼wO_6.!ƇxSu`u;l߻[o4 ݻ9_~}ߠ?is3-"[<o?4-{ Y];K(ӏ q8ѽW|CEgmfdrD ]v7Ll'2k|?ǥ жB6zwȬ&pSa~Ur5Ģd)q:<(n)1CU1?ܣ'l:pyI_ܸ>W۹OEQwwn~'|NRm׮acw{c|J{eӐm.˩om۵ YomČ%Lfhd\z!ʹ&Zꪥhc"9W~/ P2 #]-ŇxF+gy?E^~k be ιTP2N2oLwx2\:87я=qSɔ( YkgdGжgTMQXC X)1ơ=012<`z&9P7؟n4 [{gҶ4GGl۠z< 1`ߋLѼMÉWUANؙKz|_Q5> x_ʕGhb,lh;׸y*ɘ]*.`lC?LZ$qZWoI\@>{ `@= )]:ߡx{!0y"mk(-#2S6UB1M=9z Pp&oƘwCUߡQٞm$ӚyB (H: gyqZ!VU 3#h ѡ(+fS2ۧj{-eFSQ_s($iF$Ι?FNbNWwY^T &lݽͷ_bw.[{;1zlfy>W_[y+`0\OL0 l= )8叡m~%ZT=((p 2WV1# 謁,'ڌZ& Tx&)6R>:"z'9̃Wޛ4ԕz:=v$HY~AjUbG!c"e~)թĎst%*VED;]UCzxc~s:#MOGḌn{5A+Tc z*w391' ˻GN|+9rA0> =h9m553_>Iv"rff{8+ &*-3aGĬ6uE\Ȭ, %Ji#pY-xLz[L l R a"K%AZoٻ` [ç>1Qr GA;KүӑIDD%JGJN*9K'!@Tjo?*:pI4nȜC쾏9wvJ$Ǫjo\ִx;1twDk`6/˾w0>/=p0WSZT-W"?E56pac@T"zg 79B4ϱy|0"l,/%7Bf1P-h+>L EsEg3d|H#phsx}Lr[.I4$k**փFD,&Z\%7`8ʛ;=UW Mڧ6]ZkcD1c b24sg;st[g&U"\4UbH&ͷ{cet軧 tc1/] ^#$#E|1=MS m}'~8hBK~iiGj-e^@cc}Cfc Ptcz.o1.CWW?YG!%CiZZ#3{d.n xmmXS tz_9!!UWIҟ$:c&^ ETȃBLxa:3t2& qVCR7!E>,"kbE%JbA^`z}` ?$}LoF%A B;,M'+QxUE",`$JD/@!=vq[+'Ct9@5:r8;$oZ\VbW0mKP_"!Pmb!0-*]e"3&tD< 05H[D^NKķ)j3b l)A1SuX953_P H eTe"x ƸTv1CDl<{T{~Gv0cxL'h]ŷ->ԄئʙE1Hh</FdD0plq9}]]BGdm -cVא22feF(`2"B`DQMI4@4lTũ%,$->+bX? W_̹,ːk[K: d 7 =lX®Q}dtxY+QM'н.sW\ߤw2'6Bni{=RGx8f 4LEGYW/xm.ysX9b1GcEx4N1!mhn ;hDŽ65ig5:/Q Ǡ$૚~gXzqWY6:Sbou;0U [o޼AyuM ڶ` 0Bɻf&M@FGfh D1D>#R/ IZK=車SۇpަItnԤDmĹv,m ڈJc&øBL/&DdG4"*+>=}a\:!X|'X:'ՐV*O<Ī]É96܉j簘2x?~4P laom>nqyԀygcXɐ%dJnDfՔxr"&+QGSѼ$6U%!3$`6hw:\ACeT.-s&aR9gӟ*Mm0Lp4FoR]v7{Pi>ۡOF ۫QApVM@MKsB͗9=N7OK&VwɄ{GBQ;+ݱU2ZQ#z"v6$5h,6b amr')z ȣȕ˘52|'c:/jHۀtf,IW/o7p;[њ9|]"1֠3%FO5\ܹC(a\, Uꆸ@[GdeGހD.^N=Dfmh@6b|³/q?h;(ƚT4׮R*on'dqB.rxb/c]K Ɛb &&؟&,KMjh:=`b`IHWOi@bw,KwFӦXӹ T 9%Jfjlta+SQSr".gx@Cp$ ]=i1"X VcbX\UP5h`Pbe`x dvomEObܳïf\;:)H{l~F/yr&Da$i![`LLʆhMj,7n7c`<ҝ۬s9AN5bU =5duKVX Yph;ZK~2nu%m-/A53<$G0eAIgж 10W_F^6רҟV9 j!H"-#$9%qhW &׀v䥑Dn1 X'\ - @ M F `4IlY$*Zh-VFV8UhhZ>8Rb%]DOt$bOb$%>"qn+tX FK[TrcO|c`Gth,^5m@I-!⠫t:^P>o{~omS40QQ'o|L{LY*wX}&B^"\#,'/~ހٽ لųA5e^;aVX^_,-c}MWHwz/ @w_G= qdG/pH9h@,ri"e48RwhUD )B5f6B!<~XaK [Xla.TK<Hp6XyXOFcHd`0^0^`Pb6+O0qL,AZ[58tq& ,Č M$WGt,ca6pko|ASL{bϐ]1N Q-(bnUa0ӛ0w|j돞Ew緿B!y{+H3=JOi#vH/b38s}.ך]EI\p0$/Gde8"ln]ggĺjEEJQPY<꟦"`/VT}'zEgSfE9;BJL$SwE0&݋G QQq82(] j%AĔ5`ՁbwV1R%+swM8Sj~-hǎ]$HNGbM@U #,L 0}l0D<Φ [R[$W,@ ( Y(p1#zB*rySS|>YO a iҔ,XOJ-BKj]jC!X܂~'{'o(TjJ6\7: md:QuE.}*´bb,ECBKҙ}p#^ܹ!rxFVز.E>*gx,-щ)-o~}^B76)¦GCE f1xO?F ٹJHpYLF~6C]XC& D '1L4XzTF8f1tu:ߔby7oMT~.fxGfHtfʂ5k z|lL5Hd9h"l) :`3dw#'F>P 55I6XHLĈ">8D, 4bKcS~|sd. qbAp7mS6m&a/2, 75ݣ(vzKG?9z;dYʲ*\6y{>GmT,U$2±dV,_ȣ?gy8wo 8mqR# ^z`\lؠĴ\6ټF` ϴE"SZ8ƻԂ:ǁDEŅx~+J wU*U$5Rz"'H=t'1;:k^YNmuRJ;c(״."&x# `bjN Y$ 3u 2̽~'MSd7SGc3Zg(6dq uJ+$=`#AItOs+_&ǑZҥ-I@d ^@5?{_\UYQɬi7c5Bf/+3~sv__|d/>zӣUʒCyLZybn9敃(:YY*G\gxq7 #*b Xl0AF 2 nOO~ VFmR\'ti c9tGgѰCcA6A0;<`FFK#68,2L),f-T܃qxIwتqp>Csƕ˒w=.< du~xѣ0-8*C9Wrf艧YkG<~*vsDT9I{LaF&؃G~V.̹HXieM:6,ytf^4ڮBUv(]pDA7ɉ:"0H)Į K"Vfg\a+ho݀v`/*"W]vmgŦ#bIE!hfa#܏̶#zE db1=LcӆX PhNI -UHxasgg>$>N ONN$sB=M"=~A?{ {΋?\"ÈsMDvU*!tc: n]gCʃi"\ A Y! @&)+E iB"YqR^C?mTm}Di&({TSd I>dSx+@6|jh5ۀkS&M.Ԥ1e.=SN~=H,LBCCfT 9ʰD1$DM#"&5(gBawP2}A?O0|9Lo)eIF kƻ?.ٌ+?|ckubs;M.8s{+fvo10ʚI-kK|{eޘn㗇\|>Ӭ 53^o6f'D[֥@  O|G߾ (`A7/dˠeEݯ.oYߑ弗d[IӈD|VsljMӆ(jd+ =RsO}g5-s{wc:KtjG<\OtU枊;\ɔTѧG.0EjRKq] JZ%t.Y:).GCl0ѥj'9ܺ^Gsgkffg8"SG.=ksxUc}J't0 AX)xy[ʃPkί 9Ȁ$ojlR9Edցo(uܙ]ԓONTOP<NSbC H%):*n(+sj1ѝ)Ǚ.KǍ]`;&%-6` G&Xh]إJLܳ7kdFV[:zWOXwJQLĸ45KC9V? >76!zFкe1dpB6 k Q"^kYK(#'AZkm"nNFͳ@96FĶbc.[_n_U1R q[b .apLȑ(jU%jH[B[֎DZG`1Xe27.ة :VLYv@5iۚ)&tC5+9P"@"Mx+0G ka0GY4yԴF%oqI+EPHeF?U⟅.hhҋjiTgMaBhXd5l6pI3;s\~ g]` c_uX7p%6BѧWiR`|0k nornP[wjckA2q@yl`k+?6xdd,)MfNRj1 D~H xZӢe ;1C􁾠MKHڞgX5c]JMB۵$݆iinB$i >4Q\rJ9thmX1Hgr^`hcC\0!vfp5Dԁ16CYɐ`92tH :;  !舥gr#"Ru-6AqenQ<4̮G!= hӲ!tRA  bXC?b ~ Bmӱ-|ʮ =l{^&S SpYӟ,< MT[K%k*$6a2kXm&ΐ2guHʑI c=p0Fqc6)O-dLԇo<k {DWZhӨvD &кT/C6]zS N*m0oukgUpݒZp"1?I0!uͧZtҀZT tKdpr9^չl4ts͝&BnsoKq`bw*SYl)ZтΦs70Rfg7-RdG&LbR"Q~F1aHq:`LhZX>G, x:آį!2fD(X.1ȸ㕏|wr`Ɠ0r 8Rү8zͧK >;efK9rE$GmOӤ=v$4]B!mI͠TqfclxP#T2k2+̱ԎrsQ2 PG,8U|q.@D ۖQְ7 +YzѲB摞S!#:hDi$5v`$Y&ɥ48åLxQR( nbffcqkId9!DDf-HbAm߼I[£ϰDm͹s9E5aЬ~ G칏Q>{)]:AE%u a`7=zg E̹kxqrhO!{>F3e큒׸d<4/UAF9 cj]&40p\sB72kx,1LV4-qw,g{ٮqr*-cNfLhll]dIiJe>9lNeg!@a[JUWq6¹ބKVm}Rhw. SIj0p7iݩ LFk*)2i 4Ԛ5zZôp@b&J{z=KToTToƈ xM$DOa=0 6n_޼X^"IIR )ƽ-=w҉*wJ"%]F8ij |ܷql0$9qW'q9+d z>4\B/\(ĝ*.A^KF;g3= u97넯a QҨz'!MBiZFZ%ڀ7irF$NJKU$PYiq>צCnzlGcr9x81=~L2H n!iV#В)\ p"CѝR7JEʖҾ]7|_yz4 4[/j:cRvm2&i_ɧP/xS;tn9 ]_}|Doe82ъ H!!wo̱;QnV鹖'cwIZiTj^,rqRœ-.f 팞iq&i`1R1FSo'b^۩b{s$4-V;cbUL;P [ebIrު39R>7.I%֊ [ʭos%VskisՈc,]/u8G : Yp.|NV=OuJ,3OZfl"moĶb#tO]iNCs"Ec|+ߢn!Af8hs`4p\krvky֌Ǯ\䵽cvqNƌ9O{.g/e[_ /PHH I4["v%+Iqrf#6 ^;̸1L&D%M `-bisiO˨[f,fS$<*k:qژZekܘ<|K$,]O>Tjzru#e5kvrcO<\zΔKNp&5'"I2C%$;]+ qaF%rGkhvj؟`kCN*ƮKP#KlN~OVKFM` mC4[) ӫ}L_ByHJ4${kؑ.S=94>~TᏆ=[O_}|{#uk@ۆ쿥o='r81$Ԩb%` qj>6vƷwrda(Vr|IF0&ͻQ1AuVypͩۓE.ٓNAen*@Hy|H=@!8ۍ"$Ĉ"ų˹0_3kypTqv@fH]|QVCzԑFyQK $sg!vdNLNTG-D2c0>cD-FpMxrSNr`7ƢFĚL([6`ϳW~˟CzI+8_t/Ƚ`?u5M m6<:f~B]E3ýܻ6'ceI @wM<.2 /}&%̲rE>Qzq*O^Xe9/Xtkpx]s%;cO5Ky?1|N 'Ӗ\**gw ^۴\wl6=(hLوqiRqiN 3MJqq,sWvڰi2A̱}*<yVé2v'Y:XH$h!O-:ZTS<~cjZq7eT!`ALA6v(ƴM:avR,2ݩ1w ZX&@9jxiPT:dQ]kԐPTZbO3Zɲ A#'DQ~q~s? 92(|1x 0>R@w=ɲإrcNBCG{mofQ/c O+`Mq&2/p~pa4jb>!*YH%W˓gx}Uã8ΓY5&.w~Vr/:LAvpJp?ƕz^'XavxvV%nz4XT4kӒabuI&%91qX mI!'Kx08Ļ(izEj~ T)EM90R2|pqpgИ 7;b'̂^d 1G5_!77cHA=tii έ85M,/oo|gNj{}6+Gt<!bEbL%i^"q-1p~|3q!jJB,"`SUsfR@h#]Kih>CiS6W:߮!F]mTӰL 3弛hg+?;35z3 "G%'He)S5 nуic34XQ&qX :2Y1~A R VKTdTAM$H){؅ie\˿D`z=RNDxHw&-x!URz<}uVGQ1ui`@_?P_ًL>ؓLjj-~GB%+Et+rX{Ktq-pyA4M΅咃ֲ;ypĥ kl21ٜdM`.<_].S.s^cw{wy?K_}nJI$f!So1f:WLh:u0]b`5c@iZ@Ȅ*{\;\76&g&cV?yծ1) w? SeoJj2il7Q3*(j0Hc;!̨|Ma<5jQY]9\M^ę:ꪦtB,1hQ2Dvexfrkk\\pwW87tfhG\ru>i{^BtR,x`7y*8.? hLqu cSf,)G ͟bl fL$Ԁ俕N|kgwC1r`W+"hnokQu%P R)1>F]A?揀{5`0"L1fF mmEkD+ d XTRVX`ٝ9oxqmǑY(sKH9&#Řmd"(se)r1$\&]P0p8T!3kCzSUSgX%;I{Q-82D[׮&3cGNfJܩT0!uFF3;!z?;`NĆnk?-f{7[o%S=p,3ϝbsTDW`{# 4|o(&+M# V鄃0{1eahwޠyh)' n#4Q?gE͐l@9aaLۀMQiAbDM`2 ٳsHy}'"131%"ɿjs"F`bbq)2M>~|w]t)0dX\7GAP~K= Ԕ#1[& |G&,Pk &uwIHܠ)$k1"LNGϖږÜ}Pi)(Y==(1Ai1 34h7]$CȰ#t+ -iKl h-j4i؜C`J[TCKC+j`IQцV<:Ê=J!//Iկ vp߲zmV\m[LbTmˬ>sg1M&/͎X93A@,Ub)iEC3g-Y)cCڂaVSXrqwrIR˭ofGa}q0m;=g/_dzt6Jnڡ9gyxW%SUO E5 c`?q_d ['m%jQe9D 0K$΍!*hj7B1}nٛÄ !KRIfJ42mv G a&:li;l<'HO/B+-^|޸x1>ޖξK7,0d2!o+\mURiHMMk؞`Jn[b# 4Cl< !3)<ndVc$CBzMkS zz){7us0&ÅF8y|!GxM:qФs/o[xm6?aXdLi igߵ= o`xh-^ rlo-_h"4 ObDqv8r(W *93D$h_<'TƑYhP8l,{3. 5!LgD_Gi'Om7_.?v .ħ0k4Hc} Fܜc`ҲDHW.MB򾚠1mƃfW<ۨzYH21Ǘ mr:;Ȉ%XMk5ӑ{Gp(ZCtMژv0&IK}1G`4,`{ =$%x1aڑ~e@ESS)m&fr'w].?FVQ43DդqJx/ (.xE7@jGfz4aFc LQGL T,}ĖU1݉,GlACtQZS`ʋlBay؅ʧa}s'^h;Svcmg#IsT,vV3w妦3Mz!0"TLhW' ?a?ۧ]ėn2dzƚ:_~3,WO/,-N2ˉTض%7BSz1PjMlrھY\\Z&1.pxh8ZlǛ<.#bYdևo2?ϲ-@#Q !{5$!ʯ F7GcN7k1Gf f` fRc& 0k` DŽe}@B8=vzw||rp p2E9Z:|a0AN^N,,!DNɥZR 8ױ߱" R−PqcCph6' Q3C$9 QFk%k\ڊǻ 5;WrO==̳e_M&ɦk61#3C4 ^xrK/ϐڈأ`inW&_L7oqB;p Y/5Lޮ@)f(К@%>MJ n$hGC+1d^4V-lld>8Ǚ|?-ݛ:vG2-#;&v;湦4Q!iy%+YP9w8(3jRZènq5D͘pe%SJ;j1>Yv7a{yy,wgF3ӆ6%SG&=Gljl{%@Ag"4d3-ՐA2-;ù3B=;?@T7jV̌SWl=hCh3̅{__O5˘A7}]IVP/]ȧlYqOq3qCYF|҄Ң&&SQzY5u5m{'~TRY~9|.݉$1`F)% Mf8)M,T?@ML[[L@BZgђ(DU.".+Y-?d.XLeej3lKïL6(C99fɩ+d}׉2al,V$콰O}]U#$m4`A!8P|s_yyBPk: ]jV㳣pxx5mBZdHYPP -շɠm1&ÒQF0mQ#e!  2#s!`6- e:8֦HSU,Uj 8M '6f6XG66>wTuAt<]Ӓ Y# !HiͩX">2D yF#F}ZU"3D2Is@ FJ2 hCVV>v~c9LLNcU27tLJҶiB5ܿS3m0R"[G(d8oPaq4g l! /^AzKӉҤpV֤"Qs}$NeJ;%S|Db&T&%ڊ^`/5Vm$+W-0AWp|Y &ZL2H8Ě /=B~ MgY.D%hfɘ<7hCBbو--UU0( VMG%N)6#7rr8r}pZ!,q!@K @! WZQ:2jN$rgY)4bmA6a0^B}(&DX b:c~؊SבÊ ERDqAW 6Oϟ_x3;әH/i.~[! IFUQw[\ʐdGyŎhQ`*by &+=Gi~0?׸:0ŵ+V+BEA\ #2KZI"2)ZKXϨR]$(jp@jcG$ү]bsR)m۱>4(Ѕ )l. w xNy[ ћ>cp.:ϰ'ү^F6}]B&޹W!3 "cNG_KuuxA%OVBUyPtn%Qݟ3s`bZ)В`IbF)JLx C#H}UDA#ߣBЪ#%IbPhe!QiL3ǎJiB]nqA'F*qc_H4eNQ,H"`%B6jsYw"U$p>R)ْGP>r0"(!q8>E'.tK/ oɎg~-bOW/| op]?Py4VӨ b˜tUuy{MKXښ[s{{#k$R%t-eHA!BDhQMR e+ U&:DAUU R&(tKFZD拚H,*66r8|Ė]HRA! C19cy^{CgY Oc NCP2D/ K)\.7GOR/"",%%v;p8vQ~ D4ʓ)t *Y* UPA.8 IE@FexHOX@zTH"ȰD%ZPzEdћH')X#v4UŸ K$4#@ԑ#( mD:B9u$$L2TOZBAE@b&Q3\D`22,6He 5WF1W!C'"hEx\@e}mQ8|"QF ]w2>{%{?ycKc^5^S% Kx5Ah+=bc7<2;P4 QQn{)Z  ΫiĦ"RӺQfq[Aq2[&&3k"b ɃNdgfm {p?̾e61_(0MĀ%S^), 3/N@=[V&@wrFH-J҄qc CLwF"Ee! ޡF HahBݠ!vI#)c̃HǴ]+Zf ["!2uQXOtc""y b VG|@s#̚Ի>*xI$QaS.r-Dz*V"]8SQ!aX\rԸtǾF01!|/KYEF(0)PUw g" dx6Ct9.)XK:scBEXt))Jo ,b(oFC,i}EJZJ)' Gm1 )-!vsY &qbvO-`#rJ`!5SD@((B$(1js74Dߢ4IJΏX3٣ؿ(c"YʯA7IW4$t)0$bbF%Otr k[E,85P(_df)Gvpk N8vhD2~D+\;{u<ŝ7KL5Zߢ6I0&R 5:ZXhD "qM$kzB}7dsX:NWff{{X7'%X|%W-v2dRId>-xxvmƦa5KoGqo|8 ޽EGK :2zdL/U+"GP&\eQ`cQ}Oz-)r PD@ R‖D#Hy e [ PIvW^2dnA"98TvK72Y;9uQ\]_Z,Tfk$*-NFH1:LDG@?M6M)`eB@%&z(NwVǭyLq/i+ B#],xUAs3NxR!rˬ ڤ+h <)Hmx:5 *ď"7G 3.=z~_?d?c]'^LB.'Ȓ$rz6Sm'X[1[-5Of ~ !QJܳ<*PV4%P*zF .svBi֠Dg )!$F*<>9 VȢ[N L>M:vVђ_p<^mҕ53b$ A%2XɓX>Y} 9y DŽv?$C eb7"F\D`E{%[K>;7s)B&iIGB)>0Du~bp:H)bmIyS|}k?FP529l$FoqXR[ "* XdlC@PXPsK#3 1?~Kg& Lb/ _*aP^n|K: 7@T_B8UKCXhT~ X1}tK낁* <]f(ʷdLh:GDUVh|)GL"!Z"hK1)HEhUI!Ļ9Z9|nز}te]3| &RKԤT瑈 szm23Uc/UN]Ԝor=֎ﱩ@t "?omʿ7)?}5:blzXPd&RDR(zVP&l8815MW° 4':;JQLi9BaSK,Fٿ$a2(%ʊLCD f4D!b!z-*Ŏ7)']"u \lPՐ"2zL(WG|15$E lexK|<ؽ؈A G] G+Usy~(D"D"\2}*$L>.d،ĵnx%Cb+D)9гNCNfW`J"c)@*Yc~ ʩłm#xz|<^dȁ%|B4$1omJYbW(09;6O~DN#}H'5ϱypMm!S$bD0y.rd4;PÖ&hEk4 &rN[9,soJ$ds/ >f`=EVu$)^G!CGւb(C -LkQ}*)Ndz:k$:r2b;15әCƐ4V/X `tUj ba"֌ن;(؊IT)G%!Hӝ/OS פB"%KtfA V',"˻0i]Z_<^K`#EBc.`h4\hk/&hq)5 tSJaP`Blk5 L"(PDİH-b$rm);uA5DԞĞ\z98 *PqeI8-茠S2kU?ɂ ȹB$J:B0dy 2܃VOXZL:m sQ(Np\mJ'$!Q" Ób̖e3Ş茳]): pF:]W^ ౽|/&E`tfG X`91,IvVRF KV՞AD*l j-]HtaL1~+C1%^:!6:SHB`R 7K0V&ID"JMDgGp<"_1R#ADLO7.GBNi2_cZjDFDejQ|WP &~JPP4aq턦{$/txpgWd!u  %:ER̈r}Нu sH.y`Z[2✣#"ePXMlAh`Bh:aHiZÈ.H&*ړx?QBKT}Ff!IDAT-#֮Y>"GPѠC_AR,BB 2B"&eW =v8">]HHOꢗv8! 'p% hMbyQu$:ј@k#F:@D  E徰lFE"Hç,sRd|ܛdҴ&Lq:7+(2WeUQ'7TB&O*:9![$3p̑C'"H8P 1޹* Kͺ|5yj$PiA#(MʷEKvE$HfvO9pMVT 2í9\b](1EzU$x(zIe%",>R꿤e<)% wiC )v%Mpc֋GxBA^8چrm@R0GXKm>jIqw]Щ(+d\UBCa MJJkY'"s ܡĮ,"U%B wBG5&epC,h7vau]ۤSClv(ˎ͊,+!* V3i=Alȵ`y|Lo >vpP}U}LҒ.&EAFM1J$FJ"ʭR¨TJ=a^M)ҽ >O &|i'o3m-“aB]hlc)#E5($bH6@$d"e@AcEa@>;BXQ$Lrg?F^,ٷ'DHЕ&%&#Mx4cd &I|NmðO); b3„"m|8 }MFWdSⓎA!(9Jh., / n 9ɗUEHKf'g )9AH4 :pHqBn8H ^tR 025j"C \Q:R#Hl BU Ɏ irDL8؀ Ĉ,I5.mP %fL jdW mГ}d}L<[NytrƵ+zŪ^P ,R FcTe[9iq.01:aHh;QR 5 ޷4]l1\WÈ*!#';-}066-%'loJ]1ޜfٰŠ^I<{%ROg70!k׶X:˛ /oR #E2ˏA{lϒԯ,Yȼ_r+T\h=nX<8eSO;ey<^ Jyk0$B"d 8QNe6Fe9p_#YҐ"sTb;gɘ&?Xy|N Ե-ܤ܏舽O2H85 `nI1I,PT\߻}pg"0<67"/opb 5$ F kӝh3Z~n Hɥ 'UС8Xż+0 .>/qr}_hcsѕp'} ޽ǝ_',(9IW6OL=-3=eB綑k(Z-쵟Da5G{⫀ޡF2n*dA 63ՒGQrqbTX[3DȢe4)Z c>Xt5BŊ=f )'f[vV.ZdPh0AShTkQjDE[E0CڈbhV7ȰS<"9agyo n_:σ,CQX5رsT3(I kT@Nu4J 0uM-?Q, 'YɈ ")Ä(K A d˼>q0|j{dxӢ!S8~`C}<0}|2xtˈݓفZNF/5ݥ=8ŕF-A("$[.a mb(V*q<Kn[{ʂ5(GS (%PE&^QT0e'qr*4Jd(o:j=AX P ja<*sv5ta ` ,0h)GtA'*PZ h&ib%C`Ő@DaI V׮2z%yRO=;O"#3*_YGQgU/.]~sl<hыܵr[9Aԛ)@5d&۟/>zaͧw6]Ͳ|Q#MfWNyeYV/xI)2Mπ b'AKUy/e9|:h CW%J<"<^&@%2VHwCKGY%!FRJ;SOL&Ġ h% h ,VC+T/uՒ0}ҴTE!H<^:T#YጧS9z>4rkgwQ| )O3bQH;c; u@PX0T4$o }Ӭ#W) pu*M!Jд (8W-.?t)_B#5cqsTQG;T5`,ZD%⛈-6Ҥ ǚ]Bc|\T6;]5KP'Cmnhx($]4(J%@sifm(X,u2 #dQDآ][h\=Bo=P_^y@~TP"6}tRp/X'!{EP.ͫ>? ?[/_azkBCdjuY MR-_ **]o}B4;N$>\%Z$ ^P]&D֍/ K(K4}f +oP"ENk2LcDRdjhU5I5 ]c h&Zx)iLZCu#(ixH]feJjEICƑYSZu'z9tQ3jZXgxYt57˿QL0>G`. E@Bi̽(ψDH}CLS4!<[| oYІ"23c+  ޴8DԨ6NHC  RGzBt(*T'ߛ_ nqӀJyf'ر6edD g;X,$4A<1o 0`4dE:TY̵nsiY􎢲јE"јR#tTؒEN:h<\[89k^ !ME5D*\TT%zOR ^H" 3G~T=?^4{)k^dc'x_|~B~{أ^$8] +PS\tMdY%u3'%L"B"S5H 2#M}=Yv`iXH$3 3D ͊<}yosv|*VA>IZFcE! ,Zh2Gk)dt2"MCt;bHY.JR,Qj(JV"Ҩ$&RH ] )VHQaS@tS@&u& lיbt58Z8:m3qѷKR{r?=:\o?a.2"o*U}S(@$=S"1gKms(K#e3s V6!OB%@քI6uJj}'j<;CɎգ-iMI\y XlV礮emd `” ǤCd"MZ6H dhe  EaN7LJ xmB4$ sj@+P"QAxL(J %-X#1g36.SrcT1dm} !oAi})t]* _/Or?!Ŀ+@Z|p ~ 7tFۮ*tJTN4qE'd"h)5 Ŏ b6DU 2!T;>xnߥ>Y8q$hD#CIzl/0q rnhygx<֘ ],?G}%%PH[=9%N48Q) mWޥx|o%KdHM--s7[DR(TCu!"I=nBDvL7=*Hhޣ4:b_w!1E% ʔ!cz^"'"I*H2' -WK ԺawaS迂4tTAϾ::2_{iG1L"WGZ@th1ڃ4Hp!R7 LF们x`Fu[zAQ:.iڄ$e<6sP #XVmG )X.)GHN9Ʈ]djƝwPL6(iJ4bEԫnX٥YuaexRu /QF17"z%BȔz:`U~&[Jqe.5t)nUS$g2mF&e@R9IcAONDhk dNC޿wHeA79EԨ -̘An)!$њJh#>Ev+A`CA@ѨL<*$gwS/d`?YT0*CJ' Bŀ1yB|5T%C01 ί d=T|Nn臿'=د"I /u)d~Axmn/~1/#^fIJ$BXqMCGĆDLIDC8 }K0YDL78+yx$zư*^ X߻(m3?9J=ֳ(wD0PEJ3ftA.o '^qoU$[`=W q Ȏ/91olx%hf4$5I%R^iADL"lHhZ w)URȨAaS c curJxZRE[Gm1Q^ˑ!:d0"qD+0_E5Fm0U >e0dub ʯu!{Ek*;?:D8=92:4Q*Z”`nj[ZT!eE̥7Y=C%1)>&{ԫC^= ֮YN|p[$pumL#]Q*5& e%hI4SE;|TDe-"GW 5-!Fe~ ]6w7ht() &OC DBdxѰDIM"`$5uYS*ΏJfY JbRj5>νP .a_ 2ؼQ@Hυ"&AHRdSl}?H>;;YN @@Dx]yucfs )C,FLvj?#PD \vŀ霭qKuM+zqD`EMZrkD=*SSISɺs݀7?D&eiˠ}lRqPKoQAP) h4(cT䔠2 Y} Xg}{"SΖac}U( ,RQ+bS(KTU]/@2ܥs-GN('#]23%.iV, a$BƻOqpf}ss"u-z> EPv(~n/Bַ̒PY"Jd%rW| 1ɵ4Gˑ<.$2gs*E&A% DQ`vi6w9;.78;yfvǷƐ\#[;;ww:wD#F|bD,gVY思P!#9^pfçCU~Qx⫸P)yRMhE?WO&dKo0c-,P7+LO?/s/m6WJdRyYD41 \bo`F@LnSh͈3ow4MQٚNz<=i$猕Xƣ!+ *C!#ĢDw#6vYSS@igli(= -B5O[r€N5GPңim (+bpX-`6E)шS30S,3ThP:A (%(^_}5$A+ꄴqSߧ VWb/fDVM"B y*[/^CjӆQAʠ`!0{VgT%=XvNWG!&GGXV !DB!eշ$mq={EJ)cqv00F M%!sv=[=$!Qna&ȥD,$Cɶ_|0Gـ O8k?ߡ⏳}>Iw9[p薉KBl8%z/1C^8ғ˽2 $Q/8ykڣT.*˒(k?ٽwC%?u9LB FW̓:&v& H@%E%b_{POxmuxAAvŔ)?CלS8G]/X.C#XN(E$ƌ@rP]`Z+plϰZZ|Q4 2.8*PhI۴:PT#ߡNDU݂Gj|xk[΃JT *0F]0FocdsjP` ElH批\v˟fb !]iy>ؐ}"MDžkNqGGf^D{{C YƗ}:;O]B#>`T4)e m61vC2Zi1x)õ.~R-K!1iDkiD/wCb{G39p6DzN3vv NlN$oRT?FG"X.Ô@ΣS_0+ì\g'&_SߧYEfH,ώpcUT5uKH|"[臚Z)Y'!AOnGRO{ ҭo:LhE}%PpS5䂤5Ƥ8IPqJ[vV4tQ1nʣ!?^IQzAsĵL )Ic&-|OOs^PIVGG6"$(KK -Uؘ8[hjBC k5["B XPp6 %!ڥ('n` `JΡT͕K;լ-;'&46>9iIĨY3<ȵ3 |w3`{R 7YP %F8R`YwyWp>IpRotq&s1xG{ɣ/xt+[p uW8Rk z ޸ropz~UB'PZ!: s8?a"Eel)C 4b2똞 VRU1jܽ-2[Ոa3'1lqekL($Ǭ&P>e_b2|3HPQ/N>ft {T7&ÐREGD_T `ȩI; .s73傢%`8Rn!EsFap$`e1uk CX_DyoNaF <_&^ #/z( M}g;I{~eײl;],4Go1 WkjhV->%^v EFP-FU0z@SB3j9&5QF 5eb{g>B(I9ƻ)]Px僷ͯ~{ bG mAjdesx=0{GBpȱ='ە. 9N*ʥg3**Np>;AZGXMwMwW8<=m ]!-s2I_ !R"s%u)dyc}[9=xBywZ)X-9y/}s[HG8np(lŠSYG-+MRH3`g*q*' !ׂvbkYEI!2~NمwtȦX{FFdDw( 7 {ށIaEDKtDS^"؄-AB ܈z,A hQ..9Fʛ2Ͷǜ.f,|@r~p#4]Q0T RD+_LEZ-"$.Tt>PJ14uKYV4 Sy^/Qx65B!{%g2lYp1ҢL`(V$H -:<:bod}%ܾ}E O EowK 0@JIsF'l?s n#N\??]nݣqisT|NrNY=|)}.1&bԷ Bp>4iJ xwIZsB@}rs̜$êTȴTzfĴ葘%ʬ\pT^c\"R郇D?c+lFP2C!t]gt:'ûrgS'!!rO@Ā8x/V E$Тt=E!P GQ/THȚ~*$QI. Ǚw7sКWf !zZÕT܌hrvăhcbkDG锒(*JC@kVH4I ]Ȱ2kI1Gg&iV]*BH u3k/ tM$\SHCBp!d_h-cҟu<1xos8q!fXO)]eaLEI\sa0fƵBg3`(DA1a+!gZ+H9,ښYװq*v{2~AI8~0+ދ̪5R S19.qG-iuKS1z*1 (:!HR%bKhgJ:LhP" #ss/䗿8x3J=XC0Y"-^# (^J SRh;tR7`ds$b@ sL1\K(FԫV %FJbHb٨:GKQ^[+ ق("q=b GϞo>b^$tTĖ_tm u].d28J.Dczң_[d)kZk Rp=SX׌){‘"%E; B,s.ptTk3޿{ݒ2ᱶv8mQ}]d֋P,H A0]aTI & d8FҞ-(Հ^FRDHAgf{^C͜ J&/c}ms_措C ƎƶT/@p~;M ՘M-hT2 j Kb^wP ( )i$ؒ 󆒚Q) S*:(DғsuqڐK7!Ω93&+6Fsw.۲D=& 6xPx'ߙr~p50Q,눽ޣLIRQtswu}>|@p1O IK1x ֵB)nQĚwe U%:?&Q"4!>@D*K!N~Eciь Lg1* X bsD5Zg:ki="%Fblp(Xulo}i x#.d.&EGa8٘(.m g|;w3\}h>yt\aRz}NcUOyɱji[W.cLSں7^^-AlQG pOV}{_y_d:|s[}܇AHUZ kQFFiuR0P&;ږ]tMZڶuM:s[hš!%)JR94fW')1ѷ1BbVWx}U0GW(l;6E&XC[:̤"-Qd2AKСA~?Igs>hY;W?dw*yor8q8<.aˊo~[زS<*)2xt˽[s:=GH'L 8-''ؔ|w~?+<#ry '$&04r1Q<>'@|ЧV%F_ Q D~PBQ);=ޜh$B* b !"WR$wo[[sycLI*P5m@dCkZ\ [(*7 ._e;[E-@3S-#67)o\CEi'J)>E_If^j;ůo06Tf2o>_3|ruO+ E1!u5MI1f\nxԥތ**2V^%!DTIC)>hwBqcc?p\ʇo'*VuM#;t)rz7\ÃGI`b,3ԧPsf!i"Ѹ@Ty ,]ⰓlZ(` neZQ1:0_vĕ BbT a,f&Æsp.")qAx[hߑ\#w"mH֯C?` FkjG/<ݷ?>u<:ƈɰq||εEDZI6ȔM> ynCV>~p 'AHU7j *GbB BA7Ьm1~GſN lɝߥY52}Ɩ~ d\^4jJkyk <2'PnOOTz6jʰpiƩ]S4cP#u5^# XuvbQ}IKL#(2s%,`V' q1ǛfXUӳMb9Z&A3jWH$% h+./6i:Yt+*X"4IDd)݂efh(mN FՒrrxοzޡR($VTaf%}rzʰk x]cYg+<ϳ>YG%|O׿ŕO% ;Kl=ǫ&J/} ,o) ƅg~G>Y=dp/G9.]Ƙ1(w/1&uC8wlmN|Zͷ?w٤ian嫻ݝbHB_E_o!A  Zuκ1=}J穚Hb'"(ՙٙOuO?)M? NqP \)7nrrzJ;8dTyAuV~!g[AVTRanׄ,g`ԛIU?>`q`\k? ˿W0qc0!1Яeb2er. 樟t9[n2йD8.D/lIDOOu F(Z/鎮Q/7׾Jo4^J\VMD!":G0_O |Dsg3dx@=״b)yAԎ  p5AP/!(Bd|O ^:ik<8{¢ZE`$ת1f!UlkLTlT‘9O9As?jnCr vNtJ uXʱDTEkq}dFu8+P}> ,J֞a3pԦdgna l1)݀xb3gqy/!l}M&?dZSt\*.e.gT_RKbm+Č=8!W*aj8,3UIeF/%,}g\]: ?\O> 7lF%~?ۈWZZ)6X3A(Sd!QG"*jhyoKeJ%˔_Go>VDHb8$ !Ջ/׼t .@ ͚cHL0e#CʒMV⇎Pc=u L|MA8Gr\H1aS;P`U`QA e= |zcP2[zWԭx`bE&Fjdvkʂcq!B d8;{ͼvϞ2pK<{|vwq!pz򄝢k6g+^*}5 gr0#k0?ٜnd}qƣO?_Y,Q%dKVF9\Xnڎ<݃Նޤp~@2U>)j۵HMRcD% RAWB5C@ AUT ZEH8=~ KŜ}~8;MA$*wdcݬɊ4'FYQ̨,Fic DĔ;>)&7;Z{I=dՔ8D (|\7?9Oo[fMlX-'kV6(-ɱt]Ո-9LP &7&G MQ8g 6dNPmȋ¤߰ bȹl5)EUAggRN&?;{{,KӝYQכ [YGY8; UYCH$QJnmL%IQ@j`[rL7"fn~z{ Ҋ,ϙj̸"{>RQ?CWL.WT2rqz)jMtfJAtWm<~̮ՠ2VH|;}CF *#).Q=Jrf >uLd.P1mO}kRy.dADm˦,Z{ h5'm'A1Sh:ɎTdhSkY-=&Fd0]Qsѓ1ŜauI5YΙ(ع:ǟJ6+|e r*\5PBpe6E,cF.@zK;%4lAmW\w',|؜sw7O?bX-q͆n R'7@܆/x]gY7uz`yyI 0"ucZKA+GdEE "PV"( T9BZI0E`J$D(M*/1J~;j mۑpOYVelN7Ls~qA^L&-P琢ahږ!G5dAKE4dRJ'=7CL(^p%^z>_3d;~ 2\QbFgf!%|"z$`N yA*Ǽ':7)?yZj9!&w~TO3 L%!wybG_B" b;GЙ!ssP_FQEo_A?c}4QL/ʔdk\;P;Bʍ ٧s֟([0?;ko~kzqdYovȅf3]04.z S88p5#t,9| :䈼B6K6jԒ{4D#b¦zLlmA>pj@h޳+#YH] X!Bڞq !pd=cP H^2kr\j&y;D5c˜]>kov/1#Rg%>)vӏ~4 ٲx~_|O?\-opݒlRq~1w~{;xw?jg',5:1kRb#<5MbTn4I N_G'I*tZ`%u ū_G-y%ON޸S?YS{ {ECg}ҥHOI7 |prHНs{ҚՊ,jYJS2.ɴ =.]pa%Ѱ 57^bȮ3?Z`& -4Y=уŐq>(5*ЇH\^ 6Q37:,tqD{:T{.J:yL!H+ e&C*ZaGA1nޑ u+#9)!sǟ7B,';;g?P1~1޽?>HsWYѯX7>Rl.drmdg"[ǧw?~6O䔹,=}onՒO}~Q9ٌ'Obd9mcYa ^-0eI5`FJȲ"+`\HQrڎJ@5Jvww*Q2,mM>˶m rʒaYop:ڮ`M;@2,ɔdU+ 6M6)lչFVdL7/$jtS$YE*Nfz::fWhux@Ӟ}D{+cD@uZ (=u/7{%!} H!Ŀ͟r@ǘ[\j(X}O(ǮI%ce@+ֺ#_1~{<.w#`^` - '^2!;OVjwg',lGOQJ :][oa$rN5Oe"h"FeMާȇOyeVջ3.wdJl1ٽ6hk[`*v!&@3pJR(GTYIEdJ' ^u8){dzt yidB 6α!'g4@-< /Xh)R1Yd1,B$:A.lzJ%)%Oٸd#*dF= >֭XvX_ǘ q؝pȽk4bĢf;vժ슆+z=MaX_eQLy ʲ$Gb>Rږ?1}ʻ>1 mK4uӰnX,.c<ҬV8"]d#t:)J2mȕf)"Hul+Į yVstVPLFL1ݥcg.mm`L+B$pCMZ;!p.MM]%]PdYJzO$bt."1*2-F &7]oaN_wic!|y]TKx'R),^RCw;&KQ-Hl9!{ģZj6}9'D|ó_M.~wZVd‹5X;Fo(o bC<ỘpuѡoZ iKaʸQak{ԗ 2"u"2b"%_{|͌''O6k4 @IkGL_y?usU>;^.F&0Ere&՘qUq fvu5jlLQQBr:H>"TN/t֯bDEAf]M@Yk^A&ZZ6LhAT8哞܅,u+G0!Bf^`GԺ#gQr##1DFv %;ٕz~vƽkw^YC#ǟq'0rGr)|+wy6}Kwy5Kwy㏹*qXjnLO"uKjfz[V6R)+gsǭ_B*MMi C xbH%GFGJE z -L19R(t+GL/GxP\⺧fyIXBkD\'r A*#H4EgBISBp㩥Ɖ|3qeGx%/?<_it}"^ΑEЊ|yBsfQů"|29G(#tF$|CY:"'@Q9Ā"ZSt3# 86}cƴ4Hj)%1DبȊHI?P{2x, |THQ144B#$L8 ( c ՛{_4tug'~6\ZHSOV;b;5' 1t'.#F'.Ep. r.܂O79JpΙx@IСd@Q:W|o9N;^`oV,|q6Ƀ8]ao:sc^lqKRJ%͆.jA#$d/?#g콪jTXBJz LKuZ ~|Fo!a75gO>9vJ4>h%"ú] 5lGm d107O> w(:ܔҰ,!Da2J-Yo6!\k͂+W%'肩xگ-Wsfʠ5.pvѾG"@cF$q3H>5 K+a)mt*,!EPD4ɇRIgO$# FOoa"ePDXH[v-]qItK˯OZƕK>%oTܸ6fqѐn_<]XzeX֒yMk|8c)g YFӶǎ]dç(c6TN_E_{Ep9p<ՒLȨb$0Ā ZDb*yAIrT% ޸j,m$.%BHڡekZ`1ń,iUuN<08^)OHg#ci`{H`|2´Y ң P@b5y͌~[\gU+-k~uē㋖"{b$ \>[oZZKt\,㌽iѽfs&hM$vK׶xج(%_v*ψ(!(шnpwl2|aL,;˺khKc)+8w-Ugu۸pF+BɈ)-:d8TD)qQc$-dTh&t( 0 *3"Jr\(jRe\U&(#xcw&؜ܸ8?4Պ'_ SDΑg.9;蘎 f32{ y9~a\Q{A ;b}_^H LHɲ-uk3yb`l'کDnL[ b[v^S'B"DciQf9 xI!#3s(i9"I)W_AOX$V$MHbB3mW'sWS*JD@lNO y}/lĂ(V")Wnb^Ղ0x*)ĒL>`WNͧA#}I3+ȨkKϱpl&5RTT9@*Gd_F h[t 1(z?t7+pt\C u$A^T Sսsgs>w 3䓂%KQ,ݶd+:QEMϥƱꓳ&Ddr #pR@IJOLDLLDc+aiD`{Q3 Kn$s` Dq;2idEaPv9>^eY-o,lHJrPY%lBd>oCHv,6 m$K-t62bWF3eDr(5(Bj-tFnuΦK̦,i%В9&9HRSnQFLĨ uӰOQV0X e}בWetE/v&\еt 6u=Yڮg^(dӓ'eKoƻ?E[ӵ].xK)M(syvzb2Mm;g@;W_g?d8+vE4)"Y0 8cS`3VnQ&#JM:OU/l;DdT,BV^r"NZQ "D4iqI\fxB )ed$} VIO28F+HO-4»²C9*f(B8w+ʡaybڳZ;fݛ7^bQ3aqiy):cρё*KQܙ0,6yƕ±i=UƮf3y2Ikt%kx:/ 2=bY꺡ml6 CEjM5)ydf"as}₧ʪ($ma3REu !x4^h+R-s'B&RmFaLkmJuIzSuLm & PfvBiB~^cO`~4ٖ)\bI ޥ2Jnm!ܻ' db;l%=Պ -!f h#?wͣˁͳ *0ay߼}9b: +>/-HO ?~ O8"#B?VDbt&{ @zB-'S(F !(ό,/ѳ H GLUŅux;% #a}@H%X٥w*t(|I:}!2ãb 3<㬭GIɐn}l4'Q"C ]LwYfB αՌ`0ՄO5N#݌u|3ѣq I;oyu"7kՙ`O#E8>S5Wg5{H`ov"eh#{%Y4lK=zΕ[ stSVC]o)%ZɊl%gHg-E9bQ8;=a:ۡhdJm_J`襛49aqMG, QA%n <:)qş.y`hl;XȤZf]cD)tCHN:rgD5}ӬWDv[n¹Qx<'0xBG,2Oi{:[+B? Cj 9a )ȡ~@׎e"1"b(=svMK?]j)Y 1íXD &so߿fAuyBv eG 6 $R;w?9^˴Ԍr}F#F;t}GuAl:QP Ii7ub`(X7 \O6x[Ϡ5A@)JVSPf.Y8 2]p&^0@ČH"Ȑ8h9E 4T6e?b%*5{{T)ƞMMdF4s=S@z2;a0LdžݲܝພPMsJakXY؝\ҳW,H`6D84b3d)UbAl1 h&ӵ-Ղ~PFkfa3UQBRKúl'Q5郳iBv 3g$KE*D`LB3;$Y9A95}`!|X.:} b2!р*/Q>5@R1.Iԓ1ٸb3cxFT4 㘖K%h`h3u(X y(F l^HEAعƣ!/ Zq~`>prC49UjFwa2ҵrx{ٝ ETU2t PN+\<8|Q2;Yd0E),`vpћ^rYMMgH%YMM߷4MM$2Yvf RFͶ9B\/, Hc1ŀxUfTH(p} cTo9in<vOF8Ji)yc-΀1dLe#!`T8keLY* n I^㼬PB)@Z%[ZJ RčH^${&oРc >+P{Q6AAML~gP "" $~}dx>' @j}˩LUZyG8`csFB0(I 9ݚ+%A f"da@<~@?vQ~EnZ4"9葠aKZq : jv#{6X+9 "{}pD*`89YwOyC?=rnh//>qvfQ!Ŋlg;~3Ss%fZ g=EQ\$JՆ8 υo4At<MjވY2TdԔ+a&iB f{RB) ޳/5EZ/TKmwX txO}Qn^cU+D,дk˞z٬& '4SX+LE&QCF&`'/65$C+2mh0;p!)(HC0&܀ MӠ-ZkƓ 0]D*a qj6''W80&CSJ483 Χ{V avxH5cѧwcQ9%+֬hɋf 4;2n@ǀJFL]2>F\BnQ ƘtP{K uf%]q;}³c*"2 #>[뎉6x-PkYT{GH#"Ud538ٿKLOwMFP1^?,>'G)3,FJ0=2ێ!#D Ρ3~BQ8c=Ŋ j!ccnK~6*DAk oq `v+u %rp,cG%*19;FOTC$Z㓚O8 *ka#r/)qg|3B6LZAHM,}G[DifËlɈdiyA)xt: A=I Q I)FX-ϑJ1u,/)+o1vrTo6̟>Dhrm"0 1ʨXHJ&j:eJ2B2-׼g"Yn`g|euÍ1FtSVl"}$jjF{\c9,;]*s#DA1Cdz`Պ!LvXk 0r{,ݯo[X(Qs)KGLߺ%PѣG[te (<*&`Ntmp"8!}D9m真>bR "^i';BbUFTf ۊ$ дY\YjMT?m8ˎȃ Mtx! !3CFrX@,rI i]Nj&D%ÇX/0G бi|9u2֕[(j"1| 5\K/HNh (b@;XFG fnV =C灬*hUC=^CW9BX mgZ{l]s8%oY3 ]O>Dpҝ)R Qt=;hh47 /8l@JR@,)F#26gZEj*#Le Г :E- / RD"2'X7`ѩEA^Hz/W :kTՈ{`-r t͆WeggϨF&4}ֲ:$  = FgH)LX^J@fr" "nyecrï'ʸ r,F^6d_1Y(E`EW./5LRI(Ttݟ2@!R]r>QqB'# <9PzKK_4tiOyk=.EDRAl۱_)+%A Ylx;-~9˚s7BvoI$L!p䯼w9o,Ovƈl1nޓIPG"ivJ TxÐɐ BOYCqCdH~ݑ S* ]U%ج6TUA4 XCh3oLHcȋg(eQK=Rd9m&lڞ;L&cTg#b>dUY+ɗ^a7A!vH)`"%S)F((==&YR7ֲiMYvn@Lec7HH`2X+XԠukY!0L,HJX.Zr(G/%"`=8S0ek FF# ̰9ʷڀp\ d-U5kc2=EhgJf }!D.Y-QA2SS{cDTDKA^o I Av(u =FV}MKHRcԬ;$Y-r~~)^(oӢu[Rb=J,LJ]&&6Vc>-|} EZʤ#l ro):qQqnicdJAEjx-[(D2Asm*D[FCz :jI:5,ͫ7O(iEV&(q:hGcFہ(B1b:%/y9;z \2.8HP0à)JȲy#T  r-VK6c Z8٣Z>bC0B#ؿq%}99ѸG);3͒%kY!Ǜ%]O<~ݿInSD5xRS^ljZvso@91fpY]hTah;T \h@IEk5q0 rc%9G/M2F1@cx EY;􄺩1% !*#@Ԃr\„"OUB `Hr'-1FTle:&p8!m y4mCI(ʂmQ*K6Qi@b:qlĠ IMH"G׮aÇxM]K (8,w퐼']kpΑe(X)%RI,O~b"ȌٞCşwj2؝ƭKy)c̣9_+Ӿ+"n /y'<)n+q_3YVþ|H[ߦG,>r]3)53+V'j0,Nɂ%W9E>flĴUwԱgda=_{-}ۼѣa!&):r*<9m3YhdH"X*v,xBF4DH\b^#o;bDol?0w@DqEx%6hb5J FUW}Vm>(e*/1U{w  ÀN*CʊH&;*:m|z~̎'l|N/$&(O@1줤M3gK٬:(:$0rH$4Te!K0.,o>Jfk#Y81J.tm[BK AC$$CT8g\}6x<(*qyvN6)ɣʫLg3N>9~6܀Ԣ۷iE1:-œ=>9چ% :F1}R%Cߧ5*UF2F)n s,T=*RNѵk͆ӧiE$ d%EQ4 Ξ(mȋRðV drEDpcL$ P&.~(l.޻uv~!_RCqK #&P3m{F44_|ɸ[H2L&uxy(fFRC$^t`odĞ>o 6?hUzԣ5 ϰfAy+R)Ge d^H" hBqjg1G@#T%0r[  |3ⵃGj<K\y#QA0(Jp/?}iz!\)I [9^3zEŖN XT?Ϸw'|in09P76<'T{*ʔ۷(J b8ۧ<~y^w !$CHBdf@)d;;yUh}m L1 l3L d!0U z}"iJS茱6xD*75L@ަ]{K[]1_F@9Uق[Ji>F3)<\l5:E 6UԵ"WKQI[ $. !?d3 RLM+zɓGx ;G+̸$<=zI$d~ՊxDPoH{V| Df-2E)a6xO y/J--v[$ضK=lD8_G]6M+mK0~Ω\5MEچ51z|HfT9 n1eGl> ؂$Ya''+n˼%_ `l93&#,7!@눗R+oy$- Z0hS_R|SeYeKw O0'{{8c~i=261ŝ[V_b`W >LP`_|u'3[Ds!T$1$_2(yW9wsA}zf=2e "ojQ1 CO& 嫼} ?UQ[ᷙ˝/qqzG}r=K(ÀI9$27E4q#np:ƣ)Z ק wEi]¬#?:@U^ )&HV*QE1 %yX|wyƐnE{)prDtyv͖}ʄ$$JKGU?el)Q2څG tG)yhȢG#Y+qɝWEIБ"Q%@[OS &מo"hAHe=vV+^ׄukrA nMÍ;TomqD4!%Ju|JD\gFHN%c]ˢ%dʷkK<&r뼽?!{bbCgr?%v{D%vfE65D^wǟ~º۞q5-q`qrBt8M(i'4.9OtIԦ !]XT^RNqŶ=-YIec0㊢ ]F^̑!`[ /aD8h%BD/"w׉.0-a[*YPQZqrvjൢGHK䙠C#Y5>*A]l|E/B#Mú(m*Y׌ zN6R3Cz6 \:Ri֛5?/"l@=TVKyfF(`.}}$T;L軎3ɭ@K'R Bj1zFjIYݖW5‹q>MF2.pqrb0mzoIT*)L ]ۃOSn&$jy*OL!QJaAm5)U ʭSC3 )gs_뉦'ܵMC4h % ww.^kzM%$æ0ٟ)'Q$KE@qqɿmNS-H=&D`ng> ^CUDA}:]H& ɸR#>u) +koY ) n?hBrsHT)81"%ɓBt_yvod0$0R:}6 i ~@ԉ"MV4tFH #o4_o$noߠ"hKɒ_:+S#wm2m:9Cd XZExd4:j6!JB:)1&5eZ]e@0RdZ.V==Q=Bu;?d~e=?bu{L|H8#؇G(5yȠlз7^x dE ^^dHt~V?l21ZV8xL!cw3:Hϓ~"̞gqw^ӓ]m/~y#TIl9c-o##W_Zo%pjpWXútluAµ$amˊeZq?F6H^bR] =r~&hCxs6.18q \2% b60%L7Ģˡ(c-z - pӣ͖RrD!bgYHȑa2 D{N4|%\O[8\tLȓLJ8y>/cD[υ|K)H PI3մ h, Gst髊9B`mS{O\QrrD/l5AJ"T|wNj`0P"::C{)F7tFqi37yR6k-%cYVjLa0@bxc}u#{9Ѿרnͦˎ븃CDN3zH E%X;d[u}m]@KB9,f]ϳ񏱓"6̊a-/ >tf-V 4xWr%Fr%‰u;L3>@\L:u.?O|x`IVV7>pnB(#R]ӳ *QS#.-i< LnFclѣL"qrO㡭M~ӧG^}YwkLN%{^z%.]r܇"Fcbntkc ΀H8ܡ4}ďjU|*KA /C4!HΤ5+JIt:v/B1'`qض簥 1%Muzgebt+L6LrNgrUڕ+(:'vżaV"͊r{5t12Y }ʸ3}!0r@rgN{ o!0Udebb5͡f"sas2a&aɬwd KEN:ſg,?wdR rY,[7OU\o;K=sac6c~q⊣2P:}`{V٪_.Ħڊ\YB߱y,ϿLwxhB' r2V B[E/0Bo`$A8 afqxalaqF%hB[ 6&h2>)Put%P\DmOOjЖILeR .Ac,b\qyBG.1*Zb eзV"UK?_C(XR,Pv2( U= Mxm>tSY!&CﴻuAvT02Y[n%H֝<&Rb;N뤜WԤ4T^(Ș!<-Upt}&T!bRI%ׅ {>v[[;\rʣHhWHeH'# u_s_wt)6~鋤+ rb|6| |˷>s~788hy,o/86b酕[Z*?N=ԧ2w $b[$!}="})E&%hE\0j:A*PJ8kcah:KHuQ %Iol„O&u&%7:Z8֜mhÅ#$]c9lcY*##üxVmfl O~{Q4&|.p8o ǟd'1l:ZGلžx3%)*_0pOse~]sR۫%Ɉ`]Z޵5凞>'΄BZvq'5TưdV3,[XENZqRt_<(-4h7+aoYעe^MX֘vE5NY-ȨA=ݪMkvEZ N EX2{rhsW)E6tUGPypj}#S]&a18H] #S$Ե9Bd:|9gcgͺf2r1bq ^]fb(9@OʅwX+׸!C8ѱbېDaK&ƌY!~tl 1y⬀s#Ԣ478S0E Q @ ".͍M(S7x366Nbvvb- \J! 9LHq)8ja\fV1h C1 =be$2}{Y&|5` ϑ^]{Jx/t$)jndɑPD}bO6sHO-`JM tei(k^>({(K.ٽlustp\_!Tk-x,eG+^.P($@[>B~`Bʸ2Fe_wq)޼g_bqɩcQֱ,I%Ǹ c21^[U|“RAG"E[$cl@e5c[mT9eIrRM\'<1ReNHbtFwb&*Sdsi?"X|:e-YۿI7ޠLgȴJt7i#;jecp#a2d#=%ڕ0%]~!x_E&/ .,RS(&h,N. 5Y8̽w:eR\ EsF ZJ:݁ Nɣhp 50GtMh6՞:T$f*9\PU#L>7k=~4}q0hz+ZH1RK2kKADx|tM7&UGJ'hN>cCM!kFNf 㜆ۈ δ]w"Ȳ$IG 8]coS4Ο&39puo\m?%vvx'2gʈMŌRl Cf|f 3,1)17/4@:`͵-&kTHMٔ"u.^mU(g'Z$^]WjXC ֍)*JW,զ,%ijs!l$>>Z%P[G(eY r岣j^-0dB("kamMoXM"Gy/̦.ZVBɰ9 ƙh,@zN+aad5m,,cBt;tm/KO5]%j\v fHOM O(FѰmK=+  )Z1 %i%)]I3\ۢ"9fmz,zZ}HDM%"e;(7(R)Lf|7pN3ҲgH:GvhKAs/O=ٞFmtƓ%Q q'`q~Ƨ7nsvzƱ&. Wn/Ayb<:~^_|rrM?ßE _^d}m"T##ƣp{Yro> 8y^b|W>MŰs8VD^zL.@WUdՆ^|T-]b>4z@I"`:R)) UXC#D0kR]!DJ['IÓӞJ4Qr钐dj\*ĦbqXF9ӥBZ5t-#N†-Z>5 3M"Bd<6 VŲ5ql I\[L)[/ z_4Vd/L*g{$m\ :,\YT{7EyƂE 1P>BU)caL %EuEN13I5=@nPl!jq`)2X}-E"H)YP-N[Xg\be4fg+uüzD#0b#AJg`_n ^Y#%&fPKK=ٌns.# 务ۯ뚃s'=a'|l3e`W5"tE }$7Y\KXU97ƈyx}!w ~r?zjrtRqc?ĉի/LQ79:˰Nwnh|N]]e9,L`5AqM._qZ)K$|`,=g}Oj33=._`ƌ U1W9s'> Q-ZF,稥 tBPj`(:̊JB )PICj: ZR"2!nExз<01^2Q 1j:2]P@%BNKr"XzE)G؊Fp-hF%$P0qEu^ >tn70<&D>40qkx 0sc ڙ":$g.vj2em}/1긧Y蛈Ila.ZHEw>"_Rw` O9npIX1t}OIB4{$gb۱sÃa|-+*-Fq{'6K h\ɪ;iWSW4Xl8UZ\#5& 9PxEDJqGv 5 K+ߠ>C]$+gs'AΈ%P˔Ycj].׆VXƵuߺiƌ~?$}F=,cO=2y Sg!obf(eb͸3l8x1Z?ky{X=y?Ob] 5b2ڡ@ޫH&Hg=7/koK{|̬0 qKLXRhKZIE ŒPZqB&8!&/>BhD!BM+lZpx0'ǞHAڃXynA? YtcEEnkTs[ YJDr"Y#G= 1Buո6KfԓW{Epa'i#3vv9R5)f\VK%IKұAY# _tPx4aw8z*p(#3D4L"ռ(Y!ϴ1_,[ 0r_j_z[+cgܽ_{*܃5Gᰉ/SпVu7o6V4p n7?Lo\OzIi(i`-f%x]%H&1~s,FWpI)yl# i~Xq.ݺ[W)P]qbmŵ˜>|66i/`d=bz;$&ghSmzӜvۿY}1;zG~x<=~Sv(YIGA2]677?M4oA2{{qbhva+˂:lmK`$ν(kV -G&Z-r3E^, &g*=Tx׶'P4d拞& ⇤ݘ< YOvd b eՒc`qmK;0#I:J0mN0W2-7a}y`۰d ޑ++FStIpu1Mg;>m۰ZFO˔TV1ҵݠ-*ĨxG=aʷ$e\wGvpnbS_sf\{յbkw,}߱ZErwt]3D1G?RIN8sn;hrF=b(v0aB*2 Sde#M[$)j; Pyt2Q{8ػuTHR0Ȫ#UA;zbc"y W% ZtHs@-Y #ssto^>& Xt${zxhʫ)Dw"OH`ߦZ1I솎y/0 K>S\O5M+=A,/=D®=ż=ɪ[qOEJGO6ok/܉Oauk1ıl^d>v&S'? 睏-F~g~Sl,[i kG=x"4s+ebc{b1@rS,G>[/w_L8q5|1SSHs*.fz8u$Mr{+;%)*I]"JbNLvt9Rpv.@-/\|a"TxMBdĸ,B56nN&?!qx[s(j˪N$Tzv598$:$CX﷙ɴP[srd2s^]"I 1e$;]$pu=b͡+?,!2`3|/`[CUؤf':$e/>bYO;ygl"%npq{A͗^bXSݮqtՊj:/bLB6h,9$]csmF.E >;HEc Ic͛6J:rIj$Nkd y*s"/1Qs`i{>ুi"?1U'Y{4ڤ1ZuwkF缈Ű!^Mw%Izn-uhרaҏ;MC^ŏK)X9m]Ky#ÇKG1;K'أ'-_9Vz$LA-nP3Ƞ5:)!~.?3}0ΘͦW s٨U˒2&c /LL\<։) ɂZ u4Y隡p[Koj x%{G-I- !KOɪܘrZ0348xpHZl PU&ed$HF VVC92&x^L13æ!'!L*I2)Q:p;BLdF ӷ-G b ]]qF;N[yڱ>Q9GE9K 5H 0cAROVdtiS{¸sdv葾2AaLorUN9cOʵ˗vj¸&>L!%C)k3mL]jAVpΨ]P KbEZlAp yڮS;bռaJ6eӇIPtmE%-|ew\'2Xru*`<ב`F_k,]nPF0S;sqlyђ+8yw|o}G&ٔx}jmJsͭjMgMg &xT|Cpz َwnjm_xz* ?a/|aCCNv?_)}|;&l{ZBa맶},gI&[30?:ahSm~fOry> 5i軖YZ.'OX}DǙvb:9wシuyKZ-MDo^ި Tɔ$3L⢥0.ۄ0Ԭ'n8*QM2R&S6Mb;+V0k>Wle瑕ehjgc&qLlCM>zAp;/Qr7n}3bG YRo1{MY(1} f-[ @Ig r,am傽+ox=rx&11>USc; [`B$l;v$YkFbȴ.еyp؃v Xssky|4Ollǧ3#n#xu}֚D-FZ1h9'Uz ;k0O1yccAHKhn`/~/w3>H߲/a9/,iLpqU1_{IK)t5S VmLp#, !)5'|D͹Sb]<{Lv%5gu9ھNJ]KkUĢ)E @q&m̲WTuf4r!^;egfS( 7W?3BVeShJ`ts˅ʲ3v Mq4pw 4QG/7bVIFltTƜ-IQob'&?8G۶^nX:W4SK[ni0| ;Rߣ * NS PEVj8"hGQ(܋~b JgQ2&UIC=zeRmgR,q0_i}n1n:A.Ǿ;s+"o=#O+qUxd8[P]Z06&wvé3a8N_ߦ~$arͼNY!Lzr#_j&l 6@Ig@dX NO\YnbZBBPw{vxOqs͛wrjO9UMN?z9XxW hl쯷w>_7_ 0bLږ[c;._~ 67u.*TƱA.]J׬ݍܰF ~JM8Dج+΍awb_m5ȂqG,_<3eB&7non];]D~D)d9Yt Ӎ]&k4+ I.1[Х- FpmqxKlIVq1@>~gTgJ ,Kwڍe \dcjt.BU9xb5h mKb,T:'}P9 NM3|㨪iN㧆Ƞ">FXr] %SKS'<}W8HY{;ćhFeY9il0fG?Ϳ6C/kPdq:>s}?{K7k1㻸{_H [7/`οIJSfѽ :zSQW*Jէ>_r{ϱ}}7Qu>>4^dKl6mduD )UqL;A)#J6RpC8=yx |OxCL0rpǦ|3s˼lwf\NaK\ye>~C{ue1 tp|H{}[>??kqnu,3o[GӮR8||ȵ=0V/M;1 N(%1jbAArI 6FN;"Qgi8b{UyxX8$'ՉyNҒJ ǖd.5qd1Ǜq즎k{((|[%ѮiMx=`De(Ű(ý*kpIX [u E,"# H!=N$ɘR(T&2$z':fW.>ELRºT`hB+|Uib-dQe9M0Vb*VmCc9SA) I, d.X*|V#P%g̓4C*1XLPqx\)^`\lt1r)8se{A 9QWF 9 !GRIu]ʅ9{əmFq1<٤w{CT=C+_?h=Q$usdoqpnjoR̈́NnTbgᝈ^jK$b*]v \7WItジ"/ۼ㑓|=^SzK/|:+Nԙ +?qn^ ki-c[.|?_ϼA>| w(m 0YJ-E7fť"[gS%Y$G&qqWj-^+jgj 1@46L c}ԓ(sFA'BGb3b cm1ӭ)94Kγ2{ˤX>>P stհLb )Y<8^-fXeg7 TrX8)'U9 jG<0oHYMWiYVrjnɺ)z0O-}b} hpkkܨGDJ1aLF59:uܢ4!G D5`T|[sC5pe̦;,,Ũ;ˡVsakc_;;9\.jZΜ9Gbmx9LQeN/I X+}!99Kpru}&r Hr>>9OWx:❪U*34P$c!ʍ[ KF'b=>D=EOd1`A4ɇ0x$@ѯ~_`~L D6Vy9uh^[.lbB67$ EiBZÄOv_O'xcALy N*bܚ9~ ^ܾeϫ+dyY}1O2_d7 ?ögm+?2/kβ{cgOaGjS<2A7q`0exyo8~?pW00^XMe#2 X4Վe'۬6!e֢BzFpl'“S U`NtKݧi}PiφwJobq" ێ( e6* 7zH*%33:!c FldBHn 9Hp+;f̛Br2#!fIQ.m.jFb㐙'r-1X<*zEv#KE3'+U5$?'M(_tqH:0ޒHZM)):~OgS'WG*\o ])R9)=Ŝ0Q2XI$c'A@GK8WFaKXFk*C;D O=&nܐncl pT{|[v+L&QLP&qz,KJZÙ0xEϫ\o:HB\- Uoy)~<ţȌopS;l=} Li:^~Mibdzqv3%2tbrZס}G/˼k52fAsL ㉳'xmc3[;Nu9]ZidM!x>}pbdY]fBUrtnlpS]U!^))E ̂gTjr\pk% Z#[D\8A2#ÃیfI!?9aJb27/5Y^芌Uf3LkU53T^g %[+[ԼŒ e`p\84xkCܐ;,Kl!;Gɚ.]J&Cv=) )e!IgsCy! 1\"dHVp8]oYQƈsTHi IuVQ.E![`En)#fSsш` 6 B2:!BU85DɊotǎذm$,ʼn05+e^^ۋ%. kӬZv_ a'kgO g~OlP9Qh\YEfbz2JZ3[q1),6mmHAkb%2r1F6k=g^~ね 3oxo]WZlpެ_c:SԻ#7<'\/ijawv^Yѓ7^tg,_7? 7_S+K=zm-;Y~K ^޼ǪZLQיmac+xDI\]X5Xh d 9(Xb/`;wUwGjD qyt 6 sD&7{h/ZJf[boic Z=*UN?7{$fZ]4p2%wZGv(ۢvr^5dJT@9*G(sm~8g*b׃lW,:0!\'H{\*rB0NS!312z (-jU[Zza~>A*G=x>Z DE_k{l\v2u(` D:^q)|K~o|9>q->-jE5*Mخ&1r:z(M$`uչP d+c]qGmOdPӍ+lR$uQ+SpR4zB6Jj8腉P+lseɱn4PIg.PLe KXزbI<gR\P fp l u=i[M- ¢[1UBKg1 0t7{Nd0`(mԋҒ4!X \-SGIз4hj!D)YuΰZ,1xwgY I ժ@%]j}ü#6 lSĐ$ &Ce9sRifNs;D"F;hXCػ@|g*PĊY9J|I"zO%܅n.k#IB'8?QB.cCB n tX G0 M:9欖[1B,ydV#}ґ XܞIM{63cg-|~?ܻf$C),۱lnHF}j ʀW\)߯BCh_K.RbO+zɌ|bsgx#̫=7>uKg; 1B;2?lzYD!RpdhԒudcGsTNр; :bU PtɱVYz\7QԦPlK1!M!Z DthT6 ;5c*ǛčVr0φwH##p` hGњE5RvAmU9Xt?sا3䀒QΪk.d"Eч֨fGUhG)YMˎ4RiqI3l(ͮbOB1!ABϋ(H* )GJ"-mH]}{ƅ̭g ꡮAS xmὥO=DjfRCA'n޺*L˗غq6NgƷ&3Ovwҝ:v`O8!K!hףg1dsT@qw`egp; 08{IR0 jcQN`ƒV䧿)އ1ƥb\, y62^N<9vקCTr $ ? ptYÝyr9_Z|vw^ #r' ?G/~Eox^>֏cJe 6Tc,Q]CeAjhHq/P-+kHQAꤟ#B̪.(kwHd8K&$Q;A.8 :ڱl3OTu#6 g2T2+S㊞2gwt0\"쎴R90,UͬC$Vp]09t*A݂##lQڕ-FvqFϪ͹w@"b#$Ö>tq3}{,nKv&cj5yx x  CP*<b #2+oN=s|_ zLGc\gI[ ;P}GMO[y4fٔxh<?bD𞌧7yi&GD.A2%DR8 B YiERX>R^;XzNp`B'f7̼^稓* `2[^猭@Xaa-_ZA#T 3BESgHE5L'O!-~X BVKCш#j4Fa#Jͻ5]zT]T![<*"} JQ _U%%"FrdRKY"Ĕ. M9K= ͉D(5": U6aD F#VǚࡌLx#9}­]px*E"0Yf)׮^7ߢ ~v3s;TfaLgtڂOg:0 +W]wUxBt{BxCYBo5ADpd`J 9F>P;"Ci5Ze $91z\X*z{5vDڢq1qi7EUDòrPY+ESD9b+$u)CbuW(YiI_NٵïoU<0+ yyBIk1iWD)4}ǪMflll((+G*W5}cH-ˉ6%Z<\ѦLèi'TCᵒᵃY|| /SGam6{tnMI0N`\6q}L'^ɘ]CqB?4ZA tB(̄LimEGƯCN8 31zFV'^L=(h܀ `k]P?Fo(9~57 jQبgNl6بc #o~m_V8p3C ёj8|ݧw=SW;U5U̟%9&62/>sO?,?ާpIk 3ǧs}ٱh̔82aХ8=]RuC!E]L31ڬhۧEyiAL4N?^vk9(#Ē!av/,-xC::*)Œ!x˭{M20B,l*we (CaEAaWd+DW2]J8oCLjHVcVpyK}R tN=z#۵G#Y@qB'X2RJܬ'XPZ>;6U"DnXJ\Cqq$-Y$k%׊G'ĉP\GcF5=ĠD*npXuDƼKtmw08AM6X %38uHoTP㨰:=o<~4շ 践fN="Kβc=ҋ)R! s\j_ 3Qr_~C\pZݯ>a4X<՜YH?|aV y{Žk1[Mf|͢3\\q-U|Ԙ-"# 9i\|1zMh(E(,XKdQsLaCoЛ5w=%$fQ [ vFq=PX)`/fSM@w 1'h$0xc^hT֒xT( +9X=)KO cv 6nB24鹲Hgu<'F5EE 2(O)J[{Aw|>wln+`TeHX18。e(`Ha 8ipu1mD1"S/7vlX
SB_ WBC!8`mXa'23';;Vuw%À&i=8Z?c dԓ$Ĭ>L]בLi4jD;K1oJδc,<"M7iXTip6I"T']~ )d U ?  e1}}t)%M͵MrV^r/S1,d\ާBޣԼ^x^޸rW2@QJ/5?p| |׷<k=7pgcgɈ&\l [o4dtb҉HRzzzC_=HJ6pK!KO*E"L)JL$ Gd K8˩KXAr5gRE 51Z$d 7 L*ёWctN\S/6#FmGILNJ NfNsdi{Mk!J'@CwD)i^ʊMtFX*6Ŝ=dRSG8u,54'M%/13oigDMnq@0;.Ow_9bؘNV*^%B*kEs^r7oޣ\ok},_}j_+oᏒb$wkї2wV&vܺu7 ~Q|{!}#_(v]ڇpI/WUu]vT: _^k>]etaayIDAT䞍u&kSjpq-R,]'b))rD*Ya1 _׈CUX,.Lc۩hf g Uebpw"@j 7`jۨj# =1"m\2ɘ Ρ1b/qST;JpUf\w]x>Gsz 5j˳g)o?1<̳3cT`eE/?Ǜח~'lZjV'kLtB$DB$0K@(RD8LG4 ȝ&H:*oXS *;,%H҅(8_;4+#;]RӰHk&T[zq<hPJ '#BpX2P9lPA Ւ '>`JCzTV8ܪi +2ʣ&e\qu5|Ց_WꁯW1_{8q?ooxqUd lqׯwԯķes˅¥ 8Hy{k0.4NyI A}cSU_Vg岥"M۱0=޳t<;dRۨjY") /QUsq5+n):_Kjߎעk>Hc<[1SEV}ᛟ}7YŖF)W[ #I̪6lVӋekobx;->-u1D)^[ԣrP|%kXe./pfEB;(Ç>/}ȥQ†;RX=ȹ(z)<'}oA.T ̰O$jl! $#"5#Bنo=AYPT}J S[q*ɢf7٥HQ#y#fbsJcN +`r9lVK\90FMӰZ,Ks\ {&k1:'HeHVFXcpv:PA#D}~]^rV{yk]o Tc~[_3ǿw9oƅh%[ҧ=>+ڭ|7 >n.c6<7VK&qQDA%PБəl)뒪bM[zA6cm)0g/)S:G-UQG̤XeU$SXK)Iư*XTVOmlP|7>uσƿ2:>}o%Qՙ뼜J)<ɉ@.-%3B9;W9гALEkJ S2rUOcMi|}#]m[S w`)V,Kx]Iw ][1幒 ;|Ci]w˯?voSs'<^ihgqb{'bd-"ZJ9ܳ+X_!]6.kQNDKկVf)Dz"ʠo8yi3A ""A"IR+̜"5y\VK=J=>6w=G?ILX(qɉW^~N-_W^y)-eS ҚH^SziRZn#M u0hjÂJAX,& /Ϫ:T 鼝MtpZDj~OZG:(^e! F9bDΓ*P+~eEQǪAy-#e6^dGj镅 f+3Tbd0~(+(۔x{u'jg[mB^U­ҿKvQz**8س{/*?FRd9bA\o_4W{Ҭ);IiÙpϰi wJw2'LK%-}2 yB)-ILA0Wm6xW_Sx+!I"MIEI]鵼=c16N~ܰ~#<6oC99}$v~뮾H2ކffDBQS5!G38|P ϭ?,nE)B S(|b eE{(%DqH= Q+>on J?68R1rHҲ#ݜBuRܻJu!صJ믿֬38ǑcGwnp7Pdc03pZg:"J_JZD 2~@e-Jo`F>E20(PS'݊]N*a-y#P+}-Ry)]l޼">J RPКuu Sw@oy<;l s^+HsnwZGXo9~jkC$Iz,-- N<V )JK/˃gL%/<¾Vy{̬ ʠjvž:\pLAt"}=jKKi_o=r[इJi%y)gg}Wu83#4%4F5ZBq1 :I<RҢeW8J/"ebzonUJ# e /}-*N,;nW⪫@G37 )?z2˘[뮻__{`ItL qA\xWa}5(\'h( FH !B5\ªX *h=~0G.l\ `8[vJc3iǹ;ػ{wZ4$ZX)Jo)D4>\ѯ~ezƟݗ4#c<#NRT]m[wy%X*ron^בx]]5hf,) !&GRx 9ʲjQ%Zk­ x}3 gDB!UܭIj}/|xV}|JKKaBpMO9gJ) )ZE9Wמu3\}3MƓQhMܒKAN&aG6XYy2!ly na%i5Tuz!G7,Nhp^^#HED"5@V~<({~{ضuFOg~f{~>:yQE|b|b2’ ""ѿbhu|WYpKQ< qCqJG^C ’Iͅd/p+NÕ~e&nm\s5ԤZ.`/J0:!0R·4ބsU~Ek LKfBi 6oūJBJ90(,//k=TxK,}87}r NeQHۼwë+ z&)u:zhS!28XmJ(^ё&f2x||nz3 '&ٲm+k־&ojjQJ ccv{%]@ELNMqm}v90cz wa xyY|,[ϡ>h3pL#°xff[ocǎ"Jx?gmS%]SFR+(x|Cayiu:) .ζݷɝo ]yۿ9pX{'0E.%#Ȋ뮽O _K)~*ȋ" %PZj)Y,iDqL%pˢ3}ZN^;˟ĹDs$hc YO2O:Ojzjriw:QL_v7P]t4M~GmWl~y0~^UH0_U;wi48ssK.Xj-ʼ`<ԭ%E ?V\+Cd" ^E /|p;h'iR涏L8W( y;.x]p!8Gn6cdrcl*uW##_+ϝwYXZ$7t?βZaqaIIEzEr*c|lw7lbd| G (=ΏN=[7.n%~Wu e]iӦM$Ir)L,R%z Z9 IQGrCdy D_$5k5,ö7qv^v_ ު,^NĞXA\ժp!0e;ڝ. %TP {X2ȸ1!loͿ7 Uih?мx8Ngzbz`frm'O1vTU -\lWMW%WH%Bk-) 7tx (Yp)47vpΈZή={.۶]/zc kFyA+]"#~'O1+4IxÍ\w=婧ʽW7/8' .hMYpM7o!K&ְyFN8Ai|؂dNQxj >5vSh]+gJ*pQhwğy?_% zVRzq=^ө9hX;=5SLMN0>2h=eYgz|)F Xk's5! \(00bN/z*)㩘,7,,u_\pxf-Msg&VM. p 7??a:pA s8"Nj.yaē|8=3$#8,Xq"<λaDGV|r8oFלSXYxidmK}XϊVwfsʕǚl mAdkAKJ qMSkPRq5O|ݻw)w}/|4G(C]hygqpiA&<e͚W]9Je#KRxIz9'^R!߰CrcV Q5k]U/MWyk:i~9؏ 0%$fQg|h&͔Z[`fZY( k-E \XM\YnwQQD^XX\,3ݜn+trZK[,,t3JctL^'u8uգ.x?7D+H?*LҚ8Qo4IJxW8xYYbtIJu̖P"Rcw/`0?pe+2Yyߎرs:xy5zm2E|b;jB:~^!wfU\'v͛=>(2@ܴ : ;yw"_!9뭄|1?82B{Q %TPpTE:k V t8,ߍoq36>|\A^,-u3jiz__ezfBÆfd}P9P) mҫ~ѹ}[JD%ZGH%U8k{/w[y %Nܔ4F6ɺ% t{=oEU^8kH)/Ҩ3ڬG?s֒~Y$1ܵ1ʦcirEaKPD:B1*B",rtXS<%\Xr<1BGyps^ \}<>/$ #]:>R^ ~y^yޘ➷|f RS®ٽ{w~عc'xa֐HAtlřYҴNVO5"v÷(eoXWI?:@IŻN6oނsШhEW<B]eG B``,-/{H" z~Ӿ 8^%clذ~@ީĎXwzyr|PtMS#}?J*9zYF=ej|fR1#&ƈF"WcF(< hm: v߹w"E@ @K*?/%.[7(qDRc<)be'`ffAVR@dj+m#lv1Dĉ^fI=E*9F IRn'ItN(q 1Lq;'L0Yk*ZTsN6lR޶(EVG%.7ҢfI_fֲf |焳ae[b.0l(-8bC)%Pm׺8]E׾peM$,,,l֑Rd Usd [!CYQfiPK$ A#$c,, ,ol֤&M"8Aؾi 02O4ƢJ%rWϽ2q192NYt^WGW + eh 8MR^AIBY2hj)Z((&FzZno"Zoο㱯~Et4v޳R׌=r7TDFSi:džx琱mg f6\[og߾+ygɺ4\z  i_u:39y+#ͩx=`䅗_@%aЬ.y^*v>hY2?gfHӀhO:JjE:O$:.KdA1qR9nf-%V}6\+*A^IF(!SUUA?Eowz,ZdYT4hu('io+J)QJ\jYa*uy15͗.:6ܟvHҔ2wz "/X-Sd-Mt@Dh B,@16l, K(cekh-5LeSI#K4.`'5w/F)=*_WXZ^m6ٸiӥ>Zaj-{)A-PJKn+/"Sv`mo#Ijڌy~ٸq?C??g'/ZOk+׀bzq6֐w{EXJ=&l۶&W *d2~]VEVd" ~}bMDL2J&.yyo^F}h4VN甸^[xhɺ*%g~~e:cccıoiVl1 eIfX/"FMICV%RNkHl\=3D<\hmTc Z .xg8y1 C5)iZz]-s&qB]L%E֭G @9ΉqcX`iǡWZ8 5OeVnNk~ dR_q]ws۟=3QOj_~/:#~o=tDyHSkj~!Iw?sϢhe0DZβuVj' hDXSu{ޣ5GǿպtP-a`PRStxK!q:!Ɲw5kٰa#kVvT_;~#ǎ/6e׮%!NHyؔ°k.vnzw{VgæX}E#Ik6m eBRܔ8)]NYK/Z0a[{ @Q:/MZ`}O8)" h4ٰa#Y(MH!yZJʲ(>U I4F`h/S=WN OTvF5ۄTH(O9HfbH{_ ҭTsV(* 1?1%MW+}ċIصc|ǽ|xX:&G(^۷5g鴗<\\yBuLw>֮[ϗ(|Cq~'Ν7~_knb[lY;EQ2;72״uA/oftt{ykS57p#)#LVbC:r8lvoaii^ !n\'|GaH,qY 'LO%m%81a%ٽ=w199N2Նʳ*tpiĒZM?7,Y1O Jl¥LUK391N',wz( eIj) &V4j)F,:U*AdəOEGKM61z9n*)ʲ%C9,E BH~w6K%^;=5zyƓO??h_yRjo paj:~/e?t4K}Hػw=DWjhcƷ!=v_lB:6oġG)(!x ];vQIQ湟K 3k%u}v;o^xم"SO(r?HH"% 3kg@54,kd1g8V=*踇{VW:޺钦 ZGTW+/6RT]j:쭨*_,jdtAȋ^Vx=]kZ#%"M-IbAmVATA̴j0*<OA,-n^/ 0<8KgO˯PKGq$b."qE}{;Ik5{yW˯kؼi3_16m̯ƯNeA3VG^X"-R:+ֲuv~/U׬ԇīYmSR[ٽ={ ՘_+œ[ 5k׳s^9xSa=tJh^D( 3*F$O~ tNO};}ikEY~_taG} DŽlx xΕ*J~kpl}ty1ypBhc%JEP٭7}Bp%1k87=$=(I$*KC)DWm bxOHhA" ח6f+y[;=ڝ kXSOSz4or=%(#o<~&'kIZ3s;EE_>}?qK BoXy(qwUp\VQ]ǎcni"-ƛoʼnJKb+6D+e0,n _xv;%u֭!xD 26;;GE(MifNcI[noD)9ׯ9z( [()JcE+P8ߺe+6n (2h tU" +?R tze{"R;ب(R:+ n8$D[3z(ow `hpIܖȭU}{FtJ[?C%J:nȉ"M^'dq~̣g ,Bo-vb+& $_,zh/}qEihk4 ZKJ\eY2:2~,U[Qgu$^gOsSj[*Aܝm,/{ R͈G8|%(o҄z_ȉeŜ8tcz| yOcc`ĝwEoݷo|)FGGٲzJ'8zs### !m%rP z{qm_+tw9cX$i/xWظq{^E Fp=J*#Xk^ehHu>RG(-ߔޡCh( .{{?XtB\^9rm@D/-/- $si56wt_m\vͼ΅b|z9j{W PJYHSk/ $N.mxnURl)-e,.-vP:Ѭ& @{oݕjȺR)^xiԯ9F\I'gLª)Ģݞi* Cn/+rD aKfஇA oA@ߦtq)9p2/,]ވX\e9G2\t3i$@Uk`~~-o ]=o^CcQZH4&+2qz2ʠ@(Vβ?̿%Ͼ,nu[4"8Gi& HDJQB$$LLN^^)WchwڼrNz9JgT,l߾W7RJʲG^Jchwm:ҌP׼V~m"B,q p~ *Jv@tChÙ0ו ]gl!^{;gu\Z& U}f?P,/t["”%5Ig G8I#V5/a|baK`#h$E~gffz٣a#qqK8qdr̰Z}נVn$߫}FG?1ض(b]=弊[^P~ț$݅~WՒ_$ 'ؑDJ2w4R*Z[}'9mՅ ~hi/uq};Ci:Ǐ#| "\5vy'9vh 6H4L uk>xֵ" {"'+rj4PRUy2/t]F-KRID'tzX[[prurXUGnV8OXWzvl ?Iu+DJf ?"q]z.:\iHӔ$d)q2i'54GX\\[fvv$;Wn^mLaRŦ2ؾLu,,.S:c8u9֯_BDOQ#<#bt{A+=kunڲEysnVZy/'5Yq+^1Z:6F)qvۭ\cG47n3WW]I%gUet]^xyN: k -Oذq䪫MdUJ9NE exo %(0$4iPH/ q:n7L$"\pS:~,]uA|k^4;NF\yNH߭<z bCO\]yh;EEC8o9s|ozJK0G{y\\ FO 7,;o{EbO!lx)$;M6mN85?)'xM]Bx5>.`YP$(~h4avl3"qqPHM-IS];Æu=t;z_V^'zv {z8%̬z_gކS#}4YXkIiSKb^Vɾ`­r"$(taLqr(J4]AZ^W5.& Pg>|ABD8Z+C*-} wjw)KV^ZGZKҠr'SNρ4#!2Zsk[://9f&(B[QLo-:c57/Xu8x#cLhmfve`ElR 4 3'`lN-5/zQ:sl0{|Z¦Mi4.^-,ckYVM66]"!Jjey22Jihٱ nYQ 4pWr#M5?5,,3&MbZR<س*,[qGx駈g,48Қ&'aqMi-zJ=`AhE `"J",u 30;;4Ea)KyE{o뮽>lg59bv=yF Ij# ysRT~+ANFg Z T =Mi;zw-K/oo活=eDfAY'U*Ү86ȡCbia"8ʲHJk% lNb5(E.Yfv^I}4 8u4ci4aff̑s\{ur-`~6"$X5fiM^AK0E̞:2:w=^&n8d([?z9hMa, ذqHjЛeR^y$"٠yQetzgzJC03O=I5Z)~@^:u]5W_ӿRYeY"℗B!vb)Z#4W;P9yEs5f4d=e29MUUkENpO (c>5G]/wtZ-NS$iI?}"McI+>2J;_ %m4x8~$v_>6mN{kj/~1KJh-!UNKӣ(q pVy=bqh!+wY|q[s:u»G1Xo%$rX Hᡟyhrڝ.y !ԕqy]4„gvWU\JGB3Q|wd/b# ıFGCiesAQ NP^E*u$gm 8 BuaeiM4҄$MfS2MI{^8@G^%8Z^Y 4֋7E  h%jʀ)6>9qFGǰ1{z#!Ғfaan) K eoYh9u6k\s+N3erbw]عZmZ8_W~V̤XI4"QFK':`~n^K#zavL<ٲ(W>i*kͻxa$;lG:k)YYxF ;?Xk⛏?Fw Y0fvm WtyiqJcB:|p$HiD:Y^}Wsrw7MQJPH٤Q}z/#2oe܂ګ##5n.m:<( 0Ome!c ^Fo&H"GO-eS%=tN5g\M|?@$زňyNdx [< Y ڈ.y"X\[&QkIiXS{{6^A{YQ^Hr+X oN36Oy&L !H$1Z8s(!عk??ɺ T;R^4%R]s+C;3yE-*O|t 8Lcp(+ƛnge c e:IhhE^zk`i-=9_Hذ?+/䖿ubUw !#M54$Jɰ~pgpƂm1D EؐX ^qRzZ^j6Ki([iK H2h0ެLi@ [(wQ̲Bp\ gO0ϋ/`0(r5ke[8 ei(Jq3ycgb(fqiW^y;i!N&Nsl^bi$XZ$J׿ƚlvx}Q)fEY˳?w=,E&YzǘduXuD!~9jw(Mk pne҂VH)$&IS"Ͼy- ܋#^%}jkj ZBh"ReVq`<ۅ%ފN@)HOUpvN&D:hsm8+O)|s%RJF)zZxke-h?E|8QZ \I)FFj6DJ !Z os'o99.qOՃ s6^gXk9~/ Ojiw̞<)jIJkeZJpnZXF(q$z &FGKt{-fO/DZKp3uK/`o{7͎gr82cyyG?߹{XqpvZD3l۾$IfbWX>9Z|ꓟB:xWfJdPS` 3~j@zz-}~[8mAXP4 {7^G)"NJ$1unnWo 6mDZO)^ZO3>1H2G<QJ5Y?Yص;w319=eqf=0:I9#Y+?'>)_Zz 8bLi  JQȻlU dIA5Ϫp+an~%*'6oZ\`[sٳKY&4ūGe~JRx7`hXS%e\lҋNg6ИO"mШfyn(B?@I߫j$0quD1'*g"xN?扯|Sn9-JSfFlX2'IF$1j1Jcɖg(X?ɩXZ^Yyo6/W+<|rͷ~7ڭ%iB: Qt!Ngg){Ǐlܸ489Lbk `UqWoULO2 p}*[izX FzP ",W^H缛Fɇ>Q6y9'Xq }>Y'B:VRs0LTqfTzDPBR"Do}ъ*Y*!WRr@+K)U O>/kV9wT j^tEO׿(IQBuiy53l޵r]iQFGFQĉMfOR,..vIvM^kز劾UW]˕W^Z޷i`88r8͛y6YGޤ,t]FFF k,Eiy8yr gX~E%~/|!YYSSg: x`s7#(|+_'RAp7qwLQu+gr@p k{/|G9e$\:gJW@ i[sZ3c_T<.ʖvf;clrذa+F6%yg')HF>v]^sVBBc>_Eyr9tBUk.ɲ#!מg~#k6j56-ӄ,X%5)"]^ ~S\u ݸ岁]nZUҹn1[f%:9`nZF2)%G>h „;/P]2)V؋UC@ˣﴈ}l޼u6h 9={V4Oе:#k[Y~C|j5tⱣ/;z N f6lAE52c=mլ]4MQJz$%Y\\qY $#cSF@ n@c)/4Ҷ9[e9kdfۮ}{ d8x\sex/^hk}#i=WnFTn|K~g=5¶9S3lغfchvO2s-FC^V'crb^wvg g2&FF:enD (z.ø|BsǾJ$IBD,xCoY3_.[u wt1,Z_Mń{Q8y__P`캌acG0iWNz'~z-aqZàR)Vg5g֮>0?"U `bb_͏_dz/*0-j-OtXZZmblrilEZyT!X/_'3j2b|j+?keo*a[Ecwx3Ӈ矤'LO~xC&*w0ޒa\`cy'Gf#~x|']&a caܳ?CjiBE bwM8WLr{wmwzc0qYsvfw0c[C01a1L00c[;a coq 01a1L00c[;a coq 01a1L00c[;a coq 01a1L00c[;a coq 01a ?#%tEXtdate:create2016-01-27T17:32:17-03:00F%T%tEXtdate:modify2016-01-27T17:32:17-03:007xvIENDB`unicoq-1.6-8.19/doc/unicoq.png000066400000000000000000015316541461142772400160530ustar00rootroot00000000000000PNG  IHDR8:bKGD pHYs.#.#x?vtIME*" IDATxg$i~lW{7=~fw,8dD*zTH P(" $z7;;3;=ɬtϣU=fݭjj2_cB!3ʒ!B!xB!+B!^!B!$ !B!W!B B!BB!xB!+B!^!B!$ !B!W!B B!BB!x?1B!$~vd$k\!s,h4hэ9ʵ9lǓ/B9X  r)q\ B!x?#ѐǰdoo-rPȖ BJ[()Jyn_[v6!B r;[ z]f9u +(dЄB!$~qOs,V!+kY^=X>}ru B!O'| }4MPff~g.rR Wi0!B .Y֫?ൗ~7^My@خK6)WG B!OYMFm]co{퍷h6agNKAReq O~ReY2xB!x?-7I=zqr\e86=GR'7Y9}B*'Bpde"9&_`a ZgQk0 Dѐvk;o,>*' !BH}ufαq%$-S~Mv42;I$ !BH} \z\}GzE,KV!rn82F<: B!G_(^m&Zdlv6f{ssanqq|j 2B!9iG!?o^~/yKap0$ Q1L}fs? 3s+2xB!x?z}v7oq*wn_ew{^͠a8KPT)q39{,ۖB!h:&[-,fo{͛$I֔5Ns/3ߢ25'' !BH}~eaRe!Kbn*z6qR ӳK\|묜~ &B!%9i[l?/~WeYXTuLY)Q8`e;~90˧A!B#ʲ<\w}1wy6m`4u:؎MTf4"wnbr;b!B .qxoR:vp# I`%R ˫[uz&]Ji2r,br@[(9I:"EO)(R[Xy5bznYA+2B!xx6 Gklo\xO%}퍷 ]FѐֆTZb~a :OyovINh;`wgU!BlKt nvk.^4q "jtTjmu3:i2\oObOA !BwcyK+O]lbB!ɳ,3\ΰ$bpH<%GOolB!^`9.bGYKS,' Ӡ`{Q9Q4@)ljuRN9sY}-fD64uܧDe?%zqk>@solB!^_"NBloc@ghHkw6`xIL<d^o"8jD;XZ{3=v._LF,W~}> {6lB!^qvNǝ?Kw85;C;5nwYˆ-BHǹ^%o>~.CoEQ :ضhԣc"a^g\1x35^ō3As{#:?zG>n8omcuzd>VY[_kA !xCsቯQ(ָoA9\L85p#A)gܮkrq\cW?ԅY^BPLܡum<3sb"Kkl?K]M#XY1 !x;Y={3L4IF!,%z=8bȒ,sMŌF864wn,^fnejgGa}%4B=Hk0³:.$H*3 +%!)r%B!W'~'J{o۶;qeY APB1 =($a,8hnDD,~t_TJVb-?C틧5:lzG2/mEw(}Wow+ !x$!:XY&ȍ4A9>Q1<أCa)' Pr(y263zSY- 5UAfyuRIĬ.P4?M*ٕF/SpR27b?%hB *Ug 8C\CkC'zmA {l& Q4$0hjSujebBcAyҧj<gWoQ=zwHrCP±S$H3(ۘv™Uvp?y׾O+BH{x<΍u `+Tg {]pH`^M8m5h$I5mz%J Kk>{k/_-Ʋ?uFwqNPD^5zV #TÉϱ㞙:w{h"j/e>i!_)Ƙ?IJ^!$[\W~/|mڇ>}~ZqtXۿޣKķngSShv%nn5fW?x[=bXD-5P h`WְnkQXa\VO) z,B=71Y-1`q KUBv5$qHצm1Q_Rbzv BoN/-uov{1 xЭ6ecէjK$-L2kR_A%f#:.3ˤ!2,*d#䛻\ƺ( }X/HB ]Iυ+_R!O,+ǠPO(]jS}$mpgM<} A (Q*p@yė7)?Jo%Fze^{c}\:h*Ub0 )H1xLgdwh>s%vkY[%M4Ywj.u/x֨]zR6ϚYX¯BH\gi󷟿,Ԫ/.'[B!W|́,QeYΠצܧjhf"8dɲ ۲\--]J_ ؾs/=+_f#)geB>: ~fqp}*QdjH|p~\ty ;).ZCͷXgo xIp{xMq)VfD5i]X]\֣NsؤP)RZѻ~tv~L۴[loQ?V!Yd.*(ld`УlrpG"N"N KkxO Y(\%(=, s5[\/pҳ{.AyoD&!~ V=|Y2vM@Aш~J]R 7P߆w `/wMR'zy6ٗ.4Ys6OX G`*QoPJ!-qCOMQsl w?Z>ѕ'P5ÿ?͟ϳ>mWRzBH|4ڹ}Ui,EW`ڦPppDUP&8 8* (:n@^r 3TØwh(374)dPVƻL/R&=3CJ4ܙs:yی^{4b϶|~4MGNSkNzS{͜ AAW';?7Sɶ$x;?k$!h@di"DZml,HDdYLu=ֆ<7YJ%<˦25Mks=ĒaLY\Z{Zm`p*CmnmQlQ)i:LJG ANVqMumעf{_ߧv{px,lS8&}bVb:! {y7 ,⼲Kń*ũ UMb@yiPbADK_רpR '1ZzZ}}vw{+#B=wx PFj},YpZ®Bx%9v2Qn>SQ|c 7X (젔!v#~dhKj\Ho{vff,;ϓ9x/o g[{gN?/1`tx\{9~ܥ8u ac2㺤{;T+hJEv~:<$&iR("f8EH =kScMhJ~`yi_诔N&s5eb} 4Nkɀ4u\gb)Y/q ]ȳST},IyJ+`}K:ȳ`{X"V:הkS4{- yy}[q-SbJYJ6]msm.[ѣkztx݀ߎg{5ک6S's}Uk W;џ'3ƪlN,=/Qk Ի( B:'3Vt4w" IDATq0t!p@doo;ޙ5(}Jxi75[?- eki&k3ѐ0RrxKD%w3['"#L ۵QW7I*76&] -P/J W,TPǰQXYi sPØ\"q M#P>4 *SeM2#+uR'-1bRtɧR(3{,\\d5TNkNu"{I0u<Ԛ;m;>uo='yz,,hc0GKu?A澠j!cS67h|zaBL(A!W6/m q0t m{8`2l|<7''Կ8oig)e{( PL1ci=>`ģ/3P++"FB:X´V}*ay%VdJ+5&rpϟ"ަۆ_8"9h d;Mtun'QϽM4UHS^$)G#l+ "ULe_'oQk 2Y͘dLaD}m(Y%pW2\fA@NȰE (eoobQYSg8'Of "aiD!ܪ ;UK+JnVA'+F}6ʠƠ9Z{'_=zAHBJOG? .$H20N{š9{➺wZ3nU\"kMšLr(slppa臇JI3Y[dYjc0z>֎{ʚ̓5绋je'GAq޳Sw YXce:]w6ՙYXfikg9uΜ^>34W7SasQ6/zRBm[hN&vB6bt'Xk00[2NЋH)L1CIIJm(#kT[ vj1 %.y;]AwBxvC9F.&Oq!vG9vۄÐ Qlu, J Gڦ9rYFADTg 8Qkug)zJ@'l}_m7NZ<{A}}ˑnVs7>5q2kLNI`: &6nzԺ{,IZw\pG͉ ud#ݯe&!ԉ|NSaprd2?ZS||0 cj ܿﭾcPڠ>IF>TG(EfN@X:-{2'XM*c']` ~!ħ~5/+G wPh|U~Nb;xe<9}6 MP(OAP 1~- S "栉.Ux-%A>ms% S6!VPb /?7 KX QO^D <Ǜ%,hpw[5l5Rƞ`Q GZXiJ[,S*z]/]—F3$JFFՋmV.4F}nڊl0`m(Y*6V'yH]xPKCwkFV6N^Ƶ>q6Q1xIVAy\OƕI3Fc=tm{3 R' 0KFnۓ$H<&ƭ&sd(&gh B_L .0%UCCL1?AqVJe*ك)o=CѶp%t^o;3 Fol^PSh a'p qcje𧫤;"p:Jd#jR!nQ(qAwzHf*7ncHت[;C r.Zq,%Tc/N3])(f:[ (2B(z\ZLB<⤇s"{ ;{x1k}g"NS.IDFHRrY]P]-c_cP&*yMGPeld#=fDJ)z/^]c4Wf<8#N R'?]'`xui3˘B&(U$n[ TjtkCa S ݄kXC1y䏯bRe/ 7w>kqg(WW,{Uju}DSg5iԧgrLE1ʳsZkF%$I{5EqW޷yۿ~h~2U^UazsOL'HnQPw^sĉ$ b}zܴ:mঌPں:YTv랼gMJsHsLBr3* Om>q?GÓBY1,,,5~]L|qP  q_7ΰzHc@Qj5e?P5gCxw762XG{;(D:r:'Ss3~A~d'2BGǷ J4!3BsmtTN3`ƝW0( V6{˧Xrx̚a@6V1'2ldX>,PTgqQ&J03eaOcq2Ay0>ձ"waC&ר83n@bHQpje_"Z7o|xp~WqTJ:3͔3hрfFB*c95:v8^PlאTky4wL]8x ( Q F; :l!.'|W%0ux2ڤ:;{ͱbV[eYXm[ *Pgx]yɳqj=ele9(eM2xʲq0ns85CI= f|*ޤVq4utƪW Ҽ>i!^(Eufbs,<ȳ2 ]7h49 ^FU|ǡq6JX!qw}ķNjXI؃f gjx),-Sf-QDQHyydkhct 5(3؞^٥QK5k gȯ! b}_8LоMaa ^$OQ(WЧ-:5 8K=v(,~62YC,fdEpkfv{Zk+ +v1QOg^4ը\: W$w>faks'uoXiHr¶ 5ވ"7f.']ݪ5Z(7Ƕ&ǏØdL~G):1Qa! C0p5{4NL4$qg,!KG$F1y:M0y3t><*mR29LO}X4ή齽K[nB[mЮB; mwATe{XzWr (8>vQ^] EceT*TĔ b@o{ŸuqY'Nդ ё'leaٓXm+,G=t37'>D=0 #Jxţ/X\7~B8QJ~\'n:W.z`J>ѐ m"&Rs}AGX򋴳/1NvB^Nu z!7(OՈ/;-ز\+`OފClLmb!_J<, %dQ].TH[jC] .ų &^*=ޅ;T`{҆gͣu'dxz==VW%RAY)sy[ a'16KjW<6Ի'hرܞ[4x룂$?qjrT=U@3.܍Cܸk zjR`MBx9Cc8|Zf+1QFBo7@C`$ &@gǗ˳&yBfN1&G''nwmca)օc Fq|y@6C1;Cnr+̤+B) rmvmP=@A RS@TZB׊P.B" xƵQ,lFY6mOjҊqX?шQM JzݓձI`Vy@{̱yGWP%x 3赸֋_<^OaoAO!(_"~&xWjV۝6یf X.g8\mk3-}ъk !bN<"H-|`3 ?Se(n^dl=L ZIar,!b,4IQQ-yc"^UȗOa*4h; jF'Gy6PB-F8t(7h) ,hQ"O<1KZ!/Bw³G,ιƾ䞵>ݜgE&eXX da~o =2 ÐQŔM$Gg8=]UYgqs~~8ވ̞!m@љq#2|wI&sF)9׼g/_ucz^,r')48U_bJ]UƗ^3A젇[)%6MSL?FdI0.p-!Kqe.lyLpP\TUd-Y4|d(B6 `Ml;h4ФE w5ۘNbz=jV@KnE+^J}i2XbED[]sac2x@/q3`gu$tzO{kN%yOqeIh@4s$F>zE)4G %]gq#,OX#dw~pJ7@ήMHH: L6}C6"nL'Hj/<׷Ȓ/Q"7єG1߿N|k-h$%7=\=nK<8$~4 ]0Ws"]b׾or 3Z]+k,XUP5}e&raJiTƉITNyqCc|3X̑;a&dt77#L09:19%^#n E+VR6CKQՀXxA'\id%1hD^"u0Ɓ-Ҽ'z[C-CC%wIwM&W-x V2+,KweܛC{ŋ5DQM,p"il>Az}찏 0{hvz@ƍ#&ĊE%J zu‡T |=8`^,nǔª-x xb;gf6 ̿oo:Iqs~fxtëI:dAȰqD$` G./Cc fonȲ+n'4/U S j,DH`4ZjA? a;mmۘAu٪-Un[-tI+uށBT^^_+ $c2~'Mf6/l6E巿kɘn!}C6d+̧b.it|LwE;3R#Y`R%w򂛩wpw}rLtѢxb}< wN=`oMzok !E1#)#qJd#>.sn5I)~$ҦҸɈ/'fKjo>"~\wOCbb$4,OJVM~1}^2z.nr:"/.o8$|^ߡ~1E {?#'~v IUMmϲ]nZ7q}| DkCWТA )3)&sdxX Y9yT5lW5f1*Iv-f4YZ./gJi[+:^ɕ(࢐55[`86 jumc.Z  @XbDE5z{B -/sv=c,DH#4ۘvE]|vp`{>[H1Hc(RDA:zԾ>0>,I* Nl+[]-un_ԛ NؿcZ ?}BSNc)y[褞H-E^/IZF96b_^g̞\>m3]* ArE(FH}d-:"5i6$WKoQs ﴈO=V-I`؅oE$>lFBBLXf$'V 8=C0mH nI_3Q]z4s~y IDAT$/Y$\t1Ie$SR͙={n^xF'z@ߧhwѣs\/.#b֐͈)]MB;M(qzr;_<ߢNT*)ҀfKY8{w,HHlw)8|Wcwv]Aon`2 %QY,u)S 1K $h5T[k hxVHQeJUn +kt(^ա 6χmtV݊QF0 J\dW~ RwElzPcq i+ QЌ@Gw t6FgwiZ06A4D-GCd{n`w0[2('l#W#JrPEY- ]~N#a`a-GG`x lflqW'd6Θbp@t$]YAԴ=4u9xW?n _i<'q1f) w^<Z4SEȈ%vIcQ,=Ic=y ^LYFm!2L5m,>]tcnBy2u4>.gc6Jo}C!|I7(|y3qe3bG{ s68cmK4Yxv"W°M,KeE͈], "ߌW3N? *ݟa[m%e>T~ŨEZkGE˚F $luEY)r?F+%4]9D/of f@ ZD!u 2Y$0Q2֗5kpVƗ9mpW) އy (U y`:iauWZU;:ó?PQb|^ d"[?Z+bĮBKDəjUZ2ˉ2X|phVy 8 B;]dGvнm8bw0ۘ!{H#Fh qLĘ6|nz7u-6+i}6e3̿n|K^mc8j7c'5UK#Yz2-[)ŷ?fco`blȯso?b>{h\)e>~3D" [LIi7i A{Н%M1R:J3̷_x>QA2n;x7{$ԓd&ټw1{39Gd { A:Y!yx4E=Fr M%e,%![cpe3zt~gٿ˷9A#())ݧ"B~vG_iq}q[YT K(ax7 û?L9c3f_.+vbDPzon^09'Z;/-`ҝzE2wct..Vb|vCg JZ 7݈~Ţ-_d64ژa<b}4omܢXiѼ8,з $LߤmV#o}}^ j{M&?zt˭.qج 6nIƯ8)vk:4!:vzŌy:>cvoj5\;ɚ d,%bSn3!,/A\ɘ=?G_ /_3Uƭj(JLlB4Bm jT]-V5Z6]0 -S _sגY/URyU\Y .&d`TgTF[p: VeVeZEAeUQD zu8z :W _CE( * ֌vث` Js(1IZGGqm]6 рQQLHWPwwnP,_H'e]^]_ghl6Is%J,lEc~3F)Q-Qᛇ eyvCvRJ!;t;WD9:=b./[Fޗ1Kfg9nE%)`:cW'pq\߄t@S(ƗdTIlxO W ,k% vNB̘.f%MXaiq—@NkЯ&{ v\u5 5+4 v R!/1Rf.BUT,Qk[]%˭  *dqNa\e[{Fw/`iJ)UoU ]"#`Anc{=l ;܁]>C{{`o=4D!RmtΔd/밫R;* +KY3/`vU m#]Uk#b6w30LۥSK)sG~w:v_'3zh?F\LjtGaG={#&Ŝ蒮I>^rztN%{ H-~9Bvo;g$ N'x ۯSÇpt<əamگ񞭟xۄŷ29VFgSvt=zH#Ιf բiu V=~hO6 ̙?ӌt2żu_8&YwLl[KNjbISѳsWd'^xω%RaZ|k1АN>ƖkJټ&VַKqn#زLDպ^Vzj+_o[rs˘5lu5WSĊY[P뚰V[,)[5!-YWAWϴ7L16˗fpj ^}}L WS5T;s!k;q]Z4i7[.m=}>`ނ^Hf4BZ*xWϩ11n]:pv[]Nlf3w3?o:<-rGxy(_y(f#Vl=FIJ+G+= 9ݭ-nԚ).7ϟmDЕW˷LW*%`0m( 5m%DqEWKO:!}Bۤ4{:?"ۦ|>z}]Θ7ǴyDQ#&8tי=[xxpEc8A8]`E}훼 ?ǿ aUTuTbJnh0eE.'|B%qFFi#a{t)m$o3+`'LܘN㗆E60uYyf6QfٺqtA-Xg:G.h?>`rzUGj:g~fC:a &]nbْ}7!°׾>~CjI_{ozy"=yI%+ Ŝx"iX\bHYɫTdUDV0VpTf&QȮ$+ JP଄ C+ۺEH&.-mF0 eqޖ`֞_R>^*6IԆy֯5eCo%ۨieҕI`)L̊=_`Ed%X_תTD`:OErUOOR~DŖ60 Z4 L[U5 9jT^կm6* hPea-Yd8*/DEqch^?F A(eq =e\,H`xB z1LJY#_Zfts˄lfnGo~6s7Ef{ȶȒ`sO/bIn"j o|cW7a]ӧ鱐9904Cyt47 =9~y h)!*+Ulȿ].>mڏޤmr{Oy0uן2o{\/O8/lNh{izw>vߤQᓄOi{a.+]Z]p]M> ~ JQZU/!6pR LV ]Mrt;yI wsGlc3b`MDl2p?$D}$nD`Emh-e 5Xhk7_ pL"0ĞB!vT} ƴuVp%%]+ 41kl3R 9jpH %kD er% |YD`+wj]k+U}+P%OÐ#xpI}jZJ^ϫe/nϺbICBჄDF&ef3Z߬G.9~#2FZ]8ËO?xylma2IQ3%_U[C%uV pLl\k9yfxZO~?2mf30#׉hzX-Q Ka=췷,GG$16X\_d!21y8u,^hSѵS D:)*k0cxŪ'WzH_j}-1@H Tw5z)HIMZnb5B--h81۟WWRV8WOͨV^o &(? m8QU#> ui {)JFi4"1DbK&"A Dr0iXmQd.׹ P6nER]ܒj"29Mkhh:v(\H`p"Ÿ8&BfG4V$b og-m`I>&~ 7"z9Gm!/YDkʔLej 0d2YT2bmy7 ûmZ.&ukE+0g,GSy$r;Rt3$]=p}u64/M)ی3/>Ah])?\3;n#>|ON;?;xj̇WsZq1Fgٴ%k];YFC'^p}yAo96hnwb#+ ~ݑ#Og.& 9)9}H̴;Nİi)^3$|ʢ0;q9K_DU|`9|{>?upizEc0S~r1GkSLH!_~]2xh2#7V"61f^0"n Wd9! ӔL?#! IDAT̳#|ѱ8A43>$)si LI+@Mz6=^\-s._>'iƸw0ɯ2`o':<zQL3VyjeJ~q|Gc,ť`%!!шGf@LxpJPw&D%hkFkk1Ul[ZE8).U_TLpuŋ MxW ʹ~sD2X&I6;0ؖEbGv+ &<"Ɓᔒ:-3T+ *:WH]D+jU"GՂE-xSjMk_8ϕ|QS9\񅢹GsPP\*S84AcFA"J$B,B$5AbZgQWz"b,խ`PpὧPР*F|èC|d8xCsl'hd)DI}μXli*Z}]o78:A?#~)z39d c"ZD8 , !F"3e6(x\*R)+q G$+*f)Ƚ[_Eڢ1V6H8Jnp-,BHh @5V$rLM`d#)o+$BGZܲ5/蕄U9CU \I=s*WZXIŕZS&<[;|ZH t}ܣ9&/5㹅\\d}z(Jmw0EJk &Rl* TvDBghXX2{LDtERGP kєa92K@F9Gd1vw$qC@J.+P-LX~]+9^EJzP7u3S+6{g3$eyxXl,K1C0{jB"` >Vȁ:q N(2qb"p gIS _Ci0o>Z_<%1׍onuiwbDo>* dR(^/~}d?W l ͭuBʆH6Ók?e|}hN7m29q2g-)͜GIZɊ钭=Cz}!O NwF5&ϐv昁pR,pzsw\HV cBe:'7ezFLgKJ?_^UIKں. D2fxp9,0PFWW+3`+d-ı>)B&@hVG Ћ\C D F/QUAU$gmJԺUfkUmhê|֖-Cb&m8h:L! %X1&$%#ԯZ^+%%b08VihWgL TgX߻6(]|5CYfzǼu+w>,F dY(&2p"|f,BS >hn!7RKxdB)qC$VòP"cV'/x0%2F9% Ќe! Z0bP'|a{Cf"$&5vh?G덇xDto߃vˬ>rEk5e(-Uj{CJu c û?/8? 0\]=avwZVsy)ENkEY =h#ilq~SaX '̍xgodOX6~=r) N$&x5Ka[[]x{&1œ\pϱ^"ֽuw}kq؍@0$LBH$B BG !V!m~~}Cݚ{~}ݱjWu {}yw'y 3-+)J&V#jMdAPdBG'T9Sx=8čFd 7J+w85!D0U OVMV0@hᵓD\ʽW,1&rQ&Xli!#f) /s< VLv@ -v@퀴mbq% 1Gԑ^a4=1ZgV]fjհSz6J*`Օ'2i`EI)=ˏյ[! |>W6fOJWkNREp&WXMCVP&16DyVJ` dazG!̕0W|!hecDkcbKӌyF}4ѩMd%Jdj>/NaԦdI+]3X jVxD9G#{DŽw7c]!tlk7".tڐgu)/ܴm&!36+ 9=_?2÷-U/z=|e?B emR wXqO^P2P>Q2ƽfٔ-ڃhmxJY뮳v2w աo#Ô!Sбi`8d&]CV8kǴ.3S>J5.l\ɜt|鯞/<g?M[[R(K G>|#F|C?œ`:–3ڃ9>ÔʗuN3J4Je1f9O /=xzIfJ+,dcS:Z#e14Whn@zydH_}tB*2cM=kMVH^ѳa飐4c(5eѳFɤ PM4fE +l Բx m 0T meа.sxY @dch4!͂c"Z Ib z [YO,~"̠ / f:b`DɃM7%pnFH6/bŴ5YͲ"-Pit`mL{ְfH2AΠG[Ad9燌{6D.m{÷^5ܵ VԄ@Gl)^>vxLOΐm8e ֶ(Fl2,E>bpq28Y-|ke.Ғk22!Mj3LQ^*p>cQ>ݥ|19YYԓ蘌Hju*8D&A]Ƚf1nCDC,r&`ǪŪ?Nv"k+t  z:oݔCJ#+gk2Ԭ_ 8OHT5EBA3؛,/QW&4]):+eYf 2$iyilK~X*h]>]Z7^ӱHy3:\AϚ\8ĚxW@ fnAg3Ӏyty@YCJzGC2&YFwiSмuYuEYL0r*EhRkM `Cb>) {TGL?y{2ntDRO0b f63H=S:_|łј.1f _d Ek̕~ȃmڵ9'9|v5iݨG<}ܺY,MnCz=5pep*3w^)r;7qل+x|Ztz̶ZA;ö,Rb|4fzz"W w.=5|#~1@f[2$ڲ2cx'w9fޥxstB6BE[ s,d&Ǚ1JB#H RԓZ∅Uj늏=#Xqz "tiv+daPuNm嘖ܠNykY@YlG i<8bV'USBHj4@ Mms}_KjoO)/!Pe8btߗ=y b:aezϊtCV9s62Q߭5l,.>x?RV͎ N΋ijx# 0Y(3 :Sʲ$8c1MRmU?4{4ZqX JJA*٘[ YebJ= ,nHtN9wѧ.Av odoq/4݋ĆtZYuVrӍM'A)EZ(%#2r$L2t{h9O1yFżd8d>(G];7^N8*O1vX<}S')yeRctkڄI ;x+d't6l6pA*?s+ǟtNNfצZ;EA=V:To+pbp{8xٷ)??3x'"K45W"5SR>y#f2{rr[ddV2AL4%uƒGMg@;841_7Q3rqk,515Fi@2$,LuСCv@s&4c|JƱWHSg:Zls"Kkx0gVA*gG7^ykxmrbW˄r {_VKw$/59XV%o826{EqmޓtDTf<aaRkZ3u’U5Fsc'-EJG($jYp"Yh TR3`Iң nuO: 7lt8rNڔ(WN>JX Xl{nn\[_HX9Blr0}=!!4mPMur ]BD*Sw~UD8:_?y,ޟSEI'k0`4sR:fG :=Nj!YЪbTN;]==z_[ Z=|*yqEW/_a&ьӓdY׶y2eڛоCP F}TO{jj(1EInL&ptiKA;)5j_}5\gܺŕCqvd6&6רw=Oh+J2d6#7̘Al7=x)bWNF'<8:eN-B/rI7z,닛Io?kci\]f$mY2 -0 -n`0=UFx:1jjtVJVrc|n*AkL4n*6IR>D`1%TaTd`S_ÁW ʦeNpZS3Ě&5ó% ?񏡿W_lQ=͜Iqedh7oFSlݸ o1ٛ> XTTҲxq|6Cm:"\ȷf/xYc_c?|ݿ+̏G;Y P>.R[3?fE wE1 5u¸(-f7 9?c-ϩvk,p.t|c 1-GO(>}wxδ`] cŘv'$U&3_]|տdPL` 1Kh|ZpaIhZLO CA ]36nb6)L W|v a0~?csS`C`W˒,8-a2Ӗ;G'te3rOx~G+sq6`K|]vnÿN=qOhd.MI RBI,,CJdDZ;+"hd&CH_MJoLVdkusxd]a@Ձ:&MDIJ [YGhlbEhK G5JVla]ς`#a(YЫbaE˒dZũyfZHș Wɪ[h,AHS2@,M44:9$HSQʲ,X"?FuϫVŠ7nN-KxAOqkXALxQ`0f ';vpb0[T`ScҪ%)&U` >תx٠)AD,NU/9ĦX;K|OJ]MTX`y,|u.i8_:yo-LJL 2u-a1mcYάIYQ(N\m2bGTa΃O?E%:1b7՝M-|[̳z1:-iuAp :d][^[g#L<;>ϩ2UB2ԂY@MjLupTMf7彯Q.: gg1xU5ǗsO&L1h^^j`Zi!!EiF+$T ˬPi"5L+Yא V۰5a@%[QWK<oR{UBf!*EB054h+^tMR!V JAhC0RoHYj=]~^֠1%T._N81^1AoS+ʈ릉KWC >䮚~Y@πe%7m@4\Uaicz!|!*Sf̶? &6F,M@(2^|lSd82LerĢ# q8*F0-Ik1yQU4&9@ * *!bVKNK Qz5bj ),1,+Y/z&?x/ o܂+X|r"1i\wM'1 a v-c5uxzz|_l}UeNYUt`x̳";}KEyZE},URjN'ؼrosԁO˻]wr* ϮVȻ|pZ]Be[tÓ|KƅAqflGCc>9٥> w2RDK:I1Gc-WVny:w@gz+6>O0|]|?`83T&Pe5G5292+kPeѤ71*,J|jnRfG+1?8u-Exf@2q۱L&h wu>v,Ox>r[sLQVr.o]]'xU)X\{)zv3VȨ=.8xo-sZ ̏va9#;̳]1Ѝ h_W91>o oT xKdi|ʱB>XVfJLJ ]Nk:ar |J+&FjքDeaŦdJI /U zLaFu @W^)n6 ٶ 2PUEG9%e(2ň":XwX/d!R-8U,B KW=B5IP.T}51,Šhh4.oi@FṵD$s=) jh Am o+a.UjK&* %}oet#mFTx6:fQ_F=-`Rce9m) UՄ07m&qJ &>.UҥtQhJw>:o3BaEqdkf|6ЙM6W2:6r;ZY@+Wmn|/g } ŐE$dIg1QB4h 1ui*50Ck zB YE0[SU7>VoocY_ژ*@SBŴַJX3Fζrn,e@X.8RnY)nsP &K:e 7ztl"bK`@%^5җDѫ,Y`P^ `@W2c(&?&_/Wjlg+W83ͼKIX)r $$4)|YSO)!$V>6{[%) fnabad B8NUs_^&Ml%`j;#i*c|2F+XBL!#ӌ\\LP0. &^$v5^A Z/c6t"CU!Ac:1Igʬ۬`R򋆴 t,~0{|l}"[3FO=gRZ\6|:o}7q% 9ސKA8) 2xlo]t|r%^>c'{vwtɅ:qexmk'O{67v>Gk̆C{mغvo}9)Xz0{y7Yf:AB=UFޡD)X- lnJԘ;1 Eʒ3/ȧS 'L=".;7^D{k&O'Bb\YLX89W.(A+T} jMw:_ =Y_ޯ|c.kYd|( Lt3])jm]o,`\!O77`Q(:I69F[M5 QVIK`[cs?p X)Kğldd6ZL*1I+>PV!Ԇh0FcI]5yԐKN;XdeUaQD[W}~7ݸoF=T*C,|RIMKp֥ZÌ 9=_|YC~O)~@Lw-Zbϝjzʵ<4OQ6v||Ӝo^Ȱ'֯xa Q^y˯qsGxb:6ny2@ Rθz coxa ow??FTd$Tx\fq|=#ZL 'J|gAմ>`SZej6J5E# a088&,IdJX2ۤ5ZMĺ1Y2"uӛI=65'TY4.8B1qbjC\q8+~xʢgU,aSUZoI"ZBx&&xTTai@*RbA$I,p%M#i ,Q1MQ*4 &5W:C:LIAxд2ED䧰عC0i6>(NJǟ(L@*(#0%7Y4n(36>V#qceDPCd3ͮ_TeT)S}"zkA-WmnB RWæ!uIH}JJ%*+f̊^U|pj97֟_ﱶqɟCNN=?rav />Ucjqk=:6c1r:9'->џwu|.dpz9ڥdF1WB/5N SHż\sw` 0']˛<>{\q:l6xWq׍PuZfC\[',[;5N s 'G%׾G?07%BAST⫘ΐyn*f##]lo $x,(2O<MmW62Wx$UȒ5+n>]bODeF`Z3|iNF6XD]%mS+CQRe IDATo DZEF $L. $Nx[2)bְh*&Wc ZYi32 =bY2)vڗ i]} ꫮǫW yy/ʩ-ddYnuNMCFΰQMo m0EP5^"+\BV~STpJjx#,+5~C X2΍VɪN&!xbRCaJZŨ8,XBFe4C5%R-HbAWpF[O)a%ǢRU¼I1[Kp%B%2AY[ i% :k3O\mv~++9ut?3Z'`t<%?ջp፛>?:ً#.L&S69<٧{|H lC)z"C~do|B΋bxZ0ZϹ6t\>ũgm2dq?BKA2t<ꔯm^e-r:iy{kAd{v6(_c.}?G)"s&1c[U4ȺŬY ҉К "Zj.۴aYI2ɮ5ɔ ".euJSKMƻHWML3'H&nfr%d͢X]R6'a5+sCMj cIn[:Nh&P-DX;A.5MqbLX+[1֬\{МKͲ Y!q`"۫IgK4dFCYcZP )K"B6XBJ %#u EJ<=6mS=QˤʷTc48׬J͜%.LiRjpSAS\ZdY FVY**)*p`Fe<^m$p|? ! 7*:0\]!ym̏A~+;~MC<3?Șg`kcK4GyrFduxo _}vopasw޾#7s+x7g h0!ƏY{efgb֘F ܹC(`:c21͋ah;K B'<>y ;F*9Ѐm>+oGM8{m.ol2>&7n~_''60Xr>|[-Ytt/iW^ݎc0!7Qӧ\_ ;P 6 ΰ@sRKԗ>^kF ZDcV[{ Lz0,F6U@u!ƔI4}jtm"-t 1HGe%LN2uDUI6LW,]F]bS+u EX^8_F# kjOKbiVRabY T@/[TQ|_{ !I1jjY0ID .⋖r84Ms刻fB*5Iue%;7KSJ> )5RJRL^]3E-Vm= ħC:yNu)0mh$GFS=JbҕD&z L@XD9D) O {W]ڦG0*fxfF) (9QK 2K`̵՜1a#B9q̺}W}ޗe_{:h:,븾ZZVl"u eb-eܙ[}x9=_kp?Y|.ZzKw)N9z԰TڎdGOYtȳ6ody(gtz9Cच0*+3lz( t7Xz=+şClÓ9 û\?>ώxvs_b-s\tr#>,r -yqr{ʯ>zv[s=S;[|s+?f0;l_0 x!BAJB(zQtlʣ.G jզI It M pVخ%\j=$P=bbCL8r"\ 7 h2kN1 r24Yi;5 w,0 9Lp-_[&-D6: 6eי=L9j3Z pFVg`WN{TCWWEaV+MDZ5&V spV:4VR1KDUAb,kU ~#k ER(5i% T u -h T9ۜT iWlSSRV+FX,q61ӥP4*D ) L-L`$ùac,s}[쑑[UVeUݳv㱍dl$%B,@Fd^XO3==ez3c_zs~q}EUx06DR("3^w.)+Gv5 Ri2P5{(V$J'hm!3<̚@tM]t_Gݹۍk>9h[IץrKz{ QoiI,uf),oؔeY}x.?麌%\o>cVzkܺqOxr1: Lpu2G#Jӽ78uO]8bGW|6;qz 6r2}*o{}kF?Y`` KIoڤ2%~xȭIV !D,ljj۸|ҫm|<ٲ1) s|LZP1m r Z㐎ErqifBSi\]h3m2҄y\u*̀Q, I>c_OhjinQ8M’5`A [KUhn!Sg?,15> a&bfm.VU *ym"cI9;B~QR17*89D}lbV<3خ`S* : YV1 4m.M$Zvi7L->EJ2+q~n͗6KggiB85dj(ԤT`[u&uAK! ʣQM}d.ɱRD`!f[c0Nb~4 jͰd*8eUhbNJf.?>>"|;Pcѽ2vsLA#4&L ޣDV0b])+:^b2gE|˃J|s\ {Fϴ2U&+~lv1;2;L7MSF'{0tZݤs|Fmgp)CM謭WTB)ۡVC66VM |/~_h'|[ݥwkÏAsX`/>>xKƆY}65:'C:*T͐ldPo>`_XlЙ*Ǔ{*Wl_C~OasE蒚 G A֔fՖ)isQ[0Oc֓[b@ܤ.6#jqSZ=¬ĪRg1v2gI{ aA-fQ51۷6mF"f\j晭.6 rBk2s7OEPh!r d)v^#A &"{1 F5hK&C :x -m`rTE[[Y%i\EEy#i~ x%4#L R R5&DSWI!?Ɵ1?mἷY OQ{Zh J5 qWZS&!^#Aϡ9 4?UHE*4,pF S1*n$v:THE`L@&NSyRCXf6Xx0ׯtI)O!*d S*bvS|ϫ™4$OCr]2ͪrLc{;z 67ױ4'g)n:bu1u[WoRsXK,UVdtCzE:̪.rʍ]fk\L~:kɳv Vv_51?S(>Y:˳32Wx<<M&OK^xLyqkOKvW7989k>qݫwσ#t*ⷷw#w2K}t4bVcPm ccMG^&>84c4>J4[OLeBfۉ[- g]w H[b%`2y$ha gR!R֪WM@. B$RmV7iXzqң1[62}A5!SؽtW8 >(u\ M0˅ˊGře,o eJdx/?u||/sUd|:{ :[\魲jjɃ|?2;}F̲G;rF'0 ͌š+&&Ӽ|6{Cc[ ^ڤB>5LG{g2޾W7VÏ rk[+Ȉa4?c뫼g;>oSV|}NkNC?Ony Kd9cI13:́&7}i$IGPO3oFHNRsfl"ޙ_ h&0@VӔ ;7*RZs岙3 %2ި٢Qe4 ViێVu.lҳLŭZ"( ^z3=*)?*81q$ZZ,hf-sm, 9ԍ"#.AKhYB]:L0֝~9;RIh4m,Le"[)Vu,U6JQ/JVӖZH4N=V)5%g٘@müЈÉykvP+Cs4Cŏ=0!FôAh#q$(B?$kk59XK({PPbһ*ŝ*u:ml8 VsNtϕIgg]l"RGLo| ߽{|CcoG_>{aWwtF'eWh@>3^pu̔x*_/b/`Ql[ךt14ZV2l֔/hM) cׅE,xK Ђ6f>*}Lo-4 ˍl܎A笰PցP͜\A X/:tƄ&B!9-(gi?#/ IA jd|5X&GHU֣i(,#p3v>െ㺎l5nsf0;lU4G!LWg dZ=x|jJF&Dsdsc e. J7E9:=az>p|<|=R4MYxF(ӫJ5%ݫ?Za[7 ),tO2`r]j흞W[{mr.y{䛿˳  5=O:|vL.ӊTLV eCڛõBU{—wy0_o|cq]y͆rfj8G: NxeuG#>~޽go|?-~lg脿݇wx]>~WyTVQkY/0Yq˭5__>2mUjRWKP'-kD5Flbi@BęIAU sX@ӂlD&%B8"%g1t2oP/01irAP- Af6w>P*Dњ`cFI; m IDATKI\@+_Ha.]0 peS\z*f6%-| Fa QQŻ5&Eԑ? BqfQ`e .J XN7egbXbhQf$ èjQ3YևL419 #pېCvAM>0G`.fN/9!5-臘,:Y!n3Xk*?cRpN@r0T1|zN>'蜜ӝC.ƀ >sಔ_Cڷ/+t0h+UtM.^ޠ/%\t۟7ܨR?~o~+ҁט O8x8|Lg} 7t,~)jX4S7S+?{w|Ïȇp|ӟ1:/\c ;{7׹ڿW@G_gO؛~@~ސ9ag̀ )+WxY@yv7QmC^^Xuj?ϼ7Ii(&M@;tÊtֻ#utNW6RX,L#$":by5EBoYbBG%ژ\# `[27Qܔ$\H`_#k(Wmҹ{ќn Z.2=߉+nUsq4/4WM@+U#If%v5*fI82,Lk8J7FbUkk $,e.;րc5`4Ai%&^] #n5udKY$`19;2Fdl,>mQIj]Y%&}\mkk̟c.nQ[RMW51pjpq3gĖ2g)4$ݏQ@bTQhMFԄA;3JNhIl8xB%dKn;X[`pQuCA?Ou5 x{G,r A,NTQOgcCr[75j [ljb4yq(]~)%e9VP.aZΗIc~48}Ѭ 3]`n汚3FFsvW 6EE};l籟sruuG?x*/yo2\e =ϰ2aS,>u(c&j낦!Zq8f\lf ^KLf-oq"z^ŗ4tJzz=GVTs 6ճMܟQ;J&2AjXӉ[>SiM  g]$_Ie Wln`Tk!Hԅ0=Lmεw`v4Ǒ]*|9uk"HҨ@#w:[>ҊMີ,Dӎ B1B.(u4ju>c4C| \BAs/&5s#K1FƤٶ}9б5ېE-* x2GH? Y qOry"@%v9,id9A֦\i1TG'yf.E\YoƋi)G#̂Y`p>R';UTN~ϫ:5.NQfJ0ō)9 Rhk/ ]L:PIx&, }+j1+?T5$[CMN 2h΍WJ4iNjb `P9+s6>Ɵ-}\^^33&3܉RMD{۹I{&ϟ Nq3'*O` {EJT_:1r};4>}xsVoll~]_g.j&P5:FX/9Mלqs{LJVyTnzv'_}xkV1JNte 7ln-:?r}{]Ú\s3+7Qc7}%:Fk`LĈb # Y*:45K#j`RLIgi+>jCNr.rR߰dmšf7h;bv!3*m&u#l`VfRc T,X^z T(  ת4jiRKޜyLrB=. KZ\ȭ[2Ɠ@acӳ =隆B]&j,qPXmx\NDFk0qPK5%W&%&:e,*cE#a) #qrs IR6N./hLlSE{=w9%0 ITBcM^Q[ ݮl귱][]4ctrltD99E|!j@kTXɰ!ɩjٱg<3L(됙JXOnsMv xmbB B@+Ϟ2;;w>f7XM} 66{J]cp8p}$Eۍ'L)^K{ |`?x +|E`wsGOɲ+ll'<l+k^G}W6^[4Ux!-C^~ο>x V ?vApM5T @٘1x^Vgy./쀇2;lrRV#Lg|`t+|au6N5{{ V?o6v9>>Kd87/?<(Hvj&x+nA+{9u jbB=^ZVTxDFUS ˕\TehRtfuYXA'211a"-Ġ6i3 P#PCec6ImV¨2*ǤqL5gXN&am(5goyJ  IƉQWȞ_tvAQ0J NNvHgmlQZixxrPXOysAنg ky`y<<~ (2,8bmbn#൚Hŷ,J*l:oܲڈćǖ (t0M(OD)96($uqjū '[t6T5j9!SЌ!ׄx</&4נ,mXT:686x`!0geE1._@VW!YdILvNȅ"6\Z.%\ o~s6V6Wo]+?ѥ xnF?xF۷q-WM]`M~'v)pNWߢwSλQà\N'sPB8 ]x]a<{:e[d WbuxG|?꛼G;[g^`#*p;\2n0郯su^BmwB3Z &`a^ܐ6M,δ搅` lJTG&!m\1bm5#bc&1P1I1e)}ƨ*8 8:L|IcTqʸƍe-ox4d5VK uF;fZ XX5VESD&QMYh,6w\mŢ22aa8O,Ȣz3Noڶ'QL Ψ)kkzg=}۰orv|q Wq&gܤ!ox K;F k M͋k|wxD'yvlG lf(g}&NUx!6S+ңɳ#vl!eÓiCu6n}Gc~\qW~sk U>5  .ͼ1*"u b6bh4Y$$Ekv> CF,LlRŵ`[SmNja8NkYqR6GuqsR42ir#kև@R q0. },6~_zҌ9:˛wxOӀU{ssGȧ BqfO e)~JyT@bG[HihȒzyEuzbBRk-pW nbR}'4L a51\zP=e=f7X5 򤭎&@+[g[4k+i iE:vL.k~;⺾d/vgV;Q2Q]^|=7teF}}177ܩa8g5 72:GÚk}Gd儭c6*Ob9;ܿS>]GKxk_[LWm"J` x.4r fHE>jSAS7i6m5 GuL KdSiMj f0,q^:ghq89 'U˹0Z*"%*jĦ8޶T mnSǢ~ᴙWC,oC$1Kښ9XV.T0Ϩm* xMyX#+.ȅq16+zjU%AHcq%w&PXO֬kyfQUL.2;W ݆NjV3ɢ6J:V,L$FⅶB%^RH3领Ŷ@cbMOFtZ0H!CLl& 0+Ȱ2#JJQ)ƣ!&@9AT4c v [P\"CGY Y?jhfY(087b>Ť[Fi$o`2-HE%N]5# 'L#3)lB͒%C mG4;۶<]KyJ &U?{CKN^?K~+o 4~ֶwԎfmJ{|8 lvVqSDZa)aZ[yِ95lFc{֯t(`:uCq9>q)݃Ggx|pu vy]̄LN/cv),7 bfţ}:M?Q6cec?fW\w{Lc뻛&crQј^g;?GZdJY^x;̮Oޥ38o5!g{15$ FΝ"DcfMjr&5KQi1jЉc|CfYVj e+cA U7p8pfy>H;1Y-T //0n[9j!z\IŵKȜݛk9h .UH,UD-jZث$\s(i[!z$mkr>o^Z.=k6@Xm .e>`4@Bbn5o:6,ć}>jऄen^\Y[:Y aVyyо'L%> 룟d{t.&s]XyIy, /T,Ř3zyA^K{{"sI;* 3ߺۡ჏Y8OOrm1lmtRPX[W8 9QV=BP[J +<{?@_"P_N l׿Ot>#Y!4K jYs UTx@兾c`BN2>8e< {S44ca&QH-:mhMMWJ Cc2(mɧ[+%)KM,$KZ?1-뒤hQÞZ[F{aҟe&P:,pYE+4`C5) :਽P, QKɊW\V\6\vkvް*z0B!548e VLl̴eM0mk#Z#C.X5 x4YLoP"M1 Yp-Ku-S:5:ṚOf A\61iBBztQ0&sֻ%ܠf`&Dihx[b(o0]Ciu 8`"b  4I `cy& Jx#xg.P!x?;gSl(gd^n_vW42&pGŋH~vb.ЭO!%ˠDmPJABkژh x0Sn޽E`G{TpWV9DR Gl\_Ϲ~}jPU%'ɨˆlgem\|[&d}wΉoCM]]U=9AAa0^^=\፽-@hC[DSb7n3I ~e-qC?WV&Mky4j~F@@MMmKZ#guf֐yl1 3-xTմG]`-Kvrk{m^vK,=ilj(=UFNDZNS.˛GZ:PcƄ D$&;]_Ē,YAInu]Q62,f`qLjt1Z1b%ØEF@js\ȖՆOś;\߽#xcWwa;_mQq!V\py~Bպw?kEFǚP\bZ2S֍T,xb$B K^jJ`FyU?mxt;yN UKs/OO蚥i}W #ցD?-*tClƴw;ґu6)>f8\ 7nrhB ZlJA`57 B9?9eǵd~6&|C¹ AS{=x{لn A2k6>snndLNfZSpή K??j׭˂'\d=}^z/|.?ш{ϗ|{~ o|Sk_F`~ 6{s͏@ZW;2M N*vеJN&$MFŢD"J!~Hd0ov]ΫbG^$:P[76\4cmK9fSn)%gFl?-x8,oo;> ;~V k[V .TGc.yw>w(6{0 Y)vxq -켦jFǧC'y5dGwn+&\cc_-?7-VxOv;wuyG30 xZBr>_,9nbQRgl+ggl2v:-N&\̎.7wn` fZrg\@2npxx|V!/t[䲿|6t/߽%{G#:gsR K"H2RSOwT)-.Bú˧ >yǏN;y歓o'6-9Q"xкs:ZHJ5 ~X"+VM|&XX52TbVd\Ko+sԤKXTtŢ5,ѲaE > < ? ~f_zYU&lQyYƯޖ:~cŐjd`)6$SYS=1§gkMUKZ$w3g!sHn,.SUFӣQΒ 6ᰚk|o$ֈ'Hf[ hI+EבuY`Dr0:Æ CN@Sj$)T| w7Y`K*%4A2ʼn`g11]RM'tN+]q-M}],0wJ }\gew9)x<Y?Uǫ3ljkn&ϘhѦJ8r 2(2$3Ru,z¢ɶM&{,G Z<}͸43bW CbxA]ɏ>Y^/w^$d .2f-꺦{J2l 8|dQV;! = J|5`9whnA=[ço\Gq{ٽ==|T&;oOz_Woã9yhG%ww~w7y/XAqq/_b29S 6'ÂOG㌳y|F.q:Lэ2Ph;l5N6N{TdĔUbW@5%'vv]]=]t5HzZڊ4 K5PIVUOg#rӴd(aW +v3 ]Y/i `Ц Z !dbɇka@D,/2֮'TAmRl`i1Zh9MyBj:.(lp8V>*ւ뽒 noNчkm hɪSUhC#XHdF'鸫Q7rUiꐞ6JPDVUCW9[t'%a\:HUc}:oӦp21!R"koK<{+B]bBi:d) [QM##**&(6K.)65e1=? KǗ>:3lm"y<>MxR;&2&_S[S*Y?|p9})m 2נ@Ӡ+^ǤѬI++ 2|D_ Bk;T!O3O0-[L1uIQc_9? VC2f3٧|+xz|w_†^渕33L96U]\PKښ3 ^&1& 1-Xý67XԖW_bt9d*=5<^flH>7W1˖#6} 'W5r֛~M+oN0EN1؄ф|H~;d̙lnq{,g9ʪd>/q-_{.8Nt8?>;">8G|;hfN׮roS^Cmm}`½-=< $ :_ 0|w6Go d`.sˣxx2tɥpq:g,B0dF, WqB6jUQA4u1؄bB@U t"4xm4H(Y0+6M erZU _Yw IDATeK|$'֔.D8{5Gu9npwyF4I*_U Ll$~ ]hCmh&Id&ǸQwXRi80br4 >@C.oH&(=tomwaQg / >%fʍVzFsxHIK꺢J|B&zߔwbnAּ;IB]*xTAA!A2A:oÍQ'/<[_:ܽ [騚Q<M[5W4+O>Yws>K*lRsOת&5W8q¢ğSw7d{pɌ' ؼ{FӇXxµlN{?= {0CZݦe,"7lZs|yOy?,rǯm-9'TAcƺTE/?88k8|k?n߾d\wwQqG}{i ?=ensǯ޷çOyܠ}'ggq|t/2 >9/7_:gpMOG#өcb9úqynk=zQeFCl Qn4Ȟ\MY)1Y8@6sRuV#FPHƸu%v 7kt;$*դx/YJ1[Zg#)X{Vw8)\k]k/B#TUX2-"8좎Y+fٯdzՊFvRK &DVd7`hMI&|f7UYʶ1cZbu!moR273 ,xZ>IVxޫޭ=([Vܨ8-Bn#oˋQ1鸬d :$Bw XI%iaM+t4Mq̢ 3AhnVSQkħ?%$3A%&ij7DG2ؾ)H!L3~`086!ޒ)*ȉYR-'F.]uӇK%ټļ2G,֜|7[sjRF<yr?GtӫJg}4ΥxIJ-7  ʪfz|};LշȞ/pFUgdaTLsuϹ!m)veN[fΦkqc7瓃S/ npy0dś{t@{0d{W\|dčNQ`(;7rw?ƍ7Q0P!`+7<_ #4c4wjG629y$`L!`;Bp`M3@eƉ,:`$9E]0M2+%+4w\MOE0Ox܀ȚCRQdFrmf(Y(!@u)^.Y5+6,w k%./kP4fn5Fj2`zP,PJ`"sQ9%"5B|>WTFj갢<.50db.DƆȩS[@}1Ԓ6!DlvGYUc.=Nؚ!{lk(R\q'r1K&ld5 zv?pWQMk\fYINpm+#[ dT >`2~T>"iY F?񵲱q!YI-mѻMrAƣ!L'XE9a^./1?g~Vq*pk6l㍽mmtɍ9Ŵ9Enxsv߹ <@ߤ a 56T rJe;9'cVdX/ޓ/fC6ovX HYs} Ə9|xIavqR;sK|ldx}a|r֍_b'x3:~ލ=or_ ȿébUQ 0B \ mmԘe,XNN2%(TAYUT/kfJ,zІEVlXLXZā 1H2 O ZKptqg*TG jbVĺ^m-#Amo^&H-Rd&4,#;ҿ#Q NѰXem֠5$W6QR7Bdn5տɕԈ5Ӡ@J|bf*jNR[rT6E}+'`3mځ:+5a1ǩ!'KrLa_Ӧ#f6e^ZM0C%!ts69յՐ?{ݷqʀTXm>kZ㹤9}MSRV7佱;()?U( 6].8@M<}ޥm1/Ov6\+lpG),fŢd1(gAQW'QK̹9/v K0xFp"Sla̪~mL7X6wV2f՜ ƀWO6,Ɨܿ}93.OrГc Jw+kg[;Pq(1sC6 accW_lԆ׾ /]Vo}<{ {W_# 67"UtYN<5o˲R댛4HW39>yt7$m=g>]썞) R`5,+ 52#?!=ŚfA.u/~e.yy0>;d2x]E;g<2-՜  Z}B\5mzli5\o%{w9}WZ|V✣z:`%-\Q#r^Wd]\@c;,p6*k2hY荎çGܿB)aEc?r6K.ιqhmv!0tovr+tY[L{ㄝ;= yp˗*'c|ۛ-LJ\\8 oG1a-.ʫ|ۤ\j *W;i"ioZk]IW%ќdwI%iѪpM[X!2"Eb T * PRy.bEd$f)eUXEE9rcPJL~nugc~BǏU猬dsJu$cUWqafof\ڠGJčq od~+"DGN#өs A砑MPQ+ԦG3!K&ٚ eB @`9jXdBB)I!ԫ׏,`EE(PI8 ㉰?'UΝ9Wmu3Ц:%@U7)A]4oj@|TDamj8$'xH I:xb8CiiXAWN΋x6oR.uJX7e6Ԛbw>$.s/)ٔ#>V[YaDǮ"e÷>~Hg8u,`*Y [?Usy)"gq96tN􌼰xTL1k9,f 2uYŝ]Ciwˣ 2ŏl >-1r~p6RZ=z2"3sSϧ1vA 5" B=c4a:0Y(=&Oy5~ts91PzlmuKjp;m=䣏yy&wNy,6.f|䈗n`xSޢPcbM5RNhpf\| #ĺ_L2UyA@Шk4 Sդ"m ]D#t1iA s LYH$Xnyٳa4-[|+ kfy_]OK]ba*|Vxuu5JIFFҘX;m}e]V]:D[` 3sTg1KK'(cTgG,Te2966=&"JXIBE1c` &1ъJ D%)ؚ#YdHю5:K[ҷSl _yʭfd/[P2 ks[G:;kYJkR+b e<I*֛g!4wY:TlfXl41Mc&ЭfzV5wbŭ`KFoM/%֘1#gsGKtm7cFU2MX6":98g,1göhۜOfcq2bazH1gyc"W{![ׯq|:ŭ^'{k}o_e&$?-mqn ؀)U$f|&*@X,P3Ô`c-i0`rP f 0{1w{ &]G.mp`;Z`cTi%K@2Fl /sef0ԸM65Wǖ=dVk~&WˋX4&HkOMeA@Ytu$w_[ГS&9hSvu=Q  - l t,@ FMJL@*0K 1ڥ|:H˲`RvfX11Rk!PPcQeLfcP|˲`Tf,%xe!)b>;lu,Re 0e' >Ikf0a&HfIVc$H ~]?uKvg$ƛi\k,.9pN ֣6&ن.cDHMj$HdLd8,UYSƓ89S‰&=d#&RIY4xH\4YW6C',޷M#YY9"*L5 %7?&=zl[ֱamђ S ~$({]6v(Mͬ`V^P.h1-븈T`M&TG'<0ckl6nܺb,9E飏隊1{`;ђaV"elyeoSEA1)e-0!#l-kx‚GAmb/)שGCˍ/~w.=6zT2gZ48<1o\sxᦞ|B=gm T* #/tY$/6-kQF2q5O}խ3$7vKq+YkZmj-SI/Լj>M}sSrKv@woTKL+/3UE{~\">|{?Wߤz􄳶gjn3J'@I!㚊-Ҽ[oH݆ / 0u- 7f;l9dv~#3=e IDATw)% "g#N/9?eH@'s>y"\19g7Yw=%YEPV?Ͼ_ .Ef›S @O(lsVVMIR]fd "7[s;l YN01_ˮļeܐnbDf?V5ڧ g';3M| Fh$S/\{#RpAC:"Z\uHƱDTv+lb+ݿI.5#̍07ܘ䧹#DtE0Mna`R>yxL0P&TSU$#JKbHç{4ɫՠ5U>fgw|nDz"9nZ|*^j9{PHsyZPJ+H+Z,.' H441i״ݎB2A,!dc+RR,RL8s$lnIMiSY"v;>O0|LW>R͗F9S)+Q)xonwX9dN+:0p{_Ӓpï?`od3zs`j]gDQqPQwwq.ƌM=WD!VBJULNzLeuq_l[ܝc4qJ50y.,nbgHw݊X; 1ƧLc׈[.eFhhMbNb|b oƏIES '3?Gq'4͙5 ~۳ L &lY^ W[NK1Mq˟y3,|öѻD3rӟg7s>|[7u?MeiB$;1kp7]E=pwqwtB"0V4t2Ixmu[Jt(nUnvdr+EQ}v/l/G{ՖECb8A-rBZ4{בMi_;xӕX}ldIB}ۨYc9 r )N3*ͬ ݢBGa"PH2ғ $"ٌ9$v}v@$*)-;a*"x.4ؒdJ##RZhRZeYCMH$2{*4-fd^o<|o,2{MMnrH*rhR@6?G}E0lKC,%y3:Q#{ىȰJ9X)V+Bi):s:\)l6 `w*:va)vonlo1Qx&zK-P3*yR$s//̋~Okp;Fb%Zj)>DI$S?/w1]/{D6Ծ7az*4GnaR{Ip5lJؽ$UeV5]uW5z6[ӭ/]aTMu;`Kq1:y1[gw~ z YQkI6XA”QF{hun")RϠ`\. @$X_T屪3T nٗBs.`w(pnB(Gnȍb9 I)w$?#YMkS~nxR:nф"i?>GAa_ҡȕu589 ,E e 3%*DǠTgpns - @9蔔z6y]Ye]N+dl;N:8gb")I)ћң8.CUW._G~W筰12Q7 ZIǀ$m]}4e@ HHEQ& saQ=yCvBkyلJ"1@3RT\{YN,IZ`hȉ09ij%6b q=Rx:N4SYPmjYZOzW/^cz&NN"̳6JHas~M}sSQy3e_^gjt^'l^yo]]qWl~DtBpF_QbƟk?1q\SB5IB:[r+gzzj8DQ嚧5?ܜ &0%-WrrkyxE}>zDwpeLm-&k &SdCGK[pS%cj|Q5mkjMs6cW:63 u,vO/ $hI6c~s5/^0vS&Մn.^RM֨-oOL&)kܜq|;Wk[1}[1<b<9Ï>=:D%Jaѐ`,0=Q:e$]ܭug;ASpbhF$"[xV:RYu-{ݜ^WW|ZGciϪ."ǝ432Jjkq29b< I_p$SL>C G2n3xE;(IIbHUrl(^}j/[}VY星bɄ_acKIsI.C"JQ|#$[~;ێ$uHLTsQZ cX\˾*,cUY'܁V|:):, 0Y)̄[^(ǯ 8)9hLg"m[b*x}!;BLrEISRbruIb w7L E`)n7IH6Z&ճ-s\g+=ʘvf2f3B\bu\~IۖbMVC2r5z~zFێ#%ďwkd4fctQc%K~k.w?;e(>\VT7*.m'L';\k+Rs5q>'V1@SOx)}X1-ݎ*0iXIϾtjԫ%oa K!؂7E->ԷHz )&k@+=&/KW1&ڞBNu7H8e8$ 0|9*2e=*Rfu?h|Kh4d9u2l>B VgZ*ik%ka&rM-v)]W"B1A$">{)_?>LkNjؕ+b)@rB LR9Aؾ H'tѼO=nDpޢ lljr2w#fg|H*Qu❷ص;^iMQW5 *UG гsBѐ.1QEQS +8MtP:FO$TOٙ2wk4vՈی'˧zΤOedܞ2'294tg7r-Vƨ\r:~s6_o>g$b{!.RD3:jت!!Nf1 _ !iG]R5AkQ!w\qZ쯰G50PH6rGJ`0ߎsj{R !v]"v;|m.ua_T׸0TphACS"K|F\-Y-//N9ͨ&-/'3.{^^yΜzInYLy.ϞzFHO!xU%jŻRha9%II2sOA}hō<(ErH,?pAx.uts8QH$9O5hcՉ@Gv!df/5^'T~'D{:RdDÂ>&BJx9B+F!q)qMUW9,y:/SHΓ賋FtF}se4T bqڪS\ 5|w}{QcWLE9C<;$}y.TjiB"} $n('>Դ;vQ޻J3pyjˮMݒW|x񂧧Sr{|Yî6cZ;ܾlÒ^0PE'9&AGf֗t/V3RF5ho;t1o;.L-N풱uMh$]! czU%556nITnJ[zyh`槼xbH:6c:Ư7&ځ3V/^c)'sVl_* ^>~&{tSzE[;B{ ՍɝF\7 ֎ϤIJxBɵTܬc96Q4bc =r\ " "H J;JA_:>ۥE\z'O>]DP{v]?g] hqmD"OM (hX[y}a6ܻtG|~]=E\^Adc~=Zn fSǚ[1Li/KJ#y*4FIS` !"ey:t(b!d*1C!EI5a2V =X_yҕca0P΍.xjNn mj02«Rk֎:Hc7oCb0P3tn65K7u.S@ ͡TfLX=z $eZ^uZ}lJ*!U1 `]/5^6D2k)x-,JbT; X)~Gz>ڎF+j $uD%pbP>k7↓7-EcdŔd8_^^_ϾMsnF } ÉOPYIIFJ[0RoZTq#4hb%hSphxh8u BxK'l눏cX2a}JnΨ9cFbHNy|{o[('ÚsCkK_1a\OZ1dZ GL#Z'5;W߮Ӗ8U7->cmxJHiS<+EB]3~يO>?_g=[oq} 7?`qcɃ1=\>~q u ;>-/??/G[~l_[ "p IDATa`:˽?|' {B:HNO,]ڣ"T=nؕvo'39tV3[9a7Z2 OuBp 6<ASt>k#np!l맽2i@Dɑw>=Jj!_JĢBN~geC[:#%8F9`Zaӧ7yo3{C_qƋ]wGWnS8.*B/ |(@ׁ1@Dk9fx٢'\ST3àHEGPŞڶ`A7vUMsD\Z!1fԕWI&GO.or۞/lxg>a*Girױ>ei}&6 RkA;,%D# t| %ƹqN.lؖ#RgDY- vZp]M4}Z$It˴fꃷD8*!g/mô)U9J8&z$Wt:!ޏ=`FiNa>'V =[ * Fƽ)uonͦ{z]&ׯù8= z4}qy,승GÇ.We1>tLRR hCU u&%Ӳ i:FF4wj/...tB߮9Wg^ni?WWl|Gҳ6hBzƜq%raÍfڞkstJ =rel@*AeE%`DJ`itGX>ChSb;(bP>1&ز6tF_08W -9vƱ F\}_NNxp͊ix ޾sm|wS7g{y9O>{T| ~=~W<Ǽ_K|w~̃r%Y-ԂeWz(ΘtA#jbb{1a ]b0fў0t(|)y1.,ZF@A b1k5>Edbt2hٵL3/rK;$)Z((#֎8h|±h<x1TEzJkC%qΕ`v$({HyP{ qqR y'uJ[~G39zB({-t-|vt0%D&h| 5hBI),h(ޅBlgyQBeK(8Ms\9VՊBi"&!DKhX]^xW٘[ qj:|/HXrXt$'octԈ{Pft@>B(TI礲iȦ8Zq^ҵK:wp, w$Nم?Ou BZ} ?p',WՌ:eY"\S8+(  n)ʅЩm,0mOz.U~|iݹO5giqYoX֐G;L1kIJ?d 9$9o 7bx;`wN)gzГ b:0˩6Kg>y;+;hR5DCs@/wY}+o1{w?H7pSS=wJ5YG hȝ]_FDlӒdwwfߙ 7j792fDs&uBs`F,k 6-;sF.L q%K/+5?g 皤\2˓ʑm4uRcRt0F %ӢG"^rđ" DŽ4(U] 4z$8Q K_"钔.!6$ZD2y2oqMH+3! D|$r349W!:W~x'_w+~n32&/#I!녤,L>F3 H찴BFaqL$X-nh5~Zᚚ]d/YH턑TABWľbǔ/R}/ m_C \`Z} ԎF3C>> /ZK*B"8QF"xEv%RW5;|$Fn=u, |IY= ZRѠ͔3ȳxȹ~apxY)u7›ۛ{;>\bpP/9Hug&Ch\F|Y63KڙYAsB5}~՚*(nqX2,mucD3I>ut#-:3*w5 `!_?O'KZlgw/,ǿ&_ '.\$tFp+cg &l:kqO-|M)Dw~\Bk`ha H!A]!wwcB1JWdX K90?(K 1ގfN"ùܱut~3ASc#Uy&xR퉍'6MtBДaR+H!Nwdص!@ o9%MK9q̬D禢_4@YƠ3,α kHk+YsƠMה6* MLpцRik g4bX n"U6mYyz>R;wGʭ&Rɚ9,"1V&Л[&U=G"AI:u`}ΐ 7Ipށ'XCXn(1K |vZbBcN<)TPOGa}=ny{bQE?$:v0)p#e{xs{S))vy4U^os}+>iK;)ĩ(yVT||ϙ]\RSZIfvqKra l0q5b*8]Jf-K1wjGb#DV~6l%9$=k ԮE~KObMa[eKq'un/UQ0pZzb01KXsјMuÞU4~#H֓1B|]J1A&yI#[TwxwJzznܼ`=h3!FeW~WyKmܺ?a2,xd½ɂS}gƇ?Xs6|n":Nfixy >zP~/[s}iNjoCy6}wT$,Xbdi?ֳ2VMZFe쭤,!pfŠw.Jq'CT,D׵mV;dQm6дKTh6%bH1dW#:)JP =+ECpf! * 7Д*}H +я<|193,lBmp6G K*b,X3MEoTAr$EMƈ36 \i/ʁNmxr0' Wo]Ǘ2H1!1RGQјRK=ߢ~JO+1I~J1{,M;¢ǦBu.#]WdH INqo"~I蠞D!3sc lҚu\wΘcfh. 1CW#*E,Nn:a<#^^l`c'U&TA|6cH8T-~cv8馪ՉALɄmm:~0؀a70`CCbSPn6ꜪM瞴 3 ?̵٧نX7{NkoW|-iJbTQRBCZ"W+J_A?R9T:=N$Ě-HL]8rlBɝMJ;Ifx|\~O-8_Hy l֖t2fJ{2)'0{0z`N#Z$7M1?MbHjW{9xs<9{7>9~YMEۋ3vhULESon`PK^a`k3* Q4vT9\CIݖePMڅb**ZP<(av0?]P嗐;Hhs4gncfog{>{N+W/oȾ}ۛGg/Ռ>ynOX#6*1FNZrųsgN_{8Zi53#)^>;-__6~_ Id$ ި`5c;m-de1Wh V^ʘ!b7~yyW4Ooh^-îzvDPl 1R$4Y>MġUǻK:^ܱ]GMv"}ϻ Qp&g-I \݋r6!GBNI1К!`ݎ@s30꘿왝oо/:sa6CS9WsuZ0E2K03Ι ?t7Ղ0ӬDLkL!'S&K ;@k[iqfC)Sd"L!*aJr)3]mYH< ?!lDz dDF5=(j )q#[s4eQLf\M,ɳmk[Rկ~cE9?t^9rPD HR瓲E{Br,Yhdgn愮HOЋ1%Fr:cS#'K*HoKdEc. gkN!hŔ2*f8zzӡ]GجS.R غt>w s,{:nn`?Y+v,fmwosx"ˊ9L]|^Ux]wwh){׏w쬷z|жY*c"dcg;'C[W cG'OϙP?t0 nE@XK-fvΠ~Cz6p K~ok{'|'_h`R#*[d.Q>ZONuZ1Vw"QHe'se>T#RmM=[1[β8icI&.IjfKM5G"533Gԧ5Utkmksf|-USϋ7^ӟyo|pg2<{vN g19tȝ?3ISDfRLBuq=ꨯvvŎ@,vdn@`a\1}S9| WВNn5]R>1{Eo4*ǁ}ň.x.2p&2a1sOZ6䣆lH5:rPo<0NOb7o`vD**1T;l:{OEX+X\ia,jqF!nȡ8B |]1cM7=`nVᄋ!{#̰!|ZuLT26=mJT[v82FH!0]0mon"rYiOE;-Bg#LN[ykn3;u50ubg;tл;~yAb41eT:d E![dmWx֛B䦶hH喺99ܼD1zx>Ο{_j6%OTk̾/hrHpۑj=nzM[ Q[Q&+)1`(Jd09.>lL?=N A;4 [dnPcE-zW?b^o[wŲr $' ^xD['+z5CR%T@qyMZ '-I8y͐ECeTdySJ Bzb $[sCLqEBs&kdak[!BThfrgvL$3yj^64 iPr,$#jəsր!g猽cݷ|+^*Ƭ{<>XBQDԁ/pKc)њSt~R5j\+IW$Qx}.t,90 ޖPS"Nq2 eXxYXm\T1ʜX|,h`:mJ譠dF%[U}v=p&pRbesc-6mby ]3]9XtKnxichHԄ55W+_eտ #4#2&pZnN j+&ueXfpjnq'3foΨșCy٠#\oe%kz_&S,;eY2H>6o7c"ԄUO6ijBƑaZf ܣd0CLf!N1N"'*&F*M)닁xA8csnqfliG3PJL=9+-#SKO?^҇<}fh /4dV0b9ða²'9:9?}ɯvI8Q޵UrfnYXuȪ ?DLW2!$$/ww7fڒkˁXɩ|x~Fr|dEҏݿpTaHÅR'ےיfbDӭ.x9֗;L#ScAnĮzŖu3hF-TNMq R !O6 F ELh'>-5{FtD:`X/86!0vI7]a%/AW7 xvAR>94 QH!R5ye\ËN,~ O ni`ЎQ !N%dਤ0oLW(Dj 5T9 ŏKtH8F09s,H>1_SU7YHqfEp~ \&xvi0v6tL&KYOd bp k÷ZY?FK̔)6D3ySTvc|t3EAW!vo?z:9=j|r\ai+ox4XpGzloXg޼9g6Tժ{\>'ɣ#\\2u0 r>c`89J&]_'y|w~k{S2դBwØZg&& r] ݆̀"~ SvNqx7*{S"hvPyr8rڲ e?OB ܏׏YTU©W =X ts9$l ()#c {ass%'V!v}%xvD/S*ρ(w}z7URyd1JRvViv wWŗHp܍,]S2,F֑L&@dJ1#QKJF 44=[ 'X&F--2>yT8lQSʖ1gJlA&sP%h$H&ل<~:|׿Un<ӏC^uި %ɌߒB$iDVGaԐ#$K#kATX<,kbu%Snê#+8Ag 5~{ɼeX[(A<~=9^>6ҖpYo.WYϯycz`OhKҺYFƆT\zNhY3.>8ZN_˗WWkf3O,fF_bkV7#{_<[y? CDl2Tۀ۔ߛٌv,P=N[{Tg>zg%D #i:F'.ffOM T?ɕhic6:BL55esPkF JeM`O~K8l:v^vi{'dBЙ oTpXrpG}Qk!/j¼"*rѦ7ت>nAEA+"{wo0S&-owF 4ے&ZrIfX: 76AM30"ʠy&ʎGL1Onh|;D13dyI.~kx4[P{p.+;(s(CrHJķZUJڄ:PPdSv&`0}Y;腔(67XS+Ee`1]P8˗ӆ _u<~XƧkWܼ'ؾ-ލ[~~wy5?~U^nX0q] =q[×2'*9ޟ[ VT2}vjכWcwW^)޿+_chej~w"hx,)Ā V[?b?ߠzy9 mbiύF'0Lw0qx(d ԓ܀oh>; !-QR)'"%zTSE(D.1Dp=>η{ZGܬnɼvwB[l3ڙ'$EM)4Gr꨼݉:0$W1yUP\S ~m[dcI]k2)̖ǴWazU˽9d)f$ f1tt1sq3֘ZLİ^E*qO  gԾڀZ*V ,[eʘ!2;oHgDcp}}>!8OhgTյbޱ"', tQg}m1lU!ۘil\tA*2G$@H3)Uo0xSJE@=<>-<鬉^N`7cd=7K O +1 cD6gdzxqdc[͹l¼b#Wl$KH)of&;l.71&tzC0G3TUk0l#Ӵ ,^d @0*u\[Jk G3hrz#'Eӈq%S/oop-xl(>Ƃ3c%.5*Ȍ@86#jjrQ;bb`ZpC5;mjr׉t0E30^\PS y+btEFm99;c02n;} aa娍lqMCG%Ϟ<M}5xAη 7gy$^N> igyI?YҗG?_vDU#]vL9OIDp0 ޝՃ@M v"7ʤ͂ST7cxKBN*IVh*ѷ](Ǩua#H(ϭeFíȵEdx[VnS𘦁{'߬hAuUne8<R\ ֯dńGf_w-r\nL*dUjO~Y@$C[Pf&8G,{+ Q$Li9`Lv nQgPWlC2MIu+I (g z0NȚ)1efa],)18)#Z  ]7 ZOg7+6:ȱɈQeH5c ّRF5|Yd a4TɖC TgOI#)!06$RF',dg mT^0knKcI`#o+,MxT$QV9UV/H]5e}pRUw%;4w]Ξ]cek#;,5?zwʕ6u&DLYdxI&p1bW[Z?OPGDIBu-6rKeH>i&NR)I_v:*YɞaCUAS|Aı1%3!Ǒv3`08JWCVCJ .)&fL,4 3Y̔X[)c7P*wR2`,Kڛ:@2~LĻu&BFRLʸ1cĎ۞W0]U7J u"՞mI)X%˂φjj{̔ǾQϖ6:,T9ce@l{Mk%9)Y>)JM RJ a&MsDX;/H4R 0F4 x XPSf->MjZӂfi *440#hġ$GIL"bA3X**j*j-H'؁dU*k˹ɂ$O Ѫ 1QIґ̀TxEMuB fpP522Ɩ$O˜3}xFSGct;BIe J$E#tzcQ *Zb4:."3!?/wٻ+$F^^ ޟѻ(C9/ri"MmS0!|a?r*ڳ҅_91ؠ>g<1X4Dkٚĺmo՜=[h3:n1RE!",bf}&܆@#C%k+Dl$oY8ړk>R"[oi<+p:ǹ?;& :>C!\uxUbi_Hז3~v{La dg1`6zlkbUp 439c~ mjSq3+sp Y7ubXZ7g}˜,HOҊ<$b-'KD.f Um[Q9jf=ϳ[[!l:f9}n;N-7/ ''oG#rfܬqeX]_>8%[lYE=1t=xb{ďoX,oxB*<6y64g5 ̧`ΚW872}=DKO*I2dF ^H&lyz kF'C UTb${p']-by5M8)M⛗,a#P*U6C0\ #ѿ;8;;߯(J?Tr\U,!e#B+F&. 1lC'kb`}:KTң(*Bhmxauj;g1e@l:)﷊ocj\Ոc9k-b f%R9L&Mjv=Mɒb)\ɦL-M#` 0lIRL 5#HhG)NTb"ztb0 Ѷ`ZT86$ K\42)χ ԍk)laKH#$g![7v$8z&01j1 =J vn r,W-zL_Gۇ|ۯX-h?lXpJ=TږYSsѯ%c.lsrsѼ2>z6br`Y]^ӧɃm"f\q>x뇏K7Rw $:*!#J(]X+ %S!ޛ|w g9fJt!" eєJtDJ}(LU%e/^|Oa/}`O{>Kqg cJ@Qū`EYL9wxknB3{-bWw!·0sɆd$P#D+$!RMeM6854 4MY{Fט5í6W7o-(@O`т")EnfwX+8B1Rpt14 ĦSJ| atc CY=qT۹]%kJKu'iD8yYinD7 M:[Y-L6mF4{/a뚏?ύIy+tBMDmM52hb5YYRn 4ѸQOУ" gBM,h+Ǵ l~@S +-k5r!9^t+*<=]P&7_sO}E6yB_4k~OгƜ^[Q5 srޭ9a=0QCsq;%u 98btcלOYMѻ<}~}M}v ^O *!UJBĤ4MKڀɦUGX UR\=qo^ R h2)c)A6v ` _:>Z<qFj0DJ$%L1xEPv @o `tFEVgj$Ez1Xx, "DfqFyVǏɟ7 ^pe #UNE7;^u)R f+s4||F&{VZ k)N# 9Jbዙ\nEHe.~?g;ܐl2%e Pfǁ6dyOr4!!)4j{3;5N;6%84#!F*11 8B̴X\ٖfj@e=!DѪù0c~ t-7e/bόxxt!Ogܽ} V1>E Z13TڳSF"YgT65A":8SlpKIQ;_( y9iý Z堎竖g> mNS@<{2gWu"G[..O4魆KoK/29jxҞs7j<q-bOؿu ˜ѭ9ˇ<Ϲ;2KJ{ " F2(:謡e#-J/ JO*v@jGI%1\$bᣚ-H1]Q],{&uM˖U.rYưC3*C$!D)~/"faOWhڢ7&ޜb;rhS nR.=[ MbU,j(37neI:B@J!7'Jf]0DbH /xp҃92LMs^D]DˆT!/r^b#l\!À7Wh>mlё O@G66k\c%*ż]v D3Zlq&?O5J)IuCn[!@8*KxL26B\nLRB$l*Jiγn|b̓1FנvD{WUbM{ͨdLH*g[ : _w{aJpy/wĚ$CD>ͮTr4`€k'org_!3 L2MPa3Z1zko[OlP?`|1~q 9XMO3S$G_g3&}DcDbaBʸ&̀:0SȾCD-3c6cur &jqɓg6V+͊|9!4sbD@hQ#}qúLFQ3P[#D/)Me =R5e~B{ ]K'ٿŘ9fqx}-5sn,>~|ɷ׀: ӱ<\Vb*]Ǣ5;͟S٬$ԖӿV|E$OZ,1MLMU2H61ɵc4;?6-Wio?x:Z:ԟ/>l^mpK"Љ(\$+)Ν\ṔD! =;ȶ[Ժx0\=3pZc@ :.&C3"h!b7]OZؽ11pcB5hQgQqdEy3MYglm>i Ʌ6+%G+LOK-+ c+D)xKRD"kHL.CрMYٛ;/vHVj3#>V|*ˁWnռq27'K|{+LP,)CҘjmh&rbd6Log$ 7q:KN"1 EX3C6 AH5*VA$Ƶq~欣2XX4n=咡ې0< 7{#|ư4+9،+̣l n%eN=k>+x%;Nf5ע@UugR?2N!VKSV??/zύfDbScN*I7s-ؿIl8}林cHSmaޫݩ0{0@cW 2܉VPjdQXr $SjS6 vcka!u~G;Mw~?9bu O<=E4͘堸eTդ.w^f a a6ZBKL 1%* ]X \S\!Ip&.LF,?GGq|s͆Fdf#"ryzRϸ8^02zO)nd|6秧L+e ~lް8?ݥe;6f5Hڟ1G)Gm7LWsR͠~i'}tbboBC^xwbXM_aL9jOo #0$EqqeJ;9xt8]ѩV$*&bVaaX #5Ui1|E)enAe*PLN"L Ka361|l܎'\tp.x_9Ug% Z%TJp*1 ->d` NMNUT  _#6ؽ((-T _>F(ŵ-#VQcz*Rh5N'6C]m0#kGI%a&4Ѻʔ#لy#4m$E⑵Y ;l4 1*c}11SLHq1k4 )i^Ǚ"3]X&osF uv&36]Q-GzΦy!g\/7!x"m~ECjD2OlFE9fyXkjܾR^E\x!ni$t8r8EL`<)2 h*bC{%U5d=yK8Mw)miUŅcKh"q`nkN<ηv2nygV# e;-휯g/HF*.)֑h% HĔ3>_7N=l` 7#ǘy6*IME!v0@ЁNU6Ȭi[jgwoXc !mpuC5@C۶hƊ#vY7gǞQ=*ixfs@"v`Z9a+K߶09VA0 <,/Sn/Oha:lV, )u4jquBjLt6Bs0ƇL|ry0s\\zF@q>7ރ58K&qĦn,{;Ռof a 8yG}MaƦ˯? AY<W~G?JBZ֩F PzU$I=c q2`ƙ|adG)Db8f'2؎QJqPr.씭U!n\E WЖ?3b3  h}u!) Wh2bIm NY$CPX[XXa]㶘s;]Eŭ avs9[[T%]il Γң/ ұʑ IHpF7dE5pJ1C贁ڑ*Idyҽ]W+J͈́7bLJ/i]Aɉc&TgFp98؁9ѮZic19q[7%2xN 0K޼3^yF->v  坡hI=K _& bfg\#h ih 3̸[]̅٬H>o ` imjBFϿWv 6On)UF *г:ْ[wwICo]'B%.#- xPǮs  _wk0%3䡫Ԣ IDATn (3c6ˣ? cD W;He /H/ÿ4ӆ[21ӟUj6E}G =*m:]HzPL#9 ]-c+lc EdeL7c^} ՜~/ي)fΝOg9WlѨ@CW8W+5>j?Cc):Dz]3:ڋ̽T0}Q{2- : 8F8iK5ᰎrJ1Z9]k^XWCk",,[n:QaqdS9XVF5CPO66XZ3رk\ ZV@& Tkݛ9 s`sN}79}O9|!tÒf I//9Y.Ü G_yt{wsk/[(A&R 2$ 5L4&IFaQx*4 cȟܽc*[J]kftRr-,mm>?G~KT} qH*t|k^7SlعTʵJQ**%mO'9 + ++IH,%eeM)<"7"S)L99n[mp[koիԷmqЪc\p2!X1FbH\jeIp4E.[f0GցDȔnUK.2.,$xukh0` &c,HA/ f.jIj?7Z*KD !*&1&Y+%+\B h2V+zč9<y}VBvwIM6qZb H#(H?@~M|䑪DH64 )1-j_x/> tN='|躇* ! ak69&Td#uX F qɀN!M%`WaS:/Bn9GT)o|xnijbyB`R&SfT2`llE'-Ʈ邦h͂ ]  FHc=YT3ӷ7HĠxm T1qq^=*j+\^3>FRIX'^~o3%ڵr䘣W"yzh1ψ(˳ vtG qfuBf>e0~ѝTn¸X,OI17`ǡ<8ѓn%a1>ȸ N?GwUx)w ~lGD;f|7^}w߃J_˫17^zӂo?`D)dK 4 S*pi˙-)RfS~q^\kg?W1;Zce^C("ly(z^շt۹ݭ]-5s߱ӡ*Τ69+ V3`rRMJ̴JRm;pdaH!&.AootZ*!%?!%:[{scG<[xωla ^l̂%V2&TC8K"&"5Lvo45юq "bR4|~Xgd.'XAY>8_,6X RE*퐤Mb«j Zb1%E4>Lh<@O0 qCI]{IbMRgM҆͘-Rp󇸽,߽K8}>([!0uҸ={[_^I'c}vA-iKչJ3-{0nonς'?r%nScD !_ݺQ.*5gŖs||/?y>delu` OY%=K` ;M\CRwL.10mȝ,2*Zh%1aT/NmcA=lN&B0A ~;|ocmی~hDnOMTatg1󣻸ɸYg\M=:H,gFĴaj L!423#I*n萑'-7T br{ΙϦWLL=g5td`:&6Ns:TUHcC|RbwBpKYVqHq&v62m5O5(x .GhZ`d|O8upS$@b8#nT"4wgǴn=KM.>Wݏ/, nDV00.fD4 i9})c*fvaM iy/.?#D;}MU#~}*>?W_)b\)\?k~+9!TfבN5yGczKr@+\4z %DfV0K< p`8h9HY1KSFZoE`d[y$1ue4feΑof#OXYn "9BLJJf@/ij%n1Zbcp6ceWߪ@^-n}1ts1tlɌ vLp2%G.u8ZFH!D+i/F2'+pS(%J3EHgr:c%m*=گAC.[-6! -@1A-̑E19xfVroH1ue Yb#8`H-w^EyR^]N]}@Lbdj̮FnXzd<)1,[198D\;63sL,Mb> ̳Yf2NJd~- \.>|o'RzyT$X-bnw%rn;SKTj u َ+qC(:1DuP_c.F7m썗hބ%93LqiաAreDxc'{WX<}KU'lVkj P"UX}b ÀM@ĺOX7|fT#atF~g1bm1#-HU31(uteh(}3!Q$ 'qޗ9SMb' g2aD͚j@rŭ#t )#X'sD[fb͍;{ad|8ݧ|~qs11 ҲR5T-SX|_k_4pkz;Ч85MJL_~_e2tԤ3NNOSϿyk\/3\4I LBDw`^ &wElF(_Ѿej3nvS A e5|]]X_s]X1hLgcWrzEje'?П՝W(jaN_|{U !AIGDΣ 7GN(C|GS 9 f/b3Z"+w0mt;Q4Ŝ\lw[6?>Mc&gbQ:'3bA l2ВpAsd/a|'Lc\=U2WEoH> lc5;߫*rӱZ]vBWuO}qA%]pPy}qޜw81j%#oYfz7h5h#RKjX*L KÆz M €1yeR5L,}oxT\ TF6g3j8;975~4fF;G9bt"8aHCOS%2=O;Ξn nar0bsѱnau S,)]b#6n%tgg\8h6GlźvRYNsޤO܄'O <a?$GcbQLV{>_a|5Nsx|_dCnU̫⃿=pPw,~{)sQ( d5ZJȮ:N(%\M%]/Xf'WfgV+n W|9c_L"ZM6ŒXFB_Kg4u%l pM{TeW|C NdLX"D3Sf  ޘCX_%5&bl.ܬ$)X-NM 7{kkw;oi]vǑ+@(B $6{rD"FDst|vڵkN}8\1ZeG jUs5{ SpIL|`\,h). |7gϡ&L2qQh%r={5h8!ݟ2q ?dK774va1;[Ļȫ:_.~O*I KtIgyH-UGzjjhYjY w|i}R#:/FUíg}F%!ꗬ{͗ezʰAW>->G~\gZMZ3(.n"` =>V a+dvFٛdƜIjԒGבnQhʀor&cXJ2e)`%n$:`f?hk ǀZQ*ykjI/Kj/*:;+!RmkKCeTÍ)ϗV{"/ޤdR:mFQ^t@?5h4bYch:@)!)ww-oدo ߸麮a2Ʉ<ҤZAΧA6ޑLb )' k#h2*XBk =#n9&0 ce H#1f5$f֟Hґzi~Om%q3څCns!:w/pg.ZHY 5fL;zk0gaӑY۰&_z &pb_g6-b&[BK gfi&0u/G~r_F59qŕ~ -O|O`@['W?̱KE^ɏEk*Y]Kǚd!Jy\xl>Ozgin}P  IDAT?o[R9pUmvSrh0'fFdxRu5 $rϵiģ-nc]‚G҂ `U34Fa@kA5q{ceo#Q,IJ%cڅj*YQREߍVlB)ȏ}"'Q˖6 1x80vcp9[\F3r7=^Lzz)JzjWŧ 53DŽkR# !$B4ŕa qLjJxPJ#\Cg3]ܿ/»s-t=iڐmK2Skb)2Ҁu(;b=`,,"6 Mt o Cpt͜9ab8˼Y-p̈́4-.CA06Aa,#[]ƨ#I#5Wa2̻)5v~ذh !an1 Q,^ y(n&^%Y"i|ݛ{F?U=s33s-Cpq2HՓi+ȫ'CJK桽YIJ5?┲zhJVˠk!XNuPsJ"YYSca:U{ja֔XLL%Lv(dN)3Tl&XwH|5BVٰTDk.FJuq}c<ђGSI ?E7_&A#a81ST]ExM=lؚ|ݼRqN"ZaH&'lNuEK)ŏZWQ!dIE?RPiّFEGk c$Foc23wOs޳sOB;LK9K#[_=eY04O3 ֵYCZ^"X[vGsɂo޿o9 Mu[vȾbp kƏo?o1{m#d}GVrYM69pcf'[oׯqY++_j.il) `\Q,5grʤX"ԋ!֕ Z ƚSة|lEr&P\NE1!?ZG>i~`y /f%B#$oy(ʉP2;sSئs&DʁCfګ XRrJKI1C>yBr7d=GъzPV$ZYM,& }j 5 1<c.%nȽ$>uX@R5֚j[G<`L=LA>ɅЂ`igq{ہj^ 7mJl;aDm! h˵RABr)9rUljZi~ ¤ b|BEAʠMl‘P5-ַKK./[ 1na,FƔRnk :ɴ-B_PtO,2^G?WҦ ..hl c.lhndwx|-<-\Uk-*o޿\O񑧧fP#G2q?i̽٪E"U97')JT_dah>$FXLك ='S+@~IkjI&I$ܬ!5#wlL.x-g,qOH8G7n/>%3ױ\q؇⹵fi&3,Տ5M9 C"mF"GL x9İg2a#gO͹w)2svhSt{6;拆zacdwx.\x)Ӣf>*s\7ç *H:ewxGđLGlg[\=)Wv</~ˁvΟr?h=g3Cf7.tS.2\{t LY~})FGf)?c%g|?|-dš3!蜖koH9LVCŏpĖHdMDQ[.)H2EJeHQp'U>R5 H`zlPs]&C1Kcz3'K"Qq|e9ej#5XH@ɐ-TT {VkV.B i[C5(e]"J}pW ]JQ'װ#jxGJK)0],LfH4,+ [sR),fc@J`oa{fsc3Mw]] RVX};mx]21=)%rzJ+$ /Oos+5tX+$`9A#Jl#qa' Hmi R6\rMbȑ0 ß4-3lYPZ:VG⣲Pw㸽~g?Ū[rwwC ل/>)0bb&% +Ӧ'e>ɂpIw <0,dN:ܨF0ff$¤S$ocN,/.ow 녠|y5ft,ij}%J; n¦wxKg!skHf6 /AYSV+%={{V͆. e;5"3y{WܼEdeL%ڱٷ|5W=sϡo!0tl%^t͎[fzOseO^h-nrϫk4r )fO{aN=Ff7d wgXDcU)Ìz?O=CPԹ yΈȾ?]yL tn?r}qs5ּARb8#lĴ|Űp{&ѴA i.I*[g'- 6pvS6K ޼ {px|91oٴ3.NVO'^8*Ar|-Cc\-͉9lqNp+r⇟s/s3;5Ҏwů0_5e}ų!Fs{_o iYg-#^_sU*H5Arx9s"R= GHf`9G=Mi8hib 3KBR@ggk  r W-GH1b$@ccQ ݨ=!cD#820+ք\|ր Px$:b`"5K!Y-aXL-uhcj PճZߢ``ly!s=(09bq8cKhI*wD&iȝd698h)*!o&PMPGgܾW̤49*1)cD(R~ߍ-ɘc@qѫ9ux YqĔ ΠΞ2~)*)f{.cUw*ǦZZ1:cG%9TԚȩl=cH)[TĄЀ#yˍ!Ȁ#HkK{Z4bysưﱮ%D JV^ZbL44`],x@)TGr.Z)MUb5}ARv) m̎6hTYlH"0RSo#HV$fx5p-a?k_NJGk H"kxReȲ+'臁b0`$̧zrp>NDl7v\,gFy!3)F2)9Yҵo1ݔ)qpE|~ 'mYৗKy )5WzAbb=g<{26O?ӑBE\Ғi=)$$d|Hwwg|W~CM?d&l/I_нUKnoKx{߱!wⱦ"8R ~NrC,9A hA[5pG54?̧YL[NZlזi vbX``gC5 P5yE*o2E3:d4(:&0| 90n{]O!#n`80bHD A<<I Ɩ^ W'ZZ (pTR+bQCUѤUuGŪ!( ciKkFlcƴ\gMdĭQMyoU1X4Y鲩A;:jLȦpwPvi*ѣܑRhSfto4f^_= ^ 8{0-R4cxsS5iJF}A"`"`uTRq6CTX2S@I)Vտ 9'>;lؾy۲~ [r^ncUŎS(@hJ79?]ߛbqMDw=iL5 )~d%5 `MEۄ[8~f7nG&V'L LɖDq8Wh`qy {{|s,W]vՋrcvzS@:S'^RX0O~+f᠊>FF"u=iMYϻLH`t &{ [^WqCyh>Y^d$qjݱ|g~{`.|}dRBvlZX;X\\hF~d"af.' (7k=gO?B~20~/|{n_BɌ۰;|Τ_?o^o\%R[*_TmH.1Lń~it nҮr[Lizk04yO{Jx(/ T1C qs`X aۣ}`lq?2H#)6"d=bR8HZ圪S~oTcW5;? ̩Yj1HftJjtX;3¹X(wdff5miD;>oRSGB©L)H:'ni.KlJErQQȣ2 #a}lQhgʤ/>ulJ[]M27K)/{o4Er+,L_ۃ%kBB1ŗ0YrNhfpyvƼౌÁ#;dB-w F9 !Nx[@ΕBRlj] J]D 匪!SffJ*V5ÏmP JSG[R5%3YA#☉g,1Ѓ JK&$)"*+5\I0zQn_~w.;`րh@>`u`jp֔6ԕoL_I=)v IDAThhFAb9f[12#-zsDram~p3L`L_ؒf$ E[ţK FFZZ5$ѶCYtZ /6QC!z*WM$0`9ӏ=*--;ߏt^YM]-PmX.p`9/l0ZιBWLo1nIaiH&%1F8CRXc`?JXYǶ?vt P(} -ðҳߎh`OkNH@kZ3~r=N41"Һ+2oP̗g?.tϞ&pa@4#ט ?_yk%&i˖-edkhs' QhgS'.`:ڳsK'/~WiՁ)7߄~_)0Ƒ0V=޷xܬ[Nϙ>Y0\29ӝhW-nb8dj1$Rc&Ѓ7#͖͚͖v˰3n~ b-oM "S-R֓?Z)ꅃ[G*DT^PLD{Z)zvDZ;K=k)iZ.fre V&)k WSVF(Q2dra!+>i \ɹG5{.>;gq~>F@obFpE Oe}XBeyVq&KPh`YeBYoɵG!D҄o1}8#Y;oR;>rvZdptI} ; 5<Ҿn7HmY5\O[kd,C[) s<"*JXbroI?8m63W~K ;!P5cۏ_kA 8o'?~MƶhPʂ3nD8"|,Aрv☜MX>].v閤#3ɥYb]7T\ ꙓ Rg-]):UKvRA%%3-OmH>'7HƁ" ew5̛GBtDl;aC0rޑ;Rnν҄nMc}Ix7eĘF2m:s6n28w7@Qcl2egU,P4͘N'̇{BṊɴ&D wLgeA"^ y"D?.-銜o&=׈Ypn^qZp qM޿oycj[F?aZ~K8N>G~|{O4(%:&8kV b|{/x._GB2Q=Ya܌wLw?|?b}``j1eؽĦ?f>_O_m 4 ͤu ~5=19_0Z2{~%AZX1wmĮ*J>;bN-hS;5`uc #=<4Gjo9YJa閗q~dp8lؽc;uza{ F~$M&X,+-c9+ V <<&E ;U!* 2elD6e֒Y[emX%<M J"R,xffɯ_:v`43X BJwXőv#{+pbٲnIm8=oޟ1G(gp |ovͪ) .fƔd ^T#T! ffOftOg'\ ߴ$ قm10Ic5N'ii}"M figV MFKY)@28œEŤR,9CG9[f 2:c`  i&]9WA!SK#~J Úd/\jw 1v}Dզg;.f:\b8~Ɏ{?_˖뷿˳'_Xv/Z%SfdD1wt_|Wwx L'+J-wo'7%ӫ%g+OL/Lgtf +ъ oPPkN?U< x=l!Ϫgżz? /XAѪnX}eizs=>SY Eq$\ {@B'hʶ_7O!( fQ9`$Mi-nI%-1bXe,4lk絡'gm@6U'l3e#gtRz`X'6޳Zn߫O"9$BX%+G$F"[!۫MLS*Kh21 8]lݛ /890POf,CGݹpmX*jWغfr9 YerMwl YPSW /1*-]\HkvMdՒ#/<;S1|I57x!_7Xֻ6jl!5l鼒GK:,K`myBx] @{UfH/mRL"+jb0(_f藑a1\yx/yvFX:O29.ň$pbP[~DmAT٥R2d^\Xןvu;\yD~I4d0G)$ 39pvU*ZC0KNm GeJD5ViRa"mj/V1_ ]o%AqsHKȧhsf n%X.yUr9/L2F'%gRrd8Ysmas$_ѺfgkQʐQBT$KNRQ<5 9GTKaD7m&,Zo!xV^Jc'T! !\T. I%'*Q*t3ϋwMnT-u=F/ծ?¿ɉyfasԃ|9#f6Qק=M,=˘.a` l􆅬Ww}tHq#&̀T}C{6ZHƚDM %a-Y> n̩؋ېUF) %6-~tӱ3hjFOp{-^a@ٶ /[-L}34sڼ*ˁu[*Q!FtnmM8^XQSP]rEPdXS@Xv_ȣ$5I&ۄ=uS{G_+kzL{8G5] kaC׭ N V4&rQ}%Ch6X5*YJ7^5mE^ezƚR&VJG"B2&gla5fEDzKIw{[dV [e_)U ,I2mA ദ63i&-VZ@,u[F|̋k|QdI-K8M7.A& ]Bt*ܗFA1dt@>wO(!mJChe )*R*y>l!v6gjv]D5 )gĉR4` [<"Yz Qc e^rdIAc6Zpߠ>o9[T9j0' q;E[M&CA\ F5XQ ^ Y{z+xqbRCeʂk] ZݾPxRA$ᧄ??B5 99b{34$Ʉ!ֶs&ެ7*C7 q@ρ, a] !1\V$ɨ`f`fPڠE_3I(X$Wg c" %S=$ kǯN|! M;?ge#;Gĸ)Z! }P}opR!ck-Rf-F2{ff! ,X۪Zbf`ۢf|>g+T5#,IS OϗLԌ {{Z lywrb^,4olJ$eY:jWS75i8q\دԖ!,:?džei"C ~:dǞ\‚tL3<'_],δ*6^K[]2}.cAeM*h7` hZp-KOLH h :r2H:m70@ ѫDVA]  }o|4T|+Px^C?MFB(n̰?B~.;Ɇ**78oqLML"{NӊwhlߚPWHd D!ĞlRiG;q9Vf OPc32 *U"eEa\ eIu؇@3Uh,)P[<\ɧ|aϓ8?~y?$W' Oz ;3af}S= ^μoH]Vԁ*c%m;9 HʄafUXW||>bY"M;A+9jGGAy|XYd,%(t~k'`R򧄖hH,8_eZ̀r1 )I}Alf<99E?yH=kM`EkM{?~᫷ГtKd8yVѩG*Te#G~)yUVJo,jx۷\ft9GpC\k3yɰѐqu`\SGƲ\1QlS>F,u3Z ȕ+f~Wr_{o>ޟ-,†_s1V|GFJAi]C$R|`)[?)=JLFKZY"#r9ı"k%T(Qh`ȥ֝atA\R9Bo2k1RBF|c/HL#m1X8gZPiôi9]/Qd^N)?MgBRfYU{\*ۂYTgǧPuoMPe񜝝nWU )p0RͨV~1ՠUU#Go벵!0"26`p܅!X~sri DrHy D'LJd٣zO=glzBo,+ DrPC*\\igX{G y  K?:6V_1||~{H*S@L-F\AYMWy%#$vnMh+TЍLIbVjRiᯟdqǏd>Z:6feuawm|;]ϛs{IѴǤ X]F=.X\Q5;nH>ˆIx)X$+FcWFU:HG* 10O6xC IDAT4)óKnܾ9>3ݡ ,m]szn[zuil2AjR"IKC>n2DQEUSD9&u{ImEN !cLdFVLh&-! /:jc9:ͧ/n0ۛ]6/Ny ;ބY|ħ透13ڐN,OXj[_F{fƯ/hXwK,p8k9{;&M齯g''!3e>co+R\g,|p9ՀpkK3W+\ST_m\]/rb95e:)`{ܪY^K\^5{5*Ĝ9AmpFY09hB{khJu06y۝dĚҘ 6>"hN,F`| ߶Qjd*pq,(ث* u,ԙ1C璏d_\aѶҫ&GQS)cipwCgKY%%ERj3.ҊKR:ddPtvRd=o 2^BWʺ&yX?_1ލbW˵(H|YE"y1aCkJA%B-q8m +2Ory_z -·E&ww89Ǵ*@BanOŜHV$~.Xx{OV6Dz u`ObP.Vl'8Ak$Մqx 8"1ٚag?`w?\OI&-~ΰ|K7xwYlVܻ* .p\)r&C/X`ogj]M$IغV5BrHXuK7 nz؄22<{vkZpȆtRp S{,:=ŋ& P&At@µGHlY/.5>EL@AmB&Q#PQkvzBI+L5tw*Œ1eF{̛G9yz6!a5۷kU&|(29Q6h]![90csqv4%bRftx=T{5*eI-V#^.-KgCՆݗ?Nw(o:\s{eB u/m!rW׭r<'uIGy[,Aͥ @- "˒҅фxwwxݛGل,7ŚrC 5raZQEY." <9cRƦ:`` sե=Q([pV)ڬ P|a"rh0pE02Z"6&pgݟrmvcg@0iv8$yNIXTؽJ%P,W]k8Ⱥx 5K&$3AERy0@ SCŐ&2_;g޳\՜2(N S'CM4Q֜wiA[].^ 9_zAgR859-*xptx(W%  O~~ޣY.-O0`0(d Rȁuݿ쭻=ǧxDS*+f3ړ'P[pyQ/[XMG^-ȫs_SIAE`PwL`arif!bVHub0ZpF!g6~sxfSDRb~Vbbs&lZ @YG 'hpPtGga W CdI Vg\%d9?yk59fƣsmjVX7/θqc5O/IV#5yDٻq>epzr}ܭz?X#CY-{O>aE޸h.!ٰ>mH< zwxvNh,MS3q-㏠w,?'`CC.Q9?{oוmU:\g4=>煿Å_=[K[YI$H) Uܘ2=ܡ9ܣoiZNC5f5- g -nf[_|̯E:"deЏk4]XmD2VJ,TF@\r(:5Z,JU{m!R% Mֿ{M ||Fc+m)_9a=fr A$u"˖ܱ MpJFOQgHH PQW)#1B!STC@*"ʣTD ^MN$E#m6L"i)5iKJ(1(U#EMJ ,J[QE2 d-;dH`%stw.hƹr FAgPiMԊƶ׿ͯ- ''\<~ hykRJJPIxDX炾LwgI/-/g|ռWơ[F H7NN_ ]BQ*>W1Ƃ)[H.( e/Ky4nMxG?ŷ?`WlŎh\IҀ1 gà۝0T W9y{׎+nD&ez:Ո 668悔 69lJjhh*nC`ZK֑ =^IC7 7Tӊ Бb1Qa|DJcmSq)׷H|mXW+ZO{&Oy#=|3zIP\bd l1|ZPS'D4mxPC9IISMw |`>rqm0t9fZ@t醞I=/?|e5a8g>=EO&%H`:iGOOq|=Z[6BCS͈j2,~0n Tn`V,>f|r4R͊MW9g&Rt3pp|SyO" s4SΑ [ny͊O" UҫЖq;g-Vg̾U!w4,Ʉw0nkiXA Larpċg#.%E8{L_י~ӡ>30~xy;߬ S/O|k> -cXGY="< cG`J1X{TspoۿuWߺC̰gieX0 UƔ-*4[n6ilVpcd%VGbEbET¶anRL 9IS~TK]\GZAg"hHHv77N^~>oX&R%:A{"`Mo"XkFKDj\=_'7-jޒZzDmY"j+% $k|~xb] ڒFNy]xe e?J U\* /lc*"cʵT $ #-s.䧘7JcM4(KȂ"AkD+ b$QA8gSLYrD&U, ʠ=^!Ad0}$ Ɠ[5vעBr/0 nfWݡ_C11M1zFeL+(J6 Ϙ?#'3j&UGX n烿a1r|˳ Q,YEv*Xzt3boo=ἣv - rFZ4xbTMՀҖݖ~8gYb2g.\AVPU{\{5. eqerp_-چ5z`wwN u@Tdʄ?ЪAn z:TՄ0,jVU؆;|d\ n>gvKڠshix >f̤N&,gk\hspņ|q}-gxv݃[E%y9ko \  Ldl!%rC =d=\c 4Gh[O',gmw'Yotkn`I_Z( \ 떇m5ue&[M춘y;NE5ڢ <$yl2C'Or9KP!!KMR+x|].X,1:._ACG@89>Gxy~BEE k\)F0Fc"xIFP< l+[ehGռPoeӓY!(: :BIn,)<"*3Fe( w@e&MYk&`ۚ@ǂCۮy[.:``3!1p1R:i$=$I6y(ߘP T.Apf PF k ^ !>Vk:%U"^8OTΠ(ԢFc])x;Bmr,m`Vre%o$kBgx /O6O^xɄ]pwh쿥2_{T.Jg|X^x,;|w;/xU 9}mt$Qzwos=nkr!'QEU)bMpNfXvX_a4m®TٲJIcKx[LL>nXo:mRGSiBסrMmh<^q?/{醣ޠ[AVuI.3J 4W).[|A[{ֈk dbʘj;jJ{67ߣadX\x:/t٣&x/K~BtAԖAh\쨣m!5hR1H`/G9m31P˒ZqɐoQ_;CۯnJ[T =epB' C\1.! k2F dYYYe(ye@U RATʲyK.~+sf`ơFiGJ8Dj e}B:Q8TcL #FƁj I-iK*k̕"-I]KXxe c6*Jzi5F(H)UG-R[jѶ3[rB'?9/yᏙ/8m>Đ!bp&q,#)K69Aΰ[DdU/iM UO4&l%t @0Gv{xUhIck8%*U*u ^A=db|AO 0]+zxj~h~0eiDX4U0?}}y?޾A::VkdIJZ8M;ٟ`zqSP(J ˇR_ϖ,UX)!xr f3戰\,ۻ̚ qb縡_lhn%)DFWMG3Yr&+YV鎥>ũG@3m!UӔyE^m mm3.rf2E@ʚfo-:2uޗB3ɇ:ƈig̏aO& ]{m<|}x{([C9E'sqGS5sTS@ lI eeG5AG͋ss+ڣcv&f<6n6׮/ѸOX;~Yvo|vJ?=&03CUBf(TD6kL$6)M[[36glMBN󸯘-Us AV&1: &.y ]X(hUAR> n%l1cQ!7h!SBƌPa yWV #SZRPgrM Q)`@"5DSP#"A5XCȎ2m. 9O0[5_CnjA+TZ"iRCHHc2LJcYTTR1=y+88Ȇ(^Űx L1*NRBXJ McFKc[ $,Y zo۝aU`%[󗆄~Tpk^5hl_FKVtPnqMj*ҌN)[lW?1"C1g_q_oS~CHiR31 )rL\C# R)%Fv9lkP{ :(:ƊaKcau&R*{ :*P;avx!!%AMfo2|m~ ]1ƐjY W }dɣ.j>32461Q .[?)^Ǖv8rb6$Eʄi c a@  o|l aCHh,*HMّ+vX>tS0 BWpPuj=ϧ熻B^TՈ[R͵)ʰl|19,c4*(9[f8?STJZKTbSbLF'x9Z]?h-h)tkM߂Z&/1FY[8KRd# Ho.l ry}4 zd4x%QDt^ J}("Od{yɢ[,$B IDAT**5-b4 ef)d 7{ld9E 얈ٍ'PAkL*)]qckv6]ڃCښc9kn^b D1& :ʎ*v3J;fy4#-,߶RHK^M>xrz1I7)Ͻcgi+߿C|zƀ~`a"^|TJ̨nq36n_f5Z _׸\YI%JTk FE$10bw@.`B*x ,F@a RQr-C"; ESZ듆YF2*IL% 6J`^ iV! ]ܦyp=C+',BDDB$x"E<[쯌2%#0tMTx4Zt4z钃C+ōKCPB(3AMyeQ ~c x)*#ʂrB׆Y,&%A>M!D "I>!Cax"rЉ}`<;/G*QP2kAƓ<9 ɽŞ^:Gm &wrO䈵H(pgsn) dTHvYD5f-nPH!J)KhSdCBR:H|>ˆNN˜<|~=Bm G[ ڐJ Pi-3|'$~b+9ۦ2eΏY6KDQVY=õ DUP MĠmA4 Q `qR{ ӒB)eCѣb$P* NNj4/j.opx'nӶ-[ @qx*Mt=Ȁ=4uM^RSӭ dHrm7-Hf٢Byt: ;@9&]MhIa˃{מ}O|?<~|H ֧^}IN *67A4<6}jDŨXI;#{Du 'vi+ׯ-nO}d6C_awu`hF?˝7k'El9g0sPycU!^4%Y95#Mh ]hPlUlRRNKiE1) v7"~@)q(GPtφHLִ nnV,,Ҵ'M$H2(WH?l+0a1,kQAAnt9yT$3i4JA 2#7Q6Đ卐xRG9X QG(JFX0x*KIJ^Yָ4IDTejGcD'@] :?Ƶk9eҨE1&>(z)pY [0j<)Ţp>`F1Bu _}ms{'M0Vݞ?}kӜ#(BO5h>48:ڳ|?csA4>@g9Yx 0lOJwlL6[X2@f<$!7h4eZ!vzOϙ-CQ ^*f)P.BHݡCzu2 q* d4,^зE6 fQ+[iF&D/z:e,rNf NOhX,^%W U(^LP|tgO qOW<]S~ T:1Q<4-roqtSyZH\L7w)RF~-J+06zj?rd-e".J?e;&Ƀa ^:BcZ@VHD 2 S*|FeߦߥZfQ,;xx})^d5(#r R8<}"]cǷ4;|58!f:LQjbmb$8SLy,o)!7AgQ#|$GcF>hNp-}pP/'>=bskGLlptpw St5m )YYvV!DIKKD.LMfG݄~'_<>`*&*dw ztyݳtGlvn[IE.wppBMLāj42WAidӜ|Zbh)Q."{O:sDRw%XF:2xN$ i D4XqmAq$ٰ'!%R!yG¨ q)$ Qػ@<.xh./0!NϤEgVJIU_&>ZW8pS/Jx)ћV )Gҽ{r)1K-QMPqȍDd>s~57oCx%H- JYPIE=,n!D:PB;r>EόvstW|*Xq4u -qD:5OL6))&].)w,^z)!Ǽ'^YRt! Bhf3gly y^A5EoҚ5p'|E\^Z3A ƒc$RJ#!Ȟ_Y@0z"+m‘)M P`E4n܂Xv Y39^ a3ƉiC?@ \dY. tUAdB t˖q^aDxq"rsp]rw !J-$M2;=e<c ydְ=˓%LJk |hЪ$6mo;87(FDfLGS&vGl>* Ggk.#p6(akk 6#bs'*1V -pLJhɄa&ۇdCˢк"Pi:ˍ۷XOx{.+bBu3?R|pڻ\c䧱0}}Mɂ[dݡr:*x{ۯwc]rer&ht"+'t˖j05A2mppc:oß#n>ɸʽǯ%efߡR+R5^9 ?хI[* 8{RHA1jR& 3 4-7:7 G=޼}eG\t* NY O>B:gRt Z+1Q$DW% Kq,: ttʓih=})%$ `4hPֱWzd{ms|x )%yQ`!s$sFDkH(p -ڣ2C#]h ' eDHwHJtr/$oz`nU4jICYQXXb>𹒄/r~ Dצ^Ti.:[39"\irV D4."DL!"j(q]Txk_(Ӟַ̻h;Mz [ 7#:J% _xK?2t^h!$(PrYa-CY%hi,Y$]vDr?[{d=r!R) {Q?zH\+:HTTxdi0,_?. DG-NtDӓ+kե$H-x*iL?z"҇ @<"(<@HTGPNCtXAu Aܕ<>G&1B!ޣm%%=Ġ!(X#3SbQA&:N uDqH"QP18B>̈yDOh{B9ͣGT)Ll2-}~ ?;Ln?᣷iNO誊k0f%JP54KWNyiD|/g?8|uY8z &ri[}^y=]]/)*WҸÞ")*XݘSL"r,%ғЙb'Z79|o#͢kV!dRIpCU "c*CT$f>sHUNV! *) AI(bj"B&v,{J" rt@Jy5BG8)&%w)"N3N?䭷(o_}9@U"2"|nB"w:"< iyL9!x-rҊ g3EV$i W7TJq<:׸Ʒ8}Mt02-dT.ЅJS ~0ZEdzmA 1h(\.|  BzM q$䞨!iUUl4 Z'jM5&j,S^~瘻Gc|2fX@/#O}k E>A9b>'xϼiT7b.UdsrCZaB ! 6='bv.8똔9͢gvc!U!$RBPxׂkQ2'8(Dϕ 2mpDړlUtVC 1\2٘y % 1n񍣙`mxp-rG|w“ JP}a`^g+Loޠ0ԗ88qj~WOֿM ˿6]jOB{q6q{Ϡq^F(|ƀL褌2e}Lj Ϭqk_~Ń{o>|ݷ<>%4,*R0ӋPL&CoUBTBEi(g{qHwu"DZU#$t|",{Y~+LS~?g8:k_;;;Uwcd4Jsk-y3!yS J)Z7os?r o./4C9x/qM~lll՗B0)|#qDg>Kf'n+>[̑/\zb趣] 2ӓ"'R ZOː2#DP8 ,%1BgPqsEVآ@ RP\1B2s J(;tVabX;󌲜xлvDZ-ǯ?]CYzP D\I>"n&%$Ll++;h=fX?8~p'X4h{d$WI*cYt1 P)*9y&:2Y3=ٺ%!2C4ɝ8`u?uA'aCyA%r]8gdZ BHbPF1]L ! Lw*yqk#CP$v8@ᅈq;bB&D%."AjC%J Ғn4%#(^P A'sbO*RXq* MD 's6'%Kt)g' ށpE:.XK oKkF<{{ܺqn)iU_Ah<1Fj0liNbqzaؼN]<=e,4w^G>$ښC _a[oӷ{Ho%J4\ڜpXy}*4CSxJ.1]$^qB(8Osppsi1?p4|7/ =x7/՗<٥5 4)o:pBFo{bOďOao;3?&+]Qۡr\W9݃Wô&]|m toY7]8[kU3Y31r-#1mfYuG7;! uJ TDni̐!jY B IDATt93VňvL]RJQDnH{0RR4J7#y1KQ ~9!nseSb #dyR׷OцH3O>ϑY˯|8::B09MÇw7^ù<ML&<3|_䙧?١>WJEcFãF8ֆ &uA0b !_'!Z)bKҎIf19QBGL4!#uZ&!e_u|QJ04(# !ې{.t}4̣d.Uj4=n$Ë$ xݣK7_1g-gC7…RBg?YZ(x;$Dq։_q꽸b38jExG}qy+u2"'KOݡx .Pm]g|vcS?+7+rCp',LV"td*qET(Eb&Qn$ p/\'9g"}A㴅ebۻyb"L@HiP`_ ӻo"m#,*jdgy/C[b=Ώ8Zv|Bn5Bi5FKNۚfd>Dc&1hNiͣcg%E@I--2t#A{\ɲ5SM&ؒ|m7gGPX%@oRF.`,R/>C(GY:,YEӜ}ĤsSw󈣓#*p98t(ri{AHj4A xhRקyo:8:Bo]sB=/mmWR1Ô׮bqlc6Rd bUN7xpQ\D ҹ6mRKTB"!,(u:|xg_~_GD`!d;?)RU`?wX_CSsCx:_8+ne‰W#ឮC:ǽI`߹S7XE6z`~|B_d&##CҘ)I *"(P{h#-#iIZ|Ȅ F?˸{_η-zMhzImhT&YQu-FiTrItӓSbXLo(TUśo_{{dyd2e:Y4a(x1TeIQ*u#,%W^_:gƭ=?o s>|Dh’c%F[ж%>L.ZEYh2#9)Vѷk"CHC%ʀW):< %Y9 yt#TdSHBtӇDƏJ#($w舲\PɨW7=rb_+^ "\G"jɜzѱVLX0^tbLB!05gLFC<\YVsSA*xCJ\Em ^8WOBb0gu:G|%x wpHx&D 641 6B}y ¥ >golr"}8^e xb@+epVC(CQwh 1w}&kbZ F91x XBԈa_ƴ-^yN_{Ԝ]ǫ}qo>0S}i ;zIG/CdVꌃI[ _~9ܛ";ОR\syɌ% #l8=Tb\hzCXE:p^BGZ#1IJ<;# 'mmz9?!b!U>֎9\x<9i8:'Ya `{w,1{OpںAF$}Hhq.gwwd=ǃ{8gc}d<3}G\F9hSaTAZEGں!(met'p|l+~2y䙛={X䛌n@Qekc$a4]c|6n]a2Wٽe3I]Jm,OP\%(̓,ryIS\1x\2O텅_q1!.gLݵam&]*>`PBq&"؅dtR}R qv2Bd5}Ѓt KD@xR"(p*qw{TN5QGE$&HldAa{q'ͫG>+w 5y9hXcLSKdRNNA§k^g>@hQUʐz<~ZJQ:yCC)N: ya&,ŨLZ=^uK|/5~x_|G_yދԱ&ʀR!,ޗPumKU8%ٽ;ȥG pC' B%!J,>=h%3֠z bqDһyX^!THݟ14(RB8{y >G$SwO|@]G=N\ Zdc]G]2PCIjrv NG퓂]2-2WG >.n]邃owktq)3MD R{皰9E}y|g|Ye3ϳKmvmb1['A\EU⣂C&u7 Rg,G'|80n6:,g[КttB؜(S֋ R߻^#tWy/_ϗ7ybs xrI dd$wT虝ΉPj(udQQbeDY0KCGkL}C8tRMP=DC+ڰ6h]0YІC`wmX-k*؝-q2c<4]ǼrE\#,̏ GGwjVx`QkӞ`=.(Wg[O^hnU7)%wثkKRU%]+M?-v. Ů8+vysFI d>g7MѪzVPlbE[}h'ϙ )nD]Kkl=u;7[xk9:-QnGTQ#|"N* I {NZiTUNE gMGHK&P9O!Tʯگqwr趎RK Rg`<\rdX`()}* cm[L,-]b 3lfZyR \S,bhɳc-B͞>b$+r,cmm k5u{//o|j/^8οR%eM<ƨ9)HEEkF;b v(r5WD2(&XЗЖh7FSISΉD:Bia1)WY-QL! ]i:5=>O/c? a;L_4:wh]Uz"Ţe{;OPܸr"iJxV'J+rYIIv^9̕6}Ws#U3oNHx--.[A)ޛXvy~3M1g@&"(tUwWF݀kU{aWnޕvon[T*D"93yqnD&E{"xHD#{|w@ԅ}d.٥ ?)}쓟Kj[ٻ^'G\Z\4 (8'*[&]e# n}iEİ@*\ǔ| oSӋKwD! I_݃v Bw>?ݵcÙ d׌t>L$V:;I OSr( "9/?W^yG3Vl V&M)RXoΨ_`̗-vFOKNg8 r2a G ((Z[V)Ef(92,tQ:KNa#ْ"9qU],cd*EJZP}DdQz ʱm$( rNOȫ U2{+Hi%g WzQf[,}~ɮc}{@5s!M(RX+"z9=d٣ o\a֨50zfA%پ>bK%++יLƬsi ӓ fȵu\`2n E)wsEGӟ UqW.[먅gwX/)#b|L9ؤZT۟FgHR+~"wZ˧OOgb+.: Z{5]BZ!3I AEУWHrvp" [Q+)J;Eysގ #Y{;.'G}%4Rts4mR;e^2 !0hmdJ&m&G8PFǨnEO*K`m^ק2%m B杇$e:D9d$"es,esf9wW_wÿ{')s?g[TS+**=o| H#@FdjeϒmT!C 8aI%] ITcBi<6*誛HuNkB:٠~s%[d5@c1Yo ZȨ0QSEM#| -Z3QFY* Jٕr=՛rO'Gѧ.Tǔ%@-{ ^Q 9sPϙݹΏbg@@Ŝ2 M⧸ůR< h͠cz?j+9+E)6NioO0*M4²45buEy&+j@<*6" QX!P6BTlua"S kL0>O:jeĨ,|Q^j~|B:;;wUƬT!:rxs~UKgilIkTfFHf Jx2)ml!!dnC};~E:3$91]4yTP[xi=X#Sz”k2"UXi[ZtDd0Ҵ-yVR7 ^Mg2|ВidfYٲa+12i[hyݻv*ڀ 3=e2>aep# 8D9Hő-8hfl]@>S6 3 ~IG\'ME1}`p5z[>[prB\b69#+\gY4ZC7 D^P!RZuY?hs S28MBLr[=Emb1'Dȱ&mBjTJbtbdsPZ%6Z$"IHTN9K*BgH.~Z'^>I7Zg1{=̠i-'|WO_ O?x<f@-[9NVU$TA#s 2=dtĢ36!SDLuAEAW=8L :bpX&֘/ N$޳lmB$KO=E̋u$ ^b -+ZѐVF]*z۞_&]c]ROU|ܴ8c7O!lL.J)ewU)=&^~]vIH 4>TJYXK30sA XUń0pd՜1Nj(S;ɺ&Ɣ3+Ok2jiG"fUJG$B4WOnJdK(xfPd-7G (Y :w@=* @ k:vkkJ~w.;wؽ"V{%9.8L*VWZ:<هeu~esX/ xYMrK!=eQ\K&% L)1/ 1.Ķ5&W"÷zY,,^IYU<#>ACɌ\Y1x$ɀEQ[O\d9!`|g2z x 36F0 z\{lۻ +ohĜaG+oN-+-,)B%\hY2t[Ѻ՚d+^NG[4VӆjGh Uppv_ztNv=d0?#ϑ:Eq-rl;grv!~I1(bNִD4ϑ yFpsO}1"g gY{wٺINSN'Ǭ_}c43##^DF,e?-EaDR D.=CU! !8w(+(UOH-B G4 G|DFg|`mK;wq6!&։1PReX' Mmۋb:Ǥ"zO]wc*2$(I"A4z()J!bi.% AcLw1B$]w:.1*6,Oyg?ǯ__}YSֳTQ8QeQnxPE!K6HZ)֟(jdLc ^c@q`\ z^BLhu-T~?IT?Gd"ɈTeKnfK$ geu(vtzC]ǀB>90ZbDJ J>y,ŋQƈ 4YB|^c䔵 <G+篰0x.Z*IoxoBre{egV}FTcc4b~OXgJDS%1Rܒ=yQAZdpBeрz|B"-=Gxg1& J˹G Ck=cJ/8ߡW4uq1ݔ}+#T.mM8ij ߴ k80YA][fQϓ7ĵ-F¶-UU2r$5ɜM}2c\Ct #L ͬ!+*kD~ ѦjGQ 99FOUe\6}f}KXtc\Q?cHxO5j^H,͟6QB$At&L2F6~*׮^WMgsYMRn/:Dja-n12Gw?g{H%hZK]/RJljHf7gRpz0P9@S7MBP9B4MR,ާ1)S@$"zMhh4RF8MZtwǔ=랗=ܘt[J'Jy-#MLZ szEQдK{^>~f묮Wd?@ 'Lp,QIRD$Ҡi#ZCqq byz%^a,d6blb 2%(o]'oD&cˬdS׿Fl% \{ ps)b25ŒeY2q4đt!ZR.%R)CZtP! ޏеќ7XD&œ( :JL`W#&?xo`7,^L LVe=y%Ji iExYp9^ d\ @-ZKF2UlJ0LNP(&Ȇ(kr!ܸt:d 0:Q9JM.,&eE)Y.!zFZE6 MqW}자˜@@X2>si{ajn\t>f.X 0,?F*J|;%ӁӓGiDdSu ml [%10mnP9f`}}hyC{-P+#F1%ne2l͟)\ݢ%&X%,fв:xk׶c%|ZFZ|+-%W>FuۿA< DAhi"!m N tQ{|gP?;m*J$i[sɲtZ %}ċIQpPƤ_[CMq!U SYLbvy sb;;Q ~>9?81Dr*f&mT+A I?@iɽ;wyg? ~B hvʙ$QC ϔ(jHB/s.QX u&UICcG˴IB6 iQ-uC;orWY{pjR d$$q@XL稼$z;.|A<\:HxN^1\!~Ho1}A'!B酞p'q"k \Dzl5 뚞(-%TTʐwnmZY#/s4 [o0}{]}h`{M$E.嚥4m=#^UD%^7DpnK-B8(!BbHZUi(xm[=*!_G >mB(%C񘢯cqL]&|1n9;xw , et:A;0Z12!F*k4e`CN,MKʪ12ad .LnpEEEU9mӰ L&\<#Rǘ0_LG xS Vqdo[L]C y5K|H3d á@L\} !>y 68챜l 7(ʚUОB{ɱ1EYM8%)'3l~y|K>b8 =!U ^mZW^SnwLTIS[NvٛϞauFsLؾqk\YՈdnO)JPmՂetm,0C>;׈Pp\ǥgC?sE.%[7+|cwJIt,|d;^'6Gl߸%zeɢ]p1(Q&kA5? ?ܽ{K(m899N,)P*D@64siFHiMl5Hk-!Bc !$pI Knwbvҩ@\#1TC29C)] )w>eE]T3"!K o Zdz P`K}ooO<TyM2>E(##H,@EE)2 2b?{h|_޼M焕gE(`\xI5mhqFW\BI-ED^i@ůMBCs^K .2btOoz!ӟ/cКB47LyC8KUVpݟAءT=Ey5#v;F] U: =4P*2 ANe!zJ=)MDG2qGuƫ;v,\EȇS%h!HS:+!0vi!TBr %j-G{񐇷NW;L?f>]PJܛN\6b\p5gsb+]4?UєG(7ˏ,>| fvv@|=3E,衫12`i%fAt"2fH Em}W_cWi߽IoYU1Zb޳lN=;Ro >r`炃~nDp Pc^~~{rheEt ³ftIG!˜3c'nlnZˣ{堓/"Tgd%ʂ6:4|>ӣ] ߻ÿƿbw\ᣥ\BpiӠ]>lx!iRni)A*آ1D#+=W6|`0qf0W7?ѿD\Fj!xyZNyZ0%q#"Lb_I1ҋH 1tBBwv1&4MPw2cBml &[DPRa]CS8ɲW*|Np(4D6y(#& tt_蜦)rucI[T6~|0a) ,xغ[^/fvõg9ru'xmzF0ݿOhP=(rbS3>8;XSfw^W黷qEڳ͛װ}홏GO]ÙWPXHPBt<]M 'bw音i"6%L)W*QA'V\ͥ߿#~݇;1`M퓄j`,Swh!wL6XbpI9QnT:Dg#$cyOrA(eH|i,.!+"P*ڦwmm'"6$Y->$كwĘtD6]}BG2 )^2&=aEgЙAg^Bpxt̃ɏ^{'xosȚ?ѣL:CF Ś? T}o- r+( ^T4LhL~(Qwfu`pG3C;B <6wJeF.[*3d=8KAblbJ3 WH| S7f:"4R0 &SvviC)J ̗sL쒲89:c}tS_zl_ʣJu|:ao0?9bk=RPT%ɂ' c. (U;Ax㍷sNLiD@)~ozsu} zRs= w߹鳜Q)KpSRDK,ѵG֑#j|njw%1Gq;ZS ))!:ہsKSb懘2H<OJRnٸ~ }e9:9({zZi!R9!$h,1CbDI*xב)>'mApIvLhxJ. H`!Bʻ!}R \pi|'yOK)ddKI] Eg` 8h}mڤȦuMJA!c`B r!)ΔRQ}k^k_k?mDZ0$Z@Ș%1sP,!o!wz8Awm1y,* ±<2=`rpѣˌVvT!JJ2%1|k֡tjVKs $^)0RЭ x*U<c?#P@"GI-1;H:21BRYU~nQjVLI&5ziT'\lXZ 5պ<^,pnFm2rIv,q)+$@KXe eD 5zBd,P+UT@"}%"BJx!!%e42+# hH9&^L)4ҵHjiA1i}76fJs%z!t֠}ƠMNnk;_"}Qsen66]*u;=`uk= Wõ5SG547^b:C6#`a:;HU;fu`r'}µ'9Mr ryJ&ΑQld>'s\^nϼɟ?sάgs39keQgn\إg:>!/2m.>s?߲}c7VW\PpK`>Db.P\;%/"Hd%_}?O^y?eG)a>g@WIR#n@vC֥^uփ#wb!e5M̢Ĵ IDATCvi6)sdBDӥ,cOhJ kFiyέ1%@!-dkI6bkQtB{LÕRDR,Y,+_gp7q!y{2M N7+ҊJ4yA4eM,~]k}p8HQ(R1@y@I^ Ā#DQ$KHD؈D"š4 9kOOOkuuuv8z3But-Su{KYͫ_ f52Mg g/fLv1$WOw h#]R80&lHEy(MNRtqUtuLb<}K9c|Madqa'!7$q ARfx%La:Í{C „:h.\ᘝ9: cۖz~R[wO2Nn4T\po}.\yBsfN'7.q}ʲ(F$rO8|pFkv˖T IՌtK;-awow/&c*K}^b8d&mCZxv?bE\;%^zk6m.J}^I]_ x'eB| }VkU8D\ۦƭ_tqhҒr6,K:Ek[olNl ,RrxZ}`o}BcW,(2EEK*"WɒB_"hUtfHg _!BE+H2MII{xZ_|NLZєVZR/{܀{n[ov낹MulR6hr-Y墚(حPxi@=DU9Ů"0ޢ]@;/3>xC~_ߣ?쳱?jAJj+[Nn4G={5ӣChjnQֳ(ku.DX%q_T2odڰ{p $2qMIuP&QVDQ0w HRZl]]a,Ic\ f< QH1H #vV kkdmN 3& Ak_ :)/g{kߺǏO3ӎK opyBQFxkP}`オ͙ABZJQ"hXgιdJNpPtQ.ct4{o+s.̗HOwXΗ.v7 _͗~ckWO6GM͗|,IimC"S![Oceun^ g>!>>ٌ .EN6>O O wH2~|_Ŕ.шۿk k(IRC]( ZсZ3/gaV"i[B= z!qڶJBDcFi]\O47Nb%qZK,$I134AC;}:E"e9iZeE! 4Se9YmH*tH%QR\ľIH9q\/ 1bƇ2DRN ZESyZ<6M ۦzr{ƙs%<1n=z"gI.8DX]^@Zvq<(E:k^Y$maATR4-ř'{, ?z{cc<2uF{w9z;4>pwpAID¹>y VYBGngeiS|#8*ETP߅5T*Bb2EIH{9 Ҁ-7t~k΃ki*MBѺ:Tdj!xX8a@>J,#U03-Seǻs_d}:>+>z8Q*2-u`ii+nm]YzD 93iEPhmJSDu2H^<:-&02Xd eXh]m+и<QHV`c{0 O?8F2m)!1?OgOUͰvi*=,qU^3*Қ$qv[Tn!2Ҵm&g_b{sº)k.Mz*'+ZVȵwo59nr#  _[7dBG{<5& M;-Bg/}OIAg|[+K6>^~>w? m<:eRGU]#D)Z|8D :t0bԬbUQC&4H/ܾvk;kwٙ@-ݼlt@]7\bo@( mK*%)Rm3\x%nݾʅ'ɲ%^իP:AZ+v;L&Ox G!k\o7Wyӗϰ;#L19iy4^}=b83kKydnDʅ^l'Tֲf\r:N}E :Kwޣ3(!p]ܵ?σx}ΜB$˨~ʽ;A2`g+˗8<}GpY.=W^x|Gy׸U{,,),~aYp\)'KɷW7s6i 謧jꦡ7 4:꺦q-RgGZ/,b Q,ClIhDRj$( R4#5 nnlg>/gsd٘dt>c22ŅLz|>l萣GGL#FrF/ɋ$Iɋ(X.r,<DžQ,jiND9 c).([QBjcI!Dcm[^u__zRZC "CDTF\iIy[S ' A'a6S !$>/ ^46 2S$v,A4Fs. 'C`-ATT)UGStIV0~,ZY CēŶ823b2Yrp:_{ɭ۬U(@h  >`f t)Oq*ŜDv ~ţa[ I%MGb$횠SKR%H Ј ^- ϲ eyX;#Y3Q)s ZSd ܼB{OGxL/^ԾۀDHkbK% Q@%&;ų( ! _)O<'\?!W"g8hJ:Fb@* U0y&=[dTi7 iJmu -"O1)H(E-t |B (\*'seZI GR$’'d!Kf0S;Vs8Ҵc2Y7y͏uEל(P^2m,5sF%yɜD: vu/rn>%^c6<9loKvS؜pϭ ':G{n=CIh{jx!ehfi{s6jʒNYɖ4 k+Ͻ;Oְ~$w67I;+;}^@8}, ޿[, N(jGvv_y~L$rk\X`V9N;p ~m&._+?\y {{oﰵR'9A.517?΃w9<:奕τ1_ v_e7_X鷿k5[ɵk$ Y ĶZEqf@'0Fk,A .H A#hMjL\OW/$"O5/)%Ɍ= 6H4Yefʲ,KIIhtIbPF!5tt2e:{tl22Li`Ч!AӴ|k"P1j| 8{<) =ƘסmS-Bzopy1k`-i"&%s̫E̻(TI4=#Qx; QԪ-:0CkT+mv u'iEj#iI.6E*R0TBR*Łyb=$;{"$nQl(GE;Ms31Mhf&=UHszȵE%UA+P`At%ZXш[hmV& :Օx}r7(אbIC 4"ry$Ht2d\ xkƦ,c*8s.r{к1NdQ042jDtfHV* Kί3'YWn5cEI &Í7?>7>/[ʹ淐yơhmK*ZzJs{Qu]Ȍ.Qx Ѵ-h@ap4AAWa&Dș63N%R >!,ERCۖUѥ%j<ݸl]TK~6DžtgtZ YڧZ\І"9JOf,H Yt9$T;9]ɗb(88:+ P +c`gbIL2[YS>3y-kI'p.HLӗdE#O7!&3:VB[g''91o}Ξ{<UzڞAg%q'{Jw~'_Ο}'AY`ipcmR¬_TMŷ oV5/ {UBپ7os}R:r>a{!'Onm].;[tK5 _CքO:>"}:i~ [w蔥%G ."JІ}l\wVh≡s( Bhzy4+$]Bڲ6lLkvN5.u :S$iFdEJj J6H8A(69R=i)!HҌ7%Py[2&t.ݢD+1(҅nr>a:tJ۶H%:%IS4!/:di$;8w90%JږӶ!raakx3׋mt/8}1Õ}t-i hTИ`uj&'w)$֡]r5R j,-NHVIe*B|'e/XShmW_n+ʃ=(+Tm)2!:S)ǼBˉAH Ӑ;FAhAt "qMGF"UIOհ۱̮;oTR/iK3ik][B_@təZD8Y[g:gsdbu6_ؖf([\qfZ?ki=4*m1rA:PcmoZ2ɄFZrLR>zz"(L5ZAj4x<ݭ74vAw"CSWxq '.&s?Cf 2N\}TWi!W$tnY ǰs2Xɻh'U[n}tkOf\ΜdOZ˨Pr-4Sg8>IpA!lŪu$vS6*Bփf=BAlpe9R49% Nj؛55,/Lv YA>칊-]R_,*>ch5tBB&rW USGKC;چ4!RX"gkG@hRĤ= 8)ΗiR&u:E:ԠE+Bx'#1} !VHﰮ)ׅG'zkFJZsd~n`l;8 {.g>e.=GgX0no?dTw4%_W.2_F+xCd r?~LQ- d6c_8wc<\2?ϝ׿O sj=f9IY`{o@9#L9ֲٶZO2jɔ@BSZȘ&H񱒹xPڹ7N$Ux:mqin{Opt$tzX LF[,ebiajŀ2(!к E 7Ḁ@@h΃ $11D4i|h ,ci8(X(pWXstAB!6X.,$mMw4M1&z}`ٿ (R(lRӈ^M9E96)#Z7VtW '%BIJBm¢TKs"M Ƴ]N8}%NW9)ˈјz^FBF"cZ&aZZQc &Ory" VcT T gGCc=P Em;Ѧp٭~hoަ_{r H):hz. ^~/ O8T39Ag`sܬzgHIJ*i)ޗxр@멃"wȮ%6ˤsJmҺq&ґ [GvGᓖw6<kB2D!̉|tyh?dvh0 ^ѝ۔SϽ /_ΛeRи PU!zkI:Hm>zIFyxBuhC`#֒u4f&k9f0rd. PLG[0 cG"VxU1$Bg1?`ĕ^3/r8hob)ZP%2U W 6 j;G<.Wn> Hjͫ?e^ꏱ;>`g/L |Ybi:..CtarYG#ݼ N_W^zoLJW&O7S73LI;=70IH1?q7mFOQgg__~k_?x.ܶGhsшnK6L#Rms4˞ᰒ461fi=DF,nzgMyuSR5ĺX+[$i,0i4Aʘ$ctF屽M)e@,Ek .cq!Kx,CvAC h%"-lHGrb!x%ѓ,HŮA5’Eħ\  ݏQ+*! !x-iƻYfB VV.]{S~ԠOwcs 7N_HgeڗIO~b'H_ZE9:iYU`eF(?GgT ^gXh}x$}Vh֍PHD +2|*罇s>x?0|2e@9tIٚGMn=~hiYdKt'8AC3\j5 > [rcM~|t{a6ʕWѻovi=)B(k i"H68}&RHW(H) ޒ6"OU%Ȕf,-AHj!TSDh'.Y tm+uZPKt)ӭuzrB&W䅡h#{͑^kkhR pֳs4"%yh^){F-IehN5&T d%1)GZk'`a4u ˴=N/I|N7al͓Or]"$i07ցLRk2\st8!S-٫{7/X.6,t:[k(ʊ6$Z.p|ӗuϿ@9N. \`ymJ+$_&[2fEdByt.my5YjHGFzѽ@I:dbJӢi‡ )$I~ews `1DEZ52+9Լu{ɡ_QKx hӶ;}t 42t6D$G9&t.g\\Y%$ #O9?y̽*[]޿K/xx{&Ny3)ʚ Inն,#Ÿk ovܒD@Pksμɋs7 ވȈ2ͼ .& 3JeN m[12UEQ>c-Qx!8=+1&C:}{İiJ5g5{ueY#1ԕ TpL" fDg .ci9<21[ C߰glLUM#gd͜: 8k,2(0;x} MC?"Y_.( l`%mO8X31c.GK38}|cm>{~t׾{o=!o?"+Fl^ܡ%N<}1_petG|\ٽW^}˦e2x*7]ûo}V_7xo/<{_~oX v/\6z}?zOW{g|D2ƶˍs`1ΥK5~×HҔ(JTYǴVs8k*nJY]!N.!V#uU!$RiTb#ҕ(Gk+yK&$i˾@t:ͧR%~_T5u]ږ$1ݐ5>F꣔ (v|nn|*5MѲlEhB`LGBb"M2ZgO&TU1E3uCH!HY!߾/ݖݠ&IRb\YcZcleːRawE_HhDF_dqd+Ml;d1vxەâ*Yl5|!cm| 7ټ*8UC\rpxd2C E&iQ@,HrbTLZG戭-(Q.vb_ySW(j ރs`m"D*P:x8;b,>zT LeY7LCmc.]#> Ae 3Rzxѻ yb)nь?!CZj먽!_8wdk KMk\lv8-sfyL란bGɀ->Hd<D򋧖Z#$Z$NxliZKi-O RAjfLQ$ֱ8;9H$;={mlqkTx.ll\µ+,8\Td[-gXgʖ[IڀzlnlI;c놾$JMzh@^%FuB(!3]RIND2Ԩ~u2azu()doD"t%okg@6>֮+hh|h8>NlJXW!A O3dD(K2erzx6X,(I"Uh)g9I%2 Ĥ0F%:xt 6[y'LHR}ґax$dJO^ Efю'%!1pGOv/d!Qh~W^poKvȢ?۟ q k\<޽˝;wq$hO7  wY<6ۼю|-7Vs% L' мw999v4$)>t#+z8(Y~ ɰwCLgٿttK;f6mf,h[b~HՆ\Enf@.-ZV4M۱%r[@Wx,oa+NׁRn@$iEVN/O/p {}ƤC6@v!ݘTM1rQ-BDH/_ 70~tH73]_'] " jbQ&7PYTeA苻l}u^y2np@F ^v9!4f!^ +..ZX rrFOM&!0Bve^Wu6"+:UA"߄d%ڒf3˻͒~!4ME=VZ!,FĘhx jnQF2'# #pPuߊz<)=~'c,tw6xpDa;9E ADi 6yB#tH1@5F$ xX5G'cN' 3/<,KYQgqɏcو+dEέYÓ}^o@ΐQw)Z 6l xtHڶ%KS|^|ЧM!Z2,g lf=M :G((Y kt+XϾ& |zo“n5UFaCK=`HTθҜPC7&иh8% +*2 )f /9J4֖KFJl@2 19WFkTCGG|NYǷ 1}s?^qo~M"EP4g%0d!as}w.z?$?ӔK^{5ևk<{ {== >7 oG<{??fvr̎22xEëCnUyƅ-].5foc|:a^Udkk$5F뻼`:/oq]NNzo$͸O?|^ryz}{|_~|ﯾ;˳h)iI~VcD&ޠm_[BbB eRL!b)[ܼy$Z, IDATI89>BM$ JvGjuײ M^+}1QCZc@gR>҆4IF&8ضa6 Ǣ\R[GU7&a1d4QUKd1X.F>\' 0/6ցR5 ogg8]8 ѕ6%aXg6MM5rI w,H )>?KOaCJLF@SSOi&0\NHD]$ vd&7Hv~d$1ŋt2"هW6Yz}D^P+yI*m2J Z l]ȹo}ދ!j*/Q{OرA`4^K*$iZ }}89bMi Q[|Qt=.ŋ77YMW>V+໠wSBG>}sB4S?Ω-+~H` (2t:Q!eeuem1[I2!A `4 >9#>9>ɔY˼4aU%7s_}>9m" Qd46uG9;,O9rMA|Plu%nVRgE2C50ojRcCV57ȵ)Fs2ȩl`S ң\wP,*.pCYI/!%AytOϧO$9`YBCOZ2,+.׊y[I :A[2QsY/"Iy0Hk~jY)>IfZP/+E46ic") vZ:;R9!(9h[H?dt:,=bOk=/_7,dꋗ8li)L<@R=هl&="7^{Zcd_?Y\z?}E|z3)'3ړ8䓻 =4Mxg?ngc>9>N8i$ i ^)IHAxM$.M_hUK3Ѵ /Q%$T$()h)q& P"QtnP=1 ;:2tES(e:38:\kTBeh zXXN+f);[bϩ״!;[Y >2_.U/T/%H%%u0WfPIaׂRZQjIl=iIbVe.k DJE2tz;zNRVAD̐$YO'FQMq%b5)% t':mY婅X2,hMu#~5.^oٹ?Մ~rfzX Pc4AS/wYR{ؽ^y8<>FeHY|WY{*;#z:Q,' 7Gmot% &FC4H4E|q0eM"hSeGa1}ʏ>Lƌ҄TPQ +0:+/#6pFwŶ*" #Ddgq![r"B9A d A`O@"C+h'@ -H ژ"uqȣ䣽/E.rA4 We:Q9 RLPC[$6YTŊiA=`@ {'SNy:)9 x)No͛_t]ic\mpcJ%&hDut|r&* 9fcj @0Įl:Ϩ{R-R 9!s NXWO`-6!DFB ʱ8. EHZ2Rڪ!IPE?K.9²i RL'&2/DMh:1:1Zet֖`1^ 4ֲ1f7\Y,O魭sE _{Fg`V/x0ueٟU4ҐT9{UM4)LJËHm&zAO)`FE?Q]M8Z# xrZFDmY#>*7,Zlo(XTrٌ>hE*z!)%X ]*fgΖ7彻')kCOϸ>=6;l^NIJp}6/=u f N=NHoK( ?gKSDjġa^.qG[o3zyڔ|ev76)|v~NSϸt_wŲl2 PXyw %JlcUT_( G#a4KrdڎiZ^VN6{wHNZ(YWy5ic=])JLi[& bHZwC,໥Cd.fI^:,d9xJ]Isކ)ɘ(sY)g匪YܠN֌z=JrR/IU (`H |N BIEIpۢ*ECTU<ϻ-(!YJT= 1Z'| )-BXv7L(ݦ=Yep"+ȯ쒞[C 3I`^.OmHlk#a -1KEO^KlB &)~,h " ̓<>!9' J@#,=y&?k;׮bG802DWBuao{@(8}Ҧ% U!tU%ia+ݟ 0 4IW!eG8RYyݛUC6 Zp ZuzA R~!*z"K#*Ɋ>BZϬ A!tA$$!PQ/kn2n)߽ EzazE $OO\g:#$K2Ւ6 v\4$E D!p:_ A!VJ"cJa,g[V\pW^xTg ~d)_Ek='gK%Ӕ6$A@PI:Ah J^eWT$ib$3$e:BLsƘnѸNcRAuRdtywmR*`c ;|h%]Қ$˻c|q>'fmXEc:A!\<]H4IITb]C 1F%''Xk6wqd1s|xDUUlp0>1ddD.]B1#bD@9]2L!0ILBe9_E.`붢ɒΘŐW=‡R5HdUnDiuxIe:Tnk,_U}4kʦ&:I/݆^i|$RJx{6~q 8Pt#HQh/C^8h0N4 JA%֕0+#R@z'\_xb?딶/dFiV  E? i%|I׬uPR2$"%HE,bYYc2M[fV1ֲ%"YXRA,yExd P&G,i(C$2g\~'O"p~)H[74WH O g%ˮؒHBҡ//*a^81-^te"ӤJV2AlQ3sLNH ߝlSֶ((kCSE|pQs,C0<`ocd !03qP6ِmՂzYTd+'T!E'=yiyҖ KtB ZЋ-61l1wغvb{݋kl]%.<ʹK<{zI3k/7wy[ 7ppDooqtr?pg<'i#H68qhNKc[yitD4.ΧUKsؿwwwG1Ho\_em鄧}GOn8\R|s{ԍGw]aV,E#d:XY.K`19663/,[vHt1 ;^n&4]ef;a$".($:,%;fӴDMŰߧ[$cck :w!c$c)!tYE#\6Ru2%To 5qeAsmr>#:h8dmsףl*R>A5[r6P{^`0)+wxHnWw.X̙) B mk9=9jFEC (b-Z+$EMh+#IRCYՔ˒$dZp&u|)-b$Ia#$KR(y#MW} %AaBPf1Fhm""(ٝ8* j%D(%ڶ,;l`~y k(uC":wP}C6:i}0H"?-ֺ'8[i'g|=lPirn q2~3\ "ƎvЫJ6͂5 Z$X gwXCn;8a7*(h"Cп~ sakĕq]*DbӠC?6 Vj!Rz$sD;SƤ!+Pl4^ r`$0;ꒂ cW#qIHeN "`ƈO%|Z%{ U}NW@<1tFo=q1\}m_9B@s^4~(51*"%G ҢB <"DdΟ]'?tʕ/ګ=4w6d1_Thm !a:9fhRz}6/l3\[gP9ytX%^fȶ%Z3 hQmĤ=uΦLe)Klf@i%+β)lhiaHYW[  X VTt W.!l6gT VciqEO N)Hm1H$\U5'geU0]LY,s̩,DY8cb#3ǥ;g%OHp猊Cؚ4ˠ L\ط{[iC+&Txud%uC@HxTO3Iʍי-evz@hԓI #Z=R G,z&a2$PcrYClH虂$n|䯿i?)C#lؾcm8M,9y٣}fGx"O޷==g=bE"@(%PZ۲,0QR⚖*ɴ&M4ǧ'f!9`6p6>A !}\!LIӄ,mS!c$7J*qA ƪWj\ Iݑ| Bc]eBRie.cJI(\2Ϻa\u`'']Qug$%M);1{١\4a>cG'W_F,%%h:MƜeV$Iw?͐ !v7-IYlk 5E^tImHzEњ1/mRQ Jõ-EQtjgpQ̤H ɘ`hma ) ]{fMjkRb"2t|{~ i3lVH4I nܴI%iB^ȬI  gBIT #;?{Nz{%#(kɅuIJ/@k$YH.f:ZX@~di*ˎ-p8Ň>pai09Դ!Dhj I)z$>Q*0" IrZB$ AJ)-mY=[hbEI+KD0Cf~O4tڨQz"F ej!%*!dk5 ?ӕ[BΡ="vI B7`!:Bo -D#BE]X:u(D :Fo%#YK;ϮKͿ_2ew_y31>h2rvtJ2 Z4\x,+Qlm|0 NK|G 4DL:RLqx2a3M)%#`Ԉs?8}w|0%mwp@*&Xڑf9ѷiuHJQ5&I)[LdJ"6G>>d+Q( >D}ˠk/bMER8{UE[m -k1ciA#bF(o( BjR\A1[9r<]tc9!32%Hm@7-M1Hi+0դ;Ǘ m鰮zI9$ sZmsɛG 2/x"k9^tRhNX7skdfgώXzao;0a_]TSV\{EΦSn: !8r ^}w݄׆[:gMr6e9;aSZto+O878(K~e IDATyKy>쌞 =Ec.g&kj9grpzV`DkB RUK f)匶iPJ6 MUP/Hpz6f2%|d}m?|b KJ@izBIl_m!nZX"(*Np#/zi|>~.U74ڕ kا&еEԐRK'H!hۆ6خT;Cd#ÃCłMv.bmцT #ܽˢs\v$IyawqQk_L89:A)k ?{۶Lnm{f$U$E P@5USm^@-ARG+ix~N$JJDb_l W]Qs$v:d23=]|)-9wTeV gCGIEQ&.9Bdk-2 K%P)YJ {yfM!wE Y""J])$erR!"v^ƿ{ ]Dx7%+L6a>јrC1# C@HX)X جO~3_۟}zuvɞ̤G8GaR"c,((K(r*R @(#b 2зqoɶPfQ(k)"]ٽR/*A-_u;%O2RRΛg2@Sӧ!0"rq}X#b0QXؿjSk7e>"[zh/;#.М)+e`;gK̵#,+_]!\ fMK5{ʝ[`_<||%>F_|Q,\p{OS [aX(C@=3J~?[ߤ%G?^C + |4ƺ; 6RH!h2N- @>HZ&1jmӠDI>IC-%8稊28.xʲƍ]c2$[K+F|3UɃ',d4BD2\\\Z1&ޜ:wϕd~4MC05B &1 Ƕn()G#lH~b!D#3JE C^dJ-C%O/JzEi|.f.Nn.vEqJe>zLfC]Ӧ~M% b7fYb4Gê{~pr?[O/WOj2CJbIM*)U@T tE.4zvqR:4X=g9ټII5Nz| @ y!Qcq7)o uC.j^ԑOO{~Jb e*2-Q4(mvŘGJRNYs&Y~ D"Ker ETiaPQ1_tSwz{r_=CO(gu,ptgqHfez8!Œj4r֫7_V##gQRyPj(P8; TDCB9lJK1X՚Yq}I-2͙p."~d`pņ.OOE .O.x( V:ϮV,ko|w~O|ƣf CΟPUc|/Xxkos70::81-@@v=z^P_p-#n޾7.͖+V+d+%/r(tBb+ elX>}OyO'o&1ۿGO۟^1=2uK>__%~7\>OVM(rMy'\=F趌NʱmP:Bއs"RHFLȲgi oS<~ߤkzkǜ(Q%|x:E*Чww{GEg4cMZb<%!X\2Q4]*܀(uK~UHV=Y7Ĵ<."OS~0.Fܸu#tc} \cqTv׮%WW \StfP5h!"_4}߱X,qΑe9m4ۺ׉5ѶYem1D;08[&CtruRmTet]2y:2B\o;$a)ْ1kQ(z#É@b@jtqu{_%|a/ %Y #YH\baJMkJpup-=U]%y߹Ɨ?䇋dhvd~.Q5b|Lϩ?bqu#㠭18ƣL6X0ͨ=XՂsarȦHa^ޤ FHY:sXӰbw szX5k(b &Ln![Q]T&vt~)fxL5gvx; a&o_+χ gBy<| %/>a38K?w_u(Wгm7xWm1؁tƤP@5t톓gl00̸y:O?!/rvl65mOT#ɲip! {CzhorZl:'/+QQ D rsF4ۤӘ>ϋ^~21ʠTm j\LubJy, Vc#3ɔzry{hB`a7;^<}v%en=;lɫbdKE_o,Β2Y$C@&5ݖ~fh7Q"ǴhbiyltGs䲤^/ D/Q$>#q#(.zgl|;osz紝ck+ExSٌ,уX`Ɛ"5ʒeld:9͸Xw%GF|bͼ1G|;_8.$ysYہFBtm )t"3-0JyI',!ӚMWG-5diRpl62r<_EA 9!xt->^W '5 rVZU&CH JYeN+t,qуmgYO2l[wMggabtf7W/P?{̟~zsm8\;>i?C6#QpOΟ,8͘v}_i6[$!7_}X;¢@u<ٟ!ϘM ٔșLY-Wk?S>ٯ8x'͚me…8Kg/ İ^)2^g~|Hmg>ߧ-3%g/xG??AWLrz} )?DMG`$<~, /.']j}߮L+'A(18%F@tJE(so9`+sbON*dQUIZY҃HϗPԔut?__^kMGT<2xth!!@\*r'W>9;#4k$=?!zӳ?w\.8ZR%ˆ??aʜiOج@nnY2efTz{N.,隁br@Ft%aWlW="r-P£{Izz!(G%T*+2n31RKGz&` ZU`{MTѿd!NrqXV"U@EUA!XZqQGɢ L*{N'SDV$T>Xzh4\ EA%yQ'D`, LKIoϵ\m{n^'- ͅ]qٻ:w=fo*F.y:o>d'?{e0Uьgg70ڿ2gZ#cHfvzBZhΑ9ag6Bwn;4" ,V c:2*AȿD6:1j1뚦)R6x$JC]Pm@^yI; ]CU);ʲ WQ;I8T$C)2Tt}O~c׷-&o&(CD CS\6*d IDAT:d n_>2ML\)2-9"RUj6%W))=;o$ K@^}HV߅}jݜ5v b`rT0>.ac'R7^yzeé;P>ʊ\DCzrbXp)+rD!2u dž"* w(+*xoW96 ghX .*xh.<6x2)|@ ͓ψ"8 eOsGOXj)ݾE\V,xJeۚi.]hۚ(S1*dߒ3BU(aSwLu0t:}(s)ːbA,ytޣpHM)3f̓Sm<" %nnVdbfqe--iN%WG"~`* J.Z LnMӱֆ&}aW1欅S՘8*aK(:qa>c"c0LN;tHG`4(<ȐBc( DՔѨ s=a3߻ɠ _;&'50ʐzm5j Bݬ*X,*zl }O/%7PTV 2sФ`JSS%VH6%9Fh'L*FB5Cohk#-Yg "Y4-6N.kF9!JXkTIȹ?eY *bI9=FG 69G|morC#G5}T>Me_)Ns&e<98_-UWkd aW8P*Ȱ_QgLQ4X8zm) hC`[~d gW >:ڭ79q =ZG3|@( P!PGTUw@Iݛ4IvyS9Df"QPjvwYFq!i/3mG?RJDR,TwW@>LZlؒ4ϰ̸=ܿ~b>\]g$kbs/Yl6-۷EJA6w : Pni0<̘/w!fmPOFb֖Z5h).% #=B)a K״ೀ rcL%LȈð1R3$"81+I:ݎuѹn3K,&5s)Zmb|ݛ߲@#jkNUQֺ$hφp7RJh9<<}1RRb{ k@HƱGk%~e|,Kʲo< g57% })T"x3!(k,m>3{')/^\p'va9կg|B쮐4(@&*@ADZmDXʓ fZQ$ʾ]IEPR1J5hΣ'_%}O>_=j8e@J#V{d{Rڢ$y|w>P((Y{ŋ~v&xH6!QK '!HPB`#G_o=:Go{f)yO'?"n`r xwٌ;`Ӵ߂GsC%6Ƚ [nU=a]~i-g V4 @Q: X@$2! vR3 hՄs#(L)yf$oQHCAt'`lAuRb56qzt6Fl ,%uU6[XB3S!Ü;f9UYQFpFX n^UOc G9mMv}nfL, 6}ݫ,ǑI1x;s ݒ["X*1rԀud+Kmѻ #]ЏJAj#r|r D_h悀Tu8|r-7mlǿ}wz[b R$PD<F+3P?`@1(D%oi!nMY( ƗO 5Ju(=t "gWEBhOR"sH)|Rh& /V4pCO֞T̑EM$r$-stGd\p}Nb FiXlyxxmh$k@fF_d&I.ċk'k*S]"Cb6){?1?wm_!m׳|?>Ny^\^ #Z&4Ԇ咃Di+x!̤ѓslM_}FW`+ &sN}}#nVTbd w>ƻ_sJy͏>O3\\]_νb4ǖnr}ycnG6&Sn:EBa=Cݾ(~ʸI]fl9xaFԑYsx@:8|!7nަk.py;$;ʪD!۞5/1-M. ~貯T+ڮ CcvamR֛kvK\|6"ޏXh]GƾikZ7rt߬$IFF<^ 'GXiT>ͣ_ƑpeC+6|օ~ލ("OPT7ʢTx( Ԍszry:lTU)K H? ]4] ڼ~$%!eךLnx]m}tV|1ĐUn!!daϧGTvCL[]Ga7Mint12zR6 .qo#̊tRlw]dRgm3zQZ&&!d1MˁBHʲs_a}_X<CFe hPb5FhLCVn=80 % 09r2s' H \QU8XR|O_>"ap#>@BD$r9D̰r-M 0:vF9_?yg7x$?pea-IID!32J>!/ __ _(@%' ouھOrP/yg<~ߵr,Pg963)CTY.xɗ/N1W8~> &VLM.f%'L/r|Ga,(x5*':0"NUST2+Cd%)ՄޓJEQLFlzc0* 5a"5 QGjpDiAYl,@4I(p`|-]D@ BP-%54!uLb;:0C;TL%wS.\ ;TM'$ЀEFbiu=Ea  гr RGʚ^#yE17gW,wvL.M+%"E,D IDATKj\wӉ㽟̘D^ _<;۷j=fXnCx/NJD\`g/(my̾c ?0.À:>arhJskn,Jw9'<$1;^n/gvF}hב!0A3Edi0ؔ2JCJeL8ks; BQp\;ɐJN*( ^pCz7 18$y3a:iCH>djY%F2FѰњrzPJ6|IMq~$RHX7+{ޛS^IrUłٲl0Fa %FBn:8NI"B(-!f EL!mϥ !&50`E*EYfD8c ̀ "V*& <5飯]XR-"A]U!>ЕR ſe^+س{_ܤl~̛q<1b&TȽuers1m*u혔HHleY`f @0z!W;[-sqr ȁ$p0I@(A0 g5'QCE{rq5J&F0HQSoB51Ͱzҷo&7}JݥWu5!ư7gu=b%MBnfG|G /^`v B1 {Gr@uỜ?Dز۾#"r7O Q bBpIH TXBtBX3U@8h#2?TjS6aS^F0?J󧚟?<ODӘ!%IU'en Ad:ǁU !_#fݟYi =JԜ\?c }S6%KnO5D>~> uk_/r=V:>1LqW9s#^z)Eʪ.kLJ1"J*H!㴬21#Zi\?GImiw=w1ٟjLjPAkjLaƢ~S~|B}{2#Ds$!@iT#U*9{CD(|{TZ1yp! .s&o4JTV͍҈}M q K*HnjlK k '|?x_ŚQ#V8DHk25y%`N|9Ώ0<{+Qځ 5&"|ƍ;w޹<IFDo͍s9P`_B7ȝ?mZ_St_oɢoRyoZi%dƍ^?WtQmB*iaI'a( C]RpxħY|zPrCY³##H-PFgo.$;%z A(b,Ha.$ !UDu4ghs-O@Ȋlv< ^t%׎_=K\3f &ߥ9Y}%H)4)BD=ETGQMĔAE4>DEbJZ̆}WkKҫ5jcHM9vbyj->{7d*14@,-#nAxY@Gi"H[P 6WT5%sP)M\įw>7'MQs[(Sd| .t$a` =H0Ja%#Xb B)Z#z .HLLM#DbІ]zO҆@;'P+6"rfCBaLȞ%#k"^i 1&  )d1QF0 앷~L"I[1@%MB\de+hǑ2h YLUF 5ҐT0A2Gltw-?.).7xUrǭnq).XZO;ꗟ y?6 .8;Z~%oru+,Mjޙ+~w}v/Ϳb{};pՃپև?ūԛ.Kܠ珞2?U%nz6->N%hdJr}>ӚiSd`^5^aaVPʁ w,3+ݒqAFVùc/t F\^`s;Y }RS5*}.HlZSbڢe6 ^u51AD $c #%q|tzZ1h'a[x;O~jν;lw[fV&c_Cޚ-$>:\2WkMa,[fZU=OȌNs]s[욖эcfh75Zj8bmCdu: e8>=&Mעd3.n<8{@iGw[׃nL7ꯔ `V8(" }NkbBf{:GgyWJ|3Vѵ]>d))orp̶ )q3GrHoHaʲ>GD왾D@Z4 Bٺ57,0ӌ͊W>02*t /Ir^s-7nM\Fqe>=ooux_ok IoVB7ż{#T ~tn|ɗ^=';Zc@u~S4r|pBްnZd5D ʃJ$- L*{$DdG3 I*s],1mߧ>,^!G%PBuAѣ5zzYtΔJ7d‡R@+ !Q!ȚdP,HvS@ ~c&1) VhGSb1>{E:$ҾE(&dP"'|W8E55hʾc5Dm0RG;l|ħH 8^n('ZDkA7;h b}<:%0'dLS%fѴs]n= gVѣDtvXec¦@T88 H8jNОГ@ig4GCIpIb)=?q1MA#E6?p1SxZ.z7#&'$HJcɠL&vpDyBK /"QRyHJ%*Y bY[2$RDBC#,(Eg"UjU${ Sdލ$K#4a֏L D6"R'GxaP,U5y]\V6֊~{̞ >f oNa_*K8b@(O0OS]%a&Zh;eS_G>{M %2):+H"xdU$K|*< IU Ȩ#2냣J(Dŀ R+&ZSE(Ywrx~xF8;k"PxX;~ ;ef}I S՚ʔL(`ۆ}s8t"Ҏ813v;VLffI9!i O| AP >g2V\ 7y_ v].zB&%R!ES)PnD/9ZLAۑ $Xu%U^ŀS,CL&\HtF 8UB70``4/S zɑa.5$` 1(ɐ E%xA(є&4k$W02Sm .P=[(tU\āa$"b0JFBN2Ff‚llbon`69N%lRqXLYh72IX/89W__1Pѧn3pD4W.q$/^,GMM~TJ} z`ᤌl[<>AÃxJwZ`&uyw=Zh>|pqs0?$z m4)$G חWlXn8Zw=!E"pSU>(ɢqw !0Tvlno<t`)ZJv{filXkF|J~PQJPQUuQChqD%Cߑb@+=hk8>;E8TiklU# bb)_)t _2hUJr) A%V_uXw豻7r&2\s.D//pQьCd:2p.~ak\du]c92n"B R"0ruyAw#1hUl7%e$v1\]3#oot~(‹F #@6XU0#lyŝ@k oį qޑ IDATo״Z8g>LwgI+ HNxv$W3'oa̜ e% Ɍ<2F&Arkf}-ޯ1sFF g:*\aaCbO9C{= PoC,"*)z)+=}s_ӊ,ƜэK~_bΊ`[1Tl C$C1@NL*k$]ct}zJL)Q)a3 &Z2"q!(ɴ9jZOpE3kI֪| YbHЇWoGq|rJU ݊~'N膞~e:NgC8$mI B(Lp*30ttݞXQՂq`GJüyOȆ͂g2@%mONW/IuB!(?T8W(%Q l >|(Y L#JLO sI?g3UQF28!j\ r.* ʖLB0ϊИ!P "Z(Q"$!r襇XR@,>'vR1#{FX,-H >D(Mj}vؐih"FfT*5TA(|J[#Z6 ƌIoH7{NO;SFX} 9ӂr>+Kޮ+M`ʳcI_BJ$HU >'%C''<:9⫯ߣ$lz-ϼz ?qnjJdvIDըs:i@%jΪH )2Lk pt!16+"K%i؇ CVbHX:n/Wz?[-ZXy=O#W7wH"CV5ihXK5}=(6̏Yoláɳ(UUQuiLjlH9:./g*CIRFf%df"αŌ7GTԪ"ICȡ,ٜ92 gڰw^jTݲ89iZ e y1 ANߝ`EE ~+į{}+!q.{T?J PW$"/ C8B~9_?RM V(E,54E9I:l#YED? =h "SjRj[@)"-F"CjgAFQrMdJxԑwKB%ɽ%*ƶT5nٶgeqNTD"E$ Y#E`T4I< $Ibbj!V`Qc*>!! ax|o} ͞_^\!d:ixDŽRm1|$ IV >|c3:ړĸ'~Oe[H}Pc+٢n“Gus%SNz GU%}foGs޼^Sd-i3Zo/Ib ׸ iv-y}Dl$[wx)vrnq_,89U 70Y] Y+Y>ѸG~?xflkXg pB=Y97X٣q̟2ys}dL}uI#V 4 &K@1dMCIT/PM_]9.[#5rTثӶg~B yȈ=LvFuU<}#~?Ќx18=zz}C ~C9flj !,KBl݀54mM+* JH>x4z>~)/ "mUvʇ/>% AZιztl.ogtXwoߢ NJfZ];RNJKUqn kƘIF!'50PCkHP Y)ܮn)%MӠYHGl6C͊"U[CjCe,M#6k67kw%<ږmi' !GV+LB3#Aڣ !g`JK1 K-6JwPZ%Pւh[E3We\ޘ TZ8#%`hc1XZB vBR@v(C*R|P%Re<;sCIIRf2#u3T5wN_uu r"2 Tn=j/Kp>Y1R$JJ!)F,R$)[1Ťjxt31 JDX6BK2_f2Ƀyxp￟|+- A"A)Id|AI:ҫW>?w|pv QHX!!d &Ɉ=^vx#@>ԧi19$cR C4#>gr;,`G bBb1'1FIF S.6!Pi q br3ef|E/yn-I!( DFv# Ȳ /Y$gs]̂D1!5")T*Z*@&s r>rZpoѨktQ!!&/S_X.mӧЗG!$@W>CϨLEGdaYgqs&{kD]qf|BZ\ c1 1=<]/8(T#ɗj[lm0D"&\&vy6n")2r6O,04FqۡxӪffn j%H"F4i1Z |UtJ }ls`}PZHⴴ de1cRF$VfnEKxoǀΉFD)1!Ƌ[Yp)P4BħR%R§Z3~X $u+-aLk|8l{M,[ Sf}`lH+^u f4bEVHV|F͛'G5~_& 9?1U9n53 o3v:xdפw_rZtS1SA0= u7{s=a*G3}moωD#Uޠfj-gnbe t: D,\\9q*FkbrX\"Y}O)2U 8: kMS3gCs\]]3 pUS(#C7lM45FR :7P-ӶeْURŢt Il]a%pmHv8K;M7)daw4F#r&n| yTUཧx{:v0ic s5KPgySvx3 w?$10 E3AKS ~'bBچV9ddȨB%`DIя=IJqD,zG6<^.a>졈,Ěβ{ .xm~ʎ@F| BPw/¨C[?%~s곿d#o! CKZu&+O" 8ciK}V!_':34ZG&Kn|S߆O36gT'oGfc ! 5! J"%/U|b؟`8Pcј,ZI)C -LT̔,&&}hЀIi @j6$7zC0Mcj0$Q\%w7& Fj?-w;$ yi=ubV冸PPO[0| iM$Zg:ԒZ[M}BfUvs&Mkj!9>e2_1/x};j=4#k4ʍI511Y& $S bQ:;L d%rc:ylD=F`eT#6TJT?|a4eMfEuKfsDIISf.8Hd!q1s&A05&g9ƒI4)tg M6L RT6}0 EdjZ1<}R!$!t28p$c픕Iu:e-5 :Yc iQEܮ"G8[J;*iN1\|nM?^o|ɤ{w6Hn`>99gVM\lxdƃfڱ?=gb%c}7;PٲFO&0m8?_1Bu!3;L]!CFɤ8ub0YHtr曯WWbN%JJfGG<{}G)2vϴnDATVmwy9W7$ŒlGv͖c۪4¶ B BJR[n1zJhc R 0ж+u-F* s551Ev=C7ðbDyE 52vش?d򣟰jsGPNUM&- |7e s~7#ӾD.+~Bk"3`g~Owog%&~߇TBh 믾b=!e?i?1TuчLBXJ $k'C3׊4IAPb1O`ҍv<MGP $,IB~oU0a`ƻmß~[ͺ_ Je(CA8dH>B SW̄$ZҊ)XÛ>/+ QNњB]"Վۯ/y7-aY!RIiI<܌ۢdYe$_=!gꦡY߮VEi4|$*c=KݦG*A7th G#dvC=9bJDo1ʰ78??=iLcfmxx2G6cw+8 -.96٫ V|g|9yFaUA{/+ed"RdfBa+U40W"Fnp4"DT Hbhdj^Ч#S r$Č*62IJc˙dHLbcEyoH FLHD1Z1m5'\3蓦 id=BSdmUcȵbKfYN+E ^+ƒoGG $=Kٰ4I 2w~zW7(+#C5Z'~ KCv{σ sc&1{VϹX07 IDATsA>z8[UJV H#V@A;%[ɓǏ-~SssXT6Q/lxT=GAxϦ6L3BL4ME oohm4&1CDXq)S<8"JKBGlХ`DX}@qBCc2#f:u;&)cס!84C;Y%58I$6Ȝv%f5Z)~ĚJdQJS7"cQB"d.ުM P,HLfXm׿+4k!" H1 e0.ƅ[սg΋}(ڡ7NMdUZkFkf[HrNຶ(ox<\Ov3%ABEYHd9d͈ZGbE%” E>.O6~ Xz6c~z=9~ٶ%U 02D2!>w Q~޻ƀ&f*QF"=NP I 6*l2l˟ǚ=aRv[:o;e42bAF⡉E)b ˽/F}h#P,ʚ?w[b)dH> S\՜$+BI;BDi*Dڒ$t/_Oߒw Z5( "+D$DQ~-O1mx1_2/6Na/|zC65sd<4Vs3 @@V0z)Ļ$Jè`́}lMdB҈HQ(tvfXn Z&)32m}5R ʡӈKɤLffP@YA-:&Z/TQ0͉)r^[EkF檚r43MJ 8*> " ^-Mp*Qu#bj N>fxY{hƓR|Xgv{%I ~7asf+-AU𣧚G 빹zdVӯLjh[A޵<=XN&lxTɢ6:(21]bu|sk0d^'r8jũ-c^Ϙ6 ∋=m;50Cb^{VvnEI5Z+~wMMն %T 0 eˀL4M Rk c׳ly'Lug/_1 KV5˓3p@MT8=>Fdx '7+V5S|ı JKnekR*AdBч{^/RkhibAo 4EJR5RZٶIQKWkG#hꚺe:)mm+bʙ t Hx"b1gstݾCD7@4~zeI%؝/tZj*c KiZDJuN}ġ,n42HQGlZ΄8 ,mےsf])̸gЖVLQÕ*^ת 1A&碒7u~w/o&EA$ِ!;P,˼ 45VH4>%AXΐO?`[S4?G,Hnj=ENs 8 |JPD;Lߛp1_ho&_mu (w"%wp x~_xL'`1AMh ݐKw {lJԲ BS=g1 $*IGhZRar! s;+O-NL !'CN}#eYjcηz>j|3'UĞw?ѨɪHFB):C3:%QD9kK "c&+AAA)stB&yoF2,m]Bd2(i1Qp㞾0M0 +'? 1'7+}S)5PZo D7lQxL5T5c)6 U*d ob$svkd9֨vCI:־g#|dSO0~DwPd%I3ͼX33:g!w|lma?ƀ *ЂHI3Gm tʠBfV)I> քJeҚgCM9(,>d4 )S¶5Q BLH.%f2c DfWi\ Bŀ *ĒS[s8>cenj eUrIDd2*jF`tCh NywuJQ'z%ՖAIj0uZJ1h9a%"FBe$zVOYEtfPпM\ >d)SR}˃#fOuqY7 =i%X/9^>Ga@sɘ:^'5yGg7߆CgXisg~˜"ǏagsPR*g$ZrQ ^P&گk?L_,x8>qp#*ooRB+kU0"|ݫُ^wgmVo>٬l7 矱y)ML̴b>kHFpVP?S=ȻTĴ`"vhaE w _!ŗWDd~ɍQ-,jLfV5>;'f] fTvDHJ[ت)m))bِrP+=&=%%Jf i%I6]$S7t[~$%\K셤AS#IVcg-~95jLHV8"MPԔ%m8]TH!e-I0ۯ}ǣMGܲyf?٘@gB>,J}+ZAb77='W :n~נܞ~pu5kmO4òxxN8^YQj΍;w>=yZc,@3ϖ\aӀsIc@iFr[)˸CLR{F>~yl~N#G3JkQ9GU3K_YBY e@F㼛(gZ!礜 n@}T!U][g PAۂ=>*|M-jϟ={l#//,P |(4)$f]5|im$`: Hw=-E[yUsyqs~I'Jm V")uD!ixQjߓXcH)b`i[l!E%8ܰˣGo$UՔn,ĺ%H3 c!H k hE7)s.qJSEf4J@Qۥ+-Kd`K1h)Y`9yn k-6Tɂ󤜧кNIso*dsFTBE\nnr:Br1IWdW+4n(-m7F+n?;O<?vhەv0J`D.|%: y 1FZ"M^tlqp[,;ZCs~=d6_ LE%V(&syO)vmI?o( wcXYqHL[)!c!ݞ_px_w=<SOL8_{659iURN)6Rqm+xp÷<& @BsIrO#?e!pgD.vMDDe|$D$Iʒ" BTyХ4Gt/9W-]ҋr:ܝsGcbL@@j 9%NTTRVNfH?2)J6H|q ֨-,Ҥ%unf;߱80mQUnReAM7B$-Yf7P#UE+ jpFF0V@ć,`H]Q rs#aE!\d *A~[L@(F **"ּ4>Dd!Rj C ɊsQjZາcc%@m:p¡ /wY#3*8ˎt!^nzG{·mwB/+v٥ ;33Os<+&?;įoyD I qhԵ#;@o6y#B$^_srg/XjXJNt 9}§ŁWuIs,>p~t} FQ$J9E,l!RÉT9؃]H0iZ HC ?S㛖GjQw?ҕM4"YsN>&W`D˄)9Nhh9CDhXj{xv -&FjmJ#ԭBE*$֛so?{_?QG_ZO{9FG=/-%'ɕFb0te"^)}L4z\Ss>}W+T],JKBo>~Jf/Hq CO3Y7l;).|<5> 7[bH!yyGLJxu=Uݢ U]ĄG$!Jw1sy~|I /_rtmKasm >0oSٚ Ha`5QfX_`<@8rxzcj^s/&2X!L<=Yr!'Զ»VZ&%Pʖ쫭"ORb:ocUFn6k65o!,I,BO2fd)h)@L(-AL Kf"!CP;JjBe9>9UBPJbkR.I"J 9D2h]!MU#rDpbfizMeRNU)R8:ں&\T# Qs!շKREdB)8ꫯx_<40Tpx9|y}vs4/5s ؍].askbx'_}@],Os5`9MQ ws|ogxşRo[ wPg]p};32ľ'<{ӿ\|1j(Nl>c|l旨W͂n7axs7 IDATN7xחUJ*-D SWZK{ˌǓEn~rYH!`IjQj+n3{|zQg_xK\$W-J-7>G>`,W<:#TdEɊ+\1YD]a1A(jBO.S!!Gr,hѴ7fN =*%"8:C~[1 %Nd$eSY:pFᇞˈ2iAgO 0cADg%I3"G"$!C'Nɉ-XY`33[3`1N'6flsf3C)L1{$iDL頰, idVKِN[:'W$ fcJm2DJUS12q8k[ц$0Tb%)ң:чˑ<2U]D90߲Wqs2-NMc=yCN,'%U?2^\qsf]xZKr*їcfƑZs(!15Dƅʡ,c,ʒ۴^D+Ƅ'$']ו ̫906$R.[S/ƈTwP>`Kk)q?U4.!$hIN&К$XOS"9D"kH2D Q0hAYJ%"K#g~Udˢ JQϗ}$SFr{sFUZ v /5QL.H3BX&M!špifh1uE0fhDŽv͒ZYUR M=MVɈ M VL{0!z|q51).6{R:6K~Nv5r1sO6h:J|\ ǟ^A/aӦQ P2;AčUv{NJ%+axқ$ر1; ,[xj6c O0ǁifT;VG+f4O?~o0ҢE8t(Ѡ[Ca!l` 1hCKɳ'|~ _~A8?ig TNBN ׷kXA_ۂ ?6}~])FxOy_1>Ɖns rs䑔:`Glj,/h! 3B4\b:+?p$9@h1C=`ORM65h[%FA EK k9Nh}mX5k\l $HI; ݰ'(ڐ4!duNj%朶À H)2FB՘bzA8]Ne9/0݀5Bhh疇O>}тEUs\roW}ŋϿnpZ;qmX3_.Qڔ+ !fgQ1b$!HMܬA+KTjYo.mVeЗ-o2-'Ʋ"3(0y:ԝÄGG%K]Rb7xk+VE=QGVIxlh-Fj1K!Q =YADIk-5y|ΨʢۡX53#221!c AȈ()$m"ЦL=J*%NddlǞ`0ؚ@+%RZ;/4"Kji+j2J$ŪFYѱwe$[fq:Ff TB4كKw=w^|r&Sùe!;>͎ibQ M_$0R0?jw>_o{~y6fbٲps'dXyItJD"PM&a*|\oe=OݪV-{>vիs!na i/Y,(cx~$M[KwY{VH9MlDu3b. cߓCC`9{]vݎ0 Θ Ji;F$6#TL,]"uo3Iʅ\̨eya,)%upZcJcTeD?qk30tT&lF]P @ D )A.:JkږZ \TVrYo6Nn:bSɲj;O 9\BHwĔK;/xb^{Xu)PJ\W5CߓSƐ:bZp+I;1yR1g777\]] %U{NӴ<#r@d#t縳 _v3Ybg!{rWl|j0Se-M3ރX֐ Ծ[ɷcR&we5웤X{ǙtDw3lrb*!9Y5B8e7_>g_ 8yt3l7vĴ->ug~?Sn}A}̸?>#sT\c:#DA, A>@|>hX ,>$sy%BQS%Uu$m9[_wW{;G4|8a`vxo|̯7gtك$]deQ-xc䟼?yxG#/oع05Yr  2b7^^?y=uݰ+3mQBK臎;+~wo{"iTJR+Amx׿ώ'9f c&II3[Il;2A=Nt%}?cDkS #FWd$\yjJoTuCٔD΅'"x=lF*dx1'.B(h6_iP1K0-\ $ *l]/l*3BoΔhmQY ݴbIJV5!cM0:R[1;Z9~ev;0A J*kQ)csf=*& |Gز"֖O(T>DIY3$uH:A+ ʖ'53j|} dYGs`^9VM{BgqY:9XZl-g~bW3[[Đɹ H!vhՠ{|8~-X))@2yluň@0 y;/3k" Jw;w$iʘBjxWnr1)$劺>}`Vn:M9W"F$k 0}bV՝oR!G &Df%2ڮ -U"LהS!5k6C% g7r1Oغ0`bI /_Igt"\,Z튲n/BɬVH Un/U15ErC8VJ!+B(8҆ zQccP&ӅOkͳgOy/G>7dBDHcSO ;pISW']<#KƚԾ3U~7ZEg5 HT~[A -wY^oA Qς)_ٳůYݯqO_P,s 9& /Q%)Mu2Tc#s5!@N[!9]!tYh0D:>#ĝaN~.BR,HGA#)@ <"rBQXID .OsG pSޫˁ reOQ(P$բC=Fclni❻|xl9r"ҡB!y=08fxv58jF6J ,JZbH@jeV+jiYUȒ ŗ_/ J5~We7E~m HTU0Iݶ87mPRr$2zSK咈vFj,_س%;l J2jI#A&Q8&GdЙmr8%Pua\&hMZ2eT,g '8jA-Rb`qaOӓ, Wi{sh,m;cf*4PhPX1E,Z@Hm:sTtp%"d!)0\H$3Y>AJ(#9;,\ x/ËDc Zh)uJlV+ƐïU J9IikpSZ$ݞabrO tģ%H|`USn&noiZ*hnEkb>M՜R4-gE4Ŏ(`] E JP%8V,`C۶ ł#.xȒx'!4▸c,k)CUBk;̌ƁuSbۺ'4umY(U>*H:%J<GIpغ&g2!O67&T˒`S2}\|heeO)]P5Oh*41JQc+6p o߽B 9cMzlgu{tܸ]VVbXIlS"$CCYп ?O<@X"YIY]fUee.n4j=X;"f"q9[zQ/$NKD<"1l!Dȃ+.#Ljeh&]Ю7'=/ώx3cB|\ɛw~/=wQTE%<ԍE4I8jͨQҎ,RCՠ>C3gT - _rrO|vw%F46JJ"##OL;w-&$u9Wϟu0LP;Gar}+޼,/af9JO?a8e)0%BƩgЅWTy t lo)G0RNم\h22YRVxӈDj͐Hê]a+0M}=AF|}(nwWI>z|R69 TsU$#HYk( 1dA ihwd! 9u1`*s3D9L0o ^+ՂfO7z4ƶhB,t{6|tpLHP'ɛYrq(2+ P#Vjǐ%0lJ*zݫ^$d'MyŁ) K#gozns MF2msa$xhdŊs4$0&+{. IDATo^%oٜ8/nY_f8dTzb{yw<}v0z)UEk̞hMѣџWC< -iLeh%1ĹA B %6,f8J$@"tIG!zR9qiF,qBg]׏ҋ17opg0IgϘL˨, ܔN;} }ZbAkԠPTUGlT Id äP!W4}Z̡c_ m3ذV,Ist~χt SG />1ad,e8A!HW x "2Mybhh"Yz%z rj^7\.jIS !?@Q)GU9z2ntz"ȥSxZ՘UfvIڬ'<{s ;?2H;fP)EFM&+EL+*0rcδb-68@+˳ +\kDGI)sƭ@9W^FV\ Rf}fY>evY!leS#i99#"%gDS(v2/Z'n<2!s9>0*۳y^ JقpH]Ǐ2߾ZhꆺyskXOۻ[4cuIO!`Ly-|~Fc%.f/cm m15aZgCFLOh9 aDk]M\7btEhTJo6%N#%2%-Ƙ staSHScmY.SZ8}~E]Ywheh!ZR-|yZT pu0 (Sc%NA%i 1eF!m|1PW#1=7}_} ?]wkӀK@g^pALHAyJ*@6U0S\^蛈ٳFQ쪹`LI@(Ltd2爙q^7e-l.[$ex< *DdIB=Mp%}K?3YZ Ôi3J7JNыQ쐫KRU"7 . !A5.:&))azZ^%iJT$A#)>}@-2<~IK Wȏ_e9y(Z`Q"S(UaE$D Z^aR,§ oGǁxϟ<lF%>]Bv[N_!akO.?bTn︾ƥ BI41|wn˟\sx7w⼺b O߲~8a%4w{H=]#Bڭ q ,2B&r?ЌGHWUGw0CIuaJeL0@Ș0SsJРD^R. _ )ET˝ rD sY-! #j҈!!sч'rt$ [")%Hi .71MC>8N;*pϯe-=I+,?:={7oc~qI M2t2abDeC]5("0H?XbJLk/bȉUx","FΚyFC5FD81 gN1k%! l44"5tz5!n䦒t L[շ?=o>&p':6ebWf;a*[Et 1sj-IkbDkv"' =wov5vnyPfJo(axva8"NxǑV BT?Ï=qˊX8|E^}w'r2b{fUCރp䂘͚H޹ %.<{vplح>7>"џ4"x޿{zLb9gmps{ò[2e $ӑrWĻoZV57tMKJ~ڎ=n 02q"N#1HO$8[ѭd`Gh%„ T%gfݑSBن\irT.;w[zْCGa.E-[9#0AZ%Jj sDm:-(Dr${,F2) TyتDFfm>\ZF71MsS!BMdu"!GX.פYfᦁp`X !ZÄ#_U˜R$MeK] A?NకEKbUYd- DMl93RcJrI 2΍TUByTI\Jl]3]X3e.L=!F Pʐhy-w|u]ؐ'7 #wX0D/3wLy"< 0QҌ#2vG."0gl r Fd$2k!dR ^˂R!o_+5tvRȥ 5ǟ׬ZKI8*eDS나SHvmX?[Q_h&#IQA szjA5B0W9xyDىfQ8~"HafC %F |_HJQ-̊/Gˏ϶MG %2Mn4D"qHnH\_ Y-ْ!KHd{]18ƜȲeVdйȚT7ě;x{ 4.YWmּysǏnHB('Lt-[WO __~̻׸7G_#ݝhPh_|=<ї+$!&+֙]׺e9DX[c֘U v}*;ÞjK?E͢ö 94C+WbNys*%[H91/ xft̓VJJ״' '3vсPXScZ,S_&BK1SC2aYЇ@۶,8_mH1[N~-tb{bfEwzs&NV_ss}{T 1)a,жa7z6*?#" ! & ƻHߏD#1 쪊#E= Eg4}UnK!&ۜq _?gּr/TBD#ݪX F\GQŴ/_h f$d?rⓠ Lň\np^H f`Z0uKF 'IN-Z-&cg8CZIT"X_4q"W۞oc0d-Fiԍ5v5{, S) a8-%IeV5Y&ns<H!+;l]Sז[>x[U }4~Ҝo8춼yfMX<ۖ1[Y40mGӉJirfTT ӜikK2iUan&J?2E ܏cX=yRbNMC>EWkG&7sQԶmSM ad{N (ݳs|LĘ\1ijrNXk*\JEe u]lR[K4eM}3Mł'WOJ+s)1:'*}_frCirANJ;[? X[c*5S4Cd-94T1:1qOy?F9퍄;+ %e/ci(?b&X u]1ۢ,L[PRr.GUUsM%9%篛 smXt7N9+^7;K*wR"W $ F>HORVQts ysz\PW*Y!l0p8H*tIF P48Ă242*'TN_%m,J9gr'~))$8*DFGe^MP[DU\2&Th'ISeH"L2ME+bX]̆,;գD"$&- F'Cjb_lGSdN #||_;2-9k/}*!2ќ g_~į}Kn%[؏ r|>a|_} ĻwKDC.b"0&TH` ćE!IEeLi+å1c'BV8ֲX/ q*O~;G <ta4\/:1B!FrtBXP%591,TEgkF>"}y1Se8?UK>GUL,A+,CXBdZ$+TH [CH2QFa=M\+DAW!8&n|)ָ3b;=~{|k~k-PԉiL4R"ی5萶&TGNecjIb͛1x/j #3uѫ|T:쩟\ЭDO.4a׏x8 Nn :P(VXK|IDbI =p,kV>ਘDY_ U4$E~q!{O'6kLX ̫缿.Fя)&s:~5R.xaO-䢋͡i΍G 4mCS7l ٳ2@!hlzS^ihvcvYq 2Hc'QԴ89[RY/Еܥ> "rkO.ܐجּ%Lbf{Oh$iD*6ykk>xWtSU1y1\S4Ls"Pnb臒<5RR$~ޥ4A.ئ!yx$eճ`AWT"yp5/7]GUleL3  i4P^-J77m41L87`+Mt,\t5R납%ohEYQR&DT11 #D*JW1U+!N)v^ꑙ,RF ut;/_c9(1z|z٢d/v#qTF@)OVrKT>Fz2aӑȳ%r*JdN9sB'a؝q T5/~H$T s6GQ)e.fB;~1?+T3ȉ*+LR`"@P4Q?M4blϤAd4HـPDo[1a %WFӜؔ+LwM~I~p?G/pM6D%<`A K󚿺[ǯ^QB cF'F /'b&X 9*СE !)ǪFA%J yd|">O9"T8 oWoy~ĤIAjF "J}B?_M9&L@>:ȜP|G?aFn=bʎy5왢#f0 TV,p3 X J3n9F3tя=FJMC8TxY,.:FחmH!|x焔X6)ړs%+U(%gZDn QbfXci3H"3Id&ךl uҌ9s8a\^UqC5_BJQ`lï.k` HتbĶ0ˌw;k*4 =N3JCqʡi)bR"Y75ŌE UKk!3OWM/!#BeL =Zg.YTSSP^q}1g[q78W)>gkiK$O4 T0≶5Եn o=೟m:6<ܟ6%c: &&Z/رp:r$W @lɌ}۽gGX)!Lgo0x,a$ԳY/Tͽ;\a@ k ӴEY'o _O .Lc R3Op§;XÛoKb"nYVHnVxx%Y-Z㞋.F8<[UCmkmYDR)Gb8CCv NBzIy69q<s o9~xk ٻɛa B&ND$lo?w)*R_2 XAjH$Y&LPPHae$vQDU!EKq$R~K)Ux IDATX!/Q_>^{C G9RA;IeTrd$y=vWܩ (1Q%Z(̠Y4D`Ғ&Ѧ%mlFJu5$msws2yDp;/,QdWozR,Fhj )B;%ڃَt},l̒j 4GU(2'{?gp8X:dPf=);bD9 @I6+Z[%"@Upǒ8HW-ÀNW%a14eI(QZ!R}f7}$E(jk LcR$-6%E΂IT3eIryn//IVpQ+Ȇ/_6 p7ٜ]cA^B StwM5ޣ]7Y"4%'UfEId>#JPV[&MhQ2s4m$vdPP"q-xX"g=jJcSTuT;?ggWV:p巴 MTSZs*YcZPac;ώlz Z;ƻ1p *n-'La@I5"%~rHq'g˚Z\cZ& &6/0y56*^<;fbLiT.ۘ&5k =5L@cuf;v3'h^}gv d{ؖtJquMf0U~M4 E8 {e*궙'O '0Mc4:v`8𧞘c􏢁#9b,JS" $JEB׳xbbr3Lcy?FLmiaBƉș.\gئFKԓbbY:b2[^Hab9 $ueI1!eAX-@_*J̯Q .4UUQ)rf\4_^3q/Е)*^>0M !J"kHFV%nVFǔMSCdaKOVyyt4!TCgl$% l|Rb0̿/Q@!fg1`!%m6r.Rw!>Vsv~8 *-;_!d]XDJG 'i@O  UQCZt2!"BW"*I2{#`.yыo@?hea<_+<ߔw.?\"pd` DBW*tů>e5N R(,0d<lLԑ`NyxpT@,^4e &QtD!TDIJ /gȕ.%5-#7BhYT/ۡӛ^s-Yը0!a4(CzXSD15:Zss^bu K 3kR#ȔbN)C@vO|#D$VKJ"b 1rtII$1n79=͚qrtO.е)T7Cۚ RՠmwzzՑ }`` n:`Rștٗꅆ+`z?Gbjq*)15> D(ɸ(:kr`!D%QUs!zj$4 XY=p:rP X?, z_~I'n}__קrBW_~.ϖg{Pck%݁ˋ ޽}C] g=9&5MMGLSQՖn$º֖Lf'f"QsQ.lBj+^O+`Y} fz"(O EˌX[VOv4T AEUAΔ0AHZy;HB3l2q%OVv`?`.d}"ˁ"gL P19\u?l μG;>W/,SYY`r- E_cX^Ԋ-4HᬻW;m=TDk)RB*1ДJ1>zo'8&TX! J)aq,H%P44{!sQ$Ot˕mѹ~!ZֶrIV5LDI#ȜgfbSu[sdDvs-hS" kkY!'V⃧1 e414Τi~-0)M-)T 1ZYyBVSTeZ)gmjA/Un`Tn3 z "9œwx)~sDtg[ǞǗ<ꊫwG;:]/3ʶ 99/s.rUKB:!5HbPc<(6d!ХEsVB?s'UM(rĦ̔}@, 1k"dUZ}LYxeg,S ! c1#X!HӚ ^Lyw{pns7DuնcHQp("N JcZpgtC9M1zZêW#rVMa`p䄡p~l{|?UlYOCKrɻǑH`#Dmb.tvBLf#;& R4?x? ^z5jW a͎ht`!$o1z? @nqmqd'cPЭ;Rx8)hkqU9r9JR)dQSbgr*5+1,Bgir) Vig[8au DʂHxXNj.L%$1_jYp&H׵Uu ]ж~=nf$0Vq5cR`*XźJxiQuD0fֆ;1M14PPJ!m}I?pwCvr8#%3A]Q1J- u)Qry L"\ZZKa^bk%5TD q-CR|ǩ*) ;Z[y. Di[Y: Vj, z-I4ҒXf㧊S"A:" UK6s!{5LFpJl/x[5!A֐DnfYho޷CET}C}f㛗!imDR HtJg~)y|NIZ)HD ckR#DTl,:U4g;e )k\zIƣv\6\{"E&<%Ɛ9ClVӹs7/$OQt:DCa3~.XscYe$Fdqc]ּ.]~ sƺ5=11L( u)$D%abTyxytz4+H:03I_eBdL$Q.NҖGa&PTDs`΁,%MZJ8c_r˿'dd<΄y)Ñ4&8ܚ˳ 蚖ǏҮW $R TV S81Ĝ%Ri S􄾟@Ӷ4ZPBc*sɍ"F^1d=FUPYTDE|@[C҂(B#h?H9PTb*ugO:D:I%Ϲڬv?2_kG۝A^mحjRa%m0 =K6"&no^͋׼\}}Fղ|?)~G'ǰRD7"%h$JVF0j|`0hbM#d݀l(Rж% [6kk aմGVu#cbk- К n_~W\txb;Q;ua#Jet{Ng1N0EV@k;(8d4;gge_Dd38crJXbCHghq D"e z]b".Vki5VZH{֒J< u[C՚:J)"noܥ+DYdc`jv{ Ar͓:B k0c|>hP.J.x|WPlAN)KZx ~ѶPEEj711-qY{Y!)2aQ}|<97ޔ)eR8)%TH*M, &F6!FRU`!`Qj?QRJR XKj)Fg4?u[2LR(L10 ,bfVoqĮ# 3x+"DZCHyl-c簻UUtʛ.UP2-i_סt}QZY:kͨ^ j5Ko Kc0( 9W WpWdUV+*!* !1V1g`3}0 k# %M93!qE9}vX{A~Hkid&,`FaD%s"3)-Fdg%YYcL(C|{Ùk aZ(D2s 0R(FzqSy?#YAq&WOq8 tΌ&[8=kg,B&= 7Ciֲ80=S[xDj5ʆFr.R-S.4B)&)cDHA(P C"hfb" *h"sʉ9(΢b>yt]=]8_W4́gpv|POGpLخ8SOUGӮA &jgGsJOCD.fxdhEi60qL_FZ3=( ,yК61yϹܐb̕䐳F[_Z% <[g^3g> Gg_pA={f$zl|0O'^m e>rf W8QNޯ0$mHLaB5ioQ5͑۲⢧$sCj%oflYU}Bͺ6[Cp?O<<ŷ'D3YZL+T|9/F+TngLN_mhMf=q\]>L$wU-3}=<#Zb H/E1ĉj}$Qȅn{q-[iHC@I1LÞB"?4Mk[q$)&9QaZ 4aZq{{j]Q#HKE%%iqiHiI~HzHcS"LGURZK(Vq}8n~9v7@ʉiй! yHu5HvێESp8n֔ұ?QJZhch憅(Sc1dYOvieN\ Q}/@+KRQ7ƲD#TZD;NHehgP$t8Si(r 9bĹ0Og[Jjf*H!ߓ8( !O k:[J1əqdcZrqΠ4MWJRAClIAt+i Z,933M-NP?u: Gry;n' *TUbUM"W#+xSe-EY7IH ,e Mu lJf'? kV.N@eRL ,GS HR JH"h- 9yaJ _lYoÿ?pg@$A+CZV-K DR%v <$BҠ jjCD]ţ%Y'*!E&LY.'o"sgg_qAJ)zyBFOqJL!MT7ȨB툢)9ɗ/^x)EB%!"WhzcǑ̬r`U"6&t5.kTȔ)'6#E”™\Ů #Fx^YFF(l5s%T7{?33L!B7 N+=32wrz#RƮW5߇dN(X1c~81ޓ@DOl!HߕOZDi؆UVU31!^epJXs)$%fDYA\8RWj3XLӐZ]V݊_}C[czϳ Z<C.yF[vQd-I8vh$i$uH-)qh\tMSc7Q2ʀsv?VϟSJPFk@֚InLDN=D{Ofh#@%b2=$r*Ģ )`sސ9QbHMc59NlV((sd< 0XCAr:fHq403S1e0ռxqZņy8gYcd'R(Qv?P2u~ў- IDATe}c RD_sQNV`[|8b住9_:s"tLӄtfCu@ipMKL<9Z)y 74"$GlvÄyst축4 H^a=Oq%%΀`*651:B*Bz*-Hr̕!*w^Zki5f6y+Q)b hle6D3]/)/$XIzXP J ` 4tMkBHuh,+UBʙDl=q5=u `ejiq6u[-dͣV\2%&alK$\> %tg 12#<5M-J>j.s5X9j̩ʦRY~B2z9M-orRQkT3ylSιJ#I *NMI$RU,\L9%4K}O;n;tB5+ě8G(!gĨ(^C%)Q}!{t Lx2 tHԜPsU Y?CcĶ%n%ȲT/ezg _%emx ZwiU1z?~y3F)/p@?yuMAtF|ޯ~H5ggSERZDD#)`l $b9(A`uEF ƶXՑKiK ɢO1BjlQ9:5c cls|o@8W&3YFv['g-||0EH3Q+Rj{>+s_EÞCd%F@TYB"A LoȮQjFQ(djKH*:$.kpIbXP1u)2RĚ*iƷw?? b\]աx8v ]p{{"$NӴ _L9ibޖ#~NGͶ1ݟn-eG@gabZ %4F&dPM[JDaxNِ_3ϺJi* $rP 8Ng$\/!O!.bDc]Kjyj-777$EKVg/ݮ`_T[X6Y`/ Ln_ئ՚9Z;{|nZrhZAT7󴳕kO% )d|cfLם}RҮ:NG֛-/_cir Ԗjd"s 躎,GPe"܊}z1?UFZ!d!#yp|%K%c,/}9RJqBۚUnۖiZ;0⛯8wl;m8LP3YWLV}HŠC# Mc(w.BS"f\zݖFʈQC)0 ZkMjMۇ8 ,R 3͆'OOI>>0y:[[IGJASH87~X" 8Q76v" }y1w~n{(Vh5zaZC? l6rZ8r| i96e 'bR]*C.,2M1|e YY-'3K4Q2=dڦASkmx+ eM4,86!f TJQKJb}*s=B:!鄖v<{yB%Z4)gb,6.-x`: 44U}g @J)!)5(렮D IjFB#at:%L>\e ~e!y3TzPb)2.0%=Ęj?gB FQ)*ͨ"ʎ*)#E9Ԥou.u\4W3_,OjH!hIRĬI"puEWpGs5 hِ5)8q"`yTV>^h|y5gΥk,:Kg\Z>D%ޑ=iBV"/&b=P')˘A-R,bEi%+la xcūM똧TOLqFv=Ǐt9Pʌ6+8sRPP+w{i:G!PDd^=V!̇SZsc\]X7}kc|d kS, xbN4!Яyǟp$̴C C77״]GuƠ& s9e-1mk("Klζɋ@L*6 >Q%3E)͚(EciV *! mzT:jji}Y٢i{\Ȳg-cR(YG7C+ +:@ !@{\^y!IvU%gsܾΘ7}RE/m s:)T4gjաbO1ćHrQzrO+!xeDUjBJFXS*5PdaUCy+rG%n"A bs:>"h#$OIyVRD{ϑ95>jf^__;osOǯ_[JEY6LfHd0fiN 519 sBjSsH 'Z!m-W$m^Z*.{,*C(/_Hÿ4n^yYd~"$. KW ddY0(Qqbnɩg5RmanKTk̽Iٝmvsin7G86i\I%,eeB0(*A(!$&9_`J#( JRi'&Is>y2X%1GI({{_di9^L8$RY+AMDݓP-j!ʬ~ن沙BvK0Blpsx|~yϯ3t'| ]&&S%5" T)i=#ZQ!OeOY`BA)7aXsbx/ yQ$Hai."fGB7`|bE,8”bt'`%vn8Y"]x}6oe1(?/~/[N+iz`sh,;l_duBҶ 8w!ɸa'Uq!|FTba4V DU1v}tg3teKkL-Ik|QByPo2NjF}$RtΛR`ȁZ Y HviGcGlS()r'EErP%BEs\"eU5Vڂ dzT Lx]b)Ƚo[{WKƛx7#Җ_fA*xxo7q;W\JaOf@ Um!{'d1dlÿ!olr%[q7޷IJ` %>W?g%ihe1H3&e͞-*gkmczE7HBhmaye1e>8SbVVi29Lҏu˲K"~$)*\*Xj+rk*2kO+}$ mL)!v=gi˕V+TFmUXԕ.eGLHZ[;֦b"9$2H-%1 (+) )#I%"9DơCKEJ: !wE Z҈ ^1qż8˝ovIS4$p `- LA&1lċ7Lr\bRI@W O#¶2CDGIYUɼ&ṹLaaœ'wg7Uhna9X Wԕf7k aB*O>Kc0pljr,PyB"n8b& Q-VE%a:TC 4$σ{ՠx*}<~]2a/>bj,2 5,HX ~-Ւ[7Ep<YW,)2N(82iH2Talc-n4Rsar=Le;SDȢ Y6-~ 6G" Bbm0&3USfJV2eL.DvZZ!rƍS)שB_(26y AT ^ VŒs)H*:v !wp8'm :zI!ц(,ny#P,-v8J+TYVe9Vm59G9B*%_)%hc"#.0Z-sb4%=]!27:H`"X9",߯xH)nV~-xcf#SYC]T6OJEB~Mfb Xi,/!$qg}w3w٣DR`rDM#bK1SgE/<1aH uVT7Ml{~GfQR$!27>B/7! 5j<3)4rtPR*cp( W?)~A}e9M!`rBQpF\ BKlcPV#JG2z&ZL$C#J9%jdIE5k`5Soc}uLfnJX*+0ӄa6=)X-dF)$L h,eMkvE/_>WKZ%ʜV *VW_*Qa`DR.BS|c䏿Mû|]4>x܂ HmͺY EvB*y:Vo.=^qwnId! dȨ.b5;]V^QY~nuhAAxI$Z ~Wnop6Ia ja~ch..uMȴ QK;L1ȲbY5 Yr=L9"1 6o#/"4e"H?^6+:Ȼ +.@Pࣤ 1Ӝ`r^nƞnvƊu+gP2\xv+xr:X{N5%͉kWw,6#'M+~KZ"`aU?=ڣgE[DzQ9 ͯ_ &;-V@֑a߰+,Vhc"tH#8Y#M{Q:3*H)CxæG_47!]Sd'L݁f]d*!bƍг>YӍG)h9黲\ *!ieԕalNxd!bQ)DÎfŢmah%yvuaG :Ϲņ Ş%(kAkL@ӬhBWEyW"Xr9Y]&DմS LFL2Ay4z7 JhwДz snRS"bJ^JF,M$¸W2؍!2>B)Ϣ<IYWB!D&rCƢҋ쉁&r("5\|߻ $2 1*C= C N1Ө TèV M@䲪pE,0V}]acdBJB$B#.3TJ@D~p7 -ѼsfVf<ټU0ÐSո [ܳ/ys_Q! $.GD BFˌT/FRw-ͽF4Ϟ #Ml42eJZ44>|fqiϡސ y0ALDL-Ȫ"5NLXYpQF6Y fɋ/~_Gs}r{j҇x{@Hɺ1Dp, %#2x(LfTUKLgXqywk%A~闟3 =(]4%1H=ݎ ^#|c11{uSf{ j[KCs!ѥ8}29G'w1uM *1gv77DhmfC]tG*qrhy-L]53hl%ӜUb_JrMk*rNo2)<]-L84I9\t åDI真l{˫W ӈm*jS8A*^c-,TCi6BaK)1Jq吥Ty{71sĔ2/@L3BOf,5N׼T6L* R2%bh.`%n3HQ R5 )F^G _S Jɮ EPsƽ{⇈EE$^})nm~CȂ0F򔑾$5IjF!PFU{~Çe AtuHxDZTQ<_;6exLixM S6QrK$!B e@t;+-+x*L)"lPb2b0B eqn#^64%ɕ$骸ߵ@45fB8O}9!B`0)#|#Zp)@ I$1hȜ#8^o?˛ g;Lʳs=?{?'?DB-dklJkG@uvtGM44Zr%va['r◟ny~c{7+n9ێ?t2)6mͻIQ?WJ,QCF8PVm QiL$~O*qGhϗ}\ըE95w@\Ǟ3+XOnwK GBUÍϞdb|!Tx. 4$J1t<*yz}A]|q5ULFR,%|l=r %I>(&ġ T#lzE [֪BL+ClɓG%'AUi~777|$'OKfчD J JV+^>;^noچHdضdR}Ĝ8R|F2|Ǎ'XeSc|AV !lu|T7H›np!Tn:bZqB,Bj c]1Um"ϬZ)agbXv_!"Ge Ԥ1+$mɌZd)׌XuMKR+i%!ce̒20œQ ޻4(ᗟ5 ,;%1r 18.#_%g GAXbT$7E1bB<۟OY{kg7-pD|;lO t.&=3Y&TB'`{{bٰX|; ڲ"W'L[Sw{wqϾ$)G dSG, 0 B7<)'łyn a\`s$8x2( i,t;E9/-(V `_\%c vvfpX cd B٪\łZ\ê u[8Ց-ج10c$ =ҴZ(O^r|fbalIm8~tuO^Ǫ\tס25/#5iiǀ'W mP0ZJ k^z]*T\v7/XM)js©y yX $dv?-,41p5]$qI9k+|CcA =&ՂGeIFAY7*JĜhXI/ +W,PH cjǑZgK07L7;ɣeOg4,+IpE^"(B=TԵ`w\]]qz~PyfY0vGlSZ(=QּѶXWk~ ƲUJ\{.ŧfFTe"8ԵeeʼnC"ߨ A ]Xp{s_mrHR~&̲*eD[0[Ɖ2ͲAk4t#ZKw{|wBƼ))ވ%ZRfΜ&rh!ɹ)%0iF%AYrْr憺Tc Fr\)MUe\T37|8X,pf 3q*"BhDCXJ@9 y1SKawlAoj9=-YֺDȤ 2ER3d]r9$Ye-Z G3w4ˆqY3sCeZ`u`{BpY4Kbg?n-TӍ-vwA IzI,,~莤OdaRJPX]IJ-͔P3ZJ$D<k)^CC~c_ oEW8)8zODYBBd0upأG0E2N$,|G^2߰GQњ"*TŃ:y|%ij0t7O?| WjEDx]SL1!0ńϊm<<]ių.s%]V$m0u0 S1 3`|vvH TeYibX—_ގ`i&"D 7?±aB-DTL{o݁U9X,Y%(k\ox%K߽ ,bvG#뗴u)SDڪ}gϞqvL1 ѕ=TKvcjXX\I]rUS5/Xf&dL#!X3 7bn7z̜3F΄CݲhCOr9p!EVcas^T!ׯ\<"pHgG)'KuL;v_g;o&X;rFܡ:˰~eqӟ_⯞p1IYP/[Z#OV?x('vBY.hLDPdP ž ``w3iǨ*NclR޾do478TxȢ^r=U=rQLf@ߑD2F[.DDkZ>nZ\hD׆+1Q5kuCknѪl^thUԚ̚MU=D|>uyc"?!mw\ԳP'-HrQKV:?яfYƞʖ)#i0*lNϹ!~xY IDAT, $QT GyJ)~bh !0L%Ra].88WJ9e@\E0ֲw|$L#1*cɤVUC J |YgS>DBBL~훌R]J~RڶtMU3NETk5Z"EvzI΅zzNOOhC+F0 iYn)ư9Hb{9BZWl0s u@X"o!:b %F\!b{kd-J돴m"<~iZb*[hhɠ.ld1BĹG, Ȓ̀1!( YEF@ibw{mj-ѡ h)e=!#Xw8W`'\e0O )5Ʋ hQhؗ 3e82S٦0@#i4 ?z__[(<'ƿ!w_]lS= }!;|-bry"Si3C1RuⰇ"Y7} ZFYJiJ|FQ,e%U&q2˖On"~Gs3mXis8:=z>> ]r} nnY@}Wi a:y0'[YR7'Զ㑤{:2莼g DSeE$[k"w1CH!eWHRV唟=*a_uzW Y <@huHkBФIbcW<碭m*DInP&AU)hQں)K}jɞ >)7/!hDVG#;_2^)RbB%S$ " 4U NÀωwy?d)Υ ਄3B+_??sbI7B'_yZX/i R0oOk']4%=}w,dn"BJȢ4PۊEݖsY VkHs$@N#(k9E"R#_DUS$¬P"dmX'ԥ Z EԦHS#vd]s\>!"R$E8;=c<ӧ~Gw9|9jw~ܱ9ˤk]b99E5-*Igؓ 94-*tZjh}B)BD^{rB՚4%*ُ4֒O7ܱ݀* )q!±Y0-GdHSW2XӠ2ȉźM ØђTܜ12MjȲIcb~8Y,X J$lP¼ֺiW6i"g^m8LJlτor0`G^֒SOe[S6!EHjΟX6~l|!S ~o_3":t4`(Pr }qmEy޷B7˯վݕ|Em䙁/>>[kfvck%-m=c{g ac`k{|3/#D ])""E.13|]AhRȩ ?GdD@ð^h''==ǣNiIR #VM"W2tb# F)dQR'=i5DڥԦ\U FEc {J 4F2F(>W*Ir **Τ)RtMad{s'v;Us 9R#K1-9qbe4,StDn3V:y:(HI 6aOZΩ8kAj5baj>1zE=Ȣ  PyH%TSBnHDΤIHDJ); ; 5A+RS,ƪ:fObI%эGdCZDQ}S[hrnQ5}~HWZ/`w;"_hNz Є]<~97iK#,I.,-qb+ CZI6l1Sp#_؈;xuD=%Ǎh{F/P3D)(؞ݻDӶx7I=4ht-C|Hi&I>ezTtRbm'LPeh\Ö͸gR xJ=#Œr9h#ۮ* %:LEHkԢAʉh-q;T{xEZy| ųXМO~E5hIF-VHrDH8ɭ!{%ck"G ov A T(S$Km"1@Ԉ!1jÔ8}h:b6} L`P)Q=5Ȧce2ĠЍNA2el V$&MD& vW5k1" | &NO1,f˫sGVK6È-5 D&RD04%IZvhVa0͊(#)n"&< \lzH._OiZN<R j ǧա>Gz+!(>3)ח kV:CevD ) øC+ɢ3FEɃ3w\OxQ1tY^m}ThČ2BFCul ÈRrE% G~?"5UU,(T ZXL=,hA*#U+DŃRTlxڧ+i+D *傔S1VW.BMh+r*3,W}VZQRwr̤87!掯Gj5MS~R(CR#f?<^e yfE#@fl '_ DmTh"!N2E;[ƛ?x\1YKWPTG(v$aJ +weVƈ9MR#W ,xg: =\X+, Y2hS-R G"vmX<9EʐSq13XIlNi(ZgZWjQbtCFmF-1d~M%/O? ?O9oh g)ˍg/>aJ:X`X rKp1 cWcY P I&\x:4)gH>`d,Cn'?yA͖R :Ir=䄜;W?7G˞o7o~6n6x7UI@mbӈ]"jgG,򐳯;'V.CPE \GE?/ǏcLㄐmH?k1O'֢2z41(a<->NP0xș")8lӲZ-iUof25GI3S6RS5 fu83!D4RWv҄XGj*|݄؆OS0M֐?C]>Oqix9n7+T,Q3\\o,OƑ?)oKuī9={ꎘ!k"0$-;Ja]7kLF&#!5RkRBJ 8(p X+{8s ]6 00LzE<9e0MK)M-į*o#mkHZ\ A1꫟@+[z9pf[ ZSdFI>T(Qef5 -08G'| 5%fQcHU(QJrJ5a 6"WvQ9RT"T-MMJ k̘3PנuaYI!)\9|Yҕ~˥UJD"(9ڽjgٌ%ύ `G##焱<为q/A@S=DJaȉ^ R01ahTgFdx9 *|r{ 'R(_]xO\g2V슿 rѽֹj=|w,v}N@\rgR5EI&#dB3z%r"82!v-f8c(!{zwM>upN z6Հ4rN#@**+WSpCb/_Fy=m˞us^e\hTi`Cd,-FHq{v%5sV'D%шZ.Nw7<(9MY4Z֓tBւJi %#TN IDAT}t\3d='%?d(r.sA #r@R󷕤h8ſyG h3Rb"%-d%~ܮS/\h"e $"}_]{n MiAĈ0qY5HR::=-Lf%1UpR'Opq~aOk[DPX%q"f*P׆RH!Hs7%"zf3@H1GOAՒ3!%+q?|(m'~"&x_>F6 :VFr0%:UGʹG[m0ZҎ~tl7OW>7/lᰧ7d qs 2E9d /ӏYjJYGMiyqG6sU Bhܮ 59;sF;u+Y#WC&\D HH66L$))z F\4t&, -^bXaIO."N4dc9*C[$!9B ChF)^SZ0E8X??1iw`}2/_I%q1aXU.[TѢaMӄu|CBh<>yRLϯXj)󘭈:PQ!Āq7Z.KE`_{l kaQCQcSY1eK +lXqӀxh%n; ֐{9rŅiG)Þ~fD1g3<@?>;ĐQVULTtk.VK_,PjĻOUԗΔ ; ʌx(X87 B!)g482gER9Fj;rΜmowmG. k5hLsz|*psuf %{<7M_ޝ-b;ճ{Ok f6 Xj{kMg)()(kD.jwsB"QH)Pq%Y.}4M\]]q ÁԺgbV-f[J3aBPimsájS1["HY0AsD;O!)_!TF{rYH9QD:!X6['z9}צLuLGJJ)ݻG(p.-z?,H0fIIUVfbP4C$GJtRrjZ%#K"rDx}3nޫT|뙪aVrkf-tdrw(wD  .Ο17(ɪ%DYHDu7Be(yYxL1kC^'Yy|< dHc3Ši0^@7m(MO/G"dSړAҥqN3) q5$8\)'gϞ/› ÎҀ sD+ owS4g~E fd,Y*rX r[ :6tR # ׯ.0PAf(ԔQqUrmiIN^u#N:U,ރ3q13IF(Y@$BBV[IWqu}f}8?x9ࣟO>f^H>cqb-(EF7PԸH*n@1""-ZR*,KLI'fl[|˘ameNƜȥ@)3GSFG,p4I@ۃH}Mjiѽ/ϟ1 1~V1"52,D'$nIMNOػ#ItSp~)ЮWxwzRpFFqRxVx<- gkjp/лHvoJ)a̬ǼܢՎ mgHlcMQS' ) >&NU9·ݖH Vi 9hFZ"Jf ('*i5~J,>bDpgwt%H &7j )_1pVCM6b'LQqubRr-rHVnVT]. ="$AZ3^o`)B̉f3#BV0p}}bϟ"ˣu>T9^xi<0v7;BEjXv-DGQUr%XkN'_@q-ড>^mW|IIąa!Lk4Fv @̩s`qr(er^.` Ax_X-nhUXЦF2Z9 (ڐc5(Zg^&R3Rk2mWT4TNo.hB ppDɑTDWdZ԰ *x>XqdVZơ7-B~bx躞?~Wj}!KEъB[VSdr:Y!ʩ&Ɋ*42s"ٽx|-G㥒^9YhujxmH$-W1B ?)#Oh׬vWA+mH8{.f՝xګ;f 1'+$-B I VйLDu<I Ӻ{ȽZ$dC9f-;GR>r>&7,#i/xE'lyj;o'G5\ ?5=#-*nb% |lſ߿}]ْ-?]?ÎO,ItDt5a䝷Nw;[N /C<|!ͷ._yE@F(K#W7)N9Aq$`oxEs|YZL_F'H$ERnBfrѣ,=ƉfCw5S=ZPRe2Y8U&]MsifUPR͎ry]zǀRCxsf{-' $1~B]\*GSREA VJrFj !2c$s{ O. ??ۿ;ÞT,!Ӷ 9G|7jWt&M钒+H]Rh>{!RzNRr> q")g]ٜn=۪P[=Q GeC߼Ƅ +/ROR3Ŋ yw+7%27%SpN^3NW4"eM{jVXU-JuFQMOiT+fsvZ6h%VL~:rZ1˃2HR[^hD'ί*xzTIT^.ݞO/xvϝcjZ LU`ot>XH~숷̚׺n ħ l.)kL44J!s"zOq{D8^Yޛo{@O׈PDU4:n^O+MK6F<:>NA0T4E?WW<6΢ 4JUj$"߆~9r*.ȿG}?-lιIAmʒ1M5M5r񑹐ݦξmQFWm{\9);c9:9lqv"Rc(E,5v(Kko.qяb!Bȩf Yִc]&a|iRb"j18*'5ՏW|[է_Ӧ8G^US*oՍ,ō R1m-9$nvuׯ98GQDWMfȠs 02RO NzX/xtK*BǬB 2EonҐ% b$:4K&y'k^?C #d_x30f "q,0pBeA7Fɒq~!8] rĹ\t:4PȊL )3lk1@a# L'2yL\}~=YI4V Q&8vc 1 4&x=)!gqtG"Fopu!UQ:#!gO/ Qkyq{/jfI5-=%&eT"P(JLߔZ)1P4(FQ)rVփHRKBw|l-M PJW€eLUIƅP`GaWY5m+]k4Oެײ4xr\*VB Z)܀B@B*14*ۘ*)2"Nik|'.uN&}n_ԑBPDFgyIzC|[`?/~> NN<<=lj!_L9qmc2zhz?TY @(D{G|TUՒOlx)A>dq!\@DRLy,.JkLIy c0$y}DIpޣ(KB 91#UEsӒbV=/^芲 ze.WƧKxLNnYD7aja}նrQ +)8;fqyo_qyװk' JW-,;eH˛kB#}tT]iC2-!I2iJJ6rw~wReUhPciHZ/Ѿi# : 5ۑuG|ŧ,xr.p%((2_Tԓ$̫kLNJC!5-IW h c&k))8zwFIˆD I原HJ&Z5S6D)hږxdf <~k';ny&">R;H2nը0a@c,呋Gf{)frQc6!xl -;o>BIv=~ё4!QJV yv;J)eB$ IDATdF\Dm6jYNꚻ[.I OY魔CWKpd@FEuTuIHMչ5d I{ j sRJIUU<LJ| Y`4ʉ3{ b2eF TFED-Q)\"$ PӴsB@R掱cV|}~X#Is!\hV<,n4K!7PDq覻wuLJʋ/U5}?-}z;@ç?'Sc~O.kݣ?-)fF0 71zxIob V#"fNyZD#~# {p{ZM#4=q{Ÿ70FdIDqYyfq@g{3CT#ק:eGfxtxy@TaIB. r]^ʳxD %J(!b'Lf(9*nM/ظ)2*12 )-)JODH*a- zd}AUK v)T+GfVFP2ľ2ŃYHmPيV)$<QeĆK|kFXՊ/?ppһTК.E|?#Z3쮷-'#Be\fq,D Ra$;f %Q1]$ѻo?O}W_R.K3f!7t.zRqCTŚk|s o$6_rmns傐Q{T#Jg\ݩ,viЦ 5>XFZIwlvxQbj NH?bH ϟUqM#YKpGzzxvX;IU.)w s>~xصm:b1(͌o_6"0͋ O?ga5P"|;C:Q0rXqĪ~.{mo _]&\U9͕tFL̅hؔPuTECa%_Pj cO!$V(]2\,H}onR]E)GnipZeaBKikZMt$b 茨TZ0G[ lr )4"( juL:!E2*/EzIc{عƏ vVjɣ ÞPs KYW4]ri1TG֧79z) xlp}{bHPh"FiJBtS-E A$n̲\,-^,CKM l(HΕK<҂2w'ي7T̤MqhRcD˼|Aۭy9er6NaR.rȄ -*"LvB ER1OLRZI ;F#U>I"$-"Zgnp 4FHRxOs. uX)HB@(U#\~ZB,U^B真^0slӶ-߼' ^g ՟(&SCuJ l[jQ!0j@=^89I(I!4aw35ȼed+JdULLf߼ Cmڴ!KGr$kůqTb9;e:#M<W_~k_BcS7 ʪCkh^C{5e80Oeh~ 50-eX`֏P7@ 8 ?A;rbP>-61_OOw#7Qq^FxIeDAq6$cWU##x !{vcS˿÷w}Of%RPPGUbi4OW, #4iM҄26s`p#_~s_>g}[Zt~ƓbΉ]W\~ =6J5e{Gt(pI8طOx~}8*Iʦ̮μ9~kW% AwAPQ*gXH+%3OCӱ<]<9Af#(#',g3R mKs<݈0J !$Ś1Kf`61=qtR83_i[YIM$}λ2H^|<=?@őA 9r. nh#i: a1RB ]8T@eGVR]ң ~HqGz2r>ʋHա!TDm@,'}0zr"GRtTRm=c=SRy>>xS*&^jMVpVf.ۛ+~sư1t=e]FGAZzN,Кfנma>5C9YN ɡ19aTvӲ<̄j Ұ|a c#lŶd}ñuHih"l*y6p cs#C 'ɑIޓT[c!"BnE ǎ0)D$<_VS@x]^ZÈ:cFr6T(e2UB錯$%k(뚢(sglHo4m3Y1lNBr_)=F* c)d^fB !ES*LT: C}F`̠ .L\])=R!c"g[@II۶yOd&jc=D+l6(%2xtaش8K=ukJԴc8bbRK/&Gxƽ#I%W;}98O:1%`ʔqZT3yu9gAд5Jg !%)&–x&xh#O>_PWyQroI9BfnKɧ/>py\WS-Ac7Y\ƻ"gP-'"O$H"Rd7,٦H ,@jig1OTKO4_v{֔!!> 3ƪ $P@U6T+1ݎytEfΥ$)pr$@RI~S:,4H D<zBw\ċpU*9_$T}$T6dƒIfD /7(8W",f`hS (!gIT3.f+8YzqfKF.Ȱt$9́A%T@R<.k@9+\q#sr&EMiU@/?zQ\Aԙґ|+iCSa"ډ??ŋw7[ i ~ %R1Y y,87{r@k׷TgTZS3A C*Yzq]V_qyu>*}r;V\&Fqs.2Γb΃3MΒmJ"&*rGG&970" >ُ8Z-؅,ETvBt}O 4G1juy+5q"`dmLG0"E~Xg "8 92 r0)+ `)eiU0 LjGhb-5E2ӟ$Ixh1pZsrri ,3s ' ɔj1X{豁f9 $tUQ_SX'"ݽ!%1u=#27zUB)/qPrYD,xǸf#w ݑ#sn7qZ-0JQsanBn@Hr+Me=U{+n4tZL(e l\]Ɓ,G#I}^)"R.TR=P;a6ef~K{e] |zx<ϝbJjJS<, 2A{ѸEB&D&r$\xR{J} ڀܛeHLYMp9ٺ./E!g~n-I1ݯr#u4ZI uQ S̴wwG89Q/utcC9?ba# 昸d!xH]G:t[*X- D1>&jo-4|Ǿ tME."V"ٻ&FGoR7"&[); Y|@)'?)SKf9gP؏(/ O!EliJ0+$B(7°!ѐQNX|" 2!r* x -8mF^! 62pK[n{!!TXWDHYRC !F\e@(9G:VcX>*| \v^$U߸[-'_/h}?`IA!rzqdcBG.e D\+&ۏ`:ep():>9孏axE2S~G@1S/ 4kW,srv9#ltҚ:Fڛׄ5oY Eo͋pMG?:ҔV:=V~XE1EEݮcG{)sK BM"G<:?G*yMݤohVǩ9uc !D>Q$\$B`ff,/yUKm hkQ!cB >-h3:T MK-gl+ S,2*pp&?"D$ #s"J4DDxV k v DL .ƎE QeĐ{. v=M"jD?84lp ?Fge|1$J]ׇ霧[$^#$P5+_Sɒy]nh+/#8p*NH$02sQ G^RDۥ]i U9"8a"~D)8 Gd ԁ!j$sG"ZcjQ#,@f3³,|ՎZWjɋof[|zy |Gƶc=@(E"zt\aˬ/(yԝ ! !ϠS=Y=T{lf *0e;ndjVB']"獒 Sh%w-*gN˲ZvZ1_ʂ.a-%bF?r3ZJzz=pzzJkX?яW bSr #Ʀ 2닙\qp Z$"RA0)s-w1,f,=W(I{|I7' GڤO!Co$w_KRDN<}ˬ9qp2dG<#ȯC~_FA+Ť҉L"@ GZf'O B̔iZQ/UI\vç?q ZJII61Ș%t*a GسEux$=C) )3)ƇoN Lfd2XG?%(4&&jYX<:P쏬8Ov`VIڪ"$xX*ٿ Da &hf9c+d ͧM†5.|FJ >9K|PH\1_k_s{n1nЁp 4笾> ~7|S|nkYtDPIH)y `o Q\Oǎ+[,՞5W\{"ZX01dwJ5|9G0KKS.0T!Ģ$$K%s_*'aP/Cy&b5>^U-f}uU˗|ԅlB7:Ƙ0AŚX/3om<>+=ł~Cs-Eahk|`lPa^YXryz5׻k)׻;SkT>%ԆA% A`.QF'끀r ">$t6z s#Ky@PU!!ځ#"=# I`sI"AcvXh00f1F$48Ҥj!|vb mdVCL~uU ] 4D%&v?؏=N0-L.rq!|$))U}Gz|uǩ++0ehq{fywQk 88=?x4%}߲\Yפ(fs}CІ*)!^eY*,+n, ,맭%1~SwwԳ˴)zNh29Xl%D!"a:i:8XE.<'$?S<<׷w\\1Y,Yr{{|>xBN,PbQ wZe^ #Mȅ*C`仂9&yI A[! *|m0K1s@@bC:NU2N5OzvMCn?zJ3%*4Ǝގ8p*Qf,sT0֑H 9^Ԛ<}H'5o?)eQ3_ @@HБ$Ƌ%5w~ B꿙oli-}/L'`~o!B*JfORz9'Nh~ 2qPNl0 Hd=/DD)ɣ"E €H~ G%p_ 5E%o@ 1B*(!u==U&o J2 G;CKv˗|I;Lf>҃8'HA0Xif+֏OVdMԏV|o7ٔ!"S~@Kȇ&txb [F_Z.[ep7zȷ;ɸgT %FfR32mO9#&RF4J" -8pZਗ3f| k%.8b0fyevrv~AU4!xdID^ )\lA)<=ƞj-m5A&zד ,%sv;#JBCKC,(;J$#Z'dL1ޕX HcS;u;}yYVRY qhSK>6'P*hܴ4bu5C -㞰xbY?dDwD!YH{ ZVuD_0 ,Fzo:ϣs(lֲKZO,1Vj֢IԥBHb]3$ļ- ]`nJc Wk蛞R)h:=8?E0DJ쇞` ^^ol lŒWQ,71]pu:cT%՚躎0F0|&m}^(-{- )bD~I>G0̂19>FѪZbTl]SmA۵+Pm;#.8V̧fN1.cl~0fʟ5zr%52 0yoQF$nDJ&WȹHQj2EJ.E{ŋvtfg5b4rA+ІpҍC7ͬ1 !ynƊȁ%f74It#\=[QKγj*cnn,8rp}7jrpcdUx{킱y 0꘳36 c$r8EqU%qZ (s e4*gb x1J !_hon2(kuݤ``ur0d!x|~wۻ-)rW~DI]SѢ}1!)+Ock ,)yU5Z?غpo=H)"` \R)l]aESf3?; N)_TJHjB7}E$ Rc` E`"WX[cl7e9dЊRfW|3Rd(mqn$X^KQ¦R﷌Fi9)%dPP5,'T3e ئD$O>J""O(U!PYgz'YKU(Y`|pRf>F^uf Px52NhC'f@TR 4`1tb1=x/dؽ ~9#7ёj{E=8lKKg! ^5+NMϘw4¢7jM5S(,eY=:(zuD4'd.CH4lsvQ)cNJ tcR.փp R=\X2n`4]7I3]}A?\i!cEeQY0?v#Rly¡TbܰfGfI1;iZi;lzϲ]{ c!aDV'߭2~pغ!D *: D(6W/#40Bj,wHu]SQQId1R Ąє0''g\xGꖝ͜;N?9Z^c pӳ:9Y0nMUuϢ)* M>Kc`ėJChML "zBPVepeA%Y*'GL2>V59G!.7m.?^Գˆ1UQԳ+\]jc)\2+d5C{O'Ox/__b-Jg['$Ô2yKs),$|)Q" iDD*WEeQd(YÉXHc QY!-V$FCF=p?T70*!jAtg N}Oَe(Q#qda$'ǐzr'킨ΉwI1]b@1m;X^Z8,gK5݆˗ 2p]nwcNѐuK ^ZH"kғe@bsB Ț'7;mO>xwFlUE \?b i<]PՉmxT$zĮc8"ZKw>˯-Tg ο6_J{ A dYM@TH"rvmCYe_0COLifMIB1j*c!'q$HOndWRYbC w{RDue+r㷞2_-\bNfǑΘϋ5ue@f:7ϘV$#*E}X#gs$gVPY&F_ɢ "YOY݇,Uz7,dJ6,q(\]pY"kFc #8%~KQ%*I`Gl(/"X(2Y #}?VonnD aBXPI>zRxp'Z󆞈51@[c;vjjD.e:Ȍ^dQH1jR1ϚtJ'ΖQ6z!Z f &b[ѮZ_p~ܰ_|~p̒Q[RYi6.%Fs#\=,-Gg%!dX./jV1xBh%?}${#z_a! " R 'Kty)J/\! 2 vZ-10=.]c+w хA[qyeIPU5ZBl{4p(,pnD+buDSF-6bm?{DF5FjDL詥XJ2э%L0`lF?ܖeŮ4r pރhcz>Tn`KiBH䌒S|瘨M/[59;*[!(6*UT2BjDd0e ]QϯO%j"^kNtV1,-#oGBLLXr)3cQw?“{*N5vRC TuͬE_sxJ R(! >S"Jqb0g&Rjf킘"gO^ӳ`o!~N ˷Xg7wlJ hd ''u "*Gģj kE%di` :[>Z G rQLQpDy ̘N0Q_2[%#HӑQdzT-x=X|uMk2C iGN~BH(S@"J03Ft" Oc'YHxD e kYr_lY Yp=6w^y7k-w5LN͌ F0UKk'qŮ }JOc7;G&u%e.E,'"׻D7(#f5wX%e7EP Q5J1v{޼xj3_ZB<@Dg(+1lm ?C>S_)|v{la R1VG Eۢrb}wNj/>ᝧb6ݱ033=B&nvN7H)ޭK<]t4Mw{o@1o$_ Ji{"Y‰PN̲x~le轝$MM3:5,\ 2!^S8X-t͖sZ4ne$D6Uz4ښ}0F:šJ ,bAm UHR &| %\ ȑ@Bf~&֊ChtmrdU^0Anp+9lQӅDoD$e$&*p? $&RV8a)9`sDK138BTS/Y~Ά 񞅪 ̏US${61b%MS!T;YĄ WJc2rL,^֜@)$ݞi&z"P${fRdrQ2Ȏo3œ>yt›mל06!sEY!cF{+ˇwwH-yzvʀp3 IDATjQa\X K~^|73Sep h=#Ӯj͜> ~3N|$40}\9:y8W*E}ܓH\RJTU KG0n9|vu_zK-kv1gg9w WW?\p|pfY3uU8@t1ȿ ̾?o TJbLHbt<"yXFe.y3}O |ֶIlV8>aww,4RorBlTUCUU{..H v!Zx ߟ'8y W˪QҀxĄaz-z.RbLx8Uk/G“ed"dQki}3<@KQY]Ryz_a>VG(YZXp)u-C" B[; H4x$֬vC_3ˉ2zйFD{ 8i:! E Qh) h9!DKe”0^%>RW-&$ VY􎊢#ɵ3^R>!@J( i Fa(%(R 4('m ~穪þ)aL ΣfH*lDzʩB8Ue?zW9˽T1¯++l[ַ̖-uSBy`7X[X(U]#dGRdM]1[l;Nخ2{z4$rLT2t/8eqi;ZXl6;./x:LD( )s ,2 JkBp8JQ]M@"'ʔ{YT8 6|X 1Q1 !<Rl6kVAwX.X.X ,5Qr ,) VʑJ@:adi)"% 1تRb|r}KΉ;c.'„_V:qI!LxC֒s$@5\h#£?7=ৃV;m!Fz,Ѓ GC5B?8u y3Qb6afў4sӿBvz zz[Dӏws,[.(Iɢ8|/>dsfOݶD{;G!>q y) GmA`DҠҒ6:rwEb#:Tl1X8:%9I`4Y`xB H;dHSM" KIn㳆'-ZfS߅חb*Sɑ1|\/~#O8דj,xAj#mSxiܠ(z=z,-sNE&AYsR*FF+j+يjptt?]5}ϪJrz-G^>]9;:)v *MC>0xK(Ƞ HKTce- xrSB0YtO!Cm-yl#{ 70*tTʠt5֤}GwNW(2 :3okэ9T2s:٩D"9AX5:EBE0D#x*#Gs:+K8rkV.U,n!A*FQNK0nهɉRka1Vaٍ7P55#6ݞn,\d٤̓"kJINmҌapdE1S+u0vpz'Lʱ`LuEqt t/SHRjRbg41dN_wd 두%{P}t32jMͺ(Jb%Bx Јm۲^o؇C~nĄSMmIc7m(SaX2!F q䋋 _9GP= QJڜCf G1#^!>5#7_~DgI!G Y[){o 2rZ}4t "TАꊋ?e?''Ի|XgSV+na OY0/C [4yKc<-CnP01yNٓ}xѡu5A8ݢHhQJ&Pl]R `9iVw?rI;Ob?|W\K6nd?R oѦ//EzgS}_5;ܢt9{_M=7+͋"T1pt|̣Go;vG O$ib{vt[?trv3ьs78pq"0`$<}oǣ#.nJk'H֛_E*\Q>l891 ϟ?gqb;dh9V;V+67Wff+7HQ'<~%[|di}S٢@ejr 秴9 ?)+ h"ӔQ\\c45jcQ K <8<MP^Y"TQR8"%S!TZ( DK/bSdN=npdHuU!}DH"t)PYcD0֮H$ BRLe%}ON)>gr,e6 :!SF#Jۖh …8BYğ 1 ~`eϗÀZ*ɮC,BO Gej P`۾x੮V?h+K7:ÈYit>QSYge؏'mU A2=-83)P L.0%GTmq.2zC=D0.S 뷮 9!#@XE$)`X%@\ֳSW ZbQ%Rږ 2jRЗ[V+@/krS;~4PȾJCX*eP/C[LUasfƮGZec|O<9SJDH)cepw});jmU,M%0vtt 7/ 7x:30 g݁gϞQ/ֿCO\#8j }O}ĨB}^P$ojCdұ χB)J=.4mgcX[#m * DNGD٢ŻHK]X,kѩ牭{ c$KY)daY,X~zÞ#{!PYI &}*ŔލiE $I!u/_c'|NeLvcuS1iE7:q>a;'.h1ŎDczy% RHj=R} jGP!-_⸱V5BYd1'K쫪_ IYJQ4Ï`qt/ ~󾃿(0nd2`Hz>[zRxYY1CH%)d\^d dED5$$PU9Qhh#:e?}OyuΓcN* ZKd5{opUW?e,9pRŒY]aT9ψPR^rT<[ZT]r"5WU ydwOkW3^|#eHQB.J-w~ ~|\/(Đ&i~210;֨%t/GOޔԲO fur̓8CUZÖྪ~sx/~yE^_?2fuEHYjrJ#OnK[1;t,̕$@JޏW-O'ޣHf911>fd{w'3fiu. ]L{)"Ei/QnGJWU 1)ILǜ2sM(7RZ> ؙ& :0DmIّj; #@*y{rDsMGUZ -#9QRӍTg.V,O#G IHZ[я%[r R%dQFQ8B 2AHDHt13#KP}$R{+4Tl@HK#Ϣ4B &*s.A1%rRD"\PlCS$'IFiR89bmO($=7: ˎ 8C>fT$"JHP)] ClwvfGs#.k˖jMǢIQ|9q$}}TUAr= <(4#zi rbsW2$%qH[4DJYrLnJLCs,+n PK52~/c [dOi29rd#ܭKЌ._ѣGrtt?+># nhR(c"8)J[w80\!fKC, {ew1(t(JJ)Fyf2jA=HeMBQ(mEm-c(]$B |,ñTAiUXHSGțW["R$2;(UϐGL22i7lж"Rf!S o]HY>gTʀDJMt$.FbˈΗ{[UE(׉oo2@w$!5u9WѤC(v!]5wI_\D]׸ѱ7- {SۂoQ & {gitYg! r'w\rL.>Fbw$)Ti !n!8]#ɲ@IDj (Ȋ%2@[~$_͟ᯙّZ ~4Ha0&%Q:MgƳ sשگ|0') r(spcwYTs7g! ṼdOn]W\d{nz˫[/qh,Ҹ40YT vj6c>'(DFeuzw~菾F j ,aF"״ ~P:3Pm'?A-jV|J1eMeIs*SorO‡?_ǧ.nNOh ݎ x0|_Hi O?$Eo\]lPRn*uսP[RdQB[oϟ€ ء&hzf,N{4R}$VZ|@a( WZH 6$S-cVemc`2䧡^ՙ}7s6&9VMSAGԊK8eY 7 O>9O754h2JȲu9}(f 4ڲl*61=cd,Rj CF&.g|fKBpJwkCi W ˡf4ƐTbf WABr #K$ (.$*O!zcYaȢ4^' E[Z.g%ɌO|@Oo!ZEGN5:k<fT1 0tnjB}$CC?"X|*%"e.L)Vꦩr&8'И$S%da:kB8r e#m%',1DZ0Ru,$s^s||Z [W?ƒ( Rˆk-]78ZRa4qjF Wgo~wg֗&RqR;,ؕPM-h*ω1x1SC!{cyYRKN1 %\hQ"ܛZg~o3)ʚIrlh'0`a x#vn0lE+oyEI5dxsN VQh0PtDf%='"wx3qqqwz4[mn۔v|6 ]gsY*t\ _3%"Z+16O -kJQUf\PZa4`)IT7q&"L SB8_rTY/;(%mrq%zV+NiQ I?9~{~򷥈`e liƳnR@J:īde1wP jzcBi:I+t,R$ 7`\T5iB|%\meCaC[X&Y)fQ aVDifMMC`,l"%D6,TIiZ|"JbOU=a6;2^| !], ;,ӝF«_={SBR5,Wl-i \hi;nJ|"RgU1KRyLytѥ>fUTD5L%"SLӎPc;8dś?&G/6d(0Vu>LK?Xyp.䳙A|z S;yPs[)7^B?Oۿѭ#9C| G43%TL`ʅn1v|pʫo-%<͒sa"g-hF8Xoa;?"cI)bE;OÍVP1%C yȪB BxC1PA_i% cy^]clPPqH"%PE.`/*j`=*4 [wJ#&E:|;X \EEi֌}mm0CGM֙ã }`*":sl}ssH/./;"qeΩ\%egkd).0-v= xI)2V! Ěb 2qՖ8ͭq5G&TthmDryʤ&CK-c9cp^[%Q WfŴcY+6qKSݒӔ)2T !*s3ZchPxi0 @Y5`"\UQSbd%QzT,g-L*ʿf<8@[TDd >a2,H+^qqئkI*]fey,fefmva42T~$C bDk:* 1-hŏ.w<)_[ܹ ~I!aϫk,!f4n.%b.8ZrLqA8G#wFv,qSBwWV4U3N ]cଥTEiƱRszlXPT!E^u犃Pc5{liQF崄 IDATǒDZZqW(S3QiM1Hx8#Zstu J)|gH)3M]%qڈ3Rp^:}O;M$iH.vLq9ӧw׎k&Bh zU(`TEo5R12M#Vz\q9j=eQ ù :L܄WTjGsMt,0l56$ͨŢc`<$_#-j]]`BWNSbJ=hx5zbrW/a!/Yj\#YN9%iF%&foc60jZ]/ )"xa[t5O?N8@[f$e51>}ċS6l6YH&ײ i <|a  gqҚ}Uf\A-ah# p*k@i=|"9C3oIJGr״8Qє̐ ERf7ZΥ&f}VX%:LfPj.(jYũ9' q"iHX[\aB_Ɖ[ݴL5e()DJ̉U+KbS&D( k+Sȩ[U19uȜ![\Q13z1(撪!VKrO:AIlj%vsJhOR4>5 kx5D*l(C~Do$IY*&]J`.d02B-YKZd,T[S}^ k)lcON1h@]lfCxu!@N-!rCȌ HTI]Oϼ/}^W4 } Wq].qӗ781k-)%ႛFVJ09G*Lxcb]镹6yir]h#D daWX5{>L1pv~bbFf*fiVZE4 !Y"Kk 8:Gkcp^Ԏe`hG hhl##rQV3sr-!L#\dXZֈ4&6@ Zl>Tr#A)bebt]G{%ܫ+Lk)\QFI*e0Cĩ hq-ce.`8 ;3Ղ_ I6jRHag5L9"%O20%M)ab#v-*i )C9yݞ3p<*j`6k0HGi"׌ջ B*KZ fжfi4QRJw2z[z #MYhs|@&T^]3ODF/w5{nƣKX5 ni)ʅcȋ#nq@Z1/zXOpo dV(/11g)w8s?_ڛ|o'HTM`r7cni:'kk7V7j՟k>~{:,6_rvܺuLΉv3ME ~)q {ooOY[N:Uc&NH8k15Ͻx 13LQӮ"<ڊgz5sRxgPEdY9\ 1gA9h;_I&;EvUU˔DH ^Bӑ52,+,J%،  'aIc֌2RXY7XoTp1OhIdܤHγ( Qirй21XP^X3//^ڎ_X3IC3 7j ,K\o g!).GൡUcR(gDn8ZrI Rz(BD*'͊(0R2S&r;ljEېk*( ?@Z֫|-%Ey=OəB JuYO瀅R$#|dgQt58aӆXPQJa?~ItS*9щs ISi!IҿD/UBeRJ-J+J4D[ť~ !RAYk#*k"1X=|QU3i9&L#.)S *bt咦i$Y9o/_EQ.,MU()t›4~%v Y+jvh}hȤHʜvT=kK%S^Wg{9Kh/Zf~8=W%;ǭ{ݡ{(1ܿ-OrỬchi-L$;;o g'zgDWh hP;R:+^}sj*G$B_Fڃ/L& ܘ`7^* L)Ud#ETag}^l 6PAkta%kg贚A֙HŸ$^iϣDJ\-=dvU~̗2뵙3BH!ѕFI<_ʗXw?}6MeqƵ\GV>[([ݨUDi_F+GUk+vWbD{P+\ufتYK&og/`MYo/.=4g,+W;uh0o5]ײXܾý{?ًXŢbe$A(HQSJ͐}`$*% #u*ݘ 8|i~ܸyʦ$4JUEuJ{ZFlWUKx6޳ͅh5K Tf\LMԪpq£U&q d,ErWWg:vA̅ 8ג<1cst{eyn/tOΙjmxz~IG|R]X(̨S rfz^/%84ֶC@.fJ1I }Jm $v!&rM q˜*r9XD{oSF_iƒD",ĮxbIxv9hMLwY(+gJRc;,mvZ1 PY˫$Sn: VO#=7o"IvKڢ3sW T$" ThbYt(B{ I!R"xcH02 e-9%r2#㌛X*)GNNN8;=e&:ߐ uj%WkA"Z.4)9& D۶L?{)=Zڶ%8'i6"8gpU$ɏbenR\j *b(yx:0 r/id +yZvqJc)7(k.R\w6XEŢ!֢̅ci-b׶lw;6\]]o~#\ɘjI3N&{W]>?V%{Gzd\ly4$WcSI?sIUPn)zg5UUrVLؒP2S/PYonqʫ{Ϟ>xGLϙT"7z^y^{u2} WQ@[*Tj*P TƖ^ 9ADL)Z ?ڷh@ZC)jrgsm-DQ=xr{U>wMN'&Rn*ܹ5*YrN>kd1)F6lx1&Zep|Lq#6&⼶) ~?ÆpMwYR Rl:=>~Cnw_7 a},@뿾ԟ _QT;ʓ'O2/ 1 ߊI['q®TȖ'Ow{w_}9۽Uۋ#v)g$SIBDCeᷖ1eڎs¯(9^y;]RK]JS*\(!gA6et`f̑;R3njnXNs|=S&g'nyGӎua j[ m .Ȓj/i'ZPY)NԌъ1L U)4,sJb冪ocʔ(XiݚaOv|ֆ=Xy%<;J Qn@Qf,YMΓǽhUBJ RMXkQM9L.0%0+*;>Gc8FCCN0Uو9)%`!TS0 ^ &;Z,(O4*cùOzgƊ3gc0蛂N.EiFY'r55ɿ3hmin6=]KV( ]cnu~-KX}ٓcj"@7j41XTU(e=H!C9TkLKs;ܘE4hI9PSi:Z6;~7ܽ{S4AadT=5SwĨO㧦0ƀW[Rud'I3FBƀ5\F cNw2lIRdyyKkP V4c蜝fw)/!%Hq )e&?^!q>K8װYp✾ߡu&@@̢CcN0c،d5'Yʙix7s>9W<{,k+bHHMʢ i:r24ɵ$nGCϷ-~a;QB^igybl~m4j/Lþw'Pv[J/歊4gJ_*T3wV,Z.R&@Ebs<*Kd~C~>*C؜0]-V?oqvC"+R(%O%tZH-Ԣ o2NX#h>LϑZB=^2M⠍)EXpڢtK1(ܿ{Goqжus ]&W#7T<*s$uX:=g>=ч|Db)c@"vU7$$*;XPfR8n{ρ[q=@g쿿gOxUlSXv[W/.YN 8E_e_ZzJ>uL8S|vO^[ʲk.n ł)#~xg =ZK^yѝaw-!ayʅ0J>͋SkHab4E!3d3bQ5ku1MdPSdXT"kJ-B$tp]ykʭkP OɊC[x֚m\+Ѽ)E)f) &Wdek, qEIBufBنV\F^KĸB V[T7*(De*OZX|0k>:w8s`g[ @(r[ek:_,*/F[v5p`C%Yt REwŪVE [TC!C{xc1=-vgxpʂ63qD[EGǏcZC ZaFIF2$m&I#Ԍ6[b8' _oFTIؠ0i0ř,o_w9@{D^Yv Tn,__]nOYf }PɜPF}JlW1ZS(hYeP`Tagg 0Y׬E0ɅS,\XVtA~0+4~Ew0#YMKS Vd1D)P'J(%Tģ(} mn-0};hكPfܬ"R*FJQ=}uR.B)zEyb,[,1i"ڏ>PqQ١Gi05(H%b`{ƒ{['x3s-`bbv? ^*3b8q)UO3GO(d'kn|@UAP>)O}A]]~_l#.^<햶[bp#=`n:Vݒ5װg.؜д-~9sFmw3,㓻0r|wnfXs$NAbdeqѢו9WMVR-M}$ybJZD[e憪JOɚjӚUUG]4aߟSDk7qI;Ⱥk"EL(=zXNC"f X%SL UlV#hGzTJ-"(AӒȓ+\iSRp!#A&Ww\]]1v,ER:MxR*wzYB~2뵑oB`^HS%ސEbk s#AqW[K-e4 Ȼ˟O¤ =)-VwߢW +H#ܾ,6B+J11sbGV#xp_D,)r{\1OϬ$ )RLnYdTs /Ή.LxzJx=xzݏ¢p|254*v`>&4; M׶,m(r(Dc3B΅X*UaB'lMbU˄Z9۠=}m_רEGh},Q`)8%X5cS4Lܵe䡤% e屜w~S.jZoci;RX@Nˀ \3 ([V|K/}gW_!%QNO^{6&xǼϿœ0,Z.Wd}n?Ks!+͓ZpHUS%~upp]NϟI-_B6)4M{D11}ܳn߹jLU`ܕB[ySi;/a*fD2;I!#W 05SSi4Ӹ'Z\U0(i`ZB1NPdB"k 5s,r1dxI&KVi!mdsR/祃^],xz'xٓXK v{Pm ~j463:2X%)$ZR*Jv 5fRw?' C :3R$u#J TEPZ$!5)1\|۠4G6Zerd ]56 % q rl4uF(fIe*YJDK?%y֦ö)jvY /kJɤTehP'íL@1K mB 8Ve:K&('K It]GIYܘe2hqFyK q+'153]&Z25W3`%ŀk篻X,$9bH3"XG-EeQ1x0nb΃ф$-B[-ӸG9K]%EO"?Ab4w(eH6`Vk!q q$DϤ`fαRKLdaz;%oVkT1~FabѭZaTK6m/8*2i(w-]ByVgOnLnV 9Y(M@ 4~zNhE{qqю޷?[=?ZPe L?Yt9%sf2+5K\i ?aG?s4ͨ2`#g 9 ɈXZKBϒT#]*[ sӋg Ve}x@Ƿ[P&[к{btBHSՖCx|ӞCgS|\wU!VJ-HB) 3r$)ĴQ,z6{=p/=CGTubf) rHe拸:"OQRAi3Єm sNvL<9uGm7$Ą900iY8.K-~O'RH(09cK{t x-䊡j2!- B}wN:L® BMϽljPOԵ?˴k_e~W._cr)w[B4 m/qh :jt$ BQL%={0qfJHR]HC?|P2nR1lxӶ?xlt͂ zxi!2Ej7(EnctK S+VK]j8y"(xSjӄ3kt+|I[ج%AH4=8 bvX#i59K51-q_ r%2 jh)3: XۈP=)nEH`kK@%y뗇;&;u?X^hy,aG ߰d4RXaOJlV˪ux ͒M9Cّe.w-]a'Lm y `QcTeL5`}b?jX՞0>=ciˈ#R%jLLYbo h*6bhC@%4آ/v\=W,Tn_0SLJ1{k䝪Sg7?G7 u&H"$:s)VL(ؘj9Q5X)F j0 =dk޷EOЭ|1#))PA7N%Rj(!B,>qًOؑP$C kDET֒B8 au&[E.PA"YȔXKP㜩'*a "c`̣tQtt z\5)ZQEd,qn*Z[`: VS K~ŋS(΅gETCY5.[k:1ݖ[,|#t0چ&L 4)k SHSsnnXNSĔ=!Mq!pZ䊎FohhDi/rgr9:lOw?!pC)#F6n6 }ϖÛQc)ZpdsokYzoX95tWU͡)mQ4E:r@wqAq  r E FrDH.C!Q"J$nvwuuuUik\ާhAOQU tsY{{=[=0S! icji<`/SaZwM[X9:H"#|v=2]mY[+11(D٥L3yg>/ep(垘!:|si'j~i-c-^B(9%ZEjslGr~qԬM S9v+K:1|yn4f,$zS(G-?Lӂek f*p=Xؾ>W=}[18ϸێbA`eQ[r)Ut5q5u>0Xp#3_k<|LP%OÖ.W)͗i,\\'O c&ŌCZR,<~|x0SskҬb'(/ Reܺ{vёsw=wr3u^)U4c9xz)?.ͺǏ? Þ\w0˓.!M:nOcbwyͻܾu[mT;Č_Rx0zoxp_b[ИH90e·,R[Vt=XX D" ozPoPR]bt}nXt 氯]VF9#st8EU%S`G@=Y*i,W[xm qID` F S܏c#rb<4sKJ= )8[C8 Ov{>2F5"0=+)"(F 9io1H9c~믿ʯ"<K:kv\]^rs]^K_YW>G;h}`u`aX7Z\{4#=#@\gEk+mna\Z8??>?%z`jC߇V^z"~L#Çī qDŽ!`%:b.e8,Fi<9$Tp#NoӣK<|=7_e{/"~_n5Ŭ >QWLjTw1=@oq/5f#1kv"fKwЭ n91 $FyFeA y@̷AVXd_}rU) 'Suu- 1R} %e5ؖ"|wJ|rom/n$K=]moH6füEŗ:+,n{;D Dc9Gn52-RI4sS;<' 8阣a6[wy=ah۞P(冨kL94 KM?=sOo 1BJV@#Mqzz '">'o`#%82gp=mzbbsЊ℮w[^xms3 sYUagYq * Ĥ@PoXS&% LjRfʑba,RArjk}?RJz9 9G?` GE+[PKI'k X]Ωoj *%-+$c9ωiܨ[(9'UZL!<,RŶIi|OfUE[o̸)'D8ҏ7\êq쪡9%d< m4bm:%2 }Ɉ-!΃MS,"d>KJX#Z0c)t")(*8pBZf)kcI[bXGa/a*"t%UUߊ='];uruZZi!Lc3|xXh}TfM~ViḊ]A}%IL) JrBFFwuʄ#/1Y3ϊL;bn/V,*\1FS6"ipb!Pb-gev=GkcK=fH!akJyz$梯с֠Hw\pNY)JZ'BP8yܳY- 1hH d \[JtH=$D89Ktft0uð_o; I-bJٸQЎ2sΟ/ \ƪ10Gkb5 ybP^v{MuB9 ݢe\﮹}.1~#>$?{}EzFv#Aa :,O%KFҴkRכJ*ۓ/'^ܝW_2sǼ*KM%i5969;D'g,VG#&H=K$ < Sz2tAH`'HeaCNJ2\NUޭ=zfUliNvP%TI`dGd/:'י2ɰe;Ju l.;b|̱,\,>p<#aO##Hz^h3/6j|=2}E==XmEw=٩0 >ѓHsم>~~gϞ[aJ 27_\a-EOLEj Rv}ֳ~pUwwMC s3Rv@bf3R=}5qhrZ5Vz8{L XZJ BY3y qz7IOiq,35Vx}1-C֊<'M74u"'K뙣:ߓ( Sw )Z>#]*,41ozAU3(s)ÞWhJ0Ǚb e[vNL0FU%τYi H|*RΫ'T+YnI9H'4P$`=:c69bRf"ɐsx rNd9P{ԇ>Pnpl/"'ZQMFPEm۵7k IDATƽr>|&3Kd!͓gIksQ7D&#N?5mPJ%*m)Zńî)'U_¾0"Ry)iXj.A'$Hrmo[!/5ŚL-)H!eC6qq@& \cL:eĉ KWhN%hX'JTJ``ˇ՗PDOHF O;w`W{tr+4~fG[u>h@z.η\o pM씌pӌ~ le.xyq׷ݯv-_prz{1!x"b8s ߵuOkQoC^0W·mg e..9YwkjTU/ *L]:8Bӵ) 9fHYE09gkTW@ػVrnzUh|:uS+BNF^yڎw-6" ƲO^=Ƒ" %ӴxߪBJi%d,|T o{}LJa Ubk0Yr?9%"eYT``!֊D9&[Jk|BJZrKSѤWelOq:@ BDdE"͕蠕݆!6sӋv'xo};%]<s!:O $W4+7կ~>4৑Yh0#2/zy%G%?`O(Lz1CEk $_X,8snB Xh`͟:[L:Ub6DXSԛAm,eP۶ g9+Z/k(RMW9S R [Qu94HX,q wӨs4sf&D,˥QO뙧 gLIdJB1#Qq{֟=g}B#ȍ^3m̀HHCZCyֵ"1L,j$#ޑa` Ц¤C^K7USҍڗ<6M5P=ʻ6bCjIUX+ժYRfڏF,LD,n\̎3o E\mr܅l+oSM>=_(Ő>b?CR>O53Z5|CjAzѳuz%0H8fL=THi<,5`G?|{?d{>l0]E>hLEH&^>b^ݼuu9c6Wy1ap{Lq4zAGɖWeP[ dEj08l2Ռ=%6]<] M |9\3O׼o:5cis e(&\-!C)+ZjJBqqo )x{uO_=/{S =-(<]F1aӄęҒW_:O췟gL&XXa:s| k}vݳZ}DF cẗ́aX@_yyy4, $I!퓑cPdSyϮ[ǿ7m}\o1\kP%LӈئiuMgh'T[aMa}+j5gLQh֧DIl+O 3݆O>}|~L68^CեLLTU Oֵ:b]]C-zkK mׄqęlpB :ׁ0r H ` 1:P-aT_NpFaqNEs*N>̪eZJ`oϲm j1)@ Sk,V+#O扔8" )0. \cgx6FLkXB!&1bp3L)Fq}r1(]dgYP3g׬}`[Y>Zez)0́q(IJΪƀ-@iĪj9J͠_1\44 \i@!eKSФd1jD: ,!hSVMZgup/ ^aLc]M5Y>ED ڶm[\ ƒ(d(bFԦYBUcXoInS")L]3H,f[("qƑk*2 jz-9麿k\0ͤ V380V8T#i(uUj@EwVR]nl,hk04WU%%&n`cb$KBB*BέfsrvB{|Smzӟ0Jzve߳zb4'Mg->{ w($GƔM} xK].9'0|{O<+{F.Ka>3{S%E~OZդ})n/z+\H7_x[o/=["N E7t|p ҵPp*NzDjBCTM 4Y}VByFI ?dS$s\21,Q]r;4Ip RE\>OK{la;G py^zn=Ƒ|p̏6v\8 Kwp3m/XK^_%_˼ꊳ Kos>1Ï`^rۧ⪰ziVj7bWHMaZ٬)͉Gm%Tp4AS;R?g=~GٓG?Z.y$Xb1^qBk020cjآjW踼y56;=fµ'8/|OXs6-eac۲FL6F'JϙRoN][o1ޒƤոX-/[K,ísYVΑK`>jB"Z!0~$y+B,3Y]U*&M"eUzBmC0VrwӾz3ĵ.E!8aH3){FW݆OMc1L`:!nZg(rrgj ^ŇkFxg˵qN!f B ͘Fا•C]p]2,^cGsG*YPC#׼cUL~Ő&:&lXBIMB}qp3# bȴm gٱKy6yfϞ "8ɸvhDYȌPlYUjkE-*8Ügr BuRYez[$qk>Y;54XGF\M sf )MsqS-*1oJ8BҖ2hvkX:X"uR`0Oω5<'%yMfU]N6q;o)zvU7[' gk.,KoKK9=߀հELEE_Cb5! _s"#0E641 `}=c»^sBX#͙.ȱ%Ǚ,@X͍)pU6X*8²9[^l\_grª>zﰳOCzNֲgjmwo|>/=qM/筷1|}嵗П6Ki.ؾ R[ l OKs`Q}Hk*Tǡkt*n1I,DOXOZ2@6]sγwa/- <>|O ~%Wy~wozUqH5Œ4!0D5 F,,whF(%"%슣sNێR&LVF1`)M0Ab 8,xd$d$&b$i8,Jm!*7x6T2!ڐiqRu`1U1=n)8&e12Q ƙ9(.QDZcRzOKqkiET SP+E3gŽ6 GKdnu|ϳ9s m:ygO>cqN|C\#!b yr X ZD iiZXCT?+`b+Fv?L9l<1HY޳%uX) (RVK& z4 JF 9qo;$!J⋭_[չU8JnedU==8KYY̡ -Uu THrSqUsbu)W$3xz~f28lv{Zi#,@*i"anRf2w-EIHVou: bL!z`#`T=> `RLguHl NNNX,\o/1#G=w4lwC\s$fѳ^zOFs4}Ô'`1YN_MwrTd<+SCoy޻LO)y3wΒD7Ĩ?qY-1h;m7G|ȟ{sk=>H#Kb,&}oû/ʋw_248r5:nѳ;GUstֲ:~bymayI|9i,HaY2CRbK&͐EˍsZtU%[Ȋ2'&:垦@HY66cS@++I42Puf`.2X 3B#5#{kI%0ˁ$I0H0 ]iep1:C.II'6Y2s1`hҋI[y˷tS]Y=[ £؏[#4vS0C8Z[$+5{d13!U"cHZVֱ#R,X:(q0) YlduAռ1n[3qăJ$*P_Nf̠O4@2a6UM1O,$W?o$'0Vy?`  сɥTB31G74m%ӛj'r7ռՍP\@l\@Hf4|{Óϻw7( |ksݱᱛk;?6x\_ wO:fpO Kٰ :K}?w4 IDAT#mX3ϝk>c֒.PEgïo-ݭz67o7?0/pzl}PcsB{4}tjkC>26W?m^?_w?^yE34,NirnQɸ\bGŴ]臎͆뾖7?ٕ5;?;?\1Mf.:Bb<{f[Nk’a: nqEY/ǽgugIuLEHU;{1 "jY!J)k+Rʸb5Bb*ik`|923S-drcVLsگe$Vz>6Dߑ IW&F.J\TDgjcZZjtZAA>gSu +{O.{^=?g;9F6٫QQ*dz]W CW0JdO*^)ްI\l(Sq)޳+[z*cK(E=S&bq<)KnL[^1L&Εfm{ յgF1,8)CpIՄr{/ jUJ9Z 4,)4\=,T⥬iMT R3YV8|޾yp#A*6hdZռ \+9QkFZJ}>vlwk-b0pFFK-hVXt||le?0#Ae1AVӜJsAmNXt/sL9ճ\.9;OV*PU۠RؔN#A=g,ͲRP2VFY9qyyn(ij>+şήZt"'i=;gjZ#:#!Q,ص"`w] 8X+6wUJ"g{OMs)T}m(\NuKͻ xn{܌\6[ 7)uY3/y~\CpDl0,X= =:DWr;*U=W`f*0 y?Ԩ9 ٠CQA\ bXیq[Z<U WZD\Ép8CNfu9m(BmDax5'u #84e<#73p»W?!^ԑmb8:bta v2thÿ5pbWdq>-g2~qmm i[ZсyE?DMŞ,ה/ɥ9ebEY<\,}p..8Zm*gNnsOgWǒx?oo$oU/'ogl+0SK Uew߿dqyvFy͉EzYYw^fC6l@k'4f:%;9$e {8oÜ&"K6Th y&@Dke |? _(_.g+(jx2Z ]7sH>Ph$-tN Zl+N)4vc"i6T{u1VrqZ+αd2 l}0EcP#HU @J*TȘw]$+'8nmtCm ybxRLov 듈OMw{qq N\pX(2-5mXtlo6Z2eɩ5y{ K +.6]^ _55n8l+e 71l=^Axώ9>>h-w!j찷zc+e70;(kM ԬTcf)_&0.]c | (0GMayC^MuupIg߃ztKo}o~[Siz^[đR.T:o/=Dn!ĠdTH=J[Y%VAwTD:7CP3+ ?~<Og3+9HcܵBTX#wΖ9^roc=Ze"]ܝ[_GKG~ܺ`uq>XFgyyggg zP9Qh&{qP=Z _HUw6EQ^6 j\* ġ;{uCdflOIԽYsJڹĻn¹VTQCaRŵ%RXK:D#N^k㾝-}G.3Y2}`7^Yɮ9! 69ꃏgg~ r jOǬSJo>gqYb8ZnHtA)j \s~yxMs>ZPFyqi c) qm0ˎ;jks}I*!\W[ϗR]on>gs Rn҆OV'a˴,"ÕI◝GKnylͻVbqww|y|EiڔfEņqR,dؚVe*Yˁyu\8XOjS[KUy(%7*i_}3 !NN0F\N"dQo.̻E?C;AG?|)/,^bfXuտ|'_7y."> ftZry!Y X-] ~6D|23-]K6URz5Vej=3j R,Vj4ZGՔJkEUl~SkޡRzh@ja c\lf *t\3smr1YIsB|D]4T=F+pakmK.(B*f^8Jȁ1̶]fCp杚U5d'%S9}EmKʽ l֪/kۊywMVTqZL'}]k,,5À&6s6PE\fhŸ}H>Tbx<`;JH!6'`]=x1kDR*Nw{;SUX!E".ЦS( zqQUvwy80#GOs{ƚ5L7IWuW{۷UU8V9>>fg (.wOoV5i>s~Ufyce$"qxqܻwbQ7y8?qcDzܠ뎐'Nɿsڵ?{z1U*Q|(F)W:5[>hy9Ҕ_AyRq`ERQIV܇k*Z4.oK 4?xP<_*5ֆڷu\/Սq{Cdz]UdH<άcH:z=Lǟx7yܷ=c'2F#y|FpG5dTSD ZaDLsc6Fo61|rjI xG׺~Ǎ_%2/'軎H&-V'<,cOq0<(Xuw~7~ _Go#A/#oxa~A2o~9\6-9HXD +[\ .r$r,W7eӌYpRsG2R(fجo|N8JE> ԮR]Q=)[О$PeiQ)y`~I\mP1raSYEhgz:1riyq滬ifD4#LIn F]8iDga#RB 3q†u7:.?A*F+pP&ŭoNnRE6a%f-3j X*'ǜqhSG/:oj +Dga4Cv)B^R{.J/ _w"9 P#w_?ǿywW #yƉ2 Ĵ!0es.n,YĞݴ@A 9%jc"jEY & ᓜB;d.4Ƞ%']xwLs1$bxf7t{_Զ<$ڊvۀ;RUX&7U)81h.(jUXHW؝3 I T3 W# fNv3oYf1/(~m]Q%HmdžhQ X1AgFRܒ7 ϝ{^&| tKPyn,tV/ĽY$w֝^u(j^\̹4<7[@u\إy_(YM4Eu W*;:wkK4u-4%k#T:Eն kKR(#sb,JH53 5)3l@{b􂚳'`bIuv=g;0l{ob('z1p HF4Hz9SL AxıVxTL 𾠚!`.笎:eSs6mk6֬*^̳Y){f)>vhH.t>Z]+@AMh\mp"U@MђR(j8fffa`6#J7ko6Nş81ayD9Lf%BLP$ȃi@ƒ?@to&rGBhPP+WkA7>EJq(7/}LD^sݮ ϔ?<?Ÿwca TRJ;i"="ݸ!Q99;b;?ԷǾ~?a3zOOy'<q ?,ݪ̊%av'a L90ȍ<$xqE:R*N3>{.v%_UX9Zf;Ú8LRCIäbш4EDFk|{Q {6JjZ{OILt;(&$3%U]bÊ_;7Fqe-"9YXu4*,CͫOIfN:2KţT,0ȑ1KBoJ!XUl(S9J.D41G5׌Ju*q:\qAq!PKMQ t!+"FcU;69ŀ8}a_s%y9dZCw{"b!-!Z}h9Xl]{ dBY]# ZYZAlf&miޓkEaNffuF5JbOܔKEHBxMT\1yE %8陒]6aXSv4ka-uoom Z[uӅhHu}\Z7F}[ng}G\Pw$ IDATh2L<^^E{rXcmV'"UdXF8??罿>M  V=o1Xk|g<c *L1- ^z 4 D$﫼֢bLvӉTzSŽEЮ>k "Y҆* VFW_`QlK`Pr?^7څv`ZM]0nZ(E2IGl9\n2 N齩^ 7 ֚?v»pyOX섒FKv gG9=e=Љ3K0M@F$\&Hi(v^^v= ^}[i~_Ī_p Ms7~>-yi`LRsnG*Y^P27NOY |Y/?s|W}bevtG_|/'k}Q qǁa=cdqkM=]d\l:1\A\GQo+g䔹V+jIQU jnvL(9 I1 UIEYM35EISAkR8u4غEO3Qgօ[8LUS],޳W !}R* Xd#H4 b`\Е<UE8Ŭ>(8jk c-\e^2Ko,)\Ɉ݊VI <*u0; je5\aRYU<@pǘ\fԙO*ZUlvQau.^lmR :%viFģj[}ig^v{FbʩuApSjp084فK`DrvvfZޤLeO m!@5kShL\)()MԜZm%Ch;E(r; iR)ZJ'RJybᴳSaAQ!Ĝ&2SRD5𵰚^cnmߣM^`ʧ'O7T)' ykZyxy8OHJj(eoYś`9raWtP-:y,PmDGjlqB5~(Ր8-Bƕl2FN ny1qsd"ݵmF4o=<_>Z7z)ټcs)f㪎9QdA;9 8eֆlɺ,ԫhlh4;ar6V*@JIJa]pREMJ%e !S2bJww>a3:6z+zoWH6U$G^@#?2PYo7Ds4fe膦VnܸApފ.a.T8V @q]]שڀWs9 !=ºGU!W\id K;x1`6zB2xZ@mr~~NV8::SP2>&-fU†چ=!˜f[R"=ߌKl@t&T)LLj)͸t k|#*ly+Q'PܫС=IBZWUU=(8C\%dqۦ[Y}+ox1Rv3R+wMuʰ; إԂo0,ً/>R[P0R N֟Rmee R)ׄGEI) k;MOVsDLNJ\$ͪW&g[nGmPdtT[¾si^Vʣ^^RwִhV(vNsjl$BJSlvCtꡳ#z'*LieN:,Wй*!(v3r:Ћ&} d"TyyYcʭpҙJ`7힋~r`޲apnYtir.9[ 7w[^;8sa& F׼jA|hmr""Rg,Ȉ#%$/qBC,hK}$3sY 1{= 6s5rCΡfV-v[-4M!5 sbov-_s۪WՒ͓^BBk™}䠄S@6D%ncUHK<)|Ƒz-Bx)Ugj7vA.".aEV~9gjQb={k0S[UўD{R ]kRf5A">˅ <ϼo[[Bʣ+aNZXןg4}*v_+*/|?YB/= ̩cnwr0N;|q2J冀rqqɍ7_{Pի}w#>xf% BZ, (H&ؽL| -*0t]= tX f)ki#nQ[ۛQqrU:HdNnco?aIdbUxW>ĦObE;∩9s66ʵfJ"_,^苄#^~U.癯׾'nxc*pf%LԖw>|dlKa !8-)nh&JJ1eȉkJ];C$U7/c.\(RZm3p(Gq:ǖ/fh(fBSTz͋!}(@q*m} E`T*Fx0s{y߼.OՖ4WIi7d~'k,S^Fn 6C=  %r#I34dyM.tÍ XTԪ Y̅oon/Lyd^_6evOyVcZdJIHd*z +`qB*bA;BsyzƈY]fEj5:sZS]&<]g k=)BD<"RG\1\H9e%c3Urp?ɺk?2zŇ?QRs㕏+GsD5aH.lq'd^m)c3]tKte^Z0"U7Feu]K6eV5J9[e EkUC &T5$_VmgST%E m*g!$0kT7b>O-Tulud҉j jmgAKR ^3,@h <uʲs` ,CdR"">+,C2;ǛׁQN~yfcOvcGnX2 N<{op_A rAGv몧 =sv+ :\4?=,}6_"3v_N!;TuX.p4ͦ8bUVf-}==y?nMrEq( NS~Ua5آժ7t.̻2eÊ]ŰÇs?ׄKw0!'8{MywEpeݏ ^S٧>$|FP>Yy)?͆]['SI{H+ ??uZ>ScE2[E5vuzސݺMx݄ݡ\uOh]w)M)xh|/*?=߆)߭o ~~'~'z/D^Iu2"gqγmX-Œa5p31\r}7W]F)oP?gxؓo"ȳJZYl;uO7t%0>M9AewBMmWO<ز,}Zk}}JBB/L!k(4H~}b7Srf9veOi%2 2SBL A~guTNT RCˠP|J:a4VDjNȈ-j&H穚XhwGiZ1/m9&X7W/'A;PyɆ qun޸E[״#IM&ArM:ǑB(VHؼڄz1SFSDņ΍ mc뭵s뽝c/YlcmV͝j y,k R^/^r_̉=[ڇn6^ot^)gXlD))'G/(hLBEH:oɓ6իWy&{{9!$ 8D^HK `w1mpݡع Cܽ>O`sw&^B/O?Ϳ׃>ķ~gRA@L#ѯzMge@[Bbi$ Gy+VUb+6܄ )BHB ~Q%ҀX{A2;&Ci!wcS-P 3CU%KZ H?s՛k\,]x'?Ze"88a%=E 2k4D<:$ReaJi°%eaV ,!Ra*ʼN#Vn9g0M\[%v6ɹp='r<a0:|aT"^uI-+v˴+:bd{q2Sj3\ؐ(ew~䫿-۷8|O x'g挄ʕ ~P1Y0BL`f&&4h{A[zEIu(N̲í D."Ma.*xF&":S+>0Q(.3'!¬bTU| bmXl"aAqJ<*gg΂ǥ%yd5r IDATXp`#H1g8_,Xj8x~ z*$}U']klƽi 1LvTzˈsJ ،!ġg(ZRcy͆INd0‰Ѹ*B k 蹋;sPcBz)2/D,,J#cyoCzUkkjsVG>E$W &C@JiDZC'zEƁ)Csмм_iYVAVU܇uRykQ?Z" .lCxERJL Jֵ*hns*Z炧L,*&{:ر^Rʕ}.{A^/?^w_˿~_?zfה"D؝Y  j-/~k/}9_Gh[雷<ƫ^||s~v/f΅qWO68"{T+BsewAp0sc'{$`.ܾp1DCZ"zsf !6阝J@(ɵ|Fr qZNE VR6v8ƲPk#PYK-5"i MV+wbUu65Rhˎc 9UI|-}߯WZs;aKb1&۰ڸ8C`ɺP{pse5a[tHZ@9r !0!8X[J3s0xvQJibmk?\qǓ:r"58˜9Ȩ}pW5'Sg-{.q>/"F0ևܒWԲ]rZ3^=eSw{(RY*Ã3lW{OH:"`\޼,ez{ב6rۋ1Z.(JpBKGEKZEG>iy h4DzFs&??AN\͆U$~Gͅljb|%/ă^图?} _xHN~,u}>G^0QlVɜR,*Gq8逸Ja輩g/Ձ}jxSy绞╯>ͯJxߣuJlL<2Z Zo) #}fvҔ){!a'5GhfZGSbOVi13%"zubTPlr*DMҹг9ۄ{+{P?@M7oXBluR S',q-ro3ni51XmgeᨼvS8I~,aW3 ^ +jN!\Vaqo߳P'x sWяm$5VجF8?;#/boW/Ϣna+4'̻3(L5bGGnxɕﶸHpw u< ]J#h+Ub x5HQTk`w$hU4EZRyTҬR' DM̕sXjN \dW!q,ɰ]8}#9ٙZ\0KB0ND筮Cqv\TPT8jMiN_>|ݿ‹9$>|}'|~iP`Jgi{OJŅ~ >N_j̟f?'n/{M_𹜞8x[ 57#9>Y{%!1x$z>op j#k!k;}E#8sY &ԦKfBu ss5^~4BynQSf8` 4SK!Pj)saܟbNCW"B^+̸4e Jė$PTG͂9w߾]#j9'1\$UoV@ aiVyB3YD.[r眙sfWVRmCQ"n\0!."Ӣe%ȨVlYH)]"="V?^7y{//Bs4 +8QkHN'qE_ڐ[l;ađ\O@<,P"-ǷD#42X[I4;jHh,٪,'VGOQ! ^@5q+-66򑗑(X#G2cF<.=ƾ1J=פDN3=xΗn(%p r:.gvBD+_ܸE\y-qlnpUc|7&R3Y!Ê@@0I̡p Jk/ g}2})[0Գk .dc=cG1+O3 :i-`sA7gQ{PI$Z_gś(U@]@]{)Ga2ACHD]+QWHqįC/rV( WM_@e={)h" hž2˟B$8%MW(6i0 X9|| W F߱"14zj͇10I+70xR ua0p~W:!kԲR''}"^\*kW'Z ~'躗zX_H|8~^nzW~[xo^*U+o1!C4zn);Sn_U|k/3KS;XAB)0dbɭT1q+˞!LaN3ə˶4Xwot`#;iX jaA=-wДA lH.= jovWVM1s8M獠hw`Uj)$8Zn7D4%eW 78ź+")(vzdh3R"@Pg4uw,6Zx(OiU(/?Fjg,赹s5qnyݛ?o-oGy*i< &e3'xhkIueyTn'4UlcKQcGq4 Ґٸݼe'D J¨)rq @Ր_Zbdft2y3CF/LӚgTcMlWAC]`'Ƙ^X RNON'? n}w=~+^ʟ^Ry8zv7ui0Pڊ=;ƬmbdURE$0:*wh,qzw|+7KΕ(YG4)!4$VadQG #;G"1҂cO#{gi-z39ް7Q la荐,ԱٲGkMD!{{W~ d\W<.~m w`=T7::n=g^M81ˬp fvi@0W:(L>2DGpˋ7P}Na󲧭57v8bwʝap'S.2!=W;f?#S"[7؞|,;7EsbIݑ,ZB^u3-gk 94RȄo7%LJDbM|"41 #pGDgw>^Ve%p4p|a)"~;J?݊12  zy¥NsPJ!}HޢnwňcvG_FnݺbQ0q#pZ9Z'BPK~w=o}w~~+~#oknY=ϱ aڕSPX&Vq"Oo:S⊳lFj{k 5I3E #Q 6\8P .a&V 6PAozJjTV"D#PqЂBJi%JA\˸%]gN/;{\C)d,NMm%KVkBY2y^@g[v^A/D1o NpX\9͐o"%)GGG8H/\l#Z/35XCɴӕ|}zHQ@ZPԫtŮ R0_ ecɆq-neb1p} /7@}k!raκKesǑ=;#'WN!z,cpc}k%~#HD )$5Rt4/D!1o޼/xDO뛾_}7p܍[K>k\b9ab^/ޏ|Ky_Nvlu&3mRC 1&5i}Ĺ Om/Æ.f]XB, IDAT0FHQk4#LHW iZ@b[%cyV\3Y|W-:_b ^==bu&˓s` Y NUb_fLVBG6UUȪ:H3sM3WyE##b;')0DLiꯣӓ+ϻ>Mõ yNƍ ^ؤ_]Qn5an*a1B-6].վ0a pRl1OyOϤH JV \6*Gn.yw0,FPrGt Dlz\mQ'!P}F}d dJnQ=&Z7qs>D~kӇ;]E3CRJ{:;0ĈkV2@0"36ʨrŋ) n{2Qq)_Mpڃ<Rh ߥcxFg^c?|1lj$_%~+X \)\Y-o@J`}tnqa"M= 7v jCgZSFv3R]c_2յ^hѰw^'w1Yw\5a֔VSUj 8 1Zczh32] T /VJy%`5y5wJc/:h89R 5jd ӐraqpVfM@,,h12n>t"kBk{ccPϨrJͅ Qq4&梄ibf0sN[wm<kCH>g{2str#ZŎJ<ϤɎsyS^+>ww1^w|/~3iysva\qraD 9ח,yOqּ>jP0b}!90S:ԎxVwBqqEԪ\,Jv-lj0 H9r8JZg6汈ArR%_" 2W *x&&?+T"2Pu} 9{.挺7&h8?!sDC&GFx)\3P١0Ƙ<'+kfXg'9oGwhsZ[yXpۛPeW NUGOr@ `Q8Rk֭3֛ UTiMk|RḦ́h#Bw;E<XGι;z03wƞnݎ0t 9[UjG{Y].V,<9/Rkkg= ơNɽ_ q),\CzYlj2fHfKi*md+R@ZpL #NRz In yk= sU͕96Pk^2~O^Z:4 qlpګyN@mѤ0ׅY b3Z,MX k#۟oD(F8>ښۏ$?B7^D8 D^lBY7a{3;/?#]4ݬLib/ )Qq|tlտ܈h[^^\?y|6 [<}>#)`nO;NN\} 7 xrgl 5+7K7[m 5cTig,Z* &)͚== H'A-ay"];ΪYE p:#Tc j Q*f5ͳMvZ*O !"=d14R]2:5y:0CR$VSO%Nqrc?;$:HjU9?). L>]$d7ı9`@քC95{Ur?{>Be<'e4it|WLlʥSw5em,M"H-ѻ]#2Hp6l]B*C8 .Djcs훛4:Uk` 4ۘ힋A5hƺm^,BZij'^jR:2\1d'EZ^KطuHf3g=Ø82M#Cާ'DonDz,6- Os~P&q.4g'”FH5ahb?%}Iw~g >pXNjq{vo oyGnYLi`HB͕Htӆ~ap>|/>??O35__ΗU4WFq3ԑ[Tg'ں*K$R\j7âL8M8̩4f6/;vnQXE2N8lnFi㾳Aa xrYh)̣9U91DJ][?ЋdU)ɯ i;=(1I z,rB>{ >PLgK^JrY˖̮{kE%Tfsl|!, 7O_paU⋟n\dD#+Ugq[X,,V3}{sRrRc,RKLqŠzÄ")k\.x' .2ٹЌ(Kol <[Rّ%P;z7]s/Mʵg]8C%R I8+_1KN0ܖ&΄5!KϦ#Ym-Sp|cܵ;P\˗x_N:H< rK\6h?cS*e:r+YĴq>f[ ,Dh7en<5]ps%lWŇLt!9S~*%%'|#Q%i؋o9<zW4cERNK?j ʘGRd0X[C#M3RZY-62dY>'Kp艐 BDB0R߻ ͺJE.Y2l'uO4c3q9B&V$Ѝ%#,Ba7KemeR ]K l3m.pVa!JKl68888`\u Icgt}΄_ 2MiD)DXvМ}`&&Y $_ICn T'p̩4 SCǃޝ|4мջ@;~=~7t>tlnj=03k Y6:3,{%7|xWRÒr\-;O CJ#[9RyvYq,,l$PƊĞZ*i1myL~b"q&["{=pUG M[kke:!+d+obb:\U6gyOL=nmqbq-劫AݲcPs&.4%!zVl8jm\JF8GIY;\Y=1Pth;"αr"nӢy̫&m޷U.m6Hݻ,f%ZUa@N ]iN*qՆj K43Zt qjEդ (VlQ-f6;0\Gcn]lmVu4RE[2sW:t< ?'z!B8 F\`dsxn3 ?b8b0ĎwglęO8 a5>x㼃jn+p(X癑BJ,0NVDvJ "jb#7o|fwO3k[Ꮎz*BO ׆Y.z{MSiw!ǛcJ6]'a.Rj(Ty;/h5 lɏŞ9'-X/y O{3t~m+l\iq kz_yS{ol_#y|MI߱k*B9w*֛yb[ogW}_gف=Go?`-`H'DG*#3 v*:Mo(gR У.4Sq/$R*uμzKf,kUTW[٭d `deJ2kA6 6L35xc ;+ H1|`>2AQ/zK;kFlUl j5.r͵oxCr_UYt=y$O3h*SqSJ%N1YDs0FSPhǥ 3a 0ϓMGWGu+d7TqT |ن|^"d^9A%IK +fY-0F3)Z ]߳pB.QD@BN XF 1HR#66+2Iu;[lM\E67?wiIwCWTT1J+]Nۑy}؞ȩes,m/%[ 7W IDAT0 Ċa0Rn.k.11D~nJlAz|tZP hHOZaRP{( cN%E Cr:pclxr޻YwJDCǃG"F(ޟ@i{ gڿzn?{^%g\ts\{Mq%u#_y?WrE֫_kK~߿? %SYSsf6L⻈N:D+N\&J >jcG[n)m0)Yku2kBt5s\'q.Vid-9ZllSuZ~t--&a(h̚,B;J̍JMVBm<[XƞMT{Vl XAcz95 #C)L "JCUj>_Gzɬp6#_A6ˁLVqӍ7mo'<Ǜ5sN%wڳUЇ>SGzggb-vaZRjwή 1<h26m^y̏y"4M3"y-:^U})Z94],\,Z#-3^M3+1օ<2i&t6,[ڮ9τЁ(,d*>p,Dq4[\ ׂB1ಹ,;kQJ,EdB d9닜 ݹ0}!kDU2^r[~WWwKdQnvV˳\w#8< mJZ2aWyƫ_̓w cOtN@3&bQ1a`1+V˳g5P$2mn'Ja^g5O,90 ֪ TnVg2oDamjq( sҫ:* .ud+sU-2a|ݱhI&wc6["7)tg2?0-^R1k6 %,Msóg?z5|sݏŸ^BcE.[z~\| hmoNo6."c<.t$͚7?ɟ\prAgrYQWzq:h1F6hNMn/zE'EE6Dl3`=gkZkH="wX,-R.$YI0-u ,;c,mJ(s3;bjʉ)OM&좹}Tu?\e )*4\3pڔgfTJ̘G;XZsfe@2vCI%9uc, s;#ԢK)t if-l7K\9DEgX,{Y Do*-,ZKs1X\v;6|i@ 6hVN>(ޓ]MUO5K\@Du_Zy1ozӷr5l/\|GpvB8w=yP tgV_oCoӛ=_җpnqScs%N #ƞ9>Q1_ ^mgn;p6Ff.0GaG{Ǒ uPG %EձҎAVJ-7RG ֔S1ť?iB!^,, ҁ\fњ]s HRnݫMUH\|"jR  R&+tѳgRBp\p=|}?ē?m|fG|GpvҬ,W=>d8H%q38??m}K^|՗/|8݂(rm(D//|xpq[x>t\8X\CZ%ق)ƺ`TZLD|d ű4Kf- B"00al,}9gq> Q=xB@<@=YR= | T-D%B2D Ga"#oG6ϸ&XB+B`r% YSqB9 Hs gVdT|U\V|D8WgE BWy.R|H#"HHmؙV3/bR*%LWUu, "' *vjmCWJil Mw?q#Гg&)3p7d|IH(kJ-{HgVnBAypJJ)Ew/@촎!zӷj4<)o~/}n'6Gqۭ7stid\g 8(,c`.oһ)_+^Z^ky ։+s[+.*9>><, ~A:XԼWI̭@mHIfRQAEfRHnDwo&SW)RPmK&5(Dbhj5\067,ria,6@gRɜ g҇=cYTt]`dX]%[tlTjrYo)|G~"5\x'p!+68Y砪\u-О?DP 8C]>xWK_ܳsKbLK( 0HVΜ= JpDŒ!4YYJ_a)D)M9k!Bʤ,;`v*h&Y@%V(bm?}UIF&:ՌLtm+ՓHi&@EB.%58$+e66$,9Pϙ9?9.1JH&آv7/ m@+J%ge:BpTSj[t M~^N<%R9ifѷFþDklfuCЩ]$'js@֎Hm7 !"^unk@\pL-qϮ/.8볚'p?5wg;=?ݱC =]<ޘOdg<,%1ˡ'8!jl22Η!0 ´X>r$5iSU-1fMFɊ3f*1f['z<s(^җ'? bsa9{JunXsᳵCzG7ŷ2{(}tѳ-`XBVɴw E 31q$p9Kl ūR)"`O'{j@ E1{ིи?{~"{Sx_MkhO ￙믽zӔʘ23牔3b6; .0?s^—p||&%cソsYo"d*F2/K_rG3ϙ,zb߷xa󄞶^ZJ D&5ћ\ Z 3WZVcLWxL(\<"Z#(=zTVRUFTQ.̪;KL*T 8쇊5jNG϶Xח9sBJJy?P9v>4׉YIc=AS[a=1;wzmO&;@ƔW[b77w泙VxKbΉa阳ҽ\O[C= ArT Z==t ༒ɯ=V~+ ~{?[̧?\+xD $1,?+xIaoW_ <야K^# = <4z/W*98P ѱz| Hr͋UԦb>ېO3 ֯m^%ta~A"Y2[)sqN|en^O t8BHkU<_z4o#xgY&HvGG?oքEOuq_{|ȏ[1reWVQե/p570 TaS`IUł$!9 }_ ][(aRv]#eRxD("LU,J\P m=ER,i) :JtTXkibҚ bZ~cke%;+";4v9)n7W*>u 0{=VY=mm(l]g)&HU)^7뮻4)iBegXc`f48isUuR<3?%1Ox_Βc f[|Dv0QHA3ľ"r?.;}WqĹejAJЇh̄EBgxn;0&֣RUOW<K褐˖c]3D@}API{ICjC޵!6ڮws.Z'gcfmשR!4n֡J͔ZΔ,ʙج)'48yOHyK= M?s^9&G?o~ԧQS&e}]iT #$ܘ$" %48Jw#6)Bk]Z;z؃Dh+Q`FO h_(tnrD멉v ,ټ`k 0˪Wks-%NAdmE*.\TSBD\[+,Hј]5 ju+7p7|c?. ¼fњX%N D윧3/n?_B8<jԹ|}+qs-ڵT~O{9J)ZqEcՆ چ(9y-F7vۻ=qC`Ő; & Νa7ݾn4an{fXoGs wUj-R 4YK;.;.^0]'@ IDATeg${ `y+_jKّZܧ)Z6gHД4rh3v~Ĺ veI^裋=o滾{xfKYfkBo N8zO)3g+˯wNj_bbxUgy r ps,Wߑ:\g&p͆rbcGp'\ 1JnHsŀj,ƜLEm}`_P*6蠎 @X Iq:cU ղw Rj)xM9㌨ǻδUpxH2|Uٟܖ0t< 3óx mN )t* x;֢'l#QCG<.gԒvlpp밎U:'/,$W19$[3Cj{oE-y'D-[ouܤEztNPoCy;=;:* ὐ#doinTb(]ZZ-1T\3,VHE\'>"“blNEyZ0 %`6q| lU> ]ּKps;PLMߊ2V'tt6qZ{u>6Cpo9N>3Lr/Iq5I~j0rdˍob]N=IN>V瑝D1=şX4/'WT'7'yvGc02QS,C~ƈJVbX9Ss^<s ȿ7?s іuu^zO7t+Gcf)qTw!kk2jbealC@#sSJ GCXo=H`F3T$CT =8YGJirP$əYϲT87dCN- .y"AZgmڤG9ƒ'RZ&cm bCbb-RjefPSV+l4&8D;t.>$:),`qe8${b<2 I"N|vm9 VXH$#`L6>lU: E|K(dZB0~ڦH™12b$S1 DRؙї$rC| _j[ -cv?e%S5ڡQqׅ'5"uZ82/1$R(!{k6KQ8+8H)h6U61I%Ky]ңց-m%d+j˗IUIL%$U"H1x1rwIiWgQy*s+^JƹCWHh=l_A1{A?vrױ{> .|[qu Ιo?L0#?9Ť`sqΧ[cda6 i`(Im'c1PW B¢#;A2bϖY7acE ުUZ*tS:KhpdDZ?%Ad9iMs`LFjœN"% ,]4: cmۇOf{nrڍ75(9]׷[y^[n|ow| ?Ʊ3%Ofcc a 0b*S&&E{ȥ;cDf۷\` SPBC;d\Brwf`i|)XO /\EEChWAc7Dc ,9遶kbIި"+YR)E<\=y|6'?.8a!SL8=b*@|#b:F%RL7V_?g R$RJon B&Z,KZ1'%0EEjDe_`ez^o{*]@[7kց2!Ԁ}NڕSyF攋)QP$Wi-hcPmGKRHC81XW# KV1 ["I9y/ x1%DVCʔS*tCFEw)z 9xnY2&v)X֋ᑲ֖(wؽ?]vH8;챢 @Gi ! !,Ozνᅲ} 7g§>ic;L}x[L,Ɓ6810Ɓ1m[&Gc-y"1c8O螓>0GvE1✡DH1`W*X 8|ԽM;f;5mק3(L)PZ:4(Z:2uHBNIL:KQKp9OտqOz={]㺧_{loƺj8|dJܙa(:VM3XRгK.oQx)mKuX֐8S_]&VG%*~RCf('RW%8_e璱û~K^\ɯq0#m2j.aX4K?Ec6l{~w<?v3yN7-:Բd6\b߆gɍG05Lٚ>| 8F>3Bc,;NXda3&YQԟv7]GpbqMCi7a fKZz@ AªUM4p/=Ĝ(Vrriђjo+Wl24fxM772ʰ3~72;//u1Bcdq C "!y/tsRn 4 C0g?;ohZc쪫ng>LqG(d EXq'bVK3uM))HI(ƨOvτk{sVd5Z쫅U ZTrÐ(b Qsu0%s?TQ^K志uaJ1$10JguΪޣ@X!w'*OT9hۆVl.e%,loﰵ]akgyw/zbҴ}6"7YiW~Ǖ5"|^Kߞ&k Bbf ~Ygj潧m;KeXdɛYKC:{歿N图ƓsSs~cq$Rj/$8ԜKLLly~ϼx_5W_s=Ͻ/Zr.C7DKpS9_pBvXzŽ+ VOK.z<_½뮼cg?G1Da)hG$& ZhC=+cע!'3i:Y:ښ\Ik%ÐĬT[QE$qTYGFyǠ֒ߋ"1`J!fwMK)pyq A^?Cׯg'mTh)HNRHLk Qns|&Ozݫ/{9!6'Wk-D#4j'"59e:2,z@#PW}k^ʯ [[[ܿb)6󶷽oMozHhE*`WZtQ򂭸ZqK˱T2M8IRik 8K_u#Ϻ9 ҡbk+G?LI3p(˨5jY B 9cV,$+Fb,HDgclooSV!-QQ*gHP+ck֫qL*ą$@?\'rOyL2Z .rV "~3c2*}ڡ>Κ WsBQajkiVzflvV슡ob6mC=9U^hv,4Tqgx"K۸E7"aĥNIܘO1*+qaW !1@FbLXZж-MĊ#k@s)_q=?#d~;bA$%+k#cN8oCƷ8!tM4 wgf>>Q6L\| ^z>}ٞb,4\8 C񚌵O@3ZmmI60N:RKkpIXU I,C(8"1exR)'MҒIZh<9CT kqD.䒓N}W+f>z`OHH lo(-A*beѼr-Qw|:tE'C+X5RXO5mDo C/zHUس_^;x+VoT $fdH"9xG/APO6%MSl^ʗ*jtsWv 14UZ!@1G.#!rM +0 tfS,Ib4S2Y,йr%A׌hœb%GfLlG 1lnCg'{1XȮO[s.c{nGǥaiҵ<k-idҮ '5 ^WJ\`Y[D;aaʕ/LͰ^ZiaNS[Nb~7-6uT]XsmLJ!D|6%Zéi~珽SzbbkH\Q*Xii{v'z^O 89{=Gwmr@8MI2PȐ Mg&Cl/ 3w~<_x.RtE?rcǎ8v!ae_҈N% ]c)f1ԃ/ĘFRېcxϢ]̚2*'T ;N##F:=FwSnI@,cGk'xbg(ZQe;& E k10gs RpgC&s7+.!:FE P xV`#$5ȡpÍ76x^菰4y;Ǽp[Q4ж-9fsN<|do ilꝎNfgsVuXȶwT*Gr@8ĒaZWss?vq#|ŷWDO1Nd.2Lk"ŐڂГÎNmK?$XId ~4̷)؟ IlA)X1YaӦcvt}[Cƀ,b<h:C IDATԷH e1e_=7|ȮshX, ijGA&kMҞ䵲&3 6"09MvsYy5`*oZfɫKM&ky< w/*nwf?ڣG/%cjehHa#b6TQLxpwk>erwͬ c ȼrvXK*uh+m{B&/*OH\ay@I~zGqNrܷ-&{bAd97Fsj CZ6cznp'9|6Ӷ瞋8α ;,#cc"DXx ŇBuF!z2Eh "̝ Py5fUk>Xq5D'Dk؞Lk1PƯV %$" !Ҋi:0#yLӶck\wugøqoRE&1uXӨ= 9~>ʧ? ᅦ߿Ngz3mY,lLkEb2!,ꝥq-ә"NNpUWqp#eQ (Tl K oNmHEH!iHu1H$XϦnmF,)iZr&abpvڜLfĔgh QD0 D,M뀂507`c BĘ L"Ƿ5i$Sswv'Ixc3&J.y~^`x51) 8[臁ŢKw:-z_C89J&R̮vKKe&zD.tpN|}J N]TktP*T58TkR"D@B!8oWRPVʲS.VA7bA?c %Yf/ ތ5'$kou-x6QгC^~G'R^QU je꘷qgV5GxG kw~r$S)݄bG l6d:2bloQH0? sfmGLH"81 ;yM9bHDf3B@B1d>UFH1UQMcOJXf;G;mC1B#Dd:KG^QNʼuA'i!}%=ኳa\-/O~4qII I'cH63r-' 1;^QyA'1'b,j;kԵF mhgs)9ʗ@nYag<1ՖΒ*jS[BReML&jVk/˻=T璮[r7D@0efERD ׋U&WBQ.RDؗ+u"{ЏZ4^84$Db'vRVEFZ)Bj'o-UޏƴIYk4&9'KK2kbo}9_󖷼:mLޞ3!lېoRGPD05&|:ύG,Ct9FoVƱ#=⺖@¤Fal82/sf911XbJE9qdF $Erv\h)ڈ)1TdXִ-BBL08aͻbEo3"!b)V+2* v/Ekk a\O|1d[Y7FZǏs9p7o__uNe:*'6ut8X>Y fmp6\|_0p:7AJm CR1S))/r6[bI`){X2rmxKӿ:t2i9xBz/cp#jXPcle5NzuuaIp9a_VM@93^X/Α\Ŝ+8/XK)0NJC!z"J3ї~,Q%˻к\hsI%""jCVf\ȓJ]E]'FH13X:]x3 MxđcG)axcLZzaޛ bJL6@3z)M"v܇=(d+u!+G0[N&'L+0Z[sc>Jch*}ɪA†d4vB/nC@Zl6|̤i 'l9qYmݢdML|ąf'-vOGq5s3E* u `]c6E*s=US!KL1,H)45ݬjDz*"OX6SRQ% hQ-%9dE_Z8AY(,)=aK2kXwmЇ$bKmcMi[ޭ&u_T C-X^MZOA-u *;[>ӝ|KNo(I=)94sMMC0؆8H,6`j|zbQx58qdoIq@0IS{k%qR؜8 g~ꘊbIAsۛ\&L"O & l鄱`U5Bu9^xkEh@!P0hKNP\Q^(5uHcgN;{=oC3,!G ͎Vp\pj@bx/NyEjwf-ɰ*,kE50q [~iO{Ozғ k]n$ĕUcN`ZPu^HxJ૿9xZ#s}d#J [s;5ka8tvsw8Rru(RM~r3Ǿo{kNQXCج2IB$%lfm)u@*8%48]8w0UQSgROej[^c`saT~xMߜ)f6n#I:6u`{v|㱕ñcǰKBܜ^e9뭡+^ [8!R1g6zYNf쬡tmi^DڒS7-ErJ+1ƪZErO۪k`Y5 {i6rBz q>Jl{^iKN#;be0>.71iZ|uqw-Ҫ1|2QYK!j(oU؁еڶŅ4&H_ll gtcF>s|1{PHǓ3(t0͆2-ⅩhTk\zR ԍ01cBUC c<1Fc@k&X|" B)X_Z\vY+ug,Bc-4P$5ej<&Wsh]_ h1b p뭷2wid^8GQ Fn,HXJIxvϺX"&SLBFB8rTctR#9!%8)6Z[ôxέSQWq,Bloϱa2w.wq^4 9B eLp/ ̥qiGf-ja/G!"1#)wq-xTHQ/sn5E/(q,IzI:M ϻ-Z`rfOS:Јґ| )r*@a%eZh oO(c@D6ÂG-2{!O:nmd⼧-"Rf!Ltd1l3 ZjMmcZ"drhgB)`) < )xs' Քȸ[ЖPHqo**^%cbfg{ Ԗt/'àz9p gcVQ"֋MuieX,lE,h|/*:հaocN)r 5V;@ߏU}q8kԑ!!j1bkZZM[į|v9=5VCEZURYO:9Jd-;ؙϙL&Lf3S~mRRk-i3I3پ~'b‟M[t8p!j#L;@cY7Qt /QJhgXtMb>O!b at-C 1Fa"$cqءt?d$bk%e*VG)F#@ՂhQ1QLtذ"=rY?t4A YKϐd CJ8p$t^=PSa688~97|? o랼u}+_+_;Nݖ8lnnr3o_5|˿G:ĕW\}ʉUwﻇ6+k1.ˈޒlZ=_.r^@]2g-ILqT5"TWAs[g8RxY,\q<в~p z4R޳q !dԧnw!Jx?O[96gEe A8ߜ1kWџӄSZt8TRRunIISh2ލaTlپ)_|J|tZ/Jkk$4Щ2糬#<*lLQi)&bT+~ ұjڦ-78H13f̉0;-xx$U*>O2 Z-zg ^sjI)ee%k b+eo9f*Mlv 1я~Pc c`U|e[XE +U.`gCYZ6.DbY+c #{cK9pCvI3M <;[>}7%ɔj,Ȍ1d 8gYtI e-Yӝl6Mq$P@R JR%y(Acg-VͥprosFJ\;`0fL'11Tg,$P22@QH1t^mڌ1=wM^䵯}-W_ujsB;;JJżύ7|v!>}opΰu({BMbR-CYp!ӍSgswlϷ̦)Э}Kr,SDŨZ&=~ɳ!NbJ[W\w42ƀ1w=z( ;zV q _<ڲs}czFB &$ Xl8ثll'q8+ztܫW;,Ǭq,6b0`$J*UI5{={s}j@H۬+pwk=RZzܵcl`i=iYi}H"Y'Zzv n9TXk0D`z:$<%ZbDH,}-+˒n*4n8_A$ס )IDyޜvʲ$2&&&ISޅVq ؂%8z4 8GY$ϋi9 H"K:iJ5Mwd}WL$kixyvrĹ x%Eh#ƘڽZxu__p)''v:u[g` JxUdQ(2 cv|%.bZH C))_\!(vL+&3Е#-A_'N ^F"E-=eY7w~eoZR?|SCT/XDiH IΠKݻϳՋ@i2JY&T7&E)T6%$dtMKYHYQkC=Hҗ-YYHx$BRàhÜYs*΄h <"eDNMwu<|_$˲Ɨ:X wA>ž z~wGBP[8A,uLMP |&XᢿsH%/JLQZI;!(R$q*7t&dηm!d!N8[AEք+o.і޾HYbM 4ːZϰ(_Jrw`~a5?4o=ZKULN(BEq>#iX[] X@Ʉ–QE@$ċ@xG'KKHEЪ F+ROԍQΨ*B*HJ#Tm}Xպ%Tj5Dnxו7ة$MXeYPU 0J!Z1Pv,hzb4[7䪁g't:D۳+amL#qמ1"hI'Ζ84S[8X3襃^9cO߶~͙/}Og})g Y\Zd\/8EQgbr5% T2Va,0γ3ћ2跒(S %&0ȾhK=ysI+tA6!p!219HaUAVi0^p;?'^߽񶷿Wwİ,B^϶\RMo㷿W鯮I &DJB)Md]'YHR#sk}֝;vg~,Cw$E$*1 q=YE!LKϮFe2^ TH"!TYvEx~aK5^xr[diy*<A%\+Pߴg!B1R5~Y@D>.*d(bM2x}OP:HH҄465['g%hdwv~^)cQp@ .YaE ^ӌz18}~,6[N$B {pIEY6m&feGW436@!N6 0^x H @phL,Z,9JqK<"DQ8R0g|gdmLtd<^~ [f򖷼{kWcSV9RMDp>(gauU2|]kW JH7^nf>,qyFiʐ)y^0s g݇U<EAh׉!ƄpC''{\wu|Ok+AӢ^9ffΆ?thY!\WGÇIY.4j1UtTzG`IH095 p h4Z)hImN!WDI+kQZK*J/kTH㓁Չ@ȶ6S 5JՍ深_݌~y@7bCnB"吢.eiy#KZĴP@ >c%e#avdF׬ +׹`}EB&yZ*Z9jڬ&޽쑃#szYt _`YLMM!zc-Nb?8p <z+ߤ_ It][sNſuя|K.gæE9 I0LLM"`0ho3|VdBS,^4LhHTxUI4 CV//o=BUo۶99~M+}cUW h 5׸hƛ֑=΅,,RQE{POpmu,,6s2/0eh3ƄS%!pHx&KW#zH*m;GБgIFAWiK$&IBlbZh\Qa+S'TA-JB 51&XFN?Em`D\74(2J~uzj xY*8_-CYHmzk،uz4Ek=kga֤iڔ<6zN7iI7X/ 2_\kahN?^IІʌ:T/9IBK4QiMtg+#:g~L1.OѤ[(/҇sonSEvw &=җ"sҴǵ\O<(ZY!JHNP3kpUu_óGRaM6`>O>~oʲ_ Cx1Mʼ [u>=iBQH4`Rw:E>/<M:*rć?>O29999~F`w=8$ Ǻ ˷a-sAbVYPA9=3m֬9κ h|9sg4!TƠ@=ZCTXoP2A gwԉj,GLƭ_.t{yqdi3JNCx t$ʑNv2j~?ڼV5{ڗB[#di1o_nƯ?kn_|dY.\!DH!}DgC7ԖJ4X F)RXdrЇ?Jٜ`wl_똫 …~hZswme >ko}: AuCe:KX'l%$փ.Z<*sIvfzRC`'Y7;,e^4V+Lp" ҤY2bgXA NX-((+2!Bsk79Dϸv­Hc7r^lP#{Ip]P!16'ײ "Itp!I[,P !Ƹ+m?&HAHwOF6~d\M+g8xs7rMmc9?8Ad֣IjEaj8V)aUpMη}}ߏ~wk缆;ヒŦv=?[>'>xgV*=v-BI[|gV)3ؒu*hkLO2u5mq!^dy8qdЉk7'<^ =*W*ZH:ql:=ڠ z*CRX^ܨ"jtx<,(+Ke 7r |+1X1Ai䃌.8B{ o3޽3gYȸ2$>z!34:N(ЈVa&;eɰȹ~}=ˣ$IBS7{/zQ2CYU\r^nk TfQU-)C,$Z%!2YK;mR'_ԩSI$*Ű'^8`ԤW9B ) nN.-/%IY7e_/}|k_ ϋT>̝\W=J=Q*lRў[f6'x#8}`B(6$VTk{,&MO+%"lSGE.sEf̗UH˸yXu,Ax"cU jޙWHZWf>|(( b–8 p8,sؽ{'{pgvvif IDATJӔAoy[½T*To&K@e+.t+v_æ:+d`Cà qJ&H僛hHR3%2K03,B/Weڛ78Mbb̭t,;c\_IG!@;k)˘< d+ kT "5 b4N*#I(oaU be\o=!Lֳu&=)x`w,ԡ)1j<6HA c*GUkFC⌤ oc'y}LOOV9rٙiC5lߺn9xb׾{-o{Y?OQ UE. :2Nf 2I*L0Et"$_Mu%Haۦ#x ؑg)PAv$H-ItcDF&;q]sPUXW$!Mn]Q75n"jfk iN4oNrbyLB⊊2˙e0uvhY]OsiECjhB2p eQpݕW!+_J(UQrk^w+?uu')oJz!s\36ql!FDB僓*,ŗܔ,\n>/N^= &ic{S/L`X¡Q  mXMPBJ 9Ȇ o>VFZ |Q CRdY8ʍ(Z rԁ~SO܋.>;ALכ@D{] e6]}3z@D SќNjKk/F_{&%<Z c&J A:Y*FXW;6X[[K_:Ygm;0X[;aѝNOf,//Φ7] ^C_ eTְX t%k'Uv@'"!rEhxX ,￟^I9^8t`T(i3,6ϛH*ann{'[urQs(HbEY7Pń!I ZqwqWo=5ޔLt'P:Y77u7{'OI;BT%I78ku3`s+{ٷWXZ]O%=J@'k~<W7QYKP \u\MbFDgр[v6W`X)6h|F&(+2dSPKQE"K. ehQl"_#ϑ%({2p*^ Q.o|aaޔ ˂{ַuOtSd O}흯yqQcbٿ*#(Ou2:vIӻ^,PvIElmn7L Fu!aLtВaU[IYF5DkI$t:,#M5JWگJv +D)ηY;M-X4Kd*Q>,/pSO=IeKlHɱ9t3g{1 P=|W>Νo 7jԄ.|v́^E6PD$Iv;5f-UY2,J4eyq!UnN52;K/4wxǺ xc-<4+ITʐ { WX[[СC֐e]t]N3;;=s%xr5׼ơCX[^5 $LOM`ym Hj]LBGW(ꫮ[^QI4snCp.i&9s0UP'#fs7LFH<ycշ-o'=3@ݍz_*yoុ}EW\buwݮEu(kiJ&Z*nܜ %3[kO?LT"$@9sx_CسeXs]'ZAAk%Ъ݉/8,522_7j}8IћD)E8o9u4<:u^˗K,lێr]nzo@1Te[K"rhx vGYviJ려”~ީx[^5BÇҬYH;)>=RJR)p6jqU:1z\^_* ,?BKhއ:R,| lCצk۶>pI)I"KCdV{#W1 qlࡇ>Nַ8qSTCrdYW2tӌ5v=W3| ;f'0;W].q *+kK8yx'NSOlN4My[ΉS/p EPaY<Ϲ+տZ!:Zmܿ!I5Y'#Ѣُ#Eu14X& ^CWy`o#vqk!jvf~p'acebb.qJj|"bYeH#t)J DQ"=osK2N eQ[naֳT$;1_Us dBni+  P@|J)::"x]w۸|Zݗ._Oi*byb&C$ITuV+:ҨLTthD ~,)iV'@#.9A`irP1ҢqR+ fk7\Kb';?j.ӴVRt0xfS:j,0<мcG@ f8sbSx:i@L3Ԓe&&&سw7I*WN!|Z'gytVvmaa8{ٺ3.l'g,ǟ9CKw<㛓`s;oi7$jy@ AYcPQ6K뛞D=ňIhc ^všȀǻƻ\z4Z5 +iOQ%:,cǎx$âMOu%1s`18d8%p%Tkv҄A۶ykk)|եT'B*TlȬ1`Rf^vx퍷^pވmU~[b𢱍lHے |3E6ZtC6\Ј9Ƭp{5gBy,KLU5h:UGVdH,@}yЋdͤQclulF!Bk<.iL7Q0BZV nUӵ+q,VGjxp:zDq6X{ ; /t/,YuĆAx:톐{NyJGp*cC4QLzdY 2<vB%DdrC [ߝ_?ev.f&ꔩI&2VOfI=0#G!sNZdiiˮU9v\w-sX=UnUIi:3 M4^rkX[g9 x7>>B8y$N k~;nO0DJPZ@`UU!m͓@ApkRhaCM %YRy: ?_#|3e,_mXTIE)'};xػ{"yG>ȇGxoBA6auia>'/cǎ , vQzQW<.4O<5Di@ Aa**gt:9|8ℽU%;x;qvkm+)_1P7[pÇi/8^FKC|pqeʌP2{(IwwȮOf]?j?\}Ro+w:LUQVye ^ZeNF%r(8*c1u'[EZ'hChkBP(HT1k$GZy}׻v~x}O 뾏f qbh_[k.\o$`,Fl:Q1re G)H"1]z‘^]ͅͳ>#+ɲCqcLN_[B ;Þ;ym37;TYe#$eϲefӧxߏwVD7,E)`X QBĎݨW{T _ [o___K_c۶m߼!სq E%#)4B v6dis=6h)Pkkk,9N2dZ*:9^w&h)^2֢u{|>J-T'Bx驄Q5a)vu]Y] nQTe |.a*`p8 oJveIȅw; M+>lNoBjBˍIVuҕ-_!?>FLxu/GWH \GԨwL]k#d9,G:LQkk7`ZP/D_ݺtY_cd_3giqg;–-[6`.]w;wfyy' ^e1JTm=:lufzض0϶Ksf yܶ tXZYMt9^я4wuǎ=χ?cwO|⟍in$ EGt pQ,p݇~~~-pV,RQ s=},9ID[*$_J!h=J JH$.5M!ƒfemaIP01w޽wvn_:忽!1 k<ȑ#hÕ%)ZJu()QiRcKTfP x2{a61D }]ޘX5t3:n{vyNUxPR% N^C (1rBmI :kKԨӏ Ss iTSYOBLaC`XmWQI, \2z}Nx#ۖǰ :"by fͤ"uU0ousY V{ WrKSgYId0+L/6MAnIP^|k ?yu?$!χ9c=뵢ߩsG k{IZ5Ri6g"FKTcVcBLuQ\J0'AZeOߍuA/0~mm87cc~VW$*%M/<!5{!v8}fX'NRV.Aζ |ݍػӨUAAYqI񖷽׽uh/59|]ݻwџ(IC(|dYn &n:*U5F~U\enHh!z\ g>Db?{olWv_p{ FFbm"-QdS)1)#K-9+gpU[*SqrdRq9I)j<=s$Yh޳ϰ^_K]gYt9Ocۥs:YF&IBh:iznNc!˲*km>fp^SKp~on9zIʒdWo\o1Q|vw`$Wֆs-^}tS)Ut^i S`07Wb, kI/},..EyMkW kur!U豩1kc 8#* c)46H7 A|_ZIDdLL:t;9iCvӨGw;JJq;uɶab/*\kL u]od`_7kVӻ׶G]Pÿ<0|k;lED/E?$q_{GmiCD"$ն#EQ,TIl^7^f+jw/=w1VVV8u)>5._^ÂCGեKu=Y~KKloIJwjKWWێq?9ܓz(u'$tN2~"[d,_3vM.[[[<iEg~PMKFky׺Z[iCn2UWJ9:/S'zK"*Bћ쑦2rbnB?|[roٯтU:K*676@a-*m8?XE0Ye gwFKJ#L5GO4߸9:;(QJ$FB zCY\#shRVXbH{U.]` AWq0h}wݠwn8u>]ή!1zަ!g]̻@4Ƅľ(p-|t!]Ib1y<16 Ga߿oHdمY_oTdK0n KWXYJ9XCu9 Uny_8t1>n#<̃<># Ylᯜhr:Z{>͹_3a%?[Q337{<'t)%.:۪T#Xo^ 1Ueq;/um˶i`=vme;"yGpmk,`tͮ3l[PQgkΣ5Qâ(3>z5#CNX&IBJ`\rtc6侻qI=,=LYY`jf:`ߠ7即YZeuž,I$zUafv qǙdoxf1e`xnavp )j~[[8vl_z+~=wٗ/- /"D`Otݽ<Ƚ~\ K(F\ gjQVTƆVI:p~$^5{&nB57ъ<$Y( Siw_E oWN4y6vRIX$ز@{y-o=e!KɁطon7i~kk^Nv&,"ŊD"βV0_kf9z*:8稪04pU穓O0YZ;G&@X[@+Ű_Ӕ>s/_Ͻ}r:>M*SEmṃgkFQUXu5Fkս6vÈ257ʂWF~ЕBf XXᢅ%fw*%X(D^ZeZwOfB;2[1EWxA;$X_X&Xk#17J#c73?J&$%elR5uر)RjMjDM97Ei,e & WlmlNIvm$UJ$&mWuL IJ.]_?_\`P]ˬO-ʡrPӏ|;㧾D%O,J,{b3(*S?UԂ%I m7׭ Ig_s睸Οenv?e%Ő9&̐g /r:\zy0Bw2D)539?4~;}?ܷoiBg*.^(9).,v0?wC[a!ܹsg]?v{3ΩSOO8qCSْ3Oq뭷|vZ BV+ Rʲ`D Ce ~֐, ]2H%ǢkWʺk2 Ȓ!ڐ$ >M>E bExﲽRAjP 49t"- TC}+_anolIzLgffGzKuWgbG_u()2lRDxg9b30ћ{OQhtJiJc0Fƽ$] [-<9CBfdy'e06 â^4i5b#mLXm~sݨ2ZZu~$*%"Hua"xYA/.j{k'8XkvU1O\ohG6ouƷF<8lyx֮fvRy1 h];?ڠ)pff[}kֈzR=!55cYO4;?!Bƥyp=4MH!(W$gS' LϜTfM|g_x#3Josʢ}ǣ~z7i e#$p8Y-LIņt C]+F6a1&VvsڒrXi>A=qǮWF@`Cyhz2YU3m=!8j#{;m1jiJhͣTمYրN t䥼k]הئ|U-QwIF8ke#`*Cin]Zݟēh)YHƌ c0YO=EV[YZ̭fzf/=N⡣t33SOQ A,9#wE23W_wXyfd;M Gs,mlrLLO6BjEsT%MQ9ʁtyN>ph8v0ɘo M=a* 2 dA@k$Z ?H!2`% 3Yd=;\U7V$O"nN+c(*$2UeMKq;`Z]%^caLâ,**chaՕ$M#u{㦏=$ϼ:aL2Wu+W.LgN8U_ي`}<ynfM^zSfs_^%&I&)gw}I%S;L+cnv[+T n#v8 W/mQ g_;_뿶wwwV|XBH,XUs M7xRFu`Gi;щ, T^aUfajk['gzJʆ^"S?DP؍@Zdփ*cu*_җ"O"]jmƨ@T^ A1ĘPaE&Aϋ=+/4Z7ѥx1 ḌdYOOqם,56{je9BJ4baLY(S([pQI$9h[}@R w5j@5>K"Y%$.ko ALs,C \FV#ɂ޾6jy!DؘlA܍Z/`8(e%RkVQ/ts xZEߚ-,V@P\g.MC\q*˰,)L(8Htֶmޣ$(PZDU^lR?‘*ۛe$l38ƕe\$]H,&X癝?Ǽx큠*>wt.]ȑ;ɕb|٩wyط*XXg}}'Nte WjV׮|}.67`FDloH;U@ iS2 IDATn3[TϖPJBUU(c3j~?G9pۉf% .:DU娔C+}{%xť`7I*)b}mcǎ}-8'pPZ0֐&:xja];zwcviv8TQZUAQPTUʘgyU)>O]h{ݱ`~l N^7^Jd*1IIwe#D#Xw~-/@*+++Ms$[^w|+8FkG]'ug%Ms %Y`X=71Š?dff*J3~闘|dAjZ1cINrNl1oaf<&j*@6ks|pHor"jw%G'u|N+xǛ^$eUeC)Me: ĸh-Z6R ^]-~g& }]t|fH|?n,`FqUE1blN!Kh`*6N?rPB2 ;b8sl-z1ÆM.ˊ ]΃TAkME0lt< {Z:Yr ?+tu!P*`yuD$TGy.Zߥ֬u R* v>Iai,&2,#M`Y#[zx݀cvo 8~vSqEp^zش%X'I2N3=&''X^ZengnnEGC\8[oÇoXc3k\8[⋊|T*XY[_*Y^DYyᅗ/|p"o؎=6PM;7 DU.=ZI,CMZ5) I6 LRy,dY*!gGe]tKۑPZEXE8weiip*]pP@,W\cW|A)R!Fylk%&:,D BżHFEݰ,E TIӴq. ъs/ / q©Cy<ğT+uvus $icIBAz҄~,Ot ^wH/_YPPmW Tu$vkdtwauO ޅ߉kiFZYg ha¤E)}lh P]P9zw1:<aczH^Fz c0DInP|j:A&)B%1O47Vgad;cb#8׬W%gQ"\GYiHK.hnƤ7{+LOL2??OUB.* :g v(eYPo:Y[I 4e1davLNe%9-ճ;rWD1`ۡ*+LY7[l0^dF)%5!! ZV'Ȇ5zc{ߐrB*$̃>cU)E&t;?$òd;Ot.kK )l7ϱ>ӛHXFRG1& qPVSd ޺@e'@M*!}* rTLgdYB1O5.U h%yvHۻ[v^߬c @D+|mKն Œz[ '(cl76UR(!5&WvֵN e1ݧ buY6B̲hok(7($`#.:w!C6vqڎg#KKTQL aQ/t2vzS jg_7"DaM`;P̬MrZ"E($:u4!K`^k˭}W_㥗^,K~$N=`P#W,151`M!=q~{?6RiWVbqq-s ϝ?r1>kg0]_d:u֮nAui?}?뗯rkqvp{fgg?/s=޸9׿%K=m[uO$JIxmz[孛ϟ?OU3%$r_ɳ@"TV)FviU%pƸ~N8^҄I677,MRbٟcxl~|}MOF6@:FP:ZJ^1*P'#.l,݉i^C8O?\4ƺG!|bX HBcGq?FijXu_zTE\*jhE^_ev| \ZJ(4!BV_{` }nR]>DU)^zgccVK 4IA: @  .Jk::I@ʪfPLthn6Vb n3MC٨!LF(# b!>Y Ykn%5G]&Blͻ."\<LJc1uBG/ipֆi-wk% Fhlk.|+_1%yg)J͵#͂gV( O$I\t-^|E&{LM#;8WH7TaB"ıɒbmN$W.^ۛbZA*Z*ZCxo>nCN'#FʘljmJkR6XlBDJR`}Okӥg! F"4m:Me"H$[;6-'F7+HCH9i2m}p]F>eEfDcH1 Eޯ5AԀ&#Ss CbE2h9bR2h.[.:}GJՔDdAPVv Ϸeo|~c=fAv59q?ozCRll/,Lςplnn&Y[[eu24ajz8+w+KlL ˫+ϳ5+ˬ\Y}x8t8YGqv .Br S* 7VޑdjWW9v=-giR긮)*Y]^{{ }HI\_,KR$I˯1{ ] 9)UCH9|`>+UhKkuco4QnmvkAO=DR`a,քD*C8Oq}5H-=7W*Z9[_4c5dc7&od#y ZѻJfpr 2\̥n@DhGջ E#$iS(HBPA1,puZ1Nq9IW7ƢM":Bea~P)5o<W:DBḄ?5nv!O6ʢARNHKT$-|ppuc4u@3Cj Ca8-Fwtkǫʫacm ^,n,9zЙ#z{\_emu^ &{!6dyczuɉ.UQX{|˛L=lo;gg8eX]Ycvn~}vVw]iJ"+x,ً\/=ý[ slmmqp=7~@xϐh@]]û2h6ܧ_˿٢*v ,A fD O>}9x֑ޱ݉yU8կO455+R*TSĨc"VOiف6ݰ^Ыz^n0mJ")QjO?Ǽ LN^PT[')Z*A(:iyS1U쯲8oRJ)M*$A$ѿFDfĪSDE4#Fw2agv⸾e@a6EŒRI@W m#`e#f&Fk i eZvD 'l 12vJJ@w;~k3˹ 6y!FΎOZXb{SU#i4Z'N ̴xc%C]hv6h i051Amg-ޚ#nkEh9Ou4 ̱vLAJFEЊnY5c7prqy.^++essi$(*RN295EaX9֚ASV>ۡ1MJpuck EQT-Twir}\p798 ^C5; }~C?:|ŹyWX9~i&G2cmugO>E7p8lX]ۻP0^/ݴ zNm[|b{_k-$UhD;qKϽ?f8c߾}H) <|?W_r(T4JR !䜥2rZRlpQ+~:G-Hd~OąF늭:׿uHH3s-WYI?a)<8~>я9u4ۑcD`Fh<%s4CGV1;~ۏĈ$ oK`7[ٱޑq c*8FU+L 5;­]u:l"\M5[ H)vPJQFyChKs,MQPx1}51 Pѳ8oSQ^0jįMGe Ad[R1f *E2Z2DZ`s %,ݝ(٨Y.?Yۼx AxhouN<*kR$ sC0l3TE6J`o-W/Y]š ,s,.kg:9g"Z ްDQH):/^fymc ɾ)};-˫~4tx2ɇ0Xfmk^cnf_$p9%jm/_|s_ػ-Jk(lnQ |?<n9q-\]ӝZ#N|_/w?D*fx)Rn]fY-4]g慨C D]mO[,KS9̰ pZ"cD?*z!ng0(FHM_!yV$4MH3MmM^ t&Jte$eWw<-R{0Mk~ݡZNA%Z\ݑG}tMVU>IXD6Uȼ yFSʪ Â(5 _wSF煱<.EEvDb IDATC.y)< k,%λ^bk [k~뿗B"U f'._[c*l4i9y֎Zv+e]: n6,r#}׸fr'gccW__B V)ݼCY \055E3+C)TրիYi\ qkH;ѥ77G>1ɾLq%&{]A>4 }_ds{ϑ&g^?,kz33\pcǎJ}bPRs/pAgΐu: leeyyO=^;;~Ԫ+K}_+clMn͟5j+II:AǦsǿs_ءۂX8g "$IЕ )I_ TUՄCw#Fc}Dp<.0X͒,eHZ04A u[o:;]J,'KJ}:1qȺ*G[5Hi:7N;E8)%v~s\ ǒ& gIH4$1C|k]'@)9}]^i n& ~x2 ,t,ZI w?;Ϭ m5oCԏa?| CU^~VWW9{,{ғ /"í-z.;Nbmp{r _9^E ƖLOO#akB_g2dܤ_t<e5áajzN:2;Zsy[LO2 $Qn&(L*k%xρp?r='lY][%fȥK8ٷۣr$^?}xC&z$|羲}7 ~#<_F=EjŰ )m=gcc_n1l|cȝfIUҠ!22q Lq\#IDH`Ϸ-z>:)!ICTJIpXPC90Y* @_DܥW)VyiB;][Gu_'7[fm  njJB;Vp#Y8]iN4yUeK=ÍFeҀD֮1]$M3$MZi7OS`X2ED!Ӆ%#k7:Ԁ<DJtI,r< sy %J_Fq;w3( fr{Gę3gx^5]¹s,o_! Δ`<˗/߮Qbrfk 6}^C'Rlo__#M4^K/051I?dbb ݙsll29…du.]Ĺs:]Zyt]>w%[l˱'׉Y@&4ia: h̴fR00@YP(=4ݛٝzW֮:\Idّc뜞H>}>?::WىR(Fڎ1Y0ݳq~3lڴ-[^g+);q1WN8:rxrv$r MS( 45 =۬kEzh_;X0 7g g m~'weuxWRPT|c5= O+(꼥ng#bLA@(k)3y$d6Q+Ǩz.,.1EyE#EwTf*Lǣطӓ YD3N6|B {/(LNj*Cm-1jf;~z3A]0z;)XQ= .O^`2׼UaNܝ)̇׉^@Y"v PlSw-*3J׈S8.[+͆Hh+o}Wnr)2oϭ=ufN"b! Z^Ym^`8u"`zM4['ZkYPScq^ nwϿ#>;˻gyرSnNwb2v$BYU8I1@5'9qtHEc8 N*NQz@ɝ\,9>U XU+I3elCCC-֨hU x~FA7\"N1>2G<qMVUb Uc'8*ER$<8>m}u_^޵kؿ% %:$vInT+MDօaud&a}5k`c 9ƣͯзn WmފoT^0A5Vg ^>,~x} o/1`Q,B_j{x^:7F `_k@kV+QØ*GJ~bzdhnka àpM ]' VKW]ukھoyLRs٠) V1 95N g'-8Β"Igg+\]{+ U-CGX7ȕm4Br*g P(}87|۩^>s?*Vg;,"g:j.Rṭ,ܠ̍e]Gf;"L5enU2Әv*pji+/<ݻ ֊uKaKs1uMq|˲I&bsf ~Z3swԹVlʼ ]0Qqv虆|/m._JܒK+ Qa'hpr2;o5fƵvP5W1͙3MUN 8լOMSѵVr~Ce8~ khjx^ff}h.LmmuM9-.ꃷ޳߹~*KUseA _뀾POlK :j vҠT* bUiuPthBQ5 *'G=eӖegxt&^CD(vJgHē8jr@Z^-IFP5 *SLӤ8kU͡ZԀ5kY3ƆM[Cx幗ȝ&L "Ip 3tup0$ׁ?L6ofLJP],S,0"6Fo9E|ۜD,::Xȱ}VxF#ĭJNV7JfaSo`q|?`blXfQU *MEQbYw.v5>WÏy0Mmu63t(h޷[og#誆LOOH1 5{0mLG;J 3xFw7Qհ"* Z}+ZMx<WYn=@7 Ih⬕s +CkٞКu_\v caW+ʒ %2H GMĞ)\ ,1@ ԭf啕Fsް3ߐ覱`8aLAj]@*4D"<-j6wklIMǢ7D|7 ozR] Ȼ-!wٿdWY9˸ϐ?VN+ Å%ȃK܈.N%DUVuY;ՏwnGpj=LSz?bi?4k/y\c2)Ƈӑ4#8*^ФPF)XʥHf@Q gj͟`%!Գn8EYf˅sB[ߏXLJ9| JR*U&SGSC UUpM'&(6+Q㆛ƶ;X Wn4#_gT% JrB=N^Vk&!ޠTjH)U֮_{wx{n/|ZxNww'e ;noH.W IeHIqa*$B"Inb5P Hg8:^=HP,R X 4I$cK>Cb4]=e<'ʒwM&-2Mx<=ߐ|BYN8kiw&U9q/?FD"ZUM5ui4Fh3(&{<},+.?{Q~Ͱùq_>n5/ؑ,, l_[rl(GxJSo096Φ6cPVIr n7p5^y^xS p*jЬ7@x ZJz 69^@wrΕ˼sLTTV B:V~lʊ n"O]/ҧ#%tSq [FD"Qf196\kbͦ7|;JES*@ hoog}_ãv \.G&!Qț4z{mBԤ֨KTMCm={}ژlYG"nlԨ\T$I:R$&'ᥧKZ['!z_~%*JS~衇ŊF|;bix>̒:[&>ಮ"s tre߾}Z ֳzj֮d5ZW*Hfۈf"Nmz-pk>NԦٿ|T['7#\7|۝8">;h&G]HM0TH&h&8GRfUlZFbltF8QPUtX 6Т,y>V3iA-Aw;Bv iNT\ {tJa`#R*UD" R2-c8 v5 }oD#L]qJcf%K'Iq񚘖A9W~7z{ސ,Mv1 ڳ9B|VvԫO"ecX=0?1ҴCZڡ ߤެټiw짻N޲e />69zUIVD#&DQR(8:'H[mswd hLL1=qW >=N}"ψwjL@?'&F 8rc㓌+[w̕W_+'q˿ jDD"DLz鸁(BV#~srd vrq벎 \=o&oD%N17ATLL0$=y=w{-y.1|%bW9uGnz! FV\Z<8ĻtjCw'xvzzW B6Qh0H&[uO ?5ʡ{i{% Wȡ*Rr';4\u 4ezzz(\X2d2FHOsT cd3ԊdY1Q/xgpD*iXaEYf6%Toͧy橧1\ߣhikf/Jba9hh{]nZuZ%,_OȼއLb>G9}On-l۱wr~1{gyG5]mF{nkDrN&%fE'xK !G1u0P(rx~7nP#PVIRtut{U Eclb7x#LJ@Ӱ,bD\Tއe(D, UR)1ul:0M|~T i+70~3A&#K4;=C5M -o[vv'?h8M"Q4(q5m.lFZc`Z|}Ixu擄:.}c[Έ mjj iB3{/|yws$?(`+PUJAx'Ē~P.Yd+zn[!.Lp?s3fX,BG&tBMA Tv\K6ދ6/ T;qwGx12|(!`ƢDb6hQ)M_# I;J^gVOR@hJ_w159a2RR)jӌ&i4)V %ě,LNN,rt"NQ4 l;FxO\F4QV &,B~~Ȟϰ{)rbZ a ղN{{'z>F$JĊғJ2zrSQ4jDalW%P'=:ib+j/OSUc)~?Ŧkešo\C޽{IxEU5VײpMu6>_CUeՅ$r*-dޗx{gv`\DWk^zg%J|X:辽!XF(LMMQo:Q +'W.'ah*xj0v!d`ʯ|1 C\vT4CV=0$s]ځ5n|l D*g+ďlnn裏2<9董x;ۿ ja4]D\$nx2b2SQߋ\e+:+{VLwկ~u4o~ضU fwLJeD(פڨH$(K躎yd2~]RB~Ibll-[rT* t4MU% <9G-7ɉVLsVvda|:OGg/DW^yRgIBI=#|cR.* dt&ER\,>8/ƻ+xSq='[ozN6A"t%;I$LLL026J h&h5F:J褧BGO0<6Ee^ٷ}|䣿ʿM"qt; z6Ri~@E"^!ď#>GZb :;7*rB0v(CCs!1Km: p|:|R؉$#'ǸmG>ʶmtof?S(F8v$BQǎǨET&~׏gW$ !TJEOVT*aX#iZ,& ;R\l&H5&Tzq:?~A:2\D2A#оWx%`*q;E4gKގLMOyM& 1 S4J96nqt)ի1PĊ>~띲xR.ZaE"4&FD'}w;wࠄ] BqvO? S<(DMa38cFA^{&,rSשU*N$aU_kpdh3elHJN)_&' 0'u]|%;A??a:?iO{**Uꮃaeڲ䪫Ɇ+gSK/4jd3iz;1 1UqQ|z3G6pb5q&Cl^TDg7/B3]dZvwEPe$1߼kˎB/G>*dHœ(B躎{ZT-[Kؕ+gw'F__ZJLLLƝLMLbG J&'Nh4ӠXWQ845Iĵtr+ no۸Mlt!Ĝ~rQMuHSԝ&ۤ:xϭ6sMɆ!IkB΋O?3O>Amn o0t&l=Ɗ'ghht:5.fEH}G0]l$H1,,EG BR8m`zY8Bq:W~x'F%4C'RרjdI"=+_>p?dRB\vzQtTj}'qnf3OMqX, $NM˚|hKgEQ42mmttO&XѳF6>7I45bV4p5xyurU%A+ݼY iJc|t] ZB[ 7 Xn+Ig2\ylL!yy <<B*:[mO<̓\U#W!ǁ畗^m:tdv*7^-GqAAԻy~ϳD$tm|w~dIB!>JD!-aR >O].2W!uuos펛d#]+B h#iXNu"O_Oq?!%^!BexƶTG!b ^rw+BqẂWOdhfnNm[s>B!azjIENDB`unicoq-1.6-8.19/dune000066400000000000000000000001241461142772400141360ustar00rootroot00000000000000(env (dev (flags :standard -rectypes)) (release (flags :standard -rectypes))) unicoq-1.6-8.19/dune-project000066400000000000000000000000561461142772400156060ustar00rootroot00000000000000(lang dune 1.8) (using coq 0.1) (name unicoq) unicoq-1.6-8.19/opam000066400000000000000000000007761461142772400141540ustar00rootroot00000000000000opam-version: "2.0" maintainer: "matthieu.sozeau@inria.fr" authors: [ "Matthieu Sozeau " "Beta Ziliani " ] dev-repo: "git+https://github.com/unicoq/unicoq.git" homepage: "https://github.com/unicoq/unicoq" bug-reports: "https://github.com/unicoq/unicoq/issues" license: "MIT" build: [ ["coq_makefile" "-f" "_CoqProject" "-o" "Makefile"] [make] ] install: [ [make "install"] ] depends: [ "ocaml" "coq" ] synopsis: "An enhanced unification algorithm for Coq" unicoq-1.6-8.19/src/000077500000000000000000000000001461142772400140525ustar00rootroot00000000000000unicoq-1.6-8.19/src/dune000066400000000000000000000003671461142772400147360ustar00rootroot00000000000000(library (name unicoq) (public_name coq-unicoq.plugin) ; Coq default set of warnings (flags :standard -w -9-27) (libraries coq.plugins.ltac)) (rule (targets unitactics.ml) (deps (:pp-file unitactics.mlg)) (action (run coqpp %{pp-file}))) unicoq-1.6-8.19/src/logger.ml000066400000000000000000000052041461142772400156640ustar00rootroot00000000000000 type 'a nlog = Initial | Node of 'a * 'a nlog ref * bool * ('a nlog ref) list type log_elem = string * (Conversion.conv_pb * string * string) type log = log_elem nlog ref let _state l = match !l with Initial -> true | Node (_, _, s, _) -> s let _children l = match !l with Initial -> [] | Node (_, _, _, c) -> c let _value l = match !l with Initial -> [] | Node (v, _, _, _) -> v let parent l = match !l with Initial -> l | Node (_, p, _, _) -> p let init = ref Initial let is_init l = match !l with Initial -> true | _ -> false let _currentNode l = !l let rec pad l = if l <= 0 then () else (Printf.printf "_"; pad (l-1)) let rec depth l = match !l with | Initial -> 0 | Node (_, p, _, _) -> depth p + 1 let print_node (s, (conv_t, c1, c2)) = let conv = if conv_t = Conversion.CONV then "=?=" else "=<=" in Printf.printf "%s %s %s (%s)" c1 conv c2 s; flush stdout let newNode print v l = if print then begin pad (depth l); print_node v; output_string stdout "\n"; end; let n = ref (Node (v, l, true, [])) in match !l with | Initial -> n | Node (v', p, s, c) -> l := Node (v', p, s, (n::c)); n let report b l = match !l with | Initial -> l | Node (v, p, _, c) -> l := Node (v, p, b, c); if is_init p then l else p let reportSuccess = report true let reportErr = report false let rec to_parent l = match !(parent l) with | Initial -> l | Node (_, _p, _, _) -> to_parent (parent l) let rec print_to_stdout i l = match !l with | Initial -> () | Node (n, _, st, ls) -> pad i; print_node n; if st then output_string stdout " OK\n" else output_string stdout " ERR\n"; List.iter (print_to_stdout (i+1)) (List.rev ls) let print_to_stdout l = print_to_stdout 0 (to_parent l) let print_latex s p l = let f = open_out_gen [Open_append; Open_creat] 0o666 s in let rec dump l = match !l with | Initial -> () | Node ((s, n), _, true, ls) -> output_string f "\\fbox{$\\inferrule*[left="; output_string f s; output_string f "]{"; List.iter (fun l -> dump l; output_string f "\\\\ ") (List.rev ls); output_string f "}{"; p f n; output_string f "}$}\n" | _ -> () in output_string f "\\begin{mathpar}\n"; dump l; output_string f "\\end{mathpar}\n\n"; flush f; close_out f let print_latex s p l = if s = "" then Printf.printf "Warning: no LaTex file set with [Set Unicoq LaTex File 'file']. No LaTex output will be generated.\n" else try print_latex s p (to_parent l) with Sys_error p -> Printf.printf "Logger error: '%s'\n" p unicoq-1.6-8.19/src/logger.mli000066400000000000000000000006771461142772400160460ustar00rootroot00000000000000 type 'a nlog = Initial | Node of 'a * 'a nlog ref * bool * ('a nlog ref) list type log_elem = string * (Conversion.conv_pb * string * string) type log = log_elem nlog ref val init : log val reportSuccess : log -> log val reportErr : log -> log val newNode : bool -> log_elem -> log -> log val print_latex : string -> (out_channel -> (Conversion.conv_pb * string * string) -> unit) -> log -> unit val print_to_stdout : log -> unit unicoq-1.6-8.19/src/munify.ml000066400000000000000000001726321461142772400157260ustar00rootroot00000000000000(***********************************************************) (* Unicoq plugin. *) (* Copyright (c) 2015 Beta Ziliani *) (* Matthieu Sozeau . *) (***********************************************************) open Pp open EConstr open Names open Vars open CErrors open Structures (* Warning 40 warns about OCaml picking a type for an unknown constructor. In our case, we want OCaml to pick the constructors from Constr.kind_of_term without having to write e.g. Constr.App and without importing all of Constr. *) [@@@ocaml.warning "-40"] module RO = Reductionops module C = Conversion module R = Reduction module EU = Evarutil module ES = Evarsolve module EC = Evarconv module CND = Context.Named.Declaration module CRD = Context.Rel.Declaration module PE = Pretype_errors let crd_of_tuple (x,y,z) = match y with | Some y -> CRD.LocalDef(x,y,z) | None -> CRD.LocalAssum(x,z) (** {2 Options for unification} *) (** {3 Enabling Unicoq (implementation at the end) *) let munify_on = ref false (** {3 Debugging} *) let debug = ref false let set_debug b = debug := b let get_debug () = !debug let _ = Goptions.declare_bool_option { Goptions.optdepr = None; Goptions.optstage = Interp; Goptions.optkey = ["Unicoq";"Debug"]; Goptions.optread = get_debug; Goptions.optwrite = set_debug } let trace = ref false let _ = Goptions.declare_bool_option { Goptions.optdepr = None; Goptions.optstage = Interp; Goptions.optkey = ["Unicoq";"Trace"]; Goptions.optread = (fun () -> !trace); Goptions.optwrite = (fun b -> trace := b); } let dump = ref false let _ = Goptions.declare_bool_option { Goptions.optdepr = None; Goptions.optstage = Interp; Goptions.optkey = ["Unicoq";"Dump";"Equalities"]; Goptions.optread = (fun () -> !dump); Goptions.optwrite = (fun b -> dump := b); } let latex_file = ref "" let _ = Goptions.declare_string_option { Goptions.optdepr = None; Goptions.optstage = Interp; Goptions.optkey = ["Unicoq";"LaTex";"File"]; Goptions.optread = (fun () -> !latex_file); Goptions.optwrite = (fun s-> latex_file := s); } (** {3 Rule switches for the algorithm} *) type options = { inst_beta_reduce_type : bool; inst_unify_types : bool; inst_aggressive : bool; inst_super_aggressive : bool; inst_try_solving_eqn : bool; use_hash : bool } let default_options = ref { inst_beta_reduce_type = true; inst_unify_types = true; inst_aggressive = true; inst_super_aggressive = false; inst_try_solving_eqn = false; use_hash = false } let current_options () = !default_options let is_aggressive () = !default_options.inst_aggressive let set_aggressive b = default_options := {!default_options with inst_aggressive = b} let is_super_aggressive () = !default_options.inst_super_aggressive let set_super_aggressive b = if b then default_options := {!default_options with inst_aggressive = b; inst_super_aggressive = b} else default_options := {!default_options with inst_super_aggressive = b} let _ = Goptions.declare_bool_option { Goptions.optdepr = None; Goptions.optstage = Interp; Goptions.optkey = ["Unicoq"; "Aggressive"]; Goptions.optread = is_aggressive; Goptions.optwrite = set_aggressive; } let _ = Goptions.declare_bool_option { Goptions.optdepr = None; Goptions.optstage = Interp; Goptions.optkey = ["Unicoq"; "Super"; "Aggressive"]; Goptions.optread = is_super_aggressive; Goptions.optwrite = set_super_aggressive; } let get_solving_eqn () = !default_options.inst_try_solving_eqn let set_solving_eqn b = default_options := {!default_options with inst_try_solving_eqn = b} let _ = Goptions.declare_bool_option { Goptions.optdepr = None; Goptions.optstage = Interp; Goptions.optkey = ["Unicoq"; "Try"; "Solving";"Eqn"]; Goptions.optread = get_solving_eqn; Goptions.optwrite = set_solving_eqn } (** {3 Hashing of failed unifications} *) let use_hash () = !default_options.use_hash let set_hash b = default_options := {!default_options with use_hash = b} let _ = Goptions.declare_bool_option { Goptions.optdepr = None; Goptions.optstage = Interp; Goptions.optkey = ["Unicoq"; "Use";"Hash"]; Goptions.optread = use_hash; Goptions.optwrite = set_hash; } (** {2 Stats} We log all the calls to unification and the evar instantiations. *) type my_stats = { mutable unif_problems : Int64.t; mutable instantiations : Int64.t } let dstats = { unif_problems = 0L; instantiations = 0L } type stats = { unif_problems : Int64.t; instantiations : Int64.t } let get_stats () = { unif_problems = dstats.unif_problems; instantiations = dstats.instantiations } (** {2 Functions borrowed from Coq 8.4 and not found in 8.5} *) (* Note: let-in contributes to the instance *) let make_evar_instance sigma sign args = let rec instrec = function | def :: sign, c::args when isVarId sigma (CND.get_id def) c -> instrec (sign,args) | def :: sign, c::args -> (CND.get_id def,c) :: instrec (sign,args) | [],[] -> [] | [],_ | _,[] -> anomaly (str"Signature and its instance do not match") in instrec (sign,args) let instantiate_evar sigma sign c args = let inst = make_evar_instance sigma sign args in if inst = [] then c else replace_vars sigma inst c (** Not in 8.5 *) (** {2 Generic utility functions} *) let _array_mem_from_i e i a = let j = ref i in let length = Array.length a in let b = ref false in while !j < length && not !b do if a.(!j) = e then b := true else j := !j+1 done; !b let array_mem_to_i e i a = let j = ref 0 in let b = ref false in while !j < i && not !b do if a.(!j) = e then b := true else j := !j+1 done; !b (** Standard monadic operations over option types. *) let (>>=) opt f = match opt with | Some(x) -> f x | None -> None let return x = Some x (** {2 The return type of unification} *) (** The type of returned values by the algorithm. *) type unif = Logger.log * ES.unification_result (** Returns Success after logging it. *) let success (l, sigma) = let l = Logger.reportSuccess l in (l, ES.Success sigma) (** Returns Err after logging it. *) let err (l, sigma) = let l = Logger.reportErr l in (l, ES.UnifFailure (sigma, PE.NotSameHead)) (** Logs a success or an error according to s. *) let report (l, s) = match s with | ES.Success sigma -> success (l, sigma) | ES.UnifFailure (sigma, _) -> err (l, sigma) let is_success s = match s with ES.Success _ -> true | _ -> false (** {3 Monadic style operations for the unif type} *) let (&&=) (l, s as opt) f = match s with | ES.Success sigma -> f (l, sigma) | _ -> opt let (||=) (l, s as opt) f = match s with | ES.UnifFailure _ -> f l | _ -> opt let ise_list2 f l1 l2 = let rec ise_list2 l1 l2 (l, evd) = match l1,l2 with [], [] -> (l, ES.Success evd) | x::l1, y::l2 -> f x y (l, evd) &&= ise_list2 l1 l2 | _ -> (l, ES.UnifFailure (evd, PE.NotSameHead)) in ise_list2 l1 l2 let ise_array2 f v1 v2 evd = let l1 = Array.length v1 in let l2 = Array.length v2 in assert (l1 <= l2) ; let diff = l2 - l1 in let rec allrec n (l, evdi) = if n >= l1 then (l, ES.Success evdi) else f v1.(n) v2.(n+diff) (l, evdi) &&= allrec (n+1) in allrec 0 evd (** {2 Functions for debugging} *) let latexify s = let open Str in let s = global_replace (regexp "\\\\") "\\\\\\\\" s in let s = global_replace (regexp "{") "\\{" s in let s = global_replace (regexp "}") "\\}" s in let s = global_replace (regexp "%") "\\%" s in let s = global_replace (regexp "#") "\\#" s in let s = global_replace (regexp "__:=") "" s in (* remove useless names in evar subs *) global_replace (Str.regexp "~") "\\~" s let log_eq env rule conv_t t1 t2 (l, sigma) = if not (get_debug () || !trace) then (l, ES.Success sigma) else let ppcmd_of env (t : EConstr.t) = try Printer.pr_econstr_env env sigma t (* This is really suspicious as it will hide a serious bug. *) with _ -> Constr.debug_print (EConstr.Unsafe.to_constr t) in let str1 = Pp.string_of_ppcmds (ppcmd_of env t1) in let str2 = Pp.string_of_ppcmds (ppcmd_of env t2) in let str1 = latexify str1 in let str2 = latexify str2 in let l = Logger.newNode !trace (rule, (conv_t, str1, str2)) l in (l, ES.Success sigma) let log_eq_spine env rule conv_t t1 t2 (l, sigma as dsigma) = if not (get_debug () || !trace) then (l, ES.Success sigma) else log_eq env rule conv_t (applist t1) (applist t2) dsigma let debug_str s _l = if !debug then begin Printf.printf "%s\n" s; flush_all () end else () let debug_eq env sigma t c1 c2 _l = let s1 = string_of_ppcmds (Printer.pr_econstr_env env sigma (applist c1)) in let s2 = string_of_ppcmds (Printer.pr_econstr_env env sigma (applist c2)) in Printf.printf "%s %s %s\n" s1 (if t == C.CONV then "=?=" else " None) let set_run f = run_function := f let lift_constr = ref (fun _ sigma -> sigma, mkProp) let set_lift_constr c = lift_constr := c let is_lift env sigma c = let sigma, c' = !lift_constr env sigma in try eq_constr_nounivs sigma c c' with Not_found -> false (** {2 Utilities for constrs} *) (** Given a named_context returns a list with its variables *) let id_substitution nc = List.fold_right (fun d s -> mkVar (CND.get_id d) :: s) nc [] (** Pre: isVar v1 *) let _is_same_var sigma v1 v2 = isVar sigma v2 && (destVar sigma v1 = destVar sigma v2) (** Pre: isRel v1 *) let _is_same_rel sigma v1 v2 = isRel sigma v2 && destRel sigma v1 = destRel sigma v2 let _is_same_evar sigma i1 ev2 = match kind sigma ev2 with | Evar (i2, _) -> i1 = i2 | _ -> false let isVarOrRel sigma c = isVar sigma c || isRel sigma c let is_variable_subs sigma = List.for_all (fun c -> isVar sigma c || isRel sigma c) let is_variable_args sigma = List.for_all (fun c -> isVar sigma c || isRel sigma c) (** find_unique finds a unique j such that List.nth j s = id. See use below to understand test and dest. *) exception NotUnique let find_unique test dest id s = let (i, j) = List.fold_right (fun c (i, j) -> if test c && dest c = id then (i+1, j-1) else (i, if i > 0 then j else j-1)) s (0, List.length s) in if i = 1 then Some j else if i > 1 then raise NotUnique else None let find_unique_var sigma = find_unique (isVar sigma) (destVar sigma) let find_unique_rel sigma = find_unique (isRel sigma) (destRel sigma) let has_definition sigma ts env t = if isVar sigma t then let var = destVar sigma t in if not (TransparentState.is_transparent_variable ts var) then false else let v = CND.get_value (Environ.lookup_named var env) in match v with | Some _ -> true | _ -> false else if isRel sigma t then let n = destRel sigma t in let v = CRD.get_value (Environ.lookup_rel n env) in match v with | Some _ -> true | _ -> false else if isConst sigma t then let c,_ = destConst sigma t in TransparentState.is_transparent_constant ts c && Environ.evaluable_constant c env else false (** Must have a definition. *) let get_definition sigma env t : EConstr.t = if isVar sigma t then let var = destVar sigma t in let v = CND.get_value (EConstr.lookup_named var env) in match v with | Some c -> c | _ -> anomaly (str"get_definition for var didn't have definition!") else if isRel sigma t then let n = destRel sigma t in let v = CRD.get_value (EConstr.lookup_rel n env) in match v with | Some v -> (lift n) v | _ -> anomaly (str"get_definition for rel didn't have definition!") else if isConst sigma t then let c,i = destConst sigma t in of_constr @@ Environ.constant_value_in env (c, EInstance.kind sigma i) else anomaly (str"get_definition didn't have definition!") (** Given a defined constant/variable c applied to arguments args it unfolds c and returns the new head term d applied to the concatenation of arguments. *) let get_def_app_stack sigma env (c, args) = let (d, dargs) = decompose_app_list sigma (get_definition sigma env c) in (d, dargs @ args) let try_unfolding sigma ts env t = if has_definition sigma ts env t then get_definition sigma env t else t (** pre: |ctx| = |subs| and subs and args are both a list of vars or rels. ctx is the (named) context of the evar t is the term to invert subs is the substitution of the evar args are the arguments of the evar map is an Intmap mapping evars with list of positions. Given a problem of the form ?e[subs] args = t this function returns t' equal to t, except that every free variable (or rel) x in t is replaced by - If x appears (uniquely) in subs, then x is replaced by Var n, where n is the name of the variable in ctx in the position where x was found in s. - If x appears (uniquely) in args, then x is replaced by Rel j, were j is the position of x in args. As a side effect, it populates the map with evars that sould be prunned. Prunning is needed to avoid failing when there is hope. E.g., the unification problem ?e[x] = ?e'[x, z] is solvable if we prune z from ?e'. However, this is not the case in the following example: ?e[x] = ?e'[x, ?e''[z]] The problem lies on the two different options: we can either prune the second element of the substitution of ?e', or we can prune the one element in the substitution of ?e''. To make the distinction, we use a boolean parameter [inside_evar] to mark that we should fail instead of prunning. Finally, note in the example above that we can also try instantiating ?e' with ?e instead of the other way round, and this is in fact tried by the unification algorithm. *) let invert map sigma ctx (t : EConstr.t) subs args ev' = let sargs = subs @ args in let in_subs j = j < List.length ctx in let rmap = ref map in let rec invert' inside_evar (t : EConstr.t) i = match kind sigma t with | Var id -> find_unique_var sigma id sargs >>= fun j -> if in_subs j then let name = CND.get_id (List.nth ctx j) in return (mkVar name) else return (mkRel (List.length sargs - j + i)) | Rel j when j > i-> find_unique_rel sigma (j-i) sargs >>= fun k -> if in_subs k then let name = CND.get_id (List.nth ctx k) in return (mkVar name) else return (mkRel (List.length sargs - k + i)) | Evar (ev, evargs) when Evar.equal ev ev' -> None | Evar (ev, evargs) -> begin let evargs = Evd.expand_existential sigma (ev, evargs) in let f (j : int) (c : EConstr.t) = match invert' true c i with | Some c' -> c' | _ -> if not inside_evar then begin (if not (Evar.Map.mem ev !rmap) then rmap := Evar.Map.add ev [j] !rmap else let ls = Evar.Map.find ev !rmap in rmap := Evar.Map.add ev (j :: ls) !rmap) ; c end else raise Exit in try return (mkLEvar sigma (ev, List.mapi f evargs)) with Exit -> None end | _ -> try return (map_with_binders sigma succ (fun i c -> match invert' inside_evar c i with | Some c' -> c' | None -> raise Exit) i t) with Exit -> None in (try invert' false t 0 with NotUnique -> None) >>= fun c' -> return (!rmap, c') (** True if at least one (named) var in tm is in vars. *) let free_vars_intersect sigma tm vars = Names.Id.Set.exists (fun v -> List.mem v vars) (Termops.collect_vars sigma tm) let some_or_prop o = match o with | None -> EConstr.mkProp | Some tm -> tm (** Removes the positions in the list, and all dependent elements. *) let remove sigma l pos = let l = List.rev l in let rec remove' i (l: (Evd.econstr, Evd.etypes) CND.pt list) vs = match l with | [] -> [] | (d :: s) -> let o = CND.get_value d in let t = CND.get_type d in let x = CND.get_id d in if List.mem i pos || free_vars_intersect sigma t vs || free_vars_intersect sigma (some_or_prop o) vs then remove' (i-1) s (x :: vs) else (d :: remove' (i-1) s vs) in List.rev (remove' (List.length l-1) l []) exception CannotPrune (** ev is the evar and plist the indices to prune. from ?ev : T[env] it creates a new evar ?ev' with a shorter context env' such that ?ev := ?ev'[id_env']. If the prunning is unsuccessful, it throws the exception CannotPrune. *) let rec prune sigma (ev, plist) = (* HACK: assume that if ev is defined, then it was already prunned *) if Evd.is_defined sigma ev then sigma else let evi = Evd.find_undefined sigma ev in let env = Evd.evar_filtered_context evi in let env' = remove sigma env plist in let env_val' = (List.fold_right push_named_context_val env' Environ.empty_named_context_val) in (* the type of the evar may contain an evar depending on the some of the vars that we want to prune, so we need to prune that as well *) let concl = Evd.evar_concl evi in let id_env' = id_substitution env' in match invert Evar.Map.empty sigma env' concl id_env' [] ev with None -> raise CannotPrune | Some (m, concl) -> let sigma = prune_all m sigma in let concl = Evd.evar_concl evi in let sigma, ev' = EU.new_pure_evar env_val' sigma concl in Evd.define ev (mkLEvar sigma (ev', id_env')) sigma and prune_all map sigma = List.fold_left prune sigma (Evar.Map.bindings map) (** pre: |s1| = |s2| pos: None if s1 or s2 are not equal and not var to var subs Some l with l list of indexes where s1 and s2 do not agree *) let intersect env sigma options s1 s2 = let n = Array.length s1 in let rec intsct i = if i < n then intsct (i+1) >>= fun l -> if eq_constr sigma s1.(i) s2.(i) then Some l else if (isVar sigma s1.(i) || isRel sigma s1.(i)) && (isVar sigma s2.(i) || isRel sigma s2.(i)) then Some (i :: l) (* both position holds variables: they are indeed different *) else if !options.inst_aggressive then Some (i :: l) else None else Some [] in assert (Array.length s2 = n) ; intsct 0 (** pre: ev is not defined *) let unify_same dbg env sigma options ev subs1 subs2 = match intersect env sigma options subs1 subs2 with | Some [] -> (false, (dbg, ES.Success sigma)) | Some l -> begin try (true, (dbg, ES.Success (prune sigma (ev, l)))) with CannotPrune -> (false, (dbg, ES.UnifFailure (sigma, PE.NotSameHead))) end | _ -> (false, (dbg, ES.UnifFailure (sigma, PE.NotSameHead))) (** given a list of arguments [args] = [x1 .. xn], a [body] with free indices [1 .. n], and a substitution [subst] with context [nc] it returns [fun x1 : A1{subst}^-1 => .. => fun xn : An{subst}^-1 => body], where each [A_i] is the type of [x_i]. *) let fill_lambdas_invert_types map env sigma nc body subst args ev = let rmap = ref map in List.fold_right (fun arg r-> r >>= fun (ars, bdy) -> let ty = Retyping.get_type_of env sigma arg in let ars = CList.drop_last ars in invert map sigma nc ty subst ars ev >>= fun (m, ty) -> rmap := m; let n = Namegen.named_hd env sigma ty Anonymous in return (ars, mkLambda (Context.make_annot n Sorts.Relevant, ty, bdy))) args (return (args, body)) >>= fun (_, bdy) -> return (!rmap, bdy) exception ProjectionNotFound (* [check_conv_record (t1,l1) (t2,l2)] tries to decompose the problem (t1 l1) = (t2 l2) into a problem l1 = params1@c1::extra_args1 l2 = us2@extra_args2 (t1 params1 c1) = (proji params (c xs)) (t2 us2) = (cstr us) extra_args1 = extra_args2 by finding a record R and an object c := [xs:bs](Build_R params v1..vn) with vi = (cstr us), for which we know that the i-th projection proji satisfies (proji params (c xs)) = (cstr us) Rem: such objects, usable for conversion, are defined in the objdef table; practically, it amounts to "canonically" equip t2 into a object c in structure R (since, if c1 were not an evar, the projection would have been reduced) *) let check_conv_record env sigma (t1,l1) (t2,l2) = try let (proji,_inst), l1 = try Termops.global_of_constr sigma t1, l1 with Not_found -> let t1, _, r1 = try destProj sigma t1 with Constr.DestKO -> raise Not_found in let app = Retyping.expand_projection env sigma t1 r1 l1 in let t1, l1 = destApp sigma app in let c1, inst = destConst sigma t1 in let gr1 = GlobRef.ConstRef c1 in (gr1, inst), Array.to_list l1 in let (sigma, solution), l2_effective = try let open ValuePattern in match kind sigma t2 with Prod (_,a,b) -> (* assert (l2=[]); *) if Termops.dependent sigma (mkRel 1) b then raise Not_found else CanonicalSolution.find env sigma (proji, Prod_cs),[a;Termops.pop b] | Sort s -> CanonicalSolution.find env sigma (proji, Sort_cs (Sorts.family (ESorts.kind sigma s))),[] | _ -> let c2,_ = Termops.global_of_constr sigma t2 in CanonicalSolution.find env sigma (proji, Const_cs c2),l2 with Not_found -> CanonicalSolution.find env sigma (proji, Default_cs),[] in let open CanonicalSolution in let params1, c1, extra_args1 = match CList.chop solution.nparams l1 with | params1, c1::extra_args1 -> params1, c1, extra_args1 | _ -> raise Not_found in let us2,extra_args2 = CList.chop (List.length solution.cvalue_arguments) l2_effective in sigma,solution.constant,solution.abstractions_ty,(solution.params,params1),(solution.cvalue_arguments,us2),(extra_args1,extra_args2),c1, (solution.cvalue_abstraction,applist(t2,l2)) with Failure _ | Not_found -> raise ProjectionNotFound let evar_apprec ts env sigma (c, stack) = let rec aux s = let ((t,stack)) = RO.(whd_betaiota_deltazeta_for_iota_state ts env sigma s) in match kind sigma t with | Evar (evk,eva) when Evd.is_defined sigma evk -> aux (Evd.existential_value sigma (evk,eva), stack) | _ -> match RO.Stack.list_of_app_stack stack with | None -> decompose_app_list sigma (RO.Stack.zip sigma (t, stack)) | Some stack -> (t, stack) in aux (c, RO.Stack.append_app_list stack RO.Stack.empty) let eq_app_stack sigma (c, l) (c', l') = eq_constr sigma c c' && List.for_all2 (eq_constr sigma) l l' let remove_non_var env sigma (ev, subs as evsubs) args = let subs = Array.of_list subs in let ps = CArray.fold_right_i (fun i a s -> if isVarOrRel sigma a && not (array_mem_to_i a i subs || List.mem a args) then s else i::s) subs [] in if ps = [] then raise CannotPrune else let sigma' = prune sigma (ev, ps) in (sigma', mkLEvar sigma evsubs, args) let specialize_evar env sigma (ev, subs) args = match args with | [] -> raise CannotPrune | hd :: tl -> let sigma', lam = Evardefine.define_evar_as_lambda env sigma (ev, subs) in let (n, dom, codom) = destLambda sigma' lam in sigma', subst1 hd codom, tl (* EJGA: Not used *) (* exception InternalException *) (** {2 The function} *) (** Enum type to specify on which side of the equation an action is taken *) type which_side = Left | Right | Both | NoAction (* let ws_to_string = function * | Left -> "Left" * | Right -> "Right" * | Both -> "Both" * | NoAction -> "NoAction" *) (** Enum type indicating if the algorithm must swap the lhs and rhs. *) type direction = Original | Swap let switch dir f t u = if dir == Original then f t u else f u t (* let dir_to_string = function * | Original -> "Original" * | Swap -> "Swap" *) (** Enum type indicating where it is useless to reduce. *) type stucked = NotStucked | StuckedLeft | StuckedRight (** Input parameters for the algorithm *) module type Params = sig val flags : Evarsolve.unify_flags val wreduce : which_side (* on which side it must perform reduction *) val winst : which_side (* on which side evars are allowed to be instantiated *) val match_evars : Evar.Set.t option (* which evars may be instantiated *) end type unify_fun = Environ.env -> Evd.evar_map -> Conversion.conv_pb -> EConstr.t -> EConstr.t -> Evarsolve.unification_result (** The main module type of unification, containing the functions that can be exported *) module type Unifier = sig val unify_evar_conv : unify_fun val unify_constr : ?conv_t:C.conv_pb -> ?options:options ref -> Environ.env -> EConstr.t -> EConstr.t -> Logger.log * Evd.evar_map -> unif val instantiate : C.conv_pb -> options ref -> Environ.env -> EConstr.t Constr.pexistential * EConstr.t list -> EConstr.t * EConstr.t list -> Evd.evar_map -> ES.unification_result end module type UnifT = functor (P : Params) -> Unifier (** Side module for instnatiation of evars. In certain cases we need to call it with specific parameters, and this is why it is not part of the main module. *) module Inst = functor (U : Unifier) -> struct (** Removes the equal variables of args and args', starting from the right most argument, until a different variable is found. (Avoids unnecessary eta-expansions.) It needs to check that no solution is lost, meaning that the variable being removed is not duplicated in any of the spines or bodies. *) let remove_equal_tail sigma (h, args) (h', args') = let rargs = List.rev args in let rargs' = List.rev args' in let noccur sigma i xs ys = not (Termops.dependent sigma i h') && not (Termops.dependent sigma i h) && not (List.exists (Termops.dependent sigma i) ys) && not (List.exists (Termops.dependent sigma i) xs) in let rec remove rargs rargs' = match rargs, rargs' with | (x :: xs), (y :: ys) when eq_constr sigma x y && noccur sigma x xs ys -> remove xs ys | _, _ -> rargs, rargs' in let (xs, ys) = remove rargs rargs' in (List.rev xs, List.rev ys) (* pre: args and args' are lists of vars and/or rels. subs is an array of rels and vars. *) let instantiate' dir options conv_t env (ev, subs as uv) args (h, args') (dbg, sigma0) = let args, args' = remove_equal_tail sigma0 (mkEvar uv, args) (h, args') in (* beta-reduce to remove dependencies *) let t = if !options.inst_beta_reduce_type then RO.whd_beta env sigma0 (applist (h, args')) else (applist (h, args')) in let evi = Evd.find_undefined sigma0 ev in let nc = Evd.evar_filtered_context evi in let res = let subsl = Evd.expand_existential sigma0 (ev, subs) in invert Evar.Map.empty sigma0 nc t subsl args ev >>= fun (map, t') -> fill_lambdas_invert_types map env sigma0 nc t' subsl args ev >>= fun (map, t') -> let sigma = prune_all map sigma0 in let sigma, t' = Evarsolve.refresh_universes (if conv_t == C.CUMUL && isArity sigma t' then (* ?X <= Type(i) -> X := Type j, j <= i *) (* Type(i) <= X -> X := Type j, i <= j *) Some (dir == Original) else None) (EConstr.push_named_context nc env) sigma t' in let t'' = instantiate_evar sigma nc t' subsl in (* XXX: EConstr.API *) let ty = Evd.existential_type sigma (ev,subs) in let unifty = try match kind sigma t'' with | Evar (evk2, _) -> (* ?X : Π Δ. Type i = ?Y : Π Δ'. Type j. The body of ?X and ?Y just has to be of type Π Δ. Type k for some k <= i, j. *) let evienv = Evd.evar_env env evi in let ctx1, i = R.dest_arity evienv (EConstr.to_constr ~abort_on_undefined_evars:false sigma (Evd.evar_concl evi)) in let evi2 = Evd.find_undefined sigma evk2 in let evi2env = Evd.evar_env env evi2 in let ctx2, j = R.dest_arity evi2env (EConstr.to_constr ~abort_on_undefined_evars:false sigma (Evd.evar_concl evi2)) in let i = ESorts.make i in let j = ESorts.make j in if i == j || Evd.check_eq sigma i j then (* Shortcut, i = j *) (dbg, ES.Success sigma) else if Evd.check_leq sigma i j then let t2 = it_mkProd_or_LetIn (mkSort i) (List.map of_rel_decl ctx2) in (dbg, ES.Success (Evd.downcast evk2 t2 sigma)) else if Evd.check_leq sigma j i then let t1 = it_mkProd_or_LetIn (mkSort j) (List.map of_rel_decl ctx1) in (dbg, ES.Success (Evd.downcast ev t1 sigma)) else let sigma, k = Evd.new_sort_variable Evd.univ_flexible_alg sigma in let t1 = it_mkProd_or_LetIn (mkSort k) (List.map of_rel_decl ctx1) in let t2 = it_mkProd_or_LetIn (mkSort k) (List.map of_rel_decl ctx2) in let sigma = Evd.set_leq_sort env (Evd.set_leq_sort env sigma k i) k j in (dbg, ES.Success (Evd.downcast evk2 t2 (Evd.downcast ev t1 sigma))) | _ -> raise R.NotArity with R.NotArity -> if !options.inst_unify_types then begin let ty' = Retyping.get_type_of env sigma t'' in U.unify_constr ~conv_t:C.CUMUL env ty' ty (dbg, sigma) end else (dbg, ES.Success sigma) in let p = unifty &&= fun (dbg, sigma) -> if Termops.occur_meta sigma t' (* || Termops.occur_evar ev t' *) then (dbg, ES.UnifFailure (sigma0, PE.NotSameHead)) else (dstats.instantiations <- Int64.succ dstats.instantiations; (dbg, ES.Success (Evd.define ev t' sigma))) in Some p in match res with | Some r -> r | None -> (dbg, ES.UnifFailure (sigma0, PE.NotSameHead)) end (** forward the use of evar conv's compare heads *) let ev_compare_heads env nparams1 t1 t2 (dbg, sigma) : unif = (dbg, EC.compare_heads env sigma ~nargs:nparams1 t1 t2) (** {3 Hashing table of failures} *) let tbl = Hashtbl.create 1000 (** The main module *) let rec unif (module P : Params) : (module Unifier) = ( module struct (** If evar e can be instantiated: 1) It must be in match_evars (assuming match_evars is Some set). 2) The instantiation matches the direction in which it is being performed. *) let must_inst (dir: direction) (e: Evar.t) = Option.cata (Evar.Set.mem e) true P.match_evars && (P.winst == Both || (P.winst == Left && dir == Original) || (P.winst == Right && dir == Swap)) (** If reduction is allowed to happen on the lhs. *) let reduce_left = P.wreduce == Left || P.wreduce == Both (** If reduction is allowed to happen on the rhs. *) let reduce_right = P.wreduce == Right || P.wreduce == Both let tblfind t x = try Hashtbl.find t x with Not_found -> false let try_hash env sp1 sp2 (dbg, sigma as dsigma) = if use_hash () && tblfind tbl (sigma, env, sp1, sp2) then begin log_eq_spine env "Hash-Hit" C.CONV sp1 sp2 dsigma &&= fun (dbg, sigma) -> report (dbg, ES.UnifFailure (sigma, PE.NotSameHead)) (* TODO Something is funky here: it returns error on a success and the other way around?? *) end else (dbg, ES.Success sigma) (** {3 Conversion check} *) let ground_spine sigma (h, args) = EU.is_ground_term sigma h && List.for_all (EU.is_ground_term sigma) args let try_conv conv_t env (c1, l1 as sp1) (c2, l2 as sp2) (dbg, sigma0) = if P.wreduce == Both && ground_spine sigma0 sp1 && ground_spine sigma0 sp2 then let app1 = applist sp1 and app2 = applist sp2 in try begin match RO.infer_conv ~pb:conv_t ~ts:P.flags.closed_ts env sigma0 app1 app2 with | None -> (dbg, ES.UnifFailure (sigma0, PE.NotSameHead)) | Some sigma1 -> report (log_eq_spine env "Reduce-Same" conv_t sp1 sp2 (dbg, sigma1)) end with UGraph.UniverseInconsistency _ -> (dbg, ES.UnifFailure (sigma0, PE.NotSameHead)) else (dbg, ES.UnifFailure (sigma0, PE.NotSameHead)) (* let debug_env env sigma c = *) (* if !dump then *) (* Feedback.msg_debug (Printer.pr_econstr_env env sigma c) *) (* let debug c = *) (* if !dump then *) (* Feedback.msg_debug (Printer.pr_econstr c) *) (** Given a head term c and with arguments l it whd reduces c if it is an evar, returning the new head and list of arguments. *) let rec decompose_evar sigma (c, l) = let (c', l') = decompose_app_list sigma c in if isCast sigma c' then let (t, _, _) = destCast sigma c' in decompose_evar sigma (t, l' @ l) else (c', l' @ l) (** {3 "The Function" is split into several} *) let rec unify'' ?(conv_t=C.CONV) ?(options=default_options) cont env t t' (dbg, sigma) = assert (not (isApp sigma (fst t) || isApp sigma (fst t'))); let (c, l as t) = decompose_evar sigma t in let (c', l' as t') = decompose_evar sigma t' in if !dump then debug_eq env sigma conv_t t t' 0; try_conv conv_t env t t' (dbg, sigma) ||= fun dbg -> try_hash env t t' (dbg, sigma) &&= fun (dbg, sigma) -> let res = if isEvar sigma c || isEvar sigma c' then one_is_meta dbg conv_t env sigma options t t' else begin try_run_and_unify env t t' (dbg, sigma) ||= try_canonical_structures env t t' sigma ||= try_app_fo conv_t env t t' sigma ||= cont conv_t env t t' sigma end in if not (is_success (snd res)) && use_hash () then Hashtbl.add tbl (sigma, env, t, t') true; res and unify' ?(conv_t=C.CONV) ?(options=default_options) = unify'' ~conv_t ~options (fun conv_t env t t' sigma dbg -> try_step conv_t env t t' (dbg, sigma)) and unify_constr ?(conv_t=C.CONV) ?(options=default_options) env t t' (dbg, sigma) = unify' ~conv_t ~options env (decompose_app_list sigma t) (decompose_app_list sigma t') (dbg,sigma) and unify_evar_conv env sigma0 conv_t t t' = let interesting log = (* if it's not just Reduce-Same *) match !log with | Logger.Node (("Reduce-Same", _), _, true, _) -> false | _ -> true in dstats.unif_problems <- Int64.succ dstats.unif_problems; if use_hash () then Hashtbl.clear tbl; match unify_constr ~conv_t:conv_t env t t' (Logger.init, sigma0) with | (log, ES.Success sigma') -> if get_debug () && interesting log then begin Logger.print_latex !latex_file print_eq log; Logger.print_to_stdout log; end else (); ES.Success sigma' | (log, ES.UnifFailure (sigma, e)) -> if get_debug () then Logger.print_to_stdout log; ES.UnifFailure (sigma, e) (** (Beta) This is related to Mtac, and is part of my thesis. The idea is to allow for the execution of (arbitrary) code during unification. At some point I need to either remove this, or prove it is an useful thing to have... *) and try_run_and_unify env (c, l as t) (c', l' as t') (dbg, sigma) = if (isConst sigma c || isConst sigma c') && not (eq_constr sigma c c') then begin if is_lift env sigma c && List.length l = 3 then run_and_unify dbg env sigma l t' else if is_lift env sigma c' && List.length l' = 3 then run_and_unify dbg env sigma l' t else (dbg, ES.UnifFailure (sigma, PE.NotSameHead)) end else (dbg, ES.UnifFailure (sigma, PE.NotSameHead)) and run_and_unify dbg env sigma0 args ty = let a, f, v = List.nth args 0, List.nth args 1, List.nth args 2 in unify' ~conv_t:C.CUMUL env (decompose_app_list sigma0 a) ty (dbg, sigma0) &&= fun (dbg, sigma1) -> match !run_function env sigma1 f with | Some (sigma2, v') -> unify' env (decompose_app_list sigma2 v) (decompose_app_list sigma2 v') (dbg, sigma2) | _ -> (dbg, ES.UnifFailure (sigma1, PE.NotSameHead)) and try_canonical_structures env (c, _ as t) (c', _ as t') sigma dbg = if (isConst sigma c || isConst sigma c' || isProj sigma c || isProj sigma c') && not (eq_constr sigma c c') then try conv_record dbg env sigma t t' with ProjectionNotFound -> try conv_record dbg env sigma t' t with ProjectionNotFound -> (dbg, ES.UnifFailure (sigma, PE.NotSameHead)) else (dbg, ES.UnifFailure (sigma, PE.NotSameHead)) and conv_record dbg env evd t t' = let (evd,c,bs,(params,params1),(us,us2),(ts,ts1),c1,(n,t2)) = check_conv_record env evd t t' in let (evd',ks,_) = List.fold_left (fun (i,ks,m) b -> match n with | Some n when m = n -> (i,t2::ks, m-1) | _ -> let dloc = Loc.tag @@ Evar_kinds.InternalHole in let sigma = i in let sigma, ev = Evarutil.new_evar env sigma ~src:dloc (substl ks b) in (sigma, ev :: ks, m - 1)) (evd,[],List.length bs) bs in report ( log_eq_spine env "CS" C.CONV t t' (dbg, evd') &&= ise_list2 (fun x1 x -> unify_constr env x1 (substl ks x)) params1 params &&= ise_list2 (fun u1 u -> unify_constr env u1 (substl ks u)) us2 us &&= unify' env (decompose_app_list evd' c1) (c,(List.rev ks)) &&= ise_list2 (unify_constr env) ts ts1) and try_app_fo conv_t env (c, l as t) (c', l' as t') sigma dbg = let nparams = List.length l in if nparams = List.length l' then begin report ( log_eq_spine env "App-FO" conv_t t t' (dbg, sigma) &&= compare_heads conv_t env nparams c nparams c' &&= ise_list2 (unify_constr env) l l' ) end else (dbg, ES.UnifFailure (sigma, PE.NotSameHead)) and one_is_meta dbg conv_t env sigma0 options (c, l as t) (c', l' as t') = if isEvar sigma0 c && isEvar sigma0 c' then let (k1, s1 as e1), (k2, s2 as e2) = destEvar sigma0 c, destEvar sigma0 c' in if k1 = k2 then (* Meta-Same *) begin let s1 = Evd.expand_existential sigma0 e1 in let s2 = Evd.expand_existential sigma0 e2 in let (b,p) = unify_same dbg env sigma0 options k1 (Array.of_list s1) (Array.of_list s2) in let dbg, sigma = fst p, match snd p with | ES.Success sigma -> sigma | ES.UnifFailure (sigma, _) -> sigma in let rule = if b then "Meta-Same" else "Meta-Same-Same" in log_eq_spine env rule conv_t t t' (dbg, sigma) &&= fun (dbg, sigma) -> if is_success (snd p) then report (ise_list2 (unify_constr env) l l' (dbg, sigma)) else report (dbg, ES.UnifFailure (sigma, PE.NotSameHead)) end else begin (* Meta-Meta: we try both directions, but first the one with the longest substitution. *) let dir1, dir2, var1, var2, term1, term2 = if SList.length s1 > SList.length s2 then Original, Swap, (e1, l), (e2, l'), t', t else Swap, Original, (e2, l'), (e1, l), t, t' in meta_inst dir1 options conv_t env var1 term1 sigma0 dbg ||= meta_inst dir2 options conv_t env var2 term2 sigma0 ||= meta_fo dir1 options conv_t env var1 term1 sigma0 ||= meta_fo dir2 options conv_t env var2 term2 sigma0 ||= meta_deldeps dir1 options conv_t env var1 term1 sigma0 ||= meta_deldeps dir2 options conv_t env var2 term2 sigma0 ||= meta_specialize dir1 options conv_t env var1 term1 sigma0 ||= meta_specialize dir2 options conv_t env var2 term2 sigma0 ||= try_solve_simple_eqn options conv_t env var1 term1 sigma0 end else if isEvar sigma0 c then if is_lift env sigma0 c' && List.length l' = 3 then run_and_unify dbg env sigma0 l' t else begin let e1 = destEvar sigma0 c in instantiate conv_t env (e1, l) t' (dbg, sigma0) end else if is_lift env sigma0 c && List.length l = 3 then run_and_unify dbg env sigma0 l t else begin let e2 = destEvar sigma0 c' in instantiate ~dir:Swap conv_t env (e2, l') t (dbg, sigma0) end and try_solve_simple_eqn ?(dir=Original) options conv_t env (evsubs, args) t sigma dbg = if !options.inst_try_solving_eqn then try (* TODO: Why the [] here!! *) let t = ES.solve_pattern_eqn env sigma [] (applist t) in let pbty = match conv_t with C.CONV -> None | C.CUMUL -> Some (dir == Original) in match ES.solve_simple_eqn (fun _flags _k -> unify_evar_conv) P.flags env sigma (pbty, evsubs, t) with ES.Success sigma' -> Printf.printf "%s" "solve_simple_eqn solved it: "; debug_eq env sigma C.CONV (mkEvar evsubs, []) (decompose_app_list sigma t) 0; (dbg, ES.Success sigma') | e -> (dbg, e) with _ -> Printf.printf "%s" "solve_simple_eqn failed!"; (dbg, ES.UnifFailure (sigma, PE.NotSameHead)) else (dbg, ES.UnifFailure (sigma, PE.NotSameHead)) and compare_heads conv_t env nparams c nparams' c' (dbg, sigma0) = let rigid_same sigma = report (log_eq env "Rigid-Same" conv_t c c' (dbg, sigma)) in match (kind sigma0 c, kind sigma0 c') with (* Type-Same *) | Sort s1, Sort s2 -> log_eq env "Type-Same" conv_t c c' (dbg, sigma0) &&= fun (dbg, sigma0) -> begin try let sigma1 = match conv_t with | C.CONV -> Evd.set_eq_sort env sigma0 s1 s2 | C.CUMUL -> Evd.set_leq_sort env sigma0 s1 s2 in report (dbg, ES.Success sigma1) with UGraph.UniverseInconsistency e -> let prq = Termops.pr_evd_qvar sigma0 and prl = Termops.pr_evd_level sigma0 in debug_str (Printf.sprintf "Type-Same exception: %s" (Pp.string_of_ppcmds (UGraph.explain_universe_inconsistency prq prl e))) 0; report (dbg, ES.UnifFailure (sigma0, PE.NotSameHead)) end (* Lam-Same *) | Lambda (name, t1, c1), Lambda (_, t2, c2) -> let env' = EConstr.push_rel (crd_of_tuple (name, None, t1)) env in report ( log_eq env "Lam-Same" conv_t c c' (dbg, sigma0) &&= unify_constr env t1 t2 &&= unify_constr ~conv_t env' c1 c2) (* Prod-Same *) | Prod (name, t1, c1), Prod (_, t2, c2) -> report ( log_eq env "Prod-Same" conv_t c c' (dbg, sigma0) &&= unify_constr env t1 t2 &&= let env = EConstr.push_rel (crd_of_tuple (name,None,t1)) env in unify_constr ~conv_t env c1 c2) | LetIn (name, trm1, ty1, body1), LetIn (_, trm2, ty2, body2) -> (* Let-Same *) let env' = EConstr.push_rel (crd_of_tuple (name, Some trm1, ty1)) env in report ( log_eq env "Let-Same" conv_t c c' (dbg, sigma0) &&= unify_constr env trm1 trm2 &&= unify_constr ~conv_t env' body1 body2) (* Rigid-Same *) | Rel n1, Rel n2 when n1 = n2 -> rigid_same sigma0 | Var id1, Var id2 when Id.equal id1 id2 -> rigid_same sigma0 | Const (c1,_), Const (c2,_) when Constant.equal c1 c2 -> report ( log_eq env "Rigid-Same" conv_t c c' (dbg, sigma0) &&= ev_compare_heads env nparams c c') | Ind (c1,_), Ind (c2,_) when Names.Ind.CanOrd.equal c1 c2 -> report ( log_eq env "Rigid-Same" conv_t c c' (dbg, sigma0) &&= ev_compare_heads env nparams c c') | Construct (c1,_), Construct (c2,_) when Names.Construct.CanOrd.equal c1 c2 -> report ( log_eq env "Rigid-Same" conv_t c c' (dbg, sigma0) &&= ev_compare_heads env nparams c c') | Proj (c1, _, t1), Proj (c2, _, t2) when Names.Projection.repr_equal c1 c2 -> report ( log_eq env "Proj-Same" conv_t c c' (dbg, sigma0) &&= unify_constr env t1 t2) | CoFix (i1,(_,tys1,bds1 as recdef1)), CoFix (i2,(_,tys2,bds2)) when i1 = i2 -> report ( log_eq env "CoFix-Same" conv_t c c' (dbg, sigma0) &&= ise_array2 (unify_constr env) tys1 tys2 &&= ise_array2 (unify_constr (push_rec_types_econstr sigma0 recdef1 env)) bds1 bds2) | Case (ci1, u1, pms1, p1, iv1, c1, cl1), Case (ci2, u2, pms2, p2, iv2, c2, cl2) -> let (ci1, (p1,_), _, c1, cl1) = EConstr.expand_case env sigma0 (ci1, u1, pms1, p1, iv1, c1, cl1) in let (ci2, (p2,_), _, c2, cl2) = EConstr.expand_case env sigma0 (ci2, u2, pms2, p2, iv2, c2, cl2) in report ( log_eq env "Case-Same" conv_t c c' (dbg, sigma0) &&= unify_constr env p1 p2 &&= unify_constr env c1 c2 &&= ise_array2 (unify_constr env) cl1 cl2) | Fix (li1, (_, tys1, bds1 as recdef1)), Fix (li2, (_, tys2, bds2)) when li1 = li2 -> report ( log_eq env "Fix-Same" conv_t c c' (dbg, sigma0) &&= ise_array2 (unify_constr env) tys1 tys2 &&= ise_array2 (unify_constr (push_rec_types_econstr sigma0 recdef1 env)) bds1 bds2) | _, _ -> (dbg, ES.UnifFailure (sigma0, PE.NotSameHead)) and push_rec_types_econstr sigma (a, l, m) env = Environ.push_rec_types (a, Array.map (to_constr ~abort_on_undefined_evars:false sigma) l, Array.map (to_constr ~abort_on_undefined_evars:false sigma) m) env and try_step ?(stuck=NotStucked) conv_t env (c, l as t) (c', l' as t') (dbg, sigma0) = match (kind sigma0 c, kind sigma0 c') with (* Lam-BetaR *) | _, Lambda (_, _, trm) when reduce_right && not (CList.is_empty l') -> let (c2, l2) = decompose_app_list sigma0 (subst1 (List.hd l') trm) in let t2 = (c2, l2 @ List.tl l') in report ( log_eq_spine env "Lam-BetaR" conv_t t t' (dbg, sigma0) &&= unify' ~conv_t env t t2) | _, LetIn (_, trm, _, body) when reduce_right -> let (c2, l2) = decompose_app_list sigma0 (subst1 trm body) in let t2 = (c2, l2 @ l') in report ( log_eq_spine env "Let-ZetaR" conv_t t t' (dbg, sigma0) &&= unify' ~conv_t env t t2) | (_, Case _ | _, Fix _) when reduce_right && stuck != StuckedRight -> let t2 = evar_apprec P.flags.open_ts env sigma0 t' in if not (eq_app_stack sigma0 t' t2) then begin report ( log_eq_spine env "Case-IotaR" conv_t t t' (dbg, sigma0) &&= unify' ~conv_t env t t2) end else if stuck = NotStucked then try_step ~stuck:StuckedRight conv_t env t t' (dbg, sigma0) else (dbg, ES.UnifFailure (sigma0, PE.NotSameHead)) (* Lam-BetaL *) | Lambda (_, _, trm), _ when reduce_left && not (CList.is_empty l) -> let (c1, l1) = decompose_app_list sigma0 (subst1 (List.hd l) trm) in let t1 = (c1, l1 @ List.tl l) in report ( log_eq_spine env "Lam-BetaL" conv_t t t' (dbg, sigma0) &&= unify' ~conv_t env t1 t') (* Let-ZetaL *) | LetIn (_, trm, _, body), _ when reduce_left -> let (c1, l1) = decompose_app_list sigma0 (subst1 trm body) in let t1 = (c1, l1 @ l) in report ( log_eq_spine env "Let-ZetaL" conv_t t t' (dbg, sigma0) &&= unify' ~conv_t env t1 t') | (Case _, _ | Fix _, _) when reduce_left && stuck != StuckedLeft -> let t2 = evar_apprec P.flags.open_ts env sigma0 t in if not (eq_app_stack sigma0 t t2) then begin report ( log_eq_spine env "Case-IotaL" conv_t t t' (dbg, sigma0) &&= unify' ~conv_t env t2 t') end else if stuck == NotStucked then try_step ~stuck:StuckedLeft conv_t env t t' (dbg, sigma0) else (dbg, ES.UnifFailure (sigma0, PE.NotSameHead)) (* Constants get unfolded after everything else *) | (_, Const _ | _, Rel _ | _, Var _) when reduce_right && has_definition sigma0 P.flags.open_ts env c' && stuck == NotStucked -> if is_stuck env sigma0 t' then try_step ~stuck:StuckedRight conv_t env t t' (dbg, sigma0) else report ( log_eq_spine env "Cons-DeltaNotStuckR" conv_t t t' (dbg, sigma0) &&= unify' ~conv_t env t (evar_apprec P.flags.open_ts env sigma0 (get_def_app_stack sigma0 env t'))) | (Const _, _ | Rel _, _ | Var _, _) when reduce_left && has_definition sigma0 P.flags.open_ts env c && stuck == StuckedRight -> report ( log_eq_spine env "Cons-DeltaStuckL" conv_t t t' (dbg, sigma0) &&= unify' ~conv_t env (evar_apprec P.flags.open_ts env sigma0 (get_def_app_stack sigma0 env t)) t') | (_, Const _ | _, Rel _ | _, Var _) when reduce_right && has_definition sigma0 P.flags.open_ts env c' -> report ( log_eq_spine env "Cons-DeltaR" conv_t t t' (dbg, sigma0) &&= unify' ~conv_t env t (evar_apprec P.flags.open_ts env sigma0 (get_def_app_stack sigma0 env t'))) | (Const _, _ | Rel _, _ | Var _, _) when reduce_left && has_definition sigma0 P.flags.open_ts env c -> report ( log_eq_spine env "Cons-DeltaL" conv_t t t' (dbg, sigma0) &&= unify' ~conv_t env (evar_apprec P.flags.open_ts env sigma0 (get_def_app_stack sigma0 env t)) t') (* Unfolding of projections *) | _ , Proj (p, r, c) when reduce_right && stuck != StuckedRight -> begin let c = RO.whd_all env sigma0 c in (* reduce argument *) match let (hd, args) = destApp sigma0 c in (* Assuming [Proj (p, c)] is well-typed, if [hd] is a constructor, it must be of [p]'s record type. *) if isConstruct sigma0 hd then args else raise Constr.DestKO with | args -> (* We have found an application of the constructor belonging to the record of projection [p]. (There is no need to check the constructor's index: the types guarantee that it is the first and only one) *) let cont = (args.(Projection.npars p + Projection.arg p), l') in report ( log_eq_spine env "Proj-DeltaR" conv_t t t' (dbg, sigma0) &&= unify' ~conv_t env t (evar_apprec P.flags.open_ts env sigma0 cont) ) | exception Constr.DestKO -> (* We are stuck on either: a) any term b) any application c) any application of an inductive's constructor which is not the constructor of [p]'s type. *) report ( log_eq_spine env "Proj-StuckR" conv_t t t' (dbg, sigma0) &&= try_step ~stuck:StuckedRight conv_t env t (mkProj (p, r, c), l') ) end | Proj (p, r, c), _ when reduce_left && stuck != StuckedLeft -> begin let c = RO.whd_all env sigma0 c in (* reduce argument *) match let (hd, args) = destApp sigma0 c in (* Assuming [Proj (p, c)] is well-typed, if [hd] is a constructor, it must be of [p]'s record type. *) if isConstruct sigma0 hd then args else raise Constr.DestKO with | args -> (* We have found an application of the constructor belonging to the record of projection [p]. (There is no need to check the constructor's index: the types guarantee that it is the first and only one) *) let cont = (args.(Projection.npars p + Projection.arg p), l) in report ( log_eq_spine env "Proj-DeltaL" conv_t t t' (dbg, sigma0) &&= unify' ~conv_t env (evar_apprec P.flags.open_ts env sigma0 cont) t' ) | exception Constr.DestKO -> (* We are stuck on either: a) any term b) any application c) any application of an inductive's constructor which is not the constructor of [p]'s type. *) report ( log_eq_spine env "Proj-StuckL" conv_t t t' (dbg, sigma0) &&= (* We don't know if we made any progress at all so we make sure to not call [try_step] on the result again by using [unify''] instead of [unify']. *) unify'' ~conv_t (fun _ _ _ _ sigma0 dbg -> (dbg, ES.UnifFailure (sigma0, PE.NotSameHead))) env (mkProj (p, r, c), l) t' ) end (* Lam-EtaR *) | _, Lambda (name, t1, c1) when reduce_right && CList.is_empty l' && not (isLambda sigma0 c) -> report ( log_eq_spine env "Lam-EtaR" conv_t t t' (dbg, sigma0) &&= eta_match conv_t env (name, t1, c1) t) (* Lam-EtaL *) | Lambda (name, t1, c1), _ when reduce_left && CList.is_empty l && not (isLambda sigma0 c') -> report ( log_eq_spine env "Lam-EtaL" conv_t t t' (dbg, sigma0) &&= eta_match conv_t env (name, t1, c1) t') | _, _ -> (dbg, ES.UnifFailure (sigma0, PE.NotSameHead)) and is_stuck env sigma (hd, args) = let (hd, args) = evar_apprec P.flags.open_ts env sigma (try_unfolding sigma P.flags.open_ts env hd, args) in let rec is_unnamed (hd, args) = match kind sigma hd with | (Var _|Construct _|Ind _|Const _|Prod _|Sort _|Int _|Float _|Array _) -> false | (Case _|Fix _|CoFix _|Meta _|Rel _)-> true | Evar _ -> false (* immediate solution without Canon Struct *) | Lambda _ -> assert(args = []); true | LetIn (_, b, _, c) -> is_unnamed (evar_apprec P.flags.open_ts env sigma (subst1 b c, args)) | Proj _ -> false | App _| Cast _ -> assert false in is_unnamed (hd, args) and meta_inst dir options conv_t env (ev, subs as evsubs, args) (h, args' as t) sigma dbg = let subs = Evd.expand_existential sigma evsubs in if must_inst dir ev && is_variable_subs sigma subs && is_variable_args sigma args then begin try let module P' = (struct let flags = P.flags let wreduce = Both let winst = Both let match_evars = P.match_evars end : Params) in let module U' = (val unif (module P') : Unifier) in report (log_eq_spine env "Meta-Inst" conv_t (mkEvar evsubs, args) t (dbg, sigma) &&= let module I' = Inst(U') in I'.instantiate' dir options conv_t env evsubs args t) with CannotPrune -> report (dbg, ES.UnifFailure (sigma, PE.NotSameHead)) end else (dbg, ES.UnifFailure (sigma, PE.NotSameHead)) and meta_deldeps dir options conv_t env (ev, subs as evsubs, args) (h, args' as t) sigma dbg = if !options.inst_aggressive && must_inst dir ev then begin try let subs = Evd.expand_existential sigma (ev, subs) in let (sigma', evsubs', args'') = remove_non_var env sigma (ev, subs) args in report ( log_eq_spine env "Meta-DelDeps" conv_t (mkEvar evsubs, args) t (dbg, sigma') &&= switch dir (unify' ~conv_t ~options env) (evsubs', args'') t) with CannotPrune -> (dbg, ES.UnifFailure (sigma, PE.NotSameHead)) end else (dbg, ES.UnifFailure (sigma, PE.NotSameHead)) and meta_specialize dir options conv_t env (ev, subs as evsubs, args) (h, args' as t) sigma dbg = if !options.inst_super_aggressive && must_inst dir ev then begin try let (sigma', evsubst', args'') = specialize_evar env sigma evsubs args in report ( log_eq_spine env "Meta-Specialize" conv_t (mkEvar evsubs, args) t (dbg, sigma') &&= switch dir (unify' ~conv_t ~options env) (evsubst', args'') t) with CannotPrune -> (dbg, ES.UnifFailure (sigma, PE.NotSameHead)) end else (dbg, ES.UnifFailure (sigma, PE.NotSameHead)) and meta_reduce dir options conv_t env (ev, subs as evsubs, args) (h, args' as t) sigma dbg = (* Meta-Reduce: before giving up we see if we can reduce on the right *) if must_inst dir ev && ((dir == Original && reduce_right) || (dir == Swap && reduce_left)) then if has_definition sigma P.flags.open_ts env h then begin let t' = evar_apprec P.flags.open_ts env sigma (get_def_app_stack sigma env t) in report ( log_eq_spine env "Meta-Reduce" conv_t (mkEvar evsubs, args) t (dbg, sigma) &&= fun pax -> switch dir (unify' ~conv_t ~options env) (mkEvar evsubs, args) t' pax) end else begin let t' = evar_apprec P.flags.open_ts env sigma t in if not (eq_app_stack sigma t t') then begin report ( log_eq_spine env "Meta-Reduce" conv_t (mkEvar evsubs, args) t (dbg, sigma) &&= fun pax -> switch dir (unify' ~conv_t ~options env) (mkEvar evsubs, args) t' pax) end else (dbg, ES.UnifFailure (sigma, PE.NotSameHead)) end else (dbg, ES.UnifFailure (sigma, PE.NotSameHead)) and meta_eta dir options conv_t env (ev, subs as evsubs, args) (h, args' as t) sigma dbg = (* if the equation is [?f =?= \x.?f x] the occurs check will fail, but there is a solution: eta expansion *) if must_inst dir ev && isLambda sigma h && List.length args' = 0 then begin report ( log_eq_spine env "Lam-Eta" conv_t (mkEvar evsubs, args) t (dbg, sigma) &&= eta_match conv_t ~options env (destLambda sigma h) (mkEvar evsubs, args)) end else (dbg, ES.UnifFailure (sigma, PE.NotSameHead)) (* by invariant, we know that ev is uninstantiated *) and instantiate ?(dir=Original) ?(options=default_options) conv_t env (_, _ as evsubs) (h, args' as t) (dbg, sigma) = meta_inst dir options conv_t env evsubs t sigma dbg ||= meta_fo dir options conv_t env evsubs t sigma ||= meta_deldeps dir options conv_t env evsubs t sigma ||= meta_specialize dir options conv_t env evsubs t sigma ||= meta_reduce dir options conv_t env evsubs t sigma ||= meta_eta dir options conv_t env evsubs t sigma ||= try_solve_simple_eqn options conv_t env evsubs t sigma and should_try_fo args (h, args') = List.length args > 0 && List.length args' >= List.length args (* ?e a1 a2 = h b1 b2 b3 ---> ?e = h b1 /\ a1 = b2 /\ a2 = b3 *) and meta_fo dir options conv_t env ((ev, _ as evsubs), args) (h, args' as t) sigma dbg = if not (should_try_fo args t) || not (must_inst dir ev) then (dbg, ES.UnifFailure (sigma, PE.NotSameHead)) else let (args'1,args'2) = CList.chop (List.length args'-List.length args) args' in begin report ( (* Meta-FO *) log_eq_spine env "Meta-FO" conv_t (mkEvar evsubs, args) t (dbg, sigma) &&= fun (dbg, sigma) -> if dir = Original then unify' ~conv_t ~options env (mkEvar evsubs, []) (h, args'1) (dbg, sigma) &&= ise_list2 (unify_constr env) args args'2 else unify' ~conv_t ~options env (h, args'1) (mkEvar evsubs, []) (dbg, sigma) &&= ise_list2 (unify_constr env) args'2 args ) end (* unifies ty with a product type from {name : a} to some Type *) and check_product dbg env sigma ty (name, a) = let nc = EConstr.named_context env in let naid = Namegen.next_name_away name (Termops.vars_of_env env) in let nc' = CND.of_tuple (Context.make_annot naid Sorts.Relevant, None, a) :: nc in let sigma', univ = Evd.new_sort_variable Evd.univ_flexible sigma in let sigma'',v = Evarutil.new_pure_evar (EConstr.val_of_named_context nc') sigma' (EConstr.mkSort univ) in let idsubst = (mkRel 1 :: id_substitution nc) in unify_constr ~conv_t:C.CUMUL env ty (mkProd (Context.make_annot (Names.Name naid) Sorts.Relevant, a, mkLEvar sigma (v, idsubst))) (dbg, sigma'') and eta_match conv_t ?(options=default_options) env (name, a, t1) (th, tl as t) (dbg, sigma0 ) = let env' = EConstr.push_rel (crd_of_tuple (name, None, a)) env in let t' = applist (lift 1 th, List.map (lift 1) tl @ [mkRel 1]) in let ty = Retyping.get_type_of env sigma0 (applist t) in check_product dbg env sigma0 ty (name.binder_name, a) &&= unify_constr ~conv_t ~options env' t1 t' let instantiate conv_t options env (_, _ as evsubs) (h, args' as t) sigma = Hashtbl.clear tbl; match instantiate ~options conv_t env evsubs t (Logger.init, sigma) with | (log, ES.Success sigma) -> if get_debug () then begin Logger.print_latex !latex_file print_eq log; Logger.print_to_stdout log; end; ES.Success sigma | (log, ES.UnifFailure (sigma, e)) -> if get_debug () then Logger.print_to_stdout log; ES.UnifFailure (sigma, e) end) let unify_new flags = let module P = (struct let flags = flags let wreduce = Both let winst = Both let match_evars = None end : Params) in let module M = (val unif (module P)) in M.unify_evar_conv let unify_evar_conv ts = let module P = (struct let flags = Evarconv.default_flags_of ts let wreduce = Both let winst = Both let match_evars = None end : Params) in let module M = (val unif (module P)) in M.unify_evar_conv let unify_match evars ts = let module P = (struct let flags = Evarconv.default_flags_of ts let wreduce = Right let winst = Left let match_evars = Some evars end : Params) in let module M = (val unif (module P)) in M.unify_evar_conv let unify_match_nored evars ts = let module P = (struct let flags = Evarconv.default_flags_of ts let wreduce = NoAction let winst = Left let match_evars = Some evars end : Params) in let module M = (val unif (module P)) in M.unify_evar_conv let instantiate ?(conv_t=C.CONV) ?(options=default_options) env (_, _ as evsubs) t sigma = let module P = (struct let flags = Evarconv.default_flags_of TransparentState.full let wreduce = Both let winst = Both let match_evars = None end : Params) in let module M = (val unif (module P)) in M.instantiate conv_t options env evsubs (decompose_app_list sigma t) sigma let use_munify () = !munify_on let set_use_munify b = if b then try Evarconv.set_evar_conv unify_new with _ -> (); munify_on := b let _ = Goptions.declare_bool_option { Goptions.optdepr = None; Goptions.optstage = Interp; Goptions.optkey = ["Use";"Unicoq"]; Goptions.optread = use_munify; Goptions.optwrite = set_use_munify; } unicoq-1.6-8.19/src/munify.mli000066400000000000000000000033201461142772400160620ustar00rootroot00000000000000module ES = Evarsolve type unif = Logger.log * ES.unification_result type stats = { unif_problems : Int64.t; instantiations : Int64.t } type unify_fun = Environ.env -> Evd.evar_map -> Conversion.conv_pb -> EConstr.t -> EConstr.t -> Evarsolve.unification_result type options = { inst_beta_reduce_type : bool; inst_unify_types : bool; inst_aggressive : bool; inst_super_aggressive : bool; inst_try_solving_eqn : bool; use_hash : bool } val current_options : unit -> options val unify_evar_conv : TransparentState.t -> unify_fun (** Given a set of evars s and terms t1 t2, it unifies the terms only allowing instantiations from the evars in t1 and s, and only allowing reduction on the t2. The idea is that t1 acts as a "pattern" (for pattern matching), so only the variables in t1 are instantiated, as long as they occur in s, and only the scrutinee (t2) is reduced. *) val unify_match : Evar.Set.t -> TransparentState.t -> unify_fun (** Same as unify_match but with no reduction *) val unify_match_nored : Evar.Set.t -> TransparentState.t -> unify_fun (** Instantiates an evar `?x[subst] args` with a term `t` *) val instantiate : ?conv_t:Conversion.conv_pb -> ?options: options ref -> Environ.env -> EConstr.t Constr.pexistential * EConstr.t list -> EConstr.t -> Evd.evar_map -> ES.unification_result val get_stats : unit -> stats (** Mtac execution of tactics *) val set_run : (Environ.env -> Evd.evar_map -> EConstr.constr -> (Evd.evar_map * EConstr.t) option) -> unit val set_lift_constr : (Environ.env -> Evd.evar_map -> Evd.evar_map * EConstr.t) -> unit unicoq-1.6-8.19/src/unicoq.mlpack000066400000000000000000000000311461142772400165330ustar00rootroot00000000000000Logger Munify Unitactics unicoq-1.6-8.19/src/unitactics.mlg000066400000000000000000000064071461142772400167300ustar00rootroot00000000000000(***********************************************************) (* Unicoq plugin. *) (* Copyright (c) 2015 Beta Ziliani *) (* Matthieu Sozeau . *) (***********************************************************) (** Unicoq - An improved unification algorithm for Coq This defines a tactic [munify x y] that unifies two typable terms. *) (* These are necessary for grammar extensions like the one at the end of the module *) (*i camlp4deps: "parsing/grammar.cma" i*) (*i camlp4use: "pa_extend.cmo" i*) DECLARE PLUGIN "coq-unicoq.plugin" { open Ltac_plugin open Pp open Proofview open Munify open Stdarg open Ltac_pretype let understand env sigma {closure=closure;term=term} = let open Pretyping in let flags = all_no_fail_flags in let lvar = { Glob_ops.empty_lvar with ltac_constrs = closure.typed; ltac_uconstrs = closure.untyped; ltac_idents = closure.idents; } in understand_ltac flags env sigma lvar WithoutTypeConstraint term let munify_tac gl sigma ismatch x y = let env = Goal.env gl in let evars evm = Proofview.Unsafe.tclEVARS evm in let (sigma, x) = understand env sigma x in let (sigma, y) = understand env sigma y in let res = let ts = Conv_oracle.get_transp_state (Environ.oracle env) in if ismatch then let evars = Evd.fold (fun e _->Evar.Set.add e) sigma Evar.Set.empty in unify_match evars ts env sigma Conversion.CONV x y else unify_evar_conv ts env sigma Conversion.CUMUL x y in match res with | Evarsolve.Success evm -> evars evm | Evarsolve.UnifFailure _ -> Tacticals.tclFAIL (str"Unification failed") let minstantiate_tac gl sigma x y = let env = Goal.env gl in let evars evm = Proofview.Unsafe.tclEVARS evm in let (sigma, x) = understand env sigma x in let (sigma, y) = understand env sigma y in let options = current_options () in let options = ref { options with inst_unify_types = false } in let res = instantiate ~conv_t:Conversion.CUMUL ~options env (EConstr.destEvar sigma x, []) y sigma in match res with | Evarsolve.Success evm -> evars evm | Evarsolve.UnifFailure _ -> Tacticals.tclFAIL (str"Unification failed") } (* This adds an entry to the grammar of tactics, similar to what Tactic Notation does. *) TACTIC EXTEND munify_tac | ["munify" uconstr(c) uconstr(c') ] -> { Proofview.Goal.enter begin fun gl -> let sigma = Goal.sigma gl in munify_tac gl sigma false c c' end } END TACTIC EXTEND mmatch_tac | ["mmatch" uconstr(c) uconstr(c') ] -> { Proofview.Goal.enter begin fun gl -> let _env = Proofview.Goal.env gl in let sigma = Proofview.Goal.sigma gl in munify_tac gl sigma true c c' end } END TACTIC EXTEND minstantiate_tac | ["minstantiate" uconstr(c) uconstr(c') ] -> { Proofview.Goal.enter begin fun gl -> let sigma = Goal.sigma gl in minstantiate_tac gl sigma c c' end } END VERNAC COMMAND EXTEND PrintMunifyStats CLASSIFIED AS SIDEFF | [ "Print" "Unicoq" "Stats" ] -> { let s = Munify.get_stats () in Printf.printf "STATS:\t%s\t\t%s\n" (Int64.to_string s.unif_problems) (Int64.to_string s.instantiations) } END unicoq-1.6-8.19/test-suite/000077500000000000000000000000001461142772400153715ustar00rootroot00000000000000unicoq-1.6-8.19/test-suite/bug_41.v000066400000000000000000000004241461142772400166410ustar00rootroot00000000000000From Unicoq Require Import Unicoq. Polymorphic Record dyn : Prop := mkdyn {}. Polymorphic Definition Dyn {A} (a:A) : dyn. constructor. Qed. (* This used to loop *) Fail Check ltac:(mmatch Dyn@{Set} Dyn@{Type}; exact tt). Check ltac:(munify Dyn@{Type} Dyn@{Type}; exact tt). unicoq-1.6-8.19/test-suite/bug_44.v000066400000000000000000000033431461142772400166470ustar00rootroot00000000000000From Unicoq Require Import Unicoq. Set Primitive Projections. Module M. Record bla := { c :> Type; goal : c -> c -> Prop }. Arguments goal {_}. End M. Import M. Ltac IHateLtac B k := let ep := fresh "p" in let eq := fresh "q" in evar (ep : c B); evar (eq : c B); let p := eval unfold ep in ep in let q := eval unfold eq in eq in k p q; clear ep eq. Section Test. Context (B : bla) (P Q : B). Set Printing Primitive Projection Parameters. Goal B.(@goal) P Q. (* Everything is phrased in terms of the constant [goal]. *) IHateLtac B ltac:(fun p q => match goal with | |- ?g => unify g (@goal B p q) end ). IHateLtac B ltac:(fun p q => match goal with | |- ?g => munify g (@goal B p q) end ). (* Let's make the RHS primitive *) (* [unify] doesn't care and succeeds *) IHateLtac B ltac:(fun p q => match goal with | |- ?g => let t := constr:(@goal B) in let t := eval unfold goal in t in is_proj t; unify g (t p q) end ). (* [munify] used to fail *) IHateLtac B ltac:(fun p q => match goal with | |- ?g => let t := constr:(@goal B) in let t := eval unfold goal in t in is_proj t; (munify g (t p q)) end ). progress unfold goal. (* goal is now a primitive projection. *) (* [unify] still does the right thing. *) IHateLtac B ltac:(fun p q => match goal with | |- ?g => unify g (@goal B p q) end ). (* [munify] used to fail *) IHateLtac B ltac:(fun p q => match goal with | |- ?g => munify g (@goal B p q) end ). Abort. End Test. unicoq-1.6-8.19/test-suite/instantiate.v000066400000000000000000000002251461142772400201020ustar00rootroot00000000000000Require Import Unicoq.Unicoq. Goal Prop. evar (x : Type). let x := eval hnf in x in minstantiate x (True : Prop : Type). Show Proof. Abort. unicoq-1.6-8.19/test-suite/microtests.v000066400000000000000000000024701461142772400177570ustar00rootroot00000000000000Require Import Unicoq.Unicoq. Set Unicoq Trace. Set Unicoq Aggressive. (* Meta-Inst and Meta-DelDeps *) Section Inst. Variables x y z : nat. Example inst1 : _ x = 0 := eq_refl 0. Print inst1. (* should be [(fun _=>0) x = 0] *) Example inst2 : _ x = x := eq_refl x. Print inst2. (* should be [(fun w=>w) x = x] *) Example inst3 : _ x y z = x := eq_refl x. Print inst3. (* should be [(fun w _ _=>w) x y z = x] *) Example inst4 : _ x y z = z := eq_refl z. Print inst4. (* should be [(fun _ _ w=>w) x y z = z] *) Set Printing All. Example inst_letzetaR : let X := _ : nat -> nat in X x = 0 := eq_refl. Example inst_letzetaL : 0 = 0 := eq_refl (let X := _ : nat -> nat in X x) . Example inst_betaR : (fun w=>w) _ x = 0 := eq_refl. Example inst_betaL : 0 = 0 := eq_refl ((fun w=>w) _ x). Example inst_iotaR : match 0 with 0 => _ | _ => 0 end = x := eq_refl. Example inst_iotaR' : match 0 with 0 => _ | _ => (fun _ =>0) end x = x := eq_refl. Example inst_iotaL : x = x := eq_refl (match 0 with 0 => _ | _ => (fun _ =>0) end x). (* Meta-Same-Same *) Example same1 : let X := _ : nat -> nat in (X x, X x) = (X x, x) := eq_refl. Example prod1 : (forall (T:Type) (t : T), t = t) = (forall (T:_) (t : _), _ = _) := eq_refl. Print prod1. Example prod2 : (forall (t : Prop), True) = (forall (t : Prop), _ : Prop) := eq_refl. End Inst.unicoq-1.6-8.19/test-suite/munifytest.v000066400000000000000000000076701461142772400200010ustar00rootroot00000000000000(************************************************************************************************) (* Unicoq plugin. *) (* Copyright (c) 2015 Beta Ziliani *) (* Matthieu Sozeau . *) (************************************************************************************************) Require Import Unicoq.Unicoq. Print Unicoq Stats. Set Unicoq Aggressive. Set Unicoq Debug. Set Unicoq LaTex File "unif.tex". Definition test1 : (_ : nat -> nat) 0 = S 0 := eq_refl. Definition test2 : match 0 return nat with 0 => (_ : nat -> nat) 0 | _ => 1 end = S 0 := eq_refl. Unset Unicoq Aggressive. Fail Definition test3 : (_ : nat -> nat) 0 = 0 := eq_refl. Set Unicoq Super Aggressive. (* Needs super aggressive option *) Definition test3 : (_ : nat -> nat) 0 = 0 := eq_refl. Unset Use Unicoq. (* fails in std coq unif, although the Unset Use Unicoq option is not working*) Definition test4 : (_ : nat -> nat) 0 = 0 := eq_refl. Set Use Unicoq. Unset Unicoq Super Aggressive. (* This one should fail *) Fail Definition test5 (x:nat) : _ x x = S x := eq_refl. Goal forall x y : nat, True. intros. mmatch 0 0. Fail munify 0 1. Set Unicoq Dump Equalities. evar (X : nat). munify 0 X. Fail mmatch X 0. (* OK: it is not reducing on the left *) mmatch 0 X. (* OK: it is reducing on the right *) mmatch (S _) (1 + 0). mmatch (S _) (0 + (fun x=>x) 1). Fail mmatch (0 + (fun x=>x) 1) 1. mmatch _ 0. mmatch (_ X) 0. mmatch (_ X X) X. (* works because meta-reduce changes the rhs to 0 *) Fail mmatch (_ x x) _. munify (_ x x) _. exact I. Abort. Unset Unicoq Debug. Set Unicoq Aggressive. Definition aggressive_double_var (x:nat) : (fun y=>_) x = x := eq_refl. Print aggressive_double_var. (* must be [fun y => y] *) Definition aggressive_double_var' (x y:nat) : (fun z=>_) x y = x + y := eq_refl. Print aggressive_double_var'. Definition aggressive_const (x y z:nat) : (fun u v w=>_) x 0 y = x := eq_refl. Print aggressive_const. Set Unicoq Debug. Definition aggressive_const' (x y z:nat) : (fun u v w : nat =>_) 0 x y = x := eq_refl. Print aggressive_const'. Definition aggressive_const'' (x y z:nat) : (fun u v w=>_) y x 0 = x := eq_refl. Print aggressive_const''. Fixpoint nary_congruence_statement (n : nat) : (forall B, (B -> B -> Prop) -> Prop) -> Prop := match n with | O => fun k => forall B, k B (fun x1 x2 : B => x1 = x2) | S n' => let k' A B e (f1 f2 : A -> B) := forall x1 x2, x1 = x2 -> (e (f1 x1) (f2 x2) : Prop) in fun k => forall A, nary_congruence_statement n' (fun B e => k _ (k' A B e)) end. Definition intersec1 : let T : nat -> nat -> nat -> nat := fun x y z=> _ in forall x y z:nat, T x y z = T y y x /\ T x y z = y := fun x y z:nat=>conj eq_refl eq_refl. Definition intersec2 : let T : nat -> nat -> nat -> nat := fun x y z=> _ in forall x y z:nat, T x x x = T y y y /\ T x y z = 0 := fun x y z:nat=>conj eq_refl eq_refl. Fail Definition intersec3 : let T : nat -> nat -> nat -> nat := fun x y z=> _ in forall x y z:nat, T x y z = T y y x /\ T x y z = x := fun x y z:nat=>conj eq_refl eq_refl. Fail Definition intersec3 : let T : nat -> nat -> nat -> nat := fun x y z=> _ in forall x y z:nat, T x y z = T y y x /\ T x y z = x := fun x y z:nat=>conj eq_refl eq_refl. Definition intersec3 : let T : nat -> nat -> nat -> nat := fun x y z=> _ in forall x y z:nat, T x y z = T x z z /\ T x y z = x := fun x y z:nat=>conj eq_refl eq_refl. Definition intersec4 : let T : nat -> nat -> nat -> nat := fun x y z=> _ in forall x y z:nat, T z y z = T z z z /\ T x y z = z := fun x y z:nat=>conj eq_refl eq_refl. Fail Definition intersec5 : let T : nat -> nat -> nat -> nat := fun x y z=> _ in forall x y z:nat, T x y z = T x z z /\ T x y z = y := fun x y z:nat=>conj eq_refl eq_refl. Print Unicoq Stats. unicoq-1.6-8.19/test-suite/primitive.v000066400000000000000000000030161461142772400175700ustar00rootroot00000000000000From Unicoq Require Import Unicoq. Set Primitive Projections. Module Test1. Record cs := { ty : Type }. Canonical Structure cs_unit := {| ty := unit |}. (* The definition below used to fail with: Error: In environment c := ?c : cs The term "tt" has type "unit" while it is expected to have type "ty c". *) Definition x := let c : cs := _ in let x := (fun (u : ty c) => u) (tt) in c. End Test1. (* Similar to Test1 but with parameters *) Module Test2. Record cs (A : Type) := { ty : Type }. Canonical Structure cs_unit {A} : cs A := {| ty := unit |}. Definition x := let c : cs nat := _ in let x := (fun (u : ty _ c) => u) (tt) in c. End Test2. (* With a field that has a function type *) Module Test3. Record cs (A : Type) := { ty : Type; #[canonical=no] f : ty -> Type }. Canonical Structure cs_unit {A} : cs A := {| f := fun 'tt => unit |}. Definition x := let c : cs nat := _ in let x := (fun (u : f _ c tt) => u) (tt) in c. Canonical Structure cs_nat {A} : cs A := {| f := fun n => match n with 0 => nat | _ => nat end |}. Definition reduceR := let x : cs nat := cs_nat in let scr : nat := _ in let T := f _ x scr in let other := _ in eq_refl : (match other with 0 => nat | _ => nat end : Type, other) = (T, 0). Definition reduceL := let x : cs nat := cs_nat in let scr : nat := _ in let T := f _ x scr in let other := _ in eq_refl : (T, other) = (match other with 0 => nat | _ => nat end : Type, 0). End Test3. unicoq-1.6-8.19/test-suite/ssr-bugs.v000066400000000000000000000006461461142772400173330ustar00rootroot00000000000000Require Import Ssreflect.ssreflect Ssreflect.ssrbool Ssreflect.ssrnat. Require Import Ssreflect.ssrfun Ssreflect.choice. Require Import Ssreflect.eqtype Ssreflect.seq. Variable T : choiceType. Implicit Types P Q : pred T. Set Munify Debug. Definition choose P x0 := if insub x0 : {? x | P x} is Some (exist x Px) then xchoose (ex_intro [eta P] x Px) else x0. Check choose. (* it should be : pred T -> T -> T *) unicoq-1.6-8.19/test-suite/timings.v000066400000000000000000000016241461142772400172350ustar00rootroot00000000000000(************************************************************************************************) (* Unicoq plugin. *) (* Copyright (c) 2015--2020 Beta Ziliani *) (* Matthieu Sozeau . *) (************************************************************************************************) Require Import Unicoq.Unicoq. Ltac pollute N := match N with | 0 => idtac | S ?N => let H := fresh in pose (H := N); pollute N end. Require Import ssreflect. Unset Unicoq Debug. Goal True. pollute 30. evar (x : nat). clear H9. evar (y : nat). Time (apply: ((fun e: H1 + H2 + H3 + x = H4 + H5 + H6 + y => I) eq_refl)). (* ~2 secs. it is exponential *) Unshelve. - exact: 0. - exact: 1. Qed. unicoq-1.6-8.19/theories/000077500000000000000000000000001461142772400151055ustar00rootroot00000000000000unicoq-1.6-8.19/theories/Unicoq.v000066400000000000000000000010661461142772400165350ustar00rootroot00000000000000(************************************************************************************************) (* Unicoq plugin. *) (* Copyright (c) 2015 Beta Ziliani *) (* Matthieu Sozeau . *) (************************************************************************************************) Declare ML Module "unicoq:coq-unicoq.plugin". Global Set Use Unicoq. unicoq-1.6-8.19/theories/dune000066400000000000000000000002131461142772400157570ustar00rootroot00000000000000(coqlib (name Unicoq) ; This determines the -R flag (public_name unicoq.Unicoq) (synopsis "Unicoq Plugin") (libraries unicoq.plugin))