oskarastrom commited on
Commit
5ab0373
·
1 Parent(s): 1edac8d

Annotations

Browse files
annotation_editor.js ADDED
@@ -0,0 +1,312 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ () => {
2
+ window.canvas = document.getElementById('canvas');
3
+ window.ctx = canvas.getContext('2d');
4
+ window.rects = [];
5
+ window.mouseX;
6
+ window.mouseY;
7
+ window.dragX;
8
+ window.dragY;
9
+ window.closeEnough = 10;
10
+ window.keys = {};
11
+ window.hover = false;
12
+
13
+ window.TL = 0;
14
+ window.TR = 1;
15
+ window.BL = 2;
16
+ window.BR = 3;
17
+
18
+
19
+ window.init = () => {
20
+ window.frames = JSON.parse(document.getElementById("annotation_info").innerHTML);
21
+ window.frame_index = 0;
22
+
23
+ document.addEventListener('keydown', keydown);
24
+ document.addEventListener('keyup', keyup);
25
+
26
+ show_frame();
27
+ }
28
+ window.prev_frame = () => {
29
+ window.frame_index = Math.max(window.frame_index - 1, 0);
30
+ show_frame();
31
+ }
32
+ window.next_frame = () => {
33
+ window.frame_index = Math.min(window.frame_index + 1, window.frames.length - 1);
34
+ show_frame();
35
+ }
36
+ window.show_frame = () => {
37
+ const frame_info = window.frames[window.frame_index];
38
+ const annotations = frame_info['annotations'];
39
+ const frame = frame_info['frame'];
40
+
41
+
42
+ window.annotations = [];
43
+ for (const annotation of annotations) {
44
+ const bbox = annotation['bbox']
45
+ window.annotations.push({
46
+ rect: {
47
+ startX: bbox.left,
48
+ startY: bbox.top,
49
+ w: bbox.right - bbox.left,
50
+ h: bbox.bottom - bbox.top
51
+ },
52
+ id: annotation.id,
53
+ conf: annotation.conf
54
+ })
55
+ }
56
+ console.log(window.annotations)
57
+ window.dragging = false;
58
+
59
+ document.getElementById("annotation_img").src = "data:image/png;base64," + frame;
60
+ }
61
+
62
+ window.draw = () => {
63
+ ctx = window.ctx;
64
+ canvas = window.canvas;
65
+ canvas.width = document.getElementById("annotation_img").width;
66
+ canvas.height = document.getElementById("annotation_img").height;
67
+ canvas.style = ""
68
+ annotations = window.annotations;
69
+
70
+ ctx.clearRect(0, 0, canvas.width, canvas.height);
71
+
72
+ ctx.drawImage(document.getElementById("annotation_img"), 0, 0);
73
+
74
+ for (const annotation of annotations) {
75
+ //ctx.globalAlpha = annotation.conf
76
+
77
+ const rect = annotation.rect;
78
+ ctx.strokeStyle = color_from_id(annotation.id);
79
+ ctx.strokeRect(rect.startX, rect.startY, rect.w, rect.h);
80
+
81
+ ctx.font = "15px Arial";
82
+ ctx.fillStyle = color_from_id(annotation.id);
83
+ ctx.textAlign = "right";
84
+ ctx.fillText(annotation.id, rect.startX + rect.w, rect.startY - 3);
85
+ }
86
+
87
+ if (hover && !dragging) {
88
+ annotation = hover.annotation;
89
+ rect = annotation.rect;
90
+ handles = [
91
+ [rect.startX, rect.startY],
92
+ [rect.startX + rect.w, rect.startY],
93
+ [rect.startX, rect.startY + rect.h],
94
+ [rect.startX + rect.w, rect.startY + rect.h]
95
+ ];
96
+
97
+ handle = handles[hover.corner];
98
+ ctx.fillStyle = color_from_id(annotation.id);
99
+ ctx.beginPath();
100
+ s = 6;
101
+ ctx.rect(handle[0]-s/2, handle[1]-s/2, s, s);
102
+ ctx.fill();
103
+ }
104
+
105
+ prettify_annotation();
106
+ }
107
+ color_from_id = (id) => {
108
+ return 'hsl(' + Math.floor((id*id)*57 % 360) + ', 100%, 50%)'
109
+ }
110
+
111
+ window.prettify_annotation = () => {
112
+ label_style = "style='width: calc(16% - 6px); display: inline-block; text-align:center; font-weight: bold;'";
113
+ input_style_base = "style='width: calc(16% - 6px); display: inline-block; padding: 5px;'";
114
+
115
+ input_style_selected = "style='width: calc(16% - 6px); display: inline-block; padding: 5px; border-width: 3px; border-color: orange; border-radius: 5px;'";
116
+
117
+ html = ""
118
+ for (const annotation of window.annotations) {
119
+ input_style = (window.hover && annotation === window.hover.annotation) ? input_style_selected : input_style_base;
120
+ html += `
121
+ <div style='margin: 0 0 20px 10px'>
122
+ <div>
123
+ <label ${label_style}>${"id"}</label>
124
+ <label ${label_style}>${"x"}</label>
125
+ <label ${label_style}>${"y"}</label>
126
+ <label ${label_style}>${"w"}</label>
127
+ <label ${label_style}>${"h"}</label>
128
+ <label ${label_style}>${"conf"}</label>
129
+ </div>
130
+ <div style='height:40px'>
131
+ <input ${input_style} type='text' value='${annotation.id}'>
132
+ <input ${input_style} type='text' value='${Math.round(annotation.rect.startX)}'>
133
+ <input ${input_style} type='text' value='${Math.round(annotation.rect.startY)}'>
134
+ <input ${input_style} type='text' value='${Math.round(annotation.rect.w)}'>
135
+ <input ${input_style} type='text' value='${Math.round(annotation.rect.h)}'>
136
+ <input ${input_style} type='text' value='${annotation.conf}'>
137
+ </div>
138
+ </div>`;
139
+ }
140
+ document.getElementById("annotation_display").innerHTML = html;
141
+ }
142
+
143
+ window.keyup = (e) => {
144
+ delete keys[e.key.toLowerCase()];
145
+ }
146
+ window.keydown = (e) => {
147
+ console.log(e.key.toLowerCase())
148
+ keys[e.key.toLowerCase()] = true;
149
+
150
+ // if pressing x, delete hovered annotation
151
+ if (keys['x'] && window.hover) delete_annotation(window.hover.annotation);
152
+ if (keys['arrowright'] || keys['d']) next_frame();
153
+ if (keys['arrowleft'] || keys['a']) prev_frame();
154
+ }
155
+
156
+ window.mouse_down = (e) => {
157
+
158
+ update_mouse(e);
159
+
160
+ dragX = mouseX;
161
+ dragY = mouseY;
162
+
163
+ // If holding 'n', create new annotation
164
+ if (keys['n']) return create_annotation();
165
+
166
+ // else, start dragging hovered object
167
+ window.dragging = false;
168
+ if (window.hover) {
169
+ window.dragging = {
170
+ annotation: window.hover.annotation,
171
+ corner: window.hover.corner
172
+ }
173
+ }
174
+
175
+ console.log(dragging)
176
+
177
+ window.draw()
178
+ }
179
+
180
+ window.mouse_up = () => {
181
+ console.log("mouseUp")
182
+ window.dragging = false;
183
+ }
184
+
185
+ window.mouse_move = (e) => {
186
+ ctx = window.ctx;
187
+ canvas = window.canvas;
188
+ dragging = window.dragging;
189
+
190
+ update_mouse(e);
191
+
192
+ if (!dragging) return window.draw();
193
+
194
+ annotation = dragging.annotation;
195
+ rect = annotation.rect
196
+ corner = dragging.corner;
197
+
198
+ console.log("drag", dragX, dragY)
199
+ console.log("d", rect.startX - mouseX, rect.startY - mouseY)
200
+ if (corner == window.TL) {
201
+ rect.w += rect.startX - mouseX;
202
+ rect.h += rect.startY - mouseY;
203
+ rect.startX = mouseX;
204
+ rect.startY = mouseY;
205
+ } else if (corner == window.TR) {
206
+ rect.w = mouseX - rect.startX;
207
+ rect.h += rect.startY - mouseY;
208
+ rect.startY = mouseY;
209
+ } else if (corner == window.BL) {
210
+ rect.w += rect.startX - mouseX;
211
+ rect.h = mouseY - rect.startY;
212
+ rect.startX = mouseX;
213
+ } else if (corner == window.BR) {
214
+ rect.w = mouseX - rect.startX;
215
+ rect.h = mouseY - rect.startY
216
+ }
217
+
218
+ //rect.startX = Math.floor(rect.startX);
219
+ //rect.startY = Math.floor(rect.startY);
220
+ //rect.w = Math.floor(rect.w);
221
+ //rect.h = Math.floor(rect.h);
222
+
223
+ // If w < 0 we have swapped sides, switch to horizontally opposite corner
224
+ if (rect.w < 0) {
225
+ rect.w = -rect.w;
226
+ if (corner == window.TL) corner = window.TR;
227
+ else if (corner == window.TR) corner = window.TL;
228
+ else if (corner == window.BL) corner = window.BR;
229
+ else if (corner == window.BR) corner = window.BL;
230
+ }
231
+ //If h < 0 we have swapped sides, switch to vertically opposite corner
232
+ if (rect.h < 0) {
233
+ rect.h = -rect.h;
234
+ if (corner == window.TL) corner = window.BL;
235
+ else if (corner == window.BL) corner = window.TL;
236
+ else if (corner == window.TR) corner = window.BR;
237
+ else if (corner == window.BR) corner = window.TR;
238
+ }
239
+ if (dragging.corner !== corner) console.log(dragging.corner + " -> " + corner);
240
+ dragging.corner = corner;
241
+
242
+ window.draw()
243
+ }
244
+
245
+ update_mouse = (e) => {
246
+ bodyRect = document.body.getBoundingClientRect();
247
+ canvasRect = e.target.getBoundingClientRect();
248
+ offset_x = canvasRect.left - bodyRect.left;
249
+ offset_y = canvasRect.top - bodyRect.top;
250
+ mouseX = e.pageX - offset_x;
251
+ mouseY = e.pageY - offset_y;
252
+
253
+ function sqDistance(x, y) {
254
+ dx = mouseX - x;
255
+ dy = mouseY - y;
256
+ return dx*dx + dy*dy;
257
+ }
258
+
259
+ window.hover = false;
260
+ threshold = 100;
261
+ for (const annotation of annotations) {
262
+ rect = annotation.rect;
263
+ square_dists = [
264
+ sqDistance(rect.startX, rect.startY),
265
+ sqDistance(rect.startX + rect.w, rect.startY),
266
+ sqDistance(rect.startX, rect.startY + rect.h),
267
+ sqDistance(rect.startX + rect.w, rect.startY + rect.h),
268
+ ]
269
+
270
+ min_dist = Math.min(...square_dists);
271
+ if (min_dist > threshold) continue;
272
+
273
+ threshold = min_dist;
274
+ corner = square_dists.indexOf(min_dist);
275
+ window.hover = { corner, annotation }
276
+ }
277
+ }
278
+
279
+ create_annotation = () => {
280
+
281
+ new_annotation = {
282
+ rect: {
283
+ startX: mouseX,
284
+ startY: mouseY,
285
+ w: 0,
286
+ h: 0
287
+ },
288
+ color: "rgb(255, 0, 0)",
289
+ id: 1,
290
+ conf: 1
291
+ };
292
+ annotations.push(new_annotation);
293
+ window.dragging = {
294
+ annotation: new_annotation,
295
+ corner: window.BL
296
+ }
297
+
298
+ window.draw()
299
+ }
300
+
301
+ delete_annotation = (annotation) => {
302
+ window.annotations = window.annotations.filter(function (a) {
303
+ return a !== annotation;
304
+ });
305
+ window.dragging = false;
306
+ window.hover = false;
307
+ window.draw();
308
+ }
309
+
310
+ window.init();
311
+
312
+ }
annotation_handler.py ADDED
@@ -0,0 +1,69 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from dataloader import create_dataloader_aris
2
+ from aris import BEAM_WIDTH_DIR
3
+ import json
4
+ import cv2
5
+ import base64
6
+
7
+ VIDEO_HEIGHT = 700
8
+
9
+ def load_frames(video_path, preds_path):
10
+ """Load frames for annotation editing
11
+ """
12
+
13
+ dataloader, dataset = create_dataloader_aris(video_path, BEAM_WIDTH_DIR, None)
14
+
15
+ didson = dataset.didson
16
+
17
+ frames = didson.load_frames(start_frame=0)
18
+ frame_info, h, w = get_frame_info(frames, preds_path)
19
+
20
+ return frame_info
21
+
22
+ def get_frame_info(frames, preds_path):
23
+ """Get visualized video frames ready for output, given raw ARIS/DIDSON frames.
24
+ Warning: all frames in frames will be stored in memory - careful of OOM errors. Consider processing large files
25
+ in batches, such as in generate_video_batches()
26
+
27
+ Returns:
28
+ list(np.ndarray), height (int), width (int)
29
+ """
30
+ preds = json.load(open(preds_path, 'r'))
31
+ color_map = { fish['id'] : fish['color'] for fish in preds['fish'] }
32
+
33
+ frame_info = []
34
+ if len(frames):
35
+ # assumes all frames the same size
36
+ h, w = frames[0].shape
37
+
38
+ # enforce a standard size so that text/box thickness is consistent
39
+ scale_factor = VIDEO_HEIGHT / h
40
+ h = VIDEO_HEIGHT
41
+ w = int(scale_factor*w)
42
+
43
+ num_frames = min(len(frames), len(preds['frames']))
44
+
45
+ for i, frame_raw in enumerate(frames[:num_frames]):
46
+ image = cv2.resize(cv2.cvtColor(frame_raw, cv2.COLOR_GRAY2BGR), (w,h))
47
+ retval, buffer = cv2.imencode('.jpg', image)
48
+ jpg_as_text = base64.b64encode(buffer).decode("utf-8")
49
+
50
+ frame = {
51
+ 'annotations': [],
52
+ 'frame': jpg_as_text
53
+ }
54
+ for fish in preds['frames'][i]['fish']:
55
+ xmin, ymin, xmax, ymax = fish['bbox']
56
+ hexx = color_map[fish['fish_id']].lstrip('#')
57
+ frame['annotations'].append({
58
+ 'bbox': {
59
+ 'left': int(round(xmin * w)),
60
+ 'right': int(round(xmax * w)),
61
+ 'top': int(round(ymin * h)),
62
+ 'bottom': int(round(ymax * h)),
63
+ },
64
+ 'id': str(fish['fish_id']),
65
+ 'conf': fish['conf']
66
+ })
67
+ frame_info.append(frame)
68
+
69
+ return frame_info, h, w
app.py CHANGED
@@ -7,7 +7,12 @@ import numpy as np
7
  from aws_handler import upload_file
8
  from aris import create_metadata_table
9
  import cv2
 
 
 
 
10
 
 
11
  table_headers = ["TOTAL" , "FRAME_NUM", "DIR", "R", "THETA", "L", "TIME", "DATE", "SPECIES"]
12
  info_headers = [
13
  "TOTAL_TIME", "DATE", "START", "END",
@@ -26,6 +31,9 @@ css = """
26
  #marking_json label {
27
  height: calc(100% - 30px) !important;
28
  }
 
 
 
29
  """
30
  js_update_tabs = """
31
  async () => {
@@ -50,6 +58,7 @@ result = {}
50
 
51
 
52
 
 
53
  # Start function, called on file upload
54
  def on_input(file_list):
55
 
@@ -78,6 +87,7 @@ def handle_next(_, progress=gr.Progress()):
78
  set_progress = lambda pct, msg : progress(pct, desc="File " + str(state['index']+1) + "/" + str(state['total']) + ": " + msg)
79
  set_progress(0, "Starting...")
80
 
 
81
  file_info = state['files'][state['index']]
82
  file_name = file_info[0].split("/")[-1]
83
  bytes = file_info[1]
@@ -85,14 +95,20 @@ def handle_next(_, progress=gr.Progress()):
85
  print(dir_name)
86
  print(file_path)
87
 
 
88
  if not valid:
89
  return {
90
  result_handler: gr.update(),
91
  inference_handler: gr.update()
92
  }
93
 
 
94
  upload_file(file_path, "fishcounting", "webapp_uploads/" + file_name)
 
 
95
  metadata, json_filepath, zip_filepath, video_filepath, marking_filepath = predict_task(file_path, gradio_progress=set_progress)
 
 
96
  result["path_video"].append(video_filepath)
97
  result["path_zip"].append(zip_filepath)
98
  result["path_json"].append(json_filepath)
@@ -101,8 +117,11 @@ def handle_next(_, progress=gr.Progress()):
101
  result["fish_table"].append(fish_table)
102
  result["fish_info"].append(fish_info)
103
 
 
104
  state['index'] += 1
105
 
 
 
106
  return {
107
  result_handler: gr.update(value = str(state["index"])),
108
  inference_handler: gr.update()
@@ -115,16 +134,19 @@ def show_example_data():
115
  return gr.update(value=str(state["index"]))
116
 
117
  def show_data():
 
118
  i = state["index"] - 1
119
 
120
- # Only show result for up to max_tabs files
121
  if i >= max_tabs:
122
  return {
123
  zip_out: gr.update(value=result["path_zip"])
124
  }
125
 
 
126
  not_done = state['index'] < state['total']
127
 
 
128
  return {
129
  zip_out: gr.update(value=result["path_zip"]),
130
  tabs[i]['tab']: gr.update(),
@@ -137,7 +159,22 @@ def show_data():
137
 
138
 
139
 
140
- max_tabs = 10
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
141
  demo = gr.Blocks()
142
  with demo:
143
  with gr.Blocks(css=css) as inner_body:
@@ -150,6 +187,15 @@ with demo:
150
  <style id="tab_style"></style>
151
  """
152
  )
 
 
 
 
 
 
 
 
 
153
 
154
  #Input field for aris submission
155
  input = File(file_types=[".aris", ".ddf"], type="binary", label="ARIS Input", file_count="multiple")
 
7
  from aws_handler import upload_file
8
  from aris import create_metadata_table
9
  import cv2
10
+ import base64
11
+ from bbox import draggable_js
12
+ from annotation_handler import load_frames
13
+ import json
14
 
15
+ max_tabs = 10
16
  table_headers = ["TOTAL" , "FRAME_NUM", "DIR", "R", "THETA", "L", "TIME", "DATE", "SPECIES"]
17
  info_headers = [
18
  "TOTAL_TIME", "DATE", "START", "END",
 
31
  #marking_json label {
32
  height: calc(100% - 30px) !important;
33
  }
34
+ #canvas {
35
+ align-self: center;
36
+ }
37
  """
38
  js_update_tabs = """
