diff --git a/flatland/evaluators/service.py b/flatland/evaluators/service.py
index 7eef7f0667335cddd233a17327ea06960e8cfc97..7ca6f39a1cea2ad89ec5daf19f1900b3685440be 100644
--- a/flatland/evaluators/service.py
+++ b/flatland/evaluators/service.py
@@ -48,18 +48,40 @@ m.patch()
 ########################################################
 # CONSTANTS
 ########################################################
+
+# Don't proceed to next Test if the previous one
+# didn't reach this mean completion percentage
+TEST_MIN_PERCENTAGE_COMPLETE_MEAN = 0.25
+
+# After this number of consecutive timeouts, kill the submission:
+# this probably means the submission has crashed
+MAX_SUCCESSIVE_TIMEOUTS = 10
+
+debug_mode = (os.getenv("AICROWD_DEBUG_SUBMISSION", 0) == 1)
+if debug_mode:
+    print("=" * 20)
+    print("Submission in DEBUG MODE! will get limited time")
+    print("=" * 20)
+
+# 8 hours (will get debug timeout from env variable if applicable)
+OVERALL_TIMEOUT = int(os.getenv(
+    "FLATLAND_OVERALL_TIMEOUT",
+    8 * 60 * 60))
+
+# 10 mins
 INTIAL_PLANNING_TIMEOUT = int(os.getenv(
     "FLATLAND_INITIAL_PLANNING_TIMEOUT",
-    5 * 60))  # 5 mins
+    10 * 60))
+
+# 10 seconds
 PER_STEP_TIMEOUT = int(os.getenv(
     "FLATLAND_PER_STEP_TIMEOUT",
-    5))  # 5 seconds
+    10))
+
+# 5 min - applies to the rest of the commands
 DEFAULT_COMMAND_TIMEOUT = int(os.getenv(
     "FLATLAND_DEFAULT_COMMAND_TIMEOUT",
-    1 * 60))  # 1 min
-# This applies to the rest of the commands
-
-MAX_SUCCESSIVE_TIMEOUTS = 10
+    5 * 60))
 
 RANDOM_SEED = int(os.getenv("FLATLAND_EVALUATION_RANDOM_SEED", 1001))
 
@@ -90,56 +112,58 @@ class FlatlandRemoteEvaluationService:
     numpy arrays).
     """
 
-    def __init__(self,
-                 test_env_folder="/tmp",
-                 flatland_rl_service_id='FLATLAND_RL_SERVICE_ID',
-                 remote_host='127.0.0.1',
-                 remote_port=6379,
-                 remote_db=0,
-                 remote_password=None,
-                 visualize=False,
-                 video_generation_envs=[],
-                 report=None,
-                 verbose=False,
-                 actionDir=None,
-                 episodeDir=None,
-                 mergeDir=None,
-                 use_pickle=False,
-                 shuffle=True,
-                 missing_only=False,
-                 result_output_path=None,
-                 disable_timeouts=False
-                 ):
+    def __init__(
+        self,
+        test_env_folder="/tmp",
+        flatland_rl_service_id='FLATLAND_RL_SERVICE_ID',
+        remote_host='127.0.0.1',
+        remote_port=6379,
+        remote_db=0,
+        remote_password=None,
+        visualize=False,
+        video_generation_envs=[],
+        report=None,
+        verbose=False,
+        action_dir=None,
+        episode_dir=None,
+        merge_dir=None,
+        use_pickle=False,
+        shuffle=False,
+        missing_only=False,
+        result_output_path=None,
+        disable_timeouts=False
+    ):
 
         # Episode recording properties
-        self.actionDir = actionDir
-        if actionDir and not os.path.exists(self.actionDir):
-            os.makedirs(self.actionDir)
-        self.episodeDir = episodeDir
-        if episodeDir and not os.path.exists(self.episodeDir):
-            os.makedirs(self.episodeDir)
-        self.mergeDir = mergeDir
-        if mergeDir and not os.path.exists(self.mergeDir):
-            os.makedirs(self.mergeDir)
+        self.action_dir = action_dir
+        if action_dir and not os.path.exists(self.action_dir):
+            os.makedirs(self.action_dir)
+        self.episode_dir = episode_dir
+        if episode_dir and not os.path.exists(self.episode_dir):
+            os.makedirs(self.episode_dir)
+        self.merge_dir = merge_dir
+        if merge_dir and not os.path.exists(self.merge_dir):
+            os.makedirs(self.merge_dir)
         self.use_pickle = use_pickle
         self.missing_only = missing_only
-        self.disable_timeouts = disable_timeouts
+        self.episode_actions = []
 
+        self.disable_timeouts = disable_timeouts
         if self.disable_timeouts:
             print("=" * 20)
             print("Timeout are DISABLED!")
             print("=" * 20)
 
-        if not shuffle:
+        if shuffle:
             print("=" * 20)
-            print("Env shuffling is DISABLED!")
+            print("Env shuffling is ENABLED! not suitable for infinite wave")
             print("=" * 20)
 
         # Test Env folder Paths
         self.test_env_folder = test_env_folder
         self.video_generation_envs = video_generation_envs
         self.env_file_paths = self.get_env_filepaths()
-
+        print(self.env_file_paths)
         # Shuffle all the env_file_paths for more exciting videos
         # and for more uniform time progression
         if shuffle:
@@ -153,13 +177,13 @@ class FlatlandRemoteEvaluationService:
         self.report = report
 
         # Use a state to swallow and ignore any steps after an env times out.
-        # this should be reset to False after env reset() to get the next env.
         self.state_env_timed_out = False
 
         # Count the number of successive timeouts (will kill after MAX_SUCCESSIVE_TIMEOUTS)
         # This prevents a crashed submission to keep running forever
         self.timeout_counter = 0
 
+        # Results are the metrics: percent done, rewards, timing...
         self.result_output_path = result_output_path
 
         # Communication Protocol Related vars
@@ -169,7 +193,6 @@ class FlatlandRemoteEvaluationService:
             self.namespace,
             self.service_id
         )
-
         self.error_channel = "{}::{}::errors".format(
             self.namespace,
             self.service_id
@@ -212,12 +235,18 @@ class FlatlandRemoteEvaluationService:
         self.simulation_rewards = []
         self.simulation_rewards_normalized = []
         self.simulation_percentage_complete = []
+        self.simulation_percentage_complete_per_test = {}
         self.simulation_steps = []
         self.simulation_times = []
         self.env_step_times = []
         self.nb_malfunctioning_trains = []
+        self.overall_start_time = 0
+        self.termination_cause = "No reported termination cause."
+        self.evaluation_done = False
         self.begin_simulation = False
         self.current_step = 0
+        self.current_test = -1
+        self.current_level = -1
         self.visualize = visualize
         self.vizualization_folder_name = "./.visualizations"
         self.record_frame_step = 0
@@ -232,7 +261,7 @@ class FlatlandRemoteEvaluationService:
 
     def update_running_stats(self, key, scalar):
         """
-        Computes the running mean for certain params
+        Computes the running min/mean/max for given param
         """
         mean_key = "{}_mean".format(key)
         counter_key = "{}_counter".format(key)
@@ -293,40 +322,47 @@ class FlatlandRemoteEvaluationService:
                 ├── .......
                 └── Level_99.pkl
         """
