LogOpasnet base connectionInterface for uploading data to and downloading from the Opasnet Base.
<a href="http://en.opasnet.org/w/Image:Opasnet_base_connection.ANA">Wiki description</a>Jouni Tuomisto9. maata 2008 10:42jtue8. kesta 2009 11:28 48,241,0,0,1,1,1,0,0,0,01,8,2,1054,656,172,102,90,476,224Arial, 150,Linkmodule Op_en2676,2,2,0,1,E:\Opasnet_base_connection-12.ANA100,1,1,1,1,9,2970,2100,15,0This module saves model results into the Opasnet Base. You need your Opasnet username and password for that. You must fill in all tables before the process is completed. Fill in the data below from top to bottom.
If an object with the same Ident already exists in the Opasnet Base, the information will be added to that object.
Before you start, make sure that you have created an object page in the Opasnet wiki for each object (study or variable) you want to upload.516,52,-1508,44Username0168,108,1160,121,0,0,1,0,0,0,142,0,152425,39321,65535Opasnet_usernamePassword0168,132,1160,121,0,0,1,0,0,0,142,0,152425,39321,65535Opasnet_passwordStudy or variable info0164,444,1156,131,0,0,1,0,0,0,90,0,152425,39321,65535Data_info1) Copy-paste a data table to Analytica. Indices are determinants of your study objects, such as sex or observation year. Parameters are those that are measured, such as body weight or pollutant concentration.168,312,-1160,1121,0,0,1,0,1,0,,0,2,693,146,476,224Finally, fill in the name (a description that may be longer than an identifier) and the unit of measurement. Then press the button Upload data.596,452,-1268,20Advanced uploadktluser1. Aprta 2009 9:38 48,24960,440,148,241,0,0,1,1,1,0,,0,1,217,501,376,152,17Writerjtue24. maata 2009 9:36 48,24184,32,148,241,602,13,633,508,17W LocMakes a table to be written to the Loc table.index j:= ['id','Std_id','Obj_id_i','Location','Roww','Description'];
var a:= Locations[.j=j];
var b:= a[j='Obj_id_i'];
var c:= textify(cardinals[table1='Loc']+a[@j=1]);
a:= array(j,[c, c, findid(b,Obj,'Ident'), a, textify(a), a])440,176,148,162,156,83,476,2452,642,68,606,278,0,MIDM65535,45873,39321[Sys_localindex('J'),Sys_localindex('I')]2,D,4,2,0,0,4,0,$,0,"ABBREV",0100,1,1,1,1,9,2970,2100,15,0[][Sys_localindex('I'),16,Sys_localindex('I'),1,Sys_localindex('J'),1]W LoccellSlices fields that are needed in the Locres table from Inp_locres.var a:= Loccells;
var b:= textify(findid(a[.j='id'], Obj, 'Ident'));
var c:= textify(a[.j='Loc_id']);
b:= findid(b&'+'&c, (if Loc.j='Obj_id_i' then Loc&'+'&Loc[.j='Location'] else Loc), 'Obj_id_i');
a:= array(a.j,[(@a.i+cardinals[table1='Loccell']), (a+cardinals[table1='Cell']), b]);
textify(a)424,312,148,162,776,90,476,4872,608,110,453,537,0,MIDM65535,45873,39321[Sys_localindex('J'),Sys_localindex('I')]2,I,4,2,0,0,4,0,$,0,"ABBREV",0[]W CellSlices the fields that are needed in the Res table. Removes duplicate rows.index j:= ['id','Obj_id_v','Obj_id_r','Mean','SD','N'];
var a:= Cells;
{index i:= unique(a[.j='Cell_id'], a.i);
ivar a:= a[.i=i];}
var b:= a[.j='id']+cardinals[table1='Cell'];
a:= a[.j=j];
var c:= findid(a[@j=2], Obj, 'Ident');
var d:= w_obj[.j='Ident'];
d:= findid(d, Obj, 'Ident')[@.i=size(w_obj.i)];
a:= array(j, [textify(b),c, d, a, a, textify(a)]);
if a=null then '' else a424,240,148,162,799,214,476,3792,85,264,505,368,0,MIDM65535,45873,39321[Sys_localindex('J'),Sys_localindex('I')]2,D,4,2,0,0,4,0,$,0,"ABBREV",0[]WikisNames of different wikis used.Table(Self)(
'Op_en','Op_fi','Heande','En','Fi','Erac','Beneris','Intarese','Piltti','Kantiva','Bioher','Heimtsa')[1,2,3,4,5,8,9,10,11,13,14,15]248,24,148,1665535,52427,65534[Self]W ObjSelects relevant information for the Obj table from Objects1 node.index j:= ['id','Ident','Name','Unit','Objtype_id','Page','Wiki_id'];
var a:= Objects;
var b:= if a[.j='Ident'] = 0 then -1 else a[.j='Ident'];
b:= findid(b, Obj, 'Ident');
b:= if b='0' then cardinals[table1='Obj']+a[.j='id'] else b;
a:= if a.j='id' then b else a;
a:= a[.j=j];
a:= if j='Ident' and a[j='Ident']='' then a[j='id'] else a;
var c:= Object_info1[varinfo='Append to run'];
a:= if j='Ident' and a.i='Run' and isnumber(c) then c else a;
textify(a)424,112,148,162,524,183,476,5082,89,387,1023,259,0,MIDM65535,45873,39321[Sys_localindex('J'),Sys_localindex('I')]2,I,4,2,0,0,4,0,$,0,"ABBREV",0[][]W ResinfoIf the result is not a number, then the actual result text can be written into the Description field of the Descr table. Makes a list of text values to be written into the Descr table.index j:= ['id','Restext'];
var a:= Results;
index i:= subset(a[.j='Restext']);
a:= a[.j=j, .i=i];
a:= array(j, [textify(a+Cardinals[table1='Res']), a])424,352,148,162,674,46,476,2592,670,328,416,303,0,MIDM65535,45873,39321[Sys_localindex('J'),Sys_localindex('I')]2,D,4,2,0,0,4,0,$,0,"ABBREV",0[]W ObjinfoMakes a list of objects that contains some additional information to be written into the Inf table.index j:= ['Obj_id','Acttype_id','Who','Comments'];
var a:= Objects;
var b:= if a[.j='Ident'] = 0 then -1 else a[.j='Ident'];
b:= findid(b, Obj, 'Ident');
b:= if b='0' then cardinals[table1='Obj']+a[.j='id'] else b;
a:= if j='Obj_id' then b else a[.j=j];
a:= if a = null or a='' then 0 else a;
index i:= subset(if sum(a, j) = 0 then 0 else 1);
a:= a[.i=i];
a:= if a=null or a=0 then '' else a&''424,72,148,162,210,49,476,3402,34,427,690,274,0,MIDM65535,45873,39321[Sys_localindex('J'),Sys_localindex('I')]2,I,4,2,0,0,4,0,$,0,"ABBREV",0[][Sys_localindex('J'),1,Sys_localindex('I'),1,Sys_localindex('J'),1]W Resindex j:= ['id','Cell_id','Obs','Result'];
var a:= Results;
index i:= subset(if a[.j='Result']=null and a[.j='Description']=0 then 0 else 1);
a:= a[.j=j, .i=i];
a:= array(j, [textify(a+Cardinals[table1='Res']), textify(a+ Cardinals[table1='Cell']), textify(a),a]);
if a=null then '' else a
424,384,148,132,629,191,582,2972,54,89,609,375,0,MIDM65535,45873,39321[Sys_localindex('J'),Sys_localindex('I')]2,D,4,2,0,0,4,0,$,0,"ABBREV",0[][]Object infoAdditional information for each index and decision node. Description node is the name of a node containing information about the locations of the index. It must be indexed by the index.Table(Varinfo)(
1,'','Op_enXXXX',2,'',0,'')176,328,148,162,140,217,476,2242,362,97,265,216,0,MIDM2,939,520,288,303,0,MIDM[Formnode Variables1]52425,39321,65535[Varinfo][Varinfo][0,1,1,0]Data infoTable(Object_info,Object1)(
'var','Year','Tissue','Param',
'pg','a','-','pg'
)64,72,148,132,102,90,476,3492,86,47,623,184,0,MIDM2,184,194,660,316,0,MIDM[Formnode Study_or_variable_i1]52425,39321,65535[Object_info,Object1][Object_info,Object1]Object info['Name','Unit']64,96,148,12['Name','Unit']LoccellsMakes a list of all locations in all results in all variables. The list is as long as is needed for the Loccell table. A subset is taken then for the Cell table.
1) Initialises local variables, and slices variables from Object1.
2)-4) Does the process for each variable one at a time. This happens in function Loccell.
5) Makes i the row index.var a:= data_table;
index h:= a.j[@.j=1..size(a.j)-2];
a:= a[.j=h];
var d:= max(data_table[.j='Obs'],data_table.i);
a:= if Object_info1[varinfo='Probabilistic?']<>1 then
(index itemp:= copyindex(a.i); a[.i=itemp]) else (
index grun:= 1..d;
index itemp:= 1..size(a.i)/d;
a:= a[@.i=(itemp-1)*d+grun];
a:= a[@grun=1]);
index j:= ['id', 'Cell_id', 'Loc_id'];
index i:= 1..size(a);
a:= array(j,[h, @a.itemp, a]);
concatrows(a,h,a.itemp,i)288,328,148,162,643,26,526,5962,31,123,552,488,0,MIDM[Sys_localindex('J'),Sys_localindex('I'),Undefined,Undefined,Undefined,1]2,D,4,2,0,0,4,0,$,0,"ABBREV",0[][Undefined][Sys_localindex('J'),2,Sys_localindex('ITEMP'),1,Sys_localindex('H'),1]ResultsThe usage of local variables: a: the temporary variable that is being edited. e: cardinal of the Cell table. f: cardinal of the Res table. j: output column headings. i: output row numbers. NOTE! ONLY THE DETERMINISTIC VERSION WORKS AT THE MOMENT.
1) Only one piece of information (Observations) is included.
2)-5) The process is done for each variable one at a time (this is indexed by x).
3) Several within-loop local variables are initiated.
4) The variable is given index runn which is equal to run if probabilistic and [0] if not. The array is flattened first to 2-D, the value only is kept.
5) Variables are concatenated to each other.
6) Index i is made the index of the implicit index.
NOTE! This node MUST be formatted to Integer, otherwise Res_id will be stored in a wrong format.var e:= 0;
var f:= 0;
var probabilistic= Object_info1[varinfo='Probabilistic?'];
var a:= data_table[.j='Result'];
var d:= max(data_table[.j='Obs'],data_table.i);
var b:= if Object_info1[varinfo='Probabilistic?']<>1 then @a.i else (
floor((@a.i-1)/d)+1)
{index grun:= 1..d;
index i:= 1..size(a.i)/d;
a:= a[@.i=(i-1)*d+grun];
a:= array(temp,[mean(a,grun), sdeviation(a[j='Mean'],grun)])} ;
index j:= ['id','Cell_id','Obs','Result','Restext'];
a:= array(j,[0, b, data_table[.j='Obs'], (if istext(a) then 0 else a) , (if istext(a) then a else 0)]);
{
index runn:= if Probabilistic=1 then copyindex(run) else [0];
index i:= (1..size(max(a.i,run))*size(runn))+f;
a:= if Probabilistic=1 then a[run=runn] else (if runn=0 then a else a);
a:= a[.j='Result'];
index j:= ['id','Cell_id','Obs','Result','Restext'];
a:= array(j,[0, a.i+e, runn, (if istext(a) then 0 else a) , (if istext(a) then a else 0)]);
a:= concatrows(a,a.i,runn, i);
a:= if j='id' then i else a
}
{var output:= 0;
output:= if data_table_or_model_ = 'Data table' then
Doresult(Data_table, 0)
else (
var e:= 0;
var f:= 0;
var x:= 1;
while x<= size(variable1) do (
var a:= sample(evaluate(List_of_variables[@variable1=x, varinfo='Analytica identifier']));
index j:= concat(indexnames(max(a,run)),['Result']);
index i:= 1..size(max(a,run));
a:= mdarraytotable(a, i, j);
a:= Doresult(a, List_of_variables[@variable1=x, varinfo='Probabilistic?'], e, f);
e:= max(a[.j='Cell_id'],a.i);
f:= max(a[.j='id'],a.i);
output:= if x=1 then a else for y:= output.j do ( concat(output[.j=y], a[.j=y]) );
x:= x+1) ;
output);
index i:= 1..size(output)/size(output.j);
output:= for y:= output.j do (slice(output[.j=y],i))}288,384,148,162,691,21,581,6152,28,187,469,411,0,MIDM[Sys_localindex('J'),Sys_localindex('I')]2,D,4,2,0,0,4,0,$,0,"ABBREV",0[Run,2,Sys_localindex('J'),1,Sys_localindex('I'),1]LocationsThe format of this node MUST be integer, so that the id and Roww values are stored correctly.var output:= 0;
var in:= data_table;
index j:= in.j[@.j=1..size(in.j)-1];
in:= in[.j=j];
Dolocation(in)312,176,148,162,100,58,476,5812,482,15,746,348,0,MIDM[Sys_localindex('J'),Sys_localindex('I')]2,D,4,2,0,0,4,0,$,0,"ABBREV",0[0][Sys_localindex('D'),1,Object_all3,1,Age,1]Data tablevar N_indices:= Object_info1[varinfo='Number of indices'];
var b:= selecttext(Object_info1[varinfo='Data source'],1,1);
var a:= if b='1' then data_table2 else if b='2' then evaluate(Object_info1[varinfo='Analytica identifier']) else analytica_node;
if b='3' then a else (
index h:= a.j[@.j=1..N_indices];
var c:= Object_info1[varinfo='Parameter name'];
c:= if c='' or c=0 then 'Parameter' else c;
index j:= concat(h,[c,'Result','Obs']);
index parameter:= a.j[@.j=N_indices+(1..size(a.j)-N_indices)];
index temp:= 1..size(a.i)*size(parameter);
var conv:= if j='Result' then @parameter+N_indices else @j;
a:= a[@.j=conv];
a:= if @j=size(j)-2 then parameter else a;
a:= if @j=size(j) then @a.i else a;
a:= concatrows(a, parameter, a.i, temp);
a:= if j='Result' then evaluate(a[j='Result']) else a;
index i:= Subset(a[j='Result']<>null);
a[temp=i])176,176,148,132,97,51,482,4442,16,41,542,523,0,MIDM[Sys_localindex('J'),Sys_localindex('I')]2,D,4,2,0,0,4,0,$,0,"ABBREV",0[1,1,1,0][Sys_localindex('I'),1,Sys_localindex('J'),1]Varinfo['Data source','Analytica identifier','Ident','Number of indices','Parameter name','Probabilistic?','Append to run']176,352,148,122,90,166,416,303,0,MIDM['Data source','Analytica identifier','Ident','Number of indices','Parameter name','Probabilistic?','Append to run']ObjectsIndex j:= ['id','Ident','Name','Unit','Objtype_id','Acttype_id','Page','Wiki_id', 'Who','Comments'];
index i:= concat(Object1,['Run']);
var Ident:= if i = 'Var1' then Object_info1[varinfo='Ident'] else if @i=size(i) then '' else i;
var a:= Data_info[Object1=i, Object_info=j];
var b:= sum(findintext(wikis,ident)*@wikis,wikis);
var c:= if b=0 then 2664 else selecttext(ident,1+textlength(wikis[@wikis=b]));
var d:= if Object_info1[varinfo='Probabilistic?']=1 then ' (probabilistic), ' else ' (deterministic), ';
a:= array(j,[
@i,
ident,
if i ='Run' then 'Observations: ' & max(data_table[.j='Obs'],data_table.i) &d& 'Cells: '&size(cells.i) &', Indices: ' &size(loccells.i)/size(Cells.i) & ', Analytica '&Analyticaedition&', ('&Analyticaplatform&'), Version: '&textify(Analyticaversion) else a,
a,
if @i=1 then 1 else if @i=size(i) then 9 else 6,
if @i=1 then 11 else 1,
if i='Run' then '2817' else c&'',
if b=0 then '1' else b&'',
opasnet_username, a]);
a:= if a = null then '' else a248,72,148,162,610,28,479,5242,20,464,889,315,0,MIDM[Sys_localindex('I'),Sys_localindex('J')]Objectconcat(['Var1'],data_table.j[@data_table.j=1..size(data_table.j)-2])64,120,148,132,59,17,630,3382,857,175,416,303,0,MIDM[Year,Who_country_code]['Var1','Year','Tissue','Parameter']Observations'Year Tissue Species Fat content pg/g_fw 2378-TCDF pg/g_fw 2378-TCDD pg/g_fw 12378-PF pg/g_fw 23478-PF
2004 muscle meat with skin farmed Rainbow trout 19.6 1.00306 0.05134 0.11918 0.29145
2004 muscle meat with skin farmed Rainbow trout 14.2 0.84511 0.04254 0.09527 0.32938
2004 muscle meat with skin farmed Rainbow trout 21.3 1.17770 0.06711 0.13901 0.59145
2002 muscle meat with skin IL Burbot 0.35 0.62499 0.06050 0.17489 0.28163
2002 muscle meat with skin IL Burbot 0.44 0.30264 0.02528 0.06654 0.10435
2002 muscle meat with skin IL Burbot 0.35 0.09945 0.01126 0.01467 0.03898
2002 muscle meat with skin BS Burbot 0.45 0.29590 0.02929 0.03440 0.19786
2002 muscle meat with skin BS Burbot 0.38 0.15669 0.01231 0.03716 0.20770'64,224,152,162,637,65,476,362[Formnode Observations3]52425,39321,65535Data tablevar a:= splittext(textreplace(Observations2, chr(10),'',true),chr(13));
index i:= 1..size(a);
a:= slice(a,i);
a:= splittext(a, chr(9));
index j:= 1..size(a)/size(i);
for y:= i do (slice(a[i=y],j))var a:= splittext(textreplace(Observations2, chr(10),'',true),chr(13));
index j:= splittext(slice(a,1), chr(9));
index i:= 1..size(a)-1;
a:= slice(a,i+1);
a:= splittext(a, chr(9));
for y:= i do (slice(a[i=y],@j))64,176,148,162,98,65,476,3622,8,352,966,357,0,MIDM[Sys_localindex('J'),Sys_localindex('I')][1,1,1,0]['Municipality_fin Age Males 2013 Females 2013 Males 2020 Females 2020 Males 2030 Females 2030','Espoo - Esbo 0-4 9218 8791 9509 9067 9414 8976','Espoo - Esbo 5-9 8461 8019 8881 8418 9064 8590','Espoo - Esbo 10-14 7651 7276 8392 7983 8733 8316','Espoo - Esbo 15 - 19 7878 7665 7942 7634 8689 8302','Espoo - Esbo 20 - 24 9703 8254 9166 7700 9825 8164','Espoo - Esbo 25 - 29 9221 8671 10075 9363 9319 8580','Espoo - Esbo 30 - 34 10158 9887 10229 9855 9967 9545','Espoo - Esbo 35 - 39 9996 9824 10385 10112 10850 10446','Espoo - Esbo 40 - 44 8736 8672 9910 9754 10095 9833','Espoo - Esbo 45 - 49 9360 9789 8846 8897 9846 9866','Espoo - Esbo 50 - 54 8366 8843 8759 9227 9231 9424','Espoo - Esbo 55 - 59 7045 7880 8205 8891 7947 8322','Espoo - Esbo 60 - 64 6384 7645 6740 7617 7590 8370','Espoo - Esbo >=65 14543 19580 18716 25250 24301 32210','Helsinki - Helsingfors 0-4 14140 13613 14296 13762 13869 13349','Helsinki - Helsingfors 5-9 12102 11791 12391 12025 12387 12017','Helsinki - Helsingfors 10-14 11734 11389 11942 11544 12172 11764','Helsinki - Helsingfors 15 - 19 13797 14187 12321 12858 12862 13419','Helsinki - Helsingfors 20 - 24 21478 25254 19377 22926 19565 23290','Helsinki - Helsingfors 25 - 29 25056 27208 26650 28556 23965 25708','Helsinki - Helsingfors 30 - 34 24082 23867 23944 23568 22855 22377','Helsinki - Helsingfors 35 - 39 21005 19952 21072 20381 21649 20718','Helsinki - Helsingfors 40 - 44 17917 17261 19664 18761 19607 18751','Helsinki - Helsingfors 45 - 49 19971 20571 17476 17035 18919 18668','Helsinki - Helsingfors 50 - 54 18613 20147 18035 19002 18068 18226','Helsinki - Helsingfors 55 - 59 16671 19310 18191 20058 16135 16722','Helsinki - Helsingfors 60 - 64 15464 19421 15627 18273 16109 17856','Helsinki - Helsingfors >=65 37669 60241 45258 69319 55248 80147','Kauniainen - Grankulla 0-4 222 195 226 198 222 195','Kauniainen - Grankulla 5-9 276 238 280 251 283 253','Kauniainen - Grankulla 10-14 311 279 318 265 324 275','Kauniainen - Grankulla 15 - 19 376 315 327 281 339 288','Kauniainen - Grankulla 20 - 24 305 247 267 222 277 227','Kauniainen - Grankulla 25 - 29 183 144 207 154 184 140','Kauniainen - Grankulla 30 - 34 153 171 155 171 150 165','Kauniainen - Grankulla 35 - 39 214 254 219 255 228 262','Kauniainen - Grankulla 40 - 44 268 267 289 288 290 288','Kauniainen - Grankulla 45 - 49 337 371 281 293 305 312','Kauniainen - Grankulla 50 - 54 307 326 290 316 284 290','Kauniainen - Grankulla 55 - 59 259 239 280 285 248 238','Kauniainen - Grankulla 60 - 64 230 245 248 240 246 254','Kauniainen - Grankulla >=65 740 1083 826 1219 971 1410','Vantaa - Vanda 0-4 6782 6498 6962 6669 6825 6537','Vantaa - Vanda 5-9 6228 5945 6502 6217 6577 6287','Vantaa - Vanda 10-14 5745 5561 6201 6022 6416 6253','Vantaa - Vanda 15 - 19 5970 6078 5905 5880 6397 6356','Vantaa - Vanda 20 - 24 6480 6548 5971 5993 6343 6284','Vantaa - Vanda 25 - 29 6797 6815 7354 7326 6735 6657','Vantaa - Vanda 30 - 34 7706 7428 7753 7434 7499 7153','Vantaa - Vanda 35 - 39 7766 7459 7910 7643 8249 7909','Vantaa - Vanda 40 - 44 7038 6770 7835 7445 7925 7520','Vantaa - Vanda 45 - 49 7909 7710 7156 6898 7880 7556','Vantaa - Vanda 50 - 54 7126 7130 7340 7266 7518 7323','Vantaa - Vanda 55 - 59 6129 6602 7029 7211 6558 6544','Vantaa - Vanda 60 - 64 5659 6536 5774 6124 6384 6514','Vantaa - Vanda >=65 12282 16668 15717 21344 19879 26286']TestvariableTable(Time,Testindex)(
uniform(0,1),
uniform(1,2),
uniform(2,3)
)536,40,148,242,40,50,416,303,0,SAMP[Time,Testindex][Time,Testindex][1,0,0,0]['item 1']Testindex['item 1']536,72,148,12['item 1']W CellsecSlices the fields that are needed in the Res table. Removes duplicate rows.(if w_cell.j = 'Mean' then '' else W_cell)536,240,148,162,782,213,476,3792,85,231,505,368,0,MIDM65535,45873,39321[Sys_localindex('J'),Sys_localindex('I')]2,D,4,2,0,0,4,0,$,0,"ABBREV",0[]CellsMakes a list of all locations in all results in all variables. The list is as long as is needed for the Loccell table. A subset is taken then for the Cell table.
1) Initialises local variables, and slices variables from Object1.
2)-4) Does the process for each variable one at a time. This happens in function Loccell.
5) Makes i the row index.var a:= Data_table[@.j=size(data_table.j)-1];
index j:= ['id', 'Obj_id_v', 'Obj_id_r', 'Mean', 'SD', 'N'];
var d:= max(data_table[.j='Obs'],data_table.i);
index temp:= ['Mean','SD'];
a:= if Object_info1[varinfo='Probabilistic?']<>1 then array(temp,[a,'']) else (
index grun:= 1..d;
index i:= 1..size(a.i)/d;
a:= a[@.i=(i-1)*d+grun];
a:= array(temp,[mean(a,grun), sdeviation(a[j='Mean'],grun)]) );
a:= array(j,[
@a.i,
Object_info1[varinfo='Ident'],
'',
a[temp='Mean'],
a[temp='SD'],
d])312,240,148,162,54,15,526,6392,608,45,641,493,0,MIDM[Sys_localindex('J'),Sys_localindex('I'),Undefined,Undefined,Undefined,1]2,D,4,2,0,0,4,0,$,0,"ABBREV",0[][Undefined][Sys_localindex('TEMP'),1,Sys_localindex('I'),1,Sys_localindex('J'),1]Analytica nodevar a:= Object_info1[varinfo='Analytica identifier'];
index j:= concat(indexnames(evaluate(a)),['Result','Obs']);
var b:= (Object_info1[Varinfo='Probabilistic?']=1);
a:= if b then sample(evaluate(a)) else evaluate(a);
index temp:= concat(indexnames(a),['Result']);
index i:= 1..size(a);
a:= Mdarraytotable(a, i, temp);
a:= if j='Obs' and b then a[temp='Run'] else a[temp=j];
a:= if a=null then 0 else a120,264,148,242,53,195,476,3172,56,66,416,303,0,MIDM[Sys_localindex('I'),Sys_localindex('J')][1,1,1,0]Readerktluser3. Augta 2008 18:31jtue9. lokta 2008 14:01 48,24184,96,148,241,1,1,1,1,1,0,0,0,01,785,211,477,445,17Arial, 15(vident:text, runident:optional)Read meanReads the mean data about the vident variable from the Opasnet Base. Uses the runident run if specified; otherwise uses the newest run of that variable.
PARAMETERS:
* Vident: the Ident of the variable in the Opasnet Base.
* Runident: the Ident of the run from which the results will be brought. If omitted, the newest result will be brought.if isnotspecified(runident) then runident:= identfind(newestrun(vident));
var a:= '
SELECT Var.Ident as Vident, Var.Name as Vname, Var.Unit as Vunit, Cell.id, Ind.Ident as Iident, Location, Mean, N, Run.Name as Rname, Run.Ident AS Runident
FROM Obj as Var, Cell, Loccell, Loc, Obj as Ind, Obj as Run
WHERE Cell.Obj_id_r = Run.id
AND Cell.Obj_id_v = Var.id
AND Loccell.Cell_id = Cell.id
AND Loccell.Loc_id = Loc.id
AND Loc.Obj_id_i = Ind.id
AND Var.Ident = '&chr(39)&vident&chr(39)&'
AND Run.ident = '&chr(39)&runident&chr(39)
;
index i:= DBquery(Odbc,a);
index j:= dblabels(i);
dbtable(i,j)56,88,148,122,585,25,516,58939325,65535,39321vident,runident(vident:text)NewestrunThis function checks for the newest result (according to run_id) of the variable. The function is used if the user does not define the run_id as an optional parameter in functions Read_mean and Read_sample.
PARAMETERS:
* Vident: the Ident of the variable in the Opasnet Base.index i:= DBquery(Odbc,'
SELECT Obj_id_r
FROM Cell, Obj as Var
WHERE Var.id = Cell.Obj_id_v
AND Var.Ident = "'&vident&'"
GROUP BY Var.id, Obj_id_r
');
index j:= dblabels(i);
max(max(dbtable(i,j),i),j)56,16,148,122,678,59,476,56639325,65535,39321vident(vident:text, runident:optional)Read sampleReads the sample data about the vident variable from the Opasnet Base. Uses the runident run if specified; otherwise uses the newest run of that variable.
PARAMETERS:
* Vident: the name of the variable in the Opasnet Base.
* Runident: the Ident of the run from which the results will be brought. If omitted, the newest result will be brought.if isnotspecified(runident) then runident:= identfind(newestrun(vident));
var a:= '
SELECT Temp.id, Obs, Result, Restext
FROM
(SELECT Cell.id, Res.id AS Res_id, Obs, Result, Obj_id_r
FROM Cell, Res, Obj AS Run, Obj AS Var
WHERE Var.Ident = '&chr(39)&vident&chr(39)&'
AND Cell.Obj_id_v = Var.id
AND Cell.Obj_id_r = Run.id
AND Run.Ident = '&chr(39)&Runident&chr(39)&'
AND Res.Cell_id = Cell.id) AS Temp
LEFT JOIN Resinfo ON
Temp.Res_id = Resinfo.id
';
index i:= DBquery(Odbc,a);
index j:= dblabels(i);
dbtable(i,j)56,120,148,222,700,47,516,61239325,65535,39321vident,runidentEnter variable Ident'Op_en1912'168,83,148,27[Formnode Enter_variable1]52425,39321,65535Enter variable0288,24,1176,131,0,0,1,0,0,0,170,0,152425,39321,65535Enter_variableNewest runnewestrun(Enter_variable)288,60,148,12Var inforead_mean(Enter_variable)288,108,148,122,56,66,1205,308,0,MIDM[Sys_localindex('J'),Sys_localindex('I')](a,inde)MakeindThe input table a must have a structure that is also used as input for MDTable function. The function removes one column with location information and makes a dimension (index) with the locations in the column. Inde is the (local) index that will be added. Note that unlike MDTable function, this can use local indices in the output.if size(a.m)= 1 then a else (
a:= if inde = a[@.m=1] then a else 0;
index m:= slice(a.m,(2..size(a.m)));
a:= a[.m=m])56,176,148,122,283,62,476,224a,inde(a)Get res.idMakes a multi-dimensional array with the same structure as the original variable that was stored into the Opasnet Base. However, the indices do not have original names. They are named In1, In2,... The contents of the array are the res.ids of the variable. The input parameter must be a 2D table with the structure that comes from the Read_mean function.
1) Slices the necessary columns from the input table and converts that to a 2D table that has the same structure as is used for input to the function MDTable.
2) Defines the local indices (up to 10), and changes a location column to a dimension one at a time until all columns have been changed.index k:= ['Iident','Location','id'];
a:= a[.j=k];
index L:= a[@k=1]&'+'&textify(a[@k=3]);
index m:= concat(a[.i=unique(a[@k=1],a.i), @k=1],['Result']);
index n:= a[.i=unique(a[@k=3],a.i), @k=3];
a:= a[@.i=@L];
a:= a[L=(m)&'+'&textify(n), @k=2];
a:= if m='Result' then n else a;
index in1:= a[n=unique(a[@m=1],n),@m=1];
index in2:= a[n=unique(a[@m=2],n),@m=2];
index in3:= a[n=unique(a[@m=3],n),@m=3];
index In4:= a[n=unique(a[@m=4],n),@m=4];
index In5:= a[n=unique(a[@m=5],n),@m=5];
index in6:= a[n=unique(a[@m=6],n),@m=6];
index in7:= a[n=unique(a[@m=7],n),@m=7];
index in8:= a[n=unique(a[@m=8],n),@m=8];
index in9:= a[n=unique(a[@m=9],n),@m=9];
index in10:= a[n=unique(a[@m=10],n),@m=10];
a:= makeind(a, in1);
a:= makeind(a, in2);
a:= makeind(a, in3);
a:= makeind(a, in4);
a:= makeind(a, in5);
a:= makeind(a, in6);
a:= makeind(a, in7);
a:= makeind(a, in8);
a:= makeind(a, in9);
a:= makeind(a, in10);
sum(sum(a,a.m),a.n)56,152,148,122,669,44,476,545aVar meanget_mean(Enter_variable)288,132,148,122,547,35,416,622,0,MIDM[Sys_localindex('IN2'),Sys_localindex('IN3')][Sys_localindex('IN1'),1,Sys_localindex('IN4'),1,Sys_localindex('IN5'),1,Sys_localindex('IN3'),1,Sys_localindex('IN2'),1](vident:text, runident:optional)Get meanGives the mean result of a (multidimensional) variable stored in the Opasnet Base. The procedure is simple because it utilises the variable structure (with res_ids) derived by the get_res_id function.var a:= read_mean(vident, runident);
index o:= a[.j='id'];
var output:= a[@.i=@o, .j='Mean'];
a:= get_res_id(a);
output[o=a]56,200,148,122,665,82,476,428vident,runident(vident:text, runident:optional)Get sampleGives the sample result of a (multidimensional) variable stored in the Opasnet Base. The procedure is simple because it utilises the variable structure (with res_ids) derived by the get_res_id function.
Note that if the Analytica samplesize is smaller than the samplesize stored in the Opasnet Base, the extra samples will be discarded. If the samplesize is larger, the remaining rows will be null.
1) Brings the data into the right structure.
2) Chooses whether the actual result is numerical (in the Result column) or text (in the Description column).var a:= read_sample(vident, runident);
var b:= textify(get_res_id(read_mean(vident,runident)));
index k:= textify(a[.j='id'])&'+'&textify(a[.j='Obs']);
index runn:= textify(min(a[.j='Obs'])..max(a[.j='Obs']));
a:= a[@.i=@k];
a:= a[k=b&'+'&runn];
a:= if max(runn)=0 then a[@runn=1] else a[@runn=@run];
var c:= if a[.j='Restext']='' then 0 else 1;
c:= sum(sum(sum(sum(sum(sum(sum(sum(sum(sum(c))))))))));
if c=0 then a[.j='Result'] else a[.j='Restext']56,224,148,122,641,28,476,556vident,runidentVar sampleget_sample(Enter_variable)288,156,148,122,226,324,416,303,0,MEAN[Sys_localindex('IN5'),Sys_localindex('IN3')][Sys_localindex('IN1'),1,Sys_localindex('IN2'),1,Sys_localindex('IN4'),1,Sys_localindex('IN3'),1,Sys_localindex('J'),1,Sys_localindex('IN5'),1](runid)IdentfindFinds the Ident for the run (or another object) that has the id runid.index i:= DBquery(Odbc,'
SELECT Ident
FROM Obj
WHERE Obj.id = "'&runid&'"
');
index j:= dblabels(i);
var a:= dbtable(i,j);
a[@i=1, @j=1]56,64,148,122,732,65,516,58939325,65535,39321runidVar run infoDescribes the runs of the defined variable. This should be made a function.var_run_info(Enter_variable)288,84,148,122,136,146,1111,285,0,MIDM[Sys_localindex('J'),Sys_localindex('I')](vident:text)Var run infoThis function checks for the newest result (according to run_id) of the variable. The function is used if the user does not define the run_id as an optional parameter in functions Read_mean and Read_sample.
PARAMETERS:
* Vident: the Ident of the variable in the Opasnet Base.var a:= '
SELECT Var.Ident, Var.Name, Var.Unit, Run.Ident AS Runident, Act.When, Act.Who, Run.Name as Method
FROM Obj as Var, Obj as Run, Cell, Objinfo AS Act
WHERE Var.Ident = '&chr(39)&vident&chr(39)&'
AND Var.id = Cell.Obj_id_v
AND Run.id = Cell.Obj_id_r
AND Run.id = Act.id
GROUP BY Var.id, Run.id
';
index i:= DBquery(Odbc,a);
index j:= dblabels(i);
dbtable(i,j)56,40,148,132,678,59,476,56639325,65535,39321videntUse these functions to retireve data from the Opasnet base:
* Newest_run: finds the newest run of the object.
* Var_run_info: Finds the run information of the object.
* Read_mean: Reads the means of each cell.
* Get_mean
* Get_sample: Reads the whole sample.
Note! These should be updated when we get experience about what we actually want out.280,285,-1168,101(a)TextifyChanges an integer of any length to a text value. This bypasses the number formatting problem that tends to convert e.g. 93341 to '93.34K'. If the number is not integer, up to three digits after the decimal point will be taken as well.a&''
{for y[]:= a do (
if istext(y) then y else (
var x:= 1;
var b:= '';
var c:= if y<1 then 1 else floor(logten(y))+1;
while x<= c do (
b:= (y-floor(y/10)*10)&b;
y:= floor(y/10);
x:= x+1);
b) )}56,248,148,122,102,90,476,371a2,F,4,14,0,0,4,0,$,0,"ABBREV",0Detailsktluser8. Decta 2008 3:01 48,2464,96,148,241,30,113,495,453,17Object typesTypes of different objects that may exist in Analytica or Opasnet Base. Types that have the same number are treated equally in these systems.Table(Self)(
'Variable','Dimension','Method','Model','Class','Index','Nugget','Encyclopedia article','Run','Chance','Decision','Objective','Constant','Determ','Module','Library','Form')[1,2,3,4,5,6,7,8,9,1,10,1,1,1,4,4,4]56,408,148,202,56,132,476,2242,674,34,416,606,0,MIDM2,636,151,416,390,0,MIDM65535,52427,65534(a; file:texttype)Tablefya:= '"'&a&'"';
a:= jointext(a,a.j,';');
Writetextfile('c:\temp\'&file, a)168,368,148,132,44,303,476,224a,file2,F,4,14,0,0,4,0,$,0,"ABBREV",0(a; x:optional = 1; e, f:optional=0)Doloccell1) Size(h) is size(a.j)-2 because j contains 'Result' and 'SD'.
2) Only the deterministic information about variables are considered (therefore mean). Makes a 2D table of the locres info.
3) Makes a table with fields required by the Loccell and Cell tables.
4) Reduces one dimension by expanding the length from the length of Cell to that of Loccell.index j:= ['id', 'Location', 'Cell_id', 'Loc_id', 'Obj_id_v', 'Obj_id_r', 'Mean', 'SD', 'N'];
index h:= a.j[@.j=1..size(a.j)-2];
index i:= 1..size(a.i)*size(h);
var c:= Objects[@.i=x];
a:= array(j,[
i[@i=@a.i+size(a.i)*(@h-1)]+e,
a[.j=h]&'',
a.i+f,
h,
c[.j='Ident'],
'',
a[.j='Result'],
a[.j='SD'],
if c[.j='Probabilistic?']=1 then samplesize else 0]);
concatrows(a,h,a.i,i)400,280,148,132,627,78,556,561a,x,e,f(a: prob; probabilistic; e, f: optional=0)Doresultindex runn:= if Probabilistic=1 then copyindex(run) else [0];
index i:= (1..size(max(a.i,run))*size(runn))+f;
a:= if Probabilistic=1 then a[run=runn] else (if runn=0 then a else a);
a:= a[.j='Result'];
index j:= ['id','Cell_id','Obs','Result','Restext'];
a:= array(j,[0, a.i+e, runn, (if istext(a) then 0 else a) , (if istext(a) then a else 0)]);
a:= concatrows(a,a.i,runn, i);
a:= if j='id' then i else a400,256,148,132,687,174,476,526a,probabilistic,e,f(a)Dolocationvar b:= [0];
var c:= [0];
var e:= [0];
var f:= [0];
var x:= 1;
while x<= size(a.j)-1 do (
var h:= a[@.j=x];
var d:= h[.i=unique(h,h.i)];
b:= concat(b,d);
c:= concat(c,(if d=0 then slice(a.j,x) else slice(a.j,x)));
e:= concat(e,1..size(d));
x:= x+1);
index i:= 1..size(b)-1;
index j:= ['id','Obj_id_i', 'Location', 'Roww', 'Description'];
array(j,[i, slice(c,i+1), slice(b,i+1)&'', slice(e,i+1), '']);400,232,148,122,671,164,503,486aConcatenation UDFsThis library contains functions to make various instances of concatenation more convenient. Concat3 thru Concat10 are generalizations of the built-in Concat function which concatenate from 3 to 10 arrays in a single call (while the built-in Concat concatenates two arrays). ConcatRows concatenates all the rows of a single array.David Kendall & Lonnie ChrismanMon, Jan 26, 2004 8:49 AMLonnieWed, Sep 05, 2007 3:23 PM48,24184,328,168,201,0,0,1,1,1,0,0,0,01,50,200,488,454,23(A1, A2, A3: ArrayType; I1, I2, I3, J: IndexType )Concat3Concatenates three arrays, A1, A2, and A3. I1, I2, and I3 are the indexes that are joined; J is the index of the new array; J usually is the concatenation of I1, I2, and I3Index I12 := Concat(I1,I2);
Concat( Concat( A1,A2,I1,I2,I12 ), A3, I12, I3, J )88,64,148,262,56,56,986,596A1,A2,A3,I1,I2,I3,J(A1, A2, A3, A4: ArrayType; I1, I2, I3, I4, J: IndexType )Concat4Concatenates four arrays, A1, A2, A3, and A4. I1, I2, I3, and I4 are the indexes that are joined; J is the index of the new array; J usually is the concatenation of I1, I2, I3, and I4.Index I12 := Concat(I1,I2);
Index I123:= Concat(I12, I3);
Concat(
Concat(
Concat( A1,A2,I1,I2,I12 ),
A3, I12, I3, I123),
A4, I123, I4, J);
192,64,148,242,30,30,986,596A1,A2,A3,A4,I1,I2,I3,I4,J0(A1, A2, A3, A4, A5, A6, A7, A8, A9: ArrayType; I1, I2, I3, I4, I5, I6, I7, I8, I9, J: IndexType)Concat9Concatenates nine arrays, A1, ..., A9. I1, ..., I9 are the indexes joined; J is the index of the new array; J usually is the concatenation of I1, ..., I9.Index I12 := Concat(I1,I2);
Index I123 := Concat(I12, I3);
Index I1234 := Concat(I123, I4);
Index I12345 := Concat(I1234, I5);
Index I123456 := Concat(I12345, I6);
Index I1234567 := Concat(I123456, I7);
Index I12345678 := Concat(I1234567, I8);
Concat(
Concat(
Concat(
Concat(
Concat(
Concat(
Concat(
Concat( A1,A2,I1,I2,I12 ),
A3, I12, I3, I123),
A4, I123, I4, I1234),
A5, I1234, I5, I12345),
A6, I12345, I6, I123456),
A7, I123456, I7, I1234567),
A8, I1234567, I8, I12345678),
A9, I12345678, I9, J);88,232,148,242,27,120,469,638A1,A2,A3,A4,A5,A6,A7,A8,A9,I1,I2,I3,I4,I5,I6,I7,I8,I9,J0(A1, A2, A3, A4, A5: ArrayType; I1, I2, I3, I4, I5, J: IndexType )Concat5Concatenates five arrays, A1, ..., A5. I1, ..., I5 are the indexes joined; J is the index of the new array; J usually is the concatenation of I1, ..., I5.Index I12 := Concat(I1,I2);
Index I123:= Concat(I12, I3);
Index I1234 := Concat(I123, I4);
Concat(
Concat(
Concat(
Concat( A1,A2,I1,I2,I12 ),
A3, I12, I3, I123),
A4, I123, I4, I1234),
A5, I1234, I5, J);88,120,148,242,160,160,986,596A1,A2,A3,A4,A5,I1,I2,I3,I4,I5,J(A1, A2, A3, A4, A5, A6: ArrayType; I1, I2, I3, I4, I5, I6, J: IndexType )Concat6Concatenates six arrays, A1, ..., A6. I1, ..., I6 are the indexes joined; J is the index of the new array; J usually is the concatenation of I1, ..., I6.Index I12 := Concat(I1,I2);
Index I123:= Concat(I12, I3);
Index I1234 := Concat(I123, I4);
Index I12345 := Concat(I1234, I5);
Concat(
Concat(
Concat(
Concat(
Concat( A1,A2,I1,I2,I12 ),
A3, I12, I3, I123),
A4, I123, I4, I1234),
A5, I1234, I5, I12345),
A6, I12345, I6, J);192,120,148,242,644,94,602,712A1,A2,A3,A4,A5,A6,I1,I2,I3,I4,I5,I6,J0(A1, A2, A3, A4, A5, A6, A7: ArrayType; I1, I2, I3, I4, I5, I6, I7, J: IndexType )Concat7Concatenates seven arrays, A1, ..., A7. I1, ..., I7 are the indexes joined; J is the index of the new array; J usually is the concatenation of I1, ..., I7.Index I12 := Concat(I1,I2);
Index I123:= Concat(I12, I3);
Index I1234 := Concat(I123, I4);
Index I12345 := Concat(I1234, I5);
Index I123456 := Concat(I12345, I6);
Concat(
Concat(
Concat(
Concat(
Concat(
Concat( A1,A2,I1,I2,I12 ),
A3, I12, I3, I123),
A4, I123, I4, I1234),
A5, I1234, I5, I12345),
A6, I12345, I6, I123456),
A7, I123456, I7, J);88,176,148,242,580,98,551,565A1,A2,A3,A4,A5,A6,A7,I1,I2,I3,I4,I5,I6,I7,J(A1, A2, A3, A4, A5, A6, A7, A8: ArrayType; I1, I2, I3, I4, I5, I6, I7, I8, J: IndexType )Concat8Concatenates eight arrays, A1, ..., A8. I1, ..., I8 are the indexes joined; J is the index of the new array; J usually is the concatenation of I1, ..., I8.Index I12 := Concat(I1,I2);
Index I123:= Concat(I12, I3);
Index I1234 := Concat(I123, I4);
Index I12345 := Concat(I1234, I5);
Index I123456 := Concat(I12345, I6);
Index I1234567 := Concat(I123456, I7);
Concat(
Concat(
Concat(
Concat(
Concat(
Concat(
Concat( A1,A2,I1,I2,I12 ),
A3, I12, I3, I123),
A4, I123, I4, I1234),
A5, I1234, I5, I12345),
A6, I12345, I6, I123456),
A7, I123456, I7, I1234567),
A8, I1234567, I8, J);192,176,148,242,12,98,561,737A1,A2,A3,A4,A5,A6,A7,A8,I1,I2,I3,I4,I5,I6,I7,I8,J0(A1, A2, A3, A4, A5, A6, A7, A8, A9, A10: ArrayType; I1, I2, I3, I4, I5, I6, I7, I8, I9, I10, J: IndexType)Concat10Concatenates ten arrays, A1, ..., A10. I1, ..., I10 are the indexes joined; J is the index of the new array; J usually is the concatenation of I1, ..., I10.Index I12 := Concat(I1,I2);
Index I123 := Concat(I12, I3);
Index I1234 := Concat(I123, I4);
Index I12345 := Concat(I1234, I5);
Index I123456 := Concat(I12345, I6);
Index I1234567 := Concat(I123456, I7);
Index I12345678 := Concat(I1234567, I8);
Index I123456789 := Concat(I12345678, I9);
Concat(
Concat(
Concat(
Concat(
Concat(
Concat(
Concat(
Concat(
Concat( A1,A2,I1,I2,I12 ),
A3, I12, I3, I123),
A4, I123, I4, I1234),
A5, I1234, I5, I12345),
A6, I12345, I6, I123456),
A7, I123456, I7, I1234567),
A8, I1234567, I8, I12345678),
A9, I12345678, I9, I123456789),
A10, I123456789, I10, J);192,232,148,242,542,93,632,744A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,I1,I2,I3,I4,I5,I6,I7,I8,I9,I10,J0(A : ArrayType ; RowIndex,ColIndex,ResultIndex : IndexType)ConcatRows (A,I,J,K)Takes an array, A indexed by RowIndex & ColIndex, and concatenates each row, henceforth flattening the array by one dimension. The result is indexed by ResultIndex, which must be an index with size(RowIndex) * size(ColIndex) elements.index L := [ identifier of RowIndex, identifier of ColIndex, "val"];
slice(Mdarraytotable(A,ResultIndex,L),L,3)320,64,164,242,499,85,478,348A,RowIndex,ColIndex,ResultIndexODBC LibraryLonnieThu, Sep 11, 1997 2:15 PMLonnieTue, Feb 05, 2008 10:03 AM48,2456,328,152,201,1,1,1,1,1,0,0,0,01,20,272,499,462,17Arial, 13(A:ArrayType;I:IndexType;L:IndexType;row:IndexType;dbTableName)InsertRecSqlGenerates the SQL "INSERT INTO" statement for one line of table A. A is a 2-D table indexed by rows I and columns L. L's domain serves as the column names in the database table. dbTableName is the name of the table in the database. The result begins with two semi-colons, since it will be used with an SQL statement preceeding it.
29.8.2008 Jouni Tuomisto
I added the parameter IGNORE because it ignores rows that would cause duplicate-key violations. This way, there is no need to check for e.g. existing locations of new indices.
6.1.2009 Jouni Tuomisto
I changed the A[I=row] to A[@I=@row] because the original function does not work correctly, if there are non-unique rows in the index.(';;INSERT IGNORE INTO ' & dbTableName & '(' & JoinText(L,L,',') & ') VALUES (' & Vallist(A[@I=@row],L)) & ') '184,32,152,242,591,203,487,469A,I,L,row,dbTableName(V:ArrayType;I:IndexType)ValListTakes a list of values, and returns a string which the concatenation of each value, separated by commas, and with each value quoted.JoinText( '''' & V & '''', I, ',')72,32,052,242,642,360,476,224V,I1,F,4,14,0,0(Tabl:ArrayType;RowIndex:IndexType;LabelIndex:IndexType;dbTableName)WriteTableSql(Table,Rows,Labels,dbTableName)Returns the SQL that will write the table to the database table.
This can be used as the second argument to DBWrite.
This SQL statement replaces the entire contents of an existing table with the new data.'DELETE FROM '& Dbtablename & JoinText(Insertrecsql(Tabl, Rowindex, Labelindex, Rowindex, Dbtablename),RowIndex)328,32,188,242,728,341,510,476Tabl,RowIndex,LabelIndex,dbTableName(Tabl:ArrayType;RowIndex:IndexType;LabelIndex:IndexType;dbTableName)AppendTableSql(Table,Rows,Labels,dbTableName)Returns the SQL that will write the table to the database table.
This can be used as the second argument to DBWrite.
This SQL statement replaces the entire contents of an existing table with the new data.JoinText(Insertrecsql(Tabl, Rowindex, Labelindex, Rowindex, Dbtablename),RowIndex)328,88,188,242,559,127,510,476Tabl,RowIndex,LabelIndex,dbTableName(table:texttype)CardBrings the largest id number from the table defined in the parameter.index i:= DBquery(odbc,'
SELECT MAX(id) AS id
FROM '&table&'
');
index j:= dblabels(i);
max(max(DBTable(i, j ),i),j)56,272,148,122,102,90,476,33139325,65535,39321tableTablesList of such tables in Opasnet Base that are being written to by this module.['Obj','Cell','Loc','Loccell','Sett','Item','Res']280,256,148,132,15,594,158,227,0,MIDM['Obj','Cell','Loc','Loccell','Sett','Item','Res']CardinalsThe largest id values for the selected Opasnet Base tables. The table is updated by pressing the R_cardinals button.Table(Table1)(
826,755.574K,14.142K,2.096274M,47,146,2.042832M
)280,232,148,122,634,394,476,3322,193,270,416,303,0,MIDM2,87,329,416,303,0,MIDM39325,65535,393212,I,4,2,0,0,4,0,$,0,"ABBREV",0(in, table; cond:texttype)FindidThis function gets an id from a table.
in: the property for which the id is needed. In MUST be unique in cond and it must contain index i.
table: the table from where the id is brought. The table MUST have .j as the column index, .i as the row index, and a column named 'id'.
cond: the name of the field that is compared with in. Cond must be text.index L:= in[.i=unique(in, in.i)];
var a:= if (L&' ') = (table[.j=cond]&' ') then table[.j='id'] else 0;
a:= textify(sum(a, table.i));
a[.L=in]56,248,148,122,636,101,494,519in,table,cond(type)TypesFinds the objects that are of the object type "type" (the only parameter of this function). Based on the information in Objects1.var a:= if Objects1[.j='Typ_id']=type then 1 else 0;
Objects1[Object_all=subset(a),.j='id']56,224,148,122,551,191,476,344type(var, table)WriteFor Lumina AWP use the following should be used:
'Driver={MySQL ODBC 3.51 Driver};Server=193.167.179.97;Database=opasnet_base;User=resultwriter; Password=;Option=3'
For internal THL use the following should be used:
'Driver={MySQL ODBC 5.1 Driver};Server=10.66.10.102;Database=opasnet_base;User=resultwriter; Password='&writerpsswd&';Option=3'if size(var)>0 then dbwrite((if platform = 'Lumina AWP' then 'Driver={MySQL ODBC 3.51 Driver};Server=193.167.179.97' else 'Driver={MySQL ODBC 5.1 Driver};Server=10.66.10.102')&';Database=opasnet_base;User=resultwriter; Password='&writerpsswd&';Option=3'
, appendtablesql(var,var.i, var.j, table&' '))56,296,148,122,776,65,476,457var,tableODBC writeFor Lumina AWP use the following should be used:
'Driver={MySQL ODBC 3.51 Driver};Server=193.167.179.97;Database=opasnet_base;User=resultwriter; Password=;Option=3'
For internal THL use the following should be used:
'Driver={MySQL ODBC 5.1 Driver};Server=10.66.10.102;Database=opasnet_base;User=resultwriter; Password='&writerpsswd&';Option=3'var a:= if platform='Lumina AWP' then 'Driver={MySQL ODBC 3.51 Driver};Server=193.167.179.97' else 'Driver={MySQL ODBC 5.1 Driver};Server=10.66.10.102';
a&';Database=opasnet_base;User=resultwriter; Password='&writerpsswd&';Option=3'168,232,148,121,1,0,1,1,1,0,,0,2,102,90,495,3462,168,178,833,303,0,MIDM[]Opasnet usernameThe username for Opasnet wiki'Add username'168,161,148,221,1,1,1,1,1,0,0,0,0[Formnode Username1]52425,39321,65535Opasnet passwordThe user's password for Opasnet wiki.'Add password'168,200,148,221,1,1,1,1,1,0,0,0,0[Formnode Password1]52425,39321,65535ODBCContains the parameters for the open database connectivity (ODBC).
For Lumina AWP use the following should be used:
'Driver={MySQL ODBC 3.51 Driver};Server=193.167.179.97;Database=opasnet_base;User=result_reader; Password=ora4ever;Option=3'
For THL internal use the following should be used:
'Driver={MySQL ODBC 5.1 Driver};Server=10.66.10.102;Database=opasnet_base;User=result_reader; Password=ora4ever;Option=3'var a:= if platform='Lumina AWP' then 'Driver={MySQL ODBC 3.51 Driver};Server=193.167.179.97' else 'Driver={MySQL ODBC 5.1 Driver};Server=10.66.10.102';
a&';Database=opasnet_base;User=result_reader; Password=ora4ever;Option=3'168,128,148,121,1,0,1,1,1,0,,0,2,149,300,508,4202,56,66,918,303,0,MIDMDimindex i:= copyindex(D_i);
index j:= copyindex(D_j);
Dim1[d_i=i, d_j=j]400,160,148,131,1,0,1,1,1,0,0,0,02,89,98,476,2242,635,328,556,489,0,MIDM19661,54073,65535[D_i,D_j][Sys_localindex('J'),Sys_localindex('I')]Indindex i:= copyindex(I_i);
index j:= copyindex(I_j);
Ind1[I_i=i, I_j=j]400,184,148,131,1,0,1,1,1,0,0,0,02,380,47,476,2962,490,110,649,655,0,MIDM19661,54073,65535[Sys_localindex('J'),Sys_localindex('I')]Locindex i:= copyindex(L_i);
index j:= copyindex(L_j);
Loc1[L_i=i, L_j=j]400,96,148,131,1,0,1,1,1,0,0,0,02,370,45,476,4452,43,42,1147,516,0,MIDM19661,54073,65535[Sys_localindex('J'),Sys_localindex('I')]2,I,4,2,0,0,4,0,$,0,"ABBREV",0ObjThis node checks the variables listed in Var_for_rdb and makes an index of those that are NOT found in the result database. This is then used as an index in Inp_var for adding variable information.index i:= copyindex(O_i);
index j:= copyindex(O_j);
Obj2[O_i=i, O_j=j]400,48,148,131,1,0,1,1,1,0,0,0,02,378,21,493,5012,21,103,977,421,0,MIDM19661,54073,65535[Sys_localindex('J'),Sys_localindex('I')]['H1991'][Self,1,Sys_localindex('I'),1,Sys_localindex('J'),1]Standard versions400,112,-172,1001,0,0,1,0,1,0,,0,D_i[0]168,24,148,12[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22]D_j['id','Ident','Name']168,48,148,12['id','Ident','Name']I_i[0]168,72,148,12[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34]I_j['id','Iident','Iname','Did','Dident','Dname']168,96,148,12['id','Iident','Iname','Did','Dident','Dname']L_i[0]56,120,148,12[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,298,299,300,301,302,303,304,305,306,307,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,327,328,329,330,331,332,333,334,335,336,337,338,339,340,341,342,343,344,345,346,347,348,349,350,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450,451,452,453,454,455,456,457,458,459,460,461,462,463,464,465,466,467,468,469,470,471,472,473,474,475,476,477,478,479,480,481,482,483,484,485,486,487,488,489,490,491,492,493,494,495,496,497,498,499,500,501,502,503,504,505,506,507,508,509,510,511,512,513,514,515,516,517,518,519,520,521,522,523,524,525,526,527,528,529,530,531,532,533,534,535,536,537,538,539,540,541,542,543,544,545,546,547,548,549,550,551,552,553,554,555,556,557,558,559,560,561,562,563,564,565,566,567,568,569,570,571,572,573,574,575,576,577,578,579,580,581,582,583,584,585,586,587,588,589,590,591,592,593,594,595,596,597,598,599,600,601,602,603,604,605,606,607,608,609,610,611,612,613,614,615,616,617,618,619,620,621,622,623,624,625,626,627,628,629,630,631,632,633,634,635,636,637,638,639,640,641,642,643,644,645,646,647,648,649,650,651,652,653,654,655,656,657,658,659,660,661,662,663,664,665,666,667,668,669,670,671,672,673,674,675,676,677,678,679,680,681,682,683,684,685,686,687,688,689,690,691,692,693,694,695,696,697,698,699,700,701,702,703,704,705,706,707,708,709,710,711,712,713,714,715,716,717,718,719,720,721,722,723,724,725,726,727,728,729,730,731,732,733,734,735,736,737,738,739,740,741,742,743,744,745,746,747,748,749,750,751,752,753,754,755,756,757,758,759,760,761,762,763,764,765,766,767,768,769,770,771,772,773,774,775,776,777,778,779,780,781,782,783,784,785,786,787,788,789,790,791,792,793,794,795,796,797,798,799,800,801,802,803,804,805,806,807,808,809,810,811,812,813,814,815,816,817,818,819,820,821,822,823,824,825,826,827,828,829,830,831,832,833,834,835,836,837,838,839,840,841,842,843,844,845,846,847,848,849,850,851,852,853,854,855,856,857,858,859,860,861,862,863,864,865,866,867,868,869,870,871,872,873,874,875,876,877,878,879,880,881,882,883,884,885,886,887,888,889,890,891,892,893,894,895,896,897,898,899,900,901,902,903,904,905,906,907,908,909,910,911,912,913,914,915,916,917,918,919,920,921,922,923,924,925,926,927,928,929,930,931,932,933,934,935,936,937,938,939,940,941,942,943,944,945,946,947,948,949,950,951,952,953,954,955,956,957,958,959,960,961,962,963,964,965,966,967,968,969,970,971,972,973,974,975,976,977,978,979,980,981,982,983,984,985,986,987,988,989,990,991,992,993,994,995,996,997,998,999,1000,1001,1002,1003,1004,1005,1006,1007,1008,1009,1010,1011,1012,1013,1014,1015,1016,1017,1018,1019,1020,1021,1022,1023,1024,1025,1026,1027,1028,1029,1030,1031,1032,1033,1034,1035,1036,1037,1038,1039,1040,1041,1042,1043,1044,1045,1046,1047,1048,1049,1050,1051,1052,1053,1054,1055,1056,1057,1058,1059,1060,1061,1062,1063,1064,1065,1066,1067,1068,1069,1070,1071,1072,1073,1074,1075,1076,1077,1078,1079,1080,1081,1082,1083,1084,1085,1086,1087,1088,1089,1090,1091,1092,1093,1094,1095,1096,1097,1098,1099,1100,1101,1102,1103,1104,1105,1106,1107,1108,1109,1110,1111,1112,1113,1114,1115,1116,1117,1118,1119,1120,1121,1122,1123,1124,1125,1126,1127,1128,1129,1130,1131,1132,1133,1134,1135,1136,1137,1138,1139,1140,1141,1142,1143,1144,1145,1146,1147,1148,1149,1150,1151,1152,1153,1154,1155,1156,1157,1158,1159,1160,1161,1162,1163,1164,1165,1166,1167,1168,1169,1170,1171,1172,1173,1174,1175,1176,1177,1178,1179,1180,1181,1182,1183,1184,1185,1186,1187,1188,1189,1190,1191,1192,1193,1194,1195,1196,1197,1198,1199,1200,1201,1202,1203,1204,1205,1206,1207,1208,1209,1210,1211,1212,1213,1214,1215,1216,1217,1218,1219,1220,1221,1222,1223,1224,1225,1226,1227,1228,1229,1230,1231,1232,1233,1234,1235,1236,1237,1238,1239,1240,1241,1242,1243,1244,1245,1246,1247,1248,1249,1250,1251,1252,1253,1254,1255,1256,1257,1258,1259,1260,1261,1262,1263,1264,1265,1266,1267,1268,1269,1270,1271,1272,1273,1274,1275,1276,1277,1278,1279,1280,1281,1282,1283,1284,1285,1286,1287,1288,1289,1290,1291,1292,1293,1294,1295,1296,1297,1298,1299,1300,1301,1302,1303,1304,1305,1306,1307,1308,1309,1310,1311,1312,1313,1314,1315,1316,1317,1318,1319,1320,1321,1322,1323,1324,1325,1326,1327,1328,1329,1330,1331,1332,1333,1334,1335,1336,1337,1338,1339,1340,1341,1342,1343,1344,1345,1346,1347,1348,1349,1350,1351,1352,1353,1354,1355,1356,1357,1358,1359,1360,1361,1362,1363,1364,1365,1366,1367,1368,1369,1370,1371,1372,1373,1374,1375,1376,1377,1378,1379,1380,1381,1382,1383,1384,1385,1386,1387,1388,1389,1390,1391,1392,1393,1394,1395,1396,1397,1398,1399,1400,1401,1402,1403,1404,1405,1406,1407,1408,1409,1410,1411,1412,1413,1414,1415,1416,1417,1418,1419,1420,1421,1422,1423,1424,1425,1426,1427,1428,1429,1430,1431,1432,1433,1434,1435,1436,1437,1438,1439,1440,1441,1442,1443,1444,1445,1446,1447,1448,1449,1450,1451,1452,1453,1454,1455,1456,1457,1458,1459,1460,1461,1462,1463,1464,1465,1466,1467,1468,1469,1470,1471,1472,1473,1474,1475,1476,1477,1478,1479,1480,1481,1482,1483,1484,1485,1486,1487,1488,1489,1490,1491,1492,1493,1494,1495,1496,1497,1498,1499,1500,1501,1502,1503,1504,1505,1506,1507,1508,1509,1510,1511,1512,1513,1514,1515,1516,1517,1518,1519,1520,1521,1522,1523,1524,1525,1526,1527,1528,1529,1530,1531,1532,1533,1534,1535,1536,1537,1538,1539,1540,1541,1542,1543,1544,1545,1546,1547,1548,1549,1550,1551,1552,1553,1554,1555,1556,1557,1558,1559,1560,1561,1562,1563,1564,1565,1566,1567,1568,1569,1570,1571,1572,1573,1574,1575,1576,1577,1578,1579,1580,1581,1582,1583,1584,1585,1586,1587,1588,1589,1590,1591,1592,1593,1594,1595,1596,1597,1598,1599,1600,1601,1602,1603,1604,1605,1606,1607,1608,1609,1610,1611,1612,1613,1614,1615,1616,1617,1618,1619,1620,1621,1622,1623,1624,1625,1626,1627,1628,1629,1630,1631,1632,1633,1634,1635,1636,1637,1638,1639,1640,1641,1642,1643,1644,1645,1646,1647,1648,1649,1650,1651,1652,1653,1654,1655,1656,1657,1658,1659,1660,1661,1662,1663,1664,1665,1666,1667,1668,1669,1670,1671,1672,1673,1674,1675,1676,1677,1678,1679,1680,1681,1682,1683,1684,1685,1686,1687,1688,1689,1690,1691,1692,1693,1694,1695,1696,1697,1698,1699,1700,1701,1702,1703,1704,1705,1706,1707,1708,1709,1710,1711,1712,1713,1714,1715,1716,1717,1718,1719,1720,1721,1722,1723,1724,1725,1726,1727,1728,1729,1730,1731,1732,1733,1734,1735,1736,1737,1738,1739,1740,1741,1742,1743,1744,1745,1746,1747,1748,1749,1750,1751,1752,1753,1754,1755,1756,1757,1758,1759,1760,1761,1762,1763,1764,1765,1766,1767,1768,1769,1770,1771,1772,1773,1774,1775,1776,1777,1778,1779,1780,1781,1782,1783,1784,1785,1786,1787,1788,1789,1790,1791,1792,1793,1794,1795,1796,1797,1798,1799,1800,1801,1802,1803,1804,1805,1806,1807,1808,1809,1810,1811,1812,1813,1814,1815,1816,1817,1818,1819,1820,1821,1822,1823,1824,1825,1826,1827,1828,1829,1830,1831,1832,1833,1834,1835,1836,1837,1838,1839,1840,1841,1842,1843,1844,1845,1846,1847,1848,1849,1850,1851,1852,1853,1854,1855,1856,1857,1858,1859,1860,1861,1862,1863,1864,1865,1866,1867,1868,1869,1870,1871,1872,1873,1874,1875,1876,1877,1878,1879,1880,1881,1882,1883,1884,1885,1886,1887,1888,1889,1890,1891,1892,1893,1894,1895,1896,1897,1898,1899,1900,1901,1902,1903,1904,1905,1906,1907,1908,1909,1910,1911,1912,1913,1914,1915,1916,1917,1918,1919,1920,1921,1922,1923,1924,1925,1926,1927,1928,1929,1930,1931,1932,1933,1934,1935,1936,1937,1938,1939,1940,1941,1942,1943,1944,1945,1946,1947,1948,1949,1950,1951,1952,1953,1954,1955,1956,1957,1958,1959,1960,1961,1962,1963,1964,1965,1966,1967,1968,1969,1970,1971,1972,1973,1974,1975,1976,1977,1978,1979,1980,1981,1982,1983,1984,1985,1986,1987,1988,1989,1990,1991,1992,1993,1994,1995,1996,1997,1998,1999,2000,2001,2002,2003,2004,2005,2006,2007,2008,2009,2010,2011,2012,2013,2014,2015,2016,2017,2018,2019,2020,2021,2022,2023,2024,2025,2026,2027,2028,2029,2030,2031,2032,2033,2034,2035,2036,2037,2038,2039,2040,2041,2042,2043,2044,2045,2046,2047,2048,2049,2050,2051,2052,2053,2054,2055,2056,2057,2058,2059,2060,2061,2062,2063,2064,2065,2066,2067,2068,2069,2070,2071,2072,2073,2074,2075,2076,2077,2078,2079,2080,2081,2082,2083,2084,2085,2086,2087,2088,2089,2090,2091,2092,2093,2094,2095,2096,2097,2098,2099,2100,2101,2102,2103,2104,2105,2106,2107,2108,2109,2110,2111,2112,2113,2114,2115,2116,2117,2118,2119,2120,2121,2122,2123,2124,2125,2126,2127,2128,2129,2130,2131,2132,2133,2134,2135,2136,2137,2138,2139,2140,2141,2142,2143,2144,2145,2146,2147,2148,2149,2150,2151,2152,2153,2154,2155,2156,2157,2158,2159,2160,2161,2162,2163,2164,2165,2166,2167,2168,2169,2170,2171,2172,2173,2174,2175,2176,2177,2178,2179,2180,2181,2182,2183,2184,2185,2186,2187,2188,2189,2190,2191,2192,2193,2194,2195,2196,2197,2198,2199,2200,2201,2202,2203,2204,2205,2206,2207,2208,2209,2210,2211,2212,2213,2214,2215,2216,2217,2218,2219,2220,2221,2222,2223,2224,2225,2226,2227,2228,2229,2230,2231,2232,2233,2234,2235,2236,2237,2238,2239,2240,2241,2242,2243,2244,2245,2246,2247,2248,2249,2250,2251,2252,2253,2254,2255,2256,2257,2258,2259,2260,2261,2262,2263,2264,2265,2266,2267,2268,2269,2270,2271,2272,2273,2274,2275,2276,2277,2278,2279,2280,2281,2282,2283,2284,2285,2286,2287,2288,2289,2290,2291,2292,2293,2294,2295,2296,2297,2298,2299,2300,2301,2302,2303,2304,2305,2306,2307,2308,2309,2310,2311,2312,2313,2314,2315,2316,2317,2318,2319,2320,2321,2322,2323,2324,2325,2326,2327,2328,2329,2330,2331,2332,2333,2334,2335,2336,2337,2338,2339,2340,2341,2342,2343,2344,2345,2346,2347,2348,2349,2350,2351,2352,2353,2354,2355,2356,2357,2358,2359,2360,2361,2362,2363,2364,2365,2366,2367,2368,2369,2370,2371,2372,2373,2374,2375,2376,2377,2378,2379,2380,2381,2382,2383,2384,2385,2386,2387,2388,2389,2390,2391,2392,2393,2394,2395,2396,2397,2398,2399,2400,2401,2402,2403,2404,2405,2406,2407,2408,2409,2410,2411,2412,2413,2414,2415,2416,2417,2418,2419,2420,2421,2422,2423,2424,2425,2426,2427,2428,2429,2430,2431,2432,2433,2434,2435,2436,2437,2438,2439,2440,2441,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2453,2454,2455,2456,2457,2458,2459,2460,2461,2462,2463,2464,2465,2466,2467,2468,2469,2470,2471,2472,2473,2474,2475,2476,2477,2478,2479,2480,2481,2482,2483,2484,2485,2486,2487,2488,2489,2490,2491,2492,2493,2494,2495,2496,2497,2498,2499,2500,2501,2502,2503,2504,2505,2506,2507,2508,2509,2510,2511,2512,2513,2514,2515,2516,2517,2518,2519,2520,2521,2522,2523,2524,2525,2526,2527,2528,2529,2530,2531,2532,2533,2534,2535,2536,2537,2538,2539,2540,2541,2542,2543,2544,2545,2546,2547,2548,2549,2550,2551,2552,2553,2554,2555,2556,2557,2558,2559,2560,2561,2562,2563,2564,2565,2566,2567,2568,2569,2570,2571,2572,2573,2574,2575,2576,2577,2578,2579,2580,2581,2582,2583,2584,2585,2586,2587,2588,2589,2590,2591,2592,2593,2594,2595,2596,2597,2598,2599,2600,2601,2602,2603,2604,2605,2606,2607,2608,2609,2610,2611,2612,2613,2614,2615,2616,2617,2618,2619,2620,2621,2622,2623,2624,2625,2626,2627,2628,2629,2630,2631,2632,2633,2634,2635,2636,2637,2638,2639,2640,2641,2642,2643,2644,2645,2646,2647,2648,2649,2650,2651,2652,2653,2654,2655,2656,2657,2658,2659,2660,2661,2662,2663,2664,2665,2666,2667,2668,2669,2670,2671,2672,2673,2674,2675,2676,2677,2678,2679,2680,2681,2682,2683,2684,2685,2686,2687,2688,2689,2690,2691,2692,2693,2694,2695,2696,2697,2698,2699,2700,2701,2702,2703,2704,2705,2706,2707,2708,2709,2710,2711,2712,2713,2714,2715,2716,2717,2718,2719,2720,2721,2722,2723,2724,2725,2726,2727,2728,2729,2730,2731,2732,2733,2734,2735,2736,2737,2738,2739,2740,2741,2742,2743,2744,2745,2746,2747,2748,2749,2750,2751,2752,2753,2754,2755,2756,2757,2758,2759,2760,2761,2762,2763,2764,2765,2766,2767,2768,2769,2770,2771,2772,2773,2774,2775,2776,2777,2778,2779,2780,2781,2782,2783,2784,2785,2786,2787,2788,2789,2790,2791,2792,2793,2794,2795,2796,2797,2798,2799,2800,2801,2802,2803,2804,2805,2806,2807,2808,2809,2810,2811,2812,2813,2814,2815,2816,2817,2818,2819,2820,2821,2822,2823,2824,2825,2826,2827,2828,2829,2830,2831,2832,2833,2834,2835,2836,2837,2838,2839,2840,2841,2842,2843,2844,2845,2846,2847,2848,2849,2850,2851,2852,2853,2854,2855,2856,2857,2858,2859,2860,2861,2862,2863,2864,2865,2866,2867,2868,2869,2870,2871,2872,2873,2874,2875,2876,2877,2878,2879,2880,2881,2882,2883,2884,2885,2886,2887,2888,2889,2890,2891,2892,2893,2894,2895,2896,2897,2898,2899,2900,2901,2902,2903,2904,2905,2906,2907,2908,2909,2910,2911,2912,2913,2914,2915,2916,2917,2918,2919,2920,2921,2922,2923,2924,2925,2926,2927,2928,2929,2930,2931,2932,2933,2934,2935,2936,2937,2938,2939,2940,2941,2942,2943,2944,2945,2946,2947,2948,2949,2950,2951,2952,2953,2954,2955,2956,2957,2958,2959,2960,2961,2962,2963,2964,2965,2966,2967,2968,2969,2970,2971,2972,2973,2974,2975,2976,2977,2978,2979,2980,2981,2982,2983,2984,2985,2986,2987,2988,2989,2990,2991,2992,2993,2994,2995,2996,2997,2998,2999,3000,3001,3002,3003,3004,3005,3006,3007,3008,3009,3010,3011,3012,3013,3014,3015,3016,3017,3018,3019,3020,3021,3022,3023,3024,3025,3026,3027,3028,3029,3030,3031,3032,3033,3034,3035,3036,3037,3038,3039,3040,3041,3042,3043,3044,3045,3046,3047,3048,3049,3050,3051,3052,3053,3054,3055,3056,3057,3058,3059,3060,3061,3062,3063,3064,3065,3066,3067,3068,3069,3070,3071,3072,3073,3074,3075,3076,3077,3078,3079,3080,3081,3082,3083,3084,3085,3086,3087,3088,3089,3090,3091,3092,3093,3094,3095,3096,3097,3098,3099,3100,3101,3102,3103,3104,3105,3106,3107,3108,3109,3110,3111,3112,3113,3114,3115,3116,3117,3118,3119,3120,3121,3122,3123,3124,3125,3126,3127,3128,3129,3130,3131,3132,3133,3134,3135,3136,3137,3138,3139,3140,3141,3142,3143,3144,3145,3146,3147,3148,3149,3150,3151,3152,3153,3154,3155,3156,3157,3158,3159,3160,3161,3162,3163,3164,3165,3166,3167,3168,3169,3170,3171,3172,3173,3174,3175,3176,3177,3178,3179,3180,3181,3182,3183,3184,3185,3186,3187,3188,3189,3190,3191,3192,3193,3194,3195,3196,3197,3198,3199,3200,3201,3202,3203,3204,3205,3206,3207,3208,3209,3210,3211,3212,3213,3214,3215,3216,3217,3218,3219,3220,3221,3222,3223,3224,3225,3226,3227,3228,3229,3230,3231,3232,3233,3234,3235,3236,3237,3238,3239,3240,3241,3242,3243,3244,3245,3246,3247,3248,3249,3250,3251,3252,3253,3254,3255,3256,3257,3258,3259,3260,3261,3262,3263,3264,3265,3266,3267,3268,3269,3270,3271,3272,3273,3274,3275,3276,3277,3278,3279,3280,3281,3282,3283,3284,3285,3286,3287,3288,3289,3290,3291,3292,3293,3294,3295,3296,3297,3298,3299,3300,3301,3302,3303,3304,3305,3306,3307,3308,3309,3310,3311,3312,3313,3314,3315,3316,3317,3318,3319,3320,3321,3322,3323,3324,3325,3326,3327,3328,3329,3330,3331,3332,3333,3334,3335,3336,3337,3338,3339,3340,3341,3342,3343,3344,3345,3346,3347,3348,3349,3350,3351,3352,3353,3354,3355,3356,3357,3358,3359,3360,3361,3362,3363,3364,3365,3366,3367,3368,3369,3370,3371,3372,3373,3374,3375,3376,3377,3378,3379,3380,3381,3382,3383,3384,3385,3386,3387,3388,3389,3390,3391,3392,3393,3394,3395,3396,3397,3398,3399,3400,3401,3402,3403,3404,3405,3406,3407,3408,3409,3410,3411,3412,3413,3414,3415,3416,3417,3418,3419,3420,3421,3422,3423,3424,3425,3426,3427,3428,3429,3430,3431,3432,3433,3434,3435,3436,3437,3438,3439,3440,3441,3442,3443,3444,3445,3446,3447,3448,3449,3450,3451,3452,3453,3454,3455,3456,3457,3458,3459,3460,3461,3462,3463,3464,3465,3466,3467,3468,3469,3470,3471,3472,3473,3474,3475,3476,3477,3478,3479,3480,3481,3482,3483,3484,3485,3486,3487,3488,3489,3490,3491,3492,3493,3494,3495,3496,3497,3498,3499,3500,3501,3502,3503,3504,3505,3506,3507,3508,3509,3510,3511,3512,3513,3514,3515,3516,3517,3518,3519,3520,3521,3522,3523,3524,3525,3526,3527,3528,3529,3530,3531,3532,3533,3534,3535,3536,3537,3538,3539,3540,3541,3542,3543,3544,3545,3546,3547,3548,3549,3550,3551,3552,3553,3554,3555,3556,3557,3558,3559,3560,3561,3562,3563,3564,3565,3566,3567,3568,3569,3570,3571,3572,3573,3574,3575,3576,3577,3578,3579,3580,3581,3582,3583,3584,3585,3586,3587,3588,3589,3590,3591,3592,3593,3594,3595,3596,3597,3598,3599,3600,3601,3602,3603,3604,3605,3606,3607,3608,3609,3610,3611,3612,3613,3614,3615,3616,3617,3618,3619,3620,3621,3622,3623,3624,3625,3626,3627,3628,3629,3630,3631,3632,3633,3634,3635,3636,3637,3638,3639,3640,3641,3642,3643,3644,3645,3646,3647,3648,3649,3650,3651,3652,3653,3654,3655,3656,3657,3658,3659,3660,3661,3662,3663,3664,3665,3666,3667,3668,3669,3670,3671,3672,3673,3674,3675,3676,3677,3678,3679,3680,3681,3682,3683,3684,3685,3686,3687,3688,3689,3690,3691,3692,3693,3694,3695,3696,3697,3698,3699,3700,3701,3702,3703,3704,3705,3706,3707,3708,3709,3710,3711,3712,3713,3714,3715,3716,3717,3718,3719,3720,3721,3722,3723,3724,3725,3726,3727,3728,3729,3730,3731,3732,3733,3734,3735,3736,3737,3738,3739,3740,3741,3742,3743,3744,3745,3746,3747,3748,3749,3750,3751,3752,3753,3754,3755,3756,3757,3758,3759,3760,3761,3762,3763,3764,3765,3766,3767,3768,3769,3770,3771,3772,3773,3774,3775,3776,3777,3778,3779,3780,3781,3782,3783,3784,3785,3786,3787,3788,3789,3790,3791,3792,3793,3794,3795,3796,3797,3798,3799,3800,3801,3802,3803,3804,3805,3806,3807,3808,3809,3810,3811,3812,3813,3814,3815,3816,3817,3818,3819,3820,3821,3822,3823,3824,3825,3826,3827,3828,3829,3830,3831,3832,3833,3834,3835,3836,3837,3838,3839,3840,3841,3842,3843,3844,3845,3846,3847,3848,3849,3850,3851,3852,3853,3854,3855,3856,3857,3858,3859,3860,3861,3862,3863,3864,3865,3866,3867,3868,3869,3870,3871,3872,3873,3874,3875,3876,3877,3878,3879,3880,3881,3882,3883,3884,3885,3886,3887,3888,3889,3890,3891,3892,3893,3894,3895,3896,3897,3898,3899,3900,3901,3902,3903,3904,3905,3906,3907,3908,3909,3910,3911,3912,3913,3914,3915,3916,3917,3918,3919,3920,3921,3922,3923,3924,3925,3926,3927,3928,3929,3930,3931,3932,3933,3934,3935,3936,3937,3938,3939,3940,3941,3942,3943,3944,3945,3946,3947,3948,3949,3950,3951,3952,3953,3954,3955,3956,3957,3958,3959,3960,3961,3962,3963,3964,3965,3966,3967,3968,3969,3970,3971,3972,3973,3974,3975,3976,3977,3978,3979,3980,3981,3982,3983,3984,3985,3986,3987,3988,3989,3990,3991,3992,3993,3994,3995,3996,3997,3998,3999,4000,4001,4002,4003,4004,4005,4006,4007,4008,4009,4010,4011,4012,4013,4014,4015,4016,4017,4018,4019,4020,4021,4022,4023,4024,4025,4026,4027,4028,4029,4030,4031,4032,4033,4034,4035,4036,4037,4038,4039,4040,4041,4042,4043,4044,4045,4046,4047,4048,4049,4050,4051,4052,4053,4054,4055,4056,4057,4058,4059,4060,4061,4062,4063,4064,4065,4066,4067,4068,4069,4070,4071,4072,4073,4074,4075,4076,4077,4078,4079,4080,4081,4082,4083,4084,4085,4086,4087,4088,4089,4090,4091,4092,4093,4094,4095,4096,4097,4098,4099,4100,4101,4102,4103,4104,4105,4106,4107,4108,4109,4110,4111,4112,4113,4114,4115,4116,4117,4118,4119,4120,4121,4122,4123,4124,4125,4126,4127,4128,4129,4130,4131,4132,4133,4134,4135,4136,4137,4138,4139,4140,4141,4142,4143,4144,4145,4146,4147,4148,4149,4150,4151,4152,4153,4154,4155,4156,4157,4158,4159,4160,4161,4162,4163,4164,4165,4166,4167,4168,4169,4170,4171,4172,4173,4174,4175,4176,4177,4178,4179,4180,4181,4182,4183,4184,4185,4186,4187,4188,4189,4190,4191,4192,4193,4194,4195,4196,4197,4198,4199,4200,4201,4202,4203,4204,4205,4206,4207,4208,4209,4210,4211,4212,4213,4214,4215,4216,4217,4218,4219,4220,4221,4222,4223,4224,4225,4226,4227,4228,4229,4230,4231,4232,4233,4234,4235,4236,4237,4238,4239,4240,4241,4242,4243,4244,4245,4246,4247,4248,4249,4250,4251,4252,4253,4254,4255,4256,4257,4258,4259,4260,4261,4262,4263,4264,4265,4266,4267,4268,4269,4270,4271,4272,4273,4274,4275,4276,4277,4278,4279,4280,4281,4282,4283,4284,4285,4286,4287,4288,4289,4290,4291,4292,4293,4294,4295,4296,4297,4298,4299,4300,4301,4302,4303,4304,4305,4306,4307,4308,4309,4310,4311,4312,4313,4314,4315,4316,4317,4318,4319,4320,4321,4322,4323,4324,4325,4326,4327,4328,4329,4330,4331,4332,4333,4334,4335,4336,4337,4338,4339,4340,4341,4342,4343,4344,4345,4346,4347,4348,4349,4350,4351,4352,4353,4354,4355,4356,4357,4358,4359,4360,4361,4362,4363,4364,4365,4366,4367,4368,4369,4370,4371,4372,4373,4374,4375,4376,4377,4378,4379,4380,4381,4382,4383,4384,4385,4386,4387,4388,4389,4390,4391,4392,4393,4394,4395,4396,4397,4398,4399,4400,4401,4402,4403,4404,4405,4406,4407,4408,4409,4410,4411,4412,4413,4414,4415,4416,4417,4418,4419,4420,4421,4422,4423,4424,4425,4426,4427,4428,4429,4430,4431,4432,4433,4434,4435,4436,4437,4438,4439,4440,4441,4442,4443,4444,4445,4446,4447,4448,4449,4450,4451,4452,4453,4454,4455,4456,4457,4458,4459,4460,4461,4462,4463,4464,4465,4466,4467,4468,4469,4470,4471,4472,4473,4474,4475,4476,4477,4478,4479,4480,4481,4482,4483,4484,4485,4486,4487,4488,4489,4490,4491,4492,4493,4494,4495,4496,4497,4498,4499,4500,4501,4502,4503,4504,4505,4506,4507,4508,4509,4510,4511,4512,4513,4514,4515,4516,4517,4518,4519,4520,4521,4522,4523,4524,4525,4526,4527,4528,4529,4530,4531,4532,4533,4534,4535,4536,4537,4538,4539,4540,4541,4542,4543,4544,4545,4546,4547,4548,4549,4550,4551,4552,4553,4554,4555,4556,4557,4558,4559,4560,4561,4562,4563,4564,4565,4566,4567,4568,4569,4570,4571,4572,4573,4574,4575,4576,4577,4578,4579,4580,4581,4582,4583,4584,4585,4586,4587,4588,4589,4590,4591,4592,4593,4594,4595,4596,4597,4598,4599,4600,4601,4602,4603,4604,4605,4606,4607,4608,4609,4610,4611,4612,4613,4614,4615,4616,4617,4618,4619,4620,4621,4622,4623,4624,4625,4626,4627,4628,4629,4630,4631,4632,4633,4634,4635,4636,4637,4638,4639,4640,4641,4642,4643,4644,4645,4646,4647,4648,4649,4650,4651,4652,4653,4654,4655,4656,4657,4658,4659,4660,4661,4662,4663,4664,4665,4666,4667,4668,4669,4670,4671,4672,4673,4674,4675,4676,4677,4678,4679,4680,4681,4682,4683,4684,4685,4686,4687,4688,4689,4690,4691,4692,4693,4694,4695,4696,4697,4698,4699,4700,4701,4702,4703,4704,4705,4706,4707,4708,4709,4710,4711,4712,4713,4714,4715,4716,4717,4718,4719,4720,4721,4722,4723,4724,4725,4726,4727,4728,4729,4730,4731,4732,4733,4734,4735,4736,4737,4738,4739,4740,4741,4742,4743,4744,4745,4746,4747,4748,4749,4750,4751,4752,4753,4754,4755,4756,4757,4758,4759,4760,4761,4762,4763,4764,4765,4766,4767,4768,4769,4770,4771,4772,4773,4774,4775,4776,4777,4778,4779,4780,4781,4782,4783,4784,4785,4786,4787,4788,4789,4790,4791,4792,4793,4794,4795,4796,4797,4798,4799,4800,4801,4802,4803,4804,4805,4806,4807,4808,4809,4810,4811,4812,4813,4814,4815,4816,4817,4818,4819,4820,4821,4822,4823,4824,4825,4826,4827,4828,4829,4830,4831,4832,4833,4834,4835,4836,4837,4838,4839,4840,4841,4842,4843,4844,4845,4846,4847,4848,4849,4850,4851,4852,4853,4854,4855,4856,4857,4858,4859,4860,4861,4862,4863,4864,4865,4866,4867,4868,4869,4870,4871,4872,4873,4874,4875,4876,4877,4878,4879,4880,4881,4882,4883,4884,4885,4886,4887,4888,4889,4890,4891,4892,4893,4894,4895,4896,4897,4898,4899,4900,4901,4902,4903,4904,4905,4906,4907,4908,4909,4910,4911,4912,4913,4914,4915,4916,4917,4918,4919,4920,4921,4922,4923,4924,4925,4926,4927,4928,4929,4930,4931,4932,4933,4934,4935,4936,4937,4938,4939,4940,4941,4942,4943,4944,4945,4946,4947,4948,4949,4950,4951,4952,4953,4954,4955,4956,4957,4958,4959,4960,4961,4962,4963,4964,4965,4966,4967,4968,4969,4970,4971,4972,4973,4974,4975,4976,4977,4978,4979,4980,4981,4982,4983,4984,4985,4986,4987,4988,4989,4990,4991,4992,4993,4994,4995,4996,4997,4998,4999,5000,5001,5002,5003,5004,5005,5006,5007,5008,5009,5010,5011,5012,5013,5014,5015,5016,5017,5018,5019,5020,5021,5022,5023,5024,5025,5026,5027,5028,5029,5030,5031,5032,5033,5034,5035,5036,5037,5038,5039,5040,5041,5042,5043,5044,5045,5046,5047,5048,5049,5050,5051,5052,5053,5054,5055,5056,5057,5058,5059,5060,5061,5062,5063,5064,5065,5066,5067,5068,5069,5070,5071,5072,5073,5074,5075,5076,5077,5078,5079,5080,5081,5082,5083,5084,5085,5086,5087,5088,5089,5090,5091,5092,5093,5094,5095,5096,5097,5098,5099,5100,5101,5102,5103,5104,5105,5106,5107,5108,5109,5110,5111,5112,5113,5114,5115,5116,5117,5118,5119,5120,5121,5122,5123,5124,5125,5126,5127,5128,5129,5130,5131,5132,5133,5134,5135,5136,5137,5138,5139,5140,5141,5142,5143,5144,5145,5146,5147,5148,5149,5150,5151,5152,5153,5154,5155,5156,5157,5158,5159,5160,5161,5162,5163,5164,5165,5166,5167,5168,5169,5170,5171,5172,5173,5174,5175,5176,5177,5178,5179,5180,5181,5182,5183,5184,5185,5186,5187,5188,5189,5190,5191,5192,5193,5194,5195,5196,5197,5198,5199,5200,5201,5202,5203,5204,5205,5206,5207,5208,5209,5210,5211,5212,5213,5214,5215,5216,5217,5218,5219,5220,5221,5222,5223,5224,5225,5226,5227,5228,5229,5230,5231,5232,5233,5234,5235,5236,5237,5238,5239,5240,5241,5242,5243,5244,5245,5246,5247,5248,5249,5250,5251,5252,5253,5254,5255,5256,5257,5258,5259,5260,5261,5262,5263,5264,5265,5266,5267,5268,5269,5270,5271,5272,5273,5274,5275,5276,5277,5278,5279,5280,5281,5282,5283,5284,5285,5286,5287,5288,5289,5290,5291,5292,5293,5294,5295,5296,5297,5298,5299,5300,5301,5302,5303,5304,5305,5306,5307,5308,5309,5310,5311,5312,5313,5314,5315,5316,5317,5318,5319,5320,5321,5322,5323,5324,5325,5326,5327,5328,5329,5330,5331,5332,5333,5334,5335,5336,5337,5338,5339,5340,5341,5342,5343,5344,5345,5346,5347,5348,5349,5350,5351,5352,5353,5354,5355,5356,5357,5358,5359,5360,5361,5362,5363,5364,5365,5366,5367,5368,5369,5370,5371,5372,5373,5374,5375,5376,5377,5378,5379,5380,5381,5382,5383,5384,5385,5386,5387,5388,5389,5390,5391,5392,5393,5394,5395,5396,5397,5398,5399,5400,5401,5402,5403,5404,5405,5406,5407,5408,5409,5410,5411,5412,5413,5414,5415,5416,5417,5418,5419,5420,5421,5422,5423,5424,5425,5426,5427,5428,5429,5430,5431,5432,5433,5434,5435,5436,5437,5438,5439,5440,5441,5442,5443,5444,5445,5446,5447,5448,5449,5450,5451,5452,5453,5454,5455,5456,5457,5458,5459,5460,5461,5462,5463,5464,5465,5466,5467,5468,5469,5470,5471,5472,5473,5474,5475,5476,5477,5478,5479,5480,5481,5482,5483,5484,5485,5486,5487,5488,5489,5490,5491,5492,5493,5494,5495,5496,5497,5498,5499,5500,5501,5502,5503,5504,5505,5506,5507,5508,5509,5510,5511,5512,5513,5514,5515,5516,5517,5518,5519,5520,5521,5522,5523,5524,5525,5526,5527,5528,5529,5530,5531,5532,5533,5534,5535,5536,5537,5538,5539,5540,5541,5542,5543,5544,5545,5546,5547,5548,5549,5550,5551,5552,5553,5554,5555,5556,5557,5558,5559,5560,5561,5562,5563,5564,5565,5566,5567,5568,5569,5570,5571,5572,5573,5574,5575,5576,5577,5578,5579,5580,5581,5582,5583,5584,5585,5586,5587,5588,5589,5590,5591,5592,5593,5594,5595,5596,5597,5598,5599,5600,5601,5602,5603,5604,5605,5606,5607,5608,5609,5610,5611,5612,5613,5614,5615,5616,5617,5618,5619,5620,5621,5622,5623,5624,5625,5626,5627,5628,5629,5630,5631,5632,5633,5634,5635,5636,5637,5638,5639,5640,5641,5642,5643,5644,5645,5646,5647,5648,5649,5650,5651,5652,5653,5654,5655,5656,5657,5658,5659,5660,5661,5662,5663,5664,5665,5666,5667,5668,5669,5670,5671,5672,5673,5674,5675,5676,5677,5678,5679,5680,5681,5682,5683,5684,5685,5686,5687,5688,5689,5690,5691,5692,5693,5694,5695,5696,5697,5698,5699,5700,5701,5702,5703,5704,5705,5706,5707,5708,5709,5710,5711,5712,5713,5714,5715,5716,5717,5718,5719,5720,5721,5722,5723,5724,5725,5726,5727,5728,5729,5730,5731,5732,5733,5734,5735,5736,5737,5738,5739,5740,5741,5742,5743,5744,5745,5746,5747,5748,5749,5750,5751,5752,5753,5754,5755,5756,5757,5758,5759,5760,5761,5762,5763,5764,5765,5766,5767,5768,5769,5770,5771,5772,5773,5774,5775,5776,5777,5778,5779,5780,5781,5782,5783,5784,5785,5786,5787,5788,5789,5790,5791,5792,5793,5794,5795,5796,5797,5798,5799,5800,5801,5802,5803,5804,5805,5806,5807,5808,5809,5810,5811,5812,5813,5814,5815,5816,5817,5818,5819,5820,5821,5822,5823,5824,5825,5826,5827,5828,5829,5830,5831,5832,5833,5834,5835,5836,5837,5838,5839,5840,5841,5842,5843,5844,5845,5846,5847,5848,5849,5850,5851,5852,5853,5854,5855,5856,5857,5858,5859,5860,5861,5862,5863,5864,5865,5866,5867,5868,5869,5870,5871,5872,5873,5874,5875,5876,5877,5878,5879,5880,5881,5882,5883,5884,5885,5886,5887,5888,5889,5890,5891,5892,5893,5894,5895,5896,5897,5898,5899,5900,5901,5902,5903,5904,5905,5906,5907,5908,5909,5910,5911,5912,5913,5914,5915,5916,5917,5918,5919,5920,5921,5922,5923,5924,5925,5926,5927,5928,5929,5930,5931,5932,5933,5934,5935,5936,5937,5938,5939,5940,5941,5942,5943,5944,5945,5946,5947,5948,5949,5950,5951,5952,5953,5954,5955,5956,5957,5958,5959,5960,5961,5962,5963,5964,5965,5966,5967,5968,5969,5970,5971,5972,5973,5974,5975,5976,5977,5978,5979,5980,5981,5982,5983,5984,5985,5986,5987,5988,5989,5990,5991,5992,5993,5994,5995,5996,5997,5998,5999,6000,6001,6002,6003,6004,6005,6006,6007,6008,6009,6010,6011,6012,6013,6014,6015,6016,6017,6018,6019,6020,6021,6022,6023,6024,6025,6026,6027,6028,6029,6030,6031,6032,6033,6034,6035,6036,6037,6038,6039,6040,6041,6042,6043,6044,6045,6046,6047,6048,6049,6050,6051,6052,6053,6054,6055,6056,6057,6058,6059,6060,6061,6062,6063,6064,6065,6066,6067,6068,6069,6070,6071,6072,6073,6074,6075,6076,6077,6078,6079,6080,6081,6082,6083,6084,6085,6086,6087,6088,6089,6090,6091,6092,6093,6094,6095,6096,6097,6098,6099,6100,6101,6102,6103,6104,6105,6106,6107,6108,6109,6110,6111,6112,6113,6114,6115,6116,6117,6118,6119,6120,6121,6122,6123,6124,6125,6126,6127,6128,6129,6130,6131,6132,6133,6134,6135,6136,6137,6138,6139,6140,6141,6142,6143,6144,6145,6146,6147,6148,6149,6150,6151,6152,6153,6154,6155,6156,6157,6158,6159,6160,6161,6162,6163,6164,6165,6166,6167,6168,6169,6170,6171,6172,6173,6174,6175,6176,6177,6178,6179,6180,6181,6182,6183,6184,6185,6186,6187,6188,6189,6190,6191,6192,6193,6194,6195,6196,6197,6198,6199,6200,6201,6202,6203,6204,6205,6206,6207,6208,6209,6210,6211,6212,6213,6214,6215,6216,6217,6218,6219,6220,6221,6222,6223,6224,6225,6226,6227,6228,6229,6230,6231,6232,6233,6234,6235,6236,6237,6238,6239,6240,6241,6242,6243,6244,6245,6246,6247,6248,6249,6250,6251,6252,6253,6254,6255,6256,6257,6258,6259,6260,6261,6262,6263,6264,6265,6266,6267,6268,6269,6270,6271,6272,6273,6274,6275,6276,6277,6278,6279,6280,6281,6282,6283,6284,6285,6286,6287,6288,6289,6290,6291,6292,6293,6294,6295,6296,6297,6298,6299,6300,6301,6302,6303,6304,6305,6306,6307,6308,6309,6310,6311,6312,6313,6314,6315,6316,6317,6318,6319,6320,6321,6322,6323,6324,6325,6326,6327,6328,6329,6330,6331,6332,6333,6334,6335,6336,6337,6338,6339,6340,6341,6342,6343,6344,6345,6346,6347,6348,6349,6350,6351,6352,6353,6354,6355,6356,6357,6358,6359,6360,6361,6362,6363,6364,6365,6366,6367,6368,6369,6370,6371,6372,6373,6374,6375,6376,6377,6378,6379,6380,6381,6382,6383,6384,6385,6386,6387,6388,6389,6390,6391,6392,6393,6394,6395,6396,6397,6398,6399,6400,6401,6402,6403,6404,6405,6406,6407,6408,6409,6410,6411,6412,6413,6414,6415,6416,6417,6418,6419,6420,6421,6422,6423,6424,6425,6426,6427,6428,6429,6430,6431,6432,6433,6434,6435,6436,6437,6438,6439,6440,6441,6442,6443,6444,6445,6446,6447,6448,6449,6450,6451,6452,6453,6454,6455,6456,6457,6458,6459,6460,6461,6462,6463,6464,6465,6466,6467,6468,6469,6470,6471,6472,6473,6474,6475,6476,6477,6478,6479,6480,6481,6482,6483,6484,6485,6486,6487,6488,6489,6490,6491,6492,6493,6494,6495,6496,6497,6498,6499,6500,6501,6502,6503,6504,6505,6506,6507,6508,6509,6510,6511,6512,6513,6514,6515,6516,6517,6518,6519,6520,6521,6522,6523,6524,6525,6526,6527,6528,6529,6530,6531,6532,6533,6534,6535,6536,6537,6538,6539,6540,6541,6542,6543,6544,6545,6546,6547,6548,6549,6550,6551,6552,6553,6554,6555,6556,6557,6558,6559,6560,6561,6562,6563,6564,6565,6566,6567,6568,6569,6570,6571,6572,6573,6574,6575,6576,6577,6578,6579,6580,6581,6582,6583,6584,6585,6586,6587,6588,6589,6590,6591,6592,6593,6594,6595,6596,6597,6598,6599,6600,6601,6602,6603,6604,6605,6606,6607,6608,6609,6610,6611,6612,6613,6614,6615,6616,6617,6618,6619,6620,6621,6622,6623,6624,6625,6626,6627,6628,6629,6630,6631,6632,6633,6634,6635,6636,6637,6638,6639,6640,6641,6642,6643,6644,6645,6646,6647,6648,6649,6650,6651,6652,6653,6654,6655,6656,6657,6658,6659,6660,6661,6662,6663,6664,6665,6666,6667,6668,6669,6670,6671,6672,6673,6674,6675,6676,6677,6678,6679,6680,6681,6682,6683,6684,6685,6686,6687,6688,6689,6690,6691,6692,6693,6694,6695,6696,6697,6698,6699,6700,6701,6702,6703,6704,6705,6706,6707,6708,6709,6710,6711,6712,6713,6714,6715,6716,6717,6718,6719,6720,6721,6722,6723,6724,6725,6726,6727,6728,6729,6730,6731,6732,6733,6734,6735,6736,6737,6738,6739,6740,6741,6742,6743,6744,6745,6746,6747,6748,6749,6750,6751,6752,6753,6754,6755,6756,6757,6758,6759,6760,6761,6762,6763,6764,6765,6766,6767,6768,6769,6770,6771,6772,6773,6774,6775,6776,6777,6778,6779,6780,6781,6782,6783,6784,6785,6786,6787,6788,6789,6790,6791,6792,6793,6794,6795,6796,6797,6798,6799,6800,6801,6802,6803,6804,6805,6806,6807,6808,6809,6810,6811,6812,6813,6814,6815,6816,6817,6818,6819,6820,6821,6822,6823,6824,6825,6826,6827,6828,6829,6830,6831,6832,6833,6834,6835,6836,6837,6838,6839,6840,6841,6842,6843,6844,6845,6846,6847,6848,6849,6850,6851,6852,6853,6854,6855,6856,6857,6858,6859,6860,6861,6862,6863,6864,6865,6866,6867,6868,6869,6870,6871,6872,6873,6874,6875,6876,6877,6878,6879,6880,6881,6882,6883,6884,6885,6886,6887,6888,6889,6890,6891,6892,6893,6894,6895,6896,6897,6898,6899,6900,6901,6902,6903,6904,6905,6906,6907,6908,6909,6910,6911,6912,6913,6914,6915,6916,6917,6918,6919,6920,6921,6922,6923,6924,6925,6926,6927,6928,6929,6930,6931,6932,6933,6934,6935,6936,6937,6938,6939,6940,6941,6942,6943,6944,6945,6946,6947,6948,6949,6950,6951,6952,6953,6954,6955,6956,6957,6958,6959,6960,6961,6962,6963,6964,6965,6966,6967,6968,6969,6970,6971,6972,6973,6974,6975,6976,6977,6978,6979,6980,6981,6982,6983,6984,6985,6986,6987,6988,6989,6990,6991,6992,6993,6994,6995,6996,6997,6998,6999,7000,7001,7002,7003,7004,7005,7006,7007,7008,7009,7010,7011,7012,7013,7014,7015,7016,7017,7018,7019,7020,7021,7022,7023,7024,7025,7026,7027,7028,7029,7030,7031,7032,7033,7034,7035,7036,7037,7038,7039,7040,7041,7042,7043,7044,7045,7046,7047,7048,7049,7050,7051,7052,7053,7054,7055,7056,7057,7058,7059,7060,7061,7062,7063,7064,7065,7066,7067,7068,7069,7070,7071,7072,7073,7074,7075,7076,7077,7078,7079,7080,7081,7082,7083,7084,7085,7086,7087,7088,7089,7090,7091,7092,7093,7094,7095,7096,7097,7098,7099,7100,7101,7102,7103,7104,7105,7106,7107,7108,7109,7110,7111,7112,7113,7114,7115,7116,7117,7118,7119,7120,7121,7122,7123,7124,7125,7126,7127,7128,7129,7130,7131,7132,7133,7134,7135,7136,7137,7138,7139,7140,7141,7142,7143,7144,7145,7146,7147,7148,7149,7150,7151,7152,7153,7154,7155,7156,7157,7158,7159,7160,7161,7162,7163,7164,7165,7166,7167,7168,7169,7170,7171,7172,7173,7174,7175,7176,7177,7178,7179,7180,7181,7182,7183,7184,7185,7186,7187,7188,7189,7190,7191,7192,7193,7194,7195,7196,7197,7198,7199,7200,7201,7202,7203,7204,7205,7206,7207,7208,7209,7210,7211,7212,7213,7214,7215,7216,7217,7218,7219,7220,7221,7222,7223,7224,7225,7226,7227,7228,7229,7230,7231,7232,7233,7234,7235,7236,7237,7238,7239,7240,7241,7242,7243,7244,7245,7246,7247,7248,7249,7250,7251,7252,7253,7254,7255,7256,7257,7258,7259,7260,7261,7262,7263,7264,7265,7266,7267,7268,7269,7270,7271,7272,7273,7274,7275,7276,7277,7278,7279,7280,7281,7282,7283,7284,7285,7286,7287,7288,7289,7290,7291,7292,7293,7294,7295,7296,7297,7298,7299,7300,7301,7302,7303,7304,7305,7306,7307,7308,7309,7310,7311,7312,7313,7314,7315,7316,7317,7318,7319,7320,7321,7322,7323,7324,7325,7326,7327,7328,7329,7330,7331,7332,7333,7334,7335,7336,7337,7338,7339,7340,7341,7342,7343,7344,7345,7346,7347,7348,7349,7350,7351,7352,7353,7354,7355,7356,7357,7358,7359,7360,7361,7362,7363,7364,7365,7366,7367,7368,7369,7370,7371,7372,7373,7374,7375,7376,7377,7378,7379,7380,7381,7382,7383,7384,7385,7386,7387,7388,7389,7390,7391,7392,7393,7394,7395,7396,7397,7398,7399,7400,7401,7402,7403,7404,7405,7406,7407,7408,7409,7410,7411,7412,7413,7414,7415,7416,7417,7418,7419,7420,7421,7422,7423,7424,7425,7426,7427,7428,7429,7430,7431,7432,7433,7434,7435,7436,7437,7438,7439,7440,7441,7442,7443,7444,7445,7446,7447,7448,7449,7450,7451,7452,7453,7454,7455,7456,7457,7458,7459,7460,7461,7462,7463,7464,7465,7466,7467,7468,7469,7470,7471,7472,7473,7474,7475,7476,7477,7478,7479,7480,7481,7482,7483,7484,7485,7486,7487,7488,7489,7490,7491,7492,7493,7494,7495,7496,7497,7498,7499,7500,7501,7502,7503,7504,7505,7506,7507,7508,7509,7510,7511,7512,7513,7514,7515,7516,7517,7518,7519,7520,7521,7522,7523,7524,7525,7526,7527,7528,7529,7530,7531,7532,7533,7534,7535,7536,7537,7538,7539,7540,7541,7542,7543,7544,7545,7546,7547,7548,7549,7550,7551,7552,7553,7554,7555,7556,7557,7558,7559,7560,7561,7562,7563,7564,7565,7566,7567,7568,7569,7570,7571,7572,7573,7574,7575,7576,7577,7578,7579,7580,7581,7582,7583,7584,7585,7586,7587,7588,7589,7590,7591,7592,7593,7594,7595,7596,7597,7598,7599,7600,7601,7602,7603,7604,7605,7606,7607,7608,7609,7610,7611,7612,7613,7614,7615,7616,7617,7618,7619,7620,7621,7622,7623,7624,7625,7626,7627,7628,7629,7630,7631,7632,7633,7634,7635,7636,7637,7638,7639,7640,7641,7642,7643,7644,7645,7646,7647,7648,7649,7650,7651,7652,7653,7654,7655,7656,7657,7658,7659,7660,7661,7662,7663,7664,7665,7666,7667,7668,7669,7670,7671,7672,7673,7674,7675,7676,7677,7678,7679,7680,7681,7682,7683,7684,7685,7686,7687,7688,7689,7690,7691,7692,7693,7694,7695,7696,7697,7698,7699,7700,7701,7702,7703,7704,7705,7706,7707,7708,7709,7710,7711,7712,7713,7714,7715,7716,7717,7718,7719,7720,7721,7722,7723,7724,7725,7726,7727,7728,7729,7730,7731,7732,7733,7734,7735,7736,7737,7738,7739,7740,7741,7742,7743,7744,7745,7746,7747,7748,7749,7750,7751,7752,7753,7754,7755,7756,7757,7758,7759,7760,7761,7762,7763,7764,7765,7766,7767,7768,7769,7770,7771,7772,7773,7774,7775,7776,7777,7778,7779,7780,7781,7782,7783,7784,7785,7786,7787,7788,7789,7790,7791,7792,7793,7794,7795,7796,7797,7798,7799,7800,7801,7802,7803,7804,7805,7806,7807,7808,7809,7810,7811,7812,7813,7814,7815,7816,7817,7818,7819,7820,7821,7822,7823,7824,7825,7826,7827,7828,7829,7830,7831,7832,7833,7834,7835,7836,7837,7838,7839,7840,7841,7842,7843,7844,7845,7846,7847,7848,7849,7850,7851,7852,7853,7854,7855,7856,7857,7858,7859,7860,7861,7862,7863,7864,7865,7866,7867,7868,7869,7870,7871,7872,7873,7874,7875,7876,7877,7878,7879,7880,7881,7882,7883,7884,7885,7886,7887,7888,7889,7890,7891,7892,7893,7894,7895,7896,7897,7898,7899,7900,7901,7902,7903,7904,7905,7906,7907,7908,7909,7910,7911,7912,7913,7914,7915,7916,7917,7918,7919,7920,7921,7922,7923,7924,7925,7926,7927,7928,7929,7930,7931,7932,7933,7934,7935,7936,7937,7938,7939,7940,7941,7942,7943,7944,7945,7946,7947,7948,7949,7950,7951,7952,7953,7954,7955,7956,7957,7958,7959,7960,7961,7962,7963,7964,7965,7966,7967,7968,7969,7970,7971,7972,7973,7974,7975,7976,7977,7978,7979,7980,7981,7982,7983,7984,7985,7986,7987,7988,7989,7990,7991,7992,7993,7994,7995,7996,7997,7998,7999,8000,8001,8002,8003,8004,8005,8006,8007,8008,8009,8010,8011,8012,8013,8014,8015,8016,8017,8018,8019,8020,8021,8022,8023,8024,8025,8026,8027,8028,8029,8030,8031,8032,8033,8034,8035,8036,8037,8038,8039,8040,8041,8042,8043,8044,8045,8046,8047,8048,8049,8050,8051,8052,8053,8054,8055,8056,8057,8058,8059,8060,8061,8062,8063,8064,8065,8066,8067,8068,8069,8070,8071,8072,8073,8074,8075,8076,8077,8078,8079,8080,8081,8082,8083,8084,8085,8086,8087,8088,8089,8090,8091,8092,8093,8094,8095,8096,8097,8098,8099,8100,8101,8102,8103,8104,8105,8106,8107,8108,8109,8110,8111,8112,8113,8114,8115,8116,8117,8118,8119,8120,8121,8122,8123,8124,8125,8126,8127,8128,8129,8130,8131,8132,8133,8134,8135,8136,8137,8138,8139,8140,8141,8142,8143,8144,8145,8146,8147,8148,8149,8150,8151,8152,8153,8154,8155,8156,8157,8158,8159,8160,8161,8162,8163,8164,8165,8166,8167,8168,8169,8170,8171,8172,8173,8174,8175,8176,8177,8178,8179,8180,8181,8182,8183,8184,8185,8186,8187,8188,8189,8190,8191,8192,8193,8194,8195,8196,8197,8198,8199,8200,8201,8202,8203,8204,8205,8206,8207,8208,8209,8210,8211,8212,8213,8214,8215,8216,8217,8218,8219,8220,8221,8222,8223,8224,8225,8226,8227,8228,8229,8230,8231,8232,8233,8234,8235,8236,8237,8238,8239,8240,8241,8242,8243,8244,8245,8246,8247,8248,8249,8250,8251,8252,8253,8254,8255,8256,8257,8258,8259,8260,8261,8262,8263,8264,8265,8266,8267,8268,8269,8270,8271,8272,8273,8274,8275,8276,8277,8278,8279,8280,8281,8282,8283,8284,8285,8286,8287,8288,8289,8290,8291,8292,8293,8294,8295,8296,8297,8298,8299,8300,8301,8302,8303,8304,8305,8306,8307,8308,8309,8310,8311,8312,8313,8314,8315,8316,8317,8318,8319,8320,8321,8322,8323,8324,8325,8326,8327,8328,8329,8330,8331,8332,8333,8334,8335,8336,8337,8338,8339,8340,8341,8342,8343,8344,8345,8346,8347,8348,8349,8350,8351,8352,8353,8354,8355,8356,8357,8358,8359,8360,8361,8362,8363,8364,8365,8366,8367,8368,8369,8370,8371,8372,8373,8374,8375,8376,8377,8378,8379,8380,8381,8382,8383,8384,8385,8386,8387,8388,8389,8390,8391,8392,8393,8394,8395,8396,8397,8398,8399,8400,8401,8402,8403,8404,8405,8406,8407,8408,8409,8410,8411,8412,8413,8414,8415,8416,8417,8418,8419,8420,8421,8422,8423,8424,8425,8426,8427,8428,8429,8430,8431,8432,8433,8434,8435,8436,8437,8438,8439,8440,8441,8442,8443,8444,8445,8446,8447,8448,8449,8450,8451,8452,8453,8454,8455,8456,8457,8458,8459,8460,8461,8462,8463,8464,8465,8466,8467,8468,8469,8470,8471,8472,8473,8474,8475,8476,8477,8478,8479,8480,8481,8482,8483,8484,8485,8486,8487,8488,8489,8490,8491,8492,8493,8494,8495,8496,8497,8498,8499,8500,8501,8502,8503,8504,8505,8506,8507,8508,8509,8510,8511,8512,8513,8514,8515,8516,8517,8518,8519,8520,8521,8522,8523,8524,8525,8526,8527,8528,8529,8530,8531,8532,8533,8534,8535,8536,8537,8538,8539,8540,8541,8542,8543,8544,8545,8546,8547,8548,8549,8550,8551,8552,8553,8554,8555,8556,8557,8558,8559,8560,8561,8562,8563,8564,8565,8566,8567,8568,8569,8570,8571,8572,8573,8574,8575,8576,8577,8578,8579,8580,8581,8582,8583,8584,8585,8586,8587,8588,8589,8590,8591,8592,8593,8594,8595,8596,8597,8598,8599,8600,8601,8602,8603,8604,8605,8606,8607,8608,8609,8610,8611,8612,8613,8614,8615,8616,8617,8618,8619,8620,8621,8622,8623,8624,8625,8626,8627,8628,8629,8630,8631,8632,8633,8634,8635,8636,8637,8638,8639,8640,8641,8642,8643,8644,8645,8646,8647,8648,8649,8650,8651,8652,8653,8654,8655,8656,8657,8658,8659,8660,8661,8662,8663,8664,8665,8666,8667,8668,8669,8670,8671,8672,8673,8674,8675,8676,8677,8678,8679,8680,8681,8682,8683,8684,8685,8686,8687,8688,8689,8690,8691,8692,8693,8694,8695,8696,8697,8698,8699,8700,8701,8702,8703,8704,8705,8706,8707,8708,8709,8710,8711,8712,8713,8714,8715,8716,8717,8718,8719,8720,8721,8722,8723,8724,8725,8726,8727,8728,8729,8730,8731,8732,8733,8734,8735,8736,8737,8738,8739,8740,8741,8742,8743,8744,8745,8746,8747,8748,8749,8750,8751,8752,8753,8754,8755,8756,8757,8758,8759,8760,8761,8762,8763,8764,8765,8766,8767,8768,8769,8770,8771,8772,8773,8774,8775,8776,8777,8778,8779,8780,8781,8782,8783,8784,8785,8786,8787,8788,8789,8790,8791,8792,8793,8794,8795,8796,8797,8798,8799,8800,8801,8802,8803,8804,8805,8806,8807,8808,8809,8810,8811,8812,8813,8814,8815,8816,8817,8818,8819,8820,8821,8822,8823,8824,8825,8826,8827,8828,8829,8830,8831,8832,8833,8834,8835,8836,8837,8838,8839,8840,8841,8842,8843,8844,8845,8846,8847,8848,8849,8850,8851,8852,8853,8854,8855,8856,8857,8858,8859,8860,8861,8862,8863,8864,8865,8866,8867,8868,8869,8870,8871,8872,8873,8874,8875,8876,8877,8878,8879,8880,8881,8882,8883,8884,8885,8886,8887,8888,8889,8890,8891,8892,8893,8894,8895,8896,8897,8898,8899,8900,8901,8902,8903,8904,8905,8906,8907,8908,8909,8910,8911,8912,8913,8914,8915,8916,8917,8918,8919,8920,8921,8922,8923,8924,8925,8926,8927,8928,8929,8930,8931,8932,8933,8934,8935,8936,8937,8938,8939,8940,8941,8942,8943,8944,8945,8946,8947,8948,8949,8950,8951,8952,8953,8954,8955,8956,8957,8958,8959,8960,8961,8962,8963,8964,8965,8966,8967,8968,8969,8970,8971,8972,8973,8974,8975,8976,8977,8978,8979,8980,8981,8982,8983,8984,8985,8986,8987,8988,8989,8990,8991,8992,8993,8994,8995,8996,8997,8998,8999,9000,9001,9002,9003,9004,9005,9006,9007,9008,9009,9010,9011,9012,9013,9014,9015,9016,9017,9018,9019,9020,9021,9022,9023,9024,9025,9026,9027,9028,9029,9030,9031,9032,9033,9034,9035,9036,9037,9038,9039,9040,9041,9042,9043,9044,9045,9046,9047,9048,9049,9050,9051,9052,9053,9054,9055,9056,9057,9058,9059,9060,9061,9062,9063,9064,9065,9066,9067,9068,9069,9070,9071,9072,9073,9074,9075,9076,9077,9078,9079,9080,9081,9082,9083,9084,9085,9086,9087,9088,9089,9090,9091,9092,9093,9094,9095,9096,9097,9098,9099,9100,9101,9102,9103,9104,9105,9106,9107,9108,9109,9110,9111,9112,9113,9114,9115,9116,9117,9118,9119,9120,9121,9122,9123,9124,9125,9126,9127,9128,9129,9130,9131,9132,9133,9134,9135,9136,9137,9138,9139,9140,9141,9142,9143,9144,9145,9146,9147,9148,9149,9150,9151,9152,9153,9154,9155,9156,9157,9158,9159,9160,9161,9162,9163,9164,9165,9166,9167,9168,9169,9170,9171,9172,9173,9174,9175,9176,9177,9178,9179,9180,9181,9182,9183,9184,9185,9186,9187,9188,9189,9190,9191,9192,9193,9194,9195,9196,9197,9198,9199,9200,9201,9202,9203,9204,9205,9206,9207,9208,9209,9210,9211,9212,9213,9214,9215,9216,9217,9218,9219,9220,9221,9222,9223,9224,9225,9226,9227,9228,9229,9230,9231,9232,9233,9234,9235,9236,9237,9238,9239,9240,9241,9242,9243,9244,9245,9246,9247,9248,9249,9250,9251,9252,9253,9254,9255,9256,9257,9258,9259,9260,9261,9262,9263,9264,9265,9266,9267,9268,9269,9270,9271,9272,9273,9274,9275,9276,9277,9278,9279,9280,9281,9282,9283,9284,9285,9286,9287,9288,9289,9290,9291,9292,9293,9294,9295,9296,9297,9298,9299,9300,9301,9302,9303,9304,9305,9306,9307,9308,9309,9310,9311,9312,9313,9314,9315,9316,9317,9318,9319,9320,9321,9322,9323,9324,9325,9326,9327,9328,9329,9330,9331,9332,9333,9334,9335,9336,9337,9338,9339,9340,9341,9342,9343,9344,9345,9346,9347,9348,9349,9350,9351,9352,9353,9354,9355,9356,9357,9358,9359,9360,9361,9362,9363,9364,9365,9366,9367,9368,9369,9370,9371,9372,9373,9374,9375,9376,9377,9378,9379,9380,9381,9382,9383,9384,9385,9386,9387,9388,9389,9390,9391,9392,9393,9394,9395,9396,9397,9398,9399,9400,9401,9402,9403,9404,9405,9406,9407,9408,9409,9410,9411,9412,9413,9414,9415,9416,9417,9418,9419,9420,9421,9422,9423,9424,9425,9426,9427,9428,9429,9430,9431,9432,9433,9434,9435,9436,9437,9438,9439,9440,9441,9442,9443,9444,9445,9446,9447,9448,9449,9450,9451,9452,9453,9454,9455,9456,9457,9458,9459,9460,9461,9462,9463,9464,9465,9466,9467,9468,9469,9470,9471,9472,9473,9474,9475,9476,9477,9478,9479,9480,9481,9482,9483,9484,9485,9486,9487,9488,9489,9490,9491,9492,9493,9494,9495,9496,9497,9498,9499,9500,9501,9502,9503,9504,9505,9506,9507,9508,9509,9510,9511,9512,9513,9514,9515,9516,9517,9518,9519,9520,9521,9522,9523,9524,9525,9526,9527,9528,9529,9530,9531,9532,9533,9534,9535,9536,9537,9538,9539,9540,9541,9542,9543,9544,9545,9546,9547,9548,9549,9550,9551,9552,9553,9554,9555,9556,9557,9558,9559,9560,9561,9562,9563,9564,9565,9566,9567,9568,9569,9570,9571,9572,9573,9574,9575,9576,9577,9578,9579,9580,9581,9582,9583,9584,9585,9586,9587,9588,9589,9590,9591,9592,9593,9594,9595,9596,9597,9598,9599,9600,9601,9602,9603,9604,9605,9606,9607,9608,9609,9610,9611,9612,9613,9614,9615,9616,9617,9618,9619,9620,9621,9622,9623,9624,9625,9626,9627,9628,9629,9630,9631,9632,9633,9634,9635,9636,9637,9638,9639,9640,9641,9642,9643,9644,9645,9646,9647,9648,9649,9650,9651,9652,9653,9654,9655,9656,9657,9658,9659,9660,9661,9662,9663,9664,9665,9666,9667,9668,9669,9670,9671,9672,9673,9674,9675,9676,9677,9678,9679,9680,9681,9682,9683,9684,9685,9686,9687,9688,9689,9690,9691,9692,9693,9694,9695,9696,9697,9698,9699,9700,9701,9702,9703,9704,9705,9706,9707,9708,9709,9710,9711,9712,9713,9714,9715,9716,9717,9718,9719,9720,9721,9722,9723,9724,9725,9726,9727,9728,9729,9730,9731,9732,9733,9734,9735,9736,9737,9738,9739,9740,9741,9742,9743,9744,9745,9746,9747,9748,9749,9750,9751,9752,9753,9754,9755,9756,9757,9758,9759,9760,9761,9762,9763,9764,9765,9766,9767,9768,9769,9770,9771,9772,9773,9774,9775,9776,9777,9778,9779,9780,9781,9782,9783,9784,9785,9786,9787,9788,9789,9790,9791,9792,9793,9794,9795,9796,9797,9798,9799,9800,9801,9802,9803,9804,9805,9806,9807,9808,9809,9810,9811,9812,9813,9814,9815,9816,9817,9818,9819,9820,9821,9822,9823,9824,9825,9826,9827,9828,9829,9830,9831,9832,9833,9834,9835,9836,9837,9838,9839,9840,9841,9842,9843,9844,9845,9846,9847,9848,9849,9850,9851,9852,9853,9854,9855,9856,9857,9858,9859,9860,9861,9862,9863,9864,9865,9866,9867,9868,9869,9870,9871,9872,9873,9874,9875,9876,9877,9878,9879,9880,9881,9882,9883,9884,9885,9886,9887,9888,9889,9890,9891,9892,9893,9894,9895,9896,9897,9898,9899,9900,9901,9902,9903,9904,9905,9906,9907,9908,9909,9910,9911,9912,9913,9914,9915,9916,9917,9918,9919,9920,9921,9922,9923,9924,9925,9926,9927,9928,9929,9930,9931,9932,9933,9934,9935,9936,9937,9938,9939,9940,9941,9942,9943,9944,9945,9946,9947,9948,9949,9950,9951,9952,9953,9954,9955,9956,9957,9958,9959,9960,9961,9962,9963,9964,9965,9966,9967,9968,9969,9970,9971,9972,9973,9974,9975,9976,9977,9978,9979,9980,9981,9982,9983,9984,9985,9986,9987,9988,9989,9990,9991,9992,9993,9994,9995,9996,9997,9998,9999,10K,10.001K,10.002K,10.003K,10.004K,10.005K,10.006K,10.007K,10.008K,10.009K,10.01K,10.011K,10.012K,10.013K,10.014K,10.015K,10.016K,10.017K,10.018K,10.019K,10.02K,10.021K,10.022K,10.023K,10.024K,10.025K,10.026K,10.027K,10.028K,10.029K,10.03K,10.031K,10.032K,10.033K,10.034K,10.035K,10.036K,10.037K,10.038K,10.039K,10.04K,10.041K,10.042K,10.043K,10.044K,10.045K,10.046K,10.047K,10.048K,10.049K,10.05K,10.051K,10.052K,10.053K,10.054K,10.055K,10.056K,10.057K,10.058K,10.059K,10.06K,10.061K,10.062K,10.063K,10.064K,10.065K,10.066K,10.067K,10.068K,10.069K,10.07K,10.071K,10.072K,10.073K,10.074K,10.075K,10.076K,10.077K,10.078K,10.079K,10.08K,10.081K,10.082K,10.083K,10.084K,10.085K,10.086K,10.087K,10.088K,10.089K,10.09K,10.091K,10.092K,10.093K,10.094K,10.095K,10.096K,10.097K,10.098K,10.099K,10.1K,10.101K,10.102K,10.103K,10.104K,10.105K,10.106K,10.107K,10.108K,10.109K,10.11K,10.111K,10.112K,10.113K,10.114K,10.115K,10.116K,10.117K,10.118K,10.119K,10.12K,10.121K,10.122K,10.123K,10.124K,10.125K,10.126K,10.127K,10.128K,10.129K,10.13K,10.131K,10.132K,10.133K,10.134K,10.135K,10.136K,10.137K,10.138K,10.139K,10.14K,10.141K,10.142K,10.143K,10.144K,10.145K,10.146K,10.147K,10.148K,10.149K,10.15K,10.151K,10.152K,10.153K,10.154K,10.155K,10.156K,10.157K,10.158K,10.159K,10.16K,10.161K,10.162K,10.163K,10.164K,10.165K,10.166K,10.167K,10.168K,10.169K,10.17K,10.171K,10.172K,10.173K,10.174K,10.175K,10.176K,10.177K,10.178K,10.179K,10.18K,10.181K,10.182K,10.183K,10.184K,10.185K,10.186K,10.187K,10.188K,10.189K,10.19K,10.191K,10.192K,10.193K,10.194K,10.195K,10.196K,10.197K,10.198K,10.199K,10.2K,10.201K,10.202K,10.203K,10.204K,10.205K,10.206K,10.207K,10.208K,10.209K,10.21K,10.211K,10.212K,10.213K,10.214K,10.215K,10.216K,10.217K,10.218K,10.219K,10.22K,10.221K,10.222K,10.223K,10.224K,10.225K,10.226K,10.227K,10.228K,10.229K,10.23K,10.231K,10.232K,10.233K,10.234K,10.235K,10.236K,10.237K,10.238K,10.239K,10.24K,10.241K,10.242K,10.243K,10.244K,10.245K,10.246K,10.247K,10.248K,10.249K,10.25K,10.251K,10.252K,10.253K,10.254K,10.255K,10.256K,10.257K,10.258K,10.259K,10.26K,10.261K,10.262K,10.263K,10.264K,10.265K,10.266K,10.267K,10.268K,10.269K,10.27K,10.271K,10.272K,10.273K,10.274K,10.275K,10.276K,10.277K,10.278K,10.279K,10.28K,10.281K,10.282K,10.283K,10.284K,10.285K,10.286K,10.287K,10.288K,10.289K,10.29K,10.291K,10.292K,10.293K,10.294K,10.295K,10.296K,10.297K,10.298K,10.299K,10.3K,10.301K,10.302K,10.303K,10.304K,10.305K,10.306K,10.307K,10.308K,10.309K,10.31K,10.311K,10.312K,10.313K,10.314K,10.315K,10.316K,10.317K,10.318K,10.319K,10.32K,10.321K,10.322K,10.323K,10.324K,10.325K,10.326K,10.327K,10.328K,10.329K,10.33K,10.331K,10.332K,10.333K,10.334K,10.335K,10.336K,10.337K,10.338K,10.339K,10.34K,10.341K,10.342K,10.343K,10.344K,10.345K,10.346K,10.347K,10.348K,10.349K,10.35K,10.351K,10.352K,10.353K,10.354K,10.355K,10.356K,10.357K,10.358K,10.359K,10.36K,10.361K,10.362K,10.363K,10.364K,10.365K,10.366K,10.367K,10.368K,10.369K,10.37K,10.371K,10.372K,10.373K,10.374K,10.375K,10.376K,10.377K,10.378K,10.379K,10.38K,10.381K,10.382K,10.383K,10.384K,10.385K,10.386K,10.387K,10.388K,10.389K,10.39K,10.391K,10.392K,10.393K,10.394K,10.395K,10.396K,10.397K,10.398K,10.399K,10.4K,10.401K,10.402K,10.403K,10.404K,10.405K,10.406K,10.407K,10.408K,10.409K,10.41K,10.411K,10.412K,10.413K,10.414K,10.415K,10.416K,10.417K,10.418K,10.419K,10.42K,10.421K,10.422K,10.423K,10.424K,10.425K,10.426K,10.427K,10.428K,10.429K,10.43K,10.431K,10.432K,10.433K,10.434K,10.435K,10.436K,10.437K,10.438K,10.439K,10.44K,10.441K,10.442K,10.443K,10.444K,10.445K,10.446K,10.447K,10.448K,10.449K,10.45K,10.451K,10.452K,10.453K,10.454K,10.455K,10.456K,10.457K,10.458K,10.459K,10.46K,10.461K,10.462K,10.463K,10.464K,10.465K,10.466K,10.467K,10.468K,10.469K,10.47K,10.471K,10.472K,10.473K,10.474K,10.475K,10.476K,10.477K,10.478K,10.479K,10.48K,10.481K,10.482K,10.483K,10.484K,10.485K,10.486K,10.487K,10.488K,10.489K,10.49K,10.491K,10.492K,10.493K,10.494K,10.495K,10.496K,10.497K,10.498K,10.499K,10.5K,10.501K,10.502K,10.503K,10.504K,10.505K,10.506K,10.507K,10.508K,10.509K,10.51K,10.511K,10.512K,10.513K,10.514K,10.515K,10.516K,10.517K,10.518K,10.519K,10.52K,10.521K,10.522K,10.523K,10.524K,10.525K,10.526K,10.527K,10.528K,10.529K,10.53K,10.531K,10.532K,10.533K,10.534K,10.535K,10.536K,10.537K,10.538K,10.539K,10.54K,10.541K,10.542K,10.543K,10.544K,10.545K,10.546K,10.547K,10.548K,10.549K,10.55K,10.551K,10.552K,10.553K,10.554K,10.555K,10.556K,10.557K,10.558K,10.559K,10.56K,10.561K,10.562K,10.563K,10.564K,10.565K,10.566K,10.567K,10.568K,10.569K,10.57K,10.571K,10.572K,10.573K,10.574K,10.575K,10.576K,10.577K,10.578K,10.579K,10.58K,10.581K,10.582K,10.583K,10.584K,10.585K,10.586K,10.587K,10.588K,10.589K,10.59K,10.591K,10.592K,10.593K,10.594K,10.595K,10.596K,10.597K,10.598K,10.599K,10.6K,10.601K,10.602K,10.603K,10.604K,10.605K,10.606K,10.607K,10.608K,10.609K,10.61K,10.611K,10.612K,10.613K,10.614K,10.615K,10.616K,10.617K,10.618K,10.619K,10.62K,10.621K,10.622K,10.623K,10.624K,10.625K,10.626K,10.627K,10.628K,10.629K,10.63K,10.631K,10.632K,10.633K,10.634K,10.635K,10.636K,10.637K,10.638K,10.639K,10.64K,10.641K,10.642K,10.643K,10.644K,10.645K,10.646K,10.647K,10.648K,10.649K,10.65K,10.651K,10.652K,10.653K,10.654K,10.655K,10.656K,10.657K,10.658K,10.659K,10.66K,10.661K,10.662K,10.663K,10.664K,10.665K,10.666K,10.667K,10.668K,10.669K,10.67K,10.671K,10.672K,10.673K,10.674K,10.675K,10.676K,10.677K,10.678K,10.679K,10.68K,10.681K,10.682K,10.683K,10.684K,10.685K,10.686K,10.687K,10.688K,10.689K,10.69K,10.691K,10.692K,10.693K,10.694K,10.695K,10.696K,10.697K,10.698K,10.699K,10.7K,10.701K,10.702K,10.703K,10.704K,10.705K,10.706K,10.707K,10.708K,10.709K,10.71K,10.711K,10.712K,10.713K,10.714K,10.715K,10.716K,10.717K,10.718K,10.719K,10.72K,10.721K,10.722K,10.723K,10.724K,10.725K,10.726K,10.727K,10.728K,10.729K,10.73K,10.731K,10.732K,10.733K,10.734K,10.735K,10.736K,10.737K,10.738K,10.739K,10.74K,10.741K,10.742K,10.743K,10.744K,10.745K,10.746K,10.747K,10.748K,10.749K,10.75K,10.751K,10.752K,10.753K,10.754K,10.755K,10.756K,10.757K,10.758K,10.759K,10.76K,10.761K,10.762K,10.763K,10.764K,10.765K,10.766K,10.767K,10.768K,10.769K,10.77K,10.771K,10.772K,10.773K,10.774K,10.775K,10.776K,10.777K,10.778K,10.779K,10.78K,10.781K,10.782K,10.783K,10.784K,10.785K,10.786K,10.787K,10.788K,10.789K,10.79K,10.791K,10.792K,10.793K,10.794K,10.795K,10.796K,10.797K,10.798K,10.799K,10.8K,10.801K,10.802K,10.803K,10.804K,10.805K,10.806K,10.807K,10.808K,10.809K,10.81K,10.811K,10.812K,10.813K,10.814K,10.815K,10.816K,10.817K,10.818K,10.819K,10.82K,10.821K,10.822K,10.823K,10.824K,10.825K,10.826K,10.827K,10.828K,10.829K,10.83K,10.831K,10.832K,10.833K,10.834K,10.835K,10.836K,10.837K,10.838K,10.839K,10.84K,10.841K,10.842K,10.843K,10.844K,10.845K,10.846K,10.847K,10.848K,10.849K,10.85K,10.851K,10.852K,10.853K,10.854K,10.855K,10.856K,10.857K,10.858K,10.859K,10.86K,10.861K,10.862K,10.863K,10.864K,10.865K,10.866K,10.867K,10.868K,10.869K,10.87K,10.871K,10.872K,10.873K,10.874K,10.875K,10.876K,10.877K,10.878K,10.879K,10.88K,10.881K,10.882K,10.883K,10.884K,10.885K,10.886K,10.887K,10.888K,10.889K,10.89K,10.891K,10.892K,10.893K,10.894K,10.895K,10.896K,10.897K,10.898K,10.899K,10.9K,10.901K,10.902K,10.903K,10.904K,10.905K,10.906K,10.907K,10.908K,10.909K,10.91K,10.911K,10.912K,10.913K,10.914K,10.915K,10.916K,10.917K,10.918K,10.919K,10.92K,10.921K,10.922K,10.923K,10.924K,10.925K,10.926K,10.927K,10.928K,10.929K,10.93K,10.931K,10.932K,10.933K,10.934K,10.935K,10.936K,10.937K,10.938K,10.939K,10.94K,10.941K,10.942K,10.943K,10.944K,10.945K,10.946K,10.947K,10.948K,10.949K,10.95K,10.951K,10.952K,10.953K,10.954K,10.955K,10.956K,10.957K,10.958K,10.959K,10.96K,10.961K,10.962K,10.963K,10.964K,10.965K,10.966K,10.967K,10.968K,10.969K,10.97K,10.971K,10.972K,10.973K,10.974K,10.975K,10.976K,10.977K,10.978K,10.979K,10.98K,10.981K,10.982K,10.983K,10.984K,10.985K,10.986K,10.987K,10.988K,10.989K,10.99K,10.991K,10.992K,10.993K,10.994K,10.995K,10.996K,10.997K,10.998K,10.999K,11K,11.001K,11.002K,11.003K,11.004K,11.005K,11.006K,11.007K,11.008K,11.009K,11.01K,11.011K,11.012K,11.013K,11.014K,11.015K,11.016K,11.017K,11.018K,11.019K,11.02K,11.021K,11.022K,11.023K,11.024K,11.025K,11.026K,11.027K,11.028K,11.029K,11.03K,11.031K,11.032K,11.033K,11.034K,11.035K,11.036K,11.037K,11.038K,11.039K,11.04K,11.041K,11.042K,11.043K,11.044K,11.045K,11.046K,11.047K,11.048K,11.049K,11.05K,11.051K,11.052K,11.053K,11.054K,11.055K,11.056K,11.057K,11.058K,11.059K,11.06K,11.061K,11.062K,11.063K,11.064K,11.065K,11.066K,11.067K,11.068K,11.069K,11.07K,11.071K,11.072K,11.073K,11.074K,11.075K,11.076K,11.077K,11.078K,11.079K,11.08K,11.081K,11.082K,11.083K,11.084K,11.085K,11.086K,11.087K,11.088K,11.089K,11.09K,11.091K,11.092K,11.093K,11.094K,11.095K,11.096K,11.097K,11.098K,11.099K,11.1K,11.101K,11.102K,11.103K,11.104K,11.105K,11.106K,11.107K,11.108K,11.109K,11.11K,11.111K,11.112K,11.113K,11.114K,11.115K,11.116K,11.117K,11.118K,11.119K,11.12K,11.121K,11.122K,11.123K,11.124K,11.125K,11.126K,11.127K,11.128K,11.129K,11.13K,11.131K,11.132K,11.133K,11.134K,11.135K,11.136K,11.137K,11.138K,11.139K,11.14K,11.141K,11.142K,11.143K,11.144K,11.145K,11.146K,11.147K,11.148K,11.149K,11.15K,11.151K,11.152K,11.153K,11.154K,11.155K,11.156K,11.157K,11.158K,11.159K,11.16K,11.161K,11.162K,11.163K,11.164K,11.165K,11.166K,11.167K,11.168K,11.169K,11.17K,11.171K,11.172K,11.173K,11.174K,11.175K,11.176K,11.177K,11.178K,11.179K,11.18K,11.181K,11.182K,11.183K,11.184K,11.185K,11.186K,11.187K,11.188K,11.189K,11.19K,11.191K,11.192K,11.193K,11.194K,11.195K,11.196K,11.197K,11.198K,11.199K,11.2K,11.201K,11.202K,11.203K,11.204K,11.205K,11.206K,11.207K,11.208K,11.209K,11.21K,11.211K,11.212K,11.213K,11.214K,11.215K,11.216K,11.217K,11.218K,11.219K,11.22K,11.221K,11.222K,11.223K,11.224K,11.225K,11.226K,11.227K,11.228K,11.229K,11.23K,11.231K,11.232K,11.233K,11.234K,11.235K,11.236K,11.237K,11.238K,11.239K,11.24K,11.241K,11.242K,11.243K,11.244K,11.245K,11.246K,11.247K,11.248K,11.249K,11.25K,11.251K,11.252K,11.253K,11.254K,11.255K,11.256K,11.257K,11.258K,11.259K,11.26K,11.261K,11.262K,11.263K,11.264K,11.265K,11.266K,11.267K,11.268K,11.269K,11.27K,11.271K,11.272K,11.273K,11.274K,11.275K,11.276K,11.277K,11.278K,11.279K,11.28K,11.281K,11.282K,11.283K,11.284K,11.285K,11.286K,11.287K,11.288K,11.289K,11.29K,11.291K,11.292K,11.293K,11.294K,11.295K,11.296K,11.297K,11.298K,11.299K,11.3K,11.301K,11.302K,11.303K,11.304K,11.305K,11.306K,11.307K,11.308K,11.309K,11.31K,11.311K,11.312K,11.313K,11.314K,11.315K,11.316K,11.317K,11.318K,11.319K,11.32K,11.321K,11.322K,11.323K,11.324K,11.325K,11.326K,11.327K,11.328K,11.329K,11.33K,11.331K,11.332K,11.333K,11.334K,11.335K,11.336K,11.337K,11.338K,11.339K,11.34K,11.341K,11.342K,11.343K,11.344K,11.345K,11.346K,11.347K,11.348K,11.349K,11.35K,11.351K,11.352K,11.353K,11.354K,11.355K,11.356K,11.357K,11.358K,11.359K,11.36K,11.361K,11.362K,11.363K,11.364K,11.365K,11.366K,11.367K,11.368K,11.369K,11.37K,11.371K,11.372K,11.373K,11.374K,11.375K,11.376K,11.377K,11.378K,11.379K,11.38K,11.381K,11.382K,11.383K,11.384K,11.385K,11.386K,11.387K,11.388K,11.389K,11.39K,11.391K,11.392K,11.393K,11.394K,11.395K,11.396K,11.397K,11.398K,11.399K,11.4K,11.401K,11.402K,11.403K,11.404K,11.405K,11.406K,11.407K,11.408K,11.409K,11.41K,11.411K,11.412K,11.413K,11.414K,11.415K,11.416K,11.417K,11.418K,11.419K,11.42K,11.421K,11.422K,11.423K,11.424K,11.425K,11.426K,11.427K,11.428K,11.429K,11.43K,11.431K,11.432K,11.433K,11.434K,11.435K,11.436K,11.437K,11.438K,11.439K,11.44K,11.441K,11.442K,11.443K,11.444K,11.445K,11.446K,11.447K,11.448K,11.449K,11.45K,11.451K,11.452K,11.453K,11.454K,11.455K,11.456K,11.457K,11.458K,11.459K,11.46K,11.461K,11.462K,11.463K,11.464K,11.465K,11.466K,11.467K,11.468K,11.469K,11.47K,11.471K,11.472K,11.473K,11.474K,11.475K,11.476K,11.477K,11.478K,11.479K,11.48K,11.481K,11.482K,11.483K,11.484K,11.485K,11.486K,11.487K,11.488K,11.489K,11.49K,11.491K,11.492K,11.493K,11.494K,11.495K,11.496K,11.497K,11.498K,11.499K,11.5K,11.501K,11.502K,11.503K,11.504K,11.505K,11.506K,11.507K,11.508K,11.509K,11.51K,11.511K,11.512K,11.513K,11.514K,11.515K,11.516K,11.517K,11.518K,11.519K,11.52K,11.521K,11.522K,11.523K,11.524K,11.525K,11.526K,11.527K,11.528K,11.529K,11.53K,11.531K,11.532K,11.533K,11.534K,11.535K,11.536K,11.537K,11.538K,11.539K,11.54K,11.541K,11.542K,11.543K,11.544K,11.545K,11.546K,11.547K,11.548K,11.549K,11.55K,11.551K,11.552K,11.553K,11.554K,11.555K,11.556K,11.557K,11.558K,11.559K,11.56K,11.561K,11.562K,11.563K,11.564K,11.565K,11.566K,11.567K,11.568K,11.569K,11.57K,11.571K,11.572K,11.573K,11.574K,11.575K,11.576K,11.577K,11.578K,11.579K,11.58K,11.581K,11.582K,11.583K,11.584K,11.585K,11.586K,11.587K,11.588K,11.589K,11.59K,11.591K,11.592K,11.593K,11.594K,11.595K,11.596K,11.597K,11.598K,11.599K,11.6K,11.601K,11.602K,11.603K,11.604K,11.605K,11.606K,11.607K,11.608K,11.609K,11.61K,11.611K,11.612K,11.613K,11.614K,11.615K,11.616K,11.617K,11.618K,11.619K,11.62K,11.621K,11.622K,11.623K,11.624K,11.625K,11.626K,11.627K,11.628K,11.629K,11.63K,11.631K,11.632K,11.633K,11.634K,11.635K,11.636K,11.637K,11.638K,11.639K,11.64K,11.641K,11.642K,11.643K,11.644K,11.645K,11.646K,11.647K,11.648K,11.649K,11.65K,11.651K,11.652K,11.653K,11.654K,11.655K,11.656K,11.657K,11.658K,11.659K,11.66K,11.661K,11.662K,11.663K,11.664K,11.665K,11.666K,11.667K,11.668K,11.669K,11.67K,11.671K,11.672K,11.673K,11.674K,11.675K,11.676K,11.677K,11.678K,11.679K,11.68K,11.681K,11.682K,11.683K,11.684K,11.685K,11.686K,11.687K,11.688K,11.689K,11.69K,11.691K,11.692K,11.693K,11.694K,11.695K,11.696K,11.697K,11.698K,11.699K,11.7K,11.701K,11.702K,11.703K,11.704K,11.705K,11.706K,11.707K,11.708K,11.709K,11.71K,11.711K,11.712K,11.713K,11.714K,11.715K,11.716K,11.717K,11.718K,11.719K,11.72K,11.721K,11.722K,11.723K,11.724K,11.725K,11.726K,11.727K,11.728K,11.729K,11.73K,11.731K,11.732K,11.733K,11.734K,11.735K,11.736K,11.737K,11.738K,11.739K,11.74K,11.741K,11.742K,11.743K,11.744K,11.745K,11.746K,11.747K,11.748K,11.749K,11.75K,11.751K,11.752K,11.753K,11.754K,11.755K,11.756K,11.757K,11.758K,11.759K,11.76K,11.761K,11.762K,11.763K,11.764K,11.765K,11.766K,11.767K,11.768K,11.769K,11.77K,11.771K,11.772K,11.773K,11.774K,11.775K,11.776K,11.777K,11.778K,11.779K,11.78K,11.781K,11.782K,11.783K,11.784K,11.785K,11.786K,11.787K,11.788K,11.789K,11.79K,11.791K,11.792K,11.793K,11.794K,11.795K,11.796K,11.797K,11.798K,11.799K,11.8K,11.801K,11.802K,11.803K,11.804K,11.805K,11.806K,11.807K,11.808K,11.809K,11.81K,11.811K,11.812K,11.813K,11.814K,11.815K,11.816K,11.817K,11.818K,11.819K,11.82K,11.821K,11.822K,11.823K,11.824K,11.825K,11.826K,11.827K,11.828K,11.829K,11.83K,11.831K,11.832K,11.833K,11.834K,11.835K,11.836K,11.837K,11.838K,11.839K,11.84K,11.841K,11.842K,11.843K,11.844K,11.845K,11.846K,11.847K,11.848K,11.849K,11.85K,11.851K,11.852K,11.853K,11.854K,11.855K,11.856K,11.857K,11.858K,11.859K,11.86K,11.861K,11.862K,11.863K,11.864K,11.865K,11.866K,11.867K,11.868K,11.869K,11.87K,11.871K,11.872K,11.873K,11.874K,11.875K,11.876K,11.877K,11.878K,11.879K,11.88K,11.881K,11.882K,11.883K,11.884K,11.885K,11.886K,11.887K,11.888K,11.889K,11.89K,11.891K,11.892K,11.893K,11.894K,11.895K,11.896K,11.897K,11.898K,11.899K,11.9K,11.901K,11.902K,11.903K,11.904K,11.905K,11.906K,11.907K,11.908K,11.909K,11.91K,11.911K,11.912K,11.913K,11.914K,11.915K,11.916K,11.917K,11.918K,11.919K,11.92K,11.921K,11.922K,11.923K,11.924K,11.925K,11.926K,11.927K,11.928K,11.929K,11.93K,11.931K,11.932K,11.933K,11.934K,11.935K,11.936K,11.937K,11.938K,11.939K,11.94K,11.941K,11.942K,11.943K,11.944K,11.945K,11.946K,11.947K,11.948K,11.949K,11.95K,11.951K,11.952K,11.953K,11.954K,11.955K,11.956K,11.957K,11.958K,11.959K,11.96K,11.961K,11.962K,11.963K,11.964K,11.965K,11.966K,11.967K,11.968K,11.969K,11.97K,11.971K,11.972K,11.973K,11.974K,11.975K,11.976K,11.977K,11.978K,11.979K,11.98K,11.981K,11.982K,11.983K,11.984K,11.985K,11.986K,11.987K,11.988K,11.989K,11.99K,11.991K,11.992K,11.993K,11.994K,11.995K,11.996K,11.997K,11.998K,11.999K,12K,12.001K,12.002K,12.003K,12.004K,12.005K,12.006K,12.007K,12.008K,12.009K,12.01K,12.011K,12.012K,12.013K,12.014K,12.015K,12.016K,12.017K,12.018K,12.019K,12.02K,12.021K,12.022K,12.023K,12.024K,12.025K,12.026K,12.027K,12.028K,12.029K,12.03K,12.031K,12.032K,12.033K,12.034K,12.035K,12.036K,12.037K,12.038K,12.039K,12.04K,12.041K,12.042K,12.043K,12.044K,12.045K,12.046K,12.047K,12.048K,12.049K,12.05K,12.051K,12.052K,12.053K,12.054K,12.055K,12.056K,12.057K,12.058K,12.059K,12.06K,12.061K,12.062K,12.063K,12.064K,12.065K,12.066K,12.067K,12.068K,12.069K,12.07K,12.071K,12.072K,12.073K,12.074K,12.075K,12.076K,12.077K,12.078K,12.079K,12.08K,12.081K,12.082K,12.083K,12.084K,12.085K,12.086K,12.087K,12.088K,12.089K,12.09K,12.091K,12.092K,12.093K,12.094K,12.095K,12.096K,12.097K,12.098K,12.099K,12.1K,12.101K,12.102K,12.103K,12.104K,12.105K,12.106K,12.107K,12.108K,12.109K,12.11K,12.111K,12.112K,12.113K,12.114K,12.115K,12.116K,12.117K,12.118K,12.119K,12.12K,12.121K,12.122K,12.123K,12.124K,12.125K,12.126K,12.127K,12.128K,12.129K,12.13K,12.131K,12.132K,12.133K,12.134K,12.135K,12.136K,12.137K,12.138K,12.139K,12.14K,12.141K,12.142K,12.143K,12.144K,12.145K,12.146K,12.147K,12.148K,12.149K,12.15K,12.151K,12.152K,12.153K,12.154K,12.155K,12.156K,12.157K,12.158K,12.159K,12.16K,12.161K,12.162K,12.163K,12.164K,12.165K,12.166K,12.167K,12.168K,12.169K,12.17K,12.171K,12.172K,12.173K,12.174K,12.175K,12.176K,12.177K,12.178K,12.179K,12.18K,12.181K,12.182K,12.183K,12.184K,12.185K,12.186K,12.187K,12.188K,12.189K,12.19K,12.191K,12.192K,12.193K,12.194K,12.195K,12.196K,12.197K,12.198K,12.199K,12.2K,12.201K,12.202K,12.203K,12.204K,12.205K,12.206K,12.207K,12.208K,12.209K,12.21K,12.211K,12.212K,12.213K,12.214K,12.215K,12.216K,12.217K,12.218K,12.219K,12.22K,12.221K,12.222K,12.223K,12.224K,12.225K,12.226K,12.227K,12.228K,12.229K,12.23K,12.231K,12.232K,12.233K,12.234K,12.235K,12.236K,12.237K,12.238K,12.239K,12.24K,12.241K,12.242K,12.243K,12.244K,12.245K,12.246K,12.247K,12.248K,12.249K,12.25K,12.251K,12.252K,12.253K,12.254K,12.255K,12.256K,12.257K,12.258K,12.259K,12.26K,12.261K,12.262K,12.263K,12.264K,12.265K,12.266K,12.267K,12.268K,12.269K,12.27K,12.271K,12.272K,12.273K,12.274K,12.275K,12.276K,12.277K,12.278K,12.279K,12.28K,12.281K,12.282K,12.283K,12.284K,12.285K,12.286K,12.287K,12.288K,12.289K,12.29K,12.291K,12.292K,12.293K,12.294K,12.295K,12.296K,12.297K,12.298K,12.299K,12.3K,12.301K,12.302K,12.303K,12.304K,12.305K,12.306K,12.307K,12.308K,12.309K,12.31K,12.311K,12.312K,12.313K,12.314K,12.315K,12.316K,12.317K,12.318K,12.319K,12.32K,12.321K,12.322K,12.323K,12.324K,12.325K,12.326K,12.327K,12.328K,12.329K,12.33K,12.331K,12.332K,12.333K,12.334K,12.335K,12.336K,12.337K,12.338K,12.339K,12.34K,12.341K,12.342K,12.343K,12.344K,12.345K,12.346K,12.347K,12.348K,12.349K,12.35K,12.351K,12.352K,12.353K,12.354K,12.355K,12.356K,12.357K,12.358K,12.359K,12.36K,12.361K,12.362K,12.363K,12.364K,12.365K,12.366K,12.367K,12.368K,12.369K,12.37K,12.371K,12.372K,12.373K,12.374K,12.375K,12.376K,12.377K,12.378K,12.379K,12.38K,12.381K,12.382K,12.383K,12.384K,12.385K,12.386K,12.387K,12.388K,12.389K,12.39K,12.391K,12.392K,12.393K,12.394K,12.395K,12.396K,12.397K,12.398K,12.399K,12.4K,12.401K,12.402K,12.403K,12.404K,12.405K,12.406K,12.407K,12.408K,12.409K,12.41K,12.411K,12.412K,12.413K,12.414K,12.415K,12.416K,12.417K,12.418K,12.419K,12.42K,12.421K,12.422K,12.423K,12.424K,12.425K,12.426K,12.427K,12.428K,12.429K,12.43K,12.431K,12.432K,12.433K,12.434K,12.435K,12.436K,12.437K,12.438K,12.439K,12.44K,12.441K,12.442K,12.443K,12.444K,12.445K,12.446K,12.447K,12.448K,12.449K,12.45K,12.451K,12.452K,12.453K,12.454K,12.455K,12.456K,12.457K,12.458K,12.459K,12.46K,12.461K,12.462K,12.463K,12.464K,12.465K,12.466K,12.467K,12.468K,12.469K,12.47K,12.471K,12.472K,12.473K,12.474K,12.475K,12.476K,12.477K,12.478K,12.479K,12.48K,12.481K,12.482K,12.483K,12.484K,12.485K,12.486K,12.487K,12.488K,12.489K,12.49K,12.491K,12.492K,12.493K,12.494K,12.495K,12.496K,12.497K,12.498K,12.499K,12.5K,12.501K,12.502K,12.503K,12.504K,12.505K,12.506K,12.507K,12.508K,12.509K,12.51K,12.511K,12.512K,12.513K,12.514K,12.515K,12.516K,12.517K,12.518K,12.519K,12.52K,12.521K,12.522K,12.523K,12.524K,12.525K,12.526K,12.527K,12.528K,12.529K,12.53K,12.531K,12.532K,12.533K,12.534K,12.535K,12.536K,12.537K,12.538K,12.539K,12.54K,12.541K,12.542K,12.543K,12.544K,12.545K,12.546K,12.547K,12.548K,12.549K,12.55K,12.551K,12.552K,12.553K,12.554K,12.555K,12.556K,12.557K,12.558K,12.559K,12.56K,12.561K,12.562K,12.563K,12.564K,12.565K,12.566K,12.567K,12.568K,12.569K,12.57K,12.571K,12.572K,12.573K,12.574K,12.575K,12.576K,12.577K,12.578K,12.579K,12.58K,12.581K,12.582K,12.583K,12.584K,12.585K,12.586K,12.587K,12.588K,12.589K,12.59K,12.591K,12.592K,12.593K,12.594K,12.595K,12.596K,12.597K,12.598K,12.599K,12.6K,12.601K,12.602K,12.603K,12.604K,12.605K,12.606K,12.607K,12.608K,12.609K,12.61K,12.611K,12.612K,12.613K,12.614K,12.615K,12.616K,12.617K,12.618K,12.619K,12.62K,12.621K,12.622K,12.623K,12.624K,12.625K,12.626K,12.627K,12.628K,12.629K,12.63K,12.631K,12.632K,12.633K,12.634K,12.635K,12.636K,12.637K,12.638K,12.639K,12.64K,12.641K,12.642K,12.643K,12.644K,12.645K,12.646K,12.647K,12.648K,12.649K,12.65K,12.651K,12.652K,12.653K,12.654K,12.655K,12.656K,12.657K,12.658K,12.659K,12.66K,12.661K,12.662K,12.663K,12.664K,12.665K,12.666K,12.667K,12.668K,12.669K,12.67K,12.671K,12.672K,12.673K,12.674K,12.675K,12.676K,12.677K,12.678K,12.679K,12.68K,12.681K,12.682K,12.683K,12.684K,12.685K,12.686K,12.687K,12.688K,12.689K,12.69K,12.691K,12.692K,12.693K,12.694K,12.695K,12.696K,12.697K,12.698K,12.699K,12.7K,12.701K,12.702K,12.703K,12.704K,12.705K,12.706K,12.707K,12.708K,12.709K,12.71K,12.711K,12.712K,12.713K,12.714K,12.715K,12.716K,12.717K,12.718K,12.719K,12.72K,12.721K,12.722K,12.723K,12.724K,12.725K,12.726K,12.727K,12.728K,12.729K,12.73K,12.731K,12.732K,12.733K,12.734K,12.735K,12.736K,12.737K,12.738K,12.739K,12.74K,12.741K,12.742K,12.743K,12.744K,12.745K,12.746K,12.747K,12.748K,12.749K,12.75K,12.751K,12.752K,12.753K,12.754K,12.755K,12.756K,12.757K,12.758K,12.759K,12.76K,12.761K,12.762K,12.763K,12.764K,12.765K,12.766K,12.767K,12.768K,12.769K,12.77K,12.771K,12.772K,12.773K,12.774K,12.775K,12.776K,12.777K,12.778K,12.779K,12.78K,12.781K,12.782K,12.783K,12.784K,12.785K,12.786K,12.787K,12.788K,12.789K,12.79K,12.791K,12.792K,12.793K,12.794K,12.795K,12.796K,12.797K,12.798K,12.799K,12.8K,12.801K,12.802K,12.803K,12.804K,12.805K,12.806K,12.807K,12.808K,12.809K,12.81K,12.811K,12.812K,12.813K,12.814K,12.815K,12.816K,12.817K,12.818K,12.819K,12.82K,12.821K,12.822K]L_j['id','Std_id','Obj_id_i','Location','Roww','Description','id','Ident','Name','Unit','Objtype_id','Page','Wiki_id','Newest']56,144,148,12O_i[0]56,24,148,13[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,298,299,300,301,302,303,304,305,306,307,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,327,328,329,330,331,332,333,334,335,336,337,338,339,340,341,342,343,344,345,346,347,348,349,350,351,352,353,354,355,356,357,358,359,360,361,362,363,364]O_j['id','Ident','Name','Unit','Objtype_id','Page','Wiki_id','Newest']56,48,148,13SettThis node checks the variables listed in Var_for_rdb and makes an index of those that are NOT found in the result database. This is then used as an index in Inp_var for adding variable information.index i:= copyindex(S_i);
index j:= copyindex(S_j);
Sett1[S_i=i, S_j=j]400,72,148,131,1,0,1,1,1,0,0,0,02,378,21,493,5012,227,134,319,515,0,MIDM19661,54073,65535[Sys_localindex('J'),Sys_localindex('I')]['H1991'][Self,1,Sys_localindex('I'),1,Sys_localindex('J'),1]ItemThis node checks the variables listed in Var_for_rdb and makes an index of those that are NOT found in the result database. This is then used as an index in Inp_var for adding variable information.index i:= copyindex(It_i);
index j:= copyindex(It_j);
Item1[it_i=i, it_j=j]400,120,148,131,1,0,1,1,1,0,0,0,02,378,21,493,5012,298,216,382,519,0,MIDM19661,54073,65535[Sys_localindex('J'),Sys_localindex('I')]['H1991'][Self,1,Sys_localindex('I'),1,Sys_localindex('J'),1]It_i[0]56,168,148,13[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35]It_j['id','Sett_id','Obj_id','Fail']56,192,148,13['id','Sett_id','Obj_id','Fail']S_i[0]56,72,148,13[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28]S_j['id','Obj_id','Settype_id']56,96,148,13['id','Obj_id','Settype_id']Dim0280,160,148,131,1,1,1,1,1,0,0,0,02,89,98,476,2242,604,56,556,489,0,MIDM39325,65535,39321[D_i,D_j][D_j,D_i]Ind0280,184,148,131,1,1,1,1,1,0,0,0,02,380,47,476,2962,232,242,874,303,0,MIDM2,12,22,876,493,0,MIDM39325,65535,39321[I_j,I_i][I_j,I_i]Loc0280,96,148,131,1,1,1,1,1,0,0,0,02,370,45,476,4452,518,523,725,303,0,MIDM2,404,34,750,516,0,MIDM39325,65535,39321[L_j,L_i][L_j,L_i]ObjThis node checks the variables listed in Var_for_rdb and makes an index of those that are NOT found in the result database. This is then used as an index in Inp_var for adding variable information.0280,48,148,131,1,1,1,1,1,0,0,0,02,378,21,493,5012,152,162,1057,343,0,MIDM2,573,21,700,421,0,MIDM39325,65535,39321[O_j,O_i][O_j,O_i]['H1991'][Self,1,Sys_localindex('I'),1,Sys_localindex('J'),1]SettThis node checks the variables listed in Var_for_rdb and makes an index of those that are NOT found in the result database. This is then used as an index in Inp_var for adding variable information.0280,72,148,131,1,1,1,1,1,0,0,0,02,378,21,493,5012,529,143,700,421,0,MIDM39325,65535,39321[S_j,S_i][S_i,S_j]['H1991'][Self,1,Sys_localindex('I'),1,Sys_localindex('J'),1]ItemThis node checks the variables listed in Var_for_rdb and makes an index of those that are NOT found in the result database. This is then used as an index in Inp_var for adding variable information.0280,120,148,131,1,1,1,1,1,0,0,0,02,378,21,493,5012,529,143,700,421,0,MIDM39325,65535,39321[It_j,It_i][It_i,It_j]['H1991'][Self,1,Sys_localindex('I'),1,Sys_localindex('J'),1](var, table)Write1if size(var)>0 then appendtablesql(var,var.i, var.j, table&' ')56,368,148,132,284,58,476,224var,table''168,280,052,121,1,1,1,1,1,0,0,0,02,163,375,476,224[Formnode Writerpsswd1]52425,39321,65535PlatformChoice(Self,2,False,1)320,328,148,12[Formnode Platform1]52425,39321,65535['Lumina AWP','THL computer']Te113) Upload an Analytica model. First, switch the choice "Data table or model?" to "Analytica model". Note! You can insert several variables at the same time. Each variable or study MUST have at least one index. Analytica identifiers are used to find the right nodes. Ident is the identifier of the description page in the Opasnet wiki. If Probabilistic? is 1, a sample of the distribution is stored; otherwise, the mean or the point estimate is stored.860,300,-5164,1001,0,0,1,0,1,0,,0,Variables0168,156,1160,131,0,0,1,0,0,0,72,0,152425,39321,65535Object_info1Platform0488,108,1160,121,0,0,1,0,0,0,142,0,152425,39321,65535PlatformWriterpsswd0488,132,1160,121,0,0,1,0,0,0,142,0,152425,39321,65535Writerpsswd2) Tell the identifier of the node that contains the observations. This is an alternative to filling in 'Observations'. The node is used if it is non-empty. The node must have index .j for columns and .i for rows.512,300,-1176,1001,0,0,1,0,1,0,,0,Providing upload data:516,188,-1508,121,0,0,1,0,1,0,,0,65535,65532,19661Advanced options for uploading data:472,492,-1464,121,0,0,1,0,1,0,,0,65535,65532,19661A) The default: Upload all data directly to Opasnet Base. This is the same as on the first page.116,568,-1108,641,0,0,1,0,1,0,,0,C) For very large variables: Upload only the object and location information. Create csv files of other data to c:\temp\ and upload them separately (you need a direct access to the Opasnet Base).752,568,-1184,641,0,0,1,0,1,0,,0,B) In case you want to upload data in a way that it is not visible without a password, press this button instead of "Upload data".396,568,-1164,641,0,0,1,0,1,0,,0,2,693,146,476,224Observations0168,404,1152,121,0,0,1,0,0,0,158,0,152425,39321,65535Observations2Copy your data table into Observations. NOTE! 1) You must have field names in the first row. 2) Paste between 'exclamation marks'.168,350,-1152,38Simplified help for Internet use48,24152,72,1120,161,712,349,550,300,17Follow these instructions if you are using the Internet interface (AWP).268,136,-1252,128Detailed help for Analytica use48,24484,72,1116,161,706,16,550,300,17Follow these instructions iif you have Analytica Enterprise and have an ODBC connection to the Opasnet Base. Read also the simplified help; not everything is repeated here.264,132,-1256,124