From 0fbd6f2d38f358112ac5f58b3f0674fbfffde5a7 Mon Sep 17 00:00:00 2001 From: CERSER LAPTOP 1 Date: Tue, 26 Jun 2018 00:40:09 -0400 Subject: [PATCH 1/2] This is with edits from today to allow for a better looking website in changing color schemes. --- ...ect_config.php_project_config_platform_xml | 21 + ...s.php_sort_by%3Dexpavg_credit%26offset%3D0 | 1 + ...s.php_sort_by%3Dexpavg_credit%26offset%3D0 | 1 + cache/f2/server_status.php_job_status | 1 + ddownloadxml/config.xml | 107 + ddownloadxml/db_dump_spec.xml | 27 + ddownloadxml/ddownloadxml.tar.gz | 0 ddownloadxml/gui_urls.xml | 30 + ddownloadxml/plan_class_spec.xml | 11 + ddownloadxml/project.xml | 59 + ddownloadxml/run_state_boincserver.xml | 42 + inc/GeoIP.dat | Bin 0 -> 1104406 bytes inc/ReCaptcha/ReCaptcha.php | 97 + inc/ReCaptcha/RequestMethod.php | 42 + inc/ReCaptcha/RequestMethod/Curl.php | 74 + inc/ReCaptcha/RequestMethod/CurlPost.php | 88 + inc/ReCaptcha/RequestMethod/Post.php | 70 + inc/ReCaptcha/RequestMethod/Socket.php | 104 + inc/ReCaptcha/RequestMethod/SocketPost.php | 121 + inc/ReCaptcha/RequestParameters.php | 103 + inc/ReCaptcha/Response.php | 102 + inc/account.inc | 142 + inc/akismet.inc | 75 + inc/bbcode_convert.inc | 93 + inc/bbcode_html.inc | 51 + inc/boinc_db.inc | 793 ++ inc/bolt.inc | 381 + inc/bolt_cat.inc | 168 + inc/bolt_db.inc | 322 + inc/bolt_ex.inc | 347 + inc/bolt_rnd.inc | 75 + inc/bolt_sched.inc | 81 + inc/bolt_select.inc | 88 + inc/bolt_seq.inc | 63 + inc/bolt_snap.inc | 229 + inc/bolt_util.inc | 110 + inc/bolt_util_ops.inc | 230 + inc/bolt_xset.inc | 209 + inc/bootstrap.inc | 478 ++ inc/bossa.inc | 63 + inc/bossa_db.inc | 291 + inc/bossa_example.inc | 80 + inc/bossa_example2.inc | 135 + inc/bossa_example3.inc | 224 + inc/bossa_example4.inc | 189 + inc/bossa_impl.inc | 38 + inc/cache.inc | 307 + inc/cert.inc | 54 + inc/common_defs.inc | 97 + inc/config.xml | 107 + inc/countries.inc | 526 ++ inc/credit.inc | 45 + inc/db.inc | 215 + inc/db_conn.inc | 281 + inc/db_dump_spec.xml | 27 + inc/db_ops.inc | 1368 ++++ inc/ddownloadxml.tar.gz | 0 inc/dir_hier.inc | 113 + inc/email.inc | 119 + inc/forum.inc | 1409 ++++ inc/forum_banishment_vote.inc | 168 + inc/forum_db.inc | 330 + inc/forum_email.inc | 235 + inc/forum_rss.inc | 132 + inc/friend.inc | 118 + inc/geoip.inc | 495 ++ inc/gui_urls.xml | 30 + inc/host.inc | 805 ++ inc/htmLawed.php | 723 ++ inc/image.inc | 82 + inc/keywords.inc | 260 + inc/language_names.inc | 106 + inc/ldap.inc | 74 + inc/news.inc | 122 + inc/notify.inc | 60 + inc/page_translate.inc | 71 + inc/phpmailer/.gitignore | 7 + inc/phpmailer/.scrutinizer.yml | 132 + inc/phpmailer/.travis.yml | 32 + inc/phpmailer/LICENSE | 504 ++ inc/phpmailer/PHPMailerAutoload.php | 49 + inc/phpmailer/README.md | 184 + inc/phpmailer/VERSION | 1 + inc/phpmailer/changelog.md | 623 ++ inc/phpmailer/class.phpmailer.php | 3893 ++++++++++ inc/phpmailer/class.phpmaileroauth.php | 196 + inc/phpmailer/class.phpmaileroauthgoogle.php | 77 + inc/phpmailer/class.pop3.php | 407 + inc/phpmailer/class.smtp.php | 1181 +++ inc/phpmailer/composer.json | 44 + inc/phpmailer/composer.lock | 3591 +++++++++ .../docs/Callback_function_notes.txt | 17 + inc/phpmailer/docs/DomainKeys_notes.txt | 55 + .../docs/Note_for_SMTP_debugging.txt | 17 + inc/phpmailer/docs/extending.html | 128 + inc/phpmailer/docs/faq.html | 28 + inc/phpmailer/docs/generatedocs.sh | 8 + inc/phpmailer/docs/pop3_article.txt | 50 + inc/phpmailer/examples/code_generator.phps | 597 ++ inc/phpmailer/examples/contents.html | 17 + inc/phpmailer/examples/contentsutf8.html | 20 + inc/phpmailer/examples/exceptions.phps | 35 + inc/phpmailer/examples/gmail.phps | 75 + inc/phpmailer/examples/gmail_xoauth.phps | 85 + inc/phpmailer/examples/images/phpmailer.png | Bin 0 -> 5831 bytes .../examples/images/phpmailer_mini.png | Bin 0 -> 1842 bytes inc/phpmailer/examples/index.html | 48 + inc/phpmailer/examples/mail.phps | 31 + inc/phpmailer/examples/mailing_list.phps | 59 + inc/phpmailer/examples/pop_before_smtp.phps | 54 + inc/phpmailer/examples/scripts/XRegExp.js | 664 ++ .../examples/scripts/shAutoloader.js | 122 + inc/phpmailer/examples/scripts/shBrushPhp.js | 72 + inc/phpmailer/examples/scripts/shCore.js | 1 + inc/phpmailer/examples/scripts/shLegacy.js | 141 + inc/phpmailer/examples/send_file_upload.phps | 49 + inc/phpmailer/examples/sendmail.phps | 33 + inc/phpmailer/examples/signed-mail.phps | 89 + inc/phpmailer/examples/smtp.phps | 54 + inc/phpmailer/examples/smtp_check.phps | 40 + inc/phpmailer/examples/smtp_no_auth.phps | 50 + inc/phpmailer/examples/ssl_options.phps | 74 + inc/phpmailer/examples/styles/shCore.css | 46 + .../examples/styles/shCoreDefault.css | 77 + .../examples/styles/shCoreDjango.css | 78 + .../examples/styles/shCoreEclipse.css | 80 + inc/phpmailer/examples/styles/shCoreEmacs.css | 76 + .../examples/styles/shCoreFadeToGrey.css | 77 + .../examples/styles/shCoreMDUltra.css | 76 + .../examples/styles/shCoreMidnight.css | 76 + inc/phpmailer/examples/styles/shCoreRDark.css | 76 + .../examples/styles/shThemeAppleScript.css | 21 + .../examples/styles/shThemeDefault.css | 31 + .../examples/styles/shThemeDjango.css | 32 + .../examples/styles/shThemeEclipse.css | 34 + .../examples/styles/shThemeEmacs.css | 30 + .../examples/styles/shThemeFadeToGrey.css | 31 + .../examples/styles/shThemeMDUltra.css | 30 + .../examples/styles/shThemeMidnight.css | 30 + .../examples/styles/shThemeRDark.css | 30 + .../examples/styles/shThemeVisualStudio.css | 31 + inc/phpmailer/examples/styles/wrapping.png | Bin 0 -> 631 bytes inc/phpmailer/extras/EasyPeasyICS.php | 148 + inc/phpmailer/extras/README.md | 17 + inc/phpmailer/extras/htmlfilter.php | 1166 +++ inc/phpmailer/extras/ntlm_sasl_client.php | 185 + inc/phpmailer/get_oauth_token.php | 162 + inc/phpmailer/language/phpmailer.lang-am.php | 26 + inc/phpmailer/language/phpmailer.lang-ar.php | 27 + inc/phpmailer/language/phpmailer.lang-az.php | 26 + inc/phpmailer/language/phpmailer.lang-be.php | 26 + inc/phpmailer/language/phpmailer.lang-bg.php | 26 + inc/phpmailer/language/phpmailer.lang-br.php | 28 + inc/phpmailer/language/phpmailer.lang-ca.php | 26 + inc/phpmailer/language/phpmailer.lang-ch.php | 26 + inc/phpmailer/language/phpmailer.lang-cz.php | 25 + inc/phpmailer/language/phpmailer.lang-de.php | 25 + inc/phpmailer/language/phpmailer.lang-dk.php | 26 + inc/phpmailer/language/phpmailer.lang-el.php | 25 + inc/phpmailer/language/phpmailer.lang-eo.php | 25 + inc/phpmailer/language/phpmailer.lang-es.php | 26 + inc/phpmailer/language/phpmailer.lang-et.php | 27 + inc/phpmailer/language/phpmailer.lang-fa.php | 27 + inc/phpmailer/language/phpmailer.lang-fi.php | 27 + inc/phpmailer/language/phpmailer.lang-fo.php | 26 + inc/phpmailer/language/phpmailer.lang-fr.php | 29 + inc/phpmailer/language/phpmailer.lang-gl.php | 26 + inc/phpmailer/language/phpmailer.lang-he.php | 26 + inc/phpmailer/language/phpmailer.lang-hr.php | 26 + inc/phpmailer/language/phpmailer.lang-hu.php | 26 + inc/phpmailer/language/phpmailer.lang-id.php | 26 + inc/phpmailer/language/phpmailer.lang-it.php | 27 + inc/phpmailer/language/phpmailer.lang-ja.php | 27 + inc/phpmailer/language/phpmailer.lang-ka.php | 26 + inc/phpmailer/language/phpmailer.lang-ko.php | 26 + inc/phpmailer/language/phpmailer.lang-lt.php | 26 + inc/phpmailer/language/phpmailer.lang-lv.php | 26 + inc/phpmailer/language/phpmailer.lang-ms.php | 26 + inc/phpmailer/language/phpmailer.lang-nl.php | 26 + inc/phpmailer/language/phpmailer.lang-no.php | 25 + inc/phpmailer/language/phpmailer.lang-pl.php | 26 + inc/phpmailer/language/phpmailer.lang-pt.php | 26 + inc/phpmailer/language/phpmailer.lang-ro.php | 26 + inc/phpmailer/language/phpmailer.lang-ru.php | 27 + inc/phpmailer/language/phpmailer.lang-se.php | 26 + inc/phpmailer/language/phpmailer.lang-si.php | 26 + inc/phpmailer/language/phpmailer.lang-sk.php | 26 + inc/phpmailer/language/phpmailer.lang-sl.php | 26 + inc/phpmailer/language/phpmailer.lang-sr.php | 26 + inc/phpmailer/language/phpmailer.lang-tr.php | 29 + inc/phpmailer/language/phpmailer.lang-uk.php | 27 + inc/phpmailer/language/phpmailer.lang-vi.php | 26 + inc/phpmailer/language/phpmailer.lang-zh.php | 28 + .../language/phpmailer.lang-zh_cn.php | 27 + inc/phpmailer/test/bootstrap.php | 5 + inc/phpmailer/test/fakepopserver.sh | 125 + inc/phpmailer/test/fakesendmail.sh | 22 + inc/phpmailer/test/phpmailerLangTest.php | 76 + inc/phpmailer/test/phpmailerTest.php | 2106 ++++++ inc/phpmailer/test/runfakepopserver.sh | 10 + inc/phpmailer/test/test_callback.php | 81 + inc/phpmailer/test/testbootstrap-dist.php | 7 + inc/phpmailer/travis.phpunit.xml.dist | 34 + inc/plan_class_spec.xml | 11 + inc/pm.inc | 312 + inc/prefs.inc | 784 ++ inc/prefs_project.inc | 405 + inc/prefs_util.inc | 646 ++ inc/profile.inc | 281 + inc/project.xml | 59 + inc/recaptcha_loader.php | 42 + inc/recaptchalib.php | 55 + inc/result.inc | 844 +++ inc/run_state_boincserver.xml | 42 + inc/sandbox.inc | 180 + inc/sanitize_html.inc | 44 + inc/stats_sites.inc | 203 + inc/submit.inc | 448 ++ inc/submit_db.inc | 157 + inc/submit_util.inc | 198 + inc/team.inc | 621 ++ inc/team_types.inc | 72 + inc/text_transform.inc | 329 + inc/time.inc | 70 + inc/translation.inc | 307 + inc/untitled text 6.html | 8 + inc/uotd.inc | 224 + inc/user.inc | 551 ++ inc/user_gallery_1_edit.html | 16 + inc/user_util.inc | 246 + inc/util.inc | 1115 +++ inc/util_basic.inc | 204 + inc/util_ops.inc | 405 + inc/wap.inc | 38 + inc/web_rpc_api.inc | 119 + inc/xml.inc | 161 + languages/compiled/az.po.inc | 1490 ++++ languages/compiled/ca.po.inc | 1381 ++++ languages/compiled/cs.po.inc | 1430 ++++ languages/compiled/de.po.inc | 1510 ++++ languages/compiled/es.po.inc | 1221 +++ languages/compiled/fi.po.inc | 1402 ++++ languages/compiled/fr.po.inc | 1510 ++++ languages/compiled/he.po.inc | 1339 ++++ languages/compiled/hu.po.inc | 1336 ++++ languages/compiled/it_IT.po.inc | 1510 ++++ languages/compiled/ja.po.inc | 1383 ++++ languages/compiled/ko.po.inc | 1510 ++++ languages/compiled/nb.po.inc | 1379 ++++ languages/compiled/nl.po.inc | 1510 ++++ languages/compiled/pl.po.inc | 1510 ++++ languages/compiled/pt_BR.po.inc | 1510 ++++ languages/compiled/pt_PT.po.inc | 1510 ++++ languages/compiled/ru.po.inc | 1510 ++++ languages/compiled/sk.po.inc | 1435 ++++ languages/compiled/sv.po.inc | 1510 ++++ languages/compiled/tr.po.inc | 1490 ++++ languages/compiled/uk.po.inc | 1414 ++++ languages/compiled/zh_CN.po.inc | 1463 ++++ languages/compiled/zh_TW.po.inc | 1381 ++++ languages/translations/az.po | 6631 ++++++++++++++++ languages/translations/ca.po | 6632 ++++++++++++++++ languages/translations/cs.po | 6636 ++++++++++++++++ languages/translations/de.po | 6633 ++++++++++++++++ languages/translations/es.po | 6645 +++++++++++++++++ languages/translations/fi.po | 6631 ++++++++++++++++ languages/translations/fr.po | 6640 ++++++++++++++++ languages/translations/he.po | 6633 ++++++++++++++++ languages/translations/hu.po | 6636 ++++++++++++++++ languages/translations/it_IT.po | 6637 ++++++++++++++++ languages/translations/ja.po | 6634 ++++++++++++++++ languages/translations/ko.po | 6633 ++++++++++++++++ languages/translations/nb.po | 6632 ++++++++++++++++ languages/translations/nl.po | 6635 ++++++++++++++++ languages/translations/pl.po | 6637 ++++++++++++++++ languages/translations/pt_BR.po | 6638 ++++++++++++++++ languages/translations/pt_PT.po | 6634 ++++++++++++++++ languages/translations/ru.po | 6635 ++++++++++++++++ languages/translations/sk.po | 6634 ++++++++++++++++ languages/translations/sv.po | 6635 ++++++++++++++++ languages/translations/tr.po | 6633 ++++++++++++++++ languages/translations/uk.po | 6635 ++++++++++++++++ languages/translations/zh_CN.po | 6636 ++++++++++++++++ languages/translations/zh_TW.po | 6635 ++++++++++++++++ ops/.htaccess | 6 + ops/.htpasswd | 1 + ops/add_user.php | 31 + ops/analyze_coproc_log.php | 92 + ops/app_details.php | 61 + ops/app_reset.php | 63 + ops/app_select_edit.php | 148 + ops/assign.php | 78 + ops/autolock.php | 41 + ops/badge_admin.php | 155 + ops/badge_assign.php | 105 + ops/badge_assign_custom.php | 190 + ops/bbcode_convert.php | 71 + ops/bbcode_convert_response1.php | 69 + ops/bbcode_convert_response2.php | 69 + ops/bbcode_convert_signature.php | 69 + ops/block_host.php | 50 + ops/bolt_admin.php | 201 + ops/bolt_compare.php | 228 + ops/bolt_datagen.php | 235 + ops/bolt_map.php | 470 ++ ops/bolt_refresh.php | 57 + ops/bolt_setup_sample.php | 35 + ops/bossa_admin.php | 397 + ops/bossa_example4_make_jobs.php | 72 + ops/bossa_example_make_files.php | 112 + ops/bossa_example_make_jobs.php | 85 + ops/bossa_transitioner.php | 60 + ops/build_po.php | 54 + ops/cancel_workunits.php | 165 + ops/cancel_workunits_action.php | 87 + ops/cancel_wu_action.php | 50 + ops/cancel_wu_form.php | 59 + ops/cancel_wus.php | 11 + ops/clean_cache.php | 41 + ops/clean_user_names.php | 52 + ops/clear_host.php | 33 + ops/create_forums.php | 76 + ops/credit.php | 224 + ops/credit_study.php | 145 + ops/credit_test.php | 30 + ops/db_action.php | 232 + ops/db_cleanse.php | 117 + ops/db_form.php | 106 + ops/db_schemaversion.php | 37 + ops/db_update.php | 1133 +++ ops/dbinfo.php | 234 + ops/decay_credit_by_app.php | 54 + ops/delete_orphan_results.php | 50 + ops/delete_spammers.php | 466 ++ ops/eah_server_status.php | 323 + ops/error_summary.php | 68 + ops/errorwus.php | 207 + ops/export_credit_by_app.php | 90 + ops/failure_result_summary_by_host.php | 88 + ops/failure_result_summary_by_platform.php | 87 + ops/ffmail/sample_html | 47 + ops/ffmail/sample_subject | 1 + ops/ffmail/sample_text | 24 + ops/fix_blank_user_names.php | 28 + ops/fix_prefs.php | 67 + ops/forum_repair.php | 75 + ops/get_versions.php | 10 + ops/grant_credit.php | 123 + ops/host_update_credit.php | 25 + ops/hrclass_summary.php | 108 + ops/index.php | 222 + ops/job_times.php | 229 + ops/list_new_users.php | 121 + ops/login_action.php | 47 + ops/login_form.php | 15 + ops/logout.php | 16 + ops/main.css | 453 ++ ops/make_emails_lowercase.php | 103 + ops/make_puser.php | 103 + ops/manage_app_versions.php | 144 + ops/manage_apps.php | 235 + ops/manage_special_users.php | 73 + ops/manage_special_users_action.php | 54 + ops/manage_user.php | 311 + ops/mass_email.php | 129 + ops/mass_email/sample_current_html | 38 + ops/mass_email/sample_current_subject | 1 + ops/mass_email/sample_current_text | 30 + ops/mass_email/sample_failed_html | 45 + ops/mass_email/sample_failed_subject | 1 + ops/mass_email/sample_failed_text | 33 + ops/mass_email/sample_lapsed_html | 42 + ops/mass_email/sample_lapsed_subject | 1 + ops/mass_email/sample_lapsed_text | 32 + ops/mass_email_script.php | 329 + ops/news_convert.php | 120 + ops/notify.php | 115 + ops/nvidia.php | 162 + ops/opsw.php | 70 + ops/pass_percentage_by_appversion.php | 231 + ops/pass_percentage_by_platform.php | 201 + ops/problem_host.php | 131 + ops/profile_screen_action.php | 55 + ops/profile_screen_form.php | 100 + ops/purge_profile.php | 68 + ops/purge_trickles.php | 29 + ops/remind.php | 340 + ops/remind_email/sample_failed_html | 46 + ops/remind_email/sample_failed_subject | 1 + ops/remind_email/sample_failed_text | 21 + ops/remind_email/sample_lapsed_html | 72 + ops/remind_email/sample_lapsed_subject | 1 + ops/remind_email/sample_lapsed_text | 49 + ops/remote_server_status.php | 138 + ops/remove_zombie_hosts.php | 42 + ops/repair_21812.php | 31 + ops/repair_forums.php | 61 + ops/repair_profile_pictures.php | 49 + ops/repair_validator_problem.php | 58 + ops/reset_hrclass.php | 51 + ops/result_summary.php | 30 + ops/revalidate.php | 86 + ops/sample_table_stats.php | 65 + ops/show_log.php | 73 + ops/single_job_setup.php | 211 + ops/size_census.php | 86 + ops/submit_init_priority.php | 88 + ops/survey_get_addrs.php | 14 + ops/team_export.php | 116 + ops/team_import.php | 276 + ops/test_job_file.php | 137 + ops/transition_all.php | 33 + ops/update_forum_activities.php | 62 + ops/update_profile_pages.php | 423 ++ ops/update_translations.php | 49 + ops/update_uotd.php | 36 + ops/upgrade_db.php | 83 + ops/user_graph.php | 148 + ops/watchdogs.php | 58 + ops/wd_nresults_changing.php | 91 + ops/white.css | 219 + project/Wikimediacommonscoyotestare.jpg | Bin 0 -> 169236 bytes project/cache_parameters.inc | 21 + project/project.inc | 289 + project/project_specific_prefs.inc | 301 + user/Edits/bootstrap(background).min.css | 5771 ++++++++++++++ user/Edits/bootstrap(better).min.css | 5771 ++++++++++++++ user/Edits/bootstrap.min.css | 7 + user/Example_multi_submit.txt | 3 + user/README.md | 6 + user/README_MIDAS_example_c++.txt | 0 user/README_MIDAS_example_python.txt | 0 user/README_MIDAS_setup.md | 91 + user/account_finish.php | 65 + user/account_finish_action.php | 67 + user/add_venue.php | 94 + user/all_news.php | 30 + user/am_get_info.php | 79 + user/am_set_host_info.php | 54 + user/am_set_info.php | 197 + user/android_tasks.php | 137 + user/app_versions.php | 48 + user/apps.php | 110 + user/bbcode.php | 59 + user/bbcode_toolbar.js | 234 + user/black.css | 77 + user/bolt.css | 414 + user/bolt.php | 71 + user/bolt_admin.css | 63 + user/bolt_course.php | 116 + user/bolt_course_sample.php | 136 + user/bolt_sched.php | 661 ++ user/bootstrap.min.css | 6 + user/bootstrap.min.js | 7 + user/bossa_apps.php | 69 + user/bossa_example4.php | 69 + user/bossa_get_job.php | 38 + user/bossa_job_finished.php | 54 + user/brand_stats.php | 69 + user/cert1.php | 99 + user/cert_all.php | 93 + user/cert_team.php | 105 + user/cpu_list.php | 131 + user/create_account.php | 100 + user/create_account_action.php | 38 + user/create_account_form.php | 80 + user/create_profile.php | 358 + user/create_team.php | 83 + user/currency.js | 95 + user/custom.css | 22 + user/custom_dark.css | 50 + user/delete_account.php | 84 + user/delete_profile.php | 58 + user/donate.php | 52 + user/donated.php | 37 + user/donation_ipn.php | 75 + user/donations.php | 334 + user/download.php | 237 + user/download_network.php | 56 + user/edit_email_action.php | 74 + user/edit_email_form.php | 50 + user/edit_forum_preferences_action.php | 173 + user/edit_forum_preferences_form.php | 172 + user/edit_passwd_action.php | 52 + user/edit_passwd_form.php | 33 + user/edit_user_info_action.php | 64 + user/edit_user_info_form.php | 62 + user/explain_state.php | 125 + user/ffmail_action.php | 61 + user/ffmail_form.php | 63 + user/forum_banishment_vote.php | 94 + user/forum_banishment_vote_action.php | 75 + user/forum_edit.php | 163 + user/forum_forum.php | 234 + user/forum_get_data.php | 100 + user/forum_help_desk.php | 83 + user/forum_index.php | 144 + user/forum_moderate_post.php | 127 + user/forum_moderate_post_action.php | 168 + user/forum_moderate_thread.php | 116 + user/forum_moderate_thread_action.php | 126 + user/forum_post.php | 153 + user/forum_rate.php | 92 + user/forum_reply.php | 187 + user/forum_report_post.php | 111 + user/forum_rss.php | 67 + user/forum_search.php | 97 + user/forum_search_action.php | 230 + user/forum_subscribe.php | 91 + user/forum_thread.php | 312 + user/forum_thread_status.php | 58 + user/forum_thread_vote.php | 34 + user/forum_user_posts.php | 139 + user/friend.php | 303 + user/get_output.php | 222 + user/get_passwd.php | 38 + user/get_project_config.php | 124 + user/gpu_list.php | 217 + user/gpu_ratios.php | 75 + user/home.php | 56 + user/homepage.php | 147 + user/host_app_versions.php | 104 + user/host_delete.php | 46 + user/host_edit_action.php | 71 + user/host_edit_form.php | 120 + user/host_update_credit.php | 40 + user/host_venue_action.php | 57 + user/hosts_user.php | 72 + user/html.php | 38 + user/img/75pct_white.png | Bin 0 -> 172 bytes user/img/blue_gradient.png | Bin 0 -> 469 bytes user/img/boinc_fade_600.png | Bin 0 -> 26979 bytes user/img/boinc_logo_trans.gif | Bin 0 -> 4104 bytes user/img/boincstats_icon.png | Bin 0 -> 2099 bytes user/img/bronze.jpg | Bin 0 -> 3998 bytes user/img/bronze.png | Bin 0 -> 22929 bytes user/img/donor.png | Bin 0 -> 789 bytes user/img/emphasized_post.png | Bin 0 -> 197 bytes user/img/feed_logo.png | Bin 0 -> 945 bytes user/img/filtered_post.png | Bin 0 -> 231 bytes user/img/forum_bg.png | Bin 0 -> 2859 bytes user/img/freedc_icon.png | Bin 0 -> 2422 bytes user/img/gold.png | Bin 0 -> 21354 bytes user/img/google-button.png | Bin 0 -> 5616 bytes user/img/gray_gradient.png | Bin 0 -> 7583 bytes user/img/head.png | Bin 0 -> 1247 bytes user/img/head_20.png | Bin 0 -> 360 bytes user/img/hidden.png | Bin 0 -> 250 bytes user/img/locked_post.png | Bin 0 -> 211 bytes user/img/next.gif | Bin 0 -> 2329 bytes user/img/paypal_logo.png | Bin 0 -> 1409 bytes user/img/pb_boinc.gif | Bin 0 -> 2722 bytes user/img/pct_1.png | Bin 0 -> 23430 bytes user/img/pct_25.png | Bin 0 -> 25460 bytes user/img/pct_5.png | Bin 0 -> 22861 bytes user/img/pm.png | Bin 0 -> 200 bytes user/img/post.png | Bin 0 -> 220 bytes user/img/prev.gif | Bin 0 -> 2344 bytes user/img/rate_negative.png | Bin 0 -> 186 bytes user/img/rate_positive.png | Bin 0 -> 186 bytes user/img/report_post.png | Bin 0 -> 183 bytes user/img/rss_icon.gif | Bin 0 -> 641 bytes user/img/silver.png | Bin 0 -> 20509 bytes user/img/star.gif | Bin 0 -> 97 bytes user/img/sticky_locked_post.png | Bin 0 -> 297 bytes user/img/sticky_post.png | Bin 0 -> 330 bytes user/img/unread_locked.png | Bin 0 -> 207 bytes user/img/unread_post.png | Bin 0 -> 204 bytes user/img/unread_sticky.png | Bin 0 -> 417 bytes user/img/unread_sticky_locked.png | Bin 0 -> 399 bytes user/img/water.jpg | Bin 0 -> 49001 bytes user/img/white_grad.png | Bin 0 -> 2834 bytes user/img/xml.gif | Bin 0 -> 243 bytes user/img/yahoo-button.png | Bin 0 -> 4784 bytes user/index.html | 8 + user/index.php | 147 + user/index1.php | 134 + user/info.php | 62 + user/job_file.php | 296 + user/join.php | 98 + user/jquery.min.js | 4 + user/lammps.php | 490 ++ user/language_select.php | 90 + user/languages.txt | 188 + user/login_action.php | 184 + user/login_auth.php | 36 + user/login_form.php | 69 + user/login_token_lookup.php | 68 + user/logout.php | 38 + user/lookup_account.php | 89 + user/mail_passwd.php | 73 + user/main.css | 453 ++ user/manage.php | 70 + user/manage_app.php | 231 + user/manage_project.php | 214 + user/merge_by_name.php | 87 + user/moderation.php | 38 + user/moderator_instructions.php | 86 + user/motd.php | 31 + user/notices.php | 116 + user/notify_rss.php | 77 + user/old_news.php | 30 + user/openid.php | 754 ++ user/openid_login.php | 161 + user/opt_out.php | 49 + user/pending.php | 86 + user/per_app_list.php | 258 + user/pm.php | 369 + user/prefs.php | 67 + user/prefs_default.php | 49 + user/prefs_edit.php | 116 + user/prefs_remove.php | 60 + user/proc_known.php | 88 + user/proc_multi.php | 43 + user/proc_submit.php | 69 + user/profile_menu.php | 114 + user/profile_rate.php | 52 + user/profile_search_action.php | 69 + user/register.php | 51 + user/result.php | 40 + user/result_status.php | 89 + user/results.php | 113 + user/rss_main.php | 29 + user/sample_bootstrap.min.css | 6 + user/sample_bootstrap.min.js | 7 + user/sample_index.php | 132 + user/sample_jquery.min.js | 4 + user/sample_moderation.php | 45 + user/sample_moderator_instructions.php | 39 + user/sample_motd.php | 31 + user/sample_robots.txt | 11 + user/sandbox.php | 205 + user/schedulers.txt | 2 + user/server_status.php | 448 ++ user/set_language.php | 31 + user/show_coproc.php | 129 + user/show_host_detail.php | 44 + user/show_user.php | 110 + user/site_search.php | 38 + user/stats.php | 66 + user/style2.css | 358 + user/submit.php | 589 ++ user/submit_example.php | 481 ++ user/submit_jobs.php | 49 + user/submit_known.html | 172 + user/submit_multi.html | 165 + user/submit_rpc_handler.php | 993 +++ user/submit_status.php | 70 + user/submit_test.php | 64 + user/team.php | 63 + user/team_admins.php | 132 + user/team_change_founder_action.php | 48 + user/team_change_founder_form.php | 125 + user/team_create_action.php | 78 + user/team_create_form.php | 46 + user/team_delta.php | 95 + user/team_display.php | 79 + user/team_edit_action.php | 95 + user/team_edit_form.php | 39 + user/team_email_list.php | 98 + user/team_forum.php | 213 + user/team_founder_transfer_action.php | 157 + user/team_founder_transfer_form.php | 90 + user/team_join.php | 50 + user/team_join_action.php | 52 + user/team_join_form.php | 51 + user/team_lookup.php | 115 + user/team_manage.php | 101 + user/team_members.php | 55 + user/team_quit_action.php | 41 + user/team_quit_form.php | 48 + user/team_remove_inactive_action.php | 51 + user/team_remove_inactive_form.php | 75 + user/team_search.php | 219 + user/testpage.html | 7 + user/token_data/.htaccess | 1 + user/token_data/CHANGELOG.md | 995 +++ user/token_data/CONTRIBUTING.md | 44 + user/token_data/FAQ.md | 177 + user/token_data/LICENSE | 22 + user/token_data/README.md | 490 ++ user/token_data/Tokens.txt | 7 + user/token_data/VERSION | 1 + user/token_data/allrun.txt | 0 user/token_data/autoload.php | 14 + user/token_data/bin/create-command-test | 275 + user/token_data/bin/create-pear | 233 + user/token_data/bin/create-phar | 71 + user/token_data/bin/create-single-file | 662 ++ user/token_data/coherent.py | 28 + user/token_data/composer.json | 31 + user/token_data/create_organization.py | 51 + user/token_data/create_token.py | 49 + .../examples/custom_cluster_distributor.php | 117 + .../examples/debuggable_connection.php | 92 + user/token_data/examples/dispatcher_loop.php | 79 + .../examples/executing_redis_commands.php | 57 + user/token_data/examples/key_prefixing.php | 36 + .../examples/lua_scripting_abstraction.php | 71 + user/token_data/examples/monitor_consumer.php | 44 + .../examples/pipelining_commands.php | 45 + user/token_data/examples/pubsub_consumer.php | 59 + .../examples/redis_collections_iterators.php | 99 + .../examples/replication_complex.php | 85 + .../examples/replication_sentinel.php | 58 + .../examples/replication_simple.php | 52 + user/token_data/examples/session_handler.php | 52 + user/token_data/examples/shared.php | 48 + .../examples/transaction_using_cas.php | 52 + user/token_data/issued.txt | 0 user/token_data/modify_org.py | 91 + user/token_data/package.ini | 36 + user/token_data/phpunit.xml.dist | 50 + user/token_data/phpunit.xml.travisci | 54 + user/token_data/process_files/.gitignore | 0 user/token_data/red_runner.py | 43 + user/token_data/redfile.py | 68 + user/token_data/src/Autoloader.php | 62 + user/token_data/src/Client.php | 547 ++ .../token_data/src/ClientContextInterface.php | 198 + user/token_data/src/ClientException.php | 21 + user/token_data/src/ClientInterface.php | 239 + .../src/Cluster/ClusterStrategy.php | 469 ++ .../Distributor/DistributorInterface.php | 82 + .../Distributor/EmptyRingException.php | 21 + .../src/Cluster/Distributor/HashRing.php | 270 + .../src/Cluster/Distributor/KetamaRing.php | 71 + user/token_data/src/Cluster/Hash/CRC16.php | 74 + .../Cluster/Hash/HashGeneratorInterface.php | 30 + .../token_data/src/Cluster/PredisStrategy.php | 79 + user/token_data/src/Cluster/RedisStrategy.php | 58 + .../src/Cluster/StrategyInterface.php | 53 + .../Iterator/CursorBasedIterator.php | 191 + .../src/Collection/Iterator/HashKey.php | 58 + .../src/Collection/Iterator/Keyspace.php | 43 + .../src/Collection/Iterator/ListKey.php | 176 + .../src/Collection/Iterator/SetKey.php | 47 + .../src/Collection/Iterator/SortedSetKey.php | 58 + user/token_data/src/Command/Command.php | 129 + .../src/Command/CommandInterface.php | 81 + .../token_data/src/Command/ConnectionAuth.php | 28 + .../token_data/src/Command/ConnectionEcho.php | 28 + .../token_data/src/Command/ConnectionPing.php | 28 + .../token_data/src/Command/ConnectionQuit.php | 28 + .../src/Command/ConnectionSelect.php | 28 + .../src/Command/GeospatialGeoAdd.php | 42 + .../src/Command/GeospatialGeoDist.php | 28 + .../src/Command/GeospatialGeoHash.php | 41 + .../src/Command/GeospatialGeoPos.php | 41 + .../src/Command/GeospatialGeoRadius.php | 71 + .../Command/GeospatialGeoRadiusByMember.php | 28 + user/token_data/src/Command/HashDelete.php | 36 + user/token_data/src/Command/HashExists.php | 28 + user/token_data/src/Command/HashGet.php | 28 + user/token_data/src/Command/HashGetAll.php | 42 + .../src/Command/HashGetMultiple.php | 36 + .../src/Command/HashIncrementBy.php | 28 + .../src/Command/HashIncrementByFloat.php | 28 + user/token_data/src/Command/HashKeys.php | 28 + user/token_data/src/Command/HashLength.php | 28 + user/token_data/src/Command/HashScan.php | 85 + user/token_data/src/Command/HashSet.php | 28 + .../src/Command/HashSetMultiple.php | 48 + .../src/Command/HashSetPreserve.php | 28 + .../src/Command/HashStringLength.php | 28 + user/token_data/src/Command/HashValues.php | 28 + .../token_data/src/Command/HyperLogLogAdd.php | 36 + .../src/Command/HyperLogLogCount.php | 36 + .../src/Command/HyperLogLogMerge.php | 36 + user/token_data/src/Command/KeyDelete.php | 36 + user/token_data/src/Command/KeyDump.php | 28 + user/token_data/src/Command/KeyExists.php | 28 + user/token_data/src/Command/KeyExpire.php | 28 + user/token_data/src/Command/KeyExpireAt.php | 28 + user/token_data/src/Command/KeyKeys.php | 28 + user/token_data/src/Command/KeyMigrate.php | 50 + user/token_data/src/Command/KeyMove.php | 28 + user/token_data/src/Command/KeyPersist.php | 28 + .../src/Command/KeyPreciseExpire.php | 28 + .../src/Command/KeyPreciseExpireAt.php | 28 + .../src/Command/KeyPreciseTimeToLive.php | 28 + user/token_data/src/Command/KeyRandom.php | 36 + user/token_data/src/Command/KeyRename.php | 28 + .../src/Command/KeyRenamePreserve.php | 28 + user/token_data/src/Command/KeyRestore.php | 28 + user/token_data/src/Command/KeyScan.php | 66 + user/token_data/src/Command/KeySort.php | 83 + user/token_data/src/Command/KeyTimeToLive.php | 28 + user/token_data/src/Command/KeyType.php | 28 + user/token_data/src/Command/ListIndex.php | 28 + user/token_data/src/Command/ListInsert.php | 28 + user/token_data/src/Command/ListLength.php | 28 + user/token_data/src/Command/ListPopFirst.php | 28 + .../src/Command/ListPopFirstBlocking.php | 41 + user/token_data/src/Command/ListPopLast.php | 28 + .../src/Command/ListPopLastBlocking.php | 28 + .../src/Command/ListPopLastPushHead.php | 28 + .../Command/ListPopLastPushHeadBlocking.php | 28 + user/token_data/src/Command/ListPushHead.php | 28 + user/token_data/src/Command/ListPushHeadX.php | 28 + user/token_data/src/Command/ListPushTail.php | 36 + user/token_data/src/Command/ListPushTailX.php | 28 + user/token_data/src/Command/ListRange.php | 28 + user/token_data/src/Command/ListRemove.php | 28 + user/token_data/src/Command/ListSet.php | 28 + user/token_data/src/Command/ListTrim.php | 28 + .../Command/PrefixableCommandInterface.php | 27 + .../Command/Processor/KeyPrefixProcessor.php | 450 ++ .../src/Command/Processor/ProcessorChain.php | 130 + .../Command/Processor/ProcessorInterface.php | 29 + user/token_data/src/Command/PubSubPublish.php | 28 + user/token_data/src/Command/PubSubPubsub.php | 61 + .../src/Command/PubSubSubscribe.php | 36 + .../src/Command/PubSubSubscribeByPattern.php | 28 + .../src/Command/PubSubUnsubscribe.php | 36 + .../Command/PubSubUnsubscribeByPattern.php | 28 + user/token_data/src/Command/RawCommand.php | 131 + user/token_data/src/Command/ScriptCommand.php | 77 + .../Command/ServerBackgroundRewriteAOF.php | 36 + .../src/Command/ServerBackgroundSave.php | 36 + user/token_data/src/Command/ServerClient.php | 74 + user/token_data/src/Command/ServerCommand.php | 28 + user/token_data/src/Command/ServerConfig.php | 49 + .../src/Command/ServerDatabaseSize.php | 28 + user/token_data/src/Command/ServerEval.php | 38 + user/token_data/src/Command/ServerEvalSHA.php | 38 + .../token_data/src/Command/ServerFlushAll.php | 28 + .../src/Command/ServerFlushDatabase.php | 28 + user/token_data/src/Command/ServerInfo.php | 111 + .../token_data/src/Command/ServerInfoV26x.php | 56 + .../token_data/src/Command/ServerLastSave.php | 28 + user/token_data/src/Command/ServerMonitor.php | 28 + user/token_data/src/Command/ServerObject.php | 28 + user/token_data/src/Command/ServerSave.php | 28 + user/token_data/src/Command/ServerScript.php | 28 + .../token_data/src/Command/ServerSentinel.php | 66 + .../token_data/src/Command/ServerShutdown.php | 28 + user/token_data/src/Command/ServerSlaveOf.php | 40 + user/token_data/src/Command/ServerSlowlog.php | 51 + user/token_data/src/Command/ServerTime.php | 28 + user/token_data/src/Command/SetAdd.php | 36 + .../token_data/src/Command/SetCardinality.php | 28 + user/token_data/src/Command/SetDifference.php | 28 + .../src/Command/SetDifferenceStore.php | 28 + .../src/Command/SetIntersection.php | 36 + .../src/Command/SetIntersectionStore.php | 40 + user/token_data/src/Command/SetIsMember.php | 28 + user/token_data/src/Command/SetMembers.php | 28 + user/token_data/src/Command/SetMove.php | 28 + user/token_data/src/Command/SetPop.php | 28 + .../src/Command/SetRandomMember.php | 28 + user/token_data/src/Command/SetRemove.php | 36 + user/token_data/src/Command/SetScan.php | 66 + user/token_data/src/Command/SetUnion.php | 28 + user/token_data/src/Command/SetUnionStore.php | 28 + user/token_data/src/Command/StringAppend.php | 28 + .../token_data/src/Command/StringBitCount.php | 28 + .../token_data/src/Command/StringBitField.php | 28 + user/token_data/src/Command/StringBitOp.php | 42 + user/token_data/src/Command/StringBitPos.php | 28 + .../src/Command/StringDecrement.php | 28 + .../src/Command/StringDecrementBy.php | 28 + user/token_data/src/Command/StringGet.php | 28 + user/token_data/src/Command/StringGetBit.php | 28 + .../src/Command/StringGetMultiple.php | 36 + .../token_data/src/Command/StringGetRange.php | 28 + user/token_data/src/Command/StringGetSet.php | 28 + .../src/Command/StringIncrement.php | 28 + .../src/Command/StringIncrementBy.php | 28 + .../src/Command/StringIncrementByFloat.php | 28 + .../src/Command/StringPreciseSetExpire.php | 28 + user/token_data/src/Command/StringSet.php | 28 + user/token_data/src/Command/StringSetBit.php | 28 + .../src/Command/StringSetExpire.php | 28 + .../src/Command/StringSetMultiple.php | 48 + .../src/Command/StringSetMultiplePreserve.php | 28 + .../src/Command/StringSetPreserve.php | 28 + .../token_data/src/Command/StringSetRange.php | 28 + user/token_data/src/Command/StringStrlen.php | 28 + user/token_data/src/Command/StringSubstr.php | 28 + .../src/Command/TransactionDiscard.php | 28 + .../src/Command/TransactionExec.php | 28 + .../src/Command/TransactionMulti.php | 28 + .../src/Command/TransactionUnwatch.php | 28 + .../src/Command/TransactionWatch.php | 40 + user/token_data/src/Command/ZSetAdd.php | 43 + .../src/Command/ZSetCardinality.php | 28 + user/token_data/src/Command/ZSetCount.php | 28 + .../src/Command/ZSetIncrementBy.php | 28 + .../src/Command/ZSetIntersectionStore.php | 28 + user/token_data/src/Command/ZSetLexCount.php | 28 + user/token_data/src/Command/ZSetRange.php | 105 + .../token_data/src/Command/ZSetRangeByLex.php | 55 + .../src/Command/ZSetRangeByScore.php | 68 + user/token_data/src/Command/ZSetRank.php | 28 + user/token_data/src/Command/ZSetRemove.php | 36 + .../src/Command/ZSetRemoveRangeByLex.php | 28 + .../src/Command/ZSetRemoveRangeByRank.php | 28 + .../src/Command/ZSetRemoveRangeByScore.php | 28 + .../src/Command/ZSetReverseRange.php | 28 + .../src/Command/ZSetReverseRangeByLex.php | 28 + .../src/Command/ZSetReverseRangeByScore.php | 28 + .../src/Command/ZSetReverseRank.php | 28 + user/token_data/src/Command/ZSetScan.php | 85 + user/token_data/src/Command/ZSetScore.php | 28 + .../token_data/src/Command/ZSetUnionStore.php | 78 + .../token_data/src/CommunicationException.php | 80 + .../src/Configuration/ClusterOption.php | 76 + .../Configuration/ConnectionFactoryOption.php | 60 + .../src/Configuration/ExceptionsOption.php | 37 + .../src/Configuration/OptionInterface.php | 40 + user/token_data/src/Configuration/Options.php | 122 + .../src/Configuration/OptionsInterface.php | 70 + .../src/Configuration/PrefixOption.php | 44 + .../src/Configuration/ProfileOption.php | 69 + .../src/Configuration/ReplicationOption.php | 75 + .../src/Connection/AbstractConnection.php | 226 + .../Connection/Aggregate/ClusterInterface.php | 24 + .../Aggregate/MasterSlaveReplication.php | 509 ++ .../Connection/Aggregate/PredisCluster.php | 235 + .../src/Connection/Aggregate/RedisCluster.php | 673 ++ .../Aggregate/ReplicationInterface.php | 52 + .../Aggregate/SentinelReplication.php | 722 ++ .../AggregateConnectionInterface.php | 57 + .../CompositeConnectionInterface.php | 49 + .../Connection/CompositeStreamConnection.php | 125 + .../src/Connection/ConnectionException.php | 23 + .../src/Connection/ConnectionInterface.php | 66 + user/token_data/src/Connection/Factory.php | 188 + .../src/Connection/FactoryInterface.php | 52 + .../Connection/NodeConnectionInterface.php | 58 + user/token_data/src/Connection/Parameters.php | 176 + .../src/Connection/ParametersInterface.php | 62 + .../Connection/PhpiredisSocketConnection.php | 418 ++ .../Connection/PhpiredisStreamConnection.php | 238 + .../src/Connection/StreamConnection.php | 396 + .../src/Connection/WebdisConnection.php | 366 + user/token_data/src/Monitor/Consumer.php | 173 + user/token_data/src/NotSupportedException.php | 22 + user/token_data/src/Pipeline/Atomic.php | 119 + .../src/Pipeline/ConnectionErrorProof.php | 130 + .../token_data/src/Pipeline/FireAndForget.php | 36 + user/token_data/src/Pipeline/Pipeline.php | 247 + user/token_data/src/PredisException.php | 21 + user/token_data/src/Profile/Factory.php | 101 + .../src/Profile/ProfileInterface.php | 59 + user/token_data/src/Profile/RedisProfile.php | 146 + user/token_data/src/Profile/RedisUnstable.php | 38 + .../src/Profile/RedisVersion200.php | 173 + .../src/Profile/RedisVersion220.php | 202 + .../src/Profile/RedisVersion240.php | 207 + .../src/Profile/RedisVersion260.php | 235 + .../src/Profile/RedisVersion280.php | 267 + .../src/Profile/RedisVersion300.php | 270 + .../src/Profile/RedisVersion320.php | 281 + .../src/Protocol/ProtocolException.php | 24 + .../Protocol/ProtocolProcessorInterface.php | 41 + .../Protocol/RequestSerializerInterface.php | 31 + .../src/Protocol/ResponseReaderInterface.php | 32 + .../Text/CompositeProtocolProcessor.php | 107 + .../Protocol/Text/Handler/BulkResponse.php | 55 + .../Protocol/Text/Handler/ErrorResponse.php | 34 + .../Protocol/Text/Handler/IntegerResponse.php | 46 + .../Text/Handler/MultiBulkResponse.php | 68 + .../Text/Handler/ResponseHandlerInterface.php | 33 + .../Protocol/Text/Handler/StatusResponse.php | 35 + .../Handler/StreamableMultiBulkResponse.php | 47 + .../src/Protocol/Text/ProtocolProcessor.php | 123 + .../src/Protocol/Text/RequestSerializer.php | 46 + .../src/Protocol/Text/ResponseReader.php | 116 + .../src/PubSub/AbstractConsumer.php | 219 + user/token_data/src/PubSub/Consumer.php | 158 + user/token_data/src/PubSub/DispatcherLoop.php | 170 + .../Replication/MissingMasterException.php | 23 + .../src/Replication/ReplicationStrategy.php | 304 + .../src/Replication/RoleException.php | 24 + user/token_data/src/Response/Error.php | 59 + .../src/Response/ErrorInterface.php | 35 + .../src/Response/Iterator/MultiBulk.php | 77 + .../Response/Iterator/MultiBulkIterator.php | 104 + .../src/Response/Iterator/MultiBulkTuple.php | 90 + .../src/Response/ResponseInterface.php | 21 + .../src/Response/ServerException.php | 44 + user/token_data/src/Response/Status.php | 79 + user/token_data/src/Session/Handler.php | 142 + .../Transaction/AbortedMultiExecException.php | 45 + user/token_data/src/Transaction/MultiExec.php | 461 ++ .../src/Transaction/MultiExecState.php | 166 + user/token_data/submit_known_api_data.txt | 0 user/token_data/temtemp.txt | 1 + .../PHPUnit/ArrayHasSameValuesConstraint.php | 58 + .../tests/PHPUnit/PredisCommandTestCase.php | 131 + .../PHPUnit/PredisConnectionTestCase.php | 624 ++ .../PHPUnit/PredisDistributorTestCase.php | 86 + .../tests/PHPUnit/PredisProfileTestCase.php | 282 + .../tests/PHPUnit/PredisTestCase.php | 340 + .../tests/PHPUnit/RedisCommandConstraint.php | 100 + .../tests/Predis/ClientExceptionTest.php | 43 + user/token_data/tests/Predis/ClientTest.php | 895 +++ .../Distributor/EmptyRingExceptionTest.php | 29 + .../Cluster/Distributor/HashRingTest.php | 210 + .../Cluster/Distributor/KetamaRingTest.php | 211 + .../tests/Predis/Cluster/Hash/CRC16Test.php | 50 + .../Predis/Cluster/PredisStrategyTest.php | 450 ++ .../Predis/Cluster/RedisStrategyTest.php | 460 ++ .../Collection/Iterator/HashKeyTest.php | 524 ++ .../Collection/Iterator/KeyspaceTest.php | 447 ++ .../Collection/Iterator/ListKeyTest.php | 247 + .../Predis/Collection/Iterator/SetKeyTest.php | 447 ++ .../Collection/Iterator/SortedSetKeyTest.php | 518 ++ .../tests/Predis/Command/CommandTest.php | 149 + .../Predis/Command/ConnectionAuthTest.php | 62 + .../Predis/Command/ConnectionEchoTest.php | 74 + .../Predis/Command/ConnectionPingTest.php | 69 + .../Predis/Command/ConnectionQuitTest.php | 70 + .../Predis/Command/ConnectionSelectTest.php | 82 + .../Predis/Command/GeospatialGeoAddTest.php | 106 + .../Predis/Command/GeospatialGeoDistTest.php | 88 + .../Predis/Command/GeospatialGeoHashTest.php | 102 + .../Predis/Command/GeospatialGeoPosTest.php | 112 + .../GeospatialGeoRadiusByMemberTest.php | 168 + .../Command/GeospatialGeoRadiusTest.php | 170 + .../tests/Predis/Command/HashDeleteTest.php | 98 + .../tests/Predis/Command/HashExistsTest.php | 87 + .../tests/Predis/Command/HashGetAllTest.php | 88 + .../Predis/Command/HashGetMultipleTest.php | 104 + .../tests/Predis/Command/HashGetTest.php | 84 + .../Command/HashIncrementByFloatTest.php | 113 + .../Predis/Command/HashIncrementByTest.php | 109 + .../tests/Predis/Command/HashKeysTest.php | 88 + .../tests/Predis/Command/HashLengthTest.php | 83 + .../tests/Predis/Command/HashScanTest.php | 136 + .../Predis/Command/HashSetMultipleTest.php | 110 + .../Predis/Command/HashSetPreserveTest.php | 87 + .../tests/Predis/Command/HashSetTest.php | 86 + .../Predis/Command/HashStringLengthTest.php | 96 + .../tests/Predis/Command/HashValuesTest.php | 88 + .../Predis/Command/HyperLogLogAddTest.php | 90 + .../Predis/Command/HyperLogLogCountTest.php | 106 + .../Predis/Command/HyperLogLogMergeTest.php | 88 + .../tests/Predis/Command/KeyDeleteTest.php | 92 + .../tests/Predis/Command/KeyDumpTest.php | 62 + .../tests/Predis/Command/KeyExistsTest.php | 119 + .../tests/Predis/Command/KeyExpireAtTest.php | 105 + .../tests/Predis/Command/KeyExpireTest.php | 101 + .../tests/Predis/Command/KeyKeysTest.php | 78 + .../tests/Predis/Command/KeyMigrateTest.php | 112 + .../tests/Predis/Command/KeyMoveTest.php | 95 + .../tests/Predis/Command/KeyPersistTest.php | 96 + .../Predis/Command/KeyPreciseExpireAtTest.php | 93 + .../Predis/Command/KeyPreciseExpireTest.php | 119 + .../Command/KeyPreciseTimeToLiveTest.php | 95 + .../tests/Predis/Command/KeyRandomTest.php | 85 + .../Predis/Command/KeyRenamePreserveTest.php | 84 + .../tests/Predis/Command/KeyRenameTest.php | 83 + .../tests/Predis/Command/KeyRestoreTest.php | 57 + .../tests/Predis/Command/KeyScanTest.php | 136 + .../tests/Predis/Command/KeySortTest.php | 245 + .../Predis/Command/KeyTimeToLiveTest.php | 95 + .../tests/Predis/Command/KeyTypeTest.php | 82 + .../tests/Predis/Command/ListIndexTest.php | 99 + .../tests/Predis/Command/ListInsertTest.php | 107 + .../tests/Predis/Command/ListLengthTest.php | 94 + .../Command/ListPopFirstBlockingTest.php | 76 + .../tests/Predis/Command/ListPopFirstTest.php | 94 + .../Command/ListPopLastBlockingTest.php | 76 + .../ListPopLastPushHeadBlockingTest.php | 57 + .../Command/ListPopLastPushHeadTest.php | 128 + .../tests/Predis/Command/ListPopLastTest.php | 94 + .../tests/Predis/Command/ListPushHeadTest.php | 97 + .../Predis/Command/ListPushHeadXTest.php | 95 + .../tests/Predis/Command/ListPushTailTest.php | 97 + .../Predis/Command/ListPushTailXTest.php | 95 + .../tests/Predis/Command/ListRangeTest.php | 138 + .../tests/Predis/Command/ListRemoveTest.php | 122 + .../tests/Predis/Command/ListSetTest.php | 96 + .../tests/Predis/Command/ListTrimTest.php | 128 + .../Processor/KeyPrefixProcessorTest.php | 914 +++ .../Command/Processor/ProcessorChainTest.php | 169 + .../Predis/Command/PubSubPublishTest.php | 71 + .../tests/Predis/Command/PubSubPubsubTest.php | 88 + .../Command/PubSubSubscribeByPatternTest.php | 157 + .../Predis/Command/PubSubSubscribeTest.php | 157 + .../PubSubUnsubscribeByPatternTest.php | 121 + .../Predis/Command/PubSubUnsubscribeTest.php | 125 + .../tests/Predis/Command/RawCommandTest.php | 160 + .../Predis/Command/ScriptCommandTest.php | 156 + .../ServerBackgroundRewriteAOFTest.php | 54 + .../Command/ServerBackgroundSaveTest.php | 54 + .../tests/Predis/Command/ServerClientTest.php | 221 + .../Predis/Command/ServerCommandTest.php | 125 + .../tests/Predis/Command/ServerConfigTest.php | 167 + .../Predis/Command/ServerDatabaseSizeTest.php | 65 + .../Predis/Command/ServerEvalSHATest.php | 107 + .../tests/Predis/Command/ServerEvalTest.php | 102 + .../Predis/Command/ServerFlushAllTest.php | 54 + .../Command/ServerFlushDatabaseTest.php | 67 + .../tests/Predis/Command/ServerInfoTest.php | 287 + .../Predis/Command/ServerInfoV26xTest.php | 313 + .../Predis/Command/ServerLastSaveTest.php | 64 + .../Predis/Command/ServerMonitorTest.php | 72 + .../tests/Predis/Command/ServerObjectTest.php | 113 + .../tests/Predis/Command/ServerSaveTest.php | 54 + .../tests/Predis/Command/ServerScriptTest.php | 107 + .../Predis/Command/ServerSentinelTest.php | 190 + .../Predis/Command/ServerShutdownTest.php | 46 + .../Predis/Command/ServerSlaveOfTest.php | 85 + .../Predis/Command/ServerSlowlogTest.php | 118 + .../tests/Predis/Command/ServerTimeTest.php | 72 + .../tests/Predis/Command/SetAddTest.php | 96 + .../Predis/Command/SetCardinalityTest.php | 92 + .../Predis/Command/SetDifferenceStoreTest.php | 115 + .../Predis/Command/SetDifferenceTest.php | 117 + .../Command/SetIntersectionStoreTest.php | 128 + .../Predis/Command/SetIntersectionTest.php | 128 + .../tests/Predis/Command/SetIsMemberTest.php | 96 + .../tests/Predis/Command/SetMembersTest.php | 88 + .../tests/Predis/Command/SetMoveTest.php | 104 + .../tests/Predis/Command/SetPopTest.php | 101 + .../Predis/Command/SetRandomMemberTest.php | 93 + .../tests/Predis/Command/SetRemoveTest.php | 100 + .../tests/Predis/Command/SetScanTest.php | 131 + .../Predis/Command/SetUnionStoreTest.php | 115 + .../tests/Predis/Command/SetUnionTest.php | 117 + .../tests/Predis/Command/StringAppendTest.php | 95 + .../Predis/Command/StringBitCountTest.php | 92 + .../Predis/Command/StringBitFieldTest.php | 155 + .../tests/Predis/Command/StringBitOpTest.php | 177 + .../tests/Predis/Command/StringBitPosTest.php | 93 + .../Predis/Command/StringDecrementByTest.php | 120 + .../Predis/Command/StringDecrementTest.php | 107 + .../tests/Predis/Command/StringGetBitTest.php | 113 + .../Predis/Command/StringGetMultipleTest.php | 110 + .../Predis/Command/StringGetRangeTest.php | 98 + .../tests/Predis/Command/StringGetSetTest.php | 84 + .../tests/Predis/Command/StringGetTest.php | 105 + .../Command/StringIncrementByFloatTest.php | 122 + .../Predis/Command/StringIncrementByTest.php | 120 + .../Predis/Command/StringIncrementTest.php | 94 + .../Command/StringPreciseSetExpireTest.php | 113 + .../tests/Predis/Command/StringSetBitTest.php | 129 + .../Predis/Command/StringSetExpireTest.php | 114 + .../Command/StringSetMultiplePreserveTest.php | 98 + .../Predis/Command/StringSetMultipleTest.php | 83 + .../Predis/Command/StringSetPreserveTest.php | 70 + .../Predis/Command/StringSetRangeTest.php | 123 + .../tests/Predis/Command/StringSetTest.php | 136 + .../tests/Predis/Command/StringStrlenTest.php | 94 + .../tests/Predis/Command/StringSubstrTest.php | 61 + .../Predis/Command/TransactionDiscardTest.php | 80 + .../Predis/Command/TransactionExecTest.php | 112 + .../Predis/Command/TransactionMultiTest.php | 91 + .../Predis/Command/TransactionUnwatchTest.php | 84 + .../Predis/Command/TransactionWatchTest.php | 118 + .../tests/Predis/Command/ZSetAddTest.php | 198 + .../Predis/Command/ZSetCardinalityTest.php | 83 + .../tests/Predis/Command/ZSetCountTest.php | 116 + .../Predis/Command/ZSetIncrementByTest.php | 83 + .../Command/ZSetIntersectionStoreTest.php | 169 + .../tests/Predis/Command/ZSetLexCountTest.php | 131 + .../Predis/Command/ZSetRangeByLexTest.php | 194 + .../Predis/Command/ZSetRangeByScoreTest.php | 227 + .../tests/Predis/Command/ZSetRangeTest.php | 155 + .../tests/Predis/Command/ZSetRankTest.php | 86 + .../Command/ZSetRemoveRangeByLexTest.php | 143 + .../Command/ZSetRemoveRangeByRankTest.php | 98 + .../Command/ZSetRemoveRangeByScoreTest.php | 98 + .../tests/Predis/Command/ZSetRemoveTest.php | 85 + .../Command/ZSetReverseRangeByLexTest.php | 194 + .../Command/ZSetReverseRangeByScoreTest.php | 227 + .../Predis/Command/ZSetReverseRangeTest.php | 155 + .../Predis/Command/ZSetReverseRankTest.php | 86 + .../tests/Predis/Command/ZSetScanTest.php | 136 + .../tests/Predis/Command/ZSetScoreTest.php | 86 + .../Predis/Command/ZSetUnionStoreTest.php | 187 + .../Predis/CommunicationExceptionTest.php | 118 + .../Configuration/ClusterOptionTest.php | 90 + .../ConnectionFactoryOptionTest.php | 108 + .../Configuration/ExceptionsOptionTest.php | 66 + .../Predis/Configuration/OptionsTest.php | 199 + .../Predis/Configuration/PrefixOptionTest.php | 60 + .../Configuration/ProfileOptionTest.php | 162 + .../Configuration/ReplicationOptionTest.php | 95 + .../Aggregate/MasterSlaveReplicationTest.php | 1173 +++ .../Aggregate/PredisClusterTest.php | 399 + .../Connection/Aggregate/RedisClusterTest.php | 1160 +++ .../Aggregate/SentinelReplicationTest.php | 1260 ++++ .../CompositeStreamConnectionTest.php | 142 + .../Connection/ConnectionExceptionTest.php | 30 + .../tests/Predis/Connection/FactoryTest.php | 490 ++ .../Predis/Connection/ParametersTest.php | 361 + .../PhpiredisSocketConnectionTest.php | 105 + .../PhpiredisStreamConnectionTest.php | 183 + .../Connection/StreamConnectionTest.php | 125 + .../Connection/WebdisConnectionTest.php | 220 + .../tests/Predis/Monitor/ConsumerTest.php | 199 + .../tests/Predis/Pipeline/AtomicTest.php | 163 + .../Predis/Pipeline/FireAndForgetTest.php | 62 + .../tests/Predis/Pipeline/PipelineTest.php | 516 ++ .../tests/Predis/PredisExceptionTest.php | 33 + .../tests/Predis/Profile/FactoryTest.php | 95 + .../Predis/Profile/RedisUnstableTest.php | 202 + .../Predis/Profile/RedisVersion200Test.php | 148 + .../Predis/Profile/RedisVersion220Test.php | 163 + .../Predis/Profile/RedisVersion240Test.php | 164 + .../Predis/Profile/RedisVersion260Test.php | 180 + .../Predis/Profile/RedisVersion280Test.php | 194 + .../Predis/Profile/RedisVersion300Test.php | 194 + .../Predis/Profile/RedisVersion320Test.php | 202 + .../Predis/Protocol/ProtocolExceptionTest.php | 31 + .../Text/CompositeProtocolProcessorTest.php | 118 + .../Text/Handler/BulkResponseTest.php | 91 + .../Text/Handler/ErrorResponseTest.php | 39 + .../Text/Handler/IntegerResponseTest.php | 70 + .../Text/Handler/MultiBulkResponseTest.php | 84 + .../Text/Handler/StatusResponseTest.php | 74 + .../StreamableMultiBulkResponseTest.php | 52 + .../Protocol/Text/ProtocolProcessorTest.php | 118 + .../Protocol/Text/RequestSerializerTest.php | 86 + .../Protocol/Text/ResponseReaderTest.php | 123 + .../tests/Predis/PubSub/ConsumerTest.php | 411 + .../Predis/PubSub/DispatcherLoopTest.php | 128 + .../Replication/ReplicationStrategyTest.php | 513 ++ .../tests/Predis/Response/ErrorTest.php | 63 + .../Response/Iterator/MultiBulkTest.php | 122 + .../Response/Iterator/MultiBulkTupleTest.php | 122 + .../Predis/Response/ServerExceptionTest.php | 69 + .../tests/Predis/Response/StatusTest.php | 72 + .../AbortedMultiExecExceptionTest.php | 35 + .../Predis/Transaction/MultiExecStateTest.php | 202 + .../Predis/Transaction/MultiExecTest.php | 949 +++ user/token_data/tests/README.md | 82 + user/token_data/tests/bootstrap.php | 26 + user/token_data/validation.inc | 26 + user/token_data/web_runner.py | 41 + user/top_hosts.php | 98 + user/top_teams.php | 125 + user/top_users.php | 132 + user/translate.php | 50 + user/tree_threader.php | 189 + user/uotd.php | 43 + user/uotd_gadget.php | 40 + user/user_permissions.php | 115 + user/user_search.php | 156 + user/userw.php | 66 + user/validate_email_addr.php | 68 + user/view_profile.php | 75 + user/weak_auth.php | 86 + user/white.css | 219 + user/workunit.php | 106 + user_profile/.user_gallery_1.html.swp | Bin 0 -> 16384 bytes user_profile/profile_alpha.html | 1 + user_profile/profile_country.html | 119 + user_profile/user_gallery_1.html | 121 + 1254 files changed, 354071 insertions(+) create mode 100755 cache/76/get_project_config.php_project_config_platform_xml create mode 100755 cache/7f/top_teams.php_sort_by%3Dexpavg_credit%26offset%3D0 create mode 100755 cache/e6/top_users.php_sort_by%3Dexpavg_credit%26offset%3D0 create mode 100755 cache/f2/server_status.php_job_status create mode 100755 ddownloadxml/config.xml create mode 100755 ddownloadxml/db_dump_spec.xml create mode 100755 ddownloadxml/ddownloadxml.tar.gz create mode 100755 ddownloadxml/gui_urls.xml create mode 100755 ddownloadxml/plan_class_spec.xml create mode 100755 ddownloadxml/project.xml create mode 100755 ddownloadxml/run_state_boincserver.xml create mode 100755 inc/GeoIP.dat create mode 100755 inc/ReCaptcha/ReCaptcha.php create mode 100755 inc/ReCaptcha/RequestMethod.php create mode 100755 inc/ReCaptcha/RequestMethod/Curl.php create mode 100755 inc/ReCaptcha/RequestMethod/CurlPost.php create mode 100755 inc/ReCaptcha/RequestMethod/Post.php create mode 100755 inc/ReCaptcha/RequestMethod/Socket.php create mode 100755 inc/ReCaptcha/RequestMethod/SocketPost.php create mode 100755 inc/ReCaptcha/RequestParameters.php create mode 100755 inc/ReCaptcha/Response.php create mode 100755 inc/account.inc create mode 100755 inc/akismet.inc create mode 100755 inc/bbcode_convert.inc create mode 100755 inc/bbcode_html.inc create mode 100755 inc/boinc_db.inc create mode 100755 inc/bolt.inc create mode 100755 inc/bolt_cat.inc create mode 100755 inc/bolt_db.inc create mode 100755 inc/bolt_ex.inc create mode 100755 inc/bolt_rnd.inc create mode 100755 inc/bolt_sched.inc create mode 100755 inc/bolt_select.inc create mode 100755 inc/bolt_seq.inc create mode 100755 inc/bolt_snap.inc create mode 100755 inc/bolt_util.inc create mode 100755 inc/bolt_util_ops.inc create mode 100755 inc/bolt_xset.inc create mode 100755 inc/bootstrap.inc create mode 100755 inc/bossa.inc create mode 100755 inc/bossa_db.inc create mode 100755 inc/bossa_example.inc create mode 100755 inc/bossa_example2.inc create mode 100755 inc/bossa_example3.inc create mode 100755 inc/bossa_example4.inc create mode 100755 inc/bossa_impl.inc create mode 100755 inc/cache.inc create mode 100755 inc/cert.inc create mode 100755 inc/common_defs.inc create mode 100755 inc/config.xml create mode 100755 inc/countries.inc create mode 100755 inc/credit.inc create mode 100755 inc/db.inc create mode 100755 inc/db_conn.inc create mode 100755 inc/db_dump_spec.xml create mode 100755 inc/db_ops.inc create mode 100755 inc/ddownloadxml.tar.gz create mode 100755 inc/dir_hier.inc create mode 100755 inc/email.inc create mode 100755 inc/forum.inc create mode 100755 inc/forum_banishment_vote.inc create mode 100755 inc/forum_db.inc create mode 100755 inc/forum_email.inc create mode 100755 inc/forum_rss.inc create mode 100755 inc/friend.inc create mode 100755 inc/geoip.inc create mode 100755 inc/gui_urls.xml create mode 100755 inc/host.inc create mode 100755 inc/htmLawed.php create mode 100755 inc/image.inc create mode 100755 inc/keywords.inc create mode 100755 inc/language_names.inc create mode 100755 inc/ldap.inc create mode 100755 inc/news.inc create mode 100755 inc/notify.inc create mode 100755 inc/page_translate.inc create mode 100755 inc/phpmailer/.gitignore create mode 100755 inc/phpmailer/.scrutinizer.yml create mode 100755 inc/phpmailer/.travis.yml create mode 100755 inc/phpmailer/LICENSE create mode 100755 inc/phpmailer/PHPMailerAutoload.php create mode 100755 inc/phpmailer/README.md create mode 100755 inc/phpmailer/VERSION create mode 100755 inc/phpmailer/changelog.md create mode 100755 inc/phpmailer/class.phpmailer.php create mode 100755 inc/phpmailer/class.phpmaileroauth.php create mode 100755 inc/phpmailer/class.phpmaileroauthgoogle.php create mode 100755 inc/phpmailer/class.pop3.php create mode 100755 inc/phpmailer/class.smtp.php create mode 100755 inc/phpmailer/composer.json create mode 100755 inc/phpmailer/composer.lock create mode 100755 inc/phpmailer/docs/Callback_function_notes.txt create mode 100755 inc/phpmailer/docs/DomainKeys_notes.txt create mode 100755 inc/phpmailer/docs/Note_for_SMTP_debugging.txt create mode 100755 inc/phpmailer/docs/extending.html create mode 100755 inc/phpmailer/docs/faq.html create mode 100755 inc/phpmailer/docs/generatedocs.sh create mode 100755 inc/phpmailer/docs/pop3_article.txt create mode 100755 inc/phpmailer/examples/code_generator.phps create mode 100755 inc/phpmailer/examples/contents.html create mode 100755 inc/phpmailer/examples/contentsutf8.html create mode 100755 inc/phpmailer/examples/exceptions.phps create mode 100755 inc/phpmailer/examples/gmail.phps create mode 100755 inc/phpmailer/examples/gmail_xoauth.phps create mode 100755 inc/phpmailer/examples/images/phpmailer.png create mode 100755 inc/phpmailer/examples/images/phpmailer_mini.png create mode 100755 inc/phpmailer/examples/index.html create mode 100755 inc/phpmailer/examples/mail.phps create mode 100755 inc/phpmailer/examples/mailing_list.phps create mode 100755 inc/phpmailer/examples/pop_before_smtp.phps create mode 100755 inc/phpmailer/examples/scripts/XRegExp.js create mode 100755 inc/phpmailer/examples/scripts/shAutoloader.js create mode 100755 inc/phpmailer/examples/scripts/shBrushPhp.js create mode 100755 inc/phpmailer/examples/scripts/shCore.js create mode 100755 inc/phpmailer/examples/scripts/shLegacy.js create mode 100755 inc/phpmailer/examples/send_file_upload.phps create mode 100755 inc/phpmailer/examples/sendmail.phps create mode 100755 inc/phpmailer/examples/signed-mail.phps create mode 100755 inc/phpmailer/examples/smtp.phps create mode 100755 inc/phpmailer/examples/smtp_check.phps create mode 100755 inc/phpmailer/examples/smtp_no_auth.phps create mode 100755 inc/phpmailer/examples/ssl_options.phps create mode 100755 inc/phpmailer/examples/styles/shCore.css create mode 100755 inc/phpmailer/examples/styles/shCoreDefault.css create mode 100755 inc/phpmailer/examples/styles/shCoreDjango.css create mode 100755 inc/phpmailer/examples/styles/shCoreEclipse.css create mode 100755 inc/phpmailer/examples/styles/shCoreEmacs.css create mode 100755 inc/phpmailer/examples/styles/shCoreFadeToGrey.css create mode 100755 inc/phpmailer/examples/styles/shCoreMDUltra.css create mode 100755 inc/phpmailer/examples/styles/shCoreMidnight.css create mode 100755 inc/phpmailer/examples/styles/shCoreRDark.css create mode 100755 inc/phpmailer/examples/styles/shThemeAppleScript.css create mode 100755 inc/phpmailer/examples/styles/shThemeDefault.css create mode 100755 inc/phpmailer/examples/styles/shThemeDjango.css create mode 100755 inc/phpmailer/examples/styles/shThemeEclipse.css create mode 100755 inc/phpmailer/examples/styles/shThemeEmacs.css create mode 100755 inc/phpmailer/examples/styles/shThemeFadeToGrey.css create mode 100755 inc/phpmailer/examples/styles/shThemeMDUltra.css create mode 100755 inc/phpmailer/examples/styles/shThemeMidnight.css create mode 100755 inc/phpmailer/examples/styles/shThemeRDark.css create mode 100755 inc/phpmailer/examples/styles/shThemeVisualStudio.css create mode 100755 inc/phpmailer/examples/styles/wrapping.png create mode 100755 inc/phpmailer/extras/EasyPeasyICS.php create mode 100755 inc/phpmailer/extras/README.md create mode 100755 inc/phpmailer/extras/htmlfilter.php create mode 100755 inc/phpmailer/extras/ntlm_sasl_client.php create mode 100755 inc/phpmailer/get_oauth_token.php create mode 100755 inc/phpmailer/language/phpmailer.lang-am.php create mode 100755 inc/phpmailer/language/phpmailer.lang-ar.php create mode 100755 inc/phpmailer/language/phpmailer.lang-az.php create mode 100755 inc/phpmailer/language/phpmailer.lang-be.php create mode 100755 inc/phpmailer/language/phpmailer.lang-bg.php create mode 100755 inc/phpmailer/language/phpmailer.lang-br.php create mode 100755 inc/phpmailer/language/phpmailer.lang-ca.php create mode 100755 inc/phpmailer/language/phpmailer.lang-ch.php create mode 100755 inc/phpmailer/language/phpmailer.lang-cz.php create mode 100755 inc/phpmailer/language/phpmailer.lang-de.php create mode 100755 inc/phpmailer/language/phpmailer.lang-dk.php create mode 100755 inc/phpmailer/language/phpmailer.lang-el.php create mode 100755 inc/phpmailer/language/phpmailer.lang-eo.php create mode 100755 inc/phpmailer/language/phpmailer.lang-es.php create mode 100755 inc/phpmailer/language/phpmailer.lang-et.php create mode 100755 inc/phpmailer/language/phpmailer.lang-fa.php create mode 100755 inc/phpmailer/language/phpmailer.lang-fi.php create mode 100755 inc/phpmailer/language/phpmailer.lang-fo.php create mode 100755 inc/phpmailer/language/phpmailer.lang-fr.php create mode 100755 inc/phpmailer/language/phpmailer.lang-gl.php create mode 100755 inc/phpmailer/language/phpmailer.lang-he.php create mode 100755 inc/phpmailer/language/phpmailer.lang-hr.php create mode 100755 inc/phpmailer/language/phpmailer.lang-hu.php create mode 100755 inc/phpmailer/language/phpmailer.lang-id.php create mode 100755 inc/phpmailer/language/phpmailer.lang-it.php create mode 100755 inc/phpmailer/language/phpmailer.lang-ja.php create mode 100755 inc/phpmailer/language/phpmailer.lang-ka.php create mode 100755 inc/phpmailer/language/phpmailer.lang-ko.php create mode 100755 inc/phpmailer/language/phpmailer.lang-lt.php create mode 100755 inc/phpmailer/language/phpmailer.lang-lv.php create mode 100755 inc/phpmailer/language/phpmailer.lang-ms.php create mode 100755 inc/phpmailer/language/phpmailer.lang-nl.php create mode 100755 inc/phpmailer/language/phpmailer.lang-no.php create mode 100755 inc/phpmailer/language/phpmailer.lang-pl.php create mode 100755 inc/phpmailer/language/phpmailer.lang-pt.php create mode 100755 inc/phpmailer/language/phpmailer.lang-ro.php create mode 100755 inc/phpmailer/language/phpmailer.lang-ru.php create mode 100755 inc/phpmailer/language/phpmailer.lang-se.php create mode 100755 inc/phpmailer/language/phpmailer.lang-si.php create mode 100755 inc/phpmailer/language/phpmailer.lang-sk.php create mode 100755 inc/phpmailer/language/phpmailer.lang-sl.php create mode 100755 inc/phpmailer/language/phpmailer.lang-sr.php create mode 100755 inc/phpmailer/language/phpmailer.lang-tr.php create mode 100755 inc/phpmailer/language/phpmailer.lang-uk.php create mode 100755 inc/phpmailer/language/phpmailer.lang-vi.php create mode 100755 inc/phpmailer/language/phpmailer.lang-zh.php create mode 100755 inc/phpmailer/language/phpmailer.lang-zh_cn.php create mode 100755 inc/phpmailer/test/bootstrap.php create mode 100755 inc/phpmailer/test/fakepopserver.sh create mode 100755 inc/phpmailer/test/fakesendmail.sh create mode 100755 inc/phpmailer/test/phpmailerLangTest.php create mode 100755 inc/phpmailer/test/phpmailerTest.php create mode 100755 inc/phpmailer/test/runfakepopserver.sh create mode 100755 inc/phpmailer/test/test_callback.php create mode 100755 inc/phpmailer/test/testbootstrap-dist.php create mode 100755 inc/phpmailer/travis.phpunit.xml.dist create mode 100755 inc/plan_class_spec.xml create mode 100755 inc/pm.inc create mode 100755 inc/prefs.inc create mode 100755 inc/prefs_project.inc create mode 100755 inc/prefs_util.inc create mode 100755 inc/profile.inc create mode 100755 inc/project.xml create mode 100755 inc/recaptcha_loader.php create mode 100755 inc/recaptchalib.php create mode 100755 inc/result.inc create mode 100755 inc/run_state_boincserver.xml create mode 100755 inc/sandbox.inc create mode 100755 inc/sanitize_html.inc create mode 100755 inc/stats_sites.inc create mode 100755 inc/submit.inc create mode 100755 inc/submit_db.inc create mode 100755 inc/submit_util.inc create mode 100755 inc/team.inc create mode 100755 inc/team_types.inc create mode 100755 inc/text_transform.inc create mode 100755 inc/time.inc create mode 100755 inc/translation.inc create mode 100644 inc/untitled text 6.html create mode 100755 inc/uotd.inc create mode 100755 inc/user.inc create mode 100755 inc/user_gallery_1_edit.html create mode 100755 inc/user_util.inc create mode 100755 inc/util.inc create mode 100755 inc/util_basic.inc create mode 100755 inc/util_ops.inc create mode 100755 inc/wap.inc create mode 100755 inc/web_rpc_api.inc create mode 100755 inc/xml.inc create mode 100755 languages/compiled/az.po.inc create mode 100755 languages/compiled/ca.po.inc create mode 100755 languages/compiled/cs.po.inc create mode 100755 languages/compiled/de.po.inc create mode 100755 languages/compiled/es.po.inc create mode 100755 languages/compiled/fi.po.inc create mode 100755 languages/compiled/fr.po.inc create mode 100755 languages/compiled/he.po.inc create mode 100755 languages/compiled/hu.po.inc create mode 100755 languages/compiled/it_IT.po.inc create mode 100755 languages/compiled/ja.po.inc create mode 100755 languages/compiled/ko.po.inc create mode 100755 languages/compiled/nb.po.inc create mode 100755 languages/compiled/nl.po.inc create mode 100755 languages/compiled/pl.po.inc create mode 100755 languages/compiled/pt_BR.po.inc create mode 100755 languages/compiled/pt_PT.po.inc create mode 100755 languages/compiled/ru.po.inc create mode 100755 languages/compiled/sk.po.inc create mode 100755 languages/compiled/sv.po.inc create mode 100755 languages/compiled/tr.po.inc create mode 100755 languages/compiled/uk.po.inc create mode 100755 languages/compiled/zh_CN.po.inc create mode 100755 languages/compiled/zh_TW.po.inc create mode 100755 languages/translations/az.po create mode 100755 languages/translations/ca.po create mode 100755 languages/translations/cs.po create mode 100755 languages/translations/de.po create mode 100755 languages/translations/es.po create mode 100755 languages/translations/fi.po create mode 100755 languages/translations/fr.po create mode 100755 languages/translations/he.po create mode 100755 languages/translations/hu.po create mode 100755 languages/translations/it_IT.po create mode 100755 languages/translations/ja.po create mode 100755 languages/translations/ko.po create mode 100755 languages/translations/nb.po create mode 100755 languages/translations/nl.po create mode 100755 languages/translations/pl.po create mode 100755 languages/translations/pt_BR.po create mode 100755 languages/translations/pt_PT.po create mode 100755 languages/translations/ru.po create mode 100755 languages/translations/sk.po create mode 100755 languages/translations/sv.po create mode 100755 languages/translations/tr.po create mode 100755 languages/translations/uk.po create mode 100755 languages/translations/zh_CN.po create mode 100755 languages/translations/zh_TW.po create mode 100755 ops/.htaccess create mode 100755 ops/.htpasswd create mode 100755 ops/add_user.php create mode 100755 ops/analyze_coproc_log.php create mode 100755 ops/app_details.php create mode 100755 ops/app_reset.php create mode 100755 ops/app_select_edit.php create mode 100755 ops/assign.php create mode 100755 ops/autolock.php create mode 100755 ops/badge_admin.php create mode 100755 ops/badge_assign.php create mode 100755 ops/badge_assign_custom.php create mode 100755 ops/bbcode_convert.php create mode 100755 ops/bbcode_convert_response1.php create mode 100755 ops/bbcode_convert_response2.php create mode 100755 ops/bbcode_convert_signature.php create mode 100755 ops/block_host.php create mode 100755 ops/bolt_admin.php create mode 100755 ops/bolt_compare.php create mode 100755 ops/bolt_datagen.php create mode 100755 ops/bolt_map.php create mode 100755 ops/bolt_refresh.php create mode 100755 ops/bolt_setup_sample.php create mode 100755 ops/bossa_admin.php create mode 100755 ops/bossa_example4_make_jobs.php create mode 100755 ops/bossa_example_make_files.php create mode 100755 ops/bossa_example_make_jobs.php create mode 100755 ops/bossa_transitioner.php create mode 100755 ops/build_po.php create mode 100755 ops/cancel_workunits.php create mode 100755 ops/cancel_workunits_action.php create mode 100755 ops/cancel_wu_action.php create mode 100755 ops/cancel_wu_form.php create mode 100755 ops/cancel_wus.php create mode 100755 ops/clean_cache.php create mode 100755 ops/clean_user_names.php create mode 100755 ops/clear_host.php create mode 100755 ops/create_forums.php create mode 100755 ops/credit.php create mode 100755 ops/credit_study.php create mode 100755 ops/credit_test.php create mode 100755 ops/db_action.php create mode 100755 ops/db_cleanse.php create mode 100755 ops/db_form.php create mode 100755 ops/db_schemaversion.php create mode 100755 ops/db_update.php create mode 100755 ops/dbinfo.php create mode 100755 ops/decay_credit_by_app.php create mode 100755 ops/delete_orphan_results.php create mode 100755 ops/delete_spammers.php create mode 100755 ops/eah_server_status.php create mode 100755 ops/error_summary.php create mode 100755 ops/errorwus.php create mode 100755 ops/export_credit_by_app.php create mode 100755 ops/failure_result_summary_by_host.php create mode 100755 ops/failure_result_summary_by_platform.php create mode 100755 ops/ffmail/sample_html create mode 100755 ops/ffmail/sample_subject create mode 100755 ops/ffmail/sample_text create mode 100755 ops/fix_blank_user_names.php create mode 100755 ops/fix_prefs.php create mode 100755 ops/forum_repair.php create mode 100755 ops/get_versions.php create mode 100755 ops/grant_credit.php create mode 100755 ops/host_update_credit.php create mode 100755 ops/hrclass_summary.php create mode 100755 ops/index.php create mode 100755 ops/job_times.php create mode 100755 ops/list_new_users.php create mode 100755 ops/login_action.php create mode 100755 ops/login_form.php create mode 100755 ops/logout.php create mode 100755 ops/main.css create mode 100755 ops/make_emails_lowercase.php create mode 100755 ops/make_puser.php create mode 100755 ops/manage_app_versions.php create mode 100755 ops/manage_apps.php create mode 100755 ops/manage_special_users.php create mode 100755 ops/manage_special_users_action.php create mode 100755 ops/manage_user.php create mode 100755 ops/mass_email.php create mode 100755 ops/mass_email/sample_current_html create mode 100755 ops/mass_email/sample_current_subject create mode 100755 ops/mass_email/sample_current_text create mode 100755 ops/mass_email/sample_failed_html create mode 100755 ops/mass_email/sample_failed_subject create mode 100755 ops/mass_email/sample_failed_text create mode 100755 ops/mass_email/sample_lapsed_html create mode 100755 ops/mass_email/sample_lapsed_subject create mode 100755 ops/mass_email/sample_lapsed_text create mode 100755 ops/mass_email_script.php create mode 100755 ops/news_convert.php create mode 100755 ops/notify.php create mode 100755 ops/nvidia.php create mode 100755 ops/opsw.php create mode 100755 ops/pass_percentage_by_appversion.php create mode 100755 ops/pass_percentage_by_platform.php create mode 100755 ops/problem_host.php create mode 100755 ops/profile_screen_action.php create mode 100755 ops/profile_screen_form.php create mode 100755 ops/purge_profile.php create mode 100755 ops/purge_trickles.php create mode 100755 ops/remind.php create mode 100755 ops/remind_email/sample_failed_html create mode 100755 ops/remind_email/sample_failed_subject create mode 100755 ops/remind_email/sample_failed_text create mode 100755 ops/remind_email/sample_lapsed_html create mode 100755 ops/remind_email/sample_lapsed_subject create mode 100755 ops/remind_email/sample_lapsed_text create mode 100755 ops/remote_server_status.php create mode 100755 ops/remove_zombie_hosts.php create mode 100755 ops/repair_21812.php create mode 100755 ops/repair_forums.php create mode 100755 ops/repair_profile_pictures.php create mode 100755 ops/repair_validator_problem.php create mode 100755 ops/reset_hrclass.php create mode 100755 ops/result_summary.php create mode 100755 ops/revalidate.php create mode 100755 ops/sample_table_stats.php create mode 100755 ops/show_log.php create mode 100755 ops/single_job_setup.php create mode 100755 ops/size_census.php create mode 100755 ops/submit_init_priority.php create mode 100755 ops/survey_get_addrs.php create mode 100755 ops/team_export.php create mode 100755 ops/team_import.php create mode 100755 ops/test_job_file.php create mode 100755 ops/transition_all.php create mode 100755 ops/update_forum_activities.php create mode 100755 ops/update_profile_pages.php create mode 100755 ops/update_translations.php create mode 100755 ops/update_uotd.php create mode 100755 ops/upgrade_db.php create mode 100755 ops/user_graph.php create mode 100755 ops/watchdogs.php create mode 100755 ops/wd_nresults_changing.php create mode 100755 ops/white.css create mode 100644 project/Wikimediacommonscoyotestare.jpg create mode 100755 project/cache_parameters.inc create mode 100755 project/project.inc create mode 100755 project/project_specific_prefs.inc create mode 100644 user/Edits/bootstrap(background).min.css create mode 100644 user/Edits/bootstrap(better).min.css create mode 100644 user/Edits/bootstrap.min.css create mode 100755 user/Example_multi_submit.txt create mode 100755 user/README.md create mode 100755 user/README_MIDAS_example_c++.txt create mode 100755 user/README_MIDAS_example_python.txt create mode 100755 user/README_MIDAS_setup.md create mode 100755 user/account_finish.php create mode 100755 user/account_finish_action.php create mode 100755 user/add_venue.php create mode 100755 user/all_news.php create mode 100755 user/am_get_info.php create mode 100755 user/am_set_host_info.php create mode 100755 user/am_set_info.php create mode 100755 user/android_tasks.php create mode 100755 user/app_versions.php create mode 100755 user/apps.php create mode 100755 user/bbcode.php create mode 100755 user/bbcode_toolbar.js create mode 100755 user/black.css create mode 100755 user/bolt.css create mode 100755 user/bolt.php create mode 100755 user/bolt_admin.css create mode 100755 user/bolt_course.php create mode 100755 user/bolt_course_sample.php create mode 100755 user/bolt_sched.php create mode 100755 user/bootstrap.min.css create mode 100755 user/bootstrap.min.js create mode 100755 user/bossa_apps.php create mode 100755 user/bossa_example4.php create mode 100755 user/bossa_get_job.php create mode 100755 user/bossa_job_finished.php create mode 100755 user/brand_stats.php create mode 100755 user/cert1.php create mode 100755 user/cert_all.php create mode 100755 user/cert_team.php create mode 100755 user/cpu_list.php create mode 100755 user/create_account.php create mode 100755 user/create_account_action.php create mode 100755 user/create_account_form.php create mode 100755 user/create_profile.php create mode 100755 user/create_team.php create mode 100755 user/currency.js create mode 100755 user/custom.css create mode 100755 user/custom_dark.css create mode 100755 user/delete_account.php create mode 100755 user/delete_profile.php create mode 100755 user/donate.php create mode 100755 user/donated.php create mode 100755 user/donation_ipn.php create mode 100755 user/donations.php create mode 100755 user/download.php create mode 100755 user/download_network.php create mode 100755 user/edit_email_action.php create mode 100755 user/edit_email_form.php create mode 100755 user/edit_forum_preferences_action.php create mode 100755 user/edit_forum_preferences_form.php create mode 100755 user/edit_passwd_action.php create mode 100755 user/edit_passwd_form.php create mode 100755 user/edit_user_info_action.php create mode 100755 user/edit_user_info_form.php create mode 100755 user/explain_state.php create mode 100755 user/ffmail_action.php create mode 100755 user/ffmail_form.php create mode 100755 user/forum_banishment_vote.php create mode 100755 user/forum_banishment_vote_action.php create mode 100755 user/forum_edit.php create mode 100755 user/forum_forum.php create mode 100755 user/forum_get_data.php create mode 100755 user/forum_help_desk.php create mode 100755 user/forum_index.php create mode 100755 user/forum_moderate_post.php create mode 100755 user/forum_moderate_post_action.php create mode 100755 user/forum_moderate_thread.php create mode 100755 user/forum_moderate_thread_action.php create mode 100755 user/forum_post.php create mode 100755 user/forum_rate.php create mode 100755 user/forum_reply.php create mode 100755 user/forum_report_post.php create mode 100755 user/forum_rss.php create mode 100755 user/forum_search.php create mode 100755 user/forum_search_action.php create mode 100755 user/forum_subscribe.php create mode 100755 user/forum_thread.php create mode 100755 user/forum_thread_status.php create mode 100755 user/forum_thread_vote.php create mode 100755 user/forum_user_posts.php create mode 100755 user/friend.php create mode 100755 user/get_output.php create mode 100755 user/get_passwd.php create mode 100755 user/get_project_config.php create mode 100755 user/gpu_list.php create mode 100755 user/gpu_ratios.php create mode 100755 user/home.php create mode 100644 user/homepage.php create mode 100755 user/host_app_versions.php create mode 100755 user/host_delete.php create mode 100755 user/host_edit_action.php create mode 100755 user/host_edit_form.php create mode 100755 user/host_update_credit.php create mode 100755 user/host_venue_action.php create mode 100755 user/hosts_user.php create mode 100755 user/html.php create mode 100755 user/img/75pct_white.png create mode 100755 user/img/blue_gradient.png create mode 100755 user/img/boinc_fade_600.png create mode 100755 user/img/boinc_logo_trans.gif create mode 100755 user/img/boincstats_icon.png create mode 100755 user/img/bronze.jpg create mode 100755 user/img/bronze.png create mode 100755 user/img/donor.png create mode 100755 user/img/emphasized_post.png create mode 100755 user/img/feed_logo.png create mode 100755 user/img/filtered_post.png create mode 100755 user/img/forum_bg.png create mode 100755 user/img/freedc_icon.png create mode 100755 user/img/gold.png create mode 100755 user/img/google-button.png create mode 100755 user/img/gray_gradient.png create mode 100755 user/img/head.png create mode 100755 user/img/head_20.png create mode 100755 user/img/hidden.png create mode 100755 user/img/locked_post.png create mode 100755 user/img/next.gif create mode 100755 user/img/paypal_logo.png create mode 100755 user/img/pb_boinc.gif create mode 100755 user/img/pct_1.png create mode 100755 user/img/pct_25.png create mode 100755 user/img/pct_5.png create mode 100755 user/img/pm.png create mode 100755 user/img/post.png create mode 100755 user/img/prev.gif create mode 100755 user/img/rate_negative.png create mode 100755 user/img/rate_positive.png create mode 100755 user/img/report_post.png create mode 100755 user/img/rss_icon.gif create mode 100755 user/img/silver.png create mode 100755 user/img/star.gif create mode 100755 user/img/sticky_locked_post.png create mode 100755 user/img/sticky_post.png create mode 100755 user/img/unread_locked.png create mode 100755 user/img/unread_post.png create mode 100755 user/img/unread_sticky.png create mode 100755 user/img/unread_sticky_locked.png create mode 100755 user/img/water.jpg create mode 100755 user/img/white_grad.png create mode 100755 user/img/xml.gif create mode 100755 user/img/yahoo-button.png create mode 100644 user/index.html create mode 100755 user/index.php create mode 100755 user/index1.php create mode 100755 user/info.php create mode 100755 user/job_file.php create mode 100755 user/join.php create mode 100755 user/jquery.min.js create mode 100755 user/lammps.php create mode 100755 user/language_select.php create mode 100755 user/languages.txt create mode 100755 user/login_action.php create mode 100755 user/login_auth.php create mode 100755 user/login_form.php create mode 100755 user/login_token_lookup.php create mode 100755 user/logout.php create mode 100755 user/lookup_account.php create mode 100755 user/mail_passwd.php create mode 100755 user/main.css create mode 100755 user/manage.php create mode 100755 user/manage_app.php create mode 100755 user/manage_project.php create mode 100755 user/merge_by_name.php create mode 100755 user/moderation.php create mode 100755 user/moderator_instructions.php create mode 100755 user/motd.php create mode 100755 user/notices.php create mode 100755 user/notify_rss.php create mode 100755 user/old_news.php create mode 100755 user/openid.php create mode 100755 user/openid_login.php create mode 100755 user/opt_out.php create mode 100755 user/pending.php create mode 100755 user/per_app_list.php create mode 100755 user/pm.php create mode 100755 user/prefs.php create mode 100755 user/prefs_default.php create mode 100755 user/prefs_edit.php create mode 100755 user/prefs_remove.php create mode 100755 user/proc_known.php create mode 100755 user/proc_multi.php create mode 100755 user/proc_submit.php create mode 100755 user/profile_menu.php create mode 100755 user/profile_rate.php create mode 100755 user/profile_search_action.php create mode 100755 user/register.php create mode 100755 user/result.php create mode 100755 user/result_status.php create mode 100755 user/results.php create mode 100755 user/rss_main.php create mode 100755 user/sample_bootstrap.min.css create mode 100755 user/sample_bootstrap.min.js create mode 100755 user/sample_index.php create mode 100755 user/sample_jquery.min.js create mode 100755 user/sample_moderation.php create mode 100755 user/sample_moderator_instructions.php create mode 100755 user/sample_motd.php create mode 100755 user/sample_robots.txt create mode 100755 user/sandbox.php create mode 100755 user/schedulers.txt create mode 100755 user/server_status.php create mode 100755 user/set_language.php create mode 100755 user/show_coproc.php create mode 100755 user/show_host_detail.php create mode 100755 user/show_user.php create mode 100755 user/site_search.php create mode 100755 user/stats.php create mode 100755 user/style2.css create mode 100755 user/submit.php create mode 100755 user/submit_example.php create mode 100755 user/submit_jobs.php create mode 100755 user/submit_known.html create mode 100755 user/submit_multi.html create mode 100755 user/submit_rpc_handler.php create mode 100755 user/submit_status.php create mode 100755 user/submit_test.php create mode 100755 user/team.php create mode 100755 user/team_admins.php create mode 100755 user/team_change_founder_action.php create mode 100755 user/team_change_founder_form.php create mode 100755 user/team_create_action.php create mode 100755 user/team_create_form.php create mode 100755 user/team_delta.php create mode 100755 user/team_display.php create mode 100755 user/team_edit_action.php create mode 100755 user/team_edit_form.php create mode 100755 user/team_email_list.php create mode 100755 user/team_forum.php create mode 100755 user/team_founder_transfer_action.php create mode 100755 user/team_founder_transfer_form.php create mode 100755 user/team_join.php create mode 100755 user/team_join_action.php create mode 100755 user/team_join_form.php create mode 100755 user/team_lookup.php create mode 100755 user/team_manage.php create mode 100755 user/team_members.php create mode 100755 user/team_quit_action.php create mode 100755 user/team_quit_form.php create mode 100755 user/team_remove_inactive_action.php create mode 100755 user/team_remove_inactive_form.php create mode 100755 user/team_search.php create mode 100755 user/testpage.html create mode 100755 user/token_data/.htaccess create mode 100755 user/token_data/CHANGELOG.md create mode 100755 user/token_data/CONTRIBUTING.md create mode 100755 user/token_data/FAQ.md create mode 100755 user/token_data/LICENSE create mode 100755 user/token_data/README.md create mode 100755 user/token_data/Tokens.txt create mode 100755 user/token_data/VERSION create mode 100755 user/token_data/allrun.txt create mode 100755 user/token_data/autoload.php create mode 100755 user/token_data/bin/create-command-test create mode 100755 user/token_data/bin/create-pear create mode 100755 user/token_data/bin/create-phar create mode 100755 user/token_data/bin/create-single-file create mode 100755 user/token_data/coherent.py create mode 100755 user/token_data/composer.json create mode 100755 user/token_data/create_organization.py create mode 100755 user/token_data/create_token.py create mode 100755 user/token_data/examples/custom_cluster_distributor.php create mode 100755 user/token_data/examples/debuggable_connection.php create mode 100755 user/token_data/examples/dispatcher_loop.php create mode 100755 user/token_data/examples/executing_redis_commands.php create mode 100755 user/token_data/examples/key_prefixing.php create mode 100755 user/token_data/examples/lua_scripting_abstraction.php create mode 100755 user/token_data/examples/monitor_consumer.php create mode 100755 user/token_data/examples/pipelining_commands.php create mode 100755 user/token_data/examples/pubsub_consumer.php create mode 100755 user/token_data/examples/redis_collections_iterators.php create mode 100755 user/token_data/examples/replication_complex.php create mode 100755 user/token_data/examples/replication_sentinel.php create mode 100755 user/token_data/examples/replication_simple.php create mode 100755 user/token_data/examples/session_handler.php create mode 100755 user/token_data/examples/shared.php create mode 100755 user/token_data/examples/transaction_using_cas.php create mode 100755 user/token_data/issued.txt create mode 100755 user/token_data/modify_org.py create mode 100755 user/token_data/package.ini create mode 100755 user/token_data/phpunit.xml.dist create mode 100755 user/token_data/phpunit.xml.travisci create mode 100755 user/token_data/process_files/.gitignore create mode 100755 user/token_data/red_runner.py create mode 100755 user/token_data/redfile.py create mode 100755 user/token_data/src/Autoloader.php create mode 100755 user/token_data/src/Client.php create mode 100755 user/token_data/src/ClientContextInterface.php create mode 100755 user/token_data/src/ClientException.php create mode 100755 user/token_data/src/ClientInterface.php create mode 100755 user/token_data/src/Cluster/ClusterStrategy.php create mode 100755 user/token_data/src/Cluster/Distributor/DistributorInterface.php create mode 100755 user/token_data/src/Cluster/Distributor/EmptyRingException.php create mode 100755 user/token_data/src/Cluster/Distributor/HashRing.php create mode 100755 user/token_data/src/Cluster/Distributor/KetamaRing.php create mode 100755 user/token_data/src/Cluster/Hash/CRC16.php create mode 100755 user/token_data/src/Cluster/Hash/HashGeneratorInterface.php create mode 100755 user/token_data/src/Cluster/PredisStrategy.php create mode 100755 user/token_data/src/Cluster/RedisStrategy.php create mode 100755 user/token_data/src/Cluster/StrategyInterface.php create mode 100755 user/token_data/src/Collection/Iterator/CursorBasedIterator.php create mode 100755 user/token_data/src/Collection/Iterator/HashKey.php create mode 100755 user/token_data/src/Collection/Iterator/Keyspace.php create mode 100755 user/token_data/src/Collection/Iterator/ListKey.php create mode 100755 user/token_data/src/Collection/Iterator/SetKey.php create mode 100755 user/token_data/src/Collection/Iterator/SortedSetKey.php create mode 100755 user/token_data/src/Command/Command.php create mode 100755 user/token_data/src/Command/CommandInterface.php create mode 100755 user/token_data/src/Command/ConnectionAuth.php create mode 100755 user/token_data/src/Command/ConnectionEcho.php create mode 100755 user/token_data/src/Command/ConnectionPing.php create mode 100755 user/token_data/src/Command/ConnectionQuit.php create mode 100755 user/token_data/src/Command/ConnectionSelect.php create mode 100755 user/token_data/src/Command/GeospatialGeoAdd.php create mode 100755 user/token_data/src/Command/GeospatialGeoDist.php create mode 100755 user/token_data/src/Command/GeospatialGeoHash.php create mode 100755 user/token_data/src/Command/GeospatialGeoPos.php create mode 100755 user/token_data/src/Command/GeospatialGeoRadius.php create mode 100755 user/token_data/src/Command/GeospatialGeoRadiusByMember.php create mode 100755 user/token_data/src/Command/HashDelete.php create mode 100755 user/token_data/src/Command/HashExists.php create mode 100755 user/token_data/src/Command/HashGet.php create mode 100755 user/token_data/src/Command/HashGetAll.php create mode 100755 user/token_data/src/Command/HashGetMultiple.php create mode 100755 user/token_data/src/Command/HashIncrementBy.php create mode 100755 user/token_data/src/Command/HashIncrementByFloat.php create mode 100755 user/token_data/src/Command/HashKeys.php create mode 100755 user/token_data/src/Command/HashLength.php create mode 100755 user/token_data/src/Command/HashScan.php create mode 100755 user/token_data/src/Command/HashSet.php create mode 100755 user/token_data/src/Command/HashSetMultiple.php create mode 100755 user/token_data/src/Command/HashSetPreserve.php create mode 100755 user/token_data/src/Command/HashStringLength.php create mode 100755 user/token_data/src/Command/HashValues.php create mode 100755 user/token_data/src/Command/HyperLogLogAdd.php create mode 100755 user/token_data/src/Command/HyperLogLogCount.php create mode 100755 user/token_data/src/Command/HyperLogLogMerge.php create mode 100755 user/token_data/src/Command/KeyDelete.php create mode 100755 user/token_data/src/Command/KeyDump.php create mode 100755 user/token_data/src/Command/KeyExists.php create mode 100755 user/token_data/src/Command/KeyExpire.php create mode 100755 user/token_data/src/Command/KeyExpireAt.php create mode 100755 user/token_data/src/Command/KeyKeys.php create mode 100755 user/token_data/src/Command/KeyMigrate.php create mode 100755 user/token_data/src/Command/KeyMove.php create mode 100755 user/token_data/src/Command/KeyPersist.php create mode 100755 user/token_data/src/Command/KeyPreciseExpire.php create mode 100755 user/token_data/src/Command/KeyPreciseExpireAt.php create mode 100755 user/token_data/src/Command/KeyPreciseTimeToLive.php create mode 100755 user/token_data/src/Command/KeyRandom.php create mode 100755 user/token_data/src/Command/KeyRename.php create mode 100755 user/token_data/src/Command/KeyRenamePreserve.php create mode 100755 user/token_data/src/Command/KeyRestore.php create mode 100755 user/token_data/src/Command/KeyScan.php create mode 100755 user/token_data/src/Command/KeySort.php create mode 100755 user/token_data/src/Command/KeyTimeToLive.php create mode 100755 user/token_data/src/Command/KeyType.php create mode 100755 user/token_data/src/Command/ListIndex.php create mode 100755 user/token_data/src/Command/ListInsert.php create mode 100755 user/token_data/src/Command/ListLength.php create mode 100755 user/token_data/src/Command/ListPopFirst.php create mode 100755 user/token_data/src/Command/ListPopFirstBlocking.php create mode 100755 user/token_data/src/Command/ListPopLast.php create mode 100755 user/token_data/src/Command/ListPopLastBlocking.php create mode 100755 user/token_data/src/Command/ListPopLastPushHead.php create mode 100755 user/token_data/src/Command/ListPopLastPushHeadBlocking.php create mode 100755 user/token_data/src/Command/ListPushHead.php create mode 100755 user/token_data/src/Command/ListPushHeadX.php create mode 100755 user/token_data/src/Command/ListPushTail.php create mode 100755 user/token_data/src/Command/ListPushTailX.php create mode 100755 user/token_data/src/Command/ListRange.php create mode 100755 user/token_data/src/Command/ListRemove.php create mode 100755 user/token_data/src/Command/ListSet.php create mode 100755 user/token_data/src/Command/ListTrim.php create mode 100755 user/token_data/src/Command/PrefixableCommandInterface.php create mode 100755 user/token_data/src/Command/Processor/KeyPrefixProcessor.php create mode 100755 user/token_data/src/Command/Processor/ProcessorChain.php create mode 100755 user/token_data/src/Command/Processor/ProcessorInterface.php create mode 100755 user/token_data/src/Command/PubSubPublish.php create mode 100755 user/token_data/src/Command/PubSubPubsub.php create mode 100755 user/token_data/src/Command/PubSubSubscribe.php create mode 100755 user/token_data/src/Command/PubSubSubscribeByPattern.php create mode 100755 user/token_data/src/Command/PubSubUnsubscribe.php create mode 100755 user/token_data/src/Command/PubSubUnsubscribeByPattern.php create mode 100755 user/token_data/src/Command/RawCommand.php create mode 100755 user/token_data/src/Command/ScriptCommand.php create mode 100755 user/token_data/src/Command/ServerBackgroundRewriteAOF.php create mode 100755 user/token_data/src/Command/ServerBackgroundSave.php create mode 100755 user/token_data/src/Command/ServerClient.php create mode 100755 user/token_data/src/Command/ServerCommand.php create mode 100755 user/token_data/src/Command/ServerConfig.php create mode 100755 user/token_data/src/Command/ServerDatabaseSize.php create mode 100755 user/token_data/src/Command/ServerEval.php create mode 100755 user/token_data/src/Command/ServerEvalSHA.php create mode 100755 user/token_data/src/Command/ServerFlushAll.php create mode 100755 user/token_data/src/Command/ServerFlushDatabase.php create mode 100755 user/token_data/src/Command/ServerInfo.php create mode 100755 user/token_data/src/Command/ServerInfoV26x.php create mode 100755 user/token_data/src/Command/ServerLastSave.php create mode 100755 user/token_data/src/Command/ServerMonitor.php create mode 100755 user/token_data/src/Command/ServerObject.php create mode 100755 user/token_data/src/Command/ServerSave.php create mode 100755 user/token_data/src/Command/ServerScript.php create mode 100755 user/token_data/src/Command/ServerSentinel.php create mode 100755 user/token_data/src/Command/ServerShutdown.php create mode 100755 user/token_data/src/Command/ServerSlaveOf.php create mode 100755 user/token_data/src/Command/ServerSlowlog.php create mode 100755 user/token_data/src/Command/ServerTime.php create mode 100755 user/token_data/src/Command/SetAdd.php create mode 100755 user/token_data/src/Command/SetCardinality.php create mode 100755 user/token_data/src/Command/SetDifference.php create mode 100755 user/token_data/src/Command/SetDifferenceStore.php create mode 100755 user/token_data/src/Command/SetIntersection.php create mode 100755 user/token_data/src/Command/SetIntersectionStore.php create mode 100755 user/token_data/src/Command/SetIsMember.php create mode 100755 user/token_data/src/Command/SetMembers.php create mode 100755 user/token_data/src/Command/SetMove.php create mode 100755 user/token_data/src/Command/SetPop.php create mode 100755 user/token_data/src/Command/SetRandomMember.php create mode 100755 user/token_data/src/Command/SetRemove.php create mode 100755 user/token_data/src/Command/SetScan.php create mode 100755 user/token_data/src/Command/SetUnion.php create mode 100755 user/token_data/src/Command/SetUnionStore.php create mode 100755 user/token_data/src/Command/StringAppend.php create mode 100755 user/token_data/src/Command/StringBitCount.php create mode 100755 user/token_data/src/Command/StringBitField.php create mode 100755 user/token_data/src/Command/StringBitOp.php create mode 100755 user/token_data/src/Command/StringBitPos.php create mode 100755 user/token_data/src/Command/StringDecrement.php create mode 100755 user/token_data/src/Command/StringDecrementBy.php create mode 100755 user/token_data/src/Command/StringGet.php create mode 100755 user/token_data/src/Command/StringGetBit.php create mode 100755 user/token_data/src/Command/StringGetMultiple.php create mode 100755 user/token_data/src/Command/StringGetRange.php create mode 100755 user/token_data/src/Command/StringGetSet.php create mode 100755 user/token_data/src/Command/StringIncrement.php create mode 100755 user/token_data/src/Command/StringIncrementBy.php create mode 100755 user/token_data/src/Command/StringIncrementByFloat.php create mode 100755 user/token_data/src/Command/StringPreciseSetExpire.php create mode 100755 user/token_data/src/Command/StringSet.php create mode 100755 user/token_data/src/Command/StringSetBit.php create mode 100755 user/token_data/src/Command/StringSetExpire.php create mode 100755 user/token_data/src/Command/StringSetMultiple.php create mode 100755 user/token_data/src/Command/StringSetMultiplePreserve.php create mode 100755 user/token_data/src/Command/StringSetPreserve.php create mode 100755 user/token_data/src/Command/StringSetRange.php create mode 100755 user/token_data/src/Command/StringStrlen.php create mode 100755 user/token_data/src/Command/StringSubstr.php create mode 100755 user/token_data/src/Command/TransactionDiscard.php create mode 100755 user/token_data/src/Command/TransactionExec.php create mode 100755 user/token_data/src/Command/TransactionMulti.php create mode 100755 user/token_data/src/Command/TransactionUnwatch.php create mode 100755 user/token_data/src/Command/TransactionWatch.php create mode 100755 user/token_data/src/Command/ZSetAdd.php create mode 100755 user/token_data/src/Command/ZSetCardinality.php create mode 100755 user/token_data/src/Command/ZSetCount.php create mode 100755 user/token_data/src/Command/ZSetIncrementBy.php create mode 100755 user/token_data/src/Command/ZSetIntersectionStore.php create mode 100755 user/token_data/src/Command/ZSetLexCount.php create mode 100755 user/token_data/src/Command/ZSetRange.php create mode 100755 user/token_data/src/Command/ZSetRangeByLex.php create mode 100755 user/token_data/src/Command/ZSetRangeByScore.php create mode 100755 user/token_data/src/Command/ZSetRank.php create mode 100755 user/token_data/src/Command/ZSetRemove.php create mode 100755 user/token_data/src/Command/ZSetRemoveRangeByLex.php create mode 100755 user/token_data/src/Command/ZSetRemoveRangeByRank.php create mode 100755 user/token_data/src/Command/ZSetRemoveRangeByScore.php create mode 100755 user/token_data/src/Command/ZSetReverseRange.php create mode 100755 user/token_data/src/Command/ZSetReverseRangeByLex.php create mode 100755 user/token_data/src/Command/ZSetReverseRangeByScore.php create mode 100755 user/token_data/src/Command/ZSetReverseRank.php create mode 100755 user/token_data/src/Command/ZSetScan.php create mode 100755 user/token_data/src/Command/ZSetScore.php create mode 100755 user/token_data/src/Command/ZSetUnionStore.php create mode 100755 user/token_data/src/CommunicationException.php create mode 100755 user/token_data/src/Configuration/ClusterOption.php create mode 100755 user/token_data/src/Configuration/ConnectionFactoryOption.php create mode 100755 user/token_data/src/Configuration/ExceptionsOption.php create mode 100755 user/token_data/src/Configuration/OptionInterface.php create mode 100755 user/token_data/src/Configuration/Options.php create mode 100755 user/token_data/src/Configuration/OptionsInterface.php create mode 100755 user/token_data/src/Configuration/PrefixOption.php create mode 100755 user/token_data/src/Configuration/ProfileOption.php create mode 100755 user/token_data/src/Configuration/ReplicationOption.php create mode 100755 user/token_data/src/Connection/AbstractConnection.php create mode 100755 user/token_data/src/Connection/Aggregate/ClusterInterface.php create mode 100755 user/token_data/src/Connection/Aggregate/MasterSlaveReplication.php create mode 100755 user/token_data/src/Connection/Aggregate/PredisCluster.php create mode 100755 user/token_data/src/Connection/Aggregate/RedisCluster.php create mode 100755 user/token_data/src/Connection/Aggregate/ReplicationInterface.php create mode 100755 user/token_data/src/Connection/Aggregate/SentinelReplication.php create mode 100755 user/token_data/src/Connection/AggregateConnectionInterface.php create mode 100755 user/token_data/src/Connection/CompositeConnectionInterface.php create mode 100755 user/token_data/src/Connection/CompositeStreamConnection.php create mode 100755 user/token_data/src/Connection/ConnectionException.php create mode 100755 user/token_data/src/Connection/ConnectionInterface.php create mode 100755 user/token_data/src/Connection/Factory.php create mode 100755 user/token_data/src/Connection/FactoryInterface.php create mode 100755 user/token_data/src/Connection/NodeConnectionInterface.php create mode 100755 user/token_data/src/Connection/Parameters.php create mode 100755 user/token_data/src/Connection/ParametersInterface.php create mode 100755 user/token_data/src/Connection/PhpiredisSocketConnection.php create mode 100755 user/token_data/src/Connection/PhpiredisStreamConnection.php create mode 100755 user/token_data/src/Connection/StreamConnection.php create mode 100755 user/token_data/src/Connection/WebdisConnection.php create mode 100755 user/token_data/src/Monitor/Consumer.php create mode 100755 user/token_data/src/NotSupportedException.php create mode 100755 user/token_data/src/Pipeline/Atomic.php create mode 100755 user/token_data/src/Pipeline/ConnectionErrorProof.php create mode 100755 user/token_data/src/Pipeline/FireAndForget.php create mode 100755 user/token_data/src/Pipeline/Pipeline.php create mode 100755 user/token_data/src/PredisException.php create mode 100755 user/token_data/src/Profile/Factory.php create mode 100755 user/token_data/src/Profile/ProfileInterface.php create mode 100755 user/token_data/src/Profile/RedisProfile.php create mode 100755 user/token_data/src/Profile/RedisUnstable.php create mode 100755 user/token_data/src/Profile/RedisVersion200.php create mode 100755 user/token_data/src/Profile/RedisVersion220.php create mode 100755 user/token_data/src/Profile/RedisVersion240.php create mode 100755 user/token_data/src/Profile/RedisVersion260.php create mode 100755 user/token_data/src/Profile/RedisVersion280.php create mode 100755 user/token_data/src/Profile/RedisVersion300.php create mode 100755 user/token_data/src/Profile/RedisVersion320.php create mode 100755 user/token_data/src/Protocol/ProtocolException.php create mode 100755 user/token_data/src/Protocol/ProtocolProcessorInterface.php create mode 100755 user/token_data/src/Protocol/RequestSerializerInterface.php create mode 100755 user/token_data/src/Protocol/ResponseReaderInterface.php create mode 100755 user/token_data/src/Protocol/Text/CompositeProtocolProcessor.php create mode 100755 user/token_data/src/Protocol/Text/Handler/BulkResponse.php create mode 100755 user/token_data/src/Protocol/Text/Handler/ErrorResponse.php create mode 100755 user/token_data/src/Protocol/Text/Handler/IntegerResponse.php create mode 100755 user/token_data/src/Protocol/Text/Handler/MultiBulkResponse.php create mode 100755 user/token_data/src/Protocol/Text/Handler/ResponseHandlerInterface.php create mode 100755 user/token_data/src/Protocol/Text/Handler/StatusResponse.php create mode 100755 user/token_data/src/Protocol/Text/Handler/StreamableMultiBulkResponse.php create mode 100755 user/token_data/src/Protocol/Text/ProtocolProcessor.php create mode 100755 user/token_data/src/Protocol/Text/RequestSerializer.php create mode 100755 user/token_data/src/Protocol/Text/ResponseReader.php create mode 100755 user/token_data/src/PubSub/AbstractConsumer.php create mode 100755 user/token_data/src/PubSub/Consumer.php create mode 100755 user/token_data/src/PubSub/DispatcherLoop.php create mode 100755 user/token_data/src/Replication/MissingMasterException.php create mode 100755 user/token_data/src/Replication/ReplicationStrategy.php create mode 100755 user/token_data/src/Replication/RoleException.php create mode 100755 user/token_data/src/Response/Error.php create mode 100755 user/token_data/src/Response/ErrorInterface.php create mode 100755 user/token_data/src/Response/Iterator/MultiBulk.php create mode 100755 user/token_data/src/Response/Iterator/MultiBulkIterator.php create mode 100755 user/token_data/src/Response/Iterator/MultiBulkTuple.php create mode 100755 user/token_data/src/Response/ResponseInterface.php create mode 100755 user/token_data/src/Response/ServerException.php create mode 100755 user/token_data/src/Response/Status.php create mode 100755 user/token_data/src/Session/Handler.php create mode 100755 user/token_data/src/Transaction/AbortedMultiExecException.php create mode 100755 user/token_data/src/Transaction/MultiExec.php create mode 100755 user/token_data/src/Transaction/MultiExecState.php create mode 100755 user/token_data/submit_known_api_data.txt create mode 100755 user/token_data/temtemp.txt create mode 100755 user/token_data/tests/PHPUnit/ArrayHasSameValuesConstraint.php create mode 100755 user/token_data/tests/PHPUnit/PredisCommandTestCase.php create mode 100755 user/token_data/tests/PHPUnit/PredisConnectionTestCase.php create mode 100755 user/token_data/tests/PHPUnit/PredisDistributorTestCase.php create mode 100755 user/token_data/tests/PHPUnit/PredisProfileTestCase.php create mode 100755 user/token_data/tests/PHPUnit/PredisTestCase.php create mode 100755 user/token_data/tests/PHPUnit/RedisCommandConstraint.php create mode 100755 user/token_data/tests/Predis/ClientExceptionTest.php create mode 100755 user/token_data/tests/Predis/ClientTest.php create mode 100755 user/token_data/tests/Predis/Cluster/Distributor/EmptyRingExceptionTest.php create mode 100755 user/token_data/tests/Predis/Cluster/Distributor/HashRingTest.php create mode 100755 user/token_data/tests/Predis/Cluster/Distributor/KetamaRingTest.php create mode 100755 user/token_data/tests/Predis/Cluster/Hash/CRC16Test.php create mode 100755 user/token_data/tests/Predis/Cluster/PredisStrategyTest.php create mode 100755 user/token_data/tests/Predis/Cluster/RedisStrategyTest.php create mode 100755 user/token_data/tests/Predis/Collection/Iterator/HashKeyTest.php create mode 100755 user/token_data/tests/Predis/Collection/Iterator/KeyspaceTest.php create mode 100755 user/token_data/tests/Predis/Collection/Iterator/ListKeyTest.php create mode 100755 user/token_data/tests/Predis/Collection/Iterator/SetKeyTest.php create mode 100755 user/token_data/tests/Predis/Collection/Iterator/SortedSetKeyTest.php create mode 100755 user/token_data/tests/Predis/Command/CommandTest.php create mode 100755 user/token_data/tests/Predis/Command/ConnectionAuthTest.php create mode 100755 user/token_data/tests/Predis/Command/ConnectionEchoTest.php create mode 100755 user/token_data/tests/Predis/Command/ConnectionPingTest.php create mode 100755 user/token_data/tests/Predis/Command/ConnectionQuitTest.php create mode 100755 user/token_data/tests/Predis/Command/ConnectionSelectTest.php create mode 100755 user/token_data/tests/Predis/Command/GeospatialGeoAddTest.php create mode 100755 user/token_data/tests/Predis/Command/GeospatialGeoDistTest.php create mode 100755 user/token_data/tests/Predis/Command/GeospatialGeoHashTest.php create mode 100755 user/token_data/tests/Predis/Command/GeospatialGeoPosTest.php create mode 100755 user/token_data/tests/Predis/Command/GeospatialGeoRadiusByMemberTest.php create mode 100755 user/token_data/tests/Predis/Command/GeospatialGeoRadiusTest.php create mode 100755 user/token_data/tests/Predis/Command/HashDeleteTest.php create mode 100755 user/token_data/tests/Predis/Command/HashExistsTest.php create mode 100755 user/token_data/tests/Predis/Command/HashGetAllTest.php create mode 100755 user/token_data/tests/Predis/Command/HashGetMultipleTest.php create mode 100755 user/token_data/tests/Predis/Command/HashGetTest.php create mode 100755 user/token_data/tests/Predis/Command/HashIncrementByFloatTest.php create mode 100755 user/token_data/tests/Predis/Command/HashIncrementByTest.php create mode 100755 user/token_data/tests/Predis/Command/HashKeysTest.php create mode 100755 user/token_data/tests/Predis/Command/HashLengthTest.php create mode 100755 user/token_data/tests/Predis/Command/HashScanTest.php create mode 100755 user/token_data/tests/Predis/Command/HashSetMultipleTest.php create mode 100755 user/token_data/tests/Predis/Command/HashSetPreserveTest.php create mode 100755 user/token_data/tests/Predis/Command/HashSetTest.php create mode 100755 user/token_data/tests/Predis/Command/HashStringLengthTest.php create mode 100755 user/token_data/tests/Predis/Command/HashValuesTest.php create mode 100755 user/token_data/tests/Predis/Command/HyperLogLogAddTest.php create mode 100755 user/token_data/tests/Predis/Command/HyperLogLogCountTest.php create mode 100755 user/token_data/tests/Predis/Command/HyperLogLogMergeTest.php create mode 100755 user/token_data/tests/Predis/Command/KeyDeleteTest.php create mode 100755 user/token_data/tests/Predis/Command/KeyDumpTest.php create mode 100755 user/token_data/tests/Predis/Command/KeyExistsTest.php create mode 100755 user/token_data/tests/Predis/Command/KeyExpireAtTest.php create mode 100755 user/token_data/tests/Predis/Command/KeyExpireTest.php create mode 100755 user/token_data/tests/Predis/Command/KeyKeysTest.php create mode 100755 user/token_data/tests/Predis/Command/KeyMigrateTest.php create mode 100755 user/token_data/tests/Predis/Command/KeyMoveTest.php create mode 100755 user/token_data/tests/Predis/Command/KeyPersistTest.php create mode 100755 user/token_data/tests/Predis/Command/KeyPreciseExpireAtTest.php create mode 100755 user/token_data/tests/Predis/Command/KeyPreciseExpireTest.php create mode 100755 user/token_data/tests/Predis/Command/KeyPreciseTimeToLiveTest.php create mode 100755 user/token_data/tests/Predis/Command/KeyRandomTest.php create mode 100755 user/token_data/tests/Predis/Command/KeyRenamePreserveTest.php create mode 100755 user/token_data/tests/Predis/Command/KeyRenameTest.php create mode 100755 user/token_data/tests/Predis/Command/KeyRestoreTest.php create mode 100755 user/token_data/tests/Predis/Command/KeyScanTest.php create mode 100755 user/token_data/tests/Predis/Command/KeySortTest.php create mode 100755 user/token_data/tests/Predis/Command/KeyTimeToLiveTest.php create mode 100755 user/token_data/tests/Predis/Command/KeyTypeTest.php create mode 100755 user/token_data/tests/Predis/Command/ListIndexTest.php create mode 100755 user/token_data/tests/Predis/Command/ListInsertTest.php create mode 100755 user/token_data/tests/Predis/Command/ListLengthTest.php create mode 100755 user/token_data/tests/Predis/Command/ListPopFirstBlockingTest.php create mode 100755 user/token_data/tests/Predis/Command/ListPopFirstTest.php create mode 100755 user/token_data/tests/Predis/Command/ListPopLastBlockingTest.php create mode 100755 user/token_data/tests/Predis/Command/ListPopLastPushHeadBlockingTest.php create mode 100755 user/token_data/tests/Predis/Command/ListPopLastPushHeadTest.php create mode 100755 user/token_data/tests/Predis/Command/ListPopLastTest.php create mode 100755 user/token_data/tests/Predis/Command/ListPushHeadTest.php create mode 100755 user/token_data/tests/Predis/Command/ListPushHeadXTest.php create mode 100755 user/token_data/tests/Predis/Command/ListPushTailTest.php create mode 100755 user/token_data/tests/Predis/Command/ListPushTailXTest.php create mode 100755 user/token_data/tests/Predis/Command/ListRangeTest.php create mode 100755 user/token_data/tests/Predis/Command/ListRemoveTest.php create mode 100755 user/token_data/tests/Predis/Command/ListSetTest.php create mode 100755 user/token_data/tests/Predis/Command/ListTrimTest.php create mode 100755 user/token_data/tests/Predis/Command/Processor/KeyPrefixProcessorTest.php create mode 100755 user/token_data/tests/Predis/Command/Processor/ProcessorChainTest.php create mode 100755 user/token_data/tests/Predis/Command/PubSubPublishTest.php create mode 100755 user/token_data/tests/Predis/Command/PubSubPubsubTest.php create mode 100755 user/token_data/tests/Predis/Command/PubSubSubscribeByPatternTest.php create mode 100755 user/token_data/tests/Predis/Command/PubSubSubscribeTest.php create mode 100755 user/token_data/tests/Predis/Command/PubSubUnsubscribeByPatternTest.php create mode 100755 user/token_data/tests/Predis/Command/PubSubUnsubscribeTest.php create mode 100755 user/token_data/tests/Predis/Command/RawCommandTest.php create mode 100755 user/token_data/tests/Predis/Command/ScriptCommandTest.php create mode 100755 user/token_data/tests/Predis/Command/ServerBackgroundRewriteAOFTest.php create mode 100755 user/token_data/tests/Predis/Command/ServerBackgroundSaveTest.php create mode 100755 user/token_data/tests/Predis/Command/ServerClientTest.php create mode 100755 user/token_data/tests/Predis/Command/ServerCommandTest.php create mode 100755 user/token_data/tests/Predis/Command/ServerConfigTest.php create mode 100755 user/token_data/tests/Predis/Command/ServerDatabaseSizeTest.php create mode 100755 user/token_data/tests/Predis/Command/ServerEvalSHATest.php create mode 100755 user/token_data/tests/Predis/Command/ServerEvalTest.php create mode 100755 user/token_data/tests/Predis/Command/ServerFlushAllTest.php create mode 100755 user/token_data/tests/Predis/Command/ServerFlushDatabaseTest.php create mode 100755 user/token_data/tests/Predis/Command/ServerInfoTest.php create mode 100755 user/token_data/tests/Predis/Command/ServerInfoV26xTest.php create mode 100755 user/token_data/tests/Predis/Command/ServerLastSaveTest.php create mode 100755 user/token_data/tests/Predis/Command/ServerMonitorTest.php create mode 100755 user/token_data/tests/Predis/Command/ServerObjectTest.php create mode 100755 user/token_data/tests/Predis/Command/ServerSaveTest.php create mode 100755 user/token_data/tests/Predis/Command/ServerScriptTest.php create mode 100755 user/token_data/tests/Predis/Command/ServerSentinelTest.php create mode 100755 user/token_data/tests/Predis/Command/ServerShutdownTest.php create mode 100755 user/token_data/tests/Predis/Command/ServerSlaveOfTest.php create mode 100755 user/token_data/tests/Predis/Command/ServerSlowlogTest.php create mode 100755 user/token_data/tests/Predis/Command/ServerTimeTest.php create mode 100755 user/token_data/tests/Predis/Command/SetAddTest.php create mode 100755 user/token_data/tests/Predis/Command/SetCardinalityTest.php create mode 100755 user/token_data/tests/Predis/Command/SetDifferenceStoreTest.php create mode 100755 user/token_data/tests/Predis/Command/SetDifferenceTest.php create mode 100755 user/token_data/tests/Predis/Command/SetIntersectionStoreTest.php create mode 100755 user/token_data/tests/Predis/Command/SetIntersectionTest.php create mode 100755 user/token_data/tests/Predis/Command/SetIsMemberTest.php create mode 100755 user/token_data/tests/Predis/Command/SetMembersTest.php create mode 100755 user/token_data/tests/Predis/Command/SetMoveTest.php create mode 100755 user/token_data/tests/Predis/Command/SetPopTest.php create mode 100755 user/token_data/tests/Predis/Command/SetRandomMemberTest.php create mode 100755 user/token_data/tests/Predis/Command/SetRemoveTest.php create mode 100755 user/token_data/tests/Predis/Command/SetScanTest.php create mode 100755 user/token_data/tests/Predis/Command/SetUnionStoreTest.php create mode 100755 user/token_data/tests/Predis/Command/SetUnionTest.php create mode 100755 user/token_data/tests/Predis/Command/StringAppendTest.php create mode 100755 user/token_data/tests/Predis/Command/StringBitCountTest.php create mode 100755 user/token_data/tests/Predis/Command/StringBitFieldTest.php create mode 100755 user/token_data/tests/Predis/Command/StringBitOpTest.php create mode 100755 user/token_data/tests/Predis/Command/StringBitPosTest.php create mode 100755 user/token_data/tests/Predis/Command/StringDecrementByTest.php create mode 100755 user/token_data/tests/Predis/Command/StringDecrementTest.php create mode 100755 user/token_data/tests/Predis/Command/StringGetBitTest.php create mode 100755 user/token_data/tests/Predis/Command/StringGetMultipleTest.php create mode 100755 user/token_data/tests/Predis/Command/StringGetRangeTest.php create mode 100755 user/token_data/tests/Predis/Command/StringGetSetTest.php create mode 100755 user/token_data/tests/Predis/Command/StringGetTest.php create mode 100755 user/token_data/tests/Predis/Command/StringIncrementByFloatTest.php create mode 100755 user/token_data/tests/Predis/Command/StringIncrementByTest.php create mode 100755 user/token_data/tests/Predis/Command/StringIncrementTest.php create mode 100755 user/token_data/tests/Predis/Command/StringPreciseSetExpireTest.php create mode 100755 user/token_data/tests/Predis/Command/StringSetBitTest.php create mode 100755 user/token_data/tests/Predis/Command/StringSetExpireTest.php create mode 100755 user/token_data/tests/Predis/Command/StringSetMultiplePreserveTest.php create mode 100755 user/token_data/tests/Predis/Command/StringSetMultipleTest.php create mode 100755 user/token_data/tests/Predis/Command/StringSetPreserveTest.php create mode 100755 user/token_data/tests/Predis/Command/StringSetRangeTest.php create mode 100755 user/token_data/tests/Predis/Command/StringSetTest.php create mode 100755 user/token_data/tests/Predis/Command/StringStrlenTest.php create mode 100755 user/token_data/tests/Predis/Command/StringSubstrTest.php create mode 100755 user/token_data/tests/Predis/Command/TransactionDiscardTest.php create mode 100755 user/token_data/tests/Predis/Command/TransactionExecTest.php create mode 100755 user/token_data/tests/Predis/Command/TransactionMultiTest.php create mode 100755 user/token_data/tests/Predis/Command/TransactionUnwatchTest.php create mode 100755 user/token_data/tests/Predis/Command/TransactionWatchTest.php create mode 100755 user/token_data/tests/Predis/Command/ZSetAddTest.php create mode 100755 user/token_data/tests/Predis/Command/ZSetCardinalityTest.php create mode 100755 user/token_data/tests/Predis/Command/ZSetCountTest.php create mode 100755 user/token_data/tests/Predis/Command/ZSetIncrementByTest.php create mode 100755 user/token_data/tests/Predis/Command/ZSetIntersectionStoreTest.php create mode 100755 user/token_data/tests/Predis/Command/ZSetLexCountTest.php create mode 100755 user/token_data/tests/Predis/Command/ZSetRangeByLexTest.php create mode 100755 user/token_data/tests/Predis/Command/ZSetRangeByScoreTest.php create mode 100755 user/token_data/tests/Predis/Command/ZSetRangeTest.php create mode 100755 user/token_data/tests/Predis/Command/ZSetRankTest.php create mode 100755 user/token_data/tests/Predis/Command/ZSetRemoveRangeByLexTest.php create mode 100755 user/token_data/tests/Predis/Command/ZSetRemoveRangeByRankTest.php create mode 100755 user/token_data/tests/Predis/Command/ZSetRemoveRangeByScoreTest.php create mode 100755 user/token_data/tests/Predis/Command/ZSetRemoveTest.php create mode 100755 user/token_data/tests/Predis/Command/ZSetReverseRangeByLexTest.php create mode 100755 user/token_data/tests/Predis/Command/ZSetReverseRangeByScoreTest.php create mode 100755 user/token_data/tests/Predis/Command/ZSetReverseRangeTest.php create mode 100755 user/token_data/tests/Predis/Command/ZSetReverseRankTest.php create mode 100755 user/token_data/tests/Predis/Command/ZSetScanTest.php create mode 100755 user/token_data/tests/Predis/Command/ZSetScoreTest.php create mode 100755 user/token_data/tests/Predis/Command/ZSetUnionStoreTest.php create mode 100755 user/token_data/tests/Predis/CommunicationExceptionTest.php create mode 100755 user/token_data/tests/Predis/Configuration/ClusterOptionTest.php create mode 100755 user/token_data/tests/Predis/Configuration/ConnectionFactoryOptionTest.php create mode 100755 user/token_data/tests/Predis/Configuration/ExceptionsOptionTest.php create mode 100755 user/token_data/tests/Predis/Configuration/OptionsTest.php create mode 100755 user/token_data/tests/Predis/Configuration/PrefixOptionTest.php create mode 100755 user/token_data/tests/Predis/Configuration/ProfileOptionTest.php create mode 100755 user/token_data/tests/Predis/Configuration/ReplicationOptionTest.php create mode 100755 user/token_data/tests/Predis/Connection/Aggregate/MasterSlaveReplicationTest.php create mode 100755 user/token_data/tests/Predis/Connection/Aggregate/PredisClusterTest.php create mode 100755 user/token_data/tests/Predis/Connection/Aggregate/RedisClusterTest.php create mode 100755 user/token_data/tests/Predis/Connection/Aggregate/SentinelReplicationTest.php create mode 100755 user/token_data/tests/Predis/Connection/CompositeStreamConnectionTest.php create mode 100755 user/token_data/tests/Predis/Connection/ConnectionExceptionTest.php create mode 100755 user/token_data/tests/Predis/Connection/FactoryTest.php create mode 100755 user/token_data/tests/Predis/Connection/ParametersTest.php create mode 100755 user/token_data/tests/Predis/Connection/PhpiredisSocketConnectionTest.php create mode 100755 user/token_data/tests/Predis/Connection/PhpiredisStreamConnectionTest.php create mode 100755 user/token_data/tests/Predis/Connection/StreamConnectionTest.php create mode 100755 user/token_data/tests/Predis/Connection/WebdisConnectionTest.php create mode 100755 user/token_data/tests/Predis/Monitor/ConsumerTest.php create mode 100755 user/token_data/tests/Predis/Pipeline/AtomicTest.php create mode 100755 user/token_data/tests/Predis/Pipeline/FireAndForgetTest.php create mode 100755 user/token_data/tests/Predis/Pipeline/PipelineTest.php create mode 100755 user/token_data/tests/Predis/PredisExceptionTest.php create mode 100755 user/token_data/tests/Predis/Profile/FactoryTest.php create mode 100755 user/token_data/tests/Predis/Profile/RedisUnstableTest.php create mode 100755 user/token_data/tests/Predis/Profile/RedisVersion200Test.php create mode 100755 user/token_data/tests/Predis/Profile/RedisVersion220Test.php create mode 100755 user/token_data/tests/Predis/Profile/RedisVersion240Test.php create mode 100755 user/token_data/tests/Predis/Profile/RedisVersion260Test.php create mode 100755 user/token_data/tests/Predis/Profile/RedisVersion280Test.php create mode 100755 user/token_data/tests/Predis/Profile/RedisVersion300Test.php create mode 100755 user/token_data/tests/Predis/Profile/RedisVersion320Test.php create mode 100755 user/token_data/tests/Predis/Protocol/ProtocolExceptionTest.php create mode 100755 user/token_data/tests/Predis/Protocol/Text/CompositeProtocolProcessorTest.php create mode 100755 user/token_data/tests/Predis/Protocol/Text/Handler/BulkResponseTest.php create mode 100755 user/token_data/tests/Predis/Protocol/Text/Handler/ErrorResponseTest.php create mode 100755 user/token_data/tests/Predis/Protocol/Text/Handler/IntegerResponseTest.php create mode 100755 user/token_data/tests/Predis/Protocol/Text/Handler/MultiBulkResponseTest.php create mode 100755 user/token_data/tests/Predis/Protocol/Text/Handler/StatusResponseTest.php create mode 100755 user/token_data/tests/Predis/Protocol/Text/Handler/StreamableMultiBulkResponseTest.php create mode 100755 user/token_data/tests/Predis/Protocol/Text/ProtocolProcessorTest.php create mode 100755 user/token_data/tests/Predis/Protocol/Text/RequestSerializerTest.php create mode 100755 user/token_data/tests/Predis/Protocol/Text/ResponseReaderTest.php create mode 100755 user/token_data/tests/Predis/PubSub/ConsumerTest.php create mode 100755 user/token_data/tests/Predis/PubSub/DispatcherLoopTest.php create mode 100755 user/token_data/tests/Predis/Replication/ReplicationStrategyTest.php create mode 100755 user/token_data/tests/Predis/Response/ErrorTest.php create mode 100755 user/token_data/tests/Predis/Response/Iterator/MultiBulkTest.php create mode 100755 user/token_data/tests/Predis/Response/Iterator/MultiBulkTupleTest.php create mode 100755 user/token_data/tests/Predis/Response/ServerExceptionTest.php create mode 100755 user/token_data/tests/Predis/Response/StatusTest.php create mode 100755 user/token_data/tests/Predis/Transaction/AbortedMultiExecExceptionTest.php create mode 100755 user/token_data/tests/Predis/Transaction/MultiExecStateTest.php create mode 100755 user/token_data/tests/Predis/Transaction/MultiExecTest.php create mode 100755 user/token_data/tests/README.md create mode 100755 user/token_data/tests/bootstrap.php create mode 100755 user/token_data/validation.inc create mode 100755 user/token_data/web_runner.py create mode 100755 user/top_hosts.php create mode 100755 user/top_teams.php create mode 100755 user/top_users.php create mode 100755 user/translate.php create mode 100755 user/tree_threader.php create mode 100755 user/uotd.php create mode 100755 user/uotd_gadget.php create mode 100755 user/user_permissions.php create mode 100755 user/user_search.php create mode 100755 user/userw.php create mode 100755 user/validate_email_addr.php create mode 100755 user/view_profile.php create mode 100755 user/weak_auth.php create mode 100755 user/white.css create mode 100755 user/workunit.php create mode 100755 user_profile/.user_gallery_1.html.swp create mode 100755 user_profile/profile_alpha.html create mode 100755 user_profile/profile_country.html create mode 100755 user_profile/user_gallery_1.html diff --git a/cache/76/get_project_config.php_project_config_platform_xml b/cache/76/get_project_config.php_project_config_platform_xml new file mode 100755 index 0000000..8d6588e --- /dev/null +++ b/cache/76/get_project_config.php_project_config_platform_xml @@ -0,0 +1,21 @@ +s:843:" + + windows_x86_64 + Microsoft Windows running on an AMD x86_64 or Intel EM64T CPU + vbox64_mt + + + + x86_64-apple-darwin + Intel 64-bit Mac OS 10.5 or later + vbox64_mt + + + + x86_64-pc-linux-gnu + Linux running on an AMD x86_64 or Intel EM64T CPU + vbox64_mt + + + +"; \ No newline at end of file diff --git a/cache/7f/top_teams.php_sort_by%3Dexpavg_credit%26offset%3D0 b/cache/7f/top_teams.php_sort_by%3Dexpavg_credit%26offset%3D0 new file mode 100755 index 0000000..c856afc --- /dev/null +++ b/cache/7f/top_teams.php_sort_by%3Dexpavg_credit%26offset%3D0 @@ -0,0 +1 @@ +a:0:{} \ No newline at end of file diff --git a/cache/e6/top_users.php_sort_by%3Dexpavg_credit%26offset%3D0 b/cache/e6/top_users.php_sort_by%3Dexpavg_credit%26offset%3D0 new file mode 100755 index 0000000..8eded06 --- /dev/null +++ b/cache/e6/top_users.php_sort_by%3Dexpavg_credit%26offset%3D0 @@ -0,0 +1 @@ +a:1:{i:0;O:9:"BoincUser":30:{s:2:"id";s:1:"1";s:11:"create_time";s:10:"1528397871";s:10:"email_addr";s:21:"carlos.red@utexas.edu";s:4:"name";s:6:"carlos";s:13:"authenticator";s:32:"bf4db9c5244cd84ab3e77d891689253c";s:7:"country";s:13:"International";s:11:"postal_code";s:0:"";s:12:"total_credit";s:17:"460.2835407888576";s:13:"expavg_credit";s:17:"26.94205008746586";s:11:"expavg_time";s:17:"1529507326.032058";s:12:"global_prefs";N;s:13:"project_prefs";s:0:"";s:6:"teamid";s:1:"0";s:5:"venue";s:0:"";s:3:"url";N;s:10:"send_email";s:1:"1";s:10:"show_hosts";s:1:"1";s:5:"posts";s:1:"0";s:7:"seti_id";s:1:"0";s:13:"seti_nresults";s:1:"0";s:21:"seti_last_result_time";s:1:"0";s:14:"seti_total_cpu";s:1:"0";s:9:"signature";N;s:11:"has_profile";s:1:"0";s:16:"cross_project_id";s:32:"3eee9423e0c414f376748e6ee10b9e8b";s:11:"passwd_hash";s:32:"906640d0b0a2fa718a310214b2382974";s:15:"email_validated";s:1:"0";s:7:"donated";s:1:"0";s:11:"login_token";s:0:"";s:16:"login_token_time";s:1:"0";}} \ No newline at end of file diff --git a/cache/f2/server_status.php_job_status b/cache/f2/server_status.php_job_status new file mode 100755 index 0000000..c622093 --- /dev/null +++ b/cache/f2/server_status.php_job_status @@ -0,0 +1 @@ +O:8:"stdClass":17:{s:4:"apps";a:1:{i:0;O:8:"BoincApp":20:{s:2:"id";s:1:"1";s:11:"create_time";s:10:"1528396980";s:4:"name";s:12:"boinc2docker";s:11:"min_version";s:1:"0";s:10:"deprecated";s:1:"0";s:18:"user_friendly_name";s:12:"boinc2docker";s:22:"homogeneous_redundancy";s:1:"0";s:6:"weight";s:1:"1";s:4:"beta";s:1:"0";s:15:"target_nresults";s:1:"0";s:11:"min_avg_pfc";s:1:"1";s:16:"host_scale_check";s:1:"0";s:23:"homogeneous_app_version";s:1:"0";s:17:"non_cpu_intensive";s:1:"0";s:19:"locality_scheduling";s:1:"0";s:14:"n_size_classes";s:1:"0";s:19:"fraction_done_exact";s:1:"0";s:4:"info";O:8:"stdClass":4:{s:3:"avg";s:6:"0.0300";s:3:"min";s:6:"0.0200";s:3:"max";s:6:"0.0400";s:5:"users";s:1:"1";}s:6:"unsent";s:1:"0";s:11:"in_progress";s:1:"2";}}s:21:"results_ready_to_send";s:1:"0";s:19:"results_in_progress";s:1:"2";s:24:"results_need_file_delete";s:1:"0";s:17:"wus_need_validate";s:1:"0";s:19:"wus_need_assimilate";s:1:"0";s:20:"wus_need_file_delete";s:1:"0";s:20:"transitioner_backlog";i:0;s:24:"users_with_recent_credit";s:1:"1";s:17:"users_with_credit";s:1:"1";s:19:"users_past_24_hours";s:1:"0";s:24:"hosts_with_recent_credit";s:1:"1";s:17:"hosts_with_credit";s:1:"1";s:19:"hosts_past_24_hours";s:1:"0";s:5:"flops";d:0.13471025043732929;s:11:"db_revision";s:5:"27020";s:11:"cached_time";i:1529509984;} \ No newline at end of file diff --git a/ddownloadxml/config.xml b/ddownloadxml/config.xml new file mode 100755 index 0000000..9bd9ded --- /dev/null +++ b/ddownloadxml/config.xml @@ -0,0 +1,107 @@ + + + + /root/project/upload + 1 + boincserver + 3 + 1 + http://129.114.16.64/boincserver_cgi/file_upload_handler + 0 + 1024 + 0 + http://129.114.16.64/boincserver/download + root + /root/project/log_boincserver + /root/project/apps + /root/project/download + 3 + http://129.114.16.64/boincserver/ + boincserver + boincserver + 0x1111a373 + 1 + /root/project/keys/ + 1 + 1 + + 6 + mysql + 500 + 0 + 50 + + + + antique_file_deleter -d 2 + 24 hours + 0 + antique_file_deleter.out + + + db_dump -d 2 --dump_spec ../db_dump_spec.xml + 24 hours + 1 + db_dump.out + + + run_in_ops ./update_uotd.php + 1 days + 0 + update_uotd.out + + + run_in_ops ./update_forum_activities.php + 1 hour + 0 + update_forum_activities.out + + + update_stats + 1 days + 0 + update_stats.out + + + run_in_ops ./update_profile_pages.php + 24 hours + 0 + update_profile_pages.out + + + run_in_ops ./team_import.php + 24 hours + 1 + team_import.out + + + run_in_ops ./notify.php + 24 hours + 0 + notify.out + + + run_in_ops ./badge_assign.php + 24 hours + 0 + badge_assign.out + + + + + feeder -d 3 + + + transitioner -d 3 + + + file_deleter -d 3 + + + script_assimilator --app boinc2docker --script "boinc2docker_assimilator files" + + + sample_trivial_validator -app boinc2docker + + + diff --git a/ddownloadxml/db_dump_spec.xml b/ddownloadxml/db_dump_spec.xml new file mode 100755 index 0000000..06a0cb9 --- /dev/null +++ b/ddownloadxml/db_dump_spec.xml @@ -0,0 +1,27 @@ + + ../html/stats_tmp + ../html/stats + + user
+ user + + gzip + +
+ + host
+ host + + gzip + + +
+ + team
+ team + + gzip + +
+ ../html/stats_archive +
diff --git a/ddownloadxml/ddownloadxml.tar.gz b/ddownloadxml/ddownloadxml.tar.gz new file mode 100755 index 0000000..e69de29 diff --git a/ddownloadxml/gui_urls.xml b/ddownloadxml/gui_urls.xml new file mode 100755 index 0000000..b81e9ee --- /dev/null +++ b/ddownloadxml/gui_urls.xml @@ -0,0 +1,30 @@ + + + Message boards + Correspond with other users on the message boards + forum_index.php + + + Your account + View your account information + home.php + + + Your tasks + View the last week or so of computational work + results.php?userid= + + + + Your team + View information about your team: + team_display.php?teamid= + + + + + + notices.php?userid=&auth= + 86400 + + diff --git a/ddownloadxml/plan_class_spec.xml b/ddownloadxml/plan_class_spec.xml new file mode 100755 index 0000000..379916f --- /dev/null +++ b/ddownloadxml/plan_class_spec.xml @@ -0,0 +1,11 @@ + + + vbox64_mt + + + + 30200 + 1 + 32 + + diff --git a/ddownloadxml/project.xml b/ddownloadxml/project.xml new file mode 100755 index 0000000..4291485 --- /dev/null +++ b/ddownloadxml/project.xml @@ -0,0 +1,59 @@ + + + + windows_intelx86 + Microsoft Windows (98 or later) running on an Intel x86-compatible CPU + + + windows_x86_64 + Microsoft Windows running on an AMD x86_64 or Intel EM64T CPU + + + i686-pc-linux-gnu + Linux running on an Intel x86-compatible CPU + + + x86_64-pc-linux-gnu + Linux running on an AMD x86_64 or Intel EM64T CPU + + + powerpc-apple-darwin + Mac OS X 10.3 or later running on Motorola PowerPC + + + i686-apple-darwin + Mac OS 10.4 or later running on Intel + + + x86_64-apple-darwin + Intel 64-bit Mac OS 10.5 or later + + + sparc-sun-solaris2.7 + Solaris 2.7 running on a SPARC-compatible CPU + + + sparc-sun-solaris + Solaris 2.8 or later running on a SPARC-compatible CPU + + + sparc64-sun-solaris + Solaris 2.8 or later running on a SPARC 64-bit CPU + + + powerpc64-ps3-linux-gnu + Sony Playstation 3 running Linux + + + arm-android-linux-gnu + Android running on ARM + + + anonymous + anonymous + + + boinc2docker + boinc2docker + + diff --git a/ddownloadxml/run_state_boincserver.xml b/ddownloadxml/run_state_boincserver.xml new file mode 100755 index 0000000..5b76fe5 --- /dev/null +++ b/ddownloadxml/run_state_boincserver.xml @@ -0,0 +1,42 @@ + + + + + antique_file_deleter -d 2 + False + 1529608201 + + + run_in_ops ./update_uotd.php + False + 1529608201 + + + run_in_ops ./update_forum_activities.php + False + 1529618101 + + + update_stats + False + 1529608201 + + + run_in_ops ./update_profile_pages.php + False + 1529608201 + + + run_in_ops ./notify.php + False + 1529608201 + + + run_in_ops ./badge_assign.php + False + 1529608201 + + + 1 + + diff --git a/inc/GeoIP.dat b/inc/GeoIP.dat new file mode 100755 index 0000000000000000000000000000000000000000..e05bf098e71798f98f8c94ddf1f1446651f4812f GIT binary patch literal 1104406 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¬TLd_MB|+UH}RuY5j{!R7O*&u7|SYd5fN1M4^N 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 z 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 ^>W0xMjCxW; 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%0Aep8 z6Y}UCK%W5mDd4sMZnvC$r7&%OBMiPXfctpH0~jvxt^fvVJ_iLbB!Iz|mR$^$PBKg) zCwYXL+%2SePXPBCca@BkIZAkc01pK4PynM@9zXmQGK~CT1-LI-PqZBcv1>)w4O5JdYllz(^8%Z;CYc}g%bmKE>QUfDR;9;5+@6%2r0f`0ZcVj z;!6Qc3t*=Bbm7Y^AW*s0nIUB;zyB%nnwe}qD}Xm;&KAxIV6Mm;0n8IA>Fd6(=J`?< z2p0zM7FU|MTLbUt^ewWJxLB_D0{BSeec=ZId>FuiI{QncEEQ5&Ch~CrD_8?x0s>gh zWyyy>LMr5+Dduw_O;+_q0AB~NN}YZwTrFH9{7Sf1$Y59JI+@=HzZHHbTrd1y$lxCW z@bkK6!F>2H^a!hkUZGFOV8-wW$P5ZY!muzRj0zbX4P&aLxQ0z-I9+rmzwozXz~2fIlVv zA>1ZpC4U9VKT}Wgx8`KK&CE`2=|TLXuz!WjvnzmlLF^d>g7y|5Sbi;Vb562XuyT{U zxAc92*w>W(r0|Yn@5tqv7AEQn?z zhX-+_$PvQD{AL2*aRkeM>w1)s9r0)p#4!qJ8N^9J9LrGz%fBOZToA`gZzZJS;!goQ-V0vTns)<-qS6{HKBf{l(T|3JBahd&k3S!5a$NbE?9Y$X)pap zz1+BdI|R|uX83%0FA$bj4qpPqFAm}okxPTPDu~O1xH5>#)#?gs%lJ-p8eSd5wLx?a zR&L<0k?RcI#xw2pLG%rxOAt2)(N!*r-Gb;I#7#lmU^#EJgszxdg6J)!hp?xxR}i<_ z=s2!E5^odIyxm;=f*2^Vzwi#>ok0u;;s=fNE-B=LLjG>9Q4vb;v`Q6F+PZ=gP0JkeE7wWz@CwpEW9vI$=Tgba9H`YdZTJBT^rb4_8)ydd5Q z;!Q2)`N9Rlg~GRlZwndBg}o?<4}*AD85RrQ6TUC}K*%r#^H>tZ(jY#O_)!qcg5}-* zV6C2kPX{J~sRK}02bgw;WKg9wWIg#I7`b`|jKgo23344cT_xxd92%(JW}31L!5 zS1O3KaRz6^vq2O^azW%RRY3}SDH&n>#vpzV;wLFIHwE#t_%A_h5&1QU&9>cf>*Mj8 znOlR{p_o5}+k*Hri0wiA#Vu54>Tl`f&fLjOK2+Y@|B?Q05W9kvKW48doj0X>i0o-5 zgZB#Iun_hR;lL2~k-o2RzYq=(X%NExp~`CqN5`X~nTfhr9(uTnAtRh zLyfaX9?fJP9>NhKM_R(>GLI6nqZT5JKPH5h;>U(?yvT7vev;nG$p1n(!MN+Cwak-3 zI9cSB5Ka~0?sS^S>B2T9velU(oEySfq4Hmto-I5_*jCt1*j~tB#_%{#W(Q$M;rYS~ zgck}Ke6f1DM0lz2vJkEmxjcj`Sfpl#*eQh0AzT$I-)_;oS}t-P%){f_5Ux{0^6N#q zgwQpF?jdxunRI800XK%wM=>{raI?rQ!X6>q8bZ%d`MpmsA%n?#%S%F&$890p9>Sd= z^tH_W6wqIIhmd^@2w`vtcgY+m9Aqvg84|+q5Qf@R43o>v9=&&m@IVOnsD^v3lKVm! zDL%@S`_+ntjTU*(%!fjFSo{%FT;-3+923IhA&e7$LO53Vq;Lo~f06NKP6&bG(?aHX zHiQ>Kn8*dp&0qMuaFTGcaEg$@jCoOcrV3vYQk)jTbn%x>VepI)-Vb4B2=gSq8p3NK z%ocxLI7`UwZjO<;q4KNb8$xDyGlWHQ%@1Kg2ych5FjU^F-x4x_{2c|jU7E_fG8YTq z6AtBDiQSkXs2;bQd*eR9oL-;|i4QlAt_K#YSRkkdvg|=&7>ga{r${_e*jjj!@MPg&e)-b~Tb(XW z(njQrFwPX=Nk1!$v&GLbg<nZ3feHH_ZkypiV7Cyd+7WMp6Qe!~93JHoh2H_QURlcG+nh1gfUvmgTjY|ZiPG| z&ak@_{8$)cq}(aRIuLb(H7DCkZEqF-61`(3bnZ zOx7?pjF-fxh4He;bc=k&2*YNIzbd5pS{Sc~F<0iSFlO6Ynqy7g5SeG@n-;*f3&L0! z#yerWB`=k?MckJJ7KQO{7>mP|H!dNA97{7=j;^uRW#e5aU+A!9I@pT>VH|Axw@51;YjP<5` zAI1jbyu)O_KZa2y#UtdMGexhsFN~mwUl^z}OCc%O^6UCxB*de_m@qEn7?UJnq+~KU zZG>H9!pO=bXPtTRg0N_MNrazAZw%uX@t=g7!uVOl&Ec=&o5R==F8@&s6Y}^?BA4aX zF#Z<*BaCe#e}?gw2xs6^I}zKZ>=5o0GWowEyM*;3*dqc&Dvy2G#hww=H`7(JcLWV0 z*hk{N!u>43RkeQv2S{lsq{zQ$XcR%y2o93cID$hWusJy%8!HGC{BprOD}oLYoE<^C2+onnn6{D1W3Kj6&W+$ak)itB zgaI98o^SCNi14BGMIsjqFEQ_>k;)mr+>|RKxKg~6kRxJkS4Yq-g3b|K7r`~sueEqi z?DY|Jji8Gr+|7Wy%DP8za|Aai^2P{mviW3@TvxY5&{M7+HX`c1r0|^fw)}lWZj0b{ z5tqN8c>f3nh}^-hMK}rN; zdLIxUZOVfYJS4vR+Ib{`N2NSwF=HbCeQ)iF2*yV6lw3~=$Jxw`m&q?zXQP5xgG3OvS${WT&r1 zD&Gv8C1tj74n@=5EX|8xp1Dtf;AC*WmR#! z6u*w(I|ZzZ;2VqlHd6UJ#Pw2KB!f3Z@PoztC{kqs)uwwR@QM3{+#J}DM=*krlyC%5 zk%-Xk05RhU5ymGYNQtLSanqZLAZto4g1m7)DlCeZBG?o`t@y?WeyXzq-9Ubh;1_Gf ziP|i_C4#LH{3iap&=tl?{*bxNb_^i>;km&AH9sc>`H zLwrwRebc!;?j1z~nfnO$jbc9$H)OWmKZ*nDC!YJ+A^n&rjumMsWWaGEyenp>t)e*D=~0{zMe8U|l<9WD zlf-w=)C(7aUSGNBvz72;P4J4Gw6HCM}Id}onsgnUzW zo$1#{(M7y#6y2ibznWwvJlNz0={H*BO;OxzgJM9BC~l9UXB54o=w>S^%5(iQ+cX z`J;t>qqrlAep31i-TdEaF$3zf9Vl^-aB#G;XAX_x?kI*?{O~A7h`T!k_IOVe_eL>N z;(fN3Mn!SI6xQs{>1de`M)61#4~ai4WCq4OsxlrEx<7_`Jc{vAJfWDeQH+b?NsH%C z>px|@KR18zr=xgAgxPp7?L>=tPUQJ0CYi#3DaK!j;>9SYYF)9_OQthsdK5FGcv;FT zrq8e$d)1WJL|&IZgJ1rXIVXyFB6Fj7!y@;#+St*2i3_4wXkPaCw()mF775=K@*`2U zdM}FiWqu%}@}UUZk}nniD2in&=HogpdY4D>sgxDM&xF+Z!m(2P3*qkT?n{}gZMn4MA7kKvyv5W~Mw)Qgq(v0dgRcdhn_m0un9 z6jIzPhJD2MRyljXo zRd!Lg4o`{U^cYT+mw8UJ@wPGLjM#s#UuVT|wshBT+ZfK1*-qGAc&=sWAd@*eikvT8 z$>%>YTq=H%@M7U5F{Ct>%Vb_Iyh6D99CcFWtAtkzJ6piDF?5r1T@2U9&{e#PkOlBy zlI}8Zh~XxY8_j#O5ytcoC+QhOuNZEv`V-Q}ns;0b&&2Rl3{NX;yl_IDRP6WJ7^cK9F@{MoJQu_B)|M_N zoLt9zA%>}H`=Vudsg8Gg46nuTvRtpkFf)c37UpVx)q-D_K1(>eP7HgT8^aqhER10u zXGzoeW(@ORJl>M{b`0;BxX8j5OL;U~i7 z=3+@J#6J^0qLNmM)AfZ2ZxX(YVOH|X zgXuqtxLYz$4AnB-mF}y<0~%3K7>XehLs*;zFnQF*OEYeIB8H@RDu#5O0LEu5CL2S} zc)m_dF@}=qwJ~fo&bI7glgyumzr^sXh;wa;;SZU=#qhhx);iv8G5j6FpHlv+qci9B z7?isKZSCtJ*^M(8~~j`QMZ6Gz)P&WPjeIL@># z&a$v`j4+-@JDKf;=bEd7k&bbkFMfe3Y;sW?J>s}Hjw|B0#PVONfXjrJTkw@}To*?t znODVeje@U^qqB$`9r0RAa(x`#kIN8@-bjtNr6#PN6>Pl`Vw9BYxxIWCT; zl!tu0=}*ToC5~s}cuuZog%hp2=S3!&IoVn<1FL#5j_GksmH3j7;xr3>*@9m&Wo8_2 z#_?(#bK-a{j#+WMZZ0OAE$%Wi&)hiPh-01wP@!vn9B;+3K$#a>e!6(P9mhL$ly}7! z$MHcN?}@)Jba_4$UlPYhaV)hin17jcSHmZ9d=ba;I6jm3sc?k_GtcMZE3L_@IKGPG z%Q#kB4D+lp@7g%liGOVhGkjzGJ2headQ&z?`N8xb8v+SBe{v-y#Dd z?zS@&M>vkCl!%ZYcJPQ9XR3sFGLDo;TIh0S;>gR)#*q_oPd*FcY|GcXl6Y+#o8s6Q z$4@d{^8!Erwa6mB{3*U!xJBrm6)?~5acq_Hhmgv)IMNy^`Ck(M7H${rh+}6Q|A^1! zQc>itIQB@OUZTAJL+EZBXznSqzHqNPu6@M!74DZn1CasBc7QnBHWWE9fkviGQ9xsv z2MZ4oHW9LzLlZbWfx{Bze^Jy-NHUerop$XyLMD0h1ddDKs03OjaI_k>NZ=R|K7ZhS zxO;IwR?7eQ`ELRzB+$y4Le|CyASa5qPT-_O`7hk5RPO&1XrI8T37nb0X$iDZ*y$9N z{0x}`G?23rXq&*<37nJo?{}z}q@7}zupxi{ErE^+oTq>e(p~T8i(inyg(585tq^)I zmU2k~mnLv|0+(4Uj^zsDd^`{aTFJ*#~xcFzJJS&_i zWF)tm=M#7-fk_FxAaQa6Q_Rc7!?rKVoSLZo%b{s9rzh}=$jgb!Ctu9Q`Jb7jb`$cO9=LJ5%2#Du0x;J^^0>-zV^60vi;@`hO5v%J2Ut zP%Z8evL3I9tHCcGNFXE<6uMQ-$VdXI1fmHfq{kA7*E##_B`KY$(g|eAWm3j zG$qfSP?Z;@loI$kf!YLqlDSc1VUL?Eo(uRFaVGy&gk#x~z@Os3CGdL!e~53jxnjTD z5|ytA{-q`Kw*sg$$qwKa`ALC z?P21q`S2u;uqH=}G*>0e(2&o6q_jw)WfI4Tvn^X4o5b-lkF&C!{y&K)Bymy_CnnKa zCgYvgky9j|Dm+cio$d-dLptNnOyVr#3^+%;t+1WYwPNJCGS5q*gGk3D&KG%$fBYqK zq3|LT+2oQWu8?`D@G{}$LY8r*NGIV{!mEXyh1UpOwbzL=;q^&$5$~GB4I3q0w^VLTqIVMgB=$+-wq)h!VQ){OuW@cE{S|PB@J`_X z;qJSafiedP2PZK^guU=}e3%qEXYIZuMket<5~Gs1-@NWlk9kHX z@u1}#&cFXk;!&B82suSA$ry`yT;vJM^Q7tHM4n1wyomdJf%%_K;+Z6#mFQkNCyGC3 z%A_P-OJZ^o(~_8y#MC5SNa97VcKu$x!ZwmOGm@NM#)K)t?+miTG3gf90|4!oHB(^89Gl?B)MbXXP zKQhUkNxfdGyfR7lNMZjJ_Do^l6zZq2cdEQZ_Y%^(PpZ6Bc({i9rO?0>c6vYxjZ$bR z<-j`nLB<=4F!B&nny_E-LxnDFGx4T%X29|0rgK7$PF0>+ksp)7ajEkD&{E>D4t4u< zym%{m72x(p;)yA=PT}MfPWr$4DKbw@RlYKGI!Ov`Ear?loifSUDYQ@FoD|wBfR(f} zLNAYVQ#jAscCfb8&lkU-PVhzI7Yi>D@->2ym!)ud3Rl!=d!=!9ca`|nDRizQUYo-8 zGOx4zjO-%bHHB^|bT^&(>AF#-<2S3}Eke4S*fWJ*rravh`~PNO*zGCwm8+jz{kdTN zznB3j+$C|KaFCE~FX#9FQy7uLP*aAbFkIZ#aJT9Ah}^4=*l?uGQ7Jr-!u@sP*=lqO z57tp0PT?_`j|d;N3}aGw+`^s^aYH6PnZh`Qu{=oD}9- zfJ?%dd8W)4S&+h8A`4A-k?*ANu9QVq=VF=6@LmeAccs`UlbIJ5groTtpj7!Tx|Bk#DQx&t3cseXDTQBB_}OYGCsc*3XLAZ$Qutl2 z--L8+<$kCn4B+A7|CI8V>D!IayEBD7()cHZT`Bxqrx)He)k~N6PoyiGD*2vi)R#!U zR~>yHiTkFpU%LEuqk)iwVFy@zLyK=Da*(jGiL8Xd4x6OWG>t>$Y9jqGC8785G>)() zj6YI(bMqc8(jtwPX&hrB!;TdvInKmZMkt}ahnNaG?Y7pB1-#zkIi4KGy~d%R4_!ArBE5DjX&p zE^K3~`tCIDk#et)y(HxtX@%V{{Q==yVKer58egZeGL0|O_`(clpjqlR#XBxFKi^7s{ z2EY81#?NW|By*FHc{r$F#D5hIQ2s6E{Y`{zx2Cb3XFQF+(%5F+KSh{7YN;HVyla64#_X6!KK#r zvKm}2?!KjbrFf?rTvLOqYH+noH+!AM-Boj~_;o_pMVA_MmD#NZH;8nvQ}c~d*!Jcc z^sd1zGJDjZR}Ffai-p}PPVx%B{3(8$DYuKTuYNVSQ@no-?l3Pi52(SQ8r)^dK#^l~ z9tVpL5xV+^)nK?qj^HpAc8@9d*5E$zkwQ1X`)lx!%m->P+9Dqm;d*#j_g4?;P1`QVm{`GPwp*YVe}? z3qsD`R1vqfr-@Im!OJ2X&MQVZ)iY}_s|K%1c}@7b&`lHrX3LyYgSjG9m|>pyn>AP{ zGGDkrIDudOslnUgE{VfMQr@k>Vv+Z1@V?EwJ53+f;3K(~2$u@!T2_PQH6Zy|_=%8Z ze5!yI7DnZBagvoHU({fgDZHpx*Wl|KtTE-Q8mu+W@4&A!{*7HJ-E9RnVE;Sjr*7CK)u%{P(?0j_9xqj>(`|2F)`#Tro#vaHI&m zZa$C7phX5pOLS@3FI_D&I4)Cuy*O4#@%Ri{Wh&qBr1?KJ;cw%dn8C^7t%WC9{3$X| z6*B&`%zw|E+hlNt^fQHLS&S>-oDAAZX_vvd8MHU=m%RBGcWbhv>F0}Fkimu41@l~N z-b*sL)c9pKKUZ+7Gq^H?tJS1a23IL&_Y8E-;2LY?#Oq{UpFtN9cbRvynC>Ds21pM{N@a9$)Klr4OBo^@D&z@bs^J;jm%)e(?#v1cAVIwmbmBIbeo#=3M1`kSnNcgaj z@hs-i44%l~F;m8fJT7#%lw&h^Qsy{|aepQ-K7$ETp3Y!m2G3;htW54*?w949!bNF=a*uGsRyOMr@v6&tR66*+SRvTyf@k zLu6hCZ<+Z5M)Q3mg3utefw;d{dOg&$<_A(y2JAo5r$^CRIh;m5*H zge>DzHC!S5EQ6IIp9^o%r%qpFu*yuvuNGe;5TaygC8xPc^Jlnq&fqibg!Kee+B{DAJ~vFp$sA!gcY_xHAFLrWhy_C!%5>@ zCFso{shE^7Ep%UO$cSf!>^E1(RS00gX*L#FQo?O@)UF zIX}(Jdw3Q{WYIi}Bc-?jvaqAFm3P)HEb^EvS{i3D$B7>=Y{gEqXrT&Euo(8zI*T*2 zI4O(Mvp6}6Q{_6vDrB{%NpYRF$>I!|?)04{ezuU2=ZJ6EfCxu4FpCjc49a4tl)=Iw!qKX8SQf)&GAB>m-QxEM?-g=F=;ARl zi%}MNe-;lIck}jO77u0dcoq+5@mLm*WbvrYn49@Aig)}8YdhA~z_=_XXYo`P&tx$^ ziwSDW%ug%QEsSTgcs`4XSv)7veXQ&fPLjem+EXku+rDUgY8EeLFyaaR*(#i2 zku$S+)%a^7e4a2Xi#Nn)3+D*u3OPCRMBX%$X%~o-EX?99aTfVDSBs``Q5Nq@d^d~5 z7Wtl?%@0iZP-ICKOSAYmi;onr%)&UjPZY3R=uW|kEWXU*vn*C-@ws#^IhOH-_$nby zma*FS8j-Jr9Lv{PtQTJ={3eTUv-qygjJdV_y}TPZEqnz^yKa z%-L8X>m)x!yh#pCb2u!ALuFE5AaAo=Wo1%1LarloXl^k_<;tI-(AC0}V?F4kwv%at^16^L3op*JgARkL#Qq z+U9U>4()Q4KhJNkn7O?F7wKRoyFOo>NLIrPX?eg@fHT)lGW zE$^*DC-xEN+P+<+Zw~!M`UzRsX4QOW4uf(SAn`8YK*!}BEIvfYs)mZVK@HDggv`6m z%f9Y4exJz597c(_CJ*HBFxQ5Z2QBg;tz@3QM@)ItR@WFQj|-m=juq}+$>VZ(O3HZQ zgdCn0VYbTtpTndaCQ4-e&*kvExT|Nf_!RTLU{}i29A1|Al5m=Ey0E~TKoMq}k;4Mb z(yOL0?d!&8iOkMnjwzg)e^+F&UHk9L{6P3& zu6#Q;O!X|yVY$SQa#$wvaSop-fMvVc`&9Z0A;r%u=gJ&bOZ*~-RU%(n4Bs!W5&tTO zwU+H`^M1!K{~P}{hwqH97vb1940JBL5z`pY8uUU+*BJ9F4!3J3C!I0?rq+EP1#SRK_2^yL^Vqd&3j-Tjl>T!#ZAk>G7k|p5%RnrYB7h2G|S`g zJdVg$UIko3*3dkUqb&01JX(nF_O{I9SSiQlal8mG(pDl1RND#S%yXhhYs-JK>8Ipz zsyG{-CgPH}$>R)*IWv#5jMIBg9_Pwzn@2m-+vop#c644I9i(@ZI6#$LkjEu?TxjtZ z<#Dlbc73V%Wu{zi*{;l^v&2rqtMa&7gcHa?U1Rarid-k;z`KZa&Ep11QT`@5p0N9(PKiIUtX_@)#(y znX>Up8Jx$kJcdXdDs&w&ez;7o#=G-)K>VIO?#*Ll9{0&)3`aLAkNd5mYdhM!59aYu z9uLdpnR2J{(LA2W<1vY2gpUjPQx8lyR{TlfI3Y#4#^>>D9uuTIt<&*LzWfC|dfDm3 zJSOGwoV?FlD^^bLWSNY4LF7gAPPMf+P0I8AuIemkCnz5vnr3ZGQZ4YwaA)0zRH)s=g;x7 zFgE$x;@9Qzjkxrk84-&r@ZV*^X zP#$3sS3d)yGGjuPln_Z0MN-0a9z|u#$jl1e0?3OOgvC5+^C*eC(QOoGFRYokN#@Ua z{37zJc{j_uC6C|o_(S6Fd2BT=Q*AT;r^qsX_$#tKkAFmV2zPRsDb>F+cjZy9P~Q2+ z+7#^}bI$_y7O7vrULvmAeG1sGfPJN~m3yetpitTC4v^lkfJOxzSf|xN7VoC?V3~&$ z&_txEc?a|Pe*rBDXjZ_H5)T(1Q7C_=#_o7DFW{&Gj+V}Agv#y0W2Ce!;8+proc!Yp zIH7=6ruspKCNUs;~BBaTL-Nd^WaAN^Ch`W<=Q=OPw3b?g^9#VP=dkNW` z!MzLUS3sWvZkKplq4Mspuf?#V{sr7A^9~{BjmH3-a?b;Am{ zyMWRz%r@Tm1d*o;<$o{2f}b^gVgb*IKVQHkogKECt(Ym&Ul6`1oGNrhP7`OU z=>@zj{)#DXA_vn0+I&M9E7&H@wig_x;$%#-U);e2bmuz*Dcye08% z;X6Y2!N8x#i0o4V3U%-zAY%u)?8*h~< z9ue*sUJ;+^{sJ24sXKcK77&si7Dj|_x1={#KwL^fNF`~#q)n+QAS0eN#SJQ7K%s!z z0*a=W3YBlRY?Sho(Dn7R_%8))5&5-%%_1(FOkL8ztifAdb zh42{F&nCwfalDk{ieMOnTgh~s2~SWNCl=AVh?A@&hS7D3ndGO5lbl{e8{@pV&J;gO zc(%}e?$g#{+7;2hSlOWHI!}5BVMmLheu4OfLS7vg6)XSpi9KE-kujGQaeWb&7jduDW|_B`*uz!@ z=ckvZ@m68)BKn9hIbF9GF{p^XMGPpSUlDf{(Z7!OPH}!>$jG})AE?Y!21^+tq&ZZC z?}EvPi;ocAExbo~5&!sCgfSzF7$ttcu#Fm0A1(7iPMws8ix^+TBSnlU;!$h+m`)Re zA1~s`BAzH>tXv$FTYKY*cuLBrQW!a*i06uUx`=0sc*cUM^O$Jn^F>T9Vv?E8J4I7U z{$dfY7crH?FXE*lrWY~IA`e%dmu2!|pHalC;xmPAAg>kSE_SAxRmAKf=E^%q$Q$D~ zMCe`2-~TV-?IPwEv9O2*Dqx7#IS2Sw5%22rQ%1g{CX1L#KXkBI<}o&t?-%hw5lbb0 zC|sgc%>Pjl%WPcC^Re;eMXV{}(;`+Cv7(62)#@`LyIxtu7shF_;g>R33u$ufUlp;g zh_zC_7P@bkex=Lg@qH0h5;qj_LlHlU^Q`fLWsIi?ZxPiJU5^xfML2Ju zh;R`>c|$^a>53E)D#`Vs4XH@M6QT*5gDhOH*17V@Ef|fW?SC>7l9J~EaIOc z{wiWe5q}r4-PXUm`gSUqt(cJbZxOqSs8=fQ>b(3{>F;OvC}E!x_AFtq66%*KuLbn( zZJe*6`srKq=Z9D zXeuv1CgUh59>#c)!%H}-gd<95u7D#;<#$+Y&TErlN0)Gn^cF%kX(>V%&)sn)oK(W` zC7e(~E9xaMIoAWvBOgwlSVC)S<<`T=C7fEqDH8c!+li-@%GU_@;Wlhu!Wku;Q^J`g zoK-5nRQ#y+9&BX;JTwcP3C0ruqBH_hCR(Pq% zWkNP*4OfU?S;AE!orI$~^CfiVnX-Dy^HahtC0tiR_Y$rzp=$|UEDy`>W}J~XlyH;G z8-;_F^vlv!;PYL&`2{{#3JF{opLiIzN&!NN_bs_GvIW(W|uIhgg2zm6|(+$BJ^_Q%okr!!rLMXOL$AfRq_rO zc?pZ8@Iq$V#U;EalYD`C|Dc4WC44B6IhWXZ`AEt#A^+x`e?9R@32RDNUc$-}J}u!h zxmJ`auflBmxfFiI>x&Y;EMb*QR>Bdj7H3RD?*HOzg_KwdI!p9;mJSs`j3>*ryitP2WpoZy|rid|#3M zgbjpj>wez+0GSPIaiEA3530q%G8D{oA?n{tE5jkUPR6z0Fhc#m526z?T;Gud0bkHy?3 za=VbHsh>!H;T^&|YcW8?RnF0I4hKpZRExnPREF4W3^Qf8MlnL>-JAzCyw|+<)ncUa zQ6h5{@IWm_%Y4wh4~e+mAF0KoG9NSV81p_MGFJGcdB@dOKG0`{<7+X&f@wZei|1uN zE1X!1=d6|MYm&^#wU|3!Gq_e^=e79WVa%9qsQ z<6110@{z?X6XCA%iOBL=tf_qF&|%6G!`=4Iv$#(xm`v9^5w=0@$2QZ4k>(fzdu)FM=ipj^9uUnndyV%Jej zW?aaG36Z3b{ibV?b1q>rH_`H;YWusE6MXf}4UVakaREuA0@v}H%ei3mqwpo0O zogI3AufZNWM2SLD#-cJ*$~lm&_i+a@6W5arEAl)ww``t((yVzKy zWj!`A#d}&Qq;s=+v=-l7xPETi)T6DGErsob^z-tvwRn4>--~VPv0Xj3m9qX=>R6BM z*S8X3@y_+wxgK2y@b8%n}4Oaufo3O=_j&Zee+fK0Mic?IY@Z0aK4HkDt=f!4i{lB z{p*{*>2#!&ql8Bb2bhP`eys6<))(6zUynhipHPp%;(m=zH2oxzq4hXf#LxL~%bp@~ zs_?Y>=6eHHKBFFIn&&K$v+J9$Z|5pJ&$8!>Tp;wtFRaJNdW@2Ck>;EQxm{e3OC$xJrD2N{u(aFLiA_uJc*buNUbn^Tc}GsBrz!HA&&* zdfaUOTWb8bir-d`sUp6MJL+*yJ?=FBUG=!zIQRNqf!I5W}AObJ?7Tqd4^z0z#pl=KwR*fL<)wPOQjeFdEryh%?8D#^;jnHlX`q=+28p5$N1+WUkH8W<>D*q z@s-HeLY5k>0eq`)rSQ9YtP=6Zzz^p9QRJt3{4C-xBWuKeG0)n1{92R!&Gg^v@rUt0 z>znV#*!$o0_{a2hBK0-{QH3#K+&m2;4{OZHdZbKG^Wc$~H6>S%yzxRk{M}lq9*y-V zn_j6$Rh)0`IG85!P{i*4Bh6PTros~IBG^F0&&);;!&atmT{DIb5o{xUTj6%*VZrSq=n_FEDLa_nIr8t(wPOT3 zN#8kwT|{{L_yc1%^LLG)oAKQv|6bp^OY9LrPmw*%<4?f7BiP53UJ>**?z8(w(AN~c zN88W%{vsUtfuE1zYY zgFMIhxe=Ua-0#8#?8}r3BN%C%U5tw0a)lR1a7hGXBN!dQ7%6O<&=@X_;4&MnFL;Fv z9y7hWTr#ozymOc2s`z0EE8#0YMT;Fbt(ieRz~lk5n*+5D?{^B=*~ z2yTtwHi>*x!nPdD?F#*4#p?RkGV-Y+R!Q&A;sql%KeVJwa=?G>=@Js~HMw+h@euQ(> zgr)eb>A48zNASFqdBPWj93C$$FGlc+!k2_ETk6#aUW>r*{sM`t#+`b@_?r>D#RJbq z;*VZ>-i_cr^Sm#z(B_%h4=y!I#Q@ z5yAGhG;Fv+BFR@GPbu|H1m7xLX<1IrD)H}yKSc0T1V37Kwp#scd$dOSFA@AIvQ`*O z?|Q=j|1187kiGvI!C&J3D*8_Z(FoRAwq7J+hM4K`2pS?tME?DKC7Y)rC`XWvASYW! zm=$um@(~mxC|Cu*=q1ZmOs_`JXxuMQC<;VT7ln&9zZQf=Mr+?Uh+;#9yr8jWizwPe zv2hfeN^BX$CL+GOR#9vo#b!~oCQ)-*WZ2FE0cZ#BG6gx+;D|Kr-o6rA^bKkp(?_Q&@-|kWL zkkV7=S8cB-_Eord6#GQcTfA2^_!SimeQKP2qu5_zzbN(-nXh?ZS|ILCa3_?c0h7sXjooD;>_mgU@@D^44Cire{7TwqxqpBF}P zvBHtUi-eeNf!5#lt)!6wZiZrpTjFEVo&G%$!d|@pKeV zDx4*JO2}%y<}(VP<=#axN1Vg3*CnPfE^M%wOe#!8krhb`GeUnT=Ay_e^p9AJQB)O{q9}{7$BI>JV%S!(K7;iDB;;dMUM! zkW1Fv2s_7!HZyVDq#0L&bfMhjZ95^pD{viAM;J zG{ey`93wtJ<7eArV;E@rGD5FM$Hy=@hC#A%JST|o@;D@hlf+N7wnNRsLwcC;;W3;d zeyVW&k$JkpGh#S1hO?|k)@R#uVz@Ylb7Qzbp7Vs~3pv6OFe3i4ljuL&qH;wH<6^i<;+3|_)UTE@nE(GpnhDj193t8=E5sq_;$gMF$`%OpD?En*E|a-8>J9JS5~G9}$^h*+)fYsxS8Yxam*C@TBoswjxhUc}Dnb z40A+g^Gwt*<|-_RKOe)(G0cy&c25;_nFk3+{X3thO+QB{6&u!^cuSjNu~@Kc$Pr7Yo@}aQ%;ASqz^@`P6j3 zl%K`$c?@5~nxFRj3d>{oE`}8`d=tZ0@_#MlEv4VDZxybrS&LOMd@u0_q2EX1PYQpI zVYTUNMA-Y<7=9Q3)u)8NS@sVv^8P=Dzhd~?R);k?KkH(M#ZYgah)6Wn{Q43%y+I@) zWUEvRxfs%x&4^^}2+YS&l2VAFXdb_I}LW zgzTNRjl})ov2h$N6>cKjRLJ=sA?Idsw3f1Y9Bo9li2r*=w-sm2c5!rwV=Ec97P6Q2 zBJ5=wk!|DHK923;=ooK4hW#9NQq~Wwa~!+H(It+ZCGIHPDgN&htzF{SRiYn!SMhE_ zR@*(^{7#v?yTl&Cp7G|_h`r+I6UW{X_YwArqjybx?)bja`wIIBS&hfZ{&5_t@PIfD zjN{-q4zes?4(K@~-u!Lq!{Rt1j>DDhZytY09~s9{Quy^DHsLlPj$`5&DDhY!oyS=# zzQ-RF$54eQ#4$LI6UB!J{iK}~Z~hSztDPLjFr|hIsm$j8e-S@Tc)IWm;ri>tS#g{# z{R*K`f#HN~@+Zcsos;T@t+&sEPjhH=p~L@#r={^HT`yx zJL0%g#6M%C|L!>Mk#cVw(?sqQ`YYl6;(mnF#UHF0)x&W-B5_6>kJjijbl0S^&BPn!#9LFN#elnNDu{4fl z5TEOs|&`5k}*P#}N~st(j>M_rpkv zr-W%?M#z(b#dC3#;>b&3Scs!&+%G{nj*673(AT81Nnxk~Xh66jcp-2?Z>Vedcda*+ zzLBs+!@t+zmJQfM;`)7W)qu^Uuv%-8%^RAp!)+9{wd|G+XxD(P8k+CH{GAwEwU?no z1GX{ewjvx=#|Cs3-@YL@N;@@R2lFu7#rTd5*h$>a4{PqyfL*2RChXdPZVkiW}g z59!?-u%}3m2J{s16S$W+>+Ef8!%D)ExQWcq|l$* zlN)fe!drwK?Ub7AZ4H>J@OI1IVQ0i$rra%ZPXq2X{Iv!wXuul^U$@@rdDHmYO1)$LcSYV4`qO-2 z13pmrq41-c6zeQ%z+x#&giD3g{UASWz%nVH2|pM5-Tcy=%Nwww0beWp%0|Ts-xyzM z&hPBVWcGWBKL~#`C-t8ju-g1l#pRJR;&R zM6m|M6*gElA;Lo?)qt#cT9^@XBsr11ups0Ze6^Coazpd~2drAQQKU&2N(5JaKetXi zoIsrj^$iluuL2vH(jtM4#r;xlV)~{Dv@*V#wc0#^HVJGY-4Cg)dA3ZTow&cn-CDf8 zu!C?L;huJeZkIquDccJX+DcwxpogVelUCJxs zJ;nDF?j^(CLhtOAz`hCeHl>ejO!ZA*e~JBs`w2PJ0}?nWfdeh{MTnjpnm~W04ig?; zV>^Q1|4-nU1dd8zfb^rSFW>f9i36?4ah7GLgAzDFp`Vi>37lxQlSGDE$Wp@+I6Z;k z37ne1DK$k-lgF>o83~-7z?o9cs%d*p0_WC*?E3tg3M0fXOkkvm?Cv7t7mHkyz}N&v zCoslzzwYZ-|FT5$e>mlZh~G9Jmk1vCbGtHutBhZrzRjL>T#kx3tEuUR z1SYB%hWy))RBlQHAGuCSU~-Mlh7@m6YDyxwOYzEW2~17k4(YcGS?5j}IM3d5xAc1w zxHo}m;`a$zggxG$z;ylMX1c@&g%1fI<{>KbKMj}zcvRs`6CYDY)VVz&(eE0=rxL-x z0C+v|lIiT>{^j@@)buYnrc0;75huC-8$c zXU(4^{#@f+!^1=2FT%AvCgrD@9sMTpccJh1Pw~Hmf1Cb4KK~J~Pav-5kp!X%#A>=` z^M(WxrZ7wz=K+>Z1mF0|2(yXc|4aI#E}uXl5!`GSg*+t4d3cn00pat1q0^6{8WU(r z1YZ&17D@uiX3n2Vg=_c*N$_0bwqX(*8RrSOu{o0y-EXIqJHCTyKV82(|hp@YlVUHv}(B*}5yJs?(;k}Zv*Z+4;CMGc{i5ru+ z>A!O_nPvYwCsUFrY9@)CtJ{>Fn#Ao%+?B)~N!%%gQ_YQryA_@zey`U3zGQI1PP5~I zd?tr zSWQLZ8cVGe`IXCLiXYGK3d#RS;!oo&^>-49B>qVvlEgaG>#c1xiJ0{sPolxNubGrB zB}`je*363Mg!v>&NfdajD)fUVmXoNM;>AW?%9@BNgi>%RAQfEPxQ*iVzlJlU$fJ70 zRB&D8^?}$T75u#dl9m#G6yH?5m2fj54Xs7^;ycQNTG8IJ1XpAo}G-)z-^Zlc1>ZA6n0CYn^Ik^ zM^@Y2c=r@~D%-=FGrOl{_fDaY^nHZAQs^zh`a7zZeHHc<_7iTx=l|w8AcX^sA7nKT zNd;GiLxqP4dC{iQzlJm9%zHdK75wM50m5U1#|j6gg4a8?W%hWr9V9#<6X|7?ze~7+F99hK zS;6B}e*T-nv=kmm;eL4@Na5iWs83JfK`G=9NntB;BDWbSJetB|GR!m^vyay}pG;wv zrJgdKYxj)S_gUd=Aq#RB=4z*&OW}FjyLlqaw&q)aRB*TRqVOf*%feTLv-sto6y8Z; zK?-k5d0qI1W#3BSZH`B!JhIxmQrdO>)hYaB zm47yUjg90NQ+}25KjClYXYoJ8{}lcu^WWBl9j%jIFC~&f)KW1c^l&*EQb=fJlfo$y z)AD45Ss~3l`|_#auCgF3rqGl^DTT%q%Ib?ls-#d=mYh!B)f0KSAR>*HX}C1%(!q5; zoDTlp0?7snHxzD^4z46Egc}QKpu&x0Q+Zkm8Ez)h+H6#|NTZF!w!$sb!O!;F3AYk% zEu@or2YGzu8&rS0bZ~v^C?w(O*(r_A>EPnIgUlpd6z-VD2QuuW(DPlycNKE3XzrRu zH-)=b;^;f69mhC69UmE+HLc@XS<`35n z(##wzJj5ga_>Ui+kR$A$ZhmKXqzp$1j}{IP9wR(fI8ew@aniWU$7>P>2~S94u*eYM ziNceFN61Y7$qI+1gJ0S*JVoKDX`GeDX=$99#_8$cxxpDi5_&wIEhj@ZJXd?#QR{WS z_yxid!V87%m8JipG)ARySsE9oF*c1$(ioiv?{axp`~*M$O$WCJpYr;jZoV;~czGJ* z6kfq;X9ZsT)40kEL)CD68n>o#4NIkQZ5r37aa|e{RE?9vA}o7D8WYoCb9T3auZ+C- zr*U%{lhT;1X=JHaWxgeiDV#mcDjQP2EscB9n3~3&Y22R19m=xQ2C95l8h6`xxDfOC z`>!4JY!BOoWt2^%ui!Z8qcROH;w1gpp7ZMDPzC$(s)4yIX|pP{lzq1 zPGcCK|ELaEr15PU->0!shs1YjtPkVaA5A89Pbt*iAc`KiZlsB8H6)HCb+iqxwjKxle$cB0{Us$P<$g{3*p8>--J6gir4>4@T6$5URE~C zpj`&7GiZ~+=9%E>$`-;8^nR9MTZLN+S!62_>RYRKk`7X~F`bv1?TmNKV0+`8GT0## zT$k8{*rkSZH+RYex5_&UcM9OL-)NM@41`xq>sbzHCTNd|dhy z89ZqQice)QTjA3gJR|?JHCYgKW4BdgP&CYXW?q|u+%RZ z{3>y+`Tv)}9~u0X!S6Lg@}ng_p$pXC8T_LQ7ej9AGVppNgJcHL3>q?sNsJ4b&}4P!M;2k}F5CQA zhMqbp%x;*)#^M`g(ZURVNG-G2M2ZjDikITeve-I{)>*VstIdU52$^l0#g^i1(k_dw zjQer6&jzm-9cpTBo5l87Y$qE%9c3WtBxQ#zx@6JWMAqbM7PC8L(IbnUv*?<|E?MlR zg1g$_eP7+O*dvSGYx?SLy|7NtEcVV~Pbqs@L%*B*WYMce>667FS?rs|{#o?pNYtcX z&5+pL0a+ZJ#erEIq%7n!~YX)05lBE;>;{g&f?T8hGlU|7Q<_LWLe&fotDMv z5{GJH&#>laWpQp6XPf_=ntsod$mSPhF)E7@S&Yo$LKE39w~I6??)$}7ft+hMIvd=X zkI7slbj?3c8EXHSXmGrA?ve&5iwOL%JQLUfS>$8|7+YMPv%;LtH zG2bMe9Zk;S7U?(Jys_&kS=?%7dZuP^R~EOc$sN+~G&8ezXK`;9_t*}y`F-Nk!zI@IlPs2re_GS_Gvi-m z@pTqoDqNn$3OTtuUs+{81K*gwGK0#vYavDQ zEppgWVVfM za_C*7_p$nYHA|e6e!1Xr90|AmbHSaz=LgDgknmvPA-UiaSY{7Xc({;Z{~V4G=ZCGn z?NJJk77h>|lf!wI9mrlJ(mY(^AcZI7Fxd1Vx!|)K8cs50s3{bO`wYcIgApySonbqqs8eQlfzi? zOHHBS@*J*GctsB5M6ML_jfSs(bq?dDTqEQgQm*z?ALmgmk^IRVW|{s}E_h5z@tGXv=I|^JAwK`ffwRYLjtH~Qnex2I zJT<3bzQ~KhmxM1{imhH1e@)16f!e-qHQ$u}mXN154eyA*D|}B#k$bvO{DT}8Phh-w43Ay@AeUZaAIeeMJ*EuYgz9NUOY7E{+{5FSG z(pTp2U5$Z7zR%$YDdcqil*2DM{A|iiSDvSx^!UiD^KVLbSLrMxmPH!fMoGzYOp%?Qx6mlp@DVknZE59Pu9FRw& zQdF9F{m%#2ZJ%{Dyw3Ord2A@YQ9ihcc_(q>JX%WGM7U`lt^R9ht&nFBTWulUrpB;k z9_{mJmj{o!t@6PO(ALT_Bqw&rV;g0+mChm*xpmBAd+D9>=q$2>&>M(5Dx`C#Ja!h} zrN%&gw>-M4X1AKkdl>I7(j$+arttE$S04N3v3EZBG7PtU^5~UEABDYz{?&x3z6$&0 zv40->nV;DM%tp^ac^swi;5-h=<8bjqg@>7~e;!BXafF4wU)DJ~k7Fec$m5ur?7%z* zDLgJ8ytEx}sS`xle6T4e=5f0CNqG#-r6` z$9XI=ozBHIe5v>+rYy^2c^;qT@kJh=OQfG&d|5M+6?uHE@GBGP`Nk@cugv2+rB>zf zqsaGp{9tB3;GZm{f3@1K$>WziewDt~vj5BDH>=Esznjihf9CO59_#Y>TOzann6o~Q zSRRo)qNdPKLp+ZLtH3Z}JjF|Q9_c&^d1Ug)QLky37xxv4c~lgZgk`f;Z49(E<$*$Q ztq2u@%NmI*piW9yNYU#XD%_}mO+;DH3faon>1^39=HE%m&IRlyvP%KGS`)utUFGa% z{yhrlRY3OwdKS>bs1eSOKRLFx*mXerf?{7I0btr<-_2jh}|I3OKt)IamBV;rRtzs8$yUN0@D- zh@Znz1zb_U#RXhiz$FEYDPVL>mi5P4zn2woxpCiiTmj9D^n_3V61Fr!D)8 z)tN12j_Gqn*!KAX<`*ze;R|N=BY&}gmkM~t5B;=&Wd(d8<+B1lH;>N} z>-hY?fEB!&@%fLCguB45zbW8b`Bz%2??m`sjM?uC_(9>11^g`XlVw*Mq3sv(wL*r! zif|u)Gv)UJ{xJTh2cD*;Do-u=;RoeL0uTVg#fTDWwZK<=zN&(eE@I-jTL`JNv9?d~ zU%(WDk8ax)v6Tq<)*`$`?@+|{MQl^Vc13JkQ?p|YXEi^<9VB)ZcH!>uEr2-5&PDVn zVwWPiO5atuTQPXv!fdx9b~ny&k0QFu;Ilm~wPz7~NvDUYeZ+eSdl%8C7<}-}6gU6C zfux@Xz!C0eBk`j>P_6jz&4&kb0DK9M=TN1nA6~=}Mf6w5Qe2lKwK_-DCOoLa;w;@;++9?vM^%$gJp zXDd8Mc&?C69(d;$gD(MIP{hb0Mu=Z1WS06xa*{B-xCpK|`6We+HqS1+_={7&)I^#u zFX9TDTZVobuaa`LaC{Nh7IDr0^Gr~W*V_nhC=cFbb$phU ztq7T-zp;o*dHpY9gAzg|giAmPu7rWgt`XLig7eoa8;Y|Dl@=vD!G}L3Y+6D~@l8rW zHJ@dQO*SiG3yH0Tn+w^tO-&t!?5JG{JCv|h3EP#hbqVcdV37_bY@_17?6#%gZ#A$9 zQyoj_#yu&2bmEVXwD`xvLKw|Jit_A6oE68e?USBjr`8c4Y9U%~;U;E(Ni<)9LdD&gP~ z`j>D>35S<(XeszT=3&}p?jt!jk|R`&t&S9-c(llX5{{9XDcXnwOE|HF<2V3?$Cogu zgux0=pe}KUW$8JogkdENE#c%Ek#&aGgr|z1R>D~#rwh+0;Y<;pO02`}>=MqYQO*-T zUwDCVgwPLcBp0QGi%J+(3Vxx+fn8j}=n^i`AiXlCgt0Xt#mh>#QvS<@SClZW#&A^$ z<4d?&DPQ5560WuS?1JKi5^j=meF-;|aAOG*Yby9wldQsI5x$DuA~HpIt7UJqhPRt? zM+tY9a8C($m2kIZeNEr{eI-07^RyD~w^k2`Oc&DjPzf`{9~M4hbskkXQ|N0xZu|+6 zCxx@j|FptqN_f76XG@q{!t4^}Sk{k+_?&Dc^Ng_geA!+UzEr}?B0MTy(F&4q5nq$Y zh6{8kQhCD^8r~9rTlkLf-BR<{r}@zM{ZjMiZVN?tBgAv_L-CJ<9}5==7niW4gr(wi za{Htde3Z#19zQE#c?qBMEavlnA<37e-~vdpLdsXBe=Wi;^QYoQPMXFj#icP9O51lAu!!lesxKMpve*Rky)^{^uYa#W`%fU;=7D8s*s_d4+c0zW#RT&P&5tf)fCg}kkP1@+%Q%G< z$~du%xN%7tmuq)M3&#k@3NIC2 zCgh%8Au_HU{PFGS{0RWR{8`40Wn5jx^<|7N<2oKoWn8QIQ%q>#5vsFXIkz?ghiUWV^eJ z`$X;$-Yew1O%u7_Le`lsPV%70L*?LqYBPMK-28j|8JbUC?q=_?(d8^V(&S7o^Ze&h15oFO~7K46g`Z z6}~21Af%H`-mq$Kmhl!xt}*k-_tn_@yHeic;5DR$Jh1)uu0^=|A1U>*ke)?lEEZo< z#wTSgEeC&|kvh?nWy*e5#&>0WUdHk=zOc4mim>+;Wqc$4mGEoRzZF?&AM2Ss|vQL zV6zHZSAw8eU=Q`eCVreG9C^kc~e^sA42eVHFM^wY{+4AkH%Cmu7a@@TvoxQ zI`I5%US7c!mEdn+`d(1|w1ktw|RS8z`ScT{kvx}bhn z1$S$}Y|BYtk$Wq+zk>TJn5Kq)M~DwpFkO}X?ofHCf~P8YxPr$jc%*_yE103OEW+$e zasC*D;o}uNsqhKyDF;Sz7MDZh=?dmn@Jt1>wad?HJieDXYQ<{LRq#Ru&sQ){M>t2z zjgvE9267gBse(lnyj;OM6}(cxf(l-(;5E%Noxao8D|oYlH`L0H^Q{WrR=@0pof6-z z;KK^ut6*UT?`tq@%L?>=pc(M|BNh2rv&6%AvBD)4d|JU$@lS+o%bIMvOimu#pI7ip z1z%LKvVt!w_*%B*6|AV>E6or6eeHbwrh;!}@Tcc@-2DnxRq(y$fn{0n2Mv<^rwUeA z@U#4WH7Tyq5yCOAt>B*uey!klo?;dJ_TMA(j|%=$!#}ONzm4#8SSNFR1rdpSs?5q9 zQmled74Zs+JWnggRgkD4T|u&fl$?IwISH8xvQo~owt0mGp`X%H1(gcQQrLu(Q02v6 zp+6p)%#12pRN<=Fu!?XMb=Baa!69u>4UTqJKK0+#etHFyMZN&YmIG~FCm16y1 zU{xGk#X(a1I1e$-;)hjn1e;6gFZ2h-k>W>HF+k*KAqU{6{n#qbsA6Ch!>Ty0iW93i zzKX$B465P;8;l-4=u(}lw@=jmsc^Sic6~) z%iYm6gm_sEzoLpOs~A_KupvEHS8+oX^U9 z#ZBh)=LMZNSA$Q)ZV~c8n!hxnbQFnhQ7JvGXG{0Tr6#A#LB zFP;1WDbuTX&=j_PSo{&;3}H|Hm76MN8mEW-5;;gB$Md98vxE$vt_HVW&j_Ct&aUEl zkvUb&t>QUxzAkg4bDqK%s(7)A`8;zadVI;kS5*8};cLPL!q7Ec)!r8_6n-H5P{`&Vi!8Emv5}>!@JSWRs`%8Z(a)O1&t>~U_+=F8 z_O;gcn<`dH|5nIxekYwpR+;icHMrsYQOJXYd@|nxR6$%VWT(6VZq4g|HMni&_Nxe$ z->Ue7*FAp!#}sn!`Aa(aKUJ*zZ#JSZY6domi#Jq}QYs-#S}PWzhhxrEk=3wsRpf2_ z)C;y#zkZsx{80DngCHaSkDgYYZ-5Bz00Y5c(s3Bc+&a(TI)3TM9Xi6gO=| z+eWl%#O96I%$%)j3|ok|F=b2hu=!Sv*xK~=rgvxzPJdS3R?2q5j>7GQKD$F>FyWnr zU4%OdDf0TWb7QcY?`s{2bM@qKw?=er4BlUN6Y^Lk-$R_FyGW15;0-=QZhK1EOSret zr+PI8uaY$MX>5L~xo>0eq>GONxRLB9eShJ4{lG>XWHyS2D0`@R4&$zg_ZJ=^Jkqi( zyCa|fG=eyQOCz$a#DVhAa9m^Xam*SU1CSh#IH2vYV*^1jYL+vwh`AgVuE?DH^S6J@f(FV z2`AN5xLFEqtTsjZtuh?g7jiaEXKwMM+D?1DzTF7k%8@`ks}|Bm!`8}Xhg-mp;m2iEGt|7JOi zMU7Z2afv)^wbaO`jrc-*neekld|uPs*I%yG3gK5Z*>A+Z6|St&S2g07Mtt9hpVZ`s zM*Jw^tNkp_QLPqPW2v>K|7yx_jrddici|tV|5el1KUzet>AFVLi~Bd)eD4-*M69v- z8|HD51|d&6u4b|kDO=gJ2+t6&sG-QMD6u3g>jb1&ZA6F{dx=ffio1rU z;Ba!na1*~b6@(llHmR1>dvsxfpH@6yC;BX%;~x7|hI zt|qc=S8-p2xVzOP@7{zSO}rR3cfF@lth1LXzE!U#^fskW6Q7#}lb{s(neG)%;QmcG zKvPQ21v<$1!6JUiJn}=R!%ZYV!kkAo;V5yxA_JO&4^NK~9xG%xP=wcn<3$Ep$kbr- z3^DPfrr;HDXcPZ315OqnCZu?oUer!$!tWyN@w6tK-W0qXbDJ$ZQ{h=nINS7dnwtL` zCM&eks-54&XKul?j1aOdIk%Bbd?Oj?Ub$HO65(i}PmMKxsk)$ec@y~g-4#NTaZR{V zoQD>}t7RMCgln7lSyC|C|EUX)3@1puUU-9WVpH%6&J?$sq)ZY{7LMipzvg6$&CIP$ zxJ~>Q&CKmh!85%(gd79;T}}M-EqI7}cN6Yu3hoc@ZQ^Zz^RrflOcC!_%Jb<>c(94j zxABm~^&VztSVMB|{>&ykra9rg4MT2EG~r1d738y;cG9|9s|sH;C-v8x_^vs)KD=onYw|>(@=mZv z`~fLH)WCa9SlER3ZB2P191&bwn!f|^Q4>CH3O*EIt3@J%H0&kfOD#piC^cLrwfGFkhSgO%uLt!YYL;oA90K+`I3^e-Qc^{z?4jCVn>~nAp`#|9?>2 zFeDF4uM=({^kdj4?HJhXPLVQcNBV^r{oiS{vUEA+;$b& zE#$h2Fhz0qkR#b6A2ZIQYFnj<~mQAI%BF-U|B&Id%J*&Y5I(zmPjL z$*gr5q+49&)E>;Z7CO&jmeQsWXIU z3eOVyOVc?aHzMTD4LNpqp74C(1wvM!exdv$g%=6^S$1*AUBzh+xyvMu7LE~)6<#W& zncL+mctyyKGx196;_8qaZz6lVCgiTQ@VbzjV4SHNLhjy>n;3GpNW4*alWm85^{Hh+^tsOwvd}De!D5G$?Z;scZJ;DYI{#jh5JJ8p^%$q{`-}BAmpY?dC+tg zc{t>r3Asl??y-=YA={(EnKjiO=Ml~$Q>~t?Y5SBsPuDn~we0MWnDSrz;;3J@r zBd!zH3nN0BVkgeg7|eU}e^ zLar)*IpiuesYZ!SAs2$9)BB0s9GbhX6WIW6L-VY+wSe0gu9XZe5p=x?+@^5fsRD5` zrCP&nZq{HHw135QoaJSC)xmp!kr3tGTd+(hFOJEtQVF&P5gALK;=v+XThByiR?P$15;l{{3)&|4++%8jixrwYp z@k+R>)>qRyj)$87cMaTiDtN8tmQFvO>)|HC-C#w0WtO@LZVKEaxLe>R!`*EAMT75% z&2N?H>r7RJ+u`mMxkKnvoc6orB)LcAUR&R3rr&R4W^vjcgqs2P5Zohh4=d$MP0+9( zRjZjouRjj=glu)eo0?#Rvy|l>%TsVqi$5d$RM`!LbEM1_KBpnEYqsS!PvQ$UEib~o z3ilG+8h-yD?iB=ghWz3jFPMY*IT75Oa0}pGmx0asMXWb?DC(Ap;ahNTs~~v?E)(1e zKKzIK0PcObg&e$YUD&EWum5l#!;ySs)!51#7Q-!p<1Q?P`vUG0xX&4CFw2CW3F+tX zcG2Gg{SxkLxaI7KcR2hC5FGIHX%$3Q(lpo--_fPpUX2&uqZ4E=?sQv$Yo;K$agBr@|KVxgnVvH9(Jy! zb9K&bByj`hHWcyu)k1vZ8f6pbHdDB%bFD=D?ySeno!dfs8(~}Fmcn+zt%Tn1d+8u$ z8zG0Zt#jLn`@MLI-~V^6lN7%@on3JFbus^rB0M{|vd8e)aE@eG=XP_!k<4S5*j2on zaChMz!tO$L$|gP8gwOw-+snBdb%5f(T*Bccv#u z@tpo47M|pSH(W!7>)%@qvyjRu&YkLlH(x%>3iO{L1Id{#xOpStcD8fpnEpTB|BG`u z&UdaP!w46=!Msp7Qh1S&KMga*K0Q z#F=6fZnr6%>fG(-xx+awoX_56=6hUln|H5se22@8e43Q|o#O%gfH(>D2gM&!!-t)F zL?NrqFhb8v@y9f`kBf8WsXytt4%(+`{7gOL+_O?<3psBTxy^O%IVsNzd4hQT1?T2V zc~R)c{IYYeDSXAbS4C)M*9(llE<)u^k++0z3%Lt4zbpQp@ckP71Mv@q9|`>k7l|(x zE)n{Xd?Nm-aGB80z~|y$2)`8iSzRIimGEn!-_vi!R|>xq`hLIH+z!{?dHl(_)y_@k z=f6TWUt@&gTIUYthriDK$;o%_59fa5N5B$)*K#n+tv&zwuf)HFRQ{)n(mEGBd#QIW zB0?S&;prCFvE3j{2$RB5I{4G#8B@md`~S`r6y{AV^3*f#TlM8n08Alo-3q z^DN^AaVHFWUATdeO*RU^xI_x$#?#Iw3?AnE0+pybG zPA{@+R@f@+JRxr%b{%ReZyRewM=-J*X>=1Tcq<5CWBEIZS3U>~>T}=1&ncXey zx`thkutj`;*o?*9_!aZ$ldn??>JiSDE+o<*p2QMyth5dy43HKKs zAUsgW^McNU!@(7p7jWXC;)jLZ;Uep=x=bArc1N1X@aV7`7SG3^zYj8ya@Q!tP|t(m6crPO;_;*@W9^QcgFW%9&Py{A}sxNIBO$ z=Zjn*93i|=I8u0#aFo#Za*6n8;TYjq;ibaMgqI7wf1LQ0!mET=3&#tu5ne0w{t32f z*N2;58UM%Yzm|i`eUq}2gp-9g3%OFvP7%M=l-pF6I$ug|54$_U!5tL0JHzfS@wAp@&TQ+U7dfv}q%b`RDVXnQ#99+&b+*v$yLnPErqQS*>LCWYNS5q3|BKPj9g zFY^luz3oLQFR9hbLiYHo z46lXV>tVM*hHm=noh^=*-FT?Khu=_D-lynwN*& zim;2(h8yRchjPIlot`azx_g+B>@7Oobq5&k0db$;bh6n6iF z-EU#{SJ?fo6s!Fq@~1he{4LIY*M(h#*B@U0ZDm=CVJz$lVHXd(bl5e7T{7$vR?Uws z#c9zvGhvtWm22wf#gqK-H|#3nC1Ke-)v#+4ZxnKRLv_J2`92e+@7G3Tg2B-m=bZQs-LLxj0_}>Y9(S&FWn1y5NnQZ$;dq&b3iP zPD0x{w@sbfvd(Q?=i1e|t?Gg!oQt(q{`PgQg9bo_I(uQK+t#`5tT~nKW$0ArcB*qb z)VVHou5(RxM{(M?UpsT}>fA1MZda>G-IwiZO*l@9d(;I7Om||P>!H*j>3i0>y);64 zxN)NPsdIhnT(3H}uk_w^u8$d5nJ*l~es%7kI=5e)J3y)Z)jOLXsE~%Cy#Cj@!|L22 zb?#6b$@*PBT!W$Qh&nf<&K+6j2G+Tw>fAAP?&vxBB`hTA1d)Bk|de?sUyZ1Mq@0@P9 zAb{2ZT&P{f46Ln90BvRCg40HY&Wi(R7r>q;xDXp6VL+mmjfI$J=9Kb+3N-5HCi#d5(-4?*8 z00svzB7oZi7^=_^+dIPo7#_eTWpkPD2;ffZ&P5*S%RJh8-5tPKdB#}%_XKdC=6J7k zb{rSL{Q-a?$z!L$?kj~+_&Tenc40s=MsXP_HGXXpu!0do`Rc8%6Bsj#g0X!G*Ugl8Y zMkha_zMwt+VgPdjcsYQ%0lZ{$r;{FT?E6XpZw4?wfCT~6@=t&U@LB+`YfYSi329px zz#G=x>5Bq*ix(4B`?l3g=euTmKY*_S_#lAK0{Ae1PXhReMVgZ{;wmi;;8XcI9d`CH7z6fB6oQt&%9P!HlmZ?Gx!6vI(9>A&qz7F8q0KN%eMZmiPGs?8Y?*dq<6(DzO z^?d+8DCcUcVT}=X`H9y?UjKQ)3}9^l>lIpObJ-x`mVya?Rdl07SN3LJN!SeFcZHmD zO90yf_%nd5HjrDozs%#B#O=Jo2eE?}`5<-%uv>7~6?^v}5cICYOz6(OKoFrIg27#r zr5Fw(VojGY7DOtDco2!8caLEAWDpg~!zMQ_RAmquMbqZV29fi5*sD5-`a#qLQ4S&> zL~Rg-Ad2!tbz5Yrx*$qH?`Y(~(EH3trDG762XSc-olK#Anf2;yq)QO4s_wi61icqER|&fcy9uurb{F;#GJh{+ z=qrS1~Q@M2V54AjQ;=_X&5yV{z-4Vo{ijGv1WsedW9R$0xd3O+FWf&90bd7jV z5cg_yM(+#ae)-1<#|t^i13^p(;z2cOqw-J?6V+s4+$cU0#N;3*DY^4Z5$Cw{b9+op zH_gXwzSDzvLY%f4GSJDwW(M(e5VL}K$`Z08_1RVu`LmYfIU_G9`eG1sY5IN4{+JSKIIGZJHt|&*D~o}1+iQT2X&KjwiP_2gZMUx?`$t~t=zJ&GXH87 z`9lytD%Bdx?2d|`C9Vx(o%!8v+7QIALHwe$9E;+{AU4VDnht+c^50G062#UZ_zlRP zrfdu1FI#7J`CI%S;dbE;;ZC8O-R>dpB17{YB7DROgb*~&klRy{5aJ<3Lx_cNqn3rp zUJ2`-457j}dsT*z4S7d?T9~m=E`*v8szRuiLIcgjylk$?=~Jwgp-$+OviP3Dy@bwR zFN6jm)DL+t*7gzZD`b;bTH<~o>~G2eB2GUjgoD*Q#G;2<^l(#-5NT-oQ6U^3!qI9r z3gK9h#=>LF!x4`Qc^7#SZYPA$L?QAM&C}EjCx>uK2+gFQYEe3yo1sMr=Y(*22xoOY{6s;@N7tanF^)Jgq`F&)4OG5ZZ=tp_JCsiLY6&1uAu62#Z2^!^(cs$XiC( z{T=alh3^U97rM+JhVYT){5XV9j4ux1^AJ8&lcRrT`oHxok+M|yrEruN8M?tPf#>_4>thhBnH%Nw`_~ zn~($j5yC%mZVBPf5VnbLwZ4Ca@V7bto$2-vcKAf?Nff#-1Wf#g2Q6*E2K4eJl^74a7N$L7u{pv8fhtVsH9@6RT=`-}U>9E>s!??~o*NgNCqpvA6 z+$i2Ji~%D3!?;Prt-#GbJ}8W#VcZhNZ4z&_&|nRBdl*A(T(`o+Ve$+&=N(~;7Qa(C zGK^6cqWLZ#9}~vCVT_f+&^^A;ePN6&ySo)Tf5Pg~|^OnEkp=ZrJk3*s+^@sh}# zFy{KA%h8+VJr*di!hdkvBVes(z?_9RTy8Zx!lBW!dPLPsp#SM zT^K9FSRKZyFuwOqmZ2YHCZYMqFn$f=r!dw@{5g!ZmWqb;Vf+%t2A|@3Z4Bc#iJQXM zEaLRv!}v3dKf>5zU0gj|!`Sv;>4U4>a|vSU>QwGmWDkdL57 z136D2g5rP2rMWJGlKQ%F_l#iw2=K*nID+;P+eL7RFWMo3OC#uLNn96ibiV(Qc)7511YJa&;mQcQMR1k! zbQQWOUmZbDHM9OawzBxFdq05e$!Dn4GQ>dPZ2bJ0ln!!N>?kSqA61D}uYt zW2U&| zk4G>of@u*`E2ycfaS5xg70JO2&Q@V>f# z5W$E44SgKJ7ZH4-=;8=IQ}k0C>vIt|;u7(t5iAq=(mYK5l`rSl5qzU2^%WxDnsa3Y zt0P#Y=J!IEna&>~SR>^}Gc)va1e+pQ8^H#N>mpe1>-CHHuMuqYbz!Q_5&Rj!ZxQ?v z!S6mlLtD(bHG;n)*yfA=&5OT9T~#|G*dyv);de%`o5=1_K!mBdF~ltpMKFr6^icHw z-(y6K$D*i=A}&KBiVBgWV(%#SQulvrCaJIJK2bD?Vqb9=-Orcj0PzE(I7H;2C=T{TT_uM}IXsG^qc|dp zBco_2<=?T6vSy?UM+-9>sRKm9#T?;S-SiPuDN zZ4}o>ah-YG1c`m4xKZK_zEHm?`bTk-Phr}dqqt4Vz$gZ3h+Cq#)y8rOX&W5H?NJPs zKEyH%GaC&fqPQ!HJEYth#i%Go`l2+9wqE3SD>NpGu~FP(HaFINYSJ?lZPxyL08O1YE%#7mcC}wF; z`k(R{W?LoHpN-~HoRu><2l_RNEm3TY;npEru4>bT%Su=6B64V>mnJeQkXf#}#opmB#Y${{(5JzHjo!`TX%u46S3hK)aZk zFBD;yHX?0>7n#VjhM{(v(Ivw6F?0~2-qC046!Xs3%VM}(guJr|ZC8j~Y5G+$bhQv| z{3`tFnD-<3?n>K3oV|Lf**k`7nUnwiOGy1Xk?Vzhgp5+ZA%^}j+!*uDUpD)xHu9Td z7$|Xo@aC9z^3pI!`JLG*dHw__hQT^cZda5Fo!o}TFf4`c!%6Sw_NH~y}Mn_FS0Fv{bKBAbh2_%w#kw0Ed~F7kynY2f8vwZ+wI8i(f@p>P8VBsGH^aEry+1-rr;RBZh6_TZDhcuvNzuSJJJ+Uore0!}b{d ziFyA9iXw3bJBko@iz67v?s4zrg>VmHKu801ZXq?p!iX^HGsMN2JQ?>gR|r#a?^aS7 zM{OMGII82w#F2|58^|11C5n^2&d&g0VW6wCsaqmo_ zNZdRVsPCNu0C$H{Rth~t#YayAk+_Vqee{5aw9ahw>(3F_O#m*FHuoBDd4qUfnw%w}<% z9!GO2rwLp5`ktX)X9`>TGO*hJ*?u`Ej&^aJt7fY>TFZ7`9Op~9KzN~KV|4Iyh-TxCg(yjP_rH+ zyhV6x97E!`E$;mjp25P~g)E-RPT^z$INj%*q2iyEXQnx4#qpGJ&TDoY}yx+yz+K8`tYyr2+mFaFo_k~JBc7so3) zCE1auB$Zd=c+CuMzbsHC3nji0_nybzjN{`t7RB*i9B;+(P8@IhDt}i_*Z2K6K8)i7 z^6zlx?Z-OZ8nQ{7Sf7__dJv*?ona>^Pa%e_p|? z$tcC|<5&~NYWaUqh<9FI(0HGsf!j|$|61egd4)`1LmbHje&Gcm4gRPI$bK zX6oFUsClCBBw`4~OXB^H8}o zflj{YDD3C!dy_l^gf|P_YH&dYsmTIvP2k}KZcAWf0)r*qp1|+~h9tZv zjiJI}LiVCELLQPk61dYiL!%NHo4{x}?-JfE9OLVIPXZ4naBl+RCEl07IA4bQB|hNu zPf+wB;Y6SFkpyNXFe!nl2~5^}rwAVvJ|<*IoGiD;6PT93j0C1D!xKWc4o}KC)8~K6 zqE9ChD&;Lp9Ua*HSAat{H7*3*`L?r25`J+i>lZYj~A5q7XsE|34L{bWqP){Y1 zPNLFf(}HJw(OeRFHLHZxN!0k9%uq<8m_%I?wZ2{@pNF?p?#I27Xq?2}N$i(IJvr+O z_Yv+ZY#?-1?Vt2MaU77u;Yl2r#34x>q?`x)G9Q}suHlCX*^B&$B#ug=p;qZgp?AH~ zcC?y}gfw$;ICqAQRYG^99dEoz5}o+t&m>M3IZ4=5$X8Mf5l>B`c@oW%-fIfp;CR-Y zCe9`~@pLu$lh-qoI4_BoNnQVi|4X7(5@#p9*Fonby;q~>3fYUCxYCladyFrCl&ZC` zjj(MJmn3mf(!1_mENmxaUn<<%tJxumj`CAss8iDWoPL?`a$#p-7vUAcD}^-E$yMr_ z^!_0X2`5GDu4WG*^`1%e66XsLHm}i9M;n`5`RkInUVDeUk5-;#+>pdg5^qeRpGbe9 z>oP$6X06gd9RuvkmjlFGlDIXAAu`;S#NZ@uPvQ!zlLZe|Xqb=-%Pu1{mpg=RIwO;~ zD~VA_Jg5IjVYCRR#^&8gj4^$z>Gz7iNla4op(G}XJeK=dJ=CYu|Um*7Jb8_i;{R-{4G=7N#Z>X_pT{S z`@T4jfe(}TB8iWZSS-)SI#xfi@;*)CGb!xC?Q3J%9h1#7{~5ki?HkP+23S?hHTkBA>+CB-SUfP9fKexZ&R< zKAltBq-r+{IqvT|BmNL>5f0XQv{kij(-nZnDxH5z`A4{2$Qr2gyjUs1nX<|0@bCES zQQ=*7$hqyw_x}}$R3KF0-5t1vE4;tdL=vq)q5?7Laf>pP6t588B`43>$_nq6krwj$ zmaRa(0yzy-CG?Pb=_&cBfE3mKlKBiD)hW*ss zUwA+T4ih=B0tZ##5b=YBG;=$&0BsX*Hbv=_ffc(JgZ@Di?-M(>~|N9ibXsj!npsb4Oo zv#^Vh#b2o%dX=!Nu$ylecdtNiIeQ3uR-l&%v!yiXH5Itll0YXJphmlQuCGy9M0!|af(aiA6$Xkm1l^M894D_72ccw;X;xT z6}ZDV4I{-znKD}BE_J7wXA^O3#jZcQ!REc1`+Y(-S@3v8$?rGYgNjb@c_voikqSKQ zQznVCJ3CGhe^mHb1*TPCs`%rUke=yM+=w$OFjLJZ%`nRsbvb8Cd8Pu-SK!$SJZDZ9 zb$Q5Nls?D0zf^&F6?oaqv~hby&H2Jtg|7);7cLMo6}LCIdP=oO_?D$*=$#7h8TH)? zd{lw=D)2!C-mmcfxgy0zeAmQVfHgm^z^4`XqymdsjQ-6yu^YeqRR&&B`A?j_5MLr( zD*RHoOgKbom+Q3RfwWS`#y8rhE9^}Ct^(ilh?2NU$jc*-2X3p)vqts*Sb?8Jcs&1H z;XVAURg+Hg^%dAyfelhP&0i|;t1r5#0-Kebq2ENgh zdA9&=nG~|(IboI1T~%0oP0G9btfkCl;%DYSr z)H%y+`=-!9srD1@FQmSbU;e7^L6#w)%fcZk9GcSezmV62!&7LYP(wL;sqaxK9G}9` zR8nY^LSv<+**%XPo5FD^@21HsFdw{mu$_>?Nz9YNi78a_VO8ZZ6-m<+PEL6jB^G~* zh9Ga2@;+N}YcArVEmAmLhBH`O%6q)$@$6=OR?54!aQmMsVX8;;uelwz(r!9Wc)sug zA=A1QZmqO!ghN#cKOjuzDFU8IxOS!e+qYK z%EN@iQy7r~f5F0D#5+?MY0XhGP#hR}^QQ=GkKrSO#a(<#h0 zgYz)@Yzohr^LddMY^HOJ%;k}3o|jF0C56{gm@oZRi@LP0r?5cEzoU@6nZi3ft@sKk zg||e=-xlFf#QXlc;_nH0Z~Z{W^M@&XWS5m z{w!qFUHaCkxn8(X9e+`hUxgcmn{U@yp;Ib- zeKX=&VNO`(i`Gy)2M7-o9wdBR%YH~D8dl=aO7Fnqc9_WFmEMEj5#l6AiX3GgDvc_=UkWu= zCALNbtjg@TRc}L0hE>A`ew!qABdi1OAapOybgsPp-ri<8I9# ztHe}|$R_>VP1Cg3$e++^yM6bhJd9GGRf%(WatV1ue407=6|j){v+7PK7o50Kf06Zt zO1xN!IV!BJl)07O+cQ@6vNF#Tz9Qrh^DDjQG?Le(yl(mek%g7sBPgS9s=3IbZ<+p% zDeqR|J#pvfdb$S#B5V6drG8xL{q;^Z7hC0@R(g*~R5--vmH46(%avq_aH;T1;WFV@ zLgy!bQ;8pxYDFc!t;A~a?|4$kwo3T@f4gv?HM0F!i4B$bsS-b{Nqw!zI^lW~-B`aU z$*;nV!cCU;w@Um~iQm=yL%2owr*Nxqo6x1=K!2SU(g>4qOQ~6zMmmj*^`ecToSIc>)TU7_Ta7R;y&x?5 zy40nycN!%rW#OK}y?mZ}%1~dpPZ|x<*w+{3xcga?NB#k69GJ$zY43J$kdTKEH#WH) zng;(6F$tfsi7faCrEMrYGL56s-nE4}9r843oc8`82Df803dwP4oSeq-X`GbC2@;#6 zaiR!MNq41cswRhEs#DTvuI8!2W~z$%X=;+RFy)Li&QIgaG|pD2Wg2IZh`VP4n$Jn2 zmHg+LPVqeP=KSmEA{Pp&vw$|@ZPRF<#zkqgQ}bf(9o0t9C28*=oP9ee)G>`qtsa-* zvNWzvTyye*BvHZ(;} zd`KF@lxL`r%J4Ksh`ah}yEBbZX^b?HWsFYaE;Tt><|mFx# z5zZGf!>e3;G3EU3p-pM; z^L`_~|4Cz88oTi|weSz&mNfoMW2-oqmm|{fmzsYI+59Js?Z$Z^?Ih3O0sR-!d{W&# z(2K`O29+6P zGv1SMT9^?s#El}iDk;?&)L4jOCEx#NP|To?8Tb((1MU~r^X}F^^Xe82D=*A)* zo568D#dT?-3@7^XP;Z*S$(rUVLN~`|^6(ziJcHAWx5#*RC3ZO@gB!S)g(NLS&T=AO z{%3G*2Ipv3?(Y4+bvwBqTd7HYzQ_gEWQd;D88Fl)gSI~X;tbkn&`t_%m&ilHtwRPK zO~2Ii%cL+H4V^RSnn4$Zu3*`|&{aO(P5f#h3t-ZX3?9>DCkv-!@Tk^`tHg;Ar|PJ72i3F;rf2Y^oKFa62{rPn*MqQ3nebl$wJQ? z8N4Zl#k0v`-pb&E4BnRbP6qF1@NNe0>1cNzmz-%o%;3`uKFZ*e3_g~h8R%JT+)d## z8~qEeWClwzSdqcf43=l`Wd_T%fb95{^>X>YR`VO{`>mSanTHF=V=fD84C!Eg5Xi;P(uEvnVf#e;8+lZ2qZHIA1Qs zwhaEtV0#9CXYh~KiUw|U?ocncbh~8{$a>e<-GvbDA*4B&MI`H8$wOI$CGJ`Z-U8H& zDazpzYBEn!gbJ4;ugiLOC>qLYy88FZ zVxKJb&Z2(SyEfL7hr~G@Hjv+OcHcjX1F|?IivzPbNFmPjU?VgfDo%1(7Ki)vhT=zN zadZ|(iM!RHvysh<{1}Cf6&@!%-YRdRCOs!+aZ(md)nv6NXK{-0f7gMed3M+J?KF`V z!qcFlGveSH~j%;I)6`(@ETi$UTy2?u0xv&cXp%h;$oZ^`0T zDYuzEIE#H18j{7hEQV$=CW~QN+>ym_^Ni5`Vv;+v7%g#R7NbPm^zSm~-6Hq%`(IP; z$>Lt|`%G!d?|-v+$T@`%2p`O1f(VZpj>ThvEOcJ3!Pthq^JZcJ$pQ%~Q z&*Jecp3Y*L>C>}#B8!<>%rNE2toH_hNoGlT%5*;1&(7inHJ=eaD|{}C=S4V#tLnup z=4A1*#JO3#B*G94^Nhb@qr95MyIH)J#hVJfp2Y%@g~B(?KUv8asri=hZQ(mv?=uLK zzn8_=S-hXcV(A}b@nIGpXYrAmJl|bypV*=PX%zx9zNVQ%i(l2n+s3N zp@l_xu{}flOkv9$&az6b&;p*FL)#qA$>F>l&XuQ?&|O2$7r!8f);U}#?xw?W+o;Ja z)kPu~3#qru;S%G#Qgz7T${af8aCr`wO7A4ROz5(87VjdwLg+5G%yv}{U8RtB%i(Hq zS6h!9`sUCxhifJF686sF8uRlicb)O;bLeB7$G{Ca+@$7>!hXX3LiQRUaJ2aJL8*o?K(a z@5y1D$h|q-XHlNH^o&>Yej%6f!5pUNFd>J>a(F0*$vI5S;gK93mcgB{lf-$TvilVA zM}=%M!&Kvsi%b(ze&f%LJzLQ}^4&REnEB{KFSLN`%M0aR;*Z&-TlCnnlqtF%bvyI4N)=6J4+>paB zBGi8s;azx>DVs%p6LOS4M7CJ;&m6Yq@J|lgO!+H^zs22^VY}%&a@Z-}P!rs}%6ps5 z4OQ5~ct9jr0X5NTpf_B~0Qq-hmSHqPC2 zs(3S>^EB}m!qbKP28|tQKC=ofHP%^G-j{CN{-^!r_&HTLSN>Ltx-JZzUxf>#aL=;Y zx(aQp(B{9Mi>h$3ly*M7y*Rsc5b3DoY<5!fvMOBeGk5-%i(DzZO2{s*m~K_L`oBsK zHG5W}R~4=i?=7VNTA%ZJ6J4slw(>Vtd7mKq3Hu9g5)KgFEF380fkEdj;x*Q(W`qD$J9@7tXZJ z7auIn$C%fu@Ol*%RPFja%Pw3NuG<^hnqzX%o)4xpoE8%jV{*Cww;kUx? zgdCl{R#kbw3j4mw`!^uWxw;BJRAG(g!eUrFMUMMZmG_O+&sA7kh4td=gj4wPN8}f4 z(za2YWRu9|D*R>&NBqOqXN!&p4zaZgf9desR^|Nx94>{!ej`P7Z_#~CX&|y+HTE}!eGfE# zkjTNpL#n-Nz8mGRYVW2%enho*e({VW9x2;V*4G&tsY!l}>Bm~%<4rk1q>1oEAqQ$I za|ERv&GLb<=kqts>XS0x~UN_u;_)=Xl=ZW z2Ij(XSB1cw%U7sV3Ygq%4+YE`&GiO!frxF zxpkMnM>Tqi^s+oW&aV-_R(PH8dLd76cI+#DgYZTnMfW3<{?)k2lmXSdet9yP&;L3s z2UX*iYTQs_}$eQ;}h=@ zzgKvlkg3L5PV)P!@qppc)HB z-Y^dfTO|ILDQ}Cs z_*d0fZl14g+!a#36@F(?_F859dy&=E_(8-C$C>_Eji1c(b2Zi)r(u0HHmbQn_)9f@ z^+nltlbV}_zgZ>J|B$k!8h=(}TQ#=+x7T0h{73qB;STfc6yfN**C1HqUF1=NJw(U@ zHQt#^5|R=YMubj})u5sVaq}lclGZC_dSwmLzFth2twF8^H4>|8P;E|^Hm_#E^3AD|SgM)njL&OiQ!4V>d2@f|z zLlKU0q$x+6(nzGS(=AHpaWyzz%@c%Fn%KO^PmuCGB~HT$S9ALegRlS6Z1Y3^5p{!;kl$>sp@n}uxhHpHi$K{eiEkGuQaTI1dK zy+YvnLvGxM_?fO0WXEpd-QRd{vE=y{#RGwk_rHxm-eZH8h zf0ED7S+sGuWh#S13{+p*zN^8i8mv@8*2c2Ak*u!4ni~8d-94pHC*k%}jrSqtXW`l! ztP^2QimYctjrZx`mm2&kvQfw=#m(Zs34a&Oy}1o5v&idtXGSB=Vq6 zUXe#Sk5nF&GV}kGq}WD34a($q{r|Ya zf}$+AiB^f^q&!Z|qiG(e|EVrFntMob zyjLFA<3A{2q})wV`3in=kZV;59INnmgN+kH4|)(i}Zh+KAgv7 zj+n#qOLjI)HHd6=TEa6i^MrY^o zd>+rJ`K*w$crNeVD@k6E@?suyMdnzlm-2YoxSRDWdAu&qeD0AvUi)v9o&}07%;OCa z*K3h%Z}D8t~&|3LVm{2vM3s=6~}v6MLf30NMViGOYiQ*oh) z?l}2Ux;sML`Yg}myF9+;!m2PjS6GGLnzAyF@AFt?O%~5>wNjC+$zxp}Kj!hX3_qF9 z&{|)Y_2L^$`IQ&XJT~U>8;^uMHd`+iz;6VIzw;p1KwI+In#Z5&$eavq^Kq^c72-e2 zusx3*yxvNz<X<%kH^Im!lbZ5=#H_<0&)fK zm`oSEyF*4iTL7<$5Ax-I0X5us3n+O14LucZ`2q?uld~S?sV$(cfO5gR6qJPZ`R~69 zIDoHu_^*cf_umTGuYh_5>{~$n0`^gNzTxEMf>G|@2I@t!ziM-5?t$Vw%{j`!;=CXn zQrLB8IZVpo!iYQ#%|riD;_f(UB;L4yV>P>Dg!CLIopUEAo=`v&g-#SYouQ^?JEeeT z1)OT#|Lu5M0cU7NEebeYW>^221)NntOP|7Q|5Nj96Q}SeK;o^0=LsoZQ1G4;E-aw6 z2s?74(pCmOZ(LNs#m3teyf?How3pIB*ipzX)H@Z>xq!>0T<+7m`1q9t^eo`20=j9$ zt~Tz~1#~ZXpFNq1*u!`)8G09RT>;l9&$SBC!x6dB-=~1Smgfd}ZWQ(_pnn1G3c#IC zv%3!5tmr@?ql3(ItCZV>Zl5wad+~S}QovB@!-T_yBZPMd?-bHWe^EGE2islJDe|Bl zQ}AvvV}j=mwhIe*OyVRi3m3uW!g)O^on&eO zPZaQY0n;ox-9nro4Ku7cvw)|?XUX}L`DaUf#%!F#yt1O_|>%{;WR%OBR4%|FGr3fbINz+VOYZ3dbtZZ9BF#13A} zi`c1D)ORal_agQvdbPGTDdJ)^+X^ody5#MOxJ1qNKJf&; z0xIHCWh1BaGV#lWorPV5R|u~xqH7UX6}=zv(oF1D#MNrL^ORx_IeQ9w329^Wnxc2U z^B&|rijvTLy$pSd=qqxAkUBlYens?`a+B!;l!T#yQU(cc5#DN^Klt!3e!D3{iWq8q zn8J0laFlR#5qF7jxVuHh6ul45Y;wD&h}m|Db>MLb@_6GcobV!F@3UfgC_l9@$3 zRm3cx;b{xe_Dm6Tig>n&=ZkpGr@v6di@qjTp60nlyd;sF$~^AkB3>zCzBykl;x*&W zvp~&-zFuz@@nI2*ig>q(w^Y^JMZ9CZ+(7RY@qt3`|5yJ=&5w&%T*N09;y|Ak@tHMU z28Tv9FJi02KZ@8Q@~4n}8Qo@nn*SF6 zr-x}}TGX%sb22Bi$M1;{=#AhjvsYR93ElPjh$BW{%rqqd)gmmsHvR5tY*J5w+dO}vhQ*0mObT+8P{%Y=LqaUE= zfj$p=9bAh;YH_GUS2^+US{y0mh*~uCh3G%ZvNfv3akXfy=rKY@kF_ZI@jl+97AKnL zBrzL8)|W5E&54k&i>}SNo0UI2dX(pc#C=H zzfF9wPZ?r-Xf1{rAI{y)+XTP=m2#(Wq;QmZ7-ju;)#C12jFCviiTBjvzFOStbB?RU z{c4W43fcDo>ouVkkJREJH75!mHk(U0N#f*MOtCKP{#Y%ht2tHpxNw@!@PzmbOEptX zcAQmtn_xmMt1@p-j)MP$D4RUyY>hSzJoyBH6N z1+`dMi#KY$m(ToSg4>(5SfnU9J@mh=j_=gs-CDe_BkesY?vVRHoX(GGy{84{`B>S= z7uSNHO1OPmi_gSA7ji#3orM0S@_#8@Cj3gNQvCg=n)G~AixtMdwSlOwti>wn-wRip zhbQ0~<3HBoC-GA?9DA*;#X5_wuf+!A-DUVy&5goMwb(4ebzn!H4!_rWpPK&=ZV~>e zHKE8)M%!xfSM9FPM1PAg=XR~9a`#>aa(h_Z=SrhjNw!Hq= zdEZPG>QGdZoFb81oheLG&Fg<18q{I0I@GW8)?sg9Jt5QXBSL*&Q^@zL!~Uip;L{Hh zKUjE39S$`Q^Bivch&nW^!%=lOQVK&%c(g^?Y+Q%qU8oMniX7*Qo?yI*$cc5kzFTi< z`pI=Tr4G%wGN!m8nwztQ^wWiB2+tHc+galO6P_(R#}{R(t<*fP4(E$pAf(Rjt?O{H znr*nkA{Y6h?TlYihxW$VtE2d(!cL}NX4Q6<(nWZMMX$7IS5vx)TwRCmrnu?!RI`_` zcO9)vXiH|qW{UQ%oU-p_H<)J!E6nR+a z`cA6D6KvMu@j6VY!($3P>N8CB@oD1IeaZ~+CxtV8`crjyTFu$QXM7>n^PHN`*Wm?` z7ylcbtL95}cv*!0d1ja|@~ZGP;p;+r+;kS!;f*@HCGpKVED~{{x6S#EiSL>6ejPqA z{-H%b7WqWD*rK1>s(voz3*i!rF10A@Stju-;d0^EzUYcNd~3bF6Im%_so$Hvx(+|o z;m10xu@KY#WKlP%wRKo$%KAEN@Hv02!*6PC6mF`+W^=Od@5cYA!xnLukV9-$bDQul z;om;PcJUp;ox?p?zECDbcnUn%uV*hj>D z8fw5Hc=0!dwNXDn%>!Aj>GT{@!V#+f&=L-lez-;X4A8KIMkO36<){*l7UBJi*;sjF zHIFerM>(#9Q%X3#gp*1*p@b$1(MkV_CGUZReVa-=S?CHowS?wsHnT-It%TF1v=F)x z&k$$LElaqdgtJOGmx{!*OE|}(&fKbm^Gi5SqFWOppS~`X(z=AUB5gExhAuKEySEd+ zq=ZXF+LzElq@#Iwz_3dvH7_gSauGL|E+up?;ffNvmT;x{uPS+;5!j`hl&ekOhwpz% zxJJ#M!d@lxwkSurwuC+MPEDbYlqvO6aF%f8k9+H{#9W^bagyka1W4 zttH$hWw1{lB0f|&Ot@0RjS#;>c&Ct$OiVjUe6*0wyGpoQoKHJ!avQ7WJwEZi62_T- ze98MC25IA@9w^~K9k*_R56Lr8_;3l6N_a$^=OF!)Ed!g6ia#cF<327vO~~_z{wGR! zx`Y{0o-AQj2{XmrD$($iHJ$Q|4#j8fyn9aMd0)a8#pjeTSA-eb^8G(gL;aS<;VUJ4 zrsm~*|Ig#UiSY6unHza=$SyRG~A`NBW&vkz0Y0l^W64r^V7gE_E@+bfCmnj=f z*(~y#HEI5%gsp0BabgMVNPU}{e+k)i;y)#9H)Tf&JH>Y^du2ES3Ch?*NqKu?CMQ<^EJS}rZm@Ok`NocFGJT(&YW$)s^tx!f$oE|ob zb!C*w*sF}Py6kC5I2^aVEf0Bph4v|9UlA$|%)CNJpt~ya7-L%gSYnC@_amdb@$Wxy z)@2-4#&KmFUdB<%d_)-y%Q(_X;zfhU$dZr7nISij0?+XTSn_L+9=7t(TmEs*hY7mFDavA z8STsHz*3cgW%FutX&If$-k+*wPHuyF@|H26jLv2BDx*so-O9M4jH{IYN+El76``La zUR_3yGP+A~E7sF&H1sZ`ZyDE=aa|eLO6Nao;uNkgqfgm;AaP5?B5x?8e;GHH(N8w& zZvWn-CR1^z-(1FsG6t4$dl`euxV4O1%HAt7=Hwo^t&G7oGz(+$A!Q7cVQAU=m!!)y z$KkdDca(8=8F!X3O1(x3*>Q9kca^>87EZ^l)tEBwEn{pM_n7BUeXns}8RL|n<8Zl<{yG50x>|oGh5L{ z%`)CEV^JCJl<`&>Z!5~2ZuED{cu(`ClN5gCJ z#cgJG+V9=*hdrYf%fwJL{lxe$Nh|Zi zAFD@FVoBm@4x8qX&!Le+A%}7f#T?pXE!nEttuLos$)T1*RfwsfZmk?Pt-gtr|JVqd z<PVRMYdkNV) zhoL#_qX_%vFgS<(q?;-1FMUW${9!p9sNrzQ5jh+n#qbZx;b09%N{+H?cZh8rX@})- zR1TwaI6Q|j!pF8)NjM^hBU_N8b2ui4aYASvZ%q?&I9B>ZiyYTd$z;9nZ<(!W^dOaDEQw=5U@O5GRN70uAX){h}N$QK*XrG6L~SbJ<@|q;h!<*XD3V z4zqH&QiK^f%#^}VyvVsKhiimfEy>+ZaJF>Td|eK=hP(d&*Jp3ULT9PZEIt{m>o;ci*)ktD%%={^nV{y+|o=kQ<- zkL2(WLEBYRz@s@lCZ;Kd*`LVasT`gZXhJ=m!!x!*B4j?7!)rM_pTmoyy^zCvDRgJp zmvVR|hnMAI!V-K{1h(|`9Nx*{jU3(*@}`YU&f7xh@@@_bSZ5CJs{ zhwpe`3Nf8w{2zD+X+}Tg@J9|m=kQw&zvS?%t&<#6+wXRz7U%F+4u9Gq9IWbKWe2MWF$EA`&B?a68FqBAwu99jtRYS(>$|3d zwVbSGvu)VzbsThY(AmMdPIfo(-Z8UV&%yfgBGate1`e7IHgu3U*vNtBpqqo7gN+?@ zS86(vNxtL2wFpZh?mGw-EwFgxAhxI_>Y604mNeLxr5Cd^iX6LX6ChpgDqPsp<^!xTRYgwL2t`6 zHPEz;jlZpf|2f#s!G9fW?_dWT!7Ra!4tA0+U3k%bX9s=dyNe`g{T%FSy+~l^`#adj z!2qriKmT_yNXi}#20GZ&S^C#jXX~%+?IqLRk_Oq=!7vB=2^s8Qh=cuGtPD7`WjNfy z2n`Qt0a?I74o0$FeEyd_Sdzm-*f&*pn1jO|jJEg~2VHKBcvbMf*kGOMhD{@ zobO<~gQ*UVad51I2~PIZF;SAf)Q@v;f`ds8j(0Fw@hieU!&>YF+ z#d_vAc+|m74sLUBvwUx{8E<9%Rwwy(2lqIbC*%$XcR9FII$Ou!yzaKcdmTLF;64Wr z2)W;Om7E7TQ>A`brbi@+(DaySk2`q5!4nRicJQQwr$jK-lJks%=Y%}lGOy=t{P|XS zQJj|~S>7uS7CCs;!3PdrbMTIX*B!j&;0*_Fa@#07ABh?NZAGBVOrHM^-e<#k3-bol zU#M8%V4?Jfv|+Nc9em;7BL|=I{CDt)t(Fn!@|lCrdCrJzp3=W`@Qs779DMC$@7fHF zDX4ra-!=LC@8E9--#hr#!4D38cJQNvpPcM-1~Nai-=F?sBmd@Lv4h_o{GkX;#K?S^ z{?ox$%v-#riHb5Z={Y zy6s8c&|UfuPRZ=%Vq+VP!<>siL&t?H#dG0H;XcU-eE!!kl8jv>QjCeg^DcV0D7dJ( zD7t8OQR3X?+va9p8IW0avkxRIE~@e!ZW~p1(a?b zW)S}UvCUm<tZ_>+tX?b zp!ps}UP#62V7{ctjI~bG9VO%)Xz@b47 zaB-xI16>^E;vg3XyBO(Wl%4%Hkv3ZAx{Fg?oF?Y?a@?H%(!|A?Ez#J4X)dO_INQZJVzK~} z{ahF43E@(jXtddZyIkDi;!ZnjnmFsbUEE_4vjgvQ@t}+QT|8iMuHZ#HzFa)4T->5& zc8|JP;NmeCFEOKwXI(tu;%OI8x_HXXo(ejt472f`vC*D$@q+Z{B{{YEE?(4bWy)Pzx7rI#F z;sY0-6LIm0i;rAp8_*QFSvapQr zT>R?ddlx^s_`$`GS`p&xD*ODii(l-DGXjJE=3=pn-(CEnUYW?`|LNi{MK&}d|L~;s zu!N_#hvhu1OLA9KZE(8OJ?!kE;i0#OriU#&Y~o=v50uO`)^bxH z;^9;ehkBUk;V=(JdKm3ttcNiwh7}Iw-~aS*gqM9?$T^x5=_n85Jsj;}oZUY(adyXe znBZlf;?j|ous_Fg=;1gI$9tIMVY2p;G0}zB2{yus9!~afl832E%~x>NNx~_b0u_3l z=HWsQr+YZZ!x4(q(g z!{r_>_He0(OO%>4Zph1QUas909%g8Gr3lP5)59!p=~EMXLgZ=>4|}-A!#oeOJ>2Bs zS`RmPxX#1%x-U##eu90YhdEl=Z2u_N%^v1@xW&V*y1$sw%=b2KV|xOas_yV`pNBg= z+~eUc4|l7dpNY><^tx9O*sJ?JJg90Pu=gyj59!XL@`#7$JUr^*Ne_={YL9z(LQEzy z+x00A&w6;;!!ydl`uTuIY3|nNJ-q7S1rINInD6051|9!0J zXUB-?JRcob_R-15Dn2^+Sk=dB{?cbl^0|RK`dHmxdM49-6#xDMhYHA=*RqjE^Yb4c zlYMmd@joBy`l$Hm;=}W?o{x=utnXt3k-PfYQ!ekg4K-xPSV=b@IUgJQ=q}K_1aR(- z57*C5SMts6=KIL|2zmWK&;C&@pH4ZY&`w#`PjwBK0f;T*xg4zAG;~zu6}khlh)tI03XNbD{q#{g7@$-h*lqas$+~pT8+Q| z@v*m^BReyK=f98PKKAo5#K&MC`^(CHG7epa`WWVeLsrfpOfka8fj$oKvlmm=&ki5t zW27n}ffutM>|=tDLwp?J<4_-Cd>rOuw9U&2k~Y@I;X=wb&XGRG`8dkQ(LTswWX5M# z$8&08vh57c=eLQP{;`tB`IzK`AgzXQypOYeoZ#bBA5(lx^>Lz)lhku=X_n1>ezK2K zxOJ6+2wQQQk28Io?&AziEt`eTkh6SDldnNo(m6gZ@G;%Tc|Oin4ZJmI<#oP> z802vuPx*Ml$CEa);n4In4=9Cw*2l{}p7Sx^$MZg35YA;~Mo#lZA1`T-(UE;)4X^lk zO&MQRA4q%M#~VV}5E6*I#jVSoB#bi=$Nba1^e0<~Mb01&%_`=7RTr%Zi&p91>eXTwd{Fd9&$08r!Y1W(t zn?ueIK7JI!IyoJd`ZEvh0KfS7)5otq{_ydekKefvT1wLB%gBqh&#C<7V~LNyef-1D zE2beV7i1?tE1?SltQKH}04oPrF~CYec8}1?jlmjL39xFA{gGiJj6nAe0XhZf7+`e; zVG~#wXT64oJlV)xE5Hr`)(+4XV4VO?fX)Fn2(WH|^+f9uWXA#>*ALKDi0KLAY#3nU z02>A9W^vLOvwMJ?5VnFB_oo{m4&Vg{1NZ>~S&6eqMvIh!jwB}m3IWmp`5-$#_t#u# zDh4Rgr1++Q_5hm)C=|ThLE2Uta>|Unb%1RHY!jf5>Y>-2n#FbjwhyvbMshM5K`uvt9RutU zV5b0m1N={Mb`G#hki9c9WKO4Ffc^n?4X~RCLluErcR+yM)dv%k+hAaT{Q~S6VDA8f z0_>$Y#>zPR1lU(Km=ro=J(+*JT0|Oiu;Gh5p2N)S( zlt4z~#q~NQz@b6*chU^PI!B8zCcs!JW-BuO5dq#0aAbh%0~{6L%m7CRI5EJu0LKOx zA7Fy`$4GKnCrV+f+3@2693Nm(fXOU_KN(dz#ylaw6w%l>HfJC|{|RtvfT;pc4sePT zx{zRccv^td1Dqk8ky##1X9c({z_b7t1UNguxdF}zFx_rK<9J?x^KIujS@!M10G9-~ zD8R)5I_Q>UD4q$IDmbUWW?mlP>Ht@8QF#6bm=R=8KCImA+gSmwvOC0_E!PCNF2L*n z*NVwgi!qswl3q6icsjt10qzYjhlBt(1-Lc9%>izq6vr^<2DmNA-mUYMf^%f>c>(SU za7TbUm62;lkTLJ(@~NxTc`?_00Uil(e}D%ykp~nf+b01Y)(#(P@6$&EJQ3hA60~!e zn)70}pA7I6j|&@+_%i|C3h-=zmjgT(V19t-1H2Gq&von)E1~0y0bbH92%7%965#a! zuLgK6$o_^rG1>|tRt&QnTE)R+4;{GDQ2Wn z3{eYF3Q-Qx7NT91Gl;3D5~3Pr`=60{vGRI|O+qw6G!@6}F~&fY;)U7!E5WNL52sh_8A^O-M%ivmU7h>lS+lSaO#13p@ zxb(9xM&L|$3h}=%JI&~xmBG({LhKr%Z-{=1!|a7Yg2p^Co&&;JmogcuWIVu-OJjtX(Om`8*-(ncnqvpYJ(_z>e{ z<;yXPIVQveTRDeZ`eQ?!5aPHHlS53BiL+o~$4fVBF(t%FT9*?QpVp}%PPX0VDfB4+ zluC#TLYx+2T8Ps_oGJG+IA0ZimWG@i=W=$4b3>dHV!A-nB6j1v5a$bFRiv^03qxEM z;-U~2+gz7~xYX_tGsnwA%m{Hsh%0r!5HzRaOm2Jae6tydUmfE05Z8pbKg8@1w}rSi z#Er^$U5M*L++d3|k>`ZCCB#kK_R7erSQ6)cYlyj;7l&lB^4mk)9b#UHJ44)|AOwx| zF0Cx*c#rUVL)@om%VzyRh-X7Q$XhAILm?gs@vtUKciy&-hImYl9P$w0T%HK=bciQI zJVm~q5X_#T=^5LZ=R&+3;`tEsL%bk&Gou$nykt3yW@>mP#H%4*6O9O0pX4_}{21cR z5TAy4iw8STl@RZRcqhcWDv#;RZht?-0{NOU7~z8uABXrb#7B137?6GYq@|M2LVOeA z^AKN!_#(uYx>Lwu-%OmZMP`<7Lwu(ba*^(3hWb9l4_a%IISV2`@x+esbBM(uehKlL ze1EkOeh={nPgF4(oGyRzzz^|Ph`+<^vruLs&JHi(;U8t^4~GoS$cV6NgcTyJ9AU)> zD@EDaPJ*$n5@m;mA+Hu;^#~mzbc~jMBT1a(P7&6KvXjAtC9+n8qav&wVVel+FkOVs z5xPfMH^PPyxATl~0&@|<2u=h)f*Zk8 z9M0D`1{zZ58Kk_~an{VFR5ppQC4D3Gh_ES}V0~Ewvuqw=3q>|$f;}Vjj?gQ@R>Do$lv^t}1G0yG zA`FhOZG_z-Y{&jb*gnFJ5q601UwJV*X(r}QHqOow`bytLlFjTFVOLwv6m91I5e7vV z5Mf}1-6QN_cY+DEr)@Qddqvnc!rl?~VN&&hwQ+;(r{L7tnf=L+FeJi=2t$Pri!fXn zhuRf6Ai_Zr4zym3JTk&44VQKDkO-rN92(&;DQq26jEQhWgs~A0kFvdOdPUQb;+VVm z=m;EOf z;t0P+_+9h*%|`e`iaAC9jPSRHe`zk}X8A`QVE5uX0yQJAXPQ3JK){7Cw@M8qB@*&VP ziX}yH_S!)uiP0V-jZut|XEChPK35FnzyFQVW@|9~a*S$>iUQJ|6RcUCZE3{l8KW7a zM~qEkY)X@?%kpk!hnvUPQhnP()za5Q>lI_W7+b~ICPr_j7N1t0a+G~yY%4y8Cg%1r zc8swD7f4LLQ!w~W8k+lV=NOY?>=NU^7=2^x9iv~2J!0${qrYgo*=`JovAfO4dYENk zj6p*7l;o;0{$7^9PmCck_Kh((#(pB072jVvZ#Qn6p)rPQI83{U5k|x~Kz%k-9>~xC zV;ml1WQ@aNjEZrH_y^m)LE520xC2K^853iy-E}OIgd<`c6XVDj<6;~Y<7m4FXkx+R zhT zWlhB5uO@F~(2|6WMH9^M&t0m}=WG6Y>VpgAyt0({e+`a~N1tf>2wG(Wd zV4VbA6Le0nUV?QKbV>gIQwYXiUwo$H)HX=4QGyLE!g+OT(Yq%I6XX(j37iBj1FAv> zVLCrSkSsmzP4Q8JG(nsoQOyJykS)z~sIaWitVJooJ_*_qY@eV#!R86d37QEi32I_i zRWq~H6EuX-k<$U`AU{Fh1Un|!Il)dWOtYqy(;=DHF5+{I`X%U}VAlk@*)`%6 zNEnb{_m=p~GEl=k6YQN}P=dW|Cs`X^I8#R3H^GDi`z1Ie!QccV66~K~Sb`x5hRWSc zoXauX7QkEwBp8|Czyt>g9I66X>L{iVLY)`A4oz@Gg2NJwO)xsa7`sn6HO65Xhg;;x z1mhAMmEdSapf3q5a(seglI$skS;(g{F~P|Rj!kf4g5we#pI}mg$?{^g+zg!83Ec2P zOmn6v+DQqf3S{I_JpU7%mEhC_rzbeAg?vVWGnJ96X_jDGg6Rp)PH>LR!U)_0=h|q@ zcz%Lk6I_ts@dOtpxHZ8=39d?Tae~VeT$12Y>wB5?Vr^F>n33R0A)GAdI5WX4+Y@FP z$j^Tg+>qd!1lJ~*ZG*56*Cn`KL(Yz&w&w4D65NzvjzA9Sesh9bG#9h6Nt>JCz67@= zxI?tt6U>uhW^`wQdlKB0;BJBDFf^O_UR%}u2_EA4Z@nIr!uSs-cvSi$+G$*f$1I1{ zK9OKyf+rKan&7Df&nI{~!LtdT5r=(dmgl6ia_-(261$f>{euKwCHOGGCjvi` z{8*CNKTYsOg3l6su71*m7Yq1O1k>KH6a0|in*@szd@I~=zDw}EJrh_q!5V6m(EF3!#_6iaw(8zC;#$kcK&eID`;q9 zu9RZ+6f37#EyXG+R!#r^`$sZ6r06IzSIu;laXJZEBVBs7ua#os6lD~3X{t|>N3u|bLr700xQZSSVxcUpq(Df|?<6mAMfxQXLQH_}+5j8VWZXl; zfp(P#rMN%EUMbEvxj0Vxhi zabSv(0uPd8Lq@T&c1A3TOLJ(7(Xt*U$-9jB7|TCA#jz=lNHIRektvQAepH%0HVO&3*y0Y?aSUaaD@5Qe2#3T8i^hoSkC2yw1@+jUYg=EDP~?*&^^VKDQ2+S3P_yQ&Ju?cVs46SQrwVYc8cp{x>nM> zdAUB#K2fLRjVW$UF(<`MvKo+KZ%J{h5Pq3O8pGa};!YvArWOi zDa1^lE`O(3A&-AjESJX;>&v{$=YjmvPx~2-ZCo*rRq|LVkCj_+GFR1blN~^-FkU!oX7fkY?w#aJT}N@ zuN~|UCq-qWJh~|+$wXK~_dMJ@a(Oty&27s$dU^QrB|;`6hxzPfg;yknNFpVb%u5!m ziL{aeQX!MFU8b@Hs~XlM>yiyg!{0>ueAfVkvUqQsYnwc_ zmEK1tQ_psJY@f%D!gt8yzt+oGcjDah=qqsNJa!SynEJH@*-d(X$pMnPOR}mxqzshY zQm3lBYp*nx4t^BY&MhhHc5fXawiz?9=_DBUhDvxnej%G=UIX<8Lfccm_CJ5(V zVj?2PYIvOFq&$w#W3qHwdFB`nEw{3nmQ6_AOD-;>9^`Rsoc zWl6&~rq}X#Cy&>KzajaiB&~1d@wV0J@-FvM9`EI`Pr(M|pgl$0rv2 z)GEgMc^+Q~`BL($7V9^8e6QiRl8Yq2vxFb=_#=-W^Y|r?pYr(G;$|+t=JC6b-)v_L zzL>2p;7=a-dHj{f-`30YfpUrEQ(wN2H5`&F6tH4pX_HN;l?zyFodVWX*v>Y17ZJ#0ko61LK*O%qYeUgY{B8v}!Z$9U zyOf-z(cLW|D8Lin7j9xwh8jkav1B5dN-}ssO0j@8DJ5H5yN2ZgDweq{W=%+4vLV@& z+(hy}lAB60evbnB6tH;#TNbc|Koh5D0ljRltqRy$rrs9W#wup|+uCT`OWC1-|4I38 z0Xs_BNzz0%F1r*kw1B<^>{&p+0`@3i*8&C6b`eDtVbCO(a|){YuFh7B`PlvoyR)@@j4pduY#=ey!wn zlB|c;8w$9wkiG0upCjcaYrUm_y9&6qfO!SXmFczuZnswQ>BZ{~neHrPFSrJ|yMTKN zxW9mV3%JknO^OFZHu^*A4;%Gx0gqUn9ea#hl)qBrOMsLoB%dtcDJjfL6FdJ*A$zpr z@HwTR{(J#1NGCYof-hNx;41~ZF0WS$c+I-gk=Gjqyjj3omTV#$`L0&&JxNx}wOham z>cwke0UucXL+&?$9~ZKhOJ01n{Zs)zE8ue}Tt1e;?{R4QvXDI(f2D>{`HtWJ7C`x} zkVSU$n1@?-j9zsAv4EenxQxSLwjT=kRmg9WM1EHUDvJyFTi~As{AH~SMbke8EGb~Q zVzvVfLJ195kTf_ayHXJ=7qMy)s}%o#_Yz;Nhz><`EM}XBLta!m6|r^^YZS3o5o;E+ z{m=R-jY55$B03kbZZZ2Tg;SslmGxROcC`U%+OUZ3MQl{e-r9F7Vq+=9Ib0^q^Pa1K z4CNK!TRo6M=GNlJ#cW-YA_`Jc$-E>vMXQk0R?OD7y@+ZNznFD!lp?v8!-{^jAr&aDc$wH6)F_8YpDX zA_hqzvX@o%DPnjL`xdc375)UMh{00KDhw%NsD_L)tOciagoXzw4u@Q+gS0v$ix?%4 zE(8xL;;~-F@Jp7AzQ;P8= z^0tb3$Cku`-z#E4F?+Z5J}cLItA#~;AcRAMd?eGyMSNPsC(?<}(naNSAzw&-*<$^= zh#!jhrieuXztt&6{&z)uFN6_HoF6s(sRjI{h~JC&wTRy|P0ol@p!}nV#s5Z#|5e1_ zMJy5ik8Q$orR)GVUYUCdD+pN@YNb+k(5-C2RW&sH4$?bHt}aPtCrenfgte@0`0FT0 zXB&!OmlD=5VZ9clYY7{buz_{lu*GCb+E_?;i#t+Ge6NJK1m7Zof`lbRmP}ewLSDnv zrZ8cP0!uBR!Rb=A?p0Y0UKeQcQZ`H2q{WxWrX_4Y;SLtuQJkGLH1+H(eHY2TCG@i~O@!S_*t>-OCF~)>0Lk4gXJ83~O4!p5 z>9UsyCh|Vg_m$kQ1>fK5LrNH0!Y~a@IwMDva6kzoOE^%bgDl@zN0o4JOU6U3^{^5~ z+fZXf7;9;)=LlTIss&|q~BP=99d0vN?tdYaEq+e zZ3@~*cMG_rgyq|^!+*K9 z?1ZP1T|ziqQ3{cjq^#VARji5NYSKGcj&WaI!%l5jL&}$`Uv3hEm1tCR? zm)g+QhIS227RrjXR@+c(LqooG%W1Y@6C2IAm>F%>h8`9-$QEtbrVU%Rp?4d4+L*nh zY}LZt+Uk953c7D+`Ao5c^#4lk*n($S+OTsQ`U>2|#_6Y_scpA53}{3D7O&k~tOHwc zMjNEzUN+7?oGE|*BS~dHDT5`=e{3;C`cTPXZ5VD%BidjH2ex5U8xCs2$hPchiVrrt zs2r@JK@M%p9;rY0CbeO*tkjQ}a)Kluj~S5QNg7VI90Q)xmc6k(RUnbm+i*@B&S=9~Z8%ev7#ig? zan6>c3jC!e_A^oy8T>kI)R|=mYIa4MExk|&UwPa?+ zXSd-xf!A8j^=+8bh8qOZJJEfQ1YP`{1G9KNEFN?YG(nbc2imbxJ652gy}Dxi(ocstTv^~MlH{+}o}B|7 zBs)rS$QzudPV!o#9cxPAjb`HWa}~x}M-e)=V_hj-B-fLqm7K29H)ugNlHN^nmV$I| zhofQ6f^IuJs~b+BVJOK{g~54K$L&ajP*2;lC#4J*Qfx4-86At?Ls)@BSfVg zRSnJK1b+ciZ%3m&`zddeGi4K`bNHcrsca^sM?1D?$L8`SXd+YL)w3PFtQYa#?bwdl z+tEklZQ8R>$qav6t8Z^>*uf$@3Yo%x0^FW`3Qhjb?b-Rci)3F(4*RuZSLw6tsoTFD z1BC1@xkrn2PX%Z8K~naT+`BzHLJ9KPw;lUg&fxa!LnnemEHYG;5aH4f*ESf@p1qx? zJ3n*yjvxNCXCHO)8rhCf(hrtAM6$C?hqY(N>}bg`l4B)#8gNCprbn<*{QO6fAI%*t zWn4RskuqMA6Q3Z3OzM=!T6_|VY|oy2Cb#2wRZjf`?pqx=C$?j1J5I7VKYe9mSr3&{ z+HtBjkNHUUbWM=HXSCx?RY)4=K27an2hMKCIoedym5vC>=e6TPklMdGkg z3{H7TJ1!N0IvojK-i|BUF{2$ULbO_}8>!b~~Qq={~^nK#M0>Un83%a=?SZt_)oXvS&^TyI16}A`tuf<-;Nhs0={JNSERh! zjyI&dCeG`Y`KDFgvV3NINBX;xT+{d4vB1)3T`2s6c6=!Cqjr4UVr5~U+EAYf|6KA5 z3x3s(uPy(Zc6@7bIxZ6aokf0V$FI_V6#kRs&+Yg{is{U6(&@_~uRp|J+yc_nQOC|d z?O3slB|PfOSgs6|(U0H%O5V-?QAjkyoSk^9NfM{tu|@Ax z&TgnRB-bosoif%cW9@QwBNJx>Sy*RTc?;8*w{4d)7D(ZST)&L2WppoNgEBTMXQ$tW zBJsEV?EIll$!NJU9BbvN;#%D=BbIMaM#$Om$3Nxlg^VuT|4A8bWu#>k%gC2e zurWzvx{~-t=dituav2pxBWUoN60wGQ84bBN%h~q@OhNEJW%LkX(=s-*6X*0dSL7|q z*~z@6bb=;kuQIk0(p!>2wpIiZ`joMA8QYezgG}3%v3)uF7RJ1Ck@?>;b|krsos^3K zGk2YJyOgo3y!vuwRVOQ?FA2Mq(O)K};52tHW8X6NC}Ynu2HF}JYET*bl(84PB*(pF zqRxv!*w6jS7+l8w!Wn#s6gtvGIjoG~WsEFiL>ULF>;pt#(t~V0q%qnk;RlzOzVaSg z#^^E*Q(h)wL)Dzl#r*( zcvi?W7ANO9nVz@Ed<|dJ@FhvcC(TU6$k*(>$sx-&-!<_0lgziuc-wlt!`&;8IBD-| zPcD$;G#5(wK=MOLay~BO^D;iMoKMU6%$n%(g~h*=@|DUU{*8v;N-mOQDB|Bs|3UIc zNrFE~`B~D?ewF^4jDbgp3i3f8Tli`)&qUgiJ4!|GbW z29@k}}sAgsU>$FCre!qc7w7=BbiERaKP(Uhqx z*-@NV9MXyvlq%UP4y|Szux8@CsBrVsaTed>SWaEh8Vb^s+(eQw$)wy=!_6w_A%$@W zZXtb3%j{V}FX`+at>pBsU~6@38%b6|kX3D4!FCnwRKfNvxPl!j*|(ggTFM2= zm1nw5xl09oHNk$8yGojQ^=E_%23TZwDSJpV&P*-AIf&cfi+1+oA$JkMG$kaD4{7gcbv6ml+U z;a^t4RTW&WYOko^N-5;b;Ef}9)-cN|#5ugWf@><6UCCYrIOJvWURS~O72H_C4K@)= zn$x1+Ed7=WZnYK8ZK;Ih+clhLtwin=a+f5t+#}^)Ni*O3xz8(jK*)nF_`?-ETEQbW z6n!6))s*@~1y8mNpK8&cso+_88K%kdf{i@Cf)`uJFIVtJ1+NHsRq{2o|Hx@?A+D3-77tR2JxtSf~geNPZ~E4jXsMPlS9b`I+RhI=`?PzpCI{nZ6eCjioKB z;Ct!cStbMiP{EG^f3h@!zf|y>hQC_y_X_@K@mehWPmBC*Y0K(duA1GC%S*yY{u3}M zEO;d;E8F2J)uo>ZtyabA(mPbq(Sqdj>Ll_S)@3azYuh1nb#CEzsbc*q)|1tgWV*CL z72T@X(Bd1lxNlrVcZ-wkNOxNh#_?^6P)bxqT16~9ku+KIRTQfzwD^`<^mgfG%jfx4 z6;cyos-gL6QK{AeVQQ66ONwO*;yHv4z6@9DNO<+ICT`i%%lmT`~KCeBh z7+A$#RqR>CARC!D1MaP%iA-eQD)y^luyr^1kSa!1F|>*i!iQBc+!E+=KotjRcwh@S z(q=ihiqTaZQpKUxdYBZGeM}WcR57-S!>!feM^+IH`)$tC(8Fsa2d@#VOWm=6jkQ((#Nc&eHHq3r=gvcup1P zS24YcbFGyw=h^HRRB>??7glkRMNB=Hh-`F|@$xFJtKy0(uBzh7DrVSdGpm?ob;G~9 zirGT0u`#c0AzWX@O;y|=LNB_!Ud0<#ye;ONl5bhUJ5t^iNalMs+JY)Ru418vA6V;$Qa-XA z@;{OOX%(N@fS|2xU=tuL$nv5H?b{7Ld>Yho^1e`^WyhxEmg ze@Yt8-&HJM%Z`_S1TK+Wu9m$7WP}=4mUV?1R;*zqiyL3cRb*XNk}e%Ap<@lJ3+yDh zhUA)(Ye|~;JoMJ7p|iZ!mE@t=2=I%Q4P5ox(VlS;~Kh4 zpQ4({;VZIR%RYkkEXO<;lN{C%*RppOktC0^@~a$&m7m2?Z+ zke*U{Nz#3*8hVSsEX>Z1ZBs)Z+u?0%*v>LdTXx`Nm562RSi?@znU}TgT+3crcB!GS z0+Qd)`Z75AyVcOYmVJ&#eSqf00=O0&4y<7xA$!&^sD{03*h`V=XkMXA_I+#Fk7+rn z!8Hu4VSm**L~^L)Kuuw|^bs{2Si=EY9me6*C=XIeRQNc$&aGcinSV1DpLM?N3JLj83j)Z@Z}TI#o5CCV9FFK0`Wtc$PXgt%kFuuw&<_?CEwB za@LG+UJd8VDxCL#u3^5A7i-zai7!cVI@DjO;dPl_75JKT;%`WKQ}Qjzw7Szger{FRtNFi~Pk_*YS4^ON9Jm@nvz0f_nB^utFUx*0EAO zJ0du2<#02vTF*|@)g)=^D3{eGiFXpdhP4tQXYD#Vi?EKR5norFE_JLY#W1^yut6Og z*Rf$88(Dt07EX5yGBUj!J2Vk|4Fe036G@LHlNLO0^+Fv*=_ScF$#%)Iq={UWUX!d# zawjuBWs|euCbzTRw2m!=Y$n;Gj?JZz!%afDrQCZ;_L7Nlc=fJhYk}KH66qs_F56jU zd&|FDF62-#`v1h)*)nPBE4`m2KglG*+ifG}POIarI!>?Sj28DZtv;=ebEKbbgG{#y zqn%gB`IdQsaFghwIY zhNga#>xMdRs^dnB&#`=RZm#1Ni<3OJjyvkO%@S^}W1iJX=5=QschzxE9e3OE=*8<^ zOS`|0N9%aN#(Yr9Ly`~I@komoqdg}4@j9NU<4J2G&VWzX@nRj%)bV^B&&u?ijY;bZ zbc~j z_(%~xv|&G%V!S@B<8uu^v%UtW{IZU(>iDLPuUq)vN?&BjCeinG{7}cwyhrNz$(l@@ zU+VbPB8L2X9e*mwAHo+)r|B=N(D9!-R&HPk5BWy6y_aiXc_}oZffcMy(@HHmhpRNO zYGdj1ImsOwSf_!G4Xo9`>J6+Ra;FxTHLbq3RT!jm16>HQV`BBZl!7D!(pqYu-auOel?K{{ zmo1qDUeyL_E&PVnn>H^w|7l>;271V}nRVaXDkN;#K<@^63hC9rRxKt|;nodoBe0Jo zT@1dRhTAu=gH31f9UIuGft^hpYcgJa8`!gfehu`Ob=L-VGc-+SKm!9C*u8;0ENB86 zIjDhs8rVxFM%&wROyvC<7}CJt2KN6qPU}!1!)zrZ8aSkZ0~$D}fdg$crWo14!3~UR zK}=-ILj@kz!03Nl$2M?y14lM+L<@dY14nCU${uI+W28)I;5aE08#q>q$wKlZTOpC- zWjdjODGi*|z=Msjuo*IFw> z8N&4q+|a-r;Wt|AO;#c8mIm%=;MN9iZ(wc%w^@^MpVz=$4cyVdo&T=0e5IW$|wsSk%C`3b-u7cd~vj`Ge$-l0Qk3_DchQH1KN!zYF=z z;wHl42L5W`Pl2XCf4AsM8bA}vHJ3g|EiZ+RD>Sik6Du~cl0}T~Dow1~{Qt)xf*mZO zV-u@4v1SvUnpnefjMrLr$jIwRr_$Lvc4=ZG>FYJIeiIus(N#m^OSz$CQtxKh)I1;j0cw26Gnu-HVKh9%2yZ=xck+(N5bz23woO*AxYT97sT zr-{v)*t7*9*uxIDXkxo2wrpaXCVDopRTI5rB8P41-Ne>5JBI}OSjTNGPH_7sb}(Ko zzB@Isiy=3$a|_;AdcPLLpfwpVvsY$F;>d6nwZvtoYTYw8cvryw~6zbIA1z_O$`?|aY+*wDdxr2v@9c) z%LHC7d4(m+XyW=NW;QXqiCIlt-NaSaWPGo&LuR?QiR)TwzM+XZvfgOHo0_=U>U5{e ztxen}&RiSkb}6*Z`#-9#1l+3Wee;?k4TeZ0k|9Gf-E;35_PqDm=bm$}G0IHIkP^mWS(fklTDaq;~Sf&n=nVrGm19b#(Y-fb2h^B*6YP4yw-%5n(#^! zUbZAdy(&D{y0g63oA726-VkHvLiv_;d8Y{14@u?_ z<&fqO=aAS?WeezDX~5MScFm#2AT~~$v?j}L!n-%v@0r5^Iqa3gzBvrYVIO(zZ4CzI zFv!L+5%#mu_O~_%=5S~Z2jy^ZgXJMsJ2;2Kau{NV3}WIOp2IMaN91s%)gEO5ZH~@i zcn%|T7?Hy^e)Liy!CJs;2ka(=X z8It7B6d1=%BD1qB&(srgn3%&kmN_?v^Mud0jB&X@z8B_jk@$;qxI} z($sTh4p-%Hbq|Ac5c2#8 z@s1qs%w-=`^0Pk5yM*tSHOyeQ@+%fBpO;=G!} zTn%57e7!;SW)AOa_*M>Y3%ny~=JlS%^90_vHByHLztCp*o=)V?r9BrHDfd3O`5T()%Lbpdi4?B zyct_GkXs4&m88wq0^3-F?F9NsZZFy2s%Xq>M-6vs#?As{cCiLI%QOqLG$a2XBi~{( zN|te&;abcl_!bAv2!$g_)1Sm@%K~XLDh=AIaLwA(o6**wWre$GxVz*Yl6y912P0Jj zG~8QqA4!q}t(JISk^4#RFL{8~9%StgZpI-NA1Yvi4-r00a%eLSw>H!s*^J>D9wj+U z@@N~Gc}IvjrWqpz$e5VNHRE_Oqa;s|G^&%Dae6aOZpIjqr$~;r2B!)z&S^HwSj(It zaHi#HGhWPDl4mz#f`G|#t}t!RYsUG)6C1STFKos|&A3$L#gdoU$d_q&xg;$a@JivU zBqv$^YHNS3Wv*++^%mb?wUaG#6M@B31Q_{N%iPwC+lBA2DyHT&Rl~cQad$KBX~r~b zPv3hRET=c)Ar0@Be4rT*HfSFfenj$7Ni#3X$C~lDWo8OIVJoM0mYAoS@wByhMu6Gp zG~8YzHG)<7Ss2eX8fq(x6Syj8Q(W! zv4*Cq9~$ry;ib*^xfwq-@V_+U*M^~S{Jj}}i2PIXuLgsEgjvxh>e4rsxFVu%lF z!NC@ryoYKySaOKuVGT1nyah*yJW`SojuN2n(UuwBf)T>USe40ptcJ(6;P@7tAUvwU z;6#g07C1$cj-v&}SnX++KfMKGEk2{6!f`DaFa9j6Wo;8IKBooew%~jX&uj3SD2A37 zTFZ-CaIx?uR%K>!nTD53ULkp9gTbU0T&*FEuMxP`X1QL&8?5%m7EBg4ZO?*hI7RXn z$y=>2wYRt6juzb2f;*)mGqpi`x5#OdCg8m-xKG3BlJ`r}i`oY*ey9Zx3qN8R<2$1T zkBNC)a;BtFJt;g(lF^=O!P6GgV7Bm_7ChgAXN8|@(9-?|4PR`i{N)zBVr^a(m}|AK zYxsuMzA5mQ)xKl-cLmutFXy=G)I(@{G2U3|5vTvx)%u)dV_7u5Pt!SnZm5bQSI-*;%qn zL*%vcSX(4xt|P#h#NF~(FOLnxte;1BYh$!M^4PF}=_$N%9-HOSE00Yz+{9+-t)X%3 zW4$)F9rD<*!G34qU93Hm=8RUd#qxO@ zrzoamc}KvtS{C4o3GxU9B5P@;lW17ZBei@*z-X&^)GS}mqs?M!ce8kRfjuPmw0Q^Q zF-XkbdF*2?2U_jEmf25We@VtXP~f0EhU9T@9*5>}h*fbSgM|rbd6>mRZOkL``uAUw z{L&FW%@~%)@p&Ab$FX?~&*PYU_Cd`ENnj#6vn`3g8u@&ZYI zgmR$;7Yi`LB?6b`aaq3o-&&HqB9BRVT$ykG^z|wM^85_vYS~{S=2~Hr*IUaQ1a6d^ zta_;Bb#oq5M4BMC=5c2px8-qr19^vyHdW+Z4XSCv_vCSZ9{1)kJ&*gWF$0>IMn0Iw z!+AWE&%O%Fi)5pmA+N`zHL98U>~F>J;_yjnXGyY$WGJ7`;~7n4w&Wbi|FqBL@q7dG zVjgqzcqxxpM7}J^IImhj$Jg?BGmqEBywSk_7xV2r-Vy(99`o{e@BiDpZ-*b|@saR+ zTQDPhoX003i9facf;<)qbJu;I$Cr65(uU{o3(FI;PRg(I_$H600Eq~7A7i&!WUoHMUkAL&{Bagqt{3*#Inep#D{?X9Xuq=<|Hk!$}VgV}^ zfI{{l;KgmcGKaR{RSQ_XfYl1s3faxLiR7k|y(Nufp8~cl zVDmzDFK;0)0;8hrTflY&Y|TUsb#7}bWNrNl*uJ4QGCOFvqqX1JR?BEj!Z}F}Sv*fa zf_wo^0fj>Lz%5D=lw?NW7T{UzOB+bik=m$$asjank_J94psj#P0adoey3?h`xi<_M zVON`x+T9BnP{1CR*|UJX8e;BUz`z3bv0B;>QYcf&egzy2*v2BdsHcQ+WOt zaC{;Ad*GuAIH`aW3OG?i#^FVt7r`k7oLazWl{BV+5BPNs@sy`&c)H|RN!p)Tz=Q(E z$$oqRXBV<>KA$B??SJ2bK1T-UTAr%&#Y`;Vf&vcV;a|W-Vu-2b*V-@9@X`V75xmV!60`4zhx-3bWm=9Q+hYEPSfQJisRLmnb z;0z5J^D*7F1T!u3gev6eF{^-QxU6da(~@R&W*0C=am;!>Yw`09JM%@^zf{0nftL$- zrGQthrHR98Un}7C0^X1fhrFnItAO_lc)Ngi3fUjHCi!jw^9p!RL&K0HFqkeM7BFAI zKe8!k@JRs+3iz~;{iBu7#1pVT3&qgD3>OvfMFC$G@TDeB1KyRK{?~FL{w zSln|s~Lb~4_!m_1O;8X24IW!ztq zJjoqp$r^SpVwYm}aG?t?Ce0O5Dx$fFy!aMkz4p+tP(+cu(s4-O6ticXtBjr`@037u zVN5zkS`^~Ah{R&@bWe+@6j3Xp)fQY;uB?(`c1pL2=aBBZ3GZIS9s;b~@Ox<@10>B^ zw2w+69$3U6i#f0Tg!eDv00FumD6fNx*>jCUR&_`bLs$>L0wg(D9pEb;PtL=N7^?DS z>yP#yp;hKiJFhUF0nOSD!>RNFBiT-W>*T+eNqwE313~rHR|xS#q1eM`|JU# z!iaAu;>IFwlI7%L_9!IDi#1bD5r2y$@6Fo;ZkME%Exl9onyOVGbC*<{#Wd|bGWQg5 zuSiDb(oDC$_p240@`ILnNabGg<>Lp+1qRrNn^<8XFQSg$9Gn5B)xq}+{^PZ#k_ z5p#-|t=h=Y-t0-@=TsQM3q`yr1EzRMt>bbt`zzM#)gtEFhOirSd0i@YkNC|Z-ck)z zy{!TU^88nw)V^25JnbCDd|zgq>4(ZPzlhI@_^60aiuhOzlX4wD)mjsqG8PoEP%SbI zSyaRq8dA&Yd?`n6q_5R^PW&6qi_CWdi)H-13Nvk?{88mC(av0|^4ON2i}+P8zesYG zX~`@siQo^B1ROFidqw%Tf-@H<^{>iaR>X3dmbTZY38O4(zmM+qC2vgZqJc%G2&S;`KLjZ5fN!X}EzdU(#ThTbJ?QNm`W z?B$JDA6ag$f;o#VOV~;?rK)c!JG!?nWj~pIp!YQ1U)z?jos3xtQxE1p0oE+~m$DZ~ zre*_oEMX@FA?93mQIV{T_Dqpu6Ep>?$gqL=QuY8PE~*K%ES2Dt;Mz%XYE0*s5QzyS zLm88gOGs5}qOfHfykhI*-0$JP|1F_LrUYWnix+)&Rc*UTa>}fM#(UUqu#&w>7@$OZ zm$E<3xewcA^K!B@V32)F*sp{GO4wg<$Z%@h2?QqK!6h6b6@wpI!eCX%=I|P#u(TX1 z^6(Ol5TGT4bK*xe%;IQGb9f2I2#k=*%w?n)dL1W{j>Iful(yUnk|#=@RBHc{&nZg8 z)T2unBYdi5=t%d|6>6;H8IoMSaRSti7dWegvn|6ZFVK|FEn%YOdtM3WbH9nCyg;NG zUL<_6#ot&=b-!J)qBp2lw1){E7c*1x3CSm|4HxmL5}qsJX)(`~FsFps!pu(JXN9K-bNGA-FIe9f z8_Zr7ens-t66RW)*95qf^nFA4P06=3L6Yxi_-+aFOL&hrcnR~w6nOsYRG|&84=v^f z;E?rHlpPct1P+Q0Tn8lwj*~t6=) GP3tK}ecehYn%~kx1@; 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%0D^1F(O3erj? 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 = $secret; + + if (!is_null($requestMethod)) { + $this->requestMethod = $requestMethod; + } else { + $this->requestMethod = new RequestMethod\Post(); + } + } + + /** + * Calls the reCAPTCHA siteverify API to verify whether the user passes + * CAPTCHA test. + * + * @param string $response The value of 'g-recaptcha-response' in the submitted form. + * @param string $remoteIp The end user's IP address. + * @return Response Response from the service. + */ + public function verify($response, $remoteIp = null) + { + // Discard empty solution submissions + if (empty($response)) { + $recaptchaResponse = new Response(false, array('missing-input-response')); + return $recaptchaResponse; + } + + $params = new RequestParameters($this->secret, $response, $remoteIp, self::VERSION); + $rawResponse = $this->requestMethod->submit($params); + return Response::fromJson($rawResponse); + } +} diff --git a/inc/ReCaptcha/RequestMethod.php b/inc/ReCaptcha/RequestMethod.php new file mode 100755 index 0000000..fc4dde5 --- /dev/null +++ b/inc/ReCaptcha/RequestMethod.php @@ -0,0 +1,42 @@ +curl = $curl; + } else { + $this->curl = new Curl(); + } + } + + /** + * Submit the cURL request with the specified parameters. + * + * @param RequestParameters $params Request parameters + * @return string Body of the reCAPTCHA response + */ + public function submit(RequestParameters $params) + { + $handle = $this->curl->init(self::SITE_VERIFY_URL); + + $options = array( + CURLOPT_POST => true, + CURLOPT_POSTFIELDS => $params->toQueryString(), + CURLOPT_HTTPHEADER => array( + 'Content-Type: application/x-www-form-urlencoded' + ), + CURLINFO_HEADER_OUT => false, + CURLOPT_HEADER => false, + CURLOPT_RETURNTRANSFER => true, + CURLOPT_SSL_VERIFYPEER => true + ); + $this->curl->setoptArray($handle, $options); + + $response = $this->curl->exec($handle); + $this->curl->close($handle); + + return $response; + } +} diff --git a/inc/ReCaptcha/RequestMethod/Post.php b/inc/ReCaptcha/RequestMethod/Post.php new file mode 100755 index 0000000..7770d90 --- /dev/null +++ b/inc/ReCaptcha/RequestMethod/Post.php @@ -0,0 +1,70 @@ + array( + 'header' => "Content-type: application/x-www-form-urlencoded\r\n", + 'method' => 'POST', + 'content' => $params->toQueryString(), + // Force the peer to validate (not needed in 5.6.0+, but still works + 'verify_peer' => true, + // Force the peer validation to use www.google.com + $peer_key => 'www.google.com', + ), + ); + $context = stream_context_create($options); + return file_get_contents(self::SITE_VERIFY_URL, false, $context); + } +} diff --git a/inc/ReCaptcha/RequestMethod/Socket.php b/inc/ReCaptcha/RequestMethod/Socket.php new file mode 100755 index 0000000..f51f123 --- /dev/null +++ b/inc/ReCaptcha/RequestMethod/Socket.php @@ -0,0 +1,104 @@ +handle = fsockopen($hostname, $port, $errno, $errstr, (is_null($timeout) ? ini_get("default_socket_timeout") : $timeout)); + + if ($this->handle != false && $errno === 0 && $errstr === '') { + return $this->handle; + } + return false; + } + + /** + * fwrite + * + * @see http://php.net/fwrite + * @param string $string + * @param int $length + * @return int | bool + */ + public function fwrite($string, $length = null) + { + return fwrite($this->handle, $string, (is_null($length) ? strlen($string) : $length)); + } + + /** + * fgets + * + * @see http://php.net/fgets + * @param int $length + * @return string + */ + public function fgets($length = null) + { + return fgets($this->handle, $length); + } + + /** + * feof + * + * @see http://php.net/feof + * @return bool + */ + public function feof() + { + return feof($this->handle); + } + + /** + * fclose + * + * @see http://php.net/fclose + * @return bool + */ + public function fclose() + { + return fclose($this->handle); + } +} diff --git a/inc/ReCaptcha/RequestMethod/SocketPost.php b/inc/ReCaptcha/RequestMethod/SocketPost.php new file mode 100755 index 0000000..4754121 --- /dev/null +++ b/inc/ReCaptcha/RequestMethod/SocketPost.php @@ -0,0 +1,121 @@ +socket = $socket; + } else { + $this->socket = new Socket(); + } + } + + /** + * Submit the POST request with the specified parameters. + * + * @param RequestParameters $params Request parameters + * @return string Body of the reCAPTCHA response + */ + public function submit(RequestParameters $params) + { + $errno = 0; + $errstr = ''; + + if (false === $this->socket->fsockopen('ssl://' . self::RECAPTCHA_HOST, 443, $errno, $errstr, 30)) { + return self::BAD_REQUEST; + } + + $content = $params->toQueryString(); + + $request = "POST " . self::SITE_VERIFY_PATH . " HTTP/1.1\r\n"; + $request .= "Host: " . self::RECAPTCHA_HOST . "\r\n"; + $request .= "Content-Type: application/x-www-form-urlencoded\r\n"; + $request .= "Content-length: " . strlen($content) . "\r\n"; + $request .= "Connection: close\r\n\r\n"; + $request .= $content . "\r\n\r\n"; + + $this->socket->fwrite($request); + $response = ''; + + while (!$this->socket->feof()) { + $response .= $this->socket->fgets(4096); + } + + $this->socket->fclose(); + + if (0 !== strpos($response, 'HTTP/1.1 200 OK')) { + return self::BAD_RESPONSE; + } + + $parts = preg_split("#\n\s*\n#Uis", $response); + + return $parts[1]; + } +} diff --git a/inc/ReCaptcha/RequestParameters.php b/inc/ReCaptcha/RequestParameters.php new file mode 100755 index 0000000..cb66f26 --- /dev/null +++ b/inc/ReCaptcha/RequestParameters.php @@ -0,0 +1,103 @@ +secret = $secret; + $this->response = $response; + $this->remoteIp = $remoteIp; + $this->version = $version; + } + + /** + * Array representation. + * + * @return array Array formatted parameters. + */ + public function toArray() + { + $params = array('secret' => $this->secret, 'response' => $this->response); + + if (!is_null($this->remoteIp)) { + $params['remoteip'] = $this->remoteIp; + } + + if (!is_null($this->version)) { + $params['version'] = $this->version; + } + + return $params; + } + + /** + * Query string representation for HTTP request. + * + * @return string Query string formatted parameters. + */ + public function toQueryString() + { + return http_build_query($this->toArray(), '', '&'); + } +} diff --git a/inc/ReCaptcha/Response.php b/inc/ReCaptcha/Response.php new file mode 100755 index 0000000..d2d8a8b --- /dev/null +++ b/inc/ReCaptcha/Response.php @@ -0,0 +1,102 @@ +success = $success; + $this->errorCodes = $errorCodes; + } + + /** + * Is success? + * + * @return boolean + */ + public function isSuccess() + { + return $this->success; + } + + /** + * Get error codes. + * + * @return array + */ + public function getErrorCodes() + { + return $this->errorCodes; + } +} diff --git a/inc/account.inc b/inc/account.inc new file mode 100755 index 0000000..30ef1a5 --- /dev/null +++ b/inc/account.inc @@ -0,0 +1,142 @@ +. + +// functions related to account creation and login: +// - forms for create / login +// - function to make login token + +// If have recent token, return it. +// Else make login token, store in user record, return token +// +function make_login_token($user) { + $now = time(); + if ($now - $user->login_token_time < 86400) { + return $user->login_token; + } + $token = substr(random_string(), 0, 8); + $user->update("login_token='$token', login_token_time=$now"); + return $token; +} + +// return HTML string for a checkbox for toggling password visibility +// +function passwd_visible_checkbox($name) { + return sprintf(' + + + ', $name + ); +} + +function create_account_form($teamid, $next_url) { + global $recaptcha_public_key; + form_input_hidden('next_url', $next_url); + + if ($teamid) { + form_input_hidden('teamid', $teamid); + } + + // Using invitation codes to restrict access? + // + if (defined('INVITE_CODES')) { + form_input_text( + sprintf('%s', + tra("An invitation code is required to create an account."), + tra("Invitation code") + ), + "invite_code" + ); + } + + form_input_text( + sprintf('%s', + tra("Identifies you on our web site. Use your real name or a nickname."), + tra("Screen name") + ), + "new_name" + ); + form_input_text( + sprintf('%s', + tra("Must be a valid address of the form 'name@domain'."), + tra("Email address") + ), + "new_email_addr" + ); + $min_passwd_length = parse_element(get_config(), ""); + if (!$min_passwd_length) { + $min_passwd_length = 6; + } + + form_input_text( + sprintf('%s', + tra("Must be at least %1 characters", $min_passwd_length), + tra("Password") + ), + "passwd", "", "password",'id="passwd"',passwd_visible_checkbox("passwd") + ); + form_select( + sprintf('%s', + tra("Select the country you want to represent, if any."), + tra("Country") + ), + "country", + country_select_options() + ); + if (POSTAL_CODE) { + form_input_text( + tra("Postal or ZIP Code")."
".tra("Optional")."", + "postal_code" + ); + } +} + +function login_form($next_url) { + form_start(secure_url_base()."/login_action.php", "post"); + form_input_hidden("next_url", $next_url); + if (LDAP_HOST) { + $x = "Email address or LDAP user name:"; + } else { + $x = tra("Email address:"); + } + form_input_text($x, "email_addr"); + form_input_text( + tra("Password:").'
' . tra("forgot password?") . "", + "passwd", + "", + "password", + 'id="passwd"', + passwd_visible_checkbox("passwd") + ); + form_checkboxes(tra("Stay logged in"), + array(array("stay_logged_in", "", true)) + ); + form_submit("Log in"); + form_end(); +} + +?> diff --git a/inc/akismet.inc b/inc/akismet.inc new file mode 100755 index 0000000..cd435f7 --- /dev/null +++ b/inc/akismet.inc @@ -0,0 +1,75 @@ +. + +function akismet_check($user, $post) { + global $master_url; + $config = get_config(); + $key = parse_config($config, ""); + if (!$key) { + return true; + } + + $master_url_enc = urlencode($master_url); + $response = akismet_request("key=$key&blog=$master_url_enc", "rest.akismet.com", "/1.1/verify-key"); + if ("valid" == $response[1] ) { + $post = urlencode($post); + $ip = urlencode($_SERVER['REMOTE_ADDR']); + $referrer = urlencode($_SERVER['HTTP_REFERER']); + $author = urlencode($user->name); + $useragent = urlencode($_SERVER['HTTP_USER_AGENT']); + + $request = "blog=$master_url_enc"; + $request .= "&user_ip=$ip"; + $request .= "&user_agent=$useragent"; + $request .= "&referrer=$referrer"; + $request .= "&comment_author=$author"; + $request .= "&comment_content=$post"; + + $response = akismet_request($request, "$key.rest.akismet.com", "/1.1/comment-check"); + + if ("true" == $response[1]) { // Akismet says it's spam + return false; + } else { + return true; + } + } else { + return true; // invalid key + } +} + +function akismet_request($request, $host, $path, $port = 80) { + $http_request = "POST $path HTTP/1.0\r\n"; + $http_request .= "Host: $host\r\n"; + $http_request .= "Content-Type: application/x-www-form-urlencoded; charset=utf-8\r\n"; + $http_request .= "Content-Length: " . strlen($request) . "\r\n"; + $http_request .= "User-Agent: BOINC | Akismet 1.1\r\n"; + $http_request .= "\r\n"; + $http_request .= $request; + + $response = ''; + if( false !== ( $fs = @fsockopen($host, $port, $errno, $errstr, 3) ) ) { + fwrite($fs, $http_request); + while ( !feof($fs) ) + $response .= fgets($fs, 1160); // One TCP-IP packet + fclose($fs); + $response = explode("\r\n\r\n", $response, 2); + } + return $response; +} + +?> diff --git a/inc/bbcode_convert.inc b/inc/bbcode_convert.inc new file mode 100755 index 0000000..5632f04 --- /dev/null +++ b/inc/bbcode_convert.inc @@ -0,0 +1,93 @@ +. + +require_once('../inc/sanitize_html.inc'); + +function image_as_bb($text){ + // This function depends on sanitized HTML + + $pattern = '@^"]+)\"([^>]*)>@si'; + $replacement = '[img]$2[/img]'; + $text = preg_replace($pattern, $replacement, $text); + + $pattern = "@]*)>@si"; + $replacement = '[img]$2[/img]'; + $text = preg_replace($pattern, $replacement, $text); + + return $text; +} + +function link_as_bb($text){ + /* This function depends on sanitized HTML */ + // Build some regex (should be a *lot* faster) + $pattern = '@]+)\">@si'; // Gives us the URL in $1... + $replacement = '[url=$1]'; // Turns that URL into a hyperlink + $text = preg_replace($pattern, $replacement, $text); + $pattern = "@@si"; // Gives us the URL in $1... + $replacement = '[url=$1]'; // Turns that URL into a hyperlink + $text = preg_replace($pattern, $replacement, $text); + + $pattern = "@@si"; + $replacement = '[/url]'; + $text = preg_replace($pattern, $replacement, $text); + return $text; +} + +function formatting_as_bb($text){ + /* This function depends on sanitized HTML */ + $in[]="";$out[]="[b]"; + $in[]="";$out[]="[/b]"; + + $in[]="";$out[]="[i]"; + $in[]="";$out[]="[/i]"; + + $in[]="";$out[]="[u]"; + $in[]="";$out[]="[/u]"; + + $in[]="";$out[]="[b]"; + $in[]="";$out[]="[/b]"; + + $in[]="

    ";$out[]="[list]"; + $in[]="
";$out[]="[/list]"; + + $in[]="
    ";$out[]="[list=1]"; + $in[]="
";$out[]="[/list]"; + + $in[]="
";$out[]="[pre]";
+    $in[]="
";$out[]="[/pre]"; + + $in[]="
";$out[]="\n"; + $in[]="
";$out[]="\n"; + $in[]="
";$out[]="\n"; + $in[]=">";$out[]=">"; + $in[]="<";$out[]="<"; + $in[]="&";$out[]="&"; + + return str_replace($in, $out, $text); +} + +function html_to_bbcode($text) { + $text = sanitize_html($text); + $text = image_as_bb($text); + $text = link_as_bb($text); + $text = formatting_as_bb($text); + return $text; +} + +?> diff --git a/inc/bbcode_html.inc b/inc/bbcode_html.inc new file mode 100755 index 0000000..a5bf352 --- /dev/null +++ b/inc/bbcode_html.inc @@ -0,0 +1,51 @@ +"; + +$bbcode_html = ' + + + + + + + + + + + + + + + + +  '.tra("Font color").': + +  '.tra("Font size").': + +   + '.tra("Close Tags").' + + +'; diff --git a/inc/boinc_db.inc b/inc/boinc_db.inc new file mode 100755 index 0000000..ea26569 --- /dev/null +++ b/inc/boinc_db.inc @@ -0,0 +1,793 @@ +. + +function incs() { + $d = dirname(__FILE__); + require_once("$d/db_conn.inc"); + require_once("$d/util_basic.inc"); +} + +incs(); + +class BoincDb extends DbConn { + static $instance; + + // connect to the database (possibly to a read-only replica) + // NOTE: choice of replica can be made only at the page level. + // If there's a page that's guaranteed to do only reads, put + // BoincDb::get(true); + // at the top of it. + // + // Specify a $fallback_mode that is used when $readonly is true: + // 0: default, use db_user if no replica_db_user is specified, + // first try replica_db_host (if specified) then db_host + // 1: only use replica_db_user, first try replica_db_host then db_host + // 2: only use replica_db_user, only try replica_db_host + // can be set projectwide using + // + static function get_aux($readonly, $fallback_mode = 0) { + $config = get_config(); + $user = parse_config($config, ''); + $passwd = parse_config($config, ''); + $host = parse_config($config, ''); + $replica_host = parse_config($config, ''); + $name = parse_config($config, ''); + $fm = parse_config($config, ''); + if ($fm) { + // override parameter with config.xml setting + $fallback_mode = $fm; + } + if ($host == null) { + $host = "localhost"; + } + $instance = new DbConn(); + if ($readonly) { + if (($fallback_mode > 0) && (!$replica_host)) { + error_log("BoincDb::get_aux(): required for \$fallback_mode > 0 (giving up)"); + $instance = null; + self::$instance = $instance; + return $instance; + } + $u = parse_config($config, ''); + $p = parse_config($config, ''); + $n = parse_config($config, ''); + if (($fallback_mode > 0) && (!$u || !$p || !$n)) { + error_log("BoincDb::get_aux(): required for \$fallback_mode > 0 (giving up)"); + $instance = null; + self::$instance = $instance; + return $instance; + } else { + // use replica user if given or use normal user for $fallback_mode == 0 + if ($u) $user = $u; + if ($p) $passwd = $p; + if ($n) $name = $n; + } + // skip this block if no $replica_host is specified for $fallback_mode == 0 + if ($replica_host) { + $retval = $instance->init_conn( + $user, $passwd, $replica_host, $name, true + ); + if ($retval) { + // needed for places where we do direct queries + if (!$instance->do_query("use $name")) { + error_log("BoincDb::get_aux(): Couldn't select database $name on $replica_host (giving up)"); + $instance = null; + } + self::$instance = $instance; + return $instance; + } elseif ($fallback_mode == 2) { + // no fallback to master in this case + error_log("BoincDb::get_aux(): Couldn't connect to $user@$replica_host (giving up)"); + $instance = null; + self::$instance = $instance; + return $instance; + } else { + error_log("BoincDb::get_aux(): Couldn't connect to $user@$replica_host (trying $user@$host next)"); + } + } + } + $retval = $instance->init_conn($user, $passwd, $host, $name, false); + if (!$retval) { + $instance = null; + error_log("BoincDb::get_aux(): Couldn't connect to $user@$host (giving up)"); + } else { + // needed for places where we do direct queries + if (!$instance->do_query("use $name")) { + error_log("BoincDb::get_aux(): Couldn't select database $name on $host (giving up)"); + $instance = null; + } + } + self::$instance = $instance; + return $instance; + } + + // same, but + // 1) check for a cached connection + // 2) check whether the "stop_web" trigger file is present + // + static function get($readonly = false, $fallback_mode = 0) { + global $generating_xml; + if (!isset(self::$instance)) { + if (web_stopped()) { + if ($generating_xml) { + xml_error(-183, "project down for maintenance"); + } else { + show_project_down(); + } + } + self::get_aux($readonly, $fallback_mode); + if (!self::$instance) { + if ($generating_xml) { + xml_error(-138, "the project's database server is down"); + } else { + show_project_down(); + } + } + } + return self::$instance; + } + + static function escape_string($string) { + $db = self::get(); + return $db->base_escape_string(trim($string)); + } + static function error() { + $db = self::get(); + return $db->base_error(); + } + + // if your DB connection times out, call this, then call get() again + // + static function reset_connection() { + self::$instance = null; + } +} + +class BoincUser { + static $cache; + static function lookup($clause) { + $db = BoincDb::get(); + return $db->lookup('user', 'BoincUser', $clause); + } + + static function lookup_id_nocache($id) { + $db = BoincDb::get(); + return $db->lookup_id($id, 'user', 'BoincUser'); + } + static function lookup_id($id) { + if (!isset(self::$cache[$id])) { + self::$cache[$id] = self::lookup_id_nocache($id); + } + return self::$cache[$id]; + } + static function lookup_auth($auth) { + $db = BoincDb::get(); + $auth = BoincDb::escape_string($auth); + return self::lookup("authenticator='$auth'"); + } + static function lookup_email_addr($email_addr) { + $db = BoincDb::get(); + $email_addr = BoincDb::escape_string($email_addr); + return self::lookup("email_addr='$email_addr'"); + } + // name is not necessarily unique + // + static function lookup_name($name) { + $name = BoincDb::escape_string($name); + $users = BoincUser::enum("name='$name'"); + return $users; + } + static function count($clause) { + $db = BoincDb::get(); + return $db->count('user', $clause); + } + static function max($field) { + $db = BoincDb::get(); + return $db->max('user', $field); + } + function update($clause) { + $db = BoincDb::get(); + return $db->update($this, 'user', $clause); + } + static function enum($where_clause, $order_clause=null) { + $db = BoincDb::get(); + return $db->enum('user', 'BoincUser', $where_clause, $order_clause); + } + static function enum_fields($fields, $where_clause, $order_clause=null) { + $db = BoincDb::get(); + return $db->enum_fields( + 'user', 'BoincUser', $fields, $where_clause, $order_clause + ); + } + static function insert($clause) { + $db = BoincDb::get(); + $ret = $db->insert('user', $clause); + if (!$ret) return 0; + return $db->insert_id(); + } + function delete() { + $db = BoincDb::get(); + $db->delete_aux('profile', "userid=$this->id"); + return $db->delete($this, 'user'); + } + static function sum($field) { + $db = BoincDb::get(); + return $db->sum('user', $field); + } + static function percentile($field, $clause, $pct) { + $db = BoincDb::get(); + return $db->percentile('user', $field, $clause, $pct); + } +} + +class BoincTeam { + static $cache; + static function insert($clause) { + $db = BoincDb::get(); + $ret = $db->insert('team', $clause); + if (!$ret) return 0; + return $db->insert_id(); + } + static function lookup_id_nocache($id) { + $db = BoincDb::get(); + return $db->lookup_id($id, 'team', 'BoincTeam'); + } + static function lookup_id($id) { + if (!isset(self::$cache[$id])) { + self::$cache[$id] = self::lookup_id_nocache($id); + } + return self::$cache[$id]; + } + function update($clause) { + $db = BoincDb::get(); + return $db->update($this, 'team', $clause); + } + static function enum($where_clause, $order_clause=null) { + $db = BoincDb::get(); + return $db->enum('team', 'BoincTeam', $where_clause, $order_clause); + } + static function lookup($clause) { + $db = BoincDb::get(); + return $db->lookup('team', 'BoincTeam', $clause); + } + static function lookup_name($name) { + $db = BoincDb::get(); + $name = BoincDb::escape_string($name); + return self::lookup("name='$name'"); + } + function delete() { + $db = BoincDb::get(); + return $db->delete($this, 'team'); + } + static function percentile($field, $clause, $pct) { + $db = BoincDb::get(); + return $db->percentile('team', $field, $clause, $pct); + } + static function max($field) { + $db = BoincDb::get(); + return $db->max('team', $field); + } + static function enum_fields($fields, $where_clause, $order_clause=null) { + $db = BoincDb::get(); + return $db->enum_fields( + 'team', 'BoincTeam', $fields, $where_clause, $order_clause + ); + } +} + +class BoincTeamDelta { + static function insert($clause) { + $db = BoincDb::get(); + return $db->insert('team_delta', $clause); + } + static function enum($where_clause) { + $db = BoincDb::get(); + return $db->enum('team_delta', 'BoincTeamDelta', $where_clause); + } +} + +class BoincHost { + static function lookup_id($id) { + $db = BoincDb::get(); + return $db->lookup_id($id, 'host', 'BoincHost'); + } + function update($clause) { + $db = BoincDb::get(); + return $db->update($this, 'host', $clause); + } + function delete() { + $db = BoincDb::get(); + return $db->delete($this, 'host'); + } + static function enum($where_clause, $order_clause=null) { + $db = BoincDb::get(); + return $db->enum('host', 'BoincHost', $where_clause, $order_clause); + } + static function enum_fields($fields, $where_clause, $order_clause=null) { + $db = BoincDb::get(); + return $db->enum_fields( + 'host', 'BoincHost', $fields, $where_clause, $order_clause + ); + } + static function count($clause) { + $db = BoincDb::get(); + return $db->count('host', $clause); + } + static function lookup_cpid($cpid) { + $db = BoincDb::get(); + $cpid = BoincDb::escape_string($cpid); + return $db->lookup('host', 'BoincHost', "host_cpid='$cpid'"); + } + static function insert($clause) { + $db = BoincDb::get(); + $ret = $db->insert('host', $clause); + if (!$ret) return $ret; + return $db->insert_id(); + } +} + +class BoincResult { + static function count($clause) { + $db = BoincDb::get(); + return $db->count('result', $clause); + } + static function enum($where_clause) { + $db = BoincDb::get(); + return $db->enum('result', 'BoincResult', $where_clause); + } + static function enum_fields($fields, $where_clause, $order_clause) { + $db = BoincDb::get(); + return $db->enum_fields('result', 'BoincResult', $fields, $where_clause, $order_clause); + } + function update($clause) { + $db = BoincDb::get(); + return $db->update($this, 'result', $clause); + } + static function update_aux($clause) { + $db = BoincDb::get(); + return $db->update_aux('result', $clause); + } + static function lookup_id($id) { + $db = BoincDb::get(); + return $db->lookup_id($id, 'result', 'BoincResult'); + } + static function lookup_name($name) { + $db = BoincDb::get(); + $name = BoincDb::escape_string($name); + return $db->lookup('result', 'BoincResult', "name='$name'"); + } + function delete() { + $db = BoincDb::get(); + return $db->delete($this, 'result'); + } +} + +class BoincWorkunit { + static function lookup_id($id) { + $db = BoincDb::get(); + return $db->lookup_id($id, 'workunit', 'BoincWorkunit'); + } + static function lookup($clause) { + $db = BoincDb::get(); + return $db->lookup('workunit', 'BoincWorkunit', $clause); + } + static function insert($clause) { + $db = BoincDb::get(); + $ret = $db->insert('workunit', $clause); + if (!$ret) return $ret; + return $db->insert_id(); + } + static function enum($where_clause) { + $db = BoincDb::get(); + return $db->enum('workunit', 'BoincWorkunit', $where_clause); + } + function update($clause) { + $db = BoincDb::get(); + return $db->update($this, 'workunit', $clause); + } + static function update_aux($clause) { + $db = BoincDb::get(); + return $db->update_aux('workunit', $clause); + } + static function count($clause) { + $db = BoincDb::get(); + return $db->count('workunit', $clause); + } +} + +class BoincApp { + static function lookup_id($id) { + $db = BoincDb::get(); + return $db->lookup_id($id, 'app', 'BoincApp'); + } + static function lookup($clause) { + $db = BoincDb::get(); + return $db->lookup('app', 'BoincApp', $clause); + } + static function enum($where_clause) { + $db = BoincDb::get(); + return $db->enum('app', 'BoincApp', $where_clause); + } + static function insert($clause) { + $db = BoincDb::get(); + $ret = $db->insert('app', $clause); + if (!$ret) return $ret; + return $db->insert_id(); + } + function update($clause) { + $db = BoincDb::get(); + return $db->update($this, 'app', $clause); + } + static function sum($field, $clause=null) { + $db = BoincDb::get(); + return $db->sum('app', $field, $clause); + } +} + +class BoincAppVersion { + static function enum($where_clause) { + $db = BoincDb::get(); + return $db->enum('app_version', 'BoincAppVersion', $where_clause); + } + static function lookup($clause) { + $db = BoincDb::get(); + return $db->lookup('app_version', 'BoincAppVersion', $clause); + } + static function lookup_id($id) { + $db = BoincDb::get(); + return $db->lookup_id($id, 'app_version', 'BoincAppVersion'); + } + static function insert($clause) { + $db = BoincDb::get(); + $ret = $db->insert('app_version', $clause); + if (!$ret) return $ret; + return $db->insert_id(); + } + function update($clause) { + $db = BoincDb::get(); + return $db->update($this, 'app_version', $clause); + } +} + +class BoincProfile { + static function lookup_fields($fields, $clause) { + $db = BoincDb::get(); + return $db->lookup_fields('profile', 'BoincProfile', $fields, $clause); + } + static function lookup($clause) { + $db = BoincDb::get(); + return $db->lookup('profile', 'BoincProfile', $clause); + } + static function lookup_userid($userid) { + $db = BoincDb::get(); + return $db->lookup('profile', 'BoincProfile', 'userid='.$userid); + } + function update($clause) { + $db = BoincDb::get(); + return $db->update_aux('profile', $clause.' where userid='.$this->userid); + } + static function update_aux($clause) { + $db = BoincDb::get(); + return $db->update_aux('profile', $clause); + } + static function insert($clause) { + $db = BoincDb::get(); + return $db->insert('profile', $clause); + } + static function enum($where_clause=null, $order_clause=null) { + $db = BoincDb::get(); + return $db->enum('profile', 'BoincProfile', $where_clause, $order_clause); + } + static function enum_fields($fields, $where_clause=null, $order_clause=null) { + $db = BoincDb::get(); + return $db->enum_fields('profile', 'BoincProfile', $fields, $where_clause, $order_clause); + } + function delete() { + $db = BoincDb::get(); + return $db->delete_aux('profile', 'userid='.$this->userid); + } + static function delete_aux($clause) { + $db = BoincDb::get(); + return $db->delete_aux('profile', $clause); + } +} + +class BoincTeamAdmin { + static function insert($clause) { + $db = BoincDb::get(); + return $db->insert('team_admin', $clause); + } + static function enum($where_clause) { + $db = BoincDb::get(); + return $db->enum('team_admin', 'BoincTeamAdmin', $where_clause); + } + static function delete($clause) { + $db = BoincDb::get(); + return $db->delete_aux('team_admin', $clause); + } + static function lookup($teamid, $userid) { + $db = BoincDb::get(); + return $db->lookup('team_admin', 'BoincTeamAdmin', "teamid=$teamid and userid=$userid"); + } +} + +class BoincPrivateMessage { + static function lookup_id($id) { + $db = BoincDb::get(); + return $db->lookup_id($id, 'private_messages', 'BoincPrivateMessage'); + } + function update($clause) { + $db = BoincDb::get(); + return $db->update($this, 'private_messages', $clause); + } + static function enum($where_clause) { + $db = BoincDb::get(); + return $db->enum('private_messages', 'BoincPrivateMessage', $where_clause); + } + static function insert($clause) { + $db = BoincDb::get(); + $ret = $db->insert('private_messages', $clause); + if (!$ret) return $ret; + return $db->insert_id(); + } + static function count($clause) { + $db = BoincDb::get(); + return $db->count('private_messages', $clause); + } + function delete() { + $db = BoincDb::get(); + return $db->delete($this, 'private_messages'); + } + static function delete_aux($clause) { + $db = BoincDb::get(); + return $db->delete_aux('private_messages', $clause); + } +} + +class BoincPlatform { + static function enum($where_clause) { + $db = BoincDb::get(); + return $db->enum('platform', 'BoincPlatform', $where_clause); + } + static function lookup_id($id) { + $db = BoincDb::get(); + return $db->lookup_id($id, 'platform', 'BoincPlatform'); + } + static function lookup($clause) { + $db = BoincDb::get(); + return $db->lookup('platform', 'BoincPlatform', $clause); + } + function update($clause) { + $db = BoincDb::get(); + return $db->update($this, 'platform', $clause); + } + static function insert($clause) { + $db = BoincDb::get(); + return $db->insert('platform', $clause); + } +} + +class BoincHostAppVersion { + static function enum($where_clause) { + $db = BoincDb::get(); + return $db->enum('host_app_version', 'BoincHostAppVersion', $where_clause); + } + static function lookup($host_id, $app_version_id) { + $db = BoincDb::get(); + return $db->lookup( + 'host_app_version', 'BoincHostAppVersion', + "host_id=$host_id and app_version_id=$app_version_id" + ); + } + static function update_aux($clause) { + $db = BoincDb::get(); + return $db->update_aux('host_app_version', $clause); + } +} + +// DB utility functions + +// return the "latest" app versions for a given app and platform +// +function latest_avs_app_platform($appid, $platformid) { + $avs = BoincAppVersion::enum( + "appid=$appid and platformid = $platformid and deprecated=0" + ); + foreach ($avs as $av) { + foreach ($avs as $av2) { + if ($av->id == $av2->id) continue; + if ($av->plan_class == $av2->plan_class && $av->version_num > $av2->version_num) { + $av2->deprecated = 1; + } else if ($av2->beta) { + $av2->deprecated = 1; + } + } + } + $r = array(); + foreach ($avs as $av) { + if (!$av->deprecated) { + $r[] = $av; + } + } + return $r; +} + +// return the "latest" app versions for a given app +// +function latest_avs_app($appid) { + $platforms = BoincPlatform::enum(""); + $r = array(); + foreach ($platforms as $p) { + $avs = latest_avs_app_platform($appid, $p->id); + $r = array_merge($r, $avs); + } + return $r; +} + +class BoincBadge { + static function enum($where_clause) { + $db = BoincDb::get(); + return $db->enum('badge', 'BoincBadge', $where_clause); + } + static function insert($clause) { + $db = BoincDb::get(); + $ret = $db->insert('badge', $clause); + if (!$ret) return 0; + return $db->insert_id(); + } + function update($clause) { + $db = BoincDb::get(); + return $db->update($this, 'badge', $clause); + } + static function lookup_id($id) { + $db = BoincDb::get(); + return $db->lookup_id($id, 'badge', 'BoincBadge'); + } + static function lookup($clause) { + $db = BoincDb::get(); + return $db->lookup('badge', 'BoincBadge', $clause); + } + function delete() { + $db = BoincDb::get(); + return $db->delete($this, 'badge'); + } +} + +class BoincBadgeUser { + static function enum($where_clause) { + $db = BoincDb::get(); + return $db->enum('badge_user', 'BoincBadgeUser', $where_clause); + } + static function insert($clause) { + $db = BoincDb::get(); + $ret = $db->insert('badge_user', $clause); + if (!$ret) return false; + return true; + } + static function lookup($clause) { + $db = BoincDb::get(); + return $db->lookup('badge_user', 'BoincBadgeUser', $clause); + } + static function update($clause) { + $db = BoincDb::get(); + return $db->update_aux('badge_user', $clause); + } + static function delete($clause) { + $db = BoincDb::get(); + $db->delete_aux('badge_user', $clause); + } + static function count($clause) { + $db = BoincDb::get(); + return $db->count('badge_user', $clause); + } +} + +class BoincBadgeTeam { + static function enum($where_clause) { + $db = BoincDb::get(); + return $db->enum('badge_team', 'BoincBadgeTeam', $where_clause); + } + static function insert($clause) { + $db = BoincDb::get(); + $ret = $db->insert('badge_team', $clause); + if (!$ret) return false; + return true; + } + static function lookup($clause) { + $db = BoincDb::get(); + return $db->lookup('badge_team', 'BoincBadgeTeam', $clause); + } + static function update($clause) { + $db = BoincDb::get(); + return $db->update_aux('badge_team', $clause); + } + static function delete($clause) { + $db = BoincDb::get(); + $db->delete_aux('badge_team', $clause); + } + static function count($clause) { + $db = BoincDb::get(); + return $db->count('badge_team', $clause); + } +} + +class BoincCreditUser { + static function lookup($clause) { + $db = BoincDb::get(); + return $db->lookup('credit_user', 'BoincCreditUser', $clause); + } + static function enum($where_clause) { + $db = BoincDb::get(); + return $db->enum('credit_user', 'BoincCreditUser', $where_clause); + } + static function sum($field, $clause) { + $db = BoincDb::get(); + return $db->sum('credit_user', $field, $clause); + } + static function update($clause) { + $db = BoincDb::get(); + return $db->update_aux('credit_user', $clause); + } + static function delete_user($user) { + $db = BoincDb::get(); + $db->delete_aux('credit_user', "userid=$user->id"); + } + static function get_list($where_clause, $order_clause, $limit) { + $db = BoincDB::get(); + return $db->get_list('user', 'credit_user', 'id', 'userid', 'BoincCreditUser', '*', $where_clause, $order_clause, $limit); + } +} + +class BoincCreditTeam { + static function lookup($clause) { + $db = BoincDb::get(); + return $db->lookup('credit_team', 'BoincCreditTeam', $clause); + } + static function enum($where_clause) { + $db = BoincDb::get(); + return $db->enum('credit_team', 'BoincCreditTeam', $where_clause); + } + static function sum($field, $clause) { + $db = BoincDb::get(); + return $db->sum('credit_team', $field, $clause); + } + static function update($clause) { + $db = BoincDb::get(); + return $db->update_aux('credit_team', $clause); + } + static function get_list($where_clause, $order_clause, $limit) { + $db = BoincDB::get(); + return $db->get_list('team', 'credit_team', 'id', 'teamid', 'BoincCreditTeam', '*', $where_clause, $order_clause, $limit); + } +} + +// DEPRECATED: use BoincDb::escape_string where possible +// +// apply this to any user-supplied strings used in queries +// +function boinc_real_escape_string($x) { + if (version_compare(phpversion(),"4.3.0")>=0) { + return BoincDb::escape_string($x); + } else { + $x = str_replace("'", "\'", $x); + $x = str_replace("\"", "\\\"", $x); + return $x; + } +} + +?> diff --git a/inc/bolt.inc b/inc/bolt.inc new file mode 100755 index 0000000..ee2cbc6 --- /dev/null +++ b/inc/bolt.inc @@ -0,0 +1,381 @@ +. + +// Bolt course document API + +error_reporting(E_ALL); +ini_set('display_errors', true); +ini_set('display_startup_errors', true); + +abstract class BoltUnit { + public $name; + // Logical name. Changing this makes it a different unit. + // For items, this is the filename with query string; + // for structures, it must be specified with name() + public $title; + // Optional; used when showing course history outline. + public $is_item; + public $attrs; // course-defined + + abstract function walk(&$iter, $incr, &$frac_done); + // multi-purpose function for traversing a course. + // Create entry in $iter->state if not there. + // Recurse to first child. + // If first child is an item, set $iter->item + // If incr is set + // the bottom-level non-item unit should increment. + // return value: true if the caller should increment + // frac_done: Fraction done (of this unit and any subunits) +} + +// base class for exercise and lesson +// +class BoltItem extends BoltUnit { + public $filename; + public $query_string; + function __construct($filename, $title, $attrs) { + $p = strpos($filename, '?'); + if ($p === false) { + $this->filename = $filename; + $this->query_string = null; + } else { + $this->filename = substr($filename, 0, $p); + $this->query_string = substr($filename, $p+1); + } + $this->name = $filename; + $this->title = $title; + $this->is_item = true; + $this->attrs = $attrs; + } + function begin() { + return array(new BoltFrame($this)); + } + function walk(&$iter, $incr, &$frac_done) { + echo "SHOULDN'T BE HERE\n"; + } +} + +class BoltLesson extends BoltItem { + function is_exercise() { + return false; + } +} + +class BoltExercise extends BoltItem { + public $callback; + // called as func($student, $score, $query_string) after scoring + public $weight; + public $has_answer_page; + + function __construct( + $filename, $title, $attrs, $callback, $weight, $has_answer_page + ) { + parent::__construct($filename, $title, $attrs); + $this->callback = $callback; + $this->weight = $weight; + $this->has_answer_page = $has_answer_page; + } + function is_exercise() { + return true; + } +} + +// Base class for control structures (all units other than items). +// The state of a control structure has two parts: +// 1) a transient PHP object +// 2) a persistent "state record" (stored in JSON in the DB) +// +// The PHP object has the following properties: +// - a set of units +// - ordered: a flag for whether the set has been ordered yet +// - order($state_rec): a function for ordering this set, +// defined in the derived class +// (i.e., random, student-specific, or identity) +// This orders the set, sets "ordered", and adds info to the state rec +// saying how the ordering was done (e.g. RNG seed) +// - a number "ntoshow" for how many units to show +// +// The state record has the following items: +// - index: index into the unit array +// - nshown: for how many units completed so far +// - child_name: name of current child, or null +// +class BoltSet extends BoltUnit { + public $units; + function __construct($name, $units, $ntoshow, $attrs) { + $this->name = $name; + $this->is_item = false; + $this->units = $units; + $this->ntoshow = $ntoshow; + $this->ordered = false; + $this->attrs = $attrs; + } + + // restart this unit - set its state record to an initial state + // + function restart(&$iter) { + $state_rec = $iter->state[$this->name]; + if (!$state_rec) $state_rec = $this->init(); + $state_rec['nshown'] = 0; + $state_rec['child_name'] = null; + $iter->state[$this->name] = $state_rec; + } + + // initialize this unit (once per course) + // + function init(&$iter) { + $state_rec = array(); + $state_rec['index'] = 0; + $iter->state[$this->name] = $state_rec; + return $state_rec; + } + + function finished(&$iter) { + $this->restart($iter); + } + + function walk(&$iter, $incr, &$frac_done) { + $n = count($this->units); + if (array_key_exists($this->name, $iter->state)) { + $state_rec = $iter->state[$this->name]; + $child_name = $state_rec['child_name']; + $nshown = $state_rec['nshown']; + if (!$this->ordered) { + $this->order($iter); + } + + // look up unit by name + // + $child = null; + for ($i=0; $i<$n; $i++) { + $c = $this->units[$i]; + if ($c->name == $child_name) { + $child = $c; + break; + } + } + + // if not there, look up by index + // + if (!$child) { + $i = $state_rec['index']; + if ($i >= $n) { + // and if index is too big, use last unit + // + $i = $n-1; + } + $child = $this->units[$i]; + } + + // at this point, $child is the current unit, and $i is its index + // + if ($incr) { + if ($child->is_item) { + $my_inc = true; + } else { + $my_inc = $child->walk($iter, $incr, $frac_done); + } + if ($my_inc) { + $nshown++; + if ($nshown == $this->ntoshow) { + $frac_done = 1; + $this->finished($iter); + return true; + } else { + $i = ($i+1)%$n; + } + } + } + } else { + // here if no state record; initialize + // + $i = 0; + $nshown = 0; + $this->init($iter); + $this->order($iter); + } + + // at this point, $i is index of current child, $nshown is valid, + // and this unit has a record in the state array + // + $child = $this->units[$i]; + $frac_done = $nshown/$n; + $state_rec = $iter->state[$this->name]; + $state_rec['index'] = $i; + $state_rec['nshown'] = $nshown; + $state_rec['child_name'] = $child->name; + $iter->state[$this->name] = $state_rec; + if ($child->is_item) { + $iter->item = $child; + } else { + $child->walk($iter, false, $f); + $frac_done += $f*(1/$n); + } + return false; + } + + // return the name of our child, if we exist in the state + // + function get_child($state) { + if (array_key_exists($this->name, $state)) { + $state_rec = $state[$this->name]; + $child_name = $state_rec['child_name']; + foreach($this->units as $c) { + if ($c->name == $child_name) { + return $c; + } + } + } + return null; + } + +} + +function name($n) { + return array('name', $n); +} + +function title($n) { + return array('title', $n); +} + +function number($n) { + return array('number', $n); +} + +function filename($n) { + return array('filename', $n); +} + +function has_answer_page($n) { + return array('has_answer_page', $n); +} + +function attrs($n) { + return array('attrs', $n); +} + +function callback($n) { + return array('callback', $n); +} + +function lesson() { + $filename = ""; + $title = ""; + $attrs = null; + + $args = func_get_args(); + foreach ($args as $arg) { + if (is_array($arg)) { + switch ($arg[0]) { + case 'title': $title = $arg[1]; break; + case 'filename': $filename = $arg[1]; break; + case 'attrs': $attrs = $arg[1]; break; + default: echo "Unrecognized lesson parameter: ", $arg[0], "\n"; break; + } + } else { + echo "unprocessed arg of class ".get_class($arg); + } + } + if (!$title) { + $title = $filename; + } + if (!$filename) { + error_page("Missing filename in lesson"); + } + return new BoltLesson($filename, $title, $attrs); +} + +function exercise() { + $filename = ""; + $title = ""; + $attrs = null; + $weight = 1; + $has_answer_page = true; + + $args = func_get_args(); + $callback = null; + foreach ($args as $arg) { + if (is_array($arg)) { + switch ($arg[0]) { + case 'title': $title = $arg[1]; break; + case 'filename': $filename = $arg[1]; break; + case 'attrs': $attrs = $arg[1]; break; + case 'callback': $callback = $arg[1]; break; + case 'weight': $weight = $arg[1]; break; + case 'has_answer_page': $has_answer_page = $arg[1]; break; + default: echo "Unrecognized exercise parameter: ", $arg[0], "\n"; break; + } + } + } + if (!$title) { + $title = $filename; + } + if (!$filename) { + error_page("Missing filename in lesson"); + } + return new BoltExercise( + $filename, $title, $attrs, $callback, $weight, $has_answer_page + ); +} + +function item_attrs() { + global $item; + return $item->attrs; +} + +function student_sex() { + global $user; + return $user->bolt->sex; +} + +function student_age() { + global $user; + if (!$user->bolt->birth_year) return -1; + $date = getdate(); + $this_year = $date["year"]; + return $this_year - $user->bolt->birth_year; +} + +function student_country() { + global $user; + return $user->country; +} + +function student_name() { + global $user; + return $user->name; +} + +function student_attrs() { + global $user; + return unserialize($user->bolt->attrs); +} + +function set_student_attrs($attrs) { + global $user; + $attrs = serialize($attrs); + $user->bolt->update("attrs='$attrs'"); +} + +require_once('../inc/bolt_seq.inc'); +require_once('../inc/bolt_rnd.inc'); +require_once('../inc/bolt_xset.inc'); +require_once('../inc/bolt_select.inc'); + +?> diff --git a/inc/bolt_cat.inc b/inc/bolt_cat.inc new file mode 100755 index 0000000..96a0d9e --- /dev/null +++ b/inc/bolt_cat.inc @@ -0,0 +1,168 @@ +. + +// represents a categorization of students +// +abstract class Categorization { + abstract function name(); + // returns descriptive name + abstract function categories(); + // returns list of categories + abstract function categorize($user); + // returns a student's category +} + +class CatSex extends Categorization { + function name() { + return "Sex"; + } + function categories() { + return array ("Male", "Female", "Unknown"); + } + function categorize($user) { + switch ($user->bolt->sex) { + case 1: return "Male"; + case 2: return "Female"; + default: return "Unknown"; + } + } +} + +$x = localtime(time(), true); +$this_year = 1900 + $x['tm_year']; + +class CatAge20 extends Categorization { + function name() { + return "Age (20-year groups)"; + } + function categories() { + return array("0-19", "20-39", "40-59", "60-79", "80+", "Unknown"); + } + function categorize($user) { + if (!$user->bolt->birth_year) return "Unknown"; + global $this_year; + $n = $this_year - $user->bolt->birth_year; + if ($n < 20) return "0-19"; + if ($n < 40) return "20-39"; + if ($n < 60) return "40-59"; + if ($n < 80) return "60-79"; + return "80+"; + } +} + +$categorizations = array(new CatSex(), new CatAge20()); + +function lookup_categorization($name) { + global $categorizations; + foreach ($categorizations as $c) { + if ($c->name() == $name) return $c; + } + return null; +} + +function filter_form($sel_name, $sel_cat) { + global $categorizations; + $checked = (!$sel_name || $sel_name == "none")?"checked":""; + echo " + Filter by: +
    +
  • None + "; + foreach ($categorizations as $c) { + $name = $c->name(); + $cats = $c->categories(); + echo " +
  • $name +
      + "; + foreach ($cats as $x) { + $checked = ($sel_name == $name && $sel_cat == $x) ? "checked":""; + echo " +
    • $x + "; + } + echo "
    "; + } + echo "
"; +} + +function breakdown_form($sel_name) { + global $categorizations; + $checked = (!$sel_name || $sel_name == "none")?"checked":""; + echo " + Break down by: +
    +
  • None + "; + foreach ($categorizations as $c) { + $name = $c->name(); + $checked = ($sel_name == $name)?"checked":""; + echo " +
  • $name + "; + } + echo "
"; +} + +// return filter and breakdown info for URLs +// +function filter_url() { + global $filter, $filter_cat, $breakdown, $breakdown_cat; + + $x = ""; + if ($filter && $filter_cat) { + $x .= "&filter=".$filter->name.":$filter_cat"; + } + if ($breakdown && $breakdown_cat) { + $x .= "&breakdown=".$breakdown->name.":$breakdown_cat"; + } + return $x; +} + +// get filter and breakdown from form vars +// +function get_filters_from_form() { + global $breakdown, $breakdown_cat, $filter, $filter_cat; + + $breakdown_cat = null; + $breakdown_info = get_str('breakdown', true); + if ($breakdown_info && $breakdown_info != 'none') { + $arr = explode(":", $breakdown_info); + $breakdown_name = $arr[0]; + if (count($arr) == 2) { + $breakdown_cat = $arr[1]; + } + $breakdown = lookup_categorization($breakdown_name); + if (!$breakdown) error_page("unknown breakdown $breakdown_name"); + } else { + $breakdown = null; + } + $filter_info = get_str('filter', true); + if ($filter_info && $filter_info != "none") { + $arr = explode(":", $filter_info); + $filter_name = $arr[0]; + $filter_cat = $arr[1]; + $filter = lookup_categorization($filter_name); + if (!$filter) error_page("unknown filter $filter_name"); + } else { + $filter_cat = ""; + $filter = null; + } +} + +?> diff --git a/inc/bolt_db.inc b/inc/bolt_db.inc new file mode 100755 index 0000000..7ef291d --- /dev/null +++ b/inc/bolt_db.inc @@ -0,0 +1,322 @@ +. + +require_once("../inc/db_conn.inc"); +require_once("../inc/util.inc"); + +define('BOLT_PHASE_STUDY', 1); + // sequential progress through course +define('BOLT_PHASE_REVIEW', 2); + // review and repeat of an exercise set +define('BOLT_PHASE_REFRESH', 3); + // timed repeat of exercise set, and possibly review and repeat + +define('BOLT_MODE_LESSON', 1); +define('BOLT_MODE_SHOW', 2); +define('BOLT_MODE_SCORE', 3); +define('BOLT_MODE_ANSWER', 4); +define('BOLT_MODE_FINISHED', 5); + +define('BOLT_ACTION_NONE', 0); +define('BOLT_ACTION_NEXT', 1); +define('BOLT_ACTION_PREV', 2); +define('BOLT_ACTION_SUBMIT', 3); +define('BOLT_ACTION_QUESTION', 4); +define('BOLT_ACTION_COURSE_HOME', 5); +define('BOLT_ACTION_REVIEW', 6); +define('BOLT_ACTION_REPEAT', 7); + +define('BOLT_COURSE_NOT_STARTED', 1); +define('BOLT_COURSE_STARTED', 2); +define('BOLT_COURSE_FINISHED', 3); + +// bits in bolt_user.flags +define('BOLT_FLAGS_DEBUG', 1); // print debugging info in output pages +define('BOLT_FLAGS_SHOW_ALL', 2); // show hidden courses + +class BoltDb extends DbConn { + static $instance; + + static function get() { + if (web_stopped()) { + if ($generating_xml) { + xml_error(-183); + } else { + page_head("Page not available"); + echo "This page requires database access. + Our database server is temporarily shut down for maintenance. + Please try again later. + "; + page_tail(); + } + exit(); + } + if (!isset($instance)) { + $config = get_config(); + $name = parse_config($config, ''); + if (!$name) { + $name = parse_config($config, ''); + $user = parse_config($config, ''); + $passwd = parse_config($config, ''); + $host = parse_config($config, ''); + } else { + $user = parse_config($config, ''); + $passwd = parse_config($config, ''); + $host = parse_config($config, ''); + } + if ($host == null) { + $host = "localhost"; + } + $instance = new DbConn(); + $retval = $instance->init_conn($user, $passwd, $host, $name); + if (!$retval) return null; + } + return $instance; + } + static function escape_string($string) { + $db = self::get(); + return $db->base_escape_string($string); + } +} + +class BoltUser { + static $cache; + static function lookup_userid($id) { + $db = BoltDb::get(); + return $db->lookup('bolt_user', 'BoltUser', "user_id=$id"); + } + static function insert($clause) { + $db = BoltDb::get(); + return $db->insert('bolt_user', $clause); + } + static function lookup(&$user) { + if (!$user) return; + if (isset($user->bolt)) return; + if (isset(self::$cache[$user->id])) { + $bolt = self::$cache[$user->id]; + } else { + $bolt = self::lookup_userid($user->id); + if (!$bolt) { + self::insert("(user_id) values ($user->id)"); + $bolt = self::lookup_userid($user->id); + } + self::$cache[$user->id] = $bolt; + } + $user->bolt = $bolt; + } + function update($clause) { + $db = BoltDb::get(); + $clause = "$clause where user_id=$this->user_id"; + return $db->update_aux('bolt_user', $clause); + } +} + +class BoltCourse { + static function insert($clause) { + $db = BoltDb::get(); + $ret = $db->insert('bolt_course', $clause); + if (!$ret) return $ret; + return $db->insert_id(); + } + static function lookup_id($id) { + $db = BoltDb::get(); + return $db->lookup_id($id, 'bolt_course', 'BoltCourse'); + } + static function lookup_name($name) { + $db = BoltDb::get(); + $name = BoincDb::escape_string($name); + return $db->lookup('bolt_course', 'BoltCourse', "short_name='$name'"); + } + static function enum() { + $db = BoltDb::get(); + return $db->enum('bolt_course', 'BoltCourse'); + } + function update($clause) { + $db = BoltDb::get(); + return $db->update($this, 'bolt_course', $clause); + } + function doc_file() { + $sn = $this->short_name; + return "../inc/$sn.inc"; + } +} + +class BoltEnrollment { + static function insert($clause) { + $db = BoltDb::get(); + return $db->insert('bolt_enrollment', $clause); + } + function lookup($user_id, $course_id) { + $db = BoltDb::get(); + return $db->lookup('bolt_enrollment', 'BoltEnrollment', "user_id=$user_id and course_id=$course_id"); + } + function update($clause) { + $db = BoltDb::get(); + $db->update_aux('bolt_enrollment', "$clause where user_id=$this->user_id and course_id=$this->course_id"); + } + static function delete($user_id, $course_id) { + $db = BoltDb::get(); + $db->delete_aux('bolt_enrollment', "user_id=$user_id and course_id=$course_id"); + } + static function delete_aux($clause) { + $db = BoltDb::get(); + $db->delete_aux('bolt_enrollment', $clause); + } +} + +class BoltView { + static function insert($clause) { + $db = BoltDb::get(); + $ret = $db->insert('bolt_view', $clause); + if (!$ret) return null; + return $db->insert_id(); + } + static function lookup_id($id) { + $db = BoltDb::get(); + return $db->lookup_id($id, 'bolt_view', 'BoltView'); + } + function update($clause) { + $db = BoltDb::get(); + $db->update($this, 'bolt_view', $clause); + } + static function enum($clause) { + $db = BoltDb::get(); + return $db->enum('bolt_view', 'BoltView', $clause); + } + static function delete_aux($clause) { + $db = BoltDb::get(); + $db->delete_aux('bolt_view', $clause); + } +} + +class BoltResult { + static function insert($clause) { + $db = BoltDb::get(); + $ret = $db->insert('bolt_result', $clause); + if (!$ret) return null; + return $db->insert_id(); + } + static function lookup_id($id) { + $db = BoltDb::get(); + return $db->lookup_id($id, 'bolt_result', 'BoltResult'); + } + static function enum($clause) { + $db = BoltDb::get(); + return $db->enum('bolt_result', 'BoltResult', $clause); + } + static function delete_aux($clause) { + $db = BoltDb::get(); + $db->delete_aux('bolt_result', $clause); + } +} + +class BoltXsetResult { + static function lookup_id($id) { + $db = BoltDb::get(); + return $db->lookup_id($id, 'bolt_xset_result', 'BoltXsetResult'); + } + static function insert($clause) { + $db = BoltDb::get(); + $ret = $db->insert('bolt_xset_result', $clause); + if (!$ret) return null; + return $db->insert_id(); + } + static function enum($clause) { + $db = BoltDb::get(); + return $db->enum('bolt_xset_result', 'BoltXsetResult', $clause); + } + static function delete_aux($clause) { + $db = BoltDb::get(); + $db->delete_aux('bolt_xset_result', $clause); + } +} + +class BoltRefreshRec { + static function lookup_id($id) { + $db = BoltDb::get(); + return $db->lookup_id($id, 'bolt_refresh', 'BoltRefreshRec'); + } + function lookup($clause) { + $db = BoltDb::get(); + return $db->lookup('bolt_refresh', 'BoltRefreshRec', $clause); + } + static function replace($clause) { + $db = BoltDb::get(); + return $db->replace('bolt_refresh', $clause); + } + static function insert($clause) { + $db = BoltDb::get(); + $ret = $db->insert('bolt_refresh', $clause); + if (!$ret) return null; + return $db->insert_id(); + } + static function enum($clause) { + $db = BoltDb::get(); + return $db->enum('bolt_refresh', 'BoltRefreshRec', $clause); + } + function update($clause) { + $db = BoltDb::get(); + $db->update($this, 'bolt_refresh', $clause); + } + static function delete_aux($clause) { + $db = BoltDb::get(); + $db->delete_aux('bolt_refresh', $clause); + } +} + +class BoltSelectFinished { + static function insert($clause) { + $db = BoltDb::get(); + return $db->insert('bolt_select_finished', $clause); + } + static function enum($clause) { + $db = BoltDb::get(); + return $db->enum('bolt_select_finished', 'BoltSelectFinished', $clause); + } + static function delete_aux($clause) { + $db = BoltDb::get(); + $db->delete_aux('bolt_select_finished', $clause); + } +} + +class BoltQuestion { + static function insert($clause) { + $db = BoltDb::get(); + return $db->insert('bolt_question', $clause); + } + static function enum($clause) { + $db = BoltDb::get(); + return $db->enum('bolt_question', 'BoltQuestion', $clause); + } + static function delete_aux($clause) { + $db = BoltDb::get(); + $db->delete_aux('bolt_question', $clause); + } +} + +// TODO: move this somewhere else, and think about whether it's correct +// +function bolt_course_status($course_id, $user_id) { + $e = BoltEnrollment::lookup($user_id, $course_id); + if (!$e) return BOLT_COURSE_NOT_STARTED; + $view = BoltView::lookup_id($e->last_view_id); + if ($view->fraction_done == 1) return BOLT_COURSE_FINISHED; + return BOLT_COURSE_STARTED; +} + +?> diff --git a/inc/bolt_ex.inc b/inc/bolt_ex.inc new file mode 100755 index 0000000..78cd562 --- /dev/null +++ b/inc/bolt_ex.inc @@ -0,0 +1,347 @@ +. + +// Bolt exercise API + +// The following is a global var accessed by exercise functions. +// +$bolt_ex = null; +$bolt_ex->mode = 0; // input: SHOW/SCORE/ANSWER +$bolt_ex->index = 0; // input: sequence of this exercise in file +$bolt_ex->score = 0; // input/output: cumulative score (if mode = SCORE) +$bolt_ex->weight = 0; // input/output: cumulative weight +$bolt_ex->query_string = ""; // user's response (if SCORE or ANSWER) + +function weight($w) { + return array('weight', $w); +} + +function exclusive_choice() { + global $bolt_ex; + $weight = 1; + + $choices = array(); + $args = func_get_args(); + foreach ($args as $arg) { + if (is_string($arg)) { + $choices[] = $arg; + } else if (is_array($arg)) { + switch ($arg[0]) { + case 'weight': $weight = $arg[1]; break; + default: echo "bad arg to exclusive_choice()"; + } + } else { + echo "bad arg to exclusive_choice()"; + } + } + + parse_str($bolt_ex->query_string); + + switch ($bolt_ex->mode) { + case BOLT_MODE_SHOW: + shuffle($choices); + $i = 0; + start_table(); + foreach ($choices as $choice) { + row2($choice, "index type=radio value=$i>"); + $i++; + } + end_table(); + break; + case BOLT_MODE_SCORE: + $right_ans = $choices[0]; + shuffle($choices); + $key = "q_$bolt_ex->index"; + if (isset($$key)) { + $response = $$key; + if ($choices[$response] == $right_ans) { + $bolt_ex->score += 1; + } + } + $bolt_ex->weight += $weight; + break; + case BOLT_MODE_ANSWER: + $right_ans = $choices[0]; + shuffle($choices); + $key = "q_$bolt_ex->index"; + if (isset($$key)) { + $response = $$key; + } else { + $response = -1; + } + $i = 0; + start_table(); + foreach ($choices as $choice) { + $x = "
"; + if ($response == $i) { + if ($choice == $right_ans) { + $x = "Right"; + } else { + $x = "You chose this answer"; + } + } else { + if ($choice == $right_ans) { + $x = "Right answer"; + } + } + echo "$choice $x "; + $i++; + } + end_table(); + break; + } + $bolt_ex->index++; +} + +function inclusive_choice() { + global $bolt_ex; + $weight = 1; + + $choices = array(); + $args = func_get_args(); + foreach ($args as $arg) { + if (is_array($arg)) { + $choices[] = $arg; + } else if (is_object($arg)) { + if (get_class($arg) == 'BoltWeight') { + $weight = $arg->weight; + } else { + echo "bad arg to inclusive_choice()"; + } + } else { + echo "bad arg to inclusive_choice()"; + } + } + + parse_str($bolt_ex->query_string); + + switch ($bolt_ex->mode) { + case BOLT_MODE_SHOW: + shuffle($choices); + $i = 0; + start_table(); + foreach ($choices as $choice) { + $c = $choice[0]; + row2("index."_$i type=checkbox>", $c); + $i++; + } + end_table(); + break; + case BOLT_MODE_SCORE: + $i = 0; + $n = count($choices); + $score = 0; + shuffle($choices); + foreach ($choices as $choice) { + $key = "q_".$bolt_ex->index."_$i"; + $response = isset($$key); + $r = $choice[1]; + $correct = ($r && $response) || (!$r && !$response); + if ($correct) $score += 1./$n; + $i++; + } + $bolt_ex->score += $score; + $bolt_ex->weight += $weight; + break; + case BOLT_MODE_ANSWER: + $i = 0; + $n = count($choices); + shuffle($choices); + start_table(); + table_header("Choice", "Correct?", "Your answer"); + foreach ($choices as $choice) { + $c = $choice[0]; + $key = "q_".$bolt_ex->index."_$i"; + $response = isset($$key); + $r = $choice[1]; + $correct = ($r && $response) || (!$r && !$response); + $color = $correct?"#88ff88":"#ff8888"; + table_row($c, $r?"yes":"no", + array($response?"yes":"no", "bgcolor=$color") + ); + $i++; + } + end_table(); + break; + } + $bolt_ex->index++; +} + +function image_rect($img, $rect) { + global $bolt_ex; + + parse_str($bolt_ex->query_string); + + switch ($bolt_ex->mode) { + case BOLT_MODE_SHOW: + echo "index src=$img> + "; + break; + case BOLT_MODE_SCORE: + $x = get_int("pic_".$bolt_ex->index."_x"); + $y = get_int("pic_".$bolt_ex->index."_y"); + $right = true; + if ($x < $rect[0]) $right = false; + if ($x > $rect[1]) $right = false; + if ($y < $rect[2]) $right = false; + if ($y > $rect[3]) $right = false; + if ($right) { + $bolt_ex->score += 1; + } + $bolt_ex->weight += $weight; + break; + case BOLT_MODE_ANSWER: + $x = get_int("pic_".$bolt_ex->index."_x"); + $y = get_int("pic_".$bolt_ex->index."_y"); + $right = true; + if ($x < $rect[0]) $right = false; + if ($x > $rect[1]) $right = false; + if ($y < $rect[2]) $right = false; + if ($y > $rect[3]) $right = false; + $cx = $rect[0]; + $cy = $rect[2]; + $sizex = $rect[1]-$rect[0]; + $sizey = $rect[3]-$rect[2]; + $ax = $x-4; + $ay = $y-4; + $color = $right?"green":"red"; + if ($right) { + echo "The point you selected (shown in green) is correct."; + } else { + echo "The point you selected (shown in red) is not correct."; + } + echo " +
+
+
+ +
+
+ "; + break; + } + $bolt_ex->index++; +} + +class BoltFitbField { + public $textarea, $nrows, $ncols; + function __construct($textarea, $nrows, $ncols) { + $this->textarea = $textarea; + $this->nrows = $nrows; + $this->ncols = $ncols; + } +} + +function field($n) { + return new BoltFitbField(false, 1, $n); +} + +function box($nr, $nc) { + return new BoltFitbField(true, $nr, $nc); +} + +class BoltFitbAnswer { + public $type; // 0=constant, 1=regexp, 2=func + public $ans; + function __construct($type, $ans) { + $this->type = $type; + $this->ans = $ans; + } +} + +function answer($ans) { + return new BoltFitbAnswer(0, $ans); +} + +function answer_regexp($ans) { + return new BoltFitbAnswer(1, $ans); +} + +function answer_func($ans) { + return new BoltFitbAnswer(2, $ans); +} + +function fitb() { + global $bolt_ex; + $args = func_get_args(); + $field = new BoltFitbField(false, 1, 20); + $answer = null; + foreach ($args as $arg) { + if (is_array($arg)) { + $choices[] = $arg; + } else if (is_object($arg)) { + if (get_class($arg) == 'BoltFitbField') { + $field = $arg; + } else if (get_class($arg) == 'BoltFitbAns') { + $answer = $arg; + } else { + echo "bad arg to fitb()"; + } + } else { + echo "bad arg to fitb()"; + } + } + + switch ($bolt_ex->mode) { + case BOLT_MODE_SHOW: + if ($field->textarea) { + echo " + "; + } else { + echo "index." length=$field->ncols>"; + } + break; + case BOLT_MODE_SCORE: + if (!$answer) break; + $bolt_ex->score = 0; + $key = "q_".$bolt_ex->index; + if (isset($$key)) { + $response = $$key; + } else { + $response = ""; + } + switch ($answer->type) { + case 0: + if ($response == $answer->ans) { + $bolt_ex->score = 1; + } + break; + case 1: + if (ereg($answer->ans, $response)) { + $bolt_ex->score = 1; + } + break; + case 2: + $bolt_ex->score = call_user_func($answer->ans, $response); + break; + } + break; + case BOLT_MODE_ANSWER: + $key = "q_".$bolt_ex->index; + if (isset($$key)) { + $response = $$key; + } else { + $response = ""; + } + break; + } + $bolt_ex->index++; +} + +?> diff --git a/inc/bolt_rnd.inc b/inc/bolt_rnd.inc new file mode 100755 index 0000000..2f9bf56 --- /dev/null +++ b/inc/bolt_rnd.inc @@ -0,0 +1,75 @@ +. + +class BoltRandom extends BoltSet { + public $units; + function __construct($name, $units, $number, $attrs) { + parent::__construct($name, $units, $number, $attrs); + } + + function order(&$iter) { + $state_rec = $iter->state[$this->name]; + if ($state_rec) { + if (array_key_exists('seed', $state_rec)) { + $seed = $state_rec['seed']; + } else { + $seed = ((double)microtime()*1000000); + $state_rec['seed'] = $seed; + $iter->state[$this->name] = $state_rec; + } + } else { + $state_rec = $this->init(); + $seed = ((double)microtime()*1000000); + $state_rec['seed'] = $seed; + $iter->state[$this->name] = $state_rec; + } + srand($seed); + shuffle($this->units); + $this->ordered = true; + } +} + +function random() { + $args = func_get_args(); + $units = array(); + $name = ""; + $number = 0; + $attrs = null; + foreach ($args as $arg) { + if (is_array($arg)) { + switch ($arg[0]) { + case 'name': $name = $arg[1]; break; + case 'title': $title = $arg[1]; break; + case 'number': $number = $arg[1]; break; + case 'attrs': $attrs = $arg[1]; break; + default: echo "Unrecognized array arg: ", $arg[0], "\n"; break; + } + } else if (is_object($arg)) { + if (is_subclass_of($arg, "BoltUnit")) { + $units[] = $arg; + } else { + echo "Unrecognized arg: "; + print_r($arg); + } + } + } + if ($number == 0) $number = count($units); + return new BoltRandom($name, $units, $number, $attrs); +} + +?> diff --git a/inc/bolt_sched.inc b/inc/bolt_sched.inc new file mode 100755 index 0000000..7f3c46b --- /dev/null +++ b/inc/bolt_sched.inc @@ -0,0 +1,81 @@ +. + +// An iterator represents a user's position in a course. +// Its state is stored in the database, +// and the course may change underneath it. +// +// A state in a course is described by an associative array +// mapping logical names to state structures. +// Typically this includes the logical name of the current child +// and info such as a sequence index. +// This is kind of like a "call stack", +// except that it can contain units not currently active. + +// +class BoltIter { + public $top; // topmost unit + public $state; + public $xset; // exercise set, if any + + // the following are temps + public $item; // current item + public $frac_done; // fraction done + + function __construct($top) { + $this->top = $top; + $this->state = array(); + } + + function decode_state($encoded_state) { + $this->state = unserialize($encoded_state); + } + + function encode_state() { + return serialize($this->state); + } + + // get current item and fraction done + // + function at() { + $this->xset = null; + $this->top->walk($this, false, $this->frac_done); + } + + // move to the next item, and return it in $this->item + // (null if course finished) + // + function next() { + $this->top->walk($this, true, $this->frac_done); + } +} + +function enum_course($course) { + $iter = new BoltIter($course); + while (1) { + $x = $iter->at(); + if (!$x) break; + echo "at: $x->url\n"; + $x = $iter->next(); + if (!$x) break; + echo "next: $x->filename\n"; + } + echo "course over\n"; +} + +?> diff --git a/inc/bolt_select.inc b/inc/bolt_select.inc new file mode 100755 index 0000000..2a9b2ba --- /dev/null +++ b/inc/bolt_select.inc @@ -0,0 +1,88 @@ +. + +function select_cmp($a, $b) { + if ($a->value == $b->value) return 0; + return ($a->value < $b->value)?1:-1; +} + +class BoltSelect extends BoltSet { + public $valuator; + + function __construct($name, $units, $valuator, $attrs) { + $this->valuator = $valuator; + parent::__construct($name, $units, 1, $attrs); + } + + function order() { + global $student; + foreach ($this->units as $u) { + $func = $this->valuator; + $u->value = $func($student, $u); + } + usort($this->units, 'select_cmp'); + $this->ordered = true; + } + + function finished($iter) { + global $user; + global $course; + global $view; + + $state_rec = $iter->state[$this->name]; + $child_name = $state_rec['child_name']; + $now = time(); + BoltSelectFinished::insert("(user_id, course_id, end_time, name, selected_unit, view_id) values ($user->id, $course->id, $now, '$this->name', '$child_name', $view->id)"); + parent::finished($iter); + } +} + +function valuator($n) { + return array('valuator', $n); +} + +function select() { + $args = func_get_args(); + $units = array(); + $name = ""; + $attrs = null; + foreach ($args as $arg) { + if (is_array($arg)) { + switch ($arg[0]) { + case 'name': $name = $arg[1]; break; + case 'title': $title = $arg[1]; break; + case 'valuator': $valuator = $arg[1]; break; + case 'attrs': $attrs = $arg[1]; break; + default: echo "Unrecognized array arg: ", $arg[0], "\n"; break; + } + } else if (is_object($arg)) { + if (is_subclass_of($arg, "BoltUnit")) { + $units[] = $arg; + } else { + echo "Unrecognized arg: "; + print_r($arg); + } + } + } + if (!$valuator) { + error_page("missing valuator"); + } + return new BoltSelect($name, $units, $valuator, $attrs); +} + +?> diff --git a/inc/bolt_seq.inc b/inc/bolt_seq.inc new file mode 100755 index 0000000..6698465 --- /dev/null +++ b/inc/bolt_seq.inc @@ -0,0 +1,63 @@ +. + +class BoltSequence extends BoltSet { + function __construct($name, $units, $attrs) { + parent::__construct($name, $units, count($units), $attrs); + } + + function order() { + $this->ordered = true; + } + + function restart(&$iter) { + $state_rec = $iter->state[$this->name]; + if (!$state_rec) $state_rec = $this->init(); + $state_rec['nshown'] = 0; + $state_rec['index'] = 0; + $state_rec['child_name'] = null; + $iter->state[$this->name] = $state_rec; + } +} + +function sequence() { + $args = func_get_args(); + $units = array(); + $name = ""; + $attrs = null; + foreach ($args as $arg) { + if (is_array($arg)) { + switch ($arg[0]) { + case 'name': $name = $arg[1]; break; + case 'title': $title = $arg[1]; break; + case 'attrs': $attrs = $arg[1]; break; + default: echo "Unrecognized array arg: ", $arg[0], "\n"; break; + } + } else if (is_object($arg)) { + if (is_subclass_of($arg, "BoltUnit")) { + $units[] = $arg; + } else { + echo "Unrecognized arg: "; + print_r($arg); + } + } + } + return new BoltSequence($name, $units, $attrs); +} + +?> diff --git a/inc/bolt_snap.inc b/inc/bolt_snap.inc new file mode 100755 index 0000000..78f9d2e --- /dev/null +++ b/inc/bolt_snap.inc @@ -0,0 +1,229 @@ +. + + + +////// stuff related to snapshots +// +// There are 2 kinds of snapshots: "compare" and "map". +// +// A "compare snapshot" is a condensed representation of the results +// for a particular select/xset pair. +// Namely, it's an array whose elements contain +// bolt_user: the user +// xset_result: the user's first completion of the xset +// select_finished: the user's last completion of the select before this +// +// A "map snapshot" is: +// - an assoc array "views" mapping unit name to a list of views +// - an assoc array "results" mapping unit name to a list of results +// - an assoc array "xset_results" mapping unit name to a list of xset results +// - an assoc array "questions" mapping unit name to a list of questions +// - an assoc array "users" mapping user ID to user record +// + + +function compare_snapshot_filename($course_id, $select_name, $xset_name) { + @mkdir("../bolt_snap"); + $x = urlencode($course_id."_".$select_name."_".$xset_name); + return "../bolt_snap/compare_snapshot_$x"; +} + +function write_compare_snapshot($course_id, $select_name, $xset_name, $dur) { + $now = time(); + $start = $now - $dur*86400; + $xrs = BoltXsetResult::enum( + "course_id=$course_id and name='$xset_name' and create_time >= $start" + ); + $sfs = BoltSelectFinished::enum( + "course_id=$course_id and name='$select_name' and end_time >= $start" + ); + + // make an array $a, keyed by user ID, of earliest xset result + // + $a = array(); + foreach ($xrs as $xr) { + $uid = $xr->user_id; + if (!array_key_exists($uid, $a) || $xr->create_time < $a[$uid]->xr->create_time) { + $x = null; + $x->xr = $xr; + $a[$uid] = $x; + } + } + + // now scan select finishes, and for each user find last one before xset + // + foreach ($sfs as $sf) { + $uid = $sf->user_id; + if (!array_key_exists($uid, $a)) { + echo "no xset result"; + continue; + } + $x = $a[$uid]; + $xr = $x->xr; + if ($sf->end_time > $xr->create_time) { + //echo "select finish is too late"; + continue; + } + if (!isset($x->sf) || $sf->end_time > $x->sf->end_time) { + $x->sf = $sf; + $a[$uid] = $x; + } + } + + // cull array elements for which we didn't find a select finish. + // Look up user records for other elements. + // + foreach ($a as $uid=>$x) { + if (!isset($x->sf)) { + unset($a[$uid]); + } else { + $user = BoincUser::lookup_id($uid); + BoltUser::lookup($user); + $x->user = $user; + $a[$uid] = $x; + } + } + + $filename = compare_snapshot_filename($course_id, $select_name, $xset_name); + $f = fopen($filename, "w"); + + $s = null; + $s->recs = $a; + $s->dur = $dur; + $s->time = $now; + fwrite($f, serialize($s)); + fclose($f); + return $s; +} + +function read_compare_snapshot($course_id, $select_name, $xset_name) { + $filename = compare_snapshot_filename($course_id, $select_name, $xset_name); + $f = @fopen($filename, "r"); + if (!$f) return null; + $x = fread($f, filesize($filename)); + fclose($f); + return unserialize($x); +} + + +function map_snapshot_filename($course_id) { + return "../bolt_snap/map_snapshot_".$course_id; +} + +function write_map_snapshot($course_id, $dur) { + $now = time(); + $start = $now - $dur*86400; + + $views = array(); + $results = array(); + $xset_results = array(); + $users = array(); + $questions = array(); + + $vs = BoltView::enum("course_id=$course_id and start_time>$start"); + foreach ($vs as $v) { + if (array_key_exists($v->item_name, $views)) { + $x = $views[$v->item_name]; + $x[] = $v; + $views[$v->item_name] = $x; + } else { + $views[$v->item_name] = array($v); + } + if (!array_key_exists($v->user_id, $users)) { + $user = BoincUser::lookup_id($v->user_id); + BoltUser::lookup($user); + $users[$v->user_id] = $user; + } + } + + $rs = BoltResult::enum("course_id=$course_id and create_time>$start"); + foreach ($rs as $r) { + if (array_key_exists($r->item_name, $results)) { + $x = $results[$r->item_name]; + $x[] = $r; + $results[$r->item_name] = $x; + } else { + $results[$r->item_name] = array($r); + } + if (!array_key_exists($r->user_id, $users)) { + $user = BoincUser::lookup_id($r->user_id); + BoltUser::lookup($user); + $users[$r->user_id] = $user; + } + } + + $xrs = BoltXsetResult::enum("course_id=$course_id and create_time>$start"); + foreach ($xrs as $xr) { + if (array_key_exists($xr->name, $xset_results)) { + $x = $xset_results[$xr->name]; + $x[] = $xr; + $xset_results[$xr->name] = $x; + } else { + $xset_results[$xr->name] = array($xr); + } + if (!array_key_exists($xr->user_id, $users)) { + $user = BoincUser::lookup_id($xr->user_id); + BoltUser::lookup($user); + $users[$xr->user_id] = $user; + } + } + $qs = BoltQuestion::enum("course_id=$course_id and create_time>$start"); + foreach ($qs as $q) { + if (array_key_exists($q->name, $questions)) { + $x = $questions[$q->name]; + $x[] = $q; + $questions[$q->name] = $x; + } else { + $questions[$q->name] = array($q); + } + if (!array_key_exists($q->user_id, $users)) { + $user = BoincUser::lookup_id($q->user_id); + BoltUser::lookup($user); + $users[$q->user_id] = $user; + } + } + + $y = null; + $y->views = $views; + $y->results = $results; + $y->xset_results = $xset_results; + $y->users = $users; + $y->questions = $questions; + $y->dur = $dur; + $y->time = $now; + + $filename = map_snapshot_filename($course_id); + $f = fopen($filename, "w"); + fwrite($f, serialize($y)); + fclose($f); + + return $y; +} + +function read_map_snapshot($course_id) { + $filename = map_snapshot_filename($course_id); + $f = @fopen($filename, "r"); + if (!$f) return null; + $x = fread($f, filesize($filename)); + fclose($f); + return unserialize($x); +} + +?> diff --git a/inc/bolt_util.inc b/inc/bolt_util.inc new file mode 100755 index 0000000..b238e7e --- /dev/null +++ b/inc/bolt_util.inc @@ -0,0 +1,110 @@ +. + +// Utililty functions for student pages + +function info_incomplete($user) { + if (!$user->bolt->birth_year) return true; + if (!$user->bolt->sex) return true; + return false; +} + +function birth_year_select($user) { + $this_year = date("Y"); + $x = "\n"; + return $x; +} + +function sex_select($user) { + $x = "\n"; + return $x; +} + +function request_info($user, $course) { + page_head("About you"); + echo " + You may optionally tell us some facts about yourself. + This information will help us improve this course, + and will be kept private. +

+

+ + id> + "; + start_table(); + row2("Birth year", birth_year_select($user)); + row2("Sex", sex_select($user)); + row2("", ""); + end_table(); + echo "
\n"; + page_tail(); +} + +//////////// show refresh schedule ////////////// + +function show_refresh($r) { + echo " + $r->name + ".time_str($r->due_time)." + + "; + if ($r->last_view_id) { + echo " + course_id&refresh_id=$r->id&action=start>Restart + | course_id&refresh_id=$r->id&action=resume>Resume + "; + } else { + echo " + course_id&refresh_id=$r->id&action=start>Start + "; + } + echo " + + + "; +} + +function show_refreshes() { + global $user; + global $course; + + $refreshes = BoltRefreshRec::enum("user_id=$user->id and course_id=$course->id"); + if (!count($refreshes)) return; + start_table(); + echo "Refresh schedule\n"; + foreach ($refreshes as $r) { + show_refresh($r); + } + end_table(); +} + +?> diff --git a/inc/bolt_util_ops.inc b/inc/bolt_util_ops.inc new file mode 100755 index 0000000..db2ddf5 --- /dev/null +++ b/inc/bolt_util_ops.inc @@ -0,0 +1,230 @@ +. + + +// Utility functions for admin pages + +require_once("../inc/util_ops.inc"); + +// get names of units of a given type + +function units_of_type($unit, $type) { + $names = array(); + if (get_class($unit) == $type) { + $names[] = $unit->name; + } + if (is_subclass_of($unit, "BoltSet")) { + foreach ($unit->units as $u) { + $n = units_of_type($u, $type); + $names = array_merge($names, $n); + } + } + return array_unique($names); +} + +// show a menu of select units +// +function choose_select($top_unit) { + echo ""; +} + +// show a menu of exercise sets +// +function choose_xset($top_unit) { + echo ""; +} + +// Find a unit of given name +// +function lookup_unit($top_unit, $name) { + if ($top_unit->name == $name) return $top_unit; + if (is_subclass_of($top_unit, "BoltSet")) { + foreach ($top_unit->units as $child) { + $u = lookup_unit($child, $name); + if ($u) return $u; + } + } + return null; +} + +////// Statistics + +// compute the mean and stdev of an array +// +function mean_stdev($array, &$mean, &$stdev) { + $n = 0; + $m = 0; + $m2 = 0; + + foreach ($array as $x) { + $n++; + $delta = $x - $m; + $m += $delta/$n; + $m2 += $delta*($x-$m); + } + $mean = $m; + $stdev = sqrt($m2/($n-1)); +} + +// approximate the 90% confidence interval for the mean of an array +// +function conf_int_90($array, &$lo, &$hi) { + $n = count($array); + mean_stdev($array, $mean, $stdev); + + // I'm too lazy to compute the t distribution + $t_90 = 1.7; + $d = $t_90 * $stdev / sqrt($n); + $lo = $mean - $d; + $hi = $mean + $d; +} + +function test_stats() { + $a = array(1,1,1,1,0,1,1,1,3, 1, 1, 1, 1); + mean_stdev($a, $mean, $stdev); + echo "mean: $mean stdev: $stdev\n"; + conf_int_90($a, $lo, $hi); + echo "lo $lo hi $hi\n"; +} + +//////////// graph drawing + +function compare_bar($title, $n, $width, $lo, $hi) { + $x1 = $width*$lo; + $x2 = $width*($hi-$lo); + $a1 = number_format($lo*100); + $a2 = number_format($hi*100); + return " + + $title

($n students)

+ + + + + +
$a1$a2
+ + + "; +} + +function compare_bar_insuff($title, $width) { + return " + + $title + + + +
Insufficient data
+ + + "; +} + +function outcome_graph($x, $width) { + $n = $x[0]+$x[1]+$x[2]; + if (!$n) return empty_cell(); + $x0 = $width*$x[1]/$n; + $x1 = $width*$x[0]/$n; + $x2 = $width*$x[2]/$n; + if ($x[1]/$n>0.05) { + $t0 = number_format(100*$x[1]/$n)."%"; + } else { + $t0 = ""; + } + $s = " + + "; + if ($x0) { + $s .= " + "; + } + if ($x1) { + $s .= " + "; + } + if ($x2) { + $s .= " + "; + } + $s .= "

$t0



+ + "; + return $s; +} + +function time_graph($t, $w) { + if ($t == 0) return "---"; + $x = (log10($t)+2)*$w/4; + $t = number_format($t, 1); + return " + + +

$t sec

+ "; +} + +function score_graph($t, $w) { + if ($t == 0) return "---"; + $x = $t*$w; + $y = (1-$t)*$w; + $t = number_format($t*100); + $s = " + + "; + if ($x) { + $s .= " + "; + } + if ($y) { + $s .= " + "; + } + $s .= "

$t%

+ "; + return $s; +} + +function empty_cell() { + return "
"; +} + +function empty_row() { + return "
"; +} + +function bolt_style() { + echo " + + "; +} +?> diff --git a/inc/bolt_xset.inc b/inc/bolt_xset.inc new file mode 100755 index 0000000..c5e17d7 --- /dev/null +++ b/inc/bolt_xset.inc @@ -0,0 +1,209 @@ +. + +class BoltExerciseSet extends BoltRandom { + public $repeats; + public $refresh; + public $weight; + public $callback; + + function __construct( + $name, $units, $number, $repeats, $refresh, $attrs, $callback, $weight + ) { + parent::__construct($name, $units, $number, $attrs); + + $this->repeats = $repeats; + $this->refresh = $refresh; + $this->callback = $callback; + $this->weight = $weight; + } + + // called when an exercise in this set has just been graded. + // - record the score in our state structure + // - return true if this was last exercise in the set + // - if so, also return a structure saying what navigation info to show: + // - review + // - repeat now + // - next + // + function xset_record_score( + &$iter, $score, $view_id, &$avg_score, &$repeat + ) { + global $course; + global $user; + + $nav_info = null; + $state_rec = $iter->state[$this->name]; + $nshown = $state_rec['nshown']; + $state_rec['scores'][$nshown] = $score; + $iter->state[$this->name] = $state_rec; + $is_last = ($nshown+1 == $this->ntoshow); + if (!$is_last) { + return false; + } + + // this exercise set is now "completed". + // - create exercise_set_result record + // - optionally create or update bolt_refresh record + // + $total_score = 0; + for ($i=0; $i<$nshown+1; $i++) { + $total_score += $state_rec['scores'][$i]; + } + $avg_score = $total_score/($nshown+1); + + $repeat = null; + $least = 2; + foreach ($this->repeats as $r) { + if ($avg_score < $r->score && $r->score<$least) { + $repeat = $r; + $least = $r->score; + } + } + return true; + } + + function walk(&$iter, $incr, &$frac_done) { + $iter->xset = $this; + // see if we're doing a review + // + if (array_key_exists($this->name, $iter->state)) { + $state_rec = $iter->state[$this->name]; + $child_name = $state_rec['child_name']; + foreach ($this->repeats as $r) { + if ($r->unit && ($r->unit->name == $child_name)) { + // we're doing a review + // + $child = $r->unit; + if ($incr) { + if ($child->is_item) { + $my_inc = true; + } else { + $my_inc = $child->walk($iter, $incr, $frac_done); + } + if ($my_inc) { + // we're done with review. do exercises again + // + $state_rec['child_name'] = null; + $state_rec['nshown'] = 0; + $iter->state[$this->name] = $state_rec; + } + } else { + if ($child->is_item) { + $iter->item = $child; + } else { + $child->walk($iter, false, $f); + } + } + return false; + } + } + } + + return parent::walk($iter, $incr, $frac_done); + } + + function start_review(&$iter, $unit_name) { + foreach ($this->repeats as $r) { + if ($r->unit->name == $unit_name) { + $state_rec = $iter->state[$this->name]; + $state_rec['child_name'] = $unit_name; + $iter->state[$this->name] = $state_rec; + if (!$r->unit->is_item) { + $r->unit->restart($iter); + } + return true; + } + } + return false; + } +} + +class BoltRefresh{ + public $intervals; + function __construct($i) { + $this->intervals = $i; + } +} + +class BoltRepeat { + public $score; + public $unit; + public $flags; + function __construct($s, $u, $f) { + $this->score = $s; + $this->unit = $u; + $this->flags = $f; + } +} + +define('REVIEW', 1); +define('REPEAT', 2); +define('NEXT', 4); + +function repeat($s, $u, $f) { + return new BoltRepeat($s, $u, $f); +} + +function refresh($a) { + return new BoltRefresh($a); +} + +function exercise_set() { + $args = func_get_args(); + $units = array(); + $repeats = array(); + $refresh = null; + $callback = null; + $name = ""; + $number = 0; + $attrs = null; + $weight = 1; + foreach ($args as $arg) { + if (is_array($arg)) { + switch ($arg[0]) { + case 'name': $name = $arg[1]; break; + case 'title': $title = $arg[1]; break; + case 'number': $number = $arg[1]; break; + case 'attrs': $attrs = $arg[1]; break; + case 'callback': $callback = $arg[1]; break; + case 'weight': $weight = $arg[1]; break; + default: echo "Unrecognized array arg: ", $arg[0], "\n"; break; + } + } else if (is_object($arg)) { + if (get_class($arg) == "BoltExercise") { + $units[] = $arg; + } else if (get_class($arg) == "BoltRepeat") { + $repeats[] = $arg; + } else if (get_class($arg) == "BoltRefresh") { + $refresh= $arg; + } else { + echo "Can't include object of type ".get_class($arg)." within an exercise set."; + } + } else { + echo "Unexpected arg to exercise_set(): "; print_r($arg); + } + } + + if ($number == 0) $number = count($units); + return new BoltExerciseSet( + $name, $units, $number, $repeats, $refresh, $attrs, $callback, $weight + ); +} + +?> diff --git a/inc/bootstrap.inc b/inc/bootstrap.inc new file mode 100755 index 0000000..3146714 --- /dev/null +++ b/inc/bootstrap.inc @@ -0,0 +1,478 @@ +. + +// An interface to bootstrap navbars and grids. + +$fixed_navbar = false; + +if (defined('REMOTE_JOB_SUBMISSION') && REMOTE_JOB_SUBMISSION) { + require_once("../inc/submit_db.inc"); +} + +////////////// NAVBAR //////////////// + +// call this to start the navbar. +// $brand: the text or image to show at left of navbar +// If text, put it in \n"; + echo ' +
+ + +
+ + '; +} + +// put the login/logout stuff at the right side of navbar +// +function navbar_right($user) { + global $is_login_page; + echo ' + +
))@is", + "@\[size=([1-9]|[0-2][0-9])\](.*?)\[/size\]@is", + "@\[mailto\](.*?)\[/mailto\]@is", + "@\[email\](.*?)\[/email\]@is", + "@\[github\](?:\#|ticket:)(\d+)\[/github\]@is", + "@\[github\]wiki:(.*?)\[/github\]@is", + ); + + // What the above tags are turned in to + if ($export) { + $htmltags = array ( + "\\1", + "\\1", + "\\1", + "\\1", + "\\1", + "\\2", + "https://\\1", + "\\3", + "http://\\2", + "\\3", + "http://\\2", + "\\1 wrote:
\\2
", + "
\\1
", + "
    \\1

", + "

    \\1

", + " ", + " ", + "\\2", + "\\1

  • \\2\n\\3", + "\\2", + "\\1", + "\\1", + "#\\1", + "\\1", + ); + } else { + $htmltags = array ( + "\\1", + "\\1", + "\\1", + "\\1", + "\\1", + "\\2", + "https://\\1", + "\\3", + "http://\\2", + "\\3", + "http://\\2", + "\\1 wrote:
    \\2
    ", + "
    \\1
    ", + "
      \\1

    ", + "

      \\1

    ", + " ", + " ", + "\\2", + "\\1

  • \\2\n\\3", + "\\2", + "\\1", + "\\1", + "#\\1", + "\\1", + ); + } + + // Do the actual replacing - iterations for nested items + $lasttext = ""; + $i = 0; + // $i<1000 to prevent DoS + while ($text != $lasttext && $i<1000) { + $lasttext = $text; + $text = replace_pre_code($text, $export); + $text = preg_replace($bbtags, $htmltags, $text); + $i = $i + 1; + } + return $text; +} + +// Removes any
    tags added by nl2br which are not wanted, +// for example inside
     containers
    +// The original \n was retained after the br when it was added
    +//
    +function remove_br($text){
    +    return str_replace("
    ", "", $text); +} + +// Make links open in new windows. +// +function externalize_links($text) { + // TODO: Convert this to PCRE + $i=0; + $linkpos=true; + $out = ""; + while (true){ + //Find a link + // + $linkpos=strpos($text, " $value) { + $replace[$key] = "".$value.""; + } + if (substr(phpversion(), 0, 1) > 4) { // PHP 4.x doesn't support str_ireplace + return str_ireplace($search, $replace, $text); + } else { + return str_replace($search, $replace, $text); + } +} + +$cvs_version_tracker[]="\$Id$"; //Generated automatically - do not edit +?> diff --git a/inc/time.inc b/inc/time.inc new file mode 100755 index 0000000..fa69f77 --- /dev/null +++ b/inc/time.inc @@ -0,0 +1,70 @@ +. + +// express a time difference in readable form, e.g. "7 days ago". +// If it's more than 30 days, just show the date +// +function time_diff_str($t1, $t2) { + if (!$t1 || !$t2) return "---"; + $diff = $t2 - $t1; + if ($diff<0){ + $pre="In "; + $post=""; + $diff=-$diff; + } else { + if ($diff > 86400*30) { + return date_str($t1); + } + $pre=""; + $post=" ago"; + } + $x = ""; + + if ($diff >= 3600*24) { + $n = (int) ($diff/(3600*24)); + if ($n == 1) { + $x .= "1 day "; + } else { + $x .= "$n days "; + } + return $pre.$x.$post; + //$diff -= $n*3600*24; + } elseif ($diff >= 3600) { + $n = (int) ($diff/3600); + if ($n == 1) { + $x .= "1 hour "; + } else { + $x .= $n." hours "; + } + return $pre.$x.$post; + //$diff -= $n*3600; + } elseif ($diff >= 60) { + $n = (int) ($diff/60); + if ($n == 1) { + $x .= "1 minute "; + } else { + $x .= $n." minutes "; + } + return $pre.$x.$post; + } elseif($diff > 1 || $diff==0) { + return $pre."$diff seconds".$post; + } elseif($diff == 1){ + return $pre."$diff seconds".$post; + } +} +?> diff --git a/inc/translation.inc b/inc/translation.inc new file mode 100755 index 0000000..39d33dc --- /dev/null +++ b/inc/translation.inc @@ -0,0 +1,307 @@ +. + +$lang_language_dir = "../languages/"; +$lang_translations_dir = "translations/"; +$lang_prj_translations_dir = "project_specific_translations/"; +$lang_compiled_dir = "compiled/"; +$lang_log_level = 1; + +// Get a list of compiled languages by scanning the compiled/ dir +// @returns A list of languages that have been compiled +// +function get_supported_languages() { + global $lang_language_dir, $lang_compiled_dir; + $list = array(); + if (!is_dir($lang_language_dir.$lang_compiled_dir)) { + echo "\"".$lang_language_dir.$lang_compiled_dir."\" is not a directory. Please consult the documentation for correctly setting up the translation system."; + exit; + } + $dh = opendir($lang_language_dir.$lang_compiled_dir); + if (!$dh) die("can't open language dir"); + + while ($file = readdir($dh)) { + if (substr($file, -7) != ".po.inc") continue; + if (is_numeric(substr($file, 0, 5))) continue; + $list[] = substr($file, 0, -7); + } + return $list; +} + +// generate PHP files defining translation arrays. +// For example, the file "ca.po.inc" would contain entries of the form +// $language_lookup_array["ca"]["Default"] = "Defecte"; +// +// Append to these files if they already exist +// (this may get done for both generic and project-specific translations) +// +// @param langdir The language base directory +// @param transdir The location of the .po files to compile relative to langdir +// @param compdir The output location relative to langdir +// +function build_translation_array_files($langdir, $transdir, $compdir) { + + // Run through each language and compile their lookup arrays. + // + if (!is_dir($langdir.$transdir)) { + //debug("$info_dir not found or is not a directory"); + } + $dh = opendir($langdir.$transdir); + if (!$dh) die("can't open translation dir"); + while (($file = readdir($dh)) !== false) { + if ($file==".." || $file==".") { + continue; + } + // only do files ending in .po + if (substr($file,-3) != ".po"){ + //debug("File $file with unknown extension found in $info_dir"); + continue; + } + language_log( + "-------------Compiling $transdir$file------------", 0 + ); + $language = parse_po_file($langdir.$transdir.$file); + if (!$language){ + language_log( + "WARNING: Could not parse language ".$file + ); + continue; + } + $path = $langdir.$compdir.$file.".inc"; + if (file_exists($path)) { + $fh = fopen($path, "a"); + } else { + $fh = fopen($path, "w"); + fwrite($fh, " $value){ + if ($value !== "") { + // Skip if the msgstr is empty + fwrite($fh, "\$language_lookup_array[\"".str_replace("\"", "\\\"", substr($file,0,-3))."\"][\"".$key."\"] = \"".$value."\";\n"); + } + } + // don't write \?\> - may append + + fclose($fh); + } + closedir($dh); +} + +// Parses a gettext .po-file into an associative PHP array. +// @param file The file to parse +// checking for inconsistencies if needed. +// +function parse_po_file($file) { + $translation_file = file($file); + $first_entry = true; + $current_token_text=""; + $current_token =""; + $parsing_token = false; + $parsing_text = false; + $output = array(); + for ($i=0; $i= $lang_log_level){ + echo gmdate("Y-m-d H:i:s", time())." ".$msg." ".$message."\n"; + } +} + +// Make a list of languages which the user prefers +// (by looking at cookies and browser settings) +// cookies have highest priority. + +if (isset($_COOKIE['lang'])){ + $language_string = $_COOKIE['lang'].","; +} else { + $language_string = ''; +} +if (isset($_SERVER["HTTP_ACCEPT_LANGUAGE"])) { + $language_string .= strtolower($_SERVER["HTTP_ACCEPT_LANGUAGE"]); +} + +// Find out which language to use by iterating through list +// The list is comma-separated, so split it into an array of the following type: +// Array ( +// [0] => da +// [1] => en-us;q=0.7 +// [2] => en;q=0.3 +// ) + +$client_languages = explode(",", $language_string); + +// A language is either defined as primary-secondary or primary. +// It can also have a quality attribute set, +// which orders the languages in a user preferred ordering. +// Since this is usally the same order as the array indices +// we just ignore this attribute (TODO: don't ignore this attribute) +// A missing quality attribute means q=1 + +$languages_in_use = array(); + +// Loop over languages that the client requests +// +for ($i=0; $i2) + && (substr($client_languages[$i], 2, 1) == "_" || substr($client_languages[$i], 2, 1) == "-") + ){ + // If this is defined as primary-secondary, represent it as xx_YY + // + $language = substr( + $client_languages[$i], 0, 2)."_".strtoupper(substr($client_languages[$i], 3, 2) + ); + + // And also check for the primary language + // + $language2 = substr($client_languages[$i], 0, 2); + } else { + // else just use xx + // + $language = substr($client_languages[$i], 0, 2); + $language2 = null; + } + + // if main language is english, look no further + // + if ((count($languages_in_use)==0) && ($language == 'en' || $language2 == 'en')) { + break; + } + + // If we have a translation for the language, include it + // + $file_name = $lang_language_dir.$lang_compiled_dir.$language.".po.inc"; + if (file_exists($file_name)) { + if (!in_array($language, $languages_in_use)){ + require_once($file_name); + $languages_in_use[] = $language; + } + } + if ($language2) { + $file_name = $lang_language_dir.$lang_compiled_dir.$language2.".po.inc"; + if (file_exists($file_name)) { + if (!in_array($language2, $languages_in_use)){ + require_once($file_name); + $languages_in_use[] = $language2; + } + } + } +} + +$GLOBALS['languages_in_use'] = $languages_in_use; // for Drupal + +$cvs_version_tracker[]="\$Id$"; //Generated automatically - do not edit +?> diff --git a/inc/untitled text 6.html b/inc/untitled text 6.html new file mode 100644 index 0000000..c145b86 --- /dev/null +++ b/inc/untitled text 6.html @@ -0,0 +1,8 @@ + +ATTENTION +

    +Hello, and welcome to the landing page for the BOINC website at TACC at UT Austin. BOINC is a volunteer computing project dedicated to moving the necessities of high-powered computing to volunteers willing to share their computing resources on their personal devices. In doing so, this provides another set of options for researchers to acquire the necessary resources to analyze their data to progress the STEM fields. +

    +
    link to homepage" + + \ No newline at end of file diff --git a/inc/uotd.inc b/inc/uotd.inc new file mode 100755 index 0000000..761dbfc --- /dev/null +++ b/inc/uotd.inc @@ -0,0 +1,224 @@ +. + +require_once('../inc/boinc_db.inc'); +require_once('../inc/email.inc'); +require_once('../inc/profile.inc'); + +if (!defined('UOTD_THRESHOLD')) { + define('UOTD_THRESHOLD', 7); + // email sysadmin if # of UOTD candidates falls below this +} + +function uotd_thumbnail($profile, $user) { + if ($profile->has_picture) { + return "id\">id)."\" alt=\"".tra("User profile")."\">"; + } else { + return ""; + } +} + +// show UOTD in a small box +// +function show_uotd($profile) { + $user = BoincUser::lookup_id($profile->userid); + echo uotd_thumbnail($profile, $user); + echo user_links($user, BADGE_HEIGHT_MEDIUM)."
    "; + $x = output_transform($profile->response1); + $x = sanitize_tags($x); + echo sub_sentence($x, ' ', 150, true); +} + +// return the last UOTD profile, or null +// +function get_current_uotd() { + $profiles = BoincProfile::enum("uotd_time is not NULL and uotd_time>0", "ORDER BY uotd_time DESC LIMIT 1"); + if (sizeof($profiles)) { + return $profiles[0]; + } + return null; +} + +// Select a (possibly new) UOTD +// +function select_uotd($force_new = false) { + echo gmdate("F d Y", time())." UTC: Starting\n"; + $current_uotd = get_current_uotd(); + if ($current_uotd && !$force_new) { + $assigned = getdate($current_uotd->uotd_time); + $now = getdate(time()); + if ($assigned['mday'] == $now['mday']) { + $user = BoincUser::lookup_id($current_uotd->userid); + echo "Already have UOTD for today\n"; + generate_uotd_gadget($current_uotd, $user); + exit(); + } + } + if ($force_new) { + echo "Forcing new UOTD\n"; + } + + // get a list of profiles that have been 'approved' for UOTD, + // using a project-specific query if supplied in project.inc + // + if (function_exists('uotd_candidates_query')) { + $query = uotd_candidates_query(); + echo "using project supplied candidates_query\n"; + } else { + $query = default_uotd_candidates_query(); + echo "using default candidates_query\n"; + } + $db = BoincDb::get(); + $result = $db->do_query($query); + + // If the number of approved profiles dips below a threshold, + // email the sys admin every time we pick a new one. + // + if (defined('UOTD_ADMIN_EMAIL') + && $result + && $result->num_rows < UOTD_THRESHOLD + ) { + echo "approved candidates for UOTD under UOTD_THRESHOLD\n"; + $u = new BoincUser; + $u->email_addr = UOTD_ADMIN_EMAIL; + $u->name = "UOTD admin"; + send_email($u, + PROJECT . ": User of the Day pool is running low!", + "The pool of approved candidates for User of the Day has". + " reached your assigned threshold: there are now only " . $result->num_rows . " approved users.\n\n". + "To approve more candidates for User of the Day,". + " go to the " . PROJECT . " administration page and click \"Screen user profiles\"" + ); + } + + if ($result && $result->num_rows == 0) { + echo "no new verified profile found, selecting old UOTD that was shown least recently\n"; + $result->free(); + // If all verified profiles have been selected as UOTD, + // reshow a random one of the 100 least recently shown profiles. + // + $inner = "SELECT profile.userid FROM profile,user WHERE profile.userid=user.id AND verification=1 AND uotd_time>0 ORDER BY uotd_time ASC LIMIT 100"; + $result = $db->do_query("SELECT * from ($inner) as t ORDER BY RAND() LIMIT 1"); + } + + if (!$result || $result->num_rows == 0) { + // No valid users of the day - do something. + echo "No screened users found\n"; + exit(); + } + $candidate = $result->fetch_object(); + $result->free(); + + // depending on the candidates query the profile must not exist + // + $profile = BoincProfile::lookup_userid($candidate->userid); + if (!$profile) { + echo "Could not find profile returned from candidates query.\n"; + exit(); + } + + // "orphaned" profiles can only be detected if the candidate query doesn't join profile and user table + // if this happens, delete the profile and try again + // + $user = BoincUser::lookup_id($candidate->userid); + if (!$user) { + echo "Profile for user $candidate->userid is orphaned and will be deleted\n"; + $profile->delete(); + select_uotd($force_new); + exit(); + } + + $profile->uotd_time = time(); + $profile->update("uotd_time = ".time()); + + send_email($user, + "You're the " . PROJECT . " user of the day!", + "Congratulations!\n\nYou've been chosen as the " + . PROJECT . " user of the day! + Your profile will be featured on the " . PROJECT . " website for the next 24 hours." + ); + echo "Chose user $user->id as UOTD\n"; + + generate_uotd_gadget($profile, $user); +} + +// This query defines the set of users eligible to be UOTD. +// To override this with your own policy, create a similar function in +// your own project.inc called uotd_candidates_query() +// +function default_uotd_candidates_query(){ + $query = "SELECT * FROM profile,user WHERE profile.userid=user.id "; + $query .= " AND verification=1 "; + $query .= " AND expavg_credit>1 "; + $query .= " AND (uotd_time IS NULL or uotd_time=0) "; + $query .= "ORDER BY RAND()"; + return $query; +} + +// get a list of profiles that have been 'approved' for UOTD, +// using a project-specific query if supplied in project.inc +// +function count_uotd_candidates(){ + $n = -1; // negative value returned on error + if (function_exists('uotd_candidates_query')) { + $query = uotd_candidates_query(); + } else { + $query = default_uotd_candidates_query(); + } + + $db = BoincDb::get(); + $result = $db->do_query($query); + if($result) { + $n = $result->num_rows; + } + $result->free(); + + return $n; +} + +// iGoogle gadget - generate the gadget content page +// +function generate_uotd_gadget($profile, $user) { + $x = "\n"; + $gadget = PROFILE_PATH."uotd_gadget.html"; + if( $h = fopen($gadget, "w") ){ + $age = time()-$profile->uotd_time; + echo "age: $age"; + if($age <= 86400+3600) { // allow for slop + $x .= uotd_thumbnail($profile, $user); + $x .= user_links($user, BADGE_HEIGHT_MEDIUM); + $resp = sanitize_tags(output_transform($profile->response1)); + $x .= "  ". sub_sentence($resp, ' ', 250, true); + } + else { + $x .= " + There is no User of the Day today. + Only volunteers who have created a Profile + (with a picture), and have recent credit, + are eligible to be chosen as User of the Day. + We have run out of these, so there isn't a + User of the Day. + "; + } + $x .= "\n\n"; + fwrite($h, $x); + fclose($h); + } +} + +?> diff --git a/inc/user.inc b/inc/user.inc new file mode 100755 index 0000000..ba5f55a --- /dev/null +++ b/inc/user.inc @@ -0,0 +1,551 @@ +. + +require_once("../inc/credit.inc"); +require_once("../inc/email.inc"); +require_once("../inc/util.inc"); +require_once("../inc/team.inc"); +require_once("../inc/friend.inc"); +require_once("../inc/forum_db.inc"); +require_once("../inc/notify.inc"); +require_once("../inc/ldap.inc"); + +if (!defined('REMOTE_PROJECTS_TTL')) { + define('REMOTE_PROJECTS_TTL', 86400); +} + +// add an element "projects" to user consisting of array of projects +// they've participated in +// +function get_other_projects($user) { + $cpid = md5($user->cross_project_id . $user->email_addr); + $url = "http://boinc.netsoft-online.com/get_user.php?cpid=".$cpid; + + // Check the cache for that URL + // + $cacheddata = get_cached_data(REMOTE_PROJECTS_TTL, $url); + if ($cacheddata){ + $remote = unserialize($cacheddata); + } else { + // Fetch the XML, use curl if fopen() is disallowed + // + if (ini_get('allow_url_fopen')) { + $timeout = 3; + $old_timeout = ini_set('default_socket_timeout', $timeout); + $xml_object = null; + $f = @file_get_contents($url); + if ($f) { + $xml_object = @simplexml_load_string($f); + } + ini_set('default_socket_timeout', $old_timeout); + if (!$xml_object) { + return $user; + } + } else { + $ch = curl_init($url); + curl_setopt($ch, CURLOPT_HEADER, false); + curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); + curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); + curl_setopt($ch, CURLOPT_MAXREDIRS, 3); + curl_setopt($ch, CURLOPT_TIMEOUT, 3); + $rawxml = @curl_exec($ch); + $xml_object = null; + if ($rawxml) { + $xml_object = @simplexml_load_string($rawxml); + } + curl_close($ch); + if (!xml_object) { + return $user; + } + } + + // auto-cast the project list to an array of stdClass projects + // + $remote = @json_decode(json_encode((array)$xml_object))->project; + if (count($remote) == 1) { + $remote = array($remote); + } + + if (!$remote) { + return $user; + } else { + // Cache the results + set_cached_data(REMOTE_PROJECTS_TTL, serialize($remote), $url); + } + } + + $user->projects = $remote; + return $user; +} + +function show_project($project) { + if ($project->url == "http://www.worldcommunitygrid.org/") { + $x = $project->name; + } else { + $x = "url"."show_user.php?userid=$project->id\">$project->name"; + } + echo " + $x + ".number_format($project->total_credit, 0)." + ".number_format($project->expavg_credit, 0)." + ".date_str($project->create_time)." + + "; +} + +function cmp($a, $b) { + if ($a->expavg_credit == $b->expavg_credit) return 0; + return ($a->expavg_credit < $b->expavg_credit)? 1 : -1; +} + +function show_other_projects($user, $personal) { + if (!isset($user->projects)) return; + if (count($user->projects) < 2) return; + + usort($user->projects, "cmp"); + if ($personal) { + echo "

    ".tra("Projects in which you are participating")."

    "; + } else { + echo "

    ".tra("Projects in which %1 is participating", $user->name)."

    "; + } + start_table('table-striped'); + row_heading_array( + array( + tra("Project")."
    ".tra("Click for user page")."", + tra("Total credit"), + tra("Average credit"), + tra("Since") + ), + array("", ALIGN_RIGHT, ALIGN_RIGHT, ALIGN_RIGHT) + ); + foreach($user->projects as $project) { + show_project($project); + } + end_table(); +} + +function total_posts($user) { + return BoincPost::count("user=$user->id"); +} + +function show_credit($user) { + row2(tra("Total credit"), format_credit_large($user->total_credit)); + row2(tra("Recent average credit"), format_credit($user->expavg_credit)); + if (function_exists("project_user_credit")) { + project_user_credit($user); + } +} + +require_once("../inc/stats_sites.inc"); +// show dynamic user info (private) +// +function show_user_stats_private($user) { + global $cpid_stats_sites; + + if (NO_COMPUTING && NO_STATS && NO_HOSTS) { + return; + } + row1(tra("Computing")); + + if (!NO_STATS) { + show_credit($user); + } + + if (!NO_HOSTS) { + row2(tra("Computers on this account"), "".tra("View").""); + } + if (!NO_COMPUTING) { + row2(tra("Tasks"), "id\">".tra("View").""); + } + + if (!NO_STATS) { + $cpid = md5($user->cross_project_id . $user->email_addr); + $x = ""; + shuffle($cpid_stats_sites); + foreach ($cpid_stats_sites as $site) { + $name = $site[0]; + $y = sprintf($site[1], $cpid); + $x .= "$name
    \n"; + } + $x .= "
    ".tra("Cross-project ID").": $cpid\n"; + row2(tra("Cross-project statistics"), $x); + $x = ''.tra("Account").''; + if ($user->teamid) { + $x .= ' · '.tra("Team").''; + } + $x .= ' · '.tra("Cross-project").''; + row2(tra("Certificate"), $x); + row2(tra("Stats on your cell phone"), url_base()."userw.php?id=$user->id"); + } +} + +function notify_description($notify) { + switch ($notify->type) { + case NOTIFY_FRIEND_REQ: + return friend_notify_req_web_line($notify); + case NOTIFY_FRIEND_ACCEPT: + return friend_notify_accept_web_line($notify); + case NOTIFY_PM: + return pm_web_line($notify); + case NOTIFY_SUBSCRIBED_POST: + return subscribed_post_web_line($notify); + } + return null; +} + +function weak_auth($user) { + $x = md5($user->authenticator.$user->passwd_hash); + return "{$user->id}_$x"; +} + +// originally user URLs were assumed to be http://, +// and this prefix wasn't stored. +// Now the prefix can be http:// or https://. +// This function takes a user URL in any form and converts +// it to a canonical form, with the protocol prefix. +// +function normalize_user_url($url) { + $x = strtolower($url); + if (substr($x, 0, 7) == 'http://') { + return 'http://'.substr($url, 7); + } + if (substr($x, 0, 8) == 'https://') { + return 'https://'.substr($url, 8); + } + return 'http://'.$url; +} + +// show static user info (private) +// +function show_user_info_private($user) { + row2(tra("Name"), $user->name); + if (LDAP_HOST && is_ldap_email($user->email_addr)) { + row2("LDAP ID", ldap_email_to_uid($user->email_addr)); + } else { + $email_text = $user->email_addr; + if (defined("SHOW_NONVALIDATED_EMAIL_ADDR") && !$user->email_validated) { + $email_text .= " (must be validated)"; + } + row2(tra("Email address"), $email_text); + } + if (strlen($user->url)) { + $u = normalize_user_url($user->url); + row2(tra("URL"), sprintf('%s', $u, $u)); + } + row2(tra("Country"), $user->country); + if (POSTAL_CODE) { + row2(tra("Postal code"), $user->postal_code); + } + row2(tra("%1 member since", PROJECT), date_str($user->create_time)); + $url_tokens = url_tokens($user->authenticator); + if (LDAP_HOST && is_ldap_email($user->email_addr)) { + // LDAP accounts can't change email or password + // + row2(tra("Change"), + "Account info" + ); + } else { + row2(tra("Change"), + "".tra("email address")." + · ".tra("password")." + · ".tra("other account info")."" + ); + } + row2(tra("User ID")."

    ".tra("Used in community functions")."

    ", $user->id); + if (!NO_COMPUTING) { + row2( + tra("Account keys"), + "".tra("View")."" + ); + } +} + +function show_preference_links() { + row1("".tra("Preferences")); + if (!NO_GLOBAL_PREFS) { + row2( + tra("When and how BOINC uses your computer"), + "".tra("Computing preferences")."" + ); + } + row2(tra("Message boards and private messages"), + "".tra("Community preferences")."" + ); + if (!NO_COMPUTING) { + row2(tra("Preferences for this project"), + "".tra("%1 preferences", PROJECT)."" + ); + } +} + +function friend_links($user) { + if (is_banished($user)) { + return ""; + } + $x = "
    "; + if ($user->has_profile) { + $profile = BoincProfile::lookup_fields("has_picture", "userid=$user->id"); + if ($profile && $profile->has_picture) { + $img_url = profile_thumb_url($user->id); + } else { + $img_url = url_base()."img/head_20.png"; + } + $title = tra("View the profile of %1", $user->name); + $alt = tra("Profile"); + $x .= ' '.$alt.'
    '; + } + $x .= " id."\">".$user->name.""; + if (function_exists("project_user_links")) { + $x .= project_user_links($user); + } + $x .= "
    \n"; + return $x; +} + +// show user name, with links to profile if present. +// if $badge_height is > 0, show badges +// +function user_links($user, $badge_height=0) { + BoincForumPrefs::lookup($user); + if (is_banished($user)) { + return "(banished: ID $user->id)"; + } + $x = ""; + if ($user->has_profile) { + $img_url = url_base()."img/head_20.png"; + $x .= ' Profile'; + } + $x .= " id."\">".$user->name.""; + if (function_exists("project_user_links")){ + $x .= project_user_links($user); + } + if ($badge_height) { + $x .= badges_string(true, $user, $badge_height); + } + return $x; +} + +function show_community_private($user) { + show_badges_row(true, $user); + if (!DISABLE_PROFILES) { + if ($user->has_profile) { + $x = "id\">".tra("View")." · ".tra("Delete").""; + } else { + $x = "".tra("Create").""; + } + row2(tra("Profile"), $x); + } + if (!DISABLE_FORUMS) { + $tot = total_posts($user); + if ($tot) { + row2(tra("Message boards"), "id\">".tra("%1 posts", $tot).""); + } + } + + row2(tra("Private messages"), pm_notification($user).pm_email_remind($user)); + + $notifies = BoincNotify::enum("userid=$user->id"); + if (count($notifies)) { + $x = ""; + foreach ($notifies as $notify) { + $y = notify_description($notify); + if ($y) { + $x .= "• $y
    "; + } else { + $notify->delete(); + } + } + $x .= "\"RSS\""; + row2(tra("Notifications"), $x); + } + + if (!DISABLE_TEAMS) { + if ($user->teamid && ($team = BoincTeam::lookup_id($user->teamid))) { + $x = "id\">$team->name + · ".tra("Quit team").""; + if (is_team_admin($user, $team)) { + $x .= " · teamid\">".tra("Administer").""; + } + + // if there's a foundership request, notify the founder + // + if ($user->id==$team->userid && $team->ping_user >0) { + $x .= "

    ".tra("(foundership change request pending)")."

    "; + } + row2(tra("Member of team"), $x); + } else { + row2(tra("Team"), tra("None")." · ".tra("find a team").""); + } + + $teams_founded = BoincTeam::enum("userid=$user->id"); + foreach ($teams_founded as $team) { + if ($team->id != $user->teamid) { + $x = "id\">$team->name"; + $x .= " | id."\">".tra("Administer").""; + if ($team->ping_user > 0) { + $x .= "

    ".tra("(foundership change request pending)").""; + } + row2(tra("Founder but not member of"), $x); + } + } + } + + $friends = BoincFriend::enum("user_src=$user->id and reciprocated=1"); + $x = "".tra("Find friends")."
    \n"; + $n = count($friends); + if ($n) { + foreach($friends as $friend) { + $fuser = BoincUser::lookup_id($friend->user_dest); + if (!$fuser) continue; + $x .= friend_links($fuser); + } + row2(tra("Friends")." ($n)", $x); + } else { + row2(tra("Friends"), $x); + } +} + +// show summary of dynamic and static info (public) +// +function show_user_summary_public($user) { + global $g_logged_in_user; + row2(tra("User ID"), $user->id); + row2(tra("%1 member since", PROJECT), date_str($user->create_time)); + row2(tra("Country"), $user->country); + // don't show URL if user has no recent credit (spam suppression) + // + if (strlen($user->url)) { + if (!NO_COMPUTING || $user->expavg_credit > 1) { + $u = normalize_user_url($user->url); + row2(tra("URL"), sprintf('%s', $u, $u)); + } + } + if (!NO_COMPUTING) { + show_credit($user); + + if ($user->show_hosts) { + row2(tra("Computers"), "id\">".tra("View").""); + } else { + row2(tra("Computers"), tra("hidden")); + } + } + if (function_exists("project_user_summary_public")) { + project_user_summary_public($user); + } +} + +// Returns a cacheable community links data object +// @param user The user to produce a community links object for + +function get_community_links_object($user){ + $cache_object = new StdClass; + $cache_object->post_count = total_posts($user); + $cache_object->user = $user; + $cache_object->team = BoincTeam::lookup_id($user->teamid); + $cache_object->friends = array(); + + $friends = BoincFriend::enum("user_src=$user->id and reciprocated=1"); + foreach($friends as $friend) { + $fuser = BoincUser::lookup_id($friend->user_dest); + if (!$fuser) continue; + $cache_object->friends[] = $fuser; + } + return $cache_object; +} + +function community_links($clo, $logged_in_user){ + $user = $clo->user; + $team = $clo->team; + $friends = $clo->friends; + $tot = $clo->post_count; + + if (!DISABLE_TEAMS) { + if ($user->teamid && $team) { + row2(tra("Team"), "id\">$team->name"); + } else { + row2(tra("Team"), tra("None")); + } + } + if (!DISABLE_FORUMS) { + if ($tot) { + row2(tra("Message boards"), "id\">".tra("%1 posts", $tot).""); + } + } + if ($logged_in_user && $logged_in_user->id != $user->id) { + row2(tra("Contact"), "id."\">".tra("Send private message").""); + $friend = BoincFriend::lookup($logged_in_user->id, $user->id); + if ($friend && $friend->reciprocated) { + row2(tra("This person is a friend"), + "id\">".tra("Cancel friendship")."" + ); + } else if ($friend) { + row2(tra("Friends"), "id\">".tra("Request pending").""); + } else { + row2(tra("Friends"), "id\">".tra("Add as friend").""); + } + } + + if ($friends) { + $x = ""; + foreach($friends as $friend) { + $x .= friend_links($friend); + } + row2(tra("Friends")." (".sizeof($friends).")", $x); + } +} + +function show_profile_link($user) { + if ($user->has_profile) { + row2(tra("Profile"), "id\">".tra("View").""); + } +} + +function show_account_private($user) { + grid( + false, + function() use ($user) { + start_table(); + row1(tra("Account information"), 2, 'heading'); + show_user_info_private($user); + show_preference_links(); + show_user_stats_private($user); + + if (function_exists('show_user_donations_private')) { + show_user_donations_private($user); + } + end_table(); + if (!NO_COMPUTING) { + show_other_projects($user, true); + } + if (function_exists("project_user_page_private")) { + project_user_page_private($user); + } + //echo "Delete account\n"; + }, + function() use ($user) { + start_table(); + row1(tra("Community")); + show_community_private($user); + end_table(); + } + ); +} + +$cvs_version_tracker[]="\$Id$"; //Generated automatically - do not edit + +?> diff --git a/inc/user_gallery_1_edit.html b/inc/user_gallery_1_edit.html new file mode 100755 index 0000000..a487d0e --- /dev/null +++ b/inc/user_gallery_1_edit.html @@ -0,0 +1,16 @@ +

    Profile Gallery: Page 1 of 1

    + +Last updated 20 Jun 2018, 19:10:02 UTC +

    Browse the user profiles by picture. + Only user profiles with pictures are listed here. + +
    +

    Page 1 of 1

    Jump to Page: +1 +
    +

    + + +
    +TACC Logo +
    \ No newline at end of file diff --git a/inc/user_util.inc b/inc/user_util.inc new file mode 100755 index 0000000..4aece96 --- /dev/null +++ b/inc/user_util.inc @@ -0,0 +1,246 @@ +. + +// functions for creating and deleting users + + +include_once("../inc/boinc_db.inc"); +include_once("../inc/util.inc"); +include_once("../inc/email.inc"); +include_once("../inc/recaptchalib.php"); + +function is_banned_email_addr($email_addr) { + global $banned_email_domains; + if (isset($banned_email_domains)) { + foreach($banned_email_domains as $d) { + $x = strstr($email_addr, $d); + if ($x == $d) return true; + } + } + return false; +} + +function is_valid_user_name($name, &$reason) { + if (trim($name) !== $name) { + $reason = tra("user name cannot have leading or trailing white space"); + return false; + } + if (strlen($name) == 0) { + $reason = tra("user name must be nonempty"); + return false; + } + if (sanitize_tags($name) !== $name) { + $reason = tra("user name may not contain HTML tags"); + return false; + } + return true; +} + +// the following DB-escapes its args +// +function make_user( + $email_addr, $name, $passwd_hash, + $country=null, $postal_code=null, $project_prefs=null, $teamid=0 +) { + if (!is_valid_email_addr($email_addr)) return null; + if (is_banned_email_addr($email_addr)) return null; + + $authenticator = random_string(); + $cross_project_id = random_string(); + $now = time(); + if (!is_valid_country($country)) return null; + + $email_addr = BoincDb::escape_string($email_addr); + $name = sanitize_tags($name); + $name = BoincDb::escape_string($name); + $passwd_hash = BoincDb::escape_string($passwd_hash); + + $country = BoincDb::escape_string($country); + $postal_code = sanitize_tags(BoincDb::escape_string($postal_code)); + + $uid = BoincUser::insert("(create_time, email_addr, name, authenticator, country, postal_code, total_credit, expavg_credit, expavg_time, project_prefs, teamid, venue, send_email, show_hosts, posts, seti_id, seti_nresults, seti_last_result_time, seti_total_cpu, has_profile, cross_project_id, passwd_hash, email_validated, donated) values($now, '$email_addr', '$name', '$authenticator', '$country', '$postal_code', 0, 0, unix_timestamp(), '$project_prefs', $teamid, '', 1, 1, 0, 0, 0, 0, 0, 0, '$cross_project_id', '$passwd_hash', 0, 0)"); + + if (!$uid) { + return null; + } + $user = BoincUser::lookup_id($uid); + if (defined('RECORD_USER_IP')) { + $ip = $_SERVER['REMOTE_ADDR']; + $ip = BoincDb::escape_string($ip); + $user->update("venue='$ip'"); + } + return $user; +} + +function make_user_ldap($email_addr, $name) { + $email_addr = BoincDb::escape_string($email_addr); + $name = sanitize_tags($name); + $name = BoincDb::escape_string($name); + $authenticator = random_string(); + $cross_project_id = random_string(); + $passwd_hash = random_string(); + $now = time(); + $uid = BoincUser::insert("(create_time, email_addr, name, authenticator, country, postal_code, total_credit, expavg_credit, expavg_time, project_prefs, teamid, send_email, show_hosts, cross_project_id, passwd_hash) values($now, '$email_addr', '$name', '$authenticator', '', '', 0, 0, unix_timestamp(), '', 0, 1, 1, '$cross_project_id', '$passwd_hash')"); + + if ($uid) { + return BoincUser::lookup_id($uid); + } else { + return null; + } +} + +function show_error($str) { + page_head(tra("Can't create account")); + echo "$str
    \n"; + echo BoincDb::error(); + echo "

    ".tra("Click your browser's Back button to try again.")."\n

    \n"; + page_tail(); + exit(); +} + +// validate POST args and make user. +// If error show error page and exit. +// Else return user object +// +function validate_post_make_user() { + global $recaptcha_private_key; + $config = get_config(); + if (parse_bool($config, "disable_account_creation") + || parse_bool($config, "no_web_account_creation") + ) { + error_page("Account creation is disabled"); + } + + if ($recaptcha_private_key) { + if (!boinc_recaptcha_isValidated($recaptcha_private_key)) { + show_error( + tra("Your reCAPTCHA response was not correct. Please try again.") + ); + } + } + + // see whether the new account should be pre-enrolled in a team, + // and initialized with its founder's project prefs + // + $teamid = post_int("teamid", true); + if ($teamid) { + $team = BoincTeam::lookup_id($teamid); + $clone_user = BoincUser::lookup_id($team->userid); + if (!$clone_user) { + error_page("User $userid not found"); + } + $project_prefs = $clone_user->project_prefs; + } else { + $teamid = 0; + $project_prefs = ""; + } + + if (defined('INVITE_CODES')) { + $invite_code = post_str("invite_code"); + if (strlen($invite_code) == 0) { + show_error(tra("You must supply an invitation code to create an account.")); + } + if (!preg_match(INVITE_CODES, $invite_code)) { + show_error(tra("The invitation code you gave is not valid.")); + } + } + + $new_name = post_str("new_name"); + if (!is_valid_user_name($new_name, $reason)) { + show_error($reason); + } + + $new_email_addr = strtolower(post_str("new_email_addr")); + if (!is_valid_email_addr($new_email_addr)) { + show_error(tra("Invalid email address: please enter a valid address of the form name@xxx.yyy")); + } + $user = BoincUser::lookup_email_addr($new_email_addr); + if ($user) { + show_error(tra("There's already an account with that email address.")); + } + + $passwd = post_str("passwd"); + + $min_passwd_length = parse_config($config, ""); + if (!$min_passwd_length) $min_passwd_length = 6; + + if (!is_ascii($passwd)) { + show_error(tra("Passwords may only include ASCII characters.")); + } + + if (strlen($passwd)<$min_passwd_length) { + show_error( + tra("New password is too short: minimum password length is %1 characters.", $min_passwd_length) + ); + } + + $passwd_hash = md5($passwd.$new_email_addr); + + $country = post_str("country", true); + if (!$country) { + $country = "None"; + } + if (!is_valid_country($country)) { + error_page("bad country"); + } + + if (POSTAL_CODE) { + $postal_code = sanitize_tags(post_str("postal_code", true)); + } else { + $postal_code = ''; + } + + $user = make_user( + $new_email_addr, $new_name, $passwd_hash, + $country, $postal_code, $project_prefs, $teamid + ); + if (!$user) { + show_error( + tra("Couldn't create account").": ".BoincDb::error() + ); + } + + if (defined('INVITE_CODES')) { + error_log("Account '$new_email_addr' created using invitation code '$invite_code'"); + } + return $user; +} + +// delete a user and all associated records except +// result +// host +// batch +// team +// user_submit +// user_submit_app +// credited_job +// donation_paypal +// sent_email +// +function delete_user($user) { + delete_profile($user); + forum_delete_user($user); + // deletes post, thread, subscription, forum_preferences, forum_logging + BoincPrivateMessage::delete_aux("userid=$user->id or senderid=$user->id"); + BoincNotify::delete_aux("userid=$user->id"); + BoincCreditUser::delete_user($user); + BoincBadgeUser::delete("user_id=$user->id"); + BoincFriend::delete_aux("user_src=$user->id or user_dest=$user->id"); + $user->delete(); +} +?> diff --git a/inc/util.inc b/inc/util.inc new file mode 100755 index 0000000..929cc15 --- /dev/null +++ b/inc/util.inc @@ -0,0 +1,1115 @@ +. + +// Utility functions for BOINC web pages + +error_reporting(E_ALL); +ini_set('display_errors', true); +ini_set('display_startup_errors', true); + +require_once("../inc/util_basic.inc"); +require_once("../project/project.inc"); +require_once("../inc/countries.inc"); +require_once("../inc/db.inc"); +require_once("../inc/boinc_db.inc"); +require_once("../inc/translation.inc"); +require_once("../inc/profile.inc"); +require_once("../inc/bootstrap.inc"); + +// parse some stuff from config (do it here for efficiency) +// +$config = get_config(); +$master_url = parse_config($config , ""); +$recaptcha_public_key = parse_config($config, ""); +$recaptcha_private_key = parse_config($config, ""); + +// don't allow /... at the end of URL + +if (array_key_exists("PATH_INFO", $_SERVER)) { + die("bad URL"); +} + +// define TIMEZONE in project.inc +// +if (defined('TIMEZONE')) { + date_default_timezone_set(TIMEZONE); +} else { + date_default_timezone_set('UTC'); +} + +if (!defined('DISABLE_PROFILES')) { + define('DISABLE_PROFILES', false); +} +if (!defined('DISABLE_FORUMS')) { + define('DISABLE_FORUMS', false); +} +if (!defined('DISABLE_TEAMS')) { + define('DISABLE_TEAMS', false); +} +if (!defined('DISABLE_BADGES')) { + define('DISABLE_BADGES', false); +} +if (!defined('BADGE_HEIGHT_SMALL')) { + define('BADGE_HEIGHT_SMALL', 20); +} +if (!defined('BADGE_HEIGHT_MEDIUM')) { + define('BADGE_HEIGHT_MEDIUM', 24); +} +if (!defined('BADGE_HEIGHT_LARGE')) { + define('BADGE_HEIGHT_LARGE', 56); +} +if (!defined('LDAP_HOST')) { + define('LDAP_HOST', null); +} +if (!defined('POSTAL_CODE')) { + define('POSTAL_CODE', false); +} +if (!defined('NO_COMPUTING')) { + define('NO_COMPUTING', false); +} +if (!defined('NO_HOSTS')) { + define('NO_HOSTS', false); +} +if (!defined('NO_STATS')) { + define('NO_STATS', false); +} +if (!defined('NO_GLOBAL_PREFS')) { + define('NO_GLOBAL_PREFS', false); +} +if (!defined('USER_HOME')) { + define('USER_HOME', 'home.php'); +} +if (!defined('POST_MAX_LINKS')) { + define('POST_MAX_LINKS', 0); +} + +// sleep this long on any login failure +// (slow the rate of hacker attacks) +// +define('LOGIN_FAIL_SLEEP_SEC', 5); + +$caching = false; + // if set, we're writing to a file rather than to client +$did_page_head = false; + +define('KILO', 1024); +define('MEGA', 1024*KILO); +define('GIGA', 1024*MEGA); + +// return true if this page is HTTPS +// +function is_https() { + return isset($_SERVER['HTTPS']) && $_SERVER['HTTPS']; +} + +function secure_url_base() { + if (defined('SECURE_URL_BASE')) return SECURE_URL_BASE; + return URL_BASE; +} + +function url_base() { + return is_https()?secure_url_base():URL_BASE; +} + +function send_cookie($name, $value, $permanent, $ops=false) { + global $master_url; + + // the following allows independent login for projects on the same server + // + $url = parse_url($master_url); + $path = $url['path']; + if ($ops) { + $path = substr($path, 0, -1); + $path .= "_ops/"; + } + $expire = $permanent?time()+3600*24*365:0; + setcookie($name, $value, $expire, $path); +} + +function clear_cookie($name, $ops=false) { + global $master_url; + $url = parse_url($master_url); + $path = $url['path']; + if ($ops) { + $path = substr($path, 0, -1); + $path .= "_ops/"; + } + setcookie($name, '', time()-3600, $path); +} + +$g_logged_in_user = null; +$got_logged_in_user = false; + +function get_logged_in_user($must_be_logged_in=true) { + global $g_logged_in_user, $got_logged_in_user; + if ($got_logged_in_user) return $g_logged_in_user; + + if (web_stopped()) return null; + + $authenticator = null; + if (isset($_COOKIE['auth'])) $authenticator = $_COOKIE['auth']; + + $authenticator = BoincDb::escape_string($authenticator); + if ($authenticator) { + $g_logged_in_user = BoincUser::lookup("authenticator='$authenticator'"); + } + if ($must_be_logged_in && !$g_logged_in_user) { + $next_url = ''; + if (array_key_exists('REQUEST_URI', $_SERVER)) { + $next_url = $_SERVER['REQUEST_URI']; + $n = strrpos($next_url, "/"); + if ($n) { + $next_url = substr($next_url, $n+1); + } + } + $next_url = urlencode($next_url); + Header("Location: ".url_base()."login_form.php?next_url=$next_url"); + exit; + } + $got_logged_in_user = true; + return $g_logged_in_user; +} + +function show_login_info($prefix="") { + $user = get_logged_in_user(false); + if ($user) { + $url_tokens = url_tokens($user->authenticator); + echo "$user->name · ".tra("log out").""; + } else { + echo "".tra("log in").""; + } +} + +$cache_control_extra=""; +$is_login_page = false; + +// Call this to start pages. +// Outputs some HTML boilerplate, +// then calls project_banner() (in html/project/project.inc) +// to output whatever you want at the top of your web pages. +// +// Page_head() is overridable so that projects that want to integrate BOINC +// with an existing web framework can more easily do so. +// To do so, define page_head() in the project include file. +// +if (!function_exists("page_head")){ +function page_head( + $title, + // page title. Put in , used as title for browser tab. + $body_attrs=null, + // <body XXXX> + // e.g. Javascript to put focus in an input field + // (onload="document.form.foo.focus()") + // or to jump to a particular post (onload="jumpToUnread();") + $is_main = false, + // if set, include schedulers.txt. + // also pass to project_banner() in case you want a different + // header for your main page. + $url_prefix="", + // prepend this to links. + // Use for web pages not in the top directory + $head_extra=null + // extra stuff to put in <head>. E.g.: + // reCAPTCHA code (create_profile.php) + // bbcode javascript (forums) +) { + global $caching, $cache_control_extra, $did_page_head; + global $is_login_page, $fixed_navbar; + + $did_page_head = true; + $url_base = url_base(); + + $rssname = "RSS 2.0"; + $rsslink = $url_base."rss_main.php"; + + if (!$caching) { + header("Content-type: text/html; charset=utf-8"); + header ("Expires: Mon, 26 Jul 1997 05:00:00 UTC"); // Date in the past + header ("Last-Modified: " . gmdate("D, d M Y H:i:s") . " UTC"); // always modified + header ("Cache-Control: $cache_control_extra no-cache, must-revalidate, post-check=0, pre-check=0"); // HTTP/1.1 + header ("Pragma: no-cache"); // HTTP/1.0 + } + + echo '<!DOCTYPE html> + <html lang="en"> + <head> + <meta name="viewport" content="width=device-width, initial-scale=1"> + '; + if ($head_extra) { + echo "\n$head_extra\n"; + } + if ($is_main && (!defined('NO_COMPUTING')||!NO_COMPUTING)) { + readfile("schedulers.txt"); + } + + $t = $title?$title:PROJECT; + echo "<title>$t\n"; + echo ' + + + '; + if (defined('STYLESHEET')) { + $stylesheet = $url_base.STYLESHEET; + echo " + + "; + } + if (defined('STYLESHEET2')) { + $stylesheet2 = $url_base.STYLESHEET2; + echo " + + "; + } + + if (defined("SHORTCUT_ICON")) { + echo ' +'; + } + + echo " + + + "; + if ($fixed_navbar) { + $body_attrs .= ' style="padding-top:70px"'; + } + echo ""; + display_cvs_versions(); + echo '
    + '; + + switch($title) { //kludge + case tra("Log in"): + case tra("Create an account"): + case tra("Server status page"): + $is_login_page = true; + break; + default: + break; + } + project_banner($title, $url_prefix, $is_main); +} +} + +// See the comments for page_head() +// +if (!function_exists("page_tail")){ +function page_tail( + $show_date=false, + // true for pages that are generated periodically rather than on the fly + $url_prefix="", + // use for pages not at top level + $is_main=false + // passed to project_footer; +) { + echo "
    \n"; + project_footer($is_main, $show_date, $url_prefix); + echo ' + + +
    + + + '; +} +} + +function display_cvs_versions(){ + global $cvs_version_tracker; + echo "\n\n"; + for ($i=0;$i\n"; + } +} + +function db_error_page() { + page_head("Database error"); + echo tra("A database error occurred while handling your request; please try again later."); + page_tail(); +} + +function error_page($msg) { + global $generating_xml; + if ($generating_xml) { + xml_error(-1, $msg); + } + page_head(tra("Unable to handle request")); + echo $msg; + page_tail(); + exit(); +} + +// takes argument in second and returns a human formatted time string +// in the form D days + h Hours + m Min + s sec. + +function time_diff($x, $res=3) { + $days = (int)($x/86400); + $hours = (int)(($x-$days*86400)/3600); + $minutes = (int)(($x-$days*86400-$hours*3600)/60); + $seconds = (int)($x % 60); + + $datestring = ""; + if ($days) { + $datestring .= "$days ".tra("days")." "; + } + if ($res>0 && ($hours || strlen($datestring))) { + $datestring .= "$hours ".tra("hours")." "; + } + if ($res>1 && ($minutes || strlen($datestring))) { + $datestring .= "$minutes ".tra("min")." "; + } + if ($res>2 && ($seconds)) { + $datestring .= "$seconds ".tra("sec")." "; + } + + return $datestring; +} + + +function date_str($x) { + if ($x == 0) return "---"; + return gmdate('j M Y', $x); +} + +function time_str($x) { + if ($x == 0) return "---"; + return gmdate('j M Y, G:i:s', $x) . " UTC"; +} + +function local_time_str($x) { + if ($x == 0) return "---"; + return date('j M Y, H:i T', $x); +} + +function pretty_time_str($x) { + return time_str($x); +} + +function start_table_str($class="", $style="") { + $s = $style?'style="'.$style.'"':''; + return '
    + + '; +} + +function start_table($class="", $style="") { + echo start_table_str($class, $style); +} + +function end_table_str() { + return '
    +
    + '; +} + +function end_table() { + echo end_table_str(); +} + +// Table header row with unlimited number of columns + +function table_header() { + echo "\n"; + $c = 'class="bg-primary"'; + for ($i = 0; $i < func_num_args(); $i++) { + if (is_array(func_get_arg($i))) { + $col = func_get_arg($i); + echo "".$col[0]."\n"; + } else { + echo "".func_get_arg($i)."\n"; + } + } + echo "\n"; +} + +// Table row with unlimited number of columns + +function table_row() { + echo "\n"; + for ($i = 0; $i < func_num_args(); $i++) { + if (is_array(func_get_arg($i))) { + $col = func_get_arg($i); + echo "".$col[0]."\n"; + } else { + echo "".func_get_arg($i)."\n"; + } + } + echo "\n"; +} + +function row1($x, $ncols=2, $class="heading") { + if ($class == "heading") { + echo "$x\n"; + } else { + echo "$x\n"; + } +} + +define('NAME_ATTRS', 'class="text-right " style="padding-right:12px"'); +define('VALUE_ATTRS', 'style="padding-left:12px"'); +define('VALUE_ATTRS_ERR', 'class="danger" style="padding-left:12px"'); + +function row2($x, $y, $show_error=false, $lwidth='40%') { + if ($x==="") $x="
    "; + if ($y==="") $y="
    "; + $attrs = $show_error?VALUE_ATTRS_ERR:VALUE_ATTRS; + echo " + $x + $y + + "; +} + +function row2_init($x, $y, $lwidth='40%') { + echo ' + '.$x.' + '.$y.' + '; +} + +function row2_plain($x, $y) { + echo "$x$y\n"; +} + +function rowify($string) { + echo "$string"; +} + +function row_array($x) { + echo "\n"; + foreach ($x as $h) { + echo "$h\n"; + } + echo "\n"; +} + +define ('ALIGN_RIGHT', 'style="text-align:right;"'); + +function row_heading_array($x, $attrs=null, $class='bg-primary') { + echo ""; + $i = 0; + foreach ($x as $h) { + $a = $attrs?$attrs[$i]:""; + echo "$h"; + $i++; + } + echo "\n"; +} + +function row_heading($x, $class='bg-primary') { + echo sprintf('%s + ', $class, $x + ); +} + +// return hard-to-guess string of 32 random hex chars +// +function random_string() { + return md5(uniqid(rand(), true)); +} + +function url_tokens($auth) { + $now = time(); + $ttok = md5((string)$now.$auth); + return "&tnow=$now&ttok=$ttok"; +} + +function form_tokens($auth) { + $now = time(); + $ttok = md5((string)$now.$auth); + return " + + "; +} + +function valid_tokens($auth) { + $tnow = get_str('tnow', true); + $ttok = get_str('ttok', true); + if (!$tnow) { + $tnow = $_POST['tnow']; + } + if (!$ttok) { + $ttok = $_POST['ttok']; + } + if (!$tnow) return false; + if (!$ttok) return false; + $t = md5((string)$tnow.$auth); + if ($t != $ttok) return false; + if (time() > $tnow + 86400) return false; + return true; +} + +function check_tokens($auth) { + if (valid_tokens($auth)) return; + error_page( + tra("Link has timed out. Please click Back, refresh the page, and try again.") + ); +} + +// Generates a legal filename from a parameter string. + +function get_legal_filename($name) { + return strtr($name, array(','=>'', ' '=>'_')); +} + +// Returns a string containing as many words +// (being collections of characters separated by the character $delimiter) +// as possible such that the total string length is <= $chars characters long. +// If $ellipsis is true, then an ellipsis is added to any sentence which +// is cut short. + +function sub_sentence($sentence, $delimiter, $max_chars, $ellipsis=false) { + $words = explode($delimiter, $sentence); + $total_chars = 0; + $trunc = false; + $result = ""; + + foreach ($words as $word) { + if (strlen($result) + strlen($word) > $max_chars) { + $trunc = true; + break; + } + if ($result) { + $result .= " $word"; + } else { + $result = $word; + } + } + + if ($ellipsis && $trunc) { + $result .= "..."; + } + + return $result; +} + +// use this for user RAC and result credit +// +function format_credit($x) { + return number_format($x, 2); +} + +// use this when credit is likely to be large, e.g. team RAC +// +function format_credit_large($x) { + return number_format($x, 0); +} + +function host_link($hostid) { + if ($hostid) { + return "$hostid"; + } else { + return "---"; + } +} + +function open_output_buffer() { + ob_start(); + ob_implicit_flush(0); +} + +function close_output_buffer($filename) { + $fh = fopen($filename, "w"); + $page = ob_get_contents(); + ob_end_clean(); + fwrite($fh, $page); + fclose($fh); +} + +function bbcode_info() { + return "
    ".tra("Use BBCode tags to format your text")."\n"; +} + +// strip slashes if magic quotes in effect +function undo_magic_quotes($x) { + if (get_magic_quotes_gpc()) { + return stripslashes($x); + } + return $x; +} + +// check for bogus GET args +// +function check_get_args($args) { + foreach ($_GET as $key => $val) { + if (!in_array($key, $args)) { + Header("Location: extra_arg_$key.html"); + die; + } + } +} + +// returns null if the arg is optional and missing +// +function get_int($name, $optional=false) { + $x=null; + if (isset($_GET[$name])) $x = $_GET[$name]; + if (!is_numeric($x)) { + if ($optional) { + if ($x) { + Header("Location: non_num_arg.html"); + die; + } + return null; + } else { + Header("Location: missing_arg_$name.html"); + die; + } + } + return (int)$x; +} + +// returns null if the arg is optional and missing +// +function post_num($name, $optional=false) { + $x = null; + if (isset($_POST[$name])) $x = $_POST[$name]; + if (!is_numeric($x)) { + if ($optional) { + return null; + } else { + error_page("missing or bad parameter: $name; supplied: ".htmlspecialchars($x)); + } + } + return (double)$x; +} + +// returns null if the arg is optional and missing +// +function post_int($name, $optional=false) { + $x = post_num($name, $optional); + if (is_null($x)) return null; + $y = (int)$x; + if ($x != $y) { + error_page("param $name must be an integer"); + } + return $y; +} + +function get_array($name) { + if (isset($_GET[$name])) { + return $_GET[$name]; + } else { + return array(); + } +} + +function get_str($name, $optional=false) { + if (isset($_GET[$name])) { + $x = $_GET[$name]; + } else { + if (!$optional) { + error_page("missing or bad parameter: $name"); + } + $x = null; + } + return undo_magic_quotes($x); +} + +function post_str($name, $optional=false) { + if (isset($_POST[$name])) { + $x = $_POST[$name]; + } else { + if (!$optional) { + error_page("missing or bad parameter: $name"); + } + $x = null; + } + return undo_magic_quotes($x); +} + +function post_arr($name, $optional=false) { + if (isset($_POST[$name]) && is_array($_POST[$name])) { + $x = $_POST[$name]; + } else { + if (!$optional) { + error_page("missing or bad parameter: $name"); + } + $x = null; + } + return $x; +} + +function is_ascii($str) { + // the mb_* functions are not included by default + // return (mb_detect_encoding($passwd) -= 'ASCII'); + + for ($i=0; $i 127) return false; + } + return true; +} + +// This function replaces some often made mistakes while entering numbers +// and gives back an error if there are false characters +// It will also be checked if the value is within certain borders +// @param string &$value reference to the value that should be verified +// @param double $low the lowest number of value if verified +// @param double $high the highest number of value if verified +// @return bool true if $value is numeric and within the defined borders, +// false if $value is not numeric, no changes were made in this case +// +function verify_numeric(&$value, $low, $high = false) { + $number = trim($value); + $number = str_replace('o', '0', $number); + $number = str_replace('O', '0', $number); + $number = str_replace('x', '', $number); //if someone enters '0x100' + $number = str_replace(',', '.', $number); // replace the german decimal separator + // if no value was entered and this is ok + // + if ($number=='' && !$low) return true; + + // the supplied value contains alphabetic characters + // + if (!is_numeric($number)) return false; + + if ($number < $low) return false; + + if ($high) { + if ($number > $high) return false; + } + $value = (double)$number; + return true; +} + +// Generate a "select" element from an array of values +// +function select_from_array($name, $array, $selection=null, $width=240) { + $out = '\n"; + return $out; +} + +// Convert to entities, while preserving already-encoded entities. +// Do NOT use if $str contains valid HTML tags. +// +function boinc_htmlentities($str) { + $str = html_entity_decode($str, ENT_COMPAT, "UTF-8"); + $str = htmlentities($str, ENT_COMPAT, "UTF-8"); + return $str; +} + +function strip_bbcode($string){ + return preg_replace("/((\[.+\])+?)(.+?)((\[\/.+\])+?)/","",$string); +} + +function current_url() { + $url = "http"; + if (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == "on") { + $url .= "s"; + } + $url .= "://"; + $url .= $_SERVER['SERVER_NAME']; + $url .= ":".$_SERVER['SERVER_PORT']; + if (isset($_SERVER['REQUEST_URI'])) { + $url .= $_SERVER['REQUEST_URI']; + } else { + if ($_SERVER['QUERY_STRING']) { + $url .= "?".$_SERVER['QUERY_STRING']; + } + } + return $url; +} + +// Show a single link formatted to look like a button. +// @param url The destination URL of the button +// @param text The text to display on the button +// @param desc The title of the destination - typically used as a popup +// @param class The optional CSS class of the button. Defaults to a standard button +// + +function button_text($url, $text, $desc=null, $class="btn-success btn-sm") { + if (!$desc) { + $desc = $text; + } + return sprintf(' %s', + $url, $desc, $class, $text + ); +} + +function show_button($url, $text, $desc=null, $class="btn-success btn-sm") { + echo button_text($url, $text, $desc=null, $class); +} + +// for places with a bunch of buttons, like forum posts +// +function show_button_small($url, $text, $desc=null) { + echo button_text($url, $text, $desc, "btn-primary btn-xs"); +} + +// used for showing icons +// +function show_image($src, $title, $alt, $height=null) { + $h = ""; + if ($height) { + $h = "height=\"$height\""; + } + echo "\"$alt\""; +} + +function show_project_down() { + global $did_page_head; + if (!$did_page_head) { + page_head(tra("Project down for maintenance")); + } + echo tra( + "%1 is temporarily shut down for maintenance. Please try again later.", + PROJECT + ); + page_tail(); + exit(); +} + +function check_web_stopped() { + global $generating_xml; + if (web_stopped()) { + if ($generating_xml) { + xml_error(-183); + } else { + show_project_down(); + } + } +} + +// Connects to database server and selects database as noted in config.xml +// If only read-only access is necessary, +// tries instead to connect to if tag exists. +// DEPRECATED - use boinc_db.inc +// +function db_init($try_replica=false) { + check_web_stopped(); + $retval = db_init_aux($try_replica); + if ($retval == 1) { + echo tra("Unable to connect to database - please try again later"); + exit(); + } + if ($retval == 2) { + echo tra("Unable to select database - please try again later"); + exit(); + } + return 0; +} + +// return a structure indicating whether project has non-deprecated +// apps versions for various resource types, +// and with a count of app versions +// +function get_app_types() { + $t = new StdClass; + $t->cpu = false; + $t->cuda = false; + $t->ati = false; + $t->intel_gpu = false; + $t->count = 0; + $avs = BoincAppVersion::enum("deprecated=0"); + foreach ($avs as $av) { + if (strstr($av->plan_class, "ati")) { + $t->ati = true; + $t->count++; + } else if (strstr($av->plan_class, "cuda")) { + $t->cuda = true; + $t->count++; + } else if (strstr($av->plan_class, "nvidia")) { + $t->cuda = true; + $t->count++; + } else if (strstr($av->plan_class, "intel_gpu")) { + $t->intel_gpu = true; + $t->count++; + } else { + $t->cpu = true; + $t->count++; + } + } + return $t; +} + +// Functions to sanitize GET and POST args + +// "next_url" arguments (must be local, not full URLs) +// +function sanitize_local_url($x) { + $x = trim($x, "/"); + if (strstr($x, "/")) return ""; + if (strstr($x, "<")) return ""; + if (strstr($x, "\"")) return ""; + return $x; +} + +// strip HTML tags +// +function sanitize_tags($x) { + return strip_tags($x); +} + +function sanitize_numeric($x) { + if (is_numeric($x)) { + return $x; + } else if (trim($x) == '' ) { + return ''; + } else { + return "not numeric"; + } +} + +function sanitize_email($x) { + if (function_exists('filter_var')) { + return filter_var($x, FILTER_SANITIZE_EMAIL); + } else { + return strip_tags($x); + } +} + +function flops_to_credit($f) { + return $f*(200/86400e9); +} + +function credit_to_gflop_hours($c) { + return $c/(200/24); +} + +function do_download($path,$name="") { + if (strcmp($name,"") == 0) { + $name=basename($path); + } + header('Content-Description: File Transfer'); + header('Content-Type: application/octet-stream'); + header('Content-Disposition: attachment; filename='.$name); + header('Content-Transfer-Encoding: binary'); + header('Expires: 0'); + header('Cache-Control: must-revalidate, post-check=0, pre-check=0'); + header('Pragma: public'); + header('Content-Length: ' . filesize($path)); + flush(); + readfile($path); +} + +function redirect_to_secure_url($url) { + if (defined('SECURE_URL_BASE') + && strstr(SECURE_URL_BASE, "https://") + && (!isset($_SERVER['HTTPS']) || !$_SERVER['HTTPS']) + ) { + Header("Location: ".SECURE_URL_BASE."/$url"); + exit; + } +} + +function badges_string($is_user, $item, $height) { + if (DISABLE_BADGES) return null; + if ($is_user) { + $bus = BoincBadgeUser::enum("user_id=$item->id"); + } else { + $bus = BoincBadgeTeam::enum("team_id=$item->id"); + } + if (!$bus) return null; + $x = ""; + foreach ($bus as $bu) { + $badge = BoincBadge::lookup_id($bu->badge_id); + $x .= "title\" valign=top height=$height src=$badge->image_url> "; + } + return $x; +} + +function show_badges_row($is_user, $item) { + if (BADGE_HEIGHT_LARGE == 0) return; + $x = badges_string($is_user, $item, BADGE_HEIGHT_LARGE); + if ($x) { + row2("Badges", $x); + } +} + +function dtime() { + return microtime(true); +} + +// If this request is from a BOINC client, return its version as MMmmRR. +// Otherwise return 0. +// Format of user agent string is "BOINC client (windows_x86_64 7.3.17)" +// +function boinc_client_version(){ + if (!array_key_exists('HTTP_USER_AGENT', $_SERVER)) return 0; + $x = $_SERVER['HTTP_USER_AGENT']; + $e = "/BOINC client [^ ]* (\d+).(\d+).(\d+)\)/"; + if (preg_match($e, $x, $matches)) { + return $matches[1]*10000 + $matches[2]*100 + $matches[3]; + } + return 0; +} + +// output a script for counting chars left in text field +// +function text_counter_script() { + echo " + "; +} + +// return HTML for a textarea with chars-remaining counter. +// Call text_counter_script() before using this. +// +function textarea_with_counter($name, $maxlen, $text) { + $rem_name = $name."_remaining"; + return " +
    ".tra("characters remaining") + ; +} + +// convert number MMmmrr to string MM.mm.rr +// +function version_string_maj_min_rel($v) { + $maj = (int)($v/10000); + $v -= $maj*10000; + $min = (int)($v/100); + $v -= $min*100; + return sprintf("%d.%d.%d", $maj, $min, $v); +} + +function google_search_form($url) { + echo " + +
    + + + + +
    +
    + "; +} + +$cvs_version_tracker[]="\$Id$"; //Generated automatically - do not edit + +?> diff --git a/inc/util_basic.inc b/inc/util_basic.inc new file mode 100755 index 0000000..db090de --- /dev/null +++ b/inc/util_basic.inc @@ -0,0 +1,204 @@ +. + +// minimal set of utility functions, usable outside a BOINC project. +// Doesn't pull in translation.inc etc. + +$generating_xml = false; + +function project_dir() { + $d = dirname(__FILE__); + return "$d/"; +} + +function web_stopped() { + $d = project_dir(); + return file_exists("$d/stop_web"); +} + +function sched_stopped() { + $d = project_dir(); + return file_exists("$d/stop_sched"); +} + +function show_page($x, $y) { + echo " + $x +

    $x

    + $y + "; +} + +function xml_error($num, $msg=null, $file=null, $line=null) { + global $xml_outer_tag; + if (!$msg) { + switch($num) { + case -112: $msg = "Invalid XML"; break; + case -136: $msg = "Not found"; break; + case -137: $msg = "Name or email address is not unique"; break; + case -138: $msg = "Can't access database"; break; + case -183: $msg = "Project is temporarily offline"; break; + case -205: $msg = "Email address has invalid syntax"; break; + case -206: $msg = "Invalid password"; break; + case -207: $msg = "Email address is not unique"; break; + case -208: $msg = "Account creation is disabled"; break; + case -209: $msg = "Invalid invitation code"; break; + case -210: $msg = "Invalid request method"; break; + default: $msg = "Unknown error"; break; + } + } + echo " + $num + $msg +"; + if ($file) { + echo " $file\n"; + } + if ($line) { + echo " $line\n"; + } + echo "\n"; + if (isset($xml_outer_tag) && $xml_outer_tag != "") { + echo "\n"; + } + exit(); +} + +$g_config = null; +function get_config() { + global $g_config; + if ($g_config == null) { + $d = project_dir(); + $g_config = file_get_contents("$d/config.xml"); + } + return $g_config; +} + +// Look for an element in a line of XML text +// If it's a single-tag element, and it's present, just return the tag +// +function parse_element($xml, $tag) { + $element = null; + $closetag = "")) return $tag; + $y = substr($x, strlen($tag)); + $n = strpos($y, $closetag); + if ($n) { + $element = substr($y, 0, $n); + } + } + return trim($element); +} + +function parse_next_element($xml, $tag, &$cursor) { + $element = null; + $closetag = "")) return $tag; + $y = substr($x, strlen($tag)); + $n = strpos($y, $closetag); + if ($n) { + $element = substr($y, 0, $n); + } + $cursor = (strlen($xml) - strlen($x)) + strlen($tag) + strlen($closetag) + strlen($element); + } + return trim($element); +} + +// return true if XML contains either or 1 +// +function parse_bool($xml, $tag) { + $x = "<$tag/>"; + if (strstr($xml, $x)) return true; + $x = "<$tag>"; + $y = (int)parse_element($xml, $x); + if ($y != 0) return true; + return false; +} + +// look for a particular element in the config file +// +function parse_config($config, $tag) { + $element = parse_element($config, $tag); + return $element; +} + +function drand() { + return ((double)rand())/getrandmax(); +} + +// kludge +// +function is_gpu($plan_class) { + if (strstr($plan_class, "ati")) return true; + if (strstr($plan_class, "cuda")) return true; + if (strstr($plan_class, "nvidia")) return true; + if (strstr($plan_class, "intel_gpu")) return true; + return false; +} + +// the same as file_get_contents() but uses curl +// +function url_get_contents($url) { + $ch = curl_init($url); + curl_setopt($ch, CURLOPT_HEADER, false); + curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); + curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); + curl_setopt($ch, CURLOPT_MAXREDIRS, 5); + $content = curl_exec($ch); + curl_close($ch); + return $content; +} + +// Stuff related to password hashing. +// Originally we hashed with MD5. +// But MD5 is so fast that brute-force cracking would be easy +// for hackers who break into a project's server. +// So now we additionally hash with bcrypt, +// if available (PHP >= 5.5) via PHP's password_hash() function. +// +// So there are two levels of hash: +// +// hash_0: md5(password.email_addr) +// hash_1: password_hash(hash_0, PASSWORD_DEFAULT) +// +// hash_0 is what gets sent over the network, +// from the client and account manager RPCs. +// +// hash_1 is what gets stored in the DB +// except that hash_0 is stored in the DB if +// - the project has pre-5.5 PHP, or +// - the project hasn't run the update script (see below) +// +// It would be slightly more secure if hash_1 was used on the network. +// But that would require a client and account manager change, +// and it would require them to know whether the server has password_hash(). +// +// We supply a script update_password_hash.php. +// This changes the user table from hash_0 to hash_1. +// Projects can run it whenever they want; +// those using old PHP can wait until they upgrade PHP. +// +// To simplify the transition: +// - When we're authorizing a user, + +?> diff --git a/inc/util_ops.inc b/inc/util_ops.inc new file mode 100755 index 0000000..0787f98 --- /dev/null +++ b/inc/util_ops.inc @@ -0,0 +1,405 @@ +. + +error_reporting(E_ALL); +ini_set('display_errors', true); +ini_set('display_startup_errors', true); + +require_once("../inc/db_ops.inc"); +require_once("../inc/util.inc"); +require_once("../project/project.inc"); + +function admin_page_head($title) { + echo ""; + echo sprintf('%s + + + + + +
    +

    %s: %s

    + ', + $title, + secure_url_base(), + secure_url_base(), + PROJECT, + $title + ); + show_login_info(); + echo "

    "; +} + +function admin_page_tail() { + echo sprintf(' +


    Main page
    + + +
    + + + ', + secure_url_base(), + secure_url_base() + ); +} + +// TODO: get rid of all the following + +function print_checkbox($text,$name,$checked) { + echo "" + . "$text\n" + . "

    \n"; +} + +function print_radio_button($text,$name,$value,$checked) { + echo "" + . "$text\n" + . "
    \n"; +} + +function print_text_field($text,$name,$value) { + echo "$text \n" + . "

    \n"; +} + +function row($x, $y) { + echo "$x\n$y\n\n"; +} + +function c_row2($color, $x, $y) { + echo "$x$y\n"; +} + +function show_profile_link_ops($user) { + if ($user->has_profile) { + row2("Profile", + "id\">View" + ); + } +} + +// initialize database connection with username & password from +// command line instead of config.xml +// +function db_init_cli() { + $config = get_config(); + $db_name = parse_config($config, ""); + $host = parse_config($config, ""); + if ($host == null) { + $host = "localhost"; + } + $in = fopen("php://stdin","r"); + print "Database username (default: owner of mysqld process): "; + $user = rtrim(fgets($in, 80)); + print "Database password (if any): "; + $pass = rtrim(fgets($in, 80)); + + $retval = _mysql_connect($host, $user, $pass, $db_name); + if (!$retval) { + die("Can't connect to DB\n"); + } +} + +function print_login_form_ops($next_url='') { + if ($next_url == '') $next_url = $_SERVER['REQUEST_URI']; + start_table(); + echo " +

    + + "; + row2("Email", ""); + row2("Password", ""); + row2(tra("Stay logged in on this computer"), ''); + row2("", ""); + end_table(); +} + +function get_logged_in_user_ops() { + global $g_logged_in_user; + if ($g_logged_in_user) return $g_logged_in_user; + $authenticator = null; + if (isset($_COOKIE['auth'])) $authenticator = $_COOKIE['auth']; + + $authenticator = BoincDb::escape_string($authenticator); + if ($authenticator) { + $g_logged_in_user = BoincUser::lookup("authenticator='$authenticator'"); + } + return $g_logged_in_user; +} + +////////// functions for access control of admin web pages ///////////// + +// allow access only if logged in as user in a given set +// +function auth_ops_userid($admin_user_ids) { + $user = get_logged_in_user_ops(); + if (!$user) { + admin_page_head("Log in"); + echo "You must log in to performance admin functions.

    \n"; + print_login_form_ops(); + admin_page_tail(); + exit; + } else if (!in_array($user->id, $admin_user_ids)) { + admin_page_head("Log in"); + echo " + You must be logged in as an admin to perform admin functions. +

    + Log out + "; + admin_page_tail(); + exit; + } +} + +// allow access only to users with ADMIN/DEV flags in forum prefs. +// If you use this, make sure you know who has these privileges +// +function auth_ops_privilege() { + $user = get_logged_in_user_ops(); + if (!$user) { + admin_page_head("Log in"); + echo "You must log in to performance admin functions.

    \n"; + print_login_form_ops(); + admin_page_tail(); + exit; + } + BoincForumPrefs::lookup($user); + if ($user->prefs->privilege(S_ADMIN) || $user->prefs->privilege(S_DEV)) { + return; + } + error_page("Access denied"); +} + +// if project hasn't specified a policy in project.inc, +// and no .htaccess, don't allow access +// +if (!function_exists('auth_ops')) { + function auth_ops() { + if (!file_exists(".htaccess")) { + error_page(" + You must protect the admin interface + with either a .htaccess file or an auto_ops() function. +

    + See how here" + ); + } + } +} + +function admin_error_page($msg) { + admin_page_head("Unable to handle request"); + echo $msg; + admin_page_tail(); + exit; +} + +// given a list of app versions, +// return a list of the current, non-deprecated ones +// +function current_versions($avs) { + foreach($avs as $av) { + foreach ($avs as $av2) { + if ($av->id == $av2->id) continue; + if ($av->platformid == $av2->platformid && $av->plan_class == $av2->plan_class && $av->version_num > $av2->version_num) { + $av2->deprecated = 1; + } + } + } + $x = array(); + foreach($avs as $av) { + if (!$av->deprecated) $x[] = $av; + } + return $x; +} + +// cancel WUs with IDs in a given range. +// This means: +// +// - for any results w/ server state UNSENT, set server state to OVER +// - set the CANCELLED bit in workunit.error_mask +// +function cancel_wus($wuid1, $wuid2) { + $retval = BoincResult::update_aux("server_state=5, outcome=5 where server_state=2 and $wuid1<=workunitid and workunitid<=$wuid2"); + if (!$retval) { + error_page("Result update failed"); + } + $retval = BoincWorkunit::update_aux("error_mask=error_mask|16 where $wuid1<=id and id<=$wuid2"); + if (!$retval) { + error_page("Workunit update failed"); + } + + // trigger the transitioner (it will set file_delete_state) + + $now = time(); + $retval = BoincWorkunit::update_aux("transition_time=$now where $wuid1<=id and id<=$wuid2"); + return 0; +} + +// like above, but if a workunit has a result that's already sent, +// don't cancel the workunit +// +function cancel_wus_if_unsent($id1, $id2) { + $wus = BoincWorkunit::enum("id >= $id1 and id <= $id2"); + foreach ($wus as $wu) { + $results = BoincResult::enum("workunitid=$wu->id and server_state > 2"); + if (count($results)) continue; + $retval = BoincResult::update_aux("server_state=5, outcome=5 where workunitid=$wu->id"); + if (!$retval) { + error_page("result update failed"); + } + if (!$wu->update("error_mask=error_mask|16")) { + error_page("WU update failed"); + } + } + return 0; +} + +function app_version_desc($avid) { + switch ($avid) { + case ANON_PLATFORM_UNKNOWN: + return "Anonymous platform: unknown type"; + case ANON_PLATFORM_CPU: + return "Anonymous platform: CPU"; + case ANON_PLATFORM_NVIDIA: + return "Anonymous platform: NVIDIA GPU"; + case ANON_PLATFORM_ATI: + return "Anonymous platform: AMD GPU"; + case ANON_PLATFORM_INTEL: + return "Anonymous platform: Intel GPU"; + } + if ($avid <= 0) { + return "unknown: $avid"; + } + $av = BoincAppVersion::lookup_id($avid); + if ($av) { + $p = BoincPlatform::lookup_id($av->platformid); + if ($p) { + return sprintf("%.2f", $av->version_num/100)." $p->name [$av->plan_class]"; + } else { + return sprintf("%.2f", $av->version_num/100)." MISSING PLATFORM $av->platformid [$av->plan_class]"; + } + } else { + return "App version missing ($avid)"; + } +} + +////// badge-related stuff + +function get_badge($name, $title, $image_url) { + $b = BoincBadge::lookup("name='$name'"); + if ($b) return $b; + $now = time(); + $id = BoincBadge::insert("(create_time, name, title, image_url) values ($now, '$name', '$title', 'img/$image_url')"); + $b = BoincBadge::lookup_id($id); + if ($b) return $b; + die("can't create badge $name\n"); +} + +function assign_badge($is_user, $item, $badge) { + $now = time(); + if ($is_user) { + $bbu = BoincBadgeUser::lookup("user_id=$item->id and badge_id=$badge->id"); + if ($bbu) { + $bbu->update("reassign_time=$now where user_id=$item->id and badge_id=$badge->id"); + } else { + BoincBadgeUser::insert("(create_time, user_id, badge_id, reassign_time) values ($now, $item->id, $badge->id, $now)"); + } + } else { + $bbt = BoincBadgeTeam::lookup("team_id=$item->id and badge_id=$badge->id"); + if ($bbt) { + $bbt->update("reassign_time=$now where team_id=$item->id and badge_id=$badge->id"); + } else { + BoincBadgeTeam::insert("(create_time, team_id, badge_id, reassign_time) values ($now, $item->id, $badge->id, $now)"); + } + } +} + +// unassign all badges except the given one +// +function unassign_badges($is_user, $item, $badges, $k) { + $list = null; + for ($i=0; $iid and badge_id in ($list)"); + } else { + BoincBadgeTeam::delete("team_id=$item->id and badge_id in ($list)"); + } +} + +////// end badge-related stuff + +function running_from_web_server() { + return array_key_exists("SERVER_PORT", $_SERVER); +} + +if (isset($cli_only)) { + if (running_from_web_server()) { + die("This script is intended to be run from the command line, + not from the web server." + ); + } +} + +if (!isset($skip_auth_ops) && array_key_exists("SERVER_PORT", $_SERVER)) { + auth_ops(); +} + +// returns true when this is a readonly ops section +// currently a dummy because this needs to be ported from Einstein@home +// +function in_rops() { + return false; +} + +function cancel_wus_where($clause) { + $q1 = "CREATE TEMPORARY TABLE tmp SELECT id FROM workunit WHERE $clause;"; + $q2 = "UPDATE result r INNER JOIN tmp t on r.workunitid=t.id SET server_state=5, outcome=5 WHERE server_state=2;"; + $q3 = "UPDATE workunit w INNER JOIN tmp t on w.id=t.id SET error_mask=error_mask|16, transition_time=0;"; + $q4 = "DROP TABLE tmp;"; + + $db = BoincDb::get(); + + if (!$db->do_query($q1)) { + echo "MySQL command '$q1' failed:
    unable to create temporary WU id table.
    \n"; + return 1; + } else if (!$db->do_query($q2)) { + echo "MySQL command '$q2' failed:
    unable to cancel unsent results.
    \n"; + $db->do_query($q4); + return 2; + } else if (!$db->do_query($q3)) { + echo "MySQL command '$q3' failed:
    unable to cancel workunits and trigger transitioner.
    \n"; + $db->do_query($q4); + return 3; + } + $db->do_query($q4); + echo "Successfully canceled WUs WHERE '$clause'
    \n"; + return 0; +} + +?> diff --git a/inc/wap.inc b/inc/wap.inc new file mode 100755 index 0000000..04b30ab --- /dev/null +++ b/inc/wap.inc @@ -0,0 +1,38 @@ +. + +// BOINC WAP functions + +function wap_begin() { + header("Content-type: text/vnd.wap.wml"); + header("Expires: Thu, 01 Jan 1970 00:00:00 GMT"); + + echo "" + . "" + . "

    "; +} + +function wap_end() { + echo "

    "; +} + +function wap_timestamp() { + return gmdate('j M Y G:i:s', time()) . " UTC"; +} +?> diff --git a/inc/web_rpc_api.inc b/inc/web_rpc_api.inc new file mode 100755 index 0000000..0587c61 --- /dev/null +++ b/inc/web_rpc_api.inc @@ -0,0 +1,119 @@ +. + +// PHP interfaces to some of BOINC's Web RPCs + +// my PHP currently doesn't support file_get_contents(https://...) +// so do it with Curl +// +function fetch_url($url) { + if (0) { + return file_get_contents($url); + } else { + $ch = curl_init(); + curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); + curl_setopt($ch, CURLOPT_URL, $url); + curl_setopt($ch, CURLOPT_HEADER, 0); + + $x = curl_exec($ch); + curl_close($ch); + //echo "curl return: $x\n"; + return $x; + } +} + +function lookup_account( + $project_url, + $email_addr, + $passwd_hash +) { + $url = $project_url."/lookup_account.php?email_addr=".urlencode($email_addr)."&passwd_hash=$passwd_hash"; + $reply = fetch_url($url); + if (!$reply) { + return array(null, -1, "HTTP error to $url"); + } + $r = @simplexml_load_string($reply); + if (!$r) { + return array(null, -1, "Can't parse reply XML:\n$reply"); + } + $auth = (string)$r->authenticator; + if ($auth) { + return array($auth, 0, null); + } else { + return array(null, (int)$r->error_num, (string)$r->error_msg); + } +} + +// return (authenticator, errmsg) +// +function create_account( + $project_url, + $email_addr, + $passwd_hash, + $user_name +) { + $url = $project_url."/create_account.php?email_addr=".urlencode($email_addr)."&passwd_hash=$passwd_hash&user_name=".urlencode($user_name); + + $reply = fetch_url($url); + if (!$reply) return array(null, -1, "HTTP error to $url"); + + $r = @simplexml_load_string($reply); + if (!$r) { + // old server code returns PHP warnings, which break XML. + // do ad-hoc parsing instead + // + $auth = parse_element($reply, ""); + if ($auth) { + return array($auth, 0, null); + } + $error_num = parse_element($reply, ""); + $error_msg = parse_element($reply, ""); + if ($error_num) { + return array(null, $error_num, $error_msg); + } + return array(null, -1, "Can't parse reply XML:\n$reply"); + } + $auth = (string)$r->authenticator; + if ($auth) { + return array($auth, 0, null); + } else { + return array(null, (int)$r->error_num, (string)$r->error_msg); + } +} + +function example1() { + $x = create_account( + "http://isaac.ssl.berkeley.edu/test/", + "john@a.b.c", + "12345678901234567890123456789012", + "John Doe" + ); + print_r($x); +} + +function example2() { + $x = lookup_account( + "http://isaac.ssl.berkeley.edu/test/", + "davea@ssl.berkeley.edu", + "xxx" + ); + print_r($x); +} + +//example2(); +?> diff --git a/inc/xml.inc b/inc/xml.inc new file mode 100755 index 0000000..c7e5485 --- /dev/null +++ b/inc/xml.inc @@ -0,0 +1,161 @@ +. + +require_once("../inc/boinc_db.inc"); +require_once("../inc/util.inc"); +require_once("../inc/common_defs.inc"); +require_once("../project/project.inc"); + +function db_init_xml() { + if (web_stopped()) { + return ERR_PROJECT_DOWN; + } + $db = BoincDb::get(); + if (!$db) return ERR_DB_CANT_CONNECT; + return 0; +} + +// write PHP warnings as XML, so that the reply can be parsed by client +// +function error_handler($errno, $errstr, $errfile, $errline) { + if ($errno == E_WARNING) $errno = "Warning"; + if ($errno == E_NOTICE) $errno = "Notice"; + echo " + + $errno + $errfile + $errline + +"; +} + + +function xml_header() { + global $generating_xml; + if (defined("RPC_DEBUG") && RPC_DEBUG) { + set_error_handler('error_handler', E_WARNING|E_NOTICE); + } + header('Content-type: text/xml'); + echo "\n"; + $generating_xml = true; +} + +$xml_outer_tag = ""; + +function xml_start_tag($tag) { + global $xml_outer_tag; + echo "<$tag>\n"; + $xml_outer_tag = $tag; +} + +// used only if host owner is the requesting user +// +function show_host_xml($host) { + echo " + $host->id + $host->create_time + $host->rpc_seqno + $host->rpc_time + $host->host_cpid + $host->total_credit + $host->expavg_credit + $host->expavg_time + $host->domain_name + $host->p_ncpus + $host->p_vendor + $host->p_model + $host->p_fpops + $host->p_iops + $host->os_name + $host->os_version + $host->m_nbytes + $host->d_free + $host->d_total + $host->venue + +"; +} + +// $show_hosts is true only if $user is the logged-in user +// +function show_user_xml($user, $show_hosts) { + $cpid = md5($user->cross_project_id.$user->email_addr); + $url = normalize_user_url($user->url); + echo " + $user->id + $cpid + $user->create_time + ".htmlspecialchars($user->name)." + $user->country + $user->total_credit + $user->expavg_credit + $user->expavg_time + $user->teamid + ".htmlspecialchars($url)." + $user->has_profile +"; + if ($show_hosts) { + $hosts = BoincHost::enum("userid=$user->id"); + echo " $user->venue\n"; + foreach ($hosts as $host) { + show_host_xml($host); + } + } +echo" +"; +} + +function show_team_member($user, $creditonly = false) { + if ($creditonly && !$user->total_credit) { return; } + $cpid = md5($user->cross_project_id.$user->email_addr); + $url = normalize_user_url($user->url); + echo " + $user->id + $cpid + $user->total_credit"; + if (!$creditonly) { + echo " $user->create_time + ".htmlspecialchars($user->name)." + $user->country + $user->expavg_credit + $user->expavg_time + ".htmlspecialchars($url)." + $user->has_profile +"; + } + echo " +"; +} + +function show_team_xml($team) { + echo " + $team->id + $team->create_time + $team->userid + ".htmlspecialchars($team->name)." + ".htmlspecialchars($team->url)." + $team->type + $team->country + $team->total_credit + $team->expavg_credit + $team->expavg_time + +"; +} + +?> diff --git a/languages/compiled/az.po.inc b/languages/compiled/az.po.inc new file mode 100755 index 0000000..ae081df --- /dev/null +++ b/languages/compiled/az.po.inc @@ -0,0 +1,1490 @@ +\nPOT-Creation-Date: 2018-01-17 16:06 UTC\nPO-Revision-Date: 2018-01-17 16:10+0000\nLast-Translator: Christian Beer \nLanguage-Team: Azerbaijani (http://www.transifex.com/boinc/boinc/language/az/)\nMIME-Version: 1.0\nContent-Type: text/plain; charset=UTF-8\nContent-Transfer-Encoding: 8bit\nLanguage: az\nPlural-Forms: nplurals=2; plural=(n != 1);\nX-Poedit-SourceCharset: utf-8\n"; +$language_lookup_array["az"]["LANG_NAME_NATIVE"] = "Azərbaycanca"; +$language_lookup_array["az"]["LANG_NAME_INTERNATIONAL"] = "Azerbaijani"; +$language_lookup_array["az"]["An invitation code is required to create an account."] = "Hesab yaratmaq üçün dəvətnamə tələb olunur."; +$language_lookup_array["az"]["Identifies you on our web site. Use your real name or a nickname."] = "Sizi veb-saytımızda müəyyənləşdirir. Real adınızı və ya ləqəbinizi istifadə edin."; +$language_lookup_array["az"]["Screen name"] = "Ekran adı"; +$language_lookup_array["az"]["Must be a valid address of the form 'name@domain'."] = "Formanın 'ad@domain' etibarlı ünvanı olmalıdır."; +$language_lookup_array["az"]["Email address"] = "E-poçt ünvanı"; +$language_lookup_array["az"]["Must be at least %1 characters"] = "Ən az% 1 simvol olmalıdır"; +$language_lookup_array["az"]["Password"] = "Şifrə"; +$language_lookup_array["az"]["Confirm password"] = "Şifrəni təstiqlə"; +$language_lookup_array["az"]["Select the country you want to represent, if any."] = "Əgər varsa təmsil etmək istədiyiniz ölkəni seçin."; +$language_lookup_array["az"]["Country"] = "Ölkə"; +$language_lookup_array["az"]["Postal or ZIP Code"] = "Poçt kodu və ya ZIP Kodu"; +$language_lookup_array["az"]["Optional"] = "İstəkdən asılı olaraq"; +$language_lookup_array["az"]["Email address:"] = "E-poçt ünvanı:"; +$language_lookup_array["az"]["Password:"] = "Şifrə:"; +$language_lookup_array["az"]["forgot password?"] = "Şifrəni unutmusunuz?"; +$language_lookup_array["az"]["Stay logged in"] = "Daxil olun"; +$language_lookup_array["az"]["Bold text: [b]text[/b] (alt+b)"] = "Bold text: [b]text[/b] (alt+b)"; +$language_lookup_array["az"]["Italic text: [i]text[/i] (alt+i)"] = "İtalik mətn: [i] mətn [/ i] (alt + i)"; +$language_lookup_array["az"]["Underline text: [u]text[/u] (alt+u)"] = "Çəkilən mətn: [u] mətn [/ u] (alt + u)"; +$language_lookup_array["az"]["Strikethrough text: [s]text[/s] (alt+k)"] = "Lətif mətn: [s] mətn [/ s] (alt + k)"; +$language_lookup_array["az"]["Quote text: [quote]text[/quote] (alt+q)"] = "Sitat gətirən mətn: [quote] mətn [/ quote] (alt + q)"; +$language_lookup_array["az"]["Code display: [code]code[/code] (alt+c)"] = "Kod görünüşü: [kod] kodu [/ code] (alt + c)"; +$language_lookup_array["az"]["List: [list]text[/list] (alt+l)"] = "CodList: [list] mətni [/ list] (alt + l)"; +$language_lookup_array["az"]["Ordered list: [list=1]text[/list] (alt+o)"] = "Sifariş olunan siyahı: [list = 1] mətn [/ list] (alt + o)"; +$language_lookup_array["az"]["Insert image: [img]http://image_url[/img] (alt+p)"] = "Şəkil əlavə edin: [img]http://image_url[/img] (alt + p)"; +$language_lookup_array["az"]["Insert URL: [url]http://url[/url] or [url=http://url]URL text[/url] (alt+w)"] = "URL əlavə edin: [url]http://url[/url] və ya [url=http://url]URL mətni [/url] (alt + w)"; +$language_lookup_array["az"]["Font color"] = "Font rəngi"; +$language_lookup_array["az"]["Font color: [color=red]text[/color] Tip: you can also use color=#FF0000"] = "Yazı tipi rəngi: [color = red] text [/ color] İpucu: color = # FF0000 istifadə edə bilərsiniz"; +$language_lookup_array["az"]["Default"] = "Default"; +$language_lookup_array["az"]["Dark Red"] = "Tünd qırmızı"; +$language_lookup_array["az"]["Red"] = "Qırmızı"; +$language_lookup_array["az"]["Orange"] = "Narıncı"; +$language_lookup_array["az"]["Brown"] = "Qəhvəyi"; +$language_lookup_array["az"]["Yellow"] = "Sarı"; +$language_lookup_array["az"]["Green"] = "Yaşıl"; +$language_lookup_array["az"]["Olive"] = "Zeytun yaşılı"; +$language_lookup_array["az"]["Cyan"] = "Mavi"; +$language_lookup_array["az"]["Blue"] = "Mavi"; +$language_lookup_array["az"]["Dark Blue"] = "Tünd mavi"; +$language_lookup_array["az"]["Indigo"] = "İndiqo"; +$language_lookup_array["az"]["Violet"] = "Bənövşəyi"; +$language_lookup_array["az"]["Font size"] = "Font ölçüsü"; +$language_lookup_array["az"]["Font size: [size=x-small]small text[/size]"] = "Font ölçüsü: [ölçüsü = x-kiçik] kiçik mətn [/ size]"; +$language_lookup_array["az"]["Small"] = "Kiçik"; +$language_lookup_array["az"]["Normal"] = "Normal"; +$language_lookup_array["az"]["Large"] = "Böyük"; +$language_lookup_array["az"]["Close all open bbCode tags"] = "Bütün açıq bbCode etiketlərini bağlayın"; +$language_lookup_array["az"]["Close Tags"] = "Etiketləri bağla"; +$language_lookup_array["az"]["Account"] = "Hesab"; +$language_lookup_array["az"]["Join"] = "Qoşulun"; +$language_lookup_array["az"]["Preferences"] = "Nizamlamalar"; +$language_lookup_array["az"]["About %1"] = "% 1c haqqında"; +$language_lookup_array["az"]["Help"] = "Yardım"; +$language_lookup_array["az"]["Project"] = "Layihə"; +$language_lookup_array["az"]["Participate"] = "Qoşulun"; +$language_lookup_array["az"]["Do work"] = "İşləyin"; +$language_lookup_array["az"]["Server status"] = "Server statusu"; +$language_lookup_array["az"]["Statistics"] = "Statistika"; +$language_lookup_array["az"]["Applications"] = "Proqramlar"; +$language_lookup_array["az"]["Participants"] = "İştirakçılar"; +$language_lookup_array["az"]["Computers"] = "Kompyuterlər"; +$language_lookup_array["az"]["Teams"] = "Komandalar"; +$language_lookup_array["az"]["GPU models"] = "GPU modelləri"; +$language_lookup_array["az"]["CPU models"] = "GPU modelləri"; +$language_lookup_array["az"]["Computing"] = "Hesabların yerinə yetirilməsi"; +$language_lookup_array["az"]["Community"] = "İcma"; +$language_lookup_array["az"]["Message boards"] = "Mesaj panoları"; +$language_lookup_array["az"]["create or join a team"] = "Bir qrup yarat və ya qoşul"; +$language_lookup_array["az"]["Profiles"] = "Profillər"; +$language_lookup_array["az"]["User search"] = "İstifadəçi axtarışı"; +$language_lookup_array["az"]["User of the day"] = "Günün istifadəçisi"; +$language_lookup_array["az"]["Certificate"] = "Sertifikat"; +$language_lookup_array["az"]["Site"] = "Sayt"; +$language_lookup_array["az"]["Site search"] = "Saytın axtarışı"; +$language_lookup_array["az"]["Languages"] = "Dillər"; +$language_lookup_array["az"]["Oldest first"] = "Ən qədim ilk"; +$language_lookup_array["az"]["Newest first"] = "Ən yeni"; +$language_lookup_array["az"]["Highest rated posts first"] = "Ən yüksək qiymətləndirilən mesajlar ilkdir"; +$language_lookup_array["az"]["Newest post first"] = "Əvvəlcə yeni yazı"; +$language_lookup_array["az"]["Most views first"] = "Bir çoxu əvvəlcə nəzərdən keçirir"; +$language_lookup_array["az"]["Most posts first"] = "Ən çox mesajlar ilkdir"; +$language_lookup_array["az"]["Volunteer moderator"] = "Könüllü moderator"; +$language_lookup_array["az"]["Project administrator"] = "Layihə administratoru"; +$language_lookup_array["az"]["Project developer"] = "Layihə idarə edici"; +$language_lookup_array["az"]["Project tester"] = "Layihə testi"; +$language_lookup_array["az"]["Volunteer developer"] = "Könüllü idarə edici"; +$language_lookup_array["az"]["Volunteer tester"] = "Könüllü test cihazı"; +$language_lookup_array["az"]["Project scientist"] = "Layihə alimidir"; +$language_lookup_array["az"]["Help desk expert"] = "Məsləhətçinin köməkçisi"; +$language_lookup_array["az"]["Search for words in forum messages"] = "Forumdakı mesajlarda sözləri axtarın"; +$language_lookup_array["az"]["Search forums"] = "Forumları axtar"; +$language_lookup_array["az"]["Advanced search"] = "Ətraflı axtarış"; +$language_lookup_array["az"]["Private messages"] = "Şəxsi mesajlar"; +$language_lookup_array["az"]["Questions and Answers"] = "Suallar və cavablar"; +$language_lookup_array["az"]["%1 message board"] = "% 1 mesaj paneli"; +$language_lookup_array["az"]["Previous"] = "Əvvəlki"; +$language_lookup_array["az"]["Next"] = "Sonrakı"; +$language_lookup_array["az"]["Author"] = "Müəllif"; +$language_lookup_array["az"]["Message"] = "Mesaj"; +$language_lookup_array["az"]["Send message"] = "Mesaj göndər"; +$language_lookup_array["az"]["Send %1 a private message"] = "% 1-ə xüsusi mesaj göndər"; +$language_lookup_array["az"]["Joined: %1"] = "Qeyd:% 1"; +$language_lookup_array["az"]["Posts: %1"] = "Mesajlar:% 1"; +$language_lookup_array["az"]["Credit: %1"] = "Kredit: %1"; +$language_lookup_array["az"]["RAC: %1"] = "RAC:% 1"; +$language_lookup_array["az"]["You haven't read this message yet"] = "Bu mesajı hələ oxumadınız"; +$language_lookup_array["az"]["Unread"] = "Oxunmamış"; +$language_lookup_array["az"]["Message %1"] = "Mesaj %1"; +$language_lookup_array["az"]["hidden"] = "gizli"; +$language_lookup_array["az"]["Posted: %1"] = "Göndərildi:% 1"; +$language_lookup_array["az"][" - in response to "] = "- cavab olaraq"; +$language_lookup_array["az"]["Edit"] = "Düzəlt"; +$language_lookup_array["az"]["Edit this message"] = "Bu mesajı redaktə edin"; +$language_lookup_array["az"]["Last modified: %1"] = "Son dəyişiklik:% 1"; +$language_lookup_array["az"]["This post is hidden because the sender is on your 'ignore' list. Click %1 here %2 to view hidden posts"] = "Bu yazı gizlənir, çünki göndərən \"laqeyd\" siyahısında. Gizli mesajları keçirmək üçün% 1-in% 2-i basın"; +$language_lookup_array["az"]["Report this post as offensive"] = "Bu vəzifəni təhqiramiz hesab et"; +$language_lookup_array["az"]["Report as offensive"] = "Şikayət et"; +$language_lookup_array["az"]["Rating: %1"] = "Reytinq:% 1"; +$language_lookup_array["az"]["rate: "] = "Dərəcəsi:"; +$language_lookup_array["az"]["Click if you like this message"] = "Bu mesajı istəsəniz basın"; +$language_lookup_array["az"]["Rate +"] = "Rəy+"; +$language_lookup_array["az"]["Click if you don't like this message"] = "Bu mesajı sevməsəniz vurun"; +$language_lookup_array["az"]["Rate -"] = "- Rəy"; +$language_lookup_array["az"]["Reply"] = "Cavab ver"; +$language_lookup_array["az"]["Post a reply to this message"] = "Bu mesaja bir cavab göndərin"; +$language_lookup_array["az"]["Quote"] = "Sitat gətir"; +$language_lookup_array["az"]["Post a reply by quoting this message"] = "Bu mesajı istinadən cavabı göndərin"; +$language_lookup_array["az"]["Hidden by a moderator"] = "Bir moderator tərəfindən gizlənmişdir"; +$language_lookup_array["az"]["Posted %1 by %2"] = "% 1-dən% 2-ə buraxın"; +$language_lookup_array["az"]["You may not post or rate messages until %1"] = "% 1-ə qədər mesaj göndərə və ya dərəcəyə düşə bilməzsiniz"; +$language_lookup_array["az"]["Rules:"] = "Qaydalar:"; +$language_lookup_array["az"]["Unhide"] = "Gizlət"; +$language_lookup_array["az"]["Unhide this post"] = "Bu vəzifəni göstərin"; +$language_lookup_array["az"]["Hide"] = "Gizlət"; +$language_lookup_array["az"]["Hide this post"] = "Bu postu gizlət"; +$language_lookup_array["az"]["Move"] = "Köçür"; +$language_lookup_array["az"]["Move post to a different thread"] = "Mesajı fərqli bir mövzuya daşıyın"; +$language_lookup_array["az"]["Banish author"] = "Müəllifi qadağan et"; +$language_lookup_array["az"]["Vote to banish author"] = "Müəllifi tərk etmək üçün səs verin"; +$language_lookup_array["az"]["Vote not to banish author"] = "Müəllifi qovmaq üçün səs verməyin"; +$language_lookup_array["az"]["Start vote to banish author"] = "Müəllifi tərk etmək üçün səs verməyə başlayın"; +$language_lookup_array["az"]["Delete"] = "Sil"; +$language_lookup_array["az"]["Delete this post"] = "Bu postu silin"; +$language_lookup_array["az"]["Only team members can post to the team message board"] = "Yalnız komanda üzvləri komanda mesaj panelinə göndərə bilər"; +$language_lookup_array["az"]["To create a new thread in %1 you must have a certain level of average credit. This is to protect against abuse of the system."] = "% 1-də yeni bir mövzu yaratmaq üçün müəyyən dərəcədə orta səviyyəli kredit olmalıdır. Bu, sistemin sui-istifadəsinə qarşı qorunmaqdır."; +$language_lookup_array["az"]["You cannot create threads right now. Please wait before trying again. This is to protect against abuse of the system."] = "Hazırda mövzuları yarada bilməzsiniz. Yenidən cəhddən əvvəl gözləyin. Bu, sistemin sui-istifadəsinə qarşı qorunmaqdır."; +$language_lookup_array["az"]["This thread is locked. Only forum moderators and administrators are allowed to post there."] = "Bu mövzu kilidlənib. Orada yerləşdirmək üçün yalnız forum moderatorları və administratorları icazə verilir."; +$language_lookup_array["az"]["Can't post to a hidden thread."] = "Gizli bir mövzuya yazıla bilmir."; +$language_lookup_array["az"]["Thread"] = "Yeni mövzu"; +$language_lookup_array["az"]["Posts"] = "Mesajlar"; +$language_lookup_array["az"]["Views"] = "Baxışlar"; +$language_lookup_array["az"]["Last post"] = "Son mesaj"; +$language_lookup_array["az"]["New posts in the thread %1"] = "% 1 mövzu içində yeni yazılar"; +$language_lookup_array["az"]["New posts in subscribed thread"] = "Abunə edilən mövzudakı yeni yazılar"; +$language_lookup_array["az"]["There are new posts in the thread '%1'"] = "'% 1' iş parçacığında yeni yazı var"; +$language_lookup_array["az"]["Mark all threads as read"] = "Bütün mövzuları oxunduğu kimi qeyd edin"; +$language_lookup_array["az"]["Mark all threads in all message boards as read."] = "Bütün mesaj panellərindəki bütün mövzuları oxuduğu kimi qeyd edin."; +$language_lookup_array["az"]["No host"] = "Server yoxdur"; +$language_lookup_array["az"]["Unavailable"] = "Mövcud deyil"; +$language_lookup_array["az"]["Home"] = "Ev"; +$language_lookup_array["az"]["Work"] = "İş"; +$language_lookup_array["az"]["School"] = "Məktəb"; +$language_lookup_array["az"]["Update location"] = "Yerini yeniləyin"; +$language_lookup_array["az"]["Computer information"] = "Kompyuter məlumatə"; +$language_lookup_array["az"]["IP address"] = "IP ünvanı"; +$language_lookup_array["az"]["(same the last %1 times)"] = "(eyni zamanda son 1 dəfə)"; +$language_lookup_array["az"]["External IP address"] = "Xarici IP ünvanı"; +$language_lookup_array["az"]["Show IP address"] = "IP ünvanı göstər"; +$language_lookup_array["az"]["Domain name"] = "Domen adı"; +$language_lookup_array["az"]["Product name"] = "Məhsul adı"; +$language_lookup_array["az"]["Local Standard Time"] = "Yerli Standart Saat"; +$language_lookup_array["az"]["UTC %1 hours"] = "UTC %1 saat"; +$language_lookup_array["az"]["Owner"] = "Sahibi"; +$language_lookup_array["az"]["Anonymous"] = "Anonim"; +$language_lookup_array["az"]["Created"] = "Yaradıldı"; +$language_lookup_array["az"]["Total credit"] = "Ümumi kredit"; +$language_lookup_array["az"]["Average credit"] = "Ortalama kredit"; +$language_lookup_array["az"]["Cross project credit"] = "Kredit layihəsi"; +$language_lookup_array["az"]["CPU type"] = "CPU tipi"; +$language_lookup_array["az"]["Number of processors"] = "Prosessorların sayı"; +$language_lookup_array["az"]["Coprocessors"] = "Maşınqayırmaçılar"; +$language_lookup_array["az"]["Operating System"] = "Əməliyyat sistemi"; +$language_lookup_array["az"]["BOINC version"] = "BOINC versiyası"; +$language_lookup_array["az"]["Memory"] = "Yaddaş"; +$language_lookup_array["az"]["%1 GB"] = "%1 GB"; +$language_lookup_array["az"]["Cache"] = "Gizli yer"; +$language_lookup_array["az"]["%1 KB"] = "%1 KB"; +$language_lookup_array["az"]["Swap space"] = "virtual yaddaş"; +$language_lookup_array["az"]["Total disk space"] = "Ümumi disk sahəsi"; +$language_lookup_array["az"]["Free Disk Space"] = "Boş disk yeri"; +$language_lookup_array["az"]["Measured floating point speed"] = "Ölçülən hərək edən nöqtənin sürəti"; +$language_lookup_array["az"]["%1 billion ops/sec"] = "1 milyard ops / san"; +$language_lookup_array["az"]["Measured integer speed"] = "Ölçülmüş tamsayı sürəti"; +$language_lookup_array["az"]["Average upload rate"] = "Orta yükləmə dərəcəsi"; +$language_lookup_array["az"]["%1 KB/sec"] = "%1 KB/san"; +$language_lookup_array["az"]["Unknown"] = "Naməlum"; +$language_lookup_array["az"]["Average download rate"] = "Orta yükləmə dərəcəsi"; +$language_lookup_array["az"]["Average turnaround time"] = "Orta dövr müddəti"; +$language_lookup_array["az"]["%1 days"] = "%1 gün"; +$language_lookup_array["az"]["Application details"] = "Tətbiq məlumatları"; +$language_lookup_array["az"]["Show"] = "Göstər"; +$language_lookup_array["az"]["Tasks"] = "Tapşırıqlar"; +$language_lookup_array["az"]["Number of times client has contacted server"] = "Müraciət edən server sayı ilə əlaqə saxladı"; +$language_lookup_array["az"]["Last time contacted server"] = "Son dəfə əlaqəli server"; +$language_lookup_array["az"]["Fraction of time BOINC is running"] = "BOINC-in faizi qaçır"; +$language_lookup_array["az"]["While BOINC is running, fraction of time computer has an Internet connection"] = "BOINC işləyərkən, vaxt kompyuterinin bir hissəsi İnternet bağlantısına malikdir"; +$language_lookup_array["az"]["While BOINC is running, fraction of time computing is allowed"] = "BOINC işləyərkən, vaxt hesablamasının bölüşdürülməsinə icazə verilir"; +$language_lookup_array["az"]["While is BOINC running, fraction of time GPU computing is allowed"] = "BOINC işləyərkən, zaman GPU hesablama hissəsinə icazə verilir"; +$language_lookup_array["az"]["Average CPU efficiency"] = "Orta CPU effektivliyi"; +$language_lookup_array["az"]["Task duration correction factor"] = "Vəzifə müddəti düzəliş faktoru"; +$language_lookup_array["az"]["Location"] = "Yerləşmə"; +$language_lookup_array["az"]["Delete this computer"] = "Bu kompyuteri silin"; +$language_lookup_array["az"]["Merge duplicate records of this computer"] = "Bu kompyuterin dublikat qeydlərini birləşdirin"; +$language_lookup_array["az"]["Merge"] = "Birləşdir"; +$language_lookup_array["az"]["Last contact"] = "Son əlaqə"; +$language_lookup_array["az"]["Computer info"] = "Kompyuter məlumatları"; +$language_lookup_array["az"]["Rank"] = "Sıra"; +$language_lookup_array["az"]["Avg. credit"] = "Ort. Kredit"; +$language_lookup_array["az"]["Recent average credit"] = "Son ortalama kredit"; +$language_lookup_array["az"]["CPU"] = "Prosessor"; +$language_lookup_array["az"]["GPU"] = "GPU"; +$language_lookup_array["az"]["Operating system"] = "Əməliyyat sistemi"; +$language_lookup_array["az"]["(%1 processors)"] = "(% 1 işləmci)"; +$language_lookup_array["az"]["Details"] = "Detallar"; +$language_lookup_array["az"]["Cross-project stats:"] = "Çapraz layihə statsları:"; +$language_lookup_array["az"]["Host %1 has overlapping lifetime:"] = "Server % 1 örtülü ömrü var:"; +$language_lookup_array["az"]["Host %1 has an incompatible OS:"] = "Server % 1 uyğun olmayan bir əməliyyat sistemi var:"; +$language_lookup_array["az"]["Host %1 has an incompatible CPU:"] = "Server % 1 uyğun olmayan bir CPU var:"; +$language_lookup_array["az"]["same host"] = "eyni server"; +$language_lookup_array["az"]["Can't merge host %1 into %2 - they're incompatible"] = "Server % 1-i% 2-ə birləşdirə bilmir - onlar uyğunsuzdurlar"; +$language_lookup_array["az"]["Merging host %1 into host %2"] = "Əsas% 1 ev sahibi% 2-ə birləşdirilir"; +$language_lookup_array["az"]["Couldn't update credit of new computer"] = "Yeni kompyuter kreditini güncəlləşdirmək mümkün olmadı"; +$language_lookup_array["az"]["Couldn't update results"] = "Nəticələri yeniləmədi"; +$language_lookup_array["az"]["Couldn't retire old computer"] = "Köhnə kompyuterin istifadə müddəti bitirilmədi"; +$language_lookup_array["az"]["Retired old computer %1"] = "Köhnə kompyuterin %1 istifadəsi dayandırıldı"; +$language_lookup_array["az"]["Show:"] = "Göstər:"; +$language_lookup_array["az"]["All computers"] = "Bütün kompyuterlər"; +$language_lookup_array["az"]["Only computers active in past 30 days"] = "Yalnız son 30 gündə aktiv olan kompyuterlər"; +$language_lookup_array["az"]["Computer ID"] = "Kompyuter ID"; +$language_lookup_array["az"]["Name"] = "Ad"; +$language_lookup_array["az"]["Model"] = "Model"; +$language_lookup_array["az"]["BOINC
    version"] = "BOINC
    versiyası"; +$language_lookup_array["az"]["Merge computers by name"] = "Kompyuterləri adı ilə birləşdirin"; +$language_lookup_array["az"]["Discuss"] = "Müzakirə edin"; +$language_lookup_array["az"]["News is available as an %sRSS feed%s"] = "Xəbərlər %s RSS feed %s kimi mövcuddur"; +$language_lookup_array["az"]["Inbox"] = "Gələnlər qutusu"; +$language_lookup_array["az"]["Write"] = "Yaz"; +$language_lookup_array["az"]["\n
      \n
    • Messages may not contain content that is obscene, hate-related,\n sexually explicit or suggestive.\n
    • No commercial advertisements.\n
    • No links to web sites involving sexual content,\n gambling, or intolerance of others.\n
    • No messages intended to annoy or antagonize other people.\n
    • No messages that are deliberately hostile, threatening, or insulting.\n
    • No abusive comments involving race, religion,\n nationality, gender, class or sexuality.\n
    • The privileges of violators may be suspended or revoked.\n
    • If your account is suspended, don't create a new one.\n
    \n "] = "\n