-        env_paths = sorted(
-            glob.glob(
-                os.path.join(
-                    self.test_env_folder,
-                    "*/*.pkl"
-                )
+        env_paths = glob.glob(
+            os.path.join(
+                self.test_env_folder,
+                "*/*.pkl"
             )
         )
 
         # Remove the root folder name from the individual
         # lists, so that we only have the path relative
         # to the test root folder
-        env_paths = sorted([os.path.relpath(
-            x, self.test_env_folder
-        ) for x in env_paths])
-
-        # Sort in proper order
-        def get_file_order(f):
-            numbers = re.findall(r'\d+', os.path.relpath(f))
-            value = int(numbers[0]) * 1000 + int(numbers[1])
+        env_paths = [os.path.relpath(x, self.test_env_folder) for x in env_paths]
+
+        # Sort in proper numerical order
+        def get_file_order(filename):
+            test_id, level_id = self.get_env_test_and_level(filename)
+            value = test_id * 1000 + level_id
             return value
 
         env_paths.sort(key=get_file_order)
 
         # if requested, only generate actions for those envs which don't already have them
-        if self.mergeDir and self.missing_only:
+        if self.merge_dir and self.missing_only:
             existing_paths = (itertools.chain.from_iterable(
-                [glob.glob(os.path.join(self.mergeDir, f"envs/*.{ext}"))
+                [glob.glob(os.path.join(self.merge_dir, f"envs/*.{ext}"))
                  for ext in ["pkl", "mpk"]]))
-            existing_paths = [os.path.relpath(sPath, self.mergeDir) for sPath in existing_paths]
+            existing_paths = [os.path.relpath(sPath, self.merge_dir) for sPath in existing_paths]
             env_paths = set(env_paths) - set(existing_paths)
 
         return env_paths
 
+    def get_env_test_and_level(self, filename):
+        numbers = re.findall(r'\d+', os.path.relpath(filename))
+
+        if len(numbers) == 2:
+            test_id = int(numbers[0])
+            level_id = int(numbers[1])
+        else:
+            print(numbers)
+            raise ValueError("Unexpected file path, expects 'Test_<N>/Level_<M>.pkl', found", filename)
+        return test_id, level_id
+
     def instantiate_evaluation_metadata(self):
         """
             This instantiates a pandas dataframe to record
@@ -587,10 +623,10 @@ class FlatlandRemoteEvaluationService:
     def handle_env_create(self, command):
         """
         Handles a ENV_CREATE command from the client
-        TODO: Add a high level summary of everything thats happening here.
         """
-        if not self.simulation_done:
-            # trying to reset a simulation before finishing the previous one
+
+        # Check if the previous episode was finished
+        if not self.simulation_done and not self.evaluation_done:
             _command_response = self._error_template("CAN'T CREATE NEW ENV BEFORE PREVIOUS IS DONE")
             self.send_response(_command_response, command)
             raise Exception(_command_response['payload'])
@@ -598,19 +634,50 @@ class FlatlandRemoteEvaluationService:
         self.simulation_count += 1
         self.simulation_done = False
 
+        if self.simulation_count == 0:
+            # Very first episode: start the overall timer
+            print("Starting overall timer...")
+            self.overall_start_time = time.time()
+
         # reset the timeout flag / state.
         self.state_env_timed_out = False
 
-        if self.simulation_count < len(self.env_file_paths):
+        test_env_file_path = self.env_file_paths[self.simulation_count]
+        env_test, env_level = self.get_env_test_and_level(test_env_file_path)
+
+        # Did we just finish a test, and if yes did it reach high enough mean percentage done?
+        if self.current_test != env_test and env_test != 0:
+            if self.current_test not in self.simulation_percentage_complete_per_test:
+                print("No environment was finished at all during test {}!".format(self.current_test))
+                mean_test_complete_percentage = 0.0
+            else:
+                mean_test_complete_percentage = np.mean(self.simulation_percentage_complete_per_test[self.current_test])
+
+            if mean_test_complete_percentage < TEST_MIN_PERCENTAGE_COMPLETE_MEAN:
+                print("=" * 15)
+                msg = "The mean percentage of done agents during the last 10 environments was too low: {:.3f} < {}".format(
+                    mean_test_complete_percentage,
+                    TEST_MIN_PERCENTAGE_COMPLETE_MEAN
+                )
+                print(msg, "Evaluation will stop.")
+                self.termination_cause = msg
+                self.evaluation_done = True
+
+        if self.simulation_count < len(self.env_file_paths) and not self.evaluation_done:
             """
             There are still test envs left that are yet to be evaluated 
             """
-            test_env_file_path = self.env_file_paths[self.simulation_count]
+
             print("Evaluating {} ({}/{})".format(test_env_file_path, self.simulation_count, len(self.env_file_paths)))
+
             test_env_file_path = os.path.join(
                 self.test_env_folder,
                 test_env_file_path
             )
+
+            self.current_test = env_test
+            self.current_level = env_level
+
             del self.env
             self.env = RailEnv(width=1, height=1,
                                rail_generator=rail_from_file(test_env_file_path),
@@ -634,6 +701,7 @@ class FlatlandRemoteEvaluationService:
             self.simulation_rewards.append(0)
             self.simulation_rewards_normalized.append(0)
             self.simulation_percentage_complete.append(0)
+            self.simulation_times.append(0)
             self.simulation_steps.append(0)
             self.nb_malfunctioning_trains.append(0)
 
@@ -676,20 +744,23 @@ class FlatlandRemoteEvaluationService:
         #####################################################################
         # Update evaluation state
         #####################################################################
+        elapsed = time.time() - self.overall_start_time
         progress = np.clip(
-            self.simulation_count * 1.0 / len(self.env_file_paths),
+            elapsed / OVERALL_TIMEOUT,
             0, 1)
 
-        mean_reward, mean_normalized_reward, mean_percentage_complete = self.compute_mean_scores()
+        mean_reward, mean_normalized_reward, sum_normalized_reward, mean_percentage_complete = self.compute_mean_scores()
 
         self.evaluation_state["state"] = "IN_PROGRESS"
         self.evaluation_state["progress"] = progress
         self.evaluation_state["simulation_count"] = self.simulation_count
-        self.evaluation_state["score"]["score"] = mean_percentage_complete
-        self.evaluation_state["score"]["score_secondary"] = mean_reward
+        self.evaluation_state["score"]["score"] = sum_normalized_reward
+        self.evaluation_state["score"]["score_secondary"] = mean_percentage_complete
         self.evaluation_state["meta"]["normalized_reward"] = mean_normalized_reward
+        self.evaluation_state["meta"]["termination_cause"] = self.termination_cause
         self.handle_aicrowd_info_event(self.evaluation_state)
-        self.lActions = []
+
+        self.episode_actions = []
 
     def handle_env_step(self, command):
         """
@@ -697,20 +768,34 @@ class FlatlandRemoteEvaluationService:
         TODO: Add a high level summary of everything thats happening here.
         """
 
-        if self.state_env_timed_out:
-            print("Ignoring step command after timeout")
+        if self.state_env_timed_out or self.evaluation_done:
+            print("Ignoring step command after timeout.")
             return
 
         _payload = command['payload']
 
         if not self.env:
-            raise Exception(
-                "env_client.step called before env_client.env_create() call")
+            raise Exception("env_client.step called before env_client.env_create() call")
         if self.env.dones['__all__']:
             raise Exception(
                 "Client attempted to perform an action on an Env which \
                 has done['__all__']==True")
 
+        overall_elapsed = (time.time() - self.overall_start_time)
+        if overall_elapsed > OVERALL_TIMEOUT:
+            msg = "Reached overall time limit: took {:.2f}s, limit is {:.2f}s.".format(
+                overall_elapsed, OVERALL_TIMEOUT
+            )
+            self.termination_cause = msg
+            self.evaluation_done = True
+
+            print("=" * 15)
+            print(msg, "Evaluation will stop.")
+            return
+        # else:
+        #     print("="*15)
+        #     print("{}s left!".format(OVERALL_TIMEOUT - overall_elapsed))
+
         action = _payload['action']
         inference_time = _payload['inference_time']
         # We record this metric in two keys:
@@ -719,6 +804,7 @@ class FlatlandRemoteEvaluationService:
         self.update_running_stats("current_episode_controller_inference_time", inference_time)
         self.update_running_stats("controller_inference_time", inference_time)
 
+        # Perform the step
         time_start = time.time()
         _observation, all_rewards, done, info = self.env.step(action)
         time_diff = time.time() - time_start
@@ -736,29 +822,31 @@ class FlatlandRemoteEvaluationService:
         that episode
         """
         self.simulation_rewards_normalized[-1] += \
-            cumulative_reward / (
+            (cumulative_reward / (
                 self.env._max_episode_steps *
                 self.env.get_num_agents()
-            )
+            ))
 
-        num_malfunctioning = sum(agent.malfunction_data['malfunction'] > 0 for agent in self.env.agents)
-        if (num_malfunctioning > 0):
-            print(num_malfunctioning, "agent malfunctioning at step", self.current_step)
+        # We count the number of agents that malfunctioned by checking how many have 1 more steps left before recovery
+        num_malfunctioning = sum(agent.malfunction_data['malfunction'] == 1 for agent in self.env.agents)
+
+        if self.verbose and num_malfunctioning > 0:
+            print("Step {}: {} agents have malfunctioned and will recover next step".format(self.current_step, num_malfunctioning))
 
         self.nb_malfunctioning_trains[-1] += num_malfunctioning
 
         # record the actions before checking for done
-        if self.actionDir is not None:
-            self.lActions.append(action)
+        if self.action_dir is not None:
+            self.episode_actions.append(action)
 
-        # all done! episode over
+        # Is the episode over?
         if done["__all__"]:
             self.simulation_done = True
 
             if self.begin_simulation:
                 # If begin simulation has already been initialized at least once
                 # This adds the simulation time for the previous episode
-                self.simulation_times.append(time.time() - self.begin_simulation)
+                self.simulation_times[-1] = time.time() - self.begin_simulation
 
             # Compute percentage complete
             complete = 0
@@ -769,26 +857,38 @@ class FlatlandRemoteEvaluationService:
             percentage_complete = complete * 1.0 / self.env.get_num_agents()
             self.simulation_percentage_complete[-1] = percentage_complete
 
-            print("Evaluation finished in {} timesteps, {:.3f} seconds. Percentage agents done: {:.3f}. Normalized reward: {:.3f}. Number of malfunctions: {}.".format(
-                self.simulation_steps[-1],
-                self.simulation_times[-1],
-                self.simulation_percentage_complete[-1],
-                self.simulation_rewards_normalized[-1],
-                self.nb_malfunctioning_trains[-1]
-            ))
+            # adds 1.0 so we can add them up
+            self.simulation_rewards_normalized[-1] += 1.0
+
+            if self.current_test not in self.simulation_percentage_complete_per_test:
+                self.simulation_percentage_complete_per_test[self.current_test] = []
+            self.simulation_percentage_complete_per_test[self.current_test].append(percentage_complete)
+            print("Percentage for test {}, level {}: {}".format(self.current_test, self.current_level, percentage_complete))
+            print(self.simulation_percentage_complete_per_test[self.current_test])
+
+            print(
+                "Evaluation finished in {} timesteps, {:.3f} seconds. Percentage agents done: {:.3f}. Normalized reward: {:.3f}. Number of malfunctions: {}.".format(
+                    self.simulation_steps[-1],
+                    self.simulation_times[-1],
+                    self.simulation_percentage_complete[-1],
+                    self.simulation_rewards_normalized[-1],
+                    self.nb_malfunctioning_trains[-1]
+                ))
+
+            print("Total normalized reward so far: {:.3f}".format(sum(self.simulation_rewards_normalized)))
 
             # Write intermediate results
             if self.result_output_path:
                 self.evaluation_metadata_df.to_csv(self.result_output_path)
                 print("Wrote intermediate output results to : {}".format(self.result_output_path))
 
-            if self.actionDir is not None:
+            if self.action_dir is not None:
                 self.save_actions()
 
-            if self.episodeDir is not None:
+            if self.episode_dir is not None:
                 self.save_episode()
 
-            if self.mergeDir is not None:
+            if self.merge_dir is not None:
                 self.save_merged_env()
 
         # Record Frame
@@ -816,7 +916,7 @@ class FlatlandRemoteEvaluationService:
     def save_actions(self):
         sfEnv = self.env_file_paths[self.simulation_count]
 
-        sfActions = self.actionDir + "/" + sfEnv.replace(".pkl", ".json")
+        sfActions = self.action_dir + "/" + sfEnv.replace(".pkl", ".json")
 
         print("env path: ", sfEnv, " sfActions:", sfActions)
 
@@ -824,20 +924,20 @@ class FlatlandRemoteEvaluationService:
             os.makedirs(os.path.dirname(sfActions))
 
         with open(sfActions, "w") as fOut:
-            json.dump(self.lActions, fOut)
+            json.dump(self.episode_actions, fOut)
 
-        self.lActions = []
+        self.episode_actions = []
 
     def save_episode(self):
         sfEnv = self.env_file_paths[self.simulation_count]
-        sfEpisode = self.episodeDir + "/" + sfEnv
+        sfEpisode = self.episode_dir + "/" + sfEnv
         print("env path: ", sfEnv, " sfEpisode:", sfEpisode)
         RailEnvPersister.save_episode(self.env, sfEpisode)
         # self.env.save_episode(sfEpisode)
 
     def save_merged_env(self):
         sfEnv = self.env_file_paths[self.simulation_count]
-        sfMergeEnv = self.mergeDir + "/" + sfEnv
+        sfMergeEnv = self.merge_dir + "/" + sfEnv
 
         if not os.path.exists(os.path.dirname(sfMergeEnv)):
             os.makedirs(os.path.dirname(sfMergeEnv))
@@ -878,14 +978,14 @@ class FlatlandRemoteEvaluationService:
         # Compute the evaluation metadata for the last episode
         self.update_evaluation_metadata()
 
-        if len(self.simulation_rewards) != len(self.env_file_paths):
+        if len(self.simulation_rewards) != len(self.env_file_paths) and not self.evaluation_done:
             raise Exception(
                 """env.submit called before the agent had the chance 
                 to operate on all the test environments.
                 """
             )
 
-        mean_reward, mean_normalized_reward, mean_percentage_complete = self.compute_mean_scores()
+        mean_reward, mean_normalized_reward, sum_normalized_reward, mean_percentage_complete = self.compute_mean_scores()
 
         if self.visualize and len(os.listdir(self.vizualization_folder_name)) > 0:
             # Generate the video
@@ -946,24 +1046,30 @@ class FlatlandRemoteEvaluationService:
         #####################################################################
         # Update evaluation state
         #####################################################################
+
         self.evaluation_state["state"] = "FINISHED"
         self.evaluation_state["progress"] = 1.0
         self.evaluation_state["simulation_count"] = self.simulation_count
-        self.evaluation_state["score"]["score"] = mean_percentage_complete
-        self.evaluation_state["score"]["score_secondary"] = mean_reward
+        self.evaluation_state["score"]["score"] = sum_normalized_reward
+        self.evaluation_state["score"]["score_secondary"] = mean_percentage_complete
         self.evaluation_state["meta"]["normalized_reward"] = mean_normalized_reward
         self.evaluation_state["meta"]["reward"] = mean_reward
         self.evaluation_state["meta"]["percentage_complete"] = mean_percentage_complete
+        self.evaluation_state["meta"]["termination_cause"] = self.termination_cause
         self.handle_aicrowd_success_event(self.evaluation_state)
+
         print("#" * 100)
         print("EVALUATION COMPLETE !!")
         print("#" * 100)
         print("# Mean Reward : {}".format(mean_reward))
+        print("# Sum Normalized Reward : {} (primary score)".format(sum_normalized_reward))
+        print("# Mean Percentage Complete : {} (secondary score)".format(mean_percentage_complete))
         print("# Mean Normalized Reward : {}".format(mean_normalized_reward))
-        print("# Mean Percentage Complete : {}".format(mean_percentage_complete))
         print("#" * 100)
         print("#" * 100)
 
+        return _command_response
+
     def compute_mean_scores(self):
         #################################################################################
         #################################################################################
@@ -971,22 +1077,21 @@ class FlatlandRemoteEvaluationService:
         # we group all the results by the test_ids
         # so we first compute the mean in each of the test_id groups,
         # and then we compute the mean across each of the test_id groups
-        #
-        #
         #################################################################################
         #################################################################################
         source_df = self.evaluation_metadata_df.dropna()
-        grouped_df = source_df.groupby(['test_id']).mean()
+        # grouped_df = source_df.groupby(['test_id']).mean()
 
-        mean_reward = grouped_df["reward"].mean()
-        mean_normalized_reward = grouped_df["normalized_reward"].mean()
-        mean_percentage_complete = grouped_df["percentage_complete"].mean()
+        mean_reward = source_df["reward"].mean()
+        mean_normalized_reward = source_df["normalized_reward"].mean()
+        sum_normalized_reward = source_df["normalized_reward"].sum()
+        mean_percentage_complete = source_df["percentage_complete"].mean()
         # Round off the reward values
         mean_reward = round(mean_reward, 2)
         mean_normalized_reward = round(mean_normalized_reward, 5)
         mean_percentage_complete = round(mean_percentage_complete, 3)
 
-        return mean_reward, mean_normalized_reward, mean_percentage_complete
+        return mean_reward, mean_normalized_reward, sum_normalized_reward, mean_percentage_complete
 
     def report_error(self, error_message, command_response_channel):
         """
@@ -1005,6 +1110,7 @@ class FlatlandRemoteEvaluationService:
         )
         self.evaluation_state["state"] = "ERROR"
         self.evaluation_state["error"] = error_message
+        self.evaluation_state["meta"]["termination_cause"] = "An error occured."
         self.handle_aicrowd_error_event(self.evaluation_state)
 
     def handle_aicrowd_info_event(self, payload):
@@ -1032,37 +1138,45 @@ class FlatlandRemoteEvaluationService:
         """
         print("Listening at : ", self.command_channel)
         MESSAGE_QUEUE_LATENCY = []
-        while True:
 
+        while True:
             try:
                 command = self.get_next_command()
             except timeout_decorator.timeout_decorator.TimeoutError:
                 # a timeout occurred: send an error, and give -1.0 normalized score for this episode
                 if self.previous_command['type'] == messages.FLATLAND_RL.ENV_STEP:
                     self.send_error({"type": messages.FLATLAND_RL.ENV_STEP_TIMEOUT})
+                    timeout_details = "step time limit of {}s".format(PER_STEP_TIMEOUT)
 
                 elif self.previous_command['type'] == messages.FLATLAND_RL.ENV_CREATE:
                     self.send_error({"type": messages.FLATLAND_RL.ENV_RESET_TIMEOUT})
+                    timeout_details = "pre-planning time limit of {}s".format(INTIAL_PLANNING_TIMEOUT)
 
                 self.simulation_steps[-1] += 1
                 self.simulation_rewards[-1] = self.env._max_episode_steps * self.env.get_num_agents()
-                self.simulation_rewards_normalized[-1] = -1.0
-
-                print("Evaluation TIMED OUT after {} timesteps, using max penalty. Percentage agents done: {:.3f}. Normalized reward: {:.3f}. Number of malfunctions: {}".format(
-                    self.simulation_steps[-1],
-                    self.simulation_percentage_complete[-1],
-                    self.simulation_rewards_normalized[-1],
-                    self.nb_malfunctioning_trains[-1],
-                ))
+                self.simulation_rewards_normalized[-1] = 0.0
+
+                print(
+                    "Evaluation of this episode TIMED OUT after {} timesteps (exceeded {}), won't get any reward. {} consecutive timeouts. "
+                    "Percentage agents done: {:.3f}. Normalized reward: {:.3f}. Number of malfunctions: {}.".format(
+                        self.simulation_steps[-1],
+                        timeout_details,
+                        self.timeout_counter,
+                        self.simulation_percentage_complete[-1],
+                        self.simulation_rewards_normalized[-1],
+                        self.nb_malfunctioning_trains[-1],
+                    ))
 
                 self.timeout_counter += 1
                 self.state_env_timed_out = True
                 self.simulation_done = True
 
-                print("Consecutive timeouts: {}".format(self.timeout_counter))
-                if self.timeout_counter > MAX_SUCCESSIVE_TIMEOUTS:
-                    raise Exception("{} consecutive timeouts, aborting.".format(self.timeout_counter))
-
+                if self.timeout_counter >= MAX_SUCCESSIVE_TIMEOUTS:
+                    print("=" * 15)
+                    msg = "Submissions had {} consecutive timeouts.".format(self.timeout_counter)
+                    print(msg, "Evaluation will stop.")
+                    self.termination_cause = msg
+                    self.evaluation_done = True
                 continue
 
             self.timeout_counter = 0
@@ -1180,10 +1294,10 @@ if __name__ == "__main__":
                         help="use pickle instead of msgpack",
                         required=False)
 
-    parser.add_argument('--noShuffle',
+    parser.add_argument('--shuffle',
                         default=False,
                         action="store_true",
-                        help="don't shuffle the envs.  Default is to shuffle.",
+                        help="Shuffle the environments",
                         required=False)
 
     parser.add_argument('--disableTimeouts',
@@ -1203,7 +1317,6 @@ if __name__ == "__main__":
                         help="Results CSV path",
                         required=False)
 
-
     parser.add_argument('--verbose',
                         default=False,
                         action="store_true",
@@ -1220,11 +1333,11 @@ if __name__ == "__main__":
         visualize=True,
         video_generation_envs=["Test_0/Level_100.pkl"],
         result_output_path=args.resultsDir,
-        actionDir=args.actionDir,
-        episodeDir=args.episodeDir,
-        mergeDir=args.mergeDir,
+        action_dir=args.actionDir,
+        episode_dir=args.episodeDir,
+        merge_dir=args.mergeDir,
         use_pickle=args.pickle,
-        shuffle=not args.noShuffle,
+        shuffle=args.shuffle,
         missing_only=args.missingOnly,
         disable_timeouts=args.disableTimeouts
     )
diff --git a/notebooks/test-service.ipynb b/notebooks/test-service.ipynb
new file mode 100644
index 0000000000000000000000000000000000000000..969e8420629f05a562784cb3b9d36e83bfb98838
--- /dev/null
+++ b/notebooks/test-service.ipynb
@@ -0,0 +1,2158 @@
+{
+ "cells": [
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "# Test Service\n",
+    "\n",
+    "Intended to test the service.py evaluator.\n",
+    "Runs the service.py and a simple client.\n",
+    "\n"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {
+    "colab_type": "text",
+    "id": "baXcVq3ii0Cb"
+   },
+   "source": [
+    "# Setup"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 1,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "%load_ext autoreload\n",
+    "%autoreload 2"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 2,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "import pandas as pd\n",
+    "import numpy as np\n",
+    "import matplotlib.pyplot as plt"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 3,
+   "metadata": {
+    "colab": {},
+    "colab_type": "code",
+    "id": "eSHpLxdt1jmE"
+   },
+   "outputs": [],
+   "source": [
+    "import PIL\n",
+    "from flatland.utils.rendertools import RenderTool\n",
+    "import imageio\n",
+    "import os"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 4,
+   "metadata": {
+    "colab": {},
+    "colab_type": "code",
+    "id": "PU5GkH271guD"
+   },
+   "outputs": [
+    {
+     "data": {
+      "text/html": [
+       "<style>.container { width:95% !important; }</style>"
+      ],
+      "text/plain": [
+       "<IPython.core.display.HTML object>"
+      ]
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    }
+   ],
+   "source": [
+    "from IPython.display import clear_output\n",
+    "from IPython.core import display\n",
+    "import ipywidgets as ipw\n",
+    "display.display(display.HTML(\"<style>.container { width:95% !important; }</style>\"))"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {
+    "colab_type": "text",
+    "id": "UeX1h4c0i5e6"
+   },
+   "source": [
+    "# Experiments\n",
+    "\n",
+    "This has been mostly changed to load envs using `importlib_resources`.  It's getting them from the package \"envdata.tests`"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 5,
+   "metadata": {
+    "colab": {},
+    "colab_type": "code",
+    "id": "kAiCO4x75Rbw"
+   },
+   "outputs": [],
+   "source": [
+    "# ENV FILE PATH\n",
+    "#env_file = \"Test_20_Level_0.pkl\"\n",
+    "#env_file = \"../../evaluation_visualization/round2/or-0827/Test_23/Level_1.pkl\"\n",
+    "#env_file = \"../../evaluation_visualization/round2/rl-0827/Test_23/Level_1.pkl\""
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 6,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "#if os.path.exists(\"../env_data\"):\n",
+    "#    env_file = \"../env_data/tests/Test_2_Level_0.pkl\"\n",
+    "#else:\n",
+    "#    env_file = \"./env_data/tests/Test_2_Level_0.pkl\""
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 7,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "#sPack, sResource = \"env_data.tests\", \"Test_2_Level_0.pkl\"\n",
+    "sPack, sResource = \"env_data.tests\", \"Test_9_Level_1.pkl\""
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 8,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "#env_file = \"../../evaluation_visualization/round2/or-0827/Test_23/Level_1.pkl\"\n",
+    "#env_file = \"../../evaluation_visualization/round2/rl-0827/Test_23/Level_1.pkl\""
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 9,
+   "metadata": {
+    "colab": {},
+    "colab_type": "code",
+    "id": "PU5GkH271guD"
+   },
+   "outputs": [],
+   "source": [
+    "import pickle\n",
+    "\n",
+    "from flatland.envs.rail_env import RailEnv\n",
+    "from flatland.envs.rail_generators import sparse_rail_generator\n",
+    "from flatland.envs.schedule_generators import sparse_schedule_generator\n",
+    "from flatland.envs.malfunction_generators import malfunction_from_file, no_malfunction_generator\n",
+    "from flatland.envs.rail_generators import rail_from_file\n",
+    "from flatland.envs.schedule_generators import schedule_from_file\n",
+    "from flatland.core.env_observation_builder import DummyObservationBuilder"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 10,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "from flatland.envs.persistence import RailEnvPersister\n",
+    "from flatland.evaluators.client import FlatlandRemoteClient\n",
+    "import redis\n",
+    "import subprocess as sp\n",
+    "import shlex\n",
+    "import time"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 11,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "/home/jeremy/projects/aicrowd/rl-trains/flatland5/notebooks\r\n"
+     ]
+    }
+   ],
+   "source": [
+    "!pwd"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "### Clear any old redis keys"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 12,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "oRedis = redis.Redis()"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 13,
+   "metadata": {},
+   "outputs": [
+    {
+     "data": {
+      "text/plain": [
+       "[]"
+      ]
+     },
+     "execution_count": 13,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "lKeys = oRedis.keys(\"flatland*\")\n",
+    "lKeys"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 14,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "for sKey in lKeys:\n",
+    "    print(sKey)\n",
+    "    oRedis.delete(sKey)"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "## Service python command\n",
+    "### Kill any old service process"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 15,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "!ps -ef | grep -i python | grep -i flatland.evaluators.service | awk '{print $2}' | xargs kill"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 16,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "#sCmd = \"python -m flatland.evaluators.service --test_folder ../env_data/tests/service_test --mergeDir ./tmp/merge --actionDir ./tmp/actions --pickle --missingOnly\"\n",
+    "sCmd = \"python -m flatland.evaluators.service --test_folder ../env_data/tests/service_test --pickle --verbose\"\n",
+    "lsCmd = shlex.split(sCmd)"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 17,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "#wOut = ipw.Output()\n",
+    "#wOut"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 18,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "oPipe = sp.Popen(lsCmd)"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 19,
+   "metadata": {},
+   "outputs": [
+    {
+     "data": {
+      "text/plain": [
+       "subprocess.Popen"
+      ]
+     },
+     "execution_count": 19,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "type(oPipe)"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 20,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "oPipe.poll()"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 21,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "Request :  {'type': 'FLATLAND_RL.PING', 'payload': {'version': '2.2.1'}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::c26d0b28a6e1a7c59f3e022fa56a8b77', 'timestamp': 1601382710.231949}\n",
+      "Response :  b'\\x80\\x03}q\\x00(X\\x04\\x00\\x00\\x00typeq\\x01X\\x10\\x00\\x00\\x00FLATLAND_RL.PONGq\\x02X\\x07\\x00\\x00\\x00payloadq\\x03}q\\x04u.'\n"
+     ]
+    }
+   ],
+   "source": [
+    "oFRC = FlatlandRemoteClient(test_envs_root=\"../env_data/tests/service_test/\", verbose=True, use_pickle=True)"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 22,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "env, env_dict = RailEnvPersister.load_new(\"../env_data/tests/service_test/Test_0/Level_0.pkl\") # env_file)\n",
+    "ldActions = env_dict[\"actions\"]"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 23,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "def my_controller(obs, _env):\n",
+    "    dAct = ldActions[_env._elapsed_steps]\n",
+    "    #_action = {}\n",
+    "    #for _idx, _ in enumerate(_env.agents):\n",
+    "    #    _action[_idx] = np.random.randint(0, 5)\n",
+    "    return dAct"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 24,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "oObsB = DummyObservationBuilder()"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 25,
+   "metadata": {},
+   "outputs": [
+    {
+     "data": {
+      "text/plain": [
+       "True"
+      ]
+     },
+     "execution_count": 25,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "oObsB.get()"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 26,
+   "metadata": {
+    "scrolled": false
+   },
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "Request :  {'type': 'FLATLAND_RL.ENV_CREATE', 'payload': {}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::c5f9c9736b4a07080d62491b55587291', 'timestamp': 1601382711.3886104}\n",
+      "Response :  b'\\x80\\x03}q\\x00(X\\x04\\x00\\x00\\x00typeq\\x01X\\x1f\\x00\\x00\\x00FLATLAND_RL.ENV_CREATE_RESPONSEq\\x02X\\x07\\x00\\x00\\x00payloadq\\x03}q\\x04(X\\x0b\\x00\\x00\\x00observationq\\x05\\x88X\\r\\x00\\x00\\x00env_file_pathq\\x06X\\x12\\x00\\x00\\x00Test_0/Level_0.pklq\\x07X\\x04\\x00\\x00\\x00infoq\\x08}q\\t(X\\x0f\\x00\\x00\\x00action_requiredq\\n}q\\x0b(K\\x00\\x88K\\x01\\x88K\\x02\\x88K\\x03\\x88K\\x04\\x88K\\x05\\x88K\\x06\\x88K\\x07\\x88K\\x08\\x88K\\t\\x88uX\\x0b\\x00\\x00\\x00malfunctionq\\x0c}q\\r(K\\x00K\\x00K\\x01K\\x00K\\x02K\\x00K\\x03K\\x00K\\x04K\\x00K\\x05K\\x00K\\x06K\\x00K\\x07K\\x00K\\x08K\\x00K\\tK\\x00uX\\x05\\x00\\x00\\x00speedq\\x0e}q\\x0f(K\\x00G?\\xf0\\x00\\x00\\x00\\x00\\x00\\x00K\\x01G?\\xf0\\x00\\x00\\x00\\x00\\x00\\x00K\\x02G?\\xf0\\x00\\x00\\x00\\x00\\x00\\x00K\\x03G?\\xf0\\x00\\x00\\x00\\x00\\x00\\x00K\\x04G?\\xf0\\x00\\x00\\x00\\x00\\x00\\x00K\\x05G?\\xf0\\x00\\x00\\x00\\x00\\x00\\x00K\\x06G?\\xf0\\x00\\x00\\x00\\x00\\x00\\x00K\\x07G?\\xf0\\x00\\x00\\x00\\x00\\x00\\x00K\\x08G?\\xf0\\x00\\x00\\x00\\x00\\x00\\x00K\\tG?\\xf0\\x00\\x00\\x00\\x00\\x00\\x00uX\\x06\\x00\\x00\\x00statusq\\x10}q\\x11(K\\x00cflatland.envs.agent_utils\\nRailAgentStatus\\nq\\x12K\\x00\\x85q\\x13Rq\\x14K\\x01h\\x14K\\x02h\\x14K\\x03h\\x14K\\x04h\\x14K\\x05h\\x14K\\x06h\\x14K\\x07h\\x14K\\x08h\\x14K\\th\\x14uuX\\x0b\\x00\\x00\\x00random_seedq\\x15M\\xe9\\x03uu.'\n",
+      "Received Env :  Test_0/Level_0.pkl\n",
+      "Current env path :  ../env_data/tests/service_test/Test_0/Level_0.pkl\n",
+      "DEPRECATED - use FileMalfunctionGen instead of malfunction_from_file\n",
+      "DEPRECATED - RailEnv arg: malfunction_and_process_data - use malfunction_generator\n",
+      "Episode : 0\n",
+      "False\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {1: 2, 3: 2, 8: 2}, 'inference_time': 7.510185241699219e-05}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::fcbc1a592db4b9ab83ee4b82489be98d', 'timestamp': 1601382711.4002197}\n",
+      "Step Time :  0.0022978782653808594\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {1: 2, 3: 2, 8: 2}, 'inference_time': 7.724761962890625e-05}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::01660f051b3f375a8a00683810f55df6', 'timestamp': 1601382711.4025884}\n",
+      "Step Time :  0.003253936767578125\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {1: 1, 3: 2, 8: 4}, 'inference_time': 0.0001881122589111328}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::8f8a0507d4ce4aaff58d3754c2470535', 'timestamp': 1601382711.4060314}\n",
+      "Step Time :  0.0032224655151367188\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {1: 4, 3: 4, 8: 1}, 'inference_time': 8.392333984375e-05}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::dcbe785e0485cdea9eea2635cf50ff2e', 'timestamp': 1601382711.4093235}\n",
+      "Step Time :  0.0022280216217041016\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {1: 3, 3: 1, 8: 3}, 'inference_time': 9.489059448242188e-05}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::84fe3e3f27788eafc3e651a0b2dc6381', 'timestamp': 1601382711.4116464}\n",
+      "Step Time :  0.0026159286499023438\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {1: 2, 3: 3, 8: 4}, 'inference_time': 0.00020122528076171875}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::c6c940aa9ecedb1148ee20bb3fdb4137', 'timestamp': 1601382711.414452}\n",
+      "Step Time :  0.0015065670013427734\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {1: 2, 3: 2, 8: 1}, 'inference_time': 5.6743621826171875e-05}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::b31263b6c34f9fae6a601b49dcb269cf', 'timestamp': 1601382711.4160109}\n",
+      "Step Time :  0.0012655258178710938\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {1: 2, 3: 4, 8: 4}, 'inference_time': 4.029273986816406e-05}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::989cb1bec7ffe8eb46654f97c9c5c3d8', 'timestamp': 1601382711.4173107}\n",
+      "Step Time :  0.0013382434844970703\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {1: 3, 3: 2, 8: 4}, 'inference_time': 0.0005276203155517578}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::5953731bab617e774304306fe227cb76', 'timestamp': 1601382711.41918}\n",
+      "Step Time :  0.003258943557739258\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {1: 2, 3: 2, 8: 3}, 'inference_time': 0.0005054473876953125}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::7a5baaa32fae1f442e5d5097e8e7bd61', 'timestamp': 1601382711.422997}\n",
+      "Step Time :  0.002592802047729492\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {1: 2, 3: 3, 8: 4}, 'inference_time': 0.00022459030151367188}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::9233d209716f4ae78a5dbe124de67e27', 'timestamp': 1601382711.4257793}\n",
+      "Step Time :  0.0035974979400634766\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {1: 2, 3: 2, 8: 3}, 'inference_time': 8.940696716308594e-05}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::86a6797d4a4dc741a0d88243b124638c', 'timestamp': 1601382711.4294176}\n",
+      "Step Time :  0.0015513896942138672\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {3: 2, 1: 2, 8: 4}, 'inference_time': 5.1021575927734375e-05}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::5d70186b357a8e3b6e47f4b7d75e8c25', 'timestamp': 1601382711.431004}\n",
+      "Step Time :  0.0012707710266113281\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {3: 2, 1: 4, 8: 4}, 'inference_time': 3.838539123535156e-05}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::2872c8d42231e56eba7350e8ee58fb0f', 'timestamp': 1601382711.4323094}\n",
+      "Step Time :  0.0012013912200927734\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {1: 4, 3: 4, 8: 4}, 'inference_time': 3.695487976074219e-05}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::d1575976e20855eeb73a94ec8b35704c', 'timestamp': 1601382711.433544}\n",
+      "Step Time :  0.00118255615234375\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {1: 4, 3: 2, 8: 1}, 'inference_time': 4.076957702636719e-05}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::1a88f3d68232723258cf91c3f90341a2', 'timestamp': 1601382711.434766}\n",
+      "Step Time :  0.0012896060943603516\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {1: 4, 3: 2, 8: 2}, 'inference_time': 3.9577484130859375e-05}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::9996e44a9b8f5e18f189aa8a20f0c826', 'timestamp': 1601382711.436093}\n",
+      "Step Time :  0.0028619766235351562\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {1: 4, 3: 2, 8: 4}, 'inference_time': 9.632110595703125e-05}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::1326f67ea516bea91837053b900c947b', 'timestamp': 1601382711.439057}\n",
+      "Step Time :  0.002596616744995117\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {1: 4, 3: 2, 8: 4}, 'inference_time': 7.939338684082031e-05}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::982362496c3b2ab2acebdf6d902cc350', 'timestamp': 1601382711.4417272}\n",
+      "Step Time :  0.0021734237670898438\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {1: 4, 3: 2, 8: 4}, 'inference_time': 8.106231689453125e-05}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::9009f2f0e1c32261e7998223e4ac09a8', 'timestamp': 1601382711.4439852}\n",
+      "Step Time :  0.0023076534271240234\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {1: 4, 3: 2, 8: 4}, 'inference_time': 0.0007867813110351562}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::c9686403febfc87d225376f71ef3f92b', 'timestamp': 1601382711.4470773}\n",
+      "Step Time :  0.002045869827270508\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {1: 4, 3: 4, 8: 2}, 'inference_time': 9.560585021972656e-05}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::6f5586b03a0c885b3478e187a6a2983d', 'timestamp': 1601382711.449204}\n",
+      "Step Time :  0.0030193328857421875\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {1: 2, 3: 2, 8: 4}, 'inference_time': 0.00010275840759277344}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::ba6ffa8ba5914c637931ee3bcb163a4e', 'timestamp': 1601382711.4523218}\n",
+      "Step Time :  0.0031375885009765625\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {1: 3, 3: 2, 8: 4}, 'inference_time': 9.393692016601562e-05}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::a5f14ab3052d57a89397c9c5eae02684', 'timestamp': 1601382711.4555423}\n",
+      "Step Time :  0.0029344558715820312\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {1: 2, 3: 4, 8: 3}, 'inference_time': 0.0008397102355957031}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::2a6e51251b8fb6633b4d7f3230b20bb4', 'timestamp': 1601382711.459362}\n",
+      "Step Time :  0.002864360809326172\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {8: 2, 1: 2, 3: 3}, 'inference_time': 7.843971252441406e-05}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::e0249c99c942d27b70b163e29765ca2f', 'timestamp': 1601382711.462233}\n",
+      "Step Time :  0.002438783645629883\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {3: 2, 1: 1, 8: 2}, 'inference_time': 9.775161743164062e-05}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::563221b7b47c7c69b089b53b48e2f5e1', 'timestamp': 1601382711.4647684}\n",
+      "Step Time :  0.002646207809448242\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {1: 2, 3: 2, 8: 1}, 'inference_time': 0.00011014938354492188}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::6e5a6dca95c62aad936131d6c502b604', 'timestamp': 1601382711.4675188}\n",
+      "Step Time :  0.0026237964630126953\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {1: 2, 3: 1, 8: 2}, 'inference_time': 0.0002903938293457031}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::4bfdb439983588752e6ab83f5451cb57', 'timestamp': 1601382711.4704988}\n",
+      "Step Time :  0.005908489227294922\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {8: 2, 1: 2, 3: 2}, 'inference_time': 0.00018334388732910156}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::00e70777dc7b708d6ba0e89759c5e7ab', 'timestamp': 1601382711.4765024}\n",
+      "Step Time :  0.0027844905853271484\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {8: 2, 1: 2, 3: 3}, 'inference_time': 9.083747863769531e-05}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::5bb765a39fffebfef7020667ba9ad348', 'timestamp': 1601382711.4793603}\n",
+      "Step Time :  0.003426074981689453\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {8: 2, 0: 2, 3: 1}, 'inference_time': 0.0002989768981933594}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::5789b5bbb671863d09aba9ad8ac2c5ba', 'timestamp': 1601382711.4830754}\n",
+      "Step Time :  0.002333402633666992\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {8: 1, 0: 2, 3: 2}, 'inference_time': 9.560585021972656e-05}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::768c7dcc60da0e26eccbe532c30e9bf0', 'timestamp': 1601382711.4854922}\n",
+      "Step Time :  0.0040285587310791016\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {8: 2, 0: 3, 3: 3}, 'inference_time': 9.202957153320312e-05}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::fb2be073e569a6d9fd97f4c404924616', 'timestamp': 1601382711.4896104}\n",
+      "Step Time :  0.003953695297241211\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {0: 1, 3: 1, 8: 2}, 'inference_time': 0.0002503395080566406}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::fd5cac08c76dc7c55d8d4270270bd83d', 'timestamp': 1601382711.4938366}\n",
+      "Step Time :  0.0033674240112304688\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {0: 2, 2: 2, 8: 2}, 'inference_time': 8.988380432128906e-05}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::eb89c12b1a95046c96ca003a83adff38', 'timestamp': 1601382711.4972467}\n",
+      "Step Time :  0.002035379409790039\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {0: 2, 2: 2, 8: 2}, 'inference_time': 7.367134094238281e-05}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::4827df66d749df6cd6bfe49d8588aa88', 'timestamp': 1601382711.4993477}\n"
+     ]
+    },
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "Step Time :  0.002225637435913086\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {0: 2, 2: 4, 7: 2}, 'inference_time': 9.1552734375e-05}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::c2cd268a6ed0e12a58f25998f8c3554b', 'timestamp': 1601382711.5016613}\n",
+      "Step Time :  0.0016257762908935547\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {0: 3, 2: 4, 7: 2}, 'inference_time': 0.00015044212341308594}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::0b09b4697f8238b2e9cccba01249c2c2', 'timestamp': 1601382711.5034719}\n",
+      "Step Time :  0.002920389175415039\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {0: 2, 2: 3, 7: 1}, 'inference_time': 0.0001926422119140625}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::896b99e503c5c0cab972616cd329e42b', 'timestamp': 1601382711.5065582}\n",
+      "Step Time :  0.0028586387634277344\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {0: 2, 2: 1, 7: 4}, 'inference_time': 0.00011205673217773438}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::e8aa6ae0f0b5f0e1fd6c9e37b66cc9e8', 'timestamp': 1601382711.5095057}\n",
+      "Step Time :  0.002268075942993164\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {0: 2, 2: 4, 7: 3}, 'inference_time': 8.082389831542969e-05}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::68881c66dc29d6e7cb6ce811c2e3ebb9', 'timestamp': 1601382711.511836}\n",
+      "Step Time :  0.003056049346923828\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {0: 2, 2: 2, 7: 4}, 'inference_time': 0.00010085105895996094}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::ab16c703c7aa096b02156ac87913d25b', 'timestamp': 1601382711.5149915}\n",
+      "Step Time :  0.0020749568939208984\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {0: 3, 2: 2, 7: 2}, 'inference_time': 8.463859558105469e-05}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::856a64b23f2622ac246c11ada4c55236', 'timestamp': 1601382711.517146}\n",
+      "Step Time :  0.002145051956176758\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {0: 2, 2: 2, 7: 2}, 'inference_time': 6.198883056640625e-05}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::a48714c94d995d3ae923148c20d18114', 'timestamp': 1601382711.5193443}\n",
+      "Step Time :  0.002750873565673828\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {0: 2, 2: 3, 7: 2}, 'inference_time': 0.00014352798461914062}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::8c6378287b6feffee1f567ea90c48d32', 'timestamp': 1601382711.5222585}\n",
+      "Step Time :  0.003484964370727539\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {0: 2, 2: 2, 7: 1}, 'inference_time': 0.00011515617370605469}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::fb0a0c80b8fec58ca6a82fd6255f5350', 'timestamp': 1601382711.525836}\n",
+      "Step Time :  0.0028162002563476562\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {0: 2, 2: 2, 7: 3}, 'inference_time': 7.963180541992188e-05}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::b1ca9b110cbc4693f3f4096e4ff01e2a', 'timestamp': 1601382711.5287173}\n",
+      "Step Time :  0.001969575881958008\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {0: 2, 2: 2, 7: 2}, 'inference_time': 6.461143493652344e-05}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::38b72e74200571d3229603eba65a7354', 'timestamp': 1601382711.530745}\n",
+      "Step Time :  0.0018703937530517578\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {0: 2, 2: 2, 7: 2}, 'inference_time': 7.200241088867188e-05}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::afd477a48e4ca18aea76172ac218ec93', 'timestamp': 1601382711.5326862}\n",
+      "Step Time :  0.002115488052368164\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {0: 2, 2: 3, 7: 2}, 'inference_time': 8.749961853027344e-05}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::6d48880f7883e8a0f507e5e991f22564', 'timestamp': 1601382711.5348856}\n",
+      "Step Time :  0.0015149116516113281\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {0: 2, 2: 2, 7: 4}, 'inference_time': 5.340576171875e-05}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::c1afc72b5f449d2107da8404a5643af1', 'timestamp': 1601382711.5364423}\n",
+      "Step Time :  0.0031876564025878906\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {0: 2, 2: 2, 7: 1}, 'inference_time': 0.0002930164337158203}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::95e07610b2b935ba3826731b1ad35a5b', 'timestamp': 1601382711.5399823}\n",
+      "Step Time :  0.0029382705688476562\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {0: 3, 2: 2, 7: 3}, 'inference_time': 0.0009355545043945312}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::72148039994ff567d3becaa83e9799b9', 'timestamp': 1601382711.5438325}\n",
+      "Step Time :  0.0037069320678710938\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {0: 2, 2: 2, 7: 2}, 'inference_time': 6.628036499023438e-05}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::a7512c4dbb85d4b514d80b1fb3ce1d64', 'timestamp': 1601382711.5475335}\n",
+      "Step Time :  0.0014853477478027344\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {0: 2, 2: 2, 7: 2}, 'inference_time': 5.841255187988281e-05}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::dffa9e70e4cfb671bc40d4439bcef50c', 'timestamp': 1601382711.5490718}\n",
+      "Step Time :  0.0011713504791259766\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {0: 1, 2: 4, 7: 2}, 'inference_time': 4.363059997558594e-05}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::21cee9c38f1fc3581ef4c33228a2a690', 'timestamp': 1601382711.55028}\n",
+      "Step Time :  0.001111745834350586\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {0: 3, 2: 2, 7: 4}, 'inference_time': 9.870529174804688e-05}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::5f1ab9d45f3966769b57d3abcfb93a3f', 'timestamp': 1601382711.551508}\n",
+      "Step Time :  0.0019779205322265625\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {0: 1, 2: 2, 7: 3}, 'inference_time': 6.580352783203125e-05}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::ae44ba66bb5c42c319df0fe3c1b90302', 'timestamp': 1601382711.5535336}\n",
+      "Step Time :  0.0061647891998291016\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {0: 2, 2: 4, 7: 1}, 'inference_time': 8.130073547363281e-05}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::c6dc4987753bb3844eb6b7531d1fb23e', 'timestamp': 1601382711.559776}\n",
+      "Step Time :  0.002310514450073242\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {0: 2, 2: 2, 7: 2}, 'inference_time': 6.699562072753906e-05}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::a7ac25cb5ee5896552696d0df18978d2', 'timestamp': 1601382711.5621476}\n",
+      "Step Time :  0.0012683868408203125\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {7: 2, 0: 2, 2: 4}, 'inference_time': 4.601478576660156e-05}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::3f6926869e945616e1eda44408c25987', 'timestamp': 1601382711.5634518}\n",
+      "Step Time :  0.0011298656463623047\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {7: 3, 0: 4, 2: 2}, 'inference_time': 4.363059997558594e-05}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::013760364fca9935a82ae363cd3d95b5', 'timestamp': 1601382711.5646222}\n",
+      "Step Time :  0.001155853271484375\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {7: 2, 0: 2, 2: 2}, 'inference_time': 4.9591064453125e-05}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::f8f3996502309737cf69374ce9817aa6', 'timestamp': 1601382711.565827}\n",
+      "Step Time :  0.0011570453643798828\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {7: 2, 2: 2, 4: 2}, 'inference_time': 4.315376281738281e-05}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::aaa5d34edbab66dca437eef104500fd1', 'timestamp': 1601382711.5670228}\n",
+      "Step Time :  0.0016846656799316406\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {7: 2, 2: 2, 4: 2}, 'inference_time': 7.390975952148438e-05}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::bbd139102fb898bf690a1a0255e13ba4', 'timestamp': 1601382711.568785}\n",
+      "Step Time :  0.00226593017578125\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {2: 2, 4: 2, 7: 2}, 'inference_time': 0.0001125335693359375}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::37d65f3e5090730f5f06cb4839670d33', 'timestamp': 1601382711.5711637}\n",
+      "Step Time :  0.0025758743286132812\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {2: 2, 4: 4, 7: 2}, 'inference_time': 0.0001049041748046875}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::8bab15f06cd0bdb5de4482cf958574c5', 'timestamp': 1601382711.5738323}\n",
+      "Step Time :  0.0022826194763183594\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {2: 2, 4: 2, 7: 3}, 'inference_time': 0.00020813941955566406}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::9875425c7753707f024e86325aef5405', 'timestamp': 1601382711.576342}\n",
+      "Step Time :  0.003387928009033203\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {7: 2, 2: 2, 4: 1}, 'inference_time': 8.726119995117188e-05}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::bd3891baa651cbb65367104d5b31a26c', 'timestamp': 1601382711.5797787}\n",
+      "Step Time :  0.0020682811737060547\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {2: 2, 4: 3, 7: 2}, 'inference_time': 9.179115295410156e-05}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::beb8e884e5167c0f83d6b42c667c36b9', 'timestamp': 1601382711.5819302}\n",
+      "Step Time :  0.0019292831420898438\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {2: 2, 4: 2, 7: 4}, 'inference_time': 7.82012939453125e-05}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::6fbeb0a2c67bdc79906f05b7fce57fc0', 'timestamp': 1601382711.5839326}\n",
+      "Step Time :  0.0020830631256103516\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {4: 3, 2: 2, 7: 4}, 'inference_time': 9.632110595703125e-05}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::e4f8624d81693fb3c9d2457468f6de3d', 'timestamp': 1601382711.5861118}\n"
+     ]
+    },
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "Step Time :  0.003414630889892578\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {4: 2, 2: 2, 7: 1}, 'inference_time': 0.0005331039428710938}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::6aee80b0ce19d0fe4c5808f1410f1c69', 'timestamp': 1601382711.5900652}\n",
+      "Step Time :  0.0028533935546875\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {4: 2, 2: 2, 7: 2}, 'inference_time': 8.606910705566406e-05}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::113b0fd2959caf4bd8c3a6718ccb5379', 'timestamp': 1601382711.5929782}\n",
+      "Step Time :  0.0015716552734375\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {4: 2, 2: 2, 7: 3}, 'inference_time': 9.036064147949219e-05}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::86bd1212963b076771c3ec85742ff3de', 'timestamp': 1601382711.5946329}\n",
+      "Step Time :  0.001630544662475586\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {4: 2, 2: 2, 7: 1}, 'inference_time': 7.987022399902344e-05}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::c54489e16abfcfd1ab29395f323523af', 'timestamp': 1601382711.596337}\n",
+      "Step Time :  0.002650022506713867\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {4: 3, 2: 2, 7: 1}, 'inference_time': 8.535385131835938e-05}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::cc1badccb25afcb2044ca0df5ab4fda9', 'timestamp': 1601382711.599073}\n",
+      "Step Time :  0.002209186553955078\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {4: 2, 2: 4, 7: 3}, 'inference_time': 9.107589721679688e-05}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::a942d07810a8aee3c284d28a81c74f41', 'timestamp': 1601382711.6013694}\n",
+      "Step Time :  0.00185394287109375\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {4: 2, 2: 2, 7: 2}, 'inference_time': 0.0002281665802001953}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::241ddbd7dbbe16c8708ac917785f76c5', 'timestamp': 1601382711.6035004}\n",
+      "Step Time :  0.003378152847290039\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {4: 2, 2: 2, 5: 2}, 'inference_time': 0.0001270771026611328}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::2af372ca5ebba026d8250516066270ef', 'timestamp': 1601382711.6069438}\n",
+      "Step Time :  0.003434419631958008\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {4: 2, 2: 2, 5: 4}, 'inference_time': 8.273124694824219e-05}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::e6c7748e0bcc4ab965b236baec978514', 'timestamp': 1601382711.6104383}\n",
+      "Step Time :  0.0016703605651855469\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {4: 2, 2: 2, 5: 2}, 'inference_time': 0.0001671314239501953}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::c2a41fc1e0faea695a0e2cc7018144f3', 'timestamp': 1601382711.6123183}\n",
+      "Step Time :  0.002227783203125\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {4: 2, 2: 2, 5: 2}, 'inference_time': 6.628036499023438e-05}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::666d929d0b2484c3277fb1571bd7b8ec', 'timestamp': 1601382711.6145585}\n",
+      "Step Time :  0.002032756805419922\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {4: 2, 2: 2, 5: 4}, 'inference_time': 0.0006310939788818359}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::e9ea59786856881efd8b44b1893dbd9d', 'timestamp': 1601382711.617223}\n",
+      "Step Time :  0.001196146011352539\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {4: 2, 2: 2, 5: 2}, 'inference_time': 5.8650970458984375e-05}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::15ce73883e09406b04df287bea04a1ea', 'timestamp': 1601382711.618466}\n",
+      "Step Time :  0.001224517822265625\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {4: 2, 2: 2, 5: 1}, 'inference_time': 5.054473876953125e-05}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::8de7b35de842fef170cc7e5e9e708cd7', 'timestamp': 1601382711.619733}\n",
+      "Step Time :  0.003506183624267578\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {4: 2, 2: 2, 5: 3}, 'inference_time': 0.00010704994201660156}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::4993341b2fbefeaa6e341437311ae933', 'timestamp': 1601382711.6233582}\n",
+      "Step Time :  0.0031914710998535156\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {4: 1, 2: 2, 5: 2}, 'inference_time': 0.0006198883056640625}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::823506896e2531103ef3f2314a17a47b', 'timestamp': 1601382711.6272037}\n",
+      "Step Time :  0.0019412040710449219\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {4: 2, 5: 3, 2: 2}, 'inference_time': 0.0001010894775390625}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::c08e3917426021a02b4aee646daa4543', 'timestamp': 1601382711.6291814}\n",
+      "Step Time :  0.0017354488372802734\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {4: 3, 5: 2, 2: 2}, 'inference_time': 8.511543273925781e-05}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::fb44781c391c012b73dc80fd96073972', 'timestamp': 1601382711.630996}\n",
+      "Step Time :  0.0011515617370605469\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {4: 2, 5: 2, 2: 2}, 'inference_time': 4.410743713378906e-05}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::8ab645329a5ae2c73f226ec71201bd77', 'timestamp': 1601382711.6321795}\n",
+      "Step Time :  0.0014979839324951172\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {4: 2, 2: 2, 5: 2}, 'inference_time': 7.033348083496094e-05}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::efcaeed010be64431b29fd2d0dea0e08', 'timestamp': 1601382711.6337526}\n",
+      "Step Time :  0.0016062259674072266\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {4: 1, 2: 2, 5: 2}, 'inference_time': 7.486343383789062e-05}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::43cba0ba39159980705d3044954f411c', 'timestamp': 1601382711.6354249}\n",
+      "Step Time :  0.0012476444244384766\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {2: 2, 4: 3, 5: 2}, 'inference_time': 7.581710815429688e-05}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::e24636bc730aa7beab8a40da145f31ae', 'timestamp': 1601382711.6367486}\n",
+      "Step Time :  0.002794981002807617\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {2: 2, 4: 2, 5: 4}, 'inference_time': 0.0005037784576416016}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::587d5d0fd59478a1ed900e73200a1712', 'timestamp': 1601382711.6400528}\n",
+      "Step Time :  0.004041433334350586\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {2: 2, 4: 3, 5: 4}, 'inference_time': 0.00013017654418945312}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::04711eb0903b0f53bebfdf1a1b5b7de0', 'timestamp': 1601382711.6442153}\n",
+      "Step Time :  0.003699779510498047\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {2: 2, 4: 2, 5: 4}, 'inference_time': 8.320808410644531e-05}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::890fb04176604f0c9675b99b3a6b59fe', 'timestamp': 1601382711.6479733}\n",
+      "Step Time :  0.0017015933990478516\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {2: 2, 4: 2, 5: 2}, 'inference_time': 7.367134094238281e-05}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::cb582d74e81f186e0997f7f023de2daa', 'timestamp': 1601382711.649743}\n",
+      "Step Time :  0.0018279552459716797\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {2: 3, 4: 2, 5: 2}, 'inference_time': 8.320808410644531e-05}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::76af76a126bff4aa09f49c608e8856c2', 'timestamp': 1601382711.6516507}\n",
+      "Step Time :  0.0016984939575195312\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {2: 2, 4: 2, 5: 2}, 'inference_time': 0.0001537799835205078}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::2b2bf5d5512f3c2a8a0e02d6dec6beed', 'timestamp': 1601382711.65355}\n",
+      "Step Time :  0.0034639835357666016\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {2: 2, 4: 2, 5: 2}, 'inference_time': 0.00011277198791503906}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::a8d7322314e7857fdf2f7b4c9c93f262', 'timestamp': 1601382711.6570697}\n",
+      "Step Time :  0.0024738311767578125\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {2: 1, 5: 2, 6: 2}, 'inference_time': 6.794929504394531e-05}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::c48de31b734a35790c7ecc772a68fe55', 'timestamp': 1601382711.6595974}\n",
+      "Step Time :  0.0014843940734863281\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {2: 3, 5: 2, 6: 2}, 'inference_time': 8.630752563476562e-05}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::541c6fd60c8c9be813ead89a4131c405', 'timestamp': 1601382711.66117}\n",
+      "Step Time :  0.002226114273071289\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {2: 1, 5: 4, 6: 2}, 'inference_time': 8.082389831542969e-05}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::eed977d971e568e4f82c61f80b8a7027', 'timestamp': 1601382711.6634727}\n",
+      "Step Time :  0.0014886856079101562\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {2: 2, 5: 2, 6: 2}, 'inference_time': 6.0558319091796875e-05}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::50073951bbe589ac009932adf9ee29f1', 'timestamp': 1601382711.6650097}\n",
+      "Step Time :  0.0013210773468017578\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {2: 2, 5: 2, 6: 1}, 'inference_time': 5.7697296142578125e-05}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::0a8f67aa935ac2aa6aa62b10d51503ba', 'timestamp': 1601382711.6663866}\n",
+      "Step Time :  0.0019135475158691406\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {2: 2, 5: 2, 6: 3}, 'inference_time': 8.988380432128906e-05}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::b5ecf8619faad2b73539ccd384c4fde8', 'timestamp': 1601382711.6683898}\n",
+      "Step Time :  0.0016143321990966797\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {2: 2, 5: 2, 6: 2}, 'inference_time': 0.0007810592651367188}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::d27986f21f8f305777af87fa7edb8c15', 'timestamp': 1601382711.6708634}\n",
+      "Step Time :  0.0036394596099853516\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {6: 3, 5: 2, 9: 2}, 'inference_time': 0.00018334388732910156}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::0b6bde90c9262297e501e91d73c33216', 'timestamp': 1601382711.674603}\n",
+      "Step Time :  0.0019805431365966797\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {6: 2, 5: 2, 9: 4}, 'inference_time': 7.605552673339844e-05}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::74bc20cfb022cacbc62eba7cfe401c03', 'timestamp': 1601382711.676627}\n",
+      "Step Time :  0.0013110637664794922\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {6: 2, 5: 2, 9: 2}, 'inference_time': 0.00013399124145507812}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::3ca6785b3536f4e7639478f3eed35d0b', 'timestamp': 1601382711.6781}\n",
+      "Step Time :  0.0012922286987304688\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {6: 2, 5: 2, 9: 3}, 'inference_time': 7.128715515136719e-05}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::17bf0bda811329bfb7b2ea68e69579da', 'timestamp': 1601382711.679424}\n",
+      "Step Time :  0.0015170574188232422\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {6: 2, 5: 2, 9: 1}, 'inference_time': 0.00016379356384277344}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::6198d51be36a7db712830cdbd4168b48', 'timestamp': 1601382711.6811192}\n",
+      "Step Time :  0.002389669418334961\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {6: 2, 5: 2, 9: 4}, 'inference_time': 9.72747802734375e-05}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::7a6616c3f423bc14ad5d19225b1aebf3', 'timestamp': 1601382711.6835823}\n",
+      "Step Time :  0.0014185905456542969\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {6: 2, 5: 4, 9: 4}, 'inference_time': 8.392333984375e-05}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::8a49c502a1cb18b4e95fa01eac0406e7', 'timestamp': 1601382711.6850777}\n",
+      "Step Time :  0.0012121200561523438\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {6: 2, 5: 4, 9: 4}, 'inference_time': 5.7697296142578125e-05}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::c3efe5ed32c285fa92b9b84f2de073cb', 'timestamp': 1601382711.686338}\n",
+      "Step Time :  0.002992868423461914\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {6: 2, 5: 2, 9: 4}, 'inference_time': 8.893013000488281e-05}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::cd3058c40a854ba8475fa7421048ea99', 'timestamp': 1601382711.689424}\n",
+      "Step Time :  0.0024194717407226562\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {6: 2, 5: 2, 9: 4}, 'inference_time': 0.0001678466796875}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::90f9b5d4609bba3492666b60f1f9f275', 'timestamp': 1601382711.6920257}\n",
+      "Step Time :  0.0024955272674560547\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {6: 2, 5: 4, 9: 4}, 'inference_time': 0.00039124488830566406}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::1d8928fea63ccdc95efba008caddd27d', 'timestamp': 1601382711.6948843}\n",
+      "Step Time :  0.001493692398071289\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {6: 2, 5: 4, 9: 4}, 'inference_time': 0.00010418891906738281}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::129cb34a71129c7873285b88af345a7f', 'timestamp': 1601382711.6964693}\n",
+      "Step Time :  0.0014052391052246094\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {6: 2, 5: 2, 9: 4}, 'inference_time': 7.176399230957031e-05}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::f4834327323278796d902f6d8a940c7b', 'timestamp': 1601382711.6979337}\n",
+      "Step Time :  0.0011687278747558594\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {6: 2, 5: 2, 9: 4}, 'inference_time': 6.222724914550781e-05}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::5c4d3fd98c82c93ab2ae67d8cee26227', 'timestamp': 1601382711.6991563}\n",
+      "Step Time :  0.0011489391326904297\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {6: 2, 5: 2, 9: 4}, 'inference_time': 6.031990051269531e-05}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::4713dab225a851e9436e1b3fa04fb3f3', 'timestamp': 1601382711.7003605}\n",
+      "Step Time :  0.0011105537414550781\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {6: 2, 5: 2, 9: 4}, 'inference_time': 6.0558319091796875e-05}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::cbf9944cde0a55f812ca7ff7f8751f95', 'timestamp': 1601382711.7015278}\n",
+      "Step Time :  0.0009491443634033203\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {6: 2, 5: 2, 9: 2}, 'inference_time': 4.0531158447265625e-05}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::4be4b52cf4c2370355edebadb71fac0a', 'timestamp': 1601382711.7025108}\n"
+     ]
+    },
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "Step Time :  0.00203704833984375\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {6: 2, 5: 2, 9: 2}, 'inference_time': 0.00027823448181152344}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::e81331e5a930c5d2733a16c056c4b6f9', 'timestamp': 1601382711.7048793}\n",
+      "Step Time :  0.003120899200439453\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {6: 2, 5: 4, 9: 2}, 'inference_time': 0.00012302398681640625}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::105e1608827c50a5033a3e3a424f96b8', 'timestamp': 1601382711.7080626}\n",
+      "Step Time :  0.0017342567443847656\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {6: 2, 9: 3, 5: 2}, 'inference_time': 0.0003230571746826172}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::83b5dd940cc80eea548cb217af73b8e0', 'timestamp': 1601382711.7101629}\n",
+      "Step Time :  0.0022492408752441406\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {6: 2, 9: 3, 5: 2}, 'inference_time': 0.00010609626770019531}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::7212227dfb05203dba0467bdef9b40cb', 'timestamp': 1601382711.712435}\n",
+      "Step Time :  0.0010170936584472656\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {6: 2, 9: 3, 5: 2}, 'inference_time': 5.078315734863281e-05}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::722f888d0d1daa862fcd1d245bd0768c', 'timestamp': 1601382711.7134924}\n",
+      "Step Time :  0.0008392333984375\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {6: 2, 9: 3, 5: 2}, 'inference_time': 4.291534423828125e-05}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::1914fa1d409a47c8ce328fe554144818', 'timestamp': 1601382711.7143686}\n",
+      "Step Time :  0.0008599758148193359\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {6: 2, 9: 3, 5: 2}, 'inference_time': 4.220008850097656e-05}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::e02b585e6115f9aecb77a166f918a31a', 'timestamp': 1601382711.7152681}\n",
+      "Step Time :  0.0008301734924316406\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {6: 2, 9: 3, 5: 2}, 'inference_time': 4.1484832763671875e-05}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::d0676d7bfe8e80438d92751c081d6a25', 'timestamp': 1601382711.7161365}\n",
+      "Step Time :  0.0008361339569091797\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {6: 2, 9: 3, 5: 2}, 'inference_time': 4.1961669921875e-05}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::c50f458d61bca9b907e0f30b39a37d53', 'timestamp': 1601382711.7170134}\n",
+      "Step Time :  0.0008769035339355469\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {6: 2, 9: 3, 5: 2}, 'inference_time': 4.57763671875e-05}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::546023bdf7efc517c274e7958f8ecb78', 'timestamp': 1601382711.7179341}\n",
+      "Step Time :  0.0008687973022460938\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {6: 2, 9: 3, 5: 2}, 'inference_time': 4.291534423828125e-05}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::ba028d55c82487c1c23daf85b539d62d', 'timestamp': 1601382711.7188451}\n",
+      "Step Time :  0.0008373260498046875\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {5: 2, 6: 2, 9: 3}, 'inference_time': 3.8623809814453125e-05}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::93de57819650ab17500512dcdee3b115', 'timestamp': 1601382711.7197142}\n",
+      "Step Time :  0.0020644664764404297\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {5: 2, 6: 2, 9: 2}, 'inference_time': 8.630752563476562e-05}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::1c4d9cf35a28fb5fabc1614833464f38', 'timestamp': 1601382711.721875}\n",
+      "Step Time :  0.00228118896484375\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {5: 2, 6: 2, 9: 2}, 'inference_time': 0.0001690387725830078}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::c106053fd1945d38952df594655d54f9', 'timestamp': 1601382711.7243361}\n",
+      "Step Time :  0.0014951229095458984\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {5: 3, 6: 2, 9: 2}, 'inference_time': 6.222724914550781e-05}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::75d60384f199d6edb1750bcd10438ad3', 'timestamp': 1601382711.7258642}\n",
+      "Step Time :  0.0012352466583251953\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {5: 2, 6: 3, 9: 2}, 'inference_time': 5.078315734863281e-05}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::19a52ee1290c7ac77d92f7464158a3a2', 'timestamp': 1601382711.7271435}\n",
+      "Step Time :  0.0011985301971435547\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {5: 2, 6: 2, 9: 3}, 'inference_time': 0.0001780986785888672}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::37d0e08774558888aa43bb442da65006', 'timestamp': 1601382711.7285168}\n",
+      "Step Time :  0.0012536048889160156\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {5: 2, 6: 2, 9: 2}, 'inference_time': 5.555152893066406e-05}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::cd8b0504cd386e7b513061fbbd9af6fb', 'timestamp': 1601382711.7298222}\n",
+      "Step Time :  0.0012514591217041016\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {5: 2, 6: 2, 9: 2}, 'inference_time': 5.555152893066406e-05}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::ba008272171578de1b2f70a5ecbd6b41', 'timestamp': 1601382711.7311268}\n",
+      "Step Time :  0.0012907981872558594\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {5: 2, 6: 2, 9: 2}, 'inference_time': 5.340576171875e-05}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::d8d035ad6a4bf90cc766ec11b08f5001', 'timestamp': 1601382711.7324674}\n",
+      "Step Time :  0.0012481212615966797\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {5: 2, 6: 2, 9: 2}, 'inference_time': 5.555152893066406e-05}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::81f644507309696c848d2eb239c0e48b', 'timestamp': 1601382711.7337682}\n",
+      "Step Time :  0.0012760162353515625\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {5: 2, 6: 2, 9: 2}, 'inference_time': 4.935264587402344e-05}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::ab1142aa9ff2daf8158b4823e1f3f6c0', 'timestamp': 1601382711.7350907}\n",
+      "Step Time :  0.0013077259063720703\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {5: 2, 6: 2, 9: 2}, 'inference_time': 6.365776062011719e-05}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::f0846ea34736805cb7bd895962a370f4', 'timestamp': 1601382711.7364619}\n",
+      "Step Time :  0.0025787353515625\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {5: 2, 6: 2, 9: 2}, 'inference_time': 0.00011730194091796875}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::5a855478cca69999f21b4304239c3c63', 'timestamp': 1601382711.739165}\n",
+      "Step Time :  0.0030875205993652344\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {5: 2, 6: 2, 9: 2}, 'inference_time': 9.036064147949219e-05}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::1932047a7d7b24df0734aced5a3a5781', 'timestamp': 1601382711.7423303}\n",
+      "Step Time :  0.0014069080352783203\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {5: 1, 6: 2, 9: 2}, 'inference_time': 6.67572021484375e-05}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::0394a38286033113d1eaba77683eabad', 'timestamp': 1601382711.7437923}\n",
+      "Step Time :  0.0011258125305175781\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {5: 2, 6: 1, 9: 2}, 'inference_time': 5.626678466796875e-05}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::a7dcf510d64897e48436aef157a7577b', 'timestamp': 1601382711.7449718}\n",
+      "Step Time :  0.0010280609130859375\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {5: 3, 6: 2, 9: 1}, 'inference_time': 5.245208740234375e-05}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::e57305c5bbb277527075d44fbcc34eb9', 'timestamp': 1601382711.7460475}\n",
+      "Step Time :  0.001703500747680664\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {5: 2, 6: 3, 9: 2}, 'inference_time': 6.628036499023438e-05}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::daf43f031b1523398b37cf1af0a5ad15', 'timestamp': 1601382711.7478154}\n",
+      "Step Time :  0.000982046127319336\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {5: 2, 6: 2, 9: 3}, 'inference_time': 4.124641418457031e-05}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::d7d063eda82875334e16e2a4e9b56f88', 'timestamp': 1601382711.7488306}\n",
+      "Step Time :  0.0009531974792480469\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {5: 1, 6: 2, 9: 2}, 'inference_time': 3.814697265625e-05}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::462849ec1b6d7e2718733acc779e4946', 'timestamp': 1601382711.7498188}\n",
+      "Step Time :  0.0008907318115234375\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {6: 1, 9: 2, 5: 3}, 'inference_time': 3.695487976074219e-05}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::e787857c3553fc7487f7b1a24ec05c85', 'timestamp': 1601382711.7507427}\n",
+      "Step Time :  0.0009191036224365234\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {9: 1, 5: 2, 6: 3}, 'inference_time': 3.838539123535156e-05}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::b1d5c8f48dd1d6b9797e3aa4a9414368', 'timestamp': 1601382711.751703}\n",
+      "Step Time :  0.001161813735961914\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {5: 3, 6: 2, 9: 3}, 'inference_time': 4.935264587402344e-05}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::36764fbc1bad80022e07d6d070a4cf3b', 'timestamp': 1601382711.7529116}\n",
+      "Step Time :  0.0017242431640625\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {5: 4, 6: 3, 9: 4}, 'inference_time': 9.822845458984375e-05}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::4033cdda7b15db1df7eed911770d5675', 'timestamp': 1601382711.7547426}\n",
+      "Step Time :  0.0015995502471923828\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {5: 2, 6: 3, 9: 2}, 'inference_time': 0.00012874603271484375}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::a84da82a3a9bfa7990ed4532736fbbd6', 'timestamp': 1601382711.756475}\n",
+      "Step Time :  0.0017828941345214844\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {5: 2, 6: 3, 9: 4}, 'inference_time': 0.00013065338134765625}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::56ab4cf23e8c7d53e7959d71142778bf', 'timestamp': 1601382711.7583756}\n",
+      "Step Time :  0.0014884471893310547\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {5: 2, 6: 3, 9: 3}, 'inference_time': 5.626678466796875e-05}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::3c972f53f98bba671cbf3fb93e597da5', 'timestamp': 1601382711.7598956}\n",
+      "Step Time :  0.0010089874267578125\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {5: 2, 6: 2, 9: 3}, 'inference_time': 5.269050598144531e-05}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::b734928ed9ed281a9672ab0ef4c5e939', 'timestamp': 1601382711.7609549}\n",
+      "Step Time :  0.00109100341796875\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {5: 2, 6: 2, 9: 3}, 'inference_time': 5.3882598876953125e-05}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::1e80fc419a1509d57c10236d99ba2d36', 'timestamp': 1601382711.7620974}\n",
+      "Step Time :  0.0009961128234863281\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {6: 2, 9: 2}, 'inference_time': 4.029273986816406e-05}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::fc291b4273bd59e58aed523b3b973331', 'timestamp': 1601382711.763125}\n",
+      "Step Time :  0.0007307529449462891\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {6: 2, 9: 2}, 'inference_time': 3.6716461181640625e-05}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::56a53182f6a692191f054987f22ccbf7', 'timestamp': 1601382711.7638884}\n",
+      "Step Time :  0.0007436275482177734\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {6: 2, 9: 2}, 'inference_time': 3.6716461181640625e-05}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::42c1899fc8f66af0a518899e5f4b8095', 'timestamp': 1601382711.7646654}\n",
+      "Step Time :  0.0007314682006835938\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {9: 2}, 'inference_time': 3.910064697265625e-05}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::d4ffadcd395448a903402e38bc0a84e7', 'timestamp': 1601382711.765435}\n",
+      "Step Time :  0.0006229877471923828\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {9: 2}, 'inference_time': 3.600120544433594e-05}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::ea261726296cb7909bdebb41e425c339', 'timestamp': 1601382711.7660916}\n",
+      "Step Time :  0.0006310939788818359\n",
+      "Current Episode :  1\n",
+      "Episode Done\n",
+      "Reward :  10.0\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_CREATE', 'payload': {}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::978da518f555337ce6430a1a07b61df8', 'timestamp': 1601382711.7667947}\n"
+     ]
+    },
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "Response :  b'\\x80\\x03}q\\x00(X\\x04\\x00\\x00\\x00typeq\\x01X\\x1f\\x00\\x00\\x00FLATLAND_RL.ENV_CREATE_RESPONSEq\\x02X\\x07\\x00\\x00\\x00payloadq\\x03}q\\x04(X\\x0b\\x00\\x00\\x00observationq\\x05\\x88X\\r\\x00\\x00\\x00env_file_pathq\\x06X\\x12\\x00\\x00\\x00Test_0/Level_1.pklq\\x07X\\x04\\x00\\x00\\x00infoq\\x08}q\\t(X\\x0f\\x00\\x00\\x00action_requiredq\\n}q\\x0b(K\\x00\\x88K\\x01\\x88K\\x02\\x88K\\x03\\x88K\\x04\\x88K\\x05\\x88K\\x06\\x88K\\x07\\x88K\\x08\\x88K\\t\\x88uX\\x0b\\x00\\x00\\x00malfunctionq\\x0c}q\\r(K\\x00K\\x00K\\x01K\\x00K\\x02K\\x00K\\x03K\\x00K\\x04K\\x00K\\x05K\\x00K\\x06K\\x00K\\x07K\\x00K\\x08K\\x00K\\tK\\x00uX\\x05\\x00\\x00\\x00speedq\\x0e}q\\x0f(K\\x00G?\\xf0\\x00\\x00\\x00\\x00\\x00\\x00K\\x01G?\\xf0\\x00\\x00\\x00\\x00\\x00\\x00K\\x02G?\\xf0\\x00\\x00\\x00\\x00\\x00\\x00K\\x03G?\\xf0\\x00\\x00\\x00\\x00\\x00\\x00K\\x04G?\\xf0\\x00\\x00\\x00\\x00\\x00\\x00K\\x05G?\\xf0\\x00\\x00\\x00\\x00\\x00\\x00K\\x06G?\\xf0\\x00\\x00\\x00\\x00\\x00\\x00K\\x07G?\\xf0\\x00\\x00\\x00\\x00\\x00\\x00K\\x08G?\\xf0\\x00\\x00\\x00\\x00\\x00\\x00K\\tG?\\xf0\\x00\\x00\\x00\\x00\\x00\\x00uX\\x06\\x00\\x00\\x00statusq\\x10}q\\x11(K\\x00cflatland.envs.agent_utils\\nRailAgentStatus\\nq\\x12K\\x00\\x85q\\x13Rq\\x14K\\x01h\\x14K\\x02h\\x14K\\x03h\\x14K\\x04h\\x14K\\x05h\\x14K\\x06h\\x14K\\x07h\\x14K\\x08h\\x14K\\th\\x14uuX\\x0b\\x00\\x00\\x00random_seedq\\x15M\\xe9\\x03uu.'\n",
+      "Received Env :  Test_0/Level_1.pkl\n",
+      "Current env path :  ../env_data/tests/service_test/Test_0/Level_1.pkl\n",
+      "DEPRECATED - use FileMalfunctionGen instead of malfunction_from_file\n",
+      "DEPRECATED - RailEnv arg: malfunction_and_process_data - use malfunction_generator\n",
+      "Episode : 1\n",
+      "False\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {1: 2, 3: 2, 8: 2}, 'inference_time': 7.557868957519531e-05}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::fcbc1a592db4b9ab83ee4b82489be98d', 'timestamp': 1601382711.8173141}\n",
+      "Step Time :  0.002300262451171875\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {1: 2, 3: 2, 8: 2}, 'inference_time': 9.107589721679688e-05}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::01660f051b3f375a8a00683810f55df6', 'timestamp': 1601382711.8197002}\n",
+      "Step Time :  0.0027971267700195312\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {1: 1, 3: 2, 8: 4}, 'inference_time': 0.00011920928955078125}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::8f8a0507d4ce4aaff58d3754c2470535', 'timestamp': 1601382711.8226404}\n",
+      "Step Time :  0.0026810169219970703\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {1: 4, 3: 4, 8: 1}, 'inference_time': 6.461143493652344e-05}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::dcbe785e0485cdea9eea2635cf50ff2e', 'timestamp': 1601382711.8253453}\n",
+      "Step Time :  0.0014221668243408203\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {1: 3, 3: 1, 8: 3}, 'inference_time': 7.748603820800781e-05}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::84fe3e3f27788eafc3e651a0b2dc6381', 'timestamp': 1601382711.826843}\n",
+      "Step Time :  0.0023009777069091797\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {1: 2, 3: 3, 8: 4}, 'inference_time': 6.103515625e-05}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::c6c940aa9ecedb1148ee20bb3fdb4137', 'timestamp': 1601382711.8291967}\n",
+      "Step Time :  0.0014612674713134766\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {1: 2, 3: 2, 8: 1}, 'inference_time': 5.340576171875e-05}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::b31263b6c34f9fae6a601b49dcb269cf', 'timestamp': 1601382711.8307066}\n",
+      "Step Time :  0.0015177726745605469\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {1: 2, 3: 4, 8: 4}, 'inference_time': 8.96453857421875e-05}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::989cb1bec7ffe8eb46654f97c9c5c3d8', 'timestamp': 1601382711.8323255}\n",
+      "Step Time :  0.0025949478149414062\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {1: 3, 3: 2, 8: 4}, 'inference_time': 0.00010347366333007812}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::5953731bab617e774304306fe227cb76', 'timestamp': 1601382711.835011}\n",
+      "Step Time :  0.001547098159790039\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {1: 2, 3: 2, 8: 3}, 'inference_time': 4.1484832763671875e-05}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::7a5baaa32fae1f442e5d5097e8e7bd61', 'timestamp': 1601382711.8365853}\n",
+      "Step Time :  0.003201723098754883\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {1: 2, 3: 3, 8: 4}, 'inference_time': 9.489059448242188e-05}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::9233d209716f4ae78a5dbe124de67e27', 'timestamp': 1601382711.8398995}\n",
+      "Step Time :  0.0028846263885498047\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {1: 2, 3: 2, 8: 3}, 'inference_time': 0.0001881122589111328}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::86a6797d4a4dc741a0d88243b124638c', 'timestamp': 1601382711.843002}\n",
+      "Step Time :  0.0022275447845458984\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {3: 2, 1: 2, 8: 4}, 'inference_time': 6.0558319091796875e-05}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::5d70186b357a8e3b6e47f4b7d75e8c25', 'timestamp': 1601382711.8452268}\n",
+      "Step Time :  0.0019850730895996094\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {3: 2, 1: 4, 8: 4}, 'inference_time': 5.316734313964844e-05}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::2872c8d42231e56eba7350e8ee58fb0f', 'timestamp': 1601382711.8472583}\n",
+      "Step Time :  0.0020117759704589844\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {1: 4, 3: 4, 8: 4}, 'inference_time': 0.0001647472381591797}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::d1575976e20855eeb73a94ec8b35704c', 'timestamp': 1601382711.849443}\n",
+      "Step Time :  0.001959562301635742\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {1: 4, 3: 2, 8: 1}, 'inference_time': 7.462501525878906e-05}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::1a88f3d68232723258cf91c3f90341a2', 'timestamp': 1601382711.8514662}\n",
+      "Step Time :  0.0019371509552001953\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {1: 4, 3: 2, 8: 2}, 'inference_time': 5.7220458984375e-05}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::9996e44a9b8f5e18f189aa8a20f0c826', 'timestamp': 1601382711.8534539}\n",
+      "Step Time :  0.003130674362182617\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {1: 4, 3: 2, 8: 4}, 'inference_time': 0.00011730194091796875}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::1326f67ea516bea91837053b900c947b', 'timestamp': 1601382711.8567152}\n",
+      "Step Time :  0.0022246837615966797\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {1: 4, 3: 2, 8: 4}, 'inference_time': 8.940696716308594e-05}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::982362496c3b2ab2acebdf6d902cc350', 'timestamp': 1601382711.8590126}\n",
+      "Step Time :  0.0017023086547851562\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {1: 4, 3: 2, 8: 4}, 'inference_time': 5.14984130859375e-05}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::9009f2f0e1c32261e7998223e4ac09a8', 'timestamp': 1601382711.8607552}\n",
+      "Step Time :  0.0013318061828613281\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {1: 4, 3: 2, 8: 4}, 'inference_time': 3.838539123535156e-05}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::c9686403febfc87d225376f71ef3f92b', 'timestamp': 1601382711.8621175}\n",
+      "Step Time :  0.0012025833129882812\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {1: 4, 3: 4, 8: 2}, 'inference_time': 3.695487976074219e-05}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::6f5586b03a0c885b3478e187a6a2983d', 'timestamp': 1601382711.8633552}\n",
+      "Step Time :  0.0016057491302490234\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {1: 2, 3: 2, 8: 4}, 'inference_time': 0.0001442432403564453}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::ba6ffa8ba5914c637931ee3bcb163a4e', 'timestamp': 1601382711.865104}\n",
+      "Step Time :  0.0021791458129882812\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {1: 3, 3: 2, 8: 4}, 'inference_time': 7.843971252441406e-05}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::a5f14ab3052d57a89397c9c5eae02684', 'timestamp': 1601382711.8673627}\n",
+      "Step Time :  0.002056121826171875\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {1: 2, 3: 4, 8: 3}, 'inference_time': 0.00014543533325195312}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::2a6e51251b8fb6633b4d7f3230b20bb4', 'timestamp': 1601382711.8695562}\n",
+      "Step Time :  0.0028603076934814453\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {8: 2, 1: 2, 3: 3}, 'inference_time': 8.893013000488281e-05}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::e0249c99c942d27b70b163e29765ca2f', 'timestamp': 1601382711.8725052}\n",
+      "Step Time :  0.003069639205932617\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {3: 2, 1: 1, 8: 2}, 'inference_time': 8.606910705566406e-05}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::563221b7b47c7c69b089b53b48e2f5e1', 'timestamp': 1601382711.8756533}\n",
+      "Step Time :  0.0020513534545898438\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {1: 2, 3: 2, 8: 1}, 'inference_time': 5.626678466796875e-05}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::6e5a6dca95c62aad936131d6c502b604', 'timestamp': 1601382711.87775}\n",
+      "Step Time :  0.001964569091796875\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {1: 2, 3: 1, 8: 2}, 'inference_time': 6.103515625e-05}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::4bfdb439983588752e6ab83f5451cb57', 'timestamp': 1601382711.879783}\n",
+      "Step Time :  0.0022857189178466797\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {8: 2, 1: 2, 3: 2}, 'inference_time': 0.00010538101196289062}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::00e70777dc7b708d6ba0e89759c5e7ab', 'timestamp': 1601382711.8821714}\n",
+      "Step Time :  0.0023064613342285156\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {8: 2, 1: 2, 3: 3}, 'inference_time': 9.560585021972656e-05}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::5bb765a39fffebfef7020667ba9ad348', 'timestamp': 1601382711.8845637}\n",
+      "Step Time :  0.0016236305236816406\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {8: 2, 0: 2, 3: 1}, 'inference_time': 5.316734313964844e-05}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::5789b5bbb671863d09aba9ad8ac2c5ba', 'timestamp': 1601382711.886228}\n",
+      "Step Time :  0.0025377273559570312\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {8: 1, 0: 2, 3: 2}, 'inference_time': 9.512901306152344e-05}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::768c7dcc60da0e26eccbe532c30e9bf0', 'timestamp': 1601382711.8888648}\n",
+      "Step Time :  0.002776622772216797\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {8: 2, 0: 3, 3: 3}, 'inference_time': 6.341934204101562e-05}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::fb2be073e569a6d9fd97f4c404924616', 'timestamp': 1601382711.8916945}\n",
+      "Step Time :  0.001634359359741211\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {0: 1, 3: 1, 8: 2}, 'inference_time': 6.890296936035156e-05}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::fd5cac08c76dc7c55d8d4270270bd83d', 'timestamp': 1601382711.8933942}\n",
+      "Step Time :  0.0027036666870117188\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {0: 2, 2: 2, 8: 2}, 'inference_time': 0.00010514259338378906}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::eb89c12b1a95046c96ca003a83adff38', 'timestamp': 1601382711.8962047}\n",
+      "Step Time :  0.0017070770263671875\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {0: 2, 2: 2, 8: 2}, 'inference_time': 6.985664367675781e-05}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::4827df66d749df6cd6bfe49d8588aa88', 'timestamp': 1601382711.8979704}\n",
+      "Step Time :  0.0015211105346679688\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {0: 2, 2: 4, 7: 2}, 'inference_time': 4.76837158203125e-05}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::c2cd268a6ed0e12a58f25998f8c3554b', 'timestamp': 1601382711.8995306}\n",
+      "Step Time :  0.0011882781982421875\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {0: 3, 2: 4, 7: 2}, 'inference_time': 4.363059997558594e-05}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::0b09b4697f8238b2e9cccba01249c2c2', 'timestamp': 1601382711.9007583}\n",
+      "Step Time :  0.0011868476867675781\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {0: 2, 2: 3, 7: 1}, 'inference_time': 6.0558319091796875e-05}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::896b99e503c5c0cab972616cd329e42b', 'timestamp': 1601382711.9020076}\n",
+      "Step Time :  0.001447439193725586\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {0: 2, 2: 1, 7: 4}, 'inference_time': 6.0558319091796875e-05}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::e8aa6ae0f0b5f0e1fd6c9e37b66cc9e8', 'timestamp': 1601382711.9035115}\n"
+     ]
+    },
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "Step Time :  0.002927541732788086\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {0: 2, 2: 4, 7: 3}, 'inference_time': 0.0003199577331542969}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::68881c66dc29d6e7cb6ce811c2e3ebb9', 'timestamp': 1601382711.9067602}\n",
+      "Step Time :  0.002467632293701172\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {0: 2, 2: 2, 7: 4}, 'inference_time': 0.00027680397033691406}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::ab16c703c7aa096b02156ac87913d25b', 'timestamp': 1601382711.909553}\n",
+      "Step Time :  0.003297090530395508\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {0: 3, 2: 2, 7: 2}, 'inference_time': 7.557868957519531e-05}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::856a64b23f2622ac246c11ada4c55236', 'timestamp': 1601382711.9128475}\n",
+      "Step Time :  0.0013720989227294922\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {0: 2, 2: 2, 7: 2}, 'inference_time': 5.817413330078125e-05}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::a48714c94d995d3ae923148c20d18114', 'timestamp': 1601382711.914272}\n",
+      "Step Time :  0.0013320446014404297\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {0: 2, 2: 3, 7: 2}, 'inference_time': 5.7697296142578125e-05}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::8c6378287b6feffee1f567ea90c48d32', 'timestamp': 1601382711.9156582}\n",
+      "Step Time :  0.0012447834014892578\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {0: 2, 2: 2, 7: 1}, 'inference_time': 4.315376281738281e-05}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::fb0a0c80b8fec58ca6a82fd6255f5350', 'timestamp': 1601382711.9169397}\n",
+      "Step Time :  0.0011258125305175781\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {0: 2, 2: 2, 7: 3}, 'inference_time': 3.8623809814453125e-05}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::b1ca9b110cbc4693f3f4096e4ff01e2a', 'timestamp': 1601382711.9180994}\n",
+      "Step Time :  0.0011248588562011719\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {0: 2, 2: 2, 7: 2}, 'inference_time': 3.743171691894531e-05}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::38b72e74200571d3229603eba65a7354', 'timestamp': 1601382711.919259}\n",
+      "Step Time :  0.0011756420135498047\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {0: 2, 2: 2, 7: 2}, 'inference_time': 0.000125885009765625}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::afd477a48e4ca18aea76172ac218ec93', 'timestamp': 1601382711.9206107}\n",
+      "Step Time :  0.003629446029663086\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {0: 2, 2: 3, 7: 2}, 'inference_time': 0.00020122528076171875}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::6d48880f7883e8a0f507e5e991f22564', 'timestamp': 1601382711.9244199}\n",
+      "Step Time :  0.0030188560485839844\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {0: 2, 2: 2, 7: 4}, 'inference_time': 0.0001933574676513672}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::c1afc72b5f449d2107da8404a5643af1', 'timestamp': 1601382711.9276314}\n",
+      "Step Time :  0.002634286880493164\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {0: 2, 2: 2, 7: 1}, 'inference_time': 7.867813110351562e-05}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::95e07610b2b935ba3826731b1ad35a5b', 'timestamp': 1601382711.9302955}\n",
+      "Step Time :  0.0017817020416259766\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {0: 3, 2: 2, 7: 3}, 'inference_time': 6.461143493652344e-05}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::72148039994ff567d3becaa83e9799b9', 'timestamp': 1601382711.9321358}\n",
+      "Step Time :  0.001817941665649414\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {0: 2, 2: 2, 7: 2}, 'inference_time': 6.961822509765625e-05}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::a7512c4dbb85d4b514d80b1fb3ce1d64', 'timestamp': 1601382711.934022}\n",
+      "Step Time :  0.002702951431274414\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {0: 2, 2: 2, 7: 2}, 'inference_time': 0.00010752677917480469}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::dffa9e70e4cfb671bc40d4439bcef50c', 'timestamp': 1601382711.9368315}\n",
+      "Step Time :  0.00431513786315918\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {0: 1, 2: 4, 7: 2}, 'inference_time': 0.00014662742614746094}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::21cee9c38f1fc3581ef4c33228a2a690', 'timestamp': 1601382711.9412847}\n",
+      "Step Time :  0.002975940704345703\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {0: 3, 2: 2, 7: 4}, 'inference_time': 9.059906005859375e-05}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::5f1ab9d45f3966769b57d3abcfb93a3f', 'timestamp': 1601382711.9443343}\n",
+      "Step Time :  0.001840829849243164\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {0: 1, 2: 2, 7: 3}, 'inference_time': 0.0002262592315673828}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::ae44ba66bb5c42c319df0fe3c1b90302', 'timestamp': 1601382711.9463975}\n",
+      "Step Time :  0.002270221710205078\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {0: 2, 2: 4, 7: 1}, 'inference_time': 8.58306884765625e-05}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::c6dc4987753bb3844eb6b7531d1fb23e', 'timestamp': 1601382711.9487443}\n",
+      "Step Time :  0.0017006397247314453\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {0: 2, 2: 2, 7: 2}, 'inference_time': 5.412101745605469e-05}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::a7ac25cb5ee5896552696d0df18978d2', 'timestamp': 1601382711.9504886}\n",
+      "Step Time :  0.001813650131225586\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {7: 2, 0: 2, 2: 4}, 'inference_time': 6.985664367675781e-05}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::3f6926869e945616e1eda44408c25987', 'timestamp': 1601382711.9523723}\n",
+      "Step Time :  0.0028374195098876953\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {7: 3, 0: 4, 2: 2}, 'inference_time': 0.0002753734588623047}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::013760364fca9935a82ae363cd3d95b5', 'timestamp': 1601382711.9555142}\n",
+      "Step Time :  0.0028133392333984375\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {7: 2, 0: 2, 2: 2}, 'inference_time': 0.0005030632019042969}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::f8f3996502309737cf69374ce9817aa6', 'timestamp': 1601382711.9588141}\n",
+      "Step Time :  0.002103090286254883\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {7: 2, 2: 2, 4: 2}, 'inference_time': 7.200241088867188e-05}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::aaa5d34edbab66dca437eef104500fd1', 'timestamp': 1601382711.960935}\n",
+      "Step Time :  0.0015327930450439453\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {7: 2, 2: 2, 4: 2}, 'inference_time': 6.985664367675781e-05}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::bbd139102fb898bf690a1a0255e13ba4', 'timestamp': 1601382711.962534}\n",
+      "Step Time :  0.0015981197357177734\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {2: 2, 4: 2, 7: 2}, 'inference_time': 6.961822509765625e-05}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::37d65f3e5090730f5f06cb4839670d33', 'timestamp': 1601382711.9641957}\n",
+      "Step Time :  0.0017805099487304688\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {2: 2, 4: 4, 7: 2}, 'inference_time': 9.894371032714844e-05}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::8bab15f06cd0bdb5de4482cf958574c5', 'timestamp': 1601382711.966077}\n",
+      "Step Time :  0.003396272659301758\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {2: 2, 4: 2, 7: 3}, 'inference_time': 0.00016188621520996094}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::9875425c7753707f024e86325aef5405', 'timestamp': 1601382711.9696422}\n",
+      "Step Time :  0.002904176712036133\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {7: 2, 2: 2, 4: 1}, 'inference_time': 0.0006308555603027344}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::bd3891baa651cbb65367104d5b31a26c', 'timestamp': 1601382711.9731617}\n",
+      "Step Time :  0.002190113067626953\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {2: 2, 4: 3, 7: 2}, 'inference_time': 6.437301635742188e-05}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::beb8e884e5167c0f83d6b42c667c36b9', 'timestamp': 1601382711.9753914}\n",
+      "Step Time :  0.0012497901916503906\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {2: 2, 4: 2, 7: 4}, 'inference_time': 4.696846008300781e-05}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::6fbeb0a2c67bdc79906f05b7fce57fc0', 'timestamp': 1601382711.9766822}\n",
+      "Step Time :  0.0010418891906738281\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {4: 3, 2: 2, 7: 4}, 'inference_time': 4.553794860839844e-05}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::e4f8624d81693fb3c9d2457468f6de3d', 'timestamp': 1601382711.9777658}\n",
+      "Step Time :  0.0010700225830078125\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {4: 2, 2: 2, 7: 1}, 'inference_time': 4.458427429199219e-05}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::6aee80b0ce19d0fe4c5808f1410f1c69', 'timestamp': 1601382711.9788744}\n",
+      "Step Time :  0.001016855239868164\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {4: 2, 2: 2, 7: 2}, 'inference_time': 3.743171691894531e-05}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::113b0fd2959caf4bd8c3a6718ccb5379', 'timestamp': 1601382711.979926}\n",
+      "Step Time :  0.0011377334594726562\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {4: 2, 2: 2, 7: 3}, 'inference_time': 7.677078247070312e-05}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::86bd1212963b076771c3ec85742ff3de', 'timestamp': 1601382711.9811485}\n",
+      "Step Time :  0.0036864280700683594\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {4: 2, 2: 2, 7: 1}, 'inference_time': 0.0001049041748046875}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::c54489e16abfcfd1ab29395f323523af', 'timestamp': 1601382711.98494}\n",
+      "Step Time :  0.004118919372558594\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {4: 3, 2: 2, 7: 1}, 'inference_time': 0.00020813941955566406}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::cc1badccb25afcb2044ca0df5ab4fda9', 'timestamp': 1601382711.989283}\n",
+      "Step Time :  0.0028727054595947266\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {4: 2, 2: 4, 7: 3}, 'inference_time': 0.00023102760314941406}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::a942d07810a8aee3c284d28a81c74f41', 'timestamp': 1601382711.9923682}\n",
+      "Step Time :  0.002541780471801758\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {4: 2, 2: 2, 7: 2}, 'inference_time': 8.463859558105469e-05}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::241ddbd7dbbe16c8708ac917785f76c5', 'timestamp': 1601382711.994972}\n",
+      "Step Time :  0.0020771026611328125\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {4: 2, 2: 2, 5: 2}, 'inference_time': 0.00021696090698242188}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::2af372ca5ebba026d8250516066270ef', 'timestamp': 1601382711.9972787}\n",
+      "Step Time :  0.002491474151611328\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {4: 2, 2: 2, 5: 4}, 'inference_time': 0.00041174888610839844}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::e6c7748e0bcc4ab965b236baec978514', 'timestamp': 1601382712.0001478}\n",
+      "Step Time :  0.002409219741821289\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {4: 2, 2: 2, 5: 2}, 'inference_time': 9.036064147949219e-05}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::c2a41fc1e0faea695a0e2cc7018144f3', 'timestamp': 1601382712.002632}\n",
+      "Step Time :  0.0030698776245117188\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {4: 2, 2: 2, 5: 2}, 'inference_time': 0.00021886825561523438}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::666d929d0b2484c3277fb1571bd7b8ec', 'timestamp': 1601382712.005901}\n",
+      "Step Time :  0.00202178955078125\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {4: 2, 2: 2, 5: 4}, 'inference_time': 7.82012939453125e-05}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::e9ea59786856881efd8b44b1893dbd9d', 'timestamp': 1601382712.007992}\n",
+      "Step Time :  0.0020105838775634766\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {4: 2, 2: 2, 5: 2}, 'inference_time': 0.00023484230041503906}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::15ce73883e09406b04df287bea04a1ea', 'timestamp': 1601382712.0102582}\n",
+      "Step Time :  0.002325773239135742\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {4: 2, 2: 2, 5: 1}, 'inference_time': 8.940696716308594e-05}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::8de7b35de842fef170cc7e5e9e708cd7', 'timestamp': 1601382712.0126355}\n"
+     ]
+    },
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "Step Time :  0.0021550655364990234\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {4: 2, 2: 2, 5: 3}, 'inference_time': 0.00014090538024902344}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::4993341b2fbefeaa6e341437311ae933', 'timestamp': 1601382712.014935}\n",
+      "Step Time :  0.0016644001007080078\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {4: 1, 2: 2, 5: 2}, 'inference_time': 9.322166442871094e-05}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::823506896e2531103ef3f2314a17a47b', 'timestamp': 1601382712.0166795}\n",
+      "Step Time :  0.0017285346984863281\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {4: 2, 5: 3, 2: 2}, 'inference_time': 9.5367431640625e-05}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::c08e3917426021a02b4aee646daa4543', 'timestamp': 1601382712.0184975}\n",
+      "Step Time :  0.0038983821868896484\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {4: 3, 5: 2, 2: 2}, 'inference_time': 0.0003142356872558594}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::fb44781c391c012b73dc80fd96073972', 'timestamp': 1601382712.0227594}\n",
+      "Step Time :  0.0047473907470703125\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {4: 2, 5: 2, 2: 2}, 'inference_time': 9.512901306152344e-05}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::8ab645329a5ae2c73f226ec71201bd77', 'timestamp': 1601382712.027529}\n",
+      "Step Time :  0.001931905746459961\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {4: 2, 2: 2, 5: 2}, 'inference_time': 9.846687316894531e-05}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::efcaeed010be64431b29fd2d0dea0e08', 'timestamp': 1601382712.029551}\n",
+      "Step Time :  0.002008199691772461\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {4: 1, 2: 2, 5: 2}, 'inference_time': 0.0002040863037109375}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::43cba0ba39159980705d3044954f411c', 'timestamp': 1601382712.0317554}\n",
+      "Step Time :  0.0034494400024414062\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {2: 2, 4: 3, 5: 2}, 'inference_time': 0.00010943412780761719}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::e24636bc730aa7beab8a40da145f31ae', 'timestamp': 1601382712.0353134}\n",
+      "Step Time :  0.0019161701202392578\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {2: 2, 4: 2, 5: 4}, 'inference_time': 0.0010311603546142578}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::587d5d0fd59478a1ed900e73200a1712', 'timestamp': 1601382712.0383022}\n",
+      "Step Time :  0.003979206085205078\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {2: 2, 4: 3, 5: 4}, 'inference_time': 0.00020194053649902344}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::04711eb0903b0f53bebfdf1a1b5b7de0', 'timestamp': 1601382712.0424573}\n",
+      "Step Time :  0.0027599334716796875\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {2: 2, 4: 2, 5: 4}, 'inference_time': 7.200241088867188e-05}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::890fb04176604f0c9675b99b3a6b59fe', 'timestamp': 1601382712.0452256}\n",
+      "Step Time :  0.0019392967224121094\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {2: 2, 4: 2, 5: 2}, 'inference_time': 0.00015616416931152344}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::cb582d74e81f186e0997f7f023de2daa', 'timestamp': 1601382712.0473397}\n",
+      "Step Time :  0.0017004013061523438\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {2: 3, 4: 2, 5: 2}, 'inference_time': 8.344650268554688e-05}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::76af76a126bff4aa09f49c608e8856c2', 'timestamp': 1601382712.0490983}\n",
+      "Step Time :  0.0013318061828613281\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {2: 2, 4: 2, 5: 2}, 'inference_time': 6.890296936035156e-05}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::2b2bf5d5512f3c2a8a0e02d6dec6beed', 'timestamp': 1601382712.05049}\n",
+      "Step Time :  0.0011794567108154297\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {2: 2, 4: 2, 5: 2}, 'inference_time': 5.841255187988281e-05}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::a8d7322314e7857fdf2f7b4c9c93f262', 'timestamp': 1601382712.0517206}\n",
+      "Step Time :  0.0011942386627197266\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {2: 1, 5: 2, 6: 2}, 'inference_time': 0.00016808509826660156}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::c48de31b734a35790c7ecc772a68fe55', 'timestamp': 1601382712.0530806}\n",
+      "Step Time :  0.0028777122497558594\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {2: 3, 5: 2, 6: 2}, 'inference_time': 0.0003566741943359375}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::541c6fd60c8c9be813ead89a4131c405', 'timestamp': 1601382712.0563898}\n",
+      "Step Time :  0.0037343502044677734\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {2: 1, 5: 4, 6: 2}, 'inference_time': 0.0001010894775390625}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::eed977d971e568e4f82c61f80b8a7027', 'timestamp': 1601382712.0601277}\n",
+      "Step Time :  0.0022859573364257812\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {2: 2, 5: 2, 6: 2}, 'inference_time': 0.00010848045349121094}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::50073951bbe589ac009932adf9ee29f1', 'timestamp': 1601382712.062515}\n",
+      "Step Time :  0.0015985965728759766\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {2: 2, 5: 2, 6: 1}, 'inference_time': 7.295608520507812e-05}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::0a8f67aa935ac2aa6aa62b10d51503ba', 'timestamp': 1601382712.0641787}\n",
+      "Step Time :  0.001313924789428711\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {2: 2, 5: 2, 6: 3}, 'inference_time': 7.295608520507812e-05}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::b5ecf8619faad2b73539ccd384c4fde8', 'timestamp': 1601382712.065558}\n",
+      "Step Time :  0.0021626949310302734\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {2: 2, 5: 2, 6: 2}, 'inference_time': 6.508827209472656e-05}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::d27986f21f8f305777af87fa7edb8c15', 'timestamp': 1601382712.0677798}\n",
+      "Step Time :  0.0010628700256347656\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {6: 3, 5: 2, 9: 2}, 'inference_time': 0.00011801719665527344}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::0b6bde90c9262297e501e91d73c33216', 'timestamp': 1601382712.0689738}\n",
+      "Step Time :  0.0015857219696044922\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {6: 2, 5: 2, 9: 4}, 'inference_time': 5.888938903808594e-05}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::74bc20cfb022cacbc62eba7cfe401c03', 'timestamp': 1601382712.0705922}\n",
+      "Step Time :  0.0020296573638916016\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {6: 2, 5: 2, 9: 2}, 'inference_time': 9.512901306152344e-05}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::3ca6785b3536f4e7639478f3eed35d0b', 'timestamp': 1601382712.0727246}\n",
+      "Step Time :  0.0018966197967529297\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {6: 2, 5: 2, 9: 3}, 'inference_time': 0.00018548965454101562}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::17bf0bda811329bfb7b2ea68e69579da', 'timestamp': 1601382712.074825}\n",
+      "Step Time :  0.003100156784057617\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {6: 2, 5: 2, 9: 1}, 'inference_time': 0.00015401840209960938}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::6198d51be36a7db712830cdbd4168b48', 'timestamp': 1601382712.0780296}\n",
+      "Step Time :  0.0010540485382080078\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {6: 2, 5: 2, 9: 4}, 'inference_time': 4.673004150390625e-05}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::7a6616c3f423bc14ad5d19225b1aebf3', 'timestamp': 1601382712.0791202}\n",
+      "Step Time :  0.0009758472442626953\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {6: 2, 5: 4, 9: 4}, 'inference_time': 5.698204040527344e-05}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::8a49c502a1cb18b4e95fa01eac0406e7', 'timestamp': 1601382712.0801544}\n",
+      "Step Time :  0.0010745525360107422\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {6: 2, 5: 4, 9: 4}, 'inference_time': 4.7206878662109375e-05}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::c3efe5ed32c285fa92b9b84f2de073cb', 'timestamp': 1601382712.0812688}\n",
+      "Step Time :  0.0009005069732666016\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {6: 2, 5: 2, 9: 4}, 'inference_time': 4.124641418457031e-05}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::cd3058c40a854ba8475fa7421048ea99', 'timestamp': 1601382712.0822058}\n",
+      "Step Time :  0.0008771419525146484\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {6: 2, 5: 2, 9: 4}, 'inference_time': 3.743171691894531e-05}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::90f9b5d4609bba3492666b60f1f9f275', 'timestamp': 1601382712.0831158}\n",
+      "Step Time :  0.0008311271667480469\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {6: 2, 5: 4, 9: 4}, 'inference_time': 3.62396240234375e-05}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::1d8928fea63ccdc95efba008caddd27d', 'timestamp': 1601382712.0839803}\n",
+      "Step Time :  0.0008161067962646484\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {6: 2, 5: 4, 9: 4}, 'inference_time': 3.647804260253906e-05}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::129cb34a71129c7873285b88af345a7f', 'timestamp': 1601382712.0848308}\n",
+      "Step Time :  0.0007996559143066406\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {6: 2, 5: 2, 9: 4}, 'inference_time': 3.62396240234375e-05}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::f4834327323278796d902f6d8a940c7b', 'timestamp': 1601382712.085665}\n",
+      "Step Time :  0.0008225440979003906\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {6: 2, 5: 2, 9: 4}, 'inference_time': 3.743171691894531e-05}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::5c4d3fd98c82c93ab2ae67d8cee26227', 'timestamp': 1601382712.0865228}\n",
+      "Step Time :  0.0009310245513916016\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {6: 2, 5: 2, 9: 4}, 'inference_time': 0.0009505748748779297}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::4713dab225a851e9436e1b3fa04fb3f3', 'timestamp': 1601382712.0885313}\n",
+      "Step Time :  0.005520820617675781\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {6: 2, 5: 2, 9: 4}, 'inference_time': 0.0001876354217529297}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::cbf9944cde0a55f812ca7ff7f8751f95', 'timestamp': 1601382712.0941503}\n",
+      "Step Time :  0.002594470977783203\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {6: 2, 5: 2, 9: 2}, 'inference_time': 0.00014638900756835938}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::4be4b52cf4c2370355edebadb71fac0a', 'timestamp': 1601382712.0968509}\n",
+      "Step Time :  0.0014607906341552734\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {6: 2, 5: 2, 9: 2}, 'inference_time': 7.963180541992188e-05}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::e81331e5a930c5d2733a16c056c4b6f9', 'timestamp': 1601382712.0983703}\n",
+      "Step Time :  0.0012514591217041016\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {6: 2, 5: 4, 9: 2}, 'inference_time': 6.604194641113281e-05}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::105e1608827c50a5033a3e3a424f96b8', 'timestamp': 1601382712.0996819}\n",
+      "Step Time :  0.0012013912200927734\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {6: 2, 9: 3, 5: 2}, 'inference_time': 5.745887756347656e-05}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::83b5dd940cc80eea548cb217af73b8e0', 'timestamp': 1601382712.100936}\n",
+      "Step Time :  0.0017595291137695312\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {6: 2, 9: 3, 5: 2}, 'inference_time': 8.869171142578125e-05}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::7212227dfb05203dba0467bdef9b40cb', 'timestamp': 1601382712.1027868}\n",
+      "Step Time :  0.0021448135375976562\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {6: 2, 9: 3, 5: 2}, 'inference_time': 0.00029659271240234375}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::722f888d0d1daa862fcd1d245bd0768c', 'timestamp': 1601382712.105291}\n"
+     ]
+    },
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "Step Time :  0.008268117904663086\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {6: 2, 9: 3, 5: 2}, 'inference_time': 0.000316619873046875}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::1914fa1d409a47c8ce328fe554144818', 'timestamp': 1601382712.1137772}\n",
+      "Step Time :  0.0011856555938720703\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {6: 2, 9: 3, 5: 2}, 'inference_time': 6.985664367675781e-05}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::e02b585e6115f9aecb77a166f918a31a', 'timestamp': 1601382712.1150243}\n",
+      "Step Time :  0.0011496543884277344\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {6: 2, 9: 3, 5: 2}, 'inference_time': 6.914138793945312e-05}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::d0676d7bfe8e80438d92751c081d6a25', 'timestamp': 1601382712.1162426}\n",
+      "Step Time :  0.0013616085052490234\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {6: 2, 9: 3, 5: 2}, 'inference_time': 0.0005021095275878906}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::c50f458d61bca9b907e0f30b39a37d53', 'timestamp': 1601382712.1181495}\n",
+      "Step Time :  0.0013453960418701172\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {6: 2, 9: 3, 5: 2}, 'inference_time': 6.151199340820312e-05}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::546023bdf7efc517c274e7958f8ecb78', 'timestamp': 1601382712.1194913}\n",
+      "Step Time :  0.0014889240264892578\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {6: 2, 9: 3, 5: 2}, 'inference_time': 0.0003466606140136719}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::ba028d55c82487c1c23daf85b539d62d', 'timestamp': 1601382712.1213932}\n",
+      "Step Time :  0.0027086734771728516\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {5: 2, 6: 2, 9: 3}, 'inference_time': 0.0001857280731201172}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::93de57819650ab17500512dcdee3b115', 'timestamp': 1601382712.1242223}\n",
+      "Step Time :  0.0031135082244873047\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {5: 2, 6: 2, 9: 2}, 'inference_time': 0.0002512931823730469}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::1c4d9cf35a28fb5fabc1614833464f38', 'timestamp': 1601382712.1275609}\n",
+      "Step Time :  0.001527547836303711\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {5: 2, 6: 2, 9: 2}, 'inference_time': 0.0008654594421386719}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::c106053fd1945d38952df594655d54f9', 'timestamp': 1601382712.1299818}\n",
+      "Step Time :  0.0012226104736328125\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {5: 3, 6: 2, 9: 2}, 'inference_time': 4.76837158203125e-05}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::75d60384f199d6edb1750bcd10438ad3', 'timestamp': 1601382712.1311858}\n",
+      "Step Time :  0.0008962154388427734\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {5: 2, 6: 3, 9: 2}, 'inference_time': 3.743171691894531e-05}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::19a52ee1290c7ac77d92f7464158a3a2', 'timestamp': 1601382712.1321135}\n",
+      "Step Time :  0.0008242130279541016\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {5: 2, 6: 2, 9: 3}, 'inference_time': 3.981590270996094e-05}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::37d0e08774558888aa43bb442da65006', 'timestamp': 1601382712.1329749}\n",
+      "Step Time :  0.0008258819580078125\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {5: 2, 6: 2, 9: 2}, 'inference_time': 3.933906555175781e-05}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::cd8b0504cd386e7b513061fbbd9af6fb', 'timestamp': 1601382712.1338384}\n",
+      "Step Time :  0.0012366771697998047\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {5: 2, 6: 2, 9: 2}, 'inference_time': 0.00016450881958007812}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::ba008272171578de1b2f70a5ecbd6b41', 'timestamp': 1601382712.135271}\n",
+      "Step Time :  0.0011963844299316406\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {5: 2, 6: 2, 9: 2}, 'inference_time': 6.270408630371094e-05}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::d8d035ad6a4bf90cc766ec11b08f5001', 'timestamp': 1601382712.1364923}\n",
+      "Step Time :  0.003049135208129883\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {5: 2, 6: 2, 9: 2}, 'inference_time': 0.0001773834228515625}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::81f644507309696c848d2eb239c0e48b', 'timestamp': 1601382712.139718}\n",
+      "Step Time :  0.002309560775756836\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {5: 2, 6: 2, 9: 2}, 'inference_time': 0.0002472400665283203}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::ab1142aa9ff2daf8158b4823e1f3f6c0', 'timestamp': 1601382712.1422904}\n",
+      "Step Time :  0.0022907257080078125\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {5: 2, 6: 2, 9: 2}, 'inference_time': 8.0108642578125e-05}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::f0846ea34736805cb7bd895962a370f4', 'timestamp': 1601382712.1446133}\n",
+      "Step Time :  0.0012469291687011719\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {5: 2, 6: 2, 9: 2}, 'inference_time': 4.458427429199219e-05}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::5a855478cca69999f21b4304239c3c63', 'timestamp': 1601382712.1458921}\n",
+      "Step Time :  0.0011546611785888672\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {5: 2, 6: 2, 9: 2}, 'inference_time': 5.817413330078125e-05}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::1932047a7d7b24df0734aced5a3a5781', 'timestamp': 1601382712.147107}\n",
+      "Step Time :  0.0010085105895996094\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {5: 1, 6: 2, 9: 2}, 'inference_time': 5.91278076171875e-05}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::0394a38286033113d1eaba77683eabad', 'timestamp': 1601382712.1481698}\n",
+      "Step Time :  0.0009696483612060547\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {5: 2, 6: 1, 9: 2}, 'inference_time': 5.435943603515625e-05}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::a7dcf510d64897e48436aef157a7577b', 'timestamp': 1601382712.149192}\n",
+      "Step Time :  0.0010528564453125\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {5: 3, 6: 2, 9: 1}, 'inference_time': 7.176399230957031e-05}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::e57305c5bbb277527075d44fbcc34eb9', 'timestamp': 1601382712.150317}\n",
+      "Step Time :  0.002578258514404297\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {5: 2, 6: 3, 9: 2}, 'inference_time': 0.00022363662719726562}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::daf43f031b1523398b37cf1af0a5ad15', 'timestamp': 1601382712.1531286}\n",
+      "Step Time :  0.0029299259185791016\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {5: 2, 6: 2, 9: 3}, 'inference_time': 0.0001938343048095703}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::d7d063eda82875334e16e2a4e9b56f88', 'timestamp': 1601382712.1562245}\n",
+      "Step Time :  0.0034918785095214844\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {5: 1, 6: 2, 9: 2}, 'inference_time': 0.00017881393432617188}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::462849ec1b6d7e2718733acc779e4946', 'timestamp': 1601382712.1598952}\n",
+      "Step Time :  0.0015392303466796875\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {6: 1, 9: 2, 5: 3}, 'inference_time': 6.532669067382812e-05}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::e787857c3553fc7487f7b1a24ec05c85', 'timestamp': 1601382712.161469}\n",
+      "Step Time :  0.0009663105010986328\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {9: 1, 5: 2, 6: 3}, 'inference_time': 3.910064697265625e-05}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::b1d5c8f48dd1d6b9797e3aa4a9414368', 'timestamp': 1601382712.162464}\n",
+      "Step Time :  0.0008671283721923828\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {5: 3, 6: 2, 9: 3}, 'inference_time': 3.7670135498046875e-05}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::36764fbc1bad80022e07d6d070a4cf3b', 'timestamp': 1601382712.1633656}\n",
+      "Step Time :  0.0008323192596435547\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {5: 4, 6: 3, 9: 4}, 'inference_time': 3.719329833984375e-05}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::4033cdda7b15db1df7eed911770d5675', 'timestamp': 1601382712.1642327}\n",
+      "Step Time :  0.0008242130279541016\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {5: 2, 6: 3, 9: 2}, 'inference_time': 3.600120544433594e-05}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::a84da82a3a9bfa7990ed4532736fbbd6', 'timestamp': 1601382712.1650908}\n",
+      "Step Time :  0.0009586811065673828\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {5: 2, 6: 3, 9: 4}, 'inference_time': 0.0001385211944580078}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::56ab4cf23e8c7d53e7959d71142778bf', 'timestamp': 1601382712.166219}\n",
+      "Step Time :  0.00138092041015625\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {5: 2, 6: 3, 9: 3}, 'inference_time': 5.1021575927734375e-05}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::3c972f53f98bba671cbf3fb93e597da5', 'timestamp': 1601382712.1676173}\n",
+      "Step Time :  0.0009887218475341797\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {5: 2, 6: 2, 9: 3}, 'inference_time': 5.507469177246094e-05}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::b734928ed9ed281a9672ab0ef4c5e939', 'timestamp': 1601382712.1686585}\n",
+      "Step Time :  0.00098419189453125\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {5: 2, 6: 2, 9: 3}, 'inference_time': 6.151199340820312e-05}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::1e80fc419a1509d57c10236d99ba2d36', 'timestamp': 1601382712.1696985}\n",
+      "Step Time :  0.0015869140625\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {6: 2, 9: 2}, 'inference_time': 0.00023221969604492188}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::fc291b4273bd59e58aed523b3b973331', 'timestamp': 1601382712.1715674}\n",
+      "Step Time :  0.0019605159759521484\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {6: 2, 9: 2}, 'inference_time': 7.748603820800781e-05}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::56a53182f6a692191f054987f22ccbf7', 'timestamp': 1601382712.1735454}\n",
+      "Step Time :  0.0019025802612304688\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {6: 2, 9: 2}, 'inference_time': 0.000225067138671875}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::42c1899fc8f66af0a518899e5f4b8095', 'timestamp': 1601382712.1756618}\n",
+      "Step Time :  0.00093841552734375\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {9: 2}, 'inference_time': 4.029273986816406e-05}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::d4ffadcd395448a903402e38bc0a84e7', 'timestamp': 1601382712.1766286}\n",
+      "Step Time :  0.0007486343383789062\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_STEP', 'payload': {'action': {9: 2}, 'inference_time': 3.695487976074219e-05}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::ea261726296cb7909bdebb41e425c339', 'timestamp': 1601382712.1774101}\n",
+      "Step Time :  0.0007071495056152344\n",
+      "Current Episode :  2\n",
+      "Episode Done\n",
+      "Reward :  10.0\n",
+      "Request :  {'type': 'FLATLAND_RL.ENV_CREATE', 'payload': {}, 'response_channel': 'flatland-rl::FLATLAND_RL_SERVICE_ID::response::978da518f555337ce6430a1a07b61df8', 'timestamp': 1601382712.1781914}\n",
+      "Response :  b'\\x82\\xa4type\\xb1FLATLAND_RL.ERROR\\xa7payload\\x82\\xa4type\\xb1FLATLAND_RL.ERROR\\xa7payload\\xb7list index out of range'\n"
+     ]
+    },
+    {
+     "ename": "ValueError",
+     "evalue": "unregistered extension code 164",
+     "output_type": "error",
+     "traceback": [
+      "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
+      "\u001b[0;31mValueError\u001b[0m                                Traceback (most recent call last)",
+      "\u001b[0;32m<ipython-input-26-c2b4e928c1b5>\u001b[0m in \u001b[0;36m<module>\u001b[0;34m\u001b[0m\n\u001b[1;32m      4\u001b[0m     \u001b[0;32mwhile\u001b[0m \u001b[0mobs\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m      5\u001b[0m         obs, info = oFRC.env_create(\n\u001b[0;32m----> 6\u001b[0;31m             \u001b[0mobs_builder_object\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0moObsB\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m      7\u001b[0m         )\n\u001b[1;32m      8\u001b[0m         \u001b[0;32mif\u001b[0m \u001b[0;32mnot\u001b[0m \u001b[0mobs\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
+      "\u001b[0;32m/home3/jeremy/projects/aicrowd/rl-trains/flatland5/flatland/evaluators/client.py\u001b[0m in \u001b[0;36menv_create\u001b[0;34m(self, obs_builder_object)\u001b[0m\n\u001b[1;32m    234\u001b[0m         \u001b[0m_request\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m'type'\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mmessages\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mFLATLAND_RL\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mENV_CREATE\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    235\u001b[0m         \u001b[0m_request\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m'payload'\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;34m{\u001b[0m\u001b[0;34m}\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 236\u001b[0;31m         \u001b[0m_response\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_remote_request\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0m_request\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m    237\u001b[0m         \u001b[0mobservation\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0m_response\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m'payload'\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m'observation'\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    238\u001b[0m         \u001b[0minfo\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0m_response\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m'payload'\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m'info'\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
+      "\u001b[0;32m/home3/jeremy/projects/aicrowd/rl-trains/flatland5/flatland/evaluators/client.py\u001b[0m in \u001b[0;36m_remote_request\u001b[0;34m(self, _request, blocking)\u001b[0m\n\u001b[1;32m    190\u001b[0m                 \u001b[0mprint\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m\"Response : \"\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0m_response\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    191\u001b[0m             \u001b[0;32mif\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0muse_pickle\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 192\u001b[0;31m                 \u001b[0m_response\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mpickle\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mloads\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0m_response\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m    193\u001b[0m             \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    194\u001b[0m                 _response = msgpack.unpackb(\n",
+      "\u001b[0;31mValueError\u001b[0m: unregistered extension code 164"
+     ]
+    }
+   ],
+   "source": [
+    "if True:\n",
+    "    episode = 0\n",
+    "    obs = True\n",
+    "    while obs:\n",
+    "        obs, info = oFRC.env_create(\n",
+    "            obs_builder_object=oObsB\n",
+    "        )\n",
+    "        if not obs:\n",
+    "            print(\"null observation!\")\n",
+    "            \"\"\"\n",
+    "            The remote env returns False as the first obs\n",
+    "            when it is done evaluating all the individual episodes\n",
+    "            \"\"\"\n",
+    "            break\n",
+    "        print(\"Episode : {}\".format(episode))\n",
+    "        episode += 1\n",
+    "\n",
+    "        print(oFRC.env.dones['__all__'])\n",
+    "\n",
+    "        while True:\n",
+    "            action = my_controller(obs, oFRC.env)\n",
+    "            time_start = time.time()\n",
+    "\n",
+    "            try:\n",
+    "                observation, all_rewards, done, info = oFRC.env_step(action)\n",
+    "                time_diff = time.time() - time_start\n",
+    "                print(\"Step Time : \", time_diff)\n",
+    "                if done['__all__']:\n",
+    "                    print(\"Current Episode : \", episode)\n",
+    "                    print(\"Episode Done\")\n",
+    "                    print(\"Reward : \", sum(list(all_rewards.values())))\n",
+    "                    break\n",
+    "            except TimeoutException as err:\n",
+    "                print(\"Timeout: \", err)\n",
+    "                break\n",
+    "\n",
+    "    print(\"Evaluation Complete...\")\n",
+    "    print(oFRC.submit())"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "oFRC.env"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": []
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": []
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "## Render episode stuff"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "env, env_dict = RailEnvPersister.load_new(sResource, load_from_package=sPack) # env_file)\n",
+    "\n",
+    "# the seed has to match that used to record the episode, in order for the malfunctions to match.\n",
+    "env.reset(random_seed=1001)\n",
+    "oRT = RenderTool(env, show_debug=True)\n",
+    "aImg = oRT.render_env(show_rowcols=True, return_image=True, show_inactive_agents=True)\n",
+    "print(env._max_episode_steps)\n",
+    "PIL.Image.fromarray(aImg)\n"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "loAgs = env_dict[\"agents\"]\n",
+    "lCols =  \"initial_direction,direction,initial_position,position\".split(\",\")\n",
+    "pd.DataFrame([ [getattr(oAg, sCol) for sCol in lCols] \n",
+    "              for oAg in loAgs], columns=lCols)"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "pd.DataFrame([ [getattr(oAg, sCol) for sCol in lCols] \n",
+    "              for oAg in env.agents], columns=lCols)"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "pd.DataFrame([ vars(oAg) for oAg in env.agents])"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {
+    "colab": {},
+    "colab_type": "code",
+    "id": "kkejL06T8xyU"
+   },
+   "outputs": [],
+   "source": [
+    "# from persistence.py\n",
+    "def get_agent_state(env):\n",
+    "    list_agents_state = []\n",
+    "    for iAg, oAg in enumerate(env.agents):\n",
+    "        # the int cast is to avoid numpy types which may cause problems with msgpack\n",
+    "        # in env v2, agents may have position None, before starting\n",
+    "        if oAg.position is None:\n",
+    "            pos = (0, 0)\n",
+    "        else:\n",
+    "            pos = (int(oAg.position[0]), int(oAg.position[1]))\n",
+    "        # print(\"pos:\", pos, type(pos[0]))\n",
+    "        list_agents_state.append(\n",
+    "            [*pos, int(oAg.direction), oAg.malfunction_data[\"malfunction\"]])\n",
+    "      \n",
+    "    return list_agents_state"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {
+    "colab": {},
+    "colab_type": "code",
+    "id": "uNmOgQjO-Rw_"
+   },
+   "outputs": [],
+   "source": [
+    "expert_actions = env_dict['actions']\n",
+    "episode_states = env_dict['episode']"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "pd.DataFrame([ vars(oAg) for oAg in env.agents])"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {
+    "colab": {
+     "base_uri": "https://localhost:8080/",
+     "height": 34
+    },
+    "colab_type": "code",
+    "id": "IXQxfUXF2U33",
+    "outputId": "2a94ffec-c6b7-4cc3-d779-8c430d66918d",
+    "scrolled": false
+   },
+   "outputs": [],
+   "source": [
+    "env_renderer = RenderTool(env, gl=\"PGL\", show_debug=True)\n",
+    "\n",
+    "n_agents = env.get_num_agents()\n",
+    "x_dim, y_dim = env.width, env.height\n",
+    "max_steps = env_dict['max_episode_steps']\n",
+    "\n",
+    "action_dict = {}\n",
+    "frames = []\n",
+    "\n",
+    "# log everything in original state\n",
+    "statuses = []\n",
+    "for a in range(n_agents):\n",
+    "    statuses.append(env.agents[a].status)\n",
+    "pilImg = render_env(env_renderer)\n",
+    "frames.append({\n",
+    "    'image': pilImg,\n",
+    "    'statuses': statuses\n",
+    "    })\n",
+    "\n",
+    "step = 0\n",
+    "all_done = False\n",
+    "failed_action_check = False\n",
+    "print(\"Processing episode steps:\")\n",
+    "while not all_done and step < len(expert_actions):\n",
+    "    print(step, end=\", \")\n",
+    "    \"\"\"\n",
+    "    for a in range(n_agents):\n",
+    "      if info['action_required'][a]:\n",
+    "          if step < len(expert_actions):\n",
+    "            if a in expert_actions[step]:\n",
+    "              action = expert_actions[step][a]\n",
+    "            else:\n",
+    "              print(\"Step {}: agent {} needs action but not provided! only got {}\".format(step, a, expert_actions[step]))\n",
+    "          else:\n",
+    "              action = 0\n",
+    "\n",
+    "      action_dict.update({a: action})\n",
+    "    \"\"\"\n",
+    "    \n",
+    "    if step < len(expert_actions):\n",
+    "        dAct = expert_actions[step]\n",
+    "    else:\n",
+    "        dAct = {}\n",
+    "    \n",
+    "    next_obs, all_rewards, done, info = env.step(dAct)\n",
+    "  \n",
+    "    if True:\n",
+    "        # Check that agent states match recorded states\n",
+    "        if get_agent_state(env) == episode_states[step]:\n",
+    "            pass\n",
+    "        else:\n",
+    "            print(\"MISMATCH\")\n",
+    "            failed_action_check = True\n",
+    "            #print(\"env:\", get_agent_state(env))\n",
+    "            #print(\"epi:\", episode_states[step])\n",
+    "            llAgSt = get_agent_state(env)\n",
+    "            llEpSt = episode_states[step]\n",
+    "            for iAg, (lAgSt, lEpSt) in enumerate(zip(llAgSt, llEpSt)):\n",
+    "                if lAgSt != lEpSt:\n",
+    "                    print(\"Ag:\", iAg, \"Env: \", lAgSt, \"Epi:\", lEpSt, end = \"; \")\n",
+    "            print(\"------\")\n",
+    "\n",
+    "  \n",
+    "    # Force agent states from the recorded states\n",
+    "    if False:\n",
+    "        for idx, agent in enumerate(env.agents):\n",
+    "            #print(episode_states[step][idx])\n",
+    "            rcPos = episode_states[step][idx][0:2]\n",
+    "            #print(idx, rcPos)\n",
+    "            if rcPos == [0,0]:\n",
+    "                agent.position = None\n",
+    "            else:\n",
+    "                agent.position = (*rcPos,) # episode_states[step][idx][0], episode_states[step][idx][1]#, episode_states[step][idx][2]\n",
+    "\n",
+    "            agent.malfunction_data[\"malfunction\"] = episode_states[step][idx][3]\n",
+    "            agent.direction = int(episode_states[step][idx][2])\n",
+    "\n",
+    "            agent.old_direction = int(episode_states[step-1][idx][2])\n",
+    "            agent.old_position = episode_states[step-1][idx][:2]\n",
+    "\n",
+    "    statuses = []\n",
+    "    for a in range(n_agents):\n",
+    "        statuses.append(env.agents[a].status)\n",
+    "\n",
+    "    #clear_output(wait=True)\n",
+    "    pilImg = render_env(env_renderer)\n",
+    "    frames.append({\n",
+    "        'image': pilImg,\n",
+    "        'statuses': statuses\n",
+    "      })\n",
+    "    #print(\"Replaying {}/{}\".format(step, max_steps))\n",
+    "\n",
+    "    if done['__all__']:\n",
+    "        all_done = True\n",
+    "        max_steps = step + 1\n",
+    "        print(\"done\")\n",
+    "\n",
+    "    step += 1"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "assert failed_action_check == False, \"Realised states did not match stored states.\""
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "env.agents[0]"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {
+    "scrolled": false
+   },
+   "outputs": [],
+   "source": [
+    "[ oAg.malfunction_data for oAg in env_dict[\"agents\"] ][:3]"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "env_dict[\"malfunction\"]"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "env._max_episode_steps"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "sfImg = sResource.replace(\"pkl\", \"gif\")\n",
+    "imageio.mimsave(sfImg, [d[\"image\"] for d in frames], subrectangles=True)"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "sfImg"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "display.Image(sfImg)"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {
+    "colab": {
+     "base_uri": "https://localhost:8080/",
+     "height": 577,
+     "referenced_widgets": [
+      "11ecd9887b824225b037d043745c7f19",
+      "d46bfa4e89d44814acb57a247aa60fec",
+      "711e232d2cb54266a52552d90ce3f05e",
+      "176dbef2d38244bcb256258a692d53a7",
+      "81330f0e89e149e697e26eb0ed80d023",
+      "b60ecb9134eb449088fd35d3ee9dd20e",
+      "0a2d6b655cc6486bba4cb2ed086b2a19",
+      "6870e3259fa24df5b6117eadcba5a84f",
+      "3a991f2384ec4a0984a850c380fdf8c5",
+      "707d4424f540458dbb43cd52177eddf3",
+      "c17016ecd7e24c20a2240f5cb8e1bca1",
+      "c7d9b8f474144b8b8311ab87338efc64"
+     ]
+    },
+    "colab_type": "code",
+    "id": "uFzeelj2FW9n",
+    "outputId": "3b65f192-301d-4c98-cf0c-c987433003ef"
+   },
+   "outputs": [],
+   "source": [
+    "from ipywidgets import interact, interactive, fixed, interact_manual, Play\n",
+    "import ipywidgets as widgets\n",
+    "import matplotlib.pyplot as plt\n",
+    "%matplotlib inline\n",
+    "\n",
+    "import numpy as np\n",
+    "from IPython.display import HTML\n",
+    "\n",
+    "display.display(HTML('<link rel=\"stylesheet\" href=\"//stackpath.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css\"/>'))\n",
+    "\n",
+    "def plot_func(frame_idx):\n",
+    "    frame = frames[int(frame_idx)]\n",
+    "    display.display(frame['image'])\n",
+    "    #print(frame['statuses'])\n",
+    "\n",
+    "if True:\n",
+    "    slider = widgets.FloatSlider(value=0, min=0, max=max_steps, step=1)\n",
+    "    interact(plot_func, frame_idx = slider)\n",
+    "\n",
+    "    play = Play(\n",
+    "        max=max_steps,\n",
+    "        value=0,\n",
+    "        step=1,\n",
+    "        interval=250\n",
+    "    )\n",
+    "\n",
+    "    widgets.link((play, 'value'), (slider, 'value'))\n",
+    "    widgets.VBox([play])"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {
+    "colab": {},
+    "colab_type": "code",
+    "id": "j9_J2f6K64Jb"
+   },
+   "outputs": [],
+   "source": [
+    "import numpy as np"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "g3Ep = np.array(episode_states)\n",
+    "np.sum(g3Ep[:,:,3] > 0)"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "plt.plot(np.sum(g3Ep[:,:,3]>0, axis=1))\n",
+    "plt.title(sResource + \"\\nmalfunctioning agents by time step\")"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "g3Ep.shape"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "g3Ep2 = np.array(env.cur_episode)\n",
+    "g3Ep2.shape"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "plt.step(range(len(g3Ep2)), np.sum(g3Ep2[:,:,4]==1, axis=1), label=\"Active\")\n",
+    "plt.step(range(len(g3Ep2)), np.sum(g3Ep2[:,:,4]==0, axis=1), label=\"Ready to depart\")\n",
+    "plt.title(\"env: \"+ sResource +\"\\nActive Agents by timestep\")\n",
+    "plt.legend()"
+   ]
+  }
+ ],
+ "metadata": {
+  "colab": {
+   "collapsed_sections": [],
+   "name": "Flatland Round 2 Replays",
+   "provenance": []
+  },
+  "hide_input": false,
+  "kernelspec": {
+   "display_name": "Python 3",
+   "language": "python",
+   "name": "python3"
+  },
+  "language_info": {
+   "codemirror_mode": {
+    "name": "ipython",
+    "version": 3
+   },
+   "file_extension": ".py",
+   "mimetype": "text/x-python",
+   "name": "python",
+   "nbconvert_exporter": "python",
+   "pygments_lexer": "ipython3",
+   "version": "3.6.7"
+  },
+  "latex_envs": {
+   "LaTeX_envs_menu_present": true,
+   "autoclose": false,
+   "autocomplete": true,
+   "bibliofile": "biblio.bib",
+   "cite_by": "apalike",
+   "current_citInitial": 1,
+   "eqLabelWithNumbers": true,
+   "eqNumInitial": 1,
+   "hotkeys": {
+    "equation": "Ctrl-E",
+    "itemize": "Ctrl-I"
+   },
+   "labels_anchors": false,
+   "latex_user_defs": false,
+   "report_style_numbering": false,
+   "user_envs_cfg": false
+  },
+  "toc": {
+   "base_numbering": 1,
+   "nav_menu": {},
+   "number_sections": true,
+   "sideBar": true,
+   "skip_h1_title": false,
+   "title_cell": "Table of Contents",
+   "title_sidebar": "Contents",
+   "toc_cell": false,
+   "toc_position": {},
+   "toc_section_display": true,
+   "toc_window_display": false
+  },
+  "varInspector": {
+   "cols": {
+    "lenName": 16,
+    "lenType": 16,
+    "lenVar": 40
+   },
+   "kernels_config": {
+    "python": {
+     "delete_cmd_postfix": "",
+     "delete_cmd_prefix": "del ",
+     "library": "var_list.py",
+     "varRefreshCmd": "print(var_dic_list())"
+    },
+    "r": {
+     "delete_cmd_postfix": ") ",
+     "delete_cmd_prefix": "rm(",
+     "library": "var_list.r",
+     "varRefreshCmd": "cat(var_dic_list()) "
+    }
+   },
+   "types_to_exclude": [
+    "module",
+    "function",
+    "builtin_function_or_method",
+    "instance",
+    "_Feature"
+   ],
+   "window_display": false
+  },
+  "widgets": {
+   "application/vnd.jupyter.widget-state+json": {
+    "state": {
+     "0dd673bfc308419c8f62c545999562b3": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "DescriptionStyleModel",
+      "state": {
+       "_model_module": "@jupyter-widgets/controls",
+       "_model_module_version": "1.5.0",
+       "_model_name": "DescriptionStyleModel",
+       "_view_count": null,
+       "_view_module": "@jupyter-widgets/base",
+       "_view_module_version": "1.2.0",
+       "_view_name": "StyleView",
+       "description_width": ""
+      }
+     },
+     "1bc1201efe3e4e3a8403e4b8c902a295": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {
+       "_model_module": "@jupyter-widgets/base",
+       "_model_module_version": "1.2.0",
+       "_model_name": "LayoutModel",
+       "_view_count": null,
+       "_view_module": "@jupyter-widgets/base",
+       "_view_module_version": "1.2.0",
+       "_view_name": "LayoutView",
+       "align_content": null,
+       "align_items": null,
+       "align_self": null,
+       "border": null,
+       "bottom": null,
+       "display": null,
+       "flex": null,
+       "flex_flow": null,
+       "grid_area": null,
+       "grid_auto_columns": null,
+       "grid_auto_flow": null,
+       "grid_auto_rows": null,
+       "grid_column": null,
+       "grid_gap": null,
+       "grid_row": null,
+       "grid_template_areas": null,
+       "grid_template_columns": null,
+       "grid_template_rows": null,
+       "height": null,
+       "justify_content": null,
+       "justify_items": null,
+       "left": null,
+       "margin": null,
+       "max_height": null,
+       "max_width": null,
+       "min_height": null,
+       "min_width": null,
+       "object_fit": null,
+       "object_position": null,
+       "order": null,
+       "overflow": null,
+       "overflow_x": null,
+       "overflow_y": null,
+       "padding": null,
+       "right": null,
+       "top": null,
+       "visibility": null,
+       "width": null
+      }
+     },
+     "26afede661e541db9d09f4bd88895c7b": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "FloatSliderModel",
+      "state": {
+       "_dom_classes": [],
+       "_model_module": "@jupyter-widgets/controls",
+       "_model_module_version": "1.5.0",
+       "_model_name": "FloatSliderModel",
+       "_view_count": null,
+       "_view_module": "@jupyter-widgets/controls",
+       "_view_module_version": "1.5.0",
+       "_view_name": "FloatSliderView",
+       "continuous_update": true,
+       "description": "frame_idx",
+       "description_tooltip": null,
+       "disabled": false,
+       "layout": "IPY_MODEL_e042a431167b452a9e9f2f0a0ac99f45",
+       "max": 29,
+       "min": 0,
+       "orientation": "horizontal",
+       "readout": true,
+       "readout_format": ".2f",
+       "step": 1,
+       "style": "IPY_MODEL_40b60736128543f48f32eb1f7c89d855",
+       "value": 0
+      }
+     },
+     "40b60736128543f48f32eb1f7c89d855": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "SliderStyleModel",
+      "state": {
+       "_model_module": "@jupyter-widgets/controls",
+       "_model_module_version": "1.5.0",
+       "_model_name": "SliderStyleModel",
+       "_view_count": null,
+       "_view_module": "@jupyter-widgets/base",
+       "_view_module_version": "1.2.0",
+       "_view_name": "StyleView",
+       "description_width": "",
+       "handle_color": null
+      }
+     },
+     "4a12b47571a0481b881e564bbbcf6f53": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "VBoxModel",
+      "state": {
+       "_dom_classes": [],
+       "_model_module": "@jupyter-widgets/controls",
+       "_model_module_version": "1.5.0",
+       "_model_name": "VBoxModel",
+       "_view_count": null,
+       "_view_module": "@jupyter-widgets/controls",
+       "_view_module_version": "1.5.0",
+       "_view_name": "VBoxView",
+       "box_style": "",
+       "children": [
+        "IPY_MODEL_78910a9b607e4a47b06b5c2cf03811a7"
+       ],
+       "layout": "IPY_MODEL_1bc1201efe3e4e3a8403e4b8c902a295"
+      }
+     },
+     "55f6067b15be4de4b9ab165d4ff7009b": {
+      "model_module": "@jupyter-widgets/output",
+      "model_module_version": "1.0.0",
+      "model_name": "OutputModel",
+      "state": {
+       "_dom_classes": [],
+       "_model_module": "@jupyter-widgets/output",
+       "_model_module_version": "1.0.0",
+       "_model_name": "OutputModel",
+       "_view_count": null,
+       "_view_module": "@jupyter-widgets/output",
+       "_view_module_version": "1.0.0",
+       "_view_name": "OutputView",
+       "layout": "IPY_MODEL_f8b98bf694c848baa97f2ef4e9e599db",
+       "msg_id": "",
+       "outputs": []
+      }
+     },
+     "78910a9b607e4a47b06b5c2cf03811a7": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "PlayModel",
+      "state": {
+       "_dom_classes": [],
+       "_model_module": "@jupyter-widgets/controls",
+       "_model_module_version": "1.5.0",
+       "_model_name": "PlayModel",
+       "_playing": false,
+       "_repeat": false,
+       "_view_count": null,
+       "_view_module": "@jupyter-widgets/controls",
+       "_view_module_version": "1.5.0",
+       "_view_name": "PlayView",
+       "description": "",
+       "description_tooltip": null,
+       "disabled": false,
+       "interval": 250,
+       "layout": "IPY_MODEL_a8de6f99082e428dae860e4c6a79b9cc",
+       "max": 29,
+       "min": 0,
+       "show_repeat": true,
+       "step": 1,
+       "style": "IPY_MODEL_0dd673bfc308419c8f62c545999562b3",
+       "value": 0
+      }
+     },
+     "86c96853eb074ec18c60567cd4e8b134": {
+      "model_module": "@jupyter-widgets/controls",
+      "model_module_version": "1.5.0",
+      "model_name": "VBoxModel",
+      "state": {
+       "_dom_classes": [
+        "widget-interact"
+       ],
+       "_model_module": "@jupyter-widgets/controls",
+       "_model_module_version": "1.5.0",
+       "_model_name": "VBoxModel",
+       "_view_count": null,
+       "_view_module": "@jupyter-widgets/controls",
+       "_view_module_version": "1.5.0",
+       "_view_name": "VBoxView",
+       "box_style": "",
+       "children": [
+        "IPY_MODEL_26afede661e541db9d09f4bd88895c7b",
+        "IPY_MODEL_55f6067b15be4de4b9ab165d4ff7009b"
+       ],
+       "layout": "IPY_MODEL_bb522116f06a4f1babe2a3c0c557654d"
+      }
+     },
+     "a8de6f99082e428dae860e4c6a79b9cc": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {
+       "_model_module": "@jupyter-widgets/base",
+       "_model_module_version": "1.2.0",
+       "_model_name": "LayoutModel",
+       "_view_count": null,
+       "_view_module": "@jupyter-widgets/base",
+       "_view_module_version": "1.2.0",
+       "_view_name": "LayoutView",
+       "align_content": null,
+       "align_items": null,
+       "align_self": null,
+       "border": null,
+       "bottom": null,
+       "display": null,
+       "flex": null,
+       "flex_flow": null,
+       "grid_area": null,
+       "grid_auto_columns": null,
+       "grid_auto_flow": null,
+       "grid_auto_rows": null,
+       "grid_column": null,
+       "grid_gap": null,
+       "grid_row": null,
+       "grid_template_areas": null,
+       "grid_template_columns": null,
+       "grid_template_rows": null,
+       "height": null,
+       "justify_content": null,
+       "justify_items": null,
+       "left": null,
+       "margin": null,
+       "max_height": null,
+       "max_width": null,
+       "min_height": null,
+       "min_width": null,
+       "object_fit": null,
+       "object_position": null,
+       "order": null,
+       "overflow": null,
+       "overflow_x": null,
+       "overflow_y": null,
+       "padding": null,
+       "right": null,
+       "top": null,
+       "visibility": null,
+       "width": null
+      }
+     },
+     "bb522116f06a4f1babe2a3c0c557654d": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {
+       "_model_module": "@jupyter-widgets/base",
+       "_model_module_version": "1.2.0",
+       "_model_name": "LayoutModel",
+       "_view_count": null,
+       "_view_module": "@jupyter-widgets/base",
+       "_view_module_version": "1.2.0",
+       "_view_name": "LayoutView",
+       "align_content": null,
+       "align_items": null,
+       "align_self": null,
+       "border": null,
+       "bottom": null,
+       "display": null,
+       "flex": null,
+       "flex_flow": null,
+       "grid_area": null,
+       "grid_auto_columns": null,
+       "grid_auto_flow": null,
+       "grid_auto_rows": null,
+       "grid_column": null,
+       "grid_gap": null,
+       "grid_row": null,
+       "grid_template_areas": null,
+       "grid_template_columns": null,
+       "grid_template_rows": null,
+       "height": null,
+       "justify_content": null,
+       "justify_items": null,
+       "left": null,
+       "margin": null,
+       "max_height": null,
+       "max_width": null,
+       "min_height": null,
+       "min_width": null,
+       "object_fit": null,
+       "object_position": null,
+       "order": null,
+       "overflow": null,
+       "overflow_x": null,
+       "overflow_y": null,
+       "padding": null,
+       "right": null,
+       "top": null,
+       "visibility": null,
+       "width": null
+      }
+     },
+     "e042a431167b452a9e9f2f0a0ac99f45": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {
+       "_model_module": "@jupyter-widgets/base",
+       "_model_module_version": "1.2.0",
+       "_model_name": "LayoutModel",
+       "_view_count": null,
+       "_view_module": "@jupyter-widgets/base",
+       "_view_module_version": "1.2.0",
+       "_view_name": "LayoutView",
+       "align_content": null,
+       "align_items": null,
+       "align_self": null,
+       "border": null,
+       "bottom": null,
+       "display": null,
+       "flex": null,
+       "flex_flow": null,
+       "grid_area": null,
+       "grid_auto_columns": null,
+       "grid_auto_flow": null,
+       "grid_auto_rows": null,
+       "grid_column": null,
+       "grid_gap": null,
+       "grid_row": null,
+       "grid_template_areas": null,
+       "grid_template_columns": null,
+       "grid_template_rows": null,
+       "height": null,
+       "justify_content": null,
+       "justify_items": null,
+       "left": null,
+       "margin": null,
+       "max_height": null,
+       "max_width": null,
+       "min_height": null,
+       "min_width": null,
+       "object_fit": null,
+       "object_position": null,
+       "order": null,
+       "overflow": null,
+       "overflow_x": null,
+       "overflow_y": null,
+       "padding": null,
+       "right": null,
+       "top": null,
+       "visibility": null,
+       "width": null
+      }
+     },
+     "f8b98bf694c848baa97f2ef4e9e599db": {
+      "model_module": "@jupyter-widgets/base",
+      "model_module_version": "1.2.0",
+      "model_name": "LayoutModel",
+      "state": {
+       "_model_module": "@jupyter-widgets/base",
+       "_model_module_version": "1.2.0",
+       "_model_name": "LayoutModel",
+       "_view_count": null,
+       "_view_module": "@jupyter-widgets/base",
+       "_view_module_version": "1.2.0",
+       "_view_name": "LayoutView",
+       "align_content": null,
+       "align_items": null,
+       "align_self": null,
+       "border": null,
+       "bottom": null,
+       "display": null,
+       "flex": null,
+       "flex_flow": null,
+       "grid_area": null,
+       "grid_auto_columns": null,
+       "grid_auto_flow": null,
+       "grid_auto_rows": null,
+       "grid_column": null,
+       "grid_gap": null,
+       "grid_row": null,
+       "grid_template_areas": null,
+       "grid_template_columns": null,
+       "grid_template_rows": null,
+       "height": null,
+       "justify_content": null,
+       "justify_items": null,
+       "left": null,
+       "margin": null,
+       "max_height": null,
+       "max_width": null,
+       "min_height": null,
+       "min_width": null,
+       "object_fit": null,
+       "object_position": null,
+       "order": null,
+       "overflow": null,
+       "overflow_x": null,
+       "overflow_y": null,
+       "padding": null,
+       "right": null,
+       "top": null,
+       "visibility": null,
+       "width": null
+      }
+     }
+    },
+    "version_major": 2,
+    "version_minor": 0
+   }
+  }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 1
+}