39
  async () => {
 
58
 
59
 
60
 
61
+
62
  # Start function, called on file upload
63
  def on_input(file_list):
64
 
 
87
  set_progress = lambda pct, msg : progress(pct, desc="File " + str(state['index']+1) + "/" + str(state['total']) + ": " + msg)
88
  set_progress(0, "Starting...")
89
 
90
+ # Save file and create a new directory for result
91
  file_info = state['files'][state['index']]
92
  file_name = file_info[0].split("/")[-1]
93
  bytes = file_info[1]
 
95
  print(dir_name)
96
  print(file_path)
97
 
98
+ # Check that the file was valid
99
  if not valid:
100
  return {
101
  result_handler: gr.update(),
102
  inference_handler: gr.update()
103
  }
104
 
105
+ # Send uploaded file to AWS
106
  upload_file(file_path, "fishcounting", "webapp_uploads/" + file_name)
107
+
108
+ # Do inference
109
  metadata, json_filepath, zip_filepath, video_filepath, marking_filepath = predict_task(file_path, gradio_progress=set_progress)
110
+
111
+ # Store result for that file
112
  result["path_video"].append(video_filepath)
113
  result["path_zip"].append(zip_filepath)
114
  result["path_json"].append(json_filepath)
 
117
  result["fish_table"].append(fish_table)
118
  result["fish_info"].append(fish_info)
119
 
120
+ # Increase file index
121
  state['index'] += 1
122
 
123
+ # Send of update to result_handler to show new result
124
+ # Leave inference_handler update blank to avoid starting next inference until result is updated
125
  return {
126
  result_handler: gr.update(value = str(state["index"])),
127
  inference_handler: gr.update()
 
134
  return gr.update(value=str(state["index"]))
135
 
136
  def show_data():
137
+ # Get last index
138
  i = state["index"] - 1
139
 
140
+ # If index is larger than max_tabs, only add file to zip list
141
  if i >= max_tabs:
142
  return {
143
  zip_out: gr.update(value=result["path_zip"])
144
  }
145
 
146
+ # Check if inference is done
147
  not_done = state['index'] < state['total']
148
 
149
+ # Send update to UI, and to inference_handler to start next file inference
150
  return {
151
  zip_out: gr.update(value=result["path_zip"]),
152
  tabs[i]['tab']: gr.update(),
 
159
 
160
 
161
 
162
+ def init_annotation():
163
+
164
+ frame_info = load_frames("static/example/input_file.aris", "static/example/640 2018-07-09_115439_results.json")
165
+
166
+ html = "<div style='display:flex'>"
167
+ html += "<canvas id='canvas' style='width:50%' onmousedown='mouse_down(event)' onmousemove='mouse_move(event)' onmouseup='mouse_up()' onmouseleave='mouse_up()'></canvas>"
168
+ html += "<div id='annotation_display' style='width:50%'></div>"
169
+ html += "</div>"
170
+ html += "<p id='annotation_info' style='display:none'>" + json.dumps(frame_info) + "</p>"
171
+ html += "<img id='annotation_img' onload='draw()' style='display:none'></img>"
172
+ return html
173
+
174
+
175
+
176
+
177
+
178
  demo = gr.Blocks()
179
  with demo:
180
  with gr.Blocks(css=css) as inner_body:
 
187
  <style id="tab_style"></style>
188
  """
189
  )
190
+
191
+ annotation_editor = gr.HTML("""""")
192
+ with open('annotation_editor.js', 'r') as f:
193
+ js = f.read()
194
+ print(js)
195
+ annotation_editor.change(lambda x: gr.update(), None, annotation_editor, _js=js)
196
+ gr.Button("Edit Annotation").click(init_annotation, None, annotation_editor)
197
+
198
+
199
 
200
  #Input field for aris submission
201
  input = File(file_types=[".aris", ".ddf"], type="binary", label="ARIS Input", file_count="multiple")
bbox.py ADDED
@@ -0,0 +1,309 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ draggable_js = """
2
+ () => {
3
+ window.canvas = document.getElementById('canvas');
4
+ window.ctx = canvas.getContext('2d');
5
+ window.rects = [];
6
+ window.mouseX;
7
+ window.mouseY;
8
+ window.closeEnough = 10;
9
+ window.keys = {};
10
+ window.hover = false;
11
+
12
+ window.TL = 0;
13
+ window.TR = 1;
14
+ window.BL = 2;
15
+ window.BR = 3;
16
+
17
+
18
+ window.init = () => {
19
+ window.frames = JSON.parse(document.getElementById("annotation_info").innerHTML);
20
+ window.frame_index = 0;
21
+
22
+ document.addEventListener('keydown', keydown);
23
+ document.addEventListener('keyup', keyup);
24
+
25
+ show_frame();
26
+ }
27
+ window.prev_frame = () => {
28
+ window.frame_index = Math.max(window.frame_index - 1, 0);
29
+ show_frame();
30
+ }
31
+ window.next_frame = () => {
32
+ window.frame_index = Math.min(window.frame_index + 1, window.frames.length - 1);
33
+ show_frame();
34
+ }
35
+ window.show_frame = () => {
36
+ const frame_info = window.frames[window.frame_index];
37
+ const annotations = frame_info['annotations'];
38
+ const frame = frame_info['frame'];
39
+
40
+
41
+ window.annotations = [];
42
+ for (const annotation of annotations) {
43
+ const bbox = annotation['bbox']
44
+ window.annotations.push({
45
+ rect: {
46
+ startX: bbox.left,
47
+ startY: bbox.top,
48
+ w: bbox.right - bbox.left,
49
+ h: bbox.bottom - bbox.top
50
+ },
51
+ id: annotation.id,
52
+ conf: annotation.conf
53
+ })
54
+ }
55
+ console.log(window.annotations)
56
+ window.dragging = false;
57
+
58
+ document.getElementById("annotation_img").src = "data:image/png;base64," + frame;
59
+ }
60
+
61
+ window.draw = () => {
62
+ ctx = window.ctx;
63
+ canvas = window.canvas;
64
+ canvas.width = document.getElementById("annotation_img").width;
65
+ canvas.height = document.getElementById("annotation_img").height;
66
+ canvas.style = ""
67
+ annotations = window.annotations;
68
+
69
+ ctx.clearRect(0, 0, canvas.width, canvas.height);
70
+
71
+ ctx.drawImage(document.getElementById("annotation_img"), 0, 0);
72
+
73
+ for (const annotation of annotations) {
74
+ //ctx.globalAlpha = annotation.conf
75
+
76
+ const rect = annotation.rect;
77
+ ctx.strokeStyle = color_from_id(annotation.id);
78
+ ctx.strokeRect(rect.startX, rect.startY, rect.w, rect.h);
79
+
80
+ ctx.font = "15px Arial";
81
+ ctx.fillStyle = color_from_id(annotation.id);
82
+ ctx.textAlign = "right";
83
+ ctx.fillText(annotation.id, rect.startX + rect.w, rect.startY - 3);
84
+ }
85
+
86
+ if (hover && !dragging) {
87
+ annotation = hover.annotation;
88
+ rect = annotation.rect;
89
+ handles = [
90
+ [rect.startX, rect.startY],
91
+ [rect.startX + rect.w, rect.startY],
92
+ [rect.startX, rect.startY + rect.h],
93
+ [rect.startX + rect.w, rect.startY + rect.h]
94
+ ];
95
+
96
+ handle = handles[hover.corner];
97
+ ctx.fillStyle = color_from_id(annotation.id);
98
+ ctx.beginPath();
99
+ s = 6;
100
+ ctx.rect(handle[0]-s/2, handle[1]-s/2, s, s);
101
+ ctx.fill();
102
+ }
103
+
104
+ prettify_annotation();
105
+ }
106
+ color_from_id = (id) => {
107
+ return 'hsl(' + Math.floor((id*id)*57 % 360) + ', 100%, 50%)'
108
+ }
109
+
110
+ window.prettify_annotation = () => {
111
+ label_style = "style='width: calc(16% - 6px); display: inline-block; text-align:center; font-weight: bold;'";
112
+ input_style_base = "style='width: calc(16% - 6px); display: inline-block; padding: 5px;'";
113
+
114
+ input_style_selected = "style='width: calc(16% - 6px); display: inline-block; padding: 5px; border-width: 3px; border-color: orange; border-radius: 5px;'";
115
+
116
+ html = ""
117
+ for (const annotation of window.annotations) {
118
+ input_style = (window.hover && annotation === window.hover.annotation) ? input_style_selected : input_style_base;
119
+ html += `
120
+ <div style='margin: 0 0 20px 10px'>
121
+ <div>
122
+ <label ${label_style}>${"id"}</label>
123
+ <label ${label_style}>${"x"}</label>
124
+ <label ${label_style}>${"y"}</label>
125
+ <label ${label_style}>${"w"}</label>
126
+ <label ${label_style}>${"h"}</label>
127
+ <label ${label_style}>${"conf"}</label>
128
+ </div>
129
+ <div style='height:40px'>
130
+ <input ${input_style} type='text' value='${annotation.id}'>
131
+ <input ${input_style} type='text' value='${annotation.rect.startX}'>
132
+ <input ${input_style} type='text' value='${annotation.rect.startY}'>
133
+ <input ${input_style} type='text' value='${annotation.rect.w}'>
134
+ <input ${input_style} type='text' value='${annotation.rect.h}'>
135
+ <input ${input_style} type='text' value='${annotation.conf}'>
136
+ </div>
137
+ </div>`;
138
+ }
139
+ document.getElementById("annotation_display").innerHTML = html;
140
+ }
141
+
142
+ window.keyup = (e) => {
143
+ delete keys[e.key.toLowerCase()];
144
+ }
145
+ window.keydown = (e) => {
146
+ console.log(e.key.toLowerCase())
147
+ keys[e.key.toLowerCase()] = true;
148
+
149
+ // if pressing x, delete hovered annotation
150
+ if (keys['x'] && window.hover) delete_annotation(window.hover.annotation);
151
+ if (keys['arrowright'] || keys['d']) next_frame();
152
+ if (keys['arrowleft'] || keys['a']) prev_frame();
153
+ }
154
+
155
+ window.mouse_down = (e) => {
156
+
157
+ update_mouse(e);
158
+
159
+ // If holding 'n', create new annotation
160
+ if (keys['n']) return create_annotation();
161
+
162
+ // else, start dragging hovered object
163
+ window.dragging = window.hover;
164
+
165
+ console.log(dragging)
166
+
167
+ window.draw()
168
+ }
169
+
170
+ window.mouse_up = () => {
171
+ console.log("mouseUp")
172
+ window.dragging = false;
173
+ }
174
+
175
+ window.mouse_move = (e) => {
176
+ ctx = window.ctx;
177
+ canvas = window.canvas;
178
+ dragging = window.dragging;
179
+
180
+ update_mouse(e);
181
+
182
+ if (!dragging) return window.draw();
183
+
184
+ annotation = dragging.annotation;
185
+ rect = annotation.rect
186
+ corner = dragging.corner;
187
+
188
+ if (corner == window.TL) {
189
+ rect.w += rect.startX - mouseX;
190
+ rect.h += rect.startY - mouseY;
191
+ rect.startX = mouseX;
192
+ rect.startY = mouseY;
193
+ } else if (corner == window.TR) {
194
+ rect.w = mouseX - rect.startX;
195
+ rect.h += rect.startY - mouseY;
196
+ rect.startY = mouseY;
197
+ } else if (corner == window.BL) {
198
+ rect.w += rect.startX - mouseX;
199
+ rect.h = mouseY - rect.startY;
200
+ rect.startX = mouseX;
201
+ } else if (corner == window.BR) {
202
+ rect.w = mouseX - rect.startX;
203
+ rect.h = mouseY - rect.startY
204
+ }
205
+
206
+ rect.startX = Math.round(rect.startX);
207
+ rect.startY = Math.round(rect.startY);
208
+ rect.w = Math.round(rect.w);
209
+ rect.h = Math.round(rect.h);
210
+
211
+ // If w < 0 we have swapped sides, switch to horizontally opposite corner
212
+ if (rect.w < 0) {
213
+ rect.w = -rect.w;
214
+ if (corner == window.TL) corner = window.TR;
215
+ else if (corner == window.TR) corner = window.TL;
216
+ else if (corner == window.BL) corner = window.BR;
217
+ else if (corner == window.BR) corner = window.BL;
218
+ }
219
+ //If h < 0 we have swapped sides, switch to vertically opposite corner
220
+ if (rect.h < 0) {
221
+ rect.h = -rect.h;
222
+ if (corner == window.TL) corner = window.BL;
223
+ else if (corner == window.BL) corner = window.TL;
224
+ else if (corner == window.TR) corner = window.BR;
225
+ else if (corner == window.BR) corner = window.TR;
226
+ }
227
+ if (dragging.corner !== corner) console.log(dragging.corner + " -> " + corner);
228
+ dragging.corner = corner;
229
+
230
+ window.draw()
231
+ }
232
+
233
+ update_mouse = (e) => {
234
+ bodyRect = document.body.getBoundingClientRect();
235
+ canvasRect = e.target.getBoundingClientRect();
236
+ offset_x = canvasRect.left - bodyRect.left;
237
+ offset_y = canvasRect.top - bodyRect.top;
238
+ mouseX = e.pageX - offset_x;
239
+ mouseY = e.pageY - offset_y;
240
+
241
+ function sqDistance(x, y) {
242
+ dx = mouseX - x;
243
+ dy = mouseY - y;
244
+ return dx*dx + dy*dy;
245
+ }
246
+
247
+ window.hover = false;
248
+ threshold = 100;
249
+ for (const annotation of annotations) {
250
+ rect = annotation.rect;
251
+ square_dists = [
252
+ sqDistance(rect.startX, rect.startY),
253
+ sqDistance(rect.startX + rect.w, rect.startY),
254
+ sqDistance(rect.startX, rect.startY + rect.h),
255
+ sqDistance(rect.startX + rect.w, rect.startY + rect.h),
256
+ ]
257
+
258
+ min_dist = Math.min(...square_dists);
259
+ if (min_dist > threshold) continue;
260
+
261
+ threshold = min_dist;
262
+ corner = square_dists.indexOf(min_dist);
263
+ window.hover = { corner, annotation }
264
+ }
265
+ }
266
+
267
+ create_annotation = () => {
268
+
269
+ new_annotation = {
270
+ rect: {
271
+ startX: mouseX,
272
+ startY: mouseY,
273
+ w: 0,
274
+ h: 0
275
+ },
276
+ color: "rgb(255, 0, 0)",
277
+ id: 1,
278
+ conf: 1
279
+ };
280
+ annotations.push(new_annotation);
281
+ window.dragging = {
282
+ annotation: new_annotation,
283
+ corner: window.BL
284
+ }
285
+
286
+ window.draw()
287
+ }
288
+
289
+ delete_annotation = (annotation) => {
290
+ window.annotations = window.annotations.filter(function (a) {
291
+ return a !== annotation;
292
+ });
293
+ window.dragging = false;
294
+ window.hover = false;
295
+ window.draw();
296
+ }
297
+
298
+ window.init();
299
+
300
+ }
301
+ """
302
+
303
+
304
+
305
+
306
+
307
+
308
+
309
+
dataloader.py CHANGED
@@ -9,6 +9,7 @@ import struct
9
  from contextlib import contextmanager
10
  import torch
11
  from torch.utils.data import Dataset
 
12
 
13
  # assumes yolov5 on sys.path
14
  from lib.yolov5.utils.general import xyxy2xywh
@@ -69,11 +70,66 @@ def create_dataloader_frames(frames_path, batch_size=32, model_stride_max=32,
69
  hyp=None, cache=None, rect=True, rank=rank,
70
  workers=workers, pad=pad)[0]
71
 
 
 
 
 
 
 
 
 
 
 
72
  # # # # # #
73
  # End factory(ish) methods
74
  # # # # # #
75
 
76
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
77
  class ARISBatchedDataset(Dataset):
78
  def __init__(self, aris_filepath, beam_width_dir, annotations_file, batch_size, num_frames_bg_subtract=1000, disable_output=False,
79
  cache_bg_frames=False):
 
9
  from contextlib import contextmanager
10
  import torch
11
  from torch.utils.data import Dataset
12
+ import torchvision.transforms as T
13
 
14
  # assumes yolov5 on sys.path
15
  from lib.yolov5.utils.general import xyxy2xywh
 
70
  hyp=None, cache=None, rect=True, rank=rank,
71
  workers=workers, pad=pad)[0]
72
 
73
+ def create_dataloader_frames_only(frames_path, batch_size=32, img_size=896, workers=0):
74
+ """
75
+ Create a DataLoader for a directory of frames without labels.
76
+
77
+ Args:
78
+ model_stride_max: use model.stride.max()
79
+ """
80
+
81
+ return YOLOFrameDataset(frames_path, img_size=img_size, batch_size=batch_size)
82
+
83
  # # # # # #
84
  # End factory(ish) methods
85
  # # # # # #
86
 
87
 
88
+ import os
89
+ import pandas as pd
90
+ from torchvision.io import read_image
91
+ import re
92
+
93
+ class YOLOFrameDataset(Dataset):
94
+ def __init__(self, img_dir, img_size=896, batch_size=32):
95
+ self.img_dir = img_dir
96
+ self.img_size = img_size
97
+
98
+ self.files = os.listdir(img_dir)
99
+ self.files = list(filter(lambda f: f[-4:] == ".jpg", self.files))
100
+ self.files.sort(key=lambda f: int(re.sub('\D', '', f)))
101
+ print(self.files)
102
+
103
+ n = len(self.files)
104
+
105
+ self.batches = []
106
+ for i in range(0,n,batch_size):
107
+ self.batches.append((i, min(n, i+batch_size)))
108
+ print(self.batches)
109
+
110
+ def __len__(self):
111
+ return len(self.batches)
112
+
113
+ def __iter__(self):
114
+ for batch_idx in self.batches:
115
+
116
+ batch = []
117
+ shapes = []
118
+ for i in range(batch_idx[0], batch_idx[1]):
119
+ img_name = self.files[i]
120
+ img_path = os.path.join(self.img_dir, img_name)
121
+ img = read_image(img_path)
122
+
123
+ shapes.append([[img.shape[1], img.shape[2]], None])
124
+ ratio = self.img_size / max(img.shape[1], img.shape[2])
125
+ transform = T.Resize([int(ratio*img.shape[1]), int(ratio*img.shape[2])])
126
+ img = transform(img)
127
+ batch.append(img)
128
+
129
+ image = torch.stack(batch)
130
+
131
+ yield (image, None, shapes)
132
+
133
  class ARISBatchedDataset(Dataset):
134
  def __init__(self, aris_filepath, beam_width_dir, annotations_file, batch_size, num_frames_bg_subtract=1000, disable_output=False,
135
  cache_bg_frames=False):
inference.py CHANGED
@@ -5,23 +5,27 @@ from tqdm import tqdm
5
  from functools import partial
6
  import numpy as np
7
  import json
 
8
  from unittest.mock import patch
9
 
10
  # assumes yolov5 on sys.path
11
  from lib.yolov5.models.experimental import attempt_load
12
  from lib.yolov5.utils.torch_utils import select_device
13
- from lib.yolov5.utils.general import non_max_suppression
14
- from lib.yolov5.utils.general import clip_boxes, scale_boxes
 
 
15
 
16
  from lib.fish_eye.tracker import Tracker
17
 
 
18
  ### Configuration options
19
  WEIGHTS = 'models/v5m_896_300best.pt'
20
  # will need to configure these based on GPU hardware
21
  BATCH_SIZE = 32
22
 
23
- conf_thres = 0.3 # detection
24
- iou_thres = 0.3 # NMS IOU
25
  min_length = 0.3 # minimum fish length, in meters
26
  ###
27
 
@@ -44,7 +48,31 @@ def do_full_inference(dataloader, image_meter_width, image_meter_height, gp=None
44
 
45
  model, device = setup_model(weights)
46
 
47
- all_preds = do_detection(dataloader, model, device, gp=gp)
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
48
 
49
  results = do_tracking(all_preds, image_meter_width, image_meter_height, gp=gp)
50
 
@@ -63,7 +91,7 @@ def setup_model(weights_fp=WEIGHTS, imgsz=896, batch_size=32):
63
  half = device.type != 'cpu' # half precision only supported on CUDA
64
  if half:
65
  model.half()
66
- model.eval();
67
 
68
  # Create dataloader for batched inference
69
  img = torch.zeros((1, 3, imgsz, imgsz), device=device)
@@ -81,22 +109,49 @@ def do_detection(dataloader, model, device, gp=None, batch_size=BATCH_SIZE):
81
  """
82
 
83
  if (gp): gp(0, "Detection...")
84
-
85
- # keep predictions to feed them ordered into the Tracker
86
- # TODO: how to deal with large files?
87
- all_preds = {}
88
 
 
89
  # Run detection
90
  with tqdm(total=len(dataloader)*batch_size, desc="Running detection", ncols=0) as pbar:
91
  for batch_i, (img, _, shapes) in enumerate(dataloader):
 
92
  if gp: gp(batch_i / len(dataloader), pbar.__str__())
93
  img = img.to(device, non_blocking=True)
94
  img = img.half() if device.type != 'cpu' else img.float() # uint8 to fp16/32
95
  img /= 255.0 # 0 - 255 to 0.0 - 1.0
96
- nb, _, height, width = img.shape # batch size, channels, height, width
 
 
 
97
  # Run model & NMS
98
  with torch.no_grad():
99
  inf_out, _ = model(img, augment=False)
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
100
  output = non_max_suppression(inf_out, conf_thres=conf_thres, iou_thres=iou_thres)
101
 
102
  # Format results
@@ -115,6 +170,7 @@ def do_detection(dataloader, model, device, gp=None, batch_size=BATCH_SIZE):
115
  normed = list((map(do_norm, box[:, :4].tolist())))
116
  boxes = np.stack([ [*bb, conf] for bb, conf in zip(normed, confs) ])
117
  frame_num = (batch_i, si)
 
118
  all_preds[frame_num] = boxes
119
 
120
  pbar.update(1*batch_size)
@@ -132,7 +188,7 @@ def do_tracking(all_preds, image_meter_width, image_meter_height, gp=None):
132
  'image_meter_width': image_meter_width,
133
  'image_meter_height': image_meter_height
134
  }
135
- tracker = Tracker(clip_info, args={ 'max_age': 9, 'min_hits': 0, 'iou_threshold': 0.01}, min_hits=11)
136
 
137
  # Run tracking
138
  with tqdm(total=len(all_preds), desc="Running tracking", ncols=0) as pbar:
@@ -144,6 +200,7 @@ def do_tracking(all_preds, image_meter_width, image_meter_height, gp=None):
144
  else:
145
  tracker.update()
146
  pbar.update(1)
 
147
  json_data = tracker.finalize(min_length=min_length)
148
 
149
  return json_data
@@ -164,4 +221,89 @@ def json_dump_round_float(some_object, out_path, num_digits=4):
164
  return of(*args, **kwargs)
165
 
166
  with patch('json.encoder._make_iterencode', wraps=inner):
167
- return json.dump(some_object, open(out_path, 'w'), indent=2)
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
5
  from functools import partial
6
  import numpy as np
7
  import json
8
+ import time
9
  from unittest.mock import patch
10
 
11
  # assumes yolov5 on sys.path
12
  from lib.yolov5.models.experimental import attempt_load
13
  from lib.yolov5.utils.torch_utils import select_device
14
+ from lib.yolov5.utils.general import clip_boxes, scale_boxes, xywh2xyxy
15
+ from lib.yolov5.utils.metrics import box_iou
16
+ import torch
17
+ import torchvision
18
 
19
  from lib.fish_eye.tracker import Tracker
20
 
21
+
22
  ### Configuration options
23
  WEIGHTS = 'models/v5m_896_300best.pt'
24
  # will need to configure these based on GPU hardware
25
  BATCH_SIZE = 32
26
 
27
+ conf_thres = 0.001 # detection
28
+ iou_thres = 0.1 # NMS IOU
29
  min_length = 0.3 # minimum fish length, in meters
30
  ###
31
 
 
48
 
49
  model, device = setup_model(weights)
50
 
51
+ load = False
52
+ save = False
53
+
54
+ if load:
55
+ with open('static/example/inference_output.json', 'r') as f:
56
+ json_object = json.load(f)
57
+ inference = json_object['inference']
58
+ width = json_object['width']
59
+ height = json_object['height']
60
+ else:
61
+ inference, width, height = do_detection(dataloader, model, device, gp=gp)
62
+
63
+ if save:
64
+ json_object = {
65
+ 'inference': inference,
66
+ 'width': width,
67
+ 'height': height
68
+ }
69
+ json_text = json.dumps(json_object, indent=4)
70
+ with open('static/example/inference_output.json', 'w') as f:
71
+ f.write(json_text)
72
+ return
73
+
74
+
75
+ all_preds = do_suppression(dataloader, inference, width, height, gp=gp)
76
 
77
  results = do_tracking(all_preds, image_meter_width, image_meter_height, gp=gp)
78
 
 
91
  half = device.type != 'cpu' # half precision only supported on CUDA
92
  if half:
93
  model.half()
94
+ model.eval()
95
 
96
  # Create dataloader for batched inference
97
  img = torch.zeros((1, 3, imgsz, imgsz), device=device)
 
109
  """
110
 
111
  if (gp): gp(0, "Detection...")
 
 
 
 
112
 
113
+ inference = []
114
  # Run detection
115
  with tqdm(total=len(dataloader)*batch_size, desc="Running detection", ncols=0) as pbar:
116
  for batch_i, (img, _, shapes) in enumerate(dataloader):
117
+
118
  if gp: gp(batch_i / len(dataloader), pbar.__str__())
119
  img = img.to(device, non_blocking=True)
120
  img = img.half() if device.type != 'cpu' else img.float() # uint8 to fp16/32
121
  img /= 255.0 # 0 - 255 to 0.0 - 1.0
122
+ size = tuple(img.shape)
123
+ nb, _, height, width = size # batch size, channels, height, width
124
+
125
+ print(nb, _, height, width)
126
  # Run model & NMS
127
  with torch.no_grad():
128
  inf_out, _ = model(img, augment=False)
129
+
130
+ inference.append(inf_out)
131
+ pbar.update(1*batch_size)
132
+
133
+ return inference, width, height
134
+
135
+ def do_suppression(dataloader, inference, width, height, gp=None, batch_size=BATCH_SIZE):
136
+ """
137
+ Args:
138
+ frames_dir: a directory containing frames to be evaluated
139
+ image_meter_width: the width of each image, in meters (used for fish length calculation)
140
+ gp: a callback function which takes as input 1 parameter, (int) percent complete
141
+ prep_for_marking: re-index fish for manual marking output
142
+ """
143
+
144
+ if (gp): gp(0, "Suppression...")
145
+ # keep predictions to feed them ordered into the Tracker
146
+ # TODO: how to deal with large files?
147
+ all_preds = {}
148
+ with tqdm(total=len(dataloader)*batch_size, desc="Running suppression", ncols=0) as pbar:
149
+ for batch_i, (img, _, shapes) in enumerate(dataloader):
150
+
151
+ if gp: gp(batch_i / len(dataloader), pbar.__str__())
152
+
153
+ inf_out = inference[batch_i]
154
+ with torch.no_grad():
155
  output = non_max_suppression(inf_out, conf_thres=conf_thres, iou_thres=iou_thres)
156
 
157
  # Format results
 
170
  normed = list((map(do_norm, box[:, :4].tolist())))
171
  boxes = np.stack([ [*bb, conf] for bb, conf in zip(normed, confs) ])
172
  frame_num = (batch_i, si)
173
+ print(frame_num)
174
  all_preds[frame_num] = boxes
175
 
176
  pbar.update(1*batch_size)
 
188
  'image_meter_width': image_meter_width,
189
  'image_meter_height': image_meter_height
190
  }
191
+ tracker = Tracker(clip_info, args={ 'max_age': 20, 'min_hits': 0, 'iou_threshold': 0.01}, min_hits=11)
192
 
193
  # Run tracking
194
  with tqdm(total=len(all_preds), desc="Running tracking", ncols=0) as pbar:
 
200
  else:
201
  tracker.update()
202
  pbar.update(1)
203
+
204
  json_data = tracker.finalize(min_length=min_length)
205
 
206
  return json_data
 
221
  return of(*args, **kwargs)
222
 
223
  with patch('json.encoder._make_iterencode', wraps=inner):
224
+ return json.dump(some_object, open(out_path, 'w'), indent=2)
225
+
226
+
227
+
228
+ def non_max_suppression(
229
+ prediction,
230
+ conf_thres=0.25,
231
+ iou_thres=0.45,
232
+ max_det=300,
233
+ ):
234
+ """Non-Maximum Suppression (NMS) on inference results to reject overlapping detections
235
+
236
+ Returns:
237
+ list of detections, on (n,6) tensor per image [xyxy, conf, cls]
238
+ """
239
+
240
+ # Checks
241
+ assert 0 <= conf_thres <= 1, f'Invalid Confidence threshold {conf_thres}, valid values are between 0.0 and 1.0'
242
+ assert 0 <= iou_thres <= 1, f'Invalid IoU {iou_thres}, valid values are between 0.0 and 1.0'
243
+ if isinstance(prediction, (list, tuple)): # YOLOv5 model in validation model, output = (inference_out, loss_out)
244
+ prediction = prediction[0] # select only inference output
245
+
246
+ device = prediction.device
247
+ mps = 'mps' in device.type # Apple MPS
248
+ if mps: # MPS not fully supported yet, convert tensors to CPU before NMS
249
+ prediction = prediction.cpu()
250
+ bs = prediction.shape[0] # batch size
251
+ xc = prediction[..., 4] > conf_thres # candidates
252
+
253
+ # Settings
254
+ # min_wh = 2 # (pixels) minimum box width and height
255
+ max_nms = 30000 # maximum number of boxes into torchvision.ops.nms()
256
+ redundant = True # require redundant detections
257
+ merge = False # use merge-NMS
258
+
259
+ output = [torch.zeros((0, 6), device=prediction.device)] * bs
260
+ for xi, x in enumerate(prediction): # image index, image inference
261
+
262
+
263
+ # Keep boxes that pass confidence threshold
264
+ x = x[xc[xi]] # confidence
265
+
266
+ # If none remain process next image
267
+ if not x.shape[0]:
268
+ continue
269
+
270
+ # Compute conf
271
+ x[:, 5:] *= x[:, 4:5] # conf = obj_conf * cls_conf
272
+
273
+
274
+ # Box/Mask
275
+ box = xywh2xyxy(x[:, :4]) # center_x, center_y, width, height) to (x1, y1, x2, y2)
276
+ mask = x[:, 6:] # zero columns if no masks
277
+
278
+ # Detections matrix nx6 (xyxy, conf, cls)
279
+ conf, j = x[:, 5:6].max(1, keepdim=True)
280
+ x = torch.cat((box, conf, j.float(), mask), 1)[conf.view(-1) > conf_thres]
281
+
282
+
283
+ # Check shape
284
+ n = x.shape[0] # number of boxes
285
+ if not n: # no boxes
286
+ continue
287
+ x = x[x[:, 4].argsort(descending=True)[:max_nms]] # sort by confidence and remove excess boxes
288
+
289
+ # Batched NMS
290
+ boxes = x[:, :4] # boxes (offset by class), scores
291
+ scores = x[:, 4]
292
+ i = torchvision.ops.nms(boxes, scores, iou_thres) # NMS
293
+
294
+ i = i[:max_det] # limit detections
295
+ if merge and (1 < n < 3E3): # Merge NMS (boxes merged using weighted mean)
296
+ # update boxes as boxes(i,4) = weights(i,n) * boxes(n,4)
297
+ iou = box_iou(boxes[i], boxes) > iou_thres # iou matrix
298
+ weights = iou * scores[None] # box weights
299
+ x[i, :4] = torch.mm(weights, x[:, :4]).float() / weights.sum(1, keepdim=True) # merged boxes
300
+ if redundant:
301
+ i = i[iou.sum(1) > 1] # require redundancy
302
+
303
+ output[xi] = x[i]
304
+ if mps:
305
+ output[xi] = output[xi].to(device)
306
+
307
+ logging = False
308
+
309
+ return output
lib/fish_eye/sort.py CHANGED
@@ -214,7 +214,7 @@ class Sort(object):
214
  trks = np.ma.compress_rows(np.ma.masked_invalid(trks))
215
  for t in reversed(to_del):
216
  self.trackers.pop(t)
217
- matched, unmatched_dets, unmatched_trks = associate_detections_to_trackers(dets,trks, self.iou_threshold)
218
 
219
  # update matched trackers with assigned detections
220
  for m in matched:
 
214
  trks = np.ma.compress_rows(np.ma.masked_invalid(trks))
215
  for t in reversed(to_del):
216
  self.trackers.pop(t)
217
+ matched, unmatched_dets, unmatched_trks = associate_detections_to_trackers(dets, trks, self.iou_threshold)
218
 
219
  # update matched trackers with assigned detections
220
  for m in matched:
lib/fish_eye/tracker.py CHANGED
@@ -20,12 +20,20 @@ class Tracker:
20
  def update(self, dets=np.empty((0, 5))):
21
  new_frame_entries = []
22
  for track in self.algorithm.update(dets):
 
 
 
 
 
 
 
23
  self.fish_ids[int(track[4])] += 1
24
  new_frame_entries.append({
25
- 'fish_id': int(track[4]),
26
- 'bbox': list(track[:4]),
27
- 'visible': 1,
28
- 'human_labeled': 0
 
29
  })
30
  new_frame_entries = sorted(new_frame_entries, key=lambda k: k['fish_id'])
31
 
@@ -38,7 +46,7 @@ class Tracker:
38
 
39
  def finalize(self, output_path=None, min_length=-1.0): # vert_margin=0.0
40
  json_data = deepcopy(self.json_data)
41
-
42
  # map (valid) fish IDs to 0, 1, 2, ...
43
  fish_id_map = {}
44
  for fish_id, count in self.fish_ids.items():
@@ -95,6 +103,8 @@ class Tracker:
95
 
96
  json_data['fish'].append(fish_entry)
97
 
 
 
98
  # filter 'fish' field by fish length
99
  json_data = Fish_Length.add_lengths(json_data)
100
  invalid_ids = []
 
20
  def update(self, dets=np.empty((0, 5))):
21
  new_frame_entries = []
22
  for track in self.algorithm.update(dets):
23
+ conf = 0
24
+ min_score = 1000000
25
+ for det in dets:
26
+ score = sum(abs(det[0:4] - track[0:4]))
27
+ if (score < min_score):
28
+ min_score = score
29
+ conf = det[4]
30
  self.fish_ids[int(track[4])] += 1
31
  new_frame_entries.append({
32
+ 'fish_id': int(track[4]),
33
+ 'bbox': list(track[:4]),
34
+ 'visible': 1,
35
+ 'human_labeled': 0,
36
+ 'conf': conf
37
  })
38
  new_frame_entries = sorted(new_frame_entries, key=lambda k: k['fish_id'])
39
 
 
46
 
47
  def finalize(self, output_path=None, min_length=-1.0): # vert_margin=0.0
48
  json_data = deepcopy(self.json_data)
49
+
50
  # map (valid) fish IDs to 0, 1, 2, ...
51
  fish_id_map = {}
52
  for fish_id, count in self.fish_ids.items():
 
103
 
104
  json_data['fish'].append(fish_entry)
105
 
106
+
107
+
108
  # filter 'fish' field by fish length
109
  json_data = Fish_Length.add_lengths(json_data)
110
  invalid_ids = []
main.py CHANGED
@@ -48,7 +48,7 @@ def predict_task(filepath, weights=WEIGHTS, gradio_progress=None):
48
  frame_rate = dataset.didson.info['framerate']
49
 
50
  # run detection + tracking
51
- results = do_full_inference(dataloader, image_meter_width, image_meter_height, gp=gradio_progress, weights=WEIGHTS)
52
 
53
  # re-index results if desired - this should be done before writing the file
54
  results = prep_for_mm(results)
 
48
  frame_rate = dataset.didson.info['framerate']
49
 
50
  # run detection + tracking
51
+ results = do_full_inference(dataloader, image_meter_width, image_meter_height, gp=gradio_progress, weights=weights)
52
 
53
  # re-index results if desired - this should be done before writing the file
54
  results = prep_for_mm(results)
scripts/{infer.py → infer_aris.py} RENAMED
File without changes
scripts/infer_frames.py ADDED
@@ -0,0 +1,108 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import project_path
2
+ import argparse
3
+ from datetime import datetime
4
+ import torch
5
+ import os
6
+ from dataloader import create_dataloader_frames_only
7
+ from aris import create_manual_marking, create_metadata_dictionary, prep_for_mm
8
+ from inference import setup_model, do_suppression, do_detection, do_tracking, json_dump_round_float
9
+ from visualizer import generate_video_batches
10
+ import json
11
+ from tracker import Tracker
12
+
13
+
14
+ def main(args):
15
+ """
16
+ Main processing task to be run in gradio
17
+ - Writes aris frames to dirname(filepath)/frames/{i}.jpg
18
+ - Writes json output to dirname(filepath)/{filename}_results.json
19
+ - Writes manual marking to dirname(filepath)/{filename}_marking.txt
20
+ - Writes video output to dirname(filepath)/{filename}_results.mp4
21
+ - Zips all results to dirname(filepath)/{filename}_results.zip
22
+ Args:
23
+ filepath (str): path to aris file
24
+
25
+ TODO: Separate into subtasks in different queues; have a GPU-only queue.
26
+ """
27
+ print("In task...")
28
+ print("Cuda available in task?", torch.cuda.is_available())
29
+
30
+ gradio_progress = lambda p, m: print(m, p)
31
+
32
+ dirname = args.frames
33
+ print(dirname)
34
+ filename = os.path.basename(dirname.split("/")[-1])
35
+ print(filename)
36
+ results_filepath = os.path.join(dirname, f"{filename}_results.json")
37
+ os.makedirs(dirname, exist_ok=True)
38
+
39
+ image_meter_width = -1
40
+ image_meter_height = -1
41
+ with open(args.metadata, 'r') as f:
42
+ json_object = json.loads(f.read())
43
+ print(len(json_object))
44
+ for seq in json_object:
45
+ if seq['clip_name'] == filename:
46
+ print(seq)
47
+ image_meter_width = seq['x_meter_stop'] - seq['x_meter_start']
48
+ image_meter_height = seq['y_meter_stop'] - seq['y_meter_start']
49
+
50
+ if (image_meter_height == -1):
51
+ print("No metadata found for file " + filename)
52
+ return
53
+
54
+ # create dataloader
55
+ print("Initializing Dataloader...")
56
+ dataloader = create_dataloader_frames_only(dirname)
57
+
58
+ # extract aris/didson info. didson does not yet have pixel-meter info
59
+ # TODO: load from metadata
60
+
61
+ # run detection + tracking
62
+ model, device = setup_model(args.weights)
63
+
64
+ inference, width, height = do_detection(dataloader, model, device, gp=gradio_progress)
65
+
66
+ print(len(inference[0]), len(inference[1]))
67
+ all_preds = do_suppression(dataloader, inference, width, height, gp=gradio_progress)
68
+
69
+ print(len(all_preds.keys()))
70
+ results = do_tracking(all_preds, image_meter_width, image_meter_height, gp=gradio_progress)
71
+
72
+ print(results)
73
+ print(str(width), str(height))
74
+ mot_rows = []
75
+ for frame in results['frames']:
76
+ for fish in frame['fish']:
77
+ bbox = fish['bbox']
78
+ row = []
79
+ row.append(str(frame['frame_num']))
80
+ row.append(str(fish['fish_id'] + 1))
81
+ row.append(str(int(bbox[0]*width)))
82
+ row.append(str(int(bbox[1]*height)))
83
+ row.append(str(int(bbox[2]*width)))
84
+ row.append(str(int(bbox[3]*height)))
85
+ row.append("-1")
86
+ row.append("-1")
87
+ row.append("-1")
88
+ row.append("-1")
89
+ mot_rows.append(",".join(row))
90
+
91
+ mot_text = "\n".join(mot_rows)
92
+ print(mot_text)
93
+
94
+ with open(os.path.join(dirname, "gt.txt"), 'w') as f:
95
+ f.write(mot_text)
96
+
97
+ return
98
+
99
+ def argument_parser():
100
+ parser = argparse.ArgumentParser()
101
+ parser.add_argument("--frames", required=True, help="Path to frame directory. Required.")
102
+ parser.add_argument("--metadata", required=True, help="Path to metadata file. Required.")
103
+ parser.add_argument("--weights", default='models/v5m_896_300best.pt', help="Path to saved YOLOv5 weights. Default: ../models/v5m_896_300best.pt")
104
+ return parser
105
+
106
+ if __name__ == "__main__":
107
+ args = argument_parser().parse_args()
108
+ main(args)
state_handler.py CHANGED
@@ -1,4 +1,5 @@
1
  from aris import create_metadata_table
 
2
 
3
  example_metadata = {
4
  "FILE_NAME": "static/example_metadata/fisheye",
@@ -372,4 +373,77 @@ def reset_state(result, state):
372
  # Reset State
373
  state['files'] = []
374
  state['index'] = 0
375
- state['total'] = 0
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
  from aris import create_metadata_table
2
+ import json
3
 
4
  example_metadata = {
5
  "FILE_NAME": "static/example_metadata/fisheye",
 
373
  # Reset State
374
  state['files'] = []
375
  state['index'] = 0
376
+ state['total'] = 0
377
+
378
+
379
+ def convert_json_to_vatic(json_path, vatic_path="static/example/input_file_vatic.xml"):
380
+
381
+ xml = '<?xml version="1.0" encoding="utf-8"?>\n';
382
+ xml += '<annotation>\n';
383
+ xml += ' <folder>not available</folder>\n';
384
+ xml += ' <filename>not available</filename>\n';
385
+ xml += ' <source>\n';
386
+ xml += ' <type>video</type>\n';
387
+ xml += ' <sourceImage>vatic frames</sourceImage>\n';
388
+ xml += ' <sourceAnnotation>vatic</sourceAnnotation>\n';
389
+ xml += ' </source>\n';
390
+
391
+ with open(json_path, 'r') as f:
392
+ annotation = json.loads(f.read())
393
+
394
+ frames = annotation['frames']
395
+ nbr_frames = len(frames)
396
+
397
+ fishes = {}
398
+ for frame in annotation['frames']:
399
+ frame_nbr = str(frame['frame_num'])
400
+ for fish in frame['fish']:
401
+ track_id = fish['fish_id']
402
+ if (not track_id in fishes): fishes[track_id] = {'id': track_id, 'frames': []}
403
+
404
+ fishes[track_id]['frames'].append({
405
+ 'frame': frame_nbr,
406
+ 'x_min': str(round(fish['bbox'][0]*522)),
407
+ 'y_min': str(round(fish['bbox'][1]*700)),
408
+ 'x_max': str(round(fish['bbox'][2]*522)),
409
+ 'y_max': str(round(fish['bbox'][3]*700)),
410
+ 'visible': str(fish['visible']),
411
+ 'truth': "1"
412
+ })
413
+
414
+ for fish_id in fishes:
415
+ fish = fishes[fish_id]
416
+
417
+ xml += ' <object>\n';
418
+ xml += ' <name>fish</name>\n';
419
+ xml += ' <moving>true</moving>\n';
420
+ xml += ' <action/>\n';
421
+ xml += ' <verified>0</verified>\n';
422
+ xml += ' <id>' + str(fish['id']) + '</id>\n';
423
+ xml += ' <createdFrame>0</createdFrame>\n';
424
+ xml += ' <startFrame>0</startFrame>\n';
425
+ xml += ' <endFrame>' + str(nbr_frames - 1 ) + '</endFrame>\n';
426
+
427
+ for frame in fish['frames']:
428
+ xml += ' ';
429
+ xml += '<polygon>';
430
+ xml += '<t>' + str(frame['frame']) + '</t>';
431
+ xml += '<pt><x>' + frame['x_min'] + '</x><y>' + frame['y_min'] + '</y><l>' + frame['truth'] + '</l></pt>';
432
+ xml += '<pt><x>' + frame['x_min'] + '</x><y>' + frame['y_max'] + '</y><l>' + frame['truth'] + '</l></pt>';
433
+ xml += '<pt><x>' + frame['x_max'] + '</x><y>' + frame['y_max'] + '</y><l>' + frame['truth'] + '</l></pt>';
434
+ xml += '<pt><x>' + frame['x_max'] + '</x><y>' + frame['y_min'] + '</y><l>' + frame['truth'] + '</l></pt>';
435
+ xml += '</polygon>\n';
436
+
437
+ xml += ' </object>\n';
438
+
439
+ xml += '</annotation>\n';
440
+
441
+ if vatic_path:
442
+ with open(vatic_path, 'w') as f:
443
+ f.write(xml)
444
+ return xml
445
+
446
+
447
+ convert_json_to_vatic("static/example/input_file_results.json")
448
+
449
+
static/example/2018-06-03-JD154_LeftFar_Stratum1_Set1_LO_2018-06-03_020004_3240_3840.cache ADDED
Binary file (11.1 kB). View file
 
static/example/640 2018-07-09_115439_results 2.json ADDED
The diff for this file is too large to render. See raw diff
 
static/example/640 2018-07-09_115439_results.json ADDED
The diff for this file is too large to render. See raw diff
 
static/example/input_conf.json ADDED
The diff for this file is too large to render. See raw diff
 
static/example/input_conf_low.json ADDED
The diff for this file is too large to render. See raw diff
 
static/example/input_file_vatic.txt ADDED
@@ -0,0 +1,1540 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ 1 0.4488 0.2187 0.5344 0.2285 0 1 1 0 fish
2
+ 5 0.2177 0.3069 0.2896 0.3192 0 1 1 0 fish
3
+ 1 0.4461 0.2146 0.5432 0.2252 1 1 1 0 fish
4
+ 5 0.2227 0.3048 0.3114 0.3179 1 1 1 0 fish
5
+ 1 0.4419 0.2109 0.5398 0.2226 2 1 1 0 fish
6
+ 5 0.2262 0.3056 0.32 0.318 2 1 1 0 fish
7
+ 1 0.4414 0.2094 0.5409 0.2226 3 1 1 0 fish
8
+ 5 0.2265 0.3061 0.323 0.3182 3 1 1 0 fish
9
+ 1 0.4418 0.2114 0.5404 0.2252 4 1 1 0 fish
10
+ 5 0.2274 0.305 0.329 0.3179 4 1 1 0 fish
11
+ 1 0.4422 0.2142 0.5408 0.2288 5 1 1 0 fish
12
+ 5 0.2242 0.3041 0.3261 0.3176 5 1 1 0 fish
13
+ 1 0.4469 0.2149 0.5507 0.2318 6 1 1 0 fish
14
+ 5 0.2219 0.3036 0.3253 0.3182 6 1 1 0 fish
15
+ 1 0.445 0.2214 0.5362 0.2368 7 1 1 0 fish
16
+ 5 0.2201 0.3038 0.3247 0.3193 7 1 1 0 fish
17
+ 1 0.4459 0.2278 0.5296 0.2411 8 1 1 0 fish
18
+ 5 0.2196 0.3043 0.3244 0.3204 8 1 1 0 fish
19
+ 1 0.4539 0.231 0.5381 0.2432 9 1 1 0 fish
20
+ 5 0.2197 0.3067 0.3227 0.3217 9 1 1 0 fish
21
+ 1 0.4557 0.2343 0.5429 0.2457 10 1 1 0 fish
22
+ 5 0.2218 0.3081 0.3243 0.3221 10 1 1 0 fish
23
+ 1 0.4557 0.2365 0.5425 0.2473 11 1 1 0 fish
24
+ 5 0.2203 0.3089 0.323 0.3218 11 1 1 0 fish
25
+ 1 0.4607 0.2372 0.5475 0.2479 12 1 1 0 fish
26
+ 5 0.2211 0.3081 0.3238 0.3201 12 1 1 0 fish
27
+ 1 0.4599 0.2376 0.5474 0.2481 13 1 1 0 fish
28
+ 5 0.2188 0.3069 0.3178 0.3185 13 1 1 0 fish
29
+ 1 0.4611 0.2366 0.5479 0.2474 14 1 1 0 fish
30
+ 5 0.2188 0.3047 0.3154 0.3166 14 1 1 0 fish
31
+ 1 0.4609 0.2353 0.5471 0.2465 15 1 1 0 fish
32
+ 5 0.2221 0.3019 0.321 0.3151 15 1 1 0 fish
33
+ 1 0.4611 0.2334 0.546 0.2443 16 1 1 0 fish
34
+ 5 0.2218 0.2997 0.323 0.3142 16 1 1 0 fish
35
+ 1 0.4655 0.2313 0.5493 0.2418 17 1 1 0 fish
36
+ 5 0.22 0.2995 0.3197 0.3142 17 1 1 0 fish
37
+ 1 0.4667 0.2295 0.5518 0.2398 18 1 1 0 fish
38
+ 5 0.2205 0.3004 0.3199 0.3143 18 1 1 0 fish
39
+ 1 0.4677 0.2282 0.5534 0.2384 19 1 1 0 fish
40
+ 5 0.222 0.3012 0.3216 0.3143 19 1 1 0 fish
41
+ 1 0.4653 0.2264 0.5513 0.2363 20 1 1 0 fish
42
+ 5 0.2229 0.3006 0.3229 0.314 20 1 1 0 fish
43
+ 1 0.4661 0.2252 0.5534 0.2348 21 1 1 0 fish
44
+ 2 0.186 0.2617 0.2635 0.2726 21 1 1 0 fish
45
+ 5 0.2236 0.2992 0.3271 0.3141 21 1 1 0 fish
46
+ 1 0.4645 0.2251 0.5528 0.2344 22 1 1 0 fish
47
+ 2 0.1946 0.2605 0.2961 0.2726 22 1 1 0 fish
48
+ 5 0.2251 0.2983 0.3288 0.3143 22 1 1 0 fish
49
+ 1 0.4626 0.2254 0.5514 0.2346 23 1 1 0 fish
50
+ 2 0.1928 0.2599 0.3 0.2717 23 1 1 0 fish
51
+ 5 0.229 0.2977 0.3323 0.3147 23 1 1 0 fish
52
+ 1 0.4574 0.2262 0.5404 0.2351 24 1 1 0 fish
53
+ 2 0.182 0.2602 0.2729 0.2711 24 1 1 0 fish
54
+ 5 0.2232 0.3009 0.3199 0.3169 24 1 1 0 fish
55
+ 1 0.462 0.2268 0.5431 0.2355 25 1 1 0 fish
56
+ 2 0.1855 0.2594 0.285 0.2713 25 1 1 0 fish
57
+ 5 0.2269 0.3024 0.3236 0.317 25 1 1 0 fish
58
+ 1 0.4675 0.2271 0.5489 0.2359 26 1 1 0 fish
59
+ 2 0.191 0.2586 0.2966 0.2716 26 1 1 0 fish
60
+ 5 0.2275 0.3036 0.3256 0.3171 26 1 1 0 fish
61
+ 1 0.4677 0.2274 0.5484 0.236 27 1 1 0 fish
62
+ 5 0.225 0.3038 0.324 0.3163 27 1 1 0 fish
63
+ 1 0.4655 0.2263 0.5462 0.2355 28 1 1 0 fish
64
+ 2 0.1841 0.263 0.275 0.2744 28 1 1 0 fish
65
+ 5 0.2252 0.3031 0.3229 0.3151 28 1 1 0 fish
66
+ 1 0.4643 0.2243 0.5429 0.2335 29 1 1 0 fish
67
+ 2 0.1908 0.263 0.2904 0.275 29 1 1 0 fish
68
+ 5 0.223 0.3013 0.3224 0.3141 29 1 1 0 fish
69
+ 1 0.4649 0.222 0.5473 0.2313 30 1 1 0 fish
70
+ 2 0.1859 0.2638 0.2784 0.2756 30 1 1 0 fish
71
+ 5 0.2241 0.2997 0.3242 0.3131 30 1 1 0 fish
72
+ 1 0.4635 0.2202 0.5486 0.2297 31 1 1 0 fish
73
+ 2 0.1835 0.2638 0.2759 0.2757 31 1 1 0 fish
74
+ 5 0.2228 0.2991 0.3229 0.3128 31 1 1 0 fish
75
+ 1 0.4587 0.2198 0.5454 0.2299 32 1 1 0 fish
76
+ 5 0.2232 0.2977 0.3234 0.3116 32 1 1 0 fish
77
+ 1 0.4579 0.2208 0.5419 0.2313 33 1 1 0 fish
78
+ 2 0.1898 0.2611 0.2887 0.2733 33 1 1 0 fish
79
+ 5 0.2232 0.2963 0.3219 0.3103 33 1 1 0 fish
80
+ 1 0.4549 0.2223 0.5384 0.233 34 1 1 0 fish
81
+ 2 0.1957 0.2593 0.2983 0.2714 34 1 1 0 fish
82
+ 5 0.2198 0.2947 0.3165 0.3096 34 1 1 0 fish
83
+ 1 0.4577 0.2239 0.5419 0.2348 35 1 1 0 fish
84
+ 2 0.2022 0.2588 0.2992 0.2702 35 1 1 0 fish
85
+ 5 0.2172 0.2939 0.3132 0.3099 35 1 1 0 fish
86
+ 1 0.4577 0.2263 0.5426 0.2367 36 1 1 0 fish
87
+ 5 0.2156 0.2941 0.3112 0.3109 36 1 1 0 fish
88
+ 1 0.4565 0.228 0.543 0.2382 37 1 1 0 fish
89
+ 5 0.2167 0.2939 0.3116 0.3108 37 1 1 0 fish
90
+ 1 0.4555 0.2293 0.544 0.2399 38 1 1 0 fish
91
+ 5 0.2195 0.2941 0.315 0.311 38 1 1 0 fish
92
+ 1 0.4534 0.2311 0.5433 0.2417 39 1 1 0 fish
93
+ 5 0.2149 0.2941 0.3117 0.3108 39 1 1 0 fish
94
+ 1 0.4551 0.2337 0.5412 0.2437 40 1 1 0 fish
95
+ 5 0.2125 0.2936 0.3089 0.3102 40 1 1 0 fish
96
+ 1 0.4555 0.2351 0.5425 0.245 41 1 1 0 fish
97
+ 5 0.2095 0.2934 0.3049 0.3095 41 1 1 0 fish
98
+ 1 0.4547 0.2358 0.5422 0.2454 42 1 1 0 fish
99
+ 5 0.2084 0.2922 0.3054 0.3091 42 1 1 0 fish
100
+ 1 0.4546 0.2368 0.5435 0.2463 43 1 1 0 fish
101
+ 5 0.2084 0.2914 0.3039 0.3096 43 1 1 0 fish
102
+ 1 0.4567 0.238 0.5454 0.2473 44 1 1 0 fish
103
+ 5 0.2082 0.2904 0.3018 0.3103 44 1 1 0 fish
104
+ 1 0.4573 0.2379 0.5442 0.2472 45 1 1 0 fish
105
+ 5 0.2036 0.2958 0.292 0.3135 45 1 1 0 fish
106
+ 1 0.46 0.2377 0.5456 0.2474 46 1 1 0 fish
107
+ 5 0.209 0.2961 0.2954 0.3134 46 1 1 0 fish
108
+ 1 0.461 0.2368 0.5459 0.2471 47 1 1 0 fish
109
+ 5 0.2101 0.2979 0.2962 0.3137 47 1 1 0 fish
110
+ 1 0.4596 0.2366 0.5457 0.2471 48 1 1 0 fish
111
+ 5 0.2162 0.2981 0.305 0.3124 48 1 1 0 fish
112
+ 1 0.4601 0.2373 0.5449 0.2475 49 1 1 0 fish
113
+ 5 0.2136 0.2968 0.3041 0.3104 49 1 1 0 fish
114
+ 1 0.4646 0.2375 0.5501 0.2475 50 1 1 0 fish
115
+ 5 0.2121 0.2945 0.3061 0.3086 50 1 1 0 fish
116
+ 1 0.4653 0.2366 0.5523 0.2467 51 1 1 0 fish
117
+ 5 0.2099 0.2941 0.3046 0.3083 51 1 1 0 fish
118
+ 1 0.468 0.2353 0.5556 0.2461 52 1 1 0 fish
119
+ 5 0.2099 0.2937 0.3051 0.3079 52 1 1 0 fish
120
+ 1 0.4652 0.2364 0.5485 0.2465 53 1 1 0 fish
121
+ 5 0.2074 0.2932 0.3042 0.3077 53 1 1 0 fish
122
+ 1 0.4665 0.2361 0.5497 0.2459 54 1 1 0 fish
123
+ 5 0.2114 0.2919 0.3085 0.3067 54 1 1 0 fish
124
+ 1 0.4683 0.2347 0.5546 0.2447 55 1 1 0 fish
125
+ 5 0.2138 0.2896 0.3123 0.3063 55 1 1 0 fish
126
+ 1 0.4692 0.2333 0.5551 0.2431 56 1 1 0 fish
127
+ 5 0.2105 0.2916 0.3056 0.3087 56 1 1 0 fish
128
+ 1 0.4724 0.2319 0.5598 0.2418 57 1 1 0 fish
129
+ 5 0.2165 0.2925 0.309 0.3103 57 1 1 0 fish
130
+ 1 0.4721 0.2303 0.5614 0.2407 58 1 1 0 fish
131
+ 5 0.2269 0.2949 0.3229 0.313 58 1 1 0 fish
132
+ 1 0.4709 0.2285 0.5595 0.2386 59 1 1 0 fish
133
+ 5 0.2315 0.2961 0.3277 0.3145 59 1 1 0 fish
134
+ 1 0.4711 0.2271 0.5603 0.2371 60 1 1 0 fish
135
+ 5 0.2346 0.2952 0.3302 0.314 60 1 1 0 fish
136
+ 1 0.4704 0.2265 0.5584 0.2364 61 1 1 0 fish
137
+ 5 0.2349 0.2947 0.331 0.3131 61 1 1 0 fish
138
+ 1 0.4679 0.2269 0.5538 0.2365 62 1 1 0 fish
139
+ 5 0.2352 0.2957 0.3328 0.3131 62 1 1 0 fish
140
+ 1 0.4689 0.227 0.555 0.2364 63 1 1 0 fish
141
+ 5 0.2348 0.296 0.3339 0.3133 63 1 1 0 fish
142
+ 1 0.4696 0.2266 0.5566 0.236 64 1 1 0 fish
143
+ 5 0.2334 0.2956 0.3344 0.3133 64 1 1 0 fish
144
+ 1 0.4698 0.2259 0.5561 0.2351 65 1 1 0 fish
145
+ 5 0.2329 0.2958 0.3345 0.3135 65 1 1 0 fish
146
+ 1 0.4683 0.2252 0.556 0.2343 66 1 1 0 fish
147
+ 5 0.232 0.2972 0.3347 0.3143 66 1 1 0 fish
148
+ 1 0.4689 0.2243 0.5567 0.2334 67 1 1 0 fish
149
+ 5 0.2305 0.297 0.3305 0.313 67 1 1 0 fish
150
+ 1 0.4683 0.2242 0.5553 0.2331 68 1 1 0 fish
151
+ 5 0.2376 0.2947 0.3363 0.3089 68 1 1 0 fish
152
+ 1 0.4645 0.2239 0.5519 0.2328 69 1 1 0 fish
153
+ 5 0.2327 0.2917 0.3315 0.3052 69 1 1 0 fish
154
+ 1 0.4649 0.2233 0.5532 0.2322 70 1 1 0 fish
155
+ 5 0.2247 0.2902 0.3239 0.3033 70 1 1 0 fish
156
+ 1 0.465 0.2228 0.5545 0.2317 71 1 1 0 fish
157
+ 5 0.223 0.2884 0.3226 0.3019 71 1 1 0 fish
158
+ 1 0.4642 0.2223 0.5543 0.2312 72 1 1 0 fish
159
+ 5 0.2157 0.2847 0.32 0.3008 72 1 1 0 fish
160
+ 1 0.4621 0.2218 0.5526 0.2307 73 1 1 0 fish
161
+ 5 0.2144 0.2846 0.3103 0.3013 73 1 1 0 fish
162
+ 1 0.4601 0.221 0.5524 0.2299 74 1 1 0 fish
163
+ 5 0.2071 0.2901 0.2979 0.3051 74 1 1 0 fish
164
+ 1 0.4583 0.2201 0.5489 0.2292 75 1 1 0 fish
165
+ 5 0.2144 0.291 0.3036 0.3063 75 1 1 0 fish
166
+ 1 0.4559 0.2194 0.5478 0.229 76 1 1 0 fish
167
+ 5 0.2224 0.2919 0.313 0.3072 76 1 1 0 fish
168
+ 1 0.455 0.2195 0.5464 0.2293 77 1 1 0 fish
169
+ 5 0.2268 0.2924 0.3183 0.3079 77 1 1 0 fish
170
+ 1 0.4558 0.2201 0.5471 0.2301 78 1 1 0 fish
171
+ 5 0.2266 0.2921 0.3178 0.308 78 1 1 0 fish
172
+ 1 0.4535 0.2217 0.541 0.2312 79 1 1 0 fish
173
+ 5 0.22 0.2948 0.3076 0.3098 79 1 1 0 fish
174
+ 1 0.4539 0.2227 0.542 0.2321 80 1 1 0 fish
175
+ 3 0.1917 0.2515 0.2939 0.2632 80 1 1 0 fish
176
+ 5 0.2213 0.2954 0.306 0.3101 80 1 1 0 fish
177
+ 1 0.4554 0.2237 0.5436 0.2329 81 1 1 0 fish
178
+ 3 0.1765 0.2508 0.2643 0.2626 81 1 1 0 fish
179
+ 5 0.2192 0.2967 0.3078 0.3109 81 1 1 0 fish
180
+ 1 0.4543 0.2244 0.5436 0.2336 82 1 1 0 fish
181
+ 3 0.1835 0.2496 0.2856 0.2627 82 1 1 0 fish
182
+ 5 0.2239 0.2961 0.3181 0.3104 82 1 1 0 fish
183
+ 1 0.4525 0.225 0.542 0.2341 83 1 1 0 fish
184
+ 3 0.1834 0.2471 0.296 0.2626 83 1 1 0 fish
185
+ 5 0.2244 0.2959 0.3238 0.3101 83 1 1 0 fish
186
+ 1 0.452 0.2255 0.5413 0.2347 84 1 1 0 fish
187
+ 3 0.174 0.2448 0.3006 0.2635 84 1 1 0 fish
188
+ 5 0.215 0.2966 0.3131 0.3107 84 1 1 0 fish
189
+ 1 0.4526 0.227 0.5398 0.2362 85 1 1 0 fish
190
+ 3 0.1756 0.2438 0.3022 0.2638 85 1 1 0 fish
191
+ 5 0.2131 0.2955 0.3117 0.3102 85 1 1 0 fish
192
+ 1 0.4522 0.2281 0.5409 0.2372 86 1 1 0 fish
193
+ 3 0.1718 0.2436 0.2999 0.2652 86 1 1 0 fish
194
+ 1 0.451 0.2285 0.5398 0.2377 87 1 1 0 fish
195
+ 3 0.1736 0.2436 0.2979 0.2661 87 1 1 0 fish
196
+ 5 0.207 0.2947 0.3063 0.3108 87 1 1 0 fish
197
+ 1 0.4476 0.2283 0.5358 0.2375 88 1 1 0 fish
198
+ 3 0.1759 0.2435 0.2966 0.2669 88 1 1 0 fish
199
+ 5 0.2085 0.2934 0.3073 0.3104 88 1 1 0 fish
200
+ 1 0.4506 0.2282 0.538 0.2374 89 1 1 0 fish
201
+ 3 0.1732 0.2452 0.2924 0.2689 89 1 1 0 fish
202
+ 5 0.2115 0.2926 0.3116 0.3101 89 1 1 0 fish
203
+ 1 0.4523 0.2279 0.5413 0.2372 90 1 1 0 fish
204
+ 3 0.179 0.245 0.2972 0.2689 90 1 1 0 fish
205
+ 5 0.2098 0.2935 0.3059 0.3107 90 1 1 0 fish
206
+ 1 0.4494 0.2272 0.5369 0.2365 91 1 1 0 fish
207
+ 3 0.1782 0.2462 0.2963 0.2697 91 1 1 0 fish
208
+ 5 0.2098 0.2924 0.3068 0.3104 91 1 1 0 fish
209
+ 1 0.447 0.2261 0.5347 0.2357 92 1 1 0 fish
210
+ 3 0.1799 0.2488 0.296 0.2703 92 1 1 0 fish
211
+ 5 0.2112 0.2906 0.3087 0.3096 92 1 1 0 fish
212
+ 1 0.4486 0.2245 0.535 0.2339 93 1 1 0 fish
213
+ 3 0.1788 0.2509 0.2945 0.2703 93 1 1 0 fish
214
+ 5 0.2126 0.2894 0.3071 0.3093 93 1 1 0 fish
215
+ 1 0.4493 0.2228 0.5354 0.232 94 1 1 0 fish
216
+ 3 0.1791 0.2521 0.2952 0.2695 94 1 1 0 fish
217
+ 5 0.2053 0.2942 0.2936 0.3121 94 1 1 0 fish
218
+ 1 0.4515 0.2213 0.5394 0.2304 95 1 1 0 fish
219
+ 3 0.1797 0.2523 0.2968 0.2689 95 1 1 0 fish
220
+ 5 0.2154 0.2929 0.3023 0.3107 95 1 1 0 fish
221
+ 1 0.4522 0.2203 0.54 0.2295 96 1 1 0 fish
222
+ 3 0.1794 0.2524 0.2969 0.2684 96 1 1 0 fish
223
+ 5 0.2161 0.294 0.3017 0.3113 96 1 1 0 fish
224
+ 1 0.4511 0.2196 0.5409 0.229 97 1 1 0 fish
225
+ 3 0.1823 0.2524 0.2974 0.268 97 1 1 0 fish
226
+ 5 0.219 0.2952 0.3047 0.3118 97 1 1 0 fish
227
+ 1 0.4511 0.2191 0.5428 0.2291 98 1 1 0 fish
228
+ 3 0.1823 0.2526 0.2967 0.2683 98 1 1 0 fish
229
+ 5 0.2227 0.2965 0.3116 0.3128 98 1 1 0 fish
230
+ 1 0.4502 0.2192 0.5413 0.2295 99 1 1 0 fish
231
+ 3 0.1807 0.2523 0.2955 0.2686 99 1 1 0 fish
232
+ 5 0.2231 0.2969 0.3172 0.3132 99 1 1 0 fish
233
+ 1 0.4506 0.2195 0.5425 0.2305 100 1 1 0 fish
234
+ 3 0.1809 0.2524 0.2956 0.2694 100 1 1 0 fish
235
+ 5 0.2198 0.2976 0.3151 0.3138 100 1 1 0 fish
236
+ 1 0.4476 0.2204 0.5347 0.2317 101 1 1 0 fish
237
+ 3 0.1712 0.2569 0.2739 0.2724 101 1 1 0 fish
238
+ 5 0.2164 0.2988 0.3103 0.3147 101 1 1 0 fish
239
+ 1 0.4495 0.2215 0.5342 0.2328 102 1 1 0 fish
240
+ 5 0.2175 0.2997 0.3092 0.3152 102 1 1 0 fish
241
+ 1 0.4509 0.2228 0.5357 0.2338 103 1 1 0 fish
242
+ 5 0.2106 0.3024 0.2998 0.3166 103 1 1 0 fish
243
+ 1 0.4542 0.2238 0.5395 0.2343 104 1 1 0 fish
244
+ 5 0.215 0.303 0.3067 0.316 104 1 1 0 fish
245
+ 1 0.4538 0.2244 0.5419 0.2345 105 1 1 0 fish
246
+ 3 0.1805 0.2586 0.2899 0.2725 105 1 1 0 fish
247
+ 5 0.2222 0.303 0.3158 0.315 105 1 1 0 fish
248
+ 1 0.4537 0.2247 0.5431 0.2345 106 1 1 0 fish
249
+ 5 0.2158 0.3018 0.3081 0.3136 106 1 1 0 fish
250
+ 1 0.454 0.2247 0.5441 0.2343 107 1 1 0 fish
251
+ 3 0.1722 0.2596 0.2716 0.2725 107 1 1 0 fish
252
+ 5 0.2158 0.2998 0.3088 0.3114 107 1 1 0 fish
253
+ 1 0.4524 0.2247 0.5428 0.234 108 1 1 0 fish
254
+ 3 0.1782 0.2586 0.2816 0.2715 108 1 1 0 fish
255
+ 5 0.2245 0.2967 0.3218 0.3089 108 1 1 0 fish
256
+ 1 0.4526 0.2244 0.5436 0.2336 109 1 1 0 fish
257
+ 3 0.1658 0.2593 0.261 0.2717 109 1 1 0 fish
258
+ 5 0.223 0.2958 0.3196 0.3081 109 1 1 0 fish
259
+ 1 0.4512 0.2241 0.5433 0.2333 110 1 1 0 fish
260
+ 5 0.2235 0.2954 0.3229 0.3084 110 1 1 0 fish
261
+ 1 0.4508 0.2239 0.5435 0.2331 111 1 1 0 fish
262
+ 5 0.2182 0.2962 0.3194 0.3095 111 1 1 0 fish
263
+ 1 0.4511 0.2238 0.544 0.2328 112 1 1 0 fish
264
+ 3 0.1813 0.2567 0.2801 0.2694 112 1 1 0 fish
265
+ 5 0.219 0.2961 0.3202 0.31 112 1 1 0 fish
266
+ 1 0.4504 0.2231 0.5438 0.2322 113 1 1 0 fish
267
+ 5 0.2184 0.2968 0.3175 0.3113 113 1 1 0 fish
268
+ 1 0.4501 0.2227 0.5422 0.2319 114 1 1 0 fish
269
+ 3 0.1818 0.2511 0.294 0.2678 114 1 1 0 fish
270
+ 5 0.2202 0.2974 0.3181 0.3124 114 1 1 0 fish
271
+ 1 0.4503 0.2223 0.5424 0.2317 115 1 1 0 fish
272
+ 3 0.1794 0.2515 0.2914 0.2687 115 1 1 0 fish
273
+ 5 0.2197 0.2992 0.3132 0.3141 115 1 1 0 fish
274
+ 1 0.4491 0.2216 0.5405 0.2316 116 1 1 0 fish
275
+ 3 0.1771 0.2536 0.2861 0.2698 116 1 1 0 fish
276
+ 5 0.2219 0.3019 0.3169 0.3161 116 1 1 0 fish
277
+ 1 0.4503 0.2223 0.5388 0.2325 117 1 1 0 fish
278
+ 3 0.1797 0.2541 0.2907 0.2699 117 1 1 0 fish
279
+ 5 0.2243 0.3034 0.3237 0.3179 117 1 1 0 fish
280
+ 1 0.4529 0.2226 0.5395 0.2329 118 1 1 0 fish
281
+ 3 0.1741 0.2565 0.2746 0.2709 118 1 1 0 fish
282
+ 5 0.2239 0.3052 0.3249 0.319 118 1 1 0 fish
283
+ 1 0.4509 0.2231 0.539 0.2336 119 1 1 0 fish
284
+ 3 0.1859 0.2567 0.2871 0.27 119 1 1 0 fish
285
+ 4 0.7705 0.2773 0.8359 0.2871 119 1 1 0 fish
286
+ 5 0.2235 0.3054 0.3219 0.3186 119 1 1 0 fish
287
+ 1 0.4477 0.2243 0.5352 0.2349 120 1 1 0 fish
288
+ 3 0.1885 0.2574 0.2911 0.2702 120 1 1 0 fish
289
+ 4 0.7726 0.2765 0.8381 0.2865 120 1 1 0 fish
290
+ 5 0.2258 0.3036 0.3238 0.3171 120 1 1 0 fish
291
+ 1 0.4485 0.2256 0.535 0.2361 121 1 1 0 fish
292
+ 5 0.231 0.3001 0.3303 0.3144 121 1 1 0 fish
293
+ 1 0.4491 0.2259 0.5375 0.2361 122 1 1 0 fish
294
+ 3 0.1931 0.258 0.2953 0.2698 122 1 1 0 fish
295
+ 5 0.2344 0.2973 0.3322 0.312 122 1 1 0 fish
296
+ 1 0.4467 0.2253 0.535 0.2356 123 1 1 0 fish
297
+ 4 0.7527 0.2735 0.8306 0.2857 123 1 1 0 fish
298
+ 5 0.2347 0.297 0.3332 0.312 123 1 1 0 fish
299
+ 1 0.4479 0.2228 0.5358 0.2336 124 1 1 0 fish
300
+ 4 0.7502 0.2708 0.8352 0.2854 124 1 1 0 fish
301
+ 5 0.2366 0.2952 0.3333 0.311 124 1 1 0 fish
302
+ 1 0.4449 0.2202 0.5338 0.2308 125 1 1 0 fish
303
+ 4 0.7498 0.2669 0.8344 0.2816 125 1 1 0 fish
304
+ 5 0.2365 0.2965 0.3341 0.3118 125 1 1 0 fish
305
+ 1 0.4456 0.2174 0.5321 0.2281 126 1 1 0 fish
306
+ 4 0.7639 0.2642 0.8453 0.2783 126 1 1 0 fish
307
+ 5 0.2387 0.297 0.3369 0.3125 126 1 1 0 fish
308
+ 1 0.4474 0.2158 0.5362 0.2278 127 1 1 0 fish
309
+ 4 0.7534 0.2608 0.8386 0.2738 127 1 1 0 fish
310
+ 5 0.24 0.2961 0.3375 0.3122 127 1 1 0 fish
311
+ 1 0.4442 0.2175 0.5286 0.2296 128 1 1 0 fish
312
+ 4 0.7508 0.26 0.8362 0.2724 128 1 1 0 fish
313
+ 5 0.2379 0.2978 0.3349 0.3129 128 1 1 0 fish
314
+ 1 0.4428 0.2195 0.5286 0.2313 129 1 1 0 fish
315
+ 4 0.7515 0.2602 0.8366 0.2726 129 1 1 0 fish
316
+ 5 0.2367 0.2975 0.3355 0.3129 129 1 1 0 fish
317
+ 1 0.4433 0.221 0.5314 0.2321 130 1 1 0 fish
318
+ 4 0.75 0.2617 0.834 0.2736 130 1 1 0 fish
319
+ 5 0.2427 0.2965 0.3394 0.3124 130 1 1 0 fish
320
+ 1 0.4455 0.2213 0.5339 0.2324 131 1 1 0 fish
321
+ 4 0.7516 0.2634 0.8352 0.2748 131 1 1 0 fish
322
+ 5 0.2422 0.2968 0.339 0.3131 131 1 1 0 fish
323
+ 1 0.4497 0.2214 0.5374 0.2333 132 1 1 0 fish
324
+ 4 0.7656 0.2642 0.8427 0.2749 132 1 1 0 fish
325
+ 5 0.2419 0.2999 0.3381 0.3151 132 1 1 0 fish
326
+ 1 0.4523 0.2223 0.5413 0.2355 133 1 1 0 fish
327
+ 5 0.2382 0.3022 0.3357 0.3171 133 1 1 0 fish
328
+ 1 0.4464 0.2271 0.5274 0.2407 134 1 1 0 fish
329
+ 5 0.236 0.3052 0.3353 0.3191 134 1 1 0 fish
330
+ 1 0.4468 0.2334 0.5238 0.2466 135 1 1 0 fish
331
+ 5 0.2357 0.3075 0.3346 0.3203 135 1 1 0 fish
332
+ 6 0.1893 0.2485 0.2917 0.2658 135 1 1 0 fish
333
+ 1 0.4504 0.238 0.5278 0.2511 136 1 1 0 fish
334
+ 5 0.2333 0.3081 0.3319 0.3204 136 1 1 0 fish
335
+ 6 0.1878 0.2465 0.2909 0.2659 136 1 1 0 fish
336
+ 1 0.455 0.2418 0.5352 0.2544 137 1 1 0 fish
337
+ 5 0.2318 0.3068 0.3313 0.3191 137 1 1 0 fish
338
+ 6 0.1872 0.2462 0.2916 0.2667 137 1 1 0 fish
339
+ 1 0.4545 0.2442 0.5383 0.2564 138 1 1 0 fish
340
+ 5 0.2319 0.3074 0.3308 0.3194 138 1 1 0 fish
341
+ 6 0.1881 0.2477 0.2932 0.2676 138 1 1 0 fish
342
+ 1 0.4535 0.2451 0.5406 0.2569 139 1 1 0 fish
343
+ 5 0.2299 0.3056 0.3272 0.3175 139 1 1 0 fish
344
+ 6 0.1891 0.249 0.2973 0.2673 139 1 1 0 fish
345
+ 1 0.4531 0.2454 0.542 0.2572 140 1 1 0 fish
346
+ 5 0.2325 0.304 0.3292 0.3157 140 1 1 0 fish
347
+ 1 0.4526 0.2456 0.5414 0.2574 141 1 1 0 fish
348
+ 5 0.2339 0.3034 0.3284 0.3146 141 1 1 0 fish
349
+ 1 0.452 0.2463 0.5393 0.2576 142 1 1 0 fish
350
+ 5 0.2338 0.3034 0.3291 0.3142 142 1 1 0 fish
351
+ 6 0.1782 0.2489 0.2943 0.2679 142 1 1 0 fish
352
+ 1 0.4515 0.2469 0.5393 0.2575 143 1 1 0 fish
353
+ 5 0.2309 0.3034 0.327 0.3141 143 1 1 0 fish
354
+ 6 0.1803 0.2496 0.2954 0.2684 143 1 1 0 fish
355
+ 1 0.4508 0.2469 0.5395 0.2572 144 1 1 0 fish
356
+ 5 0.2301 0.3033 0.3274 0.3138 144 1 1 0 fish
357
+ 6 0.1858 0.2515 0.2942 0.2685 144 1 1 0 fish
358
+ 1 0.4489 0.2464 0.5358 0.2568 145 1 1 0 fish
359
+ 5 0.2276 0.3023 0.3259 0.3129 145 1 1 0 fish
360
+ 6 0.1877 0.2523 0.295 0.2685 145 1 1 0 fish
361
+ 1 0.4501 0.2451 0.5386 0.2565 146 1 1 0 fish
362
+ 5 0.2317 0.3004 0.327 0.3114 146 1 1 0 fish
363
+ 6 0.1776 0.2539 0.2851 0.2688 146 1 1 0 fish
364
+ 1 0.4529 0.2415 0.5374 0.2527 147 1 1 0 fish
365
+ 5 0.2279 0.2991 0.3265 0.3113 147 1 1 0 fish
366
+ 6 0.1812 0.2536 0.2911 0.2683 147 1 1 0 fish
367
+ 1 0.4593 0.2383 0.5426 0.2497 148 1 1 0 fish
368
+ 5 0.2251 0.299 0.3237 0.3113 148 1 1 0 fish
369
+ 6 0.1821 0.2538 0.2897 0.2676 148 1 1 0 fish
370
+ 1 0.4633 0.2338 0.5447 0.2452 149 1 1 0 fish
371
+ 5 0.2201 0.2993 0.3197 0.3111 149 1 1 0 fish
372
+ 6 0.1805 0.2537 0.2914 0.2675 149 1 1 0 fish
373
+ 1 0.467 0.2299 0.5507 0.2413 150 1 1 0 fish
374
+ 5 0.2153 0.2986 0.3163 0.3101 150 1 1 0 fish
375
+ 6 0.1806 0.2534 0.2904 0.2668 150 1 1 0 fish
376
+ 1 0.4688 0.2266 0.5524 0.2377 151 1 1 0 fish
377
+ 5 0.2101 0.297 0.3078 0.3086 151 1 1 0 fish
378
+ 6 0.1813 0.2532 0.2893 0.2664 151 1 1 0 fish
379
+ 1 0.47 0.2242 0.5552 0.2356 152 1 1 0 fish
380
+ 5 0.2022 0.2956 0.2965 0.3075 152 1 1 0 fish
381
+ 6 0.1728 0.2536 0.2838 0.2672 152 1 1 0 fish
382
+ 1 0.4683 0.2213 0.5508 0.232 153 1 1 0 fish
383
+ 5 0.2046 0.2938 0.3008 0.3065 153 1 1 0 fish
384
+ 6 0.1701 0.2529 0.284 0.2672 153 1 1 0 fish
385
+ 1 0.4727 0.2191 0.5545 0.2297 154 1 1 0 fish
386
+ 5 0.2059 0.2928 0.3033 0.3068 154 1 1 0 fish
387
+ 6 0.171 0.2518 0.2862 0.2673 154 1 1 0 fish
388
+ 1 0.4772 0.2175 0.5602 0.2285 155 1 1 0 fish
389
+ 5 0.2065 0.2917 0.3046 0.3076 155 1 1 0 fish
390
+ 1 0.4731 0.2181 0.5561 0.2286 156 1 1 0 fish
391
+ 5 0.2056 0.2924 0.3031 0.3099 156 1 1 0 fish
392
+ 1 0.4749 0.2182 0.5577 0.2284 157 1 1 0 fish
393
+ 5 0.2057 0.2949 0.2995 0.3119 157 1 1 0 fish
394
+ 1 0.4729 0.217 0.5563 0.2271 158 1 1 0 fish
395
+ 5 0.2068 0.2967 0.3007 0.3127 158 1 1 0 fish
396
+ 6 0.1702 0.2541 0.2883 0.2706 158 1 1 0 fish
397
+ 1 0.4717 0.2149 0.5564 0.2255 159 1 1 0 fish
398
+ 5 0.2033 0.2983 0.2984 0.3126 159 1 1 0 fish
399
+ 1 0.4699 0.2137 0.5558 0.2247 160 1 1 0 fish
400
+ 5 0.204 0.2985 0.3008 0.3115 160 1 1 0 fish
401
+ 1 0.4711 0.2146 0.5566 0.2253 161 1 1 0 fish
402
+ 5 0.2017 0.2971 0.2998 0.3099 161 1 1 0 fish
403
+ 1 0.4746 0.2154 0.5601 0.2262 162 1 1 0 fish
404
+ 5 0.201 0.2948 0.298 0.3077 162 1 1 0 fish
405
+ 1 0.4739 0.2152 0.5597 0.2269 163 1 1 0 fish
406
+ 5 0.1954 0.2916 0.2914 0.3058 163 1 1 0 fish
407
+ 1 0.4717 0.2151 0.5597 0.228 164 1 1 0 fish
408
+ 5 0.195 0.2883 0.2926 0.3045 164 1 1 0 fish
409
+ 1 0.4702 0.2171 0.5558 0.2297 165 1 1 0 fish
410
+ 5 0.1983 0.2856 0.2976 0.304 165 1 1 0 fish
411
+ 1 0.4704 0.2178 0.5564 0.2297 166 1 1 0 fish
412
+ 5 0.1999 0.2865 0.2962 0.3059 166 1 1 0 fish
413
+ 1 0.47 0.218 0.5564 0.2292 167 1 1 0 fish
414
+ 5 0.2033 0.2864 0.299 0.3075 167 1 1 0 fish
415
+ 6 0.1641 0.2554 0.2575 0.2685 167 1 1 0 fish
416
+ 1 0.4698 0.2165 0.5584 0.2275 168 1 1 0 fish
417
+ 5 0.1983 0.2927 0.2887 0.3117 168 1 1 0 fish
418
+ 6 0.1631 0.2566 0.2501 0.2678 168 1 1 0 fish
419
+ 1 0.4699 0.2146 0.5591 0.2254 169 1 1 0 fish
420
+ 5 0.2019 0.2953 0.2921 0.3126 169 1 1 0 fish
421
+ 1 0.4679 0.2119 0.5567 0.2229 170 1 1 0 fish
422
+ 5 0.2067 0.2961 0.3011 0.3117 170 1 1 0 fish
423
+ 1 0.4679 0.2098 0.56 0.2211 171 1 1 0 fish
424
+ 5 0.2128 0.2954 0.3064 0.3097 171 1 1 0 fish
425
+ 6 0.1683 0.2548 0.2482 0.2657 171 1 1 0 fish
426
+ 1 0.4638 0.2088 0.557 0.2205 172 1 1 0 fish
427
+ 5 0.2088 0.2945 0.3021 0.3086 172 1 1 0 fish
428
+ 1 0.4657 0.2091 0.557 0.2209 173 1 1 0 fish
429
+ 5 0.2083 0.2936 0.3037 0.3078 173 1 1 0 fish
430
+ 6 0.1828 0.2518 0.2758 0.2648 173 1 1 0 fish
431
+ 1 0.4664 0.2094 0.5591 0.2217 174 1 1 0 fish
432
+ 5 0.2083 0.2927 0.3056 0.3073 174 1 1 0 fish
433
+ 6 0.1834 0.2516 0.283 0.2662 174 1 1 0 fish
434
+ 1 0.4699 0.2101 0.5609 0.2227 175 1 1 0 fish
435
+ 5 0.2082 0.2928 0.3061 0.3077 175 1 1 0 fish
436
+ 6 0.18 0.2525 0.2798 0.2675 175 1 1 0 fish
437
+ 1 0.4639 0.21 0.5562 0.2231 176 1 1 0 fish
438
+ 5 0.2066 0.2932 0.3034 0.3082 176 1 1 0 fish
439
+ 6 0.179 0.2533 0.2807 0.2683 176 1 1 0 fish
440
+ 1 0.4608 0.2124 0.5523 0.2243 177 1 1 0 fish
441
+ 5 0.2129 0.2924 0.3098 0.3076 177 1 1 0 fish
442
+ 6 0.1809 0.2551 0.2824 0.269 177 1 1 0 fish
443
+ 1 0.4615 0.2137 0.5546 0.2249 178 1 1 0 fish
444
+ 5 0.2118 0.293 0.3051 0.3079 178 1 1 0 fish
445
+ 1 0.4622 0.2143 0.5552 0.2251 179 1 1 0 fish
446
+ 5 0.2088 0.2946 0.3035 0.3084 179 1 1 0 fish
447
+ 6 0.1823 0.2557 0.2876 0.2685 179 1 1 0 fish
448
+ 1 0.4607 0.2147 0.5548 0.2252 180 1 1 0 fish
449
+ 5 0.2093 0.295 0.3069 0.308 180 1 1 0 fish
450
+ 6 0.1773 0.2548 0.28 0.2679 180 1 1 0 fish
451
+ 1 0.458 0.2152 0.5529 0.2253 181 1 1 0 fish
452
+ 5 0.2065 0.2944 0.3049 0.3075 181 1 1 0 fish
453
+ 6 0.176 0.2544 0.2733 0.2675 181 1 1 0 fish
454
+ 1 0.4537 0.2154 0.5477 0.2251 182 1 1 0 fish
455
+ 5 0.2107 0.2923 0.3095 0.3063 182 1 1 0 fish
456
+ 6 0.1784 0.254 0.2788 0.2675 182 1 1 0 fish
457
+ 1 0.4532 0.2157 0.5468 0.2252 183 1 1 0 fish
458
+ 5 0.2118 0.2901 0.3122 0.3057 183 1 1 0 fish
459
+ 6 0.1803 0.2536 0.285 0.268 183 1 1 0 fish
460
+ 1 0.4562 0.216 0.5496 0.2257 184 1 1 0 fish
461
+ 5 0.2095 0.2898 0.3126 0.3067 184 1 1 0 fish
462
+ 6 0.1801 0.2529 0.2876 0.2681 184 1 1 0 fish
463
+ 1 0.4558 0.2168 0.5479 0.227 185 1 1 0 fish
464
+ 5 0.2116 0.2902 0.3118 0.3077 185 1 1 0 fish
465
+ 1 0.457 0.2184 0.5482 0.2288 186 1 1 0 fish
466
+ 5 0.2219 0.2913 0.3183 0.3087 186 1 1 0 fish
467
+ 1 0.4561 0.2203 0.547 0.2304 187 1 1 0 fish
468
+ 5 0.2145 0.2952 0.3065 0.3111 187 1 1 0 fish
469
+ 6 0.1794 0.2534 0.2827 0.269 187 1 1 0 fish
470
+ 1 0.4542 0.2217 0.5458 0.2315 188 1 1 0 fish
471
+ 5 0.2144 0.2976 0.3059 0.312 188 1 1 0 fish
472
+ 6 0.1794 0.2535 0.2839 0.2693 188 1 1 0 fish
473
+ 1 0.4569 0.2224 0.5467 0.232 189 1 1 0 fish
474
+ 5 0.2233 0.2984 0.3169 0.3117 189 1 1 0 fish
475
+ 6 0.1802 0.2528 0.2873 0.2696 189 1 1 0 fish
476
+ 1 0.4544 0.223 0.5439 0.2325 190 1 1 0 fish
477
+ 5 0.2227 0.2989 0.3188 0.3116 190 1 1 0 fish
478
+ 6 0.1789 0.2522 0.2876 0.2699 190 1 1 0 fish
479
+ 1 0.4569 0.2235 0.5455 0.2328 191 1 1 0 fish
480
+ 5 0.2208 0.2995 0.3168 0.3119 191 1 1 0 fish
481
+ 6 0.1749 0.2534 0.2787 0.271 191 1 1 0 fish
482
+ 1 0.4538 0.223 0.5433 0.2324 192 1 1 0 fish
483
+ 5 0.223 0.2985 0.3195 0.3114 192 1 1 0 fish
484
+ 6 0.171 0.257 0.2685 0.2725 192 1 1 0 fish
485
+ 1 0.4534 0.2224 0.5438 0.2318 193 1 1 0 fish
486
+ 5 0.2237 0.2961 0.3207 0.3102 193 1 1 0 fish
487
+ 1 0.4519 0.222 0.543 0.2313 194 1 1 0 fish
488
+ 5 0.225 0.2939 0.3236 0.3093 194 1 1 0 fish
489
+ 1 0.4509 0.2217 0.5419 0.2307 195 1 1 0 fish
490
+ 1 0.449 0.2205 0.54 0.2295 196 1 1 0 fish
491
+ 5 0.2158 0.2953 0.3122 0.3099 196 1 1 0 fish
492
+ 1 0.4499 0.2189 0.5409 0.228 197 1 1 0 fish
493
+ 5 0.2193 0.2951 0.3144 0.309 197 1 1 0 fish
494
+ 1 0.4473 0.2178 0.5365 0.2269 198 1 1 0 fish
495
+ 5 0.225 0.2941 0.3221 0.3078 198 1 1 0 fish
496
+ 1 0.4461 0.2164 0.5358 0.2261 199 1 1 0 fish
497
+ 5 0.2273 0.2924 0.3218 0.3064 199 1 1 0 fish
498
+ 6 0.1902 0.2563 0.2904 0.2704 199 1 1 0 fish
499
+ 1 0.448 0.2153 0.5386 0.2264 200 1 1 0 fish
500
+ 5 0.2279 0.2911 0.322 0.3051 200 1 1 0 fish
501
+ 6 0.1797 0.258 0.2693 0.271 200 1 1 0 fish
502
+ 1 0.4434 0.2186 0.5264 0.2297 201 1 1 0 fish
503
+ 5 0.2302 0.2918 0.3267 0.3053 201 1 1 0 fish
504
+ 6 0.1808 0.2579 0.271 0.2706 201 1 1 0 fish
505
+ 1 0.4463 0.2187 0.5304 0.231 202 1 1 0 fish
506
+ 5 0.2326 0.2905 0.3274 0.3049 202 1 1 0 fish
507
+ 6 0.1884 0.257 0.2817 0.2698 202 1 1 0 fish
508
+ 1 0.4459 0.2221 0.5252 0.2339 203 1 1 0 fish
509
+ 5 0.2345 0.2892 0.3332 0.305 203 1 1 0 fish
510
+ 6 0.1903 0.2561 0.2871 0.2694 203 1 1 0 fish
511
+ 1 0.4503 0.2239 0.5312 0.2357 204 1 1 0 fish
512
+ 5 0.2378 0.291 0.3321 0.3067 204 1 1 0 fish
513
+ 6 0.1957 0.2546 0.2926 0.2687 204 1 1 0 fish
514
+ 1 0.4569 0.2255 0.5388 0.2373 205 1 1 0 fish
515
+ 5 0.2398 0.2938 0.3351 0.3088 205 1 1 0 fish
516
+ 1 0.4519 0.2283 0.5332 0.2393 206 1 1 0 fish
517
+ 5 0.2403 0.296 0.3363 0.3106 206 1 1 0 fish
518
+ 1 0.4531 0.2297 0.5365 0.2402 207 1 1 0 fish
519
+ 5 0.2364 0.2989 0.3338 0.3128 207 1 1 0 fish
520
+ 1 0.4533 0.2304 0.5376 0.2405 208 1 1 0 fish
521
+ 5 0.2333 0.2993 0.3274 0.3127 208 1 1 0 fish
522
+ 6 0.182 0.2585 0.27 0.2707 208 1 1 0 fish
523
+ 1 0.4555 0.2308 0.5406 0.2407 209 1 1 0 fish
524
+ 5 0.2348 0.297 0.3267 0.3107 209 1 1 0 fish
525
+ 6 0.1834 0.2593 0.2662 0.2704 209 1 1 0 fish
526
+ 1 0.4547 0.23 0.5416 0.2402 210 1 1 0 fish
527
+ 5 0.2343 0.2948 0.327 0.309 210 1 1 0 fish
528
+ 1 0.4515 0.2282 0.5384 0.2389 211 1 1 0 fish
529
+ 5 0.2347 0.2929 0.3281 0.3079 211 1 1 0 fish
530
+ 1 0.4525 0.2264 0.5401 0.2375 212 1 1 0 fish
531
+ 5 0.2317 0.2936 0.3238 0.3082 212 1 1 0 fish
532
+ 6 0.1839 0.2589 0.2602 0.2692 212 1 1 0 fish
533
+ 1 0.4531 0.2243 0.5408 0.2361 213 1 1 0 fish
534
+ 5 0.2323 0.2936 0.3271 0.3081 213 1 1 0 fish
535
+ 6 0.1874 0.2585 0.2621 0.2685 213 1 1 0 fish
536
+ 1 0.4515 0.2213 0.5382 0.2324 214 1 1 0 fish
537
+ 5 0.2326 0.2936 0.328 0.3079 214 1 1 0 fish
538
+ 6 0.1887 0.2579 0.2641 0.268 214 1 1 0 fish
539
+ 1 0.4529 0.2195 0.5419 0.23 215 1 1 0 fish
540
+ 5 0.2289 0.294 0.3264 0.3081 215 1 1 0 fish
541
+ 6 0.1953 0.2578 0.2819 0.2682 215 1 1 0 fish
542
+ 1 0.4531 0.2187 0.5426 0.2291 216 1 1 0 fish
543
+ 5 0.226 0.2936 0.3229 0.3082 216 1 1 0 fish
544
+ 6 0.1879 0.2583 0.2764 0.2687 216 1 1 0 fish
545
+ 1 0.4523 0.2186 0.5433 0.2295 217 1 1 0 fish
546
+ 5 0.2294 0.2917 0.3246 0.3071 217 1 1 0 fish
547
+ 6 0.1922 0.2582 0.2878 0.2687 217 1 1 0 fish
548
+ 1 0.4515 0.2195 0.5428 0.2305 218 1 1 0 fish
549
+ 5 0.2262 0.2932 0.3211 0.3078 218 1 1 0 fish
550
+ 6 0.196 0.2579 0.2953 0.2684 218 1 1 0 fish
551
+ 1 0.4479 0.2211 0.5379 0.2315 219 1 1 0 fish
552
+ 5 0.2239 0.2925 0.319 0.3075 219 1 1 0 fish
553
+ 6 0.1902 0.2573 0.2928 0.2679 219 1 1 0 fish
554
+ 1 0.4487 0.222 0.537 0.2319 220 1 1 0 fish
555
+ 5 0.2269 0.2912 0.3217 0.3072 220 1 1 0 fish
556
+ 6 0.192 0.2562 0.2939 0.2668 220 1 1 0 fish
557
+ 1 0.4469 0.2224 0.5327 0.2322 221 1 1 0 fish
558
+ 5 0.2236 0.29 0.3211 0.3068 221 1 1 0 fish
559
+ 6 0.1918 0.2541 0.2941 0.2651 221 1 1 0 fish
560
+ 1 0.4477 0.2225 0.5334 0.2327 222 1 1 0 fish
561
+ 5 0.2235 0.2913 0.321 0.3076 222 1 1 0 fish
562
+ 6 0.1804 0.2518 0.2773 0.2627 222 1 1 0 fish
563
+ 1 0.4436 0.224 0.5286 0.2343 223 1 1 0 fish
564
+ 5 0.2178 0.2905 0.3168 0.3069 223 1 1 0 fish
565
+ 6 0.1808 0.25 0.2743 0.2611 223 1 1 0 fish
566
+ 1 0.4429 0.2253 0.5287 0.2353 224 1 1 0 fish
567
+ 5 0.2113 0.2914 0.3132 0.3067 224 1 1 0 fish
568
+ 6 0.1858 0.2484 0.2806 0.2599 224 1 1 0 fish
569
+ 1 0.4432 0.226 0.5312 0.2358 225 1 1 0 fish
570
+ 5 0.2105 0.2901 0.3127 0.3045 225 1 1 0 fish
571
+ 6 0.1898 0.2465 0.2894 0.2594 225 1 1 0 fish
572
+ 1 0.4434 0.2258 0.5317 0.2355 226 1 1 0 fish
573
+ 5 0.2088 0.2877 0.3116 0.3019 226 1 1 0 fish
574
+ 6 0.1906 0.2453 0.2932 0.26 226 1 1 0 fish
575
+ 1 0.4427 0.2251 0.5303 0.2346 227 1 1 0 fish
576
+ 5 0.21 0.2863 0.3103 0.3007 227 1 1 0 fish
577
+ 1 0.4469 0.2242 0.5323 0.2337 228 1 1 0 fish
578
+ 5 0.2093 0.2849 0.3101 0.3007 228 1 1 0 fish
579
+ 1 0.4468 0.2231 0.5306 0.2325 229 1 1 0 fish
580
+ 5 0.2052 0.2853 0.3047 0.3022 229 1 1 0 fish
581
+ 1 0.4478 0.2224 0.5307 0.2317 230 1 1 0 fish
582
+ 5 0.2017 0.2867 0.3002 0.3046 230 1 1 0 fish
583
+ 1 0.4505 0.2218 0.5326 0.2312 231 1 1 0 fish
584
+ 5 0.2049 0.2873 0.3045 0.3054 231 1 1 0 fish
585
+ 1 0.4503 0.2211 0.5335 0.2307 232 1 1 0 fish
586
+ 5 0.2058 0.2878 0.3034 0.3065 232 1 1 0 fish
587
+ 1 0.4501 0.2207 0.5348 0.2301 233 1 1 0 fish
588
+ 5 0.2042 0.2876 0.3019 0.3081 233 1 1 0 fish
589
+ 1 0.4487 0.2207 0.5353 0.23 234 1 1 0 fish
590
+ 5 0.1993 0.2918 0.2919 0.311 234 1 1 0 fish
591
+ 1 0.4531 0.2207 0.5406 0.2303 235 1 1 0 fish
592
+ 5 0.2023 0.2929 0.2957 0.311 235 1 1 0 fish
593
+ 1 0.4514 0.2215 0.5375 0.2309 236 1 1 0 fish
594
+ 5 0.2021 0.2942 0.298 0.3102 236 1 1 0 fish
595
+ 1 0.4498 0.221 0.5356 0.2304 237 1 1 0 fish
596
+ 5 0.2098 0.2937 0.3035 0.308 237 1 1 0 fish
597
+ 1 0.4529 0.2199 0.5394 0.2292 238 1 1 0 fish
598
+ 5 0.2059 0.2928 0.3002 0.3071 238 1 1 0 fish
599
+ 1 0.4522 0.2186 0.5386 0.2279 239 1 1 0 fish
600
+ 5 0.2051 0.2922 0.3009 0.307 239 1 1 0 fish
601
+ 1 0.4534 0.2176 0.5407 0.2269 240 1 1 0 fish
602
+ 5 0.2029 0.2909 0.2987 0.3068 240 1 1 0 fish
603
+ 1 0.4534 0.2171 0.5424 0.2265 241 1 1 0 fish
604
+ 5 0.2021 0.289 0.2994 0.3067 241 1 1 0 fish
605
+ 1 0.4538 0.2166 0.5446 0.227 242 1 1 0 fish
606
+ 5 0.203 0.2884 0.2994 0.3072 242 1 1 0 fish
607
+ 1 0.4546 0.2177 0.544 0.2287 243 1 1 0 fish
608
+ 1 0.4549 0.2193 0.5416 0.231 244 1 1 0 fish
609
+ 1 0.4579 0.2217 0.544 0.2337 245 1 1 0 fish
610
+ 5 0.2147 0.291 0.3067 0.3077 245 1 1 0 fish
611
+ 1 0.4582 0.2244 0.5445 0.236 246 1 1 0 fish
612
+ 5 0.2122 0.2923 0.3033 0.3085 246 1 1 0 fish
613
+ 1 0.4575 0.2266 0.5454 0.2375 247 1 1 0 fish
614
+ 5 0.2117 0.2919 0.3048 0.3088 247 1 1 0 fish
615
+ 1 0.4579 0.227 0.5476 0.2373 248 1 1 0 fish
616
+ 5 0.2088 0.2918 0.3024 0.3094 248 1 1 0 fish
617
+ 1 0.4542 0.2264 0.5451 0.2365 249 1 1 0 fish
618
+ 5 0.2073 0.292 0.3012 0.3098 249 1 1 0 fish
619
+ 1 0.4531 0.2251 0.5437 0.2351 250 1 1 0 fish
620
+ 5 0.2086 0.2923 0.306 0.3092 250 1 1 0 fish
621
+ 1 0.4514 0.223 0.5415 0.2331 251 1 1 0 fish
622
+ 5 0.2061 0.2929 0.3054 0.3087 251 1 1 0 fish
623
+ 1 0.4494 0.2201 0.5369 0.23 252 1 1 0 fish
624
+ 5 0.2057 0.2926 0.3047 0.3079 252 1 1 0 fish
625
+ 1 0.4489 0.2163 0.5364 0.2263 253 1 1 0 fish
626
+ 5 0.2063 0.2919 0.3053 0.3075 253 1 1 0 fish
627
+ 1 0.45 0.213 0.5406 0.2244 254 1 1 0 fish
628
+ 5 0.2043 0.2903 0.302 0.3071 254 1 1 0 fish
629
+ 1 0.4484 0.2133 0.5377 0.2257 255 1 1 0 fish
630
+ 5 0.2038 0.2884 0.3015 0.3067 255 1 1 0 fish
631
+ 1 0.4498 0.2136 0.5378 0.2273 256 1 1 0 fish
632
+ 1 0.4516 0.216 0.5375 0.2299 257 1 1 0 fish
633
+ 1 0.4496 0.2194 0.5342 0.2324 258 1 1 0 fish
634
+ 7 0.1019 0.2228 0.151 0.234 258 1 1 0 fish
635
+ 1 0.4529 0.2221 0.5377 0.2343 259 1 1 0 fish
636
+ 5 0.2052 0.2902 0.3045 0.3084 259 1 1 0 fish
637
+ 1 0.4504 0.2239 0.5355 0.2354 260 1 1 0 fish
638
+ 5 0.2033 0.2899 0.3038 0.3086 260 1 1 0 fish
639
+ 1 0.4496 0.2243 0.5348 0.2355 261 1 1 0 fish
640
+ 5 0.2043 0.2903 0.3039 0.3086 261 1 1 0 fish
641
+ 1 0.4487 0.2234 0.5333 0.2341 262 1 1 0 fish
642
+ 5 0.2029 0.2913 0.3002 0.3092 262 1 1 0 fish
643
+ 8 0.1834 0.2607 0.254 0.2703 262 1 1 0 fish
644
+ 1 0.4502 0.2228 0.5347 0.233 263 1 1 0 fish
645
+ 5 0.1982 0.2935 0.2917 0.3098 263 1 1 0 fish
646
+ 1 0.4492 0.2221 0.5371 0.2319 264 1 1 0 fish
647
+ 5 0.2028 0.2939 0.2948 0.3094 264 1 1 0 fish
648
+ 7 0.1001 0.216 0.1515 0.2273 264 1 1 0 fish
649
+ 1 0.4469 0.2218 0.5341 0.2316 265 1 1 0 fish
650
+ 5 0.2058 0.2942 0.3 0.3093 265 1 1 0 fish
651
+ 8 0.1783 0.2581 0.2771 0.2698 265 1 1 0 fish
652
+ 1 0.4462 0.2213 0.5351 0.2319 266 1 1 0 fish
653
+ 5 0.2049 0.2941 0.3025 0.3091 266 1 1 0 fish
654
+ 7 0.101 0.2182 0.1531 0.2295 266 1 1 0 fish
655
+ 8 0.1801 0.2566 0.2884 0.2696 266 1 1 0 fish
656
+ 1 0.4445 0.2215 0.5347 0.2326 267 1 1 0 fish
657
+ 5 0.2061 0.2947 0.3065 0.3092 267 1 1 0 fish
658
+ 7 0.1016 0.22 0.1526 0.2306 267 1 1 0 fish
659
+ 8 0.1778 0.2543 0.2944 0.2692 267 1 1 0 fish
660
+ 1 0.4381 0.2231 0.5216 0.234 268 1 1 0 fish
661
+ 5 0.2061 0.295 0.3082 0.3093 268 1 1 0 fish
662
+ 7 0.101 0.2217 0.1507 0.2325 268 1 1 0 fish
663
+ 8 0.176 0.2547 0.2921 0.2697 268 1 1 0 fish
664
+ 1 0.4419 0.2231 0.5262 0.234 269 1 1 0 fish
665
+ 5 0.205 0.2952 0.3084 0.3095 269 1 1 0 fish
666
+ 7 0.1018 0.2228 0.15 0.2332 269 1 1 0 fish
667
+ 8 0.1848 0.255 0.2971 0.2693 269 1 1 0 fish
668
+ 1 0.4421 0.2231 0.5285 0.2346 270 1 1 0 fish
669
+ 5 0.2074 0.2944 0.3095 0.3089 270 1 1 0 fish
670
+ 1 0.4413 0.223 0.5296 0.2351 271 1 1 0 fish
671
+ 5 0.2079 0.2939 0.3089 0.309 271 1 1 0 fish
672
+ 1 0.4322 0.2261 0.5134 0.2371 272 1 1 0 fish
673
+ 5 0.2075 0.294 0.309 0.3089 272 1 1 0 fish
674
+ 8 0.201 0.2567 0.2992 0.2688 272 1 1 0 fish
675
+ 1 0.4381 0.2254 0.5204 0.2364 273 1 1 0 fish
676
+ 5 0.2071 0.295 0.3105 0.3095 273 1 1 0 fish
677
+ 7 0.1025 0.2227 0.1485 0.2323 273 1 1 0 fish
678
+ 8 0.1878 0.257 0.2915 0.269 273 1 1 0 fish
679
+ 1 0.4427 0.2254 0.5245 0.2359 274 1 1 0 fish
680
+ 5 0.207 0.2956 0.3109 0.3099 274 1 1 0 fish
681
+ 7 0.1018 0.2227 0.1462 0.232 274 1 1 0 fish
682
+ 8 0.1848 0.2564 0.2913 0.2687 274 1 1 0 fish
683
+ 1 0.4475 0.2247 0.5311 0.2347 275 1 1 0 fish
684
+ 5 0.2101 0.2949 0.3125 0.3094 275 1 1 0 fish
685
+ 7 0.1023 0.223 0.1472 0.2329 275 1 1 0 fish
686
+ 8 0.1883 0.2567 0.2948 0.2692 275 1 1 0 fish
687
+ 1 0.4483 0.223 0.5325 0.2327 276 1 1 0 fish
688
+ 5 0.2123 0.2944 0.3138 0.3093 276 1 1 0 fish
689
+ 7 0.1074 0.2222 0.1613 0.2333 276 1 1 0 fish
690
+ 8 0.1824 0.2572 0.2909 0.27 276 1 1 0 fish
691
+ 1 0.4498 0.2214 0.5359 0.2309 277 1 1 0 fish
692
+ 5 0.2115 0.295 0.3115 0.3105 277 1 1 0 fish
693
+ 7 0.1038 0.2239 0.1552 0.235 277 1 1 0 fish
694
+ 8 0.1838 0.2578 0.2925 0.2709 277 1 1 0 fish
695
+ 1 0.4522 0.2203 0.5401 0.2302 278 1 1 0 fish
696
+ 5 0.2128 0.2971 0.3102 0.3124 278 1 1 0 fish
697
+ 7 0.107 0.2243 0.1628 0.2351 278 1 1 0 fish
698
+ 8 0.1822 0.2574 0.2936 0.2711 278 1 1 0 fish
699
+ 1 0.4495 0.2197 0.5387 0.2306 279 1 1 0 fish
700
+ 5 0.2153 0.2997 0.3128 0.3141 279 1 1 0 fish
701
+ 8 0.1845 0.2587 0.2921 0.2716 279 1 1 0 fish
702
+ 1 0.4511 0.2203 0.5383 0.2317 280 1 1 0 fish
703
+ 5 0.2186 0.3013 0.3179 0.3146 280 1 1 0 fish
704
+ 8 0.1672 0.2592 0.2654 0.2714 280 1 1 0 fish
705
+ 1 0.4534 0.2217 0.5404 0.2333 281 1 1 0 fish
706
+ 5 0.2164 0.3011 0.3155 0.3143 281 1 1 0 fish
707
+ 1 0.4552 0.2233 0.5423 0.2348 282 1 1 0 fish
708
+ 5 0.2195 0.2997 0.3201 0.3136 282 1 1 0 fish
709
+ 8 0.1727 0.2581 0.2754 0.2704 282 1 1 0 fish
710
+ 1 0.4545 0.2243 0.5418 0.2356 283 1 1 0 fish
711
+ 5 0.2183 0.3003 0.318 0.3143 283 1 1 0 fish
712
+ 8 0.1726 0.2575 0.2804 0.2706 283 1 1 0 fish
713
+ 1 0.45 0.2249 0.5366 0.2356 284 1 1 0 fish
714
+ 5 0.2189 0.3009 0.3164 0.3148 284 1 1 0 fish
715
+ 8 0.1755 0.2565 0.2854 0.2705 284 1 1 0 fish
716
+ 1 0.4516 0.225 0.5374 0.2352 285 1 1 0 fish
717
+ 5 0.218 0.3024 0.3152 0.3153 285 1 1 0 fish
718
+ 8 0.1747 0.2563 0.2882 0.2715 285 1 1 0 fish
719
+ 1 0.4482 0.2243 0.5371 0.2343 286 1 1 0 fish
720
+ 5 0.2221 0.3026 0.3201 0.3144 286 1 1 0 fish
721
+ 8 0.1776 0.2556 0.2906 0.2719 286 1 1 0 fish
722
+ 1 0.4443 0.2236 0.5338 0.2335 287 1 1 0 fish
723
+ 5 0.2181 0.3018 0.3157 0.3132 287 1 1 0 fish
724
+ 8 0.1679 0.2603 0.2731 0.2754 287 1 1 0 fish
725
+ 1 0.4439 0.2241 0.5339 0.2343 288 1 1 0 fish
726
+ 5 0.2146 0.3011 0.3099 0.3123 288 1 1 0 fish
727
+ 8 0.1726 0.2618 0.2785 0.2763 288 1 1 0 fish
728
+ 1 0.4427 0.2252 0.5334 0.2357 289 1 1 0 fish
729
+ 5 0.2157 0.2999 0.311 0.3114 289 1 1 0 fish
730
+ 8 0.1766 0.2627 0.2865 0.2765 289 1 1 0 fish
731
+ 1 0.4438 0.227 0.5312 0.2374 290 1 1 0 fish
732
+ 5 0.213 0.299 0.3115 0.3112 290 1 1 0 fish
733
+ 8 0.1751 0.2631 0.2877 0.2765 290 1 1 0 fish
734
+ 1 0.4426 0.2287 0.5294 0.2387 291 1 1 0 fish
735
+ 5 0.214 0.2977 0.3146 0.3104 291 1 1 0 fish
736
+ 8 0.171 0.2618 0.2873 0.2748 291 1 1 0 fish
737
+ 1 0.4426 0.2298 0.5305 0.2397 292 1 1 0 fish
738
+ 5 0.2101 0.2974 0.3066 0.3104 292 1 1 0 fish
739
+ 1 0.4434 0.2305 0.5321 0.2406 293 1 1 0 fish
740
+ 5 0.2109 0.2957 0.3074 0.3098 293 1 1 0 fish
741
+ 1 0.4447 0.2307 0.5336 0.2412 294 1 1 0 fish
742
+ 5 0.2111 0.2953 0.3082 0.3102 294 1 1 0 fish
743
+ 1 0.4426 0.2314 0.5303 0.2415 295 1 1 0 fish
744
+ 5 0.2105 0.2949 0.307 0.3106 295 1 1 0 fish
745
+ 8 0.1632 0.2599 0.2552 0.272 295 1 1 0 fish
746
+ 1 0.4459 0.2302 0.5351 0.2402 296 1 1 0 fish
747
+ 5 0.2131 0.2961 0.3108 0.3116 296 1 1 0 fish
748
+ 8 0.1764 0.2562 0.2762 0.27 296 1 1 0 fish
749
+ 1 0.4473 0.2279 0.5351 0.2377 297 1 1 0 fish
750
+ 5 0.2152 0.2972 0.3105 0.3121 297 1 1 0 fish
751
+ 8 0.1824 0.2557 0.2851 0.2699 297 1 1 0 fish
752
+ 1 0.4508 0.2249 0.537 0.2353 298 1 1 0 fish
753
+ 5 0.223 0.2977 0.3169 0.3122 298 1 1 0 fish
754
+ 8 0.1832 0.2569 0.2877 0.2707 298 1 1 0 fish
755
+ 1 0.4474 0.2247 0.5292 0.2347 299 1 1 0 fish
756
+ 5 0.2258 0.298 0.3196 0.3126 299 1 1 0 fish
757
+ 8 0.1786 0.2578 0.275 0.271 299 1 1 0 fish
758
+ 1 0.4485 0.2238 0.527 0.2335 300 1 1 0 fish
759
+ 5 0.2344 0.2987 0.3257 0.3133 300 1 1 0 fish
760
+ 8 0.187 0.2578 0.2879 0.2707 300 1 1 0 fish
761
+ 1 0.4501 0.2225 0.5284 0.232 301 1 1 0 fish
762
+ 5 0.2289 0.3014 0.321 0.3148 301 1 1 0 fish
763
+ 8 0.191 0.2569 0.2943 0.2702 301 1 1 0 fish
764
+ 1 0.4532 0.221 0.5353 0.2305 302 1 1 0 fish
765
+ 5 0.2251 0.3031 0.3209 0.3153 302 1 1 0 fish
766
+ 8 0.203 0.2539 0.3042 0.2676 302 1 1 0 fish
767
+ 1 0.4537 0.2195 0.5396 0.229 303 1 1 0 fish
768
+ 5 0.2225 0.303 0.3166 0.3146 303 1 1 0 fish
769
+ 1 0.4514 0.2183 0.5388 0.2283 304 1 1 0 fish
770
+ 5 0.2249 0.3018 0.3164 0.3134 304 1 1 0 fish
771
+ 1 0.452 0.218 0.5404 0.2285 305 1 1 0 fish
772
+ 5 0.2229 0.3012 0.3156 0.313 305 1 1 0 fish
773
+ 1 0.4513 0.2185 0.5403 0.2296 306 1 1 0 fish
774
+ 5 0.2275 0.3007 0.322 0.3126 306 1 1 0 fish
775
+ 1 0.4501 0.2192 0.5382 0.231 307 1 1 0 fish
776
+ 5 0.2275 0.3002 0.3239 0.3125 307 1 1 0 fish
777
+ 1 0.4513 0.2205 0.5378 0.2326 308 1 1 0 fish
778
+ 5 0.2248 0.3011 0.3218 0.3133 308 1 1 0 fish
779
+ 1 0.4474 0.2222 0.5329 0.2339 309 1 1 0 fish
780
+ 5 0.2311 0.3011 0.3253 0.3131 309 1 1 0 fish
781
+ 1 0.4484 0.2229 0.5344 0.2339 310 1 1 0 fish
782
+ 5 0.2261 0.3013 0.3218 0.3131 310 1 1 0 fish
783
+ 1 0.4459 0.2215 0.5314 0.232 311 1 1 0 fish
784
+ 5 0.2291 0.3004 0.322 0.3117 311 1 1 0 fish
785
+ 1 0.4437 0.2194 0.5306 0.2297 312 1 1 0 fish
786
+ 5 0.2309 0.2977 0.3197 0.309 312 1 1 0 fish
787
+ 1 0.4501 0.217 0.5366 0.2277 313 1 1 0 fish
788
+ 5 0.2261 0.2956 0.3192 0.3085 313 1 1 0 fish
789
+ 1 0.4486 0.2161 0.5361 0.227 314 1 1 0 fish
790
+ 5 0.2232 0.2933 0.3204 0.3081 314 1 1 0 fish
791
+ 1 0.4465 0.217 0.5311 0.2275 315 1 1 0 fish
792
+ 5 0.2241 0.292 0.3213 0.3082 315 1 1 0 fish
793
+ 1 0.4476 0.2167 0.535 0.2273 316 1 1 0 fish
794
+ 5 0.2231 0.2932 0.3187 0.3098 316 1 1 0 fish
795
+ 1 0.4482 0.2161 0.5366 0.2275 317 1 1 0 fish
796
+ 5 0.2259 0.2947 0.3214 0.3112 317 1 1 0 fish
797
+ 1 0.4467 0.2171 0.5319 0.2292 318 1 1 0 fish
798
+ 5 0.2268 0.2943 0.3245 0.3108 318 1 1 0 fish
799
+ 1 0.447 0.2176 0.5327 0.231 319 1 1 0 fish
800
+ 5 0.2265 0.2937 0.3248 0.3108 319 1 1 0 fish
801
+ 1 0.4492 0.2188 0.5335 0.2331 320 1 1 0 fish
802
+ 5 0.2277 0.293 0.3272 0.3108 320 1 1 0 fish
803
+ 1 0.4527 0.2211 0.5357 0.2354 321 1 1 0 fish
804
+ 5 0.2266 0.2957 0.3263 0.3125 321 1 1 0 fish
805
+ 1 0.4507 0.2229 0.5347 0.2368 322 1 1 0 fish
806
+ 5 0.2294 0.2971 0.3293 0.3125 322 1 1 0 fish
807
+ 1 0.4515 0.2246 0.5361 0.2371 323 1 1 0 fish
808
+ 5 0.2278 0.2967 0.3281 0.312 323 1 1 0 fish
809
+ 1 0.4525 0.2245 0.54 0.2365 324 1 1 0 fish
810
+ 5 0.2319 0.2958 0.3323 0.311 324 1 1 0 fish
811
+ 1 0.4492 0.2244 0.5339 0.2358 325 1 1 0 fish
812
+ 5 0.2267 0.2966 0.3244 0.3107 325 1 1 0 fish
813
+ 1 0.4496 0.2241 0.5372 0.2352 326 1 1 0 fish
814
+ 5 0.2239 0.2963 0.3236 0.3096 326 1 1 0 fish
815
+ 1 0.4498 0.2241 0.54 0.2348 327 1 1 0 fish
816
+ 5 0.2141 0.2957 0.3084 0.3087 327 1 1 0 fish
817
+ 1 0.4484 0.2242 0.5364 0.2344 328 1 1 0 fish
818
+ 5 0.2176 0.2943 0.3147 0.3074 328 1 1 0 fish
819
+ 1 0.4424 0.2241 0.5305 0.2339 329 1 1 0 fish
820
+ 5 0.2222 0.2922 0.3244 0.3063 329 1 1 0 fish
821
+ 1 0.443 0.2238 0.5321 0.2334 330 1 1 0 fish
822
+ 5 0.2156 0.2922 0.3197 0.3065 330 1 1 0 fish
823
+ 1 0.4429 0.2235 0.5324 0.2329 331 1 1 0 fish
824
+ 5 0.2178 0.2912 0.3216 0.3062 331 1 1 0 fish
825
+ 9 0.1954 0.2552 0.3089 0.2664 331 1 1 0 fish
826
+ 1 0.4446 0.2236 0.5326 0.2329 332 1 1 0 fish
827
+ 5 0.2197 0.2907 0.3215 0.3063 332 1 1 0 fish
828
+ 9 0.1833 0.256 0.2686 0.2662 332 1 1 0 fish
829
+ 1 0.4446 0.2231 0.5332 0.2327 333 1 1 0 fish
830
+ 5 0.2218 0.2908 0.3226 0.3068 333 1 1 0 fish
831
+ 9 0.1932 0.2535 0.2984 0.2663 333 1 1 0 fish
832
+ 1 0.4428 0.2229 0.5312 0.2326 334 1 1 0 fish
833
+ 5 0.2236 0.2922 0.3231 0.3077 334 1 1 0 fish
834
+ 9 0.1969 0.2531 0.2982 0.2659 334 1 1 0 fish
835
+ 1 0.4425 0.2233 0.5293 0.233 335 1 1 0 fish
836
+ 5 0.2224 0.2925 0.3201 0.3076 335 1 1 0 fish
837
+ 9 0.1919 0.2521 0.2939 0.2657 335 1 1 0 fish
838
+ 1 0.4449 0.2233 0.5317 0.2332 336 1 1 0 fish
839
+ 5 0.2255 0.292 0.3228 0.3074 336 1 1 0 fish
840
+ 9 0.1889 0.2484 0.3016 0.2647 336 1 1 0 fish
841
+ 1 0.4455 0.2238 0.5326 0.2338 337 1 1 0 fish
842
+ 5 0.2259 0.2914 0.3232 0.3072 337 1 1 0 fish
843
+ 9 0.1866 0.247 0.3043 0.2648 337 1 1 0 fish
844
+ 1 0.4386 0.2253 0.5214 0.2352 338 1 1 0 fish
845
+ 5 0.2225 0.2914 0.3206 0.3077 338 1 1 0 fish
846
+ 9 0.1855 0.247 0.3022 0.2653 338 1 1 0 fish
847
+ 1 0.4464 0.2263 0.5284 0.236 339 1 1 0 fish
848
+ 5 0.2225 0.2931 0.3198 0.3084 339 1 1 0 fish
849
+ 9 0.1827 0.2469 0.3012 0.2658 339 1 1 0 fish
850
+ 1 0.449 0.2272 0.5316 0.2369 340 1 1 0 fish
851
+ 5 0.2247 0.2937 0.3251 0.3085 340 1 1 0 fish
852
+ 9 0.1847 0.2461 0.3018 0.2657 340 1 1 0 fish
853
+ 1 0.4529 0.2279 0.5378 0.2376 341 1 1 0 fish
854
+ 5 0.2218 0.2931 0.3228 0.3081 341 1 1 0 fish
855
+ 9 0.1847 0.2459 0.301 0.2665 341 1 1 0 fish
856
+ 1 0.4527 0.2288 0.5365 0.2383 342 1 1 0 fish
857
+ 5 0.2243 0.2924 0.3221 0.3077 342 1 1 0 fish
858
+ 9 0.1819 0.2464 0.2987 0.268 342 1 1 0 fish
859
+ 1 0.4541 0.2291 0.539 0.2384 343 1 1 0 fish
860
+ 5 0.2215 0.2914 0.3198 0.3074 343 1 1 0 fish
861
+ 9 0.1836 0.2486 0.297 0.2699 343 1 1 0 fish
862
+ 1 0.4552 0.2289 0.5431 0.2383 344 1 1 0 fish
863
+ 5 0.2127 0.2923 0.3108 0.3079 344 1 1 0 fish
864
+ 9 0.1864 0.2502 0.2977 0.2709 344 1 1 0 fish
865
+ 1 0.4564 0.2285 0.5443 0.2378 345 1 1 0 fish
866
+ 5 0.2203 0.2928 0.3169 0.3079 345 1 1 0 fish
867
+ 1 0.4549 0.2276 0.5436 0.2369 346 1 1 0 fish
868
+ 5 0.2253 0.2924 0.3213 0.3074 346 1 1 0 fish
869
+ 1 0.4523 0.2267 0.5432 0.236 347 1 1 0 fish
870
+ 5 0.2187 0.2932 0.3124 0.3074 347 1 1 0 fish
871
+ 9 0.1859 0.2548 0.2974 0.272 347 1 1 0 fish
872
+ 1 0.4519 0.2251 0.5436 0.2343 348 1 1 0 fish
873
+ 5 0.2251 0.2936 0.3191 0.3065 348 1 1 0 fish
874
+ 9 0.1852 0.2552 0.2947 0.2706 348 1 1 0 fish
875
+ 1 0.4517 0.223 0.5438 0.2324 349 1 1 0 fish
876
+ 5 0.2271 0.293 0.3187 0.3057 349 1 1 0 fish
877
+ 9 0.1875 0.2558 0.2939 0.2701 349 1 1 0 fish
878
+ 1 0.4522 0.2214 0.5441 0.2313 350 1 1 0 fish
879
+ 5 0.2267 0.2928 0.318 0.3058 350 1 1 0 fish
880
+ 1 0.4491 0.2209 0.5387 0.2314 351 1 1 0 fish
881
+ 5 0.2239 0.2931 0.3164 0.3056 351 1 1 0 fish
882
+ 1 0.4455 0.2218 0.5348 0.2331 352 1 1 0 fish
883
+ 5 0.227 0.2937 0.3208 0.3055 352 1 1 0 fish
884
+ 1 0.4467 0.2227 0.5363 0.2347 353 1 1 0 fish
885
+ 5 0.218 0.2935 0.3137 0.3055 353 1 1 0 fish
886
+ 1 0.4406 0.2262 0.5206 0.2377 354 1 1 0 fish
887
+ 5 0.2129 0.2926 0.3122 0.3053 354 1 1 0 fish
888
+ 1 0.4443 0.2265 0.5239 0.2383 355 1 1 0 fish
889
+ 5 0.2134 0.2924 0.3143 0.305 355 1 1 0 fish
890
+ 1 0.4476 0.2274 0.5286 0.2387 356 1 1 0 fish
891
+ 5 0.211 0.2921 0.3074 0.3047 356 1 1 0 fish
892
+ 1 0.4511 0.2279 0.5322 0.2389 357 1 1 0 fish
893
+ 5 0.2107 0.2904 0.3099 0.3042 357 1 1 0 fish
894
+ 1 0.452 0.228 0.5357 0.2385 358 1 1 0 fish
895
+ 5 0.2124 0.2895 0.3122 0.3039 358 1 1 0 fish
896
+ 9 0.1797 0.2492 0.2901 0.264 358 1 1 0 fish
897
+ 1 0.4518 0.2276 0.5383 0.2382 359 1 1 0 fish
898
+ 5 0.2146 0.29 0.3144 0.3044 359 1 1 0 fish
899
+ 1 0.4492 0.2276 0.534 0.2381 360 1 1 0 fish
900
+ 5 0.2146 0.2904 0.3159 0.305 360 1 1 0 fish
901
+ 9 0.1827 0.248 0.2933 0.2645 360 1 1 0 fish
902
+ 1 0.4467 0.228 0.5321 0.2387 361 1 1 0 fish
903
+ 5 0.2123 0.2904 0.317 0.3053 361 1 1 0 fish
904
+ 1 0.4484 0.2288 0.5358 0.2399 362 1 1 0 fish
905
+ 5 0.215 0.2911 0.3177 0.3052 362 1 1 0 fish
906
+ 1 0.4527 0.2302 0.5408 0.2416 363 1 1 0 fish
907
+ 5 0.2128 0.2907 0.3141 0.3049 363 1 1 0 fish
908
+ 9 0.17 0.2548 0.2664 0.269 363 1 1 0 fish
909
+ 1 0.4475 0.232 0.5364 0.2434 364 1 1 0 fish
910
+ 5 0.2132 0.2891 0.3156 0.3044 364 1 1 0 fish
911
+ 9 0.1706 0.256 0.2558 0.2687 364 1 1 0 fish
912
+ 1 0.4462 0.2342 0.5356 0.2449 365 1 1 0 fish
913
+ 5 0.2139 0.2897 0.3132 0.3047 365 1 1 0 fish
914
+ 9 0.176 0.2535 0.2582 0.2656 365 1 1 0 fish
915
+ 1 0.4485 0.2351 0.5368 0.2454 366 1 1 0 fish
916
+ 5 0.2205 0.2899 0.3194 0.3047 366 1 1 0 fish
917
+ 9 0.1732 0.2515 0.2518 0.2635 366 1 1 0 fish
918
+ 1 0.4511 0.2347 0.54 0.2451 367 1 1 0 fish
919
+ 5 0.2225 0.2884 0.3223 0.3044 367 1 1 0 fish
920
+ 9 0.1729 0.2488 0.2579 0.2618 367 1 1 0 fish
921
+ 1 0.4521 0.2335 0.5402 0.2439 368 1 1 0 fish
922
+ 5 0.2239 0.2891 0.3204 0.305 368 1 1 0 fish
923
+ 9 0.1794 0.2458 0.273 0.2603 368 1 1 0 fish
924
+ 1 0.4538 0.2314 0.5417 0.2415 369 1 1 0 fish
925
+ 5 0.2238 0.2912 0.3214 0.3059 369 1 1 0 fish
926
+ 9 0.1816 0.2432 0.2803 0.259 369 1 1 0 fish
927
+ 1 0.4541 0.2294 0.5427 0.2394 370 1 1 0 fish
928
+ 5 0.2231 0.2922 0.3231 0.3064 370 1 1 0 fish
929
+ 9 0.1825 0.241 0.2851 0.2587 370 1 1 0 fish
930
+ 1 0.454 0.2274 0.5437 0.2371 371 1 1 0 fish
931
+ 5 0.2228 0.2918 0.3222 0.3062 371 1 1 0 fish
932
+ 9 0.1804 0.2391 0.286 0.2589 371 1 1 0 fish
933
+ 1 0.4576 0.2256 0.5477 0.2353 372 1 1 0 fish
934
+ 5 0.2239 0.291 0.325 0.3056 372 1 1 0 fish
935
+ 9 0.1817 0.2374 0.2877 0.2592 372 1 1 0 fish
936
+ 1 0.4581 0.2247 0.5471 0.2345 373 1 1 0 fish
937
+ 5 0.2311 0.2912 0.3278 0.3056 373 1 1 0 fish
938
+ 9 0.1763 0.2437 0.2762 0.2634 373 1 1 0 fish
939
+ 1 0.4559 0.2243 0.546 0.2341 374 1 1 0 fish
940
+ 5 0.2229 0.2926 0.3211 0.3064 374 1 1 0 fish
941
+ 9 0.1767 0.2484 0.2721 0.2658 374 1 1 0 fish
942
+ 1 0.4561 0.2245 0.5432 0.234 375 1 1 0 fish
943
+ 5 0.2179 0.2926 0.3173 0.306 375 1 1 0 fish
944
+ 9 0.1847 0.2476 0.2824 0.2658 375 1 1 0 fish
945
+ 1 0.4597 0.2246 0.5465 0.2339 376 1 1 0 fish
946
+ 5 0.2175 0.2916 0.3167 0.3052 376 1 1 0 fish
947
+ 9 0.1893 0.2473 0.2871 0.266 376 1 1 0 fish
948
+ 1 0.4552 0.2236 0.543 0.2329 377 1 1 0 fish
949
+ 5 0.2155 0.29 0.3166 0.3045 377 1 1 0 fish
950
+ 9 0.1894 0.2469 0.2914 0.2669 377 1 1 0 fish
951
+ 1 0.454 0.2229 0.5438 0.2322 378 1 1 0 fish
952
+ 5 0.2081 0.2871 0.3139 0.3039 378 1 1 0 fish
953
+ 9 0.1872 0.2499 0.2887 0.2687 378 1 1 0 fish
954
+ 1 0.4552 0.2225 0.5456 0.2319 379 1 1 0 fish
955
+ 5 0.207 0.2848 0.3157 0.3037 379 1 1 0 fish
956
+ 1 0.4563 0.2228 0.5462 0.2321 380 1 1 0 fish
957
+ 5 0.21 0.2838 0.3134 0.3035 380 1 1 0 fish
958
+ 1 0.4512 0.2227 0.5378 0.2319 381 1 1 0 fish
959
+ 5 0.2085 0.2846 0.3092 0.3049 381 1 1 0 fish
960
+ 9 0.1933 0.2524 0.2963 0.269 381 1 1 0 fish
961
+ 1 0.4509 0.2218 0.5382 0.2314 382 1 1 0 fish
962
+ 5 0.2073 0.2854 0.3074 0.3062 382 1 1 0 fish
963
+ 9 0.1929 0.2531 0.2958 0.2684 382 1 1 0 fish
964
+ 1 0.4519 0.2205 0.5378 0.2298 383 1 1 0 fish
965
+ 1 0.4515 0.2189 0.5393 0.2281 384 1 1 0 fish
966
+ 5 0.2091 0.2894 0.3085 0.3085 384 1 1 0 fish
967
+ 9 0.1898 0.2527 0.2932 0.2674 384 1 1 0 fish
968
+ 1 0.4502 0.2174 0.5387 0.2272 385 1 1 0 fish
969
+ 5 0.2169 0.2915 0.3112 0.3091 385 1 1 0 fish
970
+ 1 0.4486 0.2162 0.539 0.2274 386 1 1 0 fish
971
+ 5 0.2181 0.2931 0.3125 0.3093 386 1 1 0 fish
972
+ 9 0.1853 0.2495 0.2927 0.2662 386 1 1 0 fish
973
+ 1 0.4478 0.2157 0.5382 0.2282 387 1 1 0 fish
974
+ 5 0.213 0.2945 0.3085 0.3097 387 1 1 0 fish
975
+ 1 0.4445 0.2173 0.5314 0.2302 388 1 1 0 fish
976
+ 5 0.2149 0.2959 0.3112 0.3098 388 1 1 0 fish
977
+ 1 0.4445 0.2187 0.5273 0.231 389 1 1 0 fish
978
+ 5 0.2224 0.2963 0.3155 0.3099 389 1 1 0 fish
979
+ 1 0.4454 0.2191 0.5263 0.2307 390 1 1 0 fish
980
+ 5 0.2151 0.2963 0.3104 0.3097 390 1 1 0 fish
981
+ 9 0.1809 0.2514 0.2947 0.2683 390 1 1 0 fish
982
+ 1 0.4464 0.2186 0.529 0.2301 391 1 1 0 fish
983
+ 5 0.2122 0.2966 0.3089 0.3094 391 1 1 0 fish
984
+ 9 0.1809 0.251 0.292 0.2685 391 1 1 0 fish
985
+ 1 0.4499 0.2176 0.5332 0.2292 392 1 1 0 fish
986
+ 5 0.2069 0.2963 0.3054 0.3087 392 1 1 0 fish
987
+ 5 0.206 0.295 0.304 0.3074 393 1 1 0 fish
988
+ 1 0.4457 0.2195 0.5277 0.2304 394 1 1 0 fish
989
+ 5 0.2086 0.2921 0.3081 0.3058 394 1 1 0 fish
990
+ 1 0.45 0.2206 0.5331 0.2311 395 1 1 0 fish
991
+ 5 0.2078 0.2889 0.309 0.3046 395 1 1 0 fish
992
+ 9 0.1637 0.2557 0.259 0.2707 395 1 1 0 fish
993
+ 1 0.4516 0.2215 0.5355 0.2316 396 1 1 0 fish
994
+ 5 0.2064 0.2866 0.3115 0.3045 396 1 1 0 fish
995
+ 9 0.1758 0.2546 0.2771 0.2686 396 1 1 0 fish
996
+ 1 0.4517 0.2218 0.5368 0.2321 397 1 1 0 fish
997
+ 5 0.2046 0.288 0.3085 0.3062 397 1 1 0 fish
998
+ 9 0.1805 0.2528 0.2841 0.2672 397 1 1 0 fish
999
+ 1 0.453 0.2221 0.5401 0.2322 398 1 1 0 fish
1000
+ 5 0.2069 0.2885 0.307 0.3065 398 1 1 0 fish
1001
+ 9 0.1788 0.2509 0.2846 0.2662 398 1 1 0 fish
1002
+ 1 0.451 0.2226 0.5374 0.2326 399 1 1 0 fish
1003
+ 5 0.2067 0.2892 0.3086 0.3065 399 1 1 0 fish
1004
+ 1 0.4529 0.2227 0.541 0.2325 400 1 1 0 fish
1005
+ 5 0.2062 0.2893 0.3084 0.3062 400 1 1 0 fish
1006
+ 9 0.1787 0.2469 0.2882 0.2645 400 1 1 0 fish
1007
+ 1 0.451 0.2226 0.5407 0.2322 401 1 1 0 fish
1008
+ 5 0.2042 0.2869 0.3093 0.3053 401 1 1 0 fish
1009
+ 9 0.1776 0.2457 0.289 0.2652 401 1 1 0 fish
1010
+ 1 0.4504 0.222 0.5405 0.2315 402 1 1 0 fish
1011
+ 5 0.2037 0.2845 0.3091 0.3047 402 1 1 0 fish
1012
+ 1 0.4515 0.2211 0.5416 0.2305 403 1 1 0 fish
1013
+ 5 0.1978 0.2894 0.2952 0.3081 403 1 1 0 fish
1014
+ 1 0.4491 0.2196 0.5398 0.2289 404 1 1 0 fish
1015
+ 5 0.2025 0.2935 0.292 0.3105 404 1 1 0 fish
1016
+ 1 0.4499 0.2182 0.5416 0.2278 405 1 1 0 fish
1017
+ 5 0.2101 0.2951 0.2958 0.3115 405 1 1 0 fish
1018
+ 1 0.4507 0.2173 0.5438 0.2277 406 1 1 0 fish
1019
+ 5 0.2226 0.2961 0.3155 0.3123 406 1 1 0 fish
1020
+ 1 0.448 0.2181 0.5413 0.2287 407 1 1 0 fish
1021
+ 5 0.2236 0.2963 0.3167 0.3121 407 1 1 0 fish
1022
+ 1 0.4447 0.2202 0.5348 0.2302 408 1 1 0 fish
1023
+ 5 0.2284 0.2951 0.3228 0.3109 408 1 1 0 fish
1024
+ 1 0.4483 0.2204 0.5395 0.2303 409 1 1 0 fish
1025
+ 5 0.2267 0.2942 0.321 0.3102 409 1 1 0 fish
1026
+ 1 0.445 0.2186 0.5334 0.2283 410 1 1 0 fish
1027
+ 5 0.2245 0.2941 0.3196 0.3097 410 1 1 0 fish
1028
+ 1 0.4476 0.2164 0.5353 0.226 411 1 1 0 fish
1029
+ 5 0.2196 0.2941 0.3125 0.3098 411 1 1 0 fish
1030
+ 1 0.4482 0.2141 0.537 0.2243 412 1 1 0 fish
1031
+ 5 0.2159 0.294 0.3085 0.3098 412 1 1 0 fish
1032
+ 1 0.4485 0.2125 0.5403 0.2237 413 1 1 0 fish
1033
+ 5 0.2144 0.2946 0.3086 0.3105 413 1 1 0 fish
1034
+ 1 0.4465 0.2117 0.539 0.2239 414 1 1 0 fish
1035
+ 5 0.2175 0.2944 0.3134 0.3111 414 1 1 0 fish
1036
+ 1 0.4404 0.2146 0.5276 0.2265 415 1 1 0 fish
1037
+ 5 0.2194 0.2954 0.3138 0.3122 415 1 1 0 fish
1038
+ 1 0.4422 0.2163 0.5253 0.2274 416 1 1 0 fish
1039
+ 5 0.2223 0.2965 0.3122 0.3124 416 1 1 0 fish
1040
+ 1 0.4493 0.2161 0.5326 0.2272 417 1 1 0 fish
1041
+ 5 0.2243 0.2968 0.3165 0.3119 417 1 1 0 fish
1042
+ 1 0.4509 0.2167 0.5361 0.2274 418 1 1 0 fish
1043
+ 5 0.2173 0.2971 0.3101 0.3112 418 1 1 0 fish
1044
+ 1 0.4494 0.2174 0.5368 0.2279 419 1 1 0 fish
1045
+ 5 0.2203 0.2965 0.3163 0.3096 419 1 1 0 fish
1046
+ 1 0.4517 0.2174 0.5408 0.2283 420 1 1 0 fish
1047
+ 5 0.2235 0.2958 0.3151 0.308 420 1 1 0 fish
1048
+ 1 0.4519 0.217 0.5426 0.2288 421 1 1 0 fish
1049
+ 5 0.2194 0.2939 0.3116 0.3063 421 1 1 0 fish
1050
+ 1 0.4514 0.2188 0.5384 0.2306 422 1 1 0 fish
1051
+ 5 0.2201 0.2931 0.311 0.3058 422 1 1 0 fish
1052
+ 1 0.4515 0.2206 0.537 0.2321 423 1 1 0 fish
1053
+ 5 0.2163 0.293 0.3094 0.3061 423 1 1 0 fish
1054
+ 1 0.4535 0.2222 0.5392 0.2332 424 1 1 0 fish
1055
+ 5 0.2081 0.2935 0.3041 0.3069 424 1 1 0 fish
1056
+ 1 0.45 0.2237 0.534 0.2341 425 1 1 0 fish
1057
+ 5 0.2113 0.2944 0.3077 0.3074 425 1 1 0 fish
1058
+ 1 0.4533 0.2247 0.5387 0.2347 426 1 1 0 fish
1059
+ 5 0.2127 0.295 0.3079 0.3075 426 1 1 0 fish
1060
+ 1 0.4546 0.2251 0.5415 0.2348 427 1 1 0 fish
1061
+ 5 0.2126 0.2953 0.3064 0.3074 427 1 1 0 fish
1062
+ 1 0.453 0.2246 0.5411 0.2345 428 1 1 0 fish
1063
+ 5 0.2087 0.2952 0.3017 0.3074 428 1 1 0 fish
1064
+ 1 0.449 0.2237 0.5377 0.2336 429 1 1 0 fish
1065
+ 5 0.2085 0.2948 0.2997 0.3075 429 1 1 0 fish
1066
+ 1 0.4476 0.2221 0.535 0.232 430 1 1 0 fish
1067
+ 5 0.2081 0.2943 0.3015 0.3077 430 1 1 0 fish
1068
+ 1 0.4491 0.2199 0.537 0.2298 431 1 1 0 fish
1069
+ 5 0.2089 0.2934 0.3038 0.308 431 1 1 0 fish
1070
+ 1 0.4466 0.2178 0.5335 0.2276 432 1 1 0 fish
1071
+ 5 0.2078 0.2938 0.3024 0.3088 432 1 1 0 fish
1072
+ 1 0.4476 0.2157 0.5365 0.2266 433 1 1 0 fish
1073
+ 5 0.2093 0.2942 0.3057 0.3091 433 1 1 0 fish
1074
+ 1 0.4461 0.215 0.5361 0.2273 434 1 1 0 fish
1075
+ 5 0.2075 0.2955 0.3074 0.3093 434 1 1 0 fish
1076
+ 1 0.4449 0.2171 0.5308 0.2295 435 1 1 0 fish
1077
+ 5 0.2087 0.2951 0.3085 0.3084 435 1 1 0 fish
1078
+ 1 0.442 0.2191 0.5259 0.231 436 1 1 0 fish
1079
+ 5 0.2061 0.2947 0.3079 0.3079 436 1 1 0 fish
1080
+ 1 0.442 0.2198 0.5275 0.2311 437 1 1 0 fish
1081
+ 5 0.2062 0.2933 0.3056 0.3068 437 1 1 0 fish
1082
+ 1 0.4451 0.2202 0.5317 0.231 438 1 1 0 fish
1083
+ 5 0.2082 0.2912 0.3072 0.3057 438 1 1 0 fish
1084
+ 1 0.4465 0.2195 0.5336 0.2304 439 1 1 0 fish
1085
+ 5 0.2073 0.289 0.3075 0.3053 439 1 1 0 fish
1086
+ 1 0.4471 0.2188 0.5347 0.2299 440 1 1 0 fish
1087
+ 5 0.2069 0.2883 0.3081 0.306 440 1 1 0 fish
1088
+ 1 0.4442 0.2189 0.5306 0.2293 441 1 1 0 fish
1089
+ 5 0.2017 0.2918 0.2978 0.3085 441 1 1 0 fish
1090
+ 1 0.447 0.2173 0.534 0.2276 442 1 1 0 fish
1091
+ 5 0.2075 0.2938 0.2971 0.3098 442 1 1 0 fish
1092
+ 1 0.444 0.2152 0.5312 0.2259 443 1 1 0 fish
1093
+ 5 0.2097 0.2941 0.2986 0.3099 443 1 1 0 fish
1094
+ 1 0.4418 0.2139 0.5292 0.2254 444 1 1 0 fish
1095
+ 5 0.2103 0.294 0.3026 0.3095 444 1 1 0 fish
1096
+ 1 0.4441 0.2126 0.5322 0.2252 445 1 1 0 fish
1097
+ 5 0.2242 0.2945 0.315 0.3093 445 1 1 0 fish
1098
+ 1 0.4404 0.2154 0.5188 0.228 446 1 1 0 fish
1099
+ 5 0.2259 0.2939 0.3166 0.3084 446 1 1 0 fish
1100
+ 5 0.2211 0.2938 0.3119 0.3078 447 1 1 0 fish
1101
+ 1 0.4502 0.2185 0.5248 0.2313 448 1 1 0 fish
1102
+ 5 0.2185 0.294 0.3131 0.3071 448 1 1 0 fish
1103
+ 1 0.4576 0.2199 0.5349 0.2336 449 1 1 0 fish
1104
+ 5 0.2159 0.2936 0.3059 0.3061 449 1 1 0 fish
1105
+ 10 0.188 0.2524 0.2941 0.263 449 1 1 0 fish
1106
+ 1 0.4583 0.2221 0.5351 0.2361 450 1 1 0 fish
1107
+ 5 0.2163 0.2928 0.3088 0.3053 450 1 1 0 fish
1108
+ 10 0.2189 0.2501 0.3202 0.2605 450 1 1 0 fish
1109
+ 1 0.4579 0.2249 0.5357 0.2385 451 1 1 0 fish
1110
+ 5 0.2154 0.2918 0.3057 0.3047 451 1 1 0 fish
1111
+ 10 0.1911 0.2512 0.3015 0.2629 451 1 1 0 fish
1112
+ 1 0.4583 0.2272 0.5393 0.24 452 1 1 0 fish
1113
+ 5 0.2151 0.2894 0.3089 0.3038 452 1 1 0 fish
1114
+ 10 0.1905 0.252 0.3025 0.2638 452 1 1 0 fish
1115
+ 1 0.4567 0.229 0.5394 0.2407 453 1 1 0 fish
1116
+ 5 0.215 0.2878 0.3124 0.3041 453 1 1 0 fish
1117
+ 1 0.4584 0.2303 0.5421 0.2412 454 1 1 0 fish
1118
+ 5 0.2154 0.2894 0.3101 0.3056 454 1 1 0 fish
1119
+ 1 0.4599 0.2308 0.5447 0.2412 455 1 1 0 fish
1120
+ 5 0.2156 0.2921 0.3123 0.3074 455 1 1 0 fish
1121
+ 1 0.4598 0.2313 0.5457 0.2413 456 1 1 0 fish
1122
+ 5 0.22 0.2932 0.3181 0.3072 456 1 1 0 fish
1123
+ 1 0.4602 0.232 0.5465 0.2418 457 1 1 0 fish
1124
+ 5 0.2126 0.2934 0.315 0.307 457 1 1 0 fish
1125
+ 1 0.4614 0.2318 0.55 0.2421 458 1 1 0 fish
1126
+ 5 0.2117 0.2929 0.3141 0.3061 458 1 1 0 fish
1127
+ 1 0.4598 0.231 0.5479 0.2421 459 1 1 0 fish
1128
+ 5 0.2118 0.2916 0.3128 0.3051 459 1 1 0 fish
1129
+ 10 0.1862 0.2481 0.3061 0.2617 459 1 1 0 fish
1130
+ 1 0.4565 0.2276 0.5435 0.238 460 1 1 0 fish
1131
+ 5 0.2091 0.2897 0.31 0.3045 460 1 1 0 fish
1132
+ 1 0.4602 0.2259 0.5478 0.2359 461 1 1 0 fish
1133
+ 5 0.2056 0.2893 0.306 0.3047 461 1 1 0 fish
1134
+ 10 0.1845 0.248 0.3072 0.2629 461 1 1 0 fish
1135
+ 1 0.4595 0.2252 0.5471 0.2353 462 1 1 0 fish
1136
+ 5 0.2031 0.2899 0.3048 0.3055 462 1 1 0 fish
1137
+ 10 0.2104 0.248 0.3106 0.261 462 1 1 0 fish
1138
+ 1 0.4573 0.2255 0.5472 0.2357 463 1 1 0 fish
1139
+ 5 0.2014 0.2911 0.3038 0.3064 463 1 1 0 fish
1140
+ 10 0.2107 0.249 0.3072 0.2609 463 1 1 0 fish
1141
+ 1 0.4574 0.2263 0.5492 0.2365 464 1 1 0 fish
1142
+ 5 0.2068 0.2915 0.3075 0.3064 464 1 1 0 fish
1143
+ 10 0.2218 0.2495 0.3081 0.26 464 1 1 0 fish
1144
+ 1 0.4539 0.227 0.5463 0.2371 465 1 1 0 fish
1145
+ 5 0.2076 0.2917 0.3069 0.3063 465 1 1 0 fish
1146
+ 1 0.4528 0.226 0.5461 0.2363 466 1 1 0 fish
1147
+ 5 0.2085 0.2919 0.3064 0.306 466 1 1 0 fish
1148
+ 1 0.4519 0.2243 0.5447 0.235 467 1 1 0 fish
1149
+ 5 0.2159 0.2924 0.3084 0.3057 467 1 1 0 fish
1150
+ 1 0.4516 0.2214 0.543 0.2322 468 1 1 0 fish
1151
+ 5 0.2136 0.2929 0.307 0.3057 468 1 1 0 fish
1152
+ 1 0.4515 0.2177 0.5429 0.2287 469 1 1 0 fish
1153
+ 5 0.2103 0.2933 0.3046 0.3059 469 1 1 0 fish
1154
+ 10 0.1782 0.2548 0.2549 0.2666 469 1 1 0 fish
1155
+ 1 0.4521 0.2136 0.5395 0.2245 470 1 1 0 fish
1156
+ 5 0.2073 0.2927 0.3027 0.3054 470 1 1 0 fish
1157
+ 10 0.1816 0.2509 0.2756 0.2673 470 1 1 0 fish
1158
+ 1 0.4548 0.21 0.5428 0.2216 471 1 1 0 fish
1159
+ 5 0.2007 0.2911 0.295 0.305 471 1 1 0 fish
1160
+ 1 0.4527 0.2092 0.5393 0.2212 472 1 1 0 fish
1161
+ 5 0.201 0.2896 0.2954 0.3048 472 1 1 0 fish
1162
+ 1 0.4527 0.2094 0.5393 0.2219 473 1 1 0 fish
1163
+ 5 0.2018 0.2881 0.2978 0.305 473 1 1 0 fish
1164
+ 1 0.4551 0.2096 0.5431 0.2227 474 1 1 0 fish
1165
+ 5 0.2023 0.288 0.2989 0.306 474 1 1 0 fish
1166
+ 1 0.4489 0.2134 0.531 0.2257 475 1 1 0 fish
1167
+ 5 0.2021 0.2899 0.2964 0.3077 475 1 1 0 fish
1168
+ 1 0.4499 0.215 0.5293 0.2268 476 1 1 0 fish
1169
+ 5 0.2075 0.2913 0.3004 0.308 476 1 1 0 fish
1170
+ 1 0.4539 0.2154 0.5354 0.2268 477 1 1 0 fish
1171
+ 5 0.21 0.2926 0.3036 0.3078 477 1 1 0 fish
1172
+ 1 0.4572 0.2151 0.5413 0.2261 478 1 1 0 fish
1173
+ 5 0.2087 0.293 0.3018 0.3072 478 1 1 0 fish
1174
+ 1 0.4578 0.2141 0.5449 0.2252 479 1 1 0 fish
1175
+ 5 0.2136 0.2914 0.3077 0.3057 479 1 1 0 fish
1176
+ 1 0.4546 0.214 0.5417 0.225 480 1 1 0 fish
1177
+ 5 0.212 0.2903 0.3081 0.305 480 1 1 0 fish
1178
+ 1 0.4542 0.2141 0.5435 0.2252 481 1 1 0 fish
1179
+ 5 0.2175 0.29 0.3093 0.3047 481 1 1 0 fish
1180
+ 1 0.4544 0.2144 0.5432 0.2261 482 1 1 0 fish
1181
+ 5 0.212 0.2913 0.3045 0.3056 482 1 1 0 fish
1182
+ 1 0.4539 0.2151 0.543 0.2277 483 1 1 0 fish
1183
+ 5 0.2116 0.2923 0.3056 0.306 483 1 1 0 fish
1184
+ 1 0.4527 0.2165 0.5416 0.2301 484 1 1 0 fish
1185
+ 5 0.2107 0.2922 0.3055 0.3055 484 1 1 0 fish
1186
+ 1 0.4525 0.219 0.5411 0.2331 485 1 1 0 fish
1187
+ 5 0.2113 0.2915 0.3073 0.3053 485 1 1 0 fish
1188
+ 1 0.4498 0.2227 0.5337 0.2361 486 1 1 0 fish
1189
+ 5 0.2083 0.2914 0.3044 0.3055 486 1 1 0 fish
1190
+ 1 0.4515 0.2253 0.5346 0.2381 487 1 1 0 fish
1191
+ 5 0.2077 0.2912 0.3053 0.3057 487 1 1 0 fish
1192
+ 1 0.4523 0.2276 0.5341 0.2395 488 1 1 0 fish
1193
+ 5 0.2098 0.2907 0.307 0.3052 488 1 1 0 fish
1194
+ 1 0.4528 0.2286 0.5371 0.2399 489 1 1 0 fish
1195
+ 5 0.2083 0.29 0.3048 0.3048 489 1 1 0 fish
1196
+ 1 0.4522 0.2275 0.5365 0.2384 490 1 1 0 fish
1197
+ 5 0.2047 0.2874 0.3007 0.3032 490 1 1 0 fish
1198
+ 1 0.4526 0.2255 0.5381 0.2363 491 1 1 0 fish
1199
+ 5 0.2061 0.2845 0.301 0.302 491 1 1 0 fish
1200
+ 1 0.4511 0.2226 0.5389 0.2332 492 1 1 0 fish
1201
+ 5 0.2055 0.2836 0.3006 0.3027 492 1 1 0 fish
1202
+ 11 0.1899 0.2419 0.3026 0.2563 492 1 1 0 fish
1203
+ 1 0.4512 0.2201 0.5373 0.2303 493 1 1 0 fish
1204
+ 5 0.2036 0.2846 0.2972 0.3043 493 1 1 0 fish
1205
+ 11 0.1894 0.2412 0.3038 0.2561 493 1 1 0 fish
1206
+ 1 0.451 0.2179 0.5396 0.229 494 1 1 0 fish
1207
+ 5 0.2076 0.285 0.3024 0.305 494 1 1 0 fish
1208
+ 11 0.1864 0.2407 0.3034 0.2556 494 1 1 0 fish
1209
+ 1 0.4468 0.2189 0.5304 0.2303 495 1 1 0 fish
1210
+ 5 0.2066 0.2844 0.3028 0.3051 495 1 1 0 fish
1211
+ 11 0.1993 0.2416 0.303 0.2546 495 1 1 0 fish
1212
+ 1 0.4455 0.2205 0.5256 0.2318 496 1 1 0 fish
1213
+ 5 0.2095 0.2844 0.3032 0.3057 496 1 1 0 fish
1214
+ 11 0.1897 0.2419 0.2945 0.2552 496 1 1 0 fish
1215
+ 1 0.4476 0.2213 0.5283 0.2327 497 1 1 0 fish
1216
+ 5 0.2014 0.2896 0.2936 0.3086 497 1 1 0 fish
1217
+ 1 0.4464 0.2223 0.5268 0.2339 498 1 1 0 fish
1218
+ 5 0.2052 0.2908 0.302 0.3083 498 1 1 0 fish
1219
+ 11 0.1924 0.2416 0.2954 0.2548 498 1 1 0 fish
1220
+ 1 0.4489 0.2231 0.5308 0.2349 499 1 1 0 fish
1221
+ 5 0.2075 0.2916 0.3049 0.3076 499 1 1 0 fish
1222
+ 11 0.1875 0.2411 0.2996 0.2562 499 1 1 0 fish
1223
+ 1 0.4486 0.2254 0.529 0.2365 500 1 1 0 fish
1224
+ 5 0.2079 0.2899 0.3064 0.3062 500 1 1 0 fish
1225
+ 11 0.1824 0.2418 0.2974 0.2584 500 1 1 0 fish
1226
+ 1 0.4496 0.227 0.5324 0.2376 501 1 1 0 fish
1227
+ 5 0.2068 0.2871 0.3058 0.3046 501 1 1 0 fish
1228
+ 1 0.4531 0.2276 0.5373 0.2378 502 1 1 0 fish
1229
+ 5 0.2076 0.2836 0.3069 0.3025 502 1 1 0 fish
1230
+ 1 0.4507 0.2266 0.5353 0.237 503 1 1 0 fish
1231
+ 5 0.2046 0.2819 0.3033 0.3023 503 1 1 0 fish
1232
+ 1 0.4506 0.2247 0.5361 0.2351 504 1 1 0 fish
1233
+ 5 0.2006 0.284 0.2965 0.3042 504 1 1 0 fish
1234
+ 1 0.4474 0.223 0.5327 0.233 505 1 1 0 fish
1235
+ 5 0.2059 0.2844 0.3024 0.3046 505 1 1 0 fish
1236
+ 1 0.4516 0.2217 0.5391 0.2316 506 1 1 0 fish
1237
+ 5 0.2052 0.2845 0.302 0.3052 506 1 1 0 fish
1238
+ 1 0.4503 0.2213 0.5381 0.2316 507 1 1 0 fish
1239
+ 5 0.2068 0.2849 0.3027 0.3056 507 1 1 0 fish
1240
+ 11 0.1746 0.2455 0.2881 0.2644 507 1 1 0 fish
1241
+ 12 0.7685 0.2856 0.8248 0.2943 507 1 1 0 fish
1242
+ 1 0.4515 0.2214 0.5392 0.2322 508 1 1 0 fish
1243
+ 5 0.2104 0.2871 0.3069 0.3067 508 1 1 0 fish
1244
+ 11 0.1739 0.2452 0.2928 0.2661 508 1 1 0 fish
1245
+ 1 0.4485 0.222 0.5371 0.2333 509 1 1 0 fish
1246
+ 5 0.2091 0.2885 0.3052 0.3074 509 1 1 0 fish
1247
+ 1 0.4434 0.2244 0.5253 0.2349 510 1 1 0 fish
1248
+ 5 0.2036 0.2915 0.2979 0.3086 510 1 1 0 fish
1249
+ 1 0.4456 0.2253 0.5276 0.2354 511 1 1 0 fish
1250
+ 5 0.2083 0.2921 0.3043 0.3083 511 1 1 0 fish
1251
+ 11 0.1733 0.2469 0.2909 0.2673 511 1 1 0 fish
1252
+ 1 0.4455 0.2258 0.5294 0.2356 512 1 1 0 fish
1253
+ 5 0.2094 0.2922 0.3065 0.3083 512 1 1 0 fish
1254
+ 11 0.17 0.248 0.2924 0.2673 512 1 1 0 fish
1255
+ 12 0.7658 0.2772 0.8283 0.2866 512 1 1 0 fish
1256
+ 1 0.4467 0.2261 0.5354 0.2358 513 1 1 0 fish
1257
+ 5 0.2058 0.291 0.3068 0.3082 513 1 1 0 fish
1258
+ 11 0.1709 0.248 0.296 0.2669 513 1 1 0 fish
1259
+ 12 0.7617 0.2764 0.83 0.2865 513 1 1 0 fish
1260
+ 1 0.4456 0.2263 0.5338 0.2357 514 1 1 0 fish
1261
+ 5 0.2051 0.291 0.3052 0.3085 514 1 1 0 fish
1262
+ 11 0.1727 0.2474 0.2964 0.2661 514 1 1 0 fish
1263
+ 12 0.7695 0.2751 0.8368 0.2851 514 1 1 0 fish
1264
+ 1 0.4481 0.226 0.5366 0.2354 515 1 1 0 fish
1265
+ 5 0.2061 0.2917 0.3063 0.3085 515 1 1 0 fish
1266
+ 11 0.1723 0.2468 0.2935 0.2652 515 1 1 0 fish
1267
+ 1 0.4458 0.2257 0.5334 0.2348 516 1 1 0 fish
1268
+ 5 0.2075 0.2916 0.3072 0.308 516 1 1 0 fish
1269
+ 12 0.7618 0.2715 0.8331 0.2817 516 1 1 0 fish
1270
+ 1 0.4457 0.2246 0.5341 0.2341 517 1 1 0 fish
1271
+ 5 0.2067 0.292 0.3063 0.308 517 1 1 0 fish
1272
+ 12 0.7681 0.2694 0.842 0.2804 517 1 1 0 fish
1273
+ 1 0.4456 0.2237 0.5359 0.2337 518 1 1 0 fish
1274
+ 5 0.2066 0.2922 0.3054 0.3088 518 1 1 0 fish
1275
+ 1 0.4425 0.2232 0.5347 0.2341 519 1 1 0 fish
1276
+ 5 0.2074 0.2919 0.3037 0.3095 519 1 1 0 fish
1277
+ 1 0.4439 0.2229 0.5351 0.2343 520 1 1 0 fish
1278
+ 5 0.2012 0.2976 0.2921 0.3136 520 1 1 0 fish
1279
+ 1 0.4414 0.2231 0.5327 0.2345 521 1 1 0 fish
1280
+ 5 0.2086 0.3005 0.2968 0.315 521 1 1 0 fish
1281
+ 1 0.438 0.224 0.5259 0.2348 522 1 1 0 fish
1282
+ 5 0.2095 0.3018 0.2994 0.3152 522 1 1 0 fish
1283
+ 1 0.4416 0.2239 0.5293 0.234 523 1 1 0 fish
1284
+ 5 0.2108 0.301 0.3017 0.3137 523 1 1 0 fish
1285
+ 12 0.7495 0.2704 0.8234 0.2818 523 1 1 0 fish
1286
+ 1 0.4385 0.2233 0.5236 0.2331 524 1 1 0 fish
1287
+ 5 0.2072 0.2987 0.3004 0.3111 524 1 1 0 fish
1288
+ 12 0.7503 0.2707 0.8277 0.2822 524 1 1 0 fish
1289
+ 1 0.4433 0.2228 0.526 0.2322 525 1 1 0 fish
1290
+ 5 0.21 0.2956 0.3033 0.3079 525 1 1 0 fish
1291
+ 12 0.7494 0.2711 0.8283 0.2823 525 1 1 0 fish
1292
+ 1 0.4458 0.2215 0.5292 0.2307 526 1 1 0 fish
1293
+ 5 0.2111 0.2926 0.307 0.3057 526 1 1 0 fish
1294
+ 12 0.7457 0.271 0.8247 0.2819 526 1 1 0 fish
1295
+ 13 0.1686 0.2472 0.2907 0.2699 526 1 1 0 fish
1296
+ 1 0.4464 0.2199 0.5312 0.229 527 1 1 0 fish
1297
+ 5 0.2146 0.2913 0.3105 0.3047 527 1 1 0 fish
1298
+ 12 0.7538 0.2705 0.8321 0.281 527 1 1 0 fish
1299
+ 13 0.176 0.2484 0.2873 0.2684 527 1 1 0 fish
1300
+ 1 0.4433 0.2183 0.5283 0.2277 528 1 1 0 fish
1301
+ 5 0.2115 0.2899 0.3126 0.3046 528 1 1 0 fish
1302
+ 12 0.7597 0.2692 0.8379 0.2796 528 1 1 0 fish
1303
+ 13 0.1823 0.2524 0.2761 0.2667 528 1 1 0 fish
1304
+ 1 0.445 0.2176 0.5319 0.2275 529 1 1 0 fish
1305
+ 5 0.2162 0.2867 0.3171 0.303 529 1 1 0 fish
1306
+ 13 0.1744 0.2509 0.2664 0.2642 529 1 1 0 fish
1307
+ 1 0.4453 0.2173 0.5336 0.2276 530 1 1 0 fish
1308
+ 5 0.213 0.2864 0.3132 0.3037 530 1 1 0 fish
1309
+ 13 0.1771 0.2477 0.2761 0.2622 530 1 1 0 fish
1310
+ 1 0.4408 0.2191 0.5259 0.2292 531 1 1 0 fish
1311
+ 5 0.2107 0.2877 0.3149 0.3053 531 1 1 0 fish
1312
+ 13 0.1776 0.2444 0.2861 0.2608 531 1 1 0 fish
1313
+ 1 0.4453 0.2199 0.5296 0.2297 532 1 1 0 fish
1314
+ 5 0.211 0.2883 0.3153 0.3054 532 1 1 0 fish
1315
+ 13 0.1783 0.2426 0.2889 0.26 532 1 1 0 fish
1316
+ 1 0.45 0.2201 0.5367 0.2297 533 1 1 0 fish
1317
+ 5 0.2105 0.2889 0.3142 0.3053 533 1 1 0 fish
1318
+ 13 0.1769 0.2418 0.2883 0.2598 533 1 1 0 fish
1319
+ 1 0.4511 0.2193 0.5393 0.2287 534 1 1 0 fish
1320
+ 5 0.2112 0.2894 0.3148 0.3054 534 1 1 0 fish
1321
+ 13 0.1733 0.2421 0.2887 0.2604 534 1 1 0 fish
1322
+ 1 0.4514 0.2177 0.5392 0.227 535 1 1 0 fish
1323
+ 5 0.2114 0.2885 0.3139 0.3048 535 1 1 0 fish
1324
+ 13 0.1738 0.242 0.2917 0.2608 535 1 1 0 fish
1325
+ 1 0.4484 0.2157 0.533 0.2254 536 1 1 0 fish
1326
+ 5 0.2109 0.2876 0.3131 0.3046 536 1 1 0 fish
1327
+ 13 0.1769 0.2419 0.2931 0.2605 536 1 1 0 fish
1328
+ 1 0.4516 0.2139 0.5389 0.2248 537 1 1 0 fish
1329
+ 5 0.2099 0.2875 0.3105 0.3045 537 1 1 0 fish
1330
+ 13 0.1797 0.2425 0.2941 0.2607 537 1 1 0 fish
1331
+ 1 0.4474 0.2168 0.5276 0.2273 538 1 1 0 fish
1332
+ 5 0.2079 0.2882 0.3086 0.3052 538 1 1 0 fish
1333
+ 13 0.1816 0.2431 0.2937 0.2618 538 1 1 0 fish
1334
+ 1 0.4535 0.2175 0.5315 0.2285 539 1 1 0 fish
1335
+ 5 0.2094 0.2883 0.3099 0.3052 539 1 1 0 fish
1336
+ 1 0.4601 0.2186 0.5395 0.23 540 1 1 0 fish
1337
+ 5 0.2097 0.2888 0.3106 0.3056 540 1 1 0 fish
1338
+ 1 0.4602 0.218 0.542 0.2306 541 1 1 0 fish
1339
+ 5 0.2094 0.2896 0.3095 0.3062 541 1 1 0 fish
1340
+ 1 0.4535 0.2198 0.5307 0.2321 542 1 1 0 fish
1341
+ 5 0.2087 0.2904 0.3082 0.3068 542 1 1 0 fish
1342
+ 1 0.454 0.2193 0.5322 0.2313 543 1 1 0 fish
1343
+ 5 0.2101 0.2909 0.309 0.307 543 1 1 0 fish
1344
+ 1 0.454 0.2185 0.5337 0.2308 544 1 1 0 fish
1345
+ 5 0.207 0.291 0.307 0.3073 544 1 1 0 fish
1346
+ 1 0.453 0.2184 0.5349 0.2312 545 1 1 0 fish
1347
+ 5 0.2089 0.2913 0.3063 0.3077 545 1 1 0 fish
1348
+ 1 0.4526 0.2193 0.5377 0.2321 546 1 1 0 fish
1349
+ 5 0.2097 0.2918 0.3071 0.3083 546 1 1 0 fish
1350
+ 1 0.4538 0.2211 0.539 0.2331 547 1 1 0 fish
1351
+ 5 0.207 0.2932 0.3029 0.3088 547 1 1 0 fish
1352
+ 1 0.4539 0.2224 0.5413 0.2335 548 1 1 0 fish
1353
+ 5 0.2056 0.2942 0.304 0.3086 548 1 1 0 fish
1354
+ 1 0.4516 0.2227 0.541 0.2333 549 1 1 0 fish
1355
+ 5 0.209 0.2949 0.3093 0.3085 549 1 1 0 fish
1356
+ 1 0.4503 0.2223 0.5391 0.2326 550 1 1 0 fish
1357
+ 5 0.2099 0.2946 0.3073 0.3079 550 1 1 0 fish
1358
+ 1 0.4466 0.2221 0.5359 0.2321 551 1 1 0 fish
1359
+ 5 0.2094 0.2937 0.3091 0.3078 551 1 1 0 fish
1360
+ 1 0.4482 0.2214 0.5356 0.2315 552 1 1 0 fish
1361
+ 5 0.2125 0.2941 0.3065 0.3083 552 1 1 0 fish
1362
+ 1 0.4483 0.2201 0.5346 0.2309 553 1 1 0 fish
1363
+ 5 0.216 0.2952 0.309 0.3092 553 1 1 0 fish
1364
+ 1 0.4429 0.2202 0.528 0.2317 554 1 1 0 fish
1365
+ 5 0.2185 0.2969 0.3124 0.3104 554 1 1 0 fish
1366
+ 1 0.4435 0.2204 0.5311 0.2332 555 1 1 0 fish
1367
+ 5 0.2159 0.2975 0.3113 0.3109 555 1 1 0 fish
1368
+ 1 0.4377 0.2247 0.5176 0.2367 556 1 1 0 fish
1369
+ 5 0.2121 0.2977 0.3095 0.3111 556 1 1 0 fish
1370
+ 1 0.4422 0.2279 0.5232 0.2395 557 1 1 0 fish
1371
+ 5 0.2115 0.2967 0.308 0.3104 557 1 1 0 fish
1372
+ 1 0.4466 0.2309 0.5299 0.2419 558 1 1 0 fish
1373
+ 5 0.2095 0.2954 0.3062 0.31 558 1 1 0 fish
1374
+ 1 0.4516 0.2329 0.536 0.2438 559 1 1 0 fish
1375
+ 5 0.2109 0.2936 0.3065 0.3091 559 1 1 0 fish
1376
+ 1 0.4534 0.234 0.539 0.2451 560 1 1 0 fish
1377
+ 1 0.4504 0.2366 0.5339 0.2472 561 1 1 0 fish
1378
+ 5 0.2083 0.294 0.3047 0.3088 561 1 1 0 fish
1379
+ 1 0.4527 0.2382 0.5378 0.2483 562 1 1 0 fish
1380
+ 5 0.2069 0.2945 0.304 0.3086 562 1 1 0 fish
1381
+ 1 0.4513 0.2385 0.5342 0.2483 563 1 1 0 fish
1382
+ 5 0.2063 0.2938 0.304 0.3079 563 1 1 0 fish
1383
+ 1 0.4521 0.2385 0.5345 0.2481 564 1 1 0 fish
1384
+ 5 0.2007 0.2943 0.2951 0.3077 564 1 1 0 fish
1385
+ 1 0.4542 0.2375 0.5369 0.2473 565 1 1 0 fish
1386
+ 5 0.1993 0.2944 0.2932 0.3075 565 1 1 0 fish
1387
+ 1 0.4588 0.2369 0.5416 0.2475 566 1 1 0 fish
1388
+ 5 0.1995 0.2936 0.2941 0.3074 566 1 1 0 fish
1389
+ 1 0.4595 0.2341 0.5375 0.2443 567 1 1 0 fish
1390
+ 5 0.1998 0.2925 0.2937 0.3074 567 1 1 0 fish
1391
+ 1 0.4675 0.2321 0.5424 0.242 568 1 1 0 fish
1392
+ 5 0.1964 0.293 0.289 0.3086 568 1 1 0 fish
1393
+ 1 0.4746 0.2302 0.5505 0.2401 569 1 1 0 fish
1394
+ 5 0.1976 0.2934 0.2913 0.3097 569 1 1 0 fish
1395
+ 1 0.4718 0.2286 0.5483 0.2388 570 1 1 0 fish
1396
+ 5 0.2018 0.2935 0.2955 0.3102 570 1 1 0 fish
1397
+ 1 0.4716 0.2274 0.5503 0.2382 571 1 1 0 fish
1398
+ 5 0.1998 0.2946 0.2915 0.3111 571 1 1 0 fish
1399
+ 1 0.4725 0.2257 0.5538 0.2361 572 1 1 0 fish
1400
+ 5 0.2009 0.2951 0.2931 0.3114 572 1 1 0 fish
1401
+ 1 0.4684 0.2244 0.5525 0.2346 573 1 1 0 fish
1402
+ 5 0.2044 0.296 0.2975 0.3114 573 1 1 0 fish
1403
+ 1 0.4701 0.2237 0.5552 0.2342 574 1 1 0 fish
1404
+ 1 0.4676 0.2239 0.5545 0.2347 575 1 1 0 fish
1405
+ 5 0.2053 0.2944 0.2986 0.3099 575 1 1 0 fish
1406
+ 1 0.464 0.2252 0.5471 0.2355 576 1 1 0 fish
1407
+ 1 0.4636 0.2259 0.5469 0.2359 577 1 1 0 fish
1408
+ 1 0.4627 0.2255 0.546 0.2355 578 1 1 0 fish
1409
+ 5 0.2133 0.2922 0.305 0.3065 578 1 1 0 fish
1410
+ 1 0.4625 0.2243 0.5478 0.2347 579 1 1 0 fish
1411
+ 5 0.2105 0.2916 0.3051 0.3067 579 1 1 0 fish
1412
+ 1 0.459 0.2223 0.5433 0.2324 580 1 1 0 fish
1413
+ 5 0.2088 0.2902 0.3034 0.3065 580 1 1 0 fish
1414
+ 1 0.4592 0.2209 0.5437 0.2308 581 1 1 0 fish
1415
+ 5 0.2062 0.29 0.3013 0.307 581 1 1 0 fish
1416
+ 1 0.4615 0.2196 0.5482 0.2303 582 1 1 0 fish
1417
+ 5 0.2076 0.2912 0.3007 0.3073 582 1 1 0 fish
1418
+ 1 0.4596 0.2196 0.5485 0.2307 583 1 1 0 fish
1419
+ 5 0.2066 0.292 0.3021 0.3075 583 1 1 0 fish
1420
+ 1 0.4504 0.2214 0.5347 0.2319 584 1 1 0 fish
1421
+ 5 0.2056 0.2914 0.3022 0.3069 584 1 1 0 fish
1422
+ 1 0.4516 0.2223 0.5361 0.2323 585 1 1 0 fish
1423
+ 5 0.2061 0.2898 0.3041 0.3057 585 1 1 0 fish
1424
+ 1 0.4537 0.2228 0.5381 0.2326 586 1 1 0 fish
1425
+ 5 0.2043 0.2872 0.3011 0.3038 586 1 1 0 fish
1426
+ 1 0.4541 0.2227 0.5403 0.2328 587 1 1 0 fish
1427
+ 5 0.2075 0.2837 0.3025 0.3012 587 1 1 0 fish
1428
+ 1 0.4535 0.2227 0.5399 0.2333 588 1 1 0 fish
1429
+ 5 0.2086 0.2796 0.306 0.299 588 1 1 0 fish
1430
+ 1 0.4495 0.2229 0.5379 0.2337 589 1 1 0 fish
1431
+ 5 0.2054 0.2826 0.2969 0.301 589 1 1 0 fish
1432
+ 1 0.4485 0.2236 0.5389 0.2342 590 1 1 0 fish
1433
+ 5 0.2095 0.282 0.3037 0.3007 590 1 1 0 fish
1434
+ 1 0.45 0.2237 0.5411 0.2339 591 1 1 0 fish
1435
+ 5 0.2117 0.2803 0.308 0.301 591 1 1 0 fish
1436
+ 1 0.4494 0.2234 0.5403 0.2333 592 1 1 0 fish
1437
+ 5 0.2043 0.2851 0.2943 0.3048 592 1 1 0 fish
1438
+ 1 0.4512 0.2229 0.5427 0.2325 593 1 1 0 fish
1439
+ 5 0.2107 0.284 0.3016 0.304 593 1 1 0 fish
1440
+ 1 0.4498 0.2227 0.54 0.2323 594 1 1 0 fish
1441
+ 5 0.2102 0.2834 0.305 0.3047 594 1 1 0 fish
1442
+ 1 0.4495 0.2225 0.5386 0.2324 595 1 1 0 fish
1443
+ 5 0.2109 0.282 0.3068 0.3044 595 1 1 0 fish
1444
+ 1 0.4454 0.2239 0.5297 0.2337 596 1 1 0 fish
1445
+ 1 0.4494 0.2246 0.5336 0.2346 597 1 1 0 fish
1446
+ 5 0.2096 0.2847 0.3035 0.3078 597 1 1 0 fish
1447
+ 1 0.4495 0.2255 0.5338 0.2353 598 1 1 0 fish
1448
+ 5 0.2116 0.2867 0.3028 0.311 598 1 1 0 fish
1449
+ 1 0.4466 0.2262 0.5345 0.2359 599 1 1 0 fish
1450
+ 5 0.2082 0.2945 0.2948 0.3158 599 1 1 0 fish
1451
+ 1 0.4451 0.2253 0.5339 0.2349 600 1 1 0 fish
1452
+ 5 0.2101 0.2944 0.3015 0.3131 600 1 1 0 fish
1453
+ 1 0.4428 0.2247 0.5325 0.2344 601 1 1 0 fish
1454
+ 5 0.2122 0.2927 0.306 0.3106 601 1 1 0 fish
1455
+ 1 0.4415 0.2241 0.5298 0.2341 602 1 1 0 fish
1456
+ 5 0.2117 0.2913 0.3062 0.3091 602 1 1 0 fish
1457
+ 1 0.4398 0.2234 0.5307 0.234 603 1 1 0 fish
1458
+ 5 0.2111 0.2902 0.3059 0.308 603 1 1 0 fish
1459
+ 1 0.4374 0.2233 0.5267 0.2344 604 1 1 0 fish
1460
+ 5 0.2093 0.2898 0.3029 0.3075 604 1 1 0 fish
1461
+ 1 0.4362 0.2243 0.5217 0.2352 605 1 1 0 fish
1462
+ 5 0.2098 0.2895 0.3046 0.3072 605 1 1 0 fish
1463
+ 1 0.4403 0.2249 0.5263 0.2356 606 1 1 0 fish
1464
+ 5 0.2104 0.289 0.3038 0.3068 606 1 1 0 fish
1465
+ 1 0.4443 0.2254 0.5319 0.2358 607 1 1 0 fish
1466
+ 5 0.2123 0.2869 0.3035 0.3057 607 1 1 0 fish
1467
+ 1 0.4488 0.2252 0.5342 0.2356 608 1 1 0 fish
1468
+ 5 0.2052 0.2907 0.2946 0.3079 608 1 1 0 fish
1469
+ 14 0.1823 0.2522 0.254 0.2648 608 1 1 0 fish
1470
+ 1 0.4482 0.2249 0.5332 0.2353 609 1 1 0 fish
1471
+ 1 0.4517 0.2245 0.5364 0.2348 610 1 1 0 fish
1472
+ 5 0.2125 0.291 0.304 0.3081 610 1 1 0 fish
1473
+ 1 0.4522 0.2246 0.5393 0.2344 611 1 1 0 fish
1474
+ 5 0.2217 0.2905 0.3143 0.3078 611 1 1 0 fish
1475
+ 14 0.1649 0.2544 0.2425 0.2663 611 1 1 0 fish
1476
+ 1 0.4524 0.2239 0.5395 0.2336 612 1 1 0 fish
1477
+ 5 0.2213 0.2898 0.3136 0.3073 612 1 1 0 fish
1478
+ 14 0.1802 0.2548 0.2551 0.2663 612 1 1 0 fish
1479
+ 1 0.451 0.2234 0.5378 0.233 613 1 1 0 fish
1480
+ 5 0.2172 0.2901 0.312 0.3072 613 1 1 0 fish
1481
+ 14 0.1907 0.2547 0.27 0.2671 613 1 1 0 fish
1482
+ 1 0.4542 0.2226 0.5391 0.2321 614 1 1 0 fish
1483
+ 5 0.2152 0.2905 0.3141 0.3067 614 1 1 0 fish
1484
+ 1 0.4545 0.2211 0.5413 0.231 615 1 1 0 fish
1485
+ 5 0.2134 0.2892 0.3134 0.3049 615 1 1 0 fish
1486
+ 1 0.4545 0.2192 0.5418 0.229 616 1 1 0 fish
1487
+ 5 0.2153 0.2861 0.3159 0.3027 616 1 1 0 fish
1488
+ 14 0.1933 0.2531 0.2967 0.2696 616 1 1 0 fish
1489
+ 1 0.4534 0.2174 0.5411 0.227 617 1 1 0 fish
1490
+ 5 0.2136 0.2832 0.3126 0.3011 617 1 1 0 fish
1491
+ 1 0.4537 0.2155 0.5447 0.2261 618 1 1 0 fish
1492
+ 5 0.2142 0.284 0.3123 0.3025 618 1 1 0 fish
1493
+ 1 0.4536 0.2158 0.5437 0.2266 619 1 1 0 fish
1494
+ 5 0.2069 0.2887 0.3005 0.3057 619 1 1 0 fish
1495
+ 1 0.4511 0.2163 0.5395 0.2269 620 1 1 0 fish
1496
+ 5 0.2136 0.29 0.3056 0.3067 620 1 1 0 fish
1497
+ 1 0.4509 0.2168 0.5382 0.227 621 1 1 0 fish
1498
+ 5 0.2194 0.2905 0.3145 0.3075 621 1 1 0 fish
1499
+ 14 0.1986 0.2503 0.3079 0.2656 621 1 1 0 fish
1500
+ 1 0.4533 0.217 0.5416 0.2269 622 1 1 0 fish
1501
+ 5 0.2204 0.2901 0.3161 0.3078 622 1 1 0 fish
1502
+ 14 0.1957 0.2499 0.306 0.2655 622 1 1 0 fish
1503
+ 1 0.4561 0.2172 0.5437 0.2269 623 1 1 0 fish
1504
+ 5 0.2211 0.2894 0.3153 0.3083 623 1 1 0 fish
1505
+ 14 0.1941 0.2503 0.3055 0.2659 623 1 1 0 fish
1506
+ 1 0.4547 0.2173 0.5427 0.2273 624 1 1 0 fish
1507
+ 5 0.2164 0.2899 0.3097 0.3095 624 1 1 0 fish
1508
+ 14 0.207 0.2506 0.3092 0.2655 624 1 1 0 fish
1509
+ 1 0.4571 0.218 0.543 0.2281 625 1 1 0 fish
1510
+ 5 0.2115 0.2941 0.3 0.3124 625 1 1 0 fish
1511
+ 14 0.1972 0.2513 0.3049 0.2658 625 1 1 0 fish
1512
+ 1 0.4561 0.2193 0.5409 0.2292 626 1 1 0 fish
1513
+ 5 0.2137 0.2948 0.3016 0.3126 626 1 1 0 fish
1514
+ 14 0.2003 0.2517 0.306 0.2648 626 1 1 0 fish
1515
+ 1 0.4551 0.2206 0.5408 0.2302 627 1 1 0 fish
1516
+ 5 0.2146 0.2956 0.3042 0.3125 627 1 1 0 fish
1517
+ 1 0.4552 0.2212 0.5415 0.2306 628 1 1 0 fish
1518
+ 5 0.212 0.295 0.3025 0.3115 628 1 1 0 fish
1519
+ 1 0.458 0.2215 0.5443 0.2307 629 1 1 0 fish
1520
+ 5 0.2109 0.2937 0.3028 0.3106 629 1 1 0 fish
1521
+ 1 0.4554 0.2208 0.5433 0.2299 630 1 1 0 fish
1522
+ 5 0.2069 0.2935 0.3005 0.3105 630 1 1 0 fish
1523
+ 1 0.453 0.2193 0.5422 0.2286 631 1 1 0 fish
1524
+ 5 0.2064 0.2936 0.3003 0.311 631 1 1 0 fish
1525
+ 1 0.4477 0.2184 0.537 0.2281 632 1 1 0 fish
1526
+ 5 0.206 0.2932 0.3018 0.3117 632 1 1 0 fish
1527
+ 1 0.4474 0.2172 0.5382 0.2279 633 1 1 0 fish
1528
+ 5 0.198 0.2983 0.2831 0.3158 633 1 1 0 fish
1529
+ 1 0.4447 0.219 0.5293 0.2297 634 1 1 0 fish
1530
+ 5 0.2051 0.2986 0.2917 0.3168 634 1 1 0 fish
1531
+ 1 0.4457 0.219 0.5304 0.2298 635 1 1 0 fish
1532
+ 5 0.2084 0.3023 0.2957 0.3186 635 1 1 0 fish
1533
+ 1 0.4431 0.2196 0.5274 0.2297 636 1 1 0 fish
1534
+ 5 0.2091 0.3038 0.2988 0.3185 636 1 1 0 fish
1535
+ 1 0.445 0.2194 0.5313 0.2294 637 1 1 0 fish
1536
+ 5 0.2081 0.3028 0.296 0.3162 637 1 1 0 fish
1537
+ 1 0.4436 0.2191 0.5313 0.2297 638 1 1 0 fish
1538
+ 5 0.2096 0.3007 0.2989 0.3134 638 1 1 0 fish
1539
+ 1 0.444 0.2193 0.533 0.231 639 1 1 0 fish
1540
+ 5 0.2093 0.2978 0.3035 0.3107 639 1 1 0 fish
static/example/input_file_vatic.xml ADDED
The diff for this file is too large to render. See raw diff
 
static/example/test_data/kenai-val.json ADDED
@@ -0,0 +1 @@
 
 
1
+ [{"clip_name": "2018-06-03-JD154_LeftFar_Stratum2_Set1_LO_2018-06-03_121003_1310_1790", "num_frames": 480, "framerate": 8.0, "width": 783, "height": 1917, "x_meter_start": -2.87116577501037, "x_meter_stop": 2.8701637988644855, "y_meter_start": 21.983411658223996, "y_meter_stop": 7.927053046323488}, {"clip_name": "2018-06-03-JD154_LeftFar_Stratum2_Set1_LO_2018-06-03_201003_584_1064", "num_frames": 480, "framerate": 8.0, "width": 779, "height": 1909, "x_meter_start": -2.8686535076263047, "x_meter_stop": 2.8679358525224474, "y_meter_start": 21.98468352034983, "y_meter_stop": 7.926725768714441}, {"clip_name": "2018-06-03-JD154_LeftFar_Stratum2_Set1_LO_2018-06-03_001003_2789_2989", "num_frames": 200, "framerate": 8.0, "width": 783, "height": 1919, "x_meter_start": -2.8682773507234263, "x_meter_stop": 2.867210603682504, "y_meter_start": 21.983547281683418, "y_meter_stop": 7.926840532634911}, {"clip_name": "2018-06-03-JD154_LeftFar_Stratum2_Set1_LO_2018-06-03_031003_1599_1799", "num_frames": 200, "framerate": 8.0, "width": 784, "height": 1921, "x_meter_start": -2.8653648179124276, "x_meter_stop": 2.8715449587330624, "y_meter_start": 21.98414265301662, "y_meter_stop": 7.927250202843165}, {"clip_name": "2018-06-03-JD154_LeftFar_Stratum2_Set1_LO_2018-06-03_051003_1782_1982", "num_frames": 200, "framerate": 8.0, "width": 784, "height": 1921, "x_meter_start": -2.8643799783160855, "x_meter_stop": 2.870540058287995, "y_meter_start": 21.978656556047227, "y_meter_stop": 7.926639476561972}, {"clip_name": "2018-06-03-JD154_LeftFar_Stratum2_Set1_LO_2018-06-03_211004_1679_1879", "num_frames": 200, "framerate": 8.0, "width": 779, "height": 1909, "x_meter_start": -2.86773591255701, "x_meter_stop": 2.8670004545006966, "y_meter_start": 21.987096548986642, "y_meter_stop": 7.926318036688544}, {"clip_name": "2018-06-03-JD154_LeftFar_Stratum2_Set1_LO_2018-06-03_221003_329_529", "num_frames": 200, "framerate": 8.0, "width": 779, "height": 1911, "x_meter_start": -2.8658923604881603, "x_meter_stop": 2.865109320616391, "y_meter_start": 21.985871288313824, "y_meter_stop": 7.92689283826145}, {"clip_name": "2018-06-03-JD154_LeftFar_Stratum2_Set1_LO_2018-06-03_221003_1335_1538", "num_frames": 203, "framerate": 8.0, "width": 779, "height": 1911, "x_meter_start": -2.8658923604881603, "x_meter_stop": 2.865109320616391, "y_meter_start": 21.985871288313824, "y_meter_stop": 7.92689283826145}, {"clip_name": "2018-06-03-JD154_LeftFar_Stratum2_Set1_LO_2018-06-03_231003_2237_2437", "num_frames": 200, "framerate": 8.0, "width": 779, "height": 1912, "x_meter_start": -2.8649653317561494, "x_meter_stop": 2.864164530960065, "y_meter_start": 21.988195433318815, "y_meter_stop": 7.9264543582053335}, {"clip_name": "2018-06-03-JD154_LeftFar_Stratum2_Set1_LO_2018-06-03_231003_3095_3295", "num_frames": 200, "framerate": 8.0, "width": 779, "height": 1912, "x_meter_start": -2.8649653317561494, "x_meter_stop": 2.864164530960065, "y_meter_start": 21.988195433318815, "y_meter_stop": 7.9264543582053335}, {"clip_name": "2018-06-03-JD154_LeftFar_Stratum2_Set1_LO_2018-06-03_231003_3595_3795", "num_frames": 200, "framerate": 8.0, "width": 779, "height": 1912, "x_meter_start": -2.8649653317561494, "x_meter_stop": 2.864164530960065, "y_meter_start": 21.988195433318815, "y_meter_stop": 7.9264543582053335}, {"clip_name": "2018-06-03-JD154_LeftFar_Stratum1_Set1_LO_2018-06-03_020004_3240_3840", "num_frames": 600, "framerate": 10.0, "width": 288, "height": 623, "x_meter_start": -1.0466262625757354, "x_meter_stop": 1.0463822316934352, "y_meter_start": 7.993872108126551, "y_meter_stop": 3.466287761148449}, {"clip_name": "2018-06-03-JD154_LeftFar_Stratum1_Set1_LO_2018-06-03_030004_1934_2534", "num_frames": 600, "framerate": 10.0, "width": 288, "height": 624, "x_meter_start": -1.0462713969648414, "x_meter_stop": 1.0460154145454643, "y_meter_start": 7.999817282817542, "y_meter_stop": 3.4665291912118787}, {"clip_name": "2018-06-03-JD154_LeftFar_Stratum1_Set1_LO_2018-06-03_050004_319_919", "num_frames": 600, "framerate": 10.0, "width": 288, "height": 624, "x_meter_start": -1.045909383895277, "x_meter_stop": 1.0456474750627376, "y_meter_start": 7.997744384709836, "y_meter_stop": 3.466037856967471}, {"clip_name": "2018-06-03-JD154_LeftFar_Stratum1_Set1_LO_2018-06-03_070004_651_1251", "num_frames": 600, "framerate": 10.0, "width": 288, "height": 624, "x_meter_start": -1.0455501763804802, "x_meter_stop": 1.0452763318075926, "y_meter_start": 7.9963872678490375, "y_meter_stop": 3.4662631667748793}, {"clip_name": "2018-06-03-JD154_LeftFar_Stratum1_Set1_LO_2018-06-03_100004_2931_3531", "num_frames": 600, "framerate": 10.0, "width": 288, "height": 623, "x_meter_start": -1.0462705129739105, "x_meter_stop": 1.0460145307708133, "y_meter_start": 7.999810523800587, "y_meter_stop": 3.466526262353686}, {"clip_name": "2018-06-03-JD154_LeftFar_Stratum1_Set1_LO_2018-06-03_110004_3942_4312", "num_frames": 370, "framerate": 10.0, "width": 288, "height": 623, "x_meter_start": -1.046981829498079, "x_meter_stop": 1.0467497583553331, "y_meter_start": 7.995196207877309, "y_meter_stop": 3.4660476688749626}, {"clip_name": "2018-06-03-JD154_LeftFar_Stratum1_Set1_LO_2018-06-03_120004_2044_2644", "num_frames": 600, "framerate": 10.0, "width": 288, "height": 623, "x_meter_start": -1.0480448609673578, "x_meter_stop": 1.0478426922245996, "y_meter_start": 7.999831254254149, "y_meter_stop": 3.4660189430090464}, {"clip_name": "2018-06-03-JD154_LeftFar_Stratum1_Set1_LO_2018-06-03_130004_4908_5508", "num_frames": 600, "framerate": 10.0, "width": 286, "height": 621, "x_meter_start": -1.0421625803559813, "x_meter_stop": 1.0419963563161359, "y_meter_start": 7.999083359650095, "y_meter_stop": 3.466402035838708}, {"clip_name": "2018-06-03-JD154_LeftFar_Stratum1_Set1_LO_2018-06-03_140004_408_1008", "num_frames": 600, "framerate": 10.0, "width": 286, "height": 621, "x_meter_start": -1.0431957314242126, "x_meter_stop": 1.0430595536170344, "y_meter_start": 7.996228228491015, "y_meter_stop": 3.4662823123699855}, {"clip_name": "2018-06-03-JD154_LeftFar_Stratum1_Set1_LO_2018-06-03_140004_4995_5594", "num_frames": 599, "framerate": 10.0, "width": 286, "height": 621, "x_meter_start": -1.0431957314242126, "x_meter_stop": 1.0430595536170344, "y_meter_start": 7.996228228491015, "y_meter_stop": 3.4662823123699855}, {"clip_name": "2018-06-03-JD154_LeftFar_Stratum1_Set1_LO_2018-06-03_150004_4847_5447", "num_frames": 600, "framerate": 10.0, "width": 286, "height": 621, "x_meter_start": -1.0442176043168998, "x_meter_stop": 1.0441115349558863, "y_meter_start": 8.00056689969905, "y_meter_stop": 3.466117964424924}, {"clip_name": "2018-06-03-JD154_LeftFar_Stratum1_Set1_LO_2018-06-03_170004_1169_1769", "num_frames": 600, "framerate": 10.0, "width": 286, "height": 620, "x_meter_start": -1.0452325006735204, "x_meter_stop": 1.045156600683589, "y_meter_start": 7.997536108080169, "y_meter_stop": 3.4659233708724493}, {"clip_name": "2018-06-03-JD154_LeftFar_Stratum1_Set1_LO_2018-06-03_170004_2801_3401", "num_frames": 600, "framerate": 10.0, "width": 286, "height": 620, "x_meter_start": -1.0452325006735204, "x_meter_stop": 1.045156600683589, "y_meter_start": 7.997536108080169, "y_meter_stop": 3.4659233708724493}, {"clip_name": "2018-06-03-JD154_LeftFar_Stratum1_Set1_LO_2018-06-03_180004_3404_4004", "num_frames": 600, "framerate": 10.0, "width": 286, "height": 620, "x_meter_start": -1.045571630305821, "x_meter_stop": 1.0455017622941847, "y_meter_start": 7.999431143141726, "y_meter_stop": 3.4663349773654906}, {"clip_name": "2018-06-03-JD154_LeftFar_Stratum1_Set1_LO_2018-06-03_200004_0_330", "num_frames": 330, "framerate": 10.0, "width": 286, "height": 620, "x_meter_start": -1.0455709281119119, "x_meter_stop": 1.0455010601471995, "y_meter_start": 7.999425770815404, "y_meter_stop": 3.4663326494145332}, {"clip_name": "2018-06-03-JD154_LeftFar_Stratum1_Set1_LO_2018-06-03_210004_2118_2718", "num_frames": 600, "framerate": 10.0, "width": 286, "height": 620, "x_meter_start": -1.04523223734974, "x_meter_stop": 1.0451563373789308, "y_meter_start": 7.997534093273399, "y_meter_stop": 3.4659224977077487}, {"clip_name": "2018-06-03-JD154_LeftFar_Stratum1_Set1_LO_2018-06-03_220004_1434_2034", "num_frames": 600, "framerate": 10.0, "width": 286, "height": 619, "x_meter_start": -1.0448966445436738, "x_meter_stop": 1.0448086637007103, "y_meter_start": 7.99636499520331, "y_meter_stop": 3.4662346067014984}, {"clip_name": "2018-06-03-JD154_LeftFar_Stratum1_Set1_LO_2018-06-03_230004_1736_2336", "num_frames": 600, "framerate": 10.0, "width": 286, "height": 620, "x_meter_start": -1.0442193598445624, "x_meter_stop": 1.0441132903052261, "y_meter_start": 8.000580350168011, "y_meter_stop": 3.466123791625989}, {"clip_name": "2018-06-03-JD154_LeftNear_Stratum1_Set1_LN_2018-06-03_010000_2523_3064", "num_frames": 541, "framerate": 9.000008583068848, "width": 626, "height": 835, "x_meter_start": -2.293573209164394, "x_meter_stop": 2.2727221007325267, "y_meter_start": 9.4863912469275, "y_meter_stop": 3.3955660332471016}, {"clip_name": "2018-06-03-JD154_LeftNear_Stratum1_Set1_LN_2018-06-03_020000_0_472", "num_frames": 472, "framerate": 9.000008583068848, "width": 626, "height": 835, "x_meter_start": -2.2927904123117098, "x_meter_stop": 2.271937923943994, "y_meter_start": 9.484569130031748, "y_meter_stop": 3.395834048923899}, {"clip_name": "2018-06-03-JD154_LeftNear_Stratum1_Set1_LN_2018-06-03_020000_617_1158", "num_frames": 541, "framerate": 9.000008583068848, "width": 626, "height": 835, "x_meter_start": -2.2927904123117098, "x_meter_stop": 2.271937923943994, "y_meter_start": 9.484569130031748, "y_meter_stop": 3.395834048923899}, {"clip_name": "2018-06-03-JD154_LeftNear_Stratum1_Set1_LN_2018-06-03_020000_1760_2301", "num_frames": 541, "framerate": 9.000008583068848, "width": 626, "height": 835, "x_meter_start": -2.2927904123117098, "x_meter_stop": 2.271937923943994, "y_meter_start": 9.484569130031748, "y_meter_stop": 3.395834048923899}, {"clip_name": "2018-06-03-JD154_LeftNear_Stratum1_Set1_LN_2018-06-03_030000_1888_2429", "num_frames": 541, "framerate": 9.000008583068848, "width": 626, "height": 835, "x_meter_start": -2.2919941922094593, "x_meter_stop": 2.271148945310625, "y_meter_start": 9.481275412227257, "y_meter_stop": 3.394654773522352}, {"clip_name": "2018-06-03-JD154_LeftNear_Stratum1_Set1_LN_2018-06-03_030000_4770_5249", "num_frames": 479, "framerate": 9.000008583068848, "width": 626, "height": 835, "x_meter_start": -2.2919941922094593, "x_meter_stop": 2.271148945310625, "y_meter_start": 9.481275412227257, "y_meter_stop": 3.394654773522352}, {"clip_name": "2018-06-03-JD154_LeftNear_Stratum1_Set1_LN_2018-06-03_040000_0_538", "num_frames": 538, "framerate": 9.000008583068848, "width": 626, "height": 835, "x_meter_start": -2.2920072196473815, "x_meter_stop": 2.2711533608390044, "y_meter_start": 9.48274439355909, "y_meter_stop": 3.3961004882777277}, {"clip_name": "2018-06-03-JD154_LeftNear_Stratum1_Set1_LN_2018-06-03_050000_2444_2985", "num_frames": 541, "framerate": 9.000008583068848, "width": 626, "height": 835, "x_meter_start": -2.2912143125819426, "x_meter_stop": 2.2703634228392247, "y_meter_start": 9.480171186106993, "y_meter_stop": 3.395638583748088}, {"clip_name": "2018-06-03-JD154_LeftNear_Stratum1_Set1_LN_2018-06-03_060000_571_1112", "num_frames": 541, "framerate": 9.000008583068848, "width": 628, "height": 835, "x_meter_start": -2.2977096395987284, "x_meter_stop": 2.2768574427587542, "y_meter_start": 9.485604974532045, "y_meter_stop": 3.3958946547058426}, {"clip_name": "2018-06-03-JD154_LeftNear_Stratum1_Set1_LN_2018-06-03_070000_4101_4642", "num_frames": 541, "framerate": 9.000008583068848, "width": 628, "height": 835, "x_meter_start": -2.2977096395987284, "x_meter_stop": 2.2768574427587542, "y_meter_start": 9.485604974532045, "y_meter_stop": 3.3958946547058426}, {"clip_name": "2018-06-03-JD154_LeftNear_Stratum1_Set1_LN_2018-06-03_090000_778_1319", "num_frames": 541, "framerate": 9.000008583068848, "width": 626, "height": 835, "x_meter_start": -2.29121411899437, "x_meter_stop": 2.2703632310133717, "y_meter_start": 9.4801703851151, "y_meter_stop": 3.3956382968459873}, {"clip_name": "2018-06-03-JD154_LeftNear_Stratum1_Set1_LN_2018-06-03_100000_4520_5061", "num_frames": 541, "framerate": 9.000008583068848, "width": 626, "height": 835, "x_meter_start": -2.293571854068171, "x_meter_stop": 2.2727207579556206, "y_meter_start": 9.486385642147747, "y_meter_stop": 3.3955640270680885}, {"clip_name": "2018-06-03-JD154_LeftNear_Stratum1_Set1_LN_2018-06-03_110000_997_1538", "num_frames": 541, "framerate": 9.000008583068848, "width": 626, "height": 834, "x_meter_start": -2.2943571939978677, "x_meter_stop": 2.2735032094284278, "y_meter_start": 9.481628681228777, "y_meter_stop": 3.3960127443956605}, {"clip_name": "2018-06-03-JD154_LeftNear_Stratum1_Set1_LN_2018-06-03_120000_3525_4066", "num_frames": 541, "framerate": 9.000008583068848, "width": 626, "height": 833, "x_meter_start": -2.297455985065081, "x_meter_stop": 2.2766036336906184, "y_meter_start": 9.482163055678406, "y_meter_stop": 3.395594904842147}, {"clip_name": "2018-06-03-JD154_LeftNear_Stratum1_Set1_LN_2018-06-03_130000_476_1017", "num_frames": 541, "framerate": 9.000008583068848, "width": 624, "height": 831, "x_meter_start": -2.293206169791425, "x_meter_stop": 2.2723515603275644, "y_meter_start": 9.483242372626446, "y_meter_stop": 3.395832065801127}, {"clip_name": "2018-06-03-JD154_LeftNear_Stratum1_Set1_LN_2018-06-03_130000_2064_2605", "num_frames": 541, "framerate": 9.000008583068848, "width": 624, "height": 831, "x_meter_start": -2.293206169791425, "x_meter_stop": 2.2723515603275644, "y_meter_start": 9.483242372626446, "y_meter_stop": 3.395832065801127}, {"clip_name": "2018-06-03-JD154_LeftNear_Stratum1_Set1_LN_2018-06-03_130000_2666_3207", "num_frames": 541, "framerate": 9.000008583068848, "width": 624, "height": 831, "x_meter_start": -2.293206169791425, "x_meter_stop": 2.2723515603275644, "y_meter_start": 9.483242372626446, "y_meter_stop": 3.395832065801127}, {"clip_name": "2018-06-03-JD154_LeftNear_Stratum1_Set1_LN_2018-06-03_150000_1702_2243", "num_frames": 541, "framerate": 9.000008583068848, "width": 622, "height": 829, "x_meter_start": -2.2903839287516354, "x_meter_stop": 2.2695310289810844, "y_meter_start": 9.480109367688277, "y_meter_stop": 3.3953353887201785}, {"clip_name": "2018-06-03-JD154_LeftNear_Stratum1_Set1_LN_2018-06-03_160000_320_861", "num_frames": 541, "framerate": 9.000008583068848, "width": 622, "height": 830, "x_meter_start": -2.2911227435126893, "x_meter_stop": 2.270271662722413, "y_meter_start": 9.48174361797585, "y_meter_stop": 3.394995455314861}, {"clip_name": "2018-06-03-JD154_LeftNear_Stratum1_Set1_LN_2018-06-03_160000_2515_3056", "num_frames": 541, "framerate": 9.000008583068848, "width": 622, "height": 830, "x_meter_start": -2.2911227435126893, "x_meter_stop": 2.270271662722413, "y_meter_start": 9.48174361797585, "y_meter_stop": 3.394995455314861}, {"clip_name": "2018-06-03-JD154_LeftNear_Stratum1_Set1_LN_2018-06-03_160000_3096_3637", "num_frames": 541, "framerate": 9.000008583068848, "width": 622, "height": 830, "x_meter_start": -2.2911227435126893, "x_meter_stop": 2.270271662722413, "y_meter_start": 9.48174361797585, "y_meter_stop": 3.394995455314861}, {"clip_name": "2018-06-03-JD154_LeftNear_Stratum1_Set1_LN_2018-06-03_170000_76_617", "num_frames": 541, "framerate": 9.000008583068848, "width": 622, "height": 830, "x_meter_start": -2.2925998558333474, "x_meter_stop": 2.27174815888492, "y_meter_start": 9.485719539844316, "y_meter_stop": 3.3950300668279785}, {"clip_name": "2018-06-03-JD154_LeftNear_Stratum1_Set1_LN_2018-06-03_170000_4781_5250", "num_frames": 469, "framerate": 9.000008583068848, "width": 622, "height": 830, "x_meter_start": -2.2925998558333474, "x_meter_stop": 2.27174815888492, "y_meter_start": 9.485719539844316, "y_meter_stop": 3.3950300668279785}, {"clip_name": "2018-06-03-JD154_LeftNear_Stratum1_Set1_LN_2018-06-03_190000_1440_1981", "num_frames": 541, "framerate": 9.000008583068848, "width": 622, "height": 830, "x_meter_start": -2.2918654791603794, "x_meter_stop": 2.271011913067187, "y_meter_start": 9.484105284942624, "y_meter_stop": 3.395378218143781}, {"clip_name": "2018-06-03-JD154_LeftNear_Stratum1_Set1_LN_2018-06-03_190000_3993_4534", "num_frames": 541, "framerate": 9.000008583068848, "width": 622, "height": 830, "x_meter_start": -2.2918654791603794, "x_meter_stop": 2.271011913067187, "y_meter_start": 9.484105284942624, "y_meter_stop": 3.395378218143781}, {"clip_name": "2018-06-03-JD154_LeftNear_Stratum1_Set1_LN_2018-06-03_210000_1556_2097", "num_frames": 541, "framerate": 9.000008583068848, "width": 622, "height": 830, "x_meter_start": -2.2911227435126893, "x_meter_stop": 2.270271662722413, "y_meter_start": 9.48174361797585, "y_meter_stop": 3.394995455314861}, {"clip_name": "2018-06-03-JD154_LeftNear_Stratum1_Set1_LN_2018-06-03_210000_2467_3008", "num_frames": 541, "framerate": 9.000008583068848, "width": 622, "height": 830, "x_meter_start": -2.2911227435126893, "x_meter_stop": 2.270271662722413, "y_meter_start": 9.48174361797585, "y_meter_stop": 3.394995455314861}, {"clip_name": "2018-06-03-JD154_LeftNear_Stratum1_Set1_LN_2018-06-03_220000_720_1261", "num_frames": 541, "framerate": 9.000008583068848, "width": 622, "height": 829, "x_meter_start": -2.290384698116487, "x_meter_stop": 2.269531791341218, "y_meter_start": 9.480112552160309, "y_meter_stop": 3.39533652925051}, {"clip_name": "2018-06-03-JD154_LeftNear_Stratum1_Set1_LN_2018-06-03_220000_2954_3495", "num_frames": 541, "framerate": 9.000008583068848, "width": 622, "height": 829, "x_meter_start": -2.290384698116487, "x_meter_stop": 2.269531791341218, "y_meter_start": 9.480112552160309, "y_meter_stop": 3.39533652925051}, {"clip_name": "2018-06-03-JD154_LeftNear_Stratum1_Set1_LN_2018-06-03_220000_3706_4247", "num_frames": 541, "framerate": 9.000008583068848, "width": 622, "height": 829, "x_meter_start": -2.290384698116487, "x_meter_stop": 2.269531791341218, "y_meter_start": 9.480112552160309, "y_meter_stop": 3.39533652925051}, {"clip_name": "2018-06-03-JD154_LeftNear_Stratum1_Set1_LN_2018-06-03_220000_4972_5277", "num_frames": 305, "framerate": 9.000008583068848, "width": 622, "height": 829, "x_meter_start": -2.290384698116487, "x_meter_stop": 2.269531791341218, "y_meter_start": 9.480112552160309, "y_meter_stop": 3.39533652925051}, {"clip_name": "2018-06-03-JD154_LeftNear_Stratum1_Set1_LN_2018-06-03_000000_3468_3764", "num_frames": 296, "framerate": 9.000008583068848, "width": 626, "height": 834, "x_meter_start": -2.2951339746714416, "x_meter_stop": 2.2742814349939535, "y_meter_start": 9.483421720899475, "y_meter_stop": 3.39573409843791}, {"clip_name": "2018-06-03-JD154_LeftNear_Stratum1_Set1_LN_2018-06-03_080000_604_839", "num_frames": 235, "framerate": 9.000008583068848, "width": 628, "height": 835, "x_meter_start": -2.2977096395987284, "x_meter_stop": 2.2768574427587542, "y_meter_start": 9.485604974532045, "y_meter_stop": 3.3958946547058426}, {"clip_name": "2018-06-03-JD154_LeftNear_Stratum1_Set1_LN_2018-06-03_230000_4157_4372", "num_frames": 215, "framerate": 9.000008583068848, "width": 624, "height": 831, "x_meter_start": -2.296219767934963, "x_meter_stop": 2.275367632101671, "y_meter_start": 9.48340018401134, "y_meter_stop": 3.395276579154862}, {"clip_name": "2018-06-03-JD154_LeftNear_Stratum1_Set1_LN_2018-06-03_230000_4637_5018", "num_frames": 381, "framerate": 9.000008583068848, "width": 624, "height": 831, "x_meter_start": -2.296219767934963, "x_meter_stop": 2.275367632101671, "y_meter_start": 9.48340018401134, "y_meter_stop": 3.395276579154862}]