From 53ecf8718fa2992ae7c4333aa099d8f2cfc9f9f8 Mon Sep 17 00:00:00 2001 From: www Date: Thu, 27 Nov 2014 19:43:04 +0800 Subject: [PATCH 01/83] =?UTF-8?q?[api]=E7=94=A8=E6=88=B7=E8=AE=A4=E8=AF=81?= =?UTF-8?q?=E5=AE=8C=E6=88=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Gemfile | 2 + Gemfile.lock | 44 + app/api/mobile/api.rb | 39 + app/api/mobile/apis/auth.rb | 23 + app/api/mobile/apis/courses.rb | 39 + app/api/mobile/apis/users.rb | 30 + app/models/api_key.rb | 21 + config/routes.rb | 4 +- db/migrate/20141127015431_create_api_keys.rb | 14 + db/schema.rb | 2650 +++++++++--------- 10 files changed, 1545 insertions(+), 1321 deletions(-) create mode 100644 app/api/mobile/api.rb create mode 100644 app/api/mobile/apis/auth.rb create mode 100644 app/api/mobile/apis/courses.rb create mode 100644 app/api/mobile/apis/users.rb create mode 100644 app/models/api_key.rb create mode 100644 db/migrate/20141127015431_create_api_keys.rb diff --git a/Gemfile b/Gemfile index 91e72a745..5288edd52 100644 --- a/Gemfile +++ b/Gemfile @@ -8,6 +8,7 @@ unless RUBY_PLATFORM =~ /w32/ gem 'zip-zip' end +gem 'grape', '~> 0.9.0' gem 'seems_rateable', path: 'lib/seems_rateable' gem "rails", "3.2.13" gem "jquery-rails", "~> 2.0.2" @@ -18,6 +19,7 @@ gem "builder", "3.0.0" gem 'acts-as-taggable-on', '2.4.1' group :development do + gem 'puma' gem 'better_errors', path: 'lib/better_errors' gem 'rack-mini-profiler', path: 'lib/rack-mini-profiler' end diff --git a/Gemfile.lock b/Gemfile.lock index 6916219a9..58f069ac1 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -52,6 +52,10 @@ GEM acts-as-taggable-on (2.4.1) rails (>= 3, < 5) arel (3.0.3) + axiom-types (0.1.1) + descendants_tracker (~> 0.0.4) + ice_nine (~> 0.11.0) + thread_safe (~> 0.3, >= 0.3.1) builder (3.0.0) capybara (2.4.1) mime-types (>= 1.16) @@ -68,6 +72,8 @@ GEM cocaine (0.5.4) climate_control (>= 0.0.3, < 1.0) coderay (1.0.9) + coercible (1.0.0) + descendants_tracker (~> 0.0.1) coffee-rails (3.2.2) coffee-script (>= 2.2.0) railties (~> 3.2.0) @@ -75,6 +81,9 @@ GEM coffee-script-source execjs coffee-script-source (1.7.1) + descendants_tracker (0.0.4) + thread_safe (~> 0.3, >= 0.3.1) + equalizer (0.0.9) erubis (2.7.0) execjs (2.2.1) factory_girl (4.4.0) @@ -83,6 +92,16 @@ GEM ffi (1.9.3) ffi (1.9.3-x86-mingw32) formatador (0.2.5) + grape (0.9.0) + activesupport + builder + hashie (>= 2.1.0) + multi_json (>= 1.3.2) + multi_xml (>= 0.5.2) + rack (>= 1.3.0) + rack-accept + rack-mount + virtus (>= 1.0.0) guard (2.6.1) formatador (>= 0.2.4) listen (~> 2.7) @@ -98,9 +117,12 @@ GEM guard-test (1.0.0) guard (>= 1.8) test-unit (~> 2.2) + hashie (3.3.1) hike (1.2.3) htmlentities (4.3.2) i18n (0.6.1) + ice_nine (0.11.0) + iconv (1.0.4) journey (1.0.4) jquery-rails (2.0.3) railties (>= 3.1.0, < 5.0) @@ -125,6 +147,7 @@ GEM mocha (1.1.0) metaclass (~> 0.0.1) multi_json (1.10.1) + multi_xml (0.5.5) mysql2 (0.3.11) mysql2 (0.3.11-x86-mingw32) net-ldap (0.3.1) @@ -149,9 +172,15 @@ GEM win32console (~> 1.3) pry-nav (0.2.3) pry (~> 0.9.10) + puma (2.10.1) + rack (>= 1.1, < 2.0) rack (1.4.5) + rack-accept (0.4.5) + rack (>= 0.4) rack-cache (1.2) rack (>= 0.4) + rack-mount (0.8.3) + rack (>= 1.0.0) rack-openid (1.4.2) rack (>= 1.1.0) ruby-openid (>= 2.1.8) @@ -193,6 +222,7 @@ GEM sass-rails rmagick (2.13.2) ruby-openid (2.1.8) + ruby-prof (0.15.2) rubyzip (1.1.6) sass (3.3.10) sass-rails (3.2.6) @@ -224,6 +254,7 @@ GEM libv8 (~> 3.16.14.0) ref thor (0.19.1) + thread_safe (0.3.4) tilt (1.4.1) timers (1.1.0) treetop (1.4.15) @@ -233,10 +264,17 @@ GEM uglifier (2.5.1) execjs (>= 0.3.0) json (>= 1.8.0) + virtus (1.0.3) + axiom-types (~> 0.1) + coercible (~> 1.0) + descendants_tracker (~> 0.0, >= 0.0.3) + equalizer (~> 0.0, >= 0.0.9) websocket (1.0.7) win32console (1.3.2-x86-mingw32) xpath (2.0.0) nokogiri (~> 1.3) + zip-zip (0.3) + rubyzip (>= 1.0.0) PLATFORMS ruby @@ -253,11 +291,13 @@ DEPENDENCIES coffee-rails (~> 3.2.1) factory_girl (~> 4.4.0) fastercsv (~> 1.5.0) + grape (~> 0.9.0) guard-rails (~> 0.5.3) guard-spork (~> 1.5.1) guard-test (~> 1.0.0) htmlentities i18n (~> 0.6.0) + iconv jquery-rails (~> 2.0.2) kaminari mocha (~> 1.1.0) @@ -267,12 +307,15 @@ DEPENDENCIES paperclip (~> 3.5.4) pry pry-nav + puma rack-mini-profiler! rack-openid rails (= 3.2.13) rich (= 1.4.6) rmagick (>= 2.0.0) ruby-openid (~> 2.1.4) + ruby-prof (~> 0.15.1) + rubyzip sass-rails (~> 3.2.3) seems_rateable! selenium-webdriver (~> 2.42.0) @@ -280,3 +323,4 @@ DEPENDENCIES spork-testunit (~> 0.0.8) therubyracer uglifier (>= 1.0.3) + zip-zip diff --git a/app/api/mobile/api.rb b/app/api/mobile/api.rb new file mode 100644 index 000000000..a84ba559c --- /dev/null +++ b/app/api/mobile/api.rb @@ -0,0 +1,39 @@ +module Mobile + + $LOAD_PATH << File.expand_path('..',__FILE__) + + autoload :Auth, 'apis/auth' + autoload :Users, 'apis/users' + autoload :Courses, 'apis/courses' + + class API < Grape::API + version 'v1', using: :path + format :json + + helpers do + def logger + API.logger + end + + def authticate! + error!('Unauthorized. Invalid or expired token.', 401) unless current_user + end + + def current_user + token = ApiKey.where(access_token: params[:token]).first + if token && !token.expired? + @current_user = User.find(token.user_id) + else + nil + end + end + end + + mount Auth + mount Users + mount Courses + + end +end + + diff --git a/app/api/mobile/apis/auth.rb b/app/api/mobile/apis/auth.rb new file mode 100644 index 000000000..41b948a13 --- /dev/null +++ b/app/api/mobile/apis/auth.rb @@ -0,0 +1,23 @@ +module Mobile + class Auth < Grape::API + resource :auth do + desc "Creates and returns access_token if valid login" + params do + requires :login, type: String, desc: 'Username or email' + requires :password, type: String, desc: 'Password' + end + post :login do + user,last_logon = ::User.try_to_login(params[:login], params[:password]) + if user + ::ApiKey.delete_all(user_id: user.id) + key = ::ApiKey.create!(user_id: user.id) + {token: key.access_token}.merge(user.as_json).merge(user.extensions.as_json) + else + error!('Unauthorized.', 401) + end + end + end + end +end + + diff --git a/app/api/mobile/apis/courses.rb b/app/api/mobile/apis/courses.rb new file mode 100644 index 000000000..7518e544b --- /dev/null +++ b/app/api/mobile/apis/courses.rb @@ -0,0 +1,39 @@ +module Mobile + class Courses < Grape::API + resource :courses do + desc "get all courses" + params do + requires :per_page_count, type: Integer + requires :page, type: Integer, desc: 'current page no' + end + get do + per_page_option = params[:per_page_count] || 10 + page_no = params[:page] || 1 + @courses_all = Course.active.visible. + joins("LEFT JOIN #{CourseStatus.table_name} ON #{Course.table_name}.id = #{CourseStatus.table_name}.course_id") + @course_count = @courses_all.count + @course_pages = Redmine::Pagination::Paginator.new @course_count, per_page_option,page_no + @course_activity_count=Hash.new + @courses_all.each do |course| + @course_activity_count[course.id]=0 + end + @courses = @courses_all.order("created_at desc") + @s_type = 0 + @courses = @courses.offset(@course_pages.offset).limit(@course_pages.per_page) + # @course_activity_count=get_course_activity @courses, @course_activity_count + end + + desc "Return a course" + params do + requires :id, type: Integer + end + route_param :id do + get do + Course.find(params[:id]) + end + end + + end + end +end + diff --git a/app/api/mobile/apis/users.rb b/app/api/mobile/apis/users.rb new file mode 100644 index 000000000..1eaf7c87b --- /dev/null +++ b/app/api/mobile/apis/users.rb @@ -0,0 +1,30 @@ +module Mobile + class Users < Grape::API + resource :users do + desc "get all users" + get do + ['hello'] + end + desc "add a user" + params do + requires :login, type: String, desc: 'username' + requires :email, type: String, desc: 'email' + requires :password, type: String, desc: 'password' + end + post do + user = User.new + user.login = params[:login] + user.mail = params[:email] + user.password = params[:password] + user.password_confirmation = params[:password] + user.activate + if user.save! + UserStatus.create(:user_id => user.id, :changsets_count => 0, :watchers_count => 0) + end + user + end + end + end +end + + diff --git a/app/models/api_key.rb b/app/models/api_key.rb new file mode 100644 index 000000000..e71896bc0 --- /dev/null +++ b/app/models/api_key.rb @@ -0,0 +1,21 @@ +class ApiKey < ActiveRecord::Base + attr_accessible :access_token, :active, :expires_at, :user_id + before_create :generate_access_token + before_create :set_experation + + # validates_presence_of :user_id, :access_token + + def expired? + DateTime.now >= self.expires_at + end + + private + def generate_access_token + self.access_token = SecureRandom.hex + end + + def set_experation + self.expires_at = DateTime.now + 30 + end + +end diff --git a/config/routes.rb b/config/routes.rb index 1d28a9ae6..3d1fc4b81 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -26,10 +26,10 @@ # Example: :via => :get ====> :via => :get RedmineApp::Application.routes.draw do - - #match '/contests/:id/contestnotifications', :controller => 'contestnotifications', :action => 'index' + mount Mobile::API => '/api' + resources :homework_users resources :no_uses delete 'no_uses', :to => 'no_uses#delete' diff --git a/db/migrate/20141127015431_create_api_keys.rb b/db/migrate/20141127015431_create_api_keys.rb new file mode 100644 index 000000000..81a232848 --- /dev/null +++ b/db/migrate/20141127015431_create_api_keys.rb @@ -0,0 +1,14 @@ +class CreateApiKeys < ActiveRecord::Migration + def change + create_table :api_keys do |t| + t.string :access_token + t.datetime :expires_at + t.integer :user_id + t.boolean :active, default: true + + t.timestamps + end + add_index :api_keys, :user_id + add_index :api_keys, :access_token + end +end diff --git a/db/schema.rb b/db/schema.rb index 973e2afbe..8f168efba 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -1,1319 +1,1331 @@ -# encoding: UTF-8 -# This file is auto-generated from the current state of the database. Instead -# of editing this file, please use the migrations feature of Active Record to -# incrementally modify your database, and then regenerate this schema definition. -# -# Note that this schema.rb definition is the authoritative source for your -# database schema. If you need to create the application database on another -# system, you should be using db:schema:load, not running all the migrations -# from scratch. The latter is a flawed and unsustainable approach (the more migrations -# you'll amass, the slower it'll run and the greater likelihood for issues). -# -# It's strongly recommended to check this file into your version control system. - -ActiveRecord::Schema.define(:version => 20141120091234) do - - create_table "activities", :force => true do |t| - t.integer "act_id", :null => false - t.string "act_type", :null => false - t.integer "user_id", :null => false - end - - add_index "activities", ["act_id", "act_type"], :name => "index_activities_on_act_id_and_act_type" - add_index "activities", ["user_id", "act_type"], :name => "index_activities_on_user_id_and_act_type" - add_index "activities", ["user_id"], :name => "index_activities_on_user_id" - - create_table "applied_projects", :force => true do |t| - t.integer "project_id", :null => false - t.integer "user_id", :null => false - end - - create_table "apply_project_masters", :force => true do |t| - t.integer "user_id" - t.string "apply_type" - t.integer "apply_id" - t.integer "status" - t.datetime "created_at", :null => false - t.datetime "updated_at", :null => false - end - - create_table "attachments", :force => true do |t| - t.integer "container_id" - t.string "container_type", :limit => 30 - t.string "filename", :default => "", :null => false - t.string "disk_filename", :default => "", :null => false - t.integer "filesize", :default => 0, :null => false - t.string "content_type", :default => "" - t.string "digest", :limit => 40, :default => "", :null => false - t.integer "downloads", :default => 0, :null => false - t.integer "author_id", :default => 0, :null => false - t.datetime "created_on" - t.string "description" - t.string "disk_directory" - t.integer "attachtype", :default => 1 - t.integer "is_public", :default => 1 - t.integer "copy_from" - end - - add_index "attachments", ["author_id"], :name => "index_attachments_on_author_id" - add_index "attachments", ["container_id", "container_type"], :name => "index_attachments_on_container_id_and_container_type" - add_index "attachments", ["created_on"], :name => "index_attachments_on_created_on" - - create_table "attachmentstypes", :force => true do |t| - t.integer "typeId", :null => false - t.string "typeName", :limit => 50 - end - - create_table "auth_sources", :force => true do |t| - t.string "type", :limit => 30, :default => "", :null => false - t.string "name", :limit => 60, :default => "", :null => false - t.string "host", :limit => 60 - t.integer "port" - t.string "account" - t.string "account_password", :default => "" - t.string "base_dn" - t.string "attr_login", :limit => 30 - t.string "attr_firstname", :limit => 30 - t.string "attr_lastname", :limit => 30 - t.string "attr_mail", :limit => 30 - t.boolean "onthefly_register", :default => false, :null => false - t.boolean "tls", :default => false, :null => false - t.string "filter" - t.integer "timeout" - end - - add_index "auth_sources", ["id", "type"], :name => "index_auth_sources_on_id_and_type" - - create_table "biding_projects", :force => true do |t| - t.integer "project_id" - t.integer "bid_id" - t.integer "user_id" - t.string "description" - t.datetime "created_at", :null => false - t.datetime "updated_at", :null => false - t.string "reward" - end - - create_table "bids", :force => true do |t| - t.string "name" - t.string "budget", :null => false - t.integer "author_id" - t.date "deadline" - t.text "description" - t.datetime "created_on", :null => false - t.datetime "updated_on", :null => false - t.integer "commit" - t.integer "reward_type" - t.integer "homework_type" - t.integer "parent_id" - t.string "password" - t.integer "is_evaluation" - t.integer "proportion", :default => 60 - t.integer "comment_status", :default => 0 - t.integer "evaluation_num", :default => 3 - t.integer "open_anonymous_evaluation", :default => 1 - end - - create_table "boards", :force => true do |t| - t.integer "project_id", :null => false - t.string "name", :default => "", :null => false - t.string "description" - t.integer "position", :default => 1 - t.integer "topics_count", :default => 0, :null => false - t.integer "messages_count", :default => 0, :null => false - t.integer "last_message_id" - t.integer "parent_id" - t.integer "course_id" - end - - add_index "boards", ["last_message_id"], :name => "index_boards_on_last_message_id" - add_index "boards", ["project_id"], :name => "boards_project_id" - - create_table "bug_to_osps", :force => true do |t| - t.integer "osp_id" - t.integer "relative_memo_id" - t.string "description" - t.datetime "created_at", :null => false - t.datetime "updated_at", :null => false - end - - create_table "changes", :force => true do |t| - t.integer "changeset_id", :null => false - t.string "action", :limit => 1, :default => "", :null => false - t.text "path", :null => false - t.text "from_path" - t.string "from_revision" - t.string "revision" - t.string "branch" - end - - add_index "changes", ["changeset_id"], :name => "changesets_changeset_id" - - create_table "changeset_parents", :id => false, :force => true do |t| - t.integer "changeset_id", :null => false - t.integer "parent_id", :null => false - end - - add_index "changeset_parents", ["changeset_id"], :name => "changeset_parents_changeset_ids" - add_index "changeset_parents", ["parent_id"], :name => "changeset_parents_parent_ids" - - create_table "changesets", :force => true do |t| - t.integer "repository_id", :null => false - t.string "revision", :null => false - t.string "committer" - t.datetime "committed_on", :null => false - t.text "comments" - t.date "commit_date" - t.string "scmid" - t.integer "user_id" - end - - add_index "changesets", ["committed_on"], :name => "index_changesets_on_committed_on" - add_index "changesets", ["repository_id", "revision"], :name => "changesets_repos_rev", :unique => true - add_index "changesets", ["repository_id", "scmid"], :name => "changesets_repos_scmid" - add_index "changesets", ["repository_id"], :name => "index_changesets_on_repository_id" - add_index "changesets", ["user_id"], :name => "index_changesets_on_user_id" - - create_table "changesets_issues", :id => false, :force => true do |t| - t.integer "changeset_id", :null => false - t.integer "issue_id", :null => false - end - - add_index "changesets_issues", ["changeset_id", "issue_id"], :name => "changesets_issues_ids", :unique => true - - create_table "code_review_assignments", :force => true do |t| - t.integer "issue_id" - t.integer "change_id" - t.integer "attachment_id" - t.string "file_path" - t.string "rev" - t.string "rev_to" - t.string "action_type" - t.integer "changeset_id" - end - - create_table "code_review_project_settings", :force => true do |t| - t.integer "project_id" - t.integer "tracker_id" - t.datetime "created_at" - t.datetime "updated_at" - t.integer "updated_by" - t.boolean "hide_code_review_tab", :default => false - t.integer "auto_relation", :default => 1 - t.integer "assignment_tracker_id" - t.text "auto_assign" - t.integer "lock_version", :default => 0, :null => false - t.boolean "tracker_in_review_dialog", :default => false - end - - create_table "code_review_user_settings", :force => true do |t| - t.integer "user_id", :default => 0, :null => false - t.integer "mail_notification", :default => 0, :null => false - t.datetime "created_at" - t.datetime "updated_at" - end - - create_table "code_reviews", :force => true do |t| - t.integer "project_id" - t.integer "change_id" - t.datetime "created_at" - t.datetime "updated_at" - t.integer "line" - t.integer "updated_by_id" - t.integer "lock_version", :default => 0, :null => false - t.integer "status_changed_from" - t.integer "status_changed_to" - t.integer "issue_id" - t.string "action_type" - t.string "file_path" - t.string "rev" - t.string "rev_to" - t.integer "attachment_id" - t.integer "file_count", :default => 0, :null => false - t.boolean "diff_all" - end - - create_table "comments", :force => true do |t| - t.string "commented_type", :limit => 30, :default => "", :null => false - t.integer "commented_id", :default => 0, :null => false - t.integer "author_id", :default => 0, :null => false - t.text "comments" - t.datetime "created_on", :null => false - t.datetime "updated_on", :null => false - end - - add_index "comments", ["author_id"], :name => "index_comments_on_author_id" - add_index "comments", ["commented_id", "commented_type"], :name => "index_comments_on_commented_id_and_commented_type" - - create_table "contest_notifications", :force => true do |t| - t.text "title" - t.text "content" - t.datetime "created_at", :null => false - t.datetime "updated_at", :null => false - end - - create_table "contesting_projects", :force => true do |t| - t.integer "project_id" - t.string "contest_id" - t.integer "user_id" - t.string "description" - t.datetime "created_at", :null => false - t.datetime "updated_at", :null => false - t.string "reward" - end - - create_table "contesting_softapplications", :force => true do |t| - t.integer "softapplication_id" - t.integer "contest_id" - t.integer "user_id" - t.string "description" - t.datetime "created_at", :null => false - t.datetime "updated_at", :null => false - t.string "reward" - end - - create_table "contestnotifications", :force => true do |t| - t.integer "contest_id" - t.string "title" - t.string "summary" - t.text "description" - t.integer "author_id" - t.integer "notificationcomments_count" - t.datetime "created_at", :null => false - t.datetime "updated_at", :null => false - end - - create_table "contests", :force => true do |t| - t.string "name" - t.string "budget", :default => "" - t.integer "author_id" - t.date "deadline" - t.string "description" - t.integer "commit" - t.string "password" - t.datetime "created_on", :null => false - t.datetime "updated_on", :null => false - end - - create_table "course_attachments", :force => true do |t| - t.string "filename" - t.string "disk_filename" - t.integer "filesize" - t.string "content_type" - t.string "digest" - t.integer "downloads" - t.string "author_id" - t.string "integer" - t.string "description" - t.string "disk_directory" - t.integer "attachtype" - t.integer "is_public" - t.datetime "created_at", :null => false - t.datetime "updated_at", :null => false - t.integer "container_id", :default => 0 - end - - create_table "course_infos", :force => true do |t| - t.integer "course_id" - t.integer "user_id" - t.datetime "created_at", :null => false - t.datetime "updated_at", :null => false - end - - create_table "course_statuses", :force => true do |t| - t.integer "changesets_count" - t.integer "watchers_count" - t.integer "course_id" - t.float "grade", :default => 0.0 - t.integer "course_ac_para", :default => 0 - t.datetime "created_at", :null => false - t.datetime "updated_at", :null => false - end - - create_table "courses", :force => true do |t| - t.integer "tea_id" - t.string "name" - t.integer "state" - t.string "code" - t.integer "time" - t.string "extra" - t.datetime "created_at", :null => false - t.datetime "updated_at", :null => false - t.string "location" - t.string "term" - t.string "string" - t.string "password" - t.string "setup_time" - t.string "endup_time" - t.string "class_period" - t.integer "school_id" - t.text "description" - t.integer "status", :default => 1 - t.integer "attachmenttype", :default => 2 - t.integer "lft" - t.integer "rgt" - t.integer "is_public", :limit => 1, :default => 1 - t.integer "inherit_members", :limit => 1, :default => 1 - t.integer "open_student", :default => 0 - end - - create_table "custom_fields", :force => true do |t| - t.string "type", :limit => 30, :default => "", :null => false - t.string "name", :limit => 30, :default => "", :null => false - t.string "field_format", :limit => 30, :default => "", :null => false - t.text "possible_values" - t.string "regexp", :default => "" - t.integer "min_length", :default => 0, :null => false - t.integer "max_length", :default => 0, :null => false - t.boolean "is_required", :default => false, :null => false - t.boolean "is_for_all", :default => false, :null => false - t.boolean "is_filter", :default => false, :null => false - t.integer "position", :default => 1 - t.boolean "searchable", :default => false - t.text "default_value" - t.boolean "editable", :default => true - t.boolean "visible", :default => true, :null => false - t.boolean "multiple", :default => false - end - - add_index "custom_fields", ["id", "type"], :name => "index_custom_fields_on_id_and_type" - - create_table "custom_fields_projects", :id => false, :force => true do |t| - t.integer "custom_field_id", :default => 0, :null => false - t.integer "project_id", :default => 0, :null => false - end - - add_index "custom_fields_projects", ["custom_field_id", "project_id"], :name => "index_custom_fields_projects_on_custom_field_id_and_project_id", :unique => true - - create_table "custom_fields_trackers", :id => false, :force => true do |t| - t.integer "custom_field_id", :default => 0, :null => false - t.integer "tracker_id", :default => 0, :null => false - end - - add_index "custom_fields_trackers", ["custom_field_id", "tracker_id"], :name => "index_custom_fields_trackers_on_custom_field_id_and_tracker_id", :unique => true - - create_table "custom_values", :force => true do |t| - t.string "customized_type", :limit => 30, :default => "", :null => false - t.integer "customized_id", :default => 0, :null => false - t.integer "custom_field_id", :default => 0, :null => false - t.text "value" - end - - add_index "custom_values", ["custom_field_id"], :name => "index_custom_values_on_custom_field_id" - add_index "custom_values", ["customized_type", "customized_id"], :name => "custom_values_customized" - - create_table "documents", :force => true do |t| - t.integer "project_id", :default => 0, :null => false - t.integer "category_id", :default => 0, :null => false - t.string "title", :limit => 60, :default => "", :null => false - t.text "description" - t.datetime "created_on" - t.integer "user_id", :default => 0 - t.integer "is_public", :default => 1 - end - - add_index "documents", ["category_id"], :name => "index_documents_on_category_id" - add_index "documents", ["created_on"], :name => "index_documents_on_created_on" - add_index "documents", ["project_id"], :name => "documents_project_id" - - create_table "enabled_modules", :force => true do |t| - t.integer "project_id" - t.string "name", :null => false - t.integer "course_id" - end - - add_index "enabled_modules", ["project_id"], :name => "enabled_modules_project_id" - - create_table "enumerations", :force => true do |t| - t.string "name", :limit => 30, :default => "", :null => false - t.integer "position", :default => 1 - t.boolean "is_default", :default => false, :null => false - t.string "type" - t.boolean "active", :default => true, :null => false - t.integer "project_id" - t.integer "parent_id" - t.string "position_name", :limit => 30 - end - - add_index "enumerations", ["id", "type"], :name => "index_enumerations_on_id_and_type" - add_index "enumerations", ["project_id"], :name => "index_enumerations_on_project_id" - - create_table "first_pages", :force => true do |t| - t.string "web_title" - t.string "title" - t.text "description" - t.string "page_type" - t.datetime "created_at", :null => false - t.datetime "updated_at", :null => false - t.integer "sort_type" - t.integer "image_width", :default => 107 - t.integer "image_height", :default => 63 - t.integer "show_course", :default => 1 - t.integer "show_contest", :default => 1 - end - - create_table "forums", :force => true do |t| - t.string "name", :null => false - t.text "description" - t.integer "topic_count", :default => 0 - t.integer "memo_count", :default => 0 - t.integer "last_memo_id", :default => 0 - t.integer "creator_id", :null => false - t.datetime "created_at", :null => false - t.datetime "updated_at", :null => false - t.integer "sticky" - t.integer "locked" - end - - create_table "groups_users", :id => false, :force => true do |t| - t.integer "group_id", :null => false - t.integer "user_id", :null => false - end - - add_index "groups_users", ["group_id", "user_id"], :name => "groups_users_ids", :unique => true - - create_table "homework_attaches", :force => true do |t| - t.integer "bid_id" - t.integer "user_id" - t.datetime "created_at", :null => false - t.datetime "updated_at", :null => false - t.string "reward" - t.string "name" - t.text "description" - t.integer "state" - t.integer "project_id", :default => 0 - end - - create_table "homework_evaluations", :force => true do |t| - t.string "user_id" - t.string "homework_attach_id" - t.datetime "created_at", :null => false - t.datetime "updated_at", :null => false - end - - create_table "homework_for_courses", :force => true do |t| - t.integer "course_id" - t.integer "bid_id" - end - - create_table "homework_users", :force => true do |t| - t.string "homework_attach_id" - t.string "user_id" - t.datetime "created_at", :null => false - t.datetime "updated_at", :null => false - end - - create_table "issue_categories", :force => true do |t| - t.integer "project_id", :default => 0, :null => false - t.string "name", :limit => 30, :default => "", :null => false - t.integer "assigned_to_id" - end - - add_index "issue_categories", ["assigned_to_id"], :name => "index_issue_categories_on_assigned_to_id" - add_index "issue_categories", ["project_id"], :name => "issue_categories_project_id" - - create_table "issue_relations", :force => true do |t| - t.integer "issue_from_id", :null => false - t.integer "issue_to_id", :null => false - t.string "relation_type", :default => "", :null => false - t.integer "delay" - end - - add_index "issue_relations", ["issue_from_id", "issue_to_id"], :name => "index_issue_relations_on_issue_from_id_and_issue_to_id", :unique => true - add_index "issue_relations", ["issue_from_id"], :name => "index_issue_relations_on_issue_from_id" - add_index "issue_relations", ["issue_to_id"], :name => "index_issue_relations_on_issue_to_id" - - create_table "issue_statuses", :force => true do |t| - t.string "name", :limit => 30, :default => "", :null => false - t.boolean "is_closed", :default => false, :null => false - t.boolean "is_default", :default => false, :null => false - t.integer "position", :default => 1 - t.integer "default_done_ratio" - end - - add_index "issue_statuses", ["is_closed"], :name => "index_issue_statuses_on_is_closed" - add_index "issue_statuses", ["is_default"], :name => "index_issue_statuses_on_is_default" - add_index "issue_statuses", ["position"], :name => "index_issue_statuses_on_position" - - create_table "issues", :force => true do |t| - t.integer "tracker_id", :null => false - t.integer "project_id", :null => false - t.string "subject", :default => "", :null => false - t.text "description" - t.date "due_date" - t.integer "category_id" - t.integer "status_id", :null => false - t.integer "assigned_to_id" - t.integer "priority_id", :null => false - t.integer "fixed_version_id" - t.integer "author_id", :null => false - t.integer "lock_version", :default => 0, :null => false - t.datetime "created_on" - t.datetime "updated_on" - t.date "start_date" - t.integer "done_ratio", :default => 0, :null => false - t.float "estimated_hours" - t.integer "parent_id" - t.integer "root_id" - t.integer "lft" - t.integer "rgt" - t.boolean "is_private", :default => false, :null => false - t.datetime "closed_on" - end - - add_index "issues", ["assigned_to_id"], :name => "index_issues_on_assigned_to_id" - add_index "issues", ["author_id"], :name => "index_issues_on_author_id" - add_index "issues", ["category_id"], :name => "index_issues_on_category_id" - add_index "issues", ["created_on"], :name => "index_issues_on_created_on" - add_index "issues", ["fixed_version_id"], :name => "index_issues_on_fixed_version_id" - add_index "issues", ["priority_id"], :name => "index_issues_on_priority_id" - add_index "issues", ["project_id"], :name => "issues_project_id" - add_index "issues", ["root_id", "lft", "rgt"], :name => "index_issues_on_root_id_and_lft_and_rgt" - add_index "issues", ["status_id"], :name => "index_issues_on_status_id" - add_index "issues", ["tracker_id"], :name => "index_issues_on_tracker_id" - - create_table "join_in_competitions", :force => true do |t| - t.integer "user_id" - t.integer "competition_id" - t.datetime "created_at", :null => false - t.datetime "updated_at", :null => false - end - - create_table "join_in_contests", :force => true do |t| - t.integer "user_id" - t.integer "bid_id" - t.datetime "created_at", :null => false - t.datetime "updated_at", :null => false - end - - create_table "journal_details", :force => true do |t| - t.integer "journal_id", :default => 0, :null => false - t.string "property", :limit => 30, :default => "", :null => false - t.string "prop_key", :limit => 30, :default => "", :null => false - t.text "old_value" - t.text "value" - end - - add_index "journal_details", ["journal_id"], :name => "journal_details_journal_id" - - create_table "journal_replies", :id => false, :force => true do |t| - t.integer "journal_id" - t.integer "user_id" - t.integer "reply_id" - end - - add_index "journal_replies", ["journal_id"], :name => "index_journal_replies_on_journal_id" - add_index "journal_replies", ["reply_id"], :name => "index_journal_replies_on_reply_id" - add_index "journal_replies", ["user_id"], :name => "index_journal_replies_on_user_id" - - create_table "journals", :force => true do |t| - t.integer "journalized_id", :default => 0, :null => false - t.string "journalized_type", :limit => 30, :default => "", :null => false - t.integer "user_id", :default => 0, :null => false - t.text "notes" - t.datetime "created_on", :null => false - t.boolean "private_notes", :default => false, :null => false - end - - add_index "journals", ["created_on"], :name => "index_journals_on_created_on" - add_index "journals", ["journalized_id", "journalized_type"], :name => "journals_journalized_id" - add_index "journals", ["journalized_id"], :name => "index_journals_on_journalized_id" - add_index "journals", ["user_id"], :name => "index_journals_on_user_id" - - create_table "journals_for_messages", :force => true do |t| - t.integer "jour_id" - t.string "jour_type" - t.integer "user_id" - t.text "notes" - t.integer "status" - t.integer "reply_id" - t.datetime "created_on", :null => false - t.datetime "updated_on", :null => false - t.string "m_parent_id" - t.boolean "is_readed" - t.integer "m_reply_count" - t.integer "m_reply_id" - t.integer "is_comprehensive_evaluation" - end - - create_table "member_roles", :force => true do |t| - t.integer "member_id", :null => false - t.integer "role_id", :null => false - t.integer "inherited_from" - end - - add_index "member_roles", ["member_id"], :name => "index_member_roles_on_member_id" - add_index "member_roles", ["role_id"], :name => "index_member_roles_on_role_id" - - create_table "members", :force => true do |t| - t.integer "user_id", :default => 0, :null => false - t.integer "project_id", :default => 0 - t.datetime "created_on" - t.boolean "mail_notification", :default => false, :null => false - t.integer "course_id", :default => -1 - end - - add_index "members", ["project_id"], :name => "index_members_on_project_id" - add_index "members", ["user_id", "project_id", "course_id"], :name => "index_members_on_user_id_and_project_id", :unique => true - add_index "members", ["user_id"], :name => "index_members_on_user_id" - - create_table "memos", :force => true do |t| - t.integer "forum_id", :null => false - t.integer "parent_id" - t.string "subject", :null => false - t.text "content", :null => false - t.integer "author_id", :null => false - t.integer "replies_count", :default => 0 - t.integer "last_reply_id" - t.boolean "lock", :default => false - t.boolean "sticky", :default => false - t.datetime "created_at", :null => false - t.datetime "updated_at", :null => false - t.integer "viewed_count", :default => 0 - end - - create_table "messages", :force => true do |t| - t.integer "board_id", :null => false - t.integer "parent_id" - t.string "subject", :default => "", :null => false - t.text "content" - t.integer "author_id" - t.integer "replies_count", :default => 0, :null => false - t.integer "last_reply_id" - t.datetime "created_on", :null => false - t.datetime "updated_on", :null => false - t.boolean "locked", :default => false - t.integer "sticky", :default => 0 - end - - add_index "messages", ["author_id"], :name => "index_messages_on_author_id" - add_index "messages", ["board_id"], :name => "messages_board_id" - add_index "messages", ["created_on"], :name => "index_messages_on_created_on" - add_index "messages", ["last_reply_id"], :name => "index_messages_on_last_reply_id" - add_index "messages", ["parent_id"], :name => "messages_parent_id" - - create_table "news", :force => true do |t| - t.integer "project_id" - t.string "title", :limit => 60, :default => "", :null => false - t.string "summary", :default => "" - t.text "description" - t.integer "author_id", :default => 0, :null => false - t.datetime "created_on" - t.integer "comments_count", :default => 0, :null => false - t.integer "course_id" - end - - add_index "news", ["author_id"], :name => "index_news_on_author_id" - add_index "news", ["created_on"], :name => "index_news_on_created_on" - add_index "news", ["project_id"], :name => "news_project_id" - - create_table "no_uses", :force => true do |t| - t.integer "user_id", :null => false - t.string "no_use_type" - t.integer "no_use_id" - t.datetime "created_at", :null => false - t.datetime "updated_at", :null => false - end - - create_table "notificationcomments", :force => true do |t| - t.string "notificationcommented_type" - t.integer "notificationcommented_id" - t.integer "author_id" - t.text "notificationcomments" - t.datetime "created_at", :null => false - t.datetime "updated_at", :null => false - end - - create_table "open_id_authentication_associations", :force => true do |t| - t.integer "issued" - t.integer "lifetime" - t.string "handle" - t.string "assoc_type" - t.binary "server_url" - t.binary "secret" - end - - create_table "open_id_authentication_nonces", :force => true do |t| - t.integer "timestamp", :null => false - t.string "server_url" - t.string "salt", :null => false - end - - create_table "open_source_projects", :force => true do |t| - t.string "name" - t.text "description" - t.integer "commit_count", :default => 0 - t.integer "code_line", :default => 0 - t.integer "users_count", :default => 0 - t.date "last_commit_time" - t.string "url" - t.date "date_collected" - t.datetime "created_at", :null => false - t.datetime "updated_at", :null => false - end - - create_table "option_numbers", :force => true do |t| - t.integer "user_id" - t.integer "memo" - t.integer "messages_for_issues" - t.integer "issues_status" - t.integer "replay_for_message" - t.integer "replay_for_memo" - t.integer "follow" - t.integer "tread" - t.integer "praise_by_one" - t.integer "praise_by_two" - t.integer "praise_by_three" - t.integer "tread_by_one" - t.integer "tread_by_two" - t.integer "tread_by_three" - t.integer "changeset" - t.integer "document" - t.integer "attachment" - t.integer "issue_done_ratio" - t.integer "post_issue" - t.integer "score_type" - t.integer "total_score" - t.datetime "created_at", :null => false - t.datetime "updated_at", :null => false - t.integer "project_id" - end - - create_table "praise_tread_caches", :force => true do |t| - t.integer "object_id", :null => false - t.string "object_type" - t.integer "praise_num" - t.integer "tread_num" - t.datetime "created_at", :null => false - t.datetime "updated_at", :null => false - end - - create_table "praise_treads", :force => true do |t| - t.integer "user_id", :null => false - t.integer "praise_tread_object_id" - t.string "praise_tread_object_type" - t.integer "praise_or_tread" - t.datetime "created_at", :null => false - t.datetime "updated_at", :null => false - end - - create_table "project_infos", :force => true do |t| - t.integer "project_id" - t.integer "user_id" - t.datetime "created_at", :null => false - t.datetime "updated_at", :null => false - end - - create_table "project_scores", :force => true do |t| - t.string "project_id" - t.integer "score" - t.datetime "created_at", :null => false - t.datetime "updated_at", :null => false - t.integer "issue_num", :default => 0 - t.integer "issue_journal_num", :default => 0 - t.integer "news_num", :default => 0 - t.integer "documents_num", :default => 0 - t.integer "changeset_num", :default => 0 - t.integer "board_message_num", :default => 0 - end - - create_table "project_statuses", :force => true do |t| - t.integer "changesets_count" - t.integer "watchers_count" - t.integer "project_id" - t.integer "project_type" - t.float "grade", :default => 0.0 - t.integer "course_ac_para", :default => 0 - end - - add_index "project_statuses", ["grade"], :name => "index_project_statuses_on_grade" - - create_table "projecting_softapplictions", :force => true do |t| - t.integer "user_id" - t.integer "softapplication_id" - t.integer "project_id" - t.datetime "created_at", :null => false - t.datetime "updated_at", :null => false - end - - create_table "projects", :force => true do |t| - t.string "name", :default => "", :null => false - t.text "description" - t.string "homepage", :default => "" - t.boolean "is_public", :default => true, :null => false - t.integer "parent_id" - t.datetime "created_on" - t.datetime "updated_on" - t.string "identifier" - t.integer "status", :default => 1, :null => false - t.integer "lft" - t.integer "rgt" - t.boolean "inherit_members", :default => false, :null => false - t.integer "project_type" - t.boolean "hidden_repo", :default => false, :null => false - t.integer "attachmenttype", :default => 1 - t.integer "user_id" - t.integer "dts_test", :default => 0 - end - - add_index "projects", ["lft"], :name => "index_projects_on_lft" - add_index "projects", ["rgt"], :name => "index_projects_on_rgt" - - create_table "projects_trackers", :id => false, :force => true do |t| - t.integer "project_id", :default => 0, :null => false - t.integer "tracker_id", :default => 0, :null => false - end - - add_index "projects_trackers", ["project_id", "tracker_id"], :name => "projects_trackers_unique", :unique => true - add_index "projects_trackers", ["project_id"], :name => "projects_trackers_project_id" - - create_table "queries", :force => true do |t| - t.integer "project_id" - t.string "name", :default => "", :null => false - t.text "filters" - t.integer "user_id", :default => 0, :null => false - t.boolean "is_public", :default => false, :null => false - t.text "column_names" - t.text "sort_criteria" - t.string "group_by" - t.string "type" - end - - add_index "queries", ["project_id"], :name => "index_queries_on_project_id" - add_index "queries", ["user_id"], :name => "index_queries_on_user_id" - - create_table "relative_memo_to_open_source_projects", :force => true do |t| - t.integer "osp_id" - t.integer "relative_memo_id" - t.datetime "created_at", :null => false - t.datetime "updated_at", :null => false - end - - create_table "relative_memos", :force => true do |t| - t.integer "osp_id" - t.integer "parent_id" - t.string "subject", :null => false - t.text "content", :limit => 16777215, :null => false - t.integer "author_id" - t.integer "replies_count", :default => 0 - t.integer "last_reply_id" - t.boolean "lock", :default => false - t.boolean "sticky", :default => false - t.boolean "is_quote", :default => false - t.datetime "created_at", :null => false - t.datetime "updated_at", :null => false - t.integer "viewed_count_crawl", :default => 0 - t.integer "viewed_count_local", :default => 0 - t.string "url" - t.string "username" - t.string "userhomeurl" - t.date "date_collected" - t.string "topic_resource" - end - - create_table "repositories", :force => true do |t| - t.integer "project_id", :default => 0, :null => false - t.string "url", :default => "", :null => false - t.string "login", :limit => 60, :default => "" - t.string "password", :default => "" - t.string "root_url", :default => "" - t.string "type" - t.string "path_encoding", :limit => 64 - t.string "log_encoding", :limit => 64 - t.text "extra_info" - t.string "identifier" - t.boolean "is_default", :default => false - end - - add_index "repositories", ["project_id"], :name => "index_repositories_on_project_id" - - create_table "rich_rich_files", :force => true do |t| - t.datetime "created_at", :null => false - t.datetime "updated_at", :null => false - t.string "rich_file_file_name" - t.string "rich_file_content_type" - t.integer "rich_file_file_size" - t.datetime "rich_file_updated_at" - t.string "owner_type" - t.integer "owner_id" - t.text "uri_cache" - t.string "simplified_type", :default => "file" - end - - create_table "roles", :force => true do |t| - t.string "name", :limit => 30, :default => "", :null => false - t.integer "position", :default => 1 - t.boolean "assignable", :default => true - t.integer "builtin", :default => 0, :null => false - t.text "permissions" - t.string "issues_visibility", :limit => 30, :default => "default", :null => false - end - - create_table "schools", :force => true do |t| - t.string "name" - t.string "province" - t.datetime "created_at", :null => false - t.datetime "updated_at", :null => false - t.string "logo_link" - end - - create_table "seems_rateable_cached_ratings", :force => true do |t| - t.integer "cacheable_id", :limit => 8 - t.string "cacheable_type" - t.float "avg", :null => false - t.integer "cnt", :null => false - t.string "dimension" - t.datetime "created_at", :null => false - t.datetime "updated_at", :null => false - end - - create_table "seems_rateable_rates", :force => true do |t| - t.integer "rater_id", :limit => 8 - t.integer "rateable_id" - t.string "rateable_type" - t.float "stars", :null => false - t.string "dimension" - t.datetime "created_at", :null => false - t.datetime "updated_at", :null => false - end - - create_table "settings", :force => true do |t| - t.string "name", :default => "", :null => false - t.text "value" - t.datetime "updated_on" - end - - add_index "settings", ["name"], :name => "index_settings_on_name" - - create_table "shares", :force => true do |t| - t.date "created_on" - t.string "url" - t.string "title" - t.integer "share_type" - t.datetime "created_at", :null => false - t.datetime "updated_at", :null => false - t.integer "project_id" - t.integer "user_id" - t.string "description" - end - - create_table "softapplications", :force => true do |t| - t.string "name" - t.text "description" - t.integer "app_type_id" - t.string "app_type_name" - t.string "android_min_version_available" - t.integer "user_id" - t.datetime "created_at", :null => false - t.datetime "updated_at", :null => false - t.integer "contest_id" - t.integer "softapplication_id" - t.integer "is_public" - t.string "application_developers" - t.string "deposit_project_url" - t.string "deposit_project" - t.integer "project_id" - end - - create_table "students_for_courses", :force => true do |t| - t.integer "student_id" - t.integer "course_id" - t.datetime "created_at", :null => false - t.datetime "updated_at", :null => false - end - - create_table "taggings", :force => true do |t| - t.integer "tag_id" - t.integer "taggable_id" - t.string "taggable_type" - t.integer "tagger_id" - t.string "tagger_type" - t.string "context", :limit => 128 - t.datetime "created_at" - end - - add_index "taggings", ["tag_id"], :name => "index_taggings_on_tag_id" - add_index "taggings", ["taggable_id", "taggable_type", "context"], :name => "index_taggings_on_taggable_id_and_taggable_type_and_context" - add_index "taggings", ["taggable_type"], :name => "index_taggings_on_taggable_type" - - create_table "tags", :force => true do |t| - t.string "name" - end - - create_table "teachers", :force => true do |t| - t.string "tea_name" - t.string "location" - t.integer "couurse_time" - t.integer "course_code" - t.datetime "created_at", :null => false - t.datetime "updated_at", :null => false - t.string "extra" - end - - create_table "time_entries", :force => true do |t| - t.integer "project_id", :null => false - t.integer "user_id", :null => false - t.integer "issue_id" - t.float "hours", :null => false - t.string "comments" - t.integer "activity_id", :null => false - t.date "spent_on", :null => false - t.integer "tyear", :null => false - t.integer "tmonth", :null => false - t.integer "tweek", :null => false - t.datetime "created_on", :null => false - t.datetime "updated_on", :null => false - end - - add_index "time_entries", ["activity_id"], :name => "index_time_entries_on_activity_id" - add_index "time_entries", ["created_on"], :name => "index_time_entries_on_created_on" - add_index "time_entries", ["issue_id"], :name => "time_entries_issue_id" - add_index "time_entries", ["project_id"], :name => "time_entries_project_id" - add_index "time_entries", ["user_id"], :name => "index_time_entries_on_user_id" - - create_table "tokens", :force => true do |t| - t.integer "user_id", :default => 0, :null => false - t.string "action", :limit => 30, :default => "", :null => false - t.string "value", :limit => 40, :default => "", :null => false - t.datetime "created_on", :null => false - end - - add_index "tokens", ["user_id"], :name => "index_tokens_on_user_id" - add_index "tokens", ["value"], :name => "tokens_value", :unique => true - - create_table "trackers", :force => true do |t| - t.string "name", :limit => 30, :default => "", :null => false - t.boolean "is_in_chlog", :default => false, :null => false - t.integer "position", :default => 1 - t.boolean "is_in_roadmap", :default => true, :null => false - t.integer "fields_bits", :default => 0 - end - - create_table "user_extensions", :force => true do |t| - t.integer "user_id", :null => false - t.date "birthday" - t.string "brief_introduction" - t.integer "gender" - t.string "location" - t.string "occupation" - t.integer "work_experience" - t.integer "zip_code" - t.datetime "created_at", :null => false - t.datetime "updated_at", :null => false - t.string "technical_title" - t.integer "identity" - t.string "student_id" - t.string "teacher_realname" - t.string "student_realname" - t.string "location_city" - t.integer "school_id" - end - - create_table "user_grades", :force => true do |t| - t.integer "user_id", :null => false - t.integer "project_id", :null => false - t.float "grade", :default => 0.0 - t.datetime "created_at", :null => false - t.datetime "updated_at", :null => false - end - - add_index "user_grades", ["grade"], :name => "index_user_grades_on_grade" - add_index "user_grades", ["project_id"], :name => "index_user_grades_on_project_id" - add_index "user_grades", ["user_id"], :name => "index_user_grades_on_user_id" - - create_table "user_levels", :force => true do |t| - t.integer "user_id" - t.integer "level" - end - - create_table "user_preferences", :force => true do |t| - t.integer "user_id", :default => 0, :null => false - t.text "others" - t.boolean "hide_mail", :default => false - t.string "time_zone" - end - - add_index "user_preferences", ["user_id"], :name => "index_user_preferences_on_user_id" - - create_table "user_score_details", :force => true do |t| - t.integer "current_user_id" - t.integer "target_user_id" - t.string "score_type" - t.string "score_action" - t.integer "user_id" - t.integer "old_score" - t.integer "new_score" - t.integer "current_user_level" - t.integer "target_user_level" - t.integer "score_changeable_obj_id" - t.string "score_changeable_obj_type" - t.datetime "created_at", :null => false - t.datetime "updated_at", :null => false - end - - create_table "user_scores", :force => true do |t| - t.integer "user_id", :null => false - t.integer "collaboration" - t.integer "influence" - t.integer "skill" - t.integer "active" - t.datetime "created_at", :null => false - t.datetime "updated_at", :null => false - end - - create_table "user_statuses", :force => true do |t| - t.integer "changesets_count" - t.integer "watchers_count" - t.integer "user_id" - t.datetime "created_at", :null => false - t.datetime "updated_at", :null => false - t.float "grade", :default => 0.0 - end - - add_index "user_statuses", ["changesets_count"], :name => "index_user_statuses_on_changesets_count" - add_index "user_statuses", ["grade"], :name => "index_user_statuses_on_grade" - add_index "user_statuses", ["watchers_count"], :name => "index_user_statuses_on_watchers_count" - - create_table "users", :force => true do |t| - t.string "login", :default => "", :null => false - t.string "hashed_password", :limit => 40, :default => "", :null => false - t.string "firstname", :limit => 30, :default => "", :null => false - t.string "lastname", :default => "", :null => false - t.string "mail", :limit => 60, :default => "", :null => false - t.boolean "admin", :default => false, :null => false - t.integer "status", :default => 1, :null => false - t.datetime "last_login_on" - t.string "language", :limit => 5, :default => "" - t.integer "auth_source_id" - t.datetime "created_on" - t.datetime "updated_on" - t.string "type" - t.string "identity_url" - t.string "mail_notification", :default => "", :null => false - t.string "salt", :limit => 64 - end - - add_index "users", ["auth_source_id"], :name => "index_users_on_auth_source_id" - add_index "users", ["id", "type"], :name => "index_users_on_id_and_type" - add_index "users", ["type"], :name => "index_users_on_type" - - create_table "versions", :force => true do |t| - t.integer "project_id", :default => 0, :null => false - t.string "name", :default => "", :null => false - t.string "description", :default => "" - t.date "effective_date" - t.datetime "created_on" - t.datetime "updated_on" - t.string "wiki_page_title" - t.string "status", :default => "open" - t.string "sharing", :default => "none", :null => false - end - - add_index "versions", ["project_id"], :name => "versions_project_id" - add_index "versions", ["sharing"], :name => "index_versions_on_sharing" - - create_table "watchers", :force => true do |t| - t.string "watchable_type", :default => "", :null => false - t.integer "watchable_id", :default => 0, :null => false - t.integer "user_id" - end - - add_index "watchers", ["user_id", "watchable_type"], :name => "watchers_user_id_type" - add_index "watchers", ["user_id"], :name => "index_watchers_on_user_id" - add_index "watchers", ["watchable_id", "watchable_type"], :name => "index_watchers_on_watchable_id_and_watchable_type" - - create_table "web_footer_companies", :force => true do |t| - t.string "name" - t.string "logo_size" - t.string "url" - t.datetime "created_at", :null => false - t.datetime "updated_at", :null => false - end - - create_table "web_footer_oranizers", :force => true do |t| - t.string "name" - t.text "description" - t.datetime "created_at", :null => false - t.datetime "updated_at", :null => false - end - - create_table "wiki_content_versions", :force => true do |t| - t.integer "wiki_content_id", :null => false - t.integer "page_id", :null => false - t.integer "author_id" - t.binary "data", :limit => 2147483647 - t.string "compression", :limit => 6, :default => "" - t.string "comments", :default => "" - t.datetime "updated_on", :null => false - t.integer "version", :null => false - end - - add_index "wiki_content_versions", ["updated_on"], :name => "index_wiki_content_versions_on_updated_on" - add_index "wiki_content_versions", ["wiki_content_id"], :name => "wiki_content_versions_wcid" - - create_table "wiki_contents", :force => true do |t| - t.integer "page_id", :null => false - t.integer "author_id" - t.text "text", :limit => 2147483647 - t.string "comments", :default => "" - t.datetime "updated_on", :null => false - t.integer "version", :null => false - end - - add_index "wiki_contents", ["author_id"], :name => "index_wiki_contents_on_author_id" - add_index "wiki_contents", ["page_id"], :name => "wiki_contents_page_id" - - create_table "wiki_pages", :force => true do |t| - t.integer "wiki_id", :null => false - t.string "title", :null => false - t.datetime "created_on", :null => false - t.boolean "protected", :default => false, :null => false - t.integer "parent_id" - end - - add_index "wiki_pages", ["parent_id"], :name => "index_wiki_pages_on_parent_id" - add_index "wiki_pages", ["wiki_id", "title"], :name => "wiki_pages_wiki_id_title" - add_index "wiki_pages", ["wiki_id"], :name => "index_wiki_pages_on_wiki_id" - - create_table "wiki_redirects", :force => true do |t| - t.integer "wiki_id", :null => false - t.string "title" - t.string "redirects_to" - t.datetime "created_on", :null => false - end - - add_index "wiki_redirects", ["wiki_id", "title"], :name => "wiki_redirects_wiki_id_title" - add_index "wiki_redirects", ["wiki_id"], :name => "index_wiki_redirects_on_wiki_id" - - create_table "wikis", :force => true do |t| - t.integer "project_id", :null => false - t.string "start_page", :null => false - t.integer "status", :default => 1, :null => false - end - - add_index "wikis", ["project_id"], :name => "wikis_project_id" - - create_table "workflows", :force => true do |t| - t.integer "tracker_id", :default => 0, :null => false - t.integer "old_status_id", :default => 0, :null => false - t.integer "new_status_id", :default => 0, :null => false - t.integer "role_id", :default => 0, :null => false - t.boolean "assignee", :default => false, :null => false - t.boolean "author", :default => false, :null => false - t.string "type", :limit => 30 - t.string "field_name", :limit => 30 - t.string "rule", :limit => 30 - end - - add_index "workflows", ["new_status_id"], :name => "index_workflows_on_new_status_id" - add_index "workflows", ["old_status_id"], :name => "index_workflows_on_old_status_id" - add_index "workflows", ["role_id", "tracker_id", "old_status_id"], :name => "wkfs_role_tracker_old_status" - add_index "workflows", ["role_id"], :name => "index_workflows_on_role_id" - - create_table "works_categories", :force => true do |t| - t.string "category" - t.datetime "created_at", :null => false - t.datetime "updated_at", :null => false - end - -end +# encoding: UTF-8 +# This file is auto-generated from the current state of the database. Instead +# of editing this file, please use the migrations feature of Active Record to +# incrementally modify your database, and then regenerate this schema definition. +# +# Note that this schema.rb definition is the authoritative source for your +# database schema. If you need to create the application database on another +# system, you should be using db:schema:load, not running all the migrations +# from scratch. The latter is a flawed and unsustainable approach (the more migrations +# you'll amass, the slower it'll run and the greater likelihood for issues). +# +# It's strongly recommended to check this file into your version control system. + +ActiveRecord::Schema.define(:version => 20141127015431) do + + create_table "activities", :force => true do |t| + t.integer "act_id", :null => false + t.string "act_type", :null => false + t.integer "user_id", :null => false + end + + add_index "activities", ["act_id", "act_type"], :name => "index_activities_on_act_id_and_act_type" + add_index "activities", ["user_id", "act_type"], :name => "index_activities_on_user_id_and_act_type" + add_index "activities", ["user_id"], :name => "index_activities_on_user_id" + + create_table "api_keys", :force => true do |t| + t.string "access_token" + t.datetime "expires_at" + t.integer "user_id" + t.boolean "active", :default => true + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false + end + + add_index "api_keys", ["access_token"], :name => "index_api_keys_on_access_token" + add_index "api_keys", ["user_id"], :name => "index_api_keys_on_user_id" + + create_table "applied_projects", :force => true do |t| + t.integer "project_id", :null => false + t.integer "user_id", :null => false + end + + create_table "apply_project_masters", :force => true do |t| + t.integer "user_id" + t.string "apply_type" + t.integer "apply_id" + t.integer "status" + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false + end + + create_table "attachments", :force => true do |t| + t.integer "container_id" + t.string "container_type", :limit => 30 + t.string "filename", :default => "", :null => false + t.string "disk_filename", :default => "", :null => false + t.integer "filesize", :default => 0, :null => false + t.string "content_type", :default => "" + t.string "digest", :limit => 40, :default => "", :null => false + t.integer "downloads", :default => 0, :null => false + t.integer "author_id", :default => 0, :null => false + t.datetime "created_on" + t.string "description" + t.string "disk_directory" + t.integer "attachtype", :default => 1 + t.integer "is_public", :default => 1 + t.integer "copy_from" + end + + add_index "attachments", ["author_id"], :name => "index_attachments_on_author_id" + add_index "attachments", ["container_id", "container_type"], :name => "index_attachments_on_container_id_and_container_type" + add_index "attachments", ["created_on"], :name => "index_attachments_on_created_on" + + create_table "attachmentstypes", :force => true do |t| + t.integer "typeId", :null => false + t.string "typeName", :limit => 50 + end + + create_table "auth_sources", :force => true do |t| + t.string "type", :limit => 30, :default => "", :null => false + t.string "name", :limit => 60, :default => "", :null => false + t.string "host", :limit => 60 + t.integer "port" + t.string "account" + t.string "account_password", :default => "" + t.string "base_dn" + t.string "attr_login", :limit => 30 + t.string "attr_firstname", :limit => 30 + t.string "attr_lastname", :limit => 30 + t.string "attr_mail", :limit => 30 + t.boolean "onthefly_register", :default => false, :null => false + t.boolean "tls", :default => false, :null => false + t.string "filter" + t.integer "timeout" + end + + add_index "auth_sources", ["id", "type"], :name => "index_auth_sources_on_id_and_type" + + create_table "biding_projects", :force => true do |t| + t.integer "project_id" + t.integer "bid_id" + t.integer "user_id" + t.string "description" + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false + t.string "reward" + end + + create_table "bids", :force => true do |t| + t.string "name" + t.string "budget", :null => false + t.integer "author_id" + t.date "deadline" + t.text "description" + t.datetime "created_on", :null => false + t.datetime "updated_on", :null => false + t.integer "commit" + t.integer "reward_type" + t.integer "homework_type" + t.integer "parent_id" + t.string "password" + t.integer "is_evaluation" + t.integer "proportion", :default => 60 + t.integer "comment_status", :default => 0 + t.integer "evaluation_num", :default => 3 + t.integer "open_anonymous_evaluation", :default => 1 + end + + create_table "boards", :force => true do |t| + t.integer "project_id", :null => false + t.string "name", :default => "", :null => false + t.string "description" + t.integer "position", :default => 1 + t.integer "topics_count", :default => 0, :null => false + t.integer "messages_count", :default => 0, :null => false + t.integer "last_message_id" + t.integer "parent_id" + t.integer "course_id" + end + + add_index "boards", ["last_message_id"], :name => "index_boards_on_last_message_id" + add_index "boards", ["project_id"], :name => "boards_project_id" + + create_table "bug_to_osps", :force => true do |t| + t.integer "osp_id" + t.integer "relative_memo_id" + t.string "description" + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false + end + + create_table "changes", :force => true do |t| + t.integer "changeset_id", :null => false + t.string "action", :limit => 1, :default => "", :null => false + t.text "path", :null => false + t.text "from_path" + t.string "from_revision" + t.string "revision" + t.string "branch" + end + + add_index "changes", ["changeset_id"], :name => "changesets_changeset_id" + + create_table "changeset_parents", :id => false, :force => true do |t| + t.integer "changeset_id", :null => false + t.integer "parent_id", :null => false + end + + add_index "changeset_parents", ["changeset_id"], :name => "changeset_parents_changeset_ids" + add_index "changeset_parents", ["parent_id"], :name => "changeset_parents_parent_ids" + + create_table "changesets", :force => true do |t| + t.integer "repository_id", :null => false + t.string "revision", :null => false + t.string "committer" + t.datetime "committed_on", :null => false + t.text "comments" + t.date "commit_date" + t.string "scmid" + t.integer "user_id" + end + + add_index "changesets", ["committed_on"], :name => "index_changesets_on_committed_on" + add_index "changesets", ["repository_id", "revision"], :name => "changesets_repos_rev", :unique => true + add_index "changesets", ["repository_id", "scmid"], :name => "changesets_repos_scmid" + add_index "changesets", ["repository_id"], :name => "index_changesets_on_repository_id" + add_index "changesets", ["user_id"], :name => "index_changesets_on_user_id" + + create_table "changesets_issues", :id => false, :force => true do |t| + t.integer "changeset_id", :null => false + t.integer "issue_id", :null => false + end + + add_index "changesets_issues", ["changeset_id", "issue_id"], :name => "changesets_issues_ids", :unique => true + + create_table "code_review_assignments", :force => true do |t| + t.integer "issue_id" + t.integer "change_id" + t.integer "attachment_id" + t.string "file_path" + t.string "rev" + t.string "rev_to" + t.string "action_type" + t.integer "changeset_id" + end + + create_table "code_review_project_settings", :force => true do |t| + t.integer "project_id" + t.integer "tracker_id" + t.datetime "created_at" + t.datetime "updated_at" + t.integer "updated_by" + t.boolean "hide_code_review_tab", :default => false + t.integer "auto_relation", :default => 1 + t.integer "assignment_tracker_id" + t.text "auto_assign" + t.integer "lock_version", :default => 0, :null => false + t.boolean "tracker_in_review_dialog", :default => false + end + + create_table "code_review_user_settings", :force => true do |t| + t.integer "user_id", :default => 0, :null => false + t.integer "mail_notification", :default => 0, :null => false + t.datetime "created_at" + t.datetime "updated_at" + end + + create_table "code_reviews", :force => true do |t| + t.integer "project_id" + t.integer "change_id" + t.datetime "created_at" + t.datetime "updated_at" + t.integer "line" + t.integer "updated_by_id" + t.integer "lock_version", :default => 0, :null => false + t.integer "status_changed_from" + t.integer "status_changed_to" + t.integer "issue_id" + t.string "action_type" + t.string "file_path" + t.string "rev" + t.string "rev_to" + t.integer "attachment_id" + t.integer "file_count", :default => 0, :null => false + t.boolean "diff_all" + end + + create_table "comments", :force => true do |t| + t.string "commented_type", :limit => 30, :default => "", :null => false + t.integer "commented_id", :default => 0, :null => false + t.integer "author_id", :default => 0, :null => false + t.text "comments" + t.datetime "created_on", :null => false + t.datetime "updated_on", :null => false + end + + add_index "comments", ["author_id"], :name => "index_comments_on_author_id" + add_index "comments", ["commented_id", "commented_type"], :name => "index_comments_on_commented_id_and_commented_type" + + create_table "contest_notifications", :force => true do |t| + t.text "title" + t.text "content" + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false + end + + create_table "contesting_projects", :force => true do |t| + t.integer "project_id" + t.string "contest_id" + t.integer "user_id" + t.string "description" + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false + t.string "reward" + end + + create_table "contesting_softapplications", :force => true do |t| + t.integer "softapplication_id" + t.integer "contest_id" + t.integer "user_id" + t.string "description" + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false + t.string "reward" + end + + create_table "contestnotifications", :force => true do |t| + t.integer "contest_id" + t.string "title" + t.string "summary" + t.text "description" + t.integer "author_id" + t.integer "notificationcomments_count" + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false + end + + create_table "contests", :force => true do |t| + t.string "name" + t.string "budget", :default => "" + t.integer "author_id" + t.date "deadline" + t.string "description" + t.integer "commit" + t.string "password" + t.datetime "created_on", :null => false + t.datetime "updated_on", :null => false + end + + create_table "course_attachments", :force => true do |t| + t.string "filename" + t.string "disk_filename" + t.integer "filesize" + t.string "content_type" + t.string "digest" + t.integer "downloads" + t.string "author_id" + t.string "integer" + t.string "description" + t.string "disk_directory" + t.integer "attachtype" + t.integer "is_public" + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false + t.integer "container_id", :default => 0 + end + + create_table "course_infos", :force => true do |t| + t.integer "course_id" + t.integer "user_id" + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false + end + + create_table "course_statuses", :force => true do |t| + t.integer "changesets_count" + t.integer "watchers_count" + t.integer "course_id" + t.float "grade", :default => 0.0 + t.integer "course_ac_para", :default => 0 + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false + end + + create_table "courses", :force => true do |t| + t.integer "tea_id" + t.string "name" + t.integer "state" + t.string "code" + t.integer "time" + t.string "extra" + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false + t.string "location" + t.string "term" + t.string "string" + t.string "password" + t.string "setup_time" + t.string "endup_time" + t.string "class_period" + t.integer "school_id" + t.text "description" + t.integer "status", :default => 1 + t.integer "attachmenttype", :default => 2 + t.integer "lft" + t.integer "rgt" + t.integer "is_public", :limit => 1, :default => 1 + t.integer "inherit_members", :limit => 1, :default => 1 + t.integer "open_student", :default => 0 + end + + create_table "custom_fields", :force => true do |t| + t.string "type", :limit => 30, :default => "", :null => false + t.string "name", :limit => 30, :default => "", :null => false + t.string "field_format", :limit => 30, :default => "", :null => false + t.text "possible_values" + t.string "regexp", :default => "" + t.integer "min_length", :default => 0, :null => false + t.integer "max_length", :default => 0, :null => false + t.boolean "is_required", :default => false, :null => false + t.boolean "is_for_all", :default => false, :null => false + t.boolean "is_filter", :default => false, :null => false + t.integer "position", :default => 1 + t.boolean "searchable", :default => false + t.text "default_value" + t.boolean "editable", :default => true + t.boolean "visible", :default => true, :null => false + t.boolean "multiple", :default => false + end + + add_index "custom_fields", ["id", "type"], :name => "index_custom_fields_on_id_and_type" + + create_table "custom_fields_projects", :id => false, :force => true do |t| + t.integer "custom_field_id", :default => 0, :null => false + t.integer "project_id", :default => 0, :null => false + end + + add_index "custom_fields_projects", ["custom_field_id", "project_id"], :name => "index_custom_fields_projects_on_custom_field_id_and_project_id", :unique => true + + create_table "custom_fields_trackers", :id => false, :force => true do |t| + t.integer "custom_field_id", :default => 0, :null => false + t.integer "tracker_id", :default => 0, :null => false + end + + add_index "custom_fields_trackers", ["custom_field_id", "tracker_id"], :name => "index_custom_fields_trackers_on_custom_field_id_and_tracker_id", :unique => true + + create_table "custom_values", :force => true do |t| + t.string "customized_type", :limit => 30, :default => "", :null => false + t.integer "customized_id", :default => 0, :null => false + t.integer "custom_field_id", :default => 0, :null => false + t.text "value" + end + + add_index "custom_values", ["custom_field_id"], :name => "index_custom_values_on_custom_field_id" + add_index "custom_values", ["customized_type", "customized_id"], :name => "custom_values_customized" + + create_table "documents", :force => true do |t| + t.integer "project_id", :default => 0, :null => false + t.integer "category_id", :default => 0, :null => false + t.string "title", :limit => 60, :default => "", :null => false + t.text "description" + t.datetime "created_on" + t.integer "user_id", :default => 0 + t.integer "is_public", :default => 1 + end + + add_index "documents", ["category_id"], :name => "index_documents_on_category_id" + add_index "documents", ["created_on"], :name => "index_documents_on_created_on" + add_index "documents", ["project_id"], :name => "documents_project_id" + + create_table "enabled_modules", :force => true do |t| + t.integer "project_id" + t.string "name", :null => false + t.integer "course_id" + end + + add_index "enabled_modules", ["project_id"], :name => "enabled_modules_project_id" + + create_table "enumerations", :force => true do |t| + t.string "name", :limit => 30, :default => "", :null => false + t.integer "position", :default => 1 + t.boolean "is_default", :default => false, :null => false + t.string "type" + t.boolean "active", :default => true, :null => false + t.integer "project_id" + t.integer "parent_id" + t.string "position_name", :limit => 30 + end + + add_index "enumerations", ["id", "type"], :name => "index_enumerations_on_id_and_type" + add_index "enumerations", ["project_id"], :name => "index_enumerations_on_project_id" + + create_table "first_pages", :force => true do |t| + t.string "web_title" + t.string "title" + t.text "description" + t.string "page_type" + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false + t.integer "sort_type" + t.integer "image_width", :default => 107 + t.integer "image_height", :default => 63 + t.integer "show_course", :default => 1 + t.integer "show_contest", :default => 1 + end + + create_table "forums", :force => true do |t| + t.string "name", :null => false + t.text "description" + t.integer "topic_count", :default => 0 + t.integer "memo_count", :default => 0 + t.integer "last_memo_id", :default => 0 + t.integer "creator_id", :null => false + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false + t.integer "sticky" + t.integer "locked" + end + + create_table "groups_users", :id => false, :force => true do |t| + t.integer "group_id", :null => false + t.integer "user_id", :null => false + end + + add_index "groups_users", ["group_id", "user_id"], :name => "groups_users_ids", :unique => true + + create_table "homework_attaches", :force => true do |t| + t.integer "bid_id" + t.integer "user_id" + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false + t.string "reward" + t.string "name" + t.text "description" + t.integer "state" + t.integer "project_id", :default => 0 + end + + create_table "homework_evaluations", :force => true do |t| + t.string "user_id" + t.string "homework_attach_id" + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false + end + + create_table "homework_for_courses", :force => true do |t| + t.integer "course_id" + t.integer "bid_id" + end + + create_table "homework_users", :force => true do |t| + t.string "homework_attach_id" + t.string "user_id" + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false + end + + create_table "issue_categories", :force => true do |t| + t.integer "project_id", :default => 0, :null => false + t.string "name", :limit => 30, :default => "", :null => false + t.integer "assigned_to_id" + end + + add_index "issue_categories", ["assigned_to_id"], :name => "index_issue_categories_on_assigned_to_id" + add_index "issue_categories", ["project_id"], :name => "issue_categories_project_id" + + create_table "issue_relations", :force => true do |t| + t.integer "issue_from_id", :null => false + t.integer "issue_to_id", :null => false + t.string "relation_type", :default => "", :null => false + t.integer "delay" + end + + add_index "issue_relations", ["issue_from_id", "issue_to_id"], :name => "index_issue_relations_on_issue_from_id_and_issue_to_id", :unique => true + add_index "issue_relations", ["issue_from_id"], :name => "index_issue_relations_on_issue_from_id" + add_index "issue_relations", ["issue_to_id"], :name => "index_issue_relations_on_issue_to_id" + + create_table "issue_statuses", :force => true do |t| + t.string "name", :limit => 30, :default => "", :null => false + t.boolean "is_closed", :default => false, :null => false + t.boolean "is_default", :default => false, :null => false + t.integer "position", :default => 1 + t.integer "default_done_ratio" + end + + add_index "issue_statuses", ["is_closed"], :name => "index_issue_statuses_on_is_closed" + add_index "issue_statuses", ["is_default"], :name => "index_issue_statuses_on_is_default" + add_index "issue_statuses", ["position"], :name => "index_issue_statuses_on_position" + + create_table "issues", :force => true do |t| + t.integer "tracker_id", :null => false + t.integer "project_id", :null => false + t.string "subject", :default => "", :null => false + t.text "description" + t.date "due_date" + t.integer "category_id" + t.integer "status_id", :null => false + t.integer "assigned_to_id" + t.integer "priority_id", :null => false + t.integer "fixed_version_id" + t.integer "author_id", :null => false + t.integer "lock_version", :default => 0, :null => false + t.datetime "created_on" + t.datetime "updated_on" + t.date "start_date" + t.integer "done_ratio", :default => 0, :null => false + t.float "estimated_hours" + t.integer "parent_id" + t.integer "root_id" + t.integer "lft" + t.integer "rgt" + t.boolean "is_private", :default => false, :null => false + t.datetime "closed_on" + end + + add_index "issues", ["assigned_to_id"], :name => "index_issues_on_assigned_to_id" + add_index "issues", ["author_id"], :name => "index_issues_on_author_id" + add_index "issues", ["category_id"], :name => "index_issues_on_category_id" + add_index "issues", ["created_on"], :name => "index_issues_on_created_on" + add_index "issues", ["fixed_version_id"], :name => "index_issues_on_fixed_version_id" + add_index "issues", ["priority_id"], :name => "index_issues_on_priority_id" + add_index "issues", ["project_id"], :name => "issues_project_id" + add_index "issues", ["root_id", "lft", "rgt"], :name => "index_issues_on_root_id_and_lft_and_rgt" + add_index "issues", ["status_id"], :name => "index_issues_on_status_id" + add_index "issues", ["tracker_id"], :name => "index_issues_on_tracker_id" + + create_table "join_in_competitions", :force => true do |t| + t.integer "user_id" + t.integer "competition_id" + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false + end + + create_table "join_in_contests", :force => true do |t| + t.integer "user_id" + t.integer "bid_id" + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false + end + + create_table "journal_details", :force => true do |t| + t.integer "journal_id", :default => 0, :null => false + t.string "property", :limit => 30, :default => "", :null => false + t.string "prop_key", :limit => 30, :default => "", :null => false + t.text "old_value" + t.text "value" + end + + add_index "journal_details", ["journal_id"], :name => "journal_details_journal_id" + + create_table "journal_replies", :id => false, :force => true do |t| + t.integer "journal_id" + t.integer "user_id" + t.integer "reply_id" + end + + add_index "journal_replies", ["journal_id"], :name => "index_journal_replies_on_journal_id" + add_index "journal_replies", ["reply_id"], :name => "index_journal_replies_on_reply_id" + add_index "journal_replies", ["user_id"], :name => "index_journal_replies_on_user_id" + + create_table "journals", :force => true do |t| + t.integer "journalized_id", :default => 0, :null => false + t.string "journalized_type", :limit => 30, :default => "", :null => false + t.integer "user_id", :default => 0, :null => false + t.text "notes" + t.datetime "created_on", :null => false + t.boolean "private_notes", :default => false, :null => false + end + + add_index "journals", ["created_on"], :name => "index_journals_on_created_on" + add_index "journals", ["journalized_id", "journalized_type"], :name => "journals_journalized_id" + add_index "journals", ["journalized_id"], :name => "index_journals_on_journalized_id" + add_index "journals", ["user_id"], :name => "index_journals_on_user_id" + + create_table "journals_for_messages", :force => true do |t| + t.integer "jour_id" + t.string "jour_type" + t.integer "user_id" + t.text "notes" + t.integer "status" + t.integer "reply_id" + t.datetime "created_on", :null => false + t.datetime "updated_on", :null => false + t.string "m_parent_id" + t.boolean "is_readed" + t.integer "m_reply_count" + t.integer "m_reply_id" + t.integer "is_comprehensive_evaluation" + end + + create_table "member_roles", :force => true do |t| + t.integer "member_id", :null => false + t.integer "role_id", :null => false + t.integer "inherited_from" + end + + add_index "member_roles", ["member_id"], :name => "index_member_roles_on_member_id" + add_index "member_roles", ["role_id"], :name => "index_member_roles_on_role_id" + + create_table "members", :force => true do |t| + t.integer "user_id", :default => 0, :null => false + t.integer "project_id", :default => 0 + t.datetime "created_on" + t.boolean "mail_notification", :default => false, :null => false + t.integer "course_id", :default => -1 + end + + add_index "members", ["project_id"], :name => "index_members_on_project_id" + add_index "members", ["user_id", "project_id", "course_id"], :name => "index_members_on_user_id_and_project_id", :unique => true + add_index "members", ["user_id"], :name => "index_members_on_user_id" + + create_table "memos", :force => true do |t| + t.integer "forum_id", :null => false + t.integer "parent_id" + t.string "subject", :null => false + t.text "content", :null => false + t.integer "author_id", :null => false + t.integer "replies_count", :default => 0 + t.integer "last_reply_id" + t.boolean "lock", :default => false + t.boolean "sticky", :default => false + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false + t.integer "viewed_count", :default => 0 + end + + create_table "messages", :force => true do |t| + t.integer "board_id", :null => false + t.integer "parent_id" + t.string "subject", :default => "", :null => false + t.text "content" + t.integer "author_id" + t.integer "replies_count", :default => 0, :null => false + t.integer "last_reply_id" + t.datetime "created_on", :null => false + t.datetime "updated_on", :null => false + t.boolean "locked", :default => false + t.integer "sticky", :default => 0 + end + + add_index "messages", ["author_id"], :name => "index_messages_on_author_id" + add_index "messages", ["board_id"], :name => "messages_board_id" + add_index "messages", ["created_on"], :name => "index_messages_on_created_on" + add_index "messages", ["last_reply_id"], :name => "index_messages_on_last_reply_id" + add_index "messages", ["parent_id"], :name => "messages_parent_id" + + create_table "news", :force => true do |t| + t.integer "project_id" + t.string "title", :limit => 60, :default => "", :null => false + t.string "summary", :default => "" + t.text "description" + t.integer "author_id", :default => 0, :null => false + t.datetime "created_on" + t.integer "comments_count", :default => 0, :null => false + t.integer "course_id" + end + + add_index "news", ["author_id"], :name => "index_news_on_author_id" + add_index "news", ["created_on"], :name => "index_news_on_created_on" + add_index "news", ["project_id"], :name => "news_project_id" + + create_table "no_uses", :force => true do |t| + t.integer "user_id", :null => false + t.string "no_use_type" + t.integer "no_use_id" + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false + end + + create_table "notificationcomments", :force => true do |t| + t.string "notificationcommented_type" + t.integer "notificationcommented_id" + t.integer "author_id" + t.text "notificationcomments" + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false + end + + create_table "open_id_authentication_associations", :force => true do |t| + t.integer "issued" + t.integer "lifetime" + t.string "handle" + t.string "assoc_type" + t.binary "server_url" + t.binary "secret" + end + + create_table "open_id_authentication_nonces", :force => true do |t| + t.integer "timestamp", :null => false + t.string "server_url" + t.string "salt", :null => false + end + + create_table "open_source_projects", :force => true do |t| + t.string "name" + t.text "description" + t.integer "commit_count", :default => 0 + t.integer "code_line", :default => 0 + t.integer "users_count", :default => 0 + t.date "last_commit_time" + t.string "url" + t.date "date_collected" + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false + end + + create_table "option_numbers", :force => true do |t| + t.integer "user_id" + t.integer "memo" + t.integer "messages_for_issues" + t.integer "issues_status" + t.integer "replay_for_message" + t.integer "replay_for_memo" + t.integer "follow" + t.integer "tread" + t.integer "praise_by_one" + t.integer "praise_by_two" + t.integer "praise_by_three" + t.integer "tread_by_one" + t.integer "tread_by_two" + t.integer "tread_by_three" + t.integer "changeset" + t.integer "document" + t.integer "attachment" + t.integer "issue_done_ratio" + t.integer "post_issue" + t.integer "score_type" + t.integer "total_score" + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false + t.integer "project_id" + end + + create_table "praise_tread_caches", :force => true do |t| + t.integer "object_id", :null => false + t.string "object_type" + t.integer "praise_num" + t.integer "tread_num" + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false + end + + create_table "praise_treads", :force => true do |t| + t.integer "user_id", :null => false + t.integer "praise_tread_object_id" + t.string "praise_tread_object_type" + t.integer "praise_or_tread" + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false + end + + create_table "project_infos", :force => true do |t| + t.integer "project_id" + t.integer "user_id" + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false + end + + create_table "project_scores", :force => true do |t| + t.string "project_id" + t.integer "score" + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false + t.integer "issue_num", :default => 0 + t.integer "issue_journal_num", :default => 0 + t.integer "news_num", :default => 0 + t.integer "documents_num", :default => 0 + t.integer "changeset_num", :default => 0 + t.integer "board_message_num", :default => 0 + end + + create_table "project_statuses", :force => true do |t| + t.integer "changesets_count" + t.integer "watchers_count" + t.integer "project_id" + t.integer "project_type" + t.float "grade", :default => 0.0 + t.integer "course_ac_para", :default => 0 + end + + add_index "project_statuses", ["grade"], :name => "index_project_statuses_on_grade" + + create_table "projecting_softapplictions", :force => true do |t| + t.integer "user_id" + t.integer "softapplication_id" + t.integer "project_id" + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false + end + + create_table "projects", :force => true do |t| + t.string "name", :default => "", :null => false + t.text "description" + t.string "homepage", :default => "" + t.boolean "is_public", :default => true, :null => false + t.integer "parent_id" + t.datetime "created_on" + t.datetime "updated_on" + t.string "identifier" + t.integer "status", :default => 1, :null => false + t.integer "lft" + t.integer "rgt" + t.boolean "inherit_members", :default => false, :null => false + t.integer "project_type" + t.boolean "hidden_repo", :default => false, :null => false + t.integer "attachmenttype", :default => 1 + t.integer "user_id" + t.integer "dts_test", :default => 0 + end + + add_index "projects", ["lft"], :name => "index_projects_on_lft" + add_index "projects", ["rgt"], :name => "index_projects_on_rgt" + + create_table "projects_trackers", :id => false, :force => true do |t| + t.integer "project_id", :default => 0, :null => false + t.integer "tracker_id", :default => 0, :null => false + end + + add_index "projects_trackers", ["project_id", "tracker_id"], :name => "projects_trackers_unique", :unique => true + add_index "projects_trackers", ["project_id"], :name => "projects_trackers_project_id" + + create_table "queries", :force => true do |t| + t.integer "project_id" + t.string "name", :default => "", :null => false + t.text "filters" + t.integer "user_id", :default => 0, :null => false + t.boolean "is_public", :default => false, :null => false + t.text "column_names" + t.text "sort_criteria" + t.string "group_by" + t.string "type" + end + + add_index "queries", ["project_id"], :name => "index_queries_on_project_id" + add_index "queries", ["user_id"], :name => "index_queries_on_user_id" + + create_table "relative_memo_to_open_source_projects", :force => true do |t| + t.integer "osp_id" + t.integer "relative_memo_id" + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false + end + + create_table "relative_memos", :force => true do |t| + t.integer "osp_id" + t.integer "parent_id" + t.string "subject", :null => false + t.text "content", :limit => 16777215, :null => false + t.integer "author_id" + t.integer "replies_count", :default => 0 + t.integer "last_reply_id" + t.boolean "lock", :default => false + t.boolean "sticky", :default => false + t.boolean "is_quote", :default => false + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false + t.integer "viewed_count_crawl", :default => 0 + t.integer "viewed_count_local", :default => 0 + t.string "url" + t.string "username" + t.string "userhomeurl" + t.date "date_collected" + t.string "topic_resource" + end + + create_table "repositories", :force => true do |t| + t.integer "project_id", :default => 0, :null => false + t.string "url", :default => "", :null => false + t.string "login", :limit => 60, :default => "" + t.string "password", :default => "" + t.string "root_url", :default => "" + t.string "type" + t.string "path_encoding", :limit => 64 + t.string "log_encoding", :limit => 64 + t.text "extra_info" + t.string "identifier" + t.boolean "is_default", :default => false + end + + add_index "repositories", ["project_id"], :name => "index_repositories_on_project_id" + + create_table "rich_rich_files", :force => true do |t| + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false + t.string "rich_file_file_name" + t.string "rich_file_content_type" + t.integer "rich_file_file_size" + t.datetime "rich_file_updated_at" + t.string "owner_type" + t.integer "owner_id" + t.text "uri_cache" + t.string "simplified_type", :default => "file" + end + + create_table "roles", :force => true do |t| + t.string "name", :limit => 30, :default => "", :null => false + t.integer "position", :default => 1 + t.boolean "assignable", :default => true + t.integer "builtin", :default => 0, :null => false + t.text "permissions" + t.string "issues_visibility", :limit => 30, :default => "default", :null => false + end + + create_table "schools", :force => true do |t| + t.string "name" + t.string "province" + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false + t.string "logo_link" + end + + create_table "seems_rateable_cached_ratings", :force => true do |t| + t.integer "cacheable_id", :limit => 8 + t.string "cacheable_type" + t.float "avg", :null => false + t.integer "cnt", :null => false + t.string "dimension" + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false + end + + create_table "seems_rateable_rates", :force => true do |t| + t.integer "rater_id", :limit => 8 + t.integer "rateable_id" + t.string "rateable_type" + t.float "stars", :null => false + t.string "dimension" + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false + end + + create_table "settings", :force => true do |t| + t.string "name", :default => "", :null => false + t.text "value" + t.datetime "updated_on" + end + + add_index "settings", ["name"], :name => "index_settings_on_name" + + create_table "shares", :force => true do |t| + t.date "created_on" + t.string "url" + t.string "title" + t.integer "share_type" + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false + t.integer "project_id" + t.integer "user_id" + t.string "description" + end + + create_table "softapplications", :force => true do |t| + t.string "name" + t.text "description" + t.integer "app_type_id" + t.string "app_type_name" + t.string "android_min_version_available" + t.integer "user_id" + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false + t.integer "contest_id" + t.integer "softapplication_id" + t.integer "is_public" + t.string "application_developers" + t.string "deposit_project_url" + t.string "deposit_project" + t.integer "project_id" + end + + create_table "students_for_courses", :force => true do |t| + t.integer "student_id" + t.integer "course_id" + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false + end + + create_table "taggings", :force => true do |t| + t.integer "tag_id" + t.integer "taggable_id" + t.string "taggable_type" + t.integer "tagger_id" + t.string "tagger_type" + t.string "context", :limit => 128 + t.datetime "created_at" + end + + add_index "taggings", ["tag_id"], :name => "index_taggings_on_tag_id" + add_index "taggings", ["taggable_id", "taggable_type", "context"], :name => "index_taggings_on_taggable_id_and_taggable_type_and_context" + add_index "taggings", ["taggable_type"], :name => "index_taggings_on_taggable_type" + + create_table "tags", :force => true do |t| + t.string "name" + end + + create_table "teachers", :force => true do |t| + t.string "tea_name" + t.string "location" + t.integer "couurse_time" + t.integer "course_code" + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false + t.string "extra" + end + + create_table "time_entries", :force => true do |t| + t.integer "project_id", :null => false + t.integer "user_id", :null => false + t.integer "issue_id" + t.float "hours", :null => false + t.string "comments" + t.integer "activity_id", :null => false + t.date "spent_on", :null => false + t.integer "tyear", :null => false + t.integer "tmonth", :null => false + t.integer "tweek", :null => false + t.datetime "created_on", :null => false + t.datetime "updated_on", :null => false + end + + add_index "time_entries", ["activity_id"], :name => "index_time_entries_on_activity_id" + add_index "time_entries", ["created_on"], :name => "index_time_entries_on_created_on" + add_index "time_entries", ["issue_id"], :name => "time_entries_issue_id" + add_index "time_entries", ["project_id"], :name => "time_entries_project_id" + add_index "time_entries", ["user_id"], :name => "index_time_entries_on_user_id" + + create_table "tokens", :force => true do |t| + t.integer "user_id", :default => 0, :null => false + t.string "action", :limit => 30, :default => "", :null => false + t.string "value", :limit => 40, :default => "", :null => false + t.datetime "created_on", :null => false + end + + add_index "tokens", ["user_id"], :name => "index_tokens_on_user_id" + add_index "tokens", ["value"], :name => "tokens_value", :unique => true + + create_table "trackers", :force => true do |t| + t.string "name", :limit => 30, :default => "", :null => false + t.boolean "is_in_chlog", :default => false, :null => false + t.integer "position", :default => 1 + t.boolean "is_in_roadmap", :default => true, :null => false + t.integer "fields_bits", :default => 0 + end + + create_table "user_extensions", :force => true do |t| + t.integer "user_id", :null => false + t.date "birthday" + t.string "brief_introduction" + t.integer "gender" + t.string "location" + t.string "occupation" + t.integer "work_experience" + t.integer "zip_code" + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false + t.string "technical_title" + t.integer "identity" + t.string "student_id" + t.string "teacher_realname" + t.string "student_realname" + t.string "location_city" + t.integer "school_id" + end + + create_table "user_grades", :force => true do |t| + t.integer "user_id", :null => false + t.integer "project_id", :null => false + t.float "grade", :default => 0.0 + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false + end + + add_index "user_grades", ["grade"], :name => "index_user_grades_on_grade" + add_index "user_grades", ["project_id"], :name => "index_user_grades_on_project_id" + add_index "user_grades", ["user_id"], :name => "index_user_grades_on_user_id" + + create_table "user_levels", :force => true do |t| + t.integer "user_id" + t.integer "level" + end + + create_table "user_preferences", :force => true do |t| + t.integer "user_id", :default => 0, :null => false + t.text "others" + t.boolean "hide_mail", :default => false + t.string "time_zone" + end + + add_index "user_preferences", ["user_id"], :name => "index_user_preferences_on_user_id" + + create_table "user_score_details", :force => true do |t| + t.integer "current_user_id" + t.integer "target_user_id" + t.string "score_type" + t.string "score_action" + t.integer "user_id" + t.integer "old_score" + t.integer "new_score" + t.integer "current_user_level" + t.integer "target_user_level" + t.integer "score_changeable_obj_id" + t.string "score_changeable_obj_type" + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false + end + + create_table "user_scores", :force => true do |t| + t.integer "user_id", :null => false + t.integer "collaboration" + t.integer "influence" + t.integer "skill" + t.integer "active" + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false + end + + create_table "user_statuses", :force => true do |t| + t.integer "changesets_count" + t.integer "watchers_count" + t.integer "user_id" + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false + t.float "grade", :default => 0.0 + end + + add_index "user_statuses", ["changesets_count"], :name => "index_user_statuses_on_changesets_count" + add_index "user_statuses", ["grade"], :name => "index_user_statuses_on_grade" + add_index "user_statuses", ["watchers_count"], :name => "index_user_statuses_on_watchers_count" + + create_table "users", :force => true do |t| + t.string "login", :default => "", :null => false + t.string "hashed_password", :limit => 40, :default => "", :null => false + t.string "firstname", :limit => 30, :default => "", :null => false + t.string "lastname", :default => "", :null => false + t.string "mail", :limit => 60, :default => "", :null => false + t.boolean "admin", :default => false, :null => false + t.integer "status", :default => 1, :null => false + t.datetime "last_login_on" + t.string "language", :limit => 5, :default => "" + t.integer "auth_source_id" + t.datetime "created_on" + t.datetime "updated_on" + t.string "type" + t.string "identity_url" + t.string "mail_notification", :default => "", :null => false + t.string "salt", :limit => 64 + end + + add_index "users", ["auth_source_id"], :name => "index_users_on_auth_source_id" + add_index "users", ["id", "type"], :name => "index_users_on_id_and_type" + add_index "users", ["type"], :name => "index_users_on_type" + + create_table "versions", :force => true do |t| + t.integer "project_id", :default => 0, :null => false + t.string "name", :default => "", :null => false + t.string "description", :default => "" + t.date "effective_date" + t.datetime "created_on" + t.datetime "updated_on" + t.string "wiki_page_title" + t.string "status", :default => "open" + t.string "sharing", :default => "none", :null => false + end + + add_index "versions", ["project_id"], :name => "versions_project_id" + add_index "versions", ["sharing"], :name => "index_versions_on_sharing" + + create_table "watchers", :force => true do |t| + t.string "watchable_type", :default => "", :null => false + t.integer "watchable_id", :default => 0, :null => false + t.integer "user_id" + end + + add_index "watchers", ["user_id", "watchable_type"], :name => "watchers_user_id_type" + add_index "watchers", ["user_id"], :name => "index_watchers_on_user_id" + add_index "watchers", ["watchable_id", "watchable_type"], :name => "index_watchers_on_watchable_id_and_watchable_type" + + create_table "web_footer_companies", :force => true do |t| + t.string "name" + t.string "logo_size" + t.string "url" + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false + end + + create_table "web_footer_oranizers", :force => true do |t| + t.string "name" + t.text "description" + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false + end + + create_table "wiki_content_versions", :force => true do |t| + t.integer "wiki_content_id", :null => false + t.integer "page_id", :null => false + t.integer "author_id" + t.binary "data", :limit => 2147483647 + t.string "compression", :limit => 6, :default => "" + t.string "comments", :default => "" + t.datetime "updated_on", :null => false + t.integer "version", :null => false + end + + add_index "wiki_content_versions", ["updated_on"], :name => "index_wiki_content_versions_on_updated_on" + add_index "wiki_content_versions", ["wiki_content_id"], :name => "wiki_content_versions_wcid" + + create_table "wiki_contents", :force => true do |t| + t.integer "page_id", :null => false + t.integer "author_id" + t.text "text", :limit => 2147483647 + t.string "comments", :default => "" + t.datetime "updated_on", :null => false + t.integer "version", :null => false + end + + add_index "wiki_contents", ["author_id"], :name => "index_wiki_contents_on_author_id" + add_index "wiki_contents", ["page_id"], :name => "wiki_contents_page_id" + + create_table "wiki_pages", :force => true do |t| + t.integer "wiki_id", :null => false + t.string "title", :null => false + t.datetime "created_on", :null => false + t.boolean "protected", :default => false, :null => false + t.integer "parent_id" + end + + add_index "wiki_pages", ["parent_id"], :name => "index_wiki_pages_on_parent_id" + add_index "wiki_pages", ["wiki_id", "title"], :name => "wiki_pages_wiki_id_title" + add_index "wiki_pages", ["wiki_id"], :name => "index_wiki_pages_on_wiki_id" + + create_table "wiki_redirects", :force => true do |t| + t.integer "wiki_id", :null => false + t.string "title" + t.string "redirects_to" + t.datetime "created_on", :null => false + end + + add_index "wiki_redirects", ["wiki_id", "title"], :name => "wiki_redirects_wiki_id_title" + add_index "wiki_redirects", ["wiki_id"], :name => "index_wiki_redirects_on_wiki_id" + + create_table "wikis", :force => true do |t| + t.integer "project_id", :null => false + t.string "start_page", :null => false + t.integer "status", :default => 1, :null => false + end + + add_index "wikis", ["project_id"], :name => "wikis_project_id" + + create_table "workflows", :force => true do |t| + t.integer "tracker_id", :default => 0, :null => false + t.integer "old_status_id", :default => 0, :null => false + t.integer "new_status_id", :default => 0, :null => false + t.integer "role_id", :default => 0, :null => false + t.boolean "assignee", :default => false, :null => false + t.boolean "author", :default => false, :null => false + t.string "type", :limit => 30 + t.string "field_name", :limit => 30 + t.string "rule", :limit => 30 + end + + add_index "workflows", ["new_status_id"], :name => "index_workflows_on_new_status_id" + add_index "workflows", ["old_status_id"], :name => "index_workflows_on_old_status_id" + add_index "workflows", ["role_id", "tracker_id", "old_status_id"], :name => "wkfs_role_tracker_old_status" + add_index "workflows", ["role_id"], :name => "index_workflows_on_role_id" + + create_table "works_categories", :force => true do |t| + t.string "category" + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false + end + +end From c303d2b4cadfc675db9287a36c9ae1458dae0d72 Mon Sep 17 00:00:00 2001 From: guange <8863824@gmail.com> Date: Wed, 3 Dec 2014 17:28:19 +0800 Subject: [PATCH 02/83] =?UTF-8?q?=E5=B0=86=E6=B3=A8=E5=86=8C=E5=8A=9F?= =?UTF-8?q?=E8=83=BD=E7=A7=BB=E5=8A=A8=E5=88=B0UserService=E4=B8=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/api/mobile/api.rb | 1 + app/api/mobile/apis/auth.rb | 5 +++-- app/api/mobile/apis/courses.rb | 4 +++- app/api/mobile/apis/users.rb | 4 ++-- app/controllers/account_controller.rb | 5 +++++ app/services/users_service.rb | 31 +++++++++++++++++++++++++++ test/mobile/auth_test.rb | 24 +++++++++++++++++++++ test/mobile/users_test.rb | 12 +++++++++++ 8 files changed, 81 insertions(+), 5 deletions(-) create mode 100644 app/services/users_service.rb create mode 100644 test/mobile/auth_test.rb create mode 100644 test/mobile/users_test.rb diff --git a/app/api/mobile/api.rb b/app/api/mobile/api.rb index a84ba559c..918c5d73c 100644 --- a/app/api/mobile/api.rb +++ b/app/api/mobile/api.rb @@ -9,6 +9,7 @@ module Mobile class API < Grape::API version 'v1', using: :path format :json + content_type :json, "application/json;charset=UTF-8" helpers do def logger diff --git a/app/api/mobile/apis/auth.rb b/app/api/mobile/apis/auth.rb index 41b948a13..acd5fe1e2 100644 --- a/app/api/mobile/apis/auth.rb +++ b/app/api/mobile/apis/auth.rb @@ -11,9 +11,10 @@ module Mobile if user ::ApiKey.delete_all(user_id: user.id) key = ::ApiKey.create!(user_id: user.id) - {token: key.access_token}.merge(user.as_json).merge(user.extensions.as_json) + data = {token: key.access_token}.merge(user.as_json).merge(user.extensions.as_json) + {status: 0, data: data} else - error!('Unauthorized.', 401) + {status: 1, message: 'Unauthorized.'} end end end diff --git a/app/api/mobile/apis/courses.rb b/app/api/mobile/apis/courses.rb index 7518e544b..bd146e235 100644 --- a/app/api/mobile/apis/courses.rb +++ b/app/api/mobile/apis/courses.rb @@ -20,6 +20,7 @@ module Mobile @courses = @courses_all.order("created_at desc") @s_type = 0 @courses = @courses.offset(@course_pages.offset).limit(@course_pages.per_page) + {status: 0, data: @courses} # @course_activity_count=get_course_activity @courses, @course_activity_count end @@ -29,7 +30,8 @@ module Mobile end route_param :id do get do - Course.find(params[:id]) + course = Course.find(params[:id]) + {status: 0, data: course} end end diff --git a/app/api/mobile/apis/users.rb b/app/api/mobile/apis/users.rb index 1eaf7c87b..8b7edd155 100644 --- a/app/api/mobile/apis/users.rb +++ b/app/api/mobile/apis/users.rb @@ -14,12 +14,12 @@ module Mobile post do user = User.new user.login = params[:login] - user.mail = params[:email] + user.mail = params[:mail] user.password = params[:password] user.password_confirmation = params[:password] user.activate if user.save! - UserStatus.create(:user_id => user.id, :changsets_count => 0, :watchers_count => 0) + UserStatus.create(:user_id => user.id, :changsets_course => 0, :watchers_count => 0) end user end diff --git a/app/controllers/account_controller.rb b/app/controllers/account_controller.rb index 279e89f13..2ca202191 100644 --- a/app/controllers/account_controller.rb +++ b/app/controllers/account_controller.rb @@ -192,6 +192,11 @@ class AccountController < ApplicationController redirect_to signin_url end + def api_register login,password,email + users_service = UsersService.new + users_service.register({login: login, password: password, email: eamil}) + end + def valid_ajax req = Hash.new(false) req[:message] = '' diff --git a/app/services/users_service.rb b/app/services/users_service.rb new file mode 100644 index 000000000..aa2c6bf71 --- /dev/null +++ b/app/services/users_service.rb @@ -0,0 +1,31 @@ +class UsersService + + #将用户注册的功能函数写这里 + #参数约定 + #成功返回注册后的User实例,失败直接抛异常 + def register(params) + @user = User.new + @user.admin = false + @user.register + @user.login = params[:login] + @user.mail = params[:email] + unless password.blank? + @user.password = params[:password] + end + case Setting.self_registration + when '1' + register_by_email_activation(@user) + when '3' + register_automatically(@user) + else + register_manully_by_administrator(@user) + end + if @user.id != nil + ue = @user.user_extensions ||= UserExtensions.new + ue.user_id = @user.id + ue.save + end + @user + end + +end diff --git a/test/mobile/auth_test.rb b/test/mobile/auth_test.rb new file mode 100644 index 000000000..afc5719e8 --- /dev/null +++ b/test/mobile/auth_test.rb @@ -0,0 +1,24 @@ +require File.expand_path('../../test_helper.rb',__FILE__) + +class AuthTest < ActionDispatch::IntegrationTest + def setup + ApiKey.delete_all + end + + test "login success when use correct password" do + post('/api/v1/auth/login.json', {login: 'guange', password: '123456'}) + o = ActiveSupport::JSON.decode response.body + puts o + puts o["token"] + assert_not_nil o["token"] + end + + test "login failure when incorrect password" do + post('/api/v1/auth/login.json', {login: 'guange', password: 'wrongpass'}) + o = ActiveSupport::JSON.decode response.body + assert_nil o["token"] + assert_equal o["error"], 'Unauthorized.' + end +end + + diff --git a/test/mobile/users_test.rb b/test/mobile/users_test.rb new file mode 100644 index 000000000..48b8010b4 --- /dev/null +++ b/test/mobile/users_test.rb @@ -0,0 +1,12 @@ +require File.expand_path('../../test_helper.rb',__FILE__) + +class UsersTest < ActionDispatch::IntegrationTest + test "register a user" do + end + test "get all users" do + get '/api/v1/users.json' + assert_response :success + end +end + + From 4214f39bae44b85595ec3f0c253a7df68cc1094f Mon Sep 17 00:00:00 2001 From: guange <8863824@gmail.com> Date: Thu, 4 Dec 2014 10:11:55 +0800 Subject: [PATCH 03/83] =?UTF-8?q?=E5=AE=8C=E5=96=84=E6=B3=A8=E5=86=8Capi?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/api/mobile/apis/users.rb | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/app/api/mobile/apis/users.rb b/app/api/mobile/apis/users.rb index 8b7edd155..33ea075a7 100644 --- a/app/api/mobile/apis/users.rb +++ b/app/api/mobile/apis/users.rb @@ -5,6 +5,7 @@ module Mobile get do ['hello'] end + desc "add a user" params do requires :login, type: String, desc: 'username' @@ -12,16 +13,13 @@ module Mobile requires :password, type: String, desc: 'password' end post do - user = User.new - user.login = params[:login] - user.mail = params[:mail] - user.password = params[:password] - user.password_confirmation = params[:password] - user.activate - if user.save! - UserStatus.create(:user_id => user.id, :changsets_course => 0, :watchers_count => 0) + user_service = UsersService.new + begin + user = user_service.register(params) + {status: 0, data: user} + rescue Exception => e + {status: 1, message: e.message} end - user end end end From 2a7e0365b895bb786885e3783415c6cc716bf75c Mon Sep 17 00:00:00 2001 From: z9hang Date: Thu, 4 Dec 2014 15:53:47 +0800 Subject: [PATCH 04/83] =?UTF-8?q?=E6=B3=A8=E5=86=8C=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/account_controller.rb | 108 ++++++++++++++------------ app/helpers/account_helper.rb | 41 ++++++++++ app/services/users_service.rb | 22 ++++-- 3 files changed, 113 insertions(+), 58 deletions(-) diff --git a/app/controllers/account_controller.rb b/app/controllers/account_controller.rb index 2ca202191..3de865d6a 100644 --- a/app/controllers/account_controller.rb +++ b/app/controllers/account_controller.rb @@ -101,33 +101,22 @@ class AccountController < ApplicationController # User self-registration def register - # @root_path="/home/pdl/redmine-2.3.2-0/apache2/" -# - #@cache_identityy = params[:identity]||"" #身份 - @cache_no = params[:no]||"" #学号 - @cache_technical_title = params[:technical_title]||"" #教师职称 - @cache_province = params[:province]||"" #省份 - @cache_city = params[:city]||"" #城市 - @cache_enterprise_name = params[:enterprise_name]||"" #企业 - - firstname_code = "" - lastname_code = "" (redirect_to(home_url); return) unless Setting.self_registration? || session[:auth_source_registration] if request.get? session[:auth_source_registration] = nil @user = User.new(:language => current_language.to_s) else user_params = params[:user] || {} - @user = User.new - @user.safe_attributes = user_params - if params[:identity] == "2" # 2 企业 - firstname_code = @user.firstname - lastname_code = @user.lastname - @user.firstname = params[:enterprise_name] - @user.lastname = l(:field_enterprise) - end - @user.admin = false - @user.register + #@user = User.new + #@user.safe_attributes = user_params + #if params[:identity] == "2" # 2 企业 + # firstname_code = @user.firstname + # lastname_code = @user.lastname + # @user.firstname = params[:enterprise_name] + # @user.lastname = l(:field_enterprise) + #end + #@user.admin = false + #@user.register if session[:auth_source_registration] @user.activate @user.login = session[:auth_source_registration][:login] @@ -139,42 +128,59 @@ class AccountController < ApplicationController redirect_to my_account_path end else - @user.login = params[:user][:login] - unless user_params[:identity_url].present? && user_params[:password].blank? && user_params[:password_confirmation].blank? - @user.password, @user.password_confirmation = user_params[:password], user_params[:password_confirmation] - end - - - - case Setting.self_registration + us = UsersService.new + @user = us.register user_params.merge(:should_confirmation_password => true) + case Setting.self_registration when '1' - register_by_email_activation(@user) + #register_by_email_activation(@user) + unless @user.new_record? + render action: 'email_valid', locals: {:mail => user.mail} + end when '3' - register_automatically(@user) + #register_automatically(@user) + unless @user.new_record? + self.logged_user = user + flash[:notice] = l(:notice_account_activated) + redirect_to my_account_url + end else - register_manually_by_administrator(@user) - end - - #added by bai - if @user.id != nil - ue = @user.user_extensions ||= UserExtensions.new - #ue = UserExtensions.create(:identity => params[:identity].to_i,:technical_title => params[:technical_title], :gender => params[:gender].to_i, :user_id => @user.id, :student_id => ) - ue.identity = params[:identity].to_i - ue.technical_title = params[:technical_title] - ue.gender = params[:gender].to_i - ue.user_id = @user.id - ue.student_id = params[:no] - ue.location = params[:province] if params[:province] != nil - ue.location_city = params[:city] if params[:city] != nil - ue.save - end + #register_manually_by_administrator(@user) + unless @user.new_record? + account_pending + end + end + # @user.login = params[:user][:login] + # unless user_params[:identity_url].present? && user_params[:password].blank? && user_params[:password_confirmation].blank? + # @user.password, @user.password_confirmation = user_params[:password], user_params[:password_confirmation] + # end + # + # + # + # case Setting.self_registration + # when '1' + # register_by_email_activation(@user) + # when '3' + # register_automatically(@user) + # else + # register_manually_by_administrator(@user) + # end + # + # #added by bai + # if @user.id != nil + # ue = @user.user_extensions ||= UserExtensions.new + # #ue = UserExtensions.create(:identity => params[:identity].to_i,:technical_title => params[:technical_title], :gender => params[:gender].to_i, :user_id => @user.id, :student_id => ) + # ue.identity = params[:identity].to_i + # ue.technical_title = params[:technical_title] + # ue.gender = params[:gender].to_i + # ue.user_id = @user.id + # ue.student_id = params[:no] + # ue.location = params[:province] if params[:province] != nil + # ue.location_city = params[:city] if params[:city] != nil + # ue.save + # end end end - if params[:identity] == "2" - @user.firstname = firstname_code - @user.lastname = lastname_code - end end # Token based account activation diff --git a/app/helpers/account_helper.rb b/app/helpers/account_helper.rb index 8beeac363..3be096492 100644 --- a/app/helpers/account_helper.rb +++ b/app/helpers/account_helper.rb @@ -18,4 +18,45 @@ # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. module AccountHelper + + def email_activation_register(user, &block) + token = Token.new(:user => user, :action => "register") + if user.save and token.save + UserStatus.create(:user_id => user.id, :changsets_count => 0, :watchers_count => 0) + Mailer.register(token).deliver + flash[:notice] = l(:notice_account_register_done) + #render action: 'email_valid', locals: {:mail => user.mail} + else + yield if block_given? + end + user + end + + def automatically_register(user, &block) + # Automatic activation + user.activate + user.last_login_on = Time.now + if user.save + UserStatus.create(:user_id => user.id, :changsets_count => 0, :watchers_count => 0) + #self.logged_user = user + #flash[:notice] = l(:notice_account_activated) + #redirect_to my_account_url + else + yield if block_given? + end + user + end + + def administrator_manually__register(user, &block) + if user.save + UserStatus.create(:user_id => user.id ,:changsets_count => 0, :watchers_count => 0) + # Sends an email to the administrators + Mailer.account_activation_request(user).deliver + #account_pending + else + yield if block_given? + end + user + end + end diff --git a/app/services/users_service.rb b/app/services/users_service.rb index aa2c6bf71..f36cf3836 100644 --- a/app/services/users_service.rb +++ b/app/services/users_service.rb @@ -1,24 +1,32 @@ class UsersService - + include AccountHelper #将用户注册的功能函数写这里 #参数约定 #成功返回注册后的User实例,失败直接抛异常 + def register(params) @user = User.new @user.admin = false @user.register @user.login = params[:login] - @user.mail = params[:email] - unless password.blank? - @user.password = params[:password] + @user.mail = params[:mail] + password = params[:password] + password_confirmation = params[:password_confirmation] + should_confirmation_password = params[:should_confirmation_password] + if !password.blank? && !password_confirmation && should_confirmation_password + @user.password,@user.password_confirmation = password,password_confirmation + elsif !password.blank? && !should_confirmation_password + @user.password = password + else + @user.password = "" end case Setting.self_registration when '1' - register_by_email_activation(@user) + @user = email_activation_register(@user) when '3' - register_automatically(@user) + @user = automatically_register(@user) else - register_manully_by_administrator(@user) + @user = administrator_manually__register(@user) end if @user.id != nil ue = @user.user_extensions ||= UserExtensions.new From 4be329db118783157adfde6f6a14fe8bbbb1785a Mon Sep 17 00:00:00 2001 From: guange <8863824@gmail.com> Date: Thu, 4 Dec 2014 17:15:17 +0800 Subject: [PATCH 05/83] =?UTF-8?q?osx=E5=BF=BD=E7=95=A5.DS=5FStore?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index 0cd336786..061314adc 100644 --- a/.gitignore +++ b/.gitignore @@ -16,3 +16,4 @@ /lib/plugins/acts_as_versioned/test/debug.log /config/configuration.yml .rbenv-gemsets +.DS_Store From fa1e7c9a0458b68819e0f562e4d7616d0c8ea67c Mon Sep 17 00:00:00 2001 From: z9hang Date: Sat, 6 Dec 2014 11:27:52 +0800 Subject: [PATCH 06/83] =?UTF-8?q?=E4=BF=AE=E6=AD=A3=E5=AF=86=E7=A0=81?= =?UTF-8?q?=E9=95=BF=E5=BA=A6=E5=88=A4=E6=96=AD=E9=94=99=E8=AF=AF=E9=97=AE?= =?UTF-8?q?=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Gemfile.lock | 11 ------ app/controllers/account_controller.rb | 50 +++------------------------ app/services/users_service.rb | 2 +- 3 files changed, 6 insertions(+), 57 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index 58f069ac1..43252793e 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -122,7 +122,6 @@ GEM htmlentities (4.3.2) i18n (0.6.1) ice_nine (0.11.0) - iconv (1.0.4) journey (1.0.4) jquery-rails (2.0.3) railties (>= 3.1.0, < 5.0) @@ -172,8 +171,6 @@ GEM win32console (~> 1.3) pry-nav (0.2.3) pry (~> 0.9.10) - puma (2.10.1) - rack (>= 1.1, < 2.0) rack (1.4.5) rack-accept (0.4.5) rack (>= 0.4) @@ -222,7 +219,6 @@ GEM sass-rails rmagick (2.13.2) ruby-openid (2.1.8) - ruby-prof (0.15.2) rubyzip (1.1.6) sass (3.3.10) sass-rails (3.2.6) @@ -273,8 +269,6 @@ GEM win32console (1.3.2-x86-mingw32) xpath (2.0.0) nokogiri (~> 1.3) - zip-zip (0.3) - rubyzip (>= 1.0.0) PLATFORMS ruby @@ -297,7 +291,6 @@ DEPENDENCIES guard-test (~> 1.0.0) htmlentities i18n (~> 0.6.0) - iconv jquery-rails (~> 2.0.2) kaminari mocha (~> 1.1.0) @@ -307,15 +300,12 @@ DEPENDENCIES paperclip (~> 3.5.4) pry pry-nav - puma rack-mini-profiler! rack-openid rails (= 3.2.13) rich (= 1.4.6) rmagick (>= 2.0.0) ruby-openid (~> 2.1.4) - ruby-prof (~> 0.15.1) - rubyzip sass-rails (~> 3.2.3) seems_rateable! selenium-webdriver (~> 2.42.0) @@ -323,4 +313,3 @@ DEPENDENCIES spork-testunit (~> 0.0.8) therubyracer uglifier (>= 1.0.3) - zip-zip diff --git a/app/controllers/account_controller.rb b/app/controllers/account_controller.rb index 3de865d6a..6102160b3 100644 --- a/app/controllers/account_controller.rb +++ b/app/controllers/account_controller.rb @@ -107,16 +107,6 @@ class AccountController < ApplicationController @user = User.new(:language => current_language.to_s) else user_params = params[:user] || {} - #@user = User.new - #@user.safe_attributes = user_params - #if params[:identity] == "2" # 2 企业 - # firstname_code = @user.firstname - # lastname_code = @user.lastname - # @user.firstname = params[:enterprise_name] - # @user.lastname = l(:field_enterprise) - #end - #@user.admin = false - #@user.register if session[:auth_source_registration] @user.activate @user.login = session[:auth_source_registration][:login] @@ -128,9 +118,9 @@ class AccountController < ApplicationController redirect_to my_account_path end else - us = UsersService.new - @user = us.register user_params.merge(:should_confirmation_password => true) - case Setting.self_registration + us = UsersService.new + @user = us.register user_params.merge(:should_confirmation_password => true) + case Setting.self_registration when '1' #register_by_email_activation(@user) unless @user.new_record? @@ -139,7 +129,7 @@ class AccountController < ApplicationController when '3' #register_automatically(@user) unless @user.new_record? - self.logged_user = user + self.logged_user = @user flash[:notice] = l(:notice_account_activated) redirect_to my_account_url end @@ -148,37 +138,7 @@ class AccountController < ApplicationController unless @user.new_record? account_pending end - end - # @user.login = params[:user][:login] - # unless user_params[:identity_url].present? && user_params[:password].blank? && user_params[:password_confirmation].blank? - # @user.password, @user.password_confirmation = user_params[:password], user_params[:password_confirmation] - # end - # - # - # - # case Setting.self_registration - # when '1' - # register_by_email_activation(@user) - # when '3' - # register_automatically(@user) - # else - # register_manually_by_administrator(@user) - # end - # - # #added by bai - # if @user.id != nil - # ue = @user.user_extensions ||= UserExtensions.new - # #ue = UserExtensions.create(:identity => params[:identity].to_i,:technical_title => params[:technical_title], :gender => params[:gender].to_i, :user_id => @user.id, :student_id => ) - # ue.identity = params[:identity].to_i - # ue.technical_title = params[:technical_title] - # ue.gender = params[:gender].to_i - # ue.user_id = @user.id - # ue.student_id = params[:no] - # ue.location = params[:province] if params[:province] != nil - # ue.location_city = params[:city] if params[:city] != nil - # ue.save - # end - + end end end end diff --git a/app/services/users_service.rb b/app/services/users_service.rb index f36cf3836..0f79e8308 100644 --- a/app/services/users_service.rb +++ b/app/services/users_service.rb @@ -13,7 +13,7 @@ class UsersService password = params[:password] password_confirmation = params[:password_confirmation] should_confirmation_password = params[:should_confirmation_password] - if !password.blank? && !password_confirmation && should_confirmation_password + if !password.blank? && !password_confirmation.blank? && should_confirmation_password @user.password,@user.password_confirmation = password,password_confirmation elsif !password.blank? && !should_confirmation_password @user.password = password From db9eebbac7e3fbcfe98bbf828f0591b98ed2dd39 Mon Sep 17 00:00:00 2001 From: guange <8863824@gmail.com> Date: Sun, 7 Dec 2014 10:48:05 +0800 Subject: [PATCH 07/83] =?UTF-8?q?[API]=E6=B3=A8=E5=86=8C=E6=8E=A5=E5=8F=A3?= =?UTF-8?q?=E5=AE=8C=E6=88=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Gemfile.lock | 11 +++++++++++ app/api/mobile/apis/users.rb | 10 ++++++---- 2 files changed, 17 insertions(+), 4 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index 43252793e..58f069ac1 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -122,6 +122,7 @@ GEM htmlentities (4.3.2) i18n (0.6.1) ice_nine (0.11.0) + iconv (1.0.4) journey (1.0.4) jquery-rails (2.0.3) railties (>= 3.1.0, < 5.0) @@ -171,6 +172,8 @@ GEM win32console (~> 1.3) pry-nav (0.2.3) pry (~> 0.9.10) + puma (2.10.1) + rack (>= 1.1, < 2.0) rack (1.4.5) rack-accept (0.4.5) rack (>= 0.4) @@ -219,6 +222,7 @@ GEM sass-rails rmagick (2.13.2) ruby-openid (2.1.8) + ruby-prof (0.15.2) rubyzip (1.1.6) sass (3.3.10) sass-rails (3.2.6) @@ -269,6 +273,8 @@ GEM win32console (1.3.2-x86-mingw32) xpath (2.0.0) nokogiri (~> 1.3) + zip-zip (0.3) + rubyzip (>= 1.0.0) PLATFORMS ruby @@ -291,6 +297,7 @@ DEPENDENCIES guard-test (~> 1.0.0) htmlentities i18n (~> 0.6.0) + iconv jquery-rails (~> 2.0.2) kaminari mocha (~> 1.1.0) @@ -300,12 +307,15 @@ DEPENDENCIES paperclip (~> 3.5.4) pry pry-nav + puma rack-mini-profiler! rack-openid rails (= 3.2.13) rich (= 1.4.6) rmagick (>= 2.0.0) ruby-openid (~> 2.1.4) + ruby-prof (~> 0.15.1) + rubyzip sass-rails (~> 3.2.3) seems_rateable! selenium-webdriver (~> 2.42.0) @@ -313,3 +323,4 @@ DEPENDENCIES spork-testunit (~> 0.0.8) therubyracer uglifier (>= 1.0.3) + zip-zip diff --git a/app/api/mobile/apis/users.rb b/app/api/mobile/apis/users.rb index 33ea075a7..c9ecdd84f 100644 --- a/app/api/mobile/apis/users.rb +++ b/app/api/mobile/apis/users.rb @@ -9,15 +9,17 @@ module Mobile desc "add a user" params do requires :login, type: String, desc: 'username' - requires :email, type: String, desc: 'email' + requires :mail, type: String, desc: 'mail' requires :password, type: String, desc: 'password' end post do - user_service = UsersService.new + us = UsersService.new begin - user = user_service.register(params) + user = us.register params.merge(:password_confirmation => params[:password], + :should_confirmation_password => true) + raise "register failed." if user.new_record? {status: 0, data: user} - rescue Exception => e + rescue => e {status: 1, message: e.message} end end From 56767701009f3dc54c78e36057f751cfdf0e9925 Mon Sep 17 00:00:00 2001 From: z9hang Date: Mon, 8 Dec 2014 15:19:10 +0800 Subject: [PATCH 08/83] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E8=AF=BE=E7=A8=8B?= =?UTF-8?q?=E5=88=97=E8=A1=A8=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/services/courses_service.rb | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 app/services/courses_service.rb diff --git a/app/services/courses_service.rb b/app/services/courses_service.rb new file mode 100644 index 000000000..0a1fa553d --- /dev/null +++ b/app/services/courses_service.rb @@ -0,0 +1,29 @@ +class CoursesService + include ApplicationHelper + #参数school_id为0或不传时返回所有课程,否则返回对应学校的课程 + #参数per_page_count分页功能,每页显示的课程数 + #参数page分页功能,当前页码 + def course_list params + @school_id = params[:school_id] + per_page_option = params[:per_page_count] || 10 + page_no = params[:page] || 1 + if @school_id == "0" || @school_id.nil? + @courses_all = Course.active.visible. + joins("LEFT JOIN #{CourseStatus.table_name} ON #{Course.table_name}.id = #{CourseStatus.table_name}.course_id") + else + @courses_all = Course.active.visible. + joins("LEFT JOIN #{CourseStatus.table_name} ON #{Course.table_name}.id = #{CourseStatus.table_name}.course_id"). + where("#{Course.table_name}.school_id = ?", @school_id) + end + @course_count = @courses_all.count + @course_pages = Redmine::Pagination::Paginator.new @course_count, per_page_option,page_no + @courses = @courses_all.order("created_at desc") + @courses = @courses.offset(@course_pages.offset).limit(@course_pages.per_page) + course_list = [] + @courses.each do |course| + course_list << {:course => course,:img_url => url_to_avatar(course)} + end + course_list + end + +end \ No newline at end of file From c7c25edf17508e4d71fbf67bca4ef13e4dea2016 Mon Sep 17 00:00:00 2001 From: guange <8863824@gmail.com> Date: Mon, 8 Dec 2014 15:27:18 +0800 Subject: [PATCH 09/83] =?UTF-8?q?=E5=8A=A0=E4=B8=8Apry=E6=94=AF=E6=8C=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Gemfile | 6 +++--- Gemfile.lock | 20 ++++++++++++++++---- app/api/mobile/apis/users.rb | 2 +- 3 files changed, 20 insertions(+), 8 deletions(-) diff --git a/Gemfile b/Gemfile index 5288edd52..ab7a41a16 100644 --- a/Gemfile +++ b/Gemfile @@ -49,9 +49,9 @@ group :development, :test do gem 'guard-spork', '~> 1.5.1' gem 'guard-test', '~> 1.0.0' gem 'ruby-prof', '~> 0.15.1' unless RUBY_PLATFORM =~ /w32/ - gem 'pry' - gem 'pry-nav' - + gem 'pry-rails' + gem 'pry-byebug' + gem 'pry-remote' end diff --git a/Gemfile.lock b/Gemfile.lock index 58f069ac1..d2ae03453 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -57,6 +57,9 @@ GEM ice_nine (~> 0.11.0) thread_safe (~> 0.3, >= 0.3.1) builder (3.0.0) + byebug (2.7.0) + columnize (~> 0.3) + debugger-linecache (~> 1.2) capybara (2.4.1) mime-types (>= 1.16) nokogiri (>= 1.3.3) @@ -81,6 +84,8 @@ GEM coffee-script-source execjs coffee-script-source (1.7.1) + columnize (0.9.0) + debugger-linecache (1.2.0) descendants_tracker (0.0.4) thread_safe (~> 0.3, >= 0.3.1) equalizer (0.0.9) @@ -170,8 +175,14 @@ GEM method_source (~> 0.8) slop (~> 3.4) win32console (~> 1.3) - pry-nav (0.2.3) - pry (~> 0.9.10) + pry-byebug (1.3.2) + byebug (~> 2.7) + pry (~> 0.9.12) + pry-rails (0.3.2) + pry (>= 0.9.10) + pry-remote (0.1.8) + pry (~> 0.9) + slop (~> 3.0) puma (2.10.1) rack (>= 1.1, < 2.0) rack (1.4.5) @@ -305,8 +316,9 @@ DEPENDENCIES net-ldap (~> 0.3.1) nokogiri (~> 1.6.3) paperclip (~> 3.5.4) - pry - pry-nav + pry-byebug + pry-rails + pry-remote puma rack-mini-profiler! rack-openid diff --git a/app/api/mobile/apis/users.rb b/app/api/mobile/apis/users.rb index c9ecdd84f..489b3e419 100644 --- a/app/api/mobile/apis/users.rb +++ b/app/api/mobile/apis/users.rb @@ -17,7 +17,7 @@ module Mobile begin user = us.register params.merge(:password_confirmation => params[:password], :should_confirmation_password => true) - raise "register failed." if user.new_record? + raise "register failed #{user.errors.full_messages}" if user.new_record? {status: 0, data: user} rescue => e {status: 1, message: e.message} From ee3d998873326453d3c6141056e749a029e459d4 Mon Sep 17 00:00:00 2001 From: guange <8863824@gmail.com> Date: Mon, 8 Dec 2014 16:51:21 +0800 Subject: [PATCH 10/83] =?UTF-8?q?=E8=AF=BE=E7=A8=8B=E5=88=97=E8=A1=A8?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3=E5=8A=A0=E5=85=A5=E8=80=81=E5=B8=88=E5=AD=97?= =?UTF-8?q?=E6=AE=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Gemfile | 1 + Gemfile.lock | 4 +++ app/api/mobile/apis/courses.rb | 60 +++++++++++++++++++++++++--------- 3 files changed, 50 insertions(+), 15 deletions(-) diff --git a/Gemfile b/Gemfile index ab7a41a16..34a1a7956 100644 --- a/Gemfile +++ b/Gemfile @@ -9,6 +9,7 @@ unless RUBY_PLATFORM =~ /w32/ end gem 'grape', '~> 0.9.0' +gem 'grape-entity' gem 'seems_rateable', path: 'lib/seems_rateable' gem "rails", "3.2.13" gem "jquery-rails", "~> 2.0.2" diff --git a/Gemfile.lock b/Gemfile.lock index d2ae03453..377ded53e 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -107,6 +107,9 @@ GEM rack-accept rack-mount virtus (>= 1.0.0) + grape-entity (0.4.4) + activesupport + multi_json (>= 1.3.2) guard (2.6.1) formatador (>= 0.2.4) listen (~> 2.7) @@ -303,6 +306,7 @@ DEPENDENCIES factory_girl (~> 4.4.0) fastercsv (~> 1.5.0) grape (~> 0.9.0) + grape-entity guard-rails (~> 0.5.3) guard-spork (~> 1.5.1) guard-test (~> 1.0.0) diff --git a/app/api/mobile/apis/courses.rb b/app/api/mobile/apis/courses.rb index bd146e235..9409fddd7 100644 --- a/app/api/mobile/apis/courses.rb +++ b/app/api/mobile/apis/courses.rb @@ -1,27 +1,57 @@ module Mobile + + module Entities + + class Course < Grape::Entity + def self.course_expose(field) + expose field do |f,opt| + f[:course][field] || f[:course].__send__(field) + end + end + expose :img_url + course_expose :attachmenttype + course_expose :class_period + course_expose :code + course_expose :created_at + course_expose :description + course_expose :endup_time + course_expose :extra + course_expose :id + course_expose :inherit_members + course_expose :is_public + course_expose :lft + course_expose :location + course_expose :name + course_expose :open_student + # course_expose :password + course_expose :rgt + course_expose :school_id + course_expose :setup_time + course_expose :state + course_expose :status + course_expose :string + course_expose :tea_id + course_expose :term + course_expose :time + course_expose :updated_at + course_expose :teacher + end + + end + class Courses < Grape::API resource :courses do desc "get all courses" params do + optional :school_id, type: Integer, desc: 'school number' requires :per_page_count, type: Integer requires :page, type: Integer, desc: 'current page no' end get do - per_page_option = params[:per_page_count] || 10 - page_no = params[:page] || 1 - @courses_all = Course.active.visible. - joins("LEFT JOIN #{CourseStatus.table_name} ON #{Course.table_name}.id = #{CourseStatus.table_name}.course_id") - @course_count = @courses_all.count - @course_pages = Redmine::Pagination::Paginator.new @course_count, per_page_option,page_no - @course_activity_count=Hash.new - @courses_all.each do |course| - @course_activity_count[course.id]=0 - end - @courses = @courses_all.order("created_at desc") - @s_type = 0 - @courses = @courses.offset(@course_pages.offset).limit(@course_pages.per_page) - {status: 0, data: @courses} - # @course_activity_count=get_course_activity @courses, @course_activity_count + cs = CoursesService.new + courses = cs.course_list(params) + present :data, courses, with: Entities::Course + present :status, 0 end desc "Return a course" From 41d9af1ab9e954331446a0f38316ce12a5b0331e Mon Sep 17 00:00:00 2001 From: guange <8863824@gmail.com> Date: Tue, 9 Dec 2014 15:16:47 +0800 Subject: [PATCH 11/83] auto reload api folder in development mode. --- app/api/mobile/api.rb | 12 +++------ app/api/mobile/apis/auth.rb | 34 +++++++++++++------------ app/api/mobile/apis/courses.rb | 3 +++ app/api/mobile/apis/users.rb | 8 ++++++ config/initializers/autoreload_grape.rb | 26 +++++++++++++++++++ 5 files changed, 58 insertions(+), 25 deletions(-) create mode 100644 config/initializers/autoreload_grape.rb diff --git a/app/api/mobile/api.rb b/app/api/mobile/api.rb index 918c5d73c..4add19248 100644 --- a/app/api/mobile/api.rb +++ b/app/api/mobile/api.rb @@ -1,11 +1,5 @@ module Mobile - $LOAD_PATH << File.expand_path('..',__FILE__) - - autoload :Auth, 'apis/auth' - autoload :Users, 'apis/users' - autoload :Courses, 'apis/courses' - class API < Grape::API version 'v1', using: :path format :json @@ -30,9 +24,9 @@ module Mobile end end - mount Auth - mount Users - mount Courses + mount Apis::Auth + mount Apis::Users + mount Apis::Courses end end diff --git a/app/api/mobile/apis/auth.rb b/app/api/mobile/apis/auth.rb index acd5fe1e2..8281c4aa9 100644 --- a/app/api/mobile/apis/auth.rb +++ b/app/api/mobile/apis/auth.rb @@ -1,20 +1,22 @@ module Mobile - class Auth < Grape::API - resource :auth do - desc "Creates and returns access_token if valid login" - params do - requires :login, type: String, desc: 'Username or email' - requires :password, type: String, desc: 'Password' - end - post :login do - user,last_logon = ::User.try_to_login(params[:login], params[:password]) - if user - ::ApiKey.delete_all(user_id: user.id) - key = ::ApiKey.create!(user_id: user.id) - data = {token: key.access_token}.merge(user.as_json).merge(user.extensions.as_json) - {status: 0, data: data} - else - {status: 1, message: 'Unauthorized.'} + module Apis + class Auth < Grape::API + resource :auth do + desc "Creates and returns access_token if valid login" + params do + requires :login, type: String, desc: 'Username or email' + requires :password, type: String, desc: 'Password' + end + post :login do + user,last_logon = ::User.try_to_login(params[:login], params[:password]) + if user + ::ApiKey.delete_all(user_id: user.id) + key = ::ApiKey.create!(user_id: user.id) + data = {token: key.access_token}.merge(user.as_json).merge(user.extensions.as_json) + {status: 0, data: data} + else + {status: 1, message: 'Unauthorized.'} + end end end end diff --git a/app/api/mobile/apis/courses.rb b/app/api/mobile/apis/courses.rb index 9409fddd7..2dca9c220 100644 --- a/app/api/mobile/apis/courses.rb +++ b/app/api/mobile/apis/courses.rb @@ -1,5 +1,7 @@ module Mobile + module Apis + module Entities class Course < Grape::Entity @@ -67,5 +69,6 @@ module Mobile end end + end end diff --git a/app/api/mobile/apis/users.rb b/app/api/mobile/apis/users.rb index 489b3e419..e4544a09e 100644 --- a/app/api/mobile/apis/users.rb +++ b/app/api/mobile/apis/users.rb @@ -1,4 +1,5 @@ module Mobile + module Apis class Users < Grape::API resource :users do desc "get all users" @@ -23,8 +24,15 @@ module Mobile {status: 1, message: e.message} end end + + desc "test upload" + post "upload" do + puts "haha11" + end + end end + end end diff --git a/config/initializers/autoreload_grape.rb b/config/initializers/autoreload_grape.rb new file mode 100644 index 000000000..ceffb9425 --- /dev/null +++ b/config/initializers/autoreload_grape.rb @@ -0,0 +1,26 @@ +if Rails.env.development? + lib_ruby_files = Dir.glob(File.join("app/api/**", "*.rb")) + lib_reloader ||= ActiveSupport::FileUpdateChecker.new(lib_ruby_files) do + # lib_ruby_files.each do |lib_file| + # puts "start require #{lib_file}" + # require_dependency(lib_file) + # end + # + + # binding.pry + # if Object.const_defined?(:Mobile) + # Object.send(:remove_const, :Mobile) + # end + # + # $".delete_if {|s| s.include?('api/mobile') } + # require File.join(Rails.root,"app/api/mobile/api.rb") + Rails.application.reload_routes! + end + + ActionDispatch::Callbacks.to_prepare do + lib_reloader.execute_if_updated + end + +end + + From 4a6c26d499844c6cc4cdb086c01c1fa032745be6 Mon Sep 17 00:00:00 2001 From: guange <8863824@gmail.com> Date: Tue, 9 Dec 2014 16:36:43 +0800 Subject: [PATCH 12/83] =?UTF-8?q?=E5=B0=86entities=E9=87=8D=E6=9E=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/api/mobile/apis/auth.rb | 13 ++++- app/api/mobile/apis/courses.rb | 87 ++++++++----------------------- app/api/mobile/apis/users.rb | 52 +++++++++--------- app/api/mobile/entities/course.rb | 38 ++++++++++++++ app/api/mobile/entities/user.rb | 20 +++++++ 5 files changed, 116 insertions(+), 94 deletions(-) create mode 100644 app/api/mobile/entities/course.rb create mode 100644 app/api/mobile/entities/user.rb diff --git a/app/api/mobile/apis/auth.rb b/app/api/mobile/apis/auth.rb index 8281c4aa9..33eff26ad 100644 --- a/app/api/mobile/apis/auth.rb +++ b/app/api/mobile/apis/auth.rb @@ -1,4 +1,12 @@ module Mobile + + module Entities + class Auth < Grape::Entity + expose :token + expose :user, using: User + end + end + module Apis class Auth < Grape::API resource :auth do @@ -12,8 +20,9 @@ module Mobile if user ::ApiKey.delete_all(user_id: user.id) key = ::ApiKey.create!(user_id: user.id) - data = {token: key.access_token}.merge(user.as_json).merge(user.extensions.as_json) - {status: 0, data: data} + api_user = UserService.new.show_user(user.id) + present :data, {token: key, user: api_user}, using: Mobile:Entities::Auth + present :status, 0 else {status: 1, message: 'Unauthorized.'} end diff --git a/app/api/mobile/apis/courses.rb b/app/api/mobile/apis/courses.rb index 2dca9c220..1084e8cbc 100644 --- a/app/api/mobile/apis/courses.rb +++ b/app/api/mobile/apis/courses.rb @@ -1,74 +1,33 @@ module Mobile - module Apis - - module Entities - - class Course < Grape::Entity - def self.course_expose(field) - expose field do |f,opt| - f[:course][field] || f[:course].__send__(field) + class Courses < Grape::API + resource :courses do + desc "get all courses" + params do + optional :school_id, type: Integer, desc: 'school number' + requires :per_page_count, type: Integer + requires :page, type: Integer, desc: 'current page no' end - end - expose :img_url - course_expose :attachmenttype - course_expose :class_period - course_expose :code - course_expose :created_at - course_expose :description - course_expose :endup_time - course_expose :extra - course_expose :id - course_expose :inherit_members - course_expose :is_public - course_expose :lft - course_expose :location - course_expose :name - course_expose :open_student - # course_expose :password - course_expose :rgt - course_expose :school_id - course_expose :setup_time - course_expose :state - course_expose :status - course_expose :string - course_expose :tea_id - course_expose :term - course_expose :time - course_expose :updated_at - course_expose :teacher - end - - end - - class Courses < Grape::API - resource :courses do - desc "get all courses" - params do - optional :school_id, type: Integer, desc: 'school number' - requires :per_page_count, type: Integer - requires :page, type: Integer, desc: 'current page no' - end - get do - cs = CoursesService.new - courses = cs.course_list(params) - present :data, courses, with: Entities::Course - present :status, 0 - end - - desc "Return a course" - params do - requires :id, type: Integer - end - route_param :id do get do - course = Course.find(params[:id]) - {status: 0, data: course} + cs = CoursesService.new + courses = cs.course_list(params) + present :data, courses, with: Mobile::Entities::Course + present :status, 0 end - end + desc "Return a course" + params do + requires :id, type: Integer + end + route_param :id do + get do + course = Course.find(params[:id]) + {status: 0, data: course} + end + end + + end end end - end end diff --git a/app/api/mobile/apis/users.rb b/app/api/mobile/apis/users.rb index e4544a09e..df17782f2 100644 --- a/app/api/mobile/apis/users.rb +++ b/app/api/mobile/apis/users.rb @@ -1,38 +1,34 @@ module Mobile module Apis - class Users < Grape::API - resource :users do - desc "get all users" - get do - ['hello'] - end - - desc "add a user" - params do - requires :login, type: String, desc: 'username' - requires :mail, type: String, desc: 'mail' - requires :password, type: String, desc: 'password' - end - post do - us = UsersService.new - begin - user = us.register params.merge(:password_confirmation => params[:password], - :should_confirmation_password => true) - raise "register failed #{user.errors.full_messages}" if user.new_record? - {status: 0, data: user} - rescue => e - {status: 1, message: e.message} + class Users < Grape::API + resource :users do + desc "get all users" + get do + ['hello'] end - end - desc "test upload" - post "upload" do - puts "haha11" - end + desc "add a user" + params do + requires :login, type: String, desc: 'username' + requires :mail, type: String, desc: 'mail' + requires :password, type: String, desc: 'password' + end + post do + us = UsersService.new + begin + user = us.register params.merge(:password_confirmation => params[:password], + :should_confirmation_password => true) + raise "register failed #{user.errors.full_messages}" if user.new_record? + present :data, user, with: Mobile::Entities::User + present :status, 0 + rescue => e + {status: 1, message: e.message} + end + end + end end end - end end diff --git a/app/api/mobile/entities/course.rb b/app/api/mobile/entities/course.rb new file mode 100644 index 000000000..b9823d9ac --- /dev/null +++ b/app/api/mobile/entities/course.rb @@ -0,0 +1,38 @@ +module Mobile + module Entities + class Course < Grape::Entity + def self.course_expose(field) + expose field do |f,opt| + f[:course][field] || f[:course].__send__(field) + end + end + expose :img_url + course_expose :attachmenttype + course_expose :class_period + course_expose :code + course_expose :created_at + course_expose :description + course_expose :endup_time + course_expose :extra + course_expose :id + course_expose :inherit_members + course_expose :is_public + course_expose :lft + course_expose :location + course_expose :name + course_expose :open_student + # course_expose :password + course_expose :rgt + course_expose :school_id + course_expose :setup_time + course_expose :state + course_expose :status + course_expose :string + course_expose :tea_id + course_expose :term + course_expose :time + course_expose :updated_at + course_expose :teacher + end + end +end diff --git a/app/api/mobile/entities/user.rb b/app/api/mobile/entities/user.rb new file mode 100644 index 000000000..33ae3f049 --- /dev/null +++ b/app/api/mobile/entities/user.rb @@ -0,0 +1,20 @@ +module Mobile + module Entities + class User < Grape::Entity + #头像 + #昵称 + expose :login + #性别 + expose :gender do |user, opt| + user.user_extentions.gender + end + #我的二维码 + #工作单位 + #邮箱地址 + expose :mail + #地区 + #签名 + end + end + +end From 890f49eb36719b3a873a2c764d7d3aa781d32683 Mon Sep 17 00:00:00 2001 From: z9hang Date: Tue, 9 Dec 2014 16:40:52 +0800 Subject: [PATCH 13/83] =?UTF-8?q?=E7=94=A8=E6=88=B7=E4=BF=A1=E6=81=AF?= =?UTF-8?q?=E6=98=BE=E7=A4=BA=E6=96=B9=E6=B3=95=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Gemfile.lock | 11 ----------- app/services/users_service.rb | 27 +++++++++++++++++++++++++++ 2 files changed, 27 insertions(+), 11 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index 58f069ac1..43252793e 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -122,7 +122,6 @@ GEM htmlentities (4.3.2) i18n (0.6.1) ice_nine (0.11.0) - iconv (1.0.4) journey (1.0.4) jquery-rails (2.0.3) railties (>= 3.1.0, < 5.0) @@ -172,8 +171,6 @@ GEM win32console (~> 1.3) pry-nav (0.2.3) pry (~> 0.9.10) - puma (2.10.1) - rack (>= 1.1, < 2.0) rack (1.4.5) rack-accept (0.4.5) rack (>= 0.4) @@ -222,7 +219,6 @@ GEM sass-rails rmagick (2.13.2) ruby-openid (2.1.8) - ruby-prof (0.15.2) rubyzip (1.1.6) sass (3.3.10) sass-rails (3.2.6) @@ -273,8 +269,6 @@ GEM win32console (1.3.2-x86-mingw32) xpath (2.0.0) nokogiri (~> 1.3) - zip-zip (0.3) - rubyzip (>= 1.0.0) PLATFORMS ruby @@ -297,7 +291,6 @@ DEPENDENCIES guard-test (~> 1.0.0) htmlentities i18n (~> 0.6.0) - iconv jquery-rails (~> 2.0.2) kaminari mocha (~> 1.1.0) @@ -307,15 +300,12 @@ DEPENDENCIES paperclip (~> 3.5.4) pry pry-nav - puma rack-mini-profiler! rack-openid rails (= 3.2.13) rich (= 1.4.6) rmagick (>= 2.0.0) ruby-openid (~> 2.1.4) - ruby-prof (~> 0.15.1) - rubyzip sass-rails (~> 3.2.3) seems_rateable! selenium-webdriver (~> 2.42.0) @@ -323,4 +313,3 @@ DEPENDENCIES spork-testunit (~> 0.0.8) therubyracer uglifier (>= 1.0.3) - zip-zip diff --git a/app/services/users_service.rb b/app/services/users_service.rb index 0f79e8308..3579b8a87 100644 --- a/app/services/users_service.rb +++ b/app/services/users_service.rb @@ -1,4 +1,5 @@ class UsersService + include ApplicationHelper include AccountHelper #将用户注册的功能函数写这里 #参数约定 @@ -36,4 +37,30 @@ class UsersService @user end + #显示用户 + #id用户id + def show_user + @user = User.find(params[:id]) + img_url = url_to_avatar(@user) + gender = user.user_extensions.gender.nil? ? 0 : user.user_extensions.gender + work_unit = "" + if @user.user_extensions.identity == 0 || @user.user_extensions.identity == 1 + work_unit = @user.user_extensions.school.name unless @user.user_extensions.school.nil? + elsif @user.user_extensions.identity == 3 + work_unit = @user.user_extensions.occupation + elsif @user.user_extensions.identity == 2 + work_unit = @user.firstname + end + location = "" + location << @user.user_extensions.location + location << @user.user_extensions.location_city + {:id => @user.id,:img_url =>img_url,:nickname => @user.login,:gender => gender,:work_unit => work_unit,:mail => @user.mail,:location => location,:brief_introduction => @user.user_extensions.brief_introduction} + end + + #编辑用户 + def edit_user params + @user = User.find(params[:id]) + file = params[:file] + + end end From c054852b4e914d0855ed2e9a407e47b0eba83d0b Mon Sep 17 00:00:00 2001 From: guange <8863824@gmail.com> Date: Tue, 9 Dec 2014 16:57:08 +0800 Subject: [PATCH 14/83] =?UTF-8?q?=E7=99=BB=E5=BD=95=E5=90=8E=E8=BF=94?= =?UTF-8?q?=E5=9B=9E=E7=94=A8=E6=88=B7=E8=B5=84=E6=96=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/api/mobile/apis/auth.rb | 4 ++-- app/api/mobile/entities/user.rb | 11 +++++++---- app/services/users_service.rb | 8 ++++---- 3 files changed, 13 insertions(+), 10 deletions(-) diff --git a/app/api/mobile/apis/auth.rb b/app/api/mobile/apis/auth.rb index 33eff26ad..fa6fec6e2 100644 --- a/app/api/mobile/apis/auth.rb +++ b/app/api/mobile/apis/auth.rb @@ -20,8 +20,8 @@ module Mobile if user ::ApiKey.delete_all(user_id: user.id) key = ::ApiKey.create!(user_id: user.id) - api_user = UserService.new.show_user(user.id) - present :data, {token: key, user: api_user}, using: Mobile:Entities::Auth + api_user = ::UsersService.new.show_user({id:user.id}) + present :data, {token: key.access_token, user: api_user}, using: Entities::Auth present :status, 0 else {status: 1, message: 'Unauthorized.'} diff --git a/app/api/mobile/entities/user.rb b/app/api/mobile/entities/user.rb index 33ae3f049..38230b7a0 100644 --- a/app/api/mobile/entities/user.rb +++ b/app/api/mobile/entities/user.rb @@ -1,19 +1,22 @@ module Mobile module Entities class User < Grape::Entity + expose :id #头像 + expose :img_url #昵称 - expose :login + expose :nickname #性别 - expose :gender do |user, opt| - user.user_extentions.gender - end + expose :gender #我的二维码 #工作单位 + expose :work_unit #邮箱地址 expose :mail #地区 + expose :location #签名 + expose :brief_introduction end end diff --git a/app/services/users_service.rb b/app/services/users_service.rb index 3579b8a87..17ecc1598 100644 --- a/app/services/users_service.rb +++ b/app/services/users_service.rb @@ -39,10 +39,10 @@ class UsersService #显示用户 #id用户id - def show_user + def show_user(params) @user = User.find(params[:id]) img_url = url_to_avatar(@user) - gender = user.user_extensions.gender.nil? ? 0 : user.user_extensions.gender + gender = @user.user_extensions.gender.nil? ? 0 : @user.user_extensions.gender work_unit = "" if @user.user_extensions.identity == 0 || @user.user_extensions.identity == 1 work_unit = @user.user_extensions.school.name unless @user.user_extensions.school.nil? @@ -52,8 +52,8 @@ class UsersService work_unit = @user.firstname end location = "" - location << @user.user_extensions.location - location << @user.user_extensions.location_city + location << (@user.user_extensions.location || '') + location << (@user.user_extensions.location_city || '') {:id => @user.id,:img_url =>img_url,:nickname => @user.login,:gender => gender,:work_unit => work_unit,:mail => @user.mail,:location => location,:brief_introduction => @user.user_extensions.brief_introduction} end From 7efd2375ff940cb74e3aef6a7bcdd22f6cad9e83 Mon Sep 17 00:00:00 2001 From: z9hang Date: Wed, 10 Dec 2014 11:21:23 +0800 Subject: [PATCH 15/83] =?UTF-8?q?=E4=B8=AA=E4=BA=BA=E4=BF=A1=E6=81=AF?= =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/services/users_service.rb | 46 ++++++++++++++++++++++++++++++++++- 1 file changed, 45 insertions(+), 1 deletion(-) diff --git a/app/services/users_service.rb b/app/services/users_service.rb index 17ecc1598..cd955e18d 100644 --- a/app/services/users_service.rb +++ b/app/services/users_service.rb @@ -1,6 +1,7 @@ class UsersService include ApplicationHelper include AccountHelper + include AvatarHelper #将用户注册的功能函数写这里 #参数约定 #成功返回注册后的User实例,失败直接抛异常 @@ -60,7 +61,50 @@ class UsersService #编辑用户 def edit_user params @user = User.find(params[:id]) - file = params[:file] + fileio = params[:file] + @se = @user.extensions + if @user.user_extensions.identity == 0 || @user.user_extensions.identity == 1 + @se.school_id = params[:occupation] + elsif @user.user_extensions.identity == 3 + @se.occupation = params[:occupation] + elsif @user.user_extensions.identity == 2 + @user.firstname = params[:occupation] + end + @se.brief_introduction = params[:brief_introduction] + @se.gender = params[:gender] + @se.location = params[:province] if params[:province] + @se.location_city = params[:city] if params[:city] + if @se.save + unless fileio.nil? + file = fileio[:tempfile] + diskfile=disk_filename(@user.class.to_s,@user.id) + @image_file = fileio[:name] + @urlfile='/' << File.join("images","avatars",avatar_directory(@user.class.to_s),avatar_filename(@user.id,@image_file)) + + path = File.dirname(diskfile) + unless File.directory?(path) + FileUtils.mkdir_p(path) + end + File.rename(file.path, @urlfile) + begin + f = Magick::ImageList.new(diskfile) + # gif格式不再做大小处理 + if f.format != 'GIF' + width = 300.0 + proportion = (width/f[0].columns) + height = (f[0].rows*proportion) + f.resize_to_fill!(width,height) + f.write(diskfile) + end + + rescue Exception => e + logger.error "[Error] avatar : users_service#edit_user ===> #{e}" + end + end + return true + else + @se + end end end From 70bc6acbd2301e99b70b527756d2410659ba0d17 Mon Sep 17 00:00:00 2001 From: guange <8863824@gmail.com> Date: Wed, 10 Dec 2014 11:56:33 +0800 Subject: [PATCH 16/83] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E7=94=A8=E6=88=B7?= =?UTF-8?q?=E4=B8=AA=E4=BA=BA=E4=BF=A1=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Gemfile.lock | 11 +++++++ app/api/mobile/api.rb | 2 +- app/api/mobile/apis/users.rb | 21 +++++++++++++ app/services/users_service.rb | 59 +++++++++++++++++------------------ 4 files changed, 61 insertions(+), 32 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index a7239fc80..377ded53e 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -130,6 +130,7 @@ GEM htmlentities (4.3.2) i18n (0.6.1) ice_nine (0.11.0) + iconv (1.0.4) journey (1.0.4) jquery-rails (2.0.3) railties (>= 3.1.0, < 5.0) @@ -185,6 +186,8 @@ GEM pry-remote (0.1.8) pry (~> 0.9) slop (~> 3.0) + puma (2.10.1) + rack (>= 1.1, < 2.0) rack (1.4.5) rack-accept (0.4.5) rack (>= 0.4) @@ -233,6 +236,7 @@ GEM sass-rails rmagick (2.13.2) ruby-openid (2.1.8) + ruby-prof (0.15.2) rubyzip (1.1.6) sass (3.3.10) sass-rails (3.2.6) @@ -283,6 +287,8 @@ GEM win32console (1.3.2-x86-mingw32) xpath (2.0.0) nokogiri (~> 1.3) + zip-zip (0.3) + rubyzip (>= 1.0.0) PLATFORMS ruby @@ -306,6 +312,7 @@ DEPENDENCIES guard-test (~> 1.0.0) htmlentities i18n (~> 0.6.0) + iconv jquery-rails (~> 2.0.2) kaminari mocha (~> 1.1.0) @@ -316,12 +323,15 @@ DEPENDENCIES pry-byebug pry-rails pry-remote + puma rack-mini-profiler! rack-openid rails (= 3.2.13) rich (= 1.4.6) rmagick (>= 2.0.0) ruby-openid (~> 2.1.4) + ruby-prof (~> 0.15.1) + rubyzip sass-rails (~> 3.2.3) seems_rateable! selenium-webdriver (~> 2.42.0) @@ -329,3 +339,4 @@ DEPENDENCIES spork-testunit (~> 0.0.8) therubyracer uglifier (>= 1.0.3) + zip-zip diff --git a/app/api/mobile/api.rb b/app/api/mobile/api.rb index 4add19248..b540c73d3 100644 --- a/app/api/mobile/api.rb +++ b/app/api/mobile/api.rb @@ -10,7 +10,7 @@ module Mobile API.logger end - def authticate! + def authenticate! error!('Unauthorized. Invalid or expired token.', 401) unless current_user end diff --git a/app/api/mobile/apis/users.rb b/app/api/mobile/apis/users.rb index df17782f2..9b5bf8c73 100644 --- a/app/api/mobile/apis/users.rb +++ b/app/api/mobile/apis/users.rb @@ -26,6 +26,27 @@ module Mobile end end + + desc "modify user" + params do + #optional :file, type: File, desc: 'avatar' + optional :occupation, type: String + optional :brief_introduction, type: String + optional :province, type: String + optional :city, type: String + optional :gender, type: Integer + end + put ':id' do + authenticate! + us = UsersService.new + begin + ue = us.edit_user params + {status: 0, data: ue} + rescue => e + {status: 1, message: e.message} + end + end + end end end diff --git a/app/services/users_service.rb b/app/services/users_service.rb index cd955e18d..b47bf6a28 100644 --- a/app/services/users_service.rb +++ b/app/services/users_service.rb @@ -16,7 +16,7 @@ class UsersService password_confirmation = params[:password_confirmation] should_confirmation_password = params[:should_confirmation_password] if !password.blank? && !password_confirmation.blank? && should_confirmation_password - @user.password,@user.password_confirmation = password,password_confirmation + @user.password, @user.password_confirmation = password, password_confirmation elsif !password.blank? && !should_confirmation_password @user.password = password else @@ -42,7 +42,7 @@ class UsersService #id用户id def show_user(params) @user = User.find(params[:id]) - img_url = url_to_avatar(@user) + img_url = url_to_avatar(@user) gender = @user.user_extensions.gender.nil? ? 0 : @user.user_extensions.gender work_unit = "" if @user.user_extensions.identity == 0 || @user.user_extensions.identity == 1 @@ -55,7 +55,7 @@ class UsersService location = "" location << (@user.user_extensions.location || '') location << (@user.user_extensions.location_city || '') - {:id => @user.id,:img_url =>img_url,:nickname => @user.login,:gender => gender,:work_unit => work_unit,:mail => @user.mail,:location => location,:brief_introduction => @user.user_extensions.brief_introduction} + {:id => @user.id, :img_url => img_url, :nickname => @user.login, :gender => gender, :work_unit => work_unit, :mail => @user.mail, :location => location, :brief_introduction => @user.user_extensions.brief_introduction} end #编辑用户 @@ -75,36 +75,33 @@ class UsersService @se.gender = params[:gender] @se.location = params[:province] if params[:province] @se.location_city = params[:city] if params[:city] - if @se.save - unless fileio.nil? - file = fileio[:tempfile] - diskfile=disk_filename(@user.class.to_s,@user.id) - @image_file = fileio[:name] - @urlfile='/' << File.join("images","avatars",avatar_directory(@user.class.to_s),avatar_filename(@user.id,@image_file)) + raise @se.errors.full_message unless @se.save + unless fileio.nil? + file = fileio[:tempfile] + diskfile=disk_filename(@user.class.to_s, @user.id) + @image_file = fileio[:name] + @urlfile='/' << File.join("images", "avatars", avatar_directory(@user.class.to_s), avatar_filename(@user.id, @image_file)) - path = File.dirname(diskfile) - unless File.directory?(path) - FileUtils.mkdir_p(path) - end - File.rename(file.path, @urlfile) - begin - f = Magick::ImageList.new(diskfile) - # gif格式不再做大小处理 - if f.format != 'GIF' - width = 300.0 - proportion = (width/f[0].columns) - height = (f[0].rows*proportion) - f.resize_to_fill!(width,height) - f.write(diskfile) - end - - rescue Exception => e - logger.error "[Error] avatar : users_service#edit_user ===> #{e}" - end + path = File.dirname(diskfile) + unless File.directory?(path) + FileUtils.mkdir_p(path) + end + File.rename(file.path, @urlfile) + begin + f = Magick::ImageList.new(diskfile) + # gif格式不再做大小处理 + if f.format != 'GIF' + width = 300.0 + proportion = (width/f[0].columns) + height = (f[0].rows*proportion) + f.resize_to_fill!(width, height) + f.write(diskfile) + end + + rescue Exception => e + logger.error "[Error] avatar : users_service#edit_user ===> #{e}" end - return true - else - @se end + @se end end From fbd38b4a5352c5afff03f2672987fe21ec37228b Mon Sep 17 00:00:00 2001 From: z9hang Date: Wed, 10 Dec 2014 14:33:05 +0800 Subject: [PATCH 17/83] =?UTF-8?q?=E5=85=B3=E6=B3=A8=E5=88=97=E8=A1=A8?= =?UTF-8?q?=E4=B8=8E=E5=85=B3=E6=B3=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/watchers_controller.rb | 1 + app/services/service.rb | 51 ++++++++++++++++++++++++++ app/services/users_service.rb | 7 ++++ 3 files changed, 59 insertions(+) create mode 100644 app/services/service.rb diff --git a/app/controllers/watchers_controller.rb b/app/controllers/watchers_controller.rb index 50bb2ccd8..6c61f1970 100644 --- a/app/controllers/watchers_controller.rb +++ b/app/controllers/watchers_controller.rb @@ -162,4 +162,5 @@ class WatchersController < ApplicationController format.js { render :partial => 'set_watcher', :locals => {:user => user, :watched => watchables} } end end + end diff --git a/app/services/service.rb b/app/services/service.rb new file mode 100644 index 000000000..c4eb4bc1c --- /dev/null +++ b/app/services/service.rb @@ -0,0 +1,51 @@ +class Service + def watch params + @watchables = find_watchables params + if @watchables.nil? + + end + set_watcher(@watchables, User.current, true) + end + + def unwatch params + find_watchables params + set_watcher(@watchables, User.current, false) + end + + def find_watchables params + #根据参数获取关注对象的类型(user、project) + klass = Object.const_get(params[:object_type].camelcase) rescue nil + #判断获取的对象类型能否响应‘watched_by’方法 + if klass && klass.respond_to?('watched_by') + @watchables = klass.find_all_by_id(Array.wrap(params[:object_id])) + raise Unauthorized if @watchables.any? {|w| w.respond_to?(:visible?) && !w.visible?} + end + @watchables.present? ? @watchables : nil + end + + def set_watcher(watchables, user, watching) + watchables.each do |watchable| + watchable.set_watcher(user, watching) + # @user = watchable # added by william + if watching + # 修改 user和project的状态 + if watchable.instance_of?(User) + #写user_statuses表 + UserStatus.find_by_user_id(watchable.id).update_watchers_count(1) + elsif watchable.instance_of?(Project) + #写project_statuese表 + ProjectStatus.find_by_project_id(watchable.id).update_watchers_count(1) + end + else + # 修改 user和project的状态 + if watchable.instance_of?(User) + #写user_statuses表 + UserStatus.find_by_user_id(watchable.id).update_watchers_count(-1) + elsif watchable.instance_of?(Project) + #写project_statuese表 :project_status + ProjectStatus.find_by_project_id(watchable.id).update_watchers_count(-1) + end + end + end + end +end \ No newline at end of file diff --git a/app/services/users_service.rb b/app/services/users_service.rb index cd955e18d..da1d61d36 100644 --- a/app/services/users_service.rb +++ b/app/services/users_service.rb @@ -107,4 +107,11 @@ class UsersService @se end end + + #关注列表 + def user_watcher params + @user = User.find(params[:id]) + User.watched_by(@user.id) + end + end From 41fa6f02f17888e3645cd79a87175bcc30f28d7b Mon Sep 17 00:00:00 2001 From: z9hang Date: Wed, 10 Dec 2014 15:07:41 +0800 Subject: [PATCH 18/83] =?UTF-8?q?=E5=85=B3=E6=B3=A8=E5=88=97=E8=A1=A8?= =?UTF-8?q?=E3=80=81=E5=85=B3=E6=B3=A8=E4=B8=8E=E5=8F=96=E6=B6=88=E5=85=B3?= =?UTF-8?q?=E6=B3=A8=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/watchers_controller.rb | 30 +++++++++++++++++++++++--- app/services/service.rb | 14 ++++++++---- 2 files changed, 37 insertions(+), 7 deletions(-) diff --git a/app/controllers/watchers_controller.rb b/app/controllers/watchers_controller.rb index 6c61f1970..096e44f06 100644 --- a/app/controllers/watchers_controller.rb +++ b/app/controllers/watchers_controller.rb @@ -15,13 +15,37 @@ # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. class WatchersController < ApplicationController - before_filter :require_login, :find_watchables, :only => [:watch, :unwatch] + before_filter :require_login#, :find_watchables, :only => [:watch, :unwatch] def watch - set_watcher(@watchables, User.current, true) + s = Service.new + watchables = s.watch params.merge(:current_user_id => User.current.id) + respond_to do |format| + format.html { redirect_to_referer_or {render :text => (true ? 'Watcher added.' : 'Watcher removed.'), :layout => true}} + format.js { render :partial => 'set_watcher', :locals => {:user => User.current, :watched => watchables} } + end + rescue Exception => e + if e.message == "404" + render_404 + else + raise e + end + #set_watcher(@watchables, User.current, true) end def unwatch - set_watcher(@watchables, User.current, false) + s = Service.new + watchables = s.unwatch params.merge(:current_user_id => User.current.id) + respond_to do |format| + format.html { redirect_to_referer_or {render :text => (false ? 'Watcher added.' : 'Watcher removed.'), :layout => true}} + format.js { render :partial => 'set_watcher', :locals => {:user => User.current, :watched => watchables} } + end + rescue Exception => e + if e.message == "404" + render_404 + else + raise e + end + #set_watcher(@watchables, User.current, false) end def join diff --git a/app/services/service.rb b/app/services/service.rb index c4eb4bc1c..413d9bfb8 100644 --- a/app/services/service.rb +++ b/app/services/service.rb @@ -1,15 +1,20 @@ class Service def watch params + @current_user = User.find(params[:current_user_id]) @watchables = find_watchables params if @watchables.nil? - + raise '404' end - set_watcher(@watchables, User.current, true) + set_watcher(@watchables, @current_user, true) end def unwatch params - find_watchables params - set_watcher(@watchables, User.current, false) + @current_user = User.find(params[:current_user_id]) + @watchables = find_watchables params + if @watchables.nil? + raise '404' + end + set_watcher(@watchables, @current_user, false) end def find_watchables params @@ -47,5 +52,6 @@ class Service end end end + watchables end end \ No newline at end of file From 5eba06ddf9f056ef973059461b47cd040731febb Mon Sep 17 00:00:00 2001 From: guange <8863824@gmail.com> Date: Wed, 10 Dec 2014 15:11:10 +0800 Subject: [PATCH 19/83] =?UTF-8?q?=E5=8A=A0=E5=85=A5api=E5=9C=A8=E7=BA=BF?= =?UTF-8?q?=E6=96=87=E6=A1=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 1 + Gemfile | 1 + Gemfile.lock | 4 ++++ app/api/mobile/api.rb | 1 + app/api/mobile/apis/auth.rb | 14 ++++++++++++-- app/api/mobile/apis/users.rb | 2 +- 6 files changed, 20 insertions(+), 3 deletions(-) diff --git a/.gitignore b/.gitignore index 061314adc..f1eed7367 100644 --- a/.gitignore +++ b/.gitignore @@ -17,3 +17,4 @@ /config/configuration.yml .rbenv-gemsets .DS_Store +public/api_doc/ diff --git a/Gemfile b/Gemfile index 34a1a7956..1fe5b6c0f 100644 --- a/Gemfile +++ b/Gemfile @@ -20,6 +20,7 @@ gem "builder", "3.0.0" gem 'acts-as-taggable-on', '2.4.1' group :development do + gem 'grape-swagger' gem 'puma' gem 'better_errors', path: 'lib/better_errors' gem 'rack-mini-profiler', path: 'lib/rack-mini-profiler' diff --git a/Gemfile.lock b/Gemfile.lock index 377ded53e..95ea5b6e2 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -110,6 +110,9 @@ GEM grape-entity (0.4.4) activesupport multi_json (>= 1.3.2) + grape-swagger (0.8.0) + grape + grape-entity guard (2.6.1) formatador (>= 0.2.4) listen (~> 2.7) @@ -307,6 +310,7 @@ DEPENDENCIES fastercsv (~> 1.5.0) grape (~> 0.9.0) grape-entity + grape-swagger guard-rails (~> 0.5.3) guard-spork (~> 1.5.1) guard-test (~> 1.0.0) diff --git a/app/api/mobile/api.rb b/app/api/mobile/api.rb index b540c73d3..548793f3e 100644 --- a/app/api/mobile/api.rb +++ b/app/api/mobile/api.rb @@ -28,6 +28,7 @@ module Mobile mount Apis::Users mount Apis::Courses + add_swagger_documentation ({api_version: 'v1', base_path: '/api'}) end end diff --git a/app/api/mobile/apis/auth.rb b/app/api/mobile/apis/auth.rb index fa6fec6e2..136e5b171 100644 --- a/app/api/mobile/apis/auth.rb +++ b/app/api/mobile/apis/auth.rb @@ -10,12 +10,12 @@ module Mobile module Apis class Auth < Grape::API resource :auth do - desc "Creates and returns access_token if valid login" + desc "用户登录" params do requires :login, type: String, desc: 'Username or email' requires :password, type: String, desc: 'Password' end - post :login do + post do user,last_logon = ::User.try_to_login(params[:login], params[:password]) if user ::ApiKey.delete_all(user_id: user.id) @@ -27,6 +27,16 @@ module Mobile {status: 1, message: 'Unauthorized.'} end end + + desc "用户登出" + params do + end + delete do + authenticate! + ::ApiKey.delete_all(user_id: current_user.id) + {status: 0} + end + end end end diff --git a/app/api/mobile/apis/users.rb b/app/api/mobile/apis/users.rb index 9b5bf8c73..5dc25d401 100644 --- a/app/api/mobile/apis/users.rb +++ b/app/api/mobile/apis/users.rb @@ -40,7 +40,7 @@ module Mobile authenticate! us = UsersService.new begin - ue = us.edit_user params + ue = us.edit_user params.merge(id: current_user.id) {status: 0, data: ue} rescue => e {status: 1, message: e.message} From 6a3ebb5e94d5c40bed8bac0c4d15504bbb4447a2 Mon Sep 17 00:00:00 2001 From: guange <8863824@gmail.com> Date: Wed, 10 Dec 2014 16:23:56 +0800 Subject: [PATCH 20/83] =?UTF-8?q?=E5=85=B3=E6=B3=A8=E6=8E=A5=E5=8F=A3?= =?UTF-8?q?=E5=AE=8C=E6=88=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/api/mobile/api.rb | 1 + app/api/mobile/apis/auth.rb | 1 + app/api/mobile/apis/courses.rb | 10 ++-- app/api/mobile/apis/users.rb | 9 ++-- app/api/mobile/apis/watches.rb | 53 +++++++++++++++++++ app/controllers/watchers_controller.rb | 4 +- .../{service.rb => watches_service.rb} | 2 +- 7 files changed, 66 insertions(+), 14 deletions(-) create mode 100644 app/api/mobile/apis/watches.rb rename app/services/{service.rb => watches_service.rb} (96%) diff --git a/app/api/mobile/api.rb b/app/api/mobile/api.rb index 548793f3e..64016458e 100644 --- a/app/api/mobile/api.rb +++ b/app/api/mobile/api.rb @@ -27,6 +27,7 @@ module Mobile mount Apis::Auth mount Apis::Users mount Apis::Courses + mount Apis::Watches add_swagger_documentation ({api_version: 'v1', base_path: '/api'}) end diff --git a/app/api/mobile/apis/auth.rb b/app/api/mobile/apis/auth.rb index 136e5b171..ae233a853 100644 --- a/app/api/mobile/apis/auth.rb +++ b/app/api/mobile/apis/auth.rb @@ -30,6 +30,7 @@ module Mobile desc "用户登出" params do + requires :token, type: String end delete do authenticate! diff --git a/app/api/mobile/apis/courses.rb b/app/api/mobile/apis/courses.rb index 1084e8cbc..9aeea5176 100644 --- a/app/api/mobile/apis/courses.rb +++ b/app/api/mobile/apis/courses.rb @@ -2,11 +2,11 @@ module Mobile module Apis class Courses < Grape::API resource :courses do - desc "get all courses" + desc "获取所有课程" params do - optional :school_id, type: Integer, desc: 'school number' - requires :per_page_count, type: Integer - requires :page, type: Integer, desc: 'current page no' + optional :school_id, type: Integer, desc: '传入学校id,返回该学校课程列表' + requires :per_page_count, type: Integer, desc: '每页总数' + requires :page, type: Integer, desc: '当前页码' end get do cs = CoursesService.new @@ -15,7 +15,7 @@ module Mobile present :status, 0 end - desc "Return a course" + desc "返回单个课程" params do requires :id, type: Integer end diff --git a/app/api/mobile/apis/users.rb b/app/api/mobile/apis/users.rb index 5dc25d401..d05809726 100644 --- a/app/api/mobile/apis/users.rb +++ b/app/api/mobile/apis/users.rb @@ -2,12 +2,8 @@ module Mobile module Apis class Users < Grape::API resource :users do - desc "get all users" - get do - ['hello'] - end - desc "add a user" + desc "注册用户" params do requires :login, type: String, desc: 'username' requires :mail, type: String, desc: 'mail' @@ -27,8 +23,9 @@ module Mobile end - desc "modify user" + desc "修改用户" params do + requires :token, type: String #optional :file, type: File, desc: 'avatar' optional :occupation, type: String optional :brief_introduction, type: String diff --git a/app/api/mobile/apis/watches.rb b/app/api/mobile/apis/watches.rb new file mode 100644 index 000000000..0715ff4a2 --- /dev/null +++ b/app/api/mobile/apis/watches.rb @@ -0,0 +1,53 @@ +module Mobile + module Apis + class Watches < Grape::API + resource :watches do + + desc "获取所有关注" + params do + requires :token, type: String + end + get do + authenticate! + ws = UsersService.new + ws.user_watcher(id: current_user.id) + end + + + desc "关注某人" + params do + requires :token, type: String + requires :object_id, type: Integer, desc: '关注的用户的id' + end + post do + authenticate! + ws = WatchesService.new + begin + o = ws.watch(params.merge({current_user_id:current_user.id, object_type:'user' }) ) + {status:0 , data: o} + rescue =>e + {status:1, message: e.message} + end + end + + + desc "取消关注" + params do + requires :token, type: String + requires :object_id, type: Integer, desc: '取消关注的用户的id' + end + delete do + authenticate! + ws = WatchesService.new + begin + ws.unwatch(params.merge({current_user_id:current_user.id, object_type:'user' }) ) + {status:0} + rescue =>e + {status:1, message: e.message} + end + end + + end + end + end +end \ No newline at end of file diff --git a/app/controllers/watchers_controller.rb b/app/controllers/watchers_controller.rb index 096e44f06..f6d01a03d 100644 --- a/app/controllers/watchers_controller.rb +++ b/app/controllers/watchers_controller.rb @@ -17,7 +17,7 @@ class WatchersController < ApplicationController before_filter :require_login#, :find_watchables, :only => [:watch, :unwatch] def watch - s = Service.new + s = WatchesService.new watchables = s.watch params.merge(:current_user_id => User.current.id) respond_to do |format| format.html { redirect_to_referer_or {render :text => (true ? 'Watcher added.' : 'Watcher removed.'), :layout => true}} @@ -33,7 +33,7 @@ class WatchersController < ApplicationController end def unwatch - s = Service.new + s = WatchesService.new watchables = s.unwatch params.merge(:current_user_id => User.current.id) respond_to do |format| format.html { redirect_to_referer_or {render :text => (false ? 'Watcher added.' : 'Watcher removed.'), :layout => true}} diff --git a/app/services/service.rb b/app/services/watches_service.rb similarity index 96% rename from app/services/service.rb rename to app/services/watches_service.rb index 413d9bfb8..2b9bed3cd 100644 --- a/app/services/service.rb +++ b/app/services/watches_service.rb @@ -1,4 +1,4 @@ -class Service +class WatchesService def watch params @current_user = User.find(params[:current_user_id]) @watchables = find_watchables params From 96004b327028d7abe4d51c370daa18e413526eb8 Mon Sep 17 00:00:00 2001 From: z9hang Date: Wed, 10 Dec 2014 16:26:09 +0800 Subject: [PATCH 21/83] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=AF=86=E7=A0=81?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/my_controller.rb | 36 ++++++++++++++++++++++++-------- app/services/users_service.rb | 15 +++++++++++++ 2 files changed, 42 insertions(+), 9 deletions(-) diff --git a/app/controllers/my_controller.rb b/app/controllers/my_controller.rb index 308cb62ca..88c59f9d7 100644 --- a/app/controllers/my_controller.rb +++ b/app/controllers/my_controller.rb @@ -179,17 +179,35 @@ class MyController < ApplicationController return end if request.post? - if @user.check_password?(params[:password]) - @user.password, @user.password_confirmation = params[:new_password], params[:new_password_confirmation] - - if @user.save - flash.now[:notice] = l(:notice_account_password_updated) - redirect_to my_account_url - end - else - flash.now[:error] = l(:notice_account_wrong_password) + us = UsersService.new + @user = us.change_password params.merge(:current_user_id => @user.id) + if @user.errors.full_messages.count <= 0 + flash.now[:notice] = l(:notice_account_password_updated) + redirect_to my_account_url end end + rescue Exception => e + if e.message == 'wrong password' + flash.now[:error] = l(:notice_account_wrong_password) + end + # @user = User.current + # unless @user.change_password_allowed? + # flash.now[:error] = l(:notice_can_t_change_password) + # redirect_to my_account_url + # return + # end + # if request.post? + # if @user.check_password?(params[:password]) + # @user.password, @user.password_confirmation = params[:new_password], params[:new_password_confirmation] + # + # if @user.save + # flash.now[:notice] = l(:notice_account_password_updated) + # redirect_to my_account_url + # end + # else + # flash.now[:error] = l(:notice_account_wrong_password) + # end + # end end # Create a new feeds key diff --git a/app/services/users_service.rb b/app/services/users_service.rb index b6e831e32..9587427b5 100644 --- a/app/services/users_service.rb +++ b/app/services/users_service.rb @@ -111,4 +111,19 @@ class UsersService User.watched_by(@user.id) end + #修改密码 + def change_password params + @current_user = User.find(params[:current_user_id]) + if @current_user.check_password?(params[:password]) + @current_user.password, @current_user.password_confirmation = params[:new_password], params[:new_password_confirmation] + @current_user.save + #raise @current_user.errors.full_message + #return @current_user + + else + raise 'wrong password' + end + @current_user + end + end From 40d0c03751de0e8a61a89f7c0e908002e9b63df7 Mon Sep 17 00:00:00 2001 From: guange <8863824@gmail.com> Date: Wed, 10 Dec 2014 16:51:19 +0800 Subject: [PATCH 22/83] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E7=94=A8=E6=88=B7?= =?UTF-8?q?=E5=AF=86=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/api/mobile/apis/users.rb | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/app/api/mobile/apis/users.rb b/app/api/mobile/apis/users.rb index d05809726..e80808c5d 100644 --- a/app/api/mobile/apis/users.rb +++ b/app/api/mobile/apis/users.rb @@ -38,7 +38,27 @@ module Mobile us = UsersService.new begin ue = us.edit_user params.merge(id: current_user.id) - {status: 0, data: ue} + present :data, user, with: Mobile::Entities::User + present :status, 0 + rescue => e + {status: 1, message: e.message} + end + end + + + desc '修改密码' + params do + requires :token, type: String + requires :password, type:String , desc: '原密码' + requires :new_password, type: String, desc: '新密码' + end + post 'password' do + authenticate! + us = UsersService.new + begin + ue = us.change_password params.merge(new_password_confirmation: params[:new_password]) + present :data, user, with: Mobile::Entities::User + present :status, 0 rescue => e {status: 1, message: e.message} end From 236968d946fe31f27257f4b9248e3d7c56466d34 Mon Sep 17 00:00:00 2001 From: guange <8863824@gmail.com> Date: Wed, 10 Dec 2014 17:29:39 +0800 Subject: [PATCH 23/83] =?UTF-8?q?=E9=94=99=E8=AF=AF=E7=BB=9F=E4=B8=80?= =?UTF-8?q?=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/api/mobile/api.rb | 1 + app/api/mobile/apis/auth.rb | 2 +- app/api/mobile/apis/users.rb | 34 +++++++--------------- app/api/mobile/apis/watches.rb | 19 ++++-------- app/api/mobile/middleware/error_handler.rb | 18 ++++++++++++ 5 files changed, 37 insertions(+), 37 deletions(-) create mode 100644 app/api/mobile/middleware/error_handler.rb diff --git a/app/api/mobile/api.rb b/app/api/mobile/api.rb index 64016458e..d3fe414a4 100644 --- a/app/api/mobile/api.rb +++ b/app/api/mobile/api.rb @@ -4,6 +4,7 @@ module Mobile version 'v1', using: :path format :json content_type :json, "application/json;charset=UTF-8" + use Mobile::Middleware::ErrorHandler helpers do def logger diff --git a/app/api/mobile/apis/auth.rb b/app/api/mobile/apis/auth.rb index ae233a853..05b0a793b 100644 --- a/app/api/mobile/apis/auth.rb +++ b/app/api/mobile/apis/auth.rb @@ -24,7 +24,7 @@ module Mobile present :data, {token: key.access_token, user: api_user}, using: Entities::Auth present :status, 0 else - {status: 1, message: 'Unauthorized.'} + raise 'Unauthorized.' end end diff --git a/app/api/mobile/apis/users.rb b/app/api/mobile/apis/users.rb index e80808c5d..61859904f 100644 --- a/app/api/mobile/apis/users.rb +++ b/app/api/mobile/apis/users.rb @@ -11,15 +11,11 @@ module Mobile end post do us = UsersService.new - begin - user = us.register params.merge(:password_confirmation => params[:password], - :should_confirmation_password => true) - raise "register failed #{user.errors.full_messages}" if user.new_record? - present :data, user, with: Mobile::Entities::User - present :status, 0 - rescue => e - {status: 1, message: e.message} - end + user = us.register params.merge(:password_confirmation => params[:password], + :should_confirmation_password => true) + raise "register failed #{user.errors.full_messages}" if user.new_record? + present :data, user, with: Mobile::Entities::User + present :status, 0 end @@ -36,13 +32,9 @@ module Mobile put ':id' do authenticate! us = UsersService.new - begin - ue = us.edit_user params.merge(id: current_user.id) - present :data, user, with: Mobile::Entities::User - present :status, 0 - rescue => e - {status: 1, message: e.message} - end + ue = us.edit_user params.merge(id: current_user.id) + present :data, user, with: Mobile::Entities::User + present :status, 0 end @@ -55,13 +47,9 @@ module Mobile post 'password' do authenticate! us = UsersService.new - begin - ue = us.change_password params.merge(new_password_confirmation: params[:new_password]) - present :data, user, with: Mobile::Entities::User - present :status, 0 - rescue => e - {status: 1, message: e.message} - end + ue = us.change_password params.merge(new_password_confirmation: params[:new_password]) + present :data, user, with: Mobile::Entities::User + present :status, 0 end end diff --git a/app/api/mobile/apis/watches.rb b/app/api/mobile/apis/watches.rb index 0715ff4a2..0ee454c25 100644 --- a/app/api/mobile/apis/watches.rb +++ b/app/api/mobile/apis/watches.rb @@ -9,8 +9,9 @@ module Mobile end get do authenticate! - ws = UsersService.new - ws.user_watcher(id: current_user.id) + us = UsersService.new + ws = us.user_watcher(id: current_user.id) + {status: 0, data: ws } end @@ -22,12 +23,8 @@ module Mobile post do authenticate! ws = WatchesService.new - begin o = ws.watch(params.merge({current_user_id:current_user.id, object_type:'user' }) ) - {status:0 , data: o} - rescue =>e - {status:1, message: e.message} - end + {status:0, data: o} end @@ -39,12 +36,8 @@ module Mobile delete do authenticate! ws = WatchesService.new - begin - ws.unwatch(params.merge({current_user_id:current_user.id, object_type:'user' }) ) - {status:0} - rescue =>e - {status:1, message: e.message} - end + ws.unwatch(params.merge({current_user_id:current_user.id, object_type:'user' }) ) + {status: 0} end end diff --git a/app/api/mobile/middleware/error_handler.rb b/app/api/mobile/middleware/error_handler.rb new file mode 100644 index 000000000..3cbc74bd6 --- /dev/null +++ b/app/api/mobile/middleware/error_handler.rb @@ -0,0 +1,18 @@ +module Mobile + module Middleware + class ErrorHandler < Grape::Middleware::Base + def call!(env) + @env = env + begin + @app.call(@env) + rescue =>e + message = {status: 1, message: e.message }.to_json + status = 200 + headers = { 'Content-Type' => content_type } + Rack::Response.new([message], status, headers).finish + # throw :error, :message => e.message || options[:default_message], :status => 500 + end + end + end + end +end \ No newline at end of file From 2ab2abe9e553ed598456fbdb7c6c8f1e833f4ad8 Mon Sep 17 00:00:00 2001 From: z9hang Date: Wed, 10 Dec 2014 18:26:38 +0800 Subject: [PATCH 24/83] =?UTF-8?q?=E8=AF=BE=E7=A8=8B=E6=90=9C=E7=B4=A2?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/api/mobile/apis/auth.rb | 2 ++ app/api/mobile/apis/courses.rb | 1 + app/api/mobile/apis/users.rb | 1 + app/api/mobile/apis/watches.rb | 1 + app/controllers/courses_controller.rb | 26 +++++++++++++++++--------- app/services/courses_service.rb | 21 +++++++++++++++++++++ 6 files changed, 43 insertions(+), 9 deletions(-) diff --git a/app/api/mobile/apis/auth.rb b/app/api/mobile/apis/auth.rb index ae233a853..5a6c0f34f 100644 --- a/app/api/mobile/apis/auth.rb +++ b/app/api/mobile/apis/auth.rb @@ -1,3 +1,5 @@ +#coding=utf-8 + module Mobile module Entities diff --git a/app/api/mobile/apis/courses.rb b/app/api/mobile/apis/courses.rb index 9aeea5176..515ebce77 100644 --- a/app/api/mobile/apis/courses.rb +++ b/app/api/mobile/apis/courses.rb @@ -1,3 +1,4 @@ +#coding=utf-8 module Mobile module Apis class Courses < Grape::API diff --git a/app/api/mobile/apis/users.rb b/app/api/mobile/apis/users.rb index d05809726..52932b883 100644 --- a/app/api/mobile/apis/users.rb +++ b/app/api/mobile/apis/users.rb @@ -1,3 +1,4 @@ +#coding=utf-8 module Mobile module Apis class Users < Grape::API diff --git a/app/api/mobile/apis/watches.rb b/app/api/mobile/apis/watches.rb index 0715ff4a2..ce846debd 100644 --- a/app/api/mobile/apis/watches.rb +++ b/app/api/mobile/apis/watches.rb @@ -1,3 +1,4 @@ +#coding=utf-8 module Mobile module Apis class Watches < Grape::API diff --git a/app/controllers/courses_controller.rb b/app/controllers/courses_controller.rb index bd389ff68..ac25d59cf 100644 --- a/app/controllers/courses_controller.rb +++ b/app/controllers/courses_controller.rb @@ -126,18 +126,21 @@ class CoursesController < ApplicationController # 课程搜索 # add by nwb def search - courses_all = Course.all_course - name = params[:name] - (redirect_to courses_url, :notice => l(:label_sumbit_empty);return) if name.blank? - @courses = courses_all.visible - if params[:name].present? - @courses_all = @courses.like(params[:name]) - else - @courses_all = @courses; - end + #courses_all = Course.all_course + #name = params[:name] + #(redirect_to courses_url, :notice => l(:label_sumbit_empty);return) if name.blank? + #@courses = courses_all.visible + #if params[:name].present? + # @courses_all = @courses.like(params[:name]) + #else + # @courses_all = @courses; + #end + cs = CoursesService.new + @courses_all = cs.search_course params @course_count = @courses_all.count @course_pages = Paginator.new @course_count, per_page_option, params['page'] + # 课程的动态数 @course_activity_count=Hash.new @courses_all.each do |course| @@ -194,6 +197,11 @@ class CoursesController < ApplicationController render_feed(courses, :title => "#{Setting.app_title}: #{l(:label_course_latest)}") } end + + rescue Exception => e + if e.message == 'sumbit empty' + (redirect_to courses_url, :notice => l(:label_sumbit_empty);return) + end end def member diff --git a/app/services/courses_service.rb b/app/services/courses_service.rb index 0a1fa553d..f1c2babbe 100644 --- a/app/services/courses_service.rb +++ b/app/services/courses_service.rb @@ -26,4 +26,25 @@ class CoursesService course_list end + #搜索课程 + def search_course params + courses_all = Course.all_course + name = params[:name] + if name.blank? + raise 'sumbit empty' + end + @courses = courses_all.visible + if params[:name].present? + @courses_all = @courses.like(params[:name]) + else + @courses_all = @courses; + end + @courses_all + end + + #获取头像 + def get_img obj + url_to_avatar(obj) + end + end \ No newline at end of file From 1494821b675989ac27b2aa09dbfb3f06e79240e1 Mon Sep 17 00:00:00 2001 From: z9hang Date: Wed, 10 Dec 2014 20:27:41 +0800 Subject: [PATCH 25/83] =?UTF-8?q?=E7=94=A8=E6=88=B7=E6=90=9C=E7=B4=A2?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/users_controller.rb | 52 +++++++++++++++-------------- app/services/users_service.rb | 12 +++++++ 2 files changed, 39 insertions(+), 25 deletions(-) diff --git a/app/controllers/users_controller.rb b/app/controllers/users_controller.rb index 4049c2ae8..084e720d8 100644 --- a/app/controllers/users_controller.rb +++ b/app/controllers/users_controller.rb @@ -364,33 +364,35 @@ class UsersController < ApplicationController sort_init 'login', 'asc' sort_update %w(login firstname lastname mail admin created_on last_login_on) (redirect_to user_url, :notice => l(:label_sumbit_empty);return) if params[:name].blank? - case params[:format] - when 'xml', 'json' - @offset, @limit = api_offset_and_limit({:limit => 15}) + case params[:format] + when 'xml', 'json' + @offset, @limit = api_offset_and_limit({:limit => 15}) + else + @limit = 15#per_page_option + end + # + #@status = params[:status] || 1 + #has = { + # "show_changesets" => true + #} + # scope = User.logged.status(@status) + # @search_by = params[:search_by] ? params[:search_by][:id] : 0 + # scope = scope.like(params[:name],@search_by) if params[:name].present? + us = UsersService.new + scope = us.search_user params + @user_count = scope.count + @user_pages = Paginator.new @user_count, @limit, params['page'] + @user_base_tag = params[:id] ? 'base_users':'users_base' + @offset ||= @user_pages.reverse_offset + unless @offset == 0 + @users = scope.offset(@offset).limit(@limit).all.reverse else - @limit = 15#per_page_option + limit = @user_count % @limit + if limit == 0 + limit = @limit + end + @users = scope.offset(@offset).limit(limit).all.reverse end - - @status = params[:status] || 1 - has = { - "show_changesets" => true - } - scope = User.logged.status(@status) - @search_by = params[:search_by] ? params[:search_by][:id] : 0 - scope = scope.like(params[:name],@search_by) if params[:name].present? - @user_count = scope.count - @user_pages = Paginator.new @user_count, @limit, params['page'] - @user_base_tag = params[:id] ? 'base_users':'users_base' - @offset ||= @user_pages.reverse_offset - unless @offset == 0 - @users = scope.offset(@offset).limit(@limit).all.reverse - else - limit = @user_count % @limit - if limit == 0 - limit = @limit - end - @users = scope.offset(@offset).limit(limit).all.reverse - end respond_to do |format| format.html { diff --git a/app/services/users_service.rb b/app/services/users_service.rb index 9587427b5..d281edb19 100644 --- a/app/services/users_service.rb +++ b/app/services/users_service.rb @@ -126,4 +126,16 @@ class UsersService @current_user end + #搜索用户 + def search_user params + @status = params[:status] || 1 + has = { + "show_changesets" => true + } + scope = User.logged.status(@status) + @search_by = params[:search_by] ? params[:search_by][:id] : 0 + scope = scope.like(params[:name],@search_by) if params[:name].present? + scope + end + end From 6dc057d03ca28bbb3e837a2af9d759d004d41f3c Mon Sep 17 00:00:00 2001 From: z9hang Date: Wed, 10 Dec 2014 20:53:41 +0800 Subject: [PATCH 26/83] =?UTF-8?q?=E8=AF=BE=E7=A8=8B=E8=80=81=E5=B8=88?= =?UTF-8?q?=E3=80=81=E5=AD=A6=E7=94=9F=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/courses_controller.rb | 10 ++++++---- app/services/courses_service.rb | 19 +++++++++++++++++++ 2 files changed, 25 insertions(+), 4 deletions(-) diff --git a/app/controllers/courses_controller.rb b/app/controllers/courses_controller.rb index ac25d59cf..26b96eaf3 100644 --- a/app/controllers/courses_controller.rb +++ b/app/controllers/courses_controller.rb @@ -207,19 +207,21 @@ class CoursesController < ApplicationController def member ## 有角色参数的才是课程,没有的就是项目 @render_file = 'member_list' - @teachers= searchTeacherAndAssistant(@course) + #@teachers= searchTeacherAndAssistant(@course) @canShowCode = isCourseTeacher(User.current.id,@course) && params[:role] != '1' case params[:role] when '1' @subPage_title = l :label_teacher_list - @members = searchTeacherAndAssistant(@course) + #@members = searchTeacherAndAssistant(@course) when '2' @subPage_title = l :label_student_list - @members = searchStudent(@course) + #@members = searchStudent(@course) else @subPage_title = '' - @members = @course.member_principals.includes(:roles, :principal).all.sort + #@members = @course.member_principals.includes(:roles, :principal).all.sort end + cs = CoursesService.new + @members = cs.course_teacher_or_student_list(params,@course) @members = paginateHelper @members render :layout => 'base_courses' end diff --git a/app/services/courses_service.rb b/app/services/courses_service.rb index f1c2babbe..0468de367 100644 --- a/app/services/courses_service.rb +++ b/app/services/courses_service.rb @@ -1,5 +1,6 @@ class CoursesService include ApplicationHelper + include CoursesHelper #参数school_id为0或不传时返回所有课程,否则返回对应学校的课程 #参数per_page_count分页功能,每页显示的课程数 #参数page分页功能,当前页码 @@ -47,4 +48,22 @@ class CoursesService url_to_avatar(obj) end + #课程老师或课程学生列表 + def course_teacher_or_student_list params,course + @teachers= searchTeacherAndAssistant(course) + #@canShowCode = isCourseTeacher(User.current.id,course) && params[:role] != '1' + case params[:role] + when '1' + #@subPage_title = l :label_teacher_list + @members = searchTeacherAndAssistant(course) + when '2' + #@subPage_title = l :label_student_list + @members = searchStudent(course) + else + #@subPage_title = '' + @members = @course.member_principals.includes(:roles, :principal).all.sort + end + @members + end + end \ No newline at end of file From e7060b7e007c797feaf8cee9a9ca483c376ad051 Mon Sep 17 00:00:00 2001 From: guange <8863824@gmail.com> Date: Thu, 11 Dec 2014 11:11:30 +0800 Subject: [PATCH 27/83] =?UTF-8?q?=E5=BC=80=E5=90=AFassets?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Gemfile | 1 + Gemfile.lock | 8 ++++++++ config/application.rb | 2 +- 3 files changed, 10 insertions(+), 1 deletion(-) diff --git a/Gemfile b/Gemfile index 1fe5b6c0f..e6de496ea 100644 --- a/Gemfile +++ b/Gemfile @@ -21,6 +21,7 @@ gem 'acts-as-taggable-on', '2.4.1' group :development do gem 'grape-swagger' + gem 'grape-swagger-ui', git: 'https://github.com/guange2015/grape-swagger-ui.git' gem 'puma' gem 'better_errors', path: 'lib/better_errors' gem 'rack-mini-profiler', path: 'lib/rack-mini-profiler' diff --git a/Gemfile.lock b/Gemfile.lock index 95ea5b6e2..4ac0ba2a3 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -1,3 +1,10 @@ +GIT + remote: https://github.com/guange2015/grape-swagger-ui.git + revision: 4c33439f236c174ae0e774b3435ef2547995c21d + specs: + grape-swagger-ui (0.0.4) + railties (>= 3.1) + PATH remote: lib/better_errors specs: @@ -311,6 +318,7 @@ DEPENDENCIES grape (~> 0.9.0) grape-entity grape-swagger + grape-swagger-ui! guard-rails (~> 0.5.3) guard-spork (~> 1.5.1) guard-test (~> 1.0.0) diff --git a/config/application.rb b/config/application.rb index d37a9eae2..23d0c8a14 100644 --- a/config/application.rb +++ b/config/application.rb @@ -44,7 +44,7 @@ module RedmineApp config.filter_parameters += [:password] # Enable the asset pipeline - config.assets.enabled = false + config.assets.enabled = true # Version of your assets, change this if you want to expire all your assets config.assets.version = '1.0' From a8358a89db900e4cbf52e8a374b4b9905947fa93 Mon Sep 17 00:00:00 2001 From: guange <8863824@gmail.com> Date: Thu, 11 Dec 2014 11:53:38 +0800 Subject: [PATCH 28/83] =?UTF-8?q?=E5=BC=80=E5=90=AFassets=E5=87=BA?= =?UTF-8?q?=E9=94=99,=E8=BF=98=E5=8E=9F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- config/application.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/application.rb b/config/application.rb index 23d0c8a14..d37a9eae2 100644 --- a/config/application.rb +++ b/config/application.rb @@ -44,7 +44,7 @@ module RedmineApp config.filter_parameters += [:password] # Enable the asset pipeline - config.assets.enabled = true + config.assets.enabled = false # Version of your assets, change this if you want to expire all your assets config.assets.version = '1.0' From 73ac2e562d85e0c5b2d5d96201c366a394d5639a Mon Sep 17 00:00:00 2001 From: z9hang Date: Thu, 11 Dec 2014 15:39:14 +0800 Subject: [PATCH 29/83] =?UTF-8?q?=E8=AF=BE=E7=A8=8B=E9=80=9A=E7=9F=A5?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/courses_controller.rb | 2 +- app/services/courses_service.rb | 17 +++++++++++++++++ 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/app/controllers/courses_controller.rb b/app/controllers/courses_controller.rb index 26b96eaf3..b7ff5364e 100644 --- a/app/controllers/courses_controller.rb +++ b/app/controllers/courses_controller.rb @@ -281,7 +281,7 @@ class CoursesController < ApplicationController @issue_custom_fields = IssueCustomField.sorted.all @trackers = Tracker.sorted.all - if @course.save + if @course.save #unless User.current.admin? r = Role.givable.find_by_id(Setting.new_project_user_role_id.to_i) || Role.givable.first m = Member.new(:user => User.current, :roles => [r]) diff --git a/app/services/courses_service.rb b/app/services/courses_service.rb index 0468de367..7e3302c5b 100644 --- a/app/services/courses_service.rb +++ b/app/services/courses_service.rb @@ -66,4 +66,21 @@ class CoursesService @members end + #课程通知列表 + def course_news_list params + if params[:course_id] && @course==nil + @course = Course.find(params[:course_id]) + end + scope = @course ? @course.news.course_visible : News.course_visible + end + + def show_course params + course = Course.find(params[:id]) + course + end + + def create_course + + end + end \ No newline at end of file From 18511817682f08f109c9719763046d5b0c5e63c5 Mon Sep 17 00:00:00 2001 From: z9hang Date: Thu, 11 Dec 2014 17:11:05 +0800 Subject: [PATCH 30/83] =?UTF-8?q?=E6=96=B0=E5=BB=BA=E8=AF=BE=E7=A8=8B?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/courses_controller.rb | 122 +++++++++++++++----------- app/services/courses_service.rb | 33 ++++++- 2 files changed, 104 insertions(+), 51 deletions(-) diff --git a/app/controllers/courses_controller.rb b/app/controllers/courses_controller.rb index b7ff5364e..375c6c06e 100644 --- a/app/controllers/courses_controller.rb +++ b/app/controllers/courses_controller.rb @@ -263,57 +263,79 @@ class CoursesController < ApplicationController end def create - if User.current.user_extensions.identity - @course = Course.new - @course.extra='course' + DateTime.parse(Time.now.to_s).strftime('%Y-%m-%d_%H-%M-%S').to_s - @course.safe_attributes = params[:course] - @course.tea_id = User.current.id - # added by bai - @course.term = params[:term] - @course.time = params[:time] - #@course.school_id = params[:occupation] - @course.school_id = User.current.user_extensions.school_id - @course.setup_time = params[:setup_time] - @course.endup_time = params[:endup_time] - @course.class_period = params[:class_period] - end - - @issue_custom_fields = IssueCustomField.sorted.all - @trackers = Tracker.sorted.all - - if @course.save - #unless User.current.admin? - r = Role.givable.find_by_id(Setting.new_project_user_role_id.to_i) || Role.givable.first - m = Member.new(:user => User.current, :roles => [r]) - m.project_id = -1 - course = CourseInfos.new(:user_id => User.current.id, :course_id => @course.id) - #user_grades = UserGrade.create(:user_id => User.current.id, :course_id => @course.id) - if params[:course][:is_public] == '1' - course_status = CourseStatus.create(:course_id => @course.id, :watchers_count => 0, :changesets_count => 0, :grade => 0, :course_type => @course_tag) - end - @course.members << m - @course.course_infos << course - #end - respond_to do |format| - format.html { - flash[:notice] = l(:notice_successful_create) - if params[:continue] - redirect_to new_course_url(attrs, :course => '0') - elsif params[:course_continue] - redirect_to new_course_url(:course => '1') - else - redirect_to settings_course_url(@course, :course_type => 1) + cs = CoursesService.new + @course = cs.create_course params + if @course.new_record? + respond_to do |format| + format.html { render :action => 'new', :layout => 'base' } #Added by young + format.api { render_validation_errors(@course) } + end + else + respond_to do |format| + format.html { + flash[:notice] = l(:notice_successful_create) + if params[:continue] + redirect_to new_course_url(attrs, :course => '0') + elsif params[:course_continue] + redirect_to new_course_url(:course => '1') + else + redirect_to settings_course_url(@course, :course_type => 1) + end + } + format.api { render :action => 'show', :status => :created, :location => url_for(:controller => 'courses', :action => 'show', :id => @course.id) } end - } - format.api { render :action => 'show', :status => :created, :location => url_for(:controller => 'courses', :action => 'show', :id => @course.id) } - end - else - #@course.destroy - respond_to do |format| - format.html { render :action => 'new', :layout => 'base' } #Added by young - format.api { render_validation_errors(@course) } - end - end + end + #if User.current.user_extensions.identity + # @course = Course.new + # @course.extra='course' + DateTime.parse(Time.now.to_s).strftime('%Y-%m-%d_%H-%M-%S').to_s + # @course.safe_attributes = params[:course] + # @course.tea_id = User.current.id + # # added by bai + # @course.term = params[:term] + # @course.time = params[:time] + # #@course.school_id = params[:occupation] + # @course.school_id = User.current.user_extensions.school_id + # @course.setup_time = params[:setup_time] + # @course.endup_time = params[:endup_time] + # @course.class_period = params[:class_period] + #end + # + #@issue_custom_fields = IssueCustomField.sorted.all + #@trackers = Tracker.sorted.all + # + #if @course.save + # #unless User.current.admin? + # r = Role.givable.find_by_id(Setting.new_project_user_role_id.to_i) || Role.givable.first + # m = Member.new(:user => User.current, :roles => [r]) + # m.project_id = -1 + # course = CourseInfos.new(:user_id => User.current.id, :course_id => @course.id) + # #user_grades = UserGrade.create(:user_id => User.current.id, :course_id => @course.id) + # if params[:course][:is_public] == '1' + # course_status = CourseStatus.create(:course_id => @course.id, :watchers_count => 0, :changesets_count => 0, :grade => 0, :course_type => @course_tag) + # end + # @course.members << m + # @course.course_infos << course + # #end + # respond_to do |format| + # format.html { + # flash[:notice] = l(:notice_successful_create) + # if params[:continue] + # redirect_to new_course_url(attrs, :course => '0') + # elsif params[:course_continue] + # redirect_to new_course_url(:course => '1') + # else + # redirect_to settings_course_url(@course, :course_type => 1) + # end + # } + # format.api { render :action => 'show', :status => :created, :location => url_for(:controller => 'courses', :action => 'show', :id => @course.id) } + # end + # else + # #@course.destroy + # respond_to do |format| + # format.html { render :action => 'new', :layout => 'base' } #Added by young + # format.api { render_validation_errors(@course) } + # end + # end end def course diff --git a/app/services/courses_service.rb b/app/services/courses_service.rb index 7e3302c5b..8d15a9671 100644 --- a/app/services/courses_service.rb +++ b/app/services/courses_service.rb @@ -79,8 +79,39 @@ class CoursesService course end - def create_course + #创建课程 + def create_course params + if User.current.user_extensions.identity + @course = Course.new + @course.extra = 'course' + DateTime.parse(Time.now.to_s).strftime('%Y-%m-%d_%H-%M-%S').to_s + @course.safe_attributes = params[:course] + @course.tea_id = User.current.id + @course.term = params[:term] + @course.time = params[:time] + #@course.school_id = params[:occupation] + @course.school_id = User.current.user_extensions.school_id + @course.setup_time = params[:setup_time] + @course.endup_time = params[:endup_time] + @course.class_period = params[:class_period] + end + @issue_custom_fields = IssueCustomField.sorted.all + @trackers = Tracker.sorted.all + + if @course.save + #unless User.current.admin? + r = Role.givable.find_by_id(Setting.new_project_user_role_id.to_i) || Role.givable.first + m = Member.new(:user => User.current, :roles => [r]) + m.project_id = -1 + course = CourseInfos.new(:user_id => User.current.id, :course_id => @course.id) + #user_grades = UserGrade.create(:user_id => User.current.id, :course_id => @course.id) + if params[:course][:is_public] == '1' + course_status = CourseStatus.create(:course_id => @course.id, :watchers_count => 0, :changesets_count => 0, :grade => 0, :course_type => @course_tag) + end + @course.members << m + @course.course_infos << course + end + @course end end \ No newline at end of file From 6c4d358b7e5f139e7659c7fad159e5bcd436ba30 Mon Sep 17 00:00:00 2001 From: z9hang Date: Fri, 12 Dec 2014 14:54:01 +0800 Subject: [PATCH 31/83] =?UTF-8?q?=E5=8A=A0=E5=85=A5=E8=AF=BE=E7=A8=8B?= =?UTF-8?q?=E3=80=81=E9=80=80=E5=87=BA=E8=AF=BE=E7=A8=8B=E3=80=81=E7=BC=96?= =?UTF-8?q?=E8=BE=91=E8=AF=BE=E7=A8=8B=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/courses_controller.rb | 130 +++++++++++++++----------- app/services/courses_service.rb | 64 +++++++++++++ 2 files changed, 141 insertions(+), 53 deletions(-) diff --git a/app/controllers/courses_controller.rb b/app/controllers/courses_controller.rb index 375c6c06e..c1a7d9237 100644 --- a/app/controllers/courses_controller.rb +++ b/app/controllers/courses_controller.rb @@ -26,36 +26,38 @@ class CoursesController < ApplicationController def join if User.current.logged? - course = Course.find_by_id params[:object_id] - if course - if course_endTime_timeout? course - @state = 2 - else - if User.current.member_of_course?(course) - @state = 3 - else - if params[:course_password] == course.password - members = [] - members << Member.new(:role_ids => [10], :user_id => User.current.id) - course.members << members - StudentsForCourse.create(:student_id => User.current.id, :course_id => params[:object_id]) - @state = 0 - else - @state = 1 - end - end - end - else - @state = 4 - end + cs = CoursesService.new + @state,course = cs.join_course params + #course = Course.find_by_id params[:object_id] + #if course + # if course_endTime_timeout? course + # @state = 2 + # else + # if User.current.member_of_course?(course) + # @state = 3 + # else + # if params[:course_password] == course.password + # members = [] + # members << Member.new(:role_ids => [10], :user_id => User.current.id) + # course.members << members + # StudentsForCourse.create(:student_id => User.current.id, :course_id => params[:object_id]) + # @state = 0 + # else + # @state = 1 + # end + # end + # end + #else + # @state = 4 + #end else - @state = 5 + @state = 5 #未登录 end respond_to do |format| format.js { render :partial => 'set_join', :locals => {:user => User.current, :course => course, :object_id => params[:object_id]} } end rescue Exception => e - @state = 4 + @state = 4 #已经加入了课程 respond_to do |format| # format.html { redirect_to_referer_or {render :text => (watching ? 'Watcher added.' : 'Watcher removed.'), :layout => true}} format.js { render :partial => 'set_join', :locals => {:user => User.current, :course => nil, :object_id => nil} } @@ -64,15 +66,18 @@ class CoursesController < ApplicationController def unjoin if User.current.logged? - - @member = Member.where('course_id = ? and user_id = ?', params[:object_id], User.current.id) - @member.first.destroy - - joined = StudentsForCourse.where('student_id = ? and course_id = ?', User.current.id, params[:object_id]) - joined.each do |join| - join.delete - end + # + # @member = Member.where('course_id = ? and user_id = ?', params[:object_id], User.current.id) + # @member.first.destroy + # + # joined = StudentsForCourse.where('student_id = ? and course_id = ?', User.current.id, params[:object_id]) + # joined.each do |join| + # join.delete + # end + cs = CoursesService.new + cs.exit_course params,User.current end + respond_to do |format| # format.html { redirect_to_referer_or {render :text => (watching ? 'Watcher added.' : 'Watcher removed.'), :layout => true}} format.js { render :partial => 'set_join', :locals => {:user => User.current, :course => Course.find(params[:object_id]), :object_id => params[:object_id]} } @@ -87,27 +92,16 @@ class CoursesController < ApplicationController #更新课程信息 def update - @course.safe_attributes = params[:course] - @course.time = params[:time] - @course.term = params[:term] - @course.class_period = params[:class_period] - if @course.save - if params[:course][:is_public] == '0' - course_status = CourseStatus.find_by_course_id(@course.id) - course_status.destroy if course_status - elsif params[:course][:is_public] == '1' - course_status = CourseStatus.find_by_course_id(@course.id) - course_status.destroy if course_status - course_status = CourseStatus.create(:course_id => @course.id, :grade => 0) - end - - respond_to do |format| - format.html { - flash[:notice] = l(:notice_successful_update) - redirect_to settings_course_url(@course) - } - format.api { render_api_ok } - end + cs = CoursesService.new + @course = cs.edit_course params,@course + if @course.errors.full_messages.count <= 0 + respond_to do |format| + format.html { + flash[:notice] = l(:notice_successful_update) + redirect_to settings_course_url(@course) + } + format.api { render_api_ok } + end else respond_to do |format| format.html { @@ -117,6 +111,36 @@ class CoursesController < ApplicationController format.api { render_validation_errors(@course) } end end + #@course.safe_attributes = params[:course] + #@course.time = params[:time] + #@course.term = params[:term] + #@course.class_period = params[:class_period] + #if @course.save + # if params[:course][:is_public] == '0' + # course_status = CourseStatus.find_by_course_id(@course.id) + # course_status.destroy if course_status + # elsif params[:course][:is_public] == '1' + # course_status = CourseStatus.find_by_course_id(@course.id) + # course_status.destroy if course_status + # course_status = CourseStatus.create(:course_id => @course.id, :grade => 0) + # end + # + # respond_to do |format| + # format.html { + # flash[:notice] = l(:notice_successful_update) + # redirect_to settings_course_url(@course) + # } + # format.api { render_api_ok } + # end + #else + # respond_to do |format| + # format.html { + # settings + # render :action => 'settings' + # } + # format.api { render_validation_errors(@course) } + # end + #end end def new_join diff --git a/app/services/courses_service.rb b/app/services/courses_service.rb index 8d15a9671..4b1428b5f 100644 --- a/app/services/courses_service.rb +++ b/app/services/courses_service.rb @@ -114,4 +114,68 @@ class CoursesService @course end + #编辑课程 + def edit_course params,course + course.safe_attributes = params[:course] + course.time = params[:time] + course.term = params[:term] + course.class_period = params[:class_period] + if course.save + if params[:course][:is_public] == '0' + course_status = CourseStatus.find_by_course_id(course.id) + course_status.destroy if course_status + elsif params[:course][:is_public] == '1' + course_status = CourseStatus.find_by_course_id(course.id) + course_status.destroy if course_status + course_status = CourseStatus.create(:course_id => course.id, :grade => 0) + end + end + course + end + + #退出课程 + def exit_course params,user + @member = Member.where('course_id = ? and user_id = ?', params[:object_id], user.id) + @member.first.destroy + + joined = StudentsForCourse.where('student_id = ? and course_id = ?', user.id, params[:object_id]) + joined.each do |join| + join.delete + end + end + + #加入课程 + #@state == 0 加入成功 + #@state == 1 密码错误 + #@state == 2 课程已过期 请联系课程管理员重启课程。(在配置课程处) + #@state == 3 您已经加入了课程 + #@state == 4 您加入的课程不存在 + #@state == 5 您还未登录 + #@state 其他 未知错误,请稍后再试 + def join_course params + course = Course.find_by_id params[:object_id] + if course + if course_endTime_timeout? course + @state = 2 + else + if User.current.member_of_course?(course) + @state = 3 + else + if params[:course_password] == course.password + members = [] + members << Member.new(:role_ids => [10], :user_id => User.current.id) + course.members << members + StudentsForCourse.create(:student_id => User.current.id, :course_id => params[:object_id]) + @state = 0 + else + @state = 1 + end + end + end + else + @state = 4 + end + [@state,course] + end + end \ No newline at end of file From ee988b6ec5708ed169cf9005eddd3bb93776cbc5 Mon Sep 17 00:00:00 2001 From: guange <8863824@gmail.com> Date: Sat, 13 Dec 2014 21:52:26 +0800 Subject: [PATCH 32/83] =?UTF-8?q?=E8=A1=A5=E5=85=A8=E8=AF=BE=E7=A8=8B?= =?UTF-8?q?=E5=92=8C=E7=94=A8=E6=88=B7=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/api/mobile/apis/courses.rb | 73 ++++++++++++++++++++++++++++++++++ app/api/mobile/apis/users.rb | 11 +++++ 2 files changed, 84 insertions(+) diff --git a/app/api/mobile/apis/courses.rb b/app/api/mobile/apis/courses.rb index 515ebce77..4920f6f30 100644 --- a/app/api/mobile/apis/courses.rb +++ b/app/api/mobile/apis/courses.rb @@ -16,6 +16,79 @@ module Mobile present :status, 0 end + desc "新建课程[TODO,参数没弄清]" + params do + end + post do + end + + desc "编辑课程[TODO,参数没弄清]" + params do + end + post do + end + + desc "加入课程" + params do + end + post ":id" do + authenticate! + cs = CoursesService.new + status = cs.join_course({"object_id" => params[:id]},current_user.id) + out = {status: status} + message = case status + when 0; "加入成功" + when 1; "密码错误" + when 2; "课程已过期 请联系课程管理员重启课程。(在配置课程处)" + when 3; "您已经加入了课程" + when 4; "您加入的课程不存在" + when 5; "您还未登录" + else; "未知错误,请稍后再试" + end + out.merge(message: message) + end + + desc "退出课程" + params do + end + delete ":id" do + authenticate! + cs = CoursesService.new + cs.exit_course({"object_id" => params[:id]}, current_user.id) + {status: 0} + end + + desc "搜索课程" + params do + requires :name, type: String, desc: "课程名" + end + get 'search' do + cs = CoursesService.new + courses = cs.search_course(params) + present :data, courses, with: Mobile::Entities::Course + present :status, 0 + end + + desc "课程老师列表" + params do + requires :course_id, type: Integer, desc: "课程id" + end + get 'teachers' do + cs = CoursesService.new + teachers = cs.course_teacher_or_student_list({role: 1}, params[:course_id]) + {status: 0, data: teachers} + end + + desc "课程学生列表" + params do + requires :course_id, type: Integer, desc: "课程id" + end + get 'teachers' do + cs = CoursesService.new + teachers = cs.course_teacher_or_student_list({role: 2}, params[:course_id]) + {status: 0, data: teachers} + end + desc "返回单个课程" params do requires :id, type: Integer diff --git a/app/api/mobile/apis/users.rb b/app/api/mobile/apis/users.rb index 6e2952290..f31f1d834 100644 --- a/app/api/mobile/apis/users.rb +++ b/app/api/mobile/apis/users.rb @@ -53,6 +53,17 @@ module Mobile present :status, 0 end + desc "用户搜索" + params do + requires :name, type: String, desc: '用户名关键字' + end + get 'search' do + us = UsersService.new + user = us.search_user params + present :data, user, with: Mobile::Entities::User + present :status, 0 + end + end end end From efa08adf4ee9c02e8bca48bee6dd5139b45b37b9 Mon Sep 17 00:00:00 2001 From: guange <8863824@gmail.com> Date: Sun, 14 Dec 2014 21:01:23 +0800 Subject: [PATCH 33/83] =?UTF-8?q?=E8=AE=A4=E8=AF=81=E7=94=A8=E6=99=AE?= =?UTF-8?q?=E9=80=9A=E6=A8=A1=E5=BC=8F=E8=BF=94=E5=9B=9E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/api/mobile/api.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/api/mobile/api.rb b/app/api/mobile/api.rb index d3fe414a4..8a64673e0 100644 --- a/app/api/mobile/api.rb +++ b/app/api/mobile/api.rb @@ -12,7 +12,7 @@ module Mobile end def authenticate! - error!('Unauthorized. Invalid or expired token.', 401) unless current_user + raise 'Unauthorized. Invalid or expired token.' unless current_user end def current_user From 95d8c1a09d2b95764c5ef5beae1b9db3b10adeb9 Mon Sep 17 00:00:00 2001 From: z9hang Date: Mon, 15 Dec 2014 10:41:09 +0800 Subject: [PATCH 34/83] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E8=AF=BE=E7=A8=8B?= =?UTF-8?q?=E6=88=90=E5=91=98=E5=88=97=E8=A1=A8=E6=8E=A5=E5=8F=A3=EF=BC=8C?= =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E6=9D=83=E9=99=90=E5=88=A4=E6=96=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/api/mobile/apis/courses.rb | 4 ++-- app/controllers/courses_controller.rb | 7 ++++++- app/services/courses_service.rb | 18 +++++++++++++----- 3 files changed, 21 insertions(+), 8 deletions(-) diff --git a/app/api/mobile/apis/courses.rb b/app/api/mobile/apis/courses.rb index 4920f6f30..1b863cd22 100644 --- a/app/api/mobile/apis/courses.rb +++ b/app/api/mobile/apis/courses.rb @@ -75,7 +75,7 @@ module Mobile end get 'teachers' do cs = CoursesService.new - teachers = cs.course_teacher_or_student_list({role: 1}, params[:course_id]) + teachers = cs.course_teacher_or_student_list({role: 1}, params[:course_id],current_user) {status: 0, data: teachers} end @@ -85,7 +85,7 @@ module Mobile end get 'teachers' do cs = CoursesService.new - teachers = cs.course_teacher_or_student_list({role: 2}, params[:course_id]) + teachers = cs.course_teacher_or_student_list({role: 2}, params[:course_id],current_user) {status: 0, data: teachers} end diff --git a/app/controllers/courses_controller.rb b/app/controllers/courses_controller.rb index c1a7d9237..564033627 100644 --- a/app/controllers/courses_controller.rb +++ b/app/controllers/courses_controller.rb @@ -245,9 +245,14 @@ class CoursesController < ApplicationController #@members = @course.member_principals.includes(:roles, :principal).all.sort end cs = CoursesService.new - @members = cs.course_teacher_or_student_list(params,@course) + @members = cs.course_teacher_or_student_list(params,@course,User.current) @members = paginateHelper @members render :layout => 'base_courses' + + rescue Exception => e + if e.message == '403' + render_403 + end end #判断指定用户是否为课程教师 diff --git a/app/services/courses_service.rb b/app/services/courses_service.rb index 4b1428b5f..acd8793cb 100644 --- a/app/services/courses_service.rb +++ b/app/services/courses_service.rb @@ -49,19 +49,27 @@ class CoursesService end #课程老师或课程学生列表 - def course_teacher_or_student_list params,course - @teachers= searchTeacherAndAssistant(course) + def course_teacher_or_student_list params,course,current_user + if course.is_a?(Course) + c = course + else + c = Course.find(course) + end + if !(current_user.admin? || c.is_public == 1 || (c.is_public == 0 && current_user.member_of_course?(c))) + raise '403' + end + @teachers= searchTeacherAndAssistant(c) #@canShowCode = isCourseTeacher(User.current.id,course) && params[:role] != '1' case params[:role] when '1' #@subPage_title = l :label_teacher_list - @members = searchTeacherAndAssistant(course) + @members = searchTeacherAndAssistant(c) when '2' #@subPage_title = l :label_student_list - @members = searchStudent(course) + @members = searchStudent(c) else #@subPage_title = '' - @members = @course.member_principals.includes(:roles, :principal).all.sort + @members = c.member_principals.includes(:roles, :principal).all.sort end @members end From 36967eeec0aee269a8417b562f45488029f0051c Mon Sep 17 00:00:00 2001 From: z9hang Date: Mon, 15 Dec 2014 13:44:26 +0800 Subject: [PATCH 35/83] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=B3=A8=E5=86=8C?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3=E3=80=81=E6=B7=BB=E5=8A=A0=E4=BD=9C=E4=B8=9A?= =?UTF-8?q?=E5=88=97=E8=A1=A8=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/account_controller.rb | 1 + app/helpers/account_helper.rb | 2 +- app/services/courses_service.rb | 21 ++++++++++++++++++++- 3 files changed, 22 insertions(+), 2 deletions(-) diff --git a/app/controllers/account_controller.rb b/app/controllers/account_controller.rb index 6102160b3..c0322e0cb 100644 --- a/app/controllers/account_controller.rb +++ b/app/controllers/account_controller.rb @@ -124,6 +124,7 @@ class AccountController < ApplicationController when '1' #register_by_email_activation(@user) unless @user.new_record? + flash[:notice] = l(:notice_account_register_done) render action: 'email_valid', locals: {:mail => user.mail} end when '3' diff --git a/app/helpers/account_helper.rb b/app/helpers/account_helper.rb index 3be096492..8ef2d6095 100644 --- a/app/helpers/account_helper.rb +++ b/app/helpers/account_helper.rb @@ -24,7 +24,7 @@ module AccountHelper if user.save and token.save UserStatus.create(:user_id => user.id, :changsets_count => 0, :watchers_count => 0) Mailer.register(token).deliver - flash[:notice] = l(:notice_account_register_done) + #flash[:notice] = l(:notice_account_register_done) #render action: 'email_valid', locals: {:mail => user.mail} else yield if block_given? diff --git a/app/services/courses_service.rb b/app/services/courses_service.rb index acd8793cb..bb36f3cb3 100644 --- a/app/services/courses_service.rb +++ b/app/services/courses_service.rb @@ -1,6 +1,7 @@ class CoursesService include ApplicationHelper include CoursesHelper + #TODO:尚未整合权限系统 #参数school_id为0或不传时返回所有课程,否则返回对应学校的课程 #参数per_page_count分页功能,每页显示的课程数 #参数page分页功能,当前页码 @@ -48,7 +49,7 @@ class CoursesService url_to_avatar(obj) end - #课程老师或课程学生列表 + #课程老师或课程学生列表 TODO:更新业务逻辑,当前版本未包含分班功能 def course_teacher_or_student_list params,course,current_user if course.is_a?(Course) c = course @@ -82,6 +83,11 @@ class CoursesService scope = @course ? @course.news.course_visible : News.course_visible end + #显示课程通知 + def show_course_news + + end + def show_course params course = Course.find(params[:id]) course @@ -186,4 +192,17 @@ class CoursesService [@state,course] end + #作业列表 + #已提交的作业数量获取 bid.homeworks.count + #学生提问数量获取 bid.commit.nil? ? 0 : bid.commit + def homework_list params,current_user + if @course.is_public != 0 || current_user.member_of_course?(@course) + @offset, @limit = api_offset_and_limit({:limit => 10}) + @bids = @course.homeworks.order('deadline DESC') + @bids = @bids.like(params[:name]) if params[:name].present? + else + raise '403' + end + end + end \ No newline at end of file From 6cb3f9e53c7244d7cb99e7b1a5759bdd69046783 Mon Sep 17 00:00:00 2001 From: guange <8863824@gmail.com> Date: Mon, 15 Dec 2014 14:06:00 +0800 Subject: [PATCH 36/83] =?UTF-8?q?=E6=B3=A8=E5=86=8C=E7=94=A8=E6=88=B7?= =?UTF-8?q?=E6=97=B6=E5=A5=BD=E5=A4=9A=E7=94=A8=E6=88=B7=E5=AD=97=E6=AE=B5?= =?UTF-8?q?=E6=B2=A1=E6=9C=89=EF=BC=8C=E9=BB=98=E8=AE=A4=E4=B8=BAnull?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/api/mobile/api.rb | 2 +- app/api/mobile/apis/users.rb | 2 ++ app/api/mobile/entities/user.rb | 20 +++++++++++++------- app/api/mobile/middleware/error_handler.rb | 3 ++- 4 files changed, 18 insertions(+), 9 deletions(-) diff --git a/app/api/mobile/api.rb b/app/api/mobile/api.rb index 8a64673e0..064641de3 100644 --- a/app/api/mobile/api.rb +++ b/app/api/mobile/api.rb @@ -12,7 +12,7 @@ module Mobile end def authenticate! - raise 'Unauthorized. Invalid or expired token.' unless current_user + raise('Unauthorized. Invalid or expired token.') unless current_user end def current_user diff --git a/app/api/mobile/apis/users.rb b/app/api/mobile/apis/users.rb index f31f1d834..8cf37e66a 100644 --- a/app/api/mobile/apis/users.rb +++ b/app/api/mobile/apis/users.rb @@ -14,7 +14,9 @@ module Mobile us = UsersService.new user = us.register params.merge(:password_confirmation => params[:password], :should_confirmation_password => true) + binding.pry raise "register failed #{user.errors.full_messages}" if user.new_record? + present :data, user, with: Mobile::Entities::User present :status, 0 end diff --git a/app/api/mobile/entities/user.rb b/app/api/mobile/entities/user.rb index 38230b7a0..3c3356b46 100644 --- a/app/api/mobile/entities/user.rb +++ b/app/api/mobile/entities/user.rb @@ -1,22 +1,28 @@ module Mobile module Entities class User < Grape::Entity - expose :id + def self.user_expose(f) + expose f do |u,opt| + u.send(f) if u.respond_to?(f) + end + end + + expose :id #头像 - expose :img_url + user_expose :img_url #昵称 expose :nickname #性别 - expose :gender + user_expose :gender #我的二维码 #工作单位 - expose :work_unit + user_expose :work_unit #邮箱地址 - expose :mail + user_expose :mail #地区 - expose :location + user_expose :location #签名 - expose :brief_introduction + user_expose :brief_introduction end end diff --git a/app/api/mobile/middleware/error_handler.rb b/app/api/mobile/middleware/error_handler.rb index 3cbc74bd6..d0db6ebf1 100644 --- a/app/api/mobile/middleware/error_handler.rb +++ b/app/api/mobile/middleware/error_handler.rb @@ -7,6 +7,7 @@ module Mobile @app.call(@env) rescue =>e message = {status: 1, message: e.message }.to_json + puts(detail: e.backtrace.join("\n")) if Rails.env.development? status = 200 headers = { 'Content-Type' => content_type } Rack::Response.new([message], status, headers).finish @@ -15,4 +16,4 @@ module Mobile end end end -end \ No newline at end of file +end From 7f9386180db2df94400bc83e814016081a6e2ecb Mon Sep 17 00:00:00 2001 From: z9han Date: Mon, 15 Dec 2014 16:53:20 +0800 Subject: [PATCH 37/83] =?UTF-8?q?=E9=83=A8=E5=88=86=E6=8E=A5=E5=8F=A3?= =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E6=9D=83=E9=99=90=E9=AA=8C=E8=AF=81=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3=E3=80=81=E6=96=B0=E9=97=BB=E8=AF=A6=E6=83=85=E5=8F=8A?= =?UTF-8?q?=E5=AF=B9=E5=BA=94=E8=AF=84=E8=AE=BA=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/api/mobile/apis/courses.rb | 4 +++- app/controllers/news_controller.rb | 6 ++++-- app/services/courses_service.rb | 33 +++++++++++++++++++++++++----- app/services/users_service.rb | 1 + 4 files changed, 36 insertions(+), 8 deletions(-) diff --git a/app/api/mobile/apis/courses.rb b/app/api/mobile/apis/courses.rb index 1b863cd22..21fec6241 100644 --- a/app/api/mobile/apis/courses.rb +++ b/app/api/mobile/apis/courses.rb @@ -95,7 +95,9 @@ module Mobile end route_param :id do get do - course = Course.find(params[:id]) + cs = CoursesService.new + course = cs.show_course params,current_user + #course = Course.find(params[:id]) {status: 0, data: course} end end diff --git a/app/controllers/news_controller.rb b/app/controllers/news_controller.rb index f1d97cbe7..868540b64 100644 --- a/app/controllers/news_controller.rb +++ b/app/controllers/news_controller.rb @@ -87,8 +87,10 @@ class NewsController < ApplicationController end def show - @comments = @news.comments - @comments.reverse! if User.current.wants_comments_in_reverse_order? + cs = CoursesService.new + @news,@comments = cs.show_course_news params,User.current + #@comments = @news.comments + #@comments.reverse! if User.current.wants_comments_in_reverse_order? #modify by nwb if @news.course_id @course = Course.find(@news.course_id) diff --git a/app/services/courses_service.rb b/app/services/courses_service.rb index bb36f3cb3..09e4289b5 100644 --- a/app/services/courses_service.rb +++ b/app/services/courses_service.rb @@ -83,13 +83,29 @@ class CoursesService scope = @course ? @course.news.course_visible : News.course_visible end - #显示课程通知 - def show_course_news - + #查看新闻权限验证 + def show_course_news_authorize(current_user,course) + unless current_user.allowed_to?({:controller => 'news', :action => 'show'}, course) + raise '403' + end end - def show_course params + #显示课程通知(包括评论) 需验证权限 + def show_course_news params,current_user + @news = News.find(params[:id]) + @comments = @news.comments + @comments.reverse! if current_user.wants_comments_in_reverse_order? + [@news,@comments] + end + + + + #显示课程 + def show_course(params,currnet_user) course = Course.find(params[:id]) + unless (course.is_public == 1 || currnet_user.member_of_course?(@course)|| currnet_user.admin?) + raise '403' + end course end @@ -128,7 +144,14 @@ class CoursesService @course end - #编辑课程 + #验证编辑课程的权限 + def edit_course_authorize(current_user,course) + unless current_user.allowed_to?({:controller => 'courses', :action => 'update'}, course) + raise '403' + end + end + + #编辑课程 需验证权限 def edit_course params,course course.safe_attributes = params[:course] course.time = params[:time] diff --git a/app/services/users_service.rb b/app/services/users_service.rb index d281edb19..928ae99ad 100644 --- a/app/services/users_service.rb +++ b/app/services/users_service.rb @@ -59,6 +59,7 @@ class UsersService end #编辑用户 + #gender 1:female 0:male 其他:male def edit_user params @user = User.find(params[:id]) fileio = params[:file] From 4df9544770d48e6598132e96722e9744c54296ab Mon Sep 17 00:00:00 2001 From: guange <8863824@gmail.com> Date: Mon, 15 Dec 2014 20:17:35 +0800 Subject: [PATCH 38/83] =?UTF-8?q?=E5=85=B3=E6=B3=A8=E5=88=97=E8=A1=A8?= =?UTF-8?q?=E8=BF=94=E5=9B=9E=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/api/mobile/apis/users.rb | 1 - app/api/mobile/apis/watches.rb | 5 +++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/app/api/mobile/apis/users.rb b/app/api/mobile/apis/users.rb index 8cf37e66a..ab74c16e6 100644 --- a/app/api/mobile/apis/users.rb +++ b/app/api/mobile/apis/users.rb @@ -14,7 +14,6 @@ module Mobile us = UsersService.new user = us.register params.merge(:password_confirmation => params[:password], :should_confirmation_password => true) - binding.pry raise "register failed #{user.errors.full_messages}" if user.new_record? present :data, user, with: Mobile::Entities::User diff --git a/app/api/mobile/apis/watches.rb b/app/api/mobile/apis/watches.rb index 4e8510d89..bbe48cccf 100644 --- a/app/api/mobile/apis/watches.rb +++ b/app/api/mobile/apis/watches.rb @@ -12,7 +12,8 @@ module Mobile authenticate! us = UsersService.new ws = us.user_watcher(id: current_user.id) - {status: 0, data: ws } + present :data, ws, with: Mobile::Entities::User + present :status, 0 end @@ -44,4 +45,4 @@ module Mobile end end end -end \ No newline at end of file +end From 428d1b6415e9263236f59869931df5128f6d5703 Mon Sep 17 00:00:00 2001 From: = Date: Wed, 17 Dec 2014 14:50:57 +0800 Subject: [PATCH 39/83] =?UTF-8?q?=E4=B8=AA=E4=BA=BA=E8=AF=BE=E7=A8=8B?= =?UTF-8?q?=E5=88=97=E8=A1=A8=E3=80=81=E4=BD=9C=E4=B8=9A=E8=AF=A6=E6=83=85?= =?UTF-8?q?=E3=80=81=E4=BD=9C=E5=93=81=E8=AF=A6=E6=83=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/services/homework_service.rb | 63 +++++++ app/services/users_service.rb | 300 ++++++++++++++++--------------- 2 files changed, 221 insertions(+), 142 deletions(-) create mode 100644 app/services/homework_service.rb diff --git a/app/services/homework_service.rb b/app/services/homework_service.rb new file mode 100644 index 000000000..f40c4f0ef --- /dev/null +++ b/app/services/homework_service.rb @@ -0,0 +1,63 @@ +class HomeworkService + + #作业详情(老师才显示启动匿评,学生不显示 ) + #bid.comment_status=0 启动匿评 + #bid.comment_status=1 关闭匿评 + #many_times 第几次(作业) + #is_teacher 判断是否为该课程老师 + def show_homework params + @bid = Bid.find(params[:id]) + course = @bid.courses.first + is_teacher = is_course_teacher(User.current,course) + author = @bid.author.firstname + @bid.author.lastname + many_times = course.homeworks.index(@bid) + 1 + name = @bid.name + homework_count = @bid.homeworks.count + description = @bid.description + if is_teacher && bid.open_anonymous_evaluation == 1 && bid.homeworks.count >= 2 + case bid.comment_status + when 0 + alert_anonymous_comment_bid_path(bid) + when 1 + alert_anonymous_comment_bid_path(bid) + when 2 + raise '匿评结束' + end + end + end + + #启动作业匿评 + def alert_homework_anonymous_comment params + @bid = Bid.find params[:id] + @course = @bid.courses.first + if @bid.comment_status == 0 + @totle_size = searchStudent(@course).size + @cur_size = @bid.homeworks.size + elsif @bid.comment_status == 1 + @totle_size = 0 + @bid.homeworks.map { |homework| @totle_size += homework.homework_evaluations.count} + teachers = "(" + teacher_members = searchTeacherAndAssistant(@course) + teacher_members.each do |member| + if member == teacher_members.last + teachers += member.user_id.to_s + ")" + else + teachers += member.user_id.to_s + "," + end + end + @cur_size = 0 + @bid.homeworks.map { |homework| @cur_size += homework.rates(:quality).where("seems_rateable_rates.rater_id not in #{teachers}").count} + end + @percent = format("%.2f",(@cur_size.to_f / ( @totle_size == 0 ? 1 : @totle_size)) * 100) + end + + #匿评作品详情 + def anonymous_works_show params + @homework = HomeworkAttach.find(params[:id]) + if User.current.admin? || User.current.member_of_course?(@homework.bid.courses.first) + + end + end + + # +end \ No newline at end of file diff --git a/app/services/users_service.rb b/app/services/users_service.rb index 928ae99ad..9fb698056 100644 --- a/app/services/users_service.rb +++ b/app/services/users_service.rb @@ -1,142 +1,158 @@ -class UsersService - include ApplicationHelper - include AccountHelper - include AvatarHelper - #将用户注册的功能函数写这里 - #参数约定 - #成功返回注册后的User实例,失败直接抛异常 - - def register(params) - @user = User.new - @user.admin = false - @user.register - @user.login = params[:login] - @user.mail = params[:mail] - password = params[:password] - password_confirmation = params[:password_confirmation] - should_confirmation_password = params[:should_confirmation_password] - if !password.blank? && !password_confirmation.blank? && should_confirmation_password - @user.password, @user.password_confirmation = password, password_confirmation - elsif !password.blank? && !should_confirmation_password - @user.password = password - else - @user.password = "" - end - case Setting.self_registration - when '1' - @user = email_activation_register(@user) - when '3' - @user = automatically_register(@user) - else - @user = administrator_manually__register(@user) - end - if @user.id != nil - ue = @user.user_extensions ||= UserExtensions.new - ue.user_id = @user.id - ue.save - end - @user - end - - #显示用户 - #id用户id - def show_user(params) - @user = User.find(params[:id]) - img_url = url_to_avatar(@user) - gender = @user.user_extensions.gender.nil? ? 0 : @user.user_extensions.gender - work_unit = "" - if @user.user_extensions.identity == 0 || @user.user_extensions.identity == 1 - work_unit = @user.user_extensions.school.name unless @user.user_extensions.school.nil? - elsif @user.user_extensions.identity == 3 - work_unit = @user.user_extensions.occupation - elsif @user.user_extensions.identity == 2 - work_unit = @user.firstname - end - location = "" - location << (@user.user_extensions.location || '') - location << (@user.user_extensions.location_city || '') - {:id => @user.id, :img_url => img_url, :nickname => @user.login, :gender => gender, :work_unit => work_unit, :mail => @user.mail, :location => location, :brief_introduction => @user.user_extensions.brief_introduction} - end - - #编辑用户 - #gender 1:female 0:male 其他:male - def edit_user params - @user = User.find(params[:id]) - fileio = params[:file] - - @se = @user.extensions - if @user.user_extensions.identity == 0 || @user.user_extensions.identity == 1 - @se.school_id = params[:occupation] - elsif @user.user_extensions.identity == 3 - @se.occupation = params[:occupation] - elsif @user.user_extensions.identity == 2 - @user.firstname = params[:occupation] - end - @se.brief_introduction = params[:brief_introduction] - @se.gender = params[:gender] - @se.location = params[:province] if params[:province] - @se.location_city = params[:city] if params[:city] - raise @se.errors.full_message unless @se.save - unless fileio.nil? - file = fileio[:tempfile] - diskfile=disk_filename(@user.class.to_s, @user.id) - @image_file = fileio[:name] - @urlfile='/' << File.join("images", "avatars", avatar_directory(@user.class.to_s), avatar_filename(@user.id, @image_file)) - - path = File.dirname(diskfile) - unless File.directory?(path) - FileUtils.mkdir_p(path) - end - File.rename(file.path, @urlfile) - begin - f = Magick::ImageList.new(diskfile) - # gif格式不再做大小处理 - if f.format != 'GIF' - width = 300.0 - proportion = (width/f[0].columns) - height = (f[0].rows*proportion) - f.resize_to_fill!(width, height) - f.write(diskfile) - end - - rescue Exception => e - logger.error "[Error] avatar : users_service#edit_user ===> #{e}" - end - end - @se - end - - #关注列表 - def user_watcher params - @user = User.find(params[:id]) - User.watched_by(@user.id) - end - - #修改密码 - def change_password params - @current_user = User.find(params[:current_user_id]) - if @current_user.check_password?(params[:password]) - @current_user.password, @current_user.password_confirmation = params[:new_password], params[:new_password_confirmation] - @current_user.save - #raise @current_user.errors.full_message - #return @current_user - - else - raise 'wrong password' - end - @current_user - end - - #搜索用户 - def search_user params - @status = params[:status] || 1 - has = { - "show_changesets" => true - } - scope = User.logged.status(@status) - @search_by = params[:search_by] ? params[:search_by][:id] : 0 - scope = scope.like(params[:name],@search_by) if params[:name].present? - scope - end - -end +class UsersService + include ApplicationHelper + include AccountHelper + include AvatarHelper + include CoursesHelper + #将用户注册的功能函数写这里 + #参数约定 + #成功返回注册后的User实例,失败直接抛异常 + + def register(params) + @user = User.new + @user.admin = false + @user.register + @user.login = params[:login] + @user.mail = params[:mail] + password = params[:password] + password_confirmation = params[:password_confirmation] + should_confirmation_password = params[:should_confirmation_password] + if !password.blank? && !password_confirmation.blank? && should_confirmation_password + @user.password, @user.password_confirmation = password, password_confirmation + elsif !password.blank? && !should_confirmation_password + @user.password = password + else + @user.password = "" + end + case Setting.self_registration + when '1' + @user = email_activation_register(@user) + when '3' + @user = automatically_register(@user) + else + @user = administrator_manually__register(@user) + end + if @user.id != nil + ue = @user.user_extensions ||= UserExtensions.new + ue.user_id = @user.id + ue.save + end + @user + end + + #显示用户 + #id用户id + def show_user(params) + @user = User.find(params[:id]) + img_url = url_to_avatar(@user) + gender = @user.user_extensions.gender.nil? ? 0 : @user.user_extensions.gender + work_unit = "" + if @user.user_extensions.identity == 0 || @user.user_extensions.identity == 1 + work_unit = @user.user_extensions.school.name unless @user.user_extensions.school.nil? + elsif @user.user_extensions.identity == 3 + work_unit = @user.user_extensions.occupation + elsif @user.user_extensions.identity == 2 + work_unit = @user.firstname + end + location = "" + location << (@user.user_extensions.location || '') + location << (@user.user_extensions.location_city || '') + {:id => @user.id, :img_url => img_url, :nickname => @user.login, :gender => gender, :work_unit => work_unit, :mail => @user.mail, :location => location, :brief_introduction => @user.user_extensions.brief_introduction} + end + + #编辑用户 + #gender 1:female 0:male 其他:male + def edit_user params + @user = User.find(params[:id]) + fileio = params[:file] + + @se = @user.extensions + if @user.user_extensions.identity == 0 || @user.user_extensions.identity == 1 + @se.school_id = params[:occupation] + elsif @user.user_extensions.identity == 3 + @se.occupation = params[:occupation] + elsif @user.user_extensions.identity == 2 + @user.firstname = params[:occupation] + end + @se.brief_introduction = params[:brief_introduction] + @se.gender = params[:gender] + @se.location = params[:province] if params[:province] + @se.location_city = params[:city] if params[:city] + raise @se.errors.full_message unless @se.save + unless fileio.nil? + file = fileio[:tempfile] + diskfile=disk_filename(@user.class.to_s, @user.id) + @image_file = fileio[:name] + @urlfile='/' << File.join("images", "avatars", avatar_directory(@user.class.to_s), avatar_filename(@user.id, @image_file)) + + path = File.dirname(diskfile) + unless File.directory?(path) + FileUtils.mkdir_p(path) + end + File.rename(file.path, @urlfile) + begin + f = Magick::ImageList.new(diskfile) + # gif格式不再做大小处理 + if f.format != 'GIF' + width = 300.0 + proportion = (width/f[0].columns) + height = (f[0].rows*proportion) + f.resize_to_fill!(width, height) + f.write(diskfile) + end + + rescue Exception => e + logger.error "[Error] avatar : users_service#edit_user ===> #{e}" + end + end + @se + end + + #关注列表 + def user_watcher params + @user = User.find(params[:id]) + User.watched_by(@user.id) + end + + #用户课程列表 + def user_courses_list params + if !User.current.admin? && !@user.active? + raise '404' + return + end + if User.current == @user || User.current.admin? + membership = @user.coursememberships.all + else + membership = @user.coursememberships.all(:conditions => Course.visible_condition(User.current)) + end + membership.sort! {|older, newer| newer.created_on <=> older.created_on } + membership + end + + #修改密码 + def change_password params + @current_user = User.find(params[:current_user_id]) + if @current_user.check_password?(params[:password]) + @current_user.password, @current_user.password_confirmation = params[:new_password], params[:new_password_confirmation] + @current_user.save + #raise @current_user.errors.full_message + #return @current_user + + else + raise 'wrong password' + end + @current_user + end + + #搜索用户 + def search_user params + @status = params[:status] || 1 + has = { + "show_changesets" => true + } + scope = User.logged.status(@status) + @search_by = params[:search_by] ? params[:search_by][:id] : 0 + scope = scope.like(params[:name],@search_by) if params[:name].present? + scope + end + +end From 03f2c9c19247e8d489c0f66236f00be61126abd2 Mon Sep 17 00:00:00 2001 From: guange <8863824@gmail.com> Date: Thu, 18 Dec 2014 13:37:23 +0800 Subject: [PATCH 40/83] =?UTF-8?q?=E5=85=B3=E6=B3=A8=E8=BF=94=E5=9B=9E?= =?UTF-8?q?=E8=A7=84=E8=8C=83=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/api/mobile/apis/watches.rb | 5 +- db/schema.rb | 2668 ++++++++++++++++---------------- 2 files changed, 1343 insertions(+), 1330 deletions(-) diff --git a/app/api/mobile/apis/watches.rb b/app/api/mobile/apis/watches.rb index bbe48cccf..1603b311a 100644 --- a/app/api/mobile/apis/watches.rb +++ b/app/api/mobile/apis/watches.rb @@ -25,8 +25,9 @@ module Mobile post do authenticate! ws = WatchesService.new - o = ws.watch(params.merge({current_user_id:current_user.id, object_type:'user' }) ) - {status:0, data: o} + o = ws.watch(params.merge({current_user_id:current_user.id, object_type:'user' }) ) + present :data, o, with: Mobile::Entities::User + present :status, 0 end diff --git a/db/schema.rb b/db/schema.rb index f12d6ad0a..c63ebb981 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -1,1328 +1,1340 @@ -# encoding: UTF-8 -# This file is auto-generated from the current state of the database. Instead -# of editing this file, please use the migrations feature of Active Record to -# incrementally modify your database, and then regenerate this schema definition. -# -# Note that this schema.rb definition is the authoritative source for your -# database schema. If you need to create the application database on another -# system, you should be using db:schema:load, not running all the migrations -# from scratch. The latter is a flawed and unsustainable approach (the more migrations -# you'll amass, the slower it'll run and the greater likelihood for issues). -# -# It's strongly recommended to check this file into your version control system. - -ActiveRecord::Schema.define(:version => 20141201085218) do - - create_table "activities", :force => true do |t| - t.integer "act_id", :null => false - t.string "act_type", :null => false - t.integer "user_id", :null => false - end - - add_index "activities", ["act_id", "act_type"], :name => "index_activities_on_act_id_and_act_type" - add_index "activities", ["user_id", "act_type"], :name => "index_activities_on_user_id_and_act_type" - add_index "activities", ["user_id"], :name => "index_activities_on_user_id" - - create_table "applied_projects", :force => true do |t| - t.integer "project_id", :null => false - t.integer "user_id", :null => false - end - - create_table "apply_project_masters", :force => true do |t| - t.integer "user_id" - t.string "apply_type" - t.integer "apply_id" - t.integer "status" - t.datetime "created_at", :null => false - t.datetime "updated_at", :null => false - end - - create_table "attachments", :force => true do |t| - t.integer "container_id" - t.string "container_type", :limit => 30 - t.string "filename", :default => "", :null => false - t.string "disk_filename", :default => "", :null => false - t.integer "filesize", :default => 0, :null => false - t.string "content_type", :default => "" - t.string "digest", :limit => 40, :default => "", :null => false - t.integer "downloads", :default => 0, :null => false - t.integer "author_id", :default => 0, :null => false - t.datetime "created_on" - t.string "description" - t.string "disk_directory" - t.integer "attachtype", :default => 1 - t.integer "is_public", :default => 1 - t.integer "copy_from" - t.integer "quotes" - end - - add_index "attachments", ["author_id"], :name => "index_attachments_on_author_id" - add_index "attachments", ["container_id", "container_type"], :name => "index_attachments_on_container_id_and_container_type" - add_index "attachments", ["created_on"], :name => "index_attachments_on_created_on" - - create_table "attachmentstypes", :force => true do |t| - t.integer "typeId", :null => false - t.string "typeName", :limit => 50 - end - - create_table "auth_sources", :force => true do |t| - t.string "type", :limit => 30, :default => "", :null => false - t.string "name", :limit => 60, :default => "", :null => false - t.string "host", :limit => 60 - t.integer "port" - t.string "account" - t.string "account_password", :default => "" - t.string "base_dn" - t.string "attr_login", :limit => 30 - t.string "attr_firstname", :limit => 30 - t.string "attr_lastname", :limit => 30 - t.string "attr_mail", :limit => 30 - t.boolean "onthefly_register", :default => false, :null => false - t.boolean "tls", :default => false, :null => false - t.string "filter" - t.integer "timeout" - end - - add_index "auth_sources", ["id", "type"], :name => "index_auth_sources_on_id_and_type" - - create_table "biding_projects", :force => true do |t| - t.integer "project_id" - t.integer "bid_id" - t.integer "user_id" - t.string "description" - t.datetime "created_at", :null => false - t.datetime "updated_at", :null => false - t.string "reward" - end - - create_table "bids", :force => true do |t| - t.string "name" - t.string "budget", :null => false - t.integer "author_id" - t.date "deadline" - t.text "description" - t.datetime "created_on", :null => false - t.datetime "updated_on", :null => false - t.integer "commit" - t.integer "reward_type" - t.integer "homework_type" - t.integer "parent_id" - t.string "password" - t.integer "is_evaluation" - t.integer "proportion", :default => 60 - t.integer "comment_status", :default => 0 - t.integer "evaluation_num", :default => 3 - t.integer "open_anonymous_evaluation", :default => 1 - end - - create_table "boards", :force => true do |t| - t.integer "project_id", :null => false - t.string "name", :default => "", :null => false - t.string "description" - t.integer "position", :default => 1 - t.integer "topics_count", :default => 0, :null => false - t.integer "messages_count", :default => 0, :null => false - t.integer "last_message_id" - t.integer "parent_id" - t.integer "course_id" - end - - add_index "boards", ["last_message_id"], :name => "index_boards_on_last_message_id" - add_index "boards", ["project_id"], :name => "boards_project_id" - - create_table "bug_to_osps", :force => true do |t| - t.integer "osp_id" - t.integer "relative_memo_id" - t.string "description" - t.datetime "created_at", :null => false - t.datetime "updated_at", :null => false - end - - create_table "changes", :force => true do |t| - t.integer "changeset_id", :null => false - t.string "action", :limit => 1, :default => "", :null => false - t.text "path", :null => false - t.text "from_path" - t.string "from_revision" - t.string "revision" - t.string "branch" - end - - add_index "changes", ["changeset_id"], :name => "changesets_changeset_id" - - create_table "changeset_parents", :id => false, :force => true do |t| - t.integer "changeset_id", :null => false - t.integer "parent_id", :null => false - end - - add_index "changeset_parents", ["changeset_id"], :name => "changeset_parents_changeset_ids" - add_index "changeset_parents", ["parent_id"], :name => "changeset_parents_parent_ids" - - create_table "changesets", :force => true do |t| - t.integer "repository_id", :null => false - t.string "revision", :null => false - t.string "committer" - t.datetime "committed_on", :null => false - t.text "comments" - t.date "commit_date" - t.string "scmid" - t.integer "user_id" - end - - add_index "changesets", ["committed_on"], :name => "index_changesets_on_committed_on" - add_index "changesets", ["repository_id", "revision"], :name => "changesets_repos_rev", :unique => true - add_index "changesets", ["repository_id", "scmid"], :name => "changesets_repos_scmid" - add_index "changesets", ["repository_id"], :name => "index_changesets_on_repository_id" - add_index "changesets", ["user_id"], :name => "index_changesets_on_user_id" - - create_table "changesets_issues", :id => false, :force => true do |t| - t.integer "changeset_id", :null => false - t.integer "issue_id", :null => false - end - - add_index "changesets_issues", ["changeset_id", "issue_id"], :name => "changesets_issues_ids", :unique => true - - create_table "code_review_assignments", :force => true do |t| - t.integer "issue_id" - t.integer "change_id" - t.integer "attachment_id" - t.string "file_path" - t.string "rev" - t.string "rev_to" - t.string "action_type" - t.integer "changeset_id" - end - - create_table "code_review_project_settings", :force => true do |t| - t.integer "project_id" - t.integer "tracker_id" - t.datetime "created_at" - t.datetime "updated_at" - t.integer "updated_by" - t.boolean "hide_code_review_tab", :default => false - t.integer "auto_relation", :default => 1 - t.integer "assignment_tracker_id" - t.text "auto_assign" - t.integer "lock_version", :default => 0, :null => false - t.boolean "tracker_in_review_dialog", :default => false - end - - create_table "code_review_user_settings", :force => true do |t| - t.integer "user_id", :default => 0, :null => false - t.integer "mail_notification", :default => 0, :null => false - t.datetime "created_at" - t.datetime "updated_at" - end - - create_table "code_reviews", :force => true do |t| - t.integer "project_id" - t.integer "change_id" - t.datetime "created_at" - t.datetime "updated_at" - t.integer "line" - t.integer "updated_by_id" - t.integer "lock_version", :default => 0, :null => false - t.integer "status_changed_from" - t.integer "status_changed_to" - t.integer "issue_id" - t.string "action_type" - t.string "file_path" - t.string "rev" - t.string "rev_to" - t.integer "attachment_id" - t.integer "file_count", :default => 0, :null => false - t.boolean "diff_all" - end - - create_table "comments", :force => true do |t| - t.string "commented_type", :limit => 30, :default => "", :null => false - t.integer "commented_id", :default => 0, :null => false - t.integer "author_id", :default => 0, :null => false - t.text "comments" - t.datetime "created_on", :null => false - t.datetime "updated_on", :null => false - end - - add_index "comments", ["author_id"], :name => "index_comments_on_author_id" - add_index "comments", ["commented_id", "commented_type"], :name => "index_comments_on_commented_id_and_commented_type" - - create_table "contest_notifications", :force => true do |t| - t.text "title" - t.text "content" - t.datetime "created_at", :null => false - t.datetime "updated_at", :null => false - end - - create_table "contesting_projects", :force => true do |t| - t.integer "project_id" - t.string "contest_id" - t.integer "user_id" - t.string "description" - t.datetime "created_at", :null => false - t.datetime "updated_at", :null => false - t.string "reward" - end - - create_table "contesting_softapplications", :force => true do |t| - t.integer "softapplication_id" - t.integer "contest_id" - t.integer "user_id" - t.string "description" - t.datetime "created_at", :null => false - t.datetime "updated_at", :null => false - t.string "reward" - end - - create_table "contestnotifications", :force => true do |t| - t.integer "contest_id" - t.string "title" - t.string "summary" - t.text "description" - t.integer "author_id" - t.integer "notificationcomments_count" - t.datetime "created_at", :null => false - t.datetime "updated_at", :null => false - end - - create_table "contests", :force => true do |t| - t.string "name" - t.string "budget", :default => "" - t.integer "author_id" - t.date "deadline" - t.string "description" - t.integer "commit" - t.string "password" - t.datetime "created_on", :null => false - t.datetime "updated_on", :null => false - end - - create_table "course_attachments", :force => true do |t| - t.string "filename" - t.string "disk_filename" - t.integer "filesize" - t.string "content_type" - t.string "digest" - t.integer "downloads" - t.string "author_id" - t.string "integer" - t.string "description" - t.string "disk_directory" - t.integer "attachtype" - t.integer "is_public" - t.datetime "created_at", :null => false - t.datetime "updated_at", :null => false - t.integer "container_id", :default => 0 - end - - create_table "course_groups", :force => true do |t| - t.string "name" - t.integer "course_id" - t.datetime "created_at", :null => false - t.datetime "updated_at", :null => false - end - - create_table "course_infos", :force => true do |t| - t.integer "course_id" - t.integer "user_id" - t.datetime "created_at", :null => false - t.datetime "updated_at", :null => false - end - - create_table "course_statuses", :force => true do |t| - t.integer "changesets_count" - t.integer "watchers_count" - t.integer "course_id" - t.float "grade", :default => 0.0 - t.integer "course_ac_para", :default => 0 - t.datetime "created_at", :null => false - t.datetime "updated_at", :null => false - end - - create_table "courses", :force => true do |t| - t.integer "tea_id" - t.string "name" - t.integer "state" - t.string "code" - t.integer "time" - t.string "extra" - t.datetime "created_at", :null => false - t.datetime "updated_at", :null => false - t.string "location" - t.string "term" - t.string "string" - t.string "password" - t.string "setup_time" - t.string "endup_time" - t.string "class_period" - t.integer "school_id" - t.text "description" - t.integer "status", :default => 1 - t.integer "attachmenttype", :default => 2 - t.integer "lft" - t.integer "rgt" - t.integer "is_public", :limit => 1, :default => 1 - t.integer "inherit_members", :limit => 1, :default => 1 - t.integer "open_student", :default => 0 - end - - create_table "custom_fields", :force => true do |t| - t.string "type", :limit => 30, :default => "", :null => false - t.string "name", :limit => 30, :default => "", :null => false - t.string "field_format", :limit => 30, :default => "", :null => false - t.text "possible_values" - t.string "regexp", :default => "" - t.integer "min_length", :default => 0, :null => false - t.integer "max_length", :default => 0, :null => false - t.boolean "is_required", :default => false, :null => false - t.boolean "is_for_all", :default => false, :null => false - t.boolean "is_filter", :default => false, :null => false - t.integer "position", :default => 1 - t.boolean "searchable", :default => false - t.text "default_value" - t.boolean "editable", :default => true - t.boolean "visible", :default => true, :null => false - t.boolean "multiple", :default => false - end - - add_index "custom_fields", ["id", "type"], :name => "index_custom_fields_on_id_and_type" - - create_table "custom_fields_projects", :id => false, :force => true do |t| - t.integer "custom_field_id", :default => 0, :null => false - t.integer "project_id", :default => 0, :null => false - end - - add_index "custom_fields_projects", ["custom_field_id", "project_id"], :name => "index_custom_fields_projects_on_custom_field_id_and_project_id", :unique => true - - create_table "custom_fields_trackers", :id => false, :force => true do |t| - t.integer "custom_field_id", :default => 0, :null => false - t.integer "tracker_id", :default => 0, :null => false - end - - add_index "custom_fields_trackers", ["custom_field_id", "tracker_id"], :name => "index_custom_fields_trackers_on_custom_field_id_and_tracker_id", :unique => true - - create_table "custom_values", :force => true do |t| - t.string "customized_type", :limit => 30, :default => "", :null => false - t.integer "customized_id", :default => 0, :null => false - t.integer "custom_field_id", :default => 0, :null => false - t.text "value" - end - - add_index "custom_values", ["custom_field_id"], :name => "index_custom_values_on_custom_field_id" - add_index "custom_values", ["customized_type", "customized_id"], :name => "custom_values_customized" - - create_table "documents", :force => true do |t| - t.integer "project_id", :default => 0, :null => false - t.integer "category_id", :default => 0, :null => false - t.string "title", :limit => 60, :default => "", :null => false - t.text "description" - t.datetime "created_on" - t.integer "user_id", :default => 0 - t.integer "is_public", :default => 1 - end - - add_index "documents", ["category_id"], :name => "index_documents_on_category_id" - add_index "documents", ["created_on"], :name => "index_documents_on_created_on" - add_index "documents", ["project_id"], :name => "documents_project_id" - - create_table "enabled_modules", :force => true do |t| - t.integer "project_id" - t.string "name", :null => false - t.integer "course_id" - end - - add_index "enabled_modules", ["project_id"], :name => "enabled_modules_project_id" - - create_table "enumerations", :force => true do |t| - t.string "name", :limit => 30, :default => "", :null => false - t.integer "position", :default => 1 - t.boolean "is_default", :default => false, :null => false - t.string "type" - t.boolean "active", :default => true, :null => false - t.integer "project_id" - t.integer "parent_id" - t.string "position_name", :limit => 30 - end - - add_index "enumerations", ["id", "type"], :name => "index_enumerations_on_id_and_type" - add_index "enumerations", ["project_id"], :name => "index_enumerations_on_project_id" - - create_table "first_pages", :force => true do |t| - t.string "web_title" - t.string "title" - t.text "description" - t.string "page_type" - t.datetime "created_at", :null => false - t.datetime "updated_at", :null => false - t.integer "sort_type" - t.integer "image_width", :default => 107 - t.integer "image_height", :default => 63 - t.integer "show_course", :default => 1 - t.integer "show_contest", :default => 1 - end - - create_table "forums", :force => true do |t| - t.string "name", :null => false - t.text "description" - t.integer "topic_count", :default => 0 - t.integer "memo_count", :default => 0 - t.integer "last_memo_id", :default => 0 - t.integer "creator_id", :null => false - t.datetime "created_at", :null => false - t.datetime "updated_at", :null => false - t.integer "sticky" - t.integer "locked" - end - - create_table "groups_users", :id => false, :force => true do |t| - t.integer "group_id", :null => false - t.integer "user_id", :null => false - end - - add_index "groups_users", ["group_id", "user_id"], :name => "groups_users_ids", :unique => true - - create_table "homework_attaches", :force => true do |t| - t.integer "bid_id" - t.integer "user_id" - t.datetime "created_at", :null => false - t.datetime "updated_at", :null => false - t.string "reward" - t.string "name" - t.text "description" - t.integer "state" - t.integer "project_id", :default => 0 - end - - create_table "homework_evaluations", :force => true do |t| - t.string "user_id" - t.string "homework_attach_id" - t.datetime "created_at", :null => false - t.datetime "updated_at", :null => false - end - - create_table "homework_for_courses", :force => true do |t| - t.integer "course_id" - t.integer "bid_id" - end - - create_table "homework_users", :force => true do |t| - t.string "homework_attach_id" - t.string "user_id" - t.datetime "created_at", :null => false - t.datetime "updated_at", :null => false - end - - create_table "issue_categories", :force => true do |t| - t.integer "project_id", :default => 0, :null => false - t.string "name", :limit => 30, :default => "", :null => false - t.integer "assigned_to_id" - end - - add_index "issue_categories", ["assigned_to_id"], :name => "index_issue_categories_on_assigned_to_id" - add_index "issue_categories", ["project_id"], :name => "issue_categories_project_id" - - create_table "issue_relations", :force => true do |t| - t.integer "issue_from_id", :null => false - t.integer "issue_to_id", :null => false - t.string "relation_type", :default => "", :null => false - t.integer "delay" - end - - add_index "issue_relations", ["issue_from_id", "issue_to_id"], :name => "index_issue_relations_on_issue_from_id_and_issue_to_id", :unique => true - add_index "issue_relations", ["issue_from_id"], :name => "index_issue_relations_on_issue_from_id" - add_index "issue_relations", ["issue_to_id"], :name => "index_issue_relations_on_issue_to_id" - - create_table "issue_statuses", :force => true do |t| - t.string "name", :limit => 30, :default => "", :null => false - t.boolean "is_closed", :default => false, :null => false - t.boolean "is_default", :default => false, :null => false - t.integer "position", :default => 1 - t.integer "default_done_ratio" - end - - add_index "issue_statuses", ["is_closed"], :name => "index_issue_statuses_on_is_closed" - add_index "issue_statuses", ["is_default"], :name => "index_issue_statuses_on_is_default" - add_index "issue_statuses", ["position"], :name => "index_issue_statuses_on_position" - - create_table "issues", :force => true do |t| - t.integer "tracker_id", :null => false - t.integer "project_id", :null => false - t.string "subject", :default => "", :null => false - t.text "description" - t.date "due_date" - t.integer "category_id" - t.integer "status_id", :null => false - t.integer "assigned_to_id" - t.integer "priority_id", :null => false - t.integer "fixed_version_id" - t.integer "author_id", :null => false - t.integer "lock_version", :default => 0, :null => false - t.datetime "created_on" - t.datetime "updated_on" - t.date "start_date" - t.integer "done_ratio", :default => 0, :null => false - t.float "estimated_hours" - t.integer "parent_id" - t.integer "root_id" - t.integer "lft" - t.integer "rgt" - t.boolean "is_private", :default => false, :null => false - t.datetime "closed_on" - end - - add_index "issues", ["assigned_to_id"], :name => "index_issues_on_assigned_to_id" - add_index "issues", ["author_id"], :name => "index_issues_on_author_id" - add_index "issues", ["category_id"], :name => "index_issues_on_category_id" - add_index "issues", ["created_on"], :name => "index_issues_on_created_on" - add_index "issues", ["fixed_version_id"], :name => "index_issues_on_fixed_version_id" - add_index "issues", ["priority_id"], :name => "index_issues_on_priority_id" - add_index "issues", ["project_id"], :name => "issues_project_id" - add_index "issues", ["root_id", "lft", "rgt"], :name => "index_issues_on_root_id_and_lft_and_rgt" - add_index "issues", ["status_id"], :name => "index_issues_on_status_id" - add_index "issues", ["tracker_id"], :name => "index_issues_on_tracker_id" - - create_table "join_in_competitions", :force => true do |t| - t.integer "user_id" - t.integer "competition_id" - t.datetime "created_at", :null => false - t.datetime "updated_at", :null => false - end - - create_table "join_in_contests", :force => true do |t| - t.integer "user_id" - t.integer "bid_id" - t.datetime "created_at", :null => false - t.datetime "updated_at", :null => false - end - - create_table "journal_details", :force => true do |t| - t.integer "journal_id", :default => 0, :null => false - t.string "property", :limit => 30, :default => "", :null => false - t.string "prop_key", :limit => 30, :default => "", :null => false - t.text "old_value" - t.text "value" - end - - add_index "journal_details", ["journal_id"], :name => "journal_details_journal_id" - - create_table "journal_replies", :id => false, :force => true do |t| - t.integer "journal_id" - t.integer "user_id" - t.integer "reply_id" - end - - add_index "journal_replies", ["journal_id"], :name => "index_journal_replies_on_journal_id" - add_index "journal_replies", ["reply_id"], :name => "index_journal_replies_on_reply_id" - add_index "journal_replies", ["user_id"], :name => "index_journal_replies_on_user_id" - - create_table "journals", :force => true do |t| - t.integer "journalized_id", :default => 0, :null => false - t.string "journalized_type", :limit => 30, :default => "", :null => false - t.integer "user_id", :default => 0, :null => false - t.text "notes" - t.datetime "created_on", :null => false - t.boolean "private_notes", :default => false, :null => false - end - - add_index "journals", ["created_on"], :name => "index_journals_on_created_on" - add_index "journals", ["journalized_id", "journalized_type"], :name => "journals_journalized_id" - add_index "journals", ["journalized_id"], :name => "index_journals_on_journalized_id" - add_index "journals", ["user_id"], :name => "index_journals_on_user_id" - - create_table "journals_for_messages", :force => true do |t| - t.integer "jour_id" - t.string "jour_type" - t.integer "user_id" - t.text "notes" - t.integer "status" - t.integer "reply_id" - t.datetime "created_on", :null => false - t.datetime "updated_on", :null => false - t.string "m_parent_id" - t.boolean "is_readed" - t.integer "m_reply_count" - t.integer "m_reply_id" - t.integer "is_comprehensive_evaluation" - end - - create_table "member_roles", :force => true do |t| - t.integer "member_id", :null => false - t.integer "role_id", :null => false - t.integer "inherited_from" - end - - add_index "member_roles", ["member_id"], :name => "index_member_roles_on_member_id" - add_index "member_roles", ["role_id"], :name => "index_member_roles_on_role_id" - - create_table "members", :force => true do |t| - t.integer "user_id", :default => 0, :null => false - t.integer "project_id", :default => 0 - t.datetime "created_on" - t.boolean "mail_notification", :default => false, :null => false - t.integer "course_id", :default => -1 - t.integer "course_group_id", :default => 0 - end - - add_index "members", ["project_id"], :name => "index_members_on_project_id" - add_index "members", ["user_id", "project_id", "course_id"], :name => "index_members_on_user_id_and_project_id", :unique => true - add_index "members", ["user_id"], :name => "index_members_on_user_id" - - create_table "memos", :force => true do |t| - t.integer "forum_id", :null => false - t.integer "parent_id" - t.string "subject", :null => false - t.text "content", :null => false - t.integer "author_id", :null => false - t.integer "replies_count", :default => 0 - t.integer "last_reply_id" - t.boolean "lock", :default => false - t.boolean "sticky", :default => false - t.datetime "created_at", :null => false - t.datetime "updated_at", :null => false - t.integer "viewed_count", :default => 0 - end - - create_table "messages", :force => true do |t| - t.integer "board_id", :null => false - t.integer "parent_id" - t.string "subject", :default => "", :null => false - t.text "content" - t.integer "author_id" - t.integer "replies_count", :default => 0, :null => false - t.integer "last_reply_id" - t.datetime "created_on", :null => false - t.datetime "updated_on", :null => false - t.boolean "locked", :default => false - t.integer "sticky", :default => 0 - end - - add_index "messages", ["author_id"], :name => "index_messages_on_author_id" - add_index "messages", ["board_id"], :name => "messages_board_id" - add_index "messages", ["created_on"], :name => "index_messages_on_created_on" - add_index "messages", ["last_reply_id"], :name => "index_messages_on_last_reply_id" - add_index "messages", ["parent_id"], :name => "messages_parent_id" - - create_table "news", :force => true do |t| - t.integer "project_id" - t.string "title", :limit => 60, :default => "", :null => false - t.string "summary", :default => "" - t.text "description" - t.integer "author_id", :default => 0, :null => false - t.datetime "created_on" - t.integer "comments_count", :default => 0, :null => false - t.integer "course_id" - end - - add_index "news", ["author_id"], :name => "index_news_on_author_id" - add_index "news", ["created_on"], :name => "index_news_on_created_on" - add_index "news", ["project_id"], :name => "news_project_id" - - create_table "no_uses", :force => true do |t| - t.integer "user_id", :null => false - t.string "no_use_type" - t.integer "no_use_id" - t.datetime "created_at", :null => false - t.datetime "updated_at", :null => false - end - - create_table "notificationcomments", :force => true do |t| - t.string "notificationcommented_type" - t.integer "notificationcommented_id" - t.integer "author_id" - t.text "notificationcomments" - t.datetime "created_at", :null => false - t.datetime "updated_at", :null => false - end - - create_table "open_id_authentication_associations", :force => true do |t| - t.integer "issued" - t.integer "lifetime" - t.string "handle" - t.string "assoc_type" - t.binary "server_url" - t.binary "secret" - end - - create_table "open_id_authentication_nonces", :force => true do |t| - t.integer "timestamp", :null => false - t.string "server_url" - t.string "salt", :null => false - end - - create_table "open_source_projects", :force => true do |t| - t.string "name" - t.text "description" - t.integer "commit_count", :default => 0 - t.integer "code_line", :default => 0 - t.integer "users_count", :default => 0 - t.date "last_commit_time" - t.string "url" - t.date "date_collected" - t.datetime "created_at", :null => false - t.datetime "updated_at", :null => false - end - - create_table "option_numbers", :force => true do |t| - t.integer "user_id" - t.integer "memo" - t.integer "messages_for_issues" - t.integer "issues_status" - t.integer "replay_for_message" - t.integer "replay_for_memo" - t.integer "follow" - t.integer "tread" - t.integer "praise_by_one" - t.integer "praise_by_two" - t.integer "praise_by_three" - t.integer "tread_by_one" - t.integer "tread_by_two" - t.integer "tread_by_three" - t.integer "changeset" - t.integer "document" - t.integer "attachment" - t.integer "issue_done_ratio" - t.integer "post_issue" - t.integer "score_type" - t.integer "total_score" - t.datetime "created_at", :null => false - t.datetime "updated_at", :null => false - t.integer "project_id" - end - - create_table "praise_tread_caches", :force => true do |t| - t.integer "object_id", :null => false - t.string "object_type" - t.integer "praise_num" - t.integer "tread_num" - t.datetime "created_at", :null => false - t.datetime "updated_at", :null => false - end - - create_table "praise_treads", :force => true do |t| - t.integer "user_id", :null => false - t.integer "praise_tread_object_id" - t.string "praise_tread_object_type" - t.integer "praise_or_tread" - t.datetime "created_at", :null => false - t.datetime "updated_at", :null => false - end - - create_table "project_infos", :force => true do |t| - t.integer "project_id" - t.integer "user_id" - t.datetime "created_at", :null => false - t.datetime "updated_at", :null => false - end - - create_table "project_scores", :force => true do |t| - t.string "project_id" - t.integer "score" - t.datetime "created_at", :null => false - t.datetime "updated_at", :null => false - t.integer "issue_num", :default => 0 - t.integer "issue_journal_num", :default => 0 - t.integer "news_num", :default => 0 - t.integer "documents_num", :default => 0 - t.integer "changeset_num", :default => 0 - t.integer "board_message_num", :default => 0 - end - - create_table "project_statuses", :force => true do |t| - t.integer "changesets_count" - t.integer "watchers_count" - t.integer "project_id" - t.integer "project_type" - t.float "grade", :default => 0.0 - t.integer "course_ac_para", :default => 0 - end - - add_index "project_statuses", ["grade"], :name => "index_project_statuses_on_grade" - - create_table "projecting_softapplictions", :force => true do |t| - t.integer "user_id" - t.integer "softapplication_id" - t.integer "project_id" - t.datetime "created_at", :null => false - t.datetime "updated_at", :null => false - end - - create_table "projects", :force => true do |t| - t.string "name", :default => "", :null => false - t.text "description" - t.string "homepage", :default => "" - t.boolean "is_public", :default => true, :null => false - t.integer "parent_id" - t.datetime "created_on" - t.datetime "updated_on" - t.string "identifier" - t.integer "status", :default => 1, :null => false - t.integer "lft" - t.integer "rgt" - t.boolean "inherit_members", :default => false, :null => false - t.integer "project_type" - t.boolean "hidden_repo", :default => false, :null => false - t.integer "attachmenttype", :default => 1 - t.integer "user_id" - t.integer "dts_test", :default => 0 - end - - add_index "projects", ["lft"], :name => "index_projects_on_lft" - add_index "projects", ["rgt"], :name => "index_projects_on_rgt" - - create_table "projects_trackers", :id => false, :force => true do |t| - t.integer "project_id", :default => 0, :null => false - t.integer "tracker_id", :default => 0, :null => false - end - - add_index "projects_trackers", ["project_id", "tracker_id"], :name => "projects_trackers_unique", :unique => true - add_index "projects_trackers", ["project_id"], :name => "projects_trackers_project_id" - - create_table "queries", :force => true do |t| - t.integer "project_id" - t.string "name", :default => "", :null => false - t.text "filters" - t.integer "user_id", :default => 0, :null => false - t.boolean "is_public", :default => false, :null => false - t.text "column_names" - t.text "sort_criteria" - t.string "group_by" - t.string "type" - end - - add_index "queries", ["project_id"], :name => "index_queries_on_project_id" - add_index "queries", ["user_id"], :name => "index_queries_on_user_id" - - create_table "relative_memo_to_open_source_projects", :force => true do |t| - t.integer "osp_id" - t.integer "relative_memo_id" - t.datetime "created_at", :null => false - t.datetime "updated_at", :null => false - end - - create_table "relative_memos", :force => true do |t| - t.integer "osp_id" - t.integer "parent_id" - t.string "subject", :null => false - t.text "content", :limit => 16777215, :null => false - t.integer "author_id" - t.integer "replies_count", :default => 0 - t.integer "last_reply_id" - t.boolean "lock", :default => false - t.boolean "sticky", :default => false - t.boolean "is_quote", :default => false - t.datetime "created_at", :null => false - t.datetime "updated_at", :null => false - t.integer "viewed_count_crawl", :default => 0 - t.integer "viewed_count_local", :default => 0 - t.string "url" - t.string "username" - t.string "userhomeurl" - t.date "date_collected" - t.string "topic_resource" - end - - create_table "repositories", :force => true do |t| - t.integer "project_id", :default => 0, :null => false - t.string "url", :default => "", :null => false - t.string "login", :limit => 60, :default => "" - t.string "password", :default => "" - t.string "root_url", :default => "" - t.string "type" - t.string "path_encoding", :limit => 64 - t.string "log_encoding", :limit => 64 - t.text "extra_info" - t.string "identifier" - t.boolean "is_default", :default => false - end - - add_index "repositories", ["project_id"], :name => "index_repositories_on_project_id" - - create_table "rich_rich_files", :force => true do |t| - t.datetime "created_at", :null => false - t.datetime "updated_at", :null => false - t.string "rich_file_file_name" - t.string "rich_file_content_type" - t.integer "rich_file_file_size" - t.datetime "rich_file_updated_at" - t.string "owner_type" - t.integer "owner_id" - t.text "uri_cache" - t.string "simplified_type", :default => "file" - end - - create_table "roles", :force => true do |t| - t.string "name", :limit => 30, :default => "", :null => false - t.integer "position", :default => 1 - t.boolean "assignable", :default => true - t.integer "builtin", :default => 0, :null => false - t.text "permissions" - t.string "issues_visibility", :limit => 30, :default => "default", :null => false - end - - create_table "schools", :force => true do |t| - t.string "name" - t.string "province" - t.datetime "created_at", :null => false - t.datetime "updated_at", :null => false - t.string "logo_link" - end - - create_table "seems_rateable_cached_ratings", :force => true do |t| - t.integer "cacheable_id", :limit => 8 - t.string "cacheable_type" - t.float "avg", :null => false - t.integer "cnt", :null => false - t.string "dimension" - t.datetime "created_at", :null => false - t.datetime "updated_at", :null => false - end - - create_table "seems_rateable_rates", :force => true do |t| - t.integer "rater_id", :limit => 8 - t.integer "rateable_id" - t.string "rateable_type" - t.float "stars", :null => false - t.string "dimension" - t.datetime "created_at", :null => false - t.datetime "updated_at", :null => false - end - - create_table "settings", :force => true do |t| - t.string "name", :default => "", :null => false - t.text "value" - t.datetime "updated_on" - end - - add_index "settings", ["name"], :name => "index_settings_on_name" - - create_table "shares", :force => true do |t| - t.date "created_on" - t.string "url" - t.string "title" - t.integer "share_type" - t.datetime "created_at", :null => false - t.datetime "updated_at", :null => false - t.integer "project_id" - t.integer "user_id" - t.string "description" - end - - create_table "softapplications", :force => true do |t| - t.string "name" - t.text "description" - t.integer "app_type_id" - t.string "app_type_name" - t.string "android_min_version_available" - t.integer "user_id" - t.datetime "created_at", :null => false - t.datetime "updated_at", :null => false - t.integer "contest_id" - t.integer "softapplication_id" - t.integer "is_public" - t.string "application_developers" - t.string "deposit_project_url" - t.string "deposit_project" - t.integer "project_id" - end - - create_table "students_for_courses", :force => true do |t| - t.integer "student_id" - t.integer "course_id" - t.datetime "created_at", :null => false - t.datetime "updated_at", :null => false - end - - create_table "taggings", :force => true do |t| - t.integer "tag_id" - t.integer "taggable_id" - t.string "taggable_type" - t.integer "tagger_id" - t.string "tagger_type" - t.string "context", :limit => 128 - t.datetime "created_at" - end - - add_index "taggings", ["tag_id"], :name => "index_taggings_on_tag_id" - add_index "taggings", ["taggable_id", "taggable_type", "context"], :name => "index_taggings_on_taggable_id_and_taggable_type_and_context" - add_index "taggings", ["taggable_type"], :name => "index_taggings_on_taggable_type" - - create_table "tags", :force => true do |t| - t.string "name" - end - - create_table "teachers", :force => true do |t| - t.string "tea_name" - t.string "location" - t.integer "couurse_time" - t.integer "course_code" - t.datetime "created_at", :null => false - t.datetime "updated_at", :null => false - t.string "extra" - end - - create_table "time_entries", :force => true do |t| - t.integer "project_id", :null => false - t.integer "user_id", :null => false - t.integer "issue_id" - t.float "hours", :null => false - t.string "comments" - t.integer "activity_id", :null => false - t.date "spent_on", :null => false - t.integer "tyear", :null => false - t.integer "tmonth", :null => false - t.integer "tweek", :null => false - t.datetime "created_on", :null => false - t.datetime "updated_on", :null => false - end - - add_index "time_entries", ["activity_id"], :name => "index_time_entries_on_activity_id" - add_index "time_entries", ["created_on"], :name => "index_time_entries_on_created_on" - add_index "time_entries", ["issue_id"], :name => "time_entries_issue_id" - add_index "time_entries", ["project_id"], :name => "time_entries_project_id" - add_index "time_entries", ["user_id"], :name => "index_time_entries_on_user_id" - - create_table "tokens", :force => true do |t| - t.integer "user_id", :default => 0, :null => false - t.string "action", :limit => 30, :default => "", :null => false - t.string "value", :limit => 40, :default => "", :null => false - t.datetime "created_on", :null => false - end - - add_index "tokens", ["user_id"], :name => "index_tokens_on_user_id" - add_index "tokens", ["value"], :name => "tokens_value", :unique => true - - create_table "trackers", :force => true do |t| - t.string "name", :limit => 30, :default => "", :null => false - t.boolean "is_in_chlog", :default => false, :null => false - t.integer "position", :default => 1 - t.boolean "is_in_roadmap", :default => true, :null => false - t.integer "fields_bits", :default => 0 - end - - create_table "user_extensions", :force => true do |t| - t.integer "user_id", :null => false - t.date "birthday" - t.string "brief_introduction" - t.integer "gender" - t.string "location" - t.string "occupation" - t.integer "work_experience" - t.integer "zip_code" - t.datetime "created_at", :null => false - t.datetime "updated_at", :null => false - t.string "technical_title" - t.integer "identity" - t.string "student_id" - t.string "teacher_realname" - t.string "student_realname" - t.string "location_city" - t.integer "school_id" - end - - create_table "user_grades", :force => true do |t| - t.integer "user_id", :null => false - t.integer "project_id", :null => false - t.float "grade", :default => 0.0 - t.datetime "created_at", :null => false - t.datetime "updated_at", :null => false - end - - add_index "user_grades", ["grade"], :name => "index_user_grades_on_grade" - add_index "user_grades", ["project_id"], :name => "index_user_grades_on_project_id" - add_index "user_grades", ["user_id"], :name => "index_user_grades_on_user_id" - - create_table "user_levels", :force => true do |t| - t.integer "user_id" - t.integer "level" - end - - create_table "user_preferences", :force => true do |t| - t.integer "user_id", :default => 0, :null => false - t.text "others" - t.boolean "hide_mail", :default => false - t.string "time_zone" - end - - add_index "user_preferences", ["user_id"], :name => "index_user_preferences_on_user_id" - - create_table "user_score_details", :force => true do |t| - t.integer "current_user_id" - t.integer "target_user_id" - t.string "score_type" - t.string "score_action" - t.integer "user_id" - t.integer "old_score" - t.integer "new_score" - t.integer "current_user_level" - t.integer "target_user_level" - t.integer "score_changeable_obj_id" - t.string "score_changeable_obj_type" - t.datetime "created_at", :null => false - t.datetime "updated_at", :null => false - end - - create_table "user_scores", :force => true do |t| - t.integer "user_id", :null => false - t.integer "collaboration" - t.integer "influence" - t.integer "skill" - t.integer "active" - t.datetime "created_at", :null => false - t.datetime "updated_at", :null => false - end - - create_table "user_statuses", :force => true do |t| - t.integer "changesets_count" - t.integer "watchers_count" - t.integer "user_id" - t.datetime "created_at", :null => false - t.datetime "updated_at", :null => false - t.float "grade", :default => 0.0 - end - - add_index "user_statuses", ["changesets_count"], :name => "index_user_statuses_on_changesets_count" - add_index "user_statuses", ["grade"], :name => "index_user_statuses_on_grade" - add_index "user_statuses", ["watchers_count"], :name => "index_user_statuses_on_watchers_count" - - create_table "users", :force => true do |t| - t.string "login", :default => "", :null => false - t.string "hashed_password", :limit => 40, :default => "", :null => false - t.string "firstname", :limit => 30, :default => "", :null => false - t.string "lastname", :default => "", :null => false - t.string "mail", :limit => 60, :default => "", :null => false - t.boolean "admin", :default => false, :null => false - t.integer "status", :default => 1, :null => false - t.datetime "last_login_on" - t.string "language", :limit => 5, :default => "" - t.integer "auth_source_id" - t.datetime "created_on" - t.datetime "updated_on" - t.string "type" - t.string "identity_url" - t.string "mail_notification", :default => "", :null => false - t.string "salt", :limit => 64 - end - - add_index "users", ["auth_source_id"], :name => "index_users_on_auth_source_id" - add_index "users", ["id", "type"], :name => "index_users_on_id_and_type" - add_index "users", ["type"], :name => "index_users_on_type" - - create_table "versions", :force => true do |t| - t.integer "project_id", :default => 0, :null => false - t.string "name", :default => "", :null => false - t.string "description", :default => "" - t.date "effective_date" - t.datetime "created_on" - t.datetime "updated_on" - t.string "wiki_page_title" - t.string "status", :default => "open" - t.string "sharing", :default => "none", :null => false - end - - add_index "versions", ["project_id"], :name => "versions_project_id" - add_index "versions", ["sharing"], :name => "index_versions_on_sharing" - - create_table "watchers", :force => true do |t| - t.string "watchable_type", :default => "", :null => false - t.integer "watchable_id", :default => 0, :null => false - t.integer "user_id" - end - - add_index "watchers", ["user_id", "watchable_type"], :name => "watchers_user_id_type" - add_index "watchers", ["user_id"], :name => "index_watchers_on_user_id" - add_index "watchers", ["watchable_id", "watchable_type"], :name => "index_watchers_on_watchable_id_and_watchable_type" - - create_table "web_footer_companies", :force => true do |t| - t.string "name" - t.string "logo_size" - t.string "url" - t.datetime "created_at", :null => false - t.datetime "updated_at", :null => false - end - - create_table "web_footer_oranizers", :force => true do |t| - t.string "name" - t.text "description" - t.datetime "created_at", :null => false - t.datetime "updated_at", :null => false - end - - create_table "wiki_content_versions", :force => true do |t| - t.integer "wiki_content_id", :null => false - t.integer "page_id", :null => false - t.integer "author_id" - t.binary "data", :limit => 2147483647 - t.string "compression", :limit => 6, :default => "" - t.string "comments", :default => "" - t.datetime "updated_on", :null => false - t.integer "version", :null => false - end - - add_index "wiki_content_versions", ["updated_on"], :name => "index_wiki_content_versions_on_updated_on" - add_index "wiki_content_versions", ["wiki_content_id"], :name => "wiki_content_versions_wcid" - - create_table "wiki_contents", :force => true do |t| - t.integer "page_id", :null => false - t.integer "author_id" - t.text "text", :limit => 2147483647 - t.string "comments", :default => "" - t.datetime "updated_on", :null => false - t.integer "version", :null => false - end - - add_index "wiki_contents", ["author_id"], :name => "index_wiki_contents_on_author_id" - add_index "wiki_contents", ["page_id"], :name => "wiki_contents_page_id" - - create_table "wiki_pages", :force => true do |t| - t.integer "wiki_id", :null => false - t.string "title", :null => false - t.datetime "created_on", :null => false - t.boolean "protected", :default => false, :null => false - t.integer "parent_id" - end - - add_index "wiki_pages", ["parent_id"], :name => "index_wiki_pages_on_parent_id" - add_index "wiki_pages", ["wiki_id", "title"], :name => "wiki_pages_wiki_id_title" - add_index "wiki_pages", ["wiki_id"], :name => "index_wiki_pages_on_wiki_id" - - create_table "wiki_redirects", :force => true do |t| - t.integer "wiki_id", :null => false - t.string "title" - t.string "redirects_to" - t.datetime "created_on", :null => false - end - - add_index "wiki_redirects", ["wiki_id", "title"], :name => "wiki_redirects_wiki_id_title" - add_index "wiki_redirects", ["wiki_id"], :name => "index_wiki_redirects_on_wiki_id" - - create_table "wikis", :force => true do |t| - t.integer "project_id", :null => false - t.string "start_page", :null => false - t.integer "status", :default => 1, :null => false - end - - add_index "wikis", ["project_id"], :name => "wikis_project_id" - - create_table "workflows", :force => true do |t| - t.integer "tracker_id", :default => 0, :null => false - t.integer "old_status_id", :default => 0, :null => false - t.integer "new_status_id", :default => 0, :null => false - t.integer "role_id", :default => 0, :null => false - t.boolean "assignee", :default => false, :null => false - t.boolean "author", :default => false, :null => false - t.string "type", :limit => 30 - t.string "field_name", :limit => 30 - t.string "rule", :limit => 30 - end - - add_index "workflows", ["new_status_id"], :name => "index_workflows_on_new_status_id" - add_index "workflows", ["old_status_id"], :name => "index_workflows_on_old_status_id" - add_index "workflows", ["role_id", "tracker_id", "old_status_id"], :name => "wkfs_role_tracker_old_status" - add_index "workflows", ["role_id"], :name => "index_workflows_on_role_id" - - create_table "works_categories", :force => true do |t| - t.string "category" - t.datetime "created_at", :null => false - t.datetime "updated_at", :null => false - end - -end +# encoding: UTF-8 +# This file is auto-generated from the current state of the database. Instead +# of editing this file, please use the migrations feature of Active Record to +# incrementally modify your database, and then regenerate this schema definition. +# +# Note that this schema.rb definition is the authoritative source for your +# database schema. If you need to create the application database on another +# system, you should be using db:schema:load, not running all the migrations +# from scratch. The latter is a flawed and unsustainable approach (the more migrations +# you'll amass, the slower it'll run and the greater likelihood for issues). +# +# It's strongly recommended to check this file into your version control system. + +ActiveRecord::Schema.define(:version => 20141210070327) do + + create_table "activities", :force => true do |t| + t.integer "act_id", :null => false + t.string "act_type", :null => false + t.integer "user_id", :null => false + end + + add_index "activities", ["act_id", "act_type"], :name => "index_activities_on_act_id_and_act_type" + add_index "activities", ["user_id", "act_type"], :name => "index_activities_on_user_id_and_act_type" + add_index "activities", ["user_id"], :name => "index_activities_on_user_id" + + create_table "api_keys", :force => true do |t| + t.string "access_token" + t.datetime "expires_at" + t.integer "user_id" + t.boolean "active", :default => true + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false + end + + add_index "api_keys", ["access_token"], :name => "index_api_keys_on_access_token" + add_index "api_keys", ["user_id"], :name => "index_api_keys_on_user_id" + + create_table "applied_projects", :force => true do |t| + t.integer "project_id", :null => false + t.integer "user_id", :null => false + end + + create_table "apply_project_masters", :force => true do |t| + t.integer "user_id" + t.string "apply_type" + t.integer "apply_id" + t.integer "status" + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false + end + + create_table "attachments", :force => true do |t| + t.integer "container_id" + t.string "container_type", :limit => 30 + t.string "filename", :default => "", :null => false + t.string "disk_filename", :default => "", :null => false + t.integer "filesize", :default => 0, :null => false + t.string "content_type", :default => "" + t.string "digest", :limit => 40, :default => "", :null => false + t.integer "downloads", :default => 0, :null => false + t.integer "author_id", :default => 0, :null => false + t.datetime "created_on" + t.string "description" + t.string "disk_directory" + t.integer "attachtype", :default => 1 + t.integer "is_public", :default => 1 + t.integer "copy_from" + t.integer "quotes" + end + + add_index "attachments", ["author_id"], :name => "index_attachments_on_author_id" + add_index "attachments", ["container_id", "container_type"], :name => "index_attachments_on_container_id_and_container_type" + add_index "attachments", ["created_on"], :name => "index_attachments_on_created_on" + + create_table "attachmentstypes", :force => true do |t| + t.integer "typeId", :null => false + t.string "typeName", :limit => 50 + end + + create_table "auth_sources", :force => true do |t| + t.string "type", :limit => 30, :default => "", :null => false + t.string "name", :limit => 60, :default => "", :null => false + t.string "host", :limit => 60 + t.integer "port" + t.string "account" + t.string "account_password", :default => "" + t.string "base_dn" + t.string "attr_login", :limit => 30 + t.string "attr_firstname", :limit => 30 + t.string "attr_lastname", :limit => 30 + t.string "attr_mail", :limit => 30 + t.boolean "onthefly_register", :default => false, :null => false + t.boolean "tls", :default => false, :null => false + t.string "filter" + t.integer "timeout" + end + + add_index "auth_sources", ["id", "type"], :name => "index_auth_sources_on_id_and_type" + + create_table "biding_projects", :force => true do |t| + t.integer "project_id" + t.integer "bid_id" + t.integer "user_id" + t.string "description" + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false + t.string "reward" + end + + create_table "bids", :force => true do |t| + t.string "name" + t.string "budget", :null => false + t.integer "author_id" + t.date "deadline" + t.text "description" + t.datetime "created_on", :null => false + t.datetime "updated_on", :null => false + t.integer "commit" + t.integer "reward_type" + t.integer "homework_type" + t.integer "parent_id" + t.string "password" + t.integer "is_evaluation" + t.integer "proportion", :default => 60 + t.integer "comment_status", :default => 0 + t.integer "evaluation_num", :default => 3 + t.integer "open_anonymous_evaluation", :default => 1 + end + + create_table "boards", :force => true do |t| + t.integer "project_id", :null => false + t.string "name", :default => "", :null => false + t.string "description" + t.integer "position", :default => 1 + t.integer "topics_count", :default => 0, :null => false + t.integer "messages_count", :default => 0, :null => false + t.integer "last_message_id" + t.integer "parent_id" + t.integer "course_id" + end + + add_index "boards", ["last_message_id"], :name => "index_boards_on_last_message_id" + add_index "boards", ["project_id"], :name => "boards_project_id" + + create_table "bug_to_osps", :force => true do |t| + t.integer "osp_id" + t.integer "relative_memo_id" + t.string "description" + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false + end + + create_table "changes", :force => true do |t| + t.integer "changeset_id", :null => false + t.string "action", :limit => 1, :default => "", :null => false + t.text "path", :null => false + t.text "from_path" + t.string "from_revision" + t.string "revision" + t.string "branch" + end + + add_index "changes", ["changeset_id"], :name => "changesets_changeset_id" + + create_table "changeset_parents", :id => false, :force => true do |t| + t.integer "changeset_id", :null => false + t.integer "parent_id", :null => false + end + + add_index "changeset_parents", ["changeset_id"], :name => "changeset_parents_changeset_ids" + add_index "changeset_parents", ["parent_id"], :name => "changeset_parents_parent_ids" + + create_table "changesets", :force => true do |t| + t.integer "repository_id", :null => false + t.string "revision", :null => false + t.string "committer" + t.datetime "committed_on", :null => false + t.text "comments" + t.date "commit_date" + t.string "scmid" + t.integer "user_id" + end + + add_index "changesets", ["committed_on"], :name => "index_changesets_on_committed_on" + add_index "changesets", ["repository_id", "revision"], :name => "changesets_repos_rev", :unique => true + add_index "changesets", ["repository_id", "scmid"], :name => "changesets_repos_scmid" + add_index "changesets", ["repository_id"], :name => "index_changesets_on_repository_id" + add_index "changesets", ["user_id"], :name => "index_changesets_on_user_id" + + create_table "changesets_issues", :id => false, :force => true do |t| + t.integer "changeset_id", :null => false + t.integer "issue_id", :null => false + end + + add_index "changesets_issues", ["changeset_id", "issue_id"], :name => "changesets_issues_ids", :unique => true + + create_table "code_review_assignments", :force => true do |t| + t.integer "issue_id" + t.integer "change_id" + t.integer "attachment_id" + t.string "file_path" + t.string "rev" + t.string "rev_to" + t.string "action_type" + t.integer "changeset_id" + end + + create_table "code_review_project_settings", :force => true do |t| + t.integer "project_id" + t.integer "tracker_id" + t.datetime "created_at" + t.datetime "updated_at" + t.integer "updated_by" + t.boolean "hide_code_review_tab", :default => false + t.integer "auto_relation", :default => 1 + t.integer "assignment_tracker_id" + t.text "auto_assign" + t.integer "lock_version", :default => 0, :null => false + t.boolean "tracker_in_review_dialog", :default => false + end + + create_table "code_review_user_settings", :force => true do |t| + t.integer "user_id", :default => 0, :null => false + t.integer "mail_notification", :default => 0, :null => false + t.datetime "created_at" + t.datetime "updated_at" + end + + create_table "code_reviews", :force => true do |t| + t.integer "project_id" + t.integer "change_id" + t.datetime "created_at" + t.datetime "updated_at" + t.integer "line" + t.integer "updated_by_id" + t.integer "lock_version", :default => 0, :null => false + t.integer "status_changed_from" + t.integer "status_changed_to" + t.integer "issue_id" + t.string "action_type" + t.string "file_path" + t.string "rev" + t.string "rev_to" + t.integer "attachment_id" + t.integer "file_count", :default => 0, :null => false + t.boolean "diff_all" + end + + create_table "comments", :force => true do |t| + t.string "commented_type", :limit => 30, :default => "", :null => false + t.integer "commented_id", :default => 0, :null => false + t.integer "author_id", :default => 0, :null => false + t.text "comments" + t.datetime "created_on", :null => false + t.datetime "updated_on", :null => false + end + + add_index "comments", ["author_id"], :name => "index_comments_on_author_id" + add_index "comments", ["commented_id", "commented_type"], :name => "index_comments_on_commented_id_and_commented_type" + + create_table "contest_notifications", :force => true do |t| + t.text "title" + t.text "content" + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false + end + + create_table "contesting_projects", :force => true do |t| + t.integer "project_id" + t.string "contest_id" + t.integer "user_id" + t.string "description" + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false + t.string "reward" + end + + create_table "contesting_softapplications", :force => true do |t| + t.integer "softapplication_id" + t.integer "contest_id" + t.integer "user_id" + t.string "description" + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false + t.string "reward" + end + + create_table "contestnotifications", :force => true do |t| + t.integer "contest_id" + t.string "title" + t.string "summary" + t.text "description" + t.integer "author_id" + t.integer "notificationcomments_count" + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false + end + + create_table "contests", :force => true do |t| + t.string "name" + t.string "budget", :default => "" + t.integer "author_id" + t.date "deadline" + t.string "description" + t.integer "commit" + t.string "password" + t.datetime "created_on", :null => false + t.datetime "updated_on", :null => false + end + + create_table "course_attachments", :force => true do |t| + t.string "filename" + t.string "disk_filename" + t.integer "filesize" + t.string "content_type" + t.string "digest" + t.integer "downloads" + t.string "author_id" + t.string "integer" + t.string "description" + t.string "disk_directory" + t.integer "attachtype" + t.integer "is_public" + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false + t.integer "container_id", :default => 0 + end + + create_table "course_groups", :force => true do |t| + t.string "name" + t.integer "course_id" + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false + end + + create_table "course_infos", :force => true do |t| + t.integer "course_id" + t.integer "user_id" + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false + end + + create_table "course_statuses", :force => true do |t| + t.integer "changesets_count" + t.integer "watchers_count" + t.integer "course_id" + t.float "grade", :default => 0.0 + t.integer "course_ac_para", :default => 0 + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false + end + + create_table "courses", :force => true do |t| + t.integer "tea_id" + t.string "name" + t.integer "state" + t.string "code" + t.integer "time" + t.string "extra" + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false + t.string "location" + t.string "term" + t.string "string" + t.string "password" + t.string "setup_time" + t.string "endup_time" + t.string "class_period" + t.integer "school_id" + t.text "description" + t.integer "status", :default => 1 + t.integer "attachmenttype", :default => 2 + t.integer "lft" + t.integer "rgt" + t.integer "is_public", :limit => 1, :default => 1 + t.integer "inherit_members", :limit => 1, :default => 1 + t.integer "open_student", :default => 0 + end + + create_table "custom_fields", :force => true do |t| + t.string "type", :limit => 30, :default => "", :null => false + t.string "name", :limit => 30, :default => "", :null => false + t.string "field_format", :limit => 30, :default => "", :null => false + t.text "possible_values" + t.string "regexp", :default => "" + t.integer "min_length", :default => 0, :null => false + t.integer "max_length", :default => 0, :null => false + t.boolean "is_required", :default => false, :null => false + t.boolean "is_for_all", :default => false, :null => false + t.boolean "is_filter", :default => false, :null => false + t.integer "position", :default => 1 + t.boolean "searchable", :default => false + t.text "default_value" + t.boolean "editable", :default => true + t.boolean "visible", :default => true, :null => false + t.boolean "multiple", :default => false + end + + add_index "custom_fields", ["id", "type"], :name => "index_custom_fields_on_id_and_type" + + create_table "custom_fields_projects", :id => false, :force => true do |t| + t.integer "custom_field_id", :default => 0, :null => false + t.integer "project_id", :default => 0, :null => false + end + + add_index "custom_fields_projects", ["custom_field_id", "project_id"], :name => "index_custom_fields_projects_on_custom_field_id_and_project_id", :unique => true + + create_table "custom_fields_trackers", :id => false, :force => true do |t| + t.integer "custom_field_id", :default => 0, :null => false + t.integer "tracker_id", :default => 0, :null => false + end + + add_index "custom_fields_trackers", ["custom_field_id", "tracker_id"], :name => "index_custom_fields_trackers_on_custom_field_id_and_tracker_id", :unique => true + + create_table "custom_values", :force => true do |t| + t.string "customized_type", :limit => 30, :default => "", :null => false + t.integer "customized_id", :default => 0, :null => false + t.integer "custom_field_id", :default => 0, :null => false + t.text "value" + end + + add_index "custom_values", ["custom_field_id"], :name => "index_custom_values_on_custom_field_id" + add_index "custom_values", ["customized_type", "customized_id"], :name => "custom_values_customized" + + create_table "documents", :force => true do |t| + t.integer "project_id", :default => 0, :null => false + t.integer "category_id", :default => 0, :null => false + t.string "title", :limit => 60, :default => "", :null => false + t.text "description" + t.datetime "created_on" + t.integer "user_id", :default => 0 + t.integer "is_public", :default => 1 + end + + add_index "documents", ["category_id"], :name => "index_documents_on_category_id" + add_index "documents", ["created_on"], :name => "index_documents_on_created_on" + add_index "documents", ["project_id"], :name => "documents_project_id" + + create_table "enabled_modules", :force => true do |t| + t.integer "project_id" + t.string "name", :null => false + t.integer "course_id" + end + + add_index "enabled_modules", ["project_id"], :name => "enabled_modules_project_id" + + create_table "enumerations", :force => true do |t| + t.string "name", :limit => 30, :default => "", :null => false + t.integer "position", :default => 1 + t.boolean "is_default", :default => false, :null => false + t.string "type" + t.boolean "active", :default => true, :null => false + t.integer "project_id" + t.integer "parent_id" + t.string "position_name", :limit => 30 + end + + add_index "enumerations", ["id", "type"], :name => "index_enumerations_on_id_and_type" + add_index "enumerations", ["project_id"], :name => "index_enumerations_on_project_id" + + create_table "first_pages", :force => true do |t| + t.string "web_title" + t.string "title" + t.text "description" + t.string "page_type" + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false + t.integer "sort_type" + t.integer "image_width", :default => 107 + t.integer "image_height", :default => 63 + t.integer "show_course", :default => 1 + t.integer "show_contest", :default => 1 + end + + create_table "forums", :force => true do |t| + t.string "name", :null => false + t.text "description" + t.integer "topic_count", :default => 0 + t.integer "memo_count", :default => 0 + t.integer "last_memo_id", :default => 0 + t.integer "creator_id", :null => false + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false + t.integer "sticky" + t.integer "locked" + end + + create_table "groups_users", :id => false, :force => true do |t| + t.integer "group_id", :null => false + t.integer "user_id", :null => false + end + + add_index "groups_users", ["group_id", "user_id"], :name => "groups_users_ids", :unique => true + + create_table "homework_attaches", :force => true do |t| + t.integer "bid_id" + t.integer "user_id" + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false + t.string "reward" + t.string "name" + t.text "description" + t.integer "state" + t.integer "project_id", :default => 0 + end + + create_table "homework_evaluations", :force => true do |t| + t.string "user_id" + t.string "homework_attach_id" + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false + end + + create_table "homework_for_courses", :force => true do |t| + t.integer "course_id" + t.integer "bid_id" + end + + create_table "homework_users", :force => true do |t| + t.string "homework_attach_id" + t.string "user_id" + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false + end + + create_table "issue_categories", :force => true do |t| + t.integer "project_id", :default => 0, :null => false + t.string "name", :limit => 30, :default => "", :null => false + t.integer "assigned_to_id" + end + + add_index "issue_categories", ["assigned_to_id"], :name => "index_issue_categories_on_assigned_to_id" + add_index "issue_categories", ["project_id"], :name => "issue_categories_project_id" + + create_table "issue_relations", :force => true do |t| + t.integer "issue_from_id", :null => false + t.integer "issue_to_id", :null => false + t.string "relation_type", :default => "", :null => false + t.integer "delay" + end + + add_index "issue_relations", ["issue_from_id", "issue_to_id"], :name => "index_issue_relations_on_issue_from_id_and_issue_to_id", :unique => true + add_index "issue_relations", ["issue_from_id"], :name => "index_issue_relations_on_issue_from_id" + add_index "issue_relations", ["issue_to_id"], :name => "index_issue_relations_on_issue_to_id" + + create_table "issue_statuses", :force => true do |t| + t.string "name", :limit => 30, :default => "", :null => false + t.boolean "is_closed", :default => false, :null => false + t.boolean "is_default", :default => false, :null => false + t.integer "position", :default => 1 + t.integer "default_done_ratio" + end + + add_index "issue_statuses", ["is_closed"], :name => "index_issue_statuses_on_is_closed" + add_index "issue_statuses", ["is_default"], :name => "index_issue_statuses_on_is_default" + add_index "issue_statuses", ["position"], :name => "index_issue_statuses_on_position" + + create_table "issues", :force => true do |t| + t.integer "tracker_id", :null => false + t.integer "project_id", :null => false + t.string "subject", :default => "", :null => false + t.text "description" + t.date "due_date" + t.integer "category_id" + t.integer "status_id", :null => false + t.integer "assigned_to_id" + t.integer "priority_id", :null => false + t.integer "fixed_version_id" + t.integer "author_id", :null => false + t.integer "lock_version", :default => 0, :null => false + t.datetime "created_on" + t.datetime "updated_on" + t.date "start_date" + t.integer "done_ratio", :default => 0, :null => false + t.float "estimated_hours" + t.integer "parent_id" + t.integer "root_id" + t.integer "lft" + t.integer "rgt" + t.boolean "is_private", :default => false, :null => false + t.datetime "closed_on" + end + + add_index "issues", ["assigned_to_id"], :name => "index_issues_on_assigned_to_id" + add_index "issues", ["author_id"], :name => "index_issues_on_author_id" + add_index "issues", ["category_id"], :name => "index_issues_on_category_id" + add_index "issues", ["created_on"], :name => "index_issues_on_created_on" + add_index "issues", ["fixed_version_id"], :name => "index_issues_on_fixed_version_id" + add_index "issues", ["priority_id"], :name => "index_issues_on_priority_id" + add_index "issues", ["project_id"], :name => "issues_project_id" + add_index "issues", ["root_id", "lft", "rgt"], :name => "index_issues_on_root_id_and_lft_and_rgt" + add_index "issues", ["status_id"], :name => "index_issues_on_status_id" + add_index "issues", ["tracker_id"], :name => "index_issues_on_tracker_id" + + create_table "join_in_competitions", :force => true do |t| + t.integer "user_id" + t.integer "competition_id" + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false + end + + create_table "join_in_contests", :force => true do |t| + t.integer "user_id" + t.integer "bid_id" + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false + end + + create_table "journal_details", :force => true do |t| + t.integer "journal_id", :default => 0, :null => false + t.string "property", :limit => 30, :default => "", :null => false + t.string "prop_key", :limit => 30, :default => "", :null => false + t.text "old_value" + t.text "value" + end + + add_index "journal_details", ["journal_id"], :name => "journal_details_journal_id" + + create_table "journal_replies", :id => false, :force => true do |t| + t.integer "journal_id" + t.integer "user_id" + t.integer "reply_id" + end + + add_index "journal_replies", ["journal_id"], :name => "index_journal_replies_on_journal_id" + add_index "journal_replies", ["reply_id"], :name => "index_journal_replies_on_reply_id" + add_index "journal_replies", ["user_id"], :name => "index_journal_replies_on_user_id" + + create_table "journals", :force => true do |t| + t.integer "journalized_id", :default => 0, :null => false + t.string "journalized_type", :limit => 30, :default => "", :null => false + t.integer "user_id", :default => 0, :null => false + t.text "notes" + t.datetime "created_on", :null => false + t.boolean "private_notes", :default => false, :null => false + end + + add_index "journals", ["created_on"], :name => "index_journals_on_created_on" + add_index "journals", ["journalized_id", "journalized_type"], :name => "journals_journalized_id" + add_index "journals", ["journalized_id"], :name => "index_journals_on_journalized_id" + add_index "journals", ["user_id"], :name => "index_journals_on_user_id" + + create_table "journals_for_messages", :force => true do |t| + t.integer "jour_id" + t.string "jour_type" + t.integer "user_id" + t.text "notes" + t.integer "status" + t.integer "reply_id" + t.datetime "created_on", :null => false + t.datetime "updated_on", :null => false + t.string "m_parent_id" + t.boolean "is_readed" + t.integer "m_reply_count" + t.integer "m_reply_id" + t.integer "is_comprehensive_evaluation" + end + + create_table "member_roles", :force => true do |t| + t.integer "member_id", :null => false + t.integer "role_id", :null => false + t.integer "inherited_from" + end + + add_index "member_roles", ["member_id"], :name => "index_member_roles_on_member_id" + add_index "member_roles", ["role_id"], :name => "index_member_roles_on_role_id" + + create_table "members", :force => true do |t| + t.integer "user_id", :default => 0, :null => false + t.integer "project_id", :default => 0 + t.datetime "created_on" + t.boolean "mail_notification", :default => false, :null => false + t.integer "course_id", :default => -1 + t.integer "course_group_id", :default => 0 + end + + add_index "members", ["project_id"], :name => "index_members_on_project_id" + add_index "members", ["user_id", "project_id", "course_id"], :name => "index_members_on_user_id_and_project_id", :unique => true + add_index "members", ["user_id"], :name => "index_members_on_user_id" + + create_table "memos", :force => true do |t| + t.integer "forum_id", :null => false + t.integer "parent_id" + t.string "subject", :null => false + t.text "content", :null => false + t.integer "author_id", :null => false + t.integer "replies_count", :default => 0 + t.integer "last_reply_id" + t.boolean "lock", :default => false + t.boolean "sticky", :default => false + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false + t.integer "viewed_count", :default => 0 + end + + create_table "messages", :force => true do |t| + t.integer "board_id", :null => false + t.integer "parent_id" + t.string "subject", :default => "", :null => false + t.text "content" + t.integer "author_id" + t.integer "replies_count", :default => 0, :null => false + t.integer "last_reply_id" + t.datetime "created_on", :null => false + t.datetime "updated_on", :null => false + t.boolean "locked", :default => false + t.integer "sticky", :default => 0 + end + + add_index "messages", ["author_id"], :name => "index_messages_on_author_id" + add_index "messages", ["board_id"], :name => "messages_board_id" + add_index "messages", ["created_on"], :name => "index_messages_on_created_on" + add_index "messages", ["last_reply_id"], :name => "index_messages_on_last_reply_id" + add_index "messages", ["parent_id"], :name => "messages_parent_id" + + create_table "news", :force => true do |t| + t.integer "project_id" + t.string "title", :limit => 60, :default => "", :null => false + t.string "summary", :default => "" + t.text "description" + t.integer "author_id", :default => 0, :null => false + t.datetime "created_on" + t.integer "comments_count", :default => 0, :null => false + t.integer "course_id" + end + + add_index "news", ["author_id"], :name => "index_news_on_author_id" + add_index "news", ["created_on"], :name => "index_news_on_created_on" + add_index "news", ["project_id"], :name => "news_project_id" + + create_table "no_uses", :force => true do |t| + t.integer "user_id", :null => false + t.string "no_use_type" + t.integer "no_use_id" + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false + end + + create_table "notificationcomments", :force => true do |t| + t.string "notificationcommented_type" + t.integer "notificationcommented_id" + t.integer "author_id" + t.text "notificationcomments" + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false + end + + create_table "open_id_authentication_associations", :force => true do |t| + t.integer "issued" + t.integer "lifetime" + t.string "handle" + t.string "assoc_type" + t.binary "server_url" + t.binary "secret" + end + + create_table "open_id_authentication_nonces", :force => true do |t| + t.integer "timestamp", :null => false + t.string "server_url" + t.string "salt", :null => false + end + + create_table "open_source_projects", :force => true do |t| + t.string "name" + t.text "description" + t.integer "commit_count", :default => 0 + t.integer "code_line", :default => 0 + t.integer "users_count", :default => 0 + t.date "last_commit_time" + t.string "url" + t.date "date_collected" + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false + end + + create_table "option_numbers", :force => true do |t| + t.integer "user_id" + t.integer "memo" + t.integer "messages_for_issues" + t.integer "issues_status" + t.integer "replay_for_message" + t.integer "replay_for_memo" + t.integer "follow" + t.integer "tread" + t.integer "praise_by_one" + t.integer "praise_by_two" + t.integer "praise_by_three" + t.integer "tread_by_one" + t.integer "tread_by_two" + t.integer "tread_by_three" + t.integer "changeset" + t.integer "document" + t.integer "attachment" + t.integer "issue_done_ratio" + t.integer "post_issue" + t.integer "score_type" + t.integer "total_score" + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false + t.integer "project_id" + end + + create_table "praise_tread_caches", :force => true do |t| + t.integer "object_id", :null => false + t.string "object_type" + t.integer "praise_num" + t.integer "tread_num" + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false + end + + create_table "praise_treads", :force => true do |t| + t.integer "user_id", :null => false + t.integer "praise_tread_object_id" + t.string "praise_tread_object_type" + t.integer "praise_or_tread" + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false + end + + create_table "project_infos", :force => true do |t| + t.integer "project_id" + t.integer "user_id" + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false + end + + create_table "project_scores", :force => true do |t| + t.string "project_id" + t.integer "score" + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false + t.integer "issue_num", :default => 0 + t.integer "issue_journal_num", :default => 0 + t.integer "news_num", :default => 0 + t.integer "documents_num", :default => 0 + t.integer "changeset_num", :default => 0 + t.integer "board_message_num", :default => 0 + end + + create_table "project_statuses", :force => true do |t| + t.integer "changesets_count" + t.integer "watchers_count" + t.integer "project_id" + t.integer "project_type" + t.float "grade", :default => 0.0 + t.integer "course_ac_para", :default => 0 + end + + add_index "project_statuses", ["grade"], :name => "index_project_statuses_on_grade" + + create_table "projecting_softapplictions", :force => true do |t| + t.integer "user_id" + t.integer "softapplication_id" + t.integer "project_id" + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false + end + + create_table "projects", :force => true do |t| + t.string "name", :default => "", :null => false + t.text "description" + t.string "homepage", :default => "" + t.boolean "is_public", :default => true, :null => false + t.integer "parent_id" + t.datetime "created_on" + t.datetime "updated_on" + t.string "identifier" + t.integer "status", :default => 1, :null => false + t.integer "lft" + t.integer "rgt" + t.boolean "inherit_members", :default => false, :null => false + t.integer "project_type" + t.boolean "hidden_repo", :default => false, :null => false + t.integer "attachmenttype", :default => 1 + t.integer "user_id" + t.integer "dts_test", :default => 0 + end + + add_index "projects", ["lft"], :name => "index_projects_on_lft" + add_index "projects", ["rgt"], :name => "index_projects_on_rgt" + + create_table "projects_trackers", :id => false, :force => true do |t| + t.integer "project_id", :default => 0, :null => false + t.integer "tracker_id", :default => 0, :null => false + end + + add_index "projects_trackers", ["project_id", "tracker_id"], :name => "projects_trackers_unique", :unique => true + add_index "projects_trackers", ["project_id"], :name => "projects_trackers_project_id" + + create_table "queries", :force => true do |t| + t.integer "project_id" + t.string "name", :default => "", :null => false + t.text "filters" + t.integer "user_id", :default => 0, :null => false + t.boolean "is_public", :default => false, :null => false + t.text "column_names" + t.text "sort_criteria" + t.string "group_by" + t.string "type" + end + + add_index "queries", ["project_id"], :name => "index_queries_on_project_id" + add_index "queries", ["user_id"], :name => "index_queries_on_user_id" + + create_table "relative_memo_to_open_source_projects", :force => true do |t| + t.integer "osp_id" + t.integer "relative_memo_id" + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false + end + + create_table "relative_memos", :force => true do |t| + t.integer "osp_id" + t.integer "parent_id" + t.string "subject", :null => false + t.text "content", :limit => 16777215, :null => false + t.integer "author_id" + t.integer "replies_count", :default => 0 + t.integer "last_reply_id" + t.boolean "lock", :default => false + t.boolean "sticky", :default => false + t.boolean "is_quote", :default => false + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false + t.integer "viewed_count_crawl", :default => 0 + t.integer "viewed_count_local", :default => 0 + t.string "url" + t.string "username" + t.string "userhomeurl" + t.date "date_collected" + t.string "topic_resource" + end + + create_table "repositories", :force => true do |t| + t.integer "project_id", :default => 0, :null => false + t.string "url", :default => "", :null => false + t.string "login", :limit => 60, :default => "" + t.string "password", :default => "" + t.string "root_url", :default => "" + t.string "type" + t.string "path_encoding", :limit => 64 + t.string "log_encoding", :limit => 64 + t.text "extra_info" + t.string "identifier" + t.boolean "is_default", :default => false + end + + add_index "repositories", ["project_id"], :name => "index_repositories_on_project_id" + + create_table "rich_rich_files", :force => true do |t| + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false + t.string "rich_file_file_name" + t.string "rich_file_content_type" + t.integer "rich_file_file_size" + t.datetime "rich_file_updated_at" + t.string "owner_type" + t.integer "owner_id" + t.text "uri_cache" + t.string "simplified_type", :default => "file" + end + + create_table "roles", :force => true do |t| + t.string "name", :limit => 30, :default => "", :null => false + t.integer "position", :default => 1 + t.boolean "assignable", :default => true + t.integer "builtin", :default => 0, :null => false + t.text "permissions" + t.string "issues_visibility", :limit => 30, :default => "default", :null => false + end + + create_table "schools", :force => true do |t| + t.string "name" + t.string "province" + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false + t.string "logo_link" + end + + create_table "seems_rateable_cached_ratings", :force => true do |t| + t.integer "cacheable_id", :limit => 8 + t.string "cacheable_type" + t.float "avg", :null => false + t.integer "cnt", :null => false + t.string "dimension" + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false + end + + create_table "seems_rateable_rates", :force => true do |t| + t.integer "rater_id", :limit => 8 + t.integer "rateable_id" + t.string "rateable_type" + t.float "stars", :null => false + t.string "dimension" + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false + end + + create_table "settings", :force => true do |t| + t.string "name", :default => "", :null => false + t.text "value" + t.datetime "updated_on" + end + + add_index "settings", ["name"], :name => "index_settings_on_name" + + create_table "shares", :force => true do |t| + t.date "created_on" + t.string "url" + t.string "title" + t.integer "share_type" + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false + t.integer "project_id" + t.integer "user_id" + t.string "description" + end + + create_table "softapplications", :force => true do |t| + t.string "name" + t.text "description" + t.integer "app_type_id" + t.string "app_type_name" + t.string "android_min_version_available" + t.integer "user_id" + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false + t.integer "contest_id" + t.integer "softapplication_id" + t.integer "is_public" + t.string "application_developers" + t.string "deposit_project_url" + t.string "deposit_project" + t.integer "project_id" + end + + create_table "students_for_courses", :force => true do |t| + t.integer "student_id" + t.integer "course_id" + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false + end + + create_table "taggings", :force => true do |t| + t.integer "tag_id" + t.integer "taggable_id" + t.string "taggable_type" + t.integer "tagger_id" + t.string "tagger_type" + t.string "context", :limit => 128 + t.datetime "created_at" + end + + add_index "taggings", ["tag_id"], :name => "index_taggings_on_tag_id" + add_index "taggings", ["taggable_id", "taggable_type", "context"], :name => "index_taggings_on_taggable_id_and_taggable_type_and_context" + add_index "taggings", ["taggable_type"], :name => "index_taggings_on_taggable_type" + + create_table "tags", :force => true do |t| + t.string "name" + end + + create_table "teachers", :force => true do |t| + t.string "tea_name" + t.string "location" + t.integer "couurse_time" + t.integer "course_code" + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false + t.string "extra" + end + + create_table "time_entries", :force => true do |t| + t.integer "project_id", :null => false + t.integer "user_id", :null => false + t.integer "issue_id" + t.float "hours", :null => false + t.string "comments" + t.integer "activity_id", :null => false + t.date "spent_on", :null => false + t.integer "tyear", :null => false + t.integer "tmonth", :null => false + t.integer "tweek", :null => false + t.datetime "created_on", :null => false + t.datetime "updated_on", :null => false + end + + add_index "time_entries", ["activity_id"], :name => "index_time_entries_on_activity_id" + add_index "time_entries", ["created_on"], :name => "index_time_entries_on_created_on" + add_index "time_entries", ["issue_id"], :name => "time_entries_issue_id" + add_index "time_entries", ["project_id"], :name => "time_entries_project_id" + add_index "time_entries", ["user_id"], :name => "index_time_entries_on_user_id" + + create_table "tokens", :force => true do |t| + t.integer "user_id", :default => 0, :null => false + t.string "action", :limit => 30, :default => "", :null => false + t.string "value", :limit => 40, :default => "", :null => false + t.datetime "created_on", :null => false + end + + add_index "tokens", ["user_id"], :name => "index_tokens_on_user_id" + add_index "tokens", ["value"], :name => "tokens_value", :unique => true + + create_table "trackers", :force => true do |t| + t.string "name", :limit => 30, :default => "", :null => false + t.boolean "is_in_chlog", :default => false, :null => false + t.integer "position", :default => 1 + t.boolean "is_in_roadmap", :default => true, :null => false + t.integer "fields_bits", :default => 0 + end + + create_table "user_extensions", :force => true do |t| + t.integer "user_id", :null => false + t.date "birthday" + t.string "brief_introduction" + t.integer "gender" + t.string "location" + t.string "occupation" + t.integer "work_experience" + t.integer "zip_code" + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false + t.string "technical_title" + t.integer "identity" + t.string "student_id" + t.string "teacher_realname" + t.string "student_realname" + t.string "location_city" + t.integer "school_id" + end + + create_table "user_grades", :force => true do |t| + t.integer "user_id", :null => false + t.integer "project_id", :null => false + t.float "grade", :default => 0.0 + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false + end + + add_index "user_grades", ["grade"], :name => "index_user_grades_on_grade" + add_index "user_grades", ["project_id"], :name => "index_user_grades_on_project_id" + add_index "user_grades", ["user_id"], :name => "index_user_grades_on_user_id" + + create_table "user_levels", :force => true do |t| + t.integer "user_id" + t.integer "level" + end + + create_table "user_preferences", :force => true do |t| + t.integer "user_id", :default => 0, :null => false + t.text "others" + t.boolean "hide_mail", :default => false + t.string "time_zone" + end + + add_index "user_preferences", ["user_id"], :name => "index_user_preferences_on_user_id" + + create_table "user_score_details", :force => true do |t| + t.integer "current_user_id" + t.integer "target_user_id" + t.string "score_type" + t.string "score_action" + t.integer "user_id" + t.integer "old_score" + t.integer "new_score" + t.integer "current_user_level" + t.integer "target_user_level" + t.integer "score_changeable_obj_id" + t.string "score_changeable_obj_type" + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false + end + + create_table "user_scores", :force => true do |t| + t.integer "user_id", :null => false + t.integer "collaboration" + t.integer "influence" + t.integer "skill" + t.integer "active" + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false + end + + create_table "user_statuses", :force => true do |t| + t.integer "changesets_count" + t.integer "watchers_count" + t.integer "user_id" + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false + t.float "grade", :default => 0.0 + end + + add_index "user_statuses", ["changesets_count"], :name => "index_user_statuses_on_changesets_count" + add_index "user_statuses", ["grade"], :name => "index_user_statuses_on_grade" + add_index "user_statuses", ["watchers_count"], :name => "index_user_statuses_on_watchers_count" + + create_table "users", :force => true do |t| + t.string "login", :default => "", :null => false + t.string "hashed_password", :limit => 40, :default => "", :null => false + t.string "firstname", :limit => 30, :default => "", :null => false + t.string "lastname", :default => "", :null => false + t.string "mail", :limit => 60, :default => "", :null => false + t.boolean "admin", :default => false, :null => false + t.integer "status", :default => 1, :null => false + t.datetime "last_login_on" + t.string "language", :limit => 5, :default => "" + t.integer "auth_source_id" + t.datetime "created_on" + t.datetime "updated_on" + t.string "type" + t.string "identity_url" + t.string "mail_notification", :default => "", :null => false + t.string "salt", :limit => 64 + end + + add_index "users", ["auth_source_id"], :name => "index_users_on_auth_source_id" + add_index "users", ["id", "type"], :name => "index_users_on_id_and_type" + add_index "users", ["type"], :name => "index_users_on_type" + + create_table "versions", :force => true do |t| + t.integer "project_id", :default => 0, :null => false + t.string "name", :default => "", :null => false + t.string "description", :default => "" + t.date "effective_date" + t.datetime "created_on" + t.datetime "updated_on" + t.string "wiki_page_title" + t.string "status", :default => "open" + t.string "sharing", :default => "none", :null => false + end + + add_index "versions", ["project_id"], :name => "versions_project_id" + add_index "versions", ["sharing"], :name => "index_versions_on_sharing" + + create_table "watchers", :force => true do |t| + t.string "watchable_type", :default => "", :null => false + t.integer "watchable_id", :default => 0, :null => false + t.integer "user_id" + end + + add_index "watchers", ["user_id", "watchable_type"], :name => "watchers_user_id_type" + add_index "watchers", ["user_id"], :name => "index_watchers_on_user_id" + add_index "watchers", ["watchable_id", "watchable_type"], :name => "index_watchers_on_watchable_id_and_watchable_type" + + create_table "web_footer_companies", :force => true do |t| + t.string "name" + t.string "logo_size" + t.string "url" + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false + end + + create_table "web_footer_oranizers", :force => true do |t| + t.string "name" + t.text "description" + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false + end + + create_table "wiki_content_versions", :force => true do |t| + t.integer "wiki_content_id", :null => false + t.integer "page_id", :null => false + t.integer "author_id" + t.binary "data", :limit => 2147483647 + t.string "compression", :limit => 6, :default => "" + t.string "comments", :default => "" + t.datetime "updated_on", :null => false + t.integer "version", :null => false + end + + add_index "wiki_content_versions", ["updated_on"], :name => "index_wiki_content_versions_on_updated_on" + add_index "wiki_content_versions", ["wiki_content_id"], :name => "wiki_content_versions_wcid" + + create_table "wiki_contents", :force => true do |t| + t.integer "page_id", :null => false + t.integer "author_id" + t.text "text", :limit => 2147483647 + t.string "comments", :default => "" + t.datetime "updated_on", :null => false + t.integer "version", :null => false + end + + add_index "wiki_contents", ["author_id"], :name => "index_wiki_contents_on_author_id" + add_index "wiki_contents", ["page_id"], :name => "wiki_contents_page_id" + + create_table "wiki_pages", :force => true do |t| + t.integer "wiki_id", :null => false + t.string "title", :null => false + t.datetime "created_on", :null => false + t.boolean "protected", :default => false, :null => false + t.integer "parent_id" + end + + add_index "wiki_pages", ["parent_id"], :name => "index_wiki_pages_on_parent_id" + add_index "wiki_pages", ["wiki_id", "title"], :name => "wiki_pages_wiki_id_title" + add_index "wiki_pages", ["wiki_id"], :name => "index_wiki_pages_on_wiki_id" + + create_table "wiki_redirects", :force => true do |t| + t.integer "wiki_id", :null => false + t.string "title" + t.string "redirects_to" + t.datetime "created_on", :null => false + end + + add_index "wiki_redirects", ["wiki_id", "title"], :name => "wiki_redirects_wiki_id_title" + add_index "wiki_redirects", ["wiki_id"], :name => "index_wiki_redirects_on_wiki_id" + + create_table "wikis", :force => true do |t| + t.integer "project_id", :null => false + t.string "start_page", :null => false + t.integer "status", :default => 1, :null => false + end + + add_index "wikis", ["project_id"], :name => "wikis_project_id" + + create_table "workflows", :force => true do |t| + t.integer "tracker_id", :default => 0, :null => false + t.integer "old_status_id", :default => 0, :null => false + t.integer "new_status_id", :default => 0, :null => false + t.integer "role_id", :default => 0, :null => false + t.boolean "assignee", :default => false, :null => false + t.boolean "author", :default => false, :null => false + t.string "type", :limit => 30 + t.string "field_name", :limit => 30 + t.string "rule", :limit => 30 + end + + add_index "workflows", ["new_status_id"], :name => "index_workflows_on_new_status_id" + add_index "workflows", ["old_status_id"], :name => "index_workflows_on_old_status_id" + add_index "workflows", ["role_id", "tracker_id", "old_status_id"], :name => "wkfs_role_tracker_old_status" + add_index "workflows", ["role_id"], :name => "index_workflows_on_role_id" + + create_table "works_categories", :force => true do |t| + t.string "category" + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false + end + +end From 53d85136a3df36b4cd041695d7b4679397f548ff Mon Sep 17 00:00:00 2001 From: = Date: Thu, 18 Dec 2014 14:48:14 +0800 Subject: [PATCH 41/83] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E8=AF=BE=E7=A8=8B?= =?UTF-8?q?=E4=B8=AD=E4=B8=80=E4=B8=AA=E9=94=99=E8=AF=AF=EF=BC=8C=E5=AE=8C?= =?UTF-8?q?=E5=96=84=E5=8C=BF=E8=AF=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/courses_controller.rb | 3 +-- app/services/homework_service.rb | 31 ++++++++++++++++++++++----- 2 files changed, 27 insertions(+), 7 deletions(-) diff --git a/app/controllers/courses_controller.rb b/app/controllers/courses_controller.rb index 2b0e51722..519afb6a8 100644 --- a/app/controllers/courses_controller.rb +++ b/app/controllers/courses_controller.rb @@ -265,8 +265,7 @@ class CoursesController < ApplicationController @members = cs.course_teacher_or_student_list(params,@course,User.current) @members = paginateHelper @members render :layout => 'base_courses' - - rescue Exception => e + end if e.message == '403' render_403 end diff --git a/app/services/homework_service.rb b/app/services/homework_service.rb index f40c4f0ef..f11e859d1 100644 --- a/app/services/homework_service.rb +++ b/app/services/homework_service.rb @@ -8,7 +8,7 @@ class HomeworkService def show_homework params @bid = Bid.find(params[:id]) course = @bid.courses.first - is_teacher = is_course_teacher(User.current,course) + is_teacher = is_course_teacher(User.current, course) author = @bid.author.firstname + @bid.author.lastname many_times = course.homeworks.index(@bid) + 1 name = @bid.name @@ -53,11 +53,32 @@ class HomeworkService #匿评作品详情 def anonymous_works_show params - @homework = HomeworkAttach.find(params[:id]) - if User.current.admin? || User.current.member_of_course?(@homework.bid.courses.first) - + @homework = HomeworkAttach.find(params[:homework_id]) + name = @homework.name + desc = @homework.description + datetime = @homework.created_at + unless @homework.attachments.empty? + attachs = @homework.attachments + attachs.each do |attach| + filename = attach.name + filedesc = attach.description unless attachment.description.blank? + end + end + end + + #作品打分 + def add_score_and_jour + @is_teacher,@is_anonymous_comments,@m_score = params[:is_teacher]=="true",params[:is_anonymous_comments]=="true",params[:stars_value] + @cur_page,@cur_type = params[:cur_page] || 1,params[:cur_type] || 5 + @homework = HomeworkAttach.find(params[:homework_id]) + #保存评分 + @homework.rate(@m_score.to_i,User.current.id,:quality) if @m_score + #保存评论 + @is_comprehensive_evaluation = @is_teacher ? 1 : (@is_anonymous_comments ? 2 : 3) #判断当前评论是老师评论?匿评?留言 + if params[:new_form] && params[:new_form][:user_message] && params[:new_form][:user_message] != "" #有没有留言 + @homework.addjours User.current.id, params[:new_form][:user_message],0,@is_comprehensive_evaluation end end - # + end \ No newline at end of file From 226d5e98899a1bdd783f69fca2bdc454fb78c9b6 Mon Sep 17 00:00:00 2001 From: = Date: Thu, 18 Dec 2014 17:20:21 +0800 Subject: [PATCH 42/83] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E4=BD=9C=E4=B8=9A?= =?UTF-8?q?=E8=AF=A6=E3=80=81=E5=8C=BF=E8=AF=84=20=E6=96=B0=E5=A2=9E?= =?UTF-8?q?=E4=BD=9C=E5=93=81=E7=95=99=E8=A8=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/bids_controller.rb | 23 ++-------------- app/services/homework_service.rb | 42 +++++++++++++++++++----------- 2 files changed, 29 insertions(+), 36 deletions(-) diff --git a/app/controllers/bids_controller.rb b/app/controllers/bids_controller.rb index 2997f4205..023c9da69 100644 --- a/app/controllers/bids_controller.rb +++ b/app/controllers/bids_controller.rb @@ -1048,27 +1048,8 @@ class BidsController < ApplicationController end def alert_anonymous_comment - @bid = Bid.find params[:id] - @course = @bid.courses.first - if @bid.comment_status == 0 - @totle_size = searchStudent(@course).size - @cur_size = @bid.homeworks.size - elsif @bid.comment_status == 1 - @totle_size = 0 - @bid.homeworks.map { |homework| @totle_size += homework.homework_evaluations.count} - teachers = "(" - teacher_members = searchTeacherAndAssistant(@course) - teacher_members.each do |member| - if member == teacher_members.last - teachers += member.user_id.to_s + ")" - else - teachers += member.user_id.to_s + "," - end - end - @cur_size = 0 - @bid.homeworks.map { |homework| @cur_size += homework.rates(:quality).where("seems_rateable_rates.rater_id not in #{teachers}").count} - end - @percent = format("%.2f",(@cur_size.to_f / ( @totle_size == 0 ? 1 : @totle_size)) * 100) + hws = HomeworkService.new + @bid,@totle_size,@cur_size,@percent = hws.alert_homework_anonymous_comment(params) respond_to do |format| format.js end diff --git a/app/services/homework_service.rb b/app/services/homework_service.rb index f11e859d1..dd5fb9dca 100644 --- a/app/services/homework_service.rb +++ b/app/services/homework_service.rb @@ -1,28 +1,23 @@ +#coding=utf-8 class HomeworkService + include CoursesHelper + include AttachmentsHelper #作业详情(老师才显示启动匿评,学生不显示 ) - #bid.comment_status=0 启动匿评 - #bid.comment_status=1 关闭匿评 #many_times 第几次(作业) - #is_teacher 判断是否为该课程老师 + #@state=0 启动匿评 + #@state=1 关闭匿评 + #@state=2 匿评结束 def show_homework params @bid = Bid.find(params[:id]) course = @bid.courses.first - is_teacher = is_course_teacher(User.current, course) author = @bid.author.firstname + @bid.author.lastname many_times = course.homeworks.index(@bid) + 1 name = @bid.name homework_count = @bid.homeworks.count description = @bid.description - if is_teacher && bid.open_anonymous_evaluation == 1 && bid.homeworks.count >= 2 - case bid.comment_status - when 0 - alert_anonymous_comment_bid_path(bid) - when 1 - alert_anonymous_comment_bid_path(bid) - when 2 - raise '匿评结束' - end + if is_course_teacher(User.current, course) && @bid.open_anonymous_evaluation == 1 && @bid.homeworks.count >= 2 + @state = bid.comment_status end end @@ -49,6 +44,7 @@ class HomeworkService @bid.homeworks.map { |homework| @cur_size += homework.rates(:quality).where("seems_rateable_rates.rater_id not in #{teachers}").count} end @percent = format("%.2f",(@cur_size.to_f / ( @totle_size == 0 ? 1 : @totle_size)) * 100) + [@bid,@totle_size,@cur_size,@percent] end #匿评作品详情 @@ -66,8 +62,8 @@ class HomeworkService end end - #作品打分 - def add_score_and_jour + #作品打分/留言 + def add_score_and_jour params @is_teacher,@is_anonymous_comments,@m_score = params[:is_teacher]=="true",params[:is_anonymous_comments]=="true",params[:stars_value] @cur_page,@cur_type = params[:cur_page] || 1,params[:cur_type] || 5 @homework = HomeworkAttach.find(params[:homework_id]) @@ -80,5 +76,21 @@ class HomeworkService end end + #作品留言 + def get_works_jours params + @bid = Bid.find params[:id] + @user = @bid.author + @jours = @bid.journals_for_messages.where('m_parent_id IS NULL').order('created_on DESC') + @jour = paginateHelper @jours,10 + end + + #匿评作品老师评论 + #匿评作品学生评论列表TODO:未完成,需继续 + def anonmous_works_list + @is_teacher,@is_anonymous_comments,@m_score = params[:is_teacher]=="true",params[:is_anonymous_comments]=="true",params[:stars_value] + @cur_page,@cur_type = params[:cur_page] || 1,params[:cur_type] || 5 + @homework = HomeworkAttach.find(params[:homework_id]) + @stars_reates = @homework.rates(:quality) + end end \ No newline at end of file From ddba71decf5d5edee2ffa11aecaef0ac05eff902 Mon Sep 17 00:00:00 2001 From: z9han Date: Fri, 19 Dec 2014 17:37:37 +0800 Subject: [PATCH 43/83] =?UTF-8?q?=E4=B8=AA=E4=BA=BA=E7=9A=84=E6=89=80?= =?UTF-8?q?=E6=9C=89=E8=AF=BE=E7=A8=8B=E6=8E=A5=E5=8F=A3=E3=80=81=E8=AF=BE?= =?UTF-8?q?=E7=A8=8B=E7=9A=84=E6=89=80=E6=9C=89=E8=AF=BE=E7=A8=8B=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3=E5=8F=8A=E7=95=99=E8=A8=80=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/services/courses_service.rb | 63 ++++++++++++++++++++++++++++++++ app/services/homework_service.rb | 2 +- 2 files changed, 64 insertions(+), 1 deletion(-) diff --git a/app/services/courses_service.rb b/app/services/courses_service.rb index 09e4289b5..96766acfd 100644 --- a/app/services/courses_service.rb +++ b/app/services/courses_service.rb @@ -228,4 +228,67 @@ class CoursesService end end + #我的课程列表 + def my_course_list params,current_user + unless current_user.admin? + if !current_user.active? + raise '404' #当前账户不可访问,返回404(可视为当前用户不存在) + end + end + membership = @user.coursememberships.all + membership.sort! {|older, newer| newer.created_on <=> older.created_on } + + end + + #课程作业列表 + def course_homework_list course,current_user + if course.is_public != 0 || current_user.member_of_course?(course) || current_user.admin? + @bids = course.homeworks.order('deadline DESC') + else + raise '403' + end + end + + #obj 回复所属父留言的留言对象 + def create_reply params,obj + parent_id = params[:reference_id] + author_id = User.current.id + reply_user_id = params[:reference_user_id] + reply_id = params[:reference_message_id] # 暂时不实现 + content = params[:user_notes] + @show_name = params[:show_name] == "true" + options = {:user_id => author_id, + :status => true, + :m_parent_id => parent_id, + :m_reply_id => reply_id, + :reply_id => reply_user_id, + :notes => content, + :is_readed => false} + @jfm = add_reply_adapter options,obj + [@show_name,@jfm] + end + + def add_reply_adapter options,obj + #添加对课程留言的支持 + #留言回复应该不关系其所属的Class,而关心的是其所属的父留言 + #obj = obj_distinguish_url_origin || User.find_by_id(2) + if obj.kind_of? User + obj.add_jour(nil, nil, nil, options) + elsif obj.kind_of? Project + Project.add_new_jour(nil, nil, obj.id, options) + elsif obj.kind_of? Course + Course.add_new_jour(nil, nil, obj.id, options) + elsif obj.kind_of? Bid + obj.add_jour(nil, nil, nil, options) + elsif obj.kind_of? Contest + obj.add_jour(nil, nil, obj.id, options) #new added + elsif obj.kind_of? Softapplication + obj.add_jour(nil, nil, obj.id, options) #new added + elsif obj.kind_of? HomeworkAttach + obj.add_jour(nil, nil, obj.id, options) #new added + else + raise "create reply obj unknow type.#{obj.class}" + end + end + end \ No newline at end of file diff --git a/app/services/homework_service.rb b/app/services/homework_service.rb index dd5fb9dca..a27757917 100644 --- a/app/services/homework_service.rb +++ b/app/services/homework_service.rb @@ -18,7 +18,7 @@ class HomeworkService description = @bid.description if is_course_teacher(User.current, course) && @bid.open_anonymous_evaluation == 1 && @bid.homeworks.count >= 2 @state = bid.comment_status - end + end end #启动作业匿评 From 57091b34f4b5e5885189ea33cef0174e435699ae Mon Sep 17 00:00:00 2001 From: = Date: Sat, 20 Dec 2014 13:00:13 +0800 Subject: [PATCH 44/83] =?UTF-8?q?=E8=80=81=E5=B8=88=E3=80=81=E5=AD=A6?= =?UTF-8?q?=E7=94=9F=E5=8C=BF=E8=AF=84=E5=88=97=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/services/homework_service.rb | 92 ++++++++++++++++++++++++++------ 1 file changed, 75 insertions(+), 17 deletions(-) diff --git a/app/services/homework_service.rb b/app/services/homework_service.rb index dd5fb9dca..914889c68 100644 --- a/app/services/homework_service.rb +++ b/app/services/homework_service.rb @@ -2,12 +2,14 @@ class HomeworkService include CoursesHelper include AttachmentsHelper - - #作业详情(老师才显示启动匿评,学生不显示 ) - #many_times 第几次(作业) - #@state=0 启动匿评 - #@state=1 关闭匿评 - #@state=2 匿评结束 + include ApplicationHelper + include WordsHelper + + # 作业详情(老师才显示启动匿评,学生不显示 ) + # many_times 第几次(作业) + # state=0 启动匿评 + # state=1 关闭匿评 + # state=2 匿评结束 def show_homework params @bid = Bid.find(params[:id]) course = @bid.courses.first @@ -17,11 +19,13 @@ class HomeworkService homework_count = @bid.homeworks.count description = @bid.description if is_course_teacher(User.current, course) && @bid.open_anonymous_evaluation == 1 && @bid.homeworks.count >= 2 - @state = bid.comment_status - end + state = bid.comment_status + end + {:course => 'course', :atuthor => 'author', :many_times => 'many_times', :name => 'name', :homework_count => 'homework_count', + :descriptiong => 'description', :state => 'state'} end - #启动作业匿评 + # 启动作业匿评 def alert_homework_anonymous_comment params @bid = Bid.find params[:id] @course = @bid.courses.first @@ -47,7 +51,10 @@ class HomeworkService [@bid,@totle_size,@cur_size,@percent] end - #匿评作品详情 + # 匿评作品详情 + # attachs 该作品的所有附件 + # filename 文件名 + # filedesc 文件描述 def anonymous_works_show params @homework = HomeworkAttach.find(params[:homework_id]) name = @homework.name @@ -60,6 +67,8 @@ class HomeworkService filedesc = attach.description unless attachment.description.blank? end end + {:name => 'name', :description => 'desc', :datetime => 'datetime', + :attchs => 'attachs', :filename => 'filename', :filedesc => 'filedesc'} end #作品打分/留言 @@ -76,21 +85,70 @@ class HomeworkService end end - #作品留言 - def get_works_jours params + #作品留言列表 + def get_works_jours_list params @bid = Bid.find params[:id] @user = @bid.author @jours = @bid.journals_for_messages.where('m_parent_id IS NULL').order('created_on DESC') @jour = paginateHelper @jours,10 + @jour end - #匿评作品老师评论 - #匿评作品学生评论列表TODO:未完成,需继续 - def anonmous_works_list - @is_teacher,@is_anonymous_comments,@m_score = params[:is_teacher]=="true",params[:is_anonymous_comments]=="true",params[:stars_value] - @cur_page,@cur_type = params[:cur_page] || 1,params[:cur_type] || 5 + # 学生匿评留言列表 + def anonymous_jour_list params + #jours留言 is null条件用以兼容历史数据 + jours = @homework.journals_for_messages.where("is_comprehensive_evaluation = 3 or is_comprehensive_evaluation is null").order("created_on DESC") + jours.each do |jour| + user = jour.user + img_url = url_to_avatar(jour.user) + datetime = jour.created_on + content = jour.notes + end + {:user => 'user', :img_url => 'img_url', :datetime => 'datetime', :content => 'content'} + end + + # 匿评教师留言/回复列表 + # 图像img_url = url_to_avatar(user) + # massage_user 留言者 + # parent_jour被回复的留言 + def teacher_jour_list params @homework = HomeworkAttach.find(params[:homework_id]) @stars_reates = @homework.rates(:quality) + @teacher_stars = @stars_reates.where("rater_id in (#{teachers})") #老师评分列表 + @teacher_stars.each do |ts| + #留言参数 + jour = get_homework_review @homework,true,massage_user + massage_content = jour.notes unless jour.nil? + massage_user = ts.rater + massage_score = ts.stars + #回复参数 + anonymous_repy(jour) + end end + # 学生匿评列表 + def student_jour_list params + @homework = HomeworkAttach.find(params[:homework_id]) + @stars_reates = @homework.rates(:quality) + @student_stars = @stars_reates.where("rater_id not in (#{teachers})") #学生评分列表 + @student_stars.each do |ss| + #留言参数 + massage_user = ss.rater + jour = get_homework_review @homework,false,massage_user + massage_score = ss.stars + massage_content = jour.notes unless jour.nil? + #回复参数 + anonymous_repy(jour) + end + end + + def anonymous_repy jour + fetch_user_leaveWord_reply(jour).each do |fulr| + parent_jour = JournalsForMessage.where("id = #{fulr.m_reply_id}").first + reply_name = fulr.user.name + parent_name = parent_jour.user.name if parent_jour + reply_content = fulr.notes + reply_time = fulr.created_on + end + end end \ No newline at end of file From 8fe5fee0f0da968d04e9ad6b66e58fdf2bfc9aff Mon Sep 17 00:00:00 2001 From: guange <8863824@gmail.com> Date: Tue, 23 Dec 2014 09:44:31 +0800 Subject: [PATCH 45/83] =?UTF-8?q?=E6=90=9C=E7=B4=A2=E8=AF=BE=E7=A8=8B?= =?UTF-8?q?=E6=8A=A5=E9=94=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/api/mobile/entities/course.rb | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/app/api/mobile/entities/course.rb b/app/api/mobile/entities/course.rb index b9823d9ac..8e5609f32 100644 --- a/app/api/mobile/entities/course.rb +++ b/app/api/mobile/entities/course.rb @@ -3,10 +3,17 @@ module Mobile class Course < Grape::Entity def self.course_expose(field) expose field do |f,opt| - f[:course][field] || f[:course].__send__(field) + o = nil + o = f.img_url if f.respond_to?(:img_url) + if f.is_a? ::Course + o = f.send(field) if f.respond_to?(field) + else + f[:course][field] || f[:course].__send__(field) + end + o end end - expose :img_url + course_expose :img_url course_expose :attachmenttype course_expose :class_period course_expose :code From d6aadc1624c399d140fe53d468e31770ba825054 Mon Sep 17 00:00:00 2001 From: guange <8863824@gmail.com> Date: Tue, 23 Dec 2014 10:05:29 +0800 Subject: [PATCH 46/83] =?UTF-8?q?=E6=90=9C=E7=B4=A2=E5=92=8C=E5=88=97?= =?UTF-8?q?=E8=A1=A8=E4=B8=AD=E7=9A=84=E8=AF=BE=E7=A8=8B=E8=80=81=E5=B8=88?= =?UTF-8?q?=E8=BE=93=E5=87=BA=E4=B8=80=E8=87=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/api/mobile/entities/course.rb | 21 +++++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) diff --git a/app/api/mobile/entities/course.rb b/app/api/mobile/entities/course.rb index 8e5609f32..0dd0d6aeb 100644 --- a/app/api/mobile/entities/course.rb +++ b/app/api/mobile/entities/course.rb @@ -3,14 +3,17 @@ module Mobile class Course < Grape::Entity def self.course_expose(field) expose field do |f,opt| - o = nil - o = f.img_url if f.respond_to?(:img_url) + c = nil if f.is_a? ::Course - o = f.send(field) if f.respond_to?(field) + c = f else - f[:course][field] || f[:course].__send__(field) + c = f[:course] + end + if field == :img_url + f.img_url if f.respond_to?(:img_url) + else + (c[field] if (c.is_a?(Hash) && c.key?(field))) || (c.send(field) if c.respond_to?(field)) end - o end end course_expose :img_url @@ -39,7 +42,13 @@ module Mobile course_expose :term course_expose :time course_expose :updated_at - course_expose :teacher + expose :teacher, using: Mobile::Entities::User do |c, opt| + if c.is_a? ::Course + c.teacher + else + c[:course].teacher + end + end end end end From 9d99eee92eb33963b5a28f352e0cf0318a34ce36 Mon Sep 17 00:00:00 2001 From: guange <8863824@gmail.com> Date: Tue, 23 Dec 2014 10:16:23 +0800 Subject: [PATCH 47/83] =?UTF-8?q?=E7=94=A8=E6=88=B7=E5=AF=86=E7=A0=81?= =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=B2=A1=E4=BC=A0userid?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/api/mobile/apis/users.rb | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/app/api/mobile/apis/users.rb b/app/api/mobile/apis/users.rb index ab74c16e6..975ac6c2c 100644 --- a/app/api/mobile/apis/users.rb +++ b/app/api/mobile/apis/users.rb @@ -49,7 +49,8 @@ module Mobile post 'password' do authenticate! us = UsersService.new - ue = us.change_password params.merge(new_password_confirmation: params[:new_password]) + ue = us.change_password params.merge(current_user_id: current_user.id, + new_password_confirmation: params[:new_password]) present :data, user, with: Mobile::Entities::User present :status, 0 end From 7f1826ebf2e83603cc98bd2edace738f372df5ea Mon Sep 17 00:00:00 2001 From: guange <8863824@gmail.com> Date: Tue, 23 Dec 2014 10:22:05 +0800 Subject: [PATCH 48/83] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E4=B8=AA=E4=BA=BA?= =?UTF-8?q?=E4=BF=A1=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/api/mobile/apis/users.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/api/mobile/apis/users.rb b/app/api/mobile/apis/users.rb index 975ac6c2c..b47d8f61e 100644 --- a/app/api/mobile/apis/users.rb +++ b/app/api/mobile/apis/users.rb @@ -35,7 +35,7 @@ module Mobile authenticate! us = UsersService.new ue = us.edit_user params.merge(id: current_user.id) - present :data, user, with: Mobile::Entities::User + present :data, ue.user, with: Mobile::Entities::User present :status, 0 end From 93762e89d37895fb627fcdbd0b932f5ef01a8f2c Mon Sep 17 00:00:00 2001 From: z9han Date: Tue, 23 Dec 2014 11:07:17 +0800 Subject: [PATCH 49/83] =?UTF-8?q?=20=E4=BF=AE=E6=94=B9=E5=8A=A0=E5=85=A5?= =?UTF-8?q?=E8=AF=BE=E7=A8=8B=E3=80=81=E9=80=80=E5=87=BA=E8=AF=BE=E7=A8=8B?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3=E8=B0=83=E7=94=A8=EF=BC=8C=E6=B7=BB=E5=8A=A0?= =?UTF-8?q?=E5=88=9B=E5=BB=BA=E8=AF=BE=E7=A8=8B=EF=BC=8C=E7=BC=96=E8=BE=91?= =?UTF-8?q?=E8=AF=BE=E7=A8=8B=E7=9A=84=E5=8F=82=E6=95=B0=E8=AF=B4=E6=98=8E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/api/mobile/apis/courses.rb | 4 ++-- app/controllers/courses_controller.rb | 2 +- app/services/courses_service.rb | 32 ++++++++++++++++++++++++--- 3 files changed, 32 insertions(+), 6 deletions(-) diff --git a/app/api/mobile/apis/courses.rb b/app/api/mobile/apis/courses.rb index 21fec6241..69848a1f4 100644 --- a/app/api/mobile/apis/courses.rb +++ b/app/api/mobile/apis/courses.rb @@ -34,7 +34,7 @@ module Mobile post ":id" do authenticate! cs = CoursesService.new - status = cs.join_course({"object_id" => params[:id]},current_user.id) + status = cs.join_course({"object_id" => params[:id]},current_user) out = {status: status} message = case status when 0; "加入成功" @@ -54,7 +54,7 @@ module Mobile delete ":id" do authenticate! cs = CoursesService.new - cs.exit_course({"object_id" => params[:id]}, current_user.id) + cs.exit_course({"object_id" => params[:id]}, current_user) {status: 0} end diff --git a/app/controllers/courses_controller.rb b/app/controllers/courses_controller.rb index 519afb6a8..985c33aab 100644 --- a/app/controllers/courses_controller.rb +++ b/app/controllers/courses_controller.rb @@ -428,7 +428,7 @@ class CoursesController < ApplicationController def create cs = CoursesService.new - @course = cs.create_course params + @course = cs.create_course params,User.current if @course.new_record? respond_to do |format| format.html { render :action => 'new', :layout => 'base' } #Added by young diff --git a/app/services/courses_service.rb b/app/services/courses_service.rb index 09e4289b5..6e2c84e65 100644 --- a/app/services/courses_service.rb +++ b/app/services/courses_service.rb @@ -49,7 +49,7 @@ class CoursesService url_to_avatar(obj) end - #课程老师或课程学生列表 TODO:更新业务逻辑,当前版本未包含分班功能 + #课程老师或课程学生列表 def course_teacher_or_student_list params,course,current_user if course.is_a?(Course) c = course @@ -110,8 +110,20 @@ class CoursesService end #创建课程 - def create_course params - if User.current.user_extensions.identity + #current_user当前用户对象(不是id) + # params[:course][:name]:课程名称 + #params[:course][:password]:密码 + #params[:course][:description]:描述 + #params[:course][:is_public]:是否公开1公开,0私有 + #params[:course][:open_student]:是否公开学生列表1公开,0不公开,不公开时非课程成员无法看到学生列表 + #params[:course][:course_type]:暂时默认给1值。 + #params[:term]:学期(秋季学期或春季学期) + #params[:time]: 年份(例:2014) + #params[:setup_time]:暂不传(貌似已经没用了) + #params[:endup_time]: 暂不传(貌似已经没用了) + #params[:class_period]:学时总数 + def create_course params,current_user + if current_user.user_extensions.identity @course = Course.new @course.extra = 'course' + DateTime.parse(Time.now.to_s).strftime('%Y-%m-%d_%H-%M-%S').to_s @course.safe_attributes = params[:course] @@ -145,6 +157,7 @@ class CoursesService end #验证编辑课程的权限 + #当前 def edit_course_authorize(current_user,course) unless current_user.allowed_to?({:controller => 'courses', :action => 'update'}, course) raise '403' @@ -152,6 +165,15 @@ class CoursesService end #编辑课程 需验证权限 + # params[:course][:name]:课程名称 + #params[:course][:password]:密码 + #params[:course][:description]:描述 + #params[:course][:is_public]:是否公开1公开,0私有 + #params[:course][:open_student]:是否公开学生列表1公开,0不公开,不公开时非课程成员无法看到学生列表 + #params[:course][:course_type]:暂时默认给1值。 + #params[:term]:学期(秋季学期或春季学期) + #params[:time]: 年份(例:2014) + #params[:class_period]:学时总数 def edit_course params,course course.safe_attributes = params[:course] course.time = params[:time] @@ -171,6 +193,8 @@ class CoursesService end #退出课程 + #object_id: 课程id + #user:当前用户 def exit_course params,user @member = Member.where('course_id = ? and user_id = ?', params[:object_id], user.id) @member.first.destroy @@ -182,6 +206,8 @@ class CoursesService end #加入课程 + #object_id:课程id + #course_password :加入课程的密码 #@state == 0 加入成功 #@state == 1 密码错误 #@state == 2 课程已过期 请联系课程管理员重启课程。(在配置课程处) From d7557e2839557549a61a7a26805d64268770c49c Mon Sep 17 00:00:00 2001 From: z9han Date: Tue, 23 Dec 2014 14:46:23 +0800 Subject: [PATCH 50/83] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=AF=86=E7=A0=81?= =?UTF-8?q?=E8=BF=94=E5=9B=9E=E9=94=99=E8=AF=AF=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/api/mobile/apis/users.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/api/mobile/apis/users.rb b/app/api/mobile/apis/users.rb index b47d8f61e..a566b702d 100644 --- a/app/api/mobile/apis/users.rb +++ b/app/api/mobile/apis/users.rb @@ -49,7 +49,7 @@ module Mobile post 'password' do authenticate! us = UsersService.new - ue = us.change_password params.merge(current_user_id: current_user.id, + user = us.change_password params.merge(current_user_id: current_user.id, new_password_confirmation: params[:new_password]) present :data, user, with: Mobile::Entities::User present :status, 0 From 5ee37f32e25ae7aa7736d624aaded80a49a2ef1b Mon Sep 17 00:00:00 2001 From: z9han Date: Tue, 23 Dec 2014 15:24:18 +0800 Subject: [PATCH 51/83] =?UTF-8?q?=E8=AF=BE=E7=A8=8B=E5=AD=A6=E7=94=9F?= =?UTF-8?q?=E5=88=97=E8=A1=A8=E3=80=81=E6=95=99=E5=B8=88=E5=88=97=E8=A1=A8?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3=E6=8A=A5=E9=94=99=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/services/courses_service.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/services/courses_service.rb b/app/services/courses_service.rb index 6e2c84e65..dee7af56d 100644 --- a/app/services/courses_service.rb +++ b/app/services/courses_service.rb @@ -56,7 +56,7 @@ class CoursesService else c = Course.find(course) end - if !(current_user.admin? || c.is_public == 1 || (c.is_public == 0 && current_user.member_of_course?(c))) + if current_user.nil? || !(current_user.admin? || c.is_public == 1 || (c.is_public == 0 && current_user.member_of_course?(c))) raise '403' end @teachers= searchTeacherAndAssistant(c) From 4518fe43554b4b19ec8ed6b3cb137a1c462d6f91 Mon Sep 17 00:00:00 2001 From: z9han Date: Tue, 23 Dec 2014 15:35:22 +0800 Subject: [PATCH 52/83] test --- app/api/mobile/api.rb | 1 + 1 file changed, 1 insertion(+) diff --git a/app/api/mobile/api.rb b/app/api/mobile/api.rb index 064641de3..7d6aec11e 100644 --- a/app/api/mobile/api.rb +++ b/app/api/mobile/api.rb @@ -15,6 +15,7 @@ module Mobile raise('Unauthorized. Invalid or expired token.') unless current_user end + def current_user token = ApiKey.where(access_token: params[:token]).first if token && !token.expired? From 50a242a56b6b678d2c616f4523c73a643f149be1 Mon Sep 17 00:00:00 2001 From: z9hang Date: Tue, 23 Dec 2014 15:38:45 +0800 Subject: [PATCH 53/83] test --- app/api/mobile/api.rb | 1 - 1 file changed, 1 deletion(-) diff --git a/app/api/mobile/api.rb b/app/api/mobile/api.rb index 7d6aec11e..064641de3 100644 --- a/app/api/mobile/api.rb +++ b/app/api/mobile/api.rb @@ -15,7 +15,6 @@ module Mobile raise('Unauthorized. Invalid or expired token.') unless current_user end - def current_user token = ApiKey.where(access_token: params[:token]).first if token && !token.expired? From 40d06011f82cf236333138cf192fd3b7566360df Mon Sep 17 00:00:00 2001 From: z9hang Date: Tue, 23 Dec 2014 15:38:45 +0800 Subject: [PATCH 54/83] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E7=94=A8=E6=88=B7?= =?UTF-8?q?=E7=9A=84=E8=AF=BE=E7=A8=8B=E5=88=97=E8=A1=A8=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/api/mobile/api.rb | 1 - app/services/users_service.rb | 7 ++++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/app/api/mobile/api.rb b/app/api/mobile/api.rb index 7d6aec11e..064641de3 100644 --- a/app/api/mobile/api.rb +++ b/app/api/mobile/api.rb @@ -15,7 +15,6 @@ module Mobile raise('Unauthorized. Invalid or expired token.') unless current_user end - def current_user token = ApiKey.where(access_token: params[:token]).first if token && !token.expired? diff --git a/app/services/users_service.rb b/app/services/users_service.rb index 9fb698056..2996bc91d 100644 --- a/app/services/users_service.rb +++ b/app/services/users_service.rb @@ -114,12 +114,13 @@ class UsersService end #用户课程列表 - def user_courses_list params - if !User.current.admin? && !@user.active? + def user_courses_list params,current_user + @user = User.find(params[:id]) + if !current_user.admin? && !@user.active? raise '404' return end - if User.current == @user || User.current.admin? + if current_user == @user || current_user.admin? membership = @user.coursememberships.all else membership = @user.coursememberships.all(:conditions => Course.visible_condition(User.current)) From 550577e9423cc20242d922c09f4179369a8ced0c Mon Sep 17 00:00:00 2001 From: z9hang Date: Tue, 23 Dec 2014 17:43:53 +0800 Subject: [PATCH 55/83] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E7=BC=96=E8=BE=91?= =?UTF-8?q?=E7=94=A8=E6=88=B7=E6=8E=A5=E5=8F=A3=E7=9A=84=E8=BF=94=E5=9B=9E?= =?UTF-8?q?=E5=80=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/services/users_service.rb | 36 +++++++++++++++++++++++------------ 1 file changed, 24 insertions(+), 12 deletions(-) diff --git a/app/services/users_service.rb b/app/services/users_service.rb index 2996bc91d..c1ac062df 100644 --- a/app/services/users_service.rb +++ b/app/services/users_service.rb @@ -45,17 +45,8 @@ class UsersService @user = User.find(params[:id]) img_url = url_to_avatar(@user) gender = @user.user_extensions.gender.nil? ? 0 : @user.user_extensions.gender - work_unit = "" - if @user.user_extensions.identity == 0 || @user.user_extensions.identity == 1 - work_unit = @user.user_extensions.school.name unless @user.user_extensions.school.nil? - elsif @user.user_extensions.identity == 3 - work_unit = @user.user_extensions.occupation - elsif @user.user_extensions.identity == 2 - work_unit = @user.firstname - end - location = "" - location << (@user.user_extensions.location || '') - location << (@user.user_extensions.location_city || '') + work_unit = get_user_work_unit @user + location = get_user_location @user {:id => @user.id, :img_url => img_url, :nickname => @user.login, :gender => gender, :work_unit => work_unit, :mail => @user.mail, :location => location, :brief_introduction => @user.user_extensions.brief_introduction} end @@ -104,7 +95,28 @@ class UsersService logger.error "[Error] avatar : users_service#edit_user ===> #{e}" end end - @se + [:user_extensions =>@se,:img_url => url_to_avatar(@user),:work_unit => get_user_work_unit(@user),:location => get_user_location(user)] + end + + #获取用户的工作单位 + def get_user_work_unit user + work_unit = "" + if user.user_extensions.identity == 0 || user.user_extensions.identity == 1 + work_unit = user.user_extensions.school.name unless user.user_extensions.school.nil? + elsif user.user_extensions.identity == 3 + work_unit = user.user_extensions.occupation + elsif user.user_extensions.identity == 2 + work_unit = user.firstname + end + work_unit + end + + #获取用户地区 + def get_user_location user + location = "" + location << (user.user_extensions.location || '') + location << (user.user_extensions.location_city || '') + location end #关注列表 From d1846e630312a4f1fab58f4dcfec677834d09f14 Mon Sep 17 00:00:00 2001 From: hhuai <8863824@gmail.com> Date: Sun, 4 Jan 2015 11:53:16 +0800 Subject: [PATCH 56/83] for update --- app/api/mobile/api.rb | 3 +- app/api/mobile/apis/courses.rb | 64 ++++++++++++++++++++- app/api/mobile/apis/upgrade.rb | 22 +++++++ app/api/mobile/middleware/error_handler.rb | 2 +- app/services/users_service.rb | 2 +- public/Trustie_Beta1.0.0_201412310917.apk | Bin 0 -> 1149718 bytes 6 files changed, 88 insertions(+), 5 deletions(-) create mode 100644 app/api/mobile/apis/upgrade.rb create mode 100644 public/Trustie_Beta1.0.0_201412310917.apk diff --git a/app/api/mobile/api.rb b/app/api/mobile/api.rb index 064641de3..11552881a 100644 --- a/app/api/mobile/api.rb +++ b/app/api/mobile/api.rb @@ -29,8 +29,9 @@ module Mobile mount Apis::Users mount Apis::Courses mount Apis::Watches + mount Apis::Upgrade - add_swagger_documentation ({api_version: 'v1', base_path: '/api'}) + add_swagger_documentation ({api_version: 'v1', base_path: 'http://u06.shellinfo.cn/trustie/api'}) end end diff --git a/app/api/mobile/apis/courses.rb b/app/api/mobile/apis/courses.rb index 69848a1f4..faa060193 100644 --- a/app/api/mobile/apis/courses.rb +++ b/app/api/mobile/apis/courses.rb @@ -16,20 +16,79 @@ module Mobile present :status, 0 end - desc "新建课程[TODO,参数没弄清]" + desc "新建课程[TODO,待测试]" + #current_user当前用户对象(不是id) + # params[:course][:name]:课程名称 + #params[:course][:password]:密码 + #params[:course][:description]:描述 + #params[:course][:is_public]:是否公开1公开,0私有 + #params[:course][:open_student]:是否公开学生列表1公开,0不公开,不公开时非课程成员无法看到学生列表 + #params[:course][:course_type]:暂时默认给1值。 + #params[:term]:学期(秋季学期或春季学期) + #params[:time]: 年份(例:2014) + #params[:setup_time]:暂不传(貌似已经没用了) + #params[:endup_time]: 暂不传(貌似已经没用了) + #params[:class_period]:学时总数 params do + requires :token, type: String + requires :name, type: String, desc: '课程名称' + requires :password, type: String, desc: '密码' + requires :description, type: String, desc: '描述' + requires :is_public, type: Integer, desc: '是否公开 1公开 0私有' + requires :open_student, type: Integer, desc: '是否公开学生列表1公开,0不公开,不公开时非课程成员无法看到学生列表' + requires :course_type, type:Integer, desc: '暂时传1' + requires :term, type: String, desc: '学期(秋秀学期或春秀学期)' + requires :time, type: String, desc: '年份' + requires :class_period, type: String, desc: '学时总数' end post do + authenticate! + cs = CoursesService.new + cs_params = { + course: params.reject{|k,v| [:term,:time,:class_period].include?(k)}, + term: params[:term], + time: params[:time], + class_period: params[:class_period] + } + courses = cs.create_course(cs_params, current_user) + present :data, courses, with: Mobile::Entities::Course + present :status, 0 end - desc "编辑课程[TODO,参数没弄清]" + desc "编辑课程[TODO,待测试]" params do + requires :token, type: String + requires :course_id, type: Integer, desc: '课程id' + requires :name, type: String, desc: '课程名称' + requires :password, type: String, desc: '密码' + requires :description, type: String, desc: '描述' + requires :is_public, type: Integer, desc: '是否公开 1公开 0私有' + requires :open_student, type: Integer, desc: '是否公开学生列表1公开,0不公开,不公开时非课程成员无法看到学生列表' + requires :course_type, type:Integer, desc: '暂时传1' + requires :term, type: String, desc: '学期(秋秀学期或春秀学期)' + requires :time, type: String, desc: '年份' + requires :class_period, type: String, desc: '学时总数' + end + post do + authenticate! + cs_params = { + course: params.reject{|k,v| [:term,:time,:class_period].include?(k)}, + term: params[:term], + time: params[:time], + class_period: params[:class_period] + } + course = ::Course.find(params[:course_id]) + cs.edit_course_authorize(current_user,course) + course = cs.edit_course(cs_params, course) + present :data, course, with: Mobile::Entities::Course + present :status, 0 end post do end desc "加入课程" params do + requires :token, type: String end post ":id" do authenticate! @@ -50,6 +109,7 @@ module Mobile desc "退出课程" params do + requires :token, type: String end delete ":id" do authenticate! diff --git a/app/api/mobile/apis/upgrade.rb b/app/api/mobile/apis/upgrade.rb new file mode 100644 index 000000000..02ff97185 --- /dev/null +++ b/app/api/mobile/apis/upgrade.rb @@ -0,0 +1,22 @@ +#coding=utf-8 + +module Mobile + module Apis + class Upgrade < Grape::API + resource :upgrade do + desc "get update info" + params do + requires :platform, type: String, desc: '平台名,android, ios' + end + get do + { + version: '2', + url: 'http://u06.shellinfo.cn/trustie/Trustie_Beta1.0.0_201412310917.apk', + desc: '更新了什么功能' + } + end + end + + end + end +end diff --git a/app/api/mobile/middleware/error_handler.rb b/app/api/mobile/middleware/error_handler.rb index d0db6ebf1..018191d8d 100644 --- a/app/api/mobile/middleware/error_handler.rb +++ b/app/api/mobile/middleware/error_handler.rb @@ -7,7 +7,7 @@ module Mobile @app.call(@env) rescue =>e message = {status: 1, message: e.message }.to_json - puts(detail: e.backtrace.join("\n")) if Rails.env.development? + puts(e.backtrace.join("\n")) if Rails.env.development? status = 200 headers = { 'Content-Type' => content_type } Rack::Response.new([message], status, headers).finish diff --git a/app/services/users_service.rb b/app/services/users_service.rb index c1ac062df..c58956994 100644 --- a/app/services/users_service.rb +++ b/app/services/users_service.rb @@ -95,7 +95,7 @@ class UsersService logger.error "[Error] avatar : users_service#edit_user ===> #{e}" end end - [:user_extensions =>@se,:img_url => url_to_avatar(@user),:work_unit => get_user_work_unit(@user),:location => get_user_location(user)] + [:user_extensions =>@se,:img_url => url_to_avatar(@user),:work_unit => get_user_work_unit(@user),:location => get_user_location(@user)] end #获取用户的工作单位 diff --git a/public/Trustie_Beta1.0.0_201412310917.apk b/public/Trustie_Beta1.0.0_201412310917.apk new file mode 100644 index 0000000000000000000000000000000000000000..0218f66a0211e3c89a8296972184117bcdc6d68b GIT binary patch literal 1149718 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

bl z&2W=GCP{@qOKX&4eH9lqVAFaQliqtciZgB*r2tR1@p`>vQ-s}VOcle$uj}Q>omr$V zT*o~4Hau0S)k3#Dw_7E2k65;^JgE;;-c=CG)$YN?in&R=-oL2${9tJreb-KHrgi5v zfw57}K0#&-20Ou%SQI>K%Wa>S&Ev}IF9_9fW-oxBShRGQhw}si=X#9n;|%U6t?LkY zGWJ-xUPn6DUCuQ?7=_mO7akHogouAT-2bw8{arA2`ns0?u~dYi75{%$D&{QzRjF*< z`M*&ra&WsSe=e2V|6VHK6${+O9pr0~TY&Ol6)nN=RZ|O&jSa5Q0~jqdOlA2nv=;|w zIJif8tK*ZKTaKj4><`zdw3ezaxpJGjRBIZ~BBadI;=IRYBmr=@w}Juf6G2Mtbr7MG_}p zmb2IF*R}$GbmYtZ$Hq_c&ulg~u{6{%FmW_7FoawPEaaKM_py|4#%8=s8hCg?Y;0xh zOrc=H5Hz?UOaX5ixWO5fhak9(10NlEkiR>k5gr#4u32~;*Cs*9m-*c>7`WOAyo~1# zDO4_z6XX#vd=!?!a*NN^FfB%^S`p>&%ch!G?F{?Ffag(mK1ln4iEoNQ!ERZ4qj%Yi zj^o_)8OXUo=Isrp-msew?YW!ps>;-x8m;hj^`rHAbl7pWzI1CZDjh{e+qe#F)Cw@EQ4KheQj9Ekp08zKf;0WF(y{7OUtPj7wXsWw*(5%B3Z* zOUPk{m%c`g5CA#qw~7Bt%lHvw9Y=7>u#hhWZ$KWcq;JI#Gcz7^_)fua>F3F8S%i@Y z%T(Qw+-6`ZjYgYC*&0pHn8&&x_u$%Usj+#)$hB`Y+q*@mR!HPM4<`i8$v$DYd>nk& zX8Y7^F>L}}V=?(zR?AJL`@2nfeHY4!bf3N52c|PJbcXHTaB(k1)3CaR*jkM7G0`T{ z+t1!RO)?H)>UXAnW1Lbs*#9cqGrJzI(2l6rCBCre;nk;c_2-FCs;e9B=xffaT*j(h zp@SI6blRwQ1*S2hcq0;)*cOAvMzq7ab%g6!*o>RV&l9=qI8Y9VwAps6Gs?7$$x=Di zmhq2@aQbXD12s89*oFE}Jh&vT-&(N&_phVA7X+C)Z&2JBT^cFePf8#M0NqbUa<~A* zVZVi#{?|OVv;Q`_=mXD`!87)cSD9GFX3185?3DQIBwCedQn=^Ta>#u%F*hPTg$l;R zMJ#+noG}jA{9QrIeL5p9W@DBWqc2cfd-{7D)U`3mL>Xb=c$Q%bbt`03ju~vEZw6EA zNxEawxdu*<>uD~Mt~ygNSU(?0p_8}Ov1QA)4M)-m<4&gr=_iz(76Fcn`x3#UgtPgD+^5=R!Nl#>j{>9fOm=Cni&++8TOwWt+3w(<}Lt zWt3Sp74Q?+@F68jIHAEwy}78dL`PQQRqVp?yNjIT>)_5$*I#E$WFb#c@jp&5l)nqn z&!PD?T`qdV&`A0SgNK-7W$c%AK2Xgxh{5#c!hUdb{K)V)Bs%_+tz!N0{L5vco5_iv zIEqNfI_|*0!2+StZ-_`e=Cu({!IWzY1N!~J%~G+psy3efU2)BM+t!rV{|b#D5E>zHXsE%VdAfEQ z^h0O_|8r=1gCU{O|0Oh6;Lsoep|Pj^7MkPxK^(a{`y7Sa3&$VBSXhSJ!v?z%Q*IW0 z2#{iDa~khHJpVK;>!;bn3jQh4vM|A9*?hejj12jS)-+S4y8Bp2&v025hmbo z%;Tr{+JTT7n%JJ@4~pZ}sNS-3^Lohy-K*5kLZUgcK4kE<*`B17RTD~xrrCscpkFy`FIda&2%37O&T z0UgP00O#P}HYuimR)Dpwl`)__v(wYH)p2?Tv@0ERD_sKqoJXR;zz_ZrGnQuz|g}sd(<(A6)BB&Kwa~RoorG`JpgUJwEZWT8mQl_QVwL_ALV~o|L<_ zm7|M9>u?`mXNgVso+KN*vU~!{>`#Psvo+hEex_WNn9D`%^C;w;UC7yo<~?gx1MH_V zV~K~PVFiXO)cU>n^%<%MfmGr-#Ugv$Aq@l(^>}6{lA&U+%;#S3o{NU$M(rtI?Q*l= zDW#ci+33kB545?czOhQUHyoCz@_Ab--*ehTeUt7=H>N)LvvKd_3rER(UaYvt9qqn@ zIM9<7Z6uwp3#^!hZoUghsGOu#`oUbv)^9^a^_x)H*}Iq<+F9tDn}3Z@J(%kXi2U>- zn_ejB*3FwY5%0p$vtYr9l0tRxqZE1PNVd+wvB*JTS_v%p;3qgE%s)?-kFhNx*YV=r zt&iwIK2U!VhC9mgu`Z`{XIbWbsN*2?MkdjL_w3M(GeOpV#F3%bdI6Fns@XnN_bJEM z#8)?3HaLAmY6eL+mG&6)+hk)IUlDAWbh)T*QB>S;^5~jc-SR2IYUYY!J(I>4vdHhl zU&sIWT2FkI_C#YVXXgEaP%2Yrg{|Al^h48WvJv_SHKJvY6r?)AxCug&pwcf4?q58`Q(XE1yN;(WR+Fwra_ZdSFbrqGZcV8bGw25THeX=A$Dz>a8L9IaEsYgKtOz z!LcIl6!6I0v}VMd!n0kFHNFCI^-DePtA`|Dlyv(_c&8<8h ziW?9qv~c7Jd_c;}ufnaHnb>_7Ix#wNwRF1QxvBhEC&WNG@4?5?GY1mxNPcLBChTc% zr?>Fw^F#)3R7`WiR~l-DpP*&zjh5losQL*KHudGW{PfW0HI_Tnfown;~&sH?GYE<Di9MERF~qd+N(RstM@e9(=xWCOu~?`i{{gnS9&M zbDM9{yRt|J^8|Pp-l2NQMSirwoDO#Z;$L|P>S3KeZ}%YaB1}yUIoU4!`dndPuXG)} z7&QGB_Fv9!{|5V4TKy-;`H@4hd7(v~DVRz!@Dm77h~0&r6n$xZ%QVUs#+0@g-ipn! zu8_=;wc^_O>SC8Oc2t#&0EafrKF?DNetjI@)1aE~z~ zXHnxpZRt{9G*|c+l7aq+fqO6wSp4!C==128HMRrP!U8E+N{dM+cgEWAc7+V`6!ZeA zdy8t?$+ts3yurI~9TbTCl;5($)W`S;ilgAh7|!UMj~tZcsP#Ej^Tq3rKRSsRhD&6p zPZZ)faC&sRiC9=17BfzzB$>C~RAbFid$K)UM|;%gGHP#y`C#QzOPDu=NKb}ev}6AS z)Z_4Uwy;}=Q#-z&=X0DzVBbe4X#D0w!(zs{VQP=`FbwVCM`F{to@eR4OG2CR?2XyS zJtr#HMk&<pYGeJl+g3lF|Y@t6Ol5rp-bv?@Rx0CmKi6yUOL+=bgZirJ_P&y!c&wfM68g;fA!QIy?D*thQA}Q*2EnBYer+L;<_}Y%5Hm87hV-z3dE(&ot**v=I1vSpkN=l|u7$)Ng# z5322UREF4AH$K)A7O-qvbtIr!!#?6ST6T$$<12*SkwNt$09jU7=bD%Gyw%!HjTJ>c zdzS$~ZhXee66YcDiP$E6-|o5_q0Zv+MHA!tC3C~Z90YKh`5-suTpu04eTi{<^JHml zOS;X;_!4q!yYVbd`p;?p+s^WBA2zhN`|ED}bCS!;pFjtby{BQNyqytt=fx{@OrW!X zfX=c9be0DAG9oVRh-nk^9cM>JcUcTjER-)y094T0c)1(zUF1dI1a!7GuF|`_Ay#BU z;h0K=Ol2Fl=(y2iRR$84NKtW`yr*A|63cBt+dhsgqt7Y$DjPBHIHl4@5A` z%xRrLw~Jx-jbyGq?AF+C->ckWHji&WX+kV!wDUMk<6S?e5ORhfezxv~9D!D(vv~1h zmT^h-GTCO^s7+gIg}f8(*g!T_C*nKi6pOWGSMcC9N;&TS;h&TIm+}6mBnNH~CIHO` zh(msAFF*D43~cOs?$H0=Pj;qbHvQfkRnSCtSoXL(b8nCN9Onc!-gK^r=uG@M{K z?w2Ho_fQ{<-&tqzNau+8Z_F8T^bJ*sV)-O#??sAAUslp&4 zW5W<<>8Ng>`qKp4=}Bs0?X(4+P&9g%1qZ0uanDEO6}om{RzAyvLRdB`jC0mQ ziz=%z)>0^ag}m z-0V3%keH(;Xpx#)2|gc@yH>Jxe|Cwv8h_wP(6})drq2eR7H@NSR#Dq+T-e@p^0d(b z%!kit4&=tlF z*+J)l9h4Ckyo0{9a3rVz@1Ww49n=lHgEAQCd<2H`)r)DbchFWEjT9g$*T%4tGbhol zQA1wjlZCWillgeFs{Ox4bFAGN^=pVyPX@Og>d#ZlZxj97S^oPC0DM&WiJ6uEDrj9q z_LoQI_4ehP*Y)N1p8x~T7DcmmLW%sr9m)&Ju9JkfDD!RAu=AJ1nbdNJh-f_wSYH`w zI5pAQTYl&CdV<7Qc8k%@elE{)l}phV zeXP1%rPph-L>s8QQt_s#+|V&$$U2^#zeB4wNyBIizu zbL97gXvr>S4U19{%6cwj#l`Rlqm?Gh93MAy^Lcp8>NM0e9&2qZY*zE`6r2;yk-KHp zG$_my9fJnz!#a5zuIazr^%0w}Vq44I>OdGTE(^$TCV2UbZf3={sXlKP7;56=hl<+|35Lee4ndIH>l%9yJZ!j}^;wIVSn z-038#CSc$+4GAs1Qc%*Sdvn~zv0~sL5<%BN%vP)?Zm3&;tf^rXNr37U0&6f`UQlgl z6kht_wi11w;j)xt-?XrLF5{NF(Z}l4j7-I7B6%xwFHaPS()N>^(W;9Q!rJ(EiQ*!I z<%*&8^}gzig}&>IlVfTCoiPQVGd2MDay)=9PrTzAJYx=oLgs3HbN_1ZAAC8WGya<| zr#iW+d>;fys@r(^6JHKlWL0+?U;H^L5B_IS`95?0Yh-W(u-&2Hy_#C#d=N_wf%(Vk zj>6!s6!uGZ{wt`J2rl<0Lb^7&yHhN+TxOfZ8Enh_@P{M|1K9xNV!n`Yq`MwhjLl}W4T}+3_GOhD6NWN?+ko`Oh>6k zLIqsFh2i%K@ZatL-^=B%5BI-EB@^)k3i--A2nhy5uLrm@%<*SsEXC8%>_cBb_mViB zybo+ylwB$}c61sW;}8uMxe2^e!FWmlj!I=Pl8tn42qY@J!73xqtVN}5e5J6vYyef^ z^N1%|dWBviFULaxRbd1HpekGnW$Fwsz*kKC^af@;Zcv7ZJ!e0|Ca?eDxd9qZgjV0}GVNF&=7 zD9jS|W6=x6(#+zI;IdWHv>(C5(Z76^Q}IT~%hPc0Ij>z%%=tC-OaA@mopNA@5{$CQf^^S-1p*UX!t9%uawGOz8RT5|EX& z#RS(q5FEP?elP*s(Z(G!cgwjfuuf<7sAoClN%|vd2aeJn2~GQ{uCEU!Y;A+r?mCvO zU(K?e=9Ubc_oxCN8Yv!kp7B)=2d^bJ13Be!He~lDQqr3E-HG<&#@9R)AjESLxJ&!g zRn?JGjP~>WBgnDBbXwWw|5jkWl9GQ2%*#6p{~MV9L13a2`+EKynBRY4z^vo1tH+NE zpO5B`>or_7aR3x}8Y2P5VE7SbcN8Ol7x;0#c7j2ad^kqHP^;#x_6WB4Zzt1;1rQcA_++}eHeT=2 zK!&^+h>wK^2%sq&LUhOk!ZESx^fn5p3qgX)4O348jUOsQ-K$0_AQ;<%W_~R7H!sjp z^%=qo2pEPdWZXVgM*&WzDd3aoco5`dN)q$Vv`%l^&Um&!Z|IF1%fF zb0qO?7t-5TRsD6qO~WY=xM>7UzZ-a~an=vbA+4i#_72PAWPC3mEj}n>$Y$ zyG}&vby`X|lcJLeG67zo1>}d7sJ|4i`}POP z4B@e`;V27km5>npgF9^cnSg$0=1Pit;g-@)@!rgbpZ5$`B*4t zYQu7URz<~G351a8`3E6W0w!c+gn5IB^n|_=GOa%lGD~q&?VL23@*e)sv?{ci07xZmCU;eN+*o89w0IdH#24yyp}cLTRYjj1u_(hngET`t^F z)}Jva|BtJ~Us78gux7y;JpOnnFj<1dH>R*S*(XH` zLgyQ-(R;qi`TO(`QIr+K!l-I***sR&jg>>ODQKcb@ z5A4-(662%pQyO12_n74k(8s5orwa}c5BlXwacgac%9^HTTPIhgkdNf2Uy-kV)>_AN z@l^N{4=T9&g5j#d;#B8;{-L*YbzJ0p3vc7ig^aZm=5j$TFXW;jER1c553B-pzh%`) z|0B?V8r1yzfi(K7EM%@j;=<1xAYByYmHY!??$$gc_C}$=$AG&V{Us2YbK4uv*VoM& z3R$*EW&V?)-#BiqYhrIQo7bjz$Sl{3A@NSpDR~cB-)oJhaJRUH%uY4D6+IBv>FKi6qofOx4r zre0)X_#@4G=NII`LY(h9637!bi>P|Apxob>W7}QQ2jBw0kB1~A{hbpLWj}<#4RYiQ zNkmhNN4^xx_8aKPB?h$Q<7H_i*Vu1ZIbx)-JS5&Kao-%nn`^$=x=EhgKGo4_ zuXV2TeJ62$ddq1}BsZcsa8m5Dc9bxNuWt*{Kwqo*6w?FiE}oB4Bf*H!%R)v154b*( zQ}>Mg7acEh#5uM`7e1-%gxVX;j-SW+)tq+@$a=mG&!cRtD=DenLX8_eXZuQ!m!@hg zZUMLu|2Ai-|B2k+yOEQLz5X*DJM(Xfd_zEv33jZQo5iR?xF>iI;#h&HATsjO9R?Aw ztbkk2Isq&zP$~RR5P2ga!swIPjf$$Z2Ev>?icRoUpAzrFZk2{eJid)$+!6q~>y9+n z0{pf72dkoLc@3W>MpH*b=VBA$`NrfDK72ln3!3Nrti8$=m%{SVwzsX9e|!*ZB#|p4P_zQV)KMiJ>}_>hUdNPfc3 z$y{N+m{7jr2v~m{R_Ewy`q;Fgz3rr;Qunx@f`r!+1fq0DIcMk0X-P5D%{+^vR&i1! z@=(>&zEb1UrHx6W^qX4@~`!-U1MsxI647KHY?;-lzdJU4C0vV(5pOuRKL z^{8B$i69-0W42Q!U!A&;&M8)z6HDtEv1tkQg6e|Zm*Yh_=2q|V@*-7y)98W z93F>WZL|41HWdq7p&R89$24xI1Ti4AYh$%Xh7-0UT^Cf`{~SZ?>}^ofWs$U6gvZC^HOHa>I?^ zJLa4#T~3LP)2A}(FH4EgUAQf2@jASX(M4Iid$Yx}mT>_=_DwqXu>WJ)E%6;eFJKFA z*rPVuF$z577}1t%DQQ`q+G$TWsEbV7@Og~9Qyq4-JQ$;IpKh`9$Xx=)BGipY% zqj0pxLbY)FYT&K8=wlE;2XaUnQvU(%1JzD4B`kom>3vBxFItlES{PCNL>A{Sc6DHLpj_?>rNV!_oH$ zU%hT**|dSYi1%g87+@-nfxL(hU|SG6!KTIC%6GwBF;@%adi7dqCO>K2WBsCj93@?0 ze{Gd;tY5SA#Z>81U`X2I?bvAz4vmgPulwcEk1!gS1Y8)cHV@|-PEd!59x5&fyRKde z)v2}fpN{sNl?LxDso@KQ#`^db?pg1?ijq>{+X4| zMc_K>lYDE6`s1s+j*pohd$N`}^}c1weN&FxfO9uK6PFM8hhXRWmYw99?Y>~$N?TgH zmqmT>E>G1O)0UvTOI>JJvBPb-z9kG~g>c>b)e0o6bB3OiOHxnBfzFKX zk^7%f{N-gj7)2}lXNI=_o{tbDA^9i_L6V;=3=@o`zuDlO=DX}9m=`1#UGF~pjU*F2 zfF#jcS)}?NFJ?|lEQrA!Sx2zlm);JHruK zrb-uHfb;Rmw%8B(sQVf~^6<E$BQ5koH z5+u|%Sf>-#?sBJwToph3=vde-Cv$mS`zALhTTjv3rWtSWGrnr~Ie!8oTT3$V1xLoQ zbL^c!aVk^~=6aQ>GV>;B!(#!cY`b(O{iRh?07-*;<%T`1`aI#&Qq}3p=J8wM|~@EE8CyS zJNDZslokX0f;4n^@q09Rz!fHM5BdU@Qy}{ertfyK9Iu~mpl@2_tDw@-fE~^;!Y{6l z+-9E^)E__XJ%x!ldA^y&i-+5y=!`S#FQ+RhB}QLZrBts+KHYigccwqeWy6)UroDf^ zVd#qKh*4eY({2l@>XV`av(y>MNmD(Y#$Zd0b<t0hhtI~DSxk2B?LFq$3->XQ@gh>qM^Sm ziuS-3Mg64|1$4HW%qvxnIQp~!KUx&oe6=Xbq4kmkEQ+E5iy}KL!><-a@eqq5OX2$R z%Ts!a_D4%t!rH-N7%oQs=4!lTyw##%Aud#nL?EMZm&W#QmN*-KS>nk2Wr-sZu*Un( zi#r{xI}h9Pw~PB6_~H%?xwvB@M*1{vO0JQ?_Sk;Ktgh$i&s&bOrU6UU?9P-ua$?0{_)+Wd_Nj~1x&Fav*5Z5RZz%}Y2#5D>aLHeY_ZC(N-h+Q+*1$lg~H1O-fjP<F0RBC@3gsKJhP}2W-5cs;qN`h~sH?LogeBgatYQ!q5eZ&%3lVPem+43nHFm8ku{J zgpDU{kT5m-nrkXN?N^(Jkhm5qA!a?q%tCgm?4tcMReG{uLYL(TN#a6t2*1lBxA%on&iw*i_5jE3u? z2_cxsx9PXe+8xs7g8L(dzu9 zQU2RmEsD>(dg)gBn7rDwN!<}(tv1EkDZUE`Q7ixNmj$(Yf=_;T|s*7l?Eg(fgc`M3hym%!pk+p-? zOS(KGE}C%?+_zF8)@sI%zJZb=mi+alkiLbx#3HO6LXF{~`&ZvW_|~^jzgu}($bRcv z(IJ5`I#qd}mq~|&ezEd$J#j4__-5r*47T#(`Ps@#1Hu%J|Hu@2!Jmu#nUMNr3H)9p z)`ph)fOW&KVd;@<<3}%)ePk&Nhk-`g7DJ7eT+l^&0flzu6Is<0x=BTWApm!Y+U&>X z)$J$7*TgrNWYckzga^(z&t7qKW)vv~|K6-V|J#64FoP>#-6#_lLJmk#zSatu!Bx`p z)t3gOD6G{;{ak-bQP|oDAW{?p{RpYQtQ#2am-T?H8+gIi4Vp}49paxO^ZsDnVBqfC zg|bUSHV_uY3RpK#f3<}Ofvp>;f3$9}{7Z^bE%eRu4s6}<)$;B&X+zrPJ|Gp^ z<#`V@FCzE`8#J^Tpm{Bv&wV7tboRfrgjlT6{b;e)>BhLm^T+1(%{2J?{^Rt_5b}5h zviK+frSSlphs|Va5VY3RgdP$Ql6f;4UC$r&@J5uH;Pa_B@AH$y&4cBhio%qFZn$H^ ze&~H1!D#YDbb_;?p>vhj{2Xz23ECH*4aU4RBCTwWQg0DB+*^il?22<^>9kd1FpGH; zlV@```t2(AK4`0V#W;JHB`nIjbZe^>Vu;1T=r#LjAf1yRnb1 zu-h!7P@T#+DRwDK{w%qkZKg`JcJ^jx#YV}B#+DBJ#<+vbG4v5OhZwIe$2EqS`3h|Hp#50ws-VHWZTeL3kWHJFg8%jbWL0O z;p4NT2FHELsmG2acy}9!`E|oI;J31fRL8Eo*(n)9%oZbPf~gn%08Mmx6e$MnNSFNH zF^tAE7NrtXPFLyOWR?n+Oi&r=>aeaK$C75&jr;j|rBTmJ@4+hcSIvbYu;;v4xo;ha z)gO8W?=hzQIN|02mW_r|{BB#QnS=$U%^aR$ZC3o_m5-+>r(u(?tBD@GINwyF8{&S0 z9;BHbt62JK1Z7-xG0>Sj<7nAKYcWWl!U=|WPYk!D^Vacs%9lYxt>LnV(L>InSP3et zf=^Q@B<^0}jz0{yw(Q(JId=gaOSly_}zya7Eur{%G(b3iW%d)vB zuE%Ox8M`CWn5xuxFUb)tiDaU$59n86}+{#m#b{P+AZqts9g>kb4DReuO1WB%j4)Y(gT%igbx=v|^_|i~yO6=&2@0?Ys2w_>QTgS)6PnIIv zvrRu{%CfupX(hp$_hU#yvEN9EMZw^6atbY-9RilB5ld>zft`Y77{01`(aQ?LtqOfU zlT|;PzJBd}*q0o8mG4q$&`8~J>?*ar@=I#2lBecgg@m+i-N+v$sp`)*vSS&ZB0u2N z#XeTymy)_~OK@LKR+}^{IO_4^lWHQ=rM4aC1_e(3n5q#|oODXd&M?p(JHF&-Ceclv z^#1fYVl#{T_Ty|Mas;DDWU>8nVnJz+vCR~7?}(>F^Sz=BFOeEx`MepMNI*O%7!)`? zXSiSF=2d#$-5T_Sv-Cq7YJ7e~ddDm+u2UoZs(Dnn7Lj%^d~moR;GFVe^u*m@>7?2( zGcv}GW%P|;@@v+t$P0AD z=Eia%(^a3!ZNxiB*HQT-Wtet|I8!CxrtE`RnOaw(Yjt=9`2lbp~ca#Pq!!}FPa`JCD6yjd2*ws8%>~xkj6Wd@{ zQtad?7IKyFj~AQlQEKU##AI|DOrzUfG|)~7+GEyuC-#|pAilRuiFtrpYGsmG>6560 zMPsG~ibt%OS#Uj_8JCLUC%AE{fjL153lz;{Zj@wq+=x%Ahe7Ny?Jfi%EOw>xX2m*~ zXGk`2Y4mIDWd~kfb_RVcg?%KZebZ7l;Yy8GudW5Vd5erZ3lbw;FyZ}-)8y?!(^;LU?Y}Wau zh+F%tagN}qN?`N`sS`4X-6d*f?wnCU#%g2HF=YEP7LDa=0NfY7k$-16`0dyH{Ie10 z>Doc4fKvi)ekxm4RSFjt*WXT6Dr@j>hsJEJt@O@bxz{Jnv zPW#*dA*S&c;DA)#D=(R?-%B^w(DAsN+mI!y-!e1#Fd{Bftj`Er3WK)T09)}j8Bbe@ z0U0%Ol&MHgw-95*o#XQc#pjtz6vd1y+yuZ^J$&VsPH&1Dg=|{gx*mm4^U_d9%En{WRIe+l#p(gzhKFoO}aPPAqO|x1Vgdp!Lx@KPopanpdYE znWMB*YJ8lhGUU?e;%OQw%K5oBKJ`WEqXX$J#oMRSQ`ZR+rK>zM`#MH1jz7}7tekmD z7*q0i4OoHi<&v=jf)+skrueOK<~Qr4e}+w8*V^8}781GF(E?K7H~w=}uR|(Ko<9cN zalVJhW4@i%t|W)74d-A|(XAKrlEOj-z5aalf(e-vE_FnU&`!a=rE{xpvMzvth+&rA zTNlj=>QSa2w3wP$`~)=u9Cd#P3K`{g2zAy>TIeTxZA}Ihd0`N@mZ)NY0(6feG_e?k zK-@xFUHKreTJd3tHQD(nYgy^--#4Bq=YzYrS_MF z;POK{%5%Ja4?gu$lnqG;{75DY8-6+3&n`C)(iUf{A^_S`*u;<;yZ@;47 zqzk`9;cru4@N^UYLO|}*1MJT9WP6ijN9AXFh%)9WQMBR|@3G=#%;P0uJD^K#Hl{mF z3oC4vtBRtini*n_P){CAPgum0I4j&(QQd7i zkjGsPDQp!@3VGVyXKBnH;`yUB@7dO*m}JR7+)2WUPoEUv(8X>C>5e_03^wvXg5zOA zHsM61>=8`nrpxZb5;b%)x}~As{YKZ-V??iN*wjGw+c$w%Ip`5M=opKWtwgKkz- z4!Op~Y&?)7n|&qOH6QGF=#Tc;J2kbk?A`)3>0#m%@wGZE{lwCKw;Y<=EgbnxboX}= z5UWKz$r_`r{G<3LU`<*$JEXcuDyS#i&WH{fIkYNiBhnX^65RG}caiyH@KJ4(w(EoF zys}Na4EKt>`c7&&yo`Ax3w@j_{Jkc}7W!F<(;97hwJ%$e981Dewy%v#K5Nnw$*bq! zE(#v@7Js^b@`**QZ#`Vhc%C7pdH-{N#_9OUsDfMQT6OaLb%9~g+nmvHlw%p>noGWI zNKeg5x5w=O(qj6z#rcha`Da=f85$aZZ(3h-g3oH0AHQSnx&GD^stkEHc0MMoMt~^= z6{j-6Q~r%6`Ap`FgST?KLn9GeQp3_FY`ijb4bZT#Dak!NZ)kK~Nt*hB|HsJn6Z1kMQfy)oX5^K>V-Jbn3| zIym&Mt}CM&Gb=JVaIUc7+G5k~)kSi16B@2R4Cy)^mJSuRp&a%nHg0((PDO57ZlEmE z9~T|L^5G-|uyw7}Ph3;xz>REAlZG>L!8E+LSW%((nu<#xDyWow<+LJk;@0qzw_Jp; z^s+#8)q_GTkaYeO_Ap*N~ z4#gRC{mOa3RN2$-_IwJHW5^Z#8Jf3R{G+%|Ij3i&uD9Q3conbLI6Uz5A9&=HJ+5vv zOS$omx#Hu5k}cln?(QBWxCD2HU?I3eg1ftH++pJm z-_AMr_SgN6KBxaaV~yv}s#P+p<}4lC#RlZ+k9hMY?iY*4DVcZ9NaNLyT5N(Hq@kK~ zZr@vOu?HgbD_eyp3Xjex8sDz>*Cw;{&*!WA&yzL#YSeUU`O9EaN=K1y9!Ox;&5@gA z-+r-rPTQWU=k*%b9mp7RSsKlsZ+GRs-?HL-bAOI~DS2zTgwYaZ+8p~!n2kk7a(dza zX(Rs>cmK$j{%s$MigSPLW7*^EZ61lGM)~WDbYH>}WnVIOER~cL!04kQvmMncoL!l< z<+2k56J-FT5F%HH_hpY{aOFe8SWAi1l664N5!(g-^#q@LxiB^|S`l_J?lc)I(hgx} zlU^X)Mi2)O%`UhW!1n+i5W?n!91u!3bwqGw%CXRnfqNX;rhknK#}mWexJsKsx}YbE zsaj3>+j?l1vUq;wAT-qY`+&1l?%)oy`UhS8*an3SXkpICzDUci3?Qt{N8s)!DRHbN z0BNE;E<&yY)_y~a)lR*0Qn}i*q~j|Y4dt6P_=b*`0xfjE#4V*mKJfMv8}dj6?NF?Q6$%y)=zw4$0KVxdgg_mU zK>rIti-d2`1|-L!FNJ`kd<^l9^O!%TvqhKioT)@nQtJK2xccUdOCVCU;gut9VDs*U z++rQoZq69Mu-Uss73ufveH_op^+@hr)ip(@|D^UwiC(U^MgIg-HMAf>A}W zr{jE2r)ub%9mnA-M*yJ}ig1@l?#jEXxBBwzaV_2bI4#Ioy#3`YPN?k4yFrF9_pi?4 zpCb8x6tDi+f_>to0%-JYz>-Ev_tVQ)Sb25>el*dG>{csoUkclHYpx~6Wkz%buU$Af zKS;-pFY$n)L-kjgrULY`M|aEa47qMOLKkaYG7~rDj&ga<1jQp%eJ5y#9vrzI!gO#r z15nljd3Hx;SXq)$ZDxjk>~_k5#;Sn$_y&n`P^U3UU#KB#O~d*-Rt=XUt8QO$rfS&P zg>c3Q_4`;pKbm*>-Y?Ee`WYDsb^^))`T>v&_$uWs_%lqod?tu#KN!nfiSr^>-kh=} z_xv^CV7-(d>t3bmFr(EiHdWE&6u}RqZv%M{Q`a$oQ%96j0DDqMEQV30yH?;x=YuAA zrOJ=g-d$Mha5D7lU&#YoJvibG8_O}Y-r^y#Y&p4&{W=X#43nvOIsH@c7?XHjd-Hva zwo#&gkYfH$P=Pj6^lhMy?})&^ey&}T&sfr@_4i+IR4*=rL;-X)|E^2+Pet-yEbc!S zv#u#@MWBxJws}s;R-d)*Fw^kWKC=NSSVcw?ibe{VgZ2x$RYl!QXy5RJ+kN8j80#}9 zOJ}hPt%h<3^-LC*Kx2f@or(aQ4s}x)QC~e5Cckxe^E2f$uYZ;uH9YU=pzlSNx8vKp z?>iS;7DZMU6Bb#5rK7siHZidqc!%;@ZO8%M2T}$ zJ$Gnef16}#pHI;tXcR%A!ml~F{K1J0hgPjpkUxO%MiHDcci53x5gx4^%8Glwbw#}& zK&{tXlt5pJ)o!b2r^HD0;t9nQXJ_!ILS9XMU3@erwmjkgHp)?_0bl}7Nq*8zn;1=w z`~6!&mfnH=#X)2=0JU1RwJN;QL2su3(ZWtn*`ddFi-$`>E+>6(Fi)_^Wj#|3`e5){ zYR~119)wuaK$c$yEGzb?3n=kVIJ?|&C&6P60MJ7)4nK7JCH9HG3Wi~_ zEF)uHLU%kSj}2C1(8q3F}#(6Ti7zW>0=JgGh_=aKU4q&5!ih&aWG$x zJb>Qx)U_cG;$SKep(Xfj3(<6O>K)@XekuUb4}$+!x>m-3Gm2K|+W<>=lK@Ph?9QGu z*sJmj{T{A=E|MhX(8f1Cg`KP2hE`!nE+fECn7B4Q?WP^VXTjcKuT5CZscnJsZNjPT z#zt>B=Twi$gP|3<0}k1YuI&feerMRVND^e-=-)>Z_(Yt2sd{C$*0&WUw}?8FJVTv% zQ!eSur>_Z3Z^b&@`Oa|#L{;|NC29nvOXO*b`*F$vY?U@%yqL9PJDLq_c!5%Ti5H23 zbDZ9%(=CPDH!D0w<%CVKR8PwY!FMy#RYI@^}eoY!OQ zxQgGE{2R`n`T@v>T!RG?E+0ewx8nPs5=DDQGiwWPC(plpjE27KM`fGR-__h-fq{DWqcqInMV0-uhD_j^`E9j@sx?g<0oqAC3!!P#+-S3sE9# zp26L91tce12CX&vrKZ^Uvw0@7uLE-KgW-~enJ~ogI8<#T55a~D&;*KS%3*YZkn<4^ zVQavW!C=oJ5PHY}xIh9g@DA_|h>Kvy9?yL6Cj8){9-4gE7O)tw#UMl_?F^2CbzDKg zLHgVRF%d>KPFYLteiIA}8`>OCO9BL9*HUv9s`WFMa|Km?#zn|G@(7AnydOxwyrPOpcxF9dZ#xI}A;@?BT=G!x(V)BN@hq$AMdq z*+{d{OXDk$V|8eABg=wyELd6Q(44(Le|6Pl#ie)}mv##L_C9xG)s`|pwXUC{5ppYC zJ1Wk|lG#5KnOTidR_8FYL_4n%_@RbcOtqHb-O3(g+(Kx6M_}N~Fwl?Q%gBO>Ija68 zaKHE`TdKUhy=7`EIebpjV+&~dhyNtAP;6(cPHSXW>OI$D>eI{nC;4YMKd>$^;^4_1 zDkC&6XuUc1Gr0Z19zG+~lZAxRSmS`GTg{*bJew~94FspT`pcAgHFfb(BbpVfv$}fQj^35Hm|&eJ!kdd1xf{Ffehb zmGV!htoXjiRVEkVw|&;g>;+C>eev8%O7p5=+`<*8QXfbZpw&OXefbUn3olYGLcpCO z8V2Q8pZk?+XL(6M&g97YteI`|em{$=zW$DkQ2$(9O4Q$KE`Ex!PY_S!qTs5G@CP9? z1P&xWlovq)G-?kifT9Pt2fAl4$Pug?{0-`X!~oj}^#^eRgdAipcs4`_vKN9A5fBc* z`w1Xg4*dgz8QBXlp;S+HLaX6G+NO6b0e5a?Bw)gbjZajGo8P|JvOZ40(Oik#gpaZ* zQdn-4mP?mFzfU zyb{yo(N0dDZ!ABqP9;@zi#$d{CYAWJ}-J>`0;6kNN=qHe9 z6NH9zUv=|{Yu9t>3d;FrzUv(IaT>^6tShbmCCH0K*p83OK2MH6W;o<*Ofa46=ThwS zBGtf%H)Zz7t>Q7#Z}aw;(RCU;sM$a5s8A>jk20GMav=6|v@?|XC!W924)}zL zMD13R?b^f6?tWmf<;@H^K>{Ha;5A^3;JLHxXS8~OV0w^#2oGpL0RU197n~QS63}`D zwr3qGJA88zG673mprjz`8de;HbNmUVU8lCoCu*cuwW92Ro8= zUdU}OT5Lhha%Ddd2ZV@BIHa;s?|$4N!xH-BR876>G7itEwa@F-LAwIsrzdZY+{H*- z=#vM-_`N)_TPF7V{0^~3ylam;+@-J9iv>v+V@y3UblNW7nS@{(0)k%TJXtZoW?o{j zOMYsh-R3kvQ#Ts*9SpwxlFXcO;CTan&Az103htx!6`SFC!uD(j)2~KDz_ZpyP!^Yx zax%C^vIb4948q>Zm#%=Rv0Ho7r#rZ(J1JgnA?k75c>(Z6lHl%~qr28Nf6R?@Xvgcd zRqbSd&?49$z%yc7n6DU1|E$rr#I#y7QV{$By+Z3*- ziunhW)?yhtkMpJPw?mEJORsQ)hU-Kn@eT`~F^LLKPQZf?d^20RRz`Vv3*imddu_C$ zBU-w0*@pjN{gBsUqFT%4}h`bs-K{+Me-*W_28-M?K!IxFXk>P7c%fi7zHl z0AHgx$QR5ULvxiO4Ib>ICRwgRjfTg{~TZto1ZH>C|BzW;{Y$6Q)j%$>;hWNZb#nVG`Z1P+e5~RO~7Q zvaM4Ys_vFs<`Hb{`d`UQGaXDyUH`Uy@PO=eUigiF(A0x}Z~`3YRPVTqi{RQ=&*zfh zT*klf_1X!E;9}&Q!YB6e+9_fH4wSij?I>Y7`t5JUPI4W_`e&WSGVym@mVi!iP2n4Q zd+nTnPI~6){&b&CiS)#mQ2VY=y+*F$6_Gga1Q&e*V zF5(}KZen&7TMh|9<>o!hT1s`6-uLa|T|j*2QTNul6*83XBGxv#hlkEJ3c$4hVNbSjQ<(Pxyr1DN^1WGr8Fv_{Fc*WKK zy8tEi5ul@{`i}ZQ6oRQ{JhIOgee#{`{jVr+PnJN@3JnG}1nNis^A@K6GNt|}fcLkW z)Sn=IIdIj%@o~P~vRq@tcV`D;P2QLRV4Y5fIhVG=X;T3o! zcqHCdV$BuaHzD>$OzB_;z2-^~5bQk+zz_W3lRXGPa6hQL9_$|&-jcn-%y5iBCjddO z54j-+`R%K$cz(*eX=8=ds*3R)3~cpkSaZufjvujPkPRE6=jQtflb3&?QZ}RMa72mE zGUn`x0O4~-o@qSPKh<_*C3^3k(buYwn_$tT&^qaUTD8`oObqWUK)aH)6&$gLU0cpHFaa>Npf7syfyf=u zOu`I>)}HM0?QjM=Z$vE!M4{GJ#T3>~{^m#cae~>ZpCJ6zr`O41PuLCG)@->LY4b#7 zZQgvdGO?)q`{!3MtK+wGu~ZuzD%`*HHHP&isw@hWeXQ-;zn{9z6CfxWViF)1@sav+ zlknk))rcvl}&;)bU?oJHo5ZJvwwz~9oe{XQ@zH4g|uB9;-niJ&B z(iz#LSX_1JU)|5^aQ6~Km#INJDw3R5xq8l@aL`+@LpdrS%YVFHBR$Aa-_Jnux)!)_ z+|s`Fr0&}c-h5EKH++YkjDXzmdzCVR^?S7f_yR7DzZ9Z0F3pEBc(`jl5or1mA?)5; z`o1vT8A}ccK3t#M+xWjJM7#=8V%oQc9SkE`_*#T6=OP{Ie7=9j@A`|susYQe#{x>h z9zOir{!+STpv?JMh=^0pYlI00PJ?Zno$It&5xPvT7CF&}giiN2FYVtuSu z!K_$4Wyj4t4>z095h^DQf!`MXh{m+hanv7}?+JYg$^QV^Q2~(lFU{fDX|o0mQE~B) zjj`3UO+HUNf990NLZT;OEsqYz5Id0)fSCq)6)h3lVENBNKZv=JW59QM*qv}&kk`P8 zz)*szde{KaK%$58JC7hiBPu5_ZgA#&C^>NKVA~#s{F0JG1z2?!)_wuy`~?jTdgffF z4=<TwJ+KuezSoVHcdUZdb zf;PNVwhC*Cnhr+w+i>~T7u^Y0!zkx$X@jkz4r&xG`NjJY@ZH-xtS{7OV-|F+5Lr%i zS@V7Sdd!LLvOCMHm1e*Dy;fF`>q$*A%tGs_0A@5343!1uNW!};6Qxt@C(a}hA1qU? z9X9mEk^SBFZ-hVGyY_z{EHAS(iW}WlxRQ(Us&SHx3Z|>)`Q;yfpchQOMZ|y?o}_4o zlNX%UqYJv>;EL;f^@fuHgx{joM0LA((H8vEw_Cd8bl1 z?u2KoKGH9^;k5Q)I1>wWVI}GzEv$GAv8>hD+BPFxM^h~x8E7~`o=Ul<>boN z_v&Q^CX6z}c;D;mAkvwhcZsid>z?H;aPyTCjd|awh)HI14)d(E;}2y>f5+RvnWo!$ z2x^kt(X8Ok=5?;hp^BrxTl~)5>CrSe7snD$h1ZHO+$gb~qNf{sl3<@6YDd11u!&wF znUOVX)ok-(laf`OiZ76gg*gh*7W;7%c>)ny;yc-+l&E>fz_M&`8@ha85jxii$D-pkv z+a&cWZ5N)bTI_JHiL;!Lv|-<6>hr1~{$;`5CA(L5#&ujEy+>Me2QtLS;hmr-!{!9y zQ_Qicg5e?8{S3uCYmP|c z{@pSRS=5iBqt!zhB!Rj+d-tJeTfZ-2Fa7``E(bi>HK4cu8Rg&J{yzm?SJ2q8snwsr zo1-@A_^0~1UAbIQSnHD)!4D%Yz*$i`g@9;;`6@%skOG0kupN@He5!D&%-OzhzC`jN z5-lw^f%_9UIu&DQick;&dIS--6WBLM2y$+cIH%7kL0s)@cV6}AkzWlg4#vmsJH0o( z{7YRESSqva~6m%;pX_Era7Lz@wM2u5mW0`c0@B zV23p)J@ofI2kP#Uv>G!p9tfTnt#-duVM|u1?Oq|ZjTcD7)%5epvB482jk2WeUhD58 z2%uRAwDtPQ$WSO49!$a*ppq^hKJ(N~{p@?-^$j(td?26yZpx?6YoJ2kX4j*KM|#}E z@Uy0!PzDRDDKu!-i6J9q!QXeZsKzNu{Dt?n{5NDBY{UnC$5CXmFF*ac5c6H#8%Mos z=j|kh8f_(!c&42~)=Sq{t;5-EzV}*F%a*0cn*`t20O^?C?$XOb zh8HZS2N}d$~TYorlt<$poHjyfT+{hE1}9 z9c2|B)JsPr{v5P!)Ip}cI`|ze*Lv2jjHo<8OZ{9|nH`y8w|uuXDtCTLcfat5C~i|Ygbo@A=u}4QzWPvbfc7ci4$IrFL96gf zJv$7!x54feby;rs?>)yfd452F(j;`{n5IJ^lFm`TjGfC-Y2+)rL@}FV9L0Yf0}ZrP z`Kr&hcs8!go1Y!)oaIU#DZM1)woMiZ)n1~=tV>j_;=B$JCwWg;d(S-2Wi60OZnC5O zD5(}=xK?XuFY>)qlX#uyE9(~JX}#}D&r-d_Vr>a*r;2K~-40N|4dD~qPgU=D{F+JG zT`ztnh&KK%TXBs~WAIqAU^r2ZEg2}jqgfK~Jw8Yu_%_-q&IfsJtbJ17M=<~NsHV_w zIR9XNCKsh?`SjPG+BCB~emM|O3;5S5seginT+QA7EZF$tn8r0m9WbOncAmkWb2rry zQW=W`^#@5X7vaQ8d=l?~LSqt#5dMZHV#Is)%VGMQbKRUu8~Q5}x=AqmXre`L9Fk#B zUkC*P7Jpzchm@TW_k4v$lmgebF_bxB@<< z5rKz=*weQQY-lxPcF6Y^`q{Hp&hLX7KREj-sRwu2lt?J;x%~tVPNVM3^BkG-qt@fC z`Z6U|lzT1=lZU!~xYoOC#%Zq2p($7Xsrvg<-yAI=V(VBctd}%KdF;IsK5Vn%PNZ_j z#@FT<>hti@TFNPnWmyt6%l$63nRgTB_6vV3wR8{l88ydUW9dlUi~R1&^V`~oQD(ET za@^aq&ES5V^91MZTXs6@y2ARQL51&FZA355`>>onnw} zfr3a#Ifpn5SYmPtBOhkZyajF9ak=Q*r=0~BemsdSvggDVJuDVmI|fnphyr+kI4!Up zP`ThtL0OrlIS>xu&EP^M){ec&8m01;cO~yEBVHOoA0K4lnFc;|Edr%w<6)g$3?vV0 zi)+<(vv)_fwUw{FWDhX~K;nOU;m8mw+Et`GVIMaCI1Yj2pStf`K@$)PE$%93QyPL; z;qIH+liPQ%?6eaE@R$Y4=;Z3sB*|Lw_tjScvx>ustPX<*!Z~7Py!N%lJ&E@;3L8)J z)q0NLHNQP;PLeaV7Noc6ku$EXGPyVgnm8I?P<<1S^P78iQ@Z$(WQ(#F`trz8gI9z3 z$Tj++I6h$DvK@nv>L!h{K{}K(P@;Y2Y z0ZxTMq3Fv2r%J$mtVjk#Ndws=OcU-6>3Z8Wnj0Al+Qw0{bo*{dmIS~*=NAVJTPQ55wOLjel#AkgWV84G)ax!l$b%fR~5m>=jzc; z@zk&)j`LohVry+4Rj)IB?N3p9apcqD1}SUuWed;aB`UWwnT<7;1*WH0}`VoXN)r1MYrM z&pEyG48a{vPHbvwHk1GO(M{)o$@k4AKCq*m$|0cx={4~FflG&AUk3IqCl_fS9kTN| zBJfW}=irM-2?pw+fB4rCxqqtW++FMpZQSkulJ*HpR{T@V4QvkQStPUDC+Rd4ezc}h zDW>~C^ta%%9pIqA z2pBtMbKE${@$?uqo1UjdE0Vp5LbFdG(t>3tJ~6`AgXHSfcOvG8Aj%mKgk|dG0}}lK zQMiDFYKgAy?uQCHb#4k@m>_K$Z%li{g%akh2--LD^ZIs%%5Hd|OGqD8rBh2vVYhM1RHPr~jt=_@vTnrZb`;64S`+j7mew~>iU|l; zJdUCH-DW{x9H778EDpxwmnt6$rMkPK*qXeLw!(J}RUSf@bfVsy0svJ*t2f=O9TO21 zji+C(Ph7TAbLA~uVK%jbh^LgUZeZwd)Ipay`eIjlvc0BKfrYOFWY3YLP)XHaT z-?{7*cSW7Bml4h5`_@Cyu>V+(OT?7sf4r^SK`QR8kG z;h8UFm-kz=tdAXTtApxUw`$ajRz=xnE}C^d~OkGF;YIOFL34dn&CZ zE!_vj2Usm?+SDeELZ_6cv5meM5?ELhf(I79$+2ga$uGOZ1^&^I(=&}Wy#1pE6?=3QyIRsxi|m{|Z(8rkj?{)vdpv?y}t2AV(Z zM>97=m5Sn0q-jhVp17xteH79we*G@&VirZUAbVKpba*u_?IWpW!`oNkc8uE)VO2-= z)xrbVSAC&an73VKi8}6tB8M+@4wvNcGu8AQ9C)@F=Z=W5R<-@1HIbePETp44#D#lM zy(k%?Y0QCS16`rb01hwMjUY_`nHP!!^FXd~0Q?;|OFUlWcyJz$`k1T@(rar$r83#= zg!|8*X^lT!y*n>Zz3tHX=9l1H24v`PR?t&eV`H>9m-}j`ttkM%8!_5UQ2d`;@uIPQG2TE z3`cfKpL5r4mI=CQ?gh&@xx~Tl1p<2aAq2{C>T2RR{9DZ*T<%Z}CtgdK`pKSL+~b&R z--pvy!;!SB+`ZhaT)wmUo)w3EntVS4*Zb<4>y?);Aw z#{Sm`Rk+&|lrVal(+CA&_JNqRU&AuK688iF9+0Hug3^N)drLIb$xB^thVD)->aPP7 zMs{b+BO<4@eI_C~huCA-bQ-X@QJQ*?TfjjYUewIc@x7`*hz_V)5DJRx2fi5`>dzD; zVLDXiQg}`jC52SJ%swkjpA<~G***9SE6qq{Eq2>BCZ0`O^FQv(#xzX0ERJYE2m7J8z$eE-#z3m(E9(hw4L_;|I6+wc0%fYX5_%ASP zKj$bkPyOy3#?h#O7yLFX=n+$)v!2sq@V%axC9UnS8{KrX#}|m@2SMD!^6+6Jm>7WB zGK}LJ{s#96O9}Ro0*GKgzGeycR9AB10l(wUZ{U1lfTqcL!l>M{---}xpTIYpX=-h| zi>Wg{!(XJX*{7~yWtLOUSV1vYo6$@l!?EmWN{zrZCA5ZsZ zmK3D?;^6+bmy?g4{Y)_Mex&=9w9v)yT$oQiH1m4^S{(R^&P%KD=cj(#410^LANDG< z74C|+`w>pH8v;+@FJPp!1}`u~n3siu8462F*fIq_R0HJpGXmePccrbeXWYJHSi61Q zuokl|hN8HE;K)w%^uGL;cnXUV0|MTLXT}EG1o(_ zU!{Hq4EE;@_QHEVbv!dRJ=UmH#w<{@Pg+1>VzE$f;+pUro|0g)L~E>WYW8Y5fzZP% zhZs)nCf%IJLAM4`w0fWu9j@2#18vG1pQOeyuPei*=x?2ItU}L0_GgAHPwhZS`_qPw znqi;8(#dBFt(Zi)yMF12ovOASm;FU^$CZ_poIT5YW#6#^1UU!l5tsX#ddSZ=AcA#)%! zY|C3%MgyrmAQ$H$I`Ow1l|ngC9(Z|!zklA*B70>xZFW;uw>w_};vBwv?U(3SP$ z9L2))MO)swZm5&jT%y+Pd?rX zI@>yCGINF%jX_eoqJ(q>?jmQMvO6Bnt$0@VZ}+qxda;0N&l}t@$cn07S;}Ce@{Mje(U^uL|!&)Ng+M24SEPQmqL6Qal;+cM%StV73fP`Emm7CGZy?L9lQ$V?$fP|PH8$hnsxI(cOU0g z>9Vsz=w%h^4aO0M*!QlX14awPLelC=M)X_5+5=R->2!snB4yX|h@bPe`0bpAtfi0A zFuC)UJ85p1;56wX^Fw8&m&0!NVn%S@`_vKs8taWgFQ-1m=Hg&0yuY#h3Tn)Rv(I4>)~D_vsHX~ zq+_{5>VT~6^#v0A@vXEEA0}7_h)e>&HbPvrE)O#x~TuOw=~th2QC~w_{|E zDd)QHGecC%yDS zS&+5+lI0DSI5aa=T}NX!%B-PiGqHcph;LKG=5=LR`5{H8rV=U461G8*?~||G{GL-^ zV7a2$6KB<8ap}dYZ0BA7+^9ePP7=p3q;@;?Gat8jnFQN9tdj zWB-)^`ae@zcPC31W6+u-Q%46k&_ee=?!Hm&KOHi|_DA-wUvEEEd!c=ID~O6Pkkb|J z`-~Y4kY2RNqL=shZ83v`rUH^2xKsk7cscauALjU9%&Z+E1YXyZkqi{gEVwF3nAlg3fB(Hw!VV6FvOd#xhrba zk@1}VwzI~+zee?Hh1HCvs7P12(RUxUxclbR>Nxzq&o}mH>euq@W%spZXg9sx@B6iu zxyVv|9)7ecpz5$6zIz;Js~aE?DLrf!kF?6EPTOc?6y?~OyIHrQ)B)drPw4x3@8?q8 z*9<+ylGG=u^%92h59f#Y)+?R>3?TRe;wiXcFjG%dskP&jBjiQULHb4hJ9vTy;xP%# zi|`JI(yl9z2{X5ubpZ1vsnFn|t3`{8d46{pu1tLx$CkRWYW@E%`a z@$!QnuZSdnB&v{_q{`zy{1KU;AYnGe_8PyrB>x-ZzBfgHdf#H`gAXcQQC}w3(=2=% zmbV3!p7illia(7r=k4S&izW3M-N@;Q0NIT}@J35Zt&LRenCUT&_n6qOaU{Rm#d%Nr z`!E@1qNLui=&k-f3*iji<8{Gvs=Lz`j{7HDwfUTgf#1hL*qh=MZ{H&G)Q?}O-;;iI zzkH!fAw9mV0jl}aaYPXUmm`78+z$asKNo&oQ27zpIumD)%5(FNSD(z>KPtVgVZRv$ zaQsSJgL`mc`<2#@aaEF^%^)#X6Yxc|F@Y+{5OKbIH%+tyYkM#7;;-3!(~<8OO`wPH z<6lF_fA!h^&xi20)WhFeDCU1{I&K7E3xDxw$lImw3_TYe%u!~17#qQRWtnR1g};Q6 zV%73;T64N_)tgyXpO~KvqkIa1y`=lFJzYfH6G|EY)myYJ?@!6+9DxIzgA=0kwg90E z-j*hbvSt{#ptJ{13|pF`13{;WatTb=2=+8o7r@93W9kHx8)6B-^n%;~(QEJ@km(<4 zLT&R6h=1bdMfsK`GQrGQl}`$zhCvF?A47V$p;P+dJ*!oM>MfIAu|89mY?kX+YUE*d zGGey*0}^5;dj)LHI1I{DV{!`|-f3kSg)S4S-S zl9;2Od+TmY>hhe5*VYI=uxwm*3{QW;sT*#>TN2zRi;q?8AW!#NHfwP4Cbjqt=6f#b z+>;b=EWhr+G~d~I1SPu?zmyOW;e=Q|t1N1R%c3Y@C)L!+*MDrP?fARIKu7cU1Gr$w zJpkhYOfZxx+_*#H9hv~}3jK5dp!!rKuHTmh;97~|wZwRml}|f^*x>Uzz2RIs;+Kux zfoY7P_o%?N-JK}Wm}#I@SBY)VTIRymJg>cz-Ln_fg^pfY(W|MBzp&|D8JnAzTT}+2 z1_^AF9lRqav>o(~?>-Z<`z`SSC7&Wv_J6!B2j0am>1@E<>3q|C8Xd2(d9xkqE`4=$ zAGZ~quP(JVS2y&m0I`=eHs9?}g#tMRSPvd=+h`?AKF>~6X6LxSb!4uz4ryh5x2~$6 zbHbdcv2-__JTqJCThS*6yBLmHP6m z4;?Lczx~xmXbBUyHv?HM*uNHo{{vUFa51(7<>#RFm;Yf~$NraXU0hrsUjQizOJ2&T zK7X3Cq}2w5O2pUwIzLx~jy)F^(g*p2^_rF+f-D}K?Zq0MLk&^yX8119^8K!#BtADT z5=Vb32<=e~dY^4&5Vr-&lo@&v0J9b<2}A_3eSoju9LH9|J!O`@_;lK2NMTZ?^5*cw zV>w$a=qNSYvQjkeY2e1rRgcW;m5ex)ukY)aNxNE9p9zf}Ugn*DeubRW5fbnc;+r}Nc>N3P z?eCLhmjywTUqBc0&oI&dsL=n{rTmGe#@3)s-+$t1PEs$3gY{8-Qz;))EYeCO=BvXR zYKbrB6*ztDs)ZFkZ(UO<0;PW=e z9Ke3&1hopp7GF-eZRcI(Mm(xt@#JZwapg*=M8|0+6d$Ru&>6*q+%qA*1ENHT`_;mz>Y5*(dAa0 zP;i0hB?1fEnlwn^`77O*6pxqm>dUBkHtITa^xf8-LX3Y97ZAdr_amyU62dJ+x^ap# z*R1EE%Is`o_yL2SILC9tq>_7ddGAlhG(2)!lkaa;Or2TLMK7f#x%X4_!LM&pLkacn3X_2TR(Z;7vt*t97|-PRsotxzqo4&+aa+pybKL z{6F%?<63971mXm_ooO3;jA?oXwXt>Tvjcd)^ySe?w2J0QWg4V0LLIk$wq|WGw5|$x z9we1&sPv{q<%!XeM#8^tQ(>l%MiDpU^`k^Z0t`Pz<^y2s1naqyvm896UG+ZU6M5Wc zJdR&yZSu1%lgn+J*#x1+A|_uOiws1zu#40r?aw0-fDHtj_WbTa1S0-`TI#_A!UJJ| zBtRY@1rVgp0mKKwIw2kYekkfeGXmFw`rhLWpa8f7AOY||1|S`f3dqEaLrRVy2SF9= z+9Ubd(o)>8{+Pbo=A(8-vC4L%T&zk)qL_&^6MdRpr302UtMxJrN5%x=sFf0#x8YAL)0Q=N~K}uI%3R=85|SJPd3tqjFvj81NKLYLsQl4p4imooOmzz$V3%+54ldlhO(f)bLD?8kn5>kEwWGhf<`}cA?LoIPTJ8VuY<}V~H0b;m9RejbVQb}e` z@lH7VJ4U7|KqYGb#}r~K*%!`n>kqEmlU%{=xPUdZBt4YqHh15FZ9Ht}i^~knx%tR8 zyy;R2#TCn%fLn^fF5i!!J<@59XV{POpM-J;1-v#Zcbz})7JL=e8(1gZj-$K28W>(d zdWQETQVK9dAWeWXzC2P6~}>lpA@G z5DU1cd5rbCN_Y{TTp3x3X`0rIfb`>NlJ#@9jPCmLTf+75+R|p=ygqnWn=h;%$9hQZ zITCRG63kE@bQlHd;kZ|SyHZm3CWT93!NCT&7W!di3EYsO0YJyrqp1NpYFkuGKx}w*? zioY3)wtawfk@-!G5M91Tb0PV_MQNAy`|eLHK-j@5_a-*Pe*1ZS{M=)c?vjZu9 z(thhw)8FQv@4WWWi+{_8oHGYSa(MsZ{fpMB0&z{sD+`rhqS{lKc-11^>bj&O%xO_G z#NG6&{mnd|V3$tct3Gk;z^13MA<{(2#~RhkguHWK@U{!O7ZPIq?o9*(p=WQ+HvwPm zo4w85W(0jAckO8bdbi{nhnaaPI=ttw__mMd>|d*WU3ox+ti||5I3 z>|+ZOZCP$$hB@xVaOrUGbYEG?yxC3?rMz&#cPmzu?e4v+{+$V(>_->yg3wAi%zq2I z{|{&U|95BRwRG)1s^bXOW8cmAB534C!E5dPyoF$~Dh#*!ARV?rO`2fd=DUPEHbKv3 z*<6j%bQOg2EA%T1RO|rGcBn)oB~B4#AF6x|OCL@NjQ`Cz7wG#XU%lnh>=Eut|NNI_ zKOVl#Y>>3|`y^LA9|ncAi3dhuB9RM=%uuJ89Ucj`l)Wva1~`5YLl0*@@e(WnL}`#| zPi0R#$mhBO@Qtt@pdT=_qFV5SB!h*Gn4Ac>L2R21m$syh+00D4 z!F;UQ3}an#be1db*5ZTfaP=h{HVbSP@zeX+P{fSBjf6;g56M&XqtmfvEYSukY84y` zCJWojDHW%isNPa3(yhRDO4mYKwv@tB>u-8H+A=0A5>&WHhp4JiZK}-liXy!FEPAG6 z%-%8Q4lKf4u^}A!d{TxfO?DaFNs!_>%E!!PWm(15^1!kEEe|5{voqHupb9$N`UoHA zN}ay-%Dx! z^Pe=yNw+7?SB;-B$4XUkEkIIP0vXG~%U{k2HVozv<`8CPuUkBI43|q3I2AJ-(zQDa z+17{gFn>B1iED@Rn5W^g7p2K8LZrnaz9{ufm$@BCWz3*$%+xUQWS3xDr>ajq>-^d< zU?H1RCg-?V$$}I^jMLIgw@Ffe+O8 zTxXVchB{LXY_b@DD{Mc@_9z2TPBE%;)^s{K5-OJ*dLwmVzXn;NPd4wp=nPU(o)d5I zJM(|7sFZfebe+aq+?pigsL6?6SFy|6;qk79qd9<2WTV}Skv_1Fj(Km648+x|Ck>z_ z@0#o{;f;_s;njN9LBDJPO_?Wr8!RDbq-ZHN*+B2_=wImnqR?HF%VUd~rTIIuFq~6a zRA;-8TwuJr7Rpmsy}2ooU0yQGQ3J-sg<-IN%_x3HB|giRhj#^fu^3SNwDYC|dvc&B z8!I}@7Vk`m-CLdLw#Mj2-dQfqq*3{iu5=1Zv+A93y1n1VHhJPqQb^tBm8ce7U_we@ z1GT*O!dYVbB7Jt}fq%S6#5JOriIlw=L~q;=<_qg`PwIk&!V!be^hq%WxoV6)95|o}z{Y<}!5-;_F7e=hs_3gRk*--EKNZjDrFV}EY zM|l;peEecISp~_H?uq=_zO2E6*3llJ@2a!06WMW{$!A7;hqo5~!jq=Or=yW9KlH>G zX(y-p;~suIi+sEY++MJo4mH6tl63Cg#eg(m^_?l6xa#)~B!U-+;OPA3>n)W?c6#p;4^(2V9l2k;4#(U^ z;_Jf)QH_we`tbL%#_%WSw_K%FJ3#l z^82xx$H0Lphz)Mc?bulmo2K>`z9<(Uc2TtBQX-OT19Wf${&FA#^v4U(AGe@8oEiJ@ zFBZ3A{ox%EH-oq)BD{8fqdNM{eRlM#0uF%35M=98I#Q>F(q9#5w-=b4`8(hNiMu zFBH;yx3sxgU$IV*nwzC)O(HS5L4ZUj>E%mj8W!O7-t7IaY)lS$52{aoj|J=ksGm@{k9YGo>1g2kVTlbk4qWaTnJ8S2rb$fZNN_kPd0=e$+#zW1y9cdx2cCF@6i z%;%XJ&m3bGD`44vaL=7ELKjb8Hsgo!piz4fptN%C`APM7Bf*?F21{V&JnXAM2o}8s zBI+}o5hyy)=x^f`{3O4t58nk|qzwNlwa-5=BUP+*AfAmzSKon$#k6wYhI&Tlx-yFH z-qCXTc(gW4bZ1OYtWoiP2UTz78fsjmpoP57n8aHBEEwtKXLAW-=}F*$V8AzY0nj9~ zm?_PGeH2lOEo%t=pmD{yJ8oN58a~h+uhDk6a&a#9G|(>Da^I6#w?9vnX;>UzANkeR z@AH}ZSADZalj?K=tk-E>U%BRxwu|$I!nwvmLJij3K}W*))3W9JpMwk<1dVb6bWz!V z+b#bm2;+YopX}=IpwQYN2YBgfed)k|IIk4peY*_BJew91z5OB4`|NLS5nyEt z6y1gM1@I2RqUP)I=i$2RlWV3F1(dya(ZT(-3K?sjPSu*RU|~vuwaeJ9c zxAZW@1ZpobSjh|-A{#>@=IcsVq6o+2e1B)>%J>?=&Nm$9UjG<}pPZ7|FEV>X4I}f( zYGvH`4p!C8-$kR1=+1DTuZgB%cHtpX>TBaD7};G%q}3pL)TD`d(}XpWizR}C^aw3Y z@7B~P1$oonsFO#LRHcw{^+Fvo!ygpZT2jGpjxpZ>Zz*8j{-n0fP#p%iZjo>PK46Hx zOJrv)Y+#*wIG28_LM|VQ#}m(GAIpVN*PZ?|t;sRJ0Q$sxbt*!{*Qy$g3#{!m&g~02 z%5Mwrc|S!fZUhWA3J=&O&Ze;)Rw6W3%bx3T++Ox74o>G*5=Si(E@nKOeeR{IHctOg z;6lTdCo%xXy!W@q{GUJ(01^8Csm;dKHZ8P7P%~TkYFvCsmMt3!3#YLIvc+pxMURB4 zvy~}>SQ0S(5l;Y8_%+RY=k25G!-c>M=JMfkuYQkYp#;waR2896JCeGd-+9&YvcHOa zfP#CKWHxifNnK2kXuE(mU)nu*JDhWDrli=gE`MR1W+H~dGKDMXfs!Wh#)9$+bgmTW zlJ8>ZqS=DW22ukn2hjm;gKdIqf>{E21%5<93eXbrwd;EG#o|Yn18MTb0IC9^1Kxnt z0$u~kMiQj#Lfs_idBD~fG2S^7dB8F{(3)KEGRw-j*Y);W?R z9an2!Cj?RHh+A?P?nvH%A+5eH zhVkvE+I+8cgf*c1Uz(*Wu!a{Qicc>>^34c86ikYXqmExNxp@+G3!1Yf9)z?vYD^rw zn{N}tc0-0!CAv~t2F%D#6P;$~f8zl20M`Wy7sYYxC6nvJA2-Ci&$?j+L&IGx>n4GN z8$-bQB{q}{rgIXRBpa_(McV$me=nr>jgeW(%O+7FYnR1?t@ zMtL8ug3`YmK2_6tz!C~o*^H-`Q`ii|v@M2!I4X{-MJ%!+yj&i;nX0n^@e>ch#Q1gsXMuQwq=VvNnK?EYQQy*Q z_1aF>&?3D4=&LSE5hRaoPT4m|m#p zzRm1z4pm|b+G$k2A*&jm2#!~}kgfdso)pU-=OEtyc}=D>w~^W4mMtFY`q4DDGiddYl*bp74Mw zXyrk5f5|hkL!m3PxCO@-{`F zKSeTrgmj33aDw@8RyX+jDDA{tdM~LzH1)Z7EM!3MeKHwS7XkF>&HcW+I4UTUIs z{j7SFp^z>Vf_50YT%j!1rg^|{LQmiA&>b)M6hq!P#}z+?%!A8X)1 z=ScC%NqJXQb62t`q@b=&DUrT}y+=8)?WQspS){5zk{%&$&Z+{e7SnD?gQ=?9IZ zcUQsfm>)g(u82Nul~;o}*gkFZLOyL3SA$&I&v~9euU9&d@5L0ic&Fd_c&C1KA_D%^ zvY3x&`SgQ$(tEPvV*tgg{Bke8D)alJ)@}^F`%w%%+Pj+ni)uJ_`)ljDMHGGK@l4Vv zWLMIr^VVpo;Du+5=TnC9rtWE1Qqlc%(jv=qL(8p^*7m3(jIPSV<^CkL?tAXleihH{ zeiT1l_XpY4^@ne#B=<|j1k~kDWBXqvQM7$AGAf`X()!zy=s&f<);5l221frQ%oeDO z+pGzHeskmdWW$<9Ci#Q(I9N`CQrNW77l||p#Hw#mLP&d?=vQD-?Wzd6=k z$R7s-L95AL*mid)2nVu*N}1q2fXEL?kgDx!!mvn@oVI5=;_NVM)1&jr_6K>Abwb$Z z(%EJ1X@h)(kRw=Z+(BQXE%9$?uJBDDb$&oi5S~z;FrEmW;GUqbFl!*zplGIaAVq!< zmo&BrP`*&E7>@vA=Of(Xr$@Xd=vN4-!%!VC4Iof5a!?!k74$Rh^9Vd;s*{F6*G6(v zef{23OQ&5^uGHXE3ix0$~2C_C!9lk-z?uOzqBq9ZXZwrlT^Gw-bAjq00X?k)HXfirdWB-Kf6OMJ0Tt{wj77Z&BJ)4gWaSFp8iaoOcE3s*X-$+m4b#ERSr zc}%;eHgB0zRYrI0lS9O_64P6y+?kFxUW7{Cu~Tm8eXo+u9X_W9FmeAb8y}qy}juHipij7SJl_-2Cg(}8Y{bxK1TsKUg>gpCh#!@ zLeFXw$*{A%>99N(>bvi}=d#9ow1pb|t=Am^Z9i}()!5>@mo1Kqb?_&T?oiTI8Ly)X ztPM&+EcUo6?xRxNB#kCkbRUiko*S-tXl}5m(+;v~4#e(vdbh9we1z|Q$RK&IHU~tm z8I2UI)zw#(>&UU~88e=QV>uzJofa7X5_6%5vrmAljL%{F-i^!D1QW&agF2?EWg(6E zM5frgNL1^t`mTKNy^Uocwe#C}*uf&4_wU|_OTw_u>OF5qRw5Fuc4J|nvI{XZ$7=9zX!5P)tofg0sN** z*uU$}{!_K*KEG9*Ek$SKPl$=f2l7*z5yG=dAPXj#3g!rg zD&^#dgDLM@w<&srwp%z4+9?QpBH<@Eg0=(N@5@n;O>egKBNpV5BP0m~Fp+?EgxzX0 zql(h%f5a2~T$pv;7<=X2jAoTFYw-#k%C=jHMv;zlhs(Vve)|T?BV2LE)D_Vsvc*^p z7Y|@i0t3Pk#2Q!!2tdvb(i_+t^c*Ch+6ROko*T9ec+MAoix>dU!ET{nve-gCqCKJv z^@k1sfV)qZ01=#O_%$$h_tJxwS)_ilM&TfLkNLVD*JdJ$ICWM@YNJK7C3K_O=+P8f zscu{xNvGMGChd;BIe;2M>j4$U>0^NEcgBvtmFGsc^$k} zBeVzSNbT)-JvKH+7Y~ORQZ_~*qx-2^N_5=^k`3R^OVvfbl&$TKwylgz)zK~rs3TY{fMNXGY@m%OC{ge01>OT5i-1YCjb` zB6Y(avsMh6B%KgixRmo=TYnI@%vF#z;P2d;k{{-;W+ZX!F;@Y-H#NxI+5|{Rn+Sjrq}&-1kU1 zfQprdMF8&zs=j4%X}D(!#;bq**2fe%ofXhodUcJ}|3Ub=b7DO;Szzbzx#;#FR6|iq zCYrdyVjoXtB?~fX=2r~m3&Z%kw-vOl`uIXqO~RCAf4xKS&L@pmp1Jm_$B%`bi$zbF zH54C9RWDI_{HG5Ary_}S@e%6*Wkd*}hWr@BFL+TyWup(%`&p;vFGrIid)V{T3hff+ zT5Q*dJ05ENYypq{T7&iM(IR`PGnV5D#)AvQBPu$hPDF;1&r2%ay}UmpHehI1SY) z|Ddb3EANib5uq}-A#T3@;Rm70+(}N%oIL9(MS**a?U(>@r$$D3;2_5AwWho>vzZo? zLyINZInW+l`vYgLDIy$a2B1R-!E7yHCni4YR(Yqpu+N~Jl)n&TOyNV^2YCl`UlsI> zYI^fbXns=>TjA@&b*lsR8axmq|FW?*^GLb!hWo_NRhZ$D%1n2p{>Y`wd!4owAMTa9 z!}YTh=NjwsBILw4@NvuI4gYtz{J|eNy#)xDQ-4cS|J!i+UqDDu9DoqYfEpa*U>2<9 zPE1KarL3)xlVVL7fi6%$Lxcw1hX78#OJ-fPYdT<792kEM)&@-91zT;<8;lE^2&DrO zi}dx93yUcZH84*$+Gq9fm6u~UPH0txNc8kJ4q3avaO;IhV(`-v5L-9G5;)`*G&>0K zpK1Os3xMP^C}7@ti{OCP7LvK!U&gZ;%S!hG!41+dmudeenUo?*?|%AC2o6_S40T5bxZ}K8>^^+0$b!jBzA0Aq zgScwiJjKC{DyAZdIxJ~DGAXJ#U1c-Fh>~v4PTR)iP0+k9VM87IalElL#DCB$<5eEaA zwno3ukI}!-I2D(2ht@(8qf0_p){$5MOeAJBykZSW1?4bTaYGGACrP#3={Kd~;9Ew(MvZ{3?mrlYIjtWB#1 zyfzBWG=0;W~?8gwq)n#X`}&0h*pcUda3^m!rpPf;q?@X^}SabV+>#%xk7qw)E!;y!b+2EPYR}v*Tpw z6Z&oow#Ww4$zVC6Vqk@==&h^2cqvo3=HQFjGO{i1wbja%Ih~GYpE(`&M?AUDRk~%| zX?%9HU`+lIrLM2H)h}r#Lt|KgCswgwgnm2J(CS%+HZ?aFax5(k6(YZOukocNoF)G| z6B7|pBzqZTCBAJ;z1D;)we1sGd66Cp3L`SJQR=bTt`^_XLR?Azj(rRLVVmo>J!8}- z&=tFhmq>EsVg+Pm;AF#y0*QJmop1On6qRX_k*#d5$(FrVqdAh89|WV%D6R(;)Bo>hf#P}L9&bHFu(xo!H9fD*l1DdjW zbY;?0Na(0HxP%Q7)48_zIacF{bOuOw4L_hddPq|(wmys05;50?A6VEg&xl!fZQtML zj_IHy> zZQc;8EH54vpiP=%&%YFd!#0PP$%arc&@fF`U@q05E3w<-D>qP7AB>!OD~xuUK88ccRqu6?xlz6sQ5k?x1GeKq@7~KtxwWUoEArU7YuY%ubP65v88Ci?$3!w zSaBGmT~So&wD*RkWPr;Cwt50#~AbsVj0O+ney&EoR{X1KRj;) z^=vlj${uvXZ(CHOT6Y>bGGnjAbKFtie%1mW(4Hbj*&p@ zjyRNsv-EexYs>(Ki%FF%Vc;g@g!k1aP~KwqxWFw!f3LB~qhQ1I)8_ylD(J@y|7OCUi3DbOf%_MNK+q5ow0rPXG zoE#7kTuw~}#Z%8c4#r+eMgN)ZWJ>O?Ux*}{DU>+l88c^~0qx_JQN=;&6x9T47n z98216!S8~z`{qA94>b*oAAXrXpvy;4R(Mzbq*I42VPUq)_$5d@u6llcU3Dw=5~jUi z2Q$8KvLxrUBm&ktWM+DGXh>J;6kFOm$E-P@vv@!;uA%2*6trH7XE|OeGa<-ZC1gRn zTf<|I;l%RbTtL5EB|B#6+ zlUJefbK_IW2Ycttd5yZZve(+o^HRH^%HqdvxwVph!n4jk*Eh8GS8MM-7cSa*PJ$4S zvq=6nXHopWUN~K2GyA`IlofHZ0FoPkNiMD!N2b}RDQPF5F5E`bvV22C0f0+tT;o2a zEd`RL{E(`+Q<(II;0t8yzR_u;4E5=X+1^0EOF8a?U#9!j?Wemr23VYMF_u;*z?zXN z9BDnJ30SMabD2K1yadJt81V)|>>_lPC~E_Eh2QXf*aCfo;tj~!0!#O&eYCbDdH0{} zv&DlX%5~P1&HI8U=KuLHg)cSIfp-+dUORJ8kIWPKCK8SqA(rnhfM8-ErU{8#Bs>$b z=Mdz;{a!8Y_!v3shgtY#0m0~XEx}>+%6e2_GM=jrLwL^|{rzpvMrctcUxurjnyV4x za2(iuTm2wbZG3EEdu_4$>PfHw{#7@b-z8I;Fx0U77^DOt&Ebc7y>bto5KGGjF%DtS6ovKN{vYdwB6WlQF zPEtDt-$r<>b*9QPK9y zD2zu$^W$_r@&!{cK}TQ0!i-hJdOYd$#T3v7$#j@F8&>np%bIvtOMA$CxLX!yEUrW` zQz|?Io7Vf0Bw8o!p^6vjr}zz93!IG~)V3O;0YIq4ZUg561O?!kp+&@zEiiUSbYRfW zmcG)Lr~n>s7vv@Q?d{S*YHLqfnMwv*Nu#Pv+L$>r$G&}~2}4NQnmz7_F~<0ceXoOR zI;Y^Oal17~R0Q3jHEfPOZ*L;|^~kbTEO}bOtXrdWSfDaM&EQ-~$o+u!ON=JVY@ztkwsWZ*^qq|^YU^S6BXlT`365eNrAjAXegC|0^={*&q=JH$RGpt^L|otD}88^82X^7<5H zDsp@m|H($`K(j)mtsl8-JbV{56iVejk{4s7D+qF?;jYuV` zrtJ*vClTDE)$}2Tx`pu_k%PA)=@+{UUdNd>Z!sO86Ef%BFFp!%ctj)I(O3BMee`e* zYNEvpqGypibG*r}GlQSwb0aPS(5HJZhW}8O4YP~0IvAB_!l)yWa7bi&iJuA*(>goOOwx(g&OOGd4FuB4VDxx> zWj=lc&umaS{Q(;7Zs^=lFn77UwHeH_RwsvD^l@$*DK42V#%yMJnA#D@Sn&mjgt>Y7 zsRFm5skGq1UE;O~S`drfL~0;8nz70$>oSJQX?NkZ{m?Mp>L?qJe7h(B7bT=n`6I2{f%!juZ(BEn71qxB3qB-ERf4J$l_L;0?fEw)X?%NWBa8lVF}|WfiO~PZRt$Zk{mJ04pGCV+S*KG3_;ok zir#|Z!lnA-dd$4hXk29$Yj#U3fm>_pTV*J!$!gmhGX*v3h7PQn0#}D`MjR3J9?FT0 zc8+eXqF1gCGOVp0GJepr&eulg3>+-zY5mBLOfS#Qlc){0m+Gr1{D&}DQ0KZ`3E~;1 zy`j@I&-8|vy4@C+cz_1Ii_8_gfuF??^8vos705b(>l?PG&@W0?&~tq$(Nu_76u|NY zelFh*vFIGWS;yt)S2aYD`Iou8{{2%nshpO%p47zbrmA`i4Jotl=r=1GrgL*MH5bd? z^)7W6M+LgTv?Wita^Ah(!POURrTe-?#aVoXX7cqWTC*z@@=2R7Ik;b1|@ae#F^{QMJtBUSG?a5D1Gu$J3D-12G$Ww-JKWLMIRo^ zsC}N-2Q=5Lc3)dS-t!lxb2lcsyqHhe%TF*DPB38}t>)~0u{q_Zc^ERDG|yYC%IPqs zqN_ONGt=IN)X&#*Mi+C6)^Unz%n^PR4QR|wpD#{#4BoubpXViXZgEIfc;HV8jod(w z-;{W9XT8HtHoo`Xyz;s7;#@9Fk+W!b;E3|uyaL{Le#2MKXq#m80M}Fdzaf$So9pTR z_5S$V1Fe3HThH>N23;&MOxTDEK@*7RgThiN)mFw9BjL!AkSGy4>s3RV%=Mux#|2uN z=HT=ZUw+cAy#TG|m(u|X>j653)2v5}DTtB-2Z`((- ze&vk;Q3QSN^bH3UYJA`Hi^@;TA*^ZSvKgx-FY*CzK$1cA1kUQh0#x;YWF5VdrxZ3*#KnVOv*aEI+oZN@Rvnol>_u*4aksK2M07-4bFDDPErfYHb> zPdTWZo~W3nvS6lqEW8=GK6#t>){}X02dz*(Dl>StuYr?Mv8jmtU}@feMPTxphqYs! zuWb^o%o)q$I(A1{3EF=V{D=}-ZF`U@iLUD?Qs-&zFgmHNh57Yy!o_;WA_-7wrpMmI z0pFA?c%^=mIQFRh(b0nM^Ji3yT~fB}cR9uXx8)S^|E}Es{hs|-uNV|3Eep`!8O%C{ z^;%Y7O;Aw!B#rb5DhCpgY(Utcsh9*)@GJMclZz>N9oP7|++JXJlIs*G+b-l~xi^GN zCO76Z;?{VcyV6JNSWgX&UaD@efaTcNHX?Lj3^fV@LQrBmI z`iVc}H~8`Z@-5m&sQWJ7-|Nr#zJ0nX>}Ih=Sp#KV0&WGgUqHNm5(O4k!|?MfsL>}= zm(@DXO{OlW38OJI9_?qt@QdBXoA#f#8*C&C3}fJgsxY2X1xea97GzKM!+$A~5q~b7 zw>+jgF9kne%{-ze)HY|X%b7>Bdg$2K`yk+NuXM5ex~93G`Ke*P;5%{!HP$0t#dkA2 zs_nd3I3ahCN%b6Yx}rw|ks$wl&P-vd+FIO#=fyPX&GXC5{mIiPH_iK06`%HFyH2b( ztUL|v1MNQS%l@gbYd2jhCyoRO7k8DkDwvM2K${@_*+iVoNllRbhCW|1vglI;)x@I) z_nF;p=Ykpv070J9zM}Ahhkq=Qx*gA)4qa7_|A>**nLG7UX~ac0vpqdL&YVeAT7MeQdr*vE5wP}Q`=#B|=Am(8G^b~XI zSpFi&I@X93@ev85_o@%zfw^%#dLd}MeT&g1G~g_T!>x9+J%t_VHnqM^63@gG%)BL$uqhdzcYbVO?YmW6hl9t5GSzk7Q-6={YIfvT8UY&v$JjZ8(kmF{}w+J92K{ zAYx#!==D>{j&&WK+QE`PrE&O+ihL?QBPW#*7**qlKbx9*U5Og^t8BLjk0VG1ZCluu z20H8VtP4v(qTVBy*$Uz%@UH+_fM>vM1b|M3o31EI&n9*WT|&JEz9YAR#4wQ2N}_DM zfp$(`AHlwRjm=nyJgi`5ie1g_XV6pJKx~9!g*$T77MfB@JZlI}!Yib^PgeORs=P)^b~5k@jXji6Ke>E;xWNf89A$|MM=wws^q><=JLoOMF2dabp~2(*2m9eu*m+^$!KuW*^KV4t~5 zukOyprd$<2YBPeI)N^NF8M!`E-uP~~nN~?s>XL{UkHDItb9eL80Br+;25>sq%{Sn5 z(4;QfEZju_?)HuLn#*!j^Tz8)@ zC{PtE2(G)4t#7A$B~4H;J7(qv@-#N?l7-#Ep6slNA6-NQ`j8dQ?BmGpD+ThTV`|Dv?w?4fb*jsr$%<3%JaeCHpuEG zBNeqr2V=GVR0|=n(XC)~WsQw0saLdolH>+kh3}KExH8|IGYF<#me)ge6ki1*w|korgA^G>7?o7F)SO zl38>qdBUX)AaT4$vAIaP%UFoaCk1EqcHF~yZDk=mC4F4WKEDsgei%r+yb}}BiZ5&5 zaf4f7Q&dPaujfxt<6NoQJxm=MTr>F8ZpxhQa(A6OpMt5|hS>`Vbb)g{~NP$)VG$ z6Q9U6MdqKnN32nOsNR0)ZaP^M&3-Y<;DMLf=w>=;a+leAi0jgjlFa>sGv+E88&!W| zw|Fi3c+EU#t@Qh65HDW)B+z#B>8MaV&(pu0glg;ccoN_weSe!;{!_{I$4RVh?5*@H ze;4*naqTuJ444DDhp8K+X0wXVXe1Gm9AF4imI zIi8lqaOI&HXbiR8_+9)@kBG_0X1MjJv?AL9BgOw|JMptxg6zz-)eNZl?QQY=!7VcuHL=j#vWsZ+i3OC9=SdMv8{4G(&Y$oRN@Sr;6j!=4bERd3yNa1AZ}K^q!oLCbp<)0~ zf4@lpzz4$XPcpdVFt7w`>wg9DOuj`)aG-$3aS3;fnCk6Ni6`U}H|fpt}GDt!!k)!BZ&b$4B+5sKZtNRyM$~hND%>`4fO_=Cu z)`+RgmWV|VQw3vjCwo3TH$C>G&cIDiEZf-==<^BYq|C`O)|F?!>%_)clLt*?NiU<5 zR18M|W7Njrhk04*ih0Tk9m4#VsifcyTAUfki&y&Jed`$}C3Ym>a!3B{OTfR4UHo?j z_}xh8TIv1u@?`bnuf^KBE##{7~L z;;a*)fl^an`o8o``UnIE6&~2f_6x!|zzbQS zs;H1~SAb&3&bj?cCzf<}sYr%=m^~th-1QSN%bjP|VE4LkC`nIgD&jJVUyJ!Y|GfNc z21$Vm^-!A^-NBrxZI+Z`by4n$d&AO7L&0k-{+G6`e(yvA7Yk}sBHSixUIg{M{Z(^4 zk96V6r1NI1(RIcYLk}T5CVCw7g5er_hO94h8vEotWXEHg>yN0RzmLyHdTRvH= ztP|+DP}(tud-`?M`l!6DmMuY#DCAGDzlFY3FR{}7>9@c_}K7XIJLv>Jke%BwB4{ zGTmhG%w9&C>Y8dyR`7+F7hz3#Dyq=tla!UJVLGiU-l@&!Pc?&2MyIb+_fXw3Bm%~F zSFhc$Rtoyvay};H6*FEW#zSt&Vfa2?m|!7|f7+<7KBS)LKD=tUExfs1s=BKy>p-L? z-K}I6bf~w2ib~U8jPd=xU)n221jvB<^?MTX|10DH_8%$Oebjkzak&)RxSJatD;>p+(W((E#IXpiJCF(Z$dCvPB-e85eW{ z(JsJHTH7f6!4&RnkBhNV!z|zTGPz^ByAm*?SfAxCUUxSVHuSlpOIXgA-3?Q`DH~Z} zO_)x-9Lkh5)fA6a1|Zev5@yCVtfb4H_04&!A|26SSK2McBrr}5ESl}8-7wm~+l>yl zrT5k&b&+<`UXenf>3Y-mk|Z!^V`qIhuL9^=aErd~OqfM((;kZO#N)D^{%eCZU~!_M znSq|8%^w{Vs~-#iQNQ2xFzKBo>96G~R3L?4oI=Z@!J(m@!sc>7!jK(*%HEfR;bv5Y z^?V|69_fOhX43UX^hL59^8^Beg?+`HsIj=t&pLngx!8DF?SNQztQP7!Vr|zG#!Knq z&1X#ghPVb!Y>OY+tym32->nHilOS}vfBPi_>$7?yoSBQui0W~HcSC$mbjd19%+FZ) z@{;vvRNb%bM2pf1s9^^hh0q)mg2whlMQ$TE{>;-u8R0Z?_8lcln`{{%B!SrEhgy0e zaVU6N!c^^2f~dnJs9z@yd+OPhJ%`B^{eE&oE5rDNg#28%LD`)2R~vI>Wek&#o$%!C zyi6E+&BdHP<@u!Osufy0?t0=lz=Rh@u0T_=Ja!9nrv0E*fGlH-*qpn4>1Sr!Q?K&g zHpVkCI@uHsrqTJ06<6;~I1(T_34o4}Jwa3Ym(UD;!QMYqe>$B7KB2vY-2UctV{&vs z<&L*L{;`&q_|)m9-MeR%+udc#Rj^U?p>a{U#58_XBxy-v{TX8 zujzDE8_u9>r0x(=)|8^Lvh@!JR6ikyV+0e1=W z|HcRZb)Nvk1(rqtm83scs6Kx9_Z1q*s^!$gDAF_qN3}+io&&{@DHcIP6UbH|M95yS z3pOk^!10&~lH7_``l%%7|B+1|{R;V+qgo=J-60SMgf|U3L-czo5yLb+(@oUd2Ad68 zSey)>f-tu9v_#}3ZJOw9?ENYMJMe@rM>SOG7DROyZZ))XmqRtAj^82x9Rlg_|Fk3H zr*4Z*arE^u6+Yd)W~u8sotk=hP6~Km<6+i ziVxaqSt({P+Zkm_AZ5cE#&U_UMx$2BQa0^7wb?UXm{#Aur7Rb2;gn;i6c{oht+EEh z6(lZyyRmw-H?{obNunBfIxpojAKX5lYHRBGy5*108KvUr1y0&Lu}n5T!6_9Vw21&_ zVl;d6-eP{kh*01+KU(P1IIi}HfEK}cBx1Z^Woe5%DB!3&o5yt>#eBvEKzDr!3e8BR zXEXKMU@O19V!a_e^W0_uM0=4vff}>pScOqSgQz7sr-G+(wm(0o=7v~-?IL^bT%Ti) zv_z+Qh3Vr8Rf=0t{EFgReD_5k7*wIC=);e@LXi&?M&+yQ^ASF#@K%`iOkv6~wHtBn zxuU4ELoz3)Tnrm+KXA8qZbyyY+PA}}*9>t@iPb4Yqwn=Ql3xnO@e2mC6oLk;IQapt64Xr=*1PUyMVjmXfXfK zbB_ame~8izg|X_yM)jGRLPP%CN^ZJF0q5vOt7Fn39fEbNt?P zT|;_ABSXPl`M5+}HB0gKvXlRGy7dFM^H21p%;dD&24t+)zb*HX{}p|Ii~Q1C0mQ0) z=cu5VNr_&5%)Z0XLTR|5d%3BAEfETI%X6K(9at!y;~5%O)Av|Q#LScVH1e!bNTfdU zY4O(XwmROje%U+;DCq&2e9LR&ien`hW}DaPLTU4)B6Rr&4evXGH4DM8Ug~M5aDhjIIzzj zskAQ~l?6SjIIWbS{1T(9^AhFW-oR-F>{pfbbBgthVPEHNh*EXCU2oj253+96& zIb_TL?wRE#(QVT6TZ0tg3WUhEMk8x+sr&3NP8H+Y1cz1FikJP7rIxIa0ncT1ZJVsy ziCfN8ti10mX(n_POz1|+>-Xal<`J=lyWxZQpz1`CcKW5t020*|%#A z-x-BnG0L;ZTS7jnh`ov04hM9JuHw6i{l$V$Ji^)TqED0&sD=6srJt#Kd9KwN@|K8q ziHGF~g-EfU%9G{Kzh9*oMhXqE4-c7$w2$12r{Fz&{E@dC^f<|Y1DMkCU#0|X%K?0p z%Undv()}rC2!Mco|DXfDvo~^}x7Tx_*Vi*Mbkfx~GP0$!F)Xx9}E0rfqyLUj|Kj*z&{rF#{&OY;2#V8|F^)$OKcwy5ZVB}SksCxNKWf7 zn>c=8Oc(&%1K<=RVZwofB4i5!L#<$RwLXCSV!JD*wS}XgJHoSNkVArBO9l=Q%U))O zAc6w21*~}Q3|Zp^-ZI30c|rvR_w8=&J5WO0d~4_}!V|F;9`5-T>hrOdhLmnNdLX>b zs!Hec@X?3yDTR#A&fz++04VPQ$(Fp2ILdK{8^Qi-~#;?%TU5$ULb%j~aVJy*?6 z*pc!r4Jz&Ck|Ih9PI>N>q>dZrcO-Txtd)uN@`iQov}BDH@xz=yIK!ishFMU*s|S>r zOG=8iuima&HyG7Oh+Ef$<$y3SV&$qE&MB4IsI`0)$Y%oqL03QrG7ibkYMwfDvRKsX zg`|F#j{EYNr0kQAQKQ9t&lB_@2YNRb&@I8!|4C?6&_j3AwpmQyV6a5H3q`I@9|Tw1wG?~N^t|(k-KHAygiKGJW>)T<@rO4u?xiYfbeBPj4(0!{)rLR{LOhFW8 zSy*?@e1p?zufOqb-QLnrA2PE%p`O5R}X2G ziO)4rvyM{vRF?Rr2vg-8R{!1X-0bIA`v>ir`Of;9%iLS$OC{_5=)MXCSM=ySditHTI@&FXeN!r|5}?@G8(K1w8L(Z#yGbKbg2?%TZQ5D*B|T*nK`mNitfqXle69uj2I79PtuRF`>O*?lS(gE%|W;25^34!t5IAFE2h4A zGV;CRGdxKKaWVD8^P&98^E#Drg?Vu>O{3Jgv9OsMZK6{`{og0V1eAcgEd*g!G1A&a zp8ZDKq|_aOel$U8T~9l$kg>k(Rm{0O7eQNQs2#pcvY<^__%-*$aM?P^*l0$fMYqDL z;fHv>n}Z^O?04aKmDqVNxHGiUOCTU{g)dt^ZnQk~>Cd_i9ts0q6HsAIg?LAls}*31 zP1C1J4Q0DgB=_n!w7W^Cr-$OD5)Vtv3U_4Z-dbM0CwP)HgVPnjYqAOZ;vwTNR%0I4 zl=IZ9=$sE63uCjDPc3Xe6!lb*h_`R9klxKHFQzJB4DXmw=!2b9R?bT_`M000mc;xX z55L4Xacez$Dtof6*59Dzv2h}2$?X>+gdpI^vXY8f^h>vF+>n;g0MK0QX)V)W{z}p{ ziA|hA*OSAU#dvXiBoY;}zI?~{J5n_l=R@0bXNCj!{pXi@O(oZjhHI_%4igXOlkExTTG0iNBO&^*TALZt=vY6+K_Z>|toG;)q-BiC%NZM~sACw33*s7<6 z-$Xu=u(={SD<Kb;q4C$}5}2{F0&XSghr3%cY= zIxp%S|86bhEpLcY5|yDbY=ONH`%qp+Mf~{27*5nQj1U>+fEgk*HBwpFeFBN!{)*i#L`gcK za|y=ePnaose{gr?D}crWv7%B#Cuu0Bx(Cq~-zae4u#DIrR9}muLoN6iGY|_HXI(pK z8t%g6&KW%v6?CJo5G=a2e3zyBCE%~S1 zyjlLin3K`%oL|diQsiU>v0(5X=3eh_SoUVNlmPv&DY_t*i5{A9d#3GY_Qa+qZ)=WT!h0_aUv+{jD;a)} z4Uj+d_cJ@>Cx5*4%QpIM?)VJTawWypoN^971t9IV@ z7~}LFQcG1KdaPMYv7A)7@LlIm4{x*YV&Zq*^XWCCZ$?uot!nPUJQYea-o**3px zaIEPqNI#b4mDNE{`{R;@eCh0Zn&-Og*JazW`-igV;*u57ltJV^QuX1e`AWt5F9-APDs{OtQ-jq%jurK{yg-dBNV>}on(d*kud}o! z{#J2+@wzy2_3YN?UCVn8m-n9rRmpDG>^qn@IyAcnG+sJZane;z_uaMoD*ab_4FA+0 zRe5vispl65-qy6wS$X%?GHsr}-@g6*eTSGs(L;FynaIzkm6K*R)e1@WR~iLR7WXgT zpIYxd8vCc^=;{}dY5z-ChcX)?&J7X9uA#Ex%6)RuDwhqYw`L|cM|W(iU!iJm-nDFY z?NMm-J^8ZuM#{RQ?S_ib-cp-%6;2I*cR7*vOnWZ6iCBvi#&;U7KjXXRqz{B(8KXW+w+g2-phzY4XUdR;x4aW7%L#_Y=hu$SEy|CEe*SvLn})MV551ea`A&0r>dS{MHM(~ibhj`jN;EWr%b%m@ zysFwUvQM8c-!F)i%=}cSv7fs?zgQz>$hdcjN4!VURa922xcBt#Tj_zS$qv-Z&3BB^ zBUko!n|0v^4rDs?C6~zS-4;gA_xCZ-MQKx7)ht{4q@$S_Z3By31B=`H`@6jc$o$@+ z1W;Ns-ZN0w*7x!4uUQ~`zwu}&nYJTRk7_6;(Fiyy`r|qm;VLEV$EDguq-wPe0KUwn zY~#nmni>juVPdZ%P9id)Fd-xM*-!Sn8*Qs?PapW%$D|Z7@PMP;Q0e68B-9U0@*SQa z`-t#NH*88QA|z^E<^xw^@^{9 zo8N&2M7!$X0sgM@EGTRNUQLk0kcZ|2?I7fV%TI*(u_J_knw7tgWSYNp)Iev=v&Yf) zSIh$}(GJQEXj?@LMg@z-9E>X0m;|YVC?K?d z>4@XCEFl2cI+2A9QJv)BB#XnWK0htv zz5W8U^Fu2;fd>G=0J0QAw(lJN!_yrBo@I7ZUg@3#Q$!4g!V_^a?TyX4Q0ff+!^sr^ z23BiO`Wp)17=*%+M1oMnzci_mOov#h(oBbbsWLvl0c;OCj7?*;IMoEtC{=7?AYD;R zAsWa{*!X>ZO8?gHi{=k>I2;cW`ImN>4>Xt-(9-G9@__PRdVjNp2FM3F*H1>isO5V( z!uN8MZ-`yY6d^XEC^t$}F;hBeVXiZ7ZgI}S&hDDm_*Jj*bg$QzhXzY8>qf8X|5k@t zM?-*o5%m-isT5(Ultr}^Sa@U=6mU8yl6=Y7MYY8DghVm7luJSBE-~5VS=p-#Gx`Ys{E3}$W+;A^nXE_ zAwv%F0%k-g?^3!unL#PZ{;*icAX!uagBHu*m_QHF1@F<>!`a_nsNi+%A$PD%eI5)E^Crimnb8h3{dCIx z{F3p&4vhC7jqwmZII!OACsEybq3D~5bPhK=Fm_fmYQqsIgwt0oP)|K6+&! zt1@osn9#6%*YANk!K0*M!bYY91h`bmUycGR744LyNyl@@ACZ~9AXnsvGW}=8ZHNxB z^N;+88rtLo!TcA`hhVlich$=}BVhV*gxzGo?CYDeuM;kEM><=l|CjokbucHu0XrSC zBgG*e+mjn+jA#5?!T)fMo)5AonXfNd^h}+o(JR@PUzN{(Qy$^a0pViCX*a?dFv{g@ zrfN5;;yh~MJbu-As?pi@@lET-o3lIrpZp4+&EEXoG52ue$wK9c8wpf z7Fe)phb=9u#t+`>eVLsp*IncBEWzuUeu=>^q3Hl{ zuhLP6W`|+y)t#r^`n4$GfR*j{S8It4rdxv2i3vXcw&FUqc^4o4W+!` zpWYa}!Mg^|#A?kBXhQ%vgHTBlks!64>&qrplIu7qR7&ydS6|8vd!=8I>-S1sDw%lj z>N}{vmTNw!E|qt1xGEGp6$UCB4zdai@PPtsJ)0-=N3~5~DVu&b90@o%;%}!vYG}rx zV==C6YGHJ)!E40a+4hz4=ot8_Vrp(-s^T?eZZW-WIGS$sdfdy@BEYuM%RbO+dgtWm zBkX)R^V`?j zBLO<&6g$%ZXWKNp*{jahJ4Ua!0xZ%aK-c-l0d}a%v&Zg&5nTjb&pA(VUw*54YkDWb zy@9Fo=d-IuVHTeHuFq@5-|P4>#fVovpbuMyWPni z)9u*xM!%V74`iQzQ@Z7B6pK=GjA}#rSIrTh++%w1`EnTZ@x7 z=hbxo9g+Ry&Dp?P_JMa_Hzv$)-|Y8X*A={R@9RKI!l&QezP~kAt|bm`urPvvI=}{| zfCb50Ck#Y$03^6C8V0}FmRlQN(#RX|C{ zOUXqbY?wX>1zBfu*9;k{H`iZ0_h$yTs)~!6d;(01B?wTEl)7XENJ>hoYd~EeB&D$`35GC~>*6wqsRl_&Rdj)*+Hx2_Qmr+hHo9U0>!3=U~Nnsl&+`X{NeE&o) zH35>6n|K2{97aCQ3+7{D5-h9NAgPM3Y>&aVo=nHHaua-x11G!E!ILw0vTc(p`0@`L9h@{kZu60S@lD%Q#d)e$bcjP|6y(aQ2R0+h7UPX_ ze{DbjAJ~{%j0Xg~B{{x%p?VF>@7Ow-G!FJw0;Lv8m%hBq< zW~$N4PW|#*kR!Mw?K9uBeE$7Rfu(1|kOrV~@Bw5dPb>cUVprLk!&HG1@b)ZtI-v*_ zJUA+(;0aP<06?Nb05mmR(Zsda06>EyO?0P?M>W`4I#hrfXo@sAeElD3hrR0mXN?nB zJvR@`?UOn_Fi7Y)hD1bG!GLyfQ0@p~RAWuFcnq_I3MUfvOVV_)D`-jz(V*I5P@hmz zGGP-}>uU_wLIam=JP1Y`ce!qq<3|vsHXc~eBw12|a;(Bm*l6ijG@u;gRbJZ=K`&r# zns-u&aoFzj9-o^tCLF37mch}<$p$XRYL%54zl{UWgAL&5+oZb7%Hx4L{rq(ZFvH3Q zz!_BsYf}6z)p*Yz7LzDI#zkYhbN$#r2G%yff@BWI!vv{+?81}&u`8eu7600aQA|J< zJ@5zG8T9=Pdr)Zn{{PrXl^oDJaFr?n2i=l?M=KQ2^&b=B-zMU}{1p=o{s{pFV-z|J zd!QABA5b|k9mIQRk}g34fcG5OC6ZuyPUhC(3F7AifkWVfLuK@!ji;3EK|x3MqC3%% zOj2FB4J=Y&e5Hm`;gqyNY-DsQmn}0VD1DBD9}JzKAy7$75(JdYXCwkR`;Y>ya0Yl0 zmD<$w2%PQUogxX^vUD+w<2X|+KOifQc~66j?ACqLMeENq7b^c*1CED>!aElLCIYpM z@z{yYNQs#_SY9EK{&2zuHkja_!+Yr9>?3@7Q9bm8=w1eWeQ*Q?0FwZf9-!JowY8Od zM&>sm2w_D$5pn2rpuu2&NBswrL>TOF)(7(!{_A`&>pQT|$o-torL3|qvM;x<4Bm44 zGT;*}Elbq!56(g5=TzAS2n5tUI7)r2)ddNlVJANiIMR_)MVv`sEia9oK1)^s_M4B@ zaBbuq8z4cH?_SX%vlRA|>F?)U>pfDd8G7pz-AHWfPoQM@-&cqLGt_a-IA^#=G%?0P9h%x#rXjaFc*6;5oeCK)&0= z4=@&>fk8huE3z$F0s;j%@&N)P_w4Y)^Z2{k6s0%+Nq@J9ep&#Daew5r08IPisIpKi4ihM05oq(VI* z-WS_plE53~Bmm-nM_TD=u>f)Ig%l(o=@i*QQhUntMLCpGhyGIBN(dkgY9Ej|5 zTh3=k;${(Z6dyQOsZNLzV6&`Ej%I)&8QAa}U8YP02udNPiq>FUh(VsgSewcF>0Bj1 zJ;FfCXS-d)&4|{DV^{a0f!SZ}PU%K>1<^9GMBaaH&Z-u5dcxH(r-+jR3*8m5R;LdQ z@n%XJ31G6v{m^?Ks=Z*w;YdC26pmMf(1-?U#6fDcD3H3B><;?FNDW5vt-I`u3wI%Y z_Nm)Gd2RSITeNHh^>yn!Pg@i*UBd1tK*~DMi$iR2#)a z8J$t+ku_a-teYtltgEX)dQCDmOavztLxF~9SxCm_R4%B=0w&tpKDp^=B$W~H76Hh> z3dxSC8 z$fG&c)U8or$w?uAq<&&GqWj8u2vCW91bxjMZg}poEb`c^Xko}70TTOqtX~!vM05JK z8f}6$GAzI8EGR@`3JqK`jm=k#NHnV<#^&EG4>Oyof;Ras0A0E;Z+WgiAr*ALAh_)J zZJR0ma7<`z5>$+9#i9+4acB@xNf6-aflu0&e>npa?>H~ou}2o*uz&Sim`4!}y!sZK z7Xo3oPd4;*GD0u^sRtegh921QIS!2ucl|?OV60 zYI_8>vh;H}ceKjzK`F^n5p2vGTSoydTp-AWmw-v?MP}UDT?q&)2Ln0Amj*V+JI7Bt zn$LKEE(Cx+e_ojVg8u645ilB-g-oW8WQWY%1^%`Q0C=&C5wkL%K}3__e4-U-HHOBt zLKdKj5l*OV_kq|NsG5DMq9>5Bs1mTBVng}Ev11|dWWJ3SK$t|DAF<&68nnBn=H6ABw+7g`~yU z!n>?JWa3eA^YCbLm# zaa;g|497u|1OT!!9DqEc6Cf*;0c5iu=yAn&&F|#WiwouGhs6ML+Bj*|@HrPS+`~k# z)76k$!qqnHvy4U{$*BI zG8#WW5VC;uG|8WgHc|Ul01VQ>sX74lHdzum_~bq0Z9&wYreoeUMA+iXvg>R>ifH}E zvP)Dlr2?xcS*!MtDH2$?lQ-5Hn=C|jXiYY?Kv|v0;}3f%SKC7sgW*G_1b}M_d>#cTO*q?) z{?YyNbm#l`2S}8xbMNH43hs$##nstHGlHWc;;$`cTp2I7 znLCg2zomyIOGUkWy4hI1BQf+!eJ;ZiOD}*Sda(hxqxxS>_oSw;4`H4mt-erqF4*qV z8jv&Gfv*8Hhx>2;elB6EyrwhFdcH~%?C1~ff9=0L*fi=A;1=vG?;q&@rS&-mtEi-` zqIyhCT@$aRt)r_)(APU-Xk>iW#FS`eZee-O%G$=>!O_Y2l8dXGyN9RO&zrDH~ zW&9)lc>BK}fc9Kj6PW-f)|hU2fn&nXUvCUpFFpYn(ZC5LGOU6ftP(+XZQC?{d8yd_kX$dUCVabS>2xZpU-LQo$)nZT zyRS9irQWFX{>E#c*Wdo!796*G-E$+rM}B47ZfJkM^~%28m{;X~+OT$Bx`w7%n}}CU z4TO56V|?i<+eEjMNY=v+tmqZUoPb*mQnJq{1g(6Y2dxk)*#N~V7wOm1zUq5Ld(qn~ zLQqz3+*!OpzSAjLER=9cxsK^BA~z7F+#H_2sfXS%efCVewx8>rgbYnX&&)D&&XWPd znlN(+A@nQntF_e7j_y0z)|}mN-@=*jKFb;JjMj)M{g_sU9OV55tfvG+9pR-;m=0yo zJh$6$sj9k+F?x{SY9l;*xK2bvn_F2d^jKCh%l@x=&#M4BhO*%O9J0n==LC!95)~&S ztS0w*YR3AS+4E7|s2`nYl^OGCx?wnd;poEUit7c(ap7N?OK5paypSgCZ9ONxiKmuN$HD8wF>`vBAm$5bRTXZp=lb(7;JAgl)Mh+# zZT{ndpI^Tm{2H<`aXsa1j40nyt!G8}R=f+3TJ)>LYTIvMFFc;e8X(1hC-3A zW$%<#3d<*Vc8vFw%CIBxXOAzNr&&H^Kg)4M94qXr(~7dfoNKsBtM>A zU5p&6=@W)Dv7FEv#Lw`$7~lp@K?^FJ&suOZn>bm@1_V}&$K4O8Dz`Yv7;XFOZGJW< zaEnH|X+=IF1@6iQ^VJq;+j)RT+inVVycT+Rf#3>f84~hDieqF9b7u&jjer^UMY%r_>l?Kg{@>O8ks{rQT-iJF_mA4Mch*3^|?@8xV%F5x6%&Na@(t7(v} zJQt&M-d`3aSSxX8zb{b7vtyMRmHIFxy)00c%kZ1ZoBByVGAcsj@GD)(r|j!L4Zps# zQ~BWHfLe>rm~&t4sZZycZ$7p7&|x8sLz%{Oxh^X+IeI@;;`&Or?027!`2)9jo9z#IuERRZ(j=B9*@6M?`fL!(WD z_-ovq2wb9l1VmFC1cY2j2?7o45bsqLN~t!GjrQgLcw2xgIw|sqUiF7AvRC{}iGjMr zi_alPxm+0;)Jl&L8!Jj3#d+-~N(N>|Qvj8Gcb5b)Ycz~j7e^ph-*G& z#O#z}=!f4_Me|dG3w$qwoUJ&Nb90AvcD{ zHykHPxD#%g#rTN68rNj}L!%?_G7!VL!KPid+zm3ZPmQlT&Kid=%;`KJ^d$ArpI1*6 zv~vb!kdzVczh|}a_vE`9j|Y=?@ln;xMtSmaJvbrK4-dH`p^`IIfuao6(fO`bjOFr` zZdk}oV@3tRr`OJj3VP2`E6pQ?$}82grkq6SeEL4O9B*aiq3aO4m-bTsSW@@x=_g)Z zd8s$z);Yi3TN!`onUc|?wtUH37TEqRF?r_Uv;E}Lwra7oH61$njrD@}hc+V!7yz8= zeKqOqbDbb)Zkv8>diljsnYNhHRRmj^j|+t_iwa~8lK}q;TF*~Y41Tw##c z^K=M?oi-<4uu{)8sI-tzEC#jAuFnBmQ=)jIV!v{Q@~)S0tlEpQDIY*iaw;u^^1$+W z^2eiJFLy>WU?UAU_{Jf6nKvN0Amlo;Fp{@YOg-t|ct%MUtH*5;(nTZ;AZl-%S(F|b zMwOHJdNec%HSQhO$`LPF1Fu)C)O04@VYAell@M1I{TyLDy2#IPCa$V#;Kw%xZcbbc zzmECIhsR9Ai4D3Klb;%AC(h7?Hn<;2vkj$@H#NOcZ@PJ zM@7Ra>#hp-Dnu;iqclHbl$_0EcQ}7p%htO;{GscW-32?H1~?k0MgF3jR+ZfBlrm4| z6kdk}op$sKAyMTIUb6UG1BTs9CreKGw;Fm=D^}ak`UppYnQG?vpsti^j*l zT*)muPm=z`s&F~y=SwE@+Al$Mw|*+zxSv_}Jau5}`e}e{ND#;KXuBFrDjsEn#|m}8 zQu;rjlwfm<=L3^g+UOX<4aR^zQmaRuUf@71VMTw_g)&;C%M0Wg*XE0|X>y@=2_LODYzTXrh^MsouL%>h&e~A6ZB0 z6eiA1d5LktpGPuvH6%y&11LTdlr${2Y-a|yuZhT0BiVC6wMoP>ryak3uIzWA!8=k5 zd0~S^H}YR(?Oi1N`D8(2)l@u1aSTxNmIi--?o2Kq2y`*l;VAEUT%5t;>N@K z2=?W$FpQVIgb?>nD~A`aRtOKjFdzT=&cDT*QkcveKT%-6|L*qmv7n6pwGX;v-pvxZ z5JEDB zm7rNwiwW3BUmMf31S%5!2jet{ipEE;(+b6cF}`(@QyJbi*}!@Q6*ut2k_Xg1%L zq%56gP*NK))Ku>DO@v9GA`$7ughwI#7@w*Zsaz3Zn@~xnlyCjkI?14^o7tG~GgRdE z;K_SI@4h@Udd9gfDmqlNeBbx>wo&dDvd$Xmk^HOY?iY=TX5;H$6P{N~w|h#`kymY4 zgnZ)(y~G<7(Xet;dGkdTQ&_8XLb&Oz6K6TS+X({nJa2~mAGR4k)mZHsl@1)Xalku! z2JxI@*DcfQbUZFvc~dwOe_pXECS$nJcm=Z1ICNogB{t${s+(K23)}eP9n;Kl8BF;| z7uCt_e0$W*Gsos>zHn`xIVKJscG+^YhTCvULB#2_-nsEJE=~wD>Eejoh`yDpl1&mq zf^^t|8i^YKEl$|o!S!-eqTn;bQ%DNEV@GMZXPQz;nts0t6KezvJC1Iw=us@l9$j!? zK2m~}zQ_NwEje@X{Wmp!t0!kJsHM(mTzIW`o<(6c_}-e^YnVw+`c<#&9%XiM+uhcKfFuU|no_v$pFpqw8{zYRMv+d-Z<(?!3~N@E!w zs`p|B(Qv54*A#-&5lzZTziGH0n%{f@%5? z{nZOB>3n>zgxkuUPRx65&X0+TWz4U4tZzAgU7m1g}c^dnc- zlR0{U-7GZslFvMsGTafVDDVUYDP0FPT+RlyLuI|6vQ`XO85LHG+8s&pwVd9m{mey^ z2yk7tq5`lc$IJD;XZk!Np2wdNd<1#^a;nqCZS3Kg&-OK4yiP-YOad*qm|8v+4$*k3 z6oOWia*l(;zJCy4Cr8kdA|7928(Z&>_B|#KpI|04^4dOD1wJT+_gD;TExgUNX~8ft z>GYca{nD{_6ebbkCTM?K}zXy=o)&XdFz8__CRSve_(#^%C0y!YTzhW?aa zYTcW#VNYRxpq4l9Iz#s-`edT$D`7D}vf_v6UF*>NwI9D`ZJy2c-}t8Q(1(*AoqL*h z&gLVZKG;Xqo{hY1_-FQ&+lUaV?#RgOyR3)L^cOxE?-o91x%=5_fAjcW{t5qi(v{Lr z`Hu0!)coT6H*%IUc+}4P<4xnE(z^ zwAu|J^8n|v4zyjW^?l*P@1MC__wPPtXO;+v9IKw+=rsieF5gSK)MY8;J%{xRsy?%I zQm|;>V)*ps1aJVk%=}Lf&ifwEM;Qg7!L%zICnM#p-YNiwtAR1(r2O}(V(4Q^1=y~H ztX}nf&RD?#3(uaK*AK-7KDQTrp^X9H_&q+uRL|b72#7YqFu6U6#iBGR*ooHRu8@R; zt1-rOL4rF3bVA?a>PIyrUpL3XE13Wi02yG?j0j(wSF`S_jEP=gj24bbEdtU z@jPX7(#}r3Bw3rN<{eGj6Rw0|U=7h?>8%wZyy_v1=X>`OlL|Xj*qJbD>`L}rs#d$I zb(Sg{2})jQRkV}hXGRqZ1q|Oa?4*yPvaS+g5W`}N!HqGHSX9{!)A$p})+}(X0gDsy z*#<@yn1pbCqY{q6BZQadEm-)31~}MR&U zpFS5pTVZRs>2Y~k5oFRZJSp1V|rd$}wlGK}w%ejy!CwYXtiHxG;s&brJ9 zXpqAMQTDznbaxaYUBt1Mc<@b*$||~IWGj*lqExA{-yUYvol%zPP>Jg1 z6K!`07LQ!jK5Ae^_k(Zi*=1NkE}a3c)ek=r{yqsRTOo8rRUwIIJyXodh`u292cDc& z{e@q|&|(>3|k?vhsHz8whd6V`yL` zpV$TV=q2ljP?HU--t~)TNg)6(T#*aK2-RH7IF5kiCj~LeYSAsID+)J>!>B)wS$Z?x zvD(TwrdpH~3J>LqXjcdu77rI(DH_(f+~@ zTLtO$S+qgZYB4)22oQ%+YIu9HR2;nnfT!jiQM$zP90$MiG5Xkr#Cy;dPq&6Tzp7Fz*>_ z=GE-TVl9F}-|n%9zVu4kyFf>&r~@fEvsPuITt@kOVCis_x!ijwI;ym%pN;VV>k_qES5rhG92TYUO3B#lh zXHX;&6iLz2Oz?OVogwXf;^?j+a5P>Kh;J1k>wByD(=s{WlF20Zem;6AK#sW`PnLb(s+t5@H`q{oJM{db=`f&!M*rO{-E{Q-e6(unhN_32wy@kyIT5M37 zkPs76{y(XKLtU_%WcE-Tl**oOpB3ijAjx276c0kqFo)$=l>e$|A5GTU*ZlWcVtyx2 znHFbAR{uspbrDOPLymx~02>bk5XD)3W;v2bZllrwp%7pbPKXvI<4vS578F)vaB8k3 zT8Ic?M7xy+Cjy{piv)n;4Ft_sxC*9?k;AUG1#=dL_$rtyA3Dic(QOHP_I?~BB0iJBUyi-1`-y-zt&kO@&_INd zjE9m3=imwTCyH;t!c_QRNKjgDr{_GHc2~^wZBGClqe2Rg(}QAP49Sy4j2Xa3rJnW} z+G^1jZm3Zq6Ng=1sOE&fZyMfuC91O|y(X7ea`K5XIQTscBA z5uk)ZJ?-_(Umaj_9e^S7&nJbPGgu0+mI_P{)Y=K1-&1iF$W=y&Df=)-5F8PH?XA^ z)MjN;NDEHu9}FH+vSd>&e5 zQN&hf1|CUhqfi^A_cNtPz1vOy&Lz`GpgDA&JthQ&G9_5TN)`YfGTI+%r(-xU^vnd+fIN59$5VanTz~|Jq>p{)zOy{D3`Py!5f%1| zmnAU}Hk)uu4r5Z)f&04BRIyB6Dy^80jbpF6&vXOh%9A$z@>x|Za<=UC$o{$g#nbzH zXZQ9}L;>I=Kt;2}X!nm95`I|i4gln+6U8#P!qHB4#P{5E!+Ps*<{;f%7GeJ|GXCoM z`b0E^!th{_Fg(iHYq+*ZAGR34Ut$x<)I1#J5ZnLCj;oP`frQ8Rc*>$a4se$6Qgli7 zj1dsYcc05`^c7VFC5s*43`xr1G7I!V*XxYwQ*flW6h6eGZR?mr^-V#A&ebya-5FlBs3j~F@ny4BMd-II3d>-(1jIsBgUb>0cwPF-dB%=uh*rr zDhNs^>2p1+JPQn*Kg*i7=vX0CvtAbb<`oned9j?w3r{LXNk$uB>437JXVt^Pcg4c%a&2|_8DH7>q*{M%Vqw7O)AX&U)VgP|-qgp7sk5`63?F z9}5~Z;|U(AKT&m`n0!At&v?IJ;q|q`2XVJ5ZQs4GOUx1YZdM!r#q;UyGXxKqLBchK zl-`h*^X79GtK|jbFCs^4TqKuDUlH(mc!|kPMKRKr9h@ZejdH$JB&lVlRO~-I6R_KvqHRpLX?8(0o?)OFLR?HxnGt01)iA(+{A8M8XXqtl z{JQ2>tD%pMoUmDxl)Pj6k6zCUZN(o{foLcLxnX4Wrd-OoFwHHK-s_^g`fkJkolSV} z6J!GA5*wRPXqzc|Z2OP%Dl-?CPvnm#CSQ`Sp|wuxYh>ll^rIq`yWG2MpVIeltM6YXJ*k4Y(u_*V z36l(THhU4Nf5e1{rzRN*mstG8goCSPN<0O0J7r~ z^a^q4BeWN2*gSG^j}l&MD`R6p#n32=bR!#==KK`z7GxD4l{`1p|F}85yxlFUoRhp3 z`Xs$hpYcrsOrLnZ02jDzm5kP<8}j1O-0EA)97;NUJWk}|BT4B>lMSs3KG+9dBr&_h zko}b^VRTb28Jhm;HSQRN=X+W6-WzfzCykKpm|0z=K@c41lrOa7OqWX*Z#QG`6cx%C9!i=`|?H3@;1wlD<0jCE@8P zoo?69GrLc!J6YmrBdF>xGEo%jF9dXih1JG6Jo zJl;};AGZ2~{jI2&B5kz7!{cg4J|;h^PSitBr;-;ck~XNyT9sk19wLXHnsfb@Bz4Iq zG(U3N@{3yf;KrJ}B;Zy5$^KKzo$!s2z@L|2tnJRch}z_5yP`Uj8JW=(^o@7*pgc@2KXyNgJKK%Yd-t!yS(g zmu^w2C@1rh%Gw8d?F^~farfoeZcB~2ogs8Gi>RW-*%*YU^2N*lANJk@Ad0Ks`yX6D z5K!z5b?sfTml(ya(Ii--NfZ`XiXyBO5$oE)ioHiP_JYLTB{5MGjUj3*sYF@87O^G9 z6yNXf%x`9A$JHnIzW3huegFSw@#D^SPVZ;V%$coOHzoSr!!gwgr+i<0db5DNbKgk$ zbk3W7YL-~>{rnrX3*SL67v0nQp3gViM|bqR+iK64Pq#eqKb={wY{Ao_nTfqWP5bHW zk`-f9{_Je5G173qrF+)~O^ilUkx$YaHOa9ws@vp^31Q{F3Vi%9b&y*RU#XP;#dC97 zlxmgz!!w`EG0hqdN#54Fysu|(E*xnQ5qK+onyk{Vxz*|G{r=Po8uGcH&gbn z{4Tc4Aipz{kM=otvGSrap%+$Bjz^yw3D^yv`JsZPC8XJ{I{&TrldAM ztzFq7|F_rI{l50x`F+)kU7FWpgY-?{hS`zTHg&o;GZKK`T0 zl@jwJXMVRbYvF($9<6%Z>iub*r}er=e01M`;K%n`cDVWUt*?#0)*1Wu{@8+$~hiBx) ze_vtEmXhn&tj<~bNz%*%{VJcBon5`^XOli1(CHJu#ar9VPKm!(XXX0Fr6Az3l85U`s+03vYYLZSx8UJ~-^wTYT^`>qe8tuI@2(sD$1VSmnFYoJ6BDHO5|3A&*kfJ5oQdDx@JM(# z{K^JPR=cS(W(&u#y{55sm_=%H_5BxhcrNSpya|dmn=hy1* z%R5)!EZKKo%MaJ?Jyv6`smHvyDy@E9`%SIX#$T`Ut9g0s;Jy96yb!f!<;}yDudE19 z{$cdsO06E2K9*51vg@U;d2i%RsB&WW@XI-s^OEs&RM+}Pg1@=qccA3ll&CcoZUsyF>Nl*n(_Ljb|JSWOzrt? zyUUX;O=G_3I@~>T-HnyiCifb7Z^49Ce;q6G!T5mF-#)Z-Z#LY#w%vOxKH9h7>POLk zE@;2({DmF1iVZ)xleTJx=dTmp-=1+{)%FU58vgP_!%H7tnRUkZmv?R_H=F!dwVSQ$ zCO7UlbFXLn=`9wgoQ?jlMTt?LKD}D;%z&9?Kl`;w>reaDzd7vuf#<(Hy7aulkG^Z_ z-t3#7(V^XI_nX!~d^KWq{(-AG$KKu=@zg89b#KSXNo(sBZ27%@{pY`ZerELZ(LYss zbg-(=gJMf^57wDzI~%?Jv-WjEpB7*AsLrdVk{f%##&TGMETvR7k}?!yF9O14|kV;K5pAV@^~-oZ z?m<$gnCH7L-H!Hu95ij;)pXmH%K6WBUHzi6&!ozq#ePWfKi6h##>b6g3v=Jvzx(f1 z*H_fu@@PWtzTPWVZ5-bF$ngD@?|ixU+{F>WskvFDE)H2WW7GAin;Lq}d3LgUQn_Uz z)smx1E?ed|WZ=-KBRg-ewGJ4(dFiezD-Kp(k(8VD{>Ekpi^Y$0Ss6OBgJZ1_`zO=}^Ix~82a5B=iD)ybdnNJTljV{0JUc1cP_CNjD%KzkY!`_ak zlRO^HFVcK+WbldbmHBHwIkwk&eqDvrw-V2dKGJ7J($Kk=zVdFg?!7&C%Psq%T%({0 z&mQ(U_uyd9A-|T%Yp+yAcad-uG$LX~>?tWtSZ<*QisaA(QrmrF!-` zKh;+L)S)Bhb{XSlY&vMYc{{1Z>i7PhHTXo2hR+8yd}ng3*Vr$9I63io3HrIf>6QES zonI8ccU({Y@h*AuK=(J+b?^50r<>6iuQaUX;WI)Jx9Bv=aegNxu7;E7_Z2|9z} z0Q-%k<=}I02b3-$NnOE6FdrNRdB6uZ0@{HHFdrNM--4ppL(&Kg0W-l?a2h-Y)v(37 z1Bd`~z#eb~`~@muHrNT6!F+H8{0RO8Rmw=x8z2#^0iS^zzzgphXajJ7yfd`;m zIovw~?}72)1Mn%h4T@pkNqx{8j06k75%4o8S^;KY07wQOg3rM(pd8*P)&ZEoTyOw< z58NtAQe!X#j0c;*m*64rt&Fk+?}4dc7x)%<;C&CRff=j>7r(7zDz=La-iWfoyOe{0)4n<7K#@A!rY}fdSxsUr-4OaJ;($n!3B_76Mlm&-~jjxTn0D6L*P!U9KeZadQ6hwnW zFdobXE5TN<1MCB*zy_^o^KWA{?y#ts(6kI9nH7IRE! zRCG{CLQGJ+Ioce`KT#}|EJ^m|-_+#agOqC5cJL$4ln@mYL7vbLL`THMCdPz`NHuNh zXb-*yg~rCkm|+t?btnQ0i3o~`jYIT=i-ryVk&9UI+n!RziVn7uBF$!`AVT<5sge`3 zF&vC86XG-x3pK@r3SYF*s#1kKlYjZTsVOueYD`o@a*!z`Hc?zKOMZUN%<1)lA}-ac zIWrD5SrQWCWE(YWI<4oj1G?#{uqtUY=xW6VU+R0iu0I6#*TVbO!&vCg$K@) z8XX%U|DGzkA!l(I6&n^6o@_~aMRG?a+Y?f?sxwbU$A!j*$?F9~mpB!+9hUqXDx_9M4`v)qCms#7?Ai4?I(Kr`ox?T|3ln8Lx&?{Yag#7JXDWKw9H z*_0p``77;dGE?s9IEAWz=CKx2Oc?d1YK}UOyK3w_?x>}ju$;#!CN?1|)U37V+^@uV zbadvhC^^SpVMmRVL#e1~ONxyf8Lth_p(ap&YY8GRFf@z`BFmz>)T^f{VJDVQYp_B1 z#k!~Z6dF54uzw7Nbw08W#SBV=*8ocqAX_Wb%W%ZC=%DGktWOe*V@BO2_|*G zMmvoPH7P@@gNM$3+@0qMSehNx)RGtV#7+?7w2hrrH;CNy@8#>_VQkDlT4?44S4oDF(S=InOAq6E28XgrG)6S3O@5f`bzd zLGD!?BNT>NVHkRR(F2LRk$X)?TVlek)JJ)SVYfgtXLW`w&r!7VZ~jetTs}Eegz!XU zT0)#DCf;H~7m3y-qT*3~Dc7K0+tO|!@H zNTnvwlt2@Zs90QMgak!lo*+UmU!LMgue{K`f`TtT9A1VY`T8ohmETjxQiFQR;fK~G zUGo(Kq&&O_jf#ykJ6`F?gN_>4Xv|=OxJ*SfRP`; zX(gD)CX9(PCpqSsJcK#Tv!F2|*W`(TY9qlE!V~0pN1t>xOC5tTiYOzHQrn#QtF`Z7 zPuIjKd`zkxtmtY9&)?~)D{d5Z6AqT;sfU^#b&AfZ3W`A%ar@IXQwlmZA<`VDOSx{O z3pHWJfhmJ<uJ}4x#JDX?y6RYU|_bBm!a%rHg=*B1#w&8XFxO=a_VPlB6cx6pEZe zZxb464jrkiUFh;sU0yJS$-}EdYIMDWJvH$d^^{z6o;_mfMdP)Dhq~-hLw9alS9$Hh zQ(YI8Ot(%Gi}eF4XPy+lEHu%zybw2C#ZluHi7VCw$7DFJT{IpQW{GMldP_@8gyiT? z<47_TD-jq15^)hg%R>>dO~|Tafyq|6dWi)Cvg24sUa%8{KKfsHMKx8}d4*S^HnUf{ z)QJR$3x5j7u}W}sn15bZ=jj-#()NnI<68zpQx4r)$pDQR=8VX{TMNy(HLP0LlX zw=`CbusF|B#jYhPR0Ql;Yh?dKDGO7_NrA>xiH>6vVhhSjfD$2eGr~7#wZUGI)uo}A zm9*U|HMy5&o5q^FzC!*vD@V1KI?H_h@GF9Imic;%O3pa*R69%uDJ9@Il*?JDEOJrQ zomC(bYC`Qoe*X(uYYP(W6l z^>JFOoGfRV!&489XU<~Jw%8xXDZHFLWP|4s8oyo^BHR2I{_(WnANa>M**|CXS{>Oi z=8NogoL_Jvq7tI9ei9c%6N6V}nqp5Ku$*-QYLH@}XYZUAmExVfKX#hM4%Yrr{HQgH z)V?x)qRn&sUYRZO?UP9=hT+lIY#*0>X56Gvgen?_Hnz|N8@R>Lfju?ew3;bvS< z%T3o={4_RId(P^>xUuNAaCt<%vj|osb@Zaj8kRnu%7=Y)-&SPqMdr)6s4^($?Q z%X8%}6cwH08imep*|yem$5lE<>+&Uf5IRDnR1^K?&FNBA?T#Iy@8Cuokn_@$^Ad~L zxb;M_*LB3~wOqytvGNR3HyVtUEveO{h>br6TV6>oaT_t8idjuq^LD3Jz{< zUUqB!ejF5JoX9_p*X>rY&77AvH#PT=HE-woTUM)W){*?Jb8JTzNUq*_%Q9_8j}+`a zfiomicaXKz9XG93l4)yjkiTyO%jpXWwoI`tn0IS)3YmUr&0DuAZ}mQSLJ>HWVVk{8 z@+qG;+nTp#cixiSd2^@SKenn@Vn~#+uPH=w^T}JWKYvSR(_2$B@-sey54QC?Y%^Ed zcF)XDp8_B9S01$;Uy6ggy<2TF=SoG(%4cp(nPp4KytO>z)`k`LkFBGm?b~cya1cq$ zo4VDOxhikX_JR|OZ8J964yEDzP3u&tOa~arC-YZLm(S;=AF~}>kb7ue-mVXkZ+R)p z3J%ODI62F>zTr5t$Cxg6pDfOD_v4xx(#-dcLnc4RX`w{2WULAaNa zqbGaLDWW1cVO#xynkSrB#meRF+)!|GKBaf{2YG8Z-9I+BcC%XXl4of-k8B%1D%fW~ zTe)EOLD_q_KnCQc&dFPI1bHLpv|JEWXmZ|{ZqfRNb#b%ixyR>`<)xX(5@Zkkzk42n zk`HWikJwUX+BR;nWiCLup#YJK1sNOJlVX0kC)eUwE~sX3hDhA9rsmDrhH8M{710_u z*Bcu=Z*7NzDRKmDDF>-mdHdx}*=1X{28odCL|#goZT32Q;^niBiATLUxuPH=lcQC< z0iuCS%ipy`8v$F|e0Xzf);zQk+2;LYQ&2~>cA6p5YDPL3z_YydDLU)TUuL~ITStcN zm}8r_mn%97J7ppAJNM-JyeYe>JuKQ~*es24NrE zlzV)QZQfGU0r)A`JKLH}+gdC6iG#UEaFD<2ge`5JRJ3UCZtYP4!(cUU`4%}++)JQK z5w(gWD!Ez_6>APB70YPLR7~ipcCP1&s~WkLkTb?MbA~PBFx4gHOy2SXx0dgtGf2Ri zt@%ez$~Gy+3l`qOj{YLLK%&t}NI}-CFLUqXijz3anFXho~R3?b-}~@~lTu z?;+*RkWQ{yN2bTD=t$Lkv8Aj=hbf1vTFzUrpx|Vt^t$z6?$J5lSPIpq`^Qo#(#tbQHy0WOSFn3}LBl*#?cyn- z{?I5U`v;rC+VX<+TO}8l2C&WHrp?0;B-M(RlSZA~j03qxmr=*Ea7F%-y;KV|siTr! zV=dS`CHMGAG@63ln`{d{%ssjhxvd`C7NG1l7B_T^rHIqGF&lsM!en6w1jZ=thx~d55;$+PswtYUU!z)5kVrZ|;%# z1LZ|G81ocE9?ZSH*}y1y%|9|B!P35IQ+bi9NrD`eCNbs&JR0?KGxt*RDENNvA-G5 zJB%@hQK@IlMa7cJw^1ins1qn5>hzVq*S7jZe(Ef0y)*V=IFtKo_EswDL)ixFas{Bw zmxm0wQ$v#w{gGVhF&U7%Hp;?7DDhPy&%JA@eXv}WF|EU#j`CIvFlbWLBwlV!4x6oE zb|#!tR1TtO&=F9yC7-&s6DfJKKg!#cN>y#odQ@)NCe^~#hp3jwQ1GRdRQipUoj7JVGNG47iglxw)C*usA3cDH0V1A?|bGJ1h!IyKoYp z5Qo(goDk2=!YQrz!h4DKPo%e(<4qbTq{rA3pnNC|ctl;oW5*(X6u15$3M7M6uoh&1 zkHJsi4^STdv;=Ph3&79SNprwTumc6Ogz};2eyHOM0oj`vO3C4hF zU?o@&@I!#oDewb$2uir&8FtVT^aMjd5QqaQU?bQIPJ^r9SK#B0`~h`AThI**06`!c zi~-X?8b}AHz<1ydD1ypU6VQH;ATSOr2S>nl@ECY|V6Oz|1tP&ruoavE1;Eo2&(VY4 zU?fNdAAk&ipSqI10GGgBKtF(96Ep_xKu<6jB!Gor8^{7z!5!d&y(8s7UCObG zzzWj9W^e?20dl}^z#SE>251So0TW07Gr&r)7n}k);1O`c9+O(29q0kx1<@c0OaqI+ zhhQ%_4SoO*fD87XlmWFtJJ1)<{**W{9nc%8*~S>za7%&qo2I*iQ_!L|QcfcRO z3;TMifF>XS3IW^w3jFeSiu}X`-(PzonQ~h0_VWD z;1+laiek@DIZzw41YH5`IWhqYc-fw#>o6+-zX5mbDWW|`wLlBd1@r^KAQnsl^S~Og z0~`UL1KN+24}Jx1*lSb<)CA2zXAlU2Kn$1&=7QB=J2(Q)f}gS$r93+D2U?s=^pMxCm7`W9%TL)D^ zUCJ#V$dV~HT6pRCl!G~ZE$O1or zd%&eW_6LHBpe|?vT7du%2;K)VAQ?;p3&94kADjhW1KMMi2Yv@04KRlQ4Z!Q5KL`Oa zU;4x6pf%_W`h#F#0kgpxkO9tu@4#)~)(CkB%7faV9e5iI z1LMGAuo)Z$r@=LFA9yxKJVATV6AS|uFbT{9%fNo{1Go+T1SOiFtUzPX5d;Dg7!9U@ z&0rrm4X%J(@FytS6mCE#Fc3t6@nAk!13m;ao{u%- ziEPRNu?^20)|H;bqbyH|iydixCn_ul85SEKMGp^4sBoM&U1FodAjSQE#d5J? zsA!6CbEC&}algouzPp)mMTiPX$9>H)5y(kzZ@Rr0sCZqhm_<(YKvY&A9~NE2z6%P- z6hiey&LtlomYl9qrCxjv505MBpOeH>%??l2Qux@-=5X$Xr)^OPnkV<93KcZU;W1IE zcyX-}yjES(LwI(VFFasscgaudp~}!reB_t%1a3$K@RB#|+eG8Ig8J zGeo9zY2|4-#fVbx<)xg(6I@h2>V{Z2aPoLNF3-gS9Jtz-AD@IDWy;u}Qe(gIkepP$ zytC7Yrc|nw-9&j%4iB~2PwJnkMF!ao=^-YRq~i(l*4I~aPCPB=;EqZb87m6i*H{0f z8%fhlkZreVlD$7Q0MewQE^C1?k)Z;z!Rj*bPx*9JUstEjl-b zOM19chv`J<15cF&Rg z^o%|US{uj!deYCH1l3pl%9XRHU%L+o<^F;JO~H`2PS5i$9|}TV2S>{m&sEZsm*~*NvHXlBx&UmK zq%B8cl83Bf>FkLj)O=^AoJ)wLHqz+z#KTl*y^iPEy8X0x&`Gh4*(CcSPScZK=y)B@ zu?M9}VTk7^aO0JtDqdWB5~Wk7jP`_*T__(qjol{fnWrafI4Mzrk5$_xOVSyK2RqpZ z^$|`)Qe#Kw(%}(KcBwwB$u3!|F6D^pH+#@LM|r*wlOeQht#q7iARQX3)U_bh%9#+% z@==}++R?eMucIN{BXVQCVi^fa1S(#smO9w~2UK%yOAv>lE+5*4GY+4$Y*u0R6ys+29EDgKP{ zP+m`fd~@=u0rVhF&dM(!K<2BnO`eIO5@=3Qh9D<&XV9n8I|We8dIO4%nDX)q5k#Md z7^wC{$~3PD(E1_F)V^PJLVk)D0U)**CLDJDV{(%eg;kP-Am>~C;e^daKY^EL#36c) z+xd}V?FlT4pxtY?XQEu~l8jj^`#u#PWla_^Z>Bc}V6SNuU0*3e_S(LG6^1@Ob}73I zQFqbeN`-dW;(AN`8a+JHY|%wwiv~kulAJcmFti1}{L-Cwbrq{cZf+uyn33@MkimdW z-v}rsHimjZ+VACe;T22^)a*{=XSmUAc zl|v2^!IvmOU)0TDR1jy}+-MOe4%wi-H3Au~^wgM>2!HTe1{9z&fgckegsk-Tma8$I zye4B5z9~K)RXB{4r>ATg;~;VYTU@E;Di#n?r6&&JWeYgK8cUERNp?)zTjgU~2#CRZ zHb${7UR;D~8iN;J#0AAgqaKJ8yx*G7M^To^(TfTl8ADNoRsAVsthi2$H;*M_FE8PO zlqdnA#Qp*p^5`n07{n0-=YTi|$yP)wPK?2|5_~CDO8A294tVPoW;t;hud$2XM3UXb zM@7V#=v7U!74)NA!4W#HZdHkpN|&}vPPjcfBDL_gSTPZFR2cck*~Zsdu&gNpbAnu; z`s@*9u8BUhx3^kwRI-?hi|M{xXnZV!R_aYOMV1FtY=)O#-$a>RrVNsx7}(Qbx2#q{ zSVng!&;I3?VUc^gMN!evqfjzkT@%J8G(+=_h($Z1D0+C%^iUj@F0J$!W)pT3V}mqV zP|wCEB!;2M$Y)EIWV_U&*eiE;zEadK_Ml9aazgkotkmEfcVA-d!k$HC%c`>g?1qtF ztwkxox+fZ)B}?+uK+XARG(2Sjfwjp{^1WzLZcS*- zd?A8RVuG64vjN!|8>F-ttn$fIIdK-%Mm?d_vPzZM2A3g?q(U|Y>adea-#Y!uuJ z=R~5}ld*~B_{b=VX^9f{Q=`Qhbx9DNiGvN45ZX7~lq%&I7fQ8K^ErBmfI4vSDWx@w zWg^jdVaYB;GEi5AiM^uw_~0BbDp9f=G~9^#t(fbaDV14qrf4`TQG%yRa_5dj6)&z% zp5!uAt*GfPSyHtUZRX*@zM6_As9I1K;ZUo}mSsoExzH%l9=I2Xjt#~8_T<5cJF(c% z&_s)TQq)S(HQ0MCoa4(4zTl>MO3Q}v337cBiAloUg?Jvval*%k@|EUwa^i{?m$jO< zGG*iw^nRoub?uDZ+5PeM7UiSV1jkWAWu;x{?C|_t} zib%K35Ul-0IOIOs5@`y;&k%Zhhl)2^go}?VL;dMbmEo=EPnE63N0lwaN0lwZ=}(pB zR`jRJ&~W;*%eJBTQ)P=5?b?NzRN1_Bn-(U!+pre&r<%5IL4T_B7avuIhS8rYL)y}x zDrqu|d{L6$rcImhwk=iJx@GHjZJMdFZL7AS?d;KL)2>ZeTf3>b4gIN>!`jiGD*a9L zr%IEV{!|&-g8oz)-lln23%fL%Tlu$bZ8vQe?jLTKCX=b1$)1zp{^oE^8JSwrpWSWq zaQvyVbtwI*vSnE7Htp=;hP9@h3hu~_F#NaR3$eKi*`(O8X&L*v$*5(}-au409_Sg~ljcZ@gN;;~y?Uh=nC z_{O50dc71G8y7W>mP(@O0vvB4#k~vF5Z7f`1+W`=dyB_-@e-bhR$&&*f@SG%8LJ*Q z(;PR~*lDRb*1Bzr^TmqE{xtK~3UaNQkaJa#dsVd7h~`=knrl61uJxd~)`J#WH?6dy zwbo4=GQoXRdW<=!nPWhdekDFF+G<3rRvOWUtkESQMofC*gS%%;Xw@^#o5x!)h-gmu z>rOOlt3T0Nf1;KCL`(e%3WXj4P$EKpYBl+QuH9l0(-)*VlAg?`i6EW^aCH^4OH>7Z zg^Q@Rxc`wDf;ST)ALLO|EN}8!vvRo;kD<;y7Sm)g&Y5s!8y7puLT>CA6YyW$`t|To zE)Foa5O-&B<$~)OUMfI+6DJWf3;KxoM2jUBs|{i$6t|Jl_=3bNjb`gen>e9fg}b?l zODDKfo*fX@iWQ5ARWHkFQ5TaA_(QL$G9?6=;q(nqS(!(Q$FYHCX_*72xFrUadewmsj;sJa|v6Si!-X9wvUxUT)MJwE;zdml0#Ch-Vjy7L7B9 zqsNNG^_!9sC2%BKIh50b*(9y~Q;s^UieSBz&tUNblMyU4g^a+36H@qM)T&f@;am`2 z&6kA96eZn>o90+T)Vpb}a}$LbF|H#M%+bm8ekXZN4_C@G4W`v~nrg;SFD+jN;Km@< zdyp5RlF3&&Xxs92zP&VX#iFdja8)l?F400O{Xw|*LQ7FpYvW94H}3B8bQkk1tivE* z#X<*i7|V2YCqv{mZd}kxDXp=frpPss)>hDHXiWun)vFTtAlzXShPSs^VN#0S+gmI$ zDH5$K#)3rz2Rq712b&ct$TqbngG>>aDB|+LA$xeNL|HhTrl~l(H$I2^O!V9YHF#Wk z&@@$jdm(Z?J_K1J&-&39QEx&?r+krL#)Bii)POzt>KTm+2cx4X!Eq7Tk}^&d7D`Ee z4Kg}hgb$^>KpGdx>UE2_dXQhNgQ&2T1YR$(pHbFI?A}m^W>+IH?%Nfw@3U`wl|rwr z78xdPMW`3B;lkXAXtQh}=Na-6F${_kufU9=5s-~VXQZxya0V-}Mo!a+!d5MbA<=kD zMqU4qwXj1g&LZJhQRMf2i}Pq$@`7(Xma|YpXjKbe;)bV($4GRg9E8IYVW|Id?@7z- zxO2+yYg2{{c}U}&OEQN9AxI>M0;WcUdWG!ca1}SyZSn?9T&klFr+aqVQzG{6?l6f$ zCx`|}%iE%{;u58^z>rK()<fXbJbBaOo1+evhT1M73BEdv~% zo5h(yq6&7#*0urk_7~g~*PR*6(_@s*K)Nc9PNc_62S%FF&3Jovm2VHrvO)#D4b?Fo zR>OMUk^ER@sZ#b+@8Zp@Juq@1x*@Sx(4zWX zqJ(mYCPM3Q@^C=+F61>@exVyOurrpo=(im@)3O0Qq)cls==`fzRZJ*NUEnh{6O9F$ zp2mjtM~=iqbio}yTBZ~eLcACggR|oLEls}p`o4vGnBnw7a7=0j%2#cg>=0d>Se}u$ zBD%Zdu~W=T@IZom&}5+QDdQl@bo@HU%Z$6q14}o#OB2t@ieK%(at(T;SPKbtK?jXo zK4V|gp)IhcFd7tlU~Z21(XfZLR=g5VtU_@^R~F~g!9rb^QWvSkXa+Y}H4=+n$|9KR z1YTi|3L8cv`^rnTVku5cXT_t!v zY^tv5aRAEPpj{=W3ICoEuRD$Q)v4XQ<0tgKrom9R)BpV8{7pR z2E+#hfcL>zumog+Lg4KRKR`Dy7Aygo;5;Y*u5Q@d1EPVl|1}H8zM=#XQG5^;@#TTj z0XQNvJ}1E{eO$;)wpnztd`wC{Cc8!W7*UoCe2nM`zvvu&wBgV(g+q4eD znqj-=OUp3p$(6<>0#zp!te;D0ZBE(>zQ$Z^W@b>i~QQf?!|)R*(kLK_z;^TC>9^25T~syUygIab0+$GJ>CPyK2$fN#TS`CDqvdJyXttixEhVx7RcE$dON zUuQjnb!XQ2qHv@xtoyOCxmo@uqc#rh}HaD{#$U1^G zr_&J0dN`XWu{N=$szdP)VT~#vH0O(f#uhT?a11neB^@q*8)&{tn!`2FT$6O9{B3xR zbrkCktT`VIoUan+lc6J%Sl?qn#)02%9`_8TEUw0QCi8`B7aM(S#!QgAF$?p zkv6dAbV?gpb3RC0Sfh!G`mvKW)fHkFYfpUB7%&hOk?P_!@ZuPdj+semj_)h2JOnhhY zF}ca+;~ab!^09=@#}^m@+41M^0DK4XaWK9uzzWj%9NA6BG1V!5fNul$*HTN?++Rzr zSx=O|r8cZ5v2Mqj`*W#1Yb%?-#(D~C9xn}3S@Za4n8upNN5gd10rIzD2J5b@XR_w; z&oGNMkAH>~);!)BQd#r(W|+;I$1}qm)=C?j%bLe8!#vhJei`Po=JCtG36gV{^_YLpp2DC&PNyoG*qAtT|r{AF}3r zFz|RQaXuI}u{o#Pu$eWd+rZvZ|sz~i~Z@iy#Y zbB?DWgEhy?u$wi<%aF;M<6-!SHOIrShc(B;u$MK*!?2Gvhhx|eO?`eD!>juI0Q89R z=il=P>gE3HKfcIbBk%_SKnWob$HBk?tRM}fgG`VG6np=tztL9JdBg!6lcu_YZ^L2M zMOYtVjVdS153+V+{R!(CtUqQwlXVtr?wbuKS*Ni13D(><8;-N)zS(e$HTTViBdob^ zHXMci*K=!{G02~Pw~7DLweSDV@U?B?6siiX=bptk)%zxL)%kz&e`*`qNQ9D(LZqVB zKTL@)>=}VS2mpZ~7+8Q6q=9sh39>*o$N_~wLW}bSM&J(uKp+SP7GMQwART0aERYRy zKp~LO0r>(W@CN}P5Cj7Yu!1y@4l+R&$Ocr7JPsSYa7>!whi`*7YaWLUKCF2hHWX*g zgow&3&w)ENkx54CPo;pGN+dXU%<} zp#p2}BMlWOQ~Ro16iS7ZGtYa{E=SXXC#nsp7< zXIR%{eU>%VJETkcoONy1U$Cyj`W)-Jtk1Kq$NEdw^;utF-GKF1tQ)eXdP(`&i1pX3 z8?(O1n%X(V?-J{#tS__nXZ;Q9W~{HUZqE8D>lUo9v2MxwI_p-fzh&K;^>?h>u>PKP zTYOW$MBlEU82G0j>IWpWE5%(f98!7wlMmHmOOS zXZ;iFP}VuDLs>tNP5SqHJsWj&m=jrB0rd92^ZH|3iV-)?~NK>wlqNx@0Q zycdrDGxY0>0hp7$_f#AN51Z`2ZaM)A*5H zy6<`i-}K@17oj-PyXo;y90$??ANRwtfsgy+nB3o$ozr>x2sZ;@M$X8ufpoyfgXkD( zp?B67h2>Sk$-n>mcMkmb=K!^p01Wm@y-P)#A0W}0)U1{PoiX&@bBf-H~?azG)V#^Vc&z#jyFKoATpzzWhpI>-cB zARFX>LO>1E7Z`y*2mpZ~7+8Q6q=9sh39>*o$N_~wLdW0>jKCiRfItuoEWirVKsv|- zSs)wafI=Xl^YjHq;12>oAP5E)Ux|205S*NGNb$UVl zk97L6MpIOu0DKz;qu!DJRi}T`>8CpVyG}pT=|6P(Pg&CxS%mkOPXDdb&vhC}CU>fP z7o9Gm(*~V()oC}KcGu~mI_;s;o;qDjr@eIATc>?=y0}i4&}m9=dN`CUP$E9!J5ovy6Y^!q?s|ElP8Rh_P;(?*@HuG2Mix~5Lo(&^edT}P+u z>U2GwuCLP#bh@EV({st%^f%V&COX|zr~P%hnNBy?=@vTOQm0$#bZeb%qtk75x}8q9 z*Xh@Ex`R%?uG1ZLx|2=^=yYeD?xNFOb-J5Qch~72I^9#J>6vnE`SsT6H*~s>PWRR6 zH+A|gou+xYHoQQcrun(noaX3SP4jZCrn$LR)BIekc^pvt*LQU0Lv(tmPQR9kp=!*x1Brz3SbN~cHY^hlkK*6C3?9i!8+ zI&IPE(K;Qc)A2f;pwo#uJw~UKbb72#C+qY$ou=PD)7G~MIz3URC+YNLown-q6rG-` z)6;Z%x=zo~Xt7oxYpEOR-M>GMIUv?bFkeS`iu|Fzv6iEimnvVF7=b?s0D&MFSb!Cz zfpm}wvOqS-0fj(9I5ZD30vZnk0QHN(fZBr*o$N_~w!ZngFFam!N00KcU zumCGa1L+_WWPxmu0}6qJYb0M_1pXiZ1cG2-0alO((m^K30@)x36aop?NWQ=b`~l_P zOvDS{esoua^eomm6y_^6V&>ynS$jA_SBkNPAP6@q< zb&JNo3B8&1%)noS-opCV!UsZcWxadbcA>YiesaH1=*(lc zp?9%f9Py^m8LY2eyC(E*){l->6Pnr)m49k#s?Z;?e)#ad(0f?#*t%8dy{vzK`c&wB ztaE<&LFoOg-yb4}e}MJiA-9D2LDsLgZ!Pp8)oAP5E)U!E@!N3BnAPuC0 zOppb#K@KPc68d{zUz(%&c=H#bRNQ8aFDlD?{FPR}((myyk{ zE4rMlzg0ADQjq)a6kSo)-zyq76UqDsMK_oAkBSbE^-qfKA#2KixN~zEE9;+GR}bIp zPX67nYx;>->87Gr4lPAG*RIQxwy`e4@z2xgd_{A53lxnjA##69(VRcG70vl~N70d|+2n4~v0<0hnq=QV51+qa7C{H5K^DjcIiL_oXyd-X2>d|+2n4~v0<0hnq=QV51+qa7Ct9)a&iXgjU$B14nx9pXCduaw zG{2$r{m$n6tcvuE^#wNngY{Re|74xb`Y+b}tcvtE>x*puoHakIB6+dC%;v>d^Rp^q zK12C?h0R^iK1lPkDj17oeT~fxtgo|nWzEm3NN%k8Srzen_2eHvt0EO;bABd7@?iZV z`{&7;p9ztQvCd(0FV;V^ruTM`|2J6su)fKr$)>SeIsf zi**^+w^^5EP0v&yUQ#*McUhNbP51f8yaH>w&qulsRnDl&nMMn&G-4FTCDj#pH!PQ z-{+I+u;%-GQeD=3pHIAVg~I3id{TWj=lgt81J;sUZ>5H;U063_U4(UG)&|y1Si7=r z%G!;!KWlf^%~%&@-JG=t>lUm%S+``}k98~7fvj7z=5{BwVa@GQYRlT2?YCp?!@51| z;;dg|U4nH7*1oJ?XI+wYN7kiScVbYOLR6t@Oulu{N^#+pMdz4rE<} zbwAcMS@&mMi}e83wOP~NO-g?q)`M8rWj&a6J=X8AuFrZ1>jtccvTn%wUDl0QzsI^U z>-SkVVLgm>Q`W;-`?C&W-HdfG>*lOYtXr@SVa?;D6w104n}@OP&)UqoHS2KJZCFRJ zZp)gkb147Xv5sQhp7jXUudyD<`YqO+&xQ`HquKm*)}vVSxG%-9?!@M?tOHnESa)VU znspb}ajd(tj%VGCbpmUpe@tZEoz2Iv?!h{Vbx+n~S@&X{%(^%0ajf59J)U(R))QFw zWj&Ggo6vM!N&N(-{89k;|NDoof6n6iUda!tlePX~ru2oqxq#+%G&WKFNdQ@Z);dy< z@5ewcsDNt*3%Cs0x?-LTQUJXVED~e^+OHdcxw#dr0W@E~3yhd=D|2yIG!!ei2D~v} zrg?J$$OW}<5jO!`2HlXLHQ;;T>y3DV^T68&@c_p_A*g`0i2x7@vVb?%E>eIi)-*W-((qGqktQKs^g*=oahZ%Lxw$l_>7+Pz87LK*Y~bTTICkaZ0XTN! z5$|??=8YK)OGSDOc&UrFsH(e8;&W?L)nbt=~Kk+{s+x*uI8BBPx}vqS%kx! zF48II`3erxPx6@jjeP9pf--(AANx}LpYZYDI3DdH;w9E6Df}7m%Uv?iG)fxCexWB8 zX`9Jrs3Hz#O4(34|5e$LonxxMl5|{id_r@4QgfW8IsRC4{E6oHl;)VykxB``hssV# z$3)aCXJuD{^Kll^=Z#~^PQ^`0xKYYju}5u~>}maWK^`ggd|_6N%a!6F;sZBc$X7I7 zX^pvzMgGd|M(dY0AJAopz8FD^y1j_qP@k{FMc>x6?v->I zP~O^nr24!VepSbL>OXhOWnU6Q4(`ivKUGPRI&kf@=z%>!jjZkBP{$UmiTZHIV~*>X11`e#5t;H;0Kw33?@>;_{Q-ajL! zsR+hT_PdI~@9pPGx@n00Ubf>)&K~nI_1jN0$3x_F(vU7KkdH+lLgB6C@L(j$Y8A8} z(nfWY!*{76c}`Z+HVS#wP#%YAN+>nrG1(J#8uM{c95>Qv>1EM{yxPN>WsnuyN=#Y>I~xb}>!ZbWCBd;q+3wQ1cga7$twH-_+*s%kos8 zk89y?HRKzW^<_ElQO6v|*g3kq|KK0EnWuBJj^j_^D0x@eo_AIB@uxJWvl~sFa;a)} z7aVAv{5&NcbWZdg8XHFU3_3iDFZsz=MP=`(TB=Sac|VPr#w;I zm&ft19ELlNsh(}-cxl_ftK5^DL=N+1eL)RPTB>XEk?N*4AC-Dad8*_iwFQo^FZGG~ z^hRjXtK?BdxL49h$4Wh&?4+KG4v_OpabHH`o{kmwlbpDxwI}*$`&!3#`OoV4+uW86 zQn44xbPR_hQ6HG6W1G554Qaa zdsKd8Z@UwF`tgqJ?O=P_K17?hwGi+BOdmq)C-l+gXLXdb()RwTzZAz9_UmPJU*FFu zeF(L6ZQWP;5IV2qu|7}qb$=)4&#S^#!lQm&36I*H5+0pb+8v!&!q&GtZT+Nl?{X5h zHV^A)+WCKV*clu)&4rw`2Tz2(ira|~jxY0Z2ecCvp4Zfb@v1td z591>aLmPK(+b;rtl{!pg*S|`K8T~5N+dWR=uJ!k2b%**3rS53k4;|~{zL&#z`CQFI zovYFOU#Xw82J;Qq)mODeZFsbo$%NmaY#bS8iE8Tb z%SiN_X0c5yF%hYOZ}s#kR*5|F>D{Yae|$#~9#rh@ruwv(B%{>3TjzmezrD9MDZ$Tn z_<5%R2O_^YY99KFPoLH?hpZnP{l*!mPnTu}E~@tZ_wN@u{Bzdv3X1~zHkoPJ_H&m~ z-+k)ZWc}Ldr9v~`jP^d=y~&Ve--qqEe%m}}->5Npzn!^o;g?xb*tSN`@#$9sQtxZh&x=BPClf4W=U(BY4}dsC}6l{Wmnd*jJZSN!(X+#kDM3ab9s zrqjpvP4E1M?;4MKga0xYjkb30^i{?58-|Uyb6g)U55iJs_vd|ItC&`!bkjRoZLMXD zgC=h(2p*a!&1iAxQ@8rkQ)^6?+aZ?{*_#ZTAJ-ikSL9--+ahaAW9hRlaZe_?S~VBYxzfgyDw^aqv6NKuCF&c zLTc|8dSOkw+QWBWeP{6Ca(6x`8k%)++|;nIH`Oa&VfFImZSH^K)%5)Y_w)g;U3mSs z@2^*>Qe{-n1y!FE6rbLv_54!fuWhLH!>%UM>83;X-;`DFhiWNf zC%X6A@QZ0L1C-dbxyO5ci&`uOU#6l1LmaZ#&!T-@4kNQ)M;{yaK($2a}of4@Ug{)M%+ zW_{Wt`&8qrG<2S~SPY9Xb)^*O`C)O;&=1( zt!l+fjJo#l^D}pk+#6Hm%{M)swVUBGwwjB_`i0F$*YIi+ZQPb=IeW6xn7h|Tzn1jN z`MEBir)}(oS3z8S_~=pmTjc|$Tp2v(rwJ{7XxzBRg_`Zupi%xT|DvU z8>X7y7XSO6r9XZSek*IX_2mAg$CLi9HZ|sIVWvyK z!;QUr#F+e>c7HzU;)-T<6Mc{kU0Uuno_V8xt+f5pfsY@?RX@2dV|#-RWy>D=;@pF( zo!-jaUv|^p(ye?wo?B~G-?F(zgxU1v7oRjU6&afUL7%+u4=*`Z*r90E-&?Kv&ah~D z`jm^;Qx~=>=h`SL$~fC&)yx|YtfjiRAM3f`#%rUCoLjQbgD>{YwaFCz1i~EA5DG?Jrh`_ z_LYPRziobE8eYqo|K3j_zwFrEf9zjR>isaxW5e|Lt4$6BC6}GLxm1zbx6gyf^IE4 zl`mhbddbgn8Z?dgD~R)(*53EB&$h7O-XYlQy@jm&#-g6z+#MQN>%c-ae zXX|t?zae~4qi!zmnW`V&v}x{NpPvl={H)*3yjFiN{o`4BC(pQd24~*8z2kx3YcpF_ zUwLQz*?=?4zbia=Ao$$p-EZCAFzK5S1Ag_N_^aQ|=XHO4+VJCG--bnsRa%+fw9B4v z-ESEq(?|IIY1`fQY0$~;g9g3T{m0LS4()yF*%QCXe^kjk{@1c!Qj5R2)7{OI{^7KH zKOHXj+ee|JpKR#Tvb^8V--gcHv0?A5h0E)B^d0thg#&jpyAFNyu+O3G3#!*hUtfK8 zjf#)*XMA<U8P&Q(8bJzouKF?jHRkX3ebPrqr6v8u*X9)&F7BlYZ@5lG}A*|BYPY}-ycHaoVH7u)XG zNyoO+v2EM7lX>6FuUWHZ&HSi8?^WGZRqLF6_T6`%TmJN%?n>jmqCs?AHWQ6dyrkFiu`LO`b2FQ~}}+rRp1A>l@dEP-F%;ty{>OZqjRc7K#?i>8!y+Kh@ptnF zpA%!3sYem@P}o%01u9~d$A-ht1;d+#3f@_(n2t0Np{?Jk#C6Q|dTy_16-nfTzAxJ1I*>SJ;; z>*YMtWqD~waMpj%k&KGMh=?=gLi{+%{q!$P{YH%ija}TU`|sCso${xg@s z&d-G1ns@YMyNrYW)Fd1?sEfj*)i64*cNE0EBT_` z_q^EXNXFaq+~v#9vAAvn|@c&C^9Y_E+}!S-%m2+le2=ouXi*lSEe|%&Um+jwlWMp^{7+SB| z4w6$?_R1?xHhQ+h8QbI3&MO9IX-U;TeLt6&(!hX^_`3bYVVfz~uc8uD$qNyCyFc3X zFy~+=Ehu{rxZbt4f$=j)#Btqp)nu8Qg#e{T-Wf3Xj$FGG2U`>PqzYKVtmJO{+zLZC zNotIb#8oYj5F`tF{eFRtx$cR>y)hXl3ZUmi8azCB$+Z7X0L5@$Pa9{s+Y`^2m< z`&K!!k&PKo+RyBp6;S}g#u=h!EG%q)ECMoXd_?IzIcWsGxnPQq2N7x45i^P;Xv6aq zH73)Jhu7z(l#>3mph6xKd1R9Xc%Eys*3fkI?1Ip(1{IEUZQ7p|aI*SYXxCo${EmaO z(D}h~5~ZNB7(7o*C3=7m^J{vN^Hy58g!RK$L17>w_A7id)|6F+69o_1XcXb60FA;1 z8l3oasbz4xmxp{JzR5JirVN5yG43{&_&}Oh<`*T~fnz2(e8u0~6$93!$r7E!3rI3K z!kj%9l(Va$#6LKg=V_Cc%~`s1I5=i*eOOD&_5DW1ARzeD2@-spDk_Me2d&y$;+Fv#!nj)gS&4Ep^BCQlHCTiD z!ZJ?8QmE9CMq!=o>=1f(qJr@LN6$DaEb&{IGicw$yY0b}qDAB5i3JbWTOBa*eg zfbg`ks1LOrXCfKws1?Gon#*9r^Aqn3+Yb)m8MF|PKyi+Q#B$Uk&rM0L=Rag{U>U?S zK-fD_Zj2wRJ2v>2kqI9t^fr-BNhMyZiG28V&qWd!W+*ASz^))Ku7EhqbeU^wwEc;M zeVc$u6-GStVO-i_e_DHZl#x{$zA0c!Ed4|d3@;B-M`;xkB_rwSNkwzD5|&ZqtYTQahF?dL zX2ElcqQ5w$7KV`5u>KOd_JBi>+@dE_(sQBYGIOAn8QdgtL{-#~=KMTNH>?j6V@^)&?b zF)7a#DUqunEyG>`?uXoK%*;oDfFSDy1;1QFb>i4?IX8|FCcH?c#!9Ix3JT}v!J2-L zHPdMX9#~EqP8wt16V$RRhE1(({D8n|I65KJxH>}96(0G1HLRzF(rjH|p-+A*R9?#D zsW+-p@}z!@2%XqJd;V!CNtID9L7@}L6e)r)vL-RN;@FBrD6-Jjc~xFmf<;a4}?|srOO9iMqB}Vl*t$I9uC5fQaH@*_ik#oweo-nwfJWxN5u{+y))tj8AMS=BSe-Wdqg&553aDqFJ&M~( z(P_3fLS{4chey?84DNGS?NK_tWFm6MPTBw)hiJt*T5!WK*F`mmE#ck^5^ zdur$k11UK~bm1g(#zK_lw-jwPP_c7D;Web4LV3#dmLGmBYd)eMS zs)Z$q7RK%H5sA1FO$k&4Xj`AF9ZDa$lJ=fy@Tu4Ywq z=T!%JT&`j1Es5?Z(^?VXcbpkvp)|PsJPaFqz6ak+W+n=ms+_tySIq)4Jq{Fg>k}`! zz8`<}n2eGdgs|av&t^=6w}IxPmZ@2lcSzB!II+%18f#d8&ntpF9tZZ%>17A+5l(XA z2Q8OtYcAo*D8`Jr4=Z9I(;4UfvrkSTeLkoTuF1+Gm&^9?$JX~dDsIX{Noi9JvJN7DtH&13N(nwKZOgufT zk)BnbJgxUxLh0ocrRkQ1hAx_!FUWJwx*otpZrl5l|NTpfm`}=X>5^~@0NbgmCVYy3 zb90+(eq~J(Mbko`B&z2Bdv;YM1n0@;xTts3`6}mkWXYyQnWym-45RT>8Yp$ks<@BM zi@DtGv)fJAj;}d47usmKDo~HiO+Tp=v9+cxB5+-+pgJCk;Br35R2%}^Xul@ru6N0) zvT2#07F|kAeA-5Wfc@P77}0Kxf8*Tx*Yr%==ub2p9D%;+Rne>G`SWQw*$Kgiwh&mo z0m7hHQZhR)j^4v~QaMb%E0kw16*UssB-wRwHaL%f4YuxkhW+cV=S=9tJ-1<|ZgukP zvv4`@A@2JTE_40d@_OfC1<^%Ip|`A6Q59%R_%c?r9XRJJ?~i+<%%XOUCFBKbJQ0f`g3@fj^`mWVyU9bylE8a|+5ww+J#5}}#MV{NUi#{{kSGBuwEHBnq@Xy^ zcT1n;R{}dzuabBl3Mi`RsC~b{PBuTPs^%DrRU>XHg0Oabim#!lDuMv$3zQ2ORo6Vt z=>hJBK2BJtcgw3e_BxUiLZaIb%|IwOp5euWXV?S$t+xfVIqg2o0??)5!NX$@T4^G? zLxDf``&tS;L1JYs#AvcM0AFGCF8y0ayTy9vX;GjHuuiLfUP-*vEkC~=x{qaI=^P8KWU^IN!n|M87Chx`v1|@Y)cvnRDoWxKzBicq!NADSXdxXf9LWc(;u->Sc5E?6 z?wE0cXpQ-=Rm=?x3@Mmh0R)wjL;>?D>1{b6V~K~Hbr8!~t|-jP~FepRThsE&2Am)2F+1c5AUXV=n7PU;%1F!Ws z={U)_@uOR>I)aT?{NLDXP%W;dvc&W{Qhc62bfKv$kDRdROr8AXvmpX-7`uY$slwum zLl+BMGVAf|@+!*D&cSI`W~ECz#^Z~^nF%Zws`X>GFTqGE&+0MhNqvS^`-^cS?RpSa ztrl&w{Y$!IQ{t8>I{n?~yKv}t;w%Y3RQ%r4>R4-Q68Mb3=5swIuJ!Us;7K=|nl6C+ zQNS}kOJPCDg)@kPmpNXy!%dPJTIAme@3$hDST*k91Y6ZMzp&*X#esou$Sga2 zHl>VIq`(V^y<|rnrv_-Tzy}jImR|DAGrWCgg2?8&C_FFf<@@ve$0(HnnG~}h)f#Wf z%@AJS2W~vCy#VAkPHSO=VI8)f`V7<-F`wls3*9Kq%Og+MLz^>N=8p~nHLAc*i|CF= z^sSY8LBB-1_63AjNHk^1i(FvmbcwC9Rth%3W~e7_o95O%yQ%LB}V`68i6( z!T6!K&)ac7BP}BP($?+B%1TT9B2Ti~=or?e&yRuCfqR^~M#dDh&F#9lqdIoNdCCY# zL=n97>C)5bUOWh({XVVRt;?lz9XZIVKc|2Sj{65!_YtM@@=tlPm05+}y+Nsh;KKO0g>F11D*-pLHw|C+f?5yLez?P5&P#MW&lj__mZ6!wsK{bIxf&3wgm55zXV+-(v5 zjHjHwdql(W>^tk&HC79qo{`RMZ5aaM{CwYyoaNN zo-MIWLMVkhbhTt9qBcdr>eUz9OPst%s>Ou`eLotwq+H@=>?2>C1PkS9Bp90x>&>m4 zOo0p@k{-A{uM8RM`y^nL&UGAWcAB8Q>R-^_W!5206~>u}3O%(QJI-!((S01CVP3C^ zKW(&i`I14Pd%v&iwwg2k{eyunco#kk(q3a7Zi|EE$phn~D{E@!6N4bC;vPs%8eX7` zXak1}DTS+M3RPAyo~9&>ES0MdmXBQhiNOO7LZebltW5{hn`5HX0~*Uzloye6M8g10 z{mT9a2_c&GERKItGbzc{f3N;hkxuu*eCkVp;NiJhS^$<(N~wp___|+gcYtM_uJ{W` zNV%8S>D6YJveVWBW$}sE@d{wAL@?{s(HWopLkn=_RR_uJ7v6%zis$gQiw zPPV%Mu&(HyE^o2I6tnc`;+1!ANs@?R*}89OLWP6qTg)^WW(F+E)MGJ9sHnyE-1ew` zeu)Cl=Be)E}JwE{^K*T>5~zV`u&Nr8xvz9o(G*BzG4 z>uZ+BIsMayClyH-LP?;+Q(p+M{L+$DxAq-8(&*{6K3|u-7RGTs2{P_3YgG6P{c^(` zO`=Sv`D-~ZH8m=X00GmgTiTwA4N6UV>ZzgM3w$Q|sDYI9!J^zRTA+eX!LFcC*-;#7 z!q`1BYo06q_zq3*`~#O9LkgE2PDidPv!`wp`Mgf>s}AJ@wqT?*)1LBrZaiAP8|1%o z(s!*V`F=DR{XVJ~{XD$kilwH=XS60G=(!rS@(4v3BKQJ|aNRAsnQ0G-`1jHZDLJ&!X47@{(`I#b!e_sxXfkap3R!`XCcm*Bb@967EzYlKFG12l zLp^jIV&KB}`J#qNi(A%=^8WjlL<=7Cf!iDi`_%e%fsHt<)E$SIZ1Q-?!_kNQeCJ;z zh7BFV(R_NtOXq_zSQWiQnahyYJazje$9%E||1&;b$+Y2or55lcv*$R!;DS_Gkm!!% zoSRq|)EXEpXn15tp~yymLJKbUYqM!R_qyM+uP*Ft50vyF152q;h_XT;+A#=euaRnu(D9MA7V;uzlqMt7E9vc zpjPX|UCE)JtaNABT(v>l>(N`_M$V7!{;4R{Y8vBmAIe%Sl22zT75c5jK~w)o_B+xO z@;&p-+%t%Q>iyc!e@(4IDX{kh+;U$=j|gwZ%PWoll$^eOzE4k2ey}jk>EabjDwmny zIHxN-L*hOZ!CP5d=4>K8y8BWc?ft5%X8)vN8YmwYonHG%!b2$m3vu^IDW3h0^?|># zt9$^&t^HjND6J^WbcS8viUb<*$48(h;oseC_q4p_gNXW&My-aE(n>kaL@3BaxRv^P z=^Um}G5Z%>+_#tkS|YEse#RafzM%JmSLkTl1Ss>AoT6iR{<-Xj0vwP>3H_?r#bLn>)vcNq&PE%7C;~NucKL;Bxr0k^^rP zjVgnGfJPl*`01q;qNg;8GpBN%>cS^O_LGr4h}>{u&EJI5G4O9USNRP2GL* z-^Kx&{KN}4xbAy`sqGJ(c_M=V%5fhh@qbl1qd+r)$bVh{@Z&l!TZ%=3^c7!>AOgG1 z7{T9;zknpp46v|aT#HcREal(R7EzU|H#A`I!MhLSl1~X_^29KS14YnRl8$YqAD1RU zUX;HErXC+F>FJR#7Dd_%D}N{g^?d0o@d+!Q)3ddAjHU{89E7tl0&<)HV6IOP69_6u z&4)f!hLNzHM%gw|qEu`1+`Pb9X;c;86lbR0G~}L62Zs}KzV7~J`?$1k{rQA6&PvlK zkIf6~=9Xss56!-N@QX_Qp$(hV9|0;)xU3_b(Cq<6sO#}j)JroH#L+DR-t3VSrps%& z>`ei&2|D4-*6!$rb^7M?VimZ^R0I3!Ju3;anuP7Tj}XDS0;}7B3bV7cZY3!(wKpiS zY@+3-W!$yb=}kV7nHPpZj!=sg1NWRBb@;bD7V*{WlM2_X7P(AfjabUVpo+gIZ`oay z*!IoksOO#Ge(QtQ#J&wj(pLa?=lsHSnk;Un(=OX`SFCktw>}1U=4Ps+__-c4Te3Hi zf)bMt#B?%u`r~=)xL^zp)B6Urd1FJE9@~>C@gR*UUnBJ;Hk&sz`3MbE@i#?4vwGzl znt@nm433{idgO1Ud?+wE&l}-N=0|UJo^$++SKYn2RS}j-RKh7&k zFXcL!u`Ion6Dc4ye8q5Lf8XaOlK4U#-Fz#*~@QjPKVR$~Oe;9J5hu3cW;clUcVRRCgMD`}fjl{o_) z41_AXuaS<8q_IERb>}>7;acaEZurSY2i9`}nWJzb^2v)8Bd@Om_|{u{H-Fibg4?zu zZ_K$MbF|~+*dKgv8}5MEuL>1BL2cQ=`rln%kghh{Mm*K8MAq{3(vW!_bpf%q>n01f z{>_Sle~%kRDwZpaWG!icg3bUIJcZPH3cXF&os88|XGVC2itz_2y_-fD*b8XQ@cu2T z?^Cm7y)j-bAZ~g7;p@Gt;B^Q|(D0eSJsyZu5ZXH2cMtQyom&FB1_(G79^XDZ&9)^s z@7q+*iS|ZB%wP}!LbC8v^(<#!ceqoc(39<}*Cl)TVP(Fjznx@cNA+vt52Vo&SXp42 zTlTkF;)V6P!=CH3Dm%cpWS*%slhCU85Bj2LMbCZ9 zk~D39wim@;NANoz=TRm$UXg^`ooa?*jw@p6L8_QjCDdi5moCiJC>g^gsO6309<rAc07MWqH8m=29UUaFDu12f0VVg0>hE?J^f-G)+I5e9>zbHJzkP(vnr4pT z3n^aKj{bZSRSauifkOLFl9Y)b=;E+GuZO9b{$6?VSZP9)`^a^&0(syTH(p)PEtl&p zuA}_VbeN&{5y9pX8+F#p)t|s!AOQjU?Rg$#-AOB=Z(!|d?BI(S7#Mi&muqT{W^js^ zTuuj4pG#Fbf*`S=^8U2OaeK2Ok+FunO3*7UHmi4>(uw$JR0{a+W;|hjY#bcTRXQzK z^gAF*6&3AQX)r~p!`SCSjVJo$tw1?`nU8RKk=1O18bw^0kF}|v6_J3)<>7u>&`(2c z(P^iYLEMfXAMSB5(3+V!DaqoOG7T;5y_=gGq2P7rJ?3vSv*Miey?ms&;r-1z6UkK# z1D_^PuF8rws61AQNlTvq^z+kvKk3EqtLpOdv&!=FpSj%5N3Vl}gY!;KPIFUoo_qb5 zZtfbYs`y)N&c|lr%H{r6o5~imA$@p8I48m_vq(zXNIHjL8P6B1DlO*IIVeE8j!Cgx zItx87FYolO!wS&obom2)cK7)mqh14}=+##j|QihP& zFwP%Mn#Jvu$`*_TcrlXQdh?|$F=Q=THN0H#pI1K~h`ubfo3s0)rQ>Q9_X$$`Y)+By z2aMn`*bl>C77drijt3$uQn@}JW03j>;gZj9DaumjsP!6vjow>DCiT2+5&0WWI$!u7 z6i~Xp6kb*oC#WKa1CkGqA|=V0-pEpp+aE$*M?cle zkRyY7xW0|J}?;O-nOY1@vY9caQ+j`ajK#CPubK zPDTdCMkdz(7Z)QZ@H)=_>0&HhpOXOgJ-PhHTr9R+wPmCA7XRp3=K{6?YKKS?E1_2~ z`}O1BP9!(}3TXLKE>w=VO+sg|6H3Wi$y(FQ{n0#fN=HnmcC6v1zvBss^RN5`e-Aqj zN9Mnp1lsBfF28R8rmlKlw=_a1)*suhbDW>dFPoMHK8_o{K}rzI;Xss1i2I1t;vqsD zK$78vKp)9f5*VVW&mo<*Vgl@>Ez!)J z(Kome=j0$1QbM3yrQ3K2ssteZ!~=p*&>=!XFG$qr3ZLe*Scu|tL^2 z_2YY&`@8ES0OcOqUx+KdJm{wo7#Ns{pXOtVx*rP{7YGR%rk2)vW1-eDN27Ob^aA)LTE4Xkc(Dlr{7|BzWdn<pJoMiMX(1s&$d5Y4cgS;KU$$V0$h&AtALkZ)+%3(`w-ZN4$V=M( z5TmtBNvS4V#R!l!VJ||6;mL;~=AROj@(o<+a$mFDoAVU_A{-O-9T0n*7;~`+By@9j zNyO9=Jyt^vql_@ZHx~>)Vo*Oic>>ip}BtB!0aMbCh_osK0Wrnl0^|>D> zZj85-`1RW*#Psi)*C2@ffv`fz^!wP;@K^s^z)V;R1UQd1mc;%nPGW!i75%$AL~_J6 z+P9r3c!R@>p(Z1_C6~`eG>jiNPMm>(jvk=XRwvC6<~umlj~$=qed#cB-KCf>>1wK^LOn4{ zcK^G8#298ogKB^DyyE;Eko9(lRrpUwW6$g{+!e=V) z!InH>S>xdiS2n;>H(HB$OFr1Xi(c{xJPOl;X?4^@Dx*8ogzB;3(tsSU937ot6;6(# ziR_b6&`~pE!3c#Q-yI`ya7=R~Q67qbJ(Ajt(_8I|76|pf=$g`<%7&;wuQyw)b09+= zO=NJW<~4@PQ6Byz_Kh=N=H&F<;*j@}P$QX;1_95>mZKEJiXgA6BE>IxN1Vn~Wx0hv|f zC;{VoWsaAbX^x`_A5!WBN}>ArCk8qbAe)2bUK3f>dkCwy7Y4ZkNji=wk|?*?KdK_j zNTWaP@nESdvBe&U1bjbSjPD4FY&%tu9 zf8n@}4YLR9OiF5N9nhx^2~k0ySXsBMC(y_6YQ3jweyequl3{4)HBAD?m?oiPRmSefsGQ~|thu@!2ILxc5tcG#5-4piR6Do#SB`2esS|6SOj=4x@mIKi(MXkHO_pjG8i^~-ky?8PlhJ$0t@iYjj zw!R+B(A4#UQ&W2_=J2p# zBQ$!w6W{1?M{?B*63{?pu(*I;#K6HWiYS;pOeVpWMPss9b1QS2%C@PJ4?j6osvEa+ zI`kz8l`tk+J)hF%tN&J}<9CJX`U06c3~G`Osz_zr%jESF*Hg>B;teqYt3%ChqAr3f zJaK!wKsV$%R*;!rgFOEwnUXGP#oxRqfyKMB8)Q4bw;M*(o1~cAYsfUuoo1_}+vNmn zu>A!mAtyO+$g;8!m}M7H{9^H?{C0lcOs5*t1npgu@|g+iUnEMYT0lx`Mc0>DD<9Ma zc;0=OH)rDIg|=P~HeJ%v?P-p#>Hfecouk20{&9h)q5rdf!Ctxir8WQo{i1`9ipuV?jf*q)s|2r(3US*tXlm}&7#%$DNDP+!LUM6 z=`~jgRpten3MsmQU29BjXz|2Wv{l)8Ii?M75V8=4va{6?=A2Uqv&1D-Oz&CO#>^Ef zYo+qC^mxe!WEpe&L!3VQP?53EV2K69+-bN7Hz?$`KV&~mYF~FiQyBFI-qvu-!M3uU zHMzX-sT8uVmSz@cEPrvZ*0a(Wa$~fYJBiqtN&jL8*JFC~0d>$>tx_RLC?LdiiO}sV zY$Eq2k+`{Rad&*Zg9c`stOYi|$H5CMKEE4j5R}qC7M{K8x%pDnMYd^B8DCXuM$avf zBTPBZb$p(efw-Z9qu1y;=g*R=@uCZ)+w>-iA#i~lH{hz7p=28KH^j*>|mV(Y1_}DF@H*1nfHMq zhJ?%JRRda`j}fbN+rlR&p_zur?YWN~E(U1uwYhLJbT`XY^X7No5RG{smYn?R@^h>L zRP7^Bw&IzR=8Hh!qos_Ys^dQs`3k!s4(4{MmaiWjpQkumoesf&gk_5NK27KFx#ET) z5d}0LPQ6NSJTQF8!-$Y+Pc0Zo(;b2Cp{eYNZ zIxIr<_{tl&mjTkLuki>#cC*fNGsi-yY*qWQJ(iJNdWQR7hAmg?Z#fB}ay7LE2ZbR5 zkctC#-M>%WXjKLQ+F8Fkfm1J6&;Z|_XFG+C(zbKAE+H_xY;CP^Tufh`Wp+EiM~Z3& zgFX*71(LHYbK)$LQn_c)dYX(YO_^2#A@5?11F)8YTdVeRn;~Vpq?(b<8D2I?R&aX z&v_!JGUygst42mwaGAg2)Z&3HCT87CVOWS@fsB>yNs~p~^uGb3r@>;gjwJA2zdQP- zxIm0Rej3-ddlB_d%3lB;X8&pT@##PSo-cg`uB3Jy0N%37>(h=)2O z4q@X9)`hp1cNA7o-z$ayQf2Zs(4{(APo8HgeiBuk`L~x(Pd~id53l8`wD!>?n8E#R zIWod!I%>C!?oG}02^7@p`eD89K-=4MeLpP_(7=#iWYoQHETx!{-NRXsA8dhaRn_3I zB$5rt+<66lKfz_3WYvi2q(?k~ciuv^T$uvx;Z9q@&I!+kj8|So4afU-b@*kz>2RkB z&ads&e53vKnEb^>jEcVKod!8GvFb|bu`1mc=?}7h5O+NjQe=ymnp#ViGay6yKIoSS ztqz5J3))zM<7`_Jh+elwA_p$7X8?B4pFi&_ntJ`5exJCx-XAD|)v0~*C1T+om!hMw zon*<>M4#>D6PX?Emk$sSVuK#j)CXf18yEIK0-f0OMAvY&VB|dONBS48n831{_hfDg zRIRJ{?hq^2vvBD#Wk?M^L8^>k_%wNibO+MEXO)>Vti3#+!J=@60VMn;DVz6rOKCAP z;agn4?2yUVOM4B4+Z#5Gp^;}$@4Q{2W*MF$I9q`6l0kpoZU_8Wtl zvOMy{-eLnd2I_F=#8*77JwV;S9oPkQ0y6^FhabawTaZlc->yNgQ<2nMw@o!`&dn-H zNO#mN%$p%;%&x8f7sW=Uw0TF7EjrmXRvhp0xeaR2TH@tMw8O2S`n)lU3xZt|3lZbA zOuBl#KHxp9m{N&${=ynpY#E2jMMWT;b|Ay zcLK7|b|pB9Gop=jqaj{ZxICc;r>WtzGJc!A-i3T!k_^Z(y=hP8a{doKQ z{uPE-)dbO&CI)jvi$1mom1Ad{-TV^{_xhiW==%$Y|1zz~)&@6cN4@nhKKUfhT}TdJ z?ZiQQJ83u;%!S)J%qRu1T%7*B z9KU{<%ybRdOBL94_{i&OFNkvk_`;vtxnSp44wRE@6xBesNR=?S?2i*S&~|z2%Bc{B z0*M;mlMfFTZbAH*9LvlnPwVw#YVRc>C__h;nt3Z1`y`fG8Uj#{X>K2^f$NH~k9>{g zw9IVro@!w$rSvGdAIA3W5W;Sa0$&f3( zfztDIYfB7e?MdWV!A>9pCgtstYUVIM@>`K^IKmY{yZ%Pv#d=Mu9(k!Po-AU#eG16^ z4z&2oL^tjgF~<-qfy%0U4FCNNUb@%;u`PHa_J7xUg7guGivfN(?WR?aj$3;Pb z$DA|kL`oH@Y^s3p$W!TXDaq9Hj1>$jA;v#vjBm zK34}cL}Z~y1EvrDzyRz$ObkQp2Z+NN6>%{e7v%1u0T;qf$WYtydAsKjhnq!qNNFhS z=ldR3%ZON%*aJ4GA`0lh4^cK6xO+#nKSXNcwEC^&k4&Vxl7@3P+6ZDqS zeU@UU={%;!a0W-s)0M?iKV6~3!lo7#)KMD@k`oFfB-|i+86hAd-i|624xUo5#%L(7 zd`k}-af?RgUf5-R$&U>?c#lm#pO_ki6}QTNkujn)n^s{*k_;Io%>v=yb&2c!(ACt| z>8L3jO6nDKn3TH2QM-Qe0p2QU5XE~>5Gt;<;-dU#&Chn-ltYaEqiR2H%VGki$xFYC zCbEh=3xY8=5TOFYudN!@hsUn2TWdhaKE<)FQ;oN-U@YaN6(P7-*C4TnXm_bPQ*kZj zU}DqNYP+QZ`p^c)koRd45pg`5?iVCTL$lY)JCo(zJBLYdS-O5hjE{-C`E}~N<)sOk z_A(=tW_42r7Wn{*aE`a9Iw)-x!X<$@6&Zi&MLX6<)SJQT z?mP~KpftS*u&3i#61dEYh7P(zgL_oS*D6;|du;mifEKAbA^f1N!fAhXam6tF7FaZ? z1l}}h;3=bYXG!ZN)+jN;xI2m+v!NZs<2N;6e#~REQ|TikX8%X+l_n@JF!pZJq7iio z8x0&(uBU#fyRM-DFc3jLPT6x_${`DNs{W+=(V?atiFQUUo@B~4teJ?D#>L%RV0%$q zu3t8GCJPm?fW-k8prUUbWGt`d+tJX{atJw&Iw-ISiIP|96-cuG$Gxz+~!Rd{5p?=m%EJqy&ro3po!3%pu%k4!)13Oon;@gjHDF zw~G@em!#A$%%{=ZRmNZwPtmuWBlCo+mIor~xw!Q82V{SP^1+K_Ms7B;4Yh{RH#sfGJYr zX(%a`pIp_!TU%8>V`+XzJL9jXd_=SgzGW0`pr0hw!VWWph(L1qzli?XLOkr4B@$BD zWN;yNe6R6eIy8k~IuUI4*=9*Npi8T%l#dHxmKLlE%kuZe^KAU%E+33VE|*}%mA;nh zRE2mdGjXMcwwKgPOL4ACzoUCU-`yP#qhyg2RtL)JRPtUQTXO-b2Kb7UC2FF>dF6}? zNpD8mw!wY}`*LgLcvf`=CNR&TrwRGrv zbci*Tdn-ef;WTZetS0X6SjU3zKc0y;!iymy{zW~+M5;MUbGplyEm;)YThl8HBT&;Oc^cs25aV%#z>yU5Dxtb{kOH-=9Ub5C?KZnZ=FqcoSJX0!w|P{g z7WaoLv&;xo!kxKCm)a4i%E-psMbDO`Czf(NiLB`feLZk=sB-@q&R|SvMaixoJKhhu z5}EikJsN3jt+-Lk2@702s(-V3gDBI+C zgTcc`jbcRLDByR$e2`Wf^gto{7z#*G#ku%RfH^M`8Wc$HG;8H6=aYu1Qpj#KSn9FP zvCkrBcvgW;apUWA2R@n%Dc%$Faeqid_3+4-x$Dd*0W;7io|wC=3yBjQz~a>;shHkF&eu)~CtsUYmLj*IW*o z_^QoVKVRO3;VQi-lXOr$n8W<>CZ%b3Fi4VeWUKQiv@md_Pl(}`=6^#EbWk7De;6Gf z&opeqq-7pilW`p<1Q5it>9SR6k;Qu_&B=flhs4?e2FCO_ufN|rAFm_tl2A!H_ z)tU#}Pe7RPZJ|@EHa_xP39KIyv@O;`-Km#}c1yVNEXy*M#HEK{D~0i_Op_#}oni(c z|G<-b8fta;!UqDnQS@nY@a!8izF>0%;TNQ(DSJo6mOBnTYc@ckMUx7yYOraJqaWmo z$=_PWwzl~!xsrATx=<_|d#DTGUfcDVJ{&$lP*F+18~a!|tV2ry+wr3T%1N3=17ea1 zgjLtvil)rAH@TXbS&sr?LK$CdO`ytNc~PGTcVWoX;rWT)#y)p&%Y#u%NiCn0%gY+}54YziyD4yN-5EbE5nPsOzwgVgl&=KbzWvz?^2Dhkg| z_cyxPO12k!wUk!pcT5IduCP(lEM2xlj$uv?X51=aF=EG5rGnJAuNrpL$s&L;6zlI` zWhvD;%9NQVdsZBQ@rfh>rWrz}t3tKO)-l3H;8ql^uJ=$3`do3RE^DsJYWV9beP?GV zT#gQ;I4%X1#mf3PYt57`W(wc#OHydmQ!GNqkp(YY80{Mu3zKrJTKvKJZ!Dsp+-aydey3jl7ra+kPu&al zFL^M`^d(1(d}jUTX_FOeqa)x#t@Zi!n!Xo((i`kl$@6qKY2h*9KC7 zE^n^h%8@akzW2y<3cKX8-7yZEC`E1e8BXYBs4S~7=2LQNQvRKn#K@0_e>l4cq@gzm z`k9G9@n)nq2qY+gTVYUj`p;+v_!$r+!R*p znwFE+S-VC8T!@_USg6m%{_Vf4r*`~&WB2xT#9LZBz##=Q`4LOV8&E*KHbrL8IEDJ` z%znQA`YEhdz!vhXPOX%-*99Es{4>QD#5#2J^_$?+(zqXL+u$A3Kz9wOmrP`d>~vUf zi|A3)MotCzKe*?uu_womlt#e}z^Xpz`ETJNhHcS0jd>}lT_exOyy6)*WHlFztGRjF zPi$JShTeWQ**m`8!y}_G;dy^9V(5OJRcLXJYrS&QD@yL>;VJo;YyP251A&=XTPxp2 zf>y$I))Gqv%J?zp+J1NpSDix*@SgT5rC@U|FCkuFXv`~2gd06!UD5pk%4nZS<{N}QSg2l9Fs|V2NQg;Qb9s+|AMgB z44P&XKqEFo%8ymMzprpreP*v4V7amI)7w_}Qko+KK~5B-;G=viTi=5k^AnOkALsV^ zbjrPGc6*|iVoM-P8+6vTT}c={ud}3~Kg$ZJ;gWx^{_egD;`dpeu*G>sj9>uuux6s} z(bvRw@e;TD)ab8c6jA%*r>Cp?5>&pGOn2|uNI0T&MuB%`w$!O^6&J4@QG%~+Ns*&F z$GwX6X_Jk8omqYdt&-NmKu=$M5`~oU*h)pX^VOs^rfC=*aAMCw#Tvf~W zFudtT8UzHSL6mOkMoQpNBGTO<9TJL2cPZT^-O?Zpf^;Y;A&4{r=h+A2dhh+--|zQ6 z&-=Xpymvll_ROqVvt~`6nKf(g$@4blEgA`H>5S@T;ve&f(An8m7-g9swQ3Burwo}) z+W7n|K3*kO3O!(II^}TG5=GZyO%DR`SxO}nTz^G9VhCMP+u=;MJAId`BROvL5p7@8 z;x0T|-(zFX(t=h+pp0|BMa207P+0i&c{rEgM;SI5nOisU<*0OYQjy{ND$XS(ZMi3G z@IL7al!_%<>;&_R@J$>IaJ5j?3d-*hh}VuyV6qrD@6*xSm8X$wwd-pgDo5uGI_}0_ zXK!-|2r<;4Q4iQu12l_WB7mtxx~Bya$GB^3x*|sz+ggyCYl)JF9^ZgMyI85y^=H^D z25k8=oM|^2s5|Fo%yZ^ZX|dZ~IQj97RN^0T?D=Y&^-xd28(19CN@|d?Qzn1xnMu)8 zzP{~_&`ODRwr0RmNX z;lcKWi}&tF1kFOtW$YS@hu>FyT7C%Fk#^Xz-e#E-dR>Pz*ODh@Ii|t&=6aZhAdqmj zPJ!R`A@5cQd`Dq}b;y#?)*L^sjVKAO0iR|hWrg0X?&Bo34-|eafZNMNsEq+%lb5~) zZa|^+Y);dg$0{D%$A|}Wm3d?5bJILu$qoCTb;sy@&LG2;n&(PX+8UdfAx?D}#vkLv zBz;_e?k%eDENc|aF9NcMi%Oa757i)|BYGyGE;TCNV2>SJ>5_Xl4ZFxgUwl|(zu!5M zZZ%(p`v%vSwU2&`4n0wsuhFF*^5$o0EMo|ML3L7xH;QiPMTmfB# zkIa7kD%Kbq+ILQL4di2k#2^s;j)Kla3PfvO>+HeCX#*tDJ>MR|S3ntGlkz`{BghSn zp67vTCoub8s-9RI*x3IMWf8cxzhn``H$c@B&$PmZmg7BQYvFREFDPWoeoxZ5ZX+vF z8wV0_S}-MLFjg|sc+6lOuw?Bhs1O{oDCl4z(B4Au@C($5T)QSs&$G0yZ;g56c|7mB zTT)o*dTl6gsD4=1yX4qsIMdzQV>`jqdAu`*95Qu=JJ77lFrYc3!^0Mck(@mTlIvL z9g9JT^l_%xz;EIBC8igupaTBEvk{BI-}1jnA+oWHisByaDzDZIVt&2Gd>Rwe&~+{} zfH;e8dPqLDah}moKuI_%lYYjAdj>p_70cFVi~SIYbOT;M{r!Un@4q3zSB1Eb4VVjf zm#}peUHCxbKBgagKnN~z0UUAxMAL2AuZ;V;hjd;vrihdiW4#V4s%z+tje zKPM_qo3ne1Q_rLF5=zP0`RVaVLWFg8qJ>v?L!Cvh;U|?dFW? ze=&r_;Se&isHgG-qaq?r39&dBAbGAPc0Ah&eu00wtakj)J}g+YFmZ5Q>%k&lbv^&L zgqmuoeCIJR9?__ATpPoPB-Q8}li+?_B&6j_2TPY&U#PL z-sVe(y-kcsIFK+l-*f58C&vP1vZf>)uO|$f%FBJ5-kd5=^i@h8MDBN(-_#?yul}+Z zpt8SP$SmcwPmPFASLUjjgv!jf!1a09bl=1CexhjRqP4 za?c`M-&^iX<1S&<)rUQ%m8YDN2L!lb0tGP`!k5Oe?)4(-b5gF{mP$_b0>k$0*t-nv zZ$r*6tTia9M_eJ=dZc{W+ zDLmg$k#{ik)GPe(aL=wJZaw%DN`Z#IX%?3{v2%Q~yjji5WV}VW-J=$96?9udLwMZB z+=|~^YpPw!G~bAkhY7uj;3wbt0GH4q{&fEcJRX{u>}i3#H-np@c)$4hHX6E^=gSxi zt}%NbB=#qDg7#X^mY{-r`D@3LFC5)nr>Z_HOB(Ay-jfZ~4|CRQ>4#GYknpY%8FMKH zRD-2cKj6oyd3K(e{K{HvsVy~8x0AtzI*Tj#@e`_Q{lM4{lkxgXFMXY7HoVF~(f0+s z*X-8ef`PqmLi4VJrQ`rMVQ5cGkB(Iuva@FLB6k47%mtcKl$PjGa|<<9aG^+I_g%&b zf5j(5o#*HanrZ=)CoH0pjr1vFdAz)45$rM7r01J46~jWj|8fW&mhefS*gJGy zjK1U8Y2Njzsu8oA1vmttYDkjN`ot1d_|$$i)p--$F^_6BsHk5X8bF$~&yaeS!_=6+ z77<9OZXRmM5M%fwuvXL#x`a@q_ zzn^)+qR>p8X9MbpT*~+X2woWausrb>zr?CrWvn`4H z54-CHE!n&lxv(DZG@u>7^1|t#t$|a~tv~1H={Aat7{~4GbXt8~(ox!5-N{Tpwqdc? zrw`E=ND;|SXQ17Y#0NevX^f|Dw`K6b_*}QQJk<#-@Aun zHOj?Zs(VSQILjw;PqgtQpnz2a?x=zqN6KisX(3N)wnlk;|Lmq;>x9n0=GlFm5^A*B zn}rte{o-wM*S*ADTZqG@s~gj5O3KZK_2xXk!eKs>2u4l3zI@0IBb&oSy%wt#PcJZf zci03ub8}!)#Gs^jXnkJ>&M$ADl=*9Lp|h-bOtfJ}C{;u}Q}1@F?lqh{b@H<{b*nYA zds#8ZS-d2zI$OL2Cui?8%{OO|0NS=Tlzja(b_=@#eu39Gx11Q)T=s*5rADg`9fI!8 zLHa3ZJjnZm(~M=`StSxv7c!^IO%cs59nBsu@8BPUtI}W*5&)dSS{^o`8pde#!*gMf z%gYC;m^BpEfADq)n5en-AZj^i>If0_qSV=;X848A*0tE}c_XcdekQ^Z+AqAn9WC#8 z`UGaOWOW0rBmp2H@WeeVaqL~{JYoOMM~*~y@g!%Ecv<0)sF*KuL1}HK$G~YkZ*^i> z?>?mkzc^gu!k4Vg8l#e~YrbxP%q~A%2fd({C{e;4A2`Awrm41a1^u@j)^Ez2z6Mtt z@4RrCrMOkx*9N!*zx#q7yspS~%aw5$eQy9UNL13{!%#ro)|3Mdt|YBsA`?2Od~)4t zvaIc-Z$6F@56*4ffIlK2(TbRj!NqpvsPDA~Hj$+Zr31=~4==D?SO{oK#-f{IzCJA+ zY9VO7@eF(U%cxQK@c6m@%JaPbggXWt(~<_Em5Dgs0Z-H2cgC@iqav@pY7=p}XA6Os zG)}8Oj2D7pj>wZP&>)8rmE+{JbA!72iYr4jt{>k%bd@=1p{vEOPtOd|D~rfvY_p~^ z9IfG2@0_$utrzchEU;}u*Jin<6`vjyV#^?b)+`of+zZ+9;)rF-9-Y5WfV6Yhi+G36 z4b|{7)-@s?X~{bG-P=>1TQ)ej;GOpRMorAnON@BUaNWw-tOic)F_W_dtWCd&^4eQA@aTiC<{j*LQe3LZ?Qc2DVojr9bMr z@EJ~8D%2|UEvdTn23&7S4UHQ&f5shSG3thHg*t*0G1_K0tW|e(`)C2h78!)na1O>0 zJe+5EC;@F)*Vg#RKFmGaT|VzwkFKuXvZN~Od-=RS-ty*3+iNMK6FmIU^@b_5zRft< zGrB-#I&<1E{aA;%?AABlC@PTm$K(nQM;*rwAKOn$;TfzQP*_I%lGhei8iTnYV%EZ} zm}BmQ4x_^XW@ax4vhe8OG>NS#AAETd^E!BJYA5B$*vr_h#^$#0*%xoGqvv*L6}VC7FDf)S4A1k63h(xt+;2wFkH zn0T~JX&hE?r_;!zESM2eTY35Hf(o=Vb&VU7|B;u`Gx2C+u6kpebk)|k` zxgD4Ag5r||#y$>>#VF{(3TDm_LFf~It(^W9;h=0&)68+ zfrxR&v{w1Ej5nXYbv2pCINoU{l+qT57=(geHo*d}_%Ysg6a3LcN#d#$^5U${fG+>5v$`=AUl8BEss6 zq()F~=ND-8e3bUH7mLbip?e+5*XRMX=t&RAVMw7>K!)a_o*56TRc_4?Eyu*IhjlMl z_b6`Nwq0<#<#8cAMN(W=wp>zs>3?fc_bC%POZ3f$2~`NqFOafwjh#043ZyS2F7yr^ zA@OAhzzZOkWpwwNUWk~K(?HnUCCBV8DK*pL7kW=I<{W1~=NF=bQ`7QGkXVss3mjRv zP@sZg^43l3n78FtRU^zXsFBmV46hAJJGe-(_0SIxZ=o`amQ8v_O*f@S$MQ8CuFB5z z-XZQbq%5hPD&L~to~p-R)N2lLUGPAdEcIR=L1$bWlB#qSrhjv7ymuV8#pg1RvA2o< zjpmn?Lh}_H4O* z8=Pd#0_9N>H`#GsHmmrhrN z*6_(=zE?CZ_fkfV3O!75QJc^&tiGY4;=D1F%~#{0wbl!=2=wSMBbClihlQ@4GYz&g zX*l;;Z!~CA9eEv%khD$Nc}2a<4Cv$q756)ca63ctQD zob=2oES#kImP^!rd zTHWklZ$Tb5L0c_Jn>Al2eOLEg)P;z?;9MaurxnjXOL?+Ty&&$O!U@d&mr5rvDbN1{ zr4!Nbf}S9qLA!@i@z9rr4aeTo4#L*rvJ8*$z6Kdhy_QAb)W!)@p(T24{TNh^(I`v& z%=m?P-~hQ=r#V2e$lysVVWp@zO{BE=%|zN59DA7s9(G0?qlm-}D;N4vkyZ zJ-0O8^RK)5thsQ0Zv7Tw{14}hyl!z2ss!5@cI=VGE!rv6sQI@ms;7E+&?Lc&G2H{C!ze99dLeCO^a{NpK_p zqS4e)`{1M^DG-2ayW>ZVZd8Y{B=Q-hh8SmdcaB>er-~<0fu1Cc!K|o3zz#DFVVRJ+ z>N6j38g}y-sSYC@qg!n7JW~vd%}8~UhBQJrLEL-7vRc@t_5~|?!Q5?o3?nwDDZSSZ zG4+oV=SUMtIuSh%=d?X5aUI}0hb*nj=&`LBaP&!*<$^}dznX&c2`G(3yzO`WIYJ=X zYiRdyV6iJ(lT>?mz_t@5+D&1L+P(Z2HU3sBlPdj)d`%O;OFrLCR&H z5fistZSgKMB!e|LLwmE^_4yi9G|z6Eovy{mmk-H& z5>U<1Ds=_!(6g}3TeR9_JKa3i6(iU^EL8?DCkh)bYkRY2XmZY#m<}Zz+SiHKag(;NO^Fp2wjU`$tM}X-qkP8S42rH%;X?hcO09?W5ke z<~o;~KV3JvG`U-#1RT6p-=vomCKs#Y4f?F!E)uLd8GMK1y7KG!-4>fFpJ%~J?4$vz zy7V$?fs5M{U3Vy!8We0TlrHH-1MBVU!mu8Z9DI|R{$#f1G2ennDIRn(^wn!96rile%2vfcuL7?|ZjQA~Y^(}mz>#_HWCEhVklsP1#HBcs7Tulv9k zehlBYKM`s*cRb%P!Frviqk{2Gb|Rjb@qF_2$R3UOWm#({-G`G?3p*`?PZtpkloM~~ zy~x~7YI}*O?e%r7$Q`4*t>-q@ClsJFnP2^sMsyT@KzK}sI7b#B@hcq+`h5Ap zRfp^~J6o~A6kn~g)u&?=V*Qg^rf0PB88z48*@3U~ieAC_PfCddTp$^OybRfm41QOi5!`aQTJS~Y!_}p*L?d$BGvEvg2@y5i;Q|r*eS4~Lms^~&o0sI3VCO9z- zOzU!FKm&hyGj2SrPSAx5 z(Z5UDg2q=$qB{^svX>p6WDwc|k4!e?golRc!DS==siD1ezOme6&7Ea?A>gCE-?Nl! z{#*COA21@atcM$>DkswlBZ*mEr0ivTjM;=KJ^}lWs^UU$mD$A3`t#6JO08&9ahA=7 z?w$E>_8y1s2W#taY&?{6J?V?r4j)jl8$7)0xt;nUNV#M51j`Py4FGk8wUPCBZ=Po3 z*rvt9Uz>8Y`8G5k-)g&v!%xTQTvA?Vhc;Xy6k%J7VT8Ha(B3hKlJ9(DbBR{YxXY6B zOMaWJ*L1$ig$H-R5ImwmRd-$CP=I;cdK!y@>N`S^1z!gDoyw?7Sl$t3>&AOd##tNl5{c%c50^sYF@5iO>ba?L<$Fad*FL1O z@c9T9Y&t#VRxc^y_IrfZfE3FBm`XRX}VF{XrS1 z?+?EJ-00Z*KEfhwg3*hAxtp9P;$4_4lBvz6X4OY-lPVv$z{fF_A@m28t}UsmxV&=l zIa)eocb&dag{Sc$K?vFm0jiwNVb@(lF7iOd-Z4dHP5Y$~_f!@6Bm6gg1D_j8^;8C$ zLY#XTC#pW&<(4rNAY)9jL1&-&pxGi2XvCl_j-GUTV65_+$RZrsQx!w{t}Jav#j%u^ zL>L=H>eYG>(lx%E?7Mq55(F$UM6U9#Tzg76SPCv|~B^A|?UbNi8R!er1zn`NT*{VBZm5^M} z0Z-D9Stg36`r6K7k3Jt_}$A5C6{J@VqpRKPVFcw{0md)x@13XH3b<|k2$})IoCjNW} zePs0*!#COjGK+B zi6ViC;(d3)hu|PlD~msnE2M(xSz)?7ZceMZfJALp!ticx2-- zJ301!f*`sQ)dsfb+`2$4Eq3Gl9gk*;z#F)l0FVWuiJBcOU*#9ZILpv>HPZjYroS|Bxg@2#uxD5t`~LB*o@jA2cAr1uKn|_ zofuhw!i)6t8R_zwNC6f;G%*Az_y<6PcFhXoD{*6~OZ5*Pk#L-$>?GUU=`EF5S#|;0 zl4Y}98}HZId3ldJ`4Dk!=bN6)k}aa}hEjDTJ?^kh;fh@qQ3_o2JAUAg>iU*pJ)5^R z^#~OY)%3hF6I&8qmFZ+Af8KUjHxWl;wa#T(fagt1oT%5UPZfo!xbo#2C_PN*OgpI5 zGas(!zmRP0EtanD?oN%Ti?xXBY~>s#7r#%StVOcC7PeK_T#kFozMUoKR>BEik!A;! z5BI5DFc#f&Tec|({rxWS%C;!f_w^HO0cC6fSRL2AL^R2>mZFPGhL@rS` zMmQCnQmvV}@oHR|m8N6awaJ-p+A-c-5wO6&NWH;%bC*I+gykrNoMDCB8t*tC9KXZ~ zBcBgBK=I9cDd_GQWbSkWJ2tldP1kc4Wq@6AvQQFDXocnBiKceGONOz-^;X7ZEeq{o zwUX+QlHNI<=5U+nh1xn}vLv*_!Y$ItveM-tWf3v-WJPH{CQ&oQ$0Hiaw}JH;`NAmm z%?ePMfi9ZnsZ5(kvaZXTp*yZp!G`cpb#&FY!dm`BjO$uXS!0xa*yTn;x!}8>{t@)v$~_tyl!7UP-I7E$Z_1R;xQ;M|2QVJ z(Zp={G;-;_HbELkBafCg!6Ve0BE16>&R7Gbdi8L#-R3NJgo7&HgMAZJf(4~>{)5j_ zBIPrgo~q=pSfI1#y^?=RBmA-96<1BjQjB;3DS_c;O~-@Z~jJ2Ew(^kXFR zmIb>6>hru;!hV^IubZ30>?T{fCnh9NnTpTn2`u;z6UZ+zE8;OEl^PVeR42s=1C{bF z$|qG38zpt)yJTorp4IqeHNB61Zi`!9>_#RqKQg0lFf0uIrG-7Jsj+vtu)6DWfGS^5 ztoA;3!6x)NKtCoS?tOix)S`R8?#6S;Mn;iXRiD^{@!LJDFW_HlY$5pVu3OB?S*ckw z?2bMu!F=Nj^*Q(^cyg4||7mwSFvx+qE-&N`_XCYmV=)QxHEGCBnFAS3VBO-5voN4$ zo}hhyu>L{qY<+g@+5W+_pK%oJhpwjl``}U{j~Zc1^G&xsTVNzd%uGDduA~a%|CP>i}9Q$q{v2>wbyZ8a(a&KvK!1eWtoF z-WgFj7n{=AZ#2O^viQRI5)}N7Zp@y9QtmNH&s<6#(LdVCxnbSsBClLe{#5ZLUb{2< zjZb$)K1xbFEgYn8kZ``a8gN=)|3WI`awhiXb@B*Hm3FRRL{K0U681{n0)u5COg_^YC_(8uR>m=-pi}ToY8e=Uqf=>v!TymPEpC z1v4?_1>0Q4$V9NnXyrAHV#D`kp5T2LY?xq3avu%Aa7eb}tN6;aMO(7ZQd;*hG%EO6 z<*ScV2Imi$Tx@(M&$}uhZ_)~k#=nd# z6d+mX&{#A$X{?*N5VmjNE@iJc_}0#>=A51`G|CsWD2*;&f2n)AJt`sV{*={@sS5X@ zNl{2jp$fDkG-G0oz>h*P=lKC2wc_nm!>5=pkXOSBMk0dgfNa&{#^xd4LywoofjH0? z4CC$@oKlGN{&#B}%?qo{I(1_!(3m<|ODaxw#rs@Juq=42ECz{}!~Mw|b==N$<6d$n zwS~tJyt8!`PEFZup0rHZML4*3_n}z%=eWnBxN>!0op^i2B-6+_)i8FU@FhxH(abOI zW$m5VE$^*_=}eZ94Psn+X>znQx$+qG^KW>QAqN84u@PWPWRF?+>dGGC;_HX1tu|ew z6=xl^jIV@yDRR8^mRfgV504<~HNEY@>UOrm)T$ihWl8t@)53{$%hE>%Ml)`z$4pG0 zlJN0vgIXt>`Dpz|rg z*Qe2rFVWqT0-FqH^)4C9>`oY5p6|apaK_Dfac`!_7v;oc)Ekr3`1GGe7n1sKr+LA< zVPTdOMEeilMzJ$C`3KDuN-zN>D(q%iM*B4k(D|&Qpe_a83b?zwyRoqWep%+zr%#86 zhi7MJ>+9>awY90Ksp;wINl8f~BO@s(Dd4?QH8nMjjg6U^nfdwo1qB6pd3kARX=7t! zIXOAszI}W3>J|7sh~(tt(b3WK^Yex))7;z)B7mu4V`C>KCcwNvA|MbHbk^0?_4oIK zd4ZXNS&Wa5gP362_wU~~H8pK*ZN-exvDJX~L2e|maK{OQ?s zu;9whs!D3W9WgOkQY_h3um<9x(5)%h{fN-#P!#AWG!bQUVKizP8o+ikf3ljTK%N#Q z9~rVN2xahUkTQIHa)lZI<+9juEA&8_cwZCL2FD=0AlyBa+kr1cbj>zPhR zty?Z!$KRgZmjz^l?>PEl8V<&AkuirkqKocFRSm3Gk&x-_VB`egx${TGD`WHptv;La z5>+yNqk}0ja~bI?Aiy(M6^F>MKYSa?!5FwE?L$DYAMbl{bc5v>HD{$Nndted*-Wa{ zn>xn*FL*u!+n1NakK|>d3Zb)Uq3>=TAIwZB+d1E@b@SnfoPAoXXX|;LS0XEguvNaB zdWU1R8j)C<{1H3R7WCd`o^F+A9oxNJpK^bs%0n^t8kMk5mlEho1g~@T@Vr{CfoFb# zi<;dP>vh`RLHp(5MiX2vwJ#%{$+(O=yFZU$F5D+S)!4$CFNV9sX>eFM_7%v0)by{; z>~jmR`9gayh*<%JAx*(Fp^*Em4eV?gO{Mf=Wn1lQ?i(p=`2)j^F!Ki+FU zBo=)*46Ro9%UlY3i|5twZg7f7w+3^Fa)Lp||DhE^qp}-)!C07u)yaQq1s6vrlSdY| zrgn}t|IiHJ1@!>d)$CUaU#18Kkblg6#>U3?RU7p|2>jKw0DTZeT@8llVbzE_X{7H5 zNTceDF1IrVQy~)-%msE!%zO{L9G9V z|9_S^|6>uj6K5B{K|x9I|BWJ`Ljt4b#^#dcLuMuhjn^b=Qe~R`{lQUWBh>w z4hJ~)t3g2y%NdU2%1;3L!=G7PU9=8Mn+@6#;C6Q_05IVEbj6JA3{9w1%H}* zFfW)vhC}$lBl7R%fTQ@M9B}l%mjfQ|Ck?ne@V{uIYJDdM$bv4cELSdAbDsgss}ekt zPz2ziI{@}o2r%}8;X!ACKmZdJ6%`E?6AcX$7Xuvwm+%@U<~2eRe0)NDd=gyDEAzwo z9{B4M4hsVV3mXdu8yklJ8ylMd_P{3io&@)QLIBzd;GzQhfIb2oH2{wbhky$Qod*kv z4DEyy0l7p1?`Z}N$S}+xfcN4eA|a!oqM>7ejsNFJH~=2uXC!!4Fd`fRJR&?23Nk7Z z0wyOIiHm@E6OSE9?7jg$wZjt*WP+%Sa&a13Le(}yPA*6PQ3({fXtggN_l%sli83n! z=p|#+jiuVNoOy`fL6%IuRt9#Axh(HXGsI>GRmF9VuN>r5cfDUd)G&SgG(NYcdt&W~ zS4Pv!^;tq*ZO`QTF)lbmgWMus@q~hm#C^rWO?Es)kOK#5d?b!1Q3Nm!+EhosaMBun zbo7swP$M*Q;@YD_hB1Ib&)xnGWFm{$SPH`9Y_jx=g@5LN;SUy|GXN&SRi3zj2yn0x zEl0;h8*5!&t?`XT&`N)9c?D06Hi0s2a=+r$N3}tMOB-u&)m2+q<)V}!Q9Bt41p;0+ z`6gfVGVMfbUr-kE=8x!ptk^uL4!C?Vd!BF`F*f^(WVDv{Kj(hkyBLx_7?La4MPnSdvTf>KSJe*h z8=du|YO7CjBh;R@i74wqfx2qpGL3zgNtsWr(|fc7w0S8!jqeCVXL=I$c3$yoI1D{D zRm@GE*}7w35;^hI&sXr6`RtY%ef zP~cr`>>(Pg)~_cv~VF3k9H~2dgPD?}R6lw@SSr03aOoWT`6F zrlC;#&3ee}k^*g>P>bdlogHhMc9}0agzq0J9Bi5!p#Y3yQ4wzRDP;QOZ69&zn2ZmH z(oAL@Eo_ggY|39fYQBh_yfEDupWmnwo(Q;B9#!S5c|7q-Sn)bn%_ik0`y5X6E77`V zg3deVEAmz@lbX`Ixu09G`is5Q8|ThuyyoDs615WEG(PUwI=f~TE$`@4vCLn+tkuS? zj&WmEMCKg)%D9zl0U`IBY#V>?wD%XE7yBMI`&aaMlyCGjy5gSa_^)|u^4i>)UBl?W zQ@fYVK6xmwsBq9_zux&}bjP*vf+j&HU;m)cfg>#{914ugyqzAf-!*~)E|0)o^zL9a z=snZG;1IWJ``SAI<*C1+D`oP$*2$?hw@b=~5$~kaAxf3SrmfsP-rV^y4#u}e$KwVG zM`7I}13K=-tep)li$*E?_A`|p6B?Q`%-z#96*{M+I{`gML>)C-jh~KVW4jVb6pVCc zZoy@ulsEXGlGF|Kw9v)9)_kxqS)LW9gV3^3O`2lki9J}ug@ZuLW}v7?=9<1=ie+>xqZppDz%}=tKb^kQxq5JH zVd9?mVqdIf1(_8>{|)so{m7HP$gLZH}uon?YWj ze`_zg1FM>_LBYlzykPQ4Z+!MXd$A9F zU`>r5P?S8_?wEdXZ+=rlAB~M-{BE)I%Aw8;8=oA=_&%+tL@lr7s2m+1Ny!`g@-U+6 zsUuw*cMGgzj}(!6=VkX1$k0F66JEUBL7`~9x5Z-bJ64kH6MpQGCbpF;M|XF%Zkn~n zce>EqhVMOFSWtF+^Fk%rf%jtCd9`cCn8{;f0rDBjN+U&|$T_$W%Meo!A6 zxPPy#a8_?y=KZ$qepAbMX)P3(7%vxa@D6o35Vq_r)}*o4;`Jt`%yQD$lw(?B>>MC4 z){Ib_S(YU`63Bb&scU)BpSE$9mUCu#EScH&^|q(PtelY~=>>g)vMK-WeC_c>pK5d( zbQ<~@Pvegj5$7E?fKOab5fSm~5BeH8oDP6MMkhlKuDW3RkgGVlt2ms&;WO|2o;PSn z_K!=;kUEsE;smbZV!$V;O>wn)0XHl5;FRX9?BZ|%R4~A+ELBK*2U(hALgpc zh)cj+Ia_CwpK&lh3&JQzCu3aFYnDgFvb zIND155wLasBcNbt?er@~$;|ojuYi<|wdAh=Sj<02iyK*)DH~cEf%*SfDgCG!1Q<)I z##B_sb}ojZb{}BDD?`maxfPq65}LcfRqPvWlX z0!I33z+Z*F3n0MfRfz2>4qU@ugjD-80R0~p9W1>CU<5n@tsUS3I08-pY%=&UC_vvI=69Gr2!`1|ncoq9 zM*LtB7PNJ-hRq$Yq9PmGx!4*z{bd9iIkSUtSJNV_+gjV%nt|af1MA+uhsB-kY<`6G zVF;>b=0D?MVPq$33nLRJ4QmD1Ac6Z+K1f$_AQ(3Lpj-vyB!8ogV&-V)V*e))vYn%a znT73-v4<(82BWTg1p{ed8Mrvx$(Y!hI2t&c7=r*n-QE7@?27&!83uvH$k~`tfzJQ! z@*}u7TK_gJgE_(~|IZLbC$rzDZjdPhYiD%>vp->B8<~LVOx&F1oMhD%6@E@ds6WAf zLPj&UbMz3iwlMoyQ`f#1UiK##Y-bPtAv&4->=>{(bZf99{S69!rOO%YP=AACfK6=vSM;k9 z$Ot0_V1gE2N{!NI|Ry?D#tTsR;E`USkci%6^B96}T(nW)I%jW8zF@XaeqEgs68L!LKA(7z>VPIBj zsw)&{Dt>>Rh* zc?CGZ^FKDKABGyt&C%FYKvh!uM_yn^i26sNTwPu7xN_dHb2MXR=jZ2#(cs{?4PxAO za<_FhaJy~mMDvq^q=}P}qs5hEi3&y$l$y9W3sHldelLQJ{V%frv95k18XNt>vj;a( zSD70dv6@($z?2T0zn%1uuqnQyN;sMrfZ`@~P}KCZP5+Qs{&t4@8@9<`2y>{ja|>|u2(YvLPFNA_FUFt{ z>o3TE=fc=X0H#V{0G8Im#=y*k)zaR?jGF3KB??^a@xUU1h2gwnLs3yc&eqA(Eb$!+3u6I3aUKayXt9>!D(<&Q2Q2gz2%O1a-d|Iw@Xx94U-#b{__qfB zt$}}Q;NKefw+8-yR0Dr(!c1(z1(GYc#rjRL5Vq6(u2_hSh=_=Uh>V1UjD`$a3{+%f zR18dXbPRNKOdQNB^TYWb`0Eo61qB5Q6N>}~hvffQu@Kb6`$Mr16I3kB1ldISU9S*8 zL_&Z^h68>m7Q(|L{2mJmuzyo5goi_bDHbB5Ab<~eCpdTnTtol~)GQRckBn~sY8Dc3 zL}j25epl@K$Vp`Qh1Su3k4}P1EjqKp$f=!Mk|8Fml80E`*tz4~5-NQF8am1Kz*s5i z>?(~h2qWp&<$aiPp@~aS+;;`Tf6y=FlhrZ@FVM-adpq^%go$5H+rs^MQbB$1^u{T( zfV_^SM@VvEL*LBi*>^=m1SBL-IT8^S0m0@`p6hpcXa*XWoB#I-W{0l+b=tmlH zLRCY@Jx*FK34fw!HM&frigpyIcic;o0mSMtpxPzLb$T8tQU+sZ2=CXd$__@RvE}{1 z*zBr5vn>6aQsnPCk$>X(zhL<MV@acU21?;}^eNHFF~lI{`AiiFR*qYjslCkJ5O6&h zR!;1?Pf~PMPmf?)b>>zfO<9nj;zO%XrI~o_7JTDT5;qIqG9A@iq(U%bW)a|c($8ED z+h{%Ba}(xGeVHXRh5`vS``n-B=TU1gHe54k{edzaxRB!4=dVL#>Ql6mD~7g5a>|!z zke(NqQWBqIGY3q5&KOCL5F2~h%=1WZ(=3nI&^)A5Exk+C$-txRu85|u&eU}Vf(15_ z6hif?v;G)R&L`qkG<@qEF0QHlPp+5d9Pu$bO% zAdRi*P4+#+`$rK^Y?`N1A+he7L!(ys-b!mX?YzZ%J7dWG(33S?49@F{7`q;UDsXGe z-G{7!Z;zJ@DT4Q6cZjR^Au|WY%LjB_HG6rGYp<%T*%)ynlo{jyU z>;Hz^J{w=Jwo5W+rXj}(Y(sf9DQuQogxY(4Huf1>W;}gdP*jVE-Nmi<0BwYGHwv zylH?aIu?V2q-?VXiT4Ok^T5zizR_NgeNsD+f1?G6mH>dc?v7Edx3 zYdi?9`$Di&P4kMmx9UQ=U!^MiYoEbgJnw`@xZ}7piG>?B)+_XK>0#$Ol4>WZ5EO^Z z4c?dsbHT02a{-87B87WPc&3)}x1QMQN9rQ+oXf=uq3^-x#XZhtZleqM+FW`<%szgo zk!0}gn{Ovr1DWos!}s2sw7gEaz+0oBM%Z&G&_JSSES)O!4QYYC2Mg2YHEL08MY>U4 z<=0D?8HAFppNyyVvZ$`>KJKaQet+$e=H9)n2NZ0Jk29kDXc68sOR;Mxmb9C`v%B48 z#iAjA3P$oMCZl9zOLw?M#{LOggQ#$_z?W|;4QTXut zKzBgb`*QWHK_Y>*0_WSs%d95XC^bSeD_&mSh5{yTOZhhtx~=UX^xiMuuTQxgdhx;q;BPL(oeWSyc&jI~*05m!>qCc-0+XO<~I z$g;I%jLccGXuH5`T)uMOb%#j#_Nw&|N-vc`C%|%dY;!+US{!nni0s%BbLD=BC8`2Y z->%v6X?>T?!q$tV+dVJ2-^!Kg92)o*--I-iTDw{}@@JZ8Mt zbI8+hkaW?VDEDfZ8@0Sm*HvmOpDw$H|VT`CqiXDYjXS$QU#^5mOuGuE3Gjk==TuepsZnHDb67BbUDn|QZA zScPP`DAS%kQ;n=%DBE%Xq$_TXn%_m~m^><1r}d4Wsd7kM9yfy6RTWnF`RJ2FCcv4A zw7Izdc1;dBK2u>YUSBq4Vwaln*Wtv@Os68=2_%$aA)SeorJ}sA>xp@8Gv3-S$1;TT zJ}N+vJXao?9zD`nzkjHe54F%HTn@yy{BEmcjGProkcAMN|yKhtPb^Mc@L!(|A*t2)~2((ovP zP~;bRN8NAsV%O;CK0KHrCFMrt5v{R2T&KnwuTzPWk)J|R%)-!6z&{F6J`oD7!jhq+ z{C)$r*Hy0&1zd_1G8v=|qic&pgehMfom|d9fs&9sJ=w~7|7Dd(lzU8p(gdDP);XNcF1QNTce3cP`=o?#K78x#M*{FT)GltE0MM)mMuxE zOa4pJg^1d5lY8wq7KqSSNLVNFv6^&6m+>C;o~M)5^;n9G>x)tMkJ1Qz!N2Eu2Te^v zm;d@AG`;a#?LFkSl9 zyKGIk36x;K4)!h^=x%Rq{r$JKx%qeCKS4e$F3wI*cXxKy)zlQ`=a&=}_4oC?X=*Aj zD{F6U1@A@$-_c!JULF}5S~CW}*9!o2S1--sa$5x_H4I)rEyhewEc9cT-&R-=Y=6Q=y#zU>EDhx;l^LF@vSlLKYNA4CzITnED8Y-go~U z4w1Gq%g|yv;lDH4yh!U6lohLRC7)>mEYI$mc3MN6P!?QIU&q;E&pvx~o3 zoLOWR5UPNRyZr(k4n9|g<$3$8;3lP-#`)@RBh*=NDMo; zs5`nnXeJ;{&mt-(V&<8EODSOZv!kc*Wm%(|ol_rj`e zijj#@`W=QrdnK(w!gYa;SKHFqL5US| zh%_4bL=l1z!=GL+L^*r+6cS7Jhb=SdJmX5%11LtK>7{g5+4iXV@mQ+nV0Z z3q9xOCyeuS$=s(Ab~c19=mf_ePkc^IReLe7VrmaR4+d2mg%0sSxWCx!^_lO-oF9ax z0y7tlfwqhu`I2O;`U^Ee)q)Hiy+sz8D3|`bS4_NEw*D*?Wrm1GF zkFwqjIr_|=;o#&vU_-tm8*AMecX0QN@d|ef85nrFb`iYyOhf*nY*Zx9^XCV|pxRU; zDX~i^TE!Q(U=zm!E{5j~jNx+JR0~ENrG&3VJ~|tIF)0ERW36IBYs!;Cr@4hzYrDQ1 z2XkVb?V5~FOY)FCWkT;_OY|Nb?CPtRB=_4n5xKM;F2D?uv8Mr-v&1mMqF5=^P?Q4;EPm_4w)!tBHlEnCa z*5^Y^es=VhO`?y${3wO_u3LPKsvEH86G)u-8_~3BjZ+fTL+-L?a6Hjy3Kp*w>g!Kv zfnV`vsmf*6tFVDw9D&n=LrNDsGIS1~r30$(>O`nJeJ-XkoqUi3uJp)PtZf6vbfBq> zukPfTZk2weu?wS#Q5e@?N#E&sDi0A0Bj+m`fLo$|MWJR_#wQEq)N$_irw8M7qSKaa zYINBYe4_X!l5QB7`8OXYt=b3X4;MOqIhl;r5{+qs8$;TvaapXPW|T7t;@KztizF;| zv7r=@m}0%*5?D}!%5Le_Z$VyQEver=Q>=)K5!b{%I9)b9Q z*s33P^d`H!0bwxFcQYa3eKP@0y&FW1+e<(yE?t}s*-Ezjxkj45=JOB++jN@EC;c7i zUQp80OsDV@10+(0uRS1MQ*Aw*U+oG<sc+~~#+M=2k% zCs@)Rv#W2gxe;C9p)THj-trrD?mqJyZ)O+Yut|rJU`gtJ?fG(M7YL!{8yqkDtsiV2 zOf2l8T}!%xegGvIDkWfT{$Yu=^;dMfXaKD7LHNK~|GiPQF#GJ}@(<<|9cY09^MQ;t z9E&;nfQ)>YD4Gf1sV=!$P@KWbh5P3Y5^~mJ66feJENp*N5eGy|W&dCjyFiYRX%au= zse!qC85C+#m}D1a6mk6a#3ku)y%0YCKHepU)yfP?^8=I6u{!`7;oa4K+NxakYXgGA??MzdtxP zMJ5Y_u;qYr~PPVN03dN)S(1iN=5pT_kLTb(6)^INBoW2N(ypLxx9Qxen3 zW=VE_{stP7HD7Q;K<{E0hWi2pd}?$PQx+u}t<`AGVe#JT!hw!&Fe z^s=2U--T`spIIf9v&h16E0kqgs*-_jO}^AmdTc)M{okg+VcVa zebC3cfq&rPKQE8}Hygo$rhRw~%D_j`hgWp35cwZofQRxQj{a{t1nz>B2>d+Oe|b(4 z<)aO9?5TM|Ag=F8A&f7UD*Pp9yWIy+_}6I7!*^Wjk6J8?)Ue**>!MpL$E3W1P)j60 zot4&q3s6$XC;UK*4_MH z`Ax`na}c-@@xM4m;xGK3*M;Ih_Z7#IA31x}rZ4`N3dOzfOnEeM}{SmU^_uT-yZH`!8Yd`y*Hm3zDlICeaq~+x~$`3at~s zW=z0(J%B!z6#OS9eKj*PH386E|A9rA|6&meI>F*ccl>W>(f6Rienq7J{KVR37Cx*6v;0_r0z?7R0Y*8%` zcd!VSPKu=|l|bSv-YyLT&!AR3;{POT(oqK@0XCdGq&?A$lphr7RIG*Osz{W-u$Eqq zaV&rcVukUoV_`#|6XcME#KrCj5tL7~>$sJ)nATXIHDta32|d7|V&hBh=!-jPekN*n zO~g0B0M`*+5qwJ+WYeZnC4)iwHP(4*f$o}gwL|%{-vt?@2MqQau?I# zE(wHjz<+7~&8{!TBoH_m>A2eI>Dsu9KoKb%+(q616Jfzm2@|}P#{EEv6FhZ@ORSE) zVW81JJmVwoq_r=gDj!4zob?}{5%4~~So{ZN!TZ-!Zb{U9tWsS0A3x>)gtY&^r^#0p z@NXa8`Y#qCd~LXX@Ak$&xC?>J8^$RwRAgrq3ZF)HTI45cu1b{vpJxNb22=5Xk@6VYB4gi!0H#1#lo zRA5s9?jC%;lq?vS<7c5nTCr3Nm&cSOADNY6S=^OrTIg;!z9O#7aTCjy_O@I%_wMh? z`rvK~?dmnB8uw$ojo|b~Wt&?nyTo}3JSmT48kpO`6A?Vv!gvmgYaLJyqyc!7yH9Ap zt~>*Dp|%xxHq{TnKY2Q9r>?lwMC9L!-W)j6qpiq(ouyJQ5Y4FtJo+Yb#CAmH-7i*LUu*42_O=5 zuc`O#8}7Q&v>E0UfzN?TAkl%Y0X?-7zaWYO(*mdizBqTtjDjYB z`anK7=jU!@*I_?EO*#t%=mri3p1piU!hc}9C~5(*0yC`rHDmwuz}&qt4lx8`2=VuY zkqgA5yRX}@1Z+~v4}Sc60oXfCe@HSLZOJL7=*jR=x)~;CIx`UBztE;|JF4;bG6R zY8B>Bc<{Z$N?5RG=e03CFG+t!(KdmF&MM;a8k@r3oUGgl_pf9jwea`sRGa} zd#_tnG6Ce`2^TbsD6lBBm(*{GMlV5uc>;j~d{ItwKXb;jqAE>X+@>ERl_oDgb%_=K zye|DdJcf-Ud^EH&S z%U;f!6cDl$QB$)alN`y9-6@;!EO>azqMsA4!iYoM*3N>Hr56UqP18O0Fr5Shl9>#8 zWlJ2Kc=>0trQw`U;qqlNHosCd-p{gN`beC2Vcvv=blD;e^}NM4ADR^Qhfseb6XdThVDIiq zLljtUjy&cy2E2q`$NXIauZdot6keOJZa7{C%OnR8c#twSnX;<8b zsrX+PIp+yN?np<^Ls^JpRuM_*^%@&9q z#s!1;2v^mXSQBqVTB9ySVFy1m3l2ceP33EFmYxEZ~tPnT3 zwK{IL8yGvl^*g4`HbIquIc~Ngon3wTn^9L59ymx; z?(2R5v0;WWk<&+j+tX~DdES*bA5KiQJQs>$!quFJMv6fpg3zH`=Wy*wg+x?*PW+B) zZWZ-%G{a%H;kN?<33Kp6O0ueA2Kt!GuGsZJ(JGapz~zyx(@bS%E>w#t$?sMJxHoVg z?rF!v=Q97ocWR-6#hG9Sg2HGl)t^4J1Mt{5UN4TLiKrnV50!Hs17szEprVY77IllR z!9Q=npyL^h6nE~<#Ic!wb1RHasmS{JK9sPjKH<3D&N3JTsTdLWmt}zLIX$FGyt{Wr zyBNGU;T}D669tEq7A#Or>FL#7c_v2{0Gdj+x<1}N!tCt1z*Kxb)A|M4N&yl3?an^3 zp%GQD34sxd-1&xPfZhBeS^`630FUVFgSk==^YHymz6TM>P~PEI@5T$Ft^r|V^M>LG zI5LV}3)`leGm0G0?;N5Kta2(txja4H$o|rGwa7<2B$QShvSWWz8U$`oZqL1my$seE zkPCVj`fptAsif&MB^%nZAoHFuz~cqN<~ER33qwR7;`;h~(r{LOLJzP^hUR~rlZB&J zRBrW1d|CQAYr7nQ#-@w`Nqpg(x4kD4CDsQsA$G|R0TxN&evGk{M6KeIGdfiSbRfLY zJuewNw&AB*<#JhZff=|54a%9gw~;R6xYzYqh*yT;j6xwhakBr14n{JErhY86p_bFbh3IO6aui1;itbYN65@iB1$FsFJVcqsm12`=W6a!j2 zYo35jm~<64Bb|0m%#Am}nRRiWdD;w4@9R6{R8i)<5)jyBHZa*PNwa9bRz$O2FyY`B z-E`MFj8dLEcD3h;rfpSh_?eUnO|*HXPW(nh`CoELuR~tqzv2jNw3dst)IE z0_N-ivCt5~Y#=*0C@6V#w^FA@`#aY=ZmTR$5 zmfHC3f#`>TS=Zygi}EwR_uE-iN50Rf_C!)oPU``*zVEVvi~&w|pCxxl<&k_HJm zJQfK8_@5G73^%B1Ofb5*@t4qOcTi~!SWYgJ*@eDM61$3!a~_&46f)p}m@Md~;i+g# z`sq`^lB(0IZ}fdedg;>~N6dUyB-Mv9wdl4}WTi($`4ojWF(3=duj?&%3AJ4b3oLn( zl1w*zl1?Mh=R)aP$9Jo0x3Qx)<$NaK_qAP-0}HKTBsQPXYMs`yprutNw;cgp&8P85 z#kAqU#FWr*l%u3F@{QG>ka>Y)sj-BLR>lZHc`%FK4vo&YO7`-m%@v3yqnxfACh#Lv z$1I>(OhOmYRKX14bC-0ChAci0L@7^%iTcd)xNM#Mw$Gj6u@kEkouP>$&J$z*NyCe! zn(VL+M^q)DGd_uV)ax}2R1_xUGhokx3n7#yT~S-ZCOL}H`w8e%Dg}Kf;37&2X)J^< zcVWk02O#-J`kB*EJL98-Q~%uf9(>Y&3V#p9iVrp;m7`Rb$k3Xsr>43j;MO)Ki^Hoh zC6;KBbVg%eMVrXkYZ6_UIzCoL1Rr#DWJ{7>@I?mEc+rWM3?e!8eCRZCCB=Z$m=RW~ z>XsgaH3@}zS>;wJw$vQc233aubI^xAg342&yA)Tv&gKo{WefUF0bA4wT1_Ph=-&6| z`R1X{Yoy+L@O#+M;r2VcBJVrn11D*JHw3iSIKT_g)Pmk)+aIFoH0$CH07qWL}m+ zbnI%6W3@4Ms$(MYnHSBL@02B~MA(o~UYm^xeks?}$UJd*QCuf9KtKbOz ztVMDrrCd6{8-nu%TgjWBRVpJg$5mD%$s7!1zK7t$Oa_(o�QB-zGgZcozoTF#9R_ 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�`h=6KrSmAl& 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

ZbmomoPE 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�sfQm**8?$Y~gKu)~ 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

gOtR22%>KEp zSTM?vroFyp=*QUej3IQLg?&I9rCl#2HOuC{;NBN69;M!c;wLOmuPLOt#SLteSOXL=8|uB)H~DyZ*# zt}uGTzn0$`U-((VUw9;`ZJ$$deZ8bAFUWs?lV&R~z`MX*NNVD@=0T=y#?bk2S!h(f zo^5T)_05^-ghGFl&qGd%+UVMvp^n&!jWmAJdK(4e$*M$r-Hb9xt3=6g>lg491GNwsguE{)0IJa5of|2@A$ z`K|vn(|hh=$2VU0d42Gd8^IF1qufYdcy)j8+_|W{_H(1Zv~V}n>B+(4GhlDkxnuDU ze>aT>uX|a`Bx`RsF2jg#%PVGJ zNWYYKvrW5su+6{x*5&G^IlC*Ae)}!KI10~5vM(^^w*GNCZa`a{)o64}VQue@)6ZPX zgvRJexmgI;g#v~Z-M!hi3lYO3VX>aQHs$;=IZv@@rW6mhTc1SGe}79IntW_wifk%U zaufK{?YZsPg#TpY20EB_2najuTB{h5@iX}}ihF(+Lh>4Czp(S-=3!-SDcQk{n;mqA z9zSgA4}K=;?{%wnh9*pBNo2YHt?_fF%GtQ}QFk9e?5Y<-HdjUlUPcTRxP%wnzm*^B zZ)-cw{%Cqkd@2-WM^$9Jy|ixOf#Enh5vWr?i7szjKfXxThq~-{xdUTgvvA|eGUps^ z-KMJR>t;>rr{lI|sqyEueSO%$aEVQP8nXUH+Px}H6PCGd^pvl*We{pddz5=gslLLA z@acKZ`Yz{_q(g^zp}qN68-Q?LFbzOM(}=u0GeMkn?yikMEHmdge?=nP;x%jH!i=bW zv=6;{Ky0j;SJYVtP>GjR58o)hSl}GBow+;9?46yGb@}fWk07+QicpeK@43bu`fY!k zibP5IYEa%$zjv9s`3Qo9M%%Xn&sJRej$uc`Qx@80> zM|{v@k@TVYu}L|?Qwq>CTL(nT6ZdIG2fnjg!#O15kEu_d)(bVI4kol`y(3>6^2xKE;U=LnX9 zJyP)nlD!zMh|#8xtV%X9Jx}<99y(ru0$kqYD*E;I`)%M@rQEMlgU>$-OmSMVOVteL zDVlrjmwhT!A&Q4*wTYDUT4=VUZ z1t*=(JT8>V+-h+GA}L zJ9Ny9^!_{2w)-8P{JEZpfAT&aWjQ!888i=jb41@;@Uy(e&&}H;OV`a}<6N7&n5J*n z|A?60wD7Pq5*A6BuD75p^jg=IMdp%?`=!1|ZdHd&`)`e5ZF9~|bIu!oP0I&OcLhz$ zv+C26=^veQ+e-E1p0mq1bfoICrr5P@d)u`|L`>JR>Q|EJ7fIG-AB;6;jr-ji^P|7c zP<)ps9AFlRh?_=H=A1K-jfpSBP5&ldq*gn!yCyye@stoS8hUf`K4Qjv_;XuaU5#hX zyhA;e4V?g}rN6jnCFtDp<9VI=D+AcCe-hX!#@-6*_et47OK(W+kxBEnlx8gabiQ(T zjG8VG+r;bO6qDJ9lk6SmWDQ#W6>VZO#juxu03SKs(iF9|T^b1&dFR~ojyjQ8tx;Ob z@;NVeiQVw(-)d$#bf=%<|HW+DWOb2klhO}+1(htW{vKtvDAw$WEvjQs5W4Rz&ip!n#{YOkI`IuZw`FpP(c(~W zGV?j7Tn8`$_a2vtQ8S6N@@QXzRz{4a=j!U;86u^MitBFok-yk}(ge>b{yii5wBi&~ zq<%GXVA<`LKQJ-@*jZ+l&)i+j2Y#wp zW7^Dto#tzs{*xH9Ie!59~yZJ=lrY!sqF)Rew{|+1Tr6eCh7B@!M(48%Pe=?kHi7 zZ%E?0Ehesr=urj2;*x^6zcs%f+9{f&^rX;;A*` z=)Y`S>`Ll);*`%N32X~S58Jo%6rHn(4ng8XpPr6DOMd!0=yU3S#Ja-Rk3xQpa?Z%; zAvfc1CXWYtWED_hoAfY- z#3{ed`a|~m6XjW}y$lo<({LN9x_{o(_K~|Ho2U35j?pkJ&*l`hk9~J+*}gG*)Eg{Yv08Gr0e?=s8nAsAebU0C7e7My%Mz5oy-_aXm*WxczZv+Zn&pOhIq&BIUYWgFxO3aSv`m{S zy5sWU$E0X<*M_j9!$&I{4&jX7Ch7Cz${=;}4J!^>oyRYgMW7WGvNmtS+~_JS1NYy_ zb;-@OkA^&v^sP13lJ4nUaitK?I9294qSl8kF?bm*T1weD2S6@%6&l6DopRds9Z zW!6Y6qqi_^DQC-V*TD&|R9vj%xN2u5=YqL6X^ePHxi!;VoMo8~lJtG|V7_t1?LSR^ zC-;LC29#fCysLPzY9QksHY*VV^K3|-N?F~h^P)ax`TI69F=`(5elfoxNHx4E@yVgd zlf!?X7Y8H{_m@Q`Mh_j=p!&XWeV-Zfo#+#Z|D;gu<9y|x8)!LTQIRL|3LMe3qxTjg zXlx)KrjSDZhw8`YZ69d6#rK|+E3teSB&D}29yJQCosSaGZuYQY6q6`<6?T=b$E=1PAJWel9Qep1Utzb6rjK)p6elfvpMU z4+nPOlRTbV-goMD?lHpi2lt2-7A?xE0u0I3#${bnb|PK%N`x{UBw5hS{4%qw)8y4Jo){HF3I?1sXzkS%fEydYz@evLjmDy7;hntwF zlC*}RdRoB?>`PdwrT-VJGn=$!Dn2LjgAaXB|GPu3J`da?9U4;x@?O=_@^XDMgCS8_#B^~^(9dGiympJPrgm8 zy7tfX;xDC2#i_ zjy3OnavoKw50b2FNKL!09=uCi?V@Hy8qs(|QfW2v|WYF08za~1%yKZorxL#i=`G=5Ft=+x0&iDJ+e|e(oh6Xi! z|MDs;%n29Zz2mwpGv$5mhIaB9ZwP?K$KwI=CyRxu4U6v{%Q5-kc6XiF6N&CwU%d!Y ztc;VuW_2BpbL=9FjExURTB{q`ioZ|-i{^l)0rg>acZ!}Xr^}oA z?CQBR|b?sCL~uYSGQ5Rq@`K)L@ESO^8^M4-uW!2 z=(>|~ofD`qJ}0iss)*ag@V|?V31oRk$bPK3={<5e>I=wt@v8S+Ht&wh?Uni;Zm*&W zx1;wg{H7IW(@nVN|Fpk!AbS4a_L-|Av-MyCdKXdG4j@NP?nuFn2h(_{Qy8}+$+1oP;aV$5!u$pKe*^S$UL z?$hPHjX({Jw2PJFxj|`mXsYJ(4ObVf?CoZgq!m=4Bosb-pj*GUPgx zcSNV{$FE*o8@c7+NNl5jBKABYwJEMJKGeA5Yp~t3#RO3j7h#+t2@Q`fjn4|1l;QB7 zyU&Wd*}1T7Y_5Ipc;bJ3>0-BbS!-54tNcLR8Tk4e>{;GBpW{4R^Ky&Vy6gy9<#npZ zww~rJzO~USQLB6wJo?HSU-}BMecSi%*7`)5lWTR5mdW%~FtKb61wCVUzt7|+|J8Zn zR68j5_26D@r~5Z0tq=MTa=(>}6T3i)MU%|B zH|S_xqi+>4Qs!!8%rdn%=_zqv2x_A98F5|sm%c|UN0h0%SRqM(e!BXwh?+aY?nhQz zZy{D1n7XeC?U9G?B3~0xQXnhU;n9sO%3OyPX^z7*8O60b9iGhBsaPoyUHDr;p;H=H z_a;yyL!*Uw5w4)F@g|p5zL?(|*Y^w#WS4pQ}~lc7A#7 zu;<3nu>{MqPsrtV2mVoqFJCvy5AJ(1vzTLCgxKQ1#If7Hs{gt{a#3vmO9c`KVVH@t z_j|q#xXvlg>I%dFGcob0 z;Z$EN3A-XR)eL6jurnv`W@`1Tor7>*chCw=9Q5~~REG{hq@or^u}TKWRf4Xh(-Jj$ zNqKzQ=~rxH*TVhdDYmWse*NqrgLhkAcaKyb^<5wtB)z33Hhi|FT=9|z0=|6< zuez|e-px8f%axG_ePVNv`Q2Xz7GU;+KHb^GdHdZz4#toDHjyJfrzcgv;x@AbSXVdJ z&9dVbg#(^CAHACfNAA9X282z85niOU_FdxLK#2Y$jZ}Byzk!ARqtD#1jQp$Yy@8`$ zb&%-EmGj_0<;U$K{5S)s1GBE%QlZp^8jcB5m=Po8Ln=*FfbWijY%|qEO8RGd)Z4Rv zo!0+NtmMrKkQzXpZ-}700$~AEtPa3-=D>%W*_-zQ!V$#hQ@AYr@vX~1{7R^=7(3~u z>MI}6kJ%_lM1Xo9o^wSy=Ka^+k(ac)QyhI00>YAPi5NxUGf!0!^#FyALo>II#&a`P z4x_m%J&xX!e_G`5Tg-sMQ|&Zb6zo6+qmx$rvvjx@13{nb)5|@oy>b|yBX<~{^%oLG zD&_EObsL|y=72hqibm-0kdz&8cm$zR{0y8uLBz0PanMbW4eLV6kh&zWc}OL#o6sFIqfG$DQ@P6!V4L<(0f0J&Ln26oG;18 zjio`8pAti|$7UY{FX$|Bpsm=6uAgAX_n>3z+;ngZ;VB$#t$w+gef-;gn$B`HL&_}A zecX66Uu|1Q8_kbST6m34`s6H&EZGaT`rY7Xnl+*O+8230vQgX5w-l;>Jk6WgXgpUK ztEzpQCHU>Dh3`62BIYHDhozsJZT!ZUhLq4>vkyxbCV2$2PFI;KDqCPd2I4;hS3=o* zfHT($iYJbRIK*=wqRoP zoiHRUw$a`^uoWZZ=Z2M~nS!eyKHo7W z6X*DpTYk?JzE)pQIP_(AB8%^R-mM-inYHaDBXMIVCyZ{nHQ%sM04F3j)3|p`YgV=Y zzTG6rJm7eGbrY#Uf835#Db+I&QwE_GlN^-jfggH)ZkC-_JqmvGG)a7*fynt!1l%-X z+|r(Y!2LLY;kw~WRLM^`NO04m797zCUp>&rHr!thmm6jfvW9HOgpG$kQqIu-BdM1L zna1aO2J=6=uQ`7AFf8szp@!(h}XQZjzr zChF~U$j!r8H~Xh?4XE%tEm>i2lZ}^@LV#T>8Oj|fiIst!+l;>0_$7kGia+^AupZk5 z;ZaH)yqQdS(xHu>XF>3Z`r3%wrX}A7}@Y&3g!+1xrP|B_2Lz0+q*5O5?`|-vTx~b-&wR_EAXKa`(7ojP}UMx($ktJ z98Y|KDMDmV*vuO}vxI+@zmPO};Q$ubcKPVD_093p>a4QYoOdC6o&G}z0YK+ zu7oS(&x71xWyfV|x(gjZo>>ZAEZohF8_X2x8f%*M2k^hgfnVi!ZbwrvD3DzU-S=Vc z{i=T@mIr&KjQ@6Q7Lfm9bhNq3-*&mSKM)dUpb9;jd@nuX&lyIYJ*b#H_>{iw;P?|` zWIXhd>ksYsf9Ln(by+4$!9mT!@D^!Xm#J+C=XV zIbWRc`$VCn@8J2V&ZhT2KA!y3f~5PAYinw1mXiJsc|#t&d+$CQ$l^QWeFmGfeHL|3$KPF%u`U*j z+zVsX2ROjCB=>;-{N9g|BS|=L6c1V!y$C8DXp_onFS-ZKi#=B%%8E;Yzizfg4sFUi zPQw&9@GSs}O1ABkR0ciFh*D?MpU6G7;gd_X@a)ln4TyT+-Fz5{*u8w1U}E>`zQFDn zk?}c;pP!EaZR__mrbG(-y&B2XP2^7*D$l4+qm{c=>}4dC%Om#*%tow8JGP^c_Ir|~ zD^%r~MZ%a&u0CA3`)@982loap_~gc2HRGHCkXpsehPRq=!2nVSSj%;EY=CrmBHrh` zb76-?>LLoh0ZInAg)qOkAX6K&9Bz$~o>x2Q(vCO2#!MW68_W`W zM=AoJ#2HN3n#deUM1$@01H{rL1;?ad)w>6sE@F-kY`xD(Fe9I9ou_2e zWS7QI@id`!?4O`+$@c9IR1Q?=5kTPQIWNPK+pj#tXQ#!gvfl05J4<5+LYtTB|MqKz zfrVTtwx=NlOA9dH>23kY)OdPJ6=4#Nll%SO-9@snmr zw`hOcEK5!q^M@7lDs_}eFX71ry#s-F7W^DnIeA*GUt4MI z4_I&+--k?Y7^S!J+aAP`ty@YNl6nWzKUwBn@jJfR13x%<;Y)L>wZe0(IyUcIDFcr6 z6tz8Y4HYKBf|fq*#0Dvu)>uQlL+h7qI8Et11@$V+w)+M!`x@Vim_bFI?#Gp^M8G=& zxqiSDE5t;l(KvCTK7hMvqg5yfs$6Rl7+Nn~ShK{X28ce_uwV7DJC#;D9N);(Z!Km$ zq8d4@(l%Ip@{io)swUQI+!~2d!gECfQNqyc z(S?CY{}J6t`qjo;OuoS;k!J(UpAxIt;;K!<_`ZnAX2GGmk(?U z&6Umce&gb{cdy|pa&XV)Vwy3SLAAMF=J<1LHb1yxJ_|iRcL&VI9fZs5gdIM0eeO#& zOD7%d<-&6LY?fS_oSg(hF%vA&VYDK+B7ICgP5h2|TAr~&49e)>s0E2$=h|Ze$z!#~ z@EoT=3Q5}Rytg8{eR#WOw=id_H6;p%wSuLXl~4T#rgu}PO|!NyCYmA+)wWC+h^oiD zTYwJpW7Z-Z?a(IeG{Kd5l}V`bU)&u}3ysge7UTJ2{x# zXiE?Hlo)4wDxfA^JYe&vY#mqGKLgxxRsanv?4w!g33IkmiUG8^dpiW$!cZc~l4l%ZJ|Qi_IJ~}i+$X@a=UHNy zZ>%g>?lxFI5pGxWux2pyS|2T66K(U?!}&hc4ozR{dfB!Q*BVc7j7F_N*}!@FV#PqI z5HO3&WqN~K7?{F!G_%q51SvkhOnH8tJB|v|21IFA2##e<{9Wq57*VYq*aJ%-k4#HA zHo^SJBZ~`%gxwP9g9uKlX37-^O$FIR2W6+@o63QC8}{(_JI!}rb0BlkvW>xAMhli% zFw)FX&dgB-bsNSAoOFa1;ALCiJ1KBtJt(6t0N)gssiSR+Jt#Yx{98G*e^I?;J>nd} zbu_&Zsy6Ly80^j-S*=-N;&H_x0I<$BWuI7+x|XF7rj;v0)P7wvF;PhDL*j(6*#A%c zN;&GSRn_9rAD}C9&kN%NxItUkUkATnRQs z?RVlW>Aiz(IyhHSRs@bK9ntquE-S{ztlI`LkcXM-Bt=@?yWOHHExrvZGU1f6qPJ9U zQik%ZkeiCX3&Tf*I3NFQf1CY2*(2Qwpmov~Lo*z9_%dIIF4g z#JYjfIn5H=3fJ-IO(3C}Wsw5I?n>#)U(ezTSg0)UCgIrdT(9>Nj}7paMZcM%YziKv zbv6fjgg8d@=`AZCP&wNWf)>zUYQ5ThA7MT69e(tt}RWcSId72hvI*YBCC+2j*0=qSW%#eb5{ zv?%$I@(XbcpT5U-^|}w7xyNzZ_lg*c@mKfJiSm-Vl$e17{vw`PTQ-Fi<zM_15ada|5N8!@Bf(jg zWgsMW{nmxWj1o~oP~F79^j6(Oq>xzI0Iv{KD{;o|)LLyhcc4WG2;sUu$o{+a{%Znc zl+R-e1|ril%LaDSGm8d#(hVyHX6)UwxFUr0@P9BX{`if+dFqjh>p>h&|BJrg*xxCjrVHm(;H_ZNYEd~WwEi5$$e!ZU@#X>7^;-0W9$Au&`58U zPxNs(1*u7w4fF|N!nh#Q8y@M7d^1~2YTgd+^X?996?uN&oC~dWeh=IhnyVa8OK(;F zzw^flVZL)+L&Ei6>Kx90|8L%Q>6v*0-~R8sMeRUE*!%Ps3es!9eA8dxbNd6yClzKQCPd!6mB)~2gKZxan>(?l~AU>W6De3?e8o`a&A`pn;~ z4Od_~!KRFV`Y%qX#mCI&wI@i8=&+NK<1q8La&lk2YRP`Yxy{-KL(Z%+b})9PQwwS= zB;rhq5tTjux`}aitA`%~xSbD|rTN{&i|USTgy(c~%PG?(za%cDXBG~Kr5pYk*yJrk zPsg3&ZakEKCN)g1-*l}pl>-Oqt@?@Al2=z-Zu~3mf=|s(k@tCDD^c;kL#Yq(dusdj z^o76Q_W%@euA|Ea9Y#I&25`uIlOLfQJ8f01J3&1vaIkzD*^mN2gCg;1+2 zO7*G8ivpyDt9-7b<`I1uan<+2-kVbRS|$5>WdZyXI7R`H zL6?K)wx!H%FSpCbAi)HY3lk;qGhl(;B1v{g0Jm>N#O1UM2kdQ$PDMm6$4xv%>=DBo zhEoMDe0NW`#~qB9Jn?}C@BU|P1&Gi4tq-6h(LgKoXBfcrO9psC!!j|K#FoBiu;LQK8u~F#0$8^JBO|YgFf&SQ4S!=`@h=)02EuFd0Y zqcQ$a;_^aETuQ_0j-u2~ggk;A|8Joj?@7BRMz^G2m>n093jq3~G3yLFBNA`gJ8O>- zH?t{W^w|^~78fmD>2WsD?8<*+JtyVPz`#>Y1G6&&8lxFXSINzhn&(g*+4VDj+@CgZ~<^}UG^ z|8rR}`092#{bQI4isX`a%m3Q1dofGZuCY#Xb;Ixm;n7)WUq{-COUK>g#!2;+2qFHU zzRr8coar_lanS2}oB?u#U%&*+LzG8hr)LFRtlT|%#Mk!|s=T06j=gX@Cks;vQ9FH!A*7eUlg_g5dNzjcuCVc8 z2ugZH}1^99Fte)6hb)RE4?`x-&=xgchGQbft`zMl{O zUfx{qlt26S^mu#a@iE&mYe5&5^BTkXMm&7Hj*6_5+}TuMLnTC0UpUsH3{t!c9>Th- zfm@mIePt$PyBcQ+he!VZAp0MPKz^)N+YWIyiXencQZHA57Xxn))NY}e^eH>|JCar& zRxw^BKo9wl0nLfH6TQPC@H*kb=g{Shu?4U|i*x$E{(MWcYtv&4eEJT<)D(J}{cJ{) zMUZcxxuV4V`Lh9_<_vu}h-q!kKc$|-d&x@wqSNIQAy=YmiB$T8P>XT;{2^$`#_jZf~&QBkVu#DlOQ70m`QNZsQk1YuyVh2cajhA9V z4Dm42**YPhB6|cIsdNhU!z`T=#cWGYETh$N#Sy4L0lNtq&+)3GlMV8tB0Y?8x>*^;nnt zD88+w;Ssd%LSEuI+WuhGS{hh92^d-I3<$@(LWymuZ=r^nQUT@!dJj<)_psD(N~(Vv zzaV%p;J+IgCA@_k#t)08y1Yf06QVKylQT*s?_AcaqTS_+yKb9qa@D?~Qh2z2m@*Za zO8=I_yu!xWRQm5?|6=!*G)i;JVz@8OAg!hD;)(aX;F57@Qu7pv{DA8fW zTYx3IO|~iM@0AovYYUQElm@mYe8Z5VXizHU?Klq*{1}9> z7e}tBJm^u+w~V*i{WruEV%GV85>EU#{4XLpYgaUnt@L#|b-uhi7TVC!1I1i?jUQ2W zz_oU+U)-3b2gys6uVWwMS|sZIm0xGeXO6xAJfdR{5ZyP*fCBp1;uYTYN3B+ z^Ddh|4QvJKnLHr&Vqt>BPRXLv;yG{^7W@`2NG$kkcR|!#&+bc%dDs^Xo3VGPS?=_F zYc%|Rr2V=#Xlh^@K9wgOe`A{7lFppYddv1gUKj8S_yqOTy4o7jk5x(SO6^L!Ere6i z1B3t{PK=aI>?>A-gap&X!sjaHOmg>v(*|1;=8ETvszIzCk{+ZUiPn%#tg7_`L4$HQ zTEDL+UuCmtw!9~?>q09PI$S&)nvNHm*032h9kpbi+DGY`biA^BAfRE7$sEB*=IyqX z0V;R5tE36irR~4Y<&SE&w*51m$!imKwGK*p1R?86GiNhZ(nr$BE5ot^AGSV!soEb< z-E)f(5EarP6=W?_J~aQX@+&^+q2=;eRG<`+B{gRF6aR&1O?%qhUmCPIq8GbqZ}>*S zuNszi&YRl!#^vk!g)|Z*o;J;~(;MWq;#B28sblxLH9a(Mj2vv?9NvdTdq#IA$25biNtYsg^S6KcHA_`~;wI zPVY>De9?|8U$^9)AzG^uVJU;SZf;>bfGo_&j-_K5%c9~rIeR{qlpf)-B=HZP?TcaEe181mD(?C>fGsu!oxHBl@7os_4}YR= zzd88up9gflpS@wIvsS?DOFLlAbK3)2K@l^>%=F5n%kbt!C}_tX8IWJpNbc=CD@j)v zG*?<~)t-$noi*81#1P3b1EHYjSGPOAno{i;IK6hU;ol5=fORm#vF^kTlu|d|#&Yc} z)Vr6BuOUWGDovcSG(gmN>m6gWLyPv_fX`7rOhbF@yG|8wzAbp#(HrnUfXjP0-gU_; zRpZXKwW|yLX2#7x9s2XVBTk6o=r@4UJ$(=ynHSj2M5PP?Q=v-H*}k@w|a?mq!b}VPHinz-~-*c)GHtlBv56 zVW)D%hJr2JyUvLNRjb(6Z>w=bT?0J>62}JPqfBug z;s*Xa@I+^^?6UyL&E$h~8V{yg=NPYmu=>`vjbyyb)FWgQFsTdH8;}L%Fr-}&)dfwk z9dK7;fGk+2DkQ0Ba73y^-PQi|20lGNcj!nlb6Iob@V`DJ%ApK3$gxxdA`V}X3eBvw z_PN9Ar#+cs_ko$yasW>!db~}(;|z=9ptlqIoCi@)`1ACHk?GwvD2uA`LL1E6JpdgW zUBO#TK)xeTcAl}H)~4fUs)+h;T%6E^cbs~Kf`WR5>q^P1)CvCVFr?Trt$uR}$HBU5 zQUm4+@czt(qbIIYB%w~me4 zx>2`Zvw!7>tr2kSs26=W={_7uAKKyd^3AP$%^HLT`}3|%cf6X_mOznPpax}Jh@dVY zarfbrhZLxL7qqAXm7W?bI0NtW5Imy;_uCWN!9Z#ZHoiUL(S+y}YN?hLfk*}05XdCS za2~I~Ba-kd9ezxe9bRs;M_T!iWkjFiiIna3<=8uQ0_gwdFU)?(GKe=;!SXs3Aln zK!R5u9etf?E8bO?!M23SKtJ&Xo1o1Vt;}V*D)v*s$?TQd6>(Q?8~~09AThjw=X0fO zV%oon4(9FD5nCcNmGF(9hedc_D)Mhi&P5THjL$gEeiM!UYbe6Z@Q1154*+?aexNsn zG}V9-Hifw4)x2H{zo|@|yO^U(*K(hx~3M5MYQmL3%{W_DB|Rut)MZ`%(>D1j|~^} z!pqL;$#}C5HH$8b39ry|jWq!*zSJj>sd>zWB~V(ra+f1yIp7YigR*?{sEG^5!2xO8X+gdGRxu4QxTi7B(& zg%y;;ql4K2{1u%LS;jG{YHmEp+Q~Y=I-+WA+^K42{4h~{UsC4-?uxSIsLwg9oe^v8 zY7`Bl#yRYW%7UXY;O}6Trghl^Vgv=zXe^M5h+i@3Y%@*KMkosD!MA_OrskP?$kj>| z{D<1eWIvLhm&AWUds<8oW;SOlyJ!Dk+$r$~Bs&li#!eeqA9`;$osSZ@`{Sdna`OcM zOQ$G!EIz?ma<@`7-XU z(s(vTCvCRTN>T!!5A}9UpG~63zd|w?q}fI2J3x1u=u~fV*~erUPtuk z4TgxU`_^(gWxHU~KrzqTb;r$13yzJt6CAf2@d`}a5Zc!}2x?PS zajAcBL^WFuZt@2QP@Oo36O=}dqN?3l_b1nu%KLtX2a0-93J1EU?{h>52fjR0%$2Cv zt<42cWw8^5Vohe4Y6*3P5K6q>&M3e!OQkgDsBu}SMAjn^efcPdqq!XiDu_9d=y>)9 z*j6t+KJ9a~U5z^IVd_8e2mH0^@}^B~Y{xZ=k$Zm|17tr4gh`8l!Q4_29?bthZ8uf} z#!SeJZ}Z*6|0m>n7Hake#EKQ3y#^#Y5}jbCn#}$htmX;RDXJKGiJ3gV3b3aFKuRKk z()TkEM=^?EWUe$$BmRUY_3`@Lut*8Sga)5DMoZ}vqGSncZ!vniP*7#`a^YZNza|H8 zYsvEXO)42Xd7Oi{;Pvv1p7=g`MG6nu7H;{xGeTRaNpeBP+nH-RPEoq#HO4KkLsl3J zdgCvTb`NV}eQg-~CWTWY>gd7F?c5f&S0qO_0$1wOm+)h_>u^XJIqT2pzV|-#V4}V;ZYPwv<@QY$VUq#)DoI*#I#Q* z@AGAXBZTnIle_--nkz2jg3PRmh4>CDRuTQX?M1&NCbCzDON6@)j1|~n5i$^3qh-$N zX5ix`EWWAV!(x`{?*-xv4>|_q#Qmj93J4=e(_HE{vx4^&ds<=$>cgB%=LUL}(}1bi z!0^E%Dnbx}o#qOX1Ct<=RszR`550|F=kZbo4YtN$R9ZH)UO_BzM2qF&EBVYx2VulMZ>fTx^mZg)1ONF~jTFeq~W#C_%Zo|-F)-Ba7&kR+- zLb4U-931PQNBkwA*soRw3x;Mw6QJoR%#9&>0bGmkp^Y@$53pT3%{KuYXc$&Mb=WuQ zAzT~RR?_|F^_{-&`(0}Bnp<&A($Z!a%2yC;jLR^8nu%Mxi&eIDw#T5Sx&-m%Jd$ym zyIaZlFY8}b^H@vcQC9e{<(7cdaDidP(_{nP_6Xe2UK4KpJ<)<#nl|&6CG}v~AeG)- zlB49p3{SBovZZzH?X{$}q?W$RPSKU_4hRLN0>kD84=}&*T0f6!%K-4`^~=m*mDI@L zC&MXe{%IDe#l!N$*H=W^;HR=FtcXBEmu9*e#L^<=;n%=mCzxr46~1e+@kg{?NJ?s` z>Uc)s8ArdWC0E8cD5Z8;>Dr&<|468v1I)F4?FVm4e}Nm0p1GNz#44G*UBqW&QD}K} z7w$eZPv4PgODHL}@`E`bgo*C&Oca@42;8_yc8S;@K=rRAp#&a{9@t3PiGs$qErp` zSgrHdD1p$0+|kk9xxCHfLtCuVg@`76NKBOy#kG|++?a}Z!?AMV*YV43K;+lvRXko= z$f^x&t1xtt3oKn%@6(T%Na$xcg=OLvm?mpN7~_ly3WsSLL4w9pCI-bM`gi^?2TS9Xco- zl>wISx7OG_6m5NMmeo}DQPUr(>sqa`$SPj(<^BVY_e%y@nm#(wfkOMMAG6rK)xH<` zf;&Ml*R-F|ombo7cQYf$m$bi~$Jg?JoM^KYRydtSPXBrmE4t5(?nIPjCI{4FIH_E7 zKR<);vqfd2X6W2w+h(!CAT#!3%RT0QBJ;m5J}&C;-CbpjDH4O(q{f{#yT^;g4GBPo zbeRPKb#tLV#hUs*;oXzt8$ALNQwu}}au~9I1pl>lT$(Yd_3U=RQfhQVXq%PQc`0ydNNX{KaWP3US)3R;{LF&a~_GRXl*3Qm$UXijy;Mw-QKY01a9g5UEuHo zo#Su10=ALOno7rQY1Gr&?DL^C4uPrG#|!3#PjKlopByI4a`|hAs-N)SU($%V6u28X zi70ey1x#`nu{K^M1%9cQW!tV-kGAI=*S|OOlTk zc6N^1L74q_pzbKI=y%}zE&W2i3spl{jDn|Bq430$@h=Igl@m>xRa5^D0AWC$zmV%# zJL@;0mgKnE;=J0a@?9X}RdPB;huFvP7`cp@%e>JRyXTSfw&K&gr+8Xu3|=ebSh?A$ z_Gq#V_C?CS-*}blYbdAje57y6IlfTz4yoJD{UyQXu*He|NunlfcBb0@Ic%zLjS^*g z#!zj#UFg|_o6PAq+SGoC#`1RYJ>fVpzGYd8+3pPYk#RURH*vj?4M}#9SE;A= zB$tZM!TmZhzRMLYSCh!2+ShbM>PwCbr)#*F-`%{goW}c`=TWnwK3V=c&g4CeT3clw zc#r+>aPD_ITf}_U+HvqklW>D5pP{KdDh$cd^dvki5kKtHP@JudqjN6kVSa*Ut^9oC1rXY&e7s* z)8QnSjPJZ%jz5{6oYVKf-znn#5qjVnlPtt~8#5=XJwy}pVdmqeviZ=Ao?|{Vzj8+1 zha-K9++T@0c!cx(h$-c#Ii9D@=w5HKW3r=<5qnOGo*Srr<$nJexd*q%(q^~W6Z!{WZR6u`3^CN+-~Ju{Wcj4+XQo5ARc_>37nP&?&*SE2rYfu5 z(Z@mVWe&B+LmfM!<=x_3FG4zE+*HTPuZ!0;xyO`!o4$7?=K$Kd(vDS@?FFv;<6QUG zIn;W1r{h+~S5CRVmFq?p?_smzr7itU*LcI|Rs(~2(CPmu{AWBi{>1J5kx6GKH6JB7 z9Lz_}N6qLSF~Jda%l<3RXpejJS-WPe8P6^2?@hx0zPgZCJFM4m6>{(0EGQRp{0Q~A64&cur%Y?PGdi~{=l%3@K0hxP=Q!1# zU)t=1=kqy^ z_Z4o_KiXBlG9%}Q*IjB4b;vHu|3|yr_jd7}2>nCvHF{bHtZRnJzm6DPlM#ClY{s~o zM0lxH_s0+0B|9B)k#Ny_W95#n8S>eqauc0~bzc#0bl+zr^q^DgKveqLjFoAfbw%V> z{xo9ZZ;gC9Vsx#RJhifwlDk~WPuvx``nyzFyfNi!vq#E4IxtqU)%1XA1uuwwubF#_7*Ao-x#2==B^KW@nm_bjtXSpv<*sqc)4!W|95rh^~!w z(Yu2}aRU-{A8;u5{+PH%^WD^FXSB}b?XUFT;FP*8&Kg72uN+s>f4xicU6-A?o!fRc zvzXH==J2uy8hqcmohk1{uR_nDFmpKU)yxIV>$q&H{l)stetwSA&*}J$=$Y5gcW{2r zyS)F5u7g1%6j>{SVm_7gZ4f7Cai76$Q6E`pWxVz5u8&Epp6@H0IA6`oR_1cHTft#g z@IR@O`=DDfUy$vc9A*`>lgr;}%#EzWoksNT?|zQ^evW4~&jV{X{CegF<|E9F9PV-K z;VDiU3F_`t^|5Dp&+;70&lyh%|DA@q!!wz~ZIW)Wj=aeF7mb^pk{>y#E?>pJCydu3 zec=G#MW15%3~Iy9JjMAu$NZZ44U-y4%!xMsf1}xA=2e?o?Rj3cc_VG*u*ozNY|<~m z*4L)W-Jdyt;~rp>eQ2mH+SWsD|76O0+o3i&?@_oE4nNi=`&F7v-q@0TmQD8eY+JF- zB}ntna%T`du8Y?wrCaW_${+Fmav|q=q0NlEE3nYEK-|AB;XL2NXV6a0%VVs6%qGvM zkJ%n@Nj}JYi1{${5#}c5qs+%dy=~?Aw%VQ(@o!^!hb_(}DbIvI<@8@=zR7%x`Ag=n zm>)AgV}8!-&gZr#M8A2>kahY88$DSyBks-I*ZyXc=Q-kEIgazpK5;USed6TU7{Kxc zaTkmI(1jrBN5t{71NI*s_q5>DxM{+_nDxbR#X_FL^7rCOgzSss@riUgIj;NJ=3&0y zemHKGNOKFzTjJz-`>8m&7keS@Md80MZXfd|p?@>(Z6UwK{B7K?MVcRTI=|<1ejoQc zq5qWi|HnMT{$Fw(d>yCm-Txut8*J}ymmDDGvP=2wHiDVV`_plJe?HDG$ND&a=U@`A zJM`YdYPOwhpCJ6EavX)sVrC_Wxf*fIXWc?(HFJqQdS9;AIX_&j-0%GMfLI4>?W4pV zK2Eq>#h6&eaWwEbtic|=(`#bCFz1z4Q+o`R+l;tPF~2K!yFKbw&y3pa4(3euD-?Sh zscT|xXCAak%0Ad;e~P(}*`Lpa1DNg1JDGPgA7n0f+L>x^(q@-qzRkXo{Wgkum~ zlkd!;`KPBBR42FF)iam(;w0sqvWE3*>}y1t8~HrHF{WNOaa}(uo@qFQZadfY4>|mE zcDb&+!1`SrW*3Kv6Kd`iqi9EZe~<1- z=si8BMZQdg8_jpbxqNQRHBB=w;_h#%d!k%Z-WkOS_X|$RJR3{N@2u_S*+J?uX35rev#AvYpw%yo32La|3e=^Ks@@=F7~V zGWRjxV7|%x74tpjQReTMCzziwKVyE${EGP>QJxLl-gH-f#u*)Z8%^0B8xaqkjHwUC z%Fl8=Y~=XVz33CBJRd%71|$329b9+MaDP$Hhs=okpQ4W)GNaE2=*=HHyVp9@vjuq% z;xN?vVzGYFbH#CfzwCI-`(?-Z*^(>9O;)NL$IWL=N%;)oxOkrMA?x08NuG5%nCc8q zdU{@BXOhktaepjo%Z$i!UqS9qIIka@ABwVn%KiI~oS#3Mau5Gc);sxGgwrAKuIc?Y zvG?SA%!~QnXrg1HgPyvO&0OYueulDu<5m2D~e|0_UYaBAoAjjFvbxTi7J~X55 zwd}u=!_mErnA;;uw^dbjX-L)~Z5JF=!RUF<&8`n}xw1V4BBkl&;Iil2eVGPH9U z=-JP9Lp_t)&K&EMe)7(X?C)dy4KeTTY~VaOV%%yxL}gR_KM-PNW!JYyee^zw{5Ej; zr90ZMHaJ_EFS2d)E`!|kZisT9M5X&oj9b3%D{sM~?@RsL9(5;~QMcL$ z$Tt+D&kVLWGb3*GzNK`l_+{Uf`AT4J=C~4Ko`qG~B@Z$WGk?YWBXcl6CzE%!#AtqK z#!&AiUCm{cH-ggk24`EOd^f~AJ8R`I?fhI#?%zyyt9#ci&O6!eKIR(c!;$B4RMvq; z^f_Hm|L9q8f@UM{;o>+=`D9PIqv?Oi>8)iyd0Q;ge#Mm#spmIc@_pWeqDATqWh2L# zv^m6a9CDp?tv4N-TiU$O=_ZQ#T)i{9HD+vXb;=ndPPjjE+L>yMJi*TsDg2MQfBu-~ zsvq-Q^a?-cdyVI+H`wkM&cnk01Lp@~F8hen|0pK?kC4_@e)jo^bF!FwKfx-f?n}=& z&B$DJ#`!5f$2%kV75AyHoX?n&wIbhNp@ryar8u8+-?F(%oxild<&tiji`?XY5zku} zGu_N&We zvNP`$eT(See1%<3r{w*jj#|~+&RolUfcYSEJ#!QD`^-m~k1@9}ALnvyb4A}-+RlDI z;Br0bdPU^_IhS0Q_HemhjywlVV9NKlU*Wozx&tmdb0e4Sb=P}#N!fSR*zDqWhNEwg z$n_~I%jb@tAoEdSSvPr!ovLEyG?sP4FF4L2eFxM_`B?P(5io)2*!B%a|t$~)W^@3`c> z#yhUI7~MN!%&8|=E+h8+-RL@fIASN??iXig*YJ2X4;^uNBkyg$%W>0F0pk1ICqCe3 zZ6CN^FrF}87vX-#;mCa=#(fqurMm0?yZX))KTC7Q&lmgDA(8I{$gwjbUbZ(;)ys%@ zxjv7Gm+wXoin!@hX%(f*#WvA@{JboFlz8VOEndANDW9Ajy!0Lj&M^-S^k$o)8J zC2RTlYMb3}SI>IXDrNAqk~xujpDW(H#D0@PvVXm}Ws>f-;~(haZUVVu zzo(?yv(0{eq)b$D$vV6I4wD+Sa!f~Mbw3r|``yfL3V)Yf-jm+NcT@l3dzXv(>~#h2 z1FtYs#2!3__1E!vmA;!s|0rJh#+$Ui#vz|!U*}NoQ}J^Z=W5itfPH1KSS#;J_0Ho;>iw z15X`z`oJ>>o7Pdkt(W;%p-f)EpKe)SJy=*qqq^&{SvZW7ramz6tI?O-Z0FP@n5I1}3;0s#}(o zSBJxa=0+$IND*!hw&x~DPvLeqw$|5+plyNXmSBi1XC`>^3kr*7%`Wy{HK$~5X<7OA zDk^>R=3l+wnuRD6N`mqrbNhO&oG)H~QRRKN$a`PI*3Yo@H{$vy7|#9)i`;##Gi<}@ zFZ|gqHBhR!5h&1QhRtonx!s28#*Y#2<{#-=K`y)7J=(a??Jj5zREGn8cVl3=yFOIy z4>Y@t%b{*mrcH=VT zc}0smT-{t72)nE6k#m2CyV~y$_>GImpfT8jaPEpgxEgMer7>=|x3)3Vtg_&)2{km; z2f_jOxN&a3%shf${%vNI%j%kNuq{COm|ML}SXH+~Yo}3qBR!|vUDkw}MQJJm<62wD zG|(Pw2}kQd)Kf*EA=DO$M@7IEvNj?n)+&T&Kk{q|gk=%?yDcS#XC(6X-IS%lo~z89j*(ws~i2zp`d?!OKVe8s5v~o+*46h>Z|e;_`LJI zzH8ih4XD;}$Zz#@x6#*~GOsaM6Y^6l$GcO4js8G84WqI2kwzcmXw0SKHv>X04Zdm9 zNk5%(>@7v6`n$cA?$R=!yL4VjNh*tQx;>?ZZVadL>RR-V8uSUO>%J@p{SYp4mp6x& z)CVvmf;A{YbyHZhSYJ0X?U`HT_LaE}ms_+%F7j|4gzBXLb#WL%KyM>x{llzX>vvAd?akp?5itxA>J6U|W*s&8#*6t320U-gn{ z2ulrzkhSPsG!OU#sMqE|i@Tw8v_4Tq+$kx*iy_T=;PD7g%HyoW_nCR z;i}r^Y7uN4IwGe2B^XXpGrpu~mM@K_{s4wKC4spPL1;m23@$~kXQX232sAVybPZ%G>kz^i|)$8 zIc`j~G&|JP2T(k}oEF6TNm^cVsYu9EWM)9VXo3<`UC=)b0~nu}bxko#Ur3)c&(i!_ zkE+2e(Aa8Rz*A0h06T>i453^ac0m-Uy0IqUUS1c(&YR zpn6&YGcZlTVo9);W=PZk61;#kl*a-r-qp?3m@QEmtgCj*5Yp{$u3j#7BN0stnuwM{ z_9>3~$ky|RP`d#VS_8DVL8p=v2)BGqHLYUf-M)}Jg!QjE=nsf_4r{K8sTFfzGv+M6 zsPv}lnq{axH%0>+)W|(oeTS;JSzOU`Wj&+W8a&OlEz^u4?uL8>M|ZASRvO^89u6f< zlm*SL4NEGKRM-~`*9Uxo_Asr(F`hB{ezcr7Gz77?MFS3uS=_yTbeX|YfjktTifhTH zAFc7cZ=w#?AmW_P%nDe(dB28w)suqB9w5@jh5HO1rym4+o0+ZfuE z$>K~ypJ=EEV8-aEl-pa8mfCquLzjX;n}br+mY9@8e#P!f6iLo$vh0yvm}sDgB!ZC% zDnv{`m6#R$B6K8Cr@O&dT}%5Nkj7et932JNZ;05$PAN!TtTNnz;*F-P&BHRt?L zk30gjvmM}WvQ%pVWSKK6A?^MtVjP%SP*cqToQ<%gCy}eQxseVUI3|fvMx(8U@&UUR z0JA8%DJmAWsDH~2WLR_x!e+IR#=My1Xq%KEQxiJ@llKGoyb7BXG%s9BFiKjRX!1h} zh$)0cp#g0^6?=lE)wCOsyJ0LMH2cf>6k83No0o)I8?imW_C#!2DudK5vEywCHGAY9 z4Ar~5Iw-5x>BjE5j;3(IYE(96tY|@K+@q3&CrW}M(Ps4)!#2{ejWR}!qM4vptVBGg z@sxm>P#jH08F8b=8@ADgIeL6LcABG$@q4x58ogvvMtVlJVM{jRk~56NWZI!6mp2En zO!!6Hw2Z%@x~w7#g4=y0=SardrIaNRT@K*aS{kLiv}zVwonQEhHZ>7V9dD8 ztd=q3CgV3V6C+&8_-FLTDJWN+@)KC((@}yEKPKCsGA7fXiXd2zF?{H_gx?Ftw2Y&{ z+TmUl#*|AF^O%d!=Np4k#!@t??nNm5brh4ClAe)j zI8(AR(z66J(=(Zn&6KPunc_3c7?3g}cWTO_>vONWGBtHZuHk}w{fY$CVaklWk=I_E zI(01axG;t{lQ8Yx{KV_jzOr{r?vIu$<)|s-% z>lN`XLIw0qS>(e&s%~gO>_cLNNM;6*vN?n~v!!LKsNY305AnjmQ7u|%Oio!;J?Cf<@dBW1#hYiF!Trb0D`Lg7^OFR=h% z45u2lRKt}j&g?11z*I4-N2Ykgo{BXoE)^{DKN~jfEuu@Mj5+=}Qp5vNOgELwSt*0aoRpNveoTO^lsLuo(*02W)OfUvUoYhUi z32hn1fQW*2C@nDt!3J#mF{MvvZNjP1ACPhNoq%bwnUix#VFJ>XjwY-a)cDf-0@lXn zrT>KG;)0c9u%#Pjy4X$N*PfnEB7Hj21^T3`A0r_>>W)j#Fos6&smCSfP8dIyF1wBN zsJ8dZ?{VYZ$rHwosa{g!ztTwiFGE~OL6CALe%lROhGEYbkDO%CZw7v$&&a~>MEp)R zY!EZkjiH(88Cm1fCymRTorKjg+X5^+%iD;*c%gpwrPt47j zl$#ChAZWA4Wn_%Y$aH69(q%<<7#DvoJiutEc(E16P29>Emly&#E1OM5TBXiGfRACi_eMTbCUR+ zEIxC@=M;({gFZ6pBa1$=>0=^&Ou|PdMVy%~KQqKMsr06q6^poi$hd#(ylqicrWKoDL3Xw%2vM59rg`k?rqMFH~n#sy0 zlWa1{CX;MoLXl=uq}dcHRbCcVUe-hkK{c2)kwQ$Q5ECiHL<%v9>?V=jB(j@Cc9Y0% z64^~6yGg>1VxBYw^-t0i3N?j7(Vhh#>Ebg(d`b;PG==JGN|x}<5}sMY6GgNkjcgkK z*{EQAWYP!1WM`0$nkSo@Cp$yv$T*WcsA99JVzViM>`dV?kv=9FHnhmZ>{CB_?emR$ z3>##$%H(uvKYV72PlTC_4_l5AmxEm82;Usxn?t_znJqpiiqA>nbF%o%q0bEQNyW_( z-7iOUzZ}v1ax$n}=1{+}p`uVnjwy2LLQTb?qEe=0PRU-Ho}HDIlL@9*PsyA(DSOJK zDK%M>s+Ug6T2k%L^5@i`d&HsU;-+Nd7gNiWN%%#rPnn!U9~3q6KV=G{$4|OMhGEM! z;;_OF&UF{IHr3PhP=MFYvRwCEy7`kAM;-3g#^8;uk*5*4L4R7rjb&4;z1EvYK3h_B z;y~%j6(`AQMtrWi&d<)p#(EiDy)_5q^8|TKDG$wQ(c40imV7SIXgG7_b^PGm30Gpj zJ7MN^V^e2>*Nrv$=7#A8f>y>{!-fs&RQDp|f~kBy_BP4~HYjk6uCk^%Aa)%6r@FD; z)GVX(3q7)6QC$6zALXwU*;8ULVtUb3H=jTY11&Yp!KSc$u!<-Gjp8^Y!-(@jGUTZ3|Xor;=wl^R5)THZzZQaE?47IP>HlPI4i0ktEFGC289#UC{NDu7%=9M&vbI z0<;?>$3iJDOjVABoD`iJ^2Qqd^TuM6Jr>(d5qBRUiVVcViM=S2A?19jbmff`{?JJW z?Wf`N$t+4os_^l9BV5B*nkg;=;j2ZW>`cc zA5|5g-2>uzWK3jJDO2o}IaI>J7y)MeV+0sl#D!>4CDOStDlLTRrFrUX6FttTa|0qC z67`NMk#tl*{mNR#31a|#Qa9wYkTXxVp(~HuEuI}-szl+UU`jh*8BSL!nHafbgyhe? zLUjeCA!;fv4`-CTMfoB*g6OP^yuuhG8~gX^FqZ6-*V?$OF|@pKx?#iUnQru-PBT+z zsocUFann-_`*fW6@!>Vh>2$t!OczH^=X81I>?294zSHI5Pn@s&P3HrkkX+Np!r4I$R8o;Q(5WF_m+5l*Ho2w=NDB~6wRhE zp32Ii3Lg~4h~AA#%Sww3cklklf!9}L45J6-6sN^-R$0NkN+U)2Rm`3@mmaDYE$|hU z7FJavr_v|CtgNKSQ%ae&S{D1}mQ=w^2$jAHZ|Usr(akNJFAZi_cuMD$cq%AqD*H&? zGMXZ#&(+hLNu|$I;S)xQY?SY%Tzd=A9L1i}(xMWo7~xZZ>{s+y_zNr+Qg@L>7fI3R z7twnQ<`{jIR91eCk)VWmKI3wBQ#DqUdP=H1<>d$=IznZYXTHZ<;>j;5id0n3cJoT3 zmMURumWxrZ6{snMHU?XD3%ou}MU4YEMO>aiLW|tE@t(BcVkfF@{FOn2u@;VC}rp zIi*wwgVakaRRtAAm^Wz}9JwC(Bb z89iCI_Y||I(O*VSQ#@YvEQ7TEZm}*81Z(TUmhf?&5_F^z?`#Yv*|%9LEvuLdzX4Jz zD=#mrq?yg`L9@lY~D`lA_YtzT!$&R23D@E<(RYkM9Eoy6EhpO4MCR z*=*EiNqMn{;sElCd=x~w)RZQ@&;pbf=_;zge1Ac#M3YWMrKaC} zZN!K|x`iQDQO{gtaBg`~MWv^-5LqiNp65mHEA`Hm3rXR;3h9_ziEKel8dN5^Dt*_K zVD2j^t1RMa;ll2Eni^u&vpj{$dT2MbZd_JgRN8~FRFm;Q%)4binM2<-RKJgerR9i=E{j zUooPYhgzCf=q(eodDU!>m!?IlqRLl6^+pras9wD=ZC-=cN0*L`53O8jiH{V$#Ao%Y zD)5xb_)O0{Um0?Wvy5kQl@ATBv1e(I=sWsw_fhEEE zV7Q|Y2f0DSEWGacPKqpu0!U-usr-qL;p9HPZT4+IN{Qf$7}lOlf`jw^+{!hUchUCiQ67 zbB~SqcJHyuE0PgmGv?cEkl7wuLYc{2_Rz(YL8K*SAQCMv?j$VKJ!?&lqECVq~xWk$#!{Z6}#?EwFG3gCD`SzZA3y>$h@3fP}rKO!N_^{&; z6wkYJ-P8+6%&%@P6t95#LbbK^0a+mhYm{ufyS7x;Y^5l%BSto*DB<5jZkZtZU>vGRdeZCO1d7P zF%%6WA9jdmB>XxvLJW+AXpvu)7!rA-KW1npS(RE#UTF2bDnF*`NUaalValUSJiln^ zF(r$iit<9uS2SzB;ZpA&4)V~qpQ6>Di1H}V6k6t)*L|lwD#pL}-FVbS=>5`06}LWE+ejthZ`-MTl%}3V*=<(C zs=hu{Bfi6?^%fiyW4|Ld61AmdegPK!mo@yxbyFx*KhntXG`a)L%_wuIrlyr%hnH`q z2igNQt>VoPf5_WNZ(!Fp)3dIWRJ4eEWQU_lW02koR;Niw^cqVwFyU#6$IdI@H+=H}`SZ&l)I8jUA^Infufvp7^AMN3K=45CL0om;BcrRSThS12G59FT9I9mcqUjJsBcmwAK;<)Q0WbADJKfKFn|x);E`@UNchAaFQrDds?^x> zjkx?={CW&$zNe6`k}k;iRETSaxj3R17kOtF`-~wnW%xt12&?m7OuUs-UdYS5a0{l`n41M)qJ) zR!;fwlvK^~7L};@tIG1PqPtLzUncF!FY;a`E>ZI7w-~=(Sa@ew6&4kE=~_<+bh$gb zsKT)4(=(fVZ>gt(O62vGRu~romEvZVD%evpt1AB*UlC&V(p{_17|0HO)N+jxpYL5r ziBmh3pms{i@{I&h7+Gfnqi%TtJt#&|UUoI|5tm@|Rlc%v#8F{fmOsy1Qdl*=sG?FnF+iV~ZmpW{7MCV)05t0L<=MEyowSmlH{tXtES5#@f~0M*VHOraUdVL zK8TfvCgY)`i>yD@VfV5CHaj9V@%7E5{OV-^e}3SmAdX#)h_ESCPZPE*&jpsZ->tg2 z;)QkIZYdpSm#1LXR)m)G8p8_lOk1jk&_)u&-*VS^At~hwg)*pZGBpa+nAUmXA4zgS zsIf7?wPwBTpbhLGGNFwnEmlHv0cnb`FE3iU6yfA)iF9)UJzT?(2c=&gYHDq|8q0TR zx$qF#7GLX$u^uLrANmlS4V#)});kzcM*3c1Oc-}m*SIuT+uAJZHa65KWr3|U7L#y?+9Slo zazTF3AC$czvO<{o!P<#v>|kwqu!hPZz6pdO8Lah*Zzqv7JU`f2OGXjl~D*I z8QW|oD^fd|a~o!4oPW0P{4n%?e1@52GkPHgWelTd=+EYC;)2C7U@em z1kYcc-2`^yU@#BIVyK?{vG7Nr`OH;0;_T+hT$>^OQFG4L?%vjh`2_&%!ou#>Xfb1Z zO7A03kq_RM?;soCGi_X~D-`b_bkJtY#F-kbfwd}-Rckw3VtBJwZ8qBVYR~yVJjtb^ zQmb~We3u;e1h!nec=w^(u7f0nf(dQi)~X;bK!(}!{l0u<8*683HRqKY`*8u8 zwyk#m7<77r79{RCZ(&tIkzt{~ARpy^kLR3AfTCvJOF$@dyg`)>4{zcFWTWd`q9+dv z2Nl6~c+v3#z#yz`^{TDLZr^P+oY!bG3i0Khl=AIswH=TcdW|-ucx(rgcD`$kZXZcO zG{XFM+S`ASSOq0KQ)@y>v+8+}P5dKs{W@*^fq*8q20Mdo>=kYJ-+@9vx7x(5IP6ak zK|X)t#oe}E+v8+>FO@x$V@Oqd+tl7_P-_H>{`W34BmQM#7Cl1yC6HF9-Kp*LI?%dMDa}C(viBNDXDu9hD5UkMFF>8P zw?Nt*xI~7v(*{X$KpsMGh~5oYJ(NR10;iUE72ZK2t@WU9klO&?GIqBpNJZn3>-D{g z^Z&h~rTW7mOm;Apf3+KqDqOyG6kplRq@YLrXk#<%2*T2*|*L-ZOxghj_#gSA@s#{|R(7G_QzY0=Hm% z;rmTIN)B4IbG7D=hl{bW*&O4l7lTL!a&kpUI`$_h9i%Xj7_B04cA_Kkeh2){1A09kI#`ufWa2n z>3LAxf(d1E#tzYAL<)&R2kRM%2ym02RTQ*nYGU*W$6(4K1ppz{P=u=5sKMkDV+fh2 z<^10YwvxJmB&JceFtQf>91x2m&zV z2L;kk5s&g4kZ4&UAB^uPgby0&u<3LJv8pRLpBZuP{H&ndNTZO?N2?0r+9L(6l14*Q z$=V$SBa>moP&4y!8o}*v<>j?o-`c&q_G2E(A3YLC@^Ufg)^1i6gl{AQo_!ui&!L^x zeyHq)eB&Zc;y{47>rcLrXAUTNo3oEGPH947! z5M=OaP;@E}+{Q!v_@L)joUavJm_}+aKu0i<)LGDoP7I^7!PaEw7lsoGJuze`X z8caW=RskYRN^77ay#FQAT{b%6mQ!vaXyaTEB)80u^EBO2Z!@Yr_-WQcVk46$0~FH_q)m>9{+Y@25lXn<&H-e z!rhkl*#>iGk4dl2hxE=O>K)K{f{y~_#hS1q!qnfWx!hh+!&6YR#c|^W`kG<*Am)2U z9UiAt`pY5`vG&}fWdKbPEQplz5#gAf)Xvw!7-gwgG3cDFjs4?kFk;&okmd6*wfLKU ztXdTWOx>Tjg|Iz8uFMXj1>_1uFxIi72~{%ojeTGlJ!hc?Z>R8QY_ZOvz^?|dV5D<` zFf}LV5O(Kh6^(;3SU=xUvEHlk`H0)2lEXgAKG>Fzroj_QF;@2O-ejSY@C+F~MU!3J z*+L@?0j6x(l%#0QxNiWli4>F$&He4npn{WJQ&`*K(8p z<9uuGm)7Kz=ghTQ5{6890bG^0|d09DeT&*N|pyZ4tOG-K}; z{NT3Smomy33(AGYVwzm&@SthjjgyK9n*?*%-6RcG zDh!QE!JA+rz^E}eYl6B8)8uzVLE+_q>a&E3mU9dNSAkJ_EL+|AEeO92!$Y^3YkU5{$Z?NvnMp z`jvZ|H({QsRJ$&3d_iy+9S1l4*-hwEA#MiJym-41CC&7#qNbFrbufbja}hTv`Vm`Z*#uy@h(rH)d|M98azy_RRm)Zj>W>KfNJ9q=mnbUeQ}wA z`k>^ZR0@3Qlp`A6M(uU>6$H{JF&J1_7y*QC7rp7V~PRXLZG7q;!bi?#EC3MQlC zIThmVRJ#pg)WD-l0CnD?7qTp}M>0x(ARh(ZyY=eh-Od);Hu3O6z3#kHho3X>iP!3l z&A~R%G}6Z)6^Qv5q=LYXLB3IMY*h!%zH@~?u*kmr%uAzLeGJ(bDb1#HS$WZp`@Aa> zHapF_^O1bRy>2qn%JUp&MVc_;pO*l#o>N0ymoR3Q-F4vskC);3Ei4C1g&a1vp)?5( zJoA9&dMMjD3Bxl;bSg%o(J>olNq$eln$>MD$)5Pw1qm4RX#)b=?wSB%cuPDCy4!fv zs12C0{(X_yM0XU=xhUWJc)ZT*<6cbyZB-w+twD>j>3p1qK4>&MHMB9+-L9u3yKO^q z!jqg_xOH7NT4!s^tMwXs4D_IzN~=zg*GM2Hhk@GV3+4 z*F9*k0$t63MV6D?;=v?YFS5Sza8fJXNM2{qt~(X+O2>lgZjYZ$-D!Ys?Db(R$Yy-t zZeo9TUdO(Ijw|eM9s4yq{zN-_;sw41m~^lR5FWTS^djo?Ay@7ej>bBDc<#u1U*YKdAto6^-@5BEl{O>rg*70!k>-Ek6%X*&ug_3t^hU*M)$oHxbxl@do zfmE0{=c&Sa4fNw_KtJnsy2&Pt*noMZ?p2}A@hBJ+vrijNP%WZ&o~b{9K7orDF7Oi; z)Ph-HD1LUbqLHZvbgz9_Y++hM4BSrN3lBKH+*~K&2n0a#QzM}V>J>0(i=8h~_%0P& zuJs_S<R}su2prh1-0a2K|JAw&UvM0UN-s@telez^Msi;Ilb`3#mno*w!W_I-)=8luHmObP&UK#jk^ zYOJ@*JaIb?N1l&ySA}B96S`x6NY*~ColC>V2jWRMt0RfHr=r50)6wzbvI2I+9SoRo zk@*OPENHo?f{#+r8bzJwUL&crUi91*BCLw{p71`B4V3j4_38nc2gt|l7xZZ#vTcB5 zXMjwb(#QK&g(4dVBPQX45Wkq~8xpsipE=Vc5HH0>$4yw=o`?fdozXpKhJiTA%bC@) z^FuxK$I*fCGAF|!*IU(4!oFf@CNuN}oleXN1Z3_?D|Hcn9h58RBV-f;R8W#&)*3E| z4C)M>aike$tuB0X(2TT)zDF>InF7FOIOM`_VWASi+$BiFn3V24qO*}+1^}N93eM)t zCkuK4i@VzNPhdPOCS-Spo)FH4(xOA^ptR{+<=U6Qob#!kq?|Qdla+%V7UK=yc2@C) z%HWR=a5MYxxUvr|&T2ajMvEbOtdCD7(J|ENznstO(envL3Z%x9(-`JX)CLS~XbonN zk-McAgy)`iFhK{V53}g0suAH`%@6Pc@g|$^U3LJ4h5vSbRNthl)p6j@nBzTK30mw8 zZ^YJYZffYjTamGQyk@0MOaeREz_xHF_&-q8gIn(&X`Jhp4uW6=122q!R zvjEXdkpxgNJ^=tUb%mZ zZ8~ql4=$`Td<7L3B>h^av9;yaT=I>2lf--!r{19_<_qk+#UcQjn(hrqmZ-!Rmes1Jf|Z^vJyJ-o;0yLyxQpd z2k^~7?dJU+{oSp#+24Cz_7~uA2=~X=_2mwK#Aj^jci{f0;;oWNOKB$S#M;wd_Vxum=pxk~9+&Y7w zW$^7@2UNuSjmIJ*4B!n~=m#aRC@>6aasuGCw>k{)0RuFvJ@_Kp0H85bkljspTjF&f z^ShmP6FVzGx{Xd36)yhf*7}1UXz2X4*V(24cU^y{7&uUWpk$MAA(aZMxhPMs(dv-3 zr8}TO!+|t3S=Z+^#Jc)UuhZ_dkhRFM*TS$UR5G3^uLJFeRVLmCo2)L*i+8F#278;q z)Vd;-7#gsFBZ@(2h@MqmsLpuK26UK33EsrN^RRlKMQ+&zRr4x`H85;Qlh1D%{HZuRfrJHJE*8gCTh zillh}f800*xq%*^ zq&cagm9LHC z8utdr72C^0?h+v{(umM0!dc~LQOt$e$`~&(lwy_Gpt{XAs6KP71#c%AiCqZi`v%jM8ZV|;a@((OS4M+e5b_QMd#dI9S!RARnS_}`>^Qs@|NosHoSVCS* zqZyyP-)vB*O58=-a?Wi1;=I8GNKZU~1k4`r!~%%oTezI6=Mc6)$^_YBt5HRfM2Kj3 zAmF1cj4brH8*?p{MtdtF@!VFUQODSMs0Q)Fl?iB2chMf3KsI}zbZC(6Mw?=5ot2QC zYPYWeyl&?{2%`z$f$M?540W*Oys`y9uWsS*Yg_c^%$5s}bWHV?Ef>Kq!*REo_yYfc z6^dKEVa9UxD2fS8@6;6VfBZBu)zX>WDyt)abbId8%nr~#l6TxU zn^4|nH4($PgK?i?GwLY_+oeqc z+%sfpgMJ53>(oGSJC{J{ln?a54;e^Aw8R}C6b+pl1ecp@>`xZ$GNFOi)UgYAHN4WhE!p&*bKI1FQ!qKrv`?k5S5#A575oIi=~6-sy8wdMdw+8xMX zs|!+bwT;_3jfbH0atsf24OIQE(K{ZLYJtLC1!WE@Tx=p-NF`zbP3K|?*sX#boI%A6 z59g`@$nh_ylX$F4=n8s5uYrfCGW_Wv%vk~|s>^!>Xm?mo;PncftbPshrnngr3_bH3!z!lPuLXo%UhBi`=ry2P>Iw7$3(2RK^c@Bywa$4PI#R8{BL1Fb&u9QZ#{ry6 z2;luOsDfVk4h|J}yNxG&K` z4B^h8$0rqXE?`^kP}&~!lwOscBj3dUj%T(!=k=|@J-6D19yoxC9NZ>%;&{qkZb2mdoI|I~pM&4^$POKe z+vTp?abQipxg~A2IZV-m7`-XIIM1`dGFtGND;i9VJoBNJf_rZXJarQ}Z7QuWxE6n4v zO9!`iw!(Ne=OJLOP}p*IAtot0($)API~|^K9sZC(Gy8z&s3IzREG_`$<^~4^cwT8b zjiVR1;}K{(L8u`yGh&wx1dQrKy-cKJF5bmmsLy3``tnHOwFvUOzDM_VCF1cHenxyAS$5^V-`Uz{+0-aSV!qkB>mZ*+z*6-`yuWoq=t!gmocTIzMhT6JJXWp#NXB^PtSGkJ-D9Uyn?mWHrVpRuG}>P>aRRSBhtUzMK9f1+y~^ChS-s zv`|Qk?P6MqFu2|rW>2zfK!(TBojn39C1~ogg({rxT?wnWMLahf>-x|B=fo;IP zy3_A>oeKU|Xm|9h8+ZjR-b70xJ$c-N?E42{$nycpq0QfZy)pZ}^6zm7xOk2EjnRL9 zSNS)JLwI*CJjO!~qnmfhjh$}QJ+m`_8W>=e!5^%MOYo=O1I-m(rJ>`^$g0O?R6V97ueU~gOE&i zZ*42)4cz9zEh1G9`yFqjQ0=MIfM85xO9Qg8Mo%V;?`XJ0mU2bIi7RQt$C>q{uu}5#BX}vtqs&M z{jPj>hco0kNNw}Imw+gYmG(-5{R0hzY|glK=S>(O?LJN=Z@6`4JUip!|1BuR))qj~ zR@ro&v!JbG^bZ~|&I1(aT`sgXmKT0rC4=Q_F8z7kWq%RaB;XT5qvt04f#)Z{;vQh! z!^@7`dsvkSM;iv9z?Yj)mrsyKlQ=dx=O%IhK22ot2K{jv);;=dQd;u~y*xo?O?+fD zn2axk)P!%*AC`onE9g&?^6|uZ%WaV@stJA1uT~E{SQhp8>6L6<1p&tMgFZKbRVg_~FjlT4= zxv0KL50EQv+wHqms8@cU#ttO!;IW2xWePf`yoGPvQ<^&mk-&JFzjW$#-CN_FlJF27 zKxBMVy1ln4eq8<-9!^D8ilW7TC+n-8Z>ji2kq-Ie~|Yu z2~mL*gX}1;=+phS+kODmTF39570>+AA?IVa9nHgie)7x>u!J2%3xFtWf*5>veAa^wal0-&}(>l+U--7cJ$E`f^u&`CfhbLE*fvJl|2C?<&vV zE6*zJkIM5;%Ja|Aal8&bu0c0sPZ-uoKHgTIRrnp{`L6Q(z4H7+!g4)%ypufMO&-5b z9u=}5lgFQu$DgT&cHKs8_lLVbK)>?5L4)6~1TENy}wBcZ^=r z<7Ar=tuzuSOg--l2p)6;jGx4N;ua93y$+Ha$k`>QA=zoxTs%d`j;~3XgxNZ|4=sg| z@F^BE9c*^4sU#?-;KhMVhaJJFz(T);ztw5Dej7TDSS;VhC+33#Ga;>)bi??u2U5}V z5K8}^CN4v*qQk}9r|>@7aeC)p?nL-sGZQX_YGLR8Zr+5yEZ7b1%FfvFN-j?wMw2Lp ze4dl8{#xDl>my~1fS`U2^p%bWH)`_9-4JIK5c$_oG z`u-sv7bZ^?QldX+Re~f!W51{dbd?naxnlY*dK-DcTxhG;1f2V)Fvk?0cu6K=_=y?n z5jb)$3h+MKhU?)01tE~oV~oi$WoGE)yDAj#wUux-j^(Fjpm$G3g6Vaa9U&bx(T#@! z1t~E+-*jiqU?1_`bmze_+L@hy+;hITx7mu<3uNLC?xl@h6$Z(nIdiWL|3R1}wa^>z zhesfc-a~2i9>`H`c)r&JG?4o4H9>~FhXUYb_^Qap371OK~# z)@^J%H)zjB3_J43prgMFm>9&N1ek|DBQ((M_ClD{+J2j~tB{S+FuoSfzO(mM2-X$GD8od$R7%RtjE+WM3q&76( zLuebL*RtsdU)6IPm1uYOb}<92oQ(IAx_20H`)Avp(Tdn2&2KAO`zOAG69IO z&z1Mg)*{m1cV4?+ZKGm$AH>-EjYfC3iub@e7w)5-1*20c{sre#Ky)v-sKa`V zTBlcc-obr!W-A2!I(gx~8qQS$QGn7d^ee$VWWHbhJ|-nT6_~5XbVn;lRm8To({a(8 z<_f)VCjrSG^eE>8HHCaOuB0K-JV!aH4Ll6IE)cl3^`Vl)!n?Cge5{6Dah{YHh;qpt z)ZfBqb{v~BEI#!nzEE}uqgmZ-G}$9N&rJ2CyJWx5Ky-=$_u&bfIYghizYQGSCMZ4C z7QBIic^?GP`w!v&6KKC6dj;E79ms?y?)0iBrPlNdCd@jb>3{c)lQp^(KOL=hgPOnn`Fddrlz->uJ{Li0slN3`_+k1Q7ULrR8p_^eMPbEzgZ*tnMc~5|$|aSHFwiL0WHz=Y zx3Rs&A6)hwhTmiy0}AJHv^s;^<5q;`%)$WZ@G2O zC*VPwB|xS++mQdxHaS1NiaR4P9N@Q0RxA;0;BC5gn_x)t5DGxIjC@Fcc54_Q{Gr?5 z*{xT-9au%KrQzg69yv+Z;bvMW>5?VvAeAV=58j> zuQdG)AoAJo9{mpKcSOGd{qEE60sS7*Z%DsS>Gz0!$MkzlzmpB;$0m2PTJ=>s06*Vr zy-aTd=0k;$LS!Q{K5RIjS<|@Gz2SUagd)!CZa7~Sp)xOp4d-TpD6aWf6>8Rsco64h zH=OG^=o`+rIjMpNcZ%3>Rt(7f@HkL)WvyBy7TsEsd{spO)r{fbL0dem)C{q5KQW>7 zF^t8$I)(PWoTN{utMVee4Hzcr1k{5zoR5ug*;3|Yenp#>V@w`{Zp+TRuW+l$hI7@1 zl1WP9l5N1Upe6}|FLY@1e1ZXtd1hDsz#Z)k=SD74k8N0{OO`^@x+o;8rt1|}t4Rqz zD?;6HzOkdEE;-S9ya89mv$Enza|8C#(GKbweV_-ZV*FN~O~LrH*ZG_?6u{<3*|VIDxEQb`qe! z$%gZ32B|ge14YP;=@8BT>YiPcjm@F&FC1P{uE@zrsf}2c^f{ zWzB_Ue`zwCsg0>2ynx1B&m^&tO*7@bKMYnn6BeB~nW)#w(7?oTl#tvhK~fKA$05$D zf+$<`6wwA~A88cP$3L;8u%LFPZp6D|5>io}BqY)yUMkRygZ&^z>*#EyF$!s^FfdHx znu;_%mYtoAk!;sOlw>AmSQQgi7rGq`Lx%Bl4u+U|u@{yaVi{6PQRL;$_Du4An}ear zHD6~iVCh}0&Sn8NWgtdn6q{-eQ7MWp`Hf=FG8K+tDK43&E{;e&e(}d_#ZYP4QK*ra z%8Cf+t2iQ?rn=6k7>|y}f(x_Gsq2ggv?7MQaM4x=eS$;r8r6!DNjUR)0Vl@^+xQU; z3qMjZ^~sh2CLp5P52}Dt?;0f>>S00^HoVYwF{Xsl}7xg z02MtQ*|A170|&7`Jq(AlRd$)#N{wH~!u;XYTFPQ#w^JJ{g^}|aUK1-)^s|0O)|ufm zFu6bTXX;FvB;m+WXHq>y%%ldUtc8tCyFN+Hrj&?MJ~yRcSkd}oe}AO~3Zb!15*#ga zH}Wta!Nhz_3@>NVK$tM+6BD*nF-WH1SZ3>zAu;*bH`&AyH&OBi6BbLg?`CnSpb6^D z98`g|lBjVjCD6+;m7%sboS$;gw=p&pOi?l~ofu#FjQiaZl=;=-PGD^)hYBn7G)Pd_ za!_Z83XPAmKK1}2HTJ|b3CH|0i#Z+buXacKb-n?(f~O!4bPx>N(>%GVpR{RrkZb#gHhbOAA z;e0+_tug=xV;8wiRNM%~RB@sCheq&*b3uh~(vdzj&j`dUt#HrTGyz@IsrHYER&-F; z#@wmzVB(JrI^3uE6zZ@5ggPGbpp9=uR=T2MD3NJYLk^^HM-^q|xoAjE6`Dg?K++V2 zE2`Lfu>#VSm|tDeNP^w2*Fnh`e4RU1yK_9))xY^Kgy(TopXTLxjKFvo}b#etktm@o)y~2V@@*uBr(EL<}lsqWXlq)4DEyWaAIF*{Ls}@wX=@pcF z(Vp66loZ)u|4gNl;KQOVDe{jxPNv-Au*&WU$5^*BwYST3e(&9E#S4bCJ(1K4Khdrl z@No;EhfVfX5f=BmQx`KM<_RI)$VEak0HNjQ4SG~D7Qa@y;FIExp#n4!1Gk_)lyIvB zn96x$xTFju){%o)y<$&wpNAPdr7%KSMK}K=dU;-n*KluL zRme+m6|ws_oPV8;Fxj~KbvXv!7|0S+)UBncm+c|ai4ugNxx6WWiEhi)nB=tK{IV3G z-b~qLOrcGVkr#}e1X0OWc5yLM+}l)*8WvP;YL_#c2BproS z!0%x&k{;f0F?vnW5mlzca{)V$!5?cOr6b=I(EUVOXCva1jn3R|k1f@RfS*LhASKG>TRkjPV@%x6eaXMc8Iucvw0gbq9{m>-J zAZ!>|r-BSw&P?6*pOFvGig;l7)~U&e&-6s=KsM5#h-;O51Y(X{Cs2@&b){%WIMdKX zvxU3b%#4>KAgF_fo5CN4^FyZG%yJY)3n71Gh6CLFur4|(1Fm|kk3?$j9!K&D1sh1ko)IF0CYG29BlpD_P zLN=aGk?ACGRLPY!OP=ldr^pAToUqC(wI=A~`bnB##62>tJ3Kj@lFlF%DsD{^R_n%J z!Sz&qgw;dw*In$_o3AJiQ zX?!;DtSyp8SElN$Q%061XH8YGw8h`rTp0pdyVVRz0l=!V74j%o)2a+$)mk$6O5Iue zlbi=wueY`f9h8#_iW1>1XC2Jau-HR6Yqd(EJhMJ&9g;aztj?@6M-HW1^Kzu89742d zSo^Ain`5d|Ibt^K&6gnJXRV^Ix0nVo%s*)43e+QU*5wmtPTC>i?Y!c#^e%jGGG{yB zR=GJtoCdH4wGO>f^sH&EYj7zZis<@sjFhovon_N>Im0cDs^qgYjglp!<|Pku3s-k$ zc{Cd|Ey!fjWQ(kEDYB4RW=sn<8DwuIUouWOd9)U5YwD!67?s8q#E46`g;-`}BZ1P4 z<%yJbG>&g0k%9q`jKRh6P;(@bt5bLr7>>c37+%|ewHRFg_%nIKH4N^i{V^VyiJCVyasfKMd3 zb;jop+x=A*%{)cjnJ`io9apFw`5h&f)S{x7qUBSKanD0%U=c`kB=eS5wFDtem-dP^ zZonE?Sj4mhbLfv{To0l8tyxy}d@40O2x*K3#We8{kwpZH++kp3QLs+px#oD1oEI|+ z?iOUL|A!6V=Ko>CxA}kA@b4B(X=!}<#E!059Pvt0L-)ccF266Chg4kUf;BWvjr)j; zS-~ojCVCjfN6@7flL_4gWR#Z6(OR}W$`SwCr*pltjXtmb-A0Y+g^%atpB;z79m#n=!|D0jH0BDjc^(kMupqhtsY;~rSvxqG&I2yE04 zrm!*~ymr2z|>Wuv!R8nB3yMM5hgE82P}q8DPau__CWlJhD^hrqU& zJIgU^1_%D|gt0MBRHfKh1kM6lwIG)1BIGmhDn<`j>=IvMg)4^s+K6 z;~^bnqbB{;j52@)9ecI;njz%$$6v$Ai-t!5o>-V!B(J4eT2^NZAL~_076Hz}#>T^_ zZkl;mRwgqt9gH+ujPx)dxfV|ost}iqra~>6g`B1Ej|_cb?97F9zxMm67#Qsq24ahK z#em8ACr-=8m8S%uWtJ#G$;(!@VmP@zMHq#>a>V@eMx$3b4$OJP*fvV^2o{hJX9lCj zpT$(3q0=3S5n~i9a;cN!(#9srrPaZ8);AX_?W;hC2jKw)?f8$(ZK$UxB#=dDFsE7P^IUmn=H)eAYAl$ginq^=S z2MJMLt-7LJvTD(F^GMikf>961BcmDJXj#^&EZtN`B4)-Zobb>?T2|&xu!uqU4Tpli z(JY@sr-&CuqizY(>g2=&g>GUyw^)M37T${{n6yvHL`$uX5284nA0AtLhL`0hQ(4D) z@YnL>I<-ZAIW=E0qucx|in-=Z97w2H-i$643&3D8d0PGy`&cp7E!*yuhGp3@)^L99 z-{0sz!1XidtMlkM9O6EvWg;T1S{M%(V?X9WhK-YN7V+19!@9T4u*IQTHd`A5+X&ox zu(vqKJGMhu&FFw#0cKh9Inw07n_?Vf%BH!IO_-Kt%7n_xZajm;@Z&|zA07rdZ7opp zs!-r0ZEbHw=n^$FJF(+N<{8$2xIzVTp;Fm;Wn6|#bad?53v2?siGV z%sBU(s903{1d`WVbW+O{Z@?5Sa!ac|F3^_EsbrGWrExCHBNcUOlx*_|wYoJfj(ODC zIyOp$IV|!9dN+#3vlaZ!nKKe3%S^6dao-PQXdi89)V!XZ#^o(S-_6kYS$X;P@A7uh&%d**o zVaCnPN*bBZ@AeLgcLnj~$|%#&?tvEaNyPsVQl%-4M-4+s!YI|f6xR)>^B3|YhEM)F zhSF>(D&W!I#CyZ>{yNTydT$)YMNBOgg(5O&P^_U-bv&dsCU3^!=)iWMwFFm-A*hH_ zwhfkO_;MU_%B5JPjVAHZAIUE!E^vvz;bLzPJ_rTFWEaP1ZZmN(5gVs#1M!CAS~0hS z86IJ-2lHSkZ?s-9LUXoUPQ!{0An;V_NMm$OIW6}MXYg0CQ?{hnEwX@}twjoC1hJpQ z6znXK5hBaR;t7>S)VbTok$#^qZKoJ6@wIG%m^iSrQAQs2 zs!H*YR%as{qx5ZJW2Cl^X`R}lp&Bs7X)vQUXTVoHS?p3m%a0Gj35$cle5iP#Yzal{ z?Wq{DE^c4^PQ{e2p|?o5xm@$s6B~^_4vY#8qYowv@fCXq6AmrPXhD$H!Hnvii8|R^ zNwcs|NhucSqpcI;(r#b#3d!?ik`!@<(rCUnQFbP5`E0zH0!5kSR%ehm)O1W`sM%L& zodkt8a|R#A{&cEew^7W>V;Cww9#P7uPno$`w!|57M4VG|xB@K>?Q7w~<~189`+|_= zWaE)j1!*3+ZJtIJGqQ1qgh=#YZAObmg4g%=FpM@?oy(%y!l-6Z^QwU%hVyYCGhnne z8j=`#YCsP7tLxV$k{St7eY#~usb@KI9Sg3nNVqvhLeLa)YT-Yj>k2BIwPMj z^c}NU=q-%$TF1lv6SGik^P(xD!)i4p=Qvjtv9u>KhY-fvu0$-!nz1vQs0-NTsq;mJ zuA9xy!89Q#r!+C*j-yUhILx|GM%7#}Z(X&x`TLS^KYCk7Y^l!ewV zJw3pS$P5;qX80`V1qWo=HrnLV)YKgEwMZ*a2>Fs0ucfK&CMAV>d-GIeJGC^KeU?zj z+?toBvx~nf-7%*4llfK@Yt>vbyZ17s%;^gX*`A?V?P|F~$p&Sb)UJIgq)og+4KI2u znMtM}$X#l7e`U_tNGLncg4i3PuX)}=rV#L(bw|ce+Ld^PL%K%n%1eT2aRg0a$zf2g z@S2yaU8YJ1@F1*R`ccYdjd+kkv_?Eg<7wKSad#s{Ayx$Y9st8t;$mkeAtkNss$k(s z$ISDY<}6(nruqErVzq@|@${7;;iu>A3L?^N$I)V{WLbINsj#rVyioEWxhoXRuOBowU^<2Fe-;?9KYx9QtW^H)kijDORV`O6lg z#9ygCS$!=HL~(L%y-aQD5zX_Zg)~KxB*pP*)7)GWcI6|Xrzd{bDvbc{|6$ze)@k$1 zD-0=4tSe~%tg1x@xndr~!04b;jzKa@<*&jjO_A`DD&&UqFdsd}yGG|H;$Fbix@}Ho zdA4te=P>31yPa?TR{KkFUjN%T-?4b8zBK1k=J?)bD_$?+Y~Pm5q14E?9>1Kw|#-w@Bdxw<=XNRy?Uwdz#7IrWp}!J$xo@fGydQ8 zkz}$t)ugU}B5zN-G!yFR##>aEKmpq&YaBYSGT) zX&j(p(Kg0)d5N#R#6+ZX*zjv(|9BdV7|iO~XrpE?%;*9tViNw+xOHOTV%b#S*qi=Q zFxm|M4Dl|-c@R&dF|(l?ZCIR$hrz}8w&CPJ1fJaVW2^D2kkEGhauK0r<4urJP;S0U zW4#F0h|Dy{WXHs~A!MX%onW*}FHph+8+XM_#AUv-6^qt|6T*JWqXEW zvU}^c@yNm?ud8TG_=~hU8ZEje!Ull&sg3*&rcvqph{o+TBUv;& zV%{gEzf|JZ;CwR6hP#o7cH7cbnK%9EWLp zMmBlVi;+$KylEs6Vt(GdiG(=pvhqXT3`3tvj`mR1OIXe(xrLl%G{qoq)<`o*k>&{p zDboCwNFnFm`^ibrKXDNcgVX|_SDQjk9EK?*G`Lg|TxV$u2*x34+WsWqBKcar(w8N$D1Eu}YlcZZ zoT15sjv*xWkKA=9%L5b%Cd(AWfwywd6~g7dj*nvm7dbatIp|7ao(Ut5wqRAtQnF}J zhTP}Q)>%FYWXwQ02W6M!!sMAH%Vp$*UQ~ICMtMH1-dcgok!Dq}UOW${foAc_Q=tgE z7wiM_VKQ)+q*z~?;?B|(cbBI4erbvy3i@i60y~tnw$UqNQ&* zmrMv7&L=w9oBC{dV2kR8^PwR<0Da(E3J#NFI225;=!qzpbo~%>@kKU;Vy3P1Gh--k zIwvd!EPDY_U>+U^%H_M)Qh0O7?A~G?P&mnt^+a)3PXIV5zFpCix5kk_Z~61X4d=X` z(u|;AUDaV~bk>ioNvgD!PD_NeU zE~4R(gyM&M3UL}GL-$E8U8clxzoDYTMT{b4QvK3`ftBXZhll72LZaJcGopGdixRjX zGT9&ds2<2m)j!TdQ|Dz$W(|2Q3rr|(84~Bgu{H9{Wix)JTPTr6)G3$JOi>52NH~)T zv-f0%$FygeCX!cR-AKdZeSaA2M07WG(oWZN&@x5fsZ5nj^_|qwesyP1I@{Y6r_T+j z6re&8@jo@-v;uzyHRer&VWzeS0rmQDc$75Osu>9{tO%5`o)DP1k`+Hex{yW6j1i_+ zE5}vVxKV=F#6lE-A`dmb2jzOe;9LRlSs1;_HhxN%< zD`%r59Zj3*vvP)3SBX^#iVzs9Oy^@@aR;nkW7l&~GaaVr+=1$jRzx7OQ{>yN+Tu&{ z%&a>l+(k1jT+-btvtAWCs;K)Oj6&!oggwS!*Dwu=C*6A^-5>^1o#0C=!FYP;OO;5K zQqzdyX~m#GeO^eF8R!NalI83<6;E8^w$_2I(ySRMSyi+?DFw13>e9JtEg-~jGF{BM zAn)Qcliy{pO~&H$VDBiLueLxGMoEw2S|`keL(tw#?Crrc!gf58mbspTu1=I9RTvMi zSyGTr>Fe1<$ODC5)0doVHWCVTg3G4<`pxeKa#G|)UcWJ=G6{u@i;xS6dpU!DzFA5t1AyXsC2E4ki$i#4t>Y=LPB-`MooPCjx$74Tm0>X@|LaU5EFoq~YNpu~R6|*IqB#5$@8KA;Ud)P|Vd5UcI1#P#kujA~ zX8HxH*}mBe=;J(GLngGQtC&)iU3x?RNSZYB9oz7+UT_@Esj6p&0wyK+Hj^axSkik=>a1=;&g>=``l`Cqlj-i>AxL{^)i_g8 zeSdE!nxUZ&p3-tirdJ7U#ASYrQZLJN3Bt<^5 zd$s9D^gE^B|Ilwtzccz}I1BoHM!(PL_XYhzVcwF#qEOb)1Z8sGRXddPK6`^H>DE*K znU6gFq>1UzaD385TgRxqINl3lmi$U{55KeL(=U4-((j0V1Nz;k-vjzRq~CA@NuT25 zQvw{(@0fm%>32dX5k684>`@KuQ4Q=-4eU`3>`@KuQ4Q=-4eU`3>`@KuozU-}$c!>J zq^u4ptHU9INBBtj9a4UWl;0uccS!jihV)BW9a2_@l+__+bvU8l2v_-Gbi69X1{_Hz ztMe!t??o?G+rj*K6dx%w-B*Nu5Jd;$VD(@|LeRbsYXKS{vBi{CCXLy6F&r=Oh^jY7 znd#sJuL?>dZH2*jB#mw}oV<-FZT}eeJ|bBCPgwMsVzl*gXm`q?-7Saqy{RfPXa&5I z8oQD~+lC*k0ZYodHRX;q<*qg5dz40vDO(FPrzl;(&{xceq7xQl@>^a$G@|1IXM)R1 z3oDsqm+U&jfM20$=#D826tW6Xcpk51@b1Bnyi3fKSPwwW4*hZXClAO)1`^XC(XpYb zKQBZvwObm8XFXeuh}akhY!}6x9k-*{&_6Pwv=gU@G z8r{^U7BHDP%OkI&OkNV%H0z-)Ng2(|Q@sd@?OP#43Om^zm?AO_(-aD?^lVR3XRvJJ zr?Q`mfR`F($C8%KZ0Aw4_|5O80ij~t?6YF5IvG^g%7L-jbC1*TbB#ggM0m+Zh) z1Pwc!3=5G46R3aOB1t2K{OZuv68r9Trl&Au%gOnGp;6w~i~W{5%yAF1R@@WF}gI zgk37SvdmW)$*nchdYemvr^iYXXm82orP<}mLXX=^xxFNVjqcP-peMIjW>rEn8SYt? z!!%wNyCkWo@%zgX8f#wOdAb}klOQfBnAoPwD|xM(LB=x{<*|SLRuTS^8)}(^_d9yY zo|2bZSfk9E!-v&r&Ri<@rwmc9FheB0 zV4wQ$v%pY8YsCXHm%j9XEW?E_McXgKY7@8n$-G}Yvhx__>ZnBR{by_#+(mP5ma4eX z``mYAi8&-iQat_?WbU|)5P93*=F5=tb}h_v!ed6Zh2;p!)QU#1zAV9=WeM&sOYr@& z1V1cG@Z+)sKP^k}bMfM!6D;|G^<{g;dcIa^AXr~MQ_FUy^<_KL`m&vAec8^mzHDb& zU$!%?FWZ^cm+ef;Hp87|JJX$Id&ZshC5v!pN&LG@;(xy+{trvy|F|UnPfOzeT)ePr z_>IZpSX&CKFG0h&JJqJzj0=@Xr_F zfumc^E-3e&OYaQgX$;`%}G0_)d zkzWSKQ2N$lJP+B2MK}6qE>@zf=5rJM#DLX~=38`F$>IROu)1R(TKDnbL8cftvdF#d z%?#RA1Da{1s7XqejO6G=Y|a2BwSu`n^5;Hl;!kX7-G~m>8Y)^zPYz)jdcJoUJx_YI zA*)8~otmVS^t&vM|K~gyu2%6^95@q&H#De%EowL)OXSYb!5P+whFi>sUDh^|hude~ z*k6^zPuXd7Ojh(&c~p|OTu#1I6gjxTgyn;3q(-|G);tSbHjBimJ#&URq*$1+)L=W| zX@+?WT6aCFMXiYUEAEx^OCj-SM9$JtbW|Paw7)MwYx?$2OVG28KGE^+7Ex}7f8r*+ z{=LGA!Vew$u`#pX7ZJlCMRR$q=k(_yvc|C=j(I^}f^^B6B~nu{e=Ve>0~f)l8%LwX zaIR;0S!(^;hQX&(ZwHb7y)qQ~H`a!W6*Oz-{5Z1U*zGm z{COO{C_oaj>ep7J+M$ojco2KRyis#g{w^9S7idJG4Pu={q$3d9aX9jPjQtQBMGuLs z3xKAEW|-UKXwM(-gtK{c5c|i9@@9~j1&x{sdo}Ew>;a;}(I5_T)NT;ZrhErNoHxzO z0SlYM&(7K_O^S9HAcTEmjA%i(1@m00)Nbm9IWJM@xbzXox;~>zH`}rpzNa!T>+J13yg|vBFIuxs;l3n!gEc zplyyKa@Q}R-4XB_?T;SXA`l>Ajd*}cB_1Fh|13&XKsl|hQLH8D&Y6rSUj@{7ZY0#0 zWmj_jW87tdcFg!}-6)NtdO(m5C$_Xw*A()+`&fL??NsC;#8Eq5@+jw2#7LJxbo=5s^mh9HTN}EFb5Gb@EfK!K@_Wkm#ONo3!&Yd9}Z)K zc>~6TGLoUCN9Ec_`CAO(0N+aZrXi+Asa``!OkaQSo0fPz)H;Qz#Gtm+2*r)qgGd~; ztjRf0?yE0m>?I?+cQ=1_i_`lYy3s&!!iLYItmFQq99SZy7mEA!coO1TXe;RgWWZ%R z%my?+pv zvQhgs^ce%06$0Vd+LPG6b;$@rs`5&S%$kl#(L5VnJP)LDK{ zxg}Rex&W8{D2P~gZB9H;G$t(62XfW9Lg~#oNs@FqfV#t zO^w*19G`7%oi}Idut#v_0jNViKJJvvSR7H5r-DTk{UwpuVg+`AG*AI8uDiKYn0XMs zy}=f)nnbA=`0kuEGoA9zB6Pn-yzwv8WQdj3urH)FZG z+r{+iIXnLM`N`ko^CA32JnF0C%YM%Z{??m9>TCZoye{eeGc1{mv)DNONf%amJ!!^4 zfrp#jb2tMSw|ByD5q*Sqi_Y)FGxiU!__#hjOKD571*iPJL)^`i9OM%Vx&e&716)VE zk1!SksQL(vdLu>4ZbY5YnXHV8{9K6vB)5NBaWcP~O(cD*ty@EiI>3}l)#jcTRb$+t zS%xBnw??MaX8sH68g*grd#f2&weyMkRgtjJkX|RIBw;{NTPWh~ILsYO_S{zrSVC>1 zF@azYz5yE20|OV^YSjv|%pAfD{rdUaX|c>@-8qaKFTZ1L!X68pm6 zI~$FUX(JwSY7E*KQW0u~TsRdk)b)UvVsMgST~zOk=143cWAN^L-gLeSA|^3G@&UcH zW;A41sXT&U7y3bI$UriqVN*^NkcZ%+Q8n@hiJ5ryy9G}@koX)#5)%m)k~f+>ecdrB zzI!ctmhyMO${!U7O$#B$0})+_Ol0<27pF-n$_>yQnY3mojANlGo5X{{vc03p?D=o~ z`fPL#xd@@PQhKFsfcB%AQxvtpG@C&b*jC#e9^x(X-d30Ko9gUqPs>uOopthw-{pO^ z{u|UqPVh7v$b4JM@JJpYCi&EFqT0g3YTk?yBU#aDlBy6q;+dW_Y_-7>jzqz2y(LS( zbTnqV^)RAR%x2^WIa&7Z{vWovCLLIbu+V^62CKKxGVb7giinIl_kBllH~~EqCQ=SV zQuCh~y|NVJK^Q}H5zR=nq?I)<%9xnS89prD*~=w&?X~G8ve3i%`Y$3+%CV!g@+h;| zdf9t~HzOL=cY|fG=0TBq*Tc!_9PfMhGPXM?vcIbKG3qwxE&K#x`i;U%Y`~+DsL$mo z!gMwRnnJ!fRXn^<0rdKNGgeRdJ(d0H@La=xZt~+SRJZn|Vi~?|1FQ@nO<)m)tzl0qDmG@>>8*R+gOT+v8eSgRJ{-wfbid$0yjFy_qHiN zex}B;uR%5s8D*vdyFNk)I4*-`zIZ=TBycyO|JQIAA-ae~Xb}U?JQC&|nPDh2MPG1? zChr(k#xC-o4VZBOzPkv(aXmhCD6&8R$t_V$$2#8H*F_8__5`yjHq@ zsc8R<4zu*aV{Dhp&?bw%SqgQn2=YQ6_>t7_J-++@fs1BvBouh##Rv9~8z1NG2|72>Qv_ zf=`1$67ZkamwTmF+n47vnA|QN{o$fvokV`;{zC+AHyJ@6t<5zzcM~fA&jHawa00L8a%ByFemCiocoXQKn2_Rh+bq17}?arg7@Cw zI}q_B$XDGslOgtO#Yfi_DF$OSBwQ5Tdo)SvL(X(jVaxoB-1Bj^09J_6TAR|Q; zK50go63Bp2R&mAZ$ZYPF(TUP6H2o8Mn*efm10HyZz3BE(OF;+`OaR2mjS~R*-|`W@ zS;0j~D5LrTUT)daLItndsv`IVt&qC>B+f4r-#k*T@}N+MGSh5!1dY|7StK^13hZ}D z-;DYa-5DIf0y61!ZgYkC6<&YiRskFUlZoVESlHlU(>c0he7#4YqqL?9HW7Ib zXFw?F6MtIi_H|#0vgLmH=j2CF`iuzENaa9-LU*#zq#3(L`(xJ$=u6-^ETD9B3nTzF zsqz6&I0=1IcO}X=PkI=jZcA5SsuI95t&TQqrpRdjSY|UY06b)p9m=`=YIK(>r?3x* z!?>6#1X>LG!eLR`HZ4w88P%E&%JMelClEWe7#`Q0QxQ%ALKtCB$7>`Y&_*K5 zw;M3lvbKtgqW=O2A&Q`ASbQiv)aJ#-(T;&tKO!Lv43YZZVW#_zSkqCGbn2lNArc%Z* zZ_4a6wi#T*|H2W${Cpp$5vYo4JKG$tbfjw?9#^O=sO-v`$y!bRd@hcJF3X6QweYsX zxKy9gBumE+RoWN@6)~jkZO@QVXD9YdhP+vKxc~cnu#fi~m~3azq88p%;mHMAUhnm; zUlv-tTyC=+%%GUnI{@@Tlb)#f;Pm1tX`ljhupW2f0;AFG`Vd`2Y?v=cNgD-SG7r*m z(OD5=G~`2HkKFB-8q1Th2*!C_F`NX-GuqVFrvw2vTagmW?~ooI?V;|6l|*-dU1Jl{ z=8J=KuqxSq6fj0<643fRb+W);t1ig6Ah!Tcw-k(v1Il*{xX17f6K8V5I&@pGCr_7p zmFU-S!JiOP4_i3QRVhv|o_8`XKeWT>+GTbsz2^3*O?^mAEo|d*re}_ds;3mqzl`#5 zCJOH67RG7mD3L=BoO`GI#}+vifP&U^VU?y&wH&BLLS+OL{)}MFhnAlIzym~KjFXi??{AK2NXj(2Ynz3-RT6};IsHUUP0`_R2PZ?2oc zS|R>)Km^5|NW^4;bp%jv(5hx2TKcL=1eK!2>fs)Q^`?vSng+J z?``8>dNLBjU{6`qM@gk6ixn(m;%8~n>;&jWT=GIrFtbe3@-d*%bNpaSRZk^Az6i~%X}2)oJhGY z)@RK!hoNdsj+s&+W+QA@Md1AN2&X3}fiG^FZgOi7>;?(Cx1xT-Wv`p;Sf9;0Epww%Y zV}lY#5mv1iT zRNfjfM+#-g8Ujzr#OkcQ{ZH?Th6v-gS_(hD-}*zZKgM&;E|czK*2s=CUsIFhk(MMo z6a**SO=dJd^;Eb4V68Db&ir(h+2)ZRBD;f`Gi7&*Ujo+8-AW22c>l=G(W|b~@Ae;U z%?`K6-asrzl(epG6$tpq2@aB!KF^edZfqN(jjvoavQBLqwpy_A>31@T*^ivRau>Lg zjQQG#()9S=7iBCiZc95u$%tjtdyFgci$@cdObyW)tXcntX}TCdGb^%NHF~2h?(><+ zkt?foCdg|arTb^d607$T44nO&L-N+0ol{Ca|4{>qqo-DzMzC%7nnJ} z;eh`m2Hlk%fJ}wjI{}>@G_WXvswid^Dit_yLQ)f#Dm4oYmt4k;Lo zAj*OnfI2iYpx=OPJ(zhGLI@m4?X&KYE#BO4LRreoiJik|Ht`&z6>#dz0!CB(|~Gl!S4-ePGw7 zQOr9}S_jpzxvDH&j>bnj>uBm`CX;Z|y&Ci#;KFU%NPh)BqwrCjj1+Uiyp~g4HLjW| zJErJ@4>?_f;FPlEY_+NV?hY;NTqW5OL5<0uGr9j`X zJPDc~iuZqgC2X!_$A;g@+tql9Q7=jl4Zf1Js&X5$;v<>8Ps29XW63H-la>g_&*6=q z!Wuk;)VT|)aO73~14jY=LjO6DDw;Gwc(2S`0EHtD5=#~+n$%A?z6)=B8^+)!gwFLp z;gMIzC?2?xehas#h=~U~j9qAKLyn>*4wx4e?x4Mpbhb7pQdDeY9PxzBlRHiK0vjqV zX@q-Cv2TLM!g5~qWQ*koIFF5O1D+8@&c_CES~VIDp_nbx>1m!hRv=z6Nax z#?XOhbqqQ8~VAlu*)f{Ie zSU$QLfgTFAd4$EM!pfwJytMq>3*wHQ2}IV}MUbD0#LhN5m#L6Tg z#=VtOaNzdWTrXT$*g&hPqL)d={Y}GjOOENljD)3rR$r#@K;AeUT+(!g7PF7_lxgAUKLQI>dg7m)66L6MgdY`jf$1QZgkvXU-1ejYin~NW5Df-3FmKH z>Jdnw8F||AaU8+2R2h1gSt(@>GLRMbF*HfK8t4cyep5ZwnV!8p&@7m-A$!%75>W zAwCj~2yr_GL+6#kfBJ8Z3q!;Zor?0ec$~H)Pmil@Fiz$uwM<{c;xUXx9&(;O`!gNh zfg26<^y;;iVYKS65nm<_NB-n7+r$BTC<0WAedy5zLmH=3%ylP2SvL6#4)t&wW`3$x z`KAl1Q@<6s6o*Y1fhPDSKh}MOV4zkAUWSxPyEwZg;*3cq?bR&Ep4?TTixm8lfZq1B z-u@cYsF)Mb0_yuf39N&cx|qM9Q;4UK`H&%r`|aobT*_4$M+QqTKN- zy)$EA#P`rh)f@sLFSbu+dPrUXO&krvyrKii9f!5g`fUWv()6#8*ghCdEUJuwyS$sa!tqLe{`N|HmIBC=iR?Zj-JueUh~-SJAHTk5ylP*5pqY!^bUs zw%om)1Gqs+dokE`cpTf!S6e+MK^w0c7mS1Rzx?p{#M@K zvcaY-#%kSN-zE2ICD^Gm9_4#Zbucat81o;ClOhaFT6w_IPp|;KVX`zD^?Hc zR_!ZSk7-Y;{GG}U=|0b9VBc)k+t!`8VfSw3E9*{cphwN^XWFpsoAy}0>dx*3*X^TP z*ewrV(B7ZXYUgw4lPtIOEeFi0_iI>J^fG3%D;Lh}>m1B@z`m@(J zF8+#zJzI7(dJ3KLSJph+)tx%IVYKjevlfq9%#ukvHcP=+*@m%HlutRGOCu^kaUW%K zhkq*SY-WOI^57`B)HZGb{_)WU z05qGuB%JVZM(z2>@Ic?aTzT6FoQ)NpZ>>IfskG{p?{Llf3{!(|X3p$$@tBs;j-lBNLZ#@{A5&g{a zxX=oxVarq*n+;UfJ8e|F=HYx7DFKVNpA@>%@ZY3FL7Y?w4nvBMw&U##~I%)_8nW6+>?IRIZi z^e)V|Oo01t;5eSK`s212yicW);l0M;?~k5|r8`^x-qAQ)e#@Tk$Xi!%BGQvh)y>q1 zHG-a2r}?eN^XwR;^<7N`=l& zAP!8pFBAqKS{ob2^nqtB0N^=&a`Q$RWE!Yqh8_TSwB8qv$<_ty`mA6Wbd-+R9Y!~( z4fI9pmJMJ1MHHW3ejq8isfPC}uisDX?vLSUEgPx~Oo_qMF~E|>w-P(Tu-{D?{|-+; zYLy_4;3ry>_^kh03M-<(qMOZ%^%zo1bwX-{K+l6Z&cE(%m9AqiYr%HZs1Z_6e_ntp zB39A7lJ`P+zdbC6bF-6*S zLh@X>upAp9R_)YlB*Y30RFb_L(0}uQ(22~j$ifpcdBKpx)bJvr{|e3dzT~i`Rdyen z=;+bBWUMhZF6XFM=9)ZfJyS|~!N;qs|1oooZR(2%n;ai^6cG^-B2huuQfZ#&<~k?( zgpHQj2O3WTuhw1V5)Z=Fs0F6U|Y#-e_a} zo1x}Yd7*L-1-7U$B2d(7&_?bV^~z=TX1cWd$|pcOBG{-rHHUOM1i`7h3{A+oYnXgN zT;X7aLsIeYNI5M}0}_*&H=g=f6^HlxxHGvqsFtTsrF-Les$_@b5{p=apLEWQcy*V1 zuBHj*>sCBKVxBFC8fyK#+lzJ2yHQw*P_EzTB`+Phc z@j%`n`IzPMVdPFVf*rPQOCrRyngR$Xe8%i4JkcqU_w=3H0>&}ae<;K8nhb6{LJ%CW z*-z3}$^C{@U|eaSM;3e7cG)Z~%Qv>kyvI*@!%p9$YtHj5-6FAt{L8kzx&yBBVm9i* zu?8Y(_X4oimoYbdKTc>DKRlQClv&Y`TnpZ0ECFc@JN zo|nUB4qCTxpJS&bBo*XS>M20j>8Nx@#F6aklU7Fb=%eKFX%QqT5|Xs*8v7-&YW=|_ zD94oXE3f=pAd5BE6^ynOhdo^LdEN@hC^RJP&?546M`gkQ(msm+O&L%}V7qTDVfAlwnhx}sC+{vHX&`$T;ekN9*#*irgyObQwx)gI z+@31WCM}G#^(Z%{5#@(4cc>fcwpN^(@9~YC?a_Ho&*%;G5~Gc(Yed6ibF{KI^Cr%g zq03uF`Fvd4UBe4+O6ZY{##?dsn6zeZ4=7=Mk&O1yOqfP2jkRSA_rL~u-H{t_2uq4N zuVa$0krv~KFE0`~Lw{oy5+@XjppeLI(5+anxLL}2P>#l`K<%^3sphj{;pO3M*NBaE zuE^YbQl+%4Y0J~RTcnvU_ZP3PXN^d_HCE~NkEHiIDOBy{p(BUJ|4VYTe z+v)NPJGKhWn?7g;SKV=+7Sh%>W{4%rPqs;sw7j%8Wo-icC*@N2sxV1vN0IwAgTtKc zI~%UFL#Twcs0>Al{4a5Hou44YpY3CcSx%R8|%%4)K*J^b4<`CB;l=Ln5gKOhOwBw4wP@s zUE<2>xCQruw{Us_R z!KlibvWn9Bh`X)92kFY5TQt7@4gAW77UaPibns8GXqi33b&@90N4)ukIVWY`JBA_W zFt~&D3Ri+>fy!Yb-n59r&x6&nuIq=U0eY0{b3@+?(IC>Dz)nnqRt(;-qr^}SgcT0% zPr^t>fi?>zcY6@Sd`-v9tf+;9BH!$M7q5^rT06GQ<~dN$ZAdrs6^0;CQ(?3L;4AY; zSKX!msSi!t%j9WwShaR)%aL8@X@%-gd}XFaGCRs(^C_)y3f)&23R)M`1K@ZL9$fl& z7*R%SRuP|eqtS03S&m&HdIJ%kU9z(J!t2J`5=cOgaS1Umt}HT0H<>c$sX@8P%vPCF zC>bVQpzAr{4Oo%z^iN+ED+paPIqsj)Y(OO6kzOl(4niC?iBQ{XkmE=omHlkqc&R|h zmZ6Lb4#27L;@`6SbI!**oRR$T$A)^m>e2DXe^H>S<+$@;@ZV!m78;-FPl$o`H;ga9 z*4L>_LJ8MAr zxSvrSsXIJ>V2gZOJ`Nr)!Fo<(;Ol~PzcJv+F5%70+=jd3LG5>tKJ0Ib@Uvv<1q3NOjXrdJPDFCX zno%GZ&w}f73gM4v`Qf6xdr7Yp(!&QNM=S=lBTbbu?ivR32?!4F_qq0R}Y(l2vpNaS_H0{?@B4=wGMG8MCA%Htc|8?hW|1!EZzIUGcSS>d0 zceP2ylSG85_p^Cr@owJzBDx4{;5PXX84PHqQXcFxhN0|ghuEucl#pas**ENICXx?U zrl=-OB^DpCEtysqa1GK3*-kjq&0PlO{!?G*)8^}L3C4nOEJ(DKyN}oh#Tzn2Vx?co@9?CHhgw)<%MoskqyN5B=fL#`u0w128c6|R5>&5bpeSXh; z8$c0WmnyJ*INb}3!q%w510J{|{+hBWbvQCeNomLAd^1Q{$u)WxZdco1Kz4k5c(Mgj zfX$Z=5qyctQP6I!H}{?j0~;t}vL0+>K&8^ymf;>L*U8YJ(WNqBowV25YZl}$Pbe;6 zjZ&1ySVO{>eo`5gqwUYH!up9u&}Yqb7hlpGwIPPAMdUTn(KNyxWyX6v(oX5^rXq5+ zJ6HAS4m1f10Hd8hfn4Ltr8Dx&p!#$#ZR|Cz?-ublCB;QIDIh3 z1*jD8QvluZ>MXE?iOibbtl8*HUhqq3$q^eCims$SoZVgXaONO@UEw&_iBIDZaL?pd z%GMGo!2n$|wp@zQ*A43>FJ*&|Bk|1UC&hgQ8@WJ8Nkwu<@1Z`g_yXF7T-Ba%jc}P1Uo#$pbbuV6D=%vJ58Ah{i}%$x52nxLoDt;VVr~&iS|q$Wj5IT;7kLTpJA!W zCBZ-7q_FVX_iiC9kT*_+E$`t7x9N;$tM8^L(m{wcBAUfL1Oc)*a=G1$(kR<9wqedo zFM#M~ImcwOD+lR@Mqc*WcYhP;&)g5LDnoptQ$p&h zY#N`dxXnrnzHBs27bpr$CWB+_gIsphupl$Hg3m=x=xhK(_I<2bLmOhAWr^RW9v#1= zUdy|8u_sLoXpmdSoZGr7TYI0T?33)RqJkV?M}1Ljzl0&~iXU@dNzN?kl7C!Lk+t-# z3~S0$j(_H%G?F;_djTNt6Mj{AsUh+QgDFYSwx%v!!}s+zQ*7zNgjV>XqbnM)f-=|? z6RwGZ^V^>V_z}-6;#0<3c<<2~`@`AY ziy_n{iPho#b?a~^4evYNyX&l<6mRm((tOc&`-m1Iv06N~>%k37)>mJ*NDr-TYnAoz z{k1#(S+D(Sq}^+tp?oNiYxIWQMpk%TRBRn?iUuV4#1EfpG^Rkq&B^mi+fBb!l=BQs zxS5OUoqIcC`G$W*n4;s{IC+O)pgIde^S+Bcf8n>A~!KL#vmf;H$ zg@o0k8Wi}X{fMiv-)k?q3y;F+yf7R-0@0!fqRDY+gea4~B>XLGX_>L+I6-Q$^M_vf z^>E>^Q(c}gf5E+GEpmu2y%`8L#IKDIyMU#uxC>}-y7Rh11kV!VbZ;P|fDUsXgP+8V zN8t9jlcBnW^MYRB1Ic0>>jG(pnUB2lIUd6$NblT7lO6wn6WN1Ka*YGbpX9%c3SE}# zEeZr`)QDr=Os{~CW3FH;AH!D@SDtR)>-?I`WTAiz;chEYbk4{#qg#m0$=v5yka=s( zL<|VIAvu{_7c^U1Q}e5@z;1dJf($LWE(^>l7>NrL?L(yYF!b$VMYE+wT@X>QItuQ??rV zlxaddOTnlAC%7x1*o*~gKeM`WK$>{_&6MrW7lFYYsrI&|QXFX-q$f8L1?$30$`m^f zn4zv=#9I6+zfVr1?hPvz0Oz>c0_-U>Cac%{7#4yL8%?VUunA2UltS;)s>)*1P$SQ9yXD^jlPxVKqgV+zj)au9?$v?So;b3- zq^U39a!w|IDRKnmyC3chOeizQPsm0fQ8rJ;*VZKnl=m}R7}*Wv9)u05L&#-?Z(v8! zkpdYvP8s1YlEcoV&+?K`;z`gu|oM5Iwc$&m{3I zybJlLV}A&vbPF*xwy(&HEH-sZE=ofZ%bn>X2Zy{xnWr~TCJuWmU(FF_&v=X~A+{gN z&>PyNglJ!fCv9z#hPX~>p65@*&n)4bPgtF?S5_+C@QuP`l0zZOv#u>ZI3R3+l**26 zPCpPibN9ua>c}w8K4SQ(LuAJnWO1% zVi{%{KXxhMC+>M&>X$0Ih3JofV5d8^bQJ>_)Zzow0-@6s$cLDfHbGf`VTU1R#%uMUo1~iOyry+?<1F+i>k+o4en2xUX;lO9=ql*1vz&9 z1*t)0tjOC_GDgb-D+NKL@BnVgl6IC3!W2ckweS~n0WC&@<{EXP9EoFz%|*9?6NlO2 zO_5#`$RqH1=$G8wjNjR2?tb15uv8qmp3h`Bwua?IO*?Ye;|5aNL6M|L%<|*kmsV0I zOpu?6)COpKtls8ToGLb$1^BD5QP9=gs7rHLRtqO$R0e-9H6yvyl%LW-Tp<#pL}M_o z7>GwCw4@+o>PDvbwyugjjvk0VRvi^++KRs&Z71&4rnc=Spi5S%DQ9 zVLx8LukHU(X5PML@V3?{1#gPX8Ege{rMew3n+-Bc^CbsNb=1O`tLLG?t!X3^d1M!t zEnf=Y&s@+Y8(~*gV_J2rM@=Hm%^N^j+4E~nMg6HsYk*H+qd2K@)9 zbahVDSIghKq?Bvbu$4fqiIMsJ&b&NX+B|Y&MBYzhKUA!CAqu&)do@g$v7+T*xKN~fFltPom(%wh zOLukzWI_{}+pwKt2!Jz*xO*nHS&PscG9PBqX|@R@tC%Vc?nKN$z?^EHmPJEkR#eyT z4H&8|amu8^0b#unqyh|P@LE)u1Mh2mU3672oXj?ZHzw)xJxoiZP5WHp?w2&R_hP;{ ziS#o+jI$-SQxYLp#Jo{2$#4-9rp)#CsSn6swVeKQ+`fSSBgGFB?`7sg6oG1rQ}HS{8LJECzpBCK zhRosX@SSZKx5$f^ibkEK$Qx~DLUy~f1vsqFv>se}JS{qR_zJ99`yCA>1Y>fK4~;p9 zJp+x=S&P^JAzB!U_PjkLV$+w4iA(?GtQsq&rt+0EE2aP;^>z(^r$}RsDaQAM5gCp0 zhIbwMM)()hNtcpIsXX_ipjvG?b%DDo;6XAs1Jl;oZQ%8<7G1!}86{l6d^O$9+R zfFtC7zlm+5XJTtBvSRF_ZbMm89twR|fWgb$@uBunc3C3Zw1wR;hx#O+bL|3NSJ$_@ zky4@YTikV@*<8}?po4C`G*^v<*U0WnFmjSrjWjjA{f$(#l4wO1U>wc%H}w(@4$c)% zuo~(xp<`?Rb7&!;eQb32ivxlCVxQT)_p}Zwkjd3v9=m&b&|9dm>0uv`%?%}X{o{oJzgWDRBGDq1-TN?pv$G@6L&4{IJ zM~e?%1~BXSaFt~N>vH9M;iz^+Eqt+81uc@v*cXc4&vRzfk)qc13^nr&W_1blH@U4% zs%r^xG?)on#&t|Wy@&IxiD&$WT-Huy>`9XroC_e7wuPI6UFDg5B-t9d*e+?AKxG3G zr!T~3|7o3Nld0QoXU002p6Pu6(yWsh?2J{Rh;Q6!pgp;p+a=WXSz-#jpx~OYr%gg0 zqN{~lT%=Mi;}clp8%<(~Qf4hr*|vZ=06q<9+znM)X+3z4AWGqQ>djt*e5< z6z}`U`XWtLPCk@#EA<$_}sJKBD(fje<QZGBqE30z4u!?z01pqT5)HbP%Il##FzrbX zdfl(>I+;Wi=CH!7BHf2M(Q^v6ZB~XL^2RGHWJC=0XlPjIGLJ_kCtx<^hpZpLYI)BS z#WaGzYdEH>mMh(w^zV+n8zd%`^3mjrP%#6-Kd)JI-HBoESABNvPSO9S`)1QV0@;Vc zv0-Qf8R|B1IVPPtYJXx;B}9D+5ZHHq2&CFF?Ahc)W!Q1G%TW($2Tr}FUTOT28QUyg zwq}e%R3#0SWqOnGrWL0dnAwke$cJqpLo{3CaM7OGMO~2{{br~NUqFTY<$vPUwD#np zXZ#9Tz1Ei%Uf2iPpF)Sg>#YsE%@^;!)7oyh`Ryh$oYbJhaRgyxcpozpPU75!GU&p< zGQ0AK&6hFRn43er9GZzvnxypyD(V1^IX4ghFe!qznSIv0hYp?zwuc51hHR&)uL;a zGp6A-nck_u*9JgF6icvYI4Co!<>NQ_QTNc%VoA-T8G>?T{m0L5WHNG`k(d6)5^- zT9_L-yVS_3mahySX`{uTokl0MHa5vWh)l%~cKwZkU(Ui;2c(J!vW94U1-55x z?Zc|&=HHMp)xlqv+$Uqh__JD^&YuW=Q(v&C5btqePb$tXz=PMJT5nReuWQB z*yuNH3Z(k~49AL48i7)E30;}8k%U{cnxopsI7EMkso*@)PMg*693{*bh>b1$^9cIB z?}^R@Oq^UJvi-{so=4KIIGTFD7)tfwI~DW{3Y{Fet=8U_KvmM9UQx5(jbv^3c1qGI z4P{e*7(Kxc^Gt^bCDBa9*p-Ql8G5454K82>uPw(eNiNaV)ZXxHMkpAL_?RZ4x<0hy zz#@%X(AxqhX#DxyH8bJ0>Bp{WGbGc5l{gb5U)1@vF*jt8*^wO`Oo@NjWZCc{kECW? z$fw*_&Acwx^-cv*!}|VYcnC(kClY{&YA?9xCxJ;Vl{6&nz*)ilvPFZXS+ZcIeODZ`N^C%>nOKsqN|kv?aEd!FZwqTX9MF$C!(? zC;G7*aqQK{1O>vwZxmHI1rrp4zY_ielwMmdR1}gl#?Cc$f_fjxa%y#jygA&V(jV4p z)}jrr|7e-s%VMePtYHp-yGDE=i|h+)TH#x3$oMyXGK&k#nsi_^&rs#A%# zN=2qGVw`$y+ki@`tqrH3ZmNvq;)W9cdT|XMi2fM#l)Q@EJX@EW1`%9m(@6*VOJ>@( z|L6w$-0fSNu}h{8uX2Ia4QLV-)faSfLdZg)1SIdj}S)m1UsrP_A@dtKTy)n(z#DW)%q zH6)v31CfRT2$ly~Dp}zeLdLdW(eUk(S@pIRA zn{812T{ajrEm2L~{qS{)3W1*mz=-vh^k^!~i2&jH+T;#fBI4)TzYnk5uNNy!7{Isj zv6+fj^eDYJ%jhYW)x4ifK*nDy1|o)3>;Po`(E)=pb>Zfc{+j^wDMh;rz(S^>IkcBn zj$a)n+0`MTHOqv#RR6PtByv&YwLf=)p031Cz-)jINLHAxHQd1SxI4=|_5yDN$^Ckam7P{=j@>*(Yxz)AH{Rl)bpGWPTS@&I zxDS=~kAsAQUO1U_;)Hl@U!rBEAL{+?0LpRb_i4m^2^j+eQd9c`O&LVjM zT}EQ<_1(mQA5f9UVaQtIZ|lthDP?Ptl-i)#zsleAnEka`9Mk_0|Bz%w}{8_C;N}d9~70i#4lb1y~`llz=zh%fE@s zD@Thxf$oLI4rAP}aRo&OqVc1MAQ$-x76F`NS#{0plgPbNer&^lA1au7zw5#Yemtw3 z2Uuw2vVvXt;l!|2ueaMhkYuk%^*9xZ*^{?5Uk;dnYiQh!n;vjWu#LfafA>M5n z#uC^gpSb*2jFlHgj!kVtuf@ua$72b)g~-a9>RDFOk@9hB(7!GiBZTq=P{21YX_{Kg zJ>*m0PudG_s3%gjJ=NB{_H?a5hd@&wC{4MnG?AfvQ%H6mPjS|${cEl&Q!N2}Bjg%H z1-X5F*W})uYUR0}41iytvWVJu|EgnQ#4v{Mf7-@Lajm8Ak^Z6XRabs{@Cn9}iu)si z<@LGzwrA4i^@J&3aMySZ6}&xaFFrf)hd3f$d(y*nJ2-XwR8qyabn8d*sToFldM{Nk zj%M!$(H5(RebK&?xp(Gf#QLVYl9ux3(}T4G@gG{8J8m{=!TeV$4>Q0Okh)mF+vUHB zLXi_L(&|duJq#tH`FYgn898{d`5vjP;ILkJ+c)B?7*I8(K(4;3ed9uLcPr7B-3MCp z1ZV@rb10fW2H$~CB08z9t%)1kv9*CV8y?+`78L$C zeUg)B@_d|mAXifyO}-qbE@}Zk!FRw~YQ?;9XkL5Ts}CX136GL+idR4@+F~+h_nB??Y`LN8h8)+@FKHo$DkZkH=PSw-t1shsTTDGsY%g zPr;>clSH4P_+Ixt?{^YY8^j@Cwx4e{>D&wp?BIUXwq{xRV@iZ>caCD|uAZth;^ z-Z;Q>%kPI}^3XR+N^jRWa|52|)IxK1sVePTZs*j(O?X|THh{Svs)mcBh5}Tfq;)pE zp~i)Nfz74c*<@0}NH5#GhXHD!@>Ed1=ha!53t0SHF-R%79+kbA+RRkU->AKqx`aHR zTVciH{SSCirYDt-I}uwO!QkiRFT0zgUp9AEq;Jov6~h_yMC9kHYjjw4HQ6zBSYI0e1*YH*ln zQ2pWDFxRH@srSjb@z@TNdsJV9%CE!*-K&Z5ycVl{yCjq5+Hbrd+|xb7M%~tLtPgla zuRUvXUhefeo#AQnciwSXs@_hZ@!9v#Yz54^+LYs&pLsYXw+Q1RjQ*Yy+e1o60jYdZ_s-^U|F~tn7<^gHw z{`7VxwK2Gw&wuB4Z)=e=Uu$Xxjloc>eMd6Cw||LXzK|H7#a z8a{(+c|hzfz76%;-;dnmhmn0=Fe~@2s25QN_9(M&Pxs%h{ORrL&tFmof2PK-to)i>*`wX`pH^>ucKh=`eDUR1Z&&Vp z|HGg6|NTGy`nUh|^H<(<6zA>A&)!soQX+E>_8;qC|LqCYlThf*3va!lx1V|=Z||&r z`SvcsU(@fcH}UrEoi|@Uef#$3yA<~JO>3Jr?{5#hi*IXRdW&ys|MBo|D?iX<-8?9? zPQMoY+TQrv@XNoB|8@GW6NGl?*QG?dpWlD@0nhvQ*B|NgTX{aH>a(U#AJ6ss>yP#M zop<49@8Zv?HSfZoz3!jyL?xoCqMG{Z?w{`5dHY5r4r^aO_}kmn^WeLGy>lm4TVE0F ztGjm%5mof?Z-0$mxqIjB&p+I~?OoXSF6~#^hxg^NCXaP_Jdj7|jqJ0FX+rsKsp`V4rm1Ex<-Ip7_yo>vd8exrE;`_u80Oab4@%^?DF-}+zi9rq48{Y3!4!sNi?)~ZC zD+kq@Uq3u*{PM1O+zL+q(hfV__opAue*MSa|J%)vKK{qw|F8e}$KU_&zx}8G;pxA9 z|HmKRy#4vl`-!ht?>+g`t-lieAAkSf|MB<#gMt6@kH7z~|M>g=_K&~+*MI!||MV_Y zyo;5!HT+q}p9l139q2mHb)XM`J^=dQfj3l1(r?4NN(&@SZ_J1Dr40Gj25}lxj-g7* z8>yrMzh3vI<=Lo$y$&fTO}`BNHtF|_e$VNbrQZws{Ybx@H(JT@Jz#`v(Qli6dHU_p z?m?$0`x&1 zXWj%op2D=lM#I130RK;VzJg;$o@oYVT6R z-D6&4sR^p==n2)&J!f2=v{)b>gN+U+=3E)#O$lm_Km`M*VM62r59(+RhF(Jb$DwRh zPE5+i!gx~9ER4NPVtT`kVzTa-_wuSxK5F#xM&yPfiTz$Js^zoq{T=ZXnyq;YaRPsC zQfOktJ7(`Qnlca@x6B$$Z%wDpi)xf}IEt%|^HJ3nlN2vjYBd_eHT4!JjtF7?OQe-f zu<{qUM58fRV-I!oh~1~gY4q5Dk8>n$w+Rb|-eLro0@Gw8AU2!)wP>P1cH$CSj)>-8 zz_W3<)2PCogV+nt3JumBLYO3iJ-ii!7$`L47!bCKyXq@8Ln}#oS!AR+u5Lxogl7` zo-Q`c;YLEhy)%Cz)HaF=(Giy--!4%rrT^>(d0WTF5caw80!dbj9V{OwMKRu-Xwcb!3MU^{#wLolRRqE#9B zreIU$-XG%loxA4N#!8*_5rgC7M(565uDVjttsY6gyA0G()TaRg#{*mf?uoMsWc5l| zPT-{vr;Ct`aEtggt~S3W)6O)*>4vBTa6|Yttg{k{&uzI+@X>pvDKi1D62ADV%RzajM z-WMiFZUC{qLnN45SH?l;-Ia*hR`qwIeqy4Y7eO}Z2Ja06aE@C|-G0v9&5|%H^^kVj{(B`Y zF$uF5 zx3(x`lcv$O&j%qgpK+{H$8#^u9H7Y2RS<^!(cqL5n6;qrLo}4d7*DqoGcgqGfAi$1 zf)deV1Dra5o#0d|i4Do5WK_mZqtmUS-J7Q<(-2K`i}qnTd+WLe#KUgTmEkVq zb16;~ojuw>4WKfgHy01V6@$GLj(4$gOj~W5S4Z_+jE1J_K2%OlRtKD`d#fhGQKelw zrFCUhcdM&aWjgKbn^Tl3~G21iTh zUvB5}$uv8R$Yn|y@0-C9jROt1LCdM@#NvK(H<=YboZtQ{ua&o>7q1U~aVweKJ};~Y zJND1c58K}==Sta~^Al(1h>4ysTm88tt|oy)#GV*z6|=gLO3@G<6hZ;LAC!O$l_p0E z)1a{DrLCNJSsWY=$8fj@tVEpXpm6bvNBq{nz_MI>b8TQKfA#LbAhl)QS4)F^DDm`l zwRqHSqbAYjO|&K~=(Fgy%YCF(m}<@#@`)eNk{2~ebQ8cTyA6S{elmr-k!=iN?4to; zt}-QVvWJ2JYb`x!e&`9tj^9>on|V35kzSRf$S@kx0|L{0nYq3D{3tk0!2?dfmw`mN z4Z8TCf ztm5iioKetJceOXpA=E&B^v|N6Y(g3#tB4k*)KPad;aG{9`4%zYec5V9+;!;Gw1$TC zXW$pRq3`%L^HzGp-#_FTTCTCeP1$h!Xe;OIe=7P;GW8>F=DBxH?Cd$WEk<)XE;WzF zONZ}vYw>>0kZ=`^69Xs@9ou71Rqb)r8g3SCH+ynm*L=tflqi;L;_uARj6K~G+p164 z2X>nF9Dy8qMyaBkhZ16Q`XuBn}zAc?f+$;T|v@v z8xIkx{aELSHlWeRsIlAo?;Cuz@BR_4f3byyo{GLbTxm6qiIt$gw2f?I&2Aj$4}K8< zF>Wf5uh&DrQwo@mH%h)}H4ZHW*g=g~tQcYg#4N<*B*A;``4rL!TQecC%OA2tl>ucUD9*i1;EW840=v(Qwn{vcmi#|%6Ek!=#nrfce8yC46fHS{Giy|-_ zTkrU^S?!z^x=nwL)~`Wi>j!1vTkC_#4+fJTatk!itg}Svx{< zQE@=gJ_LBU#(&rO?*acsuWTQ7Wsno0eVdBUU2>WqDV!=oSf;4B+<=G)XueLv0KjV` zL(gh(0ufoeO`8n4XY#p&ByhP;%^DT6k!=E&nJ|>)8%X8Wu&O9+NCX(nvZ2fnOVdKN zcOfVpbXoJd5_0|4Y1dEL5#FAHwZBeO!eaM8&X_1FY;X&xG8*h*=pR!GwbE%I9e)|5 zc4xCoyEMK^`$X%uVN(>1 zjEFGdr7EZ4NI9aa?y!=)j~2sRcnN>8tLhSn0~+cDc$i()EMp>Ig1m%Y>++6{{_cz8 z5S*@!1IHHpOu!Cw?l^8hIi*Uw;s^qbkQ+98?HSb=N;sIi>I7QWgR~ z&<|Ppl}ONi^DZ2CLkCIvZO|{}O&`Qh)DF`0%g}F=e$VLloPJsQy`bNZ^vijp2j)cW zV2gg+^vlz4hkifNuRy;d{YvyJ({Go4FX{J+ey{0Q@y6{+?u`NDgRlueV7jpP=bPiG ziynE)03q6ZM?KBz$H{xN;iNt4K?T;-GG^5Xo1GtH^*E-L>UwX4W>7I<({5PkT|A&> z7@5 z=5OX8P}rfByf35-eQe1*st#&NST)n9&#=1*G0TBjETp)g1_tEJTk&R%P)*0 zfY)#&7;4^GdNl?d{)YwP5p{{6MwMC{y{$@Jrh3F8(xHPI{b-Up@ck1r9!Cy*nz(%` zH$OQkg?UdgDX%5s2)nqG2-}CqI~;dXM>Ysxh~`BM!oL0 z*|45*QJa++2sp1cy6}$+0Umf}EXWF2$W_?ct*`~rYy=mpDA$w_+6@*gO)_TKse?NG z4(W&C)S!18hk6FX7dO(ojl-PXdd|97(We>nz#a>6VC;x!^gzysIFaa}2-qRzL2^Dq z80L}j1M01~@{vg`>};mwDc-0l--5x{G9xv0DovF^NQvg+v@a7ra5;oN(ADXn(e518 zsL3u;F9h0A`M7~ZjyGdaUXnt5MsN&Byd}{nuN@scOBRIWRkb;(kGs?Z!&Y9iV zENO(3oTPBd{2f{IM|8-H@-uwLL9I5%^Xm*5^C)iZro|c?3PGg+3dFX zB{L<>FqM_M*cRm?<1MdkgrRZ^1lmv(ajVs361<6^(HNQAd>XX}d3)Rkxa!FrkDp zZA&fz4!vo)(9Q5rgtj*PY%%}%@i*VCDava#u0Kc{d$d>uME0QN6OLQ(iEU`X z%Nxhl&FZoRSZfd#xwXNnu2tNRLO3qh}Sg z8>}TEZ~?$!@bSGjDO9=CVnPtqI$8j*E4nn{B^*1>8yFdqv?d&h;*uFtE0xYl&2K`P z^2{XKR7vO|1R0uV9e%XrK*5ib4{()b6L#Dz@tC$Go@u8n%ICm@y{B#c#VRCh^rxb# zISUaCK^}W|8mk&v#5Dt1Kc^?mw!in$+9zNLZH0M%?xj4DI{_i%cdsq?!z%i6%lcZ4 zyMOqCon^Amx)bN#?mH+Tr>`1E!&o>`7Cw(^_&iEfFNu0`mln~X>H$rL2kZ4mkNroF zzJ0uQ@c90B4X?&JWka6F8Ec1Z zFbqnHY*u%(&54c}G<~QH>UNr*W8=fbDu$#Tuxi06z-PXzXfiw=zmW|kkxNG*Dj38L(Rd=a85pbW>OsmN^BL710_ z5s16hgmnAKFz;Iy7~JwJA*MVzT9TA?N&`gScSbOKnzqEa zPJUT-gUEdkRNav+2oi9mHbPdto?x1&Y)a%prPkFqP!&#&#tp>~6sS1O6KN`{A=)VN zBSi1VBT=t3nhAW4kPT)OIvS*E;MW{PC0_V`!4LH<3Bm>fSe{srw!S*f6qxlBug)ND z8w$FiSpr1QYJ|hMA%kv>m@49$hv^UPN15XIPof5|CocOyY zk9GPe9}&v{ledIUa*z=xdqpuNvG?$Le>NWI&nhHIbwY3)Lp4- zkBFCHe#4$nObMck5w-5IJrh-g-q*hu4Nkp~>NfPtUi@Bc z*?F%9Cw^ps!CVaZTXl;AwVa77@5f-E}3 zC}2`1?1<*av=Wr>Sum(0D;YPmR}uIc^A$iym?&EnbSbFHqu=3a??VuA1!f_T;VSvm zcoSf@a!CSoT2~VYj3rR*;r}pn!}*&hY`IX4ByrPKaY9E+8pioVHS$R(@!L`a0Hwf$ zH$vuM)DlXbe3CO6!J#C88wY2MZn~9rD6YQQboIL~0L7Aeb zEzT@Rgz`MH6hqbGK=RB~UL213c09>FAbb%+_=Gku$q$V%t$rM7b1Fpj?qFPQVl`lT zq_i=u6fN>X3>E9Z#TZRzj%7piJDsL)KWxY%Kykm@!Y&`jpD%G03M#54h72fVtKO*b zdC7=4Qb)ENzm(|Y>R;VlM5r;^$NMLz`?8=iD&0y!v$d8>PLa?UyG^f1^9WQ5MA|J5 z)hmq_DnUW)-1L;u(mEz;x5_KLf@0=^wy}QM(F_(zIrM3Vo|O#KF2>j4!KDT6aMV|n zw2k8d%nV?0>NqRb0Lx&H+go2aF9K$398nP6MvPUBu8N5lCV5vHA?oOJ!H^s+1N#n! z>K6Y2~HJ4`3Niv92>)#YMc*TaB#zy&MVE?noTN+ zPe>OWB--jJ4RgV?ML5qN#n5E0ZiabPj!~=b$*c)t7QzGxk2mLHx-rw6leD%zbhNY| zI)%z9PYL`|qt%r$#{S!@(M2nG?L9TRcT)lIg|dSv1snD_bW%e%w^M7}9~q(b+PT{W zqn7FF#mER0XO(OTOP1iiJ+D-V7CHfojLlcMDk#@h8)CBRs6h;~Hq@twiM9YeJ&4BF6&InfP60*k-0j$Jc8v6}{# z4o-OjC-8Zt^=ku_)MbI}v;s-d0-aKnrx1&YJZ{d#b}EhNW!)IeDjF%PDnZVa#}o_o z>#|*7Ae+VnARuqH>kY&kQFH5SRo1LpzrXfyWo>O`eQkg3(aQaASJv10H456V;ijzS zKE&T>FPG-i0=9ol`?~$cd#(fuYp@P!1n+k$2PTXiHjD`zo=~-(Jbdsi<%RDT@ova7 zCQ&dWfX0IawrXt9)NG22Luyy1Z^ZS7lxX!grVN3V7v>a;j>xBll48k^O;k~x7blgd zn^8v8znXbLQ5}?j7(m3tlQgDA#!gA&wJV3E04%e$Z=I2lOiCOFnJmbu&Z2{C((=l( zzlAsvE+b8G@oDj(Y0|Z(VHVeu^?AYJR!<%4m>Set*Wz#cr+icOgreBiEkv-*)qIS` znbK%6y|fua(-~efUaA}z#y}f3x(3`tq2;0`c^?%@&E&Xd*cZX}nGsevfLN~`oX|AV zCN4eIBkOjkV&JZu2TQd)$28M+L`7oH8>(W%fQzqais_;t-FDofbc`r!ugVbha0bBG zjSv78^eJe$!tEumyA!~~RFL0pi&70Bdn7`z%yvkt4H@CI0&Wypk;g=bwt6O!MP4sJ z(wfR%Hxwhj!>w#vjb^hE%BOukWTB2};ZX7oMEk5_XT16eg3}Bd(h=hL_@i#1be%{| zdTIZJ1-^cMddn1lPvm=2@=_; zO%qK>BQipI+7sQzRBHJ|<{Fa)_FByyG-NKGpTvlVh;&6z!z{^#d1ye2A41H%D9@D3 zucGiEqNJP=$EA52K`dra4kjr(|E1YekU5+!>ld( z8U7}qFotWL;ACDdrQ}1~p9%>vO-H0PZwwFaw&OM9lg^v4Ahl%#%g~j0EQ6f2pwWi` z!D_@WGZs6M#M(Q}WGg@%7nC<@0JUBi);`IZ+~Nyr0TuYVP33hi_fj+~(-9qgY%zwK zJ#0io{hJfqg*aIpLqxRDo2kWaGL<4AYA7{e`DG4JDKCRuVoslZyU6fZtsO|PRLC%E z3ZTqBw-lnQ^VVdj2_rkc)j|cLK0s=^8W;h>MW|R(T@uf{Mg8swsl&dQK6$Cez2#EP zKj_ldqUKkL?WDzswsR3odl4#=qOvOy3_V;V-M`-n0Ic1oDiJbuQ(fI7f_ZgLNU4YS z4P`opv8p(L~xvFTp*dZpI zT{$Z&rG?^^N&Cf5-JkRSeBVjh9)2@b*(1ujZzs z-%~D86KR`@Hmp2XXWPvGKJkyXIRwNq$!Q6iuhnP*^Zk<)Huwb9WqMlBtK3{!*s{{H zv1{Crn2H#1O zfKo$ztmz-JyCpy!?kjkvL~BPe-4{)(8kknqRYjrI;%b?Nm}ntQo#uyi05ihqD}BC3 zmY|8-V$t?x2g&(-SzpN~wx6xVO+Wp8mLLODdTkEUY-lpL3M?l zSLiZO|E*Y|pwBHu-6uHXuLBT)up+ugn~$Mje^AF_jv!Cip9y5`%|^t%Ce!I@rhI$| zIL}t7x0oYhbm0M>iBY}*yHH!;E&iDd%#Q~} z;CChbqe0;^BOy5Ys68BTbHXmVBquj5k*4S3S(uEO-$t*<831n;sBK^vVvSsC;2Oll zda~viVNcZ>wIbXL9D&Oju3`L6)S{7lvDP@Gp1~g);m4Xj*J)zHQ?_8W#&M+JI8E4A zqty*DtAev?9Ph9k9}r@M9OdPaZj5!4jiH! zZR*Ai*@Dd~uwhKtW|TndJL8le72ct`6r}Ze#z9ys*y3oq2D?vt-Z^e&aAPQH^kXGv zTf`|a|5ogo0Vo`&cgeT|t$9Od)&Q6GAon5bfnQai|I}|*Lo7cr24^sGVYz{fMsrHV z7B@{m{O&U4v~M_}n3^!~#n4)sMFT~kb}f!8*MI{g&KU=#btYNtA#lg}$Ph(Y8wO25 zo5q`3HC?vB)UAH?G2^q7hXq4_9?(J{JIFah`_VrW%DkcA!iOC`*KZ!}^+ znSo}U(C)F*iNIdQquMsL1+%#q9`I%i?d?8OQ7A-k1}hy^PW!tO>tRZHZA|phg3ot6 z*LXOx-Tf^EHgWPmi`To2?%|ePeM}Q|=0k(0H;$6k90SyoM@7|$0PZ8EV(x}%N)CDA zRQ4rdAYv+;>;=37j4? z4-Ec3w%KG7O*?H!f{p>j2`Dlrq)7%~dh#AzUcf0)x)A5;Y&Kkjn%u=&!0EwO-)!4w z1dW^v2wtk3urBVLq5) zwP~WW7S$L)_!yvhnjlCXwFgTO>l;o2DzzJ&!)p%m5_fRRjEyC420<7qb+tS-H*!&> zDkQ^sDTbOh;&S4;J$XvTiDAM0-ba;A!iSaMA2jfkwquFP$w@mnY4b(yP1X+IKh$&Q zX^Cf!q2~m3POfK!BHDW_PIB%!qS=5k^iaEhn5bDbcBw7D9UU@raw3bAGaSWP21MBKdj#OegDzJZ@o)CD#@GiE3LH$Ta~j7Uyi03SC^^NxF@pGDvCQF z`asni^{XnyP(Y+cV~T~|xPjIpaGhUcq3EPvbtFX&vg51C7)2Gce@gQ}Qora|`O8%v z%o7CcfXzaa5nS+j2CN}k!yD!HORyXB zMLeaG24N@sx5FVu0Yb4dp9Ize%0sP*XhEGocwpz=OZiq2g3rp7HE&h{%%gl1G_QnW zgZiy#7R|aOh{a-YWFDmiMcOc_0JF>s4q_(FDW&NFk76O9W1(I0;eVJS;-SYpRFmwK znBAm~FdS0y#|M6G11<|x${KnfGc8?dze@*HEjWJ?{dKWjrHYVnm8T~djgHfbJ}ay_ zrn-`#IV4H4-%!_6=0~w`d;5(E{^~b_u`AP0LLp(1Bh$F&>(8`Al4HKa6D=$GF^78n z`JLf#2qC2V&d2dIZD}sS|H>J4NIb;P41=t;>$l3GS|E@3aw%v+o~iQ{>J}tM8baz^ zaCnFbV@hazh80o=VGNx|fK;S2cT-8OB*q*s)BZ$5cf=VInpg@XP&6n7VB1Bd z(i*EksE{_AKzxvR5jr8`>;+8Ryc&mK0_l|7s)?U~QTFgf^@cZ8x&oRw`5?f0{J=Y^ zlTVO({#XE5mm@-&j(GB$aQt_T01h~_HSv!Ch|lH);)!USAzrbD34FylV8d<13DF`< z;>ixlcTe^ip7X(uR{cn4m!gS7`Dq2zd+IH}1+$@~3XSSbBR;Cs&T;|UM$Jf+h%;2& zXb1=zt|L@&RFYV5$d2v;>hyy3XyG89E{9Y}p znm9pL|EoPzBp|1Lz46U31T}+OnOWjH&3L2%BWPe`$Wsvx-wrO87Rk5dbE|ULVvoXD z-awGk$q`@F(NQhWgM1dAgv4!ZU5NNYVyC&-(b$9-DCGR;YV)2rvZz3YGcg&7Nh- zhd+CoqS*?~U~)Wn-Nkqgp(;@&wcCARxHskl&i0~fx+sGZt4;HCzu$Z%y$65yfwasqTa=tKfU!YU=?Rr{Da-&G}PV)ka)P`(j`z+?gCjL{-5Otc@+ zFmtm2;SF~Aq4Mz&#xYVMycok@o@T}Y$;5Ke|8RnklajbplY0&wi=IiLu%A{W2>&Gf zg7p6-17%zma?VhxO{A@7*l9*Zoq_nALcqIXO0&ayj=mo0@-jE(o9o)g8Df$0yalZp z?zAO|qNqi6pW+g@P8KbJ7bjV@I28z5#VN-n_F#-W(}PRII#aU|F5>HXChQv#0L*(P znWVa{^NOUc3WWE)lJu4faQ^HZUwzX+@8k>Irw&Ig31~=Sv)oENSZB2q?~~|ta2tK^ z+fQ2k*-*1hB$~B3TO+X}n@ z->>1QQYHr%!;a0H@1@X6;gYN_$)cg|tL8YY9xm0n)U*6Znp^6LlVL*6Z_yX^)?wdV zHZx!Ey@#06j!4nm!9+0*VvtKP!Jrz~)y1jOa2;BZ)A+k;`MnvSMo}N8alm1AfF}=* zOMuWgcu1E;N=>FT^-z5daJCg)b;t>^V*q*n1lNi??Eun4TJD7y;`1~RB2~U|#zoVK zK`~!t5T`aH4879lYYk!X2Lwmd#`HItea{7F_nZS2b;AwudcDjs%;K1B>9|>BGAvCS zk@Ynvy>XTimPiogT<3uqCPXhn5|SJxE(wDDC&rKJNAkzhDhuiy8F9b@$eB1pv1n-y z%fMfa-7m;>CRg&HMOya$oec<)=i`(Tck3AG#@;nGpBVUcE8=68@}Sa8N<8|`a0u?9s|wJW}yHK!vgn4GT1YJ4V!h8pby zKO5l@hto4z#}gX?!80m;nGlpuUp1<^v68byxJs-QEAtg}TuX$>GP4gp}t;z0pj8Uk^jtc}0*ck>Rt*Ir!t-+Rb;3=hw0_;RRI(wF+*y>=OL0zzA zi#E%o&7j-X9k_fB8)kW3@|10L^b=VzY0_j(S8N-njzVV5k{bdBtqkNDnYbim$^`Dw zW}_5|H;?6r&SnTR2=m8l8^WwO^^T&OwL0DvC(gC$1E$oCHX!OTbisX}nx= zZr=Mw(n?(hF85~m5m_THG0x|R!mz+S11+gdnuW1iPT{Xz5--(xy&RV4DiO*uuI}9krX`IYT^fl~{4mSw zQ2p4uSf`omQe8H%b#Vk-k1p_{w1K3fLw&~8t>y?Luk`tv8phm&rtgWwjLk4C&dqb# zqU_bidKey6KhXf%TA09|LV(CUAAp!b5+HYiQQ4rDVil(dl%Y%9O~A2Qj)Ct#vRHWpVT$ev?9K*uqTe2y_A?g;t@I7;}Sq4mYu5$EIwQnHU|+) zaa^S+`i6LQjbPNxS}$Q8%>x4JCgegA04j%aL;W^!?-jN-wBSjLBPz5yT;iFR#*NY=yQpj;jf*hrt4i% zRaR$xK*c)@pkkGhH`iN^gCd*4*?N!1%?pR#@F8Z{p~H$den?BI@Fzou2lT6YBZsmB zoH-QrTw^q~ptyTjy(Bbi(3J}g8&wmtBkEuxPP$=eY0->~`JtLMfti$ExnK#sQY;e? zdwcIE!ccetXbQe>9#;G`bbX_#3>#pYJndn zV0h9nO1%kP_>KAg(?pvcOj0AThgNUdrX_OvMpe8dShAQBTQu};MQ~)>hknP?3=6!M zG|GE_+wVXZMsD=5)ac4t^Brn)2n?>rP!(DkL&zxX%vK*?L0gsn9ue4bQwZG(A2BAa zYk4k;@*4d0=#I!)L8IFnry_#M+&P!%aY``Uuki89vY@^9-iKFOX|R`VT-~ChHzI zK>9a-MqKYrTae{pGZt010dYLv;=7rc82MDUxVlxJH#qft-A1@1VXVNCbT(k+l4?^o z=H4rAG_Ic$zz#rSVG@72pH|SGx*<;7B}Ts=cP8txg~S(s?ObZ+kaZIa_J=D__jud} z100u28ocmcwIKHnXGvbLA$;MsxD5jBj8{C)l{HqIR!n=#tfJQE_?Qy3Y5-BHhGj#a zNa4I2x*1mtQcK6R#uqps?qB+HKaHp8YYx3<_P#zaNG9z0C`^?txMZowiM62OD~qQ6 zIg1*9);E{}ztq%{?|r!y+Z=mKbakA}!#hS{#%)|EaHl-WpgK^-dar~?G$7fDTof}3 zjbx5VGk+0>RoD|R^$^rKe-Bk0b4@8#mW^c>vkrT?=k(ZwYuC6oC`4wCF%4qgy<^Um zqRVd`qB%vCSD>CbVW6Z;)Tzit>XJdzqB)r7i=3_)s*&)TMzSdpOSNcVb%x3si60vx z6lgF#9HQuvOPF~RUaA}zd4VBu!^|11tw+H6P4R8YW#VJj83U;~(3HWsCM7g-h&e6z ziF%)zRFn_ncql+SJ?x}iV>wRI9`8>o##8O$x~_%n>fzh~+q*hXYcWPFk|@ zCCLQi5pB-JWT)*?IFr{6MMWfFK6WZBYn9H}6Q<)usTxxkx6Az@yvkkar^|A;+#kSR zB$#Y{l+78`x+jzBiEJ9@;y4Y48$#)@iC%j%F8-U)z^INKPgt6%KEGEB5jkVe+#;G> zOdH3|o;Kl-2Yb14a$#<_jwl7gpjw=^$L~eLVQ6wzXz&jm?R<8;s+%63BVZ-t*Ea2G zEH}>}*CX7$y6v`gD>tTuR~C9L$*V_?nFwa}F$ZUf=VBa}zP%6;tsH(jqOmYOLTR32 zkGn#F;lgzb_Pc`M9y!1Z#G<7;jv&Ch@eDMrfGQwQ8B{cm6zg}iFlR#ST#`_Vv?z7Y1Bpe2x1Gwr(ESyTelZ7h*9tiA?h7GLP4 zP=PPIw4Om{=%NfT-%AN&Bo&g*IwbD4Q5@ssfV*URpoP8-u*bBrIxI&4F}v-Etd4ms zL1s(9Z7b_g;hw&xw$m6R^AW*ZxcN~;GBwI)!a4xwqF}vL$)Obe7P{^YhjN7afRjOy z{mVjR0$C}5aaKB$W)h=mBh!#zwr#fHYi426gRPZkG{~AK3l0lmS){r94Yahqc3z0E z?%+nI3E#-<2^5EdW&PH@Uzj-&wSvw8!`q;zs!bdXJ0-LsY^6QgeF{)?-eYoWRruu| zc|D3_dVy7#pXV^uiI=Hz*(F74@)JU4rSX{v=Jn0Nd8amOaC7cF!h{;HCmE<-a}m^a z{-L@E#~#-rP$ZdSqx4>QI(~_Qw#MRnJ}S+ccnj2=8SO(fQH{C0yoo~`At>c!;p|ge#$^R5zaFfQ#`w( zq>Ry+#Hv_sH@P|yK+RNcH~52_qN6scASY=ME}=#;yxish6*P&$%48ON&7Co>QYA%b z>zuFt6~xm)NAqUYUalBaRfi%45d`oIGbK=XB#NhuK?coqtg}pCHkj{TD#ER~83Y}f zM#E@pYV2v1L*u$Ir^yQrV%DlDhbCK7wnI+)W-Vltd*&!(!LgFfK`$En*(O)rGdVb& z7tlRBowFo!Sa`)yaE9S-D3_xE_aJd8B3rwR(4`i;Cw^Nl4q5D>@@>;I5s|+$!g!z= z56XoscUWtS$1t>yrwtTshZxODUuM|yp%zo`{f1;Y#OJJI+vYh_PJNWq9cO}EodU2y zn+@upR*DBg@hCWrr1ETW&S^GekH<*_Eb+X`ps{63JI>H9$3yI1#_p^XFwD2$Ctc$_ z@HXS@PW3m|zey9z>{|rsK*;L1__|^ynwTs?nQu{jfR5;UXzMnnl%>i`7W+Jud&_K$g&CcHM+A-2fl3aB6sp!$JQEGrBP zKszfL0$<2y1_wI|m#1}aFKEilOa!OZxq;t~mH{>j{Qn4h)9yHqBwG+7vE+utN|4l6 zsIKaMug@8&L{e3+S~Hw8;35fKB!L3J67jz9B#;Rr#EgtoMkJP=H~)R?UNdv|NPzV| z0AXhC>EYqw;fuN1HC+a&I=Sr>Vst4p`Y`n_@(Swwe>FmP)o*z47&SKGeg4j}eKLcV zZfBt#GLD?tbWZoFYC#b{fZyGe{pdC>)JA-Hdj>sf<4e(0Kr8h8m{>&|%U1$xW*dBX zD7e~2sLvc3DsfnVtk+G=*)cXA(Y?w%z$@PkSmI%lF2i|s+jvDfH%46~wUl5H!JDfF zb~TXcWWlH9$g|;`&2j4GZ$h@{M#Aj*IT9bbu+vTu`uS}bM`RV>;CL2&n_9PG9BSfP zT0Snqs#`np?M{Ki1+Qcox=yt#yp}a|#gTqlxsesOMHbGiJ7yFd&+&EhO$@-msX>?W z(Jp*Nd7R|*)kBE_g?J96+k8hsdLp$*@fDjxuD*`dkG$o=Vd*s0Hu^MI3Pk*_&K~oX z2ph)xoj(+G-5V- z=ftr-h?>C1k=+Ezq;8U0MR=0Wf(je4qDR@9a6K?5!%vkPOuKJXyI)NY&gU+$}DbVA2$GBK%l?59*5~SwZr+M&hv;g9LH+r%ZT`{ zyjeD^k^^ia!id0zsud)a<-Mxjj{JoEO?LV*oUVcy@hR|~zM-`#;OPv%diMoi^qZn$ z)UYrUEU8e(-C6+IuV)0aC%(MtG&c>yzbO|qxD1w=o28z|74}MKzNmRw(-m z)1y**Ad{(rLQkjeC-VJX67jkf5(0hd!-3EU{=|Fkot$9%(+Z?^_Pu`JHlv%$&Fn=n zDnTj3p&EyMYS4{QX>X+4(LHlyULmbYG-?G{B90p^=AUj4_|u7w_Hylw2qoAhmj(1l zbW{e2(_*JpT=d}^*aJW#hqLgJ>|Ks*T1Q!?;9xghi@Z-{e)Abj#BFchLF@N=qtR+IYOjbI#B)j4O@GY$(|8`Q{#L zis7(#6_93@O=$jjO=n9_@gT|TH8vW@+-9No#qDyP!?$lw3}zFhHN59|;f6m^qy<@B z2d2AGGFs_zVgBe72|sL~^gN`or{JY;|2OvT{Tm7193rMA!o$eU?o`%dl5eWp6qO~< zk(bDrMhrx7&SPh)nI$p{Lh1PDyzGLg_1n)bit1e?kM&K<-u$GOgpp-YY8n~0ozYgZ z>70)G;b&V3Gka3$#_VpVs3n#>=YH%tl(V&Jn&XLn8wlzsQvg(9?5nc%w$BRGa|iTa zb4j#WY^jI_$SgPv^=pxHE!eV(ezkSH-k=ywN2gg-7>k6O0B5QK!3&L1MbPh^DLJUw z0fTgccnHC!R6A%q5fw?SlB$&aYhwe|McVcUhldxz7(tjzeB74QyHs^%OBt>poyIta zR}c4M|8h>CM)`LN5tmJ!n00}1tFp6cSvN$oFNMj}V^ zh1G-$y@ur&=&Ib(t|tOtg=(wuh^7-rY>n3f7i<`}f{34+gC6^hTweO40z6g~X_Xt@ zsgGY+!=RHHW~o!$BeGQ(xbU?b03Q@Z70yZy+}gL3Fz;&IF{frm{nV?$VJQ=>iJajE zYag>%Dt!xE+kKzgLPQ8%NgM!ww4V{~!cP9Q1|GU}Nx70+>jNpymhro1uM0Im!Wxb5 z;PCY!Hg5PmfnNCBP3PW4@|dqd1GT)Uq42E)xoyh6N(5KvdnhNOtjHtG5*90F+14mb(f2Bl?&|ga9HRVt%i4exvGF*cadcY;vU!6TD(^YKsgd-T$y;# zH~Nm91%;E`8@DAib9Z$$>Gl&@fra(%^{aX6Lsz z&Vp?D-VJ0_L)xaW8%S-3jXJMAg=G2zw~@>WbA^utk8IV1O@rZTM^KPg|lS*O3u6!F^NCi%AL`tu@2fmyE!%>ggS zEYoHXq$WvgHEB@7sK{cnkS`f2DUdc+u+*d8Njl*GnpCAjRcXWWYnj(zL$OX4z*sNc zRi0H*Sy<+829crOJoowMXfVXYv_$es=RrkjA7V${HTH0K4wacqHfv0=v#>iiIuYn zO|qpD0!yZchnuOqc69iUtXCRg=J>?WP^gSmV_~19L+IxwNlqdqO<|GlS=w&Dw$k4) zG2DpvPNa!0l9J<*>jRU7YKC&xEJcAjf^~Xwu5R}9d>^{w-*Of{`XQh0&VPwxo|1K+ zJCy}X?l^?0D+E6vC3khQRwg=gDW6p4%ertlc#%MdYk9@w<6A&T^Y;_ANeY|Ac@gR+ z;9Xe7LUv5qaggCP9?N=@1R*l+d^nTxhu7nCTTCo{DCE-wLdS=q7`;EKu*;SYsjrF` zxxX;z>-&f;QEKN~{xGAa4nDg|1fYod50e2_Gx8N2_OL>m$biMe_y#Y!&;sQ%^xY4W zvHYy$Kp|g48EmXSld1f?*AK3nLd)>)+dE;0XU{{F!4_B>W1FB&`v$Vaa&SvAvLXz# zAw+akZt&(!W5*k4vobmBAU7E#>W38*y>w(?+~EyFFM}xJk6Yla?i)hyje9anCk~8V z3OOyXimSo{mmA7nh4sPxWeW;Thc2_URG<$5OA(bl znB72Ur-27Ygh)p3tRJ_;4He1jMHTDFLnu+de{Jx2;n_LMb1p}^PVG(j)uOe}-{6=O zE~{V${r6*6RxVOdqFY`Jq7BfOU=4f!dIso+ujFFzb~G$xlL3Fq%6rr;$f~PISyH7Y zZaK(wDn1Wjy(@uKGfCX^!}xLY@Oe3?z3>N07U10 z9@rAfvB&4n3!nj=$B?ia=eJn;tVW@oJS?Y@s~Vf3{a_Z?+oC-3+FTkYMhs2 z9UteNbQED-CURC2C{`9B0XGT2w>yvN)^61+~-~Gq8kG}uw4}bmc zuiyRYvc!)5Pr#UaI|jTVdXym@{z)ZlpeI(wR2Bl?R+FjphQYU^K}A9Nr+IhkN?cIwt@Ejj_22#~BgAh){XdWX z@`S%{oy*&q45-OnjkL{WpJj7*vOmh-Bl&wQe^2I?GFunTXFp-No#`ptdKS$&5PW3& z>9%CG33nkQ4%%X-gTvjdC-ZrRmT2O?_PZsJ+1a(+r7v0fkMQrYi2J&#SeNeA8wPJx zwTGw7V<}Ul*A2)Q!coXAuW-w&5nj4*va`>K|7&Z^a_5Z5 zJ1Xo;Wi!bp9Zmk>L4QT3Tg`?rC?7`m%lRyq-Oxft)3Oy_5>M#WM4)?;HYKJjXp&J! za*{U5H^@Luci*Xqn{B|D8`BrdT4ocZU0s zFn?L&un21#%{g(^7@59HgJ3X;1xLu#Fa<4Y7Ao@$7{7}DHLuQ=N{H;zRC=lnbylEl zN7q`HjtP|e(m9KYOwC+8*R#|hXlIFa8{Z!x*2O8-EQ3jDZe!@|D=H^4(RHuE|5_}zupa#08=phu4Te~Z9k_q zv1qx^?j~3Q6fc9M%)M29To!$kBCGJU(&ubp0!uk$buuEQ;fU@wUtQ{ zquI7e5GQBucL{T=WBE#wL8Cop>eFfFCvxv9d}C^KyO?S3TFT74b~W?hbKNHhzUxaRxQNhJMRdSAUa zveb6BNp3P7S4NiDBWwlIR`*8*6h0{J!uA5zNG+4l)g#go^5tF>nv*__I1_QY=jlc< z4hvHr0nFweCVX8LotBuoA;_!JSYKZm@#6OQr%g+iiGGn}#ixajZ9iDHbzNeobI2)A zDRX5pkhxNJl3BTPBHPviVeFQ`AXL|u5UG)dc}vKv2yz@hWo3k=dP!_?IPR!4z)iiz z3^Tw4Rn`M45|hd93fw0W1Z3(M!Q;`n&yCxg{N?+<92K@DeMNB62bOkJFin5O6fc7+ zLur|EXH<-?^I}?>S8XEMBN*^dnp9-hKfZbXh;>nfQ6c1cKhXJ$t{PpDOsnE`27>^p zHcFcH9se>b88`>w)3_O}Ijn8Wrc&{lISy+UK$zqqG~yxGC@tqW5SB3(;s%%q+@WB+ z$N}GR{`N+8{l$%OV)S z9?A8$X(pdN&76b_p$S&NC~7{#=ioQ&iPGIXvI_(MK#nE%3a+UyRf_^eA#FQNLs2m9 zM#VCb8~|0f5@vVAXHr7|lWUv(7~mjLqn}bep``vaMIAKyOjiD^I)W8YAI=YD9ahkd zRWe51G`^7}GL)X5_QGqD$0Yn^ORwDaO0{>n8O!t?XxKuH&e{PBk5ScmfU`rj2IzhH zqVy;60hx)&(F6Ut$Ai@r4=$H6cI$_URJpCR>Y~7epzy*(V6#>hQO!D83Td{I&ET0y zmEd|20Ia~G)(1zg5~dnrlnIOj2umAr)6~RuM3bQgNP@7+tzKmx2mg59n`mSuYvoF5`QZ4yHK`bjkN%k zwV*L*=zYnKrv9zTSM-{I$nsbW7%6q}c$G9skY!%^ruPQz@7#=d3ILmNAjkqb{-AUhH_KBuSQnJfz8#QUk1|VnA#*HKe5*< z_m;g_fKnH3G`!Y<5KE=M^+vyD%uZD*?#V$&+A~_?>gNXYA6fKb6Ws!5`bDXeX;?`P zd)FZ4xy&+=px|3zIY(c=mf7VrlPL}}41S^EvGC}z4{jvP-o&E=YHGyc7 znC9AxLI6OSw`gxQh%<uF8P1E5 zzs!demzFo}|9JUHk`=QBVQsCe-#Z@rdQ_bcP;cq`>dzzBVuHxYxQ~YTy&4Y-RbhA) zDuSkl~FO<`e5qK2-Bk&M#Ry=XO?Ju6r-NwB)=xFAcpx3Ucz zqH)Rj5wR>)L+HTS2@SWBH3pWDHd?e*VzCo4KbT+@YP%Ro`-T31{IGsG$Aop?h`osd z9tMyB=|Be8$?dLGScX3A7!C(eb(RXxpOx>&YI8fEl_yXWmIZ!V{Pi#2J+iMtep+Ax zS0@6wGdE@U?WNV`4m9l|qt)s%#Nz|{bBXLI7fQ(AX&pytz zJ`M(B-3QIJL1V4PVH?a(1<1P}p*xd*L0kD{!fgMq|FuoK=8!672Cvc8kF$Pt3y{c| z^U-`sk=q}9@uPZ=;%4DM7&+D1!w4_CA-rzQyH2s8%DMTEIH$x9IU9A1&^=cBqYN|h zl23`r@o^*rpLxJE$#AOsY&dsk_(=X9&oze7|H1`EsiVtcZed8@)+R3lAm}xQ?$#>8 z$p<~jStmKEDGTR^aG6@f|DD~rwq6;ALz!oTQ)=jz$Y3u4f|kD>r>IwZ=p0q#zw|IU zj&y&dKjGq7DOmt(>4s;drN2NhYY@RbUo-8RCUr>}s{&Oyq}Y2uAND>OW21#MQ)%%R z46w1H6h|~Y<)c8&qBRlwNmIQqsi4%S4jMW>kj~jmI3P5&KM_ruhsi>f*)1j{$fMXk zs*40=0cSzJ)6228%lly=tHt+z+xO-5=v05qa1p#ER{%o{Gz#W0bO+?MVNVt&=P6RB zlzokFdKmnY7l-PFx2Vyl(F}FZxoO$s*V7P>kps+WeUfC16pIr!ygAF#6fzul)LwE&k-dKUOqP8fwX`{~H=s3wc z92I7Qugq9gAB*HJG`H!7L9!#6(){ia$ItTbkH}6pnI*kGMJ+)9LIgh~{!9qq)lk9S z-Pfn%^Cj=_d9o9jt$W=9(>um-H$1Z_}7BncrWYw>~SXh6(!j8z^F zj}p6&6-eIYL-b!}SsbeJyQNne(=QFp;G=7VFRq*{WlOOmHrL-8)n=izLDsD^ixMW9c%CPIh2Za)hXpEwJ()u$gLt?jZ?J zQ+%9`QCD0IxN?^V)U-O1$1K>Z%7I$Z2(1S^ za+TDDfXxv z;sOHQN?zBc&n@PrL)Yt5+;9ls=IT73TNip*vvV)!HgoFVXNuX#Z;6y3Hygrw`kGB3 zH+dj}%icBgZ`lVa?Wi}lQpC%q@SW~sFsu0QJF%yohOk05A#{m!_dylNfLC9$_Aw89LGj#f7Ah8 z(2#v{jrWElfiy%Av6&y-F8^U0MI*&CHgk!NnU1*%#ZAkBA_sOOt)Q3W)srxPc6u74a;)akAsqddHu1}lyb25V)f!7c z8%WfYDYv;tDoT@+eHx!|tdKM%9^{{b#sB&W*%0Vtw5sR2KuQK{Jf|7KqKh%B5gPeRKMa9 z$CXEsBXtzzokmnQu|S*|@iyUDX~meK$0=T&5j>?ttpWIoB+qhQgNm0LCfz_vWakVP zLMx7I0 znc=4|gOZudKslw*0GTcgsGhk^5MwSxKF@hdrsqZpMm73TN7G)8is^@QZ~>DXU7Fr3 zkDPey#1kjJ$GrnWIp|!LnN$T5(H85q3ErjCPk9StfIjaC%eCl7F4T8~d8;n)QXD{g zBjtQ2~V_q<*;Ccu! z6&og6l&B8(e*R)`>*B4OtFFZtORMB3NxX*j+#s6uR8nC>UAD`Uf?{2Q0KX}jQ3iB*&AwN}z+%JSEdsw>dy77+r)N! z{x;=_NsgZVqXq>{m}BW@Zpkd8@c?a&booSoR_pdw9v!3_q%no8=Qr`2@7?~7#j7wP1|mPNKtt(-eu{B2WaVJ&VXHxHn`uN_AQmTFpEF7`K(wK|z?SfVn3>57rY%7@X<^i6>?J zMOz|akdOkevWj<7QsKRY9P=d4cUc@imU6?~UC-U};+bq^6cT(nuUTVk=C{G$wsZTs zXuqa#hoK9QGbQd~uAY%y#X$%-Lyg?G9QX2@P_;nk&3zg|;J$>B)?3YIS4?ZO66_D7 zd&)vi!=^SbR?ihO$#f%S%ti#=%xhnZjr>a@#mZ0~;-}u^gqG#`Pj!TMNpe56oVFxv z6tsoBpP$?vZ8@*mnOF+^ciVX~wl{JIfbBY^?!HV>JH2I6G})s57VJ6K;Xn5-1~xc5 z`Bc^lpbcE;h1rGcc)ySXViqOn03(E&yEKe=D(~!PT^Q8g*+S0sRGSxTtYtFEmKdz+ z&F|t6ZC?IiF5abGzdkf_k;Pmjg+htY%!9p4C)cpm`!*`%ts_>w;t6cw`n=?MOf6EgWdh0bClnBg1|{ z3K-e@>g8Nli0qcn2I_hCL07fAWtd6Ec;_1;xnas8Et}d5pqRHzIx1+*B#k8tCv2Xj zLvm#m_H9eKVX`jdbl+Rd6_~Y^$Ng?QhjmYww*qr4eFV(ka4_ZzHGC-#qS!lyhhAXH zD{5=um7sA$!}W`L;F!2^~?X2BNJzDl?>tzBX3kDeh9+IeH2f)JD0b z#OjOyqg}*UU2=5U1rXTEzDm`<-N2g5i||1y+Q@@3cCL!c5b>cSf-7lW{dma*d-mnr zz;O7b$g8{+8)wzUL9&_Cc1q1L!usX`rPDm<_Cpj0xocujC6%=$W6P-ns2g8vtYt-J!4y8V_=2Sd_yIjH`iGAbDq@VYxtp zYnrY6O_A)vNJCz5BL=6l$FnXt;xecJr_^ z+Q@G~kX*_=etf<+;)z1|!0w6UmQiw3#L`7)qz`i(&EKlPn3tqdR;G!`du-yq)PHaC zL0(lSPk|?w!F>SaKbIBjfsOmkm7GQ;aW5^uk>^Cc6d@?D_s4dgLOkZ$23Gxcp5Q&M zl1W{J7xR5`+aB*1`>rK=v8p~6%Nd*C4ybGK~}aMUNy!avJA=GAIm#{YCyVp zA6?LZj&ie7d>6@MB`^3*u9Box<5-m)Qa#vc*oq8U%`12S z*Hg~1cY-WVZ(BjOTXUa_rNQ5~8@Q9+STbxS0F6 zF4u}q8TSHdTRZJrn?an$#axY2Q^cVy9F(w;yA^8Fsi$nx8mi#xjNmEDsLZ~#9qFfR zDPw%avX!g7&Fm4`*SE{Vc(rEf92pJHOkH)u>TOwhU%s`J<@!z9tthyqhsDMVH`U0) zkkrWi)P5u9;kFNJ-kLXs81N`{H6|GhegtNw5zel{)C{h?KZkr;MUpvxRpw?0SR_grI zx!;K(#BEJ=J;6j28Fm3o;xAy065ok&*M<8NxKGw{@>b4!{o>LWpIoImXu3rzB5^??>2qy#U$FR~29j|LCrp}WoMWcGv--Iy zkFReQ`>&BZ@?R^DxPR?Pv$3gq^NpKy9Qo|}J(*a84yu)_4inp?M(&?lGY`9h#az3} zQf^&wQwjRg$Fu2sw@KO0DdyR7M;QY@h03M2T|$jx`tf?SzlPL zLS$j|45$$j+fcSayYX048GM;rATdVkx0F;x4#ro>bJ z2$V%C&2K`;t(wdyqIWkW$E@nap|xqA=8aqgJiXlXmymwc7~)8mRJlldJklEloYxOi>7 zst#LTtD@mSOAP!ztjdn$Et^h8eq<+~ylONRrF|?p%E!J+ZGd6j@8(AZ+OCKv!Cm3T z$vM6h8Sv;HEuuf zTMlH2!c#I`W~YN_2eC0DP%r$P&Ikhpf3DDKt22V9Qn>po`23ASW|#3RoX-Jew}Agx zTfCJ!$j?WG0$w&DnC!lgomQKq?U0wq91JZ3wfC#}Ec)G2ZeVt+VH?h7=BRBiT=j45 zJi(Xil1cnA^N1qwwbBOvtz#lIhv95lpK5&T-qlr}rQfj6TBEUY2MhWqz_aVm$xHk!KryLJAk-!Dn+i}d^ zfRw%VD^d=bc_Sk$OXz7?w-B+4&0x+lsSxjy?>T^YEamos@8;Z&^u_@z5XJu; z#7T{8{*+r%*((LR$9rz}g?WfM)KStFDaJ9FEry&V7!iK+QGs<@AfFMF8Qnt~r;%$! zX#OU86s_g-d-RxrXT_tNqQ@wX`Z#nT>3MWz=jBE5ym(zGz=el!))aR#o+g z%FrnPW%V!1EgU2DCK>mdNc>NH-&e0vCkE7plQl{Q>{ZDszv)dT27f`lwMdf4JG?Ps z@0=P|y|6(oB#nF(@aI`RF@*6X0aHDXQL#`IJbCOrE|IljKy3eCPq)8g?Xb5SFh2$o zD<4e({T?#t=iDY`PfaGojuM8B60%j|4-7OdM;tEH>78{SNRBBvcGNGS?Ll27&sM4F zsqsR`IwS~r{cOO1dh$MK=Ro|C-80`DOHtP+gB_V%WOUg~m=J{%gItg%%0dWJe62rH zLa!fRE9~@tm3f2sO*+JstcK-E22+ePB36ZfhgYD;!L=IX{*m?gOeX_Oi1L4A!gew$RK&B(y&SQZ-~rF!KnA zc`s!8IR)9gpNdleP2PzPK3%8G^{#3B6#E4y&Bsn2QsbN7%`<4&GdTJ2s!hP_t~?h$Cn9p_R>p-DWAa;t`2xFi8eiR{|^4W-POSy$}Ybt?}twB@;5V^SpiUVOM`$BN2K-m}@aQz3* zbCT01dC<{2{y*k_HWSaCq}NQNzy&WTFMkj&FR`Y)n-{oAVODJO1j+(GuvG?K z#{57}n4?0Y$miPQ`eCQ+V6e?R^hM2d9e@Nn%3FV2%oz}mxzfOR9p&AVBadOYyOE~1 zRl>h4t4A~ZWBEwPm(K>(rR;ux+;{NPB_>Q^gu)1X^4Js17)4oySS9l4_!hOVufwWY z537!fplA}=QK6BfTgoV=tF6_ z>R_JUTpj!mj?Z0ifRI%DGv#$1%usEuz?b^VaA>@sF%DPd;%c*z9*K;&D#9ws&?Qv> zaDchC(&~u0HR@etFh_qo#&PB$s)9_NC_j=-?C1nvDe&LZh>&ZE*y2KVMUF8ej>br*v~oa28ht zWSO3mQ(*fijr?GC$L)|%{_E+ zKPyjVw;;)mVHJJ>XxMK~&BR4o-^7ga66NbI{|&I+-&C@%L}h2gZMH{Atj(`SgUeeT z4a|Sz51&eR(_t7|{mX2o)DGZN1#yU(Id%Uk$#hF){^b+NpQ_8JZnMffiKm+Mbdk8L zKWGh@GlJ#^2X7!OHe(>wGA6L51{6Nbt0)yq2&j-(Nv8qmo0Je%l^GQhQA?Ok^vtbm z49pm546i(_(os1s+3tbR7EqtnDK*D`h+;Gh2P1<(jhR-E$qZ@rFdhOwRmHO=*0M+o zaQ9!3krkRe%FlJoYJG60KaaG0^8U#vK0}hGi|b^Ujz|9~0p`bR`B{St3Kh;6n`C(A zi|YPo1gk&;DHIe5Zofd95@d;_?1NCSdLdAR1rrGdBvQg>c*wbSM>#gnt_0H5CF>BV zJ}LCLEy`#Ri_KkB_Cp>bjH3JBQ0bsyn1y$8*GfeUc7ZI-NNU@JnSD87UTei@6Oj1% z;o%SPwpp0%kX8a|rK2DX48~4!AFNvbQ)#ZI#W0>mf|`G$VD-;43ZS7QKk;NnTW1ML z3p`wjegi^nRhfnWF?v<4yVCl(p(eNXKs@W)QQ12izlHaUYeWG2EFD23j) zp%gY6Nn~CK)rwO~2#%OwBD%&BSO99YjId8c=<=n^G|>8LQhCT2&Y*QmObVgXNvX<} zRIQ2_*Q6HcQtcH*lF7&n7{co$dIA)-bZ$*$5;Qg?=+6_#d6 z$+13&5N_>7_Od|jN)Fkq*xS)>vv=~9jgas3R(D50j~`j^XBl^l3U?1-q1z)^bSv<> zETahg(ijywp_8J;gw(QlsT-wHp_(S?2}DR4arniMzbNEj?+jT+0|F(A1f2<4C%JTB zk3St_lW&Y}iAmiV71cH|UEnec?i=6ypeQa_zAC$6_P+CKnEl{`5 zVxo$FV|1IH9);IF!7xcwtmt0JLH>r4upJq3bWOC^S8Fw)KnQ+_}yHbEKuJrF7-J^zmX zAMyWV{(pj-C;2qxptzPFsu_vw?fj!}XU24rFFi)4w!!-avOvDe6=~&~Y zU%iM78Upt)l;IKLz^8dU%2}7Rh-rsavV7A{=+9pCCLf;<5C~B@SAA}z-0q0gkT+Qq z(&gaMt- zMQs3@R@>#^=8U$g*GEn~cH#*e_yop1eZD4*Q6JvuJr~LCGFT?z7TRhj7X8&q($-=` z`X*xu*_3Axe5*#pqSu0iu)H)l3?is?+QtzU6a_KF{nF?{mkD=9SMql~_gOJ_r+6fP zkLMPP9(M_Mi<1-l`&A?gV%OB`d&E{N++0}_Vc<5mtXJ1sZ7Iv+`hK!7YZa%b)3J`f zcZ+_1Ze9M-W4x3eR!kJ23Npp;?i2vogn{QXC?JXmxw$6v0Za{`lGDz;D566d+3e%3(O1I?n2YJegH&vN8yrcH%;jRhnrc8mVZ568_dp__;}P$ay@^=3IP zvaN+kDs{(oDjKr51k=99SrXZ7Y_&FIm5SsuCA^b^!>$*j8I%#(orp|I!@aHQtzs0> z$ejj*EM{u$l&la6^-xekwu|yXjm(h=oqo#~i?$yR-~^PXa0T~Faz!mcfMUg6`7Tg> zrQ)kYyP7OmCv3RLN>ez07n%WN;LTDv{3wk95DKS50Yx1b@$MTb_rrG9fBM}O8l6iA zd#rV3ai4(Vy%J?+_v`|*umdU)?Q`Zf1DV!rIY`wh7c4u@rc}g;$~1YVOC9XjAUy<1ZG_Wz@%vAvW7o6#55Qnyz(2C%KdF{&3D};8Qo2n$p>Ze64|$y2i!e%&8awIbY1kLEQR!= zH$M3i(9L2Mq>u4Eb@l2lk^E`G%P!G!gre4!uOZqks|@alJWeVS2U;?huVp0*7i8HJ znx_1J1oDS%1XSFvABqQNdh*lrDIipiv~!%`q+vqHIX#e0|@kB zTt_jVd@xYfQ#9}f9?RunOq{1GOdjA(&>PCDw*jJ-b0dgRh<&e82`DrYqk8Y1-84n` zKi7HLqWAgKh;V^Nw=mw@Sxq?`it$=3gO?#Rju&LzrPq^f_~;mG*hb*snfH|tg9)6! zw0-28PQ$Bgg=AA0n~w}0cIJy!J5F>d`wIN=zl6uOo{-$~J$@BaDVV81@?(6TGpQXq zgI6|{Ei0!w$AKrR6AHP>z|%I#AyRBQ0oJP!}F+ z7Wo4Ap-WgRqORBG{ZyoY;;3wNQo?6s4oFJUsYprs3!yg~=@=U&)_1Ab&n~7m8JGJ# ztV@3v5^-2{%UfAO27KIGB%r%;y}E&eP>zOOb1EVv{2N5ryQmH4o0-*0(9mytzE9?m zFAZv`8~3)@8cNAmgco|tmj@}$J7hvL{kV>i}paDk^9RhJv2fqo?OVK%lRO&$XzXr*I&-{^$zyOPxWXt&3d3h1?Ld%h>XP57C z#*xAAAYCf>va-TQ!4+?*&@dm&6DPP9V7}Ft7qju~R2)_U(wuJzDT6NgcKl(|gPDcx z0u1&H^(1c_fGuSM*i5oqrLDA$Dai;5v2}6|z`-RdII*n)3L=_Dr;>mUwCR%CT4u>k zhEPiqHnXlc>$Blq1j~`!j8B1D0fsxkkVwLZ!lr)`u%Jho!|R>lU{dWNQy1*}{QCXi zg5Qd?o_Z?FR&6Z1w()6>sR-!bZTx>m<8yQjm?CSBBlblRypZLsf660yEv7hxNCP5` zi35t7EcKYtB#d#IbkMsDm_2JVf*<>u8~E^=J4N5>K=8f7P|G)L)T;=q z+I5+EB`-TqlWbWEJIjuV8dK#J%OZgLOj&kjbkBJWz3zb@777LhSmwo5Px9lGg-QXu zpQFCv!9tTVygMU#l-(iem|iV%YTVH=+JYP@XF3efYA8nXsCXBsV`*G?B+0*EN759= zLw_b_vjqM=#lCv#Q2s@T5GWKdP&;~cdu8R^`barDZ7~MTv841nCyq%lY+&069x=@W zEk+tI#DL*>>;m|AdO4Qw`~snShA#o{5e{h^kWNtGnp20@`AIRvG5mcOajln}_ce=f z4Ex!5?#}qp+|u|F_JQx5IG$S=KSFczax8fsOVVS{^Vst|);y0j&l5>{;(4BUo+p~; ziRSrUlD_vm-+P|#HP83Rvoy9&e`nmAYmXJuQV-@5=7$<58xQ4x0E0JpcPwAA{K@p(R0?B1 zgy*o;4XhqE#ANOq*Ty%zFc!y(iGW`kq$o>jN4{hx4xD-oJ}T>V-rw>hLP@riV~Vt^ zOkSBb0YW6M@Iq%rJ^W}>;1*QM*r9V%IZSgclImoqV)hyRu^l&S(Y~jDeaMz52QQ!R zsyg$YvIyA*1MENB3F>BDY|=GK=@VhTlXG805l$m`ls(*^PR7uUty&@+vGjIYuFo?G+arx`bHoVlRJG*3-Ng1 zK|b|4ZH~|~RU|b$5B{v$&ZZ{S2O}u2)n67MdXl5H?eFZ`n^dQg(w-~vr?DS~Fg%N7 zC-^8P{7y<1X2uJ`!@zlLjn**YQJ@~9o04)P)sFFMiqa08-kOXl1JH&&4su}0gFgGu zy3(52{d!d9;b+Dc$gFLIf-{ZX7<_EdB5fns7rU}fd5=->{i#Crjm^mX^Re&wlbxS! z?U%=?K0vJ#^*XOcZ7u_P*{U(>)Icl^lSGx4SN1lw(1Utfq8sX1it1dvHEspWd+3Qb)f4`V ziE3auh`1N`8r!esll=nSiy*p!iYr45Li0FU8h`vi z`<#XG5LQM_UhL}~_9{H6Oi+OL!6aZNi(BK{^;b({8$*PcQjvCNoJ-MMLof2OW7lVP zeJ<7FRRemFejyE`3I~-o$0728Czz$)IOrwxmsp*^CS9_PBb5EUl-tcceDqo>w$=F9 zz=&8vL@DZy>mWr-W5p~817w?S{&tW9h@YC?nRhngMMo_DWtu3}9y?Z9bIif=oa@`yAnYqy) zT30KpQ|`XTvP0|XAt5=gs+Ozn27_g890Tzz8&@GuQ)I-rf^qZH9K2FMh)VjhZeDscsz1C%Z;wJVs`14V9}qj$mc)5o&N8!OEnk6aeNT z=tQCKQQk%|nvPC0-&YtE1gWYxErzTFDJ)qb)_spsSZ3ZMRZ?XJ!!wKTwVsH5K`#wm zTwSNGNZaGdbTsI1|7(96A)w0t1Jnt&4Wwj0dS{F^bUB#zivyU70v$=PBtT$X_2_Go{zdl{)AC$C5BVPh85mF&gomo`8OaV^-|Af` zmKNn7>`A+N4Quum%<;n3RcLjA?SQ;?)FG*=#x3+;w=ho0ju=&sOnwe zj?zKsW+r(u2OwyW#`mOBL#ZJBKcUF)1QIW9UN{*j@E>sd1eC!Li;BWldPNP!V|dH0 z838TK2fVMvY5h#Tm4?eh;bW&nkKtM19PQkN^CaFas@2)X90G3bO@nw&w1_#H1H&S@sU&muCxVH?t)InAwHQbSzO~vz$+azSpM6pcdpeATBC_Z z242!@sdbYd$VO&C$l*J^95ZLBl|ShX6|ewgK%2jRqUYKDKuwVBAe;AvEOHsQOuZY7 zf)*zVzS+^MA$ct;=X$-Z8oN8PQ0RE|2<$NN*v}y@NZUlRY2ouQ06S{dC$0f%COdSU zF(!KY?r4Fwxi+bPuF54x2(3v(0+n(V#2b&PlpWdy{Nj)>8}en#6QGAl4DnW79<0l@ zU6NSJa48gUvBPgd=|K|md=VuH_^3s7y61^}?1)zG;xtI|=eG#mA?wRDEx2p>FQsiG zZYo~2p{6Q;(PS1xRbHRkMBF!mQN)W$JpEs`1dSMimkUU$zV^V}5JZ!WOpJ_n#j+;z2kcBzs8$wr!LEesHa*?@JfN2SbVH>={hLz%ThG|0<&(w5N+1o} zw;Kd{lwqas@S9P};3k!gkZ*OqM5iW_0DZ3&EvKy_U4K{sVL9|bdD(Il6MRH*)a-hS zMkhdjN%?2jK(e$LKzMgtpL_>RQI2dHT zp(0eMNbQdzy<`1Bxe#7rX<|+tmen?T@*>nrAM%l!($T+CxquRe->X)uWrV$F(z_!& z!uCYkkQ?2{3yP|+PQqYSFaVB$j3>~`+^}C>pBRMjWeAdk{tDTQaaUWVy0-dSnNM1Z z$iwKO@8LwPk7}J;t*h5ODcE4++R>*LrurBVC3SFNSgBAG@>8) z-U%-!r@Wl@dFl6f8So=0vFgT4njB^y@QJTbrns*BZcM~=QV#)wLh85$C3PowPKpGg_@ z?HfU>((QD`h#iM}emEoeVOt>+xBsB`sVBiK;Pw;*VU?7xZlqw=*e)@qNb-NXkvtiE z)8k+)Ly0iNitlgp%^{-&=+v0W6=zVDYm`Id!dfA$!YDSl8sh+jLO43(Beu3o#2jrUz?hL&oJ=Z#5p0g6#!CaGVLakj!SqSZS%6IEs6)g)us$1ZE3Kqf)EvEQa8lJ_*oPDu>El`7}sBy zmCuv132?Y%=z8Ps+$~71&EgAMT&b-t#8-?6UZ)!-s0DaiGhuZ4MYB<)8M?-q2V&sW zTdI_semKED-2NP6nIf?90w<^;4S~rTtYLVe8!DwO+MA+MXq#0N!VKowkg;e@0!y%l z(N|7YXn$hM=T>AEpOn=%g`MFu_yMpCi85=hIYzj42{i62&&++EPf=pou_ zq^*eiD#5%K16mQ*o(YOfr=((klRmmIp|8S0v(;_LygM0=%})xP^WpzD zG%jd>+z*t3>`n@WgV5`vzkVl=RYU~wEoH0=J%{ncWhQ;=!R_+z|133TiXufQt*x@8 z43=n0DDHEE98C+IdUkE~$q+rN9mrIE9OcI%Ur?8cyYTdHIIyJjZKG(GNcYtsqIDrf z%OXlN)VFJ?*pLqRUvN3xG7hA)V8JYN3BwoS~7u2g3$Yp8>Po7Y?W@yATwQA zi^;j5#db@8umZ_i&k8omU_p+3x%z-_l*yTbA6Ip4?dyB>`SPgvyA;bV(gI2hzJt9p zN$6pJRuXf_A^%EbfdFts@<605@P#r|%o(j;RB5P1ow8RB-w!{dzrExVc^9a8bsfJLQRdE3%pC zp@&edzRAl^vIdm>R?z%4%MeS2`3LW$O?Z`|TP4RP!C>AY)i>ShvU0(kP+6XC!goN~ zx1-Vo_eyvmOow4daDep@?!uS@Qk8S*!?2K%DihVQOk=l@8&^6YkdxWfkG4x!lS<=} zRB%hFa>MvSUa?W?%@8(N9hVbEY^gMNbt8_Y^ODdAH>C%Ov0D{g&n+ z=igbYj37}>rQfsWN>&&0d6MKwN&o_0Qz7h)FW{O0I8X&_MTxj7MvBs^(KAM^IxQFd z294ey^ghb#3G^Xbdrbv0S<1()Ym8MD9i3+rI|^8Guvn=C9f(Ar`mT-<`th%&oSiC~ zNG5Cz>{0V^c&M`1Q#yjyk{TWd1dZjPbe79n@SJX$z}e#j*!kzMAtmmbNY32Ryd31& zX)%*CX z?$TRO{;|KLDm_?6x_lNZ5^Zsd77$jUvk9*dVVj6RX!?*g~QGuuN>#w#Kq;0lL0N-^dw@-#qw6w$Xrb@??pKRMjjLdc15?Y zbZ*@Qbt7C=2U62%m0Gh1a>56Ja#o$jxKLsiS$!JV#fq`79SnK{0_ch`y33?RJ1(?* zG->3xxojeHG+(c=+Ar_bWFekxT^!ujSRmt2@SK?iW*=-rs&RW3DdS8LOh~$uXkUsC0HaO$fok*alA@;_z@pl5~YsJ z$WLz{23Fp)x^V89=M-uR1;h@gsERN_8cyChu2n43n!8(kUH2@xwwas1m598q7T}EzEh_A>^QIfE#xw*bz8Zy?k2&=+RZ@hjiV6+OJ{%SI%UBeJI*T_ zxO0cP3frvnBul=%L>ir}`GkrarSBxckTO=+F`LdMeOCL9xpZO*#Hqt(6mcJ^QoWD5 z_^d|SP4uHA9rD(rIAF7Oql^)^@6~zt5lypUa9>S%)?#~Ba^v$(e&cG>DA8bQ3C})} zW}xXuG0zin~$gb(Gnf71~MUdXyjaPM%#Ou-fM;D`~ixM3X~T z(!y&|ib^XSLaVu{Y+`0?1NZf?1YhTi-XKS?B$DtcGh%1d4`VCs0OE)Sb41-cv(B>` zfOeFX#@KATVoWu#*Z7bE2L|BW+cTSm-)m9@A91QV;HJfR@-+T?AxrTG%u;DzJut<& zhIK)TbY8l3mFx=^8r6|Cq9hH5+@e?qq4h|IVV>!QPI`Q@V$VEI!MHcMX0s5Un@V58 zZ00RguI!yI^*B&_jF<4xq%_Xg1%eNGYauBf4o8v2K-UIVSRRIq)VHbd`|RQyfk%(F z{o9raXCrRjr#xaXhiQ$E?f^P?SU)yINksVZ$Z%Ft+vVs{Xseg9cN>>jX)*}`x}Ke$ zYFS{OCp1o}Nz2-tA8z0@a3napPm?syY*_AukT1GuP=vYXY7a2zYhABShtsmY3hqSt zg-&2*d5Igjo(Auax~4Z=(%8y+t1b;bbWO^KgI%5Lgyar_J_*YzkiPxwdbe*yfTeaZ zEDG^`0)2>6i^33flq%2p>dD~)s&nkN_fu|HXJ}??d4ld%;69MYr4YKTEg&{(tb2Qk zFdedMpxES#>6qP=R9y6~xX7YeGSAPwGW9mvRFR&pgdnzP$)C;g3nc8tSByXmYtAYU zO#o#~T$Isctzk(eHkZ}UMLuxEo*VPmre`SA_4-$o`jL>@hslyY?dSmm(3#L_Q9H%I zT>!`JP(^jWS-Y<~A4Z%YseOEuARO5;8F$l~`;sjB6^GMFZ3n}~!`sD4ap@sBH%U=9 zmP7((Z86L#AUrv~^RJBLNPIJ9{fZ~Mh7<$sZV8LzF)T2>omjs6vnmI)C^b$I?p5yu zabukNvCx&%D{Q6tj=SVw^k7hW;8I$w}H$xm~#SG7CrjfJ@&y*bj zjAokq_ISzqmf$V#rZHgy-C~lW^{kRkF?!Jd_ELBnbmMfHiV>0s5&RhT>PRFk50D`- z%&AE1}486U*uVaJAOn zH_VIR(!Oj$LRaWEb-xZ*(Nxhub%Rw1ltnqbcHc$v*hud*|I;(}!eu@>QAy9yAL+c&5`9vpS z-qpBcD&K(bu2Q!|*iN~f@)q-y;C;M6&f>VpJE zjvr?T-5KccGd~u45ZKur9NOkEoNIAWv_esGSk$J#&UiY3@%MFDJL%a-CD<)s+p2e| z9Sl&!EoeO57h$Fi}+uoAv^Lo`#Oi!CIJ%3-)yGU$)&$P}l-6Ksvk zCX#j7j+sU9^GOA||N7jd7Fe|A0o}E<(x8d?#)!Z7%D4ZKg`&MT=JB4IJgpm{0g-xY zvj^G7Y`jC4GUmWYI*H0B=E!9z0p3&! zZOyvLN<*InYeYRm*mTymLWS8bVPv&&$(sc%K?XM-69A#vBNgb=_V_m(;t)z zBDR>}OgXiqJ2rQYBb}X0h)PQu;o|6IbkEq`a7Y!7IVh&>p>zA{Qg2*M0|7zMYk)CV zb8=y0cCW^U?`L|e_=oMo0e4f|z3tK9a=ZRnetYu=+n48q(YAD=?X2AH4bkte@$r7U zy)zkX%VvFhGMFO1>vnZ6IoNBgad!#j3|yx2ZN{Ew2}cE90lV!#FgDR(z)0%~Hk{$D z{~{IOhw)1`9LfYhB=z|caV5}5?__1fz_1V<^EPp6)A4)Q7@|kZe)Uz4IN zyQRDxe~>o!>5`)yWMST1pskU#T|ijaH0z`N8f={uDj$~K@GH_DvF6Qegq|;I$r}45 zBz`T4)1iV_OKrx|8BV6v_T^yvLs9*(EpLwLI|xt0qd$)|W^(FSaC}MjHrJXJO~SmZ zhlPp2?JFsGJ3bhkatlm9@c9yUV2k*V&{w#IksMEdX*!~1(glzSVZhP_tEaQ%m%wAJ zT_~v}YM059qKyOA(sp9qgxTe*$Ufv~X`1RvD0)A)8w59@YKmnl2kr)vVg$s+l}G8R(by)$+E zhF~V59Yj8)2+0?u!NJLo2Yn9+wrV_KpZ4`5Q^|qbtKTh$P?--0gRy)QR3MC{uYm|A zh&0v4kTqWpWlyqEVkHdU<|GbOr_2lK9ERE5O*wh4HRDl|0jI4bA^_P-n?=FQPdFnM za(jdcUzh(f`6FhI4B)z3Uo16r_(GXi;~(Tjjbzb(UR096jidY&2SWGoU(F#>f0U)t z7VFJ2tkf4uzS%{am%DlmdY_FtuOrxcUC2+_WQobiyIW+((j1gUqle{E7lV$5RjL)3 zuR|6}C`jcy#6`R3O8MJR(FV+kXukYyf+kS(j(d8Y#rn8gPEMu4CZ`tuRw%AXn;;Ba z1OW=m^7It{X~jx3uqH2uIuZp`APa%L{d8MiVbudbJ65rdLqvBr=ATqtiu5yi(CYM@ zt073O`7#bEi2!GSDf?sLuC)*Aa@jhE8KJF7!{G}WWhny%aaU@c4Kf&Z^bt@eOnYpSN%hmT7eNhHqDVDCT9PTz7s>3}t@K5! z>_4q03eg*U3JDcS&SPDv2O&V*jp8y?Nv*-Xyi>YObR~w>Ayq#`aeH zDBXTzFo7Fn5C-;aI`kW8)ePBMX~N3ut9WPEW2?w1{KA$>3)7=AE>^V$fXdTCN{nLs zC@Q^&`8Tms)F8?iDJWTjZvQBOZ?s zlL!N3LYx~i_VSj%;0-nCXn8>E2T(B*?%lG&=DnJ@>IY#BFbK$}KG6knDwRf_sQLpN z48}tJ{oKDpI5`cH?P9VG(O|5x{*tUKF)I+we~&6c@RTL%hCRu?09_A8%V>+xDBXlW znu)uPRvFD6n@VFRiR6rK1m@GJS2yF^DsR`jv{kMXbw?QsQq82XyZVuN-OGkm!760q z(9H<455Iv`r-8ddQ(dXx^z4k_Hf@pvMY@qE)$KhlzH9-Fm;rao>52Sudg5?ULK1)q z1Wf}-s8Usl=jT%X^dtalApBL74=s0{p6G+1D0^}U83BjoP{Y(P;wgWL z(>NsM>bNmI(G`eX4YEea3P?KgghufT6PiFl_{|w`2jx+*k3?+Ivoq-~(|q5c_1H}F zB6!FD$IL}jiFTPNvE(PCZ}Y4?{Z>Ot%OVu$MnC!Kh)*}R@o6&kjm`=nUCkVV{#ceu zwHZ!ImA|x@NC^aFVyw|Erv%9g;F->Qz&+y)`xdCC<%Qh$vN!hNiREP`LlWIrB=JiA zuBCmhb7?GU)uem!>Mn?7^xj`nS~aE?Wj2b4n$cEXJGwD`wo3-B4Tpgy{%f-|KypdB zQW_!`?AGD-hNQksmsnI7Rag8TzQf?QyMPhKi~7fw1&`FCh5OWAbD z`VjvUV2gF|Gv2X_m3k|z>XjzCrfgD)0v*BDXZ0{;i z*G`=T*-4O{2H9zl^@FT`jc1gdcN72B3-3;KDvvYhVQgBe7?OD+&!t2hq*kiI>G=qu zo8POZc)l78f50z?P~QockL7{oe?VUl*(8@+$^ZS~w0tCw=Fx2Q!-X9R{>vwNAOHV! zG3tNYLr2N_-)7os-KwsYZB!n_yjcb1Y*)!(*1KNk^)OUrQ@#ly?F->g_X(b${@ana zl}6>N-FB7eb(OIZb^#0?=v-!|rRrRtj|3f`ga{U~tHSKppxv7yvE?sF8>1G51gPmk zMVsdqFRFN)hoWxo3DtF`+(EpW?UMnclMVW+@{?a|pK{#5^vMAUrDo+Hzq9KjyFNx0 zY2V(%vD6BffktxXlQbcaJHZJykk5K(_`qq5=fK-8R`}u)>I$_MYmwg@y)4dHXrcNu zAstHRPL)Y6s=^g?PHC#v=BcG?;Xii3m@Po7!g{H)L!1Q=r6$P|O1kBO_Si;cYICEo zroU7DI=5L3Plkp>9L;G&T1{?9?^aS?TmA+AvxYE+9xar;$2+nBSgwkl!{@uZwtig~ z7TXoGUtt$s6d4AzC0tS1vJnRV(5MOni&%C_^R=rYB4#dC7F?hS-wrA{k%0~coL-zD!GbRpVF1&x0#_I>`(hK9pvj zwIHmCB=J8>zI|Sgq;uhJw8`=fZW}y8Bf+_AqblC?WLAI{b>KT2DTT@fc}f>aA!Zw3 z*c)}e#BUh;sEMm$*DRBCln*q-!9bb}BW>Y`9aUlA=v6^Se^%;lRlLK$W0d*@_E(ogFy7UgU5Zw8>EK@ralg|fL}32S!-R}sRLmC{<{y)*jVkaqhM6ku@c zvXDMK#|7JpHZLBjyo%AoyH#BwtZ9mJ(KY(QP;XbrYv6SLSOrOVo@EL^a%k8L?CuDr zud4CTU+F;~v+1uw@Q5w4c)LC>+Co|7Nj2Y7Ju1yIm1Pf9R_#jTqACD|Fxbd1RSdu- z+m^~gkF&8$4nmE}1EjU9B>Yvg@}n`Sos*oMS0ZajFo~eFQp{p!sWM=bjuAQ9kyuO6=UJfJ`Q}+UUkmA?0g7{rRAKRUVX7^F0 zhkV_XgD-WJp7^Dy@U&hfufc3|B3`S)fuI|4B_abFlW`m)zyhFXN~F)86iRxQqsoB4 zW~UPg)TQ!&qz1-apw{SE$BuBX&dUJCU=i|*>z{kn0!n4C`7sR~c~e)Ta$#1S7xr)be<+oe|GIP)$(5{G=XG~bCBPM%)hw`F{SSl-}RXIcypgk=T@iR{pH*8d;sH`v*O!RnJK68j_*$s z>~tM}Oer#*0ab5JM}|AvpIa7MW*%4AED2j&!BRoqev#+JXlGaY&2%)Nh7_9k5(fTr zO&9e+BGPaLqx?WZb?4K~RMxUk&;ne2K^VAMPl4sr!GBpK=zxTLRq6A>bo6nA6Q(sI zw)={Vf{?r}G91;#=}4O5BOWxDwYIz|GX~xg0S+fK^`RdIE231+o%~8F!Ml(rxdmic zgr7htO_F9YN*~0e8I;oXm=aE+|0T*kiBy{WF5D%Ng?wM7vYU9N_hWJ$u~ZtA>*5u? z!eLg2g0>1&Z!fP%k5@$+H+BmEkr|?hOM>a^)%wZhBx66hgVW&YI2`IOP3^2`C2`8o zSqB2?Dvhbn-}BQkRG0X#$6S(y8py6*gWh}DcpDM6l=TC{JRC%NwKUXLY7a zJ?t&Bw-kEHS1OVhaq36jWomGs$!@I~%%4=8ApW&f!jqXAc8?r@W3!?EB)gCg17e`pinQOKpx714J`h^;{Yf>F4hVs4 z+FC{+*D7iDeW@!XO-eWrcLEu+$~gCt5~E1g76_#VWggQ25`E&|2)~Bv zx5<}-D-^M&3=YFF{UZOYDCC0E`+E$j5G_IkL>^pob4;MH9INn>r%5H6hG?eY4bD#i zb-ggH&c6Ap)UG;v%qd&HJ@8Lv`0o>bS@^%k)9od&CospG${@iY5}#enEnMt8d-hx| zR5i6P)RRHIJ}zWAjAh9q**8aeCnh|85)&Rj*_oTafL?0;V*mR2+?|Ww++Ep>&uz-T zKlXGO3vr<48jzk~ztJM49#2iuoCH-Y?FN(%(5D)6USTQ}%9GhohrR#$FU@|co4ysL zVJ$f&vd-F!U{_v-iKvxf6;IXKHu?l@K+2&YS=;cIXEgR$4kWX$C`-E>)kjmH&UqyL zgpbeufwL#5%!@bITYC6GHgthkQax6^Ab_iB zg=T%FF!Ppm?~HG9Iykc38T-Igy^mG{>E$n8=S9g!G+xJ=nd77LcS3WpwdELmG8>E%(N~-=OKfpzR~wOPCV27F}>> z8tD_|E?f`^eB(kFEzy;I7hiZSYErkxmZ*G*JhVEr_>In*5#qwd5X1Q51=iBCEz#?r zzLVdMdm>gu(WQ%W%>MG(<=mZ1X^_jF%p=SAFY~{FS}cL3CD~=~pFJl@{CbV#5u?597%fc%5f0}~ueNxp$g@&>v_=&npuSNdV$esZi0)-QT)puj zSbazN@|#DG|NLEzdsO2d*SNn(151@&jy%B0J+d>7_Sbl}>Reqr_=DHn5E2U*?4euB zU`T+#&lJdHrdqmlIh6NJ#1;H!qpff$Hn&j~TRIdRSag65<7#UYt#*v+q6NCffy_~1m6LX3*>WWD+oK<)C+qpV-VD2Y zoSw;Wd%~Vj$){SK&3$$?cjrom$gA(hLOc@U5s1e^JO=SZh$rBlfcswl{yaB-wbTDq zL;%da;#vIS|IgZYz(-YOjo*9UyctRwC@N(VaEtnFUI0X&`< z|FCbd&4-@;&VJea!0Mq=FZ_p&_^pnpermnqf9PQdeCT1?sI>X1FaB6x{4lzHzm}b? zfeq0o<{CVH{Mfti9{T{8;C}cSJa;a5rQ1q+S(m#jaZGBU`)+(NDi&n<`2uF6lhld$z4e}1oflatVAA}1I|CdT zfPd^>ESL-by{yLq?|n1mn(cyI#uqZNa4<_+cz~4sQyVg*S({gtxZrY1!9uu%)`CrsYt}(U$s_V=av>O)YsXi&_@9ENNNV zvaBV)CD2mPQh2_(Zt(f$qvxAz&NtVdZ$84tg|~&v!`s78hIfQR;fnCi@UHOg@SgDA z@V@Z=aAmkEd?0)8&OT|phoa>NAmEqgemZe ztUeH}u0el*3HU@R7fD#Rg<#vJO&D2-p2BnW8wo~BR$=DCj^bUBnsN*(iXN&X*bzF6 zuiEzJ_Z-3kRBM1*bdkIDl zR}k!2LiN-}cC41LlA2l@J=i2+^dvb{&4YJ`o^1GN$!+{$d{j;@F-I}kmz zyRGmjgdSaisWG&pdQr4&S4ZO-3|)h5d2ntkn1XeILQji}3+C8?qy|TQmvY0u35YV=&DzbeE>-EFnefyAl_mxW| z{A7Inimvz{7TaFc)V6CmG-JiG$PVn!isEzi`v_u}6@bwKNn+?k5(C(_eIvp4rURIy zxxH%XwScRYFi7x;Y&(D+n2qp>RBwtN#jdZk3SL=fP@Fi#t6jvRsY(95%8w9N>keyyr(7rf?uuu}(nnIdB06QuWd23dj zYgj}OiA9O5Sp)O7ZNnZ6s*<&@sf{#ak!yEFRzE3W{Zi=C+G9YNv55~(iQOkww5>mY z@Q56RCyq$ett*IB-vIFR*psi_DB-GfpaVZFu$d29Tk0E-XM(CSOLKvb* z^?n(;W`%_Hh_oF$qeseRQ_xvOux(8~!S=&75;i09cI=ky17Ix<{Ej{68rBhvtimpZ z3L`6m1lx-iOIVBCA_OeC3XmJZ!gei^6LQzmNIlMr{hOmpF>~c2k{t+}>Ig;&UjS(y z0j$}Mun-7L!uos*)=AjZNKg_5!18*88)bc!8{0$82+M%|S+G{Z$|izxej>!qRc?-K zZjg{Dsd972k#dAj%5kb}mK0Ul+}@1XuF3~_0r)(yx_$Y<_9{g6!PSz=4^~C%k?Ic~ zwEPF<96NYWHmSM>o2*1?cD0oi%GzoJDBMNlP?4;qZo6bib$exe-CkK_U9FtHb+xj{ zBS&O(N80icyGLsxfkJ|^oTD}E2kM~8qct7nhe?1&jv_XWHp?a+ZH_EkA|cJ~ zqgHQ^Hp?d0)BI9EvcQy!EPn!n*0nd{fYsNL{E9RbMK%{9JS+zcV5J3V;Ev^?93yyO z5yAH6GAQ!cwn*h+BuLANG-)~8HsA;y+ZJ7geQ4Y-$+7W(B)g_HvW-n^ki#l~fO8Ey zfGJ>59n3`uWs*8cB+c7o8=4y^JerqBMFEU%U5{{c`wHOu(M7wXLC7CnvQ4I2RzT{P>IMnrYagh5Kaw!e$ztXwgRLFWQL2dResSV03@s`C}{EHXT7e z5~y!mb)ciTvSWJ*1V$GFm#k`E(%4a!*Iu!xBd`+qXnSQ-WCzF-&;{Dp0OyOY-cQ67 zU7r`-vbntoYu!*9T~&avqHWm<)&t~8bY*3vXj^+@BT!FTS{lR!1G0s|1LuyGOW0US zkjNb%As=BdU&6gdnJrqpEn2goy(&Lauops$w{@&9hsujXz-c1|SU_W-2!2{+@gmaUiQF54_|RJI4u*Vb5xLHp#0Zr&9= zRDp26OuD&=cpE@s+aTfEi#8*C5+#+0Zmp5&w(W`5Rzs27j-d=H!;vUoO!5%a!pJ6= zqtWe)WVg02lUcSeBhD7xzEk=`8#^{(krnweAHaP$6#FZHX%dVcER^ubGJt=d5BH+tX*i7|p${=q`x6#z-XL=SEt?Fr$5CWKo_1wcr{a&RlLd4TQ9S4)U< zAE2xcVDT;qOQ@W~vcBp9iQQ_@vG+taQ;^lgY9da6HN<8B$|?b_lrVa5n}i@~5y~oS z3T6J94K$CVH3x{7Ae7-&7i%}k@@qq~yhE!xA!-Z&Wx0n+kL-nd)NrJDfVl`n5 zVM9H_21o^PXC7I8Z9A7o_CJZbV;NXgZ96O4HU_}pfCPstB);mmqY5wD8dj2u($)|n z5<-YlqpjhPY&jK*8<~cFOUWVuS}}IV%=N)_}BXUn!MkfHcJIE1x9QsC`vF>EG?E4nmOtSFeuNV7@ggNoKUK z36a=tU%R)xr~tJu+7S5(OZH z3KW2CTSM2f1nB^28ddu26cYe(ID<(WgKq;T3ZLN8woR0`8Les2QM!Tn zG+>1$Psc_%sXI0;qiN8wDIa^nJ2o8#&*mqH!vG}hhF~4SQki&jsq}AIDMxAR;m9%^ z&GLFlDCPCUc{(aeNgMCjy${uXw7bCB779|3l^dK5n4lh!vA2YD8Zez?Yme>#!&bs- zj6Zq+r4{dJz(fs8Bl!gqQY!#f?FnnMw@0-Y$bM$2yqW4_kPsJd9S)#@V zCy57~>@h0XT$b@Y+lt8yvw;0s)~;)s#x&_R*k~K;4As~zSlwNip_OGqi@bGrhXVoO zpPRfYSK|Zwu#s407W*wG39)QpWo3&6hM303>8y%dMb`3>mx+Z=*2JkYmyvxFv`{Q? zCiBaZ*h`!;i?~$ba~cZ*K6Vy673c*$TkiF%uyJk|7h zjjRGg3_LGpIUfxKGQ6t-?!dfc@nFlO1Rd0C)Gq8=PZU}sSDg)TeI3ZIwlr&I^5Vr08&>02T&eF58! zknN^#9eq#I_f-B1%1o#YXl0|KJp%;?^EH7qIH`=JCa`Ie9^T+^#97oOk4Sk0bX$CzoNx^qJQK~g!Vz%pqxH1zmd`L)2 z2EpoMdDvr@xVlE%38a~pRqOS7L)s&H8c({+5D)U7C-8n(vWOfz%JG?W2ZHj4t+bKf zYnp72kWr7A{R6C2hHE|;@ZioY)*>U*l55j6eq9pF!x2f$hTI z4m&PquP@6q4Nd>#9+okC(8XR5va&sjgl}2?kOdD~u*rfbx|mbC zhe+@X39geslb}C|AL;g@+slv51Mnw)VmJW5^2vk~!@n90&IfGhJTiwok7CkCWzsw@ z)2`rMiSv2))N5%>)^eGCgO$F#Tl!6xq~8HkVB0*9V#4nVKE^gH%CUJ(^Pa-Y#}!^b z(vfPW^L|MRuQpC5>I&OAPW39{Vy^nS*I1zI;?GW%sazGThGu$`!vAsy%oLqfD*ST~ zxppI!g6KM!s~R|Vz<~b7)f2$jLt3yp65nh>%kF6rw^R1LgcwO%yMLU6&4(CGftQT*kXmRn*x~| z1>c+HaD5V(meT)EY=goP1IF}$z}Q5IH|BXl@V`M}29Wt>X~OSJXI~><2|Qx_6MPHV z97Ji3oA*r;$-HlZnByE`C}PQki}vAOMS0o$+HNRp{U~*uq3{bC7r|$HZstY1Ur~#_ z7wuVGsOoRouVOPtjCFx{!a;%tw+@?XLZ<1D>Y#MQ226t-jx0?Pf4}RWJPXRM8GiLA z^Bz@M|73*+-Am)ya2n9h^naJS_6wDPaIlgWs2tFViV#evcD&r}3#!hol zFy_s<|2EClkY*$Q?@Ac}DQYiB_XMHj2vsrJ>f`C#s$F^tIvvV+rypj)W;{1~wWGMXQ38XRm zG4wGCG@*OvbH3nyl>x(kZn#vhJL_OSyQBtoUAOYt4Oq-*D#iyo5Bh$N#QZ%7>z4$t zza895A9tmTuNbIjMT+f{(eID@X7)))pQVNQ(7r>p0DQB7M?aVIHP?Vkh0yrZ3a0{Op*j#P$lUj@hqhdi zDeiXiUnar$Q+$*=8wGjKD(nn*2aq3;PBfBAZcGi>my z5`7B$CVR0BX31Am{}Jaw&Ziqi=4kfPk7{0unW0teBW~*&dV_t+m5o#D=6wOFwboF` z2n5aIz$G6Kex?}#(7F{-oC)&;7zmV_tSFyNQPci_+?Yj1ZHcc9gtX3FC1IFJ9C{Pb zgLjIDHi)}i*gP)mOalu4UjZ>7)y_3f?cFMjOd4WDRaBd}&B-F9KvuA~i5b6Z`A(Cs zmA(Nxse1HXP2Ywe;UbCl>iIF)Xiw{fynq8BT zFAOpAHE}ESP=iJrZy2$@2NdP~J0N<>EhLo`h&JX?D&yQw0nz(BIC$T_hA&OjKkj7J zKPI6VU9#O>WT_Pz>@Da;Dj$?&7)8)bMK&`dN8HlAnc)AmY^K+0V+abwHUc#UG_k;S zi{Uqcn)$VTcB35CjD@mkhyNSUsIu1$kEn$Pm)iKV(@D&3wef9pXcDjN3|rS3_MRd( zr+<|0aI$lX4P8-B2a0D+D$xh#qOI_$!uMnEQ1t%*4eyYNrLgTYL8YoSOb`5;Yzs~O zZJfV`O3fBa>(~KY=dN!4&0K2mm`L~1Psker8^3bgvo}IevLd$Lp~i4n>n=75HIy9} zJZiFPQ&fN&w}D)+831f{HFSy3xYTEWC_DWNRR(Gn)|7*B zMFyf}>_C}zqAXMXuvOHPnY?lw>X-c48^3{R>A-d>Dojq(RP5LX$m&pfK(N7YNCHm} zy90XHoy5qYE6(2dd=?4!_eY#g^nxP6 z#(`ukR(Si|Hxe!5^MXJNx$!ZVNOIvSz_Tn>T#+hXV5!KdL2}|uS*4&19fuq*U}KG= zzKVNpa9Y6Qm7UjW(~^;?kUsKl9REchm6N+DzRR5-4;rOaUiUI`RW``V$j3_^&1U%O7DGRom=$8LlF^FH4Wbh%00MI0R>JC&gd-Kn79SJK`Pz<=?XQzl? zZK3aam8>@N4`6ASUiimWUp(yJ zVMlOWeJ`*oN`8dC9rQg-Szjdg1^PZs-`DB;4t+yCs4qHO=}_vXe>S~oECjybu(XvA zdypcov)6l}QVp$fSjk%*%Ko{V(|4oBUC~R~Iq7}xu1TmTyxCLioOB);#WxP+{DhB3 z6RL`#{m!9=b_$gDfA%D?(Ua7j6B2x<@=wP@XxIUI)^{Uh9gAgLz^eO+UVJB1!9MFj z!R0uY*2va(;Q0fNu;X?0Al6jyhg_pFrwigfQBI2G>Br<$%D+a_5X*~rR z+ivGijYq30JQcJh5uNa|iPDEV`wnD#Z2Y@fn5<$TtF`kz*emV(sh~gbB{M*qE!0?} z4Ya^I6lxlK-p5^GGiL7FhTFtV-2AhGr z>>(FUmRlr$GuQzMYB{NW;>t|%C#MFv-I`IH6;Rm4aZd_e%VIARJFF72%c5_lxZmmh zqao&>Kl-Tna}8Tc>d+}l)lT0}WLmfAmnrUbf^`_qy=d3G1)iYK#8nFRk!w5GSfP+p zEZfb_3jU!BSr6q*b^Afz3xrCOQqNltSV`>0RUO*dOdt9M0i(9$T|tyyfn(lww| zIt-}cm;X#ZTTYn`-2>LTMP=`EUOf`f9Aw{ee)cX@2JRPoXV-xip@lqJ8Y|{v=UmW% z04ciW1=~c_-;OE~47r6IogM8>9X{5Z@5S|<0%)xWPChXbiR2~1%PT^v3}7sfif~Fu zl_BPT(OR1%!T|N9L5SBToXsZv!NZPQYnD=wfn{(9)o1eHWL*5saf^qX-i4;{<_+enFNJu+CalM$cExy*Q)fc)$wfL`A55j++?la*(4E5d#s&0bARx-_#eP6bs zyzJQ$4|Z_JTm&qXz9rt&;omqC*PwZrVtkIuO&{1brmpL5U0e=IIVd!CB?a|bMZ`N* zMP#LlA?I826%EJ`x1o=aIJ>P zMS^{9S3b-AYSv3*fTI0C>u+Z77aFc8Fx}3k4`jzk27N@rZP-99#QtU{NoiPVy*e_C zQr;;qz{ccJKozLii6W5?N`Qe0DeS#*papPepXHGHkeyUbxk4RqvnDQit;wF{Na9X^ zXo1^mpq7P;dB~ZH0XIOaVsi#EI?a%ruJ%5a4Yac~d>-aG+&`M^68#k@GwW3_q9giXuv!^)=Q9DV zMRDa7y`7+Y-Xa#HE)WanvwaG&Fi29QSRERt_n!@l7vNdf1E$+#Cun|pAtK`NU>gI*=|wSeT?EwtCXeAD zq3W^SCK*pmka$=XnoDj?0|7MEL@9LVFw=-tp;%RLszTiFlIELH5fTY=Q9ZXSP_4jf z_0c!U6-O2HR4CKw)_|oy6XX1W0-e2ThjAmXQ@gppS-|p9p_zB{AT|!?`xqDdK=Ak7 z$lIPEUeHWy@vKE6r%n1udYoYw6}kDuzC{1`tjK2hSJ=q^okQ*(E$YGdk8n7>=IgAG zoRGqTLCBdiRJ%1xHn&Jimdpqrmp z)q*j9pH-Ot!mMv_xl`%2_|DaiPZhRf<~oSiO{M3l>oKLymL>81b4l#4n4uzDoA1<8 zv=m$ue^%jd0zC$OK9C4xWD7L1vqbM2@vswe;L0G3W+>Ut*ybdG8XT3hYlKyjK4>WX z3g2AzVQ(p}{ZM6jPms&YCj%Mz`JhA{)am|7rltqdv~;%9##^%~9s5@=j+S0>*zm)U z14rP$Of;`o8F7aJV1r$rXlEFPyvEK`RL=gE0Q%m?qft!=BSkIh1%rBE?!mcebSI)Q zVbrGwyk5sw@M5Cy?e%XCEfuGPJ=;6N$leTQeYAT^o&SKb(D-NIK<@ zqPoB7w*p64`kmU}u5R zv}%#Y)+C}zuhW+AibSHx9f|DUH~HQFd6U0NluF~jDe3D3s_m6TOMeukKmMrP{<5$F z*|yIuG<<5o#TX1c>!PijAmW$xQEVuLVsjn^6PG;2GKy;hnpo%pYLhEYhS$!t03b)v z0(Mc`e9QkhSm7tYFs}`d`n6;u$(Q8ewM(qkp>W_-$|d>Kl4&LJwM)bT7x6U}MkvtQ zYMkn{Bq0Y_ouYa;=!OZJJ2|ih#t{fS7%Wa^RlSj&7M>}*T45i%fDFQ-pVI)Eh-9CP zDGh)_j(zn$DE{P=rCVdDf zF@p_7?3=CXgGHh%bX*55yx8xr@Qcgy#Y`vrz6T5q$cLm%@t_kpRqYJ!?9KZpvL|}V zh`3A;+t8E%#QE5%9=3H;_Rp=H`xe*<-a;{8uE+)Q2kB{zx4rv#>jsGW->6(mZ-x2Q zL#&&E*>v^-Rq70~m+b1A3@q^A+-K3cNhuf>PMIkF!ShAQW6oRk3h^G#5l=qmLR?f- z7>5sm%pYPH6}kyU^OS@;jj3RgP5jg_0=19om<-aCQ*{_3W4>1xkgHBt4r zi_)fdW}{DbI9(4U+wFm=TC&oElqb-m^F3-0ziNka`{!W0(k){dEl6GLek@0P!p^e~ z638HLwi7~(teXaCAc`SuBMaEX-U+DbYrye0f=CuSC!=?xJYS&WLZ_7ixF)1wc{VEv z#Qm$c?a26@lPNw`xH83fCk%_NJxd)5qw^fF3LQ70RGS#?6t{seRDdkA1IQ|#SNTvQ z4PCr%k_OXbo+kP_Rld_>Qy0yCH~#n#m=0tNtWO8N7Ve|!d~o7ZSt;zWO+hM0)z;uc z`k1V)n`F8+(Wltons74FYk+Lhw4I!*b}%+z_S>%kO-ag44?EY};`+Ev5va}p&F-Uk z@!c$DOL$`n3K;0mKUk^=KAsBNQPsF&F;TNt3%y=Rcz|!OqI@=PqmYY2My+^ohqxSh z4=8RS!vl5NOha-;kid9A2BuDLmr2uiH`p3JFHECQ(@p&6NjHPI3VFl87-0N#NFFE< z59OdBIiTu*nzyU`46B;jKi&t7&@J z;96hd=c#x|fI>dusd2ZMii+3<`FuK#cteW9E==FfK@64?B&8z5q<;OjgiaL?@8WL@E>Z6VNRZa*}~gG>f;oAt)D$ z`0Ed}9wRHpDLs-?{tFkoeh)hOkK{gUx3O*u`=&9?oWkn505CI;wAXvo(=0b};=2$OC3E3?8b9bQQD-II`R|?p9QsZCgR%apaR_Ru&(iv8r z6|oY2L(BW4wV@i@&&7#cS~|F|GpA968x1-ulKBl&_pseuwr`Sb6=(t33g4e)2McoN zWU@Gs7pBcL^mG{HEVhn=5r>6w6zZEhn_NOoUJ$D*RhJnJ!}MsnJB|HLHhDQETWM{( zEVs5<)>_*xF@F)I%Em;gy4M@@!vBERD}1TLGKjj2cD%RF#Q80rs+R|0!QUg!p{iGJ(oZz_06O1z@^6=8nfO2i74wd*gNv z1}Ee=ooJexrCsXlGeA4EIo`@z8Q(UT+Z0>bgpcCGiv9VlE%AY%q5`wGc%>Hb8@asy zWtM$uL#CxVSS1}XQ*7VO+Rg(|txdPvKyZ9M?k|a^2W*#1nHQ~>*xYs-F1sjLiSXyB z%5PwruHpZ7V5i7|&Bjv-xZZU;s%cJ`mLzj^_8^YV!*aYIl*79~j<)4{02BPd+G1m- zz*9UBGM&GIYjf-#jGikl=8#M@*)7T|!`Sg*Hu20b+*q;Bm%3$H?pW@a{}Qm6j#4;9 z_2Vw_3Y)L90G_}24s?96AA(-TpcWy%oPBW|oe0@5Wt)hJFc{A-W^WUr0XL}v<+P#Y z8i5kc%ljq0nT9JBuhZ&l2+ZNWte7gA>opbrMs}scC<3GP<+)EgbiEYJ<1OQMJG=$R zTtU-fns29d4rzte8s~9Z=JC39_5oMEn$6xBVRO7cO7=FCr3hU0@!%1!ZDL~Zd#_x) z^nr{8v-T@&hI^vILSwhYLmx1zYn&DAL+kgufb!9Z&t0i1x}gCsIe%1|#mEclmr#KDwR1CcY3`R{T5ZWb<0)X6ne><*r%Kyy$Bf>+Rc zezXkG^l83ab|+snov3CulT2=>xpxAp`5*>P46Ee0fLQ1rh=*Wyn%zP%EElufZ<9Gb zm~u%T&A7GD4Z8hwcDY=_a`I>JaM#cJ1GX9_?B!lJ;$NNsOtnQvHI3aj9d{PRP?wmT zbGHY|dTQ8~c$m#k4^siqc9sQthF#n$gFJ?viOHF4 zIH6$#d}`Tfa*wsatoYoscY@9Fvbo8zYXC<5C$8+wb@?9^ede>Uz$KOunP35c#$Pkz zqFpO6(C`+{RNZF)uXuiVl|u(JQ2bXu7?DP4Fz8eG-f0)@ps)J#Q31-g^CDD3G$Ua6 zMBD~d7_3ByGk5J7;mFsG0^!UQvz;&mr`|O0GVhjvHOqq$^1#k%30{`K6WjC21hf>4 z`OP#%t(mdgVJgZoPo=|anC@c5c5-U1qi{J;{PFDFj@+PPe{pV$!>bnt6|sKeK}c1& zypWZ0I+>|^fgtvC+q+p39Z>NaZtZ3P5w>%=_iq${DyOj;&YvF+d>b?aP?I#noc94} zoeabg9s@sf7jAkK#T+N3JcA*>2HKv%4svU~>@p?q3MeR9VgCRQ=nd@T|B>YJ7P_Ir1z;=s*t3F8PbBK7zDx(^Q)2qtsykf$wm+1Hg1q68zIPRpM{asM2 z99FBGcxFRfUn73+eC7nyzQwao41?5KP`@Xj>Beuu3j1WjJ^|)c$r+f+jFwl8g=`f% zX_X7G`wtw0A~7gc%yr(HhDPCWs4@xomf=fd^+JX z=D8<^e+Aq^L>_fLDuQA@V)CDgA`xsamI!v@_6jyD9c&fGI%4r^aclsrR@=Djr^cR8 zX_dez1T7IJ>><*MIVLjQD)*wokB*QZOlS*Zu@h0%=~IEPq90gmb-KyE#1+)8SoZx7 z{O_s~H--75-yORF-5J`n65 zKyjKeaiE(WwUaVHYdV0`+A*r7QfpSN+udnU=2n|EJ`Nn8KtC*}K#maqWl|c{c6q@9 zF&~Y2_KiGe?3?Ijuf?+Uw6Zy|dM>ji;+o4_;M8s9VtlwdSn`Pfj$` zYIA4cnkWm}e?W8WoI)Fm8l9|XH=+mFqta@EiV~j+jKHJV7R|W{#8m0{E%Ead@tT=A zKoz_2La5v$}5o3z*{gUhL?GP0AW^40QXX0IuKhud`mo=i8alp zYRTfs)Uw#4vJ@GxB_2Y2RtY+Lz{=0=k>{3a!_GQ}xo{wu1H?(+;(RZjLd?ShC(n(R zk`)^BYv3)#ib8#0m-KFjwf_Rb=-fT00S>J?o;>My%y9T6YW*>`8G@0wHs*J%Q{yk`><0(aT+4T1ld4j4AWZUBSH|f}{!Z;F;_yuF( zW)_XZ!kpsIE|HiTQdlH+JJ$->rg-t}?IpQT^t6F254!^Vt!hp^2;mp0gnz~H_rN;# z$QtXlEi$rC-DjP!ITk3E^F#Ztp&?`Dr=W#SNsNW;u~+E<9f?17yDOF{u=JMvu}Fx&&N>Q-d>cgvR5qI$zC#w)%CIxH}{Gq-l0kz z{a%-Es7RPUG+=7%T}KS1Fq1y&(TR}|%j-!4YO(`8;P#=m%62(;7>^CJgAV=-9(-mO9sIylj4HM(AKZR&YGeYPgk&$PRExph z0k$_GjEisv+tGvXoJFT2?R+=xdztK8yVyOeY&J!&?8*1ewubhbSeH-R`N=t0(EE0A zat>igV=b!HvO)*{8jWmLt@87Py$&4QF$>s-a&*N)*P}Yi?@hyLvd>}z{B7p|?~UDt zpc0XjjyMc-c3g0SkDQaWqeXayg$V4Vf46%m1_mpQoB$ zx}>Hzv8HpKHN9sgecOWPE%ur}bI%JbMw^?wL zO*Xd5^6#-=8=?R2-O+#O1Hk`9Yvqf=t!1<&vP4EsiDeS`!`nk}#sl{51Y+iujw{!8@EpAe0#6v(Jm5 zVFY7KLmk9KFD7*7xB>3$Yx;2ywqGASP2}^N3lMsN6Q9F!*x#^F7V3lFe~>$m-0S)h z?#TT*eOFU#J-I6=_9%T@DEwOreoMkk@sdj(4$ZW9uVb4%Xdw$R^&q5o{wEzW5VEQ0gjNE;@l$)F84zxjcqRkZ)+F zru6vYhDIT-tWkS_odf=!Z%=qiJgfEur{nV*jtO?YuQ)q}=rz(8i3aQj3og1$!Y?iV z3qN&=_h!&?>`Yfg``lL(Ep=6&lg>6-nU`Dex_$*?LX($_Sv=cSqisZ^lKl z-n^~#w$ryA^)^jCH2d$_t1`;RZy%2gQ5VVlS)L&N;AB}+A?T9?R>p9Rwg}%F@fud8 z$ooH{Yy#N-w#Cy&jTtBHebwgm2c>>E6+iN#_8c4bvtjsBJn?$BQf)a4P?b27$R6T{ zv7Y{Ys2)R6mp~{$`?Bd&+fUSLP_1J#VzsJvygbLST$?R6@3o(kMhkQOz1T)Ao?NLO zo;Di{Y>AxR7Tm&#CEy}RtN>Z_dq1if3V204%nn&O4_fdFTw9VCkVzpNX#ZeJ!5Bn4 zBAga-=&E3Hub&zYyv+i$FF|1&Zx}9e!2*z}Q{w;q;6a`%`3A_NU>W9B>f46^HFyj*U0`^M+&I7iNEU!-X6Eg$%q8 z4Ex^MLp8VNW@TKB#b4}-8wN3lyJEnMs+{v~{7D$$Qwm7w>oqq_MJC%Kw$1q>E(;X> z77jeob`+T9w?k-CN;b?|K86eej66J^d1N?n<=EB~D6hW;)Hl&__{;F{r-8@oLigjf zdo&rojq~X$Bj?(99~$i`Y=a>BUY~(P?e;2;rs2W(WJSf24W%dIOv|;|WdrE4!cf(2 zSGn^lRaG5oPoUCdr3W64_qmgQrS`ym5+o^H8)zP0mgIvLMTK(qMr#IDQM6O{j_Cg! z=oHi#$O{&fu%>|WgDJqQDL^dZY4)v<5=Abq;~nW!>~$^+HAMeZkqg~c#OjO#@nN6t zHo)`^$gw9p>2~h90gng7s$QrveUyb0w!#wA1&W*({}lh*nYG?3VT}bZay#NSX7Qi` zPK-mlz!nQ&xY(CZf^sCiud`qMf13jyYYyB6u-n)J%L3+NjeLR4 z(QU-j>?-g%Ldg9Vd$#ySz=G>6xY~kQG=H*U(#O-e{2K&=v~q&o;~oe$IIjG53;12P zCEsqrsW|@zyI5-1HQ@WjrjeK#7e}mHokETUr?F5rS9jZ1dt>_Kou?G` z+~}LUJf&|osH*nwanTJLR;RKGo4P0KqxesUc)d1dd-{d=va3S@J}4>3_6R(^?G%YQ z;(^pa3e53W)6a@Pipl~h0el?gofu}YkN*S}oN$7k5MIqk6o=UFQHnewjOMHb_QC=9mHOXsp>^8Bl-L5d(C9$hS?EJ)N zJg^Ndxk-EQCR8ebN>b!$G2AR1V`p~74outbVBc{$?#8KPb0GVib0kdY7qUlI$>r)I ztK&jauResKKYVq(GQ~oWQ42`>gUrx$f_9i z;`PW0A@tH!pS9MB`+#-g-pfA+#ssWde+-x#2-w)l4qb=RJlg`cFq^S41qI~Ra83o22#eLX4Tbq^bN?O4AmLAZ^ z6TW=Vz*8^jlDzc9UhK+jvSU`}+pt*N6Jq~`A3XQV#&l|2?ru%FhS#HYFXEiyVW*Dw z-${kUbznSld~_CwrJ-?bv@CaksGqeS@$w5g@a(t%(#1OJ1*v-+oi&ONjH6+2%iG;E zyBeq17th$vC1suYDK+( z{ULIhtezUXjQx(-FHqP^qtZtTKOV4qc~nMWm<^@1IgsK_W2F=ivfprA{DM++g?(`2 z8=W$L8EKQiK4C`DzItnIt&jahh@~0K=6DG#n&*c&@Z?Rw*sV!`uHvz(PZ9MQ;L-dh z-th<1)Q>lXA;(L!!i;xv8@wuV(vObUpy!3jxj`)#{ zZ@Qk$)2^^*VqvSg!Zydk+7!MSWK2k5PmbNpwMkI2&uLc-zvlB;hf?0?eEG&@_|oWi z81Um~CZ9|^uCULIlZn~B@P(o9*@P+^=q|IJ*UB}FRo3jobph%4 zULl9!_Tg=)H8`y+{Opu$*crd>V_({M!)#1?K%vDVAA3^a$0uR?m*9Fq5Et+00+8nQ zdRe*jurKK9MZNTfuEq)Qj|Oq3;p;(mqJQT9r4j zbzj8ct|`B@zn$ZH8d>jlI?EZVFbW50huAI*1W&GYKk9w6Sc6Jo&_?5{g>FA_2ONKt*L}H+%wPF z79U`bU|Ek@v4^~Vme1v#z#>aS;45*NeXSKr2W(<5$l$|5;&q!#zA*F|S9VU?JqgPJ zn%$e#Zl^)@ge( zP|eh14#H@Lor9Rwb$mvLc=naDnOD*cCS9_xNh&@>Q8&GO96kd9RK0v|rpZio9Sr|O`N5Ob3#Jg}Hdz7~hb0myjsIfvR_*l?_<($_{!Om4n2efw4oSU=?4K$Z$ zEI z@4_|;c@}t;1@mY^eus(%XdMSKTN7`=V`^9QiLteh!B`R4B}mpGlvw8iMc*p|lk=p$ z^4ta6Pg}L@nBcJlOeW|P07VUv=YdAc*LrLPW9p_K$fQzdF#7o1Z5x-vCUN@J9cdz*cvn*-#FdTeEoJsF0&=!mEir%kfxebrF&siuI=Ch{->sHtsLcBcZ%emb` zcJuD>YcEN?6nw1H_b=>#<+brx2XuPf?8o6idEGOgy(Ce2ZduY=>_wPXoMU~61$+OA z?*d}q3Y7MKj)dvprIA8_?UTWH9E6SFFPL3H1)wo><@0+6(iWQ)U{jjL2IH4N<2(>? zE9=Upn_&MHjKPFu%Hk_Phc#SabyIH3sKwR!FmKi&ytv5Z|c#O|z`Y!2^C zZWFO+yn)+w5~8cP)=;=LR1s*c0R4*a6|3dGZgsNx-90;bci(|ad|NK@try*j#K+;f z;*6UI!VqXMq>EX=#7 zLF@7YzZB*5-Acj5`e&z~Oa#<^(LJ~msYybTso${r9P|M7&Ep zR9e;WrR4&0;q@2uNdf-2*& zO4z-GJgYq2ud{#hZXrOBwXQA%XdrO&1nU-HW3t(4kMxgicaxZL$~T&a+afyvgJ zOV-nz17a^P#R7hqcZl@gAuT!|`=h;JOpW)2sc+Bx>&#uaB<+(XK|0?z7UYtK54$~# z&p4gCV@8@cJ;Z)SoB$;-JKp_W9=$aX#NXCd_9W>Id+A$az3E6hp`DKsf&r}9_l=#A zrhC}WFtC7AeF1m(@>gT}ba&XJ(~5@S3Ax!4c@k_V=P%IqV-@Fb&y;8V_+QD<%=s?b zY}^Xc*o%&@Y<$@bxH+h?C92ptxdv~m)h*ejKY;F|9L85nq{j*w|J(O9e{; z4>(o?6s2ayTX7oi-^Ziy{TXk?-FgN%yOovq?+40NP=yFb!tWFX^C#QH(#aR%w_VM9 zS=$yiTg?m%2r25J8C&APTo(_gb}p!^R#_sR_fNpvdv;-0puWpOb~UhqUy~>n@&O6* zAeBfsU&1QM^_+0APu2hDhr_N`)ozc4EwYQVITt6>(_I&)mnG@!Yqfg_SRm{P8;}#C zR0oBlWcC^*?f0JK*d@sK<5rQ@zrbaer(PNofl(-!0Z{}KXd~oce^L1-pt1+VWvL4L zbdm}aUS;3oOEQC1JP+FiQ!F?H@Vw8e+2v7eC9~Hm6?n2|QiZ}^n=nmV&TWe0&AFg)CJAmGay4E%87i;YnNK@s5SU-c&@5w>;N@JIAz`U;{t))hY=T zz=IhoD^t|&6E9b>VWc(`47{?@Xy^4rah$BE^!85YsP>Sf>X4(VlHCj?=8c9{pki#d ztFvHS0S<}z>*!G)yOHHplzn6Wh$f?g2e~kgy|37?wX(1D1R2=#xGdx&s}s2V2=TX> z@643jnh?Oo@?Ez}l{_;um)(RpeoZ;pcnR=H0CuaDi%n*o=Z~zX3ulmd{0^sb*q1z( zvPj4fTA{g0x(7)>8va$Wgf~cjx=~q#;wZqzcJs0f{_e~!ugUHajC7YjlVLF34Q-gs zCWse?;imqucjKQOBG)Nz5YG*JahP;iH5d`-mHur#R` zmEk}qE8>|O&nD{DU6VA;G?QZ|=<$f=jaw9)m4~y`0Phn&T3(>UqwsV&+ir_3vl)jB zd=ujBX?3_lV=7{M`c@?XT3W`t@hwAeS3oiBibs!KQ!=Dw7yz{{9lJyO28Nw`gx^Ki zH*YApz9&KY!Ci0Pe&)9m# zN*+f@w`Vha=8_5@uF%#5)>)ox|$O&RC7kO$grv=AtZ=#7P>jZ0JF-ki22UM%1P z6Vy0h3~|Xn1%3eq#i{X{Z+-fi+Ja$FaKfNuF*lWM5QGF!0Cs@vn1)OYgs;S{=;y>& z?&P51{ja(V!y2->b{mTPH(4_)G;**oItk%R<%6k+Wgsv@MUBu%+2 zX@xZ%S}8@Vb!q9eLNkes^^o!hkfMjhf_yfOIb5Zs;=v6pM_%X8p=SkI4!YCfv=CO2LOeyhb_@Evp-SlXjzZ z{yBh$2x~b|q@rME!)t1tuNue&xPkP&UbN?Inc{HXGr*Mc%V0kft;6s@$-S!5->&!u zvtN>8!avg;_~I-9O?;-G!#5&EW1Ncub#^m)GG&V2SSfUN`;S;0Hb7kG!sjk2?Q8-j zd)UfjN|SkjRV;auWzqqi#nOYBLy3S!O4bliSViVxMYA5^#FGgbb_O>2wZPA;TQK$dKJ`alEcE%QB(mX3EvExCaLC1uo zm|Z26$iciJ7V>k5#>C{I#hbBI-EZ-86R#eJ>rQTt$0~fx;Du8VE|#w!FXPrzAFQy` zwT>&VX4Q@%_o~j&5-v^*FTsT(Q0|ly!^64g5hahi{Nf~=FOuh*TA24z9a_NqFQ9+B z;}5EXmEnngnTzhm1cnR*Jf6xvm&oqpui|NdMAvoV!BlzM&EQw|l~45nL&QXy6u##Y zf3$1YntehUo6$*h(f^xFZ^*lM&v8yYJl3@g!*BZ~dsi29^;ox&HhR@W}c z5%=Mi0_dm{ua(>|9TOx-zVch?&O~>%bWg&?$H#@=Nyn#BkgNR4#r`bLj*_E7CZ>VzX*Zk!mcBR zbe**z1fFpupEMZS*;ju)qbM|ljT(T3Ljuo6lBFB5fFz+JTh`id?9dC0A70D7Q`&s ziC6VeMa(A0jEGniw{I)YU18%TBmbtncm!sP&rplUw33-toai;J%!$%TKZ z!zN<6K$%IArM;uPd}(Pv=dVq`(l7!Cj2;2Q@~nVVt9Z+6>E5iX3=kZ##RB>>9Jnar zh`mU9n2Uz2H8&zQ8_;=t0y?*IzJ4?vmgM|>8if+hE6{|%IgU$AY?h>-`>>Elq_nYQ zfh-SYfh-P&em$K{^ix?t85LybKNFL1Kn=f!ytyfo9kLbjZ!eHLC_3Bsr08tlN3r%T z7FPS-jJ2;O_D4KeBUjJgQ8cA?WJ&hf8y(Ixepz2MHp3ibvqbRlJGJZ;77e~+Mm-kh~Uv9r|XT~!Pnmg?#aj!E4cxmSQalWZB zA)vd{(g%VS017V(agqxy^cM}-GuRiO7vzG7H_4G2 zD1^TKC1;-I))e)vTy?0zE5@sM{c$cXIXyQ)O$HRqR5dN51jOqq*F4>48d^#gZg1se z7`k-`XAOO6&g_Uy6!99MyZUh_sD#0BYDiJ)r#{0qMeLZ=$U{K1mnrPq5g=5z#>hVn z_|Z63tmQe-tEo@(kYd9uCLZlR#y#e=ESUqUcB;%|k66<$U(RI>bXhq83rSMfqJaJ= zoA?88ig#zwg7I0z+c*ee~{vUC=* ziEVSX8f1QW+3PC*40*yCJN}IjKv1S?oblcO4V;M932vK$-M|iakIoedsp3KBBux|Z zUB>}C>!%4;YL}Wir0_zD-l<}~(~1MN4{xfd9aq8GAwxrNHCa%2F$|b!Fo#a zFVlyNFbee)4Ln-Pt@z-c7|s79ft9L=pUwim%mRV)%lVq{q>BGY#S=xthf<#5m`}S# zOiD$Y#3_<9my0tje>Ynyl#h+_afo=jrasXYn-qZ7iE2@jcCM=ikgyPi)@~u;> z9PD$UplcT>=s}sA{i(#APlvQ%3$)0#paQu_u!?o|MFs`t?t-{#L|Q(x$>!heu$f@gQ~Cz9lTnJb@M?x9&lC^$>Vs3>3N$IIlNuKeC{lQ0p!gi=mpr>_3pkR9J3(Yoe1x(-g$SP zywy7u18)HVF)WxdEC#^1h>8fZC_zyH6Qal(@XQ!79sH}RduDb4zrWw-|NpP@s=BAA zr$cphb$4}@HM1LhV7;V+q?MN2X^ADapMh}|N<{CuNj6H$qCd&cP<}k0zODm4`@Psb3UU?U<4Nrv z!;-6AU<}_>(=K5hUzl$9bTT%N30h)PO;h0=$69h>x~cGqWAQ_O<-13<|8N>U9K8@G zge5V>&a!ftqTD$;EG6EK;ct)KTnt5R9eZ;L zEQc4+I)%-$I8bw5kdKI0inAfLCc!)Vwe&Ufv*!iP?OE2Fqp=x1sUDruROmESWMD=W z1qp5Y1&M;lznpBma2x>Tc+n7dzWcJrI~2S~o3(sc;k|3Lb!z1XPoTs*M^cHgam!Kn zO$EG=OSLP7EY13GA_!2@#*Y0bnq^}{p_to8;{K@4roSe1Q63kQz)}5!~&N4K-74}YGTZLD_@7L0z>A7hI*?}$k;wo{Z`ungq~5m#^MukShZ4O zEIDNGfE`*kKhnvp$9sTKB1`wb#Qsm#rRvA)P59bYURLU*vMKTBN>r%}8^Mb0I)0vY zT{k)cggT`>C)0F%k6_F{%pR9!sJ8D(r&e491-KD`Z5T`Bzd zd(TQnB@?=2oJy9e@*8TKd1;vz_)}EAES}Zv*7^=qHY*s(PIbtQUKi8n z%nUWcZ|b)WSjB=vXMg*lqo3>Wo#Xj7Jl=KCzV&9#Z$de}p--<0T50<}mIK8#C+YhC z>Jc2GUl_!l8Ac`bS_LH=zd`Fk*GP5K*>4n-lXDW7&8|8@!II>uA)AWpVSEo%D7R0m zF84g>h23XtD)x^HH%n0wIh$?fM|P=@ARN9~fM;Q%V4N*sd8p)H=&L&lNRRIIf)wvn z%44=HR}$o>1@M6Nr#kMJU(t*(h_4@w?1#c}*JNmWm`5P5;_1(fV>35SW?9_z$taf}lZUWSDhd!rUQhV2;%d_{^UM?*la8m%1H8BU!s;{TY|hS^J}J;ofk zu)cit8L@aUk)&$q0EYFzSabkLKs)&pZx7mw%S}-<4j3lX;p4MzEzD+twE*9B>J>xF zIB1P`KgDJs25XxTUE(wi6VRyJDTWH$*jA?TO9p=^m!)1$YfsWUtXXaPE; zhs}oJ!cz0t@Xbd!ebF?$l^?X1DWW*08dktnt=@!|p?7B*sTrVebfd|z(X@%I)@PvI zuHaZW7JR}*Zr1*rSs0mfMIbI7SYQtidZPA#0`3tsQ|fREx6}XnbJL6M`sl%cCYNbw zs2OJ#%V*PtkygV@`}66eaS&f&{X`qNjZO>dQ8N}qTFM9mb~pjz`KEICVI}N+!{jNU zk=CH^?iOKe3_WXDuMB1ST)BNhOMXMssAb(U#t6y#dAk=qw!A|=L-|34g5fc%JZ15x zPR9(Kl;~F}CdE@n0vG!1WQr31tfVc-q6F$cl&8{F6Dk~3$yz)D{gSrJetw70q7I?+ zX^mvQZJFY$utA^RTucRX!~vBnOse#gx+ zq+MG@~?BrZs_ibA|y zv)|$$P5G+u_I}WifebG6$NZ*L1^NMo#T69iO6v-cP{s~*QtUV?fsSA&Qdj9fGb(a6 z6{bLRX_v%Hr&4Z)-Dz|iXINL_dv|i9`m4jV<-FJs8Ae&+*|AtI+{!VU*c2T@0b@&F zlnDi_Tf=+&T2Q&Y-#gHvEm1begCFO7&DbCVx_wdUSTM1FRd{2+X7qcb`e!76Yj{&3 z8d;-~)29x-NdKPWswT{ybZ28h-ez0G*sMyS6x&po(bC`LLm$Ou3ft1YbZC$+_#lLK z9FY004lNSOR_`A=`lAjxf8HVVb%$4ir8j!Ep;W^(ujvqt-`k4c zTOh(%Z0DPWDZI(-_JiJ{Qf@mS+3R}Nq0qq%_zaX`WD;))EN=fbw6=mH%!D4KJVg*T z>jl38jjJ50466?vy{^M2HtL~fLNA#4hF+0j1J>w_8m%l1kF1L-8k*cFuF{)%+OZ+I zu{4!hr}k#De{>9&v4)+^M4$HUKG|ldVW!oH!S_uoVNg>8v7nDSL}TM^!^Znugt15sUkBZ6GW*`N zAH8+xp>>69mjjzAsc}qbt~5QY!%+_}H0w&rHx}fpb>={jq?01!)F6W@tH7Up#{t&+ zOW-*7{C|1*u@1#uC0SHFwpO;UZAdLX|M7H;zRH?QTRx3m&@&ig$;H)8g)5FF@lp%4 zeLzqgj@t*8c?rZu$@kTu_^lJ8paY}hyhCM^YJ|?Oz)1i;3q_q{T@9ZF?l1DE;SmtN zq2t_?UdNdTORi1oEZ_l}#V}VV52G4iZ7rlOc8qXK;e&+RIhrx*#0LqtoBuC`+h;=I z7BjMP17WT0=Y`wNhZJs?Yc`|H`t!oAOGKv&O~NgrB;0muS9kU&Bi!m>JK?s*2)8EP z8G&$1rB??Ew*Xi`r@y2qjTbGoaI0SeVQsM)EcDj@BHVt$jhGj{xil1R>D|2lTj6%| z&k48Z8QE5U!DZ8oXsg30+Frq74&8GWlBkKKHC3=g8Zwk+L*e(p3VG~p&N@`!<97Y@ ze-M6^8||!w!mmVo;|I11Dyd|&e#TMOu7T^$etqDab6_=%M}AF7FUjuZ^0_IWjQL?a zd~-r?JPn4Rpl^Q5ZZX7RsS@`s5)hbK3Od_@V_l6)Sm_15W$f9>ftBjvcc{M4g zw!%j4Q@rR5)!f|L>UoZslprO_0naBP~d>U86HzyRN$tePCjzDOwF zNh;Rj*o+V#oe*<&Dc72rKmjvH1sZo6^HI%i<|tHwUyN-P#NNo|%u(|PQR3S$dK*RG z6{W!QH1yc9>>+J8ZTq z1ji}@6WcO=gJSPRt?^;hil0ZZ-?VGR*+PbO`yp!4{ZVQ%dd#jBrXg$aD==p2@L+-} zd8=sOKx7$P+iFNPvPVfVBa5zNO<{LQDl8e=0YP4x_zZhgnzCltyeRes8I|>G8I|=V zVal3eyG59~O5f=TzI9SqiG<19XT!s|Uq?B6Va0zJKJHBuS40$~j#9x+OUrQ6Q(SuI{w*oEfuK0uHn>neM<4C1(xjTvUh7c$BXCkr-sK+`HIo`6@Lg% z&dD!5>A^KG!0Vnk_#B*Z5J~YP%N(Sin`-Ft;}o(A3#|iU5h`P3*x$70$1dZ7p8uWP|l7?*9scYrQw11GiKv zZMJ?WZ9hK@tM0|y-jQ8))om=Um)$R)jORx^ zHk@ravggLLEl=8Llvv18oV=!phJ>cCqNmJHspl3zV)a zCs|q9?a4_Nyi}ZRkvY(2EixC{EG6@va#b_$S&Y7rT9!92*0(cw=VFXIS9Mk0vYw3H zH{?URQFPyzUFgkhYRqO^MBSEbOH;OO|5qv5due))-7Gurgymq@;zn71f7+TUb0xDMJWC;^GX z66_9sh+NxX9zP)47WM>hmoMtN1{ss)>EVa0V8ua&JGw*RdIovu4RiI#=x;~Aa>8x3 z3nrp5e7+O!&r6nd(Lcf47;t!wmgC7?4({(&9A=AQO7#TMi2dDqY3Lgh_D!CSmYUBY zKf=I|s9#14%o`X%;{tXje*~{zj3VGw0aN(1PILhy!KHmJmvf!X#X3a;*Autams`kn zuBfxB^SstT@>h)1K}xmXvIN`GA=~Fowoh{L(oo7_jnUH&^z~c9ydN`pK4{=Nox(S& z;q9^|w<|q#&PVEO`k4ajdmurU{d7(}H8_goEI#kF7-}>TI97vU8vItwJB_-jIzWa1 z^7QFAj!pz@9bstRiTzc-QK!Ke4bmDkn73Vaeuzyr8NrlmGIGiL?*WuLD8aUIoy#2t zUTfe+13%yKgQGP#F)ZM5A$E9J)IMQR=|riY zSW>fs9IvAy5nhWSb0&=jUT)wu2BJX}GF8(62=&zhv|>Uc?LSRcc)uThpD?d1H}F9N zR~xv52YD^#L1yd1%x>pl!QL~1<|pRG4-DK8O!O3b&cIg;+!18uOwtTIzvvkLFba#`+M;&`m5@86xZ{8vUKjA?E#u8Qr}ef4EZa?8bs}`k ziK?f%*6rdRk*3h?;;s^=CA5K;UbeYPbd;{=VL>Za1dZ4$Y`K&8qI!~*M(DJz21r37 zj*4a!?5;r{4UPzUfRqG}g(1GPE>=`k0W60Gg@-Z1$DJvX56{ttiC_uB=u~;jXf#y$`3e7aYK+^IFUhNrhX?#W+1?F~kUXlN6UN6_EfVkv$|??$7= zGUvxM9`1iI5`J^{rP0dne*m9}+603jPC+rsrM=8o%@ymUxNDF~OTKUr*3ui^GbLm9 zOi_B-G%yER3^#h331(!O#@=pc!|44Rh3JNtV^ZqUM^3i$M2D9Z(8l4A}^*w zdO;zpyz!1vx-xfd#f12gbmMrlkl)sQSJw)wiB{gJQ)9C{{I2n;S(aTn1b%yN7^A9W zr+cwsj$C{;{2p-^{>C5l;kW!D{H=Hde|z8WD@Pu6FVKKI`o1a9gn3t<4Dm(Nhghka zHd(MALxqlKcQX8Ty>ARiznwog9o|0d&hhYDdc_dB&eUuf;zPFE8yl*MW z&fOjzgJ>$NEez5n<93@dBusY(`5uH?E#qsMG!U=VVd`*oggR0krH)p|h-H_=#h@+P zLLpsC4tH?uGP{%A+3sR@#ifDW+m74ic7@%?KFmJcKEgiIKFU7YJ_dyTrPye>+fGuB z-OsU09J_lJNY^Fs@m{JQP~;;gnkQV?-Nj!j&05fdg`{@Kjwa6=Y8+8q>0Q(;8H}Y& zCY8x#?&h6}8Z#4mNf&P`W6fWc!P*lR33_z-><6jc zZ0skt(8l&iaysU)Hzj@Nd*GVssuV6T(8*p+m=sSfX;uCQ?I23uVms3W4%Z9!R`v^V z-(;HiNWdHp(-0v@&hWz%^|Ry5Ggx>qQo%Da7hM`W zoi|U4;eJZ z6y9v$9R^;eG|U=!t9kEE1Me|#nSl=*ILp9!23}|24Fa}3A}#rfRuaAx_$Ib zc=Pi$%yR`q<4va4G@3ABuUdGS8cX#7=I}D!)c8pRPv>Jga-((~Vproe$3_X+Ut7Bx z@mn#LmL@M#$?=`nBouAksxMPa1fqZTio^Sq9EC@Hzu; zFz{9bH<_QzpCa_V2>nlleiEU3 zBJ}GBeJMg;j?gzFbXSBfA%m9B>SB8rg7o!D`VK|zd|jK>vHR^{=sz4{PuPZ#UG|i1 zs5`?Rjbhi@hAJ~`8|8m#Oy@7z>cO;4{+Vf~YxM&**T9(uzG|NTWJe=qr)@^cJN5x1 zWw&icipxH-!;#{$H*7=yF8jtd1Hi3-IVy&Qy2*U&J_8>&u*JYdF*8zJ)*Lha=CTK3 zW_&>9V+Rb2wUqBO=KW2v;FIjd2z@0ME&sIh4KHi{Yh=eF4_^>Vu$K#U9-qg8M*kti z7V2j{n;#%g7wFWh@(gtv_+74P<$Mhr4SdnSd(C?-2Hs@g2J`h*1~%sC!S=m*{;7eV zn|zv0x`z$C#eDZC^L%HHAq}5hmTL&cXRD&vJMyA#UY=`ewLZ5)H#f6aa!oh;YdE|9lly*2;OJ+xOL9GVA*We5d#%XY}21yM@Xz(iyj)}T@a>&H`w&SE%@-TX4g#InW{uyEo zA@=VOn;yL~A;kU|VyO^2H^h4B4M8(F`vpi<$PEV?iYH$YAaDlpM;c1i@no^}6kW-a zG&oIzY7Ks^fob=l(SSL^u*F{-z!j@PrZ})2PwX4A#33P1((2qgr?q6lw^j; zMI+5Q-YBtXB*`bk0C@zBRv5EpI;4&Mu(8n#b!G{G`TW_u?2^3`!;sO82QlIdodG_? zb=o;R%Ht_+Ui5KWP=879AOk6cU)J__qqoeUqTG6iU#9cGe~INaJX>YD1${r9Mg6ndS?B`& zp@{(MdR0M+1KWEFQefF57mN4UG?3tNiC8V}yBL=77deh7sPz9NI#r5Zm5%6Jd9i3? zl^}|UV71@;bLn$LT5u01Np+j{NE5A5MM;trbZA>JiG5`Fqo0o2kug}|Ix_dGI@QW;B^_I~If!s!OX#V*1kc;X+GqEqk&WSWxJ(i-L1G0)D; z@{&?>#m>n>KHO5dG7pNzV=B+ir42+Sz5hWY5a@V%>YtR%)ObNsJ5Q&pNHwC>M>LEk zfoKc)jPYoKU#vM}V{sL!C4GlR^{wy6LN}_F_3&%&tXH^Qsg2V)k!M_vt>l#-t*zTD zfyCP-j&>*<=ggk$lM?I3A&>b>(yM_b?jIq=l~Yu|9okYP zGg7XfYH`aJWTubpDdcY^Nu0fIP^grZl;YZ2b-Am=aqPV^+y$ue{3N@fv-oiwx;RCd zS|x4epoOBp;X!&DT^IO2*%{zIi$?xvH#Ida@X!Js5XI9ac;`nJ03kHX{N;EGoCD+l zWUwE}!1|#EaJ#YAs*vofVH=BqGO*C5Fxf^aun8I+-)pX_lDR-Gt>w$Sn`mGyIzz*Al+qtjkb zinr;y*v>jt>q>Uz7?nzSiN)%KmG))M7dR#gR!*{NWFh37kv3E~ zBlDrc&~A%rHx^gOyoD1t7Pm-AUER4@TG(n{d0kuic+Y_mmGv!NTB34~+}fN5CI@kL zE=91X^R2z`FP}0~ ziNdvL-;;(8ZEK2YK-o4nLbJ?;&V5JbJvvFHJaN$s>=5=G(m=b*@bd@lwV|H#PMf7X zS6oziDwl3zOpcwa%a$i$tRv^SZ3Rz}C~p2)9cuaQ?&?;_|oP4B|o)52nn z)mAdaUy)iG$kp`v&XUb=A0KYzJeS^CxS=ms~X9lNhmL{-5Ash#x%A>R$P=& z7V;&g?}*E(^K+t7u_wL|vWj_4k*kOFl?8m0B%n7y{w zKP%OvV-!rQmkxoYTi0qRr*ay^uaLc24h+CO)o4OT+SnU4PTwkD#>n4NBQGsP<$ zc;eTb_%*N!m6j6uwVU#PJ0cj-y~#8TnworWfO2@Z5*Z_Y50f71HmkWcp}IJ*b)u6- z7^Gv=AYkp9ALvQ$qPQrG8)ij?cl|2I@6%L~ZXMvI`#8rz+FWORLlqDP5V33O52KI< z)u2E0q-aK)UR5n_oSQ)cYNACQ1I4tgMGqvGs+`d|q1YXHL=4RY@2Q zKHH1CS}u_9iXs2bHn2-^p7CZvZ=)VhwgKu^jit+>j#1S2#A`KYZ6?kNb#9spAC{}e zC>K3(4U+v<( z3mAniyN_s~XejRu{hzlIMW~COJEwPsyR-)%@SUEqPX*t1khOP05u#q3Qh8PbjFl3HwnM_8xb$q zS#Qmhg&)>iyho|yxK-}}%i89gUXv1k8+XyaVHicl!#OaU%_M!^v((4$roBIl=1a!0 zxAWVd2E){ri*6}pcW5(5=D&}}oSo=svkM(+cBTW)vip5#*RIgIePv#A0-LNz-*r+r zN?TL16bCuTOE(UJ-`H(~u%`<@8wvf;ZB<$&MR6tmb9kpx@%u_@$3j)Ay5Y@7Y`sFe z)b8e_Dqy8lk-a29M8P!E=#&@)^*eyEq;PZ6F6BkCn7Xx1mV8qSlCllL^2{vnS}J?& zPpi9S!G|N&na~bB#8lp?h_a!RPElU1R4QAO37o)RV<`j)vAK z`r>rO%Sv0Nx)T^vNf&7?z!T+?J!g^9JKc4W(lkIJHb54{5vVjY$0}^jvLEp`=Yx?T z78J|ar-L^ZZex2;j&cF4IP;(3aiElGJNMTku;B`qOtogw zOZWm1wl97cXS2G98SVq)$ruojFs$F~-DpEjy){Z5CWXGtAv?|`S`12|bzlot2!Z8$ zpq+BG{cnp3^t%TV8B8<(&84-k2lA5mCt6fnHF>^j@R}Muk9~;?X87)lXFtq+{RF+y zKbCKy3gJ&NK!f#Weh9iEmh?n0rb5nW50?L$iywd8B|_A@gzG5^u6;P7+x_ zQ+DY7{UDNM+hj2?ft2hFOrTYEf#IK$U19jIlihImcPhy?@uNyoO$(t{h#UWl&hgFp zed9aQUN=Cc?9R>N92jkOF&)Qu6WvJbHAn{3T86V4?^=vLm-Ap|gPF4v^>PXIevamw zF__tScjyS1+upHl$akwOg&D3<7QhU*E$c!K{SDFOky1gZPymCh7@l`814aYg1Fxpu zgHG)1ihC~MJeCf+XT+)0&syFt<{ymA;!!euadz+7tsM~H121RSu_vAq)2*)A1j)v6Q*dsz*z$x`043k-7T#^SBKTPMd6 ze}^6wMb*i+ti!vPwBm0UyU636yVyNUDsevVhbs?Cb7V=glNH7M$fAx#1TNXR8dz~j z5{5}03g}t*TIb?c5SgKP#b=!iMJi=W^tp#OtQWgQ@=XKK{hfcn+;_Mp45xYog?8n<9EeLheZIyz_9Dt&=KvJc13Q4U+K_@-LiXXsZ_ z;lXO~ZD}qTykZ$-qvEZn(;FX+RaIJk2LbR?Wz;y@6sdzae#-5IC${q@E}e?@LM7V< zk|8wUI^YM6>r5bPRKRyobGUqj&DlI#=#_`ZZnPz$P|2dSIJ{a+1ld`*Wi*M)fK@pLUaa!m$wXdZHO%lv0Fmyju5*$#FmEGZvy1( z0C^9ek&@(jLDb8pkiQQiHihqx36K}Vs5(I2C8wm@&3ij}81-nFY-Nb839)BFY_Bl) z){Mf%KCRZ^r`Qi7Q0>qu7MK**$_}a@kn&cOVu^Xutd%N!pWSZKun%am!J+!aymm%{Xt%VtKg zp9V$#CVJ`J=cSh)gw5EDo zhFx!TZd}$9#jT}8&zcT;ULNA;q?djx!@k9P_1dF$YkIHk)Um8}V9X9O3>$^XQFa(k zvrARSaPtA-73#noHyjkR{h*kS4vP8lpqQ)d17mJEDCYiyVpbm%^U^^v?;q4IUmVmf zx91ScZWnXyK_%Q0>)3V+56b0%*nu(k9+YOyL1~`1$f0Aqm~RjG(!87lQ+#|-Eq^*F zX3jxhy7i!#Sw_8n4(H2`NBxm&0%Spe5TovE$Tq{0A(kS-%LE6{<`j8E`21HPHY&tw zL+tkgooIf@DMwLM#AurUXRoat1#c`7RH#vd}H4L~ zL9)$ckhhur+tiC3IV|A`LfF+jNcRK}^1GYsoYon5bC~9EuFtx49rT^qD)W%c@(c;` z7^Yu6RfEIzHPaK?C!I?AQ(WvBg=hJw-mqsBZfXI6NyMHvvc;ZJsJIIAE?^H02kdeQ z7^xy$%Q-0^-hipTM+5!0hS(j5Q3u>@QY|&`Ap>uh8eT6neAL9RG;oc93rxCaO!!j+ zHyQY%fiD}l-N2m&zH8u@2JSWRCj+OO@Bhby>#P6R9CC)X!#!puJ`b zi5MwL%rzz4iceQ!8{LH1Ds1ybA=Zr8Y;58C5W5Po2M~J)9+sLOR+z7}SOFct^hvr6>~YI#Dn8l*kTbTx>0mg!#*TP@SUAUG=1!yqjx z)5R{Et4!~>YyoY0->X6v;Ii9PF!JwG!N}jDYt2>}_=tfws$jsZSJC)btHN?WuMB~@ z>{S&~mdoyMA9zd|ngW8L^6WI(zpD({x$Faa@R51&xiVt`^;MD4PREnbEP2j(EJyc{ z!`><8*k|HMSRp5p2mV1Edlye6*=PC<_FRtc_3b%9t(NBSXUEb7uz7i0t5CP)(pf-; zeU)ocWl%xxnX#zdLN3lKTB>kmJZ_cp{E8O#MxMUvWLaOG`9A#srj+aP#Erd>Pii#u`yIvHL+|dRm?nz3nqt<_ z@9Xrti{kI6-`jL!u?O>nA&IT{tqgmufFoUG*s^?%117_s36Qt)`D|*}Z}Rz7ge)lH zj}ekB&)}$X-ns88$cS@&}5jSAiai__GxAQ~}>Y z$O>#rUrKZ-*-$6NsuM48dDjyBw-x@jZ4Lf-&k`T48WV#?7F)(>m?m;8??R zjI9d8Ty^LKGlI$gBie%eq7WZ|uo`Fxf}o|jtbSochtRJK+ogn~qIYT|^!E{ZMud)w z&k3s>AfaJt~Tx!=u*YfsCLl zKc5?Rt%KKh43cm&J8bA%xZ&bDcsnfqztaCjYD#SNF&!Kb<5^g8$qH{4zaH*&-Ab#OB`Twe#baKrg^@D(1>4huC51OBfg zlV%E_#v5T~0ScTLHE}z-IU+(&4tS>%P6(Q`I@ET6nHCH=hLeE~_dOtdjF}&Fh}Ivy zqc3(hlZ1Y1^gY9;YOa**Hmqvox5h!8sb7r@{Fe zWHk7f2A6UTuQ0IDz^e?r+Q91!Txj6U1}-x2E(7l|aH)Y08faRX@Z}~B#_U@Yt{sSi z5n?;h?Df-#eO?`-P0hC^kg&fIF%t1NBX<1|6sZtvM8`?5&>PrJ+Ywucac?2E6tAwg zA+`@!b?+m#AF&S+dme@PPZ8UWZ+wB+?RaPY8^l(kSpPj@Pa^hT#7O9$E&wBLd8LqV zO$bDNjNO9*yLPE|gU~g+)xbLqyvM+020m=y3Im@s@M!~|HSjqDUo!Aj19up>%fR;y z{K&x14gA``?+u(srM%9B_G#$iT2*(5%NnKW5tq%8rb}FQjWm4%qOUZa;Ke^r0EG4uhr?UaM=se^o7f| zNz)lFdtI6yfYku4L10Bhm3z;?52Yal7Zyc^5?uBrrTs>RUFp(Q*LI#HueNmKIP5_( zjI&sW+4P)439T<{p>+>kw|bQBAuXieP4uh9@O|`q6J@uJ@XeHdr~ajsSJ3ah6tj|k z-=g%(D87kec2mrc6!SUZms4&_=vS{zR?{!-9A?;$Hpkx0u%}}j`!)mX9*#YmVRy!i zwD?NQ2#H@Rj(wWJ8-LiN8QhEgoP@+j6<UGw$cHihJPCw% zD88K%&x>*F*9?2u<||1uTxatq3E8BK(74hvvLdYc0$Fj9&G(S3*jvvN!LAiMHbVPH z=xdA!D|CXs)GvxZmNSf1uRtuZwvUU z4&E6sQXRZI;HEmbBw(pJ_&~r{b?}jZx$5AGfWzwGN^VBB4zA{Abhi^ydbMk}2<>M^ zxlVYb8R$Bs@7IJwT}R@OjJuxaIS#wl=64T?CH@NYe;X_>pHAA_lz{cYnxu_aQ|W~5 zVH|qdnGk#T5ZjY#VcPPfbr&k)iPcHl$!6K>G&**V|GKEWr6y zNjw$a6Cmq@LtH4)k65~tF5OZ^Lc&rNTw-_tABx^H#MF4!UkKvPQv#?2sF4V+qj%?KISTHU8p$HR8N#_BKeC6ZV`nV{~>1 zUV>l`p`M+*Ic=q+b!*zHk^;Mbj^s~NTRex<6+Ld-9A*t@@!Da%*eCjIj$_wAAs-o@g>FaEKX?9sZKQ;*;`RBOHI z^W%OWURs8>A(Su06%+7^!JY&R8MzyzcC25@H*9XC*!Kst8->S;?!RILdBr;sPEAa zE%oAufza=gdi6m{v{|6?U4&Lnihz2N zv0+Gd&kO$k8K^7QB@Vg47v6)~H!X0SrlxGN#!bT1zHtyqS`Ocj(}o2Lw}F%mEdG`b zndnPCed1j)CpDla?#R41c=|+o1o>nau*(azgX_l%aoZq8s&|Lb6(2kT8g5IWcq#Gt zWOVV$+9q7!Cf#HvlWEA%Uqgm1E;QHkvYy4a4E>^TcE6OAFX7=RaDfMts7k+O%6A10 zx~CU?$os*K!8^$&)>vpR@!{2?vsbBPlWVSrpusMdOeO(XAmJ8<=1@~L>?5iH`>asR zA4Gew=hU!I3&h^^`>@m(e@}?w1pA^uV)$mVE6Uz45Z|0gqvFEE3HqjC%4OdckPwCU z54$Hk_M-`&l|Tbu`%P$4LiA0r`)E^gS-#!?x-VaknuqiC&A=dhFQvLEpKlojpSmdF zILD>fqI|p<7#9~n@I=;}4=t+i1;Y9YlYhg`EBrQd{ZWfV{8TS_pI^?@O{ zKR;+BsI!1%=AGBbmJqy>fmf=~Y8kv!WOJx2XPfeA#qn%De;+Lvu`T&P)YL1t2HtTs zU%%8`-30Us2dU{u( zqkM659{ZW0|E%$NiVWZ(MaIYc0X_XB+h^m|`p9a`H(GJG{jI`g-JM<^veapd5zsCR z=`i4`eBDRiMHiczPn+oWVE5#ayD-T<8G|y-GLUIJnXB{6!#pn->f&V+eWm9|3r5FR zC((Bs2Pix+p<5VBa;cyYdubAAkH<@0Hb0j}REk%WdZvfnUxF+P9g+D`pIvxtT@Jsw z4sF9Jee1iY7LNmkGrtx~KX zXN?@DME^ZWRAzzVfOy2Ii5%}t4;_<3X={In7r-8!2 zcy%lrlTVy9f6(Q0#k1^vye3e3S&}Xy6~2UuwnbY})4t1RXJU==wBl?htvK5QXE=U% z!Kp2t?Dc9|HK<;m?720qE<~eci&dWL2Np`}UYZaG0U$eoEYfjaTAY>LHk}0@E4XzK6r*IntI%3n&bEPgO|hjJI)zgvW*mZgOBF_v>LLiq4yfYg>_O#>=CdpF+5Sn{jPndaMmPAoryQm)z zPW3JI9y&p|d8A^W=@45N(*xjzT>hgQQECl)Dwluf5}B5;4LT95HsDpAC;Rlk7k0LL zVYUhgL5h#Z;t~tEi!0@4W8s%)(cB)Jo5Z`#Ea~)4LGDQdUy6}Qwpx;%-b9Ibsd;2*@`^zQVmYcO>PBS69jM~ zM?oN)1bXddGjvdUo!#NOOxBU5`bw?tF1!Tdq_r~l>QmBq3*;k}pSmprTY>-9!&#)Fq>$Q_M7N=zi8t)Soyi1WYzC{)<8l$q}cjM@q0~zJp542Ta z7xfW^m9}M<=<7MWysOH0?EKSYF5a>^Zgra|xE|;^e_(j2B2OFJ&Su5`#MuTF+ITD` z8;|*9PlXFu8Qlg;p!g86neRy=iqfl3kE_kdK=>%QCfUF&7xZ?~Jr8DUA zQ=VOzmPJ@=w7D%~Gfq|r?VkoK4{roy8>PA)#xg&#jQ1&(xznLzyO+wGpIlW3#RU$@ zkM9Io!*V*0rZE?)J40CnG_-c0fAz1#0IR~+P zFJSr0SxXMxKu$U^i2g&{3rTbuueHtpBlwqSJr<@~DZZ?QK^@lv&^Zou&p#UZqz%oD z7g$npci3PWUSxhUqceqnLVk*MBl+8FLNJ+JiH)D{&TMv=?faeVFYSf!Yf zfR&Rd7}x&Z65C6zpUy|=5P1VXKMsygm3;pC~$lJ@|ac19Y3^nmYRlt+^*1Hb^VvxCo#Q_Vg(a#XPdoE6UM_x)wH} z!)FhN3EsN2R#oBk(QNHrTa?|Ul=ypP71~g^cKBYK9U)dH*5GcJlsX>SCeIBf^JtsKzN&4PQU%p|_Y3rz)HTOOxws_3lnHn_%e>EqEbZ zW5Tq<1L40$TO#QQozD4{w8NX>*Ar`|0W^(2H7OXCKH)GbKb-hjj17mC(UW)-dQR?B zllD&jZt}h9`_gZWo;`ZU=s9>KUs}xmo`3L@nf@$aKRtu8V_xtD!G0H^b9jVb(+>Z2 zgf{AEcCm$Dd1}~9ti|OVLf=hZJq*9XCMjJ2y_(duINOfmW+icUXbQ}-Q}xjHE#-Ry z4{F%T4_U<|+r)pihDo4bozI;H-echV27YAVtp@Hg@KxTfLg=-qU5)T4qC=ffndE>9 zx$HBl&=)4Z8A3jMysnAsk$WK+a{GeH)uEOEG2|b@`ra>z@xMUZy)$JF=DsX_fBW7o zD`w3y@4yG9bGw(YXXxEU^s5aqJ!s4^(di%kzC#;>YhX$@mCdj%QU+DcuwBB6D%!%n z5UPDOTlGQ9sR2R2yl`wttgL5Hmy-|Kb^F=SpQp{PCG4;$r=uctbcFsPLMtNlcM&?W zT_@_&)wJtJ9n=3n@E=tB&K}mQ_PgmMbEGBsn5(Ozv8AjTy!U_8w4+!u}EvDkqm|bb3p%5WWX5fu*tyx z8rWvwbviX_9q79FD9P$?_-I~Ue*@-O%hb?k-w9K#3|k+e%`&W^kJ7TPq0hdSriMOU zb)y>k>@{g>=(7{4hDl9BgEa~LhT`yqf~s)}jEmNQIM0gE^CR?}2>p%jrV};zg|6Tv zQ$IZfGNv**^gB}tu3dux2S4?om_LNI)9;Ko71W{gOdWNoD(FbbUpsqcY@K9lCk@W9 zsiw+0k(N=7aIE#{lE7Z5u>DOB=#8;P4Br7Vg*Y!EN)xauW8>^79;an7 zCLxZcCyxsL0Yuc4!+PRm)l?JgVm*zU_dLlOWNRAdXp#jkJMlK#m4eJ&$Pb32Gf#WR zl+DG#K1~W%hACJRl}rBki5rWZdX!HVO}Vwu>5p6cG4VINHLOHQ0#p}*lhtlB*oIVXYw}*cr%p}<7?@{;D;(#>?em@osCz0FFM&tp`*QF7GakMLi zhte1Igt~1SbA2HyL+wgw-SlS#M{%VFT~|-^*<}U#cw|+<|914zkYSIQP3OA`qVtSw zL3o~F;dzGZCYzEVxCJK~a(Jr4Iy6`q?j z4NdIoJgV;1dBK`tYhJiJ{tT}An(Zv_T>{^njK-h#CDm0@e0zrKK^vB`*_K(G@f=&Q z-FeXt`eto5yh69nt_(H|H0t%~4Je zevDGxuT!~Az1iaYpuz9UH+1}=K5QwkUCkCt`Uj6myFlPg0xG7)Ym2DWL zol4jaj7q-Rd=4x@4!EN~zmR<#ByCL1bAuGxNd1qL*S;V@3wzc$>G>!TI_dc#I5;5r zN*^3t*6!foql**bB{r_AL9Aob^w~iJT0BdCXV+wtt=Z7#CPrrUxEKWP?&349@Y|9C_ZMk|By04!%Sa}Vtsk&d%X^_N~otO5d zc*ecc_Ssx*-q~j#72r1R(is2t3>d$nTSAeFD&WW(@S;EnedpxsElvn2i&udprOR_xuNxUK!!9l0F(uM!3{=9`tV>n1nb%O(Fl zfu{wm!)ZYdvb>Sn!kkn&lgK8av~!xI{qa~-zE}In=P+)_N+psGFDcV|S~vkir7F>m z+=cN*bHuWkJ(K(YkD)YGbbzTeyXXL8X*@?20b9V?0~P|LEB8gNK3kbhp%y$ZY4Rra zVs8i{Zm-TqSMCA2*`N*V(p==IakobIg)=}}8_xQ7vs4?;g7s+^RMo&1=fbx7478yd zu|_oTg?=|`rM>AaG>a#IQ4A#a8@Lll7CCLSCneZB(Q!vw^Se4J=TB1W{1h)M8=n$g ztI>u0#^R*-Q(Ot&scTEB1{!q#iD_pKnWcfq@?zZL?}I!sRYSY|@6!d9Z*%pTz(=_q z&IHUN;x77aq2D*@f=>Ln-n2c}Y_sdBmG05MBpADT`Qj!Gy9ZjpnbiRbM@l{!O?$At zigo}^K(fD7_5S-dU#d-$a5J+@C#9Nwbk_X4IPQR|l;6JsXb`vMO9xt6DV7aHLuv~qt0vz)p7v9z=WQweSjpz91I$1;y5iWobr29t>_#jXZsx;qzjlzS6O(5I){*RD zyQ^y#4X2m7?&rOWlfQI8;t+PuQBcrev%fT(&2B@ll<}@FXMy#&yhkA_-Ub{0J!s>< z*FO9$_yA4f75-Se&=HIwN;7UyNt~= z^cB?2?r!&Noi(dX7R?x?+OC#)cMVc)OJvSMvLKjy2Ob9E8A@}#)0!2Nrv_uc4F-N* zAK(E6cHUuaJkQRlPSe(W;eqFYDhX3h%OW8tpuBb~UwZX9ca_RTPY~JJTon=uh+o0HMQG&br1nQ3UT) zwb^K^=#DXJv7MI^=Z>S-i&U3Gye5j{&9e8U^(bga*)&kW2PcvpsvI(gRf?Zgy&b#r zI@#%t(IC~nvp~FjahzS*?ttVTyTKdg^<+OH3#e&li0U4DT`#sFe!#D?~@5vIF6MicN z%n63CKszXG2g6=O=W1n%F@f2!JmVFYhD)7YEQ%h1nK#caMUD?cyaXV$s9h-X<1}RQ z*U8v}gH)@`eRz;sCvzS`FK6}x@Ozvrdois<{Wu=kek(fx-i49S{|FdsIgnqO_HXnn zy5R@HYDN@JyU_8_jrxABo;YdwkVl8i8+=t=EbhB5G|T;8LDlWEGu49qFt|P$V>io!RY~|Qd#J{qAiFM` zVAZ#ZEo>@z@C9NQk6seD3y8ONZI(qJ53_w)^64-OM*dZGR*TGec96B_vA$HVB2|(S zovv?bv18j*tR+jJwdD}tv5ePr;l<%MMqM9#qNSy^rFFTed?a`VoReKivhY=+y(=zk znLk)p51v2xn!(p1p}`-n(NX)-^Vzw$%^qMmf-A2*Gs*UPS3G)h0Vq zc>cs_*T;lsb92IkOK{v$T%aRv!r%IA%lX}1e(Q73-oFx>oQkM%?E%;3;58_JA$CjKNtQ#B@2)@ zx%gl>u^2z=XEN+za!a^%W@cL!T|7&Mh3CCH0aLoq`dP!;X~lZrrTFc@L;WloTeuyD zM(u!J4x5K6z`hSO&}8u$Q|P=CIyN)R@8Pg!dYEB*1e)DNbIG#?ER6AZOCA( zJMfpoyo=@&NQ|g-w>GADWmmRZ7b`5)vuvMOeMwwA&8o$SI2J5Lt%=2wP^=nhL9tr; z*Q7;BLi{7~vIjD6`hWECI5at01)Qz;nNZwQ$FY@?qddpv39D)Fg24+1-$3_}?h@_B zA+*^I?H_x%4^oHA(+>lW@B29aXaWvO*YVEm35|_Syg?X04EK!VJ+R2sOU?zUOeV|L=31)~uZ-PUw~Q3n*_8vJqI}K( ziyz&+$DWz&tz0>O5N$S8!m34F5O0#~YY?gyNIr8AFi2jCORgSd-mS0AovqG0>?TxT zziPnj0hHt10al%|d)sykn-xANq6aFetlqYjVV9w4XS5ZaiTnDGU2Ovq2a%rsV;@;^ zRbol{$}?h>jwp?bzsFN#8s3p|$w<{A`5M={L9(Y@%Yy}8Cn;tn)%i+frL|~+1xql& zUa^#}k5;K{Z3TjvL7Glk{I%xcuey2wT8q4XAg)%g8wfLI?wj>iz0Cg+eY)pttyk~J zyf5pO$V>}tf7aQ#>_0-T8UD$n^;$&^wHBJ$4k2`Bz-mL#H!Gb?RZSA_92x7+ujX0N zjt;Qe<)q8@D9X|HZZwG<`x;iT*#;+jq36Il1jTICGDuyBVk-I>gLaBHK@DCU^*qd2 z)=LD`>$M2%?F7V=qc-E3d3kbkG4$`_0K6>y&2;Fm>Hy36Pg~ZL!&VKW5 z{$es(9ELS?m6X>cRgHgYk0zN5joj$5Mfv7V2>KZ~Q{g>$_8jgiHKC&fwxix6hY3H_ zTP|CcE3vveN&AoOc2%Yd|I7AwGIi`pZ59w8y4h?q-NDk#jlWgb&YFVQiL5Ttkn&)) zdWx4NRjZw=f9f%knyDDbub^bNcN`maKs;i zvP@<|5ZPuD7Wce>KoH2AB)GJ~o1m4gd6NLP0(ld+_NQfle(TNz7gU4+!2&816vd4o zxE76wV6lo?a3^TpS}WA0){Wme=f0Ut)c(J}&p*ps?z`)`=bn4cx#ylM)}4Y1z7!wS z%QPLEeOtg6Tf`J&Ioa*O6=Gqyo-HpFi!B-qrFaUMqefstjlc}{ht`h$p?RYb+Xm#B z#^g|C$wTAvd7a;1YJdDEMpnab?+) zEZ*>z0`YnqT|cI4M(uzs^vXbI-48|o3#@h)iiebG^_yy7uq%sXXM$3Ohq1KZLnR4B zA1M0cC+ow|kF8h)Wb)fT0KFShDF*%3ttJOLFFhy{%~F|-%eK{-?HSL4}imE_eG zSfz*z?3)T=QHkdtCUGXUd}Hn5Lq@;#({TUw^8=BvwTKaOL^6Rw+yy70r&D#%n3+VQQ@b<#NJ)rooG zQzKo-J3y2%b!@BW=5njr)m^s3}=?XDYGeMMqJxHB8G-VbGS_`SbzGFZ7H+i zT63o3nx<_=fvmNQ)`@HZqzk9aq}6G6i~w%q40bwJh1tq1=o}BcCVC^o#~5%%b_2*A z3)mv6PtznTl}zHnvbeW`8hr9RF=dfG+;&!^EinX}+}i3iI1R0E6X#6CT^|Zub~153|R)#xT4x+Td2DM1S1zcWrH|>g<@q z-u1qb*E3vsU}=SOZB?~V-1<-1)61<~%d=gkm0|DDn0ueDBk=Nb zgL#?QFHp!>_6CgQ;HR-{LsDjLX&^v9sDMC(XvI*mT?+Z3Ur&ykZ4=f*Qppu1w;dR779*8%nLe8^blD~s#+&{E6G%Ep|cv!GHHV*VnkSbUc4 zMlEqEge+LZPN!r}s{MG@LMd8QrO(HgW-AqsoFwMgu+bjH_J&x@oNtSrY`J*ivT$4k z7p0veyl*eww=}ZYJOW6(!HP!P9FgSxORTD6V~)L`94HlhM+d`1-1`P2X7WO~fuw}{ z#S}_e1K5k|8IP+t%0&IgZ^E9*PaVOr-L^$=ViJ$mfceR7ZH1A|=3u6kF%tygdE)di z9~d$hw$_WX12!+~Wr~uThvV!)&sI|rP8(evVV}XcN%68W_C@ymK?M-U9NgcmLa!wR z4%~msY7`KXX+_7vjwqc77~&4gWZE2e1@9jc7uLY6>UFDGfrc!Un`>9uRgSX->RNw- zDK4%-D*WB_f<|*_QrX59KHj+@+W zwx8eZR@uBFXwG*m>ohSZTp@bBWF}S7Xcj#$oOstlS}`h1`bkhKs>3iN=X0o263j_n5xt5rhp+ zvj5^TTjhF|d?I$Rg|xc3I{)Ul_XB6?tiQqR4tq;pM6w6|xqM`H z7ez+Z|J&o%1d>p@-!eKA4$oKvsvm@zj&v^o(xsfYqsih$oN3~|kzW`8xdPtkxYhIU zayAVdnn{>aOn)&YtA9oWZ4{y9qHMY7wOky%T-Bd>fnDLFqh|5_YR<`?KE(xs9iHYfjXg4Vz5n?E@N$InmnLW;`wrFL+k8_2yFoy= zYdjZirQlD+G}#@E|0#A;funOmh6BaGbFsYW`#AQMde!90L^`nbB+C5GIiD6==oj$c zjk)+eB5ZBFrNBbdYnCld)4D(Nr(nt0fiTy1Kn0CTs|1q)vqi;EY*$Ic;hr^s7-HScKi{7r? zP{+QSwPVbU<8PdBTho7L9cf^iZ^OjT0}l??g0Hn44qQ1Hs9eWoH48-1=0Aur^OC4o zY|_}$I{fA|)z*@3_weDvc8xc|m`x?k`kxTma&eXsGYtz;-8+0(IG3eaL^mjRf}H0{w- z)QE?Ucy@X^z`6_%!_9KG+7Nr2@i`)S%ErY&`Qh|k!I%}XHT}JoB?Ws1+M1>y3EYb& zFo&%tp?MMN#emrwjMd#&Y#uA-PrL{>!8TF@+5*s&au3Pg)2SwUwkA+X#C}_H%+6v* zbgxF)4;okHSnNUlryH>=o5UP6fX3WEiy_q&b1@a}V`EzJKB_(-m&V#gulMg5Acj;z z1=#Zn|&>7J=W)g#*|wjbNkj|50+}KNa_p~-u{WM%#-1>4`EX|Ig>y7;*YpfsV<)Ji<-S)b3jq2p<*e^fb>w;~IVf#pU@NGza*&u}SA4$n@4_#Lhbo&^xPxMT?!pPp94!N(#%Tt0F8-X*Qqp-)u z8B7;h1VY_}1%f+&8g;c*4*MBDK!;Rt`pjYwxs)^H|NH+TLa0epD&69~ho1=K8`@aB&{Ei&JojbAbbMRR|4t)xZ=u zFg2}nHh!L4uWJhTXlFC9J>*)v6j$PLHAu1i9*y?IifU*%&`Y3@wNTk6@-(Oc)B&(LZ_e; z6GmKTZl}TE#xBO#gzc=It}_TY4LGy`8ede43w74dkO#*?ezng+HYPi4QLpHppY%F8<@MEy+*2Bm4oWAvHc8@!Hy#G(#)IjNhrzV8zFb_moDJ}l zechtT03|4p{$a5CI#dk|Q@ssSZ~`uM#4vNQ{!FG7dJ}z^hfAez|Kwf4f9O6QFnks4L}(5~xq3Eov3K~l z5779xvsU@H0<-!;&CULMfmMIc;}R@dv1a8)cM;FFW|R3)QKxCy7gJ+f$06fD`-Hf` z2yRnp+A&mHd|@`T=X-~gFG1awK|5UaCEHpy68Y*}?)LTlY{ZDAez%I%5*zJ((~KM& zeK`yOv*CzjPqi%dll~a%dZ)h=>)OcyD^QwI@5t;wo)cg&teYP<>jo&&a{}KthIpO9 z$kOka?tMjrO&w_Km1h^8KqozQ?7gI`a<6FZ5LjFaa%WMU0{Xti+*?< zrCPFgcxj-Pr9sSgmrU|iTFLpAI)DlLtGF#U9eS^S_U3x{bX}aGPq5AkoOXjVB1OX7VkFZTq4c+a^l!#83u2xnoLklk;$Z_bSx|yznFS4+h$G z4v%tw;*kI^(d8g^zoZPHCOk6`cn#!QKWNz&SUHH;?B(Mh3cxqzoNfgddxw*;&l>Nk zQjDk(=Y(T%dj>9rw?lCe$o|?m6kFAcEb5z)5?(R>LHxk4g8R$J*HW6sQ)$pw{s~;iHKC{hL{^R3>PSO$HY~kuZDS@h!p$r2HmuisXb>X zV*}T=HF+OpVLI-L2vh|i*rBT7^Quu}Z-QZvko<|sTLb8c;PJ^12ateXihvHsM4w9C zC(aLpoN=-gy8&XjM&Ar^k&;&Ff_ACdh~QfRR^0G4L@DTD1Gm+0J7rCP4+%hi*9p}q zp$gXIOLJ7ClI&GA6|>dAI*$CuTwnGuZ!0yRo}H2%5+&>z%HrF(S|6|SB^gsIRo$Nv z(M5Wx_<5N34w_og!A6W=OC76~lKulzx8gAkMO+v~&14E)lrd%D!NvyzwxOpC|3YOS ztpc%;B{w>lvf!#|TLV$4?H^5o=36804B;88Fc6`V20+~Il)*P=Yz??3u*cFgWVx7M zIfhIy$WmRDRFZ9mVT9iELY2*UNR{;nlvVt0V* zkO4$e=ic@j!LF4Gkh%v*<695^8#MmWI1CyMNU|V|_SNjeae!ed(n}$J0hT?2?%${2 ztr8Ds$c`qi0Ug<@6f2L=^$GQ&nB3jj)eB`u2olj}Q`3QnClFm7V3xO%Ny|%TdN0Hk z|5{C0IHf}5w?^I;N|vLbbuEmcpw27sd2@gt6T-~kc~Ky1ZA!vR-hpyB_jX9u8TCd@ z9A=Gj2PPlyM_a9H{ztmJ{WU<;D$kN zO!RKl*+8n<(f}~TAV>l1vk_A%@f2&+HF0{_&{87UlDZ&u;l-)c1;AHo{HV}{7aJO$ z-HC~0HWB(M)%@966NJ!xEn5R;X+nKZY5E&2OZ*!Km?F|BTElIc>}aOr{+2T z_XCE*@V}RytU;cGj$~HZs{r-W^XvbR=E{c2>>4$hbt{$X1}d%v7i{ZnJL3j6HGL4V`olk;wIA$}bcqu8kLi`63W#l(r^ zR1UUgDDvk>nVJnkx)hh=c8Use%t|M(JORS?cEFA=XK4jqMZ%&tFE4@Vq@yBPVQb_iGUqRpDp8b9U#2d3VvQE}eemL6}LG{vGl?f(*A|ExZ$ zHwXQ{Z=c>Bfcw<4xp@ixL@_k)y>hayi-lpJeVPuE4tr%9)^nK4?(dQ4uU`E+{h#9N ze)Z9Nd(o@WGyZ?$>-*}XdUM#@*&2DD|C;}q9n|>lSl;{I9$%l9^oCVJNzP`^Nm^9T z1_Jl(&|U71r2}`Iq-l3i{WblMO!3*sU>#iQe-Nd586fq5Y!b`??ddtwONdCu+UC zq-CGBs8WE7EAXmnYGQ4Js&wIsnfL$$^zH`qW_QO-9k{|LYIN7s0_$h0NWr`5!Ihzn zGtskT1|t=%o2h4JilK@oXr39Nw;M-HM0?ai)6hl$1u8ZIM$j@sBa9-WmEGoXV&Fvd9bg*%5x{mBm|yOj>DKc;!3-Xu z%m~5+1F71rX&YxKSU^uG+_KDJracN+iLP4qC90==UK0Q2nX0=XY8F=fxwv`|yXavU zV5SN&ht-$DW4pp54%p|kB+%K z@M^_%;)ELDuo@}{8~h48i|y4o&zxMP>8eImDRDj@R06%h>kSqWp)h_o^rWVJG8Q9@ zcIS&r!@8C`l^C=Z&z!GRRJo0jaT zmErk{)_+sX&cW~;oO0xjZT=BZkO1`nN*u8zR}GKc7`buV=4eb+AA0Sx8EOb$^k0g5 z9j5CeE!_}S!M;knO$XhMq|ree8hCi5M@X^mZAva_=5bZD!9Y z+Vsb9@hwfdL{VA8jwj_;xmroHA~(Qj&#sQuW>t|tt)673i>ITwJmRo3sd!Wm;MPL5 zyp5V(S2J#M5fm=S_H_>gY)9%#+;pHzvgb#11VnYC*J0;`j|FBK_@JpB0sA6dI~HB! z$`4P4H?+#;AC1xByP?51bR(b*@@#O>JWtb6l|ai@WIctJW}1-;o2DW(Mi+s$g)$lwy~X2Rj*h5Hw@IYXQEUu{ev;j`M({Y z>V^B;vN3#UY@jq~>NRB@C+3HN)?7d4VBoDmSV^9(B=@$$A?KrF(@J-vk|?|)b(Ik6 zdpdAgR+a^aar|@?v%$6E_k#NQC>NvqzXKN`NF5QCGc#BlC)&)v3-FwFcGNjy$s}a;P{iCg^T!I z3)JicrM0Tft@NLezotLUTkW^%PxOpg&>;g;ytGn&$-h*;HoXHq5^X0NqsI#ui9Ykt zB@a2mKf7j>YgU<6qHm>J^{ClqvL`(gh9|S;3V9(t?;nwy^7-szba`SYL@_Tb5y@~? zoA=_W4CEYNBgp9KxNeG9*&mpp!YS-e~r!#a>QmG5^)gNF6sMa&L)gPR7g(a9Mcj88N@u|XqWFO5cYwWDz~7pJ-W=Iqs-F)g-Q@49 zc(LS5TXd@l#=Ywfvn%lQ2+pn{H#k?&^=~?@e2CsP; z?Is8JLcJY>$w73od8YW&W&ETP;2?k-lRA6_Mh;+NyB18xT13|jeJ?&$;FE2dDCYfb z^sb;QPOc#y4!(&gFgK%bCd-z_&2fSItugo_4A$M$d>dcQ;q+#i^l~z4d?3dWmI{dB zM=Eouj(S1Lk8{drS|z%kUe=szM;v6!>UDwq=AhQ;nb~?I+X_xKtC9j5W130FHj_yc zOEvU<_{DbXkO4Jx$4s)Xd`by}nGPcQlDzX&acqsb3Xx(>z!B$#b>aNcq?0BLmUJRF zCehi4I6KT<)?f^sPfI5$Q;OGOYoKECb+`dRllp4h^rb!CklXkpLf?1qTodPpQ>GzI z17|X*J#Fa73*nxR(N!W@nK9KL{7KtTJa(a>qX+B%fd#H*umECMKz$E7LQ#v&nU7RY=oQ; zLuyisMZD6C0J@2zYOF~4F!&$ts(Uqn)pDaL>Hp(21Gnn*AEx^)(;cac+7))2c=WOw z_SXWwa+)ukME_OO_5_nvI?J&2=(lO_f{YYT)e13eqL>`+S`a~bAEaw?kpnmWb(CBg zKs~I~&+1dj)O4&}NeBryr4q(W}f zj6l83dL6*o4})#D7V`wOOtNc=IH_8X3TE8d|AWK>Qn)YHmjfO99LL$-3{}Z?&&Gu^ z#$NI((SmTOjiO!DvyXucy)=+-7Y(6 z^09plZn3ZYc&rbuIOygi+maG!Vv?UyDk3!qNu-c-U{u?CMQ|Q^&Hi|#j2O}p7xGg| z&}*05?gBVHz@9FO_}CJI8Pc*aNL*A2aWwWvUw0u`uQ2(k&Ce3cHGYt5OqXI|WnP}_ z8lxKy4fbSg)S3YLztTA!85QyF>50p=qcJ8y#+eCvRwJ~k(|<)mME*VOz0NV zve0VVwNf@78g8?6QC16e8LK91h-nKQG_3prJ-+edLdpoiQwF0EvEw3(bfZ5_meTn4 z?DXaSy=3}|8{^Re!vWSi=H1Uxs<>-fmKJ!1;%p;X-%5dDDSk{SgE}>dOJe;(mRg7g zV$zdNP3RH=+t{1`t?VQ0MbgyQ z4N$hh%3k5bENjk&5{I%4Ih31~1&rb!Y~DLitF|DgGIV7-IRAGeOt`kjc=X_5zFU^UoWz+a~Gp$tBb<+q~xTenBB-;5^{fZ-?YD; zl1*v1*?d4Lw9`RVpReSce#tCj3v}_&dAj*KwnK>h(dQfKj4ee{pxFn-Pf**h1YgpE z%lFGQ(u%rLzh}nU5O8(^CInl`yxA$Hh#O3;8)qQJkJd zU$3F-zo>_qoLt}6l>?K3Gjg-h;FkrUW~JJ-XEx>&9>)K z4)1++@HlKTK@Ux~4`2_;*-HqE4V___s0$gt{9xwjN22312+%menWN|EF-m-VoUv2vTNWl z8c3Gs)ycKe=~KqXK?X)Gf(!LbE=9Ye3&n?Hc8pOQ_*^9dU5`#=UO}6vOGw%)@ua=V zm@HC~V}U0*ia;2U(bfvLG^-V1{|m7@Ljb2eF%%**nsI9aAI{f&N}Ak)IxvzZk0rs8 z^4GKWF{wC-km}nAzFwWBc1%`eJ4LOpsVPDX+APj(aWsZ<{tY1Kw*hAY-F^Yc{?vK* zLD(~Ph0dE+uC&CjD%s4e6*)>Z$uP*uXvMs9fNf2}g8(;7{d(4(8f9n0e&J`z%to#H z?PbkkZ?mF$?4G)Gz>R~Ly0tYg4I>p(q3#m$pYktI<5(TiVI#&gC5J6V1>W<%ZEwH{n1 z8Es?ltlKb^eL3s-8ZEG~j!cJ27EAv-FuAfhN?}vBkL+Ky-gh=DRh^@SKAVB<7yVmA z0w(3ckH>8dK#Pj+t-Axw;{5N7q?Z=y}0@}E_p7wJKuOE$A;8%IjAZ)R=qv++v*l*P7~#_uFF zzHXqK)poEk;wD_K?4hyh)^;41#m>{&v1+W0B%DlJgHGxKandzhZ_)nsfJmaMK#e>2d-fVkpX~CmnA@5gW zm5YU&;k&1z>CWK39vM7C8SKm!IRwqqZi1ON3FH|*s?;xMQ@aBpEI;|{l>Bus-dnkP zs2O2Me|rUd%un!fcSZiGOewvzhq6_u=*a4E|Jftux7{g8B10Q)N(tP_4^v()^HVO7 zxs-IeC|p&_6*33uWj#`?mE8?)rzGuOlDoT;wD(BzU|y1Klw_NiN;1&694ww*>AMGD`C45FnKJ$`%*$tAgksYFXOl}HUu{G6BY z7R^iO;Igd`tq|30mmTh@K}dJH#;x~1H-OzrQEv4zzSGOt5(C0wZrFk$|5>XJoc5Jd z(M!_1=&Db@;N+U?MCvtenC_-)v7 z()63bU++l!x4haM$km1ph=mFGlLi=EQl?tI4M5fY7Fz>1_S9IsY3+$M0XK%fwreIJ zlOFi5bwl$?JP?jutyAWr;#2Xf7SVS(O%MFu>1zU8bbio^W_en-4JIc?3SwztVh3R# za`5n3_i|04__nFaE*4m}m@Xi=*bto>P*XHtPqzcB09CwF z&#&+ys^n*SPfBfTOmRS+gZsNNc7>tv;%bAU$s9qy&ik;$_yMKAnS5}rG(1zT)y99x zpRJ{c`NwHaLwHp}XAB98S?CsNb@hP&UIy^AW7;(bFU44GvgW)sZU`R}pUlBxR4D6Sh=jsy%thJZfIM7z_XX=ZTVeJ4A2zFU$RlApP}*?`8B+ z^uoV(2;4ybA$Z2GA$o6z+|W_P4lx9tpJVgHko9T@z9JVy4>XR9<_iPWw$nck$dUsL z|GIcjMP9g~0~$Z5&kktMYwOy*TuW?BRs5fMmxP8IY$Xj-Ufn9 zD#d;drRN28LeLcg1S+Qazo1M0;&z%H%;_HmcxnwSUiJJV1i;iD3|&GsA67Qx%NJg4dfK4y1;g zwk$e4=gyF=6@NKredwy;p2sW;*I7nx4VYTVon%-JNsQjU9 z<^5je!(C`gTn{yr;_bPVGiuSSjcTNj4>^QHz1o|GqeFEcZLgY<*TrbA)BUni@M^6xdEEgTI@LP zJq&>KEAeN;h7AvUKcZoC*4Id1l?^!<8BE7;SZ1EXqDgoe#J|Dw;84+;ATN~a$PW;) zZko2XK&iCbKw5jdb>~bJ!bn!bOA}sDx5j?Yy5rMnP1zSR&rq&&P(_~ZfS)antEKY9u}sy*v8tjl$9aKW`GFgy=d9y#&v%vz zrd4Nhjbgj5IuS5Pph!Bb4?Q@v3)D)o6IAn#0Wj8!#k`Vz?l}_@p-P|@RaLPqagg&c zYsbl?EVhLzi7sjq;p?3k50xg$W97j-4lFG@538iuVpxjgQ5gEv6~X zoyY!8St(22ZsXrOJoh|K+-@J1bQ}x%Vgl9Qv0PEH$Vw)Y%HfcM+j~A%b*!I$g3_GE zoG66H(l)ex9<(I7r6cK>(X<^q&6yvEf-enQD1>6vHjDjHWL=+Kr^1xM74`(+qUO+Jttx>v2$qxk!!QIQ)Ulu8D#r3z&rWIvJdFhEz&1j3|plmTv$c((v$0p!c zJnNBsb1NStv+**I=G5+WD&X#S&fFdB#AS7wr}Vd5b=#(i3LavT-#kgTN6{LDxTK~Y zw_yu|MZ9}C9-U>dK}cQ2#f_p@jjjPSw$}JcI!soZUnRslSIXBW??#WKXbL3x3ln!| z_jZ}fYS~baN`TD4|DDkDzSud8IW5;7w60g`&AT|?K7q(3PP6~|fn9n`%Dv6)1kGWz`lbcem^c zMm7FQ{lUO1gB(q~+L3#&g2ocbzB+kV&~8g*e;3<}b>^CjaS5x1j%ipZvWntzOPiV#@m#&cDbWlV{+3_3Kx+G$DAsdZ1BVq?|kB0=z1Yu{y+$; z(;+HYpe?mM@jXFP`Z4bnR1}opQzb|!0n39?Vi35!S z2n~0;t0tgyV)ZEA1pH9Q}9=MwOY|3~2I%VrYrd_90S`TqlWmlN2I*VfI=G=DQ=cRkK(!}RRi zi*vm#w?Ha?!xv3My9oZt^e=+uNSKu!kh`B7@kP*flxwcja@+y!6d|uk|AUvgxW8fR zl+Objkx8{r?$2hC?iHH0!toa0fjBm<5k<>auUZW}k@(q9vP2c0A7CV#mvgy4{#yL? zI4NX1MrlyBEu%D$L%wys!vmBW_@cP4CMEUj&eu|sJ>95XFOBQr8M`jNu>j)lhnomi zO8GiGq$5&WHFsk{q(axA$-)h*(X4EUIFL(Ou0py4*s$CT@mb@>0$z%{|B1BGGB_>d zpyZXrb^LV!<=?z8J6EO5E$nE9=YXim-c4D=+LfT+uT6AdcfGhgUvV$_V(zS zfZ0S_l$3keFx7}?;D@6(Mrk*12zuq#QCkbxkbK&Bd>(Bq$kIlL`Qd0<_SqO+7GPg< zZyIh)Sqv$)3W3bs{=M5Cur@T*-Q5$Stm!l!`U zjk*uzN5fCsKuW3&9*LOfEA+fdJe+dGx`>!v2~5DTHIx{Vvi}JF+GGHFN4!&NTbnn9 zo_D2Kil@XFht5NN>$YaST*@~m>s1lS+Uv6>5AI&xJNR=vfvSf`dC11lMCnW2_6~*- zN%8?9-Zvx`PCU(YJSX(%Nb8$9@1KHJ0Gq|{YU1!Ce%Ht@<(tNmvrDO8RjWHqFgY!1 z*bD=>RgWz1_cRmdc~Fi&KWIYSLx7 zECguS6_Z>b47M!B#g?`e9g&XV>>$Tu8t||;acNByexNbz082o$zt2)`ZGLSwTE|0$ zcFxGMNw#U9a4Ne;63n|`?w_h3mi()!ZxxhF@g&VL$kHVq93PSLPioG2o8H}Mv=(hi zSTjFR1GG7YdAwDS+7OchyDcUeqD~BLz}5uV-?cpQd6=}@U(oeKx>gaD07}1)i=ECk z^fLfmef4yGh%{g@z|;&Qpi26mbM^pW*;m~MYDOei<3NLPV5VRc{H`Wn!9_cR&;rvi zhI&Y#;gNW#RN%Unlm&$ARs@JDH#BqaiDChL(V=rCqVY^mH&$@MsTj@rbcD7*RFO{K0B7hqM5v<<&8 zQPv3c!&9SnI-5eyLyA!}Y{S5>Q3wFW{h6@f<-Y3`vl%#1(L6J>m;P$=@EXOx~Y*3bb*Q5cz*}tTF zOBWv)6!RL@*#br&5{ZDB!hP}YZ>zApCNz#FdSv?8|Kpes3qzi zT0ECL+m~KDSI@L#NS_ej7-iSPeRwb7Hc~fc&qTvB<&M((=tqnG6X`^N zpbd&#a>m|C&e+SP{s4?&>HDThi%b8vP1-@p zmLq5sQFS7bBgdZ>mD>HaT2}?@)UNJaRTaXRnYTZ)Ir>3a7r0FgB zm^%oSvv(Gx44yIsFAW0Wg^P|CgO?gUQCg|XL573?^~ct8LP4*L}EDNAF4oPh>KI_mEN9-f;t?)(+ExHM>#&!73hka1dOPtr3Pf>H{!WGq_ z$wSl-r&CY(je;ul27m`n0A315lW4|M zu1kItFj((lS!oB4iG_i+6Gk!_QfZFVzMZ1&rSsihrt{q#sS{2afK%DiL61cGk0&9$ zLHaXLuLfxxsQ!1b7U)GgAPYYxB>64XZxtwiQ9sYIt>@$zC}QSp{^==b`F0{FvdHTB zGBSyqMl{<528-&4OkX3Qz!4rQOQCron*ZNfn{w5ECbLlLA5Br)uaW*-Q@ap^iKab4 z+rGM9iL4L&P}K|rWzL@9gj(H~GJJRg8k9C!9fISTO2vs&yr((*?R3zQnN)p&PlJ4)UDzUIqk=R=W3KyfXVOf;HCP6eC znAoY~PSbfZorXWQO=z!8-Ztj#$^XK$Aaca@nH2ttOP{7)b3{Ph!zug~mwpOi>fH>065XRqcF@XR<*#aGh{i)GIH>3_*}km&YK139AjC7zBiMx z6E;9PA`7=SpMmDBLUY)QCO7 zDpQudJsIN`qt*IJIB}r?PO)D0Yup{%X_T3=e^(<^-oJY^PJzWR3-voPRnJ^C9tLqg zy?>MJg|jx4I$-Zi-A>7YFVDmbOAyp}tmYVe3qA`hW*0vyq-+iG8pf-*l=mz7IS>Qf z&pR+>6c{BykOzv=i4YbP7fcjKO@wa)SDGU55)2V!xGfYz&^lY+3j-hILd^);9UUF_ zk7KVR!ra!fycIVw=>RwGSJtc(YSYrMAXo?x1iVBD;(<8?K@A~j=lK`N_wgkSfZ(`V zkft{Zxoym{hWn@ZaM2c_X}a!({oEw`T5v2B&C-5XnPr)_Nx~3EO2iA`<_=B4BYn0^ z*b{Vt>7I~d#nZ0TV6fp%zLLA90dpFBr%CTT#&nb7qRJ@3=46CRrwP9!GkcR}1TGPC z5HL7bqO2Zz;XFuGbR*Td0J-^;3sXx9rbF?&Fw72ivU6}u%)@n%s*a>p)v=`t8UBcA zs@q6BAm~}zJX4&S1oZ)u`z`RC$Z@5mr;8+S8qih;%-ngY^t*g9J*1TK$VCqWtnXoZ`k_U}f3JB?*qik*{l z;^^vPWdd1Tb_bU$6SNsL zJbWO?$L~(o*{Yui`!m;8HQnEQB>D{cTh+w=$%g|=21f|%pkWZjv_(Z_svH;kp;fpw zNorS3-4!(LD%)(Y#SJMUW(bt=QS6MlQ8O|G?LMKAU*+cx)!aXMZHUc+I%2i)l$5#I zXN9|KLqAd(el&AUz!_Vg(-~f@{Gu)9v_~w3yVp~3X!=IZH@nEBXwN#jIi#Pf=?ad# zIG3}`&lzC7CNK^rkq+D?L*)NIKh{`&>Fg;W{~fyuhLZ|uK^SGl@uXb4hl-V) zULg@?2r)La`;qn~PXutjJ6VN5XQA2clEJz8Asj?Yh&6#xIycMF_?T1Y0DmHqHFWef z8%hWhlfCb6UK7CK6$nGb4q1k4X3zRPg@h{kiBjl zu_j>2qSYe+mVE+x5vx#3_N0%WLXtnQh!2j@tN7p$^wjYla#C3tadcR;hSRd_-sZI- zvnnZjVUcN7WLg!ORz;>&k!e*{T9#Z@y(Z9Jeya>^b=QVg$iUl;AWscdr4OdXUXYtc zc&OCo#_{x>+y585LO|uIqDiYmo<7eBZJN4g+McHE@u%X?M|Vf>n)vp#)gxAoc)Rhc z>X+tjb<^X$qf&A|c%IO3-=?YA6c`%@cZi2eltSF|T)Mg2-%`FtD*MB(?{=T)S%lEW z6SXvgKIzq=2%fVe@;;~(h?n4HJw4K4K}zY@ zc1s#&V(PS`pNQjI-zVwT?@w@BAf+mSnKZfdxC67 z>!QXQU39#xdPuZ{VJO}de?4%wt{LJLT_huhc9*V^#Qp4uH^+epKe&G@(AxTafoVF! zwYg6dzQ)c(o9NX7oOD-4ax}7osdL%rt^i2+PfsygQ|LdITezKya0z!-q3@&{qH59l zQfP{{eA2R#R-m|0C6718L-FpZ1A6%YTR~m6y1Q$$$f5jndkC?XuF53o&ODv_r8&j> zb@cvwTHw-lMIW1UPxXe$*<*c(n;zE#^E~Y&Ud)`5a1eF`2n`w$h)~Fpd{-3vL0;Re zn{nIL#644ytioLI*c>vty9Y)m%)=m+RiU7+>!@rnbXH}sncX{X`n5&?Fk#i*71;$j zX7T6Hzrj$i|2Y;b0*heMPD=40cD*UJHvkh_p$b@_s|w8e_CGUtfAh|!Cud(j>A9wj z&U>T2s(nB4N#cXVgH4;89%^D*>AzZNGX2qzWxo|qO@Dg2no7t!T@&8IXP;Pw?sGZ| zJV(R3>8fnHXz`TYp65gDDbH{VuQ%s8GbI;YY&l(b&{ZA(vW2ed6c>~c0DP~VsVDP) zRJW|+FkRf=j9q~f1|HJ#f5Hi=Jpk|l1l&_itB&%0IF0 zOiE0J6i`LS42QYED+4~2$;(Pa zxJAqj&y>DYGZH&~Q-kEaO4CwaJqaI@qouxYghXq3J#FY}+b^(D{zoP(4`gT20en4r z5H{6XdPR1T0_HbW9>dO2Cz(KpW8pS=hG^iSUXWPjkyXiOGMSDJami1v;tb?Fo5)?W z*xB^PG=h*irRKz(z&%jKqdW(B<#Q^(&-Zj7x~9q(YQLSg28V0iSD&FX`z$Hnfcbm2 z=hcMpxk)m%dAg=`Og|WSW00nAPvD)-t$bj*Zd%x~--S~N$^JM6rj}+Yo`mi{({niD zb!-+<{Y0E9LTG<_ZrIl3Mvo*F=8+^o)a#me1ykr+(KHH?BAEsov_Kj_$?O@jU>#s{ zxfF*%+|YD22fA9(cEwYH+y$JB3AB6jbYOcT=(Z=TmnzVUxNbmaDC02QC|Us&_ulDG zCXnX(@FXHULWE*YX~Gsu*i;QIj^|ATHC|UA5g|PD7ZTuP(3A87YAiuW*|zC6pa>{8Oa}VwQTnjFclxb! zUz)36K+{mJ^@?*m-dijxQCgt>-Wc{K1fk}kKK*!kNXlCkO8_0{qQh&n9ad|*{VGrs z$I8XJxqpi(oUY0(z#Wszyh3btsV=U`Cd2cKO};P)F59Q+X6zi0?oh>o$oySB`x%K7 zxR3kACg5nx%K9ZpmDOGQ?(s4@J7iM|b|W!uPBNVPceq)25K|m(P>jxzcL&-% z23tiw8^l9LD@N$$xjM{(T=7H12VIJ7rgo*hoxCZv==Kr{fFII1$mpuUkv^)d6kYYN z6lc|PYN(2`8cQTu|mC`B}Q1P=>O!nr4ZXM%>84w8BkO zZwP!?0qj!FMWXVZ2;)cU$kkhtKR;$|s9gF;Tx2`P=)6b@bc5iUQC+x6X?#C*T>#iJ z%ifV)omZ+=_NY2vgk38%CHx$4$b1`xof`);H!n1z6`{O(BaD3X1rd|QAb1VuCxv7o zl4Y|>>|-r@p}6<5uu<5Sk|o=KwnVhR)+xmB%F^XPAWYdS4bV2xK;M%Typ>m-B!%E3 zQ}CwhKNYRL;_P!SyXrq2jfBw!mh@o#?x6WA$qxW$ZbgYQ%nKU=ofJoO zPVOQP72_LO`)OSDn~!XlF9FR|MAp!^}Ba>3ZwvL@#M2}mqL7)Hv5TD|HR)EtO~6Afl)dtKE2 z1Z#2#Vz6p&1_-Xnr1VAbGOaoa~8@N4=-!fY7 z=cDSO|JxKJqxD)nLWK-?yHSOdT~$prFAY{@w8%?yRcQHESHoooK0s25aqL+&jURq+vyp@{%#sFiW5i!bvJS$?UW=c=y4|_q4tfr-$p>XiD|QG7S9rJL`c4I}|b|2vKNUhpjp4pc&ia9+BmP7ggJ3wPG6 z3G9%;TgO8VrYr)+2N&@J!1r7ck)@AJNCiY|4LLk4O~|r$X6YS(@r6bpf?*V6d2XtR z$QP#mY4(3`w6npQdOmz+cJk~&d!4i*?;~=2%jln+@g{l`h>|E^nEeTwx)^4VuN=fU z4e`)KYn;O{r4slp3r`qDwYz1yY&brJlRz+EpSmZQs=`yW1${+txmQ=CQ7kVFxiAXJ zfjacW=Z$*S(}MZCS~R^}nfPv+FYLBa@a4elJY`iWaRBJ#yWKj&U)HioNJVfD zvvp*a`%C^oJ-|c+P?!WEaz!<+*<3eHPn*eTJVoxF*abh1l*mPz??vjKYM1 zooFV|)kh+1qD%HVJmUV#SZ;0Ef~lfTk4o(yG2K2+8mQv*=?0qY;y|?wR&Qt#gQQy2 zbdCe6DTm@$gKbb}q;LeCNr;+lY39LtlbzwUbrFgyucPva-Nco@yGp2&GPL?%>ok<= zBrcg}k;>8dagBh`X-ldPjC^hSRnxl{Qz9T;&dn-lZ8v`Wc#&*81L-B(O4iLdrqm7u z)P&mc`|F~3AQ|>@s?7^-dZ3=2#J|BE+pJ2N?u9M8%{1L4oAFcqdm|m}5*7hqb}LPE z>i<>&@82uy+3U`FHqBf5OOl0H2dnS#4(Oy{3f-HEn%>@bsi8pvh{vs{)_hJnR?&o}vlZ7qbWCiPo8@+dvT&ogAKL}K z*^WA*Wunf;>AI+>fmuoV{+-aPq(BS53Ye@JNz$IJTLvA($H_swGSfq@%6_Pp{gso@ zi}mk-9E-vv&it_c*}^02D$4hEsCW9_Bk^$J5-lGTWp>Y!lX^Q;{IVMGthUX;yS9Bw)w# ze^rw<^8B1WkrXU-9B9DAy&EdX5s{528C2_*)V{&a;act{?tnr3vcDh^| z3&U*~e*-U7P##6v<=KuRmS;1^4pup!hXEszj9Yb-W}w zA7}h`Mt&Xa-c*G!=A0}{b+y9^q=)D`xE{#8-Y_U8`Jti>pv!7?e_DNC8*!zs~c5jzV+L|kXduyZtg`lJ!q(WqEGgP2Xjw7dJ+rPh zY8{+5{us$RMtoi@<}~U|gq8J`uGHkF+S6jY>;}&NT#W5k! zHc7>#8;DfdVnHSF#%LKf3%(Y!Oi`-^( zW<3f){P$6~9;<&+4?F}!0q*B?JkkL-sw_pNZw#p@jzyremr)JroL*ZNY@EFonqCO~ zWs?Qi*%bTmRk z`%A#qbwFbc3EAjGIE*6GH4JmiSlu`S_i3?ek90uBstN^Ag%ps+V7(Evfc?ONfH-@V zD9kHKEo9?a5`|O9HnA{9<$)x(7R5Tgd$jH(sE#0W-8@M*qY;q|W4S(HlBs`KJJ)ZS zv~AA)bChi-8W(A|SCfrH5QLto*V4^1}`N?SpFp8p+O#~Ph>mhc&ue$-aSEIED7N_bisqTeK zu$E{npz1ED?gdo$r1S%@lCqfQJ!}WIeDV3%)xJBb0q92;*8wpSQiHm=;o(Xm#2D`}g#Pho~67xF{@UwB%ww7yS=G_voT-p9ks7R>?zayj?^Fb$Hwp9pki;O402 z%Fyzt)-H;07MTw$Xwi*P&6LGA;kD!zyatzHw8E!qw50UCIvlS4{lhhN?l*czqLboI z<78+}qCC{)<>4AkG_T-QzKU1vuXxq>;nmoWSKn)R^}mkSf;WaEDJw#L%S4=jFu)fr zMa5>s!ULybZ|XoB#EY$mTak8&%+#FMFcW8gs48#-T8CtiX0KTI(y89Y3Y0HyQ1Zqo z@vmy8_03vyn;<>CI~oLy+ju2#NFVbf<^#&i82mP{qZnDlYyTep)$oo{TSn0afL#bQ{!y#; ze`$LU_^7J%Z~T;d?zBuvLXk2PKv`SvP(w)O&Lp7jLT;kF5@0iv5Y{D-8+5xm!Tqfj zCZO2RfUaU=z}3~Y1auW$Bv=5kfMs^)4!Is$N+CT>YLYmrX|RBLXxH+G|4#C|KJL=={07M+}_uCc)Nh_AY^MAzU(5If{uQFiWnxaNavY5b+s)-@5yzfaym2%O5d4zNOv*JnCaR?+?R%I;M%vKjsnd6W$<7YAB-FelkfJrjX?{`F(Svp>|EHIKOAA4 z2HeRf0-{j&=mmOT=BtTf!l=7ECOr-dPB);R5-)yq?l({Mc}t!emOr&m)*z&;MQB2f zVX$tt(;`)Tb>p5{=w!`)A7g=-VML8M=KFR$uVwSZF#}VnZAT=Z$t$adWwHwzPD#(N z>gqDcAK3k|ugfvveVZ{7Va^YiZwZ>1^K$D*jK5eb>F->E`wz?g7P)_ibA!=FmiFxa zEmwoMRpKmvp2Y5`I$RE_uh|Bo8#z)g+Mz=8t3iX4ql6+Z6SZ%Gp>e(p*vWRV{%Dsy zJFI)tLtut4Ye5qMeYbW?5HwG58aUUg0-AIUMJ!?*TyHRfB}2SM#V6) z9ri*HrIt2*=qcgiFl;cJZw&NFwy8!O$#U{wOzhzLikav&chj5?Js{!TSNoyIvPvXb zN1O9m_<7+d3*suPDdQ~SP!CYmzE|1&x?D`I?lE0kdfq4+4fh5(F!Un7vGe6jVd7h|$m%)ux%T#ds+QZ0s0 zHH_r3xEAvAXkq*UHBr{uFwy?CPK>tX&jd-HA(xTwsFIW&Soz-*xZ1>)fe^&}*GrQW zlqw?^I^#KRo3%41PB2K8vNef^6G)b|_fapGcjl->hPz%u8V$TywlIF#s0Y_>rS`^B#U$0<&RHg_QiLuw3UTSp(y10913Ob$p|1%q_p>I_hn~;d8 zeL*sQCLwHNz(k-zh3Gfk$qU|}{h73Utw z3iRz$Q1N*kWW;7@(T}Hz$dDum&Y&37GcNZUB`~6&m;onXM_-3K$EsKg_}ovSsg`l?+p`yW z>p;dUU+&+=#S5v+ya{qFU4$kz=$L~r4;pRs_$3K>61woV>4@+#f4aa7<#;a3i+0Qg zL8@^3Y>{0E@7`7kN3N|fYI(s`7((T{62qxN`)0v@aPKUTK-gk6Zo~_fNJRA)E9Izt zP9AB`%Oj5>MuF#=;Nd>^OK$6x0ax6=u1RDJUc73q_`N6|FZ>lU|6`vD450$STShXE z$T5QquE}l!p~d~x3>5I6MsqB=c|4A4_?k8@=A$izF0ViVhutbS{Pqe-uCx`f9VXnM zDa^n?M&Z%jX`sf(hifxzdV_H5p6>iv0}r=;-(gj+o7)Y;`u2&R!9JW)XDI#FKE-{q zgR$DQQ8A1tlY`A2S|+SAQ9 zkC(Rwj7U5DOOmeMC)M*=`I_v}FSDbhge{(apj;UqN3lDb?r%dyMcf)c0Hp7jCFqE+ z-4Z_{O@D8XIijpMQc7?sFVp4muRL?A1-E(M{WHD>8K>~p=^~AIXHs#?SUk8G16uRabTNYWdlAKk;=eS>pgzlSnuq6$ zc^^1wQLpHu7f*&_K;at<8#p>ncy{pq4`7Bx9{RJiS7C3$4Hhlvb^9QYNJAiv_ScJ{ zj{RYd7K4}@()(=Xezg8@yw`vYJ_*wcX{>zRB=tOwjmRM9on3PkRE_jcY;?Rm92X_l zzJeUD+>?%1Hr(SKJ8bFyEdL)icLg>2(31Y}D_yWmG6ikxVM*oR@}!lN0+Qd?xXIDo zC`dN-pLs0Szb0$9Q$IAyoEn`ecf_a)+o@*trR;hCYa3{V~FxzYcB%%JZa-U6aSuGn`76^=HPuWiYTSGyn=k&93 zbfbik1v|A|dl-4M&Usgb7%rGjQG<}l9+-u0R+wNzW(dGD2p)yLm^vR0U$C!iQ%=-D zj0~NPuv3`J3EE}e`7+fs8y>%NAP7a$34I-PS_bqg{5JRuY@nfBY?&q4lcbeBj^2Sh z*HD^jC<+b5%3`dp!C)7ZPDlb-K2XMB7S##TWY|L^17{>H5EyOd3kwoKoq*H|V%b)7 zhP-?sbk?K=Xst$0yW*nOmMbUL8Sr3~{iX(yQz*HfaRvulSBi!`JBYuG57Mq8OXF0C*6*W8+M$J&e<@ zFt&x>I7gVKVW!FZoZZs&!dU4g|5_tn`tux-wb05wP^1DJh{(P$3yqG9rS=iaG-os5co-V<=4;_ z`UZsT3|`kN#qYPre2vBW6t(iGShro3`#p0K!Zm^iKAj=QjO1{@1J}b9m>c`b(K22D zBrA!FhES*IWl$3poh^gk$rvd&0sjJS-6N4PM}Uz_vUWw~M8PpwrK@6NrJ}Ca=J2Rp zJ!yXNcOF|2zcr5cWXO3vw_M0q#BYn=E-!SE^R!$-dbtRR&ncs#bf_rRA8Ok%d;9Ed zm0K%SQBG<({aPg8@B*aNs}vb04jJzaB?!D2$oK;ZK@G=^_m_(M1Tu|EKfLJM@delg znL!iaJEa4uMBYPYXm!9OuHwDFOXlbxx60oY^7k+D z_de%Wxjl68oLlpKy)k5Es@GhId750q1V({g(Ry_&u3m$Vv8qB^Qm3J&@j!*PfxADP zrJ?deKQFt>leN1y-~syr4r~@UAI9yupwmas#;k7QZD2lq3qdG{sqqfgb44GHef_^E zyr@+$_S>+|qUj+t;*=gyrJH08%Nal(V~k+Vzk{6&J%W@%!MjOAS8IDwQ+Ow#k^dk%!PM!+4QgD~9vl_iCU>qav;??395fQ`frk%V$2K6RP zF4jN^W);`3XocQoMWx(zHSTfu;TXu`p08sf6^*8%W8bOef%_`pZ9}pvQzKF%Sa>_{ zixh*cx{&q{IC0hi(Kkz(?lOc+Zlkzlqq~?{iV@dT<9&eCthDriF_az?;=w~PV8kP+ zU++tb<;~QKvuOgxC<)V!3iSM>7=%j)gxK+|EEQIMk=>jfnksD8FUHQM z0|LoL`L`}P!%k+}ZFbfI2^yn{p1@uj_gT3dd;iQ)bgKl^TqwRKiD{f}^_z~zeY~w3 zlv*gc3V5{3=6n;ORLNfHK%OtI%0^T>{<65a0ftZlA)fZVNxtp@vXYOi|t302VF_134z+d)d8Ow07 z-9`=gfl6j_?ZHY$&SY2=IzFkELXQ*t6k8?JYOCeq<666ikRDj_lbci(8#0_jCE7szo`HB%JykJHyVk}`UzjQib`xpCuFcd* zcUyKG-Kqu1H2s~Xrz`JIY@hP_l$U@HZ6J;A-e>;R{6=%HWi--Ckz0|o*~ZGv=mPd9 zfjckPUtHf=l?x%f1r<>OD} z{qq(KRrkM5Rpi6%Goizj9|->IA7mFakbZEj+qB3q^)|^!e*^->>gj8zt2VK11bN(_ za@C~MXa7Wi_b(1ZvXUjaco65M-i7<_ zr(trL7^kPa{(FNRmX%Z|_1A3A4;A6+2fxfK) zz7q(+4D>KSV+`n5^Aj6`wOrpZ12|SDs}nQwv>=8#19UskNMTx`+JQ-qbzPB(QitL> z1kY>(a)CL*(s9sl)cluqPMT^CABzyHrEw4tmQLLSDwKvJ(GeD@%2#Iq<#}lw%XEO0 zIZ;sC>M~V0GXiy0?AnLXLd5Zi3aSph|GAFUupqe4s?f8*ePK; zypN2#z?BttpnM6+VAoRZK>3E2N9vYHQ-gkRc5am*X%96RQ1QTN78g4uJ|4LF8|SDH zvxh2$ecgzxu1B~BrVz@;ogn;Bm+){eoH!3xV{{K|2Qnr<|4z<2rygpNN&pgn&L5Er z;j2~X0d^;lk0zjSS5O=QVR8%AI;Sd1>Z+lmiaGxxesKs!Vn;>BYsQZx%|}2k`3eLt zP_Ws#H9~_^%(q_GKoWz((Kz_{I4HfzK;t2dz_|Sm+0C>!#{ISC$@=Z}E{PT|5skCZ z&>2vrBXLlm&qvLLkP9T%FZqJe?Q(UPZm!SuF!TrcJD0KM@RE-vE%(z%kQ`w!D&dJs zx!Pu&?G4WMa%X#$v%T5bE^)TcQ;tn^1F#cz6>SwE_W7T}ddT<{r*DjV7L+x%dz{Ds zH+~Y0;QIFZO(5j)zt(ICTEKguc1gJc-a`Ov(B(rlxx|{fo{6i!iTn*x5*T6MYu_yY zUTI%pnmRW@n5fkSJ)xLQs8NaJ?X4@f-es@;yYp}5-K=nhLJh-AQyKY}o=^lEkm+G6 zz-)IfnZxYbbA)@6?lv&#EDeRoh2J3?VFX&Nv-29#Um1S-E5lEZ5HmP050urg)5Do% znPngklzOYKMTe{Z?K>{U!oYUxdm+Tw~FS>K>WCK;<<8n##f*Z*KrC#__r zGqY5cI7!jdnmh%?Q4Qk7sVp4^PLNQH=u|-zNUmwnKA~itVVWv})V6k{$P~$a6AkRt zaJnvS)glXNYj3~P+LzAGP1mNA?N3^uAQT-jlTGOe`!OBr1bbV_t%?7!ZJb@wdmH18 zCXiXE$r5+G7QQ<}1Kj-SNP^woI*NJ}MD3(F-{HVTFLk#ifXm@ObA^2@zzHYPPRz50Hzr zikoADV$A-;#IWy_*u&`uvDf_4PnPp*8WFxg<_78F;-X)`rkl;9#|M-%D`-}HxK3aa z{HREsS;JZ%Bs1A%WoU0S$T`xdm$bkOAC(S6^aDFj9-c^$%PHSihD07moaA9Z>9$<_FhpQq6%rRF99;@ABBx8Q)1g7m zKbj`G)EO>|#C?pW!Rvj4E7_C=(yqSbT($WVZc52-)lsRkKmA9b1&NjAm{xSN%Os!3zG5nOP!@QW_ei&Vo@eN*bleIJTtB!P&*}1VYT` z$*aA!NT@djvnlS{Q!iK`#?EW#>SDecuK%lYQ!u@fo!cPvt}aVQorjzxv5{d2DgPHT zUJlZrQ)oEn-6?jVw~co9Bm@Y$Ym%tt?kifCdeF8zD?GH8d#;9~H0+SBGPOh3$Q|H{ z3vgjapN|N#Y}2@<9tr-MBx7@LK3#`blFf5Jn0rm77FKW8A{RIB^GJ0bWG`N6D`cm*g;!e+wp`yUpYw`XEXM7f%XYpfXrTucI7QbGvnY_=x z>VdfzUXH&-i|aLXK$UQyoQITB5s;ureNhXy_yFnPHt;R@jmp35_od8^Ne~-9D9+!2 zj007DfEXCz!M{&l81a z--R-(=jx_>!_kQ4WyLX}*-_TMUDrry&eQKh$_^&?HMmNF!EtgJMm22dk$TM@gCVk2 zWFytkUf5N3s2+i@*ei2HC#Nr?hX*eDGG7BbKWq#!O4#`gz!rtNdHra#UH%dJBc=iG z@IO?B&YlnBuei5G`w`dw)}jHS|4~4yNH8Dv=>9!=Afm7^F$QYgph z{nejVU($MMs|>E-UTFd}q(8c}8VldIO@L`0czv!|$U|SuMIX+?Eif?ro222dK-vG$ z-P!=o{Bo11=I&R3F%1mbtnUJ}aDkYUw*q<<;G_hf%3A@wh8_S8>5&MsK|ORF)ZP^t zrn{>~M2vbY!e;4D5YZF!FSAG~o+1l+e@Y$3e*sD1D`uj5-)9Y=Rt#(B^mEw3y+(FU zgP@r`H|y|2c2cfdIA@-&#n8~)Fly|Cc~EtQ4`}C}$%}n3*d=)E=S;gixjxaIcww|F zW^(WIqcNuCvC(1&_dGsYbT(r29Ui&Y;?et@tQ)<+*DLno=TIE>MBx>!9X^W}T@4!$ zcDu?td|B>?iEpPe+yleG;-QxsFY~qWz(rFL2zUMH`MxzrxDNeKLq*&LBcO}B@2^0p zNbX&q5VWw6`??c3n7B4p@Sp?YD8arK@?s2`c!z5^Ee%>!#Dh5K*{>Er#{@;O1ax#O z{7;~I=o8-Sap#Ohk|M28Q@4 zI;HR3BL0KgooFC*%3!GZ4g7yJ)t^){*^G`)A7w`BJG< z>b@yJyPZ;zf5=itm$IKisR>m|)%TU!T}STc==>;ySX8(m)a}cv4j+q$G zF$Q^t(jzVCRiNF_nv=#%L*_7NzEUSwFHob2f+V234%K69Tc%!+w@`AoBoNQ@T$z{N z8jrCqH?(T%-94|<4kqz+bA^ULdgy0It{JO=9JsVqqeVeo%SJ#h`h-i6PCoV;-FaVnWaU{2nNNNoI+U}xNpI1ZCeKyo9c2fn;_kRu8*(Y znm*ywUa|BthG9)aFQ9H+>*lTlsSaNf1jf}m-A4NqN{eyarIU=n<-Lw%l+9~pbB}lHURH=sac$rt`Z*GMyv4gg2W zP=H_LW|(xXwY0#&)Lwtbuv#A4GfQ+dXW09MRtMN^7lv8k`ji$#-h4eyde_Y|D&BVu z^yoRz*Bh3 zoa;gf5QdO)z~K5jf&y!gR%%aj{s`{tPbRcyx_QwKTl*tswH0eCVW{oE zQ)Ld*-Du0^Mv{t!%F$e8k3(Y)W_yk_1821Coe?ahT^fu>Ec>I)>KoVyeB2EJ!bPbE zLP;%v)OF!7<+AetQdduJxQBv+$?HPqx@u8iM^&iD*;0%;riYk^q}a|u7;NXhr<>nE z%<0GLLF^3T7h}l0|CMH84CDG2DqISLfI1LOUTwyxz-=|SGAN*&f)|?w8&v~MTfnLt zq=*s}g@zui*8P+rT6aK)Lorqa^nzbwg%6H_fl$4pQ*-Z|`l)}_uw;6aaCa!-tZlC& ztQqvUAU&=SB=i}Gr|t#m5#FLR_RBE2l<{>H2b24!pt}~!pre_%79$b(#i@J{j9F2| z`j(<41ZYO9s0Ctovm}}x2k7TvwCZVpMUQHCwoQxxrkD`!3209y8_;gQp=Di#B)0Gd z(^5ejsWj)yYf(-nk5>qlEYe8-4%%HV3bEgY5uF@pg8>9N1CpNcJF+WZ7^>ZONngMB zpbRTx%r#QUoS<7Fdnl0WA=bZ!wE>~#o2K320Z{;Z1&vkzXkO~6%}LoZBgS8bfgr!V zL9E=j)KXHop``pAhoHy!*{{Earq248>TZ%Gj@o<$^Igx*y`K4KsfsN%J8hFJV{H4F zO|^Lp!p+~pWksu$F*Ij4L1ak>qJKgjmhcdzopD##w$mUAqg#9$SHKovBy!HA02O|F zoY)7Sdub}?A#MFUu@y}+SZn|-oVzK-g_Ee|8`=-@GtzpITn<1V(V{m!j#?{Yt&C z44wA6?C+KV>epc8i|1f6=O1h)xo;g@u?N72@I{WZ=Twt3`HRg@HxsRYu4gl8AS7?L zU=-97(?kadnDFW5j7*gF@0;NTSscmYkhF0jO);;-Xk$%Iu!8d?&nd_@Hg?fse^n>< zebvG;Dd5YTFHW#b)9OYL7(1X+|85rMc?tN0Tk5nV?zopWYX~g9p#{yE-Y;jN=QrI@ zu_d@jq1te_T5>|CcJ5Lig^e=;biF6Xi7uPXD?LS!u_hN+)o%$_p-C4sT9Xb4+3W&Z z7+~keaB#8Tm9il*WQ|57o5<({BwpYanG{Qxo(6-$Ging~Z7KVCY^y>DYt=5Evp;n( z`J%G6BgQ>c`_ME&d!T?t?;)o>qGA}(U62Y7cR{@kX@l~d47Yl8*N_Ob8ATJ4XBZww zm0!8;A*XA*%hC1somn!4!p$|dIh#97vsO~qLLdofB?p#L(yd$~;c zp0yIx<(fx z6B(0DEoIRj_!_|`gjwI~(a*6|fl~bw>D#)Bt#X-}(+@GwnY=ev_SZv|A_-jPU=jzL z24vQWdB)|R5`?=|p~XI6Mk(&z+KeO>2&)OYMg`7P*JU^)1y1l1t}F5`9pBQktE{75 z1`@;zEy7yKy*+R7g1EFTlTIc_%IbT}pCm?*PpC5?Ps~k7gwn4-E+5&^f`K|=D2VxD z>^B%%6&8^(ptgqf2!g`6KPrb87N87S!h_FR8-rbZAewGhYsai?+Us9543xh4812;$ z=5`xUg9==xD%?{GkGY^L46a{|zkP3*3c`8l6Zo*G!Aq{OHwK4{=y=B-X&a{_trZT6 zc%R+|GcWYr$*eAx$M5fj^DJc zK#?pyU=;$P_0Kj*Up+rk_P3Fe_(3x3F9wLg%)egu>&1G1eSkigE&dbzae&2F+|B$e z*okytfR)0J1d>2w$g;K#m>vbgjSfhcxcBmyE0%I3$^2B1fuJVME5+50%3c%KotwCr zScpuNa}h}W+B(rq2NmVq=Os)y>z>HYqk{qn?4%{N!Ud_F{P5Z&z zI~k#%Wvsa9XQ7w(Jt2b^;XM>>I+xmnbUe&(`bNa4>P%o_ko!VBEZCeoV9(ZrWY$5tDmy1BM;AUh4Zck(v^66JSr$T{(Gn12s!mE znO+G_01GX+WUja*u$WjK67e1MZ0tu#p8pb^#XiW3~ zNOSl7Q?~@$tZrST?O79qfB}ofuPfxRmdkUUNlXjwfYYzVP-&83eE*EY(G2A%sDmcHK(4AOSoIs6GfiERRXlmHQB}ujq%mBJeV85UO9e4C>xg%SL+}D z$cpKi0XyyVsAY4GL(k-FNwe}{hq{~d6Kr11DUQn15Po=<^w=>wVTAmfB5qww;mV># z?>DH#VJkA#2cQG(i(x>8w9^@ut&`jVSBSF)6e+!0bs7#SDK6q8@bfs3QW&QVQ%St<{Mo1Q&hEh5j91|nf)dyN@e zDq-;W8`V;td{6DjUs^uD&CMN|R%y{btV(%T0KD+2nFuaR~y0w#g!7gg75 zxvnQyQVmbN(n7R>xswSVK#Q|MhZRG&WB;dDa`&PHP^O~d4({qeParxB7?%!11vIED zn=r_fH8(g?l3b2p#~pU;EHa0krG`MJQTj;3Ai!-%3M5_x38oeOxVScUrw7Dv?zyRp}h4AU`E{rwV0~%7!G+QUi;A4<#-n_$9Ta`$zi;vxhvNY)W(EC*a#RQYU%8#8x@?kYy;za zKEH@m=09J0eBfuI2WETT4@-XLl4|%eEB}dDW;{*G*{w}?PsZfclAExP$n~uA!cv4r z*b0A~O|L(>6J7G()^A>xPvlSb+U+SSUnHJk*IoEYB9qBnp2@J#g3RKDi&)`;Os3@4Fz3Dj~)a#f7m1^V@=! zh*UGieAlP{$bL&%5fSPu2c^saT%!1CZ}F1mlKlcd?M)kZhG!r zscr_MTJx==p}Af%Mp+Jok7r$-3cmd=vcg^*jaXL90J5Spg}*P!yd}Tk98R~xyH=*8 znw7b3tC}|_eJ|MAV&eN15eqCOr#~5=rzdJHK4KSdGv)KU&d8lGvu(@byX6} zl1P)KD}_1hdzNqGag7{GVSeq^Fd{&APHGg>Y`-$pphJp!vTMr>+qMHP-LZpBaU8r> z!@!;4w5U5*sPcWk>>IxCGK2Wt-sHej1ec2--+fyyFF4R}L>h^?e=jSgSB*U5id9lx6Bg-Y-TtI06zc|ysq-#>W@qJjnu^k45vldq41ENOj6QL zrM`Op4}3Mk3&xL5=F~}xLZm{Ox2uj$w+^40l6|v7`_?1;@GDJR)hR$|QE~x_baWKfiIEAD+bTMnE{Q@-9SNej0 zlyd>S*>*JmEnjYL4kjHm-n7BVN41RgiJ8enhP5@AX0lHHW4~@CzwD7AX?D6WbDfz< z+XE`mVAZ6g=%43=X!HLjNtFPLtowlh`fYhCAy`hnbcCfi`7JiXaDvdlwq_xN%H@C$M2+F28O}a z)uNNTpTtFQ*X>Q(PGz2fLG)aDG{LgwVnE#wb!kYVM85;BRct9Z9c zO{ZmT!rTDDe6MI7{E6jbUu7)MF>G1eRSwWXsl-S={bcCuzs*_WRns(*_Y;yR0fWS{ zwrwp47X6|M(L#}Pbngcr^7cx`K0N=*0UTenTLBgIl#FiGHr`e$bMUmoa6CP*qZ|Hi zkk6T*o;ESEE~$ybz#jfN6sEmQ?gXNZbR5u-s7ud{|1>=8&6+3?kpD2YAbAtU33K7ZZn=P+PY-&GI$t{0|n47PFhY(naSJERLCy)!0Z0=G{_D+E~;!#sOKEfx;LH?p5K z^je8@S-NXnKA*ENN17wx&J$pZi?=6*;r?k2Mk)#qrlR=IFdB_WG%~`NF>|%C8qTgZ z){v!?{jF|QGv=cw9py6dFui1sKxb0&2j|ieuJ4?!*K#*9rnGXZMs zC*z<<7Ck>5Wk~mCL|5X)TcjOa0(V&G(oU}PegxQs#RVUeKB9ak(8zTExoUy`?~c(8GWF| zkNFH9&Jay0vIf+{L=YJi!NOzNRspU$u-_2XDe#f zc`9+wXGE7VMMR=5J&Oj6`KJmhvI)Zf-DV+^EW!Z4ya9{a!ySeWn5NirU@1$Wgudjpg>Aq#Eu->j}l5P&a3bWt>yGr<2YZ&9mG%`SZU}vX3 z6_*tWN4bt)0S%%`Cs4X&4&f9^@8&|4y%UqM%Cb3>9eq2|ge?>q9f`2BN--_`1mjoO z{)VLNCOH{Y0RI!oz5WHmFhrZZH4b6UMnt)H&n&bE9~%3H2T0?!qYyfBLG@ZM^y9VF z*bunDYb4_*OiZ@{ajL{C?uVsq(}n$wSL_V;{HQ(NX=`Q2I0turp~Yuw%zgItfoa%T+`ydxFF| z(<$RSfuT1&T!*!VhdXJnT*hcz>o&&z zm)vGGIl>6`sgB(SGR}wN)}R~g7gcM#tY4|jEXJ-ZN3-7ha+qc%PZG- zjU;O?Rj^1}w2jk`#tHH-%E&F1n)~wcd;OVVd8<4;3$os0-XumX%*s#vj}uGT`3r#L z+hakhNoxG{W_-*{{7+s$zn~%Kr%2XOx)@U$Bw2Bo{U)3=8cQ_tY9n^fUqC8qB_Ct@ z8=up|r63mL2nD)%N9-B+I_;w7<^COiypsz%k(4xt4B zw6;#JPZ-C^1&U6tKRt6}&`RV9@91xsQ{0O1vbLC`@=I4ewBU&n0rQX_tX=D+K0M-4 zT_2^hk*7)@1-EG=>|}C?k;tH1Kcq&K{XXcjRdBA+d!r2>hCJ!43#4t3%NMqX{ z!b&2_q0$JlQsc;SUYzbK9nmIP4X9hTWHpMnu!0)lmi)zGJ#8b-maIo2Nc}pT^FOTB zc~;k`uDg)1V??avmtC?wysGY+@1M=iDAY9Vf!dG!dxj$C!KQh~X&ZFPJgRkaiL}1a zI>1K}J_%Z9ndYo5(Y1NLCgINKh)hehVB|W+kkrUq?x?}(h?AZ4p#5XeLi{jf}@2hv;lpdNuPojNWr(*64UQ$#;F(<6-yYR8!r{tw3C z^peVexDVdlCV=s=3u?+mq39#R%-5V5QZi4@n;c2*zUA_h;4N?{H9q48*0%`0WK zfl^i*@C{k54QnWR)?V@kmSo)0i0b__S$kNJp&*LDoVkHAyc5M7^7yp1-m?XP-a)U# z%rKh;OJS&Xa=y7$iu^me2*O;O$Bdk$^0qI3*^qVkwUnWA4DMmp!xm%Kt7n}3s zqqLK=Z5EITm>K*Txr7PS1${4d6bg++qks~vtOM!qn4qNRN&?i`9E{>;CCslJnsum^ zt~GJjEzN6SaEc}M8-ufu>^q_%u8oir>6Z?UPzCOVZ8o@p%?_vMrZ|18T2v=FSt>W| zsaet+sErQ5U`uA71HWy$}V>HgMYrFmtuH=DwmwXwv^peDY5zXj?25CWH?p& z1szmvSwl=x>fDAHUDwozlu5>NJaa{j1mc(aFK9JaR0=C@#W4joYUL&w?!4widG`lx zsGhO+8$=ug`1jjTfxfmf?*MA0PMBckzE~!7>26G^ysB1vzNnL+D!bb-TyO-%?YAyi zO@n~1<6d1prDeXz(rm8C)KbtNYemvbt>*N$*mK_Y@40Uo=jy%>{Atyj4ziZhnx$FJ9-S`Ozy{#p$z%$IkDZk==Jt}Qpx<-8e=Zbb%75gn-1l(u zKD;JrCdpj&VP(BrAem0}u3s2VKUby@2(GGu2}BQ9iTF{s1e~0-&@f+4-dCk+cs#{D zOUCzNE=;M8$2vQ&CBs#i_;3{_K0GHUnWm)zhbrh}F>LjCUhI-WS)KH(`I-EcF~_7# zxwMkwXvZ|E`b)FG39MrprjdbTX)73&J9*tSgviCjs2mS2LN|V_smwAau_k1G*c0LE zfvU|jU8Qj&nxO*C>{ldHjI9dtLg);UwcEO9M3W~S$E8+HxPUXq% zrwJ!Z{!10SH(+DeVhY|&Bj{dtRLP8!M=%*>IEaDPGVANU zBvwdh6ak1j@!=J1_;Bvg(>c4i9xI2>OTZEJyim_`=Xt^Ag>wQICM7>sSwD3_PLcy= ze0rWiE<-dIiDj~^S{Q8T_3W&$^%4lLpUe`OhY->6w?JH2VW|qN{@ns;R4w_|FZ*qn zT+gtq2E?VtvR;7`_gpAT<4?~L_8NN)h?8sM0!3&x0gHWtIOR_KzH`j6gFchujG|8FU8uN`m{u zSpO9uUa0;`<3$E-+d1S;V1dxIWU?$bdk;H5JR)C{3FJ*2{oPqkwvFE6U24nF;V&mY z=S4I)P(Bb3j;s=-+x{gx|NQPF=d`E{+ijBaXB4J@cM7N10uKaM_(f`C@C^351~t4g z7AWJI1CHtJ4;cwGc)jyhnyt;fmB_ai=HE(J3EJzeD=-=ipLl5c^WLRx@JNyKNKo45 zKvvW#?W>cag2)1O0usX-C?nZMMzH6~uBnlH?dD31Ts)$(IPZbyF+(3r3nOk{{wsEV z!)S}lWBXG_U{z3@a5mHUn zpRe2Le;t#4%1B1pf<=Hg-+26OD}} zAh4-Zzs;SBlXA7P7MCk)IXMo8^!^$9gPkezV|Be&Ue7PCp~nyUaU@ZWgS{I(WRV2d z>X)-2tCVljq%3*GN%X!dIYs%)}@ov0|n$w{iE~Gw%%H z3!~D_8Ppnd+(Atc^c8Xey`jbx9syIkO@LsO0~bf=bD+H1hjZnc3F4ur($gw`0sVdz zrB{`?!bdp2an8Lm!RRBCMFPgrX6ew+9s%KCe!29JA(MKq7oPMz>xG3NB7PqK&}(G& zW>%wCarstP3X>ee-gQbI#TC`r<_ zc(4O8q{7zLS9_<}!<2=zUy#I)dQd{dndHZ8McvKKuE1#F8mPO>67p02Uj4iEt1TH& zbHg-*R^)F?#f^3&97VZ!6OSx}y1&bl=AMHfjt$9j?=rmiShbFfX~FI*!^`fkri#qM zEO-5D>RovNb(5X7;56NXVQ{0=1E(p6E%KK<_FI5lFMn^Qc|`*B6a1AqA{AB*A~MO3 zF-Zm{O{?4+qJ7bFMPhRqHe5wQn#QX0BF?0|dFs@>^rq5`Qe2rKwQ^%f*>0;!w|9qB zWsc1OL9=-)$S@`64O4R7u$)cpM&`R7BcJGV(;oFFbFP+eCt!fnp~W)2n@R5H+MfCY zT?>gSio1Gjv}>cXg^4!Km0>F03f?FTi5vn$qXWV|G>`#1jVb!cDo#FkdNjtS32A z8aA*{%tcS(78O(L(tWBnRN3o_rAQ?~1bWw%G_nKbE90(khXT(5q9YpwQS#o$5DT)q zTv{K#obj?Zg6MWh)<0&{nGWC`m)Oy>!&XWDFDnQ)+Nn;38ey_zn7pgOOS+T?)BYKc z=2EE|w7(xH2*XulAhe4q$G-a#`mQ}?a`($K)zUxeUXvT2M1X}VRJCv|fGi!o1ud1! zMq^+Lc4itXRKPV^XN=ad)HlEls*W-nWkCrB=}%-AG*|{6MvfEwf7J3UGA#?*ncU2@ zm2*BWTU!T%Xa$t@!0b1?&@+!UzJVqh$8Yq(*+`LJ8pqfH@?bP>u*)tCM{5n!FfB70 z0e#q*Xuu)t=8vtEW#(?MjEwO!qs@@ph>=2s{Rke9$QaBg(fHU!7lz4o8h3_sOsx@v zq<|lb7~s>l1aW|RWrwMLvPuj?dco`7yDcu>Z(i;<**T@a0ld%v{rVVq1=M;>(gdf7 zY!x^~o}u~ov~zvsoGrn2PCk}1McX|YElBuQTQ;#878Ij!EL*m%Y*j`z+#Mo!Pd zj`+q1(@)lql~G{_$}`e~=TJEe%&H7)uOVwGUqALx`GIm7Gqb1sbuZB6m5mu>)%Q-z zgfgpYx&C28CIs4cI^Aw$G95`f-JZ;-1j28R$@DUBs`xzdLBs3bvz5o7kOZz8gc7I} zdP#>_-^1)zVc?ouiZY>YPS>9xOVF@Rv|k~X0=2b3V8F_pRNZN_bJxo_((5GtSl{#E z@d($UJdih?FXHNpY%ZS1KoD)6WbOFbomur&(BkvzJL zeUi%@kiVbH-%BJnSj6c1u@1A(bb*NS5ypX#zcvcXB8REu#s*oy;QO$zEpipZEQ(w_ z*Zj8E=ty$@a`pRur+?C0bNyzYTb+CVLK+SMiTmC8(sRgC%B+dm!f_m>_mBy6f4O5j z04?RI$yz#Flx&jVka$={UMCSGR5HH>gm(iQBDCDo%}!P+)pz|DtIm&Eca38C8)=2jN!6C!MF z8Oj%?LEb>*$!EsOpb`3cxkR|Yk|tGy8vgCffS`(0a7DF*R0&*KhbwcOEkTS6z7f4tgNJZ^)OV{i zpn0J$jLGc0m}7113Armw>V?eT;BYN(F1&6WcVlhO=Aq5a!Z0&dBxxjfB&|mKbgnNh z$H3z^$~Wd>-Rk}@Ua~+LD_=4an4dptq^yw+v-OJ*SwNj{((qHV+}|N_s5yR07x%!2 zba5|y1`HDT2=t&T$Jxu|xA^3@xYf6~)VG|U1GUf{aB7LPmDK&LAh%+qJmsY@2ErYF zPyB3NAV0{256aeBBQPLY31v=e!{F#1`%f=$yUlVVHpvZt3O33^NRAa>?|>v17JYIR zjKl)jvu^C!XxqZ%+;f!cKDGJ|8%T$Txc1E0SG{abEBS+bBgI4GN31;z&kC7qOZ%?j z2!lnA!rRG3If*UM>&~M?+2x%Ts94UIHzV*LEi877w@J8T1!mwOiz;*R$3_GfHQ*%34fiFaaE89mS+0E&(<-WjW<^-K1~~*~6t0smhG~C0^tKyb zGe+vl8F?asd=xa;m^_z6{aLf}$;}pERJ(XO5A$lR;o225wTu~M>DJSPrVu40)*dQX z&!KG0282PNg^{oYQOa^jKFZu(SI?lAy(foGcj!#4Pp40kz~quCJTCss4j0 ztLwfh2MUHMc>Y!);+(xXIq!G8^GboDBqkg2vfrzv;AjNq#i?;}nDZ~opQ(R;3aS|> z#N3m(cDgI@X$pPW-vqKv`-M1rdhGpJWz2ho-KpI?UL>!poFFuijMea3_zh=W>0G7@ zx8tuU-iiUuKS`p%>y#?msO2Y#Li0dUX(>K<9Zr1i-ZXjrWYy$*I71?5@WKb{w!@~+ z-ObxUcn!Q6d&`Tkb~p`nQ1H?lawbYilfjiLC^^#Erg?@ z5cf+GVH(+oR03^@c2Z0(!-29gj(OM3MxcY&N|29xD?}or5J%G)avgW)M&{O*r=0IS z1JOz9w*(D#LRf4+z|Ii@ZnAi+2dCB`s zdo#9v>{F9h*P(Ng_L|IJhDBsn8f;)Iy3Io!M`ImR8Dj&S-B7~yt6D@RLfzjZ2>+!K z1)u>1rw9>OG78zr7`_L->f&5)O_Bc51UcG>4V>ZxAa83FiJT*FNoOY@H7FBOq&0B+ zv%prllZ$#Yzc(=kp$knv052fWtz~cd7M2{y$j~3OQyZlu_!ac-7n1ru|%wy z4q^#ry}ShBV304(_(opIUEX|NN!Z1_lDoVzujDST%qzLetMW?X#n7j47#Y%*Qh6ou z#{VX-b=N-Md`E7MBu@)Co;)^zQ3oW&?27Vb>pB`tFzHjewggiMA~phBYI z70)DK#tb+`_zYH3%4UVLJn%;CE^n{c>!2D8ekJPMoe-EIM!yj_xe?_3Zh~*0HBky- z{r2&`@58rYs+c~zXDtd@ycjEXIuBvRGTeiSI#+TpChE*!rq3cw)R|%z9G)nORAPhS z?Bc0QCb&vXLt>frq|!C4NmWVAqDyLXX=kc?QmOVzrdu!b<0_NbIeC*J?()j?x!7VqlsxBh>X zK6lP{r_cQwFK@d?A7MR8_0F4uyVCCEI0AvR$f@?UG!w-MC?}-!x3Lf0sN1B+wHP>gK|w z?A#UIn`obqY!;JjMO@z3=WLDTJ>JYY3Gy>%StY-0QHz-|-}G1-d2;Mt|8>J`vzGjl zEt|Ti%vA%jjyj2AtHhAG8PN^-KdUze?OLv{ZTl?P$%d5*9i}OwPD524M=r8q>}Nr1 zgY~2!MhS>-<|r%OktVB{>$NF2kAJ%Pi#8{CI*^5tC_@7sxG8a2N(|wyXH%Fu&;{~r z3PeE;LaR#(Ziv2u(kn(?C{P;=ZrPmL7_?fdtsSiRdZ^8>p*ESWWKw#q0XyIEBzcqS zuT9xC>5I1aTeh}f5Vwh|M4urALMN*vcS#Ss9o)OS4qcj$aNk|fgGO|u@a@?%RCuGD zFP@ExiT@hlh694S&v-=#%2J4l-w;o?T70|361< zTS}dTs+z19Rp9Z9tKaYd8-0EzZumdvydjgMzBL!5y&bnzlOYn>o9#&9_))GLat%!C zIL9*V2{_y4d(2PN6GcT9co!XXk!|NTo$V5OJp53v`_Qr-u-K zoggDP=D5dIh%^}^_iw?ZcZ21+kWGeC`8p`OirrF%`_6imaa}_BhMXbaWOI7BVN)Km z8iaF$Jt~W}NIC3bp_##?FLBl2>cj=tlVY_xQLI)cWP*VbZDaj^ro2@D^^}~q@X7hb zspIntRwtqB$0AL7pe)wt!{c2sU@`Lctj4cD{i#~aD}jm2nnWf_{wCOcEnNv$1EL@{ zX(gCLPbvxIrtzY-mTUiP7OW4b8HTNE($u|3XqX7Hb%Cy-{#p>*$Jyo6G+I;?k%9B z`7{q9c)y)=>`TUZi8}7yScyI`-kamg{b=;!2dbC*JG;nI>{aryz)lSqWVfJympg9= z?LSjC!nk;;UabkD*`$VCDCzYBlx?hBEmNb*)GjDCZpKjQYg_U?@FdqimZ63+mba6; zKADa9a(iZr+p1A<>eO9`Om%Jpk{71zP)^zbbfPh=_Nf!dB1*9x><+Sw(kzTxqr*aj zk3xw@SM`QJU10qzsa{G^CcbejHGc9_L6Q<$757+km=^by@en4Nukp^Q`^pZrp#RLb z61tRd?UCu2g;##VC=k*>50eWTEl&J{H59>4#46Cj5Yh*48Lv}3dxlL<3>gu;8~XLh z|2lcho6emuoSD3b_S^##2!&Jus-)ab6{A@WT_S|5!JyLeifG?{V)(MGZHbQK*m3s4XSH0 zQes7oTG>UyD5?F~31);W<{Ex{R|Qr(A}ieqTy73##MKW>dlWX}bJ$o`Mq&O94szEQ z$>shOCkMtp>X+b?kNPv#TtqKcgFO<-`}w=b2UO%FSV$C`>#b2y{@QAztS@Iz@VC%7EtK2zvZLTW*mbSpM_X z7x_-d)UcQNGSD%Vhj6tD?q6LC-%$OgC&CL}YT6jgAWqCCU<(16o?I+OPbIdj3_s3? za`9aB+megyKo(V|E`HH?G`R(M5T0pUX&4x=gA0d2J&=rmNCNE<(1GPbrM-A^@L)LR zASMOj3LLXO=wk0>Eu}0R1NxuB(wwycd<WPeN)p~@|BS`|hqX6>kD^E$#;dA(a+1vCf+R4LAn{HQs9?9GCxGBVdO#2r z(-Xu4H9dHMu4V!%cq|jVb!8Cmg9H!MRfET>t8P$NcinZtJ>1V-1#eeZyjERT^F4KR zclBi0_x*prKSxj3^;FeUPd!&vS4F^BFMLUO1-~Rb!Y&b~mxNapMaEG#+F{fV+og=& zMlZ83zhrJm8&oPUTNpYjR2g5Y)Un&bt4H1zUd^r$r?-XI6jje=myXwvo+#gR5UMMx z)LLK^ii%2$YKrRE?cUWBLZ#y3aL5}hIewcmik?ow^3e;zX%5r9AROY3m#>RYAbmExPHy&UeH zq?GPD=HhZ-jr&FC;R=wtRu32}&?$LckOrKO|%x1;bBwBU0gOS+-+aDN^3aRLCE&O0U@-JmltS#ofR-=|`DP z3Pj0^$Axk^5aBrPq#lcladPOfm&YCo;uif07x9AEOr_t+@H@`^>k+bDU>QEc53yu3 z?uKax9!1YIxvk=IlP%VRB8$ee`>uD5qW3LvXi)M5i{4C1*_HCf!cg2%)Ys_RHrjPi zD0x&SqtR1`Po}B`z22M`f9QW(+_no9zni$lI})t(&w?mV*Sq$0MO=HNYbs<8| zi?TTMHCXp4^a`POBGH><{xvO>JQ(^0atFVBVhA+ww4;#M=o>*_V75!mPO+_2W)7|T zf4UX?NPYp+LT09U=b~hkQU9_(FSC>?Dhk#r#RG|9`kflRj%le(`SWdIEQCCE7rgvP_cQSSo7=Q(NWM2-=izUUyYBML)Yz>B7Bo!xXTQn&KAq@kHrz1aq>QX>^=$3O3Q> zroFF3Kki&zj&5QcB*&h&W3k5Cxr6>0##P~ATpb}l!PS-c;7GstGl2F}5!!h$$A*gz zGNz3z?Itz!#*762(@vJQ1#ol<+nqj=jMlCM_}vyG+%5%C&s(B* zg?DrpyEn>l?>ME-6z#3)r1w|+YsFA1l}vT<3oPccy}_6&6#Q%AL+Rr)*7|1UtJK%2 z7u)%_EXse5Vd5kTYCdqUAC6JC1J|9xbif~uEp7$*@t~n*6!MUv!d!a5P|>X7=VpI% z>bIv-{qsM^@S9+=Y!9ogp*y|nV4jyQZs`nM+@kS|TQqGV-|s!-w3G4OF) z$5Qw|H^=U3d66DhJ$x$L0?Tgj!r5a~*8#JwnXHUXN2`f@Q%74)De~^=$gz7moNeru z4!TR3`X0B^vkiV)?i|Ap9ib=ZgRW>Rp+Bd7%I@jlK7!+6j)Up^4Lv)6u&cX@zFGig zfAO<)9j$bj-+!v!IXe{Z=cid{+IV({Nk4Vt(L)T%yQv3)-*2MzX=F?{%oL5^SMt+x z(%dRs*dgj2WqU1QPRBQB@s-q!rbqH3a&Q~ZlHG*%@P^God#U`L3L-j1%)+BM+Z{#9 zj5Zr|(-n;6kfOj?_A8i<8^s#OwJ)P}K&nD+|vO|#I7yX%D*2BLRo6NMdTUF&7<7ZRo z#ldr7B23|)#J3K5W#k&iO_TBQhJPdk7*n5g?;3R`JwZ`?TYia3C@|&_;>S$!<0{Yx zdI(HX7~c=!WocFeZfnugfc~tg-x#}&;q{ZsM}gxvRMOiM&x_8PL(c0!&#Po}f^zwR z9J*IPZ##oG6xb#IcsL|Z)BSh~y)*qE^d3FBdzPL7aat%d$t26yc+F-X62z1e+Vpck zcNAAt@N?1o&jiEtt3*g(%w5hYMlUPsO$#4R)0VQGG(Q{%SRNlS(enynk(F8WvBI0@ zow3FJ-4J_RC<%7%x5t4hrha!^Xi#I8qngYXDH%Y8V$p9>rs6l~Mw5S1rF0{avuKS<-{1tAN}V&&G9dqARs1~LA|;PUAkgQBsI)UF|CMCmsdFCWPc;rYdp zFT3|#I^xjb#%Y;23;?})8~upMhJ}QYGsU&?kbP}467Ql6@6WbHz> z#!vT^g8ZnI&Ikb(m4r4h27in~U&J*t)Dr-z166>v1I|z?sCM6_l)Zc8o2A3R#5O11 zD%GZkil*6$^8C~{OBdt%DkZYLD|ES1MQ=vK)l~|~O$nuy8rm#dDSZb@Ci<1|O$$S* zM3&p8o0LjuT04%^C?!u#d$Tm9R1bIEP@b{d>A{jz=^FLMf@{jNN;zP$E0ZD*t%`aF z#}o(d0`gDMuOX9uWaLrIcEDAz1M_RpLkf9e>N<7@HphqZ(dn`RI{-?~-HBJi=K1aD z0gT_L*KQ}#6QpQh;o60_EgYC~`NHd`gzg4KT~Y6%&!SEAS$q$DqATbVUrC=N zw=gtOQPu5&({`Z1VuUfhZOp`ap zizx!uYtiKk**&twX{J)eR{qLfnEFb%A2ey&=sw3L%RA_H2!6}es8E%)wo8e8 zdBU5eCRXVhHeD_&**N9ua;vD!yo2thm=&skw4#ckq7tiU6pI@*GgOhq6RYWQzd)hU zGq?jW#*V^XKzC4(bEE7e*m;W;ZIKm*A)f+-b(DKo|@`_xZDP2Mpi<4@6 z39b}BV&{`aNek$dcFE3ym6SRL5 zJx0il>76O2W2`$ilyGiDt62XnbTcNLw4$&_hYeEPjAvah9sSU0Y3R;FDMP(%%FE%&xdiF$;D*&6^pcTKJfy^8?Le>*bg81e zy7Zq*DQs8r52csPKsR~uQK1=VB3*lpX$E)wPZ>5VtOF?pUy}+Y`hcOJD`$riYu7^S z|C|mb2KvxHSRbRp{g+MhYpC1%-4g`RJy;n?@SfYCKy(9d6;o{KW4v=2Mfv5@P(}&u zSQ<(sGm82gy)3rqouwct+xW(*BCSa6FDjbjpPPrS4)z)vZ?axrPna$Q0`gkmXdr;z z;}Pfu!Wu$d3Qk{EA%E)*CFynRlS3(6!M|ScW~rTUa5RGcN?;I~)a~cVSsMErg%7Rx zFu-Bw2g2~=4tX_fE9#ns-lCLiacg{ekIlRz4&6k~Tf-XuqDv#Bx`!;Mhg%J%0Vx_I z3wQBEz(|Pkj}MUEjZ*=e^s9c;L=FgRS3P8(PEPgII(EhF@vO@lI#K*C5x>WX-!5jX zYHVjjhO2kB`^P%LKGvpw0?-)gT5dP_NgH_%wURll87p^VCOeqjhU=@fUK5>6&8ti* zW3vwdvfB3TTj)tBnM`I2zjjMA<1i1dBbdF@O}z94oyC9F^Y|vyN)E)vp>t_%t$j(G zRJW0HqJ2s23~eRqr>7t#!O%kwdvEI~oDT9S>L53+iaG~abGK~y97iHs5_2+S**a3! zwjGa-(2qRwpEcXJY$i2-z+)qsu9^Sl-i<6~-+TOWRhv0co7hgGtrIik*P$LVwnrnQ z+sLgedQ7y6HZDpI-%Xx%G*6F$Sf;tV$#fOX1apdZdQVWW9-|IW2;|Zk^h^kIt)8u( zH;oMZnU%BCS;x}aZIYo|ThWWGRJPB)(K2`0(=4;!PM|wfhRA7_Hnb?M4Sh+fJL8s? zw1&*Z)(SG8s#O_lQeQ6#N6~W%>wCqo$oWxctu{$R?=p~y%=%0=Wd<8^T@lTk%9>lX zJ`(BCtQooNPI78Asadh?;0Eh2=v`KI_YkhFqiz-)8KVuoPfm+YTNztwC6=LY7;wkg zX1kEt^Y2A$Gf*&6ezK#m=oh0r*avn-r?tMzS`Qt^RaMqw)?+riDl}?QSIzRMWj4p? ziM!UP^F^5}RhoJrpnYh#9lc+~+JV*<)9=D-JIFEsZ*9XhVQrd|1Iy;7dFbw9x&UG( z&}|IBud$%w)r6q~SBI168U9Yj{)%)*`z@{S0!tf6Xz>))oM{z<=wtR`(_3oT?>z#J ziQZ&yLmE`^HA{>`Bsc}1ue3E3You$DyD9g8 zR1QQPVspu|949^>p4vRx)Kk!DtaxU+*?k8Wi-b$HL|iTH32ks&Q)&^ zOm;I1bNpCoAWb0MKXY;gN+{z9s^sChs9t3V7w5*rSykG$tcfNtbciQ?9L|!g1pPvd z${s7*zc0VXCc_St*8xv+kmyPZ6wXCjt<_{d32I>EzWj1 zr?=LTBqrEwD#&YBUJocq_E0cD8{1ij#_;tjQ zI~F>Sj}kithn?6vmGNa0*G9&s*k|9vSu2j7WPA=i#rSA8*M(jw;%$%OhHx%}M~Cfw zaBUcE715P;2K|GV`IME(^=EAD1mLW>^+QhrE3?vQ7E3;yKEp{;-r8^F`q!hU_+&!Q z(0G6gtnOcY?6nN~lE0xf%w6*z9%_e*zu-6rnah6uB#4jhCZ#{S1kfE=#6OM2Jgo$V z!?L{R7P&^$@oQ1$M-E~G&o-=xAD(!#%7QypEC?J2mu#NnH+sJ-BF!$DKajSnlaL+9IcZh?u7LBzs=p`O%)kswov>rzr zy4=#f`bh>o5^|B--%pR)*5c`|{sEHdNug^*6;?mGSfKEYA|~{;OngoP-Ciu{F`Mnr zpvTJuky%N+PkqC#wP;%zuai`?0dvT$w{UftHeTDN?L;4h1Zb^!tY)LTc+O~SX(pbD zXD4cz6uK=W;5m*KPuepZa(x!Ml#!{GMX#3&+KoVRwpYupurzH2+EmQaO?F-N%8o

EthMXq$Ae~aIrxf9H~9PeFYp(hy@TXWVRx}DKPWfqUG)->BfYlU#U z9IY?GlvyVywp-~Gc^$Qp2Um4MqY_KA?UsErw65K|k(Qec~WQCx(?Ak!jqx-2}kb`KDAB;0{EGi-nWbh5zewJvJ~uCBJ1 zYT89)W%mi_1J<)Yh#p<1^54r!scP&t@+u&|uP>swOwUM&HqLe6ZT;0}(eu@_eYh&p zW#zZ_SEQlM0y4CYJk$c(h#WAn{RArk|HwBN^`L9Y8L~)K4>>n#r-6J(FRrfCS{MPn z!8Mj^fIIbTbI>KDcxNY~HEa{$^K3ZL3+0?_A7YU&aN^KxtsQ+OQXXe1H*hL(>>*rV z10rHR`m&4(Kh2>lA?R6_>!ETv?$VpV+JIIPh?| z{gqu~KWL}WTEP(6kxY*_qB0twB#Xu%zD!w(e#wTG?S(~;vgZ>a`h1;gt>`kU&!Il{ zyqZ0KS3;j#O6fA~U3eYo!#!jNC_jIN|5w3#maJppfy^36$D=DD2aFiR{Rny9hCDQs zC3p`S_cpqzl-0mlHft!Z4_jHAuCvl8rou*hO)7_3#1Hhjh>YGy(yd%JgP>+VYbkc0 z$&j9CQ@RQLjz?}IOw3-*rNH$H3vJ|~dsqnAvE`so1#|mc;Z1M=Cp_j_ij~C;P3TZo zh(C{{^V3;NDmM<2^P(G?P&FN}9M>u`9KX~?cAOzghba!#qk6u(^S!!^qE{s zc^n=SK5?)CoyVoMiH3NCUgkes*`(LzAXmJj3s~X40ealdgl@7pn%YVOk(KxeBCs zG9j5XabwL+GO80eHLkDTi8@%?T>9K;qlGNg1&{T>!f)n4#Lw;Yr*$xC+PJYAl22?z zTX@Qo>}L>6dnR`)&rDVLJh$j2C?!u!ZH>OEFWH}?M;Yg$}@r8M>=rn&G#r0tJ zJdQoHu3nYpZMXtURMEt!qLa6r?%2Xw)vYiAPGMP3;qi<=2$mVQlTO@9pgAnV(OeOX zpgrhI;zCZ2COz?zu`7^#x=?0KLF{%v>SSd*U5>?nxzl1BOst!DJ8u#Rz5M4whJ)>- zdL3BRsqLwO-~XKoQ$-m$)yguBU-jtyu6r!ZQ)#ubE7%gJh*mC4bI=N^3U!3U7Rl1xr` zVOuci!@Y3QpP4MoCxPvS8@*agYI#OYx0QoiQYMFfVdD{KjLVx*1iLiQopRE)z0@|% z0n3kgMRb2h( z93D8I7y80M7mDJS2;+ZiF5PRR7M^Wy&g2<2rU6NN$~Xq>Jb2ZG04LG}`MT*G|S!L6?GVJx06MXRg(tXZyH4n=G0Jc518CGka%>EMYzC61#F#y?l1j~|3k%=3*#k;zZtmr_N0LM6-wG~gOPJ?ne zw#}x*nm!}<0qK5QxWm9sWE6{-22;V{^`koROVtqa9B5q3P0?x*qm|5wT65x-dF%`e z*H#?`91a+rWjZD~uML#um3G`Y^(dOe2@6nG2hEQ250TpV)UJx81P;=q64zAPU<4(F zwVx)V9_3*syy9Tsq|jk3DIWI|nf73b@unUE=6j#Ws}6oUq9!Y_ z_{EMj4@{Dn6GOM*(Wu}bdJ^}Louk`CGnrg2ml+z$4Gj%xHmT^;x^j-TmK+lWdsK^S z+5y&j_-ol`z6V2vKJW!Escbd*GC`#|gRF?6KXGR1Kt3CN!ZN;6OW0lomi)$1%{V?k8vJM) zsMID+#Ep?TsDWV^X3?k~s<61eu>EiEolJ*`B zqIMYBqfMN)$rKD+SIxOLXWA^>jOg+)H6D`FI0n*N?HyeB0dwd4Bw^>+SV5LbhN}#> z1A52jIPwOvaTtlkB#i4T$=OldP`k7DOq61!2YPq*evS?m?*lt~@t7+1-Pi>4>r>4Xi!b#BvoJZ{u<_M9;ZI3W{6Ht2iKghuo!3q~Ulwv(BdeL^fV z4J=(SY*~EPPMTRa=p-2h48k-M4oTxFmFyI>_Brj`&Q7@cUy|}x zFqOtuHGwWH2s^#!Sab{RduyD$gra0-)aptnV6IJj$4SG_q3n4y9$Wq0CR|-jCn0y} z{vb%=OYyq_i%F`Xk3`fJ%z;F{12gu@Rjp+78Vx23Fa|t6(*8MA5{=M6b1lT$R@@|q zcarwDm87b}!qFPjOl`G6HEcF%&ag>pJJalqm8qJZrgqd?u~s&&8}xuzhUem%s%G?a zcLA-NERDV_BL5^J>wZPfiHf*?xut&vrC$a*;L)dh``OV?JRZ*MKePlf{fs`#JaT?# zLW5={xoRff8UKlMH`O3rsnMMCrXIcCL=Bv0Wl)5@^fhz7g7)Pj)CZR8LH=u#|C;b$ zxsrPvXDi&;)2Kw5$d4sRp!JFvT+N|pTcx9m&ambWA8%h2Co4ObXF;ft%%f+b?-?v7GZ8(_*R$;b^osZP z7yjl9p!dADFTK=_j6!1vHfnU!E@gX7Xo$N#HOETxm8&~>%Q8Dn&L>;@?j0LP2MBww zb*+_3CatvzD`}d^Enq)h*w~ao-E0}o>HCw__xkG}$J?P-$s@_Bt**)2XXmV?n+{-` zXG!gvG}~Nm3WX?>!7bsrjj;q6cdY-Uk&@`O%jqJ0GjL(CD_$ z2aL_w{2;`e#L~$kD|tUOpsAgIm$icf{VhbDVWaOw6{CMeH4ISZ$@#6QLTH7PxdI~8 z=NA%A+DVfPz5eN7&<6VB@g_8t6Jjy{VQ$B2E?0Y*RS{j3p(Uc2VBMRY zM;GVH+p_3J>gsK?Ev?Bi$suiIcGS|$Ca@gMm`1{&{`JSLtg}Fix7)k!CaE@_LccEn zwqDtmLHCq$(lafzp+u}zWG(dbQeldd*c!Se0W^~o82652CQQg{()uGECKxl@sE52V zYiEb;^cm>VVz$bh-G8p-Xn5bz`!%6^O1Mx3UKk~puc8YJmTkwH_Rcw3@)y)P$FWlx za_6c}i@t!(o3m5v({@)ZtC`6xS>8%7tEucrf(Z&4OmlX^j>Sm*MsnY(4z!c^pB(Tg zSrD}r+m_|%^y5ey{-+?2u$uZ4+FU1zUST*yuNFz#>+M`S9miQ=PupP{_vd8NbX)WJ zQ7xWLB+;o{@nZhYcBW7yOm^-=2D*O)OJn+mcrKtRkRwIu;DoUz+su*i|N9`6XdiXjXkTODZ#82P|v7_U}t&-<22ck?@4->(m7E()89Wa-OQHK_%0*1 zi)mkO2D&WQne+M9E>zCiCl&-mV8oN{f8yqxy$#rAEpOuKRKQW`NuBh`x#PAmRg056 z*Vg!x*@S&hK1NqUsO;uEn)!D*^2mxd%bbqJaIl<{qt$a(|w36fH4@zgK&m z8_)XBZ%k#M9)tx->KICDIzX?ZDCy@|VS1UwQGQst_gb`!Ng ze5XS$Bab>{_`)bYz78)PjV~OH*WuClBV3P{kH!=0@SHk4qYh80!xL)p0v3c^ky^Z% zy&qAB+vv-cG*fLYEda%M>^eM#=7oQ!j;5s{;buIBTyhbPi9HmfsF>HoxIK&~hw%*d zWdBGHo?I#Ubjo}cMaHakFh?jwMsnpi?#CsWHtG$Y&Yfu*mt1_%>ELm*K|?m33^}^V zg<3o5sl<2vGuP==e8ZPro3B4QXhP{N48I8w&Nh2MLo3F=27%`Z2BPoL2|E8{O!el4fB zS)`#u_|5%#qEbD8dF}($xTjzbkKK@EFn)Ai&-IHZq-M_K&Gg!NV19Eouda~{LbSVH zVi0V?aMy+DpjtjD>Cm)lV6p9_v+ukPQpIN9`C|6bdYql}8u~KZI1tNYHTlarl}U|S zs5gF*u+5b0&=t+1Lo!|Chy%5pYeEq+suPS=6XaE_iS)Fx71b?tX{e|3iVW#l!(|%h zs4-GOmyB#m$Rx9oPkv^6`(H9$%*ZpHF}L%bq5PGzaCw8*M5)DAd_JzKvJ;EPy2`oa zex743#nqAYG@2UZ*Hs;K%Wg(+YbH#BGEVOxRy1X2Y&<4x`wxh5{ufabdxc=+8=+#H zv+u!wS_CKOM<_9z_M=Hc=bOjp5{h|SpRou}xgKxf#&wP6SSQW%VZGB5HC6j}oEL~>ohXJaIn z%B$l4>G?k0T<0uxa-^ayW75qs{nV@Owm0GUzQL{8b+?1LC0mUXyBn zTR3WL^b$|ErkM1K5~?E#KPtOcjP>wscgN?&d^=t*^)WJQ1YN~q=8i+((WU83E`c_= z3;*^u%K}}(q+SR#%(m(s-H<^!#a;3>EznC$bQNot)jZBdcTgZ!g1e)}vS`QQ;#)X| zY*fcyZ1(A*;4T@?%PsCtijr;+@9{aHXLXulc_T_r5pi{$f}Dh3A3ec#CrqIRT#h>s zfvz*T;ofY&mcyfKr)8atTjU|uR3~j|E)4d(MeIGfLHz#IHDw(%?(Y z*p~jMwrw#R#hO20cr)A9XVEK8Ofdf;u&Y1OfSzG{GfaqG&sSul?dFYHXDbj^Dw9o5 zw-#AW_6oY9E0Eh^&ebwo;P01U-@=r_dx!Uh$>MMXmG|5X|8Z?~!kOdDG0DPcuBj`x zH;{Ex7d)u?Q1u!5E3K%F{1)|?gwWHguIKWSBv9uFS zOWQ(zv8sbqe1?9_4MJ1vKLLp9KtYyF9TU68Onz%I{V*N0n>Oya)TmFqH$y5ODHk0qfqm(0}|qCW_5#}{|Rf*HRwn7i^qlOt`}~Aqff;q<+a?g6yAt7 zt77gw%3qQ&p|Nf5Ibr@CcX{yUbdm}L-0}bgYaMQXy!m>`=glQWM<=z-FxL&F5Reid~gt=9wZeT$8tr>?04F^$vTD$ zVtR#VfB(RZHs#wUY52@ckyI<{qp4ftoA?L*M{w#K)kgcvm8OJ+>#G5gTskv-ff-&* ziXLk6Rbt@5^;KEO1gcr|f)ymQ=7~*A=#sH*#BAg0m{@^!0|laX9|%5Q`AL(NLl?cmZ?R~R4rxdqpDhT?9<5WxI^sE7HdKO-vYtM=K?*c zOoFd=y> zU7hPpy`r*x*_0d1Q41pq)9MAXe>drjzOXWV0qsHUXC?<^&7xe6(of8rCyqoB+}LS$ z8Dd5dF{hm^jJ(Fv9E@(5ONrKgFzYJR&kji3LA&}q*se39udhtQU(=xsllGZ=QM&14 zI&Ti$OLGKQ;7w-$D5`OHQ;t0^bJ@cr-r@CG?q2OrlUCYcJ4d3QImssO<>Hgitz=KX z5@z%r%pe}jD-i+qeAuld=~r?luY`>tR1)Wvuv4^-mn)g!SHg&CPY#0Z=V2$wfGXNg z?~9~Ey-!;^wE2lAp2%fL_z$G3gG(B7z~Kf7oBD(7&ldV05J;~<%EtS*Z_jO~C$f%R zN1W(Da_;s4TveUh22nsvoV?=+VK9(`d)mQj$qZ~cDl>p1RhiW=r0X9TcyZueGVg7M z`!;jnHpiq(?nfhbskS8c?wJFc0i)W9|~->NA*bx(9pEN^%sknZ{Pc|i|In|1xF4xeXqmm1xykn9uNfcWOAcCN*z;{zFc z3;dby;JqTavD(h`g83u5sfpc0jE~0w5HpY2>N%$)v3)h_(7kSt&F{UIe)QEO$})E% zCw(YN?fqn0xJKEEJDSN&NQZBfgFlbWUmG99^0b@`1bS7~uJV0tXH4>(owQEwK zV$#^O`y%RaL^l|t1#@B&?*?~aP3OuPeGZIA3t6R|j+vYjAFwD^laHC(@tE3WTl&80 zTai4Q)X|Mpy|gc5dic_e>jLLGV$8+!J|4;O{o-h~ow!wy!wjFn1p4=9db6^cZj{f{pczYzFCA{5N?3i zg{^B-h3rES`3;tow}?m2bZ~N9!W@bY;4H5}D0Erj;}DxPOz!97x(9V_O=r5;>#uL$ zzI_|~*`8y3Y-b;^oSGbN38$CYTedEP5zB!vxyU5Tq8X}_^DiX91R_6)rgN4}dOE}x zaW2JH+I{YAmv>;XGQgagkqEsl1aUQyvZIL0O8JiMT#n@t%M;@~V4@#0IIQgsvV6*9 z`yM7R5OE)b*q1WaLk0H-p=lh%Hg`$*{~rj<&B*p}#?Ahe)S<08(`L~4(lUyA(Ab`4 zo5{_7RK-(giE)y8$7DB^YIKNToVIUg4&xk{&O(D4N};nk4{m8Ai=%(c4IYIfwZNa} zkyHNQ?g5T__44g%}O%tr_Bm}v{^m(4B4 z-KpueZ5x$zQ7i7Gx7v%c9I<@E2Ws*lRr83H3yE)yW;Z;8rNlPuMm)l$Se=2|c0(cD zi#$!ZG=2J@THha`a)+I!1RZh*WUL1v92kS`PGaFSzLS^>1Ljek$#i*iq;S(Yyl@Vk z?fHmIvC(-@cunDjZ$9nOw27u;C2h-0X8Kd`FP=QHk?*5!v#j2^+4v@ter>)yswK@t zf_}fuO|*0}ol3+LVE8`GO|{nKg=9tRc=U)c@+e2(*19!-z91AH-Xmh$>(Oekqg%U3 zV`qY#9<|nrzvPS#{zXSLISD3oECY51|9F#rjLl$b8v46nJR4j?@pa)t`-FQ(KH#D6 zMYhjH>Sff~XQ7vbZ;9_+%%Dx|)0lU7tcIRu!Ator00+Isf^V=V^UR@#*^{#8R&r|F z()dJD-Vu);CW&v)4~EqrFZ3#cm&oxsw6?lI^C&^J$_6QFxB#!ZuCu#@4YC!mh7GOf=Jk>3o5U zng6JQ$E&Qjtc5HwP>97a|4U!*$YQ)K@448)#uSf%6xT<#Bo^7dL4Ztb&!M0HOk(yd zZ|XF@U_;N;*c#{G^D>o+9iYb4I=-wzAFVtStAAu~N=9~^ofyegN}mcG zSVR{=&P;?RoKEzUO8tZqNEls30YftU8zTBe6;iUUV;xuPvv6K6kxpoc{}&>l#fg?U@0*b_<%#qM35AFJp!BeOxD^0F1_ zXg7T-fD(Al!yf!8BjMjvMd9yXt#5Q=u|CNw!G~$U8#Wp`l_9~av{(j`mlpDyGr!`$ zw)3D!aAaE}BS#M3TLH;!b``$Af+3=m6| zT$i89OB`E8Hqi>B+cCLqdK07|kps6aaMRwzGy;)(XsG@@a$h;Q|A3Z~qJd-e^$HKE zB@oETfg9w&I)&WNu~)ydenOZOfNBzh3AJuqKT;|GD?}jmY?|l<`qTM1C(K>ml-|H69f`%VyBxGD;ExjxipK23BIZfsLwH)4v7K zAAID-JVFDqD=ni?7nVtEMvkMOM$$O}7SA!ndt|3^0ip_F^Nj0R53AXdL) zVpT9HV=RW64VaNlIIqdQd3dxcWB_7*DMe^69NCLBi(c#zm|yB>Z^E}=@_?8zTSVR# zEHRPBS`oXaM}jIu+a41#Cb%qP9}iQ|s+J1cBwV4tP%M)73()WvRbIC)_NBUq>S|28 z1H$LKGJUNlngK3^ugnWy;j^!OeZ_-AeTt#w(lY&W5&#tv=})`Syp1;p+IUfoh;DT; z0y0AXvPve1@5}PVtxBsK5%=AQxFXR>FZTbWlGZIP7y*fDM+j0;_OM+HdrCdEVD9GT~P@rrQ>HVka& zfnupTDQ`lR0_}2OM03~YNsAdJc^PI#{Qj_km|i2zW}XMI_Ywu=jVh?o0C*Pm(*q3X zPv*?ndDt7ZC8Sie7j_4`L)-GwyQrRrn-3CX+jU8$V!7`evl%INr?Ifgzx za_}a8sfVlY7_RtK;^25)3;muP=hkn#R82L^dA@FNJT^MrJg0j6pHkdk>Ld=oQ-qz(Vp3ahWfJ5XSCtMZr zoB*3xT*HrOb$|d=8N*plE%WHw7~hKl2MRzgbWs z59a}OQWp-C0|&{0$u9PbjPtQ^9yV5BqZb<)Z1lKIzAV7IPpOk@c~geQ%FtO{sYC$nDNQ92R@cjUP)xD?tE;3uC*Io-PM#>Pf$Y{EuAHU@kJ z;ipVKj;W>33u^OK5LG{-Dqj&MdbnJ_-47j8rQhM(>z2J9i=ds#W7n#cD{8}qd@IZX6DFi@*E8M6Mc zdm3Os+tc4I)BA}2&nl^_Zj^p$o!30<^WS%w+OtI>l#tM*AnsR0|D;MF=(>O^^dDLJ zCF;DQAGtGZg2ZZwaV<8k!6P$$#(0#gjo3xr5HBt=e&K4txj@B7$sA^$9GEW$jxO=+ zf_2!q0UJNV#`W$HS5fv_EDX6-E|#0u&q0qZA$3RJmjN$>&Kxe*_7u!Y48 z0PoSxz`)hiivBfH8&3{Y*LrCAJ2u|J#@pD~;ku39Ditrkb6>WXdNqGtDwLBM5&b#F zc6pY!OGOj@Ars;DkY{pzh>ef2@sW%B&jKxdP^O)SipNy{;TJ^ zp#`oh*Lw;h0+4wfg&t@SYhiw+0Zj45jvik=FD~-^H3dXNMZNdBr{6~6zt;L_mCEb$ zBXX0@FW0Z~k=EpwZuVct`>&1uYm2XCeG!o{zn7oqVE=U=cN&zs%#vz;zjei5kVSx! zEUhzzWL@#(BCl7Fu>i3E9wB_AtbPKX&u6)A4tRaJDjuXX-iqhsHa=bArSclD^P9Fe z4i0A~Fy2tXbuy$otG!vkJLy(WpFvU?6Ch^A$77NIdZ3J#F=OOb%98`@2j#VLMSd$E zbop^bz>gKG^*|gT+k@?O1xIZy6E=RfGkrbP%XS6J<8sJR#3(05S)e)V0ut- zX6#RlxC?Pg0OH1Ksa(Gt7^wEzG?^F&5#vA?LVEzh7P-)Ya+_{^gz=?HY9G8xg zRmc)~$a-o#$=XJYLx^DzBS8#PMtjEhaZM-247YWM2P%6}Zrwq0>*g1E{hLLMnZ!8E zrLW(N5}2^l6J|K z=;w0a3wJSMfvgTs_uXbkyHy__XndWl)J##OKy95zEXNSzIAR=2jD;?cMFAj{L-;=I*nRc=GOJf%*R0~g4F=St*4sR}vNRT1cGV2!P>Mx+s%Ca3hc+IHCJCdTQ+ zIE@%fh;a%rPA0}l#5j={XAYzfzf2t9U>3R!T!MX5aWDe zWLyZV0}u`lK#&6m$$=?>F&g7dh>M7E0Wnq*V-+zjB(n1GHk%WXyrDbU#Vr+Kiv%|5 zy1c%vTAnc<$aCZ)m-ep>)G(WQv+75UTn&fb4-D80c_a>% z1JlQNLw*A>a>Q8YLbx*k;c&UoRCf=+qhax~#eEqJOZo1TXVz)*3|ZnE_qP$_c4FL0 zj19!NBcDC;?u#865z(^y11&pC)+NrA184ZFb@veCUSizmxj6z5Zge$`*=`Mw1k!)v zs>F0TAX1^}9U9_evo8JS7OpLox3FN5xQ;)T*r9#GkrQUv=}oBIjM>Blrbk z3=!i+VmwcFQzLIXhw`_o-DIkg<~}xFcJqH&<;DHh?f>>bN3WJUx=cdZ%)F7hR_@=G za^NaCaE;vO@5!D+4IstgrJX&7XCsV+S$b_Hp-)3ykvf6Wy*+`{`e*CyJG#&}j->qQ5aUB)d`yggx{$sOpzAnURhcLY=wp2~^h;uVL5#0l2;a$L za&?iX?0!RxZ)HjGt-CGDlN3J$>W)OD>JE_W{$+_*_xHs3H!=R>LQn#lSy`=AXtE69 zSswyc45S#uowj8G2vJ$`#^gYg9BB4+(Ne`IQH)~6@HPk51;%D&jT~C-ss@dLYA>#F zrCM!(y}Hql1futno3ghYm>>uC^jAqM6r)lxsuiP3F=`c~#+5oHu8C7z=M7uEVl=p2 z8Rt$4s+GK6?aiFAZic47c2YAWhnjtJHmVpgw}_@lY`y|<;%iY{xm3wxHZxBvVjD!6RKU4jl7Tl{{%C}aZP6EkWiLO-3sz7xh+1svB zmbZg?D-lytt^QwB5pk=aF8$JKn#qynSYGx_M4I_`N5sbco8@(Znd9gu<@sjv=K^b{Ko;>4(Il{K-QCD>TAotN`+A!65rA5t3bg=y(J(LJcSL`-RM(`> z5b}4q2OI5q!J4b(MVh!25~82ivXKOV(*^9^C93+;3R>ehX=F>}_OgWk+E}@$3oa%T zil`srILO!tkOD*hB}aax!3qN3PgIFM#sgm+Jmz~9xm)`eL|)Mg#Gih? z(YPZ((0o~VC7lka8KTruj|2~s9PS}KQ6_xkU_ zA(2+wK>e1tZ-?|O(Jx`+0nwWRYC3QJB@uZ`$WQ&n6+SvQ($Ud3RJgjAw-ax=|4~Je zKj^$emg}=GSEYs?U8z4_Cxy+36s8S&u0m#t6D5jfArEu3@KKe)`K(8R;Y?n5Gs7`g zeE!hrk=t_&rDsW2-?m2A7;BW>NyT{t4jd}jTscH5gz!DS*-_>qqC{*O;Pf)Pl1if6 zEA+GcNiU}W5a}BdF1cT=2omCZ6)-%a6ySbig?={CpQ`Y4OVm6C2YT#JfTtL37D$s8 z|10U@zue6dKM|@KnJyIu;`0(+TB}w^(hvXCV3VI|Y~f5d6xduqSCoUr2^23_jqXBl z^Hr+_YXU0UO--9C@+Oo#0N$7t@%ec=5w`c;6%x+5hBI=QDD}v-hG=D+lWh+0%5O)+ zNvoQ{=npFdBb1{{0;}y_`pZ5yxn)cqH}O_2Hy7aKPgVG;a7-01oD(_>$W8GImKUeIm^2UK< z?pYVP-j*i1Gv?T0De!fT6tI0~YpZJPryBcv3m2TkW(9>sF^}cV=UZ2Ahy+XQHg>5L z8-T;BDV(-$Bs3nyTg4H#YpjO`z`=KH+<408W5vrq-IveCO2Z(}$TN4#(7xL(!@4M# zDA6zPfS1ne{(fxU#JsLzgrGjxXKbgrpMo5&%Cn2BZ40CiFbMS_gnUW(c}3n%0Up5{ zF>aj4s$j}rPoSW`#ld%co$T){c}B{>VeC21OY~q|Cztm2Ll9cpOQK(qwbppp8nL}7 zZ%f0S{`S}>>m=%c?%X1JNuTS9=XRN?8Z%U5mTDZP?yi=n=tdOX@V7|I_;ec$aVz~0 z^zmnb&<*mSLEZ~|Z10Z)==VS6&X0wzo|ZRMylc10x#Ug;a(Q7_9q{I)Ct9jJ3YXFf z#CY#cVJh!;b${_4ip#ex*_Eb;B)0Oh@4V_6k+ zM@u`KSlo4i(1ZCHkn@j{F>oCbFAoww>rEq3A#ZpSsDP;TJ}SD@-~e*z@Enupyn`qD z`(hX8qf5rf63-H${P8GN-pUSE45zq1kCXd*y345=WZVV0yyS(8N=72JxLLM9@(aGM zak6Th;!!p4+f~eb1}XCs0+~fxIZxxd1DB?G74q(#mf!bBq`r6OCq62>4ZNwbk&W6M z*BHApztpUN1L8SXMH~^gp+MYC1>#l|i0ds7cXxrfI}5}eULfw40&%mdeDm$#XkOxA zfdaoR5LZ_pZl^lzs}!C_T=Smt}F6$&5)MhD7QMrx4nUVf=YdF z(410zN_nDAj=PH#^3&Yo6X&I>afL53@01jv&8&(Ch_Ap(=>TM8dRczDmuuDkkgIn@ zE*5>E%rNrwOV^)qq1-oUc3Pg7K;u7)__%@Ki*oYMcAs3tOLHp+>YW}5g1uok<$U#7 zwo*pORc=-A$#;!E`M9w(zjCAj#obb_hIp4698gEDUj86IkZXBfu4Tbos_d!CtG=^9 zlTuQX6ljuhqiWnDGrHp>*V(aHKfO|_-b?U41ie%By7z$R=i;_7bRNuMUL?g}-BRg^ zf;)WGg6HTCdgP?DZt_#Sc60}Qdu|WAr5+O6!&_Wg`=~2o8tLaXf6D*7=A26Ti>rrK z;}O4e9*ixjq#djNmzaa9L~5A=huBCco*4tUlr>gUMIv60zFID3!+2+5sk_u@+=EFY4-$LiKSNDxB;r?4D+|NT&;0u3y z#W$+)t!jMdmibXuzAu(P-?^mL>$hj*KFu8GM#Nv|SB)Q3<3IAu;23f$`N=NyWllcV zdPN$o|JgCWf;n;AzUMQuTY}8&_DU&DW^@ZBMpu@Xc8t3L=JZPawUJziL%y@JP{Kl% zAdZZYO|ECFN22eDa31>lLdM#Vad{|@cvwD<$i3}3a&&&{l3|a6#)ORe&~Dla*<8t2 zjrE&H2m(oJa3XUx44(VmF@+@uo5+vkyE!uvnN0({yLQJx^8|nk;G4WPpI7}@`V6e% zLF+QX)_o%n7zg-$C1q1LSLW68z06eP%zr2_3cJnxVt(`gBR5}Qa8^Mu)XP6I+CR7f zApMs7*BmU?&mB1Y;bbYt$!?Ap3v^9xa6ZybmnRl<#7p}veM*Jov{zjgXoX}JI4@r= zmxblcavdQFy|234k$x>xf;@XWWfjJk6emj7S63*n!m(kQ=h`7774m4G5x!5W`PChd z^}YOAG@0r=VpJbu+%8DPd2vOYV|fWL>N? z6;omTDigP|vgtC*>9{Zi7ZdH_k=U6YmZkq8uI74aNOB&0E(gBwkAk~6WL%QZe`iV9 zzC!NrXR@@^-S1JZ4SA${jfW7<;XHhB^>{%zuci_7LR}`|k#Wldar_X8=4#)yNL@ct zY~cN*3Vl+wytXZG*f=Nb;jPO5IB}Z)!CHIZ9F5rw?!|!v=Dck^?*!~|ajsb59YBAp zDj5Ai;b?iki4?t~aPIdCM}HWIUc+{dKgpgOy_I5br_ug-+ortO)7jx2J~F+ulS)VG zIX_CHCRVsdexE`fAo`JNxT~NG+U*>H`<9J;b32w*9NJrGjJ$CVVO8)3` z)$7kvw2vGP>8z?CgI*Ew6J9NtARA$H>Pc|q({^Zq6_LED_huFK61^MvbpRx(nwyZKm;_aG~%BeKruQJ_q109$57SJW<&S)06KXbn|Jy@!d^5~J#t2> z`ngs4amBn59*jaYzFh#uI|X69GXh3w9vf_oc-)Wgo~q2NY-fSWb{4E`XMqMkJA$-a zD!eQZ$Lso_KwW<;Sl8bQ)FpOa6@c+UK^PwtfWh;BSTO&GyUqVz!Tj&-b^wF?*Q1R9 z%lDK^K%O^~N<3mLh=UM4LwO`Dx7v>i#CXw3pNDaF!fKz@2@k}~X7^!GqN^J@8f!CF`> zeHN(Y?}cl5`@hxlcEMU$EPWQJN$e+}>_Pozs{!@W5|;<{zG1>$(Vw+h6)U7+mi1@i4EkZ*f|d^-!oy;C6W z-2!p%6{zFS1@e7RAnwBgaUT_c_eOzy9~a2?e+r1`y{hFQ_t^hrSA96kFQAXGw*bh9 zI7w57=>Fgr17e4JIzRI>L|g+PAJZ>EI;k{2QK5U2`E>~TVWanYqFkAU(7a`*odEYh z2)}mPv?UXYYMV!?C90|t6~o_QwHe+b5Yw!x%92(@aBSKA_ubcy^;;FJ-=)A5Q1l-g z^+Z&ExJe({zqkcOT2ONfX>L&>EjXegb+{A&6{|%66sZb;3+WSzi&zCn4MD6@rf+D_ zZ)(tQY0z(N&~Izd?{0u30-3QIW7$YZzr8^%hj*fnFNT&?$6_sSQgAAOD5CLAu~-uT z*6(c4?`qIDHt78gMEy}6CQbT2#qij#Sk-^lz@aKjFdC-U@4$n=1Cqb4Qet{vgI-ai zs#w3V0UpiGjZ5g)fB=0Si-E$bTB1K&uN#eeW}JS(IQ_zL`oyR{DXJe5gZ%o~7CoW4 z-C|uF-V>0hvWB19p!YWDD;o5b4f=%*`b7=;ss?>^gMMj)zNA6FtU>>2gMLGUzOF&f zHR$Ub0PWLT5NUx1s4WPyktk7dOhs&9Sm%oLwGH|e4f>T0`c)13)eZVJ4HYA!^lKaR zr|b2rn)FRAx;jyR?I7K#!D?+tzqpZ&3AC<6Uqkc7^mm|wmJb!RNS_RO#)tGv8e%d1 z;s$+jZ85y-7GQQPg>~{?`gs!}0n@`h_3Ik+>*4i0Ok(;Qbwz*ytp7owjR!0Mezz&5 z`oMmAuLi)f4SHy-eo2%5NR$5P#A3a>L3bMTo(4VBpr6w)3sByIrYlVV;kzoVU*3QL z4Ol;=ffDMl8ksdbj6xh4(0ZVX>9m>%9UC@A&FU)kqLxb#BMa!=FktEjqOY8+FDWV# zgiYvg34Q3{+Lp}~ZWM{NpyIGfVzC&M1NdX00~7XZo>18wo6y=kVgKd{;byFFE-sC+ zKb$(DYPGCMe-+5FX4dNYxFu4lnpoecgdmk+KvhDFmSRha;kg9S2mRcXw0wi$UvbRu zkN)%OQngeqQ;S=Mfs$qceL_-^T2d5?ExTz$!!-SqnwT1)xnY!`x6`5T&HBfn+)l5n z2RJ|;fz|A9>5AAz@K_#dGI3BS07jwj}f0m7sOl{Bf-^>={n z1D7ZI`@q8qr<4*k!okt%npr88(*rF<84H4Ora&lCDfU&yok$gJ@3P_HRjXR|E^2AR zEnm@p%U=C$vVGF(X`(ZTWr&~%1PRYUhlYfkrcqpMhzV>>hwirAfkcmYga87G(HyIR z7wQdlp(VeCKWcLf^69hcidtSPrm2szEc7vlJ{n;bl}>tYT4Xw4k&oP@)zj6?UadGn z=QEpjYFH3$E%aoV;+j`FaSYaLLReo{qtMAnBGa+{m&t$*jP;|Zkl0?Y6)XCy>a5ik zp!<$6)=w@blO`WJX~#?@7MZr!uMyFcjryEMn0fOtet(bUnJ1o6XTL;G1Bo55>)CPd zPdT6r{6Zg|E-cLVb zlK#b%5+*e;6HB zP5S;tdICghNlgEJt$z4uAO%`J7NWpfG+fI#ELMI5fd5oJP~KN|DW55y=y#1#KGp9Y zGbXBBtPaNh0yu4L}g@o2sAM=jnY#hHfi$ANs$>43!_mK)33(BGhlkP ztOjv+DikI%q=)x}tySpuP@Ex&~Z#pqb62Q8a@{gP?wxgdr+rj=9dy3-p(VN5N@>OLT1)i7-} zQDC{Q(Ob00Rf4RFCc&D!Xu=iSf>zpHP@j6dQ=RISLA4z7WoylnOnoK6sv`t@W zo7<*o+9qk*rth?Ao3^*f$RI!l0RjXFIM~M^K!yVdd;kH$2rNK=Ffs@bAR8GAkg*H` z1QuAv_y5}h8#9k2H}~^tKX){I_tx5Luf5*;A?aA@QlNvK6Rx&b*4UbM5cwlsVj8rTvQ)lVc0jt|OFgVqx^PaLhtcGO7 z*34*&)P-ce#p-Sy{DblIj&D!-&ey*4o$o~-sP8>@Uze#?QYGzKx}+cz-yrEeEQBUw zP?}|G$FECOwAwg}(kYBKv*|m2eX6Hr>eE9?4mHRK?P~qC3Fh4Ndw=zxe_AzXwL$5w zF6Lv2V@M_*){i#$E5*ff>G9=$Pe-e#yVcX#>gj4#o@Z@co~Qafp)OCp)AL)Mo~d1) z@3wdrb$R}?)icuNS={CMdY9)yr)No*XL*-rWtV4ZmuE$nC*0*(*5z5yrF*9Kdvu%U z=`Q7YTCVD*^?NRMdG>aDLUQu7Gd(^m*~5zm$y~Fsx@3qmzx{@0NVcutmn#xM10Af; z0`v?ZO!3K8dg)aCid!%x6e=!2hvp9Ckk;A!X-zV~}yx7a9% zjm+3Mh>c9!*leQ=HgawwA2t%SQC1t-w^0eg*Pt7Q;V0lJ_!2w~Z7>8s1ugJR@PHM* z1K)*T0tfxJo`{Oebg4oHbof6tQ^$5H!A@4~w5^>MwUd224PvL! z?KGU7cC=Gg`}b!kS=Y#oMh-Rds*!7r{A-j%qf8p5)5y9;AvD@qqoy?KQKPqL)VxL| zX>|lTcCcs3P1e0M3 zv_l7ULKk#H4>-XEZefLzW^Vib@6CYe@Q>lI!1urhvtTCtCj27^!UC{?9Srz8;DWym ze+&L548V8cufgAdzYgv2Z{Xj;zlPt3A?SfV=z{q$0hYlad<%XWmcvAt1PXozeinWa zz75}jpNDzy_uyB-2@bHpAHsiuesIGQ_)G9L_$vGh_&xaN@C)#-;9tTt_+9uN_-z;l zEBpue_b>(iGrS02hyMt@@R#A6FcqGLKY(w*Gw`3_EASK04gVAV2mBHIH~8-mfVuEr zp#$1rAuNVP5CSj!349;?FdJInm!K7X4Sovd!2br_Hpi?-V>d@&84P=aHZf=fgHB>FtPJYfpp6Yil)*?gs9J+QW6+}vTF0Qz z7&Ml_oM)8_cW*W65A_8k}7WrVN8A(%`gX zFbNvWf5!K}BN=qibsV&hgBo+t-VO@lU>66K>Yz(Fs6Yoz=%52SNZ&y|95la!W^hn} z4vy}iZ5>pMgTgr|tAoDhpamQ>p@UB8pnp54I|q&AprDBpvyXFJqKOeK}|RqVGjDJgLZV#gbu3B!8mYGy$(8-gC6XlQXLFO2kqmalRM~u z4mz)c265089rR!agTX0++I$$UJ$gXg+_UAgRCvDACc8Et^O0opnZe-0WO>t~Pfgja>TBL#)SFKY z)zq@CJeyrTo{NK?Klz&H@HagF{ii&?^;OR=e8r=G-DCZ_=PLsq|5VS-pYlxpn&*38 z_596#kGtRVx4+`~mtXfx`nu;gzvB7!S3Gm4dCs^s&p#TlDx2rue8V$M^ZYO6`4i>& zW99iTN{XR0PiU%V;Z#}3t-Ss52O8YOdmL>oo4p5GocJZ<0fw0zTJ{ia9%rpNM4&!;~bCy8#QW8s_$)^A z8NBC|$8-Lhp5O9#7ENt7o8Eko%%iZ$%?wTrD)ZUm)K4vcuwwc0Z(9xBY8mt#)iuxW z4tug+SDx=pll-yopyzPEC*9BEAFI@f)#5qz4aZ|u(PCBy4fCn;Oq`;wEc@B0cgQ+0 zrmp<%6z@0A{pD}{in?;-kFtOGC-Ywa`}WVCJUsf0L~gfREUJCt3tp>#Q-_j8w7Ez( z7v<){zgh0?Tjb)|B5xv_&9Fpsk#8=l&4qtUM~fQW(xFs*ONSIuZ+pRJQ4jyg9g)S5 zNX0E?+&VGjJSnTeSchz~Xm(}q^h+LMW`vw9>=offHMSM=rVZ24ZJ07Gi*r=qwGK_w zb*o$Twst6OKoT0?-l4o+YgQIoV|&N&3tn4k2Wi`K@eXB8?2?nZ+gD9Xa{zAhO}3r1<5WUQJLvim!}s?u+CXx8iz$(gQo^>=HESI19FD&eEeRAe#T zYik_s_?DERaLg=9AwxZCKPv?-9q;%#)i^G}!=X1jw8<^cpMR!zV(*1#nuX9F`q@h} zefzgb`pst9PIOGrGABBee>nbDhuz4&)p7B+Rp_LYb4;-MPIajE@F^M?vQP$ZjtzoO z>Q2RS9lG+Jrgly@gDgqjh0hAHvt%&MYWZx3*6z)d92B4i!E-_sl8_gyH3*(3E07kf z{tLp0pvIwQt`#IJ-gh{h&>mwg3uW+Ll$$nXbxT$Jf)qG>vE$p;#6?LZE2t7gi?nF# z=C422c_06$Tc@-Q^(uMwJ*?F4N=nJ1S%U>x*hb#%(6#crvX&|d!OKGIibO75>CkQI ztI`WnWeLl?-(j`+K9CJ@!8TTr4Z#oPZQ{d@zankh_^{c;)s9wKq;H$=#_x1kW#PMP zzN^bZ6+bfj;J-3QnMM76bE%EAem3+h>ZR7^O6!)^A5kue)EaG-e&nxryxOWp>r^JB zp#W9z-J{2~zD(5cy^hgV6}uhd!pKTPw1#`x-(K;tzzePlXIrAmHtkFvxg2rF51g$EpzEdqEh51mvOiLMQXk zAtD8*OF(pbClgh=^@}r=eymlFpOP5fQEOp(=kZomlQ+sgLl~JsB6^l6u^DER^o-7v zt*Xe@284ZPl+#2R_nA>LzRt6)sw8iecP6RKG>?4#i$}Jox6OuX(X9WqIaoVXaQGe4 ziO)3Csn6_uw^apaNfOD~otnzembKb!60=^I_GDjm=o9{@*;oJg^GV>biQo#g9rSma zv%M_*!`?Za@3&gQb0pC$lp#7-$U`6?RKPp0Q&~z7nJ;fkkX+Eolz0{qa=^fy&^ltAP4nVI+wSpk<}70vAWY@SC)m!^5knJNfuUj$~oNS z)4wo?N}OhEt2-|nKVqc+fAx>)By9f?8||Iivn!PA$=8}6EQ^2PTfv{hhD=R|FM zP3NjMRb0!^g77-&a^ve*TQ6h;OP#gy2En&c-i`{YFvfV@BqJogN!D^u-!6>p5K>Tw z;7&R?Bq0w~7>Ntxkb}%#_JGjqBmngkZx0GF$UqrG|lV|Bc_NFVKdvrXlXGbX`*(wyGj;t=(d zl2-6kXWMfv|0Mr-3q0TZ&W~t=zrd?O<_f3GTs2O0y6v$X!y?yd*kWfpAGE1ZzEid5 zi_$tZp*{AlkcJ`@E(x_uOfc`!L_+&`NytF#GLeOas={jUiV%e)(tr{*J$$(XiF$U9fB1h0tv`M6?`Ak6QK+Z z2wkTPkc2!`!FPkm5Q7vHpbD8PQv=imOYo);z9poZJxi;nZlZIeP`nxoheNiaCC}E+w!q{ASn_{g1 zzIlW}64LX98jLL<3V4IOUC3MTFA`#q2H#=|wYZD(>M|xOnUB?JIicQQgj5%IRohe` z)Wwa+P4bvA*R8kMS_*aDZc~j=myFAiB@}uIt65fc?Tm7tRZ~8q*H5nbAK zzfF~vQm;$9IG$gV6Sz$_g_d<)w5ixKGxS9XEfN|IcfD&<=B&cFEm{ zzPY*Wbv9&@UHc@#Bz3i)8sFd5;k11(rZs2p$4~UOC(o@1v>!P?|FG8qyY#XAezT9I z4s_YH#(}Oc+e&YAX|_zPe`w5 zoRGEbTS65QCmGqNgmI|kXv))U0RI_wgR!$TG>qoi3I%Au=sBWXBJ4dOcZKA^SEiQU zCqvhW_W|_VO1fp}e(Q(>3F5P0j)r&4&sdVJ<;^+q&C~v2ESU4OQPJ@nWw%Ot|zKnT7Cn$#HVK ztmU8#i5+IWM5veSj_$RFD(|2&d^=_1=uTGSqC?j&Y3}#5FJ2`*oc>;=o^m_Q3aT|1 zkzL(mh6?T`|By~}Yc0xtom^L&x#o^&i}{RdZ+Fa4k=LoJeGfC8-N(EA-3&>x`UVLd zq#y^onG)`39lO{!aHxB?A=iFpA@)#+{GslIp{j?>#yw2q9yS}7RjYPabAO~+l4iq7 zh};f%)7{+YMOetBo$fwps9c&Zccj~5ZMD?3hj(&^NxgKWTW;I@M{(3NZkjbMAMLi- zT8)OLJ^tiJbsQ(F-eYFX#Ex}awSuf`!8e7*oANfD?amr1@K(3o8avr7GjmReK`}=+ zINhzQ>}l!&{AYymGu_l6` z%boAUMY@^X61_R$b*Rsm@^2AGX}m2ZPQKGUNlU!jy+rnWPx4a%e~FeVN&n2U*0@3g zT&1T%4bo+zyf0DG@5@^0eX{~0U#I|!*1Dbp`LA{B_R(wIQODzFDHXrg{rJuQJ5yMh ztc+3p@e}wHCv!PhY$46eweFb1QoF{aQz73sWG#D}R;kIFuP&q@dQT{P%rI|sYc}hY zExMdMw(6EITq;c2?cjv)iP`O{ve04=gzAIt*BvVSDbv^sJ;Dqj2VtL3nJL6)_ehPs zC~Nh(Jvu{-Mhq?OIpt7eOJ#@5G9eij z%3;|{wVZXBmp(mthe|A$;1UE@2ob@OT+yRj49hN^>(Sn~DNsSeWmJV%_Q*{(WMOPX z2&@v)&;b9-LgeKh9u{2XI4J@OP>0~C5FM56npU9!QlmX>w!&!74Tp8?l^(ftd4-ax zn&V+}-g&s9otpSq8Sj#G;gz0`9I7UJ?H`V;rjV;y&9CmUwCF7f{jt*j4)L|rQR`zK=8i+@G&P?PX?vwvoT3Qe3?!!9IddRE_Opxl%M$IEs zqh^jrUhQEn%ge$)Tz$1?;RLIHgB)N~u*O--Zs7Q3-upK8@ICCC567z|z~M(W_RO28 z5*ul2*{*BWGe$oF@1`D2g*WwBl%}83EiVyue3Kb9v#Dov zf~v?H<=ZT=MmG0YoZ2&I^dGoB`f;xaDaJSVv}>U)J!|FATY5Ns3c;9=h6?z$Qn8SO zDg?ICT_FKEsKDrJguN!Y%CT01z&Md10nzO=GvuKL!5wUXG?c)gF8`2;=DsIz+|(Q|Kt^6e$+K4L)z>JUm21{o-WZ$G=+ zW=xdbNB8&mCaU;;s`3r$3A`ze3313lHD&Jf4#x}}?728WPW069VY(|cAe zJE>djLOa)L5K4yq8yQY=Vi8HJg*s5hwQsN~c14TwV) z$`Ck1pM(VDpaQ|O)Cpvu3jRE)Kpe7A0pB^Q{+x8Ean>?W2H*Lfr!7+~E37~2Q-VLs z>kE~&eWJ`vqvy>!DPLeN@)j^`8Z%9cMhQmW=2YE0n+=5Jn*dWeCi3GUvT#4G#M!@sZ9vr}=r! zJm;KAsw8hze7;jxfdx)w(XAzGZ*UT~2=dlHTwmbSwP4V>Xwst(T+FMw@Ioh(-kwR# zkCC;@)`#~eVRP4oPWoYRk#of)l~^PPs4XJCJ~HWxlcxSMMev54qmxuPB=KU93OSji z*RZV+az-Yp8o_}jPV=)if+I_u>m_Lkk<;n>j}9K?;JGEvS0|~)64@iN)M?R_vKf)O!IKIr;(qdR^*3WvuJ!|tbBzbKjMrD~(X@#)hUE$QU*a}(m zuN20iwo)o-bVN3kUzWGg)y~)?Raob2QKj{gjeOK8_kgcDCu(gi53J3h``Jrx_A=>b zvs&b6iAmDY%C9=Pw5V^O1;#cyt@hMLI?6`cVv|$4)+Xn^Nh-2g5>G;7v$Ws%7Fo+~ zaq>w|no1gpIhAc(uxA7rWAj>E$JkJc(Hh##NsnE#W!TV&Igd|Lp{-7tDid4Dy1822 zO0~7lZ~5%*>MbfIu+4dLlFDwAcvTpEjjjY)D8FVNCI8q_wDV?rk2^0&dymuJ<7QL8 zO>k!1`Hu8Qf_>Y~;3C1%?ap^6$przqF@sxfbMV@BXKm6CxoB%?v9>I3c{D%vhFdxw zHRO9#ZD5C!Fg7 z4tZ$6XjZ7h=vy55q>w%(R3Mn6Pe1`iPn$hx%jD1RHMOmi=_;q4x=}jq+%{QG!|Z(4 z>@VBdHkxvsnd=M zFyt<<2GN3(hyL4JdJm9VLEhSH1t+JU6alrjnP}fJd&D6=v5mfC&X9*EKfF^)H&>K8 zLiFT2&ZCo6-i)t~5fZ%U%uH6%i)P4iLP{5%Z%V~plxf8}X$Kz&$LY)`$Zx!8&JeYt z^x)BVr8^|vb-pDDzDqZT_$BJ^Jt16T_JLAK-g+;y0U}puX2@Kn4#8hGi}WtXAAg^j z<9##WJp#%Ec&|Af)(MjWtzWomYx&jY+Tzv@^<4(rNW0{6Nb=7PU~NuRFDcsw}owZ#Y$Zuqwo= z@-{7N)-p68bW?~5K9#uX)I%zJlV3Eq?3UiklLckDOlbnQ$V2>=vphL9oV`W#>Mf^c z4d0gC3%BXNHK)a<+~t-hZjCNZp{vxK#VM*$Bi zd>2#5<|&V+6HVzS8B#GaQ=ISGIz=vmBw{cqL>9RWWw+&8zIcNoFU@$nMH`oh+u|#(BU4oU6^R#JP1US+F~eod=2`7JE(KV_wlxH+69lK$ zxUy4JVU0`9jh2foPuxSiMKS8KkIW{Sh%{FTd~0dFwPw?wF%u!60QI$I)1M@tftvsKEnpxyg|HMW}? zQ$fg=?0q>|*eej&XJ+N4R`+fWmQR`uxQF#>k~H=U>HTK^I?(<^|9YJwB@ejvwX6IA zsjdom-!MDULAHh7a2=8gGefk)grweZrQ22E4T)G6q<_8K>N-l+f+;g=C0W=TFmh0c zA2j>U3HHqqP&sJk@GY}F4iOFFhg_OP*H^bn|16MNRzjIr4!Nv$|6$iVU&y-LpN_V6 zty(ne(rslyE4?L*os@xCI_a9*p+-)TBPc)vMshOOC34Kt ztoctfI8V!3i8cQjnd2j8muO1QtOlj zL`vUr1v^#g4&Css8FdlCk-J>g-8CItiX^f9)42VMpicp7O!_}%Z+qK6hv}&tmCxwePTy}e<;fi;v;3r%X zLKdnJctEKk1;qz0ON-KOwrc9p*IMNN`zcW4f$Ko0ihRmJKQ$+myV7}6Y)VXbAM8~5 z>2BG#?W5Mm_LTo0B8G2GQGgDT}Gu@UpU2jNbJiKdp z^#2ni6P)Fi3!bE?tSwN^8(!bkoYu-B8vuM3=ZVBQ5J%b&30GrwT8XlqySQSKl(X*3xDTwMkZ&wte>P?Fv7X z8DHi$&-=^Vx-k-#T&2U3!q{@52BRz8*E=nl5w}dJtK6C;`m(I$UU5&+C%3I^YhJAz zKkB1~jcw+o{6AD>^$ZscoD&& zG56vwH8v)}X+b98&27C)x+L$VF|&q8H%Ug~kl*CyN^wh@`RsZ*aq64QimY#z&A}}~ zeT#YcRi7W;qSo?;2HZy18E@-&nO%!9vuZ+H-LG`1*j72Trna}aSF>$=o4GBw%^i^} zZ*%jMc}H8vx-PzR@tSm{%xmuTT|QC`j!Vu<<3v$A+d4LO$$tLrW_3rlyEk=N6Wh(C z<8AKEB%RxCma4Yh9qY0Ncew4AR?DuoFMj+XudT#Q>@efTcACv*S`rO!T!_b|Hd-tP z+IY_D-bwuME;D{s7DidH$94;mJ@ny8AGVp(&wJfmStZBE!S{xcfCAJZ zlyckjmaf}vk8VV5%BIV|kJ>DJxa;lVL*SIVdF9>g6$hn1rVhGWjnZMauScbhFm8_u z8K^?`n2c}lae9_u3BM_1PYBg4Ti+rc1W)odN4(Rda)!}+PKZGoyceW+*0#fKmP7P` z$OSVKiRL1A!QG-&F1U|&sc=CKIbLwLs61CUspyx;@`HtIW z3tx1f?^3yoR4U|))a<)L68x8_-uK)Vt8PEm_V6j?CHAgfHV+@TA`?jEio4X+UcBm7 z?UAxuYcH4Gd~I4NLFAf{hS3j%>Ic$yY?c#k=JnZi`c9}~j-;e4YWwym^#7tQ)&+OG?y)a9X@Xu~0*IeXep{o8~Ifv@+wmtfGP;huH zL()69cU`v{pWDmNb%bD`R|eFSD>9&7WqT>myPwp8-)an&F|&$j}TcPl)xM0 zFc4lS#32V&2rObZNH5|DldsAVcAH07)Vrr!c^Av35r{($8W0HyNeC`sD- z?=o_@tk+_dNvQ47x1Nr2gygc`W8Lj_BKVe*8Z?CV(G|UX#cm~egDgZwWJ_^`Tu!V= zE>Dw2Y*p`>Zk1Uj+soj4iNiq}{4WbJ$bo;9T7l#%WDvZodpSki?f&d(nWj}`NNROD z!|3W>P0OwBz1OY$YkD=6S;O(QTWuW;Hb*19pLDBigd?x*<)Qee-TcC9t+cka<3U^R zr;mF0@*ZyRC7hAkTm;tjwrYiSy(2v;zMck&_Hq)X=>829c!M0U!kT|01%f)n$H+W{ zw@^MPK{!Uypag+!y{&TfKEw9t(;B%**wSO3(98@JWnt6>d*(I4H!h4qMKEI9h3IZ- zr)`Gw$6W<$s_jLadC?Z{;eq;|-d#N^x2KnHgU}-qGQuKAOm$B#qI1z5Au!_mL~8Lnuj)gAA0wyPt~P zPj>Au{kUp)tUBy-o7HieBgOXjp6O9plBvSz0kQ`r@V-G9B%$yIdDJhmXZ?-dVvh=@ zh!4e-bO_CuXOp&EV4HG-rfj6lrYs%oz1gDzhv*K1CC6F?0*5IRWS|P6bT8j{p)0oq zC95BEv|PHk(W9zt3Laq}NJ9yHN6F{WUcL!2$H`5A1lV&>gWxe?4AM{rUq*;PGQ+{_ z3*}%Tb}nRkmpD~DL){*ye2|A41mC0}kcG;dy*zeb&z}Ah^ioJd;RG$CHaZ_(-Hn+| zq^k*wY`u$Z=FGmy$>V|(y_=mXoF!dI3Fd=_Jnw4Ye~Y;eVo(O}N$Tt*$FS~xvh}&h zTPh`boqUB(^_oA2Jk^_Ys@$pG*6xYcWwysI#8=s#{Dx1*k673CJEdh~r_Giv%R+8} z&S2iOYU)3Wqo#3D%R)Ra1kMR5NT2V0)2T8SXhiVcpolkU3+pyp$4P2t{6_C7rz)_e zVQ#K6T&ogCv%Y5QI7^&dwK;KBd(S!5_)P{4)F61vtev-ipmyXE>0N4O>{jn3r%K(T zcS8*Vx9R8BD@2Ii?!D?%$=h@RsDi)N+aedk<1%?Y{I$df)Jmk*oVsLTuS4{XkcG;f zUY>K_B+0;CdLASo2bH_#T;_NEn8B-Aw6+_ss>_p8HFj< zg7>H?DBm+n^C>$u?)7?Ia+gn3$UynNIjnsy&g~!f&UC5p$BaS93KoZDkIl8f#m|sF zHcJ?7(8Zw$-cKkiWT6Vd2SN<856q&kAo&UbzE3GXB%$!BIe=bfdyRmAw@;FTl(&y( z9czAEtvqZ_+eY>;di%y)sxJGgzzaeI5|D)w)FC*%kDbQZDLTDxyGtdfOK<_|5Sk&x zAPq&R3o^qbY_7djM$p%1e%DhL_7eDJ3K2*_3B0p}5s1%{L)tBeIb@E23ixNU4B-kJ4NR7 z6^P1H@pDKp%0wDvwAoUCth%6NH5LiS7 zFY2QsPIvP>g8=_xB0&-gi~G2KI%Lyk^P`s9;y%Ay1w#}#WbPSY&#VO4%ivogj6z}w zS#Me8{^2drvXC8%OZpbMRecGyxRgRe7QD--nwDk6iY@C4yH$D_wGQ5}Faq&#pF#hz z{ov;WuGMbymwaZ$1eY^>APrRrt`K67h3bkv{*1v!4j5cXbVxxF8W0|#I#f=Y^AHio zNBR!CRkj&=T0+x=`d0PH{p{$fzSc=ClkYr!PWjkod3esSnCB3SvOHXu*DW){tIP~% zUosaJS@?(3tNYwWadqE4x23VVuT@3X^l8?_nm)M^kI0&Tt*j;2QYY*CtSYg-PgD8z zeY%Q9C9DRKS7nqYA+|xtj`i85Xp_#^o_O|j@dr+M=BxR&Mb)8cN9hFl*UY@tUh9)v z^8AiI%~IXb*P_BZ`&z8Ao%G*b9CDA42Y-T=f&zH=GUTAJSN8S3PCwBP4}9^%C3R?^ zd2!!z+s3obD{h{FQ)Le^ zdcc3UkIx;~vv=e$g9r+T&BMn&KfKa5kh%KdKDoUJrm4>~rPDSMoKE*`?o~yC8)@@^ z0lRA(2MixETP}Bm*#H7Z%>(XWx3Q!2cPJ8S`K3dBe~yd&|G)mTSherYvp*cOyQrte z(LPNZIo7wkR|PUM)S?;Ar;vs5<8*^JX%k2amON`!@SR{Qj6o6#P=!FYkFTPU3Z$U~ z-nSUt5Q7xtp#t8M^nZv#0nRnNytML{1<5_ zh(i|2;4N}oh!x3f+Zr;PF7`$GRM8B6mm@$Kyq8D_;+Kd&aidwdOMPQfID$vsV;kh4 z3V{;Yf)o^>27${I4icBm3zuD_R=C`^yHC{!4ql<-K^jWXfY4PoTxBQy06V3w_Q~v6 zAh-^}a-YlcEyp7JqletCA2{Lu(BA^g?&m>a*_?I??{ggop=-i8wuKm`I7 z!XN_`2z*EwWS|0p>x4lDD%bmL_P`CoZuIH)3~Ln#RGG~o1x4`Qj0T+spggjKi|0zX;IAoy=UT?o71u;lN(c3S#c$OPv zvra(p1z`-*P=p4Arc2C8mb+$wrn4PN;GH3iKpb*Vg@8|pKmu}50pHAi?mK(~d=NZS z0>&W=74XkuM@T>pDzo~j=XnF>R|7dB#Ao+&LJkc)yy6IwWOjD{!U0uglTwQa@%j4~ z52z7;zmg<2*j-EbJ9%+=%Y~GmtiIS!vxbR0_M!x&2(VaR8hG-ABsUCeiB){Df8Btp zOI#J0BaFiM9P^kfh>)Jszj8non;|2F)aUfC8c@NxglMbHL(T19GoVs)`?+uF*SP?; zn?rj88LUhAbRJ&Q2rx2_DuMhwGrzF`zV1svV7?i!jZ`D^i8kM?uW8m?;TJ%32jl9E%wj8viZ8X ziv+i7mT^0GE2{aIQ1;PMp@n80k1y=!Q^15Iw%?2|!CH7x{~H4;zeoySUo4bEW?LQ| zXg({__Dbwy6fm%~pDVfO(*ENEDk*PNVJX?Qo-k{5X@6E~bs5DN6Xi~Y)uO2D+Us`r zzGh}~RB1y(DSFtizBk`=9p1HCg)^`Ioc*(Chmje4zE`-1>vDAI5*zEb>aTtl1HBQCii{ z?{{9p;L8{_O}^Z3)ABF(TeXq3{km3K*Wap*M5UDq(f$cq@KssMZ|HYx{*C=@ns1YY z)VXycn@LurfbR@x@Jg||ysX?wq>`FHepXqlZfb6mE@ zOZ01MbT3Vx?ANU2{j!#NqhDF0DcO)qN#x2wSu3YyL->fi4Il02GfIh)INqx)<*7<(-#JmWn}t*)l!-+ zYu*_HEh@QWpiPyR$lF+WK+Yn|1>XvJ8-e7C0o_s@8PHT?MBY|bvGpZk1TxTo@s}mh z(NT$#7#+~8wbcU*lgon-r@SkJJfB}PaCK0{*9;Ky9wD_g1EoO~hzv00%{N@-K`sU4 zEi;NN?2X6(GsXvl^!T+BFusD)U2%kX<`)eNdIxQV|f830FlR0a++R z1A^<>3USCl5o+L%Qn3(&6y%`--dBYXL?HoLC_w{)8`ug7$UrQq{;+)Hw$5iK?cg;-NFWlK^lrshhU7dK@##%1^-rI6ylJD zGI+O<9>gFA-q&aVNI(uMuaQqZK|X!s1AB+m$T-=D%(&TGceAZDKCov45Z zP=m-`;(_mV;z0>Q`-lfMh$M*zzWv055`+$zjTUY;+Vo+r;tveW7*?eNM1F&P-;e?i zSZ0~qB*0#P28^VH1Qfw{P>4VZO5i(07^I*CzQcq;3QFKh3o*z-6@o_ygDg}bc$6^6 z9v$Fu_Zsq5CBT17h(h|9IZ3Q%Q<(s7W`Hl1tT4!fi#rCf5uE`n-uC2$BmvDcyCyxBvdZ*FB4KcBhl&* zKFg#JS*UU+p8fo9J_miL`X%#=;{!Lpq>_0?J(QsV;d8VeBq0Z7Xh85h z10Ld#fg;qve}TCkVvvG7RKQzcK7lACAPXg^L*Q*DW*CPw6rc*ecgP=%K@xIMh6V&L zl0S$;28vJvf06t_3{sGX3V7coe-MQPWT6Cg2wWn6Fn)!hY#Bel?tfe*f<#%{3Z4Kw&df{Ql>u763@2@X{UhLr6)uNi-#KOb?@=q!C>bR^%` zb^Yeuckgf zR5;9Y`X|6MP-08d@A>EL8P>w%B;}tBmsQtHimkS2l z0~6rqN$vxfzrOgw7CeS=fp|e?K~_RNEq1)m?8E*VH2%38;JUK9w;Oq1GwLh#@NT!nYyd#KYg$O~0j*$O761QPoFfBkW4!J0=*(lDO zh*#>ju#g4i+i!LeH}nk3Jj8$T!e%cW3hDJ7VuDZe=-4-<8Q9P@_1Y#T_FKxd9H2;H zvxU5uG2BK~H6*i~1bi;GeK69UROl^t=>gbUjV-U!5#`8|-=&$BrD54#me!@TV;xMrS#nOdnznii+JnzJZZc3jccWV$cwk|9f-z#D270QRL!ZAY; zG4eY-<8qy{5{+}HI=VA@*c8f-@yLWtC-PqQ@SU_pE2z*6Va`0hrnW#N#`i=jln2-- zZT{`0E?Ug+(xn7hGUz6Qjj8u4f1-T%{_NsA@TKHWKGf!NH>rrIDvbNjp_kaSNdF7Y zaHqg9C1K{TY_u>TL`@y$ASn`5S%6(2FoZ=CggiR!w=LcZ*G~#5R_5<(6Q?~aY)d-A z{~th?+b1fBTNcIky7YF^u)%A8Oj-vegin~DqWwphG{t?vIkU0;DXzo^HW_Hy9w;#!0;auLynUIzI zoPduW)m8e>LnU_9X28tNj7sOP);R*T@@IpZ4jl8|We#_{3cM{bJvZgHFYhFBgyk+1 zVHPGAA;M#BP2I>t^j}&*`p;p#lhA2_vI+3}iGi(Fe>m%Mzp{Aj2K!)!Kfc0oyD$#M zm+RB?=7AyMa7+Hr2rUZ8X|i$8U}7XP!VAF*LS`!lefhC8`hTu{4EsMHjY0dLf%9e1 z0@$)-NRTM6iH>w2{go1{2us>NSnT|J5gVQgHmy~fo*)t@8lTym9lJc0r1bGLBgn@t9nS2 zyvKiewlfPlp_(-LmV8I;oEHBazb5K9N>rmTW|p8WahI0A#BAHU<2AiGbmV)~N5M-U3{~KoSjF$KT=Xly!iq_Y*-F@qYvE}2 z%&6EXKv_5IEgxAhYZ&Zl_(Na=38!iuh+kTMO*rZrik!!gDwkOzcT}2T21C7pyUr@d zSe$-$m7$I9Eqz#>z9H>|`fOppE(?nG?f(sd6tov%t#|AmQyb5lf!~@;@x%o^rUwtWZm=<78lRIY)>u@i(9^2+5c6p)zL z(Bth_N$pGDji{NO%`+mPmVX*uf3wW#p6<<6DfSbs7BSca3M!)h|8VdR==;^vzf}z@ z0-1#^B!(u|IFAjGJn2LS{(sd%r$2?yQO<>Phdj5%Sl` zG&JN{*_xtLbT>J5G{YCyLyMDrh5IHGZV2U9!^86{%TQwC)ZXV!Rm`{2l9j1zq)k(^ z!olLfcogdOE*vhv_`la$qz&@d)v3c@b-}9?Q8q-gzl$g4pRiVd8(*A+mG*H& zEvXM3nWA_Td`p!GI{iacQIp&-d`iD{-J;*|bDUYYO)9_&xGHR#*KiGjrtyLrEpS9g?oQ_`xRLZst1%c)&Lr{IAeDkm#(p=5?;Z%dO%m4kaHiCJFkYAV(G9 zhy4~^M`qq~L@H;Fi*=mrbBJ2sqNH<6#7XQ!bV*=baJYHOEW~CqI4!8t8o? zVp`z$Z&A7UMj(cf?#u^z{o6#LPFi={;m_Z<*`*psq3m9zdv*8bPpU(ObBE@>Shkb( z2_y3_hgl9e|J2+3dIIj7S;~a=e;U3MlA`oP27J!`s8nmC5Mk0tXsVr!Q?0D!bWPtN zu{V{Rqg4+{;j1K5$F(;g#a?}d{m-zee-+3}RPf5FP48b~AZ1l3A>%bDz!s2SO|NM2mb0^s zS4wyT>-}myt!6$U$!EUD`bKO_TOgrC4a&tYwSk(v;#ZX+z%G!yFJ03#5_N+IE>pd6e9b8h^R_II;6HMPPDOPcof>u$u*Xw(;3C z61g9dTeouD3VI1mA&h*Lw?(>v(?31g=1H`S(}cml;87?uwGienw{&5{cgDZ02asq? z>x312l~w>40WuCrVQ{PMnmJ0+|E1@NAR)e}i&y^oQG5!bcES6RdRkBY*F=|F-B6i_ zMQ%&}yt&d#l$)8Av2Q*{3k-?MZO^g6LVyV9A!$jA8*SnrVRcM>3wH8%JG_gvnb|BcRzKn?s5fx&fp>6 zS;{1_v(<;_d&{ea;ibu`Je)X9Sey#8t%?^!PY@A#$(xSj5W?iVAw1R(y=qIu?9hfG zUHT5)>K2jgeDx@o;zOx*F_pgFL*>39=gdi^QuuE*2c9OD>=XltE4yio2#QYZ0qc&Y=~szP|ALI5A`l!hDS<;~S0 z$AbxH{J41iH}v$CepdVqJt$u!y@Sv~>DwNqHN62ERT0MnVy*|Rl}J4wqlKCS0ypKCu*{BXZ#WF#TYjRSUl1bIQ$Wh{Nfwa!a%eki+k<% zATa-8*n}H^J^UQHFno@Zq^z4(`~-a|P3Bnx2n_;Y#v?)|5P$*B?lUe4pz+DsZYcm# z_UTfC$v!b#f-j~8AR7XN-@xFB;$~q%G~LfYU6gAGL!mcV2cc_JxFOWp!4WeypvUiF zT*?FIsMl?>NU!Z@O;@z?`h8Li=X9->bQ>J~eIWfC%Sy|P6)iCI3WjkzF7Be!| zz-SRe@h6Aa@UM)1&$yKm8Xm2IU+K$i7+#3AEOPNp5hsT?8iE5vM|F1*@+vHLRFCun zIs4)hOtu!oQ*`fF##6Dc8>(f~Wlw@tuSW{B|6Xy`UU^ZDRvN^9wVQKV zuKrlE0r$>Aox~^=hFSg2pG7(eD78hk*l~7%{%)L=F_0HN*K=3x~sxf`y2L1 znlZzLr$2L^rUYD$3kG}@U9V1F&EV{cPD4XR%lP^MN`7*b}WR;A{sPLiO*u0FKH z$0JQzFG|g$9IXw}$JED1kE;j=)#`)TdwlwX82cgD4^@7w3R6e)o|beV6ofXcEgfm& zU&--1Tc(1&P1o;3;;;~{gv%RJ@b`~oQu7y#36ZP(7^z^pUT^{u@x>YGkMW^V7h=yj zFz>q*cJ92?Nte{4rv8Cq+~Zr}L5vgx0ZV@Sq^k>UG$v5%LO@A~$G#xgyfbl-n_@~H zzZ@wx5X{K$2+_VX46gQ03=|`~E|}5rxz+9bUdGVvl^e_HQGy^gRl;^8w(J(aDo*7Z zjioO%ibmi2=MLa8g@A=5XATF?=EOuyJoYS6ubFa8r0Z^R|GaZDy{z58KeI`uNYpGl ztwZxA#YQJaKBsxE6;J(Aov6#|>VA)Lfk<9(%Vm2Fb1orPjO5)@DRw4^-x(6KHvhA4d>fMA zC7Gb3P^7w}EE?F7K|bFHgO^C4?@V6-eX%I6J&Z4FV!(O0X%7#e|ppc{8v zv+?sSQ|vuGYM(Le1v=uKO~WP+_Ua!FeQ*4e4b@7x$(e!T5aJ=>e&HD(C4rEQ^Pl5w z#1bhiIL!nMzvoQcv4M}z-;(n*QB#WKZ+B$r@;lyo^W1^KG_psw$K6b2WR2K=r0?55 zBwOPs6CXfJ_*;a*)yD_|#>LN3$+SEIf%2yj*YWoE%j)|D^e3wp0&ZrQkI_DRcXMpl zQXVO5F9!~X zbf>^H^_$uDsXxXnb-5~a3hp85xu07O8k-W6P2-fhUJfbLA>Gb7UHe033w*YkhfB!* zJnanZ6RTd#JF;%G)m5)siMB*{5(XGSIDNrR99iaovG7&k7@1CkRQjEe9H^i96^ znU+i(kf~Ft)RwvmX*DAYr^zBk3`=cEW2F{-1Y_>Y68L7eltEzG{zE)S(gY4L;@Ip< zhPbU++J<`7IzPU(SV&YdSN&iekpi0ZZXbgP`yuFlP~_>BCn?rQnrS@`9J@($ex+WC z3lqAYjFJ;tGkyO$T4swU;_FsnSnk>FK?CHN{fb92$Ii+)8#$!^i7awR8)v5kFHxJ; z{XXA`@|?ig3|C*+Asf^xrVd%6T`@Y`k`##4hCP%UU2q9-t!I^Cwxf#7RtxaLCxtC) zqH!Qw;2X^QBP3zb=BP|4WBW}6!!%UA%x|s11h~r^<1QU z6H?lT<&1=TT_J7=INJt`93YDkZ49q&n&kw<4PdOoj6&mes&Nfu^4d!S zA-HMwz$I02%XWm66!%H%>vnc(j|}p9F*61k596NhxMo#nriND8L&v`s{<6r~3no&{ z`GVgdiR6MPDeb`@^>!2U^nUyOiU+|wC4wO=fbSiETy>g6iWyF-JEcArJFOb*!?f5t ztUH3xwHP|Fmdheml_9=wmLY$h-CLG+B8wDosRl~RFewbL?6mSxGHgoS>C)u;E`+Yx zAL{81KhxZZr(2*}<}DeIuIV(ZQJ8az>s*e8HPM`+Y0k&*YrNV8vyYIHi=x+2^N4J^ z@_uQ2RgM%(ejB`GX?Q&GnIl9Xx&dFUj9RK4Hm%!qha#8Y<0&EWPuj*D&1o(m$kPg9 zUI|J9sku(pvRu8|CvfS8y^$xaP*~PW=66YJR;ee?l8Iec+?o>gNX8~_OU-^kUASw<66r2Q#J9aaziC zw6+TWY%1+uxJcJZ#J9=`&k<4zfJdVBCqLMs@I@VDe@O^d5IwaOj4nKY=p(q#tI?RA zDFJ=}gXYjpWWc52@YY`AWoU_wFyr&kujhiBrcc-T!kYCXhNI{k8fsbmY_btccOfJb z7-;01PROe zG^S=1n0YDlzE2f_*1jcKtGx6CB^;E3-6?~DzzAO~&sU&f|A8OiCo9FNxPpqmlmb+z z2m+c1sRoN7jtw&cWXT;m439_gI3h7$&+U9`+609LfwQb6vlO5x&0vozs~{EeDjj3d;B|SRgV?v>Yi>F@FE_|yLf?-`UQ^o> zq4WxNe%F+@tOI6PLDQBI>BrL;z7!$A*-5%il_`k3h!bk0+I0;f(3dWvW^ng3DKFel{dK7Qk!1sTklR6{A-`{C?4m-$4uddJp zf$GrA~dV5`X`aB39Y>p8Yk`#i$SuZO67ZGKt z1$HU6YiI3>hmoUfK6-eLtPOR&6p3O|PIS8CAMh!<%Sn?J-Sw4iMRyAY*eme`usNcN z-0zn!X#ssd_E(j&7{nhj+_;!G^xPq@AsvLSsImCr+X7Xd37DOU5uu_kmZ5t6%zRmV z5&`NEGam!*r$iCc+>wDu#M5tqsqDi-YN`Nq;)iounQ1Mp@#BYAV7}`fB^!BUlL4-Z$1#X%@fh?cZXwj z8f-aK-n9n4bnW;K{bhKy2hCPXvZgyVNq^8=;w0)EzVjlTGoAO8LsBfp0?A7NiHk3w%aW*j=E->V)Oe55V2U zT4=K#fLN>WL|=a7{KJnP2gm6n+bnt-C=?;&bU#}g{8|gu7H5Wx^(AeA-oFj)+=1f& zz#Zd^V$ccEihx31X!lTRZ*nIN*Yl?~K+GqG)Dv<_KJBkli($}VNvR{)r_`r&jpwR1 z?hj!R^{3cAFBH$B|Bc7{!kjVW7RaTL#K|L;G3Q>7Lu^Iy4Cgq<0P>5=q}pGxMb~kI za{yI85e47Z8ntKUy8exoT!ssRjZ9-f)(z6>n=@)p0-uEhOo7=g+?{esY%lEJ>NWGR z{P?9ga35#^yC`0(4z$LnM=n1WZP$pi2#P%@U4O^8p;aOe99Swlqlmmo$G%%`!iK0O zpLqWL{kKuIIp5E{wg!Qs;9ShDycA!(D5uGZ^oC5yKLSiKKOCl7P}QWHgEf>Zo*N^$ zm34kui@zhIL6q-Od+-hnG%5G$_VegtZYkGx(-B!0F299EchSa_r`d)LUFI#rw0Gz4 zhR*k=FK1)Cg{^U^5UAH;7*RSbEe8x)Xc@O^U=Ugo7>2?v#_#%!ax2lZj zqioVBe4j6;lEUpCBwinQqX>xhv(@kCG`E4ktCcuw%iiQ({hcT z&@LLJFJRKlIsq6h=GQ{W08?jEO(F-2DLpxy7>ntJN#KG~leY=mD1rL=qL zxrSgn+Dd;nsApbWR!p*>q{7CtfERt!LSP8|-y2nO77f}*IgYWO_~%zK-hEocnvG_ zaO!>74&#${7QbDjHtFXHRxh}0MzmY!HaJcaFpH<8Ys^!P9r&l!oCM&47fN|7dTUn-?xLHaUsvHi5zXbc9Kj%%`0p1XDcK1f7-^EtR8-&Y%rl`85e~xl8SWMG zegJYx{{nqVxD?6YC9Ow=nI5)>CWc*1Hkz<0^frOSH@hSub19{X+3d0*QVi0KkYOhr ze14VNfY!2}=*>OxST3THyggUZ|0)6!1pF$0}scFOf^wn{|_c zMxUV+?{SEVHc_nk@(5L|Io{^ydchF%`yB>{Ds~Wy-nM^1TbJevv31r)v90W$oTaub zslB#YML|GcM|#g2jufm2yfVl6*}oyj^+EX=MF$<6>kg@Q9+atu$xQw9t|WtD#E{ zzkDe6DDV|2r^e$_%7T%E1edW)No)8qK#(cJ#8o?NMk~=2EbC_D&!LtE_YC)vQ3aS& z(?EJ|Ovp0De_?7wDqn-MC27t^+r=nQ1_pS*1iAI{^U8>&vr{2oJ>C`S^r*Qnw?t|a zuBq}!v#%MZb~t;HBV2`Wc)`k(z==Ng;=zEBZ?nAgY2=Zq_bozo-*)IpE=5NOi=7b@ za&AdOOr_1qOIDF-g}w6bfzfnl!f1CuPmB|J_>5L*D8<1X(jin>36#`b;Z)n(?3T8M z(s-!08PGY77PVv1{MxXRgfvTeS6=$R?^ec7ab)Rfc)SM(%K_+N4ulK?I`{=ha`7XD z#ie-Z|8QCdZj{y;(*3uOt*{w9ynX&z-c+cyOG_L(vyESvCNC7R472nDR88404H9D>L^QlV^^htNSlfiG&28s zpR8xxRxSJ7dVOcqgC3pi>%;FyQlZo*gL0be)p;l!(z!r8ZdbOq`dO+C+wXWxn_C!ZW$ge_PeZwV!sa2X?B zqjqBR=r}h-|Cd7Jm_BpUm=m<#@<-Cuxyd@VlyJ5R}#4^l{ zlsXkFvR4XWNd$Z#$vQJJqBi%*c*2V8QW(iljRCq`5U3vvQO(*qCN!daP133HlCU=; z+CYcRK^v#c$lrdFr>-Z`Xe{f(B3u5F1j4#WkqyHAs0eIqPh4lwyoJg$LM2_$ zHIGTLSD;WQ3YB=n(};xM$Ty9F^FuNYem@C^-kKp3Cf!d25)cPzxKTrkK3GZ;hT6?t zgeYE{@4IDFd~`D8PE)&lr+J6h^19}OIgcgq??ptI!A;?8W4x%kPBc8zM9Co2a-rS5 z6Uwv_BJYJL(&_nm5>Ij+x;p%}^hl0<2QI#Y$1hjTCbFfQ!MYgyOy_xy0}{~kiwW$( z?PkdKT2g4t7Mq)~D&VCQztI1&U0*}>NjV~5nD zx%uF(@OB~caJJ9QAQ)OZtsJC}FUdlj9I~eUp&TLY@BUB1ndZ>TjnGG{Hr{9(tb zDI2A|DP(%}QKI8xKxf81vRD!{4K=LX5hK3MHEFVVHGp!J4h1-BVgC7vtQi-HUQ?Fn z?=e(orX#W`5;QHn$6r)3*Y2P2XyH}crqy49$0SC2nw;#3-0EZkQYO&kP3y4OQfjiC zum$}OITUB+RN#+ZMSp=_Zt~Z zpZ|R6h&I{KS^pee`uSCD?$wwY{*r%TN-rpEz=Pj|{A^>Y)M@;UV3?CVzt}b9r;Sl< zwrPtywa2>G7DsEzNme%cBR^E6TAzud(Zg3RazC)+20W z_MNyr>b<6Jw#>Z3-+t1XpTyJ$xgTDW4EFX2=Y%HyO@Z`bE=h_5^-qV`h&_F;kftXk zPsHGpO@t)5FMh+|&iQ;20t{n^z7cC0Fk=~lrZIv01K$l?lXr~of|%o=e`n)#`&C!U z4kuz7U1Yo@ZdP9wd?I|*Rz@)>1+|TehmTa(d3{E5ZzPR4H%CdKl6W`MOR&18hL11m zhF}xsU&JKs5K3T}-z1HsjRnpi7lF&5cyes>!=uLv=VDVqurQg<5tqgx!9terVVDbo zPkbA-clo*f_C&l&AxKDz+V=Ua%U1L7C3oB%t>7Dt^0`SmMfxuc$2WuQ8d;o7jz<1Z z6a~)BeKlYcn1}~|6YZcSAmh)dH1!fNU93E2)-*5g!#Eew-B2G}6*LX6 z#PM31W)#Aa)Tc{S)))L_!uka)_N=*6+VfV)dxY+B4OBn3^4TFRdb2Z`jW6neQx<4N zR+jgcCfxW{e|}#&?w$DRl6GC)_RVgW1Ss4Dwk`xF3A{yWV%Bo3Ily)<6sTS^l@KtU zSv!_;+dkvPs1uJzfrYf}_DppvJ<9Fe$`)m*L?JA~u6TDFGcmfiT`^@nB~sZSSIv04 z#sGFq#Ts(m$we@qVnvGNH~*{GC#J@F%Nxq1Zo8pD_(mQ3NaH3!(Zw7<-za>EO#Jhf zEQp@vNX=*G;@vH^=8DAE>W?fVbb_g3-5zdwoM#BpBZRzEPa4L+3u;8sXb`<(>!3Ko7hH zhq9#-c$Ob=7=&fF07~0kNx>H4d*nyS0o(5@8gjkV>g)(&dm!0rc>uL(vEfp}6f+gJ ztf?a%DO0vL7R5TY_oM!Zd82mjp4SIQ)CBbDX&?Qz0YNyjYd?iQeRM|ClnMj zqDI7788-vQp+DxUa#>1=E~gbRHB|&Lp{|6qv;R#dEf9ejj$Y*n$Wq-!2mAw90c5s%4Wiws(r$X#`1!+WwA}<^J3kuKoIh`o_XPGH(CCB zTsDHN(Jdu)Kl25FK6+RC)7mLOV&u6in81<>sTZQQ_Vp%IAo}`T5-pdjJm$d+Kmw{kE&RTD;gX0um5zpL@-!BpBI z)yp*CI~Xw#T*;4=6%!q<2Qr9ESpuOjxC$!x$|vMCvkR6lDa?L}idf#XsL4A#*BSV&~p~sfcj84kaRgHPt|B+?Pak08Ky5w_nC@^o#F84dyh@-@j zWyy$k2$2g+!Gjt^#G2go95t|%WPH&c^Q}{~U{fcDt|?xFSc!2=L1Q%7!N|u;82qi&_fAlPCewW*F>~~9F5A?h zqZI-P_;DjJYtc~$j!e{_-C$k%52PLmA_e$IqhtF*J%QZ=1)xdM#l#37K0-N2r!5<} zuGhKaboeJ<-aq>wEuTTh$owT`$}+zr(oxGb+1xvc3&E? zTN(NHw$Z6ylS;Zkw$`zM+PVNbC}%SJhuo$$O^h89kCq*K5C3)V=63?sTYGLoOMZKS zZKz%$wCN`jaC=B$5@d_mls#|qGUV<5ad<>~Rc`oD;_ds>7|F5 z%i58~_DavcUIM4m8U54%>(~Y}Vj2JnxcPxSs9=R{)DOx_)S=>A|EcsVw1!u&F$eu) z2Vr5fSEG)DDakF<Wqxs_r&s-*nbm!+bDW8M=}l8 z>~SEWS1s<&eeNJ>hG&Rx7fWLfjt8xJo3~I1`Vxd--f8&t&j@@9K*l9sVe=xx`z&VS zKCJ$s*X>&T18r&+56F&lDi7Il+kel|Lyf|;K9O(TK5grdPzW1?*N{4Hu;4LmLCd;& zIgs4!Pory6#V14=mqf8{WCHeG@7>t+uEg@Sg4CsfMe_+XqroOyfwz-P8eh$A=OPX8 zK%e0|HxZJTKVO2)53$TxM9F*CbvQ4vWGom=f{#!#Lo*yiB2dCf6dyyuGNeuroA&~T zs^R>Msr!RIr$rgx4mz3AIQ<=!z6=Y*Mje*&8E?}>M=j6Y%9x0` zgBd&dX)ldc;nR0PoF)8W)MUgK52q9O7ic`7O5MP>2Ol_94z=sYC3cvmzas>897@f| z(-nXmG=Z6*Q&=2_e$7K zFfLp=i-m{U17n^%Wb&ED2y6J?6~k!Cm9)3})n9_x^U7+8e>$Rpknbh%@x^i&bycK6 z{uFTlXh3f8_Hxi`)W&Q*oHJq+02yE0m!s*NIOZjsMn(o@luPR?q?x`aj>-n(Mxf#Ot0(rg9O>C)MkxY3Dh!oc(bdvWAg40#c1w zmEqe0*b_d?7^d_MWzv1-m-1NOj=$oh-%gM3RGfc}pb@#}!Bm6me4$G4j6!>=ZLnVe zo=RA6dO;X%G6^>CGYu#P30RMuJr&Pm_kjVXE#52cfL^pAI?qm%R&=8b2K^WcB;ns}%o zPJkzAuwLM69nH$=MrPm)>a=@GhZ41#-+Z;K^|ynhDCf z420&qG%eE$=!=H`^}+M#aCq^RjZbYFk=vvqUEQa&HTn(DQiilu7)D{xp#Y0^OtC*Q z6dWFlu)9u&L4InC*<7PB^GR9HR}FNkTUJhDdCsqb^SQkV;-yZ>vl%H3`jK$EnyX4t zUYx7Ge_%GE@BQ9J?9LJE`!ypU!xOo%(6UZlnFiic zj*{C}j}ko#fF(rD8H?6%N3##91UR&;?r(WZxcRQ+9en1yIvT7GHwhJ|FBx_Q)DmT; zr&#&Jn;bw5ZA&tLmt^-OSLt*( zlvR!JA#y1fcV$W}yv#WM+Hin#rWAW)i{qF&d%22HvZmCD2i>4~OnO;GpBhanud9mf zr!?$Uo~Olm8DiWr!nX_Zv?ufg`G8L_SCj(iU0REkC(Im4C)J3SlF8A>nxJk&N4s-- z%E{-|!AuN7W}P|RbQ%6p_J6qwyf7sAyh`CY$5-VTcLn^(><9!^NkOrIv1hKm17Oj) zL`%|}JLMP>+Wt%;V2UPSP60NT{Fw<18?Hys{mhY)D5xoh>3h$HPx^XJv(Cv|gjkKr z?!rL3nzmx)T$$>*6{RiUv|9DG3yprMOuE{df-HQE)DfA?-&%*lJ6hYgee&to5*?Ed zrD%1b8>(Z`I^iCITg;~cJwOpoB+cAuTHN-ea(smCQC;sPg7S3)Zv%bQmX!IwiVX!? zu@b57MZl`!YN{fhKTS1&i7%_H{UbT9h*0=5iK5Ey&5}}0>50UgXxnkpe-!6|Yc)Ty z7`#G_(FwFB(meQGviioJuLk3wHq|8WALhj?oZ}TRc=lv;NS~#n1Rgtl(dWaq4r4(0 zzQRN%nR@B0B0-;JqkuME^Ilcb%b&fpQ=01OtWrszWnz|gy|k=%EhEIebCEVf9+3h_ zvG19pj^sPAJ64&N$CiNSjUP<^Q`N|JQ-W(yVI*;jKrlvdK3l=}eJ*&YOZ-Yhd4LJb zrh2!le_824QO`gIbHc`NQ%kIrT^n^(+}^hG)_dX|!-NIYY37BAZ%+1yopj5Dyx9+! zw<28LNT|yF@|vysot@pcs>f0}`O*6DuSjTzbeyB3j$NkL&eHex^AfEV|Lq*wcZ{UG z4fSLOt+h&%0terPgqpi(`Pp-DkPyVQi%R&*Br?2*?sdF{sHGJ4uQjQ^ux?-FC1q9% zOY|Pi(t}YF6+wIsSzf;m&!T%X?YNbOqoNwgRZOOp|NgU1xmDSToLBvxD2xtPPIUX{ zggTf{2v!p8)mYVCK`_XlBo2_J2kO=i&TS$f{=5upg!u`4ay-%onUo^HqTfO+RSqIR z^`6{xwVcGi=#G2&+U-92Mk7RUQJVwo*MpD))}2E^Gy&^qRYolWBo3(ttr8AILQc5` zkVbxN;@7B-%CN=I71!uF%XWuFmF=I1j%yQA_b4Pu`_UUPOeKk`T%A}^Q`@B&1;wxh zf#nt2`t|M+JQlZI!%~#nwky-B=)=1H2l&UoAfQ-lu|mK60$S3pF)m9B9GbTJZKXqix1G?sDCH!4A%j7HGjEgY0g9OcY$u0}MqfWxF0?wcj~(#AJ0KEDstbQ>R~32_g! z25X$Ml>TY3-*ReC6NK3Esxo`geSZ+Ik=4!N(AebNmq_WE=XiU0RVeDEqE*Zzp(h#` z>eH%BGpJ3ZP^jX*virs^1-Vq=L?7&&(oI=;`oe!|vKrkv=Wt7B*g-d@B;Ob-Y#-1g4V|0UwU#D)O{iDk@32nVcruH)HFl%6) zw=}wN)h_#b&G2StUuD@ptGomEty-SkO+S-rv~a1U#f(K{t6^q7jIe9&=5i`J#>SUf zF2Rdf_AF>-i01bGLqAF@v{W zBZBM%RzEP(Fdq)eEq-@h(aARjV^xtHK1P>sY5^`7C4P5J6+L%=3}Yng5sz=m6$$e! zH+bMS2QOm+_Ku_FwSz;!9PVEtM+?0KR?c;1Ct5ZMa`&xYto9|33$(jBH{WG zTn0kXxJUls3cavXZHSs{>M*hdlO{!kTmBWtm1&2L@Ui1W`wG27`tMu49gY?SHhNm3 zR;|KpxudUD?(9)ELWjp96Z5SvG3Bh^sOTxBpcWhVVb3=}Qc`lWay;(Vtas&<5wpIA z3df^*fu)DWxs0c*_8KM|{DxtZF=39$%I#8Pc4vbX5g&CZjFd7KyOUW}e`D4vD_)q@vJU+K+OK{vladZdw?1 zXXRxci!xDZx`*y(E6@Yc?AQISwH~o3vLpAMp0kUSl~;dBXYAHn2p|bA{q*+f!hEb>~&H!8o!TP1NmTI@O>OP>z=FTS<@gc*^{ zg+|GiPUI7a=^wNp?UwAV52)HhhM}sc3WN1$&4BfZR=n+sFlsg7U-v7&mn!8{-@wpu z*M(Wf1-(p4w-sykUwyrSuw^V&px=Af-jZ+|fLxCc81RnM<>p|Y!6JILhH*KJlL zBm7(YOI&;Wb9G^>d|=?Zkl6r;86h?jJ=pelsuPzuM)6Y$%|3{%JSW`O0}S;8l6^jK zRbne@iH`#HsPAi0E+jHu6fY9(Hanr6+V4&5KXb zCLTIt6i>!P-gq(dn;L*mxxiGp^eE)ML{ zz9ccklU&Tu*2`8fH@6jN^mu>ZzlLDV7I6t^WKKAbXuYcpvejNQF2((hjt?>Co8_%# z4jz84Usc~?zHoAv=0o-t33C;w8JI>9s3H6(E;${O=cO3=_iZGcxOzikx-13zuSP4L z(!L)4wt^wpL3Tbk1*dOho$}vRJE%DsrG2n>AqeJ9vSvS$IIw$>zt2*jtNwuKty_Jr z1+7lPBisTrv)z^O#3?y?jfm&zA3x8UKwpiKv-4hJD=)J8+A%5;8S11-)f_%_79mo@ zfbXzmW1Zg}ZYg1#gy*?*tY6h6+e;d!qvN8WuE89-^Iibv+Nr)5dzqaBv#NJehbm9# zDQ6_ZGL6FC&PU%G@YcotT>cA^-y_ToYYB0M9{@Y@>6T)40V2Y{ z<^+a0p(^Q0+N1Yw=31mL-0(8 zL{9KXI=&%VNhPHIXTAz4&{mi--|)UDD+7s%rIccrt&g6@dB0{aiTH8$nZHt@|11 z@O~UNjW_!#@dV+iXLg0xJA_~4adR~ple|5rCq{a| z9-LFmEiwi4hS9MUUQ;LKH1i+rj?aJUMA}U_pB@FR_j|%y(sxq@xFC?WW*e-tWJ}$) zBPGIf$$Ki_75nxpr76z7) z1gsx!+zA*%{)a-?q(z$wQ%kW3YT%@;#O`&iS!l_blM(zF`KuavLCzi$6=II4M34N? zCR61PcRmYpCU}0~3oAakY!a6YPzc*`4uDi*S)lwHjKJi^38rOI zX#>LVfS|`CM+cJ|r3p|X1Ijn>I(z6FE^6y$Td@!cZ9Qp*1fL-RbpUwd03h}46YKe3 zoo8WfQm_)RC2N2s!Xoh*WFegCtzgurIQXC|^mY_DI8e?TYVde$`6*hx0&VjxSJp0H zNwwYiH+`#|JS4O^5ntm?3KtW_POsS{{=`kBe&(p9uKht?efh2%F4AlG35f3@us$U4 zMc~GG@_<=Cb9Wv>BJr!xUYsl<+?;>gcA$5T)=o2MZf}8}O<7n72cc3i0s|ePFnUod zgr17b9t~+O<1cVEeRGuk%5BrgnA77c-)REfqA3`7-~sEnp%hS_4AhsmugVZch+n{% zZB&#r&+rdziRoSSaAMZ4PG|8&cB;-d`mi>e=1belzCXKFp7@pw8VoQa08fxO73ON5 zLQT~k_EpnDtq!k21L}KYt3&VioyE_s{sw$n0^Vl$w`!i#ML%Dzp7v0K4VlsVH)@j= z1!h;^xh{Y>4#Fn%t4b3}W8FmqfGkhThpaEQ?&7?8P|eE{`qDP?YT`zyhCL$n?z2qu zMThfHwR)aTj-wj!C#_si9?Q=g;yysc2>!pu&I6vx_Ko95c9OmK%vMr}vS(x@WFH)y z>^(zP$;fD+?8t}`vQtXQPG$%ZWhRu&|9vX&zsLK~`}AI)PoLhNZ@>GxuX|nhbq+E7 z@~>xlA}T*8cuYUBtc*dA1 zK*yKN_x@yM=%l}ia}4Q;b_(CP*f!3@eIEJ~1ThFr0yZ|%5yAzTp)!f!Z~HVW+Rm9Y z=2mI-D(8z3idE#R2YDWr|L~_s}r~B}LDxCMsJtAD-d1Ry7PLeDDw@QkHqpr-sBQwU3p~UNv)!bNZ3% z^Y*DFxAUtK^jo-WD&`9`9xM^(KV-h%T5S#BXgVL`8pUfGgH9B1B~Eb2=%rMvD>~YS zx=GeKN1yjxy_8;}r=`ImBCe{;ElK;V=GghO*V2L$W35vQk`DPCTb`bL#M9Xsy30xc%1q%{KK+N>UWpgM4PDx!y@_wOTEpB z99Ud30@}hN8)t);(I*|fy2nJWpj@9Z(^3Z*)_E1hW>T^p(b8-ddW?3(T5BB+P^rS3 zM(;b*^VU|aCo*#mH!N6qill`~KzMpVwCtjYM%*E`WcvI`hg(I`$Ml_ZRLd_Wn)^pj z)fL?$eBZlV;s40SRn}Z6)gl{bDm*!EHPS5!eV4h8^sT6j#r$|ME9YP`-usYa#J46N z;mj`a_%G6b@piO%Ip|mMk|C|vIZ&vi%_;rDzGpv(ZSlkunCl;|tcNSRB|S;%yx-cG z+MDuvleT}Tm3YJL{Qf*4K{m`HurC;_$Ye5g53!nSQeSg75S2z|Wy?}>6DsF5aNi@1 z>p1p>fom1-<}}XIX~LT*Vo_Z~UP^4^X2KpS92VJBW7UTY3)vyH(Po0qVQ8WKq&Cy>}H7vh|a8p4gkhqYr;u0%qT@UNW(>}FM(;gmQAFxcXB$$O%XrYZNE}6+46l+vy zZ4GC9<5!X~J>TM6fHho@O+H3|cA{vJAy*k>>&ql2k5ph#+9>aQo%cG>Rmxxd$F-|% zv<*sI5lDB&5cD_Y!BSgmipWKcbr)<3iVfoPnPY@5YAhLRyC-PT``AcqXigg5m3IwfOxJ>|8-PaGSw z{U4BxUDW7AGIvF3b>P@e6p@8M(l%fHknMyRxq2={~AfbsW{|Sh@FMd~}iJ zxeC^A^1hrRlOs^UE>gTsYI--`z?E#4p8Bn$|B*2F(>zutnN9J7r*->F4epwhr|RM^ z=NnV^7AUFS%+?L}pnFu7fA>CP|5sioddu$XUI&l+UvBQYpf@F8z~Qg!}w znTf`#Y-@bo6Z4#{7dr1bWr_GZ@X3-s^7Q|XpXNaN>SMHFWN^#bfZ=y6HNie4S05*P zzj@vA@*&=nw?){kcg~#IIEAAwMD^LIGPj^Sol8`NKK*%8rA zmF9o3FWcX)$MH&!DrU>3Zmb;P9r3v^e-Zq!i{n&GuAGuH?~i^2-}FiJu)R1s5?58` z-a~u+(UksybMa@$(m~p#*u*2E>*G6nUE_C3VFq65xL&!=muoLxm37&WY~i9*O{fUC zmp?BlSTZ-Bx5m4S2hQ|9`RH4GUzyxybVkpo8L4y(oI6kHdB(@9b^Lf{p(oYEa2xO0 zIrClz{pfo`MZ8-}->=neD#r2J>W>aAO^PJVvGb*B`yrdI`}K9t>8Y0bEfl_6yCOQT zS1gd^?V~n&gV%{9-t5%~@1)~g-c!dFl@jIUPmt&IR*T zlAKgI{#BNQT=D$ybzZR!r&PJFx@&e(vuB9|Ub)Zm`I9D)+UrM%BnilQQoV0;e>6#Y zt=z_UA>c{ztbXl!%#ZI`*AM}R)T}%g#0zzwcbp`jIw`%aW!&7rC`D*NC!;c@oz!RpH9o{L|e%Up_% zk$ZR1z~j3gwNwG&Z9_~QGCU%g?sAs8*eX_cS~jT&4&>39iO*I&>VYq4H2nXTp4VK3Y~gIQGYq6k+g4=4SD z+($27P~A{>H_g_Xq32300y$9H9C3M;+0|7QA%A%;nprX4Hl_^m0YRQx`3}W%)pa(n zbNOz6p6^sCf8Su->T)f;R+GtuA%x$8a(@Flr%NhlNI^O_U3}=Q`hw;g+MwAmHA)>` zbv5v_fwuOmnPsHyOJ<{w$YGlS8@t;|^@pEHs7tI9piM1_+;H)obf4&PEoO zs(#>4n5Mt%%Gtmwr>DvNNNH-eg3n}ug>!(Yd&O|nlR!Wr)FES);%eW5vc%@mEkmtD zn+)IMRG!OQ?#QjFw1Y}v)cL1JOSZnH<#>{HaZ~5tKC-~F(f)QVaBZSC&MS3WECMRmf{g|JGYwXqD2pk{E>Rz&7AoBOrgVXh-BNI> z+qUDz*0(y7cUyjegG6seU5)mg4BMz_KGwTQ|3Y5^z$Ir5DO@ z@HHMAA+_$0yInDLSif|BS;~{7q3A>L>FxqvPhN|LTFQa&z7d_W&-gbD)UHxKK}lT> z>FoJ1LT8d=`W^di>DRuCly*unwgtW?8|c05B^w-N?)Rs^U%_@mS$scxKg>=nS1isG zTUtnxYQ3U{j_}FHDM9IneXgm_tO@2HLoS5*PLl|f1{;0O40Tw~t;iXabi;eUoFUcQJYq3I*EaOR;2Qz+`V0r>O{4$rJeXS`&W zet>y+iqyA#4dLGXlHK}w_RRdIcl+!H@vFOfRj=96d?uXxAR(k}$kNGJ-7OYizB%OI zK-01^$xS}v*G1MeJ}jSP;a5@LeBJ+c`6tt5Cbh`$TI>Uwf$nQOmtE@Uh3}4`dwFM%w2$h3KbxF~%{(=N zMyj3uGCH9noh@2GRNK&SdMc|__I;6%M|?PLLsO#nm`Ss=eDdS78+X3;pWsa^Pw>h% zqKlvuesp>xo_?CtgI>EL%X@8w5xp_lTv6#wE#1_K!(yyTS4|gj zhmgySBmzFP9IDo9-$_h=us1RD>=%``Ko7O91ymTF+)}yQg5uSP(((1S=)%VPi}}RTBGtF-x+xbzKdLx0=|5PB3yX2X zZxdcUH>vi?{m#gVjYHl~ZmK^y*GO|R!*qk=ZK^I&JdXgM@9hHOO1VQmMdPYv>XgdD zf*&StgtOntWi5Drd6DV1X6>Bv!~$|Z)}4CrB~i_^*zF)j`%^QA)* zH=^_A*Be_%yt%!&1+U^fmtP)YNg8AOp-)~lygJWpza)K^o|DB@evC5erO)y;ow<9B zQ-SxHSK=C&ZDLMQN?tK=s5|k4qhx7uDpi0yZDFC8L@*;@Ig;gkW*WmMKbw)$R*~FY z4+5;J?hQUYnpDchc^AJ6{m4Jo=ER!N+ryo5Ayd7gqP!aM5tlN>=2&DSA~@Abr8ufh z+PfA5E%GL(1SSHWb>j@@z1hN>*rPo!y*`!z$6T2#)cBJL5 z;;D(1&#eVh1H*XV>WIaM@lJTlSj;$*1-?D8!4za&_jqAMQy@uu`~#lWi0qr|ZRHZx z@9_@S5;jh3tdDY4+KY)MQ6FdCjF5ghXVBNk^6GjGr8(Qvcbz&xJtZ zpfHp){U~X0_)7|D!epvwb+saHqa}yvl@4VNieQK6OsgZu)LIlt*K=M*=x%IgZawuC z|4QL_A(`GKP^Vzr@-uZ!-0@@YHzUsXXlVn%SWJ|MlwkS$&GnC+}+HS}b+fk9kb=ysxADiYa@Wfv2!^^)T<#!{Vh5m(H z!lMyFoDGJGbR@^?6~tPOlD4~jjuzu#2lVxi*^i%Y7@@^#%3NZ7U+d{i42Hk6m!}!* zNo#wodcGvpHT+=x>A(Do8n`si~ZwGwPuP!BhYvzV&1ZfZ}cz~M)~EM3yY z>^@oBr4UmaEmFu{QBGD@Yl;;?sW?f;c$oZ)1pN`iR<#g|<@Q7s#%KrWqphbBpZ4(o z;1Oec_V|HIYkP|_VLZ=3uD{!IfS_*jyC2^B%fylcZF$ zi9VY@MB7f0$%qv^!9GPGE<~nN8+|XpI-}W2dul(`VLkD$ML}}h?dv~AA2fQrXIMt+ zCbN1iYd891&jv8m(tbg(J$1boC)hb&HTU$k%gU!CEmN1hgIDjq$gE@H6s@sn3QpO2 zI*&-T4(~;P|1KQwv)#fkAvtbQHM~aRJ}k?FJM&se{rl_{jYHZWZK5ljzL3ff{UA{{ zZCAavL2LET zio_IGdIeKn=d55Yir9)E_^q45u7ysrxW^i=a*RFL3aQJo=MHq*=kS$0D1b_~IyoI3 z5-o%CC6Pe;X|Xl8-bS(oC^YCTO5trTxu4>*#nMvl$^GP-=-E5>4kz1u==NQ_`tcg; zc;-+ILbk|6`slTf5sQ(-D_@4v{8e3KrR_T%??eonX5SQh{WXd|Iq{Q$s&f%{D3-ht zg+y1^i}9*5jflX*->bOkHE(i*tFQ16Vr4JHGC$Sn*BIG5ewgICecM)*?Nj6rVK<{l zv}{OBdVl8&tC_504Pg!qV@aG>(c?#)(Da-5i(1K6#qj|&q^v6FP&RAA<38I>0 z*$?mbD?P-HbI>rL6!`J67rXG`5{-apdBTE#lZi`4C2geUi}R1g$~Nlde1-iq8JXRvz_`xp}Xc>H36>p}*PNCuWI7wGjuaSY`z# z@P|ANEFGQRX_ld#$U)Vt$h+@ZRYA`PZ6xzXr3k`;aMGt`OQl{pRd9Dp^W_hX^E5tZdNJV1f=(4FQ>h!2}#KFGcQb2;(*)+}fmw zP1mccF3g)$d(J-jtmCTKSV}^m)EJw?oc}<(aBSKAyZD+!06q`<+hdvx-BPkwG>fV> zB=|Lp>eYm+bZ+9^OWu&6xYt(RM%&>4_+p5#p4*W@QYWN}WIO$6Jy zv-}px@!~$y7?eH%C}Uol8Kb7|Q_k)?6(j%Ye624jU(!XXz88$ca-`17{ zm<&q2_hm+y29!qJU?p94^Un;kER%Wh7|)Q=aC)0ezjPz`(Bmi8vWm-x!(<$W9SK=vB;D?)XNk71+dZ?bmZfM$ znPK|wW5##vSf_elbYeLcKb+Da7NK}@AvTR*h3+KvzV$N{i_EOUA^4=lAvnWcjivLA zl?Jhv;9Jl2g)jT_HnJQ;&&|J~(qgxLBj3p;=CO*CVtsHy(KXkffZ}+}rvf7ezV>&v zF<~obFSLc__KP1F$j2rUVNmvdbz$OU@R9ICR<)N_yKv0vlBu}0=2ONil3X)SiN5|g zX~lP&vCNh_yI|DIwJ?6zA^eJ^+T)}f8WvaU7N054&)a#=c6k3NFBugRULTns(*KsW z<#1lG&aHvp%=!9lZ&boP4V#onQE_&8Xk;t(4auSjSP4 zr=#o7yFKnm<~%|0G0kOP zMWk+BdqL@l)GL!8C+=IDCQsfthNyV_;rX?M>!Qsr6p0tSpU;QsokEpt5>+ad=$=0H zwEtma**n)beXpKMmQGoRQ{&Y1o$_s6>+%&2r{okBM3xDT8hMBMPFl89%pV~ZUrM}7 z5mcven7SgznmU*AqFm#t(Kg|}M)rx?sAk0^>z)#YY^f1nwZoTiVgs*EHy)MyN;ff2 z_c3@N!zl4{N3nRx8BH&yQie|*$Ec?}7M?qWKD~9~6n>$8F}d0s51jIhu|r0VdfY31 zI0ELM#(i5l&K=?L!TO#a4h1hQC?elwA!e{iIX4lHJvk^kBx~|YIup+watDBP0znS_~kXZ(nF@! zaODR&wagc7N{)AC^Ec;r+0<$H3tN3Pp}qA+M&jsHFHOC>ac-KSaH_fCJ z-Eo*8%V>ERrRA#-y1obx-K`e2n_MT?mWc)3HxylGm7DNm_3;T6S+|(t zkEwjYL6_#G$ApbPE^oBsi|*VwnH{p_S6dw>bgxSBG*jkSfzor$b8I23lZ?vJr(So6 zf7G_P^Kza*o0pz__6710MM}q-k*FpuzDMF90kh&)mTsy-HKq&e9_yBZUvXI^#w|rP zk$m|vW1)jCC%ft&9a4FF=X%01Hq^bw(m*xop3JbE#*G!qm{6YcCf0O*jvo8t8*&d! zs@57Vr*XEs9zrLV+-r0sOwCI23HDr=M>pFuB$JlG--8#94wpDPEu@ zezHw~?!XXdV3W+$%{d3uCC2`ymQnwek~`8Y0t$1nwo@_hd-Ffeo5%Xxk;c-f9ki|e zTJx5TU~R7HK=tXfiRqb!RRt`z-H*QW@MnF`Zj~o>Ya1g->pf)n`B4Oie`?FeiEJ61 zeUYPg4GQndK3No&$D8SKh9`&kbBd&CM~A-o~(=7>V)@;1U>2n zf~w1(*;fdaqAlW_;zFxOj^@h`g$i7%^ddO-#DTm|_8i^Qe);7LX4zNlYN%l9K~)t} zNl_^{b$wf&9Z#F2+tAC)OQ3)jl2`=qVUKV%EkGL(>h8uaiOBD@y(bCpp(hP}e#inEYo-7`U#`^-k2KcqWSi)ogA7TGVG+7%eRWFw zON5aVv&uDir1My|ue4jRa#YWRY2-Qd-DgO@i1Uu{Y-q2oL_+Dw5Ke=AzTxRiO!btA zROHkEM#Y*_A6Cj>qHU1Ejycl#Eh_GDm49UGRQNY4 z+uN2FN%V9SdB+TWqSO=D(DdtAIuZNA5VKVW3D#G;uwLLbGO=2s__`l{9B}9n8sLws zC4N2^V&NEV&CGdwGyQ4R!oCOcNUO2LIT!In#W!U84xV+Ey8Q9Wx4!$Q`uqjt{R{-O zY)Lpum086vb)0GJ$V|jGMs|K9`*ftT*Lt?V+v@nPt|yY&SAHCNdwiOg!EfV}I!AaV-RE@`o%>ousxFp-L?*H=SY!C&xHy-@wNx_F z3O-Hp)!>rrD^i^#lbfU0>A#qAm7^DT&X+kOVcer%^~s|nofb&J#T>LAHabK1$j8jt zhF6x$M0ZbK z_}mi(4|BZ^luXjY5|6&t_WeJW&#BPq2=e!o7n|SA;kePTki}RM=*rm2@Wy^Hw92=> z?M~nFFlCB^fIkIVNw7Ilu;;+i=Jo@a}Y>*#YI9eq(~b?-r+{#Aw$mdK4EjY`Qauz ze$t~7teKYqWY!GL>%s4d9(~MDAy$1BOzUWwx37wab?An+?(OfWRAs)~T^FNn4i(p} zEU8HLXjBP5xnPs(qg}w$baKs3cvO!!`D@?is^pT3F{I*`#h>wUzHzKg{%8N9oRSKW`gbL3=3v zV4!R4)8o5f(r~%B?!K--T~jZvw3aBJ6Q^Y0)(l7X)h6lKiw@1oUAa7hx?AQ!P5k_p z1`?aaU+c6^;}bki&e=HEz8^7DPK(ewjkS*wL5Uy$zZBKd6h%lFNTO*Gh;Ri2_|u(_ zhN7;lpz0YVVGY?cs!EDyb%ivPb`n^Ot_4xiArM>tBD4eUKLlN!b7yr`6=j9a{)_Mx zZ#Ln@J_JG<2Z5l1NZ=NMBj}u!-6?`E%Kp+Yc=bLO0>OX)oPQp{V+e#R%1s#Qh;|Tm z_HeT`vv6{EcXBX8I|_L_*l#u={^b)7qr&53zhR93fH1!~e|#61lZQKowo}%N$D~x0J4yB^Yxm!xc4EX|M~07pmocrQ{{wP@*vWB4 z+t}`=Co`Dt^tK)bh@Pzz@SI%)r95-{LIoOS0D7MW0^*U{3G#5>#XGcBOM2T75OIGz z!6#uLyGW^LXlAnnQfRRe2xwOgo%(~~>jXl_8fk^vMU098_OR7&4AjM!WneM8$RQFA zTfzmL>%cQ?e>4e!I4bvxW95qULR#3Pgprn(P9Bc#W|p=nOFIiEZ@55I$h&e`9pIe7 z&|rt)F3a!4xx1qr-O)~tW^NW{XiKM`!(?Yf?w8bFAO^e&AWs;=<51j-=Z^Ar_e7(- z%-m4+C`)%IS2(eO>f^{006q@7f)@ghR@wo#L^>c{k!BW1OFJ_QcOZEWtht1B96Xj; z1s-dUba4JF_O_N+-4CEr6u5#9qV|F6POOuMs~aYAtespP%q(p7lq=2CQse==kPf^6 z9b|~pJGjnAl+Z{=$pFDN+bOliWG{SYz zy10l9+>>%1YIiSoOP>vpEAV@KdcLbdePknwX{-P?NGJ+W8hfqy5ccr4; zQGfNMCe8xUwp?iNBeZt~yICR~cMEwyD#{{_}Y&UzUpKHTRz%u}J1fuPQ z@eYu)tCJ1bvA9_vUCq2~fdkC!osd>&M;kLsw5z2(3eKynw?i7#e&e|zcqh}{@ow%u z_9!<8q`f^H^XBtYVVi)J2qZ(@No>A@>56m*`Y?hqGqH^;@PZW_vi)oEXG~B&1xVi3hK=PY@LM%B zWL2#80D}p{5@nB>=6BbOZ=0&Vtr@!1Jwg2^G`wQnn*z(*ilMF$w%H5&dyt{r-FBJ! z&Z+SbZR>@GahC00z-X|VfE9XAcl?QmdYbXVf5yYRM9B`3vaKBI={UPR(DqI?Xh*Z% z9r7m@I`H;6?16Q0wR8e|Nce>?r31fcTdELbFgrW$!F0uJ0siJ;4eAEOc4R=8n+d1? z#)fzA=tNZa_A&<5eBNab?)KdK&k%>3HS`zi; z(>x3zUv~dbWH4ZU#Wfs#b%Kg^TQ@YCSv~&?{db4Lp)U;Tx@@DN6KT2Ee?kA8^fA!_ z2aii?ZH9+y`TQ67uSIJYxL3XCf$iXiy8N^6UU1AR_4n|$(<2Sr4sU3vApQR<9X`OT zV>|ibb@yD{gZz&#_MZ6e;e5;7rbBg~3H+~gc-;yLl#a9@#B0Ek%K-`T`XD&+?|q;d zW)XLWiw?a*AC3t9UJaQcK>lDjAlSm$?>5sFrx<;h0SrbUjupbn4%x}V>?!`)5WpTw z5=8=>zXQr)KsyAX4TtWa{WI^ld7<4cZOz>5cia4S6IlCv`wfLo@ciL_gSsQ#VRvhI zCx`EE3x!S$9+&?M)653txXWJsk+lEP3XqFAjY2nVudeJsyCW@rAIjYJ+*aH1ANSuz zvO?TSeia4@&U@S5g$o}>KZWvb8uT=35D7zba<@gf?yWDYNo@?Cm>C5_bO#4ptG$U_ zU%x&20$M8bFDK4K!x23#o$Q@l_iXl(SQI3}2DE&9|#P@sjzXYZS@~Gfd!U(}(PH>j16m zUtX)ohNoeYU~nYkm?X9{fP~2|K)v?t9z5xHCIAlh<>Ik+<}jPrJbfwK)9 ziumHi3yk!JA9VxmQ|XRI`IDp z7?)6GZBO87ZeY5!w1rc)Ro9@I1(bP%4uHDM`uT1wcT5Tf4(8~0fExj#i~vL#bd>A8 z+689o1lyBVl&xk$fWiZM6FQF48{tVFuJ&dZJRD#*lFm*sbC_+)3f|6P&e#m0S)q~O z82)>&V)iQm3fIv0Y|bLo04NINu|ejIjMhDX_Ml7Qa8mp?;w%8}4*t$g!0Uj+{gdj3 zgRQMzFPj1|6%e=V5N&0haIjx_2WzyW75t#GY|5v240sQLI4%fpz8j9`;cVlIxwQiK zIhgAmIEfWuiVju)i2(fp-I=ZQ!6APwcE1*76l}V$;f1p3X%Km#fC`Pgq5%le+7)T@ zGrhap`eInR5t9T+m?Z()wemyoBuqn*Ah8Xb(Vm`&%s2s}M4f7<_xOi*!~MLyuyjT3 zvZud5M{kt^koGh?krm^6B6pAHuvgg8KW~75`=CdU+$ne@%G(*~Xoa~I+%2fDTs_y8 z0vtL1uP$)`2Qkb=`S0DsKV7mLDaJLIj1n~17&I8#B?fcwBnO{825-KBhoLx_KEDv{ z^k4NNJkHU{9c>9NE`DB!zy)-?Ow^kZfb0PCJ5-?(I4{7p)x!;Bn^9J1*ztju`u6k! zaNA+fXeiEOV-MVJ{=3+X_i6!zvoUBebhrtD*&0rrmy@fV+aB$WaqLoK0|GgLKz7KS z;DQ4o{yf{8VTAp>UcqqT{CD0_`#BZhtpguIj{qO={>C%2M!UjKt5#_omsvo&t^PHw zY7j!G|LFUD_X8(!m1>w<7{CnvwH>HDup10Bkl|S3r!@;O&6NSo<$}0Rlyol^Nbh3; z5f1rCN;d8lKqmfciMvC-CvvwgStAbEKMjB?zL59;nWBqr}Zv62BGW^RCv zx*2A8AjWrQpez73rk6Cn9&({HC`}O?@un7jw zxdJam^qpYdPF4g0W7L>G{O5`0`}H~~WD&MNqOCm4EKn$CAtxIfOu5N6Lk}?UO@r#O zz}XvPr2o8+`Aq`YUtnVOCj;i~{rO&s1H{JnWx?OY7_|NMpj2o3Z5t1?FG|SW+kNLh z{=H#(>-8Z70%KsU`{NNo{r`0@6xtiy6#dzPKkMv58MM`7z@U8rh8o2m2(X+)V;2Jm_j{;rQtFAHqZ;ezzOe(I8~eq;>V+|AN+{?JED_up!YT7m$*)$z zLLe~44sqRl7d+=zF$K7Olz`(!#oetA1RRV(CvlG+c-|j%O>n>Yk8;QX(sreto(rUnBQW6+?H zC&q?}>TRqu+7hnicGeX1k)T^J1}z{-q=du$OrgSoj`!Nvqyq@Xpy>r;>RmxFuEUI6 zLH-NDCV+!6K1jTXgYw6JkKBJww%g7FMO<(iHLBXzaKS2pG3Y!qM7KBhpL`q4FrJC+ zf0PMSVhlR&co_GlVrsbHbpD|0u)7E}VhkFN2blgs{FSnSQMtONjUND(YK%e0ax2*F z{@bTND=T3*hPf0MFqM@UgK7(rhUH)i;QlBIgKO{OBlMrQnb4uqCG%gHyM&R@!5nOP z&?y*$O68G*!~R)kX12?CvCZ2O9s&y_#-JPA2k^{arBQIL4qq1I!JG{+#sMV$|9Pbc zEAMxe)z2$iIACG{L&bg2Ef|BgSIiI&__OTsck*htsa8%f?p_8^hA|L1e>{hbVVOVc z{&tCL_1pyG9Du+W`yVJUB2D&$?b5;3b7?r3t6q#j#ZANWe11<5aNg5>fEup{AdIm> z#OayAit_<=qi$|U8`vf9XkG$|4#e}){?bzTTun3?KlB`o|7Yh~#65FVIBF$PWWoyCGh?K*vK+-7nFyQrU)flyHi z*zlxZ`EHp091AUP&;lroL8CSX4;JMP?pi^1)CaCRhs??d^#BNCY>@6`Alwz^gR-{= z8FUzJv6V+sz(E~>G3W~UkO&U<=NvO4+!D8m>yl>PCbsCI+>E+p7p zp-Sk))={7iV;p}VK`w*#FHm@uV*K~cT?RdZF{nxe<8Hv;#Rs_a~sc00S#l&_;Ekr2GJh9|zz?3LLdlj1;7N?J z0{j0%32q5sI^D^`0aM5ic7r>@k`A0`BYK(4=0WUW4BFx1N8o5b^RdphPVP=-)+kUP z`LER;0}Yg;GSCH1#2D0<_IiJT!XYu^(Q*FM<_8=w{Q_hEf0M!Qu>IkXzTRM42<{#+ z`~RKo#_(7!k{Azz91X^xM<=dJJ9rM5^we%gCyAjq^I4#(2xHK*wp79nj`zE3wYeG zI!tiu2ufvkj15eThz+c2w}b2}#zY|cp0w`;{8cGw=7uT71fOwo!`zL+@gFx3CwGCo z3dW8=_(PNbnZNt8?WBG@$CChoz!>zV0D+GOohW{VCZsNPFX12JQ{<)(AP^V>asS8j zl;l5`g~c$oj+1b*F>1~ Date: Sun, 4 Jan 2015 14:55:45 +0800 Subject: [PATCH 57/83] =?UTF-8?q?=E5=8A=A0=E4=B8=8A=E4=BD=9C=E4=B8=9A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/api/mobile/apis/homeworks.rb | 29 ++++++++++++++++++++++ app/api/mobile/middleware/error_handler.rb | 2 +- 2 files changed, 30 insertions(+), 1 deletion(-) create mode 100644 app/api/mobile/apis/homeworks.rb diff --git a/app/api/mobile/apis/homeworks.rb b/app/api/mobile/apis/homeworks.rb new file mode 100644 index 000000000..99acfd87f --- /dev/null +++ b/app/api/mobile/apis/homeworks.rb @@ -0,0 +1,29 @@ +#coding=utf-8 + +module Mobile + module Apis + class Homeworks < Grape::API + + def self.get_servcie + new HomeworkService + end + + resources :homeworks do + + desc "作业详情" + params do + requires :id, type: Integer, desc: "作业ID" + end + route_param :id do + get do + get_service.show_homework params + end + end + + + + + end + end + end +end diff --git a/app/api/mobile/middleware/error_handler.rb b/app/api/mobile/middleware/error_handler.rb index d0db6ebf1..018191d8d 100644 --- a/app/api/mobile/middleware/error_handler.rb +++ b/app/api/mobile/middleware/error_handler.rb @@ -7,7 +7,7 @@ module Mobile @app.call(@env) rescue =>e message = {status: 1, message: e.message }.to_json - puts(detail: e.backtrace.join("\n")) if Rails.env.development? + puts(e.backtrace.join("\n")) if Rails.env.development? status = 200 headers = { 'Content-Type' => content_type } Rack::Response.new([message], status, headers).finish From b5da95d5ce33ba3f88366e8341372ae6ed57c356 Mon Sep 17 00:00:00 2001 From: z9hang Date: Mon, 5 Jan 2015 10:15:14 +0800 Subject: [PATCH 58/83] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E9=94=99=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/api/mobile/api.rb | 4 +- app/api/mobile/apis/courses.rb | 2 +- app/services/courses_service.rb | 2 +- db/schema.rb | 2683 ++++++++++++++++--------------- 4 files changed, 1348 insertions(+), 1343 deletions(-) diff --git a/app/api/mobile/api.rb b/app/api/mobile/api.rb index 11552881a..a2286181b 100644 --- a/app/api/mobile/api.rb +++ b/app/api/mobile/api.rb @@ -31,7 +31,9 @@ module Mobile mount Apis::Watches mount Apis::Upgrade - add_swagger_documentation ({api_version: 'v1', base_path: 'http://u06.shellinfo.cn/trustie/api'}) + #add_swagger_documentation ({api_version: 'v1', base_path: 'http://u06.shellinfo.cn/trustie/api'}) + add_swagger_documentation ({api_version: 'v1', base_path: '/api'}) + end end diff --git a/app/api/mobile/apis/courses.rb b/app/api/mobile/apis/courses.rb index faa060193..2e514b6e9 100644 --- a/app/api/mobile/apis/courses.rb +++ b/app/api/mobile/apis/courses.rb @@ -37,7 +37,7 @@ module Mobile requires :is_public, type: Integer, desc: '是否公开 1公开 0私有' requires :open_student, type: Integer, desc: '是否公开学生列表1公开,0不公开,不公开时非课程成员无法看到学生列表' requires :course_type, type:Integer, desc: '暂时传1' - requires :term, type: String, desc: '学期(秋秀学期或春秀学期)' + requires :term, type: String, desc: '学期(秋季学期或春季学期)' requires :time, type: String, desc: '年份' requires :class_period, type: String, desc: '学时总数' end diff --git a/app/services/courses_service.rb b/app/services/courses_service.rb index dee7af56d..d1b5e8be5 100644 --- a/app/services/courses_service.rb +++ b/app/services/courses_service.rb @@ -126,7 +126,7 @@ class CoursesService if current_user.user_extensions.identity @course = Course.new @course.extra = 'course' + DateTime.parse(Time.now.to_s).strftime('%Y-%m-%d_%H-%M-%S').to_s - @course.safe_attributes = params[:course] + @course.safe_attributes = params[:course],current_user @course.tea_id = User.current.id @course.term = params[:term] @course.time = params[:time] diff --git a/db/schema.rb b/db/schema.rb index c63ebb981..8693503b0 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -1,1340 +1,1343 @@ -# encoding: UTF-8 -# This file is auto-generated from the current state of the database. Instead -# of editing this file, please use the migrations feature of Active Record to -# incrementally modify your database, and then regenerate this schema definition. -# -# Note that this schema.rb definition is the authoritative source for your -# database schema. If you need to create the application database on another -# system, you should be using db:schema:load, not running all the migrations -# from scratch. The latter is a flawed and unsustainable approach (the more migrations -# you'll amass, the slower it'll run and the greater likelihood for issues). -# -# It's strongly recommended to check this file into your version control system. - -ActiveRecord::Schema.define(:version => 20141210070327) do - - create_table "activities", :force => true do |t| - t.integer "act_id", :null => false - t.string "act_type", :null => false - t.integer "user_id", :null => false - end - - add_index "activities", ["act_id", "act_type"], :name => "index_activities_on_act_id_and_act_type" - add_index "activities", ["user_id", "act_type"], :name => "index_activities_on_user_id_and_act_type" - add_index "activities", ["user_id"], :name => "index_activities_on_user_id" - - create_table "api_keys", :force => true do |t| - t.string "access_token" - t.datetime "expires_at" - t.integer "user_id" - t.boolean "active", :default => true - t.datetime "created_at", :null => false - t.datetime "updated_at", :null => false - end - - add_index "api_keys", ["access_token"], :name => "index_api_keys_on_access_token" - add_index "api_keys", ["user_id"], :name => "index_api_keys_on_user_id" - - create_table "applied_projects", :force => true do |t| - t.integer "project_id", :null => false - t.integer "user_id", :null => false - end - - create_table "apply_project_masters", :force => true do |t| - t.integer "user_id" - t.string "apply_type" - t.integer "apply_id" - t.integer "status" - t.datetime "created_at", :null => false - t.datetime "updated_at", :null => false - end - - create_table "attachments", :force => true do |t| - t.integer "container_id" - t.string "container_type", :limit => 30 - t.string "filename", :default => "", :null => false - t.string "disk_filename", :default => "", :null => false - t.integer "filesize", :default => 0, :null => false - t.string "content_type", :default => "" - t.string "digest", :limit => 40, :default => "", :null => false - t.integer "downloads", :default => 0, :null => false - t.integer "author_id", :default => 0, :null => false - t.datetime "created_on" - t.string "description" - t.string "disk_directory" - t.integer "attachtype", :default => 1 - t.integer "is_public", :default => 1 - t.integer "copy_from" - t.integer "quotes" - end - - add_index "attachments", ["author_id"], :name => "index_attachments_on_author_id" - add_index "attachments", ["container_id", "container_type"], :name => "index_attachments_on_container_id_and_container_type" - add_index "attachments", ["created_on"], :name => "index_attachments_on_created_on" - - create_table "attachmentstypes", :force => true do |t| - t.integer "typeId", :null => false - t.string "typeName", :limit => 50 - end - - create_table "auth_sources", :force => true do |t| - t.string "type", :limit => 30, :default => "", :null => false - t.string "name", :limit => 60, :default => "", :null => false - t.string "host", :limit => 60 - t.integer "port" - t.string "account" - t.string "account_password", :default => "" - t.string "base_dn" - t.string "attr_login", :limit => 30 - t.string "attr_firstname", :limit => 30 - t.string "attr_lastname", :limit => 30 - t.string "attr_mail", :limit => 30 - t.boolean "onthefly_register", :default => false, :null => false - t.boolean "tls", :default => false, :null => false - t.string "filter" - t.integer "timeout" - end - - add_index "auth_sources", ["id", "type"], :name => "index_auth_sources_on_id_and_type" - - create_table "biding_projects", :force => true do |t| - t.integer "project_id" - t.integer "bid_id" - t.integer "user_id" - t.string "description" - t.datetime "created_at", :null => false - t.datetime "updated_at", :null => false - t.string "reward" - end - - create_table "bids", :force => true do |t| - t.string "name" - t.string "budget", :null => false - t.integer "author_id" - t.date "deadline" - t.text "description" - t.datetime "created_on", :null => false - t.datetime "updated_on", :null => false - t.integer "commit" - t.integer "reward_type" - t.integer "homework_type" - t.integer "parent_id" - t.string "password" - t.integer "is_evaluation" - t.integer "proportion", :default => 60 - t.integer "comment_status", :default => 0 - t.integer "evaluation_num", :default => 3 - t.integer "open_anonymous_evaluation", :default => 1 - end - - create_table "boards", :force => true do |t| - t.integer "project_id", :null => false - t.string "name", :default => "", :null => false - t.string "description" - t.integer "position", :default => 1 - t.integer "topics_count", :default => 0, :null => false - t.integer "messages_count", :default => 0, :null => false - t.integer "last_message_id" - t.integer "parent_id" - t.integer "course_id" - end - - add_index "boards", ["last_message_id"], :name => "index_boards_on_last_message_id" - add_index "boards", ["project_id"], :name => "boards_project_id" - - create_table "bug_to_osps", :force => true do |t| - t.integer "osp_id" - t.integer "relative_memo_id" - t.string "description" - t.datetime "created_at", :null => false - t.datetime "updated_at", :null => false - end - - create_table "changes", :force => true do |t| - t.integer "changeset_id", :null => false - t.string "action", :limit => 1, :default => "", :null => false - t.text "path", :null => false - t.text "from_path" - t.string "from_revision" - t.string "revision" - t.string "branch" - end - - add_index "changes", ["changeset_id"], :name => "changesets_changeset_id" - - create_table "changeset_parents", :id => false, :force => true do |t| - t.integer "changeset_id", :null => false - t.integer "parent_id", :null => false - end - - add_index "changeset_parents", ["changeset_id"], :name => "changeset_parents_changeset_ids" - add_index "changeset_parents", ["parent_id"], :name => "changeset_parents_parent_ids" - - create_table "changesets", :force => true do |t| - t.integer "repository_id", :null => false - t.string "revision", :null => false - t.string "committer" - t.datetime "committed_on", :null => false - t.text "comments" - t.date "commit_date" - t.string "scmid" - t.integer "user_id" - end - - add_index "changesets", ["committed_on"], :name => "index_changesets_on_committed_on" - add_index "changesets", ["repository_id", "revision"], :name => "changesets_repos_rev", :unique => true - add_index "changesets", ["repository_id", "scmid"], :name => "changesets_repos_scmid" - add_index "changesets", ["repository_id"], :name => "index_changesets_on_repository_id" - add_index "changesets", ["user_id"], :name => "index_changesets_on_user_id" - - create_table "changesets_issues", :id => false, :force => true do |t| - t.integer "changeset_id", :null => false - t.integer "issue_id", :null => false - end - - add_index "changesets_issues", ["changeset_id", "issue_id"], :name => "changesets_issues_ids", :unique => true - - create_table "code_review_assignments", :force => true do |t| - t.integer "issue_id" - t.integer "change_id" - t.integer "attachment_id" - t.string "file_path" - t.string "rev" - t.string "rev_to" - t.string "action_type" - t.integer "changeset_id" - end - - create_table "code_review_project_settings", :force => true do |t| - t.integer "project_id" - t.integer "tracker_id" - t.datetime "created_at" - t.datetime "updated_at" - t.integer "updated_by" - t.boolean "hide_code_review_tab", :default => false - t.integer "auto_relation", :default => 1 - t.integer "assignment_tracker_id" - t.text "auto_assign" - t.integer "lock_version", :default => 0, :null => false - t.boolean "tracker_in_review_dialog", :default => false - end - - create_table "code_review_user_settings", :force => true do |t| - t.integer "user_id", :default => 0, :null => false - t.integer "mail_notification", :default => 0, :null => false - t.datetime "created_at" - t.datetime "updated_at" - end - - create_table "code_reviews", :force => true do |t| - t.integer "project_id" - t.integer "change_id" - t.datetime "created_at" - t.datetime "updated_at" - t.integer "line" - t.integer "updated_by_id" - t.integer "lock_version", :default => 0, :null => false - t.integer "status_changed_from" - t.integer "status_changed_to" - t.integer "issue_id" - t.string "action_type" - t.string "file_path" - t.string "rev" - t.string "rev_to" - t.integer "attachment_id" - t.integer "file_count", :default => 0, :null => false - t.boolean "diff_all" - end - - create_table "comments", :force => true do |t| - t.string "commented_type", :limit => 30, :default => "", :null => false - t.integer "commented_id", :default => 0, :null => false - t.integer "author_id", :default => 0, :null => false - t.text "comments" - t.datetime "created_on", :null => false - t.datetime "updated_on", :null => false - end - - add_index "comments", ["author_id"], :name => "index_comments_on_author_id" - add_index "comments", ["commented_id", "commented_type"], :name => "index_comments_on_commented_id_and_commented_type" - - create_table "contest_notifications", :force => true do |t| - t.text "title" - t.text "content" - t.datetime "created_at", :null => false - t.datetime "updated_at", :null => false - end - - create_table "contesting_projects", :force => true do |t| - t.integer "project_id" - t.string "contest_id" - t.integer "user_id" - t.string "description" - t.datetime "created_at", :null => false - t.datetime "updated_at", :null => false - t.string "reward" - end - - create_table "contesting_softapplications", :force => true do |t| - t.integer "softapplication_id" - t.integer "contest_id" - t.integer "user_id" - t.string "description" - t.datetime "created_at", :null => false - t.datetime "updated_at", :null => false - t.string "reward" - end - - create_table "contestnotifications", :force => true do |t| - t.integer "contest_id" - t.string "title" - t.string "summary" - t.text "description" - t.integer "author_id" - t.integer "notificationcomments_count" - t.datetime "created_at", :null => false - t.datetime "updated_at", :null => false - end - - create_table "contests", :force => true do |t| - t.string "name" - t.string "budget", :default => "" - t.integer "author_id" - t.date "deadline" - t.string "description" - t.integer "commit" - t.string "password" - t.datetime "created_on", :null => false - t.datetime "updated_on", :null => false - end - - create_table "course_attachments", :force => true do |t| - t.string "filename" - t.string "disk_filename" - t.integer "filesize" - t.string "content_type" - t.string "digest" - t.integer "downloads" - t.string "author_id" - t.string "integer" - t.string "description" - t.string "disk_directory" - t.integer "attachtype" - t.integer "is_public" - t.datetime "created_at", :null => false - t.datetime "updated_at", :null => false - t.integer "container_id", :default => 0 - end - - create_table "course_groups", :force => true do |t| - t.string "name" - t.integer "course_id" - t.datetime "created_at", :null => false - t.datetime "updated_at", :null => false - end - - create_table "course_infos", :force => true do |t| - t.integer "course_id" - t.integer "user_id" - t.datetime "created_at", :null => false - t.datetime "updated_at", :null => false - end - - create_table "course_statuses", :force => true do |t| - t.integer "changesets_count" - t.integer "watchers_count" - t.integer "course_id" - t.float "grade", :default => 0.0 - t.integer "course_ac_para", :default => 0 - t.datetime "created_at", :null => false - t.datetime "updated_at", :null => false - end - - create_table "courses", :force => true do |t| - t.integer "tea_id" - t.string "name" - t.integer "state" - t.string "code" - t.integer "time" - t.string "extra" - t.datetime "created_at", :null => false - t.datetime "updated_at", :null => false - t.string "location" - t.string "term" - t.string "string" - t.string "password" - t.string "setup_time" - t.string "endup_time" - t.string "class_period" - t.integer "school_id" - t.text "description" - t.integer "status", :default => 1 - t.integer "attachmenttype", :default => 2 - t.integer "lft" - t.integer "rgt" - t.integer "is_public", :limit => 1, :default => 1 - t.integer "inherit_members", :limit => 1, :default => 1 - t.integer "open_student", :default => 0 - end - - create_table "custom_fields", :force => true do |t| - t.string "type", :limit => 30, :default => "", :null => false - t.string "name", :limit => 30, :default => "", :null => false - t.string "field_format", :limit => 30, :default => "", :null => false - t.text "possible_values" - t.string "regexp", :default => "" - t.integer "min_length", :default => 0, :null => false - t.integer "max_length", :default => 0, :null => false - t.boolean "is_required", :default => false, :null => false - t.boolean "is_for_all", :default => false, :null => false - t.boolean "is_filter", :default => false, :null => false - t.integer "position", :default => 1 - t.boolean "searchable", :default => false - t.text "default_value" - t.boolean "editable", :default => true - t.boolean "visible", :default => true, :null => false - t.boolean "multiple", :default => false - end - - add_index "custom_fields", ["id", "type"], :name => "index_custom_fields_on_id_and_type" - - create_table "custom_fields_projects", :id => false, :force => true do |t| - t.integer "custom_field_id", :default => 0, :null => false - t.integer "project_id", :default => 0, :null => false - end - - add_index "custom_fields_projects", ["custom_field_id", "project_id"], :name => "index_custom_fields_projects_on_custom_field_id_and_project_id", :unique => true - - create_table "custom_fields_trackers", :id => false, :force => true do |t| - t.integer "custom_field_id", :default => 0, :null => false - t.integer "tracker_id", :default => 0, :null => false - end - - add_index "custom_fields_trackers", ["custom_field_id", "tracker_id"], :name => "index_custom_fields_trackers_on_custom_field_id_and_tracker_id", :unique => true - - create_table "custom_values", :force => true do |t| - t.string "customized_type", :limit => 30, :default => "", :null => false - t.integer "customized_id", :default => 0, :null => false - t.integer "custom_field_id", :default => 0, :null => false - t.text "value" - end - - add_index "custom_values", ["custom_field_id"], :name => "index_custom_values_on_custom_field_id" - add_index "custom_values", ["customized_type", "customized_id"], :name => "custom_values_customized" - - create_table "documents", :force => true do |t| - t.integer "project_id", :default => 0, :null => false - t.integer "category_id", :default => 0, :null => false - t.string "title", :limit => 60, :default => "", :null => false - t.text "description" - t.datetime "created_on" - t.integer "user_id", :default => 0 - t.integer "is_public", :default => 1 - end - - add_index "documents", ["category_id"], :name => "index_documents_on_category_id" - add_index "documents", ["created_on"], :name => "index_documents_on_created_on" - add_index "documents", ["project_id"], :name => "documents_project_id" - - create_table "enabled_modules", :force => true do |t| - t.integer "project_id" - t.string "name", :null => false - t.integer "course_id" - end - - add_index "enabled_modules", ["project_id"], :name => "enabled_modules_project_id" - - create_table "enumerations", :force => true do |t| - t.string "name", :limit => 30, :default => "", :null => false - t.integer "position", :default => 1 - t.boolean "is_default", :default => false, :null => false - t.string "type" - t.boolean "active", :default => true, :null => false - t.integer "project_id" - t.integer "parent_id" - t.string "position_name", :limit => 30 - end - - add_index "enumerations", ["id", "type"], :name => "index_enumerations_on_id_and_type" - add_index "enumerations", ["project_id"], :name => "index_enumerations_on_project_id" - - create_table "first_pages", :force => true do |t| - t.string "web_title" - t.string "title" - t.text "description" - t.string "page_type" - t.datetime "created_at", :null => false - t.datetime "updated_at", :null => false - t.integer "sort_type" - t.integer "image_width", :default => 107 - t.integer "image_height", :default => 63 - t.integer "show_course", :default => 1 - t.integer "show_contest", :default => 1 - end - - create_table "forums", :force => true do |t| - t.string "name", :null => false - t.text "description" - t.integer "topic_count", :default => 0 - t.integer "memo_count", :default => 0 - t.integer "last_memo_id", :default => 0 - t.integer "creator_id", :null => false - t.datetime "created_at", :null => false - t.datetime "updated_at", :null => false - t.integer "sticky" - t.integer "locked" - end - - create_table "groups_users", :id => false, :force => true do |t| - t.integer "group_id", :null => false - t.integer "user_id", :null => false - end - - add_index "groups_users", ["group_id", "user_id"], :name => "groups_users_ids", :unique => true - - create_table "homework_attaches", :force => true do |t| - t.integer "bid_id" - t.integer "user_id" - t.datetime "created_at", :null => false - t.datetime "updated_at", :null => false - t.string "reward" - t.string "name" - t.text "description" - t.integer "state" - t.integer "project_id", :default => 0 - end - - create_table "homework_evaluations", :force => true do |t| - t.string "user_id" - t.string "homework_attach_id" - t.datetime "created_at", :null => false - t.datetime "updated_at", :null => false - end - - create_table "homework_for_courses", :force => true do |t| - t.integer "course_id" - t.integer "bid_id" - end - - create_table "homework_users", :force => true do |t| - t.string "homework_attach_id" - t.string "user_id" - t.datetime "created_at", :null => false - t.datetime "updated_at", :null => false - end - - create_table "issue_categories", :force => true do |t| - t.integer "project_id", :default => 0, :null => false - t.string "name", :limit => 30, :default => "", :null => false - t.integer "assigned_to_id" - end - - add_index "issue_categories", ["assigned_to_id"], :name => "index_issue_categories_on_assigned_to_id" - add_index "issue_categories", ["project_id"], :name => "issue_categories_project_id" - - create_table "issue_relations", :force => true do |t| - t.integer "issue_from_id", :null => false - t.integer "issue_to_id", :null => false - t.string "relation_type", :default => "", :null => false - t.integer "delay" - end - - add_index "issue_relations", ["issue_from_id", "issue_to_id"], :name => "index_issue_relations_on_issue_from_id_and_issue_to_id", :unique => true - add_index "issue_relations", ["issue_from_id"], :name => "index_issue_relations_on_issue_from_id" - add_index "issue_relations", ["issue_to_id"], :name => "index_issue_relations_on_issue_to_id" - - create_table "issue_statuses", :force => true do |t| - t.string "name", :limit => 30, :default => "", :null => false - t.boolean "is_closed", :default => false, :null => false - t.boolean "is_default", :default => false, :null => false - t.integer "position", :default => 1 - t.integer "default_done_ratio" - end - - add_index "issue_statuses", ["is_closed"], :name => "index_issue_statuses_on_is_closed" - add_index "issue_statuses", ["is_default"], :name => "index_issue_statuses_on_is_default" - add_index "issue_statuses", ["position"], :name => "index_issue_statuses_on_position" - - create_table "issues", :force => true do |t| - t.integer "tracker_id", :null => false - t.integer "project_id", :null => false - t.string "subject", :default => "", :null => false - t.text "description" - t.date "due_date" - t.integer "category_id" - t.integer "status_id", :null => false - t.integer "assigned_to_id" - t.integer "priority_id", :null => false - t.integer "fixed_version_id" - t.integer "author_id", :null => false - t.integer "lock_version", :default => 0, :null => false - t.datetime "created_on" - t.datetime "updated_on" - t.date "start_date" - t.integer "done_ratio", :default => 0, :null => false - t.float "estimated_hours" - t.integer "parent_id" - t.integer "root_id" - t.integer "lft" - t.integer "rgt" - t.boolean "is_private", :default => false, :null => false - t.datetime "closed_on" - end - - add_index "issues", ["assigned_to_id"], :name => "index_issues_on_assigned_to_id" - add_index "issues", ["author_id"], :name => "index_issues_on_author_id" - add_index "issues", ["category_id"], :name => "index_issues_on_category_id" - add_index "issues", ["created_on"], :name => "index_issues_on_created_on" - add_index "issues", ["fixed_version_id"], :name => "index_issues_on_fixed_version_id" - add_index "issues", ["priority_id"], :name => "index_issues_on_priority_id" - add_index "issues", ["project_id"], :name => "issues_project_id" - add_index "issues", ["root_id", "lft", "rgt"], :name => "index_issues_on_root_id_and_lft_and_rgt" - add_index "issues", ["status_id"], :name => "index_issues_on_status_id" - add_index "issues", ["tracker_id"], :name => "index_issues_on_tracker_id" - - create_table "join_in_competitions", :force => true do |t| - t.integer "user_id" - t.integer "competition_id" - t.datetime "created_at", :null => false - t.datetime "updated_at", :null => false - end - - create_table "join_in_contests", :force => true do |t| - t.integer "user_id" - t.integer "bid_id" - t.datetime "created_at", :null => false - t.datetime "updated_at", :null => false - end - - create_table "journal_details", :force => true do |t| - t.integer "journal_id", :default => 0, :null => false - t.string "property", :limit => 30, :default => "", :null => false - t.string "prop_key", :limit => 30, :default => "", :null => false - t.text "old_value" - t.text "value" - end - - add_index "journal_details", ["journal_id"], :name => "journal_details_journal_id" - - create_table "journal_replies", :id => false, :force => true do |t| - t.integer "journal_id" - t.integer "user_id" - t.integer "reply_id" - end - - add_index "journal_replies", ["journal_id"], :name => "index_journal_replies_on_journal_id" - add_index "journal_replies", ["reply_id"], :name => "index_journal_replies_on_reply_id" - add_index "journal_replies", ["user_id"], :name => "index_journal_replies_on_user_id" - - create_table "journals", :force => true do |t| - t.integer "journalized_id", :default => 0, :null => false - t.string "journalized_type", :limit => 30, :default => "", :null => false - t.integer "user_id", :default => 0, :null => false - t.text "notes" - t.datetime "created_on", :null => false - t.boolean "private_notes", :default => false, :null => false - end - - add_index "journals", ["created_on"], :name => "index_journals_on_created_on" - add_index "journals", ["journalized_id", "journalized_type"], :name => "journals_journalized_id" - add_index "journals", ["journalized_id"], :name => "index_journals_on_journalized_id" - add_index "journals", ["user_id"], :name => "index_journals_on_user_id" - - create_table "journals_for_messages", :force => true do |t| - t.integer "jour_id" - t.string "jour_type" - t.integer "user_id" - t.text "notes" - t.integer "status" - t.integer "reply_id" - t.datetime "created_on", :null => false - t.datetime "updated_on", :null => false - t.string "m_parent_id" - t.boolean "is_readed" - t.integer "m_reply_count" - t.integer "m_reply_id" - t.integer "is_comprehensive_evaluation" - end - - create_table "member_roles", :force => true do |t| - t.integer "member_id", :null => false - t.integer "role_id", :null => false - t.integer "inherited_from" - end - - add_index "member_roles", ["member_id"], :name => "index_member_roles_on_member_id" - add_index "member_roles", ["role_id"], :name => "index_member_roles_on_role_id" - - create_table "members", :force => true do |t| - t.integer "user_id", :default => 0, :null => false - t.integer "project_id", :default => 0 - t.datetime "created_on" - t.boolean "mail_notification", :default => false, :null => false - t.integer "course_id", :default => -1 - t.integer "course_group_id", :default => 0 - end - - add_index "members", ["project_id"], :name => "index_members_on_project_id" - add_index "members", ["user_id", "project_id", "course_id"], :name => "index_members_on_user_id_and_project_id", :unique => true - add_index "members", ["user_id"], :name => "index_members_on_user_id" - - create_table "memos", :force => true do |t| - t.integer "forum_id", :null => false - t.integer "parent_id" - t.string "subject", :null => false - t.text "content", :null => false - t.integer "author_id", :null => false - t.integer "replies_count", :default => 0 - t.integer "last_reply_id" - t.boolean "lock", :default => false - t.boolean "sticky", :default => false - t.datetime "created_at", :null => false - t.datetime "updated_at", :null => false - t.integer "viewed_count", :default => 0 - end - - create_table "messages", :force => true do |t| - t.integer "board_id", :null => false - t.integer "parent_id" - t.string "subject", :default => "", :null => false - t.text "content" - t.integer "author_id" - t.integer "replies_count", :default => 0, :null => false - t.integer "last_reply_id" - t.datetime "created_on", :null => false - t.datetime "updated_on", :null => false - t.boolean "locked", :default => false - t.integer "sticky", :default => 0 - end - - add_index "messages", ["author_id"], :name => "index_messages_on_author_id" - add_index "messages", ["board_id"], :name => "messages_board_id" - add_index "messages", ["created_on"], :name => "index_messages_on_created_on" - add_index "messages", ["last_reply_id"], :name => "index_messages_on_last_reply_id" - add_index "messages", ["parent_id"], :name => "messages_parent_id" - - create_table "news", :force => true do |t| - t.integer "project_id" - t.string "title", :limit => 60, :default => "", :null => false - t.string "summary", :default => "" - t.text "description" - t.integer "author_id", :default => 0, :null => false - t.datetime "created_on" - t.integer "comments_count", :default => 0, :null => false - t.integer "course_id" - end - - add_index "news", ["author_id"], :name => "index_news_on_author_id" - add_index "news", ["created_on"], :name => "index_news_on_created_on" - add_index "news", ["project_id"], :name => "news_project_id" - - create_table "no_uses", :force => true do |t| - t.integer "user_id", :null => false - t.string "no_use_type" - t.integer "no_use_id" - t.datetime "created_at", :null => false - t.datetime "updated_at", :null => false - end - - create_table "notificationcomments", :force => true do |t| - t.string "notificationcommented_type" - t.integer "notificationcommented_id" - t.integer "author_id" - t.text "notificationcomments" - t.datetime "created_at", :null => false - t.datetime "updated_at", :null => false - end - - create_table "open_id_authentication_associations", :force => true do |t| - t.integer "issued" - t.integer "lifetime" - t.string "handle" - t.string "assoc_type" - t.binary "server_url" - t.binary "secret" - end - - create_table "open_id_authentication_nonces", :force => true do |t| - t.integer "timestamp", :null => false - t.string "server_url" - t.string "salt", :null => false - end - - create_table "open_source_projects", :force => true do |t| - t.string "name" - t.text "description" - t.integer "commit_count", :default => 0 - t.integer "code_line", :default => 0 - t.integer "users_count", :default => 0 - t.date "last_commit_time" - t.string "url" - t.date "date_collected" - t.datetime "created_at", :null => false - t.datetime "updated_at", :null => false - end - - create_table "option_numbers", :force => true do |t| - t.integer "user_id" - t.integer "memo" - t.integer "messages_for_issues" - t.integer "issues_status" - t.integer "replay_for_message" - t.integer "replay_for_memo" - t.integer "follow" - t.integer "tread" - t.integer "praise_by_one" - t.integer "praise_by_two" - t.integer "praise_by_three" - t.integer "tread_by_one" - t.integer "tread_by_two" - t.integer "tread_by_three" - t.integer "changeset" - t.integer "document" - t.integer "attachment" - t.integer "issue_done_ratio" - t.integer "post_issue" - t.integer "score_type" - t.integer "total_score" - t.datetime "created_at", :null => false - t.datetime "updated_at", :null => false - t.integer "project_id" - end - - create_table "praise_tread_caches", :force => true do |t| - t.integer "object_id", :null => false - t.string "object_type" - t.integer "praise_num" - t.integer "tread_num" - t.datetime "created_at", :null => false - t.datetime "updated_at", :null => false - end - - create_table "praise_treads", :force => true do |t| - t.integer "user_id", :null => false - t.integer "praise_tread_object_id" - t.string "praise_tread_object_type" - t.integer "praise_or_tread" - t.datetime "created_at", :null => false - t.datetime "updated_at", :null => false - end - - create_table "project_infos", :force => true do |t| - t.integer "project_id" - t.integer "user_id" - t.datetime "created_at", :null => false - t.datetime "updated_at", :null => false - end - - create_table "project_scores", :force => true do |t| - t.string "project_id" - t.integer "score" - t.datetime "created_at", :null => false - t.datetime "updated_at", :null => false - t.integer "issue_num", :default => 0 - t.integer "issue_journal_num", :default => 0 - t.integer "news_num", :default => 0 - t.integer "documents_num", :default => 0 - t.integer "changeset_num", :default => 0 - t.integer "board_message_num", :default => 0 - end - - create_table "project_statuses", :force => true do |t| - t.integer "changesets_count" - t.integer "watchers_count" - t.integer "project_id" - t.integer "project_type" - t.float "grade", :default => 0.0 - t.integer "course_ac_para", :default => 0 - end - - add_index "project_statuses", ["grade"], :name => "index_project_statuses_on_grade" - - create_table "projecting_softapplictions", :force => true do |t| - t.integer "user_id" - t.integer "softapplication_id" - t.integer "project_id" - t.datetime "created_at", :null => false - t.datetime "updated_at", :null => false - end - - create_table "projects", :force => true do |t| - t.string "name", :default => "", :null => false - t.text "description" - t.string "homepage", :default => "" - t.boolean "is_public", :default => true, :null => false - t.integer "parent_id" - t.datetime "created_on" - t.datetime "updated_on" - t.string "identifier" - t.integer "status", :default => 1, :null => false - t.integer "lft" - t.integer "rgt" - t.boolean "inherit_members", :default => false, :null => false - t.integer "project_type" - t.boolean "hidden_repo", :default => false, :null => false - t.integer "attachmenttype", :default => 1 - t.integer "user_id" - t.integer "dts_test", :default => 0 - end - - add_index "projects", ["lft"], :name => "index_projects_on_lft" - add_index "projects", ["rgt"], :name => "index_projects_on_rgt" - - create_table "projects_trackers", :id => false, :force => true do |t| - t.integer "project_id", :default => 0, :null => false - t.integer "tracker_id", :default => 0, :null => false - end - - add_index "projects_trackers", ["project_id", "tracker_id"], :name => "projects_trackers_unique", :unique => true - add_index "projects_trackers", ["project_id"], :name => "projects_trackers_project_id" - - create_table "queries", :force => true do |t| - t.integer "project_id" - t.string "name", :default => "", :null => false - t.text "filters" - t.integer "user_id", :default => 0, :null => false - t.boolean "is_public", :default => false, :null => false - t.text "column_names" - t.text "sort_criteria" - t.string "group_by" - t.string "type" - end - - add_index "queries", ["project_id"], :name => "index_queries_on_project_id" - add_index "queries", ["user_id"], :name => "index_queries_on_user_id" - - create_table "relative_memo_to_open_source_projects", :force => true do |t| - t.integer "osp_id" - t.integer "relative_memo_id" - t.datetime "created_at", :null => false - t.datetime "updated_at", :null => false - end - - create_table "relative_memos", :force => true do |t| - t.integer "osp_id" - t.integer "parent_id" - t.string "subject", :null => false - t.text "content", :limit => 16777215, :null => false - t.integer "author_id" - t.integer "replies_count", :default => 0 - t.integer "last_reply_id" - t.boolean "lock", :default => false - t.boolean "sticky", :default => false - t.boolean "is_quote", :default => false - t.datetime "created_at", :null => false - t.datetime "updated_at", :null => false - t.integer "viewed_count_crawl", :default => 0 - t.integer "viewed_count_local", :default => 0 - t.string "url" - t.string "username" - t.string "userhomeurl" - t.date "date_collected" - t.string "topic_resource" - end - - create_table "repositories", :force => true do |t| - t.integer "project_id", :default => 0, :null => false - t.string "url", :default => "", :null => false - t.string "login", :limit => 60, :default => "" - t.string "password", :default => "" - t.string "root_url", :default => "" - t.string "type" - t.string "path_encoding", :limit => 64 - t.string "log_encoding", :limit => 64 - t.text "extra_info" - t.string "identifier" - t.boolean "is_default", :default => false - end - - add_index "repositories", ["project_id"], :name => "index_repositories_on_project_id" - - create_table "rich_rich_files", :force => true do |t| - t.datetime "created_at", :null => false - t.datetime "updated_at", :null => false - t.string "rich_file_file_name" - t.string "rich_file_content_type" - t.integer "rich_file_file_size" - t.datetime "rich_file_updated_at" - t.string "owner_type" - t.integer "owner_id" - t.text "uri_cache" - t.string "simplified_type", :default => "file" - end - - create_table "roles", :force => true do |t| - t.string "name", :limit => 30, :default => "", :null => false - t.integer "position", :default => 1 - t.boolean "assignable", :default => true - t.integer "builtin", :default => 0, :null => false - t.text "permissions" - t.string "issues_visibility", :limit => 30, :default => "default", :null => false - end - - create_table "schools", :force => true do |t| - t.string "name" - t.string "province" - t.datetime "created_at", :null => false - t.datetime "updated_at", :null => false - t.string "logo_link" - end - - create_table "seems_rateable_cached_ratings", :force => true do |t| - t.integer "cacheable_id", :limit => 8 - t.string "cacheable_type" - t.float "avg", :null => false - t.integer "cnt", :null => false - t.string "dimension" - t.datetime "created_at", :null => false - t.datetime "updated_at", :null => false - end - - create_table "seems_rateable_rates", :force => true do |t| - t.integer "rater_id", :limit => 8 - t.integer "rateable_id" - t.string "rateable_type" - t.float "stars", :null => false - t.string "dimension" - t.datetime "created_at", :null => false - t.datetime "updated_at", :null => false - end - - create_table "settings", :force => true do |t| - t.string "name", :default => "", :null => false - t.text "value" - t.datetime "updated_on" - end - - add_index "settings", ["name"], :name => "index_settings_on_name" - - create_table "shares", :force => true do |t| - t.date "created_on" - t.string "url" - t.string "title" - t.integer "share_type" - t.datetime "created_at", :null => false - t.datetime "updated_at", :null => false - t.integer "project_id" - t.integer "user_id" - t.string "description" - end - - create_table "softapplications", :force => true do |t| - t.string "name" - t.text "description" - t.integer "app_type_id" - t.string "app_type_name" - t.string "android_min_version_available" - t.integer "user_id" - t.datetime "created_at", :null => false - t.datetime "updated_at", :null => false - t.integer "contest_id" - t.integer "softapplication_id" - t.integer "is_public" - t.string "application_developers" - t.string "deposit_project_url" - t.string "deposit_project" - t.integer "project_id" - end - - create_table "students_for_courses", :force => true do |t| - t.integer "student_id" - t.integer "course_id" - t.datetime "created_at", :null => false - t.datetime "updated_at", :null => false - end - - create_table "taggings", :force => true do |t| - t.integer "tag_id" - t.integer "taggable_id" - t.string "taggable_type" - t.integer "tagger_id" - t.string "tagger_type" - t.string "context", :limit => 128 - t.datetime "created_at" - end - - add_index "taggings", ["tag_id"], :name => "index_taggings_on_tag_id" - add_index "taggings", ["taggable_id", "taggable_type", "context"], :name => "index_taggings_on_taggable_id_and_taggable_type_and_context" - add_index "taggings", ["taggable_type"], :name => "index_taggings_on_taggable_type" - - create_table "tags", :force => true do |t| - t.string "name" - end - - create_table "teachers", :force => true do |t| - t.string "tea_name" - t.string "location" - t.integer "couurse_time" - t.integer "course_code" - t.datetime "created_at", :null => false - t.datetime "updated_at", :null => false - t.string "extra" - end - - create_table "time_entries", :force => true do |t| - t.integer "project_id", :null => false - t.integer "user_id", :null => false - t.integer "issue_id" - t.float "hours", :null => false - t.string "comments" - t.integer "activity_id", :null => false - t.date "spent_on", :null => false - t.integer "tyear", :null => false - t.integer "tmonth", :null => false - t.integer "tweek", :null => false - t.datetime "created_on", :null => false - t.datetime "updated_on", :null => false - end - - add_index "time_entries", ["activity_id"], :name => "index_time_entries_on_activity_id" - add_index "time_entries", ["created_on"], :name => "index_time_entries_on_created_on" - add_index "time_entries", ["issue_id"], :name => "time_entries_issue_id" - add_index "time_entries", ["project_id"], :name => "time_entries_project_id" - add_index "time_entries", ["user_id"], :name => "index_time_entries_on_user_id" - - create_table "tokens", :force => true do |t| - t.integer "user_id", :default => 0, :null => false - t.string "action", :limit => 30, :default => "", :null => false - t.string "value", :limit => 40, :default => "", :null => false - t.datetime "created_on", :null => false - end - - add_index "tokens", ["user_id"], :name => "index_tokens_on_user_id" - add_index "tokens", ["value"], :name => "tokens_value", :unique => true - - create_table "trackers", :force => true do |t| - t.string "name", :limit => 30, :default => "", :null => false - t.boolean "is_in_chlog", :default => false, :null => false - t.integer "position", :default => 1 - t.boolean "is_in_roadmap", :default => true, :null => false - t.integer "fields_bits", :default => 0 - end - - create_table "user_extensions", :force => true do |t| - t.integer "user_id", :null => false - t.date "birthday" - t.string "brief_introduction" - t.integer "gender" - t.string "location" - t.string "occupation" - t.integer "work_experience" - t.integer "zip_code" - t.datetime "created_at", :null => false - t.datetime "updated_at", :null => false - t.string "technical_title" - t.integer "identity" - t.string "student_id" - t.string "teacher_realname" - t.string "student_realname" - t.string "location_city" - t.integer "school_id" - end - - create_table "user_grades", :force => true do |t| - t.integer "user_id", :null => false - t.integer "project_id", :null => false - t.float "grade", :default => 0.0 - t.datetime "created_at", :null => false - t.datetime "updated_at", :null => false - end - - add_index "user_grades", ["grade"], :name => "index_user_grades_on_grade" - add_index "user_grades", ["project_id"], :name => "index_user_grades_on_project_id" - add_index "user_grades", ["user_id"], :name => "index_user_grades_on_user_id" - - create_table "user_levels", :force => true do |t| - t.integer "user_id" - t.integer "level" - end - - create_table "user_preferences", :force => true do |t| - t.integer "user_id", :default => 0, :null => false - t.text "others" - t.boolean "hide_mail", :default => false - t.string "time_zone" - end - - add_index "user_preferences", ["user_id"], :name => "index_user_preferences_on_user_id" - - create_table "user_score_details", :force => true do |t| - t.integer "current_user_id" - t.integer "target_user_id" - t.string "score_type" - t.string "score_action" - t.integer "user_id" - t.integer "old_score" - t.integer "new_score" - t.integer "current_user_level" - t.integer "target_user_level" - t.integer "score_changeable_obj_id" - t.string "score_changeable_obj_type" - t.datetime "created_at", :null => false - t.datetime "updated_at", :null => false - end - - create_table "user_scores", :force => true do |t| - t.integer "user_id", :null => false - t.integer "collaboration" - t.integer "influence" - t.integer "skill" - t.integer "active" - t.datetime "created_at", :null => false - t.datetime "updated_at", :null => false - end - - create_table "user_statuses", :force => true do |t| - t.integer "changesets_count" - t.integer "watchers_count" - t.integer "user_id" - t.datetime "created_at", :null => false - t.datetime "updated_at", :null => false - t.float "grade", :default => 0.0 - end - - add_index "user_statuses", ["changesets_count"], :name => "index_user_statuses_on_changesets_count" - add_index "user_statuses", ["grade"], :name => "index_user_statuses_on_grade" - add_index "user_statuses", ["watchers_count"], :name => "index_user_statuses_on_watchers_count" - - create_table "users", :force => true do |t| - t.string "login", :default => "", :null => false - t.string "hashed_password", :limit => 40, :default => "", :null => false - t.string "firstname", :limit => 30, :default => "", :null => false - t.string "lastname", :default => "", :null => false - t.string "mail", :limit => 60, :default => "", :null => false - t.boolean "admin", :default => false, :null => false - t.integer "status", :default => 1, :null => false - t.datetime "last_login_on" - t.string "language", :limit => 5, :default => "" - t.integer "auth_source_id" - t.datetime "created_on" - t.datetime "updated_on" - t.string "type" - t.string "identity_url" - t.string "mail_notification", :default => "", :null => false - t.string "salt", :limit => 64 - end - - add_index "users", ["auth_source_id"], :name => "index_users_on_auth_source_id" - add_index "users", ["id", "type"], :name => "index_users_on_id_and_type" - add_index "users", ["type"], :name => "index_users_on_type" - - create_table "versions", :force => true do |t| - t.integer "project_id", :default => 0, :null => false - t.string "name", :default => "", :null => false - t.string "description", :default => "" - t.date "effective_date" - t.datetime "created_on" - t.datetime "updated_on" - t.string "wiki_page_title" - t.string "status", :default => "open" - t.string "sharing", :default => "none", :null => false - end - - add_index "versions", ["project_id"], :name => "versions_project_id" - add_index "versions", ["sharing"], :name => "index_versions_on_sharing" - - create_table "watchers", :force => true do |t| - t.string "watchable_type", :default => "", :null => false - t.integer "watchable_id", :default => 0, :null => false - t.integer "user_id" - end - - add_index "watchers", ["user_id", "watchable_type"], :name => "watchers_user_id_type" - add_index "watchers", ["user_id"], :name => "index_watchers_on_user_id" - add_index "watchers", ["watchable_id", "watchable_type"], :name => "index_watchers_on_watchable_id_and_watchable_type" - - create_table "web_footer_companies", :force => true do |t| - t.string "name" - t.string "logo_size" - t.string "url" - t.datetime "created_at", :null => false - t.datetime "updated_at", :null => false - end - - create_table "web_footer_oranizers", :force => true do |t| - t.string "name" - t.text "description" - t.datetime "created_at", :null => false - t.datetime "updated_at", :null => false - end - - create_table "wiki_content_versions", :force => true do |t| - t.integer "wiki_content_id", :null => false - t.integer "page_id", :null => false - t.integer "author_id" - t.binary "data", :limit => 2147483647 - t.string "compression", :limit => 6, :default => "" - t.string "comments", :default => "" - t.datetime "updated_on", :null => false - t.integer "version", :null => false - end - - add_index "wiki_content_versions", ["updated_on"], :name => "index_wiki_content_versions_on_updated_on" - add_index "wiki_content_versions", ["wiki_content_id"], :name => "wiki_content_versions_wcid" - - create_table "wiki_contents", :force => true do |t| - t.integer "page_id", :null => false - t.integer "author_id" - t.text "text", :limit => 2147483647 - t.string "comments", :default => "" - t.datetime "updated_on", :null => false - t.integer "version", :null => false - end - - add_index "wiki_contents", ["author_id"], :name => "index_wiki_contents_on_author_id" - add_index "wiki_contents", ["page_id"], :name => "wiki_contents_page_id" - - create_table "wiki_pages", :force => true do |t| - t.integer "wiki_id", :null => false - t.string "title", :null => false - t.datetime "created_on", :null => false - t.boolean "protected", :default => false, :null => false - t.integer "parent_id" - end - - add_index "wiki_pages", ["parent_id"], :name => "index_wiki_pages_on_parent_id" - add_index "wiki_pages", ["wiki_id", "title"], :name => "wiki_pages_wiki_id_title" - add_index "wiki_pages", ["wiki_id"], :name => "index_wiki_pages_on_wiki_id" - - create_table "wiki_redirects", :force => true do |t| - t.integer "wiki_id", :null => false - t.string "title" - t.string "redirects_to" - t.datetime "created_on", :null => false - end - - add_index "wiki_redirects", ["wiki_id", "title"], :name => "wiki_redirects_wiki_id_title" - add_index "wiki_redirects", ["wiki_id"], :name => "index_wiki_redirects_on_wiki_id" - - create_table "wikis", :force => true do |t| - t.integer "project_id", :null => false - t.string "start_page", :null => false - t.integer "status", :default => 1, :null => false - end - - add_index "wikis", ["project_id"], :name => "wikis_project_id" - - create_table "workflows", :force => true do |t| - t.integer "tracker_id", :default => 0, :null => false - t.integer "old_status_id", :default => 0, :null => false - t.integer "new_status_id", :default => 0, :null => false - t.integer "role_id", :default => 0, :null => false - t.boolean "assignee", :default => false, :null => false - t.boolean "author", :default => false, :null => false - t.string "type", :limit => 30 - t.string "field_name", :limit => 30 - t.string "rule", :limit => 30 - end - - add_index "workflows", ["new_status_id"], :name => "index_workflows_on_new_status_id" - add_index "workflows", ["old_status_id"], :name => "index_workflows_on_old_status_id" - add_index "workflows", ["role_id", "tracker_id", "old_status_id"], :name => "wkfs_role_tracker_old_status" - add_index "workflows", ["role_id"], :name => "index_workflows_on_role_id" - - create_table "works_categories", :force => true do |t| - t.string "category" - t.datetime "created_at", :null => false - t.datetime "updated_at", :null => false - end - -end +# encoding: UTF-8 +# This file is auto-generated from the current state of the database. Instead +# of editing this file, please use the migrations feature of Active Record to +# incrementally modify your database, and then regenerate this schema definition. +# +# Note that this schema.rb definition is the authoritative source for your +# database schema. If you need to create the application database on another +# system, you should be using db:schema:load, not running all the migrations +# from scratch. The latter is a flawed and unsustainable approach (the more migrations +# you'll amass, the slower it'll run and the greater likelihood for issues). +# +# It's strongly recommended to check this file into your version control system. + +ActiveRecord::Schema.define(:version => 20141231020031) do + + create_table "activities", :force => true do |t| + t.integer "act_id", :null => false + t.string "act_type", :null => false + t.integer "user_id", :null => false + end + + add_index "activities", ["act_id", "act_type"], :name => "index_activities_on_act_id_and_act_type" + add_index "activities", ["user_id", "act_type"], :name => "index_activities_on_user_id_and_act_type" + add_index "activities", ["user_id"], :name => "index_activities_on_user_id" + + create_table "api_keys", :force => true do |t| + t.string "access_token" + t.datetime "expires_at" + t.integer "user_id" + t.boolean "active", :default => true + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false + end + + add_index "api_keys", ["access_token"], :name => "index_api_keys_on_access_token" + add_index "api_keys", ["user_id"], :name => "index_api_keys_on_user_id" + + create_table "applied_projects", :force => true do |t| + t.integer "project_id", :null => false + t.integer "user_id", :null => false + end + + create_table "apply_project_masters", :force => true do |t| + t.integer "user_id" + t.string "apply_type" + t.integer "apply_id" + t.integer "status" + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false + end + + create_table "attachments", :force => true do |t| + t.integer "container_id" + t.string "container_type", :limit => 30 + t.string "filename", :default => "", :null => false + t.string "disk_filename", :default => "", :null => false + t.integer "filesize", :default => 0, :null => false + t.string "content_type", :default => "" + t.string "digest", :limit => 40, :default => "", :null => false + t.integer "downloads", :default => 0, :null => false + t.integer "author_id", :default => 0, :null => false + t.datetime "created_on" + t.string "description" + t.string "disk_directory" + t.integer "attachtype", :default => 1 + t.integer "is_public", :default => 1 + t.integer "copy_from" + t.integer "quotes" + end + + add_index "attachments", ["author_id"], :name => "index_attachments_on_author_id" + add_index "attachments", ["container_id", "container_type"], :name => "index_attachments_on_container_id_and_container_type" + add_index "attachments", ["created_on"], :name => "index_attachments_on_created_on" + + create_table "attachmentstypes", :force => true do |t| + t.integer "typeId", :null => false + t.string "typeName", :limit => 50 + end + + create_table "auth_sources", :force => true do |t| + t.string "type", :limit => 30, :default => "", :null => false + t.string "name", :limit => 60, :default => "", :null => false + t.string "host", :limit => 60 + t.integer "port" + t.string "account" + t.string "account_password", :default => "" + t.string "base_dn" + t.string "attr_login", :limit => 30 + t.string "attr_firstname", :limit => 30 + t.string "attr_lastname", :limit => 30 + t.string "attr_mail", :limit => 30 + t.boolean "onthefly_register", :default => false, :null => false + t.boolean "tls", :default => false, :null => false + t.string "filter" + t.integer "timeout" + end + + add_index "auth_sources", ["id", "type"], :name => "index_auth_sources_on_id_and_type" + + create_table "biding_projects", :force => true do |t| + t.integer "project_id" + t.integer "bid_id" + t.integer "user_id" + t.string "description" + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false + t.string "reward" + end + + create_table "bids", :force => true do |t| + t.string "name" + t.string "budget", :null => false + t.integer "author_id" + t.date "deadline" + t.text "description" + t.datetime "created_on", :null => false + t.datetime "updated_on", :null => false + t.integer "commit" + t.integer "reward_type" + t.integer "homework_type" + t.integer "parent_id" + t.string "password" + t.integer "is_evaluation" + t.integer "proportion", :default => 60 + t.integer "comment_status", :default => 0 + t.integer "evaluation_num", :default => 3 + t.integer "open_anonymous_evaluation", :default => 1 + end + + create_table "boards", :force => true do |t| + t.integer "project_id", :null => false + t.string "name", :default => "", :null => false + t.string "description" + t.integer "position", :default => 1 + t.integer "topics_count", :default => 0, :null => false + t.integer "messages_count", :default => 0, :null => false + t.integer "last_message_id" + t.integer "parent_id" + t.integer "course_id" + end + + add_index "boards", ["last_message_id"], :name => "index_boards_on_last_message_id" + add_index "boards", ["project_id"], :name => "boards_project_id" + + create_table "bug_to_osps", :force => true do |t| + t.integer "osp_id" + t.integer "relative_memo_id" + t.string "description" + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false + end + + create_table "changes", :force => true do |t| + t.integer "changeset_id", :null => false + t.string "action", :limit => 1, :default => "", :null => false + t.text "path", :null => false + t.text "from_path" + t.string "from_revision" + t.string "revision" + t.string "branch" + end + + add_index "changes", ["changeset_id"], :name => "changesets_changeset_id" + + create_table "changeset_parents", :id => false, :force => true do |t| + t.integer "changeset_id", :null => false + t.integer "parent_id", :null => false + end + + add_index "changeset_parents", ["changeset_id"], :name => "changeset_parents_changeset_ids" + add_index "changeset_parents", ["parent_id"], :name => "changeset_parents_parent_ids" + + create_table "changesets", :force => true do |t| + t.integer "repository_id", :null => false + t.string "revision", :null => false + t.string "committer" + t.datetime "committed_on", :null => false + t.text "comments" + t.date "commit_date" + t.string "scmid" + t.integer "user_id" + end + + add_index "changesets", ["committed_on"], :name => "index_changesets_on_committed_on" + add_index "changesets", ["repository_id", "revision"], :name => "changesets_repos_rev", :unique => true + add_index "changesets", ["repository_id", "scmid"], :name => "changesets_repos_scmid" + add_index "changesets", ["repository_id"], :name => "index_changesets_on_repository_id" + add_index "changesets", ["user_id"], :name => "index_changesets_on_user_id" + + create_table "changesets_issues", :id => false, :force => true do |t| + t.integer "changeset_id", :null => false + t.integer "issue_id", :null => false + end + + add_index "changesets_issues", ["changeset_id", "issue_id"], :name => "changesets_issues_ids", :unique => true + + create_table "code_review_assignments", :force => true do |t| + t.integer "issue_id" + t.integer "change_id" + t.integer "attachment_id" + t.string "file_path" + t.string "rev" + t.string "rev_to" + t.string "action_type" + t.integer "changeset_id" + end + + create_table "code_review_project_settings", :force => true do |t| + t.integer "project_id" + t.integer "tracker_id" + t.datetime "created_at" + t.datetime "updated_at" + t.integer "updated_by" + t.boolean "hide_code_review_tab", :default => false + t.integer "auto_relation", :default => 1 + t.integer "assignment_tracker_id" + t.text "auto_assign" + t.integer "lock_version", :default => 0, :null => false + t.boolean "tracker_in_review_dialog", :default => false + end + + create_table "code_review_user_settings", :force => true do |t| + t.integer "user_id", :default => 0, :null => false + t.integer "mail_notification", :default => 0, :null => false + t.datetime "created_at" + t.datetime "updated_at" + end + + create_table "code_reviews", :force => true do |t| + t.integer "project_id" + t.integer "change_id" + t.datetime "created_at" + t.datetime "updated_at" + t.integer "line" + t.integer "updated_by_id" + t.integer "lock_version", :default => 0, :null => false + t.integer "status_changed_from" + t.integer "status_changed_to" + t.integer "issue_id" + t.string "action_type" + t.string "file_path" + t.string "rev" + t.string "rev_to" + t.integer "attachment_id" + t.integer "file_count", :default => 0, :null => false + t.boolean "diff_all" + end + + create_table "comments", :force => true do |t| + t.string "commented_type", :limit => 30, :default => "", :null => false + t.integer "commented_id", :default => 0, :null => false + t.integer "author_id", :default => 0, :null => false + t.text "comments" + t.datetime "created_on", :null => false + t.datetime "updated_on", :null => false + end + + add_index "comments", ["author_id"], :name => "index_comments_on_author_id" + add_index "comments", ["commented_id", "commented_type"], :name => "index_comments_on_commented_id_and_commented_type" + + create_table "contest_notifications", :force => true do |t| + t.text "title" + t.text "content" + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false + end + + create_table "contesting_projects", :force => true do |t| + t.integer "project_id" + t.string "contest_id" + t.integer "user_id" + t.string "description" + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false + t.string "reward" + end + + create_table "contesting_softapplications", :force => true do |t| + t.integer "softapplication_id" + t.integer "contest_id" + t.integer "user_id" + t.string "description" + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false + t.string "reward" + end + + create_table "contestnotifications", :force => true do |t| + t.integer "contest_id" + t.string "title" + t.string "summary" + t.text "description" + t.integer "author_id" + t.integer "notificationcomments_count" + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false + end + + create_table "contests", :force => true do |t| + t.string "name" + t.string "budget", :default => "" + t.integer "author_id" + t.date "deadline" + t.string "description" + t.integer "commit" + t.string "password" + t.datetime "created_on", :null => false + t.datetime "updated_on", :null => false + end + + create_table "course_attachments", :force => true do |t| + t.string "filename" + t.string "disk_filename" + t.integer "filesize" + t.string "content_type" + t.string "digest" + t.integer "downloads" + t.string "author_id" + t.string "integer" + t.string "description" + t.string "disk_directory" + t.integer "attachtype" + t.integer "is_public" + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false + t.integer "container_id", :default => 0 + end + + create_table "course_groups", :force => true do |t| + t.string "name" + t.integer "course_id" + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false + end + + create_table "course_infos", :force => true do |t| + t.integer "course_id" + t.integer "user_id" + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false + end + + create_table "course_statuses", :force => true do |t| + t.integer "changesets_count" + t.integer "watchers_count" + t.integer "course_id" + t.float "grade", :default => 0.0 + t.integer "course_ac_para", :default => 0 + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false + end + + create_table "courses", :force => true do |t| + t.integer "tea_id" + t.string "name" + t.integer "state" + t.string "code" + t.integer "time" + t.string "extra" + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false + t.string "location" + t.string "term" + t.string "string" + t.string "password" + t.string "setup_time" + t.string "endup_time" + t.string "class_period" + t.integer "school_id" + t.text "description" + t.integer "status", :default => 1 + t.integer "attachmenttype", :default => 2 + t.integer "lft" + t.integer "rgt" + t.integer "is_public", :limit => 1, :default => 1 + t.integer "inherit_members", :limit => 1, :default => 1 + t.integer "open_student", :default => 0 + end + + create_table "custom_fields", :force => true do |t| + t.string "type", :limit => 30, :default => "", :null => false + t.string "name", :limit => 30, :default => "", :null => false + t.string "field_format", :limit => 30, :default => "", :null => false + t.text "possible_values" + t.string "regexp", :default => "" + t.integer "min_length", :default => 0, :null => false + t.integer "max_length", :default => 0, :null => false + t.boolean "is_required", :default => false, :null => false + t.boolean "is_for_all", :default => false, :null => false + t.boolean "is_filter", :default => false, :null => false + t.integer "position", :default => 1 + t.boolean "searchable", :default => false + t.text "default_value" + t.boolean "editable", :default => true + t.boolean "visible", :default => true, :null => false + t.boolean "multiple", :default => false + end + + add_index "custom_fields", ["id", "type"], :name => "index_custom_fields_on_id_and_type" + + create_table "custom_fields_projects", :id => false, :force => true do |t| + t.integer "custom_field_id", :default => 0, :null => false + t.integer "project_id", :default => 0, :null => false + end + + add_index "custom_fields_projects", ["custom_field_id", "project_id"], :name => "index_custom_fields_projects_on_custom_field_id_and_project_id", :unique => true + + create_table "custom_fields_trackers", :id => false, :force => true do |t| + t.integer "custom_field_id", :default => 0, :null => false + t.integer "tracker_id", :default => 0, :null => false + end + + add_index "custom_fields_trackers", ["custom_field_id", "tracker_id"], :name => "index_custom_fields_trackers_on_custom_field_id_and_tracker_id", :unique => true + + create_table "custom_values", :force => true do |t| + t.string "customized_type", :limit => 30, :default => "", :null => false + t.integer "customized_id", :default => 0, :null => false + t.integer "custom_field_id", :default => 0, :null => false + t.text "value" + end + + add_index "custom_values", ["custom_field_id"], :name => "index_custom_values_on_custom_field_id" + add_index "custom_values", ["customized_type", "customized_id"], :name => "custom_values_customized" + + create_table "documents", :force => true do |t| + t.integer "project_id", :default => 0, :null => false + t.integer "category_id", :default => 0, :null => false + t.string "title", :limit => 60, :default => "", :null => false + t.text "description" + t.datetime "created_on" + t.integer "user_id", :default => 0 + t.integer "is_public", :default => 1 + end + + add_index "documents", ["category_id"], :name => "index_documents_on_category_id" + add_index "documents", ["created_on"], :name => "index_documents_on_created_on" + add_index "documents", ["project_id"], :name => "documents_project_id" + + create_table "enabled_modules", :force => true do |t| + t.integer "project_id" + t.string "name", :null => false + t.integer "course_id" + end + + add_index "enabled_modules", ["project_id"], :name => "enabled_modules_project_id" + + create_table "enumerations", :force => true do |t| + t.string "name", :limit => 30, :default => "", :null => false + t.integer "position", :default => 1 + t.boolean "is_default", :default => false, :null => false + t.string "type" + t.boolean "active", :default => true, :null => false + t.integer "project_id" + t.integer "parent_id" + t.string "position_name", :limit => 30 + end + + add_index "enumerations", ["id", "type"], :name => "index_enumerations_on_id_and_type" + add_index "enumerations", ["project_id"], :name => "index_enumerations_on_project_id" + + create_table "first_pages", :force => true do |t| + t.string "web_title" + t.string "title" + t.text "description" + t.string "page_type" + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false + t.integer "sort_type" + t.integer "image_width", :default => 107 + t.integer "image_height", :default => 63 + t.integer "show_course", :default => 1 + t.integer "show_contest", :default => 1 + end + + create_table "forums", :force => true do |t| + t.string "name", :null => false + t.text "description" + t.integer "topic_count", :default => 0 + t.integer "memo_count", :default => 0 + t.integer "last_memo_id", :default => 0 + t.integer "creator_id", :null => false + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false + t.integer "sticky" + t.integer "locked" + end + + create_table "groups_users", :id => false, :force => true do |t| + t.integer "group_id", :null => false + t.integer "user_id", :null => false + end + + add_index "groups_users", ["group_id", "user_id"], :name => "groups_users_ids", :unique => true + + create_table "homework_attaches", :force => true do |t| + t.integer "bid_id" + t.integer "user_id" + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false + t.string "reward" + t.string "name" + t.text "description" + t.integer "state" + t.integer "project_id", :default => 0 + t.float "score", :default => 0.0 + t.integer "is_teacher_score", :default => 0 + end + + create_table "homework_evaluations", :force => true do |t| + t.string "user_id" + t.string "homework_attach_id" + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false + end + + create_table "homework_for_courses", :force => true do |t| + t.integer "course_id" + t.integer "bid_id" + end + + create_table "homework_users", :force => true do |t| + t.string "homework_attach_id" + t.string "user_id" + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false + end + + create_table "issue_categories", :force => true do |t| + t.integer "project_id", :default => 0, :null => false + t.string "name", :limit => 30, :default => "", :null => false + t.integer "assigned_to_id" + end + + add_index "issue_categories", ["assigned_to_id"], :name => "index_issue_categories_on_assigned_to_id" + add_index "issue_categories", ["project_id"], :name => "issue_categories_project_id" + + create_table "issue_relations", :force => true do |t| + t.integer "issue_from_id", :null => false + t.integer "issue_to_id", :null => false + t.string "relation_type", :default => "", :null => false + t.integer "delay" + end + + add_index "issue_relations", ["issue_from_id", "issue_to_id"], :name => "index_issue_relations_on_issue_from_id_and_issue_to_id", :unique => true + add_index "issue_relations", ["issue_from_id"], :name => "index_issue_relations_on_issue_from_id" + add_index "issue_relations", ["issue_to_id"], :name => "index_issue_relations_on_issue_to_id" + + create_table "issue_statuses", :force => true do |t| + t.string "name", :limit => 30, :default => "", :null => false + t.boolean "is_closed", :default => false, :null => false + t.boolean "is_default", :default => false, :null => false + t.integer "position", :default => 1 + t.integer "default_done_ratio" + end + + add_index "issue_statuses", ["is_closed"], :name => "index_issue_statuses_on_is_closed" + add_index "issue_statuses", ["is_default"], :name => "index_issue_statuses_on_is_default" + add_index "issue_statuses", ["position"], :name => "index_issue_statuses_on_position" + + create_table "issues", :force => true do |t| + t.integer "tracker_id", :null => false + t.integer "project_id", :null => false + t.string "subject", :default => "", :null => false + t.text "description" + t.date "due_date" + t.integer "category_id" + t.integer "status_id", :null => false + t.integer "assigned_to_id" + t.integer "priority_id", :null => false + t.integer "fixed_version_id" + t.integer "author_id", :null => false + t.integer "lock_version", :default => 0, :null => false + t.datetime "created_on" + t.datetime "updated_on" + t.date "start_date" + t.integer "done_ratio", :default => 0, :null => false + t.float "estimated_hours" + t.integer "parent_id" + t.integer "root_id" + t.integer "lft" + t.integer "rgt" + t.boolean "is_private", :default => false, :null => false + t.datetime "closed_on" + end + + add_index "issues", ["assigned_to_id"], :name => "index_issues_on_assigned_to_id" + add_index "issues", ["author_id"], :name => "index_issues_on_author_id" + add_index "issues", ["category_id"], :name => "index_issues_on_category_id" + add_index "issues", ["created_on"], :name => "index_issues_on_created_on" + add_index "issues", ["fixed_version_id"], :name => "index_issues_on_fixed_version_id" + add_index "issues", ["priority_id"], :name => "index_issues_on_priority_id" + add_index "issues", ["project_id"], :name => "issues_project_id" + add_index "issues", ["root_id", "lft", "rgt"], :name => "index_issues_on_root_id_and_lft_and_rgt" + add_index "issues", ["status_id"], :name => "index_issues_on_status_id" + add_index "issues", ["tracker_id"], :name => "index_issues_on_tracker_id" + + create_table "join_in_competitions", :force => true do |t| + t.integer "user_id" + t.integer "competition_id" + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false + end + + create_table "join_in_contests", :force => true do |t| + t.integer "user_id" + t.integer "bid_id" + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false + end + + create_table "journal_details", :force => true do |t| + t.integer "journal_id", :default => 0, :null => false + t.string "property", :limit => 30, :default => "", :null => false + t.string "prop_key", :limit => 30, :default => "", :null => false + t.text "old_value" + t.text "value" + end + + add_index "journal_details", ["journal_id"], :name => "journal_details_journal_id" + + create_table "journal_replies", :id => false, :force => true do |t| + t.integer "journal_id" + t.integer "user_id" + t.integer "reply_id" + end + + add_index "journal_replies", ["journal_id"], :name => "index_journal_replies_on_journal_id" + add_index "journal_replies", ["reply_id"], :name => "index_journal_replies_on_reply_id" + add_index "journal_replies", ["user_id"], :name => "index_journal_replies_on_user_id" + + create_table "journals", :force => true do |t| + t.integer "journalized_id", :default => 0, :null => false + t.string "journalized_type", :limit => 30, :default => "", :null => false + t.integer "user_id", :default => 0, :null => false + t.text "notes" + t.datetime "created_on", :null => false + t.boolean "private_notes", :default => false, :null => false + end + + add_index "journals", ["created_on"], :name => "index_journals_on_created_on" + add_index "journals", ["journalized_id", "journalized_type"], :name => "journals_journalized_id" + add_index "journals", ["journalized_id"], :name => "index_journals_on_journalized_id" + add_index "journals", ["user_id"], :name => "index_journals_on_user_id" + + create_table "journals_for_messages", :force => true do |t| + t.integer "jour_id" + t.string "jour_type" + t.integer "user_id" + t.text "notes" + t.integer "status" + t.integer "reply_id" + t.datetime "created_on", :null => false + t.datetime "updated_on", :null => false + t.string "m_parent_id" + t.boolean "is_readed" + t.integer "m_reply_count" + t.integer "m_reply_id" + t.integer "is_comprehensive_evaluation" + end + + create_table "member_roles", :force => true do |t| + t.integer "member_id", :null => false + t.integer "role_id", :null => false + t.integer "inherited_from" + end + + add_index "member_roles", ["member_id"], :name => "index_member_roles_on_member_id" + add_index "member_roles", ["role_id"], :name => "index_member_roles_on_role_id" + + create_table "members", :force => true do |t| + t.integer "user_id", :default => 0, :null => false + t.integer "project_id", :default => 0 + t.datetime "created_on" + t.boolean "mail_notification", :default => false, :null => false + t.integer "course_id", :default => -1 + t.integer "course_group_id", :default => 0 + end + + add_index "members", ["project_id"], :name => "index_members_on_project_id" + add_index "members", ["user_id", "project_id", "course_id"], :name => "index_members_on_user_id_and_project_id", :unique => true + add_index "members", ["user_id"], :name => "index_members_on_user_id" + + create_table "memos", :force => true do |t| + t.integer "forum_id", :null => false + t.integer "parent_id" + t.string "subject", :null => false + t.text "content", :null => false + t.integer "author_id", :null => false + t.integer "replies_count", :default => 0 + t.integer "last_reply_id" + t.boolean "lock", :default => false + t.boolean "sticky", :default => false + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false + t.integer "viewed_count", :default => 0 + end + + create_table "messages", :force => true do |t| + t.integer "board_id", :null => false + t.integer "parent_id" + t.string "subject", :default => "", :null => false + t.text "content" + t.integer "author_id" + t.integer "replies_count", :default => 0, :null => false + t.integer "last_reply_id" + t.datetime "created_on", :null => false + t.datetime "updated_on", :null => false + t.boolean "locked", :default => false + t.integer "sticky", :default => 0 + end + + add_index "messages", ["author_id"], :name => "index_messages_on_author_id" + add_index "messages", ["board_id"], :name => "messages_board_id" + add_index "messages", ["created_on"], :name => "index_messages_on_created_on" + add_index "messages", ["last_reply_id"], :name => "index_messages_on_last_reply_id" + add_index "messages", ["parent_id"], :name => "messages_parent_id" + + create_table "news", :force => true do |t| + t.integer "project_id" + t.string "title", :limit => 60, :default => "", :null => false + t.string "summary", :default => "" + t.text "description" + t.integer "author_id", :default => 0, :null => false + t.datetime "created_on" + t.integer "comments_count", :default => 0, :null => false + t.integer "course_id" + end + + add_index "news", ["author_id"], :name => "index_news_on_author_id" + add_index "news", ["created_on"], :name => "index_news_on_created_on" + add_index "news", ["project_id"], :name => "news_project_id" + + create_table "no_uses", :force => true do |t| + t.integer "user_id", :null => false + t.string "no_use_type" + t.integer "no_use_id" + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false + end + + create_table "notificationcomments", :force => true do |t| + t.string "notificationcommented_type" + t.integer "notificationcommented_id" + t.integer "author_id" + t.text "notificationcomments" + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false + end + + create_table "open_id_authentication_associations", :force => true do |t| + t.integer "issued" + t.integer "lifetime" + t.string "handle" + t.string "assoc_type" + t.binary "server_url" + t.binary "secret" + end + + create_table "open_id_authentication_nonces", :force => true do |t| + t.integer "timestamp", :null => false + t.string "server_url" + t.string "salt", :null => false + end + + create_table "open_source_projects", :force => true do |t| + t.string "name" + t.text "description" + t.integer "commit_count", :default => 0 + t.integer "code_line", :default => 0 + t.integer "users_count", :default => 0 + t.date "last_commit_time" + t.string "url" + t.date "date_collected" + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false + end + + create_table "option_numbers", :force => true do |t| + t.integer "user_id" + t.integer "memo" + t.integer "messages_for_issues" + t.integer "issues_status" + t.integer "replay_for_message" + t.integer "replay_for_memo" + t.integer "follow" + t.integer "tread" + t.integer "praise_by_one" + t.integer "praise_by_two" + t.integer "praise_by_three" + t.integer "tread_by_one" + t.integer "tread_by_two" + t.integer "tread_by_three" + t.integer "changeset" + t.integer "document" + t.integer "attachment" + t.integer "issue_done_ratio" + t.integer "post_issue" + t.integer "score_type" + t.integer "total_score" + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false + t.integer "project_id" + end + + create_table "praise_tread_caches", :force => true do |t| + t.integer "object_id", :null => false + t.string "object_type" + t.integer "praise_num" + t.integer "tread_num" + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false + end + + create_table "praise_treads", :force => true do |t| + t.integer "user_id", :null => false + t.integer "praise_tread_object_id" + t.string "praise_tread_object_type" + t.integer "praise_or_tread" + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false + end + + create_table "project_infos", :force => true do |t| + t.integer "project_id" + t.integer "user_id" + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false + end + + create_table "project_scores", :force => true do |t| + t.string "project_id" + t.integer "score" + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false + t.integer "issue_num", :default => 0 + t.integer "issue_journal_num", :default => 0 + t.integer "news_num", :default => 0 + t.integer "documents_num", :default => 0 + t.integer "changeset_num", :default => 0 + t.integer "board_message_num", :default => 0 + end + + create_table "project_statuses", :force => true do |t| + t.integer "changesets_count" + t.integer "watchers_count" + t.integer "project_id" + t.integer "project_type" + t.float "grade", :default => 0.0 + t.integer "course_ac_para", :default => 0 + end + + add_index "project_statuses", ["grade"], :name => "index_project_statuses_on_grade" + + create_table "projecting_softapplictions", :force => true do |t| + t.integer "user_id" + t.integer "softapplication_id" + t.integer "project_id" + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false + end + + create_table "projects", :force => true do |t| + t.string "name", :default => "", :null => false + t.text "description" + t.string "homepage", :default => "" + t.boolean "is_public", :default => true, :null => false + t.integer "parent_id" + t.datetime "created_on" + t.datetime "updated_on" + t.string "identifier" + t.integer "status", :default => 1, :null => false + t.integer "lft" + t.integer "rgt" + t.boolean "inherit_members", :default => false, :null => false + t.integer "project_type" + t.boolean "hidden_repo", :default => false, :null => false + t.integer "attachmenttype", :default => 1 + t.integer "user_id" + t.integer "dts_test", :default => 0 + end + + add_index "projects", ["lft"], :name => "index_projects_on_lft" + add_index "projects", ["rgt"], :name => "index_projects_on_rgt" + + create_table "projects_trackers", :id => false, :force => true do |t| + t.integer "project_id", :default => 0, :null => false + t.integer "tracker_id", :default => 0, :null => false + end + + add_index "projects_trackers", ["project_id", "tracker_id"], :name => "projects_trackers_unique", :unique => true + add_index "projects_trackers", ["project_id"], :name => "projects_trackers_project_id" + + create_table "queries", :force => true do |t| + t.integer "project_id" + t.string "name", :default => "", :null => false + t.text "filters" + t.integer "user_id", :default => 0, :null => false + t.boolean "is_public", :default => false, :null => false + t.text "column_names" + t.text "sort_criteria" + t.string "group_by" + t.string "type" + end + + add_index "queries", ["project_id"], :name => "index_queries_on_project_id" + add_index "queries", ["user_id"], :name => "index_queries_on_user_id" + + create_table "relative_memo_to_open_source_projects", :force => true do |t| + t.integer "osp_id" + t.integer "relative_memo_id" + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false + end + + create_table "relative_memos", :force => true do |t| + t.integer "osp_id" + t.integer "parent_id" + t.string "subject", :null => false + t.text "content", :limit => 16777215, :null => false + t.integer "author_id" + t.integer "replies_count", :default => 0 + t.integer "last_reply_id" + t.boolean "lock", :default => false + t.boolean "sticky", :default => false + t.boolean "is_quote", :default => false + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false + t.integer "viewed_count_crawl", :default => 0 + t.integer "viewed_count_local", :default => 0 + t.string "url" + t.string "username" + t.string "userhomeurl" + t.date "date_collected" + t.string "topic_resource" + end + + create_table "repositories", :force => true do |t| + t.integer "project_id", :default => 0, :null => false + t.string "url", :default => "", :null => false + t.string "login", :limit => 60, :default => "" + t.string "password", :default => "" + t.string "root_url", :default => "" + t.string "type" + t.string "path_encoding", :limit => 64 + t.string "log_encoding", :limit => 64 + t.text "extra_info" + t.string "identifier" + t.boolean "is_default", :default => false + end + + add_index "repositories", ["project_id"], :name => "index_repositories_on_project_id" + + create_table "rich_rich_files", :force => true do |t| + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false + t.string "rich_file_file_name" + t.string "rich_file_content_type" + t.integer "rich_file_file_size" + t.datetime "rich_file_updated_at" + t.string "owner_type" + t.integer "owner_id" + t.text "uri_cache" + t.string "simplified_type", :default => "file" + end + + create_table "roles", :force => true do |t| + t.string "name", :limit => 30, :default => "", :null => false + t.integer "position", :default => 1 + t.boolean "assignable", :default => true + t.integer "builtin", :default => 0, :null => false + t.text "permissions" + t.string "issues_visibility", :limit => 30, :default => "default", :null => false + end + + create_table "schools", :force => true do |t| + t.string "name" + t.string "province" + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false + t.string "logo_link" + end + + create_table "seems_rateable_cached_ratings", :force => true do |t| + t.integer "cacheable_id", :limit => 8 + t.string "cacheable_type" + t.float "avg", :null => false + t.integer "cnt", :null => false + t.string "dimension" + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false + end + + create_table "seems_rateable_rates", :force => true do |t| + t.integer "rater_id", :limit => 8 + t.integer "rateable_id" + t.string "rateable_type" + t.float "stars", :null => false + t.string "dimension" + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false + t.integer "is_teacher_score", :default => 0 + end + + create_table "settings", :force => true do |t| + t.string "name", :default => "", :null => false + t.text "value" + t.datetime "updated_on" + end + + add_index "settings", ["name"], :name => "index_settings_on_name" + + create_table "shares", :force => true do |t| + t.date "created_on" + t.string "url" + t.string "title" + t.integer "share_type" + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false + t.integer "project_id" + t.integer "user_id" + t.string "description" + end + + create_table "softapplications", :force => true do |t| + t.string "name" + t.text "description" + t.integer "app_type_id" + t.string "app_type_name" + t.string "android_min_version_available" + t.integer "user_id" + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false + t.integer "contest_id" + t.integer "softapplication_id" + t.integer "is_public" + t.string "application_developers" + t.string "deposit_project_url" + t.string "deposit_project" + t.integer "project_id" + end + + create_table "students_for_courses", :force => true do |t| + t.integer "student_id" + t.integer "course_id" + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false + end + + create_table "taggings", :force => true do |t| + t.integer "tag_id" + t.integer "taggable_id" + t.string "taggable_type" + t.integer "tagger_id" + t.string "tagger_type" + t.string "context", :limit => 128 + t.datetime "created_at" + end + + add_index "taggings", ["tag_id"], :name => "index_taggings_on_tag_id" + add_index "taggings", ["taggable_id", "taggable_type", "context"], :name => "index_taggings_on_taggable_id_and_taggable_type_and_context" + add_index "taggings", ["taggable_type"], :name => "index_taggings_on_taggable_type" + + create_table "tags", :force => true do |t| + t.string "name" + end + + create_table "teachers", :force => true do |t| + t.string "tea_name" + t.string "location" + t.integer "couurse_time" + t.integer "course_code" + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false + t.string "extra" + end + + create_table "time_entries", :force => true do |t| + t.integer "project_id", :null => false + t.integer "user_id", :null => false + t.integer "issue_id" + t.float "hours", :null => false + t.string "comments" + t.integer "activity_id", :null => false + t.date "spent_on", :null => false + t.integer "tyear", :null => false + t.integer "tmonth", :null => false + t.integer "tweek", :null => false + t.datetime "created_on", :null => false + t.datetime "updated_on", :null => false + end + + add_index "time_entries", ["activity_id"], :name => "index_time_entries_on_activity_id" + add_index "time_entries", ["created_on"], :name => "index_time_entries_on_created_on" + add_index "time_entries", ["issue_id"], :name => "time_entries_issue_id" + add_index "time_entries", ["project_id"], :name => "time_entries_project_id" + add_index "time_entries", ["user_id"], :name => "index_time_entries_on_user_id" + + create_table "tokens", :force => true do |t| + t.integer "user_id", :default => 0, :null => false + t.string "action", :limit => 30, :default => "", :null => false + t.string "value", :limit => 40, :default => "", :null => false + t.datetime "created_on", :null => false + end + + add_index "tokens", ["user_id"], :name => "index_tokens_on_user_id" + add_index "tokens", ["value"], :name => "tokens_value", :unique => true + + create_table "trackers", :force => true do |t| + t.string "name", :limit => 30, :default => "", :null => false + t.boolean "is_in_chlog", :default => false, :null => false + t.integer "position", :default => 1 + t.boolean "is_in_roadmap", :default => true, :null => false + t.integer "fields_bits", :default => 0 + end + + create_table "user_extensions", :force => true do |t| + t.integer "user_id", :null => false + t.date "birthday" + t.string "brief_introduction" + t.integer "gender" + t.string "location" + t.string "occupation" + t.integer "work_experience" + t.integer "zip_code" + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false + t.string "technical_title" + t.integer "identity" + t.string "student_id" + t.string "teacher_realname" + t.string "student_realname" + t.string "location_city" + t.integer "school_id" + end + + create_table "user_grades", :force => true do |t| + t.integer "user_id", :null => false + t.integer "project_id", :null => false + t.float "grade", :default => 0.0 + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false + end + + add_index "user_grades", ["grade"], :name => "index_user_grades_on_grade" + add_index "user_grades", ["project_id"], :name => "index_user_grades_on_project_id" + add_index "user_grades", ["user_id"], :name => "index_user_grades_on_user_id" + + create_table "user_levels", :force => true do |t| + t.integer "user_id" + t.integer "level" + end + + create_table "user_preferences", :force => true do |t| + t.integer "user_id", :default => 0, :null => false + t.text "others" + t.boolean "hide_mail", :default => false + t.string "time_zone" + end + + add_index "user_preferences", ["user_id"], :name => "index_user_preferences_on_user_id" + + create_table "user_score_details", :force => true do |t| + t.integer "current_user_id" + t.integer "target_user_id" + t.string "score_type" + t.string "score_action" + t.integer "user_id" + t.integer "old_score" + t.integer "new_score" + t.integer "current_user_level" + t.integer "target_user_level" + t.integer "score_changeable_obj_id" + t.string "score_changeable_obj_type" + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false + end + + create_table "user_scores", :force => true do |t| + t.integer "user_id", :null => false + t.integer "collaboration" + t.integer "influence" + t.integer "skill" + t.integer "active" + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false + end + + create_table "user_statuses", :force => true do |t| + t.integer "changesets_count" + t.integer "watchers_count" + t.integer "user_id" + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false + t.float "grade", :default => 0.0 + end + + add_index "user_statuses", ["changesets_count"], :name => "index_user_statuses_on_changesets_count" + add_index "user_statuses", ["grade"], :name => "index_user_statuses_on_grade" + add_index "user_statuses", ["watchers_count"], :name => "index_user_statuses_on_watchers_count" + + create_table "users", :force => true do |t| + t.string "login", :default => "", :null => false + t.string "hashed_password", :limit => 40, :default => "", :null => false + t.string "firstname", :limit => 30, :default => "", :null => false + t.string "lastname", :default => "", :null => false + t.string "mail", :limit => 60, :default => "", :null => false + t.boolean "admin", :default => false, :null => false + t.integer "status", :default => 1, :null => false + t.datetime "last_login_on" + t.string "language", :limit => 5, :default => "" + t.integer "auth_source_id" + t.datetime "created_on" + t.datetime "updated_on" + t.string "type" + t.string "identity_url" + t.string "mail_notification", :default => "", :null => false + t.string "salt", :limit => 64 + end + + add_index "users", ["auth_source_id"], :name => "index_users_on_auth_source_id" + add_index "users", ["id", "type"], :name => "index_users_on_id_and_type" + add_index "users", ["type"], :name => "index_users_on_type" + + create_table "versions", :force => true do |t| + t.integer "project_id", :default => 0, :null => false + t.string "name", :default => "", :null => false + t.string "description", :default => "" + t.date "effective_date" + t.datetime "created_on" + t.datetime "updated_on" + t.string "wiki_page_title" + t.string "status", :default => "open" + t.string "sharing", :default => "none", :null => false + end + + add_index "versions", ["project_id"], :name => "versions_project_id" + add_index "versions", ["sharing"], :name => "index_versions_on_sharing" + + create_table "watchers", :force => true do |t| + t.string "watchable_type", :default => "", :null => false + t.integer "watchable_id", :default => 0, :null => false + t.integer "user_id" + end + + add_index "watchers", ["user_id", "watchable_type"], :name => "watchers_user_id_type" + add_index "watchers", ["user_id"], :name => "index_watchers_on_user_id" + add_index "watchers", ["watchable_id", "watchable_type"], :name => "index_watchers_on_watchable_id_and_watchable_type" + + create_table "web_footer_companies", :force => true do |t| + t.string "name" + t.string "logo_size" + t.string "url" + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false + end + + create_table "web_footer_oranizers", :force => true do |t| + t.string "name" + t.text "description" + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false + end + + create_table "wiki_content_versions", :force => true do |t| + t.integer "wiki_content_id", :null => false + t.integer "page_id", :null => false + t.integer "author_id" + t.binary "data", :limit => 2147483647 + t.string "compression", :limit => 6, :default => "" + t.string "comments", :default => "" + t.datetime "updated_on", :null => false + t.integer "version", :null => false + end + + add_index "wiki_content_versions", ["updated_on"], :name => "index_wiki_content_versions_on_updated_on" + add_index "wiki_content_versions", ["wiki_content_id"], :name => "wiki_content_versions_wcid" + + create_table "wiki_contents", :force => true do |t| + t.integer "page_id", :null => false + t.integer "author_id" + t.text "text", :limit => 2147483647 + t.string "comments", :default => "" + t.datetime "updated_on", :null => false + t.integer "version", :null => false + end + + add_index "wiki_contents", ["author_id"], :name => "index_wiki_contents_on_author_id" + add_index "wiki_contents", ["page_id"], :name => "wiki_contents_page_id" + + create_table "wiki_pages", :force => true do |t| + t.integer "wiki_id", :null => false + t.string "title", :null => false + t.datetime "created_on", :null => false + t.boolean "protected", :default => false, :null => false + t.integer "parent_id" + end + + add_index "wiki_pages", ["parent_id"], :name => "index_wiki_pages_on_parent_id" + add_index "wiki_pages", ["wiki_id", "title"], :name => "wiki_pages_wiki_id_title" + add_index "wiki_pages", ["wiki_id"], :name => "index_wiki_pages_on_wiki_id" + + create_table "wiki_redirects", :force => true do |t| + t.integer "wiki_id", :null => false + t.string "title" + t.string "redirects_to" + t.datetime "created_on", :null => false + end + + add_index "wiki_redirects", ["wiki_id", "title"], :name => "wiki_redirects_wiki_id_title" + add_index "wiki_redirects", ["wiki_id"], :name => "index_wiki_redirects_on_wiki_id" + + create_table "wikis", :force => true do |t| + t.integer "project_id", :null => false + t.string "start_page", :null => false + t.integer "status", :default => 1, :null => false + end + + add_index "wikis", ["project_id"], :name => "wikis_project_id" + + create_table "workflows", :force => true do |t| + t.integer "tracker_id", :default => 0, :null => false + t.integer "old_status_id", :default => 0, :null => false + t.integer "new_status_id", :default => 0, :null => false + t.integer "role_id", :default => 0, :null => false + t.boolean "assignee", :default => false, :null => false + t.boolean "author", :default => false, :null => false + t.string "type", :limit => 30 + t.string "field_name", :limit => 30 + t.string "rule", :limit => 30 + end + + add_index "workflows", ["new_status_id"], :name => "index_workflows_on_new_status_id" + add_index "workflows", ["old_status_id"], :name => "index_workflows_on_old_status_id" + add_index "workflows", ["role_id", "tracker_id", "old_status_id"], :name => "wkfs_role_tracker_old_status" + add_index "workflows", ["role_id"], :name => "index_workflows_on_role_id" + + create_table "works_categories", :force => true do |t| + t.string "category" + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false + end + +end From f55d8fe3033bad20c4ed11804e4b4ae3b89f450f Mon Sep 17 00:00:00 2001 From: z9hang Date: Mon, 5 Jan 2015 16:58:11 +0800 Subject: [PATCH 59/83] =?UTF-8?q?1=E3=80=81=E4=BF=AE=E6=AD=A3=E6=96=B0?= =?UTF-8?q?=E5=BB=BA=E8=AF=BE=E7=A8=8B=E6=8E=A5=E5=8F=A3=E6=97=A0=E6=95=88?= =?UTF-8?q?=E9=97=AE=E9=A2=98=E3=80=822=E3=80=81=E4=BF=AE=E6=AD=A3?= =?UTF-8?q?=E6=96=B0=E5=BB=BA=E8=AF=BE=E7=A8=8B=E6=8E=A5=E5=8F=A3=E8=BF=94?= =?UTF-8?q?=E5=9B=9E=E7=9A=84=E6=95=B0=E6=8D=AE=E4=B8=AD=E8=AF=BE=E7=A8=8B?= =?UTF-8?q?=E5=90=8D=E7=A7=B0=E9=94=99=E8=AF=AF=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/models/course.rb | 4 ++-- app/services/courses_service.rb | 13 +++++++------ 2 files changed, 9 insertions(+), 8 deletions(-) diff --git a/app/models/course.rb b/app/models/course.rb index ef42d91e8..30bbaeba3 100644 --- a/app/models/course.rb +++ b/app/models/course.rb @@ -207,8 +207,8 @@ class Course < ActiveRecord::Base # 创建课程讨论区 def create_board_sync @board = self.boards.build - self.name=" #{l(:label_borad_course) }" - @board.name = self.name + #self.name=" #{l(:label_borad_course) }" + @board.name = " #{l(:label_borad_course) }"#self.name @board.description = self.name.to_s @board.project_id = -1 if @board.save diff --git a/app/services/courses_service.rb b/app/services/courses_service.rb index d1b5e8be5..3f025c892 100644 --- a/app/services/courses_service.rb +++ b/app/services/courses_service.rb @@ -122,16 +122,17 @@ class CoursesService #params[:setup_time]:暂不传(貌似已经没用了) #params[:endup_time]: 暂不传(貌似已经没用了) #params[:class_period]:学时总数 - def create_course params,current_user + def create_course(params,current_user) if current_user.user_extensions.identity @course = Course.new @course.extra = 'course' + DateTime.parse(Time.now.to_s).strftime('%Y-%m-%d_%H-%M-%S').to_s - @course.safe_attributes = params[:course],current_user - @course.tea_id = User.current.id + @course.send(:safe_attributes=, params[:course], current_user) + #@course.safe_attributes(current_user,params[:course]) + @course.tea_id = current_user.id @course.term = params[:term] @course.time = params[:time] #@course.school_id = params[:occupation] - @course.school_id = User.current.user_extensions.school_id + @course.school_id = current_user.user_extensions.school_id @course.setup_time = params[:setup_time] @course.endup_time = params[:endup_time] @course.class_period = params[:class_period] @@ -143,9 +144,9 @@ class CoursesService if @course.save #unless User.current.admin? r = Role.givable.find_by_id(Setting.new_project_user_role_id.to_i) || Role.givable.first - m = Member.new(:user => User.current, :roles => [r]) + m = Member.new(:user => current_user, :roles => [r]) m.project_id = -1 - course = CourseInfos.new(:user_id => User.current.id, :course_id => @course.id) + course = CourseInfos.new(:user_id => current_user.id, :course_id => @course.id) #user_grades = UserGrade.create(:user_id => User.current.id, :course_id => @course.id) if params[:course][:is_public] == '1' course_status = CourseStatus.create(:course_id => @course.id, :watchers_count => 0, :changesets_count => 0, :grade => 0, :course_type => @course_tag) From b1125e7d7e6d347adf47813b7f51de2a2465961d Mon Sep 17 00:00:00 2001 From: guange <8863824@gmail.com> Date: Mon, 5 Jan 2015 17:45:47 +0800 Subject: [PATCH 60/83] =?UTF-8?q?=E7=BC=96=E8=BE=91=E8=AF=BE=E7=A8=8B?= =?UTF-8?q?=E6=94=B9=E4=B8=BAput?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/api/mobile/apis/courses.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/api/mobile/apis/courses.rb b/app/api/mobile/apis/courses.rb index 2e514b6e9..3b2f4dd4c 100644 --- a/app/api/mobile/apis/courses.rb +++ b/app/api/mobile/apis/courses.rb @@ -69,7 +69,7 @@ module Mobile requires :time, type: String, desc: '年份' requires :class_period, type: String, desc: '学时总数' end - post do + put do authenticate! cs_params = { course: params.reject{|k,v| [:term,:time,:class_period].include?(k)}, From f252438f853ec5ceae7395c0cbe9be810d35de81 Mon Sep 17 00:00:00 2001 From: z9hang Date: Mon, 5 Jan 2015 17:47:04 +0800 Subject: [PATCH 61/83] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E7=BC=96=E8=BE=91?= =?UTF-8?q?=E8=AF=BE=E7=A8=8B=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/api/mobile/apis/courses.rb | 5 +++-- app/controllers/courses_controller.rb | 2 +- app/services/courses_service.rb | 5 +++-- 3 files changed, 7 insertions(+), 5 deletions(-) diff --git a/app/api/mobile/apis/courses.rb b/app/api/mobile/apis/courses.rb index 2e514b6e9..c36abbd8d 100644 --- a/app/api/mobile/apis/courses.rb +++ b/app/api/mobile/apis/courses.rb @@ -65,12 +65,13 @@ module Mobile requires :is_public, type: Integer, desc: '是否公开 1公开 0私有' requires :open_student, type: Integer, desc: '是否公开学生列表1公开,0不公开,不公开时非课程成员无法看到学生列表' requires :course_type, type:Integer, desc: '暂时传1' - requires :term, type: String, desc: '学期(秋秀学期或春秀学期)' + requires :term, type: String, desc: '学期(秋季学期或春季学期)' requires :time, type: String, desc: '年份' requires :class_period, type: String, desc: '学时总数' end post do authenticate! + cs = CoursesService.new cs_params = { course: params.reject{|k,v| [:term,:time,:class_period].include?(k)}, term: params[:term], @@ -79,7 +80,7 @@ module Mobile } course = ::Course.find(params[:course_id]) cs.edit_course_authorize(current_user,course) - course = cs.edit_course(cs_params, course) + course = cs.edit_course(cs_params, course,current_user) present :data, course, with: Mobile::Entities::Course present :status, 0 end diff --git a/app/controllers/courses_controller.rb b/app/controllers/courses_controller.rb index 985c33aab..19cca8e70 100644 --- a/app/controllers/courses_controller.rb +++ b/app/controllers/courses_controller.rb @@ -95,7 +95,7 @@ class CoursesController < ApplicationController #更新课程信息 def update cs = CoursesService.new - @course = cs.edit_course params,@course + @course = cs.edit_course params,@course,User.current if @course.errors.full_messages.count <= 0 respond_to do |format| format.html { diff --git a/app/services/courses_service.rb b/app/services/courses_service.rb index 3f025c892..b9489be4e 100644 --- a/app/services/courses_service.rb +++ b/app/services/courses_service.rb @@ -175,8 +175,9 @@ class CoursesService #params[:term]:学期(秋季学期或春季学期) #params[:time]: 年份(例:2014) #params[:class_period]:学时总数 - def edit_course params,course - course.safe_attributes = params[:course] + def edit_course(params,course,current_user) + course.send(:safe_attributes=, params[:course], current_user) + #course.safe_attributes = params[:course] course.time = params[:time] course.term = params[:term] course.class_period = params[:class_period] From 59f687bb6a65148923c5e7679db3bef5093aafec Mon Sep 17 00:00:00 2001 From: guange <8863824@gmail.com> Date: Mon, 5 Jan 2015 19:53:25 +0800 Subject: [PATCH 62/83] added homework --- app/api/mobile/api.rb | 1 + 1 file changed, 1 insertion(+) diff --git a/app/api/mobile/api.rb b/app/api/mobile/api.rb index a2286181b..a386a57eb 100644 --- a/app/api/mobile/api.rb +++ b/app/api/mobile/api.rb @@ -30,6 +30,7 @@ module Mobile mount Apis::Courses mount Apis::Watches mount Apis::Upgrade + mount Apis::Homeworks #add_swagger_documentation ({api_version: 'v1', base_path: 'http://u06.shellinfo.cn/trustie/api'}) add_swagger_documentation ({api_version: 'v1', base_path: '/api'}) From ed776fa9b9149e562a77d9aa7d30bc7a74c142a9 Mon Sep 17 00:00:00 2001 From: z9hang Date: Tue, 6 Jan 2015 16:51:44 +0800 Subject: [PATCH 63/83] =?UTF-8?q?1=E3=80=81=E4=BF=AE=E6=AD=A3=E7=94=A8?= =?UTF-8?q?=E6=88=B7=E7=BC=96=E8=BE=91=E6=8E=A5=E5=8F=A3=E6=8A=A5=E9=94=99?= =?UTF-8?q?=E9=97=AE=E9=A2=98=E3=80=822=E3=80=81=E4=BF=AE=E6=AD=A3?= =?UTF-8?q?=E7=94=A8=E6=88=B7=E6=B3=A8=E5=86=8C=EF=BC=8C=E7=BC=96=E8=BE=91?= =?UTF-8?q?=E7=94=A8=E6=88=B7=E6=8E=A5=E5=8F=A3=E8=BF=94=E5=9B=9E=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=E4=B8=8D=E6=AD=A3=E7=A1=AE=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/api/mobile/apis/users.rb | 2 +- app/api/mobile/entities/user.rb | 7 ++++++- app/services/users_service.rb | 12 ++++++++++-- 3 files changed, 17 insertions(+), 4 deletions(-) diff --git a/app/api/mobile/apis/users.rb b/app/api/mobile/apis/users.rb index a566b702d..5d1455a78 100644 --- a/app/api/mobile/apis/users.rb +++ b/app/api/mobile/apis/users.rb @@ -35,7 +35,7 @@ module Mobile authenticate! us = UsersService.new ue = us.edit_user params.merge(id: current_user.id) - present :data, ue.user, with: Mobile::Entities::User + present :data, ue,with: Mobile::Entities::User present :status, 0 end diff --git a/app/api/mobile/entities/user.rb b/app/api/mobile/entities/user.rb index 3c3356b46..2a4c0cdaa 100644 --- a/app/api/mobile/entities/user.rb +++ b/app/api/mobile/entities/user.rb @@ -3,7 +3,12 @@ module Mobile class User < Grape::Entity def self.user_expose(f) expose f do |u,opt| - u.send(f) if u.respond_to?(f) + if u.is_a?(Hash) && u.key?(f) + u[f] + #else + # u.send(f) if u.respond_to?(f) + end + end end diff --git a/app/services/users_service.rb b/app/services/users_service.rb index c58956994..82b88befb 100644 --- a/app/services/users_service.rb +++ b/app/services/users_service.rb @@ -36,7 +36,11 @@ class UsersService ue.user_id = @user.id ue.save end - @user + img_url = url_to_avatar(@user) + gender = @user.user_extensions.gender.nil? ? 0 : @user.user_extensions.gender + work_unit = get_user_work_unit @user + location = get_user_location @user + {:id => @user.id, :img_url => img_url, :nickname => @user.login, :gender => gender, :work_unit => work_unit, :mail => @user.mail, :location => location, :brief_introduction => @user.user_extensions.brief_introduction} end #显示用户 @@ -95,7 +99,11 @@ class UsersService logger.error "[Error] avatar : users_service#edit_user ===> #{e}" end end - [:user_extensions =>@se,:img_url => url_to_avatar(@user),:work_unit => get_user_work_unit(@user),:location => get_user_location(@user)] + img_url = url_to_avatar(@user) + gender = @user.user_extensions.gender.nil? ? 0 : @user.user_extensions.gender + work_unit = get_user_work_unit @user + location = get_user_location @user + {:id => @user.id, :img_url => img_url, :nickname => @user.login, :gender => gender, :work_unit => work_unit, :mail => @user.mail, :location => location, :brief_introduction => @user.user_extensions.brief_introduction} end #获取用户的工作单位 From 1686ed4fbdadfe3c9ec531e8b6f2d93e48ea69eb Mon Sep 17 00:00:00 2001 From: z9hang Date: Tue, 6 Jan 2015 16:59:22 +0800 Subject: [PATCH 64/83] =?UTF-8?q?=E8=A1=A5=E4=B8=8A=E6=98=BE=E7=A4=BA?= =?UTF-8?q?=E7=94=A8=E6=88=B7=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/api/mobile/apis/users.rb | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/app/api/mobile/apis/users.rb b/app/api/mobile/apis/users.rb index 5d1455a78..e15fdb16b 100644 --- a/app/api/mobile/apis/users.rb +++ b/app/api/mobile/apis/users.rb @@ -20,6 +20,16 @@ module Mobile present :status, 0 end + desc "显示用户" + params do + + end + get ':id' do + us = UsersService.new + ue = us.show_user params + present :data, ue,with: Mobile::Entities::User + present :status, 0 + end desc "修改用户" params do From d407f8656d518544f9f3d859990f9278724219e1 Mon Sep 17 00:00:00 2001 From: z9hang Date: Tue, 6 Jan 2015 17:46:16 +0800 Subject: [PATCH 65/83] =?UTF-8?q?1=E3=80=81=E4=BF=AE=E5=A4=8D=E8=AF=BE?= =?UTF-8?q?=E7=A8=8Bimg=5Furl=E4=B8=BA=E7=A9=BA=E9=97=AE=E9=A2=98=E3=80=82?= =?UTF-8?q?2=E3=80=81=E8=A1=A5=E4=B8=8A=E7=94=A8=E6=88=B7=E8=AF=BE?= =?UTF-8?q?=E7=A8=8B=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/api/mobile/apis/users.rb | 12 ++++++++++++ app/api/mobile/entities/course.rb | 3 ++- app/services/users_service.rb | 6 +++++- 3 files changed, 19 insertions(+), 2 deletions(-) diff --git a/app/api/mobile/apis/users.rb b/app/api/mobile/apis/users.rb index e15fdb16b..878748793 100644 --- a/app/api/mobile/apis/users.rb +++ b/app/api/mobile/apis/users.rb @@ -49,6 +49,18 @@ module Mobile present :status, 0 end + desc '获取用户课程' + params do + + end + + get ':id/courses' do + us = UsersService.new + ue = us.user_courses_list params,current_user.nil? ? User.find(2):current_user + present :data, ue,with: Mobile::Entities::Course + present :status, 0 + end + desc '修改密码' params do diff --git a/app/api/mobile/entities/course.rb b/app/api/mobile/entities/course.rb index 0dd0d6aeb..ffae1db1f 100644 --- a/app/api/mobile/entities/course.rb +++ b/app/api/mobile/entities/course.rb @@ -10,7 +10,8 @@ module Mobile c = f[:course] end if field == :img_url - f.img_url if f.respond_to?(:img_url) + f[field] if f.is_a?(Hash) && f.key?(field) + #f.img_url if f.respond_to?(:img_url) else (c[field] if (c.is_a?(Hash) && c.key?(field))) || (c.send(field) if c.respond_to?(field)) end diff --git a/app/services/users_service.rb b/app/services/users_service.rb index 82b88befb..c1074c1c0 100644 --- a/app/services/users_service.rb +++ b/app/services/users_service.rb @@ -146,7 +146,11 @@ class UsersService membership = @user.coursememberships.all(:conditions => Course.visible_condition(User.current)) end membership.sort! {|older, newer| newer.created_on <=> older.created_on } - membership + course_list = [] + membership.each do |mp| + course_list << {:course => mp.course,:img_url => url_to_avatar(mp.course)} + end + course_list end #修改密码 From b711793d7ce468db39f3ebeeca1eafa54f3d7fd3 Mon Sep 17 00:00:00 2001 From: z9hang Date: Wed, 7 Jan 2015 11:20:27 +0800 Subject: [PATCH 66/83] =?UTF-8?q?=E4=BF=AE=E6=AD=A3=E5=8A=A0=E5=85=A5?= =?UTF-8?q?=E8=AF=BE=E7=A8=8B=E6=8E=A5=E5=8F=A3=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/api/mobile/apis/courses.rb | 7 ++++--- app/controllers/courses_controller.rb | 4 +++- app/services/courses_service.rb | 11 ++++++----- 3 files changed, 13 insertions(+), 9 deletions(-) diff --git a/app/api/mobile/apis/courses.rb b/app/api/mobile/apis/courses.rb index 79a5c215e..0ae3bba1d 100644 --- a/app/api/mobile/apis/courses.rb +++ b/app/api/mobile/apis/courses.rb @@ -90,13 +90,14 @@ module Mobile desc "加入课程" params do requires :token, type: String + requires :course_password, type: String end post ":id" do authenticate! cs = CoursesService.new - status = cs.join_course({"object_id" => params[:id]},current_user) - out = {status: status} - message = case status + status = cs.join_course({:object_id => params[:id],:course_password => params[:course_password]},current_user) + out = {status: status[:state]} + message = case status[:state] when 0; "加入成功" when 1; "密码错误" when 2; "课程已过期 请联系课程管理员重启课程。(在配置课程处)" diff --git a/app/controllers/courses_controller.rb b/app/controllers/courses_controller.rb index 19cca8e70..fa76bd0e5 100644 --- a/app/controllers/courses_controller.rb +++ b/app/controllers/courses_controller.rb @@ -27,7 +27,9 @@ class CoursesController < ApplicationController def join if User.current.logged? cs = CoursesService.new - @state,course = cs.join_course params + join = cs.join_course params,User.current + @state = join[:state] + course = join[:course] #course = Course.find_by_id params[:object_id] #if course # if course_endTime_timeout? course diff --git a/app/services/courses_service.rb b/app/services/courses_service.rb index b9489be4e..23c25d302 100644 --- a/app/services/courses_service.rb +++ b/app/services/courses_service.rb @@ -217,20 +217,21 @@ class CoursesService #@state == 4 您加入的课程不存在 #@state == 5 您还未登录 #@state 其他 未知错误,请稍后再试 - def join_course params + def join_course params,current_user course = Course.find_by_id params[:object_id] + @state = 10 if course if course_endTime_timeout? course @state = 2 else - if User.current.member_of_course?(course) + if current_user.member_of_course?(course) @state = 3 else if params[:course_password] == course.password members = [] - members << Member.new(:role_ids => [10], :user_id => User.current.id) + members << Member.new(:role_ids => [10], :user_id => current_user.id) course.members << members - StudentsForCourse.create(:student_id => User.current.id, :course_id => params[:object_id]) + StudentsForCourse.create(:student_id => current_user.id, :course_id => params[:object_id]) @state = 0 else @state = 1 @@ -240,7 +241,7 @@ class CoursesService else @state = 4 end - [@state,course] + {:state => @state,:course => course} end #作业列表 From 303752fc7e0a5f2360d6cdc7863d9d0eb9e331c4 Mon Sep 17 00:00:00 2001 From: z9hang Date: Wed, 7 Jan 2015 11:37:48 +0800 Subject: [PATCH 67/83] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E9=80=80=E5=87=BA?= =?UTF-8?q?=E8=AF=BE=E7=A8=8B=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/api/mobile/apis/courses.rb | 11 +++++++++-- app/services/courses_service.rb | 15 ++++++++++++++- 2 files changed, 23 insertions(+), 3 deletions(-) diff --git a/app/api/mobile/apis/courses.rb b/app/api/mobile/apis/courses.rb index 0ae3bba1d..d3f0e8cef 100644 --- a/app/api/mobile/apis/courses.rb +++ b/app/api/mobile/apis/courses.rb @@ -116,8 +116,15 @@ module Mobile delete ":id" do authenticate! cs = CoursesService.new - cs.exit_course({"object_id" => params[:id]}, current_user) - {status: 0} + status = cs.exit_course({:object_id => params[:id]}, current_user) + out = {status: status} + message = case status + when 0; "退出成功" + when 1; "您不在课程中" + when 2; "您还未登录" + else; "未知错误,请稍后再试" + end + out.merge(message: message) end desc "搜索课程" diff --git a/app/services/courses_service.rb b/app/services/courses_service.rb index 23c25d302..d8dd8299b 100644 --- a/app/services/courses_service.rb +++ b/app/services/courses_service.rb @@ -197,14 +197,27 @@ class CoursesService #退出课程 #object_id: 课程id #user:当前用户 + #@state == 0 退出成功 + #@state == 1 不在课程中 + #@state == 2 您还未登录 + #@state 其他 未知错误,请稍后再试 def exit_course params,user + if user.nil? + @state = 2 + return @state + end @member = Member.where('course_id = ? and user_id = ?', params[:object_id], user.id) + if @member.nil? || @member.count == 0 + @state = 1 + return @state + end @member.first.destroy - joined = StudentsForCourse.where('student_id = ? and course_id = ?', user.id, params[:object_id]) joined.each do |join| join.delete + @state = 0 end + @state end #加入课程 From fdb38c1b87043b11c3a146b7b01eaf71e23c18d5 Mon Sep 17 00:00:00 2001 From: z9hang Date: Wed, 7 Jan 2015 15:24:43 +0800 Subject: [PATCH 68/83] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E8=AF=BE=E7=A8=8B?= =?UTF-8?q?=E6=95=99=E5=B8=88=EF=BC=8C=E8=AF=BE=E7=A8=8B=E5=AD=A6=E7=94=9F?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/api/mobile/apis/courses.rb | 14 +++++++++----- app/services/courses_service.rb | 31 ++++++++++++++++++++++++++++++- 2 files changed, 39 insertions(+), 6 deletions(-) diff --git a/app/api/mobile/apis/courses.rb b/app/api/mobile/apis/courses.rb index d3f0e8cef..4130ea902 100644 --- a/app/api/mobile/apis/courses.rb +++ b/app/api/mobile/apis/courses.rb @@ -140,22 +140,26 @@ module Mobile desc "课程老师列表" params do + requires :token, type: String requires :course_id, type: Integer, desc: "课程id" end get 'teachers' do cs = CoursesService.new - teachers = cs.course_teacher_or_student_list({role: 1}, params[:course_id],current_user) - {status: 0, data: teachers} + teachers = cs.course_teacher_or_student_list({role: '1'}, params[:course_id],current_user) + present :data, teachers, with: Mobile::Entities::User + present :status, 0 end desc "课程学生列表" params do + requires :token, type: String requires :course_id, type: Integer, desc: "课程id" end - get 'teachers' do + get 'students' do cs = CoursesService.new - teachers = cs.course_teacher_or_student_list({role: 2}, params[:course_id],current_user) - {status: 0, data: teachers} + students = cs.course_teacher_or_student_list({role: '2'}, params[:course_id],current_user) + present :data, students, with: Mobile::Entities::User + present :status, 0 end desc "返回单个课程" diff --git a/app/services/courses_service.rb b/app/services/courses_service.rb index d8dd8299b..485126ac4 100644 --- a/app/services/courses_service.rb +++ b/app/services/courses_service.rb @@ -72,7 +72,36 @@ class CoursesService #@subPage_title = '' @members = c.member_principals.includes(:roles, :principal).all.sort end - @members + users = [] + @members.each do |m| + img_url = url_to_avatar(m.user) + gender = m.user.user_extensions.gender.nil? ? 0 : m.user.user_extensions.gender + work_unit = get_user_work_unit m.user + location = get_user_location m.user + users << {:id => m.user.id, :img_url => img_url, :nickname => m.user.login, :gender => gender, :work_unit => work_unit, :mail => m.user.mail, :location => location, :brief_introduction => m.user.user_extensions.brief_introduction} + end + users + end + + #获取用户的工作单位 + def get_user_work_unit user + work_unit = "" + if user.user_extensions.identity == 0 || user.user_extensions.identity == 1 + work_unit = user.user_extensions.school.name unless user.user_extensions.school.nil? + elsif user.user_extensions.identity == 3 + work_unit = user.user_extensions.occupation + elsif user.user_extensions.identity == 2 + work_unit = user.firstname + end + work_unit + end + + #获取用户地区 + def get_user_location user + location = "" + location << (user.user_extensions.location || '') + location << (user.user_extensions.location_city || '') + location end #课程通知列表 From fd1dc80bf0760fa35cc9a8f372ee1f3c74dda8e7 Mon Sep 17 00:00:00 2001 From: z9hang Date: Wed, 7 Jan 2015 16:02:16 +0800 Subject: [PATCH 69/83] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E4=BD=9C=E4=B8=9A?= =?UTF-8?q?=E8=AF=A6=E6=83=85=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/api/mobile/apis/homeworks.rb | 3 ++- app/services/homework_service.rb | 9 +++++---- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/app/api/mobile/apis/homeworks.rb b/app/api/mobile/apis/homeworks.rb index 99acfd87f..0b86fef7b 100644 --- a/app/api/mobile/apis/homeworks.rb +++ b/app/api/mobile/apis/homeworks.rb @@ -16,7 +16,8 @@ module Mobile end route_param :id do get do - get_service.show_homework params + hs = HomeworkService.new + hs.show_homework params end end diff --git a/app/services/homework_service.rb b/app/services/homework_service.rb index 914889c68..c0a669bca 100644 --- a/app/services/homework_service.rb +++ b/app/services/homework_service.rb @@ -13,16 +13,17 @@ class HomeworkService def show_homework params @bid = Bid.find(params[:id]) course = @bid.courses.first - author = @bid.author.firstname + @bid.author.lastname + author = @bid.author.lastname + @bid.author.firstname many_times = course.homeworks.index(@bid) + 1 name = @bid.name - homework_count = @bid.homeworks.count + homework_count = @bid.homeworks.count #已提交的作业数量 + student_questions_count = @bid.commit.nil? ? 0 : @bid.commit description = @bid.description if is_course_teacher(User.current, course) && @bid.open_anonymous_evaluation == 1 && @bid.homeworks.count >= 2 state = bid.comment_status end - {:course => 'course', :atuthor => 'author', :many_times => 'many_times', :name => 'name', :homework_count => 'homework_count', - :descriptiong => 'description', :state => 'state'} + {:course => course, :atuthor => author, :many_times => many_times, :name => name, :homework_count => homework_count,:student_questions_count => student_questions_count, + :descriptiong => description, :state => state} end # 启动作业匿评 From 320c01994bc1fcad359812d446f66418bb0828e6 Mon Sep 17 00:00:00 2001 From: z9hang Date: Sat, 10 Jan 2015 15:50:52 +0800 Subject: [PATCH 70/83] =?UTF-8?q?=E5=8E=BB=E9=99=A4=E9=83=A8=E5=88=86gem?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Gemfile | 13 +-------- Gemfile.lock | 74 ---------------------------------------------------- 2 files changed, 1 insertion(+), 86 deletions(-) diff --git a/Gemfile b/Gemfile index e6de496ea..b6d49c15c 100644 --- a/Gemfile +++ b/Gemfile @@ -22,7 +22,7 @@ gem 'acts-as-taggable-on', '2.4.1' group :development do gem 'grape-swagger' gem 'grape-swagger-ui', git: 'https://github.com/guange2015/grape-swagger-ui.git' - gem 'puma' + #gem 'puma' gem 'better_errors', path: 'lib/better_errors' gem 'rack-mini-profiler', path: 'lib/rack-mini-profiler' end @@ -46,17 +46,6 @@ group :test do end end -group :development, :test do - gem "guard-rails", '~> 0.5.3' - gem 'spork-testunit', '~> 0.0.8' - gem 'guard-spork', '~> 1.5.1' - gem 'guard-test', '~> 1.0.0' - gem 'ruby-prof', '~> 0.15.1' unless RUBY_PLATFORM =~ /w32/ - gem 'pry-rails' - gem 'pry-byebug' - gem 'pry-remote' -end - # Gems used only for assets and not required # in production environments by default. diff --git a/Gemfile.lock b/Gemfile.lock index 4ac0ba2a3..619c1d072 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -64,17 +64,12 @@ GEM ice_nine (~> 0.11.0) thread_safe (~> 0.3, >= 0.3.1) builder (3.0.0) - byebug (2.7.0) - columnize (~> 0.3) - debugger-linecache (~> 1.2) capybara (2.4.1) mime-types (>= 1.16) nokogiri (>= 1.3.3) rack (>= 1.0.0) rack-test (>= 0.5.4) xpath (~> 2.0) - celluloid (0.15.2) - timers (~> 1.1.0) childprocess (0.5.3) ffi (~> 1.0, >= 1.0.11) climate_control (0.0.3) @@ -91,8 +86,6 @@ GEM coffee-script-source execjs coffee-script-source (1.7.1) - columnize (0.9.0) - debugger-linecache (1.2.0) descendants_tracker (0.0.4) thread_safe (~> 0.3, >= 0.3.1) equalizer (0.0.9) @@ -103,7 +96,6 @@ GEM fastercsv (1.5.5) ffi (1.9.3) ffi (1.9.3-x86-mingw32) - formatador (0.2.5) grape (0.9.0) activesupport builder @@ -120,27 +112,11 @@ GEM grape-swagger (0.8.0) grape grape-entity - guard (2.6.1) - formatador (>= 0.2.4) - listen (~> 2.7) - lumberjack (~> 1.0) - pry (>= 0.9.12) - thor (>= 0.18.1) - guard-rails (0.5.3) - guard (~> 2.0) - guard-spork (1.5.1) - childprocess (>= 0.2.3) - guard (>= 1.1) - spork (>= 0.8.4) - guard-test (1.0.0) - guard (>= 1.8) - test-unit (~> 2.2) hashie (3.3.1) hike (1.2.3) htmlentities (4.3.2) i18n (0.6.1) ice_nine (0.11.0) - iconv (1.0.4) journey (1.0.4) jquery-rails (2.0.3) railties (>= 3.1.0, < 5.0) @@ -150,16 +126,10 @@ GEM actionpack (>= 3.0.0) activesupport (>= 3.0.0) libv8 (3.16.14.3) - listen (2.7.9) - celluloid (>= 0.15.2) - rb-fsevent (>= 0.9.3) - rb-inotify (>= 0.9) - lumberjack (1.0.9) mail (2.5.4) mime-types (~> 1.16) treetop (~> 1.4.8) metaclass (0.0.4) - method_source (0.8.2) mime-types (1.25.1) mini_portile (0.6.0) mocha (1.1.0) @@ -179,25 +149,6 @@ GEM cocaine (~> 0.5.3) mime-types polyglot (0.3.5) - pry (0.9.12.6) - coderay (~> 1.0) - method_source (~> 0.8) - slop (~> 3.4) - pry (0.9.12.6-x86-mingw32) - coderay (~> 1.0) - method_source (~> 0.8) - slop (~> 3.4) - win32console (~> 1.3) - pry-byebug (1.3.2) - byebug (~> 2.7) - pry (~> 0.9.12) - pry-rails (0.3.2) - pry (>= 0.9.10) - pry-remote (0.1.8) - pry (~> 0.9) - slop (~> 3.0) - puma (2.10.1) - rack (>= 1.1, < 2.0) rack (1.4.5) rack-accept (0.4.5) rack (>= 0.4) @@ -230,9 +181,6 @@ GEM rdoc (~> 3.4) thor (>= 0.14.6, < 2.0) rake (10.3.2) - rb-fsevent (0.9.4) - rb-inotify (0.9.5) - ffi (>= 0.5.0) rdoc (3.12.2) json (~> 1.4) ref (1.0.5) @@ -246,7 +194,6 @@ GEM sass-rails rmagick (2.13.2) ruby-openid (2.1.8) - ruby-prof (0.15.2) rubyzip (1.1.6) sass (3.3.10) sass-rails (3.2.6) @@ -264,23 +211,17 @@ GEM shoulda-context (1.2.1) shoulda-matchers (2.6.1) activesupport (>= 3.0.0) - slop (3.5.0) - spork (0.9.2) - spork-testunit (0.0.8) - spork (>= 0.6.0) sprockets (2.2.2) hike (~> 1.2) multi_json (~> 1.0) rack (~> 1.0) tilt (~> 1.1, != 1.3.0) - test-unit (2.5.5) therubyracer (0.12.1) libv8 (~> 3.16.14.0) ref thor (0.19.1) thread_safe (0.3.4) tilt (1.4.1) - timers (1.1.0) treetop (1.4.15) polyglot polyglot (>= 0.3.1) @@ -294,11 +235,8 @@ GEM descendants_tracker (~> 0.0, >= 0.0.3) equalizer (~> 0.0, >= 0.0.9) websocket (1.0.7) - win32console (1.3.2-x86-mingw32) xpath (2.0.0) nokogiri (~> 1.3) - zip-zip (0.3) - rubyzip (>= 1.0.0) PLATFORMS ruby @@ -319,12 +257,8 @@ DEPENDENCIES grape-entity grape-swagger grape-swagger-ui! - guard-rails (~> 0.5.3) - guard-spork (~> 1.5.1) - guard-test (~> 1.0.0) htmlentities i18n (~> 0.6.0) - iconv jquery-rails (~> 2.0.2) kaminari mocha (~> 1.1.0) @@ -332,23 +266,15 @@ DEPENDENCIES net-ldap (~> 0.3.1) nokogiri (~> 1.6.3) paperclip (~> 3.5.4) - pry-byebug - pry-rails - pry-remote - puma rack-mini-profiler! rack-openid rails (= 3.2.13) rich (= 1.4.6) rmagick (>= 2.0.0) ruby-openid (~> 2.1.4) - ruby-prof (~> 0.15.1) - rubyzip sass-rails (~> 3.2.3) seems_rateable! selenium-webdriver (~> 2.42.0) shoulda (~> 3.5.0) - spork-testunit (~> 0.0.8) therubyracer uglifier (>= 1.0.3) - zip-zip From da880dae00d25d52e90485eea8e7ce0b5a9116cb Mon Sep 17 00:00:00 2001 From: guange <8863824@gmail.com> Date: Sat, 10 Jan 2015 21:31:16 +0800 Subject: [PATCH 71/83] =?UTF-8?q?=E4=BD=9C=E4=B8=9A=E5=B1=95=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/api/mobile/apis/homeworks.rb | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/app/api/mobile/apis/homeworks.rb b/app/api/mobile/apis/homeworks.rb index 99acfd87f..9eef00094 100644 --- a/app/api/mobile/apis/homeworks.rb +++ b/app/api/mobile/apis/homeworks.rb @@ -16,14 +16,13 @@ module Mobile end route_param :id do get do + p self get_service.show_homework params end end - - - end + end end end From 5c9f1a1e1bceaa5bd18b4b6a8d631199c008ac48 Mon Sep 17 00:00:00 2001 From: hhuai <8863824@gmail.com> Date: Mon, 12 Jan 2015 17:19:18 +0800 Subject: [PATCH 72/83] merge --- app/api/mobile/api.rb | 4 ++-- app/api/mobile/apis/homeworks.rb | 10 +++------- 2 files changed, 5 insertions(+), 9 deletions(-) diff --git a/app/api/mobile/api.rb b/app/api/mobile/api.rb index a386a57eb..554031b9a 100644 --- a/app/api/mobile/api.rb +++ b/app/api/mobile/api.rb @@ -32,8 +32,8 @@ module Mobile mount Apis::Upgrade mount Apis::Homeworks - #add_swagger_documentation ({api_version: 'v1', base_path: 'http://u06.shellinfo.cn/trustie/api'}) - add_swagger_documentation ({api_version: 'v1', base_path: '/api'}) + add_swagger_documentation ({api_version: 'v1', base_path: 'http://u06.shellinfo.cn/trustie/api'}) + # add_swagger_documentation ({api_version: 'v1', base_path: '/api'}) end end diff --git a/app/api/mobile/apis/homeworks.rb b/app/api/mobile/apis/homeworks.rb index 99acfd87f..983cc9373 100644 --- a/app/api/mobile/apis/homeworks.rb +++ b/app/api/mobile/apis/homeworks.rb @@ -4,26 +4,22 @@ module Mobile module Apis class Homeworks < Grape::API - def self.get_servcie + def self.get_service new HomeworkService end resources :homeworks do - desc "作业详情" params do requires :id, type: Integer, desc: "作业ID" end route_param :id do get do - get_service.show_homework params + Homeworks.get_service.show_homework params end end - - - - end + end end end From f0cac221e992921674af9fdb317728d3fbd423d9 Mon Sep 17 00:00:00 2001 From: z9hang Date: Tue, 13 Jan 2015 16:00:17 +0800 Subject: [PATCH 73/83] =?UTF-8?q?=E4=BF=AE=E6=AD=A3=E4=BD=9C=E4=B8=9A?= =?UTF-8?q?=E8=AF=A6=E6=83=85=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/api/mobile/apis/homeworks.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/api/mobile/apis/homeworks.rb b/app/api/mobile/apis/homeworks.rb index 983cc9373..32e7142ee 100644 --- a/app/api/mobile/apis/homeworks.rb +++ b/app/api/mobile/apis/homeworks.rb @@ -5,7 +5,7 @@ module Mobile class Homeworks < Grape::API def self.get_service - new HomeworkService + HomeworkService.new end resources :homeworks do From 0a33a716dee4ac31f1c218b83d67711e9bd01b43 Mon Sep 17 00:00:00 2001 From: z9hang Date: Tue, 20 Jan 2015 15:17:02 +0800 Subject: [PATCH 74/83] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E8=AF=BE=E7=A8=8B?= =?UTF-8?q?=E4=BD=9C=E4=B8=9A=E5=88=97=E8=A1=A8API=E6=8E=A5=E5=8F=A3=20?= =?UTF-8?q?=E4=BF=AE=E6=94=B9=E4=BD=9C=E4=B8=9A=E8=AF=A6=E6=83=85=E5=88=97?= =?UTF-8?q?=E8=A1=A8API=E6=8E=A5=E5=8F=A3=20=E6=B7=BB=E5=8A=A0=E8=AF=BE?= =?UTF-8?q?=E7=A8=8B=E9=80=9A=E7=9F=A5=E5=88=97=E8=A1=A8API=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/api/mobile/api.rb | 4 ++-- app/api/mobile/apis/courses.rb | 26 +++++++++++++++++++-- app/api/mobile/apis/homeworks.rb | 4 +++- app/api/mobile/entities/homework.rb | 34 +++++++++++++++++++++++++++ app/api/mobile/entities/news.rb | 27 ++++++++++++++++++++++ app/services/courses_service.rb | 36 +++++++++++++++++++++++++---- app/services/homework_service.rb | 11 +++++---- 7 files changed, 128 insertions(+), 14 deletions(-) create mode 100644 app/api/mobile/entities/homework.rb create mode 100644 app/api/mobile/entities/news.rb diff --git a/app/api/mobile/api.rb b/app/api/mobile/api.rb index 554031b9a..8226a1020 100644 --- a/app/api/mobile/api.rb +++ b/app/api/mobile/api.rb @@ -32,8 +32,8 @@ module Mobile mount Apis::Upgrade mount Apis::Homeworks - add_swagger_documentation ({api_version: 'v1', base_path: 'http://u06.shellinfo.cn/trustie/api'}) - # add_swagger_documentation ({api_version: 'v1', base_path: '/api'}) + #add_swagger_documentation ({api_version: 'v1', base_path: 'http://u06.shellinfo.cn/trustie/api'}) + add_swagger_documentation ({api_version: 'v1', base_path: '/api'}) end end diff --git a/app/api/mobile/apis/courses.rb b/app/api/mobile/apis/courses.rb index 4130ea902..c6f3fdcd1 100644 --- a/app/api/mobile/apis/courses.rb +++ b/app/api/mobile/apis/courses.rb @@ -16,7 +16,7 @@ module Mobile present :status, 0 end - desc "新建课程[TODO,待测试]" + desc "新建课程" #current_user当前用户对象(不是id) # params[:course][:name]:课程名称 #params[:course][:password]:密码 @@ -55,7 +55,7 @@ module Mobile present :status, 0 end - desc "编辑课程[TODO,待测试]" + desc "编辑课程" params do requires :token, type: String requires :course_id, type: Integer, desc: '课程id' @@ -175,6 +175,28 @@ module Mobile end end + desc "课程作业列表" + params do + requires :token, type: String + end + get "homeworks/:id" do + cs = CoursesService.new + homeworks = cs.homework_list params,current_user + present :data, homeworks, with: Mobile::Entities::Homework + present :status, 0 + end + + desc "课程通知列表" + params do + end + get ":course_id/news" do + cs = CoursesService.new + news = cs.course_news_list params + present :data, news, with: Mobile::Entities::News + present :status, 0 + end + + end end end diff --git a/app/api/mobile/apis/homeworks.rb b/app/api/mobile/apis/homeworks.rb index 32e7142ee..49f3efde6 100644 --- a/app/api/mobile/apis/homeworks.rb +++ b/app/api/mobile/apis/homeworks.rb @@ -15,7 +15,9 @@ module Mobile end route_param :id do get do - Homeworks.get_service.show_homework params + homework = Homeworks.get_service.show_homework params + present :data, homework, with: Mobile::Entities::Homework + present :status, 0 end end end diff --git a/app/api/mobile/entities/homework.rb b/app/api/mobile/entities/homework.rb new file mode 100644 index 000000000..4eb6bbfdf --- /dev/null +++ b/app/api/mobile/entities/homework.rb @@ -0,0 +1,34 @@ +module Mobile + module Entities + class Homework < Grape::Entity + def self.homework_expose(field) + expose field do |f,opt| + if f.is_a?(Hash) && f.key?(field) + f[field] + end + end + end + #作业id + homework_expose :id + #课程名称 + homework_expose :course_name + #课程老师 + homework_expose :course_teacher + #作业次数 + homework_expose :homework_times + #作业名称 + homework_expose :homework_name + #已提交的作业数量 + homework_expose :homework_count + #学生提问数量 + homework_expose :student_questions_count + #作业描述 + homework_expose :description + #作业是否启用匿评功能 0:不启用,1启用 + homework_expose :open_anonymous_evaluation + #作业状态 0:新建,1:已开启匿评,2:已关闭匿评 + #只有作业启用了匿评功能且当前用户是课程老师且已提交的作品数量大于或等于2才能开启匿评 + homework_expose :homework_state + end + end +end \ No newline at end of file diff --git a/app/api/mobile/entities/news.rb b/app/api/mobile/entities/news.rb new file mode 100644 index 000000000..dc60e99b0 --- /dev/null +++ b/app/api/mobile/entities/news.rb @@ -0,0 +1,27 @@ +module Mobile + module Entities + class News < Grape::Entity + def self.news_expose(field) + expose field do |f,opt| + if f.is_a?(Hash) && f.key?(field) + f[field] + end + end + end + + #新闻标题 + news_expose :title + #作者id + news_expose :author_id + #作者名 + news_expose :author_name + #新闻内容 + news_expose :content + #发布时间 + news_expose :time + #评论数量 + news_expose :comments_count + + end + end +end \ No newline at end of file diff --git a/app/services/courses_service.rb b/app/services/courses_service.rb index 485126ac4..1fef2c27f 100644 --- a/app/services/courses_service.rb +++ b/app/services/courses_service.rb @@ -110,6 +110,11 @@ class CoursesService @course = Course.find(params[:course_id]) end scope = @course ? @course.news.course_visible : News.course_visible + news = [] + scope.each do |n| + news << {:title => n.title,:author_name => n.author.name,:author_id => n.author.id, :content => n.description,:time => format_time(n.created_on),:comments_count => n.comments_count} + end + news end #查看新闻权限验证 @@ -290,13 +295,36 @@ class CoursesService #已提交的作业数量获取 bid.homeworks.count #学生提问数量获取 bid.commit.nil? ? 0 : bid.commit def homework_list params,current_user - if @course.is_public != 0 || current_user.member_of_course?(@course) - @offset, @limit = api_offset_and_limit({:limit => 10}) - @bids = @course.homeworks.order('deadline DESC') - @bids = @bids.like(params[:name]) if params[:name].present? + course = Course.find(params[:id]) + if course.is_public != 0 || current_user.member_of_course?(course) + bids = course.homeworks.order('deadline DESC') + bids = bids.like(params[:name]) if params[:name].present? + homeworks = [] + if is_course_teacher(current_user,course) + bids.each do |bid| + homeworks << show_homework_info(course,bid) + end + end + homeworks else raise '403' end end + private + def show_homework_info course,bid + author = bid.author.lastname + bid.author.firstname + many_times = course.homeworks.index(bid) + 1 + name = bid.name + homework_count = bid.homeworks.count #已提交的作业数量 + student_questions_count = bid.commit.nil? ? 0 : bid.commit + description = bid.description + #if is_course_teacher(User.current, course) && @bid.open_anonymous_evaluation == 1 && @bid.homeworks.count >= 2 + state = bid.comment_status + #end + open_anonymous_evaluation = bid.open_anonymous_evaluation + {:course_name => course.name,:id => bid.id, :course_teacher => author, :homework_times => many_times, :homework_name => name, :homework_count => homework_count,:student_questions_count => student_questions_count, + :description => description, :homework_state => state,:open_anonymous_evaluation => open_anonymous_evaluation} + end + end \ No newline at end of file diff --git a/app/services/homework_service.rb b/app/services/homework_service.rb index c0a669bca..acbaf475d 100644 --- a/app/services/homework_service.rb +++ b/app/services/homework_service.rb @@ -19,11 +19,12 @@ class HomeworkService homework_count = @bid.homeworks.count #已提交的作业数量 student_questions_count = @bid.commit.nil? ? 0 : @bid.commit description = @bid.description - if is_course_teacher(User.current, course) && @bid.open_anonymous_evaluation == 1 && @bid.homeworks.count >= 2 - state = bid.comment_status - end - {:course => course, :atuthor => author, :many_times => many_times, :name => name, :homework_count => homework_count,:student_questions_count => student_questions_count, - :descriptiong => description, :state => state} + #if is_course_teacher(User.current, course) && @bid.open_anonymous_evaluation == 1 && @bid.homeworks.count >= 2 + state = @bid.comment_status + #end + open_anonymous_evaluation = @bid.open_anonymous_evaluation + {:course_name => course.name,:id => @bid.id, :course_teacher => author, :homework_times => many_times, :homework_name => name, :homework_count => homework_count,:student_questions_count => student_questions_count, + :description => description, :homework_state => state,:open_anonymous_evaluation => open_anonymous_evaluation} end # 启动作业匿评 From b949f70c64552b4e047317c031815248ebdf4a2d Mon Sep 17 00:00:00 2001 From: z9hang Date: Tue, 20 Jan 2015 17:42:18 +0800 Subject: [PATCH 75/83] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E6=A0=BC=E5=BC=8F=E8=BD=AC=E6=8D=A2=E6=96=B9=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/api/mobile/apis/courses.rb | 14 +++++++++- app/api/mobile/entities/news.rb | 19 +++++++++++-- app/api/mobile/entities/user.rb | 21 ++++++++++++-- app/controllers/news_controller.rb | 4 ++- app/helpers/api_helper.rb | 22 +++++++++++++++ app/services/courses_service.rb | 14 +++++++--- app/services/users_service.rb | 44 ++++++++++-------------------- 7 files changed, 99 insertions(+), 39 deletions(-) create mode 100644 app/helpers/api_helper.rb diff --git a/app/api/mobile/apis/courses.rb b/app/api/mobile/apis/courses.rb index c6f3fdcd1..7c1aa5e7e 100644 --- a/app/api/mobile/apis/courses.rb +++ b/app/api/mobile/apis/courses.rb @@ -169,7 +169,7 @@ module Mobile route_param :id do get do cs = CoursesService.new - course = cs.show_course params,current_user + course = cs.show_course(params,(current_user.nil? ? User.find(2):current_user)) #course = Course.find(params[:id]) {status: 0, data: course} end @@ -196,6 +196,18 @@ module Mobile present :status, 0 end + desc "显示课程通知" + params do + + end + get "news/:id" do + cs = CoursesService.new + cs.show_course_news_authorize(current_user.nil? ? User.find(2):current_user) + news = cs.show_course_news params,current_user.nil? ? User.find(2):current_user + present :data, news, with: Mobile::Entities::News + present :status, 0 + end + end end diff --git a/app/api/mobile/entities/news.rb b/app/api/mobile/entities/news.rb index dc60e99b0..7c77f8c82 100644 --- a/app/api/mobile/entities/news.rb +++ b/app/api/mobile/entities/news.rb @@ -5,22 +5,37 @@ module Mobile expose field do |f,opt| if f.is_a?(Hash) && f.key?(field) f[field] + elsif f.is_a?(Hash) && !f.key?(field) + n = f[:news] + comments = f[:comments] + if n.is_a?(::News) + n.send(field) if n.respond_to?(field) + end + end end end #新闻标题 news_expose :title + + expose :author,using: Mobile::Entities::User do |f, opt| + n = f[:news] + n.author if n.respond_to?(:author) + end #作者id news_expose :author_id #作者名 news_expose :author_name #新闻内容 - news_expose :content + news_expose :description #发布时间 - news_expose :time + news_expose :created_on #评论数量 news_expose :comments_count + #评论 + news_expose :comments + end end diff --git a/app/api/mobile/entities/user.rb b/app/api/mobile/entities/user.rb index 2a4c0cdaa..1f52ae841 100644 --- a/app/api/mobile/entities/user.rb +++ b/app/api/mobile/entities/user.rb @@ -1,12 +1,29 @@ module Mobile module Entities class User < Grape::Entity + include ApplicationHelper + include ApiHelper def self.user_expose(f) expose f do |u,opt| if u.is_a?(Hash) && u.key?(f) u[f] - #else - # u.send(f) if u.respond_to?(f) + elsif u.is_a?(::User) + if u.respond_to?(f) + u.send(f) + else + case f + when :img_url + url_to_avatar(u) + when :gender + u.user_extensions.gender.nil? ? 0 : u.user_extensions.gender + when :work_unit + get_user_work_unit u + when :location + get_user_location u + when :brief_introduction + u.user_extensions.brief_introduction + end + end end end diff --git a/app/controllers/news_controller.rb b/app/controllers/news_controller.rb index 9eeddacf9..2df17d73f 100644 --- a/app/controllers/news_controller.rb +++ b/app/controllers/news_controller.rb @@ -92,7 +92,9 @@ class NewsController < ApplicationController def show cs = CoursesService.new - @news,@comments = cs.show_course_news params,User.current + result = cs.show_course_news params,User.current + @news = result[:news] + @comments = result[:comments] #@comments = @news.comments #@comments.reverse! if User.current.wants_comments_in_reverse_order? #modify by nwb diff --git a/app/helpers/api_helper.rb b/app/helpers/api_helper.rb new file mode 100644 index 000000000..2b85d2be4 --- /dev/null +++ b/app/helpers/api_helper.rb @@ -0,0 +1,22 @@ +module ApiHelper + #获取用户的工作单位 + def get_user_work_unit user + work_unit = "" + if user.user_extensions.identity == 0 || user.user_extensions.identity == 1 + work_unit = user.user_extensions.school.name unless user.user_extensions.school.nil? + elsif user.user_extensions.identity == 3 + work_unit = user.user_extensions.occupation + elsif user.user_extensions.identity == 2 + work_unit = user.firstname + end + work_unit + end + + #获取用户地区 + def get_user_location user + location = "" + location << (user.user_extensions.location || '') + location << (user.user_extensions.location_city || '') + location + end +end \ No newline at end of file diff --git a/app/services/courses_service.rb b/app/services/courses_service.rb index 1fef2c27f..7e3b2a545 100644 --- a/app/services/courses_service.rb +++ b/app/services/courses_service.rb @@ -112,14 +112,14 @@ class CoursesService scope = @course ? @course.news.course_visible : News.course_visible news = [] scope.each do |n| - news << {:title => n.title,:author_name => n.author.name,:author_id => n.author.id, :content => n.description,:time => format_time(n.created_on),:comments_count => n.comments_count} + news << {:title => n.title,:author_name => n.author.name,:author_id => n.author.id, :description => n.description,:created_on => format_time(n.created_on),:comments_count => n.comments_count} end news end #查看新闻权限验证 - def show_course_news_authorize(current_user,course) - unless current_user.allowed_to?({:controller => 'news', :action => 'show'}, course) + def show_course_news_authorize(current_user) + unless current_user.allowed_to?({:controller => 'news', :action => 'show'}, false) raise '403' end end @@ -129,7 +129,13 @@ class CoursesService @news = News.find(params[:id]) @comments = @news.comments @comments.reverse! if current_user.wants_comments_in_reverse_order? - [@news,@comments] + {:news => @news,:comments => @comments} + #comments = [] + #@comments.each do |comment| + # comments << {:author_id => comment.author_id,:author_name => comment.author.name,:commont_content => comment.comments,:time => format_time(comment.created_on)} + #end + #{:title => @news.title,:author_name => @news.author.name,:author_id => @news.author.id, :description => @news.description,:created_on => format_time(@news.created_on), + # :comments_count => @news.comments_count,:comments => comments} end diff --git a/app/services/users_service.rb b/app/services/users_service.rb index cc4d0f725..ab2ee23c5 100644 --- a/app/services/users_service.rb +++ b/app/services/users_service.rb @@ -3,6 +3,7 @@ class UsersService include AccountHelper include AvatarHelper include CoursesHelper + include ApiHelper #将用户注册的功能函数写这里 #参数约定 #成功返回注册后的User实例,失败直接抛异常 @@ -36,11 +37,12 @@ class UsersService ue.user_id = @user.id ue.save end - img_url = url_to_avatar(@user) - gender = @user.user_extensions.gender.nil? ? 0 : @user.user_extensions.gender - work_unit = get_user_work_unit @user - location = get_user_location @user - {:id => @user.id, :img_url => img_url, :nickname => @user.login, :gender => gender, :work_unit => work_unit, :mail => @user.mail, :location => location, :brief_introduction => @user.user_extensions.brief_introduction} + @user + #img_url = url_to_avatar(@user) + #gender = @user.user_extensions.gender.nil? ? 0 : @user.user_extensions.gender + #work_unit = get_user_work_unit @user + #location = get_user_location @user + #{:id => @user.id, :img_url => img_url, :nickname => @user.login, :gender => gender, :work_unit => work_unit, :mail => @user.mail, :location => location, :brief_introduction => @user.user_extensions.brief_introduction} end #显示用户 @@ -99,33 +101,17 @@ class UsersService logger.error "[Error] avatar : users_service#edit_user ===> #{e}" end end - img_url = url_to_avatar(@user) - gender = @user.user_extensions.gender.nil? ? 0 : @user.user_extensions.gender - work_unit = get_user_work_unit @user - location = get_user_location @user - {:id => @user.id, :img_url => img_url, :nickname => @user.login, :gender => gender, :work_unit => work_unit, :mail => @user.mail, :location => location, :brief_introduction => @user.user_extensions.brief_introduction} + #img_url = url_to_avatar(@user) + #gender = @user.user_extensions.gender.nil? ? 0 : @user.user_extensions.gender + #work_unit = get_user_work_unit @user + #location = get_user_location @user + #{:id => @user.id, :img_url => img_url, :nickname => @user.login, :gender => gender, :work_unit => work_unit, :mail => @user.mail, :location => location, :brief_introduction => @user.user_extensions.brief_introduction} + @user end - #获取用户的工作单位 - def get_user_work_unit user - work_unit = "" - if user.user_extensions.identity == 0 || user.user_extensions.identity == 1 - work_unit = user.user_extensions.school.name unless user.user_extensions.school.nil? - elsif user.user_extensions.identity == 3 - work_unit = user.user_extensions.occupation - elsif user.user_extensions.identity == 2 - work_unit = user.firstname - end - work_unit - end - #获取用户地区 - def get_user_location user - location = "" - location << (user.user_extensions.location || '') - location << (user.user_extensions.location_city || '') - location - end + + #关注列表 def user_watcher params From b13f2b2dc82e2206a35b414e3f02511a5e1f9b83 Mon Sep 17 00:00:00 2001 From: z9hang Date: Wed, 21 Jan 2015 11:28:09 +0800 Subject: [PATCH 76/83] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E6=88=91=E7=9A=84?= =?UTF-8?q?=E4=BD=9C=E5=93=81=E5=88=97=E8=A1=A8=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/api/mobile/apis/homeworks.rb | 12 +++++++++- app/api/mobile/apis/users.rb | 2 +- app/api/mobile/entities/course.rb | 3 +++ app/api/mobile/entities/homework.rb | 6 +++++ app/api/mobile/entities/homework_attach.rb | 28 ++++++++++++++++++++++ app/services/homework_service.rb | 25 +++++++++++++++++++ app/services/users_service.rb | 2 +- 7 files changed, 75 insertions(+), 3 deletions(-) create mode 100644 app/api/mobile/entities/homework_attach.rb diff --git a/app/api/mobile/apis/homeworks.rb b/app/api/mobile/apis/homeworks.rb index 49f3efde6..b1e38ad22 100644 --- a/app/api/mobile/apis/homeworks.rb +++ b/app/api/mobile/apis/homeworks.rb @@ -20,8 +20,18 @@ module Mobile present :status, 0 end end - end + desc "我的作品列表" + params do + requires :token, type: String + end + get ':user_id/homework_attachs' do + ue = Homeworks.get_service.my_homework_list params,current_user.nil? ? User.find(2):current_user + present :data, ue,with: Mobile::Entities::Course + present :status, 0 + end + + end end end end diff --git a/app/api/mobile/apis/users.rb b/app/api/mobile/apis/users.rb index 878748793..69260716e 100644 --- a/app/api/mobile/apis/users.rb +++ b/app/api/mobile/apis/users.rb @@ -51,7 +51,7 @@ module Mobile desc '获取用户课程' params do - + optional :token, type: String end get ':id/courses' do diff --git a/app/api/mobile/entities/course.rb b/app/api/mobile/entities/course.rb index ffae1db1f..ec00579ce 100644 --- a/app/api/mobile/entities/course.rb +++ b/app/api/mobile/entities/course.rb @@ -50,6 +50,9 @@ module Mobile c[:course].teacher end end + expose :my_homework,using: Mobile::Entities::HomeworkAttach do |f, opt| + f[:my_homework] if f.is_a?(Hash) && f.key?(:my_homework) + end end end end diff --git a/app/api/mobile/entities/homework.rb b/app/api/mobile/entities/homework.rb index 4eb6bbfdf..ae3637106 100644 --- a/app/api/mobile/entities/homework.rb +++ b/app/api/mobile/entities/homework.rb @@ -5,6 +5,12 @@ module Mobile expose field do |f,opt| if f.is_a?(Hash) && f.key?(field) f[field] + elsif f.is_a?(::Bid) + if f.respond_to?(field) + f.send(field) + else + + end end end end diff --git a/app/api/mobile/entities/homework_attach.rb b/app/api/mobile/entities/homework_attach.rb new file mode 100644 index 000000000..8fa7a1dd1 --- /dev/null +++ b/app/api/mobile/entities/homework_attach.rb @@ -0,0 +1,28 @@ +module Mobile + module Entities + class HomeworkAttach < Grape::Entity + def self.homework_attach_expose(field) + expose field do |f,opt| + if f.is_a?(Hash) && f.key?(field) + f[field] + elsif f.is_a?(::HomeworkAttach) + if f.respond_to?(field) + f.send(field) + else + case field + when :homework_times + f.bid.courses.first.homeworks.index(f.bid) + 1 unless (f.bid.nil? || f.bid.courses.nil? || f.bid.courses.first.nil?) + #course.homeworks.index(@bid) + 1 + end + end + end + end + end + + homework_attach_expose :id + homework_attach_expose :name + homework_attach_expose :homework_times + #homework_attach_expose :user + end + end +end \ No newline at end of file diff --git a/app/services/homework_service.rb b/app/services/homework_service.rb index acbaf475d..871ae9801 100644 --- a/app/services/homework_service.rb +++ b/app/services/homework_service.rb @@ -153,4 +153,29 @@ class HomeworkService reply_time = fulr.created_on end end + + #我的作品列表 + def my_homework_list params,current_user + @user = User.find(params[:user_id]) + if !current_user.admin? && !@user.active? + raise '404' + return + end + if current_user == @user || current_user.admin? + membership = @user.coursememberships.all + else + membership = @user.coursememberships.all(:conditions => Course.visible_condition(current_user)) + end + membership.sort! {|older, newer| newer.created_on <=> older.created_on } + course_list = [] + membership.each do |mp| + my_homeworks = [] + mp.course.homeworks.each do |bid| + hw = bid.homeworks.where("user_id = #{current_user.id}") + my_homeworks << hw[0] unless (hw.nil? || hw[0].nil?) + end + course_list << {:course => mp.course,:img_url => url_to_avatar(mp.course),:my_homework => my_homeworks} + end + course_list + end end \ No newline at end of file diff --git a/app/services/users_service.rb b/app/services/users_service.rb index ab2ee23c5..897171b55 100644 --- a/app/services/users_service.rb +++ b/app/services/users_service.rb @@ -129,7 +129,7 @@ class UsersService if current_user == @user || current_user.admin? membership = @user.coursememberships.all else - membership = @user.coursememberships.all(:conditions => Course.visible_condition(User.current)) + membership = @user.coursememberships.all(:conditions => Course.visible_condition(current_user)) end membership.sort! {|older, newer| newer.created_on <=> older.created_on } course_list = [] From 89e0f98034ac9acca951543600c86507cf6eaaf6 Mon Sep 17 00:00:00 2001 From: z9hang Date: Wed, 21 Jan 2015 15:29:05 +0800 Subject: [PATCH 77/83] =?UTF-8?q?=E5=90=AF=E5=8A=A8=E5=8C=BF=E8=AF=84?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/api/mobile/apis/homeworks.rb | 19 +++++++++++++++++ app/helpers/api_helper.rb | 6 ++++++ app/services/homework_service.rb | 36 +++++++++++++++++++++++++++++++- 3 files changed, 60 insertions(+), 1 deletion(-) diff --git a/app/api/mobile/apis/homeworks.rb b/app/api/mobile/apis/homeworks.rb index b1e38ad22..dd6708b22 100644 --- a/app/api/mobile/apis/homeworks.rb +++ b/app/api/mobile/apis/homeworks.rb @@ -31,6 +31,25 @@ module Mobile present :status, 0 end + desc "启动匿评" + params do + requires :token, type: String + end + post ':id/alert_homework_anonymous_comment' do + statue = Homeworks.get_service.start_anonymous_comment params,current_user.nil? ? User.find(2):current_user + messages = "" + case statue + when 1 + messages = "启动成功" + when 2 + messages = "启动失败,作业总数大于等于2份时才能启动匿评" + when 3 + messages = "已开启匿评,请务重复开启" + end + present :data,messages + present :status, statue + end + end end end diff --git a/app/helpers/api_helper.rb b/app/helpers/api_helper.rb index 2b85d2be4..78f954ab4 100644 --- a/app/helpers/api_helper.rb +++ b/app/helpers/api_helper.rb @@ -19,4 +19,10 @@ module ApiHelper location << (user.user_extensions.location_city || '') location end + + + def get_assigned_homeworks(homeworks, n, index) + homeworks += homeworks + homeworks[index + 1 .. index + n] + end end \ No newline at end of file diff --git a/app/services/homework_service.rb b/app/services/homework_service.rb index 871ae9801..a659b167d 100644 --- a/app/services/homework_service.rb +++ b/app/services/homework_service.rb @@ -4,6 +4,7 @@ class HomeworkService include AttachmentsHelper include ApplicationHelper include WordsHelper + include ApiHelper # 作业详情(老师才显示启动匿评,学生不显示 ) # many_times 第几次(作业) @@ -27,7 +28,7 @@ class HomeworkService :description => description, :homework_state => state,:open_anonymous_evaluation => open_anonymous_evaluation} end - # 启动作业匿评 + # 启动作业匿评前提示信息 def alert_homework_anonymous_comment params @bid = Bid.find params[:id] @course = @bid.courses.first @@ -52,6 +53,39 @@ class HomeworkService @percent = format("%.2f",(@cur_size.to_f / ( @totle_size == 0 ? 1 : @totle_size)) * 100) [@bid,@totle_size,@cur_size,@percent] end + + #启动匿评 + #statue 1:启动成功,2:启动失败,作业总数大于等于2份时才能启动匿评,3:已开启匿评,请务重复开启 + def start_anonymous_comment params,current_user + @bid = Bid.find(params[:id]) + @course = @bid.courses.first + unless is_course_teacher(current_user,@course) || current_user.admin? + @statue = 4 + raise '403' + end + if(@bid.comment_status == 0) + homeworks = @bid.homeworks + if(homeworks && homeworks.size >= 2) + homeworks.each_with_index do |homework, index| + user = homework.user + n = @bid.evaluation_num + n = n < homeworks.size ? n : homeworks.size - 1 + assigned_homeworks = get_assigned_homeworks(homeworks, n, index) + assigned_homeworks.each do |h| + @homework_evaluation = HomeworkEvaluation.new(user_id: user.id, homework_attach_id: h.id) + @homework_evaluation.save + end + end + @bid.update_column('comment_status', 1) + @statue = 1 + else + @statue = 2 + end + else + @statue = 3 + end + @statue + end # 匿评作品详情 # attachs 该作品的所有附件 From b6207c0a476fe0bd5ad6c3e0870de7b9fec1800b Mon Sep 17 00:00:00 2001 From: z9hang Date: Wed, 21 Jan 2015 15:37:59 +0800 Subject: [PATCH 78/83] =?UTF-8?q?=E5=85=B3=E9=97=AD=E5=8C=BF=E8=AF=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/api/mobile/apis/homeworks.rb | 11 ++++++++++- app/services/homework_service.rb | 9 +++++++++ 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/app/api/mobile/apis/homeworks.rb b/app/api/mobile/apis/homeworks.rb index dd6708b22..a7bb544af 100644 --- a/app/api/mobile/apis/homeworks.rb +++ b/app/api/mobile/apis/homeworks.rb @@ -35,7 +35,7 @@ module Mobile params do requires :token, type: String end - post ':id/alert_homework_anonymous_comment' do + post ':id/start_anonymous_comment' do statue = Homeworks.get_service.start_anonymous_comment params,current_user.nil? ? User.find(2):current_user messages = "" case statue @@ -50,6 +50,15 @@ module Mobile present :status, statue end + desc "关闭匿评" + params do + requires :token, type: String + end + post ':id/stop_anonymous_comment' do + Homeworks.get_service.stop_anonymous_comment params,current_user.nil? ? User.find(2):current_user + present :status, 0 + end + end end end diff --git a/app/services/homework_service.rb b/app/services/homework_service.rb index a659b167d..fe4b77404 100644 --- a/app/services/homework_service.rb +++ b/app/services/homework_service.rb @@ -86,6 +86,15 @@ class HomeworkService end @statue end + #关闭匿评 + def stop_anonymous_comment params,current_user + @bid = Bid.find(params[:id]) + @course = @bid.courses.first + unless is_course_teacher(current_user,@course) || current_user.admin? + raise '403' + end + @bid.update_column('comment_status', 2) + end # 匿评作品详情 # attachs 该作品的所有附件 From a4d7e5f93299c188f5d895ada8f77e600052867f Mon Sep 17 00:00:00 2001 From: z9hang Date: Thu, 22 Jan 2015 09:30:29 +0800 Subject: [PATCH 79/83] =?UTF-8?q?=E5=8C=BF=E8=AF=84=E4=BD=9C=E5=93=81?= =?UTF-8?q?=E8=AF=A6=E6=83=85=E6=98=BE=E7=A4=BA=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/api/mobile/apis/homeworks.rb | 11 +++++++++++ app/api/mobile/entities/attachment.rb | 23 ++++++++++++++++++++++ app/api/mobile/entities/homework_attach.rb | 15 ++++++++++++-- app/services/homework_service.rb | 11 ++++++----- 4 files changed, 53 insertions(+), 7 deletions(-) create mode 100644 app/api/mobile/entities/attachment.rb diff --git a/app/api/mobile/apis/homeworks.rb b/app/api/mobile/apis/homeworks.rb index a7bb544af..abdf19390 100644 --- a/app/api/mobile/apis/homeworks.rb +++ b/app/api/mobile/apis/homeworks.rb @@ -59,6 +59,17 @@ module Mobile present :status, 0 end + desc "匿评作品详情" + params do + requires :token, type: String + end + get ':homework_id/anonymous_works_show' do + works = Homeworks.get_service.anonymous_works_show params + present :data, works ,with: Mobile::Entities::HomeworkAttach + present :status, 0 + end + + end end end diff --git a/app/api/mobile/entities/attachment.rb b/app/api/mobile/entities/attachment.rb new file mode 100644 index 000000000..510db89be --- /dev/null +++ b/app/api/mobile/entities/attachment.rb @@ -0,0 +1,23 @@ +module Mobile + module Entities + class Attachment < Grape::Entity + def self.attachment_expose(field) + expose field do |f,opt| + if f.is_a?(Hash) && f.key?(field) + f[field] + elsif f.is_a?(::Attachment) + if f.respond_to?(field) + f.send(field) + else + #case field + # when "" + #end + end + end + end + end + attachment_expose :filename + attachment_expose :description + end + end +end \ No newline at end of file diff --git a/app/api/mobile/entities/homework_attach.rb b/app/api/mobile/entities/homework_attach.rb index 8fa7a1dd1..256dcdf61 100644 --- a/app/api/mobile/entities/homework_attach.rb +++ b/app/api/mobile/entities/homework_attach.rb @@ -1,18 +1,22 @@ module Mobile module Entities class HomeworkAttach < Grape::Entity + include Redmine::I18n def self.homework_attach_expose(field) expose field do |f,opt| if f.is_a?(Hash) && f.key?(field) f[field] elsif f.is_a?(::HomeworkAttach) if f.respond_to?(field) - f.send(field) + if field == :created_at + format_time(f.send(:created_at)) + else + f.send(field) + end else case field when :homework_times f.bid.courses.first.homeworks.index(f.bid) + 1 unless (f.bid.nil? || f.bid.courses.nil? || f.bid.courses.first.nil?) - #course.homeworks.index(@bid) + 1 end end end @@ -22,6 +26,13 @@ module Mobile homework_attach_expose :id homework_attach_expose :name homework_attach_expose :homework_times + homework_attach_expose :description + homework_attach_expose :created_at + expose :attachments,using: Mobile::Entities::Attachment do |f, opt| + if f.respond_to?(:attachments) + f.send(:attachments) + end + end #homework_attach_expose :user end end diff --git a/app/services/homework_service.rb b/app/services/homework_service.rb index fe4b77404..33f74345f 100644 --- a/app/services/homework_service.rb +++ b/app/services/homework_service.rb @@ -105,15 +105,16 @@ class HomeworkService name = @homework.name desc = @homework.description datetime = @homework.created_at + files = [] unless @homework.attachments.empty? attachs = @homework.attachments attachs.each do |attach| - filename = attach.name - filedesc = attach.description unless attachment.description.blank? + filename = attach.filename + filedesc = attach.description unless attach.description.blank? end - end - {:name => 'name', :description => 'desc', :datetime => 'datetime', - :attchs => 'attachs', :filename => 'filename', :filedesc => 'filedesc'} + end + @homework + #{:name => name, :description => desc, :datetime => format_time(datetime)} end #作品打分/留言 From f1693e237b39248b2e668d20d8bc3cd9a79f3fb5 Mon Sep 17 00:00:00 2001 From: z9hang Date: Thu, 22 Jan 2015 17:21:15 +0800 Subject: [PATCH 80/83] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=8C=BF=E8=AF=84?= =?UTF-8?q?=E4=BD=9C=E5=93=81=E8=AF=A6=E6=83=85=E6=8E=A5=E5=8F=A3=EF=BC=8C?= =?UTF-8?q?=E8=BE=93=E5=87=BA=E5=8C=BF=E8=AF=84=E4=BD=9C=E5=93=81=E8=AF=A6?= =?UTF-8?q?=E6=83=85=E7=9A=84=E5=90=8C=E6=97=B6=E8=BF=98=E8=BE=93=E5=87=BA?= =?UTF-8?q?=E5=AF=B9=E8=AF=A5=E4=BD=9C=E5=93=81=E7=9A=84=E8=AF=84=E8=AE=BA?= =?UTF-8?q?=EF=BC=88=E5=8C=85=E6=8B=AC=EF=BC=8C=E6=95=99=E5=B8=88=E8=AF=84?= =?UTF-8?q?=E5=88=86=EF=BC=8C=E5=8C=BF=E8=AF=84=E5=8F=8A=E7=95=99=E8=A8=80?= =?UTF-8?q?=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/api/mobile/apis/homeworks.rb | 3 +- .../mobile/entities/anonymous_works_params.rb | 31 ++++++++++++ app/api/mobile/entities/homework_jours.rb | 23 +++++++++ app/api/mobile/entities/jours.rb | 27 ++++++++++ app/helpers/api_helper.rb | 12 +++++ app/services/homework_service.rb | 49 ++++++++++++++----- 6 files changed, 131 insertions(+), 14 deletions(-) create mode 100644 app/api/mobile/entities/anonymous_works_params.rb create mode 100644 app/api/mobile/entities/homework_jours.rb create mode 100644 app/api/mobile/entities/jours.rb diff --git a/app/api/mobile/apis/homeworks.rb b/app/api/mobile/apis/homeworks.rb index abdf19390..cba295064 100644 --- a/app/api/mobile/apis/homeworks.rb +++ b/app/api/mobile/apis/homeworks.rb @@ -64,8 +64,9 @@ module Mobile requires :token, type: String end get ':homework_id/anonymous_works_show' do - works = Homeworks.get_service.anonymous_works_show params + works,par = Homeworks.get_service.anonymous_works_show params.merge(:id => params[:homework_id]),current_user.nil? ? User.find(2):current_user present :data, works ,with: Mobile::Entities::HomeworkAttach + present :otherdata,par,with: Mobile::Entities::AnonymousWorksParams present :status, 0 end diff --git a/app/api/mobile/entities/anonymous_works_params.rb b/app/api/mobile/entities/anonymous_works_params.rb new file mode 100644 index 000000000..9ac9a5bd8 --- /dev/null +++ b/app/api/mobile/entities/anonymous_works_params.rb @@ -0,0 +1,31 @@ +module Mobile + module Entities + class AnonymousWorksParams < Grape::Entity + def self.anonymous_works_params_expose(field) + expose field do |f,opt| + if f.is_a?(Hash) && f.key?(field) + f[field] + elsif f.is_a?(Hash) && !f.key?(field) + + end + end + end + anonymous_works_params_expose :is_teacher + anonymous_works_params_expose :m_score + anonymous_works_params_expose :jours + expose :teacher_stars,using: Mobile::Entities::HomeworkJours do |f, opt| + if f.is_a?(Hash) && f.key?(:teacher_stars) + f[:teacher_stars] + end + end + expose :student_stars , using: Mobile::Entities::HomeworkJours do |f, opt| + if f.is_a?(Hash) && f.key?(:student_stars) + f[:student_stars] + end + end + anonymous_works_params_expose :is_anonymous_comments + anonymous_works_params_expose :cur_type + + end + end +end \ No newline at end of file diff --git a/app/api/mobile/entities/homework_jours.rb b/app/api/mobile/entities/homework_jours.rb new file mode 100644 index 000000000..27803b496 --- /dev/null +++ b/app/api/mobile/entities/homework_jours.rb @@ -0,0 +1,23 @@ +module Mobile + module Entities + class HomeworkJours < Grape::Entity + include Redmine::I18n + def self.homework_jours_expose(field) + expose field do |f,opt| + if f.is_a?(Hash) && f.key?(field) + f[field] + elsif f.is_a?(::SeemsRateableRates) + + end + end + end + homework_jours_expose :rater_id + homework_jours_expose :rater_name + homework_jours_expose :created_at + homework_jours_expose :stars + expose :comment,using: Mobile::Entities::Jours do |f,opt| + f[:comment] + end + end + end +end \ No newline at end of file diff --git a/app/api/mobile/entities/jours.rb b/app/api/mobile/entities/jours.rb new file mode 100644 index 000000000..02f380352 --- /dev/null +++ b/app/api/mobile/entities/jours.rb @@ -0,0 +1,27 @@ +module Mobile + module Entities + class Jours < Grape::Entity + include Redmine::I18n + def self.jours_expose(field) + expose field do |f,opt| + if f.is_a?(Hash) && f.key?(field) + f[field] + elsif f.is_a?(::JournalsForMessage) && f.respond_to?(field) + if field == :created_on + format_time(f.send(field)) + else + f.send(field) + end + + end + end + end + expose :user,using: Mobile::Entities::User do |f, opt| + f.user + end + jours_expose :created_on + jours_expose :notes + + end + end +end diff --git a/app/helpers/api_helper.rb b/app/helpers/api_helper.rb index 78f954ab4..8ff6f725c 100644 --- a/app/helpers/api_helper.rb +++ b/app/helpers/api_helper.rb @@ -25,4 +25,16 @@ module ApiHelper homeworks += homeworks homeworks[index + 1 .. index + n] end + + + def stars_to_json_like starts,show_jour,homework,show_name + result = [] + starts.each do |s| + comment = get_homework_review homework,show_jour,s.rater + rater_name = show_name ? s.rater.login : l(:label_anonymous) + rater_id = show_name ? s.rater.id : '' + result << {:rater_id =>rater_id ,:rater_name => rater_name,:created_at => format_time(s.created_at),:stars => s.stars,:comment => comment} + end + result + end end \ No newline at end of file diff --git a/app/services/homework_service.rb b/app/services/homework_service.rb index 33f74345f..a2c063e15 100644 --- a/app/services/homework_service.rb +++ b/app/services/homework_service.rb @@ -5,6 +5,7 @@ class HomeworkService include ApplicationHelper include WordsHelper include ApiHelper + include HomeworkAttachHelper # 作业详情(老师才显示启动匿评,学生不显示 ) # many_times 第几次(作业) @@ -100,20 +101,42 @@ class HomeworkService # attachs 该作品的所有附件 # filename 文件名 # filedesc 文件描述 - def anonymous_works_show params - @homework = HomeworkAttach.find(params[:homework_id]) - name = @homework.name - desc = @homework.description - datetime = @homework.created_at - files = [] - unless @homework.attachments.empty? - attachs = @homework.attachments - attachs.each do |attach| - filename = attach.filename - filedesc = attach.description unless attach.description.blank? - end + def anonymous_works_show(params,current_user) + @homework = HomeworkAttach.find(params[:id]) + @bid = @homework.bid + @course = @bid.courses.first + if current_user.admin? || current_user.member_of_course?(@course) + @stars_reates = @homework.rates(:quality) + @is_teacher = is_course_teacher current_user,@course + @has_evaluation = @stars_reates.where("rater_id = #{current_user.id} and is_teacher_score=#{@is_teacher ? 1 : 0}").first + @m_score = @has_evaluation.nil? ? 0 : @has_evaluation.stars + @teacher_stars = @stars_reates.where("is_teacher_score = 1") #老师评分列表 + @student_stars = @stars_reates.where("is_teacher_score = 0") #学生评分列表 + @is_anonymous_comments = @bid.comment_status == 1 && !@homework.users.include?(current_user) && @homework.user != current_user && !@is_teacher #判断是不是匿评(开启匿评,当前用户不是作业的创建者或者参与者,不是老师) + jours = @homework.journals_for_messages.where("is_comprehensive_evaluation = 3 or is_comprehensive_evaluation is null").order("created_on DESC")#jours留言 is null条件用以兼容历史数据 + #@jour = paginateHelper jours,5 #留言 + #@cur_page = params[:cur_page] || 1 + @cur_type = params[:cur_type] || 5 + teacher_stars_json_like = stars_to_json_like(@teacher_stars,true,@homework,true) + student_stars_json_like = stars_to_json_like(@student_stars,false,@homework,(false || @is_teacher)) + else + raise '403' end - @homework + + [@homework,{:is_teacher => @is_teacher,:m_score => @m_score,:jours => jours,:teacher_stars => teacher_stars_json_like, + :student_stars => student_stars_json_like,:is_anonymous_comments => @is_anonymous_comments,:cur_type => @cur_type}] + #name = @homework.name + #desc = @homework.description + #datetime = @homework.created_at + #files = [] + #unless @homework.attachments.empty? + # attachs = @homework.attachments + # attachs.each do |attach| + # filename = attach.filename + # filedesc = attach.description unless attach.description.blank? + # end + #end + #{:name => name, :description => desc, :datetime => format_time(datetime)} end From 4a672416e376abba64b2ea9312845026d657dd25 Mon Sep 17 00:00:00 2001 From: z9hang Date: Fri, 23 Jan 2015 11:42:35 +0800 Subject: [PATCH 81/83] =?UTF-8?q?=E5=8C=BF=E8=AF=84=E4=BD=9C=E5=93=81?= =?UTF-8?q?=E8=AF=A6=E6=83=85=E6=8E=A5=E5=8F=A3=E6=B7=BB=E5=8A=A0=E8=AF=84?= =?UTF-8?q?=E8=AE=BA=E7=9A=84=E5=9B=9E=E5=A4=8D=E8=BE=93=E5=87=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/api/mobile/entities/anonymous_works_params.rb | 6 +++++- app/api/mobile/entities/homework_jours.rb | 2 ++ app/api/mobile/entities/jours.rb | 14 ++++++++++++-- 3 files changed, 19 insertions(+), 3 deletions(-) diff --git a/app/api/mobile/entities/anonymous_works_params.rb b/app/api/mobile/entities/anonymous_works_params.rb index 9ac9a5bd8..a6fcd19f2 100644 --- a/app/api/mobile/entities/anonymous_works_params.rb +++ b/app/api/mobile/entities/anonymous_works_params.rb @@ -12,7 +12,11 @@ module Mobile end anonymous_works_params_expose :is_teacher anonymous_works_params_expose :m_score - anonymous_works_params_expose :jours + expose :jours ,using: Mobile::Entities::Jours do |f, opt| + if f.is_a?(Hash) && f.key?(:jours) + f[:jours] + end + end expose :teacher_stars,using: Mobile::Entities::HomeworkJours do |f, opt| if f.is_a?(Hash) && f.key?(:teacher_stars) f[:teacher_stars] diff --git a/app/api/mobile/entities/homework_jours.rb b/app/api/mobile/entities/homework_jours.rb index 27803b496..63c6997fd 100644 --- a/app/api/mobile/entities/homework_jours.rb +++ b/app/api/mobile/entities/homework_jours.rb @@ -1,5 +1,6 @@ module Mobile module Entities + #带评分的留言(教师评论、学生匿名评分都属于此类) class HomeworkJours < Grape::Entity include Redmine::I18n def self.homework_jours_expose(field) @@ -18,6 +19,7 @@ module Mobile expose :comment,using: Mobile::Entities::Jours do |f,opt| f[:comment] end + end end end \ No newline at end of file diff --git a/app/api/mobile/entities/jours.rb b/app/api/mobile/entities/jours.rb index 02f380352..5a9f48cbc 100644 --- a/app/api/mobile/entities/jours.rb +++ b/app/api/mobile/entities/jours.rb @@ -1,7 +1,9 @@ module Mobile module Entities + #普通留言 class Jours < Grape::Entity include Redmine::I18n + include WordsHelper def self.jours_expose(field) expose field do |f,opt| if f.is_a?(Hash) && f.key?(field) @@ -12,16 +14,24 @@ module Mobile else f.send(field) end - end end end + jours_expose :id expose :user,using: Mobile::Entities::User do |f, opt| f.user end jours_expose :created_on jours_expose :notes - + jours_expose :m_reply_id + expose :reply_user,using: Mobile::Entities::User do |f, opt| + f.at_user + end + expose :child_reply,using: Mobile::Entities::Jours do |f, opt| + if f.is_a?(::JournalsForMessage) + fetch_user_leaveWord_reply(f) + end + end end end end From b2396df68c8bd1ecd9cce23bcac308f499eefdce Mon Sep 17 00:00:00 2001 From: z9hang Date: Fri, 23 Jan 2015 16:31:41 +0800 Subject: [PATCH 82/83] =?UTF-8?q?=E4=BC=98=E5=8C=96=E4=B8=8B=E4=BB=A3?= =?UTF-8?q?=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/api/mobile/entities/anonymous_works_params.rb | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/app/api/mobile/entities/anonymous_works_params.rb b/app/api/mobile/entities/anonymous_works_params.rb index a6fcd19f2..95cf9215d 100644 --- a/app/api/mobile/entities/anonymous_works_params.rb +++ b/app/api/mobile/entities/anonymous_works_params.rb @@ -1,5 +1,6 @@ module Mobile module Entities + #匿评作品页面相关参数 class AnonymousWorksParams < Grape::Entity def self.anonymous_works_params_expose(field) expose field do |f,opt| @@ -12,6 +13,8 @@ module Mobile end anonymous_works_params_expose :is_teacher anonymous_works_params_expose :m_score + anonymous_works_params_expose :is_anonymous_comments + anonymous_works_params_expose :cur_type expose :jours ,using: Mobile::Entities::Jours do |f, opt| if f.is_a?(Hash) && f.key?(:jours) f[:jours] @@ -27,9 +30,6 @@ module Mobile f[:student_stars] end end - anonymous_works_params_expose :is_anonymous_comments - anonymous_works_params_expose :cur_type - end end end \ No newline at end of file From 4b3621905e7e442afd8c22090444213fcd2054aa Mon Sep 17 00:00:00 2001 From: z9hang Date: Tue, 27 Jan 2015 09:06:00 +0800 Subject: [PATCH 83/83] =?UTF-8?q?=E4=BF=AE=E6=AD=A3=E8=AF=BE=E7=A8=8B?= =?UTF-8?q?=E6=88=90=E5=91=98=E6=90=9C=E7=B4=A2bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/courses_controller.rb | 21 +-------------------- 1 file changed, 1 insertion(+), 20 deletions(-) diff --git a/app/controllers/courses_controller.rb b/app/controllers/courses_controller.rb index ecb5ba8c3..b85a08bb9 100644 --- a/app/controllers/courses_controller.rb +++ b/app/controllers/courses_controller.rb @@ -240,21 +240,10 @@ class CoursesController < ApplicationController @subPage_title = l :label_student_list @render_file = 'member_list' @canShowCode = isCourseTeacher(User.current.id,@course) && params[:role] != '1' - - case params[:role] - when '1' - @subPage_title = l :label_teacher_list - #@members = searchTeacherAndAssistant(@course) - when '2' - @subPage_title = l :label_student_list - #@members = searchStudent(@course) - else - @subPage_title = '' - #@members = @course.member_principals.includes(:roles, :principal).all.sort @is_remote = true @score_sort_by = "desc" q = "#{params[:name].strip}" - #(redirect_to stores_url, :notice => l(:label_sumbit_empty);return) if params[:name].blank? + #(redirect_to stores_url, :notice => l(:label_sumbit_empty);return) if params[:name].blank? if params[:incourse] @results = searchmember_by_name(student_homework_score(0,0,0,"desc"), q) @@ -266,14 +255,6 @@ class CoursesController < ApplicationController @result_count = @results.count @results = paginateHelper @results - cs = CoursesService.new - @members = cs.course_teacher_or_student_list(params,@course,User.current) - @members = paginateHelper @members - render :layout => 'base_courses' - end - if e.message == '403' - render_403 - end end def addgroups