diff --git a/meson.build b/meson.build index eab700d7051356772d51d66f7e91742795962e70..20c58124dc427ba7da65e2b8200d41895eb25733 100644 --- a/meson.build +++ b/meson.build @@ -44,10 +44,14 @@ src = [ 'src/users/user_model.hpp', 'src/users/user_replay.cpp', 'src/users/user_replay.hpp', + 'src/users/user_windows.cpp', + 'src/users/user_windows.hpp', 'src/users/user_feedback.cpp', 'src/users/user_feedback.hpp', 'src/users/dynscheduler.cpp', 'src/users/dynscheduler.hpp', + 'src/users/log_user_stat.cpp', + 'src/users/log_user_stat.hpp', 'src/decision.cpp', 'src/decision.hpp', 'src/exact_numbers.hpp', diff --git a/src/users/broker.cpp b/src/users/broker.cpp index 569407eb3040ebb073568e21cabbeec6435131bb..4684564501d2b1246b934f3d4373f4f0925a16cd 100644 --- a/src/users/broker.cpp +++ b/src/users/broker.cpp @@ -5,6 +5,7 @@ #include <boost/format.hpp> #include <fstream> + #include "../pempek_assert.hpp" #include "rapidjson/rapidjson.h" #include <loguru.hpp> @@ -26,6 +27,8 @@ Broker::Broker(rapidjson::Document *user_description_file) = (*user_description_file)["core_limit_per_user"].GetInt(); // otherwise, initialized at std::numeric_limits<int>::max() } + + /* demand reponse related windows parsing */ if (user_description_file->HasMember("dm_window")) { const Value &dm_param = (*user_description_file)["dm_window"]; @@ -38,7 +41,47 @@ Broker::Broker(rapidjson::Document *user_description_file) dm_window = new DMWindow(dm_param.GetArray()[0].GetInt(), dm_param.GetArray()[1].GetInt()); } + if (user_description_file->HasMember("yellow_windows")){ + yellow_windows_list = parse_dm_windows( + "yellow_windows",user_description_file); + } + if (user_description_file->HasMember("red_windows")){ + red_windows_list = parse_dm_windows( + "red_windows",user_description_file); + } + + //seed parameter parsing + bool seed_defined = false; + if (user_description_file->HasMember("seed")){ + const Value &seed_param =(*user_description_file)["seed"]; + PPK_ASSERT_ERROR( seed_param.IsInt(), + "Invalid user_description file : field " + "'seed' should be a 32-bit integer" + ); + int seed = seed_param.GetInt(); + seed_generator = mt19937(seed); + seed_defined = true; + } + //logging info parsing + if(user_description_file->HasMember("log_user_stats")){ + PPK_ASSERT_ERROR((*user_description_file)["log_user_stats"].IsBool(), + "Invalid user_description file : field" + "'log_user_stats' should be a boolean"); + bool log_user_stats = (*user_description_file)["log_user_stats"].GetBool(); + if(log_user_stats){ + PPK_ASSERT_ERROR(user_description_file->HasMember("log_folder"), + "Invalid user_description file : field" + "'log_folder' should be defined with 'log_user_stats' "); + const Value &log_folder_param = (*user_description_file)["log_folder"]; + PPK_ASSERT_ERROR(log_folder_param.IsString(), + "Invalid user_description file : field" + " 'log_folder' should be a string "); + std::string log_folder = log_folder_param.GetString(); + logger_user_stat = new LoggerUserStat(log_folder); + + } + } PPK_ASSERT_ERROR(user_description_file->HasMember("users"), "Invalid user_description file: should have field 'users'."); const Value &users_json = (*user_description_file)["users"]; @@ -100,10 +143,25 @@ Broker::Broker(rapidjson::Document *user_description_file) else if (category == "dm_user_renonce") user = new DMUserRenonce(name, param, dm_window); - else // category == "dm_user_delay" + else // if (category == "dm_user_delay") user = new DMUserDelay(name, param, dm_window); + } + else if (category == "dm_user_multi_behavior"){ + PPK_ASSERT_ERROR( + dm_window || red_windows_list || yellow_windows_list, + "One of these 3 fields should be defined to use dm_user_multi_behavior" + " 'dm_windows' 'red_windows', 'yellow_windows' " + ); + PPK_ASSERT_ERROR( + seed_defined, + "No field 'seed' defined although dm_user_multi_behavior " + "needs it"); + user = new DMUserMultiBehavior(name, param, dm_window, + seed_generator(), yellow_windows_list, red_windows_list, + logger_user_stat); + } /* Feedback user */ else if (category == "fb_user_think_time_only") user = new FBUserThinkTimeOnly(name, param); @@ -243,6 +301,34 @@ void Broker::feedback_job_status(double date, user_queue.sort(CompareUsers()); } +DMWindow_list* Broker::parse_dm_windows(const std::string attr_name, + const rapidjson::Document *user_description_file) +{ + const Value &windows_param = (*user_description_file)[attr_name.c_str()]; + std::string error_message = "Invalid user_description file: field "; + error_message += attr_name; + error_message += " should be a non-empty array"; + PPK_ASSERT_ERROR(windows_param.IsArray() && windows_param.GetArray().Size()!=0, + error_message.c_str()); + error_message = "Invalid user_description file: the field "; + error_message += attr_name; + error_message += " should be an array of intervals (pairs of integers)."; + std::vector<DMWindow> windows_collect; + for (SizeType i = 0 ; i < windows_param.GetArray().Size(); i++) { + const Value &window = + (*user_description_file)[attr_name.c_str()].GetArray()[i]; + PPK_ASSERT_ERROR(window.IsArray() + && window.GetArray().Size()==2 + && window.GetArray()[0].IsInt() + && window.GetArray()[1].IsInt(), + error_message.c_str()); + DMWindow* dm_window = + new DMWindow(window.GetArray()[0].GetInt(), + window.GetArray()[1].GetInt()); + windows_collect.push_back(*dm_window); + } + return new DMWindow_list(windows_collect); +} void Broker::update_status_if_dyn_job( const string &job_id, JobStatus status) { @@ -298,15 +384,16 @@ void Broker::update_status_if_dyn_job( void Broker::log_user_stats(string log_folder) { - static int stat[10] = { 0 }; + static int stat[14] = { 0 }; int *dm_stat; for (auto it : users) { User *user = it.second; dm_stat = user->get_dm_stat(); - for (int i = 0; i < 10; i++) + for (int i = 0; i < 14; i++) stat[i] += dm_stat[i]; } + logger_user_stat->log_stat(); /* Write in file */ ofstream file(log_folder + "/user_stats.csv"); @@ -322,6 +409,10 @@ void Broker::log_user_stats(string log_folder) % stat[2 * DEGRADED + 1]; file << boost::format("reconf,%1%,%2%\n") % stat[2 * RECONF] % stat[2 * RECONF + 1]; + file << boost::format("consider degraded,%1%,%2%\n") % stat[2 * CONSIDER_DEGRADED] + % stat[2 * CONSIDER_DEGRADED + 1]; + file << boost::format("consider reconfig,%1%,%2%\n") % stat[2 * CONSIDER_RECONF] + % stat[2 * CONSIDER_RECONF + 1]; file.close(); } \ No newline at end of file diff --git a/src/users/broker.hpp b/src/users/broker.hpp index fe74c3a2029e9f83bc98a2b689c505e65a3d85c8..ea937afd98ac52431f98d487471001302eaff93a 100644 --- a/src/users/broker.hpp +++ b/src/users/broker.hpp @@ -2,19 +2,20 @@ #include "user_feedback.hpp" #include "user_model.hpp" #include "user_replay.hpp" - +#include "user_windows.hpp" #include <list> #include <map> #include <set> #include <string> #include <vector> - using namespace std; class Broker { public: Broker(rapidjson::Document *user_description_file); + DMWindow_list* parse_dm_windows(const std::string attr_name, + const rapidjson::Document *user_description_file); ~Broker(); /** @@ -46,6 +47,7 @@ public: void log_user_stats(string user_stat_file); void update_status_if_dyn_job(const string &job_id, JobStatus status); + private: map<string, User *> users; unsigned int core_limit_per_user = std::numeric_limits<int>::max(); @@ -53,11 +55,15 @@ private: map<string, shared_ptr<Job>> dynamic_jobs = map<string, shared_ptr<Job>>(); map<User *, list<shared_ptr<Job>>> users_to_wake = map<User *, list<shared_ptr<Job>>>(); - + LoggerUserStat *logger_user_stat = nullptr; private: /* Deterministic generation of seeds for users that use randomness */ mt19937 seed_generator = mt19937(1997); /* (Optional) The demand response window for the DM users */ DMWindow *dm_window = nullptr; + + /* (Optional) Red and Yellow windows for MultiBehavior DM users */ + DMWindow_list* red_windows_list=nullptr; + DMWindow_list* yellow_windows_list = nullptr; }; \ No newline at end of file diff --git a/src/users/log_user_stat.cpp b/src/users/log_user_stat.cpp new file mode 100644 index 0000000000000000000000000000000000000000..38b225a8e93d567e9cbeddfa1c448e8db4bf9dbd --- /dev/null +++ b/src/users/log_user_stat.cpp @@ -0,0 +1,78 @@ +#include "users/log_user_stat.hpp" +#include "../pempek_assert.hpp" +BehaviorStat::BehaviorStat( + shared_ptr<Job> job, std::string behavior_name, long time_delayed){ + this->job = job; + this->behavior_name = behavior_name; + this->time_delayed = time_delayed; +} + +std::vector<std::string> BehaviorStat::split_id(){ + std::string job_id = job->id; + std::vector<std::string> splitting; + splitting.push_back(""); + + for (std::string::size_type i = 0; i < job_id.length(); i++){ + if (job_id[i] == '!'){ + splitting.push_back(""); + } + else{ + splitting.back() += job_id[i]; + } + } + + return splitting; +} +boost::basic_format<char> BehaviorStat::format(){ + std::vector<std::string> splitting = split_id(); + PPK_ASSERT_ERROR(splitting.size() >= 2, + "Error logging the job behavior the job_id should be of the format" + " user_id!job_id"); + return boost::format("%1%,%2%,%3%,%4%,%5%\n") % splitting[0] % splitting[1] + % job->submission_time % behavior_name % time_delayed; +} + +LoggerUserStat::LoggerUserStat(std::string log_folder){ + this->log_folder = log_folder; + put_header = true; + write_threshold = 4096; +} + +void LoggerUserStat::add_stat( + shared_ptr<Job> job, std::string behavior_name, long time_delayed){ + BehaviorStat to_add = BehaviorStat(job, behavior_name, time_delayed); + behaviors.push_back(to_add); + if (behaviors.size() >= write_threshold){ + log_stat(); + } +} + +void LoggerUserStat::log_stat(){ + /** + * This functions write log in the csv format the behaviors recorded in + * the vector behaviors + */ + + std::ofstream file; + + + if (put_header){ + /* first time we log we add the header and erase previous log */ + file.open(log_folder + "/user_stats_behaviors.csv"); + file << "user,job_id,submission_time,behavior_name,time_delayed\n"; + put_header = false; + } + else{ + /* after the first time we log we append the data to the file */ + file.open(log_folder + "/user_stats_behaviors.csv", + std::ofstream::out | std::ofstream::app); + } + + /* We write the content in the vector to the disk and then free the vector */ + for (std::vector<BehaviorStat>::size_type i = 0; i < behaviors.size(); i++){ + BehaviorStat read_behavior = behaviors[i]; + file << read_behavior.format(); + } + behaviors.clear(); + file.close(); +} \ No newline at end of file diff --git a/src/users/log_user_stat.hpp b/src/users/log_user_stat.hpp new file mode 100644 index 0000000000000000000000000000000000000000..5d6ed21c231055570c37bbacaaa38ed0c502edd2 --- /dev/null +++ b/src/users/log_user_stat.hpp @@ -0,0 +1,34 @@ +#pragma once + +#include "json_workload.hpp" +#include <boost/format.hpp> +#include <fstream> +/** + * library dedicated to logging user_behavior + */ +using namespace std; + +struct BehaviorStat { + shared_ptr <Job> job; + std::string behavior_name; + long time_delayed; + + BehaviorStat(shared_ptr <Job> job, + std::string behavior_name, long time_delayed); + std::vector <std::string> split_id(); + boost::basic_format<char> format(); +}; + +class LoggerUserStat { +public: + LoggerUserStat(std::string log_folder); + void add_stat(shared_ptr <Job> job, + std::string behavior_name, long time_delayed); + void log_stat(); + +protected: + bool put_header; + std::vector<BehaviorStat>::size_type write_threshold; + std::string log_folder; + std::vector <BehaviorStat> behaviors; +}; \ No newline at end of file diff --git a/src/users/user_replay.cpp b/src/users/user_replay.cpp index 317497b9f0fd4095492957a65e3691c4db4b1151..bc5059dba11ff498249581b1630d9bc97b573d43 100644 --- a/src/users/user_replay.cpp +++ b/src/users/user_replay.cpp @@ -5,8 +5,7 @@ ******************************* Replay users ********************************* *****************************************************************************/ /* Master class ReplayUser */ -void ReplayUser::init_ReplayUser( - std::string name, const rapidjson::Value ¶m) +void ReplayUser::init_ReplayUser(std::string name, const rapidjson::Value ¶m) { /* Parse some info from the json */ PPK_ASSERT_ERROR(param.HasMember("input_json"), @@ -234,6 +233,8 @@ bool DMWindow::date_in_dm_window(double date) return date >= inf && date < sup; } + + DMUserReconfig::DMUserReconfig( std::string name, const rapidjson::Value ¶m, DMWindow *window) { @@ -254,7 +255,11 @@ DMUserReconfig::DMUserReconfig( DMUserReconfig::~DMUserReconfig() { - delete original_trace; + if(original_trace) + { + delete original_trace; + original_trace = NULL; + } } void DMUserReconfig::jobs_to_submit(double date, @@ -272,7 +277,11 @@ DMUserDegrad::DMUserDegrad( DMUserDegrad::~DMUserDegrad() { - delete original_trace; + if(original_trace) + { + delete original_trace; + original_trace = NULL; + } } void DMUserDegrad::jobs_to_submit(double date, std::list<shared_ptr<Job>> &jobs, @@ -290,7 +299,11 @@ DMUserRenonce::DMUserRenonce( DMUserRenonce::~DMUserRenonce() { - delete original_trace; + if(original_trace) + { + delete original_trace; + original_trace = NULL; + } } void DMUserRenonce::jobs_to_submit(double date, @@ -308,7 +321,11 @@ DMUserDelay::DMUserDelay( DMUserDelay::~DMUserDelay() { - delete original_trace; + if(original_trace) + { + delete original_trace; + original_trace = NULL; + } } void DMUserDelay::jobs_to_submit(double date, std::list<shared_ptr<Job>> &jobs, @@ -317,45 +334,51 @@ void DMUserDelay::jobs_to_submit(double date, std::list<shared_ptr<Job>> &jobs, ReplayUser::jobs_to_submit(date, jobs, profiles); } -bool DMUserReconfig::handle_job( - double date, shared_ptr<Job> job, Profile *profile) +bool DMUserReconfig::reconfig_job(shared_ptr<Job> job, Profile *profile) { - if (dm_window->date_in_dm_window(date)) + int orig_nb_core = job->nb_requested_resources; + dm_stat[2*CONSIDER_RECONF]++; + if (orig_nb_core == 1) { - int orig_nb_core = job->nb_requested_resources; - if (orig_nb_core == 1) - { - /* No reconfig */ - Parser::profile_from_duration( - profile, job->profile, user_name, platform_computing_speed); + /* No reconfig */ + Parser::profile_from_duration( + profile, job->profile, user_name, platform_computing_speed); - /* Log... */ - dm_stat[2 * RIGID]++; - dm_stat[2 * RIGID + 1] += orig_nb_core * std::stol(job->profile); - } - else - { - /* Log... */ - dm_stat[2 * RECONF]++; - dm_stat[2 * RECONF + 1] += orig_nb_core * std::stol(job->profile); + /* Log... */ + dm_stat[2 * RIGID]++; + dm_stat[2 * RIGID + 1] += orig_nb_core * std::stol(job->profile); + } + else + { + /* Log... */ + dm_stat[2 * RECONF]++; + dm_stat[2 * RECONF + 1] += orig_nb_core * std::stol(job->profile); - /* Reconfig: divide by two rounded up the nb or cores requested */ - int n = (orig_nb_core + 1) / 2; + /* Reconfig: divide by two rounded up the nb or cores requested */ + int n = (orig_nb_core + 1) / 2; - /* Speedup model: + /* Speedup model: * - T_orig: the original execution time (on orig_nb_core cores) * - T_1: the execution time on one core * - T_n: the execution time on n cores * We have: T_1 = n^alpha * T_n = orig_nb_core^alpha * T_orig * => T_n = (orig_nb_core / n)^alpha * T_orig - */ - long T_orig = std::stol(job->profile); - long T_n = pow((double)orig_nb_core / n, alpha) * T_orig; - Parser::profile_from_duration(profile, std::to_string(T_n), - user_name, platform_computing_speed); // parallel_homogeneous - job->nb_requested_resources = n; - job->profile = profile->name = 'r' + std::to_string(T_orig); - } + */ + long T_orig = std::stol(job->profile); + long T_n = pow( (double) orig_nb_core / n, alpha) * T_orig; + Parser::profile_from_duration( + profile, std::to_string(T_n), user_name, platform_computing_speed); // parallel_homogeneous + job->nb_requested_resources = n; + job->profile = profile->name = 'r' + std::to_string(T_orig); + } + return true; +} + +bool DMUserReconfig::handle_job(double date, shared_ptr<Job> job, Profile *profile) +{ + if (dm_window->date_in_dm_window(date)) + { + return reconfig_job(job,profile); } else { @@ -365,58 +388,38 @@ bool DMUserReconfig::handle_job( return true; } -bool DMUserDegrad::handle_job( - double date, shared_ptr<Job> job, Profile *profile) +bool DMUserDegrad::degrad_job(shared_ptr<Job> job, Profile *profile) { - if (dm_window->date_in_dm_window(date)) + int orig_nb_core = job->nb_requested_resources; + dm_stat[2*CONSIDER_DEGRADED]++; + if (orig_nb_core == 1) { - int orig_nb_core = job->nb_requested_resources; - - if (orig_nb_core == 1) - { - /* No reconfig */ - Parser::profile_from_duration( - profile, job->profile, user_name, platform_computing_speed); - - /* Log... */ - dm_stat[2 * RIGID]++; - dm_stat[2 * RIGID + 1] += orig_nb_core * std::stol(job->profile); - } - else - { - /* Log... */ - dm_stat[2 * DEGRADED]++; - dm_stat[2 * DEGRADED + 1] += orig_nb_core * std::stol(job->profile); - /* Spatial degradiation: divide by two rounded up the nb or - * cores requested, and keep the original duration */ - job->nb_requested_resources = (orig_nb_core + 1) / 2; - Parser::profile_from_duration( - profile, job->profile, user_name, platform_computing_speed); - job->profile = profile->name = 'd' + profile->name; - } + /* No degrad */ + Parser::profile_from_duration( + profile, job->profile, user_name, platform_computing_speed); + /* Log... */ + dm_stat[2 * RIGID]++; + dm_stat[2 * RIGID + 1] += orig_nb_core * std::stol(job->profile); } else { + /* Log... */ + dm_stat[2 * DEGRADED]++; + dm_stat[2 * DEGRADED + 1] += orig_nb_core * std::stol(job->profile); + /* Spatial degradiation: divide by two rounded up the nb or + * cores requested, and keep the original duration */ + job->nb_requested_resources = (orig_nb_core + 1) / 2; Parser::profile_from_duration( profile, job->profile, user_name, platform_computing_speed); + job->profile = profile->name = 'd' + profile->name; } return true; } - -bool DMUserRenonce::handle_job( - double date, shared_ptr<Job> job, Profile *profile) +bool DMUserDegrad::handle_job(double date, shared_ptr<Job> job, Profile *profile) { if (dm_window->date_in_dm_window(date)) { - /* Signals that the job must not be executed and delete it from the - * original queue */ - original_trace->remove_job(original_trace->first_job()); - - /* Log... */ - dm_stat[2 * RENONCED]++; - dm_stat[2 * RENONCED + 1] - += job->nb_requested_resources * std::stol(job->profile); - return false; + return degrad_job(job,profile); } else { @@ -426,17 +429,41 @@ bool DMUserRenonce::handle_job( return true; } -bool DMUserDelay::handle_job(double date, shared_ptr<Job> job, Profile *profile) +bool DMUserRenonce::renonce_job(shared_ptr<Job> job) +{ + /* Signals that the job must not be executed and delete it from the + * original queue */ + original_trace->remove_job(original_trace->first_job()); + + /* Log... */ + dm_stat[2 * RENONCED]++; + dm_stat[2 * RENONCED + 1] + += job->nb_requested_resources * std::stol(job->profile); + return false; +} +bool DMUserRenonce::handle_job(double date, shared_ptr<Job> job, Profile *profile) { if (dm_window->date_in_dm_window(date)) { - /* Log... */ - dm_stat[2 * DELAYED]++; - dm_stat[2 * DELAYED + 1] - += job->nb_requested_resources * std::stol(job->profile); - /* Delete original job from queue and update date */ - original_trace->remove_job(original_trace->first_job()); - job->submission_time = dm_window->sup; + return renonce_job(job); + } + else + { + Parser::profile_from_duration( + profile, job->profile, user_name, platform_computing_speed); + } + return true; +} + +bool DMUserDelay::delay_job(shared_ptr<Job> job) +{ + /* Log... */ + dm_stat[2 * DELAYED]++; + dm_stat[2 * DELAYED + 1] + += job->nb_requested_resources * std::stol(job->profile); + /* Delete original job from queue and update date */ + original_trace->remove_job(original_trace->first_job()); + job->submission_time = dm_window->sup; /* Put job back in the queue and sort */ SortableJobOrder::UpdateInformation update_info(0); @@ -445,8 +472,14 @@ bool DMUserDelay::handle_job(double date, shared_ptr<Job> job, Profile *profile) original_trace->insert_job(j); original_trace->sort_queue(&update_info); - /* Return "Do not execute now" */ - return false; + /* Return "Do not execute now" */ + return false; +} +bool DMUserDelay::handle_job(double date, shared_ptr<Job> job, Profile *profile) +{ + if (dm_window->date_in_dm_window(date)) + { + return delay_job(job); } else { @@ -454,4 +487,6 @@ bool DMUserDelay::handle_job(double date, shared_ptr<Job> job, Profile *profile) profile, job->profile, user_name, platform_computing_speed); return true; } -} \ No newline at end of file +} + + diff --git a/src/users/user_replay.hpp b/src/users/user_replay.hpp index 2947177bb88d6968e8a9e39b4519ab5f694838bd..1d5f28f97b162fbd5ad293d65017f7bf9f504f8c 100644 --- a/src/users/user_replay.hpp +++ b/src/users/user_replay.hpp @@ -1,11 +1,11 @@ /** * Users simulated by replaying an input trace. */ +#pragma once #include "users/user.hpp" #include <random> #include "queue.hpp" - - +#include "users/log_user_stat.hpp" /** * The demand response window during which the users are enclined to reduce * their consumption. (semi-closed interval [inf, sup[) @@ -18,6 +18,7 @@ struct DMWindow bool date_in_dm_window(double date); }; + class ReplayUser : public User { public: @@ -45,7 +46,7 @@ protected: std::string input_json; Queue *original_trace; DMWindow *dm_window = nullptr; - int dm_stat[10] = { 0 }; + int dm_stat[14] = { 0 }; /* Keep track of profiles to not send them twice to Batsim */ std::set<std::string> sent_profiles; @@ -106,20 +107,22 @@ private: /****************************************************************************** *********************** Users "demand response" ****************************** *****************************************************************************/ -enum UserDemandResponse +enum Behavior { RIGID, RENONCED, DELAYED, DEGRADED, - RECONF + RECONF, + CONSIDER_DEGRADED, + CONSIDER_RECONF }; /** * @brief * @details */ -class DMUserReconfig : public ReplayUser +class DMUserReconfig : virtual public ReplayUser { public: DMUserReconfig( @@ -130,7 +133,9 @@ public: double date, std::list<shared_ptr<Job>> &jobs, std::list<const Profile *> &profiles); protected: - bool handle_job(double date, shared_ptr<Job>job, Profile *profile); + bool reconfig_job(shared_ptr<Job> job,Profile *profile); + virtual bool handle_job(double date, shared_ptr<Job> job, + Profile *profile); double alpha = 1.0; // for the speedup model }; @@ -138,7 +143,7 @@ protected: * @brief * @details */ -class DMUserDegrad : public ReplayUser +class DMUserDegrad : virtual public ReplayUser { public: DMUserDegrad( @@ -149,14 +154,15 @@ public: double date, std::list<shared_ptr<Job>> &jobs, std::list<const Profile *> &profiles); protected: - bool handle_job(double date, shared_ptr<Job>job, Profile *profile); + bool degrad_job(shared_ptr<Job> job,Profile *profile); + bool handle_job(double date, shared_ptr<Job> job, Profile *profile); }; /** * @brief * @details */ -class DMUserRenonce : public ReplayUser +class DMUserRenonce : virtual public ReplayUser { public: DMUserRenonce( @@ -167,14 +173,15 @@ public: double date, std::list<shared_ptr<Job>> &jobs, std::list<const Profile *> &profiles); protected: - bool handle_job(double date, shared_ptr<Job>job, Profile *profile); + bool renonce_job(shared_ptr<Job> job); + bool handle_job(double date, shared_ptr<Job> job, Profile *profile); }; /** * @brief * @details */ -class DMUserDelay : public ReplayUser +class DMUserDelay : virtual public ReplayUser { public: DMUserDelay( @@ -185,5 +192,6 @@ public: double date, std::list<shared_ptr<Job>> &jobs, std::list<const Profile *> &profiles); protected: - bool handle_job(double date, shared_ptr<Job>job, Profile *profile); -}; \ No newline at end of file + bool delay_job(shared_ptr<Job> job); + bool handle_job(double date, shared_ptr<Job> job, Profile *profile); +}; diff --git a/src/users/user_windows.cpp b/src/users/user_windows.cpp new file mode 100644 index 0000000000000000000000000000000000000000..2c37ac2bec2c1168dbd6368c822a40a729ae73c6 --- /dev/null +++ b/src/users/user_windows.cpp @@ -0,0 +1,292 @@ + +#include "user_windows.hpp" +#include "../pempek_assert.hpp" + + +DMWindow_list::DMWindow_list(std::vector<DMWindow> window_array){ + content= window_array; +} + + + +bool DMWindow_list::date_in_dm_window(double date){ + /* Returns true if the date is in one of the dm_window of the DMWindow_list */ + std::vector<DMWindow_list>::size_type index = index_in_dm_window(date); + return index!=content.size(); +} + +std::vector<DMWindow_list>::size_type DMWindow_list::index_in_dm_window(double date){ + for ( std::vector<DMWindow>::size_type i=0; i < content.size();i++){ + DMWindow dm_window = content[i]; + if(dm_window.date_in_dm_window(date)){ + return i; + } + } + return content.size(); +} + +void DMUserMultiBehavior::init_prob(const rapidjson::Value ¶m){ + //Red window probability initialization + + std::vector<double> red_prob (5,0.0); + std::string red_config[] = {"red_prob_degrad","red_prob_see_you_later", + "red_prob_reconfig","red_prob_renonce","red_prob_rigid"}; + red_prob_total=0.0; + //We set the probability either by reading json data or by drawing it randomly + for (std::vector<double>::size_type i =0 ; i < red_prob.size();i++){ + std::string current_prob = red_config[i]; + if(param.HasMember(current_prob.c_str())){ + PPK_ASSERT_ERROR(param[current_prob.c_str()].IsDouble() + && param[current_prob.c_str()].GetDouble()>=0.0, + "Error every specified red probability should be a non-negative Double"); + red_prob[i] = param[current_prob.c_str()].GetDouble(); + red_prob_total += red_prob[i]; + } + } + /* If we need red_probabilities and + * they are none that are defined and non-zero we raise an error */ + std::string error_message = "Error in parameter defined for user "; + error_message += user_name; + error_message += ". The sum of the probability given in parameter sum to 0.0 for red_windows" + "Check that you gave red_prob_behavior parameter to user and at least " + "one non-zero probability"; + PPK_ASSERT_ERROR( red_prob_total != 0.0 || !(dm_window || red_windows), error_message.c_str()); + //we save the result in the used probability variable + red_prob_degrad = red_prob[0]; + red_prob_Cyoulater = red_prob[1] ; + red_prob_reconfig = red_prob[2]; + red_prob_renonce = red_prob[3]; + + // Yellow probability Initialization + + std::vector<double> yellow_prob (3,0.0); + std::string yellow_config[] = {"yellow_prob_degrad", + "yellow_prob_reconfig","yellow_prob_rigid"}; + yellow_prob_total=0.0; + //We set the probability either by reading json data or by drawing it randomly + for (std::vector<double>::size_type i =0 ; i < yellow_prob.size();i++){ + std::string current_prob = yellow_config[i]; + if(param.HasMember(current_prob.c_str())){ + PPK_ASSERT_ERROR(param[current_prob.c_str()].IsDouble() + && param[current_prob.c_str()].GetDouble()>=0.0, + "Error every specified yellow probability should be a non-negative Double"); + yellow_prob[i] = param[current_prob.c_str()].GetDouble(); + yellow_prob_total += yellow_prob[i]; + } + } + error_message = "Error in parameter defined for user "; + error_message += user_name; + error_message += ". The sum of the probability given in parameter sum to 0.0 for yellow_windows" + " Check that you gave at least one non-zero yellow_prob_behavior parameter to user "; + /* If we need yellow_probabilities, + * and they are none that are defined and non-zero we raise an error */ + PPK_ASSERT_ERROR( yellow_prob_total != 0.0 || !(yellow_windows), error_message.c_str()); + //we save the result in the used probability variable + yellow_prob_degrad= yellow_prob[0]; + yellow_prob_reconfig = yellow_prob[1]; +} +DMUserMultiBehavior::DMUserMultiBehavior( + std::string name, const rapidjson::Value ¶m, DMWindow *window, + uint_fast32_t random_seed,DMWindow_list *y_windows, + DMWindow_list *r_windows, LoggerUserStat* logger) + : DMUserRenonce(name,param,window),DMUserReconfig(name,param,window), + DMUserDegrad(name,param,window) +{ + yellow_windows = y_windows; + red_windows = r_windows; + this->logger = logger; + red_window_buffer = nullptr; + yellow_window_buffer = nullptr; + random_gen = std::mt19937(random_seed); + init_prob(param); +} + +DMUserMultiBehavior::~DMUserMultiBehavior() +{ + if(original_trace) + { + delete original_trace; + original_trace = nullptr; + } +} + +void DMUserMultiBehavior::jobs_to_submit( + double date, std::list<shared_ptr<Job>> &jobs, std::list< const Profile *> &profiles) +{ + ReplayUser::jobs_to_submit(date, jobs, profiles); +} + +bool DMUserMultiBehavior::C_you_later_job(double date, double next_time,shared_ptr<Job> job) +{ + /* Log... */ + log_behavior(job,"C_you_later",(long) next_time); + dm_stat[2 * DELAYED]++; + dm_stat[2*DELAYED+1]+= job->nb_requested_resources * std::stol(job->profile); + /* Delete original job from queue and update date */ + original_trace->remove_job(original_trace->first_job()); + job->submission_time = date + next_time; + + /* Put job back in the queue and sort */ + SortableJobOrder::UpdateInformation update_info(0); + Job *j = new Job(); + *j = *job; + original_trace->insert_job(j); + original_trace->sort_queue(&update_info); + + /* Return "Do not execute now" */ + return false; + +} +bool DMUserMultiBehavior::red_window_behavior(double date,shared_ptr<Job> job,Profile *profile) +{ + /* + * We decide at random the behavior + * (renounce, C_you_later, degrad, reconfig,rigid) + * that will be done on this job + */ + double behavior = distribution(random_gen)*red_prob_total; + if (behavior < red_prob_renonce){ + log_behavior(job,"renonce",0); + return renonce_job(job); + } + + else if (behavior < red_prob_renonce+red_prob_Cyoulater){ + return C_you_later_job(date,3600,job); + } + + else if (behavior < red_prob_degrad + red_prob_Cyoulater + red_prob_renonce){ + log_behavior(job,"consider_degrad",0); + if (job->nb_requested_resources== 1){ + log_behavior(job,"rigid",0); + } + else{ + log_behavior(job, "degrad", 0); + } + return degrad_job(job,profile); + } + + else if (behavior < + red_prob_degrad + red_prob_Cyoulater + red_prob_renonce + red_prob_reconfig){ + log_behavior(job,"consider_reconfig",0); + if (job->nb_requested_resources == 1){ + log_behavior(job,"rigid",0); + } + else{ + log_behavior(job, "reconfig", 0); + } + return reconfig_job(job,profile); + } + else{ + // if none of the above we launch the job without changing anything + // i.e. rigid strategy + log_behavior(job,"rigid",0); + Parser::profile_from_duration( + profile, job->profile, user_name, platform_computing_speed); + dm_stat[2 * RIGID]++; + dm_stat[2 * RIGID + 1] + += job->nb_requested_resources * std::stol(job->profile); + return true; + } +} +bool DMUserMultiBehavior::yellow_window_behavior(shared_ptr<Job> job,Profile *profile){ + /* + * We decide at random the behavior (rigid, degrad, reconfig) + * that will be done on this job + */ + double behavior = distribution(random_gen)*yellow_prob_total; + if (behavior < yellow_prob_reconfig){ + log_behavior(job,"consider_reconfig",0); + if (job->nb_requested_resources == 1){ + log_behavior(job,"rigid",0); + } + else{ + log_behavior(job, "reconfig", 0); + } + return reconfig_job(job,profile); + } + else if (behavior < yellow_prob_reconfig+yellow_prob_degrad){ + log_behavior(job,"consider_degrad",0); + if (job->nb_requested_resources== 1){ + log_behavior(job,"rigid",0); + } + else{ + log_behavior(job, "degrad", 0); + } + return degrad_job(job,profile); + } + else{ + // if none of the above we launch the job without i.e. rigid strategy + log_behavior(job,"rigid",0); + Parser::profile_from_duration( + profile, job->profile, user_name, platform_computing_speed); + dm_stat[2 * RIGID]++; + dm_stat[2 * RIGID + 1] + += job->nb_requested_resources * std::stol(job->profile); + return true; + } +} + +void DMUserMultiBehavior::log_behavior(shared_ptr<Job> job,std::string behavior_name, long delay_time) +{ + if(logger){ + logger->add_stat(job,behavior_name,delay_time); + } +} + +bool DMUserMultiBehavior::is_in_red_window(double date){ + // Check whether the date is in a red_window + if ((dm_window && dm_window->date_in_dm_window(date)) + || (red_window_buffer && red_window_buffer->date_in_dm_window(date))){ + return true; + } + if (red_windows == nullptr){ + return false; + } + std::vector<DMWindow_list>::size_type index_red = red_windows->index_in_dm_window(date); + if( index_red != red_windows->content.size()) { + red_window_buffer = &red_windows->content[index_red]; + return true; + } + return false; +} +bool DMUserMultiBehavior::is_in_yellow_window(double date){ + // Check whether the date is in yellow_window + if (yellow_windows == nullptr){ + return false; + } + if (yellow_window_buffer && yellow_window_buffer->date_in_dm_window(date)){ + return true; + } + std::vector<DMWindow_list>::size_type index_yellow = yellow_windows->index_in_dm_window(date); + if( index_yellow != yellow_windows->content.size()) { + yellow_window_buffer = &yellow_windows->content[index_yellow]; + return true; + } + return false; +} +bool DMUserMultiBehavior::handle_job(double date, shared_ptr<Job> job, Profile *profile) +{ + //red_windows and dm_windows check + if(is_in_red_window(date)) { + return red_window_behavior(date, job,profile); + } + + // yellow_windows check + if (is_in_yellow_window(date)){ + /* + * We decide at random the behavior (rigid,degrad, reconfig) + * that will be done on this job + */ + return yellow_window_behavior(job,profile); + } + else + { + log_behavior(job,"rigid",0); + Parser::profile_from_duration( + profile, job->profile, user_name, platform_computing_speed); + dm_stat[2 * RIGID]++; + dm_stat[2 * RIGID + 1] + += job->nb_requested_resources * std::stol(job->profile); + return true; + } +} \ No newline at end of file diff --git a/src/users/user_windows.hpp b/src/users/user_windows.hpp new file mode 100644 index 0000000000000000000000000000000000000000..1f5aaec67b935cc2918a6a3a2c1b4a79bdfb412d --- /dev/null +++ b/src/users/user_windows.hpp @@ -0,0 +1,95 @@ + +#pragma once +#include "users/user.hpp" +#include <random> +#include "queue.hpp" +#include "users/user_replay.hpp" +#include "users/log_user_stat.hpp" + +/** + * @brief list of date interval + * @details DMWindow_list is a strut that contains a list of DMwindow and + * provide function to check whether or not we are + * in one of these windows. + */ + +struct DMWindow_list +{ + std::vector<DMWindow> content; + DMWindow_list(std::vector<DMWindow> window_array); + std::vector<DMWindow>::size_type index_in_dm_window(double date); + bool date_in_dm_window(double date); +}; + + +/** + * @brief User class that adopts a different set of submission behaviors depending + * on the energy state (red, yellow, green) + * @details Below are the behaviors drawn at random when the date is in a particular window + * - red window: behaviors degrad, c_you_later, renounce, reconfig and rigid + * - yellow window: behaviors degrad, reconfig and rigid + * - otherwise ("green window"): rigid + * See the documentation of red_window_behavior and yellow_window_behavior. + */ + +class DMUserMultiBehavior : public DMUserRenonce,public DMUserReconfig, + public DMUserDegrad +{ +public: + DMUserMultiBehavior( + std::string name, const rapidjson::Value ¶m, DMWindow *window, + uint_fast32_t random_seed, DMWindow_list *yellow_windows, + DMWindow_list *red_windows, LoggerUserStat* logger); + ~DMUserMultiBehavior(); + double next_submission(); + void jobs_to_submit( + double date, std::list<shared_ptr<Job> > &jobs, std::list< const Profile *> &profiles); + + +protected: + DMWindow_list *yellow_windows; + DMWindow_list * red_windows; + DMWindow *red_window_buffer; + DMWindow *yellow_window_buffer; + std::mt19937 random_gen; + std::uniform_real_distribution<double> distribution + = std::uniform_real_distribution<double>(0.0, 1.0); + LoggerUserStat *logger = nullptr ; + + void init_prob(const rapidjson::Value ¶m); + bool is_in_yellow_window(double date); + bool is_in_red_window(double date); + void log_behavior(shared_ptr<Job> job, std::string behavior_name, long delay_time); + + bool C_you_later_job(double date, double next_time,shared_ptr<Job> job); + + /** + * @brief function called each time the user want to submit a job + * @details This function does the following : + * - if the user is in a red window + * the user adopt the behavior define in red_window_behavior + * - if the user is in a yellow window AND not in a red one + * the user adopt the behavior define in yellow_windows_behavior + * - else the user submit its job without any change + */ + bool handle_job(double date,shared_ptr<Job> job,Profile *profile); + + /** + * @brief function called when the user submit a job in red state + * @details This function do the 5 behavior for red windows of the class + * (degrad,reconfig,renonce,rigid,see_you_later) + * following the provided probabilities given at the creation of the class + */ + bool red_window_behavior(double date,shared_ptr<Job> job, Profile *profile); + + /** + * @brief function called when the user submit a job in yellow state + * @details This function do the 3 behaviors for yellow windows (degrad,reconfig, rigid) + * following the provided probabilities given at the creation of the class + */ + bool yellow_window_behavior(shared_ptr<Job> job, Profile *profile); + double red_prob_Cyoulater,red_prob_renonce, red_prob_reconfig,red_prob_degrad; + double red_prob_total; + double yellow_prob_degrad,yellow_prob_reconfig; + double yellow_prob_total; +}; diff --git a/test/expected_log/dm_user_multi_behavior_C_you_later_only-2machines_jobs.csv b/test/expected_log/dm_user_multi_behavior_C_you_later_only-2machines_jobs.csv new file mode 100644 index 0000000000000000000000000000000000000000..1ac69045da11a240963c07275ccdf001c679e4eb --- /dev/null +++ b/test/expected_log/dm_user_multi_behavior_C_you_later_only-2machines_jobs.csv @@ -0,0 +1,634 @@ +job_id,workload_name,profile,submission_time,requested_number_of_resources,requested_time,success,final_state,starting_time,execution_time,finish_time,waiting_time,turnaround_time,stretch,allocated_resources,consumed_energy,metadata +750,user14,450,66346.000000,1,86400.000000,1,COMPLETED_SUCCESSFULLY,66346.000000,450.000000,66796.000000,0.000000,450.000000,1.000000,0,50001.750000,"" +751,user14,210,66591.000000,1,86400.000000,1,COMPLETED_SUCCESSFULLY,66591.000000,210.000000,66801.000000,0.000000,210.000000,1.000000,0,24283.312500,"" +781,user14,290,67841.000000,1,86400.000000,1,COMPLETED_SUCCESSFULLY,67841.000000,290.000000,68131.000000,0.000000,290.000000,1.000000,0,40063.812500,"" +768,user14,920,67537.000000,1,86400.000000,1,COMPLETED_SUCCESSFULLY,67537.000000,920.000000,68457.000000,0.000000,920.000000,1.000000,0,126127.437500,"" +800,user14,550,69271.000000,1,86400.000000,1,COMPLETED_SUCCESSFULLY,69271.000000,550.000000,69821.000000,0.000000,550.000000,1.000000,0,103174.750000,"" +1384,user18,10,119976.000000,4,7200.000000,1,COMPLETED_SUCCESSFULLY,119976.000000,10.000000,119986.000000,0.000000,10.000000,1.000000,1,1292.500000,"" +1386,user18,60,120259.000000,4,7200.000000,1,COMPLETED_SUCCESSFULLY,120259.000000,60.000000,120319.000000,0.000000,60.000000,1.000000,1,7755.000000,"" +1387,user18,60,120441.000000,4,7200.000000,1,COMPLETED_SUCCESSFULLY,120441.000000,60.000000,120501.000000,0.000000,60.000000,1.000000,1,7755.000000,"" +804,user14,78610,69496.000000,1,157216.000000,1,COMPLETED_SUCCESSFULLY,69496.000000,78610.000000,148106.000000,0.000000,78610.000000,1.000000,0,15332897.875000,"" +752,user14,81540,66767.000000,1,163068.000000,1,COMPLETED_SUCCESSFULLY,66767.000000,81540.000000,148307.000000,0.000000,81540.000000,1.000000,0,15755022.000000,"" +799,user14,79590,69132.000000,1,159178.000000,1,COMPLETED_SUCCESSFULLY,69132.000000,79590.000000,148722.000000,0.000000,79590.000000,1.000000,0,15510180.000000,"" +808,user14,79440,69608.000000,1,158872.000000,1,COMPLETED_SUCCESSFULLY,69608.000000,79440.000000,149048.000000,0.000000,79440.000000,1.000000,0,15480927.937500,"" +757,user14,86140,66895.000000,1,172260.000000,1,COMPLETED_SUCCESSFULLY,66895.000000,86140.000000,153035.000000,0.000000,86140.000000,1.000000,0,16533240.062500,"" +758,user14,86130,66959.000000,1,172250.000000,1,COMPLETED_SUCCESSFULLY,66959.000000,86130.000000,153089.000000,0.000000,86130.000000,1.000000,0,16534463.062500,"" +791,user14,86130,68068.000000,1,172248.000000,1,COMPLETED_SUCCESSFULLY,68068.000000,86130.000000,154198.000000,0.000000,86130.000000,1.000000,0,16561358.437500,"" +794,user14,86120,68149.000000,1,172226.000000,1,COMPLETED_SUCCESSFULLY,68149.000000,86120.000000,154269.000000,0.000000,86120.000000,1.000000,0,16560051.312500,"" +795,user14,86130,68533.000000,1,172246.000000,1,COMPLETED_SUCCESSFULLY,68533.000000,86130.000000,154663.000000,0.000000,86130.000000,1.000000,0,16559164.687500,"" +796,user14,86120,68771.000000,1,172236.000000,1,COMPLETED_SUCCESSFULLY,68771.000000,86120.000000,154891.000000,0.000000,86120.000000,1.000000,0,16554391.437500,"" +797,user14,86130,68917.000000,1,172242.000000,1,COMPLETED_SUCCESSFULLY,68917.000000,86130.000000,155047.000000,0.000000,86130.000000,1.000000,0,16551340.312500,"" +798,user14,86140,69021.000000,1,172260.000000,1,COMPLETED_SUCCESSFULLY,69021.000000,86140.000000,155161.000000,0.000000,86140.000000,1.000000,0,16547923.562500,"" +809,user14,86140,69841.000000,1,172272.000000,1,COMPLETED_SUCCESSFULLY,69841.000000,86140.000000,155981.000000,0.000000,86140.000000,1.000000,0,16486520.500000,"" +2726,user16,670,300614.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,300614.000000,670.000000,301284.000000,0.000000,670.000000,1.000000,1,145024.375003,"" +2722,user16,1570,300612.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,300612.000000,1570.000000,302182.000000,0.000000,1570.000000,1.000000,1,340178.125003,"" +2724,user16,1910,300613.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,300613.000000,1910.000000,302523.000000,0.000000,1910.000000,1.000000,1,414045.875003,"" +2725,user16,2500,300613.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,300613.000000,2500.000000,303113.000000,0.000000,2500.000000,1.000000,1,542075.875003,"" +2719,user16,4160,300610.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,300610.000000,4160.000000,304770.000000,0.000000,4160.000000,1.000000,0,901688.937503,"" +2729,user16,4920,300627.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,300627.000000,4920.000000,305547.000000,0.000000,4920.000000,1.000000,1,1067640.000003,"" +2732,user16,3070,300628.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,302523.000000,3070.000000,305593.000000,1895.000000,4965.000000,1.617264,1,666190.000000,"" +2720,user16,5110,300611.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,300611.000000,5110.000000,305721.000000,0.000000,5110.000000,1.000000,0,1107875.500003,"" +2721,user16,5350,300611.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,300611.000000,5350.000000,305961.000000,0.000000,5350.000000,1.000000,0,1159955.500003,"" +2727,user16,5770,300614.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,300614.000000,5770.000000,306384.000000,0.000000,5770.000000,1.000000,1,1251724.375003,"" +2717,user16,6630,300609.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,300609.000000,6630.000000,307239.000000,0.000000,6630.000000,1.000000,0,1437613.125003,"" +2733,user16,4940,300632.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,303113.000000,4940.000000,308053.000000,2481.000000,7421.000000,1.502227,1,1071980.000000,"" +2716,user16,7510,300609.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,300609.000000,7510.000000,308119.000000,0.000000,7510.000000,1.000000,0,1628573.125003,"" +2715,user16,7560,300608.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,300608.000000,7560.000000,308168.000000,0.000000,7560.000000,1.000000,0,1639328.062503,"" +2734,user16,3490,300632.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,304770.000000,3490.000000,308260.000000,4138.000000,7628.000000,2.185673,0,757330.000000,"" +2718,user16,8640,300610.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,300610.000000,8640.000000,309250.000000,0.000000,8640.000000,1.000000,0,1873848.937503,"" +2744,user16,2420,300637.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,308260.000000,2420.000000,310680.000000,7623.000000,10043.000000,4.150000,0,525140.000000,"" +2742,user16,3030,300636.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,308119.000000,3030.000000,311149.000000,7483.000000,10513.000000,3.469637,0,657510.000000,"" +2745,user16,2040,300637.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,309250.000000,2040.000000,311290.000000,8613.000000,10653.000000,5.222059,0,442680.000000,"" +2723,user16,10740,300612.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,300612.000000,10740.000000,311352.000000,0.000000,10740.000000,1.000000,1,2330068.125003,"" +2736,user16,6110,300633.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,305593.000000,6110.000000,311703.000000,4960.000000,11070.000000,1.811784,1,1325870.000000,"" +2737,user16,6040,300633.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,305721.000000,6040.000000,311761.000000,5088.000000,11128.000000,1.842384,0,1310680.000000,"" +2746,user16,1440,300637.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,310680.000000,1440.000000,312120.000000,10043.000000,11483.000000,7.974306,0,312480.000000,"" +2738,user16,6280,300634.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,305961.000000,6280.000000,312241.000000,5327.000000,11607.000000,1.848248,0,1362760.000000,"" +2730,user16,11580,300627.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,301284.000000,11580.000000,312864.000000,657.000000,12237.000000,1.056736,1,2512860.000000,"" +2740,user16,6170,300635.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,307239.000000,6170.000000,313409.000000,6604.000000,12774.000000,2.070340,0,1338890.000000,"" +2728,user16,12870,300626.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,300626.000000,12870.000000,313496.000000,0.000000,12870.000000,1.000000,1,2792775.375003,"" +2749,user16,2760,300639.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,311352.000000,2760.000000,314112.000000,10713.000000,13473.000000,4.881522,1,598920.000000,"" +2750,user16,3920,300639.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,311703.000000,3920.000000,315623.000000,11064.000000,14984.000000,3.822449,1,850640.000000,"" +2757,user16,1820,300642.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,314112.000000,1820.000000,315932.000000,13470.000000,15290.000000,8.401099,1,394940.000000,"" +2735,user16,12360,300633.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,305547.000000,12360.000000,317907.000000,4914.000000,17274.000000,1.397573,1,2682120.000000,"" +2751,user16,6570,300640.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,311761.000000,6570.000000,318331.000000,11121.000000,17691.000000,2.692694,0,1425690.000000,"" +2755,user16,5950,300641.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,313409.000000,5950.000000,319359.000000,12768.000000,18718.000000,3.145882,0,1291150.000000,"" +2753,user16,7180,300641.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,312241.000000,7180.000000,319421.000000,11600.000000,18780.000000,2.615599,0,1558060.000000,"" +2763,user16,30,300645.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,319421.000000,30.000000,319451.000000,18776.000000,18806.000000,626.866667,0,6510.000000,"" +2743,user16,11490,300636.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,308168.000000,11490.000000,319658.000000,7532.000000,19022.000000,1.655527,0,2493330.000000,"" +2739,user16,13390,300634.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,306384.000000,13390.000000,319774.000000,5750.000000,19140.000000,1.429425,1,2905630.000000,"" +2754,user16,7910,300641.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,312864.000000,7910.000000,320774.000000,12223.000000,20133.000000,2.545259,1,1716470.000000,"" +2756,user16,7680,300642.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,313496.000000,7680.000000,321176.000000,12854.000000,20534.000000,2.673698,1,1666560.000000,"" +2766,user16,1830,300646.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,319774.000000,1830.000000,321604.000000,19128.000000,20958.000000,11.452459,1,397110.000000,"" +2752,user16,9930,300640.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,312120.000000,9930.000000,322050.000000,11480.000000,21410.000000,2.156093,0,2154810.000000,"" +2769,user16,810,300648.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,321604.000000,810.000000,322414.000000,20956.000000,21766.000000,26.871605,1,175770.000000,"" +2770,user16,900,300648.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,322050.000000,900.000000,322950.000000,21402.000000,22302.000000,24.780000,0,195300.000000,"" +2760,user16,5270,300644.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,317907.000000,5270.000000,323177.000000,17263.000000,22533.000000,4.275712,1,1143590.000000,"" +2765,user16,3980,300646.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,319658.000000,3980.000000,323638.000000,19012.000000,22992.000000,5.776884,0,863660.000000,"" +2747,user16,12850,300638.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,311149.000000,12850.000000,323999.000000,10511.000000,23361.000000,1.817977,0,2788450.000000,"" +2771,user16,2190,300648.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,322414.000000,2190.000000,324604.000000,21766.000000,23956.000000,10.938813,1,475230.000000,"" +2762,user16,6190,300644.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,319359.000000,6190.000000,325549.000000,18715.000000,24905.000000,4.023425,0,1343230.000000,"" +2767,user16,5140,300647.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,320774.000000,5140.000000,325914.000000,20127.000000,25267.000000,4.915759,1,1115380.000000,"" +2773,user16,3290,300649.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,323177.000000,3290.000000,326467.000000,22528.000000,25818.000000,7.847416,1,713930.000000,"" +2775,user16,2520,300650.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,323999.000000,2520.000000,326519.000000,23349.000000,25869.000000,10.265476,0,546840.000000,"" +2748,user16,15340,300638.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,311290.000000,15340.000000,326630.000000,10652.000000,25992.000000,1.694394,0,3328780.000000,"" +2777,user16,1950,300651.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,325549.000000,1950.000000,327499.000000,24898.000000,26848.000000,13.768205,0,423150.000000,"" +2759,user16,12580,300643.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,315932.000000,12580.000000,328512.000000,15289.000000,27869.000000,2.215342,1,2729860.000000,"" +2758,user16,14410,300643.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,315623.000000,14410.000000,330033.000000,14980.000000,29390.000000,2.039556,1,3126970.000000,"" +2783,user16,1530,300654.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,328512.000000,1530.000000,330042.000000,27858.000000,29388.000000,19.207843,1,332010.000000,"" +2781,user16,4880,300653.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,326630.000000,4880.000000,331510.000000,25977.000000,30857.000000,6.323156,0,1058960.000000,"" +2786,user16,80,300655.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,331510.000000,80.000000,331590.000000,30855.000000,30935.000000,386.687500,0,17360.000000,"" +2787,user16,140,300656.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,331590.000000,140.000000,331730.000000,30934.000000,31074.000000,221.957143,0,30380.000000,"" +2779,user16,5770,300652.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,326467.000000,5770.000000,332237.000000,25815.000000,31585.000000,5.474003,1,1252090.000000,"" +2782,user16,5530,300653.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,327499.000000,5530.000000,333029.000000,26846.000000,32376.000000,5.854611,0,1200010.000000,"" +2764,user16,13650,300645.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,319451.000000,13650.000000,333101.000000,18806.000000,32456.000000,2.377729,0,2962050.000000,"" +2788,user16,1990,300656.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,331730.000000,1990.000000,333720.000000,31074.000000,33064.000000,16.615075,0,431830.000000,"" +2774,user16,10790,300650.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,323638.000000,10790.000000,334428.000000,22988.000000,33778.000000,3.130491,0,2341430.000000,"" +2792,user16,720,300658.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,333720.000000,720.000000,334440.000000,33062.000000,33782.000000,46.919444,0,156240.000000,"" +2761,user16,16830,300644.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,318331.000000,16830.000000,335161.000000,17687.000000,34517.000000,2.050921,0,3652110.000000,"" +2793,user16,2080,300659.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,334428.000000,2080.000000,336508.000000,33769.000000,35849.000000,17.235096,0,451360.000000,"" +2785,user16,7120,300655.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,330042.000000,7120.000000,337162.000000,29387.000000,36507.000000,5.127388,1,1545040.000000,"" +2796,user16,1710,300660.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,336508.000000,1710.000000,338218.000000,35848.000000,37558.000000,21.963743,0,371070.000000,"" +2790,user16,5270,300657.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,333029.000000,5270.000000,338299.000000,32372.000000,37642.000000,7.142694,0,1143590.000000,"" +2795,user16,3820,300660.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,335161.000000,3820.000000,338981.000000,34501.000000,38321.000000,10.031675,0,828940.000000,"" +2768,user16,17870,300647.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,321176.000000,17870.000000,339046.000000,20529.000000,38399.000000,2.148797,1,3877790.000000,"" +2778,user16,13360,300652.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,325914.000000,13360.000000,339274.000000,25262.000000,38622.000000,2.890868,1,2899120.000000,"" +2731,user16,37440,300628.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,302182.000000,37440.000000,339622.000000,1554.000000,38994.000000,1.041506,1,8124480.000000,"" +2784,user16,10130,300654.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,330033.000000,10130.000000,340163.000000,29379.000000,39509.000000,3.900197,1,2198210.000000,"" +2800,user16,1450,300662.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,338981.000000,1450.000000,340431.000000,38319.000000,39769.000000,27.426897,0,314650.000000,"" +2798,user16,2590,300661.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,338218.000000,2590.000000,340808.000000,37557.000000,40147.000000,15.500772,0,562030.000000,"" +2772,user16,19310,300649.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,322950.000000,19310.000000,342260.000000,22301.000000,41611.000000,2.154894,0,4190270.000000,"" +2776,user16,17710,300651.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,324604.000000,17710.000000,342314.000000,23953.000000,41663.000000,2.352513,1,3843070.000000,"" +2797,user16,6180,300661.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,337162.000000,6180.000000,343342.000000,36501.000000,42681.000000,6.906311,1,1341060.000003,"" +2802,user16,4620,300663.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,339274.000000,4620.000000,343894.000000,38611.000000,43231.000000,9.357359,1,1002540.000003,"" +2809,user16,960,300666.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,343342.000000,960.000000,344302.000000,42676.000000,43636.000000,45.454167,1,208320.000000,"" +2808,user16,2040,300666.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,342314.000000,2040.000000,344354.000000,41648.000000,43688.000000,21.415686,1,442680.000003,"" +2801,user16,5830,300663.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,339046.000000,5830.000000,344876.000000,38383.000000,44213.000000,7.583705,1,1265110.000003,"" +2799,user16,7090,300662.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,338299.000000,7090.000000,345389.000000,37637.000000,44727.000000,6.308463,0,1538530.000003,"" +2811,user16,2660,300667.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,344302.000000,2660.000000,346962.000000,43635.000000,46295.000000,17.404135,1,577220.000000,"" +2815,user16,140,300669.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,346962.000000,140.000000,347102.000000,46293.000000,46433.000000,331.664286,1,30380.000000,"" +2805,user16,6700,300664.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,340431.000000,6700.000000,347131.000000,39767.000000,46467.000000,6.935373,0,1453900.000003,"" +2789,user16,15450,300657.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,332237.000000,15450.000000,347687.000000,31580.000000,47030.000000,3.044013,1,3352650.000003,"" +2814,user16,2350,300669.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,345389.000000,2350.000000,347739.000000,44720.000000,47070.000000,20.029787,0,509950.000000,"" +2810,user16,4290,300667.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,343894.000000,4290.000000,348184.000000,43227.000000,47517.000000,11.076224,1,930930.000000,"" +2791,user16,15090,300658.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,333101.000000,15090.000000,348191.000000,32443.000000,47533.000000,3.149967,0,3274530.000003,"" +2818,user16,1930,300671.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,347687.000000,1930.000000,349617.000000,47016.000000,48946.000000,25.360622,1,418810.000000,"" +2821,user16,1560,300672.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,348191.000000,1560.000000,349751.000000,47519.000000,49079.000000,31.460897,0,338520.000000,"" +2816,user16,3140,300670.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,347102.000000,3140.000000,350242.000000,46432.000000,49572.000000,15.787261,1,681380.000000,"" +2741,user16,42490,300635.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,308053.000000,42490.000000,350543.000000,7418.000000,49908.000000,1.174582,1,9220330.000003,"" +2813,user16,5990,300668.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,344876.000000,5990.000000,350866.000000,44208.000000,50198.000000,8.380301,1,1299830.000000,"" +2823,user16,1320,300673.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,349751.000000,1320.000000,351071.000000,49078.000000,50398.000000,38.180303,0,286440.000000,"" +2819,user16,3510,300671.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,347739.000000,3510.000000,351249.000000,47068.000000,50578.000000,14.409687,0,761670.000000,"" +2822,user16,1900,300673.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,349617.000000,1900.000000,351517.000000,48944.000000,50844.000000,26.760000,1,412300.000000,"" +2827,user16,700,300675.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,351071.000000,700.000000,351771.000000,50396.000000,51096.000000,72.994286,0,151900.000000,"" +2817,user16,4850,300670.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,347131.000000,4850.000000,351981.000000,46461.000000,51311.000000,10.579588,0,1052450.000000,"" +2803,user16,12540,300664.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,339622.000000,12540.000000,352162.000000,38958.000000,51498.000000,4.106699,1,2721180.000003,"" +2828,user16,1250,300676.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,351249.000000,1250.000000,352499.000000,50573.000000,51823.000000,41.458400,0,271250.000000,"" +2831,user16,550,300677.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,351981.000000,550.000000,352531.000000,51304.000000,51854.000000,94.280000,0,119350.000000,"" +2829,user16,1250,300676.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,351517.000000,1250.000000,352767.000000,50841.000000,52091.000000,41.672800,1,271250.000000,"" +2825,user16,2390,300674.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,350543.000000,2390.000000,352933.000000,49869.000000,52259.000000,21.865690,1,518630.000000,"" +2833,user16,1010,300678.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,352499.000000,1010.000000,353509.000000,51821.000000,52831.000000,52.307921,0,219170.000000,"" +2835,user16,920,300679.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,352767.000000,920.000000,353687.000000,52088.000000,53008.000000,57.617391,1,199640.000000,"" +2834,user16,1850,300679.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,352531.000000,1850.000000,354381.000000,51852.000000,53702.000000,29.028108,0,401450.000000,"" +2806,user16,13930,300665.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,340808.000000,13930.000000,354738.000000,40143.000000,54073.000000,3.881766,0,3022810.000003,"" +2840,user16,410,300681.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,354738.000000,410.000000,355148.000000,54057.000000,54467.000000,132.846341,0,88970.000000,"" +2794,user16,21070,300659.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,334440.000000,21070.000000,355510.000000,33781.000000,54851.000000,2.603275,0,4572190.000003,"" +2839,user16,1710,300681.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,354381.000000,1710.000000,356091.000000,53700.000000,55410.000000,32.403509,0,371070.000000,"" +2830,user16,4730,300677.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,351771.000000,4730.000000,356501.000000,51094.000000,55824.000000,11.802114,0,1026410.000000,"" +2807,user16,14410,300665.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,342260.000000,14410.000000,356670.000000,41595.000000,56005.000000,3.886537,0,3126970.000003,"" +2836,user16,3970,300680.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,352933.000000,3970.000000,356903.000000,52253.000000,56223.000000,14.161965,1,861490.000000,"" +2842,user16,1710,300682.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,355510.000000,1710.000000,357220.000000,54828.000000,56538.000000,33.063158,0,371070.000000,"" +2826,user16,6750,300675.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,350866.000000,6750.000000,357616.000000,50191.000000,56941.000000,8.435704,1,1464750.000000,"" +2847,user16,2260,300685.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,357220.000000,2260.000000,359480.000000,56535.000000,58795.000000,26.015487,0,490420.000000,"" +2838,user16,6630,300681.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,353687.000000,6630.000000,360317.000000,53006.000000,59636.000000,8.994872,1,1438710.000000,"" +2843,user16,5160,300683.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,356091.000000,5160.000000,361251.000000,55408.000000,60568.000000,11.737984,0,1119720.000000,"" +2844,user16,4780,300683.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,356501.000000,4780.000000,361281.000000,55818.000000,60598.000000,12.677406,0,1037260.000000,"" +2812,user16,17030,300668.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,344354.000000,17030.000000,361384.000000,43686.000000,60716.000000,3.565238,1,3695510.000000,"" +2852,user16,2030,300687.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,361281.000000,2030.000000,363311.000000,60594.000000,62624.000000,30.849261,0,440510.000000,"" +2841,user16,8340,300682.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,355148.000000,8340.000000,363488.000000,54466.000000,62806.000000,7.530695,0,1809780.000000,"" +2820,user16,15960,300672.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,348184.000000,15960.000000,364144.000000,47512.000000,63472.000000,3.976942,1,3463320.000000,"" +2824,user16,13910,300674.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,350242.000000,13910.000000,364152.000000,49568.000000,63478.000000,4.563480,1,3018470.000000,"" +2853,user16,2780,300688.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,361384.000000,2780.000000,364164.000000,60696.000000,63476.000000,22.833094,1,603260.000000,"" +2850,user16,4370,300686.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,360317.000000,4370.000000,364687.000000,59631.000000,64001.000000,14.645538,1,948290.000000,"" +2837,user16,11960,300680.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,353509.000000,11960.000000,365469.000000,52829.000000,64789.000000,5.417140,0,2595320.000000,"" +2849,user16,6320,300686.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,359480.000000,6320.000000,365800.000000,58794.000000,65114.000000,10.302848,0,1371440.000000,"" +2856,user16,2990,300689.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,364144.000000,2990.000000,367134.000000,63455.000000,66445.000000,22.222408,1,648830.000000,"" +2846,user16,10600,300684.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,356903.000000,10600.000000,367503.000000,56219.000000,66819.000000,6.303679,1,2300200.000000,"" +2861,user16,1940,300691.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,365800.000000,1940.000000,367740.000000,65109.000000,67049.000000,34.561340,0,420980.000000,"" +2780,user16,41240,300652.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,326519.000000,41240.000000,367759.000000,25867.000000,67107.000000,1.627231,0,8949080.000003,"" +2864,user16,1300,300693.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,367740.000000,1300.000000,369040.000000,67047.000000,68347.000000,52.574615,0,282100.000000,"" +2862,user16,2090,300692.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,367134.000000,2090.000000,369224.000000,66442.000000,68532.000000,32.790431,1,453530.000000,"" +2860,user16,3840,300691.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,365469.000000,3840.000000,369309.000000,64778.000000,68618.000000,17.869271,0,833280.000000,"" +2804,user16,29290,300664.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,340163.000000,29290.000000,369453.000000,39499.000000,68789.000000,2.348549,1,6355930.000003,"" +2863,user16,3800,300692.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,367503.000000,3800.000000,371303.000000,66811.000000,70611.000000,18.581842,1,824600.000000,"" +2858,user16,7170,300690.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,364164.000000,7170.000000,371334.000000,63474.000000,70644.000000,9.852720,1,1555890.000000,"" +2867,user16,2140,300694.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,369224.000000,2140.000000,371364.000000,68530.000000,70670.000000,33.023364,1,464380.000000,"" +2871,user16,1160,300696.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,371334.000000,1160.000000,372494.000000,70638.000000,71798.000000,61.894828,1,251720.000000,"" +2866,user16,4730,300694.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,369040.000000,4730.000000,373770.000000,68346.000000,73076.000000,15.449471,0,1026410.000000,"" +2865,user16,6170,300693.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,367759.000000,6170.000000,373929.000000,67066.000000,73236.000000,11.869692,0,1338890.000000,"" +2869,user16,4600,300695.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,369453.000000,4600.000000,374053.000000,68758.000000,73358.000000,15.947391,1,998200.000000,"" +2848,user16,17080,300685.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,357616.000000,17080.000000,374696.000000,56931.000000,74011.000000,4.333197,1,3706360.000000,"" +2872,user16,3580,300697.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,371364.000000,3580.000000,374944.000000,70667.000000,74247.000000,20.739385,1,776860.000000,"" +2876,user16,1850,300699.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,374053.000000,1850.000000,375903.000000,73354.000000,75204.000000,40.650811,1,401450.000000,"" +2874,user16,2250,300698.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,373770.000000,2250.000000,376020.000000,73072.000000,75322.000000,33.476444,0,488250.000000,"" +2832,user16,24120,300678.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,352162.000000,24120.000000,376282.000000,51484.000000,75604.000000,3.134494,1,5234040.000000,"" +2859,user16,11760,300690.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,364687.000000,11760.000000,376447.000000,63997.000000,75757.000000,6.441922,1,2551920.000000,"" +2845,user16,21020,300684.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,356670.000000,21020.000000,377690.000000,55986.000000,77006.000000,3.663463,0,4561340.000000,"" +2882,user16,2500,300702.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,376447.000000,2500.000000,378947.000000,75745.000000,78245.000000,31.298000,1,542500.000000,"" +2873,user16,7400,300697.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,372494.000000,7400.000000,379894.000000,71797.000000,79197.000000,10.702297,1,1605800.000000,"" +2877,user16,5950,300699.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,374696.000000,5950.000000,380646.000000,73997.000000,79947.000000,13.436471,1,1291150.000000,"" +2881,user16,5230,300701.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,376282.000000,5230.000000,381512.000000,75581.000000,80811.000000,15.451434,1,1134910.000000,"" +2878,user16,7050,300700.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,374944.000000,7050.000000,381994.000000,74244.000000,81294.000000,11.531064,1,1529850.000000,"" +2886,user16,1670,300703.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,380646.000000,1670.000000,382316.000000,79943.000000,81613.000000,48.870060,1,362390.000000,"" +2879,user16,7880,300700.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,375903.000000,7880.000000,383783.000000,75203.000000,83083.000000,10.543528,1,1709960.000000,"" +2884,user16,5490,300702.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,378947.000000,5490.000000,384437.000000,78245.000000,83735.000000,15.252277,1,1191330.000000,"" +2887,user16,3940,300704.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,381512.000000,3940.000000,385452.000000,80808.000000,84748.000000,21.509645,1,854980.000000,"" +2868,user16,16180,300695.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,369309.000000,16180.000000,385489.000000,68614.000000,84794.000000,5.240667,0,3511060.000000,"" +2851,user16,24660,300687.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,361251.000000,24660.000000,385911.000000,60564.000000,85224.000000,3.455961,0,5351220.000000,"" +2857,user16,22340,300689.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,364152.000000,22340.000000,386492.000000,63463.000000,85803.000000,3.840779,1,4847780.000000,"" +2527,user14,86130,300599.000000,1,172242.000000,1,COMPLETED_SUCCESSFULLY,300599.000000,86130.000000,386729.000000,0.000000,86130.000000,1.000000,0,18688030.875008,"" +2528,user14,86120,300747.000000,1,172224.000000,1,COMPLETED_SUCCESSFULLY,300747.000000,86120.000000,386867.000000,0.000000,86120.000000,1.000000,0,18688040.000005,"" +2885,user16,7520,300703.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,379894.000000,7520.000000,387414.000000,79191.000000,86711.000000,11.530718,1,1631840.000000,"" +2875,user16,14390,300698.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,373929.000000,14390.000000,388319.000000,73231.000000,87621.000000,6.089020,0,3122630.000000,"" +2888,user16,7320,300704.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,381994.000000,7320.000000,389314.000000,81290.000000,88610.000000,12.105191,1,1588440.000000,"" +2855,user16,29350,300689.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,363488.000000,29350.000000,392838.000000,62799.000000,92149.000000,3.139659,0,6368950.000000,"" +4190,user16,7740,343184.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,386492.000000,7740.000000,394232.000000,43308.000000,51048.000000,6.595349,1,1679580.000000,"" +2870,user16,23330,300696.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,371303.000000,23330.000000,394633.000000,70607.000000,93937.000000,4.026447,1,5062610.000000,"" +2854,user16,33500,300688.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,363311.000000,33500.000000,396811.000000,62623.000000,96123.000000,2.869343,0,7269500.000000,"" +2880,user16,21530,300701.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,376020.000000,21530.000000,397550.000000,75319.000000,96849.000000,4.498328,0,4672010.000000,"" +4187,user16,12900,343183.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,385452.000000,12900.000000,398352.000000,42269.000000,55169.000000,4.276667,1,2799300.000000,"" +4192,user16,13780,343185.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,388319.000000,13780.000000,402099.000000,45134.000000,58914.000000,4.275327,0,2990260.000000,"" +2883,user16,25000,300702.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,377690.000000,25000.000000,402690.000000,76988.000000,101988.000000,4.079520,0,5425000.000000,"" +2889,user16,21910,300705.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,382316.000000,21910.000000,404226.000000,81611.000000,103521.000000,4.724829,1,4754470.000000,"" +4188,user16,39570,343183.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,385489.000000,39570.000000,425059.000000,42306.000000,81876.000000,2.069143,0,8586690.000000,"" +2529,user14,38530,300911.000000,1,86400.000000,1,COMPLETED_SUCCESSFULLY,386729.000000,38530.000000,425259.000000,85818.000000,124348.000000,3.227303,0,8361010.000000,"" +2531,user14,5300,301080.000000,1,86400.000000,1,COMPLETED_SUCCESSFULLY,425259.000000,5300.000000,430559.000000,124179.000000,129479.000000,24.430000,0,1150100.000000,"" +4196,user16,37690,343187.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,394633.000000,37690.000000,432323.000000,51446.000000,89136.000000,2.364977,1,8178730.000000,"" +4201,user16,34340,343189.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,402690.000000,34340.000000,437030.000000,59501.000000,93841.000000,2.732702,0,7451780.000000,"" +4198,user16,41400,343188.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,397550.000000,41400.000000,438950.000000,54362.000000,95762.000000,2.313092,0,8983800.000000,"" +4197,user16,49700,343187.000000,2,99388.000000,1,COMPLETED_SUCCESSFULLY,396811.000000,49700.000000,446511.000000,53624.000000,103324.000000,2.078954,0,10784900.000000,"" +4199,user16,51590,343188.000000,2,103178.000000,1,COMPLETED_SUCCESSFULLY,398352.000000,51590.000000,449942.000000,55164.000000,106754.000000,2.069277,1,11195030.000000,"" +4203,user16,33160,343190.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,425059.000000,33160.000000,458219.000000,81869.000000,115029.000000,3.468908,0,7195720.000000,"" +4194,user16,68890,343186.000000,2,137768.000000,1,COMPLETED_SUCCESSFULLY,392838.000000,68890.000000,461728.000000,49652.000000,118542.000000,1.720743,0,14949130.000000,"" +4209,user16,9260,343193.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,458219.000000,9260.000000,467479.000000,115026.000000,124286.000000,13.421814,0,2009420.000000,"" +4185,user16,86420,343182.000000,2,172838.000000,1,COMPLETED_SUCCESSFULLY,383783.000000,86420.000000,470203.000000,40601.000000,127021.000000,1.469810,1,18753140.000000,"" +4205,user16,33180,343191.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,437030.000000,33180.000000,470210.000000,93839.000000,127019.000000,3.828180,0,7200060.000000,"" +4186,user16,86430,343182.000000,2,172840.000000,1,COMPLETED_SUCCESSFULLY,384437.000000,86430.000000,470867.000000,41255.000000,127685.000000,1.477323,1,18755310.000000,"" +4189,user16,86430,343184.000000,2,172842.000000,1,COMPLETED_SUCCESSFULLY,385911.000000,86430.000000,472341.000000,42727.000000,129157.000000,1.494354,0,18755310.000000,"" +2530,user14,86120,301000.000000,1,172224.000000,1,COMPLETED_SUCCESSFULLY,386867.000000,86120.000000,472987.000000,85867.000000,171987.000000,1.997062,0,18688040.000000,"" +4191,user16,86440,343184.000000,2,172866.000000,1,COMPLETED_SUCCESSFULLY,387414.000000,86440.000000,473854.000000,44230.000000,130670.000000,1.511684,1,18757480.000000,"" +4193,user16,86440,343185.000000,2,172876.000000,1,COMPLETED_SUCCESSFULLY,389314.000000,86440.000000,475754.000000,46129.000000,132569.000000,1.533653,1,18757480.000000,"" +4195,user16,86430,343186.000000,2,172846.000000,1,COMPLETED_SUCCESSFULLY,394232.000000,86430.000000,480662.000000,51046.000000,137476.000000,1.590605,1,18755310.000000,"" +4207,user16,37810,343192.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,446511.000000,37810.000000,484321.000000,103319.000000,141129.000000,3.732584,0,8204770.000000,"" +4200,user16,86430,343188.000000,2,172850.000000,1,COMPLETED_SUCCESSFULLY,402099.000000,86430.000000,488529.000000,58911.000000,145341.000000,1.681604,0,18755310.000000,"" +4202,user16,86430,343189.000000,2,172850.000000,1,COMPLETED_SUCCESSFULLY,404226.000000,86430.000000,490656.000000,61037.000000,147467.000000,1.706202,1,18755310.000000,"" +4208,user16,40830,343192.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,449942.000000,40830.000000,490772.000000,106750.000000,147580.000000,3.614499,1,8860110.000000,"" +4213,user16,22370,343194.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,470210.000000,22370.000000,492580.000000,127016.000000,149386.000000,6.677962,0,4854290.000000,"" +4212,user16,29460,343194.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,470203.000000,29460.000000,499663.000000,127009.000000,156469.000000,5.311236,1,6392820.000000,"" +4216,user16,26520,343204.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,473854.000000,26520.000000,500374.000000,130650.000000,157170.000000,5.926471,1,5754840.000000,"" +4225,user16,3150,343208.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,500374.000000,3150.000000,503524.000000,157166.000000,160316.000000,50.893968,1,683550.000000,"" +4210,user16,42400,343193.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,461728.000000,42400.000000,504128.000000,118535.000000,160935.000000,3.795637,0,9200800.000000,"" +4215,user16,32890,343195.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,472341.000000,32890.000000,505231.000000,129146.000000,162036.000000,4.926604,0,7137130.000000,"" +4223,user16,16140,343207.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,492580.000000,16140.000000,508720.000000,149373.000000,165513.000000,10.254833,0,3502380.000000,"" +4227,user16,7310,343213.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,504128.000000,7310.000000,511438.000000,160915.000000,168225.000000,23.012996,0,1586270.000000,"" +2532,user14,86130,301192.000000,1,172242.000000,1,COMPLETED_SUCCESSFULLY,430559.000000,86130.000000,516689.000000,129367.000000,215497.000000,2.501997,0,18690210.000000,"" +4204,user16,86430,343190.000000,2,172846.000000,1,COMPLETED_SUCCESSFULLY,432323.000000,86430.000000,518753.000000,89133.000000,175563.000000,2.031274,1,18755310.000000,"" +4217,user16,43910,343205.000000,2,87818.000000,1,COMPLETED_SUCCESSFULLY,475754.000000,43910.000000,519664.000000,132549.000000,176459.000000,4.018652,1,9528470.000000,"" +4228,user16,19800,343213.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,505231.000000,19800.000000,525031.000000,162018.000000,181818.000000,9.182727,0,4296600.000000,"" +4206,user16,86430,343191.000000,2,172844.000000,1,COMPLETED_SUCCESSFULLY,438950.000000,86430.000000,525380.000000,95759.000000,182189.000000,2.107937,0,18755310.000000,"" +4214,user16,73460,343195.000000,2,146900.000000,1,COMPLETED_SUCCESSFULLY,470867.000000,73460.000000,544327.000000,127672.000000,201132.000000,2.737980,1,15940820.000000,"" +4220,user16,56960,343206.000000,2,113908.000000,1,COMPLETED_SUCCESSFULLY,488529.000000,56960.000000,545489.000000,145323.000000,202283.000000,3.551317,0,12360320.000000,"" +4230,user16,37070,343214.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,511438.000000,37070.000000,548508.000000,168224.000000,205294.000000,5.538009,0,8044190.000000,"" +4221,user16,58630,343206.000000,2,117258.000000,1,COMPLETED_SUCCESSFULLY,490656.000000,58630.000000,549286.000000,147450.000000,206080.000000,3.514924,1,12722710.000000,"" +4236,user16,5200,343217.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,545489.000000,5200.000000,550689.000000,202272.000000,207472.000000,39.898462,0,1128400.000000,"" +4224,user16,51210,343208.000000,2,102412.000000,1,COMPLETED_SUCCESSFULLY,499663.000000,51210.000000,550873.000000,156455.000000,207665.000000,4.055165,1,11112570.000000,"" +4211,user16,86420,343193.000000,2,172836.000000,1,COMPLETED_SUCCESSFULLY,467479.000000,86420.000000,553899.000000,124286.000000,210706.000000,2.438162,0,18753140.000000,"" +4609,user14,38730,395237.000000,1,86400.000000,1,COMPLETED_SUCCESSFULLY,516689.000000,38730.000000,555419.000000,121452.000000,160182.000000,4.135864,0,8404410.000000,"" +4222,user16,67470,343207.000000,2,134926.000000,1,COMPLETED_SUCCESSFULLY,490772.000000,67470.000000,558242.000000,147565.000000,215035.000000,3.187120,1,14640990.000000,"" +4608,user14,86120,395007.000000,1,172238.000000,1,COMPLETED_SUCCESSFULLY,472987.000000,86120.000000,559107.000000,77980.000000,164100.000000,1.905481,0,18688040.000000,"" +4219,user16,77140,343205.000000,2,154272.000000,1,COMPLETED_SUCCESSFULLY,484321.000000,77140.000000,561461.000000,141116.000000,218256.000000,2.829349,0,16739380.000000,"" +5932,user14,2410,546452.000000,1,86400.000000,1,COMPLETED_SUCCESSFULLY,559107.000000,2410.000000,561517.000000,12655.000000,15065.000000,6.251037,0,522970.000000,"" +5957,user14,420,548896.000000,1,86400.000000,1,COMPLETED_SUCCESSFULLY,561517.000000,420.000000,561937.000000,12621.000000,13041.000000,31.050000,0,91140.000000,"" +4232,user16,46910,343215.000000,2,93816.000000,1,COMPLETED_SUCCESSFULLY,519664.000000,46910.000000,566574.000000,176449.000000,223359.000000,4.761437,1,10179470.000000,"" +4218,user16,86450,343205.000000,2,172890.000000,1,COMPLETED_SUCCESSFULLY,480662.000000,86450.000000,567112.000000,137457.000000,223907.000000,2.590017,1,18759650.000001,"" +4237,user16,26350,343218.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,548508.000000,26350.000000,574858.000000,205290.000000,231640.000000,8.790892,0,5623465.187500,"" +4243,user16,13610,343220.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,561461.000000,13610.000000,575071.000000,218241.000000,231851.000000,17.035342,0,2857327.625000,"" +4229,user16,69550,343214.000000,2,139082.000000,1,COMPLETED_SUCCESSFULLY,508720.000000,69550.000000,578270.000000,165506.000000,235056.000000,3.379669,0,14972914.937501,"" +4248,user16,4050,343222.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,578270.000000,4050.000000,582320.000000,235048.000000,239098.000000,59.036543,0,849234.375000,"" +4241,user16,33990,343219.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,553899.000000,33990.000000,587889.000000,210680.000000,244670.000000,7.198294,0,7186056.000001,"" +4233,user16,64550,343216.000000,2,129082.000000,1,COMPLETED_SUCCESSFULLY,525031.000000,64550.000000,589581.000000,181815.000000,246365.000000,3.816654,0,13805203.250001,"" +4226,user16,86440,343209.000000,2,172872.000000,1,COMPLETED_SUCCESSFULLY,503524.000000,86440.000000,589964.000000,160315.000000,246755.000000,2.854639,1,18757480.000002,"" +4231,user16,86430,343215.000000,2,172842.000000,1,COMPLETED_SUCCESSFULLY,518753.000000,86430.000000,605183.000000,175538.000000,261968.000000,3.030985,1,18755310.000001,"" +4247,user16,30780,343222.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,575071.000000,30780.000000,605851.000000,231849.000000,262629.000000,8.532456,0,6454181.250001,"" +4234,user16,86440,343216.000000,2,172872.000000,1,COMPLETED_SUCCESSFULLY,525380.000000,86440.000000,611820.000000,182164.000000,268604.000000,3.107404,0,18392710.562501,"" +4246,user16,44570,343222.000000,2,89136.000000,1,COMPLETED_SUCCESSFULLY,574858.000000,44570.000000,619428.000000,231636.000000,276206.000000,6.197128,0,9345771.875001,"" +4245,user16,56420,343221.000000,2,112822.000000,1,COMPLETED_SUCCESSFULLY,567112.000000,56420.000000,623532.000000,223891.000000,280311.000000,4.968291,1,12243140.000001,"" +4242,user16,66080,343220.000000,2,132150.000000,1,COMPLETED_SUCCESSFULLY,558242.000000,66080.000000,624322.000000,215022.000000,281102.000000,4.253965,1,14339360.000001,"" +4257,user16,2500,343226.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,623532.000000,2500.000000,626032.000000,280306.000000,282806.000000,113.122400,1,542500.000000,"" +4235,user16,86420,343217.000000,2,172828.000000,1,COMPLETED_SUCCESSFULLY,544327.000000,86420.000000,630747.000000,201110.000000,287530.000000,3.327123,1,18753140.000002,"" +4238,user16,86450,343218.000000,2,172882.000000,1,COMPLETED_SUCCESSFULLY,549286.000000,86450.000000,635736.000000,206068.000000,292518.000000,3.383667,1,18759650.000002,"" +4244,user16,69290,343221.000000,2,138568.000000,1,COMPLETED_SUCCESSFULLY,566574.000000,69290.000000,635864.000000,223353.000000,292643.000000,4.223452,1,15035930.000001,"" +4239,user16,86420,343218.000000,2,172832.000000,1,COMPLETED_SUCCESSFULLY,550689.000000,86420.000000,637109.000000,207471.000000,293891.000000,3.400729,0,18203444.750002,"" +4240,user16,86420,343219.000000,2,172834.000000,1,COMPLETED_SUCCESSFULLY,550873.000000,86420.000000,637293.000000,207654.000000,294074.000000,3.402847,1,18753140.000002,"" +4610,user14,86120,395415.000000,1,172222.000000,1,COMPLETED_SUCCESSFULLY,555419.000000,86120.000000,641539.000000,160004.000000,246124.000000,2.857919,0,18105950.375002,"" +4255,user16,43490,343226.000000,2,86964.000000,1,COMPLETED_SUCCESSFULLY,611820.000000,43490.000000,655310.000000,268594.000000,312084.000000,7.175994,0,9220009.812500,"" +4258,user16,31550,343227.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,624322.000000,31550.000000,655872.000000,281095.000000,312645.000000,9.909509,1,6846350.000000,"" +4253,user16,52000,343225.000000,2,103996.000000,1,COMPLETED_SUCCESSFULLY,605183.000000,52000.000000,657183.000000,261958.000000,313958.000000,6.037654,1,11284000.000000,"" +4252,user16,72670,343224.000000,2,145332.000000,1,COMPLETED_SUCCESSFULLY,589964.000000,72670.000000,662634.000000,246740.000000,319410.000000,4.395349,1,15769390.000000,"" +4256,user16,43470,343226.000000,2,86924.000000,1,COMPLETED_SUCCESSFULLY,619428.000000,43470.000000,662898.000000,276202.000000,319672.000000,7.353853,0,9271303.312500,"" +4249,user16,86430,343223.000000,2,172842.000000,1,COMPLETED_SUCCESSFULLY,582320.000000,86430.000000,668750.000000,239097.000000,325527.000000,3.766366,0,18322271.062500,"" +4265,user16,29360,343230.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,641539.000000,29360.000000,670899.000000,298309.000000,327669.000000,11.160388,0,6371120.000000,"" +4250,user16,86430,343223.000000,2,172848.000000,1,COMPLETED_SUCCESSFULLY,587889.000000,86430.000000,674319.000000,244666.000000,331096.000000,3.830799,0,18362994.375000,"" +4251,user16,86420,343224.000000,2,172834.000000,1,COMPLETED_SUCCESSFULLY,589581.000000,86420.000000,676001.000000,246357.000000,332777.000000,3.850694,0,18373197.125000,"" +4262,user16,42120,343229.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,635864.000000,42120.000000,677984.000000,292635.000000,334755.000000,7.947650,1,9140040.000000,"" +4272,user16,13720,343233.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,670899.000000,13720.000000,684619.000000,327666.000000,341386.000000,24.882362,0,2977240.000000,"" +4254,user16,86430,343225.000000,2,172844.000000,1,COMPLETED_SUCCESSFULLY,605851.000000,86430.000000,692281.000000,262626.000000,349056.000000,4.038598,0,18494341.500000,"" +4268,user16,39090,343231.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,657183.000000,39090.000000,696273.000000,313952.000000,353042.000000,9.031517,1,8482530.000000,"" +4270,user16,35350,343232.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,662898.000000,35350.000000,698248.000000,319666.000000,355016.000000,10.042885,0,7670950.000000,"" +4275,user16,26720,343234.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,677984.000000,26720.000000,704704.000000,334750.000000,361470.000000,13.528069,1,5798240.000000,"" +4273,user16,31100,343234.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,674319.000000,31100.000000,705419.000000,331085.000000,362185.000000,11.645820,0,6748700.000000,"" +4271,user16,41020,343233.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,668750.000000,41020.000000,709770.000000,325517.000000,366537.000000,8.935568,0,8901340.000000,"" +4279,user16,12280,343236.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,698248.000000,12280.000000,710528.000000,355012.000000,367292.000000,29.909772,0,2664760.000000,"" +4259,user16,86450,343227.000000,2,172882.000000,1,COMPLETED_SUCCESSFULLY,626032.000000,86450.000000,712482.000000,282805.000000,369255.000000,4.271313,1,18759650.000001,"" +4278,user16,19550,343236.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,696273.000000,19550.000000,715823.000000,353037.000000,372587.000000,19.058159,1,4242350.000000,"" +4260,user16,86430,343228.000000,2,172846.000000,1,COMPLETED_SUCCESSFULLY,630747.000000,86430.000000,717177.000000,287519.000000,373949.000000,4.326611,1,18755310.000001,"" +4261,user16,86420,343228.000000,2,172822.000000,1,COMPLETED_SUCCESSFULLY,635736.000000,86420.000000,722156.000000,292508.000000,378928.000000,4.384726,1,18753140.000000,"" +4263,user16,86440,343229.000000,2,172874.000000,1,COMPLETED_SUCCESSFULLY,637109.000000,86440.000000,723549.000000,293880.000000,380320.000000,4.399815,0,18725085.625000,"" +4264,user16,86420,343230.000000,2,172832.000000,1,COMPLETED_SUCCESSFULLY,637293.000000,86420.000000,723713.000000,294063.000000,380483.000000,4.402719,1,18753140.000000,"" +4267,user16,68360,343231.000000,2,136714.000000,1,COMPLETED_SUCCESSFULLY,655872.000000,68360.000000,724232.000000,312641.000000,381001.000000,5.573449,1,14834120.000000,"" +4280,user16,25030,343237.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,704704.000000,25030.000000,729734.000000,361467.000000,386497.000000,15.441350,1,5431510.000000,"" +4277,user16,41320,343235.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,692281.000000,41320.000000,733601.000000,349046.000000,390366.000000,9.447386,0,8966440.000000,"" +4285,user16,18430,343239.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,715823.000000,18430.000000,734253.000000,372584.000000,391014.000000,21.216169,1,3999310.000000,"" +4282,user16,27370,343238.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,709770.000000,27370.000000,737140.000000,366532.000000,393902.000000,14.391743,0,5939290.000000,"" +4266,user16,86440,343230.000000,2,172864.000000,1,COMPLETED_SUCCESSFULLY,655310.000000,86440.000000,741750.000000,312080.000000,398520.000000,4.610366,0,18757480.000000,"" +4283,user16,34480,343238.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,710528.000000,34480.000000,745008.000000,367290.000000,401770.000000,11.652262,0,7482160.000000,"" +4269,user16,86450,343232.000000,2,172894.000000,1,COMPLETED_SUCCESSFULLY,662634.000000,86450.000000,749084.000000,319402.000000,405852.000000,4.694644,1,18759650.000000,"" +4290,user16,24860,343241.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,724232.000000,24860.000000,749092.000000,380991.000000,405851.000000,16.325463,1,5394620.000000,"" +4294,user16,12630,343243.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,737140.000000,12630.000000,749770.000000,393897.000000,406527.000000,32.187411,0,2740710.000000,"" +4276,user16,66700,343235.000000,2,133396.000000,1,COMPLETED_SUCCESSFULLY,684619.000000,66700.000000,751319.000000,341384.000000,408084.000000,6.118201,0,14473900.000000,"" +4287,user16,33270,343240.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,722156.000000,33270.000000,755426.000000,378916.000000,412186.000000,12.389119,1,7219590.000000,"" +4296,user16,16920,343244.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,745008.000000,16920.000000,761928.000000,401764.000000,418684.000000,24.744917,0,3671640.000000,"" +4274,user16,86460,343234.000000,2,172904.000000,1,COMPLETED_SUCCESSFULLY,676001.000000,86460.000000,762461.000000,332767.000000,419227.000000,4.848797,0,18761820.000000,"" +4299,user16,13570,343245.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,749770.000000,13570.000000,763340.000000,406525.000000,420095.000000,30.957627,0,2944690.000000,"" +4292,user16,31610,343242.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,733601.000000,31610.000000,765211.000000,390359.000000,421969.000000,13.349225,0,6859370.000000,"" +4303,user16,13490,343247.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,762461.000000,13490.000000,775951.000000,419214.000000,432704.000000,32.075908,0,2927330.000000,"" +4302,user16,15620,343246.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,761928.000000,15620.000000,777548.000000,418682.000000,434302.000000,27.804225,0,3389540.000000,"" +4305,user16,14600,343248.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,765211.000000,14600.000000,779811.000000,421963.000000,436563.000000,29.901575,0,3168200.000000,"" +4293,user16,46190,343242.000000,2,92376.000000,1,COMPLETED_SUCCESSFULLY,734253.000000,46190.000000,780443.000000,391011.000000,437201.000000,9.465274,1,10023230.000000,"" +4309,user16,5560,343249.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,780443.000000,5560.000000,786003.000000,437194.000000,442754.000000,79.632014,1,1206520.000000,"" +4301,user16,32890,343246.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,755426.000000,32890.000000,788316.000000,412180.000000,445070.000000,13.532077,1,7137130.000000,"" +4306,user16,13570,343248.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,775951.000000,13570.000000,789521.000000,432703.000000,446273.000000,32.886735,0,2944690.000000,"" +4281,user16,86420,343237.000000,2,172820.000000,1,COMPLETED_SUCCESSFULLY,705419.000000,86420.000000,791839.000000,362182.000000,448602.000000,5.190951,0,18753140.000000,"" +4297,user16,43340,343244.000000,2,86676.000000,1,COMPLETED_SUCCESSFULLY,749084.000000,43340.000000,792424.000000,405840.000000,449180.000000,10.364098,1,9404780.000000,"" +4310,user16,6790,343250.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,786003.000000,6790.000000,792793.000000,442753.000000,449543.000000,66.206627,1,1473430.000000,"" +4304,user16,31480,343247.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,763340.000000,31480.000000,794820.000000,420093.000000,451573.000000,14.344759,0,6831160.000000,"" +4295,user16,53450,343243.000000,2,106880.000000,1,COMPLETED_SUCCESSFULLY,741750.000000,53450.000000,795200.000000,398507.000000,451957.000000,8.455697,0,11598650.000000,"" +4284,user16,86450,343238.000000,2,172884.000000,1,COMPLETED_SUCCESSFULLY,712482.000000,86450.000000,798932.000000,369244.000000,455694.000000,5.271186,1,18759650.000001,"" +4300,user16,50400,343246.000000,2,100796.000000,1,COMPLETED_SUCCESSFULLY,751319.000000,50400.000000,801719.000000,408073.000000,458473.000000,9.096687,0,10936800.000000,"" +4286,user16,86430,343239.000000,2,172848.000000,1,COMPLETED_SUCCESSFULLY,717177.000000,86430.000000,803607.000000,373938.000000,460368.000000,5.326484,1,18755310.000000,"" +4317,user16,8650,343253.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,795200.000000,8650.000000,803850.000000,451947.000000,460597.000000,53.248208,0,1877050.000000,"" +4307,user16,26370,343249.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,777548.000000,26370.000000,803918.000000,434299.000000,460669.000000,17.469435,0,5722290.000000,"" +4288,user16,86440,343240.000000,2,172870.000000,1,COMPLETED_SUCCESSFULLY,723549.000000,86440.000000,809989.000000,380309.000000,466749.000000,5.399688,0,18757480.000000,"" +4289,user16,86450,343241.000000,2,172890.000000,1,COMPLETED_SUCCESSFULLY,723713.000000,86450.000000,810163.000000,380472.000000,466922.000000,5.401064,1,18759650.000001,"" +4314,user16,17760,343252.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,792424.000000,17760.000000,810184.000000,449172.000000,466932.000000,26.291216,1,3853920.000000,"" +4322,user16,6510,343255.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,803918.000000,6510.000000,810428.000000,460663.000000,467173.000000,71.762366,0,1412670.000000,"" +4312,user16,24060,343251.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,789521.000000,24060.000000,813581.000000,446270.000000,470330.000000,19.548213,0,5221020.000000,"" +4291,user16,86430,343242.000000,2,172858.000000,1,COMPLETED_SUCCESSFULLY,729734.000000,86430.000000,816164.000000,386492.000000,472922.000000,5.471734,1,18755310.000001,"" +4321,user16,13010,343255.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,803850.000000,13010.000000,816860.000000,460595.000000,473605.000000,36.403151,0,2823170.000000,"" +4320,user16,16330,343254.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,803607.000000,16330.000000,819937.000000,460353.000000,476683.000000,29.190631,1,3543610.000000,"" +4327,user16,8340,343257.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,813581.000000,8340.000000,821921.000000,470324.000000,478664.000000,57.393765,0,1809780.000000,"" +4313,user16,37700,343251.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,791839.000000,37700.000000,829539.000000,448588.000000,486288.000000,12.898886,0,8180900.000000,"" +4316,user16,37140,343253.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,794820.000000,37140.000000,831960.000000,451567.000000,488707.000000,13.158508,0,8059380.000001,"" +4319,user16,30270,343254.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,801719.000000,30270.000000,831989.000000,458465.000000,488735.000000,16.145854,0,6568590.000001,"" +4298,user16,86440,343245.000000,2,172872.000000,1,COMPLETED_SUCCESSFULLY,749092.000000,86440.000000,835532.000000,405847.000000,492287.000000,5.695130,1,18757480.000001,"" +4332,user16,8300,343260.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,829539.000000,8300.000000,837839.000000,486279.000000,494579.000000,59.587831,0,1801100.000001,"" +4330,user16,20580,343259.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,819937.000000,20580.000000,840517.000000,476678.000000,497258.000000,24.162196,1,4465860.000001,"" +4325,user16,30770,343256.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,810184.000000,30770.000000,840954.000000,466928.000000,497698.000000,16.174781,1,6677090.000001,"" +4329,user16,24450,343258.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,816860.000000,24450.000000,841310.000000,473602.000000,498052.000000,20.370225,0,5305650.000001,"" +4315,user16,49580,343252.000000,2,99156.000000,1,COMPLETED_SUCCESSFULLY,792793.000000,49580.000000,842373.000000,449541.000000,499121.000000,10.066983,1,10758860.000001,"" +4328,user16,30300,343258.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,816164.000000,30300.000000,846464.000000,472906.000000,503206.000000,16.607459,1,6575100.000001,"" +4335,user16,14090,343261.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,835532.000000,14090.000000,849622.000000,492271.000000,506361.000000,35.937615,1,3057530.000000,"" +4308,user16,71950,343249.000000,2,143882.000000,1,COMPLETED_SUCCESSFULLY,779811.000000,71950.000000,851761.000000,436562.000000,508512.000000,7.067575,0,15613150.000001,"" +4340,user16,13440,343263.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,842373.000000,13440.000000,855813.000000,499110.000000,512550.000000,38.136161,1,2916480.000000,"" +4338,user16,16160,343262.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,840954.000000,16160.000000,857114.000000,497692.000000,513852.000000,31.797772,1,3506720.000000,"" +4323,user16,47490,343256.000000,2,94978.000000,1,COMPLETED_SUCCESSFULLY,809989.000000,47490.000000,857479.000000,466733.000000,514223.000000,10.828027,0,10305330.000001,"" +4311,user16,73090,343250.000000,2,146166.000000,1,COMPLETED_SUCCESSFULLY,788316.000000,73090.000000,861406.000000,445066.000000,518156.000000,7.089287,1,15860530.000001,"" +4331,user16,41740,343259.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,821921.000000,41740.000000,863661.000000,478662.000000,520402.000000,12.467705,0,9057580.000001,"" +4336,user16,33630,343261.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,837839.000000,33630.000000,871469.000000,494578.000000,528208.000000,15.706453,0,7297710.000000,"" +4345,user16,16200,343265.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,857114.000000,16200.000000,873314.000000,513849.000000,530049.000000,32.719074,1,3515400.000000,"" +4339,user16,32100,343263.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,841310.000000,32100.000000,873410.000000,498047.000000,530147.000000,16.515483,0,6965700.000000,"" +4318,user16,86410,343253.000000,2,172818.000000,1,COMPLETED_SUCCESSFULLY,798932.000000,86410.000000,885342.000000,455679.000000,542089.000000,6.273452,1,18750970.000001,"" +4344,user16,31620,343265.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,855813.000000,31620.000000,887433.000000,512548.000000,544168.000000,17.209614,1,6861540.000000,"" +4337,user16,53900,343262.000000,2,107782.000000,1,COMPLETED_SUCCESSFULLY,840517.000000,53900.000000,894417.000000,497255.000000,551155.000000,10.225510,1,11696300.000000,"" +4324,user16,86420,343256.000000,2,172838.000000,1,COMPLETED_SUCCESSFULLY,810163.000000,86420.000000,896583.000000,466907.000000,553327.000000,6.402766,1,18753140.000001,"" +4326,user16,86440,343257.000000,2,172864.000000,1,COMPLETED_SUCCESSFULLY,810428.000000,86440.000000,896868.000000,467171.000000,553611.000000,6.404570,0,18757480.000001,"" +4353,user16,9700,343269.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,887433.000000,9700.000000,897133.000000,544164.000000,553864.000000,57.099381,1,2104900.000000,"" +4351,user16,27700,343268.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,873410.000000,27700.000000,901110.000000,530142.000000,557842.000000,20.138700,0,6010900.000000,"" +4348,user16,39370,343266.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,863661.000000,39370.000000,903031.000000,520395.000000,559765.000000,14.218059,0,8543290.000000,"" +4343,user16,51380,343264.000000,2,102758.000000,1,COMPLETED_SUCCESSFULLY,851761.000000,51380.000000,903141.000000,508497.000000,559877.000000,10.896789,0,11149460.000000,"" +4347,user16,42250,343266.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,861406.000000,42250.000000,903656.000000,518140.000000,560390.000000,13.263669,1,9168250.000000,"" +4350,user16,31220,343267.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,873314.000000,31220.000000,904534.000000,530047.000000,561267.000000,17.977803,1,6774740.000000,"" +4356,user16,9570,343270.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,896868.000000,9570.000000,906438.000000,553598.000000,563168.000000,58.847231,0,2076690.000000,"" +4363,user16,10170,343273.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,906438.000000,10170.000000,916608.000000,563165.000000,573335.000000,56.375123,0,2206890.000000,"" +4355,user16,21030,343270.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,896583.000000,21030.000000,917613.000000,553313.000000,574343.000000,27.310651,1,4563510.000000,"" +4333,user16,86450,343260.000000,2,172888.000000,1,COMPLETED_SUCCESSFULLY,831960.000000,86450.000000,918410.000000,488700.000000,575150.000000,6.652979,0,18759650.000001,"" +4334,user16,86440,343260.000000,2,172876.000000,1,COMPLETED_SUCCESSFULLY,831989.000000,86440.000000,918429.000000,488729.000000,575169.000000,6.653968,0,18757480.000001,"" +4341,user16,75970,343263.000000,2,151926.000000,1,COMPLETED_SUCCESSFULLY,846464.000000,75970.000000,922434.000000,503201.000000,579171.000000,7.623680,1,16485490.000000,"" +4362,user16,18570,343273.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,904534.000000,18570.000000,923104.000000,561261.000000,579831.000000,31.224071,1,4029690.000000,"" +4352,user16,39930,343268.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,885342.000000,39930.000000,925272.000000,542074.000000,582004.000000,14.575607,1,8664810.000000,"" +4365,user16,9570,343274.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,917613.000000,9570.000000,927183.000000,574339.000000,583909.000000,61.014525,1,2076690.000000,"" +4357,user16,31330,343270.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,897133.000000,31330.000000,928463.000000,553863.000000,585193.000000,18.678359,1,6798610.000000,"" +4354,user16,34370,343269.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,894417.000000,34370.000000,928787.000000,551148.000000,585518.000000,17.035729,1,7458290.000000,"" +4370,user16,6320,343276.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,925272.000000,6320.000000,931592.000000,581996.000000,588316.000000,93.087975,1,1371440.000000,"" +4360,user16,32150,343272.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,903141.000000,32150.000000,935291.000000,559869.000000,592019.000000,18.414277,0,6976550.000000,"" +4342,user16,86440,343264.000000,2,172868.000000,1,COMPLETED_SUCCESSFULLY,849622.000000,86440.000000,936062.000000,506358.000000,592798.000000,6.857913,1,18757480.000001,"" +4374,user16,9410,343278.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,931592.000000,9410.000000,941002.000000,588314.000000,597724.000000,63.520085,1,2041970.000000,"" +4346,user16,86430,343266.000000,2,172854.000000,1,COMPLETED_SUCCESSFULLY,857479.000000,86430.000000,943909.000000,514213.000000,600643.000000,6.949474,0,18755310.000000,"" +4366,user16,29430,343274.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,918410.000000,29430.000000,947840.000000,575136.000000,604566.000000,20.542508,0,6386310.000000,"" +4367,user16,33250,343275.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,918429.000000,33250.000000,951679.000000,575154.000000,608404.000000,18.297865,0,7215250.000000,"" +4371,user16,24700,343276.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,927183.000000,24700.000000,951883.000000,583907.000000,608607.000000,24.639960,1,5359900.000000,"" +4376,user16,16510,343279.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,936062.000000,16510.000000,952572.000000,592783.000000,609293.000000,36.904482,1,3582670.000000,"" +4349,user16,86460,343267.000000,2,172910.000000,1,COMPLETED_SUCCESSFULLY,871469.000000,86460.000000,957929.000000,528202.000000,614662.000000,7.109207,0,18761820.000000,"" +4368,user16,40180,343275.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,922434.000000,40180.000000,962614.000000,579159.000000,619339.000000,15.414111,1,8719060.000000,"" +4378,user16,20250,343279.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,943909.000000,20250.000000,964159.000000,600630.000000,620880.000000,30.660741,0,4394250.000000,"" +4375,user16,39540,343278.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,935291.000000,39540.000000,974831.000000,592013.000000,631553.000000,15.972509,0,8580180.000000,"" +4380,user16,23390,343280.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,951679.000000,23390.000000,975069.000000,608399.000000,631789.000000,27.011073,0,5075630.000000,"" +4381,user16,26510,343281.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,951883.000000,26510.000000,978393.000000,608602.000000,635112.000000,23.957450,1,5752670.000000,"" +4358,user16,86450,343271.000000,2,172896.000000,1,COMPLETED_SUCCESSFULLY,901110.000000,86450.000000,987560.000000,557839.000000,644289.000000,7.452736,0,18759650.000000,"" +4359,user16,86450,343271.000000,2,172898.000000,1,COMPLETED_SUCCESSFULLY,903031.000000,86450.000000,989481.000000,559760.000000,646210.000000,7.474957,0,18759650.000000,"" +4361,user16,86410,343272.000000,2,172812.000000,1,COMPLETED_SUCCESSFULLY,903656.000000,86410.000000,990066.000000,560384.000000,646794.000000,7.485175,1,18750970.000000,"" +4389,user16,3040,343284.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,987560.000000,3040.000000,990600.000000,644276.000000,647316.000000,212.932895,0,659680.000000,"" +4390,user16,4860,343285.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,989481.000000,4860.000000,994341.000000,646196.000000,651056.000000,133.962140,0,1054620.000000,"" +4388,user16,17050,343284.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,978393.000000,17050.000000,995443.000000,635109.000000,652159.000000,38.249795,1,3699850.000000,"" +6214,user16,2820,564066.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,994341.000000,2820.000000,997161.000000,430275.000000,433095.000000,153.579787,0,611940.000000,"" +6212,user16,10400,564054.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,990066.000000,10400.000000,1000466.000000,426012.000000,436412.000000,41.962692,1,2256800.000000,"" +4364,user16,86450,343273.000000,2,172896.000000,1,COMPLETED_SUCCESSFULLY,916608.000000,86450.000000,1003058.000000,573335.000000,659785.000000,7.631984,0,18759650.000000,"" +6215,user16,8840,564067.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,995443.000000,8840.000000,1004283.000000,431376.000000,440216.000000,49.798190,1,1918280.000000,"" +6217,user16,5950,564068.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,1000466.000000,5950.000000,1006416.000000,436398.000000,442348.000000,74.344202,1,1291150.000000,"" +4382,user16,54270,343281.000000,2,108528.000000,1,COMPLETED_SUCCESSFULLY,952572.000000,54270.000000,1006842.000000,609291.000000,663561.000000,12.227032,1,11776590.000000,"" +6220,user16,1520,564069.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,1006416.000000,1520.000000,1007936.000000,442347.000000,443867.000000,292.017763,1,329840.000000,"" +6221,user16,2450,564070.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,1006842.000000,2450.000000,1009292.000000,442772.000000,445222.000000,181.723265,1,531650.000000,"" +4369,user16,86430,343276.000000,2,172844.000000,1,COMPLETED_SUCCESSFULLY,923104.000000,86430.000000,1009534.000000,579828.000000,666258.000000,7.708643,1,18755310.000000,"" +6218,user16,11350,564068.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,1003058.000000,11350.000000,1014408.000000,438990.000000,450340.000000,39.677533,0,2462950.000000,"" +4372,user16,86430,343277.000000,2,172856.000000,1,COMPLETED_SUCCESSFULLY,928463.000000,86430.000000,1014893.000000,585186.000000,671616.000000,7.770635,1,18755310.000000,"" +4373,user16,86430,343277.000000,2,172854.000000,1,COMPLETED_SUCCESSFULLY,928787.000000,86430.000000,1015217.000000,585510.000000,671940.000000,7.774384,1,18755310.000000,"" +6222,user16,11340,564070.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,1007936.000000,11340.000000,1019276.000000,443866.000000,455206.000000,40.141623,1,2460780.000000,"" +6225,user16,7350,564072.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,1014408.000000,7350.000000,1021758.000000,450336.000000,457686.000000,62.270204,0,1594950.000000,"" +6229,user16,1170,564074.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,1021758.000000,1170.000000,1022928.000000,457684.000000,458854.000000,392.182906,0,253890.000000,"" +6219,user16,19170,564069.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,1004283.000000,19170.000000,1023453.000000,440214.000000,459384.000000,23.963693,1,4159890.000000,"" +6226,user16,8710,564072.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,1014893.000000,8710.000000,1023603.000000,450821.000000,459531.000000,52.759013,1,1890070.000000,"" +6216,user16,26950,564067.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,997161.000000,26950.000000,1024111.000000,433094.000000,460044.000000,17.070278,0,5848150.000000,"" +6232,user16,850,564076.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,1023603.000000,850.000000,1024453.000000,459527.000000,460377.000000,541.620000,1,184450.000000,"" +6228,user16,5560,564073.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,1019276.000000,5560.000000,1024836.000000,455203.000000,460763.000000,82.871043,1,1206520.000000,"" +4377,user16,86450,343279.000000,2,172890.000000,1,COMPLETED_SUCCESSFULLY,941002.000000,86450.000000,1027452.000000,597723.000000,684173.000000,7.914089,1,18759650.000000,"" +6230,user16,5270,564075.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,1022928.000000,5270.000000,1028198.000000,458853.000000,464123.000000,88.068880,0,1143590.000000,"" +4383,user16,71730,343282.000000,2,143440.000000,1,COMPLETED_SUCCESSFULLY,957929.000000,71730.000000,1029659.000000,614647.000000,686377.000000,9.568897,0,15565410.000000,"" +6234,user16,7200,564077.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,1024453.000000,7200.000000,1031653.000000,460376.000000,467576.000000,64.941111,1,1562400.000000,"" +4379,user16,86440,343280.000000,2,172862.000000,1,COMPLETED_SUCCESSFULLY,947840.000000,86440.000000,1034280.000000,604560.000000,691000.000000,7.993984,0,18757480.000000,"" +6223,user16,25570,564071.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,1009292.000000,25570.000000,1034862.000000,445221.000000,470791.000000,18.411850,1,5548690.000000,"" +6390,user16,5930,575061.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,1031653.000000,5930.000000,1037583.000000,456592.000000,462522.000000,77.996965,1,1286810.000000,"" +6392,user16,2900,575062.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,1034862.000000,2900.000000,1037762.000000,459800.000000,462700.000000,159.551724,1,629300.000000,"" +6213,user16,47580,564066.000000,2,95152.000000,1,COMPLETED_SUCCESSFULLY,990600.000000,47580.000000,1038180.000000,426534.000000,474114.000000,9.964565,0,10324860.000000,"" +4384,user16,75700,343282.000000,2,151388.000000,1,COMPLETED_SUCCESSFULLY,962614.000000,75700.000000,1038314.000000,619332.000000,695032.000000,9.181400,1,16426900.000000,"" +6231,user16,15000,564075.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,1023453.000000,15000.000000,1038453.000000,459378.000000,474378.000000,31.625200,1,3255000.000000,"" +6235,user16,15140,564077.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,1024836.000000,15140.000000,1039976.000000,460759.000000,475899.000000,31.433223,1,3285380.000000,"" +6394,user16,3660,575063.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,1037762.000000,3660.000000,1041422.000000,462699.000000,466359.000000,127.420492,1,794220.000000,"" +6395,user16,3870,575064.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,1038180.000000,3870.000000,1042050.000000,463116.000000,466986.000000,120.668217,0,839790.000000,"" +6388,user16,13990,575060.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,1028198.000000,13990.000000,1042188.000000,453138.000000,467128.000000,33.390136,0,3035830.000000,"" +6389,user16,12930,575060.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,1029659.000000,12930.000000,1042589.000000,454599.000000,467529.000000,36.158469,0,2805810.000000,"" +6397,user16,4220,575065.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,1038453.000000,4220.000000,1042673.000000,463388.000000,467608.000000,110.807583,1,915740.000000,"" +6396,user16,5200,575064.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,1038314.000000,5200.000000,1043514.000000,463250.000000,468450.000000,90.086538,1,1128400.000000,"" +6404,user16,870,575068.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,1042673.000000,870.000000,1043543.000000,467605.000000,468475.000000,538.477011,1,188790.000000,"" +6227,user16,28810,564073.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,1015217.000000,28810.000000,1044027.000000,451144.000000,479954.000000,16.659285,1,6251770.000000,"" +6391,user16,11650,575062.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,1034280.000000,11650.000000,1045930.000000,459218.000000,470868.000000,40.417854,0,2528050.000000,"" +6405,user16,3100,575069.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,1043514.000000,3100.000000,1046614.000000,468445.000000,471545.000000,152.111290,1,672700.000000,"" +6393,user16,9830,575063.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,1037583.000000,9830.000000,1047413.000000,462520.000000,472350.000000,48.051882,1,2133110.000000,"" +6233,user16,25560,564076.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,1024111.000000,25560.000000,1049671.000000,460035.000000,485595.000000,18.998239,0,5546520.000000,"" +6408,user16,4360,575070.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,1045930.000000,4360.000000,1050290.000000,470860.000000,475220.000000,108.995413,0,946120.000000,"" +4385,user16,86420,343283.000000,2,172828.000000,1,COMPLETED_SUCCESSFULLY,964159.000000,86420.000000,1050579.000000,620876.000000,707296.000000,8.184402,0,18753140.000000,"" +6398,user16,10820,575066.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,1039976.000000,10820.000000,1050796.000000,464910.000000,475730.000000,43.967652,1,2347940.000000,"" +6224,user16,42030,564071.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,1009534.000000,42030.000000,1051564.000000,445463.000000,487493.000000,11.598691,1,9120510.000000,"" +6407,user16,8320,575070.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,1044027.000000,8320.000000,1052347.000000,468957.000000,477277.000000,57.365024,1,1805440.000000,"" +6406,user16,9240,575069.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,1043543.000000,9240.000000,1052783.000000,468474.000000,477714.000000,51.700649,1,2005080.000000,"" +6412,user16,2780,575072.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,1050290.000000,2780.000000,1053070.000000,475218.000000,477998.000000,171.941727,0,603260.000000,"" +6400,user16,11390,575067.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,1042050.000000,11390.000000,1053440.000000,466983.000000,478373.000000,41.999385,0,2471630.000000,"" +6417,user16,3890,575076.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,1052783.000000,3890.000000,1056673.000000,477707.000000,481597.000000,123.803856,1,844130.000000,"" +6402,user16,15770,575067.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,1042188.000000,15770.000000,1057958.000000,467121.000000,482891.000000,30.620862,0,3422090.000000,"" +6413,user16,8850,575073.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,1050579.000000,8850.000000,1059429.000000,475506.000000,484356.000000,54.729492,0,1920450.000000,"" +6403,user16,16930,575068.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,1042589.000000,16930.000000,1059519.000000,467521.000000,484451.000000,28.614944,0,3673810.000000,"" +6422,user16,1280,575078.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,1059429.000000,1280.000000,1060709.000000,484351.000000,485631.000000,379.399219,0,277760.000000,"" +4386,user16,86410,343283.000000,2,172816.000000,1,COMPLETED_SUCCESSFULLY,974831.000000,86410.000000,1061241.000000,631548.000000,717958.000000,8.308737,0,18750970.000000,"" +4387,user16,86420,343283.000000,2,172838.000000,1,COMPLETED_SUCCESSFULLY,975069.000000,86420.000000,1061489.000000,631786.000000,718206.000000,8.310646,0,18753140.000000,"" +6411,user16,13710,575072.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,1049671.000000,13710.000000,1063381.000000,474599.000000,488309.000000,35.616995,0,2975069.999999,"" +6399,user16,22730,575066.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,1041422.000000,22730.000000,1064152.000000,466356.000000,489086.000000,21.517202,1,4932409.999999,"" +6427,user16,1590,575081.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,1063381.000000,1590.000000,1064971.000000,488300.000000,489890.000000,308.106918,0,345030.000000,"" +6387,user16,37850,575059.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,1027452.000000,37850.000000,1065302.000000,452393.000000,490243.000000,12.952259,1,8213449.999999,"" +6418,user16,13780,575076.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,1053070.000000,13780.000000,1066850.000000,477994.000000,491774.000000,35.687518,0,2990260.000000,"" +6428,user16,4670,575082.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,1064152.000000,4670.000000,1068822.000000,489070.000000,493740.000000,105.725910,1,1013390.000000,"" +6423,user16,9850,575079.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,1059519.000000,9850.000000,1069369.000000,484440.000000,494290.000000,50.181726,0,2137450.000000,"" +6429,user16,5060,575082.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,1064971.000000,5060.000000,1070031.000000,489889.000000,494949.000000,97.816008,0,1098020.000000,"" +6424,user16,10130,575079.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,1060709.000000,10130.000000,1070839.000000,485630.000000,495760.000000,48.939783,0,2198210.000000,"" +6432,user16,2140,575084.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,1068822.000000,2140.000000,1070962.000000,493738.000000,495878.000000,231.718692,1,464380.000000,"" +6420,user16,14960,575077.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,1056673.000000,14960.000000,1071633.000000,481596.000000,496556.000000,33.192246,1,3246319.999999,"" +6426,user16,12090,575081.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,1061489.000000,12090.000000,1073579.000000,486408.000000,498498.000000,41.232258,0,2623529.999999,"" +6430,user16,8630,575083.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,1065302.000000,8630.000000,1073932.000000,490219.000000,498849.000000,57.804056,1,1872710.000000,"" +6437,user16,2820,575086.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,1071633.000000,2820.000000,1074453.000000,496547.000000,499367.000000,177.080496,1,611940.000000,"" +6416,user16,23050,575075.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,1052347.000000,23050.000000,1075397.000000,477272.000000,500322.000000,21.705944,1,5001849.999999,"" +6438,user16,2460,575087.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,1073579.000000,2460.000000,1076039.000000,498492.000000,500952.000000,203.639024,0,533820.000000,"" +6436,user16,6220,575086.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,1070962.000000,6220.000000,1077182.000000,495876.000000,502096.000000,80.722830,1,1349740.000000,"" +6441,user16,1960,575088.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,1075397.000000,1960.000000,1077357.000000,500309.000000,502269.000000,256.259694,1,425320.000000,"" +6415,user16,26110,575075.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,1051564.000000,26110.000000,1077674.000000,476489.000000,502599.000000,19.249291,1,5665869.999999,"" +6442,user16,1780,575089.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,1076039.000000,1780.000000,1077819.000000,500950.000000,502730.000000,282.432584,0,386260.000000,"" +6439,user16,4390,575087.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,1073932.000000,4390.000000,1078322.000000,498845.000000,503235.000000,114.632118,1,952630.000000,"" +6433,user16,9790,575084.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,1069369.000000,9790.000000,1079159.000000,494285.000000,504075.000000,51.488764,0,2124429.999999,"" +6435,user16,9710,575085.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,1070839.000000,9710.000000,1080549.000000,495754.000000,505464.000000,52.056025,0,2107069.999999,"" +6434,user16,10750,575085.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,1070031.000000,10750.000000,1080781.000000,494946.000000,505696.000000,47.041488,0,2332749.999999,"" +6419,user16,28160,575077.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,1053440.000000,28160.000000,1081600.000000,478363.000000,506523.000000,17.987322,0,6110719.999999,"" +6421,user16,24030,575078.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,1057958.000000,24030.000000,1081988.000000,482880.000000,506910.000000,21.094881,0,5214509.999999,"" +6410,user16,34780,575071.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,1047413.000000,34780.000000,1082193.000000,472342.000000,507122.000000,14.580851,1,7547259.999998,"" +6414,user16,31530,575073.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,1050796.000000,31530.000000,1082326.000000,475723.000000,507253.000000,16.087948,1,6842009.999998,"" +6454,user16,590,575094.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,1082193.000000,590.000000,1082783.000000,507099.000000,507689.000000,860.489831,1,128030.000000,"" +6451,user16,2010,575093.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,1080781.000000,2010.000000,1082791.000000,505688.000000,507698.000000,252.586070,0,436170.000000,"" +6449,user16,4040,575092.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,1079159.000000,4040.000000,1083199.000000,504067.000000,508107.000000,125.769059,0,876680.000000,"" +6444,user16,6000,575090.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,1077357.000000,6000.000000,1083357.000000,502267.000000,508267.000000,84.711167,1,1301999.999999,"" +6452,user16,2050,575093.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,1081600.000000,2050.000000,1083650.000000,506507.000000,508557.000000,248.076585,0,444850.000000,"" +6450,user16,3390,575092.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,1080549.000000,3390.000000,1083939.000000,505457.000000,508847.000000,150.102360,0,735630.000000,"" +6431,user16,17210,575083.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,1066850.000000,17210.000000,1084060.000000,491767.000000,508977.000000,29.574492,0,3734569.999999,"" +6443,user16,7140,575089.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,1077182.000000,7140.000000,1084322.000000,502093.000000,509233.000000,71.321148,1,1549379.999999,"" +6462,user16,1500,575098.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,1084060.000000,1500.000000,1085560.000000,508962.000000,510462.000000,340.308000,0,325500.000000,"" +6447,user16,8110,575091.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,1077819.000000,8110.000000,1085929.000000,502728.000000,510838.000000,62.988656,0,1759869.999999,"" +6440,user16,11880,575088.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,1074453.000000,11880.000000,1086333.000000,499365.000000,511245.000000,43.034091,1,2577959.999999,"" +6409,user16,41190,575071.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,1046614.000000,41190.000000,1087804.000000,471543.000000,512733.000000,12.447997,1,8938229.999998,"" +6463,user16,5310,575099.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,1084322.000000,5310.000000,1089632.000000,509223.000000,514533.000000,96.898870,1,1152270.000000,"" +6455,user16,7520,575095.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,1082326.000000,7520.000000,1089846.000000,507231.000000,514751.000000,68.450931,1,1631839.999999,"" +6445,user16,12880,575090.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,1077674.000000,12880.000000,1090554.000000,502584.000000,515464.000000,40.020497,1,2794959.999999,"" +6465,user16,5170,575100.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,1085929.000000,5170.000000,1091099.000000,510829.000000,515999.000000,99.806383,0,1121890.000000,"" +6457,user16,8450,575096.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,1082791.000000,8450.000000,1091241.000000,507695.000000,516145.000000,61.082249,0,1833649.999999,"" +6425,user16,31220,575080.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,1061241.000000,31220.000000,1092461.000000,486161.000000,517381.000000,16.572101,0,6774739.999998,"" +6453,user16,10930,575094.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,1081988.000000,10930.000000,1092918.000000,506894.000000,517824.000000,47.376395,0,2371809.999999,"" +6456,user16,11120,575095.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,1082783.000000,11120.000000,1093903.000000,507688.000000,518808.000000,46.655396,1,2413039.999999,"" +6473,user16,1640,575104.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,1092461.000000,1640.000000,1094101.000000,517357.000000,518997.000000,316.461585,0,355880.000000,"" +6471,user16,3560,575103.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,1091099.000000,3560.000000,1094659.000000,515996.000000,519556.000000,145.942697,0,772520.000000,"" +6472,user16,3580,575103.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,1091241.000000,3580.000000,1094821.000000,516138.000000,519718.000000,145.172626,0,776860.000000,"" +6461,user16,11400,575098.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,1083939.000000,11400.000000,1095339.000000,508841.000000,520241.000000,45.635175,0,2473799.999999,"" +6466,user16,9330,575100.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,1086333.000000,9330.000000,1095663.000000,511233.000000,520563.000000,55.794534,1,2024609.999999,"" +6470,user16,5340,575103.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,1090554.000000,5340.000000,1095894.000000,515451.000000,520791.000000,97.526404,1,1158780.000000,"" +6458,user16,12980,575096.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,1083199.000000,12980.000000,1096179.000000,508103.000000,521083.000000,40.145069,0,2816659.999999,"" +6467,user16,8380,575101.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,1087804.000000,8380.000000,1096184.000000,512703.000000,521083.000000,62.181742,1,1818459.999999,"" +6477,user16,1670,575106.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,1094659.000000,1670.000000,1096329.000000,519553.000000,521223.000000,312.109581,0,362390.000000,"" +6476,user16,2270,575106.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,1094101.000000,2270.000000,1096371.000000,518995.000000,521265.000000,229.632159,0,492590.000000,"" +6475,user16,3740,575105.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,1093903.000000,3740.000000,1097643.000000,518798.000000,522538.000000,139.716043,1,811579.999999,"" +6478,user16,2850,575107.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,1094821.000000,2850.000000,1097671.000000,519714.000000,522564.000000,183.355789,0,618450.000000,"" +6464,user16,12240,575099.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,1085560.000000,12240.000000,1097800.000000,510461.000000,522701.000000,42.704330,0,2656079.999999,"" +7255,user16,910,633763.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,1097643.000000,910.000000,1098553.000000,463880.000000,464790.000000,510.758242,1,197470.000000,"" +6484,user16,2970,575110.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,1096329.000000,2970.000000,1099299.000000,521219.000000,524189.000000,176.494613,0,644490.000000,"" +7256,user16,1870,633764.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,1097671.000000,1870.000000,1099541.000000,463907.000000,465777.000000,249.078610,0,405790.000000,"" +7257,user16,3150,633764.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,1097800.000000,3150.000000,1100950.000000,464036.000000,467186.000000,148.313016,0,683550.000000,"" +6460,user16,17350,575097.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,1083650.000000,17350.000000,1101000.000000,508553.000000,525903.000000,30.311412,0,3764949.999999,"" +6480,user16,5910,575108.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,1095663.000000,5910.000000,1101573.000000,520555.000000,526465.000000,89.080372,1,1282469.999999,"" +7260,user16,2360,633766.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,1099541.000000,2360.000000,1101901.000000,465775.000000,468135.000000,198.362288,0,512120.000000,"" +6485,user16,5690,575110.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,1096371.000000,5690.000000,1102061.000000,521261.000000,526951.000000,92.610018,0,1234730.000000,"" +6481,user16,6420,575108.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,1095894.000000,6420.000000,1102314.000000,520786.000000,527206.000000,82.119315,1,1393139.999999,"" +6482,user16,6650,575109.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,1096179.000000,6650.000000,1102829.000000,521070.000000,527720.000000,79.356391,0,1443049.999999,"" +7265,user16,1150,633768.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,1102061.000000,1150.000000,1103211.000000,468293.000000,469443.000000,408.211304,0,249550.000000,"" +7268,user16,1150,633769.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,1103211.000000,1150.000000,1104361.000000,469442.000000,470592.000000,409.210435,0,249550.000000,"" +6448,user16,26960,575091.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,1078322.000000,26960.000000,1105282.000000,503231.000000,530191.000000,19.665838,1,5850319.999998,"" +6479,user16,10250,575107.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,1095339.000000,10250.000000,1105589.000000,520232.000000,530482.000000,51.754341,0,2224249.999999,"" +6474,user16,13260,575105.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,1092918.000000,13260.000000,1106178.000000,517813.000000,531073.000000,40.050754,0,2877419.999999,"" +7266,user16,4130,633769.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,1102314.000000,4130.000000,1106444.000000,468545.000000,472675.000000,114.449153,1,896210.000000,"" +6459,user16,23090,575097.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,1083357.000000,23090.000000,1106447.000000,508260.000000,531350.000000,23.012126,1,5010529.999998,"" +7267,user16,4190,633769.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,1102829.000000,4190.000000,1107019.000000,469060.000000,473250.000000,112.947494,0,909230.000000,"" +6483,user16,10870,575109.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,1096184.000000,10870.000000,1107054.000000,521075.000000,531945.000000,48.936983,1,2358789.999999,"" +6468,user16,19850,575102.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,1089632.000000,19850.000000,1109482.000000,514530.000000,534380.000000,26.920907,1,4307449.999998,"" +7264,user16,8030,633768.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,1101901.000000,8030.000000,1109931.000000,468133.000000,476163.000000,59.298007,0,1742509.999999,"" +6469,user16,20460,575102.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,1089846.000000,20460.000000,1110306.000000,514744.000000,535204.000000,26.158553,1,4439819.999998,"" +7259,user16,12140,633765.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,1099299.000000,12140.000000,1111439.000000,465534.000000,477674.000000,39.347117,0,2634379.999999,"" +7261,user16,10730,633766.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,1100950.000000,10730.000000,1111680.000000,467184.000000,477914.000000,44.539981,0,2328409.999999,"" +7263,user16,10700,633767.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,1101573.000000,10700.000000,1112273.000000,467806.000000,478506.000000,44.720187,1,2321899.999999,"" +7258,user16,15330,633765.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,1098553.000000,15330.000000,1113883.000000,464788.000000,480118.000000,31.318852,1,3326609.999999,"" +9491,user16,4230,830652.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,1113883.000000,4230.000000,1118113.000000,283231.000000,287461.000000,67.957683,1,917910.000000,"" +7269,user16,17710,633787.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,1104361.000000,17710.000000,1122071.000000,470574.000000,488284.000000,27.571090,0,3843069.999999,"" +7262,user16,25070,633767.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,1101000.000000,25070.000000,1126070.000000,467233.000000,492303.000000,19.637136,0,5440189.999999,"" +9492,user16,10780,830652.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,1118113.000000,10780.000000,1128893.000000,287461.000000,298241.000000,27.666141,1,2339260.000000,"" +9483,user16,62870,830648.000000,2,125722.000000,1,COMPLETED_SUCCESSFULLY,1107019.000000,62870.000000,1169889.000000,276371.000000,339241.000000,5.395912,0,13642789.999999,"" +9494,user16,44770,830653.000000,2,89530.000000,1,COMPLETED_SUCCESSFULLY,1126070.000000,44770.000000,1170840.000000,295417.000000,340187.000000,7.598548,0,9715090.000000,"" +9482,user16,72800,830647.000000,2,145592.000000,1,COMPLETED_SUCCESSFULLY,1106447.000000,72800.000000,1179247.000000,275800.000000,348600.000000,4.788462,1,15797599.999999,"" +9496,user16,15260,830654.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,1169889.000000,15260.000000,1185149.000000,339235.000000,354495.000000,23.230341,0,3311420.000000,"" +9488,user16,74770,830650.000000,2,149536.000000,1,COMPLETED_SUCCESSFULLY,1111439.000000,74770.000000,1186209.000000,280789.000000,355559.000000,4.755370,0,16225089.999999,"" +9478,user16,86430,830646.000000,2,172850.000000,1,COMPLETED_SUCCESSFULLY,1105282.000000,86430.000000,1191712.000000,274636.000000,361066.000000,4.177554,1,18755309.999999,"" +9479,user16,86420,830646.000000,2,172830.000000,1,COMPLETED_SUCCESSFULLY,1105589.000000,86420.000000,1192009.000000,274943.000000,361363.000000,4.181474,0,18753139.999999,"" +9480,user16,86420,830646.000000,2,172828.000000,1,COMPLETED_SUCCESSFULLY,1106178.000000,86420.000000,1192598.000000,275532.000000,361952.000000,4.188290,0,18753139.999999,"" +9481,user16,86430,830647.000000,2,172840.000000,1,COMPLETED_SUCCESSFULLY,1106444.000000,86430.000000,1192874.000000,275797.000000,362227.000000,4.190987,1,18755309.999999,"" +9484,user16,86410,830648.000000,2,172804.000000,1,COMPLETED_SUCCESSFULLY,1107054.000000,86410.000000,1193464.000000,276406.000000,362816.000000,4.198773,1,18750969.999999,"" +9502,user16,3660,830662.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,1192009.000000,3660.000000,1195669.000000,361347.000000,365007.000000,99.728689,0,794220.000000,"" +9485,user16,86410,830649.000000,2,172804.000000,1,COMPLETED_SUCCESSFULLY,1109482.000000,86410.000000,1195892.000000,278833.000000,365243.000000,4.226860,1,18750969.999999,"" +9486,user16,86410,830649.000000,2,172802.000000,1,COMPLETED_SUCCESSFULLY,1109931.000000,86410.000000,1196341.000000,279282.000000,365692.000000,4.232056,0,18750969.999999,"" +9487,user16,86450,830650.000000,2,172894.000000,1,COMPLETED_SUCCESSFULLY,1110306.000000,86450.000000,1196756.000000,279656.000000,366106.000000,4.234887,1,18759649.999999,"" +9489,user16,86450,830651.000000,2,172886.000000,1,COMPLETED_SUCCESSFULLY,1111680.000000,86450.000000,1198130.000000,281029.000000,367479.000000,4.250769,0,18759649.999999,"" +9490,user16,86450,830651.000000,2,172884.000000,1,COMPLETED_SUCCESSFULLY,1112273.000000,86450.000000,1198723.000000,281622.000000,368072.000000,4.257629,1,18759649.999999,"" +9507,user16,4350,830664.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,1195892.000000,4350.000000,1200242.000000,365228.000000,369578.000000,84.960460,1,943950.000000,"" +9509,user16,6740,830665.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,1196756.000000,6740.000000,1203496.000000,366091.000000,372831.000000,55.316172,1,1462580.000000,"" +9505,user16,14390,830663.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,1193464.000000,14390.000000,1207854.000000,362801.000000,377191.000000,26.212022,1,3122630.000000,"" +9493,user16,86440,830653.000000,2,172876.000000,1,COMPLETED_SUCCESSFULLY,1122071.000000,86440.000000,1208511.000000,291418.000000,377858.000000,4.371333,0,18757479.999999,"" +9503,user16,18090,830662.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,1192598.000000,18090.000000,1210688.000000,361936.000000,380026.000000,21.007518,0,3925529.999999,"" +9495,user16,86460,830654.000000,2,172906.000000,1,COMPLETED_SUCCESSFULLY,1128893.000000,86460.000000,1215353.000000,298239.000000,384699.000000,4.449445,1,18761819.999999,"" +9497,user16,47740,830655.000000,2,95478.000000,1,COMPLETED_SUCCESSFULLY,1170840.000000,47740.000000,1218580.000000,340185.000000,387925.000000,8.125786,0,10359579.999999,"" +9513,user16,17630,830667.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,1203496.000000,17630.000000,1221126.000000,372829.000000,390459.000000,22.147419,1,3825710.000000,"" +9515,user16,21610,830668.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,1208511.000000,21610.000000,1230121.000000,377843.000000,399453.000000,18.484637,0,4689370.000000,"" +9498,user16,60670,830655.000000,2,121332.000000,1,COMPLETED_SUCCESSFULLY,1179247.000000,60670.000000,1239917.000000,348592.000000,409262.000000,6.745706,1,13165389.999999,"" +9499,user16,62850,830656.000000,2,125692.000000,1,COMPLETED_SUCCESSFULLY,1185149.000000,62850.000000,1247999.000000,354493.000000,417343.000000,6.640302,0,13638449.999999,"" +9520,user16,23990,830670.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,1230121.000000,23990.000000,1254111.000000,399451.000000,423441.000000,17.650729,0,5205830.000000,"" +9512,user16,58380,830667.000000,2,116742.000000,1,COMPLETED_SUCCESSFULLY,1200242.000000,58380.000000,1258622.000000,369575.000000,427955.000000,7.330507,1,12668460.000000,"" +9508,user16,63130,830665.000000,2,126242.000000,1,COMPLETED_SUCCESSFULLY,1196341.000000,63130.000000,1259471.000000,365676.000000,428806.000000,6.792428,0,13699209.999999,"" +9517,user16,51120,830669.000000,2,102226.000000,1,COMPLETED_SUCCESSFULLY,1215353.000000,51120.000000,1266473.000000,384684.000000,435804.000000,8.525117,1,11093040.000000,"" +9504,user16,76780,830663.000000,2,153540.000000,1,COMPLETED_SUCCESSFULLY,1192874.000000,76780.000000,1269654.000000,362211.000000,438991.000000,5.717518,1,16661259.999999,"" +9526,user16,5360,830673.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,1266473.000000,5360.000000,1271833.000000,435800.000000,441160.000000,82.305970,1,1163120.000000,"" +9500,user16,86450,830656.000000,2,172898.000000,1,COMPLETED_SUCCESSFULLY,1186209.000000,86450.000000,1272659.000000,355553.000000,442003.000000,5.112817,0,18759649.999999,"" +9511,user16,78580,830666.000000,2,157150.000000,1,COMPLETED_SUCCESSFULLY,1198723.000000,78580.000000,1277303.000000,368057.000000,446637.000000,5.683851,1,17051859.999999,"" +9501,user16,86450,830661.000000,2,172884.000000,1,COMPLETED_SUCCESSFULLY,1191712.000000,86450.000000,1278162.000000,361051.000000,447501.000000,5.176414,1,18759649.999999,"" +9506,user16,86430,830664.000000,2,172852.000000,1,COMPLETED_SUCCESSFULLY,1195669.000000,86430.000000,1282099.000000,365005.000000,451435.000000,5.223129,0,18755309.999999,"" +9510,user16,86450,830666.000000,2,172894.000000,1,COMPLETED_SUCCESSFULLY,1198130.000000,86450.000000,1284580.000000,367464.000000,453914.000000,5.250596,0,18759649.999999,"" +9514,user16,86450,830667.000000,2,172896.000000,1,COMPLETED_SUCCESSFULLY,1207854.000000,86450.000000,1294304.000000,377187.000000,463637.000000,5.363065,1,18759649.999999,"" +9516,user16,86460,830668.000000,2,172902.000000,1,COMPLETED_SUCCESSFULLY,1210688.000000,86460.000000,1297148.000000,380020.000000,466480.000000,5.395327,0,18761819.999999,"" +9518,user16,86430,830669.000000,2,172854.000000,1,COMPLETED_SUCCESSFULLY,1218580.000000,86430.000000,1305010.000000,387911.000000,474341.000000,5.488152,0,18755309.999999,"" +9519,user16,86440,830670.000000,2,172862.000000,1,COMPLETED_SUCCESSFULLY,1221126.000000,86440.000000,1307566.000000,390456.000000,476896.000000,5.517075,1,18757479.999999,"" +9529,user16,38660,830674.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,1272659.000000,38660.000000,1311319.000000,441985.000000,480645.000000,12.432618,0,8389220.000000,"" +9531,user16,33330,830675.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,1278162.000000,33330.000000,1311492.000000,447487.000000,480817.000000,14.425953,1,7232610.000000,"" +9524,user16,58010,830672.000000,2,116000.000000,1,COMPLETED_SUCCESSFULLY,1258622.000000,58010.000000,1316632.000000,427950.000000,485960.000000,8.377176,1,12588169.999999,"" +9534,user16,25140,830677.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,1294304.000000,25140.000000,1319444.000000,463627.000000,488767.000000,19.441806,1,5455380.000000,"" +9521,user16,85660,830671.000000,2,171308.000000,1,COMPLETED_SUCCESSFULLY,1239917.000000,85660.000000,1325577.000000,409246.000000,494906.000000,5.777562,1,18588219.999999,"" +9538,user16,19180,830678.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,1311319.000000,19180.000000,1330499.000000,480641.000000,499821.000000,26.059489,0,4162060.000000,"" +9522,user16,86450,830671.000000,2,172880.000000,1,COMPLETED_SUCCESSFULLY,1247999.000000,86450.000000,1334449.000000,417328.000000,503778.000000,5.827392,0,18759649.999999,"" +9532,user16,54850,830676.000000,2,109682.000000,1,COMPLETED_SUCCESSFULLY,1282099.000000,54850.000000,1336949.000000,451423.000000,506273.000000,9.230137,0,11902449.999999,"" +9525,user16,78290,830672.000000,2,156578.000000,1,COMPLETED_SUCCESSFULLY,1259471.000000,78290.000000,1337761.000000,428799.000000,507089.000000,6.477060,0,16988929.999999,"" +9536,user16,33610,830677.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,1305010.000000,33610.000000,1338620.000000,474333.000000,507943.000000,15.112853,0,7293370.000000,"" +9542,user16,13700,830680.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,1325577.000000,13700.000000,1339277.000000,494897.000000,508597.000000,37.123869,1,2972900.000000,"" +9528,user16,68670,830674.000000,2,137330.000000,1,COMPLETED_SUCCESSFULLY,1271833.000000,68670.000000,1340503.000000,441159.000000,509829.000000,7.424334,1,14901389.999999,"" +9523,user16,86440,830672.000000,2,172868.000000,1,COMPLETED_SUCCESSFULLY,1254111.000000,86440.000000,1340551.000000,423439.000000,509879.000000,5.898646,0,18757479.999999,"" +9550,user16,70,830684.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,1340551.000000,70.000000,1340621.000000,509867.000000,509937.000000,7284.814286,0,15190.000000,"" +9551,user16,10,830759.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,1340621.000000,10.000000,1340631.000000,509862.000000,509872.000000,50987.200000,0,2170.000000,"" +9552,user16,10,830837.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,1340631.000000,10.000000,1340641.000000,509794.000000,509804.000000,50980.400000,0,2170.000000,"" +9544,user16,6630,830681.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,1334449.000000,6630.000000,1341079.000000,503768.000000,510398.000000,76.983107,0,1432304.250000,"" +9546,user16,7790,830682.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,1337761.000000,7790.000000,1345551.000000,507079.000000,514869.000000,66.093582,0,1684024.250000,"" +9540,user16,32070,830679.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,1316632.000000,32070.000000,1348702.000000,485953.000000,518023.000000,16.152884,1,6959189.999999,"" +9527,user16,86440,830673.000000,2,172868.000000,1,COMPLETED_SUCCESSFULLY,1269654.000000,86440.000000,1356094.000000,438981.000000,525421.000000,6.078447,1,18649371.999999,"" +9545,user16,20480,830682.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,1336949.000000,20480.000000,1357429.000000,506267.000000,526747.000000,25.720068,0,4264038.500000,"" +1956,user18,520,300993.000000,4,7200.000000,1,COMPLETED_SUCCESSFULLY,1357429.000000,520.000000,1357949.000000,1056436.000000,1056956.000000,2032.607692,0,112840.000000,"" +1962,user18,580,301560.000000,4,7200.000000,1,COMPLETED_SUCCESSFULLY,1357949.000000,580.000000,1358529.000000,1056389.000000,1056969.000000,1822.360345,0,125860.000000,"" +9549,user16,19220,830683.000000,2,86400.000000,1,COMPLETED_SUCCESSFULLY,1340503.000000,19220.000000,1359723.000000,509820.000000,529040.000000,27.525494,1,4062632.000000,"" +9533,user16,78840,830676.000000,2,157672.000000,1,COMPLETED_SUCCESSFULLY,1284580.000000,78840.000000,1363420.000000,453904.000000,532744.000000,6.757281,0,16928158.499999,"" +2427,user15,22450,300733.000000,4,2592000.000000,1,COMPLETED_SUCCESSFULLY,1341079.000000,22450.000000,1363529.000000,1040346.000000,1062796.000000,47.340579,0,4696340.125000,"" +9530,user16,86420,830675.000000,2,172826.000000,1,COMPLETED_SUCCESSFULLY,1277303.000000,86420.000000,1363723.000000,446628.000000,533048.000000,6.168109,1,18586531.999999,"" +9541,user16,45740,830680.000000,2,91476.000000,1,COMPLETED_SUCCESSFULLY,1319444.000000,45740.000000,1365184.000000,488764.000000,534504.000000,11.685702,1,9758971.999999,"" +9539,user16,62250,830679.000000,2,124486.000000,1,COMPLETED_SUCCESSFULLY,1311492.000000,62250.000000,1373742.000000,480813.000000,543063.000000,8.723904,1,13216481.249999,"" +2428,user15,18080,300974.000000,4,2592000.000000,1,COMPLETED_SUCCESSFULLY,1356094.000000,18080.000000,1374174.000000,1055120.000000,1073200.000000,59.358407,1,3739699.250000,"" +2442,user15,19990,301942.000000,4,2592000.000000,1,COMPLETED_SUCCESSFULLY,1358529.000000,19990.000000,1378519.000000,1056587.000000,1076577.000000,53.855778,0,4117007.125000,"" +9535,user16,86420,830677.000000,2,172832.000000,1,COMPLETED_SUCCESSFULLY,1297148.000000,86420.000000,1383568.000000,466471.000000,552891.000000,6.397720,0,18130670.749999,"" +2443,user15,20310,302036.000000,4,2592000.000000,1,COMPLETED_SUCCESSFULLY,1363529.000000,20310.000000,1383839.000000,1061493.000000,1081803.000000,53.264549,0,3950662.875000,"" +8596,user15,22700,730546.000000,4,2592000.000000,1,COMPLETED_SUCCESSFULLY,1363723.000000,22700.000000,1386423.000000,633177.000000,655877.000000,28.893260,1,4800739.250000,"" +8598,user15,19250,730564.000000,4,2592000.000000,1,COMPLETED_SUCCESSFULLY,1374174.000000,19250.000000,1393424.000000,643610.000000,662860.000000,34.434286,1,3972470.750000,"" +9537,user16,86410,830678.000000,2,172810.000000,1,COMPLETED_SUCCESSFULLY,1307566.000000,86410.000000,1393976.000000,476888.000000,563298.000000,6.518898,1,18222129.999999,"" +8597,user15,23550,730546.000000,4,2592000.000000,1,COMPLETED_SUCCESSFULLY,1373742.000000,23550.000000,1397292.000000,643196.000000,666746.000000,28.311932,1,4630796.250000,"" +9543,user16,86420,830681.000000,2,172832.000000,1,COMPLETED_SUCCESSFULLY,1330499.000000,86420.000000,1416919.000000,499818.000000,586238.000000,6.783592,0,15212047.249999,"" +9547,user16,81400,830683.000000,2,162790.000000,1,COMPLETED_SUCCESSFULLY,1338620.000000,81400.000000,1420020.000000,507937.000000,589337.000000,7.240012,0,13805242.375000,"" +9548,user16,86460,830683.000000,2,172902.000000,1,COMPLETED_SUCCESSFULLY,1339277.000000,86460.000000,1425737.000000,508594.000000,595054.000000,6.882420,1,15078440.624999,"" diff --git a/test/schedconf/dm_user_multi_behavior.json b/test/schedconf/dm_user_multi_behavior.json new file mode 100644 index 0000000000000000000000000000000000000000..5f0becbbf46f0d6c83708b0934beef3005b02a57 --- /dev/null +++ b/test/schedconf/dm_user_multi_behavior.json @@ -0,0 +1,68 @@ +{ + "seed" : -3, + "red_windows" : [[200000, 300000]], + "log_user_stats" : true, + "log_folder" : "test-out/dm_user_multi_behavior-2machines/", + "users": [ + { + "name": "user14", + "category": "dm_user_multi_behavior", + "param": { + "input_json": "test/workloads/dyn/user14.json", + "red_prob_rigid" : 0.2, + "red_prob_degrad" : 0.2, + "red_prob_reconfig" : 0.2, + "red_prob_renonce" : 0.2, + "red_prob_see_you_later": 0.2, + "yellow_prob_degrad" : 0.3, + "yellow_prob_reconfig" : 0.3, + "yellow_prob_rigid" : 0.3 + } + }, + { + "name": "user15", + "category": "dm_user_multi_behavior", + "param": { + "input_json": "test/workloads/dyn/user15.json", + "red_prob_rigid" : 0.2, + "red_prob_degrad" : 0.2, + "red_prob_reconfig" : 0.2, + "red_prob_renonce" : 0.2, + "red_prob_see_you_later": 0.2, + "yellow_prob_degrad" : 0.3, + "yellow_prob_reconfig" : 0.3, + "yellow_prob_rigid" : 0.3 + } + }, + { + "name": "user16", + "category": "dm_user_multi_behavior", + "param": { + "input_json": "test/workloads/dyn/user16.json", + "red_prob_rigid" : 0.2, + "red_prob_degrad" : 0.2, + "red_prob_reconfig" : 0.2, + "red_prob_renonce" : 0.2, + "red_prob_see_you_later": 0.2, + "yellow_prob_degrad" : 0.3, + "yellow_prob_reconfig" : 0.3, + "yellow_prob_rigid" : 0.3 + } + }, + { + "name": "user18", + "category": "dm_user_multi_behavior", + "param": { + "input_json": "test/workloads/dyn/user18.json", + "red_prob_rigid" : 0.2, + "red_prob_degrad" : 0.2, + "red_prob_reconfig" : 0.2, + "red_prob_renonce" : 0.2, + "red_prob_see_you_later": 0.2, + "yellow_prob_degrad" : 0.3, + "yellow_prob_reconfig" : 0.3, + "yellow_prob_rigid" : 0.3 + } + } + ] +} \ No newline at end of file diff --git a/test/schedconf/dm_user_multi_behavior_C_you_later_only.json b/test/schedconf/dm_user_multi_behavior_C_you_later_only.json new file mode 100644 index 0000000000000000000000000000000000000000..efdfc50558e48f6feb94c90b7f84de306358e880 --- /dev/null +++ b/test/schedconf/dm_user_multi_behavior_C_you_later_only.json @@ -0,0 +1,38 @@ +{ + "seed" : -3, + "red_windows" : [[200000, 300000]], + "users": [ + { + "name": "user14", + "category": "dm_user_multi_behavior", + "param": { + "input_json": "test/workloads/dyn/user14.json", + "red_prob_see_you_later" : 1.0 + } + }, + { + "name": "user15", + "category": "dm_user_multi_behavior", + "param": { + "input_json": "test/workloads/dyn/user15.json", + "red_prob_see_you_later" : 1.0 + } + }, + { + "name": "user16", + "category": "dm_user_multi_behavior", + "param": { + "input_json": "test/workloads/dyn/user16.json", + "red_prob_see_you_later" : 1.0 + } + }, + { + "name": "user18", + "category": "dm_user_multi_behavior", + "param": { + "input_json": "test/workloads/dyn/user18.json", + "red_prob_see_you_later" : 1.0 + } + } + ] +} diff --git a/test/schedconf/dm_user_multi_behavior_C_you_later_only_two_jobs.json b/test/schedconf/dm_user_multi_behavior_C_you_later_only_two_jobs.json new file mode 100644 index 0000000000000000000000000000000000000000..bce8c480d5f13c17c3a94274c0c44511720bfddf --- /dev/null +++ b/test/schedconf/dm_user_multi_behavior_C_you_later_only_two_jobs.json @@ -0,0 +1,14 @@ +{ + "seed" : -3, + "red_windows" : [[0, 500]], + "users": [ + { + "name": "user14", + "category": "dm_user_multi_behavior", + "param": { + "input_json": "test/workloads/dyn/two_jobs.json", + "red_prob_see_you_later": 1.0 + } + } + ] +} diff --git a/test/schedconf/dm_user_multi_behavior_many_windows.json b/test/schedconf/dm_user_multi_behavior_many_windows.json new file mode 100644 index 0000000000000000000000000000000000000000..7d4ce24b86d33faae7d9ae4715eea50c9ea96853 --- /dev/null +++ b/test/schedconf/dm_user_multi_behavior_many_windows.json @@ -0,0 +1,76 @@ +{ + "seed" : -3, + "red_windows" : [[200000, 201000], [201000, 202000], [202000, 203000], [203000, 204000], [204000, 205000], [205000, 206000], [206000, 207000], [207000, 208000], [208000, 209000], + [209000, 210000], [210000, 211000], [211000, 212000], [212000, 213000], [213000, 214000], [214000, 215000], [215000, 216000], [216000, 217000], [217000, 218000], [218000, 219000], + [219000, 220000], [220000, 221000], [221000, 222000], [222000, 223000], [223000, 224000], [224000, 225000], [225000, 226000], [226000, 227000], [227000, 228000], [228000, 229000], + [229000, 230000], [230000, 231000], [231000, 232000], [232000, 233000], [233000, 234000], [234000, 235000], [235000, 236000], [236000, 237000], [237000, 238000], [238000, 239000], + [239000, 240000], [240000, 241000], [241000, 242000], [242000, 243000], [243000, 244000], [244000, 245000], [245000, 246000], [246000, 247000], [247000, 248000], [248000, 249000], + [249000, 250000], [250000, 251000], [251000, 252000], [252000, 253000], [253000, 254000], [254000, 255000], [255000, 256000], [256000, 257000], [257000, 258000], [258000, 259000], + [259000, 260000], [260000, 261000], [261000, 262000], [262000, 263000], [263000, 264000], [264000, 265000], [265000, 266000], [266000, 267000], [267000, 268000], [268000, 269000], + [269000, 270000], [270000, 271000], [271000, 272000], [272000, 273000], [273000, 274000], [274000, 275000], [275000, 276000], [276000, 277000], [277000, 278000], [278000, 279000], + [279000, 280000], [280000, 281000], [281000, 282000], [282000, 283000], [283000, 284000], [284000, 285000], [285000, 286000], [286000, 287000], [287000, 288000], [288000, 289000], + [289000, 290000], [290000, 291000], [291000, 292000], [292000, 293000], [293000, 294000], [294000, 295000], [295000, 296000], [296000, 297000], [297000, 298000], [298000, 299000], + [299000, 300000]], + "users": [ + { + "name": "user14", + "category": "dm_user_multi_behavior", + "param": { + "input_json": "test/workloads/dyn/user14.json", + "red_prob_rigid" : 0.2, + "red_prob_degrad" : 0.2, + "red_prob_reconfig" : 0.2, + "red_prob_renonce" : 0.2, + "red_prob_see_you_later": 0.2, + "yellow_prob_degrad" : 0.3, + "yellow_prob_reconfig" : 0.3, + "yellow_prob_rigid" : 0.3 + } + }, + { + "name": "user15", + "category": "dm_user_multi_behavior", + "param": { + "input_json": "test/workloads/dyn/user15.json", + "red_prob_rigid" : 0.2, + "red_prob_degrad" : 0.2, + "red_prob_reconfig" : 0.2, + "red_prob_renonce" : 0.2, + "red_prob_see_you_later": 0.2, + "yellow_prob_degrad" : 0.3, + "yellow_prob_reconfig" : 0.3, + "yellow_prob_rigid" : 0.3 + } + }, + { + "name": "user16", + "category": "dm_user_multi_behavior", + "param": { + "input_json": "test/workloads/dyn/user16.json", + "red_prob_rigid" : 0.2, + "red_prob_degrad" : 0.2, + "red_prob_reconfig" : 0.2, + "red_prob_renonce" : 0.2, + "red_prob_see_you_later": 0.2, + "yellow_prob_degrad" : 0.3, + "yellow_prob_reconfig" : 0.3, + "yellow_prob_rigid" : 0.3 + } + }, + { + "name": "user18", + "category": "dm_user_multi_behavior", + "param": { + "input_json": "test/workloads/dyn/user18.json", + "red_prob_rigid" : 0.2, + "red_prob_degrad" : 0.2, + "red_prob_reconfig" : 0.2, + "red_prob_renonce" : 0.2, + "red_prob_see_you_later": 0.2, + "yellow_prob_degrad" : 0.3, + "yellow_prob_reconfig" : 0.3, + "yellow_prob_rigid" : 0.3 + } + } + ] +} \ No newline at end of file diff --git a/test/schedconf/dm_user_multi_behavior_many_windows_wrong_order.json b/test/schedconf/dm_user_multi_behavior_many_windows_wrong_order.json new file mode 100644 index 0000000000000000000000000000000000000000..89c8745501d8a37c42b88f28e66791a2aa20a489 --- /dev/null +++ b/test/schedconf/dm_user_multi_behavior_many_windows_wrong_order.json @@ -0,0 +1,82 @@ +{ + "seed" : -3, + "red_windows" : [[262000, 263000], [218000, 219000], [264000, 265000], [297000, 298000], [290000, 291000], + [273000, 274000], [254000, 255000], [251000, 252000], [283000, 284000], [234000, 235000], [230000, 231000], + [267000, 268000], [248000, 249000], [220000, 221000], [206000, 207000], [210000, 211000], [233000, 234000], + [287000, 288000], [221000, 222000], [281000, 282000], [260000, 261000], [203000, 204000], [256000, 257000], + [272000, 273000], [286000, 287000], [288000, 289000], [207000, 208000], [285000, 286000], [229000, 230000], + [236000, 237000], [205000, 206000], [239000, 240000], [291000, 292000], [211000, 212000], [289000, 290000], + [278000, 279000], [249000, 250000], [294000, 295000], [237000, 238000], [227000, 228000], [252000, 253000], + [261000, 262000], [238000, 239000], [298000, 299000], [224000, 225000], [242000, 243000], [293000, 294000], + [258000, 259000], [265000, 266000], [257000, 258000], [263000, 264000], [232000, 233000], [255000, 256000], + [277000, 278000], [275000, 276000], [292000, 293000], [209000, 210000], [279000, 280000], [268000, 269000], + [247000, 248000], [202000, 203000], [259000, 260000], [284000, 285000], [215000, 216000], [253000, 254000], + [246000, 247000], [219000, 220000], [222000, 223000], [270000, 271000], [282000, 283000], [204000, 205000], + [271000, 272000], [280000, 281000], [240000, 241000], [243000, 244000], [226000, 227000], [250000, 251000], + [214000, 215000], [208000, 209000], [269000, 270000], [200000, 201000], [295000, 296000], [228000, 229000], + [235000, 236000], [241000, 242000], [299000, 300000], [245000, 246000], [231000, 232000], [276000, 277000], + [217000, 218000], [274000, 275000], [244000, 245000], [223000, 224000], [296000, 297000], [213000, 214000], + [225000, 226000], [216000, 217000], [201000, 202000], [212000, 213000], [266000, 267000]], + "users": [ + { + "name": "user14", + "category": "dm_user_multi_behavior", + "param": { + "input_json": "test/workloads/dyn/user14.json", + "red_prob_rigid" : 0.2, + "red_prob_degrad" : 0.2, + "red_prob_reconfig" : 0.2, + "red_prob_renonce" : 0.2, + "red_prob_see_you_later": 0.2, + "yellow_prob_degrad" : 0.3, + "yellow_prob_reconfig" : 0.3, + "yellow_prob_rigid" : 0.3 + } + }, + { + "name": "user15", + "category": "dm_user_multi_behavior", + "param": { + "input_json": "test/workloads/dyn/user15.json", + "red_prob_rigid" : 0.2, + "red_prob_degrad" : 0.2, + "red_prob_reconfig" : 0.2, + "red_prob_renonce" : 0.2, + "red_prob_see_you_later": 0.2, + "yellow_prob_degrad" : 0.3, + "yellow_prob_reconfig" : 0.3, + "yellow_prob_rigid" : 0.3 + } + }, + { + "name": "user16", + "category": "dm_user_multi_behavior", + "param": { + "input_json": "test/workloads/dyn/user16.json", + "red_prob_rigid" : 0.2, + "red_prob_degrad" : 0.2, + "red_prob_reconfig" : 0.2, + "red_prob_renonce" : 0.2, + "red_prob_see_you_later": 0.2, + "yellow_prob_degrad" : 0.3, + "yellow_prob_reconfig" : 0.3, + "yellow_prob_rigid" : 0.3 + } + }, + { + "name": "user18", + "category": "dm_user_multi_behavior", + "param": { + "input_json": "test/workloads/dyn/user18.json", + "red_prob_rigid" : 0.2, + "red_prob_degrad" : 0.2, + "red_prob_reconfig" : 0.2, + "red_prob_renonce" : 0.2, + "red_prob_see_you_later": 0.2, + "yellow_prob_degrad" : 0.3, + "yellow_prob_reconfig" : 0.3, + "yellow_prob_rigid" : 0.3 + } + } + ] +} \ No newline at end of file diff --git a/test/schedconf/dm_user_multi_behavior_yellow.json b/test/schedconf/dm_user_multi_behavior_yellow.json new file mode 100644 index 0000000000000000000000000000000000000000..325f32d8267c130585e3779aaca87bc0a724cb86 --- /dev/null +++ b/test/schedconf/dm_user_multi_behavior_yellow.json @@ -0,0 +1,69 @@ +{ + "seed" : 0, + "red_windows" : [[200000, 300000]], + "yellow_windows" : [[100000, 200000], [300000,400000]], + "log_user_stats" : true, + "log_folder" : "test-out/dm_user_multi_behavior_yellow-2machines/", + "users": [ + { + "name": "user14", + "category": "dm_user_multi_behavior", + "param": { + "input_json": "test/workloads/dyn/user14.json", + "red_prob_rigid" : 0.2, + "red_prob_degrad" : 0.2, + "red_prob_reconfig" : 0.2, + "red_prob_renonce" : 0.2, + "red_prob_see_you_later": 0.2, + "yellow_prob_degrad" : 0.3, + "yellow_prob_reconfig" : 0.3, + "yellow_prob_rigid" : 0.3 + } + }, + { + "name": "user15", + "category": "dm_user_multi_behavior", + "param": { + "input_json": "test/workloads/dyn/user15.json", + "red_prob_rigid" : 0.2, + "red_prob_degrad" : 0.2, + "red_prob_reconfig" : 0.2, + "red_prob_renonce" : 0.2, + "red_prob_see_you_later": 0.2, + "yellow_prob_degrad" : 0.3, + "yellow_prob_reconfig" : 0.3, + "yellow_prob_rigid" : 0.3 + } + }, + { + "name": "user16", + "category": "dm_user_multi_behavior", + "param": { + "input_json": "test/workloads/dyn/user16.json", + "red_prob_rigid" : 0.2, + "red_prob_degrad" : 0.2, + "red_prob_reconfig" : 0.2, + "red_prob_renonce" : 0.2, + "red_prob_see_you_later": 0.2, + "yellow_prob_degrad" : 0.3, + "yellow_prob_reconfig" : 0.3, + "yellow_prob_rigid" : 0.3 + } + }, + { + "name": "user18", + "category": "dm_user_multi_behavior", + "param": { + "input_json": "test/workloads/dyn/user18.json", + "red_prob_rigid" : 0.2, + "red_prob_degrad" : 0.2, + "red_prob_reconfig" : 0.2, + "red_prob_renonce" : 0.2, + "red_prob_see_you_later": 0.2, + "yellow_prob_degrad" : 0.3, + "yellow_prob_reconfig" : 0.3, + "yellow_prob_rigid" : 0.3 + } + } + ] +} \ No newline at end of file diff --git a/test/test_assertion_error.py b/test/test_assertion_error.py new file mode 100644 index 0000000000000000000000000000000000000000..7dcfdebbd14fd5869f8504a8dbe05c7bca1ffcb3 --- /dev/null +++ b/test/test_assertion_error.py @@ -0,0 +1,106 @@ +from helper import * +from test_users import run_user, assert_exec_time_equals_profile +schedconf_file = 'test-instances/user_description_file.json' +create_dir_rec_if_needed("test-instances") +import json + + +def make_error_file(seed=None,red_windows=None, probas = [("red_prob_see_you_later",1.0)], yellow_windows=None) : + """Create a simple user_description_file with the given parameters to check for proper handling of errors""" + param = { "input_json": "test/workloads/dyn/two_jobs.json"} + for proba in probas : + proba_name,proba_value = proba + param[proba_name] = proba_value + error_file = { + "users": [ + { + "name": "user14", + "category": "dm_user_multi_behavior", + "param": param + } + ] + } + if seed : + error_file["seed"] =seed + if not(red_windows is None) : + error_file["red_windows"] = red_windows + if not(yellow_windows is None) : + error_file["yellow_windows"] = yellow_windows + with open(schedconf_file, 'w+') as error_description_file : + json.dump(error_file,error_description_file) + +def error_user(user_name, platform_multiC, expected_error="", test_name=None, schedconf=None): + """Launch a simulation and check if the expected_error is risen""" + if test_name == None: + test_name = f'{user_name}-{platform_multiC.name}' + if schedconf == None: + schedconf = 'test-instances/user_description_file.json' + output_dir, robin_filename, _ = init_instance(test_name) + + batcmd = gen_batsim_cmd(platform_multiC.filename, empty_workload, output_dir, + "--energy --enable-compute-sharing --enable-dynamic-jobs --acknowledge-dynamic-jobs --enable-profile-reuse") + instance = RobinInstance(output_dir=output_dir, + batcmd=batcmd, + schedcmd=f"batmen -v bin_packing --queue_order=desc_size --variant_options_filepath {schedconf}", + simulation_timeout=30, ready_timeout=5, + success_timeout=10, failure_timeout=0 + ) + + instance.to_file(robin_filename) + ret = run_robin(robin_filename) + assert ret.returncode == 2 + error_filename = output_dir + "/log/sched.err.log" + error_file = open(error_filename) + error_message = error_file.readlines()[-3] + assert "with message" in error_message + assert expected_error in error_message + if has_expected_output(test_name): + assert_expected_output(test_name) + return output_dir + + +def test_error_no_seed(platform_multiC) : + make_error_file(red_windows=[[1, 2]]) + out_dir = error_user("dm_user_multi_behavior_no_seed", platform_multiC, "seed") + +def test_error_invalid_seed(platform_multiC) : + make_error_file(-1.0) + out_dir = error_user("dm_user_multi_behavior_invalid_seed", platform_multiC, "'seed' should be a 32-bit integer") +def test_error_no_window(platform_multiC) : + make_error_file(3) + out_dir = error_user("dm_user_multi_behavior_no_windows", platform_multiC, "window") + +def test_empty_red_window(platform_multiC) : + make_error_file(3, red_windows=[]) + out_dir = error_user("dm_user_multi_behavior_empty_red_windows", platform_multiC, "red_windows should be a non-empty array") +def test_empty_yellow_window(platform_multiC) : + make_error_file(3, yellow_windows=[]) + out_dir = error_user("dm_user_multi_behavior_empty_yellow_windows", platform_multiC, "yellow_windows should be a non-empty array") + +def test_invalid_red_prob(platform_multiC) : + invalid_probas = [[], [("red_prob_reconfig",0.0)], [("red_prob_degrad",0.0)], [("red_prob_rigid",0.0)], + [("red_prob_see_you_later",0.0)],[("red_prob_renonce",0.0)], + [("red_prob_reconfig", 0.0), ("red_prob_degrad", 0.0), ("red_prob_rigid", 0.0), + ("red_prob_renonce", 0.0), ("red_prob_see_you_later", 0.0)]] + i = 0 + for probas in invalid_probas : + make_error_file(3, red_windows=[[0, 1]],probas=probas) + out_dir = error_user("dm_user_multi_behavior_invalid_red_prob_" + str(i), platform_multiC, "red") + i += 1 +def test_invalid_yellow_prob(platform_multiC) : + invalid_probas = [[], [("yellow_prob_reconfig",0.0)], [("yellow_prob_degrad",0.0)], [("yellow_prob_rigid",0.0)], + [("yellow_prob_reconfig", 0.0), ("yellow_prob_degrad", 0.0), ("yellow_prob_rigid", 0.0)]] + i = 0 + for probas in invalid_probas : + make_error_file(3, yellow_windows=[[0, 1]],probas=probas) + out_dir = error_user("dm_user_multi_behavior_invalid_yellow_prob_" + str(i), platform_multiC, "yellow") + i += 1 + + +def test_error_invalid_window(platform_multiC) : + invalid_windows_list = [[[0]], [[0.0, 1.0]], [[0, 1, 2]], [[0, 1], [1, 2], [3, 4], 5], [[1, 4.0]], [[1.0, 4]]] + for i in range(len(invalid_windows_list)): + invalid_window = invalid_windows_list[i] + make_error_file(3, invalid_window) + out_dir = error_user("dm_user_multi_behavior_invalid_windows_"+str(i),platform_multiC, "should be an array of intervals (pairs of integers)") + diff --git a/test/test_dm_users.py b/test/test_dm_users.py index 1d2477fb3101b3e71c82370e0075d0db7893d62b..be1b57bb4acdcf5930e04a1e6f19f8b4725f659c 100644 --- a/test/test_dm_users.py +++ b/test/test_dm_users.py @@ -1,17 +1,64 @@ from helper import * from test_users import run_user, assert_exec_time_equals_profile +import json Workload = namedtuple('Workload', ['name', 'filename']) Platform = namedtuple('Platform', ['name', 'filename']) + two_machine_platform = Platform(name='two_machine_platform', filename='test/platforms/multicore/2machines.xml') users = [ "dm_user_reconfig", "dm_user_degrad", "dm_user_renonce", - "dm_user_delay" + "dm_user_delay", + "dm_user_multi_behavior", + "dm_user_multi_behavior_yellow", + "dm_user_multi_behavior_C_you_later_only" ] + +def make_monolithic_file(user_name, input_json, probability_name, seed=None, red_windows=None, yellow_windows=None): + assert len(user_name) == len(input_json), "The three lists should be of the same size" + schedconf_file = 'test-instances/user_description_file.json' + error_file = { + "users": [ + { + "name": name, + "category": "dm_user_multi_behavior", + "param": { + "input_json": json, + probability_name : 1.0 + } + } + for name, json in zip(user_name, input_json) + ] + } + if seed : + error_file["seed"] =seed + if red_windows : + error_file["red_windows"] = red_windows + if yellow_windows : + error_file["yellow_windows"] = yellow_windows + with open(schedconf_file, 'w+') as error_description_file : + json.dump(error_file,error_description_file) + +def monolithics_test(proba_names,names,input_json,seed=None,red_windows=None,yellow_windows=None) : + """ test a monolithic behavior on red_windows or yellow_windows and compare to their dm_user_replay class equivalent""" + schedconf_file = 'test-instances/user_description_file.json' + for proba_name in proba_names : + behavior_name = proba_name.split("_")[-1] + make_monolithic_file(names, input_json, proba_name,seed=seed, red_windows=red_windows,yellow_windows=yellow_windows) + test_file_name=f'dm_user_multi_behavior_{proba_name}_only' + out_dir = run_user(test_file_name, two_machine_platform, + test_name=test_file_name, schedconf = schedconf_file) + if not("comm" in out_dir): + content_job = open(out_dir + "/_jobs.csv").readlines() + if not("rigid" in out_dir): + expected_log = open(f"test/expected_log/dm_user_{behavior_name}-2machines_jobs.csv").readlines() + else : + expected_log = open(f"test/expected_log/replay_user_rigid-2machines_jobs.csv").readlines() + assert content_job == expected_log def test_dm_user_delay(platform_multiC): out_dir = run_user("dm_user_delay", platform_multiC) assert_exec_time_equals_profile(out_dir) @@ -27,4 +74,33 @@ def test_dm_user_degrad(platform_multiC): run_user("dm_user_degrad", platform_multiC) def test_speedup(): - run_user("reconfig_alpha", two_machine_platform) \ No newline at end of file + run_user("reconfig_alpha", two_machine_platform) + +def test_dm_user_multi_behavior(platform_multiC) : + out_dir_1 = run_user("dm_user_multi_behavior", platform_multiC) + out_dir_2 = run_user("dm_user_multi_behavior_many_windows", platform_multiC) + out_dir_3 = run_user("dm_user_multi_behavior_many_windows_wrong_order", platform_multiC) + content_1 = open(out_dir_1 + "/_jobs.csv").readlines() + content_2 = open(out_dir_2 + "/_jobs.csv").readlines() + content_3 = open(out_dir_3+ "/_jobs.csv").readlines() + assert (content_1 == content_2) + assert (content_2 == content_3) +def test_dm_user_multi_behavior_yellow(platform_multiC) : + run_user("dm_user_multi_behavior_yellow",platform_multiC) + +def test_dm_user_multi_behavior_C_you_later_only(platform_multiC) : + run_user("dm_user_multi_behavior_C_you_later_only", platform_multiC) + run_user("dm_user_multi_behavior_C_you_later_only_two_jobs", platform_multiC) + +def test_dm_user_multi_behavior_monobehavior_red(platform_multiC) : + """ Test users that only do one behavior in red_window""" + proba_names= ["red_prob_degrad", "red_prob_rigid", "red_prob_reconfig", "red_prob_renonce"] + names = ["user" + str(i+14) for i in range(3)] + ["user18"] + input_json = ["test/workloads/dyn/user" + str(i+14) + ".json" for i in range(3)] + ["test/workloads/dyn/user18.json"] + monolithics_test(proba_names,names,input_json,seed=3,red_windows=[[200000, 300000]]) +def test_dm_user_multi_behabior_monobehavior_yellow(platform_multiC) : + """ Test users that only do one behavior in yellow_windows""" + proba_names = ["yellow_prob_reconfig", "yellow_prob_degrad","yellow_prob_rigid"] + names = ["user" + str(i+14) for i in range(3)] + ["user18"] + input_json = ["test/workloads/dyn/user" + str(i+14) + ".json" for i in range(3)] + ["test/workloads/dyn/user18.json"] + monolithics_test(proba_names,names,input_json,seed=3,yellow_windows=[[200000, 300000]])