cucumber-rails-1.4.3/0000755000004100000410000000000012657205273014475 5ustar www-datawww-datacucumber-rails-1.4.3/Rakefile0000644000004100000410000000267012657205273016147 0ustar www-datawww-data# encoding: utf-8 CUCUMBER_RAILS_VERSION = Gem::Specification.load(File.dirname(__FILE__) + '/cucumber-rails.gemspec').version.version require 'rubygems' require 'bundler' require 'bundler/setup' require 'appraisal' require 'rdoc' # https://github.com/lsegal/yard/commit/b861dcc2d7f7e1fbbed7b552ac2e4f7caf68bafa require 'rake/clean' require 'pathname' Bundler::GemHelper.install_tasks $:.unshift(File.dirname(__FILE__) + '/lib') Dir["#{File.dirname(__FILE__)}/dev_tasks/*.rake"].sort.each { |ext| load ext } CLEAN.include('doc', 'tmp') task :default => :test task :test => [:spec, :cucumber] namespace :test do desc "Run tests against all gemfiles" task :all do Rake::Task['appraisal'].invoke('test') end desc "Run tests against specified gemfile, e.g. rake test:gemfile[rails_3_0]" task :gemfile, :name do |task, args| unless args.name && Pathname.new("gemfiles/#{args.name}.gemfile").exist? raise ArgumentError "You must provide the name of an existing Appraisal gemfile, e.g. 'rake test:gemfile[rails_3_2]'" end Rake::Task["appraisal:#{args.name}"].invoke('test') end end namespace :gemfiles do desc "Install dependencies for all gemfiles" task :install do ENV['BUNDLE_GEMFILE'] = "Gemfile.appraisal" Rake::Task['appraisal:install'].invoke end task :clean do FileUtils.rm_rf("gemfiles/*") end desc "Rebuild generated gemfiles and install dependencies" task :rebuild => [:clean, :install] end cucumber-rails-1.4.3/Gemfile0000644000004100000410000000034612657205273015773 0ustar www-datawww-datasource "https://rubygems.org" # Test dependencies for Rails in the default test task, as test-generated # apps do not run bundler for speed reasons. Kept here so they can be # excluded from Appraisal-generated gemfiles. gemspec cucumber-rails-1.4.3/dev_tasks/0000755000004100000410000000000012657205273016460 5ustar www-datawww-datacucumber-rails-1.4.3/dev_tasks/yard.rake0000644000004100000410000000177212657205273020272 0ustar www-datawww-datarequire 'yard' require 'yard/rake/yardoc_task' SITE_DIR = File.expand_path(File.dirname(__FILE__) + '/../cucumber.github.com') API_DIR = File.join(SITE_DIR, 'api', 'cucumber-rails', 'ruby', 'yardoc') namespace :api do file :dir do unless File.directory?(SITE_DIR) raise "You need to git clone git@github.com:cucumber/cucumber.github.com.git #{SITE_DIR}" end sh('git pull origin master') mkdir_p API_DIR end template_path = File.expand_path(File.join(File.dirname(__FILE__), 'yard')) YARD::Templates::Engine.register_template_path(template_path) YARD::Rake::YardocTask.new(:yard) do |yard| dir = API_DIR mkdir_p dir yard.options = ["--out", dir] end task :yard => :dir task :release do Dir.chdir(SITE_DIR) do sh('git add .') sh("git commit -m 'Update API docs for cucumber-rails v#{cucumber-rails::VERSION}'") sh('git push origin master') end end desc "Generate YARD docs for Cucumber-Rails' API" task :doc => [:yard, :release] end cucumber-rails-1.4.3/dev_tasks/cucumber.rake0000644000004100000410000000006712657205273021134 0ustar www-datawww-datarequire 'cucumber/rake/task' Cucumber::Rake::Task.new cucumber-rails-1.4.3/dev_tasks/yard/0000755000004100000410000000000012657205273017417 5ustar www-datawww-datacucumber-rails-1.4.3/dev_tasks/yard/default/0000755000004100000410000000000012657205273021043 5ustar www-datawww-datacucumber-rails-1.4.3/dev_tasks/yard/default/layout/0000755000004100000410000000000012657205273022360 5ustar www-datawww-datacucumber-rails-1.4.3/dev_tasks/yard/default/layout/html/0000755000004100000410000000000012657205273023324 5ustar www-datawww-datacucumber-rails-1.4.3/dev_tasks/yard/default/layout/html/index.erb0000644000004100000410000000002012657205273025115 0ustar www-datawww-data<%= yieldall %> cucumber-rails-1.4.3/dev_tasks/yard/default/layout/html/bubble_32x32.png0000644000004100000410000000306512657205273026132 0ustar www-datawww-dataPNG  IHDR sBIT|d pHYs;;oqtEXtSoftwarewww.inkscape.org<IDATHMl\W˞IB8J:nTBC ]PR"B.% Xf3,XP5ϖTAq ʗ_'vCgyo޻7uc{"ot=wywh QU/hc"m:yR)'0k/_hk-]ڱS %LhGŬęlD7a 'r h#ʌGn&7Ӝ~|̞=SH*ു]Pߎ@2b*,GRgc2c~/.ghӯrtbj:Ռ*NLm%\Dt(Xn3ͻNh~3S)/}3_-%p9]gfjARI뗩4ZؐUW@jֆ3gf:7o6OO *W^择>]OH 5Qfg"B-KE8YGye{_R 5xz=$X0ZQeBC",/{Vm^{fSo#Lw RRno((4wi }X'/V(oF^0Z&F;q)/OǷOfկqͿwQE(ڼ LyBm ~nbtq[Gl}VV~3A#<j/_(?6\1ˇ/p;gz;^*ߕPC/_?,pSpnbx\*WkUyV+ژ|nvg(SmNhZ /_xP-=871KF5pw,[c_ U(Y ;|aas쥒9IENDB`cucumber-rails-1.4.3/dev_tasks/yard/default/layout/html/footer.erb0000644000004100000410000000033412657205273025314 0ustar www-datawww-data cucumber-rails-1.4.3/dev_tasks/yard/default/layout/html/logo.erb0000644000004100000410000000016212657205273024755 0ustar www-datawww-data

Cucumber-Rails <%= CUCUMBER_RAILS_VERSION %>

cucumber-rails-1.4.3/dev_tasks/yard/default/layout/html/layout.erb0000644000004100000410000000122012657205273025326 0ustar www-datawww-data <%= erb(:headers) %>
<%= yieldall %>
<%= erb(:footer) %> cucumber-rails-1.4.3/dev_tasks/yard/default/layout/html/setup.rb0000644000004100000410000000021112657205273025003 0ustar www-datawww-datadef init super options[:serializer].serialize('/images/bubble_32x32.png', IO.read(File.dirname(__FILE__) + '/bubble_32x32.png')) end cucumber-rails-1.4.3/dev_tasks/rspec.rake0000644000004100000410000000007212657205273020437 0ustar www-datawww-datarequire 'rspec/core/rake_task' RSpec::Core::RakeTask.new cucumber-rails-1.4.3/features/0000755000004100000410000000000012657205273016313 5ustar www-datawww-datacucumber-rails-1.4.3/features/allow_rescue.feature0000644000004100000410000000314512657205273022357 0ustar www-datawww-dataFeature: Allow Cucumber to rescue exceptions Background: A controller that raises an exception Given I have created a new Rails app "rails-3-app" and installed cucumber-rails And I write to "app/controllers/posts_controller.rb" with: """ class PostsController < ApplicationController def index raise "There is an error in index" end end """ And I write to "config/routes.rb" with: """ Rails3App::Application.routes.draw do resources :posts end """ Scenario: Allow rescue Given I write to "features/posts.feature" with: """ Feature: posts @allow-rescue Scenario: See posts When I look at the posts """ And I write to "features/step_definitions/posts_steps.rb" with: """ When /^I look at the posts$/ do visit '/posts' end """ And I run `bundle exec rake db:migrate` And I run `bundle exec cucumber` Then the feature run should pass with: """ 1 scenario (1 passed) 1 step (1 passed) """ Scenario: Don't allow rescue Given I write to "features/posts.feature" with: """ Feature: posts Scenario: See them When I look at the posts """ And I write to "features/step_definitions/posts_steps.rb" with: """ When /^I look at the posts$/ do visit '/posts' end """ And I run `bundle exec rake db:migrate` And I run `bundle exec cucumber` Then it should fail with: """ 1 scenario (1 failed) 1 step (1 failed) """ cucumber-rails-1.4.3/features/rest_api.feature0000644000004100000410000000244012657205273021476 0ustar www-datawww-dataFeature: REST API Scenario: Compare JSON Given I have created a new Rails app "rails-3-app" and installed cucumber-rails And I write to "app/controllers/posts_controller.rb" with: """ class PostsController < ApplicationController def index render :json => {'hello' => 'world'}.to_json end end """ And I write to "config/routes.rb" with: """ Rails3App::Application.routes.draw do resources :posts end """ And I write to "features/posts.feature" with: """ Feature: posts Scenario: See them When the client requests GET /posts Then the response should be JSON: \"\"\" { "hello": "world" } \"\"\" """ And I write to "features/step_definitions/rest_steps.rb" with: """ When /^the client requests GET (.*)$/ do |path| get(path) end Then /^the response should be JSON:$/ do |json| JSON.parse(last_response.body).should == JSON.parse(json) end """ And I run `bundle exec rake db:migrate` And I run `bundle exec rake cucumber` Then the feature run should pass with: """ 1 scenario (1 passed) 2 steps (2 passed) """ cucumber-rails-1.4.3/features/step_definitions/0000755000004100000410000000000012657205273021661 5ustar www-datawww-datacucumber-rails-1.4.3/features/step_definitions/cucumber_rails_steps.rb0000644000004100000410000000576012657205273026433 0ustar www-datawww-datamodule CucumberRailsHelper def rails_new(options = {}) options[:name] ||= 'test_app' command = run "bundle exec rails new #{options[:name]} --skip-test-unit --skip-spring #{options[:args]}" assert_partial_output('README', all_output) assert_success(true) cd options[:name] set_environment_variable 'BUNDLE_GEMFILE', 'Gemfile' end def install_cucumber_rails(*options) if options.include?(:not_in_test_group) gem 'cucumber-rails', path: "#{File.expand_path('.')}" else gem 'cucumber-rails' , group: :test, require: false, path: "#{File.expand_path('.')}" end gem 'capybara', group: :test gem 'rspec-rails', group: :test gem 'database_cleaner', group: :test unless options.include?(:no_database_cleaner) gem 'factory_girl', group: :test unless options.include?(:no_factory_girl) gem 'selenium-webdriver', group: :test run_simple 'bundle exec rails generate cucumber:install' end def gem(name, options) line = %{gem "#{name}", #{options.inspect}\n} append_to_file('Gemfile', line) end def prepare_aruba_report if(ENV['ARUBA_REPORT_DIR']) @aruba_report_start = Time.new sleep(1) end end def fixture(path) File.expand_path(File.dirname(__FILE__) + "./../support/fixtures/#{path}") end end World(CucumberRailsHelper) Given /^I have created a new Rails app and installed cucumber\-rails, accidentally outside of the test group in my Gemfile$/ do rails_new install_cucumber_rails :not_in_test_group create_web_steps prepare_aruba_report end Given /^I have created a new Rails app "([^"]*)" and installed cucumber\-rails$/ do |app_name| rails_new name: app_name install_cucumber_rails create_web_steps prepare_aruba_report end Given /^I have created a new Rails app and installed cucumber\-rails$/ do rails_new install_cucumber_rails create_web_steps prepare_aruba_report end Given /^I have created a new Rails app with no database and installed cucumber-rails$/ do rails_new args: '--skip-active-record' install_cucumber_rails :no_database_cleaner, :no_factory_girl overwrite_file('features/support/env.rb', "require 'cucumber/rails'\n") create_web_steps end Given /^I have created a new Rails app "(.*?)" with no database and installed cucumber\-rails$/ do |app_name| rails_new name: app_name, args: '--skip-active-record' install_cucumber_rails :no_database_cleaner, :no_factory_girl overwrite_file('features/support/env.rb', "require 'cucumber/rails'\n") create_web_steps end Given /^I have a "([^"]*)" ActiveRecord model object$/ do |name| run_simple("bundle exec rails g model #{name}") run_simple('bundle exec rake db:migrate RAILS_ENV=test') end When /^I run the cukes$/ do run_simple('bundle exec cucumber') end # Copied from Aruba Then /^the feature run should pass with:$/ do |string| step 'the output should not contain " failed)"' step 'the output should not contain " undefined)"' step 'the exit status should be 0' step 'the output should contain:', string end cucumber-rails-1.4.3/features/rerun_profile.feature0000644000004100000410000000202512657205273022542 0ustar www-datawww-dataFeature: Rerun profile In order to concentrate on failing features As a Rails developer working with Cucumber I want to rerun only failing features Scenario: Rerun Given I have created a new Rails app and installed cucumber-rails And a file named "rerun.txt" with: """ features/rerun_test.feature:2 """ And a file named "features/rerun_test.feature" with: """ Feature: Rerun test Scenario: failing before Given fixed now Scenario: always passing Given passing """ And a file named "features/step_definitions/rerun_steps.rb" with: """ Given /fixed now/ do puts "All fixed now" end Given /passing/ do puts "I've always been passing" end """ When I successfully run `bundle exec cucumber -p rerun` Then the feature run should pass with: """ 1 scenario (1 passed) 1 step (1 passed) """ And the file "rerun.txt" should not contain "features/rerun_test.feature:2" cucumber-rails-1.4.3/features/emulate_javascript.feature0000644000004100000410000000576312657205273023565 0ustar www-datawww-dataFeature: Emulate Javascript Scenario: See a widget Given I have created a new Rails app and installed cucumber-rails And I successfully run `rails generate scaffold widget name:string` And I write to "features/f.feature" with: """ @javascript Feature: Widget inventory Scenario: Delete a widget Given there is a widget named "wrench" When I go to the widgets page Then I should see "wrench" """ And I write to "features/step_definitions/s.rb" with: """ Given /^there is a widget named "([^"]*)"$/ do |name| FactoryGirl.create(:widget, :name => name) end """ And I write to "features/support/factories.rb" with: """ FactoryGirl.define do factory :widget do name 'testwidget' end end """ When I run `bundle exec rake db:migrate` And I run `bundle exec rake cucumber` Then the feature run should pass with: """ 1 scenario (1 passed) 3 steps (3 passed) """ Scenario: Pass on the CSRF token Given I have created a new Rails app and installed cucumber-rails And I successfully run `rails generate scaffold widget name:string` And I successfully run `sed -i -e 's/forgery_protection *= false/forgery_protection = true/' config/environments/test.rb` And I successfully run `rails generate controller session establish` And I write to "app/controllers/session_controller.rb" with: """ class SessionController < ApplicationController def establish session[:verified] = true end end """ And I write to "app/controllers/application_controller.rb" with: """ class ApplicationController < ActionController::Base protect_from_forgery before_filter :except => :establish do render :text => "denied", :status => :forbidden and return false unless session[:verified] end end """ And I write to "features/f.feature" with: """ Feature: Widget inventory Scenario: Delete a widget Given there is a widget named "wrench" When I go to the session establish page And I go to the widgets page Then I should see "wrench" When I follow "Destroy" Then I should not see "denied" And I should be on the widgets page And I should not see "wrench" """ And I write to "features/step_definitions/s.rb" with: """ Given /^there is a widget named "([^"]*)"$/ do |name| FactoryGirl.create(:widget, :name => name) end """ And I write to "features/support/factories.rb" with: """ FactoryGirl.define do factory :widget do name 'testwidget' end end """ When I run `bundle exec rake db:migrate` And I run `bundle exec rake cucumber` Then the feature run should pass with: """ 1 scenario (1 passed) 8 steps (8 passed) """ cucumber-rails-1.4.3/features/choose_javascript_database_strategy.feature0000644000004100000410000001131112657205273027141 0ustar www-datawww-dataFeature: Choose javascript database strategy When running a scenario with the @javascript tag, Capybara will fire up a web server in the same process in a separate thread to your cukes. By default, this means ActiveRecord will give it a separate database connection, which in turn means data you put into your database from Cucumber step definitions (e.g. using FactoryGirl) won't be visible to the web server until the database transaction is committed. So if you use a transaction strategy for cleaning up your database at the end of a scenario, it won't work for javascript scenarios by default. There are two ways around this. One is to switch to a truncation strategy for javascript scenarios. This is slower, but more reliable. The alternative is to patch ActiveRecord to share a single database connection between threads. This means you still get the speed benefits of using a transaction to roll back your database, but you run the risk of the two threads stomping on one another as they talk to the database. Right now, the default behavior is to use truncation, but you can override this by telling cucumber-rails which strategy to use for javascript scenarios. The deletion strategy can be quicker for situations where truncation causes locks which has been reported by some Oracle users. Background: Given I have created a new Rails app and installed cucumber-rails And I have a "Widget" ActiveRecord model object Scenario: Set the strategy to truncation and run a javascript scenario. Given I append to "features/env.rb" with: """ DatabaseCleaner.strategy = :transaction Cucumber::Rails::Database.javascript_strategy = :truncation """ And I write to "features/widgets.feature" with: """ Feature: Background: Given I have created 2 widgets @javascript Scenario: Then the DatabaseCleaner strategy should be truncation When I create 3 widgets Then I should have 5 widgets @javascript Scenario: Then the DatabaseCleaner strategy should be truncation And I should have 2 widgets Scenario: Then the DatabaseCleaner strategy should be transaction And I should have 2 widgets """ And I write to "features/step_definitions/widget_steps.rb" with: """ Given /created? (\d) widgets/ do |num| num.to_i.times { Widget.create! } end Then /should have (\d) widgets/ do |num| Widget.count.should == num.to_i end Then /^the DatabaseCleaner strategy should be (\w+)$/ do |strategy_name| DatabaseCleaner.connections.first.strategy.to_s.should =~ /#{strategy_name}/i end """ When I run the cukes Then the feature run should pass with: """ 3 scenarios (3 passed) 10 steps (10 passed) """ Scenario: Set the strategy to deletion and run a javascript scenario. Given I append to "features/env.rb" with: """ Cucumber::Rails::Database.javascript_strategy = :deletion """ And I write to "features/widgets.feature" with: """ @javascript Feature: Background: Given I have created 2 widgets Scenario: When I create 3 widgets Then I should have 5 widgets Scenario: Then I should have 2 widgets """ And I write to "features/step_definitions/widget_steps.rb" with: """ Given /created? (\d) widgets/ do |num| num.to_i.times { Widget.create! } end Then /should have (\d) widgets/ do |num| Widget.count.should == num.to_i end """ When I run the cukes Then the feature run should pass with: """ 2 scenarios (2 passed) 5 steps (5 passed) """ Scenario: Set the strategy to truncation with an except option and run a javascript scenario. Given I append to "features/env.rb" with: """ Cucumber::Rails::Database.javascript_strategy = :truncation, {:except=>%w[widgets]} """ And I write to "features/widgets.feature" with: """ @javascript Feature: Scenario: When I create 3 widgets Then I should have 3 widgets Scenario: Then I should have 3 widgets """ And I write to "features/step_definitions/widget_steps.rb" with: """ Given /created? (\d) widgets/ do |num| num.to_i.times { Widget.create! } end Then /should have (\d) widgets/ do |num| Widget.count.should == num.to_i end """ When I run the cukes Then the feature run should pass with: """ 2 scenarios (2 passed) 3 steps (3 passed) """ cucumber-rails-1.4.3/features/raising_errors.feature0000644000004100000410000000071412657205273022722 0ustar www-datawww-dataFeature: Raise Errors Scenario: Raise error for undefined route Given I have created a new Rails app "test-app" with no database and installed cucumber-rails And I write to "features/tests.feature" with: """ Feature: Tests Scenario: Tests When I go to the products page """ And I run `bundle exec cucumber` Then it should fail with: """ 1 scenario (1 failed) 1 step (1 failed) """ cucumber-rails-1.4.3/features/no_database.feature0000644000004100000410000000357612657205273022143 0ustar www-datawww-dataFeature: No Database Allow Cucumber to work with a Rails app without a database @fails-on-travis Scenario: No ActiveRecord and DatabaseCleaner Given I have created a new Rails app with no database and installed cucumber-rails # Turn off ActiveRecord And I write to "config/application.rb" with: """ require File.expand_path('../boot', __FILE__) require 'action_controller/railtie' require 'action_mailer/railtie' require 'rails/test_unit/railtie' Bundler.require(:default, Rails.env) if defined?(Bundler) module TestApp class Application < Rails::Application config.encoding = "utf-8" config.filter_parameters += [:password] end end """ And I overwrite "features/support/env.rb" with: """ require 'cucumber/rails' """ # Remove DatabaseCleaner and SQLite And I write to "Gemfile" with: """ source 'http://rubygems.org' gem 'rails' gem "cucumber-rails", :group => :test, :path => "../../.." gem "capybara", :group => :test gem "rspec-rails", :group => :test """ And I write to "app/controllers/posts_controller.rb" with: """ class PostsController < ApplicationController def index raise "There is an error in index" end end """ And I write to "config/routes.rb" with: """ TestApp::Application.routes.draw do resources :posts end """ And I write to "features/posts.feature" with: """ Feature: posts Scenario: See them When I do it """ And I write to "features/step_definitions/posts_steps.rb" with: """ When /^I do it$/ do visit '/posts' end """ And I run `bundle exec rake cucumber` Then it should fail with: """ There is an error in index """ cucumber-rails-1.4.3/features/annotations.feature0000644000004100000410000000122312657205273022223 0ustar www-datawww-data@requires-rails-version-42 Feature: Annotations I order to track my development progress As a developer I should be able to list annotations in my features Background: Given I have created a new Rails app "test-app" with no database and installed cucumber-rails And I write to "features/tests.feature" with: """ Feature: Tests Scenario: Tests # TODO: When I go to the products page """ Scenario: See annotations in .feature file When I run `bundle exec rake notes` Then it should pass with: """ features/tests.feature: * [ 3] [TODO] When I go to the products page """ cucumber-rails-1.4.3/features/capybara_javascript_drivers.feature0000644000004100000410000000455312657205273025445 0ustar www-datawww-data@focus Feature: Capybara Javascript Drivers Background: A simple calendar app Given I have created a new Rails app and installed cucumber-rails And I successfully run `bundle exec rails g scaffold appointment name:string when:datetime` And I write to "features/step_definitions/date_time_steps.rb" with: """ When /^(?:|I )select "([^"]+)" as the "([^"]+)" time$/ do |time, selector| select_time(time, :from => selector) end When /^(?:|I )select "([^"]+)" as the "([^"]+)" date$/ do |date, selector| select_date(date, :from => selector) end When /^(?:|I )select "([^"]+)" as the "([^"]+)" date and time$/ do |datetime, selector| select_datetime(datetime, :from => selector) end """ Scenario: Use a particular driver Given I write to "features/create_appointment.feature" with: """ @javascript Feature: Create appointments Scenario: Constitution on May 17 Given I am on the new appointment page And I fill in "Norway's constitution" for "Name" And I select "2015-02-20 15:10:00 UTC" as the "When" date and time And I press "Create Appointment" Then I should see "Norway's constitution" And I should see "2015-02-20 15:10:00 UTC" """ When I run `bundle exec rake db:migrate` And I run `bundle exec rake cucumber` Then the feature run should pass with: """ 1 scenario (1 passed) 6 steps (6 passed) """ Scenario: Mixed DB access Given I write to "features/create_appointment.feature" with: """ @javascript Feature: Create appointments Scenario: Constitution on May 17 Given a random appointment And I am viewing random appointment Then I should see "Random appointment" """ And I write to "features/step_definitions/custom_steps.rb" with: """ Given /^a random appointment$/ do @appointment = Appointment.create!(:name => 'Random appointment', :when => DateTime.now) end Given /^I am viewing random appointment$/ do visit appointment_path(@appointment) end """ When I run `bundle exec rake db:migrate` And I run `bundle exec rake cucumber` Then the feature run should pass with: """ 1 scenario (1 passed) 3 steps (3 passed) """ cucumber-rails-1.4.3/features/database_cleaner.feature0000644000004100000410000000242112657205273023124 0ustar www-datawww-dataFeature: DatabaseCleaner Scenario: Create records in background Given I have created a new Rails app and installed cucumber-rails And I write to "features/widgets.feature" with: """ Feature: Create widgets Background: some widdgets Given I have 2 widgets Scenario: Add 3 When I create 3 more widgets Then I should have 5 widgets Scenario: Add 7 When I create 7 more widgets Then I should have 9 widgets """ And I successfully run `rails generate model widget name:string` And I write to "features/step_definitions/widget_steps.rb" with: """ Given /^I have (\d+) widgets$/ do |n| n.to_i.times do |i| Widget.create! :name => "Widget #{Widget.count + i}" end end When /^I create (\d+) more widgets$/ do |n| n.to_i.times do |i| Widget.create! :name => "Widget #{Widget.count + i}" end end Then /^I should have (\d+) widgets$/ do |n| Widget.count.should == n.to_i end """ And I run `bundle exec rake db:migrate` And I run `bundle exec rake cucumber` Then the feature run should pass with: """ 2 scenarios (2 passed) 6 steps (6 passed) """ cucumber-rails-1.4.3/features/disable_automatic_database_cleaning.feature0000644000004100000410000000347612657205273027037 0ustar www-datawww-dataFeature: Disable automatic database cleaning By default, a set of Before/After hooks are installed to invoke database_cleaner on every scenario except those tagged "@no-database-cleaner". Sometimes when a user is switching between cleaning strategies, this can initiate an undesired database transaction. To avoid the need for users making frequent strategy switches to apply this tag, a configuration option is provided so that the user can control the invocation of database_cleaner explicitly. Scenario: Disabling automatic cleaning Given I have created a new Rails app and installed cucumber-rails And I append to "features/env.rb" with: """ Cucumber::Rails::Database.autorun_database_cleaner = false """ And I write to "features/widgets.feature" with: """ Feature: Create widgets Scenario: Create 3 widgets When I create 3 widgets Then I should have 3 widgets Scenario: Create 5 widgets When I create 5 widgets Then I should have 8 widgets """ And I successfully run `rails generate model widget name:string` And I write to "features/step_definitions/widget_steps.rb" with: """ Given /^I have (\d+) widgets$/ do |n| n.to_i.times do |i| Widget.create! :name => "Widget #{Widget.count + i}" end end When /^I create (\d+) widgets$/ do |n| n.to_i.times do |i| Widget.create! :name => "Widget #{Widget.count + i}" end end Then /^I should have (\d+) widgets$/ do |n| Widget.count.should == n.to_i end """ And I run `bundle exec rake db:migrate` And I run `bundle exec rake cucumber` Then the feature run should pass with: """ 2 scenarios (2 passed) 4 steps (4 passed) """ cucumber-rails-1.4.3/features/install_cucumber_rails.feature0000644000004100000410000000120412657205273024412 0ustar www-datawww-dataFeature: Rails In order to take over the world Cucumber-Rails should work on major versions of Rails 3 or 4 and Ruby, with Capybara, Spork and DatabaseCleaner Scenario: Install Cucumber-Rails Given I have created a new Rails app and installed cucumber-rails Then the following files should exist: | config/cucumber.yml | | script/cucumber | | features/support/env.rb | | features/step_definitions/.gitkeep | | lib/tasks/cucumber.rake | And the file "features/support/env.rb" should contain "require 'cucumber/rails'" cucumber-rails-1.4.3/features/support/0000755000004100000410000000000012657205273020027 5ustar www-datawww-datacucumber-rails-1.4.3/features/support/version_hooks.rb0000644000004100000410000000044712657205273023251 0ustar www-datawww-datamodule VersionHooksHelper def rails_version @rails_version ||= `bundle exec rails --version`.match(/[\d.]+$/).to_s end end Before '@requires-rails-version-42' do extend VersionHooksHelper if Gem::Version.new(rails_version) < Gem::Version.new('4.2') skip_this_scenario end end cucumber-rails-1.4.3/features/support/aruba.rb0000644000004100000410000000007412657205273021447 0ustar www-datawww-dataAruba.configure do |config| config.exit_timeout = 120 end cucumber-rails-1.4.3/features/support/fixtures/0000755000004100000410000000000012657205273021700 5ustar www-datawww-datacucumber-rails-1.4.3/features/support/fixtures/bundler-1.1.rc.gem0000644000004100000410000060100012657205273024722 0ustar www-datawww-datadata.tar.gz0000644000000000000000000057017200000000000013333 0ustar00wheelwheel00000000000000Nzf(z nR):YÊ+[%9IBD JVlr"Ȓ8p'nf?;.ݗkwʠuH0*t&̢d[&O(@vt^oyG'/c=2=>vlNEvvw66b 1(w:e<~.cE0fE I6w?xE3(ρf2^ʆA ,KYy:> Dc)pK]cY>&yAg@J/X1ZO$@3MQw,XL3؍0e|.bn~ϐEWFtR8d 7ݭbph`-;B3Pٓ}ƶxP: Z~<^΀'^SBқrp`G}1YqA' FBtL9AGp^tǼ QHk92M3e¿>o\Hef$: `ZI =LiJA[S%3s"EH]pTHr:tԛ#&I˦@AhJz=j&DՋ>}f@V&ovpv`ٻo,UFD%ఊm2M-i=h6<0E:i:lQctu GN_nρݿOFd4ep0wa[ Ԑ»8ۏ>:#z B,q%&p;F?qu(bءC\;(ədj?,?JSI&sڰy벴kTa#7`@Dof.ȑ x7qw_@5)13@'|%Cx8f7_y|˸'q8W'%2 A`9aj?LSW8gF}*qWnnq߾ylIkdne]ZW-f8EHvoI@a{Ib?Hm*sTF^C@=6r8:^#p 1HI I#'ݿ<΃_wVS:Ө;7 h2I)8Wx4ϡ'&%@A2'RXF5-»yrY<^f6V؜7 [.E@azq%bhZ.LGѼf/q*vrjdӐ2 sext(G)0M&ၱ:7(ei"LȀf~^>Ң,hB_!ə͙ZҮ58qQքSD#l#n(Xݸ9/RhrcE&`eA_mR9̯HYm&P3a gMt9y o:́/𤆤)hG?SOݓc2һq~eѷo^ΎOO?:'q<[J@zkvZۿ梮DD0x<}o,=]jOEux2dIhtEnZb41 t2*&<H$mgtѼn&*o bօ@힓t&<bI @1"ӰI Gk$ ܱؑSg?f$}u3lq8 ɣHAk7yDx6&oc5)5{HHwwyzو  6(b 4j(&tFSbMDif5ܒe f#fIցsX*ckH3bt|Πd=z 0y|]2d(Lt@Db#E2ƅ/m{Eq(>l,NO +,JX=~2U5&}E7D}RPU4(zjy|k*#$Ԁ>Iﰷx̣ 1@2+>06$]j(@C*y35EdOF3*iﻄU>ȍ K}-!<v2]#6ݕH0Zf0:T#>V͊hD]~G{XFeM c&"qԇ/ `F@]ӏb0_>rV%eh9=͸+2o_Wg X3g&>*~AtA8*sM/t7 ,Jݗ Z{s^9ξ}.&f! [<(Oԗ:f:ݱņj(X~YhtPr}M2W;t XΉNNG#NY2,Pawplq&b75yb:cve4;hQ g~2ټ<I`FN#֢A<`*i;U &Paڍa"s%ޑ4%p*vݖw~V͏ B,m'7YJ8.DOzBPWRRr~rL,IB͒_Ƴ #ϑj} hU6!QLsH-L~8R:_PNYf0{9b6]G6t.$Њ'A=NSXVؐ[6p@wsUx,,BkNS]X}4$7GUi4lSBhK!wZ]Bs4} ܥv@a^H??>9biHNܱy `_i_.N]~OAg9>p,L}H2В"QD(ȳM+3dT8wfi5\-`z$Bv)2=iBD8ܖ+꯵-וTNaٖ6yH2J`It]ZxB|V_r/SJҩHCӄgO%)Uq )n7%q2q_nQt)."8)-J ៃnMeҁPqR.*kPuoa ҧڬϼGNW عz )psP蚄[cO72ݪ؁bXh% {G|ђA[:V'z[Q3 [ݿFKGh$H%ٴ &^Я4jI-.M"cGg"PPLgb`[ A袁L*q0,8f9w 2^+Jx&GMBGv71 32950R\_ݟЪW&sDjzm aYH%Y "bC2ۧd vz~mѓ;C9NVt $8@\}^ f苫S^sHW [}KD{̨,` s&&GɈHN'E_FB$R/pi Ft76?iBŀc`6mG5* < VykyGcCLw-ZIPˇΗ 5$sUqpBpӉՀ˴:ݒl\ U 3  e#l^{ORa9)vyb[dkVW+hd^`y#:-WKԅ2O1PhStnHlvp) 'xUHcKf0[ eto^@\L|C1{XDqC (?2>X no0 %7\&KM1͸"m Nެ{ oHڅu:4 R ,iIHËI [Ƹt 2 F!NaG+{ZI%083? ".BQX~"T/xpU\E'9V̭2+21E2s\@?Up 2H6կMzKjpλ/]=dZlp*ba σQ QV]7a.M ]?Wap]LF! =-^l˫w*@%$fi*#(18TK3C]s(υ{U pBՏ4tX%rH 2Pu464PkCY1vo:8?L1Ԛi3BٕcږϺ*c]8vDb k7S'!qrrnY ,)tgYVZf=5@| (m8y}#2nlxv倣,uRqq;Lj{m"0W;L[HEV2&PQPpt\g8Vh1U.XX.a+hG ל&viђ2o8̬s M8+¢o8NA'v=J8ؖ}վKnRXfvt4Td\U%e4&7r/В˄L!H _ Axʟ7 x|y͒.D@tOw*{Kz|B+00L(a-7d;aG1$%7zAaFy>X?HNPT<)Wm2lfK~Ua."O 9q^eKV[mjAE) 47I"s>5 ɚ zIEJSڹbE8ΊSEy* 08Ӕ*~^0 ~Jɹt0vq0Y!Fd i9[A'!L&s(DF9AXUA3}k W?_c̚Q99ԍIpI* 0[쓌ȁ*k !b FKc oob5}Bn׏}sowWD ,_ ,Q;|(FM8)x6Ʃ0^m#mݩ2U1mܝJ;Ȑ#65ߨU.-勪:01=;L@~z}׼Ǚ\qPc-,C̚Ua@ СJ:91 4vFOMyUD"2I22|m Ǘ`=!?NKJd>S k9࠳ju&MF^b5/|F8Fs4}`Ð3o R_`chM~;M@4t,#s 5iYIRC<L-OJ(7B(vK"MOR _<%j_H;h~_!ۅ9OH<)k6MYj?scJښl-aBeH, ;֭g+.[*۠2ޘ=yEViDZ9j֌V̷KtD:3V H,bX$;12wžz6C6۰ ks7mfk]tfR4jf^nt}ٱb<)زE>]nG xy97Ou:LӢ0*yih=.Yx }[3"١RhV]r7@CQ83g>Yel^MIz5P@qM.G{F=T|>DKv Z9ԟRJ?\br"sn鞻bzu>W' 췥ބGBM0z-"gdk^@K,dٛo<}}ay]nVManJ"r e`x"ȁX/ۑH K)AB虄FO &4^p&QhNdL 25wj@lBG};bN4]4W&倃UyY4j'p\u˓}o6Ε ˚ Vr*- ڡi 5@ k*hRFmNIE,Xس fr3I')ئLU5(P6k*mLiIs9y[4n˕عkf43ۋ@T[)",E5-+ZL-mW_^\9R:6Ǘ^"V)&]UK9|Wišx(~M {St&"iTV=(>%}`0E,anC-/ x:J:Gl/ڌiY7V(*^G1JZcD@!cRkigUtoz2լu huJ^EA]vYI&]2[deR (.0AeG+Ux)Cj1"nǍVJ.r:;jn?3#m$!W"GT613 Hgd7JqZb D+HMZ * 6Ufi07QrZ+b6H&X3!m,k0Bpmz:d>'ʤ{z^'u"Ov6Tei{֖o,a:k X?t:̒&zs K\++@6,6< ٬us|8̯H?:X^09 ?ҽ&bF\ܤx(=ȲA`i&d`<Pys Ѩa2SbdjǜR4'{h LnVϔT36t2O"J`fO" dlƒWoXc~>ߧS`owO{vS|Q O׼ˋ/4c%,t)$ N݉yduK^㎰(yq8Ţ`|4!2׶ג_%3 'Ht;q'=4*NI P܍yxlEFfr ]ݾ`NEbSь+|wjcEi?VMtq“Y\.a.U,aT|MYSy`)詽m9%P>\qc{;+k(5{Y!in)g߿dw;ep<9$Q3r"$&d%ɭ3TأS[&Y"&YJMȦd2x@U N~2e Y>UI.͋R-{ s0>8%Xr9CnW #A: QpjV#J8%YIo99~z73~Y{{|^#%GB=L\5"Tp8;̮ҍ| bjRȻucEp yX뵩ٙPmĭ0 -sCc ʨ qqCj`t\tW)'p0_H\Z4hQL6t53U&)dȈҰ3%IHٖ\oLZKHKt!QmtɦĀ옚.,d#RSf%o rQK#$9|ɦtڅ!TKPA;BId8<"  LebZ?1Rqx@2g.~ N~ ճ|}vt~/_=kǯyvE-{u z ` ^8tu|o<:{|=v:= ^]?}srx~sg0ˣW! CG×Ó g/;=yv=89>䈇E==9<^Gz9 5#{zq|j髋3چU]?ósܐg=n'8Nݫ#:N^oΏ\@_}9{?>w>{yw=,vm.2l*w_:egr=]z1rqqɜ'c,48h])P Et4;bźq6)1zt?H<\1U:P5s%D`ypH 圆\ IEޤ!w@\ Pq)SZER%=Vݍ ^љ>֨ Q9Jw!t%?sRb8[m~ 9t_?1T憌RM1&˫&d7 oUrQ)`  $1k4d΁69N'LlcpdXc\k'C~ɝL*2O&2T=n",MdoQSރ2w$„!1G+<.ae[m+oj4.# TU_H(pރl/:dE\ Ÿm.e2.4͆~GaFnOc6*0476F8ȣqLZBxM)|щ|DM(hcnS97P@b8bG#~\0SZ]*;\͗Ai-b;> s5[3:s@[Ǐn=Tn@WDFM495}m텟ޫ76fO([)\ykf5N7Dl#F7L{7bl7qgA>. hwEHcR,T8VgQWToK_REr%s.56pVm(yWB67?T0T06F iWp2fNaRNF=(u4$fV)&/u!s?}{< wwB{M>JKYrM>5+k+lW?wb"X8.wa'5H?=πw6)vg.r6yW4jݠ`=]MOr™_oZ TmpW w*@4A0Xg, C5S YR#V+_?=MbeWII0$x=r<"@Y?DWFBV'" M{6?ࠟy((oo¨ m@vI뱓lQ\Ld9:x F7aڨ ;uƙ;/o{0 w;jg/N2܉ }cgsE/:Ƀ"?M. 2<Ƥ,4"K%%ݿޚY x5 zM>2@ ] 0 1'[dʐz 뢠\TI2bk>5ZY]@ƿ!aJyc Ř|& 3)7J0$w9L 6H(/[D_($2- `:I~oK,%>5t935@*Pew.CTVj,E?__q{X/l`/&=2+O@)2$ѡ@. tvt}ezÊ\i] ~KuŐxɖvۑ=nAnm}g*2#mvwF(olVdabǫ [ȭr|PLu$]vLE2! bNpF# X3kgzb8$>/}!@.E-bK]G=UnU U8?q!L3!2[|j4PF{&J9{$*8s+BۻZFE]\6Ehभmv䱷\T&%Z{G!lK7jwvwݽ?gs1 ~7qM+eS Nţsӌ'0 Ili)j&%1|\̭x~`n\p 3&Lh[Pbx=9 5И_{\Nl$q(H}&eU&VlOr31[,Վяу5[.#Bc!nr]>yk6)A&X΁="v T-otH\ݐ?;{{vJ?YuWC?R"L|ci㭍j JuL8A"ɕF>@$3(sdWқ^^ˣnhf\:z$pIqp);^c E/Y"L$0:M^B jU| dv+Pd&eBZU5Ml'F̋9yf+|"Ą:MƨfishPD*0"PsKa [#Ъʳ<G7{K- >ѨT9%%߿w3xiȖKwTؕ cpv crLA_}łb5-yw~ÙL٤EVbkutK :-j%e/i]pyiJ\2ڠo4Z ~1J}F 8 ai"3Hn%U ^C*lp$A@1/W_u$n*0@8FߴVջM|ޤ-1iV CGź1o9k^L,-Ftɟ8~ux;z=;ף!H#D)λb*LYbd~o)ZN{V~;$iEY>G  qk} bnPW5|9BbcowtQnE-_ +'a商W{ECՕ̢e@lSoB4H&Mj'wr[:v~_w'R!5hٱm{G1\_be9~3SLb}ϤlĪۥe%JPJpBn~sj(([jE*j[&jVd mEWG*AϝgQٶ˄|Ƹi*8/@2%ӱ1kQmV|*;db ~)-7_wݝ/ҋing][A9k\5 gW֞^w͟I!x$mWw[WLUe͏)4zeBoCWN8vlxn/6.S(/Q5Giq$󏣟&{󳣣oϟ}A>چޜ\9|4a# !R mbf| SI ] QQd.@Zы2Y>kE4pD<1oË_5{G Az%d FtI7]8ӃQc' ?GEe?ݰ=32ѡ J 5}- E=)5 ){Vd5+g[ Rnh_n:A-(z na~_ٺf/@ .G[xHIіi%Z4$o*6Isc06/i8kBa:[Lc =<w΀ TEդرX r9E:3Y)MWt3&MqPN7.>N^=_Jg־x7d9 r;pM(]#=޵7cs|? D5op@:Hc~jBZe=6mLIȇBGjlr?4IB%i{Dʾo)[r P֫"XTF†Pu5I8pM;XYaWIc: ttTDNF^u_]H|1e]wuyVV_C:7YBIU-sS9Lx l#ڽ۝wyGa)2?8I2/qz/lb(?A04uRhV[ΛuݕntRºwj;)^|`  ptȏ&R0W9E=UC<:IG;zyM>"ٰwiҨ/%Ӊ.PKjxMlqp) usz'f71לrsJ;f.`1vPdau ͛Yd唒Lѱrޏ>LapaOW@RY9~Pk~FD09r:eDz|w1uzwW&W|jzjunEZ[O₯a X"lL54t>ߠkaH9eCREuuT.EJUc2vq&^Nx*d",;o۬5DNJۤCہ| eh9AVCi]Coͮݭ1/It=\D"\Γe\`!߹_Q7,R,q}gw~lX=.Jس8h4_M^|l>siG5+sQM26(O5BBH%yGDT(?jӱ񩿉l<n^ /N%*@5ήP`gXT#f;2Gk] _&tC?,!H ;fR{8O1O98pHRm'C 1nk)X HS`ƨˑH2lI^g/[S-2^j{2=C-r IWK{-ov?I.uirY$A74/RN~ߺv𹾏(u KJ6CraA[|s1*:4MJ%vUGg9ߛm5]cPBZ=|֘:-И.ۅ)Qù\ $rFnUE5]X8&RdQ207jqP{eLԣL;MIb{_wLJk(jkBz(f6騦VT\ZJNlfWFЃ&UizSA҇a|#7,* l(rlG e%R2CA82Np\ AC;`TV-jsr/nFq̿<;ۮjt5oa'[c\Upk" ?9GEޒ|LFrEuR\,!M0PVkhovм4| >pK6QE+ptayJ-M bpѪ0b#η 5+r'Qt6 ^=*b^UpmN<Z95JGkKG"J Z,8&8K&,rFj9}[%i:sE&cAx2gINI&f/vcBPfR'xN܃pGw\cc.Q{*a-<,|| &+hޅ Cۙszgo-3UnKkRW"u:[݋HL7*\8;+;cf wW7sw4 HY\Wc p ɮb{YiV,oSïI7/WV?3q .8V:XE .R0)EM`L>Pzn]KnZN9cX =~v#6x&tYHhEwDWh^aКh# ^+f#W-)=?c.g8:̬K> )ߔ_$ 1;*䄥X\Wn ,+]Z`  y(SY>vI+167j1nXx7ɠNg& TX>LfqQR8Rm\\{1˅}hjuk'{QԦi*ZkVAD{g vT5573ԕu g 17MfCl3<=~;?NV HS?_5*qqR/xgh-=yhyRб&E*BwO0 X@6q߭x%ZBqaܩJ&J#)E!(V/y Z\n#*X]uR[U"zE @|F Gcr19)O$%,͝8z19|˝ju65Ja^յDdGc5 T\[\YV S.[CĔV4,Qሕ` Zl%sq͑nm]GGVύa#NWh+(z.+yU)%ӬؑBʎ|aݭn[2^ZXVU&V;X$:-q h0E gpo,l1KlJ0Ě zZ f⤡„#4ښ%ˋ L\I4t[aa[5%Ң,xI30F쳦uq:x&;~u4,?8K2Y 樇M1/a>ia/Q戂,Y ݺ kح4c"_AzN5ȷ}n ʺַZ ?Sٍ{%&NL0GK;%p~x\zϏqM^􍪽,}ԏ[C9Z>M٢@ Ӂ.Z^kS al4iGߚNYUbc00>ABH^-]n޵8ډ@pE/|2w2 #{V⎂>5˧m2`JrelnuҞYAYsXLB;\ciL[rI\Q \nu}OVuIk|3O:~E*~"ƥJ83s Qff)2=6}e&#=KHj͓}V]&#{_c8>5İ5"R/Ysd[|W*B䰪f%.jʞKWn䌰%KWv'.yIҴ߅{.XX@.HACpoEr&R8JMbO'K6'GYWZp=SmBfpXngP, yW<􆲗At8xcgNQܦΈ9{Ksr伢2,`Wrq"$vuJ*+^9]Bz 5`sDY?(k7mH^'ě8*.zNGYP0RL7谜Q4y~iAkZh*)Ulrxn dZ.7/0ci5,L2GOבDqڒЁ.I dfMtn7:=zuqzpT \9"(睢z(|\s_< ~xT;Y\d `1ԶR]uϤ}.=#5"ʀC*=0@дMԶ`<ඡ|2Mgcŵ%Z#MP]^]RS(x1," |, KVNY9$ڵuځVHvX;@Y!Tkqp,_{R˪ہ[z~:2hԿ@>q\\e6FϤ˜h _dI%mH4HD$.sXgHtL xs~ѓ\HR'm m s+k5-;ʒuS/#uE򷺵i5)vU"$'\R==[}3\w_һM@[ˆ-4?J%MPfuR菥bH]63P?h݄;_| 9K'͐KXvuG`|YjwXޚ%V,DiP7)Yi[!53}Z=G. L|vv"NS(KF?y^{3ËGTx*n뷽sGwTrG(4>_/^"p G +x=uAóČNYY]C?>sxbD ^L:0Tx4g>F[m&q}{)N)8` yVS8ՀS%R&D69TոH,|>Bx{)?R}=xwZ@9>zsN $ 0g=Zsۦ7ֿB^u G7 Jq9[Xsԁ+P`Q&^ փIJiQ| vY37LfguYB1t,06?GiJruzdKENf\=?2lHFP)/ ? D4I6iU80 8741@[>nڶN/ZynܻZqNbE"Vp^CT*@qx.*׸ŘwfCVUEW\ToJ{1æ멭Y/B0Pa LJ4V$G:]Oaq0ÞRJ:4utN؂2ձ6C<*ko "A邚4׭Yy (scRV[^Er=7KXI<kC?_؀/W ޓ7e.j4 ~2b`Ar^kގڮu}sh4ϽADeq(8MEc*Dܔw5Y5`xzu;^v5֌/q&j>B*mfMmOUpp~?{QQMccL/ʒ^=+QDE0"⮫#uxL ɔ2iCsǴz %D*|c~y;ֆh>v'Q ,~@Ɵ[5{l:ߥ7~j]<Ǐӿ_2U' '[ExN?Qf5vz \_@q )6 ლhxI6)ne.'zM6ԙr%C]V<-M}nb:nm#rN{X> 薁n8!p>~֛' 6vϩ:h86sSi_ɪcluYKV6zl5JV;u48BW=gLWc$G==uo<.hҖ~ܪke"MnbIaçs}n Vήz@Nk'~iae\2o҅Y[&qZ+4fM i$['SՉxKq;g)S 8kf1"oH' dC.q!ds1[c[kYHv?]o==r<ޡ`i[o v)v[\J]c{>Lw+,]gN.bzfDoSOG?/Twp۝2|dk3E)V+lVnx#;N3;-ir!%1P?\4{!.qAճm:>zS>Y>~?%0wBZnc7.T0;+LЯCxǫIM#<YCNZ7ԚWH %8ALzHvH-P-qbuϿVk!Т|lPaH_l'T,bf zhNJUݍ Sw>>dn6B9-Ľ]Wn*3#Q,+hNX.\QEӁseș)n܄좍G3Y} 9C M".M`r/Z)QϹrٮ9*0G`aA*6-g,W"cd>: Z0qTjsFZ1OqD{. N1E9uݼ1N kttGQUG|vkxcPrMI:>iu+޺$s !n6] Gv>Ϯ5$>")09BÖT?E0^p^ >R 1j=ǵt!f#a!'V#i@v_H uGU.CzMgDP" n,y="˨f:>H^-kh_3  K 4i8wz88f0y5|_~޼|R ls~*)yP(>|PR<~;ۺ&Yfi2>V 2QɕWqrv@ucC\yȷ6}8D t4<5a#kr.!s3M/VV'̞IB-q5wI8ϣ9Q|‘Z9Nc du \X;'S.Q<=7vvMc70!Il;'S$]2-Ko{AUHA^둢 \KpURV=tХ40Orv݈\uQ]bg ++.1+ц;\8 0뒏\eTttF۽jE代I"zKlsveΰJ/ ܪ*LicVe%Z IT&4Ȳٌ`$vZ&qO M3ϏN(v;Ω?*)p^#znxh.[;Ix?vΦ(ǃ9s4(dA)z4IYqߦ1ieԥCtM#4Im{5 ezPJ uzz^$e/9\T*aR ޯ7V&!bn>P̻?DjmOSju~/eXk2tk2;ͳWVynŲV_bvXե>$ 9UJOt{ۏ`/ȯ^rŮ%)kz-6n5wm] G>5艳DWI}V6QV^AZ zxq6".G[9&偈-tpV;;q3;vWx8 \1>d ;vVٳ\),gVæ`qCFbC\e" 0n plh*&qq UjGi[IG4W55"0ۍ-Hu[5*7T=aҘ(B u( HHrʒ+5lRTI=M4UkZ[r:MM"@OCp'l7oPzNAȥ!a@TDDe ZD[@Yu2(bW.f괘抐t $=RFv~ juB-e0ZNZ!7|.H) 'Z<. 'Sm暴vAP XƂ6!Zc} 7`q .:X&ӚT݂PkQ]eTb:cR_5NaiWױ<І.WLT狌+:xjwL70dp,%O*;0㹟T,F${ TxL8׷EqYKSoC)rySIn-[>F}]p*Y6H2SڣUWW5f.*i=!Hċۚ8ZYIgX/u2"Aw=[5k^ߖܱm;y1[i*{:n. TOկ8P9)"ƋY.^"^ H22љ^]piM똒nqz&fG]M.jۿާg'u[w{ֿ}O? YV1c=I:Q=MMV>[GgЃ️cw/B< +a+ xܯ1Fp66U˺wl%",Q`@Egʥ/[AJ(] [f.V9⃩BCXN`1]HNOl}vY.щ5%Wr5/%@9:b ɴ'gPX>}f2{_l^>ꆰ`~^ G8kMNhMTZëR'S3݉S՚:^sJ6AÎQ4$lʖ}A/FLqBU=xؑv P>p}")Ҳi5L{X!V s-v~ {"9*IA+Z6772F|in); d۴f 6;"KoFo(?k\hu u v"DcM%Bfq6=tDU;#[D¼-Ptkf4zUƴ0Wu8>O=6&4 ^|-,+OZʷW4v;ώZVxn=?&r6.gzh{Cݛ3^lebFEh|x+QYsDk,Z5ˆh ⪝A}v{dW[0 "Ȇ<,Xp#=Z}| o^`v{l\ae@0!r "ݫ@ ;οv| @'T0l3)Q:+({*wa?` _Q,A,t PQp{Q]ALYͣצ Qyy: Ctv-)y$fό:ͺ /N޽|vRp0aVL=ƚeC[{2E92Įr2`=+pjyU~DQ>u (kWc/c=;)Q(cqSgWH {'Mͬj •-G_5qvWlI*pXëcYי&ȥĕOyڇ|K .L͏죦uHxHY60յET :%>ȝ y'_4Z#78m@` fgu0r;D=rp{,.l[s]]EFt#06G#C:pDT7مh=:z /VlZ&?MLڬI-1z'yx*7F&ͧM&\AO8k8Pў\*4`:MR0R!\&%Ho-U /AFOy;PeEGRX-8mIT |,^G`TAl6 S+jJڋnc +~ u6lBTx.Vi}^c P2޾U%p$a7nvC(Or>e7uyf~?~}6"/e?MIc .gFA^L# V _! ;D5-DZd{\?8tygt=cHI;x{",j0%.Sgq=r%}JfUs [)?ƶ#gPI^zq%wtBh>,APO-F8`Ara+wO$H8"I֭҉I0kEyo&QȲL e[ȪԒUuN˲ :wf0=.mteq.׏= &SﵠvʳC֣{W*_}}.׆vdV{W_.kDNT`UA3pY!TЬTKGgVfx(l TdN_oNMbkccqHبʎɉR^;xT<(TdT F-?\6a~}_شv폽;m㫵@"*<)꽕78>j=Pǚ_?m4Cv?-V0X ÎܓZ(0mJ>VSxa0׾p-l.LZGqmgAibA/~//?X?ef@z:34}GHjy&yd! ,I&EN' Mdՠ=QMs:+W3VA(E+U5Z^cᬂ`W<`r3Qvq RH) 0wbRDG"E&vS膧!zYGڣr>4z_z%!?*?$?XT5`8͌ܰ(hhb6)Fr/v*'l#{9kZj %TWP{$E{#Q%_tάYm\\)"Ѓ?YeL+j2$Oa\і5d1|3cV.++Ej19_\?!,x_kj `,3cF\qAe>=S[4p~f;,8ge? L|tȋ8EpZ=Nק3@h6t }k nV"htDe0JCLfP }Kb=0wKڟ#|]Q5Z|PKCm{p+Ϋ_Ŧt/f`]]iT a|I{ZK~v)e-pɥk Dzg`慝C~b~9ZtXUS0C^r~OYA< p n[qc.\Yw{׎ap1W;Hs"7t<nϪgi6T*Kdȷtw}{7;I6-sW.Qr^߾~ڷ,H}Tf|1R{ni{l\nWIxq6t8&q6B?#9C~4;g x؉D1ŨYQpyLv^_uh&+=W ^&n3J̦I첷ByZ\hͷCI5_}}`^Jf#dȳhm*ӱbAȖG,whTC+"T׻WZf߻2ʴ3}dZXiH^1q.M x@3Sbcwr[f} s39vݦL O 3+ʦԸ !IH {]\m6ZymOf vʢedҜ~1X<4%;M'ugka(xVEQp"_;*Bw\Z`H-jkgkzNQ` MGA!?3R}mEYu02U83iF"{O\ƝOIƈ mA f(QEV=u8#C~-3gښ!Y3Z6VPx"@DV]+#$CDcm7li6/QL; 7$3c.:lɊc~O܍HKXd@.eC"naK>Cqd剫d6glLyT@16MB"ǾH }bm(㻪gu@bgd.P(F%H+#we: s3 OPM`(-ǧ BG?w~q)>74f !l%*\wN &EnV/oJj2Q1icv^lmo$RI5\=lef?%(6q !?Y z\g0= ɹ0VQ{Yvd}aGߞŻjKPJzʃo(p.ڱ]v#;ۧ\CwOhpDˌlH'M/y,<=Eu& ChSǷI$ s wc3+ l<QX!{?jXC$[7t*TҒCXy)$lT'i|{suo@Ҋ D@,F+'PfDH\_~yQwhaX2gʖAXP:zvD0Pnyy\W1[-9 SP'~թ2:qsPP_a܍u9UqVrM J n%jiQU$Nuzcf⅚ v)[7~9. L)>ASL"S Jtz@  ДgAi%vLXM]5GY֥_[ aL0t&@Csڭ;jc V4mF[ [/Vd%M&m& Psǒb ܖLLiبJÅ+L?/u-i9N㡆);ht߿:u{ F[k) @_4ꪝGes3hqT&f}\D;7s[ {rL瘓جuBu͇KG`gF+̖>]J*w!{~_`ig}lvxj;Zwʃ]܊G3hO "9o+Ppa`@8U(auSA {o/$~ OUѣYSJ?7"9`:1PH*]Z[)yks1U#Iyuu±vVQ"~맩@4|&gQ9na,אtp֭7{%=>}Ѱlx +7ZğQ .!H;{0`=KjY@ۺVCdqBoV[mގW~+=HrujQ]J۱~R'+?__=EY>U?p:|jӭ?nM?)V!r0[v5۝i~U[׃xfOG#k Z+Mٻd#+}|O'C&)ǖBj~7짼XT|Yr^s3`"GR {ǹ=H ϧÙ=ZLCݮ8 8tJX)|Jd6bv"|'^ǏbǏ~YS-gPँM"@.Y>x/|vx $vMv~zbe]Rn||;(FdD\yy |l$\A|pL;knMu 똷ٸ|kOWߗ} +K *)m\ގ|/ KuJORGq>Ƌ1uoe8,!A6Rwng`]vS4U@Bl= ^cOkqnk3G`$ omexVA2ZK8{JD -5Ҫ{G UgA7 =G-\+**v\S[73JP}2Tڻxq>yMt/Wi0, .-g{vu?K#'8-ӛ@8gMtR oVށ wl3!!lDOb IvTnlOp(&.kUq/Km;.|i"xK6k:Iz&+1Yԏo2 <N%m洄dW}N9 aNNN9FuS̏p8F0N$A'1%`r:k\{bp MlĂYfgA`[r?(&|)`qUaџ?h]8q(ğ2?tg7|4 1oK⍕Ki +L@3 jq]Š.&$=,Gn/v;<prdRRq _=bӛqq^2lmts [v hcCrpQ+؜J,~]S <!W*6!-?@畸>NǼ~%az02fCRbaHմ|\{m4 fc@ƸؗùB( k,C$0`(}]܌IϦc}p Vh6[I=]d FF 5 щא#e <#9F+ L!"4#:bN0tT`þ 8AWfT 0|gOč*'8EĠ2BIw}:8'tšbvvC1%b;(8m2D}M$Cju ~-e&BfXH6w ٮe6դD ,QHgF@t $ٖaq'tAs_ m 1Q+UJl<+ VxFHw:\\<Td/TBVJ Ka$2ͮ\ ((IT>1 1SP0[S@unWF7LٵVly+iw TlnP<%+,g 70 VqDL3\*Ĝ^gN HUj acZD# VjW^l_oѣCp4)-J>=AY;J"Q0%|257{L#kVfWxh8>X<:KwMߞPO>Lk[!1=>8rv {dm>A~Vnr%rDָ XW< @z--jP]mv:Cy uZGr)]W>pKlOeiǵbC۷ñ=o3OoK`Yň B'%Ճ3`p/}{F+0mX*;©-IK]N5%h PL1.WΆ޲ajSf˓4p*šh]~ංn뫐m!8@ZA֢ p엹y kbq$ iFp0)eq*8T0YTۑ'O{Ϲk+aJT@+I蒬q9HG hOϲt#A pHk(`rl4놀jb^\({M-]!уVx HYUk}02f8(@L5WWfpcR,fY7SsCѦ@Vw =?=trZ~;'#8~r\'c/!>rj5YT#whxK O+N*2È#j*<1# Ca4zN"*:V^;"y}?~mKq*W`)Yq|XsֺDxǤ%U7W8<3+ga$,׶]k F8WU P.=ݒ::(b~1u u['FvIa7] ^sKs%?|^]~=*;;̬lwz j&>i܋x4\cE:Q(9N?}( .zq5ύ r>.+` a*.N]MD N74Uq l3" fD"x48$eWN->c7^5$VO E!f)v97tqޠ2E~\KǯeHrj=F߫Q;i}O\~%G}h.j90tVW6| WmrSRolbb$Rrl-u0Kq$0\E>iKcyљpj}A'RTЦF-O$BݾYh9D$'g.X &SB]nhSGG*>ukxT !l'쾬4 h5~Źtj W)%,Z u8P,Z ,֠vbRC<`19uB6yS+PNْ_7(mz>֍B[c:Cr9}`.iQrI=;+ǶC ;()uY'G\ַ˭g/><^9>N+g /xvQض*s3KJk2L(Ty_(bJ I,~~ܾ)VW϶_=~scި4^zOo^ɊUr0h 4AC6;8\<:.˚Trx#_0SuСAŅCCm\<oZ}0o!FHctjc!ElEg e0e .B;yv;~"1[4Eu} }+gh~`vIHuƾ֢c=QatNG"|9.|,j: K8& HK=)O=M-kz"I:7q$܎~Hvaݶ՚ ב"YhW/⥒UZcP$ _E:QY_NjnBh#{+Wf°m[Z[H4ʻ}iYF:Gvj[\T2"Fq$\7p+ ܗeoM͇O.x{9}2eB>hV &GNV78P] t:.wKPe_? }/gV̛^t~. Yҡc0:pz W[$gc~Y(9Ǧij4 KEo6 2+> Ei1}Ԍ5m#tXHZgK##DѠѤ̒M/N@PxG_~Q5{3q  e󊆐MzEn>k8iIH`ׅӄi:(aLf{){%\4bgeٴGX>U0KQv憽AtK!Cfh EC&-?l2N߇~`Xu0**vqMS7`v5+w{▟={ƛ_ډSEm٧9bk89M|>';SC-|g[+COq 5h }/%SiS+fvFjK"*gD$Cv@sqmB'(-KL\ToifeAɳb>&iNRiP cOrh+9=dEA]#!+x5GE1)ft:f>C}% =~#ح-h<,87Ɉ9PQA~iF(1=reU$ a0J=JAaʿDY1pGV~Llx|2__n% B ~xN0t$;d"on-d鬝n 1i"W*n"{Kb{N'kdơA\\{;vx*&n0EWNwajXH[kz}n9hK $ЦzDcbN Ŧq3% -An^ᒁPr!Fg~\N5~1vjGY!K"1p=^Fwx$Q G| Aٶ5Oy`/0xT㓜Ò.dxUкU çYv+;[Ou-iscں:Ylנ¥oߎyZJv`3DWRN? V90A>l ֶ x] 8gGh(}Ƅ@ M "#U+|@^gS;ASOP(Kb%?$|ױ%stC@0D2&AGla\ƻ'PoK 9AQTIT<2y8~;|bZ3;G: 4 @ mqiyx P -]R sy4< b~R%+޴qOhK>#$8  )+I4d#0gfuR Ժu/?g3Wk_v϶y۟^eM3nLGg O?C74gQ 'Wr)uMEˉ,: SVsq͵~IvvpbC;O?QҎga(t*ᯨc?vIHGr?rrcn((Iw1x;.APL}{?? 女{~ޏߏ:Zb: +xFlYVsgvJ[cj*Ѓo1}\\Jcf$sF__Tiͳ"0 KN/JMAkpֲggpꗡ뺉ϝI%]_݌x7=3` k5S:z&IXhWI4u[Bsn2mN r^n Q4ΔLZn(_,nuS8BG6PnD͹-3!c\ھ"Oחqcp ÒLc\J x3HMxz*[{\H-4fX2Y> L-Ѓ֞u;ؼbp'%VK(-\pfH9öwNv&;O}Fɦ}U~׎ 2+~vlŬ,3'b~_Fe*+sX;pe2UET͆cB1̥J&;.pg*5γ ؙ,^6p9bzRt4Ɓaj;G44&oUFrؖt&S-gp=_UB$Px&S凭7'A[HT[> .Qfq*@hY0rv&/;#^s9%B"?wy[c7ۡ۹|\)4Osd';NNx+}H e0ZQȪ}0Mvu0D BAAL>A:ٲPkɊ4G5D3>Q8 vidFݺO.v.cڒѥ#}8 1PRPu2n5zlzCo!=aXSa{ÁeOS%}״#RTku\`eG)dPdWĥՖP uk+BՄ_֕>[r//j8QY.H>ho.-ݏZMFK3n 5BS0qI1IN!#DL kbe H"e\}:t@%NEoGWpXMrW795PsH1ڽᮆ:H ]])MLp; 0Jifk.q\ʡI7.>S#-@֯EppNk%*Z@@^QU-ۑ]ORNN(rXg*!"6֭ڨ37GUلG1[=V8?Sz'w}>ϕXSQݧ yUwOc9* Nv;h3ЩRab{H6mg#'A )ڪdxZF- 4m${Z'T \m Wmm="Cԓ+ΒֻkB$D||X7d+qe0> ũc"칛X0*CA{SE+3uZ'Z/-O,$W8@u87 酶#цONLZxL+ vQlfkv-3(# ҧ:I׼-pxqaJ;y8bLN=B];p`oht`TSo bȽAڑT΄*49G&DTnD!b7}8Ku -z(B͎ˀbv6-Y!&RlLӸ3)gcřb(I:5Ghc>@_Zq!U,}M5YFWajj.,<.7872+oѕ)h@ $CKE_Xsc걿p{a݆h%C)~kͼ:L(iMcp:RDiE3XS~ݪnV;d,"=47L /L5-Óe'A4)$IJ7;VU$HX)]"Ę H$<6F0)QmQ:;mD,UV-u Xz#LnMS0Jǵo4(ݟ[2WM ΕbInסo.L& iM$FMSAnh3rsZTJ+D6{1IJ …@8XP=⬤:^Eks"1Q]lm(:p]'<7ĤNKqRf~p$8'ғk\fn\x=&ˎn9&屭HKT >. bW0Bvda~aov `rAMґ j68ԩKTzOm)IྺRФ6kYe Ϋٕzu tt!E1Tf1yA~>;[VAƚJՠڌ3=8BN͏U\}L!߀78G; رmX*d*nJ/2ݵ.ܫXln"7I8*ﳄ;/5MG%J{d=)"^V&[L|ᐶXn MO3Vp=^OK7@@,]Hz[@;!;,E2Y0:/QkBUS:#k D"VJflvLx#mV.K?ДtQԨH$eA ןooOE?s|3h[z8 cCTy=o }ܺBל$zNՎ[3>UJ5(nU,U~%~~/1ht:=wMFA}W9Hv?߅@$@}2 ;h Jܻ@;(Mb…W*Wt+򉇳~ 4=%쉗ZIqU]P$"=k)˹IІ oP":{w}u504Xm&]onܺQl6t :7T]Kz+.K$Ei+Ă$b}hpiZc&o+G`X0)O:}褅$sX~6GfcC) v>?|: FN[̶ j o~}BP{xIN}dvbZaR25cz`ٗdv| Q7S2U8Uܔme`]HU$xocM! T%H+TQ5m ;JX"'F|F`R9݁vuJF2&?Bz逦dNA8]ܯQ,֕X;zͿXvWRp6B 8/V㥨+~BxiVA˖1`7y-;_v^Sp_ ߢd[70HJna`2G yRX#,`UŰ998$?,?~߿_gԡT31h_ɦAӃvЀ 4 hih K_zX>B+n(UZ(&4׮ SYhTʲs`Y: ⧑#@fw8^3&Eu` Nǡ"]lβ%\6[5CB( $R=[Aj?.Nu׆*<Dh?CΞV6t}rN֤׀X!\-P1 #s^D޲-fIBOSN~P_ɞq4rr2I>7+ٰD)(Ą-/Y.J^ .y|?hrI-ԁ Xh.ǮrG }K\ 9;ٿy 1'{;y+6ӣNK蚶*<В+N@J\0u`)L(fjEg٠+{X6%`pp}*ItCm294Ëb_hh8ZED^Yw' 4-U\n`K7\ J]5`|"qz};ڮ ZnO|]$I 'U{M_d@̰k;U(N@_]S|/]B':x(- X69t8mye%O$PA~ލO`N{/sq(g}GC1g7*tΰ$VD C?SE E_$"a ֿ]KwUK3[MUMIKUAzRi"CY.AC&A}|/J/9 >?;UeLu^Abn8EĊF zCt|`f\Q x.Gγ>aT4[bȑX/:C8E9hM d!E6hgs4&ϳ)i{,Eòú[ 3Me#Elf _*^WCS٘Вg=1I kQl))TlJAU22X߻Qr\dIR,).}\z\O-*cF~A^ճw^_oR'6HRE@M#{"bsz KH=U+?9j T)7n @N8/+;. וHw?+ln+X_v@BH^hkԵ} ׸m6]{Dcr˳P9ϙLC;FXZدlB+p}Sf c9tlR 봻;)ArѠ Vڞ^ BM [̘J}!. v2?:%ձD =]eb|_Lj LEAePu{Ly"Oti&(Ӫso)Jv~wwmve袾ݯ̆=([6I .IȢt;6QN%g"m%gT).f4~%U߭ jp&uɣBFՍ+A9Z״ȏ mo͵on 3ԏVwPW]QPg{(ga4K2qZTNh&lԨm"ntݩ$]w̞ k6JU#-~,ȟUU^ xD^X +,n<)YJgR~KHH2ƿY7,qvc>zD0)AG(颱"+|ZvCE_ʿD8{|ZX64>Gy)l9r&Jv^OW\"H2A9bT &'zέt & SӓE:] #3/ D>(*j g@u$"nvOBl#z=P֬>ye9 J~|5%}2pUH;Ԗ %`;AxXy'DO{>|h| *|K[w4,q贼eLV"JaWllgfb!bV9BktLs-TijD&궰45A WQa^TWe)L =QRxtq  Z , -݀/\UMtP(y6Yz2NDu/7{Ҳ·S(q]!ۙ\1] wJ +aX8m.g cU&ܙՀ^Zg%thS}LR?e FeS9@6~6Zӹ^7Y{´#BaAd胑/Mŭ7k7rm#1jQ)Hf^χ=\~Yrs3ٛ(iwDva?&J`IZf'}cC.bȔFTaMv!&ZyzK2E]11i^V܆Ź`Y.+볆D/?[sVS{ACge>7VRDkr8F8ax0x^J<H(hxcv/&b֟Ll7{]yHXa-9tPmli69<(FgCI'y2w>uq2R]vb%u|n.X N a+u9W =~{+Cșmx$f9ۆguѤdS]TOVj,V~dS>ZUT:V.ʵJMOB2wy{oڿA?Hu4?]]߫y5oWh¡.\XZP-.23u4$$aTmb2T_5v-Q(f 0S(5w"b Ac/ubqf*>@ guIlWpÎOG:g(-,2FW[osֈtՅϊr"~R6߮5/Ϸ_BoU{ }qy8bR͋ܛOف-&"I~ۋ" %]&O(&)ϋk89uwuSzɀ{h_mq_T@Aw 8UP:&g}TvLêYUWZԔ4hx$ZJ69v{$a݉ʜ=ol;kN\aH\EMR-Ey^? &V؇t._q:~ =XwG a7w{{6|ܫ/颫=1Zs'{v.|Я]AD9.$Pu_m8Tu}WJ8`;U/0%DPf\B|(ԵVG4hour㿨R잼|K{snh?48t9[06ZXnT"nb#cSƃ>-'M3z)KWUآc0h$DŽCp,vpkRlSEټtp|ҐRz)m5m_ï {r?A!byPL6ڭF$;>XI 9 xۅ3};%eOL1~oMJ./C! "zQJQrCq5£dC9(X^WW;Ϩ]F4U ӳ5^"Ozs:{DriίFΩl%v⣔}o>K?/DO*рL _1insQX1!0Y߾{3ٮQYypVK A}`Ԋ bumsØnNf2hxJJtE+#{ plmŌN6z Ƽ;\"^ಡŝŌd\ قwb .n;ńza k@4Җ&Lhg]2fc>c|O"_"_5^*V@j/fx3gO)Y:\{P NRd›!$? c 䳠lm |C7u3㣸R@IkT(s,pFƀȩ@ :ja%e+gfxWՌ~ 4[l0b^e>=Gj˃p:ك-ZpBR,fHcϯÁdVN+,/A1splt)U+sM/pY@07%`б,eWl*3fH>5%XEF}[t菝 3ֻ@['&g)ơIoeu~:6ٻjK7ݮQM%ŐZ9;-۹k8WT ʒKz4*mnF2l`>Y>6ZX{~/g8tH[FMGaå J#񒌩(C=Fv7#{ z)tpO~7VwQa#f0?vO϶߼z_;/wY6~F?dpAQ-`-Pmnz%BJ 1\<i`RJ ޻-}etM_L FͿB6iDw܍ʦv䠨;Fz}E?!:41~!u~2ֿ>[=d ;홻j{ߜ0<*\N..P.GE*'5>gܬQz*ڕ,*yi 4\A$P!BBq .tz hQs6سV+{櫰n}OQvp%Vu^@{Pb)AhD#2{D?t/m{X۱$[aЊPF;t%"ܪPaU_]҂vASWb0Ӓ9|tlyX Ƥ\֔QsG(),FZ[`ZP!(#@lIAg䍲ASt&-Le}.‡CQ)؄s`iT`QJ;WP!TD@#-۟d~撀Qt< ϰG3[5kL)Ue]b"j ,,8"Psa~= (1&#$8qkͦڽ2Vlz/PXa&*QҨm*q71niS-KipP9X)<])#(ge=Qe(ydT_U*+W@í ,G㳍x ^?q"I(S?MZGOTN : n&J񀬑ӎQ 'wal ۞_B06׾jF~oMpwf46~YvrX*ԥ[Y1$_˹ iyvaFSCA0 PoHq4bapX0vx aV8X 0' ^eSL] ͥ Cx҄WV&VPOGlcLVRF*Mc! J' <2PCu7h-Xk:tzԁ g1 bİopI{ I>ʫϼkv$slm K5nt9G_Y]؊%XfxA|g!3¼e1(]$Kd8d3۳,8~ya:>u_LzDm A=_^<&5ώ P؋^-_pU2yCFmO, #TTD v6p!'.{w7[A5o1,Qh} :;8gJ9B-!mu0h׭G2ޘkp?BPX"@dK~D9EAa-"&A)#cxZD>M50K!ct$` MP <򊳀 */*Y >Y̦0aō'Wnl}=e膋CKu5(Qek8D+"I;] 8Ml?ƙy0"ݒ :/UuZLN:D BfW^TkXH"q7d̺/q.4 d$2laK#?H /Fg(dM/p7.fT . m%rytq@&(]bR@Co:ю/n JOnbI븤$^D[dܻn ;+(r$ڼ?wԡTxފ 6d`<A;Fªi\B^ _ST?Ƿ~zzPVWdgIy-Z)%kiv=&Jx3Puh]Eޤby"OB=63o=YW? |Xl _P짦uf0B+ iŠ.Ұ,jzqimt5&mJ -tS Άw(6Kv5&DK1i N{oF~ƎX[:VlǪ7 $% 3w, d{[7<z|E1=eQP.!ފp *D;=/:X(q1P>et; tb>NJ/RKYVi#Q|Q6I|y;T2DUqX O|a@U[0qR|[`heֿn%T5.GJb_ڮ J 2!&ޣ#0"UMbfЭ(lHblSaJeעb p0&-K,fO8)>+*+>"v6:"K䊇*K& OmwxV1@ $-u Vn`ũڽ[xVofYU)a ~PWyoz#jhzItAV]rxlL=Qˤ>0{ JYjA|6R(s/Uc,fRK{7h !8}tB9Oɩ[qY;:& <dU0>%I73 B0g% ѡ# ׵ujNt [Bˬm@r>〰EX|Ha$p0PD![E& O(wcoh=]/cGGHyÁ\>o 2Bw:G8! ~'YNl_幎;"F:mYVmbQ^M!DZcnX嘕8'M\UgMءUgI9nf;ҭ.,eY4Oh˂m[Nt- BS,XUK$'8 ;f*ᐏH>}AN/PP!zOYP8>c A JDɆ&w -laXgzԤ YepUQ8)""UNFBRMoZ)OOuYo6-f,zYϢޥQZtkN<5UJ1E ^+&8yJam@y&=4?th'=+5dSU)]YQ,E̳ ŏȮ8i8t82=w 0\i֞}wkY <2QIxAYT!*(~6+.s(߮X_q?W((xg:b)-"t y2yQ]$`Jlg5}''/=`>6o0ᦇm _g#5n?7;':͏U7[5jX8Hש2j2=0 QL[[5Bx0^'ܕ+60Ơq6S SUAg)FvdnH2!PI66W8Uq=:dyhTqHb=!< œ(`;{ݱ.2x:gohՂy0\6 yEH ۆ_߼zˑ3_ (g]_tj .[$Ct>8ISD { ʃWգG谊kftu]\TwjN6No^D\$Xz@PAqBPjwzfڐ?gHp8W(" 3iY+مwcGC!UXݺ7!в/D\@ouE;{rڰimhSCFYv>'|!Q1/J74Svk~V9d$=qZr}h;kd~p A4q O(]Zt%wy%bΐҗExB]h Q]_T2u\fFܥٲ1Sogt K!c:["y c@Ƃ{lR=1-Zx.h@En߶DKk$yZ3s!DGGHyWJ>SP.1˺.`M &>Q%Krƭ4ٜ쪫(E/ޓ&t}{i;ʕ| '߮G趀ы00ҭpD:Cx~md&߀|FlN1*8(+"&BqIGuLgZ a0ހt]Qāok2 >^S|嬼Uqb luN ffNBϽ g=ڏXIƢۍG,? > WACo=m?~lÇ8u8$$$((4eGEd'_=Q?U>>OXz?{]<"tQo O,<+??)='ztFo?{N"kmkm:k8d53Ժ\A!&w8MOװp#k3 -Vu{f5>>,;OOwZY[[{Կy֍!)3 A9Po߮QTQlDDE7@jr~Jm šn#Ƣ[ ̲&2Gh~~Veےu"dADzܬi`P7Uo"swc^ov)@#źډЌw?Wi*N#gʤ#Sc>aI]|4O-Z 2<-0Ph+Cqo1^Q<(\u3gaT$`Н^B 7B41d־&]n$c͵`W9#X4g,+{¯).v_ 1!N | `E+j23h;sGwoB45A9Ld6Kqe=3ZX)cўW@8?#OjE\qM0b?N.wV}gL78W;E(fLQE4&\dz fo&ۧEoYÇ(q>Įq!tŬ-bmO|8L]{6ZLA?p Fnޛ+Y L:i-l|nn@G1 4}͓g^Z#4ְZ:F;H1>MO [c{H[lX)ň-ȪMUa .BgJ)qf]:NCd6?zNjYݐIN`Qr5# Ak QdN}:I>#@i!EwW?AN|t{+|b (\V&^v`@3}wpjWo NS1~"<~^QǮSQtb :ri@܊41g>%^ ʵ"Ķ6OѪJ-M6PN`5xǓ5Ma;b?fiS:ѵQژ v#i,`F?;>Q`kAu0?#Jmk%M˷o޼?磃WX4@Lw u1W5+My {ӧxë Űk213fSӌ]'֙=EdCyr0Ls[nW3Yh;.Pѱ3(ƽ5k\H:Ao,l\ A2Dy<8z[(aׇm jR=1x|EZ4!9 mo[|$%p_ I\2䘲" Zz=8,Gj"ԍ +N36wai *W8q-u2s~Βz[\s<'ac9 # iF$:^8հ(G}n뱛Y,GIjkdr9(DKߖVOklƺ4p PY?n Şю9(P>aAu[%j1ՒXC 2 p]tۧo~8x؉^6cN4(4'I͋u1 hv`l.40wEFFbfΌ1*j^p uNZhs=_|eR 44Z% 5e H6=o]—. }:aSO܆}ã觃?}zoѫ7޿nWdnwFrmUDnyAWPHYM']ȴ`g\@ٍ@Bp0!& p8YS)0KŖSg 5eupn zvl6$); t:_TZq;` ӺʊBUTA}; gpPRG=U1.U% KPsG%0I6`AEA,l};yl_S?e6$Hy%(Mmu8@uQ6WAz 0QON[0nG^6!NM 9c1|y pKCDѪړ@Т'Mn\7'%Z RM{^2]9Y iM9zZ`dnUfjx w̹=.ΐ_*jL4Y ̚1* $4D|$6p`-QK%s "iiT(IZ#SvP}(QPIHכftOy­|rܖ^6¯Vtiy$Qc9aˮ-P7V^@~yQL5ȷمɓO8UN|@(\tgӡZ=Stx(:fR2ET, tV1* yA..16+:ΔCiTP^ XS=k}y opbU{cZ} kDgdRrk -X Z]}A=mi!/=൫>"=vhf J,2l(I8Ti2hiUU{$FTnϱ,- ˄,P|||69L Jd>6[T$ DY-;SjXp sQҘ)ݎ^Cۧup)O/FIGg2+@nN9C6<v$]RgܽQԛR_)^hggUYh +?̴c.@&:z]KGq|jqСlN/[44Mj|6zFmc8&jXup6T <Ao -+E`WRm+a+ƺ@|ޏ'XnF-`@D6w]# w:u/ZZE`q"# .`uE2ҳ ]S Lad;hAӤ @T߶iyj2xCStfc;N(Gh4@!ϳt*Mn:i,)KbIKlm9KCjf[(>~|PK҃?n[*-76ڪjT5>T#orP;Π)%McNEH ;ة\0'(C`H7lLQ~Y{܃F t]hͼ@uAlP/OIјsK=R  c\֕ IL2|c쳱ᦸLz.!c9 b ƈw1v:d!ɨȕ$ IvŅgr `ARW7|3%C*S fV+(*踞 NA@$ҶȔBEѹORM$-Ym'IZ`!kC0RYPRom0Bm{gف!˸ȫKbrA=u0~m+~4yp·&1gҥkb)ڧ߃{y0ݦ82{@m Ɖ_߿9|$ڟA֬ աdz3ƘA`KG5EVh]!J^hk-Dş^1]xՍQr­яw -4--gM@@QOqQ]Kp0{3-R\06n{u;b[=Lsա+|-IIFg4W޾|~76@0Y:UIy@(54 rEYS)J~QEխ|w(Pp$KBr+iiӅL l &?CYa]ߨzn8jF/Σoᯮ+430Q#x4QD_U}YX[~)ye=I|{jB@:{q9k?P{bArpH1F`c f`FlAZ?i کEmS,C`P*(3Ŝz= ̓+z8U%>N?tTcи[?]Ĥ+t$'U̙b-)aetBjdR1 !j$OX1FK2@ۚWgObld jsc- ޸h-\ FA&:ֆ\S-, #+b,C~Z|;'\P눤 D=&Z}i@i5-HaۇM:SY|)5ZՔW0]0=#nBO'!%g ZdHE䣑?1$x M]tU)M轾:92ehTuISI"&ԠZMr{y2.U=j~0lA E]pE9&% G614prw~rDԹ^y38g@XWd'*t?-Ux!SQן$q[!;P"{D䒘<8 6^R!v{c$XZYL 00Eֻ_}_jn˕W9@n![D:KgT)@DJЃ¤ő;tp4 mg׏jhiɡƦ9kEo(=[Tvi/ $T`݆}j/)Pj\!ZBQg"Ci5Ji8nU)w,lU3Hw~hRr1Sa@ ;Up:V4ԹDP[iu00׈fSq'8QU}ԂN.VQZQqr ){@cN)CtiȺuZJgm2+1  H '.!^}S$HU Uux-\8=a 5KTvd 6Qjj,D o"te70&Pm"T]YKd7Pա4е0k7j5DW/ru-sK:u AS&@LY!|e6]C0kL^$ 23jn=f%=>WvzAt|:zǘ (tN)G 1duK]X%} !;~g4RJ:wF`|r "RÙ]:2`ar<?f19l,8W;'0Q/ XXU[xm?[=OzæT@`YY- &_+QRPz6te?]&?~Q؀g率^4t[Q=n{&(cBr ̫YLZ$ak!cJ(sziuD. xa^mG888FAlmKŻjd*[VVO}[xwlt:<` :xE__466P%m ခuWuzmtft W_75i8iNcGo'=3 JpqOiٶ??۲o?Yњr#_ޔ=֢Wg*f!bgbb̸mҵp*0+m'<ZUYo*׿~L`\= }a`1'.m#Qr␸coiŀwi>#[P{΋d`jP!_*7,osI3O5@F^<DL* & oGJw?MA1 d!܂Ц?4 ,nhVllOjR:bpiL>Le1p $Yy-AkPTjJo!}DG^D8^GtAAMCPfxAOK$B`\Bֱ} !8 @JҦM0$'h39w윙3 wd,!&f4YD9J." UZ4L$FJ'4AB@ YdYaca##l97^@xc8tY_'ʲ#qMƜ_w,"݅(Ϻه"=eΞepr^5k"EѰMv<71DB(ZzdzZQ.MbV,iyRť8˵{!oc7D8Ǐ҃|Dv~;qɉ EO_ Ǜ8 tg޵eOzwQ@LFy4AC/c79 MESRLAU]=̴\,QL7w"/Yp?F5__Z(m-YI675mj+A]s,ֈ06{T &RhWa${.Y߼?o?s' No xj*|F^T,&ۚ`E|OmYTRo&.P?\RC`6'#n\hg-_`YlP:1h]7,4Dk!0';!z† /BOXS_$B y$ C&TlO‚wEWEV$ƹhmJ_8u<5 5TbSnY_T'&q7t#:\3#u8g9"5Pef&m/YLHp`rqfʶmR ;JظV OeGGNpuqC@aqQ2eՠ:/ tX ~D"G^&'IUPſל2Ny>lwj5B˳yE}bWnrGvYh݅+,i ) υd[lёcdNn{ӳz9) =ЫL6{֑5?N6nDҪ\! ڊ,Z!O/%_7w_o6)8k' j}Me^FS>Pu@Jju6Xm5E?&-?d *b 7f]d-ª amU["9YʉěkARd( fr7T/m]eQUlFY.#u%t.fY4` 8@]X?!\,zt˗=޺c?Piӿ0"ia8FD7lqu; bMjdz*MU]<\(>;*+}uӹHY2ڢvU%t:KJf"MI G=a` {&W0S䄡}ǿ:%U.] L mRO>y30ښ;t #0ZGSd #+٧ĄXq/7H)$#B}](Qrk2cN d0ϲc'G`k bNuquD@礋ž7ƼtWW3av'X kݩ--!1ٵ W7/U.u{&@ZA®t+՗2{mB(rg^Ӧ3-9x P갡=ڙ@G2pf?~I( \y0/UI \ƋEPV/ 3NVS6c7!drf&UJGX "ҥKS"4}ߠ:Qz] a(xNtNPF Пa6m^{K_@"lo#t_+е%N*w9|JlQ7]>k=@48V#ݨjУ]12F'͏&t'0A!d˙.]xa4< П}z0ÛSO;:}1xA'AVg#jjj<a@c杅ӠSNj2Ηa44DȒ TfFj67E֔}87jһ6{g\dP`kK=u(xbKrNKvMxqr?N9yrvrFA^l.ӌQ^8ٟt↣{Y6qx ;]_tΛ/g`-7_]l cwU'Nabo[q˿D$y|ljk=c8H#萆l '`Q2 E8ATX%LHM'SFY0-eדnzt1=LV>@SfBQ[Fu9.)uL;#JU[n\iCپd `^&86݋s3[SJ'Q ZjH? Senq'RDNdR%F@cZKuGfy$UH3@yo./ǰӰ\U:Ĝ̬2N =mtk39[K+͆H:!}R 'ŃqM&Mџ۰*[+qB"Z@Ft*Jl\E9`!PfŰtӱnO_Uqɫ6~ۆ\^YutQ78пnͫZ=To~E7"Bi| Z"&3iVj:pq`iHTH&kɑAmo;Dt4y .[3K\[E0=ݝVve9|pL_I0G%?5r8\qS㞔2C(dPGTj<m6FaSpWLyW͐laE@]l!84h15[@Ishɐ;,&AmM=Z漧 ~5C7:bn$ UY'[^hPEc2[Yz1hYblx*L6C<U:d٤B*w~Y+>TX\ݻ HtS3guoy񟶞o;x\nl|agIps+e9FBePYDVMƹ7#_hg(s#Ǒ{ԝbe6ާbDUu.(QC2J?wo^1gnWMdGAQh9"%2u)V)~x_^uyD${"kuCdPeO*meFR0fJДq `8j!AxyꊖsnO!%7&ENZlB3s>âXCW/:7,o*̂9agMB/Bx D.()4myAbgWko{`(58zB ?0@La:)@'x1D$'R~1}bSpn$_z 0`N)p}8=P,M`|7Ąֽ_M-*肋,3H;6A-ǔ^7LԎٕ$~Mm(>u1j{ƯP6/hb8)^=v$+ nLG| ۢ'Wo xa Qo[\ء8LbṂ`-w_P\F. uRoCMTqXw>9dD6|x r5[R՛@,d8+uOt 2VthȃŎ+fsӉ*G:&inq<'^ {ܬ_wWu|^9E'U:f N\y8 X!utv|~'0*VKM^Q9̄G@&6&",ӄA^Hb)"I1ɻf 3ձabb8:iMPcPGMҔ+‰`)+J9] p;!pyK l&8M00Ǔ PʔBAφc}]$qE*c4l~QVAy RN!$+2[&t,hBIYMZFi* B<$N(Ȭx/y X#(l-Lu9ˈ6Q $>pzjTGZ|a= / B1sNi(T3 M;Gh刄Vf~q .;;9 y=D)͖zqRTd8hH«Y^kt){֏'Abh4t*QoO_|ƶַ%/C]$s z0Fg ٙȲA0dU)4gyyA Ss4m{bW z*Z~u ǿ7T0nv$ohn3mh_ݼbɂR=,C͊1hF)X85ryoˁÁӟJVbgzǠ Yh*}m#tLkx^ħ 5 |(C| f=ŀ-Mcn3 O֕rqU,'EIpblwBǠ9"~7R﨏dI?TX Pʗ`h?V*MI^$ :] *ڔگ).s}(JlVT֯08x+JMSC'T͙>եaZM횜4"]QyXe/.NZ=LL $ 9| ROu(\3A QO"9lwRBܪiڒvZ$qxDkzw;2]^&)F]Nw|ĪiI1 YO[زկh }aAt`ia*1l< ZԦ /Ȣ'nDK+S)q{0%T}L=, KNH#Ŭ$)Rm^K%/@k"[ \}Vfs>dl&Z+ү 0LAI6Uc$pvX$?#ts'اP/LqK 0 Ai<ˣc^ ?%dI,ҧt*Rduu6C9?8,mHKFNM`c3A<ԟ'^ y>*F՛9XΩ՚27~f fA!K8U@\D@K$@go8 Z ӵۤo\*55[K (ߩƆqn\*";bJ9Tu=H;$J,C2$qᩭR$/ߒUV *&(IϊY$%Wc +-EX=m鈎bo ERze^Up,skt6 z| @"cw/ l2'ٹÄ.&dcNլH-tJwm(baM.ѣYuG؉0/i锉-w48HNoyi ݡ@9 Xp\e`J/;-q֪tTrqO ٳT&<:hd)$E%ҫx0v: iRhe~<$]/9]`#d#V纫:ӍWȎu=[2oh"Xie#㚊2!0bÂc₺!BszV-5I]qYܭc{ʤ0[d2VT$'V88?]6 J V_5,V;eRd[f6[ض(Bۨ3E0PGe7nw?(USTNY GwFz#Q{AKg&g~uIwheu솶>z9֋!JȨ#)h=h`$*1M j~ \]Z3FioiWJZ"?O*Ѳ!y鐕7g/)L?%]g2I-WYϚFTkE_ Nxl qQe#+1q^}4*S"˓LQٰ7hff,4NYFcUhC{Z;CtdlA2'AU@Sp(9t^vtu]rZ5 I4E܋ҹJs|@cU?N\cb/^@Q5:Hh(#aHMP.ڨ!9n?pQ:bBv3󄿻Ɲ`涵WLT+RSf6`ώY.g  :+ E*8#݇qUt]GY}8 4z=Kے^xYgg:܅ftR*ܞ΋3GC6brUGa򗛚k5gվǪ 1-KHF>{?-Hj6a=y[YCcƈҩ*B濍UjXy! I$WYm_ [am7xR&m_vذ/GHM&~wnd5l!MT}_qDRcL3Vi0lBUbNZ{Eo*t. Jb׿` )qD%/PsZ`QU6-oq1U)^0QE'^zk3PF ø%jSJ>Xk)XjݽʩQ+]6YjڣkiWr !M,s54lyng  0͹VGZpfvW'Bjg+Jx=蘽{4Mhʎv9+0FB`\ѨUvd]. WnkfjEȀa6 Gp|JKIQo8߹""=9B--0+ 㨪(BO[,.1x-cV SM˱C[G0]q9aʩ շ'^MReH8DVi(7n)rvC%Vpab/oV-5/r$ xfѰw1m˶iާfhD1F!B k[H0d #yxB~ T]K)aեSEfcV2脛M"Z2i`_Zl5PWd.K|\ݙ%2R8]k ]tV[׍Hu'!8w<1NPm:MLTp_|ʿ]~NayBۄjԪ5)h6 11o!恖IH͔;y*fzK/%:FP%oooߟ_b5q[a,J \uh3K?/".Xrl??|O(;H`t5vn(57TZDJ rEA=@i9WfY!^C^;Nqu"No T|mUv>zм,}f lc?s0*&\R~|5>+Ea ^1[?3d^ߍgKҒ_h!@d6BO Z:'%T_~%dd}Тi-I26:go1y I}$Z`G{7*=pN0ڋQۜ&܂wm qJkA0ֶ;EC46 8ж V,'ENNإ" ]-ttLJOwrSHpwgf_m@Xx]ƈ\Z%!PekYJɠΟ| 7>};yVxw7ѷ;Q}o:NgYsOθ  U^ȕpd1]͊&aOI%O|E/@CK2 ,\`_:sRV!'; .n[} e B ]nKX)W]ѧ]&;Slm%Ӣ8)@5^[DLHNp53-{d73/@6s{cġx&*45&I:ŝTرކb)WdkkFe3${[pE xQg)P? PV_VRXW. b=r(23r\b;e Lڼz"ȹ͂F`1bouڤ6M}anMY?h-8V{!^RjÈ&m ŨlfujmF׸ F-c2Ap,E/6~:WǃnKF.O 9lEn&>'3=.׮ZLy׃єCO, iy=' =ICZH+Ũ{q6F/;{ebnZ qM,8uWFm&Ju>|61WTjh߉ga=.f.mcB B~;؉cmuxKE Zm8BJʫn Up'! $c2 Ź*e:+;e=B c{/vEm"S^ ˼3gA'Ex&E|Y3%syQreAG(89mcAѥE'Y Ddf=q{q.> $ANJ:zXnIx_@XBG&bf:MP&n; x!`[GG_HP%åG|bL*v1JkV0$;N)BpksuM.}Y)UqyQc!@kEwnռ [ a}=|yr8IϰQ6Zl}yB_6ΐYr LKH^6`K i3q*!4"4HSA:M%$Ҙ 3v'x#6dТ#Ph7v҆"Jiʫ#WpTˊ)ܱ(=1ĤˮVKY 0?2U@dV$T 3z,"GuE{Rh ;-pNY::;m& @AAD`n4e.D5W͉8#O1j$)Rx5XšUl.#l+x:@xʉl9e+(5+rxQd6-+g`lB8b8 ˀǒ9 aȣL|6چ'Gzj6E< dF+me;i :jduwoHx ʌH,_+bˉveG"! ce־yž[wu'ٳkobhTߪ^[ʙq&P6r$87q_._K/Z-dBJ,OFhS)Ҹe{2t q# VQfIh3(2Ɉ|A6}s.mU *u+G Ы* NkĵIV;N )( Ԑ \/+wbe]ymtvUkozMX!߳9ǐӔx7{`bL\v~%cP-+im¼=o,]jO + `'>[Ab1ފ)/(2bke#PC3ңoZI@`ֳpSTZy[fiWFs [FgZQ..ܒ/ I{*‹s4Wx'No-!C}8OCOX%6GJ'V'U'<9e*~|]KeU2 сVMo*. <cljy ;LSy&5"QE=!,P>_`+Zga֫rޢ=qG !Ō.jѡT垶6/@Ts'j/qOmY ڞ^N$qN.*OW@}PE$ЭXC-ɍ5w M$N&bvA۠JܫD=+$(|%(HP6`䦆 PF`{\Z2ВDr)YXuڗІH %!ݍPҮ C-}\.xNrC?{_>Y~V.Bp gx?̉8ݡ?m<j]W nt3m&&f$ ,䧺*"mS`%?륂 MgΏ9W0e0~t(]F=mR6iGpRcu Qg n*r!GU;xѧFIQź\&T܁Jiza~9At+.ca*ʼPy?7Yا8 J?j;>e+~ ,ncL8d~Rv6VY9$ IDzƍcҨo `T[U z(]lHK4Z5q 4g(B *&ew9UG53|24w]E.4j$qGm_p%c&iƎ vӪ*Ykm2ˆ `lEsE~63s*%wR/G3~%g,Wٽ/vsfxM˄cr44ydFǧ3/؇࢚M6^ZyLm%6 \LǩOߒ=brš+=~-_W tw|L)%;GOF&'D=uwɆi.Z'MM=iZ1TaL3dX~kRh7, 1:`G|:'=BfAvQ!Oe3i.ιT&3k$V(n4qk5\2hWR\f佼ox9?BZx7-U{a`ܞ_mlAk4oAsz3m6uނg~\A׾&KsCߖk10 *!V r}QU?`dѣE>?Vsbْ6'$3/6 .,qR`xWlbw9l HFkX{tӲ̲8[vIyhc*rq%*  v3hT7zK*E|gRhnw88ȴ,Yj-H\CZ󶈓qk8̠C"20mMxa[[-]|jqG_=zA-0|g&& n+Ynʾ]YQ44,_ٴUyfHYu_y :EF&M^5mUQz1=0 EshK֜Zp -T|h:Y2:!O ΂!~'F<~R` TlxIcn^vWIumӱ,9 {9# _G^=~nppۍJ_?SCgCdmb2 /8ދUP`9wF'fvJO6RJg(Y^wh[(n#zI$hdȍw*X)U^:?t2M*HdF>N*65 dLߥE2b@[cg>ܧ)e&3rR9Cbnq$`ޗ9i=K ag4&zp)#Y z&;BnOY Ƚ¾}8fA 52օ} `6Sہ6dՆ&oq#}ALbl~Cbsbd篞Btpsε53MJbȥV%Lz cJ$p-9;Ze9)E3U9> Q1{wj5Sz_@oG/%UkT  3Zn2e@eRe7Y;\ˤPmvyy0Xq.Q3*V='PnRdž{k R0@'եEB9bDiG%I9Br5ܮa_r49`(sı[Пt]ac僚iԝB \بgp'w$S7;BEA)&a!L@ވ @!Pb.glJ{þMZFܕ{ԝIJ5baY"q#%+i67/ypVM`wkpVa!GggE3mF5$]9K/ߝQ:97Wwm[[lkxV{k )V1ƽGwCރ/gT?rHC9Wm$KG|RBAnws@( FrJ5?JNjNv~l#ڌf874t1pqyL*#@j|<7᝵&6p} mX9;xk P|RsR$"{_]k *o 0oBYcOAf<9Ӣ+@\s)5< V>СNƜ!媎$!} ߶ Pö׍`u pݰu;xz\IL7IZoJ*]TAxI5(?ZV.im}J@Ҕ$>-wScEsKSH9UeW$vG zT;?E[Y[ᇇzR݉x@L7@veMzg9YM oţ@Rw{[7ڒ3s1; s?Hێ.^N*T˞W5+/a#y8w=X9iaUɸD`T=~ѶOx6_과HφLlkevP;!sn`:gE?V 'K[?D Hid[P (U76""lok0kzJi̛NMԧY_|:#g,F^%2o<)?/eKglCZAx|=GB~;b*]Cemw_TF@wb Aq=N[Co%d+{8 ŨWu]Ѯ"DLկ!¯9MZU-\0#_aB4"{9Bt 0Z*ljKfyO aFJ!̜D Ht8=Bv*ܭ@'϶O TqKG_M=.C=\˅ Ίqp!:qfDE,۴#/|n~%?h _@5cB4AQrEEy2Yvs7DXЃosJ\vP2Ҷ-'؊+W"r (]Uh>ϙ?v3ëͫq` a ۊ]'U}CŎ$ct5ǫkk[xsdjβO0x߹sgN_,NWkD]zS7TôRa'ҿ"ZDi~4ڡ KFUI ~Z MV%̕CGAHq&<{A7 wE,lwIa*W4OZLõbVp} vC08.[lwhªÚc:j , 6ZVP›,imG1qW$FN5@jIJ3rjͪxBn@`Zb&d z[e d{Uшeԃew.@A.9Pm7`Z'Cԯ{K륓UOSB-_ a.`gwރ ƣ, Sy /l.i6I+0ܣm 憜悟͋LtG0;OxPhd9v+F# e"skse>.TU *s+Xذ0\ gN{'W*.|s+-h1Ŋpj8 b>TX֝c謽=d~Rcuar-v/;%֥/7h,_axo%*]w*5:@rڳ%IPV<w/P#s^Q~ohoG9֭ H5̠bk^\V^y;9Kq !A<)l蠒rgmvI藺@hNDۊ, KlK:u-d  ~o peQU4 .Vg:Cm?7fi1x߼`jIeU nhp$vn Q6e2.JvnöuwJ+( ^kbU-Z (If3/D(iSpߔwVIg55frrނclekS5vDt "W$w@lmp hb9PLN2}j֞tl; p|G~8cKpi"b6Oo߬K4T;e=`}tC#7|s'ߘ9$w~N_oI=ecPS0; ϵw)ir'l ]nu )8<: txmzt !RphsYˇYv]NFVT@[jz(., <'\%ݲ#_—y 9?Yu;A,ꟶw'u> oDDd 5>}l2'"rV ɍݎP_ )ƽY1P݇j%)7Z,'Toyngu5QpKI_1AeTd'#{TK(|LӕŐNO凣i5ki_7Ѱg fj;CBVAE`@Lnp`5`$(N+l tz{ɿ*R{1/̡ŵ%Fic|8 :LJ[~<&J"?͵r~c mܡ[ut}1B=!Ft~^>0f&bѸIZJ׹%uC3 ;Ɖ;/m9laC>5oZ"tr5+Pvx8W@ o ҿBom/5Q #WM0|<4߄9k 4 qУXK<*&LOOc\P ~m^cMP\G amƿlGӂjYI1}oP|0~E)/pYd 4͐;0,EߖJdC0i5rmo~;ȳ|nJWqU<,',3Y/ ay:5XA:(!FsFH%PT)}T6%V48HyA"dԢXk/ΊIN p>d>,Kyne dl;bNvnQJC؏ܿT^&z%A+MsXhեV((}kr1gΤ k?;g#`tA/#AZ'cd,~m F3ՃQZ-cK'V:r3n!|ȜrIk2Iee6`q.V5τ`bt ZT^F Ӏ")ĺƠ^i{_P,VhD6amㄣP/ZzvmλcQ )}DP!m7Jr?rb($AS4%C*~O  C 'H1 [;c@g*~J;+ V&dFyta-SM?s) XQ o;Ft *QIW눸^ pk 8X.XqA#/%ɐ?2/ff0Icw&%)LxtC=JW~g'[6 ĴudSJɎhOѪn0r䣼#,4W,co]K u4#q'{M^'h>z Tl'w}fk5Ԃ",?,#Cnxp}80%{r0ʣѼ$p: ${B<\LC$(?oǹ7:Ml` D!— ^èltzAUdf+?snCUsdYwGa_qx :cfF"HSyW(<;=>B(GQLU< M2I r>Kc^qe84'U֗WԺf c\gq9ЮNGSW\p0p[E0W16gR2MTì2nb(A3H 4K4HeKf珦tպBĐ0V8qڝcyhiWуx_SYuZm0B˵yt6IBA;{ǍX2bllh#:572%Y%eoT< "Lb ED$!ah ⁅ƁyPpw4@L@R'0bT صM@c%]ِ=5^@~D 2 ,(*r UpjIMq?̭(m n~R7TXP\f qKh 'p?(BgZ5\2K$dx6zL?w ʋ|b&,#[lRQMr8Ui٨g6p-|Uh.3oƪ.=1?I^; /aCZPW"2?-܁tCݖ;I.B  sYЃL\g 2ؖXe6]h/0ulʜ Rv9FQZ=s\DCrʋ` XvY.#1elLzZGf†C[[Ok+о] >& UlIaoљOg9-٤Z|2(eډ08A5c~ v،5doNt3\n/>(-fMRܞVҕ @WE~iM0EC| m d-ӿ :;h?դnM]9zgw,~r[_p0 O[-n%#(@LQ i90D4"eEYL [Hug>`l/ AµI#Ji3.8x۶ T7oF\#IRTBhdOYS{35ł |h|A^_7tߔ{k\5޽pҥ庞.t9z&]G^aUo->/UMXG<-Bᬏ@ZZ()A/%};(o`f-陨o=tۀ_OI61#nb_IgYmR3kPv: vwٿj~ Xjl.mDh?loy`}"ثtD_wwp"Sb~P|"qrnXDa{hK~W]glבǝm`x%nۅ` ][VPހ xk 2v:ŕ}]5[XP߀ k5Pu x.-DWs$l"G?T�UAa}3H$lJ*$RՓZH~$Wmb @}u>!4EWw idTŜi9yRXFU9NK..'tcv⿱]KB^cSnEuΟV =d>;t~e<).ؿ>QOh4({ H$ZqO<)J6s6ݞFI.=b|٥ͽv:%NAܣU0GYqډXiAɧM2kcҌu hJǹ3Sn- [hZ@p1k!ȯ1,&5CyMoʩ^aN2<6gH)C"!PᙯLҖ\.?SS jb.N;Hӎy5r=W}KjrA2@~,ZC xFHTJ4ȧWM Y\9=zDΧk} .PzXC\IVpO G= .ɹJJ)yʹKuX'MIَ9,t~:=ۮ;&,ͤ(5 CfIN)XJ$NLw[~]O!Iĭv)I\?%1)q3 Hlѱ = +ph ƐT᱈>Ck‘bsrP{[ufMudM"ZoPzk(p8FZ\P}2L+2Ղ5?:MӶkm,ׁ]!gz'S1N:4뎙YeK3=0u/T K;>z&XP<*RJ(LwE ;xC/}Kw-*Ľ= Gdvq[z>3pt'jV+xb2)SDPRBԣ pJv ipsE^1y5>iV}^jC(6_wZ4,+M͊+МAށ1!6߹mr5px v. ?uǧiL9E34phulw07F+y(|w.\ ҏ~0\lw^.ʥ^-[7`D&gw:[m]xrq˙kl+ǗLJ^Ro B+[LYvY^ޟӻuWxp ;PtCOO<2F6Ot$ϡg7n|Q?_ NhIVC(!r2̩NKh7ZK&匤NUzw ]h$P^U^rܑ>o'|V~5W ^ qss<"4{[߻_Xr > ^ hd+ker2 Ge*ݓC (XI՗TIVem([;w\3{Q*⑒4w\ߺR!RV\ d57v0"pH,A6.E.څٖlE:߹h)vHAn9f )%f!jxA a axb6ldl!;`B~;,Q`9seTU# F[G9x\Am`MԅwCҀwsπwmJ{z#9CExebl5t(I[k;uْ{xvޛ?:[;Νֺ؎>eEfQF7.3gZQBBjxdYqѫJ~(xrTqf:f3r%泰fǛ?INamf: 9;3M\i.SP*.exq?!`8.N=z33YqnD5`a9"*ۤB}€T Cbxv PNjZN2-U2l09!YmQ(}nۍm)ۍ!# x[S %촗9S,V#P=v.']3nNoL6Cf)Ֆ+Qn[4Լ3]O2Y>W*d(0K+ycׄ#j}ʖ? qb=_Y]y#{Ӹx#V<|WWKd[s (,1汣ZZ^hE _+\2k!ײf>[ Z#OH0LyΔS}s' > 'ߎeYMoKrVmK:\[{;{?t Xn&|455,u_4A43WCѝS5t{ =LpoycOƀ's"gS.qvùUWW +=Ro;?o:QBl@BiU;zV8goC>A~ 4OE,+MF{;4C;:?P % 6r-g_*r\B-Oqi'S,6A&W?\,n(Bf.Wఴʦ Qo'3Q<y> &Rt)囿9{!0썮<3(?%Rpђ1Mw`CTis~ac#W'~0+ ɋ'6?zgx^qٌw;:6:?|?n|{_)pOЙgp^ d/0b~e8݉7x7:\dzf@>:O5=1¶Џ6'N)|R^dg 0cg׬_׹ҵ?ןїY>'5B1]-@,&# $+`O#,Q75Z '3t+wp+yN%a$q0}^إ!.=J3#u|d) '[]n°Q2?>xt,QB#D+dpk{Ujrq@t_ jAV<xKowYa-|Љ*SF=]~"ga1M,&Y n_1|Q]MS78_#NO&l7G+Ⴧwъ0Y`^PĚm~'VV__FQc8ߙ.w''g;̭E\T d; `&0ĂW`Td")Eo ]`DAҥQ6G;ޡ^y2s~T@Zm9!Ϊ fZŐEET g"'9V&\`h(s4z/9)/EPJLgKp\\WUZG[3"q ["x3S\bnKoy`K;┬WDW.wu?QHl-Nc`Gا>{+6w ?Dr#=F@c't3[+OAp& &5WN\LLt7n>G\l4M+! 0IсPJQ9?Ǫ[x^ybN^o)X4uM_\B=\1?y!:L͕K zbY3>0뤖yAN89C'2-riC-e>zE nۜ1TD#:OҩU2#^z8~>e#iYGю#ƀ׈8T :hfEwz`v=K ~ 1Mܠ(?,iFz,%xj;6v33KvD5KE38k bgB > aڕ23gO~?@ssGCƗ?$U!MLŇD4UZ!P?~CUK,43&@a?*www_+ZdM0s΋d f, ʐK1NXRLj/`8#Nq'>pX3F?Dr}//^~f{wyJaV6DY5YgV 5N#;<5H={`ddnͶ7LWT1\~џd~+bI8>%3s_uD:;^OρUYbaZfE@X- ʈXc2wT䌘+S%B,4͠ 8h<5SZW%(OS(:pt[.)Ey菅,\au@; 9_anf!z0M9t4? lCQloT/8~ 0\Gdrs|P( # /C.B.eqٱVРqHڷ#^5kB0k٬H 56m#Y_U TLGH'y 24BԀɸy|yiC/02Pei 240z@{nBGR#gylΧPD jeȸvQhߡbnY %1`+CiV*X-aK8Lq/♥9;Dnpm815,lkotC&oylXj*VR%W|} k}n-ԫsⷾ߉a]ԟ4[fs.Ȑ9"kfs( c0]a*i8| R!6<!53=Zj((=teGYD%eV`gXN(]Y|EfSFԳIքFki`21dsJW[ $zWp3OȫNmj S.g:X_ bf_S#@`?"hw>Q g:_4vW.xQ_=w(| wg^5rmu9^[c&.~L# A>otA׷dfdׯ6c^9o[x_mq8_2s:ӛWU{23.JH<4 @A3A{ L0}onV;$(ŀ- e[ v>uL̑i )rw];U*0tO0[H8;G0*a6ygln7.!߭@ &V ?<(UA٨lBU婈Lbih5dTփ(NJFHp ƙPELNSS %sZlYs|zTʔ4c@*%847ؽ_z}q+IҀU,-8V%[ߝਞ<3ZXYpczF{!ԑNYdR2~ Wz`GFjƸd26oREA߼]ls* };: $tG%w{_sMaŴnb8ӲSj7[ 2~\z|^;R[$GTςYr-!Vjr?̵z)E0кgSBct,Ԁ޾ ډ cp6e3rU<X u&VCotG0`K[ 3MBQ'OZG '}-Ei9paq[%m-(@Tz3(=XߜC4i!' E{Y4CT"$bF{8rq&^ M 9-!d&H6Ԩlj;qk| aFVaZ'EH s#2`ݯ'{ڙD|ϖih#A.t!Ǭ إ4`k, ĺp0c)HɌ>^+!2ӶϣN~$@GW] HθM9}ǾK񁜥Sd*RȰ=q'U{L9H0\1xos1l\Q/E=Cfy<#.Nr47^4p4zE`[a]#Юc_=~f}ZFBc/۸r @{Yy F6.*lpPUiJ4A 2{Ry'+ˋ^ņ 2LCJUʝQtYz綍8yc`r.(5TOq";X`y= ,QEeLCؘFѦ/$:D ~n($SPRύj4b:9z=^5P8tԊ9Rn.H)^$},ƴE>S+[N3dg? GW9(Y@>335'5"Yչ=#D+ 0Kclbbċต5s)=%KEv^0\i,-VK"&pJbͫ"j˨սb`cja Y.cH)FsyePi1z!^zw^5Άx /Eakv#tBńZw4ek1_V-CfUoy60)Pewח\i2&&ur.\)Naļ .1p\m/8~ 6J:/eS_hSh#V$2evH.R`£9NANfq[eAÅVؤ2OĄ4;%DՎ~܎ͧ_`Gx <֜3}B=)63.j4/Ϯ*:G׻ʬ̦MÆᐄ;"l*4NU/ :j߱ 8_񼐦!Gu{pW{I@\q F9i`0طXIU8<|(z:Ցce)[aH) )LHhsN}<@bQ1LBDCM橎SUl~S5Z"is8 SwS0hDJlnNAU&r~KٷF&z/:;iOV=5BaB {KS0r>Bsq(*)p>`= 5|!iJE&2he"Gj>Ǻ0hnre#K&V 1,کUQ@u:h\[yR`if|&Ho!`h㢀qXo7C~3 ؗm*/H(,PPNf bV1 v& ufGuag8@,)]lcjW0Su^QY`ޣFM\KEr ZIF4v ."kDiӎn)\ZBd)?M_?onP?Iqz̄de1/aK+ QqcGK眐G2`CqX"*3bYt!8RM$f>s{K{_QksH 5< T ؒ80f oToNƇ:zAFE \ 6% WtvL=UN2MN;Gsn!NPn9  X2nK,n/Uayu. -Z8Dsh!B e nƈ aޙ6rDiʰ&LͨNbRAo3QZ<8d()tdWkugabcs9!)T 'JA.;VNy^ T8*рv{]Σ1PDA/`'𒅜 ^f[%:nFzJd:A7Q´&,RDHnF9t􍭚tt[P}'ߟſY0H7/FheO4dEzd/q5u厀~o:ڒ?`^=_odA)2멚kr?5c,pi[31uYgLS-USG\$,knyI"Ij} !% -El#8e/=Sq[ I ,lRrSYlH*,IRdx gcбH7*)% 9=(9 zkB3bŴvScnHvC4ܘō,q1ݭW`o{lg1OG|l(hʝemS`2\SP慦 2AD;)-&6 &I?lIh799 鼝?&}_Y`}j"%߽-+= .ʒ8>-9v '+ =ܭ.` _ Ϩc,JC Bo%).p-ZBxc7]K 򺡻hD D}uˁ, 6XCʛ i13 ']\CZӴ6.ȹȕGфLBW%CF@&46?)lbqN9#8H𞍴koc.r"!OQ ׿bQY/۶:J۽/!y`]N4?nbwg n8,m$ULRJL4J1h$E»OiZ!$+_=q[Ha@EE@'9pd_7v4c7FC΂m;pbBQU' ؇[7WXډj,AWrm&Dş<"dSɘV4y :nhuC}1Kg~ Um|,{6Cs:ěIcixmm Q^`us6N +`:Ƙ'"]JWժ/A8xT^A}QvFH6v%˲uH15wVr:=>hyԐ)ƨt̏ E7Nlý1P ^z .JBFY*n)3 3caRj9|R#R GΙ">{>w~>Gq"bFH2^?,# -Ml`?&{ime2- 3~aMJb ׳A@LgEտΡFvYW%+m/ fT$qBu5_{E:TZYo>x}7WNks[IX4so, UR:|l *b~FM|Q CU{ԾWT,x6t5=Nctjs<3 "P:*nNs^-HmcH #0[nCui2nYiYSkS2k=ܸN} @i6\Dzr>1.Qn;nA瞲Cg#3I~,5c='`9؎ftyjI)rߋtNUC^[.Kl+$TY- Z) dTOf$%AB,@/@gI %Q}i/s7ϴΰ[e~]!47N#sLՠ$(!3"ث>泆,tkAiISE'U.vԹ̻rxliC~"tT=.-(7ZE;eW,ҁZgX[vP:ěX;bPY#aANE3\.̖rbgD1*d2YyqfF{6 IfGW(U9MBSKp. ʹv*T ԁ[T6 )ˤ:9Q}(\, vgG " =]A}m鮖M2mˆÆbLla .}Ӈb W ۚAp7'+SIݖ1{$d۱)8 I1ʹ~ә%Q:CWD%`d`Bd}J(Odyo`Dm$73ܠ*l]ѱuْu]5\{$g3ȴ6̒sGϘm6TU"LADKEŃP -wyh_}B9?ù9’r'{L -).2׸ շ\LmJ+wvD+dD&q"_HTZ~?9᚛g۶ y'ǒ,;[6Mw8qߞ&PeH-IqSo_%;֢@`0 zߜ:l#m!T^]Y~#Dd֟x*YwHEQOk'lO"fC˳mr}E+=њqܛgQ3F̵;Y6oj,r\ [MsKӦ"ASuN) !bV%xAU\~L=BP"s*0GedhQt,i(񝾕Y1_-Q*6 nDBf6 xU9d$*xj"9lތX */[G :mBtJz|Cmc҉1Prv 烼JٟF\p*"9xBȷXF0iLaRc\z{>lzֻd:'#8T.)qxhӢaiR#IϽ 'pCUb"M^=@m:ʏ/{yN_xSQ4PDEEߢRT+JAK"t׫} Enƪk:D%7,r`Ex9ujυa;?W4%Bj>^$jݼEDDEFxP2C(&+n`=o%,CK ;>phP+$}B]6o0W8*dYyd0˸02a]nChMJ3+Y{ Ā2Dv<綠 J8R+̚\1=1|"H%AFM ,cH('gby؅%brz0\Y)+y\`AjJLK-ŌW8-ʳG(kR~F]=o )T:TCbfe No;GoFhFbW`r#zǫT} Xh %|eczn)Yc{ |o[z?yadE6%'DPr8G"GmK%x:hX}ߍ|܄ű[[]Sz?5d `V~P\㲌sq4ڬ ,ut[wtt_A.#`M@ 2@n5}6Fhzr(~P&E䓙kҸ!\PRK:)*#NZ&LMY3V|YiZ7Lh) C?M|SHSz84&b1ᖔpEcb8kvhN EX hف1n‹&{{_Հ3"MӦE& s=MD5O*uc/GInq5Z6:]O7Hv!;dVh39~ݨ!/ +Lc&2y JG +Ͻ!vw\0/{ӀX 1  o" 7).9Pak4]ǽ)ò۟$zSYe4Cn>XHȭɳIZM7wE;j{>c>O4AmZb~5nah|+8 f٥_R X덽+!CYVCQ cwmgH(kp˵˲ [, BS8zm uq1l-MzԒjZtO%g7*xԐ&!zv:lѡIh5:KmRP>{@{_!6&BuGZp%̭֟t:DDtT!SCxD ,p9rAٸUp:ә!=mSXv3x ˛ %l=ĥ={֍ׄ!2R̚s/`va_I6M?:%GSD9ItmY`>кRņan;- a[x>ԼP4mX,FtD=Tb;q0G3o; UʦpMs~aG<|h!*95 46Gg7hZ2vFj$TZ3K#ʀg>-|i?tSKYW12W2u 6}Cyk+F,)pT{gJ>ą 7mH5'!^;ڢ;# hv,VzƄ,|><Rw%d#AzƴA&^R~c/*ݩ*f{ _MoSL!Hb*1 nƉǶ>>T ,gfq%yGMl&%#l2Ŵ, y4H1f) lZV0Q2v3^G`{{O%oT3f!0k=kcdjݡOXUGi#UJ_eY="ǑeYhiwvZa2UP萆Рy=8E"Fpp)=qʔb^>sM>z# |(ptq,f1o ^/D6i8P=.LH][0uOͲߵLxNT(@K 4,tF7>=ܻOt(>_@+X5d]3QL_'{_ !?lҏtF>dO>z߾zhj0~3/~ۘc}@Zg^zZr0wW ].(_bbHXUH)}إbᯘn.#ށ봠(iobA+"ٍp Fy 9Md`c9(yXv"9:B'?Hq8h1os#VI90_X/FyEЇ Tʄ a@,Q7ЇM)ʌ9򠤵Rޕ0W,`+6U+IBX*Uԥ]6BK<6)$8M@/V[vZgZ$)kfaij]4 L>Ѣ=koR{7)k 'Z^I%WcXݐh?tz9sLPIyz!{%Kc^w$9Ttcq6QÓ1PglyJ+HN0\CA;j7b͵] -j4tXSh>]6f-ǟx{sߢco:-a84FF2q'46[f#ސB4 oy&[W2AYс-W"I#]3qvt_O-X0О- 4Ufn@V 5zd*Ke 8PqnRMF wCp/#В6^FIAI!t=p$ͱ"oArmx+8`)wJD)@AT]ZK:$/Vj$S$ߐ;鶈a5imlHO.mt , ,M~jFaw#hi^x_^pYsT6Y*Op}`gp6J)BP JGB.>6ӠHNgGo,%9Oy߶diw.7Ͻ\i[t!3Y3FW}x%1 Ņ=/ b4Wz6 ]u98Ȕ_>.uW_pdMD%Zz. mfsӭ7{]L`Q4NmYO7zfo#?  'җ{ 'PɌM`[Ḕ&L6dxrk{^ 9HCKwřle!"^w7 _?z`]ӱawOd k3o-EMSrv7MZAY?ʰZ$Yw<6-D49/q v/t6K?\kGBueYúj+I'k#ͩvIU`ʹ{6F/3wM Z-Z \!v ^ݲgBڎb}`6[ {#仡=U-%Z̲VLй42{^- ΔH0S#8S_<$ .-KW2,;7fr]\ӲYp؂)9VJ[ҙ RyQ>%-F B?c"_W$U^BuÄ+g­TeuMY{D-ͿyؗUgjuK~w6o^,x+2d[ܠQZBE4N~/|EF@`{,|wQ_c,nX܋vNJ=߇؟Lgp,!B(X7c .uѹ{/޿_aՔIrpյ;Y8c~c*8BIEZ8pd&NR૭u8q׊}V=C0w۔(A 90=TrP-y_!Yv$#;EBU6yF̅8^z\ z8ʥy9VRD@#tc5j3v{[XU:wtf;]%e\F !UAas-hgS v[&8#!ݤJ/PgVM(kZ]b,6ƊS[+K#L(n@YUF.iA]]W;pS#` d!oV4sF՛[feEB .'Aꔋx9ۏ*󸋯'M`k'WNk(np3LBߧO%[:= ?ܽo䳔70=Q^Ґıaz3*KʂLwbYz&2i9H3k,}co. Td-i-){H30O ";}32MR}Ȫڅ&~7o_>9=kR+:=yyqstzzrZ GH~@hkZ43ŭ؁H&&.~<~U bH"yo⁛̂Ć`"|,dr,铧hJ&Pv7 @d#q 64e4wA ΡƮ ]RЖʼn$B2'Nx5-8ut+ނvobCŭʒz ʄSy@S?Ig>c߆>i(;7x{M|6"\)c4b!m)|]߭5)OQE9XFw Z!FjLV)V] G)\w23ѧ]Ùj?.ӫbZo"7iq ,7f;]ZB)W:`=΅"vb'8Gi%:Bb * !+ߨ,Dc}(n-dWИ'bYf:&+Mx룧??٪Je)z74s=f`m_PWݝ}]X!-D^2OJUf~-`/|L{o;8\!IBeB'JScY3zqWmJGC? 5R|TJvO/{J LAfQ#<K#:ϩ#څ-:phG_JH\w bGm+q4-{'0u/7YJ5gs?'[9>Y s?$D]7JI\Y֭O6L+4 0kϕ{]2o+yĕ^24* R4]2>U9RIZ +(΄^UQ%< S 'c6< ҝ|~n_7tJ*f- q;Vٚ>#$vq$(»!nv=cb..^N K!&q!DGłE!-sEP~oԫ9Ȼa5橐/Y (o&0 ڰCy"y:q&-1taMa*i[' %lp,IcњW\LACȿV`L]87#9 M!AR1˃קnd!  :9wʕ` Ӎ )YZ1XQGr,+7]@a"%"QB @C%-ݶau|խ,Yk9URQO*rh^D21c~!q^ōIȺ,8]c]{&> l,9AYlDŽ[^HBR|aelm [b=.Zғf2eOm_[FFN)[Q^01)X<[RT"%NHhL rٰ.. 1uլ\;KlwjٰJ;'caf.{oGM|j̳RSD~u$+=~M>Y08!mɍbn4>EjnFhkik4D0WJfᔀ*`Ddګknt0)24Z ݘjٴ'sUKg(IJ׆Q_,lp؛z^;8Cw1{5aF^y2qm(UO#{$խW3Z& *^no~3 .EURV6DJ,H}@Ab/,8-)03KB*5:)=x˷WD {8 {η\hU y) Bh iC+_׳aI#WK0Bk]J) {MXv[\Z[Uqc~Jˠ͢Z%r*PbrS3MzMVe0HLtJQV9Dm=!B2"8PhW=gs7Q6HwDMJuLgy'V\#XB2w/ vL:Nѡ鰑(>^=kT%\{ŠkiYՄ;ʚFm7a|ݶȇ!Bpla p%x]DLmedp1P6@"y-3qBB#&2ܐ Oka0.ñ$6!dWJޤ,{f>`3 taK~.?֥MX okX,Y]a Ά`a"8C7"LKgD!(^?g9a[(fb0vGY]ɕ .{P'v?JRRRghx(k8<6DxZd1e7jS0W oJ4OV)np2@{~zzvc1Gt Q  P?r`Oj@À8'9{o:[E'ASdϙuȞYwf)=w깱'ui,J"ۯA::X]7$e+/@yD6$3^p.n<*5|y8e` _yXUИ+T.\uF}}P%29֣m%~q/0+YُkO!\Aa =79ZFP-Id79kf7_ <t ^p)FPK~OeSԧ$5 "4= vFxXYl(% Kb/%*;(b0v2peE.C@>e-1pFX)Z .݆*π0)ibRil[uA QJQi <ȉ*v>I ԧ) uGY+ݨ[C@wXF/5uYv!O3q+3ɯ^e۪*Xsvuj|e:)~ H 3 2s2mn`߬:v4r&M&D:X$Fn܂EhǰwV <4„_lvҴ/s 0ALim/XQi\}'}@(-tڣK3\Q4wTl>1'[GB0hcRWzs!eP'x;LM:R^Dݾ3*u=0ǪTrbgL ިU1y1!G!sP"AD"G3iÓ'R$hf9i+fIY,R\ 䂩G~EAxEsj1iY5ƒ&j0L)T4Zp7Y0O1l$e[ p_ #nT+A5P-:8eW32[4MYo}MI9}G?#,`N~OtU 1T~q{?$@|SΨR! _oQ^DxUn쯾L&sד/pνQ)'Ϗڝf *dᇼ~aҿO9QI@U򔂚^cip2MQӆ2g^HK(ZI Ka[f@ɦdӮB7ȿm^!er-E\@{F#@~::}s|*F?5+Y] a L~j=q8H۟)׹h h p&h+Z:ɤcMhEE5D3e. ɠشFG]PyͻbMoi*j<]jTT-oyqTFjo^ujkԧ%-ZџMqby(_LʜFW ;zu0p$}`FǥFGHBK.GI"K3+3;`m&>QVX?H FyFKD*ݼƟK8'Φ/<^nQnU5y[{Ѕ' {ɽO+DLh!F_K,SAlL$ef`.jLϠ(\yh$I;bէu]. J_CF^ٚZQEN^(Y'GK\)^%tMIHF%{P  ~L c#I}8G*婸6 !a~dQn;'s;p5b:WTq#wk# 'pA?v86)jős&&dڤ1\ɉR  ll>T{>I#avWVY}V_ikBcoMQ4ӑb3mOhpv<1MqCΩqZ!$-ש?!!eI gWf?ǁzMmrV1kI[M΋'Ϝӓ쥑p+u 2R~(=#Qޯ*#Xe R0N⾄ǩR;fLP.'L%Ӹ݊w/9d70 5o}/2#o6Z$kcXSDE"" 熇l%Mm@,'ڥ$#C8-pzC)J?'7J k ~ 2<~.Mt7B@B'5jwA_| 9yuIUyW U9ʬٕ%[iu.*S,j,8+~>xM| ?JP!4p˘aM󣗃O^Cϥ<`Zv%8Ɏ([t}L'Aٟ6P?~ѣߛT(7b(Ε[A(j7N]댽ˬ)`03HZ.ūkDf6=h"==qKg@l4utZPALTd\DXMsKyHj(K ]1yܯ_N+`. DlCGph9uP/pK`R cJrr<5ۛB%a%+2rqʯ^IR-Jc]z.lpb9вYҥ X>sEwfG]߾b5 C?C2n(PȺ>s<(mM^ye*[>_3>yaVe;G/ܓE`K$yX&hJ[ޥ;]'<|7<=<"mڸjOq/."zq)+T%ٖ+ZUt=j k.]'u~?2?{|7-/zuI_d2 iG C.=QqOhZ#` @Q}P IH)Gxt5d4wb4a`}!gcoNNO~O$d8 a*HOMd~C){ W\#s\L]iYx%T  B#߲Igm+ʓ |8mf9_R]ɛH G44bSQrV<TImϫ004V% pĆXD4zљ`wES=gM%H(ۅ XҹTΧ8'x0XTqM##EWU&3ye )i l>dSGބVNQ'ם+I!) iSPn׳.n7Uɞ8B?-E|%hJ\svB i]W+G*0;'u2u?\d|V Xm'] $Sa5ߞ(-q[.ӟ_bwF47t'n>[^u $q8G %\|7Re++0}'wVH :W``aF8wEP 4:Tjg΄Bt^y4yػ0?w_+;s[%fkȜC(w+IO:ȸ0-Pq+1 l%6b!KmKwȝ*T׎3Zqap<9k$,wp0MADMZ ;MS32T59g6QpY̸TSρFY\YRmՉ$眴J(zL@Nsh%͢`TB =) crhʲMt@\flTv|g3E Hs޷ ~?MJ`tЂ1NN=BD?UW 3d&;jݎt.hxٿ? Iyax1Pa+?8Ӂhd R̕0UreǠֿr:dGBG{Ad dg&s0֤g1,Imޞ~wzFu3eq6'`h AhĴ1Ue/NJ`XJ*=Sf',y1'./7.=xz5Vhjso)kj& {+[YC8}a* ¹jFx(UCgJ&kFht2Ĝ #ArLFѳ其~jkɄP6)'p^ZTɕp^#>DXg>NJXbK3@kh%B|5K<Ь(}) ]D4* o:0cj  =ޑm1p-hP ᴬ_JY5l:_h]O$+<Â!L>'q*o=g)m42ftO?+Ӊa(neRmj,HsD3'˸QUț镁|,u6p7my {br^g4h,ZQ.ԴFJ%{o=d@ċij^k4+ 4l=M3lx1Qݝ}װ6UwGA;_"`T/A!^"H6?D᱆mBcKƮ!z35 e+(A(;p@̤ pq ?N9c` JIk#Q[+ h\Z<,Jb"4IV'f\MY QZe5~m3v>M_LOKegY*rR5\- U3çV 5x$417ہ z&s_.y&P$.6j gCK{©D8i Rk[mKHp1SӢVa;%'X$ W1KNHCOfSrnkQ%+y  l(/'w6|@}hI1̓ ~/sg C6QjC^3^Q}ڮ3 3r̝i5<%iLg Ygk:QݘɫH%UpY_\:ڒ6u%/*\[p2)m{xW*"W8k׀x1v4xA-+4SAOfK0%rM)5gbCK+dkw{?~~OU?r '~'[GK%*Ϻ.ylը`\Kwu -JZh_jdF3/fgvn{O.a3ǿ;N\M6 Cu]X ̱ꑾ( Ƅ!Ol|^AHx[#o ݁ uJ=ħ,GMWm~dKVQ.ǐ=a?H%ZۥfSȻ;tLVHBJNMDD_&ć|Ӵ6$Ái+P"DϘݏTEu*aLHQԂWHϥ|p)ȧu4snpp@$s/"LBT S'˺%f?)襸ӌLh?PGI(7}Ԣ/prhsHz&.,l>z#.`;MՅ{53W@La՟N׶Ztz&Igjp[S/Ӣh篧@r ?;eVkj^҉'|+ć ӗ/8;ηPf\~ bfpX[|4 A'/0^m.8?}B g)bw4Y촄37&W4E;p\%Fz- _Y7HqXI:s;{v{YrE̡?dǴ^m3uШe;6v&숲Akt+yRi| }CpawziwΦPBx_{{ dp:vj*󉏠r܋ xRG;)9 }%.By#6 ;H {Cr0rEc~1Wd~XZO'KuQJr3юtI:8Xn5]ЗF.Q$>QTJ1y^v Xu-LKDz,ܱk}r `xޞFⴰȜ~!֡jcHVA~nT ɎVe0{NR*9Jͺ$i:AhJ#oDйb P1oEK:2H,6᳴6܏nc|=^Cen-LYIzQ!5d̸ja}Lf{&KhVY4bIuϘmxd3KZf}GsM'%t<6@ǒ]8z2C#2fux_2µ;Z7:[D \o/셽ͻʚ׌[aw+Yv)iW^PaN\QL-YJJ'ݡ4z[0* ?,$1u6:^e=^j=5t veBnLnUwɱH79[0n׌u4_a(mܒZ-qїs.CK?jʌ%i)guHusR`jl$*0m0>^@ps= x MZTF) Lfzhnu0o1g!W& qza􃥴'؟L<kû$T*í*T ӈ:}K!keX[l}*&+‘b0SWZv 88sO9u8GbU׆g.w\jBH?j28ꮺqԧWllm<2ϡ/%6ĉ=tA\>U0t"m':g?q]^ivoMɠg֍ࡌ- eXy'eس.3 9%cd"?(}{8EpJVMFƻ] Lp A(L^ti'g*.xʪn~ޕYùgti@|őz=[\{xHqK(fnL{(SO}(2@Di"x+^uU[ J-F }rަ[QDEFe q(%##rBnonp_"e:bv 5v%ƙHt"Ȓ]1QTt:|{CxJ=|s#K$"LRaFHF(h?q1v`mBvyn1(0S)L CP XagXݾA`Aȕm-3O$)hNʚV_,"aSPC,f [Z>.dxLa=Ec6jv.a.ڮwTכH1}OsiIUT׳nVbfCt| a+, Ō4sDqT)?\-}5pxۂ{d%,/DsF.t<#=q mm=zjYJre1 !)5hBdR"lMv*f3ofAɰt-)PQ#2{%h>EwaR^ z>8;|4xstvO'wNH/z (.co.z? $F%8y` ٔNęX`Sa2ܺ;'m@b"I@ڒp-]ǜq_TŐ˃;3Exy"X8}K`νh4Jf*g0LzHI8`ZNQ8}(G]:GpQb5!+{V)7l\oI^.L^]̩)2_SRdt$Q\Tʗxwّv%$zycھ֟[Z.= p^1E1E:Mr1]5mj)E%vuizNe1cHav(m. <c0qb³-H) J!MLr0|VnJh h @kf15P% 6КF,8"kN luꑛM|K^k o.rqtK /Il QtA? #nfK;0lA>j2U@?\h2^]tM.CY0$%\deK3WK(:ỌhI+? %뺸=pǾ)y&,e!Rv95g'CAmSygL;9^~kXg>֑hye(B˵RDMIY7ep[WEN!Z_\[5rZcbU> ס׎.`{QtTJ8,{+chdKisx>uM֖ ̣1~4 džc0=4gWı#́q.t7%L,V8;}KQgZ1Rekw:VCO.)v! 2S+. 6>0u(!i7[h-Xk_긼u'7lScufVNUF1o|PY!~3LF4{꧟߿}׃'~8~|B4{C7jLUOI-CQ3Cgش({|jruXx"H^fz0'EˍBC@niPk-vmqMmX 4eI- $,t*ψ'GCآre:D%Ih Þ"gq-qL@1cVR9 |CTzt<%&RqJ_Q @SoFĤB)GA JGXJZFrF͗;gU9c[y }ej0åΥR2˧U g>mEXÆr4b Vt Q^O/:fuǹ A`] wy;t7K U i!Y@p߆cNd&.%)HG ̢'z}de])0 ǚ7Yg<~pGQMUmQc1BɾLGɅK1̌ ?w+ӐMédohGV϶0!lͧ-Z]"˕In&d?"NmqOU.Zap]9j $N έiyW7aX3lہ+:`}ڎIⵜc^N' jWmodYc-3iսDzcOM? g?Z 1;-] tZ6p?okm+DPHJY;X FޱG){&>e )#f}? ^O܋es0!~nTiś7FMl 2 8K:!26<:yZ|xF8/冦d$i 'Ln-0F }%i \>9'}0SB㪹8b C*i >9I4iXN:4w_9{Eπ8!ciCHr0$a f"Xs^XiHք{;܈4ccNl죜~XxKߟ=89.W+r^,+6^ ?n5o2lf+3Es0#T `j"8  Oєh`ʎӼjR3|ZH@,ߒǃV 4FCG pU k5wg]ɫ.}H#J QmUj ݏIBxޒQZf2Tg;]=Ģe_ >3^D 9|}3-c"hԖC"\DCwt:-yK5>ȁ#arCO.=#A>**9 a:"YM4 ~ GzI뀟3&VZb)4hD!ac&0a`F?=G^F~@ 2V L r/؝A:/yE!m ef"r(ݚrr5/n<1eþTT6HCH^rv' b0DiRɃQfQ T:#ז&)7rUpNh&VgBbq^eˆБCdG!MUhGշye7ݒpa1q ӵPP|ӣ7o-:.瞇qrL~?|l7-Diؼx+?rLM|8ڿdX8lM gg';X:e^lYF@0A~7oP~ㅋ}| `)@ې ;B澇n;0n^>j(Ԁ`|b}Kr؏>ja5#vٲKLnWݒY_sHS9F6'Y%cNG" aSz/1  {w?7)}3-!K2Tn>{sM˱D-og,E_K>0 %[٨3^FQcV_˳X (?e$'>de܀wB6Ε~UCUs*܊\ a1TԒs0R<xx2B PM<+|_^ػ},͜gY!AR"W QpQW󂣘 rJȄrX!-en;,̅GᘚνyCFcC_Y-7o9Agc_rVr@t8>[ߕ@(&&\#LDK%\U)8YLL ͐&ۡP0<(LoVQC^ݥ}+mY I5/M&oWEf xO3IAϼ,\PX =Kz^ȧXW~JdqY0#7fr@iȋsXo)w([wǕ0˞|{v? :z%ehI䒒3Q 5&FhHQfbzܺu V,GM)BTM]H)n%5a@53a'^%ET+-Eh#V?ЃHs#[=-X-@Ԍ ` U0jո)e] =7xQ gJ%iqFvg] {_N׷Sǻ/~y('J|sy8GIZZ9 ˕eE]s"feȈ ZZ&yRS)#ȡImQuBI{RBgvK4J::-A:i)lPT9t".Y䗩$>`Ϝ2w"${ ܞ^؎^?<| 亚ڣ5Sd[tVru3autl=7i7JQd Y#a@ߍ/m|rt7fH}N%eS{!P,xQRf\r!m8)#b,ιq?%gܨبh/ؗ~u=WW) 9` T~ZUM,C[9ߠ ӵ8AK[ pkej%32>sFPo#XR L~`%V|X^F~m,WN̺4|e9L?W8ѲN$A:e3G C-+P,pm6棘U碦'~jA٠zhh_* օ~KF8qugvK[,,]N4UQNULEy wx2h'ʆe6%^܄œ~g7Z(+MGڴu Xil01g[/njm-URz;ۦ!vfOXAK r6I|⾐0L_y>Oʳ)HCےI0b=qГ͸9$)9\3Hz1s(]U|myʣZgG:)$pn*¹r]ԼBY4(e~U4Ao.Ki0ˎ;sI5gČOceWƜ:S-O|8\07mop+?i8`9 m{֥:A\27ww+Ő?|y-4!u3kj9)c#VAYPLD4]J<`Nꊎݬb@ V=v?n=0VTthR[dŪ!Z&ỬbY&z`OL]$%=Ֆr`6ϛa1λ/%ߖ/u#Jӊ<\~¤sC Q"Wܶ MQX1Iqu#,_vaU[g) yk4zȄ:Eb& _X PTEX6/rTKZl)ey86`;c @+5@E99$|:G]Ҋ ~WIa0Oƾ;n5vTNܢU~XeI,OСGl >i;чaڡ1H*Ƈc]cd0wp.8Ȃs9yè83 Eb)ym}#¢U rMza]D.;=TY{6O{jv nr5 x1=~Cȁ7W?`eV!?fcfA}6И*pt<9~)[ A1:ysc%VhVD'v QtG8GXc=V3GIS.}C/#IͷmA?̀ Hal{l)?iޢhfﮯYw? j w2e2\1iߢ(T}9.0а:Ǥ5~8ljP`yr\'A}Cp烫Z刋x3m>Nj=Kiss}Z-p; IEtS_|~h.[;7>6~߆{Ei6oEes6.v}:r]U{CptQ 罠0q,]Vs) P _=OpSԕʕQRBcgpdqW@P94$6B؍Tëe}h8fɮ]#^(߳^owgu$m~ >^e?4*YWrڸ1w$Ea1-@ ,Ce/ylw>=[ ^8 NBU14[f=uo ieRc{[/240OϷ w=B)/g}|9>_-(/T''sr71 O( Q/n(}\-8g) _yZYoG3[1'L$  fW,\,2R'Kd>̪k7p @BR*7-8yҧP=+(9%^G̃Ҭ7 z1Hd&S5(@?n F ldrӔ,r><540Q몺j-z<!8p~2ꊕך]?}) Ct}`RᄝpjI^h_/_ڈ~o5bV' sNq jz㍍8@dUl-3<3LR{”+Jq.lk ;R*͜  -}ߒ81P7HŞ3t^OSEtmJMY{qp;aC2gUoj2;HZӡi3)P:[0ER:zIfyֵykgR Fwa*#z+Rڷ!iv8T@k,bEX:权A({UcUᆕ|z@ܹ֥@NlPM$dz:X`{E%6#䚛BuMK|t㬍.!FgX!tb.6uF.) ޛ@{ΝnU53`Q0q}$KN;yX%$&TF:BF [KLs"0i|u% s :L-In|77VSۓ|z&߷ci?eڽ{:جmq]l@!]ɻtKx0w k0]R&BFó𭬨kH C`گs_D{,ܭ" fLn2YfƪrC[ ZM)GV I kY] i(sH!ۙ՛,s^ |- m͋Y[^"/*Eқ %\c."d)6q:Q%(w`17 g Ud=ڐ ob=fHO`^)DL ~h,0m^Bͬ3% }sSk}>^T 0U9 Y2PR*k+ڬuW~H Ȩ_VAy&x ۢ _rx>."1ԍFoM ehf-Ȁ9{˝^3gk\_X"hSQ æ]`XRY/yt}KtR (Wm  X0l=`# y6SR&r(ƪ7aQ{K iQvq~j*2y7?zCCEC|~,0=BFίka_'+LxgUTW,[Zu+&//Ë]sK{!d%2vWqP`z=d~z=;Oכ8MK@hU} ~_0 낈Xys`sqr^ՆẨ|r{vt4BCzj,2"\L`;j;`=!7 V?Ȧ0Jgnb'? i JP_+ȶ9&ZHk|փ|NNazB@QS>%UZ'E͜#;լپ0,ujsw)041`HݑVVo3[J#ȣDqwu o^$$N(W$&gpM1Nsb2LRx{mn3\j '^ _ΈO8f\sG.ɭ\!n h%XTg5X )I|nR^2>D0s}Xx%m|B1nA`^>M_J}|Fm Ufn y6qQ|Ĵ~Ķm?͢իohq8eꁪ\788WCSdQBLG-!T偺tֳ^5lsZ̆h1e$yJa4g}%C_J{,~@{`aX{aI瘇m{-}W%ڭkp0e"yL8&>RuiJӞ$nQvZֳ?{{}@d0yWHMM`OV],&x'o02Dc/u'= P 0 %LlM'ypdNSa)MPlز;\22Wx 73Eyٸfw[Yw@-ohVieWz3QK1"bM> ..@ةrTJUՌVCjn PkZ'*%=)n;'$jÛR!v52wo[(ڴ(z㵛bNɿ+H4 ecH~-/& JAb.53@Whu5k]P>X/jgc+'ۢF_zWaU qV7Sh/yA쟮BOx ۾ax /lWT ۷60o? Ez'j9.hҪM/])aAݓ_Niܾ_9k|f{kkU~M_8(Gwn}[%^ҭZR厬k8{'xy?5`{\=g!ߕU~[9c[|]1Xe#ʱ99O*9QwY0ƂLUUI*1_W|w=_m|>*E4W9{`?U'mxx/6>o#ڄ~§:_o.ڨQGy.FWU&ּ5W(7l1l"6_Bk*Η|o| 4-PPȀ'[vG\1c;2 |9<ߏ6. d{oœ=y2z_[Lk2Tv$aOE`QC&8,~G~h̲h/S;D1:ɱidώQ|ózt0&q ,2%Os&.;i`Kxe ÚܗhR%2zmїA) 6ÞÚtݲ`ņt^\7=̣{ i^CLU >^;xQcrz!$Ȟy9@Z#=hY7HX6m%j@E:8IYEʬLՒ2;jNM 500ĵƷWm})\eǞ?;T xuCfxX7J2MN;?/?:tJlY&`79QY&W(ϝ,&OwC r0550"q%4vЕ1=Fk0x# N$O< ,++E,\ 0ay60Fk3j͝3v g&ôTؓe2ƭ*oE9]bRz(v*iS;]ۭIK raPe\w4M*yU+mV<\@Nι#S K!`1$#YtZǓ(sԢA:_+F?(t{pACdS`ZCc K/\chϣ;/W6mT';v soa;)pY)€,ۣ0s07*3#{ՅE϶x1[kE`nT9OiNQ$zw;d?.6oA:1t?z5UrP?ہ9Wd%Fㄫc`C9\⋵aGBl WU#~1A'ɘr/#5Û5V1ʢ<4[AajT7[`K%,nXGw[y_h/ *#.i|yUF3 J5a<Ll\8;LxNĹt3O}D7 ~T`ܔM.u&e,=t"n7thPkt-&_|Dpiыop"7GчK{J Ƿ_oy?MO#?yK|k:Y5Ee?pyHo#]YlZlד9᝖ӓ&xLwAMU3 ^DhMvveki/Nxf*Fؗ­֖ߙ9FW"ˋJ{S~o"ulX| ԭ!U!/%+Yse EZK{ z QZ`_8-x|呺Uyڽ/=8Rkmaƹd ==US 3I _UuvN~Dz5y-\:JLw/%|0N&a|19&Ss_KqHOAQ\4 `0I+-yvƋHTcj %T"y?S:#9|l #5te-:n^"0=uq`=ҲZOΏ/Ü)8Q^?ndd2:?cKcZ g)g@$P&E3vih=ҬqЪwş<-i$EYm(4%s)4kSwr[nb<{L~ E<29xֽ:@W''L8s =ͥ$?IZQ=#`t*rmP.NG:("čӮcEg7&yD!wG(Z]rQ8|95]jv^vհK4,splD5{j,閣I ͎Zg3F[}>¨tM;m IZnʯrL mʆΧ%olO6֡2ϟF;/v^l=>636mDڨ-X~5F5VJÑHE(semQ&8W eoDiMh%X-Q뒃 Ͽ%8!x,#Nror48ኴ -o%{q~sq4Ά9 ꂆր?/V:0,P2͌ q X\.U=^BS54-NgVױ Ale?mo=+u=,r8yeow5KǛ)gR=u>uQo^j,.˼/Ѧ}=݄(HI=Р(aƽCإʐg8+8?*6X\z2USt3Wy\!._=fC9L/of}%k*iC9:(Y}kU^YIOY8p}A!ˣή3t*utVdZM!=6ѩ|'g_9׺Ƙkgm_m_o]Bm j3A;>ug@%+a <~oT~%Nx`ᦑH6V gfGjV^Ls-f);JFܝ$;q?fT/?ĥ3&ZX'_36N)rmL=YH[ԋtὣn ׳/'6HN~@t|W_9>xTLȫ߽sL}}#ΈZ.y'mlmv*ozK@kS8MoJ* dda8r<89zY9S܆ M #3Vx ^bY ت\t Gv4>.+ذ:TPXl tgƙu㉺Қ1ϱpx#~)T$k`B#z1ch>xcܖ?+Q%~P'D2߅3'S!-ʬdI5'\q}5 uEJZaRPMk2EUCwd7BdEkd|#+uJkp 0\~ G-'V0ѵtyxuw S6)WNsHp]A%y.S')۬B8i{u穱IF'-r CBzkFbk9TF X t4lTaro$ώ4i* ,zg3 gޥpj^_{ bY4.a\xVVm>*+ %)9oPwpsMP|W-:Nؗ64Bb,04ĝ\ YJ=7dk7qKxInK-qiڃ/t7XRiKWcK!aT%]loqOep7xcr$B/q>BKT^%ͯ-UPɒZNT*AZdj Wsa9Vmcd-۽_?'ha<$*\e#L IO~{Z!&bHj59\ٸY]68ʻҶΈ%tJ3hRɐ9Ws2 437GvQ{yA nb.'~owe!XxGV" ޞfSJHQ#=ddd{v¿Qabn4ha@84T7 ~驸 [hb  wn$Qb' 争93WEa,L]>'swfIWa>'R& *MNſ{/‚Vk[DRU"JpG2JQ;V?Mݯ0!mi9{dFg^Wuu X w5Ih vNJb>69X50B(]سw^"(MVMKhV>?m_{o#PK׭|s:~r6h4>tIPg|X+(/m 8xh'%iYG,( >F$6ᐵq3WĦ+̊:?(\]sxo2md褈_'[g pM% PS% RABrlVM.5M΅Dᤪ]l,ŝ]ܙŌbwfI]:L=c/rMjm)YJǽ 2s{_n֛j?"UB G"M]9jN,8?O+k!G4Ծ.Slۣ-.p @ԬY Y Fk~:Vz7OQEwx4P2)) k;)jt(aM27o'KϫW* $h-?J1d7jըpdMAHkFdޢ#ݾ+)6JofޗkY{pwݧH%%X mOw=VGny Ųe3]`p4=>6ȮMx%1{>/#&GUQ,i`mc>/e.U ӁY.Ƒ䰤6X( ڽXu-{Q>,&QلB0jse24B!UO0G_ E!ѦkjL:q?a+8;(virRŔW;>}E#-|pn %vXM_$<:%blV[?lW;ri;<;wqBF7Bkd@vQP֎@NEڢ-Ow},"o'o}O?keЧ3;>vf\Zҥj`ɶxU'Yq3`#'i Q;ydz#7@;yq^Ln{_6O?f'z\@(2~[oxO3Q^3ƻ+-hk=ѐˣfj<5<2$S:Av/I!@F]t\n(0'fcia\c(*Zgk_h2AJe-)B +ܦz?V>`:{ 4pxks,FG_%$ #hR dKb6r2x/Suq5DgO(1;GO:g(~LGp,q]Px@6L ف'`i@ U9ym(1cgf8Ez0=. X mo6y R=էy6>Vعn-It&خlXqjar # E1v\5 Hs okpxEEUG8nN05fs9TO o4ygi^[tMbp)f}\onPpc>1;ITuh 7E K +Q$þb@hGdJ fѽVbOr5Q< :xS茒Dd޿~_i9Ŀy66Tϵ?SI*;fq)wQ5+gSw4* ogsj~jSF6:18깤ks=v0a}M57dxtiyV?*S*6?F1izsir}bڠ$~wB=w8)^.,UMz jcW;W|Den5gla[i#=D"a'E9ض{Z0vtg(4fԊQmS"!b~;k)c@zd_q;*"[! 5N;Y  i ނ=nr8O^B (d꧍SZ44z뭪n.UۧW?B\餋[ $p ~o#e!\!N 5 _o u/CRx ܐ%g0.Euux^:?+fe7 6c p)Ť%f )Ly82Τ ~3Kה<빝r7~B'kZxod%p,tÔExD>qНЭUxhmPs^MMa+O}%KnalMc?,]: 1U-">KV5F-GNpgpì !ADͿ^5ڒΠK-$.M+ȭ<7Ʋ qXncxݼ `z{_w|gk%?-*4`9-1R[%_,Y̡F-Pilz* -’+h1zPxOen_%Nz;NT:noo&:vSdFxYc&SGbQ66\ )(T*ևI|G;ъ5WjÀV$w/5ʗc76Jwm|o=lp*rn$d?WֺwiYNbr:=j^f]cSdWROQ3Wsqi_D Lh`hbvcƽCBp%ڦ5*6Ul\b옾ǃ_^XF l<{ Wj8f1F֡cܪq:VH, |X!!ӕ:F\ =H:2lyg/Ov~yg9Httώ&Yh4\ Ed5;0!XNC`t9&ǹ( T-qc2Swy1L͢RjDk|v 4@:˦AZΣa֔bB,`z+p E:9pdI(;\&Tyd[P:l!vgWlNNtXN ֟.=H8=fGPD% J:3zSJ-J^ /|XßYxռ0>A&\ĄQ#5w;Yxvp\") ~X?) #8Å) 3EHA>FGpw-xiJLwIvB!{pW\ަ*cp$0(f/%s ND]WN*:7s`} 8tӦٔxiIΎo\'9?Iʷ$ûǩpo"!Jx={t-M&1d8=F?9ݬ@J[P!":ny\@p/V$RN_0gČhXv"0kDL]^|M;DP<DΌ(-sw:xugcD5|:Q;/hT$C q4w q{ KFFl{!jB{`|ȀLI04eE ZE8sW9@c1F}x~=[ ,﬽%PH@+1Y^ U(<0ғRpjIvduNPLf)0ב- El*!f 0$'2a>tX:3^҇o{qF|i\̆v0%XJ(07E@e3;{^ YV hD`,o y/A:E ,`(B8\Jny6=9iPD1zwYQ`_èi*<$~9#zyL =9*RbvnH([BJ"b 1[ٔQ| 2%|n*=W+crnޒ(4Q(,M,qoXQ`[ L=լl>/:A`ȏ:+X(/"+gZô 7|kkUMж]9Awtzدf/Ʉ1q9i_17^ PHZ%q։2,ծC|tgD 0iŘYe^H=OeGgQayLs9PmOZY^ >JNi<˝W{OO?ЬϷ8qd+@w']A`e bqsh7&$P\-wv/.Hs#z)_:1Po,{6_?8H)63^RF@"E~- B|P]BГT\Xy{2}#ډb4ú~Ģ<,uԜ`Z#5(uރtkfYEUkRF ɥC -_Qh/@DCA\tHiW:I[[\ mW& B R&Ct d<)Q)) cD u&,Tjg>< KB2l oPȦuH`6@lHlQM9[M{StC 5\c|z) ˜OcA];de2F3ey݋4oI'[ u-69:i7_ K*"^H\;͔{I6ul_c` 5llC| AWt~~B7&ٞIbaikXg(mmHp/Ȍ_1fU ajE ooݍcIdΘvbqдH))(~+?UEuKhav( K~ffC:Hv+B 1yftl-WBNEJ@mSDeGge W4u\OᎳl*nSzo.LQ/gqajq?UN"pxY;A%orCԦt|6 ӄ=T8|7U ~ffcEAXi 2R #34f9[У8 x4?*⤅uꄩOHYLcMAԆ2<> XbGL|ظM2\:BI!Ҡ1ZZn Ņc Bt Zgd]:;|QGŎ'j閪%|Q7$RT:SE䩥0V Q)aƜpԪz[P0,ՊWr_:G!? 23@\0s. DLT0~YNk@MbfpbHRˁ'G^Y|5(>ao?a{I-DQ5s X0Chw5:mQ()@>b ;'& ԊPͧ3x.mJd OqR(QksʲW'DKP7؞ԡN,û.vjʎuKÜD%k7,ϖ [:fJQRy:%MSL,Rע+U+ $L=CBK[c1]b0&ī絙8p҇ {nscsXIނګT=& iOؐ?[nS&m1T# FA5,Wx8F,s(~`O)'L c/ˮ#e<fP%FiSqnp2}UEW{lD.xz3ـٱ)&\‰l=ҀG`1~Ċt?7?ypK|>KQo_f>+іg(XNjԧ~L +(5o3U[2HEO @:{YyIPvPn]rD4s~X*| I|5K²5J ˭+-4;Kwѐ"#D4a T3&jAZfqPYȐ*⹆̣t D(4atE׆G;kGS\0RAJ$>u6N^2M801mJ&ɢQ`R2<0%>];o84߉8?ʦE[k}KX >p !OUZyt!jSQ7[Kc|B ;2_T9И C0T`>WJ-8%I(/hk|aun1x2[SkwP5hBT:pllq_"bl:>K:ٷFRJd@tyh"; ) So6 FtlJe`Û!ՁrD) |`s펻+9u MPpGmmmU2v =i+}fWFABu[@÷vڼЬp+ O䋰QskLT vIBM:~f-s23g;*uznZ#-O'\_ B+dL2X}{Ԭ+ ˾vP8e9&hR"qP䎏 l^Փʨ0MLe jau \ ƙcSC2RH m01#D󰮥_\H4rSrҌJ`}o]NDN޺s\?A<3q/pJq!NslH~]&gHf^5bbh$5J--dx)+$tgF--ɑ+I^ϡg cvoQ;햆heɖ>NRNnNc}ӒtǀynEΩ M^\(!Emr.KL@0`;ZsrIyakXо́0gιB*s`JN6rcS5h+Re?)'&荖֩- )uD/<CZm:`dMlgRqxtia"­;Iu+H قUB;2>qoc"aj"9*:X ==]r*5QJޔ D,-EP1=ehh@QJhZQI% k=1+q0ԐB;,p\?L@w蛥u>f=GZ᥿,Ҳym9u}LOƭVwuvT& sݝ5+<9v8}d3^, Px⒕P#F?F v(|i*ņr 6IM[v҂dC#.}(8e!dɡ/6dJD;P%ؤV KC~s]a=L'bV_w dlIbd s r_=~bӹM2m' B|$^%9r~̞C74/ũR`d"U}+1dTInjS|2šn--'82@tUQS*4fc(Ȃ_SE߁ Y]D32? +8g= Ii@j82 NpP}uS jʟbcNk~;~g?=T)\Jw!O}6Cc/ZW5݅ZDUWuQ9䴏Msgw+($p6++WeJ^)KrTv(KJJ.$D$Hmo>==x|FMb~>4 `V)d?pa.d>(dq4 h>Ggɨq@88 6JekRUe7*(yUrGeL%s:B <-_J?oV}o ;ݯKKǿ >K0҂ $V*c!$F}[λ %Y`]^bT"t6A1BAl\0n~!.) -1Xh2ɠ<;,v?A#ݣz{2ښZ0ş7죅xTy lnf%ؽ}ixspqQp3t蓕\KEhJsƌ}FXG XN#+3 GtXa6rrӔV!#|%lz1сK`|cR#t+N1I Z(𐔥[/xGFыI~C=QdaTyoZjcd?dVScF  |m1u >Eë)wǭ)*-^1rK(>XqV(uV`Uao DF6@B4 w($u亢`jPGځm~\ĝl1:ɟJst+ 0D +ʠp,#*FZ#qxy͕Wc$0&L ÖNv@2$qߺV~4L=xԟD1sŠn? m"og[usCom6`k%b^3`"+|Cqel*|ӽ8c(d' L!г;eÕA踌7T)֌cޭ=6ne|+) 5a<;@ո.3f{JKtew*}P; )w:z9~l7Esn~&:܎&:w]Q3p 1Rl7z6ã6|/t/~j|Zwe8'vNϗ q/gTw.] □#L{X\$ܓ_6+pBH7r\e8,(ǒ2 z=a5Sfk&*0vy. 7"\ߜgb'0+I,]=jǺ9ߦPP_ؾ ]64\/AXf2h/yІ}ݚlbqQ= `W<\{[+˲'}^4CQؿ{Pב uU'MdGnMִ+$y3W5) C5_.#E;Rcwr:+hwLրh<oNTԟRkrQaÈal *w G H9KaEmgHhҲ>)7Ķ QvLg7xwp꨺Y'WZAΈ-%_QlQ") ļ&Ux4j!5.ƾΓhi{= s ȟ/m0e"X,R[Ek'MݗOw^-d'Ā[X{3hd3;po2>y38OZ^zle 矼("A"բm,SEh1ptTX~\s<o66 .I~ihu".0b/nktVװyžBNp@ǜM,tUX`L=z[KHx*ϨHI%1>'lwʍ۷{pK<+ڏaz|:6ldFmd#+7ǜ˦T2KGEG]?{W//_0G=ɸA<*C8[=+> dKU~עsvIg YNP5:msWRtJr,ezx& :7/_=ua?"+r_⺫GmU]fn4a듪A0 ,0ě}g؀5c&H4tG,EiЌ 5k৴C^=)O~= ]0=Pϭs Z%I s|?8[q@Wy9+ wnkf:[DdHdHas΋;'ZëT2u-viM}!RQ8Ao+X6_Fa9d>CTĩ yH;<]jH?aN^QT7)NaqoÃ<8D̑T)z/׻0TN3ʎBtd8]\P%y)E@_]8az6ä'5~[;-)묜6hkk fW?E30>V\@e74>U4',\Ԛ85!gG~L5FvHG_+N74tq }RyZ⻈!:@yң1Q\p'GtĎ#u8ױB.G)?yAa5d{SA蛠*r\5 -Nhiw#FgRmm71"{ݽ/i3GvmOo:on6Q `JHO\k6mZڬ .30lB`4|_*JigJvagwbly2CC7,|OU8mݖWQטnJc78y!gD5kMtyqDL.i|shQ^彅Lڷ ^g(w >g>C%Qpϵ8q<.ۋI#cLݯC'𡮗ou'ѧ;5FGB .Z|q! X|Skcf*y_n|:g\-&vw3&)tXUH&Ks#D ئnii:F8MN7gSEH/6QkJb'1#'6:etGՕN45ey%B"nj  bFs!I@y :@y2jRxs+R'&<.2Gg"iIq^|ZU9 9J8͹9\wj FZ lbOJ>8۳<1<j@OQXHH-/JEEsc*{pTGSf2Z)SPRQur jh|?˒UD,GYû$y1A>DwTY+$ Q~YDKMƧ,YɝGk6H=Wशh-::TH4 栦LNcZ`4 Հ㢞5tJEbiWiӕᜆyI٦j/77@E !޲߲=Y(\64b*$ 895&&v7MPL;n.մ$jMDaPLGPMsX+(ڎ^Q=jYi86|y M SO%XyZZu~1il!tGG*,AWV-;-ni8M_e5P9,WvEӭ!J ԬL rK[ے=zeiK\<4=:BTK]0O{*ؾN AC.}P ";/>%ZkU M] Dz ffɁ~en`@Ѣ6+BqwMKűޭBW}L{ He昙EĤ,;|YEWaUoҵF$ \l̬]k-z{T&sA2O cud:\-^dBG#~wd,rV!h -ⳕ;ZxJA&dx2ZK Lc;#j ZqBek?yiS–`Ɩ=kI~-ûؒt h[I[88%Lw%L*}KW%4ߵ¥{48l&pIH\[8 ~/2"_Mp=]< U y9Lrz+ѹĊΡyBb6H0Gj]s=N.RkB1iBdO~.~YxوŽzF!9V5Re]h4BRԖi1 hHIcvqnQp8~ⒿĭCk+ȈC|3"Mog͡'+Ɩ!}q]^<$x%!=L4mCG0̻t0 /: :az)4gٻG#y"8mj6L Ɔ LbsUYDdLfU`Z&3´Xa:Iahah LJm"R1T8AyT+?73x`EmAqnPY[z!}hQ3'E _´ˍX6m!fynmxI0.sBD/Hvjd^B/v={qw.! 6jֆ 'lxeDc`xH:cv_~(܉X0Ob$. Ed. ̦,.]/KI-}A 7r.Z&˜o9"B)\z mD`M ,˰;\p rћ%sYf(ۑ"~KZUe:qQ"Bi\p#w|t-7@b! QWsA"M\hnBA[ %\f,$pɾxwKh/ҷP#qY<.7rYҖj]%6aKҵpj-(y Gn׿)n w?74LExYǷ?>]3T =B<6|mxsN A?^oxPL5 |H 2K4#Zzt|ϐoK,X_Ä)q cm^wƸw1O'U  Vvija4oҫn똂D늇ćXB ={WG? VNa\D8ah$Ÿ3f⎫cޖ5LWJ,_kG ԛ Eg6ʊ`=0QrG#dB~T{IB&U K#ˎe؏yhTMv#o679 1ԉ~n3Rmirsн.5vt_h!xC$ w xHLx꽗RsCW87?>{ '=ZLgEقn+ ku,N1>%}}~"Y [t݆bzgɯn C!q`@s}CKU9qt0iJCs893)z}<.Stԩ.ZI>0P;u.0OePJD/XAb 6υ"uFTQإ*Ea7GPw: !q+W]v7inH6B? v|˺*tOk?aGgڏΨ` dSyB{"1PX )VQ_uØ~oO̿/Ssg{]EسOvHGa{m?]W7oר/IXr<˸Ҡy輋N#6=sE:nGh|jev3:-3{^2s{峮~;ovUnUnt ;s/s.ͫϥ`wqީwz:8siAs'9=Vwjyg%q]M'9$bo]=tCˉ 3r_,딋lU\fVt9w 91|\IzEG@O(2ߜqq9̀[sG trQαj{"dNAUKgN%|tDI]t;( MSgXKcyo뼿v~Dz)2 F^i'u&L@Ue5Gݰu Gp[{0KO/km8ݦ/^之<cI}w|e>9LuZCN媓рݫmz!vwWϾ9}Q;ll❋s,-:]"Ӄ>:<#옋v2ιrBF"oh=pN\t # CM'p% Y];jY] Mp%]eҮ}!km=ێ2n;| k8(ᖫvuBM߄ pַ[o;ߝ/'??ysfpn)3\bt+cHS}W)$jb+7RA^@M?ƚ\qcs QϤޑ?xE4+ D \(|a@)$"zZ%T!`aTq u?lju~5%/}HNĪa5us(\׃7,K.˟R^Jh)b[q}y.l `z)킏6 i=BZ8DtrvR5մs`tpVN] ؂S@"&5si(fm|9x6o^@Wg˙a I^Ad4쌰S=$ ?CE3;⫰jIu1p~ s2 v]5˽ m5,Jbkٔy4!HfkТ*>È_>@oD+/Sa[zX ใZu4j"H:^#פ;TCXIu9 7kȄu/Wއc;:<\[{utЁNdqc˼`&@lp LqU 4)?DDTc@R9h:56*mh~Qh) iiiA`U^OV.oo$$HxbvÿB4\@En‡v (f6RSB)M~d564Hi1 v}-fVM>")&p2H 6%M, Ney6e|V)E`ȳg~ou/7b,Ub$rFΨG:i`R?po7x߱Gcn&p>i rvԼLJ/dv׹g9)v6cLTФ z*CULT(zEDn U)X*?f]ԚɌ }MjY6QOFƻ)rԤ-6 :5ޤ0@ uaNg$#xH#=x2\Dܝ nnirX}ނYgsqC+1CĒbyH)_vA)OS4s.?D\DqOWV)ۓBj H8wl+/qiHzfv9' e4N.wB#߫fm r\)?|!%[HiA% &Cpj=!0|"1S@,5xgJ bdtOxh?"+d 1~KT+ H6s'4D+QH-e@dFL4F!4Q4:.]6v 6Ս,=dHȍ,>D3k*%;Uz!,YIaj;С+܎@W [P۽[:` D]$`f>8u0XXЯgŭz$cHҧɜY2!_?ڔq^^kŔ܉K{Oo¦Kl #A}i( qjRpCׄ F1uB=츛UpvN#HՠX`#TE*Zف)a$2 gD=1a/݁4Quݩ~R (8ͥГMT.b{R'GF%@Gzsxų'j؏uw%O(VV5xzeqs9 UϢoza wv>q{*bbɜY,p'Rȿ6D!y,Ж74/F,2 yp l ei+$QEHkċi$A|Pjm.}v>0q_NAHe"yh^8\-t${6frephujƣˠLڏhf 0#/lbtRӈEQyjp^{Vƒ}7Ī@e aՉBЋ*iب}L,}LYK T )׎٤e,T?>Bs/Cg@o=w F#]\T >jW" q/XJ J7c6!hw`LVh9}\#vEHy ߍZգRpx#YeWrmՓOvdͲEfǨFGTM \+M>$SqI6G|_Ox7eZ 72cكn\Oū_mnԠsU^s䏡Ar;4'2N>:jtX$+$kޗ%rGnwENs9sEsUalvg :Lv'T#H*g?»s>NtS .VIQt( "n!iu9h|7 IF)sHsMe;n7?v.^W0e̞ u8(G?S/prl'V <FmJkGl4`zaupA΂Mpv!p:ˇ#d "rs~Y]P B} ,,xZ:2ᤔPK[Eb8@ċxԫ6B>t8e糓uRvJ2f#PftpZ~b1Q C.X %NҔЩS5MsՇuZۗ'5;&8oIX[B/l^"`hwTžbx7X*NPE'jf{(H,IyRgπ-? Hk/@]_mˏz5 =[%z0;}C™Ain.nvhO(Z`¤q^/Ͱ´`܀D'{Nn-!9AgPlNGYط9X \J&d<]ٻ.͹:'5IRd}H5|8I.M$ G*f45a$CΆQޱ/]:i47. /ܑ` %0( 넵j0<^ ZzV?^Od &`( ^R\s:)67C[Fd&EF;&W?wm)%WzS@T## ltpZ$ֆ> @AA h`r|5=+ @WCmPapp 7it/6ˠLћSWں& D% s@1ujZ$(I9a`R)tC$GrmcGN  ۣ yGR,7dF;j짇d/C:@vGkE̱R8b )UJf3H (/Z^")fT5c2V->yn8uވno>Xûo?%kK=]v6 _a@C}d۹~a\dF buAou\|客w=$5C?x(h}ܱ]6svg*kNb_J 60'`qݵ !O]P5$Z5ww׿_H metadata.gz0000644000000000000000000000363100000000000013404 0ustar00wheelwheel00000000000000NYmo6_ e'kX b]74aZ:[)R%$Ŷ"RRkDDyLJl6 z?KW \0,U.e*@7 0Ìl>}<_<]{AfВ%`mҚgNCr%`vt +m4՞g2_|>;u25=gZN2z2e/~"KJǒkl\2eq1 HEb-wbca1ARZd1dMP7-eOΨ@*<#(K1[-S&kT%W\*m|-JtzA 7}.(5|^__]__z~ ^].}v@/^xY#jضTϷWSqYGm^w `är` 1pid\XZP+NL=fD-KEŻܖ7`1-;\30f Lյ\55+~1 p*~CO1h"e%vg4%n\);1.1%~}\nNF,ӐGըR'acG0DW4`znڍKEoc6OLR'lư^?5ƴz7\ׯP: f2khpp<*8#tv2)J4SP, M%Ҏ좣>~`*̋RxUKR/Qh 3pgz℥`ob |$32JP45\I[AlvJF)Ϸ9ҽGӰU1 uĬ<'*/Hkq)c7<8HB'ScC\3|D0|1:I8k}WOߔ%7|;vQ:`w ,hNKjV[ZNN5h%vt1jpMpQ%sngsAvm|ب::.1QBlq1n-(񍀻AB{Phiq5IۊAb-{Q G% aō)JT n8bTbb 5Y[,PۧnŪs*v5d0遪p0=CzͯnnnLayҦ`QG*$qH#H@oF^/̚\txNϷl?`󷛒YEWq<ޗ_g=ȯ",Z/NZx?̯kk89" [|q/aV2$k!ϳ '0* U,"g,|m 6hgh^fxfEW |ҟa".<m'p 1\~>̒E[ n/Gi-$.d3,5}EFv3Te3t+2|"= %9yV |!4q|>p|}eiE9⎵YTdAa8]b39'yϞ3\<-q2$4YLu6a,gpy^?[ks{xn[A4^#0f'jѽ9LE4@D9[mfCSd|4"X΁ȃ ɃQqoC4"N,^&p=e<LތSQɷ2+ṭL`΋(hI2rgUmrN|K [. * Ιe:.[ ȡ #VZzQf:M ~uc!_.I QnW_6]{͗@#X1ݴY!: `Eymn|_tD`kq^tiDYN1óaE:o*` LGS֣k: n:9ETDXcqMt)n"kc.!,Jދ_nx9 `sp".p$ i}@T; $xx}3p=ar[򠉟6WK\ v8(q )cq]>B} 8^9<2zwn̖"Y 8%:_4ʣ'}v Ue!()o޼|wOx~oAo|6+5Z:L{x> ,P<?Tƒw[+_B'Qt`,KQL N[ ,>r9/o:6:$ϗp.t}%p۞`wnD$%l6.o#-`$sݖ35,q!Yp>}Y<v2MNK pb%!:M @m}a j B41:%L&Iܤ<ĕջ; D A1K[s02/E>rHP{4ʂfMsL9l8G Nᩢ "\/XgWg2+h:[s}S7e6 . <=@*8آ_|BM |HKeg9H0 ;AOWpgg5c:X"K/ȃb%" +T@7i0HSI?n;(hm9@{$Utf ׇR^ˁjdL pKGhUYз3Aut}y.zf `ƆwvNB'" 7tAwlsF\h!Y hm`x H|aa!\rlQaUP~f_,\( o-DUw!3IDCqY-Kl6/OA1&[ʈؤ4EI:TeAmͷ2碰V̕GӨW Nb}0{j~.7O9l\e)9 ܅0j J^%qac˾)1\(X ⅚%&9Y6($sd:r( 0 N/A,0l"aq/kP}W;dM96@&FU2ec9G>Z@Y!&0UGS;a7Bpϑ K InVծdnVt/m# PSDWgn1aT>JWT8mJm 8PYN\ l ad R;p8py17o_~ı"Jq"r]~OAg9f(},ID`qӳ+QF(G\C uR@Ļy`iU\-zH\{1X%p,-W4&_kksm]#p%ݱӁX%h?=}wڱBRfK _A @*qeA eI:q}"k,r# t+Iq) p CV!̈y1Lq>7WPbh"([2^pUOy[|/b 8I[70&_-w]8=oa R:Os~tH!1T)s,I"\Ш8 E$1 jǢLjv`Z}rB8T\x(tH ?Dہ2=?,شOjazD##4"fqlf`E] *T Bv8K!F7XFҿ*kÏCWca &x ay&4`PI#ӴPH?tum1}vٌ CȜF }-!;wZjӈB+Wbo;w_Y]K#@"tE\Ts]1C€A*au>S#G6!O.x"\FR1MMdX9FGvYp\5~2oUsHW [O/̂}MD{̨,`-s&&OɈHN7EgFB$R/pk: \Ȫޡ71/T 8V 8nvtXs@oVw46ty聹E+ @|(/+9AjH"rii~s%ҹ6 YIJ2Bʒ4@hN(a[?xjh"Ŏ0o0QbQl2<¢tԔ쁠"bDGr22jT0f_x4ӆDvlp/RIÒ%̖sC4;[ms .m<PXͰ@)?2>X no0 %$^]$ vP״" A_V}?Q uaº]F R ,i}!$x[$_ſmK Z/fʰª{ctx-Z3M`GG#d;lQG-1Ekpڋ-B52 W]bsd?.R "C_P$C1 k7""kp} X;y vp?k`&Q s9;Y!v.D%&E)!?cUn\O J7$z!gPޢ˛vy.q7VYÌҘ"(5s]sHq  2AX Z+")GC80R T]%M "3Zc+ã^=8AHh5X 6̜ݥj0Ew5Z@ S"PhR@ tv+RY VXJjSe\n/.q `lz*a[KeaPmy޶\ 1k۰z:x/0*,b@_Y ԼH&QaP2!n12/y.\5UJ1ē%ht,NFq#A}L,áSqJ3$5!WhoX&`0cWVFu!wËk"[14}-\ ޮx)`)mD/=.[ʺ |[9ţ$"^,F|90Izx0+p,f]O(-ή5KtΆw ^*n/lfOGFTd\U%e4&?7S5#U !aZs{,__$d2ABjsV+7/,B{feO#?IIah垞z&;Bfr@vCRrafhg,Ê!Aœr&fX""'Uz mS*J9f(dKz!B5)*ɚ zq̪ { /X&:"-+IqKq#Jѓ{hv*l؇CnI%{ʚMAv֡O`G%g_ew@JldwGNر^~FD욭6_-7j-qO-5:#wp0Vc5-mywYNX5Eb+H"߉95));Ze31Oj. mos6W]Y^dq&ݡMRlM@|HS{Zg03߮yaAhj<)زE>]nG xy99O8^OiM<+ #@4oAk)3s=KjcJlc㰄/k4qR?c$PN:5) 0A aCaz=] ROC/K0;9C  R@O%X<^8QA G#R*#'rX@xsdCkp B@q e7-sjMIBo*Sr-+#Zvo3@Ÿh\+ھ7MߏV0JCцdŀ"Le$ztUߖ bg|2)ݴ+1&wTL}9u҈Py5/jkei%K$,Oی,{J.%_N&8p\J)֎.nð̆Y`Qrx{@,,#ykbː`Byw.:fwׅy`2Zn*bX)E0E I|Liʯ#>ih=.Xx }[u~PƬ!-V PgL,&26/p|9I2G ɸ&P" =A*>KR9퓄Kv Z9ԟrJ?Ybr"sn鞻bzz>W/ 췥!ބGJM0z-"gdk^@K,dɛo~8:> ^70[Xl9RN20Z?< r ⼤A*j1Ɍԟ $Ij`KgdAPs>.GSbc:[s6GBtD29"ͫ΢P8?E.th~q4MO>d 5ht܇¸3 ,PCO zAlPO4 _5Ut-XI]P@%7:I:J`xuKipۖuTn*xT8۴8IJ[p.ą mS^EN8y^V$ͽir%&v$Y? ""3't\&QI[pL Sd/ceI[²]{͹ZfϟrzïIok<-: $*|HYPЖ颹lP@iťzYuHk6<(g|2zi=ȧ? 4-!-ˁӈM(.?}{Gx0Gh7A\g)[Hb%\f$TtכҨ Q!8nr-|c8IT{?1*z.8GILRݖ~d&6(& P^%lb&Zދ kBQ, &qOo=mO6 W(OYVf|5{LG vmNV76y ʸa#g1UHX&eTCb%[`K@D$jicJ`(`OFàJ4v5bdOD_1 k7QLWjT=MDR=I5lXǦcYBi:i>ђҀlN<}5āRI=ۋD6cZÍ0mi 'llӐE15ﴳҊ*7=`Oo`jV:t4:%jMCˎ=#뗒Jq˱ ?u2mLs%r֖U>;Jk ZLHp[*`3kӕ˺N[89Hn8:Ir0a  }lXe $1=e@(?XTDEyjUI؄#`ͨà ĶVP[=Thؚ*ym ׉<-ۑ[S l%B Zp'nbǕYDoOԟcɛk$ن†GD?2[|Z<؝UwUi #ݫj*fZ҇$L,;Ԙ8&lhMF8sQ+q*q8&:U`/NVq)EzA|GN=Dm꙲jƑNi^$C #LBIIX?"Xj%W]y(7V|:E[vEZ8wq)I}4,bU1:Rq*2<Et 0GYU=  za)*"VŤL4Y3qj+LoKdR7n{&_]_~ovkG[ۥoۏQY7&}R&D =Q*Ґ/փ=;^/%^@/w:H)* 3dCRFuw\ܬAH[첓D#í 770xI $rIz~Tq fҡK(E:,,M޾U4Hr+(fS.ɗ3 Z6Ղ],9fӵm>1C䱻z,8H<ulAJ@v&95d1q+(*L@@f~~@ZD2*Ct\\j1<&VJ^Ja)-́86 2/E L@G,24,p;($><;iY `6T&`.`9>]"J.Q1 ,$١;;EF "Y 鐳y\Oӈ?I&Eiv!wBUӃښCNIH}_PnxM  ]${BLLu^pzݓ`48>9nwhide{C/:k{ipt>>{ y*BgG(]AkN ~C'xv}NwݓovO7'G{0ã×'0óF݃j Wߞ؃~sC/b=juo {~t{*OLO:)n˓#ZQ'p{O7{v./vSl~Q?w9}z_~L=?F۳ldp@ ɝJJ4ItkŚT&sQhRWu+yJ@:W yDDѥB#5$p tHW3;GC;5EZji #)s'$aZYcs-~ [_BݗnviImXu72xEgzAlVY-Bn `CV65-p.b9а=˱nݚJ;mHOo^NN`3[:K+uC Gf6k0U|+q B,+W Wk?X\ vy/O3u'(6ޔ3T `ݸ' +n<ϣz|nmC2#`fO_Kx%Iۅyk p*h f{ S9c*CIkI=4X_Zα8uP f)dܧcϪjK ǂ}ƒ::O_$ CaMӓ,4޴ Q[!iڗ&;;\s. ov_^61&zU#byD_8gw}45[.ڟqS/8=V :.xWSsw0C=vM*1y,0gB7W;x5h F{w܄92ɵ{sau4*#H͈v7UdLB8LQB d"8[6' h|ZKPnx8~ݪn醄o횭#v7yŃy֗iY Fp*+?$y XI$+OB߉煭t>{nPBwat>AupncQRDZj? 8˳,}opqzڰ\(g:HdԽa_<5xܑRJ3en8Rv Gr6|.lj~]1L] ~zVUV&0̣Oܵ(J ݰu"cr-5DL_ID {l5h3+VHPk/5{]vVmMsΏ]ݥp.ɬ7|E^$q!j)g+>Ak~Kn\sQ\jWvm5G/.Q^&kƸdy"F 7]JKsL $ĮR5 = '/BӤqZ^-|IA X]6"f|?CM5Q!(dUxN[ M'9T$[%& )jkSH;ŅK ;2eǗFmYTmyxAR Szл7N uEEX)fXG E rM#[TxK)Y5B2uLY@brMŌ#PΫ@tJ>Ri#B 3]Q.G;1‘ɕ|~*Dh1dč%˩JQF}ː-X/UbpaJQ7״܈*b:&9[߃bUDky"tXx ɞNGZC|iK!*;0 ˚(*qRBAxSc̝ܹ:F+JF>Qg |$?|v$SSo7&X(j;~v$I4n[I am,'k:$omL-KOMH`Q٧ s SWW {=L$&]f0\{@?KR#X*S6z$!ӔڲKdN%apY`~Mw3&):h\I| K5& ?-dpYJʧk)3'??Lլbܲ~ϭ7劔,q dJaZZԊNX.@1 bԞ¬ک(RqXbYwģrk_9ҹ)>%\S{Ȕ}kKLq<$R(2ETXa322 |N-3ƽꍠ橤eBѳ@}q,P~CL@M9$RJHhRSpc Ev" ZG}3+}M>WZ[KRW?SF+'yOǰfI݋LI3M)-9Зㄞ%^F=!(7kOaƈ?EQqnӇ:kfPsp`2UaVϑ>oOգQXilB\h2Xd4[8n\J5"mq21X͇dFQeMp6!Lr>f˼W$0}LdSnl L^N'CqN̂k)Ko7ÞB@h;%AΠNN1~b w,z=t%sms?&uAϣl g $_#900ERYa|tժzyZ?:@uUt2&4jDcL<'>{~trE Lc+*f(?did4,tվ<m 48|sps1s:hF &A}-I%:j"璊tsNsV+~y[m'qWL/UL35|hUdAG]F r/+a2,2`0q+Ӵ;cz0 >}qBǼ4,2P& s,joQAUНpQca)H`HA㞮 ]5#^Y9WL=b;K7?|A8{?J[7wvVo˕dn;#W|LJKTLtudCr3ڬbDg0j$c󡌱C`cφl1exho9$P%;vؑ?jR`:.L\hnu8gZ14MNPN׀.~N^-Jg~X/da_9@XG򑮌Zڛ}bg?B$X }" +gč쥪iGfҾ0=  Фbg*:ZphU+"$ rP`=TSq+Cל~':Hډ| NaԠۦ:'vBuaV*5WJӅCZ^hy> ݅8}桚ZS[}  z שH͚ Mni)fˠ'`c!<-P`Φ ^fi+JZ9`)G2's16Jo *iM3gչP$xR}XMm'%UߋQA)crK;0#X8mQ*OM" fI^piДp>ÄҾ֧ Ιski+bҜʖh9j2o4| &yUKVl;1hPQs6MۥBxs0p+/L~s NjJE#raو3Jb4{A3X>hDGebMF6hRS0񘚾ixq`Q,X TՀǦ<#HUB@͍'9ɉ(;7l>m ?έ  Ffo . F^NpJsMho>:cKSL_ΌK <`8>n!ZwVڤjFֲ? .)0nɢU'|"#N`LP-3LƸK–5WRqGǟz+#նqnB獾z_0֦? I{"תs0ͭi*WG5IZdX,|e$cG7ApoeMb!眣K,H/+@v5̢‰h%AV]Coͮ vl$,a.π}S JDych-Mq e;гő CFͦbq%'i3PշmxT2E:N.sm@tV/r꟰\]26 G<"Mi.ݮxcU]E\Y#?܋M ;Wa6+x2PȆXXx$}IQ?ž+|O "F Ǡ7O_P<@-Loq0T'F(NKW-mGwovѓ?S$8C̤Ѱ0eR:)6=? |35tzC)̅c˼.wL:;A38o|zDy2$^@ke"@#4 ڌQ#c_ ct!N^gkOLJ5jޗQ"Ɗsinj{-_v?I]/iDb6/XpIu඾( k K 6y!G$~ptt$NQIWlpcsc^s_^Prw]]5<ũ>G|_}Ꭓ3Vz!us)Tmf+ڠW: %1k4b)*=t<  dPQ4a5-dUV1ˬA~ ;|jMkxTX4lT{ԡ %:x8YBJSd7i[)y5hrN~|.QkTAZ~獚 ?n% ZT 3 ҋ bCE`Sb9(:4koKItT'*6'WAsɬKD"DJ;Z,8&K& r~F9YɹMvñ7CEc4tvOd)(K>1!͘PfR'x@hWp!t{SV'#k|y*خkZP$ݪ)xހp20JR96#uJμYe*m1>_)RrJgiY2jWxk$Oд56a$+UkկQPhS.`t9RP-Ns47)-X Ǫ ,Zi)h3>{w!g+1yD078P< b.yTKRU~77{'ӳ݃%X^O;ru9yah´bi;zH-Z}!OT~wBFTʥͥ#ssvGGARiVFa؊Eqx'yfa,i5Q{޶jz4"19@ ?G.6 )( <$)~JYSoEmVѦ6KHn\>/)B{.Ý)8+.CmtJ+}GH[cZP_qu8)=Y;Jϟw@5!nuf<^8KgTK\5-<'1T< H+R? sUpdqPrBTɚ|<&cMD Qccɠ |WnM❗yMwՕLMdYS|N?[W #Op&TgN]ݢD;z$,*?P*|ѧ^DU6( x-y<3Ԏq+)_n+mҥ]D)$!x`ʎfB9. q 8L9҅T$#tf]B 3o,_Vڵ0{szӶ0Lj8*"α  BŶ _:|s.L薖dʚ,ּ@ ڹT`Ķ D~IO=xՁÐ}Go\)PHFg|^1]#-=^Շ[KYч+Ce>r;2li։S鿳hxBm.xNxRyPVL^Gm`[NR8Y@{u T˭ⴑ%j߹f^m Q'5q:&uHI-11;yoK~ït,:|a~Ò \3uUz"Zדp]&D.l٦f Cq+T8Mm$ #Hj Rv^Q1uO'ˌx?pBC錘2y-Zde:Sժno_ ED\P+ E sNf"hn:"K/bD.*LU|OI>hI?s#*npbUTpu|8  {껐k Ѽ.\,q/'̣uױeF>wZGc$X=lA@5y~.J׏vxwxvzpTr^9|Drw~RC]LNVQ~{f,.rG&[YrH\:{ DGi+>e|GЇ̃jǛ&Uj[0pP,})vq%6k蘢K%}<.)w4̨c䲧1h #ȞޠktFeW6u34+A8HػמԲt'e#K;w ?//0t!7RfucRatYiz/$͒⚬T^AI"^KxS1C;,7?]xiz)z\HvX ۅ4mΆyԈ-4?nMV+'\-xzx?rpaI3~ةn7'<*5м=;0#ہjn~(U"eD겡5D |Ytp eӶx ʮ#?7ȲVzkg-J ݪIJ;G9r>GgٱNw.,!a{#6@WT#vVw<?sKwwUA}K^#pFH +G%=r7Ey򝘈;?;:i밿wov̟a .82Ŧָa 1;4TVzq'&ӯ>Nqi 2G#v<5`³iÕm:G6T8K,|1BG㶰@< o_9~gDoxgoiCjd͞5N@B/h14΄F4ﱓ_mrTשHMδxNR5֌똘~*vܛsǏ\ n( tᥓ^Ӱ"fk2DLGVS/!M'8 y]1IʔS*¤et[nߧRVr;Id8SèL|D8x:0)6fpq s9X>QFh# /R@f\ifIm$,A;zLUnߒZs7c~?~T{%8/|Vce^[;Ї}%_Ww!@_]"6\nI=,QQ^)Ñ~J "c XAAGgsEMNj.߶ jcu5ߦWjjԙ<>tԵ]&;:p .(O1h')vohxAv&r(.t9LtNAGj uK)nHCͦ~lW1iLs&:\)3ap,[gWgLn8#p~g6\hj4;)?9Y5͂3kWՆT;=]j΀Gʸ< Jq2xԇϽ~#^v'4ciK/uLċ~)M?,)"}|߾\߾yNW+lr7ήz@N7NӾairw~-]N0Ue|y_Bfh7 Em"sG2l-gSJ鸰{vڥ [-f&cRA*B\n{Ӯ߱HB5qn'I!<\RiUnLu)SU^L\2̄9ߎͶF}3d^y$%ΩdeRzg8"(F37;:Mת ^@: {3LCΏz)_X"#v12vljQp\xZ['oq׿#u`D^SuW+t=RmR^Vtwwh[B}xkՔ 'ߔ'_VN$]rJ% =bŨ5<&h>Sy"ZUيy%?Xv)"TGӃ2)5{5p6Lr4ksBS5 }jڶWwMeg O}o9FSʲr)Jia%8 )e^ioOw sCmA4Iޏn^OQ+#ET@ M}w-*>m'pJ7:& u>ʘXE#6vU׃t1G[ӄAzɚgUa'9ıd5=t|yi*$_6~ot uUD|cH^A1/NjdA .xZПr˺-Z Ec)[#"p_Ȫ0JX`ӃO*vG#שT{=$cb뗉e,a\p.g*igC~~.̜q}\xt$)i6f`Yr]Lۢ"B` 4'd.^(K%F"]aN6Zn&rCzxFIw [j!/v^>uPLq=b/ɋ{ܙ\D창,=B|2Y/+vz,*ﻝ|ฑP6jϊ&äKCRM"rETF?/MݐIKoXٝ/]aW WBitlDӉc|#Tq z U}y;w+$g uETFAUK^A@}; e4n~M{+lX{$掼kYsZU箈@s(+O*uϞ j)0Eu'N@gvix*W哚?{dBHxFh8pn,'̼Ugu~Y*Vu %%hR+F]"iEA}E8=(/P)DYn٬Mѭ{>yoǙ

L:ONNrIi5a9V/8߄eM X'O"j[sU~7RM޵ZlK6:mN}.o.]n%i ܀i3O+f-B}I:ٲ8Sp{[ɰ4Ɨ1CVrgk|l0_SXZ#]kW~CEq[$UKizSb|Rb9RW{ ool`lyW mGS@;d+eVkzuĻ?Đ 3)d>utw1(dC$ꪧ>ɐ2mQnZ]_G?woǢ ڷ[D8y$X}VYoU` .Wcz xb<&9L7\5aiPשWjkg30q|'L3t?KPҳ/^>O}f?4%tW}M:0ܜ%2Q-~7n=Ew  {a2[b5>;|aSZd5OA|l9$Qe˹rc/f {?"VW0 ~6=y$x[B6ۉJhśFg¶tť: Ipv$L 1As" H`|X'H5$㋑sRz{oi5cHVQx^7de鴚Ao8J{dȄ\]zH.h!k)]EQ[6C#hI}nJWָ]@H~=A1~m0-(|1$;秭I:vpm,]D4 Z!Jcraqn-5dggDPy{' toLEYkRÕJY(J͗<7R4%2s FIZ>aʙY?5KE@c /+mۈ俇n/ix)8$#>pD_C~,ٕ@Ui6-YMJ\| ?No`Z6413`j] / QS8Rt%1~f\n"D9F 6t3ȦƊoVCVsbL.hHe9v+9)P*3>*E(bq(TU nd9Mi o Fc Z&{/,4cP1f0!lz.Bȋ!Γ )6c]pe!1 ژ<5DҬ /ubg _[n Dϙ@ݲErфPy>V~D B35QQ*j+k*s375T!w>.ϼr_+ x/7tAqPz *_vV\^B,kWn6cqiGE(m㌷~g63+ Yw'ŻۘO/ n;;LԊ}Zu]'I b {C+SR2D_#QyWy!؋u &چ]4q9IOH<[)AaKء`ƅ0;wؕ\X]p!6=@ d0;a@p[sU#"h\)H;Tp?{&FGݏ^f.V.ֽj톅mrem_ݳQ1ȵIU鷵[#ۤa8FW*~aU9nn>MOǟWboƽ@K|">K^5^c_,.KxjϜ׉ FлnOɟ=Eh{OO~|lh]䍼 R6KFkoDehwC]ǻ!2U gwf)|@yy]ߘ"uAJ$B i3J 3dݹ224y|Q sf/hw dfo-=ϳql#o;2kL~VW뎹fflv4u,Xb!WNQFQ2˔o~nGXoU&^ImMob3H[X<+ll]mQ煪bMTAJNOu uCqRYJ빕X +޻:%ALc"'F[L녲Dr%qnjnlUc jK4Ĭ)Oa xz~E>C.j.3ޘ ]jʝNyDpG#n+*R΄sGec*\>lK pxdBX`0 %wp%p\yVX؟faxsrޭl:X6}E\UX\_Fpڲ|oa"hb PjZO l{cwSy 1i'Ƴ*YI^pYe6qQ 3q*iAe-N0X`r*ޣ}>0 :7 $ rj2s0bs֚w"CMaU$Zhlx/2'S/E¦u[ŻGn. aXy :R¶T E;Nq)U˅)<D={$'!).%cƺj>g9}K?ɛ'~FBtGa3ÊT8 BndNjЙ9l}wd>5ܮ) "&JǨўxɗ7V!#_1%i-*VZ?}D%\#)Hf[p$j4Ga;ɜ?VJꐎS;eEαHxw;&Yk,pF!cD}! nZ8ܤ7e}1稩CQ&Xo١5Ш{tKP;wS&GB{I@۩JNA>&˅M3hslZʧbTi- FPt ժ5 T%U1 ќͣT,9`-]z\мKkjв;ƍefiyrb6}F3QghnePbOCP'Nvx|PfGb+$s5&nV^FkĘWxр?S$p#A"9^ p= iVe'f4MLNL{D}}g~_Rsɬj @]iMrNV(6~c{iZPՐTy~+T9O-)Mͻ lJqZ-bvìAuvYJ%idZ`E7d+V K>BfaI-Q.Ȇ1)pn w%?GaN;%G?=c%> >n)DchK?5)rb~>6~KTl\QKZNlj,tH PeBZk_̪]1#J2'e á  `&v *^ 0MGh@Q^"tML2to"Ґ!y G^'dҘ+L1:IhG!P8?տÁ&?xǗ[_/j`.ӱ副b[QMlԆMfG۳7?JA4Іa9z ]sƦ+*UzfC)~žk)wҭ`0uRzC~`Fo1{C{1gVqz|Ps eun%(l]@[34>GEs"z̙$,^ս:=id'g6GM ~yk? N8l m3ӏ:-hsOds~nuAsOHhی&vtVjOwEs`2X/ö^C%L8 5mZGZ+Wb hӹV.l/Шmn71?~0E3Bg}d10>z Vk -}%@MZ4ZKyŰh;n.k # n=aO؏6ґ֩ ®b6MmY|ذiUGuʐ99bm5gJNDJlrg#isx҉sKf e0KKDAOb4c1[W)!w`qm61: >dAPk t%U[uT,|m xr :։UVq%nZx+IDMׇ!໨P07D`k !T&;ܼaIs RaˮSኳ7PvZh0vhuA?s U>-kڸ?61X lfrQ-*M! Q~A"~ O[]5\AlyJ`PV3z޷4mi-Xoq24_VDTYY\5#ZAkjUM%9Kԍ`b#p(Eܢ M = x}:eڄ77gT<b hd_yi[O(pwZ+d%)vH7W޶F/ɯmClXBNw(g.]]0>pt\O3T.{/zx|bg*^T>pgQOCHBD:YI5 5[BUnLyRmC>T}fe|"w Ծe1׿lz@Y>NMMy,OvH3D W~(=XBҵÆyu]mX*z o-gztX;u#a38('3BT SS$8g~SoI&oCl:kc3$ ?&'8| ZL} -\0Nv^j]v6(bcE=] N<,:ll"xvcpȤ:QƢXG}VJ{xh9<]Zjo%Q\8ˋ#DBlڟ.# 'u{ӄ mx |\ {{O Q WA/>O=pn)b"_4fBRyϬsG/] JzmM v oոd9ˆ| sSNsV8~sx o ʘ9Rw28^hK?zKNcݻS_I{WJ _0~np .顽V &wfB{ xD nC c|_b$6NtE.+'CB!l\Dk\+,+@E=R0TGt4qd f3BV=2}weJ.[`{Җoܒk$m8u>@փ34v`5AA$o_ Lw{2|<\0=Vx|/n-n8A$̖0sc p!};TG;t2I\rz)-[kex*p*_VȱI %9擐Z7$fjy^YgD' gq?f=Q iw)~qH`" zJq'_Vr8Ax,BRz-]A3ܚWRߐ5Dy4~_ҘNL (&7ǻ`VSr;-ue9@ y_2v:*hǷ]K,*„(; ;FtmCw<#Haj(ѡrlB5BiWBzgzC@h|- >w[n7t`~Tm'4+=bR گ>ҤHycFx>ֳi: +?c Y>1@AÆo}_% eRH S;lXM9S20ڗt0D{8rbmGЧ߼x|(iۅ܅H {bk!^A!L3_;;ǃ]R!}=Eƍ{mNYV-< gs}Xt8KKB~,6|:}k 1y gA-.9췞ZDbs*|6f7_Y&oʅ4X+WTK}#yk/<@xDSɸEni bj@\daPbtP':@Nd^aޡc/\cXՄYYB2d) ^<86h40f'S%0*" =f }b>]{ I8C=\KkQkY} SAu=x+LYy) }]Tp_2c[Jt> tV%i۩nQO=f.+P;ykaaDO w Q<׳9g\Z=%0x_j*A; Xݳn$MVԳl@{RtbhV aqCzح 8|OC9FC,/WznCqgD\7sCz6b 6Ao+SU`d :hǶwFbv@͢#0;"Yr#`j,5>DzU,74N.:;W-E7wqI?l̈́?\#yqO72+} Avs={=x}u2,)DWߩWߺLY`p}j.{gUpaƒ*\]Wݞ,` j[<￟dcQI^ͫQVKGs[<]x=f~ߞzl2"XS>Ѻ!D1)m[q1^ˣ 7RǴ&n*…UڗonIEr0u@61m2R3vMڵZ=>CrуX߁gПg~=p"3@I@uɤ?G쯤vGD?>zэ%>F8'VoYUQ{IΦ?*(Fm/4n i!QBBiK#.7C[u3ݠ7j4hlDiU2Q42HN[`L¯ˇ)4(x V o}4r`x>N)2JA$rq.9%TN!Qu~0KA &brdtx}Wlg3lZ,[M9Xm-{@x z1xƈ$`;*&!kW:&V"L6>qs-HwY\P!L8L1_ 0rJ9vTQFl~ KV? j>?-/_=l G`s!<ZMpk>`s^2U&T _ s蹟 &I:cruWO߬uq j.ς^ M?~˧/(\'a!l6JK<$ʶp75@bI^m9xف*GVT?526)\I_͕ ^q1!4] K=jNei0{j#2qw>j|KF e~Uu@uw_4U~=C'(x Q˙oP-(Y~.=pCb,GtBim{e)݂yxu\/pOkS;oR;_WwUv2_ʅs+g1Jdn7_ bpz.Z0Su%".y~]Nqf[F k7*:Fe2` k'2]]bٸO3bMkXOؼ''o9>>Gb1w}#}|GڷVF(PUh E%2&fòlI_=AIyӅBa݁@d(.bϫ &8+y ΍<|.Jէ.3KL  OJفZh"C8Q@8f{pn gKjULh[v_aY/F; }<糞ڛP_ {X֪K?[W0{L6ॳn ǤڲU/UpDXTq`{:WTuji7tߒ# ,MUoHh' G+0B>v䘧C;bp.pyDSwF`릋1MxR7ǖ@歙.3bE*Hct&FA{oC>l2pD//MSP| TAPiEhOtqAfm2Ð\`h$ ^,Lm} >dOm׸wb@(mIg>׶kj^{, SO:xR=š0"NK-wFYD.ƞ\E؞?͈#pg\%ԉedr j`o\ū+tGzB\1:HyLP,16 }q W.;rٚɸ{5d 1xu|뫟AuViέbsI#`d83\9{AN\gˑܻZE6#Nz&~4YgAěy} 蹤&qc֑ݥ%áZ^ۢoyxnE%pM8!q:zQBq !^74xVw ^%VSamN_o?mn;茷IW1zu6 YT EU=Ա"&zhqpޱ,j!3qՕEb4OX;ۅ^GE{Lz SAb*M+E}֥[hWOrWb(;ɌPCK{!7.# `T&3zl砥C|  VlI7e5lYRNrᑜgu';-8|&m8hnC6R]xqO"FW=+=SoT{⮖ER7ijmN4+ƨ~)].(w9&9iǵz'cȳMY HL@my*YbCi^%YbZ:'o+\dWzQߖl[k1/\&Sq9U+(&}N9F֠=K@9nkS𸄣B 3HPxzbmvquc&!29pËyXa:i( JUd|ũ;]Xcb k){x2CŖSl{]"4H:r`vz[*H'q!XtCR;P"%ܢ!f1ۈ HnqGy7IHz["S"tU致Bm,j~Gx;W"_fńQq/萝Jw P!Yv'&u5(yq3G >5*1$lKrI2ؑPfe NC╲,åÓ?^wx 5I n`qrN%5r1r#+y6ѐ]z W#(,x;|m*MuyOqkJ4({ =Q^k bJOքe2E9{F( =Ėql3N|g; }d$'W2cOx6Y >AlO@̬#D) 虹QCYg \h*l,{t2!Jлq@ј:t{~DJz+^^hG@;Ok4ƨaXC7TxfL5sޟtSmA~@VSWjDW>Rn^cԠIL❨Uˑ(V F>0~ 2J7DZʴ1(2$z'V[ʩh"ըj|z=u }1}3eRre-갑*}"YO6ֵ[? Z@(V؅IW0BO˴̆f qQ-&l3@9Qh=˳lB̎d#x<-a7Q,: :,쒽 zk̉H*<E67 &T#Ǩ'eWZxRtf(R -:}p_M(k퓒Lg^ߟ \ϴYX1O5Z#QЂ:*90#w0j+&&S;QW=>ͥ׫`,2pSeMңŒ1Fް)Ћ&Ec}QWoJU&`͐jA Mvp$` YH}oXfF,>y5 z EKbB܇( yIG!=v;ad`K'ijp4X\n=ـƈrgƍJUļN@&@S]S0S¿Э+^oPֵO2rHGSr:>eKځsCT:Tama^CYxvl+'/63nSmoⰞu{@zjR r'aC5A}#O)Jqro` F37%1dMbҹc̿&pa$u25I"o;@ħa!8=i`้ -{8-õ oS t{pA/ښ ^1K0 R j,{Հ?Uf3o%-%Z1NEJO͎YN+]xrQ{)5' .&|Y,bPο}dg oq"4hrAu*,Xi 褣'3F<^ݕ599=nZ f<׃P `禺X nT&,_e6w{"I3~lԧMx٭'ٴ> U'0u`<%`b-nԃɹ{XD̥T>=\zRƻ68lT~`BcDKzWGz@Wl|a1KLG?Ǟ 8SR^]sU~ǝOZTӠi_ɽMl"'m:$87X/Wzv̯8<PVQa^/YIj2*/~HA :.OtJIS$^cGcUc)nU&"w[e^>x8i^ͼYˮrcv7u[t37H5I |:ac4|c;T;-b<1vm0>:EFDmt - {q uoe;p8EF@90Na'vpYzvb- ̴$9= &-hDrcvNȾD{+ve̡L5@p,m%h(6+_ſo1P@G}n8-6gcAe7܊b?۸R_+[ 'p"lˊZJ?=Q* '?g[/өNbro$|/pa[tqE/zx>Umj,~lREB~/58 (3Pĺ$`y[tK\zzIG ,`-1䛛a@&|k= c4=!M< .5 tu_-`{Y/`?N!>~'Op1: U+JM`4yvM!Z;:&Stm`׹6cv^qCW CiD)@S傀D͙R5SK66(, L!AbΠc=_li]‘߸H,?P?6n_ӄK[ 򏿔ձ*$ D:>4>],:Gӗ/w WѳcmK5#qY.l_Sڈ6oP eY28-L(ӬH1ɪT!c;/{1\Ftϻ92q( qR_ Iͯ(xɔ⁗X 81^Qϊ\C>g 7HKNb0p;xIfdIZek.oߧxp%qHhΎsgcǜ-pPDР M$(Qe[-͝}Ia=E-OI)lrj_ل ʱ;iA3m*ËXHG`:^DD^Y'14Zri]l'@$G񀸐 ')0 ׵HmM0{:bEڥHkᙛ܃[PHc1ġPvܷ ~2{Cw$a@DHM ߚuNn̟H j$|hAg,g=$&rbX< &VZѵǶ7_M-(k2 M<$>ZRIEli;f{,|ִd%9A4RwԳ0B&\H;>JJ'\4ZV" '\Л[@Ѱ/|/JَU>ȚSy % }hO`/9VpA]A-oe=L]L7 ˖oX'ܰL M]47w/Co;U%։|Iet"]@W\͏a^EOs_/s V J1fhXL>[ՆoTݬaZhqN^ѥrp]PZ *yRmk62یSqq ٛm6Єttλ׭SP,gk&BGNSj/irAw,>"}No,~7__cn[ alh]V>>'EUN1n|seQdƩO4[l88t!l k%MT lw4sBȖ@ʴlb? = b'ίvH@lr"lZFbdV`3Ra G J]UY ggMMP 6\G 5HW~ջ +Wj:3İ16E =dx]Ї N|7hC׿W>fGv~ { WI^ڹ LF_fs+J:)!"{VWUMgDU?Fu Nqg7N *|FC]–^!fR{MoJR䟟Xe|9^Qo)UA}!KE*34{a !Uo 1caCLxG,8_g]v2Ҙdt'"1$麙Np<7t̔ y!6S2-o>{U] y߄w=Dėwq>;I9t s()?53dCgEEW-?&@C)64im/->κdEHSi$k(TBXemK^0[>ESlXx/d[n?(oK̋d%.BI_(tkq\7)? vS ^ brqʇYS!;rV~[f+x wTP!̜vVJ*VM lz۟_wenË`g[V7άY˦^UyMqyV 7,h9 |1b<$FGvтHBNlO?26$ % k*{T~*;vv;ǹ^w <j~qM(BZC糡~* {*\CS]RWR=-[z EiRȷGWΚ8_?.CS-Q?0pWLIe?[}}~V7m39˩:|(]wG(~'N*v{s7YWs4S&:C2Ey$Y:$2ռ h`P;9V OvՅЂdh5֓.q(8]]3TUA+67:  핕>,n9 Fx)"KK*pN cq;hZ6"aHPSga"qHc:Y^(ۦ`iDž>3C$Sqdݟ:sBٚ\ k M*Ǝxx#jjjaɜtܴu+˃KuПg># FN%Zc6DӳZn?s },B$>Q6 DGI*^e_5|&3 gX*?z7ߗXx}ЀcxD iXu>zXu7omfk)tUeD?H Z{'U07>WݓLT㶞myKpjaDxKG\N @62N(l?3NCh`1!YAg}PK,Qfa1ؼ[k"Ь +tQH]tG%޽m_r+:&RXa,$5\dgN. Eue宄!fJy9)t!#d A %dKC ؎Kkτ E@&IPXeWI- 502A?0z]Bczt  -0mT;3))XW4[`l4ӢlC#uAĐHGZpQm?++-qؠ\]f w/?6䜖Hy:E􄽒N֊(jנyD8%TFK&EGi!S<ykyhծfWlꘪ3]Oo,1)E,fEBhll(Cn|MD"1lc'b0'nщh"dX LTj_W.۽lw^`9ۆ=&6(W04T\\N/j7UT*՗^4mWixG}nbF(߻{sE>c^D=tӱ-0^K #{0oV.>^y6feFU3BTvL#qq8F)i9ݠ:ꋧAz7,W*DBM9k zAfjnq8U^#>qdž2tBu-vMWȃ9[lk,"g qLU͗S}l IYC Wp^0JQigP}!8q>bw|3'i"Ou03[mUq`ʖa}MN#rG \Fn.lGŮ' ź^XYq' fazq-v}05\*tI ]G>NhZ&+3(Qqu^܍y*p6jpY LFs2O0A7N=%zH h z74ieӻ]IHb"r[>ͻg??>oqKBnR@hᵯZ*^5$CnEOkQ^TZ.!k,oS\ѳ|B7yu&7ϧ`a,,Qb/Om8š_zVu#I9Tƚd)w% =inWT*ˌz(hDRO},S̬3؟4&!AOFH /)rusPH'J(Tf1v[+ +#pVr%WvC,Bg+@drzYFO%/<H݃{XMF'$]U̪j}{/z:ý.6- x.E7/p֊7s=Yvƙ^"nu(C2,FzI'_E %de &frEH.%k1T]w#8"1,\6C{LpU4#8uWyaL6Hq2Bb [DԾ+5#}O(n&mC-|;բ#fY~,]{ah*1=`& M3мn|.YkGXYي%j>86Def .{jõa_zنD8S9T(Nݐ&O@tZ4pU)\\mjCEgG%],6 ,b _|EBxӹM@} 邭$$bD|pg*WwޏwyZ ;ӂ[,G:ěC6ȲP9Jz 4PP/fÑY>rN@4Ě]@w#4 %k>#Aoy)r5;/H$0]h-HC3+T{1v 65:p8yGj@ m[r$Ȧ'$Xv.F.:4pdv4 `j]/y2h3SznxnVN>J[YdMYoQzy rɪ44{Uةױb46xxCL,_9*a6+KW+J6(X4Q ;82UIJ$]$%Pl4SF#z>A䫓?\oӆN@f>Gw3$[DiZ%KI eAtּ#yqfuD霱U)^&3ٱ'2G/Vb+:>2| zFS}NذeOmII0o6m1X_hzL YdJi/WGg=r;-"ec挭LYQYYؚH6;Z(#<*AܘI9*1c1k7MQӼ dȮ *1ݖϪs,>M)ʂ@;p؞S?#N ya0^]#EU}Pg<(\NB^¸%Ƴn:z"?H trIWHUb)Orzb֤!Z\ӹ.;]~f:#7{|BɫƸF?ϢDXMV7lXxeOůNZ8+f'T#d[~uO?1ztl)]A6bfNHcȴ/e~9Em [zEQrcK ug$QkA\:}^q?@+q~h}Qq W 5gh┒:N]Cau1[)Q\lj^c_cNHm3@&UA1"K !O4sm^xt^]dݥEOxlNq pM+ -u!`٧Bp.`l7=hX 8ănt Nݸ\}m/SB$12݆"#VYF<TZmu>LaӪ42[j3pqX%FH;4ͼsAvi񭛚Y y4MkkG=agh>,NQs,iojR-JVQ-| wPr~~ɏ?nOhz#<{6X_Wvޟ}( gwskpRovs`: uHq<.~>BW zƑ(byfXzP^2!qL B]#"70<~"Ͻb2EQ# -_ i3ؐHxPUZ&`91qk>1x =?>Y ْQ #@D&Fr//^>7^)&Vlsy9഍{:^xeiS0BI[<^(Hlt gW]\ZnnW~<_ |iۈQsY}±tK蛳JQJsgx:?\Ks'w~nA$(=g'k*eQ>Ü<+q˜59c DGز__ QX>WWgaM |Z҃z(FڝѺlc{Q8rpj\=ʪ&Ry C'q.݅}jMv m-doV;kZI9t>zHN O <( [VXTA.-8N!1LԚta+ȈB;T % !uEr-,ܡ`iҹo䅙lJ1a WKHf*ڤ5kHResTI\8=]EH>av$52fd}ˮWݝ',ʦ1_~ ׌n)a \an˺JzJk7@~ݏn~E|Z UW̛xFdE7ڞh·< 0A`p|gO+zz'AsH_޳ A!P M`n@!zD"PNsiS'x12P{'1YWV=a~prWe`2b_!nɎNPOoڌC1.t$%ȑa8ݳcs誁0ll0ɺs)b4#3#x޼8 |Q~鉯ҳOUU~ sFM1{c4KhF/2X@YLsCaSO }lXP(>lkj/ ,ja`)=ÜM-~DhF2lNd0#ma,ȴx[u8c`xi -#=ݤ:"뱝] [qsٍ(a{mpz܃$" S+’N]cǿA @-Ég!׳u^z)NtHv!.INbȿqo&l{7l7sJRiq ksУ俻Cn/Y6+r'ۯ7뽧hv0h;H Ʈ r @u4βڛ]Qs\jTjw_MjPa~WUV.P 8gf v_1o%%Ë!MdZ몯kdAaQJ$zqU8 "Z҉r@zz&zϩi-h(\/YQOTynŶ.%[nk6ԭe'5%PH^c_ݸedsK"L*ݯ3NK^|> k-~w"`,pÛeoYA*XF{7K|'@vyoX(,fFէ%p|<=>\soxip?$f<)~&ߺ׫w6 0]\ 7eHp+.TN96"CBU6US5 xV X#\},(zagen[j#ܫvo?soolAn^ww뭛-> ?N2KhfϊZ[Cp泃ó[_ y} v=6bx-qw4! l&՛[ZM \;ڭ[*9:v1V%s`<ɧ5YZ[@9>/ a9Nru,`tz,j9(!P*{@b˜t z:7 \5 m Z]Uy6Wy}v'.H' !e^p@q0]Xw+hFY`\c薞C`a͟Ve`MBX:sAJy=賄o7K|"Ӥ5t/& kG ؒFWI# ҂β=8~/x:iHJGiiPdH|'4o<19,GJxð~sta LF#%Am.UOFcaI986 YX@rClxc38ߎ'2夥9ņ4ˣO̮`}E9F7w+iׁ5^`# [- "1޻] YUq'TN@~VF`F`p8_=kMۣҝaVԛ|Fd eLśr4X|da '`lVMy}UקsOo T(86MZ:P¦JC/xhiva0)'@Du}L~r#Fb=.+lYzDъz _%|Mh1~: } !ɹo x3T"NAs9!21Sp&!τܐIXO$Rh'+16]&p cO}QQ"A1ɇ0.4pZ\u unc66?MB{Ѝ;oK%{-7%~(>9kj7-%t<}MAxaJ͐o(2Kr _"[ *-76ښfhAZ~WP>O:f"4T ?\6,yҥZ6fI5 nV0 pivv'[[:6Uu_͊sC9^_?,^h&w@ ^ӛkXQ=3Mh`] %jʋҦ%!U T(ګ ![mCm*qV= mIQfqq5t.Hi]dp ԝs!v"'Lv 1IJD*c39sUq$ēr ;oAW4xxUawS1bƺᒾzMPdRoHʔD _̄]6bm%+q1,]ͼُ( kA!#,FgFs8"B̀Ǟ$TҪ]aٿhŁApNj( Đ%(t$)sTI9SĂ>\ 6C!nbl&iሚ5[M:`#kc0RG^S҇z}KD'βCחqצ nEUip.ſ~lr({&}*[Ži}qx}}ptA=KNo'k-.aCwqx"N$5iq92 zP Lk1J,77GMl$d[B3xP`gq@0-khKyA-k &rB)^eF(G8&qr2YFA} -N@}w5I6.x=Ri`il6b$+ smT.ˏAȦeOCYmUTS_KWk9 W?xg ppH>42Gtḿ F^|NkbJyhuhܠ - OV{| J^)uDo 0p)]x)Uo]r ~H ܗla\Kĉ hFu&C;!%$upl,-w\LŻL^c®O'2g4W@0~`OBѬI9h J=u QӔO-R11uWQ{A*EI=XYIjY ' &ULOyxdr_mFでzmm_m Oo&s$ {e_^]Ge:DA;IC|@Eg J bR/ Y!.gQc0 Ɇ[{q@Ϥ"曦z+7>XLQ5[wGk[~h9C/,I'>ţ ԫḛHRm2>u A7VÀq{G^b@ 4]jxՋ/5"e>j' !Yna[ `kWV~\DC1-x s)SYKѐ:/v_6jmxGfCv4 aƽeFHT,CbQ Weֽ&~u)?o~3=l#Ul$Wp_ IM1 q>N'}لy3 uElbHg^l_F)y c0\?[ųKIjѡ Te&Y67pQ0,&v8Z@6'_shU@J.'|ՠ6X!7Y̯]f$=Z2|H ^$Q$_kmAcS'^*vRӘF76HG{l<$ hՆ-V\dDŽXaOI:E#bCH l 6Z m7fh@rZj8BWG_sŸBRv/)!NuમR5VažNrءZ!sElA k کYE޵WŔbm 5!c0\LJG^d*9KsP2P.Qr6NgSP0x4nOem}sMi:5e1^ 2-ѧꗔGiH]*9Uf_@ZRG&db#R8 ж./ H9]Ó5.|e{&C.m2RV[BpÙ+L=kCi`qԈ1%?qS */`mC"4(c xW ?)LIgTxz3}_'y h5u3u2LBψÅPzQx~gGRy:nr] gdrLp)UOjەɰT=Û#[f~Q4Oᨑ40!bB < .w~n88ah]:ߔe$Z *uh 5)H)jQH?v\; 'j%P6Y]y8d3$;/=.lʓ o8rƏYƳael"I~j:?ꇓФ ߔc?4{D䒘<: dcXd'ANgm$:ZYM 00eo^źrU+LͣoLCf %ѥ( vh$3|ɡ`S՜ވO¡F8]x`ElN YW(g7u /x\dSV4׬_NniZ^]Uh; CN.vV'XImߨFmgǏ5Z^R'0涴$^:€ 4HDxTC̖af!™V'$C4rgq;xN\Keܴۿ֋NE_3iJ3 Tmn9H:ɧ@nkDߥ71F1ռfbJBѝ)  ayB)LFݮ}ot U0x=ՇEJ h G[X8XXU&םq#X/,ǔo^4$OD ].wv &Cdf `ư"P+:,è(A)0lsEi P[߭&KۼMJbmVT(74!'g*ӥl:N'F`=MSM`+ rG#Iů ĥ,ֱe;O1}z(pt˫[?qV& yE\#3kXʙ< Kwaʂ8ߝP?i(,X=qP^i#!U K#43f)L{>*a0yО=2w'ة\4$64S!B 礓7$O@ >|g")ith'r 6q@*0jq X41z nͤ!wfZ63B 4탑2M%, ^B3(j~qB}L>mK7ef  ˩QR? ynh?n?.xrl~Q^[kk6gV2 mJw Փ4aq[ ` Rγ?gD=0M3ʇÏ#pÀp1ZkW/}/W0WY.Y&h Jݧ.<^?1&( 9񳢜r -mƞ.Lgȕy&^2i[(aH+7RΑm^?ifKs dw](S@4$a`(C\V'GVb- mZC3nA`a&矶P / ֩p^zh!k% BS1`!Bf'l%{8ZI@4H AM tSܟVCʚQb5x}Zf18R>0Ct8LFf>lbHƂ]b"P@;)Ab$-ĬV 1,>$-Pc3CzVX(k~7@'h2|VYn$ɘsT¿)!Q>)#DTo8{+쵂jn{nx&'噸! Fut%(%WF # kuGx4}Y$򤦏KqV[>.q6 y'#~>GlWMdG*6= p)#oK&Xa'}YTRgӁ,P?\R?װboƉ!ZhFi/[9$"6 z$BAk)f9e6iROQ\̠‹d<w8UN"!{!cy\<9>A^Q{5oqC +/U3d 3i>?@~]Hm|Oy:Ii78P9{|z DA; D>K߅ZtڶVD`c8l+Q )," tPsd(<gmQ] &[:B~DgX&P(Rk>dpw^iXpQ~o-IFWS;⁾/ҷm~Wxfzc(X (b@yAo ϝXOmQe&O6敎h@P>p ne. )w xtաG̓v~nU]O`fq^(]#\_i  ^Gu1$ 9ۡwV[Ac:]&} }zP[dxlk؟d1@Xo۸ ky9m&Cu؀ABmWY{t0>UC]f9џ/U .p>a ?n~gS|7|Bi'1 oK1DcS쓘 :Yv(Ö%"0:j:12V=~Cr3Ƶfq 4LX1F2\Ym<*iN1/̘lt=2}K@/x&y˃=N"ۺ4w#x:gh-U&Bq'C/\i*u*L( GBXF#f k3b߇/gw5DX3 -*%2Υ'VkCpҞڀn׋Iڐs2g|Q1T`\''݈@Q85jfw`0G$ r"Lڤ-% wgalNPK _I{2GX8v۬+,"6J KF`Z(hTx'V^w a'uѫY4緞4ICorTUWƋp{=^FpuW۠Z?OW> pMfD6H !YD;t|pt"[.cǜcxJBO)*A" %ŞagښI'҈tP7bNi]shmmE O/y/;/[LrS͊}/#)Ui: S%G:.f,*_:V 1Jl20aQɲV-eYc,xD&Ql5  fz04T]]eQ]\bu5t.gY6` 8B]|Y$$ |w6Bߣ͍OK\(_"iax&FDlqy; bMHdz*uU_<^(>Q|%C%.Rz Xnޔ*sđCd7J+ >a' Laㄩ'9ahxnmE[;(Rrk2iG8m6=è?ˎ-:Moĉ>Iw#%H{(^7żWņ0cza}wj[:b 6ª!YRwRZ ^wʉ >_*,R+])[+ĝ!,4",o|5m<ۮ *_9lh"vf=Y}L2dzlZO(V08п+_9ofi4aA@ءbA 93` =s~!G8l8%l xVCgtaւԄe 4R/j{\IFqA0 c0bmK^?qzuޒ H7 Ú]J]䟶DE ]zY>^yU~oI1ƨ.v&ǀhxO1܍?яV=QAK?#=ov2~nN: !'[T/\k+ 'ai9 Էx: ~CI8N 1~rx<|Ax9K: :3Q7SqUD0,%OOuTξ=^QwBC!Bu2'hdfs]eMp#h a&w/ b2<lm׽{b_tEOls|\i>-FSr-oI#nJ|0NN@Q!K4(/}'Qzo8w!;Y#T{'Ug+}3} Yz㛋m}| 7vt&nՇᥧZ%ٺXà"5< i!v'|% oJX,K'1b0ɇq$t('&?9z]@O▎8t*hlSzjQ|Szg&rc.{gGlCվd `^68Ē~JrKf 'sblIMD0(G3zуgFIlf1K !ʶb4T R_VgRrMmE-'2[d:Dr w67l)>1e_C}5acs2:m,cX6˴~[ZaE :#KB?D#6dEN ($-Nџ.[+qBZ@&U %(!|bJUAsJ, ̊eunEo*Ƹe߆|^ttI7'W8пN#(IչH/ !i'dk$w*\[SW!JaF~1?dMX |N'#jsOR+2+Re$>c%Y|ljC] 0/U>flۤB*aY'>PX]O~rg>ۍOo?Oٻ:61X1Β@&W*&BdRL‡>tIy7CSHe>MQ(HgbT9ؕE=VbyLͽO@ͣUD S+u^|ss%k;L֞t%%E0*)̥`j~`o/{Oz@- n HڊCj>̲"4g`@ =EH(*iEK9qsBɍIfrUS~fS ϰ( Wy}b7f6p!熪KW`Q ;f13^Eȵ\ޫcU0H=D!%MZ 0@'x1$'RޚNo~y­Q&bg'MQz *e筦08Æ AcW 0a;HO A1k%1H,ςHxaa,<㈏t@,s 0m5(ls|]zL(3P;vWEWI ߦ@ hP?n%Jl軼|)EZxeHV@o/eL">ÅS+7KD|PUK=(6$>v(3Z*h^|7U3Cu j|c/N3)$( QnIUo@ Mb/d%;:+rYe|cs/SNUG٤ b5P&0;f=CѢSzCN(ʌ(<\6_6#qU=A`ɜo.Rp[-\66{D 0t~Lx!2$Ml?CnVdž jKqA:ï[-V0/‰h)'JWchz؆®+r m&#8M 24ʔbAG#CZX_W) &iѸdp1vw (+zFSH"Adx=N/ -:|y4a{}⥬ &-^2s5tui7Zdnܿ[MKBTzZ aXVoKruƹNkPѦԮԽH%pG:PJmvkVn08x;JÐ见N1i}>Kôچ; =i0B"}QC,vԶp@GEc >VLL 4 9| R]J(\3AKQ"9lRbܪmڑnZ$l/>B"5=x_%`{Lf`W$gf(<yj5E8rI1 iO[ lW4 芆 :2D T~.7Wxa jKaњQTd~&nTKKS)q{0%V>S5'xaVFA@}vkҟDri#FCCkG*ob!#Ѕ-FRk'sʤdQ="gu_O\88oP!n#,IYĐvMȧ¨=;Am%}?xO< 1|J?7wx `US+2?~!D\ݓtC,+U>ڵYAz 4IQᨀ*)0u<,bZkK![9}L?łA!7֕o>Dб#F5WMqeaC\b 0Ԇ9uCdVڵI}qYܯʦp yMVhRM8/H_#c7G4B@}Gu2DvVD>AIDD%= ~Fw {ȗ!ϸCr1˔F߂drLm*9ڑxώPZLNf`poۣ֐FUӻ¨p2'ϹUDg,@fN w'ehڤhE_b -Ԗ%rGf4h] !p*䱋:SfE}\nKvO~b C4IAptԫ73C T]>mn8۴_'V6NlO)ϱ^,QBF鄂6ܓJ$慣DN#erv<|KR*aR KOXx|2KИ`Q;OK_#If % Ȫ7~XRъ>^% 5NG 鞻Gj$j *TS&˓LQٰt43ByA1k1*g4!=Mu!s>r=[sĪ (yU #< |^t:SO"U#>eMD9mBDNZ"E\x ֣\7/EUt"i#ToQq1#5eBCky~ڣt g =?em/V6eelxgN ΦlT0Ў.E[0 Lo6):@u.w@Ƀ䑆]ٖ :;.rP/.Jȳ%E:bBZ -0+`p2|Ií:)UCNRw${.]컗ldQEʠ>0'?޶ܑ >f殊_bHr-Iթ8Q[iLCsмvDPQ ÂIҍcE8w]%BR"~Qis9):"`Zt62^`21JD/ctfMs$'I;<˕eaAW~/bzg`gFFQI*FnvSb{" 7ѦK<&TWۍqu>KæXDʗ;hkC458̶HT1ez}k钷76S'RK""Qcy};`3Ll8rkC(/?Q}_(ubWս:-+.7f(PGSĩaXdb+ B 'HZe)x X %Va"(^GI~ 4Rb"J,A3TBY"-W\<;fiH+%^ig jEIF$Q!m>u| ݑbb$]OW Grw=p=zMg: 0@+Þ`I+GNm˃gWA'@kyb*=1<.c ;$NoV/(-"L#U?Tp{OFwiIn3Ȅ\DRwwq^ T &Iv={$Vޑ:x ߅+^hC@*1v?$ $T O 2st`4^VmHt꧜%8Õ97(b_}˟U:M<9?ոiA,I#Yvӎ –{z8A0'/ 4Mt2`" LaA0ߛ>q ǼS nɳ"kA*.Yՙ9v1JBޱL Hd;rӱ} ~ o$]$- 0$ՙ\T ?9RSSJVY Saq.IBaQBhوE.z4EBv W.C%ZYI8\ʡJN¥G|bL*v`9 P: Q_SQ"8`߯͟Gt2\$r9)Qq}7Byתj 6T*{ d̡B 'l,(Ѱ ȴafQq _Ԑ3S G Йl-,%Ɯew`}af!|DA+t~ 54 t2n>w Q'dAb1֊,R#Ygk*pJON k^JP=!2J7EXrZ͈~I.Y:AkUiSXg*⁛D|7pωZy$b׏$EC>Jx8omDb\{ج !84bA]Z+{jW-{s=./2/$IN. *O>7d54[7% s?s4t:|(JyRoWZb%)*$^/|%(H`䶆F& d:B$Q4В@r)YXx%!q?Rn||_Zu!hW}]ּs9|,8l< 77=$Oǒ9ag;/ϟ=t1^a>0L7?hfILI:N0qD61u*춗9N &,49;BLˆ !uMڶIm֑2dE- 0^jtzȅ1|vg5>y1-vI'"7b]N*@W4݃ΰ {WBB対Js"0U;͟mGk/ XV_N'5kťk$T7}WX\;ivI~zj @^ZagVR65w],$qE=t *ʴUa;**YhleyvMeÂuIP:le771'}M,t>gʾ'\ov_ߚ[U1i@IHoAL1f3UT/KM6^ZxT荠u% ODZOI > 9aͥLp𶶰DӷjzBRsTm" 8 J쉣ͽCHV\"uTIъ +CK:Ga {Z1蜂W QWy<Ť+JH*'Hha(V?Zx1RB7-^Ǘ㘗Y͛ƒ7˜t)9hH] ʍ-FDED@ '55.Ť_;0 7Zs\BZvxuuKCb- L[s\<ŵv5( ۠~ 7B^fsvN|/t?|MK1*#f rKI{Xw褘yցN9ìIin "c zP<+:1h;ٱ kXc6(.2`:! =P`r6)`0=̤ |a jŬ]t$Omf4=\?{AM,k>O[tIYhc(2q%,  V4 HE|gF\hn+dMԮZ$+=tWH3vq06` dHS&ճiӨ(v%Zq>)xlqCKa@Ws fꈓdtXwlՒ!vՐO hxy0gAr?C;#싢@ES)0f، 2b61KWU][qpt m˂7ĺe^ _G[,=~83X nmgϧD?䒟l(=* j[Y`x/Z BBP$*ģ/T^;'8 @SiݵL5DxECm^S22ݩrV}JcXt0Jk.bhC@ l- g6E*32R1b! w ls?0I=K agT&~p)#i z*;iBnOi Ƚ|no'L6^x ξ_.Rh01I Eb!~Abl~C|qbN3_`$ũkkfn $d4J׭r[(Tr8V2'*s|bKQT+侊ہ݀C^'!M6(Gh Bf|Qn%3e @ae7Y:&\тeЪ6^d; xq0xhq.U g[Nš*ٕ -4 p:>F.ڀUұNgiJ'ǀ H P>Dӆ\hCK %ƈc?t]acF nZ4b':Qzq#wGk+ l$8GPPb]20e  >wVw[H`?j,ŌMV!W`mضI߸w%Ӆ?=.GzG5sŷW_`Pmt/p4oMr N !_|zmԐ-w]1,~> V"W|7':Z_k1㱒n08ޖT:.҅+ kphAl[9?)NS$[l+*#&%1X#7_gqM)8 a_ HB*&p.enӊjRm&DԴkQ_|2)5c* ָ5=Tj ּx RXQt>X6-6~O:0rJ]is|g„H.I\I^p  weF >ldV @㕱> ̨ W@1[XҋIab GFHN%()?Jč8"vZ[6 \ͅ Ίqpv T"giN#,|}Jo}Y)>6F ,{8M;:9pqp 8.qzY!<0i*˫F ̓QݙV8qS@)GiA_zեAYOSdU{Q% 67m6>#}hf>t5]˲5іw3Nt@sf\=N/F0?[38q*혢W.ko;2rTdm[zU 2OrW0o!a8 *WU\lWلT-G Ca9FNۇA+|}@(8fv ֭406 X~*1|K[aszCm T|Af^}&~c㱤J%}]$1U W"S6MwoUk{:^0JjH^@3d(mGܐrJ@F;$ݴ4L9/o)L37k42ʹ jCbrmCP[VZzdT,MV/ 2͇*(i.fKEv;{w k (D_I-;\D4lg SB K1gfEQ-I;] p- ;Oth;d7=&i1̲䕩n7o^2z ^ MQ5suC3E7K@-dc^',JtnÖy:s^bQ-j zxZP<c3ˣ&N T$MF#ßPn)PL0\)z8WGd]AkX0e>n.;1x)RCvβwD!k3ځ`5e_ۛy܋~>jNj'Ns'mo! :0B#-]eJ9"IQLT9E^BhT+-\5ZlpaŖ})歪* Kx3 YqE}l13'"tf 'W~q 2ON}j-VZrr|C{Vg 73UQ,L`tdZaj`ਟL4z.?-LH̥n6(FþE\ªɧu'g<Wߵw3m{՘7AtG:г%!>9o$?'eV˒f(AqkFe5ٌXBjU`_A)OsmvPVl 0QPhN#}nY:m7*t~541аlUfkt{;a:Ht~+pn P%1zX-HWBojGx*|9.@g 2 Cd%ג2OI_UkZyi:Iq_*7 |\_(NygT8Tr;Uʇa&d3g C}ɞh"!vv`i-p{9=u./ _ۿt`[li13Mqe(D[*F"0-hU3iO bM50S+ A 2•3\G6J+$)'( A(1sdE  l@x] /=1t5)Yhć%i έtmǒɎ =Pb1%^ CyS>Qe?:^8q*=`\ [܌wQKCL KgXaO<`d֡f@!%K$b@[, 'i͙T{"*M(6<,e7Mе+S!* @3(B3g{/(d YrP0{ZmtjJ{~M*Z[ &xy8Q{Hea`놷D 79ȷXl\G #!4E#jP˫a'-`(Ҁ8%6un:MQr9!BxJ 8D D_,;J_=e FZ8ŚSaáݺ4'Lk~i eD:(:ok%#7VWG,SZN2+w1y.3ҢJ7rD|gi)4t'+u|iBr&X~JR8`#B5O941 [=%QȞ)5Vbcc@̂Z5Cē)3j 2F=jFߏAw <ƭD)]~qk=;ep;5߽ƑD,]?^M XBF^H6Ë"E?LMgmu&m&!9{{i' [{h|ܒdOL+Ʀeml.[=ViP=a25f"dײI+]S}@EQ}aKm͜l4PUAK}UF#{AOݝЂ0\cG6z gV 7&aup?SgG-x0o>}8& %{(rPʣ}Ѭ$Pq.1x p5aJQqN ;/t&RDAEKa!T^W_?_Ebk >t# qf̕V|}Op~'^Yaji .ʫ|| wz%$lGϊ+&b8.r3MdQ˟QVM>vprOfiŞ ܁[R$?t8ʹE3Mgt¯{#~P/#9BK#qeW9FQo60Oƈm 5kh̸;BVkDS9CDW2%{QZ(!Ng;/53Q'b4G DC%:.=Ot cJzd@=ID;&hfl|w}PП67gmtŢ5(D&!a4  >dqYo'nL#?s;d͇~?v3)>Δ0f 8zQe7dTf13G zA]#oQUA2eT}BMW\+t%u/1?ڕhpV 5[E0g>6gR:N~&GQe(y,_z!G{w>IYʫ Ax mNVMWQ& ($5vI&"#u 5!TK\NAwP# IٔV|H"铁!3S*dO \ <Ȃ.)8&hS奁bnrj::9ʳVǥs6P %pfi~z0xigg4 ZK. N!}׉ 01=Ͷ 4* oK1SN[_+.Zt䵓3Ym[wOE;F4(j2)Y,Z*WuۘiB46Gxg7 m 쁅ƎyfG`b)ʧ:bĦ-| boܺɪ~<0G$/JӂҨ9|-;)QeOrTAxcU)ӲLJn% V4-jQj\#ZCɫ03͍VD> y φ Yyg™SqT$iUꅾ2A.$9ӏFba+gV6b Ҧ]nj*cbb\De g<! Ed6q}ݖN稚k!qx[F`볋1 ,Yn,*N4йtbʘ Rz9WKbfx';0P"GV=.ʥ}%JBe>ma@rmvdlGeL(b;ɆA@%:iAF:i&lR\Q"2HQEũ,'eo L8 Kp@ǻ~@l2m:SW6<"WzUzaa>ʈ0 ֧mk6A1KK>S Jz!)ڑӊo8cG86{;*&õH~lu+m=[rDoa3@KRVz,e@TIwc iԌUM6tl )uZFm1bHko bξo6k'E)xZܛ&LzTs^N5wZo4ʜo;IÇ߮CZtOxc1#ڕU:舽__19Ry=mOI`Gd1{6QcLrbUIU2qNRp`&NŲN ؝mJqC1KUܕbpG?lJ^=05G @ 9Q< T 8F\Ij;=ћ[RSZ;l+m3wj*?)>y]I@] n4ٜ4vεL1D)aZH;CΓnӻL:X]2Ut󊝢Y}~v^cK$qŋ~ﱥbS'{^'ѩb#WG;V"}+w+zI?|wth +\%x[ۭSA]t vVP]ݺx~EȾٵok{Vu,/ڎmU rKWoUm o&+'d 69*12є 2)E aSLVIL'"ׂD:u ZM]?"]z)!! &k!͵Z ]WUi j2Z[3봤Cݘ=[X~. iE8I.]- R:shMr/A0S{p$ƺ(9!Ux)hDRu`+GJRÜL!A} Nb|٥͝\O06VQA'(#*8\DI,%izAɧM2uߌCQ!iƺA4T7eޭ|seŴ!^]yө&5…SyMW`˩>Üd Iy.'NtSD @CauM$ے'.$x=s"z{pI+''%9>RsӧToN,@'XټhsloϿK_GV|tz|}}A?UTRZŎ  *QY4zeUNzUR+Wb?n =jWNT9j|NCa+@U9p Wjڪr4~֪*GW^U96VL,8ftn%N3lPUכ-߼ jƥW:pmH/l\~Cj /^uz޲QұSwA5ohv] 6%, *WtV?{8[LX<P_9InUS)S;e2U)S_ej3]Oe_KG[[qt|Xg1cuό.GsA36@w|_sᴃ48WuIn0I\ < kGxa'x^'*UQ̪J4Lg- Y(]48&z.80~X,LD!V^B֓\JSx9ixMO/kb(PT|ڒ$y fq24۵CÁZfTf檨YR)u Jj|T&ס[~]fI n-3.nÜ[ĥszDI-(~Τ*S:vg]O!]-a_#PV0*Qț3`_S wL|\TnjoKs [ncdM"穽i6۟zPOP l8lfZ̐аte 2U JLޯ!4Yd}\vb C ?$A¨KUV,([?g/\}TƧ*04#,'nuuN?X)t%LG;Jo<wwE,4?&9"Woa;LWQPk+~u9XL4 #-";\2D䥾^E-nN + ÷mkWV}^ӼjC(_wZ4,+M~ 4'wtė^; ru/tuU=O r\70gh}PQeY\] ݿJ4Wtr7wp)~@ǿt1k_+z*R{ ċnKPI̫Xe5z?} xEgNYƶr|y|tj:s=3l.+$9jءJ^%inFJV _Wz:_?qFU 8:KU1}$ѳ.}C݊`fI߾ojCGb$Z !h9ET9_ƛT{Sղ *=F?0^h>#a}>.,M!v%XIF/ VqsDs<"zKzt&pXr > 472ǣ2pQjIS! SWaU"$ |̘n%CV~㋾~ǔ9%V5X<$O Gw\MeC ֽKVq/8ak.nl&oMaD ZGU:hf["zf$`j_#6!݁cfB^Rުa<";uZ/uAVPL!,Our=n1uJ|0 BY䨬`9/V\#*e[y^H8Q13̇:$pB{tNɐLZ^c#aС׃xwi>Y͌`2JTqV5gPOe<$>9֨餈+#@}(p{+n8A(ղlGO}e V:3ff5hCW~֩[4,L?.z LШhpɦߖqh5_e7I=4w-@Fn'In{" e;BZՏQM!_zӯ)MCǽ>z Z+:1YbH/ rr X`ZiOӪ=Ȕ,IwO9+vgņlI-ToӐf7__7ܑ**7H |XOt=>o?zSJJNe8 darC4v(}VFFV\eȾ)7ub5%(۳lW[O[{>Ȁ>$U%u+TfwgI#͇ dr HյirURwmBˑP^5>eNvtXjÞꟴ]LC^^pl4.e ϣudfDLu. <5G8Ip^h=}Wڶt˕sjRpWLzA,~ z@_ݲs^Sc=vDo x2R}F?70ngT9=x}JO֛ӃՏo^}gu؀.ӝjc 8 j"\jhxyq?TS;9?aIoIF;l66媫gWRC-Gq'b,6E&W?Bf&Oo4l?#M?(* %:O{Dy˓OO!4:8? '|FYkOv81M$u Cc-1JO_6tbtld$0J2Ewo6zXrmݝ8{l,InlaQĚ='_>;  # ·_AZu~_x{`Ճw5 ^c +X~3@5˺H&~[FF1$]'C5P64QTCτ 7g (T.=5%4i]DVi6hY.UTD\4J@ , ŵaAkvV11ERX0vw`O|U^s2c'EX!#J5!y79p)UsVCm+N6D|Uw훽O}pu,$nwܓeШ6Nj< '_c;5Xow\U gu5߃BStW`EvDS̿S#8/dՁLGp!DC`%SSMÁXLol>8NvA@A1$C*@FUbbR$ ͘D3H?MYY<̓4o,ֹ5dKr^d<0eT xLQ;UOXA 1aT“`|?q}qzgB<ǡt aPHl%jgN`G8 Xbew$E{'H?L1 ry?֨+ %:/G0R'iθb5gHJRPxj쾢Aj(j}Sj&#x. Fbv'y pL@ v0"2Ⓧ]J|=d"$Hsfsz\ߩP=5Pm$q=搐xvY' ڨc71ģ̲~:uxy?Gsаc=t`ΓtU>b||fHi'Od #\u:U'fA1` |S[k~PȥW!|w Ƀ+ǘe6NHD2O~C#F(yV)ю{ a)xVAlta,2޳#IђX57 Z ¯x _/Qt΢H3r}~:#pP fQwiM湢R }ηv6Aډ 2De}~8#K?Br OL|X=KWiQ40+chjINJ3M D^x[ͷ ?{cXIXr[h nMΩ #[GG cM )93+9:nTo ܵpJ W/w_/={Ê(wY ?=cq#[=WMK+.\ _(!څ)Q&#% N ETEzAX'wI-2f_E5JX;lok ]\'bճ{% 3P_jc/}K,BX>])4ز|KVD㮆`=) H*Z]zX7Af*-*qI:cд0m9Y"HD{ Ҡ $U%P蛮S5B!1$$z H( 'SN/<}8S5hOV]Ž*lΤFըC!@ZE0Ɍ0dE!kG8-xO 3838QEe$ GHDgѨo_WŹxNR$iJaʼ`ٹ-1=QAȩ:u[S|=!d,=⯠`^FqdEb}@p0v5)%bM K73bW N87>*qXLj]@?obEtg<=R6Н Y38s9?Q>jv(2s~";f!zL9l'j P{E@W spE'EeL;d}TQ}g}|&y<@8i$k@膧LƽK#~SEWSgf~!sOR2.BO-R'Ŝ 2DI iYJǀ$Jήs@h)ѐT+ J N|Z O žS0Bfy-V#,}R +3qq,]Y\E-&Ҭ&ԩgFe 㰁QpebH9VL]F Q42ɾM-ayX'˘)YHG-Χ!X?] poޣ{~?{VSQ4\5bmvy,ΚhQ+| %3#y6\`uKݼ}t`5}6.*}(k0=NŒ -F3PeP [H=&kw8! òܚwb 8k#Hi"L8ъ SFxk_yp݉Pk3(yfx5(> .FZ'\nRYm%Usx! mrX#8.V = ݜ^S䈒)LzoC8A\^݃w @W߽}GZI %@|=(;x4u6hD zd;{Na:} q ų|1LiX mG 1xӚ *H+uU TŒ[ Duq?0}Giw@S<#1EtDm$ADM|/ 2ɿ$]Aۃݗ/݅Ɍk.z97X㖣rBW~S9l VKۼC }O@mW[͔t^đP N=thXK:ɂYPUHbߚ!},CTf$KZ.D;tF)M)'[$zA@p6?tm:B-[wo~bvu $0px2u|pVO*ZE Ypc<#&LEwš01C@U*‘x`ku2ʁk[7hr1̮s.9U]&ydœ,mXL_]tC @__M۽ DFC:UR 'b1ԎZSHYSw koSe͵(;Sfҙ}Hֻ zP&jcLc F׋t;FLQ\%v17:sKF*wĤ\Ϣ̲_ >N~uVܲj1ՄQ憯`kP2&n!C)͎eȩ/ ##fqvf.5,lP ";!6U2p&YI gp3bi:h݂4NQ$}DŌUnÍJ*,!% )dX8-1x^A?;<&5SH}QHب7)֎y8G~>A/,RAi!e@S!O%g`@UFѿFuRlk6@"o' -^!U]O-q`b24!8K2s5mLJ-@1rJM[M 5 D)@yT nC)tς;|I$x)Ğmv&}KJSfQBN S8E/Dչ=%Zu/wQ,6BFAESÊ'@®^BhH)e^&V{˻U+K; jEs+X?IӂH?aZ; |cuelUpb iYQzJagVT,@]n(tv0h0@{}0B_%5qٽG·ci7]GO%YԿ2~^@5yu)f ^s $i e@ c{4>v^吤\;2 کwV(YE! -ӆϑmDX4H]97IEK ,O(p@&A*N&Y7Pҵdw z na`czz{0ݔB+\L \;+Ӡɹ':pI5 [V?2 `6 !C ԭZ%;0$3S 5Y+b1f9XE+}gEQ<%-2U5qlkܠɷuAZFp >"T7 dZ"U nldAGárd"`pRZS0 i#ʞ@yv|ܫ L0FW@E\E`iqסC2"?ș^z.OgU$ pj(%%3-FBx_ʹɵkcF~T+ƱH'ZHOczG{#o6,]p0¼Ga% :8_&l\PD,M'4̞Ws]lhcl҂(rfdeK.?y1' [ZI(w9ip9DC6nQhUYdWYgPY?HM.yxo.6>skF4A:#p~]1@ xrpo854*ߝJlPzgNV6T%R efLԅILpSn! (¶mLh4OsNz#Ѫg{\l'%f>_Lrn>=zJζ+9;M%쌶[w]j'@}''^\*|=eM+}zdICJ2 u4$%:v ]LPJTBsVީVÐ)HAAgA}9Y]2"{\%Ӵ ) wE<<'هA@ \қ]y҆,AưI+fByFU!ޖϑA{]"\8N&IA[CC7؁C@h@I pZTWEryMt]VQY[[~MCNrpI§aT "/ZDPFcX:%jv->_(0F;L MRP! ] HݔUq٠H֙M]:'IsdˆfLTh$FdjꅀTgp4Dsm. tòpVv<{fߐ n}Nc4I65#/݊7ƈ-6ܒQfn(r?⅁>Rm_ _*,k NekZ;hW@U ً``l=WsSGB3*FwrSHD /Ɍz|6?*&BF1> ZIR Olx!ey9 v<(2P6eShp$әxupY(Aj\(ba%d7q #ݒή6u ,nJX6=㥝u[t ooA{mKXj'vVwU9pY3 %*^O+9Zh1m}Χa-_U/1~nWg0Q^\ fwY:8 S^;@҂f)p}P3Ah[T;Eui!L nƈaީR9d S3ؼ*(ŠQ(lOdp)l7֝ު7;H%MZcNnj.R$:-/yZuZH[BwǎSkػ17~J,JDU'~} pWW - ةo1IvÐVP.63 *@ ~װOw_zޮ ;I[1$WLt>UE}6q TԽ6l&|hxߝ I7kA79Kʉ輝ŵ0HS++L0W{RZ},F7;&Ѫ.u}4pB=&e<ˋfD+ %ΧBgCN0G>mɔk:@O;{ف3#0<ݏ}7``oNjvCX;ЩrByZI=tmZ0g^vm\ʂH|& %n EA6DH:\M{5G(X龜S CyrDSIU߳}9->289E2r{&+UbGWT$ 4hD/vzg/p &[ iۦ^z)ZBڶS;3twH/Pc'4[!$+_x=qF$ N@ UC;m#T%Z2պwy-ɲc⇜Y w,Ť KTц3ao%f'KP9$fnc`q} OwdLL+9bDU j[5͡zi7R?K>omnnC{φ?tyjXx , K ޮOa:N3̡Ʊb;+y"ѥj]gA󌓓8Fj9+F TnQ[8׉ߵO'0HfgCNHfp^ Q˰E9ՆSANYʏL=+ t ̩kkS9مx7~D xlu>?fWCe h)("Z~}rG/WȕR/kZ'kwk&d</D?{4蛆R'W }jπK{;m }RnCtX3'!CП)׎^^KS]`u-p%eI;PQ槞neLq-6`8= <$'p.t#(~R$) {*!A+ t?6Y|-#\W?$țQ@@YzZ#V_4)*:HV8nI堿&/]! s5z)|/vvQו=?cؔtŊĄQzFPz4V<ģn] Sn\mlʼn(p > C*U9WܱnoI"G9Knt`8@?<ހ aЎ&U_1|t= AglU3(u.G;B%u, *<{/n_xkpۗ,OhðFwZ[ߊMƢpcyN26 Ee]PJֈʺU GT]"ק<|sx4 t4:с5pB>КSSc2g[;@F{3 `v:sS.UWɰ%gMfA]͚_ie_ǍVǛ@܆@W/w~X%L0+ 4nYvxd?K sKI9ov=^ZbnuA9 I Ls8TStX?Z: ToK$x9D_aWc(,J9j'7ߊ}rLMځ$A*E2F 0KPᥫ@%dj]㜸j(/Z,/<9äqpG 8)cE)Ya8O8l̗ `Wz InC='$L~ (B &5Vw\Jv`7;}+%Z"$݅!Po1_37Ⱕ3xdÏi *KްF$u9nx2p8tc}nԧITu[ѶP 4>`@t^0A<78- G=r@v&',8Dr^YaD^аY3Z]3+qޓ{r>*ѥL l=2(.ɑm1~%v9fuTo*&1INo- ck=| h$,:ҡRIxDDgdE2:Ⱥ6Cc)mo@wwxw,θS|Ze;2_Vl -Rt?1 &'@D5Ѡ덅\v?"tDt=hTCL]ꖟ thj> :C1iAoL^5'arEu-QQ.;o](Q{;*B8Jltz>9q,쒸р%%!aŒxD/ SLA_*CmZ^NHqY%}[GT.ը2;ɌN|:DÅ&0uFy,}E0c !rB!ȏ~cMK*} j&Z)#Af0#L pK+l`cT8AHNzPG޹έ/yZ 5F:@ZhQz3LQ4FŚ Hgt)*3dP ߁vWj"ã8&?WrmXշV~nwZjR^Gw"n{aqba őt@k\3E }O>@i2mdM/Eiz#&-B5tB2$' ] ,J8Ҭf*1#ph %g['!Wf% P] Җ@f;“fӭCNW#sѿR SI `~(XcVMYjaKd,ɵ l/h,MY& ?& h-W<9x+97]2à]ᾫBIFk?%Xs4OmG[=e6ök~#(i& eAc:x`|~j?MJ"98,#߸9 (Gao3Xx_i~ý}=nah|[ÄW٥_X/Q uxX !A9FSXݞZx0mj8bA q]gM>K`0cy:y 3&l`5mz_Ѻ}*O{Rg eTuTSYn u%!ڡ|4<֗LHyj ,ls$Ϭ{V4\ "ڜBK먯 t4Ȩdl|_E+PBJd_䜣Cr vc`T zD'>*:,y?dxZvc޸HHp] v zO%'O54~Ud>:exnnVxAz,=Dy,_qaoE2Mɿ;&PvD^秫_}uY< {`uЧxI[X[]Ac[Uu1 fBV|7_?ƧZkx4Dx4V<"cHxQxwm5֟kk$\.`룱ciTy=iYB:ZJMv 32IY2'g!f1hƝ)H'sۓk0(V/}  Ck;>…3-x pL-l g[K1[cԾ\ap%^X0*8m'DhfvK2dtСΓ+lgEa]㫠 [}#slsQA6g t,|J"X@_# iD0ݧL.[6^@]x\&8icEԹ #6ӂaFS~mg+m0匆4yِWM6ܬF?@-p#dAAGR_g-@vh׆VF`!,o^ոH T>|ڵlTm(ک%exȥ3ͧ[U &P[d(H+Ѯx}i9bHFʙo8#-Y?vb}:e"ɴ}m8..W .TSqe,mJ z2=\oW?pee~/j_KW%;LIH!V 8eĪ@ k5uчa_̊YFKi̅Sؖu2^"s}.p"s"/eWzݧڧt96P$9Ɯ+(Kga+\u*"պ478xB6lx&Ic®IS5+J'odg2ֿu CՖn^kPhѴtGJA5FZԴmxRMϾFKgUp%v)Vq:$΄x"@vHngbu=O*| ( ԝ_cF?K>,߻OétT7zIżȒN:Tn{P/4$K1Vo\VOEϏě Y0i\ R?&W|=Kǣ8[}KoaW!@TSZs6? ! Ɇ-aiڷ! kܰ-[ƮZ(|Xx 'jq5Xa@q;ttIL)q vڷVt>d.ckn>[=*ը+:Bijed탊hp['h apR0 ?VU+\' \BE] G*6?mogU d$<, \@)hP#Eb$(AwѷD2K= X <73lBBcj|Jb.cWknd3i:]4MTK􃁨կT\`w]4c͙d 6taO }lP8q)>jO/ט ϱo` Jtdq5C6$08ư@e|Vh¥Z Vz`7D6QNcV|U"T}bIwݠzV!sT){yf7 En.iZ|{&po24[~2]]qG Ӹ?Gyj<ѿ_P4kT#eqy ŝ^]&`C]I-B(y23[猍g7i0)՘-֣V. wbjtdtF投0{ T][@xt?'ݿ|pTwm|$%Ky1?+ЂL)>EfT\"A*@>(JQEJ6OgrU$`c\0![.K3? ;< #Up\{w忓qzíM_yWV>n^[k㏪/dň0+?6+VF [3"ҚR9Pp%VVMX=g6UW5}pxU픺!q䠀̍Uփ*ڮ+nB~SoR8_$9gϵ墖٫g{N%!P%э,b+oug7nn<~8ir嚥Z8e)""_~Ũf]کCiNfFs:'Fb;GPr[I2J7s>}oL]%npVq9ܺZUA ߊt3v)3wT1ep^O^Vl݊Wae}[`&zؗG2'`E͋kZR.QU) ]| 諉(sefdx(WIPĐuݴBwVXz |Tkxc(ƴх~iRk!e_ao~f +Q1=<7ϙY~'qN ]Lv1~(nw&'b> R't8//XOi^Ρ~2JNN 㧅=+Ӧ5ɐk=ѳI.qzT\-"޺^-+{DŽd.PBOFog|ۛ4)Xa빕ߥm4lxhD3o=V^ЀHS Xш-jjF9O8{)B+Jef)( JN8ϑ{M9J*,,D<E= QuD2+(p?:Ն\lKGP <hr<, l/4jcdq4r˗ۇnŊh+$6Қ ²m@ ۺ Yz\\x&+~"TxX;ȯYw}j\ f`/2s4Z9y'?ɾjne Y /w˒2dI!%<Bj񨋯M y4Ma>NvwaV5'x IoY ;3.򚏤c<]GYDkWY@յMFۘ2޿uXYm_:gh,K3 6<:i3 uj"ZB*Y>M[&xh-Y6<2 {Wp~Z rմh7_Y°kT1]72_!u7A*ALM kc Пy^ "/8{skjjT8FbP_1s[r0z>օ.`mַ)V@Hd>,=x'UMgPAo VpFVu.֭&eԺ6,']P{xPN.D.gU?xO$_P'SʰTҬQg \ti|mNWRWYYntq]t-.ϮkjV^u='&w[a힬vy`6 U%'7\LreB> ]t@f㺮U:ߗ=Kql*,֞c X\pN̜]rY*z@|]Ξm+)OqU7ɩf-֤Zg(tJu:M!  }dL e[`\qU|`^fm+ ٞ'a׻O=1y)uaƲ>s+ 4]o ;tjp Whq Y<-Z 'l|NƗ+?{\{om?w-|.E,sMФP&Iujǭ`֚M}/nUK冻c~uk::pqL秲{ztii'qi%ښAW'z8 `k/m >$?O[W݁{ qm;]s5/284~C=:如{VSW=MߧI,_TkݢU*<ޣ%]m7*q\uᅠݰeVn,ns]\6T!Wu p'1%ڥ;U9@|`sMʐ^U ,ԋT̿@VMB[1ɋ**))lW6zOXh)?c /o/\a`WF0rשZ#ŀ'Ț֧FpY oaW8ܼ:8}* q7Et b7-gHN6D)OlY!W# @`0bvIlt:T(FPg;{/Jk@O  neJi Ŵ Il:ް\Խ>fژ ^(N>&q9ONk;;ٺE|5;y tgrx^LK-L##30lCE,|qPa8 k`Ul5]@EIm&|VfTGb9.Jl̕]G3KdWӧAR҇+\dm\ 0FX7M9<]&fV{]87 =ML5kտ895oKaaeL0ZɾHeƽ:6/'Xr_#0NhdTqŲR˂卒#b8[ʸ6o(TM3T;T=s~͚ Z֏(EDB*+K<҂{m\Yڽ,#lA6g{/vXj|]0fy$6i|ز][AXD<<2PYtee*"ENl SV\uNO}$ZD?$xsTlq q>5}y#V"Z{4W SRS\T[eJOoujB6`w/Gp~/ҹ `JSKm=?Sz^2.jޮP8:+Rr %MO̒ ;`V9^ŧGQU,Խuۖn-EZx/)dz'OUW;9`fELN/YmTb?ӅӳQn}VwWLPԜ]fG@YYpy;Z\ai ܢޭ~n1ZwysM%R%P3ϊbFѲqxyϒ"lηmԕ,UR䯅G$" m?+GRז|n&N$q~}Y(TIʎx? HQ]m,`0-n+}>V#}n^U 'ӈ* WnK=5?bmL&4߄z>~#=xP(v"]y (>Y7Ԋ^vU{~ 0vy?\׼:= Db1O(DlVAL8@Y@(Sh;`I=}MyiDN?۩"hR"'y[!-3o'QԫjmS^PPXHy40aVm \y9Esmhbua]+Z>uEPC \6I5rmJwU#,Xeƍ X@ Z0><,, }^GE\U>O z^͊GZS,NBvT?Y)GMК|8(c>KzZ_eo+KGQ>~߳ٶon\33' f> %bƩ'__.>Ɲ ^NwU7w K//SYBZӰبd9HEWp$}8xҨaNE邋;$_.L [?PX#Ò2=۬Tm)Km^j¦*gα7liԗj XѥP4 >`֧8[|Y':|yB۱@b$m' =Gʩ oW* 61~bnN'0Wie267͝;o2!_}VwDa XѪ:d]>PuI@d)];[ʀQhIr1,!4Y*+ѬRG%vtڽYl J[vS0mE^ G4?g;V<@Wf?lJ,I˪Ynؖ&w76 lCFהv6l^#N"UzIШ;]< Q3Cb`0u^NxR滂^*0W/-HӲLl8 LC&&, |{4+O0gzVbE-Vc1#8܋R@x mB..'Jd-h(. :U!䁊ltq UGNj" ,D vHLEc?6nPͫv*T8f87mF0Ι灼'!s2S/uKEU|aAd nCEDe9q+8GS_v=d mmZ;OOO4i&(Jr-]UaWADy #mƳk't0[r;g2RσQg<60X->D7x =,Q؉?[APe MDP  3aȝ"xo7K}@~0h3yb.8 Al Q|! #$kbiuA UTsr.RaHG慜NWK^^&<݄%ɣ;,+ĺFr;OMLPul2!0FHYƮ <.Ty ܾ!恓QC@]Z'Yh:$3Pa͑rS 6u )tRz}u쟕P ;:4CXpv' ~oԾ"ڱ]t0\WçB#9! mȂ4SLFG+hO/2DAa6S%J#!+ f|{"%tUTIGlnhAr=-64aXjR4~WNzV6.VP 27ʕ=:0gA}q#j!枹`򊪥*6 G sҞ4$*ȈܬIC5xncn',\pe~o?^7PޟRH ڹY<_=Œ>mvߩ7R8̌xcTrR7{zZCE ۆP#e˙:g|!ʂOhnY}jhͰS@J˭oՅmqN;ŚGz]Y ݄APU\.{{K2~b +$1G㻌q¿$V~[`e/q}{Z(k~r{ i 90V7F>Zۨ'<-ŎpILQA;h6;!q KdkEs0rU]EF W )葧$q[Qdς<RsabmPL? Y4ߪ3I_%jU,<ݕ4eೖKQY0+vjw!OMC^̶ u.Z)ۗ=Aan3 o_s-/3PJbx#OBOgK1S7s+p14Hb>t&Y HQTa1YPe̲Q(sl”YMχ4WKv?\si40Bk6lq嵜M_K;xäl?Zs,J4flVr, )n3ZLKvRcZKstt?B1H∯$S"c,4"rs F!<7 _ۖܬb@-B/ ( >sqNKIhZri0 moivhyaTW%mn:r{#3 _bM+: a/?>{.w_Ewn\Wa?{Ry2?ʂ$ҜX%3ZM] 4zpcFT ?1#̨_’OAZu/LᾸ#44_)[ggAKԌ] ƻvͦeij~ol͖ص$+|悛 (UNk ñ96_Pvn:D-JY3@o ؏zAqYG/r=\,IT0τL EC"]22oe^K]C]ox?W1&QT^|$Ź]I܄KE0U.-py΅=%X 2ydl-dʏwre&ЪpbYAPd4gWPQ KnՍCGAE{,x#H R >ՏЮplͲuOzlFQ5-sχ3oUh\΀l0@3&2y R)=ѮK।N؁QF-@,܎rxl2b_^7ŽK =fU*8skS03Aq\#zGt}Ct#Wʥ5bSinמ ,U94^7r,tN._  -+O`tmz͐شo|܋xlMav(G9#0}@7BϿ&4 讥gďzs;%xW#/tr(LLcڅ߉:89@#4F_ưЅ$ Ңb Y]Y}y_{?@;.Zs#8фX~9ٍ$3{^U"RTك; $j<șRʂeIhx4f_Icaη% SQM(P(-"g,FsA*Z ߃B@9_Olװ>AN!ɢN{\l+`"gtk5=ô}: s/0/|lw},[K3f3,QΊ+}D),3_)}qpp)5Q_rkƎn|`;Z৏+Yu)yE&oi9<"xd;ivD*HIŐGq< ";IB4HLE ERoGKe]ɋռ+I|z~4 X »Q/T/~ri)IRJy!UN*rDԚ P%jWE҆.MٽaP `,d(ݷ<}G.RPtf; FpEwѵWr1{/][]I1hYw>Fr͝{ΝR?9HDŽmDiq)PjrCkHƄ28#g|=v'RM\WLdr?!.p2$-|KSd X FFIȩ@Q=7xq{JFpm޶}خ!T*s.#2 Õ NDboff ԉ v&{糎F|h 5o"$aQHY2(-Oz B"G,$׋#6 ?aE7@ 1#>.w87 :BDڞ.%^̺7Avw^x}֋J/MyCEe.X>v< H&Q9B;7?cd+%v(&2涢~/b0}joy=M dJ=-qu!BEPc)ٿi.C8r8؋IŌ cP/} Kၮ_TtK7fUbX :W?菖*ÃW;LJ;o #' g?QF/@1?w͒:}`z(JTd#燔BT+0!Zk!(;Sշa[ g(\ 8Y7ڪ02eItݙpiց3o`[|`J<fK [ORuN0d+z3RyA1&#ד5W3g;)d<.<j[lo׼ Qs&q ddt^r1.ִPk7So -g޶nn̔ʰ;J>/"KĘCv@JN"{g~BWǯ_wzvE٘{1 Z䌍#N"~^X r'9 :W5HKA1@gbNJdGY6< ` `,'p&HV.85}@0Q LYeK񋕭 _wdWi }i:{\@s6x!YiD/OTN,$.#ueV$<d3^VoЍ8>' O@;n~z)"0Fѕmt`Vh0oe9Jw@4+4 P&^LŎL{,`S/ {3OS>˻De ~(1wr+XZ1.鱸m(H'>Y?f3v sz&l @meWt` RijXĕXBj~JZNfFB~s]NYU}IhĮOsUnuƘ+Nr,yظ*G΅A#Ν26mVaAU@ؽV/}#j^-6#9aV7x 6V͐(r, O(Ư% A#k?a>VE 1 TOkn_ v?62W'X˘0M0\%{S]:L˔{ǯiA̮PQeLS79rhWTN^Qoۇ-=IH6[JDgSh[o>޲ܻ/QN!׌UXI,% f>qyI(-PO?_7 ?[QaZف7NdҎz^`W:Ui(,FzE<0 ט7#՛C V`7#I;2\t7OlYNtWwG\.p)Ri ,-:MCb /|X"_8Wm 7me2jc~yO#6x,z%^dN$T3)( Xj-:j؅|k0X?XT}'Z z !HI<dg~82dcg+>. w l_gz]4/vO{a^&q]-u(`[کl~(b)HK\O L+N0iʮbn OH sGT,e+ &PMHO (~ FAFV6ҖHbt,&Ul뜳M m *`q_@)f#Qv\x[ qP>dEglDHDۊOy#Og@Aj>*OпG <h!R5ם{}KE;qοfb}Jq(]:?=8><; e$aEN8xj[@w+YB_޼}|: ө<RDZ|Vr`pbV/)|*Dp/W@a,z[|^bJ((`ahlF1RK;65V%Se-o;cN²vLD}AK/ *&?cw)OKIP=?&!u4v]A7Qy ИTc,cu~VH-L1.u9\:"ÞSjQu:pt7:p rFOr/=H%69(FVa{stBcsF*Ìm ;=TTAQ9@ْg(L1hðRE<]Q I:g '&/HПjT=:Jiϓ\,kfFպ~SjaĹ`{g# !4aZBvWb J 㼠a "ռM~gW1v?Fۺwk)O9vzQ؏z1Hʿ[l>1:<=~C> 2/\͜#G!096g'{2ߠځSD:-8;pJrZ$Pf-B%6GmI9 >ڦZ[h9+gp?ci40cO|k^$E_'V[߳D߶+urHH?[` :; r600M#r0h$/M%UIаoO0Q!%U-9Ƹ\q0DBƿ5·V:aVK\kK$/ ǥΧ <2U*l0dK`muww ftׁ쁏0ޚgM5m~5c< qDH.8Wbu-zrxi\$BS.~j=`ȂƢ,A1" Ea_ îD^bayO^@g!}KOV [P`g^{k6rh{96f#=tiP`5`p6]@ӞXP cʛd1MU@gMz6,=˃WDku'X/% @FSH@u^k~vM#ցm߷=+['fyx K3ْ0"rx' "gӮ60xdV5:4?VCI헌)2s 7#/M~ް )%CujP-bי~ӌ[` kc;0 q`ҫD5]gh b%2TՂh6u3|]犕N{yt3 *Bje=~iϫ."`YUkѱTWY >Nd-_+J׷`Ϲ1a/zk`+QP0Idr„+⋆Yʁ[QP\a Rs_$"EFdҢAP Y5|7#}Ux/Y烬K\_ci;[vre(Tk$\-x/@qKضe(s|p{ 0. ANpƾk P$|aƭ-2YY-3qrUL ł?K ӢeCC([r :´-3zoFCA02#<#?(1? *tV3(sUK#@LiA  *ΞAcNAԇS8^*@4 SͺdJFj1pO([V瞂yPpx&֋+k.Ўh}ï<؏3'aJŅ90 md/.8Cv+]D7,|Rt^`JY6FZtXV/;{fڮ,YFa(Mv0 ,m`*۟S U o"A>rTWp=|O{&sx-+qT(A\}_vc):M,JoHa*{w8´X>rlM2 5HqO Yܹ#zJK`>v <`]ʈVw61iٸ܈´I@tP$!۽ n=ͅH ̲̏WG_Ej7Fr ,E{]ڬI]zAZ_<>~vxRZ\Yu2x%K=' 4Fl/1UA:~+_8b)&/#4%_RM(8C|ܘ'&6rh@9`N2' U|8aQhCO*yQ' M'KgVoҽ񺖝&A?o/K4oJFgATiF+  c%gݍ⎔J17c/JKOͲeJ@nJ-m)&ĺ<;.!` %ٛlKx ۛ"[i*3ZBm[?e`Y wh-FPttmȺ mU4qǾ7[Ub3jO"oݦqUn_TZftLEBS:+~Aj=kT7F-' 4T meդxT'Nl5IPߛ( y2-F#eE` Œ)\p՝flO")ҘVCbHBȑDt4 $L!ARD2 $,B%sB<QSyf}ݓc)k&RVfK#Lybulձ]L*)TQ{vܨI\c|Z2ȁ7,j|u沒evj_<<6E )G }sGJhMT>O6nezc*< Dбu5rMѨt!9a.RoJ=Y U).J!"7O" (D#@_љAAf$d`ڝ&e^+*l_}؊†VqًʕiDt ׫ld —rPװfax㓈  Du:8QL`8#(c$ >+S$fBy rMzA$7fmvmq$cF2vA W+O9::&a "+tG}IEܵͻ_7d%U̻ i,DOb0ǒp 4jk!dWM*t706_%KmsUQ/Q.I;c|` {g.r2N!7i9?< bȠ# ~bNlj֥ug=iɍ-p5E\bO3lW -/pT!V>K>|k"EbB[ZI%#k5-2nxM31ʙ1υ А/agM8\x0 C:olh<c}V/8s=>xqs9,ui@ HW t &Cb0j_h~=W\ yjZn`)+WHW0?0R ˮ=#s8pP. L-$R-ތbv+ 6l5(-!!h.QskוM]yH 586kkL >\ΆBŅo~QPmi17nyc(=iǩs2N"@@d 0/^ &c×jx~-QH:bmVeDdPUH=9p6YN I_ c%*Grr]@Ј<9S|^ex&s )bvnje啙lM, \d)dVM "TO܂T? zIbQߔ,(1BйF"xD#X,FauMdr,G&)= Q#: %B$8ͻ{ҽ$^IUI^2^NOH i-@]n 0`#l"Qv;އx+8o_>~l/X7ϦѮy#E[U7A7368d}kw[)- 'oFhHOih%pҐ#vbXhQB əKmġ6u݁$-xD>.3n2M{ S$X`HRZ ։C.}2Hf L#/.Mk0_͘D2P&bg 2C.3eEQ8rg"j{{= CxĭG.a #L80 `}Yb2: s͘=}u&vdn!_u_-a=SںRa0k| ) iұvN!|QS'暋aB6'u 3uz}sa!o%t'vx܍1lr\S4G87s97M-&z獬>+2(9~)[[MiI$sA 4µ`zMD(#>2* ȓH&i%@HM'w88̚dn/z/&=hDZYVⓀj[k喵tJ@4ZAFH"I0`j=NaZQƱVVU^PnA9dZ(HU&{4@IV*N0ODQմKuiJCjJ,*;\`bȸ4Sz8^H X<;'PaEn|;a_" KM@)tICvI9Sdi ݩK-OV?Yf/a^Yz+TfX~L yϜPח}\36.>7['&M H;_߼}xƘ?EM/bp"&nYKnml5eQp&T^B[2[~@)581v6U#IR[*_UlSڒ +' M&V 26ӡ1mM4d؀E5@z [Qpx{%rt<Cs%ʾPE p5)5>b$9`1%7O&~(. (u1Bf € X6 1(H l6|Gp7 i"|/u v5ʜO4԰^>7,<Թ9fVcA{3jH imwb%(RfN.݋/A&( ĜggQlNR axT0^קݗp4TEw qAp'tG7Sk adΑZŊ&\>%ai?d Dy# lj:At@03?m۾gڼr7jBЀX>ce$ƖWhG@&r"RA4>@s61N3p/$b_zm'kmmv6e<: ehTYB%_Lҋi}%'Si<茚wgNAP_qH.e+ (CK#,M R}Gpճqu|nj->{(UBNkAZܺaL4!{QlPx1cY.a`qO"3Ŀ3DJ〲L\j/nx]' *z &s r,@r~M dn;@ZZR T0[}[XJJbw\F{fεbi/Y~}SUK3Wd 9%J*XXZZ#q|?9@֊#哫^ :_RAg_1Į8| (ln_7.F^QiGBr0J y Q0RB ۨNٚNz8Iw_j+ Fɨ!4dPY¨oE) Ж~w`;#gz tR`mz>ZS|➸7z[O%CaX?WxM<ȐfVb-j/?0 9eGR759W{考n>#"*%8{#.*V:RCGo S 'R`ܜ${~ |sFQ);xZ]2 ;Os+h_j(1O`>eAKz?N8Vq\(>嬓N`!G]8mO2G+>aҙ̛dpKv@s=7l5ywHgZ3qDZ+Q̎tFot_p(`Ev< (<ΒHZ{Z!R(w&ɂSbHVRzL$uΘ3Q BA+`+,ꍚP.$FM ^ol*фV3;o 6Z`勘3-JEٽyd wsCAɳZ}YWVn [OS7 D.-93&0fl.1N<=ۆ&aڏۣTBn9Em}fV&4\nEڧ PWǝx_a{sg7 }u!?Ր_dA='a%ap<0j)Ӯ; )-\R0S]&LVr:v0N}M:vJ 8ϵ3da٨W vf͚s~B`Zj}Z}~DtIk@[Mɿ/s "f]g]qR AZu:Į |٠`^W{XDgd}vl&!:7%{Кgo|`aQ}?0ce6\} Y؊0À#AitF/G)㹜p@%'0`L; "d~5y l^qr~v&É[(&5L cqk yD$/ @kOpWYycMDW3}%VF`Ba΂x!G"թ{̑~R X _9 OyJ@dTh>)Q{?&uE`4^]5;gh_qk4f /|j ӎ񋟲Pv+:l]o~f??Y x܁Ω[0!2DQ.b>0uYLg;b& s_:ŏN3t10ƁN n8{eb?w``d8VYPWQ<>r ܨt!sbc,8h9uկ"̇XCj_-A`0A=V&ْ'{&!#XG2Şw?Ib$xg$K=94 1Sz{ @{jYBB4k5y 0oj88')n5fBk2ĨkZCz^(5bF^=C:Pw^_)]x! 0oz0ḭLYm?pXA?3kg T9k?DSyωNkLƕv&Ɔl"p^QyVeR41-2Z"n:W(aSgqgGu\i5) 0bcFF]/`A֤t'nlqsLJJ,=igpJ' >1.A{* #-0ZQ%e֥. .`0t"npP&%wN%~chbw:vR2S6s8HAm;xT[4$\S*2ƃ I#rc eQY3e򽁐3RYDx:H>>K8;Is0\n)_Du{]r\iFVEZ@ z)UU|H+OuyZ_UrTK  ),N'A"[inm!m`d'}8F)`_GΧ[q<WPv?c~w ˗\,Y"-Ҩ&,<2&0w7؏Ss3Dh~#{ wO5Ы5o׫Y;`axb["5,Ѱz~_y[?^BW j29/*[+ !U&R)4 N. 7 Q@!rHz}~^+hˌst#ranjՇtNQ#uU%8hٙ A!iV/>,P0}ɀx X=SATV\C4MO4V6!(bt{|Ip>?~*!*,05-^ITzdv^9N2+Ú)K]M(~~um>ꢘeI'7<^4y$I1 awcͺ<ZKb*nb QY7NGR pe9_ sB6(bOʦ$:/nX.Yu6M @mtlҙ{>^Y4^Ŷ{*ŗvc!aF{l>AGG ˃J΄i pҜCGG`ӾD׾Q}2No,e(TB!aHpI-˫0<"PM!ϗ85 gD-0eZ1'R.bF::Tj֕ 8^s̾\$ H3lI[(Ϭ֛4m ƛPX Oi;j9Cؙ1q'!ϻ2brӉSPIG}lּ7e۷zɫ\1pbzvF.5*Lz$oV!Z˨4uzC~$ؒ$Da)O2m"k}xSjߴi90ɝDouiZHI̻lke~q1X5KMSjkU-+0j`0X`!t(xm`4Gr}o : xoܭ:< HeA+XYK$9pKƕMUkV [ҕqV) x'l9^}!! BF*u(f0<&U[dƖkx2"NIYl6;X3fHb#*}YّiPw\Ո'EΥB߹}֞õ>l pMQH>%1`:k!X,i&g!C!p}-FhBfd?i{NOhk#@c[Etȝq'|٬~[/zKeϓ.ϴ&M:{PNd,( sσACD-y )#}4?R?p6t><( 7? lؑuOP;_ 3$TU+eF&yx,5L^a4bvh}@~iw]PdJ[H`, <#EEw7#-9ɧeIKF+~$"„ w@%&Q4> fChY[o>Q&kcwXsh'rUo}};rh2 xZ ɟ"X }ލOSQ%ٲPcb"i;khrQ~֋(;f)n:~M)7|OmvPnn°5Qn k^0 F ,[ P0<=`1ó2 !}2~ih #I#f-\Ƕ",_$Y{E(}"uNʷ0&ކAjwǃύeDjn 7=.Tz&-bnBh1;6bӨ)ijjoVSC+z>ŜaL`x#c[eZ!ml2: 5cwu`wn!(_ [_jǸEѥ۸eweɷlmך*K Ə}{8=!]ZaQ]johPߧF\jAZFplAhѢwxֹ2jkpJ"zϙHm] EZ% I,&Rl5A#`8lfU|=UW*ۼI؅{<G'ؽ ["FF/{.O h|5ޙ ;],WnCo^J2459XHg3>ךv1!ⷨWp=֩mPQ"9 yC&1Tg+C!Q C3l<+3yC'q4$w\+[)|amnc"=ێ`&Dp ,Fٲ!b  1yqcEphZє:#p1FՄM@ŽZ0Y0Cя6E+W hYq[`,$p"ԎUaQrdYb0bx"1T0 $ O!%OHM3J1rĆ53ܐx[UWAa1ᡨ&yweN:-sdDݼQuc|RЙpgK ;ce_ezq逄Uu }kEٞ$-QF7`4!,LTRXTa g{Ж1qO }Xto?^FڡU \r݅/xpQ6@bXMfWz_oV[֝w)ϵ+9j vo0L)"O$O,~)wrjDZq*~%:D1z*M`sh 5'ݕBJq?*<{!$Sx?ne|>k9܋ٙЃF@эw~doFA x+ʚG8 i] 7b dc-Ly`neVtC5k{Q..qDi*\Rs^SBaʦ' j9fUuT3Q>W X2tZmql 6S*U:$ЍjiǸ˯qNS?0ԕ}k7FgeeƘztͪ|/r˂~'6fpaz¤! ("e|O_ ְ*8M,^S4s&fdU ! Ww!3a@P%OB;cV3zα{9L ]!(NR X4}!b{fl`I=}Q8j:B? 55/ᆹlA 6t6xU(Tk-LbX, 0y.19|/xmXCx-^0 m;< w3צI<U$``9S]X)r*fT ._AO_W46wںDTLcm)lI Fzcۛ8<|>#|IǕcf%p/; z=Ꜿ ~Cr@轎FزsiZGTq!ꂿ xML w"4"<,o6dNm`R70 +|e0rՊ񬚶P:?! 9TQGe|/j>PP֛{ IoY%pdUlyɎ>8p M={L-oI׶~ypf%aiU=㓟W(&ᓬ)hti1Cr[OfU]X~[eEܕAapw+em)6,pwdimCbUjZMܰe8oj:Rm+ [83qޱ ߻9 )lt9' -O6Ng}KٕgH\5 )-3L}, }~z]KQFFt.9JA[zp/#Of/iMu$DZ ܵ)ɱA8:OFkQm]>>i _ptNCo|,. 3%CɄd^02<76tRՐ],NHU݄*S,1Nwk l]z Z୏ٕR:+M—PSǘ} 4= U!=i!=lW4𝻗S8L,_&#&X0Qv tWdBRv2ϓ7/e |Nq]$wߍV8. &s3IcL8͚I 'M-c(M sM\c\/?e-3fkr?eaJX;6XAC'>szfӎLlT5~լB^Y뾲]BMY(g1a8R)n6l"b[{NVEVǯ=nɛyS6 NF~)>*잃k \ 1& 8 $RCHz.O{?C4 12n+Ddti5@ T柺 9;? b>¸Qlr:$Y\HH$wV-@rNǫ] KL7G.Ҝɬ*' hJ qeakxzrU0v܀t8;Xy%AG w)B+mq:1s_%W;m̘Rнp $.[ \DjHgd.[ AV1H|rC޻ksO"" ϥHCrM%hFqpsө&LK"rFxLnYP.سUQ97.'-@ `AAd@g:s~l}.kiJd1s҆5`!"n!N'3.RmJ xB΃tK`t.lb=:T=eϧ3X"\; }Isw4 ш>zu|\߽ bs/Rm{ 8xpnk6;֗x) 񺾒&`L80scLɨ>%Ù6V!ODNwABZR\0pޱҼW JL/%B7%pü~d# WGǻ/^GGf430uT-|4:] $Im%+Moq:1"+PB7$u'>"UfctUi+ޫ?z8{ylإwvaztzuk7HVB(rdA9Qēid@Yv6 ?V(; ݑ?z]D#"CHB,Yl(tGG~6)1S{-V@2 X˅;w24Ekí1i?hu H؁>q)? }{;O~K e5hƢOsO8JVV@prS;@VuD$4ie456~U\M+?~Ƌϑ/I]>339~P;=0kr2N2zlዟiri\$z/l Zj-3+fe^ՓY(Ȁ5F0Eg˙#ͺa]r7JY$Mֹ y dq_N# ǩCUK#y5 < *|xCwkoI;}3 H>MOBO4op~*gԚT|V,68$k65Vwat3y.;_>R+ޟAe'3+#}.秀1 40+Y"ƘL,x\. ̒IxXq!.Pp-gTDsZMZ$ط#97tBZ[5*.+S=BR8VM8#$)]RO<7B+fZ7K쵏̖"NP+"v;c1Z|6Z4 ͦBhUEtV[+Rev~eH1~g^N 6nJ>K ²d r u6 9 #)|gvk ؚ@ZyO&O\CՎHkpB&$b2jG{ZpDs@8(V !3Ph]惫\[U _Z},*QR*C K@ wYPB^Ro *ItuUR3OpDQBaVe0^nEX_)"`UT՛@ *N>!7VEXFzW1 Jp~[%)5tAUuCWVC]5AVUDl$&rdoShup>]l8J.Vs@U#KVŦ~yeXmB5"r~ XE-CVGVRJkTLkUêߏzU}BZ{]OCXyVU-Cj>jwVXBن⩛}׺u5e<}~tgw~%a(jS!@-BOBg>  P6/# 8cϑ Rw޼~F_ M7}&==>8Y` TfJG:`Pɳ#HK6˺Q(V7H`A2|pHOAYݦPB baa#0jX{9){ cpL8漏r! j;~4aP%PHN@HcA' `ZR\nl,L%9x%ą͒8"ڬ--/[^0 i655 ENI!TinT?-VE${zhϻ޼~[(g?OܞU͖N[Y}-YlT1(M~'.Q% _$)ϼiflkE}8b30NNwN&j nǖ!lr[配2&@ҶbP2ZYz MV B"h8x e5kHw89ɥ-Jx.0qD!!kSuB)S o0aXt_DT+qtK̇2y^T^z^?SkK3 T̼A+%1‘vNo(+sve #֑7F'`T1AOK/}ٻ ~Jm*; /}l_#k̎mHc?"`Nhi|(fs6aqxVW}Cx%~JluJaS:6A׃K*p;0 oˢO(Gҁ} Xul(SXW! hۭX9܃3 Иa`[Ǔ:,l1:!\$ H-TJN*09Vd{uiosn)>)+sTĆK2}ZnIX1ZNuzuP 9 |͵y&iT8=hu`#P^8Y|'T3qO,Ʃ 1 2_ܜ_4ddFnu 9QB ItC?QuZHitq(k&oPNeFߺUC,tUP][8n   '%5N/A3Lh^|Uǣ{I=R>yxcaƞfwG4ZWeSct'VQB ip&$b[`B̦b MQDA͕u H7#G@Hv9l6irEJչ7ʈ%pAM<\zYhG0EYG3MӲ`?76> HYÔIrفP̭3kQJPO ӝxV=TD^[;z {s_9Ɂ"S)')IxkDhkn5Y\7+I%77NY^x,4El7m:$ VGU`VN}yMxA@ƔIEx:(*DI9O"iX UGHf"bՋ'3#Bd;^4 ߰eQ l; މ@ \5j=l~J*~oRM0tYfg俎#c@6~ "FwF3e`a*uqP.]!qȽB,`$B-я%kzGÌN}̭-+Kd?rz"BM(F),A[Ejf`Ҵy.)\Qݍf8CWu5qnj]6ipr _[l &; _0v?3A *jԷܲngnקma$o[yĻ!RD!Z9HhVw{8$Xo`(& L 7/^ nP^oۭj7jєN 1NVusv\gBh쎽9, U5wW@cCObmUM-t[[W~rc9(*!&wTclۛ-Sf6Qϫ̤Hǽq DOuAhp\jGjX0&E (pv`H.z3wAhGG\5Sq" _܍̣FI@<0R*+sul5\gt7͂؋˽O:U$e^C`P~N;ȸhaՅYyt{]3SǏtJ \ 'v/w27i$5E,,,`'sn&`{JtueGDòN,mA+q蠼!fpVٔU$|x\o=w=ؗd/ΚKy`Btpa`nq4nhhěAɌB8%9 Ɫ-Ms~1ρ~H jܜJ≓2Z/Sh9x!l$Խ`uP_JOGX[d2cXPIُO #U%%yHTXţjӄD̲?%Q/K2;=]~(m[m" \BSm fBrGmtVxfb [m4?*,^`liyE͵,(ёF",|#y_95t}^$6]E\A曢8]^]])#1w /d8ZgwG@4 \h,>4 )dYw?Mʷ1AwbtPa qd8}5-9FՑ =]_1'q+hO{JR@^fx`sL`Vcb4;eڏS><׎e/Վ79}΂Mw0\S(D4YW(cv15T޴T䵱^e~r۵-xC&nG9o:y9CGBYo=9[)O:q< a Օ甭]~{G`R#S/mmPZ5 MC]^a4Y{(¦E=D]sGYibF+ب SMtB >d4TEX|ݵey1 ln D[Ynhcx`qGFY4 ~>h:A(>qzAC u2yYYj<8̼&o?ol3"|hc{DG˼yё sXWu5HQSτ|ccTRzܔ E!iCbL8ŃW-!N7ra/ǂwݹ%S?}{\ʖ~[T鏫@H`Jt.GB|ƃd\}NI(ISp#4q=z X'1W܋5 ~7=7B-2R(ͰZDN lo5KxӦ1=e$iMP[o+ɧNk0geK['',)&AĈ77JwɧNTًr: C.x/=u2)! 5c4N+$,t*'%%ǐchI ,Ѿh=ph8v^\~u0%{/VIذ9l%SRmd@fn.H|QGAe(h}d$TͬnfzYR)h)$LٲZX-2G$u1cULp9ul.X*c <6MW Fe6Y(NedE;g%Viɪva^ Uk\m,Wғ_[^50ci 1p9\](I  -@ږ&VQHWCu|;Qh[ څ1B\@d5|uKP봨]>)^y&u.3Y7־"/QKM=G SOKcAz.d P7UR:n|JFdJqH/PP34,)4W-Y6׃v``S5[WdۑS?y[ޘ06a"9cZ>øLD`0$ B<e^*uJ{W`!b龿VR3js$ʻ%+~ &v(kr2VMDX'*M R黍jnM!` >DUSzpXI-qژeek%!k*q .MN G8tCEc̺劢 KeY*"tr1[НAFMP:9A WXSkvds&^+$#uZmxd5eŅm)H @=_JT"A;?,s%  5$Qz' vd'ɭ"ycG>BV)f9tA7;X 8"vS[ n}E`طt:|5idzճ}ٞAL}ᜣ A;ڇN3y1.p Oj:PE|4ZDVSܸC!ǓJRRFդ~?=M]S*h@n|ąZ=L~#g`ݟ| W짃?'tW$ D"E9}6F$C,;w[dt7)VRrs>R;kV"n)I\4jmxc Co=!`xfsb(aD)Uf\_A ŝ mr]%7 5<9ALXrTB7qevs;}/7yj-)76mg}:b^%IVc[H֛GӶ-a$/›Uֆ$<: ϵǣT"+`,wB5Tfu[H>^[#ǾnyyNU2n޳OPvzK91{ Z`ñ7ws3XgNE"d8RMWd }r66,F%bk0G=bHKy[t~f;>@[.RׁGPߙ"g*Zߤ`s`պ L}b=`<-rAv7D6޻AM~葟1zݘͱKEvj&Ɔ781?ӊ?2v@)=b `\`d2GbαIFc> A:y=E|Z2T'$+i)Ӥغo'YDjuݘ4fbdy}5i&-638Qʬ zokmj觭 mֺ}`5ZREp//4ۺa6U/Td7 .@U*CZ_`FV.V8Xq|FJ `Ky 8*?@LNĎ/@|&̗h4WP{|T'q0U@N0w2.ruF+?`ԡRKa^ZEhI%YDkqzw9+gQkuRvо?ޙgݏ^ PW5!;vUߍt55oطX%x42+eɅ} >aLv|ywlk->gy>W9{6gߜM]{~`MКXc3~_vG|S1JJ\c{ @)2\J3.FQ${KvR5mjoˏVDxnқkLL&|=0L!_-Z\gsH`,ikUD=\*lNhnd1Ƃ]-7O';KUu7e)=*2XOp[f>=zݧEQXfm-ѧ/lk W[-|>'mL,uA΃/CG[ A^Emya%JtAnUoY5_N{(m,m;Q}͒wA2wMsSӄS-$T,K^9A&?ܘ쭩ũ 4 X3""Ġ< d[,F"S1*=HQ>d)K&)D40x`JDuZ_ 4H7AA1M3"3D`.Z{=01l5t }uu{'6k W$Ʀ7/ (=̺Ў<wq+dumk]VoAHU}-fd$93#J>w`όZt`y6O78sF)0\`Ia \Ӣ LNv $m.^p1,nc7sΝ9J( RtI(,ens*'B&3/T{Ϩi)*b=ͬs@VS;VIѐe6%,iiM5W@2%~M 4<}b/Σ#wSqlox&RIxHdA6/wiPWu~HKnuk[Ti =bYi%Π>D,\uUˬÝSLt CŨ F4oC0bǻWhIGh+,-PzB楓qUe't#DevQW6s<|u?!"`DR.>Bi";~1I`4Qw뾣fao)}? ${P{ +~w(bsa *C7ʅ"3޴lsA¤2-yA8l/>B!g hC" F(0H$h;'E'A痗DH'kÞ!Jpk ]aY&=}k֩ 8D: o4p TŬP?<51(uYGm総3`CdgS{ˁ5xP _j@ASn>@ΚA *ۉa4p^!^kp5{٬c? A5!uu&N({:xlW1}//In_ .{0(6mc" r-)[SDax?6㝈ܜ-  u.9A$|ɋujK%YlzOeLғx-IJ7i!\;=NkԔ!̚8=X`0K~`/AztMQ:_W 1} æ2͌rZu:@ Kw p{ BN:~eƿu ֎Xoz'Bwpx7KcW6opH2l kU˘4טi]_;ս;79n.bz3j,xozͲ,_L|jJ-.pOgR5.NgdFG{>e@ Lc5*U=̦r`b^#DCR5 @nIJ[sQMmbk62u:=e(Lhѱ٩r5e]G=5wޡ zm8 vȹqn#x!Ka@Z]Pt!?Q@d{n #lVtnx}a9PgwdJ+1Ohe'՗gKB sVwfA@m~@xHU_'섋îHmy@eCC1 S΀_H3iӛ(G$"iZ9i2se jeq(/a0vN.YتBU4x"e"o5q%qtE;S&-ĢSٴ5tj%pϛ"t78p+* 6-!u?4T;n\5Z? I D|sAHӶ\pt@X^C& m:f|n!٥L(#x ?:sM$)NaIZ/›H73"Qw+fj~c B@"R e59"1_eĀ@$DNK(C!5 3ƣ]vgja հed/Ʉ]zϞZaPE_dK'8}޷cսZͼ5c<%76mdb^gZ(h1 $4w> /X ݟpkQ}hpԵvNlr`P ˜RE x8,& }d$[/ kGTU^n nLRiW$R3> ǬhDNş([8ڧׂ MT MX; +nfy~ &.C(5_(~a!)ah.w3'{IWy4%O ֎HL5SwИ\Y{J?@ZOl Kɕ^&;b{ei h@7вa4T\f8lb(UC0 &G8@b4]'Ikz,C- z4kƫ!lOվqq#pePt79;a -PMb͒nT ь0M.55y!;ߚai]BmMGWup@VB*`q']Fr=f EJF 䶙TՇFY!qJAɠ o*'oP H4x[~J>?8?y39Hab:fչRgqKSNx X+rcO ȫ%@nCSx6W4 %(7<*^ϸ7'EB(B#1Oex9HU}{DhfdYrU%T:~CPq PА) M5xPlcc~M tTĨҔ(5Lm@O\$@')b8pp"P$9.` H,BJ[1J;CJkTH&}Qa9@20#B_%A': h$7`ֶ#/7ptCd-mH@}/kmMuxàKjHYs06$VQ P(Ery [%Hֈs*BWU@*t sD3" A>E." +0$4l"{ `؊b@\;5u 0Ab(a*]0i27S[6OC4!^|O bQ4Ê zF rh5BtC29nܲtT&=$'D7 a6ʁR78v5u((9VwY&x}{F5nefγ賗u #l"</uNQ G|o>_i(6A;Є` _g &!x۬7;gD-C28 )oq |́J[ ɔǺrvX-rf9=Z4@2%".sZ (AXXp <8@ ql60;!QcC4z_B$!Jz  WhAT)1zDRҞ ȣ삤CH<`TkDTBϋDHm\v32E-ro{v!+ *3 φDz(0 a^J f8pYH}@#|inq\œ8`.P%hm:qP׭ a iBHV]ϲ d8,^BM\B:FAP!Yet-Z!Ol%%F6|N4BEa ~%4!{nush~!V3ct),h,CNqv,D–JE"#n0"p~1ۄ"@[QN7j[|x`T_5h1}`o?0h歂 4 ܜ.A:p 8O_y܀i@5 <180T"At b&7KmB|{W?.C&\9@u/WtBP49 1V_>$Ñ=@Oh%h4/A$NhA͋0𓊣 xLDHl|Dy͠!80Jԁ#HZq@Pnn0c@ ce9eQSbNh $ " ط% -0700@9C }kYEŽ& ,%Ѐhj@mvT6?n܁2;;h4t ~Ȼۭw }ZA>@|F 0`Hu̅9Qn` `!k_6@5@ڡ{&vi\ nSX$3quȁw\w\|z_I=ZD.*Xysy _ metadata.gz0000644000000000000000000000326100000000000013403 0ustar00wheelwheel000000000000008(NYmo6 _ kQAV놤0lygdɕ$%wX6`)(lFZl| y3j$4K h8[ ,&WXh 4 lsĎ;#+sGV%vtш6Si٥L.||I.N=~S2 o5)%?QYR>\5)8W.#&,G_QRj5[],rd|66`k,PLq(Truhb%OÚ嬢]%tԫ|3^GWWygK[88;pO#t=x9FaNjSI`hR+CLrn Ahg2qV*2.<#2rĨNgPU>%=̝K!ꌩ -H7-S#kTd=IGTo[^{ͼʅ+?^z `?= @aruba_report_start) end # exclude children = children.reject do |child| child =~ /Gemfile/ || child =~ /\.log$/ end children end end end end cucumber-rails-1.4.3/features/support/legacy_web_steps_support.rb0000644000004100000410000001745612657205273025504 0ustar www-datawww-datamodule WebSteps def create_web_steps write_file('features/step_definitions/web_steps.rb', <<-EOF) # web_steps.rb used to be in Cucumber-Rails, but was removed in 1.1.0. We're still using them in the tests because # the tests were written while we still thought web_steps.rb was a good idea. We don't think so anymore: # # http://groups.google.com/group/cukes/browse_thread/thread/26f80b93c94f2952 # https://github.com/cucumber/cucumber-rails/issues/174 # http://benmabey.com/2008/05/19/imperative-vs-declarative-scenarios-in-user-stories.html # http://dannorth.net/2011/01/31/whose-domain-is-it-anyway/ # http://elabs.se/blog/15-you-re-cuking-it-wrong # # I'm sure someone will find this and paste it into their own projects. Go ahead. It's a bad idea. # You have been warned. # # Aslak require 'uri' require 'cgi' require File.expand_path(File.join(File.dirname(__FILE__), "..", "support", "paths")) module WithinHelpers def with_scope(locator) locator ? within(*selector_for(locator)) { yield } : yield end end World(WithinHelpers) # Single-line step scoper When /^(.*) within (.*[^:])$/ do |step, parent| with_scope(parent) { When step } end # Multi-line step scoper When /^(.*) within (.*[^:]):$/ do |step, parent, table_or_string| with_scope(parent) { When "\#{step}:", table_or_string } end Given /^(?:|I )am on (.+)$/ do |page_name| visit path_to(page_name) end When /^(?:|I )go to (.+)$/ do |page_name| visit path_to(page_name) end When /^(?:|I )press "([^"]*)"$/ do |button| click_button(button) end When /^(?:|I )follow "([^"]*)"$/ do |link| click_link(link) end When /^(?:|I )fill in "([^"]*)" with "([^"]*)"$/ do |field, value| fill_in(field, :with => value) end When /^(?:|I )fill in "([^"]*)" for "([^"]*)"$/ do |value, field| fill_in(field, :with => value) end # Use this to fill in an entire form with data from a table. Example: # # When I fill in the following: # | Account Number | 5002 | # | Expiry date | 2009-11-01 | # | Note | Nice guy | # | Wants Email? | | # # TODO: Add support for checkbox, select or option # based on naming conventions. # When /^(?:|I )fill in the following:$/ do |fields| fields.rows_hash.each do |name, value| When %{I fill in "\#{name}" with "\#{value}"} end end When /^(?:|I )select "([^"]*)" from "([^"]*)"$/ do |value, field| select(value, :from => field) end When /^(?:|I )check "([^"]*)"$/ do |field| check(field) end When /^(?:|I )uncheck "([^"]*)"$/ do |field| uncheck(field) end When /^(?:|I )choose "([^"]*)"$/ do |field| choose(field) end When /^(?:|I )attach the file "([^"]*)" to "([^"]*)"$/ do |path, field| attach_file(field, File.expand_path(path)) end Then /^(?:|I )should see "([^"]*)"$/ do |text| if page.respond_to? :should page.should have_content(text) else assert page.has_content?(text) end end Then /^(?:|I )should see \\/([^\\/]*)\\/$/ do |regexp| regexp = Regexp.new(regexp) if page.respond_to? :should page.should have_xpath('//*', :text => regexp) else assert page.has_xpath?('//*', :text => regexp) end end Then /^(?:|I )should not see "([^"]*)"$/ do |text| if page.respond_to? :should page.should have_no_content(text) else assert page.has_no_content?(text) end end Then /^(?:|I )should not see \\/([^\\/]*)\\/$/ do |regexp| regexp = Regexp.new(regexp) if page.respond_to? :should page.should have_no_xpath('//*', :text => regexp) else assert page.has_no_xpath?('//*', :text => regexp) end end Then /^the "([^"]*)" field(?: within (.*))? should contain "([^"]*)"$/ do |field, parent, value| with_scope(parent) do field = find_field(field) field_value = (field.tag_name == 'textarea') ? field.text : field.value if field_value.respond_to? :should field_value.should =~ /\#{value}/ else assert_match(/\#{value}/, field_value) end end end Then /^the "([^"]*)" field(?: within (.*))? should not contain "([^"]*)"$/ do |field, parent, value| with_scope(parent) do field = find_field(field) field_value = (field.tag_name == 'textarea') ? field.text : field.value if field_value.respond_to? :should_not field_value.should_not =~ /\#{value}/ else assert_no_match(/\#{value}/, field_value) end end end Then /^the "([^"]*)" field should have the error "([^"]*)"$/ do |field, error_message| element = find_field(field) classes = element.find(:xpath, '..')[:class].split(' ') form_for_input = element.find(:xpath, 'ancestor::form[1]') using_formtastic = form_for_input[:class].include?('formtastic') error_class = using_formtastic ? 'error' : 'field_with_errors' if classes.respond_to? :should classes.should include(error_class) else assert classes.include?(error_class) end if page.respond_to?(:should) if using_formtastic error_paragraph = element.find(:xpath, '../*[@class="inline-errors"][1]') error_paragraph.should have_content(error_message) else page.should have_content("\#{field.titlecase} \#{error_message}") end else if using_formtastic error_paragraph = element.find(:xpath, '../*[@class="inline-errors"][1]') assert error_paragraph.has_content?(error_message) else assert page.has_content?("\#{field.titlecase} \#{error_message}") end end end Then /^the "([^"]*)" field should have no error$/ do |field| element = find_field(field) classes = element.find(:xpath, '..')[:class].split(' ') if classes.respond_to? :should classes.should_not include('field_with_errors') classes.should_not include('error') else assert !classes.include?('field_with_errors') assert !classes.include?('error') end end Then /^the "([^"]*)" checkbox(?: within (.*))? should be checked$/ do |label, parent| with_scope(parent) do field_checked = find_field(label)['checked'] if field_checked.respond_to? :should field_checked.should be_true else assert field_checked end end end Then /^the "([^"]*)" checkbox(?: within (.*))? should not be checked$/ do |label, parent| with_scope(parent) do field_checked = find_field(label)['checked'] if field_checked.respond_to? :should field_checked.should be_false else assert !field_checked end end end Then /^(?:|I )should be on (.+)$/ do |page_name| current_path = URI.parse(current_url).path if current_path.respond_to? :should current_path.should == path_to(page_name) else assert_equal path_to(page_name), current_path end end Then /^(?:|I )should have the following query string:$/ do |expected_pairs| query = URI.parse(current_url).query actual_params = query ? CGI.parse(query) : {} expected_params = {} expected_pairs.rows_hash.each_pair{|k,v| expected_params[k] = v.split(',')} if actual_params.respond_to? :should actual_params.should == expected_params else assert_equal expected_params, actual_params end end Then /^show me the page$/ do save_and_open_page end EOF write_file('features/support/paths.rb', <<-EOF) module NavigationHelpers # Maps a name to a path. Used by the # # When /^I go to (.+)$/ do |page_name| # # step definition in web_steps.rb # def path_to(page_name) case page_name when /^the home\s?page$/ '/' # Add more mappings here. # Here is an example that pulls values out of the Regexp: # # when /^(.*)'s profile page$/i # user_profile_path(User.find_by_login($1)) else begin page_name =~ /^the (.*) page$/ path_components = $1.split(/\s+/) self.send(path_components.push('path').join('_').to_sym) rescue NoMethodError, ArgumentError raise "Can't find mapping from \"\#{page_name}\" to a path.\\n" + "Now, go and add a mapping in \#{__FILE__}" end end end end World(NavigationHelpers) EOF end end World(WebSteps) cucumber-rails-1.4.3/.rspec0000644000004100000410000000003312657205273015606 0ustar www-datawww-data--format progress --colour cucumber-rails-1.4.3/spec/0000755000004100000410000000000012657205273015427 5ustar www-datawww-datacucumber-rails-1.4.3/spec/spec_helper.rb0000644000004100000410000000010312657205273020237 0ustar www-datawww-datarequire 'rubygems' require 'rails/version' require 'ammeter/init' cucumber-rails-1.4.3/spec/generators/0000755000004100000410000000000012657205273017600 5ustar www-datawww-datacucumber-rails-1.4.3/spec/generators/cucumber/0000755000004100000410000000000012657205273021405 5ustar www-datawww-datacucumber-rails-1.4.3/spec/generators/cucumber/install/0000755000004100000410000000000012657205273023053 5ustar www-datawww-datacucumber-rails-1.4.3/spec/generators/cucumber/install/install_generator_spec.rb0000644000004100000410000000305612657205273030132 0ustar www-datawww-datarequire 'spec_helper' # Generators are not automatically loaded by Rails require 'generators/cucumber/install/install_generator' describe Cucumber::InstallGenerator do # Tell the generator where to put its output (what it thinks of as Rails.root) destination File.expand_path('../../../../../tmp', __FILE__) before { prepare_destination } describe 'no arguments' do before { run_generator } describe 'config/cucumber.yml' do subject { file('config/cucumber.yml') } it { is_expected.to exist } it { is_expected.to contain 'default: <%= std_opts %> features' } end describe 'features/step_definitions folder' do subject { file('features/step_definitions') } it { is_expected.to exist } end describe 'features/support/env.rb' do subject { file('features/support/env.rb') } it { is_expected.to exist } it { is_expected.to contain '# IMPORTANT: This file is generated by cucumber-rails - edit at your own peril.' } it { is_expected.to contain "require 'cucumber/rails'" } end describe 'lib/tasks/cucumber.rake' do subject { file('lib/tasks/cucumber.rake') } it { is_expected.to exist } it { is_expected.to contain '# IMPORTANT: This file is generated by cucumber-rails - edit at your own peril.' } it { is_expected.to contain "task :cucumber => 'cucumber:ok'" } end describe 'script/cucumber' do subject { file('script/cucumber') } it { is_expected.to exist } it { is_expected.to contain 'load Cucumber::BINARY' } end end end cucumber-rails-1.4.3/spec/cucumber/0000755000004100000410000000000012657205273017234 5ustar www-datawww-datacucumber-rails-1.4.3/spec/cucumber/rails/0000755000004100000410000000000012657205273020346 5ustar www-datawww-datacucumber-rails-1.4.3/spec/cucumber/rails/database_spec.rb0000644000004100000410000000332312657205273023452 0ustar www-datawww-data# -*- encoding: utf-8 -*- require 'cucumber/rails/database' describe Cucumber::Rails::Database do let(:strategy) { double(before_js: nil, before_non_js: nil) } it 'forwards events to the selected strategy' do allow(Cucumber::Rails::Database::TruncationStrategy).to receive_messages(new: strategy) Cucumber::Rails::Database.javascript_strategy = :truncation expect(strategy).to receive(:before_non_js).ordered Cucumber::Rails::Database.before_non_js expect(strategy).to receive(:before_js).ordered Cucumber::Rails::Database.before_js end it 'raises an error if you use a non-understood strategy' do expect { Cucumber::Rails::Database.javascript_strategy = :invalid }.to raise_error(Cucumber::Rails::Database::InvalidStrategy) end describe 'using a custom strategy' do class ValidStrategy def before_js # Anything end def before_non_js # Likewise end end class InvalidStrategy end it 'raises an error if the strategy doens\'t support the protocol' do expect { Cucumber::Rails::Database.javascript_strategy = InvalidStrategy }.to raise_error(ArgumentError) end it 'accepts a custom strategy with a valid interface' do expect { Cucumber::Rails::Database.javascript_strategy = ValidStrategy }.not_to raise_error end it 'forwards events to a custom strategy' do allow(ValidStrategy).to receive_messages(new: strategy) Cucumber::Rails::Database.javascript_strategy = ValidStrategy expect(strategy).to receive(:before_non_js).ordered Cucumber::Rails::Database.before_non_js expect(strategy).to receive(:before_js).ordered Cucumber::Rails::Database.before_js end end end cucumber-rails-1.4.3/.travis.yml0000644000004100000410000000177412657205273016617 0ustar www-datawww-datarvm: - 1.9.3 - 2.0.0 - 2.2.1 # whitelist branches: only: - master gemfile: - gemfiles/capybara_1_1.gemfile - gemfiles/rails_4_2.gemfile - gemfiles/rails_4_1.gemfile - gemfiles/rails_4_0.gemfile - gemfiles/rails_3_2.gemfile - gemfiles/rails_3_1.gemfile - gemfiles/rails_3_0.gemfile matrix: exclude: - rvm: 2.0.0 gemfile: gemfiles/capybara_1_1.gemfile - rvm: 2.0.0 gemfile: gemfiles/rails_3_1.gemfile - rvm: 2.0.0 gemfile: gemfiles/rails_3_0.gemfile - rvm: 2.2.1 gemfile: gemfiles/capybara_1_1.gemfile - rvm: 2.2.1 gemfile: gemfiles/rails_4_0.gemfile - rvm: 2.2.1 gemfile: gemfiles/rails_3_2.gemfile - rvm: 2.2.1 gemfile: gemfiles/rails_3_1.gemfile - rvm: 2.2.1 gemfile: gemfiles/rails_3_0.gemfile before_install: gem update --remote bundler # Needed for selenium browser before_script: - "export DISPLAY=:99.0" - "sh -e /etc/init.d/xvfb start" notifications: email: - cukes-devs@googlegroups.com cucumber-rails-1.4.3/lib/0000755000004100000410000000000012657205273015243 5ustar www-datawww-datacucumber-rails-1.4.3/lib/generators/0000755000004100000410000000000012657205273017414 5ustar www-datawww-datacucumber-rails-1.4.3/lib/generators/cucumber/0000755000004100000410000000000012657205273021221 5ustar www-datawww-datacucumber-rails-1.4.3/lib/generators/cucumber/install/0000755000004100000410000000000012657205273022667 5ustar www-datawww-datacucumber-rails-1.4.3/lib/generators/cucumber/install/templates/0000755000004100000410000000000012657205273024665 5ustar www-datawww-datacucumber-rails-1.4.3/lib/generators/cucumber/install/templates/script/0000755000004100000410000000000012657205273026171 5ustar www-datawww-datacucumber-rails-1.4.3/lib/generators/cucumber/install/templates/script/cucumber0000644000004100000410000000046112657205273027722 0ustar www-datawww-data#!/usr/bin/env ruby vendored_cucumber_bin = Dir["#{File.dirname(__FILE__)}/../vendor/{gems,plugins}/cucumber*/bin/cucumber"].first if vendored_cucumber_bin load File.expand_path(vendored_cucumber_bin) else require 'rubygems' unless ENV['NO_RUBYGEMS'] require 'cucumber' load Cucumber::BINARY end cucumber-rails-1.4.3/lib/generators/cucumber/install/templates/config/0000755000004100000410000000000012657205273026132 5ustar www-datawww-datacucumber-rails-1.4.3/lib/generators/cucumber/install/templates/config/cucumber.yml.erb0000644000004100000410000000103712657205273031232 0ustar www-datawww-data<%% rerun = File.file?('rerun.txt') ? IO.read('rerun.txt') : "" rerun_opts = rerun.to_s.strip.empty? ? "--format #{ENV['CUCUMBER_FORMAT'] || 'progress'} features" : "--format #{ENV['CUCUMBER_FORMAT'] || 'pretty'} #{rerun}" std_opts = "--format #{ENV['CUCUMBER_FORMAT'] || 'pretty'} --strict --tags ~@wip" %> default: <%= spork? ? '--drb ' : '' %><%%= std_opts %> features wip: <%= spork? ? '--drb ' : '' %>--tags @wip:3 --wip features rerun: <%= spork? ? '--drb ' : '' %><%%= rerun_opts %> --format rerun --out rerun.txt --strict --tags ~@wip cucumber-rails-1.4.3/lib/generators/cucumber/install/templates/tasks/0000755000004100000410000000000012657205273026012 5ustar www-datawww-datacucumber-rails-1.4.3/lib/generators/cucumber/install/templates/tasks/cucumber.rake.erb0000644000004100000410000000470512657205273031240 0ustar www-datawww-data<%= embed_file('support/edit_warning.txt') %> unless ARGV.any? {|a| a =~ /^gems/} # Don't load anything when running the gems:* tasks vendored_cucumber_bin = Dir["#{<%= defined?(Rails.root) ? 'Rails.root' : 'RAILS_ROOT' %>}/vendor/{gems,plugins}/cucumber*/bin/cucumber"].first $LOAD_PATH.unshift(File.dirname(vendored_cucumber_bin) + '/../lib') unless vendored_cucumber_bin.nil? begin require 'cucumber/rake/task' namespace :cucumber do Cucumber::Rake::Task.new({:ok => 'test:prepare'}, 'Run features that should pass') do |t| t.binary = vendored_cucumber_bin # If nil, the gem's binary is used. t.fork = true # You may get faster startup if you set this to false t.profile = 'default' end Cucumber::Rake::Task.new({:wip => 'test:prepare'}, 'Run features that are being worked on') do |t| t.binary = vendored_cucumber_bin t.fork = true # You may get faster startup if you set this to false t.profile = 'wip' end Cucumber::Rake::Task.new({:rerun => 'test:prepare'}, 'Record failing features and run only them if any exist') do |t| t.binary = vendored_cucumber_bin t.fork = true # You may get faster startup if you set this to false t.profile = 'rerun' end desc 'Run all features' task :all => [:ok, :wip] task :statsetup do require 'rails/code_statistics' ::STATS_DIRECTORIES << %w(Cucumber\ features features) if File.exist?('features') ::CodeStatistics::TEST_TYPES << "Cucumber features" if File.exist?('features') end task :annotations_setup do Rails.application.configure do if config.respond_to?(:annotations) config.annotations.directories << 'features' config.annotations.register_extensions('feature') { |tag| /#\s*(#{tag}):?\s*(.*)$/ } end end end end desc 'Alias for cucumber:ok' task :cucumber => 'cucumber:ok' task :default => :cucumber task :features => :cucumber do STDERR.puts "*** The 'features' task is deprecated. See rake -T cucumber ***" end # In case we don't have the generic Rails test:prepare hook, append a no-op task that we can depend upon. task 'test:prepare' do end task :stats => 'cucumber:statsetup' task :notes => 'cucumber:annotations_setup' rescue LoadError desc 'cucumber rake task not available (cucumber not installed)' task :cucumber do abort 'Cucumber rake task is not available. Be sure to install cucumber as a gem or plugin' end end end cucumber-rails-1.4.3/lib/generators/cucumber/install/templates/support/0000755000004100000410000000000012657205273026401 5ustar www-datawww-datacucumber-rails-1.4.3/lib/generators/cucumber/install/templates/support/_rails_prefork.rb.erb0000644000004100000410000000003112657205273032470 0ustar www-datawww-datarequire 'cucumber/rails' cucumber-rails-1.4.3/lib/generators/cucumber/install/templates/support/edit_warning.txt0000644000004100000410000000051512657205273031615 0ustar www-datawww-data# IMPORTANT: This file is generated by cucumber-rails - edit at your own peril. # It is recommended to regenerate this file in the future when you upgrade to a # newer version of cucumber-rails. Consider adding your own code to a new file # instead of editing this one. Cucumber will automatically load all features/**/*.rb # files. cucumber-rails-1.4.3/lib/generators/cucumber/install/templates/support/_rails_each_run.rb.erb0000644000004100000410000000377112657205273032622 0ustar www-datawww-data# By default, any exception happening in your Rails application will bubble up # to Cucumber so that your scenario will fail. This is a different from how # your application behaves in the production environment, where an error page will # be rendered instead. # # Sometimes we want to override this default behaviour and allow Rails to rescue # exceptions and display an error page (just like when the app is running in production). # Typical scenarios where you want to do this is when you test your error pages. # There are two ways to allow Rails to rescue exceptions: # # 1) Tag your scenario (or feature) with @allow-rescue # # 2) Set the value below to true. Beware that doing this globally is not # recommended as it will mask a lot of errors for you! # ActionController::Base.allow_rescue = false # Remove/comment out the lines below if your app doesn't have a database. # For some databases (like MongoDB and CouchDB) you may need to use :truncation instead. begin DatabaseCleaner.strategy = :transaction rescue NameError raise "You need to add database_cleaner to your Gemfile (in the :test group) if you wish to use it." end # You may also want to configure DatabaseCleaner to use different strategies for certain features and scenarios. # See the DatabaseCleaner documentation for details. Example: # # Before('@no-txn,@selenium,@culerity,@celerity,@javascript') do # # { :except => [:widgets] } may not do what you expect here # # as Cucumber::Rails::Database.javascript_strategy overrides # # this setting. # DatabaseCleaner.strategy = :truncation # end # # Before('~@no-txn', '~@selenium', '~@culerity', '~@celerity', '~@javascript') do # DatabaseCleaner.strategy = :transaction # end # # Possible values are :truncation and :transaction # The :transaction strategy is faster, but might give you threading problems. # See https://github.com/cucumber/cucumber-rails/blob/master/features/choose_javascript_database_strategy.feature Cucumber::Rails::Database.javascript_strategy = :truncation cucumber-rails-1.4.3/lib/generators/cucumber/install/templates/support/rails_spork.rb.erb0000644000004100000410000000045112657205273032025 0ustar www-datawww-data<%= embed_file('support/edit_warning.txt') %> require 'rubygems' require 'spork' Spork.prefork do <%= embed_template('support/_rails_prefork.rb.erb', ' ') %> <%= embed_file("support/capybara.rb", ' ') %> end Spork.each_run do <%= embed_template('support/_rails_each_run.rb.erb', ' ') %> end cucumber-rails-1.4.3/lib/generators/cucumber/install/templates/support/capybara.rb0000644000004100000410000000034412657205273030511 0ustar www-datawww-data# Capybara defaults to CSS3 selectors rather than XPath. # If you'd prefer to use XPath, just uncomment this line and adjust any # selectors in your step definitions to use the XPath syntax. # Capybara.default_selector = :xpath cucumber-rails-1.4.3/lib/generators/cucumber/install/templates/support/rails.rb.erb0000644000004100000410000000030612657205273030606 0ustar www-datawww-data<%= embed_file('support/edit_warning.txt') %> <%= embed_template('support/_rails_prefork.rb.erb') %> <%= embed_file("support/capybara.rb") %> <%= embed_template('support/_rails_each_run.rb.erb') %> cucumber-rails-1.4.3/lib/generators/cucumber/install/USAGE0000644000004100000410000000045712657205273023464 0ustar www-datawww-dataDescription: Sets up Cucumber in your Rails project. After running this generator you will get a new rake task called cucumber. This also generates the necessary files in the features directory. Examples: `rails generate cucumber:install` `rails generate cucumber:install --help` cucumber-rails-1.4.3/lib/generators/cucumber/install/install_generator.rb0000644000004100000410000000377512657205273026744 0ustar www-datawww-datarequire 'rbconfig' module Cucumber class InstallGenerator < ::Rails::Generators::Base source_root File.expand_path('../templates', __FILE__) DEFAULT_SHEBANG = File.join(RbConfig::CONFIG['bindir'], RbConfig::CONFIG['ruby_install_name']) class_option :spork, type: :boolean, desc: 'Use Spork' class_option :skip_database, type: :boolean, desc: 'Skip modification of database.yml', aliases: '-D', default: false def create_templates template 'config/cucumber.yml.erb', 'config/cucumber.yml' end def create_scripts copy_file 'script/cucumber', 'script/cucumber' chmod 'script/cucumber', 0755 end def create_step_definitions empty_directory 'features/step_definitions' create_file 'features/step_definitions/.gitkeep' end def create_feature_support empty_directory 'features/support' if spork? template 'support/rails_spork.rb.erb', 'features/support/env.rb' else template 'support/rails.rb.erb', 'features/support/env.rb' end end def create_tasks empty_directory 'lib/tasks' template 'tasks/cucumber.rake.erb', 'lib/tasks/cucumber.rake' end def create_database return unless File.exist?('config/database.yml') unless File.read('config/database.yml').include? 'cucumber:' gsub_file 'config/database.yml', /^test:.*\n/, "test: &test\n" gsub_file 'config/database.yml', /\z/, "\ncucumber:\n <<: *test\n" # Since gsub_file doesn't ask the user, just inform user that the file was overwritten. puts ' force config/database.yml' end end protected def spork? options[:spork] end def embed_file(source, indent = '') IO.read(File.join(self.class.source_root, source)).gsub(/^/, indent) end def embed_template(source, indent = '') template = File.join(self.class.source_root, source) ERB.new(IO.read(template), nil, '-').result(binding).gsub(/^/, indent) end end end cucumber-rails-1.4.3/lib/cucumber/0000755000004100000410000000000012657205273017050 5ustar www-datawww-datacucumber-rails-1.4.3/lib/cucumber/rails/0000755000004100000410000000000012657205273020162 5ustar www-datawww-datacucumber-rails-1.4.3/lib/cucumber/rails/application.rb0000644000004100000410000000075712657205273023023 0ustar www-datawww-datarequire 'rails/application' # Make sure the ActionDispatch::ShowExceptions middleware is always enabled, # regardless of what is in config/environments/test.rb # Instead we are overriding ActionDispatch::ShowExceptions to be able to # toggle whether or not exceptions are raised. class Rails::Application alias __cucumber_orig_initialize__ initialize! def initialize! ad = config.action_dispatch def ad.show_exceptions true end __cucumber_orig_initialize__ end end cucumber-rails-1.4.3/lib/cucumber/rails/world.rb0000644000004100000410000000133012657205273021633 0ustar www-datawww-databegin # Try to load it so we can assign @_result below if needed. require 'test/unit/testresult' rescue LoadError => ignore end module Cucumber #:nodoc: module Rails #:nodoc: class World < ActionDispatch::IntegrationTest #:nodoc: include Rack::Test::Methods include ActiveSupport::Testing::SetupAndTeardown if ActiveSupport::Testing.const_defined?('SetupAndTeardown') def initialize #:nodoc: @_result = Test::Unit::TestResult.new if defined?(Test::Unit::TestResult) end unless defined?(ActiveRecord::Base) def self.fixture_table_names; []; end # Workaround for projects that don't use ActiveRecord end end end end World do Cucumber::Rails::World.new end cucumber-rails-1.4.3/lib/cucumber/rails/database.rb0000644000004100000410000000607612657205273022264 0ustar www-datawww-datamodule Cucumber module Rails module Database CUSTOM_STRATEGY_INTERFACE = %w{ before_js before_non_js } class InvalidStrategy < ArgumentError; end class << self attr_accessor :autorun_database_cleaner def javascript_strategy=(args) strategy, *strategy_opts = args strategy_type = case strategy when Symbol map[strategy] || raise(InvalidStrategy, "The strategy '#{strategy}' is not understood. Please use one of #{map.keys.join(',')}") when Class strategy end @strategy = strategy_type.new(*strategy_opts) validate_interface! end def before_js @strategy.before_js end def before_non_js @strategy.before_non_js end def after @strategy.after end private def map { truncation: TruncationStrategy, shared_connection: SharedConnectionStrategy, transaction: SharedConnectionStrategy, deletion: DeletionStrategy } end def validate_interface! unless CUSTOM_STRATEGY_INTERFACE.all? { |m| @strategy.respond_to?(m) } raise(ArgumentError, "Strategy must respond to all of: #{CUSTOM_STRATEGY_INTERFACE.map{ |method| "##{method}" } * ' ' } !") end end end class Strategy def initialize(options = {}) @options = options end def before_js(strategy) @original_strategy = DatabaseCleaner.connections.first.strategy # that feels like a nasty hack DatabaseCleaner.strategy = strategy, @options end def before_non_js # no-op end def after return unless @original_strategy DatabaseCleaner.strategy = @original_strategy @original_strategy = nil end end class TruncationStrategy < Strategy def before_js super :truncation end end class DeletionStrategy < Strategy def before_js super :deletion end end class SharedConnectionStrategy < Strategy def before_js # Forces all threads to share a connection on a per-model basis, # as connections may vary per model as per establish_connection. This works # on Capybara because it starts the web server in a thread. ActiveRecord::Base.shared_connection = ActiveRecord::Base.connection ActiveRecord::Base.descendants.each do |model| model.shared_connection = model.connection end end def before_non_js # Do not use a shared connection unless we're in a @javascript scenario ActiveRecord::Base.shared_connection = nil ActiveRecord::Base.descendants.each do |model| model.shared_connection = nil end end end Database.javascript_strategy = :truncation Database.autorun_database_cleaner = true end end end cucumber-rails-1.4.3/lib/cucumber/rails/hooks/0000755000004100000410000000000012657205273021305 5ustar www-datawww-datacucumber-rails-1.4.3/lib/cucumber/rails/hooks/active_record.rb0000644000004100000410000000106212657205273024442 0ustar www-datawww-dataif defined?(ActiveRecord::Base) class ActiveRecord::Base class_attribute :shared_connection def self.connection self.shared_connection || retrieve_connection end end Before('@javascript') do Cucumber::Rails::Database.before_js if Cucumber::Rails::Database.autorun_database_cleaner end Before('~@javascript') do Cucumber::Rails::Database.before_non_js if Cucumber::Rails::Database.autorun_database_cleaner end After do Cucumber::Rails::Database.after if Cucumber::Rails::Database.autorun_database_cleaner end end cucumber-rails-1.4.3/lib/cucumber/rails/hooks/database_cleaner.rb0000644000004100000410000000053212657205273025067 0ustar www-datawww-databegin require 'database_cleaner' Before('~@no-database-cleaner') do DatabaseCleaner.start if Cucumber::Rails::Database.autorun_database_cleaner end After('~@no-database-cleaner') do DatabaseCleaner.clean if Cucumber::Rails::Database.autorun_database_cleaner end rescue LoadError => ignore_if_database_cleaner_not_present end cucumber-rails-1.4.3/lib/cucumber/rails/hooks/mail.rb0000644000004100000410000000013512657205273022553 0ustar www-datawww-dataif defined?(ActionMailer::Base) Before do ActionMailer::Base.deliveries = [] end end cucumber-rails-1.4.3/lib/cucumber/rails/hooks/allow_rescue.rb0000644000004100000410000000034512657205273024320 0ustar www-datawww-dataBefore('@allow-rescue') do @__orig_allow_rescue = ActionController::Base.allow_rescue ActionController::Base.allow_rescue = true end After('@allow-rescue') do ActionController::Base.allow_rescue = @__orig_allow_rescue end cucumber-rails-1.4.3/lib/cucumber/rails/action_controller.rb0000644000004100000410000000044012657205273024225 0ustar www-datawww-dataActionController::Base.class_eval do cattr_accessor :allow_rescue end class ActionDispatch::ShowExceptions alias __cucumber_orig_call__ call def call(env) env['action_dispatch.show_exceptions'] = !!ActionController::Base.allow_rescue __cucumber_orig_call__(env) end end cucumber-rails-1.4.3/lib/cucumber/rails/capybara.rb0000644000004100000410000000032312657205273022267 0ustar www-datawww-datarequire 'capybara' require 'capybara/rails' require 'capybara/cucumber' require 'capybara/session' require 'cucumber/rails/capybara/javascript_emulation' require 'cucumber/rails/capybara/select_dates_and_times' cucumber-rails-1.4.3/lib/cucumber/rails/rspec.rb0000644000004100000410000000102212657205273021616 0ustar www-datawww-datarequire 'cucumber/rails/world' begin require 'rspec/rails/matchers' [Cucumber::Rails::World, ActionDispatch::Integration::Session].each do |klass| klass.class_eval do include RSpec::Matchers end end rescue LoadError => try_rspec_1 require 'spec/expectations' require 'spec/rails' [Cucumber::Rails::World, ActionDispatch::Integration::Session].each do |klass| klass.class_eval do include Spec::Matchers include Spec::Rails::Matchers if defined?(Spec::Rails::Matchers) end end end cucumber-rails-1.4.3/lib/cucumber/rails/hooks.rb0000644000004100000410000000025512657205273021634 0ustar www-datawww-datarequire 'cucumber/rails/hooks/active_record' require 'cucumber/rails/hooks/database_cleaner' require 'cucumber/rails/hooks/allow_rescue' require 'cucumber/rails/hooks/mail' cucumber-rails-1.4.3/lib/cucumber/rails/capybara/0000755000004100000410000000000012657205273021744 5ustar www-datawww-datacucumber-rails-1.4.3/lib/cucumber/rails/capybara/select_dates_and_times.rb0000644000004100000410000000310312657205273026750 0ustar www-datawww-datamodule Cucumber module Rails module Capybara # This module defines methods for selecting dates and times module SelectDatesAndTimes # Select a Rails date. Options hash must include :from => +label+ def select_date(date, options) date = Date.parse(date) base_dom_id = get_base_dom_id_from_label_tag(options[:from]) find(:xpath, ".//select[@id='#{base_dom_id}_1i']").select(date.year.to_s) find(:xpath, ".//select[@id='#{base_dom_id}_2i']").select(I18n.l date, format: '%B') find(:xpath, ".//select[@id='#{base_dom_id}_3i']").select(date.day.to_s) end # Select a Rails time. Options hash must include :from => +label+ def select_time(time, options) time = Time.zone.parse(time) base_dom_id = get_base_dom_id_from_label_tag(options[:from]) find(:xpath, ".//select[@id='#{base_dom_id}_4i']").select(time.hour.to_s.rjust(2, '0')) find(:xpath, ".//select[@id='#{base_dom_id}_5i']").select(time.min.to_s.rjust(2, '0')) end # Select a Rails datetime. Options hash must include :from => +label+ def select_datetime(datetime, options) select_date(datetime, options) select_time(datetime, options) end private # @example "event_starts_at_" def get_base_dom_id_from_label_tag(field) find(:xpath, ".//label[contains(., '#{field}')]")['for'].gsub(/(_[1-5]i)$/, '') end end end end end World(::Cucumber::Rails::Capybara::SelectDatesAndTimes) cucumber-rails-1.4.3/lib/cucumber/rails/capybara/javascript_emulation.rb0000644000004100000410000000645112657205273026522 0ustar www-datawww-datamodule Cucumber module Rails module Capybara module JavascriptEmulation def self.included(base) base.class_eval do alias_method :click_without_javascript_emulation, :click alias_method :click, :click_with_javascript_emulation end end def click_with_javascript_emulation if link_with_non_get_http_method? ::Capybara::RackTest::Form.new(driver, js_form(element_node.document, self[:href], emulated_method)).submit(self) else click_without_javascript_emulation end end private def csrf? csrf_param_node && csrf_token_node end def csrf_param_node element_node.document.at_xpath("//meta[@name='csrf-param']") end def csrf_param csrf_param_node['content'] end def csrf_token_node element_node.document.at_xpath("//meta[@name='csrf-token']") end def csrf_token csrf_token_node['content'] end def js_form(document, action, emulated_method, method = 'POST') js_form = document.create_element('form') js_form['action'] = action js_form['method'] = method if emulated_method and emulated_method.downcase != method.downcase input = document.create_element('input') input['type'] = 'hidden' input['name'] = '_method' input['value'] = emulated_method js_form.add_child(input) end # rails will wipe the session if the CSRF token is not sent # with non-GET requests if csrf? && emulated_method.downcase != 'get' input = document.create_element('input') input['type'] = 'hidden' input['name'] = csrf_param input['value'] = csrf_token js_form.add_child(input) end js_form end def link_with_non_get_http_method? if ::Rails.version.to_f >= 3.0 tag_name == 'a' && element_node['data-method'] && element_node['data-method'] =~ /(?:delete|put|post)/ else tag_name == 'a' && element_node['onclick'] && element_node['onclick'] =~ /var f = document\.createElement\('form'\); f\.style\.display = 'none';/ end end def emulated_method if ::Rails.version.to_f >= 3.0 element_node['data-method'] else element_node['onclick'][/m\.setAttribute\('value', '([^']*)'\)/, 1] end end def element_node if self.respond_to? :native self.native else warn 'DEPRECATED: cucumber-rails loves you, just not your version of Capybara. Please update Capybara to >= 0.4.0' self.node end end end end end end class Capybara::RackTest::Node include ::Cucumber::Rails::Capybara::JavascriptEmulation end Before('~@no-js-emulation') do # Enable javascript emulation ::Capybara::RackTest::Node.class_eval do alias_method :click, :click_with_javascript_emulation end end Before('@no-js-emulation') do # Disable javascript emulation ::Capybara::RackTest::Node.class_eval do alias_method :click, :click_without_javascript_emulation end end cucumber-rails-1.4.3/lib/cucumber/rails.rb0000644000004100000410000000253512657205273020514 0ustar www-datawww-dataenv_caller = File.dirname(caller.detect{ |f| f =~ /\/env\.rb:/ }) if caller.detect{ |f| f =~ /\/env\.rb:/ } if env_caller require 'rails' require 'cucumber/rails/application' ENV['RAILS_ENV'] ||= 'test' ENV['RAILS_ROOT'] ||= File.expand_path(env_caller + '/../..') require File.expand_path(ENV['RAILS_ROOT'] + '/config/environment') require 'cucumber/rails/action_controller' if defined?(ActiveRecord::Base) require 'rails/test_help' else require 'action_dispatch/testing/test_process' require 'action_dispatch/testing/integration' end unless Rails.application.config.cache_classes warn "WARNING: You have set Rails' config.cache_classes to false (most likely in config/environments/cucumber.rb). This setting is known to cause problems with database transactions. Set config.cache_classes to true if you want to use transactions." end require 'cucumber/rails/world' require 'cucumber/rails/hooks' require 'cucumber/rails/capybara' require 'cucumber/rails/database' MultiTest.disable_autorun else warn "WARNING: Cucumber-rails required outside of env.rb. The rest of loading is being deferred until env.rb is called. To avoid this warning, move 'gem \'cucumber-rails\', :require => false' under only group :test in your Gemfile. If already in the :test group, be sure you are specifying ':require => false'." end cucumber-rails-1.4.3/gemfiles/0000755000004100000410000000000012657205273016270 5ustar www-datawww-datacucumber-rails-1.4.3/gemfiles/rails_4_1.gemfile0000644000004100000410000000064512657205273021404 0ustar www-datawww-data# This file was generated by Appraisal source "https://rubygems.org" gem "protected_attributes", "~> 1.0.3" gem "rails", "~> 4.1.0" gem "railties", "~> 4.1.0" gem "capybara", "~> 2.0.2" gem "rspec-rails", "~> 3.1.0" gem "sass-rails", "~> 4.0.0" gem "coffee-rails", "~> 4.0.0" gem "jquery-rails", "~> 2.2.1" gem "uglifier", "~> 2.1.0" gem "sqlite3", "~> 1.3.7" gem "database_cleaner", "~> 1.0.1" gemspec :path => "../" cucumber-rails-1.4.3/gemfiles/capybara_1_1.gemfile0000644000004100000410000000057312657205273022051 0ustar www-datawww-data# This file was generated by Appraisal source "https://rubygems.org" gem "capybara", "~> 1.1.2" gem "rails", "~> 3.2.12" gem "turn", "~> 0.9.6" gem "rspec-rails", "~> 3.1.0" gem "sass-rails", "~> 3.2.6" gem "coffee-rails", "~> 3.2.2" gem "jquery-rails", "~> 2.2.1" gem "uglifier", "~> 2.1.0" gem "sqlite3", "~> 1.3.7" gem "database_cleaner", "~> 1.0.1" gemspec :path => "../" cucumber-rails-1.4.3/gemfiles/rails_4_2.gemfile0000644000004100000410000000062312657205273021401 0ustar www-datawww-data# This file was generated by Appraisal source "https://rubygems.org" gem "rails", "~> 4.2.1" gem "railties", "~> 4.2.1" gem "capybara", "~> 2.4.4" gem "selenium-webdriver", "~> 2.0" gem "rspec-rails", "~> 3.1.0" gem "sass-rails", "~> 5.0" gem "coffee-rails", "~> 4.1.0" gem "jquery-rails" gem "uglifier", "~> 2.1.0" gem "sqlite3", "~> 1.3.7" gem "database_cleaner", "~> 1.0.1" gemspec :path => "../" cucumber-rails-1.4.3/gemfiles/rails_3_0.gemfile0000644000004100000410000000047712657205273021405 0ustar www-datawww-data# This file was generated by Appraisal source "https://rubygems.org" gem "rails", "~> 3.0.20" gem "capybara", "~> 2.0.2" gem "turn", "~> 0.9.6" gem "rspec-rails", "~> 3.1.0" gem "jquery-rails", "~> 2.2.1" gem "uglifier", "~> 2.1.0" gem "sqlite3", "~> 1.3.7" gem "database_cleaner", "~> 1.0.1" gemspec :path => "../" cucumber-rails-1.4.3/gemfiles/rails_3_2.gemfile0000644000004100000410000000057312657205273021404 0ustar www-datawww-data# This file was generated by Appraisal source "https://rubygems.org" gem "rails", "~> 3.2.12" gem "capybara", "~> 2.0.2" gem "turn", "~> 0.9.6" gem "rspec-rails", "~> 3.1.0" gem "sass-rails", "~> 3.2.6" gem "coffee-rails", "~> 3.2.2" gem "jquery-rails", "~> 2.2.1" gem "uglifier", "~> 2.1.0" gem "sqlite3", "~> 1.3.7" gem "database_cleaner", "~> 1.0.1" gemspec :path => "../" cucumber-rails-1.4.3/gemfiles/rails_4_0.gemfile0000644000004100000410000000067412657205273021405 0ustar www-datawww-data# This file was generated by Appraisal source "https://rubygems.org" gem "protected_attributes", "~> 1.0.3" gem "rails", "~> 4.0.0" gem "railties", "~> 4.0.0" gem "capybara", "~> 2.0.2" gem "turn", "~> 0.9.6" gem "rspec-rails", "~> 3.1.0" gem "sass-rails", "~> 4.0.0" gem "coffee-rails", "~> 4.0.0" gem "jquery-rails", "~> 2.2.1" gem "uglifier", "~> 2.1.0" gem "sqlite3", "~> 1.3.7" gem "database_cleaner", "~> 1.0.1" gemspec :path => "../" cucumber-rails-1.4.3/gemfiles/rails_3_1.gemfile0000644000004100000410000000057312657205273021403 0ustar www-datawww-data# This file was generated by Appraisal source "https://rubygems.org" gem "rails", "~> 3.1.11" gem "capybara", "~> 2.0.2" gem "turn", "~> 0.9.6" gem "rspec-rails", "~> 3.1.0" gem "sass-rails", "~> 3.1.7" gem "coffee-rails", "~> 3.1.1" gem "jquery-rails", "~> 2.2.1" gem "uglifier", "~> 2.1.0" gem "sqlite3", "~> 1.3.7" gem "database_cleaner", "~> 1.0.1" gemspec :path => "../" cucumber-rails-1.4.3/metadata.yml0000644000004100000410000002750412657205273017010 0ustar www-datawww-data--- !ruby/object:Gem::Specification name: cucumber-rails version: !ruby/object:Gem::Version version: 1.4.3 platform: ruby authors: - Aslak Hellesøy - Dennis Blöte - Rob Holland autorequire: bindir: bin cert_chain: [] date: 2016-01-21 00:00:00.000000000 Z dependencies: - !ruby/object:Gem::Dependency name: capybara requirement: !ruby/object:Gem::Requirement requirements: - - ">=" - !ruby/object:Gem::Version version: 1.1.2 - - "<" - !ruby/object:Gem::Version version: '3' type: :runtime prerelease: false version_requirements: !ruby/object:Gem::Requirement requirements: - - ">=" - !ruby/object:Gem::Version version: 1.1.2 - - "<" - !ruby/object:Gem::Version version: '3' - !ruby/object:Gem::Dependency name: cucumber requirement: !ruby/object:Gem::Requirement requirements: - - ">=" - !ruby/object:Gem::Version version: 1.3.8 - - "<" - !ruby/object:Gem::Version version: '3' type: :runtime prerelease: false version_requirements: !ruby/object:Gem::Requirement requirements: - - ">=" - !ruby/object:Gem::Version version: 1.3.8 - - "<" - !ruby/object:Gem::Version version: '3' - !ruby/object:Gem::Dependency name: nokogiri requirement: !ruby/object:Gem::Requirement requirements: - - "~>" - !ruby/object:Gem::Version version: '1.5' type: :runtime prerelease: false version_requirements: !ruby/object:Gem::Requirement requirements: - - "~>" - !ruby/object:Gem::Version version: '1.5' - !ruby/object:Gem::Dependency name: railties requirement: !ruby/object:Gem::Requirement requirements: - - ">=" - !ruby/object:Gem::Version version: '3' - - "<" - !ruby/object:Gem::Version version: '5' type: :runtime prerelease: false version_requirements: !ruby/object:Gem::Requirement requirements: - - ">=" - !ruby/object:Gem::Version version: '3' - - "<" - !ruby/object:Gem::Version version: '5' - !ruby/object:Gem::Dependency name: mime-types requirement: !ruby/object:Gem::Requirement requirements: - - ">=" - !ruby/object:Gem::Version version: '1.16' - - "<" - !ruby/object:Gem::Version version: '4' type: :runtime prerelease: false version_requirements: !ruby/object:Gem::Requirement requirements: - - ">=" - !ruby/object:Gem::Version version: '1.16' - - "<" - !ruby/object:Gem::Version version: '4' - !ruby/object:Gem::Dependency name: ammeter requirement: !ruby/object:Gem::Requirement requirements: - - ">=" - !ruby/object:Gem::Version version: 0.2.9 - - "<" - !ruby/object:Gem::Version version: 1.1.3 type: :development prerelease: false version_requirements: !ruby/object:Gem::Requirement requirements: - - ">=" - !ruby/object:Gem::Version version: 0.2.9 - - "<" - !ruby/object:Gem::Version version: 1.1.3 - !ruby/object:Gem::Dependency name: appraisal requirement: !ruby/object:Gem::Requirement requirements: - - ">=" - !ruby/object:Gem::Version version: 0.5.1 type: :development prerelease: false version_requirements: !ruby/object:Gem::Requirement requirements: - - ">=" - !ruby/object:Gem::Version version: 0.5.1 - !ruby/object:Gem::Dependency name: aruba requirement: !ruby/object:Gem::Requirement requirements: - - "~>" - !ruby/object:Gem::Version version: 0.8.0 type: :development prerelease: false version_requirements: !ruby/object:Gem::Requirement requirements: - - "~>" - !ruby/object:Gem::Version version: 0.8.0 - !ruby/object:Gem::Dependency name: builder requirement: !ruby/object:Gem::Requirement requirements: - - ">=" - !ruby/object:Gem::Version version: 2.1.2 - - "<" - !ruby/object:Gem::Version version: '4' type: :development prerelease: false version_requirements: !ruby/object:Gem::Requirement requirements: - - ">=" - !ruby/object:Gem::Version version: 2.1.2 - - "<" - !ruby/object:Gem::Version version: '4' - !ruby/object:Gem::Dependency name: bundler requirement: !ruby/object:Gem::Requirement requirements: - - ">=" - !ruby/object:Gem::Version version: 1.3.5 type: :development prerelease: false version_requirements: !ruby/object:Gem::Requirement requirements: - - ">=" - !ruby/object:Gem::Version version: 1.3.5 - !ruby/object:Gem::Dependency name: selenium-webdriver requirement: !ruby/object:Gem::Requirement requirements: - - ">=" - !ruby/object:Gem::Version version: 2.45.0 type: :development prerelease: false version_requirements: !ruby/object:Gem::Requirement requirements: - - ">=" - !ruby/object:Gem::Version version: 2.45.0 - !ruby/object:Gem::Dependency name: database_cleaner requirement: !ruby/object:Gem::Requirement requirements: - - ">=" - !ruby/object:Gem::Version version: 0.7.2 type: :development prerelease: false version_requirements: !ruby/object:Gem::Requirement requirements: - - ">=" - !ruby/object:Gem::Version version: 0.7.2 - !ruby/object:Gem::Dependency name: factory_girl requirement: !ruby/object:Gem::Requirement requirements: - - ">=" - !ruby/object:Gem::Version version: '3.2' type: :development prerelease: false version_requirements: !ruby/object:Gem::Requirement requirements: - - ">=" - !ruby/object:Gem::Version version: '3.2' - !ruby/object:Gem::Dependency name: rake requirement: !ruby/object:Gem::Requirement requirements: - - ">=" - !ruby/object:Gem::Version version: 0.9.2.2 type: :development prerelease: false version_requirements: !ruby/object:Gem::Requirement requirements: - - ">=" - !ruby/object:Gem::Version version: 0.9.2.2 - !ruby/object:Gem::Dependency name: rspec requirement: !ruby/object:Gem::Requirement requirements: - - ">=" - !ruby/object:Gem::Version version: '2.2' - - "<=" - !ruby/object:Gem::Version version: '3.1' type: :development prerelease: false version_requirements: !ruby/object:Gem::Requirement requirements: - - ">=" - !ruby/object:Gem::Version version: '2.2' - - "<=" - !ruby/object:Gem::Version version: '3.1' - !ruby/object:Gem::Dependency name: rails requirement: !ruby/object:Gem::Requirement requirements: - - ">=" - !ruby/object:Gem::Version version: '0' type: :development prerelease: false version_requirements: !ruby/object:Gem::Requirement requirements: - - ">=" - !ruby/object:Gem::Version version: '0' - !ruby/object:Gem::Dependency name: bcat requirement: !ruby/object:Gem::Requirement requirements: - - ">=" - !ruby/object:Gem::Version version: 0.6.2 type: :development prerelease: false version_requirements: !ruby/object:Gem::Requirement requirements: - - ">=" - !ruby/object:Gem::Version version: 0.6.2 - !ruby/object:Gem::Dependency name: rdiscount requirement: !ruby/object:Gem::Requirement requirements: - - ">=" - !ruby/object:Gem::Version version: 2.0.7 type: :development prerelease: false version_requirements: !ruby/object:Gem::Requirement requirements: - - ">=" - !ruby/object:Gem::Version version: 2.0.7 - !ruby/object:Gem::Dependency name: rdoc requirement: !ruby/object:Gem::Requirement requirements: - - ">=" - !ruby/object:Gem::Version version: '3.4' type: :development prerelease: false version_requirements: !ruby/object:Gem::Requirement requirements: - - ">=" - !ruby/object:Gem::Version version: '3.4' - !ruby/object:Gem::Dependency name: yard requirement: !ruby/object:Gem::Requirement requirements: - - ">=" - !ruby/object:Gem::Version version: 0.8.7 type: :development prerelease: false version_requirements: !ruby/object:Gem::Requirement requirements: - - ">=" - !ruby/object:Gem::Version version: 0.8.7 description: Cucumber Generator and Runtime for Rails email: cukes@googlegroups.com executables: [] extensions: [] extra_rdoc_files: [] files: - ".gitignore" - ".rspec" - ".travis.yml" - Appraisals - CONTRIBUTING.md - Gemfile - Gemfile.appraisal - History.md - LICENSE - README.md - Rakefile - config/.gitignore - config/cucumber.yml - cucumber-rails.gemspec - dev_tasks/cucumber.rake - dev_tasks/rspec.rake - dev_tasks/yard.rake - dev_tasks/yard/default/layout/html/bubble_32x32.png - dev_tasks/yard/default/layout/html/footer.erb - dev_tasks/yard/default/layout/html/index.erb - dev_tasks/yard/default/layout/html/layout.erb - dev_tasks/yard/default/layout/html/logo.erb - dev_tasks/yard/default/layout/html/setup.rb - features/allow_rescue.feature - features/annotations.feature - features/capybara_javascript_drivers.feature - features/choose_javascript_database_strategy.feature - features/database_cleaner.feature - features/disable_automatic_database_cleaning.feature - features/emulate_javascript.feature - features/install_cucumber_rails.feature - features/no_database.feature - features/raising_errors.feature - features/rerun_profile.feature - features/rest_api.feature - features/step_definitions/cucumber_rails_steps.rb - features/support/aruba.rb - features/support/bundler_pre_support.rb - features/support/env.rb - features/support/fixtures/bundler-1.0.21.gem - features/support/fixtures/bundler-1.1.rc.gem - features/support/legacy_web_steps_support.rb - features/support/version_hooks.rb - gemfiles/capybara_1_1.gemfile - gemfiles/rails_3_0.gemfile - gemfiles/rails_3_1.gemfile - gemfiles/rails_3_2.gemfile - gemfiles/rails_4_0.gemfile - gemfiles/rails_4_1.gemfile - gemfiles/rails_4_2.gemfile - lib/cucumber/rails.rb - lib/cucumber/rails/action_controller.rb - lib/cucumber/rails/application.rb - lib/cucumber/rails/capybara.rb - lib/cucumber/rails/capybara/javascript_emulation.rb - lib/cucumber/rails/capybara/select_dates_and_times.rb - lib/cucumber/rails/database.rb - lib/cucumber/rails/hooks.rb - lib/cucumber/rails/hooks/active_record.rb - lib/cucumber/rails/hooks/allow_rescue.rb - lib/cucumber/rails/hooks/database_cleaner.rb - lib/cucumber/rails/hooks/mail.rb - lib/cucumber/rails/rspec.rb - lib/cucumber/rails/world.rb - lib/generators/cucumber/install/USAGE - lib/generators/cucumber/install/install_generator.rb - lib/generators/cucumber/install/templates/config/cucumber.yml.erb - lib/generators/cucumber/install/templates/script/cucumber - lib/generators/cucumber/install/templates/support/_rails_each_run.rb.erb - lib/generators/cucumber/install/templates/support/_rails_prefork.rb.erb - lib/generators/cucumber/install/templates/support/capybara.rb - lib/generators/cucumber/install/templates/support/edit_warning.txt - lib/generators/cucumber/install/templates/support/rails.rb.erb - lib/generators/cucumber/install/templates/support/rails_spork.rb.erb - lib/generators/cucumber/install/templates/tasks/cucumber.rake.erb - spec/cucumber/rails/database_spec.rb - spec/generators/cucumber/install/install_generator_spec.rb - spec/spec_helper.rb homepage: http://cukes.info licenses: - MIT metadata: {} post_install_message: rdoc_options: [] require_paths: - lib required_ruby_version: !ruby/object:Gem::Requirement requirements: - - ">=" - !ruby/object:Gem::Version version: '0' required_rubygems_version: !ruby/object:Gem::Requirement requirements: - - ">=" - !ruby/object:Gem::Version version: '0' requirements: [] rubyforge_project: rubygems_version: 2.4.8 signing_key: specification_version: 4 summary: cucumber-rails-1.4.3 test_files: [] has_rdoc: cucumber-rails-1.4.3/Gemfile.appraisal0000644000004100000410000000004712657205273017744 0ustar www-datawww-datasource "https://rubygems.org" gemspec cucumber-rails-1.4.3/.gitignore0000644000004100000410000000017012657205273016463 0ustar www-datawww-datapkg doc tmp coverage .bundle .rvmrc .yardoc/ .rvmrc .cucumber.rerun gemfiles/*.lock Gemfile.lock Gemfile.appraisal.lock cucumber-rails-1.4.3/config/0000755000004100000410000000000012657205273015742 5ustar www-datawww-datacucumber-rails-1.4.3/config/cucumber.yml0000644000004100000410000000055412657205273020276 0ustar www-datawww-data<% rerun_file = '.cucumber.rerun' failing_scenarios = IO.read(rerun_file) rescue '' path = if failing_scenarios.empty? 'features' else puts "Running failed scenarios" failing_scenarios end opts = [ "--format #{path == 'features' ? 'progress' : 'pretty'}", "--format rerun -o #{rerun_file}" ].join(' ') %> default: <%= path %> <%= opts %> --tags ~@broken cucumber-rails-1.4.3/config/.gitignore0000644000004100000410000000001612657205273017727 0ustar www-datawww-dataaruba-rvm.yml cucumber-rails-1.4.3/CONTRIBUTING.md0000644000004100000410000000623612657205273016735 0ustar www-datawww-data## About to create a new Github Issue? We appreciate that. But before you do, please learn our basic rules: * This is not a support forum. If you have a question, please go to [The Cukes Google Group](http://groups.google.com/group/cukes). * Do you have an idea for a new feature? Then don't expect it to be implemented unless you or someone else sends a [pull request](https://help.github.com/articles/using-pull-requests). You might be better to start a discussion on [the google group](http://groups.google.com/group/cukes). * Reporting a bug? Please tell us: * which version of Cucumber you're using * which version of Ruby you're using. * How to reproduce it. Bugs with a failing test in a [pull request](https://help.github.com/articles/using-pull-requests) get fixed much quicker. Some bugs may never be fixed. * Want to paste some code or output? Put \`\`\` on a line above and below your code/output. See [GFM](https://help.github.com/articles/github-flavored-markdown)'s *Fenced Code Blocks* for details. * We love [pull requests](https://help.github.com/articles/using-pull-requests). But if you don't have a test to go with it we probably won't merge it. # Contributing to cucumber-rails This document is a guide for those maintaining cucumber-Rails, and others who would like to submit patches. ## Note on Patches/Pull Requests * Fork the project. Make a branch for your change. * Make your feature addition or bug fix. * Make sure your patch is well covered by tests. We don't accept changes to cucumber-rails that aren't tested. * Please do not change the Rakefile, version, or history. (if you want to have your own version, that is fine but bump version in a commit by itself so we can ignore when we merge your change) * Send us a pull request. ## Running tests gem install bundler bundle install bundle exec rake ## Release Process * Make sure `History.md` is updated with the upcoming version number, and has entries for all fixes. * No need to add a `History.md` header at this point - this should be done when a new change is made, later. * Make sure you have up-to-date and clean copy of cucumber/cucumber.github.com.git at the same level as cucumber repo. Now release it bundle update bundle exec rake git commit -m "Release X.Y.Z" rake release ### NOTE: If after running the rake release task you get an eror similiar to this: rake aborted! Couldn't git push. `git push 2>&1' failed with the following output: To git@github.com:cucumber/cucumber-rails.git ! [rejected] rails-2.3.x -> rails-2.3.x (non-fast-forward) error: failed to push some refs to 'git@github.com:cucumber/cucumber-rails.git' make sure that you have pulled all the recent changes from both the master and the rails-2.3.x branch ## Gaining Release Karma To become a release manager, create a pull request adding your name to the list below, and include your Rubygems email address in the ticket. One of the existing Release managers will then add you. Current release managers: * Matt Wynne * Aslak Hellesøy * Kosmas Chatzimichalis To grant release karma, issue the following command: gem owner cucumber --add cucumber-rails-1.4.3/LICENSE0000644000004100000410000000214412657205273015503 0ustar www-datawww-dataThe MIT License Copyright (c) 2008,2009,2010,2011,2012,2013 Aslak Hellesøy and the Cucumber Team. 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. cucumber-rails-1.4.3/History.md0000644000004100000410000005626612657205273016477 0ustar www-datawww-data## [master](https://github.com/cucumber/cucumber-rails/compare/1.4.2...master) (Not yet released) * Added gem version badge (Kosmas Chatzimichalis) * Fix a failing test due to rails date selectors only showing 5 years into the past by default ( [#293] (https://github.com/cucumber/cucumber-rails/pull/293) Thomas Walpole ) * Allow cucumber 2 ( [#293] (https://github.com/cucumber/cucumber-rails/pull/293) Thomas Walpole ) * Add rails 4.2 to test matrix ( [#293] (https://github.com/cucumber/cucumber-rails/pull/293) Thomas Walpole ) * Depend on railties instead of rails ( [#294] (https://github.com/cucumber/cucumber-rails/pull/294) Alexander Lang ) * Fix failing Travis CI tests ( [#305] (https://github.com/cucumber/cucumber-rails/pull/305) Matijs van Zuijlen ) * Allow any cucumber < 3 ( [#306] (https://github.com/cucumber/cucumber-rails/pull/306) Matijs van Zuijlen ) * Add annotations configuration in generator ( [#292] (https://github.com/cucumber/cucumber-rails/pull/292) Bob Showalter ) * Expand support to include mime-types 3 ( [#304] (https://github.com/cucumber/cucumber-rails/pull/304) Austin Ziegler ) * Replace badges with SVG versions ( [#307] (https://github.com/cucumber/cucumber-rails/pull/307) Kevin Goslar ) * Add new line to end of generated database.yml ( [#302] (https://github.com/cucumber/cucumber-rails/pull/302) Kevin Carmody) ## [v1.4.2](https://github.com/cucumber/cucumber-rails/compare/1.4.1...v1.4.2) (2014-10-09) * Updated appraisal dependencies to rspec-rails 3.1.0, gemspec dependency to rspec <= 3.1, and removed turn from rails_4_1 appraisal (Kosmas Chatzimichalis) * Update mime-types dependency to >= 1.16, < 3 ([#289] (https://github.com/cucumber/cucumber-rails/pull/289) Erik Michaels-Ober ) * Upgrade to RSpec 3 ([#290] (https://github.com/cucumber/cucumber-rails/pull/290) Tamir Duberstein ) ## [v1.4.1](https://github.com/cucumber/cucumber-rails/compare/v1.4.0...v1.4.1) (2014-05-10) ### New Features * Added MIT licence in gemspec ([#261] (https://github.com/cucumber/cucumber-rails/issues/261#issuecomment-23260956) Benjamin Fleischer) * Ensure dependency on DatabaseCleaner is not required ([#276] (https://github.com/cucumber/cucumber-rails/pull/276) Matthew O'Riordan) * Added Rails 4.1 support ([#287] (https://github.com/cucumber/cucumber-rails/pull/287) Felix Bünemann) * Modified appraisal instructions in README.md (Kosmas Chatzimichalis) * Added Gemnasium support (Kosmas Chatzimichalis) * Various code enhancements based on PullReview suggestions (Kosmas Chatzimichalis) ### Removed Features * Mongo step definition ([#263] (https://github.com/cucumber/cucumber-rails/issues/263) Aslak Hellesøy ) ### Bugfixes * Prevent MiniTest running `at_exit` when running cucumber ([#253](https://github.com/cucumber/cucumber-rails/issues/253) Steve Tooke) * `bundle exec rake` runs minitest with cucumber options and raises exception ([#252] (https://github.com/cucumber/cucumber-rails/issues/252) Peter Bollenbeck) * Various bundler related fixes ([#264] (https://github.com/cucumber/cucumber-rails/pull/264) Erik Michaels-Ober ) * Additional gemspec cleanup ([#265] (https://github.com/cucumber/cucumber-rails/pull/265) Erik Michaels-Ober ) * Added mime-types runtime dependency to fix bundle install issue ([#273] (https://github.com/cucumber/cucumber-rails/pull/273) Kosmas Chatzimichalis) * Removed mongoid gem from Appraisal ([#274] (https://github.com/cucumber/cucumber-rails/pull/274) Kosmas Chatzimichalis) * Amend typo in select_dates_and_times.rb comments ([#268] (https://github.com/cucumber/cucumber-rails/pull/268) Erik Eide) * Keep empty step_definitions directories ([#249] (https://github.com/cucumber/cucumber-rails/pull/249) Iain D Broadfoot) * Remove obsolete link for config.cache_classes to false ([#271] (https://github.com/cucumber/cucumber-rails/issues/271) Andrew Premdas ) ## [v1.4.0](https://github.com/cucumber/cucumber-rails/compare/v1.3.1...v1.4.0) (2013-08-23) ### New Features * New test raising_errors.feature to test raising routing errors that replaced the earlier routing.feature * Added recommendation in README.md for running install scripts after upgrading (Joost Baaij) * Describe configuration option 'autorun_database_cleaner' in README ([#255](https://github.com/cucumber/cucumber-rails/pull/255) Martin Eismann) ### Changed Features * Gemspec in 1.3.1 doesn't allow usage with rails 4 ([#244](https://github.com/cucumber/cucumber-rails/issues/244) Fabian Schwahn) ### Removed Features * routing.feature code was actually testing the raising of errors so it was renamed to raising_errors.feature and slightly changed to deal with rails 4 changes in public folder * multiple_databases.feature was removed as it was actually testing DatabaseCleaner behaviour * pre_bundler.feature was removed as it is no longer relevant * mongodb feature was removed as is there is no mongodb code in cucumber-rails codebase ### Bugfixes * Fixed tests so they pass in Rails 4 and updated gemspec ([#247](https://github.com/cucumber/cucumber-rails/pull/247) Dave Brace) * Allow use with Rails 4 ([#254](https://github.com/cucumber/cucumber-rails/pull/254) Marnen Laibow-Koser) * (dumb) Fix for Rails4 ([#256](https://github.com/cucumber/cucumber-rails/pull/256) Jon Rowe) * Revert "Merge pull request #256 from JonRowe/dumb_fix_for_rails4_test_he... ([#258](https://github.com/cucumber/cucumber-rails/pull/258) Kosmas Chatzimichalis) ## [v1.3.1](https://github.com/cucumber/cucumber-rails/compare/v1.3.0...v1.3.1) (2013-03-15) ### New Features * Multiple-gemfile testing and travis configuration ([#240](https://github.com/cucumber/cucumber-rails/pull/240) Simon Coffey) ### Changed Features * Fix a typo in a template ([#228](https://github.com/cucumber/cucumber-rails/pull/228) Robin Dupret) * Depend upon the generic test:prepare task ([#230](https://github.com/cucumber/cucumber-rails/pull/230) Graeme Mathieson) * Allow users to disable database_cleaner hooks ([#232](https://github.com/cucumber/cucumber-rails/pull/232) Simon Coffey) * Rails 4.0.0-beta ActionController::Integration depreciation fix ([#234](https://github.com/cucumber/cucumber-rails/pull/234) Daniel Bruns) ## [v1.3.0](https://github.com/cucumber/cucumber-rails/compare/v1.2.1...v1.3.0) (2012-02-19) ### New Features * JavaScript database strategies should take options ([#192](https://github.com/cucumber/cucumber-rails/issues/192), [#195](https://github.com/cucumber/cucumber-rails/pull/195) Thomas Walpole) ### Changed features * select_date arguments should be reversed ([#190](https://github.com/cucumber/cucumber-rails/issues/190), [#191](https://github.com/cucumber/cucumber-rails/pull/191) Gavin Hughes) ## [v1.2.1](https://github.com/cucumber/cucumber-rails/compare/v1.2.0...v1.2.1) (2011-12-04) ### New features * Allow ability to use deletion as a javascript database strategy ([#185](https://github.com/cucumber/cucumber-rails/pull/185) Thijs de Vries) * Support custom JS strategies ([#184](https://github.com/cucumber/cucumber-rails/pull/184) Michael Pabst) ## [v1.2.0](https://github.com/cucumber/cucumber-rails/compare/v1.1.1...v1.2.0) (2011-11-03) ### Removed features * The (deprecated) tableish method has been removed. See https://gist.github.com/1299371 for an alternative. (Aslak Hellesøy) ### Bugfixes * Non-threadsafe database connections shared between threads ([#166](https://github.com/cucumber/cucumber-rails/issues/166) Matt Wynne) ## [v1.1.1](https://github.com/cucumber/cucumber-rails/compare/v1.1.0...v1.1.1) (2011-10-03) ### Removed features The `cucumber:feature` generator has been removed. The reasoning behind this is the same as for removing `web_steps.rb`, `paths.rb` and `selectors.rb` in v1.1.0. ## [v1.1.0](https://github.com/cucumber/cucumber-rails/compare/v1.0.6...v1.1.0) (2011-09-28) ### Removed features The following files will no longer be generated if you are running `rails generate cucumber:install`: * features/step_definitions/web_steps.rb * features/support/paths.rb * features/support/selectors.rb The reason behind this is that the steps defined in `web_steps.rb` leads people to write scenarios of a very imperative nature that are hard to read and hard to maintain. Cucumber scenarios should not be a series of steps that describe what a user clicks. Instead, they should express what a user *does*. Example: Given I have signed up as "user@host.com" with a Step Definition that perhaps looks like this: Given /^I have signed up as "([^"]*)"$/ do |email| visit(signup_path) fill_in('Email', :with => email) fill_in('Password', :with => 's3cr3t') fill_in('Password Confirmation', :with => 's3cr3t') click_button('Sign up') end Moving user interface details from the scenarios and down to the step definitions makes scenarios much easier to read. If you change the user interface you only have to change a step definition or two instead of a lot of scenarios that explicitly describe how to sign up. You can learn more about the reasoning behind this change at the following links: * [Cucumber mailing list: Removing web_steps.rb in Cucumber 1.1.0](http://groups.google.com/group/cukes/browse_thread/thread/26f80b93c94f2952) * [Cucumber-Rails issue #174: Remove web_steps.rb since it encourages people to write poor tests.](https://github.com/cucumber/cucumber-rails/issues/174) * [Refuctoring your Cukes by Matt Wynne](http://skillsmatter.com/podcast/home/refuctoring-your-cukes) * [Imperative vs Declarative Scenarios in User Stories by Ben Mabey](http://benmabey.com/2008/05/19/imperative-vs-declarative-scenarios-in-user-stories.html) * [Whose domain is it anyway? by Dan North](http://dannorth.net/2011/01/31/whose-domain-is-it-anyway/) * [You're Cuking it Wrong by Jonas Nicklas](http://elabs.se/blog/15-you-re-cuking-it-wrong) You can learn more about what Capybara has to offer in Capybara's [README](https://github.com/jnicklas/capybara). ## [v1.0.6](https://github.com/cucumber/cucumber-rails/compare/v1.0.5...v1.0.6) (2011-09-25) ### Bugfixes * Fix deprecation warnings ([#169](https://github.com/cucumber/cucumber-rails/issues/169), [#170](https://github.com/cucumber/cucumber-rails/pull/170) Micah Geisel) * Deprecate #tableish. The Capybara::Node::Finders API has obsoleted the need for it. ([#145](https://github.com/cucumber/cucumber-rails/issues/145) Aslak Hellesøy) ## [v1.0.5](https://github.com/cucumber/cucumber-rails/compare/v1.0.4...v1.0.5) (2011-09-14) ### Bugfixes * No = dependencies in gemspec, since rubies with old YAML (sych) can't read them. (Aslak Hellesøy) ## [v1.0.4](https://github.com/cucumber/cucumber-rails/compare/v1.0.3...v1.0.4) (2011-09-12) ### Bugfixes * Active_record hook prevents features that access multiple database from running correctly ([#152](https://github.com/cucumber/cucumber-rails/issues/152) winnipegtransit) ## [v1.0.3](https://github.com/cucumber/cucumber-rails/compare/v1.0.2...v1.0.3) (2011-09-11) ### Bugfixes * sqlite3-ruby is now sqlite3 ([#158](https://github.com/cucumber/cucumber-rails/pull/158) Trung Le) * Broken link in the USAGE file of the features generator ([#156](https://github.com/cucumber/cucumber-rails/pull/156) Pablo Alonso García) * Rails destroy cucumber:feature deletes the steps folder, even though it's not empty. ([#154](https://github.com/cucumber/cucumber-rails/pull/154]), [#111](https://github.com/cucumber/cucumber-rails/issues/111) mblake) * Adjust select_date, select_time xpaths so they work when scoped in the document ([#151](https://github.com/cucumber/cucumber-rails/pull/151) Thomas Walpole) * Extend javascript emulation to handle rails CSRF protection ([#164](https://github.com/cucumber/cucumber-rails/pull/164) Jonathon M. Abbott) * Add steps for finding fields with errors ([#162](https://github.com/cucumber/cucumber-rails/pull/162) Mike Burns) ## [v1.0.2](https://github.com/cucumber/cucumber-rails/compare/v1.0.1...v1.0.2) (2011-06-26) ### Bugfixes * Removed the dependency on rack-test, since it is not used directly. v1.0.1 was incompatible with Rails 3.0.9. (Aslak Hellesøy) ## [v1.0.1](https://github.com/cucumber/cucumber-rails/compare/v1.0.0...v1.0.1) (2011-06-25) ### New Features * Added a @no-database-cleaner tag you can add if you don't want to run DatabaseCleaner. Useful for debugging if you want to leave data in the database. Typical use case is to run `rails server --environment test` to look at/try app with data from test. (Aslak Hellesøy) * History file is now in Markdown format. (Aslak Hellesøy) ## [v1.0.0](https://github.com/cucumber/cucumber-rails/compare/v0.5.2...v1.0.0) (2011-06-20) ### New Features * Upgraded Cucumber dependency to 1.0.0. (Aslak Hellesøy) ## [v0.5.2](https://github.com/cucumber/cucumber-rails/compare/v0.5.1...v0.5.2) (2011-06-07) ### New Features * Upgraded to Capybara 1.0.0.rc1 (Aslak Hellesøy) * Add stats to generator (#144 Aslak Hellesøy) ## [v0.5.1](https://github.com/cucumber/cucumber-rails/compare/v0.5.0...v0.5.1) (2011-05-25) ### Bugfixes * Mixed DB access feature for @javascript drivers (#142 Alexander Mankuta) * cucumber:feature and integers. not creating feature correctly (#30 John Ivanoff, Aslak Hellesøy) * New project can't find capybara's "visit" (#143 Aslak Hellesøy) * rails generate cucumber:install attempts double run (#140 Aslak Hellesøy) ## [v0.5.0](https://github.com/cucumber/cucumber-rails/compare/v0.5.0.beta1...v0.5.0) (2011-05-17) ### Bugfixes * undefined method `add_assertion' for nil:NilClass (#96, #97, #98 Aslak Hellesøy) * Capybara name error from env.rb (#125 Aslak Hellesøy) * Fixed date-localization bug (#138 Michael Opitz) ## [v0.5.0.beta1](https://github.com/cucumber/cucumber-rails/compare/v0.4.1...v0.5.0.beta1) (2011-05-09) ### Removed features * Dropped support for Rails 2 (Aslak Hellesøy) * Dropped support for Webrat (Aslak Hellesøy) * Removed database cleaner strategy overrides (#134 Daniel Morrison, Daniel Duvall) ### Improvements * Upgrade to Capybara 1.0.0.beta1 or newer (#129, #130 Simon Menke, Klaus Hartl, Aslak Hellesøy) * Generated paths.rb cleanup (#133 Tim Pope) * Allow css pseudo-classes in scopers (#122 twalpole) ## [v0.4.1](https://github.com/cucumber/cucumber-rails/compare/v0.4.0...v0.4.1) (2011-04-05) ### Bugfixes * Fixed incorrect warning in generated files. (#115 Emanuele Vicentini) * Fixed incorrect hooks for DatabaseCleaner (#113 Markus Bengts) * Throw an error if the user forgot to add DatabaseCleaner to the Gemfile, allowing them to decide whether or not to use it. (#36 Aslak Hellesøy, Ryan Bigg) ## [v0.4.0](https://github.com/cucumber/cucumber-rails/compare/v0.3.2...v0.4.0) (2011-03-20) ### New Features * Add selectors helper (#63 Bodaniel Jeanes) * Capybara date stepdefs (#66 Rob Holland) * The World now includes Rack::Test::Methods, allowing get, post, put delete (Aslak Hellesøy) ### Bugfixes * Allow setting rails root (#102, #103, Fabio Kreusch) * Fix Date selection steps and helpers (#93, #99, #100, #101, #109 James Herdman, John Ferlito, twalpole, Geoff Drake, Ricky Robinson, Michael Fleet) * Can not run cucumber-rails (0.4.0.beta.1) with cucumber (0.10.0) (#89 Aslak Hellesøy) * Installing cucumber-rails without a database.yml fails (#61 Aslak Hellesøy) * Fix #click_link compatibility with Capybara 0.4. (#54, #77, #78, #80 Aslak Hellesøy) * Support for projects using other ORMs than ActiveRecord (or nothing at all). (#18, #22, #46, #85, #86, #87, #90 Aslak Hellesøy) * @allow-rescue not working in rails 3 (#31 Joe Ferris, Aslak Hellesøy) * Gem dependency on Nokogiri (for #tableish). (#53 Aslak Hellesøy) ### Removed Features * Automatic detection of RSpec, Capybara and Webrat for install generator. Set gems explicitly in your Gemfile (Rails3) or environment.rb (Rails2) * Then /^(?:|I )should see JSON:$/. Use #get and #last_response instead. See features/rails3.feature. (Aslak Hellesøy) * Cucumber::Rails::World.use_transactional_fixtures. TODO: Explain what to do instead. No more Cucumber::Rails::World.use_transactional_fixtures = false. Use DatabaseCleaner.strategy = :none instead ## [v0.3.2](https://github.com/cucumber/cucumber-rails/compare/v0.3.1...v0.3.2) (2010-06-06) The `rails-2.3.x` support branch branches off from here. * web_steps.rb uses "([^"]*)" instead of "([^\"]*)" (Aslak Hellesøy) * Renamed cucumber:skeleton to cucumber:install (Rails 3 generator). (Aslak Hellesøy) * Upgraded to be compatible with rspec 2.0.0.beta.10 (#35 Gabor Ratky, Pete Yandell) ## [v0.3.1](https://github.com/cucumber/cucumber-rails/compare/v0.3.0...v0.3.1) (2010-05-04) This release has a lot of bugfixes! The test suite (based on Aruba) verifies that Cucumber-Rails now works with various combinations of: * Cucumber 0.6.x/0.7.2 * Rails2/Rails3 * RSpec1/RSpec2/Test-Unit/Mini-Uint * Webrat/CapyBara * MRI 1.8.6/1.8.7/1.9.1 This one requires a special mention: The handy (but error prone) rerun functionality has moved to a separate rerun profile, so all rerun.txt related issues should now be gone. * New Capybara Step Definitions for Dates. (Rob Holland) * Steps now recognise "Given I am on the users page" etc. (Solomon White) * Relegate rerun to its own profile and rake task (Mike Sassak) * Added new Then /^(?:|I )should see JSON:$/ step definition to Capybara - useful for REST. (Aslak Hellesøy) * The #tableish method now understands tables with colspan and rowspan * Support RSpec 2 (Johan Kiviniemi, Aslak Hellesøy, Rolf Bjaanes) * Added @no-js-emulation, which turns off javascript emulation for delete links when not using browser testing. (Rob Holland, Aslak Hellesøy) * Korean translation (Shim Taewon) ### Bugfixes * No longer need to install the test-unit gem on 1.9.1 (Aslak Hellesøy) * capybara rack-test field should contain step support for textarea (#28 Nicholas Rutherford) * "Rspec is not missing constant Matchers!" error. (#27 David Chelimsky, Aslak Hellesøy) * @culerity tag breaks Rails 3 RESTful helpers (#17 Aslak Hellesøy) ## [v0.3.0](https://github.com/cucumber/cucumber-rails/compare/v0.2.4...v0.3.0) (2010-02-26) This is a major release since we're now supporting both Rails 3 and RSpec 2. Older versions (Rails 2 and RSpec 1) are still supported. ### New Features * Support for both Rails-2.x and Rails-3.x (#10 Kristian Mandrup, Aleksey Gureiev, Ashley Moran, Aslak Hellesøy) * Support for both RSpec-1.x and RSpec-2.x (Louis Rose, Aslak Hellesøy) * Features will default to Javascript emulation unless you turn it off with @culerity, (Aslak Hellesøy) * Japanese translation. (MOROHASHI Kyosuke) ### Bugfixes * Support projects that don't use ActiveRecord (#14 Aslak Hellesøy) * Running test/unit tests when creating a skeleton (#12 Aleksey Gureiev) * Inform that config/database.yml is overwritten, be smarter about it and inform the user that it is forced. (#15 Aslak Hellesøy) * Reverts changes from issue #5 where verification of query string params was added to the step for being on a page. Adds step discussed in issue #11 for verification of query string. (#5, #11 Eric Milford) * Fixed typos in Capybara's web steps (has_not_xpath? => has_no_xpath?) (Thorbjørn Hermansen, Carlos Antonio da Silva) ### New Features * Added Danish translation (Kristian Mandrup) * Using Gemfile for Rails 3. Tidies it up and adds cucumber gems only if not already present! (Kristian Mandrup) * Added Generators wrapper module for Rails 3 generators so they are now all in Cucumber::Generators (Kristian Mandrup) ### Bugfixes * Started to work on solutions for generating suitable support files depending on Rails version - see skeleton_base.rb#create_feature_support and templates/support ## [v0.2.4](https://github.com/cucumber/cucumber-rails/compare/v0.2.3...v0.2.4) (2010-01-18) ### New Features * Added Spanish translation (Gabriel) ### Bugfixes * Fixed some broken Webrat/Test::Unit step definitions. (Aslak Hellesøy) * Better Javascript emulation with Capybara (#7 Thorbjørn Hermansen) * Removed stray quote in i18n web_steps.rb (Gabriel) * Update hooks to new boolean logic (#6 Jon Larkowski, Michael MacDonald) * Fixed incompatibility with Rails 3 (Mutwin Kraus) * Fixed broken "fill in the following" step for Capybara web_steps (Lenny Marks) * Capybara web_steps.rb with_scope didn't work in nested steps (Lenny Marks) * Fixed "should not see" steps in web_steps.rb to use the correct selector (Toni Tuominen) ## [v0.2.3](https://github.com/cucumber/cucumber-rails/compare/v0.2.2...v0.2.3) (2010-01-03) ### New Features * The #tableish Proc can return Strings as well as Nokogiri nodes now. (Aslak Hellesøy) ### Bugfixes * Handle all types of URIs in "I should be on ..." steps. (#5 Andrew D. Smith) ## [v0.2.2](https://github.com/cucumber/cucumber-rails/compare/v0.2.1...v0.2.2) (2009-12-21) ### Bugfixes * Fix bad link in gemspec. (Aslak Hellesøy) * Unified file attaching step names. (Jiří Zajpt) * Fix typos in variable names in several step definitions. (Jiří Zajpt) * cucumber.rake finds the wrong vendored cucumber when a plugin name starts with "cucumber" (#4 James Herdman, Paco Benavent, Aslak Hellesøy) ### New features * Czech translations. (Jiří Zajpt) ## [v0.2.1](https://github.com/cucumber/cucumber-rails/compare/v0.2.0...v0.2.1) (2009-12-16) Small bugfix release ### Bugfixes * Made sure database_cleaner is always set up as a dependency in config/environments/cucumber.rb. (Aslak Hellesøy) This is the first release of cucumber-rails, which was factored out of cucumber. We're calling it 0.2.0 just because we did some prereleases in the 0.1 series, and to celebrate that cucumber-rails now supports Capybara as an alternative to Webrat. ### UPGRADING FROM A PREVIOUS CUCUMBER SETUP 1. Remove your features/support/version_check.rb 1. Remove your features/step_definitions/webrat_steps.rb If you have added your own custom step definitions to this file, put them in a different file under features/step_definitions 1. run "ruby script/generate cucumber --help" to see what options you have. 1. run "ruby script/generate cucumber" - plus whatever options you think fit for you. Answer "n" (no) when asked to overwrite paths.rb. Answer "y" (yes) when asked to overwrite other files, but do "d" (diff) first. If you have edits in some of these files that you want to keep, store the diff in a temporary file and reapply after you have overwritten the file. ALso consider adding your custom code to another file that won't be overwritten the next time you upgrade. Many people have edits in their env.rb file. This is something you should try to avoid in the future. Instead, keep your custom setup in a different file under features/support - Cucumber loads all files under features/**/*.rb anyway. If you have a Spork setup, see the end of this thread: http://groups.google.com/group/cukes/browse_thread/thread/475385cc26377215 ### New features * Added an @emulate_rails_javascript tag that will emulate onclick with Capybara (Aslak Hellesøy, Rob Holland) * Added a smart config/cucumber.yml file that will rerun previously failing scenarios (Aslak Hellesøy) * Support for Capybara. Run "script/generate --capybara" if you want that. (Rob Holland, Aslak Hellesøy) * New #tableish method to extract table-like data from a HTML page. Pure Nokogiri/CSS3/XPath. (Aslak Hellesøy) ### Bugfixes * Webrat step "Then I should be on" should use request_uri instead of path for missing query string parameters (ZhangJinzhu) * Added MIME type parameter to attach file step definition (Felix Flores) * Added check when including ActiveSupport::Testing::SetupAndTeardown for older Rails versions (Jeremy Durham) cucumber-rails-1.4.3/Appraisals0000644000004100000410000000455012657205273016523 0ustar www-datawww-dataappraise "rails_3_0" do gem "rails", "~> 3.0.20" gem "capybara", "~> 2.0.2" gem "turn", "~> 0.9.6" gem "rspec-rails", "~> 3.1.0" gem "jquery-rails", "~> 2.2.1" gem "uglifier", "~> 2.1.0" gem "sqlite3", "~> 1.3.7" gem "database_cleaner", "~> 1.0.1" end appraise "rails_3_1" do gem "rails", "~> 3.1.11" gem "capybara", "~> 2.0.2" gem "turn", "~> 0.9.6" gem "rspec-rails", "~> 3.1.0" gem "sass-rails", "~> 3.1.7" gem "coffee-rails", "~> 3.1.1" gem "jquery-rails", "~> 2.2.1" gem "uglifier", "~> 2.1.0" gem "sqlite3", "~> 1.3.7" gem "database_cleaner", "~> 1.0.1" end appraise "rails_3_2" do gem "rails", "~> 3.2.12" gem "capybara", "~> 2.0.2" gem "turn", "~> 0.9.6" gem "rspec-rails", "~> 3.1.0" gem "sass-rails", "~> 3.2.6" gem "coffee-rails", "~> 3.2.2" gem "jquery-rails", "~> 2.2.1" gem "uglifier", "~> 2.1.0" gem "sqlite3", "~> 1.3.7" gem "database_cleaner", "~> 1.0.1" end appraise "capybara_1_1" do gem "capybara", "~> 1.1.2" gem "rails", "~> 3.2.12" gem "turn", "~> 0.9.6" gem "rspec-rails", "~> 3.1.0" gem "sass-rails", "~> 3.2.6" gem "coffee-rails", "~> 3.2.2" gem "jquery-rails", "~> 2.2.1" gem "uglifier", "~> 2.1.0" gem "sqlite3", "~> 1.3.7" gem "database_cleaner", "~> 1.0.1" end appraise "rails_4_0" do gem "protected_attributes", "~> 1.0.3" gem "rails", "~> 4.0.0" gem "railties", "~> 4.0.0" gem "capybara", "~> 2.0.2" gem "turn", "~> 0.9.6" gem "rspec-rails", "~> 3.1.0" gem "sass-rails", "~> 4.0.0" gem "coffee-rails", "~> 4.0.0" gem "jquery-rails", "~> 2.2.1" gem "uglifier", "~> 2.1.0" gem "sqlite3", "~> 1.3.7" gem "database_cleaner", "~> 1.0.1" end appraise "rails_4_1" do gem "protected_attributes", "~> 1.0.3" gem "rails", "~> 4.1.0" gem "railties", "~> 4.1.0" gem "capybara", "~> 2.0.2" gem "rspec-rails", "~> 3.1.0" gem "sass-rails", "~> 4.0.0" gem "coffee-rails", "~> 4.0.0" gem "jquery-rails", "~> 2.2.1" gem "uglifier", "~> 2.1.0" gem "sqlite3", "~> 1.3.7" gem "database_cleaner", "~> 1.0.1" end appraise "rails_4_2" do gem "rails", "~> 4.2.1" gem "railties", "~> 4.2.1" gem "capybara", "~> 2.4.4" gem "selenium-webdriver", "~> 2.0" gem "rspec-rails", "~> 3.1.0" gem "sass-rails", "~> 5.0" gem "coffee-rails", "~> 4.1.0" gem "jquery-rails" gem "uglifier", "~> 2.1.0" gem "sqlite3", "~> 1.3.7" gem "database_cleaner", "~> 1.0.1" end cucumber-rails-1.4.3/README.md0000644000004100000410000001112112657205273015750 0ustar www-datawww-data# Cucumber-Rails [![Gem Version](https://badge.fury.io/rb/cucumber-rails.svg)](http://badge.fury.io/rb/cucumber-rails) [![Build Status](https://secure.travis-ci.org/cucumber/cucumber-rails.svg?branch=master)](http://travis-ci.org/cucumber/cucumber-rails) [![Code Climate](https://codeclimate.com/github/cucumber/cucumber-rails.svg)](https://codeclimate.com/github/cucumber/cucumber-rails) [![Dependency Status](https://gemnasium.com/Kosmas/cucumber-rails.svg)](https://gemnasium.com/Kosmas/cucumber-rails) [![PullReview stats](https://www.pullreview.com/github/cucumber/cucumber-rails/badges/master.svg?)](https://www.pullreview.com/github/cucumber/cucumber-rails/reviews/master) Cucumber-Rails brings Cucumber to Rails 3.x and 4.x. For Rails 2.3.x support, see the [rails-2.3.x branch](https://github.com/cucumber/cucumber-rails/tree/rails-2.3.x). ## Installation Before you can use the generator, add the gem to your project's Gemfile as follows: group :test do gem 'cucumber-rails', :require => false # database_cleaner is not required, but highly recommended gem 'database_cleaner' end Then install it by running: bundle install Learn about the various options: rails generate cucumber:install --help Finally, bootstrap your Rails app, for example: rails generate cucumber:install ## Running Cucumber With Rake: rake cucumber Without Rake: [bundle exec] cucumber ## Configuration options By default, cucumber-rails runs `DatabaseCleaner.start` and `DatabaseCleaner.clean` before and after your scenarios. You can disable this behaviour like so: # features/support/env.rb # ... Cucumber::Rails::Database.autorun_database_cleaner = false ## Upgrading from a previous version When upgrading from a previous version it is recommended that you rerun: rails generate cucumber:install ## Bugs and feature requests The *only* way to have a bug fixed or a new feature accepted is to describe it with a Cucumber feature. Let's say you think you have found a bug in the cucumber:install generator. Fork this project, clone it to your workstation and check out a branch with a descriptive name: git clone git@github.com:you/cucumber-rails.git git checkout -b bug-install-generator Start by making sure you can run the existing features. Now, create a feature that demonstrates what's wrong. See the existing features for examples. When you have a failing feature that reproduces the bug, commit, push and send a pull request. Someone from the Cucumber-Rails team will review it and hopefully create a fix. If you know how to fix the bug yourself, make a second commit (after committing the failing feature) before you send the pull request. ### Setting up your environment I strongly recommend rvm and ruby 1.9.3. When you have that, cd into your cucumber-rails repository and: gem install bundler bundle install ### Running all tests With all dependencies installed, all specs and features should pass: rake ### Running Appraisal suite In order to test against multiple versions of key dependencies, the [Appraisal](https://github.com/thoughtbot/appraisal) is used to generate multiple gemfiles, stored in the `gemfiles/` directory. Normally these will only run on Travis; however, if you want to run the full test suite against all gemfiles, run the following commands: appraisal install appraisal rake test To run the suite against a named gemfile, use the following: appraisal rails_4_1 rake test To remove and rebuild the different gemfiles (for example, to update a rails version or its dependencies), use the following: appraisal install ### Adding dependencies To support the multiple-gemfile testing, when adding a new dependency the following rules apply: 1. If it's a runtime dependency of the gem, add it to the gemspec 2. If it's a primary development dependency, add it to the gemspec 3. If it's a dependency of a generated rails app in a test, add it to the Gemfile (for local test runs) and each appraisal section (if necessary). For example, rspec is a primary development dependency, so it lives in the gemspec. By contrast, coffee-rails is a dependency of apps generated with rails 3.1 and 3.2, so lives in the main Gemfile and the rails 3.1 and 3.2 appraisal sections. ### NOTE If you get an error while trying to run the tests locally, similar to the one below: Could not find a JavaScript runtime. See https://github.com/sstephenson/execjs for a list of available runtimes. (ExecJS::RuntimeUnavailable) you would need to install a javascript runtime. You can do that in ubuntu by using: sudo apt-get install nodejs cucumber-rails-1.4.3/cucumber-rails.gemspec0000644000004100000410000000356612657205273020771 0ustar www-datawww-data# -*- encoding: utf-8 -*- $LOAD_PATH.unshift File.expand_path("../lib", __FILE__) Gem::Specification.new do |s| s.name = 'cucumber-rails' s.version = '1.4.3' s.authors = ["Aslak Hellesøy", "Dennis Blöte", "Rob Holland"] s.description = "Cucumber Generator and Runtime for Rails" s.summary = "#{s.name}-#{s.version}" s.email = 'cukes@googlegroups.com' s.homepage = "http://cukes.info" s.license = 'MIT' s.add_runtime_dependency('capybara', ['>= 1.1.2', '< 3']) s.add_runtime_dependency('cucumber', ['>= 1.3.8', '< 3']) s.add_runtime_dependency('nokogiri', '~> 1.5') s.add_runtime_dependency('railties', ['>= 3', '< 5']) s.add_runtime_dependency('mime-types', ['>= 1.16', '< 4']) # Main development dependencies s.add_development_dependency('ammeter', ['>= 0.2.9', '< 1.1.3']) s.add_development_dependency('appraisal', '>= 0.5.1') s.add_development_dependency('aruba', '~> 0.8.0') s.add_development_dependency('builder', ['>= 2.1.2', '< 4']) s.add_development_dependency('bundler', '>= 1.3.5') s.add_development_dependency('selenium-webdriver', '>= 2.45.0') s.add_development_dependency('database_cleaner', '>= 0.7.2') s.add_development_dependency('factory_girl', '>= 3.2') s.add_development_dependency('rake', '>= 0.9.2.2') s.add_development_dependency('rspec', '>= 2.2', '<= 3.1') s.add_development_dependency('rails') # For Documentation: s.add_development_dependency('bcat', '>= 0.6.2') s.add_development_dependency('rdiscount', '>= 2.0.7') s.add_development_dependency('rdoc', '>= 3.4') s.add_development_dependency('yard', '>= 0.8.7') s.rubygems_version = ">= 1.6.1" s.files = `git ls-files`.split("\n") s.test_files = `git ls-files -- {spec,features}/*`.split("\n") s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) } s.require_path = "lib" end