changeset 0:479ff3a9023c draft

Uploaded
author immport-devteam
date Mon, 27 Feb 2017 12:57:41 -0500
parents
children 7a889f2f2e15
files flowclr_summary/flowclrstats.py flowclr_summary/flowclrstats.xml flowclr_summary/test-data/input.flowclr flowclr_summary/test-data/out.tabular flowclr_summary/test-data/report.tabular
diffstat 5 files changed, 2301 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/flowclr_summary/flowclrstats.py	Mon Feb 27 12:57:41 2017 -0500
@@ -0,0 +1,58 @@
+#!/usr/bin/env python
+
+######################################################################
+#                  Copyright (c) 2016 Northrop Grumman.
+#                          All rights reserved.
+######################################################################
+
+from __future__ import print_function
+import sys
+from argparse import ArgumentParser
+import pandas as pd
+
+
+def get_FLOCK_stats(input_file, output_file, out_file2):
+    df = pd.read_table(input_file)
+    summary = df.groupby('Population').describe().round(1)
+    counts = df['Population'].value_counts()
+    percent = (df['Population'].value_counts(normalize=True) * 100).round(decimals=2)
+    tot_count = len(df['Population'])
+
+    to_rm = summary.loc(axis=0)[:, ['count']].index.tolist()
+    df1 = summary[~summary.index.isin(to_rm)]
+    df1.to_csv(out_file2, sep="\t")
+
+    with open(output_file, "w") as outf:
+        outf.write("Population\tCount\tPercentage\n")
+        for pops in set(df.Population):
+            outf.write("\t".join([str(pops), str(counts.loc[pops]), str(percent.loc[pops])]) + "\n")
+        outf.write("Total\t" + str(tot_count) + "\t \n")
+    return
+
+
+if __name__ == '__main__':
+    parser = ArgumentParser(
+            prog="flowstats",
+            description="Gets statistics on FLOCK run")
+
+    parser.add_argument(
+          '-i',
+          dest="input_file",
+          required=True,
+          help="File locations for flow clr file.")
+
+    parser.add_argument(
+          '-o',
+          dest="out_file",
+          required=True,
+          help="Path to the directory for the output file.")
+
+    parser.add_argument(
+          '-p',
+          dest="out_file2",
+          required=True,
+          help="Path to the directory for the output file.")
+    args = parser.parse_args()
+
+    get_FLOCK_stats(args.input_file, args.out_file, args.out_file2)
+    sys.exit(0)
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/flowclr_summary/flowclrstats.xml	Mon Feb 27 12:57:41 2017 -0500
@@ -0,0 +1,80 @@
+<tool id="flowclr_stats" name="Generate summary statistics" version="1.0">
+  <description>of FLOCK output</description>
+  <requirements>
+    <requirement type="package" version="0.16.0">scipy</requirement>
+    <requirement type="package" version="0.17.1">pandas</requirement>
+  </requirements>
+  <stdio>
+    <exit_code range="1:" />
+  </stdio>
+  <command><![CDATA[
+    python $__tool_directory__/flowclrstats.py -i "${input}" -p "${output}" -o "${report}"
+ ]]>
+  </command>
+  <inputs>
+    <param format="flowclr" name="input" type="data" collection_type="list" label="FLOCK file"/>
+  </inputs>
+  <outputs>
+    <data format="tabular" name="output" label="Summary statistics of ${input.name}"/>
+    <data format="tabular" name="report" label="Population report of ${input.name}"/>
+  </outputs>
+  <tests>
+    <test>
+      <param name="input" value="input.flowclr"/>
+      <output name="output" file="out.tabular" />
+      <output name="report" file="report.tabular" />
+    </test>
+  </tests>
+  <help><![CDATA[
+   This tool generates summary statistics on FLOCK output.
+
+-----
+
+**Input**
+
+Any flowclr file, output from FLOCK or Cross Sample, containing fluorescence intensity value par marker and assigned population.
+
+**Output**
+
+This tool produces two reports. One indicates the population distribution in the input file, the other gives descriptive summary statistics per population and marker.
+
+-----
+
+**Example**
+
+*Input* - fluorescence intensities per marker per event::
+
+   Marker1 Marker2 Marker3 Population
+   33      47      11      1
+   31      64      11      6
+   21      62      99      2
+   14      34      60      7
+
+*Output* - Summary statistics::
+
+   Population .    Marker1 Marker2 ...
+   1          mean 188.7   71.7    ...
+   1          std  49.6    40.2    ...
+   1          min  107.0   0.0     ...
+   1          25%  149.0   40.0    ...
+   1          50%  183.0   77.0    ...
+   1          75%  222.0   105.0   ...
+   1          max  379.0   147.0   ...
+   2          mean 36.8    186.5   ...
+   2          std  40.6    50.5    ...
+   2          min  0.0     119.0   ...
+   2          25%  0.0     150.0   ...
+   2          50%  20.0    174.0   ...
+   2          75%  73.0    208.0   ...
+   2          max  124.0   433.0   ...
+
+*Output* - Population report::
+
+   Population Count Percentage
+   1          3866  43.92
+   2          2772  31.50
+   3          2163  24.58
+   Total      8801
+]]>
+  </help>
+</tool>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/flowclr_summary/test-data/input.flowclr	Mon Feb 27 12:57:41 2017 -0500
@@ -0,0 +1,2000 @@
+FSC	SSC	CD4	CCR3	CD8	CCR7	Population
+331	143	550	85	24	124	10
+359	290	240	313	256	277	12
+261	107	10	93	0	4	5
+431	216	109	55	604	193	6
+417	144	560	77	207	10	10
+371	94	513	0	0	312	2
+765	1023	173	276	185	233	25
+620	1023	165	229	245	287	21
+362	196	54	108	317	228	12
+410	142	520	215	35	277	18
+282	166	6	0	5	97	5
+333	125	509	153	54	137	1
+364	109	514	0	144	109	10
+587	306	358	236	174	230	22
+286	114	46	0	18	112	5
+735	1023	201	284	223	175	25
+330	76	479	21	4	45	10
+667	938	127	193	286	146	21
+376	92	560	194	0	26	1
+459	743	114	203	194	219	21
+388	135	518	141	33	138	18
+554	1023	0	163	150	141	21
+397	123	524	224	151	145	18
+592	219	69	124	617	302	6
+985	1023	421	292	257	220	26
+398	193	23	91	609	162	6
+319	98	516	205	59	58	1
+352	92	545	70	172	333	2
+346	88	82	84	196	98	5
+468	191	539	134	124	132	18
+644	1023	158	242	257	123	21
+334	183	0	145	570	280	6
+382	101	522	151	0	117	1
+433	172	64	0	614	166	6
+344	138	553	81	0	68	10
+370	171	145	24	579	303	6
+282	159	0	101	514	169	6
+650	983	150	281	217	281	25
+616	1023	124	212	258	181	21
+337	160	10	37	610	297	6
+315	58	512	128	0	48	1
+1023	1023	258	386	352	342	26
+455	107	551	183	0	235	18
+800	1023	239	284	288	280	25
+344	129	41	0	185	40	5
+583	820	154	239	202	135	21
+376	146	105	90	627	206	6
+634	1023	97	138	235	183	21
+350	104	548	51	0	116	10
+604	987	203	256	188	247	21
+353	160	38	173	630	225	6
+361	135	505	132	186	236	18
+304	105	494	0	0	144	2
+285	99	82	0	35	118	5
+301	87	0	0	611	300	6
+575	895	149	252	212	99	21
+685	1023	81	283	235	87	21
+262	138	3	73	31	107	5
+637	1023	148	174	244	203	21
+355	124	100	75	632	179	6
+372	125	528	15	0	55	10
+970	1023	212	249	303	282	26
+557	854	136	192	106	202	21
+400	200	0	58	0	108	5
+1023	1023	541	714	391	495	19
+606	1023	359	459	356	417	23
+385	208	109	39	566	279	6
+367	196	48	179	205	153	12
+322	66	74	114	548	275	6
+814	1023	215	243	240	226	25
+379	167	63	142	617	303	6
+419	268	562	49	0	200	2
+426	187	160	123	549	185	6
+416	212	68	67	10	83	5
+354	107	532	71	59	272	2
+437	232	562	0	210	130	2
+421	230	159	177	393	257	12
+365	202	55	0	537	181	6
+315	104	505	88	0	118	10
+406	160	550	128	70	108	1
+598	1023	140	256	234	258	21
+346	102	515	0	92	84	10
+626	276	399	170	227	141	24
+319	72	546	0	0	73	10
+513	83	534	48	62	215	2
+365	124	505	0	0	126	10
+322	115	527	0	75	70	10
+347	97	495	259	149	107	1
+612	347	483	189	165	185	24
+394	133	75	0	620	225	6
+597	1023	102	135	222	260	21
+479	276	645	65	89	92	10
+652	1023	123	0	219	247	21
+419	158	101	102	583	240	6
+310	134	108	207	0	26	5
+470	1023	374	475	433	480	23
+354	124	378	0	0	197	2
+656	960	180	193	246	179	21
+699	941	213	266	293	172	25
+720	1023	145	295	215	340	25
+577	859	90	237	149	83	21
+455	95	527	139	0	276	18
+578	1023	347	465	307	431	23
+780	853	198	256	230	270	25
+360	98	543	0	62	182	2
+388	181	0	83	591	176	6
+749	1023	204	271	260	263	25
+735	418	510	74	113	232	22
+766	1023	347	411	384	191	25
+440	144	203	136	619	334	6
+378	181	520	81	120	155	2
+386	152	502	225	1	133	18
+732	501	493	156	228	199	24
+359	73	492	52	0	50	10
+324	102	505	126	0	73	1
+790	1023	256	318	318	176	25
+399	153	359	106	25	42	15
+350	162	6	132	586	215	6
+528	948	43	222	192	155	21
+408	113	545	183	210	104	1
+595	885	136	156	236	131	21
+329	118	0	24	574	198	6
+404	136	534	207	44	123	1
+319	172	79	0	0	185	5
+349	126	529	174	118	246	18
+594	1023	154	287	261	125	21
+344	148	65	155	646	279	6
+400	154	286	0	141	125	15
+442	219	574	51	136	222	2
+406	193	108	173	669	348	6
+295	128	78	0	37	96	5
+394	133	545	200	17	209	18
+339	130	123	132	616	288	6
+377	123	39	203	468	238	6
+382	145	506	0	27	110	10
+616	1023	111	248	225	212	21
+622	1023	136	195	260	200	21
+725	1023	127	258	233	144	25
+365	132	551	0	96	146	2
+355	148	519	75	9	153	2
+299	129	0	57	621	289	6
+349	140	14	0	604	249	6
+349	133	531	117	38	225	18
+360	153	81	132	596	193	6
+522	249	355	237	178	203	22
+328	122	502	0	24	93	10
+318	92	448	112	22	193	2
+388	168	124	3	574	127	6
+369	129	569	145	18	30	1
+902	1023	190	262	316	406	26
+743	290	247	243	164	94	24
+334	139	48	95	631	232	6
+710	415	421	123	237	257	22
+391	146	45	162	631	300	6
+360	127	158	37	657	187	6
+371	153	513	0	64	97	10
+424	116	543	75	0	45	10
+378	151	71	10	628	200	6
+354	108	534	0	0	180	2
+516	925	0	258	242	95	21
+364	70	476	240	0	183	18
+663	965	235	215	117	121	21
+537	1023	356	445	384	408	23
+302	141	140	214	4	227	12
+275	122	7	5	69	149	5
+365	161	519	135	73	21	1
+436	177	112	213	115	108	12
+343	124	507	0	180	51	10
+262	49	370	76	0	145	15
+659	1023	156	228	233	197	21
+476	200	560	86	2	299	2
+368	117	537	0	159	73	10
+347	94	507	191	237	0	1
+616	1023	77	252	239	193	21
+675	1023	224	235	272	291	25
+1023	1023	331	424	407	399	26
+853	489	446	314	232	167	24
+345	108	524	55	40	179	2
+740	1023	184	293	239	224	25
+839	1023	206	147	257	257	25
+323	99	488	137	0	0	1
+299	120	70	0	0	114	5
+352	118	520	197	137	107	1
+1023	1023	340	443	403	386	26
+538	1023	339	477	324	354	23
+386	153	563	25	82	306	2
+772	1023	152	310	205	237	25
+464	365	119	132	634	174	6
+899	1023	426	810	395	544	19
+346	158	544	0	39	150	2
+686	1023	274	284	136	252	25
+357	171	99	0	0	57	5
+378	167	60	200	598	237	6
+354	122	532	237	78	268	18
+611	900	33	205	139	170	21
+321	160	45	121	31	136	5
+358	98	69	0	626	222	6
+313	87	510	150	0	174	18
+623	1023	166	236	122	229	21
+383	128	523	126	0	160	18
+346	134	516	0	76	38	10
+735	1023	59	268	162	272	25
+332	99	518	48	82	150	2
+362	102	497	239	97	159	18
+584	1023	116	219	126	250	21
+682	1023	173	284	151	163	21
+351	142	544	0	59	90	10
+901	1023	238	160	288	361	26
+341	142	471	134	47	122	1
+387	162	560	158	0	145	18
+376	117	542	141	79	95	1
+407	119	49	36	650	301	6
+341	97	485	146	184	72	1
+310	110	529	0	0	27	10
+364	133	537	184	0	144	18
+623	958	144	108	240	90	21
+430	262	133	241	103	252	12
+372	118	558	125	0	120	1
+577	1023	244	234	238	264	21
+388	113	101	0	621	295	6
+631	887	74	224	218	199	21
+856	1023	180	227	252	32	25
+752	437	444	248	183	268	22
+775	1023	204	244	202	281	25
+360	143	79	129	634	251	6
+499	948	318	495	296	407	23
+392	144	561	32	0	64	10
+569	891	117	215	239	241	21
+894	1023	227	240	250	177	25
+805	1023	204	328	335	289	25
+321	102	506	0	0	0	10
+436	149	506	171	66	260	18
+752	1023	209	238	295	273	25
+381	189	540	205	85	123	1
+630	1023	352	546	609	459	23
+390	100	186	100	591	283	6
+484	1023	322	444	351	456	23
+322	106	492	0	0	65	10
+303	138	0	3	644	233	6
+442	121	526	271	142	230	18
+1023	868	459	331	233	440	26
+751	484	360	224	144	307	22
+533	1023	59	136	246	126	21
+390	134	81	0	627	317	6
+354	216	87	176	336	106	12
+394	112	24	0	634	233	6
+399	237	0	0	633	321	6
+470	261	141	156	106	35	12
+349	99	519	33	111	67	10
+620	1023	188	255	240	263	25
+379	185	67	0	632	284	6
+409	119	554	172	108	37	1
+354	157	114	19	667	275	6
+422	218	120	86	116	180	5
+358	139	0	0	640	206	6
+375	82	517	0	6	81	10
+491	152	554	62	80	198	2
+582	909	57	231	159	282	21
+347	165	502	0	102	120	10
+652	1023	146	194	188	199	21
+586	1023	106	213	281	148	21
+672	1023	141	179	226	286	25
+344	109	533	205	0	165	18
+454	110	549	183	14	254	18
+736	541	413	192	247	348	22
+331	147	16	0	118	127	5
+352	114	516	108	3	43	10
+337	90	500	0	16	140	2
+700	1023	161	247	234	190	25
+596	861	172	171	249	192	21
+410	577	152	250	183	134	12
+727	1023	152	230	192	166	25
+356	138	536	0	146	150	2
+389	134	40	0	114	169	5
+417	993	136	141	209	197	21
+695	1023	238	288	291	226	25
+674	522	400	208	194	194	24
+273	68	454	11	0	89	10
+728	868	150	192	242	228	25
+378	175	507	201	0	227	18
+546	952	149	238	223	238	21
+598	964	40	246	128	230	21
+768	1023	169	236	257	225	25
+322	148	0	187	87	115	5
+391	237	108	100	85	64	5
+643	1023	218	310	274	267	25
+666	1023	155	284	272	160	21
+385	133	505	232	193	173	18
+316	107	491	0	79	135	2
+362	131	514	215	175	33	1
+386	167	149	37	625	249	6
+373	162	83	17	582	286	6
+604	848	158	274	182	266	21
+379	151	0	109	712	302	6
+373	102	544	147	0	215	18
+734	1023	190	285	259	214	25
+725	1023	181	179	237	274	25
+438	223	93	0	113	141	5
+634	909	120	84	203	138	21
+304	109	494	14	0	65	10
+360	79	506	92	224	221	2
+340	96	505	178	0	147	18
+738	435	418	26	238	198	24
+607	1023	392	490	412	453	23
+392	106	512	104	195	101	10
+307	103	532	96	90	63	10
+664	668	359	287	268	166	24
+607	852	42	300	205	255	21
+665	1023	185	198	171	160	21
+995	1023	275	361	250	294	26
+613	1023	185	251	266	197	21
+370	141	78	160	562	179	6
+331	96	529	83	76	162	2
+408	105	520	0	25	61	10
+483	1004	95	150	203	249	21
+344	198	103	93	50	138	5
+842	1023	203	263	313	127	25
+703	487	206	446	214	245	25
+371	179	538	225	0	50	1
+351	75	485	0	179	118	10
+600	969	404	738	432	455	23
+573	1023	174	227	286	220	21
+446	149	545	28	0	82	10
+426	165	547	177	0	241	18
+296	110	0	0	79	0	5
+420	177	549	5	132	185	2
+425	226	281	135	651	319	6
+374	105	516	0	184	170	2
+609	323	375	61	0	187	24
+514	275	396	88	184	107	15
+344	169	36	52	84	26	5
+278	109	0	200	33	0	5
+335	72	92	0	642	339	6
+327	134	36	36	610	259	6
+347	93	536	0	0	131	10
+361	80	109	94	567	205	6
+328	174	72	129	596	36	6
+417	220	124	17	571	167	6
+716	1023	272	233	247	201	25
+726	1023	216	285	252	207	25
+348	128	36	88	82	0	5
+935	1023	396	583	391	481	19
+332	125	496	162	124	31	1
+685	1023	250	300	260	186	25
+673	1023	258	273	275	242	25
+633	1023	105	169	204	168	21
+315	122	69	62	579	346	6
+778	277	250	29	88	272	22
+346	102	516	193	42	76	1
+369	111	56	0	619	197	6
+648	1023	222	238	179	292	25
+335	108	521	24	0	25	10
+803	880	162	202	213	218	25
+394	109	522	0	0	93	10
+677	1023	35	207	231	39	21
+393	1023	278	458	284	450	23
+393	120	514	0	108	162	2
+340	89	508	199	87	194	18
+444	191	115	183	142	90	12
+719	905	145	256	189	72	21
+606	1023	141	243	139	232	21
+579	949	241	225	246	232	21
+430	151	539	11	137	264	2
+826	1023	75	280	135	54	25
+659	452	353	190	158	198	24
+326	116	503	161	17	96	1
+356	186	120	148	84	119	5
+394	115	513	271	0	238	18
+394	166	518	0	117	73	10
+647	1023	166	274	246	253	25
+592	1023	175	273	238	244	21
+275	142	33	0	119	80	5
+306	171	80	184	79	143	5
+301	150	12	0	38	120	5
+303	119	5	158	46	83	5
+403	218	110	210	163	0	12
+665	1023	207	235	276	0	21
+486	181	595	43	0	197	2
+352	138	36	0	611	262	6
+319	95	84	6	44	59	5
+483	830	81	199	219	166	21
+692	1023	183	294	275	182	25
+469	147	557	0	245	236	2
+323	218	19	198	618	266	6
+325	103	505	0	0	188	2
+673	237	124	79	648	268	6
+613	985	157	266	260	188	21
+345	137	522	132	0	176	18
+362	163	535	2	0	190	2
+410	210	241	163	64	138	15
+1023	1023	362	751	313	380	19
+588	988	155	212	228	232	21
+397	128	530	24	87	38	10
+363	168	522	0	87	43	10
+502	721	56	165	194	203	21
+572	749	166	265	238	203	21
+355	119	553	230	0	105	1
+698	1023	185	252	281	302	25
+776	1023	171	216	214	40	21
+319	107	515	0	0	86	10
+572	1023	80	268	116	98	21
+703	418	401	222	209	196	24
+325	155	110	112	76	79	5
+425	147	533	0	24	170	2
+352	101	508	0	114	64	10
+344	129	18	80	593	214	6
+352	67	529	0	0	72	10
+339	149	341	52	106	0	15
+635	1023	119	266	207	265	21
+334	87	496	119	0	136	1
+393	157	117	178	665	301	6
+342	171	110	147	639	234	6
+691	1023	254	285	189	216	25
+299	113	508	185	18	124	1
+790	1023	106	266	282	270	25
+393	145	570	0	137	88	10
+790	1023	192	289	297	89	25
+557	924	90	231	133	244	21
+384	142	552	0	71	135	2
+626	1023	185	221	264	122	21
+629	416	419	186	209	263	22
+344	125	503	113	0	235	2
+663	1023	348	444	406	403	23
+280	109	0	160	0	30	5
+381	197	142	0	202	143	5
+332	99	522	0	79	157	2
+360	86	514	111	36	0	10
+386	126	540	289	17	194	18
+334	129	475	118	90	140	2
+328	170	72	118	36	27	5
+448	152	563	125	153	194	18
+1023	1023	335	430	348	454	26
+533	825	195	264	196	116	21
+603	1023	188	182	285	173	21
+665	1023	224	288	188	25	21
+334	85	470	148	94	102	1
+550	979	183	244	255	258	21
+628	913	150	270	267	181	21
+331	119	522	192	70	208	18
+675	1023	143	171	222	276	25
+454	124	573	188	0	106	1
+389	105	542	0	132	169	2
+357	92	510	204	0	251	18
+404	123	0	116	618	253	6
+380	164	34	177	544	309	6
+396	133	532	155	0	133	1
+398	203	52	181	591	225	6
+299	117	143	266	9	158	12
+660	1023	169	263	250	218	25
+651	1023	83	252	258	210	21
+607	984	161	245	201	62	21
+674	1023	224	197	250	236	25
+472	832	76	199	212	75	21
+605	1023	374	464	369	442	23
+298	135	0	168	0	138	5
+362	86	528	201	0	42	1
+363	143	546	0	164	90	10
+413	152	541	158	0	131	1
+601	890	130	255	169	168	21
+777	958	158	284	193	262	25
+693	1023	162	263	212	133	21
+593	1023	93	307	246	234	21
+324	161	57	139	2	175	5
+397	134	587	0	58	171	2
+906	1023	545	831	533	580	19
+346	204	92	91	135	155	5
+648	980	148	261	257	250	25
+344	102	548	217	79	83	1
+372	196	121	0	604	2	6
+766	982	114	237	247	5	21
+574	1023	0	242	117	254	21
+594	1023	79	197	242	208	21
+397	192	134	0	651	135	6
+292	115	2	0	104	121	5
+397	104	94	94	601	157	6
+774	1023	79	202	263	275	25
+329	80	455	0	46	40	10
+352	110	0	57	520	190	6
+327	104	256	82	75	0	15
+412	99	33	137	586	258	6
+377	181	122	41	63	166	5
+913	1023	260	296	294	295	26
+697	1023	372	266	211	268	25
+678	1023	225	285	84	175	21
+604	1023	171	265	260	224	21
+329	182	3	120	54	214	5
+406	128	501	189	7	238	18
+349	156	481	137	181	146	18
+343	66	472	150	51	153	18
+330	124	75	98	595	266	6
+386	81	23	108	609	293	6
+710	897	253	197	235	202	25
+615	1022	108	275	265	77	21
+599	1023	200	233	149	171	21
+856	782	440	245	283	284	26
+656	1023	80	284	225	174	21
+410	104	16	38	606	265	6
+349	143	513	125	111	86	1
+436	156	126	153	645	278	6
+339	98	499	138	0	177	18
+476	199	567	221	0	281	18
+379	133	77	138	673	252	6
+375	132	534	210	66	177	18
+899	1023	193	275	235	190	25
+375	174	97	112	666	330	6
+408	147	66	131	653	252	6
+322	106	115	126	489	108	6
+647	1023	174	151	159	231	21
+326	111	528	0	132	118	10
+548	918	165	278	229	179	21
+658	1023	206	249	187	228	25
+389	140	15	37	614	192	6
+339	143	0	0	665	304	6
+558	280	421	143	113	226	22
+358	123	521	94	0	260	2
+383	165	514	88	70	25	10
+385	85	524	279	0	55	1
+408	157	95	191	630	217	6
+517	682	111	214	248	55	21
+378	125	538	44	23	213	2
+348	168	141	95	41	96	5
+407	84	520	0	66	138	2
+641	1023	228	278	261	199	25
+640	1023	107	268	242	247	21
+342	121	504	0	0	0	10
+378	165	9	197	648	347	7
+365	145	240	111	346	257	12
+330	140	529	0	0	156	2
+380	106	516	190	0	80	1
+506	1003	113	251	150	58	21
+531	798	102	253	209	75	21
+832	1023	217	302	239	212	25
+407	145	565	223	44	53	1
+637	1023	189	256	215	225	21
+337	113	502	0	0	23	10
+325	84	508	24	93	200	2
+262	86	86	32	598	271	6
+400	196	558	24	189	194	2
+350	104	528	116	0	222	2
+379	136	538	0	31	150	2
+266	68	448	33	0	140	2
+316	145	549	142	0	160	18
+745	1023	128	261	274	115	25
+283	53	0	2	529	228	6
+359	181	19	167	527	183	6
+596	1014	141	168	154	242	21
+321	92	143	157	600	304	6
+349	112	522	278	0	33	1
+689	1023	198	289	241	188	25
+364	166	216	317	219	159	12
+337	113	537	107	0	136	2
+367	219	12	518	124	193	16
+679	295	476	74	107	184	24
+402	149	579	132	143	46	1
+399	108	129	97	565	259	6
+502	1023	319	491	377	415	23
+358	95	498	261	123	116	1
+726	1023	96	231	273	194	25
+360	167	48	82	307	68	5
+643	329	450	174	152	134	24
+387	101	546	102	0	234	2
+306	72	466	0	0	128	10
+371	157	544	0	0	146	2
+726	1023	153	270	231	187	25
+448	145	555	266	58	156	18
+634	1023	86	266	244	266	21
+430	153	538	187	86	47	1
+360	105	534	40	0	66	10
+791	1023	215	280	289	275	25
+638	1023	141	130	253	234	21
+409	189	73	74	641	265	6
+774	938	159	310	137	103	25
+329	137	503	157	0	117	1
+667	1023	175	272	291	254	25
+609	1023	177	240	320	229	21
+547	974	86	171	231	219	21
+287	94	456	0	135	216	2
+590	335	99	228	120	314	12
+362	134	0	8	609	216	6
+671	1023	185	328	197	45	21
+335	155	172	22	639	297	6
+373	96	5	80	464	65	6
+285	81	461	0	0	154	2
+392	130	559	0	4	143	2
+367	139	493	235	108	71	1
+585	922	73	275	103	232	21
+346	94	533	0	119	132	2
+664	182	573	250	124	130	24
+332	133	507	0	146	212	2
+675	456	215	229	134	187	24
+283	83	482	61	0	157	2
+349	93	494	257	0	65	1
+375	71	18	83	583	274	6
+382	130	516	149	70	24	1
+329	138	507	242	133	0	1
+418	133	536	185	64	149	18
+960	1023	288	352	310	289	26
+587	888	72	191	259	121	21
+659	891	185	126	261	86	21
+372	86	542	250	0	64	1
+311	107	498	0	77	123	10
+342	122	527	147	0	1	1
+343	72	519	0	0	96	10
+344	169	50	145	658	250	6
+354	95	486	241	14	106	1
+385	79	24	31	641	273	6
+413	181	109	126	221	165	12
+284	146	25	6	85	151	5
+364	162	52	87	644	217	6
+417	171	564	149	24	164	18
+402	82	541	68	72	145	2
+970	782	349	346	229	402	26
+389	185	22	79	594	293	6
+391	119	569	45	0	130	2
+745	1023	219	226	289	253	25
+504	325	140	240	120	291	12
+752	1023	76	272	237	127	25
+380	220	85	119	145	31	5
+917	1023	183	243	291	222	25
+769	1023	189	288	291	28	25
+287	130	43	0	112	50	5
+331	143	45	163	92	94	5
+480	301	140	128	658	141	6
+424	184	540	0	0	241	2
+314	186	515	121	28	28	1
+347	109	528	220	0	85	1
+422	123	510	162	23	234	18
+713	593	420	230	113	253	22
+352	101	522	19	179	135	2
+547	263	474	262	0	289	18
+493	1023	369	459	363	451	23
+790	533	472	266	171	287	22
+380	129	557	0	9	174	2
+379	146	574	14	16	73	10
+328	93	0	0	436	206	6
+581	1023	191	213	191	157	21
+384	112	516	211	16	144	18
+430	216	568	92	0	236	2
+700	1023	196	256	272	64	21
+318	88	477	178	132	112	1
+409	157	544	0	142	233	2
+324	109	518	146	0	37	1
+340	115	532	18	131	0	10
+423	157	534	258	0	122	1
+373	170	75	180	227	113	12
+386	146	577	0	0	128	2
+643	963	167	232	178	211	21
+387	123	529	116	115	0	1
+368	149	144	145	645	216	6
+318	73	96	99	286	0	5
+335	191	101	141	72	72	5
+411	188	522	185	124	208	18
+356	152	0	6	644	229	6
+796	521	393	606	333	405	19
+426	140	546	23	65	254	2
+343	268	160	150	711	318	6
+372	134	549	0	0	232	2
+327	151	0	116	93	112	5
+409	95	523	0	0	84	10
+692	569	352	57	150	273	22
+385	174	514	5	33	129	2
+293	106	28	85	584	254	6
+802	1023	209	296	257	230	25
+328	112	460	152	73	365	18
+384	221	64	112	644	330	6
+684	989	86	235	220	140	21
+287	87	476	113	48	18	10
+367	96	504	114	151	144	2
+740	1023	139	227	198	174	25
+688	1013	214	206	222	232	25
+408	140	532	22	0	116	10
+610	966	74	214	249	196	21
+338	97	485	36	0	113	10
+365	141	519	150	181	65	1
+666	1023	173	306	259	159	25
+694	363	452	176	213	112	24
+641	965	155	239	227	167	21
+334	109	10	0	572	245	6
+546	1023	354	490	339	471	23
+445	136	510	27	172	289	2
+412	90	535	40	0	161	2
+357	214	64	40	374	143	6
+466	122	560	241	0	310	18
+346	131	173	119	681	317	6
+409	171	20	29	574	212	6
+408	122	553	203	0	240	18
+613	394	424	0	147	138	24
+437	174	539	117	65	215	18
+744	1023	229	271	226	216	25
+374	93	520	0	0	138	2
+489	303	575	0	92	214	2
+382	199	0	154	648	245	6
+605	974	149	171	157	243	21
+368	88	563	41	54	188	2
+584	959	97	228	261	162	21
+668	1023	205	237	250	228	25
+435	162	102	23	138	232	5
+421	255	84	63	252	170	5
+570	886	188	107	156	257	21
+584	445	163	0	640	375	6
+361	124	135	100	669	299	6
+629	1023	184	199	208	94	21
+747	491	433	230	176	229	22
+351	115	530	39	0	152	2
+380	163	39	106	651	243	6
+297	73	535	0	106	24	10
+319	155	51	98	601	260	6
+564	879	233	230	219	93	21
+402	92	518	132	164	52	1
+376	102	526	181	0	120	1
+721	1023	182	246	192	143	25
+385	176	94	82	607	189	6
+758	1023	130	207	107	255	25
+371	157	16	0	650	259	6
+726	458	445	183	247	224	22
+617	1023	163	287	148	128	21
+685	1023	162	350	287	272	25
+360	231	127	185	115	52	12
+636	806	171	14	229	147	21
+302	89	460	178	0	75	1
+387	175	110	0	592	219	6
+843	1023	161	266	262	22	25
+404	179	109	163	296	68	12
+735	825	76	249	224	72	21
+351	117	522	139	67	97	1
+792	558	388	274	218	304	22
+391	190	130	131	635	288	6
+412	136	554	0	5	70	10
+411	135	527	206	0	160	18
+451	140	596	0	61	133	2
+691	503	359	10	179	298	22
+673	959	176	188	233	130	21
+428	91	54	0	592	288	6
+652	980	101	61	239	211	21
+349	105	538	156	137	166	18
+568	290	255	114	232	39	24
+319	59	516	0	0	35	10
+713	1023	250	368	302	384	25
+389	135	0	94	566	251	6
+568	953	185	240	202	193	21
+352	148	106	0	608	119	6
+362	109	556	159	0	71	1
+377	181	111	140	561	235	6
+579	897	112	173	132	20	21
+387	116	562	0	266	88	10
+700	1023	157	250	215	126	21
+382	48	63	116	0	69	5
+467	256	580	184	125	136	18
+1023	1023	432	402	346	499	26
+1023	1023	502	414	347	446	26
+411	175	98	9	173	119	5
+406	156	573	226	0	78	1
+408	182	82	186	633	298	6
+339	85	444	60	0	278	2
+422	264	586	119	56	200	18
+702	1023	205	291	214	107	21
+330	164	26	148	94	153	5
+720	1023	183	197	255	178	25
+363	137	519	90	0	77	10
+333	126	550	0	22	173	2
+458	180	541	159	67	196	18
+451	161	578	217	81	302	18
+1023	1023	289	313	340	354	26
+737	447	433	245	196	252	22
+339	125	103	0	55	22	5
+706	766	74	250	243	221	25
+450	827	131	165	220	169	21
+274	182	51	0	87	146	5
+375	154	47	151	640	222	6
+342	92	42	51	652	337	6
+414	187	487	226	55	303	18
+773	1023	166	281	255	236	25
+732	1023	226	65	251	211	21
+344	99	513	190	88	18	1
+797	1023	212	299	268	140	25
+412	185	539	164	59	118	1
+625	990	135	213	240	160	21
+302	123	27	183	7	210	5
+434	153	529	74	192	175	2
+278	61	469	0	158	156	2
+385	195	149	0	180	210	5
+375	140	88	87	636	283	6
+610	398	395	189	137	95	24
+899	1023	229	298	289	297	26
+305	480	52	235	0	319	12
+385	170	534	123	5	171	18
+664	1023	6	292	278	219	21
+391	108	537	0	22	72	10
+405	110	499	187	91	182	18
+726	1023	188	191	244	207	25
+599	991	219	312	216	243	21
+634	1023	344	457	355	438	23
+623	500	421	51	202	246	22
+449	171	335	208	0	149	15
+357	233	78	22	645	271	6
+338	127	516	115	1	53	1
+310	132	71	0	83	58	5
+587	1023	98	192	217	231	21
+622	1023	230	162	245	210	21
+643	983	81	0	234	130	21
+332	96	0	124	606	250	6
+313	182	65	205	485	237	6
+668	1023	153	256	241	227	25
+416	187	115	0	410	110	6
+660	1023	211	305	200	79	21
+389	153	71	78	559	216	6
+470	425	348	405	312	291	13
+730	1023	292	263	262	88	25
+641	1021	311	218	145	224	21
+684	1023	160	230	233	259	25
+454	618	144	199	43	196	12
+337	80	479	83	0	179	2
+367	107	503	60	0	124	10
+311	128	504	0	0	10	10
+325	75	509	234	21	154	18
+759	1023	183	229	245	100	25
+438	114	88	156	572	283	6
+443	528	140	198	201	143	12
+425	182	527	0	181	364	2
+782	1023	182	320	243	220	25
+338	106	0	0	620	191	6
+391	120	527	154	0	8	1
+396	144	561	222	50	134	18
+854	1023	329	377	332	375	26
+372	165	70	43	260	137	5
+312	109	514	70	147	139	2
+745	1023	220	305	311	190	25
+445	225	588	212	0	101	1
+377	130	545	209	101	278	18
+368	141	477	238	156	219	18
+417	109	530	217	105	330	18
+633	1023	117	256	240	195	21
+595	741	197	423	223	205	25
+275	115	27	35	45	0	5
+675	392	410	249	294	215	22
+753	1023	224	268	192	116	25
+760	1023	220	311	274	226	25
+610	1023	187	136	234	146	21
+512	813	139	192	176	233	21
+424	210	132	163	57	213	12
+337	118	523	0	108	186	2
+389	220	100	129	138	331	4
+651	1023	200	220	276	173	21
+441	548	129	180	163	109	12
+389	127	114	0	626	279	6
+312	66	473	34	64	40	10
+828	486	430	189	252	257	22
+837	1023	192	255	305	185	25
+688	492	442	203	227	111	24
+604	992	153	241	169	234	21
+370	122	540	18	0	93	10
+1023	1023	437	331	325	295	26
+371	157	33	183	656	224	6
+734	951	164	281	235	163	25
+358	158	535	4	40	161	2
+909	1023	287	334	298	273	26
+373	70	507	0	181	98	10
+367	206	127	0	633	181	6
+359	128	99	0	239	181	5
+691	961	171	357	261	130	25
+574	1023	122	275	116	138	21
+394	160	60	162	590	228	6
+659	1023	79	263	233	102	21
+619	455	378	168	59	257	22
+494	711	192	230	221	268	21
+369	106	537	121	0	117	1
+365	154	498	105	0	170	2
+787	537	278	258	143	222	22
+384	169	150	188	640	266	6
+348	157	0	0	632	273	6
+612	922	165	250	260	361	25
+335	131	509	21	0	196	2
+352	103	488	64	190	102	10
+692	332	393	191	183	128	24
+366	81	23	0	652	297	6
+408	103	553	0	148	190	2
+396	91	508	229	41	84	1
+403	109	336	172	155	202	15
+379	167	37	72	624	245	6
+390	134	193	106	626	299	6
+686	975	231	278	214	317	25
+365	145	107	155	594	247	6
+309	124	509	204	59	210	18
+768	1023	200	288	264	283	25
+354	163	554	166	0	5	1
+359	84	487	0	45	196	2
+414	159	54	197	622	225	6
+344	118	513	88	138	50	10
+358	130	33	87	646	258	6
+629	350	550	130	202	241	22
+350	118	524	32	224	107	10
+659	1023	203	275	234	278	25
+395	136	554	94	0	188	2
+403	608	154	218	156	208	12
+391	101	556	155	188	324	18
+314	170	532	129	0	22	1
+701	1023	77	158	258	111	21
+407	121	520	0	89	104	10
+354	115	488	0	0	167	2
+386	142	519	75	40	171	2
+377	131	118	99	573	106	6
+293	88	458	44	0	84	10
+394	152	557	73	26	71	10
+699	1023	183	273	256	277	25
+629	455	368	165	161	258	22
+317	106	507	0	0	97	10
+333	175	46	34	101	123	5
+472	135	553	77	137	187	2
+420	104	547	0	107	14	10
+360	112	528	131	60	99	1
+385	158	27	196	662	287	6
+371	151	546	49	0	134	2
+347	141	36	182	117	63	5
+384	172	5	112	628	263	6
+409	214	81	37	629	318	6
+371	128	145	90	550	279	6
+350	195	35	106	571	256	6
+564	989	172	203	215	150	21
+405	158	131	122	623	279	6
+353	130	532	0	76	108	10
+689	1023	89	223	216	219	21
+393	161	552	161	32	40	1
+272	70	25	77	0	0	5
+658	1023	172	262	299	219	25
+1023	1023	300	329	292	346	26
+431	290	118	405	179	253	16
+330	140	505	195	0	23	1
+389	146	171	122	620	245	6
+378	225	93	0	620	213	6
+400	133	33	168	633	284	6
+288	78	98	0	623	278	6
+351	125	52	0	69	0	5
+312	560	0	176	59	29	5
+361	107	492	216	92	288	18
+747	1023	71	278	212	80	21
+447	587	121	200	230	167	12
+624	430	462	170	153	302	22
+352	225	85	0	12	104	5
+356	114	550	0	0	101	10
+412	94	28	18	611	241	6
+470	915	310	445	293	376	23
+408	144	112	204	638	272	7
+405	161	68	179	634	258	6
+388	154	559	0	138	142	2
+382	194	123	70	59	118	5
+439	203	149	0	203	27	5
+303	124	497	185	17	75	1
+836	1023	197	293	285	229	25
+362	125	537	163	0	145	18
+714	1023	127	169	167	39	21
+426	189	10	0	634	287	6
+690	1005	157	275	229	162	25
+403	159	549	0	0	163	2
+577	1023	359	462	398	377	23
+363	104	554	136	68	61	1
+432	129	529	184	84	175	18
+351	79	519	0	153	69	10
+388	123	558	0	0	184	2
+647	1023	211	266	231	165	21
+366	161	544	213	0	108	1
+377	211	99	163	646	289	6
+327	117	547	0	94	205	2
+995	1023	241	348	318	292	26
+615	929	225	272	229	244	21
+666	909	131	156	111	188	21
+381	435	104	238	226	125	12
+701	486	404	222	157	341	22
+371	274	81	81	86	81	5
+337	117	81	149	643	348	6
+406	433	164	139	135	242	12
+324	143	532	102	42	237	2
+409	200	139	161	639	341	6
+356	113	503	224	24	49	1
+579	995	132	259	225	268	21
+362	92	266	185	0	248	15
+432	207	142	0	408	0	5
+582	1023	153	249	249	217	21
+706	1023	132	241	285	252	25
+332	176	532	144	76	0	1
+613	982	155	233	228	164	21
+667	1023	166	246	272	263	25
+361	118	505	25	205	248	2
+646	1023	178	191	290	252	21
+577	858	159	249	185	251	21
+665	1023	173	250	198	189	21
+448	163	517	211	0	257	18
+470	290	69	211	92	112	12
+327	130	0	0	0	3	5
+315	84	481	219	30	53	1
+393	144	0	0	626	248	6
+322	409	90	516	151	111	16
+339	114	473	276	95	105	1
+413	95	547	48	0	138	2
+296	132	0	55	296	113	5
+395	111	550	100	0	196	2
+660	1023	184	239	184	103	21
+335	81	32	54	614	279	6
+400	122	553	0	0	85	10
+404	126	540	173	0	137	18
+644	430	344	257	96	235	22
+371	94	533	202	75	40	1
+377	107	467	182	99	287	18
+903	1023	140	343	247	196	25
+360	108	519	5	0	317	2
+680	1016	139	297	231	105	21
+333	103	458	1	122	265	2
+378	114	532	148	0	135	1
+354	96	533	0	66	25	10
+341	129	107	0	660	319	6
+397	126	556	150	69	169	18
+314	142	22	0	606	203	6
+341	112	499	245	125	58	1
+417	192	8	104	642	263	6
+333	138	104	0	612	225	6
+353	584	173	210	242	177	12
+623	1023	170	213	159	89	21
+400	166	111	82	630	283	6
+363	67	52	112	601	290	6
+530	760	170	220	212	242	21
+847	1023	244	216	316	101	25
+405	128	132	112	299	148	12
+503	592	177	499	126	49	16
+441	222	125	166	374	92	12
+339	144	545	63	0	121	10
+774	1023	163	236	266	176	25
+390	197	159	17	0	220	5
+566	153	569	156	0	300	18
+355	147	68	98	574	208	6
+361	114	533	0	0	275	2
+340	155	21	103	65	135	5
+343	119	544	190	0	56	1
+327	118	519	66	32	110	10
+386	128	546	8	255	385	2
+336	80	284	3	0	181	15
+393	196	158	132	66	55	5
+369	136	540	93	25	73	10
+384	146	112	207	680	273	7
+327	185	0	231	195	28	12
+637	1023	331	530	340	453	23
+378	98	544	42	55	91	10
+385	155	543	158	0	16	1
+395	110	554	155	55	106	1
+389	134	524	169	0	129	1
+1023	1023	764	1023	804	841	19
+714	1023	150	261	280	213	25
+370	111	62	0	578	219	6
+645	1023	112	289	148	121	21
+1023	1023	538	456	358	450	19
+303	127	11	91	244	105	5
+603	930	200	228	236	98	21
+434	156	584	0	6	262	2
+421	126	522	0	162	0	10
+329	97	482	164	49	74	1
+359	92	31	0	52	57	5
+485	148	565	217	40	33	1
+714	1023	273	284	292	255	25
+349	80	488	0	121	138	2
+783	1023	215	322	277	121	25
+392	192	0	249	637	161	7
+317	164	37	135	108	91	5
+351	82	518	16	149	104	10
+384	121	108	0	657	299	6
+514	105	79	64	346	99	12
+625	1002	156	239	300	188	21
+287	60	485	150	12	7	1
+341	100	503	0	95	164	2
+717	346	404	194	144	121	24
+687	1023	123	192	156	50	21
+388	122	539	195	23	165	18
+384	146	33	144	586	253	6
+333	92	538	134	7	18	1
+261	64	456	23	41	129	10
+641	1023	79	310	183	227	21
+381	168	530	284	136	16	1
+352	129	490	272	0	209	18
+375	160	541	6	84	265	2
+564	239	395	227	137	259	22
+481	299	63	252	492	172	7
+436	1023	323	615	323	438	23
+307	117	520	0	0	56	10
+602	946	129	160	263	246	21
+1023	1023	336	372	357	439	26
+666	1023	254	248	260	131	21
+397	150	540	75	0	296	2
+396	124	513	161	134	66	1
+363	174	539	0	0	76	10
+403	178	499	233	105	144	18
+841	1023	192	264	168	219	25
+399	136	535	113	0	79	1
+726	1023	141	277	226	220	25
+388	140	141	27	642	236	6
+617	318	380	244	151	122	24
+399	174	64	53	636	288	6
+578	1023	108	299	206	198	21
+288	90	459	161	67	157	18
+412	157	571	0	34	24	10
+303	101	451	45	34	202	2
+327	121	501	45	0	144	2
+679	487	424	256	250	292	22
+616	1023	97	219	231	194	21
+458	174	570	184	90	178	18
+401	145	548	283	147	133	18
+711	1023	125	224	232	230	25
+601	1023	172	259	188	218	21
+414	172	541	23	217	211	2
+366	104	526	201	102	63	1
+778	327	400	228	166	134	24
+380	105	548	0	0	75	10
+684	1023	111	180	205	186	21
+402	137	534	98	0	232	2
+381	87	485	130	29	135	1
+1023	1023	609	775	594	625	19
+413	170	562	93	155	187	2
+624	1023	153	282	215	200	21
+391	220	55	233	102	0	12
+304	154	99	258	10	280	12
+435	131	532	0	0	75	10
+648	1023	209	157	187	38	21
+315	81	514	11	0	39	10
+398	153	259	199	514	240	6
+700	1023	153	263	247	180	25
+367	124	512	52	19	136	2
+624	1023	140	284	266	183	21
+458	171	574	203	124	270	18
+765	1023	389	509	402	448	23
+618	1023	140	238	271	231	21
+263	420	83	333	178	168	12
+421	82	523	158	83	125	1
+628	1023	141	275	295	223	21
+360	141	554	0	32	52	10
+433	224	198	179	181	10	12
+409	89	526	275	0	109	1
+426	181	555	174	141	152	18
+428	144	564	133	0	99	1
+1023	844	401	305	279	371	26
+390	124	325	0	108	178	15
+1023	1023	320	407	345	311	26
+918	1023	289	309	307	179	26
+368	97	567	152	11	82	1
+347	120	510	9	80	222	2
+351	134	72	34	592	264	6
+368	70	519	0	116	49	10
+602	1023	79	159	239	210	21
+544	930	157	186	202	239	21
+382	282	535	0	115	309	2
+413	161	546	57	98	0	10
+410	192	560	0	72	0	10
+365	109	536	0	30	35	10
+418	133	89	123	613	293	6
+664	1023	201	244	236	293	25
+438	141	516	0	136	376	2
+342	117	494	4	0	41	10
+393	105	554	197	50	104	1
+615	1023	180	220	262	259	21
+350	151	515	10	32	131	2
+280	117	83	0	0	147	5
+361	135	48	69	647	259	6
+380	120	541	52	0	90	10
+372	174	30	81	632	294	6
+685	1023	99	225	224	137	21
+341	136	6	0	619	159	6
+428	182	131	3	664	291	6
+863	1023	242	349	309	330	26
+877	1023	404	482	441	469	19
+584	1023	177	236	272	189	21
+561	1023	88	126	264	187	21
+282	69	486	205	108	82	1
+359	179	103	187	80	24	5
+698	1023	177	291	213	188	25
+372	131	545	129	219	144	18
+378	149	0	28	655	286	6
+378	184	48	129	175	193	12
+379	149	475	201	79	88	1
+718	1023	132	278	208	222	25
+334	118	114	143	5	73	5
+688	1023	113	304	239	219	25
+392	153	513	45	230	84	10
+666	1023	90	263	242	192	21
+660	890	117	255	266	218	21
+386	99	559	128	72	168	18
+355	124	513	0	23	30	10
+668	948	123	256	174	253	25
+602	1023	143	255	274	195	21
+778	1023	228	294	238	163	25
+901	608	245	348	263	485	26
+364	142	550	0	0	151	2
+316	149	75	3	106	123	5
+404	213	72	313	43	166	12
+343	130	515	204	0	151	18
+369	101	537	62	14	22	10
+407	119	533	133	73	224	18
+683	1023	193	248	289	219	25
+385	118	561	90	0	77	10
+302	160	516	252	23	114	1
+523	217	381	94	187	104	15
+313	82	107	28	498	216	6
+406	107	558	10	18	80	10
+393	122	551	240	0	187	18
+530	913	185	257	267	186	21
+667	1023	196	547	245	321	23
+711	1023	177	266	193	130	21
+763	550	338	263	107	260	22
+326	103	535	20	0	190	2
+672	1023	186	242	260	222	25
+433	131	549	185	87	74	1
+352	97	527	0	130	230	2
+647	477	422	188	152	231	22
+376	147	540	109	0	212	2
+279	78	441	184	0	180	18
+307	82	522	69	65	65	10
+423	740	259	422	304	409	23
+597	832	116	168	170	130	21
+610	1023	157	235	266	242	21
+414	241	74	202	98	145	12
+316	110	272	23	47	90	15
+664	1023	262	227	305	221	25
+455	280	305	40	147	141	15
+363	120	542	0	0	110	10
+332	117	549	0	55	65	10
+605	1006	213	204	220	220	21
+779	1023	208	308	295	319	25
+1023	943	392	288	246	386	26
+410	150	64	0	628	296	6
+673	1023	166	255	233	171	21
+392	91	518	192	117	162	18
+345	127	507	59	97	180	2
+352	192	92	170	340	19	12
+418	236	174	0	195	10	5
+680	1023	98	257	182	63	21
+697	342	400	260	180	118	24
+270	145	0	40	640	277	6
+756	1023	115	268	207	183	25
+644	955	128	225	230	161	21
+416	109	546	0	57	213	2
+270	151	122	0	626	281	6
+355	160	67	95	651	253	6
+398	107	462	98	22	206	2
+372	71	510	0	113	74	10
+645	1023	190	280	218	86	21
+263	165	6	117	107	165	5
+430	129	0	14	582	218	6
+409	154	477	192	96	200	18
+645	871	158	221	214	272	21
+338	132	27	0	642	311	6
+989	1023	240	331	268	329	26
+370	114	532	214	75	130	1
+333	125	550	0	114	7	10
+685	303	391	131	295	258	22
+563	1023	366	471	397	460	23
+739	1023	194	241	235	213	25
+375	166	10	62	675	281	6
+415	196	180	23	624	126	6
+314	77	478	172	0	107	1
+331	123	539	183	40	174	18
+369	231	100	132	658	275	6
+968	1023	495	484	400	434	19
+351	128	528	0	0	29	10
+343	174	85	157	307	19	12
+419	153	578	0	22	184	2
+384	152	38	197	528	275	6
+571	1023	157	169	152	222	21
+732	941	188	251	230	210	25
+764	1023	212	186	283	152	25
+801	476	313	174	217	169	24
+385	155	75	124	587	230	6
+400	149	107	99	570	274	6
+379	135	517	0	199	177	2
+427	165	116	41	636	202	6
+691	982	85	264	194	206	25
+716	1023	147	301	249	194	25
+1023	1023	267	305	299	276	26
+729	471	352	179	64	348	22
+680	1023	145	242	219	296	25
+538	939	147	135	222	285	21
+349	133	507	0	0	118	10
+482	442	150	104	194	206	12
+343	103	532	3	0	127	10
+828	1023	173	266	288	256	25
+299	92	424	0	0	0	10
+333	95	444	240	141	70	1
+382	191	135	142	376	142	12
+304	138	7	0	610	237	6
+364	130	544	0	0	59	10
+624	1023	53	187	203	223	21
+628	985	116	211	252	213	21
+316	113	512	0	332	197	2
+509	782	206	186	253	179	21
+429	134	101	131	627	276	6
+855	607	438	134	273	388	22
+646	1010	114	298	248	337	25
+373	111	520	0	7	241	2
+403	496	143	545	226	183	16
+417	205	93	49	650	327	6
+363	142	530	158	90	0	1
+337	129	496	224	161	158	18
+370	115	526	8	0	60	10
+371	127	522	0	0	154	2
+863	1023	422	305	298	392	26
+394	231	131	120	183	65	5
+369	130	8	173	522	265	6
+398	126	583	70	263	130	2
+332	90	542	0	0	210	2
+312	79	503	183	11	82	1
+757	1023	204	295	308	242	25
+312	104	0	0	569	268	6
+383	182	70	42	119	95	5
+375	209	86	146	591	205	6
+663	1023	140	185	202	190	21
+322	77	470	169	0	266	18
+378	129	566	161	0	142	18
+827	1023	128	271	263	132	25
+357	149	0	88	23	53	5
+316	193	521	0	0	88	10
+363	81	34	185	552	194	6
+328	187	63	157	611	216	6
+698	1023	227	213	265	223	25
+742	1023	267	185	239	245	25
+659	1023	96	286	216	271	25
+466	322	564	168	0	66	1
+364	133	486	0	0	259	2
+301	124	0	0	91	124	5
+673	1023	184	275	190	245	25
+337	127	81	0	679	245	6
+339	427	90	292	127	350	12
+388	159	82	136	662	299	6
+409	98	548	0	224	247	2
+606	1023	290	284	282	211	25
+651	466	399	169	216	25	24
+846	1023	159	244	270	168	25
+573	1023	141	304	195	275	21
+338	911	268	488	358	398	23
+697	1023	307	279	203	317	25
+396	119	538	276	125	354	18
+631	1023	162	272	274	256	25
+430	141	582	138	0	201	18
+785	1023	94	273	271	254	25
+666	964	125	233	162	177	21
+643	939	152	285	265	264	25
+442	228	118	174	688	253	6
+379	127	7	182	393	132	12
+387	179	544	52	0	44	10
+380	100	513	42	101	170	2
+399	80	124	110	547	275	6
+317	58	476	126	0	137	1
+578	1023	83	207	216	126	21
+368	96	514	297	53	231	18
+366	126	533	14	0	120	10
+675	1023	278	243	288	252	25
+342	70	482	126	125	92	1
+408	84	506	0	152	145	2
+744	1023	207	195	219	121	21
+651	1023	211	300	297	266	25
+420	1023	354	491	385	428	23
+581	1014	192	251	210	273	21
+369	598	22	191	121	103	12
+367	85	496	226	152	145	18
+341	160	500	0	30	125	10
+678	1023	155	287	188	174	21
+376	113	545	87	0	141	2
+704	1014	183	254	222	192	25
+382	165	21	87	569	246	6
+336	128	527	103	0	133	2
+604	876	127	164	267	155	21
+466	204	84	190	186	161	12
+894	1023	164	210	195	119	25
+586	1023	155	307	178	255	21
+789	1023	130	289	206	197	25
+738	1023	204	259	273	265	25
+418	112	71	244	619	219	7
+378	188	541	72	51	153	2
+370	158	0	105	588	180	6
+329	104	532	26	0	271	2
+668	865	181	223	225	241	25
+350	160	499	174	0	91	1
+369	108	488	143	89	425	18
+747	1023	172	297	261	212	25
+707	1023	220	274	273	209	25
+311	137	522	63	181	58	10
+715	893	155	224	174	171	21
+327	81	495	89	0	41	10
+634	911	144	231	198	28	21
+388	165	476	10	97	234	2
+356	114	501	206	0	49	1
+424	110	559	36	86	56	10
+343	139	41	144	638	273	6
+709	1023	58	228	279	212	25
+605	981	134	178	252	163	21
+654	1023	176	228	238	145	21
+607	1023	147	294	253	219	21
+357	95	522	146	90	215	18
+626	1023	132	229	244	239	21
+369	146	542	216	236	87	1
+804	1023	196	302	225	211	25
+411	210	569	202	108	118	1
+384	154	537	241	175	102	1
+666	496	384	0	25	264	22
+313	214	44	0	68	121	5
+377	114	546	161	125	0	1
+639	1023	195	252	233	166	21
+487	635	82	257	225	200	12
+458	257	122	0	572	94	6
+335	93	503	0	67	248	2
+363	108	470	133	0	249	18
+320	74	57	171	607	142	6
+482	186	591	237	93	230	18
+275	108	465	0	30	58	10
+663	1023	155	256	226	190	21
+360	95	479	0	115	166	2
+373	149	79	145	627	230	6
+517	222	573	144	94	336	18
+436	202	469	67	126	117	10
+287	61	215	102	6	191	15
+288	246	12	111	77	122	5
+421	191	583	87	34	157	2
+295	76	289	23	0	151	15
+673	906	146	180	247	155	21
+622	693	547	184	194	177	24
+434	253	107	0	0	24	5
+423	191	113	96	664	262	6
+572	260	371	123	89	226	22
+429	230	119	0	101	173	5
+286	125	0	224	0	72	5
+678	1023	211	178	227	272	25
+559	919	160	218	138	193	21
+335	141	502	0	0	7	10
+393	111	59	148	563	256	6
+361	88	536	225	98	0	1
+579	1023	154	253	237	115	21
+337	117	553	0	124	83	10
+485	151	594	7	89	273	2
+315	114	51	98	0	209	5
+316	147	546	234	0	34	1
+346	139	573	43	0	83	10
+606	1023	153	218	207	99	21
+758	1023	218	204	289	228	25
+728	917	45	245	258	222	25
+326	85	540	0	126	121	10
+403	186	129	9	180	94	5
+407	145	554	168	138	154	18
+925	1023	180	308	282	205	26
+333	117	526	192	172	75	1
+324	98	531	118	49	125	1
+344	139	530	157	6	51	1
+384	178	55	69	658	268	6
+775	1023	176	259	221	237	25
+315	110	490	246	86	19	1
+368	135	549	144	0	12	1
+909	1023	140	276	275	178	25
+575	1023	137	203	211	243	21
+294	118	0	137	597	249	6
+727	402	234	165	241	194	24
+540	980	138	202	244	109	21
+667	989	111	257	253	27	21
+494	275	276	173	21	235	12
+367	104	519	97	0	161	2
+376	125	131	196	557	300	6
+720	1023	166	304	233	170	25
+411	171	559	68	50	20	10
+294	77	479	270	0	47	1
+273	59	443	0	88	115	10
+702	1023	241	261	297	234	25
+337	104	541	180	86	115	1
+393	107	518	0	84	54	10
+434	179	553	101	0	189	2
+296	64	446	149	151	86	1
+375	100	319	38	98	179	15
+707	388	335	230	188	128	24
+695	1023	201	244	209	209	25
+903	1023	287	478	300	311	26
+359	119	522	157	32	88	1
+676	1023	139	257	300	205	25
+637	1023	147	306	252	286	25
+788	1023	124	266	221	278	25
+355	160	61	93	664	147	6
+674	908	140	245	282	144	21
+277	82	433	0	0	92	10
+345	117	532	155	1	46	1
+449	120	509	0	0	208	2
+643	990	97	194	209	153	21
+649	1023	249	246	308	46	21
+719	1023	222	336	277	322	25
+361	141	505	8	12	50	10
+336	100	516	152	63	121	1
+300	112	99	74	352	71	5
+649	404	439	387	173	297	22
+355	106	523	160	8	87	1
+325	81	36	126	576	248	6
+390	211	155	0	614	316	6
+676	523	454	110	180	257	22
+367	121	535	122	80	62	1
+386	114	527	170	111	44	1
+382	231	126	220	574	238	7
+616	497	466	184	216	204	22
+334	129	529	15	73	54	10
+626	990	121	255	107	86	21
+369	180	546	253	5	0	1
+381	128	501	166	139	192	18
+641	1023	231	220	213	150	21
+426	188	531	135	0	110	1
+494	295	147	150	128	103	12
+387	121	539	84	143	73	10
+647	297	383	102	167	192	24
+375	120	532	141	9	162	18
+361	154	504	39	44	9	10
+309	130	175	165	244	306	12
+312	115	500	0	188	158	2
+533	582	167	124	173	115	12
+439	795	136	116	254	232	21
+409	199	0	181	587	212	6
+669	1023	64	224	216	228	21
+680	1023	197	302	268	222	25
+621	1023	217	208	202	215	21
+385	98	546	0	159	234	2
+696	1023	108	254	309	205	25
+425	146	547	0	120	99	10
+378	96	543	204	137	0	1
+374	131	540	171	11	148	18
+753	479	439	0	235	293	22
+742	1023	208	292	244	322	25
+337	59	449	127	77	113	1
+579	974	325	410	302	401	23
+744	1023	193	289	267	177	25
+696	1023	157	228	275	182	25
+442	110	508	222	0	418	18
+455	119	527	0	49	290	2
+623	1023	18	247	232	19	21
+708	340	391	175	192	238	22
+359	109	547	157	172	19	1
+419	147	563	116	0	285	18
+367	134	506	0	93	166	2
+721	908	167	233	179	145	21
+376	164	508	143	29	164	18
+399	167	536	165	0	133	18
+359	112	536	0	107	156	2
+529	927	265	224	223	172	21
+298	140	54	106	0	71	5
+389	229	52	190	598	149	6
+696	352	413	304	98	46	24
+416	217	57	143	647	259	6
+312	109	473	200	0	91	1
+365	112	53	104	591	253	6
+831	1023	176	309	262	316	25
+343	162	0	128	646	244	6
+768	1023	246	263	281	89	25
+407	174	32	190	640	232	6
+394	192	166	172	313	20	12
+324	117	86	155	90	123	5
+641	536	425	283	221	217	22
+370	207	31	89	646	302	6
+351	95	36	137	573	206	6
+611	290	261	179	206	256	22
+401	95	79	17	588	247	6
+609	965	162	272	257	261	21
+1023	1023	423	368	316	472	26
+350	112	549	148	0	227	18
+470	132	551	162	112	163	18
+275	116	42	7	0	78	5
+594	1023	158	253	205	282	21
+582	375	413	171	121	232	22
+360	122	6	45	599	245	6
+356	107	511	162	8	164	18
+617	1023	213	340	131	264	25
+410	126	569	221	103	68	1
+305	107	0	5	0	160	5
+409	174	68	0	311	196	5
+445	159	104	159	621	294	6
+323	108	509	0	61	161	2
+573	1023	237	233	229	201	21
+326	178	44	182	621	203	6
+777	1023	461	793	479	521	19
+652	1023	212	266	284	213	25
+338	131	103	0	0	89	5
+489	151	564	281	0	308	18
+449	190	109	246	628	141	7
+346	100	519	143	61	196	18
+378	225	92	29	610	207	6
+576	1022	146	154	225	132	21
+456	195	165	54	623	281	6
+646	454	428	115	247	172	24
+400	194	106	124	68	39	5
+380	122	536	0	59	76	10
+789	1023	222	264	266	263	25
+411	157	127	196	615	194	6
+460	163	564	178	0	148	18
+359	164	502	214	44	90	1
+391	98	544	88	0	187	2
+638	1023	210	322	198	190	25
+355	98	506	109	0	152	2
+382	137	576	72	0	44	10
+779	1023	255	292	330	252	25
+664	1023	157	289	291	237	25
+315	162	0	0	632	209	6
+784	1023	186	217	228	264	25
+582	1023	89	199	200	268	21
+337	186	53	197	88	199	12
+308	128	127	0	62	0	5
+485	230	176	170	511	263	6
+405	118	47	95	623	251	6
+395	123	31	181	621	312	6
+346	92	504	173	149	98	1
+290	131	18	97	463	113	6
+409	169	526	210	0	103	1
+407	105	543	94	52	49	10
+357	147	540	256	45	110	1
+393	132	553	122	0	0	1
+430	188	112	123	624	283	6
+1023	1023	467	845	319	477	19
+305	123	496	174	0	168	18
+657	1023	121	256	248	144	21
+361	80	534	225	177	172	18
+390	128	547	163	36	95	1
+373	93	102	12	0	158	5
+641	1023	152	287	251	139	21
+363	106	519	41	0	175	2
+386	94	44	136	97	81	5
+659	1023	250	276	228	186	25
+794	1023	152	463	228	245	25
+861	1023	233	304	240	384	26
+348	159	529	86	97	200	2
+367	106	519	154	209	104	1
+347	110	505	134	0	64	1
+655	1023	209	266	283	289	25
+368	204	0	79	230	114	5
+384	160	164	0	650	239	6
+332	87	493	186	31	177	18
+399	129	60	148	604	258	6
+637	1023	117	276	111	133	21
+388	138	34	134	640	287	6
+704	487	412	248	67	114	24
+283	93	0	0	616	304	6
+352	138	542	0	90	163	2
+324	74	435	1	0	18	10
+341	147	0	0	92	1	5
+712	939	131	214	134	74	21
+318	129	0	46	189	25	5
+335	129	514	216	0	100	1
+744	1023	162	245	237	151	25
+402	129	92	116	612	297	6
+638	1023	105	297	299	165	21
+362	145	63	6	547	169	6
+364	111	516	222	0	96	1
+310	150	495	126	0	109	1
+338	110	526	89	0	52	10
+356	104	550	156	0	92	1
+403	114	497	44	147	75	10
+391	140	82	182	643	241	6
+665	1023	172	275	273	158	21
+767	1023	171	232	220	43	21
+307	92	516	93	0	222	2
+872	1023	211	273	308	111	25
+463	141	558	0	29	108	10
+610	893	126	126	192	147	21
+373	192	152	95	614	221	6
+377	119	546	284	0	206	18
+389	176	564	137	0	99	1
+379	156	31	71	354	172	6
+401	133	546	177	0	123	1
+427	180	144	163	383	0	12
+735	1023	196	227	209	317	25
+803	1023	171	203	259	181	25
+727	1023	193	298	326	223	25
+275	40	243	141	0	216	15
+376	137	69	145	649	201	6
+370	145	132	0	653	249	6
+358	115	556	205	0	102	1
+365	115	536	168	99	140	18
+375	114	49	76	612	289	6
+339	170	100	126	143	207	5
+327	103	484	42	127	181	2
+439	227	138	130	76	5	5
+353	100	522	203	166	117	1
+336	107	517	37	38	0	10
+511	873	214	228	228	210	21
+380	218	74	0	21	107	5
+356	74	0	152	626	77	6
+333	121	518	192	149	174	18
+658	1023	158	184	214	145	21
+402	109	561	112	57	22	1
+301	126	518	0	0	16	10
+377	139	527	20	41	36	10
+300	120	49	19	167	45	5
+340	140	124	0	637	323	6
+587	1023	127	192	226	181	21
+330	73	524	81	0	62	10
+489	116	104	136	440	282	6
+315	96	486	0	44	174	2
+339	144	485	183	0	101	1
+431	151	561	175	32	107	1
+359	625	85	420	180	203	16
+778	1023	126	345	310	286	25
+381	220	108	89	626	146	6
+885	1023	214	284	337	118	25
+375	111	529	49	112	41	10
+381	123	527	0	132	251	2
+1023	1023	224	297	348	304	26
+428	210	97	0	120	230	5
+623	967	168	239	188	164	21
+414	172	179	136	595	297	6
+610	1023	122	118	185	236	21
+763	1023	203	251	233	266	25
+385	168	561	0	58	66	10
+718	1023	211	160	317	216	25
+410	143	547	218	0	295	18
+427	190	91	0	83	222	5
+338	115	487	51	50	15	10
+1023	1023	330	370	327	428	26
+365	123	550	252	0	159	18
+323	76	475	197	0	36	1
+731	1023	118	309	259	155	25
+307	124	87	42	106	138	5
+326	97	506	0	0	79	10
+332	238	36	173	603	226	6
+519	727	111	255	248	214	21
+419	146	10	104	595	285	6
+406	129	547	150	112	108	1
+319	143	522	0	0	52	10
+310	163	489	0	0	6	10
+625	499	424	209	139	101	24
+618	1023	366	487	373	440	23
+378	160	0	0	564	213	6
+401	126	498	27	225	82	10
+374	181	0	104	602	211	6
+390	149	67	117	630	279	6
+327	135	539	128	126	56	1
+333	101	498	5	69	135	2
+351	95	501	127	39	168	18
+564	1021	185	81	212	266	21
+401	205	522	9	27	78	10
+688	1014	157	205	258	227	25
+328	177	43	162	593	275	6
+371	97	529	194	0	198	18
+600	377	354	99	125	224	22
+383	184	532	33	532	303	3
+338	139	25	41	38	92	5
+482	141	586	265	206	255	18
+444	132	567	159	185	105	1
+510	907	328	438	354	331	23
+353	101	499	247	0	125	1
+354	97	535	50	41	147	2
+376	119	556	0	39	17	10
+307	168	105	41	354	36	5
+495	1023	300	436	347	400	23
+348	99	488	10	125	130	2
+539	1023	337	450	338	410	23
+356	107	506	185	0	105	1
+347	179	22	0	619	320	6
+357	263	217	0	636	238	6
+705	1023	146	258	281	51	21
+264	58	196	0	0	122	5
+522	643	227	237	235	212	21
+387	127	57	227	656	291	7
+529	921	134	245	230	111	21
+371	127	551	128	69	55	1
+523	968	158	220	217	179	21
+408	136	89	158	162	241	12
+354	161	37	130	593	35	6
+367	93	560	230	0	185	18
+389	148	89	98	627	221	6
+392	163	540	0	0	103	10
+262	57	410	198	104	247	18
+409	181	574	49	27	130	2
+774	1023	194	236	201	287	25
+322	162	103	0	52	61	5
+883	573	439	287	181	346	26
+432	236	118	233	110	40	12
+800	1023	163	285	250	291	25
+379	144	98	89	670	261	6
+362	136	66	128	603	301	6
+363	124	509	130	118	130	1
+402	143	120	177	629	207	6
+289	138	36	231	83	155	12
+462	225	560	9	41	109	10
+378	130	523	130	23	354	18
+391	172	575	0	0	326	2
+634	342	420	0	228	183	24
+756	915	123	166	229	144	21
+327	140	0	77	657	297	6
+363	133	530	201	0	158	18
+649	1023	183	251	201	207	21
+769	1023	172	334	313	272	25
+372	248	0	236	34	437	4
+590	1023	114	141	185	283	21
+383	158	128	174	633	126	6
+374	101	540	315	8	131	18
+680	1023	159	258	289	207	25
+693	1023	164	271	206	317	25
+413	164	81	79	485	156	6
+687	535	422	301	156	230	22
+296	158	510	216	64	10	1
+359	208	111	0	96	150	5
+489	927	53	217	130	225	21
+355	112	42	64	617	245	6
+710	1023	82	271	215	321	25
+647	1023	229	291	141	249	25
+673	1023	186	204	221	176	21
+284	97	495	46	0	75	10
+546	353	285	142	161	270	22
+598	1023	198	291	243	1	21
+428	157	174	102	625	290	6
+372	149	539	23	50	0	10
+623	969	148	136	234	143	21
+382	229	93	79	62	4	5
+339	226	122	75	28	171	5
+391	138	526	135	0	161	18
+352	119	526	0	0	36	10
+262	76	470	158	63	44	1
+625	1023	184	195	190	72	21
+382	105	552	135	0	45	1
+379	154	44	0	631	195	6
+440	136	522	135	73	241	18
+664	1023	96	241	272	179	21
+326	99	465	0	182	267	2
+443	247	94	195	110	62	12
+376	117	536	0	74	103	10
+696	487	420	0	109	302	22
+411	169	522	209	0	166	18
+417	166	87	214	67	51	12
+402	129	78	123	591	252	6
+262	109	0	0	0	151	5
+342	142	42	0	623	283	6
+379	168	37	109	127	179	5
+591	1023	123	277	207	133	21
+361	164	488	214	369	251	18
+406	215	36	208	673	274	7
+384	170	34	192	589	288	6
+366	111	552	252	0	159	18
+384	184	532	0	81	224	2
+749	1023	205	302	290	226	25
+660	1023	388	488	433	451	23
+388	192	554	190	133	146	18
+268	50	465	0	0	104	10
+612	1023	139	274	226	124	21
+540	847	185	237	267	221	21
+347	153	103	95	35	190	5
+303	171	66	157	60	137	5
+342	151	538	0	22	65	10
+371	210	88	21	631	201	6
+652	1023	233	288	312	165	25
+630	808	171	200	154	256	21
+331	139	523	81	0	138	2
+371	166	10	101	660	331	6
+342	82	497	0	42	98	10
+411	146	552	10	186	185	2
+416	171	101	130	669	341	6
+369	159	219	37	325	66	15
+522	980	166	223	304	226	21
+372	123	550	83	12	0	10
+772	1023	139	302	209	211	25
+721	497	510	257	217	193	24
+405	108	547	182	0	128	1
+756	513	351	243	217	268	22
+773	1023	107	284	266	287	25
+285	156	46	12	4	93	5
+701	1023	190	258	259	241	25
+344	158	51	160	647	196	6
+654	1023	214	241	249	200	21
+450	183	581	167	151	259	18
+559	895	128	149	207	178	21
+443	202	90	103	647	294	6
+376	92	517	2	0	77	10
+439	148	557	142	60	179	18
+331	93	532	173	168	80	1
+607	462	392	137	132	121	24
+339	86	520	62	34	204	2
+843	1023	217	307	243	208	25
+841	1023	220	229	296	235	25
+414	83	335	0	0	100	15
+376	127	495	255	28	298	18
+371	154	540	0	50	212	2
+367	89	509	112	127	199	2
+315	104	520	15	0	143	2
+366	110	511	117	184	83	1
+756	1023	244	241	255	255	25
+354	106	547	0	181	196	2
+678	1023	237	283	238	309	25
+359	119	534	0	98	213	2
+355	97	493	218	187	155	18
+649	1023	176	212	247	307	25
+408	136	539	114	0	92	1
+414	232	157	100	122	246	12
+611	446	423	254	162	215	22
+355	132	85	53	147	122	5
+334	164	121	0	559	216	6
+711	1023	183	293	233	190	25
+440	328	295	321	199	227	12
+295	96	509	0	70	97	10
+334	115	512	145	31	35	1
+369	102	533	134	115	146	18
+672	1023	195	294	267	255	25
+683	1023	211	303	272	176	25
+578	1023	343	455	376	411	23
+412	161	0	64	615	314	6
+709	995	155	200	144	113	21
+577	1011	85	285	224	122	21
+625	931	204	292	256	197	21
+363	200	41	11	558	219	6
+663	1023	176	355	229	266	25
+399	182	558	155	0	146	18
+305	121	0	151	7	192	5
+370	130	546	117	131	115	1
+412	177	98	34	627	180	6
+726	1023	214	250	221	183	25
+789	1023	177	180	273	245	25
+703	1023	93	241	252	158	21
+337	74	495	0	91	125	10
+690	370	401	210	152	82	24
+346	109	49	181	595	294	6
+610	1023	181	203	290	232	21
+385	105	557	100	0	53	10
+351	152	552	0	0	172	2
+419	105	524	0	191	273	2
+455	209	552	0	96	241	2
+289	117	46	142	0	62	5
+354	117	529	0	173	84	10
+368	95	507	189	0	109	1
+346	107	506	204	0	83	1
+553	851	173	135	133	190	21
+336	107	55	135	570	188	6
+826	1003	173	272	232	163	25
+566	857	109	248	166	224	21
+615	339	326	208	226	217	22
+656	298	400	138	108	189	24
+346	135	538	259	0	142	18
+570	991	128	276	175	304	21
+397	92	541	147	167	26	1
+341	150	108	0	650	183	6
+609	1023	171	283	225	95	21
+651	1023	74	197	238	239	21
+305	79	481	203	136	22	1
+571	1023	364	461	377	463	23
+325	79	504	177	30	74	1
+404	679	175	204	209	199	12
+312	108	514	32	40	179	2
+775	529	408	181	214	188	24
+425	166	589	116	0	271	18
+262	102	0	285	155	48	12
+374	161	37	0	146	137	5
+347	92	92	0	643	147	6
+649	1023	172	160	202	184	21
+378	179	0	0	613	194	6
+396	135	540	7	0	194	2
+272	126	12	7	65	272	5
+462	313	0	208	78	83	12
+716	846	150	273	243	229	25
+528	992	155	250	221	206	21
+635	888	145	188	221	77	21
+348	102	489	0	99	249	2
+368	103	20	183	566	298	6
+802	906	91	167	151	203	25
+321	151	66	28	16	79	5
+746	1023	206	318	265	202	25
+618	948	144	207	239	173	21
+399	112	526	267	0	21	1
+450	1023	374	475	323	442	23
+365	96	538	0	0	119	10
+432	210	89	249	116	190	12
+344	119	537	175	0	184	18
+358	120	496	0	85	173	2
+353	180	153	194	543	29	6
+358	79	305	0	4	189	15
+368	96	495	0	57	149	2
+420	135	131	21	604	266	6
+655	1023	190	289	243	293	25
+312	111	485	33	0	31	10
+378	196	536	96	195	179	2
+571	993	102	214	182	112	21
+362	105	533	14	100	139	2
+329	107	510	137	0	60	1
+364	109	347	0	0	62	15
+627	1023	194	280	224	245	25
+741	602	433	208	254	279	22
+333	98	520	229	0	28	1
+278	95	455	0	0	84	10
+399	161	511	226	72	121	1
+328	78	46	0	564	85	6
+372	152	515	0	150	63	10
+1023	1023	513	260	347	324	26
+325	98	509	69	0	55	10
+327	177	141	187	639	334	6
+394	213	73	79	109	55	5
+620	1023	115	173	229	121	21
+387	111	550	62	0	38	10
+342	184	0	46	605	224	6
+346	217	98	215	0	218	12
+477	330	183	377	147	217	16
+307	139	514	227	83	0	1
+364	123	537	121	0	154	18
+338	112	538	200	0	0	1
+386	133	570	183	195	70	1
+768	1023	193	246	278	232	25
+410	169	106	135	157	175	12
+416	112	43	0	613	294	6
+627	1023	225	276	212	245	25
+350	104	68	0	623	193	6
+377	148	116	2	616	213	6
+650	980	161	77	216	173	21
+342	158	510	0	0	167	2
+561	1023	117	313	179	125	21
+331	176	497	172	0	141	1
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/flowclr_summary/test-data/out.tabular	Mon Feb 27 12:57:41 2017 -0500
@@ -0,0 +1,141 @@
+Population		CCR3	CCR7	CD4	CD8	FSC	SSC
+1	mean	179.5	73.3	522.9	54.7	361.5	121.0
+1	std	42.7	40.1	27.8	62.0	37.1	33.2
+1	min	112.0	0.0	444.0	0.0	262.0	58.0
+1	25%	146.2	42.5	505.0	0.0	334.0	99.0
+1	50%	173.5	79.5	526.0	32.0	359.5	114.5
+1	75%	209.2	106.8	543.0	94.8	385.8	139.0
+1	max	284.0	141.0	588.0	237.0	485.0	322.0
+2	mean	30.2	194.1	526.4	68.8	372.8	128.0
+2	std	38.3	52.8	31.7	71.5	43.8	37.6
+2	min	0.0	128.0	378.0	0.0	266.0	61.0
+2	25%	0.0	153.0	509.0	0.0	344.2	101.0
+2	50%	5.0	184.0	531.0	52.5	367.0	120.0
+2	75%	59.8	222.0	546.0	119.8	397.0	147.8
+2	max	118.0	385.0	596.0	332.0	513.0	303.0
+3	mean	33.0	303.0	532.0	532.0	383.0	184.0
+3	std						
+3	min	33.0	303.0	532.0	532.0	383.0	184.0
+3	25%	33.0	303.0	532.0	532.0	383.0	184.0
+3	50%	33.0	303.0	532.0	532.0	383.0	184.0
+3	75%	33.0	303.0	532.0	532.0	383.0	184.0
+3	max	33.0	303.0	532.0	532.0	383.0	184.0
+4	mean	182.5	384.0	50.0	86.0	380.5	234.0
+4	std	75.7	75.0	70.7	73.5	12.0	19.8
+4	min	129.0	331.0	0.0	34.0	372.0	220.0
+4	25%	155.8	357.5	25.0	60.0	376.2	227.0
+4	50%	182.5	384.0	50.0	86.0	380.5	234.0
+4	75%	209.2	410.5	75.0	112.0	384.8	241.0
+4	max	236.0	437.0	100.0	138.0	389.0	248.0
+5	mean	63.0	101.5	64.5	88.1	338.7	160.1
+5	std	63.5	62.5	46.9	84.6	47.1	55.4
+5	min	0.0	0.0	0.0	0.0	261.0	48.0
+5	25%	0.0	57.0	25.0	22.5	301.8	125.0
+5	50%	49.0	104.5	68.0	76.0	332.0	154.0
+5	75%	116.0	143.0	101.2	116.2	374.8	190.2
+5	max	224.0	272.0	196.0	408.0	439.0	560.0
+6	mean	84.7	243.3	70.2	608.5	375.5	153.2
+6	std	65.4	59.8	52.8	48.3	44.5	45.3
+6	min	0.0	2.0	0.0	354.0	262.0	53.0
+6	25%	17.0	212.0	28.0	591.0	350.0	129.0
+6	50%	93.0	252.0	65.0	619.0	376.0	151.0
+6	75%	137.0	287.0	108.0	640.0	398.0	176.0
+6	max	205.0	375.0	281.0	712.0	673.0	445.0
+7	mean	225.4	238.8	69.5	624.5	408.5	182.1
+7	std	21.0	65.3	44.9	55.2	33.3	56.1
+7	min	197.0	141.0	0.0	492.0	378.0	112.0
+7	25%	207.2	183.8	41.2	621.2	384.8	144.5
+7	50%	223.5	255.0	67.0	637.5	399.0	177.5
+7	75%	245.5	273.8	111.2	654.0	415.5	209.2
+7	max	252.0	347.0	126.0	680.0	481.0	299.0
+10	mean	23.1	67.7	521.7	49.8	356.6	118.1
+10	std	32.6	35.8	30.0	62.1	39.7	32.3
+10	min	0.0	0.0	424.0	0.0	261.0	50.0
+10	25%	0.0	41.0	506.0	0.0	330.0	100.0
+10	50%	0.0	72.0	522.0	25.0	354.0	116.0
+10	75%	43.5	94.5	541.5	87.0	382.0	137.0
+10	max	113.0	131.0	645.0	266.0	479.0	276.0
+12	mean	197.6	153.2	115.5	176.8	402.5	283.7
+12	std	56.3	87.1	59.2	104.4	63.4	157.1
+12	min	64.0	0.0	0.0	0.0	262.0	102.0
+12	25%	163.0	97.2	82.8	109.0	361.5	179.8
+12	50%	196.0	156.5	111.0	163.0	405.5	219.0
+12	75%	231.5	214.2	144.8	227.8	441.0	329.8
+12	max	333.0	350.0	295.0	393.0	590.0	679.0
+13	mean	405.0	291.0	348.0	312.0	470.0	425.0
+13	std						
+13	min	405.0	291.0	348.0	312.0	470.0	425.0
+13	25%	405.0	291.0	348.0	312.0	470.0	425.0
+13	50%	405.0	291.0	348.0	312.0	470.0	425.0
+13	75%	405.0	291.0	348.0	312.0	470.0	425.0
+13	max	405.0	291.0	348.0	312.0	470.0	425.0
+15	mean	71.0	130.6	305.4	72.7	374.9	129.7
+15	std	66.2	66.1	51.0	86.2	68.8	65.9
+15	min	0.0	0.0	215.0	0.0	262.0	40.0
+15	25%	13.0	95.0	269.0	0.0	331.5	81.5
+15	50%	52.0	141.0	305.0	47.0	369.0	109.0
+15	75%	104.0	180.0	338.5	124.5	406.5	156.5
+15	max	208.0	248.0	396.0	325.0	523.0	280.0
+16	mean	468.6	172.7	115.4	161.9	408.9	423.0
+16	std	66.1	69.5	59.7	36.0	65.6	154.3
+16	min	377.0	49.0	12.0	124.0	322.0	219.0
+16	25%	412.5	147.0	87.5	136.5	363.0	310.0
+16	50%	499.0	193.0	118.0	151.0	403.0	409.0
+16	75%	517.0	210.0	160.0	179.5	454.0	544.0
+16	max	545.0	253.0	183.0	226.0	503.0	625.0
+18	mean	188.0	204.9	527.7	57.2	390.3	132.1
+18	std	45.5	61.7	31.4	65.1	49.0	35.1
+18	min	116.0	131.0	410.0	0.0	262.0	57.0
+18	25%	150.0	158.0	508.0	0.0	361.0	109.0
+18	50%	184.0	183.0	532.0	35.0	385.0	128.0
+18	75%	218.0	241.0	549.5	98.0	417.5	148.5
+18	max	315.0	425.0	591.0	369.0	566.0	264.0
+19	mean	704.1	515.5	492.4	442.4	945.8	984.4
+19	std	170.2	118.9	109.8	136.5	89.4	139.2
+19	min	456.0	380.0	362.0	313.0	777.0	521.0
+19	25%	583.0	450.0	404.0	358.0	899.0	1023.0
+19	50%	751.0	481.0	467.0	395.0	968.0	1023.0
+19	75%	810.0	544.0	541.0	479.0	1023.0	1023.0
+19	max	1023.0	841.0	764.0	804.0	1023.0	1023.0
+21	mean	221.4	172.0	142.3	216.5	614.4	973.4
+21	std	53.6	65.3	49.4	43.4	58.1	74.6
+21	min	0.0	0.0	0.0	84.0	417.0	643.0
+21	25%	193.8	129.5	111.0	192.8	579.0	938.8
+21	50%	230.5	179.0	146.0	222.0	616.0	1023.0
+21	75%	256.0	224.0	173.0	246.0	651.2	1023.0
+21	max	328.0	304.0	311.0	320.0	776.0	1023.0
+22	mean	179.1	260.8	398.4	173.6	680.2	443.1
+22	std	84.5	39.3	57.3	60.4	76.1	96.1
+22	min	0.0	203.0	250.0	25.0	522.0	239.0
+22	25%	131.0	230.0	359.0	137.0	623.0	377.0
+22	50%	186.0	257.0	413.0	174.0	685.0	458.0
+22	75%	243.0	279.0	433.0	217.0	737.0	503.0
+22	max	387.0	388.0	550.0	295.0	855.0	607.0
+23	mean	482.7	423.5	339.7	362.9	546.7	1000.9
+23	std	58.4	37.5	41.5	61.4	89.7	56.3
+23	min	410.0	321.0	196.0	245.0	338.0	740.0
+23	25%	453.8	406.0	322.8	323.8	490.8	1023.0
+23	50%	468.0	434.5	347.5	357.0	554.5	1023.0
+23	75%	490.2	451.5	366.0	388.0	606.2	1023.0
+23	max	738.0	480.0	404.0	609.0	765.0	1023.0
+24	mean	180.9	145.2	401.3	175.7	679.4	404.8
+24	std	74.3	47.1	74.2	54.8	59.1	103.7
+24	min	0.0	25.0	215.0	0.0	568.0	182.0
+24	25%	156.0	118.0	383.0	144.0	634.0	329.0
+24	50%	189.0	141.0	401.0	180.0	675.0	394.0
+24	75%	229.0	187.0	428.0	217.0	707.0	476.0
+24	max	314.0	199.0	573.0	268.0	853.0	693.0
+25	mean	267.9	222.3	184.8	249.6	731.6	1009.3
+25	std	44.2	58.9	48.5	40.8	64.8	52.0
+25	min	147.0	22.0	45.0	107.0	595.0	487.0
+25	25%	243.8	190.0	157.0	226.0	683.0	1023.0
+25	50%	271.0	225.5	188.0	251.0	726.0	1023.0
+25	75%	289.5	263.0	213.0	275.5	774.0	1023.0
+25	max	463.0	384.0	372.0	384.0	917.0	1023.0
+26	mean	334.5	348.9	322.6	304.2	967.1	980.0
+26	std	60.8	75.1	88.2	45.8	63.1	109.3
+26	min	160.0	179.0	180.0	181.0	854.0	573.0
+26	25%	298.0	295.0	245.0	282.0	903.0	1023.0
+26	50%	331.0	346.0	300.0	303.0	995.0	1023.0
+26	75%	370.0	399.0	401.0	340.0	1023.0	1023.0
+26	max	478.0	499.0	513.0	407.0	1023.0	1023.0
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/flowclr_summary/test-data/report.tabular	Mon Feb 27 12:57:41 2017 -0500
@@ -0,0 +1,22 @@
+Population	Count	Percentage
+1	194	9.7
+2	194	9.7
+3	1	0.05
+4	2	0.1
+5	140	7.0
+6	309	15.46
+7	10	0.5
+10	187	9.35
+12	72	3.6
+13	1	0.05
+15	23	1.15
+16	7	0.35
+18	151	7.55
+19	13	0.65
+21	292	14.61
+22	53	2.65
+23	36	1.8
+24	41	2.05
+25	232	11.61
+26	41	2.05
+Total	1999